(57)【要約】【課題】  画像の管理方法が異なるハードウェアに対して、この管理方法に従って画像を提供する技術を提供すること。【解決手段】  ＤＭＡＣ２０４は設定された「ＲＡＭ２１０上のアドレス」から、設定された「データ長」分だけをデータメモリ２０３に転送し、命令実行ユニット２０１は一列分のタイルの画像をつなげた画像（ラスター形式の画像）を生成する。画像処理ユニット２０５がこのラスター形式の画像を処理すると、命令実行ユニット２０１はこのラスター形式の画像をタイルに分割し、夫々のタイルの画像データに、夫々のタイルの画像データの処理前の画像に付加されていたヘッダ情報を付加し、パケットとして再度格納する。そして命令実行ユニット２０１は、各パケットのデータをＲＡＭ２１０中の予め決められた領域に転送する。【選択図】  図２
2005110124.tif 000002
【特許請求の範囲】
【請求項１】
原画像を構成する各タイルのデータを記憶する記憶装置から、夫々のタイルのデータをＤＭＡＣ（Direct Memory Access Controller）によって、画像処理装置の処理対象の画像データを格納するためのメモリに転送する画像転送装置が行う画像転送方法であって、
前記記憶装置から前記原画像における一列分のタイルのデータをＤＭＡＣ（Direct Memory Access Controller）を用いて前記画像転送装置が有する第１のメモリに転送する転送工程と、
前記転送工程で前記第１のメモリに転送された夫々のタイルのデータを用いて、前記一列分のタイルが示す画像を生成する生成工程と、
前記生成工程で生成された画像を記憶している前記第１のメモリにおける第１のアドレス、及び前記画像処理装置が当該画像に対して画像処理した結果を格納するための第２のメモリにおける第２のアドレスを前記画像処理装置に設定する設定工程と
を備えることを特徴とする画像転送方法。
【請求項２】
前記生成工程では、前記転送工程で前記第１のメモリに転送された夫々のタイルのヘッダを参照し、当該夫々のタイルの画像を、当該夫々のタイルの前記原画像における並び順に並べることで、前記一列分のタイルが示す画像を生成することを特徴とする請求項１に記載の画像転送方法。
【請求項３】
前記画像処理装置は、ラスター形式で画像を処理する装置であることを特徴とする請求項１に記載の画像転送方法。
【請求項４】
画像転送装置であって、
画像処理装置の処理対象の画像データを格納するための第１のメモリと、
前記画像処理装置が画像処理した結果を格納するための第２のメモリと、
原画像を構成する各タイルのデータを記憶する記憶装置から、一列分のタイルのデータをＤＭＡＣ（Direct Memory Access Controller）によって、前記第１のメモリに転送する転送手段と、
前記転送手段が前記第１のメモリに転送した夫々のタイルのデータを用いて、前記一列分のタイルが示す画像を生成する生成手段と、
前記生成手段が生成した画像を記憶している前記第１のメモリにおける第１のアドレス、及び前記画像処理装置が当該画像に対して画像処理した結果を格納する、前記第２のメモリにおける第２のアドレスを前記画像処理装置に設定する設定手段と
を備えることを特徴とする画像転送装置。
【請求項５】
請求項４に記載の画像転送装置を１つ以上備えることを特徴とするコンピュータ。
【請求項６】
コンピュータに、請求項１乃至３の何れか１項に記載の画像転送方法を実行させることを特徴とするプログラム。
【請求項７】
請求項６に記載のプログラムを格納し、コンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原画像を構成する各タイルのデータを記憶する記憶装置から、夫々のタイルのデータをＤＭＡＣ（Direct Memory Access Controller）によって、画像処理装置の処理対象の画像データを格納するためのメモリに転送する技術に関するものである。
【背景技術】
【０００２】
解像度の高い画像データを扱う画像処理システムでは、画像データを２次元的にメモリに格納することが多い。また画像がカラー画像である場合、画像データのサイズは大きなものとなることが多いため、更にＪＰＥＧ等の画像圧縮を行い、メモリに格納されることがほとんどである。
【０００３】
そのため、画像圧縮される画像データは、あるまとまった処理単位でメモリに格納されている。通常、この単位はＪＰＥＧ画像圧縮を前提にしているので、ｘ方向に８画素、ｙ方向に８画素の８×８を単位とするのが一般的である。この単位を最小単位（ブロック）とし、更にこのブロックがｘ、ｙ方向に整数倍された２次元画像を処理の基本単位（例えば、４×４ブロック）として、メモリ中に格納する。そしてこの基本単位を各種の画像処理ハードウェアに送り、その処理結果を再度メモリに保存する方式が、画像圧縮を前提としたメモリの効果的な管理方法として優れているといえる（例えば特許文献１を参照）。
【０００４】
一方、画像圧縮系ではない、色空間変換などの比較的単純な画像変換を行うハードウェアは、入力データおよび出力データをビットストリーム（一次元）で扱うように構成されるのがほとんどである。すなわち、画像データをｘ方向に１ライン分処理し、その処理が終了すると、ｙ方向に１つ処理対象のラインをずらし、順次処理していく方式である。また、画像を補正するようなハードウェアにおいても、対象となるラインの前後の２ラインの画像データを参照することもあるが、基本的に一次元データを処理するように構成されるのがほとんどである。
【０００５】
このため、メモリ中の２次元画像データを画像処理ハードウェアに適した一次元データに変換し、さらに画像処理後の一次元データをメモリ中のニ次元データに変換して、メモリに格納するといったデータ変換のための機構がＤＭＡＣ（Direct Memory Access Controller）本来のデータ転送機能（指定されたメモリアドレスから指定されたサイズ分だけデータを指定されたメモリアドレスに連続転送する）以外にも必要であった。
【０００６】
また上記機構はメインＣＰＵの負荷の増大を避ける目的もあり、またその処理速度の点から、ＤＭＡＣで実現されていた。
【特許文献１】特開２００３−２８６１７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、ハードウェアで実現されている制約から、メモリ中の画像データの管理方法が変更されたり、あるいは新規の画像変換ハードウェアが追加され、その画像変換ハードウェアに適したＤＭＡＣチャネル数を増やす、あるいはＤＭＡＣの機能を追加するといったことは、いたずらにハードウェア規模の増大を招き、スケーラブルな処理性能の増加が困難であった。
【０００８】
特に、メモリ中の２次元画像データの管理方法が変更されると、ＤＭＡＣは再度設計し直されることになり、将来増加していくであろうさまざまな画像データを取り扱う可能性がある場合、その対応に遅れをとってしまうことになる。
【０００９】
また、これらＤＭＡＣを制御するソフトウェアは、従来のソフトウェアとの互換性を保ちながら、新規ＤＭＡＣも制御することが必要となり、ハードウェアだけでなく、それを制御するソフトウェアの規模、複雑度の増大を招くことにもなる。
【００１０】
本発明は以上の問題に鑑みてなされたものであり、画像の管理方法が異なるハードウェアに対して、この管理方法に従って画像を提供する技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の目的を達成するために、例えば本発明の画像転送方法は以下の構成を備える。
【００１２】
すなわち、原画像を構成する各タイルのデータを記憶する記憶装置から、夫々のタイルのデータをＤＭＡＣ（Direct Memory Access Controller）によって、画像処理装置の処理対象の画像データを格納するためのメモリに転送する画像転送装置が行う画像転送方法であって、
前記記憶装置から前記原画像における一列分のタイルのデータをＤＭＡＣ（Direct Memory Access Controller）を用いて前記画像転送装置が有する第１のメモリに転送する転送工程と、
前記転送工程で前記第１のメモリに転送された夫々のタイルのデータを用いて、前記一列分のタイルが示す画像を生成する生成工程と、
前記生成工程で生成された画像を記憶している前記第１のメモリにおける第１のアドレス、及び前記画像処理装置が当該画像に対して画像処理した結果を格納するための第２のメモリにおける第２のアドレスを前記画像処理装置に設定する設定工程と
を備えることを特徴とする。
【００１３】
本発明の目的を達成するために、例えば本発明の画像転送装置は以下の構成を備える。
【００１４】
すなわち、画像転送装置であって、
画像処理装置の処理対象の画像データを格納するための第１のメモリと、
前記画像処理装置が画像処理した結果を格納するための第２のメモリと、
原画像を構成する各タイルのデータを記憶する記憶装置から、一列分のタイルのデータをＤＭＡＣ（Direct Memory Access Controller）によって、前記第１のメモリに転送する転送手段と、
前記転送手段が前記第１のメモリに転送した夫々のタイルのデータを用いて、前記一列分のタイルが示す画像を生成する生成手段と、
前記生成手段が生成した画像を記憶している前記第１のメモリにおける第１のアドレス、及び前記画像処理装置が当該画像に対して画像処理した結果を格納する、前記第２のメモリにおける第２のアドレスを前記画像処理装置に設定する設定手段と
を備えることを特徴とする。
【発明の効果】
【００１５】
本発明の構成により、画像の管理方法が異なるハードウェアに対して、この管理方法に従って画像を提供する技術を提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下添付図面を参照して、本発明の画像転送装置をデータ転送装置に適用した好適な実施形態に従って詳細に説明する。
【００１７】
［第１の実施形態］
図１はデータ転送装置の基本構成、及び、その周辺機器（画像処理ユニット、ＤＭＡＣ）を示すブロック図である。以下、図１に示すユニット群を画像転送・処理システムと呼称する。
【００１８】
１００はデータ転送装置である。１０６はダイレクトメモリアクセスコントローラ（ＤＭＡＣ）で、本実施形態ではシステムバス１０３を介して、不図示の主メモリからローカルメモリ（ローカルメモリは、図１内の命令メモリ１０４、およびデータメモリ１０５の総称である）にデータを転送したり、逆にローカルメモリから主メモリへのデータ転送を行うものであり、それぞれの転送が終了する毎に転送終了通知信号を出力する。
【００１９】
ＤＭＡＣ１０６のチャネルは入力用と出力用の２チャネル構成でも良いし、１チャネルを交互に使用する構成でも良い。またＤＭＡＣ１０６は、ローカルメモリのアクセス速度を含めた命令実行ユニット１０１の処理性能に応じて、柔軟に構成することが可能である。
【００２０】
１０１は命令実行ユニットで、命令メモリ１０４から命令のデータを読み出して実行する機能と、後続の命令の実行を一時停止し、ＤＭＡＣ１０６からのデータ転送完了通知信号や画像処理ユニット１０７からの処理完了通知信号により一時停止状態から復帰して、後続の命令の実行を再開する機能と、上記命令の実行によって、データメモリ１０５内のデータを読み込み、ある一連の処理を行った後で、再びデータメモリ１０５に書き戻す機能とを有する。
【００２１】
また命令実行ユニット１０１は、画像処理ユニット１０７が画像処理を行っている間は命令実行処理を停止している。
【００２２】
１０２は命令実行ユニット１０１がシステムバス１０３に接続されているハードウェア資源にアクセスすることを可能にするために用意されているバスインタフェースユニットである。通常の場合、命令実行ユニット１０１は、命令メモリ１０４とデータメモリ１０５だけにアクセスすれば処理が可能となるように、これらメモリの容量は適切に設定されている。
【００２３】
１０７は画像処理ユニットであり、データ転送装置１００内のデータメモリ１０５にアクセスし、データメモリ１０５内のデータを入力データとして用いて画像処理を行う。そしてデータメモリ１０５内に処理後のデータを出力することにより、画像処理を順次進めていく方式をとる。
【００２４】
画像処理ユニット１０７は、ある単位の入力データをデータメモリ１０５から読み出し、順次画像処理していくと同時に、出力データをデータメモリ１０５に書き出していき、一連の処理が完了すると、割り込み信号を命令実行ユニット１０２に通知する。命令実行ユニット１０１は画像処理ユニット１０７が画像処理を行っている間は命令の実行処理を停止させているので、この割り込み信号の通知を受けると命令の実行を再開し、次の処理に移る。
【００２５】
図２は、図１に示した画像転送・処理システムを適用したシステムの基本構成を示すブロック図である。このシステムは例えば、図１に示した画像転送・処理システムを組み込んだコンピュータである。
【００２６】
図２において、２０６はシステム全体を制御するＣＰＵ（中央情報処理装置）である。２１１はシステムバスであり、ＣＰＵ２０６、ＲＯＭコントローラ２０７、ＲＡＭコントローラ２０９、ＤＭＡＣ２０４、及びデータ転送装置２０３が接続されており、このシステムバス２１１を介して上記各部間のデータ転送が行われる。
【００２７】
２０８はＲＯＭで、システム全体の制御を行うためのプログラムやデータを格納する。ＲＯＭ２０８はＲＯＭコントローラ２０７を介して、システムバス２１１に接続される。ＣＰＵ２０６はＲＯＭコントローラ２０７を介してＲＯＭ２０８にアクセスし、格納されたプログラムやデータを用いてシステム全体の制御を行うことができる。
【００２８】
２１０はＲＡＭで、ＣＰＵ２０６や命令実行ユニット２０１が実行する命令のデータ（プログラム）を記憶するためのエリアや、データメモリ２０３に転送し、画像処理ユニット２０５の処理対象となる画像データを一時的に記憶するためのエリアを備える。またＲＡＭ２１０は、入出力装置のためのデータバッファとしても使用される。ＣＰＵ２０６やＤＭＡＣ２０４は、ＲＡＭコントローラ２０９を介して、ＲＡＭ２１０にアクセスする。なお、このＲＡＭ２１０は上記主メモリとして機能するものでもある。
【００２９】
２０５は画像処理ユニットで、データメモリ２０３に転送された画像のデータを読み込み、読み込んだ画像のデータを用いて所定の処理を施した後、処理後の画像のデータを再度、データメモリ２０３に書き戻す処理を行う。
【００３０】
２０４は上記ＤＭＡＣで、主メモリとして機能するＲＡＭ２１０に記憶されている命令実行ユニット２０１用の一連の命令群のデータや、画像処理ユニット２０５の処理対象である２次元画像のデータを夫々、データ転送装置２００の命令メモリ２０２、データメモリ２０３に転送したり、データメモリ２０３に格納される、画像処理ユニット２０５による処理後の画像のデータをＲＡＭ２１０に転送する処理などを行う。
【００３１】
次に、ＲＡＭ２１０上に記憶される画像について説明する。本実施形態では画像（原画像）は、Ｘ方向に３２画素、Ｙ方向に３２画素のサイズの矩形（タイル）に分割され、夫々は独立にＲＡＭ２１０上に記憶される。即ち、原画像はタイル形式で記憶されている。以下、タイル単位の画像をタイル画像と呼称する。
【００３２】
図４はタイルに分割された画像を示す図である。ＲＡＭ２１０上には各タイル画像のデータはパケットとして保持されている。１つのパケットには、１つのタイル画像のデータと、このタイル画像のデータに関する付加情報である固定長のヘッダー情報が含まれている。即ち１つのパケットによって１つのタイルの画像データとこのデータに関するヘッダ情報とを管理し、そしてこのパケットが各タイル毎に存在している。そして夫々のパケットのデータは、ＲＡＭ２１０上に記憶される。
【００３３】
図５は、ＲＡＭ２１０上に記憶されるパケットの概略構成を示す図である。パケットは、固定長のヘッダー情報５００と３２画素×３２画素のタイル画像データ５０１から構成される。
【００３４】
このヘッダ情報５００には同図の通り、Ｙ座標のパケットＩＤを格納する領域５０２と、Ｘ座標のパケットＩＤを格納する領域５０３とが存在するが、これは夫々、タイルの画像データ５０１が示すタイルの原画像におけるＸ座標値（Xn）、Ｙ座標値（Yn）に対応するものである。従ってこれらＩＤを参照することで、各パケットに含まれるタイルの画像データが原画像中のどの位置の画像データであるかを知ることができる。
【００３５】
領域５０４は、タイル画像のデータ５０１が圧縮されているか否かを示すフラグ（CompressFlag）の値が格納される領域である。本実施形態ではタイル画像のデータ５０１はＪＰＥＧ方式に従って圧縮されているとするので、それに応じたフラグの値がこの領域５０４に格納されている。領域５０５は、タイル画像のデータ５０１のデータ長を示すデータを格納する為の領域である。
【００３６】
また、ＲＡＭ２１０上には夫々のパケットのデータだけでなく、パケットのＲＡＭ２１０上における記憶位置（先頭アドレス）を示すポインタ情報（Packet Address Pointer）６０１と、このパケットのデータ長（Packet Length）６０２とのセットをパケット数分管理するためのテーブル６００のデータが記憶されている。図６はこのテーブルと、ＲＡＭ２１０上における各パケットのデータとの関係を示す図である。
【００３７】
このテーブルが管理する各タイルのパケットに対するポインタ情報、データ長のセットは、Ｘ座標のパケットＩＤ順に並んでおり、(Yn, Xn) = (000, 000)、(000, 001)、(000, 002)、、、(000, Xnの最大値)、(001, 000)、(001, 001)、、、、(Ynの最大値, Xｎの最大値)の順に並んでいる。また、ＲＡＭ２１０上に記憶されている各パケットもまたこの順番に並んでおり、各パケットに付けられた番号はXnYnで表現されている。従ってこのテーブルを先頭から参照することで、原画像の先頭から順にパケットのデータを特定することができる。
【００３８】
なお同図ではポインタ情報６０１とデータ長６０２は夫々３２ビットで表現されるものとしているが、これに限定されるものではない。
【００３９】
次に、本実施形態に係るデータ転送装置が、画像処理ユニット２０５の処理対象となる画像のデータをＲＡＭ２１０からデータメモリ２０３に転送し、更に処理後の画像のデータを再びＲＡＭ２１０に転送する処理について、同処理のフローチャートを示す図７を用いて説明する。なお、図７に示すフローチャートに従ったプログラムは上記命令シーケンスとしてＲＡＭ２１０から命令メモリ２０２に転送されたもので、これを命令実行ユニット２０１が実行することで、本実施形態に係るデータ転送装置は同図のフローチャートに従った処理を行うことができる。
【００４０】
先ず本処理に先立って予め、ＲＡＭ２１０上には、画像処理ユニット２０５を使用して、一連の画像処理を行うための命令実行ユニット用のプログラム（命令シーケンス）が、必要な画像処理の数だけ複数格納されている。
【００４１】
ＣＰＵ２０６は、外部から要求された画像処理に合致した命令シーケンスをＲＡＭ２１０上の上記複数から選択し、ＤＭＡＣ２０４を制御してデータ転送装置２００内の命令メモリ２０２内に転送する。転送後、ＤＭＡＣ２０４は命令実行ユニット２０１に対して、命令シーケンスの転送が完了した旨を示す信号である転送完了割り込み信号を出力する。命令実行ユニット２０１はこの信号をリセット信号として受けると、自身の状態をリセットし、命令メモリ２０２に転送された命令シーケンスに従って処理を実行する。
【００４２】
実行する命令シーケンスには、ＲＡＭ２１０上に記憶されている上記テーブルの先頭から順次、ポインタ情報（Packet Address Pointer）と、データ長（Packet Length）とのセットを読み出し、読み出したポインタ情報が示す（ＲＡＭ２１０における）アドレスを読み出し開始位置として、読み出したデータ長を転送長として、ＤＭＡＣ２０４に設定するためのプログラムが含まれている。従って命令実行ユニット２０１がこのプログラムを実行すると、ＤＭＡＣ２０４にこれら設定事項を設定し（ステップＳ７０１）、ＤＭＡＣ２０４を起動し（ステップＳ７０２）、ＤＭＡＣ２０４は設定された「ＲＡＭ２１０上のアドレス」から、設定された「データ長」分だけを転送先（本実施形態ではデータメモリ２０３）に転送する処理を行う。
【００４３】
より具体的には、命令実行ユニット２０１はＤＭＡＣ２０４に１つのパケットのデータを読み出すための上記設定を行うと、ＤＭＡＣ２０４はこの設定に従って、設定されたアドレスから設定されたデータ長分だけのパケットのデータをＲＡＭ２１０から読み出し、データメモリ２０３に転送する。ＤＭＡＣ２０４はこの転送が完了すると、転送完了割り込み信号を命令実行ユニット２０１に出力する。命令実行ユニット２０１はこの信号を受けると、ＤＭＡＣ２０４に次のパケットのデータを読み出させるべく、次のパケットのポインタ情報が示すアドレスを読み出し開始位置として、次のパケットのデータ長を転送長として、ＤＭＡＣ２０４に設定する。
【００４４】
従って、このような処理により、タイル００（Ｘ座標のパケットＩＤ＝０，Ｙ座標のパケットＩＤ＝０）の画像データを含むパケット００，タイル０１（Ｘ座標のパケットＩＤ＝１，Ｙ座標のパケットＩＤ＝０）の画像データを含むパケット０１，タイル０２（Ｘ座標のパケットＩＤ＝２，Ｙ座標のパケットＩＤ＝０）の画像データを含むパケット００，，，，というようにして、順次パケットのデータがデータメモリ２０３に転送される。以上の転送処理は、XnがXnの最大値に達するまで、即ち、Ｘ方向に一列分の各タイルの画像を含む各パケットを転送するまで行う。
【００４５】
XnがXnの最大値に達すると、命令実行ユニット２０１はＤＭＡＣ２０４にデータ転送の処理を中断するように指示する（ステップＳ７０３）。次に、以下の処理を行い、一列分のタイルの画像をつなげた画像（以降、この画像をラスター形式の画像と呼称する）を生成する（ステップＳ７０４）。
【００４６】
詳しくは、先ず、データメモリ２０３に転送された各パケットのデータ中のヘッダ情報中のＸ座標のパケットＩＤを参照し、Ｘ座標のパケットＩＤが００，０１，０２，、、という順になるように、各パケットのデータを並べ直す。更に各パケットに含まれるタイルの画像データをデータメモリ２０３の別の領域（以下、この領域を入力データ用バンド領域と呼称する）に読み出し、読み出した各タイルの画像データを、各パケットの並び順に並べ、Ｘ方向にXnの最大値数分の画素、Ｙ方向に３２画素の画像を、上記ラスター形式の画像として上記入力データ用バンド領域に得る。その際に命令実行ユニットは、各パケットのヘッダーを調べ、もしそのタイル画像データが圧縮されていた場合、これを非圧縮することも行う。この画像は上記一列分のタイルの画像を、その配置順に並べ直し、連結したものに相当する。
【００４７】
そしてラスター形式の画像が得られると、命令実行ユニット２０１は画像処理ユニット２０５に対して、データメモリ２０３における上記入力データ用バンド領域の先頭アドレス、及び出力データ用バンド領域の先頭アドレスを設定する（ステップＳ７０５）。この出力データ用バンド領域とは、画像処理ユニット２０５が入力データ用バンド領域の先頭から画像データを読み取って処理した結果の画像のデータを書き戻すための領域で、画像処理ユニット２０５に入力データ用バンド領域の先頭アドレス、出力データ用バンド領域の先頭アドレスを設定することで、画像処理ユニット２０５は、設定されたアドレスから処理対象の画像（ラスター形式の画像）のデータを読み出すことができると共に、処理した結果の画像のデータを設定されたアドレスに書き戻すことができる。
【００４８】
この設定処理が完了すると命令実行ユニット２０１は画像処理ユニット２０５を起動し、画像処理ユニット２０５から、画像処理が完了したことを示す処理完了の割り込み信号の通知を待って、停止状態になる（ステップＳ７０６）。
【００４９】
画像処理ユニット２０５から処理完了の割り込み信号が命令実行ユニット２０１に通知されると、命令実行ユニット２０１は次の処理を開始する。なお、この時点では出力データ用バンド領域には画像処理が施されたラスター形式の画像のデータが格納されている。よって命令実行ユニット２０１はこのラスター形式の画像を先頭から３２画素×３２画素のタイルに分割し（実際にはＸ方向に複数個のタイルに分割されることになる）（ステップＳ７０７）、画像処理する前のパケットヘッダーに圧縮フラグが指定されていた場合、圧縮を実行した後、夫々のタイルの画像データに、夫々のタイルの画像データの処理前の画像に付加されていたヘッダ情報を付加し、パケットとして再度出力データ用バンド領域に格納する（ステップＳ７０８）。
【００５０】
夫々のタイルの画像データは、ステップＳ７０４で並べ直した順番に従ったものであるので、これらの各タイルの画像のデータに、ステップＳ７０４で並べ直した各パケット中のヘッダ情報を先頭から順次付加することで、夫々のタイルの画像データと、対応するヘッダ情報とのセットを含むパケットのデータを作成することができる。
【００５１】
尚、メモリ資源を節約するためには、入力データ用バンド領域と出力データ用バンド領域とを同一領域として扱い、処理後の画像のデータを処理前の画像データに上書きするようにしても良い。
【００５２】
また、入力データ用バンド領域を有するデータメモリと出力データ用バンド領域を有するデータメモリというように、夫々のバンド領域を別個のメモリに設けるようにしても良い。
【００５３】
また、同図のフローチャートでは、ラスター形式の画像全てが出力データ用バンド領域に格納されてから、タイル分割処理、そしてパケットの生成処理を行ったが、これに限定されるものではなく、出力データ用バンド領域に順次データが格納されていく状態において、１タイル分のデータが格納される毎に、上記パケットの生成処理（ステップＳ７０８の処理）を行うようにしても良い。
【００５４】
以上の処理が完了すると、次に命令実行ユニット２０１は、出力データ用バンド領域に格納されている、ステップＳ７０８で生成された各パケット形式のデータとして、ＲＡＭ２１０中の予め決められた領域（以下、出力バッファと呼称する）に転送する。そのために命令実行ユニット２０１は、転送先アドレスである、出力バッファのアドレス（予め転送された命令シーケンスに含まれたデータにより特定される）をＤＭＡＣ２０４にセットし（ステップＳ７０９）、ＤＭＡＣ２０４を起動する（ステップＳ７１０）。
【００５５】
より具体的には、ＤＭＡＣ２０４は１パケットずつの転送を行うので、この転送中、命令実行ユニット２０１はＤＭＡＣ２０４からの転送完了通知信号を受けるまでその動作を停止しており、ＤＭＡＣ２０４から１パケット分の転送が完了したことを通知するための転送完了通知信号を受けると、次にパケットの転送のための設定をＤＭＡＣ２０４に対して行うと行ったことを繰り返す。
【００５６】
１パケット分の処理が終了した場合、ＣＰＵ２０６が指定したＲＡＭ内データ出力用のパケットテーブル内の各エントリにパケット毎の先頭アドレスおよびパケット長を書きこむ。これをＸ方向にＸｎ回実行することにより、１バンド分の処理が完了することになる。またこのバンド処理をＹ方向にＹｎ回続けることにより、画像全体が処理されることになる。
【００５７】
以上説明した図７に示したフローチャートに従った処理を列の数（Ynの最大値）分だけ行うことで、原画像に対して画像処理ユニット２０５が処理を施した結果をＲＡＭ２１０に転送することができる。
【００５８】
全ての転送が完了すると、命令実行ユニット２０１は転送が完了した旨を示す信号を割り込み信号としてＣＰＵ２０６に通知する。その後、命令実行ユニット２０１は次のＣＰＵ２０６からの処理開始の指示に備えてその動作を停止させる。
【００５９】
なお、本実施形態では、命令実行ユニット２０１上で動作するプログラムを種々に変更することにより、ラスター形式の画像を生成することもできるので、画像処理ユニット２０５はラスター形式で画像を処理するものであっても良い。従って本実施形態に係るデータ転送装置を一般のコンピュータに組み込むことで、元のコンピュータの構成や動作を変更することなく、タイル形式で管理されている画像を、ラスター形式で画像を処理する装置に対して供給することができる。
【００６０】
また、この本実施例のＤＭＡＣは、システムバスに接続されており、画像処理ユニットに対し、DMACを使用して、ＲＡＭ２１０内のラスター形式の画像データを直接画像処理ユニットに入力し、かつその画像処理結果を直接ＲＡＭ２１０内にDMA転送できる機能を備えており、ラスター形式の画像データの場合、命令実行ユニットを使用しなくとも画像処理が可能な構成にもなっている。
【００６１】
なお、本実施形態では命令実行ユニット２０１、画像処理ユニット２０５は夫々ハードウェアとして扱ったが、これらをソフトウェアにより実現させても良い。その場合、これらのソフトウェアはＣＰＵ２０６により実行されることになる。
【００６２】
［第２の実施形態］
第１の実施形態では、図１に示した画像転送・処理システムを１つ備えたシステムについて説明した。本実施形態では、図１に示した画像転送・処理システムを２つ備えたシステムについて説明する。
【００６３】
図３は、複数の画像転送・処理システムを備えるシステムの基本構成を示すブロック図である。このシステムは例えば、複数の画像転送・処理システムを組み込んだコンピュータである。
【００６４】
データ転送装置Ａは命令実行ユニットＡ３００、命令メモリＡ３０２データメモリＡ３０１により構成されており、データ転送装置Ｂは命令実行ユニットＢ３０６、命令メモリＢ３０８、データメモリＢ３０９により構成されている。
【００６５】
また、データ転送装置Ａ、画像処理ユニットＡ３０５，ＤＭＡＣ３０４による集合を画像転送・処理システムＡと呼称する。同様に、データ転送装置Ｂ、画像処理ユニットＢ３１１，ＤＭＡＣ３１０による集合を画像転送・処理システムＢと呼称する。
【００６６】
夫々の画像転送・処理システムの動作については第１の実施形態で説明したものと同じであるが、このように、２つの画像転送・処理システムを備えることで、例えば、原画像を上半分とした半分とに分け、上半分については画像転送・処理システムＡ側で処理し、下半分については画像転送・処理システムＢ側で処理するといったようなことが可能となる。このように、夫々の画像転送・処理システムで並列に処理を行うことで、ＲＡＭ３１６にタイル単位で保持されていた原画像に対して所定の画像処理を施し、再びＲＡＭ２１０に書き戻すと行った処理を第１の実施形態よりも高速に行えるといった効果を奏することができる。
【００６７】
当然、画像転送・処理システムを２つ備えるわけであるから、この処理の前段で、夫々の画像転送・処理システム中の命令メモリに、ＲＡＭ２１０から夫々の命令実行ユニットが行うべき処理のプログラムが転送されることになる。
【００６８】
なお本実施形態では、上記画像転送・処理システムを２つ設ける場合について説明したが、当然これ以上の画像転送・処理システムを設けても良い。その場合、原画像を設けた画像転送・処理システムの数に等分し、等分した夫々の画像のデータを夫々の画像転送・処理システムにより処理させることになる。なお、各画像転送・処理システムに性能の差がある場合には、その性能の差に応じて与えるデータのサイズを異ならせても良い。
【００６９】
［その他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００７０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７１】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７２】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００７３】
【図１】データ転送装置の基本構成、及び、その周辺機器（画像処理ユニット、ＤＭＡＣ）を示すブロック図である。
【図２】図１に示した画像転送・処理システムを適用したシステムの基本構成を示すブロック図である。
【図３】本発明の第２の実施形態に係る、複数の画像転送・処理システムを備えるシステムの基本構成を示すブロック図である。
【図４】タイルに分割された画像を示す図である。
【図５】ＲＡＭ２１０上に記憶されるパケットの概略構成を示す図である。
【図６】パケットのＲＡＭ２１０上における記憶位置（先頭アドレス）を示すポインタ情報（Packet Address Pointer）６０１と、このパケットのデータ長（Packet Length）６０２とのセットをパケット数分管理するためのテーブルと、ＲＡＭ２１０上における各パケットのデータとの関係を示す図である。
【図７】本発明の第１の実施形態に係るデータ転送装置が、画像処理ユニット２０５の処理対象となる画像のデータをＲＡＭ２１０からデータメモリ２０３に転送し、更に処理後の画像のデータを再びＲＡＭ２１０に転送する処理のフローチャートである。
【図１】
2005110124.tif 000003
【図２】
2005110124.tif 000004
【図３】
2005110124.tif 000005
【図４】
2005110124.tif 000006
【図５】
2005110124.tif 000007
【図６】
2005110124.tif 000008
【図７】
2005110124.tif 000009