(57)【要約】【課題】本発明は、データを圧縮して格納する場合のメモリ利用効率を向上させるデータ処理装置及びデータ処理方法に関する。【解決手段】データ処理装置１は、メモリ１２上の画像データをバンド単位で圧縮器５で圧縮して、該圧縮後のデータを、メモリ１２のトグルバッファを介してハードディスク６に転送して保管する場合、圧縮前よりも圧縮後の方がそのデータ量が多くなって圧縮率が悪化していることをフル検知部９が検出すると、該バンドデータについては、該圧縮器５による圧縮前のバンドデータをハードディスク６に転送して保管する。したがって、圧縮器５の圧縮率が悪い場合にも、最悪、圧縮前のデータ量を維持することができ、ハードディスク６の利用効率を向上させることができる。【選択図】          図１
2009055141.tif 000002
【特許請求の範囲】
【請求項１】
メモリ上の画像データをバンド単位で圧縮する圧縮手段と、該圧縮後のデータをトグルバッファを介して画像メモリに転送して保管するデータ転送手段と、該圧縮手段による該画像データの圧縮率を該バンド単位で監視する圧縮率監視手段と、を備え、該圧縮率監視手段が該圧縮前よりも圧縮後の方がそのデータ量が多くなって圧縮率が悪化していることを検出すると、該データ転送手段が、該バンドデータについては、該圧縮手段による圧縮前のバンドデータを該画像メモリに転送して保管することを特徴とするデータ処理装置。
【請求項２】
前記トグルバッファは、前記メモリ上の前記バンドのデータサイズと同じサイズであり、前記圧縮率監視手段は、前記圧縮後のデータが該トグルバッファのサイズを超えるか否かによって前記圧縮手段の圧縮率が悪化しているか否かを検出することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記圧縮率監視手段は、前記圧縮前のバンドのデータサイズをデータサイズレジスタに保管し、前記圧縮手段による該圧縮後のデータをカウントアップまたはカウントダウンして、該データサイズレジスタのデータサイズと該カウント値とに基づいて該圧縮手段による圧縮率が悪化しているか否かを検出することを特徴とする請求項１記載のデータ処理装置。
【請求項４】
圧縮率監視手段は、前記圧縮前のバンドのデータサイズと、該バンドデータの前記圧縮手段による圧縮後の書き込み先の前記トグルバッファの書き込みスタートアドレスから該圧縮前のデータサイズ分までの最終アドレスを該圧縮後のデータの書き込みアドレスが超えるか否かに基づいて該圧縮手段による圧縮率が悪化しているか否かを検出することを特徴とする請求項１記載のデータ処理装置。
【請求項５】
前記圧縮手段は、前記圧縮率監視手段が前記圧縮率が悪化していることを検出すると、一時圧縮動作を停止し、前記データ転送手段による前記データ転送が完了した後、圧縮動作を再開する際に、ディスクリプタアドレスを保持するレジスタ値が次のバンドのディスクリプタアドレスに変更されることにより、または、該ディスクリプタアドレスが次のバンドのディスクリプタアドレスに変更されることにより前記メモリ上の次のバンドの圧縮動作を再開することを特徴とする請求項１から請求項４のいずれかに記載のデータ処理装置。
【請求項６】
前記圧縮率監視手段は、前記圧縮手段の圧縮率が悪化していることを検出すると、その旨をディスクリプタへの書き戻し等の方法で通知することを特徴とする請求項１から請求項５のいずれかに記載のデータ処理装置。
【請求項７】
メモリ上の画像データをバンド単位で圧縮する圧縮処理ステップと、該圧縮後のデータをトグルバッファを介して画像メモリに転送して保管するデータ転送処理ステップと、該圧縮処理ステップでの画像データの圧縮率を該バンド単位で監視する圧縮率監視処理ステップと、を有し、該圧縮率監視手段が該圧縮前よりも圧縮後の方がそのデータ量が多くなって圧縮率が悪化していることを検出すると、該データ転送手段が、該バンドデータについては、該圧縮手段による圧縮前のバンドデータを該画像メモリに転送して保管することを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置及びデータ処理方法に関し、詳細には、データを圧縮して格納する場合のメモリ利用効率を向上させるデータ処理装置及びデータ処理方法に関する。
【背景技術】
【０００２】
複写装置、プリンタ装置、ファクシミリ装置、複合装置等の画像形成装置においては、入力された画像を可変長圧縮して、メモリに出力用として保存し、該メモリ上の符号を伸張して、印刷出力したりすることが行われている。そして、画像形成装置は、近年、複合化及びデジタル化に伴って、ＲＡＭ（Random Access Memory）等の半導体メモリを利用した画像制御が種々行われるようになってきている。例えば、複数枚の画像を読み込んでメモリに蓄積した後、指示された順番に並べ換えて出力するいわゆる電子ソート処理等が行われるようになってきている。
【０００３】
このような画像制御処理を画像形成装置で行う場合、大容量のメモリを搭載すると、種々の画像制御処理を高速に処理することはできるが、コストが高くなるという問題がある。
【０００４】
各種画像制御処理を安価にかつ高速に行うには、例えば、ハードディスク等の安価で大容量の２次蓄積メモリを設ける方法、データを圧縮してメモリ容量を有効利用する方法及び画像を複数に分割してメモリ領域も画像１面分ではなく分割したサイズの数倍程度のみを確保しメモリをリングバッファで使用したりトグルバッファで使用する方法等が従来から用いられている。
【０００５】
そして、メモリにあるデータを高速に転送する技術としては、ＤＭＡ（Direct Memory Access）コントローラ（以下、単に、ＤＭＡＣという。）があり、ＤＭＡでは、一般的に、メモリアドレスと転送量を指定することで、データ転送を行う。
【０００６】
そして、上記画像を分割する方式を用いる場合やメモリ上に点在するデータに対して転送を行う場合には、ディスクリプタ方式を用いる。ディスクリプタ方式では、ＤＭＡＣはディスクリプタと呼ばれるメモリ上の識別子を読み込み、ディスクリプタに示されているスタートアドレスや転送量に基づいてデータ転送を行い、また、点在したデータを連続してアクセスできるように、ディスクリプタの中に次のディスクリプタが存在するポインタを格納して、一連の動作が終ると、次のディスクリプタへのポインタへアクセスを行い、そのポインタのディスクリプタからディスクリプタ情報を取得して、再び転送を行うという動作を繰り返す。
【０００７】
そして、従来、画像メモリに圧縮データと非圧縮データ（生データ）が混在して記憶されている場合に、ディスクリプタの設定に基づいて、圧縮データについては伸張処理を施した上で出力し、非圧縮データについては、直接出力する技術が提案されている（特許文献１参照）。
【０００８】
【特許文献１】特開２００１−１１３７５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記公報記載の従来技術にあっては、圧縮データと非圧縮データが混在する場合の伸張処理を適切に行いつつＤＭＡ転送しているが、データの圧縮時については考慮されておらず、改良の必要があった。
【００１０】
すなわち、従来技術は、圧縮時の圧縮率については考慮されておらず、トグルバッファに圧縮後のデータを出力する場合、圧縮器の出力した圧縮データを蓄積する画像メモリは、圧縮率にかかわらず、圧縮後のデータを蓄積しているため、画像メモリの利用効率が悪く、改良の必要があった。
【００１１】
そこで、本発明は、圧縮手段の圧縮率が悪い場合にもメモリ利用効率を向上させることのできるデータ処理装置及びデータ処理方法を提供することを目的としている。
【課題を解決するための手段】
【００１２】
請求項１記載の発明のデータ処理装置は、メモリ上の画像データをバンド単位で圧縮する圧縮手段と、該圧縮後のデータをトグルバッファを介して画像メモリに転送して保管するデータ転送手段と、該圧縮手段による該画像データの圧縮率を該バンド単位で監視する圧縮率監視手段と、を備え、該圧縮率監視手段が該圧縮前よりも圧縮後の方がそのデータ量が多くなって圧縮率が悪化していることを検出すると、該データ転送手段が、該バンドデータについては、該圧縮手段による圧縮前のバンドデータを該画像メモリに転送して保管することにより、上記目的を達成している。
【００１３】
この場合、例えば、請求項２に記載するように、前記トグルバッファは、前記メモリ上の前記バンドのデータサイズと同じサイズであり、前記圧縮率監視手段は、前記圧縮後のデータが該トグルバッファのサイズを超えるか否かによって前記圧縮手段の圧縮率が悪化しているか否かを検出してもよい。
【００１４】
また、請求項１の場合、例えば、請求項３に記載するように、前記圧縮率監視手段は、前記圧縮前のバンドのデータサイズをデータサイズレジスタに保管し、前記圧縮手段による該圧縮後のデータをカウントアップまたはカウントダウンして、該データサイズレジスタのデータサイズと該カウント値とに基づいて該圧縮手段による圧縮率が悪化しているか否かを検出してもよい。
【００１５】
さらに、請求項１の場合、例えば、請求項４に記載するように、圧縮率監視手段は、前記圧縮前のバンドのデータサイズと、該バンドデータの前記圧縮手段による圧縮後の書き込み先の前記トグルバッファの書き込みスタートアドレスから該圧縮前のデータサイズ分までの最終アドレスを該圧縮後のデータの書き込みアドレスが超えるか否かに基づいて該圧縮手段による圧縮率が悪化しているか否かを検出してもよい。
【００１６】
また、請求項１から請求項４の場合、例えば、請求項５に記載するように、前記圧縮手段は、前記圧縮率監視手段が前記圧縮率が悪化していることを検出すると、一時圧縮動作を停止し、前記データ転送手段による前記データ転送が完了した後、圧縮動作を再開する際に、ディスクリプタアドレスを保持するレジスタ値が次のバンドのディスクリプタアドレスに変更されることにより、または、該ディスクリプタアドレスが次のバンドのディスクリプタアドレスに変更されることにより前記メモリ上の次のバンドの圧縮動作を再開してもよい。
【００１７】
さらに、請求項１から請求項５の場合、例えば、請求項６に記載するように、前記圧縮率監視手段は、前記圧縮手段の圧縮率が悪化していることを検出すると、その旨をディスクリプタへの書き戻し等の方法で通知してもよい。
【００１８】
請求項７記載の発明のデータ処理方法は、メモリ上の画像データをバンド単位で圧縮する圧縮処理ステップと、該圧縮後のデータをトグルバッファを介して画像メモリに転送して保管するデータ転送処理ステップと、該圧縮処理ステップでの画像データの圧縮率を該バンド単位で監視する圧縮率監視処理ステップと、を有し、該圧縮率監視手段が該圧縮前よりも圧縮後の方がそのデータ量が多くなって圧縮率が悪化していることを検出すると、該データ転送手段が、該バンドデータについては、該圧縮手段による圧縮前のバンドデータを該画像メモリに転送して保管することにより、上記目的を達成している。
【発明の効果】
【００１９】
本発明によれば、メモリ上の画像データをバンド単位で圧縮手段で圧縮して、該圧縮後のデータを、トグルバッファを介して画像メモリに転送して保管する場合、圧縮前よりも圧縮後の方がそのデータ量が多くなって圧縮率が悪化すると、該バンドデータについては、該圧縮手段による圧縮前のバンドデータを該画像メモリに転送して保管するので、圧縮手段の圧縮率が悪い場合にも、最悪、圧縮前のデータ量を維持することができ、画像メモリの利用効率を向上させることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるから、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明において特に本発明を限定する旨の記載がない限り、これらの態様に限られるものではない。
【実施例１】
【００２１】
図１〜図５は、本発明のデータ処理装置及びデータ処理方法の一実施例を示す図であり、図１は、本発明のデータ処理装置及びデータ処理方法の一実施例を適用したデータ処理装置１の要部ブロック構成図である。
【００２２】
図１において、データ処理装置１は、アプリケーション２、メモリアロケータ３、ビデオ入力部４、圧縮器５、ハードディスク（ＨＤＤ）６、ライトＤＭＡＣ（Direct Memory Access Controller ：ＤＭＡコントローラ）７、リードＤＭＡＣ８、ライトＤＭＡＣ９、フル検知部１０、リードＤＭＡＣ１１及びメモリ１２等を備えている。
【００２３】
ビデオ入力部４は、ライトＤＭＡＣ７を備え、圧縮器５は、リードデータ８とライトＤＭＡＣ１０を備え、ハードディスク６は、リードＤＭＡＣ１１を備えている。ライトＤＭＡＣ７、１０は、アプリケーション２によってメモリ１２のディスクリプタ領域に書き込まれたディスクリプタを読み取って、該ディスクリプタに従って、データ（画像データ）をメモリ１２に書き込む。リードＤＭＡＣ８、１１は、アプリケーション２によってメモリ１２のディスクリプタ領域に書き込まれたディスクリプタを読み取って、該ディスクリプタに従って、データをメモリ１２から読み出す。
【００２４】
アプリケーション２は、データ処理装置１にデータ処理装置１としての一連の動作を行わせるためのソフトウェアであり、ビデオ入力部４、圧縮器５及びハードディスク６の動作をレジスタ操作で設定・起動する。
【００２５】
メモリアロケータ３は、メモリ１２を管理し、アプリケーション２からの要請（要求）に応じて、メモリ１２にデータ領域を確保し、各部４、５、６に対するディスクリプタ確保及びディスクリプタの作成を行う。メモリアロケータ３は、それぞれのＤＭＡＣ７、８、１０、１１のディスクリプタポインタをレジスタを介して通知する。
【００２６】
ビデオ入力部４、圧縮器５及びハードディスク６の各ＤＭＡＣ７、８、１０、１１は、処理が完了すると、メモリアロケータ３及びアプリケーション２に対してその旨を通知し、また、圧縮器５のライトＤＭＡＣ１０は、バンドの書き込みが終了すると、メモリアロケータ３に対して、その旨を通知し、一時停止する。メモリアロケータ３は、ライトＤＭＡＣ１０からの通知を受けると、その状況に応じた処理を行い、動作再開を圧縮器５にレジスタを経由して命令する。
【００２７】
メモリアロケータ３は、ビデオ入力部４、圧縮器５及びハードディスク６から起動・完了通知を受け取り、また、圧縮器５のライトＤＭＡＣ１０、フル検知部９からフル検知通知を受け取り、これらの通知から現在動作中のディスクリプタに対して操作を行ったり、ディスクリプタポインタを変更したりする。
【００２８】
また、メモリアロケータ３は、アプリケーション２からのメモリ確保要求に対して、管理下にあるメモリ１２のデータ領域を確保し、そのデータ領域を使用するためのディスクリプタを作成する。
【００２９】
さらに、メモリアロケータ３は、圧縮動作時に、圧縮器５のライトＤＭＡＣ１０が書き込むメモリ１２のバンドに対してデータがあふれてしまった場合の動作についての処理を行う。
【００３０】
ビデオ入力部４は、スキャナ等であって、アプリケーション２によって起動されて、画像データを取得し、取得した画像データをライトＤＭＡＣ７がメモリ１２のデータ領域に格納する。ビデオ入力部４は、上記画像データのメモリ１２への入力が完了すると、メモリアロケータ３及びアプリケーション２に完了通知を行う。
【００３１】
圧縮器５は、アプリケーション２によって起動され、リードＤＭＡＣ８がメモリ１２から読み込んだ画像データを所定の圧縮方式で圧縮する。すなわち、メモリ上の画像データをバンド単位で圧縮する圧縮処理を行う圧縮手段として機能している。ライトＤＭＡＣ１０は、圧縮器５の圧縮した画像データを、メモリ１２上のディスクリプタで指定されているデータ領域に書き込み、圧縮器５は、一連の処理が完了するとアプリケーション２に完了通知を行う。
【００３２】
フル検知部９は、ライトＤＭＡＣ１０に接続されており、ライトＤＭＡＣ１０による圧縮器５で圧縮された画像データのメモリ１２のデータ領域への書き込みを監視して、ライトＤＭＡＣ１０が、ディスクリプタに記載されたデータサイズまで画像データの書き込みをメモリ１２に行うと、圧縮器５に該メモリ１２のデータ領域へはこれ以上の書き込みができない旨、すなわち、メモリフルを通知する。フル検知部９は、圧縮手段による該画像データの圧縮率を該バンド単位で監視する圧縮率監視処理を行う圧縮率監視手段として機能している。
【００３３】
すなわち、ライトＤＭＡＣ１０が圧縮器５側から起動が通知されると、保持しているディスクリプタポインタレジスタに基づいてメモリ１２上からディスクリプタをリードするが、このとき、フル検知部９は、該ディスクリプタに記録されているバンドのデータサイズをダウンカウントレジスタアップカウントレジスタ等のデータサイズレジスタに保持する。フル検知部９は、圧縮器５から送られてきた圧縮後の画像データをライトＤＭＡＣ１０がメモリ１２のデータ領域に転送する毎に、転送したデータサイズ分だけ、保持しているダウンカウントレジスタから減算する。フル検知部９は、ダウンカウントレジスタが「０」になると、圧縮器５に対して、メモリフルを通知する。または、フル検知部９は、圧す区後の画像データをカウントして、カウントしたデータ量がアップカウントレジスタのデータ量を超えると、メモリフルと判断して通知する。
【００３４】
なお、フル検知部９は、圧縮器５の圧縮率の検出を上記方法で検出するものに限るものではなく、例えば、トグルバッファＴａ、Ｔｂ（図２参照）を、メモリ１２上のバンドのデータサイズと同じサイズとし、圧縮後のデータが該トグルバッファＴａ、Ｔｂのサイズを超えるか否かによって圧縮器５の圧縮率が悪化しているか否かを検出してもよい。
【００３５】
また、フル検知部９は、圧縮前のバンドのデータサイズと、該バンドデータの圧縮器５による圧縮後の書き込み先のトグルバッファＴａ、Ｔｂの書き込みスタートアドレスから該圧縮前のデータサイズ分までの最終アドレスを該圧縮後のデータの書き込みアドレスが超えるか否かに基づいて圧縮器５による圧縮率が悪化しているか否かを検出してもよい。
【００３６】
そして、圧縮器５は、フル検知部９がメモリフルを検知してメモリフルを通知してくる前に、圧縮データのメモリ１２への転送が完結すると、ライトＤＭＡＣ１０に対してディスクリプタに、圧縮データが完結した旨を記述するために、ディスクリプタ上の書き戻しフラグを立てる。また、フル検知部９がダウンカウントしていた値を、ディスクリプタのデータサイズの記述されていた箇所に書き戻すことで、アプリケーション２及びメモリアロケータ３に、圧縮後のデータサイズを通知する。
【００３７】
ハードディスク（画像メモリ）６は、アプリケーション２によって起動され、リードＤＭＡＣ１１がメモリ１２上に書き込まれた圧縮後の画像データをハードディスク６に転送する。
【００３８】
上記ライトＤＭＡＣ７、リードＤＭＡＣ８、ライトＤＭＡＣ１０及びリードＤＭＡＣ１１Ｈａ、全体として、圧縮後のデータをトグルバッファＴａ、Ｔｂを介して画像メモリであるハードディスク６に転送して保管するデータ転送処理を行うデータ転送手段として機能している。
【００３９】
そして、このデータ処理装置１は、上記データ転送処理を、図２に示すように行う。なお、図２では、メモリ１２のビデオ入力部４からの画像データの書き込まれるデータ領域を１２ａ〜１２ｎとし、圧縮器５で圧縮後の画像データの書き込まれるメモリ１２のトグルメモリ領域を１２Ｔａ、１２Ｔｂとする。
【００４０】
図２において、データ処理装置１は、ビデオ入力部４から出力されたデータを、ライトＤＭＡＣ７が、メモリ１２のデータ領域１２ａからデータ領域１２ｎに順次書き込み、圧縮器５のリードＤＭＡＣ８が、メモリ１２のデータ領域１２ａ〜１２ｎに書き込まれたデータを順次圧縮器５に読み込む。圧縮器５がリードＤＭＡＣ８から入力される画像データを圧縮すると、この圧縮後の画像データをライトＤＭＡＣ１０が、メモリ１２のトグルメモリ領域１２Ｔａまたはトグルメモリ領域Ｔｂに転送して保管する。そして、リードＤＭＡＣ１１が、このトグルメモリ領域Ｔａまたはトグルメモリ領域Ｔｂの圧縮後の画像データを順次読み出して、ハードディスク６に書き込む。このトグルメモリ領域Ｔａとトグルメモリ領域Ｔｂは、圧縮器５とハードディスク６との間で排他的に利用され、圧縮器５がトグルメモリ領域Ｔａをライトしている場合は、ハードディスク６は、トグルメモリ領域Ｔｂをリードできる。
【００４１】
次に、本実施例の作用を説明する。本実施例のデータ処理装置１は、圧縮器５の圧縮率に応じて圧縮後のデータと圧縮前のデータを切り替えてメモリ１２を介してハードディスク６に書き込んで、ハードディスク６の利用率を向上させる。
【００４２】
すなわち、データ処理装置１は、図３に示すように、まず、アプリケーション２がメモリアロケータ３にメモリ１２の確保を要求し（ステップＳ１０１）、メモリアロケータ３が、管理下のメモリ１２にデータ領域（図２のデータ領域１２ａ〜１２ｎ、トグルメモリ領域Ｔａとトグルメモリ領域Ｔｂ）を確保すると、確保したメモリ領域１２ａ〜１２ｎ、Ｔａ、Ｔｂに対応したディスクリプタを要求されたバンド分作成する（ステップＳ１０２）。
【００４３】
次に、メモリアロケータ３は、各部（図３では、各部のことを各ユニットと記載している。）４〜６に対する先頭のディスクリプタのアドレスをそれぞれのユニット（各部）に通知し（ステップＳ１０３）、アプリケーション２に対してメモリ１２にデータ領域を確保した旨を通知する（ステップＳ１０４）。
【００４４】
アプリケーション２は、各部（各ユニット）４〜６に必要な設定を行い（ステップＳ１０５）、まず、ビデオ入力部４を起動させる（ステップＳ１０６）。ビデオ入力部４は、起動されると、データの入力を行い、ライトＤＭＡＣ７によって、ディスクリプタで指定されているデータ領域１２ａ〜１２ｎにデータを書き込み、処理が終わると、その旨をアプリケーション２に通知する（ステップＳ１０７）。
【００４５】
アプリケーション２は、ビデオ入力部４から処理の終了の通知を受け取ると、圧縮器５を起動させ、圧縮器５からポーズを受け取ると、ハードディスク６を起動させる（ステップＳ１０８）。
【００４６】
圧縮器５は、そのリードＤＭＡＣ８がメモリ１２のデータ領域１２ａ〜１２ｎから読み取った１バンド分の画像データを圧縮して、トグルメモリ領域Ｔａ、Ｔｂに書き込むという１バンド分のライト操作が完了すると、動作を一時停止し、その旨をアプリケーション２とメモリアロケーション３に通知する（ステップＳ１０９）。
【００４７】
メモリアロケータ３は、圧縮器５のライトＤＭＡＣ１０のフル検知部９がメモリフルを検知したかチェックし（ステップＳ１１０）、フル検知部９がメモリフルを検知していないときには、圧縮器５のライトＤＭＡＣ１０は、ディスクリプタに圧縮が完了した旨を書き込む、すなわち、同一アドレスへのディスクリプタの書き戻しを行う（ステップＳ１１１）。
【００４８】
メモリアロケータ３は、圧縮器５のライトＤＭＡＣ側で使用したディスクリプタをリードし（ステップＳ１１２）、ディスクリプタが書き戻されているかチェックする（ステップＳ１１３）。
【００４９】
ステップＳ１１０で、フル検知部９がメモリフルを検知したときには、圧縮器５のライトＤＭＡＣ１０は、ディスクリプタに圧縮が完了したことを記載することなく、メモリアロケータ３が、圧縮器５のライトＤＭＡＣ１０側で使用したディスクリプタをリードする（ステップＳ１１２）。
【００５０】
ステップＳ１１３で、ライトＤＭＡＣ１０の使用したディスクリプタが書き戻されていないと、メモリアロケータ３は、該バンドの圧縮器５での圧縮率が悪かったことを認識し（ステップＳ１１４）、ハードディスク６のリードＤＭＡＣ１１のディスクリプタレジスタを、圧縮器５のリード側のディスクリプタを読むように変更する（ステップＳ１１５)。すなわち、リードＤＭＡＣ１１が、メモリ１２上の該バンドの圧縮器５による圧縮前の画像データを読み取るように、リードＤＭＡＣ１１のディスクリプタレジスタを変更し、リードＤＭＡＣ１１は、該ディスクリプタレジスタに基づいて圧縮前の画像データをメモリ１２から読み取ってハードディスク６に転送する。
【００５１】
メモリアロケータ３は、圧縮器５のライト側のディスクリプタレジスタ、すなわち、圧縮器５のライトＤＭＡＣ１０のディスクリプタレジスタを変更して、２度書きするようにディスクリプタポインタを変更し（ステップＳ１１６）、ハードディスク６のリードＤＭＡＣ１１が、圧縮前の画像データをメモリ１２から読み取ってハードディスク６に転送して、一時停止を通知してくるまで待って（ステップＳ１１７）、圧縮器５の動作が完了したかチェックする（ステップＳ１１８）。
【００５２】
すなわち、いま、図５に示すように、圧縮器５のリードＤＭＡＣ８がメモリ１２のデータ領域１２ａから読み込んだ１バンド目の画像データを圧縮器５が圧縮して、圧縮器５のライトデータ１０がメモリ１２のトグルメモリ１２Ｔａに書き込み、このトグルメモリ１２Ｔａのデータをハードディスク６のリードＤＭＡＣ１１がハードディスク６に読み込む。次に、圧縮器５のリードＤＭＡＣ８がメモリ１２のデータ領域１２ｂから読み込んだ２バンド目の画像データを圧縮器５が圧縮して、圧縮器５のライトデータ１０がメモリ１２のトグルメモリ１２Ｔｂに書き込み、このトグルメモリ１２Ｔｂのデータをハードディスク６のリードＤＭＡＣ１１がハードディスク６に読み込むが、途中で、フル検知部９が、トグルメモリ１２Ｔｂが一杯になった等によって圧縮率が悪化していることを検出すると、ハードディスク６のリードＤＭＡＣ１１は、圧縮器６のリードＤＭＡＣ８の読み込んだメモリ１２のデータ領域１２ｂからデータを読み込んで、ハードディスク６に転送する。一方、圧縮器５のライトＤＭＡＣ１０は、２バンド目の残りの圧縮データをトグルメモリＴｂに２度書きする。そして、次に、リードＤＭＡＣ８がメモリ１２のデータ領域１２ｃから読み込んだ３バンド目の画像データを圧縮器５が圧縮して、圧縮器５のライトデータ１０がメモリ１２のトグルメモリ１２Ｔａに書き込み、このトグルメモリ１２Ｔａのデータをハードディスク６のリードＤＭＡＣ１１がハードディスク６に読み込む。
【００５３】
ステップＳ１１３で、圧縮器５のライトＤＭＡＣ側で使用したディスクリプタが書き戻されているときには、メモリアロケータ３は、圧縮器５による圧縮がデータ量が圧縮前よりも増えることなく完了したと判断して、ハードディスク６のリードＤＭＡＣ１１が圧縮器５で圧縮されて圧縮器５のライトＤＭＡＣ１０が書き込んだトグルメモリ１２Ｔａまたはトグルメモリ１２Ｔｂの圧縮後の画像データを読み取ってハードディスク６に転送して、一時停止を通知してくるまで待って（ステップＳ１１７）、圧縮器５の動作が完了したかチェックする（ステップＳ１１８）。
【００５４】
ステップＳ１１８で、圧縮器５の動作が完了していないとき、すなわち、ビデオ入力部４から入力されて圧縮すべきデータがまだあるときには、メモリアロケータ３は、圧縮器５を再起動させ（ステップＳ１１９）、ハードディスク６を再起動させて（ステップＳ１２０）、ステップＳ１０９に戻って、上記同様に処理する（ステップＳ１０９〜Ｓ１２０）。
【００５５】
ステップＳ１１８で、圧縮器５の動作が完了すると、すなわち、ビデオ入力部４から入力されて圧縮すべきデータがなくなると、メモリアロケータ３は、ハードディスク６の動作を再開して（ステップＳ１２１）、ハードディスク６が動作を完了した旨をメモリアロケータ３とアプリケーション２に通知してくると、処理を終了する（ステップＳ１２２）。
【００５６】
このように、本実施例のデータ処理装置１は、メモリ１２上の画像データをバンド単位で圧縮器５で圧縮して、該圧縮後のデータを、メモリ１２のトグルバッファＴａ、Ｔｂを介して画像メモリであるハードディスク６に転送して保管する場合、圧縮前よりも圧縮後の方がそのデータ量が多くなって圧縮率が悪化すると、該バンドデータについては、該圧縮器５による圧縮前のバンドデータをハードディスク６に転送して保管している。
【００５７】
したがって、圧縮器５の圧縮率が悪い場合にも、最悪、圧縮前のデータ量を維持することができ、ハードディスク６の利用効率を向上させることができる。
【００５８】
また、本実施例のデータ処理装置１は、フル検知部１０が、圧縮前のバンドのデータサイズをデータサイズレジスタに保管し、圧縮器５による該圧縮後のデータをカウントアップまたはカウントダウンして、該データサイズレジスタのデータサイズと該カウント値とに基づいて該圧縮器５による圧縮率が悪化しているか否かを検出している。
【００５９】
したがって、簡単かつ適切に圧縮器５の圧縮率の悪化の有無を検出することができる。
【００６０】
さらに、本実施例のデータ処理装置１は、トグルバッファＴａ、Ｔｂが、メモリ１２上のバンドのデータサイズと同じサイズとして、フル検知部１０が、圧縮後のデータが該トグルバッファＴａ、Ｔｂのサイズを超えるか否かによって圧縮器５の圧縮率が悪化しているか否かを検出してもよい。
【００６１】
このようにすると、簡単かつ適切に圧縮器５の圧縮率の悪化の有無を検出することができる。
【００６２】
また、本実施例のデータ処理装置１は、フル検知部１０が、圧縮前のバンドのデータサイズと、該バンドデータの圧縮器５による圧縮後の書き込み先のトグルバッファの書き込みスタートアドレスから該圧縮前のデータサイズ分までの最終アドレスを該圧縮後のデータの書き込みアドレスが超えるか否かに基づいて該圧縮器５による圧縮率が悪化しているか否かを検出してもよい。
【００６３】
このようにすると、安価かつ適切に圧縮器５の圧縮率の悪化の有無を検出することができる。
【００６４】
さらに、本実施例のデータ処理装置１は、フル検知部１０が圧縮率が悪化していることを検出すると、圧縮器５が、一時圧縮動作を停止し、データ転送が完了した後、圧縮動作を再開する際に、ディスクリプタアドレスを保持するレジスタ値が次のバンドのディスクリプタアドレスに変更されることにより、または、該ディスクリプタアドレスが次のバンドのディスクリプタアドレスに変更されることによりメモリ１２上の次のバンドの圧縮動作を再開している。
【００６５】
したがって、適切に次のバンドの圧縮処理を開始することができ、適切な圧縮処理を行うことができる。
【００６６】
また、本実施例のデータ処理装置１は、フル検知部１０が、圧縮器５の圧縮率が悪化していることを検出すると、その旨をディスクリプタへの書き戻し等の方法で通知している。
【００６７】
したがって、ユーザが圧縮状態を確認することができ、利用性を向上させることができる。
【００６８】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記のものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００６９】
本発明は、メモリをトグルで利用して圧縮データを書き込んでハードディスク等の画像メモリに格納する場合に、メモリの利用効率を向上させつつ適切に圧縮するプリンタ装置、複合装置等のデータ処理装置及びデータ処理方法に利用することができる。
【図面の簡単な説明】
【００７０】
【図１】本発明の一実施例を適用したデータ処理装置の要部ブロック構成図。
【図２】図１のデータ処理装置による圧縮・データ転送処理の説明図。
【図３】図１のデータ処理装置による圧縮・データ転送処理を示すフローチャート。
【図４】図３の圧縮・データ転送処理の続きの処理を示すフローチャート。
【図５】図３及び図４の圧縮・データ転送処理の圧縮率が悪化した場合の説明図。
【符号の説明】
【００７１】
１  データ処理装置
２  アプリケーション
３  メモリアロケータ
４  ビデオ入力部
５  圧縮器
６  ハードディスク（ＨＤＤ）
７  ライトＤＭＡＣ
８  リードＤＭＡＣ
９  ライトＤＭＡＣ
１０  フル検知部
１１  リードＤＭＡＣ
１２  メモリ
【図１】
2009055141.tif 000003
【図２】
2009055141.tif 000004
【図３】
2009055141.tif 000005
【図４】
2009055141.tif 000006
【図５】
2009055141.tif 000007