(57)【要約】【課題】  ストリーム画像のフィルタ処理においてデータメモリを最大限に使用することができ、ストリーム画像数、ビット深度の変化に柔軟に対応するための技術を提供すること。【解決手段】  入力画像を画素ブロックに分割し、画素ブロック内の各画素に対する垂直フィルタ処理を行う。画素ブロックの右端部近傍に対する垂直フィルタ処理結果を、メモリが保持可能なデータのビット幅に応じた単位でパッキングして該メモリに格納し、画素ブロック内の各画素に対する水平フィルタ処理を行う。着目画素ブロックの左端部における水平フィルタ処理を行う際、該着目画素ブロックの左側に隣接する画素ブロックについてメモリに格納したパッキング結果をアンパッキングする。そしてアンパッキングにより得られる垂直フィルタ処理結果を用いて上記左端部における水平フィルタ処理を行う。【選択図】  図１
2017111510.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を複数の画素ブロックに分割する分割手段と、
前記画素ブロック内の各画素に対する垂直フィルタ処理を行う第１の処理手段と、
前記画素ブロックの右端部近傍に対する垂直フィルタ処理結果を、メモリが保持可能なデータのビット幅に応じた単位でパッキングして該メモリに格納するパッキング手段と、
前記画素ブロック内の各画素に対する水平フィルタ処理を行う第２の処理手段と
を備え、
前記第２の処理手段は、着目画素ブロックの左端部における水平フィルタ処理を行う際、該着目画素ブロックの左側に隣接する隣接画素ブロックについて前記パッキング手段が前記メモリに格納したパッキング結果をアンパッキングし、該アンパッキングにより得られる垂直フィルタ処理結果を用いて、前記左端部における水平フィルタ処理を行う
ことを特徴とする画像処理装置。
【請求項２】
前記パッキング手段は、
複数ラインに跨った、前記画素ブロックの右端画素から左端方向にＰ（Ｐは１以上の整数）画素だけ離間した画素に対する垂直フィルタ処理結果、を前記単位でパッキングして前記メモリに格納し、
前記右端画素から左端方向に（Ｐ−１）画素だけ離間した画素から該画素ブロックの右端画素までのそれぞれの画素に対する垂直フィルタ処理結果を前記単位でパッキングして前記メモリに格納する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記パッキング手段は、
前記画素ブロックの右端画素から左端方向に（Ｐ−１）画素だけ離間した画素から該右端画素までのそれぞれの画素に対する垂直フィルタ処理結果を可逆符号化し、該可逆符号化の結果を前記単位でパッキングして前記メモリに格納し、
前記第２の処理手段は、前記着目画素ブロックの左端部における水平フィルタ処理を行う際、前記隣接画素ブロックについて前記パッキング手段が前記メモリに格納したパッキング結果をアンパッキングし、該アンパッキングにより得られる可逆符号化された垂直フィルタ処理結果を復号し、該復号により得られる垂直フィルタ処理結果を用いて、前記左端部における水平フィルタ処理を行う
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記入力画像は、複数のストリーム画像のそれぞれであることを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記複数のストリーム画像のそれぞれのビット深度は同じであることを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記複数のストリーム画像のそれぞれのビット深度は異なることを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項７】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の分割手段が、入力画像を複数の画素ブロックに分割する分割工程と、
前記画像処理装置の第１の処理手段が、前記画素ブロック内の各画素に対する垂直フィルタ処理を行う第１の処理工程と、
前記画像処理装置のパッキング手段が、前記画素ブロックの右端部近傍に対する垂直フィルタ処理結果を、メモリが保持可能なデータのビット幅に応じた単位でパッキングして該メモリに格納するパッキング工程と、
前記画像処理装置の第２の処理手段が、前記画素ブロック内の各画素に対する水平フィルタ処理を行う第２の処理工程と
を備え、
前記第２の処理工程では、着目画素ブロックの左端部における水平フィルタ処理を行う際、該着目画素ブロックの左側に隣接する隣接画素ブロックについて前記パッキング工程で前記メモリに格納したパッキング結果をアンパッキングし、該アンパッキングにより得られる垂直フィルタ処理結果を用いて、前記左端部における水平フィルタ処理を行う
ことを特徴とする画像処理方法。
【請求項８】
コンピュータを、請求項１乃至６の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像に対するフィルタ処理技術に関するものである。
【背景技術】
【０００２】
近年のデータ通信量の拡大に伴い、デジタル機器が画像サイズやビット深度の異なる複数ストリーム画像を同時に利用することが可能となってきた。リアルタイム性が求められるストリーム画像の画像処理は、専用のハードウェアによって実現されることが一般的である。また、複数ストリーム画像に対して共通画像処理を施す場合は、画像毎にハードウェアを使用する時間を区切ることで、一つのハードウェアを効率良く使用する時分割多重処理が行われることがある。共通画像処理の例としては、平均フィルタ処理やエッジ抽出フィルタ処理などの基本的なフィルタ処理などが挙げられる。
【０００３】
これらのフィルタ処理の課題として、画像をタイル状や短冊状などの領域に分割して処理する場合の境界処理の負荷増加がある。フィルタ処理は、注目画素を含む近傍画素を用いて演算することで処理結果を得るため、分割領域境界では隣接領域の画素データが必要となる。このため、隣接領域の画素データを新たなデータ通信や予め保持しておくことで取得し、取得したデータに対して領域内部の処理と同等の処理を施すための追加処理が必要となる。
【０００４】
これに対し、特許文献１では、隣接する２つのブロックの境界周辺画素を読み出す回数を削減する技術が開示されている。この技術では、レジスタ値として隣接ブロックの代表値を保持し、隣接ブロックの境界画素がレジスタ値と同値の場合は、隣接ブロックで必要となる画素データを読み込まず、レジスタ値を使って処理する。特許文献２では、フィルタ処理を垂直フィルタ処理と水平フィルタ処理とに分割し、垂直フィルタ処理部の結果を画像メモリに格納し、必要に応じて画像メモリに格納された垂直フィルタ処理結果を読み出して、水平フィルタ処理を施す技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−６８０８５号公報
【特許文献２】特開２００２−３０４６２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１で開示された技術では、画像データに依存してデータ通信量が変動してしまうため、リアルタイム性が必要なストリーム画像の処理には向かない。特許文献２で開示された技術により複数ストリーム画像を処理する場合、ストリーム毎に専用のメモリを用意する方法と、ストリーム画像のうち最大ビット深度に合わせたビット幅を有し、ストリーム数分の記憶領域を持つメモリを用意する方法とが考えられる。しかしながら、想定される最大ストリーム数以下、もしくは最大ビット深度以下の複数ストリーム画像を処理する場合、データメモリの使用効率は低下してしまう。
【０００７】
本発明はこのような問題に鑑みてなされたものであり、ストリーム画像のフィルタ処理においてデータメモリを最大限に使用することができ、ストリーム画像数、ビット深度の変化に柔軟に対応するための技術を提供する。
【課題を解決するための手段】
【０００８】
本発明の一様態は、入力画像を複数の画素ブロックに分割する分割手段と、前記画素ブロック内の各画素に対する垂直フィルタ処理を行う第１の処理手段と、前記画素ブロックの右端部近傍に対する垂直フィルタ処理結果を、メモリが保持可能なデータのビット幅に応じた単位でパッキングして該メモリに格納するパッキング手段と、前記画素ブロック内の各画素に対する水平フィルタ処理を行う第２の処理手段とを備え、前記第２の処理手段は、着目画素ブロックの左端部における水平フィルタ処理を行う際、該着目画素ブロックの左側に隣接する隣接画素ブロックについて前記パッキング手段が前記メモリに格納したパッキング結果をアンパッキングし、該アンパッキングにより得られる垂直フィルタ処理結果を用いて、前記左端部における水平フィルタ処理を行うことを特徴とする。
【発明の効果】
【０００９】
本発明の構成によれば、ストリーム画像のフィルタ処理においてデータメモリを最大限に使用することができ、ストリーム画像数、ビット深度の変化に柔軟に対応することができる。
【図面の簡単な説明】
【００１０】
【図１】（ａ）は画像処理装置、（ｂ）はコンピュータ装置の構成例を示すブロック図。
【図２】画像入力部１００の動作を説明する図。
【図３】垂直フィルタ処理部１０１の動作を説明する図。
【図４】データ整形部１０２の動作を説明する図。
【図５】データ整形部１０２の動作を説明する図。
【図６】データメモリのメモリマップを示す図。
【図７】水平フィルタ処理部１０５の動作を説明する図。
【図８】垂直フィルタ処理部１０１の動作を説明する図。
【図９】データ整形部１０２の動作を説明する図。
【図１０】データメモリのメモリマップを示す図。
【図１１】（ａ）は水平フィルタ処理部１０５、（ｂ）はデータ整形部１０２の動作の説明図。
【図１２】タイル画像単位のフィルタ処理のフローチャート。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１２】
［第１の実施形態］
以下では、次のような画像処理装置の一例について説明する。この画像処理装置は、入力画像を複数の画素ブロックに分割し、該画素ブロック内の各画素に対する垂直フィルタ処理（第１の処理）を行う。そして画像処理装置は、画素ブロックの右端部近傍に対する垂直フィルタ処理結果を、メモリが保持可能なデータのビット幅に応じた単位でパッキングして該メモリに格納し、該画素ブロック内の各画素に対する水平フィルタ処理を行う（第２の処理）。この第２の処理では、着目画素ブロックの左端部における水平フィルタ処理を行う際、先ず、該着目画素ブロックの左側に隣接する隣接画素ブロックについてメモリに格納したパッキング結果をアンパッキングする。そして、該アンパッキングにより得られる垂直フィルタ処理結果を用いて、該左端部における水平フィルタ処理を行う。
【００１３】
以下では、一例として、ビット深度が１０ビットのストリーム画像を画素ブロック（タイル画像）単位でフィルタ処理する場合に、４０ビットのデータメモリを使用して、タイル画像の境界を処理する例を説明する。
【００１４】
先ず、本実施形態に係る画像処理装置の機能構成例について、図１（ａ）のブロック図を用いて説明する。図１（ａ）に示した構成は、画像処理装置の全体構成であっても良いし、一部の構成であっても良い。
【００１５】
画像入力部１００は、入力されたストリーム画像をタイル画像単位で分割し、分割したそれぞれのタイル画像を時系列に後段の機能部に転送する。画像入力部１００の動作について、図２を用いて説明する。
【００１６】
図２では、５枚のストリーム画像（それぞれ画像ＩＤ＝１，２，３，４，５のストリーム画像）のそれぞれをタイル画像単位で分割し、それぞれのストリーム画像のタイル画像を画素単位で切り替え、切り替えたタイル画像の画素（画素データ）を出力している。例えば図２の右側に示す如く、画像ＩＤ＝１のストリーム画像のタイルにおける１画素を出力し、次に画像ＩＤ＝２のストリーム画像のタイル画像における同位置の画素を出力し、…、画像ＩＤ＝５のストリーム画像のタイル画像における同位置の画素を出力する。そして画素位置を１画素ずらして、また画像ＩＤ＝１のストリーム画像のタイル画像から順に該画素位置における画素を出力する。
【００１７】
なお、画像入力部１００は、出力する画素に、該画素の所属するストリーム画像の画像ＩＤを識別番号として添付してから出力する。これにより、時分割の単位が処理途中で変わる場合であっても、後段の機能部において、入力された画素がどのストリーム画像に属する画素であるのかを特定することができる。なお、時分割の単位を処理途中で変更することなくストリーム画像の順番が一定である場合には、画素に識別番号を添付する必要はない。この場合、後段の機能部が受け取った画素の数をカウントすることで、該カウントした値から該画素がどのストリーム画像に属する画素であるのかを識別することができる。なお、画像ＩＤは画像に固有の情報である識別情報の一例であり、画像ＩＤ以外を識別情報として用いても構わない。
【００１８】
垂直フィルタ処理部１０１は、ストリーム画像毎に異なるラインメモリを有しており、垂直方向に必要な画素が揃った時点で垂直フィルタ処理を実施する。ここでは一例として、縦５画素の垂直積分フィルタ処理を実施するため、垂直方向に連続する５画素の画素値の総和を算出する。然るにラインメモリは、縦５画素分を保持可能なラインメモリである必要があり、該ラインメモリに縦５画素分の画素が揃った時点で垂直フィルタ処理を実施する。
【００１９】
垂直フィルタ処理部１０１の動作について、図３を用いて説明する。垂直フィルタ処理部１０１に入力された画素３００はラインメモリ３０１に書き込まれるともに、垂直データレジスタ３０２に保持される。また、画素３００と同列の画素であって該画素３００よりも先にラインメモリ３０１に書き込まれた４画素（図３において楕円で囲った４画素）がラインメモリ３０１から読み出され、垂直データレジスタ３０２に保持される。垂直データレジスタ３０２に垂直方向５画素分の画素が揃うと、加算器３０３は該５画素の画素値を用いて垂直積分フィルタ処理を行う。ここで、上記の通り、各画素のビット深度は１０ビットであるから、垂直方向５画素分の総和は高々１３ビットである。従って、加算器３０３からは１３ビットの垂直フィルタ処理結果が出力される。
【００２０】
なお、ラインメモリ３０１の幅はタイル幅ではなくストリーム画像幅であるため、ストリーム画像右端のタイル処理が終了した時点で、次の１タイル下のフィルタ処理に必要な画素がラインメモリ３０１に保持された状態になる。
【００２１】
データ整形部１０２は、垂直フィルタ処理部１０１から出力される垂直フィルタ処理結果のうちタイル画像の右端近傍における垂直フィルタ処理結果を、データメモリが保持可能なビット幅に合せて整形してから該データメモリに格納する。
【００２２】
図４は、画像入力部１００に画像ＩＤ＝１のストリーム画像のみが入力される場合におけるデータ整形部１０２の動作を説明する図である。図４の左側には、画像ＩＤ＝１のストリーム画像における１つのタイル画像が示されている。また、図４の右側においては下方向に時間軸をとっている。
【００２３】
４００〜４０２はそれぞれ、タイル画像の右端画素位置から３〜１画素分左側に移動した画素位置（タイル画像上の最上位ラインを１ライン目としたときの５ライン目）の画素に対する垂直フィルタ処理結果を示している。４０３は、タイル画像の右端画素位置（タイル画像上の最上位ラインを１ライン目としたときの５ライン目）の画素に対する垂直フィルタ処理結果を示している。４０４〜４０６はそれぞれ、タイル画像の右端画素位置から３〜１画素分左側に移動した画素位置（タイル画像上の最上位ラインを１ライン目としたときの６ライン目）の画素に対する垂直フィルタ処理結果を示している。４０７は、タイル画像の右端画素位置（タイル画像上の最上位ラインを１ライン目としたときの６ライン目）の画素に対する垂直フィルタ処理結果を示している。
【００２４】
これらの垂直フィルタ処理結果４００〜４０７を例にとり説明すると、これらの垂直フィルタ処理結果４００〜４０７のうち先ず垂直フィルタ処理結果４００が垂直フィルタ処理部１０１から出力される。データ整形部１０２は、垂直フィルタ処理結果４００を受けると、図４の右側に示す如く、該垂直フィルタ処理結果４００を、４０ビット幅を有する整形データバッファ４１１に格納する。整形データバッファ４１１は、同列の画素に対する垂直フィルタ処理結果を保持（整形）するためのバッファである。上記の通り、垂直フィルタ処理結果は高々１３ビットであるため、整形データバッファ４１１には最大３画素分の垂直フィルタ処理結果が保持されうる。
【００２５】
次に、垂直フィルタ処理結果４０１が垂直フィルタ処理部１０１から出力される。然るに、データ整形部１０２は、垂直フィルタ処理結果４０１を受けると、図４の右側に示す如く、該垂直フィルタ処理結果４０１を、４０ビット幅を有する整形データバッファ４１０に格納する。整形データバッファ４１０は、同一ラインの画素に対する垂直フィルタ処理結果を保持（整形）するためのバッファである。上記の通り、垂直フィルタ処理結果は高々１３ビットであるため、整形データバッファ４１０には最大３画素分の垂直フィルタ処理結果が保持されうる。次に、垂直フィルタ処理結果４０２、４０３が順次垂直フィルタ処理部１０１から出力されるので、データ整形部１０２は図４の右側に示す如く、該垂直フィルタ処理結果４０２、４０３のそれぞれを整形データバッファ４１０に格納する。
【００２６】
そしてデータ整形部１０２は整形データバッファ４１０に３画素分の垂直フィルタ処理結果（タイル画像の右端画素及び該右端画素から左側に連続する２画素の計３画素の垂直フィルタ処理結果）が保持されると、これらをパッキングして整形データを生成する。上から４段目の整形データバッファ４１０において点線で囲った３画素分の垂直フィルタ処理結果が整形データである。
【００２７】
そして更に、図４の左側に示す如く、データ整形部１０２は垂直フィルタ処理結果４０４〜４０７を受けると、垂直フィルタ処理結果４０４は整形データバッファ４１１に格納し、垂直フィルタ処理結果４０５〜４０７は整形データバッファ４１０に格納する。そしてデータ整形部１０２は、整形データバッファ４１０に３画素分の垂直フィルタ処理結果４０５〜４０７が保持されると、これらをパッキングして整形データを生成する。上から８段目の整形データバッファ４１０において点線で囲った３画素分の垂直フィルタ処理結果が整形データである。更にデータ整形部１０２は、整形データバッファ４１１に２画素分の垂直フィルタ処理結果（タイル画像の右端画素から左側に３画素分移動した画素位置における画素の垂直フィルタ処理結果）が保持されると、これらをパッキングして整形データを生成する。上から５段目の整形データバッファ４１１において点線で囲った２画素分の垂直フィルタ処理結果が整形データである。
【００２８】
即ち、データ整形部１０２は、複数ラインに跨った、タイル画像の右端画素から左端方向にＰ（Ｐは１以上の整数）画素だけ離間した画素に対する垂直フィルタ処理結果、をメモリが保持可能なデータのビット幅に応じた単位でパッキングしてメモリに格納する。またデータ整形部１０２は、該右端画素から左端方向に（Ｐ−１）画素だけ離間した画素から該タイル画像の右端画素までのそれぞれの画素に対する垂直フィルタ処理結果を該単位でパッキングしてメモリに格納する。
【００２９】
データ整形部１０２は、整形データバッファ４１０及び４１１のそれぞれにおいて整形データが完成すると、その旨を整形データ入出力部１０３に通知する。なお、データ整形部１０２が該通知を行う代わりに、整形データ入出力部１０３が、整形データバッファ４１０及び４１１に格納されている垂直フィルタ処理結果をカウントし、それぞれ３，２となった場合に、整形データが完成したと判断しても良い。
【００３０】
図５は、画像入力部１００に画像ＩＤ＝１〜５のストリーム画像が順次入力される場合におけるデータ整形部１０２の動作を説明する図である。図５の左側には、画像ＩＤ＝１〜５のストリーム画像における１つのタイル画像が示されている。４００〜４０３は何れも、図４に示したものと同じであり、参照番号は画像ＩＤ＝１〜５のストリーム画像で共通にしている。
【００３１】
この場合、整形データバッファ４１０及び４１１のセットは、ストリーム画像の数、即ち５セット必要となる。図５では右側に示す如く、画像ＩＤ＝１〜５のストリーム画像のそれぞれに対する整形データバッファのセット（それぞれ、４１０及び４１１、４１２及び４１３、４１４及び４１５、４１６及び４１７、４１８及び４１９）が設けられている。
【００３２】
先ず画像ＩＤ＝１のストリーム画像のタイル画像における垂直フィルタ処理結果４００が垂直フィルタ処理部１０１から出力される。データ整形部１０２は、図５の右側に示す如く、画像ＩＤ＝１のストリーム画像のタイル画像における垂直フィルタ処理結果４００を整形データバッファ４１１に格納する。この時点で整形データバッファ４１０には未だ何も格納されていない。次に、画像ＩＤ＝２〜５のストリーム画像のタイル画像における垂直フィルタ処理結果４００が垂直フィルタ処理部１０１から順次出力される。然るにデータ整形部１０２は、図５の右側に示す如く、画像ＩＤ＝２〜５のストリーム画像のタイル画像における垂直フィルタ処理結果４００をそれぞれ、整形データバッファ４１３，４１５，４１７，４１９に格納する。この時点で整形データバッファ４１２，４１４，４１６，４１８には未だ何も格納されていない。
【００３３】
次に、画像ＩＤ＝１〜５のストリーム画像のタイル画像における垂直フィルタ処理結果４０１が垂直フィルタ処理部１０１から順次出力される。然るにデータ整形部１０２は、図５の右側に示す如く、画像ＩＤ＝１〜５のストリーム画像のタイル画像における垂直フィルタ処理結果４０１をそれぞれ、整形データバッファ４１０，４１２，４１４，４１６，４１８に格納する。画像ＩＤ＝１〜５のストリーム画像のタイル画像における垂直フィルタ処理結果４０２が垂直フィルタ処理部１０１から順次出力された場合も、図５の右側に示す如く、データ整形部１０２は同様に動作する。
【００３４】
そして次に、画像ＩＤ＝１〜５のストリーム画像のタイル画像における垂直フィルタ処理結果４０３が垂直フィルタ処理部１０１から順次出力される。然るにデータ整形部１０２は、図５の右側に示す如く、画像ＩＤ＝１〜５のストリーム画像のタイル画像における垂直フィルタ処理結果４０３をそれぞれ、整形データバッファ４１０，４１２，４１４，４１６，４１８に格納する。この時点で、整形データバッファ４１０，４１２，４１４，４１６，４１８のそれぞれには、３画素分の垂直フィルタ処理結果が格納されている。然るにデータ整形部１０２は、整形データバッファ４１０，４１２，４１４，４１６，４１８のそれぞれにおいて、３画素分の垂直フィルタ処理結果をパッキングして整形データを生成する。
【００３５】
このようなデータ整形部１０２の動作は、画像入力部１００に画像ＩＤ＝１〜ＩＭＤ（ＩＭＤは２以上の任意の整数）のストリーム画像が順次入力される場合であっても同様に適用することができる。
【００３６】
整形データ入出力部１０３は、データ整形部１０２によって整形データバッファ上に形成された整形データをデータメモリに書き込む書き込み処理や、タイル画像の左端を処理する際に必要となる整形データを該データメモリから読み出す読み出し処理を行う。画像入力部１００に画像ＩＤ＝１のストリーム画像のみが入力される場合におけるデータメモリのメモリマップを図６（ａ）に示す。画像入力部１００に画像ＩＤ＝１〜５のストリーム画像が順次入力される場合におけるデータメモリのメモリマップを図６（ｂ）に示す。
【００３７】
整形データ入出力部１０３では、ストリーム画像毎の記憶領域の先頭アドレスとなるＯＦＳ（オフセットアドレス）を計算し、識別番号をもとにストリーム画像毎の記憶領域に該ストリーム画像について生成した整形データを書き込む。画像ＩＤ＝Ｉのストリーム画像の記憶領域の先頭アドレスは、「データメモリの先頭アドレス（０ｘ０）＋（記憶領域のサイズ）×（Ｉ−１）」となる。（記憶領域のサイズ）とは、タイル画像の縦の画素数をＨとすると、（Ｈ＋Ｈ／２）となる。縦の画素数がＨのタイル画像から、タイル画像の右端画素及びこれに連続する左側の２画素の垂直フィルタ処理結果の整形データがＨ個、該タイル画像の右端画素から左側に３画素分移動した位置の画素の垂直フィルタ処理結果の整形データがＨ／２個生成される。然るに、１つの整形データに１つの記憶領域を割り当てた場合、１つのストリーム画像に対する記憶領域は、（Ｈ＋Ｈ／２）個の記憶領域から成る。
【００３８】
また、ストリーム画像の記憶領域の先頭アドレスは上記のように画像ＩＤを特定すれば求められるので、データメモリから任意の画像ＩＤのストリーム画像の整形データを読み出すこともできる。
【００３９】
なお、同時に処理する画像数を５と場合に比べ、同時に処理する画像数を１とした場合は５倍のタイル高さまで処理可能となる。画像入力部１００において、同時に処理する画像数に応じてタイル高さを増減させることで、オーバーヘッドの少ないデータ通信により効率の良い画像データ取得ができる。更に、他の画像処理（例えば、認識処理や符号化処理など）でより高精度・高効率の処理が可能となる。尚、タイル幅については、制限なく大きくすることが可能である。
【００４０】
なお、整形データバッファからデータが読み出された後は、データ整形部１０２若しくは整形データ入出力部１０３によって整形データバッファ内のデータを削除（クリア）する。なお、クリアせずに整形データバッファにデータを上書きするようにしても良い。
【００４１】
データ復元部１０４は、整形データ入出力部１０３がデータメモリから読み出した整形データから垂直フィルタ処理結果を復元（アンパッキング）し、該復元した垂直フィルタ処理結果を水平フィルタ処理部１０５に供給する。整形データから垂直フィルタ処理結果を復元する工程は、データ整形部１０２による処理過程を逆順に行えばよく、整形データをアンパッキングすることで垂直フィルタ処理結果を復元することができる。
【００４２】
なお、データ整形部１０２で生成したタイル右端画素から３画素左の画素位置の整形データは、複数ライン（ここでは２ライン）に跨って垂直フィルタ処理結果が整形されている。整形データ入出力部１０３及びデータ復元部１０４において、１ラインに連続する垂直フィルタ処理結果を復元するために、データメモリから複数ラインに跨った整形データを複数回読みだして必要な画素の垂直フィルタ処理結果を復元してもよい。また、データメモリからの読み出しは一度だけとしてデータ復元部１０４内で保持しておくことで、必要な画素の垂直フィルタ処理結果を復元してもよい。
【００４３】
水平フィルタ処理部１０５は、垂直フィルタ処理部１０１から得られた垂直フィルタ処理結果、もしくは、データ復元部１０４から得られた隣接タイル画像の垂直フィルタ処理結果を用いて、水平フィルタ処理を実施する。
【００４４】
本実施形態では、横５画素の水平積分フィルタ処理を実施するため、水平方向に５画素分の垂直フィルタ処理結果の総和を算出する。水平フィルタ処理部１０５の動作について図７を用いて説明する。
【００４５】
まず、着目タイル画像（図７の右側のタイル画像）の左端画素を処理する場合の動作について説明する。着目タイル画像の左端画素を処理するためには、先ず、データ復元部１０４から得られた４画素分の垂直フィルタ処理結果７０１を、水平データレジスタ７０２に格納する。ここで、垂直フィルタ処理結果７０１は、着目タイル画像の左側に隣接するタイル画像（図７の左側のタイル画像）において該左端画素と同ラインについての垂直フィルタ処理結果である。また、垂直フィルタ処理部１０１から得られた、着目タイル画像の左端画素の垂直フィルタ処理結果７００を水平データレジスタ７０２に格納する。水平データレジスタ７０２に水平方向５画素分の垂直フィルタ処理結果が揃うと、加算器７０３は、水平方向５画素分の垂直フィルタ処理結果を用いて、該水平方向５画素について水平積分フィルタ処理を行う。
【００４６】
次に、着目タイル画像の左端画素以外の画素（非左端画素）を処理する場合の動作について説明する。着目タイル画像の非左端画素を処理する場合、水平データレジスタ７０２に保持されたそれぞれの垂直フィルタ処理結果を１画素分左にシフトさせ、右端に垂直フィルタ処理部１０１で得られた非左端画素の垂直フィルタ処理結果７００を保持させる。このようにして水平データレジスタ７０２に水平方向５画素分の垂直フィルタ処理結果を揃え、加算器７０３は、水平方向５画素分の垂直フィルタ処理結果を用いて、該水平方向５画素について水平積分フィルタ処理を行う。
【００４７】
なお、水平積分フィルタ処理の後処理として、算出した積分値を、算出した範囲である（垂直方向５画素）×（水平方向５画素）＝２５画素で割って平均値を算出することで、全体を平均フィルタとして機能させることも可能である。
【００４８】
画像出力部１０６は、水平フィルタ処理部１０５による水平フィルタ処理結果を出力する。画像出力部１０６は、タイル処理や時分割多重処理を本画像処理装置の後段で継続して利用する場合には、そのまま出力する構成としてもよいし、画像毎にまとめ直す場合にはタイル分割や時分割多重化されたデータを合成して複数ストリーム画像に戻しても良い。また、画像出力部１０６による水平フィルタ処理結果の出力先については、本装置の内部若しくは外部に設けられたメモリであっても良いし、通信回線を介して適当な外部装置に対して送信しても良い。
【００４９】
以上説明した、画像処理装置による、タイル画像単位のフィルタ処理について、同処理のフローチャートを示す図１２を用いて説明する。なお、各ステップにおける処理は上記の通りであるから、以下では簡単に説明する。
【００５０】
ステップＳ１２０１では、画像入力部１００は、入力されたストリーム画像をタイル画像単位で分割し、分割したそれぞれのタイル画像を時系列に後段の機能部に転送する。ステップＳ１２０２では、垂直フィルタ処理部１０１は、垂直方向に必要な画素がラインメモリに揃った時点で垂直フィルタ処理を実施する。
【００５１】
ステップＳ１２０３では、データ整形部１０２は、垂直フィルタ処理部１０１から出力される垂直フィルタ処理結果のうちタイル画像の右端近傍における垂直フィルタ処理結果を整形してから該データメモリに格納する。ステップＳ１２０４では、整形データ入出力部１０３は、データ整形部１０２によって整形データバッファ上に形成された整形データをデータメモリに書き込む。
【００５２】
ステップＳ１２０５では、整形データ入出力部１０３は、水平フィルタ処理において必要な垂直フィルタ処理結果をデータメモリから読み出す。ステップＳ１２０６では、データ復元部１０４は、整形データ入出力部１０３がデータメモリから読み出した整形データから垂直フィルタ処理結果を復元（アンパッキング）し、該復元した垂直フィルタ処理結果を水平フィルタ処理部１０５に供給する。
【００５３】
ステップＳ１２０７では、水平フィルタ処理部１０５は、垂直フィルタ処理部１０１から得られた垂直フィルタ処理結果、もしくは、データ復元部１０４から得られた隣接タイル画像の垂直フィルタ処理結果を用いて、水平フィルタ処理を実施する。ステップＳ１２０８では、画像出力部１０６は、水平フィルタ処理部１０５による水平フィルタ処理結果を出力する。
【００５４】
このように、本実施形態によれば、複数ストリーム画像を時分割多重でフィルタ処理する場合に、垂直フィルタ処理結果をデータメモリのビット幅に合せて整形することで、データメモリを効率的に使用することができる。また、ストリーム画像数に合せて、タイルサイズを柔軟に変更することが可能となり、データ通信のオーバーヘッドを低減することができる。
【００５５】
［第２の実施形態］
本実施形態を含め、以降の各実施形態では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。本実施形態では、ビット深度８ビット、１０ビット、１６ビットのストリーム画像に対し、時分割多重でソーベルフィルタ処理する場合に、４０ビット幅を有するデータメモリを用いてタイルの境界処理を行う例を説明する。
【００５６】
画像入力部１００は、ビット深度の異なるそれぞれのストリーム画像をタイル画像単位で分割し、分割したそれぞれのタイル画像を時系列に後段の機能部に転送する。それぞれのストリーム画像に対する画像入力部１００の動作については、第１の実施形態と同様である。
【００５７】
垂直フィルタ処理部１０１は、ストリーム画像毎に異なるラインメモリを有しており、垂直方向に必要な画素が揃った時点で、垂直方向に偏微分フィルタ処理を実施する。ここでは一例として、縦３画素×横３画素の領域に対するソーベルフィルタ処理を施す。そのため、ラインメモリは３ライン分の画素を保持可能なラインメモリである必要があり、該ラインメモリに縦３画素分の画素が揃った時点で垂直方向に偏微分フィルタ処理を実施する。
【００５８】
垂直フィルタ処理部１０１の動作について、図８を用いて説明する。垂直フィルタ処理部１０１に入力された画素８００はラインメモリに書き込まれるともに、垂直データレジスタ８０１に保持される。また、画素８００と同列の画素であって該画素８００よりも先にラインメモリに書き込まれた２画素（図８において楕円で囲った２画素）がラインメモリから読み出され、垂直データレジスタ８０１に保持される。垂直データレジスタ８０１に垂直方向３画素分の画素が揃うと、垂直フィルタ演算部８０２は、３画素のうち上段の画素の画素値に「−１」を乗じ、中段の画素の画素値に「０」を乗じ、下段の画素の画素値に「１」を乗じる。そして、垂直フィルタ演算部８０２は、それぞれの乗算結果の合計値を計算して出力する。ここで、垂直フィルタ演算部８０２による出力値（垂直方向の偏微分フィルタ処理結果）は画素８００のビット深度に１を加算したビット幅に収まる。すなわち、ビット深度が８ビットのストリーム画像の場合は、その垂直方向の偏微分フィルタ処理結果は９ビットとなり、ビット深度が１０ビットのストリーム画像の場合は、その垂直方向の偏微分フィルタ処理結果は１１ビットとなる。また。ビット深度が１６ビットのストリーム画像の場合は、その垂直方向の偏微分フィルタ処理結果は１７ビットとなる。
【００５９】
データ整形部１０２は、タイル画像の右端近傍における垂直フィルタ処理結果を第１の実施形態と同様に整形してからデータメモリに格納するのであるが、その際、ストリーム画像のビット深度に応じて、整形する垂直フィルタ処理結果数が変わる。
【００６０】
データ整形部１０２の動作について、図９を用いて説明する。図９（ｄ）には、縦Ｌｍａｘ画素×横Ｃｎ画素のタイル画像を示している。
【００６１】
図９（ｄ）のタイル画像がビット深度８ビットのタイル画像であるとする。このとき、垂直方向フィルタ処理結果は９ビットとなる。このタイル画像の（列番号＝Ｌｎ、行番号＝Ｃｎ−１）における垂直方向フィルタ処理結果、（列番号＝Ｌｎ、行番号＝Ｃｎ）における垂直方向フィルタ処理結果、が順次データ整形部１０２に入力されたとする。このときデータ整形部１０２は、図９（ａ）に示すような４０ビットの整形データバッファ９００に、これらの垂直方向フィルタ処理結果を格納する。整形データバッファ９００のビット幅は４０ビット、垂直方向フィルタ処理結果は９ビットであるから、整形データバッファ９００には４画素分の垂直フィルタ処理結果を格納することができる。然るに、この時点では整形データバッファ９００には未だ垂直フィルタ処理結果を格納することができるため、整形データは生成しない。更に、タイル画像の（列番号＝Ｌｎ＋１、行番号＝Ｃｎ−１）における垂直方向フィルタ処理結果、（列番号＝Ｌｎ＋１、行番号＝Ｃｎ）における垂直方向フィルタ処理結果、が順次データ整形部１０２に入力されたとする。このときデータ整形部１０２は、整形データバッファ９００に、これらの垂直方向フィルタ処理結果を格納する。この時点で整形データバッファ９００には４画素分の垂直フィルタ処理結果が格納されているので、データ整形部１０２はこれら４画素分の垂直フィルタ処理結果をパッキングして整形データを作成する。
【００６２】
図９（ｄ）のタイル画像がビット深度１０ビットのタイル画像であるとする。このとき、垂直方向フィルタ処理結果は１１ビットとなる。このタイル画像の（列番号＝Ｌｎ、行番号＝Ｃｎ−１）における垂直方向フィルタ処理結果、（列番号＝Ｌｎ、行番号＝Ｃｎ）における垂直方向フィルタ処理結果、が順次データ整形部１０２に入力されたとする。このときデータ整形部１０２は、図９（ｂ）に示すような４０ビットの整形データバッファ９０１に、これらの垂直方向フィルタ処理結果を格納する。整形データバッファ９０１のビット幅は４０ビット、垂直方向フィルタ処理結果は１１ビットであるから、整形データバッファ９０１には３画素分の垂直フィルタ処理結果を格納することができる。然るに、この時点では整形データバッファ９０１には未だ垂直フィルタ処理結果を格納することができるため、整形データは生成しない。更に、タイル画像の（列番号＝Ｌｎ＋１、行番号＝Ｃｎ−１）における垂直方向フィルタ処理結果、（列番号＝Ｌｎ＋１、行番号＝Ｃｎ）における垂直方向フィルタ処理結果、が順次データ整形部１０２に入力されたとする。このときデータ整形部１０２は、整形データバッファ９０１に、タイル画像の（列番号＝Ｌｎ＋１、行番号＝Ｃｎ−１）における垂直方向フィルタ処理結果を格納する。また、データ整形部１０２は、整形データバッファ９０２に、タイル画像の（列番号＝Ｌｎ＋１、行番号＝Ｃｎ）における垂直方向フィルタ処理結果を格納する。この時点で整形データバッファ９０１には３画素分の垂直フィルタ処理結果が格納されているので、データ整形部１０２はこれら３画素分の垂直フィルタ処理結果をパッキングして整形データを作成する。一方、整形データバッファ９０２のビット幅は４０ビット、垂直方向フィルタ処理結果は１１ビットであるから、整形データバッファ９０１には３画素分の垂直フィルタ処理結果を格納することができる。然るに、この時点では整形データバッファ９０２には未だ垂直フィルタ処理結果を格納することができるため、整形データは生成しない。そして更に、タイル画像の（列番号＝Ｌｎ＋２、行番号＝Ｃｎ−１）における垂直方向フィルタ処理結果、（列番号＝Ｌｎ＋２、行番号＝Ｃｎ）における垂直方向フィルタ処理結果、が順次データ整形部１０２に入力されたとする。このときデータ整形部１０２は、整形データバッファ９０２にこれらの垂直方向フィルタ処理結果を格納する。この時点で整形データバッファ９０２には３画素分の垂直フィルタ処理結果が格納されているので、データ整形部１０２はこれら３画素分の垂直フィルタ処理結果をパッキングして整形データを作成する。
【００６３】
図９（ｄ）のタイル画像がビット深度１６ビットのタイル画像であるとする。このとき、垂直方向フィルタ処理結果は１７ビットとなる。このタイル画像の（列番号＝Ｌｎ、行番号＝Ｃｎ−１）における垂直方向フィルタ処理結果、（列番号＝Ｌｎ、行番号＝Ｃｎ）における垂直方向フィルタ処理結果、が順次データ整形部１０２に入力されたとする。このときデータ整形部１０２は、図９（ｃ）に示すような４０ビットの整形データバッファ９０３に、これらの垂直方向フィルタ処理結果を格納する。整形データバッファ９０３のビット幅は４０ビット、垂直方向フィルタ処理結果は１７ビットであるから、整形データバッファ９０３には２画素分の垂直フィルタ処理結果を格納することができる。この時点で整形データバッファ９０３には２画素分の垂直フィルタ処理結果が格納されているので、データ整形部１０２はこれら２画素分の垂直フィルタ処理結果をパッキングして整形データを作成する。
【００６４】
なお、画素単位にデータをパッキングできない場合、整形データバッファに分割してパッキングしてもよい。その場合、データ整形部及びデータ復元部での処理負荷は増加するが、データメモリの使用効率はより高まる。
【００６５】
整形データ入出力部１０３は第１の実施形態と同様にして、データメモリに対する整形データの読み書きを行うのであるが、データメモリにおけるデータマップが第１の実施形態と異なる。本実施形態に係るデータメモリのメモリマップについて図１０を用いて説明する。
【００６６】
仮に各ストリーム画像を同一タイル高さに分割して処理する場合を考える。このとき、図１０（ａ）に示す如く、８ビットストリーム画像用の記憶領域に対し、１０ビットストリーム画像用にはその１．５倍、１６ビットストリーム画像用にはその２倍の容量の記憶領域を確保すればよい。また図１０（ｂ）に示す如く、各ストリーム画像に対して同一の容量の記憶領域を確保した場合は、１６ビットのストリーム画像のタイル高さに対して１０ビットのストリーム画像は１．５倍、８ビットのストリーム画像は２倍のタイル高さまで処理可能となる。上述のように、画像入力部１００において、各ストリーム画像のビット深度に応じてタイル高さを変更することができる。また、タイル幅については、制限なく変更することが可能である。
【００６７】
水平フィルタ処理部１０５は、垂直フィルタ処理部１０１からの垂直フィルタ処理結果、又はデータ復元部１０４からの隣接タイル画像の垂直フィルタ処理結果を用いて、同一ライン上で連続する３画素の垂直フィルタ処理結果を用いた水平フィルタ処理を行う。水平フィルタ処理部１０５の動作について、図１１（ａ）を用いて説明する。
【００６８】
本実施形態では、縦３画素×横３画素の領域に対するソーベルフィルタ処理を実施するため、水平データレジスタ１１０２は垂直フィルタ処理結果を３画素分保持できればよい。
【００６９】
まず、着目タイル画像の左端画素を処理する場合の動作について説明する。着目タイル画像の左端画素を処理するためには、先ず、データ復元部１０４から得られた２画素分の垂直フィルタ処理結果１１０１を、水平データレジスタ１１０２に格納する。ここで、２画素分の垂直フィルタ処理結果１１０１とは、着目タイル画像の左に隣接するタイル画像において該左端画素と同ラインについての垂直フィルタ処理結果である。また、垂直フィルタ処理部１０１から得られた、着目タイル画像の左端画素の垂直フィルタ処理結果１１００を水平データレジスタ１１０２に格納する。水平データレジスタ１１０２に水平方向３画素分の垂直フィルタ処理結果が揃うと、水平フィルタ演算部１１０３は、３画素のうち左端の画素の画素値に「１」を乗じ、中央の画素の画素値に「２」を乗じ、右端の画素の画素値に「１」を乗じる。そして、水平フィルタ演算部１１０３は、それぞれの乗算結果の合計値を計算して出力する。
【００７０】
次に、着目タイル画像の左端画素以外の画素（非左端画素）を処理する場合の動作について説明する。着目タイル画像の非左端画素を処理する場合、水平データレジスタ１１０２に保持されたそれぞれの垂直フィルタ処理結果を１画素分左にシフトさせ、右端に垂直フィルタ処理部１０１で得られた非左端画素の垂直フィルタ処理結果１１００を保持させる。このようにして水平データレジスタ１１０２に水平方向３画素分の垂直フィルタ処理結果を揃え、水平フィルタ演算部１１０３は同様にして合計値を計算して出力する。
【００７１】
水平フィルタ演算部１１０３による演算結果は、垂直フィルタ処理部１０１による処理と合せて、エッジ抽出フィルタ処理であるソーベルフィルタ処理を実現するものである。
【００７２】
このように、本実施形態によれば、ビット深度の異なるストリーム画像を時分割多重でフィルタ処理する場合に、データメモリのビット幅に合せて整形することで、データメモリを効率的に使用することができる。また、データメモリを最大限活用して、各ストリーム画像のタイルサイズを柔軟に変更することが可能となる。
【００７３】
［第３の実施形態］
本実施形態では、タイル画像単位に時分割多重で複数ストリーム画像をフィルタ処理する場合に、タイル境界の可逆圧縮を施したデータをデータメモリに格納する例について説明する。
【００７４】
垂直フィルタ処理部１０１及び水平フィルタ処理部１０５は、全体として所望のフィルタ処理が実現できるように構成されていれば、如何なるフィルタ演算を行う機能部であっても良く、必要となる画素数に応じて内部に有するレジスタ数を設定すればよい。
【００７５】
データ整形部１０２は、タイル画像の右端及び右端に連続する同ラインの垂直フィルタ処理結果を可逆圧縮した圧縮データを、データメモリのビット幅に合せてパッキングする。データ整形部１０２の動作について、図１１（ｂ）を用いて説明する。図１１（ｂ）の左側には、縦Ｌｍａｘ画素×横Ｃｎ画素のタイル画像を示している。
【００７６】
本実施形態では、タイル画像単位に時分割多重処理を施すため、垂直フィルタ処理部１０１は、タイル画像単位で垂直フィルタ処理結果をデータ整形部１０２に入力する。データ圧縮部１２００は、入力された垂直フィルタ処理結果のうち、列番号＝Ｃｎ−１の画素の垂直フィルタ処理結果及び列番号＝Ｃｎの画素の垂直フィルタ処理結果に対して可逆符号化を行う。可逆符号化については周知の技術であるため、これに係る説明は省略する。
【００７７】
そしてデータ圧縮部１２００は、列番号＝Ｃｎ−１の垂直フィルタ処理結果及び列番号＝Ｃｎの垂直フィルタ処理結果の可逆符号化結果（圧縮データ）を出力する。なお、データ圧縮部１２００による符号化方法が十分な効果が得られず、圧縮データのサイズが可逆符号化元のデータのサイズより大きくなってしまった場合、データ圧縮部１２００は可逆符号化元のデータをそのまま出力する。即ち、列番号＝Ｃｎ−１の垂直フィルタ処理結果及び列番号＝Ｃｎの垂直フィルタ処理結果の圧縮データのサイズが、列番号＝Ｃｎ−１の垂直フィルタ処理結果及び列番号＝Ｃｎの垂直フィルタ処理結果の合計サイズを超えたとする。このとき、データ圧縮部１２００は、圧縮データではなく、その元となるデータ、すなわち、列番号＝Ｃｎ−１の垂直フィルタ処理結果及び列番号＝Ｃｎの垂直フィルタ処理結果を出力する。
【００７８】
そしてデータ整形部１０２は圧縮データを、データメモリの記憶領域が保持可能なビット幅に合せた整形データバッファ１２０１において、該ビット幅を単位にパッキングして整形データを生成し、該整形データを整形データ入出力部１０３に出力する。なお、整形データバッファ１２０１からデータが読み出されるたびに整形データバッファ１２０１をクリアするか、整形データバッファ１２０１に上書きする。そして、符号化が完了した時点で、整形データバッファ１２０１に未だデータが残っている場合には、該残っているデータを整形データとして出力する。
【００７９】
整形データ入出力部１０３は、データ整形部１０２で圧縮された整形データをデータメモリに書き込む際、データ整形部１０２で得られた圧縮データのデータサイズを元に必要な記憶領域をデータメモリに確保する。記憶領域のサイズは、圧縮データのデータサイズを記憶領域のビット幅で除算（切り上げ）することで取得可能である。整形データは、データ整形部１０２において可逆圧縮されたデータであるため、データメモリ上の空き容量が増える可能性がある。この空き容量は、他の処理で使用することで、より効率的にデータメモリを利用することができる。
【００８０】
データ復元部１０４は、整形データ入出力部１０３がデータメモリから読み出した整形データから垂直フィルタ処理結果の圧縮データを復元（アンパッキング）する。そしてデータ復元部１０４は、該復元した圧縮データから、データ圧縮部１２００による可逆圧縮に対応する復号によって垂直フィルタ処理結果を復元する。そしてデータ復元部１０４は、該復元した垂直フィルタ処理結果を水平フィルタ処理部１０５に供給する。
【００８１】
このように、本実施形態によれば、タイル画像単位に時分割多重で複数ストリーム画像をフィルタ処理する場合に、タイル境界の垂直フィルタ処理結果を可逆圧縮してデータメモリに格納することで、より効率的にデータメモリを使用可能となる。
【００８２】
［第４の実施形態］
図１（ａ）に示した各機能部（該機能部が有するものとして他の図面に記した機能部（メモリは除く）も含む）は何れもハードウェアで構成しても良いが、ソフトウェア（コンピュータプログラム）で実装しても良い。このようなコンピュータプログラムを実行可能な装置は、上記の画像処理装置として機能することができる。このようなコンピュータプログラムを実行可能なコンピュータ装置のハードウェア構成例について、図１（ｂ）のブロック図を用いて説明する。
【００８３】
ＣＰＵ１９１は、ＲＡＭ１９２やＲＯＭ１９３に格納されているコンピュータプログラムやデータを用いて処理を実行する。これによりＣＰＵ１９１は、コンピュータ装置全体動作制御を行うと共に、上記の画像処理装置が行うものとして上述した各処理を実行若しくは制御する。
【００８４】
ＲＡＭ１９２は、外部記憶装置１９６からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ（インターフェース）１９７を介して外部から受信したデータ、を格納するためのエリアを有する。更にＲＡＭ１９２は、ＣＰＵ１９１が各種の処理を実行する際に用いるワークエリアを有する。このようにＲＡＭ１９２は各種のエリアを適宜提供することができる。なお、ＲＡＭ１９２は、上記の整形データバッファ、データメモリなどのメモリとして使用可能である。
【００８５】
ＲＯＭ１９３には、コンピュータ装置の書き換え不要の設定データや、コンピュータ装置の書き換え不要のコンピュータプログラム（ブートプログラムなど）が格納されている。
【００８６】
操作部１９４は、キーボードやマウスなどのユーザインターフェースにより構成されており、ユーザが操作することで、各種の指示をＣＰＵ１９１に対して入力することができる。
【００８７】
表示部１９５は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１９１による処理結果を画像や文字などでもって表示することができる。なお、操作部１９４と表示部１９５とを一体化させてタッチパネル画面を構成しても良い。
【００８８】
外部記憶装置１９６は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置１９６には、ＯＳ（オペレーティングシステム）や、上記の画像処理装置が行うものとして上述した各処理をＣＰＵ１９１に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。該コンピュータプログラムには図１（ａ）に示した各機能部（該機能部が有するものとして他の図面に記した機能部（メモリは除く）も含む）が行うものとして上述した各処理をＣＰＵ１９１に実行若しくは制御させる為のコンピュータプログラムが含まれている。該データには、上記の説明において既知の情報として取り扱った情報が含まれている。外部記憶装置１９６に保存されているコンピュータプログラムやデータは、ＣＰＵ１９１による制御に従って適宜ＲＡＭ１９２にロードされ、ＣＰＵ１９１による処理対象となる。なお、外部記憶装置１９６は、上記の整形データバッファ、データメモリなどのメモリとして使用可能である。
【００８９】
Ｉ／Ｆ１９７は、外部とのデータ通信を行うためのものである。例えば、本コンピュータ装置が静止画像や動画像を撮像する撮像装置に適用された場合には、撮像部若しくはメモリから入力される画像が、このＩ／Ｆ１９７を介してＲＡＭ１９２や外部記憶装置１９６に入力される。
【００９０】
ＣＰＵ１９１、ＲＡＭ１９２、ＲＯＭ１９３、操作部１９４、表示部１９５、外部記憶装置１９６、Ｉ／Ｆ１９７は何れも、バス１９８に接続されている。なお、上記の画像処理装置の機能を、２台以上のコンピュータ装置で実現させても構わない。その場合、上記の画像処理装置の機能を複数台のコンピュータ装置に分散させることになる。
【００９１】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９２】
１００：画像入力部  １０１：垂直フィルタ処理部  １０２：データ整形部  １０３：整形データ入出力部  １０４：データ復元部  １０５：水平フィルタ処理部
【図１】
2017111510.tif 000003
【図２】
2017111510.tif 000004
【図３】
2017111510.tif 000005
【図４】
2017111510.tif 000006
【図５】
2017111510.tif 000007
【図６】
2017111510.tif 000008
【図７】
2017111510.tif 000009
【図８】
2017111510.tif 000010
【図９】
2017111510.tif 000011
【図１０】
2017111510.tif 000012
【図１１】
2017111510.tif 000013
【図１２】
2017111510.tif 000014