JP2006101404A - 情報処理装置および同装置で用いられるプログラム - Google Patents
情報処理装置および同装置で用いられるプログラム Download PDFInfo
- Publication number
- JP2006101404A JP2006101404A JP2004287497A JP2004287497A JP2006101404A JP 2006101404 A JP2006101404 A JP 2006101404A JP 2004287497 A JP2004287497 A JP 2004287497A JP 2004287497 A JP2004287497 A JP 2004287497A JP 2006101404 A JP2006101404 A JP 2006101404A
- Authority
- JP
- Japan
- Prior art keywords
- computer
- load
- decoding
- information processing
- processing apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Television Signal Processing For Recording (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】動画像ストリームのデコードをスムーズに実行することが可能な情報処理装置を実現する。
【解決手段】ビデオ再生アプリケーションプログラム201は、コンピュータ10の現在の負荷量を検出する。コンピュータ10が高負荷状態ではないならば、ビデオ再生アプリケーションプログラム201は、全ての符号化画面をデコードする通常デコード処理を実行する。コンピュータ10が高負荷状態になると、ビデオ再生アプリケーションプログラム201は、特殊デコード処理を実行する。特殊デコード処理においては、平面予測モードでフレーム内予測符号化されたブロックに対するデコード処理の実行がスキップされる。これにより、コマ落ちや、オブジェクトの動きが極端に遅くなるなどの不具合を招くことなく、動画像データのデコードおよび再生をスムーズに継続して実行することができる。
【選択図】 図6
【解決手段】ビデオ再生アプリケーションプログラム201は、コンピュータ10の現在の負荷量を検出する。コンピュータ10が高負荷状態ではないならば、ビデオ再生アプリケーションプログラム201は、全ての符号化画面をデコードする通常デコード処理を実行する。コンピュータ10が高負荷状態になると、ビデオ再生アプリケーションプログラム201は、特殊デコード処理を実行する。特殊デコード処理においては、平面予測モードでフレーム内予測符号化されたブロックに対するデコード処理の実行がスキップされる。これにより、コマ落ちや、オブジェクトの動きが極端に遅くなるなどの不具合を招くことなく、動画像データのデコードおよび再生をスムーズに継続して実行することができる。
【選択図】 図6
Description
本発明はパーソナルコンピュータのような情報処理装置および同装置で用いられるデコード用のプログラムに関する。
近年、DVD(Digital Versatile Disc)プレーヤ、TV装置のようなオーディオ・ビデオ(AV)機器と同様のAV機能を備えたパーソナルコンピュータが開発されている。
このようなパーソナルコンピュータにおいては、圧縮符号化された動画像ストリームをソフトウェアによってデコードするソフトウェアデコーダが用いられている。ソフトウェアデコーダの使用により、専用のハードウェアを設けることなく、圧縮符号化された動画像ストリームをプロセッサ(CPU)によってデコードすることが可能になる。
代表的な圧縮符号化技術としては、動き補償フレーム間予測が知られている。また、最近では、フレーム内符号化の効率を高めるために、フレーム内予測符号化技術も利用され始めている(例えば、特許文献1参照)。
特開2004−200991号公報
ところで、最近では、次世代の動画像圧縮符号化技術として、H.264/AVC(AVC:Advanced Video Coding)規格が注目されている。H.264/AVC規格は、MPEG2、MPEG4のような従来の圧縮符号化技術よりも高能率の圧縮符号化技術である。このため、H.264/AVC規格に対応するエンコード処理およびデコード処理の各々においては、MPEG2、MPEG4のような従来の圧縮符号化技術よりも多くの処理量が必要とされる。
したがって、H.264/AVC規格で圧縮符号化された動画像ストリームをソフトウェアによってデコードするように設計されたパーソナルコンピュータにおいては、システムの負荷が増大すると、デコード処理自体に遅れが生じ、これによってスムーズな動画再生を実行できなくなる危険がある。
本発明は上述の事情を考慮してなされたものであり、動画像ストリームのデコードをスムーズに実行することが可能な情報処理装置およびプログラムを提供することを目的とする。
上述の課題を解決するため、本発明は、動き補償フレーム間予測符号化およびフレーム内予測符号化を用いて圧縮符号化された動画像ストリームをデコードするためのデコード処理を実行する情報処理装置において、前記情報処理装置の負荷を検出する負荷検出手段と、前記負荷検出手段によって検出された負荷が所定の基準値よりも大きい場合、前記動画像ストリームに含まれるシンタックス情報に基づいてデコード対象画面の中から平面予測モードでフレーム内予測符号化されたブロックを検出し、前記検出されたブロックに対する前記デコード処理の実行をスキップする制御手段とを具備することを特徴とする。
本発明によれば、動画像ストリームのデコードをスムーズに実行することが可能となる。
以下、図面を参照して、本発明の実施形態を説明する。
まず、図1および図2を参照して、本発明の一実施形態に係る情報処理装置の構成について説明する。この情報処理装置は、例えば、ノートブック型パーソナルコンピュータ10として実現されている。
まず、図1および図2を参照して、本発明の一実施形態に係る情報処理装置の構成について説明する。この情報処理装置は、例えば、ノートブック型パーソナルコンピュータ10として実現されている。
図1はノートブック型パーソナルコンピュータ10のディスプレイユニットを開いた状態における正面図である。本コンピュータ10は、コンピュータ本体11と、ディスプレイユニット12とから構成されている。ディスプレイユニット12にはLCD(Liquid Crystal Display)17から構成される表示装置が組み込まれており、そのLCD17の表示画面はディスプレイユニット12のほぼ中央に位置されている。
ディスプレイユニット12は、コンピュータ本体11に対して開放位置と閉塞位置との間を回動自在に取り付けられている。コンピュータ本体11は薄い箱形の筐体を有しており、その上面にはキーボード13、本コンピュータ1を電源オン/オフするためのパワーボタン14、入力操作パネル15、およびタッチパッド16などが配置されている。
入力操作パネル15は、押されたボタンに対応するイベントを入力する入力装置であり、複数の機能をそれぞれ起動するための複数のボタンを備えている。これらボタン群には、TV起動ボタン15A、DVD(Digital Versatile Disc)起動ボタン15Bも含まれている。TV起動ボタン15Aは、デジタルTV放送番組のような放送番組データの再生及び記録を行うためのTV機能を起動するためのボタンである。TV起動ボタン15Aがユーザによって押下された時、TV機能を実行するためのアプリケーションプログラムが自動的に起動される。DVD起動ボタン15Bは、DVDに記録されたビデオコンテンツを再生するためのボタンである。DVD起動ボタン15Bがユーザによって押下された時、ビデオコンテンツを再生するためのアプリケーションプログラムが自動的に起動される。
次に、図2を参照して、本コンピュータ10のシステム構成について説明する。
本コンピュータ10は、図2に示されているように、CPU111、ノースブリッジ112、主メモリ113、グラフィクスコントローラ114、サウスブリッジ119、BIOS−ROM120、ハードディスクドライブ(HDD)121、光ディスクドライブ(ODD)122、デジタルTV放送チューナ123、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)124、およびネットワークコントローラ125等を備えている。
CPU111は本コンピュータ10の動作を制御するために設けられたプロセッサであり、ハードディスクドライブ(HDD)121から主メモリ113にロードされる、オペレーティングシステム(OS)、およびビデオ再生アプリケーションプログラム201のような各種アプリケーションプログラムを実行する。
ビデオ再生アプリケーションプログラム201は、圧縮符号化された動画像データをデコードおよび再生するためのソフトウェアである。このビデオ再生アプリケーションプログラム201は、H.264/AVC規格に対応するソフトウェアデコーダである。ビデオ再生アプリケーションプログラム201は、H.264/AVC規格で定義された符号化方式で圧縮符号化されている動画像ストリーム(例えば、デジタルTV放送チューナ123によって受信されたデジタルTV放送番組、光ディスクドライブ(ODD)122から読み出されるHD(High Definition)規格のビデオコンテンツ、など)をデコードするための機能を有している。
このビデオ再生アプリケーションプログラム201は、図3に示すように、負荷検出モジュール211、デコード制御モジュール212、およびデコード実行モジュール213を備えている。
デコード実行モジュール213は、H.264/AVC規格で定義されたデコード処理を実行するデコーダである。負荷検出モジュール211は、コンピュータ10の負荷を検出するモジュールである。この負荷検出モジュール211は、例えば、オペレーティングシステム(OS)200にコンピュータ10の現在の負荷を問い合わせることによって、コンピュータ10の現在の負荷量を検出する。コンピュータ10の負荷量は、例えば、CPU111の使用率に基づいて決定される。
また、コンピュータ10の負荷量は、CPU111の使用率とメモリ113の使用率との組み合わせによって決定することもできる。通常、ソフトウェアデコーダをスムーズに実行するためには、ある一定サイズ以上のメモリが必要である。システムのメモリ使用率が高くなると、OSのページングにより、ソフトウェアデコーダのデコードパフォーマンスは低下する。よって、CPU111の使用率とメモリ113の使用率との組み合わせによってコンピュータ10の負荷量を検出することにより、コンピュータ10の現在の負荷量がソフトウェアデコーダの実行に支障を来す負荷量(高負荷状態)であるかどうかをより精度よく判別することができる。
デコード制御モジュール212は、負荷検出モジュール211によって検出されたコンピュータ10の負荷に応じて、デコード実行モジュール213によって実行されるデコード処理の内容を制御する。
具体的には、デコード制御モジュール212は、コンピュータ10の負荷量が予め決められた基準値以下である場合には、H.264/AVC規格で定義されたデコード処理がCPU111によって実行されるように、デコード実行モジュール213によって実行すべきデコード処理の内容を制御する。一方、コンピュータ10の負荷量が基準値よりも大きい場合には(高負荷状態)、デコード制御モジュール212は、H.264/AVC規格で定義されたデコード処理の一部が省略または簡略された処理に置換されるように、デコード実行モジュール213によって実行すべきデコード処理の内容を制御する。
ビデオ再生アプリケーションプログラム201によってデコードされた動画像データは、表示ドライバ202を介してグラフィクスコントローラ114のビデオメモリ114Aに順次書き込まれる。これにより、デコードされた動画像データはLCD17に表示される。表示ドライバ202はグラフィクスコントローラ114を制御するためのソフトウェアである。
また、CPU111は、BIOS−ROM120に格納されたシステムBIOS(Basic Input Output System)も実行する。システムBIOSはハードウェア制御のためのプログラムである。
ノースブリッジ112はCPU111のローカルバスとサウスブリッジ119との間を接続するブリッジデバイスである。ノースブリッジ112には、主メモリ113をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ112は、AGP(Accelerated Graphics Port)バスなどを介してグラフィクスコントローラ114との通信を実行する機能も有している。
グラフィクスコントローラ114は本コンピュータ10のディスプレイモニタとして使用されるLCD17を制御する表示コントローラである。このグラフィクスコントローラ114はビデオメモリ(VRAM)114Aに書き込まれた画像データからLCD17に送出すべき表示信号を生成する。
サウスブリッジ119は、LPC(Low Pin Count)バス上の各デバイス、およびPCI(Peripheral Component Interconnect)バス上の各デバイスを制御する。また、サウスブリッジ119は、HDD121、ODD122を制御するためのIDE(Integrated Drive Electronics)コントローラを内蔵している。さらに、サウスブリッジ119は、デジタルTV放送チューナ123を制御する機能、およびBIOS−ROM120をアクセス制御するための機能も有している。
HDD121は、各種ソフトウェア及びデータを格納する記憶装置である。光ディスクドライブ(ODD)123は、ビデオコンテンツが格納されたDVDなどの記憶メディアを駆動するためのドライブユニットである。デジタルTV放送チューナ123は、デジタルTV放送番組のような放送番組データを外部から受信するための受信装置である。
エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)124は、電力管理のためのエンベデッドコントローラと、キーボード(KB)13およびタッチパッド16を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。このエンベデッドコントローラ/キーボードコントローラIC(EC/KBC)124は、ユーザによるパワーボタン14の操作に応じて本コンピュータ10をパワーオン/パワーオフする機能を有している。さらに、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)124は、ユーザによるTV起動ボタン15A、DVD起動ボタン15Bの操作に応じて、本コンピュータ10をパワーオンすることもできる。ネットワークコントローラ125は、例えばインターネットなどの外部ネットワークとの通信を実行する通信装置である。
次に、図4を参照して、ビデオ再生アプリケーションプログラム201によって実現されるソフトウェアデコーダの機能構成を説明する。
ビデオ再生アプリケーションプログラム201のデコード実行モジュール213は、H.264/AVC規格に対応しており、図示のように、エントロピー復号部301、逆量子化部302、逆DCT部(DCT:Discrete Cosine Transform)303、加算部304、デブロッキングフィルタ部305、フレームメモリ306、動きベクトル予測部307、補間予測部308、重み付き予測部309、イントラ予測部310、およびモード切替スイッチ部311を含む。H.264の直交変換は整数精度であり、従来のDCTとは異なるが、ここではDCTと称することとする。
各画面(ピクチャ)の符号化は、たとえば16x16画素のマクロブロック単位で実行される。各マクロブロックごとに、フレーム内符号化モード(イントラ符号化モード)および動き補償フレーム間予測符号化モード(インター符号化モード)のいずれか一方が選択される。
動き補償フレーム間予測符号化モードにおいては、既に符号化された画面(ピクチャ)からの動きを推定することによって、符号化対象画面に対応する動き補償フレーム間予測信号が定められた形状単位で生成される。そして、符号化対象画面(ピクチャ)から動き補償フレーム間予測信号を引いた予測誤差信号が、直交変換(DCT)、量子化、およびエントロピー符号化によって、符号化される。また、イントラ符号化モードにおいては、符号化対象画面(ピクチャ)から予測信号が生成され、その予測信号が直交変換(DCT)、量子化、およびエントロピー符号化によって、符号化される。
H.264/AVC規格に対応するコーデックは、さらに圧縮率を高めるために、
(1)従来のMPEGよりも高い画素精度(1/4画素精度)の動き補償
(2)フレーム内符号化を効率的に行うためのフレーム内予測
(3)ブロック歪みを低減するためのデブロッキングフィルタ
(4)4x4画素単位の整数DCT
(5)任意の位置の複数の画面(ピクチャ)を参照画面として使用可能なマルチリファレンスフレーム
(6)重み付け予測
等の技術を利用する。
(1)従来のMPEGよりも高い画素精度(1/4画素精度)の動き補償
(2)フレーム内符号化を効率的に行うためのフレーム内予測
(3)ブロック歪みを低減するためのデブロッキングフィルタ
(4)4x4画素単位の整数DCT
(5)任意の位置の複数の画面(ピクチャ)を参照画面として使用可能なマルチリファレンスフレーム
(6)重み付け予測
等の技術を利用する。
以下、図4のソフトウェアデコーダの動作を説明する。
H.264/AVC規格にしたがって圧縮符号化された動画像ストリームは、まず、エントロピー復号部301に入力される。圧縮符号化された動画像ストリームには、符号化された画像情報の他に、動き補償フレーム間予測符号化(インター予測符号化)で用いられた動きベクトル情報、フレーム内予測符号化(イントラ予測符号化)で用いられたフレーム内予測情報、予測モード(インター予測符号化/イントラ予測符号化)を示すモード情報等が含まれている。
デコード処理は、たとえば16x16画素のマクロブロック単位で実行される。エントロピー復号部301は動画像ストリームに対して可変長復号のようなエントロピー復号処理を施して、動画像ストリームから、量子化DCT係数、動きベクトル情報(動きベクトル差分情報)、フレーム内予測情報、およびモード情報を分離する。この場合、例えば、デコード対象画面(ピクチャ)内の各マクロブロックは4x4画素(または8x8画素)のブロック毎にエントロピー復号処理され、各ブロックは4x4(または8x8画素)の量子化DCT係数に変換される。以下では、各ブロックが4x4である場合を想定する。
動きベクトル情報は、動きベクトル予測部307に送られる。フレーム内予測情報は、イントラ予測部310に送られる。モード情報はモード切替スイッチ部311に送られる。
各デコード対象ブロックの4x4の量子化DCT係数は、逆量子化部302による逆量子化処理により4x4のDCT係数(直交変換係数)に変換される。この4x4のDCT係数は、逆DCT部303による逆整数DCT(逆直交変換)処理によって、周波数情報から、4x4の画素値に変換される。この4x4の画素値は、デコード対象ブロックに対応する予測誤差信号である。この予測誤差信号は加算部304に送られ、そこでデコード対象ブロックに対応する予測信号(動き補償フレーム間予測信号またはフレーム内予測信号)が加算され、これによってデコード対象ブロックに対応する4x4の画素値がデコードされる。
イントラ予測モードにおいては、モード切替スイッチ部311によってイントラ予測部310が選択され、これによってイントラ予測部310からのフレーム内予測信号が予測誤差信号に加算される。インター予測モードにおいては、モード切替スイッチ部311によって重み付き予測部309が選択され、これによって、動きベクトル予測部307、補間予測部308、および重み付き予測部309によって得られる動き補償フレーム間予測信号が予測誤差信号に加算される。
このように、デコード対象画面に対応する予測誤差信号に予測信号(動き補償フレーム間予測信号またはフレーム内予測信号)を加算してデコード対象画面をデコードする処理が所定のブロック単位で実行される。
デコードされた各画面(ピクチャ)は、デブロッキングフィルタ部305によってデブロッキングフィルタ処理が施された後に、フレームメモリ306に格納される。このデブロッキングフィルタ部305は、例えば4x4画素のブロック単位で、デコードされた各画面に対してブロックノイズを低減するためのデブロッキングフィルタ処理を施す。このデブロッキングフィルタ処理は、ブロック歪みが参照画像に含まれてしまい、これによってブロック歪みが復号画像に伝搬してしまうことを防止する。デブロッキングフィルタ処理のための処理量は膨大であり、ソフトウェアデコーダの全処理量の50パーセントを占める場合もある。デブロッキングフィルタ処理は、ブロック歪みが生じやすい箇所に対してはより強いフィリタリングが施され、ブロック歪みが生じにくい箇所に対しては弱いフィリタリングが施されるように、適応的に実行される。デブロッキングフィルタ処理はループフィルタ処理によって実現されている。
そして、デブロッキングフィルタ処理された各画面は、フレームメモリ306から出力画像フレーム(または出力画像フィールド)として読み出される。また、動き補償フレーム間予測のための参照画像として使用されるべき各画面(参照画面)は、フレームメモリ306内に一定期間保持される。H.264/AVC規格の動き補償フレーム間予測符号化においては、複数の画面を参照画面として使用することができる。このため、フレームメモリ306は、複数画面分の画像を記憶するための複数個のフレームメモリ部を備えている。
動きベクトル予測部307は、デコード対象ブロックに対応する動きベクトル差分情報に基づいて、動きベクトル情報を生成する。補間予測部308は、デコード対象ブロックに対応する動きベクトル情報に基づいて、参照画面内の、整数精度の画素群および1/4画素精度の予測補間画素群から、動き補償フレーム間予測信号を生成する。1/4画素精度の予測補間画素の生成においては、6タップフィルタ(入力6つ、出力1つ)が用いられる。このため、高周波成分まで考慮した高精度の予測補間処理を実行できるが、その分、動き補償には多くの処理量が必要となる。
重み付け予測部309は、動き補償フレーム間予測信号に対して重み係数を乗じる処理を動き補償ブロック単位で実行することにより、重み付けされた動き補償フレーム間予測信号を生成する。この重み付け予測は、デコード対象画面の明るさを予測する処理である。この重み付け予測処理により、フェード・イン、フェード・アウトのように、明るさが時間の経過と共に変化する画像の画質を向上することができる。しかし、その分、ソフトウェアデコードに必要な処理量は増大する。
イントラ予測部310は、デコード対象画面からその画面内に含まれるデコード対象ブロックのフレーム内予測信号を生成するものである。このイントラ予測部310は、上述のフレーム内予測情報に従って画面内予測処理を実行して、デコード対象ブロックと同一画面内に存在する、当該デコード対象ブロックに近接する既にデコードされた他の幾つかのブロック内の画素値からフレーム内予測信号を生成する。このフレーム内予測(イントラ予測)は、同一画面内のブロック間の画素相関を利用して圧縮率を高める技術である。このフレーム内予測においては、フレーム内予測情報に従って、垂直予測(予測モード0)、水平予測(予測モード1)、平均値予測(予測モード3)、平面予測(予測モード4)を含む4種類の予測モードの内の一つが、フレーム内予測ブロック(例えば16x16画素のブロック)単位で選択される。平面予測が選択される頻度は他のフレーム内予測モードよりも低いが、平面予測のために必要とされる処理量は、他のどのフレーム内予測モードの処理量よりも多い。
図5は、16x16画素の平面予測の例を示している。
16x16画素のブロック内の各画素値は、既にデコードされた上ブロックの16画素と、既にデコードされた左ブロックの16画素と、既にデコードされた左上ブロックの1画素から予測される。いま、予測画素pred[x,y]は、基本的には以下の演算処理によって求められる。
(1)記号aで示される角の2つの画素を重みとして加算
(2)記号bで示される水平方向の画素群を水平成分の重みとして加算
(3)記号cで示される垂直方向の画素群を垂直成分の重みとして加算
(4)上記(1)〜(3)を加算した結果を予測画素pred[x,y]とする。
(2)記号bで示される水平方向の画素群を水平成分の重みとして加算
(3)記号cで示される垂直方向の画素群を垂直成分の重みとして加算
(4)上記(1)〜(3)を加算した結果を予測画素pred[x,y]とする。
具体的な演算式は以下の通りである。
(1)a=16*(p[-1,15]+p[15,-1])
(2)b=(5*H+32)/64
H=Σ(x’+1)(p[8+x’,-1]-p[6-x’,-1])
(x’=0...7)
(3)c=(5*V+32)/64
V=Σ(y’+1)(p[-1,8+y’]-p[-1,6-y’])
(y’=0...7)
(4)pred[x,y]=(a+b*(x-7)+(y-7)+16)/32
(x,y=0...15)
ここで、p[x,y]は既にデコードされた画素値を示している。
(2)b=(5*H+32)/64
H=Σ(x’+1)(p[8+x’,-1]-p[6-x’,-1])
(x’=0...7)
(3)c=(5*V+32)/64
V=Σ(y’+1)(p[-1,8+y’]-p[-1,6-y’])
(y’=0...7)
(4)pred[x,y]=(a+b*(x-7)+(y-7)+16)/32
(x,y=0...15)
ここで、p[x,y]は既にデコードされた画素値を示している。
本実施形態においては、たとえコンピュータ10の負荷が増大しても時間制約内に動画像ストリームをリアルタイムにデコードできるようにするために、コンピュータ10の負荷に応じて、図4で説明したデコード処理(以下、通常デコード処理と称する)と、特殊デコード処理とを選択的に実行する。特殊デコード処理は、平面予測モードでフレーム内予測符号化されたブロックに対するデコード(図4のエントロピー復号よりも後の全ての処理)をスキップし、平面予測モードでフレーム内予測符号化されたブロック以外の他のブロック(平面予測モード以外の他の予測モードでフレーム内予測符号化されたブロック群、および動き補償フレーム間予測符号化されたブロック群)のみをデコードするデコード処理である。すなわち、コンピュータ10が低負荷状態である場合には平面予測モードでフレーム内予測符号化されたブロックに対するデコード処理が実行されるが、コンピュータ10が低負荷状態である場合には平面予測モードでフレーム内予測符号化されたブロックに対するデコード処理は省略される。
以下、図6のフローチャートを参照して、ビデオ再生アプリケーションプログラム201によって実行されるデコード処理の手順を説明する。
ビデオ再生アプリケーションプログラム201は、デコード処理の実行期間中、OSに対してコンピュータ10の現在の負荷を問い合わせることによってコンピュータ10の現在の負荷を検出する処理を定期的に繰り返し実行する(ステップS101)。このステップS101においては、ビデオ再生アプリケーションプログラム201は、CPU111の現在の使用率(プロセッサ使用率)と主メモリ113の現在の使用率(メモリ使用率)とをOSから取得する。
そして、ビデオ再生アプリケーションプログラム201は、コンピュータ10の現在の負荷量が所定の基準値よりも大きいかどうかによって、コンピュータ10が高負荷状態であるかどうかを判別する(ステップS102)。ステップS102においては、例えば、ビデオ再生アプリケーションプログラム201は、現在のプロセッサ使用率が予め決められたプロセッサ基準使用率よりも大きいか否かを判別するとともに、現在のメモリ使用率が予め決められたメモリ基準使用率よりも大きいか否かを判別する。現在のプロセッサ使用率および現在のメモリ使用率のいずれか一方でもそれに対応する基準使用率よりも大きい場合には、ビデオ再生アプリケーションプログラム201は、コンピュータ10が高負荷状態であると判定する。現在のプロセッサ使用率および現在のメモリ使用率の双方がそれらに対応する基準使用率以下ならば、ビデオ再生アプリケーションプログラム201は、コンピュータ10が高負荷状態ではないと判定する。
コンピュータ10が高負荷状態ではないならば(ステップS102のNO)、ビデオ再生アプリケーションプログラム201は、CPU111に実行させるべきデコード処理として上述の通常デコード処理を選択し、これによって図4で説明した一連の処理をCPU111上で実行する(ステップS103)。
通常デコード処理においては、圧縮符号化された動画像ストリームに含まれる符号化画面(ピクチャ)群それぞれのデコードが順次実行される。コンピュータ10が高負荷状態にならない限り、つまりデコードパフォーマンスが低下しない限り、動画像ストリームは通常デコード処理によってデコードされる。
一方、コンピュータ10が高負荷状態であるならば(ステップS102のYES)、ビデオ再生アプリケーションプログラム201は、CPU111に実行させるべきデコード処理として上述の特殊デコード処理を選択し、これによって平面予測モードでフレーム内予測符号化された16x16画素の各ブロックに対するデコードを省略したデコード処理をCPU111上で実行する(ステップS104,S105)。この特殊デコード処理においては、ビデオ再生アプリケーションプログラム201は、動画像ストリームに含まれるシンタックス情報を解析して、デコード対象マクロブロックの構造を判別する(ステップS104)。シンタックス情報は動画像ストリームのシーケンス構造を示す情報である。上述の動きベクトル情報、フレーム内予測情報、およびモード情報等もシンタックス情報の一部である。
デコード対象マクロブロックが平面モードでフレーム内予測符号化されたマクロブロックである場合、ビデオ再生アプリケーションプログラム201は、そのマクロブロックのデコードを省略する(ステップS105)。
上述したように、平面モードでフレーム内予測符号化されたマクロブロックの16x16画素それぞれの値をデコード済みの周辺のマクロブロックそれぞれの画素値から予測するためには、多くの演算量が必要となる。このため、平面モードでフレーム内予測符号化されたマクロブロックに対するデコード処理の実行を省略することにより、ソフトウェアデコードに必要な処理量を大幅に低減することができる。よって、ソフトウェアデコードの実行中にたとえ他のプログラムが実行されてコンピュータ10が高負荷状態となっても、コマ落ちや、オブジェクトの動きが極端に遅くなるなどの不具合を招くことなく、動画像データのデコードおよび再生をスムーズに継続して実行することができる。
なお、平面モードでフレーム内予測符号化されたマクロブロックのデコード処理を省略すると、正しい画面を再生することはできなくなる。しかし、コマ落ちや、オブジェクトの動きが極端に遅くなる場合に比べれば、十分に視認性のよい動画像を表示することができる。
動画像ストリーム全てのデコードが完了するまで、上述のステップS101〜S105の処理は繰り返し実行される(ステップS106)。他のプログラムの実行が終了されること等によってコンピュータ10の負荷が下がると、デコード処理は、特殊デコード処理から通常デコード処理に再び切り替えられる。
H.264のシーケンスの構造は、図7のように複数のアクセスユニット(AU)から構成されている。各アクセスユニットは1つの画面に対応している。各アクセスユニットは複数のNAL(Network Abstraction Layer)ユニットから構成されている。各NALユニットは図8に示すようにヘッダ部とデータ部に分かれている。NALユニットは図11のように32種類あり、ヘッダ部を解析することによってその種類を判別することができる。図9は図7のAUの構造に具体的なNALユニットの種類を当てはめて示した図である。図9中の各ブロックはNALユニットを示している。
H.264/AVCでは、図12に示すように、I(イントラ)スライスに含まれるマクロブロックのタイプと16x16フレーム内予測モード(Intra16x16PredMode)とが対応付けられている。このため、ビデオ再生アプリケーションプログラム201は、図8のマクロブロック情報の中のmb_typeを参照することにより、フレーム内予測モードの種類を判別することができる。Intra16x16PredModeの番号とフレーム内予測モードとの関係は図13に示す通りである。
次に、図10のフローチャートを参照して、特殊デコード処理の具体的な手順を説明する。
ビデオ再生アプリケーションプログラム201は、VCL(Video Coding Layer)で生成されたNALユニット(VCL NALユニット)を入力し、マクロブロックに関するシンタックス情報を解析する(ステップS201,S202)。そして、ビデオ再生アプリケーションプログラム201は、その解析結果に応じてデコード処理を実行すべきか否かを判断する。具体的には、ビデオ再生アプリケーションプログラム201は、マクロブロック情報の中のmb_typeを参照することにより、デコード対象のマクロブロックのフレーム内予測モードの種類が平面予測モード(Intra16x16PredMode=3)であるか否かを判断する(ステップS203)。平面予測モードでなければ(ステップS203のNO)、ビデオ再生アプリケーションプログラム201は、そのデコード対象マクロブロックに対するデコード処理を実行する(ステップS204)。一方、平面予測モードであれば(ステップS203のYES)、ビデオ再生アプリケーションプログラム201は、ステップS204のデコード処理の実行をスキップする。
なお、以上の特殊デコード処理は輝度信号のマクロブロックに対するものである。ビデオ再生アプリケーションプログラム201は、色差信号のマクロブロックについても、輝度信号のマクロブロックと同様の処理を実行する。この場合、ビデオ再生アプリケーションプログラム201は、図8のマクロブロック情報の中のintra_chroma_pred_modeを参照して、フレーム内予測モードの種類を判別する。図14に示すように、intra_chroma_pred_mode=3は、平面予測モードを示す。
以上のように、本実施形態によれば、システムが高負荷状態の場合には、比較的多くの処理量を必要とする、平面予測モードでフレーム内予測符号化されたブロックに対するデコード処理を省略してシステムの負荷を低減することにより、コマ落ちや、オブジェクトの動きが極端に遅くなるなどの不具合を招くことなく、スムーズな動画再生を実現することができる。
なお、上述のデコード制御処理は全てコンピュータプログラムによって実現されているので、このコンピュータプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータに導入するだけで、本実施形態と同様の効果を容易に実現することができる。
また、本実施形態のソフトウェアデコーダは、パーソナルコンピュータに限らず、PDA、携帯型電話機等にも適用することができる。
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
10…コンピュータ、111…CPU、113…メモリ、114…グラフィクスコントローラ、201…負荷検出モジュール、212…デコード制御モジュール、213…デコード実行モジュール、301…エントロピー復号部、302…逆量子化部、303…逆DCT部、304…加算部、305…デブロッキングフィルタ部、306…フレームメモリ、307…動きベクトル予測部、308…補間予測部、309…重み付き予測部、310…イントラ予測部、311…モード切替スイッチ部。
Claims (8)
- 動き補償フレーム間予測符号化およびフレーム内予測符号化を用いて圧縮符号化された動画像ストリームをデコードするためのデコード処理を実行する情報処理装置において、
前記情報処理装置の負荷を検出する負荷検出手段と、
前記負荷検出手段によって検出された負荷が所定の基準値よりも大きい場合、前記動画像ストリームに含まれるシンタックス情報に基づいてデコード対象画面の中から平面予測モードでフレーム内予測符号化されたブロックを検出し、前記検出されたブロックに対する前記デコード処理の実行をスキップする制御手段とを具備することを特徴とする情報処理装置。 - 前記負荷検出手段は、前記情報処理装置上で実行されるオペレーティングシステムに対して前記情報処理装置の負荷を問い合わせる手段を含むことを特徴とする請求項1記載の情報処理装置。
- 前記負荷検出手段は、前記情報処理装置に設けられたプロセッサの使用率に基づいて前記情報処理装置の負荷を検出する手段を含むことを特徴とする請求項1記載の情報処理装置。
- 前記負荷検出手段は、前記情報処理装置に設けられたプロセッサの使用率および前記情報処理装置に設けられたメモリの使用率に基づいて前記情報処理装置の負荷を検出する手段を含むことを特徴とする請求項1記載の情報処理装置。
- 動き補償フレーム間予測符号化およびフレーム内予測符号化を用いて圧縮符号化された動画像ストリームをデコードするためのデコード処理をコンピュータに実行させるプログラムであって、
前記コンピュータの負荷を検出する処理を前記コンピュータに実行させる手順と、
前記検出された負荷が所定の基準値よりも大きい場合、前記動画像ストリームに含まれるシンタックス情報に基づいてデコード対象画面の中から平面予測モードでフレーム内予測符号化されたブロックを検出し、前記検出されたブロックに対する前記デコード処理の実行をスキップする処理を、前記コンピュータに実行させる手順とを具備することを特徴とするプログラム。 - 前記コンピュータの負荷を検出する処理を前記コンピュータに実行させる手順は、前記コンピュータ上で実行されるオペレーティングシステムに対して前記コンピュータの負荷を問い合わせる処理を、前記コンピュータに実行させる手順を含むことを特徴とする請求項5記載のプログラム。
- 前記コンピュータの負荷を検出する処理を前記コンピュータに実行させる手順は、前記コンピュータに設けられたプロセッサの使用率に基づいて前記コンピュータの負荷を検出する処理を、前記コンピュータに実行させる手順を含むことを特徴とする請求項5記載のプログラム。
- 前記コンピュータの負荷を検出する処理を前記コンピュータに実行させる手順は、前記コンピュータに設けられたプロセッサの使用率および前記コンピュータに設けられたメモリの使用率に基づいて前記コンピュータの負荷を検出する処理を、前記コンピュータに実行させる手順を含むことを特徴とする請求項5記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004287497A JP2006101404A (ja) | 2004-09-30 | 2004-09-30 | 情報処理装置および同装置で用いられるプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004287497A JP2006101404A (ja) | 2004-09-30 | 2004-09-30 | 情報処理装置および同装置で用いられるプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006101404A true JP2006101404A (ja) | 2006-04-13 |
Family
ID=36240762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004287497A Pending JP2006101404A (ja) | 2004-09-30 | 2004-09-30 | 情報処理装置および同装置で用いられるプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006101404A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8005348B2 (en) | 2008-01-18 | 2011-08-23 | Kabushiki Kaisha Toshiba | Information processing apparatus |
JP2012129647A (ja) * | 2010-12-13 | 2012-07-05 | Toshiba Corp | 動画像復号装置及び動画像復号方法 |
US8711942B2 (en) | 2010-12-17 | 2014-04-29 | Kabushiki Kaisha Toshiba | Moving picture decoding device and moving picture decoding method |
US9319695B2 (en) | 2010-04-28 | 2016-04-19 | Fujitsu Limited | Moving image output apparatus and method |
-
2004
- 2004-09-30 JP JP2004287497A patent/JP2006101404A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8005348B2 (en) | 2008-01-18 | 2011-08-23 | Kabushiki Kaisha Toshiba | Information processing apparatus |
US9319695B2 (en) | 2010-04-28 | 2016-04-19 | Fujitsu Limited | Moving image output apparatus and method |
JP2012129647A (ja) * | 2010-12-13 | 2012-07-05 | Toshiba Corp | 動画像復号装置及び動画像復号方法 |
US8687705B2 (en) | 2010-12-13 | 2014-04-01 | Kabushiki Kaisha Toshiba | Moving picture decoding device and moving picture decoding method |
US8711942B2 (en) | 2010-12-17 | 2014-04-29 | Kabushiki Kaisha Toshiba | Moving picture decoding device and moving picture decoding method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4643453B2 (ja) | 情報処理装置及び情報処理装置の動画像復号方法 | |
US8040951B2 (en) | Information processing apparatus and program for use in the same | |
JP2006254230A (ja) | 情報処理装置およびプログラム | |
JP4825524B2 (ja) | 動画像復号装置および動画像復号方法 | |
US20070140355A1 (en) | Information processing apparatus, control method, and program | |
JP2008072647A (ja) | 情報処理装置、デコーダおよび再生装置の動作制御方法 | |
JP2009038501A (ja) | 復号化装置および復号方法 | |
US20060203909A1 (en) | Information processing apparatus and decoding method | |
US20060203910A1 (en) | Information processing apparatus and decoding method | |
JP2006254232A (ja) | 情報処理装置およびプログラム | |
US8611433B2 (en) | Information processing apparatus and video decoding method of information processing apparatus | |
JP4834590B2 (ja) | 動画像復号化装置及び動画像復号化方法 | |
JP2006101322A (ja) | 情報処理装置および同装置で用いられるプログラム | |
JP2006101405A (ja) | 情報処理装置および同装置で用いられるプログラム | |
JP2006101321A (ja) | 情報処理装置および同装置で用いられるプログラム | |
JP2007318615A (ja) | 動画再生装置、動画再生方法およびプログラム | |
JP2006101406A (ja) | 情報処理装置および同装置で用いられるプログラム | |
JP5066232B2 (ja) | 情報処理装置および画像処理方法 | |
JP4282582B2 (ja) | 情報処理装置および同装置で用いられるプログラム | |
JP2006101404A (ja) | 情報処理装置および同装置で用いられるプログラム | |
US20100316130A1 (en) | Video decoder | |
JP2006101323A (ja) | 情報処理装置および同装置で用いられるプログラム | |
JP2009182891A (ja) | 情報処理装置およびプログラム | |
JP2006101402A (ja) | 情報処理装置および同装置で用いられるプログラム | |
JP2008085868A (ja) | 情報処理装置および情報処理方法 |