パイプライン演算装置
【課題】本発明は、重複する演算ユニットの組込みを減らし、回路規模を縮小することが可能なパイプライン演算装置を提供する。
【解決手段】本発明に係るパイプライン演算装置は、複数の演算ユニット50a,50b,50cと、入力セレクタ14と、出力セレクタ15と、バッファ21と、制御部(画像コントローラ6)とを備えている。制御部は、入力セレクタ14と出力セレクタ15との間に接続された少なくとも1つの演算ユニット50aの動作クロックを、他の演算ユニット50b,50cを動作させる基準クロックよりも高速になるように制御する。入力セレクタ14と出力セレクタ15との間に接続された少なくとも1つの演算ユニット50aが、パイプラインごとに時分割で演算処理を行なう。
【解決手段】本発明に係るパイプライン演算装置は、複数の演算ユニット50a,50b,50cと、入力セレクタ14と、出力セレクタ15と、バッファ21と、制御部(画像コントローラ6)とを備えている。制御部は、入力セレクタ14と出力セレクタ15との間に接続された少なくとも1つの演算ユニット50aの動作クロックを、他の演算ユニット50b,50cを動作させる基準クロックよりも高速になるように制御する。入力セレクタ14と出力セレクタ15との間に接続された少なくとも1つの演算ユニット50aが、パイプラインごとに時分割で演算処理を行なう。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パイプライン演算装置に関し、特に、パイプライン演算方式にて入力データに対して演算処理を行なう複数の演算ユニットを備えるパイプライン演算装置に関する。
【背景技術】
【0002】
従来、画像データを処理する方法として、ハードウェアを用いて画像データを処理する方法と、ソフトウェアを用いて画像データを処理する方法とが知られている。
【0003】
ハードウェアを用いて画像データを処理する方法では、特定の画像データを処理する演算ユニットをハイプライン演算方式で演算処理することができるような回路構成をチップに搭載した専用ハードウェア(パイプライン演算装置)が必要である。この専用ハードウェアは、画像データに対して特定の演算処理を行なうために回路構成を最適化してあるので、高速に画像データを処理することが可能である。具体的なパイプライン演算装置の構成については、特許文献1〜6に開示してある。
【0004】
ただし、専用ハードウェアは、画像データに対して特定の演算処理を行なうために回路構成を設計するため、演算処理を行なうことできる範囲が狭く、範囲外の演算処理を行なうため別途回路構成を設計し直す必要があった。
【0005】
ソフトウェアを用いて画像データを処理する方法は、汎用的な回路構成を用いて、プログラムにより演算処理を行なうため、プログラムを変更するだけで画像データに対するさまざまな演算処理を行なうことができる。
【0006】
ただし、ソフトウェアを用いて画像データを処理する方法は、演算処理を行なうことできる範囲が広いが、専用ハードウェアと比較して演算処理を行なう速度が遅い。
【0007】
そのため、設計者は、ハードウェアを用いて画像データを処理する方法と、ソフトウェアを用いて画像データを処理する方法とを適宜利用して、画像処理システムを構築している。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2008−310649号公報
【特許文献2】特開平7−73160号公報
【特許文献3】特開昭57−209564号公報
【特許文献4】特開平6−195369号公報
【特許文献5】特開平11−41488号公報
【特許文献6】特開2008−108049号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
画像データの処理には、さまざまな処理が存在するが、異なる処理内容であっても同じ演算処理が含まれていたり、処理内容に同じ演算処理が複数含まれていたりすることも多い。そのため、専用ハードウェア(パイプライン演算装置)では、同じ演算処理であっても異なる処理内容であれば、同じ演算処理を実行する演算ユニットを設けていた。また、専用ハードウェアでは、処理内容に同じ演算処理が複数含まれていれば、含まれている演算処理の数だけ演算処理を実行する演算ユニットを設けていた。
【0010】
そのため、専用ハードウェアは、重複する演算ユニットを複数組込むことになり、回路規模が大きくなるという問題があった。
【0011】
特許文献1で開示してあるパイプライン演算装置は、複数の演算ユニットの処理順序を直並列に組替え、動作させるものである。そのため、特許文献1で開示してあるパイプライン演算装置は、処理内容において一つの演算ユニットで演算処理を行なう回数が入力データ毎に1回程度であるため、重複する演算ユニット回路を複数組込むことになり、回路規模が大きくなる。
【0012】
また、従来のパイプライン演算装置は、パイプライン中の各演算ユニットでの動作クロックが一定であるため、高速動作が可能な演算ユニットであっても、最も動作の遅い演算ユニットにあわせて動作クロックを決定する必要があった。そのため、従来のパイプライン演算装置では、高速動作が可能な演算ユニットの演算処理能力を十分に利用することができず、ハードウェア資源を無駄にしていた。
【0013】
それゆえに、本発明は、上記問題点を解決するためになされたものであり、重複する演算ユニットの組込みを減らし、回路規模を縮小することが可能なパイプライン演算装置を提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明に係るパイプライン演算装置は、複数の演算ユニットと、入力セレクタと、出力セレクタと、バッファと、制御部とを備えている。演算ユニットは、パイプライン演算方式にて入力データに対して演算処理を行なう。入力セレクタは、複数の演算ユニットのうち、複数のパイプラインで重複して演算処理を行なう少なくとも1つの演算ユニットの前段に接続され、演算処理を行なう入力データを選択して入力する。出力セレクタは、複数の演算ユニットのうち、複数のパイプラインで重複して演算処理を行なう少なくとも1つの演算ユニットの後段に接続され、演算処理を行なった入力データの出力先を選択する。バッファは、入力セレクタの前段、および出力セレクタの後段にそれぞれ接続され、入力データ、および演算処理を行なった入力データを一時的に保持する。制御部は、入力セレクタと出力セレクタとの間に接続された少なくとも1つの演算ユニットの動作クロックを、他の演算ユニットを動作させる基準クロックよりも高速になるように制御する。入力セレクタと出力セレクタとの間に接続された少なくとも1つの演算ユニットが、パイプラインごとに時分割で演算処理を行なう。
【0015】
好ましくは、入力セレクタが、前段に接続されたバッファに所定量の入力データが蓄積された後、後段に接続した演算ユニットに入力データを入力する。
【0016】
好ましくは、制御部が、入力セレクタの前段に接続されるパイプラインを動作させる第1クロックと、出力セレクタの後段に接続されたパイプラインを動作させる第2クロックとを異なるように調整する。
【0017】
好ましくは、制御部は、入力セレクタで入力データを選択してから、出力セレクタで出力先を選択するまでの遅延時間を含む履歴情報を記憶する記憶部を有し、出力セレクタは、記憶部に記憶した遅延時間に基づいて出力先を選択する。
【0018】
好ましくは、制御部は、外部から信号に基づき、時分割で演算処理を行なう演算ユニットの時分割の数を変えるために動作クロックを変更する。
【0019】
好ましくは、入力セレクタとバッファとの間に接続され、直列接続してある複数のラインバッファを有する拡張記憶部をさらに備える。
【0020】
好ましくは、パイプラインは、複数の演算ユニット間で送受信される要求信号および応答信号に基づき入力データの転送タイミングを決定する非同期型である。
【発明の効果】
【0021】
本発明に係るパイプライン演算装置によれば、複数のパイプラインで重複して演算処理を行なう演算ユニットを、パイプラインごとに時分割で演算処理を行なわせることで、重複する演算ユニットの組込みを減らし、回路規模を縮小することができる。
【図面の簡単な説明】
【0022】
【図1】本発明の実施の形態1に係るパイプライン演算装置を含む画像情報処理装置の構成を示す概略図である。
【図2】本発明の実施の形態1に係る基準TG画像データに関するタイミング信号を示す波形図である。
【図3】本発明の実施の形態1に係るLTG画像データに関するタイミング信号を示す波形図である。
【図4】本発明の実施の形態1に係る画像処理プロセッサの構成を示す概略図である。
【図5】本発明の実施の形態1に係る画像処理プロセッサの画像処理コントローラに入出力する信号を示した信号配線図である。
【図6】本発明の実施の形態2に係る画像処理プロセッサのa系統のパイプラインの入力データ量と、b系統のパイプラインの入力データ量との関係を示すグラフである。
【図7】本発明の実施の形態3に係る画像処理プロセッサの動作を説明するためのタイミングチャートである。
【図8】本発明の実施の形態4に係る画像処理プロセッサの構成を示す概略図である。
【図9】基準TG、調整TGおよび調整LTGの構成を示す概略図である。
【図10】本発明の実施の形態4に係る画像処理プロセッサのa系統調整TGで処理される信号の波形を示すタイミングチャートである。
【図11】本発明の実施の形態5に係る画像処理プロセッサの構成を示す概略図である。
【図12】本発明の実施の形態6に係る時分割実行ユニットの構成を示す概略図である。
【図13】本発明の実施の形態7に係る時分割実行ユニットの構成を示す概略図である。
【図14】本発明の実施の形態8に係る時分割実行ユニットの構成を示す概略図である。
【図15】本発明の実施の形態9に係る時分割実行ユニットの構成を示す概略図である。
【図16】本発明の実施の形態10に係る画像処理プロセッサの構成を示す概略図である。
【発明を実施するための形態】
【0023】
以下、本発明に係る実施の形態について図面を参照して説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係るパイプライン演算装置を含む画像情報処理装置の構成を示す概略図である。図1に示す画像情報処理装置100は、画像出力部1、画像入力部2を含み、表示装置3に画像データを出力している。
【0024】
画像入力部2は、テレビチューナ、DVD(Digital Versatile Disc)再生装置、やBlu−Rayディスク再生装置などの画像データを生成する画像生成装置に接続され、画像出力部1に生成した画像データを出力する。
【0025】
画像出力部1は、画像入力部2から入力した画像データに対して所定の画像処理(たとえば、画像データ(RGBのディジタルデータ)を画素単位でガンマ補正する)を行ない、液晶パネルなどの表示装置3に所定の画像処理を行なった画像データをライン単位に出力する。画像出力部1は、画像メモリ4、画像処理プロセッサ5、画像処理コントローラ6、マイクロコンピュータ7、基準TG(タイミングジェネレータ)8、LTG(ローカルタイミングジェネレータ)9、入力インタフェース10、出力インタフェース11、割込みコントローラ16を含んでいる。
【0026】
画像メモリ4は、画像処理プロセッサ5で処理する画像データを一時的に保存するメモリである。なお、画像メモリ4は、画像出力部1内に独立して設けておく必要はなく、マイクロコンピュータ7のデータを保存する図示していないメモリと共用してもよい。
【0027】
画像処理プロセッサ5は、後述する演算ユニットを用いて、画像データに対して所定の画像処理を行なう演算装置である。また、画像処理プロセッサ5は、複数の演算ユニットを用いて、パイプライン演算方式にて画像データに対して演算処理を行なうパイプライン演算装置でもある。
【0028】
画像処理プロセッサ5は、入力セレクタ14、出力セレクタ15、演算ユニット50a,50b,50cを含んでいる。入力セレクタ14は、演算ユニット50aの前段に接続され、演算処理を行なう画像データを選択して入力する切替装置である。出力セレクタ15は、演算ユニット50aの後段に接続され、演算処理を行なった画像データの出力先(演算ユニット50bまたは演算ユニット50c)を選択する切替装置である。
【0029】
画像処理コントローラ6は、画像処理プロセッサ5の動作を制御する制御装置である。具体的に、画像処理コントローラ6は、マイクロコンピュータ7からの指令に従って、画像処理プロセッサ5に制御信号を出力し、画像処理プロセッサ5を制御して、画像処理の動作モードやパスなどを決定している。
【0030】
マイクロコンピュータ7は、画像処理コントローラ6を含む画像出力部1全体の動作を制御する装置である。
【0031】
基準TG8は、画像処理プロセッサ5の動作タイミングを決めるクロック信号を生成する装置である。そのため、画像処理プロセッサ5内に設けてある装置は、基本的に基準TG8が生成したクロック信号に基づき動作している。
【0032】
LTG9は、基準TG8と異なる周期のクロック信号を生成する装置で、画像処理プロセッサ5内に設けてある一部の装置の動作タイミングを決めている。なお、LTG9は、画像処理コントローラ6からのクロック制御信号に基づき、基準TG8で生成されたタイミングを元に、基準TG8と異なる周期のクロック信号を生成している。
【0033】
入力インタフェース10は、画像入力部2と接続するためのインタフェースであり、画像入力部2から画像データを入力する。
【0034】
出力インタフェース11は、表示装置3と接続するためのインタフェースであり、画像出力部1で所定の画像処理した画像データを表示装置3へ出力する。図1に示す画像出力部1は、2つの出力インタフェース11を有し、演算ユニット50bに一方の出力インタフェース11を、演算ユニット50cに他方の出力インタフェース11をそれぞれ接続してある。それぞれの出力インタフェース11には、それぞれ表示装置3を接続してある。
【0035】
割込みコントローラ16は、画像入力部2へ割込み信号を出力する割込み出力機能を備えた制御装置である。
【0036】
具体的に、画像情報処理装置100の動作について説明する。まず、画像入力部2は、映像を構成する各フレームの画像データ(フレームデータ)を画像出力部1の入力インタフェース10に入力する。画像出力部1は、入力インタフェース10に入力された画像データ(フレームデータ)をライン同期信号に基づきライン毎の画像データ(ラインデータ)に変換する。図2は、本発明の実施の形態1に係る基準TG8の画像データに関するタイミング信号を示す波形図である。図2に示すライン同期信号は、1つのフレーム同期信号に複数含まれている。また、図2に示すライン同期信号には、複数のビットクロック信号が含まれ、ビットクロック信号の1周期が画像データの1ビットに対応している。
【0037】
入力インタフェース10は、1ライン(ライン同期信号の1周期)分の画像データに対応するビット幅を確保したパラレルバスを用いて、画像処理プロセッサ5にライン毎の画像データ(ラインデータ)を順次入力する。また、画像入力部2は、フレーム同期信号およびライン同期信号を、画像データとともに入力インタフェース10に入力する。なお、入力インタフェース10は、ライン同期信号は、例えば画像データの1ドットが24ビットの場合、24ビットのビットクロック信号で1周期の信号となる。
【0038】
基準TG8は、フレーム同期信号に合わせて、割込みコントローラ16を介して画像入力部2へ割込み信号を出力する。これにより、画像入力部2からの画像データを入力するタイミングが、基準TG8の動作クロック信号のタイミングと同期することができる。
【0039】
図2に示す波形は、画像入力部2から画像出力部1の入力インタフェース10へ入力され、基準TG8で生成したタイミング信号を図示してある。
【0040】
画像入力部2から画像データを入力した画像処理プロセッサ5は、複数の演算ユニット50a,50b,50cを含んでおり、当該演算ユニット50a,50b,50cを用いて、各種の画像処理をパイプライン演算方式で演算処理する構成である。画像処理プロセッサ5は、複数のパイプラインで重複して演算処理を行なう演算ユニット50aを、パイプラインごとに時分割で演算処理を行なう。そのため、演算ユニット50aの動作クロックは、演算ユニット50b,50cの動作クロックと周期が異なり、LTG9で生成したクロック信号に基づいている。図3は、本発明の実施の形態1に係るLTG9の画像データに関するタイミング信号を示す波形図である。図3に示すタイミング信号は、基準TG8のタイミング信号の略2倍の周期を有している。具体的に、図2に示す基準TG8のライン同期信号の1周期に、図3に示すLTG9のライン同期信号の2周期が対応している。
【0041】
そのため、画像処理プロセッサ5は、基準TG8のライン同期信号の1周期間に、演算ユニット50aをa系統のパイプラインでの演算処理と、b系統のパイプラインでの演算処理とを時分割で行なうことができる。具体的に、画像処理コントローラ6は、LTG9のライン同期信号に基づき、演算ユニット50aで演算処理するパイプラインの系統を図3に示すように切替える。つまり、画像処理コントローラ6は、基準TG8のライン同期信号の1周期間に、演算ユニット50aをa系統で演算処理するタイミングと、b系統で演算処理するタイミングとを切替えている。
【0042】
画像処理プロセッサ5は、画像メモリ4と接続してあるので、演算ユニット50a,50b,50cで演算処理した画像データを、画像メモリ4に一時的に保存することが可能である。また、画像処理プロセッサ5は、画像処理した画像データを表示装置3へ出力して、画像データを表示装置3に表示させる。
【0043】
次に、画像処理プロセッサ5での演算ユニット50a,50b,50cの演算処理を詳しく説明する。図4は、本発明の実施の形態1に係る画像処理プロセッサ5の構成を示す概略図である。なお、図4(a)は、a系統およびb系統のパイプラインで演算処理する演算ユニットの処理順を示したブロック図である。図4(b)は、画像処理プロセッサ5の構成を示す概略図である。図5は、本発明の実施の形態1に係る画像処理プロセッサ5の画像処理コントローラ6に入出力する信号を示した信号配線図である。
【0044】
図4に示す画像処理プロセッサ5は、演算ユニット50aを含む時分割実行ユニット50dと、時分割実行ユニット50dで演算処理した画像データがそれぞれ入力される演算ユニット50b,50cとを備えている。さらに、時分割実行ユニット50dは、入力セレクタ14と、出力セレクタ15とを備えている。なお、画像処理プロセッサ5は、演算処理するタイミング信号を生成して時分割動作させるLTG9と、基準となるタイミング信号を生成する基準TG8と、パイプラインの系統の切替を制御する画像処理コントローラ6とに接続してある。
【0045】
画像処理コントローラ6は、入力セレクタ14および出力セレクタ15で入出力を選択することで演算処理する系統のパイプラインを設定した後、時分割実行ユニット50dにイネーブル信号を入力することで、演算ユニット50aをパイプラインごとに時分割で演算処理を行なわせることができる。
【0046】
なお、画像処理プロセッサ5は、入力セレクタ14の前段、および出力セレクタ15の後段にそれぞれ接続され、画像データ、および演算処理を行なった画像データを一時的に保持するバッファ12を備えている。バッファ12は、時分割実行ユニット50dでの演算処理のタイミングと、他のユニットでの演算処理などのタイミングとを差を吸収するためのFIFO(First In First Out)バッファである。図4には、a系統のパイプラインの入力側に設けてあるバッファ12をFIFOI_aと、a系統のパイプラインの出力側に設けてあるバッファ12をFIFOO_aと、b系統のパイプラインの入力側に設けてあるバッファ12をFIFOI_bと、b系統のパイプラインの出力側に設けてあるバッファ12をFIFOO_bとそれぞれ記載してある。
【0047】
次に、画像処理プロセッサ5の具体的な動作について詳細に説明する。図4(a)に示すa系統のパイプラインで演算処理する演算ユニット50の処理順は、画像データの輝度を変換する演算ユニット“1”、画像データから所定のデータをフィルタする演算ユニット“2”の順である。図4(b)に示すb系統のパイプラインで演算処理する演算ユニット50の処理順は、画像データの輝度を変換する演算ユニット“3”、画像データに対してガンマ補正を行なう演算ユニット“4”の順である。
【0048】
a系統のパイプラインの演算ユニット“1”と、b系統のパイプラインの演算ユニット“3”とは、同じ画像データの輝度を変換する演算処理で、複数のパイプラインで重複する演算処理である。そのため、a系統のパイプラインの演算ユニット“1”と、b系統のパイプラインの演算ユニット“3”とは、画像データの輝度を変換する1つの演算ユニット50aを時分割で演算処理することで実現することができる。つまり、演算ユニット“1”と演算ユニット“3”とを時分割実行ユニット50dにまとめ、時分割実行ユニット50dの入力セレクタ14および出力セレクタ15を切替えて実行する。
【0049】
なお、パイプラインごとでの遅延は許容されるが、演算処理の速度は、それぞれのパイプラインで一定に保つ必要がある。つまり、時分割実行ユニット50dをともに経由しているが、a系統のパイプラインで演算処理する速度と、b系統のパイプラインで演算処理する速度とをそれぞれ一定に保つ制御を行なう必要がある。そのため、図5に示すようにa系統基準TGから演算ユニット50bに至る経路の途中にタイミング信号を遅延させる遅延器13を設けてある。同様に、b系統基準TGから演算ユニット50cに至る経路の途中にもタイミング信号を遅延させる遅延器13を設けてある。なお、図5には、a系統基準TGの経路に設けてある遅延器13は、遅延器13_aと、b系統基準TGの経路に設けてある遅延器13は、遅延器13_bと、それぞれ記載してある。
【0050】
図4に示す画像処理プロセッサ5は、a系統のパイプラインの1段目の演算ユニットと、b系統のパイプラインの1段目の演算ユニットとが、共通の演算ユニット50aである。
【0051】
図5に示すa系統およびb系統のパイプラインの入力側のバッファ12(FIFOI_a,FIFOI_b)は、蓄積する画像データの量が入力基準値を上回ると、入力蓄積データ数を画像処理コントローラ6へ出力する。
【0052】
a系統およびb系統のパイプラインの出力側のバッファ12(FIFOO_a,FIFOO_b)は、蓄積する画像データの量が出力基準値を上回ると、出力蓄積データ数を画像処理コントローラ6へ出力する。
【0053】
なお、画像処理プロセッサ5は、動作初期時、バッファ12の入力基準値、出力基準値の代わりに、画像処理コントローラ6から入力される入力開始基準値、出力開始基準値を用いる。画像処理コントローラ6は、パイプラインでの演算処理に応じて、各系統のパイプラインの入力開始基準値および出力開始基準値を設定する。a系統のパイプラインでの演算処理と、b系統のパイプラインでの演算処理とで非同期に動作させる場合や、動作モードを動的に変更する場合、画像処理コントローラ6は、動作初期段階での入力開始基準値を大きく設定し、その後、低い入力基準値とすることで、画像データを演算ユニット50aに滞ることなく供給し、画像処理プロセッサ5を安定して動作させることができる。
【0054】
バッファ12(FIFOO_a,FIFOO_b)は、出力開始基準値を上回ると出力蓄積データ数を画像処理コントローラ6へ出力する。その後、画像処理プロセッサ5は、バッファ12(FIFOO_a,FIFOO_b)から外部へ出力を開始する。なお、画像処理コントローラ6は、動作初期段階での出力開始基準値を大きく設定することで、バッファ12(FIFOO_a,FIFOO_b)から外部へ出力する画像データの滞りを防ぎ、画像処理プロセッサ5を安定して動作させることができる。
【0055】
画像処理コントローラ6は、出力蓄積データ数が入力され、かつ入力蓄積データ数が入力された系統のパイプラインから、交互または周期的に切替えて、演算ユニット50aに演算処理を実行させる。具体的に、画像処理コントローラ6は、LTG9のライン同期信号単位で、読出(read)セレクタを選択するreadセレクタ切替信号を出力する。
【0056】
時分割実行ユニット50dにイネーブル信号(ユニットEn)を入力した後、演算処理を要求するバッファ12(FIFOI_a,FIFOI_b)から画像データを入力して、時分割実行ユニット50dで画像データの演算処理を行なう。演算処理にかかる遅延時間をクロック信号でカウントすることで測定する。入力セレクタ14を切替えた後、バッファ12(FIFOI_a,FIFOI_b)から入力された画像データは、時分割実行ユニット50dでの遅延時間を待って時分割実行ユニット50dに入力される。
【0057】
画像処理コントローラ6は、入力セレクタ14を切替えた後、遅延時間を待って、入力セレクタ14で選択した系統のパイプラインへ出力セレクタ15を切替えるように、書込(write)セレクタを選択するwriteセレクタ切替信号を出力する。そのため、時分割実行ユニット50dは、入力セレクタ14の選択と、出力セレクタ15の選択との間に時間差が生じる。なお、画像処理コントローラ6は、入力セレクタ14で画像データを選択してから、出力セレクタ15で出力先を選択するまでの遅延時間を含む履歴情報を記憶する記憶部を有している。
【0058】
そして、画像処理コントローラ6の記憶部に記憶した履歴情報に基づいて、画像処理コントローラ6は、遅延器13に対して適切な遅延量を出力する。遅延器13は、画像処理コントローラ6から出力された遅延量に基づき、a系およびb系統基準TGから演算ユニット50b,50cに供給されるタイミング信号を遅延させる。
【0059】
以上のように、本発明の実施の形態1に係る画像処理プロセッサ5は、パイプライン演算方式にて画像データ(入力データ)に対して演算処理を行なう複数の演算ユニット50a,50b,50c、入力セレクタ14、出力セレクタ15、入力セレクタ14の前段、および出力セレクタ15の後段にバッファ12、画像処理コントローラ6を備えている。パイプライン中の演算ユニット50aを、入力セレクタ14と出力セレクタ15とで囲み、演算ユニット50aを基準TGのライン同期信号(基準クロック)に比べ、周期の速いLTGのライン同期信号(動作クロック)で、演算ユニット50aに演算処理をさせているので、複数のパイプラインで重複して演算処理を行なう演算ユニット50aを、パイプラインごとに時分割で演算処理を行なわせることで、重複する演算ユニット50aの組込みを減らし、回路規模を縮小することができる。
【0060】
なお、画像処理プロセッサ5は、バッファ12に非同期のFIFOバッファであるので、時分割実行ユニット50dに画像データを入力する動作クロックと、時分割実行ユニット50dから画像データを出力する動作クロックとの周波数が異なっていてもよい。
【0061】
(実施の形態2)
本発明の実施の形態2に係る画像処理プロセッサは、a系統のパイプラインと、b系統のパイプラインとがそれぞれ独立して、非同期の動作クロックで動作している。なお、本発明の実施の形態2に係る画像処理プロセッサは、実施の形態1に係る画像処理プロセッサ5の構成と同じであるため、同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0062】
本実施の形態2に係るLTG9は、周期ごとに、基準TG8のライン同期信号に従って、モード切替タイミング、イネーブル信号を生成する。基準TG8のライン同期信号の1周期で、a系統およびb系統のパイプラインでの演算処理が行なえるように、LTG9のライン同期信号の周期を速めている。
【0063】
複数のパイプラインは、入力と出力との一対で構成してあり、固定されている。すなわち、バッファ12(FIFOI_a)から入力された画像データは、バッファ12(FIFOO_a)から、バッファ12(FIFOI_b)から入力された画像データは、バッファ12(FIFOO_b)からそれぞれ出力される。
【0064】
具体的に、画像処理コントローラ6は、入力セレクタ14および出力セレクタ15にセレクタ切替信号を入力して、演算処理を行なうa系統またはb系統のパイプラインを選択する。
【0065】
そして、a系統のパイプラインの基準タイミングに同期して入力されるa系統の画像データと、b系統のパイプラインの基準タイミングに同期して入力されるb系統の画像データとを足しあわせたデータ量が、時分割実行ユニット50dに入力され、LTGタイミングで演算処理される。
【0066】
LTGタイミングは、図3に示したように、a系統およびb系統のパイプラインの基準タイミンで転送された複数の系統の画像データを同時に処理するため、高速なタイミングとなる。
【0067】
a系統およびb系統のパイプラインの入力側のバッファ12(FIFOI_a,FIFOI_b)から画像データが溢れないように演算処理するためには、LTGタイミングを高速にする必要があるが、演算ユニット50aが動作可能な速度には限界がある。そのため、演算ユニット50aは、できるだけ低い周波数で動作させることが望ましい。
【0068】
LTG9は、必要最低限の周波数のライン同期信号などのタイミング信号を生成すべく、LTG9の転送周波数≧a系統のパイプラインの基準TGの転送周波数+b系統のパイプラインの基準TGの転送周波数とする。ここで、転送周波数は、ライン同期信号の周波数とする。ぞのため、LTG9の設定可能な最低転送周波数=a系統のパイプラインの基準TGの転送周波数+b系統のパイプラインの基準TGの転送周波数となる。
【0069】
a系統のパイプラインの基準TGの転送周波数と、b系統のパイプラインの基準TGの転送周波数とが同じであれば、LTG9の設定可能な最低転送周波数と、a系統のパイプラインの基準TGの転送周波数と、b系統のパイプラインの基準TGの転送周波数との平均値は常に一致している。しかし、本実施の形態2に係る画像処理プロセッサ5では、a系統のパイプラインと、b系統のパイプラインとがそれぞれ独立して、非同期の動作クロックで動作しているので、a系統のパイプラインの基準TGの転送周波数と、b系統のパイプラインの基準TGの転送周波数とが異なる。そのため、LTG9の設定可能な最低転送周波数は、a系統のパイプラインの基準TGの転送周波数と、b系統のパイプラインの基準TGの転送周波数との平均値を中心に変動することになる。
【0070】
LTG9の設定可能な最低転送周波数が変動することで問題となるのは、バッファ12(FIFOI_a,FIFOI_b)に蓄積された画像データが少ない動作初期時である。具体的に、LTG9の設定可能な最低転送周波数が速いと、バッファ12(FIFOI_a,FIFOI_b)に蓄積された画像データが枯渇して、演算ユニット50aへの供給が滞り、画像処理プロセッサ5を安定して動作させることができない。
【0071】
図6は、本発明の実施の形態2に係る画像処理プロセッサ5のa系統のパイプラインの入力データ量と、b系統のパイプラインの入力データ量との関係を示すグラフである。
【0072】
図6の上段には、a系統のパイプラインの基準TGの転送周波数(a系統基準タイミング)で動作させたバッファ12(FIFOI_a)に入力された画像データを示すa系統外部入力データ量と、b系統のパイプラインの基準TGの転送周波数(b系統基準タイミング)で動作させたバッファ12(FIFOI_b)に入力された画像データを示すb系統外部入力データ量とが図示してある。
【0073】
さらに、図6の上段には、a系統外部入力データ量とb系統外部入力データ量との合計(a系統+b系統外部入力データ量と)と、LTG9の設定可能な最低転送周波数(LTG出力タイミング)で演算ユニット50aが演算処理する画像データの量である時分割ユニット処理とが図示してある。
【0074】
図6の中段には、a系統外部入力データ量と、バッファ12(FIFOI_a)に蓄積されている画像データの量であるFIFOI_a蓄積データと、a系統入力開始基準値とが図示してある。同様に、図6の下段には、b系統外部入力データ量と、バッファ12(FIFOI_b)に蓄積されている画像データの量であるFIFOI_b蓄積データと、b系統入力開始基準値とが図示してある。
【0075】
図6では、バッファ12(FIFOI_a,FIFOI_b)に、それぞれa系統入力開始基準値およびb系統入力開始基準値まで画像データを蓄積してから、時分割ユニット処理のデータ量に比べて、常にa系統+b系統外部入力データ量が下回っており、バッファ12(FIFOI_a,FIFOI_b)に蓄積された画像データが枯渇せず、演算ユニット50aへの供給が滞ることなく、画像処理プロセッサ5を安定して動作させることができていることが分かる。
【0076】
また、本発明の実施の形態2に係る画像処理プロセッサ5は、複数の系統のパイプラインのうち、どの系統のパイプラインの演算処理を優先して行なうのか選択する基準として、バッファ12(FIFOI_a,FIFOI_b)の蓄積データ量−入力開始基準値)が大きい系統のパイプラインを選択する。
【0077】
(実施の形態3)
本発明の実施の形態3に係る画像処理プロセッサは、複数の系統のパイプラインのすべてを常に動作させる構成ではなく、常に動作させる系統のパイプラインと、一時的に動作させる系統のパイプラインとが混在する構成である。なお、本発明の実施の形態3に係る画像処理プロセッサは、実施の形態1に係る画像処理プロセッサ5の構成と同じであるため、同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0078】
画像処理プロセッサ5は、一時的に動作させる系統のパイプラインが混在している場合、動作モードを変更して、使用する系統のパイプラインのみ動作させて、時分割実行ユニット50dの動作クロックを下げることで、消費電力を削減している。
【0079】
具体的に、画像処理コントローラ6は、動作モードを選択する機能を持たせてあり、たとえば、“通常モード”ではa系統のパイプラインのみ動作させておき、“並列処理モード”ではb系統のパイプラインも同時に動作させる。
【0080】
図7は、本発明の実施の形態3に係る画像処理プロセッサの動作を説明するためのタイミングチャートである。図7には、a系統のパイプラインの動作、b系統のパイプラインの動作、動作モードが図示してある。さらに、図7には、a系統のパイプラインの1段目における外部入力データ、バッファ12(FIFOI_a)の読出(read)、バッファ12(FIFOO_a)への書込(write)、a系統のパイプラインの2段目における外部入力データが図示してある。同様に、図7には、b系統のパイプラインの1段目における外部入力データ、バッファ12(FIFOI_b)の読出(read)、バッファ12(FIFOO_b)への書込(write)、b系統のパイプラインの2段目における外部入力データが図示してある。また、図7には、入力セレクタ14が選択している系統、および出力セレクタ15が選択している系統も図示してある。
【0081】
動作モードが“通常モード”の「a専用」から“並列処理モード”の「a,b時分割」へモード切替わると、a系統のパイプラインの動作、およびb系統のパイプラインの動作がともにオン状態となる。b系統のパイプラインの動作がオン状態となると、b系統のパイプラインの1段目における外部入力データ「1」が入力された立下りで、入力セレクタ14が選択している系統がa系統からb系統に切替わる。そのため、バッファ12(FIFOI_b)から外部入力データ「1」が読出され、読出された外部入力データ「1」が、演算ユニット50aで演算処理される。演算ユニット50aで演算処理された外部入力データ「1」が出力されるタイミングで、出力セレクタ15が選択している系統がa系統からb系統に切替わり、バッファ12(FIFOO_b)に演算処理された外部入力データ「1」が書込まれる。バッファ12(FIFOO_b)に書込まれた外部入力データ「1」は、b系統のパイプラインの2段目における外部入力データとして出力される。
【0082】
なお、動作モードが“通常モード”の「a専用」のとき、演算ユニット50aは時分割で演算処理する必要がないので、LTG9は、基準TG8のタイミングクロックと同周期の動作クロックを出力する。
【0083】
画像処理コントローラ6は、マイクロコンピュータ7から入力される動作モード選択信号に基づいて、動作モードが変更される。画像処理コントローラ6は、並列処理モード”の動作モード選択信号が入力された場合、LTG9にクロック制御信号を出力する。LTG9は、画像処理コントローラ6からのクロック制御信号に基づき、基準TG8で生成されたタイミングを元に、基準TG8より速い周期のクロック信号を生成する。
【0084】
以上のように、本発明の実施の形態3に係る画像処理プロセッサ5は、動作モードを変更して、停止している系統のパイプラインを動作させるので、使用する系統のパイプラインのみ動作させて、時分割実行ユニット50dの動作クロックを下げることができ、消費電力を削減することができる。
【0085】
(実施の形態4)
本発明の実施の形態4に係る画像処理プロセッサは、時分割実行ユニットの前後でパイプラインを動作させる速度(クロック)に速度差を持たせる構成である。図8は、本発明の実施の形態4に係る画像処理プロセッサの構成を示す概略図である。図8に示す画像処理プロセッサ5aは、a系統およびb系統基準TG8に加えてa系統およびb系統調整TG19、調整LTG20を備えている以外、図5に示す画像処理プロセッサ5の構成と同じである。そのため、本発明の実施の形態4に係る画像処理プロセッサ5aは、実施の形態1に係る画像処理プロセッサ5と同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0086】
バッファ12(FIFOO_a,FIFOO_b)の出力側、および演算ユニット50b,50cは、図5に示す画像処理プロセッサ5と同様に、a系統およびb系統基準TG8で生成したクロック信号に基づいて駆動される。しかし、バッファ12(FIFOI_a,FIFOI_b)の入力側は、a系統およびb系統調整TG19で生成したクロック信号に基づいて駆動され、バッファ12(FIFOI_a,FIFOI_b)の出力側からバッファ12(FIFOO_a,FIFOO_b)の入力側までの間は、調整LTG20で生成したクロック信号に基づいて駆動される。
【0087】
そのため、画像処理プロセッサ5aは、バッファ12(FIFOI_a,FIFOI_b)およびバッファ12(FIFOO_a,FIFOO_b)に適切なデータ量が蓄積されるように、時分割実行ユニット50dの前後でパイプラインを動作させるクロックを動的に変化させることができる。
【0088】
図5に示す画像処理プロセッサ5では、系統ごとにパイプラインの動作初期段階では、バッファ12(FIFOI_a,FIFOI_b)およびバッファ12(FIFOO_a,FIFOO_b)に適切なデータ量が蓄積されるまで出力せず、所定の遅延時間待って出力を開始することでバッファ12(FIFOI_a,FIFOI_b)およびバッファ12(FIFOO_a,FIFOO_b)に蓄積されたデータ量を調整していた。
【0089】
しかし、画像処理プロセッサ5aでは、パイプラインの動作中にバッファ12(FIFOO_a,FIFOO_b)に蓄積されたデータ量を調整し、時分割実行ユニット50dからの画像データの出力速度を一定に保つために、時分割実行ユニット50dの前後でパイプラインを動作させるクロックを動的に変化させる必要がある。そこで、画像処理プロセッサ5aは、時分割実行ユニット50dの前側であるバッファ12(FIFOI_a,FIFOI_b)の入力側を、時分割実行ユニット50dの後側であるバッファ12(FIFOO_a,FIFOO_b)の出力側と異なるa系統およびb系統調整TG19で生成したクロック信号に基づいて駆動している。また、画像処理プロセッサ5aは、時分割実行ユニット50d内にあたるバッファ12(FIFOI_a,FIFOI_b)の出力側からバッファ12(FIFOO_a,FIFOO_b)の入力側までの間を、調整LTG20で生成したクロック信号に基づいて駆動している。
【0090】
次に、図9は、基準TG8、調整TG19および調整LTG20の構成を示す概略図である。なお、図9(a)は、基準TG8の構成を示す概略図、図9(b)は、調整TG19の構成を示す概略図、図9(c)は、調整LTG20の構成を示す概略図である。また、以下では、a系統基準TG8、a系統調整TG19およびa系統調整LTG20について説明するが、b系統基準TG8、b系統調整TG19およびb系統調整LTG20も同じ構成となるので詳細な説明を繰返さない。
【0091】
図9(a)に示すa系統基準TG8は、タイミング信号生成の基準となるクロック信号clk_aが入力される画像タイミング生成部80を有している。画像タイミング生成部80は、入力されるクロック信号clk_aをカウントして、画像転送用フォーマットに従った図2に示すようなタイミング信号を生成し、出力する。
【0092】
図9(b)に示すa系統調整TG19は、カウンタ91、比較器92、セレクタ93、および画像タイミング生成部94を有している。a系統調整TG19は、a系統基準TG8の機能を拡張した構成で、タイミング信号生成の基準となるクロック信号clk_aの他に、クロック信号clk_aより周期の速いクロック信号clk_fastと、クロック信号clk_aより周期の遅いクロック信号clk_slowとがカウンタ91に入力される。
【0093】
図10は、本発明の実施の形態4に係る画像処理プロセッサ5aのa系統調整TG19で処理される信号の波形を示すタイミングチャートである。図10には、クロック信号clk_fast、クロック信号clk_a、クロック信号clk_slow、画像タイミング生成部94の状態を示すカウンタEn、コントローラクロック制御信号、およびクロック信号clk_blendが図示してある。
【0094】
画像処理コントローラ6は、バッファ12(FIFOI_a,FIFOI_b)に蓄積された画像データの量がある基準値に比べて不足し、クロックを変更する必要があると判断した場合、比較器92にコントローラクロック制御信号を出力する。a系統調整TG19は、コントローラクロック制御信号が入力されると、カウンタEnがオン状態となる。
【0095】
比較器92は、コントローラクロック制御信号が正の値であれば、クロック信号clk_fastへセレクタ93を切替え、コントローラクロック制御信号が負の値であれば、クロック信号clk_slowへセレクタ93を切替える。
【0096】
画像タイミング生成部94は、セレクタ93を介して入力されるクロック信号clk_blend(クロック信号clk_fast、クロック信号clk_a、クロック信号clk_slowのいずれか1つのクロック信号)をカウントして、画像転送用フォーマットに従ったタイミング信号を生成し、出力する。
【0097】
なお、a系統調整TG19は、クロック信号clk_fastのカウント値と、クロック信号clk_aのカウント値との差がコントローラクロック制御信号の値となったとき、クロック信号clk_aへセレクタ93を戻す。具体的に、a系統調整TG19は、図10に示すように、コントローラクロック制御信号の値が+5の場合、クロック信号clk_fastへセレクタ93を切替え、クロック信号clk_aのカウント値との差が+5となったとき、クロック信号clk_aへセレクタ93を戻す。
【0098】
また、a系統調整TG19は、クロック信号clk_slowのカウント値と、クロック信号clk_aのカウント値との差がコントローラクロック制御信号の値となったときも、クロック信号clk_aへセレクタ93を戻す。
【0099】
a系統調整LTG20は、2系統のパイプラインに対して複合動作するため、LTG9と同様に、クロック信号clk_aとクロック信号clk_bとの和相当の周波数で動作することに加え、和以上の速度を保証し、和に近い周波数で出力するためのクロック生成機能を備えている。
【0100】
図9(c)に示すa系統調整LTG20は、カウンタ201、PLL(Phase-locked loop)回路202、比較器203、および画像タイミング生成部204を有している。カウンタ201は、クロック信号clk_aおよびクロック信号clk_bの周期数をカウントする。比較器203は、クロック信号clk_aとクロック信号clk_bとの周期数の和とPLL回路202の周期数カウントを比較して、修正値を計算し、PLL回路202の分周設定値を変更する。なお、比較器203は、クロック信号clk_aとクロック信号clk_bとの周期数の和とPLL回路202の周期数カウントを比較する際、コントローラクロック制御信号の値を考慮してもよい。a系統調整LTG20は、カウント単位で上記の処理を繰り返し、PLL回路202から出力するクロック信号clk_blendを、目標出力(=クロック信号clk_a+クロック信号clk_b+周波数マージンW)に追従するように制御してある。
【0101】
画像タイミング生成部204は、PLL回路202から出力するクロック信号clk_blendをカウントして、画像転送用フォーマットに従ったタイミング信号を生成し、出力する。
【0102】
以上のように、本発明の実施の形態4に係る画像処理プロセッサ5aは、時分割実行ユニット50dの前後でパイプラインを動作させる速度(クロック)に速度差を持たせているので、バッファ12(FIFOI_a,FIFOI_b)およびバッファ12(FIFOO_a,FIFOO_b)に蓄積されるデータ量を適切に調整することができる。
【0103】
(実施の形態5)
本発明の実施の形態5に係る画像処理プロセッサは、各系統のパイプラインでの演算処理がある基準のクロック信号にしたがって動作するのではなく、演算ユニット間で送受信される要求信号および応答信号に基づき画像データの転送タイミングを決定する非同期型である。
【0104】
図11は、本発明の実施の形態5に係る画像処理プロセッサの構成を示す概略図である。図11に示す画像処理プロセッサ5bは、a系統およびb系統基準TG8に加えて演算基準TG17を備えている以外、図5に示す画像処理プロセッサ5の構成と同じである。そのため、本発明の実施の形態5に係る画像処理プロセッサ5bは、実施の形態1に係る画像処理プロセッサ5と同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0105】
画像処理プロセッサ5bは、各系統のパイプラインでの演算処理が非同期では各演算ユニット50a,50b,50cが非同期の転送時間で動作している。そして、画像処理プロセッサ5bは、外部からパイプラインへ画像データを入力する転送タイミングを決定するクロック信号を生成するために、a系統およびb系統基準TG8を備えている。さらに、画像処理プロセッサ5bは、パイプラインから外部へ画像データを出力する転送タイミングを決定するクロック信号を生成するために、演算基準TG17を備えている。
【0106】
演算ユニット50bから画像データの入力を要求する外部出力要求信号aが画像処理コントローラ6に入力されると、画像処理コントローラ6は、外部入力要求信号aをa系統基準TG8に出力する。画像処理プロセッサ5bは、a系統基準TG8で生成されるクロック信号に基づき、図示していない画像メモリから時分割実行ユニット50dのバッファ12(FIFOI_a)に、画像データを供給する。a系統基準TG8は、外部入力応答信号a及び、外部入力同期信号aを画像処理コントローラ6に出力する。
【0107】
画像処理コントローラ6は、a系統基準TG8から外部入力応答信号aが入力されると、演算ユニット50bから入力された外部出力要求信号aを消し、a系統基準TG8から入力された外部入力同期信号aを、外部出力応答信号aとともに演算ユニット50bに出力する。
【0108】
演算ユニット50bは、バッファ12(FIFOO_a)から出力された画像データを、入力された外部入力同期信号aと演算基準TG17とのタイミングに基づき演算処理を行なう。
【0109】
画像処理プロセッサ5bは、安定動作するために、バッファ12(FIFOI_a)の入力側を駆動するa系統およびb系統基準TG8が生成するクロック信号よりも、バッファ12(FIFOO_a)の出力側および演算ユニット50b,50cを駆動する演算基準TG17が生成するクロック信号の方の周期を速くする必要がある。なお、LTG9は、演算基準TG17で生成したクロック信号に基づいて、時分割実行ユニット50dを時分割で演算処理させる。
【0110】
以上のように、本発明の実施の形態5に係る画像処理プロセッサ5bは、演算ユニット50a,50b,50c間で送受信される外部入力または外部出力要求信号、および外部入力または外部出力応答信号に基づき画像データの転送タイミングを決定するので、演算ユニット50a,50b,50cの現実の動作にあわせて、安定した駆動を行なうことが可能となる。
【0111】
(実施の形態6)
図12は、本発明の実施の形態6に係る時分割実行ユニットの構成を示す概略図である。図12に示す時分割実行ユニット50dは、バッファ12(FIFOI_a)と入力セレクタ14との間に拡張記憶部18を備えている以外、図4に示す時分割実行ユニット50dの構成と同じである。そのため、本発明の実施の形態6に係る時分割実行ユニット50dは、実施の形態1に係る時分割実行ユニット50dと同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0112】
演算ユニット50aが画像データから所定のデータをフィルタする演算処理の場合、演算ユニット50aは、たとえば、サイクルごと3ライン分の画像データを取込み、演算処理する必要がある。
【0113】
しかし、バッファ12(FIFOI_a,FIFOI_b)は、1ライン分の画像データを保持するだけで、3ライン分の画像データを保持することはできない。そこで、図4に示す時分割実行ユニット50dは、1ライン分の画像データを保持するラインバッファを2つ有する拡張記憶部18を備えている。
【0114】
図4に示す時分割実行ユニット50dは、拡張記憶部18を備えているので、バッファ12(FIFOI_a,FIFOI_b)とあわせて、3ライン分の画像データを保持し、演算ユニット50aに供給することができる。拡張記憶部18は、複数のラインバッファを直列に接続し、過去に依存する画像データを繰り返し利用することができる。また、系統ごとに、バッファ12(FIFOI_a,FIFOI_b)と入力セレクタ14との間に拡張記憶部18を接続してある。
【0115】
以上のように、本発明の実施の形態6に係る時分割実行ユニット50dは、3ライン分の画像データを演算ユニット50aで1度に処理することができるので、演算ユニット50aを複数搭載したパイプラインと等価の動作を実現することができる。
【0116】
(実施の形態7)
図13は、本発明の実施の形態7に係る時分割実行ユニットの構成を示す概略図である。図13に示す時分割実行ユニット50dは、単一の演算ユニット50aに代えて複数の演算ユニット50aを直列接続した構成以外、図4に示す時分割実行ユニット50dの構成と同じである。そのため、本発明の実施の形態7に係る時分割実行ユニット50dは、実施の形態1に係る時分割実行ユニット50dと同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0117】
図4に示す時分割実行ユニット50dは、入力セレクタ14と出力セレクタ15との間に演算ユニット50a1と演算ユニット50a2とを直列に接続してある。そのため、画像データの輝度を変換する演算ユニット50a1と、画像データから所定のデータをフィルタする演算ユニット50a2とを時分割で演算処理させることができる。
【0118】
以上のように、本発明の実施の形態7に係る時分割実行ユニット50dは、入力セレクタ14と出力セレクタ15との間に複数の演算ユニット50aを直列接続した構成にすることができるので、重複する演算ユニットの組込みをさらに減らし、回路規模を縮小することができる。
【0119】
(実施の形態8)
図14は、本発明の実施の形態8に係る時分割実行ユニットの構成を示す概略図である。図14に示す時分割実行ユニット50dは、a系統およびb系統の2系統のみからなるパイプラインを有する構成はなく、n系統(n≧2)からなるパイプラインを有する構成である。なお、本発明の実施の形態8に係る時分割実行ユニット50dは、実施の形態1に係る時分割実行ユニット50dと同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0120】
図14に示す時分割実行ユニット50dは、n系統(n≧2)からなるパイプラインを有しているので、入力セレクタ14の前段にn個のバッファ12(FIFO)、出力セレクタ15の後段にn個のバッファ12(FIFO)を備えている。
【0121】
以上のように、本発明の実施の形態8に係る時分割実行ユニット50dは、n系統(n≧2)からなるパイプラインを有する構成であるため、重複する演算ユニットの組込みをさらに減らし、回路規模を縮小することができる。
【0122】
(実施の形態9)
図15は、本発明の実施の形態9に係る時分割実行ユニットの構成を示す概略図である。図15に示す時分割実行ユニット50dは、2つのLUT(ルックアップテーブル)152と、LUT152を切替える切替セレクタ151とを備える構成以外、図4に示す時分割実行ユニット50dの構成と同じである。そのため、本発明の実施の形態9に係る時分割実行ユニット50dは、実施の形態1に係る時分割実行ユニット50dと同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0123】
図15に示す時分割実行ユニット50dは、系統ごとにLUT152を切替え、演算ユニット50aの設定を書替えて、演算処理を実行する。
【0124】
系統が切替わった後、演算ユニット50aは、別の系統の演算処理を実行するための設定を行なうタイミングで、LUT152に保管してある設定パラメータをLUT152から演算ユニット50aに転送する。そのため、演算ユニット50aは、各系統の演算処理ごとに設定パラメータが書替わり、系統ごとに異なる設定の演算処理を行なうことができる。
【0125】
以上のように、本発明の実施の形態9に係る時分割実行ユニット50dは、2つのLUT152と、LUT152を切替える切替セレクタ151とを備えているので、系統ごと演算ユニット50aで最適な演算処理を行なうことができる。
【0126】
(実施の形態10)
図16は、本発明の実施の形態10に係る画像処理プロセッサの構成を示す概略図である。図16に示す画像処理プロセッサ5cは、a系統のパイプラインと、b系統のパイプラインとが等価的に並列に接続してある構成ではなく、a系統のパイプラインと、b系統のパイプラインとを1つのパイプラインとして直列に接続した構成である。なお、本発明の実施の形態10に係る画像処理プロセッサ5cは、実施の形態1に係る画像処理プロセッサ5と同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0127】
図16(a)に示すパイプラインで演算処理する演算ユニット50の処理順は、画像データの輝度を変換する演算ユニット“1”、画像データから所定のデータをフィルタする演算ユニット“2”、画像データに対してガンマ補正を行なう演算ユニット“3”、画像データの輝度を変換する演算ユニット“4”の順である。
【0128】
そのため、図16に示す画像処理プロセッサ5cは、入力セレクタ14と出力セレクタ15との間に、画像データの輝度を変換する演算ユニット(“2”,“4”)50fを備えている。そして、画像処理プロセッサ5cにおけるa系統のパイプラインの前段に演算ユニット(“1”)50eを、a系統のパイプラインの後段、かつb系統のパイプラインの前段に演算ユニット(“3”)50gを備えている。
【0129】
以上のように、本発明の実施の形態10に係る画像処理プロセッサ5cは、a系統のパイプラインと、b系統のパイプラインとを1つのパイプラインとして直列に接続した構成であるので、複数の演算ユニットをさまざまな構成に組合わせて、演算処理を実行することができる。
【0130】
なお、本発明に係る画像処理プロセッサは、画像データをパイプライン演算方式にて演算処理を実行するパイプライン演算装置について説明したが、本発明はこれに限定されるもではない。本発明は、入力データをパイプライン演算方式にて演算処理を実行するパイプライン演算装置であれば、いずれの情報処理プロセッサにも適用することができる。
【0131】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0132】
1 画像出力部、2 画像入力部、3 表示装置、4 画像メモリ、5 画像処理プロセッサ、6 画像コントローラ、7 マイクロコンピュータ、8 基準TG、9 LTG、10 入力インタフェイス、11 出力インタフェイス、12 バッファ、13 遅延器、14 入力セレクタ、15 出力セレクタ、16 割込みコントローラ、17 演算基準TG、18 拡張記憶部、19 調整TG、20 調整LTG。
【技術分野】
【0001】
本発明は、パイプライン演算装置に関し、特に、パイプライン演算方式にて入力データに対して演算処理を行なう複数の演算ユニットを備えるパイプライン演算装置に関する。
【背景技術】
【0002】
従来、画像データを処理する方法として、ハードウェアを用いて画像データを処理する方法と、ソフトウェアを用いて画像データを処理する方法とが知られている。
【0003】
ハードウェアを用いて画像データを処理する方法では、特定の画像データを処理する演算ユニットをハイプライン演算方式で演算処理することができるような回路構成をチップに搭載した専用ハードウェア(パイプライン演算装置)が必要である。この専用ハードウェアは、画像データに対して特定の演算処理を行なうために回路構成を最適化してあるので、高速に画像データを処理することが可能である。具体的なパイプライン演算装置の構成については、特許文献1〜6に開示してある。
【0004】
ただし、専用ハードウェアは、画像データに対して特定の演算処理を行なうために回路構成を設計するため、演算処理を行なうことできる範囲が狭く、範囲外の演算処理を行なうため別途回路構成を設計し直す必要があった。
【0005】
ソフトウェアを用いて画像データを処理する方法は、汎用的な回路構成を用いて、プログラムにより演算処理を行なうため、プログラムを変更するだけで画像データに対するさまざまな演算処理を行なうことができる。
【0006】
ただし、ソフトウェアを用いて画像データを処理する方法は、演算処理を行なうことできる範囲が広いが、専用ハードウェアと比較して演算処理を行なう速度が遅い。
【0007】
そのため、設計者は、ハードウェアを用いて画像データを処理する方法と、ソフトウェアを用いて画像データを処理する方法とを適宜利用して、画像処理システムを構築している。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2008−310649号公報
【特許文献2】特開平7−73160号公報
【特許文献3】特開昭57−209564号公報
【特許文献4】特開平6−195369号公報
【特許文献5】特開平11−41488号公報
【特許文献6】特開2008−108049号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
画像データの処理には、さまざまな処理が存在するが、異なる処理内容であっても同じ演算処理が含まれていたり、処理内容に同じ演算処理が複数含まれていたりすることも多い。そのため、専用ハードウェア(パイプライン演算装置)では、同じ演算処理であっても異なる処理内容であれば、同じ演算処理を実行する演算ユニットを設けていた。また、専用ハードウェアでは、処理内容に同じ演算処理が複数含まれていれば、含まれている演算処理の数だけ演算処理を実行する演算ユニットを設けていた。
【0010】
そのため、専用ハードウェアは、重複する演算ユニットを複数組込むことになり、回路規模が大きくなるという問題があった。
【0011】
特許文献1で開示してあるパイプライン演算装置は、複数の演算ユニットの処理順序を直並列に組替え、動作させるものである。そのため、特許文献1で開示してあるパイプライン演算装置は、処理内容において一つの演算ユニットで演算処理を行なう回数が入力データ毎に1回程度であるため、重複する演算ユニット回路を複数組込むことになり、回路規模が大きくなる。
【0012】
また、従来のパイプライン演算装置は、パイプライン中の各演算ユニットでの動作クロックが一定であるため、高速動作が可能な演算ユニットであっても、最も動作の遅い演算ユニットにあわせて動作クロックを決定する必要があった。そのため、従来のパイプライン演算装置では、高速動作が可能な演算ユニットの演算処理能力を十分に利用することができず、ハードウェア資源を無駄にしていた。
【0013】
それゆえに、本発明は、上記問題点を解決するためになされたものであり、重複する演算ユニットの組込みを減らし、回路規模を縮小することが可能なパイプライン演算装置を提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明に係るパイプライン演算装置は、複数の演算ユニットと、入力セレクタと、出力セレクタと、バッファと、制御部とを備えている。演算ユニットは、パイプライン演算方式にて入力データに対して演算処理を行なう。入力セレクタは、複数の演算ユニットのうち、複数のパイプラインで重複して演算処理を行なう少なくとも1つの演算ユニットの前段に接続され、演算処理を行なう入力データを選択して入力する。出力セレクタは、複数の演算ユニットのうち、複数のパイプラインで重複して演算処理を行なう少なくとも1つの演算ユニットの後段に接続され、演算処理を行なった入力データの出力先を選択する。バッファは、入力セレクタの前段、および出力セレクタの後段にそれぞれ接続され、入力データ、および演算処理を行なった入力データを一時的に保持する。制御部は、入力セレクタと出力セレクタとの間に接続された少なくとも1つの演算ユニットの動作クロックを、他の演算ユニットを動作させる基準クロックよりも高速になるように制御する。入力セレクタと出力セレクタとの間に接続された少なくとも1つの演算ユニットが、パイプラインごとに時分割で演算処理を行なう。
【0015】
好ましくは、入力セレクタが、前段に接続されたバッファに所定量の入力データが蓄積された後、後段に接続した演算ユニットに入力データを入力する。
【0016】
好ましくは、制御部が、入力セレクタの前段に接続されるパイプラインを動作させる第1クロックと、出力セレクタの後段に接続されたパイプラインを動作させる第2クロックとを異なるように調整する。
【0017】
好ましくは、制御部は、入力セレクタで入力データを選択してから、出力セレクタで出力先を選択するまでの遅延時間を含む履歴情報を記憶する記憶部を有し、出力セレクタは、記憶部に記憶した遅延時間に基づいて出力先を選択する。
【0018】
好ましくは、制御部は、外部から信号に基づき、時分割で演算処理を行なう演算ユニットの時分割の数を変えるために動作クロックを変更する。
【0019】
好ましくは、入力セレクタとバッファとの間に接続され、直列接続してある複数のラインバッファを有する拡張記憶部をさらに備える。
【0020】
好ましくは、パイプラインは、複数の演算ユニット間で送受信される要求信号および応答信号に基づき入力データの転送タイミングを決定する非同期型である。
【発明の効果】
【0021】
本発明に係るパイプライン演算装置によれば、複数のパイプラインで重複して演算処理を行なう演算ユニットを、パイプラインごとに時分割で演算処理を行なわせることで、重複する演算ユニットの組込みを減らし、回路規模を縮小することができる。
【図面の簡単な説明】
【0022】
【図1】本発明の実施の形態1に係るパイプライン演算装置を含む画像情報処理装置の構成を示す概略図である。
【図2】本発明の実施の形態1に係る基準TG画像データに関するタイミング信号を示す波形図である。
【図3】本発明の実施の形態1に係るLTG画像データに関するタイミング信号を示す波形図である。
【図4】本発明の実施の形態1に係る画像処理プロセッサの構成を示す概略図である。
【図5】本発明の実施の形態1に係る画像処理プロセッサの画像処理コントローラに入出力する信号を示した信号配線図である。
【図6】本発明の実施の形態2に係る画像処理プロセッサのa系統のパイプラインの入力データ量と、b系統のパイプラインの入力データ量との関係を示すグラフである。
【図7】本発明の実施の形態3に係る画像処理プロセッサの動作を説明するためのタイミングチャートである。
【図8】本発明の実施の形態4に係る画像処理プロセッサの構成を示す概略図である。
【図9】基準TG、調整TGおよび調整LTGの構成を示す概略図である。
【図10】本発明の実施の形態4に係る画像処理プロセッサのa系統調整TGで処理される信号の波形を示すタイミングチャートである。
【図11】本発明の実施の形態5に係る画像処理プロセッサの構成を示す概略図である。
【図12】本発明の実施の形態6に係る時分割実行ユニットの構成を示す概略図である。
【図13】本発明の実施の形態7に係る時分割実行ユニットの構成を示す概略図である。
【図14】本発明の実施の形態8に係る時分割実行ユニットの構成を示す概略図である。
【図15】本発明の実施の形態9に係る時分割実行ユニットの構成を示す概略図である。
【図16】本発明の実施の形態10に係る画像処理プロセッサの構成を示す概略図である。
【発明を実施するための形態】
【0023】
以下、本発明に係る実施の形態について図面を参照して説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係るパイプライン演算装置を含む画像情報処理装置の構成を示す概略図である。図1に示す画像情報処理装置100は、画像出力部1、画像入力部2を含み、表示装置3に画像データを出力している。
【0024】
画像入力部2は、テレビチューナ、DVD(Digital Versatile Disc)再生装置、やBlu−Rayディスク再生装置などの画像データを生成する画像生成装置に接続され、画像出力部1に生成した画像データを出力する。
【0025】
画像出力部1は、画像入力部2から入力した画像データに対して所定の画像処理(たとえば、画像データ(RGBのディジタルデータ)を画素単位でガンマ補正する)を行ない、液晶パネルなどの表示装置3に所定の画像処理を行なった画像データをライン単位に出力する。画像出力部1は、画像メモリ4、画像処理プロセッサ5、画像処理コントローラ6、マイクロコンピュータ7、基準TG(タイミングジェネレータ)8、LTG(ローカルタイミングジェネレータ)9、入力インタフェース10、出力インタフェース11、割込みコントローラ16を含んでいる。
【0026】
画像メモリ4は、画像処理プロセッサ5で処理する画像データを一時的に保存するメモリである。なお、画像メモリ4は、画像出力部1内に独立して設けておく必要はなく、マイクロコンピュータ7のデータを保存する図示していないメモリと共用してもよい。
【0027】
画像処理プロセッサ5は、後述する演算ユニットを用いて、画像データに対して所定の画像処理を行なう演算装置である。また、画像処理プロセッサ5は、複数の演算ユニットを用いて、パイプライン演算方式にて画像データに対して演算処理を行なうパイプライン演算装置でもある。
【0028】
画像処理プロセッサ5は、入力セレクタ14、出力セレクタ15、演算ユニット50a,50b,50cを含んでいる。入力セレクタ14は、演算ユニット50aの前段に接続され、演算処理を行なう画像データを選択して入力する切替装置である。出力セレクタ15は、演算ユニット50aの後段に接続され、演算処理を行なった画像データの出力先(演算ユニット50bまたは演算ユニット50c)を選択する切替装置である。
【0029】
画像処理コントローラ6は、画像処理プロセッサ5の動作を制御する制御装置である。具体的に、画像処理コントローラ6は、マイクロコンピュータ7からの指令に従って、画像処理プロセッサ5に制御信号を出力し、画像処理プロセッサ5を制御して、画像処理の動作モードやパスなどを決定している。
【0030】
マイクロコンピュータ7は、画像処理コントローラ6を含む画像出力部1全体の動作を制御する装置である。
【0031】
基準TG8は、画像処理プロセッサ5の動作タイミングを決めるクロック信号を生成する装置である。そのため、画像処理プロセッサ5内に設けてある装置は、基本的に基準TG8が生成したクロック信号に基づき動作している。
【0032】
LTG9は、基準TG8と異なる周期のクロック信号を生成する装置で、画像処理プロセッサ5内に設けてある一部の装置の動作タイミングを決めている。なお、LTG9は、画像処理コントローラ6からのクロック制御信号に基づき、基準TG8で生成されたタイミングを元に、基準TG8と異なる周期のクロック信号を生成している。
【0033】
入力インタフェース10は、画像入力部2と接続するためのインタフェースであり、画像入力部2から画像データを入力する。
【0034】
出力インタフェース11は、表示装置3と接続するためのインタフェースであり、画像出力部1で所定の画像処理した画像データを表示装置3へ出力する。図1に示す画像出力部1は、2つの出力インタフェース11を有し、演算ユニット50bに一方の出力インタフェース11を、演算ユニット50cに他方の出力インタフェース11をそれぞれ接続してある。それぞれの出力インタフェース11には、それぞれ表示装置3を接続してある。
【0035】
割込みコントローラ16は、画像入力部2へ割込み信号を出力する割込み出力機能を備えた制御装置である。
【0036】
具体的に、画像情報処理装置100の動作について説明する。まず、画像入力部2は、映像を構成する各フレームの画像データ(フレームデータ)を画像出力部1の入力インタフェース10に入力する。画像出力部1は、入力インタフェース10に入力された画像データ(フレームデータ)をライン同期信号に基づきライン毎の画像データ(ラインデータ)に変換する。図2は、本発明の実施の形態1に係る基準TG8の画像データに関するタイミング信号を示す波形図である。図2に示すライン同期信号は、1つのフレーム同期信号に複数含まれている。また、図2に示すライン同期信号には、複数のビットクロック信号が含まれ、ビットクロック信号の1周期が画像データの1ビットに対応している。
【0037】
入力インタフェース10は、1ライン(ライン同期信号の1周期)分の画像データに対応するビット幅を確保したパラレルバスを用いて、画像処理プロセッサ5にライン毎の画像データ(ラインデータ)を順次入力する。また、画像入力部2は、フレーム同期信号およびライン同期信号を、画像データとともに入力インタフェース10に入力する。なお、入力インタフェース10は、ライン同期信号は、例えば画像データの1ドットが24ビットの場合、24ビットのビットクロック信号で1周期の信号となる。
【0038】
基準TG8は、フレーム同期信号に合わせて、割込みコントローラ16を介して画像入力部2へ割込み信号を出力する。これにより、画像入力部2からの画像データを入力するタイミングが、基準TG8の動作クロック信号のタイミングと同期することができる。
【0039】
図2に示す波形は、画像入力部2から画像出力部1の入力インタフェース10へ入力され、基準TG8で生成したタイミング信号を図示してある。
【0040】
画像入力部2から画像データを入力した画像処理プロセッサ5は、複数の演算ユニット50a,50b,50cを含んでおり、当該演算ユニット50a,50b,50cを用いて、各種の画像処理をパイプライン演算方式で演算処理する構成である。画像処理プロセッサ5は、複数のパイプラインで重複して演算処理を行なう演算ユニット50aを、パイプラインごとに時分割で演算処理を行なう。そのため、演算ユニット50aの動作クロックは、演算ユニット50b,50cの動作クロックと周期が異なり、LTG9で生成したクロック信号に基づいている。図3は、本発明の実施の形態1に係るLTG9の画像データに関するタイミング信号を示す波形図である。図3に示すタイミング信号は、基準TG8のタイミング信号の略2倍の周期を有している。具体的に、図2に示す基準TG8のライン同期信号の1周期に、図3に示すLTG9のライン同期信号の2周期が対応している。
【0041】
そのため、画像処理プロセッサ5は、基準TG8のライン同期信号の1周期間に、演算ユニット50aをa系統のパイプラインでの演算処理と、b系統のパイプラインでの演算処理とを時分割で行なうことができる。具体的に、画像処理コントローラ6は、LTG9のライン同期信号に基づき、演算ユニット50aで演算処理するパイプラインの系統を図3に示すように切替える。つまり、画像処理コントローラ6は、基準TG8のライン同期信号の1周期間に、演算ユニット50aをa系統で演算処理するタイミングと、b系統で演算処理するタイミングとを切替えている。
【0042】
画像処理プロセッサ5は、画像メモリ4と接続してあるので、演算ユニット50a,50b,50cで演算処理した画像データを、画像メモリ4に一時的に保存することが可能である。また、画像処理プロセッサ5は、画像処理した画像データを表示装置3へ出力して、画像データを表示装置3に表示させる。
【0043】
次に、画像処理プロセッサ5での演算ユニット50a,50b,50cの演算処理を詳しく説明する。図4は、本発明の実施の形態1に係る画像処理プロセッサ5の構成を示す概略図である。なお、図4(a)は、a系統およびb系統のパイプラインで演算処理する演算ユニットの処理順を示したブロック図である。図4(b)は、画像処理プロセッサ5の構成を示す概略図である。図5は、本発明の実施の形態1に係る画像処理プロセッサ5の画像処理コントローラ6に入出力する信号を示した信号配線図である。
【0044】
図4に示す画像処理プロセッサ5は、演算ユニット50aを含む時分割実行ユニット50dと、時分割実行ユニット50dで演算処理した画像データがそれぞれ入力される演算ユニット50b,50cとを備えている。さらに、時分割実行ユニット50dは、入力セレクタ14と、出力セレクタ15とを備えている。なお、画像処理プロセッサ5は、演算処理するタイミング信号を生成して時分割動作させるLTG9と、基準となるタイミング信号を生成する基準TG8と、パイプラインの系統の切替を制御する画像処理コントローラ6とに接続してある。
【0045】
画像処理コントローラ6は、入力セレクタ14および出力セレクタ15で入出力を選択することで演算処理する系統のパイプラインを設定した後、時分割実行ユニット50dにイネーブル信号を入力することで、演算ユニット50aをパイプラインごとに時分割で演算処理を行なわせることができる。
【0046】
なお、画像処理プロセッサ5は、入力セレクタ14の前段、および出力セレクタ15の後段にそれぞれ接続され、画像データ、および演算処理を行なった画像データを一時的に保持するバッファ12を備えている。バッファ12は、時分割実行ユニット50dでの演算処理のタイミングと、他のユニットでの演算処理などのタイミングとを差を吸収するためのFIFO(First In First Out)バッファである。図4には、a系統のパイプラインの入力側に設けてあるバッファ12をFIFOI_aと、a系統のパイプラインの出力側に設けてあるバッファ12をFIFOO_aと、b系統のパイプラインの入力側に設けてあるバッファ12をFIFOI_bと、b系統のパイプラインの出力側に設けてあるバッファ12をFIFOO_bとそれぞれ記載してある。
【0047】
次に、画像処理プロセッサ5の具体的な動作について詳細に説明する。図4(a)に示すa系統のパイプラインで演算処理する演算ユニット50の処理順は、画像データの輝度を変換する演算ユニット“1”、画像データから所定のデータをフィルタする演算ユニット“2”の順である。図4(b)に示すb系統のパイプラインで演算処理する演算ユニット50の処理順は、画像データの輝度を変換する演算ユニット“3”、画像データに対してガンマ補正を行なう演算ユニット“4”の順である。
【0048】
a系統のパイプラインの演算ユニット“1”と、b系統のパイプラインの演算ユニット“3”とは、同じ画像データの輝度を変換する演算処理で、複数のパイプラインで重複する演算処理である。そのため、a系統のパイプラインの演算ユニット“1”と、b系統のパイプラインの演算ユニット“3”とは、画像データの輝度を変換する1つの演算ユニット50aを時分割で演算処理することで実現することができる。つまり、演算ユニット“1”と演算ユニット“3”とを時分割実行ユニット50dにまとめ、時分割実行ユニット50dの入力セレクタ14および出力セレクタ15を切替えて実行する。
【0049】
なお、パイプラインごとでの遅延は許容されるが、演算処理の速度は、それぞれのパイプラインで一定に保つ必要がある。つまり、時分割実行ユニット50dをともに経由しているが、a系統のパイプラインで演算処理する速度と、b系統のパイプラインで演算処理する速度とをそれぞれ一定に保つ制御を行なう必要がある。そのため、図5に示すようにa系統基準TGから演算ユニット50bに至る経路の途中にタイミング信号を遅延させる遅延器13を設けてある。同様に、b系統基準TGから演算ユニット50cに至る経路の途中にもタイミング信号を遅延させる遅延器13を設けてある。なお、図5には、a系統基準TGの経路に設けてある遅延器13は、遅延器13_aと、b系統基準TGの経路に設けてある遅延器13は、遅延器13_bと、それぞれ記載してある。
【0050】
図4に示す画像処理プロセッサ5は、a系統のパイプラインの1段目の演算ユニットと、b系統のパイプラインの1段目の演算ユニットとが、共通の演算ユニット50aである。
【0051】
図5に示すa系統およびb系統のパイプラインの入力側のバッファ12(FIFOI_a,FIFOI_b)は、蓄積する画像データの量が入力基準値を上回ると、入力蓄積データ数を画像処理コントローラ6へ出力する。
【0052】
a系統およびb系統のパイプラインの出力側のバッファ12(FIFOO_a,FIFOO_b)は、蓄積する画像データの量が出力基準値を上回ると、出力蓄積データ数を画像処理コントローラ6へ出力する。
【0053】
なお、画像処理プロセッサ5は、動作初期時、バッファ12の入力基準値、出力基準値の代わりに、画像処理コントローラ6から入力される入力開始基準値、出力開始基準値を用いる。画像処理コントローラ6は、パイプラインでの演算処理に応じて、各系統のパイプラインの入力開始基準値および出力開始基準値を設定する。a系統のパイプラインでの演算処理と、b系統のパイプラインでの演算処理とで非同期に動作させる場合や、動作モードを動的に変更する場合、画像処理コントローラ6は、動作初期段階での入力開始基準値を大きく設定し、その後、低い入力基準値とすることで、画像データを演算ユニット50aに滞ることなく供給し、画像処理プロセッサ5を安定して動作させることができる。
【0054】
バッファ12(FIFOO_a,FIFOO_b)は、出力開始基準値を上回ると出力蓄積データ数を画像処理コントローラ6へ出力する。その後、画像処理プロセッサ5は、バッファ12(FIFOO_a,FIFOO_b)から外部へ出力を開始する。なお、画像処理コントローラ6は、動作初期段階での出力開始基準値を大きく設定することで、バッファ12(FIFOO_a,FIFOO_b)から外部へ出力する画像データの滞りを防ぎ、画像処理プロセッサ5を安定して動作させることができる。
【0055】
画像処理コントローラ6は、出力蓄積データ数が入力され、かつ入力蓄積データ数が入力された系統のパイプラインから、交互または周期的に切替えて、演算ユニット50aに演算処理を実行させる。具体的に、画像処理コントローラ6は、LTG9のライン同期信号単位で、読出(read)セレクタを選択するreadセレクタ切替信号を出力する。
【0056】
時分割実行ユニット50dにイネーブル信号(ユニットEn)を入力した後、演算処理を要求するバッファ12(FIFOI_a,FIFOI_b)から画像データを入力して、時分割実行ユニット50dで画像データの演算処理を行なう。演算処理にかかる遅延時間をクロック信号でカウントすることで測定する。入力セレクタ14を切替えた後、バッファ12(FIFOI_a,FIFOI_b)から入力された画像データは、時分割実行ユニット50dでの遅延時間を待って時分割実行ユニット50dに入力される。
【0057】
画像処理コントローラ6は、入力セレクタ14を切替えた後、遅延時間を待って、入力セレクタ14で選択した系統のパイプラインへ出力セレクタ15を切替えるように、書込(write)セレクタを選択するwriteセレクタ切替信号を出力する。そのため、時分割実行ユニット50dは、入力セレクタ14の選択と、出力セレクタ15の選択との間に時間差が生じる。なお、画像処理コントローラ6は、入力セレクタ14で画像データを選択してから、出力セレクタ15で出力先を選択するまでの遅延時間を含む履歴情報を記憶する記憶部を有している。
【0058】
そして、画像処理コントローラ6の記憶部に記憶した履歴情報に基づいて、画像処理コントローラ6は、遅延器13に対して適切な遅延量を出力する。遅延器13は、画像処理コントローラ6から出力された遅延量に基づき、a系およびb系統基準TGから演算ユニット50b,50cに供給されるタイミング信号を遅延させる。
【0059】
以上のように、本発明の実施の形態1に係る画像処理プロセッサ5は、パイプライン演算方式にて画像データ(入力データ)に対して演算処理を行なう複数の演算ユニット50a,50b,50c、入力セレクタ14、出力セレクタ15、入力セレクタ14の前段、および出力セレクタ15の後段にバッファ12、画像処理コントローラ6を備えている。パイプライン中の演算ユニット50aを、入力セレクタ14と出力セレクタ15とで囲み、演算ユニット50aを基準TGのライン同期信号(基準クロック)に比べ、周期の速いLTGのライン同期信号(動作クロック)で、演算ユニット50aに演算処理をさせているので、複数のパイプラインで重複して演算処理を行なう演算ユニット50aを、パイプラインごとに時分割で演算処理を行なわせることで、重複する演算ユニット50aの組込みを減らし、回路規模を縮小することができる。
【0060】
なお、画像処理プロセッサ5は、バッファ12に非同期のFIFOバッファであるので、時分割実行ユニット50dに画像データを入力する動作クロックと、時分割実行ユニット50dから画像データを出力する動作クロックとの周波数が異なっていてもよい。
【0061】
(実施の形態2)
本発明の実施の形態2に係る画像処理プロセッサは、a系統のパイプラインと、b系統のパイプラインとがそれぞれ独立して、非同期の動作クロックで動作している。なお、本発明の実施の形態2に係る画像処理プロセッサは、実施の形態1に係る画像処理プロセッサ5の構成と同じであるため、同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0062】
本実施の形態2に係るLTG9は、周期ごとに、基準TG8のライン同期信号に従って、モード切替タイミング、イネーブル信号を生成する。基準TG8のライン同期信号の1周期で、a系統およびb系統のパイプラインでの演算処理が行なえるように、LTG9のライン同期信号の周期を速めている。
【0063】
複数のパイプラインは、入力と出力との一対で構成してあり、固定されている。すなわち、バッファ12(FIFOI_a)から入力された画像データは、バッファ12(FIFOO_a)から、バッファ12(FIFOI_b)から入力された画像データは、バッファ12(FIFOO_b)からそれぞれ出力される。
【0064】
具体的に、画像処理コントローラ6は、入力セレクタ14および出力セレクタ15にセレクタ切替信号を入力して、演算処理を行なうa系統またはb系統のパイプラインを選択する。
【0065】
そして、a系統のパイプラインの基準タイミングに同期して入力されるa系統の画像データと、b系統のパイプラインの基準タイミングに同期して入力されるb系統の画像データとを足しあわせたデータ量が、時分割実行ユニット50dに入力され、LTGタイミングで演算処理される。
【0066】
LTGタイミングは、図3に示したように、a系統およびb系統のパイプラインの基準タイミンで転送された複数の系統の画像データを同時に処理するため、高速なタイミングとなる。
【0067】
a系統およびb系統のパイプラインの入力側のバッファ12(FIFOI_a,FIFOI_b)から画像データが溢れないように演算処理するためには、LTGタイミングを高速にする必要があるが、演算ユニット50aが動作可能な速度には限界がある。そのため、演算ユニット50aは、できるだけ低い周波数で動作させることが望ましい。
【0068】
LTG9は、必要最低限の周波数のライン同期信号などのタイミング信号を生成すべく、LTG9の転送周波数≧a系統のパイプラインの基準TGの転送周波数+b系統のパイプラインの基準TGの転送周波数とする。ここで、転送周波数は、ライン同期信号の周波数とする。ぞのため、LTG9の設定可能な最低転送周波数=a系統のパイプラインの基準TGの転送周波数+b系統のパイプラインの基準TGの転送周波数となる。
【0069】
a系統のパイプラインの基準TGの転送周波数と、b系統のパイプラインの基準TGの転送周波数とが同じであれば、LTG9の設定可能な最低転送周波数と、a系統のパイプラインの基準TGの転送周波数と、b系統のパイプラインの基準TGの転送周波数との平均値は常に一致している。しかし、本実施の形態2に係る画像処理プロセッサ5では、a系統のパイプラインと、b系統のパイプラインとがそれぞれ独立して、非同期の動作クロックで動作しているので、a系統のパイプラインの基準TGの転送周波数と、b系統のパイプラインの基準TGの転送周波数とが異なる。そのため、LTG9の設定可能な最低転送周波数は、a系統のパイプラインの基準TGの転送周波数と、b系統のパイプラインの基準TGの転送周波数との平均値を中心に変動することになる。
【0070】
LTG9の設定可能な最低転送周波数が変動することで問題となるのは、バッファ12(FIFOI_a,FIFOI_b)に蓄積された画像データが少ない動作初期時である。具体的に、LTG9の設定可能な最低転送周波数が速いと、バッファ12(FIFOI_a,FIFOI_b)に蓄積された画像データが枯渇して、演算ユニット50aへの供給が滞り、画像処理プロセッサ5を安定して動作させることができない。
【0071】
図6は、本発明の実施の形態2に係る画像処理プロセッサ5のa系統のパイプラインの入力データ量と、b系統のパイプラインの入力データ量との関係を示すグラフである。
【0072】
図6の上段には、a系統のパイプラインの基準TGの転送周波数(a系統基準タイミング)で動作させたバッファ12(FIFOI_a)に入力された画像データを示すa系統外部入力データ量と、b系統のパイプラインの基準TGの転送周波数(b系統基準タイミング)で動作させたバッファ12(FIFOI_b)に入力された画像データを示すb系統外部入力データ量とが図示してある。
【0073】
さらに、図6の上段には、a系統外部入力データ量とb系統外部入力データ量との合計(a系統+b系統外部入力データ量と)と、LTG9の設定可能な最低転送周波数(LTG出力タイミング)で演算ユニット50aが演算処理する画像データの量である時分割ユニット処理とが図示してある。
【0074】
図6の中段には、a系統外部入力データ量と、バッファ12(FIFOI_a)に蓄積されている画像データの量であるFIFOI_a蓄積データと、a系統入力開始基準値とが図示してある。同様に、図6の下段には、b系統外部入力データ量と、バッファ12(FIFOI_b)に蓄積されている画像データの量であるFIFOI_b蓄積データと、b系統入力開始基準値とが図示してある。
【0075】
図6では、バッファ12(FIFOI_a,FIFOI_b)に、それぞれa系統入力開始基準値およびb系統入力開始基準値まで画像データを蓄積してから、時分割ユニット処理のデータ量に比べて、常にa系統+b系統外部入力データ量が下回っており、バッファ12(FIFOI_a,FIFOI_b)に蓄積された画像データが枯渇せず、演算ユニット50aへの供給が滞ることなく、画像処理プロセッサ5を安定して動作させることができていることが分かる。
【0076】
また、本発明の実施の形態2に係る画像処理プロセッサ5は、複数の系統のパイプラインのうち、どの系統のパイプラインの演算処理を優先して行なうのか選択する基準として、バッファ12(FIFOI_a,FIFOI_b)の蓄積データ量−入力開始基準値)が大きい系統のパイプラインを選択する。
【0077】
(実施の形態3)
本発明の実施の形態3に係る画像処理プロセッサは、複数の系統のパイプラインのすべてを常に動作させる構成ではなく、常に動作させる系統のパイプラインと、一時的に動作させる系統のパイプラインとが混在する構成である。なお、本発明の実施の形態3に係る画像処理プロセッサは、実施の形態1に係る画像処理プロセッサ5の構成と同じであるため、同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0078】
画像処理プロセッサ5は、一時的に動作させる系統のパイプラインが混在している場合、動作モードを変更して、使用する系統のパイプラインのみ動作させて、時分割実行ユニット50dの動作クロックを下げることで、消費電力を削減している。
【0079】
具体的に、画像処理コントローラ6は、動作モードを選択する機能を持たせてあり、たとえば、“通常モード”ではa系統のパイプラインのみ動作させておき、“並列処理モード”ではb系統のパイプラインも同時に動作させる。
【0080】
図7は、本発明の実施の形態3に係る画像処理プロセッサの動作を説明するためのタイミングチャートである。図7には、a系統のパイプラインの動作、b系統のパイプラインの動作、動作モードが図示してある。さらに、図7には、a系統のパイプラインの1段目における外部入力データ、バッファ12(FIFOI_a)の読出(read)、バッファ12(FIFOO_a)への書込(write)、a系統のパイプラインの2段目における外部入力データが図示してある。同様に、図7には、b系統のパイプラインの1段目における外部入力データ、バッファ12(FIFOI_b)の読出(read)、バッファ12(FIFOO_b)への書込(write)、b系統のパイプラインの2段目における外部入力データが図示してある。また、図7には、入力セレクタ14が選択している系統、および出力セレクタ15が選択している系統も図示してある。
【0081】
動作モードが“通常モード”の「a専用」から“並列処理モード”の「a,b時分割」へモード切替わると、a系統のパイプラインの動作、およびb系統のパイプラインの動作がともにオン状態となる。b系統のパイプラインの動作がオン状態となると、b系統のパイプラインの1段目における外部入力データ「1」が入力された立下りで、入力セレクタ14が選択している系統がa系統からb系統に切替わる。そのため、バッファ12(FIFOI_b)から外部入力データ「1」が読出され、読出された外部入力データ「1」が、演算ユニット50aで演算処理される。演算ユニット50aで演算処理された外部入力データ「1」が出力されるタイミングで、出力セレクタ15が選択している系統がa系統からb系統に切替わり、バッファ12(FIFOO_b)に演算処理された外部入力データ「1」が書込まれる。バッファ12(FIFOO_b)に書込まれた外部入力データ「1」は、b系統のパイプラインの2段目における外部入力データとして出力される。
【0082】
なお、動作モードが“通常モード”の「a専用」のとき、演算ユニット50aは時分割で演算処理する必要がないので、LTG9は、基準TG8のタイミングクロックと同周期の動作クロックを出力する。
【0083】
画像処理コントローラ6は、マイクロコンピュータ7から入力される動作モード選択信号に基づいて、動作モードが変更される。画像処理コントローラ6は、並列処理モード”の動作モード選択信号が入力された場合、LTG9にクロック制御信号を出力する。LTG9は、画像処理コントローラ6からのクロック制御信号に基づき、基準TG8で生成されたタイミングを元に、基準TG8より速い周期のクロック信号を生成する。
【0084】
以上のように、本発明の実施の形態3に係る画像処理プロセッサ5は、動作モードを変更して、停止している系統のパイプラインを動作させるので、使用する系統のパイプラインのみ動作させて、時分割実行ユニット50dの動作クロックを下げることができ、消費電力を削減することができる。
【0085】
(実施の形態4)
本発明の実施の形態4に係る画像処理プロセッサは、時分割実行ユニットの前後でパイプラインを動作させる速度(クロック)に速度差を持たせる構成である。図8は、本発明の実施の形態4に係る画像処理プロセッサの構成を示す概略図である。図8に示す画像処理プロセッサ5aは、a系統およびb系統基準TG8に加えてa系統およびb系統調整TG19、調整LTG20を備えている以外、図5に示す画像処理プロセッサ5の構成と同じである。そのため、本発明の実施の形態4に係る画像処理プロセッサ5aは、実施の形態1に係る画像処理プロセッサ5と同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0086】
バッファ12(FIFOO_a,FIFOO_b)の出力側、および演算ユニット50b,50cは、図5に示す画像処理プロセッサ5と同様に、a系統およびb系統基準TG8で生成したクロック信号に基づいて駆動される。しかし、バッファ12(FIFOI_a,FIFOI_b)の入力側は、a系統およびb系統調整TG19で生成したクロック信号に基づいて駆動され、バッファ12(FIFOI_a,FIFOI_b)の出力側からバッファ12(FIFOO_a,FIFOO_b)の入力側までの間は、調整LTG20で生成したクロック信号に基づいて駆動される。
【0087】
そのため、画像処理プロセッサ5aは、バッファ12(FIFOI_a,FIFOI_b)およびバッファ12(FIFOO_a,FIFOO_b)に適切なデータ量が蓄積されるように、時分割実行ユニット50dの前後でパイプラインを動作させるクロックを動的に変化させることができる。
【0088】
図5に示す画像処理プロセッサ5では、系統ごとにパイプラインの動作初期段階では、バッファ12(FIFOI_a,FIFOI_b)およびバッファ12(FIFOO_a,FIFOO_b)に適切なデータ量が蓄積されるまで出力せず、所定の遅延時間待って出力を開始することでバッファ12(FIFOI_a,FIFOI_b)およびバッファ12(FIFOO_a,FIFOO_b)に蓄積されたデータ量を調整していた。
【0089】
しかし、画像処理プロセッサ5aでは、パイプラインの動作中にバッファ12(FIFOO_a,FIFOO_b)に蓄積されたデータ量を調整し、時分割実行ユニット50dからの画像データの出力速度を一定に保つために、時分割実行ユニット50dの前後でパイプラインを動作させるクロックを動的に変化させる必要がある。そこで、画像処理プロセッサ5aは、時分割実行ユニット50dの前側であるバッファ12(FIFOI_a,FIFOI_b)の入力側を、時分割実行ユニット50dの後側であるバッファ12(FIFOO_a,FIFOO_b)の出力側と異なるa系統およびb系統調整TG19で生成したクロック信号に基づいて駆動している。また、画像処理プロセッサ5aは、時分割実行ユニット50d内にあたるバッファ12(FIFOI_a,FIFOI_b)の出力側からバッファ12(FIFOO_a,FIFOO_b)の入力側までの間を、調整LTG20で生成したクロック信号に基づいて駆動している。
【0090】
次に、図9は、基準TG8、調整TG19および調整LTG20の構成を示す概略図である。なお、図9(a)は、基準TG8の構成を示す概略図、図9(b)は、調整TG19の構成を示す概略図、図9(c)は、調整LTG20の構成を示す概略図である。また、以下では、a系統基準TG8、a系統調整TG19およびa系統調整LTG20について説明するが、b系統基準TG8、b系統調整TG19およびb系統調整LTG20も同じ構成となるので詳細な説明を繰返さない。
【0091】
図9(a)に示すa系統基準TG8は、タイミング信号生成の基準となるクロック信号clk_aが入力される画像タイミング生成部80を有している。画像タイミング生成部80は、入力されるクロック信号clk_aをカウントして、画像転送用フォーマットに従った図2に示すようなタイミング信号を生成し、出力する。
【0092】
図9(b)に示すa系統調整TG19は、カウンタ91、比較器92、セレクタ93、および画像タイミング生成部94を有している。a系統調整TG19は、a系統基準TG8の機能を拡張した構成で、タイミング信号生成の基準となるクロック信号clk_aの他に、クロック信号clk_aより周期の速いクロック信号clk_fastと、クロック信号clk_aより周期の遅いクロック信号clk_slowとがカウンタ91に入力される。
【0093】
図10は、本発明の実施の形態4に係る画像処理プロセッサ5aのa系統調整TG19で処理される信号の波形を示すタイミングチャートである。図10には、クロック信号clk_fast、クロック信号clk_a、クロック信号clk_slow、画像タイミング生成部94の状態を示すカウンタEn、コントローラクロック制御信号、およびクロック信号clk_blendが図示してある。
【0094】
画像処理コントローラ6は、バッファ12(FIFOI_a,FIFOI_b)に蓄積された画像データの量がある基準値に比べて不足し、クロックを変更する必要があると判断した場合、比較器92にコントローラクロック制御信号を出力する。a系統調整TG19は、コントローラクロック制御信号が入力されると、カウンタEnがオン状態となる。
【0095】
比較器92は、コントローラクロック制御信号が正の値であれば、クロック信号clk_fastへセレクタ93を切替え、コントローラクロック制御信号が負の値であれば、クロック信号clk_slowへセレクタ93を切替える。
【0096】
画像タイミング生成部94は、セレクタ93を介して入力されるクロック信号clk_blend(クロック信号clk_fast、クロック信号clk_a、クロック信号clk_slowのいずれか1つのクロック信号)をカウントして、画像転送用フォーマットに従ったタイミング信号を生成し、出力する。
【0097】
なお、a系統調整TG19は、クロック信号clk_fastのカウント値と、クロック信号clk_aのカウント値との差がコントローラクロック制御信号の値となったとき、クロック信号clk_aへセレクタ93を戻す。具体的に、a系統調整TG19は、図10に示すように、コントローラクロック制御信号の値が+5の場合、クロック信号clk_fastへセレクタ93を切替え、クロック信号clk_aのカウント値との差が+5となったとき、クロック信号clk_aへセレクタ93を戻す。
【0098】
また、a系統調整TG19は、クロック信号clk_slowのカウント値と、クロック信号clk_aのカウント値との差がコントローラクロック制御信号の値となったときも、クロック信号clk_aへセレクタ93を戻す。
【0099】
a系統調整LTG20は、2系統のパイプラインに対して複合動作するため、LTG9と同様に、クロック信号clk_aとクロック信号clk_bとの和相当の周波数で動作することに加え、和以上の速度を保証し、和に近い周波数で出力するためのクロック生成機能を備えている。
【0100】
図9(c)に示すa系統調整LTG20は、カウンタ201、PLL(Phase-locked loop)回路202、比較器203、および画像タイミング生成部204を有している。カウンタ201は、クロック信号clk_aおよびクロック信号clk_bの周期数をカウントする。比較器203は、クロック信号clk_aとクロック信号clk_bとの周期数の和とPLL回路202の周期数カウントを比較して、修正値を計算し、PLL回路202の分周設定値を変更する。なお、比較器203は、クロック信号clk_aとクロック信号clk_bとの周期数の和とPLL回路202の周期数カウントを比較する際、コントローラクロック制御信号の値を考慮してもよい。a系統調整LTG20は、カウント単位で上記の処理を繰り返し、PLL回路202から出力するクロック信号clk_blendを、目標出力(=クロック信号clk_a+クロック信号clk_b+周波数マージンW)に追従するように制御してある。
【0101】
画像タイミング生成部204は、PLL回路202から出力するクロック信号clk_blendをカウントして、画像転送用フォーマットに従ったタイミング信号を生成し、出力する。
【0102】
以上のように、本発明の実施の形態4に係る画像処理プロセッサ5aは、時分割実行ユニット50dの前後でパイプラインを動作させる速度(クロック)に速度差を持たせているので、バッファ12(FIFOI_a,FIFOI_b)およびバッファ12(FIFOO_a,FIFOO_b)に蓄積されるデータ量を適切に調整することができる。
【0103】
(実施の形態5)
本発明の実施の形態5に係る画像処理プロセッサは、各系統のパイプラインでの演算処理がある基準のクロック信号にしたがって動作するのではなく、演算ユニット間で送受信される要求信号および応答信号に基づき画像データの転送タイミングを決定する非同期型である。
【0104】
図11は、本発明の実施の形態5に係る画像処理プロセッサの構成を示す概略図である。図11に示す画像処理プロセッサ5bは、a系統およびb系統基準TG8に加えて演算基準TG17を備えている以外、図5に示す画像処理プロセッサ5の構成と同じである。そのため、本発明の実施の形態5に係る画像処理プロセッサ5bは、実施の形態1に係る画像処理プロセッサ5と同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0105】
画像処理プロセッサ5bは、各系統のパイプラインでの演算処理が非同期では各演算ユニット50a,50b,50cが非同期の転送時間で動作している。そして、画像処理プロセッサ5bは、外部からパイプラインへ画像データを入力する転送タイミングを決定するクロック信号を生成するために、a系統およびb系統基準TG8を備えている。さらに、画像処理プロセッサ5bは、パイプラインから外部へ画像データを出力する転送タイミングを決定するクロック信号を生成するために、演算基準TG17を備えている。
【0106】
演算ユニット50bから画像データの入力を要求する外部出力要求信号aが画像処理コントローラ6に入力されると、画像処理コントローラ6は、外部入力要求信号aをa系統基準TG8に出力する。画像処理プロセッサ5bは、a系統基準TG8で生成されるクロック信号に基づき、図示していない画像メモリから時分割実行ユニット50dのバッファ12(FIFOI_a)に、画像データを供給する。a系統基準TG8は、外部入力応答信号a及び、外部入力同期信号aを画像処理コントローラ6に出力する。
【0107】
画像処理コントローラ6は、a系統基準TG8から外部入力応答信号aが入力されると、演算ユニット50bから入力された外部出力要求信号aを消し、a系統基準TG8から入力された外部入力同期信号aを、外部出力応答信号aとともに演算ユニット50bに出力する。
【0108】
演算ユニット50bは、バッファ12(FIFOO_a)から出力された画像データを、入力された外部入力同期信号aと演算基準TG17とのタイミングに基づき演算処理を行なう。
【0109】
画像処理プロセッサ5bは、安定動作するために、バッファ12(FIFOI_a)の入力側を駆動するa系統およびb系統基準TG8が生成するクロック信号よりも、バッファ12(FIFOO_a)の出力側および演算ユニット50b,50cを駆動する演算基準TG17が生成するクロック信号の方の周期を速くする必要がある。なお、LTG9は、演算基準TG17で生成したクロック信号に基づいて、時分割実行ユニット50dを時分割で演算処理させる。
【0110】
以上のように、本発明の実施の形態5に係る画像処理プロセッサ5bは、演算ユニット50a,50b,50c間で送受信される外部入力または外部出力要求信号、および外部入力または外部出力応答信号に基づき画像データの転送タイミングを決定するので、演算ユニット50a,50b,50cの現実の動作にあわせて、安定した駆動を行なうことが可能となる。
【0111】
(実施の形態6)
図12は、本発明の実施の形態6に係る時分割実行ユニットの構成を示す概略図である。図12に示す時分割実行ユニット50dは、バッファ12(FIFOI_a)と入力セレクタ14との間に拡張記憶部18を備えている以外、図4に示す時分割実行ユニット50dの構成と同じである。そのため、本発明の実施の形態6に係る時分割実行ユニット50dは、実施の形態1に係る時分割実行ユニット50dと同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0112】
演算ユニット50aが画像データから所定のデータをフィルタする演算処理の場合、演算ユニット50aは、たとえば、サイクルごと3ライン分の画像データを取込み、演算処理する必要がある。
【0113】
しかし、バッファ12(FIFOI_a,FIFOI_b)は、1ライン分の画像データを保持するだけで、3ライン分の画像データを保持することはできない。そこで、図4に示す時分割実行ユニット50dは、1ライン分の画像データを保持するラインバッファを2つ有する拡張記憶部18を備えている。
【0114】
図4に示す時分割実行ユニット50dは、拡張記憶部18を備えているので、バッファ12(FIFOI_a,FIFOI_b)とあわせて、3ライン分の画像データを保持し、演算ユニット50aに供給することができる。拡張記憶部18は、複数のラインバッファを直列に接続し、過去に依存する画像データを繰り返し利用することができる。また、系統ごとに、バッファ12(FIFOI_a,FIFOI_b)と入力セレクタ14との間に拡張記憶部18を接続してある。
【0115】
以上のように、本発明の実施の形態6に係る時分割実行ユニット50dは、3ライン分の画像データを演算ユニット50aで1度に処理することができるので、演算ユニット50aを複数搭載したパイプラインと等価の動作を実現することができる。
【0116】
(実施の形態7)
図13は、本発明の実施の形態7に係る時分割実行ユニットの構成を示す概略図である。図13に示す時分割実行ユニット50dは、単一の演算ユニット50aに代えて複数の演算ユニット50aを直列接続した構成以外、図4に示す時分割実行ユニット50dの構成と同じである。そのため、本発明の実施の形態7に係る時分割実行ユニット50dは、実施の形態1に係る時分割実行ユニット50dと同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0117】
図4に示す時分割実行ユニット50dは、入力セレクタ14と出力セレクタ15との間に演算ユニット50a1と演算ユニット50a2とを直列に接続してある。そのため、画像データの輝度を変換する演算ユニット50a1と、画像データから所定のデータをフィルタする演算ユニット50a2とを時分割で演算処理させることができる。
【0118】
以上のように、本発明の実施の形態7に係る時分割実行ユニット50dは、入力セレクタ14と出力セレクタ15との間に複数の演算ユニット50aを直列接続した構成にすることができるので、重複する演算ユニットの組込みをさらに減らし、回路規模を縮小することができる。
【0119】
(実施の形態8)
図14は、本発明の実施の形態8に係る時分割実行ユニットの構成を示す概略図である。図14に示す時分割実行ユニット50dは、a系統およびb系統の2系統のみからなるパイプラインを有する構成はなく、n系統(n≧2)からなるパイプラインを有する構成である。なお、本発明の実施の形態8に係る時分割実行ユニット50dは、実施の形態1に係る時分割実行ユニット50dと同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0120】
図14に示す時分割実行ユニット50dは、n系統(n≧2)からなるパイプラインを有しているので、入力セレクタ14の前段にn個のバッファ12(FIFO)、出力セレクタ15の後段にn個のバッファ12(FIFO)を備えている。
【0121】
以上のように、本発明の実施の形態8に係る時分割実行ユニット50dは、n系統(n≧2)からなるパイプラインを有する構成であるため、重複する演算ユニットの組込みをさらに減らし、回路規模を縮小することができる。
【0122】
(実施の形態9)
図15は、本発明の実施の形態9に係る時分割実行ユニットの構成を示す概略図である。図15に示す時分割実行ユニット50dは、2つのLUT(ルックアップテーブル)152と、LUT152を切替える切替セレクタ151とを備える構成以外、図4に示す時分割実行ユニット50dの構成と同じである。そのため、本発明の実施の形態9に係る時分割実行ユニット50dは、実施の形態1に係る時分割実行ユニット50dと同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0123】
図15に示す時分割実行ユニット50dは、系統ごとにLUT152を切替え、演算ユニット50aの設定を書替えて、演算処理を実行する。
【0124】
系統が切替わった後、演算ユニット50aは、別の系統の演算処理を実行するための設定を行なうタイミングで、LUT152に保管してある設定パラメータをLUT152から演算ユニット50aに転送する。そのため、演算ユニット50aは、各系統の演算処理ごとに設定パラメータが書替わり、系統ごとに異なる設定の演算処理を行なうことができる。
【0125】
以上のように、本発明の実施の形態9に係る時分割実行ユニット50dは、2つのLUT152と、LUT152を切替える切替セレクタ151とを備えているので、系統ごと演算ユニット50aで最適な演算処理を行なうことができる。
【0126】
(実施の形態10)
図16は、本発明の実施の形態10に係る画像処理プロセッサの構成を示す概略図である。図16に示す画像処理プロセッサ5cは、a系統のパイプラインと、b系統のパイプラインとが等価的に並列に接続してある構成ではなく、a系統のパイプラインと、b系統のパイプラインとを1つのパイプラインとして直列に接続した構成である。なお、本発明の実施の形態10に係る画像処理プロセッサ5cは、実施の形態1に係る画像処理プロセッサ5と同じ構成要素について同じ符号を付して、詳細な説明を繰返さない。
【0127】
図16(a)に示すパイプラインで演算処理する演算ユニット50の処理順は、画像データの輝度を変換する演算ユニット“1”、画像データから所定のデータをフィルタする演算ユニット“2”、画像データに対してガンマ補正を行なう演算ユニット“3”、画像データの輝度を変換する演算ユニット“4”の順である。
【0128】
そのため、図16に示す画像処理プロセッサ5cは、入力セレクタ14と出力セレクタ15との間に、画像データの輝度を変換する演算ユニット(“2”,“4”)50fを備えている。そして、画像処理プロセッサ5cにおけるa系統のパイプラインの前段に演算ユニット(“1”)50eを、a系統のパイプラインの後段、かつb系統のパイプラインの前段に演算ユニット(“3”)50gを備えている。
【0129】
以上のように、本発明の実施の形態10に係る画像処理プロセッサ5cは、a系統のパイプラインと、b系統のパイプラインとを1つのパイプラインとして直列に接続した構成であるので、複数の演算ユニットをさまざまな構成に組合わせて、演算処理を実行することができる。
【0130】
なお、本発明に係る画像処理プロセッサは、画像データをパイプライン演算方式にて演算処理を実行するパイプライン演算装置について説明したが、本発明はこれに限定されるもではない。本発明は、入力データをパイプライン演算方式にて演算処理を実行するパイプライン演算装置であれば、いずれの情報処理プロセッサにも適用することができる。
【0131】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0132】
1 画像出力部、2 画像入力部、3 表示装置、4 画像メモリ、5 画像処理プロセッサ、6 画像コントローラ、7 マイクロコンピュータ、8 基準TG、9 LTG、10 入力インタフェイス、11 出力インタフェイス、12 バッファ、13 遅延器、14 入力セレクタ、15 出力セレクタ、16 割込みコントローラ、17 演算基準TG、18 拡張記憶部、19 調整TG、20 調整LTG。
【特許請求の範囲】
【請求項1】
パイプライン演算方式にて入力データに対して演算処理を行なう複数の演算ユニットと、
複数の前記演算ユニットのうち、複数のパイプラインで重複して演算処理を行なう少なくとも1つの前記演算ユニットの前段に接続され、演算処理を行なう前記入力データを選択して入力する入力セレクタと、
複数の前記演算ユニットのうち、複数の前記パイプラインで重複して演算処理を行なう少なくとも1つの前記演算ユニットの後段に接続され、演算処理を行なった前記入力データの出力先を選択する出力セレクタと、
前記入力セレクタの前段、および前記出力セレクタの後段にそれぞれ接続され、前記入力データ、および演算処理を行なった前記入力データを一時的に保持するバッファと、
前記入力セレクタと前記出力セレクタとの間に接続された少なくとも1つの前記演算ユニットの動作クロックを、他の前記演算ユニットを動作させる基準クロックよりも高速になるように制御する制御部と
を備え、
前記入力セレクタと前記出力セレクタとの間に接続された少なくとも1つの前記演算ユニットが、前記パイプラインごとに時分割で演算処理を行なうパイプライン演算装置。
【請求項2】
前記入力セレクタは、前段に接続された前記バッファに所定量の前記入力データが蓄積された後、後段に接続した前記演算ユニットに前記入力データを入力する、請求項1に記載のパイプライン演算装置。
【請求項3】
前記制御部は、前記入力セレクタの前段に接続される前記パイプラインを動作させる第1クロックと、前記出力セレクタの後段に接続された前記パイプラインを動作させる第2クロックとを異なるように調整する、請求項1または請求項2に記載のパイプライン演算装置。
【請求項4】
前記制御部は、前記入力セレクタで前記入力データを選択してから、前記出力セレクタで出力先を選択するまでの遅延時間を含む履歴情報を記憶する記憶部を有し、
前記出力セレクタは、前記記憶部に記憶した前記遅延時間に基づいて出力先を選択する、請求項1〜請求項3のいずれか1項に記載のパイプライン演算装置。
【請求項5】
前記制御部は、外部から信号に基づき、時分割で演算処理を行なう前記演算ユニットの時分割の数を変えるために前記動作クロックを変更する、請求項1〜請求項4のいずれか1項に記載のパイプライン演算装置。
【請求項6】
前記入力セレクタと前記バッファとの間に接続され、直列接続してある複数のラインバッファを有する拡張記憶部をさらに備える、請求項1〜請求項5のいずれか1項に記載のパイプライン演算装置。
【請求項7】
前記パイプラインは、複数の前記演算ユニット間で送受信される要求信号および応答信号に基づき前記入力データの転送タイミングを決定する非同期型である、請求項1〜請求項6のいずれか1項に記載のパイプライン演算装置。
【請求項1】
パイプライン演算方式にて入力データに対して演算処理を行なう複数の演算ユニットと、
複数の前記演算ユニットのうち、複数のパイプラインで重複して演算処理を行なう少なくとも1つの前記演算ユニットの前段に接続され、演算処理を行なう前記入力データを選択して入力する入力セレクタと、
複数の前記演算ユニットのうち、複数の前記パイプラインで重複して演算処理を行なう少なくとも1つの前記演算ユニットの後段に接続され、演算処理を行なった前記入力データの出力先を選択する出力セレクタと、
前記入力セレクタの前段、および前記出力セレクタの後段にそれぞれ接続され、前記入力データ、および演算処理を行なった前記入力データを一時的に保持するバッファと、
前記入力セレクタと前記出力セレクタとの間に接続された少なくとも1つの前記演算ユニットの動作クロックを、他の前記演算ユニットを動作させる基準クロックよりも高速になるように制御する制御部と
を備え、
前記入力セレクタと前記出力セレクタとの間に接続された少なくとも1つの前記演算ユニットが、前記パイプラインごとに時分割で演算処理を行なうパイプライン演算装置。
【請求項2】
前記入力セレクタは、前段に接続された前記バッファに所定量の前記入力データが蓄積された後、後段に接続した前記演算ユニットに前記入力データを入力する、請求項1に記載のパイプライン演算装置。
【請求項3】
前記制御部は、前記入力セレクタの前段に接続される前記パイプラインを動作させる第1クロックと、前記出力セレクタの後段に接続された前記パイプラインを動作させる第2クロックとを異なるように調整する、請求項1または請求項2に記載のパイプライン演算装置。
【請求項4】
前記制御部は、前記入力セレクタで前記入力データを選択してから、前記出力セレクタで出力先を選択するまでの遅延時間を含む履歴情報を記憶する記憶部を有し、
前記出力セレクタは、前記記憶部に記憶した前記遅延時間に基づいて出力先を選択する、請求項1〜請求項3のいずれか1項に記載のパイプライン演算装置。
【請求項5】
前記制御部は、外部から信号に基づき、時分割で演算処理を行なう前記演算ユニットの時分割の数を変えるために前記動作クロックを変更する、請求項1〜請求項4のいずれか1項に記載のパイプライン演算装置。
【請求項6】
前記入力セレクタと前記バッファとの間に接続され、直列接続してある複数のラインバッファを有する拡張記憶部をさらに備える、請求項1〜請求項5のいずれか1項に記載のパイプライン演算装置。
【請求項7】
前記パイプラインは、複数の前記演算ユニット間で送受信される要求信号および応答信号に基づき前記入力データの転送タイミングを決定する非同期型である、請求項1〜請求項6のいずれか1項に記載のパイプライン演算装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2013−8265(P2013−8265A)
【公開日】平成25年1月10日(2013.1.10)
【国際特許分類】
【出願番号】特願2011−141459(P2011−141459)
【出願日】平成23年6月27日(2011.6.27)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
【公開日】平成25年1月10日(2013.1.10)
【国際特許分類】
【出願日】平成23年6月27日(2011.6.27)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
[ Back to top ]