(57)【要約】【課題】動画像の復号処理が途中で破綻することなく、低消費電力を図る。【解決手段】動画像の復号処理を行う画像処理装置であって、符号化された動画像データをフレームのピクチャタイプとマクロブロックタイプに従ってマクロブロック単位で復号する復号部（１０７）と、動画像復号モジュール（１００）のクロック信号の周波数と電源電圧を制御する制御部（１０５）と、前記動画像データのフレーム情報を判別する判別部（１０２）と、前記判別部による判別結果と前記復号部による復号処理の進行状態に従って前記制御部に与える制御データを算出する演算部（１１０）と、を備える。前記演算部は、１フレームに対する復号に割当てられた所定時間に対して復号処理の進行に従って減少する残り処理時間と前記復号部の同期クロック信号の現在の周波数との関係から得られる余裕時間の範囲内で制御データを変更する。【選択図】図１
2011004205.tif 000002
【特許請求の範囲】
【請求項１】
符号化された動画像データをフレームのピクチャタイプとマクロブロックタイプに従ってマクロブロック単位で復号する復号部と、
少なくとも前記復号部に供給する同期クロック信号の周波数を制御する制御部と、
前記動画像データのフレーム単位でピクチャタイプとマクロブロック数を判別する判別部と、
前記判別部による判別結果と前記復号部による復号処理の進行状態に従って前記制御部に与える制御データを算出する演算部と、を備え、
前記演算部は、１フレームに対する復号に割当てられた所定時間に対して復号処理の進行に従って減少する残り処理時間と前記復号部の同期クロック信号の現在の周波数との関係から得られる余裕時間の範囲内で制御データを変更する、画像処理装置。
【請求項２】
前記演算部は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成する、請求項１に記載の画像処理装置。
【請求項３】
前記処理すべきマクロブロックの総数は、当該フレームのマクロブロックの総数から復号処理済マクロブロック数を減算して得られる値である、請求項２に記載の画像処理装置。
【請求項４】
前記制御データは、前記同期クロック信号の周波数を制御するデータ、または前記復号部に供給する電源電圧と前記周波数を制御するデータである、請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記所定時間は、前記動画像データにおけるフレームレートに基づいて決まる時間である、請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記残り処理時間とは前記所定時間から当該フレームの復号処理の開始からの経過時間を減算して得られる時間である、請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記演算部は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成し、当該生成した制御データを初期値として前記制御部に与え、その後からは、最大演算量となるマクロブロックの演算量に代えて過去の処理済マクロブロックの演算量の平均値から算出する代表演算量と、前記処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定するデータを生成する、請求項１に記載の画像処理装置。
【請求項８】
前記代表演算量は、過去の処理済マクロブロックの演算量の平均値と次の復号対象となるマクロブロックの演算量の差分がある閾値を超えない場合は、前記平均値を代表演算量とし、前記差分がある閾値を超える場合は、前記次の復号対象となるマクロブロックの演算量を代表演算量とする、請求項７に記載の画像処理装置。
【請求項９】
符号化された動画像データをマクロブロック単位で復号する画像処理方法であって、前記動画像データのフレーム単位でピクチャタイプとマクロブロック数を判別する第1処理と、
フレームのピクチャタイプとマクロブロックタイプに従ってマクロブロック単位で復号する第２処理と、
前記第１処理による判別結果と前記第２処理の進行状態に従って復号部に与える制御データを算出する第３処理と
前記第３処理で算出した制御データで少なくとも復号部に供給する同期クロック信号の周波数を制御する第４処理と、を含み、
前記第３処理は、１フレームに対する復号に割当てられた所定時間に対して第２処理の進行に従って減少する残り処理時間と前記同期クロック信号の現在の周波数との関係から得られる余裕時間の範囲内で制御データを変更する処理を含む、画像処理方法。
【請求項１０】
前記第３処理は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記第２処理の進行に従って減少する残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成する、請求項９に記載の画像処理方法。
【請求項１１】
前記第３処理は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記第２処理の進行に従って減少する残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成し、当該生成した制御データを初期値とし、その後からは、最大演算量となるマクロブロックの演算量に代えて過去の処理済マクロブロックの演算量の平均値から算出する代表演算量と、前記処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定するデータを生成する、請求項９に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関し、例えば復号処理を行うバッテリ駆動用のシステム又は画像データ表示システムに適用して有効な技術に関する。
【背景技術】
【０００２】
近年、放送や通信などの伝送路を通じて動画データの送受信を行うことや、記憶メディアに保存した動画を携帯端末などで視聴する機会が増加している。一般に動画は情報量が大きいため、伝送路の帯域や記憶メディアの容量などの制約から、動画を圧縮符号化した状態で伝送や保存し、視聴時に復号処理する。動画の符号化方式としては、ＩＳＯ／ＩＥＣで規格化されているＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）やＨ.２６Ｘがある。これらの技術では、動画を構成する複数のフレーム間にある時間的、空間的な相関関係を用いた情報量の圧縮を行う。
【０００３】
しかしながら、これらの技術で圧縮した動画の復号処理には比較的大きな演算が必要であり、演算量の増加に伴い消費電力も増大するため、低消費電力での復号処理の実現が課題となっている。従来の低消費電力化の方法として、例えば下記の特許文献１にて開示されている。
【０００４】
特許文献１は、動的に動作周波数および電源電圧を変更可能な動画復号装置において、動画を構成する単位であるフレーム単位での復号処理が必要とする演算量を予測し、予測した演算量をもとにフレームの復号処理をするために使用する動作周波数と電源電圧を決定する。各フレームの復号処理開始のタイミングで、決定した動作周波数と電源電圧を設定することにより、適切な動作周波数と電圧での動作させることで、低消費電力を図るものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−３２４７３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の方法では、フレーム復号処理開始時に動作周波数および電源電圧を決定し、当該フレームの復号処理中に動作周波数および電源電圧は固定となる。このため、当該フレーム処理開始時の予測よりも実際の演算量が多かった場合には、当該フレーム処理時間内に復号処理が完了せず、動画像復号処理が破綻してしまうという問題があった。
【０００７】
本発明の目的は、動画像の復号処理が途中で破綻することなく、低消費電力を図ることができる画像処理装置を提供することにある。
【０００８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１０】
すなわち、画像処理装置は、符号化された動画像データをマクロブロック単位で復号するとき、１フレームに対する復号に割当てられた時間に対して復号処理の進行に従って減少する残り処理時間と前記復号処理を同期させるクロック信号の現在の周波数との関係から余裕時間を把握し、その余裕時間の範囲内で処理速度を低下させるように前記周波数を低くする制御を行う。
【発明の効果】
【００１１】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１２】
すなわち、本画像処理装置によれば、動画像復号処理を破綻させることはなく低消費電力を図ることができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施の形態１に係る画像符号化装置のブロック図である。
【図２】図２は、ピクチャタイプごとに、構成要素となるマクロブロックの種類を示した説明図である。
【図３】図３は、本発明の実施の形態１に係る画像処理装置の動画像復号モジュール１００に供給する動作周波数と電源電圧の対応関係を表す説明図である。
【図４】図４は、本発明の実施の形態１に係る画像処理装置の対象フレームの復号処理のフローチャートである。
【図５】図５は、本発明の実施の形態１に係る対象フレームの復号処理中の動画像復号モジュール１００の動作周波数の変化を表す説明図である。
【図６】図６は、動画１フレームの処理におけるマクロブロック処理の時間経過を示す説明図である。
【図７】図７は、本発明の実施の形態２に係る画像符号化装置のブロック図である。
【発明を実施するための形態】
【００１４】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１５】
〔１〕本発明の代表的な実施の形態に係る画像処理装置（１０、７０）は符号化された動画像データをフレームのピクチャタイプとマクロブロックタイプに従ってマクロブロック単位で復号する復号部（１０７）と、少なくとも前記復号部に供給する同期クロック信号の周波数を制御する制御部（１０５）と、前記動画像データのフレーム単位でピクチャタイプとマクロブロック数を判別する判別部（１０２）と、前記判別部による判別結果と前記復号部による復号処理の進行状態に従って前記制御部に与える制御データ（１１１）を算出する演算部（１１０、７１０）と、を備える。前記演算部は、１フレームに対する復号に割当てられた所定時間に対して復号処理の進行に従って減少する残り処理時間と前記復号部の同期クロック信号の現在の周波数との関係から得られる余裕時間の範囲内で制御データを変更する。これによれば、実際の復号処理によって生ずる余裕時間を把握し、その範囲で周波数を低くしながら逐次復号処理を進めていくから、途中で復号処理が間に合わなくなる事態を生ずる虞なく、且つ実際の処理状況に応じて電力消費を低減することができる。
【００１６】
〔２〕項１の画像処理装置において、前記演算部は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成する。これにより前記最大演算量を考慮して前記周波数を決定するので、途中で処理が破綻することなく復号処理を行うことができる。
【００１７】
〔３〕項２の画像処理装置において、前記処理すべきマクロブロックの総数は、当該フレームのマクロブロックの総数から復号処理済マクロブロック数を減算して得られる値である。
【００１８】
〔４〕項１乃至３の何れかの画像処理装置において、前記制御データは、前記同期クロック信号の周波数を制御するデータ、または前記復号部に供給する電源電圧と前記周波数を制御するデータである。
【００１９】
〔５〕項１乃至４の何れかの画像処理装置において、前記所定時間は、前記動画像データにおけるフレームレートに基づいて決まる時間である。
【００２０】
〔６〕項１乃至５の何れかの画像処理装置において、前記残り処理時間とは前記所定時間から当該フレームの復号処理の開始からの経過時間を減算して得られる時間である。
【００２１】
〔７〕項１の画像処理装置において、前記演算部は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成し、当該生成した制御データを初期値として前記制御部に与え、その後からは、最大演算量となるマクロブロックの演算量に代えて過去の処理済マクロブロックの演算量の平均値から算出する代表演算量と、前記処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定するデータを生成する。これにより最大演算量に代えて代表演算量を用いて前記周波数を決定するから、項１乃至５の画像処理装置よりも前記周波数を低下させることが可能となる。
【００２２】
〔８〕項７の画像処理装置において、前記代表演算量は、過去の処理済マクロブロックの演算量の平均値と次の復号対象となるマクロブロックの演算量の差分がある閾値を超えない場合は、前記平均値を代表演算量とし、前記差分がある閾値を超える場合は、前記次の復号対象となるマクロブロックの演算量を代表演算量とする。
【００２３】
〔９〕本発明の代表的な実施の形態に係る画像処理方法は、符号化された動画像データをマクロブロック単位で復号する画像処理方法であって、前記動画像データのフレーム単位でピクチャタイプとマクロブロック数を判別する第1処理と、フレームのピクチャタイプとマクロブロックタイプに従ってマクロブロック単位で復号する第２処理と、前記第１処理による判別結果と前記第２処理の進行状態に従って復号部に与える制御データを算出する第３処理と前記第３処理で算出した制御データで少なくとも復号部に供給する同期クロック信号の周波数を制御する第４処理と、を含む。前記第３処理は、１フレームに対する復号に割当てられた所定時間に対して第２処理の進行に従って減少する残り処理時間と前記同期クロック信号の現在の周波数との関係から得られる余裕時間の範囲内で制御データを変更する処理である。これにより上記同様、電力消費を低減することができる。
【００２４】
〔１０〕項９の画像処理方法において、前記第３処理は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記第２処理の進行に従って減少する残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成する。これにより上記同様、途中で処理が破綻することなく復号処理を行うことができる。
【００２５】
〔１１〕項９の画像処理方法において、前記第３処理は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記第２処理の進行に従って減少する残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成し、当該生成した制御データを初期値とし、その後からは、最大演算量となるマクロブロックの演算量に代えて過去の処理済マクロブロックの演算量の平均値から算出する代表演算量と、前記処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定するデータを生成する。これにより上記同様、項９乃至１０の画像処理方法よりも前記周波数を低下させることが可能となる。
【００２６】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００２７】
《実施の形態１》
図１は、本発明に係る画像処理装置の一実施の形態として、バッテリ駆動の携帯端末における動画像の復号処理を行う画像処理装置を示す。同図に示される画像処理装置１０は、特に制限されないが、公知のＣＭＯS集積回路の製造技術によって1個の単結晶シリコンのような半導体基板に形成されている。また、画像処理装置１０は、１つの前記集積回路で構成されたものではなく、マルチチップで形成されたものでもよい。
【００２８】
画像処理装置１０は、動画像復号モジュール１００、入力バッファ１０１、判別部１０２、周波数算出部１０３、メモリ部１０４、制御部１０５、タイマ１０６、復号部１０７、復号バッファ１０８、出力バッファ１０９及び演算部１１０を備える。
【００２９】
入力バッファ１０１には復号対象となるフレームのデータが格納される。入力バッファ１０１はDRAMなど揮発性メモリにより構成され、図１に未記載の制御プロセッサなどにより入力バッファ１０１へのデータ格納処理が行われる。格納されるデータは、例えば、不揮発性メモリカードやHDDなどの記録媒体に保存されているデータや放送・通信により配信されるものを受信して、データバス経由でコピーされているデータ、である。
【００３０】
判別部１０２は入力バッファ１０１に格納されているデータから対象フレームの画像サイズのデータを取得し、画像サイズのデータから処理すべきマクロブロックの総数を算出する。さらに、判別部１０２は復号対象のフレームのピクチャタイプを判別する。図２は、ピクチャタイプごとに、構成要素となるマクロブロックの種類を示したものである。MPEGでは動画を構成するフレームごとに、ピクチャタイプ（Iピクチャ、Pピクチャ、Bピクチャ）が存在する。Iピクチャは復号のために前後のフレームとの相関関係を使用することはなく、フレーム内のデータだけで復号できるフレームであり、Pピクチャは復号のために前フレームとの相関関係を利用するフレームであり、Bピクチャは復号のために前後のフレームとの相関関係を利用するフレームである。このような特徴があるため、ピクチャタイプごとに、フレームを構成するマクロブロックタイプも定義される。マクロブロックは図２に示すように「MBQUANT」、「順方向予測」、「逆方向予測」、「MBパターン」、「MBイントラ」の５項目の組み合わせによりマクロブロックタイプが決定され、このマクロブロックタイプから演算を処理するためのクロックサイクル数がわかり、前記クロックサイクル数が、マクロブロックの復号処理の演算量となる。したがって、図２のようなフレームのピクチャタイプから最大演算量がわかる第１のテーブル１０４Ａをメモリ部１０４に格納しておくことで、判別部１０２が判別したピクチャタイプから、第１のテーブル１０４Ａに基づいて最大演算量を決定することができる。なお、第１のテーブル１０４Ａにおける演算量を復号部１０７の内部構成に応じて変更してもよい。また、一つの動画を構成する連続するフレームの画像サイズが変化することはない場合は、判別部１０２が動画像復号処理開始時に画像サイズを取得し、２フレーム目以降の処理では1フレーム目で取得した画像サイズならびにフレームあたりのマクロブロック数を継続して使用してもよい。また、判別部１０２は、動画のフレームレート（1秒間のフレーム数）も取得し、当該フレームレートに基づいて１フレームに対する復号に割当てる所定時間を算出する。判別部１０２は、これらの復号対象のフレームに関する情報をフレームデータの先頭に配置されるヘッダ情報を解析して取得する。周波数算出部１０３が解析の結果を参照するため、解析した結果は、メモリ部１０４に格納される。さらに、対象フレームの復号処理の開始時には、メモリ部１０４にある復号対象フレームの処理履歴の内容は初期化される。
【００３１】
復号部１０７は、マクロブロック単位での復号処理を行う。処理対象のマクロブロックが他のマクロブロックとの時間・空間的な相関関係を用いた復号処理を必要とする場合には、復号部１０７は必要データを復号バッファ１０８に読み込んだ上で処理を行う。復号結果は出力バッファ１０９に格納される。出力バッファ１０９としては、例えば、DRAMなど揮発メモリが使用される。また、復号部１０７は復号処理のステータス情報の一つとして復号処理済みマクロブロック数を出力し、メモリ部１０４が記憶領域に格納する。復号処理のステータス情報のメモリ部１０４への格納方法としては、復号部１０７がマクロブロックの処理完了毎に信号を出力し、メモリ部１０４がフレームの復号処理の開始からマクロブロック処理の回数を計算して、その結果を記憶領域に格納する方法でもよい。
【００３２】
演算部１１０はタイマ１０６、周波数算出部１０３、メモリ部１０４から構成される。
【００３３】
タイマ１０６は、復号対象のフレームの処理開始からの経過時間をカウントし、その経過時間は動作周波数算出のために使用される。なお、タイマ１０６は動画像復号モジュール１００の内部に含めてもよいし、外部に設置してもよい。
【００３４】
周波数算出部１０３はメモリ部１０４に格納した対象フレームのピクチャタイプから、復号対象フレームが含むマクロブロックのうち演算量が最大となるマクロブロックの演算量（Ｐ_ＭＡＸ）を取得し、復号対象フレームの処理すべきマクロブロックの総数(ＭＢ_all)と処理履歴にある復号処理済マクロブロック数(ｎ)から処理すべき残りのマクロブロックの総数を算出する。さらに、周波数算出部１０３はタイマ１０６がカウントしている復号対象フレームの処理経過時間（Ｔ（ｎ−１））と１フレームに対する復号に割当てる所定時間（Ｔ_Ｆ）から処理すべき残りのマクロブロックの復号処理に割り当てが可能な残り処理時間を算出し、これらの情報を使用して、現在復号の対象となっているマクロブロックを処理するための動作周波数（ｆ）を算出する。具体的には、式１によりｎ番目のマクロブロックを処理するための動作周波数（ｆ）が算出される。
【００３５】
ｆ＝(ＭＢ_all−ｎ)×Ｐ_ＭＡＸ／(Ｔ_Ｆ−Ｔ(n-1))・・・式１
【００３６】
式１を用いることにより、処理すべき全ての残りマクロブロックが最大演算量（Ｐ_ＭＡＸ）を持つとした場合の合計演算量と当該フレームに割り当てが可能な残り処理時間から動作周波数（ｆ）が算出されるので、残りマクロブロックの全てが、最大演算量（Ｐ_ＭＡＸ）を持つ場合においても、マクロブロック単位での復号処理の合計時間が、１フレームに対する復号に割当てる所定時間（Ｔ_Ｆ）を超過することはない。したがって、復号処理を途中で破綻させない動作周波数（ｆ）の変更が可能となる。
【００３７】
次に、周波数算出部１０３は、算出した動作周波数（ｆ）に基づいて、制御部１０５に与える制御データ１１１を生成する。制御データ１１１は、動作周波数を制御するデータと電源電圧を制御するデータを含む。まず、動作周波数を制御するデータは、例えば、次の方法で決定される。実施の形態１における画像処理装置１０は、動作周波数をM段階（M≧２）に設定可能であり、動作周波数が小さい順にＦ（１）、Ｆ（２）、…Ｆ（ｍ）とすると、周波数算出部１０３が、式１により算出した動作周波数（ｆ）に基づき、F（ｋ）<ｆ≦F（ｋ＋１）となるF（ｋ＋１）を選択し、このＦ（ｋ＋１）が、少なくとも復号部１０７の同期クロック信号の周波数を制御するデータとして決定される。一方、電源電圧を制御するデータは、次の方法で決定される。一般に動作周波数が大きければ電源電圧として高電圧が必要となり、動作周波数が低ければ電源電圧を低く抑えることができ、低消費電力化を図ることができる。図３は、実施の形態１における画像処理装置１０の動画像復号モジュール１００に供給する動作周波数と電源電圧の対応関係を表す第２のテーブル１０４Ｂである。実施の形態１における画像処理装置１０は、構成モジュールの動作周波数に合わせて電源電圧をM段階（M≧２）に設定可能であり、例えば、メモリ部１０４に前記第２のテーブル１０４Ｂを格納しておき、前記第２のテーブル１０４Ｂを参照して上記周波数で使用する電源電圧を選択することで、電源電圧を制御するデータを決定する。
【００３８】
以上の方法により、動作周波数を制御するデータと電源電圧を制御するデータを含む制御データ１１１が生成されると、演算部１１０は制御データ１１１を制御部１０５に送る。
【００３９】
メモリ部１０４には、判別部１０２が算出した処理すべきマクロブロックの総数、復号部１０７から出力された復号処理済みのマクロブロック数及び復号対象フレームのピクチャタイプ、図２のようなピクチャタイプから最大演算量を判別する第１のテーブル１０４Ａ及び図３に示すような動作周波数と電源電圧の対応関係を表す第２のテーブル１０４Ｂが記憶される。
【００４０】
制御部１０５は、演算部１１０から送られた制御データ１１１に基づいて、復号部１０７に対して供給する同期クロック信号の周波数と電源電圧を変更する。前記制御部１０５は、例えば、発振回路の出力信号を分周した周波数の中から制御データ１１１に指定された一つの周波数を選択し、クロック信号として出力するクロックジェネレータと、複数の電圧の中から制御データ１１１に指定された一つの電圧を選択し、電源電圧として出力する電源回路とからなる。なお、制御データ１１１に基づいてクロック信号の周波数と電源電圧を変更するブロックは、復号部１０７だけでもよいし、タイマ１０６を除いた、クロック信号を必要とする他のブロックでもよい。
【００４１】
図４は実施の形態１における画像処理装置１０の対象フレームの復号処理の流れである。まず、復号対象となるフレームのデータが入力バッファ１０１に格納される（Ｓ５０１）。次に判別部１０２が入力バッファ１０１に格納された復号対象フレームのデータを解析してフレームについての情報を取得する（Ｓ５０２）。ステップＳ５０２で解析したマクロブロックの情報を基に、演算部１１０が、復号対象フレームの先頭にあるマクロブロックの処理を行うための動作周波数および電源電圧を算出し、制御部１０５に制御データ１１１を与える（Ｓ５０３）。ステップＳ５０３では、まず、先頭のマクロブロック処理における動作周波数（ｆ）が算出される。先頭のマクロブロック処理における動作周波数（ｆ）は、演算部１１０は復号処理済マクロブロック数(ｎ)を０、復号対象フレームの処理経過時間（Ｔ（ｎ−１））を０とし、マクロブロックの最大演算量をステップＳ５０２で判別部１０２が取得したピクチャタイプに基づいた演算量を用いて、式１により算出される。あるいは、先頭のマクロブロックの処理に関しては、上記の方法で動作周波数（ｆ）を算出せずに、動画像復号モジュール１００が対応する最大の動作周波数を設定してもよい。次に、ステップ５０３では周波数算出部１０３は、算出した動作周波数（ｆ）に基づき制御データ１１１を生成し、制御部１０５に与える。制御データ１１１を与えられた制御部１０５は動画像復号モジュール１００に供給する動作周波数と電源電圧（１１２）を変更する。
【００４２】
ステップＳ５０３の後、復号部１０７は、供給された同期クロック信号の周波数と電源電圧の下で、入力バッファ１０１から復号対象となる１マクロブロックのデータを読み出し、マクロブロックの復号処理を行う（Ｓ５０４）。その後、復号部１０７は復号処理のステータスを表す、復号処理済みマクロブロック数をメモリ部１０４に出力し、メモリ部１０４は残りマクロブロック数を更新する（Ｓ５０５）。ステップＳ５０５では、メモリ部１０４がこれまでに記憶している、復号処理が完了したマクロブロック数を１つ増加させて、メモリ部に記憶している残りマクロブロック数を減少させる。次に演算部１１０は、処理すべき残りのマクロブロックの総数が０かどうかを確認する（Ｓ５０６）。前記総数が０となった場合には、対象フレームの復号処理が完了しているため、終了処理を行うためにステップＳ５０８へ移行し、前記総数が０にならなかった場合には、ステップＳ５０７へと進む。前記総数が０となった場合には、すでにフレームの復号処理が終わっているため、終了処理を行う（Ｓ５０８）。ステップ５０８では、演算部１１０が、復号処理が不要な場合に設定可能な、最も小さい動作周波数及び電源電圧となる制御データ１１１を制御部１０５に与える。前記総数が０とならなかった場合には、処理開始からの経過時間を更新する（Ｓ５０７）。ステップＳ５０７では、周波数算出部１０３がタイマ１０６からフレーム処理開始からの経過時間を取得し、メモリ部１０４に記憶している処理すべき残りのマクロブロックの復号処理に割り当てが可能な残り時間を更新する。次に、周波数算出部１０３は、式１に基づき動作周波数（ｆ）を算出し（Ｓ５０９）、次のマクロブロック復号処理で使用する制御データ１１１を生成し、周波数算出部１０３から制御部１０５に制御データ１１１を与える。制御データ１１１を与えられた制御部１０５は動画像復号モジュール１００に供給するクロック信号の周波数と電源電圧（１１２）を変更する（Ｓ５１０）。その後、ステップＳ５０４へと移行して次のマクロブロックの復号処理を継続する。
【００４３】
以上説明した動作フローに従い復号処理を行うことにより、マクロブロックごとに同期クロック信号の周波数と電源電圧を変更して復号処理を行うことが可能となり、動画の復号処理における消費電力低減を実現することができる。
【００４４】
図５は、実施の形態１の動作周波数の変更方法を用いた場合における、対象フレームの復号処理中の動画像復号モジュール１００の動作周波数の変化を表すグラフの一例である。本図では、ｎ番目のマクロブロック処理時に設定した動作周波数をＦ_ＭＢ(ｎ)とする。また、ｎ番目のマクロブロックの復号処理時間をＴ_ＭＢ（ｎ）、演算量をＰ_ＭＢ（ｎ）とすると、ｎ番目のマクロブロック復号処理の時間は式２で表される。
【００４５】
Ｔ_ＭＢ（ｎ）＝Ｐ_ＭＢ（ｎ）／Ｆ_ＭＢ（ｎ）・・・式２
【００４６】
実施の形態１では、マクロブロックの復号処理が完了するごとに、次のマクロブロック処理のために動作周波数が算出される。また、このマクロブロックの演算量については残りのマクロブロックの全てが最大演算量（Ｐ_ＭＡＸ）を必要とするマクロブロックであった場合を考慮しており、実際の対象マクロブロックの演算量はこれよりも小さいことが多くなる。このため、ｎ番目のマクロブロックを処理した際には｛Ｐ_ＭＡＸ／Ｆ_ＭＢ（ｎ）−Ｐ_ＭＢ（ｎ）／Ｆ_ＭＢ（ｎ）｝だけ時間の余裕を得ることができる。実施の形態１では、この時間的余裕をもとにして、ｎ＋１番目のマクロブロックを処理するために使用する動作周波数を低下させることを可能としている。つまり、ｎ番目のマクロブロック処理で得た時間的余裕を残りのマクロブロック処理に配分することで、ｎ＋１番目のマクロブロックでは処理時間Ｔ_ＭＢ（ｎ＋１）を長くすることができ、また、ｎ＋１番目のマクロブロックの演算量であるＰ＿ＭＢ（ｎ＋１）は固定値であるため、式２によると、ｎ＋１番目のマクロブロックを処理するための動作周波数Ｆ_ＭＢ（ｎ＋１）を小さくすることができる。このような周波数設定の繰り返しにより、動作周波数を段階的に低下させることができる。また、動作周波数が低下することにより、マクロブロック１つあたりにかかる処理時間が長くなっているが、直前までのマクロブロック処理で生まれた時間的余裕を元に動作周波数を低下させることにより、全体の復号にかかる時間ΣＴ_ＭＢ（ｎ）がフレーム全体の処理時間Ｔ_Ｆを超えることはなく、動画の再生が破綻することは起こりえない。なお、例えばｎ番目のマクロブロックの演算量がＰ＿ＭＡＸであった場合には、時間的余裕が発生しないため、ｎ＋１番目のマクロブロック処理のために動作周波数が変更されることはなく、ｎ番目のマクロブロックと同じ動作周波数で復号処理が行われる。
【００４７】
図６は、動画１フレームの処理におけるマクロブロック処理の時間経過を示すものである。１フレームに対する復号に割当てる所定時間（Ｔ_Ｆ）は、動画のフレームレート（1秒間に表示するフレーム枚数）に基づき決定される。例えば、１秒間にＬ枚のフレームを表示する動画の場合にはＴ_Ｆ＝１／Ｌ として算出できるが、この時間１／Ｌよりも短い時間を１フレームに対する復号に割当てる所定時間（Ｔ_Ｆ）としてもよい。実施の形態１による動作周波数の変更方式を用いることで、図６に示すようにＴ_Ｆ＞ΣＴ＿ＭＢ（ｎ）となる場合もある。この場合には、最後のマクロブロックの処理が完了した後の残り時間である｛Ｔ_Ｆ−ΣＴ_ＭＢ（ｎ）｝の期間を、動画像復号モジュール１００に設定可能な動作周波数のうち最も低い動作周波数を用いることにより、処理はしていないがクロックを供給することで、動画像復号モジュール１００において消費される不要な電力を低減することが可能となる。
【００４８】
以上説明した実施の形態１により、実際のマクロブロック単位での復号処理によって生ずる余裕時間を把握し、その範囲内で、少なくとも復号部１０７に供給する同期クロック周波数と電源電圧を変更させて逐次復号処理を進めていくから、動画像復号処理の低消費電力化が実現できる。また、マクロブロックの最大演算量を考慮して動作周波数を算出するので、途中で処理が破綻することなく復号処理を行うことができる。
【００４９】
《実施の形態２》
図７は、本発明に係る画像処理装置の別の実施の形態として、バッテリ駆動の携帯端末における動画像の復号処理を行う画像処理装置を示す。同図に示される画像処理装置７０は、特に制限されないが、公知のＣＭＯS集積回路の製造技術によって1個の単結晶シリコンのような半導体基板に形成されている。また、画像処理装置７０は、１つの前記集積回路で構成されたものではなく、マルチチップで形成されたものでもよい。
【００５０】
実施の形態１では、動作周波数の算出の際に用いる演算量をピクチャタイプに応ずる最大演算量（Ｐ＿ＭＡＸ）とした。画像処理装置７０は、復号処理したマクロブロックの演算量の履歴に基づいて決まる代表演算量（Ｐ＿ＴＹＰ）を用いて動作周波数をダイナミックに変化可能にするものである。画像処理装置７０は、実施の形態１における画像処理装置１０と比較して、動作周波数をより低下させることが可能となる。
【００５１】
画像処理装置７０は、動画像復号モジュール７００、入力バッファ１０１、判別部１０２、制御部１０５、復号部１０７、復号バッファ１０８、出力バッファ１０９及び演算部７１０を備える。
【００５２】
入力バッファ１０１、判別部１０２、制御部１０５、復号部１０７、復号バッファ１０８及び出力バッファ１０９は実施の形態１と同様であるため、同一の符号を付して、その詳細な説明を省略する。
【００５３】
演算部７１０はタイマ１０６、ＭＢ解析部７０３、周波数算出部７０４、メモリ部７０５から構成される。
【００５４】
タイマ１０６は実施の形態１と同様であるため、同一の符号を付して、その詳細な説明を省略する。
【００５５】
ＭＢ解析部７０３は、復号の対象とするマクロブロックのマクロブロックヘッダを解析し、マクロブロックタイプを取得し、その結果をメモリ部７０５の処理履歴に記憶する。さらに、ＭＢ解析部７０３は、その情報を周波数算出部７０４に送る。
【００５６】
周波数算出部７０４は、まず、復号対象フレームの先頭のマクロブロック処理のための制御データ１１１の初期値を生成する。前記初期値の生成は、実施の形態１と同様に、判別部１０２が判別したピクチャタイプから決まる最大演算量（Ｐ＿ＭＡＸ）を用いて、動作周波数（ｆ）を算出し、算出した動作周波数（ｆ）から制御データ１１１を生成する。前記制御データ１１１は制御部１０５に初期値として与えられる。その後のマクロブロック復号処理からは、最大演算量（Ｐ＿ＭＡＸ）に代えて、代表演算量（Ｐ＿ＴＹＰ）を使用して動作周波数（ｆ）の算出を行う。
【００５７】
代表演算量（Ｐ_ＴＹＰ）は、以下の方法のより決定される。まず、周波数算出部７０４は、復号処理が完了したマクロブロックのマクロブロックタイプから当該マクロブロックの演算量を取得する。例えば、図２のようなマクロブロックタイプから演算量がわかる第１のテーブル１０４Ａをメモリ部７０５に格納しておくことで、ＭＢ解析部７０３が解析したマクロブロックタイプから、第１のテーブル１０４Ａに基づいて、当該マクロブロックの演算量がわかる。過去ｊ個のマクロブロックの復号処理に要した演算量は、メモリ部７０５の処理履歴として記憶しておく。次に、取得したマクロブロックの演算量をもとに、復号処理が完了した過去ｊ個のマクロブロックで費やした演算量の平均値を算出する。前記平均値として使用する値は、算術平均値や加重平均値でもよいし、ヒストグラムから最も頻出のマクロブロックの演算量でもよい。その後、前記平均値と次の復号対象となるマクロブロックの演算量の差分を算出する。算出された差分が、ある閾値を超えない場合には前記平均値が代表演算量（Ｐ_ＴＹＰ）として設定され、差分が、ある閾値を超える場合には処理対象マクロブロックの演算量が新たな代表演算量（Ｐ_ＴＹＰ）として設定される。この際、代表演算量（Ｐ_ＴＹＰ）が著しく増加する場合には、復号処理の破綻の虞があるため、マクロブロックの最大演算量（Ｐ_ＭＡＸ）を代表演算量（Ｐ_ＴＹＰ）としてもよい。例えば、代表演算量（Ｐ_ＴＹＰ）を最大演算量（Ｐ_ＭＡＸ）に設定する方法として、最大演算量に設定するための別の閾値を定めておいて、前記差分がその閾値を超えた場合に代表演算量（Ｐ_ＴＹＰ）を最大演算量（Ｐ_ＭＡＸ）に設定するようにする。以上の方法により決定した代表演算量（Ｐ＿ＴＹＰ）はメモリ７０５に記憶される。最後に、周波数算出部７０４は、上記代表演算量（Ｐ＿ＴＹＰ）を用いて、対象マクロブロックの復号処理に使用する動作周波数（ｆ）を式３にて決定する。
【００５８】
ｆ＝(ＭＢ_all−ｎ)×Ｐ_ＴＹＰ／(Ｔ_Ｆ−Ｔ(n-1))・・・式３
【００５９】
式３における代表演算量（Ｐ＿ＴＹＰ）以外のパラメータは、式１と同様である。
【００６０】
式３を用いることにより、処理すべき全ての残りマクロブロックが、最大演算量（Ｐ_ＭＡＸ）ではなく、過去の実際の処理履歴から算出した代表演算量（Ｐ＿ＴＹＰ）を持つとした場合の合計演算量と当該フレームに割り当てが可能な残り処理時間から動作周波数（ｆ）が算出されるので、より動作周波数を低下させることが可能となる。また、前記差分の判別結果により代表演算量（Ｐ＿ＴＹＰ）を著しく増加させる場合には、最大演算量（Ｐ_ＭＡＸ）を代表演算量（Ｐ_ＴＹＰ）とすることで、残りマクロブロックの全てが、最大演算量（Ｐ_ＭＡＸ）を持つ場合においてもマクロブロック単位での復号処理の合計時間が、１フレームに対する復号に割当てる所定時間（Ｔ_Ｆ）を超過することはない。したがって、復号処理を途中で破綻させない動作周波数（ｆ）の変更が可能となる。
【００６１】
動作周波数（ｆ）が決定した後は、実施の形態１と同様の方法で制御データ１１１が生成され、演算部７１０は制御データ１１１を制御部１０５に送る。
【００６２】
メモリ部７０５は、実施の形態１における図１のメモリ部１０４の記憶内容に加え、ＭＢタイプから演算量を判別する第１のテーブル１０４Ａ、ＭＢ解析部７０３が取得した過去ｊ個のマクロブロックタイプ、過去ｊ個のマクロブロックの復号処理に要した演算量及び代表演算量（Ｐ_ＴＹＰ）を記憶する。
【００６３】
制御部１０５は、実施の形態１における制御部１０５と同様であり、演算部７１０から送られた制御データ１１１に基づいて、復号部１０７に対して供給する同期クロック信号の周波数と電源電圧を変更する。なお、制御データ１１１に基づいてクロック信号の周波数と電源電圧を変更するブロックは、復号部１０７だけでもよいし、タイマ１０６を除いた、クロック信号を必要とする他のブロックでもよい。
【００６４】
以上説明した実施の形態２により、実際のマクロブロック単位での復号処理によって生ずる余裕時間を把握し、その範囲内で、少なくとも復号部１０７に供給する同期クロック周波数と電源電圧を変更させて逐次復号処理を進めていくから、動画像復号処理の低消費電力化が実現できる。さらに、実施の形態１において演算に用いたマクロブロックの最大演算量（Ｐ_ＭＡＸ）に代えて代表演算量（Ｐ_ＴＹＰ）を用いることで、各マクロブロックを処理するための動作周波数を実施の形態１と比較して、より低下させることが可能となり、動画像復号処理の低消費電力化が実現できる。
【００６５】
《実施の形態３》
実施の形態３は、実施の形態１又は実施の形態２における制御部１０５の代わりに、演算部（１１０、７１０）から受け取った制御データ１１１をもとに動作周波数を制御して、固定の電源電圧を出力する制御部を備える、画像処理装置である。制御部以外のブロックは、実施の形態１又は実施の形態２と同様の構成である。実施の形態３における制御部は、クロック信号の周波数として選択可能な一番高い周波数を供給する上で必要な一番高い電圧を電源電圧として、あらかじめ出力しておき、そのうえで演算部（１１０、７１０）から受け取った制御データ１１１をもとに、クロック信号の周波数を制御する。なお、制御データ１１１に基づいてクロック信号の周波数と電源電圧を変更するブロックは、復号部１０７だけでもよいし、タイマ１０６を除いた、クロック信号を必要とする他のブロックでもよい。前記制御部は、例えば、制御データ１１１に基づいて、発振回路の出力信号を分周した周波数の中からどれかを選択し、クロック信号として出力するクロックジェネレータと、選択可能な一番高い周波数を供給する上で必要な一番高い電圧を電源電圧として出力する電源回路とからなる。
【００６６】
以上の実施の形態３により、電源電圧は固定であるが、マクロブロック単位での動作周波数を変更することが可能となり、動画像復号処理における消費電力の低減を実現することができる。
【００６７】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。例えば、本発明はＭＰＥＧやＨ.２６Ｘ規格に準拠した動画像復号技術だけに適用可能なものではなく、その他の手法による画像処理技術にも広く適用することができる。
【符号の説明】
【００６８】
１０  画像処理装置
７０  画像処理装置
１００  動画像復号モジュール
１０１  入力バッファ
１０２  判別部
１０３  周波数算出部
１０４  メモリ部
１０４Ａ  第１のテーブル
１０４Ｂ  第２のテーブル
１０５  制御部
１０６  タイマ
１０７  復号部
１０８  復号バッファ
１０９  出力バッファ
１１０  演算部
１１１  制御データ
１１２  ＣＬＫ・ＶＤＤ
７００  動画像復号モジュール
７０３  ＭＢ解析部
７０４  周波数算出部
７０５  メモリ部
７１０  演算部
【図１】
2011004205.tif 000003
【図２】
2011004205.tif 000004
【図３】
2011004205.tif 000005
【図４】
2011004205.tif 000006
【図５】
2011004205.tif 000007
【図６】
2011004205.tif 000008
【図７】
2011004205.tif 000009