(57)【要約】【課題】可変長圧縮方式であってもメモリの利用効率が良く、且つ連続した圧縮データが得られる。【解決手段】画像入力部は画像データを入力し、画像分割部２０は画像データをブロック単位に分割し、圧縮処理部３０は分割された画像データをそれぞれ並行して圧縮する。その際、データ量検出部４０が圧縮途中や圧縮後のデータ量を検出し、データ量比較部５０が圧縮途中や圧縮後のデータ量と第１の記憶部６０のバッファメモリ６１の容量を比較し、ＣＰＵ８０の制御下、適宜圧縮率を下げて再圧縮し、第１の記憶部６０のバッファメモリ６１に格納する。【選択図】図１
2008236084.tif 000002
【特許請求の範囲】
【請求項１】
画像データを入力する画像入力工程と、
前記画像入力工程により入力された画像データから、１又は複数の領域からなる分割データを生成する分割データ生成工程と、
前記生成された１又は複数の分割データを前記領域毎に個別に圧縮し、１または複数の分割圧縮データを生成する分割圧縮データ生成工程と、
前記１又は複数の分割圧縮データを、複数の記憶空間を有する第１の記憶手段のいずれか１つの記憶空間に、領域毎に個別に格納する第１の記憶工程と、
前記第１の記憶手段の各記憶空間に格納された夫々の分割圧縮データを、第２の記憶手段に連続的に格納し直す第２の記憶工程と、を有する画像処理方法であって、
前記領域毎の分割圧縮データのデータ量を検出するデータ量検出工程と、
前記データ量検出工程にて検出された分割圧縮データのデータ量と、当該分割圧縮データが対応する前記第１の記憶手段の記憶空間容量とを比較するデータ量比較工程と、を有し、
前記データ量比較工程における比較の結果、分割圧縮データのデータ量が、当該分割圧縮データが対応する前記第１の記憶手段の記憶空間容量よりも大きいと判定された場合、前記分割圧縮データ生成工程は、分割圧縮データのデータ量を前記記憶空間に格納できるデータ量に変換することを特徴とする画像処理方法。
【請求項２】
前記分割圧縮データ生成工程は、画像データを周波数成分に変換する周波数変換工程を有し、画像データを構成する周波数成分のうち、高周波成分側の一部を除去することによって分割圧縮データのデータ量を変換することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記分割圧縮データ生成工程は、画像データの低周波成分側から順次圧縮し、且つ前記データ量検出工程及び前記データ量比較工程と並行して実行され、
前記データ量比較工程の結果、分割圧縮データのデータ量が、当該分割圧縮データが対応する前期第１の記憶手段の記憶空間容量よりも大きいと判定された場合、前記分割圧縮データ生成工程は、その周波数成分以降の高周波成分の圧縮を実行しないことで、実質的に画像データの高周波成分側の一部を除去することを特徴とする請求項２に記載の画像処理方法。
【請求項４】
画像データを入力する画像入力手段と、
前記画像入力手段により入力された画像データから、１又は複数の領域からなる分割データを生成する分割データ生成手段と、
前記生成された１又は複数の分割データを前記領域毎に個別に圧縮し、１または複数の分割圧縮データを生成する分割圧縮データ生成手段と、
前記１又は複数の分割圧縮データを、領域毎に個別に格納する複数の記憶空間を有する第１の記憶手段と、
前記第１の記憶手段の各記憶空間に格納された夫々の分割圧縮データを、連続的に格納する第２の記憶手段と、を備える画像処理装置であって、
前記領域毎の分割圧縮データのデータ量を検出するデータ量検出手段と、
前記データ量検出手段にて検出された分割圧縮データのデータ量と、当該分割圧縮データが対応する前記第１の記憶手段の記憶空間容量とを比較するデータ量比較手段と、を備え、
前記データ量比較手段における比較の結果、分割圧縮データのデータ量が、当該分割圧縮データが対応する前記第１の記憶手段の記憶空間容量よりも大きいと判定された際、前記分割圧縮データ生成手段は、分割圧縮データのデータ量を前記記憶空間に格納できるデータ量に変換することを特徴とする画像処理装置。
【請求項５】
前記分割圧縮データ生成手段は、画像データを周波数成分に変換する周波数変換手段を備え、画像データを構成する周波数成分のうち、高周波成分側の一部を除去することによって分割圧縮データのデータ量を変換することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記分割圧縮データ生成手段は、画像データの低周波成分側から順次圧縮するものであり、且つ前記データ量検出手段及び前記データ量比較手段と並行して動作し、
前記データ量比較手段の動作の結果、分割圧縮データのデータ量が、当該分割圧縮データが対応する前記第１の記憶手段の記憶空間容量よりも大きいと判定されたとき、前記分割圧縮データ生成手段は、その周波数成分以降の高周波成分の圧縮を実行しないことで、実質的に画像データの高周波成分側の一部を除去することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
請求項１乃至３いずれか一項に記載の画像処理方法をコンピュータが制御可能にプログラミングしたことを特徴とする画像処理プログラム。
【請求項８】
請求項７に記載の画像処理プログラムをコンピュータが読み取り可能な形式で記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理方法、画像処理装置、画像処理プログラム及び記録媒体に関し、特に画像データを複数領域に分割し個別に圧縮処理を施す画像処理方法、画像処理装置、画像処理プログラム及び記録媒体に関するものである。
【背景技術】
【０００２】
特許文献１には次のような技術が開示されている。即ち、画像データ処理回路が入力転送と出力転送とを並列的に処理する並列入出力モード、入力した画像データを並列的に圧縮処理する並列入力モード、並列的に伸張したデータを出力部へ転送する並列出力モードのいずれかを選択する転送制御部を備える。これにより要求される圧縮・伸張処理速度ならびに画像データ転送速度に応じた構成を選択し、高速機と中速機の両方の用途に夫々好適な構成で適用することができる。例えば、高速機向けには並列入力モードの当該回路と、並列出力モードの当該回路を対で使用し中速機向けには並列入出力モードの当該回路を単独で使用することにより夫々の用途に応じて構成を最適化できる。
特許文献２には、分割データ毎の処理時間が近似するようにデータを分割し、分割データを並行処理して同一のメモリ空間内の異なるアドレスに格納することによって全体の処理時間を短縮し高速化を図るという技術が開示されている。ここでの処理には圧縮／伸長処理も含まれている。またメモリへの蓄積方法を工夫し使用されない無駄なメモリの発生を抑制させる様々な方法について記述されている。より詳細には、画像を複数のバンドに分割して圧縮し、夫々の圧縮データを同一メモリ上の先頭アドレスからアドレスをインクリメント（増加）させる方向と、最終アドレスからアドレスをデクリメントする方向で交互に蓄積するなどの方法が記述されている。
【０００３】
また、プリンタやデジタル複合機等の画像処理装置では、スキャナなどの画像入力手段を介して入力された画像データを記憶手段に保存する際に、所定の規格に準じた画像圧縮方式により画像データを圧縮し、また保存された画像データを印刷する際には圧縮された画像データを伸張した後印刷処理を行う構成が知られている。上記画像データの圧縮処理・伸張処理には、一般にＡＳＩＣ等の専用の回路が用いられているが単独の回路構成では圧縮・伸張処理が入出力の速度に追従できない場合があった。そこで、前述のように画像データを扱う画像処理の分野では、圧縮／伸長処理などの画像処理を高速に行うため、画像データを複数の領域に分割し、複数の画像処理部で並行処理する手法が知られている。
【特許文献１】特開２００６−４９９９１公報
【特許文献２】特開２００５−３３２２９８公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１記載の発明には、圧縮したデータをメモリに蓄積する動作については詳細な記述がなされておらず、１つの画像データが複数のブロックに分割された状態で個別に蓄積されると考えられる。このため、圧縮データを伸張する際に分割された圧縮データを結合する必要があり煩雑である。また、圧縮処理が可変長圧縮である場合、分割された個別の圧縮データを格納するメモリを最低圧縮率のものに合わせておく必要があるためメモリ資源を有効に活用できないという問題がある。
また、特許文献２に記載の発明で開示されている方法を用いた場合、メモリの利用効率を上げることができるものの、メモリに格納した夫々のバンドの順序がばらばらになり圧縮データを伸長する際に並び替えを行ったり、別途順番に読み出す工夫が必要になったりするなど煩雑である。また、メモリの先頭アドレスからアドレスをインクリメントして格納したデータと、最終アドレスからアドレスをデクリメントして格納したデータとの間は、不連続となるという問題があり、使用されないメモリ空間が発生してしまうことが懸念される。また、夫々のバンドの順序が元の画像データに対してばらばらになってしまうため、格納された圧縮データの先頭のバンドまたは最終のバンド以外のバンドデータを読み出すには、先頭アドレスまたは最終アドレスから順に読み出す必要がありアクセス性が悪いという問題がある。
【０００５】
また、画像データを複数の領域に分割し、複数の画像処理部で並行処理する手法では、例えば、ＪＰＥＧやＪＰＥＧ２０００などの可変長圧縮形式の場合、圧縮処理前後でデータ量が変化するだけでなく、圧縮処理前のデータ量が同一であっても圧縮処理後のデータ量が異なるのが通常であり、圧縮処理後のデータ量が予測できない。そのため、複数の圧縮手段で並行処理する場合、分割された夫々の圧縮データを格納するためのメモリ空間を予め大きめに割り当てておかねばならず、メモリ資源を効率的に利用できないという問題があった。また、圧縮された画像データは再利用する際にはバーストリードするのが効率的であるので、メモリ上では連続して格納されている方が好ましいという問題もあった。
本発明は、上記問題点を鑑み考案されたものであり、可変長圧縮方式であってもメモリの利用効率が良く、且つ連続した圧縮データが得られる画像処理方法、画像処理装置、画像処理プログラム、また前記画像処理プログラムを格納した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し目的を達成するために、請求項１にかかる発明は、画像データを入力する画像入力工程と前記画像入力工程により入力された画像データから、１又は複数の領域からなる分割データを生成する分割データ生成工程と、前記生成された１又は複数の分割データを前記領域毎に個別に圧縮し、１または複数の分割圧縮データを生成する分割圧縮データ生成工程と、前記１又は複数の分割圧縮データを複数の記憶空間を有する第１の記憶手段のいずれか１つの記憶空間に、領域毎に個別に格納する第１の記憶工程と前記第１の記憶手段の各記憶空間に格納された夫々の分割圧縮データを、第２の記憶手段に連続的に格納し直す第２の記憶工程と、を有する画像処理方法であって、前記領域毎の分割圧縮データのデータ量を検出するデータ量検出工程と、前記データ量検出工程にて検出された分割圧縮データのデータ量と、当該分割圧縮データが対応する前記第１の記憶手段の記憶空間容量とを比較するデータ量比較工程と、を有し、前記データ量比較工程における比較の結果、分割圧縮データのデータ量が当該分割圧縮データが対応する前記第１の記憶手段の記憶空間容量よりも大きいと判定された場合、前記分割圧縮データ生成工程は分割圧縮データのデータ量を前記記憶空間に格納できるデータ量に変換することを特徴とする。
【０００７】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記分割圧縮データ生成工程は、画像データを周波数成分に変換する周波数変換工程を有し画像データを構成する周波数成分のうち、高周波成分側の一部を除去することによって分割圧縮データのデータ量を変換することを特徴とする。
また、請求項３にかかる発明は、請求項２にかかる発明において、前記分割圧縮データ生成工程は画像データの低周波成分側から順次圧縮し、且つ前記データ量検出工程及び前記データ量比較工程と並行して実行され、前記データ量比較工程の結果、分割圧縮データのデータ量が当該分割圧縮データが対応する前期第１の記憶手段の記憶空間容量よりも大きいと判定された場合、前記分割圧縮データ生成工程は、その周波数成分以降の高周波成分の圧縮を実行しないことで、実質的に画像データの高周波成分側の一部を除去することを特徴とする。
【０００８】
また、請求項４にかかる発明は、画像データを入力する画像入力手段と、前記画像入力手段により入力された画像データから、１又は複数の領域からなる分割データを生成する分割データ生成手段と、前記生成された１又は複数の分割データを前記領域毎に個別に圧縮し、１または複数の分割圧縮データを生成する分割圧縮データ生成手段と、前記１又は複数の分割圧縮データを領域毎に個別に格納する複数の記憶空間を有する第１の記憶手段と、前記第１の記憶手段の各記憶空間に格納された夫々の分割圧縮データを連続的に格納する第２の記憶手段と、を備える画像処理装置であって、前記領域毎の分割圧縮データのデータ量を検出するデータ量検出手段と、前記データ量検出手段にて検出された分割圧縮データのデータ量と、当該分割圧縮データが対応する前記第１の記憶手段の記憶空間容量とを比較するデータ量比較手段と、を備え、前記データ量比較手段における比較の結果、分割圧縮データのデータ量が、当該分割圧縮データが対応する前記第１の記憶手段の記憶空間容量よりも大きいと判定された際、前記分割圧縮データ生成手段は分割圧縮データのデータ量を前記記憶空間に格納できるデータ量に変換することを特徴とする。
また、請求項５にかかる発明は、請求項４にかかる発明において、前記分割圧縮データ生成手段は、画像データを周波数成分に変換する周波数変換手段を備え、画像データを構成する周波数成分のうち高周波成分側の一部を除去することによって分割圧縮データのデータ量を変換することを特徴とする。
【０００９】
また、請求項６にかかる発明は、請求項５にかかる発明において前記分割圧縮データ生成手段は、画像データの低周波成分側から順次圧縮するものであり、且つ前記データ量検出手段及び前記データ量比較手段と並行して動作し、前記データ量比較手段の動作の結果、分割圧縮データのデータ量が、当該分割圧縮データが対応する前記第１の記憶手段の記憶空間容量よりも大きいと判定されたとき、前記分割圧縮データ生成手段は、その周波数成分以降の高周波成分の圧縮を実行しないことで実質的に画像データの高周波成分側の一部を除去することを特徴とする。
また、請求項７にかかる発明は、請求項１乃至３いずれか一項に記載の画像処理方法をコンピュータが制御可能にプログラミングしたことを特徴とする。
また、請求項８にかかる発明は、請求項７に記載の画像処理プログラムをコンピュータが読み取り可能な形式で記録したことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、領域毎の分割圧縮データのデータ量を検出するデータ量検出工程と、データ量検出工程にて検出された分割圧縮データのデータ量と、当該分割圧縮データが対応する第１の記憶手段の記憶空間容量とを比較するデータ量比較工程と、を有し、データ量比較工程における比較の結果、分割圧縮データのデータ量が、当該分割圧縮データが対応する第１の記憶手段の記憶空間容量よりも大きいと判定された際、圧縮工程は、分割圧縮データのデータ量を記憶空間に格納できるデータ量に変換するので予め用意しておくバッファメモリの容量を小さくすることができ、メモリ資源を有効に活用することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明を図に示した実施形態を用いて詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。
図１は、本実施形態にかかる画像処理装置のハードウェア構成を示した図である。この画像処理装置２００は、画像入力部１０、画像分割部２０、圧縮処理部３０、データ量検出部４０、データ量比較部５０、第１の記憶部６０、伸長処理部９０、画像出力部１００、ＣＰＵ８０、画像処理部１１０、操作部１３０、第２の記憶部７１（メインメモリ７０内にある）、ＨＤＤ１２０及び外部Ｉ／Ｆ１４０等を備えて構成される。なお、本実施形態では、画像分割部２０、圧縮処理部３０、データ量検出部４０、データ量比較部５０、伸長処理部９０、画像処理部１１０を個別に備えた構成としたが、これに限らず例えば、圧縮処理部３０、データ量検出部４０、データ量比較部５０、伸長処理部９０、画像処理部１１０の全て又は何れかの機能を、１つのＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Array）、ＤＲＰ（Dynamic Reconfigurable Processor）などに代表される動的に再構成可能なデバイス（総称して、ＲＬＤ（Reconfigurable Logic Device）とも呼ばれる）等により実現させる態様としてもよい。また、上記の機能の全て又は何れかの機能をＣＰＵ８０によってソフトウェア的に実現する態様としてもよい。
【００１２】
画像入力部１０は、原稿の読み取りをＣＣＤ（Charge Coupled Device）リニアイメージセンサで行い、読み取った画像データにシェーディング処理や、ＲＧＢ処理（例えば、色変換処理、フィルタ処理、γ（ガンマ）変換処理、変倍処理等）を施した後、画像データをＲＧＢフォーマットにて画像分割部２０に出力する。なお、本実施形態では、ＣＣＤリニアイメージセンサにより、原稿の読み取りを行う態様としたが、これに限らず、例えば、密着型イメージセンサ、ＣＣＤエリアイメージセンサ、ＣＭＯＳ（Complementary Metal-Oxide Semiconductor）センサ等を用いる態様としてもよい。
また、画像分割部２０は、ＡＳＩＣ等により構成され、画像入力部１０から入力された画像データを、複数の領域に分割する。ＪＰＥＧやＪＰＥＧ２０００方式で圧縮を行う場合、画像データの主走査方向と副走査方向とを夫々所定のピクセル数単位で分割した各領域を圧縮単位（以下、ブロックともいう）とし、これらブロックを基準に圧縮を行うことになる。例えば、ＪＰＥＧ方式では８×８ピクセルを１ブロック、ＪＰＥＧ２００方式では、１２８×１２８ピクセルを１ブロック等として、ブロック毎に圧縮を行う。
【００１３】
圧縮処理部３０は、ＡＳＩＣ等により構成され、画像分割部２０で分割された画像データ夫々を、複数の圧縮器３１（以下では、圧縮機３１−１乃至３１−４を特に区別する必要がない場合、適宜単に圧縮器３１と記載する）を用いて並行して、所定の規格に準じた画像圧縮方式により圧縮し、第１の記憶部６０に格納する。また、詳細は後述するが、データ量比較部５０からデータ量変換の指令を受け取り、圧縮後の分割画像データを第１の記憶部６０内のバッファメモリ６１（以下では、バッファメモリ６１−１乃至６１−８を特に区別する必要がない場合、適宜単にバッファメモリ６１と記載する）に収めることができるように、圧縮途中で圧縮の終了処理をしたり、圧縮率を変更して再圧縮を行ったりする。なお、本実施形態では複数の圧縮器３１を内部に備えるとしているが、これに限らず、１つの圧縮器３１でシリアルに処理する態様としてもよい。また、内部メモリを備えるなどして、後述する第１の記憶部６０の機能を実現する態様としてもよい。
本実施形態では、画像圧縮方式として基本的にＪＰＥＧ２０００方式に準拠した圧縮方式を用いることとするが、これに限らず、ＪＰＥＧ方式や他の可変長圧縮方式を用いることとしてもよいし、独自の可変長圧縮方式や固定長圧縮方式を用いることとしてもよい。
【００１４】
データ量検出部４０は、ＡＳＩＣ等により構成され、圧縮処理部３０で圧縮された各ブロックの圧縮後のデータ量を検出する。なお、圧縮処理部３０と並行動作することにより動作中の圧縮手段を監視し、リアルタイムでの圧縮データ量を検出する。
データ量比較部５０は、ＡＳＩＣ等により構成され、データ量検出部４０で検出された各ブロックの圧縮途中のデータ量や圧縮後のデータ量と、予めわかっている第１の記憶部６０内に配置された複数の記憶空間たるバッファメモリ６１の容量（バッファメモリ容量）とを比較する。なお、圧縮処理部３０と並行動作することにより、リアルタイムで圧縮データ量とバッファメモリ容量とを比較する。必要に応じて圧縮手段に対して指令を出し、圧縮を終了させるようにしたり、圧縮率を下げて再圧縮をさせたりする。
第１の記憶部６０は、内部に複数の記憶空間たるバッファメモリ６１−１乃至６１−８を備え、夫々のバッファメモリ６１−１乃至６１−８は圧縮処理部３０で圧縮された分割ブロックの圧縮データを一時的に格納する。
第２の記憶部７１（メインメモリ７０内にある）は、ＳＤＲＡＭ（Synchronous DRAM）等の記憶手段であって、第１の記憶部６０内のバッファメモリ６１−１乃至６１−８に分割して格納されたブロック毎の圧縮データを、画像入力部１０から入力された順序で連続したデータとなるよう、並べ替えられて格納される。なお、この動作はＣＰＵ８０が行ってもよいし、ＡＳＩＣ等のハードウェアから直接ＤＭＡ（Direct Memory Access）の機能を用いて行ってもよい。また、他のデータなどを格納してもよい。
【００１５】
伸長処理部９０は、ＡＳＩＣ等により構成され、メインメモリ７０に格納された分割圧縮データ（例えば、ＪＰＥＧ方式やＪＰＥＧ２０００方式）を、ＲＧＢフォーマットの画像データに伸長し、画像出力部１００に出力する。
画像出力部１００は、レーザプリンタ方式やインクジェット方式等の画像形成手段（図示せず）を備え、伸長処理部９０から入力されたＲＧＢフォーマットの画像データをＣＭＹＫフォーマットに変換し、印刷用紙等の記録媒体上に画像形成（印刷）を行う。
ＣＰＵ８０（Central Processing Unit）は、図示しないＲＯＭ（Read Only Memory）やＨＤＤ１２０に予め記憶された所定のプログラムとの協働により、画像処理装置各部の制御を統括的に行う。またＣＰＵ８０が、ＲＯＭやＨＤＤ１２０に予め記憶された所定のプログラムとの協働により、圧縮／伸長処理や、上記に記述したようなデータ量検出処理、データ量比較処理、データ量変換処理や、ＯＣＲ（Optical Character Recognition：光学式文字認識）処理、画像フォーマット変換処理等の画像処理の一部又は全てを行う態様してもよい。
【００１６】
画像処理部１１０は、画像データ（分割圧縮データ）に対し、変倍処理、画像編集処理、画像回転処理等の各種画像処理、画像フォーマット変換処理、レンダリング処理等を施す。また、画像分割部２０と同様に、ＲＧＢフォーマットやＣＭＹＫフォーマットの画像データを複数の領域に分割する画像分割処理を行うとしてもよい。
操作部１３０は、マウスやキーボード等の操作手段と、操作にかかる情報の表示や画像形成装置の状態を表示する表示手段とを有し（何れも、図示せず）、操作手段を介してユーザからの入力操作を受け付けるとともに、ユーザに向けた情報を表示手段に表示する。
ＨＤＤ１２０は、磁気的又は光学的に記録可能な記録媒体を有し、画像入力部１０から入力された画像データ又は圧縮処理部３０により圧縮された圧縮データ、外部Ｉ／Ｆ１４０を介して入力された画像データや文書データ、画像形成装置の制御にかかるプログラムや各種設定情報、フォントデータ等を記憶する。
外部Ｉ／Ｆ１４０は、ＰＣ（Personal Computer）やその他の画像処理装置等の外部機器と接続するインターフェースであって、外部機器との間で情報の授受を行う。なお、外部Ｉ／Ｆ１４０を画像入力部１０とみなして画像データを入力し、上記説明したような種々の処理を施す態様としてもよい。
【００１７】
ＪＰＥＧ２０００方式では、他のブロックからの影響を受けずに圧縮処理等を行うことができるため、圧縮結果をブロック毎に出力できる。圧縮されたブロック（以下、分割圧縮データという）は、夫々が個別に画像編集や画像回転処理を行うことができるが、メモリからの読み出しをする際にはバーストリードが効率的であるため、メモリ上では連続したデータにしておくことが好ましい。
なお、ＪＰＥＧ方式では、隣接しているブロックからの影響を受けるため、影響を受けないように圧縮するなどの工夫が必要である。例えば、１ブロック毎にリスタート（ＲＳＴ）セグメントを挿入することによって、隣接するブロックからの影響を取り除いて圧縮することが可能である。この場合も、メモリ上では連続したデータにしておくことが好ましい。
また、独自の可変長圧縮方式などは、隣接しているブロックからの影響を受けないように圧縮するなどの工夫が必要である。
【００１８】
次にコピー／スキャン動作について説明する。
上記構成の画像処理装置２００において、画像データの印刷にかかる動作（コピー機能）は、次のように行われる。まず、画像入力部１０により読み取られたＲＧＢフォーマットの画像データは、画像分割部２０によって圧縮可能な単位に分割され、圧縮処理部３０によりＪＰＥＧ２０００方式で圧縮された後、メインメモリ７０に格納される。
メインメモリ７０に格納されたＪＰＥＧ２０００方式の画像データ（分割圧縮データ）は、画像処理部１１０により各種画像処理（例えば、変倍処理、画像編集処理、画像回転処理等）が施された後、伸長処理部９０に出力され、ＲＧＢフォーマットの１つの画像データに変換される。その後、画像出力部１００のＣＭＹＫ処理にてＲＧＢフォーマットの画像データからＣＭＹＫフォーマットの画像データに変換された後、印刷用紙等の記録媒体に印刷されることで、コピー機能は実現される。
なお、各種画像処理は、処理の種類によってはＲＧＢフォーマット、或いはＣＭＹＫフォーマットでないと行うことができない処理もある。その場合には、メインメモリ７０に格納されたＪＰＥＧ２０００方式の画像データ（分割圧縮データ）を一度伸張処理部でＲＧＢフォーマットの画像データに変換し、その後各種画像処理を行うようにすればよい。その後、画像データを直接画像出力部１００に送り、上記のような手順で印刷処理を行う。
【００１９】
また、画像データの外部機器への送信（例えば、Scan To Email等）にかかる動作（スキャナ機能）は、次のように行われる。
まず、画像入力部１０により読み取られたＲＧＢフォーマットの画像データは、圧縮処理部３０によりＪＰＥＧ２０００方式で圧縮された後、メインメモリ７０に格納される。メインメモリ７０に格納されたＪＰＥＧ２０００方式の画像データ（分割圧縮データ）は、画像処理部１１０により各種画像処理（例えば、変倍処理、画像編集処理、画像回転処理等）が施された後、他の画像フォーマット（例えば、ＴＩＦＦ、ＰＤＦ等）に変換される。その後、外部Ｉ／Ｆ１４０を介して外部機器に送信されることで、スキャナ機能は実現される。画像フォーマットの変換が必要ない場合には、そのままの状態で、外部Ｉ／Ｆ１４０を介して外部機器に送信されることになる。
なお、画像入力部１０にて読み取られたＲＧＢフォーマットの画像データは、圧縮処理部３０によってＪＰＥＧ２０００圧縮された後、ＨＤＤ１２０に格納しておくことができる。したがって、原稿の読み取りを再び行うことなく、画像データの再送信や再印刷が可能である。さらに、ＨＤＤ１２０に格納されたＪＰＥＧ２０００形式の画像データは、再送信や再印刷を行う度に、各画像処理や画像フォーマット変換処理などが可能となる。
【００２０】
図２は、本実施形態の基本的な動作を説明するための図である。図２に示すように、圧縮処理部３０は、複数の圧縮器３１を具備している。
画像分割部２０は、複数のバッファメモリ２１−１乃至２１−４（以下では、バッファメモリ２１−１乃至２１−４を特に区別する必要がない場合、適宜単にバッファメモリ２１と記載する）を有し、画像入力部１０から入力された画像データを１又は複数のブロック（領域）に分割することで、複数の分割データを生成し、バッファメモリ２１−１乃至２１−４に夫々格納する。なお、バッファメモリ２１−１乃至２１−４は、独立した記憶素子により構成することとしてもよいし、１つの記憶素子内に形成された複数の記憶領域により構成することとしてもよい。
第１の記憶部６０は、その内部に複数の記憶空間としてのバッファメモリ６１−１乃至６１−８を有し、圧縮処理部３０の各圧縮器３１に対して２つのバッファメモリ６１が夫々割り当てられている。即ち、この場合、圧縮器３１−１には、バッファメモリ６１−１、６１−２が、圧縮器３１−２には、バッファメモリ６１−３、６１−４が、圧縮器３１−３には、バッファメモリ６１−５、６１−６が、圧縮器３１−４には、バッファメモリ６１−７、６１−８がそれぞれ割り当てられている。なお、バッファメモリ６１−１乃至６１−８は、夫々独立した記憶素子により構成することとしてもよいし、一の記憶素子内に形成された複数の記憶領域により構成することとしてもよい。
【００２１】
図３は、画像データを分割する際の動作を説明するための図である。ここで、入力される画像データは、１頁分のカラー画像であるとし、また、後段の圧縮処理部３０による圧縮方式はＪＰＥＧ２０００であるものとする。
画像入力部１０において、ＣＣＤリニアイメージセンサによる画像データの読み取り順序は、まず主走査方向の領域１及び領域２を同時に読み取り、その後、副走査方向に領域３及び領域４、領域５及び領域６、領域７及び領域８へと順次読み取ることになる。画像分割部２０では、画像入力部１０から入力される画像データを、その入力順序に応じて２つの領域毎に分割し、バッファメモリ２１−１乃至２１−４に順次格納する。これは、例えば、画像入力部１０から入力された画像データを、所定のライン数分だけ１つのバッファメモリ２１に格納し、それが完了したら次のバッファメモリ２１に格納するという方式で実現することができる。
ここでは、図３に示したように、副走査方向に４分割した夫々の分割データ（領域１及び領域２、領域３及び領域４、領域５及び領域６、領域７及び領域８）が、各バッファメモリ２１−１乃至２１−４に順次格納されるものとする。例えば、Ａ４サイズ、６００ｄｐｉの画像データでは、約１２４０ラインずつ各バッファメモリ２１に順次格納されることになる。なお、圧縮単位が１２８×１２８ピクセルで構成されるＪＰＥＧ２０００方式の圧縮では、最小で１２８ラインずつ各バッファメモリ２１に格納されることになる。
【００２２】
圧縮処理部３０は、図２に示すように、分割データを個別に圧縮可能な圧縮器３１−１乃至３１−４を有し、当該圧縮器３１により、バッファメモリ２１−１乃至２１−４に格納された分割データを、当該分割データに含まれる領域毎に並行して圧縮することにより、複数の分割圧縮データを生成する。そのとき、生成された分割圧縮データのデータ量を検出し、対応する第１の記憶部６０内のバッファメモリ６１の容量と比較する。その結果、圧縮データのデータ量がバッファメモリ６１の容量以下であるときに、第１の記憶部６０に出力される。以下、ブロックの圧縮データ量が、対応するバッファメモリ６１の容量以下の場合についての一例を説明する。ブロックの圧縮データ量がバッファメモリ６１の容量よりも大きくなった場合については、詳細を後述する。
具体的に、圧縮処理部３０の圧縮器３１−１乃至３１−４は、バッファメモリ２１−１乃至２１−４に格納された２つの領域からなる分割データから、各領域分に対応する分割データを夫々読み取り、ＪＰＥＧ２０００方式で個別に圧縮することで、複数の分割圧縮データを並行して生成する。これにより、分割された画像データを並行して圧縮することができるため、圧縮処理に要する時間を短縮化できる。
【００２３】
図２では、バッファメモリ２１−１に格納された領域１、２からなる分割データが、圧縮処理部３０の圧縮器３１−１、３１−２により夫々個別に圧縮が行われた場合を例示している。
個別に圧縮された分割圧縮データは、第１の記憶部６０のバッファメモリ６１−１乃至６１−８に夫々格納される。各圧縮器３１には、上述したとおりバッファメモリ６１が２つずつ割り当てられており、各圧縮器３１で圧縮された圧縮分割データは、対応する２つのバッファメモリ６１に交互に格納される。例えば、圧縮器３１−１で圧縮された領域１の圧縮分割データは、バッファメモリ６１−１に格納され、領域５の圧縮分割データは、バッファメモリ６１−２に格納される。
ここで、ＪＰＥＧ方式やＪＰＥＧ２０００方式などの可変長圧縮方式で圧縮を行う場合、圧縮後のデータ容量は予測できないため、各バッファメモリ６１−１乃至６１−８の記憶容量は、最低圧縮率の分割圧縮データ分が格納できる容量が確保されているのが通常である。しかし、理論上の最低圧縮率で圧縮されるブロックは非常に稀であり、日常取り扱われるような画像データ（例えば、オフィス文書データや写真画像データなど）ではほとんど見られない。また、上記のような日常取り扱われる画像データにおいても、圧縮後のデータ量が比較的大きいブロックは画像データ全体のほんの一部であり、大多数のブロックは予め用意されたバッファメモリ６１の一部しか使用しない。
【００２４】
本発明は、上記のような問題を解決するものであり、予め用意しておくバッファメモリ６１の容量は、大多数のブロックの圧縮データが格納できる任意の容量とする。例えば、１つの画像データのうち、８〜９割のブロックの圧縮データが格納できる容量としてもよいし、理論上の最低圧縮率で圧縮されるデータ容量の２〜３割の容量というようにしてもよい。なお、分割圧縮データのデータ量がバッファメモリ６１の容量よりも大きくなった場合の処理については、詳細を後述する。
第１の記憶部６０のバッファメモリ６１−１乃至６１−８に格納した各分割圧縮データは、画像入力部１０から入力された順序、即ち、ＣＣＤリニアイメージセンサが読み取った順序で、先に格納する分割圧縮データの最終アドレスと、次に格納する分割圧縮データの先頭アドレスとが連続するよう並び替えた状態で、第２の記憶手段としてのメインメモリ７０に格納される。
【００２５】
具体的に、バッファメモリ６１−１乃至６１−８のうち、各圧縮器３１に割り当てられた最初のバッファメモリ６１−１、６１−３、６１−５、６１−７に格納された領域１〜４の分割圧縮データが画像入力部１０にて入力された順序で読み出され、この読み出し順序に基づいて各分割圧縮データの先頭アドレスと最終アドレスとが連続するようメインメモリ７０に順次格納される。次に、各圧縮器３１に割り当てられた次のバッファメモリ６１−２、６１−４、６１−６、６１−８に格納された領域５〜８の分割圧縮データが順次読み出され、この読み出し順序に基づいて各分割圧縮データの先頭アドレスと最終アドレスとが連続するようメインメモリ７０に順次格納される。
このような処理により、１つの画像データにかかる一連の分割圧縮データを、画像入力部１０からの入力順序で、且つ、各分割圧縮データの格納アドレスが連続した状態でメインメモリ７０に格納することができる。これにより、メモリの利用効率を向上させることができる。
【００２６】
また、本実施形態のように、ＪＰＥＧ２０００方式の圧縮を行うことにより、各分割圧縮データに対して個別に画像処理を行うことが可能であるため、例えば、分割圧縮データ毎に画像回転処理や画像編集処理を施すことが可能となる。
なお、本実施形態では、ＲＧＢ処理やＣＭＹＫ処理を、１つの画像データの状態で行う態様としたが、これに限らず、分割圧縮データの状態で行う態様としてもよい。つまり、画像入力部１０や画像出力部１００が、このような機能を有するのではなく、画像処理部１１０がＲＧＢ処理やＣＭＹＫ処理にかかる機能を有するよう構成されていてもよい。この場合、画像編集処理や画像回転処理等と同様に、分割圧縮データ毎にＲＧＢ処理やＣＭＹＫ処理が施されることになる。
【００２７】
図４は、本実施形態の動作処理フローチャートであり、またデータ量検出部４０とデータ量比較部５０の動作を説明する図である。
まず、画像データが入力され（ステップＳ１）、前述のように画像データは複数の領域（ブロック）に分割される。分割された画像データは、複数の圧縮器３１にて以下のような処理が夫々行われる（ステップＳ２）。ここでは、ブロック番号をｎとして、夫々の圧縮器３１がｎ＝１〜４のブロックデータを圧縮するように記述している。即ち、ｎ＝１の場合、ステップＳ１１に進み、ｎ＝２の場合、ステップＳ２１に進み、ｎ＝３の場合、ステップＳ３１に進み、ｎ＝４の場合、ステップＳ４１に進む（ステップＳ３）。なお、ここではＪＰＥＧ方式、ＪＰＥＧ２０００方式での圧縮方式として説明する。
ＲＧＢ形式で送られてきた画像データは、圧縮処理部３０内の図示しない周波数変換手段によって１つの輝度成分と２つの色差成分に色空間変換され（ステップＳ１１）、その後、周波数変換が施される（ステップＳ１２）。輝度成分や色差成分はコンポーネントとも呼ばれる。周波数変換は、ＪＰＥＧ方式では離散コサイン変換（ＤＣＴ：Discrete Cosign Transform）、ＪＰＥＧ２０００方式ではウェーブレット変換（ＤＷＴ：Discrete Wavelet Transform）という方式で夫々変換される。なお、周波数変換されたデータは複数の周波数領域に分解される。例えば、ＪＰＥＧ方式の場合、圧縮は８×８ピクセルを一単位として実行されるが、周波数変換された後のデータも各コンポーネントで８×８の大きさである。つまり、合計６４個の周波数成分に分解される。
【００２８】
次に、量子化が施され（ステップＳ１３）、ブロック毎のエントロピー符号化が行われる（ステップＳ１４）。ここで、ＪＰＥＧ方式ではハフマン符号化、ＪＰＥＧ２０００方式ではＥＢＣＯＴ（Embedded Block Coding with Optimized Truncation）と呼ばれる符号化方式が用いられる。
１ブロックのエントロピー符号化は、図５のようにして行われる。まず、周波数変換が施されたブロックデータのうち直流成分（ＤＣ成分）の値を入力し（ステップＳ５１）、直流成分（ＤＣ成分）から符号化を開始し、１つの周波数成分の符号化を行う（ステップＳ５２）。次に、既に符号化された分割ブロックの総データ量をデータ量検出部４０において検出し（ステップＳ５３）、現在符号化している周波数の符号化データがバッファメモリ６１に格納できる大きさかどうかを、データ量比較部５０において判定する（ステップＳ５４）。
ここで、バッファメモリ６１とは、図２に示した第１の記憶部６０内のバッファメモリ６１−１乃至６１−８のうち、いずれか１つのバッファメモリ６１であり、その容量は予めわかっている。現在符号化している周波数の符号化データがバッファメモリ６１に格納できる大きさであると判定された場合には、そのバッファメモリ６１に符号化データを格納する（ステップＳ５５）。
【００２９】
次に、その符号化データがブロックの最後のデータであるかを判別し（ステップＳ５６）、ブロックデータの最後でない場合には、次の周波数成分の符号化を行う（ステップＳ５７）。ブロックデータの最後のデータである場合には、通常通り１ブロックの符号化処理を終了する。
このように、徐々に周波数を増加しながらこのような符号化の動作を続けていくと、既に符号化された分割ブロックの総データ量が、対応するバッファメモリ６１の容量を越えてしまうことがある。その場合（ステップＳ５４のＮＯ）には、圧縮処理部３０はその周波数の符号化データをバッファメモリ６１に格納せず、それ以降の高周波成分がゼロとなるように、１ブロックの符号化終了処理を実行する（ステップＳ５８）。具体的には、ＥＯＢ（Ｅｎｄ  ｏｆ  Ｂｌｏｃｋ）符号をバッファメモリ６１に追記するなど、ブロックの符号化を終了するなどすればよい。
ここでは、「既に符号化された分割ブロックの総データ量がバッファメモリ６１の容量より大きくなったときに、１ブロックの符号化終了処理をする」と記述したが、より詳細には、ＥＯＢ符号を格納できる容量をバッファメモリ６１に確保しておく必要がある。そのため、実際の分割圧縮データが格納できるデータ量は、バッファメモリ６１の容量よりもＥＯＢ符号を格納できる容量分だけ小さくなる。
【００３０】
以上のように動作することによって、最低圧縮率のときの分割圧縮データ（ブロックデータ）を格納できる容量のバッファメモリ６１を用意する必要がなく、バッファメモリ容量を小さくすることによってメモリ資源を有効に活用できる。
次に、メインメモリ格納順であるか否かが判定され（ステップＳ１５）、メインメモリ格納順である場合、メインメモリ７０に格納し（ステップＳ１６）、未圧縮ブロックが無いか否かが判定され（ステップＳ１７）、未圧縮ブロックがあると判定された場合、ｎの値を１だけ増加させ（ステップＳ１８）、ステップＳ１１に戻る。一方、未圧縮ブロックが無いと判定された場合の後は、ステップＳ４に進む。ステップＳ４においては、全ブロックについて圧縮が終了したか否かが判定され、全ブロックの圧縮が終了していないと判定された場合、ステップＳ５において待機する。一方、全ブロックの圧縮が終了したと判定された場合、本処理を終了する。ｎ＝２の場合の処理（ステップＳ２１乃至Ｓ２８）、ｎ＝３の場合の処理（ステップＳ３１乃至Ｓ３８）、ｎ＝４の場合の処理（ステップＳ４１乃至Ｓ４８）は、ｎ＝１の場合の処理と同様であるのでその説明は省略する。
【００３１】
図６は、本発明の第２の実施形態の動作処理フローチャートである。図１〜４で示したような基本的な動作は第１の実施形態と略同様であるので、説明を省略する。
１ブロックのエントロピー符号化は、図６のようにして行われる。まず、周波数変換が施されたブロックデータのうち直流成分（ＤＣ成分）の値を入力し（ステップＳ６１）、１つの周波数成分について試し符号化を行う（ステップＳ６２）。これは、符号データ量を検出する目的のものであり、実際にバッファメモリ６１に格納するという動作は実行しない。次に、既に符号化された分割ブロックの総データ量を検出し（ステップＳ６３）、バッファメモリ容量と比較する（ステップＳ６４）。
ここで、バッファメモリ６１とは、図２に示した第１の記憶部６０内のバッファメモリ６１−１乃至６１−８のうち、いずれか１つのバッファメモリ６１である。比較した結果、分割圧縮データのデータ量がバッファメモリ容量よりも大きいと判定されたら、その周波数の１つ前の周波数を検出する（ステップＳ６７）し、ステップＳ６８に進む。
【００３２】
一方、比較の結果、分割圧縮データのデータ量がバッファメモリ容量以下であると判定されたら、ブロック全体の符号化が終了したかどうかを判別し（ステップＳ６５）、ブロック全体の符号化が終了していない場合にはステップＳ６６において次の周波数成分を入力し、ステップＳ６２に戻り、次の周波数成分の試し符号化を実行する。最後のデータである場合には、次の実符号化の手順（ステップＳ６８以降の処理）に進む。
このように、徐々に周波数を増加しながら試し符号化を実行する。その間で、分割圧縮データのデータ量がバッファメモリ６１の容量よりも大きいと判定されたら、その１つ前の周波数（もしくは、ブロック内の何番目の値か）を検出し（ステップＳ６７）、実符号化の手順（ステップＳ６８以降の処理）に進む。
実符号化の処理では、実際にバッファメモリ６１に符号データを格納していく。まず、そのブロックのＤＣ成分を入力し（ステップＳ６８）、試し符号化（ステップＳ６２）の際にバッファメモリ容量を越えたかどうか判別する（ステップＳ６９）。試し符号化の際にバッファメモリ容量を越えていない場合には、ステップＳ７５乃至Ｓ７８において、ブロックデータの最後の高周波成分まで符号化を実行し、通常の圧縮のときと同じように終了する。即ち、１つの周波数成分を符号化し（ステップＳ７５）、バッファメモリ６１に格納し（ステップＳ７６）、ブロックデータの最後か否かを判定し（ステップＳ７７）、ブロックデータの最後ではないと判定された場合、次の周波数成分を入力し（ステップＳ７８）、ステップＳ７５に戻り、ステップＳ７５以降の処理が繰り返し実行される。
【００３３】
一方、試し符号化の際にバッファメモリ容量を越えたときには、ステップＳ７０乃至Ｓ７４において、上記したように、バッファメモリ容量を越えた周波数の１つ前の周波数まで符号化を実行し（ステップＳ７０）、順次バッファメモリ６１に格納する（ステップＳ７２）。その後、第１の実施形態と同様に、ＥＯＢ（End of Block）符号をバッファメモリ６１に追記するなどのブロック終了処理を実行し（ステップＳ７４）、ブロックの符号化を終了する。ステップＳ７２においては、試し符号化の際にバッファメモリ容量を越えた周波数であるか否かが判定されている。ここで、試し符号化の際にバッファメモリ容量を越えた周波数ではないと判定された場合、ステップＳ７３に進み、試し符号化の際にバッファメモリ容量を越えた周波数であると判定された場合、ステップＳ７４に進む。
また同様に、ＥＯＢ符号を格納できる容量をバッファメモリ６１に確保しておく必要がある。そのため、実際の分割圧縮データが格納できるデータ量は、バッファメモリ６１の容量よりもＥＯＢ符号を格納できる容量分だけ小さくしておくことが望ましい。
以上のように動作することによって、最低圧縮率のときの分割圧縮データ（ブロックデータ）を格納できる容量のバッファメモリ６１を用意する必要がなく、バッファメモリ容量を小さくすることによってメモリ資源を有効に活用できる。
【００３４】
以下、図７、８は本発明の第３の実施形態を説明する図である。
図７は、分割画像データの流れを表したものである。この実施形態の場合、第１の記憶部６０及び第２の記憶部７１はメインメモリ７０内にあり、第１の記憶部６０は、第１の実施形態におけるバッファメモリ６１の役割を果たす。即ち、各ブロックに対応した一時的なメモリ空間をメインメモリ７０内に確保しておき、分割して圧縮されたブロック毎の分割圧縮データを一旦格納する。ここで、ブロック毎に割り当てられた第１の記憶手段の各メモリ空間は、第１の実施形態と同様に、１ブロックの最低圧縮率のデータ容量よりも少ない容量を確保しておけばよい。
その後、同じメインメモリ７０内に形成された第２の記憶部７１に、画像入力部１０から入力された順序、即ち、ＣＣＤリニアイメージセンサが読み取った順序で、連続的に並び替えて格納する。連続的に並び替える際には、先行して格納する圧縮データの最終アドレスと、次に格納する圧縮データの先頭アドレスが連続するように格納する。
具体的な符号化手順は、第１の実施形態又は第２の実施形態と同様に、図４、図５、或いは図６に示したようにすればよい。
【００３５】
また、図７のような形態の場合、図１に示した第１の記憶部６０は必要なく、図８のようなハードウェア構成となる。また、同図内の点線部分の画像分割部２０、圧縮処理部３０、データ量検出部４０、データ量比較部５０の処理を、ＣＰＵ８０がソフトウェア処理する態様としてもよい。
以上のように動作することによって、最低圧縮率のときの分割圧縮データ（ブロックデータ）を格納できる容量のバッファメモリ６１を用意する必要がなく、バッファメモリ容量を小さくすることによってメモリ資源を有効に活用できる。
なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更することができることは言うまでもない。
【産業上の利用可能性】
【００３６】
本発明は、例えば、データを分割して分散処理する各種装置にも適用することができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施形態にかかる画像処理装置のハードウェア構成例を示す図である。
【図２】本実施形態の基本的な動作を説明するための図である。
【図３】画像データを分割する際の動作を説明するための図である。
【図４】本実施形態の画像データの圧縮処理手順を説明するためのフローチャートである。
【図５】１ブロックのエントロピー符号化処理手順を説明するためのフローチャートである。
【図６】本発明の第２の実施形態の１ブロックのエントロピー符号化処理手順を説明するためのフローチャートである。
【図７】本発明の第３の実施形態における分割画像データの流れを表す図である。
【図８】本発明の第３の実施形態にかかる画像処理装置のハードウェア構成例を示す図である。
【符号の説明】
【００３８】
１０  画像入力部
２０  画像分割部
２１  バッファメモリ
３０  圧縮処理部
３１  圧縮器
４０  データ量検出部
５０  データ量比較部
６０  第１の記憶部
６１  バッファメモリ
７０  メインメモリ
７１  第２の記憶部
８０  ＣＰＵ
９０  伸長処理部
１００  画像出力部
１１０  画像処理部
１２０  ＨＤＤ
１３０  操作部
１４０  外部Ｉ／Ｆ
２００  画像処理装置
【図１】
2008236084.tif 000003
【図２】
2008236084.tif 000004
【図３】
2008236084.tif 000005
【図４】
2008236084.tif 000006
【図５】
2008236084.tif 000007
【図６】
2008236084.tif 000008
【図７】
2008236084.tif 000009
【図８】
2008236084.tif 000010