(57)【要約】【課題】  パイプライン接続された機能ブロックの内の一部の機能ブロックのスループットが悪化すると、そのブロックの上流の機能ブロックは、処理データを送出することができずウェイトし、ウェイト中の機能ブロックはデータの処理を行えないが、クロックが供給され続けているため電力を消費し続けていることになる。【解決手段】  パイプライン接続された複数の画像処理ユニット１００２１〜１００２６のそれぞれの動作状況を検出する処理モニタ１００１２と、複数の画像処理ユニットのそれぞれに動作用クロック信号を供給する複数のクロック調整回路１００１３と、処理モニタ１００２１による検出結果に応じて、クロック調整回路１００１３により、対応する画像処理ユニットに供給するクロック信号の周波数を変更させるクロックコントロールユニット１００１１とを備える。【選択図】  図１
2006039754.tif 000002
【特許請求の範囲】
【請求項１】
パイプライン接続された複数の画像処理ユニットと、
前記複数の画像処理ユニットのそれぞれの動作状況を検出する検出手段と、
前記複数の画像処理ユニットのそれぞれに動作用クロック信号を供給するクロック供給手段と、
前記検出手段による検出結果に応じて、前記クロック供給手段から対応する画像処理ユニットに供給するクロック信号を制御する制御手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記制御手段は、前記検出手段により待機動作中或は動作が停止していると検出された画像処理ユニットに供給するクロック信号の周波数を低下させることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記制御手段は、前記検出手段によりデータの入力待ちであると検出された画像処理ユニットの前段に接続されている画像処理ユニットに供給するクロック信号の周波数を上げることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記制御手段は、前記検出手段により待機動作中或は動作が停止していると検出された画像処理ユニットへのクロック信号の供給を停止することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記制御手段は、前記検出手段により前記データ処理状況がオーバーフローしていると検出された画像処理ユニットの前段に接続されている画像処理ユニットへのクロック信号の供給を停止することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記制御手段は、前記検出手段により検出された、所定量以上の処理すべきデータを有する画像処理ユニットの数、及び、前記複数の画像処理ユニットのそれぞれの動作状況に応じて、前記クロック供給手段から対応する画像処理ユニットへのクロック信号の供給を制御することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記クロック信号の供給の制御は、前記クロック信号の周波数を低下させる制御であることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記クロック信号の供給の制御は、前記クロック信号の供給を停止させる制御であることを特徴とする請求項６に記載の画像処理装置。
【請求項９】
パイプライン接続された複数の画像処理ユニットと、
前記複数の画像処理ユニットのそれぞれに動作用クロック信号を供給するクロック供給手段と、
前記複数の画像処理ユニットで処理される画像情報に基づいて、前記クロック供給手段から対応する画像処理ユニットに供給するクロック信号を制御する制御手段と、
を有することを特徴とする画像処理装置。
【請求項１０】
パイプライン接続された複数の画像処理ユニットにより画像処理を実行する画像処理装置における画像処理方法であって、
前記複数の画像処理ユニットのそれぞれの動作状況を検出する検出工程と、
前記複数の画像処理ユニットのそれぞれに動作用クロック信号を供給するクロック供給工程と、
前記検出工程での検出結果に応じて、前記クロック供給工程で、対応する画像処理ユニットに供給するクロック信号を制御する制御工程と、
を有することを特徴とする画像処理方法。
【請求項１１】
前記制御工程では、前記検出工程で待機動作中或は動作が停止していると検出された画像処理ユニットに供給するクロック信号の周波数を低下させることを特徴とする請求項１０に記載の画像処理方法。
【請求項１２】
前記制御工程では、前記検出工程でデータの入力待ちであると検出された画像処理ユニットの前段に接続されている画像処理ユニットに供給するクロック信号の周波数を上げることを特徴とする請求項１０に記載の画像処理方法。
【請求項１３】
前記制御工程では、前記検出工程で待機動作中或は動作が停止していると検出された画像処理ユニットへのクロック信号の供給を停止することを特徴とする請求項１０に記載の画像処理方法。
【請求項１４】
前記制御工程では、前記検出工程で前記データ処理状況がオーバーフローしていると検出された画像処理ユニットの前段に接続されている画像処理ユニットへのクロック信号の供給を停止することを特徴とする請求項１０に記載の画像処理方法。
【請求項１５】
前記制御工程は、前記検出工程で検出された、所定量以上の処理すべきデータを有する画像処理ユニットの数、及び、前記複数の画像処理ユニットのそれぞれの動作状況に応じて、画像処理ユニットへのクロック信号の供給を制御することを特徴とする請求項１０に記載の画像処理方法。
【請求項１６】
前記クロック信号の供給の制御は、前記クロック信号の周波数を低下させる制御であることを特徴とする請求項１５に記載の画像処理方法。
【請求項１７】
前記クロック信号の供給の制御は、前記クロック信号の供給を停止させる制御であることを特徴とする請求項１５に記載の画像処理方法。
【請求項１８】
パイプライン接続された複数の画像処理ユニットにより画像処理を実行する画像処理装置における画像処理方法であって、
前記複数の画像処理ユニットのそれぞれに動作用クロック信号を供給するクロック供給工程と、
前記複数の画像処理ユニットで処理される画像情報に基づいて、前記クロック供給工程で、対応する画像処理ユニットに供給するクロック信号を制御する制御工程と、
を有することを特徴とする画像処理方法。
【請求項１９】
請求項１０乃至１８のいずれか１項に記載の画像処理方法を実行することを特徴とするプログラム。
【請求項２０】
請求項１９に記載のプログラムを記憶したことを特徴とする、コンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パイプライン接続された複数の画像処理ユニットにより画像処理を実行する画像処理装置及びその方法に関するものである。
【背景技術】
【０００２】
ＰＤＬからラスタ画像を生成する場合、ＰＤＬによって記述されたベクタ画像を解釈し、そのベクタ画像をラスタ画像に変換する処理が必要である。この変換処理に際して、ＰＤＬを各種描画処理に分割し、その分割した描画処理を順に実行することにより、それぞれが描画処理機能を備える複数の機能ブロック（回路）を用いてパイプラインで処理する形態を採ることができる（特許文献１）。
【特許文献１】特開２００１−５７７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来の技術では、各機能ブロックのデータ処理能力及び処理すべきデータ量が異なるため、一部の機能ブロックのスループットが悪化すると、そのブロックの上流の機能ブロックは、処理データを送出することができずウェイトする。このようなウェイト中の機能ブロックは、データの処理を行えないが、クロックは供給され続けているため電力を消費し続けていることになる。
【０００４】
本発明は上記問題点に鑑みてなされたもので、本願発明の特徴は、パイプライン接続された複数の画像処理ユニットにおける動作状況を検出し、その動作状況に応じて各画像処理ユニットにおける動作を制御する画像処理装置及びその方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
パイプライン接続された複数の画像処理ユニットと、
前記複数の画像処理ユニットのそれぞれの動作状況を検出する検出手段と、
前記複数の画像処理ユニットのそれぞれに動作用クロック信号を供給するクロック供給手段と、
前記検出手段による検出結果に応じて、前記クロック供給手段から対応する画像処理ユニットに供給するクロック信号を制御する制御手段とを有することを特徴とする。
【０００６】
本発明の一態様に係る画像処理方法は以下のような工程を備える。即ち、
パイプライン接続された複数の画像処理ユニットにより画像処理を実行する画像処理装置における画像処理方法であって、
前記複数の画像処理ユニットのそれぞれにおけるデータ処理状況を検出する検出工程と、
前記複数の画像処理ユニットのそれぞれに動作用クロック信号を供給するクロック供給工程と、
前記検出工程で検出されたデータ処理状況により所定量以上のデータを処理している画像処理ユニットの数が所定数以下の場合に、前記所定量以上のデータを処理していない画像処理ユニットへのクロック信号の供給を制御するように制御する制御工程とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、パイプライン接続された複数の画像処理ユニットにおける動作状況に応じて各画像処理ユニットにおける動作を制御することにより、画像処理の速度を低下させずに、かつ消費電力を抑えて画像処理を行うことができる。
【発明を実施するための最良の形態】
【０００８】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。
【０００９】
図１は、本発明の実施の形態１に係る画像処理装置の一例である画像レンダリング装置の構成を説明するブロック図である。
【００１０】
この画像レンダリング装置において、画像処理パイプライン１００２は、ＰＤＬを解析してイメージデータに展開（レンダリング）する処理を、複数の機能ブロック（画像処理ユニット）をパイプライン接続してパイプラインで実行することにより実現している。ＰＤＬをリードし、レンダリングする画像に必要なデータを識別すると表示リスト１００３を生成する。このＰＤＬに含まれる周知の記述言語、グラフィック、ライブラリの呼出し、または他のアプリケーションに固有フォーマットの内、１つ又は複数で表現された記述を表示リスト１００３に変換する。この画像処理パイプライン１００２は、命令実行処理実行ユニット１００２１、エッジ処理ユニット１００２２、優先順位決定ユニット１００２３、塗潰し色決定ユニット１００２４、画素合成ユニット１００２５及び画素出力ユニット１００２６を備えており、これらの各画像処理ユニットは直列に接続されパイプラインを構成している。
【００１１】
命令実行処理ユニット１００２１は、中間言語である表示リスト１００３の命令ストリーム１００３１をリードして処理している。この命令実行処理ユニット１００２１の出力は、エッジ処理ユニット１００２２の入力に接続される。また命令実行処理ユニット１００２１は、クロック制御部１００１の、対応する処理モニタ１００１２と接続される。命令実行処理ユニット１００２１のクロック入力は、クロック制御部１００１の対応するクロック調整回路１００１３と接続される。命令実行処理ユニット１００２１は、エッジ処理ユニット１００２２、優先順位決定ユニット１００２３、塗潰し色決定ユニット１００２４、画素合成ユニット１００２５及び画素出力ユニット１００２６に送出する情報にフォーマットする。
【００１２】
エッジ処理ユニット１００２２は、スキャンラインを走査し、表示リスト１００３中のエッジ情報１００３２からのエッジ情報１００３２及び命令実行処理ユニット１００２１により新たにセットされるエッジリストの処理を行う。これは図形を構成する外形を示す辺に対しての処理である。こうしてエッジ処理ユニット１００２２は、命令実行処理ユニット１００２１から受信した優先順位情報、塗潰し情報を下流の画像処理ユニットへ転送するとともに、エッジ交差情報及びスキャンラインの終了情報を生成して下流の画像処理ユニットへ送出する。このエッジ処理ユニット１００２２の出力は、優先順位決定ユニット１００２３の入力に接続されている。エッジ処理ユニット１００２２は、クロック制御部１００１の対応する処理モニタ１００１２と接続されており、エッジ処理ユニット１００２２のクロック入力は、クロック制御部１００１の対応するクロック調整回路１００１３と接続される。
【００１３】
優先順位決定ユニット１００２３の出力は、塗りつぶし色決定ユニット１００２４の入力に接続される。優先順位決定ユニット１００２３は、クロック制御部１００１の対応する処理モニタ１００１２と接続され、優先順位決定ユニット１００２３のクロック入力は、クロック制御部１００１の対応するクロック調整回路１００１３と接続される。この優先順位決定ユニット１００２３は、優先順位情報から優先順位状態テーブルを生成し、各オブジェクトの優先順位に関する情報を保持する。この優先順位決定ユニット１００２３は、上流の画像処理ユニットから受信した塗潰し情報、スキャンライン終了情報を下流の画像処理ユニットへ転送するとともに、塗潰し優先順位情報、画素終了情報を塗りつぶし色決定ユニット１００２４へ送出する。
【００１４】
塗りつぶし色決定ユニット１００２４の出力は、画素合成ユニット１００２５の入力に接続される。この塗りつぶし色決定ユニット１００２４は、クロック制御部１００１の対応する処理モニタ１００１２と接続され、塗りつぶし色決定ユニット１００２４のクロック入力は、クロック制御部１００１の対応するクロック調整回路１００１３つと接続される。この塗りつぶし色決定ユニット１００２４は、塗りつぶしの色を決定して色合成情報を生成する。この塗りつぶし色決定ユニット１００２４は、色合成情報、画素終了情報及びスキャンライン終了情報を画素合成ユニット１００２５へ送出する。
【００１５】
画素合成ユニット１００２５は、塗りつぶし色決定ユニット１００２４から受信した情報から画素を合成して画素出力ユニット１００２６へ送出する。この画素合成ユニット１００２５の出力は、画素出力ユニット１００２６の入力に接続される。画素合成ユニット１００２５は、クロック制御部１００１の対応する処理モニタ１００１２と接続され、画素合成ユニット１００２５のクロック入力は、クロック制御部１００１の対応するクロック調整回路１００１３と接続される。
【００１６】
画素出力ユニット１００２６は、画素合成ユニット１００２５から受信した画素データをプリンタなどの出力制御部２００１４（図２）へ出力する。この画素出力ユニット１００２６は、クロック制御部１００１の対応する処理モニタ１００１２と接続され、画素出力ユニット１００２６のクロック入力は、クロック制御部１００１の対応するクロック調整回路１００１３と接続される。
【００１７】
クロック制御部１００１は、上述した画像処理パイプライン１００２の各画像処理ユニットの処理を、それぞれ対応する処理モニタ１００１２によりモニタ（観測）するとともに、各処理ユニットに対して、それぞれ対応するクロック調整回路１００１３から動作用のクロックを供給している。クロック制御部１００１は、クロックコントロールユニット１００１１と、各処理ユニットに対応して、処理モニタ１００１２及びクロック調整回路１００１３を備えている。
【００１８】
クロックコントロールユニット１００１１は、各処理モニタ１００１２からの、各処理ユニットにおける処理の観測結果を基に、各処理ユニットに供給するクロックの調整量を決定する。即ち、各処理モニタ１００１２によるモニタ結果により、処理を行っていない画像処理ユニットが存在する場合には、それに供給するクロックの調整量を決定し、クロック調整回路１００１３を介して、その画像処理ユニットの動作クロックを変更している。クロックコントロールユニット１００１１は、プログラマブルに各処理モニタ１００１２及びクロック調整回路１００１３の動作を開始及び停止させることが可能である。
【００１９】
処理モニタ１００１２は、それぞれ対応する画像処理ユニットの処理動作を観測（モニタ）して、それぞれ各画像処理ユニットの処理動作を観測し、その画像処理ユニットが処理動作を実行していない場合、クロックコントロールユニット１００１１へその旨を通知する。この実施の形態では、処理モニタ１００１２は、画像処理パイプライン１００２が備える画像処理ユニットと同じ数だけ存在している。
【００２０】
尚、各処理モニタ１００１２は、各ユニットと接続するバスのビジー信号を観測し、それぞれ対応する画像処理ユニットの動作を検知することも可能である。また各処理モニタ１００１２は、それぞれ対応する画像処理ユニットが出力するためのデータを保持しているかどうかをも検出することができる。
【００２１】
各クロック調整回路１００１３は、クロックコントロールユニット１００１１により決定されたクロック調整量に従い、対応する画像処理ユニットの動作クロックを変更する。ここでクロック調整回路１００１３は、画像処理パイプライン１００２が有する画像処理ユニットの数と同じ数だけ存在している。尚、このクロック調整回路１００１３として、クロック分周回路、クロック逓倍回路を用いることも可能である。
【００２２】
図２は、本実施の形態に係るＰＤＬ処理システムを概略的に示す図である。
【００２３】
このシステムは、プロセッサ２００１１、ＲＡＭ２００１２、ＲＯＭ２００１３、プリンタ出力制御部２００１４、通信制御部２００１５及び上述の画像レンダリング装置２００１６を備えている。これら構成要素は、バス２００１７を介して相互に接続されている。通信制御部２００１５は、イーサネット（登録商標）などの回線を介してホストコンピュータ２００１８と接続される。
【００２４】
図３は、本実施の形態に係る画像レンダリング装置におけるＰＤＬ処理を説明するフローチャートである。
【００２５】
ステップＳ２００において、ホストコンピュータ２００１８からイーサネット（登録商標）などの回線を介してＰＤＬが通信制御部２００１５へ送られる。通信制御部２００１５は、この受信したＰＤＬをＲＡＭ２００１２へ格納する。ＰＤＬは、ページ内の任意の位置の画像、図形、文字を表現する描画命令及びデータを配置する命令、データ列から構成されているため、プリンタへ出力して印刷するためには、ＰＤＬをラスタ画像へ変換する必要がある。ＲＡＭ２００１２に格納されたＰＤＬデータは、一度、より画像に変換しやすい中間言語である表示リストを生成するのに用いられる。
【００２６】
プロセッサ２００１１は、ＲＡＭ２００１２に格納されたＰＤＬを読み出し、レンダリング行う画像に必要なデータを識別すると表示リスト１００３を生成する（ステップＳ２０１）。このステップＳ２０１では、ＰＤＬに含まれる周知の記述言語、グラフィック・ライブラリの呼出し、または他のアプリケーションに固有フォーマットの内、１つ又は複数で表現された記述を表示リスト１００３に変換する。表示リスト１００３は、通常、ＲＡＭ２００１２に格納される。この表示リスト１００３には複数の構成要素を含めることができ、これには命令ストリーム１００３１、エッジ情報１００３２及びラスタイメージデータ１００３３がある（ステップＳ２０２）。この表示リスト１００３は、画像レンダリング装置２００１５によって読み取られる。この画像レンダリング装置２００１５は表示リスト１００３をラスタ画素のストリームに変換する（Ｓ２０３）。そしてステップＳ２０４で、この画素ストリームを、例えばプリンタなどの別の出力装置に転送して印刷或は表示出力する。
【００２７】
図４は、本実施の形態１に係る画像レンダリング装置におけるクロック周波数の調整手順を説明するフローチャートである。
【００２８】
まずステップＳ１０１で、ＰＤＬの処理が開始されると、表示リスト１００３が生成される。表示リスト１００３の生成が終了すると、ステップＳ１０２で、画像レンダリング装置において画像のレンダリングが開始される。そして命令実行処理ユニット１００２１が表示リスト１００３の読み出しを開始すると、クロックコントロールユニット１００１１は、ステップＳ１０３で、各処理モニタ１００１３の動作を開始し、各画像処理ユニットの観測（モニタ）を開始する。
【００２９】
次にステップＳ１０４で、各処理モニタ１００１３は、それぞれ対応する画像処理ユニットの観測を行い、処理を実行していないユニットがあるかどうかをクロックコントロールユニット１００１１へ通知する。ステップＳ１０４で、処理を実行していない処理ユニットが無いときはステップＳ１０５に進み、ＰＤＬのページの終わりかどうか、即ち、画像の最後までレンダリング処理が行われたかどうかを判定し、そうでない時はステップＳ１０４に戻って画像処理ユニットの観測を続ける。またステップＳ１０５で、画像の最後までレンダリング処理が行われていればステップＳ１１０に進み、クロックコントローラ１００１１は、各処理モニタ１００１３の動作を終了する。そしてステップＳ１１１で、画像レンダリング処理を終了してＰＤＬデータの処理を終了する。
【００３０】
次に、処理を実行していない処理ユニットが検知された場合について説明する。
【００３１】
ステップＳ１０４で、処理モニタ１００１３により、処理を実行していないユニットが検出されるとステップＳ１０６に進み、そのユニットが出力待ちのデータを保持しているかどうか判断する。出力待ちのデータが保持されている場合はステップＳ１０８に進み、クロックコントロールユニット１００１１は、その処理ユニットの後段の処理ユニットの処理速度が遅いため処理済みのデータを出力できないと判断し、その出力待ちの処理ユニットに供給しているクロックの調整量を決定する。具体的には、その処理ユニットの現在の動作クロック周波数に最も近く、かつ現在の動作クロックの周波数もより低い周波数に決定する。そしてクロックコントロールユニット１００１１は、クロック調整回路１００１３に、その決定されたクロックの調整量を通知し、クロック調整回路１００１３により、そのユニットに供給するクロックの周波数を変更させる。そしてステップＳ１０５に進む。
【００３２】
一方ステップＳ１０６で、その処理ユニットに出力待ちのデータが保持されていない場合はステップＳ１０７に進み、前段の処理ユニットが動作中かどうか判断を行う。前段の処理ユニットが処理動作を実行していなければステップＳ１０５に進み、前述の処理を実行する。
【００３３】
またステップＳ１０７で、前段の画像処理ユニットが処理動作を実行している場合はステップＳ１０９に進み、クロックコントロールユニット１００１１は、前段の画像処理ユニットの処理速度が遅いため、この処理ユニットが処理すべきデータを受信できず、何も実行できないものと判断し、前段の処理ユニットのクロックの調整量を決定する。具体的には、前段の画像処理ユニットのクロックの周波数を、レンダリング動作開始時のクロックの周波数へ戻すように、その処理ユニットに対応するクロック調整回路１００１３に対してクロックの調整量を通知する。これによりクロック調整回路１００１３は、その処理ユニットに供給するクロックの周波数を元に戻す（上げる）ように変更する。そしてステップＳ１０５に進み、前述の処理を実行する。
【００３４】
以上説明したように本実施の形態１によれば、画像レンダリング装置を構成する各画像処理ユニットにおける処理の状況を観測するモニタ部、及び各処理ユニットへ供給するクロックの周波数を調整する調整回路を設け、処理が停止しているか、待ちの状態にある処理ユニットを検出し、その処理ユニット、或はその処理ユニットの前段の処理ユニットへ供給されるクロックの周波数を低下させるようにしたため、以下のような効果が得られる。
（１）後段の画像処理ユニットの動作に起因して、現処理ユニットにおける処理が停止或は待機している場合は、その停止或は待機状態にある処理ユニットに供給しているクロックの周波数を低下させる。これにより、その処理ユニットにおける消費電力を低下させることができる。尚、この場合、レンダリング処理全体の速度に影響を与える画像処理ユニットは後段の画像処理ユニットであるため、前段の処理ユニットのクロックの周波数を低下させても、全体としての画像処理速度に影響を与えない。
（２）前段の画像処理ユニットの動作に起因して、現処理ユニットにおける処理が停止或は待機状態にある場合は、前段の画像処理ユニットに供給されているクロックの周波数を元の周波数に戻す。この場合、動作開始時のクロックの周波数以上に、前段の画像処理ユニットのクロックの周波数を上げないので、全体としての消費電力が規定量を超えることはない。
（３）各処理ユニットへのクロックの供給を停止しないため、レンダリングデータの変化により、画像処理ユニットの処理状態が変化した場合に速やかに対応できる。また、画像レンダリング処理を一切止めることがない。
（４）観測モニタ及び周波数調整回路をプログラマブルに選択でき、ユーザによる細かな設定が可能である。
【００３５】
［実施の形態２］
図５は、本発明の実施の形態２に係る画像レンダリング装置の構成を説明するブロック図で、前述の図１と共通する部分は同じ記号で示している。
【００３６】
図において、クロック制御部２０１は、画像処理パイプライン１００２の各画像処理ユニットにおける処理を観測し、各画像処理ユニットに供給するクロックを制御している。クロック制御部２０１は、クロックコントロールユニット２１１及び、各処理ユニットに対応してクロック調整回路２１３を備えている。
【００３７】
クロックコントロールユニット２１１は、命令実行処理ユニット１００２１から転送されるクロック制御命令２１４を基に、各クロック調整回路２１３に出力するクロック調整量を決定し、クロック調整回路２１３を介して、それぞれ対応する画像処理ユニットの動作クロックを変更する。クロック調整回路２１３は、クロックコントロールユニット２１１により決定されたクロックの調整量に従い、それぞれ対応する各画像処理ユニットの動作クロックを変更する。クロック調整回路２１３は、画像処理パイプライン１００２が備える画像処理ユニットの数と同じ数だけ存在する。尚、このクロック調整回路２１３として、クロック分周回路、クロック逓倍回路を用いることも可能である。
【００３８】
表示リスト１００３及び画像処理パイプライン１００２は、前述の実施の形態１と同じで構成である。
【００３９】
またＰＤＬの処理手順は、基本的には前述の実施の形態１（図３）と略同様であるが、命令実行処理ユニット１００２１がクロック制御命令をリードした場合には、クロックコントロールユニット２１１に該クロック制御命令を転送し、それ以外の命令はエッジ処理ユニット１００２２に転送する点が異なっている。
【００４０】
以下、図６のフローチャートに従って本実施の形態２に係るクロック周波数の調整手順について説明する。
【００４１】
図６は、本発明の実施の形態２に係る画像レンダリング装置におけるクロック周波数の調整処理を説明するフローチャートである。
【００４２】
ＰＤＬの処理が開始されると、まずステップＳ３０１で、ＰＤＬが読み込まれる。次にステップＳ３０２で、表示リスト１００３が生成される。この表示リスト１００３の生成過程、又は生成終了後に、別途作成された各命令の処理時間情報が読み込まれ、画像処理パイプライン１００２の各処理ユニットのレンダリング中の負荷の遷移を解析する。この解析の結果、ボトルネックとなる処理ユニットが存在する場合には、その処理ユニットによる待ち時間、或は待機期間中、それ以外の処理ユニットに供給されるクロックの周波数を調整するためのクロック制御命令が生成される（ステップＳ３０３）。そしてステップＳ３０４で、画像レンダリング装置において画像のレンダリングが開始される。
【００４３】
このステップＳ３０４におけるレンダリング処理の詳細を説明する。
【００４４】
ステップＳ３１０で、命令実行処理ユニット１００２１が、表示リスト１００３の読み出しを開始する。この状態で、クロックコントロールユニット２１１は、命令実行処理ユニット１００２１から転送される命令の待ち状態になる。尚、命令実行処理ユニット１００２１が読み出した命令列にクロック制御命令２１４が含まれていない場合は、このクロック制御命令２１４はクロックコントロールユニット２１１に転送されず、クロックコントロールユニット２１１は、各処理ユニットに対してデフォルトの周波数でクロックを供給するように制御する。
【００４５】
ステップＳ３１１では、命令実行処理ユニット１００２１は、読み込んだ命令がクロック制御命令２１４かどうかを調べ、そうでなければ、その命令（レンダリング命令）を後段のエッジ処理ユニット１００２２へ転送してレンダリング処理を実行させる（ステップＳ３１２）。
【００４６】
一方、ステップＳ３１１で、クロック制御命令２１４が含まれているとステップＳ３１３に進み、そのクロック制御命令２１４をクロックコントロールユニット２１１へ転送する。これによりクロックコントロールユニット２１１は、その命令実行処理ユニット１００２１からのクロック制御命令２１４に基づいて、画像処理パイプライン１００２の対象となる画像処理ユニットに対するクロックの周波数を調整すべく、クロック調整回路１００１３に対して、その画像処理ユニットの動作クロックを変更するように指示する。こうしてステップＳ３１２或はステップＳ３１３を実行するとステップＳ３１４に進み、命令ストリーム中に残り命令がなくなったら処理を終了する。
【００４７】
以上説明したように本実施の形態２によれば、表示リストを生成する際、又は生成した後に、命令ストリームと画像処理ユニットの処理速度の情報とからボトルネックとなる画像処理ユニットとその期間を推定してクロック制御情報を生成することにより、レンダリング中にクロック制御情報に基いて各画像処理ユニットに供給するクロック周波数を調整できる。これにより以下のような効果が得られる。
（１）後段の画像処理ユニットの動作に起因して処理が停止或は待機している場合は、その画像処理ユニットに供給するクロックの周波数を低下させて消費電力を低下させる。この場合、レンダリング処理全体の速度に影響を与える画像処理ユニットは後段の画像処理ユニットであるため、その動作が停止或は待機状態のクロックの周波数を変更しても、画像処理全体の処理速度に影響を与えることがない。
（２）前段の画像処理ユニットの動作に起因して処理が停止或は待機している場合は、前段の画像処理ユニットに供給しているクロックの周波数を上げるか、或は動作開始時の周波数に戻す。
（３）各処理ユニットへのクロックの供給を停止しないため、レンダリングデータの変化により、画像処理ユニットの処理状態が変化した場合でも速やかに対応できる。
（４）クロック制御情報はソフトウェアによって生成可能であり、周波数の変更タイミングの修正が容易であるとともに、単純なハードウェア構成によってクロックの周波数の変更タイミング制御を実行できる。
【００４８】
［実施の形態３］
図７は、本発明の実施の形態３に係る画像処理装置の構成を説明するブロック図である。尚、図７は本実施の形態３に係る主要部の構成例を示したもので、それ以外の部分は省略して示している。
【００４９】
この画像処理装置は、５つの機能回路ブロック１〜５と、クロック制御ブロック１１とを備えている。各機能回路ブロックは、接続された機能回路ブロックからコマンドを受け取るためのコマンドバッファ（６〜１０）を備える。これら各コマンドバッファは、クロック制御ブロック１１に、各バッファの状態を通知する制御線１２〜１６のそれぞれと接続されている。プロセッサ２０は、これら機能回路ブロックを用いた画像処理全体の動作を制御しており、システムメモリ２１は、このプロセッサ２０の制御プログラムや各種データを記憶している。尚、これら各機能回路ブロックは、前述の画像処理パイプライン１００２の各画像処理ユニットであっても良い。
【００５０】
図８は、実施の形態３に係るクロック制御ブロック１１と各機能回路ブロックとの接続を説明するブロック図である。
【００５１】
コマンドバッファ６〜１０のそれぞれは、クロック制御ブロック１１の、それぞれ対応する処理量検知部（１０１〜１０５）と接続されている。これら各処理量検知部による検知結果は、クロック動作計算部１１１に入力される。
【００５２】
クロック動作計算部１１１は、各処理量検知部の入力から、その機能回路ブロックに供給するクロックの出力を停止／供給するように制御している。クロック動作計算部１１１によって、ある機能回路ブロックへのクロックの供給状態を変更する場合、各機能回路ブロックに接続されるクロック制御部１０６〜１１０にクロックの供給／停止信号が送られる。クロック制御部１０６〜１１０のそれぞれは、図８中のクロック（ＣＬＫ）を生成するクロック生成回路（不図示）に接続されている。この動作をクロック制御部１０６の場合で説明すると、機能回路ブロック１にクロックを供給する場合は、フリップフロップ１１２をセットする。これによりＡＮＤ回路１１３の一方の入力がハイレベルになり、クロックはこのＡＮＤ回路１１３を通して機能回路ブロック１に供給される。一方、機能回路ブロック１にクロックを供給しない場合は、フリップフロップ１１２をリセットする。これによりＡＮＤ回路１１３の一方の入力がロウレベルになりＡＮＤ回路１１３の出力はロウレベルのままとなり、機能回路ブロック１にクロックが供給されなくなる。
【００５３】
各処理量検知部は、それぞれ対応するコマンドバッファの状態を監視しており、コマンドバッファが一杯になって詰まった状態の場合には、その詰まったコマンドバッファの直前の機能回路ブロックは、その後段の機能回路ブロックにデータが出力できず、出力処理が待ち状態になっていると考えられる。
【００５４】
そこで本実施の形態３では、クロック動作計算部１１１は、ある機能回路ブロックのコマンドバッファが詰まった状態を検出すると、その機能回路ブロックの直前に接続されている機能回路ブロックへのクロックの供給を停止する。
【００５５】
各コマンドバッファは、そのコマンドバッファのデータが詰まった状態なると、対応する制御線を介して、対応する処理量検知部に処理待ち状態であることを示す信号を通知する。この結果は処理量検知部を介してクロック動作計算部１１１に送られ、クロック動作計算部１１１は、その処理待ち信号を発生した機能回路ブロックの直前に接続されている機能回路ブロックを特定する。そして、その機能回路ブロックへのクロックの供給を、対応するクロック制御部を用いて停止させる。
【００５６】
また、コマンドバッファのデータが詰まった状態が解消されると、その機能回路ブロックのコマンドバッファから対応する処理量検知部に入力される処理待ち信号がクリアされる。これによりクロック動作計算部１１１は、対応するクロック制御部に指示して、そのデータが詰まった状態が解消された機能回路ブロックの直前の機能回路ブロックへのクロックの再供給を開始させる。
【００５７】
図９は、この実施の形態３に係るクロック動作計算部１１１における処理を説明するフローチャートである。
【００５８】
ステップＳ５０１で、処理量検知部から、対応するコマンドバッファにおける状況を入力して、その処理量検知部に対応する機能回路ブロックにおける処理量を検出する。次にステップＳ５０２で、コマンドバッファにデータが詰まっている機能回路ブロックかどうかをみる。そうであればステップＳ５０３に進み、その機能回路ブロックの前段に接続されている機能回路ブロックへのクロックの供給を停止すべく、対応するクロック制御部におけるフリップフロップをリセットする。これにより、その機能回路ブロックの前段に接続されている機能回路ブロックへのクロックの供給が停止される。そしてステップＳ５０６に進む。
【００５９】
一方ステップＳ５０２で、コマンドバッファにデータが詰まっている機能回路ブロックでない場合はステップＳ５０４に進み、その機能回路ブロックの状態が、コマンドバッファにデータが詰まっている状態から、そうでない状態に戻った機能回路ブロックかどうかを調べ、そうであればその機能回路ブロックの前段に接続されている機能回路ブロックへのクロックの供給を再開する。そしてステップＳ５０６では、クロック動作計算部１１１に接続されている全ての機能回路ブロックのコマンドバッファの状態のチェックが終了したかをみる。全ての機能回路ブロックに対するチェック処理が完了している場合は、この処理を終了するが、そうでない時はステップＳ５０１に戻り、前述の処理を実行する。
【００６０】
以上説明したように本発明の実施の形態３によれば、動的な処理負荷の変化に対応して省電力処理を適用する機能回路ブロックを選択することができる。クロック動作計算部１１１において、負荷の高い機能回路ブロックの後段の機能回路ブロックへのクロックの供給を停止させない処理を行うことにより、高負荷の機能回路ブロックのデータの出力時に出力先の機能回路ブロックのクロック供給再開にかかるオーバーヘッドを減らすことができる。
【００６１】
また負荷の高い機能回路ブロックの前段の機能回路ブロックへのクロックの供給を停止することにより、低負荷の機能回路ブロックの出力データの待ち時間を低減し、消費電力を低減することができる。
【００６２】
［実施の形態４］
次に本発明の実施の形態４に係る、システム内の負荷状況によってクロックの停止方法を変更する例について説明する。
【００６３】
パイプライン接続されて動作をするシステムでは、システムの負荷が高い場合、クロックの供給を停止させた機能回路ブロックに対してデータを出力する可能性が高くなることが考えられる。クロックの供給を停止した機能回路ブロックにデータを出力する場合、そのデータの出力前にクロックを供給しておく処理が必要である。
【００６４】
このため本実施の形態４では、システムの負荷が高い場合には、機能回路ブロックへのクロックの供給を止めない構成を考える。この実施の形態４では、システムの負荷を各機能回路ブロックのコマンドバッファ内にある未処理コマンドの数に基づいて判定する。
【００６５】
逆に、前述の実施の形態３のようにして、コマンドバッファが詰まった状態にあると判定された機能回路ブロックを除くシステムの負荷が低い場合、そのコマンドバッファが詰まった状態にある機能回路ブロックの処理速度は、他の機能回路ブロックと比較して低いと予想される。このような場合は、一定以上の処理を溜めてしまった、コマンドバッファが詰まった状態にある機能回路ブロックを除いて、他の機能回路ブロックへのクロックの供給を停止する。
【００６６】
一例として、画像処理装置の複数の機能回路ブロックのコマンドバッファの半数以上において、各コマンドバッファの容量の半分以上がデータで埋まっている場合、クロックの供給を停止しない構成について考える。
【００６７】
この実施の形態では、各処理量検知部に、対応する機能回路ブロックのコマンドバッファに閾値個以上のコマンドがあるかどうかを示す閾値信号、及びコマンドバッファが埋まっていることを示す処理待ち信号の２つが通知される。
【００６８】
この実施の形態４では、処理量検知部は、対応する機能回路ブロックのコマンドバッファの容量の半分以上のデータが詰まっていることを示すコマンドが入力されている場合、その機能回路ブロックに対応付けて閾値信号をセットするものとする。
【００６９】
以上の条件におけるクロック動作計算部１１１の動作を図１０に示す。
【００７０】
図１０は、本発明の実施の形態４に係るクロック動作計算部１１１における処理を説明するフローチャートである。
【００７１】
クロック動作計算部１１１は、各処理量検知部からコマンドバッファの処理待ち信号（コマンドバッファが埋まっていることを示す信号）が入力されると（ステップＳ４０１）、機能回路ブロックへのクロックの供給を停止すべきかどうかを判定する（ステップＳ４０２）。ステップＳ４０２で、クロック動作計算部１１１は、各処理量検知部でセットされて、各処理量検知部から入力される閾値信号の多数決論理によって画像処理装置内の負荷を判定する。この判定法によって画像処理装置の負荷が閾値以上と判断された場合はステップＳ４０４に進み、クロックの供給が停止されている機能回路ブロックがあるかどうかを調べ、あればその機能回路ブロックへのクロックの供給を開始する（ステップＳ４０５）。
【００７２】
ステップＳ４０２で、システムの負荷が低いと判定されるとステップＳ４０３に進み、クロック動作計算部１１１は、閾値信号がセットされていない機能回路ブロックへのクロックの供給を、対応するクロック制御部により停止させ、その機能回路ブロックにおける処理を停止させる。但し、処理待ち信号を出力した機能回路ブロックの直後の機能回路ブロックの動作は停止させない。そしてステップＳ４０１に進む。尚、機能回路ブロックにおいて、クロックの変更設定をコマンド実行時に受け付けないようにすることで、実行中のコマンドを終了した後で、クロックの供給を停止することも可能である。
【００７３】
ステップＳ４０１でコマンドバッファに詰まりがない場合、或はステップＳ４０２で、システムの負荷が閾値以上の場合はステップＳ４０４に進み、クロックの供給を停止している機能回路モジュールがあるかどうかを判定し、あればそのモジュールへのクロックの供給を開始する。これにより、その機能回路ブロックは動作可能となる。
【００７４】
ステップＳ４０５における他の処理方法として、全ての機能回路ブロックに対してクロック供給を再開する他、クロック供給時にも閾値判定を行い、一定値以上の機能回路ブロックのみを選択してクロックの供給を再開することも可能である。以上の処理をステップＳ４０６で、ジョブが終了するまで繰り返す。
【００７５】
本発明の実施の形態４によれば、負荷の重い機能回路ブロックのみを選択的に稼動させ、負荷の軽い機能回路ブロックをまとめて停止させることができる。このように高負荷処理が終了するまで低負荷処理を行う回路をまとめて停止させておくことにより、各機能回路ブロックの処理に要する時間を平均化し、同時に動作する機能回路ブロックの数を抑えて消費電力を低減できる。
【００７６】
また画像処理装置全体の負荷が高い場合と低い場合について、クロックの停止条件を変更することにより、同時に動作する機能回路ブロックの数を制限して消費電力を低減することができる。
【００７７】
また、リアルタイムで変わる各機能ブロックの負荷の計測と、実際の負荷に伴う処理の切り替えができる。
【００７８】
また本実施の形態によれば、クロックの供給が停止される機能回路ブロックは、後段の機能回路ブロックの動作状態に依存しない部分まで処理を行うことができる。これにより、クロックの供給が再開された後の各機能回路ブロックの待ち時間を短縮することができる。
【００７９】
また出力タイミングを揃えてパイプラインで同時に動作できるブロックの数を増やすことにより、有効な演算を行う機能回路ブロックの数を増大させて消費電力を低減することができる。
【００８０】
本実施の形態によれば、パイプライン型の処理を行うＰＤＬの処理において、前述の実施の形態１〜４にと同様の効果が得られる。
【００８１】
以上のようにして消費電力を低減することにより、チップ全体の発熱量を抑制が期待できる。
【００８２】
［他の実施形態］
以上、本発明の実施の形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、または一つの機器からなる装置に適用しても良い。
【００８３】
なお本発明は、前述した実施の形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが、その供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００８４】
プログラムを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。その他のプログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明のクレームに含まれるものである。
【００８５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件を満足するユーザに対してインターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００８６】
またコンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００８７】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００８８】
【図１】本発明の実施の形態１に係る画像レンダリング装置の構成を説明するブロック図である。
【図２】本実施の形態に係るＰＤＬ処理システムを概略的に示す図である。
【図３】本実施の形態に係る画像レンダリング装置におけるＰＤＬ処理を説明するフローチャートである。
【図４】本実施の形態に係る画像レンダリング装置におけるクロック周波数の調整手順を説明するフローチャートである。
【図５】本発明の実施の形態２に係る画像レンダリング装置の構成を説明するブロック図である。
【図６】本発明の実施の形態２に係る画像レンダリング装置におけるクロック周波数の調整処理を説明するフローチャートである。
【図７】本発明の実施の形態３に係る画像処理装置の構成を説明するブロック図である。
【図８】本発明の実施の形態３に係るクロック制御ブロックと各機能回路ブロックとの接続を説明するブロック図である。
【図９】本発明の実施の形態３に係るクロック動作計算部における処理を説明するフローチャートである。
【図１０】本発明の実施の形態４に係るクロック動作計算部における処理を説明するフローチャートである。
【図１】
2006039754.tif 000003
【図２】
2006039754.tif 000004
【図３】
2006039754.tif 000005
【図４】
2006039754.tif 000006
【図５】
2006039754.tif 000007
【図６】
2006039754.tif 000008
【図７】
2006039754.tif 000009
【図８】
2006039754.tif 000010
【図９】
2006039754.tif 000011
【図１０】
2006039754.tif 000012