(57)【要約】【課題】動画像ストリームのデコードをスムーズに実行することが可能な情報処理装置を実現する。【解決手段】ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０の現在の負荷量を検出する。コンピュータ１０が高負荷状態ではないならば、ビデオ再生アプリケーションプログラム２０１は、全ての符号化画面をデコードする通常デコード処理を実行する。コンピュータ１０が高負荷状態になると、ビデオ再生アプリケーションプログラム２０１は、特殊デコード処理を実行する。特殊デコード処理においては、平面予測モードでフレーム内予測符号化されたブロックに対するデコード処理の実行がスキップされる。これにより、コマ落ちや、オブジェクトの動きが極端に遅くなるなどの不具合を招くことなく、動画像データのデコードおよび再生をスムーズに継続して実行することができる。【選択図】      図６
2006101404.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）３０３、加算部３０４、デブロッキングフィルタ部３０５、フレームメモリ３０６、動きベクトル予測部３０７、補間予測部３０８、重み付き予測部３０９、イントラ予測部３１０、およびモード切替スイッチ部３１１を含む。Ｈ．２６４の直交変換は整数精度であり、従来のＤＣＴとは異なるが、ここではＤＣＴと称することとする。
【００３２】
各画面（ピクチャ）の符号化は、たとえば１６ｘ１６画素のマクロブロック単位で実行される。各マクロブロックごとに、フレーム内符号化モード（イントラ符号化モード）および動き補償フレーム間予測符号化モード（インター符号化モード）のいずれか一方が選択される。
【００３３】
動き補償フレーム間予測符号化モードにおいては、既に符号化された画面（ピクチャ）からの動きを推定することによって、符号化対象画面に対応する動き補償フレーム間予測信号が定められた形状単位で生成される。そして、符号化対象画面（ピクチャ）から動き補償フレーム間予測信号を引いた予測誤差信号が、直交変換（ＤＣＴ）、量子化、およびエントロピー符号化によって、符号化される。また、イントラ符号化モードにおいては、符号化対象画面（ピクチャ）から予測信号が生成され、その予測信号が直交変換（ＤＣＴ）、量子化、およびエントロピー符号化によって、符号化される。
【００３４】
Ｈ．２６４／ＡＶＣ規格に対応するコーデックは、さらに圧縮率を高めるために、
（１）従来のＭＰＥＧよりも高い画素精度（１／４画素精度）の動き補償
（２）フレーム内符号化を効率的に行うためのフレーム内予測
（３）ブロック歪みを低減するためのデブロッキングフィルタ
（４）４ｘ４画素単位の整数ＤＣＴ
（５）任意の位置の複数の画面（ピクチャ）を参照画面として使用可能なマルチリファレンスフレーム
（６）重み付け予測
等の技術を利用する。
【００３５】
以下、図４のソフトウェアデコーダの動作を説明する。
【００３６】
Ｈ．２６４／ＡＶＣ規格にしたがって圧縮符号化された動画像ストリームは、まず、エントロピー復号部３０１に入力される。圧縮符号化された動画像ストリームには、符号化された画像情報の他に、動き補償フレーム間予測符号化（インター予測符号化）で用いられた動きベクトル情報、フレーム内予測符号化（イントラ予測符号化）で用いられたフレーム内予測情報、予測モード（インター予測符号化／イントラ予測符号化）を示すモード情報等が含まれている。
【００３７】
デコード処理は、たとえば１６ｘ１６画素のマクロブロック単位で実行される。エントロピー復号部３０１は動画像ストリームに対して可変長復号のようなエントロピー復号処理を施して、動画像ストリームから、量子化ＤＣＴ係数、動きベクトル情報（動きベクトル差分情報）、フレーム内予測情報、およびモード情報を分離する。この場合、例えば、デコード対象画面（ピクチャ）内の各マクロブロックは４ｘ４画素（または８ｘ８画素）のブロック毎にエントロピー復号処理され、各ブロックは４ｘ４（または８ｘ８画素）の量子化ＤＣＴ係数に変換される。以下では、各ブロックが４ｘ４である場合を想定する。
【００３８】
動きベクトル情報は、動きベクトル予測部３０７に送られる。フレーム内予測情報は、イントラ予測部３１０に送られる。モード情報はモード切替スイッチ部３１１に送られる。
【００３９】
各デコード対象ブロックの４ｘ４の量子化ＤＣＴ係数は、逆量子化部３０２による逆量子化処理により４ｘ４のＤＣＴ係数（直交変換係数）に変換される。この４ｘ４のＤＣＴ係数は、逆ＤＣＴ部３０３による逆整数ＤＣＴ（逆直交変換）処理によって、周波数情報から、４ｘ４の画素値に変換される。この４ｘ４の画素値は、デコード対象ブロックに対応する予測誤差信号である。この予測誤差信号は加算部３０４に送られ、そこでデコード対象ブロックに対応する予測信号（動き補償フレーム間予測信号またはフレーム内予測信号）が加算され、これによってデコード対象ブロックに対応する４ｘ４の画素値がデコードされる。
【００４０】
イントラ予測モードにおいては、モード切替スイッチ部３１１によってイントラ予測部３１０が選択され、これによってイントラ予測部３１０からのフレーム内予測信号が予測誤差信号に加算される。インター予測モードにおいては、モード切替スイッチ部３１１によって重み付き予測部３０９が選択され、これによって、動きベクトル予測部３０７、補間予測部３０８、および重み付き予測部３０９によって得られる動き補償フレーム間予測信号が予測誤差信号に加算される。
【００４１】
このように、デコード対象画面に対応する予測誤差信号に予測信号（動き補償フレーム間予測信号またはフレーム内予測信号）を加算してデコード対象画面をデコードする処理が所定のブロック単位で実行される。
【００４２】
デコードされた各画面（ピクチャ）は、デブロッキングフィルタ部３０５によってデブロッキングフィルタ処理が施された後に、フレームメモリ３０６に格納される。このデブロッキングフィルタ部３０５は、例えば４ｘ４画素のブロック単位で、デコードされた各画面に対してブロックノイズを低減するためのデブロッキングフィルタ処理を施す。このデブロッキングフィルタ処理は、ブロック歪みが参照画像に含まれてしまい、これによってブロック歪みが復号画像に伝搬してしまうことを防止する。デブロッキングフィルタ処理のための処理量は膨大であり、ソフトウェアデコーダの全処理量の５０パーセントを占める場合もある。デブロッキングフィルタ処理は、ブロック歪みが生じやすい箇所に対してはより強いフィリタリングが施され、ブロック歪みが生じにくい箇所に対しては弱いフィリタリングが施されるように、適応的に実行される。デブロッキングフィルタ処理はループフィルタ処理によって実現されている。
【００４３】
そして、デブロッキングフィルタ処理された各画面は、フレームメモリ３０６から出力画像フレーム（または出力画像フィールド）として読み出される。また、動き補償フレーム間予測のための参照画像として使用されるべき各画面（参照画面）は、フレームメモリ３０６内に一定期間保持される。Ｈ．２６４／ＡＶＣ規格の動き補償フレーム間予測符号化においては、複数の画面を参照画面として使用することができる。このため、フレームメモリ３０６は、複数画面分の画像を記憶するための複数個のフレームメモリ部を備えている。
【００４４】
動きベクトル予測部３０７は、デコード対象ブロックに対応する動きベクトル差分情報に基づいて、動きベクトル情報を生成する。補間予測部３０８は、デコード対象ブロックに対応する動きベクトル情報に基づいて、参照画面内の、整数精度の画素群および１／４画素精度の予測補間画素群から、動き補償フレーム間予測信号を生成する。１／４画素精度の予測補間画素の生成においては、６タップフィルタ（入力６つ、出力１つ）が用いられる。このため、高周波成分まで考慮した高精度の予測補間処理を実行できるが、その分、動き補償には多くの処理量が必要となる。
【００４５】
重み付け予測部３０９は、動き補償フレーム間予測信号に対して重み係数を乗じる処理を動き補償ブロック単位で実行することにより、重み付けされた動き補償フレーム間予測信号を生成する。この重み付け予測は、デコード対象画面の明るさを予測する処理である。この重み付け予測処理により、フェード・イン、フェード・アウトのように、明るさが時間の経過と共に変化する画像の画質を向上することができる。しかし、その分、ソフトウェアデコードに必要な処理量は増大する。
【００４６】
イントラ予測部３１０は、デコード対象画面からその画面内に含まれるデコード対象ブロックのフレーム内予測信号を生成するものである。このイントラ予測部３１０は、上述のフレーム内予測情報に従って画面内予測処理を実行して、デコード対象ブロックと同一画面内に存在する、当該デコード対象ブロックに近接する既にデコードされた他の幾つかのブロック内の画素値からフレーム内予測信号を生成する。このフレーム内予測（イントラ予測）は、同一画面内のブロック間の画素相関を利用して圧縮率を高める技術である。このフレーム内予測においては、フレーム内予測情報に従って、垂直予測（予測モード０）、水平予測（予測モード１）、平均値予測（予測モード３）、平面予測（予測モード４）を含む４種類の予測モードの内の一つが、フレーム内予測ブロック（例えば１６ｘ１６画素のブロック）単位で選択される。平面予測が選択される頻度は他のフレーム内予測モードよりも低いが、平面予測のために必要とされる処理量は、他のどのフレーム内予測モードの処理量よりも多い。
【００４７】
図５は、１６ｘ１６画素の平面予測の例を示している。
【００４８】
１６ｘ１６画素のブロック内の各画素値は、既にデコードされた上ブロックの１６画素と、既にデコードされた左ブロックの１６画素と、既にデコードされた左上ブロックの１画素から予測される。いま、予測画素pred[x,y]は、基本的には以下の演算処理によって求められる。
【００４９】
（１）記号ａで示される角の２つの画素を重みとして加算
（２）記号ｂで示される水平方向の画素群を水平成分の重みとして加算
（３）記号ｃで示される垂直方向の画素群を垂直成分の重みとして加算
（４）上記（１）〜（３）を加算した結果を予測画素pred[x,y]とする。
【００５０】
具体的な演算式は以下の通りである。
【００５１】
（１）a=16*(p[-1,15]+p[15,-1])
（２）b=(5*H+32)/64
H=Σ(x’+1)(p[8+x’,-1]-p[6-x’,-1])
(x’=0...7)
（３）c=(5*V+32)/64
V=Σ(y’+1)(p[-1,8+y’]-p[-1,6-y’])
(y’=0...7)
（４）pred[x,y]=(a+b*(x-7)+(y-7)+16)/32
(x,y=0...15)
ここで、p[x,y]は既にデコードされた画素値を示している。
【００５２】
本実施形態においては、たとえコンピュータ１０の負荷が増大しても時間制約内に動画像ストリームをリアルタイムにデコードできるようにするために、コンピュータ１０の負荷に応じて、図４で説明したデコード処理（以下、通常デコード処理と称する）と、特殊デコード処理とを選択的に実行する。特殊デコード処理は、平面予測モードでフレーム内予測符号化されたブロックに対するデコード（図４のエントロピー復号よりも後の全ての処理）をスキップし、平面予測モードでフレーム内予測符号化されたブロック以外の他のブロック（平面予測モード以外の他の予測モードでフレーム内予測符号化されたブロック群、および動き補償フレーム間予測符号化されたブロック群）のみをデコードするデコード処理である。すなわち、コンピュータ１０が低負荷状態である場合には平面予測モードでフレーム内予測符号化されたブロックに対するデコード処理が実行されるが、コンピュータ１０が低負荷状態である場合には平面予測モードでフレーム内予測符号化されたブロックに対するデコード処理は省略される。
【００５３】
以下、図６のフローチャートを参照して、ビデオ再生アプリケーションプログラム２０１によって実行されるデコード処理の手順を説明する。
【００５４】
ビデオ再生アプリケーションプログラム２０１は、デコード処理の実行期間中、ＯＳに対してコンピュータ１０の現在の負荷を問い合わせることによってコンピュータ１０の現在の負荷を検出する処理を定期的に繰り返し実行する（ステップＳ１０１）。このステップＳ１０１においては、ビデオ再生アプリケーションプログラム２０１は、ＣＰＵ１１１の現在の使用率（プロセッサ使用率）と主メモリ１１３の現在の使用率（メモリ使用率）とをＯＳから取得する。
【００５５】
そして、ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０の現在の負荷量が所定の基準値よりも大きいかどうかによって、コンピュータ１０が高負荷状態であるかどうかを判別する（ステップＳ１０２）。ステップＳ１０２においては、例えば、ビデオ再生アプリケーションプログラム２０１は、現在のプロセッサ使用率が予め決められたプロセッサ基準使用率よりも大きいか否かを判別するとともに、現在のメモリ使用率が予め決められたメモリ基準使用率よりも大きいか否かを判別する。現在のプロセッサ使用率および現在のメモリ使用率のいずれか一方でもそれに対応する基準使用率よりも大きい場合には、ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０が高負荷状態であると判定する。現在のプロセッサ使用率および現在のメモリ使用率の双方がそれらに対応する基準使用率以下ならば、ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０が高負荷状態ではないと判定する。
【００５６】
コンピュータ１０が高負荷状態ではないならば（ステップＳ１０２のＮＯ）、ビデオ再生アプリケーションプログラム２０１は、ＣＰＵ１１１に実行させるべきデコード処理として上述の通常デコード処理を選択し、これによって図４で説明した一連の処理をＣＰＵ１１１上で実行する（ステップＳ１０３）。
【００５７】
通常デコード処理においては、圧縮符号化された動画像ストリームに含まれる符号化画面（ピクチャ）群それぞれのデコードが順次実行される。コンピュータ１０が高負荷状態にならない限り、つまりデコードパフォーマンスが低下しない限り、動画像ストリームは通常デコード処理によってデコードされる。
【００５８】
一方、コンピュータ１０が高負荷状態であるならば（ステップＳ１０２のＹＥＳ）、ビデオ再生アプリケーションプログラム２０１は、ＣＰＵ１１１に実行させるべきデコード処理として上述の特殊デコード処理を選択し、これによって平面予測モードでフレーム内予測符号化された１６ｘ１６画素の各ブロックに対するデコードを省略したデコード処理をＣＰＵ１１１上で実行する（ステップＳ１０４，Ｓ１０５）。この特殊デコード処理においては、ビデオ再生アプリケーションプログラム２０１は、動画像ストリームに含まれるシンタックス情報を解析して、デコード対象マクロブロックの構造を判別する（ステップＳ１０４）。シンタックス情報は動画像ストリームのシーケンス構造を示す情報である。上述の動きベクトル情報、フレーム内予測情報、およびモード情報等もシンタックス情報の一部である。
【００５９】
デコード対象マクロブロックが平面モードでフレーム内予測符号化されたマクロブロックである場合、ビデオ再生アプリケーションプログラム２０１は、そのマクロブロックのデコードを省略する（ステップＳ１０５）。
【００６０】
上述したように、平面モードでフレーム内予測符号化されたマクロブロックの１６ｘ１６画素それぞれの値をデコード済みの周辺のマクロブロックそれぞれの画素値から予測するためには、多くの演算量が必要となる。このため、平面モードでフレーム内予測符号化されたマクロブロックに対するデコード処理の実行を省略することにより、ソフトウェアデコードに必要な処理量を大幅に低減することができる。よって、ソフトウェアデコードの実行中にたとえ他のプログラムが実行されてコンピュータ１０が高負荷状態となっても、コマ落ちや、オブジェクトの動きが極端に遅くなるなどの不具合を招くことなく、動画像データのデコードおよび再生をスムーズに継続して実行することができる。
【００６１】
なお、平面モードでフレーム内予測符号化されたマクロブロックのデコード処理を省略すると、正しい画面を再生することはできなくなる。しかし、コマ落ちや、オブジェクトの動きが極端に遅くなる場合に比べれば、十分に視認性のよい動画像を表示することができる。
【００６２】
動画像ストリーム全てのデコードが完了するまで、上述のステップＳ１０１〜Ｓ１０５の処理は繰り返し実行される（ステップＳ１０６）。他のプログラムの実行が終了されること等によってコンピュータ１０の負荷が下がると、デコード処理は、特殊デコード処理から通常デコード処理に再び切り替えられる。
【００６３】
Ｈ．２６４のシーケンスの構造は、図７のように複数のアクセスユニット（ＡＵ）から構成されている。各アクセスユニットは１つの画面に対応している。各アクセスユニットは複数のＮＡＬ（Ｎｅｔｗｏｒｋ  Ａｂｓｔｒａｃｔｉｏｎ  Ｌａｙｅｒ）ユニットから構成されている。各ＮＡＬユニットは図８に示すようにヘッダ部とデータ部に分かれている。ＮＡＬユニットは図１１のように３２種類あり、ヘッダ部を解析することによってその種類を判別することができる。図９は図７のＡＵの構造に具体的なＮＡＬユニットの種類を当てはめて示した図である。図９中の各ブロックはＮＡＬユニットを示している。
【００６４】
Ｈ．２６４／ＡＶＣでは、図１２に示すように、Ｉ（イントラ）スライスに含まれるマクロブロックのタイプと１６ｘ１６フレーム内予測モード（Intra16x16PredMode）とが対応付けられている。このため、ビデオ再生アプリケーションプログラム２０１は、図８のマクロブロック情報の中のmb_typeを参照することにより、フレーム内予測モードの種類を判別することができる。Intra16x16PredModeの番号とフレーム内予測モードとの関係は図１３に示す通りである。
【００６５】
次に、図１０のフローチャートを参照して、特殊デコード処理の具体的な手順を説明する。
【００６６】
ビデオ再生アプリケーションプログラム２０１は、ＶＣＬ（Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｌａｙｅｒ）で生成されたＮＡＬユニット（ＶＣＬ  ＮＡＬユニット）を入力し、マクロブロックに関するシンタックス情報を解析する（ステップＳ２０１，Ｓ２０２）。そして、ビデオ再生アプリケーションプログラム２０１は、その解析結果に応じてデコード処理を実行すべきか否かを判断する。具体的には、ビデオ再生アプリケーションプログラム２０１は、マクロブロック情報の中のmb_typeを参照することにより、デコード対象のマクロブロックのフレーム内予測モードの種類が平面予測モード（Intra16x16PredMode=3）であるか否かを判断する（ステップＳ２０３）。平面予測モードでなければ（ステップＳ２０３のＮＯ）、ビデオ再生アプリケーションプログラム２０１は、そのデコード対象マクロブロックに対するデコード処理を実行する（ステップＳ２０４）。一方、平面予測モードであれば（ステップＳ２０３のＹＥＳ）、ビデオ再生アプリケーションプログラム２０１は、ステップＳ２０４のデコード処理の実行をスキップする。
【００６７】
なお、以上の特殊デコード処理は輝度信号のマクロブロックに対するものである。ビデオ再生アプリケーションプログラム２０１は、色差信号のマクロブロックについても、輝度信号のマクロブロックと同様の処理を実行する。この場合、ビデオ再生アプリケーションプログラム２０１は、図８のマクロブロック情報の中のintra_chroma_pred_modeを参照して、フレーム内予測モードの種類を判別する。図１４に示すように、intra_chroma_pred_mode=3は、平面予測モードを示す。
【００６８】
以上のように、本実施形態によれば、システムが高負荷状態の場合には、比較的多くの処理量を必要とする、平面予測モードでフレーム内予測符号化されたブロックに対するデコード処理を省略してシステムの負荷を低減することにより、コマ落ちや、オブジェクトの動きが極端に遅くなるなどの不具合を招くことなく、スムーズな動画再生を実現することができる。
【００６９】
なお、上述のデコード制御処理は全てコンピュータプログラムによって実現されているので、このコンピュータプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータに導入するだけで、本実施形態と同様の効果を容易に実現することができる。
【００７０】
また、本実施形態のソフトウェアデコーダは、パーソナルコンピュータに限らず、ＰＤＡ、携帯型電話機等にも適用することができる。
【００７１】
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００７２】
【図１】本発明の一実施形態に係るコンピュータの概観を示す斜視図。
【図２】図１のコンピュータのシステム構成を示すブロック図。
【図３】図１のコンピュータで用いられるビデオ再生アプリケーションプログラムの機能構成を示すブロック図。
【図４】図３のビデオ再生アプリケーションプログラムによって実現されるソフトウェアデコーダの構成を示すブロック図。
【図５】図３のビデオ再生アプリケーションプログラムによって実行される平面予測処理の例を説明するための図。
【図６】図３のビデオ再生アプリケーションプログラムによって実行されるデコード処理の手順を示すフローチャート。
【図７】図３のビデオ再生アプリケーションプログラムによってデコードされる動画像ストリームの構造を示す図。
【図８】図７の動画像ストリームのＮＡＬユニットの構造を示す図。
【図９】図７の動画像ストリームのアクセスユニットの構造を示す図。
【図１０】図３のビデオ再生アプリケーションプログラムによって実行される特殊デコード処理の手順を示すフローチャート。
【図１１】図７の動画像ストリームに含まれるＮＡＬユニットの種類を説明するための図。
【図１２】図７の動画像ストリームに含まれるマクロブロックタイプとフレーム内予測モード番号との関係を示す図。
【図１３】図１２のフレーム内予測モード番号とフレーム内予測モードの種類との関係を示す図。
【図１４】図７の動画像ストリームに含まれるintra_chroma_pred_modeとフレーム内予測モードの種類との関係を示す図。
【符号の説明】
【００７３】
1０…コンピュータ、１１１…ＣＰＵ、１１３…メモリ、１１４…グラフィクスコントローラ、２０１…負荷検出モジュール、２１２…デコード制御モジュール、２１３…デコード実行モジュール、３０１…エントロピー復号部、３０２…逆量子化部、３０３…逆ＤＣＴ部、３０４…加算部、３０５…デブロッキングフィルタ部、３０６…フレームメモリ、３０７…動きベクトル予測部、３０８…補間予測部、３０９…重み付き予測部、３１０…イントラ予測部、３１１…モード切替スイッチ部。
【図１】
2006101404.tif 000003
【図２】
2006101404.tif 000004
【図３】
2006101404.tif 000005
【図４】
2006101404.tif 000006
【図５】
2006101404.tif 000007
【図６】
2006101404.tif 000008
【図７】
2006101404.tif 000009
【図８】
2006101404.tif 000010
【図９】
2006101404.tif 000011
【図１０】
2006101404.tif 000012
【図１１】
2006101404.tif 000013
【図１２】
2006101404.tif 000014
【図１３】
2006101404.tif 000015
【図１４】
2006101404.tif 000016