JPWO2007089014A1 - デジタルvlsi回路およびそれを組み込んだ画像処理システム - Google Patents

デジタルvlsi回路およびそれを組み込んだ画像処理システム Download PDF

Info

Publication number
JPWO2007089014A1
JPWO2007089014A1 JP2007556947A JP2007556947A JPWO2007089014A1 JP WO2007089014 A1 JPWO2007089014 A1 JP WO2007089014A1 JP 2007556947 A JP2007556947 A JP 2007556947A JP 2007556947 A JP2007556947 A JP 2007556947A JP WO2007089014 A1 JPWO2007089014 A1 JP WO2007089014A1
Authority
JP
Japan
Prior art keywords
arithmetic
processing
data
arithmetic processing
pipeline
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.)
Granted
Application number
JP2007556947A
Other languages
English (en)
Other versions
JP4521508B2 (ja
Inventor
雅彦 吉本
雅彦 吉本
川上 健太郎
健太郎 川上
淳 竹村
淳 竹村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kobe University NUC
Original Assignee
Kobe University NUC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kobe University NUC filed Critical Kobe University NUC
Publication of JPWO2007089014A1 publication Critical patent/JPWO2007089014A1/ja
Application granted granted Critical
Publication of JP4521508B2 publication Critical patent/JP4521508B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Power Sources (AREA)

Abstract

要約実際のパイプライン演算処理において、演算器ごとの電力供給を制御しつつ、制約時間内での演算器への電力供給オンオフの切り替えを少なくすることにより低消費電力化を達成することのできるデジタルVLSI回路を提供する。本発明のデジタルVLSI回路は、パイプライン演算処理の各ステージを担い、クロックに同期して演算処理を実行する複数の演算器と、演算器における担当ステージの演算処理の終了を検知する検知手段と、演算器ごとにクロックの供給/停止を制御するクロック供給制御手段とを備え、クロック供給制御手段が、検知手段により演算処理の終了が検知された演算器に対するクロック供給を停止し、検知手段によりすべての演算器における演算処理の終了が検知されれば次のパイプライン演算処理に向けてすべての演算器へのクロック供給を再開するように構成する。

Description

本発明は、低消費電力デジタルVLSI回路、特に、パイプライン演算処理を行なう内部の複数の演算器のごとにクロック供給、電力供給を制御することにより低消費電力化を図ったデジタルVLSI回路、また、動作電源電圧と基板バイアス電圧と動作周波数をフィードバック制御またはフィードフォワード制御を行なうことにより低消費電力化を図ったデジタルVLSI回路に関する。
さらに本発明は、低消費電力デジタルVLSI回路を組み込んだ画像処理システム並びに携帯端末に関する。
近年、通信ネットワークを通じて動画像の送受信を行うことや、動画像を蓄積メディアに蓄積することが広く行なわれている。一般に、動画像は情報量が大きいため、伝送ビットレートの限られた通信路を用いて動画像を伝送する場合、あるいは蓄積容量の限られた蓄積メディアに動画像を蓄積する場合には、動画像を符号化・復号化する技術が必要不可欠である。動画像の符号化・復号化方式として、ISO/IECが標準化を進めているMPEG(Moving Picture Experts Group)やH.26Xがある。これらは動画像を構成する経時的に連続した複数のフレームの符号化又は復号化を行うものであり、動画像の時間的相関、空間的相関を利用した冗長性の削減を行うことにより動画像の情報量を減らして符号化し、符号化された動画像を再度元の動画像に復号化する技術である。
かかる符号化・復号化技術はパーソナルコンピュータやマイクロコンピュータを内蔵する携帯電話等の情報端末機器等に適用されている。
図20は、H.264デコード処理モジュールのブロック図である。
H.264デコード処理モジュールを構築する方法としては専用ハードウェアにより構築する方法と、符号化・復号化の手段を記述したプログラムに基づいて汎用のプロセッサを動作させることにより構築する方法がある。
図21は、図20に示したブロック図に基づき、複数の演算器を用いた専用ハードウェアによりH.264デコード処理モジュールを構築した例である。
差分画像に関する情報としてのビットストリームがビットストリームバッファ1001に受け入れられた後、エントロピーデコード1002(可変長復号化処理)、逆量子化処理1003(逆Q処理)、逆直交変換処理1004(逆T処理)の順に処理が行なわれ、差分画像が生成される。一方、差分画像生成処理と並行して、現在のフレームメモリに展開されている画像を基に予測画像生成処理1005が実行される。この差分画像と予測画像との加算処理1006によりフレーム画像が生成される。
これら演算処理はシーケンシャルにつながっており、これら複数の演算処理を適切に分割してパイプライン演算処理とすることができる。図21に示した演算処理をマクロブロックレベルのパイプライン処理とする場合、図22に示すようなパイプライン分割が考えられる。図22の例では7段のパイプラインに分割されている。
パイプライン演算処理のハードウェア設計においてパイプラインが破綻しないように考慮しておくことが重要である。
そこで、パイプライン分割において、各段のパイプライン処理でもっとも時間がかかってしまった場合のサイクル数を最悪サイクル数Sn(nは自然数)として設計し、各段のパイプライン処理が破綻しないようにそれぞれのパイプラインの処理時間として最悪サイクル数Snを確保せしめておくことが一般的である。
なお、パイプライン分割の設計において、パイプライン全体の処理性能が高くなるように各段のパイプライン処理の最悪サイクル数Snができるだけ均等になるように設計しておくことが好ましい。
つまり以下の(数式1)の式が成立するように設計しておくことが好ましい。
〔数1〕
Si=Sj for anyi,j
ここで、理想的な動画像のデコード処理とは、上記(数式1)を満たし、かつ、すべての演算器の処理性能が上限まで発揮され、常に一定のサイクル数で処理が継続されていくものである。当該一定のサイクル数を最悪サイクル数と設計しておけば、演算器がまったく無駄に遊ぶことなく、演算器の処理性能の上限までパイプライン処理が実行されることとなる。
しかし、実際のパイプライン処理ではそのような理想的な状態はなく、実際のパイプライン処理のサイクル数は、常に最悪サイクル数よりも小さいものとなる。
まず、動画像間の変化の激しさ(動きの激しさ)が小さいフレームについては、処理サイクル数は最悪サイクル数よりも小さいものとなる。なぜならば、動画像符号化・復号化処理は動画像間の変化の激しさ(動きの激しさ)などに従って演算処理量が大きくなるため、あまり動画像間の変化の激しさ(動きの激しさ)が大きくないフレームでは処理サイクル数は小さいものとなるからである。
また、動画像間の変化の激しさ(動きの激しさ)が大きいフレームであっても以下の理由から処理サイクル数は最悪サイクル数よりも小さいものとなる。
(理由1)1マクロブロックに含まれる係数(384個)のうち、逆Q処理が必要な0以外の値を持つ有効係数の数は384個よりも小さい。
(理由2)1マクロブロックに含まれるブロック(24個)のうち、逆T処理が必要な1つ以上の有効係数を含む有効ブロックの数は24個よりも小さい。
(理由3)1マクロブロックに含まれるブロックのうち、Intra予測処理が必要なブロックは24個よりも小さい。また、Intra予測が必要なブロックでも、予測モード(画素値のコピーのみでよい場合と複数の画素から計算しなければならない場合)によって、必要な処理サイクルが変動する。
(理由4)1マクロブロックに含まれるブロックのうち、予測画像と差分画像の加算が必要な有効ブロックの数は24個よりも小さい。
(理由5)1マクロブロックに含まれるブロックのうち、デブロッキングフィルタ処理が必要なブロックの数は24個よりも小さい。
(理由6)1マクロブロックに含まれるブロックのうち、フレームメモリ(FM)への書き込みが必要なブロックの数は24個よりも小さい。
上記理由から動画像間の変化の激しさ(動きの激しさ)が大きいフレームであっても処理サイクル数は最悪サイクル数よりも小さいものとなる。
図23は実際のパイプライン処理における演算器の動作状況を模式的に示すタイムチャートである。図23において、ハッチングを掛けた部分が、実際に演算器が動作状態にある期間を示しており、ハッチングが掛かっていない部分が、演算器が動作していないアイドル状態にある期間を示している。図23では3つの演算処理ステージで構成されるパイプラインを示しているが、パイプラインが3つ以上の演算処理ステージで構成される場合は、演算ステージの数に応じて演算器の個数が増えることになる。動画像データをマクロブロックパイプラインで処理するデジタルVLSI回路の場合、図23のデータnをマクロブロックnと読み替え、ブロックパイプラインで処理するデジタルVLSI回路の場合、ブロックnと読み替える。
図23を見ると、すべての演算器においてハッチングが掛かっていない期間(演算器が動作していないアイドル状態の期間)が生じていることが分かる。
上記のように、パイプラインの演算処理では、実際の演算処理よりも冗長性(余裕)を持たせた設計となっているため、演算器が動作していない冗長なサイクルが発生する。
このパイプラインの演算処理における冗長性(余裕)を利用してデジタルVLSI回路全体の消費電力を下げる工夫としてクロックゲーティングがある(特開平10−020959号公報)。
クロックゲーティングとは、パイプライン演算処理実行中に、動作する必要のない演算器にはクロックを供給せず消費電力を低減する手法である。クロックに同期して動作する演算器においては、クロック系統での電流消費が大きいため、演算処理を実行している演算器のみにクロックを供給するように構成することでデジタルVLSI回路全体の消費電力を低減することができる。図23に示したように、パイプラインの演算処理におけるハッチングが掛かっていない期間は、演算器が動作していないアイドル状態の期間であるので、当該期間においては、演算器へのクロック供給を停止してデジタルVLSI回路全体の消費電力を小さくする。
なお、演算処理を行わない冗長なサイクルの電力供給を制御するという観点から、クロック供給の制御に代え、演算器単位で電力供給(電流供給)のオンオフを制御するものも同様である(特開2005−235203号公報)
図24は図20に示したブロック図に基づき、復号化の手段を記述したプログラムに基づいて汎用プロセッサで動作させること(以下、ソフトウェア処理と記す)によりH.264復号化処理モジュールを構築した場合のフローチャートの例である。図24では1フレームの処理について記載してある。フレームを構成する各マクロブロックに対し、エントロピーデコード、逆Q、逆T、イントラ予測/インター予測、予測画像と差分画像の加算、デブロッキングフィルタ処理、フレームメモリへの書き込みがシーケンシャルに実行され、これらの処理がフレームを構成するマクロブロックの個数分だけ繰り返される。
図26はソフトウェア処理における処理に必要なサイクル数の状況を模式的に示した図である。動画像の符号化/復号化処理は、1フレームの演算処理時間が符号化方式(MPEG、H.26xなど)の規定などによりフレーム処理時間Tfに制約されている。したがって、ソフトウェア処理によって符号化/復号化処理を行う場合、どのような動画像に対しても1フレームの演算処理に必要なサイクル数が時間Tf以内に完了するようにプログラムを構築する。もしくは、プログラムが1フレームの演算処理に必要とするサイクル数が時間Tf以内に収まるようにプログラムを動作させる汎用プロセッサの動作周波数Fmaxを選択する。
しかし、実際に動画像を符号化/復号化処理した場合、前述のごとく説明した理由からフレームに含まれる各マクロブロックの演算処理に必要なサイクル数が変動するため、フレームの演算処理に必要なサイクル数は大きく変動する。このとき、汎用プロセッサの動作周波数をFmaxとしてフレームの演算処理を行った場合、図25に示すようにプロセッサが演算処理を行わない冗長なサイクルが発生する。
ソフトウェア処理での演算処理においては、冗長なサイクルが発生する特徴を利用した消費電力削減手法としてプロセッサの動作電源電圧、基板バイアス電圧、動作周波数を動的に制御する手法がある(例えばIEEE International Symposium on Circuits and System 2001(May,2001)の予稿集pp918-921など)。
動画像における符号化処理は、1フレームの処理時間が符号化方式(MPEGなど)の規定などによりフレーム処理時間Tfに制約されており、そのフレーム処理時間Tf内に1フレームの符号化処理が完了することが必要とされる。逆に言えば、符号化演算処理が当該フレーム処理期間Tf中に完了すれば良いこととなる。
動作電源電圧、基板バイアス電圧、動作周波数の動的制御は、所定の制約時間内に所定数のデータ群の処理完了を保証しながら、なるべくプロセッサの動作周波数を下げ、動作周波数に合わせて電源電圧、基板バイアス電圧を動的に制御することで総合的に低消費電力化を図るものである。動画像処理においては所定の制約時間とは1フレームの時間、例えば15(フレーム/秒)の動画像であれば1フレームの時間は15分の1秒となり、所定数のデータ群とは1フレームに含まれるマクロブロック群と置き換えるとができる。
特開2003−324735号公報 特開2005−210525号公報 IEICE Trans. Fundamentals, Vol.E88-A, No.12 December 2005. "Power-Minimum Frequency/Voltage Cooperative Management Method for VLSI Processor in Leakage-Dominant Technology Era."(K. Kawakamik M. Kanamori, Y. Morita, J. Takemura, M. Miyama, and M. Yoshimoto) IEEE International Symposium on Circuits and System 2001(May,2001)の予稿集pp918-921 " An LSI for Vdd-Hopping and MPEG4 System Based on the Chip"(H. Kawaguchi, G. Zhang, S. Lee, and T. Sakurai)
上記従来のクロックゲーティング手法や、演算器の動作周波数及び動作電源電圧を動的に制御する手法は、デジタルVLSI回路全体の消費電力を低下させる技術として有効な技術ではあるが、さらなる改善の余地がある。
特定の処理に特化して設計されたASIC(Application Specific IC)のようなハードワイヤドロジック回路に対してクロックゲーティング手法用いた場合の改善点の一つとして、フレーム処理期間中において演算器へのクロック供給のオンオフ、演算器の動作電源電圧及び動作周波数の変更回数が多くなり当該変更回数に伴って消費電力が大きくなるという問題点を挙げることができる。また、ソフトウェア処理に適用できる動作電源電圧、基板バイアス電圧、動作周波数を動的に制御する手法は、通常のパイプライン処理化されたハードワイヤドロジック回路には適用できないという問題点を挙げることができる。
演算器の動作状態とアイドル状態が繰り返されるパイプライン動作に対して、従来のクロックゲーティング手法を用いた場合は、演算器単位に図23のハッチングが掛かっていないサイクルにおいてクロックゲーティングを行うこととなるが、所定の制約時間内において演算器へのクロック供給のオンオフが頻繁に繰り返されることになる。ここに改善の余地がある。
また、従来のハードワイヤドロジック回路の設計では、パイプラインを構成する各ステージの実際に処理に必要なサイクル数が最悪サイクル数より小さくなったとしても、パイプライン処理の開始サイクルは設計時に決められたサイクルで固定されているため、すべての演算器がアイドル状態であるサイクルを省略してパイプライン処理を前倒しすることができず、ソフトウェア処理における図25に示すようなサイクル数の大幅な削減ができなかった。図23の例では、例えば10番目のデータが演算器1での処理が開始されるサイクルは1から9番目のデータの処理に必要なサイクル数がどれだけ小さくなろうとも必ず900サイクルとなるため、例えば10番目のデータの演算器1での処理に必要なサイクルが10サイクルとすれば、演算器1において1から10番目のデータの処理に必要な合計サイクル数は100×9+10=910サイクルとなり、実際には1から10番目のデータの処理が最悪サイクル数である場合の100×10=1000サイクルと比較して90サイクルしか削減されないことになる。例えば1920×1088画素で構成されるHDTV解像度の動画像では1フレームに8160個のマクロブロックが含まれるため、8160番目のマクロブロックが演算器1での処理に必要なサイクルが10サイクルであったとすると、この場合1フレームの処理に必要なサイクル数は(100×8159+10)/(100×8160)×100≒0.01%しか削減されない。したがって、ハードワイヤドロジック回路の動作周波数は最大で0.01%しか下げられず、動作周波数・電源電圧、基板バイアス電圧の動的制御による消費電力削減は全く実現できなかったと言える。
本出願人らの研究により、デジタルVLSI回路(汎用プロセッサ、ハードワイヤドロジック回路を含む専用デジタルVLSI回路)において動作周波数・電源電圧、基板バイアス電圧の動的制御をもちいて制約時間内に、あるサイクル数の演算処理を実現する処理の消費電力を削減する場合、高い動作周波数での動作時間を短くすれば短くするほど消費電力が削減されることが分かっている(非特許文献1)。実行されるサイクル数は数式2で表されるため、図5、28、30はいずれも制約時間Tfの間に同一のサイクル数Fmax×Tf/2を実現している。
〔数2〕
(サイクル数)=(動作周波数)×(動作時間)
動作周波数・電源電圧、基板バイアス電圧の動的制御を行う場合、デジタルVLSI回路の動作周波数の制御に合わせて動作電源電圧、基板バイアス電圧も制御される。例えば図5においては、時刻0からTf/2までは動作電源電圧及び基板バイアス電圧は動作周波数fmaxを適切な電力で実現しうる電圧に設定され、時刻Tf/2からTfまでは動作周波数0を適切な電力で実現しうる電圧に設定される。
上記問題点に鑑み、本発明は、実際のパイプライン演算処理において、クロックゲーティング技術を利用しつつ、所定の制約時間での演算器へのクロック供給のオンオフ切り替えを少なくすることにより低消費電力化を達成することのできるデジタルVLSI回路を提供することを目的とする。
また、上記問題点に鑑み、本発明は、実際のパイプライン演算処理において、演算器ごとの電力供給を制御しつつ、所定の制約時間での演算器への電力供給オンオフの切り替えを少なくすることにより低消費電力化を達成することのできるデジタルVLSI回路を提供することを目的とする。
また、上記問題点に鑑み、本発明は、デジタルVLSI回路においてパイプライン処理の開始サイクルを一つ前のパイプライン処理の終了サイクルに合わせて変更することでパイプラインを構成する演算器がアイドル状態である冗長なサイクルを削減することにより生じるサイクル余裕を利用して動作周波数、動作電源電圧、基板バイアス電圧の制御を行うことにより低消費電力化を達成することのできる専用デジタルVLSI回路を提供することを目的とする。
また、本発明のデジタルVLSI回路を組み込んだ画像処理システム、携帯端末を提供することを目的とする。
上記目的を達成するため、本発明の第1のデジタルVLSI回路は、パイプライン演算処理の各ステージを担い、クロックに同期して演算処理を実行する複数の演算器と、前記演算器における担当ステージの演算処理の終了を検知する検知手段と、前記演算器ごとにクロックの供給/停止を制御するクロック供給制御手段とを備え、前記クロック供給制御手段が、前記検知手段により演算処理の終了が検知された前記演算器に対するクロック供給を停止し、前記検知手段によりすべての前記演算器における演算処理の終了が検知されれば次のパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開するように構成されたことを特徴としたものである。
上記構成により、すべての演算器がアイドル状態に入っている期間を省略することができ、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングの開始回数、終了回数を減少させることができ、従来のクロックゲーティングより一層の低消費電力化を図ることができる。
次に、上記第1のデジタルVLSI回路において、前記演算処理にかかるデータが、複数のマクロブロックデータを含み、一定の処理期間(フレーム処理期間)が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、前記演算器が、前記パイプライン演算処理を前記マクロブロックデータ単位で実行し、前記クロック供給制御手段が、前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記検知手段によりすべての前記演算器における演算処理の終了が検知されてもすべての前記演算器に対するクロック供給の停止を継続し、前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする。
上記構成により、すべての演算器がアイドル状態に入っている期間を省略することができ、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングの開始回数、終了回数を減少させることができ、従来のクロックゲーティングより一層の低消費電力化を図ることができる。なお、パイプライン演算処理はマクロブロックデータ単位で行なうものである。
また、上記第1のデジタルVLSI回路において、前記演算処理にかかるデータが、複数のマクロブロックデータ(前記マクロブロックデータは複数個のブロックデータにより構成される)を含み、一定の処理期間(フレーム処理期間)が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、前記演算器が、前記パイプライン演算処理を前記ブロックデータ単位で実行し、前記クロック供給制御手段が、前記フレームデータ中の最後の前記マクロブロックデータ中の最後の前記ブロックデータにかかる演算処理においては、前記検知手段によりすべての前記演算器における演算処理の終了が検知されてもすべての前記演算器に対するクロック供給の停止を継続し、前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする。
なお、マクロブロックに含まれるブロック数は例えば24個とする。
上記構成により、すべての演算器がアイドル状態に入っている期間を省略することができ、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングの開始回数、終了回数を減少させることができ、従来のクロックゲーティングより一層の低消費電力化を図ることができる。なお、パイプライン演算処理はブロックデータ単位で行なうものである。
次に、本発明の第2のデジタルVLSI回路は、パイプライン演算処理の各ステージを担い、クロックに同期して演算処理を実行する複数の演算器と、前記演算器における担当ステージの演算処理の終了を検知する検知手段と、前記演算器ごとにクロックの供給/停止を制御するクロック供給制御手段とを備え、前記クロック供給制御手段が、前記検知手段により、前記パイプライン演算処理において相前後する前段演算器と次段演算器のうち次段演算器の演算処理の終了が先に検知された場合、当該次段演算器に対してクロック供給を停止し、前記次段演算器へのクロック供給の停止後、前記前段演算器の演算処理の終了が検知された場合、次のパイプライン演算処理に向けて前記次段演算器に対してクロック供給を再開するように構成されたことを特徴とする。
なお、上記の第2のデジタルVLSI回路において、前記クロック供給制御手段が、前記検知手段により、前記前段演算器の演算処理の終了が先に検知された場合、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できるまで、当該前段演算器に対してクロック供給を停止し、前記前段演算器へのクロック供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となれば、当該前段演算器に対してクロック供給を再開するように構成されることが好ましい。
上記構成により、パイプライン制御において前後に並ぶ演算器間で処理済みデータの受け渡しができる限り、シームレスにどんどんパイプライン処理を実行し、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングの開始回数、終了回数を減少させることができ、低消費電力化を図ることができる。
次に、上記の第2のデジタルVLSI回路において、前記演算処理にかかるデータが、複数のマクロブロックデータから構成され、処理を完了すべき制約時間(フレーム処理時間)が定められているフレームデータから構成される動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、前記演算器が、前記パイプライン演算処理を前記マクロブロックデータ単位で実行し、前記クロック供給制御手段が、前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記次段演算器へのクロック供給の停止後、前記前段演算器の演算処理の終了が検知されても、前記次段演算器へのクロック供給の停止を継続し、前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする。
また、上記の第2のデジタルVLSI回路において、前記クロック供給制御手段が、前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記前段演算器へのクロック供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となった場合でも、前記前段演算器へのクロック供給の停止を継続し、前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする。
上記構成により、パイプライン制御において前後に並ぶ演算器間で処理済みデータの受け渡しができる限り、シームレスにどんどんパイプライン処理を実行し、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングの開始回数、終了回数を減少させることができ、低消費電力化を図ることができる。なお、パイプライン演算処理はマクロブロックデータ単位で行なうものである。
次に、上記の第2のデジタルVLSI回路において、前記演算処理にかかるデータが、複数のマクロブロックデータ(前記マクロブロックデータは複数個のブロックデータにより構成される)を含み、一定の処理期間(フレーム処理期間)が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、前記演算器が、前記パイプライン演算処理を前記ブロックデータ単位で実行し、前記クロック供給制御手段が、前記フレームデータ中の最後の前記マクロブロックデータ中の最後の前記ブロックデータにかかる演算処理においては、前記次段演算器へのクロック供給の停止後、前記前段演算器の演算処理の終了が検知されても前記次段演算器へのクロック供給の停止を継続し、前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とすることが好ましい。
なお、マクロブロックに含まれるブロック数は例えば24個とする。
また、上記の第2のデジタルVLSI回路において、前記クロック供給制御手段が、前記フレームデータ中の最後の前記マクロブロックデータの最後の前記ブロックデータにかかる演算処理においては、前記前段演算器へのクロック供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となった場合でも、前記前段演算器へのクロック供給の停止を継続し、前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とすることが好ましい。
上記構成により、パイプライン制御において前後に並ぶ演算器間で処理済みデータの受け渡しができる限り、シームレスにどんどんパイプライン処理を実行し、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングの開始回数、終了回数を減少させることができ、低消費電力化を図ることができる。なお、パイプライン演算処理はブロックデータ単位で行なうものである。
なお、上記第1または第2のデジタルVLSI回路において、前記パイプライン演算処理のデータ処理量を前記所定の制約時間ごとにカウントし、次の所定の制約時間の処理時における前記演算器の動作電源電圧と基板バイアス電圧と動作周波数とを決定するフィードバック制御部と、前記演算器の動作電源電圧と基板バイアス電圧と動作周波数とを調整する演算器調整部とを備え、前記演算器の動作電源電圧と基板バイアス電圧と動作周波数に関してフィードバック制御による動的制御を行なうことを特徴とする。
上記構成によれば、フィードバック制御により、適切な演算器の動作電源電圧と基板バイアス電圧と動作周波数の調整を行なうことができる。
また、上記第1または第2のデジタルVLSI回路において、前記パイプライン演算処理に供される前に、前記パイプライン演算処理に供される前記所定の制約時間に含まれるデータ量を検知し、前記パイプライン演算処理にかかる処理負荷を予測する処理負荷予測部と、前記処理負荷予測部による予測に基づき、前記演算器の動作電源電圧と基板バイアス電圧と動作周波数とを決定するフィードフォワード制御部と、前記演算器の動作電源電圧と基板バイアス電圧と動作周波数とを調整する演算器調整部とを備え、前記演算器の動作電源電圧と基板バイアス電圧と動作周波数に関してフィードフォワード制御による動的制御を行なうことを特徴とする。
上記構成によれば、フィードフォワード制御により、適切な演算器の動作電源電圧と基板バイアス電圧と動作周波数の調整を行なうことができる。
上記の第1または第2のデジタルVLSI回路は、クロックゲーティング技術を利用するものであったが、演算器への電力供給のオンオフを制御することによる低消費電力化も可能である。つまり、クロックゲーティングにおいて演算器へのクロック供給を停止するタイミングで、演算器への電力供給を停止することとしても良い。
例えば、本発明の第3のデジタルVLSI回路は、パイプライン演算処理の各ステージを担い、演算処理を実行する複数の演算器と、前記演算器における担当ステージの演算処理の終了を検知する検知手段と、前記演算器ごとに電力の供給/停止を制御する電力供給制御手段とを備え、前記電力供給制御手段が、前記検知手段により演算処理終了が検知された前記演算器に対する電力供給を停止し、前記検知手段によりすべての前記演算器における演算処理終了が検知されれば次のパイプライン演算処理に向けてすべての前記演算器への電力供給を再開するように構成されたことを特徴としている。
上記構成により、同様に、すべての演算器がアイドル状態に入っている期間を省略することができ、低消費電力化を図ることができる。さらに、演算器でのパイプライン演算処理を詰めて行なうことにより電力供給の開始回数、終了回数を減少させることができ、より一層の低消費電力化を図ることができる。
また、本発明の第3のデジタルVLSI回路において、前記演算処理にかかるデータが、複数のマクロブロックデータを含み、一定の処理期間(フレーム処理期間)が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、前記演算器が、前記パイプライン演算処理を前記マクロブロックデータ単位で実行し、前記電力供給制御部が、前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記検知手段によりすべての前記演算器における演算処理の終了が検知されてもすべての前記演算器に対する電力供給の停止を継続し、前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器への電力供給を再開することを特徴とする。
次に、本発明の第4のデジタルVLSI回路は、パイプライン演算処理の各ステージを担い、演算処理を実行する複数の演算器と、前記演算器における担当ステージの演算処理の終了を検知する検知手段と、前記演算器ごとに電力の供給/停止を制御する電力供給制御手段とを備え、前記電力供給制御手段が、前記検知手段により、前記パイプライン演算処理において相前後する前段演算器と次段演算器のうち次段演算器の演算処理の終了が先に検知された場合、当該次段演算器に対して電力供給を停止し、前記次段演算器への電力供給の停止後、前記前段演算器の演算処理の終了が検知された場合、次のパイプライン演算処理に向けて前記次段演算器に対して電力供給を再開するように構成されたことを特徴とする。
また、本発明の第4のデジタルVLSI回路において、前記電力供給制御手段が、前記検知手段により、前記前段演算器の演算処理の終了が先に検知された場合、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できるまで、当該前段演算器に対して電力供給を停止し、前記前段演算器への電力供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となれば、当該前段演算器に対して電力供給を再開するように構成されたことを特徴とする。
上記構成により、パイプライン制御において前後に並ぶ演算器間で処理済みデータの受け渡しができる限り、シームレスにどんどんパイプライン処理を実行し、演算器のアイドル状態の発生を極力抑えることができるので、低消費電力化を図ることができる。また、演算器でのパイプライン演算処理を詰めて行なうことにより電力供給の開始回数、終了回数を減少させることができ、より一層の低消費電力化を図ることができる。
上記第3または第4のデジタルVLSI回路において、上記第1または第2のデジタルVLSI回路と同様の種々の変形を行なうことができる。例えば、クロック供給を電力供給と読み替え、クロック供給制御手段を電力供給制御手段とする。
本発明に係るデジタルVLSI回路によれば、実際のパイプライン演算処理において、クロックゲーティング技術を利用しつつ、制約時間内における演算器へのクロック供給のオンオフ切り替えを少なくすることにより低消費電力化を達成することができる。
また、本発明に係るデジタルVLSI回路によれば、実際のパイプライン演算処理において、演算器ごとの電力供給を制御しつつ、制約時間内における演算器への電力供給オンオフの切り替えを少なくすることにより低消費電力化を達成すること
また、本発明に係るデジタルVLSI回路によれば、実際のパイプライン演算処理において、制約時間内に演算処理を完了しなければならないデータの演算処理に必要なサイクル数を最悪サイクル数から削減することができ、したがって制約時間内のデジタルVLSI回路の動作周波数を低下させても制約時間内に所定の演算処理を完了することができ、したがってデジタルVLSI回路の動作周波数、動作電源電圧、基板バイアス電圧を適切に制御することにより低消費電力化を達成することができる。
本発明の画像処理システムによれば、動画像のデータ処理において低消費電力化が図られており、低消費電力が求められる様々なシステムに対して組み込むことが容易となり、柔軟なシステム設計が可能となる。
本発明の携帯端末によれば、動画像のデータ処理において低消費電力化が図られており、携帯電話のような小型の端末においても動画像の符号化復号化処理を行なうことができ、携帯端末の用途が様々に広がる。
以下、本発明のデジタルVLSI回路の実施例について、図面を参照しながら詳細に説明していく。本発明はパイプライン処理を実行するデジタルVLSI回路に広く適用できるものであるが、ここでは一例として動画像の符号化・復号化を行なう用途に使用するものを示す。
なお、信号のオンオフに関し、以下の実施例ではハイアクティブとし、論理レベルがハイのときにアクティブになるように説明しているが、ローアクティブとし、論理レベルがローのときにアクティブになる構成であっても良い。
図1は本発明の実施例1にかかるデジタルVLSI回路の構成を模式的に示す図である。
演算器10a〜10cが処理終了検知器20と接続された構成となっており、各演算器10と処理終了検知器20は終了フラグライン30と処理開始フラグライン40により接続されている。
演算器は図示の便宜上、演算器1(10a)、演算器2(10b)、演算器3(10c)の3つのみ示しているが、パイプラインの段数に応じて演算器の数を増減した設計とすることができることは言うまでもない。
それぞれの演算器10a〜10cは、パイプライン演算処理の各ステージを担い、クロックに同期して演算処理を実行するものである。動画像の符号化・復号化を行なうパイプライン処理を実行するのであれば、例えば、演算器1(10a)がエントロピーデコードステージを担当し、演算器2(10b)が逆Q処理ステージを担当し、演算器3(10c)が逆T処理ステージを担当するものとする。それ以降のパイプライン処理ステージは図示を省略している。各演算器はシーケンシャルに接続され、前後の演算器の間で処理済のデータを前段から次段へ次々と受け渡していく構成となっている。各演算器で演算処理がなされたデータは各演算器に備えられるバッファに保存され、前後の演算器はこのバッファを介してデータを受け渡す。例えば演算器1で演算処理がなされたデータは演算器1に備えられたバッファに保存され、このバッファから次段の演算器2へデータが受け渡される。バッファはフリップフロップやRAM(Random Access Memory)などで構成される。
図1において、各演算器10a〜10cは処理終了検知器20と接続され、各演算器が担当する演算処理が終了すると演算器は終了フラグを立てる。つまり、処理終了検知器20と接続されている終了フラグライン30にアクティブ信号を出力する。この例ではハイアクティブ論理としてハイ信号を出力している(ローアクティブ論理の場合はロー信号を出力すれば良い)。
この実施例1の構成では、処理終了検知器20が各演算器10の終了フラグが立てられたことを検知することにより、演算器10における担当ステージの演算処理の終了を検知することができる。本実施例1では、処理終了検知器20は演算器10における演算処理の終了を終了フラグを介して検知する仕組みとなっている。なお、この処理終了検知器20は多入力のAND回路となっている。
演算処理が終了した演算器10に対してクロックゲーティングが行なわれる。この実施例では、クロック供給制御手段は、各演算器10は演算処理が終了すると終了フラグを出力するとともにクロックの供給が一時停止されるように構成されている。
図2はクロック供給制御手段の構成例を示す図である。図2に示すように、状態マシンとフリップフロップとAND回路により自動的にクロック供給のオンオフが制御される構成となっている。状態マシン11からフリップフロップ12を介してAND回路13に接続されている。演算器10の出力ラインの一部は状態マシン11に接続され、一部は終了フラグライン30に接続されている。図2(a)は演算器10にクロック供給を開始する際の動作の流れの一例を示す図、図2(b)は演算器10のクロック供給を一時停止する動作の流れの一例を示す図である。いま、図2(a)に示すように、フリップフロップ12がオンとなりAND回路13を通してクロック入力ライン14からクロックが供給されている状態にあるとする。
図2(b)において、演算器10はパイプラインの演算処理が終了すると終了信号を出力する。当該終了信号は状態マシン11を介してフリップフロップ12に入力され、フリップフロップ12を反転させてオフとなる。当該オフ信号によりAND回路13はオフとなる。そのため図2(a)の状態ではクロック入力ライン14から供給されていたクロックの供給が停止する。
上記クロック供給の停止処理は演算器ごとに行なわれる。そのため、終了フラグを出力した演算器10から順々にクロックの供給が停止されて行くこととなる。
図1に戻って説明を続ける。処理終了検知器20は、多入力のAND回路となっており、すべての演算器10の終了フラグを検知した場合(すべての演算器において処理が終了した場合)、次のパイプライン演算処理に向けてすべての演算器に対してクロック供給を再開するよう処理開始フラグライン40に処理開始フラグ信号を出力する構成となっている。処理開始フラグライン40はすべての演算器10に対して並列に接続されており、処理開始フラグ信号はすべての演算器10に対して一斉に通知される仕組みとなっている。各演算器10は処理開始フラグ信号を受け取ると一斉にクロック供給の開始を受け、次のパイプライン処理の演算処理に移る。図2(a)に示すように、処理開始フラグ信号が処理開始フラグライン40から状態マシン11を介してフリップフロップ12に入力され、フリップフロップ12は反転する(オフからオンへ)。図2(b)の状態ではフリップフロップ12がオフでありクロックの供給が停止されていたが、図2(a)の状態ではフリップフロップ12がオンとなりAND回路13を介して演算器10に対してクロック供給が再開する。このクロック供給は演算器10のすべてにおいて一斉に再開される仕組みとなっている。
本実施例1では、上記構成の制御に基づくクロック供給/停止制御の仕組みがクロック供給制御手段となっている。このように、本実施例1の構成によれば、パイプライン処理において担当ステージの演算処理が終了した演算器10から順にクロックの供給が停止して行き、すべての演算器10の演算処理が終了した場合、次のパイプライン処理の演算処理に向けてすべての演算器10へのクロック供給が一斉に再開される。
図3は実施例1のデジタルVLSI回路によるパイプライン処理を示すタイミングチャートである。このタイミングチャートでも演算器は、演算器1(10a)、演算器2(10b)、演算器3(10c)の3つのみ示している。
図3のタイミングチャートにおいて、第1クロックの時点では演算器1(10a)においてデータ(n+2)が処理され、演算器2(10b)においてデータ(n+1)が処理され、演算器3(10c)においてデータ(n)が処理されている。デジタルVLSI回路がマクロブロックパイプラインで構成されていればデータ(n)をマクロブロック(n)で、ブロックパイプラインで構成されていればデータ(n)をブロック(n)と置き換えればよい。
演算器1(10a)におけるデータ(n+2)の処理は、図中の第1クロックで完了している。演算器1(10a)はこの第1クロックで終了フラグを立て終了フラグライン30から処理終了検知器20に対して演算処理終了を通知するとともに、クロックゲーティングを行なう。つまり、図2(b)に示したようにクロックの供給が停止される。
演算器2(10b)におけるデータ(n+1)の処理は、図中の第3クロックで完了している。演算器2はこの第3クロックで終了フラグを立てて終了フラグライン30から処理終了検知器20に対して演算処理終了を通知する。この場合、後述するように処理終了検知器の処理開始信号によりクロックゲーティングに遷移することなく次マクロブロックの処理に移ることとなる。
演算器3(10c)におけるマクロブロック(n)の処理も、図中の第3クロックで完了している。演算器3はこの第3クロックで終了フラグを立てて終了フラグライン30から処理終了検知器20に対して演算処理終了を通知する。この場合も、後述するように処理終了検知器の処理開始信号によりクロックゲーティングに遷移することなく次マクロブロックの処理に移ることとなる。
処理終了検知器20は、演算器1(10a)、演算器2(10b)、演算器3(10c)の終了フラグ信号についてAND処理を行なう。この例では、第3クロックで演算器1(10a)、演算器2(10b)、演算器3(10c)からの終了フラグがすべて揃うこととなりAND条件が成立する。処理終了検知器20は次のパイプライン演算処理に向けてすべての演算器10へのクロック供給を再開するよう処理開始フラグライン40に処理開始フラグ信号を出力する。処理終了検知器20の出力ラインは演算器1(10a)、演算器2(10b)、演算器3(10c)のすべてに対して並列に接続されているので、処理開始フラグ信号は演算器1(10a)、演算器2(10b)、演算器3(10c)のすべてに対して一斉に通知される。演算器1(10a)、演算器2(10b)、演算器3(10c)は処理開始フラグ信号を受け取ると一斉にクロックの供給が再開され、次のパイプライン処理の演算処理に移る。
第4クロックにおいて、演算器10はクロックの供給開始を受けると、まず、終了フラグを非アクティブにする。この例ではハイアクティブであるのでローに切り替える。次に、次のパイプライン処理が開始される。演算器1(10a)はデータ(n+3)に対して処理の実行を開始し、演算器2(10b)はデータ(n+2)に対して処理の実行を開始し、演算器3(10c)はデータ(n+1)に対して処理の実行を開始する。
図4は、実施例1にかかるデジタルVLSI回路におけるパイプライン動作の進行を模式的に示す図である。
縦軸に演算器1、2、3など各演算器を模式的に並べている。演算器1(10a)による処理が終了すれば、演算処理済みデータが演算器2(10b)に受け渡されて演算器2による処理が行なわれ、当該処理が終了すれば、演算処理済みデータが演算器3(10c)に受け渡されて演算器3による処理が行なわれる。このように縦軸方向にパイプライン処理の流れが展開されている。
横軸はタイミングである。第1段目には、従来技術による最悪サイクル数を確保せしめつつパイプライン処理を実行する場合のタイミング(タイミング0〜1000)が表示されている。第2段目には本発明の実施例1にかかるデジタルVLSI回路のパイプライン処理を実行する場合のタイミング(タイミング0〜1000)が表示されている。図4ではハッチングが施されている部分は演算処理が実行されている期間を示しており、ハッチングがない部分は演算処理が終了し、次のデータの処理の実行までの間のクロックゲーティング期間を示している。
図4のタイミングチャートに示すように、各演算器のデータの処理について、その開始タイミングが一斉に揃っていることがわかる。つまり、処理終了検知器20から処理開始フラグ信号が一斉に通知されると当該タイミングを持って各演算器が担当するパイプラインステージの処理を一斉に開始することが分かる。このタイミングは処理終了検知器20から処理開始フラグ信号が出力されたタイミング(第2段目に表示したタイミング)となっている。図4のタイミングチャートを見れば分かるように、演算器10のうち、担当するパイプライン処理が早く終了したものは、他の演算器10におけるパイプライン処理が終了するまでの間、クロックゲーティングが行なわれている。例えば演算器1(10a)では、275サイクルと300サイクルの間、425サイクルと450サイクルの間、575サイクルと600サイクルの間、クロックゲーティングが行なわれる期間がある。
図4のタイミングチャートと図23のタイミングチャートを比較すると明らかなように、従来技術のデジタルVLSI回路におけるパイプライン動作の進行と、本発明の実施例1のデジタルVLSI回路におけるパイプライン動作の進行では、図4と図23のハッチングを施した部分の面積の総合計は同じである。つまり、各演算器10が動作している期間の総合計サイクル数は同じである。同様に、ハッチングを施していない部分の面積の総合計は同じであり、クロックゲーティングの総合計時間が同じものであることが分かる。つまり、クロックゲーティングを実行する時間を長くすることにより得られる低消費電力効果は図4の場合も図23の場合も基本的に同じである。
しかし、本発明の実施例1にかかる図4では、各演算器10での演算処理をできるだけ詰めてシームレスに連続処理として実行することにより、クロックゲーティング開始によるクロックの供給停止の回数と、クロックゲーティング停止によるクロックの供給開始の回数が減少している。例えば、図4では、演算器1がデータ9の処理を完了するまでのパイプライン処理までを見た場合、演算器1におけるクロックゲーティング開始回数が3回(275サイクル、425サイクル、575サイクル)であり、クロックゲーティング停止回数も3回ある(300サイクル、450サイクル、600サイクル)。同様に演算器2に関してはクロックゲーティング開始回数が3回、クロックゲーティング停止回数が3回ある。演算器3に関してもクロックゲーティング開始回数が3回、クロックゲーティング停止回数が3回ある。一方、図23の場合は、1回のパイプライン処理ごとにクロックゲーティングが発生しているので、演算器1がデータ9の処理を完了するまでのパイプライン処理を見た場合、クロックゲーティング開始回数が9回、クロックゲーティング停止回数が9回ある。同様に演算器2についてはクロックゲーティング開始回数が8回、クロックゲーティング停止回数が8回、演算器3についてもクロックゲーティング開始回数が7回、クロックゲーティング停止回数が7回ある。
このように明らかに、クロックゲーティング開始回数およびクロックゲーティング停止回数が減少している。上記では9回のパイプライン処理実行での回数で比較したが、パイプライン処理実行回数が多くなるほどその差は広がり、本発明のデジタルVLSI回路のクロックゲーティング開始回数、停止回数とも、従来のデジタルVLSI回路のクロックゲーティング開始回数、停止回数がより少なくなることが理解されよう。例えば、HDTV画像(1920×1088画素)の1フレームは8160個のマクロブロックで構成されるため、HDTV画像の処理をマクロブロックパイプラインで実施する場合、パイプライン処理の実行回数は8160回となる。
次に、フレームに含まれている最終のマクロブロックのパイプライン処理の終了時の動作について説明する。
演算器10は動画像の符号化・復号化処理をパイプライン演算処理によりマクロブロックデータ単位で実行する演算器である場合、上記のように演算器10におけるパイプライン処理を詰めていくので、1フレームの処理時間中に次のフレームに含まれるマクロブロックの処理を行える時間が存在する。例えば、図4において1フレームに含まれるマクロブロックが8個であるとした場合、演算器1は575サイクルで1フレーム分のマクロブロックの処理が完了し、最終段の演算器3が8番目のマクロブロックの処理を完了する750サイクルまで次フレームに含まれるマクロブロックの処理を行えるサイクルが存在する。しかし、フレームデータで構成されている動画像処理は、1フレームの処理期間が所定の制約時間内に定められているため、演算器1はフレームに含まれる最後のマクロブロックの処理を完了したのち、次のフレームに含まれるマクロブロックの処理は行わない。演算器2についても同様に次のフレームに含まれるマクロブロックの処理は行わない(図28)。
従って、フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、処理終了検知器20によりすべての演算器10における演算処理の終了が検知されてもすべての演算器10に対するクロック供給の停止を継続し、フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての演算器10へのクロック供給を再開する仕組みとする。
例えば、演算器10が最終マクロブロックの演算処理が終了しても終了信号を出力しないという仕組みが考えられる。この場合、処理終了検知器20が別途、フレーム処理期間の終了の通知を制御部(図示せず)から受け、処理開始フラグラインに処理開始フラグ信号を出力すれば良い。
他には例えば、演算器10は最終マクロブロックの演算処理が終了すれば同様に終了信号を出力するが、その際、最終マクロブロックの処理の終了という属性信号を付して出力する仕組みが考えられる。この場合、処理終了検知器20は、フレーム処理期間の終了の通知を制御部(図示せず)から受けるまでは、処理開始フラグラインに処理開始フラグ信号を出力するのを待ち、フレーム処理期間の終了の通知を受けた後、処理開始フラグラインに処理開始フラグ信号を出力すれば良い。
図4に示すように、最終マクロブロックの演算処理を終了した後、クロックゲーティングを継続する期間が設けられる。
上記のように、次のフレーム処理期間の開始まで、まとめてクロックゲーティングが持続的に行なわれているので、クロックゲーティングの開始回数、停止回数としては1回とカウントされる。
以上、クロックゲーティング開始回数およびクロックゲーティング停止回数が減少することにより、より低消費電力化を図ることができる。
なお、上記の実施例1のデジタルVLSI回路は、パイプライン演算処理をマクロブロック単位(マクロブロックデータは複数個のブロックデータにより構成される。なお24個で構成されることが多い)で実行する構成例であったが、ブロック単位で実行する構成とすることも可能である。
ブロック単位でパイプライン処理を実行する場合は、演算器がパイプライン演算処理をブロックデータ単位で実行し、クロック供給制御手段が、フレームデータ中の最後のマクロブロックデータ中の最後のブロックデータにかかる演算処理においては、検知手段によりすべての演算器における演算処理の終了が検知されてもすべての演算器に対するクロック供給の停止を継続し、フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての演算器へのクロック供給を再開するものとする。
以上、本実施例1のデジタルVLSI回路によれば、図4と図23の比較から明らかなように、クロックゲーティング開始回数およびクロックゲーティング停止回数が減少しており、より一層の低消費電力化が図られていることが分かる。
実施例2は、パイプライン処理の前後の演算器同士がハンドシェイク型の連携をもってパイプライン処理の演算処理を詰めて行ない、クロックゲーティング開始回数およびクロックゲーティング停止回数を少なくし、低消費電力化を図ったデジタルVLSI回路の例である。なお、本実施例2では、パイプライン演算処理の単位をマクロブロック単位とする構成として説明するが、ブロック単位とする構成も可能である。
図6は本発明の実施例2にかかるデジタルVLSI回路の構成を模式的に示す図である。
パイプライン演算処理の並びにおいて前後の演算器10a〜10cがシーケンシャルに接続された構成となっており、演算器同士がハンドシェイクすることにより連携する構成となっている。
演算器10は図示の便宜上、演算器1(10a)、演算器2(10b)、演算器3(10c)の3つのみ示しているが、パイプラインの段数に応じて演算器の数を増減した設計とすることができることは言うまでもない。
それぞれの演算器10a〜10cは、パイプライン演算処理の各ステージを担い、クロックに同期して演算処理を実行するものである。ここでは、動画像の符号化・復号化を行なうパイプライン処理を実行するので、例えば、演算器1(10a)がエントロピーデコードステージを担当し、演算器2(10b)が逆Q処理ステージを担当し、演算器3(10c)が逆T処理ステージを担当するものとする。それ以降のパイプライン処理ステージは図示を省略している。各演算器はシーケンシャルに接続され、前後の演算器の間で処理済のデータを前段から次段へ次々と受け渡していく構成となっている。各演算器で演算処理がなされたデータは各演算器に備えられるバッファに保存され、前後の演算器はこのバッファを介してデータを受け渡す。例えば演算器1で演算処理がなされたデータは演算器1に備えられたバッファに保存され、このバッファから次段の演算器2へデータが受け渡される。バッファはフリップフロップやRAM(Random Access Memory)などで構成される。
図6に示すように、前段の演算器10と次段の演算器10は要求信号と受理信号を交換し合い、両者の信号の交換が成立した場合に前段の演算器10から処理済みデータが次段の演算器10に受け渡される仕組みとなっている。
各演算器はパイプライン処理の並びにおいて前後の演算器と受理信号ライン50と要求信号ライン60とデータライン70の3本ずつのラインを介して接続されている。
本実施例2のデジタルVLSI回路の演算器およびクロック供給制御手段は、例えば、以下の7つのルールに従って動作するように構成されている。
(ルール1)当段の演算器10は自らの処理が終了すれば、受理信号ライン50を介して次段の演算器10に対して受理信号を発し、自らが処理した処理済データを受け渡し準備が完了した旨を伝える。
(ルール2)次段の演算器10は自らの処理が終了すれば、要求信号ライン60を介して当段の演算器10に対して要求信号を発し、当段の演算器10からデータの受け入れ準備が完了した旨を伝える。
(ルール3)当段演算器10と次段演算器10が相互にデータの受け渡しに関する状況を交換し合い、両者ともデータの受け渡しの準備が出来ていることを確認できればデータの受け渡しを行なう。
(ルール4)前段演算器10は自らの処理が終了すれば、受理信号ライン50を介して当段の演算器10に対して受理信号を発し、自らが処理した処理済データを受け渡し準備が完了した旨を伝える。
(ルール5)当段の演算器10は自らの処理が終了すれば、要求信号ライン60を介して前段の演算器10に対して要求信号を発し、前段の演算器10からデータの受け入れ準備が完了した旨を伝える。
(ルール6)前段演算器10と当段演算器10が相互にデータの受け渡しに関する状況を交換し合い、両者ともデータの受け渡しの準備が出来ていることを確認できればデータの受け渡しを行なう。
(ルール7)演算器10は処理済データを次段の演算器10に出力するまで、次のデータの処理を開始しない。
上記7つのルールに従って、パイプライン処理の前後の演算器同士がハンドシェイク型の連携をもってパイプライン処理の演算処理を詰めて行ない、クロックゲーティング開始回数およびクロックゲーティング停止回数を少なくし、低消費電力化を図るものである。
クロック供給制御手段は上記ルールを実現する回路構成であれば特に限定されない。図7は、本実施例2にかかる演算器10およびクロック供給制御手段の構成の一例を詳しく示したものである。
図7に示すように、4つの状態マシン(111〜114)と4つのフリップフロップ(121〜124)と3つのAND回路(131〜133)により自動的にクロック供給のオンオフが制御される構成となっている。
当段演算器10と次段演算器10との間の接続関係は以下のようになっている。
受理信号ライン50bは状態マシン113からフリップフロップ123を介してAND回路132に接続されている。また、要求信号ライン60bは状態マシン114からフリップフロップ124を介してAND回路132に接続されている。
受理信号ライン50bと要求信号ライン60bの両者がともにアクティブ(ハイ)になることにより、AND回路132がオンとなる。つまり、AND回路132がオンとなった場合、当該演算器10と次段演算器10との間でハンドシェイクが成立し、両者間でデータの受け渡しが行なわれ得る状態となっている。この状態で上記のルール1、ルール2、ルール3が成立する。次段演算器10が既に処理済みデータを出力済みであればルール7も成立している。
ここで、また、AND回路132の出力が直接演算器10に入力されており、当段演算器10は次段演算器10との間でハンドシェイクが成立し、両者間でデータの受け渡しが行なわれ得る状態となったことを検知できる仕組みとなっており、演算器10は次段演算器10に処理済みデータを受け渡すことができる構成例となっている。
一方、当段演算器10と前段演算器10との間の接続関係は以下のようになっている。
受理信号ライン50aは状態マシン111からフリップフロップ121を介してAND回路131に接続されている。また、要求信号ライン60aは状態マシン112からフリップフロップ122を介してAND回路131に接続されている。
受理信号ライン50aと要求信号ライン60aの両者がともにアクティブ(ハイ)になることにより、AND回路131がオンとなる。つまり、AND回路131がオンとなった場合、当該演算器10と前段演算器10との間でハンドシェイクが成立し、両者間でデータの受け渡しが行なわれ得る状態となっている。この状態で上記のルール4、ルール5、ルール6が成立する。ただし、当段演算器10においてルール7が成立しないと実際のデータの受け渡しは行なわれない。例えば、当段演算器10の処理済みデータが既に次段演算器10に出力済みであればルール7も満たされるので前段演算器と当段演算器との間でデータの受け渡しが行なわれる。
図7に示した構成例の動作の例を2つ示す。
まず、第1の動作例は、当段演算器10のパイプライン処理が先に終了し、次に次段演算器10のパイプライン処理が終了し、最後に前段演算器10のパイプライン処理が終了した場合の流れの場合の動作例である。その流れを図8から図10に分けて説明する。
図8は、当段演算器10のパイプライン処理が終了した場合の処理の流れを示す図である。
当段演算器10は処理が終了すると、当段演算器10は状態マシン113に対して終了信号を発する。状態マシン113は次段演算器10への受理信号ラインに対して接続されており、受理信号レベルをアクティブ(ハイ)とする。また、状態マシン113はフリップフロップ123に信号を出力し、フリップフロップ123を反転させる(オフ→オン)。この状態マシン113はこの状態遷移を維持し、出力状態を保つ。
図9は、図8の状態から次段演算器10のパイプライン処理が終了し、次段演算器10の要求信号を検知した場合の処理の流れを示す図である。
次段演算器10はパイプライン処理が終了すると、当段演算器10への要求信号ラインをアクティブ(ハイ)とし、当段演算器10の状態マシン114に対して要求信号を発する。要求信号が出されたということは次段演算器10は既に処理済みデータを次々段以降の演算器に出力済みであることを意味する。当段演算器10の状態マシン114はフリップフロップ124に信号を出力し、フリップフロップ124を反転させる(オフ→オン)。この状態マシン114はこの状態遷移を維持し、出力状態を保つ。
この図9の状態において、AND回路132は両入力ともアクティブ(ハイ)となっているのでオンとなる。
AND回路132の出力は当段演算器10に入力されており、当段演算器10は、当段演算器10と次段演算器10の間でハンドシェイクが成立し、当段演算器10の処理済みデータを次段に出力する状態となったことを検知するので、当段演算器10の処理済データを次段演算器10に対して出力する。
当段演算器10は処理済データを次段に出力したので、前段から処理済データを受け入れられる状態となったので、状態マシン112を介して前段演算器10に対して要求信号ラインを介して要求信号を出力する。
この図9の後、当段演算器10はクロック供給が停止され、クロックゲーティング状態に入る。
図10は、図9の状態から前段演算器10のデータ処理が終了した場合の処理の流れを示す図である。
前段演算器10は処理が終了すると、当段演算器10への受理信号ラインをアクティブ(ハイ)とし、当段演算器10の状態マシン111に対して受理信号を発する。状態マシン111はフリップフロップ121に信号を出力し、フリップフロップ121を反転させる(オフ→オン)。この状態マシン111はこの状態遷移を維持し、出力状態を保つ。
この図10の状態において、AND回路131は両入力ともアクティブ(ハイ)となっているのでオンとなる。前段演算器10と当段演算器10との間でハンドシェイクが成立していることとなる。なお、前段演算器10と当段演算器10との間でハンドシェイクが成立している場合は当段演算器10は既に処理済みデータを次段に出力済みであるので、前段演算器10から処理済みデータが当段演算器10に受け渡される。
さらに、図10の状態において、AND回路133は、AND回路131からの入力およびAND回路132からの入力ともアクティブ(ハイ)となっているのでオンとなる。
ここで、AND回路133はクロック入力との間ではゲートとして動作し、クロックゲートがアクティブになったので、クロック供給が開始される。
以上が、当段演算器10のデータ処理が先に終了し、次に次段演算器10のデータ処理が終了し、最後に前段演算器10の処理が終了した場合の流れの場合の動作例である。このように、当段演算器10、次段演算器10、前段演算器10の順序にてパイプライン処理が終了する場合、次段演算器10のパイプライン処理終了後、前段演算器10のパイプライン処理が終了するまでの間、クロックゲーティングが行なわれることとなる。
次に、第2の動作例は、当段演算器10のデータ処理が先に終了し、次に前段演算器10のデータ処理が終了し、最後に次段演算器10の処理が終了した場合の流れの場合の動作例である。その流れを図11から図13に分けて説明する。
当段演算器10のデータ処理が終了した場合の図11に示す動作は、図8に示したものと同じであるので、ここでの説明は省略する。
次に、図12は、図11の状態から前段演算器10のデータ処理が終了した場合の処理の流れを示す図である。前段演算器10は処理が終了すると、当段演算器10への受理信号ラインをアクティブ(ハイ)とし、当段演算器10の状態マシン111に対して受理信号を発する。状態マシン111はフリップフロップ121に信号を出力し、フリップフロップ121を反転させる(オフ→オン)。この状態マシン111はこの状態遷移を維持し、出力状態を保つ。この図12の状態では、AND回路131、AND回路132とも一方の信号のみがアクティブ(ハイ)であり、他方は非アクティブ(ロー)となっているのでオフのままであり、前段演算器10と当段演算器10との間でもハンドシェイクが成立しておらず、次段演算器10と当段演算器10との間でもハンドシェイクが成立していないこととなる。
この図12の後、当段演算器10はクロック供給が停止され、クロックゲーティング状態に入る。
次に、図13は、図12の状態から次段演算器10のパイプライン処理が終了し、次段演算器10から要求信号が検知された場合の動作を示す図である。
次段演算器10はパイプライン処理が終了すると、当段演算器10への要求信号ラインをアクティブ(ハイ)とし、当段演算器10の状態マシン114に対して要求信号を発する。要求信号が出されたということは次段演算器10は既に処理済みデータを次々段以降の演算器に出力済みであることを意味する。当段演算器10の状態マシン114はフリップフロップ124に信号を出力し、フリップフロップ124を反転させる(オフ→オン)。この状態マシン114はこの状態遷移を維持し、出力状態を保つ。
この図13の状態において、AND回路132は両入力ともアクティブ(ハイ)となっているのでオンとなる。
AND回路132の出力は当段演算器10に入力されており、当段演算器10は、当段演算器10と次段演算器10の間でハンドシェイクが成立し、当段演算器10の処理済みデータを次段に出力する状態となったことを検知するので、当段演算器10の処理済データを次段演算器10に対して出力する。
当段演算器10は処理済データを次段に出力したので、前段から処理済データを受け入れられる状態となったので、状態マシン112を介して前段演算器10に対して要求信号ラインを介して要求信号を出力する。
前段演算器10は、当段演算器10からの要求信号ラインがアクティブ(ハイ)になったことを受け、当段演算器10に対して処理済みデータを受け渡す。
この図13の状態において、AND回路131は両入力ともアクティブ(ハイ)となっているのでオンとなる。
さらに、図13の状態において、AND回路133は、AND回路131からの入力およびAND回路132からの入力ともアクティブ(ハイ)となっているのでオンとなる。
ここで、AND回路133はクロック入力との間ではゲートとして動作し、クロックゲートがアクティブになったので、クロック供給が開始される。
以上が、当段演算器10のデータ処理が先に終了し、次に前段演算器10のデータ処理が終了し、最後に次段演算器10の処理が終了した場合の流れの場合の動作例である。このように、当段演算器10、前段演算器10、次段演算器10の順序にてパイプライン処理が終了する場合、前段演算器10のパイプライン処理終了後、次段演算器10のパイプライン処理が終了するまでの間、クロックゲーティングが行なわれることとなる。
図14は実施例2のデジタルVLSI回路によるパイプライン処理を示すタイミングチャートである。このタイミングチャートでも演算器は、演算器1(10a)、演算器2(10b)、演算器3(10c)の3つのみ示している。
図14のタイミングチャートにおいて、第1クロックの時点では演算器1(10a)においてデータ(n+2)が処理され、演算器2(10b)においてデータ(n+1)が処理され、演算器3(10c)においてデータ(n)が処理されている。
演算器1(10a)は、データ(n+2)のパイプライン処理を図中の第1クロックで完了しており要求信号を発している。なお、演算器2(10b)から受理信号を第3クロックに受けている。
演算器2(10b)は、データ(n+1)のパイプライン処理を図中の第4クロックで完了しており要求信号を発している。なお、演算器3(10c)から受理信号を第1クロックに受けている。
演算器3(10c)は、データ(n)のパイプライン処理を図中の第2クロックで完了しており要求信号を発している。なお、次段演算器から受理信号を第4クロックに受けている。
図14のタイミングチャートでは、演算器1(10a)では上記の第2の動作例(図11から図13に示した動作例)によりクロックゲーティングが第2クロックから第3クロックまで行なわれている。演算器2(10b)では演算器2(10b)での処理完了前に演算器1(10a)および演算器3(10c)が処理を完了しているため、クロックゲーティングされる期間は存在せず、(n+1)番目のデータの処理が完了した次のクロックで(n+2)番目のデータの処理が開始されている。演算器3(10a)では上記の第1の動作例(図11から図13に示した動作例)によりクロックゲーティングが第3クロックから第4クロックまで行なわれている。
図15は、実施例2にかかるデジタルVLSI回路におけるパイプライン動作の進行を模式的に示す図である。図15に示した各図の要素の説明は図4に示した各図の要素の説明と同様でありここでの説明は省略する。
図15のタイミングチャートに示すように、演算器10のうち、担当するパイプライン処理が早く終了したものは、前後の演算器10におけるパイプライン処理が終了するまでの間、クロックゲーティングが行なわれている。
例えば、演算器2(10b)の500サイクルから525サイクルの間、演算器3(10c)の625サイクルから650サイクルの間にクロックゲーティングが行なわれる期間がある。この例では、前段の演算器の処理が完了した後、当段のクロックゲーティングが解除される上記動作例1の場合(図8から図10に示した動作例)のクロックゲーティングである。
例えば、演算器1(10a)の350サイクルから375サイクルの間と425サイクルと450サイクルの間、演算器2(10b)の275サイクルから300サイクルの間にクロックゲーティングが行なわれる期間がある。この例では、次段の演算器の処理が完了した後、当段の演算器のクロックゲーティングが解除される上記の動作例2の場合(図11から図13に示した動作例)のクロックゲーティングである。
実施例1では、同じパイプラインステージにおいてすべての演算器の処理が終了するまでクロックゲーティング期間が設けられたが、実施例2では、上記のように、同じパイプラインステージにおいて当段演算器の前後の演算器の処理が終了するまでクロックゲーティング期間が設けられているので、実施例2の方が最終マクロブロックのパイプライン処理がより早く終了し、また、クロックゲーティングの開始回数、停止回数が低減される可能性があることが分かる。
なお、上記の実施例2のデジタルVLSI回路は、パイプライン演算処理をマクロブロック単位(マクロブロックデータは複数個のブロックデータにより構成される。なお24個で構成されることが多い)で実行する構成例であったが、ブロック単位で実行する構成とすることも可能である。
ブロック単位でパイプライン処理を実行する場合は、演算器がパイプライン演算処理をブロックデータ単位で実行し、クロック供給制御手段が、フレームデータ中の最後のマクロブロックデータ中の最後のブロックデータにかかる演算処理においては、次段演算器へのクロック供給の停止後、前段演算器の演算処理の終了が検知されても次段演算器へのクロック供給の停止を継続し、フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての演算器へのクロック供給を再開する構成とする。
また、クロック供給制御手段が、フレームデータ中の最後のマクロブロックデータの最後のブロックデータにかかる演算処理においては、前段演算器へのクロック供給の停止後、前段演算器が次段演算器に対して処理済みの演算処理データを出力できる状態となった場合でも、前段演算器へのクロック供給の停止を継続し、フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての演算器へのクロック供給を再開する構成とする。
実施例3のデジタルVLSI回路は、演算器の動作電源電圧と基板バイアス電圧と動作周波数に関してフィードバック制御又はフィードフォワード制御による動的制御を行なうものである。
実施例1、実施例2に示した本発明のパイプラインで構成されるデジタルVLSI回路では従来のパイプラインで構成されるデジタルVLSI回路と比較して、復号化処理対象ビットストリームに含まれる有効ブロック数の大小や有効係数の数の大小に依存して、復号化処理に必要なサイクル数がフレーム単位に大きく変動する。また、符号化処理においても、動き補償処理で実行されるブロックマッチング回数や発生する有効ブロック数の大小や有効係数の大小に依存して、符号化処理に必要なサイクル数がフレーム単位に大きく変動する。したがって、実施例1、実施例2に示した本発明の専用ハードウェア構成のデジタルVLSI回路であれば、フィードバック型の動的制御やフィードフォワード型の動的制御を適用して演算器の動作電源電圧と基板バイアス電圧を適切な値に抑えて消費電力を削減することができる。また、演算器の動作周波数を適切な値に抑えることも消費電力削減には効果的である。
図16は、専用ハードウェア構成のデジタルVLSI回路に対してフィードバック型の動的制御を適用したブロック図である。
処理済マクロブロックカウンタ80は、パイプライン演算処理のデータ処理量をフレームデータごとにカウントする部分である。
フィードバック制御部81は、処理済マクロブロックカウンタ80がカウントした処理済マクロブロックのカウント数に応じて現在処理中のフレームに含まれている未処理のマクロブロックの個数と現在処理中のフレームの処理を完了しなければならない時刻とから演算器の動作周波数を計算する部分である。
演算器調整部82は、フィードバック制御部80の決定した動作周波数に基づき、演算器の動作電源電圧と基板バイアス電圧と動作周波数とを調整する部分である。
図16に示すように、実施例1または実施例2に示したデジタルVLSI回路100に対して、処理済マクロブロックカウンタ80、フィードバック制御部81、演算器調整部82によりフィードバックループを形成することにより、デジタルVLSI回路100中の演算器の動作電源電圧と基板バイアス電圧と動作周波数に関してフィードバック制御による動的制御を行なうことができる。フィードバックループにおいて、処理済マクロブロックカウンタ80、フィードバック制御部81、演算器調整部82の協働によりフィードバック制御する方法には多様な方法がある。処理済マクロブロックカウンタ80のカウントにより経過時間ごとの処理済マクロブロックの数が分かる。例えばパイプラインを実施例1や実施例2で説明したマクロブロックパイプラインで構成した場合、実施例1や実施例2で説明したように処理時間の短いマクロブロックがあればマクロブロックパイプライン処理のサイクル余裕が生まれる。演算器調整部81はこのサイクル余裕時間を利用して演算器の動作電源電圧と基板電圧と動作周波数を下げるように調整する。例えば、パイプラインの各段のマクロブロックの最悪サイクル数をnとし、実際にパイプライン処理に必要なサイクル数がすべてのステージでmサイクルであったとすると(n−m)サイクルの余裕が生まれる。したがって、次のパイプライン処理においてはn+(n−m)=2n−mサイクル分の処理時間がある。次のパイプライン処理に必要なサイクルが最悪サイクル数であってもたかだかnサイクルであるので、次のパイプライン処理は動作周波数を下げても制約時間内に最悪サイクル数を確保することができる。そこで、フィードバック制御部81は演算器調整部82に対し、演算器の動作電源電圧と基板電圧と動作周波数をn/(2n−m)となるように調整させることができる。
図17は、専用ハードウェア構成のデジタルVLSI回路に対してフィードフォワード型の動的制御を適用したブロック図である。
処理負荷予測部90は、パイプライン演算処理に供される前に、パイプライン演算処理に供されるフレームデータに含まれるマクロブロックデータ量を検知し、パイプライン演算処理にかかる処理負荷を予測する部分である。
フィードフォワード制御部91は、処理負荷予測部90による予測に基づき、演算器の動作電源電圧と基板バイアス電圧と動作周波数とを決定する部分である。
演算器調整部92は、フィードフォワード制御部91の決定に基づき、演算器の動作電源電圧と基板バイアス電圧と動作周波数とを調整する部分である。
図17に示すように、実施例1または実施例2に示したデジタルVLSI回路100に対して、処理負荷予測部90、フィードフォワード制御部91、演算器調整部92によりフィードフォワードループを形成することにより、デジタルVLSI回路100中の演算器の動作電源電圧と基板バイアス電圧と動作周波数に関してフィードフォワード制御による動的制御を行なうことができる。処理負荷予測部90、フィードフォワード制御部91、演算器調整部92の協働によりフィードフォワード制御する方法には多様な方法がある。処理負荷予測部90は過去における制約時間内に処理すべきデータの処理に必要であった処理サイクル数を記憶しておく。例えば、MPEGx、H.26xによる動画像処理では制約時間は1フレームの時間であり、制約時間内に処理すべきデータとは1フレームに含まれるすべてのマクロブロックとなる。MPEGxやH.26xによる動画像処理では、処理対象のフレームのフレームタイプとしてIフレーム、Pフレーム、Bフレームのタイプがあるので、処理負荷予測部90は各フレームタイプごとに処理サイクル数を記憶しておく。処理負荷予測部90はこれから処理に供されるフレームのフレームタイプを調べ、フレームタイプに応じた過去の処理サイクル数を処理負荷サイクルとして予測し、フィードフォワード部91に対して予測サイクル数を表わす信号を出力する。フィードフォワード部91は処理負荷予測部90の予測に基づき、演算器調整部92に対して動作電源電圧と基板バイアス電圧と動作周波数を低下させるように制御する。最悪サイクル数をnとし、予測サイクル数がmとすると、m/nに低下するように制御することができる。なお、m/nに低下させると予測が外れ、実際の処理サイクル数がmより大きい場合に制約時間内に処理が完了しないペナルティが発生してしまうので、このリスクを低減させるためにもnよりも大きく見積もる工夫を施すことも可能である。例えば、処理負荷予測部90の予測サイクル数がmのとき、フィードフォワード部91が(1.1)mに調整したり、(1.2)mに調整した上で演算器調整部92に(1.1)m/nや(1.2)m/nに調整させる。
なお、過去の処理サイクル数に基づく予測サイクル数mの予測の方法には幾通りかの方法がある。第1には、同タイプのマクロブロックのうち時間的にもっとも近い過去のものを用いる方法がある。動画では時間的に近いほどマクロブロック同士の処理サイクル数が同程度になることが期待できる。第2には、同タイプのマクロブロックのうち時間的に近い数個のマクロブロックの処理サイクル数の平均値を用いる方法がある。
実施例4は、実施例1、実施例2、実施例3に示したデジタルVLSI回路の構成のクロック供給制御手段に替えて電力供給制御手段とした構成である。低消費電力化はクロックゲーティングの開始回数、停止回数を低減することにより図ることが可能であるが、クロックゲーティングではなく電力供給自体のオンオフを制御する構成とし、その電力供給の開始回数、停止回数を低減することにより図ることによっても同様の効果が得られる。
例えば、実施例1、2、3の説明においてクロック供給に関する部分を電力供給に関する部分に替え、また、タイミングチャートの説明においてクロックゲーティング期間を電力停止期間に替え、対応する図面も書き替えて読めば良い(例えば、クロック入力14を電力供給ライン14と読み替えれば良い)。
実施例5は、上記実施例1、2、3、4に示した本発明のデジタルVLSI回路を組み込んだ応用例である。
図18は本発明のデジタルVLSI回路を組み込んだ画像処理システム200の構成例を示す図である。例えば、本発明のデジタルVLSI回路をマイクロプロセッサに採用したパーソナルコンピュータとして構成したものでも良く、また、本発明のデジタルVLSI回路を画像処理チップとして画像処理ボード中に組み込んでも良い。
図19は本発明のデジタルVLSI回路を組み込んだ携帯端末300の構成例を示す図である。この構成例では携帯電話に組み込んだ例である。携帯電話でも近年は動画像を扱う能力を備えるものが投入されつつある一方、低消費電力化への要求は極めて強く、本発明のデジタルVLSI回路を組み込んだ携帯電話とすれば、低消費電力化を図るとともに動画像の処理速度の向上の両面を図ることが可能となる。
以上、本発明のデジタルVLSI回路によれば、すべての演算器で処理が終了してアイドル状態に入っている期間を省略することができ、さらに、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングまたは電力供給の開始回数、終了回数を減少させることができ、より一層の低消費電力化を図ることができる。
また、本発明のデジタルVLSI回路によれば、パイプライン処理の前後の演算器の処理が終了すれば演算器間で処理済データをやり取りすることによりデータ処理サイクル数(動画像処理の場合はマクロブロック処理やブロック処理のサイクル数)を小さくすることができ、さらに、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングまたは電力供給の開始回数、停止回数を減少させることができ、より一層の低消費電力化を図ることができる。さらに、実際のデータに対する処理に必要となるサイクル数に応じて制約時間内に必要となるサイクル数を大幅に削減することができ、削減されたサイクルによって生ずる時間余裕を用いて動作周波数・電圧の動的制御を行うことにより、よりいっそうの低消費電力化を図ることができる。
本発明の画像処理システムによれば、動画像のデータ処理において低消費電力化が図られており、低消費電力が求められる様々なシステムに対して組み込むことが容易となり、柔軟なシステム設計が可能となる。
本発明の携帯端末によれば、動画像のデータ処理において低消費電力化が図られており、携帯電話のような小型の端末においても動画像の符号化復号化処理を行なうことができ、携帯端末の用途が様々に広がる。
本発明の実施例1にかかるデジタルVLSI回路の構成を模式的に示す図 クロック供給制御手段の構成例を示す図 実施例1のデジタルVLSI回路によるパイプライン処理を示すタイミングチャート 実施例1にかかるデジタルVLSI回路におけるパイプライン動作の進行を模式的に示す図 動作周波数の制御例 本発明の実施例2にかかるデジタルVLSI回路の構成を模式的に示す図 本実施例2にかかる演算器10およびクロック供給制御手段の構成の一例を詳しく示す図 当段演算器10のパイプライン処理が終了した場合の処理の流れを示す図 図8の状態から次段演算器10のパイプライン処理が終了し、次段演算器10の要求信号を検知した場合の処理の流れを示す図 図9の状態から前段演算器10のデータ処理が終了した場合の処理の流れを示す図 当段演算器10のパイプライン処理が終了した場合の処理の流れを示す図 図11の状態から前段演算器10のデータ処理が終了した場合の処理の流れを示す図 図12の状態から次段演算器10のパイプライン処理が終了し、次段演算器10から要求信号が検知された場合の動作を示す図 実施例2のデジタルVLSI回路によるパイプライン処理を示すタイミングチャート 実施例2にかかるデジタルVLSI回路におけるパイプライン動作の進行を模式的に示す図 専用ハードウェア構成のデジタルVLSI回路に対してフィードバック型の動的制御を適用したブロック図 専用ハードウェア構成のデジタルVLSI回路に対してフィードフォワード型の動的制御を適用したブロック図 本発明のデジタルVLSI回路を組み込んだ画像処理システムの構成例を示す図 本発明のデジタルVLSI回路を組み込んだ携帯端末の構成例を示す図 H.264デコード処理モジュールのブロック図 図20に示したブロック図に基づき、複数の演算器を用いた専用ハードウェアによりH.264デコード処理モジュールを構築した例を示す図 パイプライン分割を示す図 従来のパイプライン処理における演算器の動作状況を模式的に示すタイムチャート 動画像処理ソフトウェアのフローチャート 動画像処理ソフトウェアで、処理に必要なサイクルの実際例を示す図 動画像処理ソフトウェアで、処理に必要な最悪サイクル数を示す図 動作周波数の制御例を示すグラフ 実施例2にかかるデジタルVLSI回路におけるパイプライン動作の進行 動作周波数の制御例を示すグラフ
符号の説明
10 演算器
11,111,112,113,114 状態マシン
12,121,122,123,124 フリップフロップ
13,131,132,133 AND回路
14 クロック入力ライン
20 処理終了検知器
30 終了フラグライン
40 処理開始フラグライン
50 受理信号ライン
60 要求信号ライン
70 データライン
80 処理済マクロブロックカウンタ
81 フィードバック制御部
82 演算器調整部
90 処理負荷予測部
91 フィードフォワード制御部
92 演算器調整部
100 デジタルVLSI回路
200 画像処理システム
300 携帯端末

Claims (20)

  1. パイプライン演算処理の各ステージを担い、クロックに同期して演算処理を実行する複数の演算器と、
    前記演算器における担当ステージの演算処理の終了を検知する検知手段と、
    前記演算器ごとにクロックの供給/停止を制御するクロック供給制御手段とを備え、
    前記クロック供給制御手段が、
    前記検知手段により演算処理の終了が検知された前記演算器に対するクロック供給を停止し、
    前記検知手段によりすべての前記演算器における演算処理の終了が検知されれば次のパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開するように構成されたことを特徴としたデジタルVLSI回路。
  2. 前記演算処理にかかるデータが、複数のマクロブロックデータを含み、一定の処理期間(フレーム処理期間)が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
    前記演算器が、前記パイプライン演算処理を前記マクロブロックデータ単位で実行し、
    前記クロック供給制御手段が、前記フレームデータ中の最後の前記マクロブロックデータにかかる演算処理においては、前記検知手段によりすべての前記演算器における演算処理の終了が検知されてもすべての前記演算器に対するクロック供給の停止を継続し、
    前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする請求項1に記載のデジタルVLSI回路。
  3. 前記演算処理にかかるデータが、複数のマクロブロックデータ(前記マクロブロックデータは複数個のブロックデータにより構成される)を含み、一定の処理期間(フレーム処理期間)が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
    前記演算器が、前記パイプライン演算処理を前記ブロックデータ単位で実行し、
    前記クロック供給制御手段が、前記フレームデータ中の最後の前記マクロブロックデータ中の最後の前記ブロックデータにかかる演算処理においては、前記検知手段によりすべての前記演算器における演算処理の終了が検知されてもすべての前記演算器に対するクロック供給の停止を継続し、
    前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする請求項1に記載のデジタルVLSI回路。
  4. パイプライン演算処理の各ステージを担い、クロックに同期して演算処理を実行する複数の演算器と、
    前記演算器における担当ステージの演算処理の終了を検知する検知手段と、
    前記演算器ごとにクロックの供給/停止を制御するクロック供給制御手段とを備え、
    前記クロック供給制御手段が、
    前記検知手段により、前記パイプライン演算処理において相前後する前段演算器と次段演算器のうち次段演算器の演算処理の終了が先に検知された場合、当該次段演算器に対してクロック供給を停止し、
    前記次段演算器へのクロック供給の停止後、前記前段演算器の演算処理の終了が検知された場合、次のパイプライン演算処理に向けて前記次段演算器に対してクロック供給を再開するように構成されたことを特徴とするデジタルVLSI回路。
  5. 前記クロック供給制御手段が、
    前記検知手段により、前記前段演算器の演算処理の終了が先に検知された場合、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できるまで、当該前段演算器に対してクロック供給を停止し、
    前記前段演算器へのクロック供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となれば、当該前段演算器に対してクロック供給を再開するように構成されたことを特徴とする請求項4に記載のデジタルVLSI回路。
  6. 前記演算処理にかかるデータが、複数のマクロブロックデータを含み、一定の処理期間(フレーム処理期間)が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
    前記演算器が、前記パイプライン演算処理を前記マクロブロックデータ単位で実行し、
    前記クロック供給制御手段が、
    前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記次段演算器へのクロック供給の停止後、前記前段演算器の演算処理の終了が検知されても、前記次段演算器へのクロック供給の停止を継続し、
    前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする請求項4または5に記載のデジタルVLSI回路。
  7. 前記クロック供給制御手段が、
    前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記前段演算器へのクロック供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となった場合でも、前記前段演算器へのクロック供給の停止を継続し、
    前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする請求項6に記載のデジタルVLSI回路。
  8. 前記演算処理にかかるデータが、複数のマクロブロックデータ(前記マクロブロックデータは複数個のブロックデータにより構成される)を含み、一定の処理期間(フレーム処理期間)が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
    前記演算器が、前記パイプライン演算処理を前記ブロックデータ単位で実行し、
    前記クロック供給制御手段が、
    前記フレームデータ中の最後の前記マクロブロックデータ中の最後の前記ブロックデータにかかる演算処理においては、前記次段演算器へのクロック供給の停止後、前記前段演算器の演算処理の終了が検知されても前記次段演算器へのクロック供給の停止を継続し、
    前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする請求項4または5に記載のデジタルVLSI回路。
  9. 過去における制約時間内に演算処理すべきデータ量と演算処理に要したサイクル数を記憶するサイクル数記憶手段と、
    次の制約時間内に演算処理すべきデータ量と前記記憶手段に記憶されているサイクル数から、次の制約時刻までに演算処理しなければならないデータの演算処理に必要なサイクル数を予測するサイクル数予測手段と、
    前記サイクル数予測手段で計算されたサイクル数から専用デジタルVLSI回路の動作周波数、動作電源電圧、基板バイアス電圧を決定し決定した動作周波数のクロックとこのクロックに対応した動作電源電圧、基板バイアス電圧を供給する動作周波数・電圧制御手段を備え、
    前記サイクル数記憶手段が制約時間内に演算処理すべきデータ量と当該データに対して演算処理を完了するために要したサイクル数を記憶し、次の制約時間の開始直後において前記動作周波数・電圧制御手段がサイクル数記憶手段に記憶されている過去のデータの演算処理に要したサイクル数と次の制約時刻までに演算処理を完了しなければならないデータ量とから次の制約時刻までの専用デジタルVLSI回路の動作周波数、動作電源電圧、基板バイアス電圧を決定し専用デジタルVLSI回路の動作周波数、動作電源電圧、基板バイアス電圧を決定した値に制御する請求項2、3、6、7、8のいずれか1項に記載のデジタルVLSI回路。
  10. 次の制約時間内に演算処理すべきデータ量とパイプラインを少なくとも1回動作させることによって演算処理が完了するデータ量とから次のパイプライン動作時の専用デジタルVLSI回路の動作周波数、動作電源電圧、基板バイアス電圧を決定し決定した動作周波数のクロックとこのクロックに対応した動作電源電圧、基板バイアス電圧を供給する動作周波数・電圧制御手段を備え、
    前記動作周波数・電圧制御手段が次のパイプライン演算処理において演算処理を行うデータの演算処理に必要なサイクルが想定される最悪サイクル数であっても当該データの演算処理が完了すべき時刻に間に合うように動作周波数を決定し、次のパイプライン演算処理における専用デジタルVLSI回路のクロック、動作電源電圧、基板バイアス電圧を決定した動作周波数とこの動作周波数に対応した動作電源電圧、基板バイアス電圧に制御する請求項2、3、6、7、8のいずれか1項に記載のデジタルVLSI回路。
  11. パイプライン演算処理の各ステージを担い、演算処理を実行する複数の演算器と、
    前記演算器における担当ステージの演算処理の終了を検知する検知手段と、
    前記演算器ごとに電力の供給/停止を制御する電力供給制御手段とを備え、
    前記電力供給制御手段が、
    前記検知手段により演算処理終了が検知された前記演算器に対する電力供給を停止し、
    前記検知手段によりすべての前記演算器における演算処理終了が検知されれば次のパイプライン演算処理に向けてすべての前記演算器への電力供給を再開するように構成されたことを特徴としたデジタルVLSI回路。
  12. 前記演算処理にかかるデータが、複数のマクロブロックデータを含み、一定の処理期間(フレーム処理期間)が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
    前記演算器が、前記パイプライン演算処理を前記マクロブロックデータ単位で実行し、
    前記電力供給制御部が、前記フレームデータ中の最後の前記マクロブロックデータにかかる演算処理においては、前記検知手段によりすべての前記演算器における演算処理の終了が検知されてもすべての前記演算器に対する電力供給の停止を継続し、
    前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器への電力供給を再開することを特徴とする請求項11に記載のデジタルVLSI回路。
  13. 前記演算処理にかかるデータが、複数のマクロブロックデータ(前記マクロブロックデータは複数個のブロックデータにより構成される)を含み、一定の処理期間(フレーム処理期間)が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
    前記演算器が、前記パイプライン演算処理を前記ブロックデータ単位で実行し、
    前記電力供給制御部が、前記フレームデータ中の最後の前記マクロブロックデータ中の最後の前記ブロックデータにかかる演算処理においては、前記検知手段によりすべての前記演算器における演算処理の終了が検知されてもすべての前記演算器に対する電力供給の停止を継続し、
    前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器への電力供給を再開することを特徴とする請求項11に記載のデジタルVLSI回路。
  14. パイプライン演算処理の各ステージを担い、演算処理を実行する複数の演算器と、
    前記演算器における担当ステージの演算処理の終了を検知する検知手段と、
    前記演算器ごとに電力の供給/停止を制御する電力供給制御手段とを備え、
    前記電力供給制御手段が、
    前記検知手段により、前記パイプライン演算処理において相前後する前段演算器と次段演算器のうち次段演算器の演算処理の終了が先に検知された場合、当該次段演算器に対して電力供給を停止し、
    前記次段演算器への電力供給の停止後、前記前段演算器の演算処理の終了が検知された場合、次のパイプライン演算処理に向けて前記次段演算器に対して電力供給を再開するように構成されたことを特徴とするデジタルVLSI回路。
  15. 前記電力供給制御手段が、
    前記検知手段により、前記前段演算器の演算処理の終了が先に検知された場合、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できるまで、当該前段演算器に対して電力供給を停止し、
    前記前段演算器への電力供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となれば、当該前段演算器に対して電力供給を再開するように構成されたことを特徴とする請求項14に記載のデジタルVLSI回路。
  16. 前記演算処理にかかるデータが、複数のマクロブロックデータを含み、一定の処理期間(フレーム処理期間)が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
    前記演算器が、前記パイプライン演算処理を前記マクロブロックデータ単位で実行し、
    前記電力供給制御手段が、
    前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記次段演算器への電力供給の停止後、前記前段演算器の演算処理の終了が検知されても、前記次段演算器への電力供給の停止を継続し、
    前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器への電力供給を再開することを特徴とする請求項14または15に記載のデジタルVLSI回路。
  17. 前記電力供給制御手段が、
    前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記前段演算器への電力供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となった場合でも、前記前段演算器への電力供給の停止を継続し、
    前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器への電力供給を再開することを特徴とする請求項16に記載のデジタルVLSI回路。
  18. 前記演算処理にかかるデータが、複数のマクロブロックデータ(前記マクロブロックデータは複数個のブロックデータにより構成される)を含み、一定の処理期間(フレーム処理期間)が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
    前記演算器が、前記パイプライン演算処理を前記ブロックデータ単位で実行し、
    前記電力供給制御手段が、
    前記フレームデータ中の最後の前記マクロブロックデータ中の最後の前記ブロックデータにかかる演算処理においては、前記次段演算器への電力供給の停止後、前記前段演算器の演算処理の終了が検知されても、前記次段演算器への電力供給の停止を継続し、
    前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器への電力供給を再開することを特徴とする請求項14または15に記載のデジタルVLSI回路。
  19. 過去における制約時間内に演算処理すべきデータ量と演算処理に要したサイクル数を記憶するサイクル数記憶手段と、
    次の制約時間内に演算処理すべきデータ量と前記記憶手段に記憶されているサイクル数から、次の制約時刻までに演算処理しなければならないデータの演算処理に必要なサイクル数を予測するサイクル数予測手段と、
    前記サイクル数予測手段で計算されたサイクル数から専用デジタルVLSI回路の動作周波数、動作電源電圧、基板バイアス電圧を決定し決定した動作周波数のクロックとこのクロックに対応した動作電源電圧、基板バイアス電圧を供給する動作周波数・電圧制御手段を備え、
    前記サイクル数記憶手段が制約時間内に演算処理すべきデータ量と当該データに対して演算処理を完了するために要したサイクル数を記憶し、次の制約時間の開始直後において前記動作周波数・電圧制御手段がサイクル数記憶手段に記憶されている過去のデータの演算処理に要したサイクル数と次の制約時刻までに演算処理を完了しなければならないデータ量とから次の制約時刻までの専用デジタルVLSI回路の動作周波数、動作電源電圧、基板バイアス電圧を決定し専用デジタルVLSI回路の動作周波数、動作電源電圧、基板バイアス電圧を決定した値に制御する請求項12、13、16、17、18のいずれか1項に記載のデジタルVLSI回路。
  20. 次の制約時間内に演算処理すべきデータ量とパイプラインを少なくとも1回動作させることによって演算処理が完了するデータ量とから次のパイプライン動作時の専用デジタルVLSI回路の動作周波数、動作電源電圧、基板バイアス電圧を決定し決定した動作周波数のクロックとこのクロックに対応した動作電源電圧、基板バイアス電圧を供給する動作周波数・電圧制御手段を備え、
    前記動作周波数・電圧制御手段が次のパイプライン演算処理において演算処理を行うデータの演算処理に必要なサイクルが想定される最悪サイクル数であっても当該データの演算処理が完了すべき時刻に間に合うように動作周波数を決定し、次のパイプライン演算処理における専用デジタルVLSI回路のクロック、動作電源電圧、基板バイアス電圧を決定した動作周波数とこの動作周波数に対応した動作電源電圧、基板バイアス電圧に制御する請求項13、14、17、18のいずれか1項に記載のデジタルVLSI回路。
JP2007556947A 2006-02-03 2007-02-05 デジタルvlsi回路およびそれを組み込んだ画像処理システム Expired - Fee Related JP4521508B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006027431 2006-02-03
JP2006027431 2006-02-03
PCT/JP2007/051927 WO2007089014A1 (ja) 2006-02-03 2007-02-05 デジタルvlsi回路およびそれを組み込んだ画像処理システム

Publications (2)

Publication Number Publication Date
JPWO2007089014A1 true JPWO2007089014A1 (ja) 2009-06-25
JP4521508B2 JP4521508B2 (ja) 2010-08-11

Family

ID=38327571

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007556947A Expired - Fee Related JP4521508B2 (ja) 2006-02-03 2007-02-05 デジタルvlsi回路およびそれを組み込んだ画像処理システム

Country Status (3)

Country Link
US (1) US8291256B2 (ja)
JP (1) JP4521508B2 (ja)
WO (1) WO2007089014A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4951739B2 (ja) * 2007-02-07 2012-06-13 国立大学法人 東京大学 半導体集積回路及び動作条件制御方法
JP2009075973A (ja) * 2007-09-21 2009-04-09 Canon Inc 電子機器及び当該電子機器の電力制御方法
US8458497B2 (en) 2007-10-11 2013-06-04 Qualcomm Incorporated Demand based power control in a graphics processing unit
JP5294449B2 (ja) * 2008-07-11 2013-09-18 国立大学法人 筑波大学 ネットワークシステムおよびネットワークシステムにおける電源制御方法
JP5302606B2 (ja) * 2008-09-18 2013-10-02 株式会社ニューフレアテクノロジー 荷電粒子ビーム描画装置および荷電粒子ビーム描画方法
JP5449791B2 (ja) * 2009-02-02 2014-03-19 オリンパス株式会社 データ処理装置および画像処理装置
JP5836585B2 (ja) * 2010-02-09 2015-12-24 キヤノン株式会社 データ処理装置及びその制御方法、プログラム
JP5751819B2 (ja) * 2010-12-16 2015-07-22 キヤノン株式会社 データ処理装置、データ処理方法及びプログラム
US20130004071A1 (en) * 2011-07-01 2013-01-03 Chang Yuh-Lin E Image signal processor architecture optimized for low-power, processing flexibility, and user experience
WO2013100923A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Pipelined image processing sequencer
US10698692B2 (en) * 2016-07-21 2020-06-30 Advanced Micro Devices, Inc. Controlling the operating speed of stages of an asynchronous pipeline

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04143819A (ja) * 1989-12-15 1992-05-18 Hitachi Ltd 消費電力制御方法、半導体集積回路装置およびマイクロプロセツサ
WO2001033351A1 (fr) * 1999-10-29 2001-05-10 Fujitsu Limited Architecture de processeur
JP2002268877A (ja) * 2001-03-08 2002-09-20 Matsushita Electric Ind Co Ltd クロック制御方法及び当該クロック制御方法を用いた情報処理装置
JP2003263311A (ja) * 2002-03-07 2003-09-19 Seiko Epson Corp 並列演算処理装置及び並列演算処理用の命令コードのデータ構造、並びに並列演算処理用の命令コードの生成方法
JP2006500813A (ja) * 2002-09-20 2006-01-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 遅延の予測に基づく適応データ処理スキーム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1157641C (zh) * 1997-09-03 2004-07-14 松下电器产业株式会社 处理器
TWI230855B (en) * 2002-01-05 2005-04-11 Via Tech Inc Transmission line circuit structure saving power consumption and operating method thereof
KR100719360B1 (ko) * 2005-11-03 2007-05-17 삼성전자주식회사 디지털 로직 프로세싱 회로, 그것을 포함하는 데이터 처리 장치, 그것을 포함한 시스템-온 칩, 그것을 포함한 시스템, 그리고 클록 신호 게이팅 방법
US7773236B2 (en) * 2006-06-01 2010-08-10 Toshiba Tec Kabushiki Kaisha Image forming processing circuit and image forming apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04143819A (ja) * 1989-12-15 1992-05-18 Hitachi Ltd 消費電力制御方法、半導体集積回路装置およびマイクロプロセツサ
WO2001033351A1 (fr) * 1999-10-29 2001-05-10 Fujitsu Limited Architecture de processeur
JP2002268877A (ja) * 2001-03-08 2002-09-20 Matsushita Electric Ind Co Ltd クロック制御方法及び当該クロック制御方法を用いた情報処理装置
JP2003263311A (ja) * 2002-03-07 2003-09-19 Seiko Epson Corp 並列演算処理装置及び並列演算処理用の命令コードのデータ構造、並びに並列演算処理用の命令コードの生成方法
JP2006500813A (ja) * 2002-09-20 2006-01-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 遅延の予測に基づく適応データ処理スキーム

Also Published As

Publication number Publication date
US8291256B2 (en) 2012-10-16
WO2007089014A1 (ja) 2007-08-09
US20090024866A1 (en) 2009-01-22
JP4521508B2 (ja) 2010-08-11

Similar Documents

Publication Publication Date Title
JP4521508B2 (ja) デジタルvlsi回路およびそれを組み込んだ画像処理システム
US8106804B2 (en) Video decoder with reduced power consumption and method thereof
US9582060B2 (en) Battery-powered device with reduced power consumption based on an application profile data
US20220377322A1 (en) Intra/inter mode decision for predictive frame encoding
US8213511B2 (en) Video encoder software architecture for VLIW cores incorporating inter prediction and intra prediction
US9317103B2 (en) Method and system for selective power control for a multi-media processor
US20120201308A1 (en) Method for Low Memory Footprint Compressed Video Decoding
Xiao et al. A fine-grained parallel implementation of a H. 264/AVC encoder on a 167-processor computational platform
US8238429B2 (en) Statistically cycle optimized bounding box for high definition video decoding
JP3544524B2 (ja) 画像処理装置
JPWO2004093458A1 (ja) 動画像符号化又は復号化処理システム及び動画像符号化又は復号化処理方法
CN104038766A (zh) 用于以图像帧为基础执行并行视频编码的装置及其方法
JPH11215509A (ja) 動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体
EP2490102A2 (en) Video decodere and/or battery-powered device with reduced power consumption and methods thereof
US20170323454A1 (en) Apparatus and method for efficient motion estimation
JP4676888B2 (ja) データ処理装置
JPH1155668A (ja) 画像符号化装置
Hsieh et al. Algorithm and architecture design of bandwidth-oriented motion estimation for real-time mobile video applications
Kawakami et al. Power and memory bandwidth reduction of an H. 264/AVC HDTV decoder LSI with elastic pipeline architecture
Asif et al. A hybrid scheme based on pipelining and multitasking in mobile application processors for advanced video coding
Landge A configurable motion estimation accelerator for video compression
Nakata et al. Development of full-HD multi-standard video CODEC IP based on heterogeneous multiprocessor architecture

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091002

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100412

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130604

Year of fee payment: 3

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees