(57)【要約】【課題】画像データをブロックに分割して効率良く処理すること。【解決手段】本発明は、画像データを複数ピクセルから構成されるブロックに分割し、そのブロック単位で全てのピクセルが特定データとなっているか否かを判定する判定手段と、判定手段により、一のブロック単位で全てのピクセルが特定データとなっていると判定された場合には次のブロック単位で前記判定を行う処理へ進み、一のブロック単位で少なくとも１つのピクセルに特定データ以外が含まれていると判定された場合には小ブロック単位で前記判定を行い、その小ブロック単位で少なくとも１つのピクセルに特定データ以外が含まれていると判定された場合のみその小ブロック単位での画像処理を実行する制御を行うブロック制御手段とをＣＰＵ１０で実行される画像処理プログラムによって実現している。【選択図】図１
2006080935.tif 000002
【特許請求の範囲】
【請求項１】
画像データを複数ピクセルから構成されるブロックに分割し、そのブロック単位で全てのピクセルが特定データとなっているか否かを判定する判定手段と、
前記判定手段により、一のブロック単位で全てのピクセルが特定データとなっていると判定された場合には次のブロック単位で前記判定を行う処理へ進み、前記一のブロック単位で少なくとも１つのピクセルに特定データ以外が含まれていると判定された場合には前記一のブロック単位を分割した小ブロック単位で前記判定を行い、その小ブロック単位で全てのピクセルが特定データとなっている場合には次の小ブロック単位もしくは次のブロック単位で前記判定を行い、前記小ブロック単位で少なくとも１つのピクセルに特定データ以外が含まれていると判定された場合にはその小ブロック単位での画像処理を実行した後、次の小ブロック単位もしくは次のブロック単位での前記判定を行うよう制御するブロック制御手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記ブロックは縦横複数のピクセルから構成され、前記複数のピクセルは前記画像処理を実行する演算手段で取り扱うワードサイズと対応している
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記ブロックは縦横異なるピクセル数から構成されている
ことを特徴とする請求項１記載の画像処理装置。
【請求項４】
画像データを複数ピクセルから構成されるブロックに分割し、そのブロック単位で全てのピクセルが特定データとなっているか否かを判定する特定データ判定処理を行う工程と、
一のブロック単位で全てのピクセルが特定データとなっている場合には次のブロック単位での前記特定データ判定処理へ進み、前記一のブロック単位で少なくとも１つのピクセルに特定データ以外が含まれていると判定された場合には前記一のブロック単位を分割した小ブロック単位で前記特定データ判定処理を行い、その小ブロック単位で全てのピクセルが特定データとなっている場合には次の小ブロック単位もしくは次のブロック単位での前記特定データ判定処理へ進み、前記小ブロック単位で少なくとも１つのピクセルに特定データ以外が含まれている場合にはその小ブロック単位での画像処理を実行した後、次の小ブロック単位もしくは次のブロック単位での前記特定データ判定処理を行う工程と
を有することを特徴とする画像処理方法。
【請求項５】
前記ブロックは縦横複数のピクセルから構成され、前記複数のピクセルは前記画像処理を実行する演算手段で取り扱うワードサイズと対応している
ことを特徴とする請求項４記載の画像処理方法。
【請求項６】
前記ブロックは縦横異なるピクセル数から構成されている
ことを特徴とする請求項４記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データに対する所定の画像処理を行うにあたり、複数ピクセルから成るブロック単位で処理する画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
画像データであるビットマップイメージを回転する場合、ピクセル単位の処理（黒ビットの検出と合成）が行われるため、印刷時の処理性能を低下させる原因となっている。特に高解像度のビットマップイメージを処理するケースでは顕著である。近年、スキャンした画像をパーソナルコンピュータにあるファイルフォーマットで保存し、必要時に印刷するケースが増えている。このケースでは高解像度でスキャンすることが多く、回転処理に多くの時間を要している。
【０００３】
このような画像データの回転において処理時間を短縮する観点から、特許文献１、特許文献２、特許文献３、特許文献４では、ビットマップイメージを所定のブロックに分割し、ブロック単位で回転処理を行うか否かを判定することで、回転処理の必要のないブロックについての処理を行わないようにして効率の良い回転処理を行う技術が開示されている。
【０００４】
【特許文献１】特開昭６１−４５３６６号公報
【特許文献２】特開平１１−３３９０２６号公報
【特許文献３】特開２０００−２６８１７０号公報
【特許文献４】特開２００３−２３０００２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ビットマップイメージを複数のブロックに分割して回転処理を行うか否かを判断する場合、ブロックの大きさによっては必ずしも効率的な判断を行えるとは限らない。つまり、ブロックが小さすぎると１ページ分のブロック数が多くなってしまい、判定に時間を要する。一方、ブロックが大きすぎると多くのブロックが処理対象となってしまい、ブロックに分割しても１ページの大部分について回転処理を行うことになってしまうという問題が生じる。
【課題を解決するための手段】
【０００６】
本発明はこのような課題を解決するために成されたものである。すなわち、本発明は、画像データを複数ピクセルから構成されるブロックに分割し、そのブロック単位で全てのピクセルが特定データとなっているか否かを判定する判定手段と、判定手段により、一のブロック単位で全てのピクセルが特定データとなっていると判定された場合には次のブロック単位で前記判定を行う処理へ進み、一のブロック単位で少なくとも１つのピクセルに特定データ以外が含まれていると判定された場合には一のブロック単位を分割した小ブロック単位で前記判定を行い、その小ブロック単位で全てのピクセルが特定データとなっている場合には次の小ブロック単位もしくは次のブロック単位で前記判定を行い、小ブロック単位で少なくとも１つのピクセルに特定データ以外が含まれていると判定された場合にはその小ブロック単位での画像処理を実行した後、次の小ブロック単位もしくは次のブロック単位での前記判定を行うよう制御するブロック制御手段とを備える画像処理装置である。
【０００７】
また、本発明は、画像データを複数ピクセルから構成されるブロックに分割し、そのブロック単位で全てのピクセルが特定データとなっているか否かを判定する特定データ判定処理を行う工程と、一のブロック単位で全てのピクセルが特定データとなっている場合には次のブロック単位での特定データ判定処理へ進み、一のブロック単位で少なくとも１つのピクセルに特定データ以外が含まれていると判定された場合には一のブロック単位を分割した小ブロック単位で特定データ判定処理を行い、その小ブロック単位で全てのピクセルが特定データとなっている場合には次の小ブロック単位もしくは次のブロック単位での特定データ判定処理へ進み、小ブロック単位で少なくとも１つのピクセルに特定データ以外が含まれている場合にはその小ブロック単位での画像処理を実行した後、次の小ブロック単位もしくは次のブロック単位での特定データ判定処理を行う工程とを有する画像処理方法である。
【０００８】
このような本発明では、画像データをブロック単位に分割して画像処理を行うか否かを判定するにあたり、一のブロック単位の少なくとも１つのピクセルに特定データ以外が含まれていると判定された場合に、その一のブロック単位を小ブロック単位に分割して再度全てのピクセルが特定データとなっているか否かを判定しているため、一のブロック単位に特定データ以外が含まれていても一のブロック単位全てを画像処理対象とせず、小ブロック単位に分割して画像処理対象を判別できるようになる。これにより、一のブロック単位の全てが特定データの場合には一のブロック単位の全てを画像処理対象から外して処理を簡素化でき、一のブロック単位に特定データ以外が含まれていても小ブロック単位ごとに画像処理対象を判別して必要な小ブロックだけを画像処理対象とすることで効率の良い画像処理を実現できるようになる。
【発明の効果】
【０００９】
したがって、本発明によれば、画像処理が不要なブロックを大きなブロック単位で判断し、画像処理が必要なブロックを小ブロック単位で判断するため、効率的な画像処理を実現でき、処理時間の短縮化を図ることが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態を図に基づき説明する。なお、本実施形態では、画像処理装置としてプリンタを例とし、画像データに対する画像処理として回転処理を例として説明を行う。図１は、本実施形態に係るプリンタの主要部を説明するブロック図である。すなわち、このプリンタ１は、各部の制御および画像処理プログラムを実行するＣＰＵ１０と、画像データを蓄積するメモリ１１と、メモリ１１に対するアクセスを制御するメモリコントローラ１２と、回転処理を制御するプログラムを格納するＲＯＭ（Read Only Memory）１３と、用紙への画像形成（印刷処理）を行うプリンタエンジン１４と、プリンタエンジン１４へ画像データを転送する制御を行うビデオコントローラ１５とを備えている。
【００１１】
プリンタ１には図示しない外部のパーソナルコンピュータ等から画像データが送られ、メモリ１１に蓄積される。また、パーソナルコンピュータ等から画像データを回転して出力する指示を受けると、プリンタ１内のＲＯＭ１３に格納された画像処理プリグラムがＣＰＵ１０によって実行され、メモリ１１に蓄積された画像データを読み出して回転処理を行い、出力メモリ空間上に展開する。そして、プリンタエンジン１４によって回転処理後の画像を媒体に印刷出力する。
【００１２】
本実施形態では、この画像処理プログラムで実行される回転処理として、効率の良いブロック分割によって高速かつ的確に回転処理を実行できる点に特徴がある。例えば、白黒データから成る原稿は、製図などのデータであることが多いが、画像全体では、白データの領域が大半をしめている。この点に着目して、白データの領域は回転処理を行わないようにすることで、高速化を実現する。具体的には、画像を複数ピクセルから成るブロック（例えば、８×８の領域）に分割し、その中が全て特定データ（例えば、白データ）であったら回転処理を行わず、１ピクセルでも黒データが存在すれば、今までどおりの回転処理を実行する。
【００１３】
図２は、本実施形態に係る画像処理方法の概略を説明するフローチャートである。ここでは画像データを８×８ピクセルのブロックに分割し、時計回りに９０度回転させる場合を例としている。先ず、画像データを８×８ピクセルから成るブロックに分割し、各ブロック毎に８×８ピクセルの全てが白（０）データであるか否かを判断する。ブロック内の全てのピクセルが０の場合、そのブロックに対する回転処理を行わずに次のブロックの判定に進む。
【００１４】
一方、ブロック内の全てのピクセルが白（０）データではない場合（すなわち、ブロック内のピクセルに一つでも黒（１）データが存在する場合）にはそのブロックに対する回転処理を施した後、次のブロックの判定に進む。これにより、ブロック内が全て０データの場合には回転処理を行わず、１データが存在するブロックのみに回転処理を施すため、画像データ全体を回転処理する場合に比べて処理時間を短くできる。
【００１５】
図３は、本実施形態に係る画像処理方法の具体例を説明するフローチャートである。先ず、デスティネーションメモリの初期化を施す（ステップＳ１１）。この初期化では、出力画像を展開するデスティネーションメモリの領域を特定データ（例えば、白（０）データ）で埋める処理を行う。
【００１６】
次に、ソースメモリの８×８ピクセル分の画像データを読み出す（ステップＳ１２）。そして、その８×８ピクセルが全て白（０）データか否かを判定し（ステップＳ１３）、全て白（０）データではない場合にはその８×８ピクセル単位での回転処理を実施する（ステップＳ１４）。回転処理後の画像データはデスティネーションメモリ上に展開される。
【００１７】
一方、８×８ピクセルが全て白（０）データである場合にはそのブロックの回転処理を行わず、次のブロック（８×８ピクセル）があるか否かを判断する（ステップＳ１５）。次のブロックがある場合にはソースメモリから次のブロックに対応した８×８ピクセルを読み出し、全て白（０）データであるか否かの判定を行う。全てのブロックについての判定が終了したら回転処理を終了する。デスティネーションメモリには、回転処理が施されたブロックの画像データが展開され、その他のブロックの部分は初期化した際の特定データが残る状態となる。
【００１８】
このように、本実施形態では画像データを例えば８×８ピクセルのブロックに分割し、各ブロック毎に全て特定データ（例えば、白データ）であるか否かを判定して、全て特定データの場合には処理を行わないようにすることで処理の簡素化および高速化を図っている。この際、ブロックを構成する縦横のピクセル数としては、画像処理を行うＣＰＵで取り扱うワードサイズに合わせることで、効率の良い画像処理を実行できるようになる。
【００１９】
図４は、他のブロック分割を用いる画像処理方法のフローチャートである。ここでは、画像データを３２×３２ピクセル単位のブロックに分割する例を示す。先ず、デスティネーションメモリの初期化を行い（ステップＳ２１）、ソースメモリの３２×３２ピクセル分の画像データを読み出す（ステップＳ２２）。
【００２０】
次いで、その３２×３２ピクセルが全て白（０）データか否かを判定し（ステップＳ２３）、全て白（０）データである場合にはそのブロックの回転処理を行わず、次のブロック（３２×３２ピクセル）があるか否かを判断する（ステップＳ２４）。次のブロックがある場合にはソースメモリから次のブロックに対応した３２×３２ピクセルを読み出し（ステップＳ２２）、全て白（０）データであるか否かの判定を行う（ステップＳ２３）。
【００２１】
一方、３２×３２ピクセルのブロックが全て白（０）データではない場合には、そのブロックを３２×３２ピクセルよりも小さいブロック（例えば、１６×１６、３２×１６、１６×３２）に分割して回転処理を行うサブルーチンへ進む（ステップＳ２５）。
【００２２】
図５は、小ブロックの回転処理サブルーチンを説明するフローチャートである。すなわち、先のステップＳ２３で３２×３２ピクセルのブロックが全て白（０）データではないと判断された場合、そのブロックを３２×１６ピクセルから成る小ブロックに分割し、その小ブロックで上記と同様な判定すなわち小ブロック内が全て白（０）データであるか否かを判定し（ステップＳ３１）、全て白（０）データであればその小ブロックについての回転処理を行わずに読み飛ばす処理を行う（ステップＳ３２）。
【００２３】
一方、３２×１６ピクセルの小ブロック内が全て白（０）データではない場合には、その小ブロックを更に小さな１６×１６ピクセルから成る小ブロックに分割し、この小ブロックについて全て白（０）データであるか否かを判断する（ステップＳ３３）。この判断で１６×１６ピクセルの小ブロックが全て白（０）データであると判断された場合には、この１６×１６ピクセルから成る小ブロックのデータを読み飛ばす処理を行う（ステップＳ３４）。
【００２４】
また、１６×１６ピクセルから成る小ブロックが全て白（０）データではないと判断された場合には、１６×１６ピクセルから成る小ブロックについて、８×８ピクセル単位での回転処理サブルーチンを実行する（ステップＳ３５）。この８×８ピクセル単位での回転処理サブルーチンは、図３に示すフローチャートに沿って行われる。
【００２５】
８×８ピクセル単位での回転処理を行った後、次の小ブロック（小ブロックがない場合には次の３２×３２のブロック）についての判定へ進む。
【００２６】
このように、初めは大きなブロックで判定を行って、全ての白（０）データであった場合にはその大きなブロックについて回転処理を行わずに次のブロックへ進み、大きなブロックで白（０）データ以外が含まれている場合にはその大きなブロックを小ブロックに段階的に再分割し、小ブロック単位で判定および回転処理を行うことで、大幅な処理の簡素化および高速化を図ることが可能となる。
【００２７】
図４のステップＳ２５に示す回転処理サブルーチンを行った後は、ステップＳ２４へ進み、次のブロック（３２×３２ピクセル）があるか否かを判断する。次のブロックがある場合にはソースメモリから次のブロックに対応した３２×３２ピクセルを読み出し（ステップＳ２２）、以降の処理を繰り返す。
【００２８】
このように、初めは大きなブロックで判定を行って、全ての白（０）データであった場合にはその大きなブロックについて回転処理を行わずに次のブロックへ進み、大きなブロックで白（０）データ以外が含まれている場合にはその大きなブロックを小ブロックに再分割し、小ブロック単位で判定および回転処理を行うようにすれば、画像データ全体としての回転処理を簡素化できるとともに処理の高速化を図ることが可能となる。
【００２９】
また、ブロックの大きさとして縦横のピクセルが異なるものを用いることで、画像データの特性に合わせた効率的な白データ判定を行うことが可能となる。例えば、横書き文書等では白データの領域が横長に多く存在するため、横長のブロックを用いることで効率良く全てが白データとなるブロックを素早く検出できるようになる。
【００３０】
なお、上記実施形態では、特定データとして白（０）データの例を示したが、白（０）データ以外を特定データとしてもよい。また、画像処理として回転処理を例としたが、回転処理以外でも、拡大処理や縮小処理であっても本発明は適用可能である。
【図面の簡単な説明】
【００３１】
【図１】本実施形態に係る画像処理装置を説明するブロック図である。
【図２】本実施形態に係る画像処理方法の概略を説明するフローチャートである。
【図３】本実施形態に係る画像処理方法の具体例を説明するフローチャートである。
【図４】他のブロック分割を用いる画像処理方法のフローチャートである。
【図５】小ブロックの回転処理サブルーチンを説明するフローチャートである。
【符号の説明】
【００３２】
１…プリンタ、１０…ＣＰＵ、１１…メモリ、１２…メモリコントローラ、１３…画像処理プログラム、１４…プリンタエンジン、１５…ビデオコントローラ
【図１】
2006080935.tif 000003
【図２】
2006080935.tif 000004
【図３】
2006080935.tif 000005
【図４】
2006080935.tif 000006
【図５】
2006080935.tif 000007