(57)【特許請求の範囲】
【請求項１】
処理対象の画像データを格納する画像メモリと、所定の画像処理を行う画像処理回路と、前記画像メモリから読み出した画像データを処理サイズに合わせたブロックデータにして前記画像処理回路に出力するラインメモリを備える画像処理装置において、
前記画像データのビット幅に合わせて前記ラインメモリのライン幅を切り分けて、理論上、複数の分割ラインメモリを構成し、かつ、設定される画像処理機能（設定機能）にしたがって使用する本数の分割ラインメモリの入出力を、前記画像処理回路と対応するように制御する構成制御手段を備えたことを特徴とする画像処理装置。
【請求項２】
請求項１において、前記構成制御手段は前記画像処理機能に応じて、前記画像処理回路における複数の演算回路の組合せを制御し、
３×３や５×５などの処理サイズの変更および／またはパイプラインや並列処理などの処理形態の変更を可能したことを特徴とする画像処理装置。
【請求項３】
処理対象の画像データを格納する画像メモリと、所定の画像処理を行う画像処理回路と、前記画像メモリから読み出した画像データを処理サイズに合わせたブロックデータにして前記画像処理回路に出力するラインメモリを備える画像処理装置において、
前記画像データのビット幅に合わせて前記ラインメモリのライン幅を切り分けて、理論上、複数の分割ラインメモリを構成し、かつ、設定される画像処理機能（設定機能）にしたがって使用する本数の分割ラインメモリの入出力を、前記画像処理回路と対応するように制御する構成制御手段と、
前記構成制御手段の制御により、前記ラインメモリに入力する入力データを生成するラインメモリ入力データ制御手段と、前記ラインメモリの出力するデータから前記ブロックデータを生成するラインメモリ出力データ制御手段を備え、
前記ラインメモリのライン幅の範囲内で処理構成を任意に変更できるようにしたことを特徴とする画像処理装置。
【請求項４】
請求項３において、前記画像処理機能が異なるｉ×ｉフィルター処理によるＰ段のパイプライン処理で、前記使用する本数Ｌが（ｉ−１）×Ｐとなる場合、
前記構成制御手段は、パイプライン処理の各段に使用する前記分割ラインメモリをＬ／Ｐ本のライン群とし、最前段の画像処理回路には前記画像メモリから読み出した画像データを直接入力する分割ラインメモリを含むライン群を対応させ、次段以降の画像処理回路には順次、前段の処理データを入力する分割ラインメモリを含むライン群を対応させるように、前記ラインメモリの入出力の制御を行うことを特徴とする画像処理装置。
【請求項５】
請求項４において、前記ラインメモリ入力データ制御手段は、前記画像メモリから読み出した画像データと、前記ラインメモリの出力データの一部と、前記画像処理回路の各段の処理結果データとから、前記分割ラインメモリの全てに入力するための入力データを生成することを特徴とする画像処理装置。
【請求項６】
請求項３において、前記画像処理機能が同じｉ×ｉフィルター処理によるＱ組の並列処理で、前記使用する本数Ｌが（ｉ−１）×Ｑとなる場合、
前記構成制御手段は、並列処理の各組に使用する前記分割ラインメモリをＬ／Ｑ本のライン群とし、前記画像メモリに格納されている画像データの１画面分を垂直方向にＱ分割し各々の領域から並列に読み出される画像データを、対応するライン群に入力するように制御することを特徴とする画像処理装置。
【請求項７】
請求項４〜６のいずれか１項において、前記構成制御手段は、前記画像処理機能を示すフィルタサイズ（ｉ×ｉ）、処理個数（１またはＰまたはＱ）、パイプラインなどの処理形態を設定されると、前記処理個数分の画像処理回路を前記フィルタサイズに見合った演算回路によって構成するように制御し、
また、前記処理形態がパイプラインの場合に、前記画像処理回路の各々の処理結果データを前記ラインメモリ入力データ制御手段にフィードバックするように制御することを特徴とする画像処理装置。
【請求項８】
処理対象の画像データを格納する画像メモリと、所定の画像処理を行う画像処理回路と、前記画像メモリから読み出した画像データを処理サイズに合わせたブロックデータにして前記画像処理回路に出力するラインメモリを備える画像処理装置において、
異なるｉ×ｉフィルター処理によるＰ段のパイプライン処理を行うためのＰ組の画像処理回路と、
前記画像データのビット幅に合わせて前記ラインメモリのライン幅を切り分けて、理論上、Ｌ（＝（ｉ−１）×Ｐ）本の分割ラインメモリを構成し、かつ、設定される画像処理機能（設定機能）にしたがって使用する分割ラインメモリをＬ／Ｐ本のライン群毎に各画像処理回路に対応させて、前記ラインメモリの入出力を制御する構成制御手段と、
前記画像メモリから読み出した画像データと、前記ラインメモリの出力データの一部と、前記画像処理回路の各段の処理結果データとから、前記ラインメモリを理論上で切り分けた全てのラインに入力するための入力データを生成するラインメモリ入力データ制御手段と、
前記ラインメモリから出力するデータから前記ブロックデータを生成するラインメモリ出力データ制御手段を備え、
ラインメモリのライン幅の範囲内でパイプライン処理構成を任意に変更できるようにしたことを特徴とする画像処理装置。
【請求項９】
請求項８において、ｉ＝３、Ｐ＝２の場合に、
前記ラインメモリ入力データ制御手段は、前記画像メモリから読み出した画像データの幅のＭビットと、１クロック前に読み出した画像データで前記出力データの中から得られるＭビットを前段の画像処理回路に対応する２本の分割メモリからなるライン群に、このときの前段の画像処理回路の処理結果データのＭビットと、その１クロック前の処理結果データのＭビットを後段の画像処理回路に対応する２本の分割メモリからなるライン群に入力するように制御し、
前記ラインメモリ出力データ制御手段は、前記画像メモリから読み出した画像データと前段のライン群から出力する２の画像データとの画面上３ラインのデータ組みと、それらデータ組の１クロック前及び２クロック前のデータ組を合わせた９つのデータブロックを生成して前段の画像処理回路に、このときの前段の処理結果データと後段のライン群から出力する２の処理結果データを、前段の場合と同様に制御してデータブロックを生成して後段の画像処理回路に出力するように制御することを特徴とする画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、扱う画像データのビット幅が多様となる汎用の画像処理装置に関し、特に、画像データのビット幅に応じて処理構成を変更可能とした画像処理装置に関する。
【０００２】
【従来の技術】
画像処理の一つであるフィルタ処理を高速に行なう方法に、ラインメモリ（ＬＭ）に画像データを記憶しながら処理を行なうものがある。ＬＭを用いる方法は、フィルタ処理に必要な演算を部分的に並列処理することができる。また、画面を一通りスキャンするだけでフィルタ処理を行なうことができる。
【０００３】
図２に、ＬＭを用いる画像処理装置の概略構成を示す。同図（ａ）は、画像データのビット幅を８ビットとした時の３×３フィルタ処理の場合の構成を示す。３×３フィルタ処理では、ある画素の処理に、近傍の画素を含む９つの画像データが必要となる。この９つの画像データは、２本のラインメモリと処理対象メモリから読み出された画像データの組合せにより与えられる。そして、フィルタ処理に使用される９つの画像データと９つの係数を用いて、９つの乗算器を使用することにより並列に積和演算を行なうことで、フィルタ処理を高速に実行する。
【０００４】
同じ３×３フィルタでも扱う画像データのビット幅が１６ビットの場合には、図２（ｂ）のように、１６ビット幅のラインメモリを２本使用する。さらに、画像データのビット幅が８ビットで、５×５フィルタ処理を実現する場合は、図２（ｃ）のように、８ビット幅のラインメモリが４本必要となる。
【０００５】
従来、高分解能が要求される医療用などの画像処理では１６ビット幅の画像データ、その他の分野の画像処理では８ビットや１ビット幅の画像データが用いられている。最近では、工業用の分野などでも１６ビット幅の画像データによる画像処理の必要が高まっている。
【０００６】
【発明が解決しようとする課題】
ラインメモリを使用する従来の画像処理装置では、処理対象の画像データにおける最大ビット幅の仕様によって、固定的に構成されていた。つまり、３×３フィルタ処理を考えた場合、最大８ビット幅の画像データを扱う画像処理装置は図２（ａ）の構成をとり、最大１６ビット幅の画像データを扱う画像処理装置は図２（ｂ）の構成をとっていた。したがって、１ビット幅、８ビット幅、１６ビット幅の画像データを扱う画像処理装置においては、図２（ｂ）の処理構成をとる必要があった。
【０００７】
しかし、図２（ｂ）の処理構成を用いて１ビット幅、８ビット幅の画像データを処理する場合、ラインメモリに未使用のメモリ領域が多く存在し、メモリの使用効率が悪く経済的でないという問題があった。
【０００８】
また、５×５フィルタ処理を実現する図２（ｃ）の処理構成においても、小さいビット幅の画像データを扱うときに上記と同様な問題が生じる。さらに、３×３フィルタ処理を行った場合、ラインメモリのみならず、フィルタ処理の演算装置にも未使用の回路が多く存在するという問題があった。
【０００９】
上記のような使用効率の低さは、処理の高速化を考えた場合に重要な問題となる。一般に、複数のフィルタ処理を連続で行う場合の高速化についてはパイプライン処理を、単独のフィルタ処理の高速化については画面を小領域に分割して各小領域ごとに処理を行なう並列処理を挙げることができる。しかし、これらのパイプライン処理や並列処理にはラインメモリや演算装置の規模が大きくなるため、上記の問題点の解決が重要な課題となる。
【００１０】
本発明の目的は、従来技術の問題点を克服し、扱う画像データのビット幅や処理機能に応じて処理構成を柔軟に変更でき、汎用性に優れリソースの使用効率が高い画像処理装置を提供することにある。また、高速処理の可能なパイプライン処理や並列処理を、画像データのビット幅に適応して任意に構成できる画像処理装置を提供することにある。
【００１１】
【課題を解決するための手段】
本発明の上記目的は、処理対象の画像データを、複数ビットのライン幅をもつラインメモリを用いて画像処理回路に入力する画像処理装置において、画像データのビット幅に合わせて前記ラインメモリのライン幅を切り分けて理論上、複数の分割ラインメモリを構成し、かつ、設定される画像処理機能情報（以下、設定機能と略称）にしたがって使用する本数の分割ラインメモリを、前記画像処理回路と対応するよう、その入出力を制御する構成を備えたことにより達成される。
【００１２】
上記の構成には、前記設定機能に応じて、前記画像処理回路における複数の演算回路の組合せを制御する機能を備え、３×３や５×５などの処理サイズの変更および／またはパイプラインや並列処理などの処理形態の変更を可能したことを特徴とする。
【００１３】
すなわち、本発明の画像処理装置は、処理対象の画像データを格納する画像メモリと、所定の画像処理を行う画像処理回路と、前記画像メモリから読み出した画像データを処理サイズに合わせたブロックデータにして前記画像処理回路に出力するラインメモリを備える画像処理装置において、前記画像データのビット幅に合わせて前記ラインメモリのライン幅を切り分け理論上、複数の分割ラインメモリを構成し、かつ、設定機能にしたがって使用する本数の分割ラインメモリを、前記画像処理回路と対応するように、その入出力を制御する構成制御手段と、前記ラインメモリに入力する入力データを生成するラインメモリ入力データ制御手段と、前記ラインメモリの出力するデータから前記ブロックデータを生成するラインメモリ出力データ制御手段を備えることを特徴とする。
【００１４】
また、前記設定機能が異なるｉ×ｉフィルター処理によるＰ段のパイプライン処理で、前記使用する本数Ｌが（ｉ−１）×Ｐとなる場合、前記構成制御手段は、パイプライン処理の各段に使用する前記分割ラインメモリをＬ／Ｐ本のライン群とし、最前段の画像処理回路には前記画像メモリから読み出した画像データを直接入力する分割ラインメモリを含むライン群を対応させ、次段以降の画像処理回路には順次、前段の処理データを入力する分割ラインメモリを含むライン群を対応させるように、前記ラインメモリの入出力の制御を行うことを特徴とする。
【００１５】
また、前記設定機能が同じｉ×ｉフィルター処理によるＱ組の並列処理で、前記使用する本数Ｌが（ｉ−１）×Ｑとなる場合、前記構成制御手段は、並列処理の各組に使用する前記分割ラインメモリをＬ／Ｑ本のライン群とし、前記画像メモリに格納されている画像データの１画面分を垂直方向にＱ分割し各々の領域から並列に読み出される画像データを、対応するライン群に入力するように制御することを特徴とする。
【００１６】
さらに、前記構成制御手段は、前記設定機能を示すフィルタサイズ（ｉ×ｉ）、処理個数（１またはＰまたはＱ）、パイプラインなどの処理形態を設定されると、前記処理個数分の画像処理回路を前記フィルタサイズに見合った演算回路によって構成するように制御することを特徴とする。
【００１７】
本発明によれば、扱う画像データのビット幅に合わせて、１ライン分のラインメモリのビット幅を可変にすることにより、理論上のラインメモリの本数を可変にすることができる。たとえば、図２（ｂ）と同様な機能を実現する３２ビット幅のラインメモリを使用した場合、ビット幅が１６ビットの画像データを扱う場合には図２（ｂ）と同様であるが、ビット幅が８ビットの画像データを扱う場合、図２（ｃ）のようにラインメモリを制御することができる。つまり、扱う画像データのビット幅に合わせて、処理構成を変更できるので、画像処理装置の汎用性と使用効率を向上上できる。
【００１８】
また、本発明によれば、画像処理の設定機能に応じてラインメモリの入出力を制御できるので、複数段のパイプライン処理や複数組の並列処理など、高速処理の可能な処理構成を簡単に構築できる。
【００１９】
したがって、上記のようにラインメモリと画像回路の構成を可変制御する本発明によれば、たとえば３２ビット幅のラインメモリと５×５フィルタ処理可能な積和演算回路を備える画像処理装置の場合に、画像データが１６ビット幅の３×３フィルタ処理、画像データが１〜８ビット幅の５×５または３×３フィルタ処理、または、画像データが１〜８ビット幅の３×３フィルタ処理によるパイプライン処理もしくは並列処理を任意に構成制御できる汎用の画像処理装置を提供できる。
【００２０】
【発明の実施の形態】
以下、本発明の一実施形態を図面を用いて詳細に説明する。図１は、一実施例による画像処理装置の全体構成を示す機能ブロック図である。図示で信号の流れを示す矢線は、後述するパイプライン処理に対応されている。
【００２１】
構成制御部３は、処理対象の画像データの詳細情報を制御装置１から受取りそれを解釈する。さらに、制御装置１から伝達された画像処理機能を解釈し、その機能に必要な処理構成を行うための制御信号を発行する。構成制御部３で発行する制御信号のうち、タイミングに関する信号は、信号伝達手段４を介してメモリ制御部１０に伝達される。メモリ制御部１０は、画像データを記憶する処理対象メモリ部１００や処理結果メモリ部７００、ラインメモリ（ＬＭ）５を制御するＬＭ制御部５０を制御している。
【００２２】
また、構成制御部３は、伝達された画像処理機能や画像データのビット幅の情報から、ＬＭ入力データ制御回路２００やＬＭ出力制御回路３００などに、その入出力を制御する制御信号を伝達手段４を介して伝達する。ＬＭ入力データ制御回路２００とＬＭ出力データ制御回路３００は、この制御信号に従ってＬＭ５に入出力するデータを制御する。
【００２３】
ＬＭ出力データ制御回路３００から出力された画像データは、画像処理部９０のプロセッサユニット（ＰＵ）４００で演算され、データ統合回路５００に入力される。本実施例の画像処理部９０はフィルタ処理を実行するが、データ統合回路５００に形状変換処理やラベリング処理を行なう回路を付加してもよい。
【００２４】
フィルタ処理された処理結果データは、データ選択制御回路６００に入力され、構成制御部３からの制御信号により処理結果データの選択を行い、処理結果メモリ部７００にデータを出力する。また、このデータ選択制御回路６００では、構成制御部３からの制御信号よりフィードバックの指示がある場合、フィードバック手段８００を介して処理結果データをＬＭ入力データ制御回路２００にフィードバックする。本発明の一実施形態であるパイプライン処理構成では、このフィードバックされた処理結果を再びＬＭ５に入力し、別のフィルタ処理を行うことができる。
【００２５】
図３に、パイプライン処理を行う画像処理装置の概略構成を示す。本実施形態は、フィルタ処理Ａ９０３の出力結果を再びＬＭ５に戻すことにより、異なるフィルタ処理Ｂ９０４をパイプライン的に処理する。このパイプライン処理構成は、図２（ｂ）または（ｃ）から変更できる。すなわち、ＬＭ５は図２（ｂ）、（ｃ）の場合と同じ３２ビット幅である。また、図２（ｃ）の５×５フィルタ処理９０２は乗算器を２５、加算器を２４使用しているので、その中から乗算器を９個×２、加算器を８個×２用いて、図３のフィルタ処理９０３，９０４を構成できる。あるいは、図２（ｂ）のシステムにおいて、乗算器を１８個、加算器を１６個それぞれ備えていれば、図３の処理構成への変更が可能になる。
【００２６】
次に、図１の各ブロックを詳細に説明する。構成制御部３は、制御装置１から画像データに関する情報や画像処理機能の実行命令をバス２を介して受け取る。
【００２７】
図４に、画像データ情報や画像処理機能情報の管理テーブルの一例を示す。これらの情報は、構成制御部３の記憶装置（図示なし）に設けられる管理テーブルに、制御装置１から設定される。同図（ａ）は、画面管理テーブルを示し、処理対象の画像データが記憶されているメモリを示す画像メモリチャネル番号や、処理を行なう画像画面上で開始する物理的なアドレス、画面のサイズ、さらには画像データのビット幅（ｗ）やカラー、モノクロといった画像種別を示す画面のデータタイプなどの画像データ情報を格納している。
【００２８】
同図（ｂ）は、画像処理機能設定テーブルを示し、フィルタ処理などの処理内容と、単独、パイプラインあるいは並列などの処理形態と、処理個数及び処理サイズなどを格納している。同図（ｃ）は、設定される処理機能の可否をチエックするための処理個数管理テーブルで、図示例はＬＭ５が３２ビット幅のとき、画像処理部９０による構成可能なフィルタ処理の処理数個数を示している。すなわち、画像データのビット幅（ｗ）と処理サイズ（フィルタ処理のカーネルサイズ）をパラメータとして、フィルタ処理の処理数個数が設定されている。例えば、画像データのビット幅がｗ＝８で、３×３フィルタ処理を行う場合、可能な処理個数は２であり、２つの異なるフィルタ処理をパイプラインで、または２つの同じフィルタ処理を並列処理で実行できる。
【００２９】
図５に構成制御部３の処理の流れを示す。構成制御部３では、画像データ情報の設定と画像処理機能の設定により（ｓ１０１，ｓ１０２）、ＬＭ５へのデータの入出力制御をはじめ、各ブロックを制御する信号を生成する（ｓ１０３）。これらの制御信号は、たとえば図５（ｂ）のように、画像データのビット幅（ｗ）と設定機能に基づいて発行される。
【００３０】
図５（ｂ）のテーブルは、データ幅が８ビットの３×３フィルタ処理の各ブロックの制御信号の例を、単独、パイプライン処理、並列処理の場合について示している。
【００３１】
構成制御部３からの制御信号で、メモリ制御部１０に対しては、画像データの記憶場所や画面サイズを設定する。パイプライン処理の場合、図５（ｂ）と後述する図６、図７に示すように、ＬＭ入力データ制御回路２００に対しては、処理対象メモリ部１００からのデータと、ＬＭ５の出力データと、画像処理結果のデータとから、ＬＭ５の入力データを作成するための制御信号を発生する。ＬＭ出力データ制御回路３００に対しては、画像処理機能に応じてＰＵ４００やデータ統合回路５００が３×３フィルタ処理の積和演算などを実現するように、ＬＭ５の出力（ＬＭ＿ｏｕｔ）３０１や、ＬＭ入力データ制御回路２００から直接入力するデータ（ＬＭ＿ｔｈｒ）３０２を基に、各ＰＵ４００に分配するブロックデータを作成するための制御信号を発生する。
【００３２】
次に、各ＰＵ４００に対しては、積和演算などが所望の機能を実現するように、係数の設定や、乗算、加算などの機能の選択を行なう制御信号を発生する。データ統合回路５００に対しては、たとえば図８に示す回路の構成を行う制御信号を発生し、各ＰＵ４００からの演算結果から積和演算の加算処理をする。これらは、基本的には従来技術と同様に行われる。
【００３３】
データ選択制御回路６００については、処理結果メモリ部７００に記憶する３×３フィルタ処理結果の選択や、パイプライン処理を実現するためにフィードバックする画像データを選択する信号を発生する。
【００３４】
構成制御部３は、全ての制御信号を発生した後に、画像処理を開始する起動信号をメモリ制御部１０に発生する（ｓ１０４）。メモリ制御部１０では、この起動信号により、画像データの記憶手段である各メモリにアクセスするためのアドレスや、タイミング信号を発生する。
【００３５】
以上により、図３のパイプライン処理構成の場合、構成制御部３は３２ビット幅のＬＭ５を理論上、８ビット毎にＬＭ０〜ＬＭ３に４分割し、分割した各ＬＭに対応する入力データの取り込みを可能にする。また、使用する画像処理機能に合わせて２組の３×３フィルタ処理の構成を行う。本実施形態では、３×３フィルタ処理について説明しているが、５×５フィルタ処理構成をとることもできる。つまり、フィルタサイズを自由に選択できるように、積和演算の構成をフィルタサイズによって変更できるようにしている。
【００３６】
図８に、異なる二つの３×３フィルタ処理を実現する構成、図９に、５×５フィルタ処理を実現する構成を示す。フィルタ処理における積和演算で、乗算はＰＵ４００で行なわれ、加算はデータ統合回路５００で行なわれる。フィルタサイズの制御は、データ統合回路５００においてデータの流れを制御することにより実現する。データの流れは、セレクタ５１０〜５５０によって制御し、フィルタサイズに応じて加算器を組み合わせることにより所望のフィルタ処理を実現する。したがって、図８と図９の構成の変更は、各セレクタ５１０〜５５０によってデータの流れを制御することにより可能となる。
【００３７】
本実施形態では、処理構成と画像処理に係わる全ての制御を構成制御部３が行なっている。しかし、同様の機能を制御装置１が行なったり、構成制御部３が行なう機能の一部を別のブロックにより代替するなど、本実施形態に対する他の代案が可能である。
【００３８】
次に、ＬＭ５の入出力制御について図６、図７及び図１０〜図１５を使用して詳細に説明する。まず、図６を用いてＬＭ入力データ制御回路２００、ＬＭ５及びＬＭ出力データ制御回路３００の関係を説明する。同図において、処理対象メモリ部１００から入力されるビット幅８ビットのデータ２０１をＭ［７：０］、データ選択制御回路６００からフィードバック手段８００を介して入力されるデータ２０３をＦＢ［７：０］、３２ビット幅のＬＭ５に入力するデータ２１０をＬＭ＿ｉｎ［３１：０］、ＬＭ５から出力されるデータ３０１（２０２）をＬＭ＿ｏｕｔ［３１：０］、ＬＭ入力データ制御回路２００からＬＭ出力データ制御回路３００にＬＭ５を介さずに入力されるデータ３０２をＬＭ＿ｔｈｒ［１５：０］と記述する。なお、各データの符号は、対応する信号線の符号に読み替えることもある。
【００３９】
まず、ＬＭ入力データ制御回路２００とＬＭ出力データ制御回路３００の機能の概要を説明する。ＬＭ入力データ制御回路２００においては、Ｍ［７：０］、ＦＢ［７：０］、ＬＭ＿ｏｕｔ［３１：０］からＬＭ５への入力データＬＭ＿ｉｎ［３１：０］と、ＬＭ出力データ制御回路３００への入力データＬＭ＿ｔｈｒ［１５：０］を生成する。このとき、ＬＭ＿ｉｎ［３１：０］とＬＭ＿ｔｈｒ［１５：０］は、画像データのビット幅に応じて制御され、そのビット幅が８ビットの場合、図９に示すように８ビットごとに切り別けて信号線を使用する。
【００４０】
図１０に、ＬＭ５の理論上の切り分け構成と入力データのビット幅の関係を示す。同図（ａ）のように、画像データのビット幅が１６ビットの場合は、図２（ｂ）の処理構成となるので、ＬＭ０にＬＭ＿ｉｎ［１５：０］、ＬＭ１にＬＭ＿ｉｎ［３１：１６］が入力される。同図（ｂ）のように、画像データのビット幅が８ビットで、図３の処理構成をとる場合、ＬＭ０にＭ［７：０］、ＬＭ１にＬＭ＿ｏｕｔ［７：０］、ＬＭ２にＦＢ［７：０］、ＬＭ３にＬＭ＿ｏｕｔ［２３：１６］が入力される。
【００４１】
次に、ＬＭ出力データ制御回路３００においては、ＬＭ＿ｏｕｔ［３１：０］とＬＭ＿ｔｈｒ［１５：０］からフィルタ処理に必要なデータを選択制御して、ＰＵ４００に出力する。ここで、３×３フィルタ処理Ａ，Ｂをパイプライン処理する場合のデータの流れについて、詳細に説明する。
【００４２】
図７に、ＬＭ出力データ制御回路３００の構成を示す。ＬＭ出力データ制御回路３００には、信号線３０１から垂直方向に１ラインもしくは２ライン遅延された画像データＬＭ＿ｏｕｔが、信号線３０２から垂直方向の遅延がない画像データＬＭ＿ｔｈｒがそれぞれ入力される。図中、信号線上の斜線に付記した数字は、各信号線の本数を表わし、伝達するビット数に対応している。
【００４３】
ＬＭ出力データ制御回路３００の内部では、水平方向の遅延回路（フリップフロップ）３１１，３１２を用いて、水平方向に２段遅延したデータを生成し、３×３フィルタ処理に必要なブロックデータ、すなわち画面上の３×３領域に対応する９個の画像データの組み合わせを作成し、フィルタ処理ＡのＰＵ４００の各々に分配する。また、フィルタ処理Ａの処理結果を用いるフィルタ処理Ｂに対しても、同様に遅延回路３１３，３１４を用いてブロックデータを作成する。なお、出力データの処理Ａと処理Ｂへの切り分けは、出力データビット切り分け回路３１５によって行われる。
【００４４】
図２０に、他の実施例によるＬＭ出力データ制御回路３００の構成を示す。水平方向の遅延回路３１１〜３１４及び３２１〜３２４をそれぞれ４段とすることによって、３×３と５×５の両方のフィルタ処理に適用できるようにしている。具体的には出力データビット回路に指定された処理サイズ（カーネルサイズ）に合わせて、出力データを発生させる。
【００４５】
図１１に、フィルタ処理Ａ，Ｂのデータ配列の関係を示す。この例は、積和演算の遅延がないときの関係を示し、図のフィルタＡはＡｍ，ｎの位置でのフィルタ処理の演算を示している。ここで、添え字のｍは画像のｘ座標を、ｎはｙ座標を指している。処理に使用される９つのデータは、ＬＭ出力データ制御回路３００により一組にまとめられ、９つ同時に積和演算を行なう回路であるＰＵ４００およびデータ統合回路５００に入力される。
【００４６】
次に、フィルタ処理Ａの処理結果に対して異なるフィルタ処理Ｂをパイプライン処理する仕組みについて説明する。フィルタ処理ＡにおけるＡｍ，ｎでの処理結果は、フィードバック手段８００を介して、ＬＭ入力データ制御回路２００に伝達され、フィルタ処理Ｂに使用される。このとき、Ａｍ，ｎでの処理結果はＢｍ，ｎとなる。このとき、フィルタ処理Ｂの出力結果は、フィルタ処理Ａの処理結果を処理しているため、フィルタ処理Ａの処理結果よりも１ラインと１画素だけ遅延した位置のものになる。つまり、フィルタ処理Ａは絶対座標で（ｍ，ｎ）の画素での結果を出力し、この時にはフィルタ処理Ｂは（ｍ−１，ｎ−１）の結果を出力する。
【００４７】
以上を整理すると、フィルタ処理Ａでは、処理対象メモリ部１００からのデータに対しフィルタ処理を行なっているのに対し、フィルタ処理Ｂでは、フィルタ処理Ａの処理結果に対してパイプライン的にフィルタ処理を行なっている。このとき、フィルタ処理Ａとフィルタ処理Ｂとの構成の違いは、処理対象メモリ部１００からのデータに対し処理を行なうか、フィルタ処理Ａの処理結果のデータに対し処理を行なうかであり、個々には単独のフィルタ処理の場合の処理構成と変わらない。
【００４８】
図１１に示したフィルタ処理Ａ，Ｂのパイプライン処理を実現するためのデータ制御について、さらに詳細に説明する。ここでのデータ制御の目的は、図１１に斜線部で示した３つのデータを同時に、ＬＭ＿ｏｕｔとＬＭ＿ｔｈｒの２つのデータから生成できるように、データの流れのタイミングを制御することにある。上記の斜線部を同時に生成するということは、同時刻においてＬＭ＿ｏｕｔとＬＭ＿ｔｈｒに上記斜線部のデータを発生することを意味する。
【００４９】
図１２に、図１１の斜線部のデータのビット構成を示す。図示で、ＬＭ＿ｉｎ、ＬＭ＿ｔｈｒ、ＬＭ＿ｏｕｔから切り分けされるデータをビット幅毎に上段に示し、そのデータに対応するフィルタ処理Ａ、Ｂでのデータ配列を下段に示している。
【００５０】
これらのビットの切り分け制御は、ＬＭ＿ｉｎに対しては図６におけるＬＭ入力データ生成回路２５０で、ＬＭ＿ｔｈｒに対してはＬＭ通過データ生成回路２５１で行なわれる。ＬＭ＿ｏｕｔに関しては、ＬＭ５から読み出されるデータが既に、図１２に示したビット構成になっている。
【００５１】
図１３に、フィルタ処理Ａ、Ｂにおけるタイミングチャートを示す。（ａ）はフィルタ処理における演算の遅延がない場合で、ＲＡはＬＭ５のリードアドレス、ＷＡはライトアドレスを示している。この例のＬＭ５には、そのビット幅が３２ビット、処理対象のビット幅が８ビットで、ＲＡで指定されたアドレスのデータを１クッロク後に出力する同期型メモリを使用している。
【００５２】
このとき、ＬＭ５の下位の１６ビットはフィルタ処理Ａに、上位の１６ビットはフィルタ処理Ｂに使用されるよう制御される。つまり、ＬＭ５と信号線２１０、３０２をフィルタ処理Ａ，Ｂで画像データのビット幅に合わせて２分割して使用できるように制御する。
【００５３】
次に、ＬＭ５の動作とフィルタ処理Ａおよびフィルタ処理Ｂとの関係を、図１４と図１５を用いてより具体的に説明する。図１４は、処理対象の画像画面でのデータ配列とＬＭ５のデータ配列を説明するための概念図である。ＬＭ５には、ＲＡで指定されたアドレスのデータを１クッロク後に出力する同期型メモリを使用している。フィルタＡで使用される画像データは丸数字、フィルタＢで使用される画像データは二重丸数字で示している。図示のように、ＬＡ５に対しＲＡ（＝８）、ＷＡ（＝７）が指示されているとき、フィルタ処理Ａでは矩形内の９つの画像データを用いデータ６８の処理を、同様にフィルタ処理Ｂでは処理Ａの結果データ５７（画像データ５７に対応）の処理を行っている。以下、矩形で示されたフィルタ処理に注目して説明する。
【００５４】
図１５は、（ａ）〜（ｃ）のように、ＬＭ５の動作を３クロック期間モニタリングした説明図である。以下では、フィルタＡで使用するデータには添字ａ、フィルタＢで使用するデータには添字ｂを付与して区別する。
【００５５】
同図（ａ）の状態では、ＷＡ＝５、ＲＡ＝６を示している。画像メモリ１００から画像データ５９ａが入力されると、ＬＭ５がそれに同期して、画像データ５７ａ，５８ａを出力するように制御される。このとき、フィルタ処理Ａは３７ａ，３８ａ，３９ａ，４７ａ，４８ａ，４９ａ，５７ａ，５８ａ，５９ａの画像データを使用してフィルタ処理を行い、その処理結果はデータ４８ｂである。データ４８ｂはＬＭ５の入力として使用されると同時に、フィルタ処理Ｂに使用される。フィルタ処理Ｂは、処理Ａの結果データ２６ｂ，２７ｂ，２８ｂ，３６ｂ，３７ｂ，３８ｂ，４６ｂ，４７ｂ，４８ｂを使用して、３７の位置の処理結果を出力する。
【００５６】
次に、１クロック後の同図（ｂ）の状態では、ＷＡ＝６、ＲＡ＝７となり、ＬＭ５からの出力は１クロック前に指定したアドレスのデータ５６ｂ，５７ｂ，６７ａ，６８ａである。このとき、画像メモリ１００から入力される画像データは６９ａ、フィルタ処理Ａの処理結果データは５８ｂである。また、フィルタ処理Ｂの処理結果データは、４７の位置のデータである。さらに、１クロック後の同図（ｃ）の状態では、ＷＡ＝７、ＲＡ＝８となり、ＬＭ５からの出力はデータ６６ｂ，６７ｂ，７７ａ，７８ａである。フィルタ処理Ａの処理結果データは６８ｂ、フィルタ処理Ｂの処理結果データは、５７の位置のデータである。
【００５７】
このように、画像メモリ１００から入力される画像データのビット幅に合わせて、毎クロックＷＡ及びＲＡがカウントアップされる。そして、画像メモリ１００から読み出される画像データに同調して、３×３フィルタ処理を実行できるようにＬＭ５を制御する。
【００５８】
なお、上記したＬＭ５の動作は２段のパイプライン処理についての説明ではあるが、個々のフィルタ処理Ａまたはフィルタ処理Ｂについてみれば、通常の３×３フィルタ処理や５×５フィルタ処理の動作と同じになる。
【００５９】
また、本実施形態では、フィルタ処理における演算の遅延段数を考慮していないが、遅延段数を考慮してもよい。遅延段数を考慮した場合、図１３（ｂ）に示すように、ＬＭ＿ｉｎ  およびＬＭ＿ｔｈｒ  におけるフィルタ処理Ａとフィルタ処理Ｂとのデータの組み合わせの差が１クロックになるだけで、制御方法は遅延がない場合と全く同様である。
【００６０】
このように、本実施形態によれば、ラインメモリの入出力をデータの組合せによって簡単に制御できるので、フィルタサイズの異なるフィルタ処理、さらにはパイプライン処理や並列処理などを、共通のハード（リソース）を用いてその処理構成を変更することで効率的に実現できる。以下に、処理形態の異なる他の実施例について説明する。
【００６１】
図１６は、画像データのビット幅が１６ビットの図２（ｂ）の処理構成において、３×３フィルタ処理９０１に入力されるデータのビット構成を示す。図１２の場合と同様に、ＬＭ＿ｉｎ、ＬＭ＿ｔｈｒ、ＬＭ＿ｏｕｔは制御されるデータを上段に、そのデータに対応するフィルタ処理Ａ９０１での対象データを下段に示している。前例と同様に、これらのビットの切り分け制御は、ＬＭ＿ｉｎに対してはＬＭ入力データ生成回路２５０で、ＬＭ＿ｔｈｒに対してはＬＭ通過データ生成回路２５１で行なわれる。ＬＭ＿ｏｕｔに関しては、ＬＭ５から読み出されるデータが既に図１０に示したビット構成になっている。
【００６２】
図１７に、画像データのビット幅が１ビットで、Ａ〜Ｐの１６段のパイプライン処理を行なう処理構成を示す。この場合にも、ＬＭ５を１ビット幅でＬＭ０〜ＬＭ３１に区分し、各３×３フィルタに入力するＬＭ＿ｉｎ、ＬＭ＿ｔｈｒ、ＬＭ＿ｏｕｔのデータを、図１２の場合の８ビット幅に対し１ビット幅で切り分け制御することで、同様に実現できる。
【００６３】
このように、画像データのビット幅に応じてＬＭの入出力を制御し、ＬＭの使用本数を実質的に最適化することにより複数段のパイプライン処理を可能とし、高速な画像処理を実現している。
【００６４】
図１８に、本発明の並列処理による画像処理装置の構成を示す。図示のように、ｎ個の処理対象メモリ部１００とｎ個の処理結果メモリ部７００を用いている以外は、図１の実施形態と同じ構成となる。
【００６５】
図１９に、２個の並列処理の処理構成を示す。３２ビット幅のＬＭを使用し、画像データのビット幅が８ビット、２個の３×３フィルタ処理Ａを並列処理するときの処理構成を示している。同図（ｂ）に示すように、一画面を２つに分割して並列に処理する場合、１個でフィルタ処理Ａを行なう処理時間を１／２に短縮できる。
【００６６】
この処理構成は、図３のパイプラインの処理構成から簡単に変更できる。たとえば、ＬＭ入力データ制御回路２００において、フィードバック手段８００によって伝達される処理結果データを、処理対象メモリ部１００からの画像データに変更するだけでよい。したがって、パイプライン処理が必要なときには図３の処理構成を採用し、並列処理が必要なときには図１４の処理構成を採用するように任意な構成が可能になる。もちろん、図２（ｃ）の処理構成からの変更も可能である。
【００６７】
【発明の効果】
本発明によれば、扱う画像データのビット幅と合わせ、一ライン分のラインメモリのビット幅を可変して理論上のラインメモリの本数を変更するので、画像データのビット幅と画像処理の設定機能に対応した処理構成を、ラインメモリや演算装置の規模の範囲内で柔軟に変更できる。
【００６８】
また、本発明によれば、扱う画像データのビット幅と画像処理サイズに合わせてラインメモリの入出力を制御することにより、複数段のパイプライン処理や複数組の並列処理を自由に構成することができ、画像処理の高速化が可能になる。
【００６９】
つまり、本発明によれば、扱う画像データのビット幅と画像処理の設定機能に合わせて、多様な処理構成をとることができるので、汎用性に優れリソースの使用効率が高い画像処理装置を提供できる。
【図面の簡単な説明】
【図１】本発明の一実施形態における画像処理装置の全体構成図。
【図２】ラインメモリを使用する画像処理装置の種々の処理構成を示す概念図。
【図３】本発明のパイプライン処理の画像処理装置の処理構成を示す概念図。
【図４】画像情報及び画像処理機能情報の設定内容を示すテーブル。
【図５】構成制御部による処理の流れと、発行される制御信号の一例を示す説明図。
【図６】ラインメモリの入力データを制御するＬＭ入力データ制御回路とその周辺回路の構成を示す機能ブロック図。
【図７】ＬＭ出力データ制御回路の構成を示す機能ブロック図。
【図８】３×３フィルタ処理を実現する画像処理部の回路構成を示す機能ブロック図。
【図９】５×５フィルタ処理を実現する画像処理部の回路構成を示す機能ブロック図。
【図１０】ラインメモリの理論上の分割構成を示す概念図。
【図１１】３×３フィルタ処理のパイプライン処理を実現するブロックデータの推移を示す説明図。
【図１２】図１１の斜線部に対応し、ＬＭ入力データ、ＬＭ通過データ及びＬＭ出力データをビット幅毎に示すデータ構成図。
【図１３】図１１のブロックデータのタイミングチャート。
【図１４】３×３フィルタ処理のパイプライン処理でのブロックデータとラインメモリの位置を示す説明図。
【図１５】ラインメモリのデータ移動を詳細に示す説明図。
【図１６】本発明の他の実施形態で、画像データが１５ビット幅の場合のＬＭ入力データ、ＬＭ通過データ及びＬＭ出力データをビット幅毎に示すデータ構成図。
【図１７】本発明の他の実施形態で、画像データが１ビット幅の場合の３×３フィルタ処理を１６段のパイプライン処理で行う処理構成の概念図。
【図１８】本発明の他の実施形態で、ｎ組の並列処理を行う画像処理装置の全体構成図。
【図１９】３×３フィルタ処理の２並列処理を行う処理構成と対象メモリの説明図。
【図２０】他の実施形態によるＬＭ出力データ制御回路の構成を示す機能ブロック図。
【符号の説明】
１…制御装置、２…制御装置と画像処理装置とのバスインタフェース、３…構成制御部、５…ラインメモリ（ＬＭ）、９０…画像処理部、１００…処理対象メモリ部、２００…ＬＭ入力データ制御回路、２５０…ＬＭ入力データ生成回路、３００…ＬＭ出力データ制御回路、３１１〜３１４…遅延回路、３２１〜３２４…遅延回路、３３０…出力データビット切り分け回路、４００…ＰＵ、５００…データ統合回路、６００…データ選択制御回路、７００…処理結果メモリ部。
【図１】
0003593439.tif 000002
【図２】
0003593439.tif 000003
【図３】
0003593439.tif 000004
【図４】
0003593439.tif 000005
【図５】
0003593439.tif 000006
【図６】
0003593439.tif 000007
【図７】
0003593439.tif 000008
【図８】
0003593439.tif 000009
【図９】
0003593439.tif 000010
【図１０】
0003593439.tif 000011
【図１１】
0003593439.tif 000012
【図１２】
0003593439.tif 000013
【図１３】
0003593439.tif 000014
【図１４】
0003593439.tif 000015
【図１５】
0003593439.tif 000016
【図１６】
0003593439.tif 000017
【図１７】
0003593439.tif 000018
【図１８】
0003593439.tif 000019
【図１９】
0003593439.tif 000020
【図２０】
0003593439.tif 000021