(57)【要約】【課題】インターネットを介したビデオを用いたチャットシステムでは、パケットの損失によるフレームの欠落が生じる。【解決手段】ビデオエンコーダ２１０は、カメラ２４０により撮影された動画をフレーム間符号化し、動画符号化ストリームを生成する。Ｉフレーム送信要求管理部２０２は、動画符号化ストリームを受信する受信先においてフレームが正常に受信できなかった場合に、フレーム間符号化されていないＩフレームの送信を要求する基準フレーム送信要求信号を当該受信先から受信し、受信した基準フレーム送信要求信号を受理するかどうかを決める。Ｉフレーム送信要求管理部２０２は、Ｉフレーム送信要求信号を受理した場合に、Ｉフレーム設定信号をビデオエンコーダ２１０に与え、ビデオエンコーダ２１０は、Ｉフレーム設定信号を受けて次の符号化対象フレームをＩフレームに設定した上で、動画のフレーム間符号化を行う。【選択図】図３
2008131143.tif 000002
【特許請求の範囲】
【請求項１】
動画をフレーム間符号化し、動画符号化ストリームを生成する符号化部と、
前記動画符号化ストリームの受信先においてフレームが正常に受信できなかった場合に、フレーム間符号化されていない基準フレームの送信を要求する基準フレーム送信要求信号を当該受信先から受信する基準フレーム送信要求管理部とを含み、
前記符号化部は、前記基準フレーム送信要求管理部が前記基準フレーム送信要求信号を受け取った場合に、次の符号化対象フレームを基準フレームに設定した上で、前記動画のフレーム間符号化を行うことを特徴とする符号化処理装置。
【請求項２】
動画をフレーム間符号化し、動画符号化ストリームを生成する符号化部と、
前記動画符号化ストリームを受信する複数の受信先の少なくとも一つにおいてフレームが正常に受信できなかった場合に、フレーム間符号化されていない基準フレームの送信を要求する基準フレーム送信要求信号を当該少なくとも一つの受信先から受信し、受信した基準フレーム送信要求信号を受理するかどうかを決める基準フレーム送信要求管理部とを含み、
前記符号化部は、前記基準フレーム送信要求管理部が基準フレーム送信要求信号を受理した場合に、次の符号化対象フレームを基準フレームに設定した上で、前記動画のフレーム間符号化を行うことを特徴とする符号化処理装置。
【請求項３】
前記基準フレーム送信要求管理部は、基準フレーム送信要求信号の不受理期間を設け、前記不受理期間においては基準フレーム送信要求信号を受理しないことを特徴とする請求項２に記載の符号化処理装置。
【請求項４】
前記不受理期間は、基準フレーム送信要求信号を受理してから所定のフレーム数分の期間であることを特徴とする請求項３に記載の符号化処理装置。
【請求項５】
前記基準フレーム送信要求管理部が基準フレーム送信要求信号を受信した場合、前記符号化部に対して前記動画符号化ストリームのビットレートを一時的に下げる指示を与えるビットレート調整部をさらに含み、
前記符号化部は、前記ビットレート調整部の指示を受けて、ビットレートを下げて動画を符号化することを特徴とする請求項１から４のいずれかに記載の符号化処理装置。
【請求項６】
動画をフレーム間符号化し、動画符号化ストリームを生成する符号化ステップと、
前記動画符号化ストリームの受信先においてフレームが正常に受信できなかった場合に、フレーム間符号化されていない基準フレームの送信を要求する基準フレーム送信要求信号を当該受信先から受信する基準フレーム送信要求受信ステップとを含み、
前記符号化ステップは、前記基準フレーム送信要求信号が受信された場合に、次の符号化対象フレームを基準フレームに設定した上で、前記動画のフレーム間符号化を行うことを特徴とする符号化処理方法。
【請求項７】
動画をフレーム間符号化し、動画符号化ストリームを生成する符号化ステップと、
前記動画符号化ストリームを受信する複数の受信先の少なくとも一つにおいてフレームが正常に受信できなかった場合に、フレーム間符号化されていない基準フレームの送信を要求する基準フレーム送信要求信号を当該少なくとも一つの受信先から受信する基準フレーム送信要求受信ステップと、
受信した基準フレーム送信要求信号を受理するかどうかを決める基準フレーム送信要求受理ステップとを含み、
前記符号化ステップは、前記基準フレーム送信要求信号が受理された場合に、次の符号化対象フレームを基準フレームに設定した上で、前記動画のフレーム間符号化を行うことを特徴とする符号化処理方法。
【請求項８】
コンピュータに機能を実現させるプログラムであって、当該プログラムは、
動画をフレーム間符号化し、動画符号化ストリームを生成する符号化機能と、
前記動画符号化ストリームの受信先においてフレームが正常に受信できなかった場合に、フレーム間符号化されていない基準フレームの送信を要求する基準フレーム送信要求信号を当該受信先から受信する基準フレーム送信要求受信機能とをコンピュータに実現させ、
前記符号化機能は、前記基準フレーム送信要求信号が受信された場合に、次の符号化対象フレームを基準フレームに設定した上で、前記動画のフレーム間符号化を行うことを特徴とするプログラム。
【請求項９】
コンピュータに機能を実現させるプログラムであって、当該プログラムは、
動画をフレーム間符号化し、動画符号化ストリームを生成する符号化機能と、
前記動画符号化ストリームを受信する複数の受信先の少なくとも一つにおいてフレームが正常に受信できなかった場合に、フレーム間符号化されていない基準フレームの送信を要求する基準フレーム送信要求信号を当該少なくとも一つの受信先から受信する基準フレーム送信要求受信機能と、
受信した基準フレーム送信要求信号を受理するかどうかを決める基準フレーム送信要求受理機能とをコンピュータに実現させ、
前記符号化機能は、前記基準フレーム送信要求信号が受理された場合に、次の符号化対象フレームを基準フレームに設定した上で、前記動画のフレーム間符号化を行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動画を符号化する装置および方法に関する。
【背景技術】
【０００２】
ブロードバンドネットワークの普及によって、インターネットでビデオやオーディオのストリームを配信することが盛んになってきている。ストリーム配信は、インターネット電話、遠隔テレビ会議、チャットといったインターネットサービスに利用されている。ビデオおよびオーディオストリームを利用したチャットシステムでは、遠隔地にいるユーザの顔画像および音声をネットワークを介して相互に送信し、ユーザの端末において動画および音声を再生することより、あたかもその場に一緒にいるかのようにチャットをすることができる。
【０００３】
ビデオストリーム配信は、動画のフレーム画像をＭＰＥＧ（Moving Picture Experts Group）やＨ．２６４／ＡＶＣ（Advanced Video Coding）などの動画像符号化方式により圧縮符号化して生成されるビデオストリームをＩＰ（Internet Protocol）パケットに格納してインターネット上を転送させ、ユーザの通信端末に受信させることで実現される。インターネットは、ベストエフォートでパケットを転送するため、ネットワークが輻輳すると、パケットが破棄されたり遅延することで、データが欠損することがあり、フレーム画像が正しく受信されないことがある。
【０００４】
たとえば、特許文献１には、複数の他の通信装置と相互に画像データおよび音声データを通信する通信装置が開示されている。
【特許文献１】特開２００１−５７６７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
インターネットを介してビデオとオーディオを用いたチャットシステムを構成した場合、通常でもＩＰパケットが数パーセントの割合で損失することがあり、ビデオ符号化ストリームのフレームの少なくとも一部が欠落し、正しく復号することができないことがある。チャットシステムではリアルタイム性が最も重要であり、フレーム落ちにより動画の再生品質が低下することは致命的である。ビデオストリーム配信では、フレーム落ちが生じた場合、欠落したフレームの再送を送信元に要求し、送信元から再度そのフレームを受信することもできるが、チャットシステムのようなリアルタイム性が要求されるアプリケーションでは、再送されたフレームを再生しても遅延が大きくなるため、リアルタイム性が失われ、動画の品質要求に十分に応えることはできない。また、フレームを再送するには送信元で送信済みのフレームをメモリに蓄えておく必要があり、メモリ容量が余分に必要になる。
【０００６】
本発明はこうした課題に鑑みてなされたものであり、その目的は、ネットワークを介してリアルタイムに動画を配信することのできる動画の符号化技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の符号化処理装置は、動画をフレーム間符号化し、動画符号化ストリームを生成する符号化部と、前記動画符号化ストリームの受信先においてフレームが正常に受信できなかった場合に、フレーム間符号化されていない基準フレームの送信を要求する基準フレーム送信要求信号を当該受信先から受信する基準フレーム送信要求管理部とを含む。前記符号化部は、前記基準フレーム送信要求管理部が前記基準フレーム送信要求信号を受け取った場合に、次の符号化対象フレームを基準フレームに設定した上で、前記動画のフレーム間符号化を行う。
【０００８】
ここで、「動画符号化ストリームの受信先においてフレームが正常に受信できなかった場合」とは、たとえば、ネットワークにおいてパケットが損失されて、フレームの少なくとも一部が受信されなかった場合や、パケットが遅延することにより、復号すべきタイミングに間に合ってフレームが受信されなかった場合も含まれる。このようなフレーム落ちが生じた場合、フレーム間符号化された後続のフレームを正常に復号することができなくなり、動画を正常に再生することができない。フレーム落ちが生じると、受信先は基準フレーム送信要求を送信元に送信し、送信元から新たに基準フレームが設定されて符号化された動画フレームを受け取ることで、動画フレームの欠落を最小限にとどめることができる。
【０００９】
本発明の別の態様もまた、符号化処理装置である。この装置は、動画をフレーム間符号化し、動画符号化ストリームを生成する符号化部と、前記動画符号化ストリームを受信する複数の受信先の少なくとも一つにおいてフレームが正常に受信できなかった場合に、フレーム間符号化されていない基準フレームの送信を要求する基準フレーム送信要求信号を当該少なくとも一つの受信先から受信し、受信した基準フレーム送信要求信号を受理するかどうかを決める基準フレーム送信要求管理部とを含む。前記符号化部は、前記基準フレーム送信要求管理部が基準フレーム送信要求信号を受理した場合に、次の符号化対象フレームを基準フレームに設定した上で、前記動画のフレーム間符号化を行う。
【００１０】
本発明のさらに別の態様は、コンピュータに機能を実現させるプログラムである。このプログラムは、動画をフレーム間符号化し、動画符号化ストリームを生成する符号化機能と、前記動画符号化ストリームの受信先においてフレームが正常に受信できなかった場合に、フレーム間符号化されていない基準フレームの送信を要求する基準フレーム送信要求信号を当該受信先から受信する基準フレーム送信要求受信機能とをコンピュータに実現させる。前記符号化機能は、前記基準フレーム送信要求信号が受信された場合に、次の符号化対象フレームを基準フレームに設定した上で、前記動画のフレーム間符号化を行う。
【００１１】
本発明のさらに別の態様もまた、コンピュータに機能を実現させるプログラムである。このプログラムは、動画をフレーム間符号化し、動画符号化ストリームを生成する符号化機能と、前記動画符号化ストリームを受信する複数の受信先の少なくとも一つにおいてフレームが正常に受信できなかった場合に、フレーム間符号化されていない基準フレームの送信を要求する基準フレーム送信要求信号を当該少なくとも一つの受信先から受信する基準フレーム送信要求受信機能と、受信した基準フレーム送信要求信号を受理するかどうかを決める基準フレーム送信要求受理機能とをコンピュータに実現させる。前記符号化機能は、前記基準フレーム送信要求信号が受理された場合に、次の符号化対象フレームを基準フレームに設定した上で、前記動画のフレーム間符号化を行う。
【００１２】
このプログラムは、ビデオやオーディオのデコーダ等のハードウエア資源の基本的な制御を行なうために機器に組み込まれるファームウエアの一部として提供されてもよい。このファームウエアは、たとえば、機器内のＲＯＭやフラッシュメモリなどの半導体メモリに格納される。このファームウエアを提供するため、あるいはファームウエアの一部をアップデートするために、このプログラムを記録したコンピュータ読み取り可能な記録媒体が提供されてもよく、また、このプログラムが通信回線で伝送されてもよい。
【００１３】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１４】
本発明によれば、ネットワークを介して高品質な動画をリアルタイムに配信することができる。
【発明を実施するための最良の形態】
【００１５】
図１は、実施の形態に係るチャットシステムの構成図である。複数の情報処理装置１００ａ〜１００ｅにはそれぞれマイク２３０ａ〜２３０ｅ、カメラ２４０ａ〜２４０ｅ、スピーカ２５０ａ〜２５０ｅ、ディスプレイ２６０ａ〜２６０ｅが接続されている。複数の情報処理装置１００ａ〜１００ｅは、ネットワーク３００に接続されている。複数のユーザがそれぞれの情報処理装置１００ａ〜１００ｅを用いて、ネットワーク３００を介して互いに自分の顔画像と音声をリアルタイムで送信し合い、また、キーボードから入力されるテキストデータを交換し合うことで、オーディオとビデオを用いたコミュニケーション（いわゆるチャット）を行う。
【００１６】
以下、各ユーザの情報処理装置１００ａ〜１００ｅを情報処理装置Ａ〜Ｅと表記することがある。また、各ユーザの情報処理装置１００ａ〜１００ｅなどの構成を総称するときは、符号ａ〜ｅを省略して、単に符号１００などで表記する。
【００１７】
図２は、情報処理装置１００の構成図である。ここでは、チャットに係る構成は省略し、オーディオとビデオの符号化と復号に係る構成を示す。
【００１８】
情報処理装置１００は、符号化処理ブロック２００と、復号処理ブロック２２０と、通信部２７０とを含む。情報処理装置１００は、一例として、パーソナルコンピュータや携帯端末であってもよく、マルチプロセッサシステムであってもよい。特に、複数のプロセッサを１個のパッケージに集積したマルチコアプロセッサを搭載したシステムであってもよい。情報処理装置１００がパーソナルコンピュータである場合、符号化処理ブロック２００と復号処理ブロック２２０は、画像符号化・復号の機能をもつ専用回路をパーソナルコンピュータに別途搭載することで実現してもよい。また、情報処理装置１００がマルチコアプロセッサシステムのようなマルチプロセッサシステムである場合、マルチプロセッサの高い計算能力を用いることができるため、符号化処理ブロック２００と復号処理ブロック２２０はソフトウエアで実現されてもよい。
【００１９】
符号化処理ブロック２００は、マイク２３０に入力される音声とカメラ２４０で撮影される動画とを圧縮符号化してオーディオ符号化ストリームおよびビデオ符号化ストリームを生成する。オーディオ符号化ストリームとビデオ符号化ストリームを多重化して一つのストリームとすることもできる。符号化処理ブロック２００により生成されたオーディオ符号化ストリームとビデオ符号化ストリームは、通信部２７０によってパケット化され、ネットワーク３００を介してチャットの相手先に送信される。
【００２０】
通信部２７０は、ネットワーク３００を介してチャットの相手先からオーディオ符号化ストリームおよびビデオ符号化ストリームのパケットを受信し、復号処理ブロック２２０に供給する。復号処理ブロック２２０は、受信されたオーディオ符号化ストリームおよびビデオ符号化ストリームを復号してオーディオとビデオを再生し、それぞれスピーカ２５０とディスプレイ２６０に出力する。
【００２１】
後で詳述するように、復号処理ブロック２２０は、ネットワークの輻輳などの原因により、パケットが損失し、動画のＰ（Predictive）フレームもしくはＢ（Bi-predictive prediction）フレームが欠落したときは、フレーム間符号化されていない基準フレームであるＩ（Intra）フレームの送信をチャットの相手先に要求する信号を通信部２７０を介して相手先の情報処理装置１００に送る。相手先の情報処理装置１００では、そのＩフレームの送信要求信号は通信部２７０を介して受信され、符号化処理ブロック２００に入力される。符号化処理ブロック２００は、受け取ったＩフレームの送信要求信号を管理し、必要に応じて、次の符号化対象フレームをＩフレームに設定した上で、ビデオのフレーム間符号化を行い、ビデオの符号化ストリームを送信する。
【００２２】
図３は、符号化処理ブロック２００の構成図である。ここでは、オーディオの符号化に係る構成は省略し、ビデオの符号化に係る構成を示す。
【００２３】
符号化処理ブロック２００は、Ｉフレーム送信要求管理部２０２と、ビットレート調整部２０４と、ビデオエンコーダ２１０とを含む。Ｉフレーム送信要求管理部２０２には、通信部２７０において他の情報処理装置１００から受信されたＩフレーム送信要求信号が入力される。特に、ネットワークの輻輳時には、複数のビデオ送信先の情報処理装置１００からのＩフレーム送信要求信号が立て続けに入力されることもある。
【００２４】
Ｉフレーム送信要求管理部２０２は、他の情報処理装置１００から受け取ったＩフレーム送信要求信号を管理し、ビデオエンコーダ２１０に動画の符号化におけるフレームの種類をＩフレームに設定する信号をビデオエンコーダ２１０に与える。Ｉフレーム送信要求管理部２０２は、他の情報処理装置１００からＩフレーム送信要求信号を受け取ると直ちにビデオエンコーダ２１０にＩフレーム設定信号を与えてもよく、複数の情報処理装置１００からＩフレーム送信要求信号を立て続けに受け取った場合は、所定の条件にしたがって、Ｉフレーム送信要求信号を受理するかどうか決めて、受理した場合にＩフレーム設定信号をビデオエンコーダ２１０に与えるようにしてもよい。
【００２５】
また、Ｉフレーム送信要求管理部２０２は、ビットレート調整部２０４に対して、Ｉフレーム送信要求信号の受信状況を通知する。ビットレート調整部２０４は、Ｉフレーム送信要求信号の受信状況に応じてビデオの符号化ビットレートを調整し、調整されたビットレートをビデオエンコーダ２１０に与える。たとえば、Ｉフレーム送信要求信号が途切れることなく受信される状況であれば、ネットワークが恒常的に輻輳していると判断されるため、ビットレートを下げる。Ｉフレーム送信要求信号の受信間隔が所定の期間以上である状況であれば、ネットワークが輻輳していないと判断されるため、ビットレートを上げる。
【００２６】
ビデオエンコーダ２１０は、Ｉフレーム送信要求管理部２０２からは符号化フレームの種類をＩフレームに設定するためのＩフレーム設定信号を受け取り、ビットレート調整部２０４からは調整後のビットレートの値を受け取る。ビデオエンコーダ２１０は、カメラ２４０により撮影される動画を符号化し、ビデオ符号化ストリームを通信部２７０に与える。
【００２７】
図４は、ビデオエンコーダ２１０の構成図である。同図は機能に着目したブロック図を描いており、これらの機能ブロックはハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現することができる。
【００２８】
ビデオエンコーダ２１０は、フレーム単位で動画像の入力信号を受け取り、一例として、Ｈ．２６４／ＡＶＣ規格にしたがってフレーム画像を符号化し、動画像の符号化ストリームを出力する。
【００２９】
Ａ／Ｄ変換部５０は、アナログ入力信号をデジタル化し、フレーム参照バッファ５２に与える。フレーム参照バッファ５２は、フレーム間予測符号化の際に参照されるフレームを並べ替えて保持するバッファである。Ｈ．２６４／ＡＶＣ規格では、フレーム間予測符号化の際、過去、未来のいずれのフレームを参照画像としてもよく、また参照するフレームの枚数も任意であり、参照されるフレームを並べ替えて保持するバッファを設け、動き予測・補償部６６に参照画像を供給する必要がある。
【００３０】
動き予測・補償部６６は、フレーム参照バッファ５２に格納されている過去または未来の画像フレームを参照画像として利用し、ＰフレームまたはＢフレームのマクロブロック毎に動き予測を行い、動きベクトルと動き補償された予測画像とを生成する。動き予測・補償部６６は、生成した動きベクトルを可変長符号化部６８に与え、予測画像を差分器５４に与える。
【００３１】
差分器５４は、フレーム参照バッファ５２から供給される画像フレームがＩフレームである場合、そのまま直交変換部５６に供給し、Ｐ／Ｂフレームである場合は、動き予測・補償部６６から供給される予測画像との差分を計算して直交変換部５６に供給する。
【００３２】
直交変換部５６は、供給されたＩフレームの画像もしくはＰ／Ｂフレームの差分画像を離散コサイン変換（Discrete Cosine Transform；ＤＣＴ）し、得られたＤＣＴ係数を量子化部５８に与える。
【００３３】
量子化部５８は、ＤＣＴ係数を量子化し、可変長符号化部６８に与える。また、量子化部５８は、動き補償を行うために、画像フレームの量子化されたＤＣＴ係数を逆量子化部６０に供給する。逆量子化部６０は、与えられた量子化データを逆量子化し、逆直交変換部６２に与え、逆直交変換部６２は、与えられた逆量子化データを逆離散コサイン変換する。これにより、符号化された画像フレームが復元される。復元された画像フレームはフレームメモリ６４に格納される。
【００３４】
動き予測・補償部６６は、フレームメモリ６４に格納された再構成されたフレーム画像を符号化対象フレームとして参照し、動き補償を行う。
【００３５】
可変長符号化部６８は、量子化部５８により量子化されたＤＣＴ係数の可変長符号化を行い、可変長符号化された圧縮画像データをストリームバッファ７０に格納する。可変長符号化部６８は、Ｐ／Ｂフレームの場合は、動き予測・補償部６６から与えられた動きベクトルとともに差分画像の量子化されたＤＣＴ係数を可変長符号化する。
【００３６】
ストリームバッファ７０には、圧縮フレーム画像と動きベクトル情報を含むビデオ符号化ストリームが形成される。ビットレート制御部７２は、ストリームバッファ７０に蓄積されるビデオ符号化ストリームのビットレートを参照し、量子化部５８における量子化ステップを調整する。フレーム画像は可変長符号化されるため、各フレームのデータ量は符号化するまで判明しない。そのため、ビットレート制御部７２は、ストリームバッファ７０に蓄積されたビデオ符号化ストリームのビットレートを検出して、量子化ステップを増減し、所定のビットレートで再生が可能な符号量に調整する。
【００３７】
さらに、ビットレート制御部７２は、ビットレート調整部２０４により調整されたビットレートの指定値を受け取った場合は、その指定されたビットレートを参照して、量子化部５８の量子化ステップを調整することで、ネットワークの輻輳などの外的な条件に合わせて大局的にビットレートを調整することができる。なお、ビットレートの調整方法として、量子化パラメータを変更する以外に、解像度やフレームレートを変更する方法を用いてもよい。
【００３８】
ＧＯＰ設定部７６は、動画フレームの符号化単位であるＧＯＰ（Group of Picture）を設定する。たとえば、ＧＯＰを構成するフレーム数は６０枚に設定され、６０枚のＧＯＰの最初にＩフレームが挿入され、残りの５９枚はフレーム間予測符号化されるＰフレームまたはＢフレームで構成される。ＧＯＰ設定部７６は、ＧＯＰを構成するフレーム数を適宜変更してもよい。たとえば、動画のシーンチェンジがあったタイミングにＧＯＰの区切りを設け、ＧＯＰの区切りにＩフレームが挿入されるようにしてもよい。ＧＯＰ設定部７６は、Ｉフレーム設定部７４にＧＯＰの情報を与え、Ｉフレーム設定部７４は、ＧＯＰの区切りにおいてフレームの符号化タイプをＩフレームに設定するＩフレーム設定信号をフレーム間符号化ブロック８０に与える。
【００３９】
さらに、Ｉフレーム設定部７４は、Ｉフレーム送信要求管理部２０２からＩフレーム設定信号を受け取った場合は、そのＩフレーム設定信号をフレーム間符号化ブロック８０に与える。これにより、一つのＧＯＰ内でも、Ｉフレーム送信要求管理部２０２の指示により、フレームの符号化タイプをＩフレームに設定することができる。
【００４０】
フレーム間符号化ブロック８０は、上述の差分器５４、直交変換部５６、量子化部５８、逆量子化部６０、逆直交変換部６２、フレームメモリ６４、動き予測・補償部６６、可変長符号化部６８を含み、Ｉフレーム設定部７４からＩフレーム設定信号が与えられた場合、フレーム間符号化ブロック８０は、Ｉフレームの符号化を行い、それ以外では、フレーム間予測によりＰフレームまたはＢフレームの符号化を行う。
【００４１】
以下、ビデオ符号化ストリームの送信先の情報処理装置１００の復号処理ブロック２２０からＩフレーム送信要求が送信された場合に、送信元の情報処理装置１００の符号化処理ブロック２００においてフレーム符号化タイプがＩフレームに切り替えられる仕組みを説明する。
【００４２】
図５（ａ）〜（ｃ）は、Ｉフレーム送信要求に応じてＩフレーム符号化に切り替わる仕組みを説明する図である。図５（ａ）は、フレームの欠落がないときに情報処理装置１００の復号処理ブロック２２０により、ビデオ符号化ストリームがＧＯＰ毎に復号される様子を示す。ここでは、ＧＯＰは６０枚のフレーム（＃１〜＃６０）で構成され、たとえば、１ＧＯＰが２秒間で再生されるとする。すなわちフレームレートは３０フレーム／秒である。
【００４３】
ビデオ符号化ストリームのＧＯＰの最初にはＩフレーム（＃１）が挿入されており、Ｉフレームを復号するとそれ自体で一枚のフレーム画像が再生される。それ以降の５９枚のフレームはここではＰフレーム（＃２〜＃６０）であり、一つ前のフレームとの差分のみが符号化されている。Ｐフレームを復号して得られる差分データを一つ前のフレームと加算することにより、一枚のフレーム画像が再生される。
【００４４】
図５（ｂ）は、ネットワークにおけるパケット損失により、３番目のフレームであるＰフレームの少なくとも一部が正常に受信されなかった場合を示す。Ｐフレーム＃３が正常に再生されないため、それ以降のＰフレーム＃４〜＃６０が正常に受信されたとしても、４番目以降のフレームを正常に再生することはできなくなる。同図では、正常に再生できないフレームを斜線で図示している。再生品質を維持するためには、２番目のフレームであるＰフレーム＃２により再生されたフレーム画像で動画の表示をいったん止めて、それ以降のフレーム再生はあきらめざるを得ない。
【００４５】
最初のＧＯＰの６０枚のフレームの受信が終わり、次のＧＯＰの最初のＩフレーム＃６１が受信されると、そのＩフレーム＃６１はそれ自体で復号してフレーム画像を再生することができる。したがって、２番目のフレーム画像で止まっていた画面は、次のＧＯＰの開始とともにＩフレーム＃６１の画像に切り替わり、それ以降は動画の再生が再開される。１ＧＯＰの再生には２秒かかるため、ユーザは２秒間は停止した画像を見せられることになり、リアルタイム性に欠けることになる。
【００４６】
そこで、本実施の形態に係る情報処理装置１００の復号処理ブロック２２０では、ＧＯＰ内でフレームが欠落すると、送信元の情報処理装置１００の符号化処理ブロック２００にＩフレームの送信を要求する。図５（ｃ）に示すように、Ｐフレーム＃３が欠落すると、ビデオ符号化ストリームの送信先の復号処理ブロック２２０は、Ｉフレーム送信要求信号を送信元の符号化処理ブロック２００に送信する。送信元の符号化処理ブロック２００は、Ｉフレーム送信要求信号を受信すると、その時点でフレームの符号化タイプをＩフレームに切り替えてそれ以降のフレームをフレーム間符号化する。
【００４７】
送信元の符号化処理ブロック２００は、符号化されたＩフレーム＃６およびそれ以降のＰフレーム＃７〜＃６０を送信先の復号処理ブロック２２０に送信する。復号処理ブロック２２０は、Ｉフレーム＃６を復号し、それ以降は、そのＩフレーム＃６を基準とした差分フレームであるＰフレーム＃７〜＃６０を復号する。これにより、欠落したＰフレーム＃３と、Ｉフレーム送信要求に応じて新しいＩフレーム＃６が送信されるまでのＰフレーム＃４、＃５は正常に復号できないため、フレームがスキップされるが、６番目以降のフレーム＃６〜＃６０は正常に再生される。なお、Ｉフレーム送信要求してから新しいＩフレームが到着するまでの時間は、ネットワークのレイテンシや符号化処理ブロック２００における処理レイテンシに依存する。
【００４８】
上記の説明では、符号化処理ブロック２００のＩフレーム送信要求管理部２０２は、送信先の複数の情報処理装置１００のいずれかの復号処理ブロック２２０からＩフレーム送信要求信号を受け取ると、ビデオエンコーダ２１０に対してフレーム符号化タイプをＩフレームに切り替えるように制御した。
【００４９】
しかしながら、特にネットワークの輻輳時には、送信先の複数の情報処理装置１００の復号処理ブロック２２０からＩフレーム送信要求信号を立て続けに受信されることがあるため、受信されたすべてのＩフレーム送信要求信号に応答することは必ずしも好ましくない。そこで、さらなる改良として、Ｉフレーム送信要求管理部２０２は、受信されたＩフレーム送信要求信号を所定の条件下で受理することにし、Ｉフレーム送信要求信号を受理した場合に、ビデオエンコーダ２１０に対してフレーム符号化タイプをＩフレームに切り替えるように制御する。以下、図６〜図８を参照して、この改良点について説明する。
【００５０】
図６は、一つの情報処理装置１００において複数のＩフレーム送信要求信号が受信される様子を説明する図である。情報処理装置Ａ（符号１００ａ）がビデオ符号化ストリームを他の情報処理装置Ｂ、Ｃ、Ｄ、Ｅ（符号１００ｂ〜１００ｅ）に送信している状況を考える。送信先の情報処理装置Ｂ、Ｃ、Ｄ、Ｅにおいて、それぞれＰフレーム＃３、Ｐフレーム＃５、Ｐフレーム＃４、Ｐフレーム＃９が欠落したとする。送信先の情報処理装置Ｂ、Ｃ、Ｄ、Ｅはそれぞれのフレームが欠落したタイミングにおいて、Ｉフレーム送信要求信号を送信元の情報処理装置Ａに送信する。送信元の情報処理装置Ａは異なるタイミングで４つのＩフレーム送信要求信号を受信することになる。
【００５１】
図７（ａ）〜（ｅ）は、受信したＩフレーム送信要求信号をすべて受理してＩフレームの符号化に切り替えた場合のビデオ符号化ストリームを説明する図である。図７（ａ）〜（ｄ）は、送信先の情報処理装置Ｂ〜Ｅが受信するビデオ符号化ストリームを示し、図７（ｅ）は、送信元の情報処理装置Ａが生成するビデオ符号化ストリームを示す。
【００５２】
図７（ａ）に示すように、送信先の情報処理装置Ｂの復号処理ブロック２２０において、Ｐフレーム＃３が欠落し、この時点でＩフレーム送信要求信号Ｉｒｅｑ１を送信元の情報処理装置Ａに送信する。送信元の情報処理装置Ａの符号化処理ブロック２００は、送信先の情報処理装置ＢからのＩフレーム送信要求信号Ｉｒｅｑ１を受理して、６番目のフレームの符号化タイプをＩフレームに切り替え、Ｉフレーム＃６を生成して、送信先の情報処理装置Ｂ〜Ｅに送信する。
【００５３】
次に、図７（ｃ）に示すように、送信先の情報処理装置Ｄの復号処理ブロック２２０において、Ｐフレーム＃４が欠落し、この時点でＩフレーム送信要求信号Ｉｒｅｑ２を送信元の情報処理装置Ａに送信する。送信元の情報処理装置Ａの符号化処理ブロック２００は、送信先の情報処理装置ＤからのＩフレーム送信要求信号Ｉｒｅｑ２を受理して、続けて７番目のフレームの符号化タイプもＩフレームに切り替え、Ｉフレーム＃７を生成して、送信先の情報処理装置Ｂ〜Ｅに送信する。
【００５４】
さらに、図７（ｂ）に示すように、送信先の情報処理装置Ｃの復号処理ブロック２２０において、Ｐフレーム＃５が欠落し、この時点でＩフレーム送信要求信号Ｉｒｅｑ３を送信元の情報処理装置Ａに送信する。送信元の情報処理装置Ａの符号化処理ブロック２００は、送信先の情報処理装置ＣからのＩフレーム送信要求信号Ｉｒｅｑ３を受理して、続けて８番目のフレームの符号化タイプもＩフレームに切り替え、Ｉフレーム＃８を生成して、送信先の情報処理装置Ｂ〜Ｅに送信する。
【００５５】
その後、さらに、図７（ｄ）に示すように、送信先の情報処理装置Ｅの復号処理ブロック２２０において、Ｐフレーム＃９が欠落し、この時点でＩフレーム送信要求信号Ｉｒｅｑ４を送信元の情報処理装置Ａに送信する。送信元の情報処理装置Ａの符号化処理ブロック２００は、送信先の情報処理装置ＥからのＩフレーム送信要求信号Ｉｒｅｑ４を受理して、１２番目のフレームの符号化タイプをＩフレームに切り替え、Ｉフレーム＃１２を生成して、送信先の情報処理装置Ｂ〜Ｅに送信する。
【００５６】
このように、送信先の情報処理装置Ｂ〜Ｅの復号処理ブロック２２０から立て続けにＩフレーム送信要求信号が送信されると、送信元の情報処理装置Ａの符号化処理ブロック２００はＩフレーム符号化ばかりをすることになり、送信元の情報処理装置Ａの処理負荷が高くなる。また立て続けにＩフレームが生成されるため、ネットワークのトラフィックも増大する。また、一度、Ｉフレームを送信すれば、その時点で動画フレームがリフレッシュされるため、フレーム欠落があったとしても、連続的にＩフレームを送信しなくても、動画の品質はある程度維持することができる。そこで、すべてのＩフレーム送信要求信号を受理するのではなく、受信したＩフレーム送信要求信号を適宜破棄し、受理するＩフレーム送信要求信号を制限しても、差し支えない。
【００５７】
図８（ａ）〜（ｅ）は、受理するＩフレーム送信要求信号を制限してＩフレームの符号化に切り替えた場合のビデオ符号化ストリームを説明する図である。
【００５８】
図７（ａ）〜（ｅ）とは違い、送信元の情報処理装置Ａの符号化処理ブロック２００は、４つの送信先の情報処理装置Ｂ〜ＥのＩフレーム送信要求信号Ｉｒｅｑ１〜Ｉｒｅｑ４の内、情報処理装置ＢのＩフレーム送信要求信号Ｉｒｅｑ１と、情報処理装置ＥのＩフレーム送信要求信号Ｉｒｅｑ４は受理するが、それ以外の情報処理装置Ｃ、ＤのＩフレーム送信要求信号Ｉｒｅｑ２、Ｉｒｅｑ３は受理せず、破棄する。
【００５９】
これにより、符号化処理ブロック２００において、情報処理装置ＢのＩフレーム送信要求信号Ｉｒｅｑ１に応じて６番目のフレームがＩフレームに切り替わり、情報処理装置ＥのＩフレーム送信要求信号Ｉｒｅｑ４に応じて１２番目のフレームがＩフレームに切り替わるが、７番目および８番目のフレームはＩフレームには切り替わらず、Ｐフレームとして符号化される。
【００６０】
Ｉフレーム送信要求信号が受理されなかった情報処理装置ＣおよびＤにおいては、自分の送信したＩフレーム送信要求信号は無視されたとしても、情報処理装置Ｂが送信したＩフレーム送信要求信号が既に受理されているので、６番目のフレームがＩフレームとして受信され、それ以降はそのＩフレーム＃６の差分フレームが受信されるため、フレームの欠落を防ぐことができる。
【００６１】
情報処理装置Ｅにおいては、情報処理装置ＢによるＩフレーム送信要求信号に応じてＩフレーム＃６が受信された後、９番目のＰフレーム＃９が欠落する。情報処理装置Ｅが送信したＩフレーム送信要求信号は受理されるため、情報処理装置Ｅは、１２番目のフレームにおいて新しいＩフレーム＃１２を受信することができ、それ以降はそのＩフレーム＃１２の差分フレームを受信するため、フレームの欠落が回避される。
【００６２】
図８（ｅ）に示すように、送信元の情報処理装置Ａの符号化処理ブロック２００において、最初のＩフレーム送信要求信号を受理して６番目のフレームの符号化タイプをＩフレームに切り替えてから、５フレーム分（Ｐフレーム＃７〜＃１１）をＩフレーム送信要求信号破棄期間（不受理期間）とされる。Ｉフレーム送信要求管理部２０２は、Ｉフレーム送信要求信号破棄期間内に受信するＩフレーム送信要求信号は無視するが、Ｉフレーム送信要求信号破棄期間経過後に受信するＩフレーム送信要求信号は受理する。
【００６３】
Ｉフレーム送信要求信号破棄期間は、符号化されるフレーム数（たとえば５フレームなど）で定めてもよく、時間（たとえば１００ミリ秒など）で定めてもよい。また、送信先の情報処理装置の数に応じてＩフレーム送信要求信号破棄期間を変更してもよい。たとえば、送信先が増えるとネットワークが輻輳する可能性が高くなるため、Ｉフレーム送信要求信号破棄期間を長くしてＩフレームの出力が増えすぎないように制御する。
【００６４】
図９は、符号化処理ブロック２００におけるビデオ符号化処理の手順を説明する図である。符号化処理ブロック２００のビデオエンコーダ２１０は、カメラ２４０により撮影されたフレーム画像の符号化を行う（Ｓ１０）。Ｉフレーム送信要求管理部２０２は、Ｉフレーム送信要求処理を行う（Ｓ１２）。次のフレーム画像の入力があれば（Ｓ１４のＹ）、ステップＳ１０に戻ってフレーム画像の符号化処理を継続する。次のフレーム画像の入力がなければ（Ｓ１４のＮ）、終了する。
【００６５】
図１０は、ステップＳ１２のＩフレーム送信要求処理の手順を示すフローチャートである。Ｉフレーム送信要求管理部２０２が、送信先の複数の情報処理装置１００のいずれかからＩフレーム送信要求信号を受信した場合（Ｓ２０のＹ）、ステップＳ２２〜Ｓ２８の処理を実行するが、いずれの情報処理装置１００からもＩフレーム送信要求信号を受信していない場合（Ｓ２０のＮ）、Ｉフレーム送信要求処理を終了する。
【００６６】
Ｉフレーム送信要求信号を受信した場合（Ｓ２０のＹ）、Ｉフレーム送信要求管理部２０２は、そのＩフレーム送信要求信号が所定のＩフレーム送信要求信号破棄期間内に受信されたかどうかを調べる（Ｓ２２）。所定のＩフレーム送信要求信号破棄期間内の受信であれば（Ｓ２２のＹ）、Ｉフレーム送信要求管理部２０２は、そのＩフレーム送信要求信号を破棄して（Ｓ２４）、Ｉフレーム送信要求処理を終了する。所定のＩフレーム送信要求信号破棄期間の経過後の受信であれば（Ｓ２２のＮ）、Ｉフレーム送信要求管理部２０２は、そのＩフレーム送信要求信号を受理し（Ｓ２６）、ビデオエンコーダ２１０におけるフレームの符号化タイプをＩフレームに切り替える（Ｓ２８）。
【００６７】
以上述べたように、本実施の形態の情報処理装置１００によれば、ビデオ符号化ストリームの受信側でフレーム落ちが生じた場合、受信側からＩフレームの送信要求を受け取り、送信側がフレームの符号化タイプをＩフレームに切り替えることで、受信側でフレームの欠落が続くことを防ぐことができる。また、受信先が複数ある場合、複数の受信先が同時期にＩフレーム送信要求信号を送信することもあるので、いったんＩフレーム送信要求信号を受理してＩフレームに切り替えた後は、所定の期間、Ｉフレーム送信要求信号を受理しないようにすることで、Ｉフレームが連続的に符号化されるのを防ぐことができる。さらに、Ｉフレーム送信要求信号が多数発生するような状況では、ビデオ符号化ストリームのビットレートを下げることで、フレーム落ちが生じるようなネットワークの過負荷状態を解消し、適正なビットレートに調整することができる。
【００６８】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を説明する。
【００６９】
上記の説明では、ＧＯＰ内でＰフレームまたはＢフレームが正常に受信できなかったとき、受信側がＩフレーム送信要求信号を送信したが、Ｉフレームが欠落したときに、Ｉフレーム送信要求信号を送信してもよいことはいうまでもない。
【００７０】
上記の説明では、Ｉフレーム送信要求信号を受理してＩフレームに切り替えた後、所定の期間が経過するまでは次のＩフレーム送信要求信号を受理しないように制御したが、これに加えて、ＧＯＰの最初のフレームなどにおいてＩフレームを生成した後は、所定の期間が経過するまでは、Ｉフレーム送信要求信号を受理しないように制御してもよい。また、Ｉフレーム送信要求信号の受理間隔を制御する以外に、Ｉフレーム送信要求信号を受理する回数あるいは頻度を制御してもよい。たとえば、Ｉフレーム送信要求信号を一定の割合で間引きすることにより、Ｉフレーム送信要求信号を受理する頻度を制御してもよい。
【００７１】
上記の説明ではフレームが正常に受信できない原因として、ネットワークにおけるパケットの損失を例に挙げて説明したが、それ以外の要因、たとえば、パケットが遅延して復号すべきタイミングに間に合ってフレームのデータが受信できなかった場合においても、同様のＩフレーム送信要求処理を適用することができる。
【図面の簡単な説明】
【００７２】
【図１】実施の形態に係るチャットシステムの構成図である。
【図２】図１の情報処理装置の構成図である。
【図３】図２の符号化処理ブロックの構成図である。
【図４】図３のビデオエンコーダの構成図である。
【図５】図５（ａ）〜（ｃ）は、Ｉフレーム送信要求に応じてＩフレーム符号化に切り替わる仕組みを説明する図である。
【図６】一つの情報処理装置において複数のＩフレーム送信要求信号が受信される様子を説明する図である。
【図７】図７（ａ）〜（ｅ）は、受信したＩフレーム送信要求信号をすべて受理してＩフレームの符号化に切り替えた場合のビデオ符号化ストリームを説明する図である。
【図８】図８（ａ）〜（ｅ）は、受理するＩフレーム送信要求信号を制限してＩフレームの符号化に切り替えた場合のビデオ符号化ストリームを説明する図である。
【図９】図３の符号化処理ブロックにおけるビデオ符号化処理の手順を説明する図である。
【図１０】図９のＩフレーム送信要求処理の手順を示すフローチャートである。
【符号の説明】
【００７３】
５０  Ａ／Ｄ変換部、  ５２  フレーム参照バッファ、  ５４  差分器、  ５６  直交変換部、  ５８  量子化部、  ６０  逆量子化部、  ６２  逆直交変換部、  ６４  フレームメモリ、  ６６  動き予測・補償部、  ６８  可変長符号化部、  ７０  ストリームバッファ、  ７２  ビットレート制御部、  ７４  Ｉフレーム設定部、  ７６  ＧＯＰ設定部、  ８０  フレーム間符号化ブロック、  １００  情報処理装置、  ２００  符号化処理ブロック、  ２０２  Ｉフレーム送信要求管理部、  ２０４  ビットレート調整部、  ２１０  ビデオエンコーダ、  ２２０  復号処理ブロック、  ２３０  マイク、  ２４０  カメラ、  ２５０  スピーカ、  ２６０  ディスプレイ、  ２７０  通信部、  ３００  ネットワーク。
【図１】
2008131143.tif 000003
【図２】
2008131143.tif 000004
【図３】
2008131143.tif 000005
【図４】
2008131143.tif 000006
【図５】
2008131143.tif 000007
【図６】
2008131143.tif 000008
【図７】
2008131143.tif 000009
【図８】
2008131143.tif 000010
【図９】
2008131143.tif 000011
【図１０】
2008131143.tif 000012