(57)【特許請求の範囲】
【請求項１】
メディアデータを符号化することで、通信装置が１又は複数の通信相手にネットワークを介して送信する符号化データを生成する符号化装置であって、
前記通信相手の各々との間の帯域を取得する帯域取得手段と、
前記帯域取得手段が前記帯域の各々を取得する時間を推定する推定手段と、
メディアデータを符号化する符号化手段と、
前記符号化手段による符号化条件の設定を変更する予定時間である変更予定時間を取得する変更予定時間取得手段と、
前記変更予定時間取得手段によって取得された変更予定時間、および前記推定手段によって推定された推定時間に基づいて、前記符号化条件の設定を実際に変更する変更タイミングを決定する変更タイミング決定手段と、
前記変更タイミング決定手段によって決定された変更タイミングが到来した際に、前記帯域取得手段によって取得されている帯域に応じて前記符号化条件の設定を変更する設定変更手段と
を備えたことを特徴とする符号化装置。
【請求項２】
前記変更タイミング決定手段は、
前記変更予定時間の到来後に前記符号化条件の設定の変更を待機する最大の時間である最大待機時間を設定する待機時間設定手段と、
前記待機時間設定手段によって設定された前記最大待機時間の間に、前記推定手段によって推定された推定時間の少なくとも１つが含まれているか否かを判断する第一判断手段とを備え、
前記第一判断手段によって前記最大待機時間の間に前記推定時間が含まれないと判断された場合には、前記変更予定時間が到来する時点を前記変更タイミングに決定し、
前記第一判断手段によって前記最大待機時間の間に前記推定時間が含まれると判断された場合には、前記変更予定時間の到来以後、前記最大待機時間が経過する以前の間のいずれかの時点を前記変更タイミングに決定することを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記変更タイミング決定手段は、
前記第一判断手段によって前記最大経過時間の間に前記推定時間が含まれると判断された場合に、前記最大待機時間の間に含まれる推定時間に取得されると推定される帯域を、前記符号化条件の設定を次回変更する際に参照する参照帯域として特定する特定手段をさらに備え、
前記特定手段によって前記参照帯域が特定された場合には、前記変更予定時間が到来し且つ前記参照帯域の全てが前記帯域取得手段によって取得された時点、および、前記最大待機時間が経過した時点のいずれか早い時点を、前記変更タイミングに決定することを特徴とする請求項２に記載の符号化装置。
【請求項４】
前記通信相手が複数存在する場合に、前記帯域取得手段によって取得される一の通信相手の帯域が他の通信相手の帯域と比較して最小値となるか否かを、過去の帯域の取得結果の平均値、標準偏差、分散、過去の最新の取得結果、および過去の前記符号化条件の設定値の少なくともいずれかを用いて、前記複数の通信相手の各々の帯域について予測する帯域予測手段をさらに備え、
前記特定手段は、他の通信相手の帯域と比較して最小値とならないと前記帯域予測手段によって予測された帯域を、前記参照帯域として特定しないことを特徴とする請求項３に記載の符号化装置。
【請求項５】
前記推定手段は、推定した推定時間と実際の取得時間との間の過去の誤差を用いて、前記帯域取得手段による前記参照帯域の取得が前記推定時間から遅れた場合の取得時間である遅延時間を予測する遅延時間予測手段を備え、
前記符号化装置は、
前記遅延時間予測手段によって予測された遅延時間が前記最大待機時間の経過時点よりも後であるか否かを判断する第二判断手段と、
前記第二判断手段によって前記遅延時間が前記最大待機時間の経過時点よりも後であると判断された場合に、前記最大待機時間を延長する延長手段と
をさらに備えたことを特徴とする請求項３または４に記載の符号化装置。
【請求項６】
前記待機時間設定手段は、前記符号化条件のうち、前記符号化データの各フレームの送信間隔に基づいて前記最大待機時間を設定することを特徴とする請求項２から５のいずれかに記載の符号化装置。
【請求項７】
メディアデータを符号化することで、通信装置が１又は複数の通信相手にネットワークを介して送信する符号化データを生成する符号化装置によって行われる符号化方法であって、
前記通信相手の各々との間の帯域を取得する帯域取得ステップと、
前記帯域取得ステップにおいて前記帯域の各々が取得される時間を推定する推定ステップと、
メディアデータを符号化する符号化ステップと、
前記符号化ステップにおける符号化条件の設定を変更する予定時間である変更予定時間を取得する変更予定時間取得ステップと、
前記変更予定時間取得ステップにおいて取得された変更予定時間、および前記推定ステップにおいて推定された推定時間に基づいて、前記符号化条件の設定を実際に変更する変更タイミングを決定する変更タイミング決定ステップと、
前記変更タイミング決定ステップにおいて決定された変更タイミングが到来した際に、前記帯域取得ステップにおいて取得されている帯域に応じて前記符号化条件の設定を変更する設定変更ステップと
を備えたことを特徴とする符号化方法。
【請求項８】
メディアデータを符号化することで、通信装置が１又は複数の通信相手にネットワークを介して送信する符号化データを生成する符号化装置によって実行される符号化プログラムであって、
前記通信相手の各々との間の帯域を取得する帯域取得ステップと、
前記帯域取得ステップにおいて前記帯域の各々が取得される時間を推定する推定ステップと、
メディアデータを符号化する符号化ステップと、
前記符号化ステップにおける符号化条件の設定を変更する予定時間である変更予定時間を取得する変更予定時間取得ステップと、
前記変更予定時間取得ステップにおいて取得された変更予定時間、および前記推定ステップにおいて推定された推定時間に基づいて、前記符号化条件の設定を変更する変更タイミングを決定する変更タイミング決定ステップと、
前記変更タイミング決定ステップにおいて決定された変更タイミングが到来した際に、前記帯域取得ステップにおいて取得されている帯域に応じて前記符号化条件の設定を変更する設定変更ステップと
を前記符号化装置のコントローラに実行させるための指示を含む符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの送信元の通信装置と送信先の通信装置との間の帯域に応じてメディアデータの符号化を行う符号化装置、符号化方法、および符号化プログラムに関する。
【背景技術】
【０００２】
通信装置がネットワーク上で単位時間当たりに伝送できるデータ容量を、帯域（Ａｖａｉｌａｂｌｅ  Ｂａｎｄｗｉｄｔｈ、単位「ｂｐｓ」）という。通信装置がネットワーク上に単位時間当たりに送信するデータ容量を、送信ビットレート（単位「ｂｐｓ」）という。送信ビットレートが帯域以上になると、データの輻輳、パケットロス等の問題が生じる。また、送信ビットレートが帯域以下であれば、データの輻輳、パケットロス等の問題が生じる可能性は低いが、送信ビットレートが帯域よりも低すぎると、通信装置は使用可能な帯域を十分に活用できない。従って、メディアデータを符号化する符号化装置は、地域、プロバイダ、時間帯等の状況によって変動する帯域に合わせて符号化を行い、送信ビットレートを調整することが望ましい。
【０００３】
例えば、特許文献１が開示している動画データ配信装置は、一定量の動画データをバースト的に送信し、送信が完了するまでに要した時間によって帯域を計測する。計測結果に基づいて送信ビットレートを調整する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１８８７３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
送信ビットレートを目標値に調整するために符号化条件の設定を変更した場合、送信ビットレートが実際に目標値となるまでには時間を要する。符号化装置は、送信ビットレートが目標値となる前に連続して符号化条件の設定を変更しても、送信ビットレートを適切に制御することはできない。つまり、符号化条件の設定を変更するための適切なタイミングは限られる。また、帯域を計測するために要する時間は、ネットワーク環境の影響を受けて変動する場合がある。従って、符号化装置は、符号化条件の設定を変更できるタイミングに合わせて帯域の計測結果を取得することも困難である。よって、従来の符号化装置は、帯域の計測結果の取得状況に応じた適切なタイミングで符号化条件の設定を変更することはできなかった。
【０００６】
本発明は、帯域の計測結果の取得状況に応じた適切なタイミングで符号化条件の設定を変更することができる符号化装置、符号化方法、および符号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第一の態様に係る符号化装置は、メディアデータを符号化することで、通信装置が１又は複数の通信相手にネットワークを介して送信する符号化データを生成する符号化装置であって、前記通信相手の各々との間の帯域を取得する帯域取得手段と、前記帯域取得手段が前記帯域の各々を取得する時間を推定する推定手段と、メディアデータを符号化する符号化手段と、前記符号化手段による符号化条件の設定を変更する予定時間である変更予定時間を取得する変更予定時間取得手段と、前記変更予定時間取得手段によって取得された変更予定時間、および前記推定手段によって推定された推定時間に基づいて、前記符号化条件の設定を実際に変更する変更タイミングを決定する変更タイミング決定手段と、前記変更タイミング決定手段によって決定された変更タイミングが到来した際に、前記帯域取得手段によって取得されている帯域に応じて前記符号化条件の設定を変更する設定変更手段とを備えている。
【０００８】
第一の態様に係る符号化装置は、符号化条件の設定を変更する予定時間である変更予定時間を取得する。さらに、帯域を取得する時間を推定する。符号化装置は、変更予定時間および推定時間に基づいて、符号化条件の設定の変更タイミングを決定し、決定したタイミングで設定を変更する。従って、符号化装置は、帯域の計測結果の取得状況に応じた適切なタイミングで符号化の設定を変更することができる。
【０００９】
前記変更タイミング決定手段は、前記変更予定時間の到来後に前記符号化条件の設定の変更を待機する最大の時間である最大待機時間を設定する待機時間設定手段と、前記待機時間設定手段によって設定された前記最大待機時間の間に、前記推定手段によって推定された推定時間の少なくとも１つが含まれているか否かを判断する第一判断手段とを備えてもよい。前記変更タイミング決定手段は、前記第一判断手段によって前記最大待機時間の間に前記推定時間が含まれないと判断された場合には、前記変更予定時間が到来する時点を前記変更タイミングに決定し、前記第一判断手段によって前記最大待機時間の間に前記推定時間が含まれると判断された場合には、前記変更予定時間の到来以後、前記最大待機時間が経過する以前の間のいずれかの時点を前記変更タイミングに決定してもよい。
【００１０】
この場合、符号化装置は、設定した最大待機時間の間に帯域が取得されると推定した場合、変更予定時間の到来後であっても、符号化条件の設定の変更を待機することができる。符号化装置は、設定の変更を待機することで、変更予定時間の到来直後に取得される帯域をより多く参照して設定を変更することができる。
【００１１】
前記変更タイミング決定手段は、前記第一判断手段によって前記最大経過時間の間に前記推定時間が含まれると判断された場合に、前記最大待機時間の間に含まれる推定時間に取得されると推定される帯域を、前記符号化条件の設定を次回変更する際に参照する参照帯域として特定する特定手段をさらに備えてもよい。前記変更タイミング決定手段は、前記特定手段によって前記参照帯域が特定された場合には、前記変更予定時間が到来し且つ前記参照帯域の全てが前記帯域取得手段によって取得された時点、および、前記最大待機時間が経過した時点のいずれか早い時点を、前記変更タイミングに決定してもよい。
【００１２】
この場合、符号化装置は、参照帯域の取得時間が推定よりも遅れて、参照帯域が取得できないまま最大待機時間が経過した場合には、その時点で符号化条件の設定を変更する。従って、符号化条件が長時間変更されないまま通信が行われることを防止することができる。さらに、符号化装置は、最大待機時間が経過する前に参照帯域の全てが取得された場合、全ての参照帯域が取得された時点で設定を変更する。よって、符号化装置は、変動する帯域に応じて素早く送信ビットレートを適切な値に調整することができる。
【００１３】
前記符号化装置は、前記通信相手が複数存在する場合に、前記帯域取得手段によって取得される一の通信相手の帯域が他の通信相手の帯域と比較して最小値となるか否かを、過去の帯域の取得結果の平均値、標準偏差、分散、過去の最新の取得結果、および過去の前記符号化条件の設定値の少なくともいずれかを用いて、前記複数の通信相手の各々の帯域について予測する帯域予測手段をさらに備えてもよい。前記特定手段は、他の通信相手の帯域と比較して最小値とならないと前記帯域予測手段によって予測された帯域を、前記参照帯域として特定しないようにしてもよい。
【００１４】
帯域は時間の経過と共に変動する。しかし、ある通信相手の帯域が変動して低くなった場合でも、それ以外の通信相手の帯域より低くなることがなければ、帯域は符号化条件の設定に影響を与えない。符号化装置は、ある通信相手の帯域について、それ以外の通信相手の帯域と比較して最小値とならないと予測した場合、参照帯域として特定しない。よって、符号化条件の設定変更を無駄に待機することを防止することができる。
【００１５】
前記推定手段は、推定した推定時間と実際の取得時間との間の過去の誤差を用いて、前記帯域取得手段による前記参照帯域の取得が前記推定時間から遅れた場合の取得時間である遅延時間を予測する遅延時間予測手段を備えてもよい。前記符号化装置は、前記遅延時間予測手段によって予測された遅延時間が前記最大待機時間の経過時点よりも後であるか否かを判断する第二判断手段と、前記第二判断手段によって前記遅延時間が前記最大待機時間の経過時点よりも後であると判断された場合に、前記最大待機時間を延長する延長手段とをさらに備えてもよい。符号化装置は、最大待機時間の経過時点よりも後まで参照帯域の取得時間が遅延する場合があると判断すると、最大待機時間を延長する。従って、符号化装置は、参照帯域を参照する確率を上げることができ、より適した符号化条件を設定することができる。
【００１６】
前記待機時間設定手段は、前記符号化条件のうち、前記符号化データの各フレームの送信間隔に基づいて前記最大待機時間を設定してもよい。符号化装置は、フレームの送信間隔に応じた適切な最大待機時間を設定することができる。
【００１７】
本発明の第二の態様に係る符号化方法は、メディアデータを符号化することで、通信装置が１又は複数の通信相手にネットワークを介して送信する符号化データを生成する符号化装置によって行われる符号化方法であって、前記通信相手の各々との間の帯域を取得する帯域取得ステップと、前記帯域取得ステップにおいて前記帯域の各々が取得される時間を推定する推定ステップと、メディアデータを符号化する符号化ステップと、前記符号化ステップにおける符号化条件の設定を変更する予定時間である変更予定時間を取得する変更予定時間取得ステップと、前記変更予定時間取得ステップにおいて取得された変更予定時間、および前記推定ステップにおいて推定された推定時間に基づいて、前記符号化条件の設定を実際に変更する変更タイミングを決定する変更タイミング決定ステップと、前記変更タイミング決定ステップにおいて決定された変更タイミングが到来した際に、前記帯域取得ステップにおいて取得されている帯域に応じて前記符号化条件の設定を変更する設定変更ステップとを備えている。
【００１８】
第二の態様に係る符号化方法によると、符号化装置は、符号化条件の設定を変更する予定時間である変更予定時間を取得する。さらに、帯域を取得する時間を推定する。符号化装置は、変更予定時間および推定時間に基づいて、符号化条件の設定の変更タイミングを決定し、決定したタイミングで設定を変更する。従って、符号化装置は、帯域の計測結果の取得状況に応じた適切なタイミングで符号化の設定を変更することができる。
【００１９】
本発明の第三の態様に係る符号化プログラムは、メディアデータを符号化することで、通信装置が１又は複数の通信相手にネットワークを介して送信する符号化データを生成する符号化装置によって実行される符号化プログラムであって、前記通信相手の各々との間の帯域を取得する帯域取得ステップと、前記帯域取得ステップにおいて前記帯域の各々が取得される時間を推定する推定ステップと、メディアデータを符号化する符号化ステップと、前記符号化ステップにおける符号化条件の設定を変更する予定時間である変更予定時間を取得する変更予定時間取得ステップと、前記変更予定時間取得ステップにおいて取得された変更予定時間、および前記推定ステップにおいて推定された推定時間に基づいて、前記符号化条件の設定を変更する変更タイミングを決定する変更タイミング決定ステップと、前記変更タイミング決定ステップにおいて決定された変更タイミングが到来した際に、前記帯域取得ステップにおいて取得されている帯域に応じて前記符号化条件の設定を変更する設定変更ステップとを前記符号化装置のコントローラに実行させるための指示を含む。
【００２０】
第三の態様に係る符号化プログラムによると、符号化装置は、符号化条件の設定を変更する予定時間である変更予定時間を取得する。さらに、帯域を取得する時間を推定する。符号化装置は、変更予定時間および推定時間に基づいて、符号化条件の設定の変更タイミングを決定し、決定したタイミングで設定を変更する。従って、符号化装置は、帯域の計測結果の取得状況に応じた適切なタイミングで符号化の設定を変更することができる。
【図面の簡単な説明】
【００２１】
【図１】ＰＣ１の電気的構成、および通信システム１００の構成を示す図である。
【図２】フレームレートを変更して送信ビットレートを調整する場合の一例を示す図である。
【図３】ＧＯＰ構造をとる符号化データの送信ビットレートを調整する場合の一例を示す図である。
【図４】ＰＣ１が実行する接続時処理のフローチャートである。
【図５】ＰＣ１が実行する切断時処理のフローチャートである。
【図６】ＰＣ１が実行する符号化設定変更処理のフローチャートである。
【図７】符号化設定変更処理で行われる参照帯域特定処理のフローチャートである。
【図８】参照帯域特定処理で行われる帯域予測処理のフローチャートである。
【図９】ＰＣ１が実行する符号化処理のフローチャートである。
【図１０】変形例に係るＰＣ１が実行する符号化処理のフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の符号化装置を具現化した一実施の形態であるパーソナルコンピュータ（以下、「ＰＣ」という。）１、および複数のＰＣ１を備えた通信システム１００について、図面を参照して説明する。参照する図面は、本発明が採用し得る技術的特徴を説明するために用いられるものである。図面に記載されている装置の構成、各種処理のフローチャート等は、それのみに限定する趣旨ではなく、単なる説明例である。
【００２３】
通信システム１００について説明する。図１に示すように、通信システム１００は、少なくとも２つのＰＣ１を備える。ＰＣ１は、通信相手である他のＰＣ１に接続する。ＰＣ１は、他のＰＣ１との間で各種データを送受信する。
【００２４】
本実施の形態の通信システム１００は、複数の拠点のユーザがテレビ会議を行うためのテレビ会議システムである。各ＰＣ１は、音声データおよび動画データ（以下、「メディアデータ」という。）を互いに送受信することで、複数の拠点の音声および映像を共有し、テレビ会議を実現する。具体的には、ＰＣ１は、同一拠点内に存在するカメラ３３から映像のデータ（画像データ）を取得し、取得した画像データを符号化して符号化データを生成する。ＰＣ１は、生成した符号化データを、ネットワーク８を介して通信システム１００内の他のＰＣ１に送信する。さらに、ＰＣ１は、他のＰＣ１から受信した符号化データを復号化し、復号化したデータに基づいて、他の拠点の映像を表示装置３４に表示させる。その結果、複数の拠点の映像が通信システム１００内で共有される。音声の共有についても映像の共有と同様である。なお、ＰＣ１の代わりに、テレビ会議を実行するための専用のテレビ会議端末等を用いてもよい。
【００２５】
ＰＣ１の電気的構成について説明する。図１に示すように、ＰＣ１は、ＰＣ１の制御を司るＣＰＵ１０を備えている。ＣＰＵ１０には、ＲＯＭ１１、ＲＡＭ１２、ハードディスクドライブ（以下、「ＨＤＤ」という。）１３、および入出力インターフェース１９が、バス１８を介して接続されている。
【００２６】
ＲＯＭ１１は、ＰＣ１を動作させるためのプログラムおよび初期値等を記憶している。ＲＡＭ１２は、制御プログラムで使用される各種の情報を一時的に記憶する。ＨＤＤ１３は、メディアデータの符号化を制御するための符号化プログラム等の各種の情報を記憶する不揮発性の記憶装置である。ＨＤＤ１３の代わりに、ＥＥＰＲＯＭまたはメモリカード等の記憶装置を用いてもよい。
【００２７】
入出力インターフェース１９には、音声入力処理部２１、音声出力処理部２２、映像入力処理部２３、映像出力処理部２４、操作入力処理部２５、および外部通信Ｉ／Ｆ２６が接続されている。音声入力処理部２１は、音声を入力するマイク３１からの音声データの入力を処理する。音声出力処理部２２は、音声を出力するスピーカ３２の動作を処理する。映像入力処理部２３は、映像を撮像するカメラ３３からの画像データの入力を処理する。映像出力処理部２４は、映像を表示する表示装置３４の動作を処理する。操作入力処理部２５は、キーボードおよびマウス等の操作部３５からの操作入力を処理する。外部通信Ｉ／Ｆ２６は、ＰＣ１をネットワーク８に接続する。
【００２８】
帯域の計測について説明する。ＰＣ１は、メディアデータの符号化データをパケット化して他のＰＣ１との間で送受信しつつ、帯域を計測することができる。帯域とは、ＰＣ１がネットワーク８上で単位時間当たりに伝送できるデータ容量をいう。つまり、帯域は、送信側のＰＣ１が送信するデータの伝送速度（送信ビットレート）とほぼ等しい伝送速度で受信側のＰＣ１がデータを受信できる最大の伝送速度である。帯域と、各ＰＣ１間のデータの伝送速度とを比較するため、帯域を伝送路容量（ｂｐｓ）で表す。
【００２９】
帯域の計測方式には種々の方式を用いることができる。本実施の形態では、一例として、以下の文献に記載されている帯域の計測方式を用いる。「津川知朗、ＣａｏＬｅ  Ｔｈａｎｈ  Ｍａｎ、長谷川剛、村田正幸、「インラインネットワーク計測手法ＩｍＴＣＰおよびその応用手法の実装および性能評価」、電子情報通信学会技術研究報告（ＩＮ２００５−１２０）、ｐ．７９−８４、２００５年１２月」
【００３０】
上記文献に記載されている計測方式では、複数のパケットが、送信間隔を徐々に長くしながら、または徐々に短くしながら順次送信される。例えば、送信間隔を徐々に長くしながら複数のパケットを送信すると、送信ビットレートが帯域よりも大きい間は、受信側のＰＣ１がパケットの各々を受信する間隔（受信間隔）は、送信側のＰＣ１における送信間隔よりも長くなる。しかし、送信間隔が長くなり、送信ビットレートが帯域以下となれば、受信間隔と送信間隔とが同一となる。よって、「受信間隔−送信間隔」の値が変化する時点のデータの送信ビットレートを帯域として計測することができる。上記文献に記載されている計測方式を用いることで、帯域を計測するための専用パケット等を用いることなく、映像および音声等のデータを複数のＰＣ１間で送受信しながら帯域を計測することができる。
【００３１】
メディアデータの符号化条件について説明する。帯域を越える送信ビットレートでデータが送信されると、パケットロス、輻輳による送信遅延等が生じる。一方、ＰＣ１が送信ビットレートを低くしすぎると、帯域を十分に活用することができず、効率が悪い。従って、各ＰＣ１は、計測された帯域に合わせてデータの送信ビットレートを制御することが望ましい。本実施の形態のＰＣ１は、計測された帯域に合わせてメディアデータの符号化条件の設定を変更することで、送信ビットレートを適切な値に調整する。
【００３２】
符号化条件には、フレームレート、解像度、色数、およびＧＯＰの構造等がある。フレームレート、解像度、および色数の少なくともいずれかを減少させると、送信ビットレートは減少する。また、ＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅｓ）とは、Ｈ．２６４の規格等に基づいて画像圧縮符号化が行われる場合の一定のフレーム群を指す。画像圧縮符号化には、フレーム内符号化とフレーム間符号化とがある。フレーム内符号化とは、カメラによって入力された連続する複数フレーム分の画像データのうち、１フレーム分の画像データ内で行われる符号化である。フレーム内符号化によって生成される符号化データであるＩピクチャ（Ｉｎｔｒａ−ｃｏｄｅｄ  Ｐｉｃｔｕｒｅ）は、他のピクチャを参照することなく単独で復号することができる。一方、フレーム間符号化では、連続するフレームのデータのうち、符号化するフレームのデータとは異なるフレームのデータが参照されて予測誤差が計算され、計算された予測誤差が符号化される。フレーム間符号化によって生成される符号化データには、Ｐピクチャ（Ｐｒｅｄｉｃｔｉｖｅ−ｃｏｄｅｄ  Ｐｉｃｔｕｒｅ）、およびＢピクチャ（Ｂｉ−ｄｉｒｅｃｔｉｏｎａｌｌｙ  Ｐｒｅｄｉｃｔｉｖｅ−ｃｏｄｅｄ  Ｐｉｃｔｕｒｅ）がある。ＰピクチャおよびＢピクチャを復号化するには、他のフレームのデータが必要となる。しかし、ＰピクチャおよびＢピクチャのデータ量は、単独で復号できるＩピクチャに比べて少ない。前述したＧＯＰとは、Ｉピクチャから次のＩピクチャの直前までのフレーム群を指す。例えば、ＧＯＰにおけるＰピクチャおよびＢピクチャの割合を増加させた場合、および、フレーム間符号化において参照するフレームをより近いフレームとした場合には、送信ビットレートは減少する。
【００３３】
図２および図３を参照して、符号化条件の設定を変更する際の問題点について説明する。図２に示す例では、送信ビットレートを減少させるために、符号化条件の１つであるフレームレートを段階的に減少させる処理が行われている。その結果、最終的には、送信ビットレートは６００ｋｂｐｓから４００ｋｂｐｓに減少している。しかし、図２に示す例では、送信ビットレートの目標値を５００ｋｂｐｓとした後、すぐに目標値を４００ｋｂｐｓとし、フレームレートを連続して変更している。さらに、フレームレートを変更する毎にフレームのデータを送信している。その結果、送信ビットレートが瞬間的に増大している。
【００３４】
図３に示す例では、送信ビットレートを減少させるために、符号化条件の１つであるＧＯＰの構造の設定が変更されている。ここで、前述したように、Ｉピクチャのデータ量は、ＰピクチャおよびＢピクチャのデータ量よりも多い。従って、ＧＯＰ構造では、Ｉピクチャを送信した時点の送信ビットレートが高くなる。よって、図３に示すように、ＧＯＰの全てのデータの送信が完了する前にＧＯＰ構造の設定を変更し、新たなＧＯＰの送信をＩピクチャから開始すると、送信ビットレートが瞬間的に増大する。以上のように、送信ビットレートを瞬間的に増大させることなく調整するためには、符号化条件の設定を前回変更した時点から少なくとも一定以上の時間間隔を空けた後に、次の変更を行う必要がある。
【００３５】
帯域は変動するため、帯域に応じた適切な送信ビットレートでデータを送信するには、帯域の計測結果を取得した時点ですぐに符号化条件を設定することが望ましい。しかし、符号化条件の設定の変更後、すぐに設定を再変更すると、上記のように、送信ビットレートが瞬間的に増大する。また、帯域の計測が完了するタイミングは、計測しようとする帯域、ネットワーク遅延（例えば、通信経路、物理的な距離等に起因した遅延）等の様々な要因で変動する。従って、あらかじめ定めたタイミングで帯域の計測結果を取得することも困難である。特に、複数のＰＣ１との間の帯域に応じて符号化条件の設定内容を決定する場合には、計測する帯域の数が多くなる程、所定のタイミングで計測結果をまとめて取得することは困難となる。
【００３６】
以上より、ＰＣ１は、符号化条件の設定を変更するタイミングを、瞬間的な送信ビットレートの増大が生じないタイミングであり、且つ、できるだけ新しい帯域の計測結果を可能な限り取得できるタイミングとすることが望ましい。本実施の形態に係るＰＣ１は、帯域の計測結果が取得される時間を推定する。推定した時間と、符号化条件の設定を変更する予定時間とに応じて、適切なタイミングで符号化条件の設定を変更することができる。以下、処理の詳細について説明する。
【００３７】
図４から図９を参照して、ＰＣ１が実行する処理について説明する。以下説明する接続時処理、切断時処理、符号化設定変更処理、および符号化処理は、ＨＤＤ１３に記憶されている符号化プログラムに従って、ＰＣ１のＣＰＵ１０が実行する。ＣＰＵ１０は、接続時処理、切断時処理、符号化設定変更処理、および符号化処理を並行して実行することができる。なお、図４から図９に例示した処理は、主にフレームレートを変更することで送信ビットレートを調整する場合の処理であり、各フレームのデータ量は略同一である。
【００３８】
図４を参照して、接続時処理について説明する。ＣＰＵ１０は、通信システム１００内の他のＰＣ１との間の通信接続を実行する指示を操作部３５等から入力すると、接続時処理を開始する。まず、ＣＰＵ１０は、他のＰＣ１との間の最初の接続であるか否かを判断する（Ｓ１）。最初の接続であると判断した場合（Ｓ１：ＹＥＳ）、ＣＰＵ１０は、符号化設定変更処理（図６参照）を開始し（Ｓ２）、且つ符号化処理（図９参照）を開始する（Ｓ３）。その結果、テレビ会議が開始される。次いで、接続したＰＣ１との間の帯域を計測して取得する処理が開始されて（Ｓ４）、接続時処理は終了する。他のＰＣ１との間の最初の接続でないと判断した場合（Ｓ１：ＮＯ）、符号化設定変更処理および符号化処理は既に開始されているため、ＣＰＵ１０はそのままＳ４の処理を実行し、接続時処理は終了する。
【００３９】
図５を参照して、切断時処理について説明する。ＣＰＵ１０は、他のＰＣ１との間の通信接続を切断する指示を操作部３５または他のＰＣ１から入力すると、切断時処理を開始する。まず、ＣＰＵ１０は、通信接続を切断するＰＣ１との間の帯域の計測および取得を終了する（Ｓ６）。次いで、ＣＰＵ１０は、その時点で接続しているＰＣ１が、切断しようとしているＰＣ１のみであるか否か（最後の接続であるか否か）を判断する（Ｓ７）。他に接続しているＰＣ１があれば（Ｓ７：ＮＯ）、切断時処理はそのまま終了する。最後の接続であれば（Ｓ７：ＹＥＳ）、ＣＰＵ１０は、符号化設定変更処理（図６参照）を終了し（Ｓ８）、且つ符号化処理（図９参照）を終了して（Ｓ９）、切断時処理は終了する。
【００４０】
図６から図８を参照して、符号化設定変更処理について説明する。前述したように、符号化設定変更処理は接続時処理によって開始される（Ｓ２、図４参照）。まず、ＣＰＵ１０は、符号化設定変更処理を終了させる処理が行われたか否かを判断する（Ｓ２１）。切断時処理（図５参照）のＳ８で終了処理が行われていれば（Ｓ２１：ＹＥＳ）、処理は終了する。終了処理が行われていなければ（Ｓ２１：ＮＯ）、参照帯域特定処理が行われる（Ｓ２２）。参照帯域とは、符号化条件の設定を次回変更する際に参照する帯域である。参照帯域特定処理では、符号化条件の設定を変更する予定時間等に応じて参照帯域が特定される。
【００４１】
図７に示すように、ＣＰＵ１０は、参照帯域特定処理を開始すると、変更予定時間を取得する（Ｓ３１）。変更予定時間とは、符号化条件の設定を変更する予定時間であり、設定変更時に送信ビットレートが瞬間的に増大しない時間が変更予定時間とされる。本実施の形態では、ＣＰＵ１０は、前回の設定変更時から所定時間（例えば１秒）が経過した時点を変更予定時間として取得することで、送信ビットレートの増大を防止する。
【００４２】
ＣＰＵ１０は最大待機時間を設定する（Ｓ３２）。最大待機時間とは、変更予定時間の到来後に符号化条件の設定の変更を待機する最大の時間である。詳細は後述するが、ＣＰＵ１０は、変更予定時間の到来直後に帯域の計測結果を取得できると推定すれば、設定の変更を待機する。その結果、ＣＰＵ１０は、できるだけ新しい帯域の計測結果を参照して符号化条件の設定を変更することができる。しかし、待機する時間が長すぎると、帯域が変動して符号化条件の設定を変更すべき場合でも、すぐに変更できない場合が生じる。従って、ＣＰＵ１０は、最大待機時間の時間内に帯域の計測結果を取得できると推定した場合のみ、設定の変更を待機する。本実施の形態では、ＣＰＵ１０は以下の（式１）によって最大待機時間を算出し、設定する。なお、「１／フレームレート」はフレームの送信間隔となる。
最大待機時間＝（１／フレームレート）×ａ  （ａは正の係数）・・・・・（式１）
【００４３】
次いで、ＣＰＵ１０は、接続中のＰＣ１（通信相手）の各々の帯域について、参照帯域として特定するか否かを決定するための処理を行う。まず、ＣＰＵ１０は、全ての通信相手のＰＣ１について処理が完了しているか否かを判断する（Ｓ３３）。処理が完了していなければ（Ｓ３３：ＮＯ）、ＣＰＵ１０は、未だ処理していない通信相手のＰＣ１の１つを処理対象に特定し（Ｓ３４）、帯域予測処理を行う（Ｓ３５）。帯域予測処理では、処理対象の帯域が全ての通信相手の帯域の中で最低値となり得るか否か、つまり、他の通信相手の帯域と比較して最低値となるか否かが予測される。
【００４４】
図８に示すように、帯域予測処理では、ＣＰＵ１０は、処理対象の帯域についての過去の計測結果の履歴を取得する（Ｓ５１）。取得した履歴の平均および標準偏差を算出する（Ｓ５２）。ＣＰＵ１０は、算出した平均および標準偏差から、次回計測される処理対象の帯域の下限値を予測する（Ｓ５３）。つまり、処理対象の帯域が変動して下限の値が計測される場合の計測値を予測する。本実施の形態では、ＣＰＵ１０は以下の（式２）によって下限値を予測する。（式２）を用いることで、予測した下限値を実測値が下回る確率（下限値の予測に失敗する確率）は、僅か５％となる。なお、（式２）の係数「１．９６」の値は変更してもよい。
下限値＝平均−１．９６×（標準偏差／履歴数の平方根）・・・・・（式２）
【００４５】
ＣＰＵ１０は、予測した下限値がその時点の符号化データの送信ビットレート未満であるか否かを判断する（Ｓ５４）。これにより、処理対象の帯域が他の通信相手の帯域と比較して最低値となるか否かを予測する。その時点の送信ビットレートは、前回の符号化条件の設定変更時に参照された帯域のうち最低の帯域と同値である（詳細は後述する）。従って、予測した下限値は、その時点の送信ビットレート未満であれば、前回の設定変更時に参照された帯域のうちの最低の帯域未満であるとわかる。この場合、次に計測される処理対象の帯域は、変動して低い値となった場合、他の通信相手の帯域と比較して最低値となる可能性がある。よって、予測した下限値が送信ビットレート未満であるか否かを判断することで、処理対象の帯域が他の通信相手の帯域と比較して最低値となるか否かを予測できる。
【００４６】
予測した下限値が送信ビットレート以上であると判断した場合（Ｓ５４：ＮＯ）、ＣＰＵ１０は、処理対象の帯域が安定して高いと判定する（Ｓ５５）。予測した下限値が送信ビットレートよりも低ければ（Ｓ５４：ＹＥＳ）、処理対象の帯域は安定して高くない、つまり、他の通信相手と比較して最低値となる可能性があると判定する（Ｓ５６）。処理は終了し、参照帯域特定処理へ戻る。
【００４７】
図７の説明に戻る。帯域予測処理（Ｓ３５）が終了すると、処理対象の帯域が安定して高いと判定されたか否かを判断する（Ｓ３６）。安定して高いと判定された場合には（Ｓ３６：ＹＥＳ）、処理対象の帯域を基準として符号化条件が設定される可能性は低い。従って、処理対象の帯域は参照帯域に特定されることはなく、処理はそのままＳ３３へ戻る。
【００４８】
処理対象の帯域が安定して高くないと判定された場合には（Ｓ３６：ＮＯ）、処理対象の帯域が符号化条件を設定する際の基準とされる可能性がある。従って、ＣＰＵ１０は、処理対象の帯域については、できる限り最新の計測結果を参照して次の符号化条件を設定することが望ましい。よって、ＣＰＵ１０は、処理対象の帯域を参照帯域として特定するか否かを判断する。
【００４９】
具体的には、ＣＰＵ１０は、処理対象の帯域の計測結果が取得される時間（以下、「推定時間」という）を推定する（Ｓ３７）。推定時間は、ネットワークの遅延、計測帯域、帯域の計測に用いるパケットの数、帯域の計測に用いるパケットのデータ量、および過去の計測に要した時間の統計値の少なくともいずれかを用いて推定すればよい。例えば、過去の計測に要した時間の平均値を、計測を開始した時間に足すことで、推定時間を算出してもよい。次いで、ＣＰＵ１０は、推定時間が最大待機時間内に含まれているか否かを判断する（Ｓ３８）。最大待機時間内に含まれていなければ（Ｓ３８：ＮＯ）、処理対象の帯域は参照帯域に特定されることはなく、処理はそのままＳ３３へ戻る。推定時間が最大待機時間内に含まれていれば（Ｓ３８：ＹＥＳ）、ＣＰＵ１０は、処理対象の帯域を参照帯域として特定する（Ｓ３９）。なお、「最大待機時間内」とは、変更予定時間の到来以後であり、且つ最大待機時間が経過する以前を示す。
【００５０】
次いで、ＣＰＵ１０は、処理対象の帯域の実際の取得時間が推定時間よりも遅れた場合の遅延時間を予測する（Ｓ４０）。遅延時間は、処理対象の帯域についての過去の取得時間と推定時間の履歴を用いて予測するのが望ましい。本実施の形態のＣＰＵ１０は、過去の推定時間と取得時間の履歴を取得し、取得した履歴から「取得時間−推定時間」の平均と標準偏差を算出する。算出した平均と標準偏差を以下の（式３）に当てはめて遅延時間を予測する。しかし、遅延時間の予測方法はこれに限られない。例えば、過去に取得時間が推定時間よりも最も遅れた際の時間を、Ｓ３７で推定された推定時間に足して、遅延時間としてもよい。
遅延時間＝推定時間＋平均＋１．９６×（標準偏差／履歴数の平方根）・・・・・（式３）
【００５１】
ＣＰＵ１０は、予測した遅延時間が最大待機時間よりも後であるか否かを判断する（Ｓ４１）。最大待機時間以前であれば（Ｓ４１：ＮＯ）、処理はそのままＳ３３へ戻る。遅延時間が最大待機時間よりも後であれば（Ｓ４１：ＹＥＳ）、実際に待機する最大待機時間が、予測した遅延時間まで延長されて（Ｓ４２）、処理はＳ３３へ戻る。その結果、ＣＰＵ１０は、特定した参照帯域を参照して符号化条件を設定する確率を上げることができる。Ｓ３４〜Ｓ４２の処理が全ての通信相手に対して行われると（Ｓ３３：ＹＥＳ）、処理は符号化設定処理へ戻る。
【００５２】
図６の説明に戻る。参照帯域特定処理（Ｓ２２）が終了すると、ＣＰＵ１０は、特定した参照帯域の全てが取得されたか否かを判断する（Ｓ２３）。参照帯域の全てが取得された場合（参照帯域が１つも特定されていない場合を含む）には（Ｓ２３：ＹＥＳ）、ＣＰＵ１０は、変更予定時間が既に到来しているか否かを判断する（Ｓ２４）。変更予定時間が未だ到来していなければ（Ｓ２４：ＮＯ）、処理はＳ２３へ戻る。参照帯域の全てが取得され（Ｓ２３：ＹＥＳ）、且つ変更予定時間が到来していれば（Ｓ２４：ＹＥＳ）、処理はＳ２６へ移行する。また、参照帯域の全てを未だ取得していなければ（Ｓ２３：ＮＯ）、ＣＰＵ１０は、最大待機時間が経過したか否かを判断する（Ｓ２５）。経過していなければ（Ｓ２５：ＮＯ）、処理はＳ２３の判断へ戻る。最大待機時間が経過した場合には（Ｓ２５：ＹＥＳ）、参照帯域の全てが取得されているか否かに関わらず、処理はＳ２６へ移行する。
【００５３】
次いで、符号化条件の設定内容を決定して設定を変更する処理が行われる。まず、ＣＰＵ１０は、各々の通信相手の帯域計測結果のうち最新の計測結果を全て取得する（Ｓ２６）。取得した計測結果のうち、最も低い帯域の計測値が送信ビットレートとなるように、符号化条件の設定内容を決定する（Ｓ２７）。ＣＰＵ１０は、決定した設定内容が前回の設定内容から変更されたか否かを判断する（Ｓ２８）。変更されていなければ（Ｓ２８：ＮＯ）、処理はそのままＳ２１の判断へ戻る。設定内容が変更されていれば（Ｓ２８：ＹＥＳ）、ＣＰＵ１０は、決定した内容に符号化条件の設定を変更するための設定変更指示をＲＡＭ１２に出力し（Ｓ２９）、処理はＳ２１の判断へ戻る。
【００５４】
図９を参照して、符号化処理について説明する。前述したように、符号化処理は接続時処理によって開始される（Ｓ３、図４参照）。まず、ＣＰＵ１０は、符号化処理を終了させる処理が行われたか否かを判断する（Ｓ６１）。切断時処理（図５参照）のＳ９で終了処理が行われていなければ（Ｓ６１：ＮＯ）、ＣＰＵ１０は、カメラ３３から画像データを取得する（Ｓ６２）。ＣＰＵ１０は、取得した画像データを、その時点の符号化条件の設定に従って符号化する（Ｓ６３）。符号化したデータである符号化データを、全ての通信相手のＰＣ１に送信する（Ｓ６４）。次いで、ＣＰＵ１０は、その時点で設定されているフレームレートを取得する（Ｓ６５）。
【００５５】
ＣＰＵ１０は、符号化設定変更処理（図６参照）のＳ２９で設定変更指示が出力されているか否かを判断する（Ｓ６７）。出力されていなければ（Ｓ６７：ＮＯ）、ＣＰＵ１０は、フレームの送信間隔（１／フレームレート）が経過したか否かを判断する（Ｓ６８）。送信間隔が経過すると（Ｓ６８：ＹＥＳ）、処理はＳ６１の判断へ戻る。送信間隔が経過していなければ（Ｓ６８：ＮＯ）、処理はＳ６７の判断へ戻る。設定変更指示が出力されていれば（Ｓ６７：ＹＥＳ）、ＣＰＵ１０は、出力されている設定変更指示に従って符号化条件の設定を変更し（Ｓ６９）、処理はＳ６１の判断へ戻る。符号化処理を終了させる処理が行われると（Ｓ６１：ＹＥＳ）、処理は終了する。
【００５６】
以上説明したように、本実施の形態のＰＣ１は、符号化条件の設定を変更する予定時間である変更予定時間を取得する。さらに、帯域の計測結果を取得する時間を推定する。ＰＣ１は、変更予定時間および推定時間に基づいて、符号化条件の設定の変更タイミングを決定し、決定したタイミングで設定を変更する。従って、ＰＣ１は、帯域の計測結果の取得状況に応じた適切なタイミングで符号化条件の設定を変更することができる。
【００５７】
ＰＣ１は、設定した最大待機時間の間に帯域の計測結果が取得されると推定した場合、変更予定時間の到来後であっても、符号化条件の設定の変更を待機することができる。ＰＣ１は、設定の変更を待機することで、変更予定時間の到来直後に取得される最新の帯域の計測結果をより多く参照して設定を変更することができる。
【００５８】
参照帯域の取得時間が推定時間よりも遅れて、参照帯域が取得できないまま最大待機時間が経過した場合には、ＰＣ１は、その時点で符号化条件の設定を変更する。従って、符号化条件が長時間変更されないまま通信が行われることを防止することができる。さらに、ＰＣ１は、最大待機時間が経過する前に参照帯域の全てが取得された場合、全ての参照帯域が取得された時点で設定を変更する。よって、ＰＣ１は、変動する帯域に応じて、より素早く送信ビットレートを適切な値に調整することができる。
【００５９】
帯域は時間の経過と共に変動する。しかし、ＰＣ１に複数の通信相手が存在する場合、ある通信相手の帯域が変動して低くなった場合でも、それ以外の通信相手の帯域よりも低くなることがなければ符号化条件の設定に影響を与えない。ＰＣ１は、ある通信相手の帯域について、それ以外の通信相手の帯域と比較して最低値とならないと予測した場合、参照帯域として特定しない。よって、符号化条件の設定変更を無駄に待機することを防止することができる。
【００６０】
ＰＣ１は、最大待機時間の経過時点よりも後まで参照帯域の取得時間が遅延する場合があると判断すると、最大待機時間を延長する。従って、ＰＣ１は、参照帯域を参照する確率を上げることができ、より適した符号化条件を設定することができる。また、ＰＣ１はフレームの送信間隔に応じた適切な最大待機時間を設定することができる。
【００６１】
上記実施の形態において、ＰＣ１が本発明の「符号化装置」および「通信装置」に相当する。図４のＳ４で通信相手の各々との間の帯域を取得するＣＰＵ１０が「帯域取得手段」として機能する。図７のＳ３７で帯域が取得される時間を推定するＣＰＵ１０が「推定手段」として機能する。図９のＳ６３でメディアデータを符号化するＣＰＵ１０が「符号化手段」として機能する。図７のＳ３１で変更予定時間を取得するＣＰＵ１０が「変更予定時間取得手段」として機能する。図６のＳ２２〜Ｓ２５で符号化条件の設定を変更する変更タイミングを決定するＣＰＵ１０が「変更タイミング決定手段」として機能する。図６のＳ２６〜Ｓ２９、および図９のＳ６９で符号化条件の設定を変更するＣＰＵ１０が「設定変更手段」として機能する。
【００６２】
図７のＳ３２で最大待機時間を設定するＣＰＵ１０が「待機時間設定手段」として機能する。図７のＳ３８で最大待機時間の間に推定時間の少なくとも１つが含まれているか否かを判断するＣＰＵ１０が「第一判断手段」として機能する。図７のＳ３９で参照帯域を特定するＣＰＵ１０が「特定手段」として機能する。図７のＳ３５およびＳ３６で、処理対象の帯域が他の通信相手の帯域と比較して最低値となるか否かを予測するＣＰＵ１０が「帯域予測手段」として機能する。図７のＳ４０で遅延時間を予測するＣＰＵ１０が「遅延時間予測手段」として機能する。図７のＳ４１で遅延時間が最大待機時間の経過時点よりも後であるか否かを判断するＣＰＵ１０が「第二判断手段」として機能する。図７のＳ４２で最大待機時間を延長するＣＰＵ１０が「延長手段」として機能する。
【００６３】
図４のＳ４で通信相手の各々との間の帯域を取得する処理が「帯域取得ステップ」に相当する。図７のＳ３７で帯域が取得される時間を推定する処理が「推定ステップ」に相当する。図９のＳ６３でメディアデータを符号化する処理が「符号化ステップ」に相当する。図７のＳ３１で変更予定時間を取得する処理が「変更予定時間取得ステップ」に相当する。図６のＳ２２〜Ｓ２５で符号化条件の設定を変更する変更タイミングを決定する処理が「変更タイミング決定ステップ」に相当する。図６のＳ２６〜Ｓ２９、および図９のＳ６９で符号化条件の設定を変更する処理が「設定変更ステップ」に相当する。
【００６４】
本発明は上記実施の形態に限定されることはなく、様々な変形が可能であることは言うまでもない。図１０を参照して、ＰＣ１によって送信される符号化データがＧＯＰ構造（図３参照）をとる場合の処理について説明する。以下説明する変形例では、処理の一部が上記実施の形態のＰＣ１と異なるのみである。従って、同一の構成および処理については同一の番号を付し、説明を省略または簡略化する。
【００６５】
前述したように、ＧＯＰの全てのデータの送信が完了する前に符号化条件の設定を変更し、新たなＧＯＰの送信をＩピクチャから開始すると、送信ビットレートが瞬間的に増大する。従って、図７のＳ３１で取得する変更予定時間は、周期的に到来するＩピクチャの送信時間とすればよい。また、ＧＯＰ構造の場合、変更予定時間の到来後に設定の変更を待機している間は、次のフレーム（Ｉピクチャ）の送信も待機しなければ、Ｉピクチャの送信が連続して送信ビットレートは瞬間的に増大する。従って、一例として、ＣＰＵ１０は、図６のＳ２８の処理を行わずに、設定内容の変更があるか否かに関わらず設定変更指示を出力する（Ｓ２９）。さらに、図１０に示すように、ＣＰＵ１０は、画像データを符号化して送信する処理（Ｓ６２〜Ｓ６５）が終了すると、ＧＯＰの最後のフレームの送信が完了したか否かを判断する（Ｓ１０１）。最後のフレームの送信が完了しておらず、ＧＯＰの送信の途中であれば（Ｓ１０１：ＮＯ）、フレームの送信間隔が経過した時点で（Ｓ１０２：ＹＥＳ）、処理はＳ６１の判断へ戻り、ＣＰＵ１０は次のフレームの処理を行う。ＧＯＰの最後のフレームの送信が完了した場合には（Ｓ１０１：ＹＥＳ）、ＣＰＵ１０は、図６のＳ２９において設定変更指示が出力されるまで、フレームの送信および符号化条件の設定変更を共に待機する（Ｓ１０３：ＮＯ）。設定変更指示が出力されると（Ｓ１０３：ＹＥＳ）、ＣＰＵ１０は符号化条件の設定を変更し（Ｓ６９）、次のＧＯＰの送信を開始する。以上のように、本発明は、送信される符号化データがＧＯＰ構造をとる場合にも適用できる。
【００６６】
上記実施の形態はその他の変形も可能である。例えば、上記実施の形態では、画像データを符号化する処理、および符号化データを送受信する処理を、共にＰＣ１が実行する。つまり、ＰＣ１が、符号化装置および通信装置として機能する。しかし、符号化処理を行う符号化装置と、符号化データの送受信を行う通信装置を、別の装置としてもよい。例えば、通信装置として機能するＰＣに、撮像機能と符号化機能を併せ持つ符号化機能付きカメラを接続して用いても良い。ＰＣ１の代わりに、テレビ会議を実行するための専用の端末等を用いても良い。また、帯域を計測する処理をＰＣ１以外の他のデバイスが実行し、ＰＣ１は、他のデバイスが計測した帯域を取得してもよい。また、上記実施の形態では、映像のデータの符号化条件を設定する際の処理について説明した。しかし、本発明は、音声データ等の他のメディアデータの符号化条件を設定する際にも適用できる。
【００６７】
上記実施の形態のＰＣ１は、変更予定時間が到来し且つ参照帯域の全てが取得された時点、および、最大待機時間が経過した時点のいずれか早い時点を、符号化条件の設定変更タイミングに決定する。しかし、設定の変更タイミングの決定方法はこれに限られない。例えば、ＰＣ１は、最大待機時間の間に推定時間が含まれると判断した場合、最大待機時間が経過する時点を設定変更タイミングとしてもよい。最大待機時間の間に含まれる１または複数の推定時間のうち、最も遅く到来する推定時間を設定変更タイミングとしてもよい。また、上記実施の形態のＰＣ１は、帯域の計測結果の取得が遅延した場合の取得時間である遅延時間を予測し、予測した遅延時間が最大待機時間の経過時点よりも後であれば、最大待機時間を延長する。しかし、最大待機時間を延長する処理は省略してもよい。また、最大待機時間をフレームレートに基づいて設定しなくても、本発明は実現できる。例えば、最大待機時間を固定値としてもよいし、他のパラメータに応じて最大待機時間を設定することも可能である。
【００６８】
上記実施の形態のＰＣ１は、処理対象の通信相手の帯域が変動して下限の値が計測される場合の計測値（下限値）を、過去の計測結果の履歴の平均値および標準偏差を用いて予測する。しかし、下限値を他の方法で予測することも可能である。例えば、過去の計測結果の分散を用いて予測してもよいし、過去の最新の計測結果を用いて予測してもよい。
また、処理対象の帯域が最低値となり得るか否かを予測する方法も変更できる。例えば、処理対象の帯域の計測結果の平均値が、その時点の送信ビットレートよりも閾値以上高ければ、最低値とならないと予測してもよい。処理対象の帯域についての前回の計測結果が送信ビットレートよりも閾値以上高ければ、最低値とならないと予測してもよい。また、ＰＣ１は、通信相手の各々の帯域の下限値および上限値を予測し、処理対象の帯域の下限値が１つ以上の通信相手の帯域の上限値以上である場合に、処理対象の帯域が安定して高いと判断してもよい。この場合、上限値は以下の（式４）等で求めればよい。
上限値＝平均＋１．９６×（標準偏差／履歴数の平方根）・・・・・（式４）
また、ＰＣ１は、予測した下限値と比較する値を、過去の符号化条件の設定値（例えば、送信ビットレートの設定値）の履歴の平均値、分散、標準偏差等を用いて算出してもよい。
【符号の説明】
【００６９】
１    ＰＣ
８    ネットワーク
１０    ＣＰＵ
１３    ＨＤＤ
３３    カメラ
１００    通信システム
【図１】
0005187404.tif 000002
【図２】
0005187404.tif 000003
【図３】
0005187404.tif 000004
【図４】
0005187404.tif 000005
【図５】
0005187404.tif 000006
【図６】
0005187404.tif 000007
【図７】
0005187404.tif 000008
【図８】
0005187404.tif 000009
【図９】
0005187404.tif 000010
【図１０】
0005187404.tif 000011