以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付し、重複した説明を省く。
<画像処理装置例>
はじめに、本実施形態に係る画像処理装置の全体構成の一例について説明する。
図1は、本発明の一実施形態に係る画像処理装置の全体構成の一例を示すブロック図である。具体的には、画像処理装置100は、CPU(Central Processing Unit)100H1と、記憶装置100H2と、ASIC(Application Specific Integrated Circuit)100H3とを有する。
CPU100H1は、各処理及びデータの加工等に係る演算を行う演算装置並びに各ハードウェア及び装置を制御する制御装置である。なお、CPU100H1は、複数の装置で構成されてもよい。
記憶装置100H2は、データ、プログラム及び設定等を記憶する。具体的には、記憶装置100H2は、いわゆるメモリ等であり、主記憶装置等である。なお、記憶装置100H2は、ハードディスク等の補助記憶装置を有してもよい。
ASIC100H3は、各処理及びデータの加工等に係る演算並びに各ハードウェア及び装置を制御する電子回路である。例えば、ASIC100H3から制御信号及び画像データ信号等が各装置に出力される。なお、ASIC100H3は、一部又は全部がFPGA(Field−Programmable Gate Array)等のPLD(Programmable Logic Device)で構成されてもよい。
なお、画像処理装置100は、図示するハードウェア構成に限られず、画像処理装置100は、更に各ハードウェアを補助する装置を有してもよい。
以下、画像処理装置100に入力される画像データに対して、ASIC100H3が画像処理を行う例で説明する。なお、画像データは、動画等の複数のフレームであるとする。
<ハードウェア構成例>
図2は、本発明の一実施形態に係る画像処理装置のハードウェア構成の一例を示すブロック図である。図2は、ASIC100H3のハードウェア構成例を示す。具体的には、ASIC100H3は、レジスタアクセスI/F(interface)RIFを含む。さらに、ASIC100H3は、第1記憶部の例として第1レジスタR1と、第2記憶部の例として第2レジスタR2と、第3記憶部の例として第3レジスタR3と、第4記憶部の例として第4レジスタR4とを含む。さらにまた、ASIC100H3は、複数の画像処理を行う画像処理部IMGを含む。
レジスタアクセスI/FRIFは、CPU100H1(図1)と、ASIC100H3との間のレジスタI/Fである。レジスタアクセスI/FRIFは、バースト転送を行う第1インタフェースの例であるSPI(Serial Peripheral Interface)IF1等によって構成される。また、レジスタアクセスI/FRIFは、第2インタフェースの例であるUART(Universal Asynchronous Receiver Transmitter)IF2等によって構成される。
SPIIF1は、バースト転送が可能、かつ、シリアル転送を行うI/Fの例である。そのため、連続したアドレスに対して連続してアクセスが可能である。即ち、バースト転送が行われると、アドレス入力処理等が一部省略できる。なお、バースト転送が行われている間、チップセレクトcs信号は、アサートし続ける。また、第1レジスタR1とのI/Fは、チップセレクトcs、ライトイネーブルwe、アドレスaddr、ライトデータdata及びリードデータrdataである。これらによって、第1レジスタR1に対して、リード及びライトのアクセスが行われる。
UARTIF2は、例えば、製品の開発中又は評価等が行われるデバック等に使用される。UARTIF2によって、PC(Personal Computer)等からレジスタにアクセスすることができる。
第1レジスタR1は、レジスタアクセスI/FRIFからのアクセスによって、リード又はライトが行われるレジスタである。また、第1レジスタR1が記憶するパラメータは、レジスタアクセスI/FRIFからのライトアクセスによって新しいパラメータが入力されると、新しく入力されたパラメータに更新される。なお、更新の対象となるパラメータは、アドレスによって特定される。第1レジスタR1では、各画像処理をそれぞれ行う各モジュールが専用に使用する各パラメータと、各モジュールが共通して使用する共通パラメータとがそれぞれのレジスタに記憶される。
第2レジスタR2は、第1レジスタR1が記憶するパラメータを取得し、記憶する。即ち、第1レジスタR1が有するレジスタの内容が、第2レジスタR2が有するレジスタに反映される。また、第2レジスタR2は、第1レジスタR1への入力であるライトアクセスが終了すると、第1レジスタR1が記憶するパラメータを取得する。即ち、レジスタアクセスI/FRIFから第1レジスタR1へのアクセスであるバースト転送が終了したことが通知されると、第2レジスタR2は、パラメータを取得する。
なお、ASIC100H3は、SPIIF1によるアクセスか、UARTIF2によるアクセスかを判定してもよい。例えば、第1レジスタR1がアクセスモードAMを設定するレジスタを有してもよい。即ち、ASIC100H3は、アクセスモードAMを示すレジスタの値によって、SPIIF1によるアクセスか、UARTIF2によるアクセスかを判定する。また、ASIC100H3は、レジスタアクセスI/FRIFによって、SPIIF1によるアクセスか、UARTIF2によるアクセスかを判定してもよい。
UARTIF2によるアクセスは、通知ALが行われない場合がある。そのため、UARTIF2によるアクセスと、SPIIF1によるアクセスとでは、異なるタイミングで、第2レジスタR2が更新される。例えば、UARTIF2によるアクセスであると判定した場合には、第2レジスタR2の更新は、無条件で行われる。なお、第1レジスタR1が有するレジスタのうち、動作中に更新される可能性のあるパラメータを記憶するレジスタを第2レジスタR2が有する。このため、UARTIF2によるアクセスであると判定した場合には、レジスタアクセスは、フレーム期間中に終了させる必要がある。
第3レジスタR3は、画像処理部IMGに入力される第1信号の例である入力垂直同期信号SIGVをトリガ(trigger)として、第2レジスタR2が記憶するパラメータを取得し、記憶する。これによって、第3レジスタR3は、更新され、第2レジスタR2と同様の内容となる。
第4レジスタR4は、各モジュールが使用するそれぞれのパラメータを記憶する。また、第4レジスタR4は、モジュールごとにそれぞれレジスタを有する。例えば、画像処理部IMGによって3つの画像処理が行われる場合には、画像処理部IMGは、第1モジュールIMG1、第2モジュールIMG2及び第3モジュールIMG3を有する。即ち、各モジュールがそれぞれ1つの画像処理を行う。以下、図示するように、画像処理部IMGが3つの画像処理を行う場合を例に説明する。また、この例では、画像処理は、第1モジュールIMG1、第2モジュールIMG2及び第3モジュールIMG3の順でそれぞれ行われるとする。
この場合には、第4レジスタR4は、第1モジュールレジスタR41、第2モジュールレジスタR42及び第3モジュールレジスタR43の3つのレジスタを有する。即ち、第1モジュールレジスタR41は、第1モジュールIMG1が行う第1画像処理に係るパラメータを記憶する。なお、第1モジュールIMG1が第1画像処理部の例とすると、第1モジュールレジスタR41が記憶するパラメータが第1パラメータP1の例である。同様に、第2モジュールレジスタR42は、第2モジュールIMG2が行う第2画像処理に係るパラメータを記憶する。なお、第2モジュールIMG2が第2画像処理部の例とすると、第2モジュールレジスタR42が記憶するパラメータが第2パラメータP2の例である。さらに、第3モジュールレジスタR43は、第3モジュールIMG3に係るパラメータである第3パラメータP3を記憶する。
なお、第4レジスタR4が有する各モジュールレジスタには、各モジュールからそれぞれトリガ信号が出力される。具体的には、第1モジュールレジスタR41には、第1トリガ信号TRG1が第1モジュールIMG1から出力される。同様に、第2モジュールレジスタR42には、第2トリガ信号TRG2が第2モジュールIMG2から出力され、第3モジュールレジスタR43には、第3トリガ信号TRG3が第3モジュールIMG3から出力される。次に、各トリガ信号が出力されると、各モジュールレジスタは、パラメータを第3レジスタからそれぞれ取得し、更新を行う。
即ち、各レジスタは、例えば、下記(表1)に示すようなレジスタである。
上記(表1)では、動作中に更新されるか否かを「○」又は「×」で示す。動作中に更新されないレジスタは、第1レジスタR1であり、それ以外のレジスタは、すべて動作中に更新されるレジスタである。また、上記(表1)で示すように、共通パラメータは、各レジスタで記憶される。一方、第1パラメータP1及び第2パラメータP2等の各モジュール用パラメータは、第4レジスタR4では、各モジュールレジスタがそれぞれ記憶する。例えば、第1モジュールレジスタR41は、共通パラメータPCOMと、第1パラメータP1とを記憶する。つまり、第1モジュールレジスタR41は、第1モジュールIMG1が画像処理を行うのに必要なパラメータを記憶し、第1モジュールIMG1は、第1パラメータP1と、共通パラメータPCOMとを用いて画像処理を行う。
画像処理部IMGは、入力画像データ信号SIGIMGによって入力される画像に対して画像処理を行う。画像処理は、例えば、黒補正、ガンマ変換、ゲイン調整及び各種フィルタ等である。なお、画像処理の種類は、これらに限られず、他の種類の画像処理が行われてもよい。また、画像処理部IMGは、I/F変換部IMGIFを有する。
図3は、本発明の一実施形態に係るI/F変換部によって生成される信号の一例を示すタイミングチャートである。図2で示すように、画像処理部IMGには、入力される画像のフレームの先頭を示す入力垂直同期信号SIGVと、入力される画像のラインの先頭を示す入力水平同期信号SIGHと、入力画像データ信号SIGIMGとが入力される。
図3で示すように、入力垂直同期信号SIGVは、フレームの先頭ごとに、アサートされる。なお、図3では、入力垂直同期信号SIGVは、ハイアクティブの信号の例である。即ち、入力垂直同期信号SIGVがハイレベルとなってから次に入力垂直同期信号SIGVがハイレベルとなるまでが1フレームである。例えば、1フレームの周期が一定であるとすると、入力垂直同期信号SIGVは、1フレームの周期ごとにアサートされる。例えば、1秒間に30フレームが入力される場合には、入力垂直同期信号SIGVは、「1秒÷30フレーム≒33ミリ秒」ごとに、それぞれアサートされる。
また、図3で示すように、入力水平同期信号SIGHは、ラインの先頭ごとに、アサートされる。なお、図3では、入力水平同期信号SIGHは、ハイアクティブの信号の例である。即ち、入力水平同期信号SIGHがハイレベルとなってから次に入力水平同期信号SIGHがハイレベルとなるまでが1ラインである。例えば、1ラインの周期が一定であるとすると、入力水平同期信号SIGHは、1ラインの周期ごとにアサートされる。例えば、1フレームが480ラインである場合には、入力水平同期信号SIGHは、「33ミリ秒÷480ライン=0.06875ミリ秒」ごとに、それぞれアサートされる。
入力画像データ信号SIGIMGは、画像が有する各画素の画素値をそれぞれ示す信号である。なお、図3では、画素値のデータがある領域を「有効領域」(以下単に「有効領域」という。)とし、図3は、斜線で示す。即ち、有効領域以外では、入力画像データ信号SIGIMGは、例えば、「0」の値を示す信号となる。
I/F変換部IMGIFは、画像処理部IMGが処理で扱いやすいように、フレーム有効信号SIGVAVと、ライン有効信号SIGVAHと、有効画像データ信号SIGVAIMGとを生成する。図2に示すように、フレーム有効信号SIGVAV、ライン有効信号SIGVAH及び有効画像データ信号SIGVAIMGは、例えば、第1モジュールIMG1にそれぞれ出力される。
フレーム有効信号SIGVAVは、1フレームのうち、有効領域となる画素を有するラインが入力されている場合には、ハイレベルとなる信号である。一方、フレーム有効信号SIGVAVは、1フレームのうち、有効領域を有しないラインが入力されている場合には、ローレベルとなる信号である。
ライン有効信号SIGVAHは、1ラインのうち、有効領域となる画素が入力されている場合には、ハイレベルとなる信号である。一方、ライン有効信号SIGVAHは、1ラインのうち、有効領域ではない画素が入力されている場合には、ローレベルとなる信号である。
フレーム有効信号SIGVAVは、入力画像データ信号SIGIMGと同様に、画像が有する各画素の画素値をそれぞれ示す信号である。
<全体処理例>
図4は、本発明の一実施形態に係る画像処理装置による全体処理の一例を示すフローチャートである。
図4(A)は、第1レジスタR1(図2)を更新する処理の一例を示すフローチャートである。
ステップS01Aでは、ASIC100H3(図2)は、ライトアクセスがあるか否かを判断する。ライトアクセスがあると判断すると(ステップS01AでYES)、ASIC100H3は、ステップS02Aに進む。一方、ライトアクセスがないと判断すると(ステップS01AでNO)、ASIC100H3は、ステップS01Aを繰り返す。
ステップS02Aでは、ASIC100H3は、第1レジスタR1を更新する。具体的には、SPIIF1(図2)によるライトアクセスがあると、ASIC100H3は、第1レジスタR1のうち、アドレスaddr(図2)に入力されたアドレス値で特定されるレジスタを更新する。また、第1レジスタR1は、ライトデータwdata(図2)で入力されるパラメータに更新される。
図4(B)は、第2レジスタR2(図2)を更新する処理の一例を示すフローチャートである。
ステップS01Bでは、ASIC100H3は、入力が終了したか否かを判断する。具体的には、ASIC100H3は、通知AL(図2)によって入力が終了したか否か等で判断を行う。例えば、通知ALは、チップセレクトcs信号のネゲート等で実現される。入力が終了したと判断すると(ステップS01BでYES)、ASIC100H3は、ステップS02Bに進む。一方、入力が終了していないと判断すると(ステップS01BでNO)、ASIC100H3は、ステップS01Bを繰り返す。
ステップS02Bでは、ASIC100H3は、第2レジスタR2を更新する。具体的には、ASIC100H3は、第1レジスタR1が記憶するパラメータを取得し、パラメータが第2レジスタR2に反映されるように更新する。
図4(C)は、第3レジスタR3(図2)を更新する処理の一例を示すフローチャートである。
ステップS01Cでは、ASIC100H3は、入力垂直同期信号がアサートされたか否かを判断する。入力垂直同期信号SIGV(図2)がアサートされたと判断すると(ステップS01CでYES)、ASIC100H3は、ステップS02Cに進む。一方、入力垂直同期信号SIGVがアサートされていないと判断すると(ステップS01CでNO)、ASIC100H3は、ステップS01Cを繰り返す。
ステップS02Cでは、ASIC100H3は、第3レジスタR3を更新する。具体的には、ASIC100H3は、第2レジスタR2が記憶するパラメータを取得し、パラメータが第3レジスタR3に反映されるように更新する。
図4(D)は、第4レジスタR4(図2)が有する各モジュールレジスタをそれぞれ更新する処理の一例を示すフローチャートである。なお、図4(D)に示す処理は、モジュールレジスタごとにそれぞれ行われる。
ステップS01Dでは、ASIC100H3は、各トリガ信号がアサートされたか否かを判断する。具体的には、例えば、第1モジュールレジスタR41の場合では、ASIC100H3は、第1トリガ信号TRG1(図2)がアサートされたか否か等で判断を行う。第1トリガ信号TRG1がアサートされたと判断すると(ステップS01DでYES)、ASIC100H3は、ステップS02Dに進む。一方、第1トリガ信号TRG1がアサートされていないと判断すると(ステップS01DでNO)、ASIC100H3は、ステップS01Dを繰り返す。
ステップS02Dでは、ASIC100H3は、第4レジスタR4が有する各モジュールレジスタをそれぞれ更新する。具体的には、第1トリガ信号TRG1がアサートされた場合には、ASIC100H3は、第3レジスタR3が記憶するパラメータのうち、共通パラメータPCOMと、第1パラメータP1とを取得する。次に、ASIC100H3は、共通パラメータPCOMと、第1パラメータP1が、第4レジスタR4が有するモジュールレジスタのうち、第1モジュールレジスタR41に反映されるように更新する。
図5は、本発明の一実施形態に係る画像処理装置による全体処理の処理結果の一例を示すタイミングチャートである。図5は、例えば、第1タイミングT1から1番目のフレームである「フレーム1」の入力が開始される例を示す。なお、図5では、図2及び図3と同一の信号には、同一の符号を付し、説明を省略する。
第2タイミングT2は、レジスタ設定「A」の第1設定パラメータParAが第1レジスタに入力され(図4(A)のステップS01A)、入力が終了したタイミングの例である。第2タイミングT2のように、チップセレクトcs信号がネゲートされると、入力が終了したと判断される。この例では、第2タイミングT2で入力終了と判断され(図4(B)のステップS01BでYES)、第1レジスタR1から第1設定パラメータParAが取得される。次に、第1設定パラメータParAが取得されると、第2レジスタR2は、初期設定パラメータParIntから第1設定パラメータParAに更新される(図4(B)のステップS02B)。
続いて、第3タイミングT3から2番目のフレームである「フレーム2」の入力が開始されるとする。第3タイミングT3では、入力垂直同期信号SIGVがアサートされるため(図4(B)のステップS01CでYES)、第2レジスタR2から第1設定パラメータParAが取得される。次に、第1設定パラメータParAが取得されると、第3レジスタR3は、初期設定パラメータParIntから第1設定パラメータParAに更新される(図4(C)のステップS02C)。
続いて、各トリガ信号が出力されると(図4(D)のステップS01DでYES)、第4レジスタR4が有する各モジュールレジスタがそれぞれ更新される(図4(D)のステップS02D)。具体的には、第1トリガ信号TRG1が出力されると、第1モジュールレジスタR41が更新される。また、第2トリガ信号TRG2が出力されると、第2モジュールレジスタR42が更新され、第3トリガ信号TRG3が出力されると、第3モジュールレジスタR43が更新される。なお、図5では、各トリガ信号は、それぞれハイアクティブ信号であるとする。
第4タイミングT4では、第1トリガ信号TRG1が出力される(図4(D)のステップS01DでYES)。したがって、第4タイミングT4では、第3レジスタR3が記憶するパラメータのうち、共通パラメータPCOMと、第1パラメータP1とが第1モジュールレジスタR41に取得される。ここで、初期設定パラメータParIntが示す共通パラメータPCOM及び第1パラメータP1を第1モジュール用初期パラメータParInt1とする。さらに、第1設定パラメータParAが示す共通パラメータPCOM及び第1パラメータP1を第1モジュール用第1パラメータParA1とする。この場合には、第4タイミングT4では、第1モジュールレジスタR41は、第1モジュール用初期パラメータParInt1から第1モジュール用第1パラメータParA1に更新される(図4(D)のステップS01D)。
第6タイミングT6では、第2トリガ信号TRG2が出力される(図4(D)のステップS01DでYES)。したがって、第6タイミングT6では、第3レジスタR3が記憶するパラメータのうち、共通パラメータPCOMと、第2パラメータP2とが第2モジュールレジスタR42に取得される。ここで、初期設定パラメータParIntが示す共通パラメータPCOM及び第2パラメータP2を第2モジュール用初期パラメータParInt2とする。さらに、第1設定パラメータParAが示す共通パラメータPCOM及び第2パラメータP2を第2モジュール用第1パラメータParA2とする。この場合には、第6タイミングT6では、第2モジュールレジスタR42は、第2モジュール用初期パラメータParInt2から第2モジュール用第1パラメータParA2に更新される(図4(D)のステップS01D)。
第7タイミングT7では、第3トリガ信号TRG3が出力される(図4(D)のステップS01DでYES)。したがって、第7タイミングT7では、第3レジスタR3が記憶するパラメータのうち、共通パラメータPCOMと、第3パラメータP3とが第3モジュールレジスタR43に取得される。ここで、初期設定パラメータParIntが示す共通パラメータPCOM及び第3パラメータP3を第3モジュール用初期パラメータParInt3とする。さらに、第1設定パラメータParAが示す共通パラメータPCOM及び第3パラメータP3を第3モジュール用第1パラメータParA3とする。この場合には、第7タイミングT7では、第3モジュールレジスタR43は、第3モジュール用初期パラメータParInt3から第3モジュール用第1パラメータParA3に更新される(図4(D)のステップS01D)。
次に、第8タイミングT8から3番目のフレームである「フレーム3」の入力が開始されるとする。第8タイミングT8は、第3タイミングT3と同様に、入力垂直同期信号SIGVがアサートされる。したがって、第8タイミングT8では、入力垂直同期信号SIGVがアサートされるため(図4(C)のステップS01CでYES)、第2レジスタR2から第1設定パラメータParAが取得される。第1設定パラメータParAが取得されると、第3レジスタR3は、第1設定パラメータParAに更新される(図4(C)のステップS02C)。第8タイミングT8では、第3レジスタR3は、第1設定パラメータParAを記憶しているので、変更がない状態である。
第8タイミングT8では、図示するように、第1レジスタR1が第1設定パラメータParAからレジスタ設定「B」の第2設定パラメータParBに更新中である。これは、例えば、レジスタアクセスACC等によって、第1レジスタR1に対して、パラメータの入力を開始するタイミングが遅れる場合の一例である。即ち、図5では、レジスタアクセスACCによって、第5タイミングT5まで、第1レジスタR1が使用されている。したがって、第1レジスタR1は、第5タイミングT5以降まで、第2設定パラメータParBの入力を開始するタイミングが遅れる。そのため、図5では、第2設定パラメータParBの入力は、次のフレーム開始となる第8タイミングT8となっても、まだ入力が終了せず、ライトアクセスが続いている状態である。
即ち、第2設定パラメータParBへの更新は、「フレーム2」から「フレーム3」の2つのフレームをかけて行われる例である。このような場合であっても、各モジュールは、「フレーム2」をレジスタ設定「A」のパラメータで画像処理をそれぞれ行うことができる。具体的には、第1モジュールIMG1(図2)は、「フレーム2」の第1フレーム有効信号SIGVAV1をレジスタ設定「A」のパラメータで画像処理できる。同様に、第2モジュールIMG2(図2)は、「フレーム2」の第2フレーム有効信号SIGVAV2をレジスタ設定「A」のパラメータで画像処理できる。特に、第3モジュールIMG3(図2)は、画像処理を行っている間に、第8タイミングT8で入力垂直同期信号SIGVがアサートされても、「フレーム2」の第2フレーム有効信号SIGVAV2をレジスタ設定「A」のパラメータで画像処理できる。
また、第9タイミングT9、第11タイミングT11及び第12タイミングT12で、各トリガ信号が出力されると、第4レジスタR4は、第3レジスタR3に記憶される第1設定パラメータParAを取得する。第10タイミングT10で入力が終了する第2設定パラメータParBは、第10タイミングT10で第2レジスタR2に反映され、第3レジスタR3には、4番目のフレームである「フレーム4」の入力が開始されるタイミングで取得される。
即ち、第13タイミングT13では、「フレーム4」の入力が開始されるタイミングを示す入力垂直同期信号SIGVがアサートされる。したがって、第13タイミングT13で、第3レジスタR3は、第2レジスタから第2設定パラメータParBを取得し、第1設定パラメータParAから第2設定パラメータParBに更新される。
なお、第4レジスタR4が有する各モジュールレジスタは、第14タイミングT14、第15タイミングT15及び第16タイミングT16で、それぞれ第2設定パラメータParBが示すパラメータに更新される。具体的には、第14タイミングT14で、第1モジュールレジスタR41は、第1モジュール用第1パラメータParA1から第2設定パラメータParBによる第1モジュール用第2パラメータParB1に更新される。同様に、第15タイミングT15で、第2モジュールレジスタR42は、第2モジュール用第1パラメータParA2から第2設定パラメータParBによる第2モジュール用第2パラメータParB2に更新される。さらに、第16タイミングT16で、第3モジュールレジスタR43は、第3モジュール用第1パラメータParA3から第2設定パラメータParBによる第3モジュール用第2パラメータParB3に更新される。
したがって、第1モジュールIMG1、第2モジュールIMG2及び第3モジュールIMG3は、同一のフレームにおいて、同一のパラメータでそれぞれ画像処理を行うことができる。特に、画像処理が行われている間に、入力垂直同期信号SIGV等がアサートされても、画像処理部は、1フレーム期間中で、パラメータが途中で異なる値にならずに同一のパラメータで画像処理を行うことができる。
なお、レジスタアクセスACCは、例えば、リードアクセス又は画像処理に係るパラメータ以外のモジュールへのアクセス等である。第2設定パラメータParBを入力開始するタイミングが遅れる原因は、レジスタアクセスACCに限られず、他の理由でもよい。
<画像処理部の構成例>
図6は、本発明の一実施形態に係る画像処理装置が有する画像処理部の構成の一例を示すブロック図である。以下、図6では、図2に示す第1モジュールIMG1を例に説明する。なお、図2に示す第2モジュールIMG2及び第3モジュールIMG3は、例えば、第1モジュールIMG1と同様の構成であるが、各モジュールが行う画像処理の種類によってそれぞれ異なる構成であってもよい。
例えば、第1モジュールIMG1は、ラインバッファ部IMG1F1と、SRAM(Static Random Access Memory)IMG1F2と、画像処理演算部IMG1F3と、トリガ信号出力部IMG1F4とを有する。
ラインバッファ部IMG1F1は、有効画像データ信号SIGVAIMGによって入力される画像データをSRAMIMG1F2に記憶する。また、ラインバッファ部IMG1F1は、複数のライン分のデータを画像処理演算部IMG1F3にSRAMIMG1F2から出力する。画像処理演算部IMG1F3がフィルタ処理のような複数のラインを用いる処理を行う場合には、このように、ラインバッファ部IMG1F1は、複数のライン分のデータを画像処理演算部IMG1F3に出力する。
例えば、5画素×5ラインの参照範囲に係るフィルタ処理が行われる場合には、フィルタ処理において、注目画素に対して前後2ラインずつと、注目画素のラインとを合計して5ライン分の画像データがSRAMIMG1F2に記憶される。この場合には、ラインバッファ部IMG1F1は、5ライン分の画像データから5画素×5ラインに相当する25画素分のデータを画像処理演算部IMG1F3に出力する。したがって、注目画素に対して、後段の2ラインのデータが入力された後、画像処理演算部IMG1F3によって、画像処理が行われるため、第1モジュールIMG1への入力から出力までには、遅延が生じる。
画像処理演算部IMG1F3は、画像処理のアルゴリズムの内容に応じた演算を行う。第1パラメータP1及び共通パラメータPCOMは、画像処理演算部IMG1F3等で使用される。例えば、第1パラメータP1は、画像処理演算部IMG1F3がフィルタ処理を行う場合では、フィルタ係数の値等である。また、共通パラメータPCOMは、例えば、画像の水平方向及び垂直方向を示す値、即ち、画像サイズを示す値等である。
画像処理演算部IMG1F3は、画像処理に係る演算に用いるパラメータを第1パラメータP1及び共通パラメータPCOMとして入力する。このため、トリガ信号出力部IMG1F4は、画像処理演算部IMG1F3に入力される垂直同期信号に基づいて第1トリガ信号TRG1を生成し、第1モジュールレジスタR41に出力する。トリガ信号出力部IMG1F4から第1トリガ信号TRG1が出力されると、第1モジュールIMG1は、第1モジュールレジスタR41から第1パラメータP1及び共通パラメータPCOMを入力する。
図7は、本発明の一実施形態に係る画像処理装置が有する画像処理部に係る動作の一例を示すタイミングチャートである。図7は、図6に示す第1モジュールIMG1によって、5画素×5ラインのフィルタ処理が行われる例である。
第1モジュールIMG1への入力信号がフレーム有効信号SIGVAV、ライン有効信号SIGVAH及び有効画像データ信号SIGVAIMGであるとする。これに対して、フィルタ処理に必要な画像データを記憶するため、第1モジュールIMG1への入力信号と、ラインバッファ部IMG1F1(図6)からの出力信号とでは、遅延がある。
以下、ラインバッファ部IMG1F1からの出力信号を第2フレーム有効信号SIGVAV2、第2ライン有効信号SIGVAH2及び第2有効画像データ信号SIGVAIMG2とする。また、画像処理演算部IMG1F3(図6)からの出力信号を第3フレーム有効信号SIGVAV3、第3ライン有効信号SIGVAH3及び第3有効画像データ信号SIGVAIMG3とする。さらに、図7では、第1モジュールIMG1への入力から、ラインバッファ部IMG1F1からの出力までの遅延量を第1遅延量DL1とする。さらにまた、図7では、ラインバッファ部IMG1F1からの出力から画像処理演算部IMG1F3(図6)からの出力までの遅延量を第2遅延量DL2とする。
具体的には、この例では、第1遅延量DL1は、2ライン分となる。即ち、フィルタ処理を行うのに、ラインバッファ部IMG1F1は、注目画素に対して後段の2ライン分まで画像データを記憶する。このバッファによって、第1遅延量DL1が発生する。
さらに、第2遅延量DL2は、画像処理演算部IMG1F3によるパイプライン処理のレイテンシである。即ち、第2遅延量DL2は、画像処理演算部IMG1F3によるパイプライン処理のクロックサイクル分となる。例えば、フィルタ処理では、注目画素及び注目画素の周辺画素に対してそれぞれフィルタ係数を乗じる乗算が行われ、更に各乗算によって計算される値を合計する等の処理が行われる。したがって、画像処理演算部IMG1F3では、各計算によって、遅延が生じる。
したがって、第1モジュールIMG1では、入力から出力まで、第1遅延量DL1及び第2遅延量DL2がある。図7に示す例では、少なくとも2ライン分の遅延が発生する。これに対して、図7に示す例では、フレーム間のブランクBLが少ない。例えば、ブランクBLが1ラインであるとすると、ブランクBLは、第1モジュールIMG1による遅延量よりも大きい。このような場合には、前段のラインバッファ部IMG1F1等が「フレーム1」の画像処理を終了していても、後段の処理である画像処理演算部IMG1F3は、まだ「フレーム1」の画像処理を行っている場合がある。そのため、次のフレームである「フレーム2」の入力が開始されても、「フレーム1」用のパラメータを保持している必要がある場合がある。
具体的には、図7では、第1モジュール用第1パラメータParA1は、画像処理演算部IMG1F3が「フレーム2」の処理を終了するまで保持する必要がある。
本実施形態では、第1トリガ信号によって、第1モジュールレジスタR41を更新する。そのため、画像処理演算部IMG1F3が「フレーム2」の処理を終了するまで、第1モジュールレジスタR41は、第1モジュール用第1パラメータParA1を保持できる。これに対して、第1モジュールレジスタR41と、第2モジュールレジスタR42とは、それぞれ異なるタイミングで更新できる。したがって、各モジュールがそれぞれ異なるフレームを処理する場合であっても、各モジュールレジスタは、各フレームに対して同一のパラメータで画像処理を行うことができる。
また、第1モジュールレジスタR41は、入力されるパラメータのうち、第1モジュールIMG1が画像処理に用いる第1パラメータP1(図6)と、共通パラメータPCOM(図6)とを選んで取得する。したがって、パラメータの数を少なくできる。ゆえに、第1モジュールレジスタR41は、パラメータの数が少ないため、更新を速く行うことができる。
<比較例>
図8は、第1比較例に係る画像処理装置による全体処理の処理結果の一例を示すタイミングチャートである。図8は、第1レジスタR1にパラメータが入力され、第2レジスタR2に記憶されるパラメータによって画像処理が行われる例である。
まず、「フレーム1」の期間中に、レジスタ設定「A」の第1設定パラメータParAが第1レジスタR1に入力される。次に、「フレーム2」の先頭、即ち、第20タイミングT20で、第2レジスタR2は、第1レジスタR1に記憶されるパラメータを取得し、更新される。これによって、第2レジスタR2が記憶するパラメータは、初期設定パラメータParIntから第1設定パラメータParAに更新される。
しかし、例えば、レジスタ設定「B」の第2設定パラメータParBのように、レジスタ設定量が多い場合又は1フレーム期間が短い場合等がある。この場合では、第1ケースCA1のように、「フレーム1」の期間中に、第1レジスタR1への第2設定パラメータParBの入力が終了しない。このような場合では、第21タイミングT21で、第1設定パラメータParAと、第2設定パラメータParBとが混在する混在パラメータParABが、第2レジスタR2に取得される。したがって、第2レジスタR2は、第1設定パラメータParAから混在パラメータParABに更新される。
この場合には、混在パラメータParABによって画像処理されるフレームが発生してしまう場合がある。
図9は、第2比較例に係る画像処理装置による全体処理の処理結果の一例を示すタイミングチャートである。図9では、図8と同一の名称には、同一の名称及び符号を付し説明を省略する。図9は、図8と比較すると、第2レジスタ更新信号SIGR2がある点が異なる。
図示するように、チップセレクトcs信号がネゲートされた後、入力垂直同期信号SIGVがアサートされると、第2レジスタ更新信号SIGR2は、アサートされる。なお、第2レジスタ更新信号SIGR2は、ハイアクティブ信号とする。この例では、第21タイミングでは、第1レジスタR1への第2設定パラメータParBの入力が終了していない。そのため、第2レジスタ更新信号SIGR2は、アサートされない。この場合には、第2レジスタ更新信号SIGR2は、第21タイミングT21でアサートされる。
図10は、第2比較例に係る画像処理装置による全体処理の別の処理結果の一例を示すタイミングチャートである。図10は、図9と比較すると、レジスタアクセスACCが行われる点が異なる。図示するように、ライトアクセス等のレジスタアクセスACCが行われた場合でも、チップセレクトcs信号は、ネゲートされる。そのため、第21タイミングT21では、第1レジスタR1への第2設定パラメータParBの入力が終了していない場合でも、第2レジスタ更新信号SIGR2は、アサートされてしまう場合がある。これによって、図8に示す場合と同様に、第21タイミングT21で、混在パラメータParABが、第2レジスタR2に取得される場合がある。したがって、第2レジスタR2は、第1設定パラメータParAから混在パラメータParABに更新される場合がある。したがって、混在パラメータParABによって画像処理されるフレームが発生してしまう場合がある。
図11は、第1比較例又は第2比較例に係る画像処理装置による全体処理の処理結果の一例を示すタイミングチャートである。図11は、図8と同様の第1比較例又は図9と同様の第2比較例に画像処理装置によって処理が行われた場合の例である。画像処理装置が有する画像処理モジュールは、ラインバッファ等を有する場合がある。ラインバッファ等を用いる処理が行われると、第3遅延量DL3が発生する場合が多い。第3遅延量DL3に対して、フレーム間のブランクBLが少ない場合がある。
このような場合に、前段の画像処理モジュールと、後段の画像処理モジュールとで、それぞれ異なるフレームを処理する場合がある。具体的には、第31タイミングT31では、第1フレーム有効信号SIGVAV1に対する画像処理は、「フレーム3」に対して行われる。一方、第31タイミングT31では、第3フレーム有効信号SIGVAV3に対する画像処理は、「フレーム2」に対して行われる。
したがって、第31タイミングT31で、パラメータが更新されると、第3フレーム有効信号SIGVAV3に対する画像処理のうち、第31タイミングT31後の「フレーム2」に対する処理は、更新後のパラメータで行われる。ゆえに、第3フレーム有効信号SIGVAV3に対する画像処理は、「フレーム2」に対して、第1設定パラメータParAで画像処理される部分と、第2設定パラメータParBで画像処理される部分とが混在する画像が生成されてしまう場合がある。即ち、第2ケースCA2のように、同一のフレームについて、画像処理が、フレームの途中から異なるパラメータで行われる場合がある。
なお、実施形態は、画像処理装置が3種類の画像処理を行う場合に限られない。例えば、画像処理装置は、2種類以下の画像処理又は4種類以上の画像処理を行ってもよい。この場合には、第4レジスタが有するモジュールレジスタの数は、各画像処理に用いられるパラメータの種類数等に応じて変更されてもよい。
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。