JP2011004205A - 画像処理装置及び画像処理方法 - Google Patents
画像処理装置及び画像処理方法 Download PDFInfo
- Publication number
- JP2011004205A JP2011004205A JP2009146009A JP2009146009A JP2011004205A JP 2011004205 A JP2011004205 A JP 2011004205A JP 2009146009 A JP2009146009 A JP 2009146009A JP 2009146009 A JP2009146009 A JP 2009146009A JP 2011004205 A JP2011004205 A JP 2011004205A
- Authority
- JP
- Japan
- Prior art keywords
- decoding
- calculation amount
- macroblock
- frequency
- unit
- 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.)
- Withdrawn
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】動画像の復号処理が途中で破綻することなく、低消費電力を図る。
【解決手段】動画像の復号処理を行う画像処理装置であって、符号化された動画像データをフレームのピクチャタイプとマクロブロックタイプに従ってマクロブロック単位で復号する復号部(107)と、動画像復号モジュール(100)のクロック信号の周波数と電源電圧を制御する制御部(105)と、前記動画像データのフレーム情報を判別する判別部(102)と、前記判別部による判別結果と前記復号部による復号処理の進行状態に従って前記制御部に与える制御データを算出する演算部(110)と、を備える。前記演算部は、1フレームに対する復号に割当てられた所定時間に対して復号処理の進行に従って減少する残り処理時間と前記復号部の同期クロック信号の現在の周波数との関係から得られる余裕時間の範囲内で制御データを変更する。
【選択図】図1
【解決手段】動画像の復号処理を行う画像処理装置であって、符号化された動画像データをフレームのピクチャタイプとマクロブロックタイプに従ってマクロブロック単位で復号する復号部(107)と、動画像復号モジュール(100)のクロック信号の周波数と電源電圧を制御する制御部(105)と、前記動画像データのフレーム情報を判別する判別部(102)と、前記判別部による判別結果と前記復号部による復号処理の進行状態に従って前記制御部に与える制御データを算出する演算部(110)と、を備える。前記演算部は、1フレームに対する復号に割当てられた所定時間に対して復号処理の進行に従って減少する残り処理時間と前記復号部の同期クロック信号の現在の周波数との関係から得られる余裕時間の範囲内で制御データを変更する。
【選択図】図1
Description
本発明は、画像処理装置及び画像処理方法に関し、例えば復号処理を行うバッテリ駆動用のシステム又は画像データ表示システムに適用して有効な技術に関する。
近年、放送や通信などの伝送路を通じて動画データの送受信を行うことや、記憶メディアに保存した動画を携帯端末などで視聴する機会が増加している。一般に動画は情報量が大きいため、伝送路の帯域や記憶メディアの容量などの制約から、動画を圧縮符号化した状態で伝送や保存し、視聴時に復号処理する。動画の符号化方式としては、ISO/IECで規格化されているMPEG(Moving Picture Expert Group)やH.26Xがある。これらの技術では、動画を構成する複数のフレーム間にある時間的、空間的な相関関係を用いた情報量の圧縮を行う。
しかしながら、これらの技術で圧縮した動画の復号処理には比較的大きな演算が必要であり、演算量の増加に伴い消費電力も増大するため、低消費電力での復号処理の実現が課題となっている。従来の低消費電力化の方法として、例えば下記の特許文献1にて開示されている。
特許文献1は、動的に動作周波数および電源電圧を変更可能な動画復号装置において、動画を構成する単位であるフレーム単位での復号処理が必要とする演算量を予測し、予測した演算量をもとにフレームの復号処理をするために使用する動作周波数と電源電圧を決定する。各フレームの復号処理開始のタイミングで、決定した動作周波数と電源電圧を設定することにより、適切な動作周波数と電圧での動作させることで、低消費電力を図るものである。
しかしながら、特許文献1に記載の方法では、フレーム復号処理開始時に動作周波数および電源電圧を決定し、当該フレームの復号処理中に動作周波数および電源電圧は固定となる。このため、当該フレーム処理開始時の予測よりも実際の演算量が多かった場合には、当該フレーム処理時間内に復号処理が完了せず、動画像復号処理が破綻してしまうという問題があった。
本発明の目的は、動画像の復号処理が途中で破綻することなく、低消費電力を図ることができる画像処理装置を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、画像処理装置は、符号化された動画像データをマクロブロック単位で復号するとき、1フレームに対する復号に割当てられた時間に対して復号処理の進行に従って減少する残り処理時間と前記復号処理を同期させるクロック信号の現在の周波数との関係から余裕時間を把握し、その余裕時間の範囲内で処理速度を低下させるように前記周波数を低くする制御を行う。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、本画像処理装置によれば、動画像復号処理を破綻させることはなく低消費電力を図ることができる。
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係る画像処理装置(10、70)は符号化された動画像データをフレームのピクチャタイプとマクロブロックタイプに従ってマクロブロック単位で復号する復号部(107)と、少なくとも前記復号部に供給する同期クロック信号の周波数を制御する制御部(105)と、前記動画像データのフレーム単位でピクチャタイプとマクロブロック数を判別する判別部(102)と、前記判別部による判別結果と前記復号部による復号処理の進行状態に従って前記制御部に与える制御データ(111)を算出する演算部(110、710)と、を備える。前記演算部は、1フレームに対する復号に割当てられた所定時間に対して復号処理の進行に従って減少する残り処理時間と前記復号部の同期クロック信号の現在の周波数との関係から得られる余裕時間の範囲内で制御データを変更する。これによれば、実際の復号処理によって生ずる余裕時間を把握し、その範囲で周波数を低くしながら逐次復号処理を進めていくから、途中で復号処理が間に合わなくなる事態を生ずる虞なく、且つ実際の処理状況に応じて電力消費を低減することができる。
〔2〕項1の画像処理装置において、前記演算部は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成する。これにより前記最大演算量を考慮して前記周波数を決定するので、途中で処理が破綻することなく復号処理を行うことができる。
〔3〕項2の画像処理装置において、前記処理すべきマクロブロックの総数は、当該フレームのマクロブロックの総数から復号処理済マクロブロック数を減算して得られる値である。
〔4〕項1乃至3の何れかの画像処理装置において、前記制御データは、前記同期クロック信号の周波数を制御するデータ、または前記復号部に供給する電源電圧と前記周波数を制御するデータである。
〔5〕項1乃至4の何れかの画像処理装置において、前記所定時間は、前記動画像データにおけるフレームレートに基づいて決まる時間である。
〔6〕項1乃至5の何れかの画像処理装置において、前記残り処理時間とは前記所定時間から当該フレームの復号処理の開始からの経過時間を減算して得られる時間である。
〔7〕項1の画像処理装置において、前記演算部は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成し、当該生成した制御データを初期値として前記制御部に与え、その後からは、最大演算量となるマクロブロックの演算量に代えて過去の処理済マクロブロックの演算量の平均値から算出する代表演算量と、前記処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定するデータを生成する。これにより最大演算量に代えて代表演算量を用いて前記周波数を決定するから、項1乃至5の画像処理装置よりも前記周波数を低下させることが可能となる。
〔8〕項7の画像処理装置において、前記代表演算量は、過去の処理済マクロブロックの演算量の平均値と次の復号対象となるマクロブロックの演算量の差分がある閾値を超えない場合は、前記平均値を代表演算量とし、前記差分がある閾値を超える場合は、前記次の復号対象となるマクロブロックの演算量を代表演算量とする。
〔9〕本発明の代表的な実施の形態に係る画像処理方法は、符号化された動画像データをマクロブロック単位で復号する画像処理方法であって、前記動画像データのフレーム単位でピクチャタイプとマクロブロック数を判別する第1処理と、フレームのピクチャタイプとマクロブロックタイプに従ってマクロブロック単位で復号する第2処理と、前記第1処理による判別結果と前記第2処理の進行状態に従って復号部に与える制御データを算出する第3処理と前記第3処理で算出した制御データで少なくとも復号部に供給する同期クロック信号の周波数を制御する第4処理と、を含む。前記第3処理は、1フレームに対する復号に割当てられた所定時間に対して第2処理の進行に従って減少する残り処理時間と前記同期クロック信号の現在の周波数との関係から得られる余裕時間の範囲内で制御データを変更する処理である。これにより上記同様、電力消費を低減することができる。
〔10〕項9の画像処理方法において、前記第3処理は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記第2処理の進行に従って減少する残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成する。これにより上記同様、途中で処理が破綻することなく復号処理を行うことができる。
〔11〕項9の画像処理方法において、前記第3処理は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記第2処理の進行に従って減少する残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成し、当該生成した制御データを初期値とし、その後からは、最大演算量となるマクロブロックの演算量に代えて過去の処理済マクロブロックの演算量の平均値から算出する代表演算量と、前記処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定するデータを生成する。これにより上記同様、項9乃至10の画像処理方法よりも前記周波数を低下させることが可能となる。
2.実施の形態の詳細
実施の形態について更に詳述する。
実施の形態について更に詳述する。
《実施の形態1》
図1は、本発明に係る画像処理装置の一実施の形態として、バッテリ駆動の携帯端末における動画像の復号処理を行う画像処理装置を示す。同図に示される画像処理装置10は、特に制限されないが、公知のCMOS集積回路の製造技術によって1個の単結晶シリコンのような半導体基板に形成されている。また、画像処理装置10は、1つの前記集積回路で構成されたものではなく、マルチチップで形成されたものでもよい。
図1は、本発明に係る画像処理装置の一実施の形態として、バッテリ駆動の携帯端末における動画像の復号処理を行う画像処理装置を示す。同図に示される画像処理装置10は、特に制限されないが、公知のCMOS集積回路の製造技術によって1個の単結晶シリコンのような半導体基板に形成されている。また、画像処理装置10は、1つの前記集積回路で構成されたものではなく、マルチチップで形成されたものでもよい。
画像処理装置10は、動画像復号モジュール100、入力バッファ101、判別部102、周波数算出部103、メモリ部104、制御部105、タイマ106、復号部107、復号バッファ108、出力バッファ109及び演算部110を備える。
入力バッファ101には復号対象となるフレームのデータが格納される。入力バッファ101はDRAMなど揮発性メモリにより構成され、図1に未記載の制御プロセッサなどにより入力バッファ101へのデータ格納処理が行われる。格納されるデータは、例えば、不揮発性メモリカードやHDDなどの記録媒体に保存されているデータや放送・通信により配信されるものを受信して、データバス経由でコピーされているデータ、である。
判別部102は入力バッファ101に格納されているデータから対象フレームの画像サイズのデータを取得し、画像サイズのデータから処理すべきマクロブロックの総数を算出する。さらに、判別部102は復号対象のフレームのピクチャタイプを判別する。図2は、ピクチャタイプごとに、構成要素となるマクロブロックの種類を示したものである。MPEGでは動画を構成するフレームごとに、ピクチャタイプ(Iピクチャ、Pピクチャ、Bピクチャ)が存在する。Iピクチャは復号のために前後のフレームとの相関関係を使用することはなく、フレーム内のデータだけで復号できるフレームであり、Pピクチャは復号のために前フレームとの相関関係を利用するフレームであり、Bピクチャは復号のために前後のフレームとの相関関係を利用するフレームである。このような特徴があるため、ピクチャタイプごとに、フレームを構成するマクロブロックタイプも定義される。マクロブロックは図2に示すように「MBQUANT」、「順方向予測」、「逆方向予測」、「MBパターン」、「MBイントラ」の5項目の組み合わせによりマクロブロックタイプが決定され、このマクロブロックタイプから演算を処理するためのクロックサイクル数がわかり、前記クロックサイクル数が、マクロブロックの復号処理の演算量となる。したがって、図2のようなフレームのピクチャタイプから最大演算量がわかる第1のテーブル104Aをメモリ部104に格納しておくことで、判別部102が判別したピクチャタイプから、第1のテーブル104Aに基づいて最大演算量を決定することができる。なお、第1のテーブル104Aにおける演算量を復号部107の内部構成に応じて変更してもよい。また、一つの動画を構成する連続するフレームの画像サイズが変化することはない場合は、判別部102が動画像復号処理開始時に画像サイズを取得し、2フレーム目以降の処理では1フレーム目で取得した画像サイズならびにフレームあたりのマクロブロック数を継続して使用してもよい。また、判別部102は、動画のフレームレート(1秒間のフレーム数)も取得し、当該フレームレートに基づいて1フレームに対する復号に割当てる所定時間を算出する。判別部102は、これらの復号対象のフレームに関する情報をフレームデータの先頭に配置されるヘッダ情報を解析して取得する。周波数算出部103が解析の結果を参照するため、解析した結果は、メモリ部104に格納される。さらに、対象フレームの復号処理の開始時には、メモリ部104にある復号対象フレームの処理履歴の内容は初期化される。
復号部107は、マクロブロック単位での復号処理を行う。処理対象のマクロブロックが他のマクロブロックとの時間・空間的な相関関係を用いた復号処理を必要とする場合には、復号部107は必要データを復号バッファ108に読み込んだ上で処理を行う。復号結果は出力バッファ109に格納される。出力バッファ109としては、例えば、DRAMなど揮発メモリが使用される。また、復号部107は復号処理のステータス情報の一つとして復号処理済みマクロブロック数を出力し、メモリ部104が記憶領域に格納する。復号処理のステータス情報のメモリ部104への格納方法としては、復号部107がマクロブロックの処理完了毎に信号を出力し、メモリ部104がフレームの復号処理の開始からマクロブロック処理の回数を計算して、その結果を記憶領域に格納する方法でもよい。
演算部110はタイマ106、周波数算出部103、メモリ部104から構成される。
タイマ106は、復号対象のフレームの処理開始からの経過時間をカウントし、その経過時間は動作周波数算出のために使用される。なお、タイマ106は動画像復号モジュール100の内部に含めてもよいし、外部に設置してもよい。
周波数算出部103はメモリ部104に格納した対象フレームのピクチャタイプから、復号対象フレームが含むマクロブロックのうち演算量が最大となるマクロブロックの演算量(P_MAX)を取得し、復号対象フレームの処理すべきマクロブロックの総数(MB_all)と処理履歴にある復号処理済マクロブロック数(n)から処理すべき残りのマクロブロックの総数を算出する。さらに、周波数算出部103はタイマ106がカウントしている復号対象フレームの処理経過時間(T(n−1))と1フレームに対する復号に割当てる所定時間(T_F)から処理すべき残りのマクロブロックの復号処理に割り当てが可能な残り処理時間を算出し、これらの情報を使用して、現在復号の対象となっているマクロブロックを処理するための動作周波数(f)を算出する。具体的には、式1によりn番目のマクロブロックを処理するための動作周波数(f)が算出される。
f=(MB_all−n)×P_MAX/(T_F−T(n-1))・・・式1
式1を用いることにより、処理すべき全ての残りマクロブロックが最大演算量(P_MAX)を持つとした場合の合計演算量と当該フレームに割り当てが可能な残り処理時間から動作周波数(f)が算出されるので、残りマクロブロックの全てが、最大演算量(P_MAX)を持つ場合においても、マクロブロック単位での復号処理の合計時間が、1フレームに対する復号に割当てる所定時間(T_F)を超過することはない。したがって、復号処理を途中で破綻させない動作周波数(f)の変更が可能となる。
次に、周波数算出部103は、算出した動作周波数(f)に基づいて、制御部105に与える制御データ111を生成する。制御データ111は、動作周波数を制御するデータと電源電圧を制御するデータを含む。まず、動作周波数を制御するデータは、例えば、次の方法で決定される。実施の形態1における画像処理装置10は、動作周波数をM段階(M≧2)に設定可能であり、動作周波数が小さい順にF(1)、F(2)、…F(m)とすると、周波数算出部103が、式1により算出した動作周波数(f)に基づき、F(k)<f≦F(k+1)となるF(k+1)を選択し、このF(k+1)が、少なくとも復号部107の同期クロック信号の周波数を制御するデータとして決定される。一方、電源電圧を制御するデータは、次の方法で決定される。一般に動作周波数が大きければ電源電圧として高電圧が必要となり、動作周波数が低ければ電源電圧を低く抑えることができ、低消費電力化を図ることができる。図3は、実施の形態1における画像処理装置10の動画像復号モジュール100に供給する動作周波数と電源電圧の対応関係を表す第2のテーブル104Bである。実施の形態1における画像処理装置10は、構成モジュールの動作周波数に合わせて電源電圧をM段階(M≧2)に設定可能であり、例えば、メモリ部104に前記第2のテーブル104Bを格納しておき、前記第2のテーブル104Bを参照して上記周波数で使用する電源電圧を選択することで、電源電圧を制御するデータを決定する。
以上の方法により、動作周波数を制御するデータと電源電圧を制御するデータを含む制御データ111が生成されると、演算部110は制御データ111を制御部105に送る。
メモリ部104には、判別部102が算出した処理すべきマクロブロックの総数、復号部107から出力された復号処理済みのマクロブロック数及び復号対象フレームのピクチャタイプ、図2のようなピクチャタイプから最大演算量を判別する第1のテーブル104A及び図3に示すような動作周波数と電源電圧の対応関係を表す第2のテーブル104Bが記憶される。
制御部105は、演算部110から送られた制御データ111に基づいて、復号部107に対して供給する同期クロック信号の周波数と電源電圧を変更する。前記制御部105は、例えば、発振回路の出力信号を分周した周波数の中から制御データ111に指定された一つの周波数を選択し、クロック信号として出力するクロックジェネレータと、複数の電圧の中から制御データ111に指定された一つの電圧を選択し、電源電圧として出力する電源回路とからなる。なお、制御データ111に基づいてクロック信号の周波数と電源電圧を変更するブロックは、復号部107だけでもよいし、タイマ106を除いた、クロック信号を必要とする他のブロックでもよい。
図4は実施の形態1における画像処理装置10の対象フレームの復号処理の流れである。まず、復号対象となるフレームのデータが入力バッファ101に格納される(S501)。次に判別部102が入力バッファ101に格納された復号対象フレームのデータを解析してフレームについての情報を取得する(S502)。ステップS502で解析したマクロブロックの情報を基に、演算部110が、復号対象フレームの先頭にあるマクロブロックの処理を行うための動作周波数および電源電圧を算出し、制御部105に制御データ111を与える(S503)。ステップS503では、まず、先頭のマクロブロック処理における動作周波数(f)が算出される。先頭のマクロブロック処理における動作周波数(f)は、演算部110は復号処理済マクロブロック数(n)を0、復号対象フレームの処理経過時間(T(n−1))を0とし、マクロブロックの最大演算量をステップS502で判別部102が取得したピクチャタイプに基づいた演算量を用いて、式1により算出される。あるいは、先頭のマクロブロックの処理に関しては、上記の方法で動作周波数(f)を算出せずに、動画像復号モジュール100が対応する最大の動作周波数を設定してもよい。次に、ステップ503では周波数算出部103は、算出した動作周波数(f)に基づき制御データ111を生成し、制御部105に与える。制御データ111を与えられた制御部105は動画像復号モジュール100に供給する動作周波数と電源電圧(112)を変更する。
ステップS503の後、復号部107は、供給された同期クロック信号の周波数と電源電圧の下で、入力バッファ101から復号対象となる1マクロブロックのデータを読み出し、マクロブロックの復号処理を行う(S504)。その後、復号部107は復号処理のステータスを表す、復号処理済みマクロブロック数をメモリ部104に出力し、メモリ部104は残りマクロブロック数を更新する(S505)。ステップS505では、メモリ部104がこれまでに記憶している、復号処理が完了したマクロブロック数を1つ増加させて、メモリ部に記憶している残りマクロブロック数を減少させる。次に演算部110は、処理すべき残りのマクロブロックの総数が0かどうかを確認する(S506)。前記総数が0となった場合には、対象フレームの復号処理が完了しているため、終了処理を行うためにステップS508へ移行し、前記総数が0にならなかった場合には、ステップS507へと進む。前記総数が0となった場合には、すでにフレームの復号処理が終わっているため、終了処理を行う(S508)。ステップ508では、演算部110が、復号処理が不要な場合に設定可能な、最も小さい動作周波数及び電源電圧となる制御データ111を制御部105に与える。前記総数が0とならなかった場合には、処理開始からの経過時間を更新する(S507)。ステップS507では、周波数算出部103がタイマ106からフレーム処理開始からの経過時間を取得し、メモリ部104に記憶している処理すべき残りのマクロブロックの復号処理に割り当てが可能な残り時間を更新する。次に、周波数算出部103は、式1に基づき動作周波数(f)を算出し(S509)、次のマクロブロック復号処理で使用する制御データ111を生成し、周波数算出部103から制御部105に制御データ111を与える。制御データ111を与えられた制御部105は動画像復号モジュール100に供給するクロック信号の周波数と電源電圧(112)を変更する(S510)。その後、ステップS504へと移行して次のマクロブロックの復号処理を継続する。
以上説明した動作フローに従い復号処理を行うことにより、マクロブロックごとに同期クロック信号の周波数と電源電圧を変更して復号処理を行うことが可能となり、動画の復号処理における消費電力低減を実現することができる。
図5は、実施の形態1の動作周波数の変更方法を用いた場合における、対象フレームの復号処理中の動画像復号モジュール100の動作周波数の変化を表すグラフの一例である。本図では、n番目のマクロブロック処理時に設定した動作周波数をF_MB(n)とする。また、n番目のマクロブロックの復号処理時間をT_MB(n)、演算量をP_MB(n)とすると、n番目のマクロブロック復号処理の時間は式2で表される。
T_MB(n)=P_MB(n)/F_MB(n)・・・式2
実施の形態1では、マクロブロックの復号処理が完了するごとに、次のマクロブロック処理のために動作周波数が算出される。また、このマクロブロックの演算量については残りのマクロブロックの全てが最大演算量(P_MAX)を必要とするマクロブロックであった場合を考慮しており、実際の対象マクロブロックの演算量はこれよりも小さいことが多くなる。このため、n番目のマクロブロックを処理した際には{P_MAX/F_MB(n)−P_MB(n)/F_MB(n)}だけ時間の余裕を得ることができる。実施の形態1では、この時間的余裕をもとにして、n+1番目のマクロブロックを処理するために使用する動作周波数を低下させることを可能としている。つまり、n番目のマクロブロック処理で得た時間的余裕を残りのマクロブロック処理に配分することで、n+1番目のマクロブロックでは処理時間T_MB(n+1)を長くすることができ、また、n+1番目のマクロブロックの演算量であるP_MB(n+1)は固定値であるため、式2によると、n+1番目のマクロブロックを処理するための動作周波数F_MB(n+1)を小さくすることができる。このような周波数設定の繰り返しにより、動作周波数を段階的に低下させることができる。また、動作周波数が低下することにより、マクロブロック1つあたりにかかる処理時間が長くなっているが、直前までのマクロブロック処理で生まれた時間的余裕を元に動作周波数を低下させることにより、全体の復号にかかる時間ΣT_MB(n)がフレーム全体の処理時間T_Fを超えることはなく、動画の再生が破綻することは起こりえない。なお、例えばn番目のマクロブロックの演算量がP_MAXであった場合には、時間的余裕が発生しないため、n+1番目のマクロブロック処理のために動作周波数が変更されることはなく、n番目のマクロブロックと同じ動作周波数で復号処理が行われる。
図6は、動画1フレームの処理におけるマクロブロック処理の時間経過を示すものである。1フレームに対する復号に割当てる所定時間(T_F)は、動画のフレームレート(1秒間に表示するフレーム枚数)に基づき決定される。例えば、1秒間にL枚のフレームを表示する動画の場合にはT_F=1/L として算出できるが、この時間1/Lよりも短い時間を1フレームに対する復号に割当てる所定時間(T_F)としてもよい。実施の形態1による動作周波数の変更方式を用いることで、図6に示すようにT_F>ΣT_MB(n)となる場合もある。この場合には、最後のマクロブロックの処理が完了した後の残り時間である{T_F−ΣT_MB(n)}の期間を、動画像復号モジュール100に設定可能な動作周波数のうち最も低い動作周波数を用いることにより、処理はしていないがクロックを供給することで、動画像復号モジュール100において消費される不要な電力を低減することが可能となる。
以上説明した実施の形態1により、実際のマクロブロック単位での復号処理によって生ずる余裕時間を把握し、その範囲内で、少なくとも復号部107に供給する同期クロック周波数と電源電圧を変更させて逐次復号処理を進めていくから、動画像復号処理の低消費電力化が実現できる。また、マクロブロックの最大演算量を考慮して動作周波数を算出するので、途中で処理が破綻することなく復号処理を行うことができる。
《実施の形態2》
図7は、本発明に係る画像処理装置の別の実施の形態として、バッテリ駆動の携帯端末における動画像の復号処理を行う画像処理装置を示す。同図に示される画像処理装置70は、特に制限されないが、公知のCMOS集積回路の製造技術によって1個の単結晶シリコンのような半導体基板に形成されている。また、画像処理装置70は、1つの前記集積回路で構成されたものではなく、マルチチップで形成されたものでもよい。
図7は、本発明に係る画像処理装置の別の実施の形態として、バッテリ駆動の携帯端末における動画像の復号処理を行う画像処理装置を示す。同図に示される画像処理装置70は、特に制限されないが、公知のCMOS集積回路の製造技術によって1個の単結晶シリコンのような半導体基板に形成されている。また、画像処理装置70は、1つの前記集積回路で構成されたものではなく、マルチチップで形成されたものでもよい。
実施の形態1では、動作周波数の算出の際に用いる演算量をピクチャタイプに応ずる最大演算量(P_MAX)とした。画像処理装置70は、復号処理したマクロブロックの演算量の履歴に基づいて決まる代表演算量(P_TYP)を用いて動作周波数をダイナミックに変化可能にするものである。画像処理装置70は、実施の形態1における画像処理装置10と比較して、動作周波数をより低下させることが可能となる。
画像処理装置70は、動画像復号モジュール700、入力バッファ101、判別部102、制御部105、復号部107、復号バッファ108、出力バッファ109及び演算部710を備える。
入力バッファ101、判別部102、制御部105、復号部107、復号バッファ108及び出力バッファ109は実施の形態1と同様であるため、同一の符号を付して、その詳細な説明を省略する。
演算部710はタイマ106、MB解析部703、周波数算出部704、メモリ部705から構成される。
タイマ106は実施の形態1と同様であるため、同一の符号を付して、その詳細な説明を省略する。
MB解析部703は、復号の対象とするマクロブロックのマクロブロックヘッダを解析し、マクロブロックタイプを取得し、その結果をメモリ部705の処理履歴に記憶する。さらに、MB解析部703は、その情報を周波数算出部704に送る。
周波数算出部704は、まず、復号対象フレームの先頭のマクロブロック処理のための制御データ111の初期値を生成する。前記初期値の生成は、実施の形態1と同様に、判別部102が判別したピクチャタイプから決まる最大演算量(P_MAX)を用いて、動作周波数(f)を算出し、算出した動作周波数(f)から制御データ111を生成する。前記制御データ111は制御部105に初期値として与えられる。その後のマクロブロック復号処理からは、最大演算量(P_MAX)に代えて、代表演算量(P_TYP)を使用して動作周波数(f)の算出を行う。
代表演算量(P_TYP)は、以下の方法のより決定される。まず、周波数算出部704は、復号処理が完了したマクロブロックのマクロブロックタイプから当該マクロブロックの演算量を取得する。例えば、図2のようなマクロブロックタイプから演算量がわかる第1のテーブル104Aをメモリ部705に格納しておくことで、MB解析部703が解析したマクロブロックタイプから、第1のテーブル104Aに基づいて、当該マクロブロックの演算量がわかる。過去j個のマクロブロックの復号処理に要した演算量は、メモリ部705の処理履歴として記憶しておく。次に、取得したマクロブロックの演算量をもとに、復号処理が完了した過去j個のマクロブロックで費やした演算量の平均値を算出する。前記平均値として使用する値は、算術平均値や加重平均値でもよいし、ヒストグラムから最も頻出のマクロブロックの演算量でもよい。その後、前記平均値と次の復号対象となるマクロブロックの演算量の差分を算出する。算出された差分が、ある閾値を超えない場合には前記平均値が代表演算量(P_TYP)として設定され、差分が、ある閾値を超える場合には処理対象マクロブロックの演算量が新たな代表演算量(P_TYP)として設定される。この際、代表演算量(P_TYP)が著しく増加する場合には、復号処理の破綻の虞があるため、マクロブロックの最大演算量(P_MAX)を代表演算量(P_TYP)としてもよい。例えば、代表演算量(P_TYP)を最大演算量(P_MAX)に設定する方法として、最大演算量に設定するための別の閾値を定めておいて、前記差分がその閾値を超えた場合に代表演算量(P_TYP)を最大演算量(P_MAX)に設定するようにする。以上の方法により決定した代表演算量(P_TYP)はメモリ705に記憶される。最後に、周波数算出部704は、上記代表演算量(P_TYP)を用いて、対象マクロブロックの復号処理に使用する動作周波数(f)を式3にて決定する。
f=(MB_all−n)×P_TYP/(T_F−T(n-1))・・・式3
式3における代表演算量(P_TYP)以外のパラメータは、式1と同様である。
式3を用いることにより、処理すべき全ての残りマクロブロックが、最大演算量(P_MAX)ではなく、過去の実際の処理履歴から算出した代表演算量(P_TYP)を持つとした場合の合計演算量と当該フレームに割り当てが可能な残り処理時間から動作周波数(f)が算出されるので、より動作周波数を低下させることが可能となる。また、前記差分の判別結果により代表演算量(P_TYP)を著しく増加させる場合には、最大演算量(P_MAX)を代表演算量(P_TYP)とすることで、残りマクロブロックの全てが、最大演算量(P_MAX)を持つ場合においてもマクロブロック単位での復号処理の合計時間が、1フレームに対する復号に割当てる所定時間(T_F)を超過することはない。したがって、復号処理を途中で破綻させない動作周波数(f)の変更が可能となる。
動作周波数(f)が決定した後は、実施の形態1と同様の方法で制御データ111が生成され、演算部710は制御データ111を制御部105に送る。
メモリ部705は、実施の形態1における図1のメモリ部104の記憶内容に加え、MBタイプから演算量を判別する第1のテーブル104A、MB解析部703が取得した過去j個のマクロブロックタイプ、過去j個のマクロブロックの復号処理に要した演算量及び代表演算量(P_TYP)を記憶する。
制御部105は、実施の形態1における制御部105と同様であり、演算部710から送られた制御データ111に基づいて、復号部107に対して供給する同期クロック信号の周波数と電源電圧を変更する。なお、制御データ111に基づいてクロック信号の周波数と電源電圧を変更するブロックは、復号部107だけでもよいし、タイマ106を除いた、クロック信号を必要とする他のブロックでもよい。
以上説明した実施の形態2により、実際のマクロブロック単位での復号処理によって生ずる余裕時間を把握し、その範囲内で、少なくとも復号部107に供給する同期クロック周波数と電源電圧を変更させて逐次復号処理を進めていくから、動画像復号処理の低消費電力化が実現できる。さらに、実施の形態1において演算に用いたマクロブロックの最大演算量(P_MAX)に代えて代表演算量(P_TYP)を用いることで、各マクロブロックを処理するための動作周波数を実施の形態1と比較して、より低下させることが可能となり、動画像復号処理の低消費電力化が実現できる。
《実施の形態3》
実施の形態3は、実施の形態1又は実施の形態2における制御部105の代わりに、演算部(110、710)から受け取った制御データ111をもとに動作周波数を制御して、固定の電源電圧を出力する制御部を備える、画像処理装置である。制御部以外のブロックは、実施の形態1又は実施の形態2と同様の構成である。実施の形態3における制御部は、クロック信号の周波数として選択可能な一番高い周波数を供給する上で必要な一番高い電圧を電源電圧として、あらかじめ出力しておき、そのうえで演算部(110、710)から受け取った制御データ111をもとに、クロック信号の周波数を制御する。なお、制御データ111に基づいてクロック信号の周波数と電源電圧を変更するブロックは、復号部107だけでもよいし、タイマ106を除いた、クロック信号を必要とする他のブロックでもよい。前記制御部は、例えば、制御データ111に基づいて、発振回路の出力信号を分周した周波数の中からどれかを選択し、クロック信号として出力するクロックジェネレータと、選択可能な一番高い周波数を供給する上で必要な一番高い電圧を電源電圧として出力する電源回路とからなる。
実施の形態3は、実施の形態1又は実施の形態2における制御部105の代わりに、演算部(110、710)から受け取った制御データ111をもとに動作周波数を制御して、固定の電源電圧を出力する制御部を備える、画像処理装置である。制御部以外のブロックは、実施の形態1又は実施の形態2と同様の構成である。実施の形態3における制御部は、クロック信号の周波数として選択可能な一番高い周波数を供給する上で必要な一番高い電圧を電源電圧として、あらかじめ出力しておき、そのうえで演算部(110、710)から受け取った制御データ111をもとに、クロック信号の周波数を制御する。なお、制御データ111に基づいてクロック信号の周波数と電源電圧を変更するブロックは、復号部107だけでもよいし、タイマ106を除いた、クロック信号を必要とする他のブロックでもよい。前記制御部は、例えば、制御データ111に基づいて、発振回路の出力信号を分周した周波数の中からどれかを選択し、クロック信号として出力するクロックジェネレータと、選択可能な一番高い周波数を供給する上で必要な一番高い電圧を電源電圧として出力する電源回路とからなる。
以上の実施の形態3により、電源電圧は固定であるが、マクロブロック単位での動作周波数を変更することが可能となり、動画像復号処理における消費電力の低減を実現することができる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。例えば、本発明はMPEGやH.26X規格に準拠した動画像復号技術だけに適用可能なものではなく、その他の手法による画像処理技術にも広く適用することができる。
10 画像処理装置
70 画像処理装置
100 動画像復号モジュール
101 入力バッファ
102 判別部
103 周波数算出部
104 メモリ部
104A 第1のテーブル
104B 第2のテーブル
105 制御部
106 タイマ
107 復号部
108 復号バッファ
109 出力バッファ
110 演算部
111 制御データ
112 CLK・VDD
700 動画像復号モジュール
703 MB解析部
704 周波数算出部
705 メモリ部
710 演算部
70 画像処理装置
100 動画像復号モジュール
101 入力バッファ
102 判別部
103 周波数算出部
104 メモリ部
104A 第1のテーブル
104B 第2のテーブル
105 制御部
106 タイマ
107 復号部
108 復号バッファ
109 出力バッファ
110 演算部
111 制御データ
112 CLK・VDD
700 動画像復号モジュール
703 MB解析部
704 周波数算出部
705 メモリ部
710 演算部
Claims (11)
- 符号化された動画像データをフレームのピクチャタイプとマクロブロックタイプに従ってマクロブロック単位で復号する復号部と、
少なくとも前記復号部に供給する同期クロック信号の周波数を制御する制御部と、
前記動画像データのフレーム単位でピクチャタイプとマクロブロック数を判別する判別部と、
前記判別部による判別結果と前記復号部による復号処理の進行状態に従って前記制御部に与える制御データを算出する演算部と、を備え、
前記演算部は、1フレームに対する復号に割当てられた所定時間に対して復号処理の進行に従って減少する残り処理時間と前記復号部の同期クロック信号の現在の周波数との関係から得られる余裕時間の範囲内で制御データを変更する、画像処理装置。 - 前記演算部は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成する、請求項1に記載の画像処理装置。
- 前記処理すべきマクロブロックの総数は、当該フレームのマクロブロックの総数から復号処理済マクロブロック数を減算して得られる値である、請求項2に記載の画像処理装置。
- 前記制御データは、前記同期クロック信号の周波数を制御するデータ、または前記復号部に供給する電源電圧と前記周波数を制御するデータである、請求項1乃至3の何れか1項に記載の画像処理装置。
- 前記所定時間は、前記動画像データにおけるフレームレートに基づいて決まる時間である、請求項1乃至4の何れか1項に記載の画像処理装置。
- 前記残り処理時間とは前記所定時間から当該フレームの復号処理の開始からの経過時間を減算して得られる時間である、請求項1乃至5の何れか1項に記載の画像処理装置。
- 前記演算部は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成し、当該生成した制御データを初期値として前記制御部に与え、その後からは、最大演算量となるマクロブロックの演算量に代えて過去の処理済マクロブロックの演算量の平均値から算出する代表演算量と、前記処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定するデータを生成する、請求項1に記載の画像処理装置。
- 前記代表演算量は、過去の処理済マクロブロックの演算量の平均値と次の復号対象となるマクロブロックの演算量の差分がある閾値を超えない場合は、前記平均値を代表演算量とし、前記差分がある閾値を超える場合は、前記次の復号対象となるマクロブロックの演算量を代表演算量とする、請求項7に記載の画像処理装置。
- 符号化された動画像データをマクロブロック単位で復号する画像処理方法であって、前記動画像データのフレーム単位でピクチャタイプとマクロブロック数を判別する第1処理と、
フレームのピクチャタイプとマクロブロックタイプに従ってマクロブロック単位で復号する第2処理と、
前記第1処理による判別結果と前記第2処理の進行状態に従って復号部に与える制御データを算出する第3処理と
前記第3処理で算出した制御データで少なくとも復号部に供給する同期クロック信号の周波数を制御する第4処理と、を含み、
前記第3処理は、1フレームに対する復号に割当てられた所定時間に対して第2処理の進行に従って減少する残り処理時間と前記同期クロック信号の現在の周波数との関係から得られる余裕時間の範囲内で制御データを変更する処理を含む、画像処理方法。 - 前記第3処理は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記第2処理の進行に従って減少する残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成する、請求項9に記載の画像処理方法。
- 前記第3処理は、ピクチャタイプから決まる、最大演算量となるマクロブロックの演算量と、処理すべきマクロブロックの総数と、前記第2処理の進行に従って減少する残り処理時間と、から前記同期クロック信号の周波数を決定する制御データを生成し、当該生成した制御データを初期値とし、その後からは、最大演算量となるマクロブロックの演算量に代えて過去の処理済マクロブロックの演算量の平均値から算出する代表演算量と、前記処理すべきマクロブロックの総数と、前記残り処理時間と、から前記同期クロック信号の周波数を決定するデータを生成する、請求項9に記載の画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009146009A JP2011004205A (ja) | 2009-06-19 | 2009-06-19 | 画像処理装置及び画像処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009146009A JP2011004205A (ja) | 2009-06-19 | 2009-06-19 | 画像処理装置及び画像処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011004205A true JP2011004205A (ja) | 2011-01-06 |
Family
ID=43561774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009146009A Withdrawn JP2011004205A (ja) | 2009-06-19 | 2009-06-19 | 画像処理装置及び画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011004205A (ja) |
-
2009
- 2009-06-19 JP JP2009146009A patent/JP2011004205A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8179976B2 (en) | Control of video decoder for reverse playback operation | |
US7639743B2 (en) | Image decoder and image decoding method and program | |
KR101097636B1 (ko) | 데이터 스트림들의 인코딩시 최적 전력 이용 | |
JP4851911B2 (ja) | 符号化装置、符号化プログラムおよび符号化方法 | |
JP2008282150A (ja) | 信号処理装置及び信号処理システム | |
US20090310678A1 (en) | Image encoding apparatus, method of controlling the same and computer program | |
US11070827B2 (en) | Transmission apparatus, transmission method, and program | |
US7149904B2 (en) | System and method for providing a power control device for a computing unit | |
US20100104010A1 (en) | Real-time rate-control method for video encoder chip | |
US20110069900A1 (en) | Random access image encoding system and method | |
JPWO2004093458A1 (ja) | 動画像符号化又は復号化処理システム及び動画像符号化又は復号化処理方法 | |
JP5149427B2 (ja) | 符号化装置、復号化装置、符復号化システム、符号化方法及び復号化方法 | |
JP2006318420A (ja) | 携帯情報機器用データ処理装置 | |
JP2006148409A (ja) | フレームレート変換方法 | |
US7586426B2 (en) | Image coding apparatus and method thereof | |
TWI445409B (zh) | 影像資料壓縮裝置及方法 | |
JP2011004205A (ja) | 画像処理装置及び画像処理方法 | |
CN115460458B (zh) | 视频丢帧方法和设备 | |
JP6258348B2 (ja) | 表示制御装置 | |
US20120307881A1 (en) | Image coding device, image coding/decoding system, image coding method, and image display method | |
JP4591549B2 (ja) | 再生処理装置、および再生処理方法、並びにプログラム | |
US20170324967A1 (en) | Method for controlling bitstream decoding and associated bitstream decoding circuit | |
US20230079090A1 (en) | Systems and Methods for Multi-Pipe Scheduling During Image Decoding | |
JP2001298734A (ja) | 映像信号符号化方法及びその装置、並びに映像信号符号化プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
WO2013160971A1 (ja) | 半導体集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20120904 |