以下に添付図面を参照して、本発明にかかる画像処理装置、および画像処理制御プログラムの好適な実施の形態1〜5を詳細に説明する。実施の形態1〜5では、圧縮率に基づいて、圧縮データをフレームメモリへ出力させるか、圧縮データを破棄させるかを制御する。
まず、実施の形態1では、FIR型フィルタであって、圧縮回路および伸張回路が一種類備えられ、フィルタ処理回路が一種類備えられている場合の画像処理装置を例に挙げて説明する。つぎに、実施の形態2では、IIR型であって、および伸張回路が一種類備えられ、フィルタ処理回路が一種類備えられている場合の画像処理装置を例に挙げて説明する。
そして、実施の形態3では、FIR型フィルタであって、圧縮回路および伸張回路が複数種類備えられ、フィルタ処理回路が複数種類備えられている場合の画像処理装置を例に挙げて説明する。つぎに、実施の形態4では、IIR型フィルタであって、圧縮回路および伸張回路が複数種類備えられ、フィルタ処理回路が複数種類備えられている場合の画像処理装置を例に挙げて説明する。
最後に、実施の形態5では、圧縮率に基づいて圧縮データをフレームメモリへ出力させるか、圧縮データを破棄させるかを画像処理装置に対して制御する画像処理制御プログラムについて説明する。
(実施の形態1)
図1は、実施の形態1にかかる画像処理装置の一例を示す説明図である。画像処理装置100は、分割回路101と、圧縮回路102と、選択回路105と、算出回路103と、判断回路104と、ブロックラインメモリ106と、フレームメモリ107と、伸張回路108と、フィルタ処理回路109と、判断回路110と、出力回路111とを備えている。なお、フレームメモリ107については、画像処理装置100の内部に備えても、外部メモリとして備えてもよい。図1では、入力画像は、連続するフレーム1とフレーム2である。
まず、分割回路101は、ブロックラインごとに入力されてくるフレーム1のブロックラインを、ブロックに分割する。ブロックラインとは、フレーム1内の点線の囲いが1ブロックラインである。そして、ブロックとは、点線の囲いのブロックライン内で示す四角である。分割回路101は、たとえば、1ブロックラインを記憶することが可能なメモリであって1ブロックごとにデータを出力してもよい。なお、分割回路101の機能については公知であるため説明を省略する。
つぎに、圧縮回路102が、フレーム内のブロックのデータを圧縮して選択回路105へ出力する。実際には、選択回路105は、圧縮回路102内にあってもよいが、ここでは、理解の容易化のため回路を分けている。そして、図1では、フレーム1内のブロック1のデータを例に挙げている。なお、圧縮回路102は、可逆圧縮の圧縮方法の1つであればよいため、特に限定しない。
そして、算出回路103が、フレーム1内のブロック1のデータと圧縮データとを圧縮回路102から取得して、圧縮率を算出する。ここで、圧縮率について説明する。圧縮率とは、圧縮前のブロックのデータから圧縮データがどのくらい圧縮されたかを示す。具体的には、たとえば、圧縮率は、圧縮データの容量値を圧縮前のブロックのデータの容量値で割った値である。たとえば、圧縮率が1/3の圧縮データは、圧縮率が1/2の圧縮データよりも圧縮率が高い圧縮データである。
よって、たとえば、目標値が1/3の場合、任意のブロックの圧縮データの圧縮率が1/4の場合、任意のブロックの圧縮データの圧縮率は、目標値以下であるため(目標値よりも圧縮率が高いため)、圧縮データがフレームメモリへ記憶される。また、たとえば、目標値が1/3の場合、任意のブロックの圧縮データの圧縮率が1/2の場合、任意のブロックの圧縮データの圧縮率は、目標値より大きいため(目標値よりも圧縮率が低いため)、破棄を示す情報がフレームメモリへ記憶される。
つぎに、判断回路104が、算出回路103により算出された圧縮率が指定された閾値を達成しているか否かを判断する。指定された閾値とは、利用者により予め設定される目標値である。たとえば、1/2〜1/3が目標値として設定される。具体的には、判断回路104が、圧縮率が目標値以下であるか否かを判断する。そして、圧縮率が目標値以下であると判断された場合、選択回路105が圧縮データを選択する制御信号を判断回路104が選択回路105へ出力する。目標値より大きいと判断された場合、選択回路105が破棄を示す情報を選択する制御信号を判断回路104が選択回路105へ出力する。図2−1と図2−2を用いて判断回路104と選択回路105の機能について詳細に説明する。
図2−1は、圧縮データがフレームメモリ107へ出力される例を示す説明図である。図2−1では、画像処理装置100の一部のみを示している。判断回路104により圧縮率が目標値以下であると判断された場合、判断回路104が圧縮データを選択させる制御信号を選択回路105へ出力し、選択回路105が圧縮データを選択してブロックラインメモリ106へ出力する。ブロックラインメモリ106では、フレームメモリ107へ圧縮データまたは破棄を示す情報を出力させる情報を一時的に記憶する。たとえば、画像処理装置100の制御によってはブロックラインごとにフレームメモリ107へ出力するため、ブロックラインメモリ106が用いられる。実施の形態1では、ブロックラインメモリ106は、FIFO(First In First Out)である。
図2−2は、破棄を示す情報がフレームメモリ107へ出力される例を示す説明図である。図2−2では、画像処理装置100の一部のみを示している。判断回路104により圧縮率が目標値より大きいと判断された場合、判断回路104が破棄を示す情報を選択させる制御信号を選択回路105へ出力し、選択回路105が破棄を示す情報を選択してブロックラインメモリ106へ出力する。
また、圧縮率の代わりに圧縮データのビット量を算出回路103が算出して、圧縮データのビット量に基づいてフレームメモリへ圧縮データを出力させるか否かを判断回路104が判断してもよい。なお、ビット量の算出方法は公知であるため説明を省略する。
ここで、フレームメモリ107と圧縮データの破棄を示す情報について説明する。実施の形態1では、フレームメモリ107が、ブロックごとに破棄であるか否かを示すフラグと、圧縮データのビット量を示す情報または圧縮データのアドレスと、圧縮データとを記憶する。破棄であるか否かを示すフラグは、固定ビット量のデータであり、圧縮データのビット量を示す情報は、固定ビット量のデータである。そして、圧縮データは、可変ビット量のデータである。
たとえば、4ビットのフラグと、4ビットの圧縮データのビット量を示す情報と、可変ビットの圧縮データとが、ブロックごとにブロックの情報としてフレームメモリ107に記憶される。
たとえば、フラグが“1”の場合、圧縮データの破棄を示し、フラグが“0”の場合、圧縮データが記憶されていることを示すとする。フレーム1内のブロック1の圧縮データの圧縮率が、指定の閾値以下の場合、“00110110110”がブロック1の情報としてフレームメモリ107へ記憶される。先頭から“0”が、ブロック1の圧縮データが記憶されていることを示し、“0110”により圧縮データが6ビットのデータであることを示し、“110110”が圧縮データであることを示している。フレームメモリ107が記憶するブロックの情報については、一例であってこれに限らない。
よって、フレームメモリ107の容量は、ブロックごとにフラグとビット量を示す情報と、圧縮データとを記憶可能な容量である。圧縮前の1ブロックが、32ビットのデータであり、目標値が1/3で、フラグが1ビットのデータ、ビット量を示す情報が、4ビットのデータであり、1フレームのブロックの総数が15の場合を例に挙げる。フレームメモリ107は、少なくとも(32ビット×(1/3)+4ビット+1ビット)×15ブロックのビット量を記憶可能な容量が必要である。
図1に戻って、圧縮回路102と、算出回路103と、判断回路104ついては、フレーム1の処理が終了するとフレーム2についてフレーム1と同様の処理を実施する。つぎに、伸張回路108、フィルタ処理回路109と、出力回路111の各機能については、フレーム1内のブロック1と同位置であるフレーム2内のブロック1を例に挙げて説明する。なお、フレーム1内のブロック1については、フレームメモリ107にブロック1の情報が記憶されている。
まず、フレーム2内のブロック1のデータが、フィルタ処理回路109と、出力回路111へ入力される。フレームメモリ107に記憶されているフレーム1内のブロック1の情報が判断回路110と伸張回路108へ入力される。
伸張回路108は、フレーム1内のブロック1の圧縮データを伸張する。伸張回路108は、圧縮回路102により圧縮された圧縮データを伸張可能な伸張方法が用いられている。
そして、フィルタ処理回路109は、伸張回路108により伸張された伸張データと、フレーム2内のブロック1のデータとを入力し、フレーム2内のブロック1のデータにフィルタ処理を行う。なお、フィルタ処理回路109は、フレームメモリ107を用いて1フレーム遅延させることで前フレームを用いて現フレームのフィルタ処理を行うフィルタ処理方法であればどのフィルタ処理方法であってもよいため、ここでは、特に限定しない。
そして、判断回路110が、フレーム1内のブロック1の情報が圧縮データであるか、破棄を示す情報であるかを判断する。具体的には、たとえば、判断回路110がフレーム1内のブロック1の情報が圧縮データであると判断すると、判断回路110が、フィルタ処理後のフレーム2内のブロック1のデータを出力させる制御信号を出力回路111へ出力する。一方、判断回路110がフレーム1内のブロック1の情報が破棄を示す情報であると判断すると、判断回路110がフレーム2内のブロック1のデータを出力させる制御信号を出力回路111へ出力する。図3−1と図3−2を用いて判断回路110と出力回路111の機能について詳細に説明する。
図3−1は、フィルタ処理後のデータが出力される例を示す説明図である。図3−1では、画像処理装置100の一部のみを示している。判断回路110が、フレームメモリ107に記憶されているフレーム1のブロック1の情報が圧縮データであるか否かを判断する。図3−1では、フレームメモリ107に記憶されているフレーム1のブロック1の情報は、圧縮データである。判断回路110が圧縮データであると判断すると、判断回路110は、フィルタ処理後のデータを出力させる制御信号を出力回路111へ出力する。よって、出力回路111が、フレーム2内のブロック2のデータに対してフィルタ処理が行われたフィルタ処理後のデータを出力する。なお、実施の形態1では、判断回路110は、前フレーム内のブロック1の破棄か否かを示すフラグを制御信号として出力回路111へ出力してもよい。
図3−2は、フィルタ未処理のデータが出力される例を示す説明図である。図3−2では、画像処理装置100の一部のみを示している。判断回路110が、フレームメモリ107に記憶されているフレーム1のブロック1の情報が圧縮データであるか否かを判断する。図3−2では、フレームメモリ107に記憶されているフレーム1のブロック1の情報は、破棄を示す情報である。破棄を示す情報であると判断すると、判断回路110は、フィルタ未処理のフレーム2内のブロック1のデータを出力させる制御信号を出力回路111へ出力する。よって、出力回路111が、フレーム2内のブロック1のデータを出力する。
また、本実施の形態1では、圧縮率に基づいて圧縮データをフレームメモリへ出力させるか否かが判断されているが、ブロックの圧縮データと圧縮率とを関連付けて、圧縮率を判断させずにフレームメモリへ記憶させてもよい。そして、フレームメモリに記憶されている前フレーム内のブロックの圧縮率に基づいて、現フレームのブロックのデータを出力させるか、現フレームのブロックのフィルタ処理後のデータを出力させるかを制御してもよい。これにより、画像処理装置100の処理時間を高速化することができる。そして、実施の形態1で説明したように、圧縮率に基づいてフレームメモリへ圧縮データを出力させるか否かを制御することで、フレームメモリの容量を所望の容量に抑制でき、省メモリ化を図ることができる。
また、画像処理装置100では、伸張回路108およびフィルタ処理回路109へはフレームメモリからの圧縮データまたは破棄を示す情報が常時入力され、常時各伸張処理とフィルタ処理が動作している。図示しないが、判断回路110の判断結果に基づいて伸張回路108およびフィルタ処理回路109を制御してもよい。具体的には、たとえば、判断回路110によって前フレームのブロックの情報が破棄を示す情報であると判断された場合、判断回路110が伸張回路108の処理を止めるように制御する。伸張回路108の処理を止めるとは、たとえば、伸張回路108へのクロックの供給を停止させる。なお、設計者が、あらかじめクロックの供給を呈し可能な回路を設計する必要がある。判断回路110が、フィルタ処理回路110も伸張回路108と同様に制御してもよい。
また、圧縮回路102の圧縮方法によっては、画素の濃淡が平坦であることと圧縮率の高さとに相関があるため、圧縮率が高いブロックのみに対してフィルタ処理を行うことで、ノイズの目立ち易い平坦なブロックに対してフィルタ処理を行うことができる。したがって、利用者が、フレーム内で特にフィルタ処理を実施させたいブロック(たとえば、平坦なブロック)と相関のある圧縮方法を用いて圧縮することで、画像処理装置100では、フィルタ処理を実施させブロックを圧縮率に基づいて自動で選択することができる。
なお、図示していないが、画像処理装置100では、画像処理装置100内の回路間のデータ入出力のタイミングを制御する回路を備えているか、または画像処理装置100にアクセス可能なコンピュータによってタイミングを制御されている。なお、タイミングの制御に関しては、公知であるため説明を省略する。
また、従来では、FIR型フィルタでは、フレームメモリ107は、1フレーム分の容量が大きいため前フレームのみを記憶している。本発明により省メモリ化を図ることにより、複数前のフレームを記憶するフレームメモリを用意することができる。複数前のフレームを記憶するフレームメモリを用意する場合、判断回路110では、各フレームの圧縮データの圧縮形式に基づいて出力回路111を制御する。たとえば、制御回路110では、現フレーム内のブロックに対応するいずれか1つのフレーム内のブロックの情報が破棄を示す情報であれば、フィルタ処理を行わせないように制御するなど、様々な制御が可能であるため、特に限定しない。
また、実施の形態1では、ブロックごとに目標値を定めているが、ブロックラインごとに目標値を定めてもよいし、またはフレームごとに目標値を定めてもよい。
一方、目標値より大きい場合、ブロックライン内で圧縮率が最も低いブロックの圧縮データを破棄する。そして、破棄後のブロックラインの圧縮後の総ビット量が目標値以下であるか否かを判断し、目標値以下になるまで、ブロックライン内で圧縮率が最も低いブロックの圧縮データを破棄する。これにより、利用者が、ブロックラインごとにあらかじめフレームメモリの容量を決定でき、省メモリ化を図ることができる。
(実施の形態2)
図4は、実施の形態2にかかる画像処理装置の一例を示す説明図である。図4に示す画像処理装置400では、図1と同様に分割回路101と、圧縮回路102と、算出回路103と、判断回路104と、選択回路105と、ブロックラインメモリ106と、フレームメモリ107と、伸張回路108と、フィルタ処理回路109と、判断回路110と、出力回路111を備えている。
図4に示す画像処理装置400は、IIR型フィルタであり、図1に示す画像処理装置100は、FIR型フィルタである。画像処理装置400と画像処理装置100では、各回路の機能は同一であり、各回路間の接続関係が異なるのみである。よって、実施の形態4では、実施の形態3で示した構成と同一構成には同一符号を付し、同一符号が付された構成の説明は省略する。
(実施の形態3)
つぎに、実施の形態3では、実施の形態1で示した画像処理装置100にさらに、複数種類の圧縮回路と、複数種類のフィルタ処理回路が備えられている画像処理装置について説明する。なお、実施の形態4では、実施の形態1〜3で示した構成と同一構成には同一符号を付し、同一符号が付された構成の説明は省略する。
図5は、実施の形態3にかかる画像処理装置の一例を示す説明図である。画像処理装置500では、分割回路101と、圧縮回路1〜mと、算出回路501と、判断回路502と、選択回路503と、ブロックラインメモリ504と、フレームメモリ505と、判断回路506と、デマルチプレクサ507と、伸張回路1〜mと、選択回路508と、フィルタ処理回路1〜nと、出力回路509と、を備えている。
画像処理装置500では、圧縮回路と、伸張回路がm種類(m>=2)であり、フィルタ処理回路がn種類(n>=2)である。ここでは、圧縮回路に付された番号と、伸張回路に付された番号は対応関係にあり、たとえば、圧縮回路1により圧縮された圧縮データは、伸張回路1により伸張させることができる。実施の形態3では、複数の圧縮回路によりブロックのデータを圧縮させ、最も圧縮率の高い圧縮データを用いて、圧縮データの圧縮率が指定の閾値以下であるか否かが判断されている。よって、圧縮データに対して圧縮形式が関連付けられて、フレームメモリ505へ記憶される。そして、どの圧縮回路によって圧縮されたかに基づいて、フィルタ処理回路が選択される。なお、圧縮回路と伸張回路が1種類であってフィルタ処理回路がn種類であってもよいし、圧縮回路と伸張回路がn種類であってフィルタ処理回路が1種類であってもよい。
圧縮回路1〜mは、分割回路101から出力されたブロックのデータを圧縮し、それぞれの圧縮形式と、圧縮データとを関連付けて算出回路501に出力する。なお、画像処理装置500では、圧縮回路1〜mが算出回路501のみに圧縮データと圧縮形式を出力しているが、判断回路502を介さずに選択回路503へ圧縮データと圧縮形式を出力してもよい。
ここで、圧縮回路の圧縮方法について説明する。圧縮回路1と圧縮回路2とが、たとえば、いずれもハフマン符号化を用いる圧縮回路であっても、ハフマン符号化の圧縮効率を向上させるためにハフマン符号化の前にブロックのデータに施す処理が異なっていると、圧縮方法が異なるとしている。たとえば、単に画素値を符号化させるのではなく、予測画像との差分である予測値を符号化させる技術(たとえば、DPCM(Differential Pulse Code Modulation))が知られている。圧縮回路1では、たとえば、当該予測値を算出するために用いる予測画像を、画素平均値や外周画素に基づいて生成させ、圧縮回路2では、たとえば、予測画像を、縮小画像に基づいて生成させる。したがって、圧縮回路1と圧縮回路2では、ハフマンの符号化方法は同一であるが予測画像の生成方法が異なるため、圧縮データは必ずしも同じではなく圧縮率も同じではない。
また、利用者が、画像処理装置を設計する際に予め圧縮方法に基づいてフィルタ処理回路を決定することで、各圧縮方法に適したフィルタ処理を行うことができる。具体的には、たとえば、上述の圧縮回路2のように予測画像を縮小画像に基づいて生成させた場合、エッジを含むため、エッジを保存してローパスフィルタを実施してもよい。
つぎに、算出回路501が、ブロックのデータと、圧縮回路1〜mから出力される圧縮データとに基づいてそれぞれの圧縮率を算出する。なお、ブロックのデータについては、図示していないが分割回路101から算出回路501へ出力されても、いずれかの圧縮回路から算出回路501へ出力されてもよい。
そして、判断回路502が、複数の圧縮データの中で、どの圧縮データが最も圧縮率が高いかを判断して選択する。つぎに、選択された圧縮データの圧縮率が、目標値以下であるか否かを判断する。目標値以下であると判断された場合、選択された圧縮データと、圧縮率とを選択回路503に選択させる制御信号を出力し、目標値より大きいと判断された場合、破棄を示す情報を選択回路503に選択させる制御信号を出力する。
ここで、図5で示す圧縮形式と破棄を示す情報について説明する。実施の形態3では、圧縮形式とは、どの圧縮回路によって圧縮された圧縮データであるかを示す情報であり、たとえば、aビット(2a>=m)のデータで示す。圧縮形式が3ビットであれば、“001”が、圧縮回路1を示し、“010”が圧縮回路2を示すとする。そして、たとえば、“000”を、破棄を示す情報としてもよい。
つぎに、選択回路503が、圧縮形式および圧縮データと、破棄を示す情報とのうちいずれか一方を制御信号に基づいて選択してブロックラインメモリ504へ出力する。ブロックラインメモリ504については、実施の形態1で示したブロックラインメモリ106と同一機能であるため説明を省略する。
実施の形態3では、フレームメモリ505が各ブロックの情報として圧縮形式と、圧縮データのビット量を示す情報と、圧縮データを記憶する。なお、圧縮形式は、固定ビット量のデータであり、圧縮データのビット量を示す情報は、固定ビット量のデータであり、圧縮データは、可変ビット量のデータである。ここでは、圧縮形式は、3ビットのデータとし、圧縮データのビット量を示す情報は、4ビットのデータとする。
フレーム1内のブロック1では、圧縮回路1により圧縮された圧縮データがフレームメモリ505へ記憶され、フレーム1内のブロック2では、破棄を示す情報がフレームメモリ505に記憶される場合を例に挙げる。フレームメモリ505には、ブロック1およびブロック2の情報として“0010101101010000000”が記憶されている。“001”によって、ブロック1が圧縮回路1により圧縮されていることを示し、“0101”によって、ブロック1の圧縮データが5ビットであることを示し、“10101”がブロック1の圧縮データであることを示していえる。そして、“000”によって、ブロック2の情報が破棄を示す情報であることを示し、ブロック2は破棄であるためビット量は“0000”である。そして、ブロック2の圧縮データは記憶されていない。
なお、フレームメモリ505が記憶する各ブロックの情報は、フレームメモリ505へのアクセスがシーケンシャルアクセスであるか、ランダムアクセスであるかによって異なるため、限定しない。
つぎに、判断回路506は、フレームメモリ505に記憶されている前フレームのブロックの情報が、圧縮回路1〜mのうち、どの圧縮回路により圧縮された圧縮データであるか、または破棄を示す情報であるかを判断する。実施の形態3では、フレームメモリ505から出力される前フレームのブロックの圧縮形式に基づいて、どの圧縮回路により圧縮された圧縮データであるか、破棄を示す情報であるかを判断する。したがって、判断回路506は、フレームメモリ505に記憶されている圧縮形式を、制御信号として出力回路509と、選択回路508と、デマルチプレクサ507へ出力させてもよい。
そして、デマルチプレクサ507は、制御信号に基づいて伸張回路へ圧縮データを出力する。実施の形態3では、圧縮形式を制御信号として用いるため、上述のように圧縮形式が3ビットの情報の場合、“001”であれば、デマルチプレクサ507は、圧縮データを伸張回路1へ出力する。そして、“000”であれば、デマルチプレクサ507は、どの伸張回路であっても情報を出力しない。なお、圧縮形式が“000”の場合、圧縮データはなにも記憶されていない。
そして、各フィルタ処理回路は、伸張回路から出力される前フレームのブロックの伸張データを用いて現フレームのブロックのデータに対してフィルタ処理を行う。なお、予め利用者が回路を設計する際に、圧縮形式に基づいてフィルタ処理回路が決定されている。伸張回路1によって伸張された伸張データであっても伸張回路2によって伸張された伸張データであってもフィルタ処理回路1を用いてフィルタ処理を実行するため、選択回路508は、圧縮形式に基づいて伸張データを選択してフィルタ処理回路1へ出力している。
そして、出力回路509が、制御信号に基づいて、いずれかのフィルタ処理回路から出力される現フレーム内のブロックのフィルタ処理後のデータか、前フレーム内のブロックのデータが出力される。具体的には、たとえば、圧縮形式が破棄を示す情報であれば、前フレーム内のブロックのデータが出力回路509から出力される。そして、圧縮形式が破棄を示す情報でなければ、圧縮形式に基づいていずれかのフィルタ処理回路によってフィルタ処理されたフィルタ処理後のデータが、出力回路509から出力される。
(実施の形態4)
つぎに、図6は、実施の形態4にかかる画像処理装置の一例を示す説明図である。画像処理装置600は、分割回路101と、圧縮回路1〜mと、算出回路501と、判断回路502と、選択回路503と、ブロックラインメモリ504と、フレームメモリ505と、判断回路506と、デマルチプレクサ507と、伸張回路1〜mと、選択回路508と、フィルタ処理回路1〜nと、出力回路509と、を備えている。
画像処理装置600は、IIR型フィルタであって、実施の形態3で示した画像処理装置500とは、回路間の接続関係が異なるのみであり各回路の機能は同一である。よって、実施の形態4では、実施の形態3で示した構成と同一構成には同一符号を付し、同一符号が付された構成の説明は省略する。
(実施の形態5)
実施の形態5では、実施の形態1で示した算出回路103と、判断回路104と、判断回路110の各機能をコンピュータによって実現させる例を示す。なお、実施の形態5では、実施の形態1〜4で示した構成と同一構成には同一符号を付し、同一符号が付された機能の説明は省略する。
(画像処理制御装置のハードウェア構成)
図7は、実施の形態5にかかる画像処理制御装置のハードウェア構成の一例を示すブロック図である。図7において、画像処理制御装置は、CPU(Central Processing Unit)701と、ROM(Read‐Only Memory)702と、RAM(Random Access Memory)703と、磁気ディスクドライブ704と、磁気ディスク705と、光ディスクドライブ706と、光ディスク707と、ディスプレイ708と、I/F(Interface)709と、キーボード710と、マウス711と、スキャナ712と、プリンタ713と、画像処理装置715と、フレームメモリ716と、を備えている。また、各構成部はバス700によってそれぞれ接続されている。
ここで、CPU701は、画像処理制御装置の全体の制御を司る。ROM702は、ブートプログラムなどのプログラムを記憶している。RAM703は、CPU701のワークエリアとして使用される。磁気ディスクドライブ704は、CPU701の制御にしたがって磁気ディスク705に対するデータのリード/ライトを制御する。磁気ディスク705は、磁気ディスクドライブ704の制御で書き込まれたデータを記憶する。
光ディスクドライブ706は、CPU701の制御にしたがって光ディスク707に対するデータのリード/ライトを制御する。光ディスク707は、光ディスクドライブ706の制御で書き込まれたデータを記憶したり、光ディスク707に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ708は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ708は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F709は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク714に接続され、このネットワーク714を介して他の装置に接続される。そして、I/F709は、ネットワーク714と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F709には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード710は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス711は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ712は、画像を光学的に読み取り、画像処理制御装置内に画像データを取り込む。なお、スキャナ712は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ713は、画像データや文書データを印刷する。プリンタ713には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
そして、本実施の形態5で説明する画像処理制御装置の制御対象となる画像処理装置715は、分割回路101と、圧縮回路102と、選択回路105と、ブロックラインメモリ106と、伸張回路108と、フィルタ処理回路109と、出力回路111と、を備えている。実施の形態5では、圧縮回路および伸張回路を1種類とし、フィルタ処理回路を1種類として説明するが、これに限らず、実施の形態3および4で示すように複数種類の圧縮回路および伸張回路と、複数種類のフィルタ処理回路を備えてもよい。そして、フレームメモリ716は、1または複数のフレーム内の各ブロックの圧縮データを記憶するメモリであり、具体的には、たとえば、RAMである。なお、フレームメモリ716は、画像処理装置715内に備えてもよい。
(画像処理制御装置の機能的構成)
図8は、画像処理制御装置の機能的構成を示すブロック図である。画像処理制御装置800は、取得部801と、算出部802と、判断部803と、制御部804と、を含む構成である。各機能(取得部801〜判断部804)は、具体的には、たとえば、図7に示したROM702、RAM703、磁気ディスク705、光ディスク707などの記憶装置に記憶されたプログラムをCPU701に実行させることにより、または、I/F709により、各機能を実現する。ここでは、連続するフレーム1とフレーム2を画像処理装置の対象の画像とする。
まず、取得部801は、フレーム1内のブロックのデータが圧縮回路102により圧縮された圧縮データの圧縮率を取得する機能を有する。また、フレーム1内のブロックのデータと、当該データが圧縮回路102により圧縮された圧縮データとを取得する機能を有する。具体的には、たとえば、CPU701が、バス700を介して圧縮データとブロックのデータを取得する。または、圧縮回路102が、CPU701へ圧縮データとブロックのデータとを出力し、CPU701が、圧縮データとブロックのデータを受け付ける。
つぎに、算出部802は、ブロックのデータと、圧縮データに基づいて圧縮率を算出する機能を有する。具体的には、たとえば、CPU701が、圧縮データの容量をブロックのデータの容量で割ることで圧縮率を算出する。なお、算出された圧縮率は、一旦、RAM703、磁気ディスク705、光ディスク707などの記憶装置に記憶される。
そして、判断部803は、算出部802により算出された圧縮率が、指定された閾値以下であるか否かを判断する機能を有する。具体的には、たとえば、CPU701が、圧縮率が目標値以下であるか否かを判断する。
つぎに、制御部804は、判断部803により圧縮率が指定された閾値以下であると判断された場合、圧縮回路102により圧縮された前フレーム内のブロックの圧縮データをフレームメモリ716に出力させる。そして、制御部804は、圧縮率が閾値より大きいと判断された場合、圧縮回路102により圧縮されたフレーム内の圧縮データを破棄させる。
具体的には、たとえば、CPU701が、圧縮率が目標値(指定された閾値)以下であると判断された場合、圧縮回路102により圧縮されたフレーム1内のブロックの圧縮データを選択させる制御信号を選択回路105へ出力する。これにより、選択回路105が、圧縮回路102から出力された圧縮データを選択してフレームメモリへ出力する。そして、たとえば、CPU701が、圧縮率が閾値より大きいと判断された場合、圧縮データの破棄を示す情報を選択させる制御信号を選択回路105へ出力する。これにより、選択回路105が破棄を示す情報を選択してフレームメモリ716へ出力する。
また、判断部803は、フレームメモリ716に記憶されているフレーム内のブロックの情報が破棄を示す情報であるか、圧縮データであるかを判断する機能を有する。
つぎに、制御部804は、判断部803によりフレーム内のブロックの情報が圧縮データであると判断された場合、現フレーム内のブロックのフィルタ処理後のデータを出力回路111に出力させる機能を有する。そして、判断部803によりフレーム内のブロックの情報が破棄を示す情報であると判断された場合、現フレーム内のブロックのデータを出力回路111に出力させる機能を有する。
具体的には、たとえば、CPU701が、フレーム内のブロックの情報が圧縮データであると判断された場合、フレーム2内のブロックのフィルタ処理後のデータを出力させる制御信号を出力回路111へ出力する。また、たとえば、CPU701が、フレーム内のブロックの情報が破棄を示す情報であると判断された場合、フレーム2内のブロックのデータを出力させる制御信号を出力回路111へ出力する。または、たとえば、CPU701が、実施の形態1で示したようにフレームメモリ716から破棄であるか否かを示すフラグを制御信号として出力回路111へ出力してもよい。
また、制御部804は、判断部803によりフレーム内のブロックの情報が圧縮データであると判断された場合、伸張回路108により圧縮データを伸張させ、破棄を示す情報であると判断された場合、破棄を示す情報を伸張回路108に処理させない。具体的には、たとえば、CPU701が、フレームメモリ716に記憶されているフレーム内のブロックの情報を伸張回路108へ受け渡すか否かを制御する。
また、制御部804は、判断部803によりフレーム内のブロックの情報が圧縮データであると判断された場合、前フレーム内のブロックの伸張データを用いて現フレーム内のブロックのデータに対してフィルタ処理回路109によりフィルタ処理を行わせる。そして、制御部804は、判断部803によりフレーム内のブロックの情報が破棄を示す情報であると判断された場合、前フレーム内のブロックの伸張データを用いて現フレーム内のブロックのデータに対してフィルタ処理回路109によりフィルタ処理を行わせない。具体的には、たとえば、CPU701が、伸張回路108から出力されるデータをフィルタ処理回路109へ受け渡すか否かを制御する。
これにより、圧縮率に基づいてブロックの圧縮データをフレームメモリへ記憶させることでフレームメモリの容量を所望の容量に予め設定でき、省メモリ化を図ることができる。つぎに、図9および図10を用いてフレームメモリへの出力を制御する例を説明し、図11および図12を用いて出力回路111を制御する例を説明する。なお、図9〜図12では、FIR型フィルタである画像処理装置715を制御する例を用いて説明する。
図9は、圧縮率が目標値以下である場合のフレームメモリへの出力の一例を示すシーケンス図である。ここでは、取得部801〜制御部804は、CPU701の処理として説明する。そして、制御対象である画像処理装置715は、分割回路101と、圧縮回路102と選択回路105と、ブロックラインメモリ106と、フレームメモリ716と、伸張回路108と、フィルタ処理回路109と、出力回路111とを備えている。まず、フレーム内のラインごとに分割回路101に入力され、分割回路101がブロックに分割してブロックのデータを圧縮回路102へ出力し(ステップS901)、圧縮回路102がブロックのデータを圧縮する。そして、圧縮データとブロックのデータを取得部801が取得する(ステップS902、ステップS903)。
つぎに、取得部801が、取得結果を算出部802に受け渡し(ステップS904)、算出部802が、圧縮データの圧縮率を算出する。そして、算出部802により算出された圧縮率が判断部803へ受け渡され(ステップS905)、判断部803が、圧縮率が指定された閾値以下であるか否かを判断する。ここでは、判断部803により圧縮率が閾値以下であると判断される。そして、判断結果を制御部804に受け渡し(ステップS906)、制御部804が圧縮データを選択させる制御信号を選択回路105へ出力する(ステップS907)。
そして、選択回路105が圧縮データを選択してブロックラインメモリへ出力する(ステップS908)。つぎに、ブロックラインメモリ106が、1ブロックの処理が終了するとフレームメモリ716へ圧縮データを出力する(ステップS909)。なお、ブロックラインメモリ106が、1ブロックラインごとにフレームメモリ716へ出力してもよいし、ブロックラインメモリ106の容量がすべて使用されてから、先に記憶されているブロックの情報を順次フレームメモリ716へ出力してもよい。
図10は、圧縮率が目標値より大きい場合のフレームメモリへの出力の一例を示すシーケンス図である。制御対象の画像処理装置は、図9で説明した画像処理装置と同一である。まず、ステップS1001〜ステップS1005は、それぞれステップS901〜ステップS905と同一処理であるため説明を省略する。そして、判断部803が、圧縮率が指定された閾値以下であるか否かを判断する。図10のシーケンスでは、判断部803により圧縮率が閾値より大きいと判断される。そして、判断結果を制御部804に受け渡し(ステップS1006)、制御部804が破棄を示す情報を選択させる制御信号を選択回路105へ出力する(ステップS1007)。そして、選択回路105が、ブロックラインメモリ106へ破棄を示す情報を出力する(ステップS1008)。つぎに、ブロックラインメモリ106が、1ブロックの処理が終了するとフレームメモリ716へ破棄を示す情報を出力する(ステップS1009)。
図11は、フィルタ処理後のデータが出力される例を示すシーケンス図である。制御対象の画像処理装置は、図9で説明した画像処理装置と同一である。図11で示すシーケンス図では、制御部804が出力回路111を制御し、伸張回路108およびフィルタ処理回路109が制御しない例を示す。なお、上述したように制御部804が、伸張回路108およびフィルタ処理回路109を制御してもよい。
まず、現フレーム内のブロックラインごとに分割回路101に入力され、分割回路101がブロックラインをブロックに分割して現フレームのブロックのデータをフィルタ処理回路109および出力回路111へ出力する(ステップS1101、ステップS1102)。つぎに、フレームメモリ716から現フレームのブロックと同一位置である前フレームのブロックの圧縮データをCPU701および伸張回路108へ出力する(ステップS1103、ステップS1104)。そして、CPU701が、フレームメモリ716からの前フレームのブロックの情報が圧縮データであるか破棄を示す情報であるかを判断部803により、判断する。ここでは、圧縮データであると判断される。そして、CPU701が、判断部803により判断された判断結果に基づいて現フレーム内のブロックのフィルタ処理後のデータを出力させる制御信号を制御部804により出力回路111へ出力する(ステップS1105、ステップS1106)。
そして、伸張回路108が、前フレームのブロックの圧縮データを伸張し、伸張データをフィルタ処理回路109へ出力する(ステップS1107)。つぎに、フィルタ処理回路109が、伸張データを用いて現フレームのブロックのデータに対してフィルタ処理を実行し、フィルタ処理後のデータを出力回路111へ出力する(ステップS1108)。そして、出力回路111が、制御信号に基づいてフィルタ処理後のデータを出力する(ステップS1109)。これにより、現フレーム内の1つのブロックの処理が終了する。
図12は、現フレームのブロックが出力される例を示すシーケンス図である。制御対象の画像処理装置は、図9で説明した画像処理装置と同一である。図12で示すシーケンス図では、制御部804が出力回路111を制御し、伸張回路108およびフィルタ処理回路109が制御しない例を示す。なお、上述したように制御部804が、伸張回路108およびフィルタ処理回路109を制御してもよい。
まず、S1201とS1202の処理は、図11で示したS1101とS1102の処理とそれぞれ同一処理であるため説明を省略する。つぎに、フレームメモリ716から現フレームのブロックと同一位置である前フレームのブロックの破棄を示す情報をCPU701および伸張回路108へ出力する(ステップS1203、ステップS1204)。CPU701が、フレームメモリ716からの前フレームのブロックの情報が圧縮データであるか破棄を示す情報であるかを判断部803により判断する。図12では、破棄を示す情報であると判断される。そして、CPU701が、判断部803により判断された判断結果に基づいて現フレーム内のブロックを出力させる制御信号を制御部804により出力回路111へ出力する(ステップS1205、ステップS1206)。そして、出力回路111が現フレームのブロックのデータを出力する(ステップS1209)。
図12で示すシーケンス図では、制御部804により伸張回路108およびフィルタ処理回路109が制御されない。よって、伸張回路108が、前フレームのブロックの破棄を示す情報を伸張し、意味のないデータをフィルタ処理回路109へ出力する(ステップS1207)。つぎに、フィルタ処理回路109が、意味のないデータを用いて現フレームのブロックのデータに対してフィルタ処理を行い出力回路111へ出力する(ステップS1208)。図12では、フィルタ処理回路109によるフィルタ処理が終了してから出力回路111が、現フレームのブロックのデータを出力しているように示しているが、実際には、フィルタ処理回路109による処理を待たずに現フレームのブロックのデータを出力する。これにより、画像処理装置715による画像処理の高速化を図ることができる。
(画像処理制御装置の制御処理手順)
つぎに、画像処理制御装置の制御処理手順について説明する。ここでは、実施例1〜3を用いて制御処理手順について説明する。実施例1は、図9〜図12で示すブロックごとにブロックの圧縮データの圧縮率が閾値以上であるか否かを判断する例である。実施例2は、圧縮率に変わってビット量を用いて判断し、1フレームごとに目標ビット量を設定し、1フレーム単位で圧縮率を達成させる例である。実施例3では、ブロックラインごとに目標値を達成させる例である。実施例1〜3では、制御対象となる画像処理装置は、分割回路と、圧縮回路と、選択回路と、ブロックラインメモリと、フレームメモリと、伸張回路と、フィルタ処理回路と、出力回路とを備えている。
図13は、画像処理制御装置の制御処理手順の実施例1を示すフローチャートである。実施例1では、画像処理装置が1ブロックのデータを処理する場合の制御処理手順について示す。画像処理制御装置では、圧縮データをフレームメモリへ出力させるか否かの制御とフィルタ処理後のデータを出力させるか否かの制御を行う。前者についての処理手順は、ステップS1301〜ステップS1305で示し、後者についての処理手順は、ステップS1306〜ステップS1309で示す。なお、前者についての処理と後者についての処理は並列に処理されている。
まず、圧縮データをフレームメモリへ出力させるか否かの制御について説明する。取得部801により、現フレームの対象ブロックのデータと圧縮データを取得する(ステップS1301)。そして、算出部802により、対象ブロックのデータと圧縮データに基づいて圧縮データの圧縮率を算出する(ステップS1302)。つぎに、判断部803により、圧縮率が目標値以下であるか否かを判断する(ステップS1303)。圧縮率が目標値以下である場合(ステップS1303:Yes)、制御部804により、圧縮データを出力させる制御を行う(ステップS1304)。一方、圧縮率が目標値より大きい場合(ステップS1303:No)、制御部804により、破棄を示す情報を出力させる制御を行う(ステップS1305)。
つぎに、フィルタ処理後のデータを出力させるか否かの制御について説明する。フレームメモリから現フレームの対象ブロックと同一位置である前フレームのブロックの情報を取得する(ステップS1306)。つぎに、判断部803により、前フレームのブロックの情報が、破棄を示す情報であるか否かを判断する(ステップS1307)。破棄を示す情報であると判断された場合(ステップS1307:Yes)、制御部804により、現フレームの対象ブロックのデータを出力させる制御を行う(ステップS1308)。一方、破棄を示す情報でない(圧縮データである)と判断された場合(ステップS1307:No)、制御部804により、現フレームの対象ブロックのフィルタ処理後のデータを出力させる制御を行う(ステップS1309)。
そして、ステップS1308、ステップS1309、ステップS1304、ステップS1305のつぎに、対象ブロックへの画像処理が終了したか否かを判断する(ステップS1310)。具体的には、対象ブロックへの画像処理が終了したか否かを示す情報を画像処理装置から受け取るまで待機する。よって、対象ブロックへの画像処理が終了していないと判断された場合(ステップS1310:No)、ステップS1310へ戻る。一方、対象ブロックへの画像処理が終了したと判断された場合(ステップS1310:Yes)、一連の処理を終了する。実施例1では、1ブロックについての処理を示したが、対象ブロックの処理が終了すると、次のブロックに対しても同様の処理が実行される。
図14および図15は、画像処理制御装置の制御処理手順の実施例2を示すフローチャートである。実施例2では、圧縮データをフレームメモリへ出力させるか否かの制御について説明し、フィルタ処理後のデータを出力させるか否かの制御については実施例1と同一であるため処理手順の説明を省略する。実施例2では、ブロックの圧縮データの圧縮率でなく圧縮データのビット量を用いて説明する。なお、実施例2では、フレーム内のブロックが、ラスタスキャン順に画像処理装置の処理対象として選択される。
まず、ブロックの目標ビット量1と、ブロックの目標ビット量2を設定し(ステップS1401)、フレームの目標ビット量=ブロックの目標ビット量1×1フレーム内のブロック数を算出する(ステップS1402)。なお、目標ビット量1<ブロックの目標ビット量2である。つぎに、i=1、N=フレームの目標ビット量とし(ステップS1403)、i<=1フレーム内のブロック数であるか否かを判断する(ステップS1404)。そして、i<=1フレーム内のブロック数であると判断された場合(ステップS1404:Yes)、取得部801により、現フレーム内のi番目のブロックのビット量を取得する(ステップS1405)。
つぎに、判断部803により、ビット量がブロックの目標ビット量1以下であるか否かを判断する(ステップS1406)。ビット量がブロックの目標ビット量1より大きいと判断された場合(ステップS1406:No)、図15に移って、ビット量<=ブロックの目標ビット量2であるか否かを判断する(ステップS1407)。そして、ビット量<=ブロックの目標ビット量2であると判断された場合(ステップS1407:Yes)、ビット量−ブロックの目標ビット量1<Nであるか否かを判断する(ステップS1408)。
つぎに、ビット量−ブロックの目標ビット量1<Nであると判断された場合(ステップS1408:Yes)、N=N−(ビット量−ブロックの目標ビット量1)とする(ステップS1409)。
一方、図14のステップS1406において、ビット量<=ブロックの目標ビット量1であると判断された場合(ステップS1406:Yes)、N=N+(ビット量−ブロックの目標ビット量1)とする(ステップS1410)。そして、ステップS1409、またはステップS1410のつぎに、制御部804により、圧縮データを出力させる制御を行う(ステップS1411)。
一方、ステップS1407において、ビット量<=ブロックの目標ビット量2でない場合(ステップS1407:No)、N=N+ブロックの目標ビット量1とする(ステップS1412)。そして、制御部804により、圧縮データの破棄を示す情報を出力させる制御を行う(ステップS1413)。ステップS1408において、ビット量−ブロックの目標ビット量1<Nでないと判断された場合(ステップS1408:No)、ステップS1412へ移行する。
ステップS1411、またはステップS1413のつぎに、i番目のブロックへの画像処理が終了したか否かを判断する(ステップS1414)。終了していないと判断された場合(ステップS1414:No)、ステップS1414へ戻る。終了したと判断された場合(ステップS1414:Yes)、i=i+1とし(ステップS1415)、ステップS1404へ戻る。そして、ステップS1404において、i<=フレーム内のブロック数でないと判断された場合(ステップS1404:No)、一連の処理を終了する。これにより、1フレームに対する画像処理が行われ、次のフレームに対しても同様の処理が行われる。
図16および図17は、画像処理制御装置の制御処理手順の実施例3を示すフローチャートである。実施例3では、圧縮データの圧縮率とビット量とを用いて、圧縮データを破棄するか、フレームメモリへ出力させるかを制御する。まず、図16では、ブロックラインの目標ビット量を設定し(ステップS1601)、i=1、j=1、N=0とする(ステップS1602)。つぎに、i<=1ブロックラインのブロック数であるか否かを判断する(ステップS1603)。
i<=1ブロックラインのブロック数であると判断された場合(ステップS1603:Yes)、取得部801により、対象ブロックライン上のi番目のブロックのデータと、圧縮データと、圧縮データのビット量とを取得する(ステップS1604)。そして、ブロックのデータと圧縮データに基づいて、算出部802により、圧縮率を算出し(ステップS1605)、判断部803により、1ブロックあたりの最大ビット量>=圧縮データのビット量であるか否かを判断する(ステップS1606)。なお、ここでは、圧縮データのビット量を取得しているが、算出部802が圧縮データのビット量を算出してもよい。
1ブロックあたりの最大ビット量>=圧縮データのビット量でないと判断された場合(ステップS1606:No)、制御部804により、破棄を示す情報を出力させる制御を行う(ステップS1607)。一方、1ブロックあたりの最大ビット量>=圧縮データのビット量であると判断された場合(ステップS1606:Yes)、制御部804により、圧縮データを出力させる制御を行う(ステップS1608)。
そして、ブロックの位置情報と、圧縮データのビット量と、圧縮率とを関連付けてリストへ出力し(ステップS1609)、N=N+圧縮データのビット量とする(ステップS1610)。リストは、たとえば、RAM703、磁気ディスク705、光ディスク707などの記憶装置に記憶されている。なお、ブロックの位置情報は、たとえば、対象ブロックライン上で何番目のブロックであるかを示す情報、または単にブロックラインメモリ内の圧縮データが配置されているアドレスである。
ステップS1607、またはステップS1610のつぎに、i番目のブロックに対する画像処理が終了したか否かを判断する(ステップS1611)。i番目のブロックに対する画像処理が終了していないと判断された場合(ステップS1611:No)、ステップS1611へ戻る。一方、i番目のブロックに対する画像処理が終了したと判断された場合(ステップS1611:Yes)、i=i+1とし(ステップS1612)、ステップS1603へ戻る。
一方、ステップS1603において、i<=1ブロックラインのブロック数でないと判断された場合(ステップS1603:No)、図17に移って、判断部803により、リストを圧縮率の低い順に並び替える(ステップS1613)。そして、判断部803により、N>ブロックラインの目標ビット量であるか否かを判断する(ステップS1614)。
N>目標ビット量であると判断された場合(ステップS1614:Yes)、制御部804により、リストのj番目のブロックに対応するブロックラインメモリ内のブロックの圧縮データを、破棄を示す情報に変換する(ステップS1615)。ここでは、CPU701が、ブロックラインメモリへアクセス可能であるとし、ブロックラインメモリから圧縮データを破棄して、破棄であるか否かを示すフラグを、変換してもよい。なお、実施例3でのブロックラインメモリは、FIFOではなく、1ブロックラインの情報を記憶するメモリである。そして、N=N−リストのj番目のブロックのビット量とし(ステップS1616)、j=j+1とし(ステップS1617)、ステップS1614へ戻る。
一方、ステップS1614において、N>目標ビット量でないと判断された場合(ステップS1614:No)、一連の処理を終了する。なお、ブロックラインメモリは、1ブロックラインの処理が終了したためフレームメモリへ1ブロックライン分の情報を出力する。また、図示していないが、算出部802と、判断部803と、制御部804が、画像処理装置にインストールされている場合、画像処理装置100を例に挙げると、算出部802が算出回路103であり、判断部803および制御部804が判断回路104に相当する。
以上説明したように、画像処理装置、および画像処理制御プログラムによれば、前フレーム内のブロックの圧縮率が高い場合、現フレーム内のブロックのフィルタ処理後のデータを出力させる、圧縮率が低い場合、現フレーム内のブロックのデータを出力させる。これにより、画像処理の高速化を図ることができる。
さらに、圧縮方法によっては、画素の濃淡が平坦であることと圧縮率の高さとに相関があるため、圧縮率が高いブロックのみに対してフィルタ処理を行うことで、ノイズの目立ち易い平坦なブロックに対してフィルタ処理を行うことができる。したがって、利用者が、フレーム内で特にフィルタ処理を実施させたいブロック(たとえば、平坦なブロック)と相関のある圧縮方法を用いて圧縮することで、フィルタ処理を実施させたいブロックを圧縮率に基づいて自動で選択することができる。
また、前フレーム内のブロックの圧縮データの圧縮率が高い場合、フレームメモリへ圧縮データを記憶させ、圧縮率が低い場合、圧縮データを破棄させる。これにより、利用者が、フレームメモリの容量を所望の容量に予め決定することができ、省メモリ化を図ることができる。
また、前フレーム内のブロックの圧縮率が高い場合、前フレーム内の圧縮データを伸張させ、圧縮率が低い場合、前フレーム内の圧縮データを伸張させないことにより、画像処理の高速化を図ることができる。
また、前フレーム内のブロックの圧縮率が高い場合、前フレーム内の圧縮データが伸張された伸張データを用いて現フレーム内のブロックのデータに対してフィルタ処理を実施させ、圧縮率が低い場合、フィルタ処理を実施させないことにより、画像処理の高速化を図ることができる。
以上説明したように、画像処理装置、および画像処理制御プログラムによれば、前フレーム内のブロック群のうち、一のブロックの圧縮率が他のブロックの圧縮率よりも高い場合、現フレーム内の一のブロックのフィルタ処理後のデータを出力させる。一方、圧縮率が低い場合、現フレーム内の一のブロックのデータを出力させる。これにより、複数のブロックのうち、圧縮率が高いブロックのみにフィルタ処理を実施することができ、画像処理の高速化を図ることができる。
さらに、圧縮方法によっては、画素の濃淡が平坦であることと圧縮率の高さとに相関があるため、圧縮率が高いブロックのみに対してフィルタ処理を行うことで、ノイズの目立ち易い平坦なブロックに対してフィルタ処理を行うことができる。したがって、利用者が、フレーム内で特にフィルタ処理を実施させたいブロック(たとえば、平坦なブロック)と相関のある圧縮方法を用いて圧縮することで、フィルタ処理を実施させたいブロックを圧縮率に基づいて自動で選択することができる。
なお、実施の形態5で説明した画像処理制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本画像処理制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本画像処理制御プログラムは、インターネット等のネットワークを介して配布してもよい。
また、実施の形態5で説明した画像処理制御装置800は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した画像処理制御装置800の機能(取得部801〜制御部804)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、画像処理制御装置800を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)フレーム内のブロックのデータを出力する出力手段と、
前記フレーム内のブロックのデータを圧縮し、圧縮データをフレームメモリへ出力する圧縮手段と、
前記圧縮手段により前記フレームメモリに記憶された圧縮データを伸張する伸張手段と、
前記伸張手段により伸張された前フレーム内のブロックの伸張データと、前記前フレーム内のブロックに対応する現フレーム内のブロックのデータとを入力して、前記現フレーム内のブロックのデータのフィルタ処理を行うフィルタ処理手段と、
前記圧縮データの圧縮率を取得する取得手段と、
前記取得手段により取得された圧縮率が指定された閾値以下であるか否かを判断する判断手段と、
前記判断手段により前記圧縮率が閾値以下であると判断された場合、前記現フレーム内のブロックのデータのかわりに前記フィルタ処理手段によりフィルタ処理されたフィルタ処理後のデータを前記出力手段に出力させる制御手段と、
を備えることを特徴とする画像処理装置。
(付記2)少なくとも1フレーム分のフレームメモリの容量は、圧縮前の1ブロックの最大容量と、前記閾値と、前記1フレーム内のブロックの総数とを掛け合わせた値であって、
前記制御手段は、
前記判断手段により前記圧縮率が閾値以下であると判断された場合、前記圧縮手段により圧縮された前記前フレーム内のブロックの圧縮データを前記フレームメモリに出力させ、前記圧縮率が閾値より大きいと判断された場合、前記圧縮手段により圧縮された前記フレーム内のブロックの圧縮データを破棄させることを特徴とする付記1に記載の画像処理装置。
(付記3)前記制御手段は、
前記判断手段により前記圧縮率が前記閾値以下であると判断された場合、前記伸張手段により前記フレームメモリに記憶されている圧縮データを伸張させ、前記判断手段により前記圧縮率が前記閾値より大きいと判断された場合、前記伸張手段により前記圧縮データを伸張させないことを特徴とする付記1または2に記載の画像処理装置。
(付記4)前記制御手段は、
前記判断手段により前記圧縮率が閾値以下であると判断された場合、前記フィルタ処理手段により前記前フレーム内のブロックの伸張データを用いて前記現フレーム内のブロックに対してフィルタ処理を行わせ、前記判断手段により前記圧縮率が前記閾値より大きいと判断された場合、前記フィルタ処理手段により前記現フレーム内のブロックに対してフィルタ処理を行わせないことを特徴とする付記1〜3のいずれか1つに記載の画像処理装置。
(付記5)フレーム内のブロックのデータを出力する出力手段と、
前記フレーム内のブロックのデータを圧縮し、圧縮データをフレームメモリへ出力する圧縮手段と、
前記圧縮手段により前記フレームメモリに記憶された圧縮データを伸張する伸張手段と、
前記伸張手段により伸張された前フレーム内のブロックの伸張データと、前記前フレーム内のブロックに対応する現フレーム内のブロックのデータとを入力して、前記現フレーム内のブロックのデータのフィルタ処理を行うフィルタ処理手段と、を備える画像処理装置を制御するコンピュータを、
前記圧縮データの圧縮率を取得する取得手段、
前記取得手段により取得された圧縮率が指定された閾値以下であるか否かを判断する判断手段、
前記判断手段により前記圧縮率が閾値以下であると判断された場合、前記現フレーム内のブロックのデータのかわりに前記フィルタ処理手段によりフィルタ処理されたフィルタ処理後のデータを前記出力手段に出力させる制御手段、
として機能させることを特徴とする画像処理制御プログラム。
(付記6)フレーム内のブロックのデータを出力する出力手段と、
前記フレーム内のブロックのデータを圧縮し、圧縮データをフレームメモリへ出力する圧縮手段と、
前記圧縮手段により前記フレームメモリに記憶された圧縮データを伸張する伸張手段と、
前記伸張手段により伸張された前フレーム内のブロックの伸張データと、前記前フレーム内のブロックに対応する現フレーム内のブロックのデータとを入力して、前記現フレーム内のブロックのデータのフィルタ処理を行うフィルタ処理手段と、
前記前フレーム内のブロック群に含まれるブロックの圧縮データの圧縮率を取得する取得手段と、
前記取得手段により取得された前記ブロック群に含まれる一のブロックの圧縮データの圧縮率が、前記取得手段により取得された前記ブロック群に含まれる他のブロックの圧縮データの圧縮率以下であるか否かを判断する判断手段と、
前記判断手段により判断された前記一のブロックの圧縮データの圧縮率が前記他のブロックの圧縮データの圧縮率以下であると判断された場合、前記現フレーム内の前記一のブロックのデータのかわりに前記フィルタ処理手段によりフィルタ処理されたフィルタ処理後の一のブロックのデータを前記出力手段に出力させる制御手段と、
を備えることを特徴とする画像処理装置。
(付記7)フレーム内のブロックのデータを出力する出力手段と、
前記フレーム内のブロックのデータを圧縮し、圧縮データをフレームメモリへ出力する圧縮手段と、
前記圧縮手段により前記フレームメモリに記憶された圧縮データを伸張する伸張手段と、
前記伸張手段により伸張された前フレーム内のブロックの伸張データと、前記前フレーム内のブロックに対応する現フレーム内のブロックのデータとを入力して、前記現フレーム内のブロックのデータのフィルタ処理を行うフィルタ処理手段と、を備える画像処理装置を制御するコンピュータを、
前記前フレーム内のブロック群に含まれるブロックの圧縮データの圧縮率を取得する取得手段、
前記取得手段により取得された前記ブロック群に含まれる一のブロックの圧縮データの圧縮率が、前記取得手段により取得された前記ブロック群に含まれる他のブロックの圧縮データの圧縮率以下であるか否かを判断する判断手段、
前記判断手段により判断された前記一のブロックの圧縮データの圧縮率が前記他のブロックの圧縮データの圧縮率以下であると判断された場合、前記現フレーム内の前記一のブロックのデータのかわりに前記フィルタ処理手段によりフィルタ処理されたフィルタ処理後の一のブロックのデータを前記出力手段に出力させる制御手段、
として機能させることを特徴とする画像処理制御プログラム。