(57)【要約】【課題】飛び飛びの空き領域に画像データを分割して格納することのできる画像処理装置を提供する。【解決手段】システム画像処理部１６はＣＣＤ１７で読み取った１ページ分の画像データを複数のブロックに分割して圧縮する。プロセッサ１２は、圧縮された画像データを格納するためのメモリ領域をシステムメモリ１５から確保しその位置情報やサイズを示すメモリ管理テーブル４０を作成する。システム制御部１１は、分割され圧縮された各ブロックの画像データを、メモリ管理テーブル４０を参照してこれに登録されているメモリ領域に格納すると共に、どのメモリ領域に、どのブロックの画像データを格納したかを示す画像格納情報を画像管理テーブル５０に登録する。【選択図】図４
2007310627.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
前記メモリ内の複数の空き領域に画像データを分割して格納する格納制御手段と、
前記格納制御手段による分割後の各画像データについて、分割前の画像データ内での位置情報と、格納先のメモリ領域を示す格納先情報とを関連付けて登録する画像管理情報登録手段と
を有する
ことを特徴とする画像処理装置。
【請求項２】
画像データを複数に分割する画像処理部と、
前記画像処理部で分割された画像データを保存するためのメモリと、
前記メモリ内の領域を管理するためのメモリ管理テーブルと、
前記画像処理部によって分割された画像データを、前記メモリ管理テーブルを参照して前記メモリに保存する制御部と、
前記制御部が画像データを前記メモリに保存したとき、該保存された画像データに関する属性情報を画像管理テーブルに登録する画像管理情報登録手段と
を有する
ことを特徴とする画像処理装置。
【請求項３】
画像データを分割する画像処理部と、
前記画像処理部で分割された画像データを保存するためのメモリと、
前記画像処理部で分割された画像データを格納するための１または２以上の空き領域を前記メモリから確保し、該確保したメモリ領域に関する情報を登録したメモリ管理テーブルを生成するメモリ管理テーブル生成手段と、
前記画像処理部によって分割された画像データを、前記メモリ管理テーブルを参照して前記メモリに保存する制御部と
を有する
ことを特徴とする画像処理装置。
【請求項４】
前記制御部が画像データを前記メモリに保存したとき、該保存された画像データに関する属性情報を画像管理テーブルに登録する画像管理情報登録手段をさらに有する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記メモリ管理テーブルに、確保したメモリ領域の位置情報とサイズ情報とを登録する
ことを特徴とする請求項３または４に記載の画像処理装置。
【請求項６】
前記画像データに関する属性情報は、分割後の各画像データについて、分割前の画像データ内での位置情報と、格納先のメモリ領域を示す格納先情報とを含む
ことを特徴とする請求項２、４または５に記載の画像処理装置。
【請求項７】
前記格納先情報は、前記メモリ管理テーブルと前記画像管理テーブルとのリンク情報である
ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記画像データに関する属性情報はさらに、その画像データに係わるジョブ情報と、ページ情報とを含む
ことを特徴とする請求項６に記載の画像処理装置。
【請求項９】
前記メモリ管理テーブルに、メモリ領域に関する情報と該メモリ領域に保存された画像データに関する属性情報とを関連付けて登録する
ことを特徴とする請求項２乃至８のいずれか１つに記載の画像処理装置。
【請求項１０】
前記制御部は、ＤＭＡ転送に関する情報が記述されたスクリプトファイルと前記メモリ管理テーブルとを参照して、前記画像処理部と前記メモリとの間で画像データをＤＭＡ転送する
ことを特徴とする請求項２乃至９のいずれか１つに記載の画像処理装置。
【請求項１１】
前記スクリプトファイルには、前記画像処理部による画像データの分割状態が記述されている
ことを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
前記画像処理部は、画像データを水平方向Ｍ分割、垂直方向Ｎ分割（Ｍ、Ｎは任意の正整数で少なくとも一方は２以上）の複数ブロックに分割し、
前記スクリプトファイルには、各ブロックの水平方向の開始位置と画素数および各ブロックの垂直方向の開始位置と画素数を認識可能な情報と、使用するＤＭＡチャンネルの数とが記述されている
ことを特徴とする請求項１０または１１に記載の画像処理装置。
【請求項１３】
各ブロックを処理するＤＭＡチャンネルを固定的に割り当てた
ことを特徴とする請求項１０乃至１２のいずれか１つに記載の画像処理装置。
【請求項１４】
ＤＭＡ転送が完了して空いているＤＭＡチャンネルに対して、次のＤＭＡ転送を行なわせる
ことを特徴とする請求項１０乃至１２のいずれか１つに記載の画像処理装置。
【請求項１５】
ＤＭＡ転送が完了する毎に、該ＤＭＡ転送により転送された画像データに関する属性情報を画像管理テーブルに登録する
ことを特徴とする請求項１０乃至１４のいずれか１つに記載の画像処理装置。
【請求項１６】
前記メモリは、メモリ領域の取得と開放とを行なうメモリ管理システムによって管理されている
ことを特徴とする請求項１乃至１５のいずれか１つに記載の画像処理装置。
【請求項１７】
分割された画像データを分割単位毎に圧縮し、
前記メモリに、前記圧縮後の画像データを保存する
ことを特徴とする請求項１乃至１６のいずれか１つに記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを複数に分割して処理する画像処理装置に係わり、特に、不連続なメモリ領域に画像データを保存するための技術に関する。
【背景技術】
【０００２】
画像データをページ単位に扱う複写機などの画像処理装置では、通常、処理の簡便性や処理速度などを考慮して、読み取った１ページ分の画像データを連続したメモリ領域に保存するように構成されている。
【０００３】
また、画像データを高速に圧縮／伸張するために、１ページ分の画像データを複数の領域に分割し、各領域に対して個別の圧縮伸張器を設けて処理する画像処理装置もある（たとえば、特許文献１参照。）。
【０００４】
また、分割された画像データをメモリなどへＤＭＡ（Direct Memory Access）転送する技術として、１つの分割領域をＤＭＡ転送するために必要な情報（たとえば、開始アドレスと転送バイト数）を複数の分割領域について連ねて記述したディスクリプタ情報をＣＰＵ（Central
Processing Unit）が作成し、ＤＭＡコントローラが該ディスクリプタ情報を先頭から順に参照して複数回のＤＭＡ転送を順次実行するようにした情報処理装置が提案されている（たとえば、特許文献２参照。）。この装置では、ディスクリプタ情報に従って複数回のＤＭＡ転送をＤＭＡコントローラが自動的に実行するので、１つの分割領域に対するＤＭＡ転送が終了する毎にＣＰＵへ割り込みが発生するようなことがなくなり、ＣＰＵの処理負担が軽減されている。
【０００５】
また、同一のメモリに対して２つのＤＭＡコントローラ（たとえば、データの書込側と読出側）がアクセスする場合に、ＤＭＡコントローラが参照するディスクリプタ情報の中にポーズビットを設けて転送を一時停止させることで、２つのＤＭＡコントローラを交互に作動させる技術が開示されている（たとえば、特許文献３参照。）。
【０００６】
【特許文献１】特開平５−９１３４１号公報
【特許文献２】特開２００２−１４０２８６号公報
【特許文献３】特開２００３−２８１０７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
１ページ分の画像データを連続したメモリ領域に保存する方法では、空き領域を合算すれば必要サイズに足りる場合でも、連続領域として確保できるまで処理を待たなければならず、装置としての生産性が低下するという問題があった。たとえば、システムメモリをソフトウェア実行時のワークエリアと画像データの格納用エリアとに共用するような場合には、使用する領域サイズや開放タイミングの違いからメモリ領域が歯抜けになって断片化しやすく、画像データ格納用の大きな連続領域（たとえば、Ａ４モノクロの場合、約４Ｍバイトの領域）を確保することが難しい。
【０００８】
一方、画像データの格納専用に連続領域を常時確保するような構成にすると、最大ページサイズかつ最低圧縮率の場合のメモリ領域を常時確保しておかなければならず、メモリの利用効率が低下してしまう。
【０００９】
特許文献１に開示された技術では、画像データを複数の領域に分割し、分割後の領域毎に圧縮／伸張処理を施しているが、圧縮後の画像データを結局は連続した領域に格納するように構成されているので、上記の問題を解決することはできない。
【００１０】
また、分割された画像データをメモリなどへＤＭＡ転送する場合にディスクリプタ情報を利用する方法はＣＰＵの負荷軽減にとって有効であるが、従来のディスクリプタ情報は１つのＤＭＡチャンネルで複数回のＤＭＡ転送をシーケンシャルに順次実行させるものであったり、２つのＤＭＡコントローラを交互に動作させたりするものであるため、複数に分割された画像データを、複数のＤＭＡチャンネルを同時並行に作動させて効率的に転送することはできなかった。
【００１１】
本発明は、上記の問題を解決しようとするものであり、飛び飛びの空き領域に画像データを分割して格納することのできる画像処理装置を提供することを目的としている。
【００１２】
また、分割された画像データを複数のＤＭＡチャンネルを使用して効率的に転送可能な画像処理装置を提供することを目的としている。
【課題を解決するための手段】
【００１３】
上記の目的は以下に示す各項の発明により達成される。
【００１４】
（１）メモリと、
前記メモリ内の複数の空き領域に画像データを分割して格納する格納制御手段と、
前記格納制御手段による分割後の各画像データについて、分割前の画像データ内での位置情報と、格納先のメモリ領域を示す格納先情報とを関連付けて登録する画像管理情報登録手段と
を有する
ことを特徴とする画像処理装置。
【００１５】
上記発明によれば、複数の空き領域に画像データを分割して格納すると共に、複数の空き領域に分割して格納した画像データを分割前の画像データに繋げて読み出すための情報が登録される。分割前の画像データ内での位置情報は、たとえば、画像データをＮ個のブロックに分割する場合にはそのブロック番号でもよいし、画像内での座標位置などでもよい。格納先情報は、画像データの格納位置を認識可能な情報であればよく、メモリ領域のアドレス情報、あるいはメモリ領域のアドレス情報やサイズ情報が登録されたメモリ管理テーブルへのポインタなどでもよい。
【００１６】
（２）画像データを複数に分割する画像処理部と、
前記画像処理部で分割された画像データを保存するためのメモリと、
前記メモリ内の領域を管理するためのメモリ管理テーブルと、
前記画像処理部によって分割された画像データを、前記メモリ管理テーブルを参照して前記メモリに保存する制御部と、
前記制御部が画像データを前記メモリに保存したとき、該保存された画像データに関する属性情報を画像管理テーブルに登録する画像管理情報登録手段と
を有する
ことを特徴とする画像処理装置。
【００１７】
上記発明によれば、画像処理部は画像データを複数に分割し、制御部は、メモリ管理テーブルを参照して空き領域を認識し、分割後の画像データを該空き領域に保存する。また、画像管理情報登録手段は、制御部が画像データをメモリに保存したとき、その保存された画像データに関する属性情報を画像管理テーブルに登録する。たとえば、複数の空き領域に分割して格納された画像データを元の連続した画像データに繋げるための情報などが属性情報として登録される。
【００１８】
（３）画像データを分割する画像処理部と、
前記画像処理部で分割された画像データを保存するためのメモリと、
前記画像処理部で分割された画像データを格納するための１または２以上の空き領域を前記メモリから確保し、該確保したメモリ領域に関する情報を登録したメモリ管理テーブルを生成するメモリ管理テーブル生成手段と、
前記画像処理部によって分割された画像データを、前記メモリ管理テーブルを参照して前記メモリに保存する制御部と
を有する
ことを特徴とする画像処理装置。
【００１９】
上記発明によれば、画像処理部は画像データを複数に分割し、メモリ管理部は分割された画像データを格納するための１または２以上の空き領域を確保すると共に、確保した空き領域の位置やサイズなどが登録されたメモリ管理テーブルを作成する。制御部は、メモリ管理部の作成したメモリ管理テーブルを参照して空き領域の位置やサイズを認識し、分割後の画像データをそれらの空き領域に保存する。
【００２０】
（４）前記制御部が画像データを前記メモリに保存したとき、該保存された画像データに関する属性情報を画像管理テーブルに登録する画像管理情報登録手段をさらに有する
ことを特徴とする（３）に記載の画像処理装置。
【００２１】
上記発明では、画像管理情報登録手段は、制御部が画像データをメモリに保存したとき、その保存された画像データに関する属性情報を画像管理テーブルに登録する。たとえば、複数の空き領域に分割して格納された画像データを元の連続した画像データに繋げるための情報などが属性情報として登録される。
【００２２】
（５）前記メモリ管理テーブルに、確保したメモリ領域の位置情報とサイズ情報とを登録する
ことを特徴とする（３）または（４）に記載の画像処理装置。
【００２３】
（６）前記画像データに関する属性情報は、分割後の各画像データについて、分割前の画像データ内での位置情報と、格納先のメモリ領域を示す格納先情報とを含む
ことを特徴とする（２）、（４）または（５）に記載の画像処理装置。
【００２４】
分割前の画像データ内での位置情報は、たとえば、画像データをＮ個のブロックに分割する場合にはそのブロック番号でもよいし、画像内での座標位置などでもよい。格納先情報は、画像データの格納位置を認識可能な情報であればよく、メモリ領域のアドレス情報、あるいはメモリ領域のアドレス情報やサイズ情報が登録されたメモリ管理テーブルへのポインタなどでもよい。
【００２５】
（７）前記格納先情報は、前記メモリ管理テーブルと前記画像管理テーブルとのリンク情報である
ことを特徴とする（６）に記載の画像処理装置。
【００２６】
上記発明では、リンク先のメモリ管理テーブルを参照することで画像データの格納位置が認識される。
【００２７】
（８）前記画像データに関する属性情報はさらに、その画像データに係わるジョブ情報と、ページ情報とを含む
ことを特徴とする（６）に記載の画像処理装置。
【００２８】
上記発明によれば、画像管理テーブルにおいて、複数のジョブに係わる画像データをページ別に管理することができる。すなわち、画像管理テーブルの属性情報とメモリ管理テーブルとを参照することで、どのジョブのどのページのどの位置に係わる画像データがメモリの何処に格納されているかを認識することが可能になる。
【００２９】
（９）前記メモリ管理テーブルに、メモリ領域に関する情報と該メモリ領域に保存された画像データに関する属性情報とを関連付けて登録する
ことを特徴とする（２）乃至（８）のいずれか１つに記載の画像処理装置。
【００３０】
上記発明によれば、メモリ管理テーブルを参照することで、該メモリ管理テーブルに登録されている各メモリ領域にどのような属性の画像データが格納されているかを認識することができる。たとえば、属性情報として、ジョブ情報、ページ情報、ページ内での位置情報などを登録しておけば、メモリ管理テーブルを参照するだけで、所望のジョブの所望のページ内の所望の位置の画像データをメモリから読み出すことができる。これにより、読み出し時に画像管理テーブルの参照が不要になる。
【００３１】
（１０）前記制御部は、ＤＭＡ転送に関する情報が記述されたスクリプトファイルと前記メモリ管理テーブルとを参照して、前記画像処理部と前記メモリとの間で画像データをＤＭＡ転送する
ことを特徴とする（２）乃至（９）のいずれか１つに記載の画像処理装置。
【００３２】
上記発明では、スクリプトファイルに従ってＤＭＡ転送が自動的に実行される。
【００３３】
（１１）前記スクリプトファイルには、前記画像処理部による画像データの分割状態が記述されている
ことを特徴とする（１０）に記載の画像処理装置。
【００３４】
上記発明では、スクリプトファイルを参照することで画像データの分割状態を認識できるので、複数に分割された画像データを分割された単位に分けて自動的にＤＭＡ転送することが可能になる。特に、スクリプトファイルを処理順序にリスト状に記述する場合と異なり、複数に分割された画像データに対して複数のＤＭＡチャンネルを同時に作動させることができる。
【００３５】
（１２）前記画像処理部は、画像データを水平方向Ｍ分割、垂直方向Ｎ分割（Ｍ、Ｎは任意の正整数で少なくとも一方は２以上）の複数ブロックに分割し、
前記スクリプトファイルには、各ブロックの水平方向の開始位置と画素数および各ブロックの垂直方向の開始位置と画素数を認識可能な情報と、使用するＤＭＡチャンネルの数とが記述されている
ことを特徴とする（１０）または（１１）に記載の画像処理装置。
【００３６】
上記発明では、各ブロックの水平方向の開始位置と画素数と垂直方向の開始位置と画素数とから、画像データ内での各ブロックの位置やサイズを認識することができるので、ＤＭＡ転送に係わる画像処理部側（ソース側）のパラメータを設定することができる。また、使用するＤＭＡチャンネル数を示す情報から、これらのＤＭＡチャンネルを各ブロックの転送にどのように割り当てればよいかを判断可能になる。なお、ＤＭＡ転送に係わるメモリ側（ディスティネーション側）のパラメータはメモリ管理テーブルから認識される。
【００３７】
（１３）各ブロックを処理するＤＭＡチャンネルを固定的に割り当てた
ことを特徴とする（１０）乃至（１２）のいずれか１つに記載の画像処理装置。
【００３８】
上記発明では、たとえば、水平方向の分割数と同数のＤＭＡチャンネルを使用して画像データを転送する場合に、各水平方向の分割区域に対してＤＭＡチャンネルを固定的に割り当てる。どのＤＭＡチャンネルをどのブロックの転送に割り当てるべきかを決定する処理が簡略化される。
【００３９】
（１４）ＤＭＡ転送が完了して空いているＤＭＡチャンネルに対して、次のＤＭＡ転送を行なわせる
ことを特徴とする（１０）乃至（１２）のいずれか１つに記載の画像処理装置。
【００４０】
上記発明では、どのＤＭＡチャンネルがどのブロックを転送するかを固定的に割り当てず、ＤＭＡ転送が完了して空き状態となったＤＭＡチャンネルが生じる毎に、そのＤＭＡチャンネルに対して次のＤＭＡ転送が指示される。この場合、水平方向の分割数とＤＭＡチャンネル数との関係は任意でよく、水平方向の分割数がＤＭＡチャンネル数より少なくても、同数でも、多くてもかまわない。
【００４１】
（１５）ＤＭＡ転送が完了する毎に、該ＤＭＡ転送により転送された画像データに関する属性情報を画像管理テーブルに登録する
ことを特徴とする（１０）乃至（１４）のいずれか１つに記載の画像処理装置。
【００４２】
上記発明では、ＤＭＡ転送が完了したタイミングで、該ＤＭＡ転送された画像データに関する属性情報が画像管理テーブルに順次登録される。
【００４３】
（１６）前記メモリは、メモリ領域の取得と開放とを行なうメモリ管理システムによって管理されている
ことを特徴とする（１）乃至（１５）のいずれか１つに記載の画像処理装置。
【００４４】
（１７）分割された画像データを分割単位毎に圧縮し、
前記メモリに、前記圧縮後の画像データを保存する
ことを特徴とする（１）乃至（１６）のいずれか１つに記載の画像処理装置。
【発明の効果】
【００４５】
本発明に係わる画像処理装置によれば、画像データを複数の空き領域に分割して格納するので、画像データ全体を格納可能な大きな連続領域を用意する必要がなく、飛び飛びの空き領域を活用して画像データを保存することができる。これにより、たとえば、ソフトウェアのワークエリアなどに使用されるシステムメモリを画像データの格納用に共用した場合でも、メモリの効率的な使用が実現される。
【００４６】
画像データをメモリに転送して保存したとき、その保存した画像データに関する属性情報を画像管理テーブルに登録するものでは、該画像管理テーブルを参照することで、複数に分割して格納した画像データを分割前の状態に繋げて読み出すことができる。また、画像管理テーブルをＣＰＵで作成する場合に比べて、ＣＰＵの処理負担が軽減される。
【００４７】
また、メモリ領域を管理するメモリ管理テーブルを参照して画像データの転送を制御するようにしたので、不連続な空き領域への画像データの格納を効率よく実行することができる。特に、画像データを格納するための空き領域を確保し、該確保したメモリ領域に関するメモリ管理テーブルを生成するものでは、該メモリ管理テーブルを参照するものは、画像データを格納するためのメモリ領域に関する情報をメモリ管理テーブルから効率的に取得することができる。
【００４８】
画像処理部とメモリとの間での画像データのＤＭＡ転送を、スクリプトファイルを用いて制御するものでは、分割された画像データの転送を、ＣＰＵの介在なしに、複数のＤＭＡチャンネルを使用して効率的に進めることができる。
【発明を実施するための最良の形態】
【００４９】
以下、図面に基づき本発明の各種実施の形態を説明する。
【００５０】
図１は、本発明の第１の実施の形態に係わる画像処理装置１０の概略構成を示している。画像処理装置１０は、原稿画像を読み取ってその複製画像を記録紙上に形成して出力するコピー機能などを備えた複写機等の装置であり、システム全体の動作を制御するシステム制御部１１と、演算処理機能を果たすプロセッサ１２と、各種周辺機能を制御する周辺制御部１３とを主たる制御部として備えている。
【００５１】
システム制御部１１には、プロセッサ１２および周辺制御部１３のほか、ＬＣＤパネル１４と、システムメモリ１５、システム画像処理部１６が接続されている。ＬＣＤパネル１４は、ユーザからの各種操作の受け付けと各種操作画面や案内画面の表示を行なう。システムメモリ１５は、プロセッサ１２が実行する動作プログラムを格納するほか、プロセッサ１２が動作プログラムを実行する際のワークメモリや画像データの格納領域などに共用される。
【００５２】
システム画像処理部１６には、原稿画像の読み取り素子としてのＣＣＤ（Charge Coupled Device）１７が読取画像処理部１８を介して接続されると共に、レーザプリンタ方式の記録部をなすＬＤ（Laser Diode）１９が記録画像処理部２１を介して接続されている。システム画像処理部１６は、１ページの画像データを複数のブロックに分割する画像分割部１６ａと、画像データの圧縮と伸張を行なう圧縮／伸張部１６ｂとを備えている。
【００５３】
原稿の読取動作では、ＣＣＤ１７から出力された画像データは読取画像処理部１８で各種の画像補正を施された後、システム画像処理部１６に入力される。システム画像処理部１６に入力された画像データは、画像分割部１６ａで複数のブロックに分割され、さらに圧縮／伸張部１６ｂでブロック毎に圧縮される。ブロック毎に圧縮された画像データは、システム制御部１１を通じてシステムメモリ１５に格納される。
【００５４】
記録紙への出力動作においては、システムメモリ１５に格納されている画像データはシステム制御部１１により読み出されてシステム画像処理部１６に入力され、圧縮／伸張部１６ｂで伸張され、さらに元の１ページとなるように合成された後、記録画像処理部２１を経てＬＤ１９へ出力される。
【００５５】
周辺制御部１３には、起動用プログラムなどが予め記憶されたＲＯＭ２２、小容量ストレージデバイス２３、大容量ストレージデバイス２４、不揮発メモリ２５、外部インターフェイス部２６が接続されている。小容量ストレージデバイス２３は、制御プログラムや汎用オペレーティング・システムのプログラムの格納などに使用される。ここでは、小容量ストレージデバイス２３としてフラッシュメモリを使用する。装置の立ち上げ時にＲＯＭ２２内の起動プログラムを実行することで、小容量ストレージデバイス２３内のプログラムがシステムメモリ１５に展開され、プロセッサ１２が該プログラムに従って処理を行なうように構成されている。
【００５６】
大容量ストレージデバイス２４は、ハードディスク装置などで構成され、画像データの格納などに使用される。不揮発メモリ２５は、装置固有の各種パラメータなどの記憶に使用される。外部インターフェイス部２６は、各種の通信方式で外部装置と接続して通信の制御を行なう機能を果たす。たとえば、接続にはＬＡＮ（Local Area Network）、ＵＳＢ（Universal Serial Bus）、ＩＥＥＥ１３９４(Institute of Electrical and Electronic Engineers 1394)などが使用される。
【００５７】
なお、画像形成装置１０は、システムメモリ１５に対するメモリ領域の取得と開放を制御するメモリ管理システムを有している。該メモリ管理システムは、プロセッサ１２が制御プログラム内のメモリ管理プログラムを実行することで実現される。メモリ管理システムは、他のプログラムからの要求に応じて、その要求されたサイズのメモリ領域をシステムメモリ１５から確保して要求元のプログラムに提供する。また、確保済みの領域に対する開放指令を他のプログラムから受けると、該当するメモリ領域を未使用領域（空き領域）として開放するように動作する。
【００５８】
図２は、画像分割部１６ａが１ページ分の画像データを分割する際の分割状態の一例を示している。画像分割部１６ａは、１ページ分の画像データ３０を水平方向Ｎ分割、垂直方向Ｍ分割（Ｍ、Ｎは任意の正整数で少なくとも一方は２以上）して、複数のブロック３１に分割する。図２の例は、ライン単位の読み取り方向である水平方向（幅方向）を７分割し、垂直方向（長さ方向）を９分割し、１ページを６３個のブロックに分割している。各ブロックのページ内での位置は、座標情報（Ｘ，Ｙ）で表わされる。圧縮／伸張部１６ｂは、分割されたブロック単位で圧縮／伸張処理を行なう。
【００５９】
各ブロックは同一サイズであり、画像回転処理などの都合から各ブロックにおける水平方向の画素数と垂直方向の画素数とは等しく設定してある。水平方向および垂直方向の分割数は図２に示したものに限定されず、圧縮効率、処理効率、メモリ領域の利用効率などに応じて適宜に設定すればよい。
【００６０】
次に、１ページの原稿画像を読み込んで、その画像データをシステムメモリ１５に格納するまでの処理の流れについて説明する。
【００６１】
図３は、読込動作における処理の流れを、図４は、該処理におけるコマンドやデータの流れを示している。ジョブが投入されて図示省略のスタート釦が押されると、プロセッサ１２は図４のスキャナ１７ａにセットされた原稿のサイズを認識すると共に（図３：ステップＳ１０１、図４：Ｐ１）、セットされた原稿１ページを保存するために必要なメモリ容量を求める(ステップＳ１０２)。なお、画像データは圧縮して保存されるので、１ページの保存に必要なメモリ容量は画像の内容に依存して変化する。そこで、この段階では、セットされた原稿サイズに対する標準的なメモリ容量を求めている。
【００６２】
次に、プロセッサ１２は、メモリ管理テーブル生成機能１２ａを呼び出す。メモリ管理テーブル生成機能は、セットされた原稿１ページの保存に必要なメモリ容量分のメモリ領域をシステムメモリ１５から確保すると共に、確保したメモリ領域の位置やサイズを登録したメモリ管理テーブル４０をシステムメモリ１５内に生成する（図３：ステップＳ１０３、図４：Ｐ２）。なお、必要なメモリ容量を１つの連続した空き領域として確保できない場合には、飛び飛びに存在する複数の空き領域の総計として確保される。
【００６３】
プロセッサ１２は、生成されたメモリ管理テーブル４０に関する情報（メモリ管理テーブル４０のアドレス情報など）をシステム制御部１１へ通知し（図３：ステップＳ１０４、図４：Ｐ３）、さらにＣＣＤ１７、読取画像処理部１８、システム画像処理部１６を起動して原稿画像の読み取り動作を開始させる（図３：ステップＳ１０５、図４：Ｐ４）。これにより、ＣＣＤ１７で原稿画像を読み取って得た画像データは読取画像処理部１８に入力され、画像補正などの処理を施された後、システム画像処理部１６へ転送される（図３：ステップＳ１０６、図４：Ｐ５）。
【００６４】
システム画像処理部１６は、読取画像処理部１８から入力された画像データを、図２に示すように複数のブロック３１に分割すると共に、分割後のブロックを単位に画像データを圧縮する（図３：ステップＳ１０７、図４：Ｐ６）。システム画像処理部１６は、ブロック単位での画像データの圧縮処理が完了する毎に、そのブロックに関する圧縮完了通知をシステム制御部１１へ通知する（図３：ステップＳ１０８、図４：Ｐ７）。
【００６５】
圧縮完了通知を受けたシステム制御部１１は、メモリ管理テーブル４０を参照して、確保されている空き領域の位置とサイズを認識し、該空き領域へ圧縮後の画像データを保存する。また、システム制御部１１は、保存した画像データに関する属性情報をシステムメモリ１５内の画像管理テーブル５０に登録して画像情報登録手段としての機能を果たす（図３：ステップＳ１０９、図４：Ｐ８／Ｐ９）。属性情報は、飛び飛びに存在する複数の空き領域に格納した画像データを、元の連続した画像データに繋ぎ合わせるための情報を含む。画像管理テーブル５０に関する詳細は後述する。
【００６６】
このように、メモリ管理テーブル４０を参照してシステム制御部１１が自律的にシステムメモリ１５への画像データの転送と保存を行なうので、プロセッサ１２の処理負担が軽減される。また、保存した画像データに関する属性情報をシステム制御部１１（画像情報登録手段）が画像管理テーブル５０に登録するので、画像管理テーブル５０の作成／登録に係わるプロセッサ１２の処理負担も軽減される。また、読み出し時に画像管理テーブル５０を参照することで、飛び飛びに存在する複数の空き領域に分散して格納された画像データを、元の１ページの画像データに繋ぎ合わせることが可能になる。
【００６７】
なお、圧縮された画像データのデータ量が標準的なサイズより大きく、メモリ管理テーブル４０に登録した空き領域が足りなくなったときは、システム制御部１１がプロセッサ１２に対して新たなメモリ領域の確保を要求し、該要求に応じてプロセッサ１２のメモリ管理テーブル生成機能１２ａが新たな空き領域をシステムメモリ１５から確保し、その確保したメモリ領域に関する情報をメモリ管理テーブル４０に追加登録するようになっている。
【００６８】
次に、メモリ管理テーブル４０の作成処理について詳述する。
【００６９】
図５は、メモリ管理テーブル４０の作成処理の流れを示している。メモリ管理テーブル生成機能１２ａは、確保すべきメモリ容量の通知を受けると（ステップＳ２０１）、該メモリ容量分の空き領域の確保動作を開始する。詳細には、システムメモリ１５内の空き領域を検出し(ステップＳ２０２)、検出した空き領域から、メモリユニットを確保する（ステップＳ２０３）。
【００７０】
たとえば、検出した空き領域の容量が、これまでに確保したメモリ容量と必要メモリ容量との差分である残りサイズ以下の場合は、検出した空き領域全体をメモリユニットとして確保し、検出した空き領域のサイズが残りサイズより大きい場合は、検出した空き領域の中から残りサイズ分のメモリ領域をメモリユニットとして確保する。また、メモリユニットを、固定長のバウンダリ（たとえば、４Ｋバイトのバウンダリ）に従って確保する場合は、検出した空き領域の中で該バウンダリに従う開始位置から該バウンダリの固定長の整数倍サイズに相当するメモリ領域をメモリユニットとして確保する。
【００７１】
次に、上記のようにして確保したメモリユニットに関するポインタアドレス（先頭アドレス）やサイズなどの情報（ユニット情報）が登録されたメモリ管理テーブル４０を生成し（ステップＳ２０４）、必要メモリ容量分が確保されなければ（ステップＳ２０５；Ｎ）、ステップＳ２０２に戻って次の空き領域の検出を行なう。必要メモリ容量分のメモリユニット（空き領域）が確保されたら（ステップＳ２０５；Ｙ）、処理を終了する（エンド）。なお、必要メモリ容量分のメモリユニット（空き領域）を確保できなかった場合はエラー終了するようになっている。
【００７２】
図６は、システムメモリ１５の空き状態と生成されたメモリ管理テーブル４０との対応関係の一例を示している。システムメモリ１５内には空き領域が飛び飛びに存在しており、これら飛び飛びに存在する複数の空き領域を総計することにより、必要メモリ容量分のメモリユニット（空き領域）が確保されている。メモリ管理テーブル４０には、確保したメモリユニット毎に、そのメモリユニットのポインタアドレス（先頭アドレス）Ａｄと領域サイズＳｚとを含むユニット情報が、リスト状に登録される。
【００７３】
メモリ管理テーブル４０に登録されるユニット情報の数はシステムメモリ１５の空き状況や要求されたメモリ容量に依存して変動するので、メモリ管理テーブル４０の先頭には、当該メモリ管理テーブル４０の終端を示すラストポインタＬｐが登録される。
【００７４】
システム制御部１１は、メモリ管理テーブル４０の最後のユニット情報をラストポインタＬｐにより認識する。また、画像データのサイズが大きく、当初、標準的に確保した容量のメモリユニットでは足りなくなって新たなメモリユニットを追加確保する場合には、新たに確保したメモリユニットに関するユニット情報を、ラストポインタＬｐを参照することで、当該メモリ管理テーブル４０の末尾に繋げて登録するようになっている。なお、メモリ管理テーブル４０のうち追加した部分を別の領域に確保し、該領域へのリンク情報をメモリ管理テーブル４０に登録するように構成してもよい。
【００７５】
このように、確保したメモリユニットに関するユニット情報をまとめて登録したメモリ管理テーブル４０を作成するので、システム制御部１１は、画像データの格納に使用する空き領域に関する情報を、メモリ管理テーブル４０の参照により効率的に得ることができる。
【００７６】
なお、図６では、１つの空き領域に対して１つのメモリユニットを設定したが、１つの空き領域を複数のメモリユニットに分けて使用してもかまわない。また、メモリユニットのサイズを一定にする場合は、メモリ管理テーブル４０にサイズ情報Ｓｚを登録しなくてもよく、サイズ情報は別途のエリアに登録されていても、固定的に取り決められていてもよい。
【００７７】
図７は、状態情報Ｓｔを備えたメモリ管理テーブル４０ａの一例を示している。図７のメモリ管理テーブル４０ａは、複数のデータ転送処理部が共通のメモリ管理テーブル４０ａを参照してデータ転送を行なう場合を想定したものであり、競合などを回避するために、各メモリユニットの状態を示す状態情報Ｓｔを追加してある。
【００７８】
たとえば、第１状態は「未使用」の状態（どのデータ転送処理部が使用してもよい状態）を、第２状態はいずれかのデータ転送処理部が「使用中」の状態（画像データ転送中の状態）を、第３状態は「一部使用済」の状態（メモリユニットの一部を画像データの格納に使用（現在は転送終了）したが、まだメモリユニット内に空き領域が残っている状態）を、第４状態は「使用済」の状態（メモリユニットに空き領域がない状態で該メモリユニットを新たな画像データの格納に使用できない状態）を表わすようにすればよい。
【００７９】
このように状態情報Ｓｔを設けることで、同じメモリユニットを異なるデータ転送処理部が２重に使用することが回避される。また、途中まで使用したメモリユニットの残り部分を別の転送に使用することができ、メモリを効率的に利用することができる。
【００８０】
次に、圧縮された１ブロック分の画像データをシステムメモリ１５に格納する処理（図３のステップＳ１０９に相当）の流れを詳細に説明する。
【００８１】
図８は、圧縮された１ブロックの画像データをシステムメモリ１５に格納する処理の流れを示している。システム制御部１１は、システム画像処理部１６から１ブロック分の画像データの圧縮完了通知を受けると（ステップＳ３０１）、メモリ管理テーブル４０を参照して１つのメモリユニットを選択し、該選択したメモリユニットの位置（ポインタアドレス）とサイズとを把握する(ステップＳ３０２)。そして、先の圧縮完了通知に対応するブロックの画像データをそのメモリユニットに格納する（ステップＳ３０３）。メモリユニットは、たとえば、メモリ管理テーブル４０に登録されている先頭のメモリユニットから順に使用する。
【００８２】
画像データが、このメモリユニットに収まりきらないときは（ステップＳ３０４；Ｙ）、メモリ管理テーブル４０を参照して次のメモリユニットを選択し（ステップＳ３０５）、該メモリユニットに対して残りの画像データを格納する（ステップＳ３０３）。
【００８３】
１または２以上のメモリユニットを使用することで１ブロック分の画像データの格納が完了すると（ステップＳ３０４；Ｎ）、今回保存したブロックの画像データに関する属性情報を画像管理テーブル５０に登録する(ステップＳ３０６)。未格納のブロックが存在するときは（ステップＳ３０７；Ｎ）、ステップＳ３０１に戻って次のブロックに対する処理を継続し、１ページ分の全ブロックについて格納処理が完了した場合には(ステップＳ３０７；Ｙ)、本処理を終了する（リターン）。
【００８４】
なお、１つのメモリユニットに対する画像データの保存が完了する毎に、そのメモリユニットに格納した画像データに関する属性情報を画像管理テーブル５０に登録するように構成してもよい。
【００８５】
図９は、ブロック（0,0）の画像データを圧縮してシステムメモリ１５に格納する様子を例示している。ブロック（0,0）の画像データ３１ａは圧縮されて圧縮データ３２になっており、システム制御部１１は、メモリ管理テーブル４０を参照し、その先頭に登録されているメモリユニットＡのユニット情報（ポインタアドレス１およびサイズａ）に基づき、圧縮データ３２をシステムメモリ１５内のメモリユニットＡに格納していく（Ｒ１）。
【００８６】
格納の途中でメモリユニットＡがフル状態になると、メモリユニットＡに格納した画像データ（圧縮データ３２ａ）に関する属性情報（第１の画像格納情報ｒ１）を画像管理テーブル５０に書き込む。
【００８７】
システム制御部１１は、メモリ管理テーブル４０に登録されている次のユニット情報からメモリユニットＢのポインタアドレス２およびサイズｂを取得し、残りの画像データ（圧縮データ３２ｂ）を、システムメモリ１５内のメモリユニットＢに格納していく（Ｒ２）。該メモリユニットＢが同様にフル状態になると、メモリユニットＢに格納した画像データ（圧縮データ３２ｂ）に関する属性情報（第２の画像格納情報ｒ２）を画像管理テーブル５０の末尾に追加して書き込み、メモリ管理テーブル４０を参照して次のメモリユニットＣに続きの画像データ（圧縮データ３２ｃ）を格納する（Ｒ３）。
【００８８】
メモリユニットＣへの格納では、フル状態になる前にブロック（0,0）に関する圧縮データ３２の格納が完了する。格納が完了すると、メモリユニットＣに格納した画像データ（圧縮データ３２ｃ）に関する属性情報（第３の画像格納情報ｒ３）を画像管理テーブル５０の末尾に追加して書き込み、次のブロックに対する格納処理へ移行する。
【００８９】
図１０は、画像管理テーブル５０の一例を示している。画像管理テーブル５０には、メモリユニット毎に、そのメモリユニットに保存した画像データの属性情報が登録される。属性情報としては、ジョブ情報（ジョブ番号）５１、ページ情報（ページ番号）５２、ブロック番号５３、ブロック内シリアル番号５４、テーブル番号５５、データサイズ５６などが登録される。
【００９０】
ジョブ番号５１はジョブを識別するための情報であり、複数のジョブに区別して管理するために使用される。ページ番号５２は、１つのジョブで複数ページを扱うための情報であり、ジョブ内でのページ位置を示す。ブロック番号５３は、分割されたブロックを識別するための情報であり、図２の座標情報（Ｘ，Ｙ）で表わされる。
【００９１】
ブロック内シリアル番号５４は、１つのブロックの画像データが複数のメモリユニットに格納された場合に、当該メモリユニットがブロックの先頭から何番目のメモリユニットに該当するかを示す情報である。なお、画像管理テーブル５０内での登録順序がブロック内シリアル番号５５としての機能を果たすようにすれば、ブロック内シリアル番号５４は省略されてもかまわない。
【００９２】
テーブル番号５５は、画像データの格納されたメモリユニットに関するユニット情報の参照先を示すリンク情報である。ここでは、メモリ管理テーブル４０の先頭から何番目の情報を参照するかを示す番号をリンク情報として使用しているが、参照先のアドレス情報やポインタ情報でもかまわない。また、テーブル番号５５の代わりに、該当するメモリユニットのユニット情報（ポインタアドレスやサイズ）を直接、画像管理テーブル５０に登録してもかまわない。
【００９３】
データサイズ５６は、テーブル番号が示すメモリユニットに格納された画像データのデータ量を示している。
【００９４】
なお、画像管理テーブル５０のテーブル形式は、図１０に例示したものに限定されず、たとえば、ジョブ毎やページ毎に画像管理テーブル５０が作成される場合には、それぞれの画像管理テーブル５０のヘッダ部にジョブ番号やページ番号を登録すれば足りる。少なくとも、各メモリユニットに格納された画像データの１ページ内での位置情報と、該メモリユニットのシステムメモリ１５内での位置やサイズを示す格納先情報とが関連付けて登録されていればよい。
【００９５】
図１０に示すような画像管理テーブル５０を参照することで、どのジョブのどのページのどのブロックの画像データがどのメモリユニットに格納されているかを認識することができる。しがたって、システムメモリ１５内で飛び飛びの位置にある複数のメモリ領域に分散して格納された１ページ分の画像データを画像管理テーブル５０に基づいて、元の１ページの画像データに繋げて読み出すことが可能になる。また、画像管理テーブル５０を参照することで、各ページ中のどの位置のブロックがどのメモリユニットに格納されているかを認識できるので、たとえば、ブロックの読み出し順序を制御することで、画像を回転させながら読み出すことも可能になる。
【００９６】
さらに、保存した画像データに係わる属性情報をシステム制御部１１が画像管理テーブル５０へ自動的に登録するので、これらの登録処理をプロセッサ１２が実行する場合に比べて、プロセッサ１２の処理負担を軽減することができる。また、各ブロックの画像データをどのメモリユニットにどれだけ格納したかは、その格納動作の主体であるシステム制御部１１が知っているので、格納した画像データに関する属性情報（画像格納情報）をシステム制御部１１が画像管理テーブル５０に登録することで、画像管理テーブル５０への登録処理を効率的に行なうことができる。
【００９７】
図１１は、画像出力処理におけるコマンドやデータの流れを示している。プロセッサ１２は、今回出力するページのジョブ番号、ページ番号および回転などに関する情報などをシステム制御部１１に通知し（Ｐ１１）、さらにシステム画像処理部１６、記録画像処理部２１、ＬＤ１９を起動する（Ｐ１２）。システム制御部１１は、システムメモリ１５に格納されている画像管理テーブル５０を参照し、通知されたジョブ番号、ページ番号を持つ画像格納情報を検索する。
【００９８】
さらに、通知された回転情報などからブロックの読み出し順序を決定する。そして、該決定した順序に従って画像管理テーブル５０から該当する画像格納情報を読み出し、その画像格納情報に含まれるテーブル番号５５に基づいてメモリ管理テーブル４０を参照することで、その画像格納情報に対応する画像データが格納されているメモリユニットの位置とサイズとを認識し、該メモリユニットから画像データを読み出してシステム画像処理部１６へ転送する（Ｐ１３）。
【００９９】
システム画像処理部１６は、１ブロック分の画像データの転送が完了すると、その画像データを伸張して圧縮前の画像データを復元する。また、復元した１ブロック分の画像データをページメモリ内の該当位置に配置する（Ｐ１４）。この処理を１ページの全ブロックについて完了するまで継続し、１ページ分の画像データが揃うと、該画像データを記録画像処理部２１を通じてＬＤ１９へ出力して記録紙への印刷を実行する（Ｐ１５）。
【０１００】
図１２は、メモリ管理テーブル４０ｂの他の一例を示している。メモリ管理テーブル４０ｂは、画像管理テーブル５０を参照することなく、メモリ管理テーブル４０ｂだけで画像データの読み出しが可能となるように、画像管理テーブル５０に登録されていたいくつかの情報を追加登録した構成になっている。具体的には、メモリ管理テーブル４０ｂのヘッダ情報としてジョブ番号４１とページ番号４２とを登録し、ユニット情報毎に、そのユニット情報が示すメモリユニットに格納された画像データのブロック番号４３とブロック内シリアル番号４４とが登録されている。
【０１０１】
メモリ管理テーブル４０ｂへのブロック番号４３およびブロック内シリアル番号４４の登録はシステム制御部１１が行なってもよいし、プロセッサ１２が画像管理テーブル５０を参照してメモリ管理テーブル４０ｂへ複写してもよい。なお、システム制御部１１がブロック番号４３およびブロック内シリアル番号４４をメモリ管理テーブル４０ｂに登録する場合には、システム制御部１１は画像管理テーブル５０を作成しなくてもかまわない。
【０１０２】
次に、第２の実施の形態について説明する。
【０１０３】
第２の実施の形態に係わる画像処理装置１０ａでは、システムメモリ１５とシステム画像処理部１６との間のデータ転送を、スクリプトファイルを利用したＤＭＡ転送で行なうようになっている。データの転送方法以外については第１の実施の形態と同一であり、それらの説明は省略する。
【０１０４】
図１３は、第２の実施の形態に係わる画像処理装置１０ａのうちでスクリプトファイルに関連する構成部分を示している。システムメモリ１５内には、第１の実施の形態と同様のメモリ管理テーブル４０および画像管理テーブル５０が生成されるほかに、スクリプトファイル６０がプロセッサ１２により作成される。スクリプトファイル６０は、１ページの画像データの分割状態などが記述される。
【０１０５】
システム画像処理部１６は、複数のＤＭＡチャンネルＣｈ１〜Ｃｈｎを備えたＤＭＡ転送部１６ｄと、スクリプトファイル６０の内容を解析してＤＭＡ転送部１６ｄへのパラメータ設定や起動などを行なうスクリプトエンジン１６ｅの機能を備えている。
【０１０６】
なお、第２の実施の形態では、画像分割部１６ａは、図１４に示すように、１ページの画像データ３０ａを水平方向に３分割、垂直方向に４分割し、ページ全体を１２ブロックに分割するものとする。図２の場合と同様に、各ブロック３１ａのページ内での位置は、座標情報（Ｘ，Ｙ）で表わされる。また、各ブロックは同一サイズであり、かつ水平方向の画素数と垂直方向の画素数とは等しくなっている。
【０１０７】
図１５は、画像データの水平方向の分割区域毎にＤＭＡチャンネルを固定的に割り当てる場合のスクリプトファイル６０ａの一例を示している。スクリプトファイル６０ａには、使用するＤＭＡチャンネル数６１と、垂直方向の分割数であるラインブロック数６２とが記述されている。また、各ＤＭＡチャンネルについて、そのＤＭＡチャンネルが受け持つブロックの水平方向の開始位置（H_Start_Pointer）６３とそのブロックの水平方向の画素数（Pixel数）６４とが登録される。さらに、垂直方向の分割区域（ラインブロックと呼ぶ。）毎に、そのラインブロックの垂直方向の開始位置（V_Start_Pointer）６５と垂直方向の画素数（Line数）６６とが登録される。
【０１０８】
スクリプトファイル６０ａに記述されたこれらの情報により、スクリプトエンジン１６ｅは、ページの分割状態、すなわち、ブロックの数、ページ内での各ブロックの位置やサイズを認識することができる。また、ＤＭＡチャンネルＣｈ１が、図１４におけるブロック（0,0）、（0,1）、（0,2）、（0,3）の転送を受け持ち、ＤＭＡチャンネルＣｈ２が、ブロック（1,0）、（1,1）、（1,2）、（1,3）の転送を受け持ち、ＤＭＡチャンネルＣｈ３が、ブロック（2,0）、（2,1）、（2,2）、（2,3）の転送を受け持つことが認識される。
【０１０９】
図１６は、図１５に示すスクリプトファイル６０ａを用いたＤＭＡ転送処理の流れを示している。ユーザから画像の読み取り動作を伴うジョブの実行指示を受けると、第１の実施の形態の場合と同様に、プロセッサ１２は、メモリ管理テーブル４０をシステムメモリ１５に作成する（Ｑ１）と共に、画像管理テーブル５０の作成領域を確保し、ジョブ情報に基づいてスクリプトファイル６０ａを作成する（Ｑ２）。さらに、プロセッサ１２は、スクリプトファイル６０ａの参照を指示するフラグをスクリプトエンジン１６ｅにセットすると共に、スクリプトファイル６０ａ、メモリ管理テーブル４０、画像管理テーブル５０のシステムメモリ１５内での位置情報（ポインタアドレス）をスクリプトエンジン１６ｅに通知する（Ｑ３）。
【０１１０】
スクリプトエンジン１６ｅは、スクリプトファイル６０ａより、ＤＭＡチャンネル数、ラインブロック数、各ＤＭＡチャンネルが受け持つブロックの水平方向開始位置と水平方向の画素数と、各ラインブロックの垂直方向開始位置と垂直方向の画素数（ライン数）とを取得する（Ｑ４）。
【０１１１】
次に、スクリプトエンジン１６ｅは、メモリ管理テーブル４０を参照することにより、格納先情報（画像データを格納するメモリユニットのポインタアドレスおよびサイズ）を取得すると共に（Ｑ５）、ＤＭＡチャンネルＣｈ１に、ブロック(0,0)を転送するためのスタートアドレス、転送バイト数などのパラメータを設定し、さらにスタートビット（転送開始指示）をセットしてＤＭＡＣｈ１を起動する（Ｑ６）。これにより、ブロック(0,0)の画像データがＤＭＡチャンネルＣｈ１によりシステム画像処理部１６からシステムメモリ１５に転送されて格納される。
【０１１２】
同様に、スクリプトエンジン１６ｅは、メモリ管理テーブル４０を参照することにより、次の格納先情報を取得し（Ｑ７）、ＤＭＡチャンネルＣｈ２に、ブロック(1,0)を転送するためのスタートアドレス、転送バイト数などのパラメータを設定し、さらにスタートビット（転送開始指示）をセットしてＤＭＡＣｈ２を起動する（Ｑ８）。これにより、ブロック(1,0)の画像データがＤＭＡチャンネルＣｈ２によりシステム画像処理部１６からシステムメモリ１５に転送されて格納される。
【０１１３】
さらに、スクリプトエンジン１６ｅは、メモリ管理テーブル４０を参照することにより、次の格納先情報を取得し（Ｑ９）、ＤＭＡチャンネルＣｈ３に、ブロック(2,0)を転送するためのスタートアドレス、転送バイト数などのパラメータを設定し、さらにスタートビット（転送開始指示）をセットしてＤＭＡＣｈ３を起動する（Ｑ１０）。これにより、ブロック(2,0)の画像データがＤＭＡチャンネルＣｈ３によりシステム画像処理部１６からシステムメモリ１５に転送されて格納される。
【０１１４】
スクリプトエンジン１６ｅは、ＤＭＡチャンネルＣｈ１からＤＭＡ転送の完了通知を受けると（Ｑ１１）、通知内容を解析すると共に、ＤＭＡチャンネルＣｈ１の終了フラグをクリアし、該ＤＭＡ転送で保存された画像データに関する画像格納情報を画像管理テーブル５０に登録する（Ｑ１２）。
【０１１５】
なお、スクリプトエンジン１６ｅは、メモリ管理テーブル４０から取得したメモリユニットのサイズが転送サイズより小さいなどにより、今回のＤＭＡ転送で１ブロック分の画像データの転送が完了していない場合は、メモリ管理テーブル４０を参照して次のメモリユニットのポインタアドレスとサイズを認識し、該メモリユニットを転送先エリアとしてＤＭＡチャンネルＣｈ１を再設定して残りの画像データの転送を実行する。この転送が完了すると、今回転送した画像データに関する画像格納情報を画像管理テーブル５０へ登録する。
【０１１６】
また、スクリプトエンジン１６ｅは、ＤＭＡチャンネルＣｈ２からＤＭＡ転送の完了通知を受けると（Ｑ１３）、通知内容を解析し、ＤＭＡチャンネルＣｈ２の終了フラグをクリアし、該ＤＭＡ転送で保存された画像データに関する画像格納情報を画像管理テーブル５０に登録する（Ｑ１４）。なお、今回のＤＭＡ転送で１ブロック分の画像データの転送が完了していない場合は、メモリ管理テーブル４０を参照し、ＤＭＡチャンネルＣｈ２を再セットし、次のメモリユニットに対して残りの画像データのＤＭＡ転送を実行し、該転送に係わる画像格納情報を画像管理テーブル５０へ登録することはＤＭＡチャンネルＣｈ１の場合と同様である。
【０１１７】
さらに、スクリプトエンジン１６ｅは、ＤＭＡチャンネルＣｈ３からのＤＭＡ転送の完了通知を受けると（Ｑ１５）、通知内容を解析し、ＤＭＡチャンネルＣｈ３の終了フラグをクリアし、該ＤＭＡ転送で保存された画像データに関する画像格納情報を画像管理テーブル５０に登録する（Ｑ１６）。今回のＤＭＡ転送で１ブロック分の画像データの転送が完了していない場合の動作は、他のＤＭＡチャンネルの場合と同様である。
【０１１８】
このようにして、ブロック(0,0)、ブロック(1,0)、ブロック(2,0)の画像データの転送が完了すると、スクリプトエンジン１６ｅは、上記の処理Ｑ５からＱ１６と同様に、ＤＭＡチャンネルＣｈ１を用いてブロック(0,1)の画像データをＤＭＡ転送し、ＤＭＡチャンネルＣｈ２を用いてブロック(1,1)の画像データをＤＭＡ転送し、ＤＭＡチャンネルＣｈ３を用いてブロック(2,1)の画像データをＤＭＡ転送し、それぞれの転送が完了すると該当する画像格納情報を画像管理テーブル５０に登録する（Ｑ１７からＱ２８）。
【０１１９】
さらに、スクリプトエンジン１６ｅは（図１６では、以後の動作を図示省略）、ＤＭＡチャンネルＣｈ１を用いてブロック(0,2)の画像データをＤＭＡ転送し、ＤＭＡチャンネルＣｈ２を用いてブロック(1,2)の画像データをＤＭＡ転送し、ＤＭＡチャンネルＣｈ３を用いてブロック(2,2)の画像データをＤＭＡ転送し、それぞれの転送が完了すると該当する画像格納情報を画像管理テーブル５０に登録する。その後さらに、ＤＭＡチャンネルＣｈ１を用いてブロック(0,3)の画像データをＤＭＡ転送し、ＤＭＡチャンネルＣｈ２を用いてブロック(1,3)の画像データをＤＭＡ転送し、ＤＭＡチャンネルＣｈ３を用いてブロック(2,3)の画像データをＤＭＡ転送し、それぞれの転送が完了すると該当する画像格納情報を画像管理テーブル５０に登録する。
【０１２０】
このようにして、スクリプトファイル６０ａで指定されたすべてのブロックのＤＭＡ転送が完了すると、スクリプトエンジン１６ｅは、処理完了をプロセッサ１２に通知して一連の動作を終了させる。
【０１２１】
上記のように、複数のブロックに分割された画像データに対するＤＭＡ転送を、スクリプトファイル６０ａおよびメモリ管理テーブル４０を参照することでスクリプトエンジン１６ｅが複数のＤＭＡチャンネルを用いて自律的に実行するので、プロセッサ１２の処理負担が軽減される。
【０１２２】
また、ＤＭＡ転送の完了時に、その転送した画像データに関する画像格納情報をスクリプトエンジン１６ｅが画像管理テーブル５０に登録するので、該処理についてもプロセッサ１２の処理負担が軽減される。また、第１の実施の形態の場合と同様に、複数のメモリユニットに分割して格納された画像データを画像管理テーブル５０とメモリ管理テーブル４０を参照することで、元の１ページの画像データに繋げて再生することができる。
【０１２３】
なお、図１２のメモリ管理テーブル４０ｂを使用する場合には、ブロック番号４３やブロック内シリアル番号４４のメモリ管理テーブル４０ｂへの登録をスクリプトエンジン１６ｅが行なうようにするとよい。
【０１２４】
次に、ＤＭＡチャンネルを固定的に割り当てない場合について説明する。
【０１２５】
図１７は、ＤＭＡチャンネルを流動的に使用する場合のスクリプトファイル６０ｂの一例を示している。図１５に示したスクリプトファイル６０ａと対比すると、水平方向の開始位置６３および画素数６４に関する情報を、ＤＭＡチャンネルと直接関連付けず、単に水平方向の分割に関する情報（Ｈ１情報、Ｈ２情報、Ｈ３情報）として登録している点と、ＤＭＡチャンネル数の指定が「２」である点が相違し、他は同一になっている。ＤＭＡチャンネルを流動的に使用する場合、水平方向の分割数と、使用するＤＭＡチャンネルの数とは不一致でもかまわない。図１７のスクリプトファイル６０ｂは、水平方向の分割数「３」よりも少ない２つのＤＭＡチャンネルを用いて画像データが転送する場合の例である。
【０１２６】
スクリプトエンジン１６ｅは、スクリプトファイル６０ｂを参照してブロックの分割状態を認識し、たとえばブロック(0,0)から所定の順に、各ブロックの処理を、空いているＤＭＡチャンネルを使用して順次実行させる。
【０１２７】
図１８は、図１７に示すスクリプトファイル６０ｂを用いたＤＭＡ転送処理の流れを示している。処理Ｆ１〜Ｆ４は図１６の処理Ｑ１〜Ｑ４と同様である。すなわち、プロセッサ１２により、メモリ管理テーブル４０の作成（Ｆ１）、画像管理テーブル５０の確保、スクリプトファイル６０ｂの作成（Ｆ２）、スクリプトエンジン１６ｅへの通知（Ｆ３）が行なわれ、スクリプトエンジン１６ｅは、スクリプトファイル６０ｂより、２つのＤＭＡチャンネルを使用すること、およびブロックの分割状態に関する情報を取得する（Ｆ４）。
【０１２８】
次に、スクリプトエンジン１６ｅは、メモリ管理テーブル４０を参照することにより、格納先情報（メモリユニットのポインタアドレスおよびサイズ）を取得し（Ｆ５）、ＤＭＡチャンネルＣｈ１にブロック(0,0)を転送するためのスタートアドレス、転送バイト数などのパラメータを設定し、さらにスタートビット（転送開始指示）をセットしてＤＭＡＣｈ１を起動する（Ｆ６）。これにより、ブロック(0,0)の画像データがＤＭＡチャンネルＣｈ１によりシステム画像処理部１６からシステムメモリ１５に転送されて格納される。
【０１２９】
同様に、スクリプトエンジン１６ｅは、メモリ管理テーブル４０を参照することにより、次の格納先情報を取得すると共に（Ｆ７）、ＤＭＡチャンネルＣｈ２にブロック(1,0)を転送するためのスタートアドレス、転送バイト数などのパラメータを設定し、さらにスタートビット（転送開始指示）をセットしてＤＭＡＣｈ２を起動する（Ｆ８）。これにより、ブロック(1,0)の画像データがＤＭＡチャンネルＣｈ２によりシステム画像処理部１６からシステムメモリ１５に転送されて格納される。
【０１３０】
スクリプトエンジン１６ｅは、ＤＭＡチャンネルＣｈ１からＤＭＡ転送の完了通知を受けると（Ｆ９）、通知内容を解析すると共に、ＤＭＡチャンネルＣｈ１の終了フラグをクリアし、該ＤＭＡ転送で保存された画像データに関する画像格納情報を画像管理テーブル５０に登録する（Ｆ１０）。
【０１３１】
同様に、スクリプトエンジン１６ｅは、ＤＭＡチャンネルＣｈ２からのＤＭＡ転送の完了通知を受けると（Ｆ１１）、通知内容を解析し、ＤＭＡチャンネルＣｈ２の終了フラグをクリアし、該ＤＭＡ転送で保存された画像データに関する画像格納情報を画像管理テーブル５０に登録する（Ｆ１２）。
【０１３２】
なお、各ＤＭＡ転送で１ブロック分の画像データの転送が完了していない場合に、メモリ管理テーブル４０を参照して次の格納先情報を取得し、ＤＭＡチャンネルを再セットし、次のメモリユニットに対して残りの画像データのＤＭＡ転送を実行し、転送が完了すると、今回転送した画像データに関する画像格納情報を画像管理テーブル５０へ登録することは、図１６での動作と同様である。
【０１３３】
このようにして、ブロック(0,0)、ブロック(1,0)の画像データの転送が完了すると、スクリプトエンジン１６ｅは、ＤＭＡチャンネルＣｈ１を用いてブロック(2,0)の画像データのＤＭＡ転送を、ＤＭＡチャンネルＣｈ２を用いてブロック(0,1)の画像データのＤＭＡ転送を実行させ、転送した画像データに関する画像格納情報を画像管理テーブル５０へ登録する。（Ｆ１３からＦ２０）。
【０１３４】
同様に、ＤＭＡチャンネルＣｈ１とＣｈ２とを用いて、ブロック(1,1)とブロック(2,1)の転送、ブロック(0,2)とブロック(1,2)の転送、ブロック(2,2)とブロック(0,3)の転送、ブロック(1,3)とブロック(2,3)の転送を、順次実行し、それぞれの転送後に画像管理テーブル５０への画像格納情報の登録を実行する。このようにして、スクリプトファイル６０ｂで指定されたすべてのブロックのＤＭＡ転送が完了すると、スクリプトエンジン１６ｅは、処理完了をプロセッサ１２に通知して動作を終了させる。
【０１３５】
図１９および図２０は、４つのＤＭＡチャンネルを流動的に割り当てる場合のＤＭＡ転送処理の流れの一例を示している。使用するスクリプトファイルは、ＤＭＡチャンネル数を「４」とする以外は図１７に示したものと同一であり、その図示および説明は省略する。
【０１３６】
図１９の処理Ｇ１〜Ｇ４は図１６のＱ１〜Ｑ４と同様であり、プロセッサ１２により、メモリ管理テーブル４０の作成（Ｇ１）、画像管理テーブル５０の確保、スクリプトファイルの作成（Ｇ２）、スクリプトエンジン１６ｅへの通知（Ｇ３）が行なわれる。また、スクリプトエンジン１６ｅは、上記のスクリプトファイルより、４つのＤＭＡチャンネルを使用すること、およびブロックの分割状態を認識する（Ｇ４）。
【０１３７】
次に、スクリプトエンジン１６ｅは、メモリ管理テーブル４０を参照しながら、ＤＭＡチャンネルＣｈ１に対してブロック(0,0)を転送するための設定と起動を行ない（Ｇ５、Ｇ６）、ＤＭＡチャンネルＣｈ２に対してブロック(1,0)を転送するための設定と起動を行ない（Ｇ７、Ｇ８）、ＤＭＡチャンネルＣｈ３に対してブロック(2,0)を転送するための設定と起動を行ない（Ｇ９、Ｇ１０）、ＤＭＡチャンネルＣｈ４に対してブロック(0,1)を転送するための設定と起動を行なう（Ｇ１１、Ｇ１２）。
【０１３８】
その後、ＤＭＡチャンネルＣｈ１からＤＭＡ転送の完了通知を受けると（Ｇ１３）、通知内容を解析し、終了フラグをクリアし、該ＤＭＡ転送で保存された画像データに関する画像格納情報を画像管理テーブル５０に登録する（Ｇ１４）。ＤＭＡチャンネルＣｈ２、Ｃｈ３、Ｃｈ４からの完了通知に対しても同様の処理を行なう（Ｇ１５〜Ｇ２０）。
【０１３９】
さらに、スクリプトエンジン１６ｅは、メモリ管理テーブル４０を参照しながら、ＤＭＡチャンネルＣｈ１に対してブロック(1,1)を転送するための設定と起動を行ない（図２０、Ｇ２１、Ｇ２２）、ＤＭＡチャンネルＣｈ２に対してブロック(2,1)を転送するための設定と起動を行ない（Ｇ２３、Ｇ２４）、ＤＭＡチャンネルＣｈ３に対してブロック(0,2)を転送するための設定と起動を行ない（Ｇ２５、Ｇ２６）、ＤＭＡチャンネルＣｈ４に対してブロック(1,2)を転送するための設定と起動を行なう（Ｇ２７、Ｇ２８）。
【０１４０】
スクリプトエンジン１６ｅは、ＤＭＡ転送が終了して空き状態になったＤＭＡチャンネルに対して、次のブロックの転送を順次指示するようになっており、図２０の例では、ブロック(0,2)のデータ量が少なく、ＤＭＡチャンネルＣｈ３は、先に設定／起動したＤＭＡチャンネルＣｈ１、Ｃｈ２より早くＤＭＡ転送が完了している（Ｇ２９、Ｇ３０）。そこで、ＤＭＡチャンネルＣｈ３に次のブロック(2,2)を転送するための設定と起動が行なわれる（Ｇ３１、Ｇ３２）。同様に、次にＤＭＡ転送の完了した（Ｇ３３、Ｇ３４）ＤＭＡチャンネルＣｈ４に対して、次のブロック(0,3)を転送するための設定と起動が行なわれている（Ｇ３５、Ｇ３６）。
【０１４１】
その後、ＤＭＡチャンネルＣｈ１によるブロック(1,1)の転送とＤＭＡチャンネルＣｈ２によるブロック(2,1)の転送とが続けて完了し（Ｇ３７〜Ｇ４０）、さらにその後、ＤＭＡチャンネルＣｈ３によるブロック(2,2)の転送とＤＭＡチャンネルＣｈ４によるブロック(0,3)の転送とが続けて完了している（Ｇ４１〜Ｇ４４）。
【０１４２】
そこで、最も早くＤＭＡ転送が完了したＤＭＡチャンネルＣｈ１に対して次のブロック(1,3)を転送するための設定と起動を行ない（Ｇ４５、Ｇ４６）、さらにその次に早くＤＭＡ転送が完了して空き状態になったＤＭＡチャンネルＣｈ２に対して最後のブロック(2,3)を転送するための設定と起動を行なっている（Ｇ４７、Ｇ４８）。これらの転送が完了し、対応する画像格納情報を画像管理テーブル５０に登録することで（Ｇ４９〜Ｇ５２）、指定されたすべてのブロックに対するＤＭＡ転送が完了し、スクリプトエンジン１６ｅは処理完了をプロセッサ１２に通知して（Ｇ５３）動作を終了させる。
【０１４３】
このように、全ＤＭＡチャンネルの転送完了を待たずに、早く転送の完了したＤＭＡチャンネルに対して次のブロックの転送を即座に指示することにより、複数のＤＭＡチャンネルを有効に活用してデータの転送効率を高めることができる。
【０１４４】
なお、スクリプトファイルによるＤＭＡ転送は、画像データをシステムメモリ１５からシステム画像処理部１６へ転送する画像出力時に使用されてもよい。
【０１４５】
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【０１４６】
たとえば、本実施の形態では、システムメモリに画像データを保存するようにしたが、本発明は画像データの保存用に大きな空き領域を常時確保しておくことが難しく、飛び飛びの空き領域に分散して画像データを格納する必要のある場合に有効なものであり、画像データを格納するメモリは、システムメモリ以外のメモリであってもかまわない。
【０１４７】
また、図２や図１４に示した画像データの分割状態は例示であり、どのようなサイズのブロックに分割するか、あるいはいくつのブロックに分割するかなどは適宜に設定すればよい。さらに、実施の形態では、メモリ領域の確保状況に係わらず、予め画像データを複数のブロックに分割した後、各ブロックをメモリへ格納するようにしたが、画像データを圧縮しない場合などにおいては、確保できたメモリ領域の大きさに合わせて画像データを分割するようにしてもかまわない。
【０１４８】
画像管理テーブルに登録する情報は、実施の形態で例示したものに限定されず、複数のメモリ領域に分散して格納された画像データを、元の状態に繋ぎ合わせることのできる情報が少なくとも登録されていればよい。ジョブ番号やページ番号などは画像管理テーブル以外の場所で管理し、ジョブ番号およびページ番号を管理する情報に対して、そのジョブ番号・ページ番号に対応する画像管理テーブルをリンクさせるように構成してもよい。
【０１４９】
また、実施の形態では、画像データの保存に際して標準的なメモリ領域を確保しておき、画像データの格納中にメモリ領域が不足した場合に新たな領域を追加して確保するようにしたが、最初から充分な量のメモリ領域を確保し、余った分を後で開放するように構成してもよい。
【０１５０】
第２の実施の形態では、システム画像処理部１６の中にスクリプトエンジン１６ｅやＤＭＡ転送部１６ｄを設けるようにしたが、システム画像処理部１６とは別のデバイスにスクリプトエンジン１６ｅやＤＭＡ転送部１６ｄを設けてもかまわない。たとえば、システム制御部１１がこれらの機能を備えてもよい。
【０１５１】
また、スクリプトファイルのデータ構成は実施の形態で例示したものに限定されない。たとえば、画像データの分割状態を、各ブロックの対角頂点の位置で示す情報で表わすようにしてもよいし、画像データを均等なサイズに分割することが取り決めてあれば、水平方向の分割数と垂直方向の分割数と画像データの水平方向サイズ、垂直方向サイズなどを記述するように構成してもよい。
【０１５２】
スクリプトファイル、メモリ管理テーブル、画像管理テーブルなどはシステムメモリ以外のメモリに格納されてもよく、必要なデバイスからアクセス可能であればよい。
【図面の簡単な説明】
【０１５３】
【図１】本発明の各実施の形態に係わる画像処理装置の概略構成を示すブロック図である。
【図２】１ページ分の画像データの分割状態の一例を示す説明図である。
【図３】本発明の実施の形態に係わる画像処理装置が行なう読込動作全体を示す流れ図である。
【図４】図３に示す読込動作におけるコマンドやデータの流れを示す説明図である。
【図５】メモリ管理テーブルの作成処理を示す流れ図である。
【図６】システムメモリの空き状態と生成されたメモリ管理テーブルとの対応関係の一例を示す説明図である。
【図７】状態情報を備えたメモリ管理テーブルの一例を示す説明図である。
【図８】システム画像処理部で圧縮された１ブロックの画像データをシステムメモリに格納する格納処理の流れ図である。
【図９】ブロック（0,0）の画像データを圧縮してシステムメモリに格納する様子を例示した説明図である。
【図１０】画像管理テーブルの一例を示す説明図である。
【図１１】画像出力処理におけるコマンドやデータの流れを示す説明図である。
【図１２】画像管理テーブルに登録される情報がさらに登録されたメモリ管理テーブルの一例を示す説明図である。
【図１３】本発明の第２の実施の形態に係わる画像処理装置のスクリプトファイルに関連する構成部分を抜粋して示したブロック図である。
【図１４】第２の実施の形態を説明する際の画像データの分割状態を示す説明図である。
【図１５】ＤＭＡチャンネルを固定的に割り当てる場合のスクリプトファイルの一例を示す説明図である。
【図１６】図１５に示すスクリプトファイルを用いたＤＭＡ転送処理の流れを示す説明図である。
【図１７】ＤＭＡチャンネルを流動的に使用する場合のスクリプトファイルの一例を示す説明図である。
【図１８】図１７に示すスクリプトファイルを用いたＤＭＡ転送処理の流れを示す説明図である。
【図１９】４つのＤＭＡチャンネルを流動的に使用する場合におけるＤＭＡ転送処理の流れを示す説明図である。
【図２０】図１９の続きを示す説明図である。
【符号の説明】
【０１５４】
１０、１０ａ…画像処理装置
１１…システム制御部
１２…プロセッサ
１２ａ…メモリ管理テーブル生成機能
１３…周辺制御部
１４…ＬＣＤパネル
１５…システムメモリ
１６…システム画像処理部
１６ａ…画像分割部
１６ｂ…圧縮／伸張部
１６ｄ…ＤＭＡ転送部
１６ｅ…スクリプトエンジン
１７…ＣＣＤ
１７ａ…スキャナ
１８…読取画像処理部
１９…ＬＤ
２１…記録画像処理部
２２…ＲＯＭ
２３…小容量ストレージデバイス
２４…大容量ストレージデバイス
２５…不揮発メモリ
２６…外部インターフェイス部
３０、３０ａ…１ページ分の画像データ
３１、３１ａ…ブロック
３２…圧縮データ
４０、４０ａ、４０ｂ…メモリ管理テーブル
Ｌｐ…ラストポインタ
Ａｄ…ポインタアドレス
Ｓｚ…サイズ情報
Ｓｔ…状態情報
４１…ジョブ番号
４２…ページ番号
４３…ブロック番号
４４…ブロック内シリアル番号
５０…画像管理テーブル
ｒ１〜ｒ３…画像格納情報
５１…ジョブ番号
５２…ページ番号
５３…ブロック番号
５４…ブロック内シリアル番号
５５…テーブル番号
５６…データサイズ
６０、６０ａ、６０ｂ…スクリプトファイル
６１…ＤＭＡチャンネル数
６２…ラインブロック数
６３…各ブロックの水平方向の開始位置
６４…各ブロックの水平方向の画素数
６５…ラインブロックの垂直方向の開始位置
６６…ラインブロックの垂直方向のライン数
【図１】
2007310627.tif 000003
【図２】
2007310627.tif 000004
【図３】
2007310627.tif 000005
【図４】
2007310627.tif 000006
【図５】
2007310627.tif 000007
【図６】
2007310627.tif 000008
【図７】
2007310627.tif 000009
【図８】
2007310627.tif 000010
【図９】
2007310627.tif 000011
【図１０】
2007310627.tif 000012
【図１１】
2007310627.tif 000013
【図１２】
2007310627.tif 000014
【図１３】
2007310627.tif 000015
【図１４】
2007310627.tif 000016
【図１５】
2007310627.tif 000017
【図１６】
2007310627.tif 000018
【図１７】
2007310627.tif 000019
【図１８】
2007310627.tif 000020
【図１９】
2007310627.tif 000021
【図２０】
2007310627.tif 000022