(57)【要約】【課題】本発明は、メモリから読み出したデータを可変長圧縮して転送先メモリに転送する際のデータ転送効率の向上を図る。【解決手段】画像処理装置１は、不揮発性メモリコントローラ２のＤＭＡＣ１１によってメモリ４から転送対象データを読み出して、圧縮伸長器１２で可変長圧縮した後、ＡＴＡコマンド発行器１３によってアドレスとデータ転送サイズを指定したＡＴＡコマンドを発行して、ＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５の指定アドレスに指定データ転送サイズずつ転送するとともに、発行したＡＴＡコマンドのアドレスに連続する次アドレスを、ＡＴＡコマンド自動発行器１４がＡＴＡコマンド発行器１３に付与する。【選択図】          図１
2011243090.tif 000002
【特許請求の範囲】
【請求項１】
転送元メモリから転送対象データを読み出すデータ読み出し手段と、
前記データ読み出し手段の読み出したデータを可変長圧縮する圧縮手段と、
前記圧縮手段の圧縮した圧縮データの転送先メモリにおけるアドレスとデータ転送サイズを指定したＡＴＡコマンドを発行して該転送先メモリにデータ転送するＡＴＡコマンド発行手段と、
前記ＡＴＡコマンド発行手段に該ＡＴＡコマンド発行手段が発行したＡＴＡコマンドのアドレスに連続する次アドレスを付与するＡＴＡコマンド自動発行手段と、
を備えていることを特徴とするデータ転送制御装置。
【請求項２】
前記転送元メモリの転送対象データの総データ量と転送済みデータ量から未転送のデータ残容量を算出するデータ残容量算出手段と、
前記データ読み出し手段の読み出したデータに対する前記圧縮手段による平均圧縮率を算出する平均圧縮率算出手段と、
前記ＡＴＡコマンド発行手段によるＡＴＡコマンドによる前記データ転送サイズの転送毎に前記データ残容量と前記平均圧縮率から前記ＡＴＡコマンド発行手段による次のデータ転送が、ＡＴＡコマンドとしての最終データ転送であるか否かを判断して、最終データ転送であると、該データ残容量と該平均圧縮率から、次に発行すべきＡＴＡコマンドのデータ転送サイズを算出して、前記ＡＴＡコマンド自動発行手段に該データ転送サイズを該ＡＴＡコマンド発行手段に設定させる制御手段と、
を備えていることを特徴とする請求項１記載のデータ転送制御装置。
【請求項３】
前記データ転送制御装置は、
前記データ残容量と前記平均圧縮率から前記ＡＴＡコマンド発行手段による次のデータ転送が、ＡＴＡコマンドとしての最終データ転送であるか否かを検知する最終データ予測検知手段を、
さらに備え、
前記制御手段は、前記ＡＴＡコマンド発行手段による次のデータ転送が前記最終データ転送であることを前記最終データ予測検知手段が検知すると、前記データ残容量と前記平均圧縮率から、次に発行すべきＡＴＡコマンドのデータ転送サイズを算出して、前記ＡＴＡコマンド自動発行手段に該データ転送サイズを前記ＡＴＡコマンド発行手段に設定させることを特徴とする請求項２記載のデータ転送制御装置。
【請求項４】
前記転送元メモリの転送対象データの総データ量と転送済みデータ量から未転送のデータ残容量を算出するデータ残容量算出手段と、
前記データ読み出し手段の読み出したデータに対する前記圧縮手段による平均圧縮率を算出する平均圧縮率算出手段と、
前記データ残容量と前記平均圧縮率から前記ＡＴＡコマンド発行手段による次のデータ転送が、ＡＴＡコマンドとしての最終データ転送であるか否かを検知して、最終データ転送であると、該データ残容量と該平均圧縮率から、次に発行すべきＡＴＡコマンドのデータ転送サイズを算出して、前記ＡＴＡコマンド自動発行手段に出力する最終データ予測検知手段と、
を備えていることを特徴とする請求項１記載のデータ転送制御装置。
【請求項５】
前記データ転送制御装置は、
前記データ読み出し手段が前記転送元メモリから読み出したデータサイズと前記圧縮手段の圧縮した圧縮データのデータサイズから該圧縮データが元データのデータサイズ以下に圧縮されたか否かを監視する圧縮率監視手段と、
前記圧縮率監視手段が前記圧縮データのデータサイズが元データのデータサイズよりも大きいことを検知すると、前記データ読み出し手段に同じ元データを前記転送元メモリから読み出させて、該データを前記圧縮手段を非圧縮状態で通過させた後、前記ＡＴＡコマンド発行手段に該元データをそのまま前記転送先メモリに転送させる元データ転送制御手段と、
を備えていることを特徴とする請求項１から請求項４のいずれかに記載のデータ転送制御装置。
【請求項６】
前記データ転送制御装置は、
前記データ読み出し手段が前記転送元メモリから読み出したデータサイズと前記圧縮手段の圧縮した圧縮データのデータサイズから該圧縮データが元データのデータサイズ以下に圧縮されたか否かを監視し、該圧縮データのデータサイズが元データのデータサイズよりも大きいときには、該データ読み出し手段に同じ元データを該転送元メモリから読み出させて、該データを該圧縮手段を非圧縮状態で通過させた後、前記ＡＴＡコマンド発行手段に該元データをそのまま前記転送先メモリに転送させる圧縮率監視手段を、
さらに備えていることを特徴とする請求項１から請求項４のいずれかに記載のデータ転送制御装置。
【請求項７】
揮発性メモリの画像データをＡＴＡコマンドを用いて不揮発性メモリに転送して該不揮発性メモリに画像データを格納するデータ転送制御部を備えた画像処理装置において、
前記データ転送制御部として、請求項１から請求項６のいずれかに記載のデータ転送制御装置を搭載していることを特徴とする画像処理装置。
【請求項８】
転送元メモリから転送対象データを読み出すデータ読み出し処理ステップと、
前記データ読み出し処理ステップで読み出されたデータを可変長圧縮する圧縮処理ステップと、
前記圧縮処理ステップで圧縮された圧縮データの転送先メモリにおけるアドレスとデータ転送サイズを指定したＡＴＡコマンドを発行して該転送先メモリにデータ転送するＡＴＡコマンド発行処理ステップと、
前記ＡＴＡコマンド発行処理ステップにおいて該ＡＴＡコマンド発行処理ステップで発行したＡＴＡコマンドのアドレスに連続する次アドレスを付与するＡＴＡコマンド自動発行処理ステップと、
を有していることを特徴とするデータ転送制御方法。
【請求項９】
コンピュータに、
転送元メモリから転送対象データを読み出すデータ読み出し処理と、
前記データ読み出し処理で読み出されたデータを可変長圧縮する圧縮処理と、
前記圧縮処理で圧縮された圧縮データの転送先メモリにおけるアドレスとデータ転送サイズを指定したＡＴＡコマンドを発行して該転送先メモリにデータ転送するＡＴＡコマンド発行処理と、
前記ＡＴＡコマンド発行処理において該ＡＴＡコマンド発行処理で発行したＡＴＡコマンドのアドレスに連続する次アドレスを付与するＡＴＡコマンド自動発行処理と、
を実行させることを特徴とするデータ転送制御プログラム。
【請求項１０】
請求項９記載のデータ転送制御プログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関し、詳細には、メモリからＡＴＡ  Ｉ／Ｆ等のインターフェイスを備えた不揮発性メモリへのダイレクトパス上の圧縮伸長部で、メモリから読み出したデータを圧縮した後に該不揮発性メモリへ格納するデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関する。
【背景技術】
【０００２】
複写装置、プリンタ装置、ファクシミリ装置、複合装置等の画像処理装置においては、画像データを高速処理が可能なＲＡＭ（Random Access Memory）等の揮発性メモリに一旦保管した後、ダイレクトパス上の圧縮伸長部で圧縮して、ハードディスク等のＡＴＡ（Advanced Technologies Attachment）Ｉ／Ｆ（インターフェイス）を備えた不揮発性メモリに転送して格納することが行われている。
【０００３】
このメモリからＡＴＡ  Ｉ／Ｆを備えた不揮発性メモリへのデータ転送においては、圧縮伸長部として可変長圧縮伸長部を用いる場合がある。この場合、圧縮伸長部及びＤＭＡＣ（Direct Memory Access Controller ：ＤＭＡコントローラ）を搭載するメモリコントローラを用いて、ＤＭＡＣによるＤＭＡ（Direct Memory Access）転送によってメモリから読み出したデータを圧縮伸長部で圧縮した後にＡＴＡ  Ｉ／Ｆによって不揮発性メモリへデータ転送を行うが、圧縮伸長部として可変長圧縮部を用いると、圧縮後のデータサイズが判らないため、ＡＴＡコマンドで転送可能な最大サイズを設定してデータを格納することになる。
【０００４】
ところが、ＡＴＡ転送においては、最終転送ブロックでは、圧縮後のデータサイズが転送可能な最大サイズよりも小さくなり、最大サイズまでの残りの転送データを、「０」データで埋める０埋めを行って転送する等の余分なデータ転送を行う必要がある。
【０００５】
また、ＡＴＡコマンド上の最大転送サイズは、規定されていて、例えば、４８ｂｉｔアドレスの場合、３２ＭＢが最大転送サイズとなり、この最大転送サイズを超えるデータサイズをメモリからＤＭＡで直接転送する際には、ソフトが介在して３２ＭＢ毎にＡＴＡコマンドを発行する必要がある。
【０００６】
さらに、ＳＡＴＡ（Serial Advanced Technology Attachment）においては、１回の転送量は増えたが、なおかつ、最大サイズが３２ＭＢであるため、最大サイズを超えるデータを転送する場合には、３２ＭＢ毎にＡＴＡコマンドをソフトが発行する必要あり、ソフト処理によるオーバヘッドがあった。
【０００７】
そして、従来、ハードディスクへのデータ転送において、データ転送用のＤＭＡＣとコマンド発行用のＤＭＡＣを設けることで、ＣＰＵ（Central Processing Unit）にかかる負荷の軽減を図った技術が提案されている（特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述のように、ＡＴＡ  Ｉ／Ｆを備えた不揮発性メモリにデータを転送して格納するためには、データ転送前に転送サイズを指定する必要があり、転送データが決まっていないとデータを格納することができない。したがって、メモリから不揮発性メモリへのデータパスに設けられているメモリコントローラが、その搭載する圧縮伸長部で可変長圧縮を行ってデータを不揮発性メモリに保存する場合には、可変長圧縮した圧縮データを一旦メモリに格納してデータサイズを判った後に、再度、不揮発性メモリに転送して格納するか、大きめの転送サイズを設定して、設定サイズに達しないデータサイズを０データ等の余分なデータを付加して不揮発性メモリに転送して格納する必要があった。
【０００９】
そして、上記公報記載の従来技術にあっては、コマンド発行用のＤＭＡＣを設けることで、ＣＰＵの介在を削減しているが、データを可変長圧縮してデータサイズがデータによって変化する場合については考慮されておらず、改良の必要があった。
【００１０】
そこで、本発明は、可変長圧縮したデータを転送データサイズの決まっているインターフェイスを備えた不揮発性メモリに、ソフトの介在を削減しつつ、最適なサイズのデータを転送して保存するデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【００１１】
本発明は、上記目的を達成するために、転送元メモリから転送対象データを読み出して、可変長圧縮した後、アドレスとデータ転送サイズを指定したＡＴＡコマンドを発行して転送先メモリの指定アドレスに指定データ転送サイズずつ転送するとともに、発行したＡＴＡコマンドのアドレスに連続する次アドレスを付与することを特徴としている。
【００１２】
また、本発明は、前記転送元メモリの転送対象データの総データ量と転送済みデータ量から未転送のデータ残容量及び該転送元メモリから読み出したデータに対する平均圧縮率を算出して、該データ残容量と該平均圧縮率からＡＴＡコマンドによる次のデータ転送が、ＡＴＡコマンドとしての最終データ転送であると、該データ残容量と該平均圧縮率から、次に発行すべきＡＴＡコマンドのデータ転送サイズを算出することを特徴としてもよい。
【００１３】
さらに、本発明は、前記転送元メモリから読み出されたデータサイズと圧縮された圧縮データのデータサイズから該圧縮データが元データのデータサイズ以下に圧縮されたか否かを監視して、該圧縮データのデータサイズが元データのデータサイズよりも大きいと、同じ元データを該転送元メモリから読み出して、非圧縮状態で、該元データをそのまま前記転送先メモリに転送することを特徴としてもよい。
【発明の効果】
【００１４】
本発明によれば、可変長圧縮したデータを転送データサイズの決まっているインターフェイスを備えた不揮発性メモリに、ソフトの介在を削減しつつ、最適なサイズのデータを転送して保存することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１実施例を適用した画像処理装置の要部ブロック構成図。
【図２】ＡＴＡコマンド自動発行器のブロック構成図。
【図３】データ転送制御処理を示すフローチャート。
【図４】本発明の第２実施例を適用した画像処理装置の要部ブロック構成図。
【図５】メモリ残容量計算器のブロック構成図。
【図６】平均圧縮率保存器のブロック構成図。
【図７】第２実施例のデータ転送制御処理を示すフローチャート。
【図８】第２実施例におけるメモリ内のデータ転送の説明図。
【図９】第３実施例の画像処理装置の要部ブロック構成図。
【図１０】最終データ予測検知器のブロック構成図。
【図１１】第３実施例のデータ転送制御処理を示すフローチャート。
【図１２】第４実施例の画像処理装置の要部ブロック構成図。
【図１３】第４実施例のデータ転送制御処理を示すフローチャート。
【図１４】第５実施例の画像処理装置の要部ブロック構成図。
【図１５】第５実施例のデータ転送制御処理を示すフローチャート。
【図１６】第６実施例の画像処理装置の要部ブロック構成図。
【図１７】第６実施例のデータ転送制御処理を示すフローチャート。
【発明を実施するための形態】
【００１６】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例１】
【００１７】
図１〜図３は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第１実施例を示す図であり、図１は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第１実施例を適用した画像処理装置１のブロック構成図である。
【００１８】
図１において、画像処理装置１は、不揮発性メモリコントローラ２、ＣＰＵ３、メモリ４及び不揮発性メモリ５等を備えているとともに、画像処理装置１として必要な各部、例えば、画像処理装置１が複合装置の場合には、原稿の画像を読み取るスキャナ部、ネットワークを介してデータ等の授受を行うネットワークＩ／Ｆ（インターフェイス）、画像データから変換された描画データに基づいて画像を用紙に記録出力するプリンタ部、必要な各種操作を行う操作表示部等を備えている。
【００１９】
不揮発性メモリコントローラ（データ転送制御装置）２は、ＤＭＡＣ１１、圧縮伸長器１２、ＡＴＡコマンド発行器１３及びＡＴＡコマンド自動発行器１４等を備えており、メモリ４と不揮発性メモリ５との間のデータ転送を制御する。
【００２０】
ＣＰＵ（制御手段、元データ転送制御手段）３は、不揮発性メモリ５または図示しないＲＯＭ等に格納されているプログラムに基づいて、画像処理装置１の全体を制御して、画像処理装置１としての基本処理を実行するとともに、本発明のデータ転送制御プログラムに基づいてデータ転送制御方法を実行する。
【００２１】
すなわち、画像処理装置１は、ＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory ）、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＣＤ−ＲＷ（Compact Disc Rewritable ）、ＤＶＤ（Digital Versatile Disk）、ＳＤ（Secure Digital）カード、ＭＯ（Magneto-Optical Disc）等のコンピュータが読み取り可能な記録媒体に記録されている本発明のデータ転送制御方法を実行するデータ転送制御プログラムを読み込んでＲＯＭや不揮発性メモリ５等に導入することで、後述するメモリ４から不揮発性メモリ５に圧縮伸長器１２で可変長圧縮した圧縮データを、ＡＴＡコマンドによって転送するデータ転送制御方法を実行する画像処理装置として構築されている。このデータ転送制御プログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【００２２】
メモリ（転送元メモリ）４は、ＲＡＭ等が用いられ、スキャナ部で読み取った画像データやネットワークＩ／Ｆを介して外部装置（コンピュータ等）から受信した画像データ及び不揮発性メモリ５から読み出された画像データ等のデータが格納される。
【００２３】
不揮発性メモリ（転送先メモリ）５は、ハードディスク等で構成され、不揮発性メモリコントローラ２の制御下でデータの書き込み及び読み出しが行われる。不揮発性メモリ５は、ＡＴＡ  Ｉ／Ｆ５ａを備えており、不揮発性メモリコントローラ２とＡＴＡ  Ｉ／Ｆ５ａを介してデータの授受を行う。ＡＴＡ  Ｉ／Ｆ５ａは、不揮発性メモリ５へのＡＴＡコマンドによるデータの書き込み及び読み出しを実行する。
【００２４】
不揮発性メモリコントローラ２のＤＭＡＣ（データ読み出し手段）１１は、ＣＰＵ３がメモリ４に記録したディスクリプタに基づいてメモリ４上のデータ（画像データ）を読み取って圧縮伸長器１２に渡し、また、圧縮伸長器１２が伸長したデータをディスクリプタに基づいてメモリ４上に書き込む。
【００２５】
圧縮伸長器（圧縮手段）１２は、ＤＭＡＣ１１から渡されたデータを、所定の可変長圧縮方式、例えば、ＪＰＥＧ（Joint Photographic Experts Group）等で圧縮してＡＴＡコマンド発行器１３に渡し、ＡＴＡコマンド発行器１３から渡された圧縮データを復号してＤＭＡＣ１１に渡す。
【００２６】
ＡＴＡコマンド発行器（ＡＴＡコマンド発行手段）１３は、ＡＴＡ  Ｉ／Ｆ５ａを備えた不揮発性メモリ５にデータを書き込むためのＡＴＡコマンドを発行し、また、不揮発性メモリ５からデータを読み出すためのＡＴＡコマンドを発行する。ＡＴＡコマンド発行器１３は、所定ｂｉｔ（ビット）、例えば、４８ｂｉｔアドレスのＡＴＡコマンドを発行して不揮発性メモリ５へのデータの転送及び不揮発性メモリ５からのデータの転送を行うが、ＡＴＡコマンドにおいては、１回の転送量に上限値があって、大量のデータを転送する場合には、ＡＴＡコマンドをデータ量に応じた回数発行する必要がある。例えば、４８ｂｉｔアドレスのＡＴＡコマンドを用いてデータ転送を行った場合、１回の最大転送サイズは３２ＭＢであり、３２０ＭＢサイズのデータを転送するには、１０回のＡＴＡコマンドを発行する必要がある。
【００２７】
ＡＴＡコマンド自動発行器（ＡＴＡコマンド自動発行手段）１４は、図２に示すように、発行アドレス保存器２１、加算器２２、転送サイズ保存器２３及び演算結果アドレス保存器２４を備えており、ＡＴＡコマンド発行器１３がＡＴＡコマンドを発行する毎に次のＡＴＡコマンドを自動発行してＡＴＡコマンド発行器１３に提供する。
【００２８】
発行アドレス保存器２１は、ＡＴＡコマンド発行器１３がＡＴＡコマンドを発行する毎に、そのＡＴＡコマンドの指定する不揮発性メモリ５のアドレスを保存し、転送サイズ保存器２３は、ＡＴＡコマンド発行器１３の発行するＡＴＡコマンドによって転送されるデータのサイズ（データ転送サイズ）を保存する。
【００２９】
加算器２２は、転送サイズ保存器２３の保存するデータ転送サイズと発行アドレス保存器２１の保存している不揮発性メモリ５のアドレスを参照して、次に発行するＡＴＡコマンドのアドレスを計算し、算出した次アドレスを演算結果アドレス保存器２４に渡す。
【００３０】
演算結果アドレス保存器２４は、加算器２２の演算した次の発行アドレスを保存し、ＡＴＡコマンド発行器１３に出力する。
【００３１】
ＡＴＡコマンド発行器１３は、ＡＴＡコマンドを発行すると、ＡＴＡコマンド自動発行器１４の演算結果アドレス保存器２４から転送先の次アドレスを取得して、取得した該次アドレスに対してＡＴＡコマンドを発行する。
【００３２】
次に、本実施例の作用を説明する。本実施例の画像処理装置１は、プログラムが介在することなく、順次アドレス設定してＡＴＡコマンドを発行することで、高速データ転送を行う。
【００３３】
すなわち、画像処理装置１は、スキャナ部で読み取った画像データ、ネットワークを介して受信した画像データ、任意の画像処理を施した画像データ等のデータがメモリ４に格納され、該メモリ４上の画像データを不揮発性メモリコントローラ２によって不揮発性メモリ５に転送して保存する。
【００３４】
画像処理装置１は、このメモリ４上のデータを、不揮発性メモリコントローラ２によって可変長圧縮した後にＡＴＡコマンドを用いて不揮発性メモリ５に書き込み、また、不揮発性メモリ５上のデータの読み出しを行う。
【００３５】
ＡＴＡコマンドによって、メモリ４上のデータを不揮発性メモリ５に転送して書き込む場合、上述のように、通常、１回のデータ転送量に上限値があり、大容量のメモリ４に格納されているデータを不揮発性メモリ５に書き込むときには、何回もソフト処理が介在することとなり、パフォーマンスが低下する。ところが、ＡＴＡコマンドによってデータ転送を行う場合、発行するＡＴＡコマンドは、不揮発性メモリ５に対するアドレス以外は全て同じ設定で連続アドレスで書き込む場合には、前回転送したアドレスに対して、転送したデータサイズ分だけ加算したアドレスを発行することになる。
【００３６】
そこで、本実施例の画像処理装置１の不揮発性メモリコントローラ２は、ＡＴＡコマンドによってデータ転送が終了したときに、ハードウェアで構成されているＡＴＡコマンド自動発行器１４によって、次に発行するＡＴＡコマンドのアドレスを自動計算して、プログラムが介在することなく、ＡＴＡコマンドを発行する。
【００３７】
すなわち、画像処理装置１は、メモリ４のデータを可変長圧縮して不揮発性メモリ５にＡＴＡコマンドによって転送して書き込む場合、図３に示すように、ＣＰＵ３がプログラムによってＤＭＡＣ１１に対して、メモリ４から読み込むメモリアドレスとデータサイズの設定を行い（ステップＳ１０１）、ＡＴＡコマンドを用いたデータ転送における最大転送量の指定等の不揮発性メモリ５にＡＴＡコマンドでデータを書き込むために必要なコマンドを発行して（ステップＳ１０２)、不揮発性メモリコントローラ２に対して起動を掛ける(ステップＳ１０３)。
【００３８】
不揮発性メモリコントローラ２は、起動されると、ＤＭＡＣ１１によって、メモリ４の指定されたアドレスからデータの読み出しを開始して圧縮伸長器１２に渡して（ステップＳ１０４）、圧縮伸長器１２で可変長圧縮した圧縮データをＡＴＡコマンド発行器１３に渡し、ＡＴＡコマンド発行器１３によってＡＴＡコマンドを発行してＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に圧縮データを格納する（ステップＳ１０５）。
【００３９】
不揮発性メモリコントローラ２は、ＡＴＡコマンドで指定した最大サイズのデータの転送が完了すると（ステップＳ１０６）、ＡＴＡコマンド自動発行器１４で次の保存先アドレスを計算して、次のデータ保存先アドレスをＡＴＡコマンド発行器１３に渡し（ステップＳ１０７）、ＡＴＡコマンド発行器１３が、ＡＴＡコマンド自動発行器１４から渡された次のデータ保存先アドレスと最大転送サイズをＡＴＡコマンドでＡＴＡ  Ｉ／Ｆ５ａに発行して（ステップＳ１０８）、メモリ４のデータ読み出しが転送対象データの最後まで終了したかチェックする（ステップＳ１０９）。
【００４０】
不揮発性メモリコントローラ２は、ステップＳ１０９で、ＤＭＡＣ１１によるメモリ４のデータ読み出しが終了していないときには、ＡＴＡコマンド発行器１３が、ＡＴＡコマンドで指定した最大サイズのデータ転送を行って(ステップＳ１１０)、該データ転送が完了すると、ステップＳ１０７に移行して、ＡＴＡコマンド自動発行器１４で、次の保存先アドレスを計算する処理から上記同様に処理を実行する（ステップＳ１０７〜Ｓ１１０）。
【００４１】
不揮発性メモリコントローラ２は、ステップＳ１０９で、メモリ４のデータ読み出しが終了すると、ＡＴＡコマンドで指定した最大サイズのデータ転送が完了するまで「０」のデータで埋める０埋めを行って不揮発性メモリ５へデータ転送して、ＡＴＡ  Ｉ／Ｆ５ａによって不揮発性メモリ５に書き込み、データ転送が完了すると、データ転送制御処理を終了する(ステップＳ１１１)。
【００４２】
このように、本実施例の画像処理装置１は、ＤＭＡＣ１１によってメモリ（転送元メモリ）４から転送対象データを読み出して、圧縮伸長器１２で可変長圧縮した後、ＡＴＡコマンド発行器１３によってアドレスとデータ転送サイズを指定したＡＴＡコマンドを発行して、ＡＴＡ  Ｉ／Ｆ５ａを介して、不揮発性メモリ（転送先メモリ）５の指定アドレスに指定データ転送サイズである最大サイズずつ転送するとともに、発行したＡＴＡコマンドのアドレスに連続する次アドレスを、ＡＴＡコマンド自動発行器１４がＡＴＡコマンド発行器１３に付与している。
【００４３】
したがって、従来のようにＡＴＡコマンド発行毎にプログラムが介在することなく、ＡＴＡコマンドを順次発行して、可変長圧縮したデータを転送データサイズの決まっているＡＴＡ  Ｉ／Ｆ５ａを備えた不揮発性メモリ５に転送して保存することができ、ＣＰＵ３にかかる負荷を軽減しつつ転送速度を向上させることができる。
【実施例２】
【００４４】
図４〜図８は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第２実施例を示す図であり、図４は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第２実施例を適用した画像処理装置１００のブロック構成図である。
【００４５】
なお、本実施例は、上記第１実施例の画像処理装置１と同様の画像処理装置に適用したのもであり、本実施例の説明においては、第１実施例の画像処理装置１と同様の構成部分には、同一の符号を付して、その詳細な説明を省略または簡略化する。
【００４６】
図４において、画像処理装置１００は、第１実施例の画像処理装置１と同様のＣＰＵ３、メモリ４、ＡＴＡ  Ｉ／Ｆ５ａを搭載した不揮発性メモリ５及び画像処理装置１００として必要な各部、例えば、スキャナ部、ネットワークＩ／Ｆ、プリンタ部、操作表示部等を備えているとともに、不揮発性メモリコントローラ１０１を備えている。
【００４７】
不揮発性メモリコントローラ（データ転送制御装置）１０１は、第１実施例の不揮発性メモリコントローラ２と同様のＤＭＡＣ１１、圧縮伸長器１２、ＡＴＡコマンド発行器１３及びＡＴＡコマンド自動発行器１４を備えているとともに、メモリ残容量計算器１１１と平均圧縮率保存器１１２を備えている。
【００４８】
メモリ残容量計算器（データ残容量算出手段）１１１は、図５に示すように、転送サイズ受信器１２１、減算器１２２、総転送サイズ保存器１２３及びメモリ残容量演算結果保存器１２４を備えている。
【００４９】
転送サイズ受信器１２１は、ＤＭＡＣ１１からＣＰＵ３によってデータ転送制御プログラムが設定したデータ転送サイズを受け取って保存する。
【００５０】
総転送サイズ保存器１２３は、ＣＰＵ３の制御下のデータ転送制御プログラムによって、メモリ４から不揮発性メモリ５に転送する総転送データサイズが渡され、この総転送データサイズを保存する。
【００５１】
減算器１２２は、総転送サイズ保存器１２３に保存されている総転送サイズデータから転送サイズ受信器１２１がＤＭＡＣ１１から受信して保存している転送サイズを減算して、メモリ残容量として、メモリ残量量演算結果保存器１２４に渡す。
【００５２】
メモリ残容量演算結果保存器１２４は、減算器１２２の演算したメモリ残容量を保存する。
【００５３】
平均圧縮率保存器１１２は、図６に示すように、圧縮結果受信器１３１、平均値演算器１３２及び平均圧縮率保存器１３３を備えており、メモリ４から不揮発性メモリ５に転送するデータを圧縮伸長器１２で圧縮したときの圧縮率を順次取得して、その平均値を算出し、算出した平均圧縮率を保持する。
【００５４】
すなわち、圧縮結果受信器１３１は、圧縮伸長器１２からＤＭＡＣ１１から受け取ったデータを可変長圧縮してＡＴＡコマンド発行器１３に渡したときのデータの圧縮率を受け取り、平均値演算器１３２は、圧縮結果受信器１３１が圧縮伸長器１２から受け取った圧縮率の平均を順次算出して、平均圧縮率保存器１３３に渡す。平均圧縮率保存器１３３は、平均値演算器１３２が演算した平均値（平均圧縮率）を保存する。
【００５５】
ＣＰＵ３は、データ転送制御プログラムによって、メモリ残容量計算器１１１が計算してそのメモリ残容量演算結果保存器１２４に保存しているメモリ残容量を確認し、平均圧縮率保存器１１２の平均圧縮率保存器１３３に保存している平均圧縮率を読み込んで、該メモリ残容量と平均圧縮率から、次に発行すべきＡＴＡコマンドのデータ転送容量（データ転送サイズ）を判断して設定する。
【００５６】
そして、ＤＭＡＣ１１、圧縮伸長器１２、ＡＴＡコマンド発行器１３及びＡＴＡコマンド自動発行器１４は、第１実施例と同様である。
【００５７】
次に、本実施例の作用を説明する。本実施例の画像処理装置１００は、転送データの残容量と平均圧縮率を算出して、次のＡＴＡコマンドの転送容量を設定する。
【００５８】
すなわち、画像処理装置１００は、メモリ４のデータを不揮発性メモリ５にＡＴＡコマンドによって転送して書き込む場合、図７に示すように、ＣＰＵ３がプログラムによってＤＭＡＣ１１に対して、メモリ４から読み込むメモリアドレスとデータサイズの設定を行い（ステップＳ２０１）、ＡＴＡコマンドを用いたデータ転送における最大転送量の指定等の不揮発性メモリ５に対してＡＴＡコマンドでデータを書き込むために必要なコマンドを発行して（ステップＳ２０２)、不揮発性メモリコントローラ１０１に対して起動を掛ける(ステップＳ２０３)。
【００５９】
不揮発性メモリコントローラ１０１は、起動されると、ＤＭＡＣ１１によって、メモリ４の指定されたアドレスからデータの読み出しを開始して圧縮伸長器１２に渡して（ステップＳ２０４）、圧縮伸長器１２で可変長圧縮した圧縮データをＡＴＡコマンド発行器１３に渡し、ＡＴＡコマンド発行器１３によってＡＴＡコマンドを発行してＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に圧縮データを格納する（ステップＳ２０５）。
【００６０】
不揮発性メモリコントローラ１０１は、ＡＴＡコマンドで指定した最大サイズのデータの転送が完了すると、割り込みによってプログラムにデータ転送が完了した旨を通知し（ステップＳ２０６）、ＣＰＵが、プログラムに基づいて、メモリ残容量計算器１１１の算出したメモリ４内の転送対象のデータ残容量と平均圧縮率保存器１１２が算出した圧縮伸長器１２の平均圧縮率を読み出して、これらのデータ残容量と平均圧縮率から次の転送サイズを判断して(ステップＳ２０７)、算出した次の転送サイズが最大転送量を超えているか否かによって、次のデータ転送が最終データ転送であるかチェックする(ステップＳ２０８)。
【００６１】
ステップＳ２０８で、最終データ転送でないときには、ＣＰＵ３がプログラムに基づいて不揮発性メモリ５に対する次のデータ転送を開始するために、ＡＴＡコマンド自動発行器１４を起動させ(ステップＳ２０９)、ＡＴＡコマンド自動発行器１４が、次の保存先アドレスを計算して、ＡＴＡコマンド発行器１３に渡して、ＡＴＡコマンド発行器１３が、ＡＴＡコマンド自動発行器１４の計算した次のデータ保存先アドレスと最大転送サイズをＡＴＡコマンドでＡＴＡ  Ｉ／Ｆ５ａに発行して、ステップＳ２０４に移行する（ステップＳ２１０）。
【００６２】
不揮発性メモリコントローラ１０１は、上記同様に、ＤＭＡＣ１１がメモリ４からデータを読み出して圧縮伸長器１２で圧縮してＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に格納して、ＡＴＡコマンドで指定した最大サイズのデータ転送が終了すると、割り込みでプログラムに最大転送サイズのデータ転送が終了した旨を通知する（ステップＳ２０４〜Ｓ２０６）。そして、ＣＰＵ３が、プログラムに基づいて、データ残容量と平均圧縮率から次のデータ転送サイズを判断して(ステップＳ２０７)、算出した次のデータ転送サイズが最大転送量（最大転送サイズ）を超えているか否かによって、次のデータ転送が最終データ転送であるかチェックし(ステップＳ２０８)、最終データ転送でないときには、ＡＴＡコマンド自動発行器１４による次アドレスの算出から上記同様に処理する（ステップＳ２０９、Ｓ２１０、Ｓ２０４〜Ｓ２０８）。
【００６３】
ステップＳ２０８で、ステップＳ２０７において算出した次の転送サイズが最大転送量以下であって、最終データ転送であると、ＣＰＵ３が、プログラムに基づいて、該次の転送サイズからＡＴＡコマンド転送容量を計算（メモリ残容量であるデータ残容量と平均圧縮率からＡＴＡコマンド転送容量を計算)し（ステップＳ２１１）、計算したデータ転送量と転送先アドレスをＡＴＡコマンド発行器１３に設定して、起動させる。ＡＴＡコマンド発行器１３は、起動されると、設定されたデータ転送量と転送先アドレスによってＡＴＡコマンドを発行して、圧縮伸長器１２で圧縮されたデータをＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に格納する（ステップＳ２１２）。
【００６４】
例えば、図８に示すように、メモリ４内の１００ＭＢのデータを不揮発性メモリ５に転送する場合、１回目の転送で６０ＭＢを圧縮して３２ＭＢとして転送でき、２回目のデータ転送では、４０ＭＢを圧縮して、例えば、２０ＭＢであった場合、１２ＭＢ分の余分のデータを付加することなく、２０ＭＢをデータ転送サイズとしてＡＴＡコマンドで指定して転送する。
【００６５】
ＡＴＡコマンド発行器１３の発行したＡＴＡコマンドの転送容量のデータ転送が完了すると、プログラムに割り込みによってデータ転送が完了した旨を通知し、ＣＰＵ３が、プログラムに基づいて、メモリ残容量をチェックして、メモリ４内の転送対象の全てのデータの転送が終了したかチェックする（ステップＳ２１３）。このデータ転送が完了したか否かは、例えば、圧縮率が平均圧縮率を超える圧縮率の場合、メモリ残容量を検査することで、判断することができる。
【００６６】
ステップＳ２１３で、転送が完了していないときには、ＣＰＵ３が、プログラムに基づいて、ステップＳ２１１に戻って、ＡＴＡコマンド転送容量を計算する処理から上記同様に処理し（ステップＳ２１１〜Ｓ２１３）、ステップＳ２１３で、転送終了であると、不揮発性メモリコントローラ１０１が、プログラムにその旨を通知して、データ転送制御処理を終了する。
【００６７】
このように、本実施例の画像処理装置１００は、不揮発性メモリコントローラ１０１が、メモリ４の転送対象データの総データ量と転送済みデータ量から未転送のデータ残容量を算出するメモリ残容量計算器（データ残容量算出手段）１１１と、ＤＭＡＣ１１の読み出したデータに対する圧縮伸長器１２による平均圧縮率を算出する平均圧縮率保存器（平均圧縮率算出手段）１１２と、を備え、ＡＴＡコマンド発行器１３によるＡＴＡコマンドによるデータ転送サイズである最大サイズの転送毎に、ＣＰＵ３がプログラムに基づいて、メモリ残容量計算器１１１の計算したデータ残容量と平均圧縮率保存器１１２の計算した平均圧縮率からＡＴＡコマンド発行器１３による次のデータ転送が、ＡＴＡコマンドとしての最終データ転送であるか否かを判断して、最終データ転送であると、該データ残容量と該平均圧縮率から、次に発行すべきＡＴＡコマンドのデータ転送サイズを算出して、ＡＴＡコマンド自動発行器１４に該データ転送サイズを該ＡＴＡコマンド発行器１３に設定させている。
【００６８】
したがって、最終データ転送において、「０」を最大サイズになるまで付加することなく、データ転送サイズを適切に設定してＡＴＡコマンドによるデータ転送を行うことができ、データ転送効率を向上させることができる。
【実施例３】
【００６９】
図９〜図１１は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第３実施例を示す図であり、図９は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第３実施例を適用した画像処理装置２００のブロック構成図である。
【００７０】
なお、本実施例は、上記第１実施例の画像処理装置１及び第２実施例の画像処理装置１００と同様の画像処理装置に適用したのもであり、本実施例の説明においては、第１実施例の画像処理装置１及び第２実施例の画像処理装置１００と同様の構成部分には、同一の符号を付して、その詳細な説明を省略または簡略化する。
【００７１】
図９において、画像処理装置２００は、第１実施例の画像処理装置１と同様のＣＰＵ３、メモリ４、ＡＴＡ  Ｉ／Ｆ５ａを搭載した不揮発性メモリ５及び画像処理装置２００として必要な各部、例えば、スキャナ部、ネットワークＩ／Ｆ、プリンタ部、操作表示部等を備えているとともに、不揮発性メモリコントローラ２０１を備えている。
【００７２】
不揮発性メモリコントローラ（データ転送制御装置）２０１は、第１実施例の不揮発性メモリコントローラ２と同様のＤＭＡＣ１１、圧縮伸長器１２、ＡＴＡコマンド発行器１３、ＡＴＡコマンド自動発行器１４及び第２実施例の不揮発性メモリコントローラ１０１と同様のメモリ残容量計算器１１１、平均圧縮率保存器１１２を備えているとともに、最終データ予測検知器２１１を備えている。
【００７３】
最終データ予測検知器（最終データ予測検知手段）２１１は、図１０に示すように、メモリ残容量保存器２２１、演算器２２２、圧縮後転送サイズ保存器２２３、ＡＴＡ転送サイズ比較器２２４及び平均圧縮率保存器２２５を備えており、メモリ残容量計算器１１１の計算結果であるデータ残容量と平均圧縮率保存器１１２の計算結果である平均圧縮率から次のデータ転送が最終データ転送であるか否か判定する。
【００７４】
すなわち、メモリ残容量保存器２２１は、メモリ残容量計算器１１１が算出してそのメモリ残容量演算結果保存器１２４に保存されているメモリ残容量を取得して保存し、平均圧縮率保存器２２５は、平均圧縮率保存器１１２が演算してその平均圧縮率保存器１３３に保存している平均圧縮率を取得して保存する。
【００７５】
演算器２２２は、メモリ残容量保存器２２１のメモリ残容量と平均圧縮率保存器２２５の平均圧縮率に基づいて圧縮後転送サイズを演算して圧縮後転送サイズ保存器２２３に保存する。ＡＴＡ転送サイズ比較器２２４は、ＡＴＡ転送サイズ圧縮後転送サイズ保存器２２３に保存されている圧縮後転送サイズとＡＴＡコマンドによる最大転送サイズを比較して最終データであるか否かを判定し、その判定結果をレジスタ等に保持する。
【００７６】
ＣＰＵ３は、データ転送制御プログラムによって、最終データ予測検知器２１１が計算してその圧縮後転送サイズ保存器２２３に保存している圧縮後転送サイズを確認し、最終転送サイズであるか否か判断して、以降の処理を行う。
【００７７】
そして、ＤＭＡＣ１１、圧縮伸長器１２、ＡＴＡコマンド発行器１３及びＡＴＡコマンド自動発行器１４は、第１実施例と同様である。
【００７８】
次に、本実施例の作用を説明する。本実施例の画像処理装置２００は、転送データの残容量と平均圧縮率を算出し、さらに、これらの値から圧縮後転送サイズを算出して転送最終データを判定して転送制御を行う。
【００７９】
すなわち、画像処理装置２００は、メモリ４のデータを不揮発性メモリ５にＡＴＡコマンドによって転送して書き込む場合、図１１に示すように、データ転送制御処理を実行する。なお、図１１において、図７と同様の処理ステップには同一のステップナンバーを付与して、その説明を簡略化する。
【００８０】
画像処理装置２００は、ＣＰＵ３がプログラムによってＤＭＡＣ１１に対して、メモリ４から読み込むメモリアドレスとデータサイズの設定を行い（ステップＳ２０１）、ＡＴＡコマンドを用いたデータ転送における最大転送量の指定等の不揮発性メモリ５に対してＡＴＡコマンドでデータを書き込むために必要なコマンドを発行して（ステップＳ２０２)、不揮発性メモリコントローラ２０１に対して起動を掛ける(ステップＳ２０３)。
【００８１】
不揮発性メモリコントローラ２０１は、起動されると、ＤＭＡＣ１１によって、メモリ４の指定されたアドレスからデータの読み出しを開始して圧縮伸長器１２に渡して（ステップＳ２０４）、圧縮伸長器１２で可変長圧縮した圧縮データをＡＴＡコマンド発行器１３に渡し、ＡＴＡコマンド発行器１３によってＡＴＡコマンドを発行してＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に圧縮データを格納する（ステップＳ２０５）。
【００８２】
不揮発性メモリコントローラ２０１は、ＡＴＡコマンドで指定した最大サイズのデータの転送が完了すると、割り込みによってプログラムにデータ転送が完了した旨を通知し（ステップＳ２０６）、ＣＰＵが、プログラムに基づいて、最終データ予測検知器２１１の最終データ転送か否かの比較結果を確認して(ステップＳ３０１)、次のデータ転送が最終データ転送であるかチェックする(ステップＳ３０２)。
【００８３】
ステップＳ３０２で、最終データ転送でないときには、ＣＰＵ３がプログラムに基づいて不揮発性メモリ５に対する次のデータ転送を開始するために、ＡＴＡコマンド自動発行器１４を起動させ(ステップＳ２０９)、ＡＴＡコマンド自動発行器１４が、次の保存先アドレスを計算して、ＡＴＡコマンド発行器１３が、ＡＴＡコマンド自動発行器１４の計算した次のデータ保存先アドレスと最大転送サイズをＡＴＡコマンドでＡＴＡ  Ｉ／Ｆ５ａに発行して、ステップＳ２０４に移行する（ステップＳ２１０）。
【００８４】
不揮発性メモリコントローラ２０１は、上記同様に、ＤＭＡＣ１１によってメモリ４からデータを読み出して圧縮伸長器１２で圧縮してＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に格納し、ＡＴＡコマンドで指定した最大サイズのデータ転送が終了すると、割り込みでプログラムに最大転送サイズのデータ転送が終了した旨を通知する（ステップＳ２０４〜Ｓ２０６）。そして、ＣＰＵ３が、プログラムに基づいて、最終データ予測検知器２１１の最終データ転送か否かの比較結果を確認して(ステップＳ３０１)、次のデータ転送が最終データ転送であるかチェックし(ステップＳ３０２)、最終データ転送でないときには、ＡＴＡコマンド自動発行器１４による次アドレスの算出から上記同様に処理する（ステップＳ２０９、Ｓ２１０、Ｓ２０４〜Ｓ２０６、Ｓ３０１、Ｓ３０２）。
【００８５】
ステップＳ３０２で、ステップＳ３０１で確認した結果が次の転送サイズが最大転送量以下であって、最終データ転送であると、ＣＰＵ３が、プログラムに基づいて、最終データ予測検知器２１１の圧縮後転送サイズ保存器２２２３に保管されている圧縮後転送サイズからＡＴＡコマンド転送容量として取得し（ステップＳ３０３）、取得したデータ転送量と転送先アドレスをＡＴＡコマンド発行器１３に設定して、起動させる。ＡＴＡコマンド発行器１３は、起動されると、設定されたデータ転送量と転送先アドレスによってＡＴＡコマンドを発行して、圧縮伸長器１２の圧縮したデータをＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に格納する（ステップＳ２１２）。
【００８６】
ＡＴＡコマンド発行器１３の発行したＡＴＡコマンドの転送容量のデータ転送が完了すると、プログラムに割り込みによってデータ転送が完了した旨を通知し、ＣＰＵ３が、プログラムに基づいて、メモリ残容量をチェックして、メモリ４内の転送対象となっている全てのデータの転送が終了したかチェックする（ステップＳ２１３）。
【００８７】
ステップＳ２１３で、データ転送が完了していないときには、ＣＰＵ３が、プログラムに基づいて、ステップＳ２１１に戻って、ＡＴＡコマンド転送容量を取得する処理から上記同様に処理し（ステップＳ３０３、Ｓ２１２、Ｓ２１３）、ステップＳ２１３で、転送終了であると、不揮発性メモリコントローラ２０１が、プログラムにその旨を通知して、データ転送制御処理を終了する。
【００８８】
このように、本実施例の画像処理装置２００は、不揮発性メモリコントローラ２０１が、メモリ４の転送対象データの総データ量と転送済みデータ量から未転送のデータ残容量を算出するメモリ残容量計算器（データ残容量算出手段）１１１と、ＤＭＡＣ１１の読み出したデータに対する圧縮伸長器１２による平均圧縮率を算出する平均圧縮率保存器（平均圧縮率算出手段）１１２と、該データ残容量と該平均圧縮率からＡＴＡコマンド発行器１３による次のデータ転送が、ＡＴＡコマンドとしての最終データ転送であるか否かを検知する最終データ予測検知器（最終データ予測検知手段）２１１と、を備え、ＡＴＡコマンド発行器１３による次のデータ転送が最終データ転送であることを最終データ予測検知器２１１が検知すると、ＣＰＵ３が、プログラムに基づいて該データ残容量と該平均圧縮率から、次に発行すべきＡＴＡコマンドのデータ転送サイズを算出して、ＡＴＡコマンド自動発行器１４に該データ転送サイズをＡＴＡコマンド発行器１３に設定させている。
【００８９】
したがって、最終データ転送をハードウェアである最終データ予測検知器２１１によって検出して、プログラムが介在する頻度を削減して処理速度を向上させることができるとともに、最終データ転送において、「０」を最大サイズになるまで付加することなく、データ転送サイズを適切に設定してＡＴＡコマンドによるデータ転送を行うことができ、データ転送効率をより一層向上させることができる。
【実施例４】
【００９０】
図１２及び図１３は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第４実施例を示す図であり、図１２は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第４実施例を適用した画像処理装置３００のブロック構成図である。
【００９１】
なお、本実施例は、上記第１実施例の画像処理装置１及び第２実施例の画像処理装置１００と同様の画像処理装置に適用したものであり、本実施例の説明においては、第１実施例の画像処理装置１及び第２実施例の画像処理装置１００と同様の構成部分には、同一の符号を付して、その詳細な説明を省略または簡略化する。
【００９２】
図１２において、画像処理装置３００は、第１実施例の画像処理装置１と同様のＣＰＵ３、メモリ４、ＡＴＡ  Ｉ／Ｆ５ａを搭載した不揮発性メモリ５及び画像処理装置３００として必要な各部、例えば、スキャナ部、ネットワークＩ／Ｆ、プリンタ部、操作表示部等を備えているとともに、不揮発性メモリコントローラ３０１を備えている。
【００９３】
不揮発性メモリコントローラ（データ転送制御装置）３０１は、第１実施例の不揮発性メモリコントローラ２と同様のＤＭＡＣ１１、圧縮伸長器１２、ＡＴＡコマンド発行器１３、ＡＴＡコマンド自動発行器１４及び第２実施例の不揮発性メモリコントローラ１０１と同様のメモリ残容量計算器１１１、平均圧縮率保存器１１２を備えているとともに、最終データ予測検知器３１１を備えている。
【００９４】
最終データ予測検知器（最終データ予測検知手段）３１１は、図１０に示した第３実施例の最終データ予測検知器２１１と同様の構成であり、メモリ残容量保存器２２１、演算器２２２、圧縮後転送サイズ保存器２２３、ＡＴＡ転送サイズ比較器２２４及び平均圧縮率保存器２２５を備えているとともに、ＡＴＡコマンド自動発行器１４に接続されている。最終データ予測検知器３１１は、メモリ残容量計算器１１１の計算結果と平均圧縮率保存器１１２の計算結果から次の転送データが最終データであるか否か判定するとともに、データ残容量と平均圧縮率に基づいて次に発行すべきＡＴＡコマンドのデータ転送サイズを算出して、判定結果及び次のデータ転送サイズをＡＴＡコマンド自動発行器１４に通知する。
【００９５】
ＣＰＵ３は、データ転送制御プログラムによって、データ転送最初の設定と起動をかけるのみで、後は、メモリ残容量計算器１１１、平均圧縮率保存器１１２及び最終データ予測検知器３１１が、転送サイズを順次確認しながらＡＴＡコマンド自動発行器１４がＡＴＡコマンド発行器１３に起動をかけて最終のデータ転送まで自動で処理する。
【００９６】
そして、ＤＭＡＣ１１、圧縮伸長器１２、ＡＴＡコマンド発行器１３及びＡＴＡコマンド自動発行器１４は、第１実施例と同様である。
【００９７】
次に、本実施例の作用を説明する。本実施例の画像処理装置３００は、転送データの残容量と平均圧縮率を算出し、さらに、これらの値から圧縮データサイズを算出して転送最終データを判定して転送制御を行う。
【００９８】
すなわち、画像処理装置３００は、メモリ４のデータを不揮発性メモリ５にＡＴＡコマンドによって転送して書き込む場合、図１３に示すように、データ転送制御処理を実行する。なお、図１３において、図１１と同様の処理ステップには同一のステップナンバーを付与して、その説明を簡略化する。
【００９９】
画像処理装置３００は、ＣＰＵ３がプログラムによってＤＭＡＣ１１に対して、メモリ４から読み込むメモリアドレスとデータサイズの設定を行い（ステップＳ２０１）、ＡＴＡコマンドを用いたデータ転送における最大転送量の指定等の不揮発性メモリ５に対してＡＴＡコマンドでデータを書き込むために必要なコマンドを発行して（ステップＳ２０２)、不揮発性メモリコントローラ３０１に対して起動を掛ける(ステップＳ２０３)。
【０１００】
不揮発性メモリコントローラ３０１は、起動されると、ＤＭＡＣ１１によって、メモリ４の指定されたアドレスからデータの読み出しを開始して圧縮伸長器１２に渡して（ステップＳ２０４）、圧縮伸長器１２で可変長圧縮した圧縮データをＡＴＡコマンド発行器１３に渡し、ＡＴＡコマンド発行器１３によってＡＴＡコマンドを発行してＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に圧縮データを格納する（ステップＳ２０５）。
【０１０１】
不揮発性メモリコントローラ３０１は、ＡＴＡコマンドで指定した最大サイズのデータの転送が完了すると（ステップＳ４０１）、ＡＴＡコマンド自動発行器１４が、最終データ予測検知器３１１の最終データか否かの比較結果を確認して(ステップＳ４０２)、次のデータ転送が最終データ転送であるかチェックする(ステップＳ４０３)。
【０１０２】
ステップＳ４０３で、最終データ転送でないときには、ＡＴＡコマンド自動発行器１４が、最大転送サイズをＡＴＡコマンド発行器１３に通知して、ＡＴＡコマンド発行器１３が最大転送サイズでのＡＴＡコマンドをＡＴＡ  Ｉ／Ｆ５ａに発行して、ステップＳ２０４に移行する（ステップＳ４０４）。
【０１０３】
不揮発性メモリコントローラ３０１は、上記同様に、ＤＭＡＣ１１によってメモリ４からデータを読み出して圧縮伸長器１２で圧縮してＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に格納して、ＡＴＡコマンドで指定した最大サイズのデータ転送が終了すると、ＡＴＡコマンド自動発行器１４が最終データ予測検知器３１１を確認して、最終データ転送か判断する（ステップＳ２０４、Ｓ２０５、Ｓ４０１〜Ｓ４０３）。ステップＳ４０３で、最終データ転送でないときには、最大転送サイズのデータの転送を上記同様に行う（ステップＳ４０４、Ｓ２０４、Ｓ２０５、Ｓ４０１〜Ｓ４０３）。
【０１０４】
そして、ステップＳ４０３で、転送サイズが最大転送量以下であって、最終データ転送であると、最終データ予測検知器３１１が、そのメモリ残容量保存器２２１のメモリ残容量と平均圧縮率保存器２２５の平均圧縮率から演算器２２２が算出して圧縮後転送サイズ保存器２２３に保存している圧縮後のデータ転送サイズを、ＡＴＡコマンド自動発行器１４が、ＡＴＡコマンド転送量として取得して(ステップＳ４０５）、取得したデータ転送量と転送先アドレスをＡＴＡコマンド発行器１３に設定して、起動させる。ＡＴＡコマンド発行器１３は、起動されると、設定されたデータ転送量と転送先アドレスによってＡＴＡコマンドを発行して、圧縮伸長器１２の圧縮したデータをＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に格納する（ステップＳ４０６）。
【０１０５】
ＡＴＡコマンド発行器１３の発行したＡＴＡコマンドの転送容量（データ転送サイズ）のデータ転送が完了すると、プログラムに割り込みによってデータ転送が完了した旨を通知し、ＣＰＵ３が、プログラムに基づいて、メモリ残容量をチェックして、メモリ４内の転送対象の全てのデータの転送が終了したかチェックする（ステップＳ２１３）。
【０１０６】
ステップＳ２１３で、圧縮後のデータの方が元データよりも大きくなっていて転送が完了していないときには、ＣＰＵ３が、プログラムに基づいて、ステップＳ４０５に戻って、ＡＴＡコマンド転送量を取得する処理から上記同様に処理し（ステップＳ４０５、Ｓ４０６、Ｓ２１３）、ステップＳ２１３で、転送終了であると、不揮発性メモリコントローラ３０１が、プログラムにその旨を通知して、データ転送制御処理を終了する。
【０１０７】
このように、本実施例の画像処理装置３００は、メモリ４の転送対象データの総データ量と転送済みデータ量から未転送のデータ残容量を算出するメモリ残容量計算器１１１と、ＤＭＡＣ１１の読み出したデータに対する圧縮伸長器１２による平均圧縮率を算出する平均圧縮率保存器１１２と、前記データ残容量と前記平均圧縮率からＡＴＡコマンド発行器１３による次のデータ転送が、ＡＴＡコマンドとしての最終データ転送であるか否かを検知して、最終データ転送であると、該データ残容量と該平均圧縮率から、次に発行すべきＡＴＡコマンドのデータ転送サイズを算出して、ＡＴＡコマンド自動発行器１４に出力する最終データ予測検知器３１１と、を備えている。
【０１０８】
したがって、ハードウェアである最終データ予測検知器２１１によって最終データ転送を検出するとともに、最終データ転送におけるデータ転送サイズを算出してＡＴＡコマンド自動発行器１４に与え、プログラムが介在する頻度をより一層削減して処理速度をより一層向上させることができるとともに、最終データ転送において、「０」を最大サイズになるまで付加することなく、データ転送サイズを適切に設定してＡＴＡコマンドによるデータ転送を行うことができ、データ転送効率をより一層向上させることができる。
【実施例５】
【０１０９】
図１４及び図１５は、本発明の本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第５実施例を示す図であり、図１４は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第５実施例を適用した画像処理装置４００のブロック構成図である。
【０１１０】
なお、本実施例は、上記第１実施例の画像処理装置１の画像処理装置１、第２実施例の画像処理装置１００及び第４実施例の画像処理装置３００と同様の画像処理装置に適用したのもであり、本実施例の説明においては、第１実施例の画像処理装置１、第２実施例の画像処理装置１００及び第４実施例の画像処理装置３００と同様の構成部分には、同一の符号を付して、その詳細な説明を省略または簡略化する。
【０１１１】
図１４において、画像処理装置４００は、第１実施例の画像処理装置１と同様のＣＰＵ３、メモリ４、ＡＴＡ  Ｉ／Ｆ５ａを搭載した不揮発性メモリ５及び画像処理装置４００として必要な各部、例えば、スキャナ部、ネットワークＩ／Ｆ、プリンタ部、操作表示部等を備えているとともに、不揮発性メモリコントローラ４０１を備えている。
【０１１２】
不揮発性メモリコントローラ（データ転送制御装置）４０１は、第１実施例の不揮発性メモリコントローラ２と同様のＤＭＡＣ１１、圧縮伸長器１２、ＡＴＡコマンド発行器１３、ＡＴＡコマンド自動発行器１４及び第２実施例の不揮発性メモリコントローラ１０１と同様のメモリ残容量計算器１１１、平均圧縮率保存器１１２及び第４実施例の不揮発性メモリコントローラ３０１と同様の最終データ予測検知器３１１を備えているとともに、圧縮率監視部４１１を備えている。
【０１１３】
最終データ予測検知器３１１は、第４実施例の最終データ予測検知器３１１と同様に、メモリ残容量計算器１１１の計算結果と平均圧縮率保存器１１２の計算結果から次の転送データが最終データであるか否か判定するとともに、データ残容量と平均圧縮率に基づいて次に発行すべきＡＴＡコマンドのデータ転送サイズを算出して、判定結果及び次のデータ転送サイズをＡＴＡコマンド自動発行器１４に通知する。
【０１１４】
圧縮率監視部（圧縮率監視手段）４１１は、ＤＭＡＣ１１と圧縮伸長器１２に接続されており、ＤＭＡＣ１１がメモリ４から読み出したデータ量と圧縮伸長器１２が圧縮した圧縮データのデータ量を比較して、圧縮結果が生データ（元データ）のデータサイズを超えているか否か判断する。
【０１１５】
ＣＰＵ（元データ転送制御手段）３は、圧縮率監視部４１１の監視結果に基づいて、圧縮データが元データよりも大きくなるときには、元データを不揮発性メモリ５に転送させて書き込むように制御する。
【０１１６】
そして、ＤＭＡＣ１１、圧縮伸長器１２、ＡＴＡコマンド発行器１３及びＡＴＡコマンド自動発行器１４は、第１実施例と同様である。
【０１１７】
次に、本実施例の作用を説明する。本実施例の画像処理装置４００は、圧縮データのデータサイズが元データのデータサイズよりも大きくなるときには、元データをＡＴＡコマンドで不揮発性メモリ５に転送して格納するデータ転送制御を行う。
【０１１８】
すなわち、画像処理装置４００は、メモリ４のデータを不揮発性メモリ５にＡＴＡコマンドによって転送して書き込む場合、図１５に示すように、データ転送制御処理を実行する。なお、図１５において、図１３と同様の処理ステップには同一のステップナンバーを付与して、その説明を簡略化する。
【０１１９】
画像処理装置４００は、ＣＰＵ３がプログラムによってＤＭＡＣ１１に対して、メモリ４から読み込むメモリアドレスとデータサイズの設定を行い（ステップＳ２０１）、ＡＴＡコマンドを用いたデータ転送における最大転送量の指定等の不揮発性メモリ５に対してＡＴＡコマンドでデータを書き込むために必要なコマンドを発行して（ステップＳ２０２)、不揮発性メモリコントローラ４０１に対して起動を掛ける(ステップＳ２０３)。
【０１２０】
不揮発性メモリコントローラ４０１は、起動されると、ＤＭＡＣ１１によって、メモリ４の指定されたアドレスからデータの読み出しを開始して圧縮伸長器１２に渡して（ステップＳ２０４）、圧縮伸長器１２で可変長圧縮した圧縮データをＡＴＡコマンド発行器１３に渡し、ＡＴＡコマンド発行器１３によってＡＴＡコマンドを発行してＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に圧縮データを格納する（ステップＳ２０５）。
【０１２１】
不揮発性メモリコントローラ４０１は、ＡＴＡコマンドで指定した最大サイズのデータの転送が完了すると（ステップＳ４０１）、ＡＴＡコマンド自動発行器１４が、最終データ予測検知器３１１の最終データか否かの比較結果を確認して(ステップＳ４０２)、次のデータ転送が最終データ転送であるかチェックする(ステップＳ４０３)。
【０１２２】
ステップＳ４０３で、最終データ転送でないときには、ＡＴＡコマンド自動発行器１４が、最大転送サイズをＡＴＡコマンド発行器１３に通知して、ＡＴＡコマンド発行器１３が最大転送サイズでのＡＴＡコマンドをＡＴＡ  Ｉ／Ｆ５ａに発行して、ステップＳ２０４に移行する（ステップＳ４０４）。
【０１２３】
不揮発性メモリコントローラ４０１は、上記同様に、ＤＭＡＣ１１がメモリ４からデータを読み出して圧縮伸長器１２で圧縮してＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に格納して、ＡＴＡコマンドで指定した最大サイズのデータ転送が終了すると、ＡＴＡコマンド自動発行器１４が最終データ予測検知器３１１を確認して、最終データ転送か判断する（ステップＳ２０４、Ｓ２０５、Ｓ４０１〜Ｓ４０３）。ステップＳ４０３で、最終データ転送でないときには、最大転送サイズのデータの転送を上記同様に行う（ステップＳ４０４、Ｓ２０４、Ｓ２０５、Ｓ４０１〜Ｓ４０３）。
【０１２４】
そして、ステップＳ４０３で、転送サイズが最大転送量以下であって、最終データ転送であると、最終データ予測検知器３１１が、そのメモリ残容量保存器２２１のメモリ残容量と平均圧縮率保存器２２５の平均圧縮率から演算器２２２が算出して圧縮後転送サイズ保存器２２３に保存している圧縮後のデータ転送サイズを、ＡＴＡコマンド自動発行器１４が、ＡＴＡコマンド転送量として取得して(ステップＳ４０５）、取得したデータ転送量と転送先アドレスをＡＴＡコマンド発行器１３に設定して、起動させる。ＡＴＡコマンド発行器１３は、起動されると、設定されたデータ転送量と転送先アドレスによってＡＴＡコマンドを発行して、圧縮伸長器１２の圧縮したデータをＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に格納する（ステップＳ４０６）。
【０１２５】
ＡＴＡコマンド発行器１３の発行したＡＴＡコマンドの転送容量（データ転送サイズ）のデータ転送が完了すると、プログラムに割り込みによってデータ転送が完了した旨を通知し、ＣＰＵ３が、プログラムに基づいて、メモリ残容量をチェックして、メモリ４内において転送対象となっている全てのデータの転送が終了したかチェックする（ステップＳ２１３）。
【０１２６】
ステップＳ２１３で、圧縮後のデータの方が元データよりも大きくなっていて転送が完了していないときには、ＣＰＵ３が、プログラムに基づいて、ステップＳ４０５に戻って、ＡＴＡコマンド転送量を取得する処理から上記同様に処理し（ステップＳ４０５、Ｓ４０６、Ｓ２１３）、ステップＳ２１３で、転送終了であると、不揮発性メモリコントローラ４０１が、プログラムにその旨を通知して、ＣＰＵ３が、プログラムに基づいて、圧縮率監視部４１１を確認する。圧縮率監視部４１１は、ＤＭＡＣ１１が読み込んだ生のデータ（元データ）と圧縮伸長器１２が圧縮した圧縮データのデータサイズを比較して、元データのデータサイズよりも圧縮データのデータサイズが小さいか、すなわち、圧縮結果が「１」以下であるか監視して監視結果を保持しており、ＣＰＵ３は、この圧縮率監視部４１１１の監視結果を確認して、圧縮結果が「１」以下であるかチェックする（ステップＳ５０１）。
【０１２７】
ステップＳ５０１で、圧縮結果が「１」以下のときには、ＣＰＵ３は、圧縮データが元データ以下のデータサイズに圧縮されていると判断して、そのままデータ転送を終了する。
【０１２８】
ステップＳ５０１で、圧縮結果が「１」よりも大きいときには、ＣＰＵ３は、圧縮データが元データのデータサイズよりも大きくなっていると判断して、ＤＭＡＣ１１に、メモリ４の同じアドレスから再度データを読み取らせて、ＤＭＡＣ１１の読み取ったデータを圧縮伸長器１２で圧縮させることなく、そのままスルーさせて、生のデータ（元データ）をＡＴＡコマンド発行器１３からＡＴＡ  Ｉ/Ｆ５ａを介して不揮発性メモリ５に転送して格納させる(ステップＳ５０２)。
【０１２９】
このように、本実施例の画像処理装置４００は、ＤＭＡＣ１１がメモリ４から読み出したデータサイズと圧縮伸長器１２の圧縮した圧縮データのデータサイズから該圧縮データが元データのデータサイズ以下に圧縮されたか否かを監視する圧縮率監視部（圧縮率監視手段）４１１を不揮発性メモリコントローラ４０１が備え、圧縮率監視部４１１が圧縮データのデータサイズが元データのデータサイズよりも大きいことを検知すると、ＣＰＵ３が、ＤＭＡＣ１１に同じ元データをメモリ４から読み出させて、該データを、圧縮伸長器１２を非圧縮状態で通過（スルー）させた後、ＡＴＡコマンド発行器１３に該元データをそのまま不揮発性メモリ５に転送させている。
【０１３０】
したがって、圧縮データが元データよりも大きなデータになったときには、元データを不揮発性メモリ５に転送して保存させることができ、無駄な保存領域が使用されることを防止して、不揮発性メモリ５の有効利用を図ることができる。
【実施例６】
【０１３１】
図１６及び図１７は、本発明の本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第６実施例を示す図であり、図１６は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第６実施例を適用した画像処理装置５００のブロック構成図である。
【０１３２】
なお、本実施例は、上記第５実施例の画像処理装置４００と同様の画像処理装置に適用したものであり、本実施例の説明においては、第５実施例の画像処理装置４００と同様の構成部分には、同一の符号を付して、その詳細な説明を省略または簡略化する。
【０１３３】
図１６において、画像処理装置５００は、第１実施例の画像処理装置１と同様のＣＰＵ３、メモリ４、ＡＴＡ  Ｉ／Ｆ５ａを搭載した不揮発性メモリ５及び画像処理装置４００として必要な各部、例えば、スキャナ部、ネットワークＩ／Ｆ、プリンタ部、操作表示部等を備えているとともに、不揮発性メモリコントローラ５０１を備えている。
【０１３４】
不揮発性メモリコントローラ（データ転送制御装置）５０１は、第１実施例の不揮発性メモリコントローラ２と同様のＤＭＡＣ１１、圧縮伸長器１２、ＡＴＡコマンド発行器１３、ＡＴＡコマンド自動発行器１４、第２実施例の不揮発性メモリコントローラ１０１と同様のメモリ残容量計算器１１１、平均圧縮率保存器１１２、第４実施例の不揮発性メモリ３０１と同様の最終データ予測検知器３１１及び第５実施例と同様の圧縮率監視部４１１を備えている。
【０１３５】
圧縮率監視部４１１は、ＤＭＡＣ１１と圧縮伸長器１２に接続されているとともに、ＡＴＡコマンド発行器１３に接続されており、ＤＭＡＣ１１がメモリ４から読み出したデータ量と圧縮伸長器１２が圧縮した圧縮データのデータ量を比較して、圧縮結果が生データ（元データ）のデータサイズを超えているか否か判断して、圧縮データが元データよりも大きくなるときには、ＡＴＡコマンド発行器１３に、ＤＭＡＣ１１が、再度、メモリ４から読み出した元データを、圧縮伸長器１２で圧縮することなく、不揮発性メモリ５に転送させて書き込ませる。
【０１３６】
次に、本実施例の作用を説明する。本実施例の画像処理装置４００は、圧縮率監視部４１１が、圧縮データのデータサイズが元と他のデータサイズよりも大きくなったことを検出すると、元データを不揮発性メモリ５に転送して格納させる転送制御を行う。
【０１３７】
すなわち、画像処理装置５００は、メモリ４のデータを不揮発性メモリ５にＡＴＡコマンドによって転送して書き込む場合、図１７に示すように、データ転送制御処理を実行する。なお、図１７において、図１５と同様の処理ステップには同一のステップナンバーを付与して、その説明を簡略化する。
【０１３８】
画像処理装置５００は、ＣＰＵ３がプログラムによってＤＭＡＣ１１に対して、メモリ４から読み込むメモリアドレスとデータサイズの設定を行い（ステップＳ２０１）、ＡＴＡコマンドを用いたデータ転送における最大転送量の指定等の不揮発性メモリ５に対してＡＴＡコマンドでデータを書き込むために必要なコマンドを発行して（ステップＳ２０２)、不揮発性メモリコントローラ５０１に対して起動を掛ける(ステップＳ２０３)。
【０１３９】
不揮発性メモリコントローラ５０１は、起動されると、ＤＭＡＣ１１によって、メモリ４の指定されたアドレスからデータの読み出しを開始して圧縮伸長器１２に渡して（ステップＳ２０４）、圧縮伸長器１２で可変長圧縮した圧縮データをＡＴＡコマンド発行器１３に渡し、ＡＴＡコマンド発行器１３によってＡＴＡコマンドを発行してＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に圧縮データを格納する（ステップＳ２０５）。
【０１４０】
不揮発性メモリコントローラ５０１は、ＡＴＡコマンドで指定した最大サイズのデータの転送が完了すると（ステップＳ４０１）、ＡＴＡコマンド自動発行器１４が、最終データ予測検知器３１１の最終データか否かの比較結果を確認して(ステップＳ４０２)、次のデータ転送が最終データ転送であるかチェックする(ステップＳ４０３)。
【０１４１】
ステップＳ４０３で、最終データ転送でないときには、ＡＴＡコマンド自動発行器１４が、最大転送サイズをＡＴＡコマンド発行器１３に通知して、ＡＴＡコマンド発行器１３が最大転送サイズでのＡＴＡコマンドをＡＴＡ  Ｉ／Ｆ５ａに発行して、ステップＳ２０４に移行する（ステップＳ４０４）。
【０１４２】
不揮発性メモリコントローラ５０１は、上記同様に、ＤＭＡＣ１１がメモリ４からデータを読み出して圧縮伸長器１２で圧縮してＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に格納して、ＡＴＡコマンドで指定した最大サイズのデータ転送が終了すると、ＡＴＡコマンド自動発行器１４が最終データ予測検知器３１１を確認して、最終データ転送か判断する（ステップＳ２０４、Ｓ２０５、Ｓ４０１〜Ｓ４０３）。ステップＳ４０３で、最終データ転送でないときには、最大転送サイズのデータの転送を上記同様に行う（ステップＳ４０４、Ｓ２０４、Ｓ２０５、Ｓ４０１〜Ｓ４０３）。
【０１４３】
そして、ステップＳ４０３で、転送サイズが最大転送量以下であって、最終データ転送であると、最終データ予測検知器３１１が、そのメモリ残容量保存器２２１のメモリ残容量と平均圧縮率保存器２２５の平均圧縮率から演算器２２２が算出して圧縮後転送サイズ保存器２２３に保存している圧縮後のデータ転送サイズを、ＡＴＡコマンド自動発行器１４が、ＡＴＡコマンド転送量として取得して(ステップＳ４０５）、取得したデータ転送量と転送先アドレスをＡＴＡコマンド発行器１３に設定して、起動させる。ＡＴＡコマンド発行器１３は、起動されると、設定されたデータ転送量と転送先アドレスによってＡＴＡコマンドを発行して、圧縮伸長器１２の圧縮したデータをＡＴＡ  Ｉ／Ｆ５ａを介して不揮発性メモリ５に格納する（ステップＳ４０６）。
【０１４４】
ＡＴＡコマンド発行器１３の発行したＡＴＡコマンドの転送容量（データ転送サイズ）のデータ転送が完了すると、最終データ予測検知部３１１がメモリ残容量と平均圧縮率から算出したＡＴＡコマンドで指定するデータ転送量を、ＡＴＡコマンド自動発行器１４が、取得し(ステップＳ４０５)、データ転送量と転送先アドレスをＡＴＡコマンド自動発行器１４がＡＴＡコマンド発行器１３に設定して、ＡＴＡコマンド発行器１３がコマンドを発行する(ステップＳ４０６)。メモリ残容量をチェックして、メモリ４内の転送対象となっている全てのデータの転送が終了したかチェックする（ステップＳ２１３）。
【０１４５】
ステップＳ２１３で、転送が完了していないときには、不揮発性メモリコントローラ５０１は、ステップＳ４０５に戻って、ＡＴＡコマンド転送量を取得する処理から上記同様に処理する（ステップＳ４０５、Ｓ４０６、Ｓ２１３）。
【０１４６】
ステップＳ２１３で、転送終了であると、圧縮率監視部４１１は、圧縮伸長器１２による最終データの圧縮率が「１」以下であるか判断して、「１」以下の場合には、圧縮伸長器１２の圧縮した最終データをＡＴＡコマンド発行器１３に不揮発性メモリ５に転送させて格納させる。
【０１４７】
ところが、ステップＳ２１３で、転送終了であっても、圧縮率監視部４１１は、圧縮伸長器１２での最終データの圧縮率が「１」を超えていると、再度、ＤＭＡＣ１１に同じアドレスから元データを読み出させて、圧縮伸長器１２で圧縮させることなくスルーさせて、ＡＴＡコマンド発行器１３に不揮発性メモリ５へ転送させて、生データ（元データ）を不揮発性メモリ５に格納させて処理を終了する(ステップＳ６０１)。
【０１４８】
このように、本実施例の画像処理装置５００は、不揮発性メモリコントローラ５０１が、ＤＭＡＣ１１によってメモリ４から読み出されたデータサイズと圧縮伸長器１２の圧縮した圧縮データのデータサイズから該圧縮データが元データのデータサイズ以下に圧縮されたか否かを監視し、該圧縮データのデータサイズが元データのデータサイズよりも大きいときには、ＤＭＡＣ１１に同じ元データをメモリ４から読み出させて、該データを圧縮伸長器１２を非圧縮状態で通過（スルー）させた後、ＡＴＡコマンド発行器１３に該元データをそのまま不揮発性メモリ５に転送させる圧縮率監視部４１１を搭載している。
【０１４９】
したがって、プログラムが介在することなく、圧縮データが元データよりも大きなデータになったときには、元データを不揮発性メモリ５に転送して保存させることができ、処理速度を向上させつつ、無駄な保存領域が使用されることを防止して、不揮発性メモリ５の有効利用を図ることができる。
【０１５０】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１５１】
本発明は、ＡＴＡコマンドでデータ転送するデータ転送制御装置及びこのデータ転送制御装置を搭載する複合装置、ファクシミリ装置、複写装置等の画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に利用することができる。
【符号の説明】
【０１５２】
１  画像処理装置
２  不揮発性メモリコントローラ
３  ＣＰＵ
４  メモリ
５  不揮発性メモリ
５ａ  ＡＴＡ  Ｉ/Ｆ
１１  ＤＭＡＣ
１２  圧縮伸長器
１３  ＡＴＡコマンド発行器
１４  ＡＴＡコマンド自動発行器
１００  画像処理装置
１１１  メモリ残容量計算器  １１２  平均圧縮率保存器
１２１  転送サイズ受信器
１２２  減算器
１２３  総転送サイズ保存器
１２４  メモリ残容量演算結果保存器
１３１  圧縮結果受信器
１３２  平均値演算器
１３３  平均圧縮率保存器
２００  画像処理装置
２０１  不揮発性メモリコントローラ
２１１  最終データ予測検知器
２２１  メモリ残容量保存器
２２２  演算器
２２３  圧縮後転送サイズ保存器
２２４  ＡＴＡ転送サイズ比較器
２２５  平均圧縮率保存器
３００  画像処理装置
３０１  不揮発性メモリコントローラ
３１１  最終データ予測検知器
４００  画像処理装置
４０１  不揮発性メモリコントローラ
４１１  圧縮率監視部
５００  画像処理装置
５０１  不揮発性メモリコントローラ
【先行技術文献】
【特許文献】
【０１５３】
【特許文献１】特開２００１−２８２７０５号公報
【図１】
2011243090.tif 000003
【図２】
2011243090.tif 000004
【図３】
2011243090.tif 000005
【図４】
2011243090.tif 000006
【図５】
2011243090.tif 000007
【図６】
2011243090.tif 000008
【図７】
2011243090.tif 000009
【図８】
2011243090.tif 000010
【図９】
2011243090.tif 000011
【図１０】
2011243090.tif 000012
【図１１】
2011243090.tif 000013
【図１２】
2011243090.tif 000014
【図１３】
2011243090.tif 000015
【図１４】
2011243090.tif 000016
【図１５】
2011243090.tif 000017
【図１６】
2011243090.tif 000018
【図１７】
2011243090.tif 000019