(57)【要約】【課題】  回転処理の処理負荷の軽減の機会を活かすことのできる画像処理装置を提供する。【解決手段】  処理対象画像データに対し、画像回転処理を実行する画像処理装置であって、予め定められた複数のブロックサイズ候補のうちから、回転処理を行うブロックサイズを選択し、この選択したブロックサイズで処理対象画像データを分割し、当該分割により得られた各ブロックについて回転処理を実行する画像処理装置である。【選択図】        図１
2007028449.tif 000002
【特許請求の範囲】
【請求項１】
処理対象画像データに対し、画像回転処理を実行する画像処理装置であって、
予め定められた複数のブロックサイズ候補のうちから、回転処理を行うブロックサイズを選択するブロックサイズ選択手段と、
前記選択したブロックサイズで前記処理対象画像データを分割し、当該分割により得られた各ブロックについて回転処理を実行する手段と、
を有することを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記ブロックサイズ選択手段は、
前記処理対象画像データの性状と、画像処理装置の動作環境に係る情報と、の少なくとも一方に関係する条件に基づいてブロックサイズを選択することを特徴とする画像処理装置。
【請求項３】
請求項１に記載の画像処理装置であって、
前記ブロックサイズ選択手段は、
前記処理対象画像データの少なくとも一部の第１テスト領域を、前記ブロックサイズ候補のうちの第１ブロックサイズで分割し、当該分割により得られた各ブロックについて回転処理を実行するとともに、当該回転処理の負荷関係量を取得し、
前記処理対象画像データの少なくとも一部の第２テスト領域を、前記ブロックサイズ候補のうち、前記第１ブロックサイズとは異なる第２ブロックサイズで分割し、当該分割により得られた各ブロックについて回転処理を実行するとともに、当該回転処理の負荷関係量を取得し、
前記第１ブロックサイズで分割したブロックに対する回転処理の負荷関係量と、前記第２ブロックサイズで分割したブロックに対する回転処理の負荷関係量とを比較し、回転処理を行うブロックのサイズを決定することを特徴とする画像処理装置。
【請求項４】
請求項１から３のいずれか一項に記載の画像処理装置であって、
前記ブロックサイズ選択手段は、
処理対象画像データのサイズが、予め定めた画像サイズ条件を満足する場合には、前記ブロックサイズ候補のうち、予め定められた特定のブロックサイズを、回転処理を行うブロックのサイズとして決定することを特徴とする画像処理装置。
【請求項５】
処理対象画像データに対し、画像回転処理を実行する画像処理方法であって、
コンピュータを用いて、
予め定められた複数のブロックサイズ候補のうちから、回転処理を行うブロックサイズを選択する工程と、
前記選択したブロックサイズで前記処理対象画像データを分割し、当該分割により得られた各ブロックについて回転処理を実行する工程と、
を実行することを特徴とする画像処理方法。
【請求項６】
コンピュータに、処理対象画像データに対する画像回転処理を実行させるプログラムであって、
予め定められた複数のブロックサイズ候補のうちから、回転処理を行うブロックサイズを選択する手順と、
前記選択したブロックサイズで前記処理対象画像データを分割し、当該分割により得られた各ブロックについて回転処理を実行する手順と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの回転処理を実行する画像処理装置に関する。
【背景技術】
【０００２】
コンピュータを用いた画像回転処理において、画像データを画像ブロックに分割し、画像ブロック単位で回転処理を実行することが行われている。例えば特許文献１には、画像データを分割し、さらに８×８ブロックの上位４バイトと下位４バイトを分け、画素の配置を変えることによって回転画像を生成する画像処理装置が開示されている。
【特許文献１】特開平８−３２９２３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来の画像処理装置では、画像ブロックのサイズを予め定めたサイズとして固定している。このため、画像データそのものの性状や、画像データを処理する画像処理装置において画像回転の処理のために確保可能なメモリ容量など、画像処理装置の動作環境条件などに適応した処理を行うことができず、場合によっては処理負荷を軽減できるにも関わらず、この機会を活かすことができなかった。
【０００４】
本発明は、こうした実情に鑑みてなされたもので、回転処理の処理負荷の軽減の機会を活かすことのできる画像処理装置、画像処理方法及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００５】
上記従来例の問題点を解決するための本発明は、処理対象画像データに対し、画像回転処理を実行する画像処理装置であって、予め定められた複数のブロックサイズ候補のうちから、回転処理を行うブロックサイズを選択するブロックサイズ選択手段と、前記選択したブロックサイズで前記処理対象画像データを分割し、当該分割により得られた各ブロックについて回転処理を実行する手段と、を有することを特徴としている。
【０００６】
ここで前記ブロックサイズ選択手段は、前記処理対象画像データの性状と、画像処理装置の動作環境に係る情報と、の少なくとも一方に関係する条件に基づいてブロックサイズを選択することを特徴としている。
【０００７】
またここで、前記ブロックサイズ選択手段は、前記処理対象画像データの少なくとも一部の第１テスト領域を、前記ブロックサイズ候補のうちの第１ブロックサイズで分割し、当該分割により得られた各ブロックについて回転処理を実行するとともに、当該回転処理の負荷関係量を取得し、前記処理対象画像データの少なくとも一部の第２テスト領域を、前記ブロックサイズ候補のうち、前記第１ブロックサイズとは異なる第２ブロックサイズで分割し、当該分割により得られた各ブロックについて回転処理を実行するとともに、当該回転処理の負荷関係量を取得し、前記第１ブロックサイズで分割したブロックに対する回転処理の負荷関係量と、前記第２ブロックサイズで分割したブロックに対する回転処理の負荷関係量とを比較し、回転処理を行うブロックのサイズを決定することとしてもよい。
【０００８】
さらに、このブロックサイズ選択手段は、処理対象画像データのサイズが、予め定めた画像サイズ条件を満足する場合には、前記ブロックサイズ候補のうち、予め定められた特定のブロックサイズを、回転処理を行うブロックのサイズとして決定することとしてもよい。
【０００９】
また、本発明の一態様に係る画像処理方法は、処理対象画像データに対し、画像回転処理を実行する画像処理方法であって、コンピュータを用いて、予め定められた複数のブロックサイズ候補のうちから、回転処理を行うブロックサイズを選択する工程と、前記選択したブロックサイズで前記処理対象画像データを分割し、当該分割により得られた各ブロックについて回転処理を実行する工程と、を実行することを特徴としている。
【００１０】
さらに本発明の別の態様に係るプログラムは、コンピュータに、処理対象画像データに対する画像回転処理を実行させるプログラムであって、予め定められた複数のブロックサイズ候補のうちから、回転処理を行うブロックサイズを選択する手順と、前記選択したブロックサイズで前記処理対象画像データを分割し、当該分割により得られた各ブロックについて回転処理を実行する手順と、をコンピュータに実行させることを特徴としている。
【発明の効果】
【００１１】
本発明によると、回転処理の処理負荷の軽減の機会を活かすことができ、処理負荷の軽減を図ることができる。
【発明を実施するための最良の形態】
【００１２】
本発明の実施の形態について図面を参照しながら説明する。図１は本発明の実施の形態に係る画像処理装置の構成ブロック図である。本実施の形態の画像処理装置は、例えばプリンタ装置であり、図１に示すように制御部１１と、記憶部１２と、画像形成部１３と、インタフェース部１４とを含んで構成されている。
【００１３】
制御部１１は、ＣＰＵであり、記憶部１２に格納されているプログラムに従って動作する。本実施の形態では、この制御部１１は、インタフェース部１４を介して受信した画像データを処理対象画像データとして、この処理対象画像データに対する画像回転処理を実行し、当該回転処理後の画像データを画像形成部１３に出力する処理を実行する。この制御部１１の処理の具体的内容については後に述べる。
【００１４】
記憶部１２は、ＲＡＭやＲＯＭなどの記憶素子を含んで構成される。この記憶部１２は、制御部１１によって実行されるプログラムが格納されている。また、この記憶部１２は、制御部１１が生成するデータを保持するワークメモリとしても動作する。本実施の形態では、この記憶部１２に、処理対象となる画像データが格納され、また、回転処理後の画像データの少なくとも一部が格納される。
【００１５】
画像形成部１３は、プリンタエンジン等であり、制御部１１から入力される画像データに基づいて、用紙などの記録媒体上に画像を形成する。インタフェース部１４は、例えばホスト側となるコンピュータに接続され、このホスト側から受信される画像データを制御部１１に出力する。
【００１６】
本実施の形態では、制御部１１が画像データを例えば一部ずつ処理し、画像形成部１３に出力して各画像部分ごとに逐次的に画像形成処理を実行できるようになっている。なお、本発明の実施の形態は、ここで述べるようにプリンタに限られるものではなく、一般的なパーソナルコンピュータや、その他のコンピュータ制御機器であってもよい。
【００１７】
次に、制御部１１の具体的処理について説明する。本実施の形態の制御部１１は、処理対象となる画像データが受信されると、当該画像データを記憶部１２に格納し、図２に示す処理を開始する。なお、以下の説明では画像データの回転角度は予め９０度となっているものとして説明するが、この回転角度は、例えばユーザから指定された角度であってもよい。また、処理対象となる画像データは、ビットマップデータであるものとする（描画指示で記述されている場合は、ラスタライズしてビットマップデータに変換する）。
【００１８】
制御部１１は、まず、処理対象画像データの性状としてのサイズ（幅及び高さの画素数）を取得する（Ｓ１）。そして、このサイズが予め定めたしきい値未満であるか否かを調べる（画像サイズ条件の判断；Ｓ２）。ここでサイズがしきい値未満である場合（画像サイズ条件を満足する場合）は、予め定められた複数のブロックサイズの候補のうち、予め決められている、特定のブロックサイズを選択して（Ｓ３）、当該選択したブロックサイズにて画像データを分割し（Ｓ４）、各分割したブロックごとに画像の回転処理を実行して（Ｓ５）、回転処理後のブロックのデータを出力する（Ｓ６）。制御部１１は、すべてのブロックについて処理が完了するまで、処理Ｓ５，Ｓ６を繰り返して実行する。なお、各ブロックの回転処理については、広く知られている方法を利用できるので、ここでの詳細な説明を省略する。
【００１９】
また制御部１１は、処理Ｓ２において、サイズがしきい値未満でない場合（画像サイズ条件を満足しない場合）は、画像処理装置の動作環境に係る情報を取得する（Ｓ７）。ここで動作環境に係る情報は、例えば記憶部１２内で画像データの回転処理に用いることのできるメモリ容量やキャッシュサイズなどである。この場合、予め記憶部１２に、図３に示すように、メモリ容量の大きさの範囲等に応じて、ブロックサイズを関連づけたテーブルを格納しておく。そして制御部１１は、処理Ｓ７において取得したメモリ容量の大きさ等に関連づけて、このテーブルに設定されているブロックサイズの情報を取得する（Ｓ８）。そして、処理Ｓ４に移行し、ここで取得したブロックサイズの情報を用いて、当該取得したブロックサイズにて画像データを分割し、各分割したブロックごとの画像回転処理を実行する。
【００２０】
このように本実施の形態によると、画像データそのものの性状や、画像データを処理する画像処理装置において画像回転の処理のために確保可能なメモリ容量など、画像処理装置の動作環境条件などに適応した処理を行うことができ、処理負荷を軽減可能な機会を活用して、処理負荷の低減を図ることができる。
【００２１】
さらにここでは、確保可能なメモリ容量の大きさに応じて予めブロックサイズを定めておく例について述べたが、本実施の形態の制御部１１の処理はこれに限られず、例えば、予め定めたブロックサイズ候補から複数のブロックサイズ候補を選択し、当該選択したブロックサイズ候補で処理対象画像データの少なくとも一部テスト領域を分割して回転処理を行い、その処理負荷を比較して、処理負荷の比較的低いブロックサイズを検出してもよい。
【００２２】
この場合、記憶部１２には、予め複数のブロックサイズ候補の情報を格納しておく。制御部１１は、図３における処理Ｓ７，Ｓ８の代りに、次の処理を行う。まず、ブロックサイズ候補のうちから、一つブロックサイズ候補を選択し、第１ブロックサイズとして仮に定める。そして制御部１１は、処理対象画像データの少なくとも一部の第１テスト領域を画定する。この第１テスト領域は、例えば、処理対象画像データの左上隅から、第１ブロックサイズの高さｈ１と、処理対象画像データの幅Ｗとを用い、Ｗ×ｈ１のサイズの領域とする。
【００２３】
また、制御部１１は、ブロックサイズ候補のうちから、第１ブロックサイズとは異なるブロックサイズ候補の一つを第２ブロックサイズとして選択し、処理対象画像データの少なくとも一部の第２テスト領域を画定する。ここで第２テスト領域は、第１テスト領域と同様の方法で定める。すなわち、第１テスト領域が処理対象画像データの左上隅から、第１ブロックサイズの高さｈ１と、処理対象画像データの幅Ｗとを用い、Ｗ×ｈ１のサイズの領域として定められる場合、第２テスト領域は、第２ブロックサイズの高さｈ２と、処理対象画像データの幅Ｗとを用い、Ｗ×ｈ２のサイズの領域として定める。
【００２４】
なお、ここで第１テスト領域と第２テスト領域とは、その一部が互いに重なりあっていてもよいし、互いに重なり合わないよう設定されてもよい。例えば第２テスト領域は、第１テスト領域の下方、処理対象画像データの高さ方向に隣接して設定されてもよい。
【００２５】
制御部１１は、第１テスト領域内の画像を、第１ブロックサイズで分割し、分割して得られた各ブロックの画像に対して回転処理を実行する。制御部１１は、このとき、回転処理の負荷関係量（第１負荷関係量）として、例えば処理時間や、ＣＰＵ時間などの情報を取得する。
【００２６】
また、制御部１１は、第２テスト領域内の画像を、第２ブロックサイズで分割し、分割して得られた各ブロックの画像に対して回転処理を実行する。制御部１１は、このときも、回転処理の負荷関係量（第２負荷関係量）として、例えば処理時間や、ＣＰＵ時間などの情報を取得する。
【００２７】
制御部１１は、さらに第１負荷関係量と第２負荷関係量とを比較し、処理負荷の少ない（例えば処理時間の短い）負荷関係量に係るブロックサイズを選択する。例えば第１ブロックサイズで分割した場合の処理負荷が、第２ブロックサイズで分割した場合の処理負荷よりも低いと判断される場合は、第１ブロックサイズを選択し、当該第１ブロックサイズで画像データを分割して回転処理する。
【００２８】
なお、ここでは、ブロックサイズ候補のうち２つを選択して比較する場合を例として説明したが、制御部１１は、比較に係るブロックサイズ候補の数だけ対応してテスト領域を設定し、各テスト領域について、対応するブロックサイズで分割して回転処理を実行し、処理負荷の最も低い（例えば処理時間が最も短い）ブロックサイズを検出してもよい。
【００２９】
また、ここでテスト領域としては、各ブロックサイズ候補の高さｈｉと、幅ｗｉとを用い、ｈｉ×ｗｉの領域（つまりブロック１つ分の領域）としてもよい。
【００３０】
さらに、この選択の処理の過程で、回転処理を完了したテスト領域については、そのまま出力し、テスト領域以外の部分について、処理Ｓ４以下で、決定したブロックサイズで分割して回転処理するようにしてもよい。
【００３１】
さらに制御部１１は、選択の処理において試験的に用いたブロックサイズ候補（ｈｉ×ｗｉ）ごとに、画定したテスト領域（画像データの幅Ｗ×ｈｉ）内の回転処理の負荷関係量を記憶し、過去に最も小さい処理負荷となったブロックサイズ候補を、次のブロックサイズとして選択し、当該選択したブロックサイズの高さｈｊと、画像データの幅Ｗとを用いて、処理済みの領域の下方、画像データの高さ方向に隣接する領域Ｗ×ｈｊについて、選択したブロックサイズで分割して回転処理し、その際の負荷関係量を、当該選択したブロックサイズに関連づけて、記憶部１２に上書きして格納する、という処理を繰り返してもよい。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施の形態に係る画像処理装置の構成ブロック図である。
【図２】本発明の実施の形態に係る画像処理装置の処理例を表すフローチャート図である。
【図３】本発明の実施の形態に係る画像処理装置に設定されたブロックサイズを定めるテーブルの例を表す説明図である。
【符号の説明】
【００３３】
１１  制御部、１２  記憶部、１３  画像形成部、１４  インタフェース部。
【図１】
2007028449.tif 000003
【図２】
2007028449.tif 000004
【図３】
2007028449.tif 000005