ところで、パイプライン構成の画像処理装置の中には、同じ1フレームの静止画像の画像データから、記録用や表示用などのそれぞれの用途に応じた複数の画像(以下、「処理画像」という)を生成する画像処理装置がある。図5は、従来の画像処理装置の概略構成の一例を示したブロック図である。図5に示した従来の画像処理装置100は、画角が同じで、画素数(サイズ)が異なる3つの処理画像を生成する画像処理装置の一例である。
画像処理装置100では、1つ目の処理画像を生成するために必要なそれぞれの画像処理回路を直結したパイプラインが構成されている。より具体的には、「DRAM20→入力DMA部30→輝度色変換部40→ノイズ除去部50→歪み補正処理部60→出力DMA部81→DRAM20」という順番で、それぞれの画像処理を行うパイプラインを構成している。
また、画像処理装置100では、異なる画素数の処理画像を生成するために、上記のパイプラインの特定の画像処理回路のデータバスを分岐することによって、他の処理画像を生成する2つのパイプラインを構成している。より具体的には、歪み補正処理部60のデータバスを分岐して、「リサイズ処理部71→出力DMA部82→DRAM20」という順番で2つ目の処理画像を生成するパイプラインと、歪み補正処理部60のデータバスを分岐して、「リサイズ処理部72→出力DMA部83→DRAM20」という順番で3つ目の処理画像を生成するパイプラインと、を構成している。
このような構成の画像処理装置100では、パイプライン処理の全体を制御するシーケンサによって、パイプラインを構成する各画像処理部の設定や動作が制御され、DMAバスアービタによって、DMAバス10に流れる画像データが制御される。
ここで、異なる画素数の処理画像を生成するために追加されたリサイズ処理部71およびリサイズ処理部72の構成について説明する。なお、リサイズ処理部71およびリサイズ処理部72は、リサイズ処理によって生成する処理画像の画素数が異なるのみで、その構成は同等である。従って、以下の説明においては、リサイズ処理部71の構成について説明する。図6は、従来の画像処理装置100に備えたリサイズ処理部71の概略構成の一例を示したブロック図である。図6に示したリサイズ処理部71は、入力制御部711と、入力バッファ712と、出力制御部713と、リサイズ演算処理部714と、バッファフル/エンプティ監視部715と、を備えている。
入力バッファ712は、入力制御部711からの制御に応じて、パイプラインの前段の歪み補正処理部60が出力した画像データを一時記憶し、出力制御部713からの制御に応じて記憶した画像データをリサイズ演算処理部714に出力する。
バッファフル/エンプティ監視部715は、入力制御部711に入力された歪み補正処理部60からの制御信号、および出力制御部713に入力された後段の出力DMA部82からの制御信号に基づいて、入力バッファ712の記憶容量(バッファ領域)を監視する。そして、バッファフル/エンプティ監視部715は、入力バッファ712に空き容量があるか否かの情報を入力制御部711に通知し、入力バッファ712にリサイズ処理を行って出力することができる画像データが揃っているか否かの情報を出力制御部713に通知する。
入力制御部711は、バッファフル/エンプティ監視部715から、入力バッファ712に空き容量があることを表す通知が入力されたときに、歪み補正処理部60に対して画像データの出力要求(リクエスト)を出力し、歪み補正処理部60からデータバスによって入力された画像データを入力バッファ712に一時記憶させる。
出力制御部713は、出力DMA部82からの画像データの出力要求の入力を受け付け、バッファフル/エンプティ監視部715から、リサイズ処理を行って出力することができる画像データが揃っていることを表す通知が入力されたときに、入力バッファ712に記憶している画像データをリサイズ演算処理部714に出力させる。そして、出力制御部713は、リサイズ演算処理部714によってリサイズ処理が実施された画像データを出力DMA部82に書き込ませる。
リサイズ演算処理部714は、入力された画像データに対して予め定められたリサイズ率でのリサイズ処理を行って、リサイズ処理後の画像データを出力する。
従来の画像処理装置100では、このような構成のリサイズ処理部71およびリサイズ処理部72を備えることによって、歪み補正処理部60が歪み補正した処理画像と、歪み補正処理部60が歪み補正した処理画像をリサイズした2つの処理画像との合計3つの異なる画素数の処理画像を生成している。すなわち、従来の画像処理装置100では、生成する処理画像の数に応じて、同じ構成の画像処理回路(リサイズ処理部および出力DMA部)を複数備え、これらの画像処理回路によって必要な数のパイプラインを構成している。そして、それぞれのパイプラインを構成している画像処理回路を並列に動作させることによって、画像処理装置100における画像処理の処理時間を短縮している。
しかしながら、従来の画像処理装置100のように、生成する処理画像の数に応じて必要な数のパイプラインを構成する方法では、生成する処理画像の数の増加、すなわち、データバスの分岐数の増加に従って、対応する同じ構成の画像処理回路(図5に示した一例では、リサイズ処理部および出力DMA部)を画像処理装置100に備えなくてはならない。このため、従来の画像処理装置100では、生成する処理画像の数の増加が、画像処理装置100自体の回路規模が増大に繋がってしまう、という問題がある。
また、従来の画像処理装置100では、リサイズ処理部71およびリサイズ処理部72のそれぞれが、リサイズ処理を行って生成した処理画像を常に出力しているわけではない。図7は、従来の画像処理装置100に備えたリサイズ処理部71およびリサイズ処理部72のそれぞれがリサイズ処理した画像データを出力するタイミングの一例を示したタイミングチャートである。
図7に示したタイミングチャートでは、画像処理装置100に備えたリサイズ処理部71およびリサイズ処理部72のそれぞれが、前段の歪み補正処理部60が1フレームの静止画像を歪み補正処理して生成した処理画像を1/2および1/4のそれぞれにリサイズした処理画像を生成するリサイズ処理の動作期間と、リサイズ処理後の画像データを後段の出力DMA部82および出力DMA部83に出力するタイミングの一例を示している。
なお、図7に示した書き込み信号I_WEは、歪み補正処理部60が、リサイズ処理部71およびリサイズ処理部72のそれぞれに画像データを出力する、すなわち、リサイズ処理部71およびリサイズ処理部72のそれぞれに備えた入力バッファ712に、歪み補正処理後の画像データを書き込むタイミングを示している。また、図7に示した書き込み信号O_WE71は、リサイズ処理部71が、出力DMA部82に画像データを出力する、すなわち、リサイズ処理部71に備えたリサイズ演算処理部714が、入力バッファ712に一時記憶した歪み補正処理後の画像データに対してリサイズ処理を行ったリサイズ処理後の画像データを、出力DMA部82に出力するタイミングを示している。同様に、図7に示した書き込み信号O_WE72は、リサイズ処理部72が、リサイズ演算処理部714がリサイズ処理を行ったリサイズ処理後の画像データを、出力DMA部83に出力するタイミングを示している。なお、図7に示したタイミングチャートでは、書き込み信号I_WE、書き込み信号O_WE71、および書き込み信号O_WE72のそれぞれが“High”レベルの期間の画像データが有効な画像データである。
図7に示したように、リサイズ処理部71およびリサイズ処理部72のそれぞれが対応する出力DMA部82および出力DMA部83に画像データを出力する際の転送レート(書き込み信号O_WE71および書き込み信号O_WE72の周期)は、歪み補正処理部60がリサイズ処理部71およびリサイズ処理部72のそれぞれに画像データを出力する際の転送レート(書き込み信号I_WEの周期)よりも低い。また、リサイズ処理部71およびリサイズ処理部72では、対応する出力DMA部82および出力DMA部83にリサイズ処理後の画像データを出力する際の転送レート(書き込み信号O_WE71および書き込み信号O_WE72の周期)が異なっている。
より具体的には、図7に示したように、予め定められたリサイズ率が1/2であるリサイズ処理部71は、書き込み信号I_WEの2回に1回の割合、すなわち、2ラインに1回の割合で1/2のリサイズ処理を行って、リサイズ処理後の画像データを出力DMA部82に転送している。また、予め定められたリサイズ率が1/4であるリサイズ処理部72は、書き込み信号I_WEの4回に1回の割合、すなわち、4ラインに1回の割合で1/4のリサイズ処理を行って、リサイズ処理後の画像データを出力DMA部83に転送している。
これは、リサイズ処理部71およびリサイズ処理部72がそれぞれリサイズ処理を実施する際のリサイズ率に起因するものであり、リサイズ処理を行うために必要な画像データが揃った後に、リサイズ処理部71およびリサイズ処理部72に備えたリサイズ演算処理部714が、予め定められたそれぞれのリサイズ率に応じたリサイズ処理を実施するためである。このため、リサイズ処理部71およびリサイズ処理部72では、入力バッファ712内にリサイズ処理を行うために必要な画像データが揃うまで、リサイズ演算処理部714の動作を待っている、つまり、図7の「A」に示したように、リサイズ処理部71およびリサイズ処理部72のそれぞれに、リサイズ演算処理部714が動作していない期間が存在してしまう。このリサイズ演算処理部714が動作していない期間が存在することによって、リサイズ演算処理部714の活性率は低下してしまう。また、リサイズ演算処理部714が動作していない期間は、リサイズ処理後の画像データの転送を行わない期間(図7の「B」参照)となる。
このように、従来の画像処理装置100では、生成する処理画像の数に応じて、同じ構成の画像処理回路を備えた必要な数のパイプラインを構成しているが、図7の「A」に示したように、画像処理回路が動作していない期間が存在すると、図7の「B」に示したように、それぞれのパイプラインに備えた画像処理回路がデータ転送を行わない期間が存在することになる。
本発明は、上記の課題認識に基づいてなされたものであり、同じ画像データから複数の画像を生成する画像処理装置において、回路規模を増大させることなく、画像処理装置に備えた画像処理回路の活性率を向上させることができる画像処理装置を提供することを目的としている。
上記の課題を解決するため、本発明の画像処理装置は、複数の処理回路で構成されたパイプラインの内、特定の処理回路が出力するデータバスを分岐して入力された1つの入力画像から、設定された複数の処理条件に基づいた複数の処理画像を生成して出力する画像処理装置であって、1つの前記入力画像の画像データを記憶する記憶容量を具備するバッファ部と、前段の特定の前記処理回路から前記データバスに出力された1つの前記入力画像の前記画像データを、前記バッファ部に記憶させる入力制御部と、入力された画像データに対して、設定された複数の前記処理条件の内、いずれか1つの処理条件に基づいた画像処理を行い、該画像処理によって生成した前記処理画像の画像データを出力する処理演算部と、設定された複数の前記処理条件のそれぞれに対応し、前記バッファ部に記憶された1つの前記入力画像の前記画像データの内、対応する前記処理条件で画像処理を行う際に必要な前記画像データを、前記処理演算部に出力させると共に、前記処理演算部が対応する前記処理条件に基づいて生成した前記処理画像の前記画像データを、対応する後段の前記処理回路に出力させる複数の出力制御部と、複数の前記処理条件の中からいずれの前記処理条件の画像処理を行うかを決定し、該決定した前記処理条件に対応する前記出力制御部に対して、前記バッファ部に対する前記処理演算部への前記画像データの出力制御を許可する出力調停部と、を備えることを特徴とする。
また、本発明の前記出力調停部は、前記バッファ部に前記処理条件で画像処理を行う際に必要な前記画像データが揃っているか否かの状態と、後段の前記処理回路のそれぞれから入力される前記処理画像の前記画像データの出力要求と、前記処理画像の前記画像データを受け付ける後段の前記処理回路のそれぞれの状態とに基づいて、画像処理を行う前記処理条件を決定する、ことを特徴とする。
また、本発明の前記処理画像の前記画像データを受け付ける後段の前記処理回路の状態は、後段の前記処理回路が備えているバッファの空き容量の大きさの状態であり、前記出力調停部は、前記バッファの空き容量が大きい後段の前記処理回路に優先して前記処理画像の前記画像データを出力するように、前記出力制御を許可する前記出力制御部を決定する、ことを特徴とする。
また、本発明の前記バッファ部に具備される前記記憶容量は、前記処理演算部に設定されたそれぞれの前記処理条件に基づいた画像処理において、最も多くの前記画像データを必要とする前記処理条件に対応した記憶容量である、ことを特徴とする。
また、本発明の画像処理装置は、前記バッファ部に具備された前記記憶容量を監視し、前記バッファ部に空き容量があるか否かの情報を前記入力制御部に通知し、前記バッファ部に前記処理演算部が画像処理を行う際に必要な前記画像データが揃っているか否かの情報を前記出力制御部のそれぞれに通知するバッファ監視部、をさらに備え、前記バッファ監視部は、前記バッファ部に記憶された前記画像データが、前記出力制御部のいずれからも前記処理演算部に出力されない状態になったときに、前記バッファ部に前記画像データを記憶することができる空き容量があると判定する、ことを特徴とする。
また、本発明の前記バッファ監視部は、前記出力制御部のそれぞれが対応する前記処理条件毎に、前記バッファ部に前記処理演算部が画像処理を行う際に必要な前記画像データが揃っているか否かを判定し、該判定した前記出力制御部のそれぞれに対応する必要な前記画像データが揃っているか否かの情報を、前記バッファ部に前記処理条件で画像処理を行う際に必要な前記画像データが揃っているか否かの状態を表す情報として、前記出力調停部に出力する、ことを特徴とする。
また、本発明の前記入力制御部は、前記バッファ監視部から前記バッファ部に空き容量があることを表す通知が入力されたときに、前段の特定の前記処理回路に、1つの前記入力画像の前記画像データの出力を要求する、ことを特徴とする。
本発明によれば、同じ画像データから複数の画像を生成する画像処理装置において、回路規模を増大させることなく、画像処理装置に備えた画像処理回路の活性率を向上させることができるという効果が得られる。
以下、本発明の実施形態について、図面を参照して説明する。図1は、本実施形態における画像処理装置の概略構成の一例を示したブロック図である。図1に示した画像処理装置1は、DRAM20と、入力DMA部30と、輝度色変換部40と、ノイズ除去部50と、歪み補正処理部60と、リサイズ処理部70と、出力DMA部81〜83と、を備えている。画像処理装置1は、図5に示した従来の画像処理装置100と同様に、異なる画素数の3つの処理画像を生成する画像処理装置である。
画像処理装置1では、図5に示した従来の画像処理装置100と同様に、1つ目の処理画像を生成するために必要なそれぞれの画像処理回路を直結したパイプラインが構成されている。より具体的には、「DRAM20→入力DMA部30→輝度色変換部40→ノイズ除去部50→歪み補正処理部60→出力DMA部81→DRAM20」という順番で、それぞれの画像処理を行うパイプラインを構成している。
また、画像処理装置1では、異なる画素数の処理画像を生成するために、上記のパイプラインの特定の画像処理回路のデータバスを分岐することによって、他の処理画像を生成する2つのパイプラインを構成している。ただし、画像処理装置1では、リサイズ処理部70のみで、異なる画素数の2つの処理画像を生成するため、他の処理画像を生成する2つのパイプラインにおいてリサイズ処理部70が共通に使用される。より具体的には、歪み補正処理部60のデータバスを分岐して、「リサイズ処理部70→出力DMA部82→DRAM20」という順番で2つ目の処理画像を生成するパイプラインと、「リサイズ処理部70→出力DMA部83→DRAM20」という順番で3つ目の処理画像を生成するパイプラインとを構成しているが、この2つのパイプラインで、リサイズ処理部70が共用される。
画像処理装置1でも、図5に示した従来の画像処理装置100と同様に、パイプライン処理の全体を制御するシーケンサによって、パイプラインを構成する各画像処理部の設定や動作が制御され、DMAバスアービタによって、DMAバス10に流れる画像データが制御される。また、画像処理装置1は、図5に示した従来の画像処理装置100と同様に、例えば、図4(a)に示したように1フレームの静止画像を複数のブロックに分割し、分割したブロック毎に画像処理を行う。
より具体的には、入力DMA部30が、DMAバス10を介したDMAのバースト転送(以下、「DMA転送」という)によって、処理に必要な画像データをDRAM20から取得する。そして、入力DMA部30が取得した画像データを、輝度色変換部40、ノイズ除去部50、および歪み補正処理部60のそれぞれが対応する処理を順次行い、1つ目の処理画像を生成する。その後、出力DMA部81が、DMAバス10を介したDMA転送によって、歪み補正処理部60が歪み補正処理を行って生成した1つ目の処理画像の画像データをDRAM20に出力する。
また、画像処理装置1では、リサイズ処理部70が、歪み補正処理部60が歪み補正処理を行った1つ目の処理画像を入力画像とし、この入力画像の画像データに対してリサイズ処理を行い、2つ目の処理画像および3つ目の処理画像を生成する。その後、出力DMA部82が、DMAバス10を介したDMA転送によって、リサイズ処理部70がリサイズ処理を行って生成した2つ目の処理画像の画像データをDRAM20に出力する。また、出力DMA部83が、DMAバス10を介したDMA転送によって、リサイズ処理部70がリサイズ処理を行って生成した3つ目の処理画像の画像データをDRAM20に出力する。
画像処理装置1と図5に示した従来の画像処理装置100とを比較すると、画像処理装置1では、リサイズ処理部70を1つのみ備えていることのみが異なる。これは、従来の画像処理装置100では、リサイズ処理部71とリサイズ処理部72との2つのリサイズ処理部を備えることによって、異なる画素数の2つの処理画像を生成するのに対し、画像処理装置1では、1つのリサイズ処理部70で異なる画素数の2つの処理画像を生成することができるからである。
ここで、異なる画素数の2つの処理画像を生成するリサイズ処理部70について説明する。図2は、本実施形態の画像処理装置1に備えたリサイズ処理部70の概略構成の一例を示したブロック図である。図2に示したリサイズ処理部70は、入力制御部710と、入力バッファ720と、出力制御部731および732と、リサイズ演算処理部740と、バッファフル/エンプティ監視部750と、出力調停部760と、出力選択部770と、OR(論理和)回路780と、を備えている。
入力バッファ720は、入力制御部710からの制御に応じて、パイプラインの前段の歪み補正処理部60が出力した画像データを一時記憶し、OR回路780を介して入力される出力制御部731または出力制御部732のいずれかからの制御に応じて、記憶した画像データをリサイズ演算処理部740に出力する。なお、入力バッファ720は、リサイズ処理部70が異なる画素数の2つの処理画像を生成ために用いる最大数の画像データを記憶することができる記憶容量を備えている。
バッファフル/エンプティ監視部750は、入力制御部710に入力された歪み補正処理部60からの制御信号、出力制御部731に入力された後段の出力DMA部82からの制御信号、および出力制御部732に入力された後段の出力DMA部83からの制御信号に基づいて、入力バッファ720の記憶容量(バッファ領域)を監視する。そして、バッファフル/エンプティ監視部750は、入力バッファ720に空き容量があるか否かの情報を入力制御部710に通知し、入力バッファ720にリサイズ処理を行って出力することができる画像データが揃っているか否かの情報を出力制御部731および出力制御部732のそれぞれに通知する。
なお、バッファフル/エンプティ監視部750による入力バッファ720に空き容量があるか否かの判定は、入力バッファ720に記憶されている画像データが、出力制御部731および出力制御部732のいずれによってもリサイズ演算処理部740に出力されない状態となったときに、入力バッファ720に空き容量があると判定する。これは、2つ目の処理画像を生成するために出力制御部731がリサイズ演算処理部740に出力する画像データと、3つ目の処理画像を生成するために出力制御部732がリサイズ演算処理部740に出力する画像データとが同じ画像データである場合に、一方の処理画像を生成するために入力バッファ720から出力された画像データが、他方の処理画像を生成するために、再度入力バッファ720から出力されることがあるためである。従って、バッファフル/エンプティ監視部750は、出力制御部731または出力制御部732のいずれかによってリサイズ演算処理部740に出力される画像データが入力バッファ720に記憶されている場合には、入力バッファ720に空き容量があることを入力制御部710に通知しない。これにより、他方の処理画像を生成するために用いられる画像データがなくなってしまうことを避けることができる。
また、バッファフル/エンプティ監視部750は、リサイズ処理を行って出力することができる画像データが入力バッファ720に揃っている状態となったとき、この状態を表す出力準備完了情報を出力調停部760に出力する。図2では、出力制御部731によってリサイズ演算処理部740に出力される画像データが入力バッファ720に揃っている状態となったときに、出力準備完了情報RDY1を出力調停部760に出力し、出力制御部732によってリサイズ演算処理部740に出力される画像データが入力バッファ720に揃っている状態となったときに、出力準備完了情報RDY2を出力調停部760に出力する構成を示している。
入力制御部710は、バッファフル/エンプティ監視部750から、入力バッファ720に空き容量があることを表す通知が入力されたときに、歪み補正処理部60に対して画像データの出力要求(リクエスト)を行うリクエスト信号O_REQを出力する。そして、入力制御部710は、歪み補正処理部60から入力された書き込み信号I_WEに応じて、歪み補正処理部60からデータバスI_DATによって入力された画像データを、入力バッファ720に一時記憶させる。
出力調停部760は、リサイズ処理を行って出力するリサイズ処理後の画像データの出力先を決定(調停)する。出力調停部760による画像データの出力先の決定(調停)は、後段の出力DMA部82内のバッファの空き容量を表すバッファ空き情報I_EMPTY1、および出力DMA部83内のバッファの空き容量を表すバッファ空き情報I_EMPTY2と、バッファフル/エンプティ監視部750から入力される出力準備完了情報RDY1および出力準備完了情報RDY2と、出力制御部731に入力された出力DMA部82からの制御信号、および出力制御部732に入力された出力DMA部83からの制御信号とに基づいて行う。ここで、パイプラインの後段の出力DMA部82から出力されるバッファ空き情報I_EMPTY1、および出力DMA部83から出力されるバッファ空き情報I_EMPTY2は、例えば、出力DMA部82および出力DMA部83のそれぞれに備えたバッファに書き込むことができる画像データのライン数を表した情報である。
画像処理装置1では、上述したように、出力DMA部82および出力DMA部83によるDMAバス10を介したDMA転送は、DMAバスアービタによって管理されている。なお、DMAバス10には、出力DMA部82および出力DMA部83以外にも、画像データやその他のデータに対して処理を行う他の構成要素も接続されているため、DMAバスアービタは、DMAバス10に接続されている全ての構成要素が出力するデータのタイミングを管理している。このため、出力DMA部82および出力DMA部83のそれぞれがDMAバス10に画像データを出力するDMA転送は、一定のタイミングで実行されるとは限らず、DMAバス10に接続されている出力DMA部82および出力DMA部83以外の構成要素が行うDMA転送などのDMAアクセスによって、実行されるタイミングが変動することがある。このため、出力DMA部82および出力DMA部83には、DMA転送が実行されるタイミングの変動を吸収し、DMA転送を確実に行うためのバッファを備えているが、このバッファの空き容量は、DMA転送が実行されるタイミングの変動に伴って変動する。
従って、出力調停部760による画像データの出力先の決定(調停)では、出力DMA部82および出力DMA部83によるDMA転送が滞らないように、出力DMA部82および出力DMA部83内のそれぞれのバッファの空き容量と、リサイズ処理部70内の入力バッファ720にリサイズ処理を実施するための画像データが揃っているか否かの状態と、出力DMA部82および出力DMA部83のそれぞれからの画像データの出力要求とを、常に監視する。そして、出力調停部760は、出力制御部731または出力制御部732のいずれか一方の優先度の高い出力制御部に、入力バッファ720に記憶した画像データを、リサイズ演算処理部740に出力させるように制御する。
逆に、出力調停部760が、出力DMA部82および出力DMA部83内のそれぞれのバッファの空き容量と、リサイズ処理部70内の入力バッファ720にリサイズ処理を実施するための画像データが揃っているか否かの状態と、出力DMA部82および出力DMA部83のそれぞれからの画像データの出力要求とを監視しない場合の制御を考える。この場合には、出力調停部760は、出力DMA部82および出力DMA部83に出力するリサイズ処理後の画像データのリサイズ率に応じて、固定された順番で画像データの出力を繰り返す制御となる。
このような固定された順番で画像データの出力を繰り返す制御を行っていると、出力DMA部82または出力DMA部83内のバッファの空き容量がなくなり、出力DMA部82または出力DMA部83が、リサイズ処理部70が出力するリサイズ処理後の画像データを受け付けられなくなってしまう場合がある。例えば、リサイズ演算処理部740が行うリサイズ処理のリサイズ率(処理条件)が1/2と1/4とであり、1/2にリサイズした画像データを出力DMA部82に2回出力した後に、1/4にリサイズした画像データを出力DMA部83に1回出力する動作を繰り返すように、出力調停部760が制御を行っていた場合で考える。この場合において、例えば、1/2にリサイズした1回目の画像データの出力で出力DMA部82内のバッファに空き容量がなくなったとすると、出力DMA部82は、1/2にリサイズした2回目の画像データのリサイズ処理部70からの出力を受け付けることができない。これにより、次にリサイズ処理部70から1/4にリサイズした画像データを受け付ける出力DMA部83は、バッファに空き容量がある状態であっても、出力DMA部82による1/2にリサイズした2回目の画像データの受け付けが完了するまで画像データの受け付けができなくなってしまう。このような状態になってしまうと、出力DMA部82および出力DMA部83によるDRAM20へのDMA転送が中断してしまい、画像処理装置1全体の処理速度が低下してしまう。
このような状態を回避するため、出力調停部760は、出力DMA部82および出力DMA部83による画像データの転送レートの変動が画像処理装置1全体の処理速度に影響しないように、出力調停部760が決定(調停)した情報である出力調停情報OMIを出力するタイミングを最適化する。すなわち、出力調停部760は、リサイズ処理後の画像データのリサイズ率に応じて、固定された順番で画像データの出力を繰り返す制御を行うのではなく、画像データを受け付けることができる出力DMA部82または出力DMA部83に対して、リサイズ処理後の画像データを出力するように制御する。このように、出力調停部760は、後段の出力DMA部82および出力DMA部83内のそれぞれのバッファの空き容量と、入力バッファ720に記憶されている画像データの準備状態と、出力DMA部82および出力DMA部83のそれぞれからの画像データの出力要求とに基づいて、出力DMA部82および出力DMA部83にリサイズ処理後の画像データを出力するタイミングを最適化する。
より具体的には、出力準備完了情報RDY1が、出力制御部731に対応したリサイズ処理を実施するための画像データが入力バッファ720に揃っている状態であることを表し、出力制御部731に対応する出力DMA部82から出力されるバッファ空き情報I_EMPTY1が、バッファに空き容量があることを表しているときに、出力DMA部82からの画像データの出力要求の入力を受け付けることができる状態と判断する。この状態のときに、出力DMA部82からの画像データの出力要求が入力されると、出力調停部760は、出力DMA部82からの出力要求の受け付けを許可することを表す出力調停情報OMIを出力する。
また、出力準備完了情報RDY2が、出力制御部732に対応したリサイズ処理を実施するための画像データが入力バッファ720に揃っている状態であることを表し、出力制御部732に対応する出力DMA部83から出力されるバッファ空き情報I_EMPTY2が、バッファに空き容量があることを表しているときに、出力DMA部83からの画像データの出力要求の入力を受け付けることができる状態と判断する。この状態のときに、出力DMA部83からの画像データの出力要求が入力されると、出力調停部760は、出力DMA部83からの出力要求の受け付けを許可することを表す出力調停情報OMIを出力する。
なお、出力DMA部82および出力DMA部83からの画像データの出力要求の入力を受け付けることができる状態で、同時に出力DMA部82と出力DMA部83とから画像データの出力要求が入力された場合には、出力調停部760は、まず、優先度の高い一方の出力要求の受け付けを許可することを表す出力調停情報OMIを出力し、リサイズ処理後の画像データの出力が完了した後に、他方の出力要求の受け付けを許可することを表す出力調停情報OMIを出力する。この優先度は、例えば、予め定めたリサイズ処理後の画像データを出力する順番であっても良いし、バッファ空き情報I_EMPTY1およびバッファ空き情報I_EMPTY2が表すバッファに書き込むことができる画像データのライン数の情報に基づいて、より多くの画像データを書き込むことができる出力DMA部82または出力DMA部83の優先度を高くする方法であってもよい。
この出力調停情報OMIによって、出力制御部731または出力制御部732のいずれか一方の優先度の高い出力制御部に、入力バッファ720に記憶した画像データを出力させ、リサイズ演算処理部740からのリサイズ処理した画像データの出力先(出力DMA部82または出力DMA部83)を選択する。
出力制御部731および出力制御部732のそれぞれは、対応する出力DMA部82または出力DMA部83からの画像データの出力要求の入力を受け付け、バッファフル/エンプティ監視部750から、リサイズ処理を行って出力することができる画像データが揃っていることを表す通知が入力されたときに、入力バッファ720に記憶している画像データをリサイズ演算処理部740に出力させる。そして、出力制御部731および出力制御部732のそれぞれは、リサイズ演算処理部740によってリサイズ処理が実施された画像データを、対応する出力DMA部82または出力DMA部83に書き込ませる。
より具体的には、出力制御部731は、対応する出力DMA部82から入力された画像データの出力要求であるリクエスト信号I_REQ1を受け付け、入力バッファ720に対するリサイズ演算処理部740への画像データの出力を制御すると共に、リサイズ演算処理部740がリサイズ処理を実施した画像データを出力するタイミングで、出力DMA部82に出力する画像データの書き込み信号O_WE1を出力する。また、出力制御部732は、対応する出力DMA部83から入力された画像データの出力要求であるリクエスト信号I_REQ2を受け付け、入力バッファ720に対するリサイズ演算処理部740への画像データの出力を制御すると共に、リサイズ演算処理部740がリサイズ処理を実施した画像データを出力するタイミングで、出力DMA部83に出力する画像データの書き込み信号O_WE2を出力する。
なお、出力制御部731または出力制御部732のいずれかからの出力制御によって、入力バッファ720に記憶されている画像データがリサイズ演算処理部740に出力されると、リサイズ演算処理部740は、リサイズ処理後の画像データを出力する。上述したように、リサイズ処理部70がリサイズ処理後の画像データを出力DMA部82および出力DMA部83に出力するタイミングは、出力調停部760によって最適化されている。従って、出力制御部731および出力制御部732のそれぞれが入力バッファ720に対して行うリサイズ演算処理部740への画像データの出力制御は、出力調停部760によって決定(調停)された出力先にリサイズ処理した画像データが出力されるように制御される。すなわち、出力制御部731および出力制御部732のそれぞれは、対応する出力DMA部82または出力DMA部83から画像データの出力要求を受け付け、バッファフル/エンプティ監視部750から、リサイズ処理を行って出力することができる画像データが揃っていることを表す通知が入力された後、入力バッファ720に対するリサイズ演算処理部740への画像データの出力制御が直ちに行うのではなく、出力調停部760から出力された出力調停情報OMIによって許可された出力制御部731または出力制御部732のいずれか一方が、入力バッファ720に対する出力制御を行う。
リサイズ演算処理部740は、入力された画像データに対して、出力制御部731に対応したリサイズ率(処理条件)でのリサイズ処理、または出力制御部732に対応したリサイズ率(処理条件)でのリサイズ処理のいずれか一方のリサイズ処理を行って、リサイズ処理後の画像データを出力する。リサイズ演算処理部740には、出力制御部731に対応したリサイズ処理のリサイズ率と、出力制御部732に対応したリサイズ処理のリサイズ率とが、予め定められている。リサイズ演算処理部740は、出力制御部731に対応したリサイズ処理を実施するか、出力制御部732に対応したリサイズ処理を実施するかによって、リサイズ処理を実施する際のリサイズ率を切り替える。図2では、出力調停部760から出力された出力調停情報OMIに基づいて、リサイズ処理を実施する際のリサイズ率を切り替える構成を示している。
なお、リサイズ演算処理部740におけるリサイズ率の切り替えは、図2に示した出力調停部760が出力する出力調停情報OMIに基づいて切り替える方法に限定されるものではなく、他の方法によってリサイズ処理を実施する際のリサイズ率を切り替える構成にすることもできる。例えば、パイプライン処理の全体を制御するシーケンサに、リサイズ演算処理部740によるリサイズ処理が完了したことを表す割込み信号(処理完了割込み信号)を出力し、シーケンサが、リサイズ演算処理部740から処理完了割込み信号が入力されるたびに、出力調停部760から出力された出力調停情報OMIに基づいて、次にリサイズ処理を行う際のリサイズ率の設定を変更する構成にすることもできる。
出力選択部770は、出力調停部760から出力された出力調停情報OMIに基づいて、リサイズ演算処理部740がリサイズ処理した画像データの出力先を切り替える。より具体的には、出力調停情報OMIによって画像データの出力先として出力DMA部82が選択されている場合には、リサイズ演算処理部740がリサイズ処理した画像データを、出力DMA部82へのデータバスO_DAT1に出力するように切り替える。また、出力調停情報OMIによって画像データの出力先として出力DMA部83が選択されている場合には、リサイズ演算処理部740がリサイズ処理した画像データを、出力DMA部83へのデータバスO_DAT2に出力するように切り替える。
次に、本実施形態の画像処理装置1に備えたリサイズ処理部70におけるリサイズ処理のタイミングについて説明する。図3は、本実施形態の画像処理装置1に備えたリサイズ処理部70がリサイズ処理した画像データを出力するタイミングの一例を示したタイミングチャートである。
図3に示したタイミングチャートでは、画像処理装置1に備えたリサイズ処理部70が、前段の歪み補正処理部60が1フレームの静止画像を歪み補正処理して生成した処理画像を1/2および1/4にそれぞれにリサイズした処理画像を生成するリサイズ処理の動作期間と、リサイズ処理後の画像データを後段の出力DMA部82および出力DMA部83に出力するタイミングの一例を示している。なお、図3に示したタイミングチャートは、従来の画像処理装置100に備えたリサイズ処理部71およびリサイズ処理部72のそれぞれが、リサイズした処理画像を生成して出力する動作(図7参照)と同様の動作を行う場合の処理タイミングである。
なお、図3に示した書き込み信号I_WEは、歪み補正処理部60が、リサイズ処理部70に画像データを出力する、すなわち、リサイズ処理部70に備えた入力バッファ720に、歪み補正処理後の画像データを書き込むタイミングを示している。また、図3に示した書き込み信号O_WE1は、リサイズ処理部70が、出力DMA部82に画像データを出力する、すなわち、リサイズ処理部70に備えたリサイズ演算処理部740が、入力バッファ720に一時記憶した歪み補正処理後の画像データに対してリサイズ処理を行ったリサイズ処理後の画像データを、出力DMA部82に出力するタイミングを示している。同様に、図3に示した書き込み信号O_WE2は、リサイズ処理部70が、リサイズ演算処理部740がリサイズ処理を行ったリサイズ処理後の画像データを、出力DMA部83に出力するタイミングを示している。なお、図3に示したタイミングチャートでも、書き込み信号I_WE、書き込み信号O_WE1、および書き込み信号O_WE2のそれぞれが“High”レベルの期間の画像データが有効な画像データである。
図3に示したように、リサイズ処理部70が対応する出力DMA部82および出力DMA部83に画像データを出力する際の転送レート(書き込み信号O_WE1および書き込み信号O_WE2の周期)は、歪み補正処理部60がリサイズ処理部70に画像データを出力する際の転送レート(書き込み信号I_WEの周期)よりも低い。また、リサイズ処理部70では、対応する出力DMA部82および出力DMA部83にリサイズ処理後の画像データを出力する際の転送レート(書き込み信号O_WE1および書き込み信号O_WE2の周期)が異なっている。これは、図7に示した従来の画像処理装置100におけるそれぞれの画像データの転送レートと同様であり、従来の画像処理装置100と同様に、リサイズ処理部70がそれぞれリサイズ処理を実施する際のリサイズ率に起因するものである。
より具体的には、図3に示したように、リサイズ率が1/2であるリサイズ処理後の画像データを出力する出力DMA部82に、書き込み信号I_WEの2回に1回の割合、すなわち、2ラインに1回の割合で、1/2にリサイズ処理したリサイズ処理後の画像データを転送している。また、リサイズ率が1/4であるリサイズ処理後の画像データを出力する出力DMA部83に、書き込み信号I_WEの4回に1回の割合、すなわち、4ラインに1回の割合で、1/4にリサイズ処理したリサイズ処理後の画像データを転送している。つまり、画像処理装置1の構成であっても、従来の画像処理装置100と同様に、DMAバス10に接続されている複数の構成要素が同時にデータを出力することができないことには変わりはなく、図1に示した画像処理装置1の構成では、出力DMA部82または出力DMA部83のいずれか一方しか画像データをDMAバス10に出力することができない。
すなわち、上述したように、画像処理装置1においても、リサイズ処理部70がそれぞれリサイズ処理を実施する際のリサイズ率に応じて、リサイズ処理後の画像データの出力DMA部への転送を行わない、図3の「B」に示したような期間が存在する。しかし、画像処理装置1では、出力調停部760が、リサイズ処理後の画像データの出力先を決定(調停)する。このとき、出力調停部760は、出力DMA部82および出力DMA部83内のバッファの空き容量や画像データの出力要求と、リサイズ処理部70内の入力バッファ720に記憶されている画像データの準備状態とに基づいて、出力DMA部82および出力DMA部83にリサイズ処理後の画像データを出力するタイミングを最適化している。より具体的には、図3を見てわかるように、出力DMA部82にリサイズ処理後の画像データを出力していないタイミングで、出力DMA部83にリサイズ処理後の画像データを出力するように、リサイズ処理後の画像データを出力するタイミングを最適化している。
これにより、画像処理装置1では、リサイズ演算処理部740内に1つのリサイズ演算処理部740しか備えていなくても、従来の画像処理装置100と同様に異なる画素数の2つの処理画像を生成することができ、生成した処理画像の画像データを出力する際の転送レートも、従来の画像処理装置100と同様の転送レートを確保することができる。つまり、図3の「B」に示したリサイズ処理後の画像データの出力DMA部への転送を行わない期間は、図7の「B」に示した従来の画像処理装置100における期間と同様である。
また、出力調停部760によるリサイズ処理後の画像データを出力するタイミングの最適化は、リサイズ演算処理部740が実施するリサイズ処理を決定(調停)することにも相当し、図3の「A」に示したように、リサイズ演算処理部740が動作していない期間が少なくなり、リサイズ演算処理部740の活性率を向上させることができる。
上記に述べたように、本実施形態の画像処理装置1に備えたリサイズ処理部70では、1つのリサイズ演算処理部740が異なる画素数の2つの処理画像を生成し、生成したそれぞれの処理画像の出力先を切り替える。これにより、本実施形態の画像処理装置1に備えたリサイズ処理部70では、図5に示した従来の画像処理装置100において2つのリサイズ処理部(リサイズ処理部71とリサイズ処理部72)のそれぞれに備えたリサイズ演算処理部714を用いて実施していたのと同様のリサイズ処理を、1つのリサイズ演算処理部740で実現することができる。
また、本実施形態の画像処理装置1に備えたリサイズ処理部70では、図6に示した従来の画像処理装置100に備えたリサイズ処理部71の入力制御部711と、入力バッファ712と、バッファフル/エンプティ監視部715と、リサイズ演算処理部714とを共用し、新たに出力調停部760を備えた構成である。これにより、本実施形態の画像処理装置1に備えたリサイズ処理部70では、リサイズ処理部70の回路規模(特に、入力バッファ720およびリサイズ演算処理部740の回路規模)を削減することができる。
このように、本実施形態の画像処理装置1に備えたリサイズ処理部70では、従来の画像処理装置100と同様の処理速度を維持した状態で、画像処理装置1全体の回路規模を削減することができる。また、リサイズ処理部70では、従来の画像処理装置100のリサイズ処理部71に備えたリサイズ演算処理部714、およびリサイズ処理部72に備えたリサイズ演算処理部714のそれぞれが実施していたリサイズ処理を、1つのリサイズ演算処理部740で実施するため、リサイズ演算処理部740の活性率が向上する。
上記に述べたとおり、本発明を実施するための形態によれば、画像処理のパイプラインを構成する特定の画像処理回路が出力する画像データを用いて、同様の画像処理を行って複数の処理画像を生成する画像処理装置を構成する場合に、一部の構成要素を共用し、それぞれの処理画像を生成するときの構成要素の動作を切り替える。これにより、本実施形態の画像処理装置では、従来の画像処理装置と同様の処理速度を維持した状態で、画像処理装置に備えた画像処理回路の回路規模を削減し、画像処理回路に備えた構成要素の活性率を向上させることができる。
なお、本実施形態においては、同様の画像処理がリサイズ処理である場合について説明したが、本発明の考え方を適用することができる画像処理は、本発明を実施するための形態において説明したリサイズ処理に限定されるものではない。また、本実施形態においては、リサイズ処理を行って異なる画素数の2つの処理画像を生成する場合について説明した。しかし、同様の画像処理によって生成する処理画像の数は、本発明を実施するための形態において説明した数(2つ)に限定されるものではなく、1つの構成要素(本実施形態においては、リサイズ演算処理部740)が動作していない期間がなくならない限りの処理を、1つの構成要素に実施させることができる。すなわち、画像処理回路の活性率が100%になるまでは、さらに多くの処理画像を1つの構成要素に生成させることができる。ただし、多くの処理画像を生成した場合においても、DMAバス10に画像データが正しく流れる、つまり、DMAバス10の使用率が100%を超えない範囲であることを考慮することは必要である。
なお、本実施形態においては、パイプラインの構成が「DRAM20→入力DMA部30→輝度色変換部40→ノイズ除去部50→歪み補正処理部60→出力DMA部81→DRAM20」であり、歪み補正処理部60のデータバスを分岐して2つの処理画像を生成する場合について説明した。しかし、本発明の考え方を適用することができる処理のパイプラインやデータバスを分岐する位置は、画像処理のパイプラインに限定されるものではなく、例えば、ノイズ除去部50のデータバスを分岐するなど、パイプラインのいかなる位置に配置されている構成要素が出力するデータバスを分岐させた場合であっても、本発明の考え方を適用することができる。
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。