画像形成装置及び画像処理方法
【課題】本発明は、画像圧縮処理を行って画像を一旦保管した後に画像形成する画像形成装置及び画像処理方法に関する。
【解決手段】画像形成装置1は、データ圧縮処理部24による圧縮処理での符号量及び符号用ディスクリプタ情報等の圧縮情報を圧縮情報メモリ書き戻し部26がメモリ2に書き戻し、該書き戻された圧縮情報を利用してデータ圧縮処理部24が圧縮処理を行う。したがって、画像データの1ページを複数のバンドに分けて可変長圧縮する場合にも、圧縮処理のためのパラメータ設定やデータ圧縮処理部24の起動等のソフトウェアによる処理を省いて処理効率を向上させることができる。
【解決手段】画像形成装置1は、データ圧縮処理部24による圧縮処理での符号量及び符号用ディスクリプタ情報等の圧縮情報を圧縮情報メモリ書き戻し部26がメモリ2に書き戻し、該書き戻された圧縮情報を利用してデータ圧縮処理部24が圧縮処理を行う。したがって、画像データの1ページを複数のバンドに分けて可変長圧縮する場合にも、圧縮処理のためのパラメータ設定やデータ圧縮処理部24の起動等のソフトウェアによる処理を省いて処理効率を向上させることができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置及び画像処理方法に関し、詳細には、画像圧縮処理を行って画像を一旦保管した後に画像形成する画像形成装置及び画像処理方法に関する。
【背景技術】
【0002】
スキャナで読み取られた画像をプロッタで印刷出力する場合、スキャナによってRGB点順次で読み取られた画像を画像処理して、プロッタで出力するためのCMYK面順次の画像に変換するが、RGB点順次画像をCMYK面順次画像に変換する過程では、C,M,Y,Kそれぞれの画像データを同時に生成する。
【0003】
そして、スキャナ、複写装置等の画像処理装置においては、スキャナで読み取った画像を圧縮処理して一旦メモリに蓄積し、その後、メモリから圧縮データを読み出し、リアルタイムに伸長してプロッタに出力することが行われている。
【0004】
この画像を圧縮処理する際には、C,M,Y,Kの画像が1ページ分画像処理されてから圧縮処理を開始するのでは、ファーストコピーの速度が遅くなり、また、1ページ分の画像を1つの符号として圧縮すると、ページの一部分を復号する場合にも1ページ分全体の復号処理が必要になる。さらに、C,M,Y,Kの画像が1ページ分画像処理されるためには、各色1ページ分のメモリ領域を確保しないと、画像処理が開始できない。
【0005】
そこで、従来から、1ページを複数のバンドに分けて画像処理することが行われている。
【0006】
また、従来、プリンタエンジンへの画像データの転送が間に合わない圧縮率であると、圧縮後の符号(画像データ)を格納するメモリを複数に分け、画像データの読み出し時には、該複数のメモリを同時にアクセスすることで、画像の取り込みが間に合わなくなることを防ぐ技術が提案されている(特許文献1参照)。
【0007】
【特許文献1】特開2005−223663号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、上記従来技術にあっては、画像データの圧縮を効率的にかつ高速に行う上で、改良の必要があった。
【0009】
すなわち、従来の画像データの1ページを複数のバンドに分けて画像処理する技術を利用して、画像データを圧縮する場合、一度に圧縮する画像データサイズが小さくなるため、圧縮処理のためのパラメータ設定、圧縮器の起動等の制御回路によるソフトウェア処理が頻発し、処理効率を低下させて、処理速度を向上させる上で、改良の必要があった。
【0010】
また、特許文献1記載の従来技術にあっては、圧縮後の画像データを物理的に複数のメモリに分けて格納することで処理速度の向上を図っているため、物理的に異なるメモリを複数個必要とし、メモリの利用効率が悪いだけでなく、コストが高くなるという問題がある。
【0011】
そこで、本発明は、メモリの利用効率を向上させつつ、画像圧縮処理速度を向上させることのできる画像形成装置及び画像処理方法を提供することを目的としている。
【課題を解決するための手段】
【0012】
請求項1記載の発明の画像形成装置は、メモリ上に符号用メモリ領域を確保するメモリ確保手段と、該確保された符号用メモリ領域の情報等に基づいて該メモリに元画像用ディスクリプタ及び符号用ディスクリプタ等の圧縮指示情報を設定する圧縮指示情報設定手段と、該メモリから該元画像用ディスクリプタと該符号用ディスクリプタを読み出すディスクリプタ読出手段と、該ディスクリプタ読出手段の読み出した元画像用ディスクリプタに基づいて該メモリ上の元画像を所定の可変長圧縮方法で圧縮処理し該圧縮処理した符号を該メモリの該ディスクリプタ読出手段の読み出した符号用メモリ領域に書き込む圧縮手段と、該圧縮手段による圧縮処理での符号量及び符号用ディスクリプタ情報等の圧縮情報を前記メモリに書き戻す圧縮情報書き戻し手段とを備え、前記ディスクリプタ読出手段が前記圧縮指示情報設定手段で設定した圧縮情報を読み出して、該ディスクリプタ読出手段の読み出した圧縮情報に基づいて前記圧縮手段が圧縮処理を行うことにより、上記目的を達成している。
【0013】
この場合、例えば、請求項2に記載するように、前記画像形成装置は、前記圧縮処理の一時停止状態を保持する一時停止状態保持手段と、前記圧縮情報書き戻し手段が前記メモリに書き戻した前記圧縮情報を読み出す圧縮情報読出手段と、を備え、前記符号用メモリ領域の不足等の理由で前記圧縮処理の一時停止が発生すると、該一時停止状態保持手段が該一時停止状態を保持し、該一時停止状態中に、該圧縮情報読出手段が前記圧縮情報を読み出し、前記メモリ確保手段が該読み出された圧縮情報に基づいて前記符号用メモリ領域の再確保を行い、前記圧縮指示情報設定手段が該再確保された符号用メモリ領域情報等に基づいて前記圧縮指示情報を再設定し、該一時停止状態が解除されると、該再設定された圧縮指示情報に応じて前記圧縮手段による圧縮処理を再開してもよい。
【0014】
また、例えば、請求項3に記載するように、前記画像形成装置は、前記メモリ確保手段による前記符号用メモリ領域のメモリ確保量として適宜のメモリ量を指示するメモリ確保指示手段を、さらに備えていてもよい。
【0015】
さらに、例えば、請求項4に記載するように、前記画像形成装置は、過去の圧縮履歴等から圧縮対象の元画像データの圧縮率を予測して最適な符号用メモリ量を予測する符号量予測手段を備え、前記メモリ確保手段が、該符号量予測手段の予測した符号用メモリ量に応じた符号用メモリ領域を前記メモリに確保してもよい。
【0016】
また、例えば、請求項5に記載するように、前記画像形成装置は、前記圧縮手段での符号サイズ等の圧縮完了状態を解析する解析手段を備え、該解析手段が前記圧縮処理によって前記元画像データよりも前記符号が膨張したことを解析すると、該符号を破棄して該元画像データを前記メモリに格納してもよい。
【0017】
請求項6記載の発明の画像処理方法は、メモリ上に符号用メモリ領域を確保するメモリ確保工程と、該確保された符号用メモリ領域の情報等に基づいて該メモリに元画像用ディスクリプタ及び符号用ディスクリプタ等の圧縮指示情報を設定する圧縮指示情報設定工程と、該メモリから該元画像用ディスクリプタと該符号用ディスクリプタを読み出すディスクリプタ読出工程と、該ディスクリプタ読出工程で読み出された元画像用ディスクリプタに基づいて該メモリ上の元画像を所定の可変長圧縮方法で圧縮処理し該圧縮処理した符号を該ディスクリプタ読出工程で読み出された該メモリの符号用メモリ領域に書き込む圧縮工程と、前記圧縮工程による圧縮処理での符号量及び符号用ディスクリプタ情報等の圧縮情報を前記メモリに書き戻す圧縮情報書き戻し工程とを有し、前記ディスクリプタ読出工程において前記圧縮指示情報設定工程で設定した圧縮情報を読み出して、前記圧縮工程において該ディスクリプタ読出工程で読み出した圧縮情報に基づいて圧縮処理を行うことにより、上記目的を達成している。
【発明の効果】
【0018】
本発明によれば、圧縮手段による圧縮処理での符号量及び符号用ディスクリプタ情報等の圧縮情報をメモリに書き戻し、該書き戻された圧縮情報を利用して圧縮手段が圧縮処理を行うので、画像データの1ページを複数のバンドに分けて可変長圧縮する場合にも、圧縮処理のためのパラメータ設定や圧縮手段の起動等のソフトウェアによる処理を省いて処理効率を向上させることができ、処理速度を向上させることができる。
【発明を実施するための最良の形態】
【0019】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるから、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明において特に本発明を限定する旨の記載がない限り、これらの態様に限られるものではない。
【実施例1】
【0020】
図1〜図7は、本発明の画像形成装置及び画像処理方法の第1実施例を示す図であり、図1は、本発明の画像形成装置及び画像処理方法の第1実施例を適用した画像形成装置1の機能ブロック構成図である。
【0021】
図1において、画像形成装置1は、コピー装置、プリンタ、複合装置等であり、メモリ2、優先順位指示部3、メモリ領域確保部4、圧縮処理パラメータ設定部5、圧縮情報リード部6、圧縮処理完了状態解析部7、割り込み検知部8、圧縮処理起動部、圧縮処理再起動部10及び圧縮処理部11等を備えている。なお、図1には、後述する実施例で用いる符号量予測部12が破線で記載されている。
【0022】
圧縮処理部11は、圧縮パラメータ保持部21、元画像用ディスクリプタリード部22、符号用ディスクリプタリード部23、データ圧縮処理部24、圧縮処理シーケンス制御部25、圧縮情報メモリ書き戻し部26、一時停止状態保持部27及び割り込み発生部28等を備えている。
【0023】
画像形成装置1は、図示しないが、CPU(Central Processing Unit )、大容量不揮発性メモリ(ハードディスク等)及び画像形成エンジン等のハードウェアを備えており、CD(Compact Disc)、MO(光磁気ディスク)、CD−ROM(Compact Disc Read Only Memory )、CD−RW(Compact Disc Rewritable )、DVD(Digital Video Disk)、メモリカードフレキシブルディスク等の記録媒体に記録されている画像処理プログラムと必要なデータを、大容量不揮発性メモリに読み込んで格納して、適宜のOS(Operating System)上で実行することで、後述する画像処理方法を実行する画像形成装置1が構築されている。そして、上記メモリ2と圧縮処理部11は、ハードウェアで実装され、優先順位指示部3、符号量予測部12、メモリ領域確保部4、圧縮処理パラメータ設定部5、圧縮情報リード部6、圧縮処理完了状態解析部7、割り込み検知部8、圧縮処理起動部9、圧縮処理再起動部10及び後述する符号量予測部12は、ソフトウェアで実装されている。
【0024】
メモリ2は、RAM(Random Access Memory)等で構成され、圧縮元の画像データ(元画像データ)、圧縮後の符号(圧縮後画像データ)、元画像保存先のアドレス、サイズ、処理方法等の情報を保持する元画像用ディスクリプタ及び符号保存先のアドレス、サイズ、処理方法等の情報を保持する符号用ディスクリプタ等を保存するとともに、圧縮情報メモリ書き戻し部26によって書き戻されるデータ圧縮部24での圧縮処理によっる圧縮処理に関連する各種圧縮情報を保存する。なお、本実施例の画像形成装置1は、この圧縮情報メモリ書き戻し部26が、メモリ2の符号用ディスクリプタに圧縮情報を書き戻しているが、書き戻すメモリ2の領域としては、符号用ディスクリプタに限るものではなく、メモリ2の領域であって、書き戻された圧縮情報の場所を認識して、読み書きが可能な領域であればよい。
【0025】
優先順位指示部(メモリ確保指示手段)3は、画像形成装置1の保持するメモリ2のメモリ容量等に応じて、システムとしての動作速度を考慮しながら、符号を書き戻すために必要なメモリ量と処理方法を決定して、メモリ領域確保部4に通知する。
【0026】
メモリ領域確保部(メモリ確保手段)4は、優先順位指示部3から通知されるメモリ量と処理方法に基づいて符号書込用のメモリ領域をメモリ2に確保する。
【0027】
圧縮処理パラメータ設定部(圧縮指示情報設定手段)5は、メモリ領域確保部4によって確保されたメモリ2のメモリ領域のアドレス、サイズ、各バンド毎に一時停止割り込みを発生するか否か等の圧縮処理方法を元画像用ディスクリプタ及び符号用ディスクリプタに設定し、また、圧縮方法の指示を圧縮処理部11の圧縮パラメータ保持部21に設定する。
【0028】
圧縮パラメータ保持部21は、圧縮処理パラメータ設定部5によって設定された圧縮方法のパラメータを保持し、該保持した圧縮方法のパラメータをデータ圧縮処理部24に渡す。
【0029】
圧縮処理起動部9は、圧縮処理開始命令を圧縮処理シーケンス制御部25に発行し、圧縮処理シーケンス制御部25は、圧縮処理起動部9から圧縮処理開始命令または一時停止状態保持部27から一時停止を解除して圧縮処理を開始する命令があると、元画像用ディスクリプタリード部22にリード指示を行う。
【0030】
元画像用ディスクリプタリード部(ディスクリプタ読出手段)22は、圧縮処理シーケンス制御部25からリード指示があると、メモリ2から元画像用のディスクリプタ情報をリードし、該リードした情報をデータ圧縮処理部24、圧縮処理シーケンス制御部25に通知する。
【0031】
符号用ディスクリプタリード部(ディスクリプタ読出手段)23は、圧縮処理シーケンス制御部25からリード指示があると、メモリ2から符号用のディスクリプタ情報をリードし、該リードした情報をデータ圧縮処理部24、圧縮処理シーケンス制御部25に通知する。
【0032】
データ圧縮処理部(圧縮手段)24は、圧縮パラメータ保持部21、元画像用ディスクリプタリード部22及び符号用ディスクリプタリード部23から通知されたパラメータに従ってメモリ2上の元画像をリードし、圧縮処理した後、メモリ2に符号を書き戻す。この場合、データ圧縮処理部24は、元画像または符号用のディスクリプタに設定されている1バンドのデータを処理し終わると、圧縮処理シーケンス制御部25からの指示待ちとなる。
【0033】
圧縮処理シーケンス制御部25は、データ圧縮処理部24における圧縮処理状態と、元画像用ディスクリプタリード部22及び符号用ディスクリプタリード部23のディスクリプタ情報に従って次に行うべき動作を判断して、画像用ディスクリプタリード部22、符号用ディスクリプタリード部23、一時停止状態保持部27、割り込み発生部28及び圧縮情報メモリ書き戻し部26等に通知する。
【0034】
圧縮情報メモリ書き戻し部(圧縮情報書き戻し手段)26は、圧縮処理シーケンス制御部25において元画像1バンド分の圧縮処理が完了したと判断されると、元画像がどの程度の符号サイズになったか、符号用ディスクリプタの何バンド目で符号が完結したか等の圧縮情報をメモリ2、特に、符号用ディスクリプタに書き戻す。
【0035】
一時停止状態保持部(一時停止状態保持手段)27は、圧縮処理シーケンス制御部25において元画像の圧縮が全て完了していないにもかかわらず符号を書き込むためのメモリ領域(符号用メモリ領域)と該符号用メモリ領域を示す符号用ディスクリプタが用意されていないと判断された場合、メモリ領域確保と符号用ディスクリプタの用意をするために、一時的にデータ圧縮処理を停止した状態を保持する。
【0036】
割り込み発生部28は、一時停止状態保持部27において用意した符号用ディスクリプタとメモリ領域を使い切ったため、一時停止状態になったことを割り込み検知部8に通知し、また、圧縮処理シーケンス制御部25の用意した符号用ディスクリプタとメモリ領域を使い切ったため、中断したことを割り込み検知部8に通知し、さらに、圧縮処理シーケンス制御部25において全ての元画像の圧縮処理が終了したと判断されると、圧縮動作が終了したことを割り込み検知部8に通知する。なお、上記中断するか、一時停止するかは元画像用ディスクリプタに、圧縮処理パラメータ設定部5によって画像処理方法として設定されている。
【0037】
割り込み検知部8は、割り込み発生部28の発行した一時停止割り込みを検知し、圧縮情報リード部6に一時停止した状態の詳細情報をメモリ2からリードするよう促す。この一時停止品状態の詳細情報は、上記圧縮情報メモリ書き戻し部26によってメモリ2に書き戻された圧縮情報である。また、割り込み検知部8は、割り込み発生部28の発行した中断割り込みを検知し、圧縮情報リード部6に中断した状態の詳細情報をメモリ2からリードするよう促す。さらに、割り込み検知部8は、割り込み発生部28の発行した完了割り込みを検知し、圧縮情報リード部6に完了状態の詳細情報をメモリからリードするよう促す。
【0038】
圧縮情報リード部6は、圧縮情報メモリ書き戻し部26によってメモリ2に書き戻された圧縮後の符号サイズと符号用ディスクリプタの何バンド目で符号が完結したかの情報を読み出して、メモリ領域確保部4及び圧縮処理完了状態解析部7に渡す。
【0039】
圧縮処理再起動部10は、割り込み検知部8によって一時停止状態にあることを検知し、メモリ領域確保部4によってメモリ2のメモリ領域が再確保された後で、圧縮動作を再開するよう一時停止状態保持部27に通知する。
【0040】
圧縮処理完了状態解析部7は、圧縮情報リード部6の取得した情報から符号サイズや膨張した符号を特定し、優先順位指示部3に通知する。圧縮処理完了状態解析部7は、圧縮の結果、膨張した場合は、優先順位指示部3及びメモリ領域確保部4を介してメモリ2の符号を破棄し、元画像を利用する場合は、解析結果を用いて、ハードディスクに保存したり、印刷エンジンに転送したり等の出力処理を行う出力用のデータを決定する。
【0041】
次に、本実施例の作用を説明する。本実施例の画像形成装置1は、圧縮情報メモリ書き戻し部26で圧縮時の圧縮情報をメモリ2、具体的には、メモリ2の符号用ディスクリプタに書き戻すことで、ハードウェアである圧縮処理部11での連続処理を可能として、処理速度を向上させている。
【0042】
なお、本実施例においては、画像を以下の条件で可変長圧縮符号方式で圧縮する場合について、図2及び図3の画像圧縮処理を示すフローチャートに基づいて説明する。
条件1:符号の保存方法:符号が膨張した場合には、元画像を保存する。
条件2:メモリ確保方法:メモリ2のメモリ領域を、元画像:圧縮後符号=1:1で確保する。
条件3:圧縮完了判定方法:圧縮完了割り込みと一時停止割り込みを用いて圧縮完了判定を行う。
【0043】
画像形成装置1は、まず、図2に示すように、優先順位指示部3が、処理速度を優先させるために、符号化後の画像データである符号が元画像と同じサイズになってしまっても保存できるように、圧縮後の符号を保存するためのメモリ領域として、例えば、図4に示すように、元画像と同じサイズのメモリ領域(元画像:圧縮後符号=1:1)を確保させる指示(優先順位指示)をメモリ領域確保部4及び符号量予測部12に行う(ステップS101)。なお、ここで、処理速度を優先させるために、元画像と同じサイズのメモリ領域を符号保存用に確保しているのは、可変長符号の符号化アルゴリズムにもよるが、通常、元画像のサイズよりも符号のサイズが大きくなることは稀だからである。
【0044】
次に、メモリ領域確保部4が、優先順位指示部3から指示された符号用のメモリ領域をメモリ2のシステムメモリ領域の中から確保する(ステップS102)。
【0045】
メモリ領域確保部4は、メモリ2に元画像のサイズや先頭アドレスの書かれたディスクリプタと呼ばれる情報群を保存する。この元画像用ディスクリプタは、連続して保存する画像の枚数分用意され、ディスクリプタで指定される画像の一枚一枚は、元画像をさらに細かく分割したもの(バンド)であってもよく、この場合、元画像と同じバンド数分符号書込先として符号用メモリ領域を確保する。そして、ディスクリプタには、それぞれ次に処理するバンドを示すディスクリプタの先頭アドレスも合わせて記録されているため、圧縮処理シーケンス制御部25は、1バンドの処理が終了すると、次のバンドのディスクリプタをリードするというchain動作を行い、連続して複数枚のバンドを圧縮処理することができる。メモリ領域確保部4は、同様に、圧縮後の符号を保存するために、上記確保したバンド(メモリ領域)を示すディスクリプタを作成し、メモリ2に保存するとともに、最終バンドの元画像用ディスクリプタへは、圧縮が完了しなかった場合には、一時停止するように設定する(ステップS103)。
【0046】
さらに、圧縮処理パラメータ設定部5が、例えば、画像の主走査長やメモリ幅、圧縮方式や圧縮パラメータ等、バンド間で共通のパラメータを作成して、圧縮パラメータ保持部21に保存し、また、一時停止解除後のパラメータを保存する(ステップS104)。これらのパラメータは、圧縮動作を行う際にデータ圧縮処理部24から参照されるため、圧縮処理パラメータ設定部5は、これらのパラメータをレジスタに保持する。すなわち、圧縮処理パラメータ設定部5は、ディスクリプタやレジスタに、ハードウェアである圧縮処理部11で処理する圧縮元画像データと圧縮後の符号、圧縮方法等の設定を行う。この場合、図4に示すように、圧縮処理パラメータ設定部5は、複数の符号をソフトウェアの介在無しでハードウェアである圧縮処理部11により連続して圧縮処理動作を行えるように、ディスクリプタを複数用意し、ディスクリプタ間がchainするように設定する。
【0047】
そして、圧縮処理に必要な全てのパラメータがメモリ2及びレジスタに保存されると、圧縮処理パラメータ設定部5が、圧縮処理起動部9に圧縮処理を開始するよう命令を発行し(ステップS105)、圧縮処理起動部9が圧縮処理シーケンス制御部25に圧縮処理開始命令を出し、圧縮処理シーケンス制御部25が、元画像用ディスクリプタリード部22にディスクリプタのリード命令を出して、圧縮処理に先立って、まず、元画像用ディスクリプタリード部22が、1バンド目の元画像用ディスクリプタをメモリ2からリードし(ステップS106)、符号用ディスクリプタリード部23が、1バンド目の符号用ディスクリプタをメモリ2からリードする(ステップS107)。
【0048】
必要なパラメータが揃うと、データ圧縮処理部24が、図4に示したように、圧縮処理を開始し、元画像用ディスクリプタにあるメモリ2上のアドレスから元画像をリードし、圧縮パラメータに従って圧縮処理して、圧縮処理した符号を符号用ディスクリプタに指示されたメモリ2のアドレスに書き戻す(ステップS108)。
【0049】
圧縮処理シーケンス制御部25は、データ圧縮処理部24による圧縮処理を開始すると、元画像1バンド分の圧縮処理が完了したかチェックし(ステップS109)、完了していないときには、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS110)、符号用のメモリ領域とディスクリプタがあるときには、ステップS107に戻って、符号用ディスクリプタをリードして、圧縮を継続して元画像1バンド分の圧縮が完了したかチェックする(ステップS107〜S109)。
【0050】
ステップS109で、符号用に用意したメモリ領域1バンドが埋まる前に元画像の1バンドの圧縮が完了すると、圧縮処理シーケンス制御部25は、元画像1バンドが圧縮の結果どんな大きさの符号になったかと、このバンドでの元画像の圧縮が終了したことを示すWBフラグ(ライトバックフラグ)をメモリ2上の符号用ディスクリプタに書き戻し(ステップS111)、全元画像の圧縮が完了したかチェックする(ステップS112)。すなわち、符号が元画像と比較して膨張した場合は、元画像1バンド分を圧縮し終わる前に符号書込用に用意した1バンドのメモリ領域(符号用メモリ領域)が一杯になるため、次の符号領域に符号を書き込むために次の符号用ディスクリプタをリードする処理に移行する。図2の処理では、元画像と符号用メモリ領域を1:1のサイズで用意しているので、この場合、処理中の元画像が膨張したことを示しており、この場合に、次の符号用バンドで元画像1バンドの残り部分の圧縮が終了すると、ステップS109で、YESとなり、元画像1バンドの圧縮が終了したときの符号用ディスクリプタに符号量とWBフラグが書き戻される(ステップS111)。
【0051】
次に、ステップS112で、全ての元画像の圧縮が完了していないときには、圧縮処理シーケンス制御部25は、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS113)、符号用のメモリ領域とディスクリプタがあるときには、ステップS106に戻って、元画像用ディスクリプタに記録された次の元画像用ディスクリプタの先頭アドレスを参照して、元画像用ディスクリプタを読み出して、同様に符号用ディスクリプタも次の新しいものを読み出し、元画像1バンドを符号化して新たな符号用メモリ領域に符号化されたデータを書き込む処理から上記同様に処理する(ステップS106〜S113)。すなわち、ステップS113において、符号用メモリ領域がまだ確保されている状態で、連続で処理する元画像のバンドがまだ残っている場合(YESの場合)、元画像用ディスクリプタに記録された次の元画像用ディスクリプタの先頭アドレスを参照してディスクリプタを読み出し(ステップS106)、同様に符号用ディスクリプタも次の新しいものを読み出して(ステップS107)、元画像1バンドを符号化して新たな符号用メモリ領域に符号化されたデータを書き込む処理を行う(ステップS108)。
【0052】
ステップS110で、元画像1バンド分の圧縮が完了していない状態で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、図5に示すように、圧縮処理を一時停止し(ステップS114)、また、ステップS112で、全ての元画像の圧縮が完了する前に、ステップS113で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、図3に示すように、圧縮処理シーケンス制御部25は、データ圧縮処理部24での圧縮処理を一時停止に移行させて、一時停止状態保持部27にメモリ領域確保と符号用ディスクリプタを用意するために、一時的にデータ圧縮処理を停止した状態を保持し(ステップS114)、割り込み発生部28に一時停止状態に入ったことを通知する(ステップS115)。すなわち、本実施例では、元画像と符号用メモリ領域を1:1のサイズで用意しているため、1バンドでも膨張が発生した場合には、圧縮処理が完了せず、一時停止状態となる。
【0053】
割り込み発生部28は、一時停止状態になったことを割り込み検知部8に通知し(ステップS116)、割り込み検知部8が一時停止状態になったことを検知すると、圧縮情報リード部6が、メモリ2から符号サイズとWBフラグを読み込んで、圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べて、一時停止に入ったときの元画像の圧縮進捗状況を判断する(ステップS117)。
【0054】
圧縮処理完了状態解析部7は、圧縮情報リード部6によって、圧縮が終了していない元画像のバンドがいくつあるかを解析すると、残っている元画像と同じサイズのメモリ領域を確保するように判断してメモリ領域確保部4にメモリ領域確保の優先順位指示を行い(ステップS118)、メモリ領域確保部4がメモリを確保する(ステップS119)。すなわち、図6に示すように、圧縮情報メモリ書き戻し部26の書き戻した情報から膨張した符号を書き込んだメモリ領域の情報を取得して、そのメモリ領域を新たに次の符号を書き込む領域として確保する。そして、本実施例では、符号が膨張した場合に元画像を保存するとともに、元画像と符号用メモリ領域を1:1で確保する条件としているため、既に膨張したことが分かっている符号を書き込んだメモリ領域を破棄し、残りの元画像の圧縮後の符号を書き込むためのメモリ領域として再利用することができる。
【0055】
次に、圧縮処理パラメータ設定部5は、確保し直したメモリ領域の情報を新たな符号用ディスクリプタとしてメモリに書き戻し(ステップS120)、必要に応じてレジスタへの符号化パラメータの変更を行って、レジスタに保持させ(ステップS121)、一時停止状態にある圧縮処理の再開の命令を圧縮再起動部11に出して(ステップS122)、図2に示すステップS106に戻って、元画像用ディスクリプタのリードから上記同様に処理する(ステップS106〜S122)。
【0056】
そして、図2のステップS112において、全ての元画像の圧縮が完了すると、図3に示すように、割り込み発生部28が、完了割り込みを割り込み検知部8に発生し(ステップS123)、割り込み検知部8は、完了割り込みを検知して、圧縮情報リード部6に通知する(ステップS124)。
【0057】
圧縮情報リード部6は、用意した符号用ディスクリプタを全て読み込み(ステップS125)、ステップS111で圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べる。これによって、各元画像が膨張したか、符号サイズはいくつになったかを知ることができる。すなわち、本実施例では、バンド毎に、膨張した場合は元画像を出力用(印刷出力用、ハードディスク等への保存出力用等)として保存し、小さくなった場合は符号を出力用として保存する。符号を保存する場合は、圧縮処理パラメータ設定部5は、ステップS125で読み込んだ圧縮後の符号サイズを、符号の属性として同時にメモリ2に保管する(ステップS126)。
【0058】
すなわち、本実施例の画像形成装置1は、圧縮で膨張した符号がない場合には、図4に示したように、元画像C,M,Y,Kの4バンドを1回のハードウェア起動で圧縮処理し、膨張した符号がなかったために、そのまま圧縮処理を完了する。この場合、WBフラグ及び符号量(圧縮サイズ)は、各符号用ディスクリプタに書き戻され、圧縮情報リード部6によって読み取られた符号用ディスクリプタ情報から全ての符号用ディスクリプタにWBフラグが立っており、元画像1バンドにつき符号1バンドが生成されたことが、圧縮処理完了状態解析部7によって判断される。また、保存される符号のサイズは、圧縮情報リード部6が、同時に読み込んで、その値を符号の属性情報として保管する。
【0059】
一方、本実施例の画像形成装置1は、圧縮で膨張して用意した符号用メモリ領域に書ききれないとき、例えば、図5に示したように、元画像C,M,Y,Kの4バンドのうち、2バンド目の元画像Mが膨張してしまったため、用意したM用の符号用メモリ領域に書ききれないときには、圧縮処理を一時停止する。すなわち、図5では、元画像Mが膨張し、符号用メモリ領域を2バンド分(または、2バンド目の途中まで)消費しており、圧縮情報メモリ書き戻し部26によるWBフラグと符号サイズの書き戻しは、符号ディスクリプタの2枚目には行われておらず、圧縮情報リード部6で、CPUがディスクリプタをリードした際、2枚目のディスクリプタにはWBフラグがないため、膨張したと判断することができる。
【0060】
そして、画像形成装置1は、図5のようにして圧縮処理を一時停止状態とすると、図6に示すように、元画像K用の符号用メモリ領域を再確保し、一時停止状態を解除して、圧縮を継続する。すなわち、一時停止状態ではWBフラグが3つ立っているので、用意した元画像C,M,Y,Kのうち、最後の元画像Kのみが圧縮を終了していないと判断することができ、図3のステップS119のメモリ領域再確保処理で、元画像Kと同じ大きさの符号用メモリ領域を符号M用であったメモリ領域に確保して、一時停止状態を解除する。すなわち、圧縮情報リード部6は、元画像Mが膨張していることが分かっているため、元画像Mの符号を書き込んだメモリ領域を破棄し、そのメモリ領域を符号K用に再確保して利用している。
【0061】
このように、本実施例の画像形成装置1は、データ圧縮処理部24による圧縮処理での符号量及び符号用ディスクリプタ情報等の圧縮情報を圧縮情報メモリ書き戻し部26がメモリ2に書き戻し、該書き戻された圧縮情報を利用してデータ圧縮処理部24が圧縮処理を行っている。
【0062】
したがって、画像データの1ページを複数のバンドに分けて可変長圧縮する場合にも、圧縮処理のためのパラメータ設定やデータ圧縮処理部24の起動等のソフトウェアによる処理を省いて処理効率を向上させることができ、処理速度を向上させることができる。
【0063】
また、本実施例の画像形成装置1は、元画像と符号用メモリ領域を1:1のサイズで用意しているので、画像の特性によっては稀な確率で膨張することはあるが、ほとんどの場合、一時停止状態になることもなく、一回のメモリ確保と圧縮処理起動動作のみで複数バンドの元画像を符号に圧縮することができ、データ圧縮処理部24の起動、メモリ確保処理の時間を大幅に削減することができ、処理速度を大幅に向上させることができる。
【0064】
さらに、本実施例の画像形成装置1は、符号用メモリ領域の不足等の理由で圧縮処理の一時停止が発生すると、一時停止状態保持部27が該一時停止状態を保持し、該一時停止状態中に、圧縮情報リード部6が圧縮情報メモリ書き戻し部26がメモリ2に書き戻した圧縮情報を読み出し、該読み出された圧縮情報に基づいてメモリ領域確保部4が符号用メモリ領域の再確保を行い、圧縮処理パラメータ設定部5が該再確保された符号用メモリ領域情報等に基づいて圧縮指示情報を再設定し、一時停止状態が解除されると、該再設定された圧縮指示情報に応じてデータ圧縮処理部24による圧縮処理を再開している。
【0065】
したがって、途中まで圧縮した元画像を最初から再圧縮する無駄を省くことができ、処理速度をより一層向上させることができる。
【0066】
また、本実施例の画像形成装置1は、優先順位指示部3が、ユーザの設定等に応じて符号用メモリ領域のメモリ確保量として適宜のメモリ量を指示し、メモリ領域確保部4が該指示に応じた符号用メモリ領域をメモリ2に確保している。
【0067】
したがって、圧縮後の符号のメモリ確保量と処理速度等の条件を考慮して、適宜設定された符号用メモリ領域のメモリ量を確保して、利用性を向上させつつ、処理速度を向上させることができる。
【0068】
さらに、本実施例の画像形成装置1は、圧縮処理での符号サイズ等の圧縮完了状態を圧縮処理完了状態解析部7で解析して、圧縮処理によって元画像データよりも符号が膨張したことを解析すると、該符号を破棄して該元画像データをメモリ2に格納している。
【0069】
したがって、データ保存容量を最小限に抑制することができるとともに、データ保存領域を一定サイズ以下にしてシステム設計することができ、コストを削減することができる。
【実施例2】
【0070】
図7〜図11は、本発明の画像形成装置及び画像処理方法の第2実施例を示す図であり、図7及び図8は、本発明の画像形成装置及び画像処理方法の第2実施例を適用した画像形成装置による画像圧縮処理を示すフローチャートである。
【0071】
なお、本実施例は、上記第1実施例の画像形成装置1と同様の画像形成装置に適用したものであり、本実施例の説明においては、上記第1実施例で用いた符号をそのまま用いて説明する。
【0072】
本実施例の画像形成装置1は、画像を以下の条件で可変長圧縮符号方式で圧縮する。
条件1:符号の保存方法:符号が膨張した場合には、元画像を保存する。
条件2:メモリ確保方法:メモリ2のメモリ領域を、元画像:圧縮後符号=4:1で確保する。メモリを再確保する場合にも、元画像1バンドの1/4のサイズの符号用バンドを4バンドセットで確保する。
条件3:圧縮完了判定方法:圧縮完了割り込みと一時停止割り込みを用いて圧縮完了判定を行う。
【0073】
すなわち、第1実施例の場合の条件と異なるのは、メモリ確保方法のみであり、第1実施例の場合、元画像:圧縮後符号=1:1であったものを、元画像:圧縮後符号=4:1としたものである。
【0074】
そこで、本実施例の説明においては、図7及び図8の画像圧縮処理のフローチャートにおいて、図2及び図3に示した第1実施例の画像圧縮処理のフローチャートと同様の処理ステップには、同一のステップ番号を付して、その説明を簡略化する。
【0075】
画像形成装置1は、図7において、まず、優先順位指示部3が、メモリ2の有効利用を図るために、符号化後の画像データである符号が元画像の1/4以下のサイズの場合に保存できるように、図9に示すように、圧縮後の符号を保存するためのメモリ領域として、元画像の1/4のサイズのメモリ領域(元画像:圧縮後符号=4:1)を確保させる指示(優先順位指示)をメモリ領域確保部4及び符号量予測部12に行う(ステップS201)。
【0076】
次に、メモリ領域確保部4が、優先順位指示部3から指示された符号用のメモリ領域として、元画像の1/4のサイズのメモリ領域を4バンド分符号書込先として確保する(ステップS202)。
【0077】
メモリ領域確保部4は、同様に、圧縮後の符号を保存するために、上記確保したバンド(メモリ領域)を示すディスクリプタを作成し、特に、最終バンドの元画像用ディスクリプタへは、圧縮が完了しなかった場合には、一時停止するよう設定して、メモリ2に保存する(ステップS103)。
【0078】
さらに、圧縮処理パラメータ設定部5が、例えば、画像の主走査長やメモリ幅、圧縮方式や圧縮パラメータ等、バンド間で共通のパラメータを作成して、圧縮パラメータ保持部21に保存し、また、一時停止解除後のパラメータをレジスタに保存する(ステップS104)。
【0079】
そして、圧縮処理に必要な全てのパラメータがメモリ2及びレジスタに保存されると、圧縮処理パラメータ設定部5が、圧縮処理起動部9に圧縮処理を開始するよう命令を発行し、圧縮処理起動部9が圧縮処理シーケンス制御部25に圧縮処理開始命令を出し、圧縮処理シーケンス制御部25が元画像用ディスクリプタリード部22にディスクリプタのリード命令を出して、圧縮処理に先立って、まず、元画像用ディスクリプタリード部22が、1バンド目の元画像用ディスクリプタをメモリ2からリードし(ステップS106)、符号用ディスクリプタリード部23が、1バンド目の符号用ディスクリプタをメモリ2からリードする(ステップS107)。
【0080】
必要なパラメータが揃うと、データ圧縮処理部24が、図9に示したように、圧縮処理を開始し、元画像用ディスクリプタにあるメモリ2上のアドレスから元画像をリードし、圧縮パラメータに従って圧縮処理して、圧縮処理した符号を符号用ディスクリプタに指示されたメモリ2のアドレスに書き戻す(ステップS108)。
【0081】
圧縮処理シーケンス制御部25は、データ圧縮処理部24による圧縮処理を開始すると、元画像1バンド分の圧縮処理が完了したかチェックし(ステップS109)、完了していないときには、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS110)、符号用のメモリ領域とディスクリプタがあるときには、ステップS107に戻って、符号用ディスクリプタをリードして、圧縮を継続して元画像1バンド分の圧縮が完了したかチェックする(ステップS107〜S109)。
【0082】
ステップS109で、符号用に用意したメモリ領域1バンドが埋まる前に元画像の1バンドの圧縮が完了すると、圧縮処理シーケンス制御部25は、元画像1バンドが圧縮の結果どんな大きさの符号になったかと、このバンドでの元画像の圧縮が終了したことを示すWBフラグ(ライトバックフラグ)をメモリ2上の符号用ディスクリプタに書き戻し(ステップS111)、全元画像の圧縮が完了したかチェックする(ステップS112)。
【0083】
ステップS112で、全ての元画像の圧縮が完了していないときには、圧縮処理シーケンス制御部25は、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS113)、符号用のメモリ領域とディスクリプタがあるときには、ステップS106に戻って、元画像用ディスクリプタに記録された次の元画像用ディスクリプタの先頭アドレスを参照して、元画像用ディスクリプタを読み出して、同様に符号用ディスクリプタも次の新しいものを読み出し、元画像1バンドを符号化して新たな符号用メモリ領域に符号化されたデータを書き込む処理から上記同様に処理する(ステップS106〜S113)。
【0084】
ステップS110で、元画像1バンド分の圧縮が完了していない状態で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、図8に示すように、圧縮処理を一時停止し(ステップS114)、また、ステップS113で、全ての元画像の圧縮が完了する前に、符号用のメモリ領域がなくなるか、図10に示すように、ディスクリプタが無くなると、圧縮処理シーケンス制御部25は、データ圧縮処理部24での圧縮処理を一時停止に移行させて、一時停止状態保持部27にメモリ領域確保と符号用ディスクリプタを用意するために、一時的にデータ圧縮処理を停止した状態を保持し(ステップS114)、割り込み発生部28に一時停止状態に入ったことを通知する(ステップS115)。すなわち、本実施例の場合、ディスクリプタが無くなることで、元画像を圧縮した符号が膨張したことが分かる。
【0085】
割り込み発生部28は、一時停止状態になったことを割り込み検知部8に通知し(ステップS116)、割り込み検知部8が一時停止状態になったことを検知すると、圧縮情報リード部6が、メモリ2から符号サイズとWBフラグを読み込んで、圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べて、一時停止に入ったときの元画像の圧縮進捗状況を判断する(ステップS117)。
【0086】
圧縮処理完了状態解析部7は、圧縮情報リード部6によって、圧縮が終了していない元画像のバンドがいくつあるかを解析すると、残っている元画像の1/4のサイズのメモリ領域を元画像の残りバンド数分確保するように判断してメモリ領域確保部4にメモリ領域確保の優先順位指示を行い(ステップS203)、メモリ領域確保部4がメモリを確保する(ステップS204)。すなわち、図11に示すように、圧縮情報メモリ書き戻し部26の書き戻した情報から膨張した符号を書き込んだメモリ領域の情報を受け取り、そのメモリ領域を新たに次の符号を書き込む領域として確保する。そして、本実施例では、符号が膨張した場合に元画像を保存するとともに、元画像と符号用メモリ領域を4:1で確保する条件としているため、符号が膨張したかどうかの判断は、符号が5バンド以上になることを確認してからでなければ行うことができない。したがって、膨張したことが判明するまでは、すなわち、1バンドの元画像が符号用バンド5枚以上になるまでは、そのメモリ領域を再利用することはできない。例えば、図11に示すように、符号用ディスクリプタが無くなってしまったときには、膨張が確定していない状態で、一時停止状態になり、この場合は、新たなメモリ領域を確保し直さなければならない。
【0087】
次に、圧縮処理パラメータ設定部5は、確保し直したメモリ領域の情報を新たな符号用ディスクリプタとしてメモリに書き戻し(ステップS120)、必要に応じてレジスタへの符号化パラメータの変更を行って、レジスタに保持させ(ステップS121)、一時停止状態にある圧縮処理の再開の命令を圧縮再起動部11に出して(ステップS122)、ステップS106に戻って、元画像用ディスクリプタのリードから上記同様に処理する(ステップS106〜S122)。
【0088】
そして、図7のステップS112において、全ての元画像の圧縮が完了すると、図8に示すように、割り込み発生部28が、完了割り込みを割り込み検知部8に発生し(ステップS123)、割り込み検知部8は、完了割り込みを検知して、圧縮情報リード部6に通知する(ステップS124)。
【0089】
圧縮情報リード部6は、用意した符号用ディスクリプタを全て読み込み(ステップS125)、ステップS111で圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べる。これによって、各元画像が膨張したか、符号サイズはいくつになったかを知ることができる。すなわち、本実施例では、バンド毎に、膨張した場合は元画像を保存し、小さくなった場合は符号を保存する。符号を保存する場合は、圧縮処理パラメータ設定部5が、ステップS125で読み込んだ圧縮後の符号サイズを、符号の属性として同時にメモリ2に保管する(ステップS126)。
【0090】
すなわち、本実施例の画像形成装置1は、圧縮で膨張した符号がない場合には、図9に示したように、元画像C,M,Y,Kの4バンドを1回のハードウェア起動で圧縮処理し、1/4以下のサイズの符号になって膨張した符号がなかったために、そのまま圧縮処理を完了する。この場合、WBフラグ及び符号量(圧縮サイズ)は、各符号用ディスクリプタに書き戻され、圧縮情報リード部6によって読み取られた符号用ディスクリプタ情報から全ての符号用ディスクリプタにWBフラグが立っており、元画像4バンドにつき符号1バンドが生成されたことが、圧縮処理完了状態解析部7によって判断される。また、保存される符号のサイズは、圧縮情報リード部6が、同時に読み込んで、その値を符号の属性情報として保管する。
【0091】
一方、本実施例の画像形成装置1は、圧縮で膨張して用意した符号用メモリ領域に書ききれないとき、例えば、図10に示したように、元画像C,M,Y,Kの4バンドのうち、元画像Mが膨張してしまい、用意した符号用メモリ領域に書ききれずに、符号用ディスクリプタが無くなると、圧縮処理を一時停止する。すなわち、図10では、元画像Mが膨張し、符号用メモリ領域を3バンド分を消費しており、圧縮情報メモリ書き戻し部26によるWBフラグと符号サイズの書き戻しは、符号ディスクリプタの2枚目、3枚目、4枚目には行われておらず、圧縮情報リード部6で、ディスクリプタをリードした際、WBフラグがないため、元画像Mの圧縮が終了していないと判断することができる。
【0092】
そして、画像形成装置1は、図10のようにして圧縮処理を一時停止状態とすると、図11に示すように、元画像M,Y,K用の符号用メモリ領域を再確保し、一時停止状態を解除して、圧縮を継続する。すなわち、一時停止状態ではWBフラグが1つだけ立っているので、用意した元画像C,M,Y,Kのうち、元画像M,Y,Kが圧縮を終了していないと判断することができ、図7のステップS204のメモリ領域再確保処理で、図11に示すように、元画像の1/4の大きさの符号用メモリ領域を4バンド分確保して、一時停止状態を解除する。すなわち、圧縮情報リード部6は、元画像Mが膨張しているかどうかは分からないため、元画像Mの符号を書き込んだメモリ領域は破棄することができず、ステップS204のメモリ領域再確保処理では、新たな領域を確保して利用している。
【0093】
このように、本実施例の画像形成装置1は、元画像と符号用メモリ領域を4:1のサイズでメモリ2のメモリ領域の確保を行っているため、必要なメモリサイズを削減することができ、コストを削減することができる。また、本実施例の画像形成装置1は、少ないメモリ容量で処理を行うことができるため、複数の処理を同時に実行する場合に、他のアプリケーションをメモリ確保によって邪魔することを抑制することができ、有限のメモリ量を有効活用して、画像形成装置1としてのパフォーマンスを向上させることができる。
【0094】
なお、この元画像と符号用メモリ領域の比率は、4:1に限るものではなく、圧縮アルゴリズムの平均圧縮率や最低圧縮率とその頻度によって適宜設定して、メモリの確保を指示してもよい。
【実施例3】
【0095】
図12及び図13は、本発明の画像形成装置及び画像処理方法の第3実施例を適用した画像形成装置による画像圧縮処理を示すフローチャートである。
【0096】
なお、本実施例は、上記第1実施例の画像形成装置1と同様の画像形成装置に適用したものであり、本実施例の説明においては、上記第1実施例で用いた符号をそのまま用いて説明する。
【0097】
本実施例の画像形成装置1は、画像を以下の条件で可変長圧縮符号方式で圧縮する。
条件1:符号の保存方法:符号が膨張した場合には、符号を保存する。
条件2:メモリ確保方法:メモリ2のメモリ領域を、速度優先させるため、元画像:圧縮後符号=1:1で確保する。
条件3:圧縮完了判定方法:圧縮完了割り込みと一時停止割り込みを用いて圧縮完了判定を行う。
【0098】
すなわち、第1実施例の場合の条件と異なるのは、符号の保存方法のみであり、第1実施例の場合、圧縮で膨張すると、元画像を保存しているが、本実施例では、膨張しても、符号を保存する。
【0099】
そこで、本実施例の説明においては、図12及び図13の画像圧縮処理のフローチャートにおいて、図2及び図3に示した第1実施例の画像圧縮処理のフローチャートと同様の処理ステップには、同一のステップ番号を付して、その説明を簡略化する。
【0100】
画像形成装置1は、図12に示すように、まず、優先順位指示部3が、処理速度を優先させるために、符号化後の画像データである符号が元画像と同じサイズになってしまっても保存できるように、圧縮後の符号を保存するためのメモリ領域として、元画像と同じサイズのメモリ領域(元画像:圧縮後符号=1:1)を確保させる指示(優先順位指示)をメモリ領域確保部4及び符号量予測部12に行う(ステップS101)。
【0101】
次に、メモリ領域確保部4が、優先順位指示部3から指示された符号用のメモリ領域をメモリ2のシステムメモリ領域の中から確保する(ステップS102)。
【0102】
そして、ディスクリプタには、それぞれ次に処理するバンドを示すディスクリプタの先頭アドレスも合わせて記録されているため、圧縮処理シーケンス制御部25は、1バンドの処理が終了すると、次のバンドのディスクリプタをリードするというchain動作を行い、連続して複数枚のバンドを圧縮処理することができる。メモリ領域確保部4は、同様に、圧縮後の符号を保存するために、上記確保したバンド(メモリ領域)を示すディスクリプタを作成し、メモリ2に保存する(ステップS103)。
【0103】
さらに、圧縮処理パラメータ設定部5が、例えば、画像の主走査長やメモリ幅、圧縮方式や圧縮パラメータ等、バンド間で共通のパラメータを作成して、圧縮パラメータ保持部21に保存し、また、一時停止解除後のパラメータを保存する(ステップS104)。
【0104】
そして、圧縮処理に必要な全てのパラメータがメモリ2及びレジスタに保存されると、圧縮処理パラメータ設定部5が、圧縮処理起動部9に圧縮処理を開始するよう命令を発行し、圧縮処理起動部9が、圧縮処理シーケンス制御部25に圧縮処理開始命令を出し、圧縮処理シーケンス制御部25が元画像用ディスクリプタリード部22にディスクリプタのリード命令を出して、圧縮処理に先立って、まず、元画像用ディスクリプタリード部22が、1バンド目の元画像用ディスクリプタをメモリ2からリードし(ステップS106)、符号用ディスクリプタリード部23が、1バンド目の符号用ディスクリプタをメモリ2からリードする(ステップS107)。
【0105】
必要なパラメータが揃うと、データ圧縮処理部24が、圧縮処理を開始し、元画像用ディスクリプタにあるメモリ2上のアドレスから元画像をリードし、圧縮パラメータに従って圧縮処理して、圧縮処理した符号を符号用ディスクリプタに指示されたメモリ2のアドレスに書き戻す(ステップS108)。
【0106】
圧縮処理シーケンス制御部25は、データ圧縮処理部24による圧縮処理を開始すると、元画像1バンド分の圧縮処理が完了したかチェックし(ステップS109)、完了していないときには、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS110)、符号用のメモリ領域とディスクリプタがあるときには、ステップS107に戻って、符号用ディスクリプタをリードして、圧縮を継続して元画像1バンド分の圧縮が完了したかチェックする(ステップS107〜S109)。
【0107】
ステップS109で、符号用に用意したメモリ領域1バンドが埋まる前に元画像の1バンドの圧縮が完了すると、圧縮処理シーケンス制御部25は、元画像1バンドが圧縮の結果どんな大きさの符号になったかと、このバンドでの元画像の圧縮が終了したことを示すWBフラグ(ライトバックフラグ)をメモリ2上の符号用ディスクリプタに書き戻し(ステップS111)、全元画像の圧縮が完了したかチェックする(ステップS112)。
【0108】
ステップS112で、全ての元画像の圧縮が完了していないときには、圧縮処理シーケンス制御部25は、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS113)、符号用のメモリ領域とディスクリプタがあるときには、ステップS106に戻って、元画像用ディスクリプタに記録された次の元画像用ディスクリプタの先頭アドレスを参照して、元画像用ディスクリプタを読み出して、同様に符号用ディスクリプタも次の新しいものを読み出し、元画像1バンドを符号化して新たな符号用メモリ領域に符号化されたデータを書き込む処理から上記同様に処理する(ステップS106〜S113)。
【0109】
ステップS110で、元画像1バンド分の圧縮が完了していない状態で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、図13に示すように、圧縮処理を一時停止し(ステップS114)、また、ステップS112で、全ての元画像の圧縮が完了する前に、ステップS113で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、圧縮処理シーケンス制御部25は、データ圧縮処理部24での圧縮処理を一時停止に移行させて、一時停止状態保持部27にメモリ領域確保と符号用ディスクリプタを用意するために、一時的にデータ圧縮処理を停止した状態を保持し(ステップS114)、割り込み発生部28に一時停止状態に入ったことを通知する(ステップS115)。すなわち、本実施例の場合、元画像と符号用メモリ領域を1:1のサイズで用意しているため、1バンドでも膨張が発生した場合には、圧縮処理が完了せず、一時停止状態となる。
【0110】
割り込み発生部28は、一時停止状態になったことを割り込み検知部8に通知し(ステップS116)、割り込み検知部8が一時停止状態になったことを検知すると、圧縮情報リード部6が、メモリ2から符号サイズとWBフラグを読み込んで、圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べて、一時停止に入ったときの元画像の圧縮進捗状況を判断する(ステップS117)。
【0111】
圧縮情報リード部6によって、圧縮が終了していない元画像のバンドがいくつあるかを解析すると、残っている元画像と同じサイズのメモリ領域を確保するように判断してメモリ領域確保部4にメモリ領域確保の優先順位指示を行い(ステップS118)、メモリ領域確保部4がメモリを確保する(ステップS301)。すなわち、圧縮情報メモリ書き戻し部26の書き戻した情報から膨張した符号を書き込んだメモリ領域の情報を受け取り、そのメモリ領域を新たに次の符号を書き込む領域として確保する。そして、本実施例では、符号が膨張した場合であっても符号を保存するとともに、元画像と符号用メモリ領域を1:1で確保している条件としているため、既に膨張したことが分かっている符号を書き込んだメモリ領域を破棄することなく、残りの元画像の圧縮後の符号を書き込むためのメモリ領域を確保する。
【0112】
次に、圧縮処理パラメータ設定部5は、確保し直したメモリ領域の情報を新たな符号用ディスクリプタとしてメモリに書き戻し(ステップS120)、必要に応じてレジスタへの符号化パラメータの変更を行って、レジスタに保持させ(ステップS121)、一時停止状態にある圧縮処理の再開の命令を圧縮再起動部11に出して(ステップS122)、ステップS106に戻って、元画像用ディスクリプタのリードから上記同様に処理する(ステップS106〜S301〜S122)。
【0113】
そして、図12のステップS112において、全ての元画像の圧縮が完了すると、図13に示すように、割り込み発生部28が、完了割り込みを割り込み検知部8に発生し(ステップS123)、割り込み検知部8は、完了割り込みを検知して、圧縮情報リード部6に通知する(ステップS124)。
【0114】
圧縮情報リード部6は、用意した符号用ディスクリプタを全て読み込み(ステップS125)、ステップS111で圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べる。これによって、各元画像が膨張したか、符号サイズはいくつになったかを知ることができる。すなわち、本実施例では、バンド毎に、圧縮処理で、膨張した場合も、小さくなった場合も、符号を出力用として保存し、符号を保存する場合は、ステップS125で読み込んだ圧縮後の符号サイズを、符号の属性として同時にメモリ2に保管する(ステップS302)。
【0115】
このように、本実施例の画像形成装置1は、元画像を圧縮した結果の符号が元画像よりも膨張したかどうかに関わらず符号のみをメモリ2に保存している。
【0116】
したがって、プログラムを単純化することができ、コストを削減することができる。
【実施例4】
【0117】
図14及び図15は、本発明の画像形成装置及び画像処理方法の第4実施例を適用した画像形成装置による画像圧縮処理を示すフローチャートである。
【0118】
なお、本実施例は、上記第1実施例の画像形成装置1と同様の画像形成装置に適用したものであり、本実施例の説明においては、上記第1実施例で用いた符号をそのまま用いて説明する。
【0119】
本実施例の画像形成装置1は、画像を以下の条件で可変長圧縮符号方式で圧縮する。
条件1:符号の保存方法:符号が膨張した場合には、元画像を保存する。
条件2:メモリ確保方法:メモリ2のメモリ領域を、速度優先させるため、元画像:圧縮後符号=1:1で確保する。
条件3:圧縮完了判定方法:圧縮完了割り込みと中断割り込みを用いて圧縮完了判定を行う。
【0120】
すなわち、第1実施例の場合の条件と異なるのは、圧縮完了判定方法のみであり、符号用のメモリ領域が足りなくなると、圧縮処理を中断して、圧縮が完了していない元画像を最初から圧縮処理し直すことにある。この場合、一時停止して再開する訳ではないので、圧縮途中で符号メモリ領域が足りなくなってしまった場合は、元画像はメモリ領域の確保等の圧縮作業を最初からやり直す必要がある。
【0121】
そこで、本実施例の説明においては、図14及び図15の画像圧縮処理のフローチャートにおいて、図2及び図3に示した第1実施例の画像圧縮処理のフローチャートと同様の処理ステップには、同一のステップ番号を付して、その説明を簡略化する。
【0122】
画像形成装置1は、図14に示すように、まず、優先順位指示部3が、処理速度を優先させるために、符号化後の画像データである符号が元画像と同じサイズになってしまっても保存できるように、圧縮後の符号を保存するためのメモリ領域として、元画像と同じサイズのメモリ領域(元画像:圧縮後符号=1:1)を確保させる指示(優先順位指示)をメモリ領域確保部4及び符号量予測部12に行う(ステップS101)。
【0123】
次に、メモリ領域確保部4が、優先順位指示部3から指示された符号用のメモリ領域をメモリ2のシステムメモリ領域の中から確保する(ステップS102)。
【0124】
そして、ディスクリプタには、それぞれ次に処理するバンドを示すディスクリプタの先頭アドレスも合わせて記録されているため、圧縮処理シーケンス制御部25は、1バンドの処理が終了すると、次のバンドのディスクリプタをリードするというchain動作を行い、連続して複数枚のバンドを圧縮処理することができる。メモリ領域確保部4は、同様に、圧縮後の符号を保存するために、上記確保したバンド(メモリ領域)を示すディスクリプタを作成し、メモリ2に保存するとともに、最終バンドの元画像用ディスクリプタへは、圧縮が完了しなかった場合には、中断するよう設定する(ステップS401)。
【0125】
さらに、圧縮処理パラメータ設定部5が、例えば、画像の主走査長やメモリ幅、圧縮方式や圧縮パラメータ等、バンド間で共通のパラメータを作成して、圧縮パラメータ保持部21に保存し、また、中断解除後のパラメータを保存する(ステップS104)。
【0126】
そして、圧縮処理に必要な全てのパラメータがメモリ2及びレジスタに保存されると、圧縮処理パラメータ設定部5が、圧縮処理起動部9に圧縮処理を開始するよう命令を発行し(ステップS105)、圧縮処理起動部9が圧縮処理シーケンス制御部25に圧縮処理開始命令を出し、圧縮処理シーケンス制御部25が元画像用ディスクリプタリード部22にディスクリプタのリード命令を出して、圧縮処理に先立って、まず、元画像用ディスクリプタリード部22が、1バンド目の元画像用ディスクリプタをメモリ2からリードし(ステップS106)、符号用ディスクリプタリード部23が、1バンド目の符号用ディスクリプタをメモリ2からリードする(ステップS107)。
【0127】
必要なパラメータが揃うと、データ圧縮処理部24が、圧縮処理を開始し、元画像用ディスクリプタにあるメモリ2上のアドレスから元画像をリードし、圧縮パラメータに従って圧縮処理して、圧縮処理した符号を符号用ディスクリプタに指示されたメモリ2のアドレスに書き戻す(ステップS108)。
【0128】
圧縮処理シーケンス制御部25は、データ圧縮処理部24による圧縮処理を開始すると、元画像1バンド分の圧縮処理が完了したかチェックし(ステップS109)、完了していないときには、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS110)、符号用のメモリ領域とディスクリプタがあるときには、ステップS107に戻って、符号用ディスクリプタをリードして、圧縮を継続して元画像1バンド分の圧縮が完了したかチェックする(ステップS107〜S109)。
【0129】
ステップS109で、符号用に用意したメモリ領域1バンドが埋まる前に元画像の1バンドの圧縮が完了すると、圧縮処理シーケンス制御部25は、元画像1バンドが圧縮の結果どんな大きさの符号になったかと、このバンドでの元画像の圧縮が終了したことを示すWBフラグ(ライトバックフラグ)をメモリ2上の符号用ディスクリプタに書き戻し(ステップS111)、全元画像の圧縮が完了したかチェックする(ステップS112)。
【0130】
ステップS112で、全ての元画像の圧縮が完了していないときには、圧縮処理シーケンス制御部25は、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS113)、符号用のメモリ領域とディスクリプタがあるときには、ステップS106に戻って、元画像用ディスクリプタに記録された次の元画像用ディスクリプタの先頭アドレスを参照して、元画像用ディスクリプタを読み出して、同様に符号用ディスクリプタも次の新しいものを読み出し、元画像1バンドを符号化して新たな符号用メモリ領域に符号化されたデータを書き込む処理から上記同様に処理する(ステップS106〜S113)。すなわち、ステップS113において、符号用メモリ領域がまだ確保されている状態で、連続で処理する元画像のバンドがまだ残っている場合(YESの場合)、元画像用ディスクリプタに記録された次の元画像用ディスクリプタの先頭アドレスを参照してディスクリプタを読み出し(ステップS106)、同様に符号用ディスクリプタも次の新しいものを読み出して(ステップS107)、元画像1バンドを符号化して新たな符号用メモリ領域に符号化されたデータを書き込む処理を行う(ステップS108)。
【0131】
ステップS110で、元画像1バンド分の圧縮が完了していない状態で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、圧縮処理を中断し(ステップS114)、また、ステップS112で、全ての元画像の圧縮が完了する前に、ステップS113で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、図15に示すように、圧縮処理シーケンス制御部25は、データ圧縮処理部24での圧縮処理を中断させて(ステップS402)、割り込み発生部28に中断状態に入ったことを通知して、割り込み発生部28は、中断状態になったことを割り込み検知部8に通知する(ステップS403)。すなわち、本実施例の場合、元画像と符号用メモリ領域を1:1のサイズで用意しているため、1バンドでも膨張が発生した場合には、圧縮処理が完了せず、中断状態となる。
【0132】
割り込み検知部8が中断状態になったことを検知すると、圧縮情報リード部6が、メモリ2から符号サイズとWBフラグを読み込んで、圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べて、中断状態に入ったときの元画像の圧縮進捗状況を判断する(ステップS404)。
【0133】
圧縮情報リード部6によって、圧縮が終了していない元画像のバンドがいくつあるかを解析すると、圧縮が完了している元画像と完了していない元画像を判別し、圧縮が終わっていない元画像については、該元画像と同じサイズの符号用メモリ領域を確保し、ステップS101に戻って、最初から圧縮動作をやり直す(ステップS405)。すなわち、WBフラグを解析して、膨張した符号を判断し、元画像より縮小した符号と膨張したバンドの元画像を出力用として決定し、縮小した符号は、圧縮後の符号サイズを符号の属性として記録する。また、符号サイズとWBフラグの情報から未圧縮の元画像が何バンド残っているかを解析して、該元画像と同じサイズの符号用メモリ領域を確保し、図14に示すように、ステップS101に戻って、最初から圧縮動作をやり直す。
【0134】
ステップS101に戻ると、上記同様に処理を行い(ステップS101〜S405)、ステップS112で、全ての元画像の圧縮が完了すると、図15に示すように、割り込み発生部28が、完了割り込みを割り込み検知部8に発生し(ステップS123)、割り込み検知部8は、完了割り込みを検知して、圧縮情報リード部6に通知する(ステップS124)。
【0135】
圧縮情報リード部6は、用意した符号用ディスクリプタを全て読み込み(ステップS125)、ステップS111で圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べる。これによって、各元画像が膨張したか、符号サイズはいくつになったかを知ることができる。すなわち、本実施例では、バンド毎に、膨張した場合は元画像を出力用として保存し、小さくなった場合は符号を出力用として保存する。符号を保存する場合は、ステップS125で読み込んだ圧縮後の符号サイズを、符号の属性として同時にメモリ2に保管する(ステップS126)。
【0136】
このように、本実施例の画像形成装置1は、圧縮処理途中で符号用メモリ領域が足りなくなった時に中断して、圧縮の完了していない元画像を最初から圧縮処理し直している。
【0137】
したがって、符号用メモリ領域が不足して中断してメモリの再確保を行っている間に、メモリ確保の終了している別の圧縮したい元画像に対してデータ圧縮処理部24を開放することができ、複数のアプリケーションが同じデータ圧縮処理部24を利用する場合に、システムとしてのパフォーマンスを向上させることができる。
【実施例5】
【0138】
図16及び図17は、本発明の画像形成装置及び画像処理方法の第5実施例を適用した画像形成装置による画像圧縮処理を示すフローチャートである。
【0139】
なお、本実施例は、上記第1実施例の画像形成装置1と同様の画像形成装置に適用したものであり、本実施例の説明においては、上記第1実施例で用いた符号をそのまま用いて説明する。
【0140】
そこで、本実施例の説明においては、図16及び図17の画像圧縮処理のフローチャートにおいて、図2及び図3に示した第1実施例の画像圧縮処理のフローチャートと同様の処理ステップには、同一のステップ番号を付して、その説明を簡略化する。
【0141】
本実施例の画像形成装置1は、画像を以下の条件で可変長圧縮符号方式で圧縮する。
条件1:符号の保存方法:符号が膨張した場合には、元画像を保存する。
条件2:メモリ確保方法:メモリ2のメモリ領域を、以前の圧縮履歴から平均圧縮率を計算して、効率の良いメモリ領域を確保する。
条件3:圧縮完了判定方法:圧縮完了割り込みと一時停止割り込みを用いて圧縮完了判定を行う。
【0142】
すなわち、第1実施例の場合の条件と異なるのは、メモリ確保方法のみであり、符号量予測部12が、メモリ領域確保部4による符号用メモリ確保領域として、一時停止状態になる確率が少なく、かつメモリ確保量が無駄にならない最適値を計算する。
【0143】
そこで、本実施例の画像形成装置1は、図1に破線で示した符号量予測部12を備えており、符号量予測部12は、以前の画像の圧縮率等を計算して保持して、今後の画像の圧縮率を予測し、メモリ領域確保部4に通知する。
【0144】
画像形成装置1は、図16に示すように、まず、優先順位指示部3が、符号用メモリ領域として、最適化されたメモリ量を確保するように指示をメモリ領域確保部4及び符号量予測部12に行う(ステップS501)。
【0145】
次に、符号量予測部12が、過去の圧縮率データ等から処理速度を最適にする符号用メモリサイズを予測計算し(ステップS502)、メモリ領域確保部4が、符号量予測部12の予測に基づいて最適なメモリ量の符号用メモリ領域をメモリ2のシステムメモリ領域の中から確保する(ステップS503)。すなわち、符号量予測部12で、一時停止状態になる確率が少なく、かつ、メモリ確保量が無駄にならない最適なメモリ量を予測し、この予測に基づいて、メモリ領域確保部4が符号用メモリ領域を確保する。
【0146】
メモリ領域確保部4は、圧縮後の符号を保存するために、上記確保したバンド(メモリ領域)を示すディスクリプタを作成し、特に、最終バンドの元画像用ディスクリプタへは、圧縮が完了しなかった場合には、一時停止するように設定して、メモリ2に保存する(ステップS103)。
【0147】
さらに、圧縮処理パラメータ設定部5が、例えば、画像の主走査長やメモリ幅、圧縮方式や圧縮パラメータ等、バンド間で共通のパラメータを作成して、圧縮パラメータ保持部21に保存し、また、一時停止解除後のパラメータをレジスタに保存する(ステップS104)。
【0148】
そして、圧縮処理に必要な全てのパラメータがメモリ2及びレジスタに保存されると、圧縮処理パラメータ設定部5が、圧縮処理起動部9に圧縮処理を開始するよう命令を発行し(ステップS105)、圧縮処理起動部9が圧縮処理シーケンス制御部25に圧縮処理開始命令を出し、圧縮処理シーケンス制御部25が元画像用ディスクリプタリード部22にディスクリプタのリード命令を出して、圧縮処理に先立って、まず、元画像用ディスクリプタリード部22が、1バンド目の元画像用ディスクリプタをメモリ2からリードし(ステップS106)、符号用ディスクリプタリード部23が、1バンド目の符号用ディスクリプタをメモリ2からリードする(ステップS107)。
【0149】
必要なパラメータが揃うと、データ圧縮処理部24が、圧縮処理を開始し、元画像用ディスクリプタにあるメモリ2上のアドレスから元画像をリードし、圧縮パラメータに従って圧縮処理して、圧縮処理した符号を符号用ディスクリプタに指示されたメモリ2のアドレスに書き戻す(ステップS108)。
【0150】
圧縮処理シーケンス制御部25は、データ圧縮処理部24による圧縮処理を開始すると、元画像1バンド分の圧縮処理が完了したかチェックし(ステップS109)、完了していないときには、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS110)、符号用のメモリ領域とディスクリプタがあるときには、ステップS107に戻って、符号用ディスクリプタをリードして、圧縮を継続して元画像1バンド分の圧縮が完了したかチェックする(ステップS107〜S109)。
【0151】
ステップS109で、符号用に用意したメモリ領域1バンドが埋まる前に元画像の1バンドの圧縮が完了すると、圧縮処理シーケンス制御部25は、元画像1バンドが圧縮の結果どんな大きさの符号になったかと、このバンドでの元画像の圧縮が終了したことを示すWBフラグ(ライトバックフラグ)をメモリ2上の符号用ディスクリプタに書き戻し(ステップS111)、全元画像の圧縮が完了したかチェックする(ステップS112)。
【0152】
ステップS112で、全ての元画像の圧縮が完了していないときには、圧縮処理シーケンス制御部25は、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS113)、符号用のメモリ領域とディスクリプタがあるときには、ステップS106に戻って、元画像用ディスクリプタに記録された次の元画像用ディスクリプタの先頭アドレスを参照して、元画像用ディスクリプタを読み出して、同様に符号用ディスクリプタも次の新しいものを読み出し、元画像1バンドを符号化して新たな符号用メモリ領域に符号化されたデータを書き込む処理から上記同様に処理する(ステップS106〜S113)。
【0153】
ステップS110で、元画像1バンド分の圧縮が完了していない状態で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、図17に示すように、圧縮処理を一時停止し(ステップS114)、また、ステップS113で、全ての元画像の圧縮が完了する前に、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、圧縮処理シーケンス制御部25は、データ圧縮処理部24での圧縮処理を一時停止に移行させて、一時停止状態保持部27にメモリ領域確保と符号用ディスクリプタを用意するために、一時的にデータ圧縮処理を停止した状態を保持し(ステップS114)、割り込み発生部28に一時停止状態に入ったことを通知する(ステップS115)。
【0154】
割り込み発生部28は、一時停止状態になったことを割り込み検知部8に通知し(ステップS116)、割り込み検知部8が一時停止状態になったことを検知すると、圧縮情報リード部6が、メモリ2から符号サイズとWBフラグを読み込んで、圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べて、一時停止に入ったときの元画像の圧縮進捗状況を判断する(ステップS117)。
【0155】
圧縮処理完了状態解析部7は、圧縮情報リード部6によって、圧縮が終了していない元画像のバンドがいくつあるかを解析すると、残り画像の書き込み先について、優先順位指示部3が、符号用メモリ領域として、処理速度を最適化するメモリ量を確保するように指示を符号量予測部12に行い(ステップS504)、符号量予測部12が、過去のデータ等から処理速度を最適にする符号用メモリサイズを予測計算して(ステップS505)、メモリ領域確保部4が該符号量予測部12の予測に基づいて最適なメモリ量の符号用メモリ領域を確保する(ステップS506)。
【0156】
次に、圧縮処理パラメータ設定部5は、確保し直したメモリ領域の情報を新たな圧縮処理パラメータとしてメモリに書き戻し(ステップS120)、必要に応じてレジスタへの圧縮処理パラメータの変更を行って、レジスタに保持させ(ステップS121)、一時停止状態にある圧縮処理の再開の命令を圧縮再起動部11に出して(ステップS122)、図16に示すステップS106に戻って、元画像用ディスクリプタのリードから上記同様に処理する(ステップS106〜S504〜S506〜S122)。
【0157】
そして、図16のステップS112において、全ての元画像の圧縮が完了すると、図17に示すように、割り込み発生部28が、完了割り込みを割り込み検知部8に発生し(ステップS123)、割り込み検知部8は、完了割り込みを検知して、圧縮情報リード部6に通知する(ステップS124)。
【0158】
圧縮情報リード部6は、用意した符号用ディスクリプタを全て読み込み(ステップS125)、ステップS111で圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べる。これによって、各元画像が膨張したか、符号サイズはいくつになったかを知ることができる。すなわち、本実施例では、バンド毎に、膨張した場合は元画像を出力用として保存し、小さくなった場合は符号を出力用として保存する。符号を保存する場合は、ステップS125で読み込んだ圧縮後の符号サイズを、符号の属性として同時にメモリ2に保管する(ステップS126)。
【0159】
このように、本実施例の画像形成装置1は、符号用メモリ領域の確保量の最適値を符号量予測部12で過去の圧縮履歴等から圧縮対象の元画像データの圧縮率を予測して最適な符号用メモリ量を予測し、メモリ領域確保部4が該予測結果に応じて符号量メモリ領域をメモリ2に確保している。
【0160】
したがって、無駄なメモリ確保を防止して、画像形成装置1全体のパフォーマンスを向上させることができるとともに、圧縮処理が一時停止状態になる確率を減して、圧縮処理速度をも向上させることができる。
【0161】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記のものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0162】
本発明は、メモリの元画像を可変長圧縮して該メモリに該圧縮した符号を格納する画像処理を行う複合装置、複写装置、プリンタ等の画像形成装置及び画像処理方法に適用することができる。
【図面の簡単な説明】
【0163】
【図1】本発明の第1実施例を適用した画像形成装置の機能ブロック構成図。
【図2】図1の画像形成装置による画像圧縮処理を示すフローチャート。
【図3】図2の画像圧縮処理の続きの処理を示すフローチャート。
【図4】図2の画像圧縮処理で膨張した符号がない場合の動作説明図。
【図5】図2の画像圧縮処理で元画像Mが膨張して一時停止が発生した場合の動作説明図。
【図6】図4の一時停止状態から元画像Kの符号用メモリ領域を再確保し一時停止状態を解除して圧縮を継続する動作説明図。
【図7】本発明の第2実施例を適用した画像形成装置による画像圧縮処理を示すフローチャート。
【図8】図7の画像圧縮処理の続きの処理を示すフローチャート。
【図9】図7及び図8の画像圧縮処理で膨張した符号がない場合の動作説明図。
【図10】図7及び図8の画像圧縮処理で元画像Mが膨張して一時停止が発生した場合の動作説明図。
【図11】図10の一時停止状態から元画像M,Y,Kの符号用メモリ領域を再確保し一時停止状態を解除して圧縮を継続する動作説明図。
【図12】本発明の第3実施例を適用した画像形成装置による画像圧縮処理を示すフローチャート。
【図13】図12の画像圧縮処理の続きの処理を示すフローチャート。
【図14】本発明の第4実施例を適用した画像形成装置による画像圧縮処理を示すフローチャート。
【図15】図14の画像圧縮処理の続きの処理を示すフローチャート。
【図16】本発明の第5実施例を適用した画像形成装置による画像圧縮処理を示すフローチャート。
【図17】図16の画像圧縮処理の続きの処理を示すフローチャート。
【符号の説明】
【0164】
1 画像形成装置
2 メモリ
3 優先順位指示部
4 メモリ領域確保部
5 圧縮処理パラメータ設定部
6 圧縮情報リード部
7 圧縮処理完了状態解析部
8 割り込み検知部
9 圧縮処理起動部
10 圧縮処理再起動部
11 圧縮処理部
12 符号量予測部
21 圧縮パラメータ保持部
22 元画像用ディスクリプタリード部
23 符号用ディスクリプタリード部
24 データ圧縮処理部
25 圧縮処理シーケンス制御部
26 圧縮情報メモリ書き戻し部
27 一時停止状態保持部
28 割り込み発生部
【技術分野】
【0001】
本発明は、画像形成装置及び画像処理方法に関し、詳細には、画像圧縮処理を行って画像を一旦保管した後に画像形成する画像形成装置及び画像処理方法に関する。
【背景技術】
【0002】
スキャナで読み取られた画像をプロッタで印刷出力する場合、スキャナによってRGB点順次で読み取られた画像を画像処理して、プロッタで出力するためのCMYK面順次の画像に変換するが、RGB点順次画像をCMYK面順次画像に変換する過程では、C,M,Y,Kそれぞれの画像データを同時に生成する。
【0003】
そして、スキャナ、複写装置等の画像処理装置においては、スキャナで読み取った画像を圧縮処理して一旦メモリに蓄積し、その後、メモリから圧縮データを読み出し、リアルタイムに伸長してプロッタに出力することが行われている。
【0004】
この画像を圧縮処理する際には、C,M,Y,Kの画像が1ページ分画像処理されてから圧縮処理を開始するのでは、ファーストコピーの速度が遅くなり、また、1ページ分の画像を1つの符号として圧縮すると、ページの一部分を復号する場合にも1ページ分全体の復号処理が必要になる。さらに、C,M,Y,Kの画像が1ページ分画像処理されるためには、各色1ページ分のメモリ領域を確保しないと、画像処理が開始できない。
【0005】
そこで、従来から、1ページを複数のバンドに分けて画像処理することが行われている。
【0006】
また、従来、プリンタエンジンへの画像データの転送が間に合わない圧縮率であると、圧縮後の符号(画像データ)を格納するメモリを複数に分け、画像データの読み出し時には、該複数のメモリを同時にアクセスすることで、画像の取り込みが間に合わなくなることを防ぐ技術が提案されている(特許文献1参照)。
【0007】
【特許文献1】特開2005−223663号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、上記従来技術にあっては、画像データの圧縮を効率的にかつ高速に行う上で、改良の必要があった。
【0009】
すなわち、従来の画像データの1ページを複数のバンドに分けて画像処理する技術を利用して、画像データを圧縮する場合、一度に圧縮する画像データサイズが小さくなるため、圧縮処理のためのパラメータ設定、圧縮器の起動等の制御回路によるソフトウェア処理が頻発し、処理効率を低下させて、処理速度を向上させる上で、改良の必要があった。
【0010】
また、特許文献1記載の従来技術にあっては、圧縮後の画像データを物理的に複数のメモリに分けて格納することで処理速度の向上を図っているため、物理的に異なるメモリを複数個必要とし、メモリの利用効率が悪いだけでなく、コストが高くなるという問題がある。
【0011】
そこで、本発明は、メモリの利用効率を向上させつつ、画像圧縮処理速度を向上させることのできる画像形成装置及び画像処理方法を提供することを目的としている。
【課題を解決するための手段】
【0012】
請求項1記載の発明の画像形成装置は、メモリ上に符号用メモリ領域を確保するメモリ確保手段と、該確保された符号用メモリ領域の情報等に基づいて該メモリに元画像用ディスクリプタ及び符号用ディスクリプタ等の圧縮指示情報を設定する圧縮指示情報設定手段と、該メモリから該元画像用ディスクリプタと該符号用ディスクリプタを読み出すディスクリプタ読出手段と、該ディスクリプタ読出手段の読み出した元画像用ディスクリプタに基づいて該メモリ上の元画像を所定の可変長圧縮方法で圧縮処理し該圧縮処理した符号を該メモリの該ディスクリプタ読出手段の読み出した符号用メモリ領域に書き込む圧縮手段と、該圧縮手段による圧縮処理での符号量及び符号用ディスクリプタ情報等の圧縮情報を前記メモリに書き戻す圧縮情報書き戻し手段とを備え、前記ディスクリプタ読出手段が前記圧縮指示情報設定手段で設定した圧縮情報を読み出して、該ディスクリプタ読出手段の読み出した圧縮情報に基づいて前記圧縮手段が圧縮処理を行うことにより、上記目的を達成している。
【0013】
この場合、例えば、請求項2に記載するように、前記画像形成装置は、前記圧縮処理の一時停止状態を保持する一時停止状態保持手段と、前記圧縮情報書き戻し手段が前記メモリに書き戻した前記圧縮情報を読み出す圧縮情報読出手段と、を備え、前記符号用メモリ領域の不足等の理由で前記圧縮処理の一時停止が発生すると、該一時停止状態保持手段が該一時停止状態を保持し、該一時停止状態中に、該圧縮情報読出手段が前記圧縮情報を読み出し、前記メモリ確保手段が該読み出された圧縮情報に基づいて前記符号用メモリ領域の再確保を行い、前記圧縮指示情報設定手段が該再確保された符号用メモリ領域情報等に基づいて前記圧縮指示情報を再設定し、該一時停止状態が解除されると、該再設定された圧縮指示情報に応じて前記圧縮手段による圧縮処理を再開してもよい。
【0014】
また、例えば、請求項3に記載するように、前記画像形成装置は、前記メモリ確保手段による前記符号用メモリ領域のメモリ確保量として適宜のメモリ量を指示するメモリ確保指示手段を、さらに備えていてもよい。
【0015】
さらに、例えば、請求項4に記載するように、前記画像形成装置は、過去の圧縮履歴等から圧縮対象の元画像データの圧縮率を予測して最適な符号用メモリ量を予測する符号量予測手段を備え、前記メモリ確保手段が、該符号量予測手段の予測した符号用メモリ量に応じた符号用メモリ領域を前記メモリに確保してもよい。
【0016】
また、例えば、請求項5に記載するように、前記画像形成装置は、前記圧縮手段での符号サイズ等の圧縮完了状態を解析する解析手段を備え、該解析手段が前記圧縮処理によって前記元画像データよりも前記符号が膨張したことを解析すると、該符号を破棄して該元画像データを前記メモリに格納してもよい。
【0017】
請求項6記載の発明の画像処理方法は、メモリ上に符号用メモリ領域を確保するメモリ確保工程と、該確保された符号用メモリ領域の情報等に基づいて該メモリに元画像用ディスクリプタ及び符号用ディスクリプタ等の圧縮指示情報を設定する圧縮指示情報設定工程と、該メモリから該元画像用ディスクリプタと該符号用ディスクリプタを読み出すディスクリプタ読出工程と、該ディスクリプタ読出工程で読み出された元画像用ディスクリプタに基づいて該メモリ上の元画像を所定の可変長圧縮方法で圧縮処理し該圧縮処理した符号を該ディスクリプタ読出工程で読み出された該メモリの符号用メモリ領域に書き込む圧縮工程と、前記圧縮工程による圧縮処理での符号量及び符号用ディスクリプタ情報等の圧縮情報を前記メモリに書き戻す圧縮情報書き戻し工程とを有し、前記ディスクリプタ読出工程において前記圧縮指示情報設定工程で設定した圧縮情報を読み出して、前記圧縮工程において該ディスクリプタ読出工程で読み出した圧縮情報に基づいて圧縮処理を行うことにより、上記目的を達成している。
【発明の効果】
【0018】
本発明によれば、圧縮手段による圧縮処理での符号量及び符号用ディスクリプタ情報等の圧縮情報をメモリに書き戻し、該書き戻された圧縮情報を利用して圧縮手段が圧縮処理を行うので、画像データの1ページを複数のバンドに分けて可変長圧縮する場合にも、圧縮処理のためのパラメータ設定や圧縮手段の起動等のソフトウェアによる処理を省いて処理効率を向上させることができ、処理速度を向上させることができる。
【発明を実施するための最良の形態】
【0019】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるから、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明において特に本発明を限定する旨の記載がない限り、これらの態様に限られるものではない。
【実施例1】
【0020】
図1〜図7は、本発明の画像形成装置及び画像処理方法の第1実施例を示す図であり、図1は、本発明の画像形成装置及び画像処理方法の第1実施例を適用した画像形成装置1の機能ブロック構成図である。
【0021】
図1において、画像形成装置1は、コピー装置、プリンタ、複合装置等であり、メモリ2、優先順位指示部3、メモリ領域確保部4、圧縮処理パラメータ設定部5、圧縮情報リード部6、圧縮処理完了状態解析部7、割り込み検知部8、圧縮処理起動部、圧縮処理再起動部10及び圧縮処理部11等を備えている。なお、図1には、後述する実施例で用いる符号量予測部12が破線で記載されている。
【0022】
圧縮処理部11は、圧縮パラメータ保持部21、元画像用ディスクリプタリード部22、符号用ディスクリプタリード部23、データ圧縮処理部24、圧縮処理シーケンス制御部25、圧縮情報メモリ書き戻し部26、一時停止状態保持部27及び割り込み発生部28等を備えている。
【0023】
画像形成装置1は、図示しないが、CPU(Central Processing Unit )、大容量不揮発性メモリ(ハードディスク等)及び画像形成エンジン等のハードウェアを備えており、CD(Compact Disc)、MO(光磁気ディスク)、CD−ROM(Compact Disc Read Only Memory )、CD−RW(Compact Disc Rewritable )、DVD(Digital Video Disk)、メモリカードフレキシブルディスク等の記録媒体に記録されている画像処理プログラムと必要なデータを、大容量不揮発性メモリに読み込んで格納して、適宜のOS(Operating System)上で実行することで、後述する画像処理方法を実行する画像形成装置1が構築されている。そして、上記メモリ2と圧縮処理部11は、ハードウェアで実装され、優先順位指示部3、符号量予測部12、メモリ領域確保部4、圧縮処理パラメータ設定部5、圧縮情報リード部6、圧縮処理完了状態解析部7、割り込み検知部8、圧縮処理起動部9、圧縮処理再起動部10及び後述する符号量予測部12は、ソフトウェアで実装されている。
【0024】
メモリ2は、RAM(Random Access Memory)等で構成され、圧縮元の画像データ(元画像データ)、圧縮後の符号(圧縮後画像データ)、元画像保存先のアドレス、サイズ、処理方法等の情報を保持する元画像用ディスクリプタ及び符号保存先のアドレス、サイズ、処理方法等の情報を保持する符号用ディスクリプタ等を保存するとともに、圧縮情報メモリ書き戻し部26によって書き戻されるデータ圧縮部24での圧縮処理によっる圧縮処理に関連する各種圧縮情報を保存する。なお、本実施例の画像形成装置1は、この圧縮情報メモリ書き戻し部26が、メモリ2の符号用ディスクリプタに圧縮情報を書き戻しているが、書き戻すメモリ2の領域としては、符号用ディスクリプタに限るものではなく、メモリ2の領域であって、書き戻された圧縮情報の場所を認識して、読み書きが可能な領域であればよい。
【0025】
優先順位指示部(メモリ確保指示手段)3は、画像形成装置1の保持するメモリ2のメモリ容量等に応じて、システムとしての動作速度を考慮しながら、符号を書き戻すために必要なメモリ量と処理方法を決定して、メモリ領域確保部4に通知する。
【0026】
メモリ領域確保部(メモリ確保手段)4は、優先順位指示部3から通知されるメモリ量と処理方法に基づいて符号書込用のメモリ領域をメモリ2に確保する。
【0027】
圧縮処理パラメータ設定部(圧縮指示情報設定手段)5は、メモリ領域確保部4によって確保されたメモリ2のメモリ領域のアドレス、サイズ、各バンド毎に一時停止割り込みを発生するか否か等の圧縮処理方法を元画像用ディスクリプタ及び符号用ディスクリプタに設定し、また、圧縮方法の指示を圧縮処理部11の圧縮パラメータ保持部21に設定する。
【0028】
圧縮パラメータ保持部21は、圧縮処理パラメータ設定部5によって設定された圧縮方法のパラメータを保持し、該保持した圧縮方法のパラメータをデータ圧縮処理部24に渡す。
【0029】
圧縮処理起動部9は、圧縮処理開始命令を圧縮処理シーケンス制御部25に発行し、圧縮処理シーケンス制御部25は、圧縮処理起動部9から圧縮処理開始命令または一時停止状態保持部27から一時停止を解除して圧縮処理を開始する命令があると、元画像用ディスクリプタリード部22にリード指示を行う。
【0030】
元画像用ディスクリプタリード部(ディスクリプタ読出手段)22は、圧縮処理シーケンス制御部25からリード指示があると、メモリ2から元画像用のディスクリプタ情報をリードし、該リードした情報をデータ圧縮処理部24、圧縮処理シーケンス制御部25に通知する。
【0031】
符号用ディスクリプタリード部(ディスクリプタ読出手段)23は、圧縮処理シーケンス制御部25からリード指示があると、メモリ2から符号用のディスクリプタ情報をリードし、該リードした情報をデータ圧縮処理部24、圧縮処理シーケンス制御部25に通知する。
【0032】
データ圧縮処理部(圧縮手段)24は、圧縮パラメータ保持部21、元画像用ディスクリプタリード部22及び符号用ディスクリプタリード部23から通知されたパラメータに従ってメモリ2上の元画像をリードし、圧縮処理した後、メモリ2に符号を書き戻す。この場合、データ圧縮処理部24は、元画像または符号用のディスクリプタに設定されている1バンドのデータを処理し終わると、圧縮処理シーケンス制御部25からの指示待ちとなる。
【0033】
圧縮処理シーケンス制御部25は、データ圧縮処理部24における圧縮処理状態と、元画像用ディスクリプタリード部22及び符号用ディスクリプタリード部23のディスクリプタ情報に従って次に行うべき動作を判断して、画像用ディスクリプタリード部22、符号用ディスクリプタリード部23、一時停止状態保持部27、割り込み発生部28及び圧縮情報メモリ書き戻し部26等に通知する。
【0034】
圧縮情報メモリ書き戻し部(圧縮情報書き戻し手段)26は、圧縮処理シーケンス制御部25において元画像1バンド分の圧縮処理が完了したと判断されると、元画像がどの程度の符号サイズになったか、符号用ディスクリプタの何バンド目で符号が完結したか等の圧縮情報をメモリ2、特に、符号用ディスクリプタに書き戻す。
【0035】
一時停止状態保持部(一時停止状態保持手段)27は、圧縮処理シーケンス制御部25において元画像の圧縮が全て完了していないにもかかわらず符号を書き込むためのメモリ領域(符号用メモリ領域)と該符号用メモリ領域を示す符号用ディスクリプタが用意されていないと判断された場合、メモリ領域確保と符号用ディスクリプタの用意をするために、一時的にデータ圧縮処理を停止した状態を保持する。
【0036】
割り込み発生部28は、一時停止状態保持部27において用意した符号用ディスクリプタとメモリ領域を使い切ったため、一時停止状態になったことを割り込み検知部8に通知し、また、圧縮処理シーケンス制御部25の用意した符号用ディスクリプタとメモリ領域を使い切ったため、中断したことを割り込み検知部8に通知し、さらに、圧縮処理シーケンス制御部25において全ての元画像の圧縮処理が終了したと判断されると、圧縮動作が終了したことを割り込み検知部8に通知する。なお、上記中断するか、一時停止するかは元画像用ディスクリプタに、圧縮処理パラメータ設定部5によって画像処理方法として設定されている。
【0037】
割り込み検知部8は、割り込み発生部28の発行した一時停止割り込みを検知し、圧縮情報リード部6に一時停止した状態の詳細情報をメモリ2からリードするよう促す。この一時停止品状態の詳細情報は、上記圧縮情報メモリ書き戻し部26によってメモリ2に書き戻された圧縮情報である。また、割り込み検知部8は、割り込み発生部28の発行した中断割り込みを検知し、圧縮情報リード部6に中断した状態の詳細情報をメモリ2からリードするよう促す。さらに、割り込み検知部8は、割り込み発生部28の発行した完了割り込みを検知し、圧縮情報リード部6に完了状態の詳細情報をメモリからリードするよう促す。
【0038】
圧縮情報リード部6は、圧縮情報メモリ書き戻し部26によってメモリ2に書き戻された圧縮後の符号サイズと符号用ディスクリプタの何バンド目で符号が完結したかの情報を読み出して、メモリ領域確保部4及び圧縮処理完了状態解析部7に渡す。
【0039】
圧縮処理再起動部10は、割り込み検知部8によって一時停止状態にあることを検知し、メモリ領域確保部4によってメモリ2のメモリ領域が再確保された後で、圧縮動作を再開するよう一時停止状態保持部27に通知する。
【0040】
圧縮処理完了状態解析部7は、圧縮情報リード部6の取得した情報から符号サイズや膨張した符号を特定し、優先順位指示部3に通知する。圧縮処理完了状態解析部7は、圧縮の結果、膨張した場合は、優先順位指示部3及びメモリ領域確保部4を介してメモリ2の符号を破棄し、元画像を利用する場合は、解析結果を用いて、ハードディスクに保存したり、印刷エンジンに転送したり等の出力処理を行う出力用のデータを決定する。
【0041】
次に、本実施例の作用を説明する。本実施例の画像形成装置1は、圧縮情報メモリ書き戻し部26で圧縮時の圧縮情報をメモリ2、具体的には、メモリ2の符号用ディスクリプタに書き戻すことで、ハードウェアである圧縮処理部11での連続処理を可能として、処理速度を向上させている。
【0042】
なお、本実施例においては、画像を以下の条件で可変長圧縮符号方式で圧縮する場合について、図2及び図3の画像圧縮処理を示すフローチャートに基づいて説明する。
条件1:符号の保存方法:符号が膨張した場合には、元画像を保存する。
条件2:メモリ確保方法:メモリ2のメモリ領域を、元画像:圧縮後符号=1:1で確保する。
条件3:圧縮完了判定方法:圧縮完了割り込みと一時停止割り込みを用いて圧縮完了判定を行う。
【0043】
画像形成装置1は、まず、図2に示すように、優先順位指示部3が、処理速度を優先させるために、符号化後の画像データである符号が元画像と同じサイズになってしまっても保存できるように、圧縮後の符号を保存するためのメモリ領域として、例えば、図4に示すように、元画像と同じサイズのメモリ領域(元画像:圧縮後符号=1:1)を確保させる指示(優先順位指示)をメモリ領域確保部4及び符号量予測部12に行う(ステップS101)。なお、ここで、処理速度を優先させるために、元画像と同じサイズのメモリ領域を符号保存用に確保しているのは、可変長符号の符号化アルゴリズムにもよるが、通常、元画像のサイズよりも符号のサイズが大きくなることは稀だからである。
【0044】
次に、メモリ領域確保部4が、優先順位指示部3から指示された符号用のメモリ領域をメモリ2のシステムメモリ領域の中から確保する(ステップS102)。
【0045】
メモリ領域確保部4は、メモリ2に元画像のサイズや先頭アドレスの書かれたディスクリプタと呼ばれる情報群を保存する。この元画像用ディスクリプタは、連続して保存する画像の枚数分用意され、ディスクリプタで指定される画像の一枚一枚は、元画像をさらに細かく分割したもの(バンド)であってもよく、この場合、元画像と同じバンド数分符号書込先として符号用メモリ領域を確保する。そして、ディスクリプタには、それぞれ次に処理するバンドを示すディスクリプタの先頭アドレスも合わせて記録されているため、圧縮処理シーケンス制御部25は、1バンドの処理が終了すると、次のバンドのディスクリプタをリードするというchain動作を行い、連続して複数枚のバンドを圧縮処理することができる。メモリ領域確保部4は、同様に、圧縮後の符号を保存するために、上記確保したバンド(メモリ領域)を示すディスクリプタを作成し、メモリ2に保存するとともに、最終バンドの元画像用ディスクリプタへは、圧縮が完了しなかった場合には、一時停止するように設定する(ステップS103)。
【0046】
さらに、圧縮処理パラメータ設定部5が、例えば、画像の主走査長やメモリ幅、圧縮方式や圧縮パラメータ等、バンド間で共通のパラメータを作成して、圧縮パラメータ保持部21に保存し、また、一時停止解除後のパラメータを保存する(ステップS104)。これらのパラメータは、圧縮動作を行う際にデータ圧縮処理部24から参照されるため、圧縮処理パラメータ設定部5は、これらのパラメータをレジスタに保持する。すなわち、圧縮処理パラメータ設定部5は、ディスクリプタやレジスタに、ハードウェアである圧縮処理部11で処理する圧縮元画像データと圧縮後の符号、圧縮方法等の設定を行う。この場合、図4に示すように、圧縮処理パラメータ設定部5は、複数の符号をソフトウェアの介在無しでハードウェアである圧縮処理部11により連続して圧縮処理動作を行えるように、ディスクリプタを複数用意し、ディスクリプタ間がchainするように設定する。
【0047】
そして、圧縮処理に必要な全てのパラメータがメモリ2及びレジスタに保存されると、圧縮処理パラメータ設定部5が、圧縮処理起動部9に圧縮処理を開始するよう命令を発行し(ステップS105)、圧縮処理起動部9が圧縮処理シーケンス制御部25に圧縮処理開始命令を出し、圧縮処理シーケンス制御部25が、元画像用ディスクリプタリード部22にディスクリプタのリード命令を出して、圧縮処理に先立って、まず、元画像用ディスクリプタリード部22が、1バンド目の元画像用ディスクリプタをメモリ2からリードし(ステップS106)、符号用ディスクリプタリード部23が、1バンド目の符号用ディスクリプタをメモリ2からリードする(ステップS107)。
【0048】
必要なパラメータが揃うと、データ圧縮処理部24が、図4に示したように、圧縮処理を開始し、元画像用ディスクリプタにあるメモリ2上のアドレスから元画像をリードし、圧縮パラメータに従って圧縮処理して、圧縮処理した符号を符号用ディスクリプタに指示されたメモリ2のアドレスに書き戻す(ステップS108)。
【0049】
圧縮処理シーケンス制御部25は、データ圧縮処理部24による圧縮処理を開始すると、元画像1バンド分の圧縮処理が完了したかチェックし(ステップS109)、完了していないときには、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS110)、符号用のメモリ領域とディスクリプタがあるときには、ステップS107に戻って、符号用ディスクリプタをリードして、圧縮を継続して元画像1バンド分の圧縮が完了したかチェックする(ステップS107〜S109)。
【0050】
ステップS109で、符号用に用意したメモリ領域1バンドが埋まる前に元画像の1バンドの圧縮が完了すると、圧縮処理シーケンス制御部25は、元画像1バンドが圧縮の結果どんな大きさの符号になったかと、このバンドでの元画像の圧縮が終了したことを示すWBフラグ(ライトバックフラグ)をメモリ2上の符号用ディスクリプタに書き戻し(ステップS111)、全元画像の圧縮が完了したかチェックする(ステップS112)。すなわち、符号が元画像と比較して膨張した場合は、元画像1バンド分を圧縮し終わる前に符号書込用に用意した1バンドのメモリ領域(符号用メモリ領域)が一杯になるため、次の符号領域に符号を書き込むために次の符号用ディスクリプタをリードする処理に移行する。図2の処理では、元画像と符号用メモリ領域を1:1のサイズで用意しているので、この場合、処理中の元画像が膨張したことを示しており、この場合に、次の符号用バンドで元画像1バンドの残り部分の圧縮が終了すると、ステップS109で、YESとなり、元画像1バンドの圧縮が終了したときの符号用ディスクリプタに符号量とWBフラグが書き戻される(ステップS111)。
【0051】
次に、ステップS112で、全ての元画像の圧縮が完了していないときには、圧縮処理シーケンス制御部25は、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS113)、符号用のメモリ領域とディスクリプタがあるときには、ステップS106に戻って、元画像用ディスクリプタに記録された次の元画像用ディスクリプタの先頭アドレスを参照して、元画像用ディスクリプタを読み出して、同様に符号用ディスクリプタも次の新しいものを読み出し、元画像1バンドを符号化して新たな符号用メモリ領域に符号化されたデータを書き込む処理から上記同様に処理する(ステップS106〜S113)。すなわち、ステップS113において、符号用メモリ領域がまだ確保されている状態で、連続で処理する元画像のバンドがまだ残っている場合(YESの場合)、元画像用ディスクリプタに記録された次の元画像用ディスクリプタの先頭アドレスを参照してディスクリプタを読み出し(ステップS106)、同様に符号用ディスクリプタも次の新しいものを読み出して(ステップS107)、元画像1バンドを符号化して新たな符号用メモリ領域に符号化されたデータを書き込む処理を行う(ステップS108)。
【0052】
ステップS110で、元画像1バンド分の圧縮が完了していない状態で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、図5に示すように、圧縮処理を一時停止し(ステップS114)、また、ステップS112で、全ての元画像の圧縮が完了する前に、ステップS113で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、図3に示すように、圧縮処理シーケンス制御部25は、データ圧縮処理部24での圧縮処理を一時停止に移行させて、一時停止状態保持部27にメモリ領域確保と符号用ディスクリプタを用意するために、一時的にデータ圧縮処理を停止した状態を保持し(ステップS114)、割り込み発生部28に一時停止状態に入ったことを通知する(ステップS115)。すなわち、本実施例では、元画像と符号用メモリ領域を1:1のサイズで用意しているため、1バンドでも膨張が発生した場合には、圧縮処理が完了せず、一時停止状態となる。
【0053】
割り込み発生部28は、一時停止状態になったことを割り込み検知部8に通知し(ステップS116)、割り込み検知部8が一時停止状態になったことを検知すると、圧縮情報リード部6が、メモリ2から符号サイズとWBフラグを読み込んで、圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べて、一時停止に入ったときの元画像の圧縮進捗状況を判断する(ステップS117)。
【0054】
圧縮処理完了状態解析部7は、圧縮情報リード部6によって、圧縮が終了していない元画像のバンドがいくつあるかを解析すると、残っている元画像と同じサイズのメモリ領域を確保するように判断してメモリ領域確保部4にメモリ領域確保の優先順位指示を行い(ステップS118)、メモリ領域確保部4がメモリを確保する(ステップS119)。すなわち、図6に示すように、圧縮情報メモリ書き戻し部26の書き戻した情報から膨張した符号を書き込んだメモリ領域の情報を取得して、そのメモリ領域を新たに次の符号を書き込む領域として確保する。そして、本実施例では、符号が膨張した場合に元画像を保存するとともに、元画像と符号用メモリ領域を1:1で確保する条件としているため、既に膨張したことが分かっている符号を書き込んだメモリ領域を破棄し、残りの元画像の圧縮後の符号を書き込むためのメモリ領域として再利用することができる。
【0055】
次に、圧縮処理パラメータ設定部5は、確保し直したメモリ領域の情報を新たな符号用ディスクリプタとしてメモリに書き戻し(ステップS120)、必要に応じてレジスタへの符号化パラメータの変更を行って、レジスタに保持させ(ステップS121)、一時停止状態にある圧縮処理の再開の命令を圧縮再起動部11に出して(ステップS122)、図2に示すステップS106に戻って、元画像用ディスクリプタのリードから上記同様に処理する(ステップS106〜S122)。
【0056】
そして、図2のステップS112において、全ての元画像の圧縮が完了すると、図3に示すように、割り込み発生部28が、完了割り込みを割り込み検知部8に発生し(ステップS123)、割り込み検知部8は、完了割り込みを検知して、圧縮情報リード部6に通知する(ステップS124)。
【0057】
圧縮情報リード部6は、用意した符号用ディスクリプタを全て読み込み(ステップS125)、ステップS111で圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べる。これによって、各元画像が膨張したか、符号サイズはいくつになったかを知ることができる。すなわち、本実施例では、バンド毎に、膨張した場合は元画像を出力用(印刷出力用、ハードディスク等への保存出力用等)として保存し、小さくなった場合は符号を出力用として保存する。符号を保存する場合は、圧縮処理パラメータ設定部5は、ステップS125で読み込んだ圧縮後の符号サイズを、符号の属性として同時にメモリ2に保管する(ステップS126)。
【0058】
すなわち、本実施例の画像形成装置1は、圧縮で膨張した符号がない場合には、図4に示したように、元画像C,M,Y,Kの4バンドを1回のハードウェア起動で圧縮処理し、膨張した符号がなかったために、そのまま圧縮処理を完了する。この場合、WBフラグ及び符号量(圧縮サイズ)は、各符号用ディスクリプタに書き戻され、圧縮情報リード部6によって読み取られた符号用ディスクリプタ情報から全ての符号用ディスクリプタにWBフラグが立っており、元画像1バンドにつき符号1バンドが生成されたことが、圧縮処理完了状態解析部7によって判断される。また、保存される符号のサイズは、圧縮情報リード部6が、同時に読み込んで、その値を符号の属性情報として保管する。
【0059】
一方、本実施例の画像形成装置1は、圧縮で膨張して用意した符号用メモリ領域に書ききれないとき、例えば、図5に示したように、元画像C,M,Y,Kの4バンドのうち、2バンド目の元画像Mが膨張してしまったため、用意したM用の符号用メモリ領域に書ききれないときには、圧縮処理を一時停止する。すなわち、図5では、元画像Mが膨張し、符号用メモリ領域を2バンド分(または、2バンド目の途中まで)消費しており、圧縮情報メモリ書き戻し部26によるWBフラグと符号サイズの書き戻しは、符号ディスクリプタの2枚目には行われておらず、圧縮情報リード部6で、CPUがディスクリプタをリードした際、2枚目のディスクリプタにはWBフラグがないため、膨張したと判断することができる。
【0060】
そして、画像形成装置1は、図5のようにして圧縮処理を一時停止状態とすると、図6に示すように、元画像K用の符号用メモリ領域を再確保し、一時停止状態を解除して、圧縮を継続する。すなわち、一時停止状態ではWBフラグが3つ立っているので、用意した元画像C,M,Y,Kのうち、最後の元画像Kのみが圧縮を終了していないと判断することができ、図3のステップS119のメモリ領域再確保処理で、元画像Kと同じ大きさの符号用メモリ領域を符号M用であったメモリ領域に確保して、一時停止状態を解除する。すなわち、圧縮情報リード部6は、元画像Mが膨張していることが分かっているため、元画像Mの符号を書き込んだメモリ領域を破棄し、そのメモリ領域を符号K用に再確保して利用している。
【0061】
このように、本実施例の画像形成装置1は、データ圧縮処理部24による圧縮処理での符号量及び符号用ディスクリプタ情報等の圧縮情報を圧縮情報メモリ書き戻し部26がメモリ2に書き戻し、該書き戻された圧縮情報を利用してデータ圧縮処理部24が圧縮処理を行っている。
【0062】
したがって、画像データの1ページを複数のバンドに分けて可変長圧縮する場合にも、圧縮処理のためのパラメータ設定やデータ圧縮処理部24の起動等のソフトウェアによる処理を省いて処理効率を向上させることができ、処理速度を向上させることができる。
【0063】
また、本実施例の画像形成装置1は、元画像と符号用メモリ領域を1:1のサイズで用意しているので、画像の特性によっては稀な確率で膨張することはあるが、ほとんどの場合、一時停止状態になることもなく、一回のメモリ確保と圧縮処理起動動作のみで複数バンドの元画像を符号に圧縮することができ、データ圧縮処理部24の起動、メモリ確保処理の時間を大幅に削減することができ、処理速度を大幅に向上させることができる。
【0064】
さらに、本実施例の画像形成装置1は、符号用メモリ領域の不足等の理由で圧縮処理の一時停止が発生すると、一時停止状態保持部27が該一時停止状態を保持し、該一時停止状態中に、圧縮情報リード部6が圧縮情報メモリ書き戻し部26がメモリ2に書き戻した圧縮情報を読み出し、該読み出された圧縮情報に基づいてメモリ領域確保部4が符号用メモリ領域の再確保を行い、圧縮処理パラメータ設定部5が該再確保された符号用メモリ領域情報等に基づいて圧縮指示情報を再設定し、一時停止状態が解除されると、該再設定された圧縮指示情報に応じてデータ圧縮処理部24による圧縮処理を再開している。
【0065】
したがって、途中まで圧縮した元画像を最初から再圧縮する無駄を省くことができ、処理速度をより一層向上させることができる。
【0066】
また、本実施例の画像形成装置1は、優先順位指示部3が、ユーザの設定等に応じて符号用メモリ領域のメモリ確保量として適宜のメモリ量を指示し、メモリ領域確保部4が該指示に応じた符号用メモリ領域をメモリ2に確保している。
【0067】
したがって、圧縮後の符号のメモリ確保量と処理速度等の条件を考慮して、適宜設定された符号用メモリ領域のメモリ量を確保して、利用性を向上させつつ、処理速度を向上させることができる。
【0068】
さらに、本実施例の画像形成装置1は、圧縮処理での符号サイズ等の圧縮完了状態を圧縮処理完了状態解析部7で解析して、圧縮処理によって元画像データよりも符号が膨張したことを解析すると、該符号を破棄して該元画像データをメモリ2に格納している。
【0069】
したがって、データ保存容量を最小限に抑制することができるとともに、データ保存領域を一定サイズ以下にしてシステム設計することができ、コストを削減することができる。
【実施例2】
【0070】
図7〜図11は、本発明の画像形成装置及び画像処理方法の第2実施例を示す図であり、図7及び図8は、本発明の画像形成装置及び画像処理方法の第2実施例を適用した画像形成装置による画像圧縮処理を示すフローチャートである。
【0071】
なお、本実施例は、上記第1実施例の画像形成装置1と同様の画像形成装置に適用したものであり、本実施例の説明においては、上記第1実施例で用いた符号をそのまま用いて説明する。
【0072】
本実施例の画像形成装置1は、画像を以下の条件で可変長圧縮符号方式で圧縮する。
条件1:符号の保存方法:符号が膨張した場合には、元画像を保存する。
条件2:メモリ確保方法:メモリ2のメモリ領域を、元画像:圧縮後符号=4:1で確保する。メモリを再確保する場合にも、元画像1バンドの1/4のサイズの符号用バンドを4バンドセットで確保する。
条件3:圧縮完了判定方法:圧縮完了割り込みと一時停止割り込みを用いて圧縮完了判定を行う。
【0073】
すなわち、第1実施例の場合の条件と異なるのは、メモリ確保方法のみであり、第1実施例の場合、元画像:圧縮後符号=1:1であったものを、元画像:圧縮後符号=4:1としたものである。
【0074】
そこで、本実施例の説明においては、図7及び図8の画像圧縮処理のフローチャートにおいて、図2及び図3に示した第1実施例の画像圧縮処理のフローチャートと同様の処理ステップには、同一のステップ番号を付して、その説明を簡略化する。
【0075】
画像形成装置1は、図7において、まず、優先順位指示部3が、メモリ2の有効利用を図るために、符号化後の画像データである符号が元画像の1/4以下のサイズの場合に保存できるように、図9に示すように、圧縮後の符号を保存するためのメモリ領域として、元画像の1/4のサイズのメモリ領域(元画像:圧縮後符号=4:1)を確保させる指示(優先順位指示)をメモリ領域確保部4及び符号量予測部12に行う(ステップS201)。
【0076】
次に、メモリ領域確保部4が、優先順位指示部3から指示された符号用のメモリ領域として、元画像の1/4のサイズのメモリ領域を4バンド分符号書込先として確保する(ステップS202)。
【0077】
メモリ領域確保部4は、同様に、圧縮後の符号を保存するために、上記確保したバンド(メモリ領域)を示すディスクリプタを作成し、特に、最終バンドの元画像用ディスクリプタへは、圧縮が完了しなかった場合には、一時停止するよう設定して、メモリ2に保存する(ステップS103)。
【0078】
さらに、圧縮処理パラメータ設定部5が、例えば、画像の主走査長やメモリ幅、圧縮方式や圧縮パラメータ等、バンド間で共通のパラメータを作成して、圧縮パラメータ保持部21に保存し、また、一時停止解除後のパラメータをレジスタに保存する(ステップS104)。
【0079】
そして、圧縮処理に必要な全てのパラメータがメモリ2及びレジスタに保存されると、圧縮処理パラメータ設定部5が、圧縮処理起動部9に圧縮処理を開始するよう命令を発行し、圧縮処理起動部9が圧縮処理シーケンス制御部25に圧縮処理開始命令を出し、圧縮処理シーケンス制御部25が元画像用ディスクリプタリード部22にディスクリプタのリード命令を出して、圧縮処理に先立って、まず、元画像用ディスクリプタリード部22が、1バンド目の元画像用ディスクリプタをメモリ2からリードし(ステップS106)、符号用ディスクリプタリード部23が、1バンド目の符号用ディスクリプタをメモリ2からリードする(ステップS107)。
【0080】
必要なパラメータが揃うと、データ圧縮処理部24が、図9に示したように、圧縮処理を開始し、元画像用ディスクリプタにあるメモリ2上のアドレスから元画像をリードし、圧縮パラメータに従って圧縮処理して、圧縮処理した符号を符号用ディスクリプタに指示されたメモリ2のアドレスに書き戻す(ステップS108)。
【0081】
圧縮処理シーケンス制御部25は、データ圧縮処理部24による圧縮処理を開始すると、元画像1バンド分の圧縮処理が完了したかチェックし(ステップS109)、完了していないときには、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS110)、符号用のメモリ領域とディスクリプタがあるときには、ステップS107に戻って、符号用ディスクリプタをリードして、圧縮を継続して元画像1バンド分の圧縮が完了したかチェックする(ステップS107〜S109)。
【0082】
ステップS109で、符号用に用意したメモリ領域1バンドが埋まる前に元画像の1バンドの圧縮が完了すると、圧縮処理シーケンス制御部25は、元画像1バンドが圧縮の結果どんな大きさの符号になったかと、このバンドでの元画像の圧縮が終了したことを示すWBフラグ(ライトバックフラグ)をメモリ2上の符号用ディスクリプタに書き戻し(ステップS111)、全元画像の圧縮が完了したかチェックする(ステップS112)。
【0083】
ステップS112で、全ての元画像の圧縮が完了していないときには、圧縮処理シーケンス制御部25は、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS113)、符号用のメモリ領域とディスクリプタがあるときには、ステップS106に戻って、元画像用ディスクリプタに記録された次の元画像用ディスクリプタの先頭アドレスを参照して、元画像用ディスクリプタを読み出して、同様に符号用ディスクリプタも次の新しいものを読み出し、元画像1バンドを符号化して新たな符号用メモリ領域に符号化されたデータを書き込む処理から上記同様に処理する(ステップS106〜S113)。
【0084】
ステップS110で、元画像1バンド分の圧縮が完了していない状態で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、図8に示すように、圧縮処理を一時停止し(ステップS114)、また、ステップS113で、全ての元画像の圧縮が完了する前に、符号用のメモリ領域がなくなるか、図10に示すように、ディスクリプタが無くなると、圧縮処理シーケンス制御部25は、データ圧縮処理部24での圧縮処理を一時停止に移行させて、一時停止状態保持部27にメモリ領域確保と符号用ディスクリプタを用意するために、一時的にデータ圧縮処理を停止した状態を保持し(ステップS114)、割り込み発生部28に一時停止状態に入ったことを通知する(ステップS115)。すなわち、本実施例の場合、ディスクリプタが無くなることで、元画像を圧縮した符号が膨張したことが分かる。
【0085】
割り込み発生部28は、一時停止状態になったことを割り込み検知部8に通知し(ステップS116)、割り込み検知部8が一時停止状態になったことを検知すると、圧縮情報リード部6が、メモリ2から符号サイズとWBフラグを読み込んで、圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べて、一時停止に入ったときの元画像の圧縮進捗状況を判断する(ステップS117)。
【0086】
圧縮処理完了状態解析部7は、圧縮情報リード部6によって、圧縮が終了していない元画像のバンドがいくつあるかを解析すると、残っている元画像の1/4のサイズのメモリ領域を元画像の残りバンド数分確保するように判断してメモリ領域確保部4にメモリ領域確保の優先順位指示を行い(ステップS203)、メモリ領域確保部4がメモリを確保する(ステップS204)。すなわち、図11に示すように、圧縮情報メモリ書き戻し部26の書き戻した情報から膨張した符号を書き込んだメモリ領域の情報を受け取り、そのメモリ領域を新たに次の符号を書き込む領域として確保する。そして、本実施例では、符号が膨張した場合に元画像を保存するとともに、元画像と符号用メモリ領域を4:1で確保する条件としているため、符号が膨張したかどうかの判断は、符号が5バンド以上になることを確認してからでなければ行うことができない。したがって、膨張したことが判明するまでは、すなわち、1バンドの元画像が符号用バンド5枚以上になるまでは、そのメモリ領域を再利用することはできない。例えば、図11に示すように、符号用ディスクリプタが無くなってしまったときには、膨張が確定していない状態で、一時停止状態になり、この場合は、新たなメモリ領域を確保し直さなければならない。
【0087】
次に、圧縮処理パラメータ設定部5は、確保し直したメモリ領域の情報を新たな符号用ディスクリプタとしてメモリに書き戻し(ステップS120)、必要に応じてレジスタへの符号化パラメータの変更を行って、レジスタに保持させ(ステップS121)、一時停止状態にある圧縮処理の再開の命令を圧縮再起動部11に出して(ステップS122)、ステップS106に戻って、元画像用ディスクリプタのリードから上記同様に処理する(ステップS106〜S122)。
【0088】
そして、図7のステップS112において、全ての元画像の圧縮が完了すると、図8に示すように、割り込み発生部28が、完了割り込みを割り込み検知部8に発生し(ステップS123)、割り込み検知部8は、完了割り込みを検知して、圧縮情報リード部6に通知する(ステップS124)。
【0089】
圧縮情報リード部6は、用意した符号用ディスクリプタを全て読み込み(ステップS125)、ステップS111で圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べる。これによって、各元画像が膨張したか、符号サイズはいくつになったかを知ることができる。すなわち、本実施例では、バンド毎に、膨張した場合は元画像を保存し、小さくなった場合は符号を保存する。符号を保存する場合は、圧縮処理パラメータ設定部5が、ステップS125で読み込んだ圧縮後の符号サイズを、符号の属性として同時にメモリ2に保管する(ステップS126)。
【0090】
すなわち、本実施例の画像形成装置1は、圧縮で膨張した符号がない場合には、図9に示したように、元画像C,M,Y,Kの4バンドを1回のハードウェア起動で圧縮処理し、1/4以下のサイズの符号になって膨張した符号がなかったために、そのまま圧縮処理を完了する。この場合、WBフラグ及び符号量(圧縮サイズ)は、各符号用ディスクリプタに書き戻され、圧縮情報リード部6によって読み取られた符号用ディスクリプタ情報から全ての符号用ディスクリプタにWBフラグが立っており、元画像4バンドにつき符号1バンドが生成されたことが、圧縮処理完了状態解析部7によって判断される。また、保存される符号のサイズは、圧縮情報リード部6が、同時に読み込んで、その値を符号の属性情報として保管する。
【0091】
一方、本実施例の画像形成装置1は、圧縮で膨張して用意した符号用メモリ領域に書ききれないとき、例えば、図10に示したように、元画像C,M,Y,Kの4バンドのうち、元画像Mが膨張してしまい、用意した符号用メモリ領域に書ききれずに、符号用ディスクリプタが無くなると、圧縮処理を一時停止する。すなわち、図10では、元画像Mが膨張し、符号用メモリ領域を3バンド分を消費しており、圧縮情報メモリ書き戻し部26によるWBフラグと符号サイズの書き戻しは、符号ディスクリプタの2枚目、3枚目、4枚目には行われておらず、圧縮情報リード部6で、ディスクリプタをリードした際、WBフラグがないため、元画像Mの圧縮が終了していないと判断することができる。
【0092】
そして、画像形成装置1は、図10のようにして圧縮処理を一時停止状態とすると、図11に示すように、元画像M,Y,K用の符号用メモリ領域を再確保し、一時停止状態を解除して、圧縮を継続する。すなわち、一時停止状態ではWBフラグが1つだけ立っているので、用意した元画像C,M,Y,Kのうち、元画像M,Y,Kが圧縮を終了していないと判断することができ、図7のステップS204のメモリ領域再確保処理で、図11に示すように、元画像の1/4の大きさの符号用メモリ領域を4バンド分確保して、一時停止状態を解除する。すなわち、圧縮情報リード部6は、元画像Mが膨張しているかどうかは分からないため、元画像Mの符号を書き込んだメモリ領域は破棄することができず、ステップS204のメモリ領域再確保処理では、新たな領域を確保して利用している。
【0093】
このように、本実施例の画像形成装置1は、元画像と符号用メモリ領域を4:1のサイズでメモリ2のメモリ領域の確保を行っているため、必要なメモリサイズを削減することができ、コストを削減することができる。また、本実施例の画像形成装置1は、少ないメモリ容量で処理を行うことができるため、複数の処理を同時に実行する場合に、他のアプリケーションをメモリ確保によって邪魔することを抑制することができ、有限のメモリ量を有効活用して、画像形成装置1としてのパフォーマンスを向上させることができる。
【0094】
なお、この元画像と符号用メモリ領域の比率は、4:1に限るものではなく、圧縮アルゴリズムの平均圧縮率や最低圧縮率とその頻度によって適宜設定して、メモリの確保を指示してもよい。
【実施例3】
【0095】
図12及び図13は、本発明の画像形成装置及び画像処理方法の第3実施例を適用した画像形成装置による画像圧縮処理を示すフローチャートである。
【0096】
なお、本実施例は、上記第1実施例の画像形成装置1と同様の画像形成装置に適用したものであり、本実施例の説明においては、上記第1実施例で用いた符号をそのまま用いて説明する。
【0097】
本実施例の画像形成装置1は、画像を以下の条件で可変長圧縮符号方式で圧縮する。
条件1:符号の保存方法:符号が膨張した場合には、符号を保存する。
条件2:メモリ確保方法:メモリ2のメモリ領域を、速度優先させるため、元画像:圧縮後符号=1:1で確保する。
条件3:圧縮完了判定方法:圧縮完了割り込みと一時停止割り込みを用いて圧縮完了判定を行う。
【0098】
すなわち、第1実施例の場合の条件と異なるのは、符号の保存方法のみであり、第1実施例の場合、圧縮で膨張すると、元画像を保存しているが、本実施例では、膨張しても、符号を保存する。
【0099】
そこで、本実施例の説明においては、図12及び図13の画像圧縮処理のフローチャートにおいて、図2及び図3に示した第1実施例の画像圧縮処理のフローチャートと同様の処理ステップには、同一のステップ番号を付して、その説明を簡略化する。
【0100】
画像形成装置1は、図12に示すように、まず、優先順位指示部3が、処理速度を優先させるために、符号化後の画像データである符号が元画像と同じサイズになってしまっても保存できるように、圧縮後の符号を保存するためのメモリ領域として、元画像と同じサイズのメモリ領域(元画像:圧縮後符号=1:1)を確保させる指示(優先順位指示)をメモリ領域確保部4及び符号量予測部12に行う(ステップS101)。
【0101】
次に、メモリ領域確保部4が、優先順位指示部3から指示された符号用のメモリ領域をメモリ2のシステムメモリ領域の中から確保する(ステップS102)。
【0102】
そして、ディスクリプタには、それぞれ次に処理するバンドを示すディスクリプタの先頭アドレスも合わせて記録されているため、圧縮処理シーケンス制御部25は、1バンドの処理が終了すると、次のバンドのディスクリプタをリードするというchain動作を行い、連続して複数枚のバンドを圧縮処理することができる。メモリ領域確保部4は、同様に、圧縮後の符号を保存するために、上記確保したバンド(メモリ領域)を示すディスクリプタを作成し、メモリ2に保存する(ステップS103)。
【0103】
さらに、圧縮処理パラメータ設定部5が、例えば、画像の主走査長やメモリ幅、圧縮方式や圧縮パラメータ等、バンド間で共通のパラメータを作成して、圧縮パラメータ保持部21に保存し、また、一時停止解除後のパラメータを保存する(ステップS104)。
【0104】
そして、圧縮処理に必要な全てのパラメータがメモリ2及びレジスタに保存されると、圧縮処理パラメータ設定部5が、圧縮処理起動部9に圧縮処理を開始するよう命令を発行し、圧縮処理起動部9が、圧縮処理シーケンス制御部25に圧縮処理開始命令を出し、圧縮処理シーケンス制御部25が元画像用ディスクリプタリード部22にディスクリプタのリード命令を出して、圧縮処理に先立って、まず、元画像用ディスクリプタリード部22が、1バンド目の元画像用ディスクリプタをメモリ2からリードし(ステップS106)、符号用ディスクリプタリード部23が、1バンド目の符号用ディスクリプタをメモリ2からリードする(ステップS107)。
【0105】
必要なパラメータが揃うと、データ圧縮処理部24が、圧縮処理を開始し、元画像用ディスクリプタにあるメモリ2上のアドレスから元画像をリードし、圧縮パラメータに従って圧縮処理して、圧縮処理した符号を符号用ディスクリプタに指示されたメモリ2のアドレスに書き戻す(ステップS108)。
【0106】
圧縮処理シーケンス制御部25は、データ圧縮処理部24による圧縮処理を開始すると、元画像1バンド分の圧縮処理が完了したかチェックし(ステップS109)、完了していないときには、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS110)、符号用のメモリ領域とディスクリプタがあるときには、ステップS107に戻って、符号用ディスクリプタをリードして、圧縮を継続して元画像1バンド分の圧縮が完了したかチェックする(ステップS107〜S109)。
【0107】
ステップS109で、符号用に用意したメモリ領域1バンドが埋まる前に元画像の1バンドの圧縮が完了すると、圧縮処理シーケンス制御部25は、元画像1バンドが圧縮の結果どんな大きさの符号になったかと、このバンドでの元画像の圧縮が終了したことを示すWBフラグ(ライトバックフラグ)をメモリ2上の符号用ディスクリプタに書き戻し(ステップS111)、全元画像の圧縮が完了したかチェックする(ステップS112)。
【0108】
ステップS112で、全ての元画像の圧縮が完了していないときには、圧縮処理シーケンス制御部25は、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS113)、符号用のメモリ領域とディスクリプタがあるときには、ステップS106に戻って、元画像用ディスクリプタに記録された次の元画像用ディスクリプタの先頭アドレスを参照して、元画像用ディスクリプタを読み出して、同様に符号用ディスクリプタも次の新しいものを読み出し、元画像1バンドを符号化して新たな符号用メモリ領域に符号化されたデータを書き込む処理から上記同様に処理する(ステップS106〜S113)。
【0109】
ステップS110で、元画像1バンド分の圧縮が完了していない状態で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、図13に示すように、圧縮処理を一時停止し(ステップS114)、また、ステップS112で、全ての元画像の圧縮が完了する前に、ステップS113で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、圧縮処理シーケンス制御部25は、データ圧縮処理部24での圧縮処理を一時停止に移行させて、一時停止状態保持部27にメモリ領域確保と符号用ディスクリプタを用意するために、一時的にデータ圧縮処理を停止した状態を保持し(ステップS114)、割り込み発生部28に一時停止状態に入ったことを通知する(ステップS115)。すなわち、本実施例の場合、元画像と符号用メモリ領域を1:1のサイズで用意しているため、1バンドでも膨張が発生した場合には、圧縮処理が完了せず、一時停止状態となる。
【0110】
割り込み発生部28は、一時停止状態になったことを割り込み検知部8に通知し(ステップS116)、割り込み検知部8が一時停止状態になったことを検知すると、圧縮情報リード部6が、メモリ2から符号サイズとWBフラグを読み込んで、圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べて、一時停止に入ったときの元画像の圧縮進捗状況を判断する(ステップS117)。
【0111】
圧縮情報リード部6によって、圧縮が終了していない元画像のバンドがいくつあるかを解析すると、残っている元画像と同じサイズのメモリ領域を確保するように判断してメモリ領域確保部4にメモリ領域確保の優先順位指示を行い(ステップS118)、メモリ領域確保部4がメモリを確保する(ステップS301)。すなわち、圧縮情報メモリ書き戻し部26の書き戻した情報から膨張した符号を書き込んだメモリ領域の情報を受け取り、そのメモリ領域を新たに次の符号を書き込む領域として確保する。そして、本実施例では、符号が膨張した場合であっても符号を保存するとともに、元画像と符号用メモリ領域を1:1で確保している条件としているため、既に膨張したことが分かっている符号を書き込んだメモリ領域を破棄することなく、残りの元画像の圧縮後の符号を書き込むためのメモリ領域を確保する。
【0112】
次に、圧縮処理パラメータ設定部5は、確保し直したメモリ領域の情報を新たな符号用ディスクリプタとしてメモリに書き戻し(ステップS120)、必要に応じてレジスタへの符号化パラメータの変更を行って、レジスタに保持させ(ステップS121)、一時停止状態にある圧縮処理の再開の命令を圧縮再起動部11に出して(ステップS122)、ステップS106に戻って、元画像用ディスクリプタのリードから上記同様に処理する(ステップS106〜S301〜S122)。
【0113】
そして、図12のステップS112において、全ての元画像の圧縮が完了すると、図13に示すように、割り込み発生部28が、完了割り込みを割り込み検知部8に発生し(ステップS123)、割り込み検知部8は、完了割り込みを検知して、圧縮情報リード部6に通知する(ステップS124)。
【0114】
圧縮情報リード部6は、用意した符号用ディスクリプタを全て読み込み(ステップS125)、ステップS111で圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べる。これによって、各元画像が膨張したか、符号サイズはいくつになったかを知ることができる。すなわち、本実施例では、バンド毎に、圧縮処理で、膨張した場合も、小さくなった場合も、符号を出力用として保存し、符号を保存する場合は、ステップS125で読み込んだ圧縮後の符号サイズを、符号の属性として同時にメモリ2に保管する(ステップS302)。
【0115】
このように、本実施例の画像形成装置1は、元画像を圧縮した結果の符号が元画像よりも膨張したかどうかに関わらず符号のみをメモリ2に保存している。
【0116】
したがって、プログラムを単純化することができ、コストを削減することができる。
【実施例4】
【0117】
図14及び図15は、本発明の画像形成装置及び画像処理方法の第4実施例を適用した画像形成装置による画像圧縮処理を示すフローチャートである。
【0118】
なお、本実施例は、上記第1実施例の画像形成装置1と同様の画像形成装置に適用したものであり、本実施例の説明においては、上記第1実施例で用いた符号をそのまま用いて説明する。
【0119】
本実施例の画像形成装置1は、画像を以下の条件で可変長圧縮符号方式で圧縮する。
条件1:符号の保存方法:符号が膨張した場合には、元画像を保存する。
条件2:メモリ確保方法:メモリ2のメモリ領域を、速度優先させるため、元画像:圧縮後符号=1:1で確保する。
条件3:圧縮完了判定方法:圧縮完了割り込みと中断割り込みを用いて圧縮完了判定を行う。
【0120】
すなわち、第1実施例の場合の条件と異なるのは、圧縮完了判定方法のみであり、符号用のメモリ領域が足りなくなると、圧縮処理を中断して、圧縮が完了していない元画像を最初から圧縮処理し直すことにある。この場合、一時停止して再開する訳ではないので、圧縮途中で符号メモリ領域が足りなくなってしまった場合は、元画像はメモリ領域の確保等の圧縮作業を最初からやり直す必要がある。
【0121】
そこで、本実施例の説明においては、図14及び図15の画像圧縮処理のフローチャートにおいて、図2及び図3に示した第1実施例の画像圧縮処理のフローチャートと同様の処理ステップには、同一のステップ番号を付して、その説明を簡略化する。
【0122】
画像形成装置1は、図14に示すように、まず、優先順位指示部3が、処理速度を優先させるために、符号化後の画像データである符号が元画像と同じサイズになってしまっても保存できるように、圧縮後の符号を保存するためのメモリ領域として、元画像と同じサイズのメモリ領域(元画像:圧縮後符号=1:1)を確保させる指示(優先順位指示)をメモリ領域確保部4及び符号量予測部12に行う(ステップS101)。
【0123】
次に、メモリ領域確保部4が、優先順位指示部3から指示された符号用のメモリ領域をメモリ2のシステムメモリ領域の中から確保する(ステップS102)。
【0124】
そして、ディスクリプタには、それぞれ次に処理するバンドを示すディスクリプタの先頭アドレスも合わせて記録されているため、圧縮処理シーケンス制御部25は、1バンドの処理が終了すると、次のバンドのディスクリプタをリードするというchain動作を行い、連続して複数枚のバンドを圧縮処理することができる。メモリ領域確保部4は、同様に、圧縮後の符号を保存するために、上記確保したバンド(メモリ領域)を示すディスクリプタを作成し、メモリ2に保存するとともに、最終バンドの元画像用ディスクリプタへは、圧縮が完了しなかった場合には、中断するよう設定する(ステップS401)。
【0125】
さらに、圧縮処理パラメータ設定部5が、例えば、画像の主走査長やメモリ幅、圧縮方式や圧縮パラメータ等、バンド間で共通のパラメータを作成して、圧縮パラメータ保持部21に保存し、また、中断解除後のパラメータを保存する(ステップS104)。
【0126】
そして、圧縮処理に必要な全てのパラメータがメモリ2及びレジスタに保存されると、圧縮処理パラメータ設定部5が、圧縮処理起動部9に圧縮処理を開始するよう命令を発行し(ステップS105)、圧縮処理起動部9が圧縮処理シーケンス制御部25に圧縮処理開始命令を出し、圧縮処理シーケンス制御部25が元画像用ディスクリプタリード部22にディスクリプタのリード命令を出して、圧縮処理に先立って、まず、元画像用ディスクリプタリード部22が、1バンド目の元画像用ディスクリプタをメモリ2からリードし(ステップS106)、符号用ディスクリプタリード部23が、1バンド目の符号用ディスクリプタをメモリ2からリードする(ステップS107)。
【0127】
必要なパラメータが揃うと、データ圧縮処理部24が、圧縮処理を開始し、元画像用ディスクリプタにあるメモリ2上のアドレスから元画像をリードし、圧縮パラメータに従って圧縮処理して、圧縮処理した符号を符号用ディスクリプタに指示されたメモリ2のアドレスに書き戻す(ステップS108)。
【0128】
圧縮処理シーケンス制御部25は、データ圧縮処理部24による圧縮処理を開始すると、元画像1バンド分の圧縮処理が完了したかチェックし(ステップS109)、完了していないときには、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS110)、符号用のメモリ領域とディスクリプタがあるときには、ステップS107に戻って、符号用ディスクリプタをリードして、圧縮を継続して元画像1バンド分の圧縮が完了したかチェックする(ステップS107〜S109)。
【0129】
ステップS109で、符号用に用意したメモリ領域1バンドが埋まる前に元画像の1バンドの圧縮が完了すると、圧縮処理シーケンス制御部25は、元画像1バンドが圧縮の結果どんな大きさの符号になったかと、このバンドでの元画像の圧縮が終了したことを示すWBフラグ(ライトバックフラグ)をメモリ2上の符号用ディスクリプタに書き戻し(ステップS111)、全元画像の圧縮が完了したかチェックする(ステップS112)。
【0130】
ステップS112で、全ての元画像の圧縮が完了していないときには、圧縮処理シーケンス制御部25は、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS113)、符号用のメモリ領域とディスクリプタがあるときには、ステップS106に戻って、元画像用ディスクリプタに記録された次の元画像用ディスクリプタの先頭アドレスを参照して、元画像用ディスクリプタを読み出して、同様に符号用ディスクリプタも次の新しいものを読み出し、元画像1バンドを符号化して新たな符号用メモリ領域に符号化されたデータを書き込む処理から上記同様に処理する(ステップS106〜S113)。すなわち、ステップS113において、符号用メモリ領域がまだ確保されている状態で、連続で処理する元画像のバンドがまだ残っている場合(YESの場合)、元画像用ディスクリプタに記録された次の元画像用ディスクリプタの先頭アドレスを参照してディスクリプタを読み出し(ステップS106)、同様に符号用ディスクリプタも次の新しいものを読み出して(ステップS107)、元画像1バンドを符号化して新たな符号用メモリ領域に符号化されたデータを書き込む処理を行う(ステップS108)。
【0131】
ステップS110で、元画像1バンド分の圧縮が完了していない状態で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、圧縮処理を中断し(ステップS114)、また、ステップS112で、全ての元画像の圧縮が完了する前に、ステップS113で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、図15に示すように、圧縮処理シーケンス制御部25は、データ圧縮処理部24での圧縮処理を中断させて(ステップS402)、割り込み発生部28に中断状態に入ったことを通知して、割り込み発生部28は、中断状態になったことを割り込み検知部8に通知する(ステップS403)。すなわち、本実施例の場合、元画像と符号用メモリ領域を1:1のサイズで用意しているため、1バンドでも膨張が発生した場合には、圧縮処理が完了せず、中断状態となる。
【0132】
割り込み検知部8が中断状態になったことを検知すると、圧縮情報リード部6が、メモリ2から符号サイズとWBフラグを読み込んで、圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べて、中断状態に入ったときの元画像の圧縮進捗状況を判断する(ステップS404)。
【0133】
圧縮情報リード部6によって、圧縮が終了していない元画像のバンドがいくつあるかを解析すると、圧縮が完了している元画像と完了していない元画像を判別し、圧縮が終わっていない元画像については、該元画像と同じサイズの符号用メモリ領域を確保し、ステップS101に戻って、最初から圧縮動作をやり直す(ステップS405)。すなわち、WBフラグを解析して、膨張した符号を判断し、元画像より縮小した符号と膨張したバンドの元画像を出力用として決定し、縮小した符号は、圧縮後の符号サイズを符号の属性として記録する。また、符号サイズとWBフラグの情報から未圧縮の元画像が何バンド残っているかを解析して、該元画像と同じサイズの符号用メモリ領域を確保し、図14に示すように、ステップS101に戻って、最初から圧縮動作をやり直す。
【0134】
ステップS101に戻ると、上記同様に処理を行い(ステップS101〜S405)、ステップS112で、全ての元画像の圧縮が完了すると、図15に示すように、割り込み発生部28が、完了割り込みを割り込み検知部8に発生し(ステップS123)、割り込み検知部8は、完了割り込みを検知して、圧縮情報リード部6に通知する(ステップS124)。
【0135】
圧縮情報リード部6は、用意した符号用ディスクリプタを全て読み込み(ステップS125)、ステップS111で圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べる。これによって、各元画像が膨張したか、符号サイズはいくつになったかを知ることができる。すなわち、本実施例では、バンド毎に、膨張した場合は元画像を出力用として保存し、小さくなった場合は符号を出力用として保存する。符号を保存する場合は、ステップS125で読み込んだ圧縮後の符号サイズを、符号の属性として同時にメモリ2に保管する(ステップS126)。
【0136】
このように、本実施例の画像形成装置1は、圧縮処理途中で符号用メモリ領域が足りなくなった時に中断して、圧縮の完了していない元画像を最初から圧縮処理し直している。
【0137】
したがって、符号用メモリ領域が不足して中断してメモリの再確保を行っている間に、メモリ確保の終了している別の圧縮したい元画像に対してデータ圧縮処理部24を開放することができ、複数のアプリケーションが同じデータ圧縮処理部24を利用する場合に、システムとしてのパフォーマンスを向上させることができる。
【実施例5】
【0138】
図16及び図17は、本発明の画像形成装置及び画像処理方法の第5実施例を適用した画像形成装置による画像圧縮処理を示すフローチャートである。
【0139】
なお、本実施例は、上記第1実施例の画像形成装置1と同様の画像形成装置に適用したものであり、本実施例の説明においては、上記第1実施例で用いた符号をそのまま用いて説明する。
【0140】
そこで、本実施例の説明においては、図16及び図17の画像圧縮処理のフローチャートにおいて、図2及び図3に示した第1実施例の画像圧縮処理のフローチャートと同様の処理ステップには、同一のステップ番号を付して、その説明を簡略化する。
【0141】
本実施例の画像形成装置1は、画像を以下の条件で可変長圧縮符号方式で圧縮する。
条件1:符号の保存方法:符号が膨張した場合には、元画像を保存する。
条件2:メモリ確保方法:メモリ2のメモリ領域を、以前の圧縮履歴から平均圧縮率を計算して、効率の良いメモリ領域を確保する。
条件3:圧縮完了判定方法:圧縮完了割り込みと一時停止割り込みを用いて圧縮完了判定を行う。
【0142】
すなわち、第1実施例の場合の条件と異なるのは、メモリ確保方法のみであり、符号量予測部12が、メモリ領域確保部4による符号用メモリ確保領域として、一時停止状態になる確率が少なく、かつメモリ確保量が無駄にならない最適値を計算する。
【0143】
そこで、本実施例の画像形成装置1は、図1に破線で示した符号量予測部12を備えており、符号量予測部12は、以前の画像の圧縮率等を計算して保持して、今後の画像の圧縮率を予測し、メモリ領域確保部4に通知する。
【0144】
画像形成装置1は、図16に示すように、まず、優先順位指示部3が、符号用メモリ領域として、最適化されたメモリ量を確保するように指示をメモリ領域確保部4及び符号量予測部12に行う(ステップS501)。
【0145】
次に、符号量予測部12が、過去の圧縮率データ等から処理速度を最適にする符号用メモリサイズを予測計算し(ステップS502)、メモリ領域確保部4が、符号量予測部12の予測に基づいて最適なメモリ量の符号用メモリ領域をメモリ2のシステムメモリ領域の中から確保する(ステップS503)。すなわち、符号量予測部12で、一時停止状態になる確率が少なく、かつ、メモリ確保量が無駄にならない最適なメモリ量を予測し、この予測に基づいて、メモリ領域確保部4が符号用メモリ領域を確保する。
【0146】
メモリ領域確保部4は、圧縮後の符号を保存するために、上記確保したバンド(メモリ領域)を示すディスクリプタを作成し、特に、最終バンドの元画像用ディスクリプタへは、圧縮が完了しなかった場合には、一時停止するように設定して、メモリ2に保存する(ステップS103)。
【0147】
さらに、圧縮処理パラメータ設定部5が、例えば、画像の主走査長やメモリ幅、圧縮方式や圧縮パラメータ等、バンド間で共通のパラメータを作成して、圧縮パラメータ保持部21に保存し、また、一時停止解除後のパラメータをレジスタに保存する(ステップS104)。
【0148】
そして、圧縮処理に必要な全てのパラメータがメモリ2及びレジスタに保存されると、圧縮処理パラメータ設定部5が、圧縮処理起動部9に圧縮処理を開始するよう命令を発行し(ステップS105)、圧縮処理起動部9が圧縮処理シーケンス制御部25に圧縮処理開始命令を出し、圧縮処理シーケンス制御部25が元画像用ディスクリプタリード部22にディスクリプタのリード命令を出して、圧縮処理に先立って、まず、元画像用ディスクリプタリード部22が、1バンド目の元画像用ディスクリプタをメモリ2からリードし(ステップS106)、符号用ディスクリプタリード部23が、1バンド目の符号用ディスクリプタをメモリ2からリードする(ステップS107)。
【0149】
必要なパラメータが揃うと、データ圧縮処理部24が、圧縮処理を開始し、元画像用ディスクリプタにあるメモリ2上のアドレスから元画像をリードし、圧縮パラメータに従って圧縮処理して、圧縮処理した符号を符号用ディスクリプタに指示されたメモリ2のアドレスに書き戻す(ステップS108)。
【0150】
圧縮処理シーケンス制御部25は、データ圧縮処理部24による圧縮処理を開始すると、元画像1バンド分の圧縮処理が完了したかチェックし(ステップS109)、完了していないときには、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS110)、符号用のメモリ領域とディスクリプタがあるときには、ステップS107に戻って、符号用ディスクリプタをリードして、圧縮を継続して元画像1バンド分の圧縮が完了したかチェックする(ステップS107〜S109)。
【0151】
ステップS109で、符号用に用意したメモリ領域1バンドが埋まる前に元画像の1バンドの圧縮が完了すると、圧縮処理シーケンス制御部25は、元画像1バンドが圧縮の結果どんな大きさの符号になったかと、このバンドでの元画像の圧縮が終了したことを示すWBフラグ(ライトバックフラグ)をメモリ2上の符号用ディスクリプタに書き戻し(ステップS111)、全元画像の圧縮が完了したかチェックする(ステップS112)。
【0152】
ステップS112で、全ての元画像の圧縮が完了していないときには、圧縮処理シーケンス制御部25は、符号用のメモリ領域及びディスクリプタがあるかチェックして(ステップS113)、符号用のメモリ領域とディスクリプタがあるときには、ステップS106に戻って、元画像用ディスクリプタに記録された次の元画像用ディスクリプタの先頭アドレスを参照して、元画像用ディスクリプタを読み出して、同様に符号用ディスクリプタも次の新しいものを読み出し、元画像1バンドを符号化して新たな符号用メモリ領域に符号化されたデータを書き込む処理から上記同様に処理する(ステップS106〜S113)。
【0153】
ステップS110で、元画像1バンド分の圧縮が完了していない状態で、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、図17に示すように、圧縮処理を一時停止し(ステップS114)、また、ステップS113で、全ての元画像の圧縮が完了する前に、符号用のメモリ領域がなくなるか、ディスクリプタが無くなると、圧縮処理シーケンス制御部25は、データ圧縮処理部24での圧縮処理を一時停止に移行させて、一時停止状態保持部27にメモリ領域確保と符号用ディスクリプタを用意するために、一時的にデータ圧縮処理を停止した状態を保持し(ステップS114)、割り込み発生部28に一時停止状態に入ったことを通知する(ステップS115)。
【0154】
割り込み発生部28は、一時停止状態になったことを割り込み検知部8に通知し(ステップS116)、割り込み検知部8が一時停止状態になったことを検知すると、圧縮情報リード部6が、メモリ2から符号サイズとWBフラグを読み込んで、圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べて、一時停止に入ったときの元画像の圧縮進捗状況を判断する(ステップS117)。
【0155】
圧縮処理完了状態解析部7は、圧縮情報リード部6によって、圧縮が終了していない元画像のバンドがいくつあるかを解析すると、残り画像の書き込み先について、優先順位指示部3が、符号用メモリ領域として、処理速度を最適化するメモリ量を確保するように指示を符号量予測部12に行い(ステップS504)、符号量予測部12が、過去のデータ等から処理速度を最適にする符号用メモリサイズを予測計算して(ステップS505)、メモリ領域確保部4が該符号量予測部12の予測に基づいて最適なメモリ量の符号用メモリ領域を確保する(ステップS506)。
【0156】
次に、圧縮処理パラメータ設定部5は、確保し直したメモリ領域の情報を新たな圧縮処理パラメータとしてメモリに書き戻し(ステップS120)、必要に応じてレジスタへの圧縮処理パラメータの変更を行って、レジスタに保持させ(ステップS121)、一時停止状態にある圧縮処理の再開の命令を圧縮再起動部11に出して(ステップS122)、図16に示すステップS106に戻って、元画像用ディスクリプタのリードから上記同様に処理する(ステップS106〜S504〜S506〜S122)。
【0157】
そして、図16のステップS112において、全ての元画像の圧縮が完了すると、図17に示すように、割り込み発生部28が、完了割り込みを割り込み検知部8に発生し(ステップS123)、割り込み検知部8は、完了割り込みを検知して、圧縮情報リード部6に通知する(ステップS124)。
【0158】
圧縮情報リード部6は、用意した符号用ディスクリプタを全て読み込み(ステップS125)、ステップS111で圧縮情報メモリ書き戻し部26によってメモリ2に書き戻されたWBフラグが立っているかどうかと符号サイズを調べる。これによって、各元画像が膨張したか、符号サイズはいくつになったかを知ることができる。すなわち、本実施例では、バンド毎に、膨張した場合は元画像を出力用として保存し、小さくなった場合は符号を出力用として保存する。符号を保存する場合は、ステップS125で読み込んだ圧縮後の符号サイズを、符号の属性として同時にメモリ2に保管する(ステップS126)。
【0159】
このように、本実施例の画像形成装置1は、符号用メモリ領域の確保量の最適値を符号量予測部12で過去の圧縮履歴等から圧縮対象の元画像データの圧縮率を予測して最適な符号用メモリ量を予測し、メモリ領域確保部4が該予測結果に応じて符号量メモリ領域をメモリ2に確保している。
【0160】
したがって、無駄なメモリ確保を防止して、画像形成装置1全体のパフォーマンスを向上させることができるとともに、圧縮処理が一時停止状態になる確率を減して、圧縮処理速度をも向上させることができる。
【0161】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記のものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0162】
本発明は、メモリの元画像を可変長圧縮して該メモリに該圧縮した符号を格納する画像処理を行う複合装置、複写装置、プリンタ等の画像形成装置及び画像処理方法に適用することができる。
【図面の簡単な説明】
【0163】
【図1】本発明の第1実施例を適用した画像形成装置の機能ブロック構成図。
【図2】図1の画像形成装置による画像圧縮処理を示すフローチャート。
【図3】図2の画像圧縮処理の続きの処理を示すフローチャート。
【図4】図2の画像圧縮処理で膨張した符号がない場合の動作説明図。
【図5】図2の画像圧縮処理で元画像Mが膨張して一時停止が発生した場合の動作説明図。
【図6】図4の一時停止状態から元画像Kの符号用メモリ領域を再確保し一時停止状態を解除して圧縮を継続する動作説明図。
【図7】本発明の第2実施例を適用した画像形成装置による画像圧縮処理を示すフローチャート。
【図8】図7の画像圧縮処理の続きの処理を示すフローチャート。
【図9】図7及び図8の画像圧縮処理で膨張した符号がない場合の動作説明図。
【図10】図7及び図8の画像圧縮処理で元画像Mが膨張して一時停止が発生した場合の動作説明図。
【図11】図10の一時停止状態から元画像M,Y,Kの符号用メモリ領域を再確保し一時停止状態を解除して圧縮を継続する動作説明図。
【図12】本発明の第3実施例を適用した画像形成装置による画像圧縮処理を示すフローチャート。
【図13】図12の画像圧縮処理の続きの処理を示すフローチャート。
【図14】本発明の第4実施例を適用した画像形成装置による画像圧縮処理を示すフローチャート。
【図15】図14の画像圧縮処理の続きの処理を示すフローチャート。
【図16】本発明の第5実施例を適用した画像形成装置による画像圧縮処理を示すフローチャート。
【図17】図16の画像圧縮処理の続きの処理を示すフローチャート。
【符号の説明】
【0164】
1 画像形成装置
2 メモリ
3 優先順位指示部
4 メモリ領域確保部
5 圧縮処理パラメータ設定部
6 圧縮情報リード部
7 圧縮処理完了状態解析部
8 割り込み検知部
9 圧縮処理起動部
10 圧縮処理再起動部
11 圧縮処理部
12 符号量予測部
21 圧縮パラメータ保持部
22 元画像用ディスクリプタリード部
23 符号用ディスクリプタリード部
24 データ圧縮処理部
25 圧縮処理シーケンス制御部
26 圧縮情報メモリ書き戻し部
27 一時停止状態保持部
28 割り込み発生部
【特許請求の範囲】
【請求項1】
メモリ上に符号用メモリ領域を確保するメモリ確保手段と、該確保された符号用メモリ領域の情報等に基づいて該メモリに元画像用ディスクリプタ及び符号用ディスクリプタ等の圧縮指示情報を設定する圧縮指示情報設定手段と、該メモリから該元画像用ディスクリプタと該符号用ディスクリプタを読み出すディスクリプタ読出手段と、該ディスクリプタ読出手段の読み出した元画像用ディスクリプタに基づいて該メモリ上の元画像を所定の可変長圧縮方法で圧縮処理し該圧縮処理した符号を該メモリの該ディスクリプタ読出手段の読み出した符号用メモリ領域に書き込む圧縮手段と、該圧縮手段による圧縮処理での符号量及び符号用ディスクリプタ情報等の圧縮情報を前記メモリに書き戻す圧縮情報書き戻し手段とを備え、前記ディスクリプタ読出手段が前記圧縮指示情報設定手段で設定した圧縮情報を読み出して、該ディスクリプタ読出手段の読み出した圧縮情報に基づいて前記圧縮手段が圧縮処理を行うことを特徴とする画像形成装置。
【請求項2】
前記画像形成装置は、前記圧縮処理の一時停止状態を保持する一時停止状態保持手段と、前記圧縮情報書き戻し手段が前記メモリに書き戻した前記圧縮情報を読み出す圧縮情報読出手段と、を備え、前記符号用メモリ領域の不足等の理由で前記圧縮処理の一時停止が発生すると、該一時停止状態保持手段が該一時停止状態を保持し、該一時停止状態中に、該圧縮情報読出手段が前記圧縮情報を読み出し、前記メモリ確保手段が該読み出された圧縮情報に基づいて前記符号用メモリ領域の再確保を行い、前記圧縮指示情報設定手段が該再確保された符号用メモリ領域情報等に基づいて前記圧縮指示情報を再設定し、該一時停止状態が解除されると、該再設定された圧縮指示情報に応じて前記圧縮手段による圧縮処理を再開することを特徴とする請求項1記載の画像形成装置。
【請求項3】
前記画像形成装置は、前記メモリ確保手段による前記符号用メモリ領域のメモリ確保量として適宜のメモリ量を指示するメモリ確保指示手段を、さらに備えていることを特徴とする請求項1または請求項2記載の画像形成装置。
【請求項4】
前記画像形成装置は、過去の圧縮履歴等から圧縮対象の元画像データの圧縮率を予測して最適な符号用メモリ量を予測する符号量予測手段を備え、前記メモリ確保手段が、該符号量予測手段の予測した符号用メモリ量に応じた符号用メモリ領域を前記メモリに確保することを特徴とする請求項1または請求項2記載の画像形成装置。
【請求項5】
前記画像形成装置は、前記圧縮手段での符号サイズ等の圧縮完了状態を解析する解析手段を備え、該解析手段が前記圧縮処理によって前記元画像データよりも前記符号が膨張したことを解析すると、該符号を破棄して該元画像データを前記メモリに格納することを特徴とする請求項1から請求項4のいずれかに記載の画像形成装置。
【請求項6】
メモリ上に符号用メモリ領域を確保するメモリ確保工程と、該確保された符号用メモリ領域の情報等に基づいて該メモリに元画像用ディスクリプタ及び符号用ディスクリプタ等の圧縮指示情報を設定する圧縮指示情報設定工程と、該メモリから該元画像用ディスクリプタと該符号用ディスクリプタを読み出すディスクリプタ読出工程と、該ディスクリプタ読出工程で読み出された元画像用ディスクリプタに基づいて該メモリ上の元画像を所定の可変長圧縮方法で圧縮処理し該圧縮処理した符号を該ディスクリプタ読出工程で読み出された該メモリの符号用メモリ領域に書き込む圧縮工程と、前記圧縮工程による圧縮処理での符号量及び符号用ディスクリプタ情報等の圧縮情報を前記メモリに書き戻す圧縮情報書き戻し工程とを有し、前記ディスクリプタ読出工程において前記圧縮指示情報設定工程で設定した圧縮情報を読み出して、前記圧縮工程において該ディスクリプタ読出工程で読み出した圧縮情報に基づいて圧縮処理を行うことを特徴とする画像処理方法。
【請求項1】
メモリ上に符号用メモリ領域を確保するメモリ確保手段と、該確保された符号用メモリ領域の情報等に基づいて該メモリに元画像用ディスクリプタ及び符号用ディスクリプタ等の圧縮指示情報を設定する圧縮指示情報設定手段と、該メモリから該元画像用ディスクリプタと該符号用ディスクリプタを読み出すディスクリプタ読出手段と、該ディスクリプタ読出手段の読み出した元画像用ディスクリプタに基づいて該メモリ上の元画像を所定の可変長圧縮方法で圧縮処理し該圧縮処理した符号を該メモリの該ディスクリプタ読出手段の読み出した符号用メモリ領域に書き込む圧縮手段と、該圧縮手段による圧縮処理での符号量及び符号用ディスクリプタ情報等の圧縮情報を前記メモリに書き戻す圧縮情報書き戻し手段とを備え、前記ディスクリプタ読出手段が前記圧縮指示情報設定手段で設定した圧縮情報を読み出して、該ディスクリプタ読出手段の読み出した圧縮情報に基づいて前記圧縮手段が圧縮処理を行うことを特徴とする画像形成装置。
【請求項2】
前記画像形成装置は、前記圧縮処理の一時停止状態を保持する一時停止状態保持手段と、前記圧縮情報書き戻し手段が前記メモリに書き戻した前記圧縮情報を読み出す圧縮情報読出手段と、を備え、前記符号用メモリ領域の不足等の理由で前記圧縮処理の一時停止が発生すると、該一時停止状態保持手段が該一時停止状態を保持し、該一時停止状態中に、該圧縮情報読出手段が前記圧縮情報を読み出し、前記メモリ確保手段が該読み出された圧縮情報に基づいて前記符号用メモリ領域の再確保を行い、前記圧縮指示情報設定手段が該再確保された符号用メモリ領域情報等に基づいて前記圧縮指示情報を再設定し、該一時停止状態が解除されると、該再設定された圧縮指示情報に応じて前記圧縮手段による圧縮処理を再開することを特徴とする請求項1記載の画像形成装置。
【請求項3】
前記画像形成装置は、前記メモリ確保手段による前記符号用メモリ領域のメモリ確保量として適宜のメモリ量を指示するメモリ確保指示手段を、さらに備えていることを特徴とする請求項1または請求項2記載の画像形成装置。
【請求項4】
前記画像形成装置は、過去の圧縮履歴等から圧縮対象の元画像データの圧縮率を予測して最適な符号用メモリ量を予測する符号量予測手段を備え、前記メモリ確保手段が、該符号量予測手段の予測した符号用メモリ量に応じた符号用メモリ領域を前記メモリに確保することを特徴とする請求項1または請求項2記載の画像形成装置。
【請求項5】
前記画像形成装置は、前記圧縮手段での符号サイズ等の圧縮完了状態を解析する解析手段を備え、該解析手段が前記圧縮処理によって前記元画像データよりも前記符号が膨張したことを解析すると、該符号を破棄して該元画像データを前記メモリに格納することを特徴とする請求項1から請求項4のいずれかに記載の画像形成装置。
【請求項6】
メモリ上に符号用メモリ領域を確保するメモリ確保工程と、該確保された符号用メモリ領域の情報等に基づいて該メモリに元画像用ディスクリプタ及び符号用ディスクリプタ等の圧縮指示情報を設定する圧縮指示情報設定工程と、該メモリから該元画像用ディスクリプタと該符号用ディスクリプタを読み出すディスクリプタ読出工程と、該ディスクリプタ読出工程で読み出された元画像用ディスクリプタに基づいて該メモリ上の元画像を所定の可変長圧縮方法で圧縮処理し該圧縮処理した符号を該ディスクリプタ読出工程で読み出された該メモリの符号用メモリ領域に書き込む圧縮工程と、前記圧縮工程による圧縮処理での符号量及び符号用ディスクリプタ情報等の圧縮情報を前記メモリに書き戻す圧縮情報書き戻し工程とを有し、前記ディスクリプタ読出工程において前記圧縮指示情報設定工程で設定した圧縮情報を読み出して、前記圧縮工程において該ディスクリプタ読出工程で読み出した圧縮情報に基づいて圧縮処理を行うことを特徴とする画像処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2008−227872(P2008−227872A)
【公開日】平成20年9月25日(2008.9.25)
【国際特許分類】
【出願番号】特願2007−62669(P2007−62669)
【出願日】平成19年3月12日(2007.3.12)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成20年9月25日(2008.9.25)
【国際特許分類】
【出願日】平成19年3月12日(2007.3.12)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]