(57)【特許請求の範囲】
【請求項１】
所定データ量を圧縮単位として該圧縮単位毎に入力される画像データを圧縮手段で１つの圧縮データに可変長圧縮して、記憶手段に転送して記憶した圧縮データを、リードＤＭＡ制御手段が、圧縮データを伸長する伸長手段からの次データの転送を許可する次データ転送許可信号に応じて該記憶手段のディスクリプタに基づいて該圧縮単位毎に読み出して該伸長手段に転送する画像処理装置において、
前記リードＤＭＡ制御手段は、
前記記憶手段から前記ディスクリプタ及び前記圧縮単位の前記圧縮データを読み出す読み出し手段と、
前記読み出し手段による前記記憶手段からの前記ディスクリプタ及び前記圧縮データの読み出しを制御するディスクリプタリード制御手段と、
前記読み出し手段によって前記記憶手段から読み出された前記圧縮単位の前記圧縮データを一時保管する複数のバッファと、
前記読み出し手段によって読み出された前記圧縮単位の前記圧縮データの前記バッファに対する書き込みを制御するとともに該圧縮データの該バッファへの書き込みを完了すると書き込み完了通知を発行するバッファライト制御手段と、
前記バッファに書き込まれた前記圧縮データを読み出して前記伸長手段へ出力するバッファリード制御手段と、
前記バッファライト制御手段が前記バッファに書き込んだ前記圧縮データをカウントして、該圧縮データサイズが前記ディスクリプタで指定されている指定データサイズになると、ライトカウント終了通知を前記ディスクリプタリード制御手段に出力するライトカウント手段と
を備え、
前記ディスクリプタリード制御手段は、前記ライトカウント終了通知または前記次データ転送許可通知が入力されると、次の前記ディスクリプタと前記圧縮データの読み出しを行うことを特徴とする画像処理装置。
【請求項２】
前記伸長手段は、前記圧縮単位毎の前記圧縮データの終端に付加されている終端信号に基づいて前記次データ転送許可信号を生成することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記バッファリード制御手段は、前記バッファから読み出した前記圧縮データをカウントして該カウント値が前記指定データサイズになると、リードカウント終了信号を前記ディスクリプタリード制御手段に出力するリードカウント手段を備えており、
前記ディスクリプタリード制御手段は、前記ライトカウント終了通知が入力されると、前記リードカウント終了信号が入力されるのを待って、次の前記ディスクリプタと前記圧縮データの読み出しを行うことを特徴とする請求項１または請求項２記載の画像処理装置。
【請求項４】
前記ディスクリプタリード制御手段は、前記ライトカウント終了通知が入力されると、前記次データ転送許可信号が入力されるのを待って、次の前記ディスクリプタと前記圧縮データの読み出しを行うことを特徴とする請求項１から請求項３のいずれかに記載の画像処理装置。
【請求項５】
前記伸長手段は、前記次データ転送許可信号として、前記伸長手段が前記バッファリード制御手段から送られてきた前記圧縮データを一時保管する内部バッファが空になったことを示すバッファエンプティ信号、または／及び、前記圧縮データの伸長処理が終了したことを示す動作終了信号を出力することを特徴とする請求項４のいずれかに記載の画像処理装置。
【請求項６】
所定データ量を圧縮単位として該圧縮単位毎に入力される画像データを圧縮処理ステップで１つの圧縮データに可変長圧縮して、記憶手段に転送して記憶した圧縮データを、リードＤＭＡ制御処理ステップが、圧縮データを伸長する伸長処理ステップからの次データの転送を許可する次データ転送許可信号に応じて該記憶手段のディスクリプタに基づいて該圧縮単位毎に読み出して該伸長処理ステップに転送する画像処理方法であって、
前記リードＤＭＡ制御処理ステップは、
前記記憶手段から前記ディスクリプタ及び前記圧縮単位の前記圧縮データを読み出す読み出し処理ステップと、
前記読み出し処理ステップによる前記記憶手段からの前記ディスクリプタ及び前記圧縮データの読み出しを制御するディスクリプタリード制御処理ステップと、
前記読み出し処理ステップによって読み出された前記圧縮単位の前記圧縮データの複数のバッファに対する書き込みを制御するとともに該圧縮データの該バッファへの書き込みを完了すると書き込み完了通知を発行するバッファライト制御処理ステップと、
前記バッファに書き込まれた前記圧縮データを読み出して前記伸長処理ステップへ出力するバッファリード制御処理ステップと、
前記バッファライト制御処理ステップが前記バッファに書き込んだ前記圧縮データをカウントして、該圧縮データサイズが前記ディスクリプタで指定されている指定データサイズになると、ライトカウント終了通知を前記ディスクリプタリード制御処理ステップに出力するライトカウント処理ステップと
を有し、
前記ディスクリプタリード制御処理ステップは、前記ライトカウント終了通知または前記次データ転送許可通知が入力されると、次の前記ディスクリプタと前記圧縮データの読み出しを行うことを特徴とする画像処理方法。
【請求項７】
所定データ量を圧縮単位として該圧縮単位毎に入力される画像データを圧縮処理で１つの圧縮データに可変長圧縮して、記憶手段に転送して記憶した圧縮データを、リードＤＭＡ制御処理が、圧縮データを伸長する伸長処理からの次データの転送を許可する次データ転送許可信号に応じて該記憶手段のディスクリプタに基づいて該圧縮単位毎に読み出して該伸長処理に転送する画像処理プログラムであって、
コンピュータに、
前記リードＤＭＡ制御処理として、
前記記憶手段から前記ディスクリプタ及び前記圧縮単位の前記圧縮データを読み出す読み出し処理と、
前記読み出し処理による前記記憶手段からの前記ディスクリプタ及び前記圧縮データの読み出しを制御するディスクリプタリード制御処理と、
前記読み出し処理によって読み出された前記圧縮単位の前記圧縮データの複数のバッファに対する書き込みを制御するとともに該圧縮データの該バッファへの書き込みを完了すると書き込み完了通知を発行するバッファライト制御処理と、
前記バッファに書き込まれた前記圧縮データを読み出して前記伸長処理へ出力するバッファリード制御処理と、
前記バッファライト制御処理が前記バッファに書き込んだ前記圧縮データをカウントして、該圧縮データサイズが前記ディスクリプタで指定されている指定データサイズになると、ライトカウント終了通知を前記ディスクリプタリード制御処理に出力するライトカウント処理と、
を実行させ、
前記ディスクリプタリード制御処理においては、前記ライトカウント終了通知または前記次データ転送許可通知が入力されると、次の前記ディスクリプタと前記圧縮データの読み出しを行わせることを特徴とする画像処理プログラム。
【請求項８】
請求項７記載の画像処理プログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、画像処理プログラム及び記録媒体に関し、詳細には、入力画像データを一旦可変長圧縮してメモリに保管した後に該メモリの圧縮データを伸長して出力する画像処理装置、画像処理方法、画像処理プログラム及び記録媒体に関する。
【背景技術】
【０００２】
複写装置、プリンタ装置、ファクシミリ装置、複合装置等の画像処理装置においては、スキャナで読み取られた原稿の画像データをプリンタで画像形成出力する場合、以下のような処理手順によって行われる。すなわち、画像処理装置は、スキャナで読み取られて出力される画像データを圧縮器で可変長圧縮して圧縮データとし、ＣＰＵ（Central Processing Unit ）を介することなく、ＤＭＡＣ（Direct Memory Access Controller）によってメモリに転送して出力用の圧縮データとして保存する。その後、画像処理装置は、メモリ上の圧縮データをＤＭＡＣで読み出して伸長器で伸長し、必要な画像処理を施して、プリンタで印刷出力する。
【０００３】
このような一連の画像データ処理においては、スキャナの動作が一定の速度で行われるため、メモリへのデータ転送を一定速度で行う必要がある。
【０００４】
そして、処理速度を向上させるために、上記スキャナで読み取られた画像データを圧縮してメモリに保存し、全ての圧縮データのメモリへの保存が完了する前に、メモリの圧縮データの読み出しを開始して、読み出した圧縮データを伸長してプロッタで印刷する処理を連続して行う逐次処理を行っている。この場合、画像データを圧縮してメモリに転送保存する圧縮転送処理とメモリの圧縮データを伸長してプロッタに転送する伸長転送処理を適切に連携させて全体の転送処理を速やかに行うことが、コピースピード、特に、１枚目のコピーであるファーストコピーの処理時間を短くする上で、重要である。
【０００５】
また、今日、画像データにおいては、印刷出力用のＣ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）、Ｋ（ブラック）のＣＭＹＫ画像データだけでなく、転送や再利用が図られるため、Ｒ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）のＲＧＢ画像データもメモリ上でハンドリングする必要がある。したがって、今日の画像処理装置においては、画像データの転送経路も複雑となってきており、コピー動作を行う場合の原稿の読み取りから印刷出力までのファーストコピー時間が長くなる原因の一つとなっている。
【０００６】
また、入力される画像データを圧縮器で可変長圧縮してメモリに圧縮データとして保存する場合、圧縮器で圧縮される圧縮データのデータサイズが一定でないため、圧縮転送処理と伸長転送処理を連続して行う逐次処理においては、画像データの圧縮率に応じて圧縮器での処理時間にバラツキが発生し、ファーストコピー時間を保証することができなくなる。すなわち、ＤＭＡＣによる圧縮データの転送では、所定データ量の圧縮データがバッファに蓄積されると、メモリにＤＭＡ転送して書き込みを行い、メモリに書き込まれた圧縮データを所定量読み出してバッファに書き込んで、該バッファの圧縮データを伸長器に出力する。したがって、圧縮器の圧縮率によって圧縮器での処理時間にバラツキが発生すると、バッファに所定データ量の圧縮データが蓄積される時間にバラツキが発生し、圧縮転送と伸長転送を適切に連携させることができなくなる。
【０００７】
そして、従来、画像データを可変長圧縮して書き込み側バッファに蓄積した後に、メモリに転送して記憶し、記憶された圧縮データを読み出して伸長するときに、書き込み側バッファの蓄積量が第１の所定量に達したとき、または、第１の所定量に達する前に書き込み開始から所定時間経過したときのいずれか早いほうのタイミングで転送する技術が提案されている（特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来技術にあっては、圧縮器で可変長圧縮された圧縮データが書き込み側バッファに所定量（転送パケットサイズ）蓄積されなくても、一定時間が経過すると、メモリへのデータ転送を行っているため、転送パケットサイズ（バンドサイズ）が蓄積される前に一定時間が経過して書き込み側バッファの圧縮データをメモリに転送すると、圧縮器内に圧縮途中のデータが残ることとなり、一定時間毎に一定の画像データをメモリに転送することができず、ファーストコピー時間のバラツキを完全に抑制することができないおそれがある。また、ＪＰＥＧのように、可変長圧縮では、ファイルの終わりを表す終端符号ＥＯＩ（End Of Identify）というマーカが一般的に付与され、ＪＰＥＧ規定では、終端符号ＥＯＩ以降は無視して、何を記録してもよいこととなっているため、終端符号ＥＯＩ以降にもデータ（冗長データ）が存在することがある。そして、従来技術にあっては、図１９に示すように、斜線部分が有効圧縮データであるが、メモリから圧縮データを読み出す際に、ディスクリプタで設定されているデータ領域の全域を読み取るため、ディスクリプタで設定されているデータ領域のうち、図１９に斜線で示す部分以外の終端符号ＥＯＩ以降の空白部分にあるデータも読み出すこととなり、画像データを可変長圧縮する効果が希薄なものとなっていた。
【０００９】
そこで、本発明は、記憶手段に書き込まれた圧縮データの読み出し時間を短縮しつつ、不要なデータの読み出しを禁止して、画像データを圧縮して記憶手段に転送する圧縮転送から該記憶手段の圧縮データを伸長側に転送する伸長転送の連携を適切に行い、転送処理時間を短縮する画像処理装置、画像処理方法、画像処理プログラム及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【００１０】
本発明は、上記目的を達成するために、所定データ量を圧縮単位として可変長圧縮されて記憶手段に記憶された圧縮データを、伸長側からの次データ転送許可信号に応じてディスクリプタに基づいて該記憶手段から該圧縮単位毎に読み出して該伸長側に転送する場合に、該記憶手段から読み出してバッファへ書き込んだ圧縮データをカウントして、該圧縮データサイズがディスクリプタで指定されている指定データサイズになると出力されるライトカウント終了通知と、前記次データ転送許可通知のいずれかが発生すると、次のディスクリプタと圧縮データの記憶手段からの読み出しを行うことを特徴としている。
【００１１】
また、本発明は、前記伸長側が、前記圧縮単位毎の前記圧縮データの終端に付加されている終端信号に基づいて前記次データ転送許可信号を生成することを特徴としてもよい。
【００１２】
さらに、本発明は、前記ライトカウント終了通知が発生すると、前記バッファから読み出した前記圧縮データのカウント値が前記指定データサイズになると出力されるリードカウント終了信号が発生するのを待って、次の前記ディスクリプタと前記圧縮データの読み出しを行うことを特徴としてもよい。
【００１３】
また、本発明は、前記ライトカウント終了通知が発生すると、前記次データ転送許可信号が入力されるのを待って、次の前記ディスクリプタと前記圧縮データの読み出しを行うことを特徴としてもよい。
【００１４】
さらに、本発明は、前記伸長手段が、前記次データ転送許可信号として、前記伸長手段が前記バッファリード制御手段から送られてきた前記圧縮データを一時保管する内部バッファが空になったことを示すバッファエンプティ信号、または／及び、前記圧縮データの伸長処理が終了したことを示す動作終了信号を出力することを特徴としてもよい。
【発明の効果】
【００１５】
本発明によれば、記憶手段から読み出した圧縮データのデータ量を監視することで、該記憶手段に書き込まれた圧縮データの読み出し時間を短縮することができ、画像データを圧縮して記憶手段に転送する圧縮転送から該記憶手段の圧縮データを伸長側に転送する伸長転送の連携を適切に行って、転送処理時間を短縮することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１実施例を適用した複合装置の要部ブロック構成図。
【図２】画像伸長器のＲＤＭＡＣの詳細なブロック構成図。
【図３】ディスクリプタのフォーマット構成例を示す図。
【図４】画像伸長器のＲＤＭＡＣのディスクリプタリード制御部によるディスクリプタリード制御処理を示すフローチャート。
【図５】メモリ領域の圧縮ディスクリプタとディスクリプタを示す図。
【図６】画像伸長器のＲＤＭＡＣのタイミング図。
【図７】従来の伸長側のＲＤＭＡＣのタイミング図。
【図８】本発明の第２実施例を適用した複合装置のＲＤＭＡＣの詳細なブロック構成図。
【図９】第２実施例のＤＰＲリード制御部によるディスクリプタリード制御処理を示すフローチャート。
【図１０】図９の続きの処理を示すフローチャート。
【図１１】第２実施例のメモリの圧縮データとディスクリプタを示す図。
【図１２】不具合発生時のタイミング図。
【図１３】第２実施例のＲＤＭＡＣのタイミング図。
【図１４】第３実施例を適用した複合装置のＲＤＭＡＣの詳細なブロック構成図。
【図１５】第３実施例のＤＰＲリード制御部によるディスクリプタリード制御処理を示すフローチャート。
【図１６】図１５の続きの処理を示すフローチャート。
【図１７】不具合発生時のタイミングチャート。
【図１８】第３実施例によるＲＤＭＡＣのタイミングチャート。
【図１９】従来のメモリの圧縮データ読み取り処理の説明図。
【発明を実施するための形態】
【００１７】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例１】
【００１８】
図１〜図７は、本発明の画像処理装置、画像処理方法、画像処理プログラム及び記録媒体の第１実施例を示す図であり、図１は、本発明の画像処理装置、画像処理方法、画像処理プログラム及び記録媒体の第１実施例を適用した複合装置１の要部ブロック構成図である。
【００１９】
図１において、複合装置１は、コントローラ２とエンジン部３を備えており、コントローラ２とエンジン部３とは、ビデオＩ／Ｆにより接続されている。
【００２０】
エンジン部３は、スキャナ１１とプロッタ１２を備えており、原稿の画像を読み取って、コントローラ２で画像処理された画像データに基づいてプロッタ１２で用紙に画像を印刷出力する。スキャナ１１は、例えば、ＣＣＤ（Charge Coupled Device ）やＣＭＯＳ（Complementary Metal Oxide Semiconductor; 相補型金属酸化膜半導体）を利用したイメージスキャナ等が利用されており、一般に、ＡＤＦ（自動原稿送り装置）を備えている。ＡＤＦには、複数枚の原稿がセットされ、ＡＤＦは、セットされた原稿を１枚ずつスキャナ１１の原稿読み取り位置に送給する。スキャナ１１は、ＡＤＦから搬送されてきた原稿を走査し、原稿の画像を所定の解像度で読み取って、ＲＧＢの画像信号をデジタル変換した後、コントローラ２に出力する。
【００２１】
プロッタ１２は、所定の印刷方式、例えば、電子写真方式、インク噴射方式のプロッタが用いられており、カラー、または、モノクロで用紙に画像を印刷出力する。
【００２２】
なお、複合装置１は、画像データの入力機能としては、スキャナ１１に限るものではなく、例えば、ファクシミリ通信によってファクシミリデータを受信したり、ネットワークに接続されたコンピュータ等の情報処理装置から送られてきた画像データを受信したりして、入力画像データとしてもよい。また、複合装置１は、画像データの出力機能としても、プロッタ１２で用紙に印刷出力するだけでなく、ファクシミリ機能によってファクシミリ送信出力したり、ネットワークに接続された情報処理装置や他の複合装置等に画像データを送信出力してもよい。
【００２３】
コントローラ２は、ＡＳＩＣ（Application Specific Integrated Circuit）２１、ＡＳＩＣ２２、ハードディスク２３、ＣＰＵ（Central Processing Unit ）２４、操作部２５及びメモリ２６等を備えており、複合装置１の制御と描画及び通信を制御するとともに、操作部２５からの操作入力を制御する。
【００２４】
ＡＳＩＣ２１は、画像圧縮／伸長及び画像処理のハードウェア要素を有する画像処理用のＩＣ（Integrated Circuit：集積回路）であり、ハードディスク２３、メモリ２６及びＣＰＵ２４を接続するブリッジの役割も有している。ＡＳＩＣ２１は、内部レジスタ３１、スキャナＩ／Ｆ３２、画像伸長器３３及び画像処理器３４等を備えており、内部レジスタ３１は、ＣＰＵ２４によって処理パラメータ等のデータが設定される。
【００２５】
スキャナＩ／Ｆ３２は、圧縮器（圧縮手段）４１及びＷＤＭＡＣ（Write Direct Memory Access Controller）４２等を備えており、スキャナ１１から入力される画像データを所定のデータ量（圧縮単位）毎に圧縮器４１によってＪＰＥＧ等の可変長圧縮方式で可変長圧縮して、ＷＤＭＡＣ４２によってＣＰＵ２４を介することなく、メモリ２６にＤＭＡ転送して圧縮データとしてデータ量を少なくして書き込む。ＷＤＭＡＣ４２は、ＣＰＵ２４がメモリ２６上に書き込んだディスクリプタ（ＤＰＲ）を参照して、メモリ２６に書き込む圧縮データ（符号データ）のデータ量、書き込むアドレスを管理し、ＣＰＵ２４の制御を介することなく、メモリ２６にメモリアクセスを行って、圧縮データを書き込む。
【００２６】
画像伸長器３３は、伸長器４３及びＲＤＭＡＣ（Read Direct Memory Access Controller）４４等を備えており、ＲＤＭＡＣ４４は、ＣＰＵ２４がメモリ２６上に書き込んだディスクリプタを参照して、ＣＰＵ２４を介することなく、メモリ２６上の圧縮データをリードして、伸長器４３に渡す。伸長器（伸長手段）４３は、ＲＤＭＡＣ４４のリードした圧縮データを元の画像データに伸長（復号）し、伸長後の画像データを、画像処理器３４へ出力する。そして、ＲＤＭＡＣ４４は、メモリ２６上のデータを読み込む際、メモリ２６にリードコマンドを発行した後、該リードコマンドに対するリードデータ応答を待たずに次のリードコマンドを発行するリードコマンド先投げを行うことで、メモリリード時間を短縮させる。
【００２７】
画像処理器３４は、画像処理部４５及びＷＤＭＡＣ４６等を備えており、画像処理部４５は、画像伸長器３３で伸長された画像データに対して、印刷出力するのに必要な所定の画像処理、例えば、誤差拡散やガンマ変換等の画像処理を行う。ＷＤＭＡＣ４６は、ＣＰＵ２４がメモリ２６上に書き込んだディスクリプタを参照して、画像処理部４５が画像処理したメモリ２６に書き込む画像データのデータ量、書き込むアドレスを管理し、ＣＰＵ２４の制御を介することなく、メモリ２６にメモリアクセスを行って、画像データを書き込む。
【００２８】
ＡＳＩＣ２２は、メモリ２６上にある画像データをプロッタ１２へ転送する際のプロッタ１２との印刷タイミングを制御する機能を有したＩＣであり、メモリ２６やＣＰＵ２４を接続するブリッジの役割も持っている。ＡＳＩＣ２２は、内部レジスタ４７及びプロッタＩ／Ｆ４８を有しており、プロッタＩ／Ｆ４８は、ＲＤＭＡＣ４９を有している。内部レジスタ４７は、ＣＰＵ２４によって処理パラメータ等のデータが設定される。プロッタＩ／Ｆ４８のＲＤＭＡＣ４９は、メモリ２６上の画像データを読み込む際に、リードコマンド発行後、リードデータ応答を待たずに次のリードコマンドを発行するリードコマンド先投げを行うことで、メモリリード時間の短縮を行う。
【００２９】
操作部２５は、ユーザからの入力操作を受け付けてユーザに対して報知する情報を表示する機能を有し、メカニカルキーやタッチパネルキー等からなるテンキー、文字入力キー、スタートキー、ストップキー等の操作キーを有するとともに、操作キーから操作入力される情報や複合装置１の動作状態及び時刻等を表示する液晶ディスプレイ（ＬＣＤ）等の表示部を有している。
【００３０】
ハードディスク２３は、画像データ、プログラム、フォントデータ及びフォームデータ等をＣＰＵ２４の制御下で保存するが、記憶手段としては、ハードディスク２３に限るものではなく、これらの情報を記憶することができる不揮発性の記憶手段、例えば、光ディスク等であってもよい。
【００３１】
メモリ（記憶手段）２６は、ＲＡＭ（Random Access Memory）等で構成され、画像データバッファ、圧縮データバッファとして用いられる。
【００３２】
ＣＰＵ２４は、図示しないＲＯＭ（Read Only Memory）やハードディスク２３に記憶されているプログラムに従ってＡＳＩＣ２１、ＡＳＩＣ２２の内部レジスタ３１、４７等へのデータ設定を行って、エンジン部３とともにコントローラ２の動作を制御し、複合装置１としての基本処理を実行するとともに、本発明の画像処理方法を実行する。また、ＣＰＵ２４は、ＡＳＩＣ２１とＡＳＩＣ２２のメモリアクセスのアービトレーションも行う。
【００３３】
上記画像伸長器３３のＲＤＭＡＣ（リードＤＭＡ制御手段）４４は、図２に示すようにブロック構成されており、ＤＰＲリード制御部５１、メモリＩ／Ｆ５２、ライトトグル制御部５３、リードトグル制御部５４、２つのバッファ５５ａ、５５ｂ及びレジスタ５６等を備えている。
【００３４】
ＤＰＲリード制御部（ディスクリプタリード制御手段）５１は、メモリ２６上にＣＰＵ２４によって書き込まれたディスクリプタ（ＤＰＲ）をリードして、ディスクリプタ情報（ＳＡ／ＳＩＺＥ）をリードトグル制御部５４、ライトトグル制御部５３、メモリＩ／Ｆ５２へ分配し、また、後述するように、ライトトグル制御部５３のライトカウント終了通知または伸長器４３からの次バンド転送許可信号（次データ転送許可信号）NEXTが通知されると、ディスクリプタのＮＤＰに記載されているアドレスをリードアクセスする。また、ＤＰＲリード制御部５１は、バッファ５５ａ、５５ｂの空き状況に基づいてディスクリプタのＤＰＲリードコマンドの先投げ個数を制御する。すなわち、伸長器４３は、可変長圧縮データの終端を示す終端符号ＥＯＩを検知すると、次バンド転送許可信号NEXTをＲＤＭＡＣ４４のリードトグル制御部５４及びＤＰＲリード制御部５１に出力する。
【００３５】
なお、ディスクリプタは、図３に示すようにフォーマット構成されており、各４ｂｙｔｅ（バイト）のＮＤＰ（Next Descriptor Pointer）、ＳＡ（Start Address）、ＳＩＺＥ、Ｏｐｔｉｏｎ等で構成されていて、ＣＰＵ２４によってメモリ２６上に書き込まれる。ＳＡは、ＲＤＭＡＣ４４がリードする圧縮データの先頭アドレスが記載され、ＳＩＺＥは、転送する圧縮データのデータ量が記載される。なお、本実施例の複合装置１では、圧縮データが可変長圧縮データであるため、データ量は、不明であるが、圧縮器４１の最悪圧縮率分のデータサイズがＳＩＺＥに記載される。ＮＤＰは、次ディスクリプタのアドレスが記載され、ＮＤＰ＝０の場合は、次のディスクリプタが無いことを示している。ＭＯＤＥは、ＤＭＡＣのモード設定が記載される。
【００３６】
メモリＩ／Ｆ（読み出し手段）５２は、アドレス生成部５２ａを備えており、アドレス生成部５２ａは、ＤＰＲリード制御部５１からのＤＰＲアドレス（ディスクリプタアドレス）またはライトトグル制御部５３からのラインカウント値に基づいてメモリアクセスするメモリ２６のアドレスを生成する。メモリＩ／Ｆ５２は、アドレス生成部５２ａの生成したアドレスを用いてリードコマンドを発行する。また、メモリＩ／Ｆ５２は、発行したリードコマンドに応答するリードデータを、ＤＰＲリード制御部５１またはライトトグル制御部５３へ転送する。
【００３７】
ライトトグル制御部（バッファライト制御手段）５３は、ライトカウンタ５３ａを備えており、ライトカウンタ（ライトカウント手段）５３ａは、バッファ５５ａ、５５ｂに書き込む圧縮データをカウントする。ライトトグル制御部５３は、ライトカウンタ５３ａのカウント結果であるライトカウント値に基づいて、圧縮データを書き込むバッファ５５ａ、５５ｂをトグルに制御して圧縮データのバッファ５５ａ、５５ｂの書き込みを行うとともに、バッファ５５ａ、５５ｂの空き状況をＤＰＲリード制御部５１へ通知する。ライトカウンタ５３ａは、初期値をＳＩＺＥとしてバッファ５５ａ、５５ｂへ書き込んだデータ量だけダウンカウントし、カウンタ値が「０」になると、ＤＰＲリード制御部５１へライトカウント終了通知を出力（アサート）する。
【００３８】
リードトグル制御部５４は、バッファ５５ａ、５５ｂの読み込み制御及びバッファ５５ａ、５５ｂから読み込む圧縮データをカウントするリードカウンタ５４ａを備えており、リードカウンタ５４ａは、初期値をＳＩＺＥとして、バッファ５５ａ、５５ｂから読み込んだ圧縮データのデータ量だけダウンカウントする。リードトグル制御部５４は、カウント中は、伸長器４３に出力しているデータ有効信号dma_aliveをアサートし、カウンタ値が「０」になると、データ有効信号dma_aliveをネゲートするとともに、ＥＯＢ（End of Block）パルスを後段の伸長器４３に通知する。また、リードトグル制御部５４は、次バンド転送許可信号NEXTがアサートされると、データ有効信号dma_aliveをネゲートし、リードカウンタ５４ａのリードカウントが「０」になる。この際、ＥＯＢパルスは後段へ出力しない。
【００３９】
バッファ５５ａ、５５ｂは、１リードコマンド分のバッファ容量を有しており、リードコマンドの先投げ個数と同じ個数のバッファ５５ａ、５５ｂを有する。本実施例の複合装置１は、２個のバッファ５５ａ、５５ｂを有しており、リードコマンド先投げ個数は２個である。
【００４０】
そして、本実施例の複合装置１は、ＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory ）、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＣＤ−ＲＷ（Compact Disc Rewritable ）、ＤＶＤ（Digital Versatile Disk）、ＳＤ（Secure Digital）カード、ＭＯ（Magneto-Optical Disc）等のコンピュータが読み取り可能な記録媒体に記録されている本発明の画像処理方法を実行する画像処理プログラムを読み込んでＲＯＭ等に導入することで、後述するメモリ２６に書き込まれた圧縮データの読み出し時間を短縮して、画像を圧縮してメモリ２６に転送する圧縮転送から該メモリ２６の圧縮データを伸長器４３に転送する伸長転送の連携を適切に行い、転送処理時間を短縮する画像処理方法を実行する画像処理装置として構築されている。この画像処理プログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【００４１】
次に、本実施例の作用を説明する。本実施例の複合装置１は、メモリ２６からのダミーデータの読み込みを防止しつつ圧縮データの読み出しを高速に行って、画像データを圧縮してメモリ２６に転送する圧縮転送からメモリ２６の圧縮データを伸長器４３に転送する伸長転送の連携を適切に行って、転送処理時間を短縮する。
【００４２】
すなわち、一定の速度で入力される入力画像データを可変長圧縮してメモリ２６に転送保管し、メモリ２６上の可変長圧縮データを読み出して伸長して出力する場合、入力画像データを可変長圧縮してメモリ２６へ転送する圧縮転送処理に対して、メモリ２６内の可変長圧縮データを読み出して伸長する伸長転送処理よりもバスの使用権を優先的に与えてデータ転送を行う。したがって、圧縮転送が伸長転送を追い抜いて適切な後段の処理を行うことができなくなるおそれがある。また、ＲＤＭＡＣ４４は、終端符号ＥＯＩ以降のディスクリプタで指定されているメモリ領域に空きがあるときには、該空き領域のダミーデータ（冗長データ）を読み込んでしまうが、このダミーデータの読み込みを防止して、処理速度を向上させることが、上記転送速度の向上に有効である。
【００４３】
そこで、本実施例の複合装置１は、ＲＤＭＡＣ４４によるメモリ２６の可変長圧縮データの読み出しにおいて、ダミーデータの読み込みを防止して圧縮データの読み出し時間を短縮して、圧縮転送処理と伸長転送処理を適切に連携させ、転送処理全体の処理速度の向上を図っている。
【００４４】
すなわち、画像伸長器３３は、ＲＤＭＡＣ４４が、メモリ２６上のディスクリプタ（ＤＰＲ）を参照して、リードコマンドを発行することで、メモリ２６上の圧縮データの読み込みを行って伸長器４３に出力して、伸長器４３で圧縮データの伸長を行う。そして、このＲＤＭＡＣ４４は、メモリ２６のリード処理をＤＰＲリード制御部５１が行っており、図４に示すようにディスクリプタリード制御処理を行う。すなわち、ＤＰＲリード制御部５１は、ＲＤＭＡＣ４４が起動されると、レジスタ５６にＣＰＵ２４によって設定された先頭のディスクリプタのアドレスである初期値のディスクリプタポインタ（ＤＰＲポインタ）をレジスタ５６からロードし（ステップＳ１０１）、メモリ２６の該初期値のディスクリプタポインタ（ＤＰＲポインタ）に設定されているバンドのアドレスを読み取って内部レジスタに設定する（ステップＳ１０２）。
【００４５】
次に、ＤＰＲリード制御部５１は、初期値のディスクリプタポインタ（ＤＰＲポインタ）に記載されているアドレスをディスクリプタアドレスバス（ＤＰＲアドレスバス）に設定し、メモリＩ／Ｆ５２にディスクリプタリードトリガ（ＤＰＲリードトリガ）を発行する（ステップＳ１０４）。メモリＩ／Ｆ５２は、ステップＳ１０３で設定されたディスクリプタアドレスのリードコマンドをメモリ５２に発行し、ＤＰＲリード制御部５１は、発行したリードコマンドに対応するディスクリプタリードデータ（ＤＰＲリードデータ）の応答を待つ（ステップＳ１０５）。
【００４６】
ＤＰＲリード制御部５１は、ディスクリプタリードデータを受け取ると、ディスクリプタ情報をＲＤＭＡＣ４４の必要な内部制御部に分配する（ステップＳ１０６）。すなわち、ＤＰＲリード制御部５１は、ディスクリプタ情報のうち、ＳＡ情報をメモリＩ／Ｆ５２へ転送し、ＳＩＺＥ情報をライトトグル制御部５３とリードトグル制御部５４へ転送する。
【００４７】
ＤＰＲリード制御部５１は、ディスクリプタ情報（ＳＡ１／ＳＩＺＥ１／ＮＤＰ１／ＭＯＤＥ１）をＤＰＲリード制御部５１内部で保持（ラッチ）し（ステップＳ１０７）、ライトカウント終了通知または次バンド転送許可信号NEXTの通知を待つ（ステップＳ１０８）。
【００４８】
ＤＰＲリード制御部５１は、ライトカウント終了通知または次バンド転送許可信号NEXTの通知を受け取ると、ディスクリプタ情報のＮＤＰを確認する（ステップＳ１０９）。
【００４９】
ＤＰＲリード制御部５１は、ステップＳ１０９で、ディスクリプタ情報のＮＤＰが「０」以外であると、全ての圧縮ディスクリプタの終端ではないと判断して、ＮＤＰが示しているアドレスを内部レジスタに設定し（ステップＳ１１０）、ステップＳ１０４に戻って、ディスクリプタリードトリガ（ＤＰＲリードトリガ）のメモリＩ／Ｆ５２への発行から上記同様に処理する（ステップＳ１０４〜Ｓ１０９）。
【００５０】
そして、ステップＳ１０９で、ディスクリプタ情報のＮＤＰが「０」であると、ＤＰＲリード制御部５１は、全圧縮データの終了であると判断して、処理を終了する。
【００５１】
すなわち、図５に示すようにメモリ２６に圧縮データとディスクリプタ（ＤＰＲ）が記録されている場合、すなわち、ディスクリプタで指定されているデータサイズよりも、可変長圧縮データのデータサイズが小さく、終端符号ＥＯＩ以降にＤＰＲサイズまでに冗長データが存在する場合、図６にＲＤＭＡＣ４４のタイミング図を示すように、ＤＰＲリード制御部５１は、タイミングＴａにおいて、伸長器４３が終端符号ＥＯＩを検知して次バンド転送許可信号NEXTをＲＤＭＡＣ４４のリードトグル制御部５４とＤＰＲリード制御部５１に出力して、ＤＰＲリード制御部５１がこの次バンド転送許可信号NEXTを受信すると、矢印で示すように、次バンドのディスクリプタをリード（ＤＰＲリード）する。なお、図６において、A_Dataは、ＲＤＭＡＣ４４がメモリ２６から読み取るデータを示しており、B_Dataは、ＲＤＭＡＣ４４から伸長器４３に出力するデータを示している。
【００５２】
したがって、ＲＤＭＡＣ４４は、終端符号ＥＯＩ以降のダミーデータのリードを防止することができ、リード処理のパフォーマンスを向上させることができる。このとき、リードトグル制御部５４は、データ有効信号dma_aliveをネゲートするとともに、ＥＯＢパルスを後段の伸長器４３に通知する。
【００５３】
なお、従来は、ディスクリプタリード制御部が、ライトトグル制御部からのライトカウント終了通知のみを検知していたため、ＲＤＭＡＣは、図７に示すように、終端符号ＥＯＩ以降のダミーデータ（冗長データ）をリードしてしまい、可変長圧縮の効果が希薄なものとなっていた。
【００５４】
このように、本実施例の複合装置１は、所定データ量を圧縮単位として可変長圧縮されてメモリ２６に記憶された圧縮データを、伸長器４３からの次バンド転送許可信号（次データ転送許可信号）NEXTに応じてディスクリプタに基づいてメモリ２６からバンド（圧縮単位）毎に読み出して伸長器４３に転送する場合に、ＲＤＭＡＣ４４のライトトグル制御部５３が、メモリ２６から読み出したバンドの圧縮データをバッファ５５ａ、５５ｂに書き込み、ライトカウンタ５３ａが、該圧縮データのバッファ５５ａ、５５ｂへの書き込みを完了すると書き込み完了通知をＤＰＲリード制御部５１に発行して、ディスクリプタリード制御部５１が、バッファ５５ａ、５５ｂに書き込まれた圧縮データを読み出して伸長器４３へ出力するとともに、バッファ５５ａ、５５ｂに書き込んだ圧縮データをライトカウンタ５３ａによってカウントして、ライトカウンタ５３ａのカウントした圧縮データサイズがディスクリプタで指定されている指定データサイズになると、ライトカウント終了通知をＤＰＲリード制御部５１に出力し、ＤＰＲリード制御部５１が、このライトカウント終了通知と伸長器４３からの次バンド転送許可信号NEXTのいずれかが入力されると、次のＤＰＲリードトリガをメモリＩ／Ｆ５２に発行して、次のバンドのディスクリプタと圧縮データのメモリ２６からの読み出しを行っている。
【００５５】
したがって、メモリ２６から読み出した圧縮データのデータ量を監視することで、メモリ２６に書き込まれた圧縮データの読み出し時間を短縮することができ、画像データを圧縮してメモリ２６に転送する圧縮転送からメモリ２６の圧縮データを伸長器４３に転送する伸長転送の連携を適切に行って、転送処理時間を短縮することができる。
【００５６】
また、本実施例の複合装置１は、伸長器４３が、圧縮単位毎の圧縮データの終端に付加されている終端符号ＥＯＩに基づいて次データ転送許可信号を生成している。
【００５７】
したがって、終端符号ＥＯＩ以降に付加されているダミーデータ（冗長データ）を読み取ることを防止することができ、圧縮データの読み取り速度をより一層向上させることができる。
【実施例２】
【００５８】
図８〜図１３は、本発明の画像処理装置、画像処理方法、画像処理プログラム及び記録媒体の第２実施例を示す図であり、図８は、本発明の画像処理装置、画像処理方法、画像処理プログラム及び記録媒体の第２実施例を適用した複合装置１の要部ブロック構成図である。
【００５９】
なお、本実施例は、上記第１実施例の複合装置１と同様の複合装置に適用したものであり、本実施例の説明においては、第１実施例の複合装置１と同様の構成部分には、同一の符号を付して、その説明を省略または簡略化するとともに、図示しない部分についても、第１実施例の説明で用いた符号をそのまま用いて説明する。
【００６０】
図８において、ＲＤＭＡＣ（リードＤＭＡ制御手段）６０は、第１実施例のＲＤＭＡＣ４４と同様のメモリＩ／Ｆ５２、ライトトグル制御部５３、リードトグル制御部５４、バッファ５５ａ、５５ｂ及びレジスタ５６等を備えているとともに、ＤＰＲリード制御部（ディスクリプタリード制御手段）６１を備えている。
【００６１】
リードトグル制御部５４は、第１実施例と同様に、リードカウンタ５４ａを備えており、リードカウンタ５４ａは、上述のように、初期値をディレクトリのＳＩＺＥに設定されているデータサイズとして、バッファ５５ａ、５５ｂから読み込んだ圧縮データのデータ量だけダウンカウントする。リードトグル制御部５４は、リードカウンタ５４ａがカウント中は、伸長器４３に出力しているデータ有効信号dma_aliveをアサートし、カウンタ値が「０」になると、データ有効信号dma_aliveをネゲートするとともに、ＥＯＢパルスを後段の伸長器４３に通知する。また、リードトグル制御部５４は、次バンド転送許可信号NEXTがアサートされると、データ有効信号dma_aliveをネゲートし、リードカウンタ５４ａのリードカウントが「０」になる。この際、ＥＯＢパルスは後段へ出力しない。
【００６２】
そして、リードカウンタ５４ａは、カウンタ値が「０」になってカウントを終了すると、リードカウント終了通知をＤＰＲリード制御部６１に出力する。
【００６３】
ＤＰＲリード制御部６１は、第１実施例のＤＰＲリード制御部５１と同様に、メモリ２６上にＣＰＵ２４によって書き込まれたディスクリプタをリードして、ディスクリプタ情報（ＳＡ／ＳＩＺＥ）をリードトグル制御部５４、ライトトグル制御部５３、メモリＩ／Ｆ５２へ分配し、また、ライトトグル制御部５３のライトカウント終了通知、上記リードトグル制御部５４のリードカウンタ５４ａからのリードカウント終了通知または伸長器４３からの次バンド転送許可信号NEXTが通知されると、ディスクリプタのＮＤＰに記載されているアドレスをリードアクセスする。また、ＤＰＲリード制御部６１は、バッファ５５ａ、５５ｂの空き状況に基づいてディスクリプタのＤＰＲリードコマンドの先投げ個数を制御する。
【００６４】
また、メモリＩ／Ｆ５２は、第１実施例と同様に、アドレス生成部５２ａが、ＤＰＲリード制御部６１のＤＰＲアドレス、または、ライトトグル制御部５３のライトカウント値を元にメモリアクセスするアドレスを生成し、該生成したアドレスを用いてリードコマンドを発行する。また、メモリＩ／Ｆ５２は、リードコマンドの応答するメモリ２６からのリードデータをＤＰＲリード制御部６１またはライトトグル制御部５３へ転送する。
【００６５】
ライトトグル制御部５３は、第１実施例と同様に、バッファ５５ａ、５５ｂの書き込み制御及びバッファに書き込むデータをカウントするライトカウンタ５３ａを有し、ライトカウンタ５３ａのカウント結果であるライトカウント値に基づいて、圧縮データを書き込むバッファ５５ａ、５５ｂをトグルに制御して圧縮データのバッファ５５ａ、５５ｂの書き込みを行うとともに、バッファ５５ａ、５５ｂの空き状況をＤＰＲリード制御部５１へ通知する。ライトカウンタ５３ａは、初期値をＳＩＺＥとしてバッファ５５ａ、５５ｂへ書き込んだデータ量だけダウンカウントし、カウンタ値が「０」になると、ＤＰＲリード制御部５１へライトカウント終了通知を出力（アサート）する。
【００６６】
次に、本実施例の作用を説明する。本実施例の複合装置１は、リードトグル制御部５４のリードカウンタ５４ａからのリードカウント終了通知を用いて、ＤＰＲリード制御部６１がディスクリプタのリードアクセスを制御することで、メモリ２６の圧縮データのデータサイズとディスクリプタの指定データサイズが一致する場合にも、適切に圧縮ディスクリプタの読み取りを行う。
【００６７】
すなわち、ＤＰＲリード制御部６１は、図９及び図１０に示すように、ディスクリプタリード処理を実行する。なお、図９及び図１０において、第１実施例の図４に示したディスクリプタリード処理と同様の処理ステップには、同一のステップナンバを付与して、その説明を簡略化する。ＤＰＲリード制御部６１は、ＲＤＭＡＣ６０が起動されると、図９に示すように、レジスタ５６にＣＰＵ２４によって設定された先頭のディスクリプタのアドレスである初期値のディスクリプタポインタ（ＤＰＲポインタ）をレジスタ５６からロードし（ステップＳ１０１）、メモリ２６の該初期値のディスクリプタポインタ（ＤＰＲポインタ）に設定されているバンドのアドレスを読み取って内部レジスタに設定する（ステップＳ１０２）。次に、ＤＰＲリード制御部６１は、初期値のディスクリプタポインタ（ＤＰＲポインタ）に記載されているアドレスをディスクリプタアドレスバス（ＤＰＲアドレスバス）に設定し、メモリＩ／Ｆ５２にディスクリプタリードトリガ（ＤＰＲリードトリガ）を発行する（ステップＳ１０４）。メモリＩ／Ｆ５２は、ステップＳ１０３で設定されたディスクリプタアドレスのリードコマンドをメモリ５２に発行し、ＤＰＲリード制御部６１は、発行したリードコマンドに対応するディスクリプタリードデータ（ＤＰＲリードデータ）の応答を待つ（ステップＳ１０５）。ＤＰＲリード制御部６１は、ディスクリプタリードデータを受け取ると、ディスクリプタ情報をＲＤＭＡＣ６０の必要な内部制御部に分配し（ステップＳ１０６）、ディスクリプタ情報（ＳＡ１／ＳＩＺＥ１／ＮＤＰ１／ＭＯＤＥ１）をＤＰＲリード制御部６１内部で保持（ラッチ）する（ステップＳ１０７）。
【００６８】
ＤＰＲリード制御部６１は、ディスクリプタ情報をラッチすると、図１０に示すように、ライトカウント終了通知と次バンド転送許可信号NEXTの通知のいずれかを受け取るまで待ち（ステップＳ２０１）、次バンド転送許可信号NEXTの通知があると、ディスクリプタ情報のＮＤＰを確認する（ステップＳ１０９）。
【００６９】
ステップＳ２０１で、ライトカウント終了通知があると、ＤＰＲリード制御部６１は、ＳＩＺＥ分の圧縮データ、すなわち、ディスクリプタで指定されている指定データサイズ分の圧縮データをメモリ２６からメモリリードしたと判断して、リードカウンタ５４ａからのリードカウント終了通知を待ち（ステップＳ２０２）、リードカウント終了通知を受け取ると、バッファ５５ａ、５５ｂは空になったと判断して、次のバンドの圧縮データをリードするために、ディスクリプタ情報のＮＤＰを確認する（ステップＳ１０９）。
【００７０】
ステップＳ１０９で、ディスクリプタ情報のＮＤＰが「０」以外であると、ＤＰＲリード制御部５１は、全ての圧縮ディスクリプタの終端ではないと判断して、ＮＤＰが示しているアドレスを内部レジスタに設定し（ステップＳ１１０）、図９のステップＳ１０４に戻って、ディスクリプタリードトリガ（ＤＰＲリードトリガ）のメモリＩ／Ｆ５２への発行から上記同様に処理する（ステップＳ１０４〜Ｓ１０７、Ｓ２０１、Ｓ２０２、Ｓ１０９）。
【００７１】
そして、ステップＳ１０９で、ディスクリプタ情報のＮＤＰが「０」であると、ＤＰＲリード制御部５１は、全圧縮データの終了であると判断して、処理を終了する。
【００７２】
すなわち、図１１に示すようにメモリ２６に圧縮データとディスクリプタ（ＤＰＲ）が記録されている場合、すなわち、ディスクリプタで指定されているデータサイズと、可変長圧縮データのデータサイズが同じで、終端符号ＥＯＩ以降に冗長データが存在しない場合、図１２に示すように、圧縮データの終端符号ＥＯＩ以降のダミーデータ（冗長データ）をリードしないだけであると、ファーストコピーの時間を短縮することはできるが、圧縮データのバンド１の最終データが終端符号ＥＯＩであると、バンド２のリード途中で次バンド(バンド３)へ飛んでしまうおそれがある。
【００７３】
ところが、上述のように、ＤＰＲリード制御部６１が、ステップＳ２０１で、リードトグル制御部５４のリードカウンタ５４ａからのライトカウント終了通知があったときに、図１３に示すように、次バンド転送許可信号NEXTがアサートされない場合、ステップＳ２０２で、リードカウント終了通知を待つことで、バッファ５５ａ、５５ｂが空になるまで、次バンドのディスクリプタをリードしない。したがって、圧縮データの各バンドの最終データが終端符号ＥＯＩであっても、圧縮データのメモリ２６からの読み取り速度を向上させることができるとともに、リード途中で次のバンドに飛んでしまうことを防止することができ、ファーストコピー時間を短縮しつつ、適切な圧縮データの読み取りを行うことができる。
【００７４】
このように、本実施例の複合装置１は、リードトグル制御部５４が、バッファ５５ａ、５５ｂから読み出した圧縮データをカウントして該カウント値がディスクリプタで指定されている指定データサイズ（ＳＩＺＥ）になると、リードカウント終了信号をＤＰＲリード制御部６１に出力するリードカウンタ５４ａを備えており、ＤＰＲリード制御部６１が、ライトカウント終了通知が入力されると、リードカウント終了信号が入力されるのを待って、次のディスクリプタと圧縮データの読み出しを行っている。
【００７５】
したがって、圧縮単位の圧縮データの各バンドの最終データが終端符号ＥＯＩである場合に、圧縮データの読み取り途中に次のバンドに飛んでしまうことを適切に防止することができ、ファーストコピー時間を短縮しつつ、適切な圧縮データの読み取りを行って、異常画像が発生することができる。
【実施例３】
【００７６】
図１４〜図１８は、本発明の画像処理装置、画像処理方法、画像処理プログラム及び記録媒体の第３実施例を示す図であり、図１４は、本発明の画像処理装置、画像処理方法、画像処理プログラム及び記録媒体の第３実施例を適用した複合装置１の要部ブロック構成図である。
【００７７】
なお、本実施例は、上記第１実施例の複合装置１と同様の複合装置に適用したものであり、本実施例の説明においては、第１実施例の複合装置１と同様の構成部分には、同一の符号を付して、その説明を省略または簡略化するとともに、図示しない部分についても、第１実施例の説明で用いた符号をそのまま用いて説明する。
【００７８】
図１４において、ＲＤＭＡＣ（リードＤＭＡ制御手段）７０は、第１実施例のＲＤＭＡＣ４４と同様のメモリＩ／Ｆ５２、ライトトグル制御部５３、バッファ５５ａ、５５ｂ及びレジスタ５６等を備えているとともに、ＤＰＲリード制御部（ディスクリプタリード制御手段）７１及びリードトグル制御部（バッファリード制御手段）７２を備えている。
【００７９】
ＤＰＲリード制御部７１及びリードトグル制御部７２には、伸長器４３からbusy信号が入力され、このbusy信号は、伸長器４３の内部バッファの空き状態を示すバッファエンプティ信号であって、伸長器４３の内部バッファが空になると、「０」になる。また、このＤＰＲリード制御部７１及びリードトグル制御部７２には、第１実施例の場合と同様に、伸長器４３から次バンド転送許可信号NEXTが入力される。なお、伸長器４３が出力する次データ転送許可信号としては、busy信号に限るものではなく、伸長器４３の動作の終了を示す動作終了信号であってもよい。
【００８０】
ＤＰＲリード制御部７１は、ディスクリプタのリードを行い、ディスクリプタ情報（ＳＡ／ＳＩＺＥ）をリードトグル制御部５４、ライトトグル制御部５３、メモリＩ／Ｆ５２へ分配する。また、ＤＰＲリード制御部７１は、ライトトグル制御部５３のライトカウント終了通知、busy信号、または、次バンド転送許可信号NEXTが通知されると、ディスクリプタのＮＤＰに記載されているアドレスをリードアクセスする。さらに、ＤＰＲリード制御部７１は、バッファ５５ａ、５５ｂの空き状況を元にディスクリプタのＤＰＲリードコマンドの先投げ個数を制御する。
【００８１】
メモリＩ／Ｆ５２及びライトトグル制御部５３は、第１実施例と同様である。
【００８２】
リードトグル制御部７２は、第１実施例と同様に、リードカウンタ５４ａを備えており、リードカウンタ５４ａは、上述のように、初期値をディレクトリのＳＩＺＥに設定されているデータサイズとして、バッファ５５ａ、５５ｂから読み込んだ圧縮データのデータ量だけダウンカウントする。リードトグル制御部５４は、リードカウンタ５４ａがカウント中は、伸長器４３に出力しているデータ有効信号dma_aliveをアサートし、カウンタ値が「０」になると、データ有効信号dma_aliveをネゲートするとともに、ＥＯＢパルスを後段の伸長器４３に通知する。また、リードトグル制御部５４は、次バンド転送許可信号NEXTがアサートされると、データ有効信号dma_aliveをネゲートし、リードカウンタ５４ａのリードカウントが「０」になる。この際、ＥＯＢパルスは後段へ出力しない。
【００８３】
次に、本実施例の作用を説明する。本実施例の複合装置１は、伸長器４３からのbusy信号に基づいて次バンドのリード制御を行う。
【００８４】
すなわち、ＤＰＲリード制御部７１は、図１５及び図１６に示すように、ディスクリプタリード処理を実行する。なお、図１５及び図１６において、第１実施例の図４に示したディスクリプタリード処理と同様の処理ステップには、同一のステップナンバを付与して、その説明を簡略化する。ＤＰＲリード制御部７１は、ＲＤＭＡＣ７０が起動されると、図１５に示すように、レジスタ５６にＣＰＵ２４によって設定された先頭のディスクリプタのアドレスである初期値のディスクリプタポインタ（ＤＰＲポインタ）をレジスタ５６からロードし（ステップＳ１０１）、メモリ２６の該初期値のディスクリプタポインタ（ＤＰＲポインタ）に設定されているバンドのアドレスを読み取って内部レジスタに設定する（ステップＳ１０２）。次に、ＤＰＲリード制御部７１は、初期値のディスクリプタポインタ（ＤＰＲポインタ）に記載されているアドレスをディスクリプタアドレスバス（ＤＰＲアドレスバス）に設定し、メモリＩ／Ｆ５２にディスクリプタリードトリガ（ＤＰＲリードトリガ）を発行する（ステップＳ１０４）。メモリＩ／Ｆ５２は、ステップＳ１０３で設定されたディスクリプタアドレスのリードコマンドをメモリ５２に発行し、ＤＰＲリード制御部７１は、発行したリードコマンドに対応するディスクリプタリードデータ（ＤＰＲリードデータ）の応答を待つ（ステップＳ１０５）。ＤＰＲリード制御部７１は、ディスクリプタリードデータを受け取ると、ディスクリプタ情報をＲＤＭＡＣ７０の必要な内部制御部に分配し（ステップＳ１０６）、ディスクリプタ情報（ＳＡ１／ＳＩＺＥ１／ＮＤＰ１／ＭＯＤＥ１）をＤＰＲリード制御部７１内部で保持（ラッチ）する（ステップＳ１０７）。
【００８５】
ＤＰＲリード制御部７１は、ディスクリプタ情報をラッチすると、図１６に示すように、ライトカウント終了通知と次バンド転送許可信号NEXTの通知のいずれかを受け取るのを待ち（ステップＳ３０１）、次バンド転送許可信号NEXTの通知があると、ディスクリプタ情報のＮＤＰを確認する（ステップＳ１０９）。
【００８６】
ステップＳ３０１で、ライトカウント終了通知があると、ＤＰＲリード制御部７１は、busy信号が「０」になるのを待ち（ステップＳ３０２）、busy信号が「０」になると、伸長器４３の内部バッファが空になったと判断して、次のバンドの圧縮データをリードするために、ディスクリプタ情報のＮＤＰを確認する（ステップＳ１０９）。
【００８７】
ステップＳ１０９で、ディスクリプタ情報のＮＤＰが「０」以外であると、ＤＰＲリード制御部５１は、全ての圧縮ディスクリプタの終端ではないと判断して、ＮＤＰが示しているアドレスを内部レジスタに設定し（ステップＳ１１０）、図１５のステップＳ１０４に戻って、ディスクリプタリードトリガ（ＤＰＲリードトリガ）のメモリＩ／Ｆ５２への発行から上記同様に処理する（ステップＳ１０４〜Ｓ１０７、Ｓ３０１、Ｓ３０２、Ｓ１０９）。
【００８８】
そして、ステップＳ１０９で、ディスクリプタ情報のＮＤＰが「０」であると、ＤＰＲリード制御部５１は、全圧縮データの終了であると判断して、処理を終了する。
【００８９】
すなわち、図１１に示したように、メモリ２６に圧縮データとディスクリプタ（ＤＰＲ）が記録されていて、ディスクリプタで指定されているデータサイズと、可変長圧縮データのデータサイズが同じで、終端符号ＥＯＩ以降に冗長データが存在しない場合、図１７に示すように、圧縮データの終端符号ＥＯＩ以降のダミーデータ（冗長データ）をリードしないだけであると、ファーストコピーの時間を短縮することはできるが、圧縮データのバンド１の最終データが終端符号ＥＯＩであって、バッファ遅延によって終端符号ＥＯＩの検知が遅れると、バンド２のリード途中で次バンド(バンド３)へ飛んでしまうおそれがある。
【００９０】
ところが、上述のように、ＤＰＲリード制御部７１が、ステップＳ３０１で、図１８に示すように、ライトカウント終了通知がライトトグル制御部５３から入っても、ステップＳ３０２で、伸長器４３からのbusy信号が「０」になるのを待つことで、伸長器４３の内部バッファが空になるまで、次バンドのディスクリプタをリードすることを防止する。したがって、分割圧縮データの各バンドの最終データが終端符号ＥＯＩであって、図１８に示すように、終端符号ＥＯＩの検出タイミングに誤差が発生しても、圧縮データのメモリ２６からの読み取り速度を向上させることができるとともに、リード途中で次のバンドに飛んでしまうことを防止することができ、ファーストコピー時間を短縮しつつ、適切な圧縮データの読み取りを行うことができる。
【００９１】
このように、本実施例の複合装置１は、ＤＰＲリード制御部６１が、ライトトグル制御部５３のライトカウンタ５３ａからライトカウント終了通知が入力されると、伸長器４３から次データ転送許可信号が入力されるのを待って、次のディスクリプタと圧縮データの読み出しを行っている。
【００９２】
したがって、伸長器４３の動作確認を行ってから次のバンドのディスクリプタのリードを行うことができ、圧縮データが最終バンドの最終データが終端符号ＥＯＩである場合にも、異常画像が発生することを適切に防止することができる。
【００９３】
また、本実施例の複合装置１は、伸長器４３が、次データ転送許可信号として、リードトグル制御部５４から送られてきた圧縮データを一時保管する内部バッファが空になったことを示すbusy（バッファエンプティ）信号、または／及び、圧縮データの伸長処理が終了したことを示す動作終了信号を出力している。
【００９４】
したがって、伸長器４３が次の圧縮データの処理を行うことができるか否かを適切に判断して、次のバンドのディスクリプタをリードすることができ、圧縮データが最終バンドの最終データが終端符号ＥＯＩである場合にも、異常画像が発生することを適切に防止することができる。
【００９５】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００９６】
本発明は、入力画像データを一旦可変長圧縮してメモリに保管した後に該メモリの圧縮データを伸長して出力する複写装置、複合装置等の画像処理装置、画像処理方法、画像処理プログラム及び記録媒体に利用することができる。
【符号の説明】
【００９７】
１  複合装置
２  コントローラ
３  エンジン部
１１  スキャナ
１２  プロッタ
２１、２２  ＡＳＩＣ
２３  ハードディスク
２４  ＣＰＵ
２５  操作部
２６  メモリ
３１  内部レジスタ
３２  スキャナＩ／Ｆ
３３  画像伸長器
３４  画像処理器
４１  圧縮器
４２  ＷＤＭＡＣ
４３  伸長器
４４  ＲＤＭＡＣ
４５  画像処理部
４６  ＷＤＭＡＣ
４７  内部レジスタ
４８  プロッタＩ／Ｆ
４９  ＲＤＭＡＣ
５１  ＤＰＲリード制御部
５２  メモリＩ／Ｆ
５２ａ  アドレス生成部
５３  ライトトグル制御部
５３ａ  ライトカウンタ
５４  リードトグル制御部
５４ａ  リードカウンタ
５５ａ、５５ｂ  バッファ
５６  レジスタ
６０  ＲＤＭＡＣ
６１  ＤＰＲリード制御部
７０  ＲＤＭＡＣ
７１  ＤＰＲリード制御部
７２  リードトグル制御部
【先行技術文献】
【特許文献】
【００９８】
【特許文献１】特開２００９−３３４２８号公報
【図１】
0005407912.tif 000002
【図２】
0005407912.tif 000003
【図３】
0005407912.tif 000004
【図４】
0005407912.tif 000005
【図５】
0005407912.tif 000006
【図６】
0005407912.tif 000007
【図７】
0005407912.tif 000008
【図８】
0005407912.tif 000009
【図９】
0005407912.tif 000010
【図１０】
0005407912.tif 000011
【図１１】
0005407912.tif 000012
【図１２】
0005407912.tif 000013
【図１３】
0005407912.tif 000014
【図１４】
0005407912.tif 000015
【図１５】
0005407912.tif 000016
【図１６】
0005407912.tif 000017
【図１７】
0005407912.tif 000018
【図１８】
0005407912.tif 000019
【図１９】
0005407912.tif 000020