(57)【要約】【課題】動画像ストリームのデコードをスムーズに実行することが可能な情報処理装置を実現する。【解決手段】ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０の現在の負荷量を検出する。コンピュータ１０が高負荷状態ではないならば、ビデオ再生アプリケーションプログラム２０１は、重み付き予測を含む全てのデコード処理（通常デコード処理）を実行する。コンピュータ１０が高負荷状態になると、ビデオ再生アプリケーションプログラム２０１は、重み付き予測を簡略化した特殊デコード処理を実行する。重み付き予測を簡略化することにより、コマ落ちや、オブジェクトの動きが極端に遅くなるなどの不具合を招くことなく、動画像データのデコードおよび再生をスムーズに継続して実行することができる。【選択図】      図６
2006101322.tif 000002
【特許請求の範囲】
【請求項１】
圧縮符号化された動画像ストリームをデコードする情報処理装置において、
デコードされた１以上の参照画面からデコード対象画面に対応するフレーム間予測信号を生成する動き補償手段と、
前記フレーム間予測信号に重み係数を掛けることによって重み付き予測信号を生成する重み付き予測処理を実行する重み付き予測手段と、
前記デコード対象画面に対応する予測誤差信号に前記デコード対象画面に対応する重み付き予測信号を加算して前記デコード対象画面をデコードする手段と、
前記情報処理装置の負荷を検出する負荷検出手段と、
前記負荷検出手段によって検出された負荷が所定の基準値よりも大きい場合、前記重み係数の値に応じて、前記重み付き予測信号を零とする処理を実行する制御手段とを具備することを特徴とする情報処理装置。
【請求項２】
前記制御手段は、零よりも小さい第１の基準値から零よりも大きい第２の基準値までの範囲に前記重み係数の値が属するか否かを判別する手段と、前記重み係数の値が前記範囲に属する場合、前記重み付き予測信号を零とする処理を実行する手段と、前記重み係数の値が前記範囲に属さない場合、前記重み付き予測手段によって前記重み付き予測処理を実行する手段とを含むことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記重み係数は前記動画像ストリームに含まれていることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記動画像ストリームは前記デコード対象画面と前記参照画面との間の時間距離を示す情報が含まれており、
前記情報に基づいて前記重み係数を算出する手段をさらに具備することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記負荷検出手段は、前記情報処理装置上で実行されるオペレーティングシステムに対して前記情報処理装置の負荷を問い合わせる手段を含むことを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記負荷検出手段は、前記情報処理装置に設けられたプロセッサの使用率に基づいて前記情報処理装置の負荷を検出する手段を含むことを特徴とする請求項１記載の情報処理装置。
【請求項７】
前記負荷検出手段は、前記情報処理装置に設けられたプロセッサの使用率および前記情報処理装置に設けられたメモリの使用率に基づいて前記情報処理装置の負荷を検出する手段を含むことを特徴とする請求項１記載の情報処理装置。
【請求項８】
動画像ストリームをデコードするデコード処理をコンピュータに実行させるプログラムであって、
デコードされた１以上の参照画面からデコード対象画面に対応するフレーム間予測信号を生成する動き補償処理を、前記コンピュータに実行させる手順と、
前記フレーム間予測信号に重み係数を掛けることによって重み付き予測信号を生成する重み付き予測処理を前記コンピュータに実行させる手順と、
前記デコード対象画面に対応する予測誤差信号に前記デコード対象画面に対応する重み付き予測信号を加算して前記デコード対象画面をデコードする処理を前記コンピュータに実行させる手順と、
前記コンピュータの負荷を検出する処理を前記コンピュータに実行させる手順と、
前記検出された負荷が所定の基準値よりも大きい場合、前記重み係数の値に応じて、前記重み付き予測信号を零とする処理を実行する制御処理を、前記コンピュータに実行させる手順とを具備することを特徴とするプログラム。
【請求項９】
前記制御処理を前記コンピュータに実行させる手順は、零よりも小さい第１の基準値から零よりも大きい第２の基準値までの範囲に前記重み係数の値が属するか否かを判別する処理を前記コンピュータに実行させる手順と、前記重み係数の値が前記範囲に属する場合、前記重み付き予測信号を零とする処理を前記コンピュータに実行させる手順と、前記重み係数の値が前記範囲に属さない場合、前記重み付き予測処理を前記コンピュータに実行させる手順とを含むことを特徴とする請求項８記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパーソナルコンピュータのような情報処理装置および同装置で用いられるデコード用のプログラムに関する。
【背景技術】
【０００２】
近年、ＤＶＤ（Digital Versatile Disc）プレーヤ、ＴＶ装置のようなオーディオ・ビデオ（ＡＶ）機器と同様のＡＶ機能を備えたパーソナルコンピュータが開発されている。
【０００３】
このようなパーソナルコンピュータにおいては、圧縮符号化された動画像ストリームをソフトウェアによってデコードするソフトウェアデコーダが用いられている。ソフトウェアデコーダの使用により、専用のハードウェアを設けることなく、圧縮符号化された動画像ストリームをプロセッサ（ＣＰＵ）によってデコードすることが可能になる。
【０００４】
ソフトウェアデコーダを用いたシステムとしては、ＭＰＥＧ２、ＭＰＥＧ４のような動き補償フレーム間予測符号化によって符号化されたストリームをデコードした後に、そのデコードによって得られた出力画像信号に対して画質改善のためのポストフィルタ処理を施すシステムが知られている（例えば、特許文献１参照）。このシステムにおいては、コマ落ちの発生を防止するために、ポストフィルタ処理で実行されるべきフィルタ処理を変更してポストフィルタ処理に要する時間を削減する技術が利用されている。
【特許文献１】特開２００１−２４５２９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、ポストフィルタ処理はデコーダの外側で行われる処理である。このため、もしソフトウェアデコーダのデコード処理自体に遅れが生じた場合には、たとえポストフィルタ処理に要する時間を低減しても、コマ落ちの発生を防止することはできない。
【０００６】
ところで、最近では、次世代の動画像圧縮符号化技術として、Ｈ．２６４／ＡＶＣ（ＡＶＣ：Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）規格が注目されている。Ｈ．２６４／ＡＶＣ規格は、ＭＰＥＧ２、ＭＰＥＧ４のような従来の圧縮符号化技術よりも高能率の圧縮符号化技術である。このため、Ｈ．２６４／ＡＶＣ規格に対応するエンコード処理およびデコード処理の各々においては、ＭＰＥＧ２、ＭＰＥＧ４のような従来の圧縮符号化技術よりも多くの処理量が必要とされる。
【０００７】
したがって、Ｈ．２６４／ＡＶＣ規格で圧縮符号化された動画像ストリームをソフトウェアによってデコードするように設計されたパーソナルコンピュータにおいては、システムの負荷が増大すると、デコード処理自体に遅れが生じ、これによってスムーズな動画再生を実行できなくなる危険がある。
【０００８】
本発明は上述の事情を考慮してなされたものであり、動画像ストリームのデコードをスムーズに実行することが可能な情報処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述の課題を解決するため、本発明は、圧縮符号化された動画像ストリームをデコードする情報処理装置において、デコードされた１以上の参照画面からデコード対象画面に対応するフレーム間予測信号を生成する動き補償手段と、前記フレーム間予測信号に重み係数を掛けることによって重み付き予測信号を生成する重み付き予測処理を実行する重み付き予測手段と、前記デコード対象画面に対応する予測誤差信号に前記デコード対象画面に対応する重み付き予測信号を加算して前記デコード対象画面をデコードする手段と、前記情報処理装置の負荷を検出する負荷検出手段と、前記負荷検出手段によって検出された負荷が所定の基準値よりも大きい場合、前記重み係数の値に応じて、前記重み付き予測信号を零とする処理を実行する制御手段とを具備することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、動画像ストリームのデコードをスムーズに実行することが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して、本発明の実施形態を説明する。  
まず、図１および図２を参照して、本発明の一実施形態に係る情報処理装置の構成について説明する。この情報処理装置は、例えば、ノートブック型パーソナルコンピュータ１０として実現されている。
【００１２】
図１はノートブック型パーソナルコンピュータ１０のディスプレイユニットを開いた状態における正面図である。本コンピュータ１０は、コンピュータ本体１１と、ディスプレイユニット１２とから構成されている。ディスプレイユニット１２にはＬＣＤ（Liquid Crystal Display）１７から構成される表示装置が組み込まれており、そのＬＣＤ１７の表示画面はディスプレイユニット１２のほぼ中央に位置されている。
【００１３】
ディスプレイユニット１２は、コンピュータ本体１１に対して開放位置と閉塞位置との間を回動自在に取り付けられている。コンピュータ本体１１は薄い箱形の筐体を有しており、その上面にはキーボード１３、本コンピュータ１を電源オン／オフするためのパワーボタン１４、入力操作パネル１５、およびタッチパッド１６などが配置されている。
【００１４】
入力操作パネル１５は、押されたボタンに対応するイベントを入力する入力装置であり、複数の機能をそれぞれ起動するための複数のボタンを備えている。これらボタン群には、ＴＶ起動ボタン１５Ａ、ＤＶＤ（Digital Versatile Disc）起動ボタン１５Ｂも含まれている。ＴＶ起動ボタン１５Ａは、デジタルＴＶ放送番組のような放送番組データの再生及び記録を行うためのＴＶ機能を起動するためのボタンである。ＴＶ起動ボタン１５Ａがユーザによって押下された時、ＴＶ機能を実行するためのアプリケーションプログラムが自動的に起動される。ＤＶＤ起動ボタン１５Ｂは、ＤＶＤに記録されたビデオコンテンツを再生するためのボタンである。ＤＶＤ起動ボタン１５Ｂがユーザによって押下された時、ビデオコンテンツを再生するためのアプリケーションプログラムが自動的に起動される。
【００１５】
次に、図２を参照して、本コンピュータ１０のシステム構成について説明する。
【００１６】
本コンピュータ１０は、図２に示されているように、ＣＰＵ１１１、ノースブリッジ１１２、主メモリ１１３、グラフィクスコントローラ１１４、サウスブリッジ１１９、ＢＩＯＳ−ＲＯＭ１２０、ハードディスクドライブ（ＨＤＤ）１２１、光ディスクドライブ（ＯＤＤ）１２２、デジタルＴＶ放送チューナ１２３、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１２４、およびネットワークコントローラ１２５等を備えている。
【００１７】
ＣＰＵ１１１は本コンピュータ１０の動作を制御するために設けられたプロセッサであり、ハードディスクドライブ（ＨＤＤ）１２１から主メモリ１１３にロードされる、オペレーティングシステム（ＯＳ）、およびビデオ再生アプリケーションプログラム２０１のような各種アプリケーションプログラムを実行する。
【００１８】
ビデオ再生アプリケーションプログラム２０１は、圧縮符号化された動画像データをデコードおよび再生するためのソフトウェアである。このビデオ再生アプリケーションプログラム２０１は、Ｈ．２６４／ＡＶＣ規格に対応するソフトウェアデコーダである。ビデオ再生アプリケーションプログラム２０１は、Ｈ．２６４／ＡＶＣ規格で定義された符号化方式で圧縮符号化されている動画像ストリーム（例えば、デジタルＴＶ放送チューナ１２３によって受信されたデジタルＴＶ放送番組、光ディスクドライブ（ＯＤＤ）１２２から読み出されるＨＤ（High Definition）規格のビデオコンテンツ、など）をデコードするための機能を有している。
【００１９】
このビデオ再生アプリケーションプログラム２０１は、図３に示すように、負荷検出モジュール２１１、デコード制御モジュール２１２、およびデコード実行モジュール２１３を備えている。
【００２０】
デコード実行モジュール２１３は、Ｈ．２６４／ＡＶＣ規格で定義されたデコード処理を実行するデコーダである。負荷検出モジュール２１１は、コンピュータ１０の負荷を検出するモジュールである。この負荷検出モジュール２１１は、例えば、オペレーティングシステム（ＯＳ）２００にコンピュータ１０の現在の負荷を問い合わせることによって、コンピュータ１０の現在の負荷量を検出する。コンピュータ１０の負荷量は、例えば、ＣＰＵ１１１の使用率に基づいて決定される。
【００２１】
また、コンピュータ１０の負荷量は、ＣＰＵ１１１の使用率とメモリ１１３の使用率との組み合わせによって決定することもできる。通常、ソフトウェアデコーダをスムーズに実行するためには、ある一定サイズ以上のメモリが必要である。システムのメモリ使用率が高くなると、ＯＳのページングにより、ソフトウェアデコーダのデコードパフォーマンスは低下する。よって、ＣＰＵ１１１の使用率とメモリ１１３の使用率との組み合わせによってコンピュータ１０の負荷量を検出することにより、コンピュータ１０の現在の負荷量がソフトウェアデコーダの実行に支障を来す負荷量（高負荷状態）であるかどうかをより精度よく判別することができる。
【００２２】
デコード制御モジュール２１２は、負荷検出モジュール２１１によって検出されたコンピュータ１０の負荷に応じて、デコード実行モジュール２１３によって実行されるデコード処理の内容を制御する。
【００２３】
具体的には、デコード制御モジュール２１２は、コンピュータ１０の負荷量が予め決められた基準値以下である場合には、Ｈ．２６４／ＡＶＣ規格で定義されたデコード処理がＣＰＵ１１１によって実行されるように、デコード実行モジュール２１３によって実行すべきデコード処理の内容を制御する。一方、コンピュータ１０の負荷量が基準値よりも大きい場合には（高負荷状態）、デコード制御モジュール２１２は、Ｈ．２６４／ＡＶＣ規格で定義されたデコード処理の一部が省略または簡略された処理に置換されるように、デコード実行モジュール２１３によって実行すべきデコード処理の内容を制御する。
【００２４】
ビデオ再生アプリケーションプログラム２０１によってデコードされた動画像データは、表示ドライバ２０２を介してグラフィクスコントローラ１１４のビデオメモリ１１４Ａに順次書き込まれる。これにより、デコードされた動画像データはＬＣＤ１７に表示される。表示ドライバ２０２はグラフィクスコントローラ１１４を制御するためのソフトウェアである。
【００２５】
また、ＣＰＵ１１１は、ＢＩＯＳ−ＲＯＭ１２０に格納されたシステムＢＩＯＳ（Basic Input Output System）も実行する。システムＢＩＯＳはハードウェア制御のためのプログラムである。
【００２６】
ノースブリッジ１１２はＣＰＵ１１１のローカルバスとサウスブリッジ１１９との間を接続するブリッジデバイスである。ノースブリッジ１１２には、主メモリ１１３をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ１１２は、ＡＧＰ（Accelerated Graphics Port）バスなどを介してグラフィクスコントローラ１１４との通信を実行する機能も有している。
【００２７】
グラフィクスコントローラ１１４は本コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７を制御する表示コントローラである。このグラフィクスコントローラ１１４はビデオメモリ（ＶＲＡＭ）１１４Ａに書き込まれた画像データからＬＣＤ１７に送出すべき表示信号を生成する。
【００２８】
サウスブリッジ１１９は、ＬＰＣ（Low Pin Count）バス上の各デバイス、およびＰＣＩ（Peripheral Component Interconnect）バス上の各デバイスを制御する。また、サウスブリッジ１１９は、ＨＤＤ１２１、ＯＤＤ１２２を制御するためのＩＤＥ（Integrated Drive Electronics）コントローラを内蔵している。さらに、サウスブリッジ１１９は、デジタルＴＶ放送チューナ１２３を制御する機能、およびＢＩＯＳ−ＲＯＭ１２０をアクセス制御するための機能も有している。
【００２９】
ＨＤＤ１２１は、各種ソフトウェア及びデータを格納する記憶装置である。光ディスクドライブ（ＯＤＤ）１２３は、ビデオコンテンツが格納されたＤＶＤなどの記憶メディアを駆動するためのドライブユニットである。デジタルＴＶ放送チューナ１２３は、デジタルＴＶ放送番組のような放送番組データを外部から受信するための受信装置である。
【００３０】
エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１２４は、電力管理のためのエンベデッドコントローラと、キーボード（ＫＢ）１３およびタッチパッド１６を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。このエンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１２４は、ユーザによるパワーボタン１４の操作に応じて本コンピュータ１０をパワーオン／パワーオフする機能を有している。さらに、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１２４は、ユーザによるＴＶ起動ボタン１５Ａ、ＤＶＤ起動ボタン１５Ｂの操作に応じて、本コンピュータ１０をパワーオンすることもできる。ネットワークコントローラ１２５は、例えばインターネットなどの外部ネットワークとの通信を実行する通信装置である。
【００３１】
次に、図４を参照して、ビデオ再生アプリケーションプログラム２０１によって実現されるソフトウェアデコーダの機能構成を説明する。
【００３２】
ビデオ再生アプリケーションプログラム２０１のデコード実行モジュール２１３は、Ｈ．２６４／ＡＶＣ規格に対応しており、図示のように、エントロピー復号部３０１、逆量子化部３０２、逆ＤＣＴ部（DCT：Discrete Cosine Transform）３０３、加算部３０４、デブロッキングフィルタ部３０５、フレームメモリ３０６、動きベクトル予測部３０７、補間予測部３０８、重み付き予測部３０９、イントラ予測部３１０、およびモード切替スイッチ部３１１を含む。Ｈ．２６４の直交変換は整数精度であり、従来のＤＣＴとは異なるが、ここではＤＣＴと称することとする。
【００３３】
各画面（ピクチャ）の符号化は、たとえば１６ｘ１６画素のマクロブロック単位で実行される。各マクロブロックごとに、フレーム内符号化モード（イントラ符号化モード）および動き補償フレーム間予測符号化モード（インター符号化モード）のいずれか一方が選択される。
【００３４】
動き補償フレーム間予測符号化モードにおいては、既に符号化された画面（ピクチャ）からの動きを推定することによって、符号化対象画面に対応する動き補償フレーム間予測信号が定められた形状単位で生成される。そして、符号化対象画面（ピクチャ）から動き補償フレーム間予測信号を引いた予測誤差信号が、直交変換（ＤＣＴ）、量子化、およびエントロピー符号化によって、符号化される。また、イントラ符号化モードにおいては、符号化対象画面（ピクチャ）から予測信号が生成され、その予測信号が直交変換（ＤＣＴ）、量子化、およびエントロピー符号化によって、符号化される。
【００３５】
Ｈ．２６４／ＡＶＣ規格に対応するコーデックは、さらに圧縮率を高めるために、
（１）従来のＭＰＥＧよりも高い画素精度（１／４画素精度）の動き補償
（２）フレーム内符号化を効率的に行うためのフレーム内予測
（３）ブロック歪みを低減するためのデブロッキングフィルタ
（４）４ｘ４画素単位の整数ＤＣＴ
（５）任意の位置の複数の画面（ピクチャ）を参照画面として使用可能なマルチリファレンスフレーム
（６）重み付け予測
等の技術を利用する。
【００３６】
以下、図４のソフトウェアデコーダの動作を説明する。
【００３７】
Ｈ．２６４／ＡＶＣ規格にしたがって圧縮符号化された動画像ストリームは、まず、エントロピー復号部３０１に入力される。圧縮符号化された動画像ストリームには、符号化された画像情報の他に、動き補償フレーム間予測符号化（インター予測符号化）で用いられた動きベクトル情報、フレーム内予測符号化（イントラ予測符号化）で用いられたフレーム内予測情報、予測モード（インター予測符号化／イントラ予測符号化）を示すモード情報等が含まれている。
【００３８】
デコード処理は、たとえば１６ｘ１６画素のマクロブロック単位で実行される。エントロピー復号部３０１は動画像ストリームに対して可変長復号のようなエントロピー復号処理を施して、動画像ストリームから、量子化ＤＣＴ係数、動きベクトル情報（動きベクトル差分情報）、フレーム内予測情報、およびモード情報を分離する。この場合、例えば、デコード対象画面（ピクチャ）内の各マクロブロックは４ｘ４画素（または８ｘ８画素）のブロック毎にエントロピー復号処理され、各ブロックは４ｘ４（または８ｘ８画素）の量子化ＤＣＴ係数に変換される。以下では、各ブロックが４ｘ４である場合を想定する。
【００３９】
動きベクトル情報は、動きベクトル予測部３０７に送られる。フレーム内予測情報は、イントラ予測部３１０に送られる。モード情報はモード切替スイッチ部３１１に送られる。
【００４０】
各デコード対象ブロックの４ｘ４の量子化ＤＣＴ係数は、逆量子化部３０２による逆量子化処理により４ｘ４のＤＣＴ係数（直交変換係数）に変換される。この４ｘ４のＤＣＴ係数は、逆ＤＣＴ部３０３による逆整数ＤＣＴ（逆直交変換）処理によって、周波数情報から、４ｘ４の画素値に変換される。この４ｘ４の画素値は、デコード対象ブロックに対応する予測誤差信号である。この予測誤差信号は加算部３０４に送られ、そこでデコード対象ブロックに対応する予測信号（動き補償フレーム間予測信号またはフレーム内予測信号）が加算され、これによってデコード対象ブロックに対応する４ｘ４の画素値がデコードされる。
【００４１】
イントラ予測モードにおいては、モード切替スイッチ部３１１によってイントラ予測部３１０が選択され、これによってイントラ予測部３１０からのフレーム内予測信号が予測誤差信号に加算される。インター予測モードにおいては、モード切替スイッチ部３１１によって重み付き予測部３０９が選択され、これによって、動きベクトル予測部３０７、補間予測部３０８、および重み付き予測部３０９によって得られる動き補償フレーム間予測信号が予測誤差信号に加算される。
【００４２】
このように、デコード対象画面に対応する予測誤差信号に予測信号（動き補償フレーム間予測信号またはフレーム内予測信号）を加算してデコード対象画面をデコードする処理が所定のブロック単位で実行される。
【００４３】
デコードされた各画面（ピクチャ）は、デブロッキングフィルタ部３０５によってデブロッキングフィルタ処理が施された後に、フレームメモリ３０６に格納される。このデブロッキングフィルタ部３０５は、例えば４ｘ４画素のブロック単位で、デコードされた各画面に対してブロックノイズを低減するためのデブロッキングフィルタ処理を施す。このデブロッキングフィルタ処理は、ブロック歪みが参照画像に含まれてしまい、これによってブロック歪みが復号画像に伝搬してしまうことを防止する。デブロッキングフィルタ処理のための処理量は膨大であり、ソフトウェアデコーダの全処理量の５０パーセントを占める場合もある。デブロッキングフィルタ処理は、ブロック歪みが生じやすい箇所に対してはより強いフィリタリングが施され、ブロック歪みが生じにくい箇所に対しては弱いフィリタリングが施されるように、適応的に実行される。デブロッキングフィルタ処理はループフィルタ処理によって実現されている。
【００４４】
そして、デブロッキングフィルタ処理された各画面は、フレームメモリ３０６から出力画像フレーム（または出力画像フィールド）として読み出される。また、動き補償フレーム間予測のための参照画像として使用されるべき各画面（参照画面）は、フレームメモリ３０６内に一定期間保持される。Ｈ．２６４／ＡＶＣ規格の動き補償フレーム間予測符号化においては、複数の画面を参照画面として使用することができる。このため、フレームメモリ３０６は、複数画面分の画像を記憶するための複数個のフレームメモリ部を備えている。
【００４５】
動きベクトル予測部３０７は、デコード対象ブロックに対応する動きベクトル差分情報に基づいて、動きベクトル情報を生成する。補間予測部３０８は、デコード対象ブロックに対応する動きベクトル情報に基づいて、参照画面内の、整数精度の画素群および１／４画素精度の予測補間画素群から、動き補償フレーム間予測信号を生成する。１／４画素精度の予測補間画素の生成においては、６タップフィルタ（入力６つ、出力１つ）が用いられる。このため、高周波成分まで考慮した高精度の予測補間処理を実行できるが、その分、動き補償には多くの処理量が必要となる。
【００４６】
重み付け予測部３０９は、動き補償フレーム間予測信号に対して重み係数を掛ける処理を動き補償ブロック（マクロブロック）単位で実行することにより、重み付けされた動き補償フレーム間予測信号（重み付き予測信号）を生成する。この重み付け予測は、デコード対象画面の明るさを予測する処理である。図５には、重み付き予測の例が示されている。図５においては、デコード対象のマクロブロックが２つの画像を参照画像として使用している場合が示されている。重み付き予測信号は、動き補償予測信号Y0,Y1に適応的に重み係数W0,W1を掛け合わせることによって生成される。重み付け予測は以下のように実行される。
【００４７】
（１）Ｐ（predictive）スライスのフレーム間予測の場合
L0動き補償予測信号をY0、重み係数をW0とすると、重み付け予測部３０９は、重み付き予測信号W0Y0を生成する。重み係数W0は、エンコーダからの動画像ストリーム（H.264ストリーム）の中に含まれている。
【００４８】
（２）Ｂスライスの中で参照画像を１枚だけ用いる予測の場合
L0(またはL1)動き補償予測信号をY0(またはY1)、重み係数をW0(またはW1)とすると、重み付け予測部３０９は、重み付き予測信号W0Y0(またはW1Y1)を生成する。重み係数W0(またはW1)はH.264ストリームの中に含まれている。
【００４９】
（３）参照画像を２枚用いるＢスライスのBi-predictive予測の場合
(3-1) 明示的(Explicit)モード
L0,L1動き補償予測信号をY0,Y1、重み係数をW0,W1、オフセットをDとすると、重み付け予測部３０９は、重み付き予測信号W0Y0+W1Y1+Dを生成する。重み係数W0,W1、オフセットDはH.264ストリームの中に含まれている。
【００５０】
(3-2) 暗黙的(Implicit)モード
暗黙的モードでは、重み係数W0、W1、オフセットDはエンコーダからのH.264ストリーム中には含まれていない。参照画像0への時間距離をtb、参照画像1への時間距離をtdとした場合、重み付け予測部３０９は、以下の計算式で、重み係数W0、W1、オフセットDを算出し、そして重み付き予測信号W0Y0+W1Y1+Dを生成する。
【００５１】
W1=tb/td
W0=1-W1
D=0
このような重み付け予測処理により、フェード・イン、フェード・アウトのように、明るさが時間の経過と共に変化する画像の画質を向上することができる。しかし、その分、ソフトウェアデコードに必要な処理量は増大する。
【００５２】
イントラ予測部３１０は、上述のフレーム内予測情報に従って画面内予測処理を実行して、デコード対象ブロックと同一画面内に存在する、当該デコード対象ブロックに近接する既にデコードされた他のブロック内の画素値からフレーム内予測信号を生成する。このフレーム内予測（イントラ予測）は、ブロック間の画素相関を利用して圧縮率を高める技術である。このフレーム内予測においては、フレーム内予測情報に従って、垂直予測（予測モード０）、水平予測（予測モード１）、平均値予測（予測モード３）、平面予測（予測モード４）を含む４種類の予測モードの内の一つが、フレーム内予測ブロック（例えば１６ｘ１６画素）単位で選択される。平面予測が選択される頻度は他のフレーム内予測モードよりも低いが、平面予測のために必要とされる処理量は、他のどのフレーム内予測モードの処理量よりも多い。
【００５３】
本実施形態においては、たとえコンピュータ１０の負荷が増大しても時間制約内に動画像ストリームをリアルタイムにデコードできるようにするために、コンピュータ１０の負荷に応じて、図４で説明した全てのデコード処理（以下、通常デコード処理と称する）と、特殊デコード処理とを選択的に実行する。特殊デコード処理は、重み付き予測に関する処理を簡略化したデコード処理である。特殊デコード処理においては、重み係数の値が零またはその近傍である場合に、重み付き予測信号を零として予測誤差信号のみから復号画像を生成する処理が実行される。
【００５４】
以下、図６のフローチャートを参照して、ビデオ再生アプリケーションプログラム２０１によって実行されるデコード処理の手順を説明する。
【００５５】
ビデオ再生アプリケーションプログラム２０１は、デコード処理の実行期間中、ＯＳに対してコンピュータ１０の現在の負荷を問い合わせることによってコンピュータ１０の現在の負荷を検出する処理を定期的に繰り返し実行する（ステップＳ１０１）。このステップＳ１０１においては、ビデオ再生アプリケーションプログラム２０１は、ＣＰＵ１１１の現在の使用率（プロセッサ使用率）と主メモリ１１３の現在の使用率（メモリ使用率）とをＯＳから取得する。
【００５６】
そして、ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０の現在の負荷量が所定の基準値よりも大きいかどうかによって、コンピュータ１０が高負荷状態であるかどうかを判別する（ステップＳ１０２）。ステップＳ１０２においては、例えば、ビデオ再生アプリケーションプログラム２０１は、現在のプロセッサ使用率が予め決められたプロセッサ基準使用率よりも大きいか否かを判別するとともに、現在のメモリ使用率が予め決められたメモリ基準使用率よりも大きいか否かを判別する。現在のプロセッサ使用率および現在のメモリ使用率のいずれか一方でもそれに対応する基準使用率よりも大きい場合には、ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０が高負荷状態であると判定する。現在のプロセッサ使用率および現在のメモリ使用率の双方がそれらに対応する基準使用率以下ならば、ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０が高負荷状態ではないと判定する。
【００５７】
コンピュータ１０が高負荷状態ではないならば（ステップＳ１０２のＮＯ）、ビデオ再生アプリケーションプログラム２０１は、ＣＰＵ１１１に実行させるべきデコード処理として上述の通常デコード処理を選択し、これによって図４で説明した一連の処理をＣＰＵ１１１上で実行する（ステップＳ１０３）。コンピュータ１０が高負荷状態にならない限り、つまりデコードパフォーマンスが低下しない限り、動画像ストリームは通常デコード処理によってデコードされる。
【００５８】
一方、コンピュータ１０が高負荷状態であるならば（ステップＳ１０２のＹＥＳ）、ビデオ再生アプリケーションプログラム２０１は、ＣＰＵ１１１に実行させるべきデコード処理として上述の特殊デコード処理を選択し、これによって重み付け予測に関する処理が簡略化されたデコード処理をＣＰＵ１１１上で実行する（ステップＳ１０４）。ステップＳ１０４の特殊デコード処理においては、ビデオ再生アプリケーションプログラム２０１は、重み係数W0, W1が、0、または、0近傍のとき、予測信号の計算処理を省略する。すなわち、重み係数W0, W1が、0、または、0近傍のとき、ビデオ再生アプリケーションプログラム２０１は、重み付け予測信号をゼロとして出力する。
【００５９】
重み付け予測に関する処理を簡略化することにより、再生される画像は符号化画像とは厳密には一致しなくなるものの、１画面あたりのソフトウェアデコードに必要な処理量を大幅に低減することができる。よって、ソフトウェアデコードの実行中にたとえ他のプログラムが実行されてコンピュータ１０が高負荷状態となっても、コマ落ちや、オブジェクトの動きが極端に遅くなるなどの不具合を招くことなく、動画像データのデコードおよび再生をスムーズに継続して実行することができる。
【００６０】
動画像ストリーム全てのデコードが完了するまで、上述のステップＳ１０１〜Ｓ１０４の処理は繰り返し実行される（ステップＳ１０５）。他のプログラムの実行が終了されること等によってコンピュータ１０の負荷が下がると、デコード処理は、特殊デコード処理から通常デコード処理に再び切り替えられる。
【００６１】
次に、図７のフローチャートを参照して、ビデオ再生アプリケーションプログラム２０１によって実行される特殊デコード処理の手順を説明する。
【００６２】
ビデオ再生アプリケーションプログラム２０１は、まず、重み係数W0, W1が、0、または、0近傍であるか否かを判断する（ステップＳ２０１）。このステップＳ２０１では、ビデオ再生アプリケーションプログラム２０１は、重み係数W0, W1が例えば-5から5までの範囲内に属するかいなかによって、重み係数W0, W1が、0、または、0近傍であるか否かを判断する。重み係数W0, W1が-5から5までの範囲内に属する場合、つまり重み係数W0, W1が、0、または、0近傍である場合（ステップＳ２０１のＹＥＳ）、ビデオ再生アプリケーションプログラム２０１は、重み付け予測処理を実行せずに、零の重み付け予測信号を出力する（ステップＳ２０２）。そして、ビデオ再生アプリケーションプログラム２０１は、予測誤差信号と重み付け予測信号との合成（加算）を行わずに、予測誤差信号をデコード対象ブロックの復号画像として出力する（ステップＳ２０３）。
【００６３】
一方、重み係数W0, W1が、0、または、0近傍ではない場合、つまり重み係数W0, W1が-5から5までの範囲に属さないならば（ステップＳ２０４のＮＯ）、ビデオ再生アプリケーションプログラム２０１は、通常デコード処理と同じ重み付け予測処理を実行して重み付け予測信号を生成する（ステップＳ２０４）。そして、ビデオ再生アプリケーションプログラム２０１は、予測誤差信号と重み付け予測信号とを合成（加算）して、デコード対象ブロックの復号画像を生成する（ステップＳ２０３）。
【００６４】
以上のように、本実施形態によれば、システムが高負荷状態の場合には、多くの処理量を必要とする重み付き予測処理を簡略化してシステムの負荷を低減することにより、コマ落ちや、オブジェクトの動きが極端に遅くなるなどの不具合を招くことなく、スムーズな動画再生を実現することができる。
【００６５】
なお、上述のデコード制御処理は全てコンピュータプログラムによって実現されているので、このコンピュータプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータに導入するだけで、本実施形態と同様の効果を容易に実現することができる。
【００６６】
また、本実施形態のソフトウェアデコーダは、パーソナルコンピュータに限らず、ＰＤＡ、携帯型電話機等にも適用することができる。
【００６７】
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６８】
【図１】本発明の一実施形態に係るコンピュータの概観を示す斜視図。
【図２】図１のコンピュータのシステム構成を示すブロック図。
【図３】図１のコンピュータで用いられるビデオ再生アプリケーションプログラムの機能構成を示すブロック図。
【図４】図３のビデオ再生アプリケーションプログラムによって実現されるソフトウェアデコーダの構成を示すブロック図。
【図５】図３のビデオ再生アプリケーションプログラムによって実行される重み付け予測を説明するための図。
【図６】図３のビデオ再生アプリケーションプログラムによって実行されるデコード処理の手順を示すフローチャート。
【図７】図３のビデオ再生アプリケーションプログラムによって実行される特殊デコード処理の手順を示すフローチャート。
【符号の説明】
【００６９】
1０…コンピュータ、１１１…ＣＰＵ、１１３…メモリ、１１４…グラフィクスコントローラ、２０１…負荷検出モジュール、２１２…デコード制御モジュール、２１３…デコード実行モジュール、３０１…エントロピー復号部、３０２…逆量子化部、３０３…逆ＤＣＴ部、３０４…加算部、３０５…デブロッキングフィルタ部、３０６…フレームメモリ、３０７…動きベクトル予測部、３０８…補間予測部、３０９…重み付き予測部、３１０…イントラ予測部、３１１…モード切替スイッチ部。
【図１】
2006101322.tif 000003
【図２】
2006101322.tif 000004
【図３】
2006101322.tif 000005
【図４】
2006101322.tif 000006
【図５】
2006101322.tif 000007
【図６】
2006101322.tif 000008
【図７】
2006101322.tif 000009