(57)【要約】【課題】画質優先の動画再生と画質よりもスムーズさを優先した動画再生とを自動的に切り替えることが可能な情報処理装置を実現する。【解決手段】ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０の現在の負荷量を検出する。コンピュータ１０が高負荷状態ではないならば、ビデオ再生アプリケーションプログラム２０１は、１／４画素精度の予測補間画素を生成するための画素補間処理を実行し、画素補間処理された画面から動き補償フレーム間予測信号を生成する。コンピュータ１０が高負荷状態になると、ビデオ再生アプリケーションプログラム２０１は、画素補間処理の内容を変更してコンピュータ１０の負荷を軽減する特殊デコード処理を実行する。これにより、画質優先の動画再生と、画質よりもスムーズさを優先した動画再生とを自動的に切り替えることが可能となる。【選択図】      図５
2006101403.tif 000002
【特許請求の範囲】
【請求項１】
圧縮符号化された動画像ストリームをデコードする情報処理装置において、
デコードされた画面に対して画素補間処理を施す手段と、
前記動画像ストリームに含まれる動きベクトル情報に基づいて、前記画素補間処理された画面からデコード対象画面に対応する動き補償フレーム間予測信号を生成する動き補償手段と、
前記デコード対象画面に対応する予測誤差信号に前記デコード対象画面に対応する動き補償フレーム間予測信号を加算して前記デコード対象画面をデコードする手段と、
前記情報処理装置の負荷を検出する負荷検出手段と、
前記負荷検出手段によって検出された負荷が所定の基準値よりも大きい場合、前記情報処理装置の負荷が軽減されるように前記画素補間処理の内容を変更する補間制御手段とを具備することを特徴とする情報処理装置。
【請求項２】
前記補間制御手段は、前記画素補間処理によって生成される補間画素の画素精度を変更して前記画素補間処理のための処理量を低減する手段を含むことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記補間制御手段は、前記画素補間処理を実行するためのフィルタのタップ数を変更して前記画素補間処理のための処理量を低減する手段を含むことを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記補間制御手段は、前記画素補間処理の実行をスキップする手段を含み、
前記動き補償手段は、前記画素補間処理される前の参照画面から前記デコード対象画面に対応する動き補償フレーム間予測信号を生成することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記負荷検出手段は、前記情報処理装置上で実行されるオペレーティングシステムに対して前記情報処理装置の負荷を問い合わせる手段を含むことを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記負荷検出手段は、前記情報処理装置に設けられたプロセッサの使用率に基づいて前記情報処理装置の負荷を検出する手段を含むことを特徴とする請求項１記載の情報処理装置。
【請求項７】
前記負荷検出手段は、前記情報処理装置に設けられたプロセッサの使用率および前記情報処理装置に設けられたメモリの使用率に基づいて前記情報処理装置の負荷を検出する手段を含むことを特徴とする請求項１記載の情報処理装置。
【請求項８】
圧縮符号化された動画像ストリームをデコードするデコード処理をコンピュータに実行させるプログラムであって、
デコードされた画面に対して画素補間処理を施す処理を、前記コンピュータに実行させる手順と、
前記動画像ストリームに含まれる動きベクトル情報に基づいて、前記画素補間処理された参照画面からデコード対象画面に対応する動き補償フレーム間予測信号を生成する動き補償処理を、前記コンピュータに実行させる手順と、
前記デコード対象画面に対応する予測誤差信号に前記デコード対象画面に対応する動き補償フレーム間予測信号を加算して前記デコード対象画面をデコードする処理を、前記コンピュータに実行させる手順と、
前記コンピュータの負荷を検出する処理を、前記コンピュータに実行させる手順と、
前記検出された負荷が所定の基準値よりも大きい場合、前記コンピュータの負荷が軽減されるように前記画素補間処理の内容を変更する処理を、前記コンピュータに実行させる手順とを具備することを特徴とするプログラム。
【請求項９】
前記画素補間処理の内容を変更する処理は、前記画素補間処理によって生成される補間画素の画素精度を変更して前記画素補間処理のための処理量を低減する処理を含むことを特徴とする請求項８記載のプログラム。
【請求項１０】
前記画素補間処理の内容を変更する処理は、前記画素補間処理を実行するためのフィルタのタップ数を変更して前記画素補間処理のための処理量を低減する処理を含むことを特徴とする請求項８記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパーソナルコンピュータのような情報処理装置および同装置で用いられるデコード用のプログラムに関する。
【背景技術】
【０００２】
近年、ＤＶＤ（Digital Versatile Disc）プレーヤ、ＴＶ装置のようなオーディオ・ビデオ（ＡＶ）機器と同様のＡＶ機能を備えたパーソナルコンピュータが開発されている。
【０００３】
このようなパーソナルコンピュータにおいては、圧縮符号化された動画像ストリームをソフトウェアによってデコードするソフトウェアデコーダが用いられている。ソフトウェアデコーダの使用により、専用のハードウェアを設けることなく、圧縮符号化された動画像ストリームをプロセッサ（ＣＰＵ）によってデコードすることが可能になる。
【０００４】
代表的な圧縮符号化技術としては、動き補償フレーム間予測符号化が知られている。動き補償フレーム間予測符号化を行うシステムとしては、小数画素精度の画像を用いて予測画像を生成するシステムが知られている（例えば、特許文献１参照）。このシステムにおいては、画素補間処理に要する処理量を低減するために、Ｂピクチャをデコードする場合には、Ｐピクチャをデコードする場合に使用されるフィルタよりもタップ数の少ないフィルタを用いて参照画面の画素補間処理が行われる。
【特許文献１】特開２００３−１６９３３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記システムでは、Ｂピクチャをデコードする場合には常にタップ数の少ないフィルタが用いられるので、再生画像の画質低下を招くことになる。
【０００６】
ところで、最近では、次世代の動画像圧縮符号化技術として、Ｈ．２６４／ＡＶＣ（ＡＶＣ：Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）規格が注目されている。Ｈ．２６４／ＡＶＣ規格は、ＭＰＥＧ２、ＭＰＥＧ４のような従来の圧縮符号化技術よりも高能率の圧縮符号化技術であり、ＨＤ（High Definition）のような高精細画像の符号化に使用される。このため、Ｈ．２６４／ＡＶＣ規格に対応するエンコード処理およびデコード処理の各々においては、ＭＰＥＧ２、ＭＰＥＧ４のような従来の圧縮符号化技術よりも多くの処理量が必要とされる。
【０００７】
したがって、Ｈ．２６４／ＡＶＣ規格で圧縮符号化された動画像ストリームをソフトウェアによってデコードするように設計されたパーソナルコンピュータにおいては、高精細画像の再生が可能になる反面、システムの負荷が増大すると、デコード処理自体に遅れが生じ、これによってスムーズな動画再生を実行できなくなる危険がある。
【０００８】
本発明は上述の事情を考慮してなされたものであり、画質優先の動画再生と画質よりもスムーズさを優先した動画再生とを自動的に切り替えることが可能な情報処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述の課題を解決するため、本発明は、圧縮符号化された動画像ストリームをデコードする情報処理装置において、デコードされた画面に対して画素補間処理を施す手段と、前記動画像ストリームに含まれる動きベクトル情報に基づいて、前記画素補間処理された画面からデコード対象画面に対応する動き補償フレーム間予測信号を生成する動き補償手段と、前記デコード対象画面に対応する予測誤差信号に前記デコード対象画面に対応する動き補償フレーム間予測信号を加算して前記デコード対象画面をデコードする手段と、前記情報処理装置の負荷を検出する負荷検出手段と、前記負荷検出手段によって検出された負荷が所定の基準値よりも大きい場合、前記情報処理装置の負荷が軽減されるように前記画素補間処理の内容を変更する補間制御手段とを具備することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、画質優先の動画再生と画質よりもスムーズさを優先した動画再生とを自動的に切り替えることが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して、本発明の実施形態を説明する。  
まず、図１および図２を参照して、本発明の一実施形態に係る情報処理装置の構成について説明する。この情報処理装置は、例えば、ノートブック型パーソナルコンピュータ１０として実現されている。
【００１２】
図１はノートブック型パーソナルコンピュータ１０のディスプレイユニットを開いた状態における正面図である。本コンピュータ１０は、コンピュータ本体１１と、ディスプレイユニット１２とから構成されている。ディスプレイユニット１２にはＬＣＤ（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）３０３、加算部３０４、デブロッキングフィルタ部３０５、フレームメモリ３０６、動きベクトル予測部３０７、補間予測部３０８、重み付き予測部３０９、イントラ予測部３１０、およびモード切替スイッチ部３１１を含む。Ｈ．２６４の直交変換は整数精度であり、従来のＤＣＴとは異なるが、ここではＤＣＴと称することとする。
【００３３】
各画面（ピクチャ）の符号化は、たとえば１６ｘ１６画素のマクロブロック単位で実行される。各マクロブロックごとに、フレーム内符号化モード（イントラ符号化モード）および動き補償フレーム間予測符号化モード（インター符号化モード）のいずれか一方が選択される。
【００３４】
動き補償フレーム間予測符号化モードにおいては、既に符号化された画面（ピクチャ）からの動きを推定することによって、符号化対象画面に対応する動き補償フレーム間予測信号が定められた形状単位で生成される。そして、符号化対象画面（ピクチャ）から動き補償フレーム間予測信号を引いた予測誤差信号が、直交変換（ＤＣＴ）、量子化、およびエントロピー符号化によって、符号化される。また、イントラ符号化モードにおいては、符号化対象画面（ピクチャ）から予測信号が生成され、その予測信号が直交変換（ＤＣＴ）、量子化、およびエントロピー符号化によって、符号化される。
【００３５】
Ｈ．２６４／ＡＶＣ規格に対応するコーデックは、さらに圧縮率を高めるために、
（１）従来のＭＰＥＧよりも高い画素精度（１／４画素精度）の動き補償
（２）フレーム内符号化を効率的に行うためのフレーム内予測
（３）ブロック歪みを低減するためのデブロッキングフィルタ
（４）４ｘ４画素単位の整数ＤＣＴ
（５）任意の位置の複数の画面（ピクチャ）を参照画面として使用可能なマルチリファレンスフレーム
（６）重み付け予測
等の技術を利用する。
【００３６】
以下、図４のソフトウェアデコーダの動作を説明する。
【００３７】
Ｈ．２６４／ＡＶＣ規格にしたがって圧縮符号化された動画像ストリームは、まず、エントロピー復号部３０１に入力される。圧縮符号化された動画像ストリームには、符号化された画像情報の他に、動き補償フレーム間予測符号化（インター予測符号化）で用いられた動きベクトル情報、フレーム内予測符号化（イントラ予測符号化）で用いられたフレーム内予測情報、予測モード（インター予測符号化／イントラ予測符号化）を示すモード情報等が含まれている。
【００３８】
デコード処理は、たとえば１６ｘ１６画素のマクロブロック単位で実行される。エントロピー復号部３０１は動画像ストリームに対して可変長復号のようなエントロピー復号処理を施して、動画像ストリームから、量子化ＤＣＴ係数、動きベクトル情報（動きベクトル差分情報）、フレーム内予測情報、およびモード情報を分離する。この場合、例えば、デコード対象画面（ピクチャ）内の各マクロブロックは４ｘ４画素（または８ｘ８画素）のブロック毎にエントロピー復号処理され、各ブロックは４ｘ４（または８ｘ８画素）の量子化ＤＣＴ係数に変換される。以下では、各ブロックが４ｘ４である場合を想定する。
【００３９】
動きベクトル情報は、動きベクトル予測部３０７に送られる。フレーム内予測情報は、イントラ予測部３１０に送られる。モード情報はモード切替スイッチ部３１１に送られる。
【００４０】
各デコード対象ブロックの４ｘ４の量子化ＤＣＴ係数は、逆量子化部３０２による逆量子化処理により４ｘ４のＤＣＴ係数（直交変換係数）に変換される。この４ｘ４のＤＣＴ係数は、逆ＤＣＴ部３０３による逆整数ＤＣＴ（逆直交変換）処理によって、周波数情報から、４ｘ４の画素値に変換される。この４ｘ４の画素値は、デコード対象ブロックに対応する予測誤差信号である。この予測誤差信号は加算部３０４に送られ、そこでデコード対象ブロックに対応する予測信号（動き補償フレーム間予測信号またはフレーム内予測信号）が加算され、これによってデコード対象ブロックに対応する４ｘ４の画素値がデコードされる。
【００４１】
イントラ予測モードにおいては、モード切替スイッチ部３１１によってイントラ予測部３１０が選択され、これによってイントラ予測部３１０からのフレーム内予測信号が予測誤差信号に加算される。インター予測モードにおいては、モード切替スイッチ部３１１によって重み付き予測部３０９が選択され、これによって、動きベクトル予測部３０７、補間予測部３０８、および重み付き予測部３０９によって得られる動き補償フレーム間予測信号が予測誤差信号に加算される。
【００４２】
このように、デコード対象画面に対応する予測誤差信号に予測信号（動き補償フレーム間予測信号またはフレーム内予測信号）を加算してデコード対象画面をデコードする処理が所定のブロック単位で実行される。
【００４３】
デコードされた各画面（ピクチャ）は、デブロッキングフィルタ部３０５によってデブロッキングフィルタ処理が施された後に、フレームメモリ３０６に格納される。このデブロッキングフィルタ部３０５は、例えば４ｘ４画素のブロック単位で、デコードされた各画面に対してブロックノイズを低減するためのデブロッキングフィルタ処理を施す。このデブロッキングフィルタ処理は、ブロック歪みが参照画像に含まれてしまい、これによってブロック歪みが復号画像に伝搬してしまうことを防止する。デブロッキングフィルタ処理のための処理量は膨大であり、ソフトウェアデコーダの全処理量の５０パーセントを占める場合もある。デブロッキングフィルタ処理は、ブロック歪みが生じやすい箇所に対してはより強いフィリタリングが施され、ブロック歪みが生じにくい箇所に対しては弱いフィリタリングが施されるように、適応的に実行される。デブロッキングフィルタ処理はループフィルタ処理によって実現されている。
【００４４】
そして、デブロッキングフィルタ処理された各画面は、フレームメモリ３０６から出力画像フレーム（または出力画像フィールド）として読み出される。また、動き補償フレーム間予測のための参照画像として使用されるべき各画面（参照画面）は、フレームメモリ３０６内に一定期間保持される。Ｈ．２６４／ＡＶＣ規格の動き補償フレーム間予測符号化においては、複数の画面を参照画面として使用することができる。このため、フレームメモリ３０６は、複数画面分の画像を記憶するための複数個のフレームメモリ部を備えている。
【００４５】
動きベクトル予測部３０７は、デコード対象ブロックに対応する動きベクトル差分情報に基づいて、動きベクトル情報を生成する。補間予測部３０８は、デコード対象ブロックに対応する動きベクトル情報に基づいて、参照画面内の、整数精度の画素群および１／４画素精度の予測補間画素群から、動き補償フレーム間予測信号を生成する。１／４画素精度の予測補間画素の生成においては、６タップフィルタ（入力６つ、出力１つ）が用いられる。このため、高周波成分まで考慮した高精度の予測補間処理を実行できるが、その分、動き補償には多くの処理量が必要となる。
【００４６】
重み付け予測部３０９は、動き補償フレーム間予測信号に対して重み係数を乗じる処理を動き補償ブロック単位で実行することにより、重み付けされた動き補償フレーム間予測信号を生成する。この重み付け予測は、デコード対象画面の明るさを予測する処理である。この重み付け予測処理により、フェード・イン、フェード・アウトのように、明るさが時間の経過と共に変化する画像の画質を向上することができる。しかし、その分、ソフトウェアデコードに必要な処理量は増大する。
【００４７】
イントラ予測部３１０は、デコード対象画面からその画面内に含まれるデコード対象ブロックのフレーム内予測信号を生成するものである。このイントラ予測部３１０は、上述のフレーム内予測情報に従って画面内予測処理を実行して、デコード対象ブロックと同一画面内に存在する、当該デコード対象ブロックに近接する既にデコードされた他のブロック内の画素値からフレーム内予測信号を生成する。このフレーム内予測（イントラ予測）は、ブロック間の画素相関を利用して圧縮率を高める技術である。このフレーム内予測においては、フレーム内予測情報に従って、垂直予測（予測モード０）、水平予測（予測モード１）、平均値予測（予測モード３）、平面予測（予測モード４）を含む４種類の予測モードの内の一つが、フレーム内予測ブロック（例えば１６ｘ１６画素）単位で選択される。平面予測が選択される頻度は他のフレーム内予測モードよりも低いが、平面予測のために必要とされる処理量は、他のどのフレーム内予測モードの処理量よりも多い。
【００４８】
本実施形態においては、たとえコンピュータ１０の負荷が増大しても時間制約内に動画像ストリームをリアルタイムにデコードできるようにするために、コンピュータ１０の負荷に応じて、図４で説明したデコード処理（以下、通常デコード処理と称する）と、特殊デコード処理とを選択的に実行する。特殊デコード処理は画素補間処理の内容を簡略化または省略したデコード処理であり、以下ではこの特殊デコード処理を特殊補間予測デコード処理と称することとする。
【００４９】
以下、図５のフローチャートを参照して、ビデオ再生アプリケーションプログラム２０１によって実行されるデコード処理の手順を説明する。
【００５０】
ビデオ再生アプリケーションプログラム２０１は、デコード処理の実行期間中、ＯＳに対してコンピュータ１０の現在の負荷を問い合わせることによってコンピュータ１０の現在の負荷を検出する処理を定期的に繰り返し実行する（ステップＳ１０１）。このステップＳ１０１においては、ビデオ再生アプリケーションプログラム２０１は、ＣＰＵ１１１の現在の使用率（プロセッサ使用率）と主メモリ１１３の現在の使用率（メモリ使用率）とをＯＳから取得する。
【００５１】
そして、ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０の現在の負荷量が所定の基準値よりも大きいかどうかによって、コンピュータ１０が高負荷状態であるかどうかを判別する（ステップＳ１０２）。ステップＳ１０２においては、例えば、ビデオ再生アプリケーションプログラム２０１は、現在のプロセッサ使用率が予め決められたプロセッサ基準使用率よりも大きいか否かを判別するとともに、現在のメモリ使用率が予め決められたメモリ基準使用率よりも大きいか否かを判別する。現在のプロセッサ使用率および現在のメモリ使用率のいずれか一方でもそれに対応する基準使用率よりも大きい場合には、ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０が高負荷状態であると判定する。現在のプロセッサ使用率および現在のメモリ使用率の双方がそれらに対応する基準使用率以下ならば、ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０が高負荷状態ではないと判定する。
【００５２】
コンピュータ１０が高負荷状態ではないならば（ステップＳ１０２のＮＯ）、ビデオ再生アプリケーションプログラム２０１は、ＣＰＵ１１１に実行させるべきデコード処理として上述の通常デコード処理を選択し、これによって図４で説明した一連の処理をＣＰＵ１１１上で実行する（ステップＳ１０３）。
【００５３】
通常デコード処理においては、補間予測部３０８は、図６に示すように、まず、６タップフィルタ（入力６つ、出力１つ）を用いて、参照画面から１／２画素精度の予測補間画素（１／２画素信号）を生成する（ステップＳ２０１）。１／２画素精度の全ての画素位置それぞれに対応する１／２画素信号を生成した後、補間予測部３０８は、２タップの平均値フィルタ（入力２つ、出力１つ）を用いて、１／４画素精度の予測補間画素（１／４画素信号）を生成する。１／４画素精度の全ての画素位置それぞれに対応する全ての１／４画素信号を生成した後、補間予測部３０８は、生成した１／４画素信号を用いて動き補償処理を実行する（ステップＳ２０３）。
【００５４】
コンピュータ１０が高負荷状態にならない限り、つまりデコードパフォーマンスが低下しない限り、動画像ストリームは通常デコード処理によってデコードされる。
【００５５】
一方、コンピュータ１０が高負荷状態であるならば（ステップＳ１０２のＹＥＳ）、ビデオ再生アプリケーションプログラム２０１は、ＣＰＵ１１１に実行させるべきデコード処理として上述の特殊補間予測デコード処理を選択し、これによって補間予測に関する処理が簡略化または省略されたデコード処理をＣＰＵ１１１上で実行する（ステップＳ１０４）。
【００５６】
特殊補間予測デコード処理において実行される画素補間処理は、以下の３通りに分けられる。
【００５７】
（ａ）１／４画素精度の補間を１／２画素精度の補間に置き換える。
【００５８】
（ｂ）６タップフィルタを２タップフィルタに置き換える。
【００５９】
（ｃ）フィルタなし（つまり整数画素精度）
本実施形態においては、図７に示すように、コンピュータ１０の現在の負荷量に応じて、上記（ａ）、（ｂ）、（ｃ）の方法が選択的に実行される。高負荷状態は、デコードパフォーマンスレベル１，２，３の３つに分類されている。レベル１，２，３の順にコンピュータの負荷が高くなっている状態を示す。現在の負荷がデコードパフォーマンスレベル１に対応するならば（ステップＳ３０１のＹＥＳ）、補間予測部３０８は、上記（ａ）の方法を選択し、６タップフィルタを用いて１／２画素信号を生成する処理を実行する（ステップＳ３０２）。そして、補間予測部３０８は、１／２画素信号を用いて動き補償処理を実行する（ステップＳ３０３）。現在の負荷量がデコードパフォーマンスレベル２に対応するならば（ステップＳ３０４のＹＥＳ）、補間予測部３０８は、上記（ｂ）の方法を選択し、まず、２タップフィルタを用いて１／２画素信号を生成し、その後、２タップフィルタを用いて１／４画素信号を生成する（ステップＳ３０５）。そして、補間予測部３０８は、１／４画素信号を用いて動き補償処理を実行する（ステップＳ３０３）。現在の負荷がデコードパフォーマンスレベル３に対応するならば（ステップＳ３０６のＹＥＳ）、補間予測部３０８は、上記（ａ）と（ｂ）の方法を選択し、２タップフィルタで１／２画素補間を行う（ステップＳ３０７）。現在の負荷がデコードパフォーマンスレベル３よりも高いならば（ステップＳ３０６のＮＯ）、補間予測部３０８は、上記（ｃ）の方法を選択し、画素補間処理をスキップする（ステップＳ３０８）。この場合、補間予測部３０８は、画素補間処理が施される前の参照画面、つまり整数画素信号を用いて動き補償処理を実行する（ステップＳ３０３）。
【００６０】
このように、画素補間処理の内容を簡略化またはその実行を省略することにより、１画面あたりのソフトウェアデコードに必要な処理量を低減することができる。よって、ソフトウェアデコードの実行中にたとえ他のプログラムが実行されてコンピュータ１０が高負荷状態となっても、コマ落ちや、オブジェクトの動きが極端に遅くなるなどの不具合を招くことなく、動画像データのデコードおよび再生をスムーズに継続して実行することができる。
【００６１】
なお、画素補間処理の内容を簡略化または省略すると、動き補償の精度が低下する可能性がある。しかし、コマ落ちや、オブジェクトの動きが極端に遅くなる場合に比べれば、十分に視認性のよい動画像を表示することができる。
【００６２】
動画像ストリーム全てのデコードが完了するまで、図５のステップＳ１０１〜Ｓ１０４の処理は繰り返し実行される（ステップＳ１０５）。他のプログラムの実行が終了されること等によってコンピュータ１０の負荷が下がると、デコード処理は、特殊補間予測デコード処理から通常デコード処理に再び切り替えられる。
【００６３】
以上のように、本実施形態によれば、コンピュータ１０の負荷に応じて、画質優先の動画再生と、画質よりもスムーズさを優先した動画再生とを自動的に切り替えることが可能となる。すなわち、システムが低負荷状態の場合には、通常デコード処理を実行することによって動画を高画質で表示することができる。また、システムが高負荷状態の場合には、多くの処理量を必要とする画素補間処理の内容を変更してシステムの負荷を軽減することにより、コマ落ちや、オブジェクトの動きが極端に遅くなるなどの不具合を招くことなく、スムーズな動画再生を実現することができる。
【００６４】
なお、上述のデコード制御処理は全てコンピュータプログラムによって実現されているので、このコンピュータプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータに導入するだけで、本実施形態と同様の効果を容易に実現することができる。
【００６５】
また、本実施形態のソフトウェアデコーダは、パーソナルコンピュータに限らず、ＰＤＡ、携帯型電話機等にも適用することができる。
【００６６】
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施形態に係るコンピュータの概観を示す斜視図。
【図２】図１のコンピュータのシステム構成を示すブロック図。
【図３】図１のコンピュータで用いられるビデオ再生アプリケーションプログラムの機能構成を示すブロック図。
【図４】図３のビデオ再生アプリケーションプログラムによって実現されるソフトウェアデコーダの構成を示すブロック図。
【図５】図３のビデオ再生アプリケーションプログラムによって実行されるデコード処理の手順を示すフローチャート。
【図６】図３のビデオ再生アプリケーションプログラムによって実行される第１の補間予測処理の例を示すフローチャート。
【図７】図３のビデオ再生アプリケーションプログラムによって実行される第２の補間予測処理の例を示すフローチャート。
【符号の説明】
【００６８】
1０…コンピュータ、１１１…ＣＰＵ、１１３…メモリ、１１４…グラフィクスコントローラ、２０１…負荷検出モジュール、２１２…デコード制御モジュール、２１３…デコード実行モジュール、３０１…エントロピー復号部、３０２…逆量子化部、３０３…逆ＤＣＴ部、３０４…加算部、３０５…デブロッキングフィルタ部、３０６…フレームメモリ、３０７…動きベクトル予測部、３０８…補間予測部、３０９…重み付き予測部、３１０…イントラ予測部、３１１…モード切替スイッチ部。
【図１】
2006101403.tif 000003
【図２】
2006101403.tif 000004
【図３】
2006101403.tif 000005
【図４】
2006101403.tif 000006
【図５】
2006101403.tif 000007
【図６】
2006101403.tif 000008
【図７】
2006101403.tif 000009