(57)【特許請求の範囲】
【請求項１】
レジスタ設定値または画素データからなる処理対象データを含むコマンドを処理する画像処理手段と、
前記画像処理手段で処理される処理対象データを、メモリ内のアドレスが連続する第１のアドレス空間に格納する第１格納手段と、
ダイレクトメモリアクセスにより、前記第１のアドレス空間から処理対象データを順次に読み出し、読み出した処理対象データにコマンド化のための制御情報を付加することにより前記画像処理手段が処理可能なコマンドを生成し、該コマンドを前記画像処理手段へ転送する第１転送手段と、
前記画像処理手段から出力された処理済のコマンドからレジスタ設定値または画素データを抽出し、抽出されたレジスタ設定値または画素データをダイレクトメモリアクセスにより順次に、メモリ内のアドレスが連続する第２のアドレス空間へ格納する第２転送手段とを備えることを特徴とする画像処理装置。
【請求項２】
前記第１転送手段は、前記第１のアドレス空間内の先頭の所定アドレス範囲に格納されたデータに基づいて、前記コマンド化のための制御情報を生成し、前記所定アドレス範囲から読み出したデータを前記画像処理手段へ転送しないことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１転送手段は、
前記処理対象データがレジスタ設定値であった場合、前記所定アドレス範囲から読み出したデータに基づいてレジスタ設定値の格納先の先頭のレジスタアドレスを決定し、
前記先頭のレジスタアドレスを含む制御情報を付加して１つ目のコマンドを生成し、２つ目以降のコマンドを生成するための制御情報に含まれるレジスタアドレスを、直前に生成したコマンドの制御情報に含まれているレジスタアドレスに所定値を加算することにより決定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第２転送手段は、
前記第２のアドレス空間に対するダイレクトメモリアクセスの開始の指示に応じて、前記第２のアドレス空間内の先頭の所定アドレス範囲に格納されたデータから、連続して格納されるレジスタ設定値のデータ量、或いは画素データのデータ量を取得し、
前記画像処理手段から順次に出力された処理済みのコマンドからレジスタ設定値または画素データを抽出して前記第２のアドレス空間へ順次に格納する処理を、取得した前記データ量に基づいて決定される回数だけ繰り返すことを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記第１のアドレス空間内の先頭の前記所定アドレス範囲に前記コマンド化のための制御情報の生成に用いられるデータを格納し、前記第１のアドレス空間内の前記所定アドレス範囲に続くアドレス空間に前記処理対象データを格納し、前記第１のアドレス空間の先頭アドレスをダイレクトメモリアクセスの開始アドレスとして前記第１転送手段に設定する制御手段を更に備えることを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記第２のアドレス空間内の先頭の前記所定アドレス範囲に連続して格納されるべきレジスタ設定値或いは画素データのデータ量を示すデータを格納し、前記第２のアドレス空間内の前記所定のアドレス範囲に続く、前記データ量に対応した大きさの領域を確保し、前記第２のアドレス空間の先頭アドレスをダイレクトメモリアクセスの開始アドレスとして前記第２転送手段に設定する制御手段を更に備えることを特徴とする請求項４に記載の画像処理装置。
【請求項７】
レジスタ設定値または画素データからなる処理対象データを含むコマンドを処理する画像処理手段を有する画像処理装置の制御方法であって、
第１格納手段が、前記画像処理手段で処理される処理対象データを、メモリ内のアドレスが連続する第１のアドレス空間に格納する第１格納工程と、
第１転送手段が、ダイレクトメモリアクセスにより、前記第１のアドレス空間から処理対象データを順次に読み出し、読み出した処理対象データにコマンド化のための制御情報を付加することにより前記画像処理手段が処理可能なコマンドを生成し、該コマンドを前記画像処理手段へ転送する第１転送工程と、
第２転送手段が、前記画像処理手段から出力された処理済のコマンドからレジスタ設定値または画素データを抽出し、抽出されたレジスタ設定値または画素データをダイレクトメモリアクセスにより順次に、メモリ内のアドレスが連続する第２のアドレス空間へ格納する第２転送工程とを備えることを特徴とする画像処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置及びその制御方法に関し、特にメモリから画像処理モジュールへのデータ転送に関する。
【背景技術】
【０００２】
一般に、画像処理モジュールは、レジスタ設定のためのＣＰＵインターフェース、及び、画像データ入出力のためのデータインターフェース、の２種類のインターフェースを有していた。このような画像処理モジュールは、ＣＰＵインターフェースによって制御を行うため、
・一連の画像処理が終了した後に割り込みによってＣＰＵに画像処理の終了を通知し、
・次の処理のためのレジスタ設定を行ってから次の画像処理を開始する、
というシーケンスが必要であった。また、ＣＰＵの変更に伴ってＣＰＵインターフェースが替わった場合、画像処理モジュールを作り直すか、ラッパー等によりインターフェースを変換しなければならなかった。
【０００３】
上記課題を解決するものとして、レジスタ設定用のデータと処理対象の画像データをコマンド化し、同一の経路で転送するという方法が提案されている。この方法による処理の流れを、図７を用いて説明する。
【０００４】
図７は一連の画像処理を実行する画像処理部のブロック図である。図７において、７０１はＣＰＵ、７０２，７０６はＤＭＡ転送を制御するＤＭＡＣ、７０３〜７０５は画像処理モジュールＡ〜Ｃ、７０７はメモリコントローラ、７０８はメモリである。なお、７０３〜７０５に示された画像処理モジュールとしてはγ補正回路や色変換回路などが挙げられる。なお、ＤＭＡはダイレクトメモリアクセスの略である。
【０００５】
ＣＰＵ７０１は画像処理の開始前、若しくは決められた処理単位毎に、各画像処理モジュールのレジスタに対して読み書きを行うためのレジスタコマンド、或いは画素データを格納したデータコマンドを生成する。
【０００６】
図６に各コマンドのフォーマットの具体例を示す。図６の（ａ）に示されるように、レジスタコマンドにはヘッダ情報、レジスタアドレス、レジスタ設定値が格納されている。また、ヘッダ情報には、コマンド識別ビット、モジュール識別ＩＤ、リードライト識別ビットが含まれる。コマンド識別ビットは、レジスタコマンドであるかデータコマンドであるかを示す。例えば、コマンド識別ビットが１であればレジスタコマンド、０であればデータコマンドであることを示す。画像処理モジュールはこのコマンド識別ビットを参照することにより、レジスタコマンド及びデータコマンドのどちらの種類のコマンドであるかを判断する。また、モジュール識別ＩＤは、レジスタコマンドにおいてどの画像処理モジュールへの設定かを示す。画像処理モジュールは、受信したレジスタコマンドが自分への設定であるかどうかをモジュール識別ＩＤを参照することにより判断する。また、リードライト識別ビットは、レジスタコマンドがリード、ライトのいずれのコマンドかを表す。例えば、このリードライト識別ビットが１であればレジスタライト（レジスタのライトコマンド）、０であればレジスタリード（レジスタのリードコマンド）であるとする。
【０００７】
一方、図６の（ｂ）に示されるように、データコマンドのヘッダ情報は、データコマンドであることを示す０の値を有するコマンド識別ビットと、データスタートビットやデータエンドビットなどの画像制御信号が含まれている。ＣＰＵ７０１は作成したコマンドをメモリ７０８へ格納する。
【０００８】
図８にメモリ７０８へ格納されたコマンドを示す。また、ＣＰＵ７０１は画像データもコマンド化し、データコマンドとしてメモリ７０８に格納する。所定の処理単位のコマンドがメモリ７０８に格納されると、ＣＰＵ７０１はＤＭＡＣ７０２およびＤＭＡＣ７０６のレジスタにメモリ７０８へのアクセスアドレスを設定し、起動する。
【０００９】
ＤＭＡＣ７０２はメモリ７０８から順次にコマンドを読み込み、画像処理モジュールＡへ転送する。画像処理モジュールＢ７０４、画像処理モジュールＣ７０５は、入力されたコマンドがレジスタのライトコマンドであり、且つモジュール識別ＩＤから自身を対象としたコマンドであると判断した場合には、レジスタ設定を行う。受け取ったコマンドがレジスタのリードコマンドの時は、レジスタアドレスで示される対象レジスタから読み取った値をリードコマンドのレジスタ設定値に設定し、次の画像処理モジュールへ転送する。受け取ったコマンドがデータコマンドの時は、そのデータを用いて処理を行い、処理した結果をデータコマンドに設定し、次の画像処理モジュールへ転送する。ＤＭＡＣ７０６は画像処理モジュールＣ７０５から出力されたコマンドを受け取り、メモリ７０８へ書き込む。
【００１０】
このように、レジスタの設定、データ入力を同一のポートから設定できるようにしているので、任意のシーケンスをＣＰＵの割込み無しに実行できる。また、ＣＰＵインターフェースが変更になっても、画像処理モジュールは一切変更する必要がないという長所を有する。
また、特許文献１には、ＣＰＵの負荷を軽減するために、転送元及び転送先のアドレスを生成する制御部を持ったＤＭＡ制御装置が記載されている。
【特許文献１】特開平１０−０１１３８８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、メモリ７０８にはレジスタ設定値以外のヘッダ情報やアドレスも格納するようにした場合には、大きなメモリ容量と転送帯域が必要となり、無駄なメモリ容量と転送帯域を消費することになる。また、画像データをコマンド化して格納するようにした場合には、ＣＰＵ７０１によるコマンド化の作業が必要となり、ＣＰＵの負荷も増大してしまう。更に、特開平１０−０１１３８８号のＤＭＡ制御装置を適用したとしても、コマンド化に関わる作業は解消されない。
【００１２】
本発明は、上記の課題に鑑みてなされたものであり、ダイレクトメモリアクセスを用いてメモリから画像処理モジュールへデータを転送するにおいて、メモリに要求される容量と転送帯域を小さくすることを可能にすることを目的とする。
【課題を解決するための手段】
【００１３】
上記の目的を達成するための本発明の一態様による画像処理装置は以下の構成を備える。すなわち、
レジスタ設定値または画素データからなる処理対象データを含むコマンドを処理する画像処理手段と、
前記画像処理手段で処理される処理対象データを、メモリ内のアドレスが連続する第１のアドレス空間に格納する第１格納手段と、
ダイレクトメモリアクセスにより、前記第１のアドレス空間から処理対象データを順次に読み出し、読み出した処理対象データにコマンド化のための制御情報を付加することにより前記画像処理手段が処理可能なコマンドを生成し、該コマンドを前記画像処理手段へ転送する第１転送手段と、
前記画像処理手段から出力された処理済のコマンドからレジスタ設定値または画素データを抽出し、抽出されたレジスタ設定値または画素データをダイレクトメモリアクセスにより順次に、メモリ内のアドレスが連続する第２のアドレス空間へ格納する第２転送手段とを備える。
【００１４】
又、上記の目的を達成するための、本発明の他の態様による画像処理方法は、
レジスタ設定値または画素データからなる処理対象データを含むコマンドを処理する画像処理手段を有する画像処理装置の制御方法であって、
第１格納手段が、前記画像処理手段で処理される処理対象データを、メモリ内のアドレスが連続する第１のアドレス空間に格納する第１格納工程と、
第１転送手段が、ダイレクトメモリアクセスにより、前記第１のアドレス空間から処理対象データを順次に読み出し、読み出した処理対象データにコマンド化のための制御情報を付加することにより前記画像処理手段が処理可能なコマンドを生成し、該コマンドを前記画像処理手段へ転送する第１転送工程と、
第２転送手段が、前記画像処理手段から出力された処理済のコマンドからレジスタ設定値または画素データを抽出し、抽出されたレジスタ設定値または画素データをダイレクトメモリアクセスにより順次に、メモリ内のアドレスが連続する第２のアドレス空間へ格納する第２転送工程とを備える。
【発明の効果】
【００１５】
本発明によれば、小さいメモリ容量と小さい転送帯域のメモリで画像処理モジュールを動作させることが可能となる。また、データのコマンド化という処理からＣＰＵを解放することができる。
【発明を実施するための最良の形態】
【００１６】
以下添付図面に従って本発明に係る実施形態を説明する。
【００１７】
図１は、実施形態による画像処理装置の構成を示すブロック図である。図１において、１０１はＣＰＵ、１０２，１０６はＤＭＡＣ、１０３〜１０５は画像処理モジュールＡ〜Ｃ、１０７はメモリコントローラ、１０８はメモリ、１０９はコマンド作成部、１１０はコマンド分解部である。なお、図１では画像処理モジュールが３つの場合を示したが、画像処理モジュールの数は、４つ以上であってもよいし２つ以下であってもよい。
【００１８】
ＣＰＵ１０１はメモリ１０８へレジスタ設定値や画像データの格納を行う。以下、レジスタ設定値や画像データを総称して処理対象データともいう。ＤＭＡＣ１０２はメモリ１０８からダイレクトメモリアクセスにより処理対象データを読み出す。コマンド作成部１０９は、読み出したデータを用いて、図６に示したようなコマンドを生成する。そして、ＤＭＡＣ１０２は、コマンド作成部１０９により作成されたコマンドを画像処理モジュールＡ１０３へ転送する。ＤＭＡＣ１０２内のコマンド作成部１０９は、メモリ１０８から読み出されたレジスタ設定値或いは画像データに、コマンド化のための制御情報を付加することによりコマンドを作成する。
【００１９】
なお、図６の（ａ）に示すように、レジスタコマンドの制御情報は、ヘッダ情報とレジスタアドレスで構成される。又、図６の（ｂ）に示すように、データコマンドの制御情報はヘッダ情報で構成される。画像処理モジュールＡ１０３、画像処理モジュールＢ１０４、画像処理モジュールＣ１０５は入力されたコマンドに応じて所定の処理を行う。すなわち、これらの画像処理モジュールは、レジスタ設定値または画素データに制御情報が付加された形態を有する、図６に示したコマンドを処理する。そのような画像処理モジュールの例としてはγ補正回路や色変換回路などが挙げられる。
【００２０】
ＤＭＡＣ１０６はメモリコントローラ１０７へレジスタ設定値と画素データを転送し、それらをメモリ１０８へ書き込ませる。ＤＭＡＣ１０６内のコマンド分解部１１０は、画像処理モジュールＣ１０５から受け取ったコマンドを分解し、レジスタ設定値または画素データを作成する。すなわち、ＤＭＡＣ１０６は、画像処理モジュールＣ１０５から出力された処理済のコマンドからコマンド分解部１１０によって抽出されたレジスタ設定値或いは画素データをメモリ１０８へ書き込む、第２転送部として機能する。
【００２１】
詳細な説明をする前に、レジスタコマンドにしたがったレジスタ設定の対象となる画像処理モジュールのレジスタについて説明しておく。図２は画像処理モジュールのレジスタ構成を説明する図である。画像処理モジュールＡ１０３のＩＤを１、レジスタのスタートアドレスをＳＡ１、レジスタの個数をＮ１とする。同様に、画像処理モジュールＢ１０４のＩＤを２、レジスタのスタートアドレスをＳＡ２、レジスタの個数をＮ２とする。更に、画像処理モジュールＣ１０５のＩＤを３、レジスタのスタートアドレスをＳＡ３、レジスタの個数をＮ３とする。また、レジスタ設定値のデータ幅は３２ｂｉｔであるとする。また、本実施形態では、１つのアドレスに８ビットが割り当てられているものとする。
【００２２】
次に、ＣＰＵ１０１がメモリ１０８にコマンド作成のために必要なデータを格納する様子を、図３を用いて説明する。メモリ１０８へレジスタ設定値を格納する場合は、レジスタ設定値を格納する前に、まずヘッダ情報を格納する。即ち、ヘッダ情報として、図３の（ａ）中のメモリアドレスＭＳＡ０、ＭＳＡ０＋４（Ｎ１＋１）、・・・に示すように、
・３１ｂｉｔ目から２６ｂｉｔ目までにモジュールＩＤ、
・２５ｂｉｔ目にリードライト識別ビット（１のときライトコマンド、０のときリードコマンドとする）、
・２４ｂｉｔ目から１６ｂｉｔ目までにレジスタの個数、
・１５ｂｉｔ目から０ｂｉｔ目までにレジスタの先頭アドレスを格納した３２ビットの制御データが格納される。そして、次のメモリアドレスからは、先のレジスタの個数分だけ、画像処理モジュールへの処理対象データとしてのレジスタ設定値が格納される。
【００２３】
一方、画素データを格納する場合はヘッダ情報として、図３の（ａ）においてメモリアドレスＭＳＡ０＋４（Ｎ１＋Ｎ２＋Ｎ３＋３）に示すように、
・３１ｂｉｔ目から２６ｂｉｔ目までにはモジュールＩＤとして０が、
・２５ｂｉｔ目から０ｂｉｔ目までには入力する画素数を格納した３２ビットの制御データが格納される。そして、次のメモリアドレスからは、この画素数分だけ、画像処理モジュールへの処理対象データとしての画素データが格納される。
【００２４】
したがって、図３の（ａ）に示されるように、「ＭＳＡ０〜ＭＳＡ０＋４＊（Ｎ１）」等のメモリ１０８における連続するアドレス空間にコマンド化のための制御情報の生成に用いられるデータと転送すべき処理対象データが格納されることになる。以下、図３の（ａ）に示されるような、制御情報を生成するためのデータと転送対象となる処理対象データを格納するためのメモリ内の連続するアドレス空間を、第１のアドレス空間と称する場合もある。
【００２５】
次に、ＣＰＵ１０１は、ＤＭＡＣ１０６が画像処理モジュールＣ０１０５から出力されたデータをメモリへ格納するために必要なヘッダ情報を、メモリ１０８へ格納する。即ち、レジスタ設定値を格納する場合は、図３の（ｂ）においてメモリアドレスＭＳＡ１、ＭＳＡ１＋４（Ｎ１＋１）、・・・に示すように、
・３１ｂｉｔ目から２６ｂｉｔ目までにモジュールＩＤが、
・２４ｂｉｔ目から１６ｂｉｔ目までにレジスタの個数が格納される。
【００２６】
一方、画素データを格納する場合は、図３の（ｂ）においてメモリアドレスＭＳＡ１＋４（Ｎ１＋Ｎ２＋Ｎ３＋３）に示されるように、
・３１ｂｉｔ目から２６ｂｉｔ目までにモジュールＩＤとして０が、
・２５ｂｉｔ目から０ｂｉｔ目までに入力する画素数が格納される。
【００２７】
又、図３の（ｂ）に示されるように、ヘッダ情報を格納したアドレスに続けて、当該制御データによって示される個数のレジスタや画素のデータを格納するための連続するアドレス空間が確保される。
【００２８】
こうして、メモリ１０８の連続するアドレス空間内の先頭の所定アドレス範囲に、連続して格納されるべきレジスタ設定値或いは画素データのデータ量を示すデータが格納される。そして、連続するアドレス空間内の上記所定アドレス範囲に続いて、そのデータ量に対応する大きさのメモリ領域が確保される。なお、このメモリ内の連続するアドレス空間を第２のアドレス空間と称する場合もある。
【００２９】
次にＣＰＵ１０１は、ＤＭＡＣ１０２のレジスタにメモリアドレスＭＳＡ０を、ＤＭＡＣ１０６のレジスタにメモリアドレスＭＳＡ１を設定する。こうして、ＣＰＵ１０１は、メモリ１０８の第１のアドレス空間内の先頭の所定アドレス範囲に制御情報生成のためのデータを格納し、所定のアドレス範囲に続く領域に処理対象データを格納する第１格納部として機能する。そして、当該第１のアドレス空間の先頭アドレスをダイレクトメモリアクセスの開始アドレスとしてＤＭＡＣ１０２に設定する。又、ＣＰＵ１０１は、メモリ１０８の第２のアドレス空間内の先頭の所定アドレス範囲にこれから格納されるデータ量を示す制御情報を格納し、第２のアドレス空間内の所定アドレス範囲に続けて当該データ量に対応した領域を確保する第２格納部として機能する。そして、第２のアドレス空間の先頭アドレスをダイレクトメモリアクセスの開始アドレスとしてＤＭＡＣ１０６に設定する。
【００３０】
ＤＭＡＣ１０２は動作開始後、ＤＭＡＣ１０２の内部のアドレスカウンタへ、レジスタに設定されたメモリアドレスＭＳＡ０をセットする。この処理により、ＤＭＡＣ１０２はダイレクトメモリアクセスによりメモリ１０８の第１のアドレス空間から処理対象データを順次に読み出す。そして、コマンド作成部１０９は、読み出した処理対象データに制御情報を付加することにより画像処理モジュールが処理可能なコマンドを生成し、このコマンドを画像処理モジュールＡ１０３へ転送する。すなわち、ＤＭＡＣ１０２及びコマンド作成部１０９は、メモリ１０８より読み出した処理対象データをコマンド化して画像処理モジュールＡ１０３へ転送する第１転送部を構成する。
【００３１】
次に、ＤＭＡＣ１０２内のコマンド作成部１０９によるコマンド作成処理の手順を図４に示すフローチャートを用いて更に詳細に説明する。
【００３２】
図４において、ＤＭＡＣ１０２はレジスタ設定処理を開始する（ステップＳ４０１）。そして、ＤＭＡＣ１０２は、アドレスカウンタが示すメモリ１０８のメモリアドレスからデータを読み出し、それをＤＭＡＣ１０２が有する不図示のレジスタへ記憶する（ステップＳ４０２）。この処理により、ヘッダ情報がＤＭＡＣ１０２のレジスタへ記憶されることになる。続いて、アドレスカウンタをインクリメントする（ステップＳ４０３）。
【００３３】
次に、コマンド作成部１０９は、ステップＳ４０２でレジスタに記憶されたヘッダ情報のモジュールＩＤが０であるかどうかを判断する（ステップＳ４０４）。そして、モジュールＩＤが０でない場合は、コマンド作成部１０９は当該コマンドがレジスタコマンドであると判断する。この場合、コマンド作成部１０９は、モジュールＩＤとリードライト識別ビットの値とレジスタの個数とレジスタアドレスを自身のレジスタに記憶する（ステップＳ４０５）。
【００３４】
次に、コマンド作成部１０９は、以降の処理（ステップＳ４０７〜ステップＳ４１０）が、規定数回だけ処理が行われたか否かを判断する（ステップＳ４０６）。本実施形態では、１個のレジスタのデータが３２ビットであり（図３の（ａ））、４つのアドレスを必要とするので、ステップＳ４０５で記憶したレジスタの個数×４が規定数となる。そして、処理回数が規定数に達した場合には、本処理を終了する（ステップＳ４１６）。一方、処理回数が規定数に達していない場合には、コマンド作成部１０９は、アドレスカウンタが示すメモリ１０８のメモリアドレスからデータ（レジスタ設定値）を読み出す（ステップＳ４０７）。そして、コマンド作成部１０９は、ステップＳ４０５で記憶したモジュールＩＤと、リードライト識別ビットの値と、レジスタアドレスとを用いて図６の（ａ）の形式のレジスタコマンドを作成する（ステップＳ４０８）。続いて、コマンド作成部１０９は、レジスタアドレスをインクリメントし（ステップＳ４０９）、アドレスカウンタをインクリメントし（ステップＳ４１０）、ステップＳ４０６へ戻る。
【００３５】
上述したように、レジスタ設定値に付加される制御情報には、画像処理モジュールにおける当該レジスタ設定値の格納先のレジスタアドレスが含まれている。したがって、コマンド作成部１０９は、最初のコマンド作成時において、制御データに基づいて１つ目のレジスタアドレスを決定する（ステップＳ４０５、Ｓ４０８）。そして、２つ目以降のコマンドのレジスタアドレスについては、直前のコマンドの制御情報に含まれているレジスタアドレスに所定値を加算した値が用いられる（ステップＳ４０９）。
【００３６】
ステップＳ４０４においてモジュールＩＤが０である場合は、コマンド作成部１０９は、データコマンドとして当該ヘッダ情報から画素数を取得し、自身のレジスタに記憶する（ステップＳ４１１）。次に、以降の処理（ステップＳ４１３〜ステップＳ４１５）が、規定数回だけ処理が行われたか否かを判断する（ステップＳ４１２）。ここで、規定回数とは、例えば、「画素数」を「１アドレスに格納される画素数」で割った値である。本実施形態では、図３の（ｂ）に示されるように、１つの画素が４８ビットを有するので、６つのアドレスを必要としており、ステップＳ４１１で記憶した画素数×６が規定数となる。そして、コマンド作成部１０９は、規定数に達した場合には処理を終了する（ステップＳ４１６）。
【００３７】
ステップＳ４１２で規定数に達していないと判定された場合は、コマンド作成部１０９は、続けてアドレスカウンタが示すメモリアドレスからデータを読み出し（ステップＳ４１３）、図６の（ｂ）の形式のデータコマンドを作成する（ステップＳ４１４）。なお、ステップＳ４１４のコマンド作成において、コマンド作成部１０９は、ステップＳ４１２のループ回数を参照して、最初の画素のコマンド作成時にはデータスタートを１にセットし、他の画素に対してはデータスタートを０にセットする。また、最後の画素の時には、コマンド作成部１０９は、データエンドを１にし、他の画素に対してはデータエンドを０にセットする。次に、コマンド作成部１０９は、アドレスカウンタをインクリメントし（ステップＳ４１５）、処理をステップＳ４１２へ戻す。
【００３８】
以上の手順によって作成されたコマンドの例を図５に示す。図５において、矢印で示された順にコマンドが作成転送される。ここでヘッダ１からヘッダ３は、レジスタコマンドのためのヘッダであり、コマンド識別ビットには１が、モジュール識別ＩＤにはそれぞれ１から３の値が、リードライト識別ビットにはライトを示す１が格納されている。また、ヘッダ（ＤＳ）、ヘッダ（Ｄ）、ヘッダ（ＤＥ）はそれぞれデータコマンドのヘッダを表しており、コマンド識別ビットとして０が格納されている。また、データ制御用フラグとして、ヘッダ（ＤＳ）にはデータスタート＝１とデータエンド＝０が、ヘッダ（Ｄ）にはデータスタート＝０とデータエンド＝０が、ヘッダ（ＤＥ）にはデータスタート＝０とデータエンド＝１が格納されている。
【００３９】
以上のように、コマンド作成部１０９は、第１のアドレス空間内の先頭の所定アドレス範囲に格納されたデータに基づいて、第１のアドレス空間内のレジスタ設定値或いは画素データをコマンド化するための制御情報を生成する。そして、コマンド作成部１０９は、第１のアドレス空間の上記所定アドレス範囲以降から読み出した処理対象データを、上記制御情報を付加することによりコマンド化し、画像処理モジュールＡ１０３へ転送する
【００４０】
作成されたコマンドは画像処理モジュールＡ１０３へ転送され、全ての画像処理モジュールを通過してレジスタ設定が行われる。
【００４１】
ＤＭＡＣ１０６は動作の開始後、ＤＭＡＣ１０６の内部のアドレスカウンタに、予めレジスタに設定されたメモリアドレスＭＳＡ１がセットされる。
【００４２】
次に、ＤＭＡＣ１０６内のコマンド分解部１１０は、コマンドの分解処理を行う。その処理手順を図９に示すフローチャートを用いて説明する。
【００４３】
図９において、ＤＭＡＣ１０６のコマンド分解部１１０は、コマンド分解処理を開始し（ステップＳ９０１）、アドレスカウンタが示すメモリ１０８のメモリアドレスからデータを読み出し、自身が有する不図示のレジスタに記憶する（ステップＳ９０２）。ここで読み出され、記憶されるデータは、図３の（ｂ）に示した、アドレスＭＳＡ１のヘッダ情報である。続いて、コマンド分解部１１０は、アドレスカウンタをインクリメントする（ステップＳ９０３）。
【００４４】
次に、コマンド分解部１１０は、ステップＳ９０２で記憶したヘッダ情報のモジュールＩＤが０であるかを判断する（ステップＳ９０４）。モジュールＩＤが０でない場合は、コマンド分解部１１０は、当該ヘッダ情報がレジスタコマンドに関連するものと判断し、当該ヘッダ情報の１６〜２４ビット目で表される値をレジスタの個数としてＤＭＡＣ１０６のレジスタに記憶する（ステップＳ９０５）。次に、コマンド分解部１１０は、以降の処理（ステップＳ９０７〜ステップＳ９０８）が、規定数回だけ行われたか否かを判断する（ステップＳ９０６）。この規定数は、ステップＳ４０６で説明したものと同様である。処理回数が規定数に達した場合には本処理を終了する（ステップＳ９１３）。処理回数が規定数に達していない場合には、処理を継続する。すなわち、画像処理モジュールＣ１０５からコマンドを受け取り、当該コマンド内のレジスタ設定値をアドレスカウンタで示すメモリアドレスへ格納する（ステップＳ９０７）。続いて、コマンド分解部１１０は、アドレスカウンタをインクリメントし（ステップＳ９０８）、処理をステップＳ９０６へ戻す。
【００４５】
一方、ステップＳ９０４において、モジュールＩＤが０であると判定された場合、コマンド分解部１１０は、当該ヘッダ情報の０〜２５ビットに記録されている値を画素数として記憶する。次に、コマンド分解部１１０は、以降の処理（ステップＳ９１１〜ステップＳ９１２）が、規定数回だけ行われたか否かを判断する（ステップＳ９１０）。この規定数は、ステップＳ４１２で説明したものと同様である。処理回数が規定数に達した場合には、本処理を終了する（ステップＳ４１６）。処理回数が規定数に達しない場合には、コマンド分解部１１０は、画像処理モジュール３からコマンドを受け取り、コマンド内の画素データをアドレスカウンタで示されるメモリ１０８のメモリアドレスへ格納する。続いて、コマンド分解部１１０は、アドレスカウンタをインクリメントし（ステップＳ９１２）、処理をステップＳ９１０へ戻す。
【００４６】
以上のように、ＤＭＡＣ１０６及びコマンド分解部１１０は、画像処理モジュールＣ１０５から順次に出力されたコマンドからデータを抽出してメモリ１０８の第２のアドレス空間へ順次に格納する。このとき、抽出及び格納する処理は、ステップＳ９０５またはステップＳ９０９で取得されたデータ量（レジスタの個数、画素数））に基づいて決定される回数だけ繰り返される。
【００４７】
上記手順によってメモリ１０８に格納されたレジスタ設定値及び画像データの様子を図１０に示す。すなわち、ＤＭＡＣ１０６は、図３の（ｂ）のように用意されたメモリ１０８のアドレス空間に、画像処理モジュールＣ１０５から受信したコマンドのレジスタ設定値や画素データを、図１０に示されるように格納する。
【００４８】
このように、ＤＭＡＣ１０２がコマンド作成を行い、ＤＭＡＣ１０６がコマンド分解を行う構成にすることによって、従来メモリにコマンドを格納していた場合に格納されていたヘッダ情報のような冗長なデータがなくなる。そのため、メモリ容量や、ＤＭＡＣとメモリ間の転送帯域の削減が可能となる。また、ＣＰＵ１０１がレジスタ設定値や画素データをコマンドに変換する手間もなくなる。
【００４９】
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【００５０】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００５１】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【００５２】
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記憶媒体としては以下が挙げられる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などである。
【００５３】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００５４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【００５５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【００５６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行なう。
【図面の簡単な説明】
【００５７】
【図１】実施形態による画像処理装置の構成を示すブロック図である。
【図２】実施形態による画像処理モジュールのレジスタアドレスを説明する図である。
【図３】（ａ）は、ＣＰＵによるレジスタ設定値と画素データのメモリへの格納状態を表す図であり、（ｂ）は、画像処理モジュールから送信されたレジスタ設定値と画素データをメモリへ格納するのに必要なヘッダ情報の格納状態を表す図である。
【図４】実施形態に係るコマンド作成部による、コマンド作成の手順を示すフローチャートである。
【図５】実施形態のコマンド作成部による、作成したコマンドの一覧と作成順序を示す図である。
【図６】実施形態によるコマンドのフォーマットを示す図である。
【図７】一般的な画像処理装置の構成を示すブロック図である。
【図８】一般的な画像処理装置において、コマンドをメモリに格納した状態を示す図である。
【図９】実施形態のコマンド分解部による、コマンドの分解の手順を示すフローチャートである。
【図１０】実施形態に係る、画像処理モジュールから入力されたレジスタ設定値と画素データをメモリに格納した状態を表す図である。
【図１】
0004876051.tif 000002
【図２】
0004876051.tif 000003
【図３】
0004876051.tif 000004
【図４】
0004876051.tif 000005
【図５】
0004876051.tif 000006
【図６】
0004876051.tif 000007
【図７】
0004876051.tif 000008
【図８】
0004876051.tif 000009
【図９】
0004876051.tif 000010
【図１０】
0004876051.tif 000011