(58)【調査した分野】(Int.Cl.,DB名)
入力画像を複数の矩形画像に分割し矩形画像ごとに画像処理を行う画像処理装置の制御方法であって、前記画像処理装置は、矩形画像における各画素に対する中間情報を記憶する記憶手段を有しており、前記制御方法は、
前記記憶手段に格納されている前記中間情報に基づいて着目矩形画像の画素データに対して画像処理を行い、該着目矩形画像の後続の画素データに対する画像処理で利用する中間情報を生成する画像処理工程と、
前記画像処理工程により処理した矩形画像の個数をカウンタで計数する計数工程と、
いる中間情報を前記画像処理工程により生成された中間情報で更新する更新工程と、
を含み、
前記更新工程では、前記着目矩形画像に対する画像処理の終了後に、前記カウンタの示す値と中間情報の更新周期を示す所与の更新周期情報とを比較し、該比較の結果に基づいて前記中間情報を更新し、該比較の結果に基づいて前記カウンタの値を更新する
ことを特徴とする制御方法。
【発明を実施するための形態】
【0011】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【0012】
(第1実施形態)
本発明に係る画像処理装置の第1実施形態として、入力画像を分割し分割された領域ごとに処理を行う画像処理装置を例に挙げて以下に説明する。
【0013】
<装置構成>
図15は、第1実施形態に係る画像処理装置の全体構成を示すブロック図である。画像処理装置は、システムバス1502を介して相互に接続されたDRAM1501、ROM1502、画像処理部1503、CPU1504を含んでいる。また、システムバス1502は外部I/F1506を介して不図示の外部装置と接続可能に構成されている。
【0014】
尚、DRAM1501は、スキャナ等に接続されている外部I/F1506から入力された画像が格納されている。CPU1504は、画像処理部1503のファーム制御を指示する。また、DRAM1501に矩形単位の画像(矩形画像)が格納されていることを確認した後、画像処理部1503に画像処理の実行開始を通知する。以下では、矩形単位をバンド単位とし、当該バンド単位での画像処理をバンド処理と呼ぶ。また、画像処理は変倍処理を例にて説明する。
【0015】
図3は、バンド処理及び位置情報を説明する図である。四角形のマスは画素位置を表しており、4×3画素のバンド領域を模擬している。
【0016】
バンド処理は、画素Aから画素Bまで「画素の走査方向(矢印の方向)」で処理される。この時の位置情報は、例えば、BS(バンド開始)、CS(カラム開始)、CE(カラム終了)、BE(バンド終了)の計4ビットで表現される。BSはバンド領域の開始位置を表しており、BEはバンド領域の終了位置を表している。また、CS、CEはバンド領域のカラム方向(縦方向)の開始位置と終了位置、即ちバンド領域の上端と下端を示している。画素Aの画素位置はBS=1,CS=1,CE=0、BE=0で表現され、バンド処理開始時の画素を示す。また、画素Bの画素位置はBS=0,CS=0,CE=1、BE=1で表現され、バンド処理終了時の画素を示す。即ち、バンド処理はBSで開始され、BEで終了する。
【0017】
図1は、画像処理部104の詳細ブロック図である。画像処理部104は、後述する変倍処理部101、更新部102及び保持部103で構成されており、画像処理部1503に対応する。
【0018】
変倍処理部101は、DRAM1501に格納されているバンド画像を画素単位に入力する機能部である。以下では、この画素単位のデータを画素データと呼ぶ。そして、後述する保持部103に格納されている初期位相情報を基に、例えば、バイリニア法やバイキュービック法を用いた公知の方法で変倍し、出力画素データする。また、当該出力画素データに対応した位置情報を出力する。また、バンド処理(着目矩形画像)終了時には、次のバンド処理の初期位相情報を出力する。この初期位相情報は、カラム方向の開始時(バンド処理開始時を含む)に設定される位相情報の初期値である。この位相情報とは、入力画素位置と出力画素位置の距離である。
【0019】
図16は、位相情報を説明する図である。
図16に示すように、入力画素位置A、B、C、D(面ABDC)に対して縦方向の位相情報が位相HP、横方向の位相情報が位相WPの場合、出力画素位置は”O”の位置になる。尚、上述したように縦方向と横方向の位相情報が存在するが、以後、理解しやすくするために、上述の位相情報は、縦方向の位置情報に限定して説明する。
【0020】
更新部102は、変倍処理部101で生成された位置情報及び初期位相情報を入力する機能部である。そして、後述するバンドカウンタ、位相情報更新周期パラメータに従って、初期位相情報を更新する。更新部102の詳細動作については後述する。
【0021】
保持部103は、変倍処理部101の入出力される中間情報(ここでは初期位相情報)を保持するレジスタである。中間情報(初期中間情報)は更新部102やファーム制御にて更新される。なお、初期位相情報は、複数のバンド画像の最初のバンド画像に対する画像処理に先立って保持部103に格納される。
【0022】
<装置の動作>
図2は、変倍処理部101の動作を示すフローチャートである。尚、変倍処理部101は、図示しないが、バンド処理前に、処理すべきバンド領域の情報と変倍率の情報が設定されており、それを用いることで入出力画素データの位置情報を把握できるものとする。尚、位置情報が把握できない場合は、CPUで位置情報を作成し、画素データの入力時と同期してそれを入力する必要がある。
【0023】
S201では、変倍処理部101は、DRAM1501から入力画素データを入力する。入力画素データは図示しない内部のSRAMに保持され、後述する変倍処理に使用される。
【0024】
S202では、変倍処理部101は、入力画素データがバンド処理開始時(BS=1)を表すか否かを判定する。BS=1の場合はS203に進み、BS=0の場合はS204に進む。
【0025】
S203では、変倍処理部101は、保持部103に格納されている初期位相情報を入力し、作業レジスタ105に格納する。作業レジスタ105に格納されている位相情報は、出力画素データの画素位置を算出するために使用される。また、出力画素データ出力時に次の出力画素位置を算出するために更新される。
【0026】
S204では、変倍処理部101は、出力画素データを生成するための十分な入力画素データが揃ったか否かを判定する。揃った場合はS205に進み、揃っていない場合はS208に進む。
【0027】
出力画素データを生成するための十分な入力画素データが揃った段階で、変倍処理部101は、変倍処理し(S205)、出力画素データ及びそれに対応する出力位置情報を出力する(S206)。そして、次の出力のために、作業レジスタに格納されている位相情報を、次の出力画素データのための位相情報に更新する(S207)。つまり、画像処理結果に基づいて後続の処理で利用する位相情報を生成する。位相情報の生成方法は、任意の方法でよい。例えば、前回の位相情報及び出力画素間の距離から次の位相情報を生成できる。
【0028】
S208では、変倍処理部101は、全ての入力画素データの入力及び出力画素データの出力が完了したかを判定する。完了した場合は、S209に進み、完了していない場合は、S211に進む。
【0029】
S209では、変倍処理部101は、作業レジスタの位相情報を次のバンド処理の初期位相情報として出力する。ただし、初期位相情報は、後述する更新部102にて、当該バンド処理の初期位相情報に書き換えられる可能性がある。
【0030】
S211では、変倍処理部101は、入力画素データの位置情報がカラム端部の終了位置(CE=1)であるか否かを判定する。CE=1の場合は、S203と同様に、後述する保持部103に格納されている初期位相情報を入力し作業レジスタ105に代入する(S212)。つまり、位相情報が次のカラム端部の開始位置(CS=1)の初期位相情報に設定する。そして、S201に戻り次の入力画素データを入力する。
【0031】
図4は、更新部102の動作を示すフローチャートである。
【0032】
S401では、更新部102は、バンド処理前に、ファーム制御(CPU)によって、バンドカウンタ、位相情報更新周期パラメータ(更新周期情報)を設定し、バンド処理を開始する。すなわち、位相情報更新周期パラメータは所与のものである。バンドカウンタは、バンド処理の回数(処理したバンド画像の個数)を計数するパラメータである。尚、自由に値を設定することができるが、バンド処理毎にカウントアップされるため、通常”0”が設定されていればよい。位相情報更新周期パラメータは、バンド処理単位での初期位相情報の更新周期を決定するパラメータである。
【0033】
S402では、更新部102は、変倍処理部101から出力される位置情報及び初期位相情報を画素毎に入力する。
【0034】
S405では、更新部102は、位置情報がバンド処理終了時(BE=1)を示すか否かを判定する。BE=1の場合(すなわちバンド処理の終了後)はS407に進み、BE=0の場合はS402に戻る。
【0035】
S407では、更新部102は、バンドカウンタと位相情報更新周期パラメータを比較する。バンドカウンタ<位相情報更新周期パラメータである場合はS408に進み、バンドカウンタ≧位相情報更新周期パラメータである(実際は同値)場合はS411に進む。
【0036】
S408では、更新部102は、次のバンド処理の初期位相情報は、当該バンド処理の初期位相情報と同じであると判断し、初期位相情報の更新を行わない。そして、S409では、バンドカウンタをインクリメントする。
【0037】
S411では、更新部102は、次のバンド処理の初期位相情報は、位置情報がバンド処理終了時(BE=1)の初期位相情報であると判断する。よって、変倍処理部101で生成された初期位相情報を出力し、保持部103に格納されている初期位相情報を更新する。そして、S410では、バンドカウンタをリセット(つまり”0”)する。
【0038】
<バンド処理の順序>
次に、第1実施形態に係る画像処理装置の様々なユースケースにおけるバンド処理の順序について説明する。
【0039】
図5は、片面のバンド処理におけるバンド処理の順番とファーム制御位置を説明する図である。尚、各バンド領域は、変倍処理に必要な画素が含まれているものとする。また、バンド処理順は、処理高速化や画像を記憶するバッファ量の削減のため、スキャナから画像が読み込まれる順番(1バンド目、2バンド目・・・)に処理されることを想定している。
【0040】
図5(a)は、片面での単色処理を説明する図である。片面での単色処理は、片面印刷された画像をスキャナで読み込み、画像処理するシーケンスである。当該処理は、
図5(a)に示されているバンド順(1バンド目、2バンド目・・・)に従って、画像処理が行われる。その際、ファーム制御は、1バンド目開始前、及びバンド処理間に行われる。
【0041】
図5(b)は、片面での複数色処理を説明する図である。複数色処理は、画素データをグループに分割し、時系列にバンド処理するシーケンスである。例えば、6色(R,G,B,α、β、γ)の画素を2つのグループ(グループ1、グループ2)に分割する。そして、単色処理と同様に、バンド順(1バンド目、2バンド目・・・)に従って処理する。この時、グループ1とグループ2は、バンド毎に交互に処理される。即ち、「グループ1の1バンド目」→「グループ2の1バンド目」→「グループ1の2バンド目」→「グループ2の2バンド目」・・・の順で処理される。この時、グループ1とグループ2の変倍率が同じであるため、同バンドでの初期位相情報は同じである。
【0042】
図6は、両面のバンド処理におけるバンド処理の順番とファーム制御位置を説明する図である。
図6(a)及び
図6(b)は、両面での単色処理及び複数色処理をそれぞれ説明する図である。両面処理は、両面印刷された画像を裏面と裏面を同時にスキャナで読み込み、画像処理するシーケンスである。基本的な動作は、
図5(a)及び
図5(b)に示す片面での単色処理及び複数色処理と同じである。
【0043】
ただし、おもて面画像と裏面画像がバンド毎に交互に処理される。即ち、「おもて面画像の1バンド目」→「裏面画像の1バンド目」→「おもて面画像の2バンド目」→「裏面画像の2バンド目」・・・の順で処理される。この時、おもて面画像と裏面画像の変倍率が同じであるため、同バンドでの初期位相情報は同じである。
【0044】
尚、ファーム制御は、
図5及び
図6に示すようにページ先頭(画像処理開始前)及びバンド処理間で行うことができる。
【0045】
<バンドカウンタ及び位置情報更新周期パラメータの関係>
次に、本発明の第1実施例に係る画像処理装置のファーム制御とバンドカウンタ及び位置情報更新周期パラメータの関係について説明する。
【0046】
図7は、画像処理装置の制御シーケンスを示す図である。尚、上述したように様々なユースケースがあるが、
図6(a)に示す単色処理+両面処理にて説明する。
【0047】
S701では、CPU1504は、画像処理開始前に画像処理に必要なパラメータの設定を行う。両面処理の場合、バンドカウンタ=0、位相情報更新周期パラメータ=1を設定する。また、おもて面1バンド目のバンド処理のために位相情報A(初期位相情報)を設定する。パラメータを設定した後、画像処理(バンド処理)を開始する。
【0048】
S705では、画像処理部104は、おもて面1バンド目のバンド処理を実行する。バンド処理が終了すると、バンド処理が終了したことを示すトリガをCPUに出力する。この時、位置情報更新パラメータよりもバンドカウンタが小さいため、バンド処理終了時の位相情報は、バンド処理開始時の初期位相情報と同じ位相情報Aとなる。この位相情報Aは、次の裏面1バンド目の画像処理(S706)の初期位相情報として使用される。即ち、ファーム制御で位相情報Aを設定する必要はない(S702)。尚、バンドカウンタはインクリメントされる。
【0049】
S706では、画像処理部104は、裏面1バンド目のバンド処理を実行する。バンド処理が終了すると、バンド処理が終了したことを示すトリガをCPUに出力する。この時、位置情報更新パラメータとバンドカウンタが等しいため、保持部103で格納されている位相情報は、変倍処理部101で算出された位相情報Bとなる。この位相情報Bは、次の、おもて面2バンド目の画像処理(S707)の初期位相情報として使用される。即ち、ファーム制御で位相情報Bを設定する必要はない(S703)。尚、バンドカウンタは0にリセットされる。
【0050】
おもて面2バンド目の画像処理(S707)及び裏面2バンド目の画像処理(S708)も上述シーケンスを繰り返す。そして、S702と同様にファーム制御で位相情報を設定する必要はない(S703、S704)。
【0051】
尚、第1実施形態では、画像処理装置のバンドカウンタ及び位相情報更新周期パラメータは、外部から設定可能なパラメータである。上述の説明では、位相情報の更新間隔が一定であることを前提に説明したが、あるタイミングで更新間隔が変わる場合にも、バンドカウンタ及び位相情報更新周期パラメータを変更することで対応可能である。
【0052】
また、上述の説明では、ファーム制御とバンドカウンタ及び位置情報更新周期パラメータの関係を、単色処理+両面処理の形態に関して説明したが、位相情報の更新間隔が一定であれば、バンド処理間でパラメータを設定する必要はない。例えば、
図6(b)に示す複数色処理+両面処理の場合、位相情報は4回に1回更新されるため、位相情報更新周期パラメータを”3”に設定することで対応可能である。
【0053】
以上説明したとおり第1実施形態によれば、バンド領域が連続しないシーケンスの場合でも、簡単なファーム制御で対応可能となる。特に、両面処理や複数色処理時のように初期位相情報がバンド処理間で変わらないユースケースでは、バンド処理間でのファーム制御が不要となる画像処理装置を提供することができる。
【0054】
(第2実施形態)
第2実施形態では、バンド処理に対応する位相情報の更新の有無が記載されている位相情報更新パラメータ(
図10)を使用する形態について説明する。
【0055】
<装置構成>
図8は、第2実施形態における画像処理部804の詳細ブロック図である。更新部102の代わりに更新部802を備える点が第1実施形態(
図1)と異なる。他の構成については
図1と同様であるため説明を省略する。
【0056】
更新部802は、変倍処理部801で生成された位置情報及び初期位相情報を入力する。そして、後述する位相情報更新パラメータに従って、初期位相情報を更新する。更新部802の詳細動作については後述する。
【0057】
<装置の動作>
図9は、第2実施形態における更新部802の動作を示すフローチャートである。なお、第1実施形態(
図4)と同様の動作については説明を省略する。
【0058】
S901では、更新部802は、バンド処理前に、ファーム制御(CPU)によって、位相情報更新パラメータを設定し、バンド処理を開始する。位相情報更新パラメータはバンド処理に対応する位相情報の更新の有無が記載されている。
【0059】
図10は、両面処理における位相情報更新パラメータを説明する図である。
図10(a)は両面処理における位相情報更新パラメータの例である。各ビットが各バンド処理時の位相情報の更新の有無を表す。ここでは、LSBから順番にバンド処理順を表す。例えば、おもて面1バンド目のバンド処理では”0”、裏面1バンド目のバンド処理では”1”、おもて面2バンド目のバンド処理では”0”、裏面2バンド目のバンド処理では”1”、を表す。尚、3バンド目以降は、LSBに戻りバンド処理を表す。
【0060】
S905では、更新部802は、S902で入力した位置情報が、バンド処理終了を示すBE=1の場合は、位相情報更新パラメータのLSBを参照する(S907)。位相情報更新パラメータのLSBが”0”の時、次のバンド処理の初期位相情報は、当該バンド処理の初期位相情報と同じであると判断される。そのため、初期位相情報を更新しない(S908)。一方、位相情報更新パラメータのLSBが”1”の時、次のバンド処理の初期位相情報は、位置情報がバンド処理終了時(BE=1)の初期位相情報であると判断される。よって、変倍処理部101で生成された初期位相情報を出力し、保持部103に格納されている初期位相情報を更新する(S911)。そして、位相情報更新パラメータを更新する(S912)。具体的には、
図10(b)に示すように、位相情報更新パラメータを1ビット右シフトする。その際、LSBをMSBに移動させる。
【0061】
以上説明したとおり第2実施形態によれば、バンド処理に対応する位相情報の更新の有無が記載されている位相情報更新パラメータを使用することで、より簡易な構成とすることが可能となる。
【0062】
(第3実施形態)
第3実施形態では、バンド領域(バンド画像)を更に分割したタイル領域(タイル画像)に対して処理を行うタイル処理を行う形態について説明する。タイル処理におけるタイル領域は、バンド領域をさらに横方向(バンド分割の方向と直交する方向)に分割したものである。即ち、第3実施形態では処理単位が第1及び第2実施形態と異なることになる。
【0063】
図11は、1枚の画像をタイル単位に12分割(3×4)し、タイル毎に画像処理を行う例を説明する図である。画像処理の順番は、上述したバンド処理と同様にスキャナから画像が読み込まれる順番(1バンド目、2バンド目・・・)に処理される。また同バンドでの順番は、例えばタイル1、タイル2、タイル3、・・・で処理される。
【0064】
<装置構成>
図13は、第3実施形態における画像処理部1304の詳細ブロック図である。変倍処理部1301、保持部1303は、それぞれ変倍処理部101、保持部103と動作が同じであるため、説明を割愛する。
【0065】
タイル処理においては、バンド処理と異なり、ライン方向(同バンド)でのライン(横)方向の初期位相情報(ライン)の更新がある。そのため、変倍処理部1301、保持部1303では、変倍処理部101、保持部103と同様の初期位相情報(以後、初期位相情報(カラム)と呼ぶ)に加え、ライン方向の初期位相情報(以後、初期位相情報(ライン)と呼ぶ)が出力される。また、保持部1303は、初期位相情報(カラム)及び初期位相情報(ライン)が保持される。
【0066】
更新部1302は、初期位相情報(カラム)の生成に関し、
図4に示したフローチャートと同じであるため、説明を割愛する。一方、初期位相情報(ライン)の生成に関し、
図12のフローチャートを用いて説明する。尚、下記に示す初期位相情報は初期位相情報(ライン)として説明する。
【0067】
<装置の動作>
図12は、第3実施形態における更新部1302の動作を示すフローチャートである。なお、第1実施形態(
図4)と同様の動作については説明を省略する。
【0068】
S1201では、更新部1302は、タイル処理前に、ファーム制御(CPU)によって、タイルカウンタ、位相情報更新周期パラメータを設定し、タイル処理を開始する。タイルカウンタは、タイル処理の回数をカウントするパラメータである。尚、自由に値を設定することができるが、タイル処理毎にカウントアップされるため、通常”0”が設定されていればよい。位相情報更新周期パラメータは、タイル処理単位での初期位相情報の更新周期を決定するパラメータである。ただし、初期位相情報(カラム)では、初期位相情報を更新する周期を決定するためのものであるが、初期位相情報(ライン)では、初期位相情報を更新しない周期を決定するためのものである。
【0069】
S1207では、更新部1302は、タイルカウンタと位相情報更新周期パラメータを比較する。タイルカウンタ<位相情報更新周期パラメータである場合はS1211に進み、タイルカウンタ≧位相情報更新周期パラメータである(実際は同値)場合はS1208に進む。
【0070】
S1211では、更新部1302は、次のタイル処理の初期位相情報は、位置情報がタイル処理終了時(BE=1)の初期位相情報であると判断する。よって、変倍処理部101で生成された初期位相情報を出力し、保持部103に格納されている初期位相情報を更新する。そして、S2109では、タイルカウンタをインクリメントする(S1209)。
【0071】
S1208では、更新部1302は、次のタイル処理の初期位相情報は、当該タイル処理の初期位相情報と同じであると判断し、初期位相情報の更新を行わない。そして、S1210では、バンドカウンタをリセット(つまり”0”)する。
【0072】
上述した制御により、初期位相情報(ライン)は、例えば
図11に示すタイル1、タイル2では更新し、タイル3では更新しないシーケンスとなる。
【0073】
以上説明したとおり第3実施形態によれば、タイル処理についても簡単なファーム制御で対応可能となる。すなわち、初期位相情報(カラム)と初期位相情報(ライン)の生成するシーケンスは異なるが、
図13に示すタイルカウンタ及び位相情報更新周期パラメータで、タイル処理間でのファーム制御が不要となる。
【0074】
(第4実施形態)
第4実施形態では、映像処理を行う形態について説明する。すなわち、上述した実施形態では、変倍処理について説明したが、本発明は、ある処理にて生成される属性情報を一定間隔で更新するユースケースであれば適用可能である。例えば、ヒストグラムデータを基に属性情報を生成する映像処理において、一定の周期で、フレーム間で上述の属性情報を更新するユースケースに適用できる。
【0075】
図14は、更新部1703の動作の一例を示す図である。尚、以後、各々のフレーム単位の処理をフレーム処理と呼ぶ。
【0076】
<装置構成>
図17は、第4実施形態における画像処理部1704の詳細ブロック図である。
【0077】
映像処理部1701は、フレーム内の画素データ(例えば、R、G、B等)を入力する。そして、例えば、公知の方法でヒストグラム処理を行い、その結果をメモリ1706に格納する。そして、フレーム内の全ての画素データのヒストグラム処理が終了したら、メモリ1706に格納されているヒストグラム及び後述する保持部1703に格納されている属性情報を用いて属性情報を生成する。全ての画素データが入力されたことは位置情報で判断することができる。
【0078】
更新部1703は、更新部102及び
図4に示すバンド処理時の初期位相情報を生成するシーケンスの動作と同様であるため詳細な説明は省略する。具体的には、
図4に示す初期位相情報が属性情報に、位相情報更新周期パラメータが属性情報更新周期パラメータに、バンドカウンタがフレームカウンタに代わる。
【0079】
ただし、
図17に示すフレームカウンタは、
図1に示すバンドカウンタと異なり、フレーム処理単位での初期位相情報の更新周期を決定するパラメータである。即ち、数フレーム毎に属性情報を更新できる。例えば、
図14に示すシーケンス例では、属性情報更新周期パラメータがn−1に設定されている。そのため、出力される属性情報はnフレーム毎に更新され、フレームカウンタは”0”にリセットされる。
【0080】
更新部1703は、保持部103と同様に、更新部1702から出力された属性情報を保持する。また、CPU等で属性情報を設定することも可能である。そして、保持された属性情報はCPU等でリードされ、例えば、霧霞除去処理のための解析情報として使用される。数フレーム毎にリードされた複数の属性情報(R,G,B,Yのヒストグラム結果)を基に環境光推定処理を行い、環境光値を生成する。そして、環境光値を使用して霧霞の透過率マップを作成したり、霧霞除去処理を行う。
【0081】
以上説明したとおり第4実施形態によれば、映像処理についても簡単なファーム制御で対応可能となる。すなわち、生成した属性情報をフレーム単位に一定間隔で更新するユースケースであれば、ファーム制御が不要となる。即ち、画像処理単位がフレーム処理でも、フレーム処理間でのファーム制御が不要となる画像処理装置を提供することができる。
【0082】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。