以下、発明を実施するための最適かつ最小限な形態について、図面を参照して説明する。なお、図面において、同一の符号を付す場合には、同様の構成であることを示し、重複する説明を省略する。また、図示する具体例は、例示であり、図示する以外の構成が更に含まれる構成であってもよい。
<第1実施形態>
<画像処理装置例>
はじめに、本実施形態に係る画像処理装置の全体構成の一例について説明する。
図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が画像処理を行う例で説明する。なお、画像データは、動画等の複数のフレームであるとする。
<画像を転送するためのプロトコルの例>
例えば、以下のようなプロトコルに基づいて、有効信号(水平方向及び垂直方向について異なる信号とする。)及び画像は、ASIC100H3に入力される。
図2は、本発明の一実施形態に係る画像を転送するためのプロトコルの例を示すタイミングチャートである。以下、画像は、以下のようなタイミングで入力されるとする例で説明する。
フレーム有効信号FVは、画像の垂直方向についての有効信号である。
水平同期信号HDPは、画像の水平方向について、ラインごとの先頭を示す信号である。
ライン有効信号LVは、画像の水平方向についての有効信号である。
画像データ信号IMGDは、画素値等を示す信号である。
なお、以下の説明では、信号は、原則、ハイアクティブ信号であるとする。ただし、リセット信号等がローアクティブ信号である構成であってもよい。
例えば、画像データ信号IMGDは、センサから出力される垂直同期信号及び水平同期信号等に同期して、ASIC100H3に入力される。これらの信号が、画像処理の対象となる「対象画像」である。また、ASIC100H3は、画像のデータが有効であるのを示す有効信号を用いるのが設計上望ましい。そのため、例えば、図示するようなプロトコルに基づいて、フレーム有効信号FV及びライン有効信号LVのように、水平方向及び垂直方向について、それぞれの有効信号があるのが望ましい。
図示する例では、「valid」で示す画像のデータ(以下「有効データVA」という。)が、後段で行われる画像処理等の対象にするデータである。
図示するように、有効データVAは、フレーム有効信号FV及びライン有効信号LVがいずれもアサート(この例は、どちらの信号もハイアクティブ信号であるため、どちらも「H」の状態を指す。)である間に存在する。このように、有効信号は、有効データVAが存在する期間を示す。なお、有効信号は、「イネーブル信号」等と呼ばれる場合もある。
なお、有効信号等は、図示するような場合に限られない。すなわち、図示する以外に同期する他のデータ又はイネーブル信号等があってもよい。また、フレームの先頭を示す信号、いわゆるフレームリセット信号等が更にあってもよい。
また、以下の説明では、単に「画像」という場合には、同期するクロック信号、有効信号、及び、リセット信号等を省略して説明する場合がある。
<電子回路の構成例>
以下、画像が2系統の入力である場合を例に説明する。ただし、画像は、複数であればよく、3系統以上の入力があってもよい。また、以下の例では、複数の画像のうち、一方の画像を「第1画像」とし、他方の画像を「第2画像」とする。
図3は、本発明の一実施形態に係る2系統の画像を入力する電子回路の構成例を示すブロック図である。図示するように、画像処理回路12には、第1画像IMG1及び第2画像IMG2のうち、セレクタによって選択された画像が入力される。
すなわち、複数の画像のうち、どの画像を画像処理の対象とするかは、セレクタによって定まる。そして、セレクタがどの画像を選択するかは、レジスタ制御回路10が構成するレジスタに設定される。この設定に基づいて切替信号SIGSがセレクタに出力される。
また、画像は、例えば、以下のように入力される。
図4は、本発明の一実施形態に係る画像の入力例を示すタイミングチャートである。まず、画像は、センサ等から入力される。
例えば、第1画像の入力は、第1画像フレーム有効信号IMG1FVによって把握される。同様に、第2画像の入力は、第2画像フレーム有効信号IMG2FVによって把握される。なお、画像の入力には、例えば、図2に示すようにフレームの有効信号以外である、データ等の信号が同期して入力されてもよい。以下、フレームの有効信号以外の信号を省略して記載する。
画像の切り替えが可能であると、例えば、第21入力フレームFI21、すなわち、第2画像を選択して対象画像にした後、次に、第11入力フレームFI11、すなわち、第1画像を選択する等のような切り替えが行われる。このような切り替えを行うには、例えば、以下のような電子回路等で実現する。
図5は、本発明の一実施形態に係る電子回路の構成例を示すブロック図である。例えば、図示するような構成の電子回路をASIC100H3が有する場合を例に説明する。
まず、ASIC100H3は、レジスタ制御回路10、画像セレクタ回路11、画像処理回路12、及び、画像処理用レジスタ回路13等を有する構成である。
レジスタ制御回路10は、I/F(interface)等によって入力されるレジスタに対する設定に基づいて、レジスタの切り替え等の制御を行う。例えば、I/Fは、APB(Advanced Peripheral Bus)I/F等のバスである。具体的には、書き込みの対象となるレジスタのアドレスを示す信号、書き込まれる値を示す信号、書き込みを示す信号、レジスタを選択する信号、及び、各信号のイネーブル信号等が、I/Fによって入力される。したがって、I/Fによってソフトウェア等により、レジスタへ入力する値等が入力される。なお、I/Fで入力される信号は、仕様等に基づいて、上記以外の信号があってもよい。
レジスタ制御回路10は、例えば、デコーダ回路101、第1フリップフロップ回路102、第2フリップフロップ回路103、及び、切替回路104等を有する回路構成である。
デコーダ回路101は、例えば、アドレス値等をレジスタに書き込めるデータ形式に変換をする回路である。
第1フリップフロップ回路102は、ソフトウェア等からレジスタへの書き込みを受け付ける。したがって、第1フリップフロップ回路102では、レジスタに対してソフトウェア等から書き込みのアクセスがあると、すぐに値が更新される。
第2フリップフロップ回路103は、レジスタ設定の完了を示すトリガ信号TRGに基づいて更新される。例えば、トリガ信号TRGは、外部から入力される。
トリガ信号TRGが出力されるタイミング、すなわち、第1フリップフロップ回路102が構成するレジスタに設定されているパラメータが、第2フリップフロップ回路103が構成するレジスタに反映されるタイミングは、あらかじめ設定される条件を満たした場合である。したがって、トリガ信号TRGは、例えば、ソフトウェアによるレジスタへの書き込みが完了している状態等を判断して出力される。ほかには、バースト転送によるレジスタアクセスが完了したタイミング、又は、トリガ信号TRGをアサートさせるレジスタを設けて、そのレジスタのライトタイミング等に基づいて、トリガ信号TRGが出力される。
例えば、第1フリップフロップ回路102及び第2フリップフロップ回路103等が構成するレジスタに設定されるパラメータ(以下「セレクタ用パラメータ」という。)は、多段のフリップフロップ回路等によって記憶及び更新される。このように、多段の構成であると、ソフトウェア等がセレクタ用パラメータを書き込んでいる間等は、セレクタ用パラメータが画像処理に反映されず、所定のタイミングでセレクタ用パラメータを画像処理に反映できる。なお、レジスタは、3段以上の多段であってもよい。
切替回路104は、セレクタ等によって、対象画像を選択する制御を行う。具体的には、切替回路104は、切替信号SIGSに基づいて、第1画像IMG1(図では、「0」の場合となる。)、第2画像IMG2(図では、「1」の場合となる。)、及び、画像処理回路12に入力する画像をOFFにする処理(以下「マスク処理」という場合もある。)(図では、「2」の場合となる。)という3つの選択肢のうち、いずれかに切り替える。
切替信号SIGSが「0」であると、画像処理回路12に入力する、すなわち、対象画像(以下、対象画像は、「入力画像信号INIMG」という信号を用いて画像処理回路12に入力する。)は、第1画像IMG1となる。また、切替信号SIGSが「1」であると、入力画像信号INIMGによって、第2画像IMG2が入力される。さらに、切替信号SIGSが「2」であると、入力画像信号INIMGは、マスク処理された状態(例えば、画像の入力を示す有効信号がネゲート(negate)になる。)となる。
第2フリップフロップ回路103等が構成するレジスタに設定されるパラメータ、すなわち、セレクタ用パラメータには、対象画像を選択する設定が含まれる。例えば、セレクタ用パラメータ、すなわち、複数の画像のうち、どの画像を画像処理の対象とするかは、ユーザの操作等で入力される。
画像処理回路12は、切替回路104によって選択された画像、すなわち、入力画像信号INIMGに対して、画像処理用パラメータPAに基づいて画像処理を行い、出力画像を生成する。
画像処理用パラメータPAは、例えば、フィルタ処理が行われる場合には、フィルタの係数等である。
画像処理用レジスタ回路13には、画像処理回路12によって行われる画像処理に用いる画像処理用パラメータPAが設定される。以下、画像処理用パラメータPAは、第1画像IMG1用と第2画像IMG2用があらかじめ入力され、画像処理の対象とする画像が第1画像IMG1であるか第2画像IMG2であるかの選択によって画像処理用パラメータPAが連動して切り替わる例とする。
セレクタ用パラメータが、切替信号SIGSにすぐに反映されるか否かは、切替回路104の状態(以下、ステートマシンにおける「ステート」で示す。)によって異なる。したがって、第2フリップフロップ回路103等が構成するレジスタ、すなわち、セレクタ用パラメータで選択する画像と、切替信号SIGSが画像処理の対象に選ぶ画像は、切替回路104の状態によって、一致する場合と異なる場合がある。
例えば、切替回路104は、以下のようなステートマシンで状態の制御を行う。
図6は、本発明の一実施形態に係る切替回路の状態遷移例を示すステートマシン図である。以下、切替回路104には、第0ステート、第1ステート、第2ステート、及び、第3ステートという4つの状態がある場合を例に説明する。
第0ステートは、初期状態である。図では、「S0」で示す。そして、第0ステートでは、第2フリップフロップ回路103が記憶するセレクタ用パラメータは、切替信号SIGSに反映される。
例えば、リセットが解除されると、状態は、第0ステートへ遷移する。又は、選択されている画像の垂直方向についての有効信号(いわゆるフレームのイネーブル信号である。)がネゲートになると、状態は、第3ステートから第0ステートへ遷移する。このようにフレームが入力されていない状態等において、第0ステートに遷移し、セレクタ用パラメータが切替信号SIGSに反映される。
ほかにも、第2ステートにおいて、画像のデータの押し出しが完了し、かつ、押し出しの完了時点において、切替信号SIGSとセレクタ用パラメータが同じ(すなわち、同じ画像を選択している状態である。)であると、状態は、第2ステートから第0ステートへ遷移する。
又は、第2ステートにおいて、画像のデータの押し出しが完了し、かつ、押し出しの完了時点において切替信号SIGSとセレクタ用パラメータが異なる場合(すなわち、切替信号SIGSと、第2フリップフロップ回路103等が構成するレジスタで選択する画像が異なる場合である。)であって、選択されている画像の垂直方向についての有効信号がネゲートであると、状態は、第2ステートから第0ステートへ遷移する。
第1ステートは、画像のデータを入力している状態である。図では、「S1」で示す。そして、第1ステートでは、セレクタ用パラメータが、切替信号SIGSに反映されず、切替信号SIGSは、維持される。
例えば、第0ステートにおいて、選択されている画像の垂直方向についての有効信号が立ち上がる、すなわち、画像のデータ入力が開始されると、状態は、第0ステートから第1ステートへ遷移する。
第2ステートは、画像のデータを押し出している状態である。図では、「S2」で示す。そして、第2ステートでは、セレクタ用パラメータが、切替信号SIGSに反映されず、切替信号SIGSは、維持される。
例えば、第1ステートにおいて、選択されている画像の垂直方向についての有効信号が立ち下がる、すなわち、画像のデータ入力が終了すると、状態は、第1ステートから第2ステートへ遷移する。
第3ステートは、画像処理に対する入力をマスク処理している状態である。図では、「S3」で示す。
マスク処理は、対象画像に対する画像処理を無効にする処理である。例えば、マスク処理は、画像処理回路12に入力される画像を画像処理するのに用いる有効信号(フレーム、垂直方向、水平方向、又は、これらの組み合わせである。)をネゲートとする処理である。したがって、マスク処理がされていると、仮に画像処理回路12に画像を示すデータが入力されても、無効であるため、画像処理回路12は、画像処理を行わず、入力された画像に対する出力もない状態となる。
このように、マスク処理がされると、フレームの途中の画像を対象画像にするのを防げる。そのため、マスク処理がされると、フレームが途中の画像等が画像処理されて無効な画像が出力されるのが防げる。
したがって、無効は、画像処理回路12による画像処理が行われなければよく、例えば、画像のデータが画像処理回路12に入力しないように、画像処理に対する画像の入力を止める処理等でもよい。
例えば、第2ステートにおいて、画像のデータの押し出しが完了し、かつ、押し出し完了時点において切替信号SIGSとセレクタ用パラメータが異なる場合であって、選択されている画像の垂直方向についての有効信号がアサート(assert)中であると、状態は、第2ステートから第3ステートへ遷移する。
すなわち、第2ステートでは、まず、押し出し完了時点において、切替信号SIGSとセレクタ用パラメータが異なるか否かが判断される。この判断により、第0ステートへ遷移するか否かが決まる。次に、切替信号SIGSとセレクタ用パラメータが異なると判断されると、画像の垂直方向についての有効信号がアサート中か、ネゲートであるかが判断される。この判断により、第0ステートへ遷移するか、又は、第3ステートへ遷移するかが決まる。
以上のようなステートマシンを用いると、例えば、以下のように画像の切り替えが行われる。
図7は、本発明の一実施形態に係る切り替えの例を示すタイミングチャートである。
第1画像フレーム有効信号IMG1FVは、第1画像の垂直方向についての有効信号の例である。この例では、第1画像フレーム有効信号IMG1FVは、ハイアクティブ信号である。したがって、第1画像フレーム有効信号IMG1FVが高レベル(以下、信号の種類によらず、高レベルの状態を「H」と示す。一方で、低レベルの状態を「L」と示す。)である間は、有効な画像のデータがあることを示す。また、第1画像フレーム有効信号IMG1FVは、画像のフレーム単位で立ち上がり、及び、立ち下がりとなる。
ゆえに、第1画像フレーム有効信号IMG1FVが立ち上がると、画像の入力開始となる。一方で、第1画像フレーム有効信号IMG1FVが立ち下がると、画像の入力終了となる。したがって、図示する例は、第11入力フレームFI11、第12入力フレームFI12、第13入力フレームFI13の順に第1画像が入力される例である。
第1画像水平信号IMG1HDPは、第1画像の水平方向についての同期信号である。この例では、第1画像水平信号IMG1HDPは、水平方向についての開始を示す信号である。したがって、この例では、第1画像水平信号IMG1HDPが「H」となってから、次の「H」となるまでが1ライン分となる。すなわち、第1画像水平信号IMG1HDPは、ラインリセット等と呼ばれる場合もある信号である。
第2画像フレーム有効信号IMG2FVは、第2画像の垂直方向についての有効信号の例である。この例では、信号の動作等は、第1画像と同様とする。図示する例は、例えば、第2画像は、第1画像より高フレームレートで入力及び出力される例である。ゆえに、この例では、第2画像フレーム有効信号IMG2FVは、「H」及び「L」の周期が第1画像フレーム有効信号IMG1FVより短い。
第2画像水平信号IMG2HDPは、第2画像の水平方向についての同期信号である。この例では、信号の動作等は、第1画像と同様とする。
したがって、図示する例は、第21入力フレームFI21、第22入力フレームFI22、第23入力フレームFI23、第24入力フレームFI24、第25入力フレームFI25、第26入力フレームFI26の順に第2画像が入力される例である。
第1レジスタ選択信号R1は、第1フリップフロップ回路102が構成するレジスタに設定されている設定値に基づいて選択されている画像を示す。以下、この例は、第1レジスタ選択信号R1が「L」であると、第1画像を選択する設定であるとする。一方で、第1レジスタ選択信号R1が「H」であると、第2画像を選択する設定であるとする。
トリガ信号TRGは、第1フリップフロップ回路102が構成するレジスタに書き込みが完了したタイミングを知らせる信号である。したがって、この例では、トリガ信号TRGに基づいて、第1レジスタ選択信号R1の内容が、第2レジスタ選択信号R2に反映される。
第2レジスタ選択信号R2は、第2フリップフロップ回路103が構成するレジスタに設定されている設定値に基づいて選択されている画像を示す。以下、この例は、第1レジスタ選択信号R1と同様に、第2レジスタ選択信号R2が「L」であると、第1画像を選択する設定であるとする。一方で、第2レジスタ選択信号R2が「H」であると、第2画像を選択する設定であるとする。
ステート信号STは、ステートマシンの状態を示す。以下、このタイミングチャートでは、ステートマシンにおける第0ステート、第1ステート、第2ステート、及び、第3ステートを「S0」、「S1」、「S2」、及び、「S3」と示す。
セレクト信号SELは、画像セレクタ回路11の状態を示す。具体的には、図2に示すように、セレクト信号SELが「0」であると、第1画像IMG1が選択され、画像処理回路12には、第1画像IMG1が入力される。また、セレクト信号SELが「1」であると、第2画像IMG2が選択され、画像処理回路12には、第2画像IMG2が入力される。さらに、セレクト信号SELが「2」であると、対象画像等が無効となるマスク処理が行われる。
入力画像フレーム有効信号INFVは、画像処理回路12に入力される画像の垂直方向についての有効信号の例である。
入力画像水平信号INHDPは、画像処理回路12に入力される画像の水平方向についての同期信号である。
入力画像フレーム有効信号INFV及び入力画像水平信号INHDPは、第1画像フレーム有効信号IMG1FV、第1画像水平信号IMG1HDP、第2画像フレーム有効信号IMG2FV、及び、第2画像水平信号IMG2HDPのうち、セレクト信号SELで選択された信号である。
具体的には、第11入力フレームFI11が入力されている時点では、セレクト信号SELが「0」であるため、第1画像が選択され、入力画像フレーム有効信号INFV及び入力画像水平信号INHDPは、第1画像フレーム有効信号IMG1FV、及び、第1画像水平信号IMG1HDPとなる。一方で、第24入力フレームFI24が入力されている時点では、セレクト信号SELが「1」であるため、入力画像フレーム有効信号INFV及び入力画像水平信号INHDPは、第2画像フレーム有効信号IMG2FV、及び、第2画像水平信号IMG2HDPとなる。
例えば、第11タイミングT11のように、「S0」の状態において、第1画像フレーム有効信号IMG1FVが立ち上がると、状態は、「S0」から「S1」に遷移する。
そして、「S1」である場合において、第11入力フレームFI11が入力されている途中である、第12タイミングT12で、画像処理の対象とする画像を第1画像から第2画像に切り替えるように設定したとする。このように、「S1」において、切替があると、第13タイミングT13等のように、第1画像フレーム有効信号IMG1FVが立ち下がると、状態は、「S1」から「S2」に遷移する。そして、例えば、第13タイミングT13等から押し出し期間PHとなる。
押し出し期間PHは、この例では、2ライン分と設定した場合の例である。したがって、第1画像フレーム有効信号IMG1FVが立ち下がる時点、すなわち、第13タイミングT13から2ライン分(この例は、水平信号を3回分と設定した例とする。)が押し出し期間PHとなる。
したがって、この例では、押し出し期間PHは、例えば、第13タイミングT13から第14タイミングT14までの期間である。すなわち、押し出し完了時点は、例えば、第14タイミングT14等である。
例えば、第14タイミングT14は、「S2」において、押し出し完了時点となり、かつ、切替信号(すなわち、この例では、セレクト信号SELが「0」であるため、切替信号で第1画像IMG1が選択されている。)とセレクタ用パラメータ(すなわち、この例では、第2レジスタ選択信号R2が「H」であるため、切替信号によって、第2画像が選択されている。)が異なる場合である。さらに、第14タイミングT14は、選択されている画像(この場合では、第23入力フレームFI23となる。)の垂直方向についての有効信号がアサート中である。そのため、第14タイミングT14では、状態は、「S2」から「S3」に遷移する。
第14タイミングT14から第15タイミングT15までのように、「S3」では、入力画像フレーム有効信号INFV及び入力画像水平信号INHDP等がマスク処理される。具体的には、マスク状態MKは、入力画像フレーム有効信号INFV及び入力画像水平信号INHDP等の有効信号又はリセット信号等が無効となる。
したがって、マスク状態MKでは、入力画像フレーム有効信号INFV及び入力画像水平信号INHDP等の信号がネゲートとなる。このようにマスク処理がされると、マスク状態MKとなるため、第23入力フレームFI23等の画像が入力されても、無効となる。
また、この例は、「S1」である場合において、第24入力フレームFI24が入力されている途中である、第16タイミングT16で、画像処理の対象とする画像を第2画像から第1画像に切り替えるように設定する例である。
第12タイミングT12における切り替えと同様に、第16タイミングT16で行われる切り替えによって、第17タイミングT17では、第2画像フレーム有効信号IMG2FVが立ち下がると、状態は、「S1」から「S2」に遷移する。
次に、第17タイミングT17から第18タイミングT18までが押し出し期間PHであるため、第18タイミングT18が押し出し完了時点となる。
例えば、第18タイミングT18は、「S2」において、押し出し完了時点となり、かつ、切替信号(すなわち、この例では、セレクト信号SELが「1」であるため、切替信号で第2画像IMG2が選択されている。)とセレクタ用パラメータ(すなわち、この例では、第2レジスタ選択信号R2が「L」であるため、切替信号によって、第1画像が選択されている。)が異なる場合である。さらに、第18タイミングT18は、選択されている画像(この場合では、第1画像となる。)の垂直方向についての有効信号がネゲートである。そのため、第18タイミングT18では、状態は、「S2」から「S0」に遷移する。このように、選択されている画像の状態によっては、マスク処理が不要である場合もある。
以上のように、マスク処理がされると、画像が切り替えられても、押し出し期間の間に画像が入力される、又は、フレーム途中の画像が途中から入力される等を防ぎ、画像処理の制約(プロトコル等である。)を守ることができる。また、このようなマスク処理ができると、画像を切り替えるのに、画像の入力を停止させる等を行わなくとも、画像が切り替えられる。また、画像の入力を停止しなくても、画像が切り替えられるため、高速な切り替えができる。さらに、ソフトウェアで切り替えの制御を行う上で、切り替えのタイミングに対する制約を守ることができるため、ソフトウェアの開発効率を高めることができる。
<画像の押し出し完了の判断例>
画像の押し出し完了は、例えば、フレームの有効信号がネゲートしてから経過した時間、又は、フレームの有効信号がネゲートしてからカウントされる水平信号の数等に基づいて判断されてもよい。
なお、時間又は水平信号の数等、すなわち、押し出し完了と判断するための基準は、あらかじめ設定される。この設定によって、押し出し期間が定まる。例えば、押し出し期間は、仕様、動作モード、又は、水平方向の周期等に基づいて設定されるのが望ましい。
例えば、入力される画像に対して、画像処理において、フィルタ処理が行われる場合には、ラインバッファ等が用いられるため、ラインバッファの前後でライン遅延等が生じる場合が多い。例えば、「5×5」のフィルタのような処理を行う場合には、注目する画素に対して少なくとも2ライン分、後ろの画素が処理に用いられる。そのため、フィルタ処理が行われると、少なくとも2ライン程度の遅延(すなわち、垂直方向に対する遅延となる。)が発生する場合が多い。同様に、水平方向にも遅延が発生する場合がある。
したがって、押し出し期間は、このような処理内容等に基づいて、画像の入力に対する出力に発生する遅延等を考慮して設定されるのが望ましい。そのため、画像処理がモード等によって異なる場合もあるため、時間又は水平信号の数等といった押し出し完了を判断するための設定値は、レジスタに設定されるのが望ましい。そして、モードの変更等がある場合には、合わせて設定されるのが望ましい。
また、以下のように押し出し完了が判断されてもよい。
図8は、本発明の一実施形態に係る電子回路の変形例を示すブロック図である。図5と比較すると、変形例では、画像処理回路12から出力される出力画像を示す信号(以下「出力信号OUTIMG」という。)が切替回路104にフィードバックされる点が異なる。以下、異なる点を中心に説明し、重複する説明を省略する。
この変形例では、出力信号OUTIMGに基づいて、切替回路104は、出力信号OUTIMGが示すフレームの有効信号及びラインリセット信号等を入力する。
そして、切替回路104は、出力信号OUTIMGが示す出力画像のフレームの有効信号のネゲート等を基準にして押し出し期間を判断してもよい。なお、出力信号OUTIMGを判断に用いる場合には、出力画像のフレームの有効信号には遅延がない場合があるため、フレーム等の有効信号がネゲートしてからライン等に遅延なく状態遷移等が行われてもよい。
一方で、切替回路104は、出力信号OUTIMGを基準にして、フレーム等の有効信号がネゲートしてから経過した時間、又は、フレームの有効信号がネゲートしてからカウントされる水平信号の数等に基づいて判断してもよい。
このように、出力信号OUTIMGに基づいて状態遷移、すなわち、切替信号によるセレクタの変更を行ってもよい。このような構成であると、モード等によって画像処理の種類が変更されても、出力信号OUTIMGには、画像処理による遅延が反映されているため、設定が容易にできる。
<第2実施形態>
第2実施形態は、以下のようなステートマシンを用いる点が第1実施形態と異なる。
図9は、本発明の第2実施形態に係る切替回路の状態遷移例を示すステートマシン図である。第1実施形態と比較すると、第2実施形態は、強制的に「S0」に遷移するモード(以下「第1強制モード」という。)が設定できる点が異なる。
第1強制モードの設定は、例えば、ユーザの操作等によってレジスタ等に設定される。
第1強制モードの設定であると、「S0」では、セレクタ用パラメータが変化した場合、画像処理回路12に対してリセットが行われる。例えば、画像処理回路12に対してリセットを出力する制御を行う回路等に、トリガ信号がアサートされる。
「S0」では、第1強制モードの設定であると、状態は、「S0」に留まる。
「S1」、「S2」又は「S3」では、第1強制モードの設定であると、状態は、「S0」に遷移する。
以上のようなステートマシンを用いると、例えば、以下のような切り替えとなる。
図10は、本発明の第2実施形態に係る切り替えの例を示すタイミングチャートである。第1実施形態と比較すると、第1強制モード信号M1、画像処理回路リセット信号RTRG、画像処理リセット状態信号RIMG、及び、リセット通知信号RSが加わる点が異なる。以下、第1実施形態と同様の信号には同一の符号を付し、説明を省略する。
この例では、第1画像が、第211入力フレームFI211、第212入力フレームFI212の順で入力される。一方で、第2画像は、第221入力フレームFI221が入力される。これらのフレームを切り替えて画像処理の対象画像とする。
第1強制モード信号M1は、第1強制モードの「ON」及び「OFF」を設定する信号である。
画像処理回路リセット信号RTRGは、画像処理回路12に対してリセットを行うトリガ信号である。
画像処理リセット状態信号RIMGは、画像処理回路12のリセット状態を示す。なお、この例では、画像処理リセット状態信号RIMGは、ローアクティブ信号である。したがって、画像処理リセット状態信号RIMGが「L」であると、画像処理回路12にリセットがかけられている状態であるとする。
リセット通知信号RSは、切替回路104に対して、画像処理回路12のリセットが完了したことを知らせる信号である。
例えば、以上のような信号は、以下のような電子回路構成で用いられるのが望ましい。
図11は、本発明の第2実施形態に係る電子回路の構成例を示すブロック図である。図示する構成は、第1実施形態と比較すると、リセット制御回路20が加わる点が異なる。
リセット制御回路20は、入力される画像処理回路リセット信号RTRG等に基づいて、画像処理回路12に対してリセットを行う。そして、リセットを行った結果等は、切替回路104に対して、リセット通知信号RSによって通知される。
以下、第21タイミングT21で第1強制モードを「ON」にする例とする。このように、第1強制モードが設定されると、第21タイミングT21のように、状態は、「S0」に遷移する。そして、「S0」となるため、セレクト信号SELは、第2レジスタ選択信号R2と一致して、「0」となる。
その後、画像を切り替える設定がされるとする。この設定が第22タイミングT22で完了し、この完了がトリガ信号TRGによって知らされるとする。したがって、第22タイミングT22で画像を切り替えるように、第2レジスタ選択信号R2が更新される。
第22タイミングT22は、第212入力フレームFI212が、フレームの途中である。第1強制モードであると、このようなフレームの途中の状態でも、画像の入力が第22タイミングT22のように中止される。このように、第1強制モードが設定できると、フレームの途中等でも、フレームを中止してすぐに画像を切り替えることができる。
この例では、第22タイミングT22では、第212入力フレームFI212が、フレームの途中であっても中止される。その後、すぐに、第221入力フレームFI221、すなわち、第2画像のフレームに切り替えがされている。このような速やかな切り替えができる。
そして、画像処理回路リセット信号RTRGが出力されるのが望ましい。すなわち、画像処理回路12がリセットされるのが望ましい。
第1強制モードは、フレームを途中で中止するような場合もある。したがって、画像処理回路12は、リセットされ、画像処理回路12が有する記憶装置、カウンタ及びステートマシン等が初期の状態にされるのが望ましい。リセットによって初期の状態にしないと、次のフレーム等でエラーが発生する可能性が高くなる。したがって、第1強制モードが設定されている場合には、画像処理回路12がリセットされるのが望ましい。
また、リセット制御回路20がある構成、すなわち、ハードウェアによってリセットがされる構成が望ましい。このようにハードウェアによってリセットがされると、ソフトウェアによる処理の負担等を減らすことができる。さらに、このようにハードウェアによってリセットがされると、次のフレームの処理開始を早くすることができる。
<第3実施形態>
第3実施形態は、以下のようなステートマシンを用いる点が第2実施形態と異なる。
図12は、本発明の第3実施形態に係る切替回路の状態遷移例を示すステートマシン図である。第2実施形態と比較すると、第3実施形態は、第4ステート(図では、「S4」である。)が加わる点が異なる。また、第3実施形態では、第2強制モードが設定できる。
第2強制モードの設定は、例えば、ユーザの操作等によってレジスタ等に設定される。
「S0」、「S2」又は「S3」では、第2強制モードの設定であり、かつ、切替信号とセレクタ用パラメータが異なる場合には、状態は、「S4」に遷移する。
「S4」は、リセットが完了するのを待機する状態である。例えば、「S4」では、画像処理回路リセット信号RTRGがリセット制御回路20に出力される。さらに、「S4」では、「S3」と同様に、マスク処理が行われるのが望ましい。
そして、リセット通知信号RS等によってリセットの完了が通知されると、選択されている画像の有効信号に基づいて、「S0」に遷移するか、又は、「S3」に遷移するかが判断される。
具体的には、リセットが完了、かつ、選択されている画像の垂直方向についての有効信号がネゲートであると、状態は、第4ステートから第0ステートへ遷移する。一方で、リセットが完了、かつ、選択されている画像の垂直方向についての有効信号がアサート中であると、状態は、第4ステートから第3ステートへ遷移する。
以上のようなステートマシンを用いると、例えば、以下のような切り替えとなる。
図13は、本発明の第3実施形態に係る切り替えの例を示すタイミングチャートである。第2実施形態と比較すると、第2強制モード信号M2を用いる点が異なる。以下、第2実施形態と同様の信号には同一の符号を付し、説明を省略する。
この例では、第1画像が、第311入力フレームFI311、第312入力フレームFI312、第313入力フレームFI313の順で入力される。一方で、第2画像は、第321入力フレームFI321、第322入力フレームFI322、第323入力フレームFI323、第324入力フレームFI324、第325入力フレームFI325、第326入力フレームFI326の順で入力される。これらのフレームを切り替えて画像処理の対象画像とする。
第2強制モード信号M2は、第2強制モードの「ON」及び「OFF」を設定する信号である。
以下、第31タイミングT31で第2強制モードを設定する例で説明する。そして、第32タイミングT32で第2強制モードが設定され、かつ、画像の切り替えがセレクタ用パラメータによって行われる。
したがって、第32タイミングT32では、第2強制モード、かつ、切替信号とセレクタ用パラメータが異なると判断されるため、状態は、「S1」から「S4」へ遷移する。
「S4」に状態が遷移すると、画像処理回路リセット信号RTRGが出力される。そのため、画像処理リセット状態信号RIMGが「L」となり、画像処理回路がリセットされるのを待機する。その後、リセット通知信号RSによって、状態は、第324入力フレームFI324がアサート中であるため、「S4」から「S3」へ遷移する。
このようなフレームの途中の状態でも、第1強制モードと同様に、画像の入力が第32タイミングT32のように中止される。このように、第2強制モードが設定できると、第312入力フレームFI312のようにフレームの途中等でも、フレームを中止してすぐに画像を切り替えることができる。
また、第32タイミングT32から第33タイミングT33までの間は、マスク状態MKとなり、入力画像フレーム有効信号INFV及び入力画像水平信号INHDP等の有効信号又はリセット信号等が無効となる。
第33タイミングT33は、第324入力フレームFI324の有効信号が立ち下がる時点である。そのため、状態は、「S3」から「S4」に遷移する。以降、第2画像のフレームである第325入力フレームFI325及び第326入力フレームFI326等というように、第2画像が対象画像となるように切り替わる。
以上のような構成であると、選択する画像がフレームの途中であっても、画像の入力を停止する等を行わなくても、切り替えができる。
<第1比較例>
図14は、第1比較例を示すタイミングチャートである。以下、第1画像が、第411入力フレームFI411、第412入力フレームFI412、第413入力フレームFI413、第414入力フレームFI414、第415入力フレームFI415の順で入力されるとする。一方で、第2画像は、第421入力フレームFI421が入力されるとする。
以下、最初に対象画像を第1画像とし、その後、対象画像を第1画像から第2画像に切り替える。さらにその後、対象画像を第2画像から第1画像にするように切り替えるとする。このような切り替えは、例えば、第41タイミングT41及び第42タイミングT42等で行われる。
すなわち、第1間隔TM1及び第2間隔TM2のように、第1画像及び第2画像がどちらも入力されていない間隔(図では、有効信号が「L」である状態を指す。)で切り替えを行うようにする。
このような方法で切り替えを行うと、第1間隔TM1及び第2間隔TM2のように、切り替えを行うことができるタイミングが制約される。そのため、ソフトウェアによる制御がシビアになる場合が多い。
<第2比較例>
以下、第1比較例と同様のフレーム及びタイミングで画像を入力する例で説明する。
図15は、第2比較例を示すタイミングチャートである。第1比較例と比較すると、第2比較例は、センサを停止する等の制御によって、画像の入力が停止する期間(以下「センサ停止期間SF」という。)がある点が異なる。すなわち、第1比較例では、入力された第412入力フレームFI412、第413入力フレームFI413、及び、第414入力フレームFI414が第2比較例では入力されず、センサ停止期間SFとなる点が第1比較例と異なる。
第2比較例では、切り替えは、例えば、第51タイミングT51及び第52タイミングT52等で行われる。すなわち、第11間隔TM11及び第12間隔TM12のように、第1画像及び第2画像がどちらも入力されていない間隔(図では、有効信号が「L」である状態を指す。)で切り替えを行うようにする。
このような方法では、センサ等を停止できないような場合に切り替えができない場合が多い。さらに、このような方法でも、第11間隔TM11及び第12間隔TM12のように切り替えを行うことができるタイミングが制約される。そのため、ソフトウェアによる制御がシビアになる場合が多い。
<第3比較例>
以下、第1比較例と同様のフレーム及びタイミングで画像を入力する例で説明する。
図16は、第3比較例を示すタイミングチャートである。第3比較例では、画像の切り替えがすぐに反映される例である。
以下、第61タイミングT61及び第63タイミングT63で切り替えを行うとする。このような切り替えを行うには、第21間隔TM21及び第23間隔TM23等のように画像処理の対象にするフレームが入力されていない時点で切り替えを行う。
このような切り替えを行うと、例えば、第412入力フレームFI412及び第414入力フレームFI414のフレームのように、途中で入力が中止する場合がある。このような場合には、画像処理回路がリセットされるのが望ましい。
具体的には、第62タイミングT62及び第64タイミングT64のように、第22間隔TM22及び第24間隔TM24等が画像処理回路のリセットを行うタイミングである。
第22間隔TM22及び第24間隔TM24は、切り替えが行われた後、有効信号が立ち上がるまでの期間である。このような期間にリセットを行うのが望ましいため、リセットを行うタイミングが制約される。
<変形例>
図17は、本発明の一実施形態に係る画像処理回路のハードウェア構成例を示すブロック図である。例えば、画像処理回路12は、図示するようなラインバッファ121等を有するハードウェア構成であるのが望ましい。また、ラインバッファ121が記憶する画像のデータに対してあらかじめ設定される画像処理を行う回路(以下「画像処理本体回路125」という。)が、ラインバッファ121より後段に接続される電子回路構成であるとする。
ラインバッファ121は、例えば、SRAM(Static Random Access Memory)(以下「SRAM122」という。)等の記憶装置によって実現する。また、この例では、SRAM122に対して、データを書き込む回路(以下「書込回路123」という。)及びSRAM122に書き込まれたデータを読み出す回路(以下「読出回路124」という。)があるとする。
書込回路123は、対象画像、すなわち、入力画像信号INIMGをSRAM122に書き込む。
読出回路124は、SRAM122に書き込まれた入力画像信号INIMGを読み出す。
例えば、画像の端等であると、画像データの入力が終了した状態等である。このような状態であっても、画像処理の種類によっては、読出回路124は、読み出しを行う場合がある。このような読み出しを行うには、水平信号等を基準にタイミング制御を行うため、水平同期信号HDP等が入力されるのが望ましい。すなわち、フレームの有効信号がネゲートであっても、水平同期信号HDP等は、ラインバッファ121に入力されるのが望ましい。このような水平同期信号HDPがあると、画像のデータが無い状態であっても、読出回路124等が水平同期信号HDPを基準にして、処理を実行することができる。
例えば、ラインバッファ121等が用いられると、入力画像信号INIMG及び出力画像OUTIMGは、以下のようなタイミングとなる。
図18は、本発明の一実施形態に係る入力画像及び出力画像の例を示すタイミングチャートである。以下、入力画像信号INIMGが、入力画像フレーム有効信号INFV、入力画像水平信号INHDP、入力画像ライン有効信号INLV、及び、入力画像信号INIMGを用いる信号構成である例で説明する。また、この例では、出力画像OUTIMGが、出力画像フレーム有効信号OFV、出力画像水平信号OHDP、出力画像ライン有効信号OLV、及び、出力画像データOIMGを用いる信号構成である例で説明する。
ラインバッファ121等を用いる画像処理が行われると、例えば、入力画像フレーム有効信号INFV、入力画像水平信号INHDP、入力画像ライン有効信号INLV、及び、入力画像信号INIMGに対して、出力画像フレーム有効信号OFV、出力画像水平信号OHDP、出力画像ライン有効信号OLV、及び、出力画像データOIMG等に、水平方向の遅延(図では、第1水平遅延DY1及び第2水平遅延DY3等である。)及び垂直方向の遅延(図では、垂直遅延DY2等である。)が発生する。
このような第1水平遅延DY1、垂直遅延DY2及び第2水平遅延DY3等が押し出し期間PHとなる。
押し出し期間PHは、図示するように、入力画像フレーム有効信号INFV、入力画像ライン有効信号INLV、及び、入力画像信号INIMG等がネゲートである。このような場合であっても、画像処理の種類によっては、読出回路124は、読み出しを行う場合がある。したがって、図示するように、入力画像水平信号INHDP等が入力されるのが望ましい。このように、押し出し期間PHであっても、入力画像水平信号INHDP等が画像処理回路12に入力されると、画像の端等がハングアップせず出力できる。
<機能構成例>
図19は、本発明の一実施形態に係る画像処理装置の機能構成例を示す機能ブロック図である。例えば、画像処理装置100は、記憶部FN1、生成部FN2、選択部FN3及び画像処理部FN4等を備える機能構成である。
記憶部FN1は、対象画像を選択するパラメータを記憶する記憶手順を行う。例えば、記憶部FN1は、第1フリップフロップ回路102及び第2フリップフロップ回路103等で実現する。
生成部FN2は、対象画像を選択する、又は、マスク処理のいずれかに切り替える切替信号を生成する生成手順を行う。例えば、生成部FN2は、切替回路104等で実現する。
選択部FN3は、切替信号に基づいて、対象画像の選択、又は、マスク処理のいずれかを選択する選択手順を行う。例えば、選択部FN3は、画像セレクタ回路11等で実現する。
画像処理部FN4は、選択部FN3によって対象画像が選択されると、対象画像を画像処理する画像処理手順を行う。例えば、画像処理部FN4は、画像処理回路12等で実現する。
<全体処理例>
図20は、本発明の一実施形態に係る画像処理装置による全体処理例を示すフローチャートである。
ステップSP1では、記憶部FN1は、セレクタ用パラメータを記憶する。例えば、図5に示すように、記憶部が多段構造である場合には、図7等のように、トリガ信号TRG等によって、パラメータを更新するタイミングが制御されてもよい。
ステップSP2では、生成部FN2は、対象画像を切り替えるか否かを判断する。例えば、ステップSP2は、図6に示すようなステートマシンを用いる場合には、第2ステートにおいて、押し出し完了時点等で行われる。したがって、対象画像を切り替えるか否かは、切替信号SIGSとセレクタ用パラメータが異なるか否かで判断される。
次に、対象画像を切り替えると判断する場合(ステップSP2でYES)には、生成部FN2は、ステップSP3に進む。一方で、対象画像を切り替えないと判断する場合(ステップSP2でNO)には、生成部FN2は、ステップSP7に進む。
ステップSP3では、生成部FN2は、マスク処理を指示する切替信号を生成する。すなわち、ステップSP3は、第3ステートで行われる処理である。
ステップSP4では、選択部FN3は、マスク処理を行う。例えば、マスク処理が行われると、画像処理部FN4に入力される画像等は、図7に示すマスク状態MK等のように処理される。
ステップSP5では、生成部FN2は、有効信号がネゲートであるか否かを判断する。
次に、有効信号がネゲートであると判断する場合(ステップSP5でYES)には、生成部FN2は、ステップSP6に進む。一方で、有効信号がネゲートでないと判断する場合(ステップSP5でNO)には、生成部FN2は、ステップSP4に進む。
すなわち、有効信号がアサート中(ステップSP5でNO)は、ステップSP4が引き続き実行される。一方で、図7における第15タイミングT15のように、有効信号が立ち下がると、生成部FN2は、ステップSP6に進む。
ステップSP6では、生成部FN2は、対象画像を選択する切替信号を生成する。すなわち、ステップSP6は、第0ステートで行われる処理である。ゆえに、生成部FN2は、セレクタ用パラメータを反映させた切替信号を生成する。
ステップSP7では、画像処理部FN4は、対象画像を画像処理する。
このようにマスク処理等が行われると、複数の画像を切り替えても無効フレームが発生するのを防ぐことができる。
<その他の実施形態>
上記の例で示す電子回路は、説明した以外の構成であってもよい。すなわち、実施形態は、上記以外の電子回路構成であってもよい。例えば、上記の例における1つの電子回路は、複数の電子回路等で実現されてもよい。また、画像処理方法(処理の一部でもよい。)は、コンピュータに画像処理方法を実行させるためのプログラムに基づいて演算装置及び記憶装置等が協働して処理することで実現されてもよい。
また、画像処理装置は、1つの装置でなくともよい。すなわち、実施形態は、画像処理装置及び情報処理装置を有する画像処理システム等でもよい。
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。