(57)【要約】【課題】画像データの伸長時間が許容範囲に収まる範囲内で、画像データをより小さなサイズに圧縮することができる画像処理装置を提供する。【解決手段】本発明の画像処理装置は、複数種類の圧縮方式により同一の画像データを同時並行に圧縮して、同一の画像データに対して複数種類の圧縮データを生成する圧縮部１１１ａ〜１１１ｄと、圧縮部１１１ａ〜１１１ｄにより生成された複数種類の圧縮データのそれぞれに対して、圧縮データの伸長時間を求める伸長時間算出部１１２ａ〜１１２ｄと、伸長時間算出部１１２ａ〜１１２ｄにより求められた複数種類の圧縮データの伸長時間と各圧縮データのデータサイズとに基づいて、複数種類の圧縮データの中から一の圧縮データを選択する選択部１１６と、選択部１１６により選択された圧縮データを、出力データとして出力する出力部１１７と、を有する。【選択図】図３
2010200174.tif 000002
【特許請求の範囲】
【請求項１】
複数種類の圧縮方式により同一の画像データを同時並行に圧縮して、当該同一の画像データに対して複数種類の圧縮データを生成する圧縮部と、
前記圧縮部により生成された前記複数種類の圧縮データのそれぞれに対して、当該圧縮データの伸長時間を求める伸長時間算出部と、
前記伸長時間算出部により求められた前記複数種類の圧縮データの伸長時間と各圧縮データのデータサイズとに基づいて、前記複数種類の圧縮データの中から一の圧縮データを選択する選択部と、
前記選択部により選択された前記圧縮データを、出力データとして出力する出力部と、を有することを特徴とする画像処理装置。
【請求項２】
前記画像データは、１ページ分の画像データを複数に分割して得られる分割画像データであって、
前記圧縮部は、前記複数の分割画像データを順次に圧縮することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記出力データとして出力済みの前記圧縮データの前記伸長時間を積算して、当該出力済みの圧縮データの伸長時間の積算時間を求める積算時間算出部と、
前記出力済みの圧縮データの元となった前記分割画像データの総データサイズに基づいて、前記積算時間算出部により求められた前記積算時間の閾値を設定する設定部と、
前記積算時間が、前記設定部により設定された前記閾値未満であるか否かを判断する判断部と、をさらに有し、
前記判断部により前記積算時間が前記閾値未満であると判断される場合には、前記選択部は、前記複数種類の圧縮データの中から、データサイズが最小の圧縮データを選択し、前記判断部により前記積算時間が前記閾値以上であると判断される場合には、前記選択部は、前記複数種類の圧縮データの中から、前記伸長時間が最短の圧縮データを選択することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記設定部は、前記出力済みの圧縮データの伸長時間の積算時間が、前記出力済みの圧縮データの元となった分割画像データに基づく画像の印刷処理に要する時間よりも短くなるように、前記分割画像データの総データサイズに基づいて前記閾値を設定することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記判断部により前記積算時間が前記閾値未満であると判断される場合において、前記データサイズが最小の圧縮データが複数種類ある場合、前記選択部は、当該複数種類の圧縮データの中から前記伸長時間が最短の圧縮データを選択することを特徴とする請求項３または４に記載の画像処理装置。
【請求項６】
複数種類の圧縮方式により同一の画像データを同時並行に圧縮して、当該同一の画像データに対して複数種類の圧縮データを生成するステップ（ａ）と、
前記ステップ（ａ）において生成された前記複数種類の圧縮データのそれぞれに対して、当該圧縮データの伸長時間を求めるステップ（ｂ）と、
前記ステップ（ｂ）において求められた前記複数種類の圧縮データの伸長時間と各圧縮データのデータサイズとに基づいて、前記複数種類の圧縮データの中から一の圧縮データを選択するステップ（ｃ）と、
前記ステップ（ｃ）において選択された前記圧縮データを、出力データとして出力するステップ（ｄ）と、を有することを特徴とする画像処理方法。
【請求項７】
前記画像データは、１ページ分の画像データを複数に分割して得られる分割画像データであって、
前記ステップ（ａ）において、前記複数の分割画像データが順次に圧縮されることを特徴とする請求項６に記載の画像処理方法。
【請求項８】
前記出力データとして出力済みの前記圧縮データの前記伸長時間を積算して、当該出力済みの圧縮データの伸長時間の積算時間を求めるステップ（ｅ）と、
前記出力済みの圧縮データの元となった前記分割画像データの総データサイズに基づいて、前記ステップ（ｅ）において求められた前記積算時間の閾値を設定するステップ（ｆ）と、
前記積算時間が、前記ステップ（ｆ）において設定された前記閾値未満であるか否かを判断するステップ（ｇ）と、をさらに有し、
前記ステップ（ｇ）において前記積算時間が前記閾値未満であると判断される場合には、前記ステップ（ｃ）において、前記複数種類の圧縮データの中から、データサイズが最小の圧縮データが選択され、前記ステップ（ｇ）において前記積算時間が前記閾値以上であると判断される場合には、前記ステップ（ｃ）において、前記複数種類の圧縮データの中から、前記伸長時間が最短の圧縮データが選択されることを特徴とする請求項７に記載の画像処理方法。
【請求項９】
前記ステップ（ｆ）において、前記出力済みの圧縮データの伸長時間の積算時間が、前記出力済みの圧縮データの元となった分割画像データに基づく画像の印刷処理に要する時間よりも短くなるように、前記分割画像データの総データサイズに基づいて前記閾値が設定されることを特徴とする請求項７に記載の画像処理方法。
【請求項１０】
前記ステップ（ｇ）において前記積算時間が前記閾値未満であると判断される場合において、前記データサイズが最小の圧縮データが複数種類ある場合、前記ステップ（ｃ）において、当該複数種類の圧縮データの中から前記伸長時間が最短の圧縮データが選択されることを特徴とする請求項８または９に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関する。本発明は、特に、印刷用の画像データを圧縮処理する画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
プリンタ等のコスト競争が厳しい製品は、メモリにかかるコストを下げる必要がある。そのためには、画像データをより小さなサイズに圧縮することが効果的である。
【０００３】
画像データの圧縮に関する技術としては、下記の特許文献１に示すような画像形成装置が知られている。特許文献１に開示されている画像形成装置は、画像データを１ライン単位で予備圧縮し、圧縮後の画像データのデータサイズから画像データの伸長時間を推定して、伸長時間が許容値以上になると判断される場合には、圧縮方式を変更して画像データを圧縮するものである。このような構成によれば、圧縮された画像データの伸長時間が許容範囲内に確実に収まるため、圧縮された画像データをリアルタイムに伸長しながら印刷処理を実行する印刷方式において、１ライン分の画像データの伸長処理が印刷処理に間に合わないために印刷エラー（オーバーラン）が発生してしまうことが防止される。
【０００４】
しかしながら、上記画像形成装置では、圧縮された画像データの伸長時間が許容範囲内に収まることは保証されるものの、圧縮された画像データのデータサイズまでは考慮されていない。上記印刷方式では、画像データの伸長時間が許容範囲に収まる範囲内で、できるだけ小さなサイズに画像データを圧縮することが望まれている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−２３２７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上述した課題に鑑みてなされたものである。したがって、本発明の目的は、画像データの伸長時間が許容範囲に収まる範囲内で、画像データをより小さなサイズに圧縮することができる画像処理装置および画像処理方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明の上記目的は、下記の手段によって達成される。
【０００８】
（１）複数種類の圧縮方式により同一の画像データを同時並行に圧縮して、当該同一の画像データに対して複数種類の圧縮データを生成する圧縮部と、前記圧縮部により生成された前記複数種類の圧縮データのそれぞれに対して、当該圧縮データの伸長時間を求める伸長時間算出部と、前記伸長時間算出部により求められた前記複数種類の圧縮データの伸長時間と各圧縮データのデータサイズとに基づいて、前記複数種類の圧縮データの中から一の圧縮データを選択する選択部と、前記選択部により選択された前記圧縮データを、出力データとして出力する出力部と、を有することを特徴とする画像処理装置。
【０００９】
（２）前記画像データは、１ページ分の画像データを複数に分割して得られる分割画像データであって、前記圧縮部は、前記複数の分割画像データを順次に圧縮することを特徴とする上記（１）に記載の画像処理装置。
【００１０】
（３）前記出力データとして出力済みの前記圧縮データの前記伸長時間を積算して、当該出力済みの圧縮データの伸長時間の積算時間を求める積算時間算出部と、前記出力済みの圧縮データの元となった前記分割画像データの総データサイズに基づいて、前記積算時間算出部により求められた前記積算時間の閾値を設定する設定部と、前記積算時間が、前記設定部により設定された前記閾値未満であるか否かを判断する判断部と、をさらに有し、前記判断部により前記積算時間が前記閾値未満であると判断される場合には、前記選択部は、前記複数種類の圧縮データの中から、データサイズが最小の圧縮データを選択し、前記判断部により前記積算時間が前記閾値以上であると判断される場合には、前記選択部は、前記複数種類の圧縮データの中から、前記伸長時間が最短の圧縮データを選択することを特徴とする上記（２）に記載の画像処理装置。
【００１１】
（４）前記設定部は、前記出力済みの圧縮データの伸長時間の積算時間が、前記出力済みの圧縮データの元となった分割画像データに基づく画像の印刷処理に要する時間よりも短くなるように、前記分割画像データの総データサイズに基づいて前記閾値を設定することを特徴とする上記（３）に記載の画像処理装置。
【００１２】
（５）前記判断部により前記積算時間が前記閾値未満であると判断される場合において、前記データサイズが最小の圧縮データが複数種類ある場合、前記選択部は、当該複数種類の圧縮データの中から前記伸長時間が最短の圧縮データを選択することを特徴とする上記（３）または（４）に記載の画像処理装置。
【００１３】
（６）複数種類の圧縮方式により同一の画像データを同時並行に圧縮して、当該同一の画像データに対して複数種類の圧縮データを生成するステップ（ａ）と、前記ステップ（ａ）において生成された前記複数種類の圧縮データのそれぞれに対して、当該圧縮データの伸長時間を求めるステップ（ｂ）と、前記ステップ（ｂ）において求められた前記複数種類の圧縮データの伸長時間と各圧縮データのデータサイズとに基づいて、前記複数種類の圧縮データの中から一の圧縮データを選択するステップ（ｃ）と、前記ステップ（ｃ）において選択された前記圧縮データを、出力データとして出力するステップ（ｄ）と、を有することを特徴とする画像処理方法。
【００１４】
（７）前記画像データは、１ページ分の画像データを複数に分割して得られる分割画像データであって、前記ステップ（ａ）において、前記複数の分割画像データが順次に圧縮されることを特徴とする上記（６）に記載の画像処理方法。
【００１５】
（８）前記出力データとして出力済みの前記圧縮データの前記伸長時間を積算して、当該出力済みの圧縮データの伸長時間の積算時間を求めるステップ（ｅ）と、前記出力済みの圧縮データの元となった前記分割画像データの総データサイズに基づいて、前記ステップ（ｅ）において求められた前記積算時間の閾値を設定するステップ（ｆ）と、前記積算時間が、前記ステップ（ｆ）において設定された前記閾値未満であるか否かを判断するステップ（ｇ）と、をさらに有し、前記ステップ（ｇ）において前記積算時間が前記閾値未満であると判断される場合には、前記ステップ（ｃ）において、前記複数種類の圧縮データの中から、データサイズが最小の圧縮データが選択され、前記ステップ（ｇ）において前記積算時間が前記閾値以上であると判断される場合には、前記ステップ（ｃ）において、前記複数種類の圧縮データの中から、前記伸長時間が最短の圧縮データが選択されることを特徴とする上記（７）に記載の画像処理方法。
【００１６】
（９）前記ステップ（ｆ）において、前記出力済みの圧縮データの伸長時間の積算時間が、前記出力済みの圧縮データの元となった分割画像データに基づく画像の印刷処理に要する時間よりも短くなるように、前記分割画像データの総データサイズに基づいて前記閾値が設定されることを特徴とする上記（７）に記載の画像処理方法。
【００１７】
（１０）前記ステップ（ｇ）において前記積算時間が前記閾値未満であると判断される場合において、前記データサイズが最小の圧縮データが複数種類ある場合、前記ステップ（ｃ）において、当該複数種類の圧縮データの中から前記伸長時間が最短の圧縮データが選択されることを特徴とする上記（８）または（９）に記載の画像処理方法。
【発明の効果】
【００１８】
本発明によれば、同時並行に生成される複数種類の圧縮データの中から、各圧縮データの伸長時間とデータサイズとに基づいて一の圧縮データが選択され、出力データとして出力される。したがって、画像データの圧縮結果として出力する圧縮データを複数種類の圧縮データの中から選択する際に、各圧縮データの伸長時間とデータサイズとを参照して、最適な圧縮データを選択することが可能となる。これにより、画像データの伸長時間が許容範囲に収まる範囲内で、画像データをより小さなサイズに圧縮することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態である画像処理装置を備えたプリンタの概略構成を示す構成図である。
【図２】図１に示されるプリンタにおける画像処理部の概略構成を示すブロック図である。
【図３】図２に示される画像処理部における圧縮モジュールの概略構成を示すブロック図である。
【図４】図３に示される圧縮モジュールにおける画像データの圧縮処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００２０】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００２１】
図１は、本発明の一実施形態である画像処理装置を備えたプリンタの概略構成を示すブロック図である。
【００２２】
図１に示されるとおり、プリンタ１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、画像処理部１４、データ出力部１５、印刷部１６、Ｉ／Ｆ制御部１７、およびホストＩ／Ｆ１８を含む。ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、画像処理部１４、データ出力部１５、Ｉ／Ｆ制御部１７、およびホストＩ／Ｆ１８は、バスを介して相互に接続されている。印刷部１６は、データ出力部１５に接続されている。
【００２３】
プリンタ１は、文書の印刷を指示するホストＰＣ２にネットワークを介して接続されており、ホストＰＣ２からの印刷指示に基づいて印刷処理を実行する。なお、プリンタ１とホストＰＣ２とは、ネットワークを介することなく直接機器間で接続（ローカル接続）されていてもよい。
【００２４】
ＣＰＵ１１は、プログラムにしたがって上記各部の制御や各種の演算処理を実行する。ＲＯＭ１２は、各種プログラムおよび各種データを格納する。
【００２５】
ＲＡＭ１３は、作業領域として一時的にプログラムおよびデータを記憶する。ＲＡＭ１３は、ビットマップ形式の画像データ３０、および画像データ３０を圧縮して得られる圧縮済み画像データ４０を格納する。
【００２６】
画像処理部１４は、ビットマップ形式の画像データ３０に対して色変換およびスクリーン処理等の画像処理を実行する。また、画像処理部１４は、画像データ３０を圧縮してデータサイズが縮小されている圧縮済み画像データ４０を生成する。
【００２７】
データ出力部１５は、ＲＡＭ１３から圧縮済み画像データ４０を読み出してリアルタイムに伸長しつつ、印刷部１６に転送する。データ出力部１５は、印刷部１６における用紙の搬送速度等に応じて圧縮済み画像データ４０を伸長しつつ、印刷部１６に転送する。
【００２８】
印刷部１６は、電子写真式プロセス等の周知の作像プロセスを用いて、データ出力部１５から転送される画像データに基づく画像を用紙等の記録媒体に印刷する。
【００２９】
Ｉ／Ｆ制御部１７は、ホストＩ／Ｆ１８を制御する。ホストＩ／Ｆ１８は、ネットワークを介して他の機器と通信するためのインタフェースであり、イーサネット（登録商標）、トークンリング、ＦＤＤＩ等の規格が用いられる。
【００３０】
図２は、図１に示されるプリンタにおける画像処理部の概略構成を示すブロック図である。
【００３１】
図２に示されるとおり、画像処理部１４は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）として構成されており、ＲｅａｄＤＭＡ回路１０１、画像処理モジュール１０２、圧縮モジュール１０３、およびＷｒｉｔｅＤＭＡ回路１０４を含む。
【００３２】
ＲｅａｄＤＭＡ回路１０１は、処理対象の画像データを取得する。ＲｅａｄＤＭＡ１０１は、ＲＡＭ１３に格納されているビットマップ形式の画像データ３０を所定ライン数のバンド単位で読み出し、画像処理モジュール１０２に渡す。
【００３３】
画像処理モジュール１０２は、画像データに対して画像処理を実行する。画像処理モジュール１０２は、ＲｅａｄＤＭＡ回路１０１から渡される１バンド分の画像データに対して、色変換処理、スクリーン処理、γ補正処理、および輪郭強調処理等の画像処理を実行する。
【００３４】
圧縮モジュール１０３は、画像処理済みの画像データを圧縮する。圧縮モジュール１０３は、画像処理モジュール１０２により画像処理された１バンド分の画像データを、所定サイズのデータ単位で圧縮する。圧縮モジュール１０３は、圧縮された画像データの１ライン毎の伸長時間が許容範囲に収まる範囲内で、圧縮された画像データのデータサイズがより小さくなるように、複数種類の圧縮アルゴリズムを用いて画像データを圧縮する。
【００３５】
ＷｒｉｔｅＤＭＡ回路１０４は、圧縮済み画像データを出力する。ＷｒｉｔｅＤＭＡ回路１０４は、圧縮モジュール１０３により圧縮された１バンド分の画像データをＲＡＭ１３に書き戻す。
【００３６】
図３は、図２に示される画像処理部における圧縮モジュールの概略構成を示すブロック図である。
【００３７】
図３に示されるとおり、圧縮モジュール１０３は、第１〜第４圧縮アルゴリズム回路１１１ａ〜１１１ｄ、第１〜第４伸長時間検出回路１１２ａ〜１１２ｄ、サイズ情報比較回路１１３、伸長時間比較回路１１４、伸長時間積算回路１１５、選択回路１１６、およびデータセレクト回路１１７を含む。
【００３８】
第１〜第４圧縮アルゴリズム回路１１１ａ〜１１１ｄは、互いに異なる圧縮アルゴリズムにより画像データを圧縮して圧縮データを生成する。第１〜第４圧縮アルゴリズム回路１１１ａ〜１１１ｄは、１ライン分の画像データを分割して得られる１６バイトの分割画像データを同時並行に圧縮して、１つの分割画像データに対して４種類の圧縮データを生成する。第１〜第４圧縮アルゴリズム回路１１１ａ〜１１１ｄは、対応する第１〜第４伸長時間検出回路１１２ａ〜１１２ｄおよびサイズ情報比較回路１１３にそれぞれ接続されており、圧縮データのデータサイズを示す信号をそれぞれ送出する。第１〜第４圧縮アルゴリズム回路１１１ａ〜１１１ｄにより実行される圧縮アルゴリズムの詳細については後述する。
【００３９】
第１〜第４伸長時間検出回路１１２ａ〜１１２ｄは、対応する第１〜第４圧縮アルゴリズム回路１１１ａ〜１１１ｄで生成された圧縮データの伸長時間（クロック数）を検出する。第１〜第４伸長時間検出回路１１２ａ〜１１２ｄは、第１〜第４圧縮アルゴリズム回路１１１ａ〜１１１ｄからの信号に基づいて、圧縮データの伸長時間を検出する。第１〜第４伸長時間検出回路１１２ａ〜１１２ｄは、伸長時間比較回路１１４および伸長時間積算回路１１５にそれぞれ接続されており、圧縮データの伸長時間を示す信号をそれぞれ送出する。
【００４０】
サイズ情報比較回路１１３は、第１〜第４圧縮アルゴリズム回路１１１ａ〜１１１ｄで生成された４種類の圧縮データのデータサイズを比較する。サイズ情報比較回路１１３は、第１〜第４圧縮アルゴリズム回路１１１ａ〜１１１ｄからの信号に基づいて４種類の圧縮データのデータサイズを比較し、データサイズが最小の圧縮データを特定する。サイズ情報比較回路１１３は、伸長時間積算回路１１５および選択回路１１６に接続されており、データサイズが最小の圧縮データを示す信号を送出する。
【００４１】
伸長時間比較回路１１４は、第１〜第４伸長時間検出回路１１２ａ〜１１２ｄで検出された各圧縮データの伸長時間を比較する。伸長時間比較回路１１４は、第１〜第４伸長時間検出回路１１２ａ〜１１２ｄからの信号に基づいて４種類の圧縮データの伸長時間を比較し、伸長時間が最短の圧縮データを特定する。伸長時間比較回路１１４は、伸長時間積算回路１１５および選択回路１１６に接続されており、伸長時間が最短の圧縮データを示す信号を送出する。
【００４２】
伸長時間積算回路１１５は、出力データとして出力された圧縮データの伸長時間の積算値を算出する。伸長時間積算部１１５は、第１〜第４伸長時間検出回路１１２ａ〜１１２ｄ、サイズ情報比較回路１１３、および伸長時間比較回路１１４からの信号に基づいて、出力データとして出力された圧縮データの伸長時間の積算値を算出する。また、伸長時間積算回路１１５は、出力データとして出力された圧縮データの伸長時間の積算値を、当該圧縮データの元となった画像データのデータサイズに応じて設定される閾値と比較する。伸長時間積算回路１１５は、選択回路１１６に接続されており、伸長時間の積算値と閾値との比較結果を示す信号を送出する。
【００４３】
選択回路１１６は、データセレクト回路１１７の動作基準を切り替える。選択回路１１６は、データセレクト回路１１７に接続されており、伸長時間積算回路１１５からの信号に基づいて、データセレクト回路１１７の動作基準を切り替える。選択回路１１６は、データセレクト回路１１７がサイズ情報比較回路１１３からの信号に応じて動作する状態と、データセレクト回路１１７が伸長時間比較回路１１４からの信号に応じて動作する状態とを切り替える。
【００４４】
データセレクト回路１１７は、複数種類の圧縮データの中から一の圧縮データを選択して出力する。データセレクト回路１１７は、サイズ情報比較回路１１３または伸長時間比較回路１１４からの信号に基づいて、第１〜第４圧縮アルゴリズム回路１１１ａ〜１１１ｄで生成された４種類の圧縮データの中から、データサイズが最小の圧縮データまたは伸長時間が最短の圧縮データを出力データとして出力する。
【００４５】
次に、第１〜第４圧縮アルゴリズム回路１１１ａ〜１１１ｄにより実行される４種類の圧縮アルゴリズムについて説明する。
【００４６】
＜第１圧縮アルゴリズム＞
第１圧縮アルゴリズムは、「代表値圧縮」と称される圧縮アルゴリズムであり、特定の階調データのフィルパターン（たとえば、１０％グレーのフィルパターン）と３２ピクセル（１６バイト）の画像データとが一致するか否かを判定し、フィルパターンと画像データとが一致する場合、１６バイトの画像データを８ビットのデータに置き換え、２ビットのヘッダを付加して１０ビットのデータとして出力する。
【００４７】
フィルパターンと画像データとが一致しない場合には、１６バイトの画像データが４分割され、４バイトの画像データとフィルパターンとが一致するか否かが判定される。４バイトの画像データとフィルパターンとが一致する場合には、４バイトの画像データが１０ビットのデータとして出力され、４バイトの画像データとフィルパターンとが一致しない場合には、圧縮結果が得られない。
【００４８】
印刷ジョブ毎に異なるフィルパターンを取得するにはＲＡＭ１３を参照する必要があるため、第１圧縮アルゴリズムにより圧縮されたデータを伸長する場合、３２ピクセル（１６バイト）の画像データを復元するのに、４分割されてない画像データに対しては、６クロックの処理時間が必要とされ、４分割された画像データに対しては、２４クロックの処理時間が必要とされる。
【００４９】
＜第２圧縮アルゴリズム＞
第２圧縮アルゴリズムは、「単純履歴」と称される圧縮アルゴリズムであり、４バイト単位で区切られる過去２０４８バイトのデータの履歴と４バイトの画像データとを比較して、画像データと一致するデータの位置情報を返すことにより、４バイトの画像データを１８ビットのデータとして出力する。なお、第１圧縮アルゴリズムと同様、第２圧縮アルゴリズムによる圧縮処理も、画像データによっては圧縮結果が得られない。
【００５０】
第２圧縮アルゴリズムでは、過去２０４８バイトのデータの履歴を保持するためにＲＡＭ１３を使用する必要があり、第２圧縮アルゴリズムにより圧縮された画像データを伸長する場合、３２ピクセル（１６バイト）の画像データを復元するのに、２４クロックの処理時間が必要とされる。
【００５１】
＜第３圧縮アルゴリズム＞
第３圧縮アルゴリズムは、「ハフマン符号」と称される圧縮アルゴリズムであり、統計データに基づいて出現頻度順にデータを並べた「ハフマンテーブル」と称されるデータ変換テーブルを使用し、出現頻度の高いデータにビット長の短い符号を割り当てることによりデータを圧縮する。圧縮結果は出現頻度に応じて可変となり、４バイトの画像データが１０〜４６ビットの圧縮データに変換される。
【００５２】
「ハフマンテーブル」は固定データとして準備されるため、ＲＡＭを用いないロジック回路が実現可能であり、第３圧縮アルゴリズムにより圧縮されたデータを伸長する場合、３２ピクセル（１６バイト）の画像データを復元するのに、１２クロックの処理時間が必要とされる。
【００５３】
＜第４圧縮アルゴリズム＞
第４圧縮アルゴリズムは、非圧縮であり、元の画像データにヘッダを付加して、非圧縮のまま出力する。第４圧縮アルゴリズムでは、１６バイトの画像データに３ビットのヘッダが付加され、１３１ビットのデータが生成される。
【００５４】
一方、第４圧縮アルゴリズムにより生成されたデータを伸長するには、ヘッダ解析に１クロックが必要であり、１クロック毎に４バイトのデータが伸長されるため、３２ピクセル（１６バイト）の画像データを復元するのに、５クロックの処理時間が必要とされる。
【００５５】
第１〜第４圧縮アルゴリズムの圧縮結果および伸長時間をまとめたものを表１に示す。
【００５６】
【表１】
2010200174.tif 000003
【００５７】
表１に示されるとおり、４種類の圧縮アルゴリズムでは、同一の画像データを圧縮して得られる圧縮データのデータサイズおよび伸長時間が互いに異なる。
【００５８】
以上のとおり構成される本実施形態のプリンタ１では、ホストＰＣ２から印刷ジョブが受信される場合、印刷ジョブに含まれるＰＤＬデータが、ラスタライズ処理によりビットマップ形式の画像データ３０に変換される。ビットマップ形式の画像データ３０は、ＲＡＭ１３に一旦格納される。それから、画像データ３０はＲＡＭ１３から読み出され、画像処理部１４において圧縮された後、ＲＡＭ１３に再度格納される。圧縮済み画像データ４０は、ページ単位で読み出され、リアルタイムに伸長されながら印刷部１６に転送される。なお、本実施形態の伸長処理では、圧縮された画像データは、解像度等の劣化を伴うことなく元の画像データに復元される。
【００５９】
本実施形態の圧縮モジュール１０３では、１ライン分の画像データの伸長処理が印刷処理に間に合わずに印刷エラーが発生してしまうことを防止するために、圧縮済みの画像データの１ライン分の伸長時間が許容範囲に収まる範囲内で、圧縮済みの画像データのデータサイズがより小さくなるように画像データが圧縮される。
【００６０】
図４は、図３に示される圧縮モジュールにおける画像データの圧縮処理を説明するためのフローチャートである。本実施形態では、１ライン分の画像データを分割して得られる１６バイト（３２ピクセル）の分割画像データ単位で、１ライン分の画像データが一方の端部から他方の端部まで圧縮される。
【００６１】
図４に示されるとおり、本実施形態における画像データの圧縮処理では、まず、伸長時間積算カウンタが初期化される（ステップＳ１０１）。本実施形態では、１ライン分の画像データの圧縮処理に先立って、伸長時間積算回路１１５における伸長時間の積算値が初期値「０」に設定される。
【００６２】
次に、第１〜第４圧縮アルゴリズムによって、１つの分割画像データが同時並行に圧縮される（ステップＳ１０２）。本実施形態では、第１〜第４圧縮アルゴリズム回路１１１ａ〜１１１ｄに、１６バイトの分割画像データが同時に入力され、第１〜第４圧縮アルゴリズムで圧縮される。その結果、１つの分割画像データに対して、４種類の圧縮データが生成される。これにともなって、第１〜第４伸長時間検出回路１１２ａ〜１１２ｄにおいて各圧縮データの伸長時間（クロック数）が検出される。第１〜第４伸長時間検出回路１１２ａ〜１１２ｄは、表１に示される関係にしたがって、対応する圧縮データのデータサイズ情報から、圧縮データの伸長時間をそれぞれ検出する。
【００６３】
次に、出力済みの圧縮データの伸長時間の積算値が閾値未満であるか否かが判断される（ステップＳ１０３）。本実施形態では、ステップＳ１０２に示す処理で生成された複数種類の圧縮データの中から、出力データとして出力する一の圧縮データを選択するのに先立って、まず、１ライン分の画像データの端部から順次に圧縮される分割画像データのうち、出力データとして既に出力済みの圧縮データの伸長時間が積算される。そして、出力済みの圧縮データの伸長時間の積算値（総クロック数）が、当該圧縮データの元となった分割画像データの総データ数に応じて設定される閾値と比較される。
【００６４】
ここで、閾値は、出力済みの圧縮データの元となった分割画像データに基づく画像の印刷処理に必要とされる時間として、圧縮出力済みの分割画像データの総データ数と所定のクロック数との積により表される。たとえば、１６バイトの分割画像データに基づく画像の印刷処理に必要とされる時間が２０クロックであり、出力済みの圧縮データの元となった分割画像データの総データ数がＮバイトである場合、閾値は、Ｎ×２０／１６クロックで表される。
【００６５】
より具体的には、１ライン分の画像データの一方の端部から４番目の分割画像データまで圧縮処理が終了して出力データが出力済みである場合、分割画像データの総データ数は６４（１６×４）バイトであり、閾値は、８０（６４×２０／１６）クロックに設定される。この８０クロックが４番目までの出力データの伸長時間の積算値Ｍと比較される。なお、所定サイズの画像データに基づく画像の印刷処理に必要とされる時間（たとえば、２０クロック）は、印刷部１６の用紙搬送速度等の特性を考慮して決定される。
【００６６】
伸長時間の積算値Ｍが閾値未満であると判断される場合（ステップＳ１０３：ＹＥＳ）、複数種類の圧縮データの中から、データサイズが最小の圧縮データが選択される（ステップＳ１０４）。本実施形態では、伸長後の分割画像データに基づく画像の印刷処理に要する時間よりも圧縮データの伸長時間の方が短いため、印刷エラーは発生しないとして、ステップＳ１０２に示す処理で生成された複数種類の圧縮データの中から、データサイズが最小の圧縮データが選択される。たとえば、Ｍ＜Ｎ×２０／１６の場合、４種類の圧縮データの中から、データサイズが最小の圧縮データが選択される。
【００６７】
そして、選択された圧縮データが出力データとして出力される（ステップＳ１０５）。本実施形態では、ステップＳ１０４に示す処理で選択されたデータサイズが最小の圧縮データが、出力データとして出力される。なお、データサイズが最小となる圧縮データが２つ以上ある場合には、伸長時間のより短い圧縮データが選択される。
【００６８】
次に、出力データとして出力された圧縮データの伸長時間が、伸長時間の積算時間に加算される（ステップＳ１０６）。本実施形態では、ステップＳ１０４に示す処理で選択されたデータサイズが最小の圧縮データの伸長時間が、伸長時間積算回路１１５に格納されている伸長時間の積算値に加算される。
【００６９】
以上のとおり、ステップＳ１０１〜Ｓ１０６に示す処理によれば、まず、１ライン分の画像データを分割して得られる分割画像データが複数種類の圧縮アルゴリズムにより同時並行に圧縮されて、複数種類の圧縮データが生成される。次に、出力データとして出力済みの分割画像データの総データ数に応じて設定される閾値と、出力済みの圧縮データの伸長時間の積算値とが比較される。そして、伸長時間の積算値が閾値未満と判断される場合、複数種類の圧縮データの中からデータサイズが最小の圧縮データが選択される。
【００７０】
一方、ステップＳ１０３に示す処理において、伸長時間の積算値Ｍが閾値以上であると判断される場合（ステップＳ１０３：ＮＯ）、複数種類の圧縮データの中から、伸長時間が最短の圧縮データが選択される（ステップＳ１０７）。本実施形態では、伸長後の分割画像データに基づく画像の印刷処理に要する時間よりも圧縮データの伸長時間の方が長いため、印刷エラーが発生するおそれがあるとして、ステップＳ１０２に示す処理で生成された複数種類の圧縮データの中から、伸長時間が最短の圧縮データが選択される。たとえば、Ｍ≧Ｎ×２０／１６の場合、４種類の圧縮データの中から、伸長時間が最短の圧縮データが選択される。
【００７１】
そして、選択された圧縮データが出力データとして出力される（ステップＳ１０８）。本実施形態では、ステップＳ１０７に示す処理で選択された伸長時間が最短の圧縮データが、出力データとして出力される。
【００７２】
次に、出力データとして出力された圧縮データの伸長時間が、伸長時間の積算値に加算される（ステップＳ１０９）。本実施形態では、ステップＳ１０７に示す処理で選択された伸長時間が最短の圧縮データの伸長時間が、伸長時間積算回路１１５に格納されている伸長時間の積算値に加算される。
【００７３】
以上のとおり、ステップＳ１０７〜Ｓ１０９に示す処理によれば、出力済みの圧縮データの伸長時間の積算値が閾値以上と判断される場合、複数種類の圧縮データの中から伸長時間が最短の圧縮データが選択される。
【００７４】
次に、１ライン分の画像データの終端まで圧縮処理が実行されたか否かが判断される（ステップＳ１１０）。本実施形態では、１ライン分の画像データの一方の端部から１６バイトの分割画像データ毎に順次に実行される圧縮処理が、１ライン分の画像データの他方の端部まで実行されたか否かが判断される。
【００７５】
１ライン分の画像データの終端まで圧縮処理が実行されていないと判断される場合（ステップＳ１１０：ＮＯ）、１ライン分の画像データの終端の分割画像データに対する圧縮処理が実行されるまで、ステップＳ１０２以下の処理が繰り返される。
【００７６】
一方、１ライン分の画像データの終端まで圧縮処理が実行されたと判断される場合（ステップＳ１１０：ＹＥＳ）、複数ラインの画像データのうち最終ラインの画像データまで圧縮処理が完了されたか否かが判断される（ステップＳ１１１）。本実施形態では、バンド単位で取得されている画像データの最終ラインまで、圧縮処理が完了されたか否かが判断される。
【００７７】
最終ラインまで圧縮処理が完了されていないと判断される場合（ステップＳ１１１：ＮＯ）、最終ラインの圧縮処理が完了されるまで、ステップＳ１０１以下の処理が繰り返される。一方、最終ラインまで圧縮処理が完了されたと判断される場合（ステップＳ１１１：ＹＥＳ）、処理が終了される。
【００７８】
以上のとおり、ステップＳ１１０〜Ｓ１１１に示す処理によれば、１６バイトの分割画像データ単位で実行される１ライン分の画像データの圧縮処理が、１つのバンドを構成する複数のラインに対して実行される。その結果、１バンド分の画像データが圧縮され、圧縮後の画像データは、メモリ１３に再度格納される。
【００７９】
そして、図４に示されるフローチャートの処理によれば、１ライン分の画像データを構成する複数の分割画像データのうち圧縮出力済みの分割画像データの伸長時間の積算値が閾値未満である場合には、画像データの伸長時間に余裕があるとして、複数種類の圧縮データの中からデータサイズが最小の圧縮データが選択される。一方、圧縮出力済みの分割画像データの伸長時間の積算値が閾値以上になる場合には、画像データの伸長時間に余裕がないとして、複数種類の圧縮データの中から伸長時間が最短の圧縮データが選択される。
【００８０】
このような構成によれば、１ライン分の画像データを一方の端部から他方の端部まで１６バイト単位で順次に圧縮していく中で、データサイズが最小の圧縮データを出力データとして出力する処理と伸長時間が最短の圧縮データを出力データとして出力する処理とが、伸長時間の積算値と閾値との比較結果に応じて切り替えられることにより、データサイズと伸長時間の両方が最適化された１ライン分の圧縮済み画像データが取得される。
【００８１】
その結果、圧縮された画像データをリアルタイムに伸長しながら印刷処理を実行する印刷方式において、１ライン分の画像データの伸長処理が印刷処理に間に合わずに印刷エラーが発生してしまうことが防止される。さらに、画像データができる限り小さいデータサイズにまで圧縮されるため、ＲＡＭ１３の使用量が最小化される。
【００８２】
以上のとおり、本実施形態によれば、複数種類の圧縮アルゴリズムによって同時並行に生成される複数種類の圧縮データの中から、各圧縮データの伸長時間とデータサイズとに基づいて一の圧縮データが選択され、出力データとして出力される。したがって、画像データの圧縮結果として出力する圧縮データを複数種類の圧縮データの中から選択する際に、各圧縮データの伸長時間とデータサイズとを参照して、最適な圧縮データを選択することが可能となる。これにより、画像データの伸長時間が許容範囲に収まる範囲内で、画像データをより小さなサイズに圧縮することができる。
【００８３】
また、本実施形態によれば、複数種類の圧縮アルゴリズムにより画像データが同時並行に圧縮されるので、圧縮方式を変更して画像データを圧縮し直す場合よりも効率よく画像データを圧縮することができる。さらに、画像データを圧縮し直すために元の画像データを保持しておく必要がなく、メモリの使用量が節約される。
【００８４】
本発明は、上記した実施形態のみに限定されるものではなく、特許請求の範囲内において、種々改変することができる。
【００８５】
たとえば、上記実施形態では、伸長時間の積算値と閾値との比較結果に応じて、複数種類の圧縮データの中から、データサイズが最小の圧縮データまたは伸長時間が最短の圧縮データが選択された。しかしながら、複数種類の圧縮データの中から一の圧縮データを選択する方法は、上記実施形態に限定されるものではない。たとえば、伸長時間の積算値と閾値とを比較するのではなく、複数種類の圧縮データの伸長時間自体を所定の許容値と比較することにより、複数種類の圧縮データを許容値未満の伸長時間を有する圧縮データに絞り込み、絞り込まれた圧縮データの中から、データサイズが最小の圧縮データが選択されてもよい。
【００８６】
また、上記実施形態では、１ライン分の画像データを分割して得られる分割画像データ単位で画像データの圧縮処理が実行された。しかしながら、たとえば、１ライン分の画像データ単位で画像データが圧縮されてもよく、または、所定ライン数のバンド単位もしくは所定のブロック単位で画像データが圧縮されてもよい。
【００８７】
本実施形態にかかる画像処理装置における各種処理を行う手段および方法は、専用のハードウエア回路、またはプログラムされたコンピュータのいずれによっても実現することが可能である。上記プログラムは、たとえば、フレキシブルディスクおよびＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体によって提供されてもよいし、インターネット等のネットワークを介してオンラインで提供されてもよい。この場合、コンピュータ読み取り可能な記録媒体に記録されたプログラムは、通常、ハードディスク等の記憶部に転送され記憶される。また、上記プログラムは、単独のアプリケーションソフトとして提供されてもよいし、装置の一機能としてその装置のソフトウエアに組み込まれてもよい。
【符号の説明】
【００８８】
１  プリンタ、
１１  ＣＰＵ、
１２  ＲＯＭ、
１３  ＲＡＭ、
１４  画像処理部、
１５  データ出力部、
１６  印刷部、
１７  Ｉ／Ｆ制御部、
１８  ホストＩ／Ｆ、
２  ホストＰＣ、
１０１  ＲｅａｄＤＭＡ回路、
１０２  画像処理モジュール、
１０３  圧縮モジュール、
１０４  ＷｒｉｔｅＤＭＡ回路、
１１１ａ，１１１ｂ，１１１ｃ，１１１ｄ  第１〜第４圧縮アルゴリズム回路、
１１２ａ，１１２ｂ，１１２ｃ，１１２ｄ  第１〜第４伸長時間検出回路、
１１３  サイズ情報比較回路、
１１４  伸長時間比較回路、
１１５  伸長時間積算回路、
１１６  選択回路、
１１７  データセレクト回路。
【図１】
2010200174.tif 000004
【図２】
2010200174.tif 000005
【図３】
2010200174.tif 000006
【図４】
2010200174.tif 000007