(57)【要約】【課題】  ＣＰＵによるイメージデータの回転・拡縮がより効率的な手順で行われる情報処理装置を、提供する。【解決手段】  装置内のＣＰＵが、処理対象イメージデータに施すべき回転・拡縮処理の内容（ステップＳ１０１、Ｓ１０２）によって、処理対象イメージデータに対して回転処理、拡縮処理を順次施すことにより回転・縮小イメージデータを生成する処理(ステップＳ１０３)、或いは、処理対象イメージデータから、作業用イメージデータを生成することなく回転・縮小イメージデータを生成する一括生成処理(ステップＳ１０２、Ｓ１０５)が選択的に行われるように、情報処理装置を構成しておく。【選択図】  図２
2005173914.tif 000002
【特許請求の範囲】
【請求項１】
回転処理と拡縮処理とを併せた画像処理を第１イメージデータに対して施した第２イメージデータがＣＰＵによって生成される情報処理装置であって、
前記ＣＰＵが、
メモリ上に記憶されている前記第１イメージデータに対して前記回転処理を施した中間イメージデータを前記メモリ上に生成した後、当該中間イメージデータに対して前記拡縮処理を施すことにより、前記第２イメージデータを前記メモリ上に生成する回転・拡縮処理、及び、
前記第１イメージデータの，前記第２イメージデータの構成要素とすべき各画素データの前記メモリ上での記憶位置を演算処理により特定すると共に、特定した各記憶位置に記憶された各画素データを前記第２イメージデータの構成要素として前記メモリ上に記憶することにより、前記第２イメージデータを生成する一括生成処理
を、実行可能なように、かつ、
前記第２イメージデータを生成すべきときに、前記第１イメージデータに対して施すべき前記回転処理及び前記拡縮処理の内容を指定する処理内容指定情報に基づき、前記第２イメージデータの生成がより短時間で完了する処理が前記回転・拡縮処理，前記一括生成処理のいずれであるかを判断し、より短時間で完了するものと判断した方の処理を開始するように、構成されている
ことを特徴とする情報処理装置。
【請求項２】
前記ＣＰＵが生成した第２イメージデータに応じた内容の印刷物を生成するための印刷手段を、さらに、備える
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
コンピュータを、
回転処理と拡縮処理とを併せた画像処理を第１イメージデータに対して施した第２イメージデータを生成する装置であって、
メモリ上に記憶されている前記第１イメージデータに対して前記回転処理を施した中間イメージデータを前記メモリ上に生成した後、当該中間イメージデータに対して前記拡縮処理を施すことにより、前記第２イメージデータを前記メモリ上に生成する回転・拡縮処理、及び、
前記第１イメージデータの，前記第２イメージデータの構成要素とすべき各画素データの前記メモリ上での記憶位置を演算処理により特定すると共に、特定した各記憶位置に記憶された各画素データを前記第２イメージデータの構成要素として前記メモリ上に記憶することにより、前記第２イメージデータを生成する一括生成処理
を、実行可能な装置であると共に、
前記第２イメージデータを生成すべきときに、前記第１イメージデータに対して施すべき前記回転処理及び前記拡縮処理の内容を指定する処理内容指定情報に基づき、前記第２イメージデータの生成がより短時間で完了する処理が前記回転・拡縮処理，前記一括生成処理のいずれであるかを判断し、短時間で完了するものと判断した方の処理を開始する装置として動作させる
ことを特徴とする画像処理用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回転処理と拡縮処理とを併せた画像処理がＣＰＵによって行われる情報処理装置と、コンピュータを、回転処理と拡縮処理とを併せた画像処理がＣＰＵによって行われる装置として動作させる画像処理用プログラムとに、関する。
【背景技術】
【０００２】
既存の情報処理装置の中には、回転処理と拡縮処理とを併せた画像処理が、画像処理用のＩＣではなく、ＣＰＵによって行われるものが、存在している。
【０００３】
そのような情報処理装置としては、図５に模式的に示したような形で動作するものと、図６に模式的に示したような形で動作するものとが、知られている。すなわち、常に（イメージデータの拡縮率に因らず）、イメージデータを拡縮（拡大或いは縮小）した後に，その拡縮したイメージデータを回転する情報処理装置（図５）と、常に、イメージデータを回転した後に，その回転したイメージデータを拡縮する情報処理装置（図６）とが、知られている。
【０００４】
また、図７に模式的に示したように、イメージデータを回転・拡大する場合には、回転後に拡縮（拡大）を行い、イメージデータを回転・縮小する場合には、拡縮（縮小）後に回転を行う情報処理装置（例えば、特許文献１参照。）も、知られている。
【０００５】
すなわち、実行順によらず同じ結果が得られる２種の画像処理を順次行う場合には、作業用イメージデータ（最初の画像処理により生成されるイメージデータ）のサイズが小さくなるようにしておいた方が、処理の実行に必要とされるメモリ量や，処理中で実行される画素データのメモリへの書き込み処理の回数が、少なくなる。そして、イメージデータを回転・拡大する場合には、回転処理を先に行った方が、作業用イメージデータのサイズが小さくなり、イメージデータを回転・縮小する場合には、拡縮処理（縮小処理）を先に行った方が、作業用イメージデータのサイズが小さくなるので、図７に模式的に示したような形で動作する情報処理装置が開発されているのである。
【０００６】
さて、上記説明から明らかなように、既存の情報処理装置がイメージデータの回転・拡縮時に行う処理は、いずれも、回転処理、縮小処理を組み合わせた処理となっている。すなわち、既存の情報処理装置がイメージデータの回転・拡縮時に行っている処理は、単独で実行することがあるために用意されている回転処理、縮小処理を流用したものとなっている。そして、そのような処理が行われる装置であるが故に、既存の情報処理装置は、イメージデータの回転・拡縮に結構時間がかかる装置となっていた。
【特許文献１】特開平７−３２００４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、上記現状に鑑みなされたものであり、本発明の課題は、ＣＰＵによるイメージデータの回転・拡縮がより効率的な手順で行われる情報処理装置を、提供することにある。
【０００８】
また、本発明の他の課題は、コンピュータを、ＣＰＵによるイメージデータの回転・拡縮がより効率的な手順で行われる装置として動作させることが出来る画像処理用プログラムを、提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明では、装置内に設けられているＣＰＵが、メモリ上に記憶されている第１イメージデータに対して回転処理を施した中間イメージデータをメモリ上に生成した後、当該中間イメージデータに対して拡縮処理を施すことにより、第２イメージデータをメモリ上に生成する回転・拡縮処理、及び、第１イメージデータの，第２イメージデータの構成要素とすべき各画素データのメモリ上での記憶位置を演算処理により特定すると共に、特定した各記憶位置に記憶された各画素データを第２イメージデータの構成要素としてメモリ上に記憶することにより、第２イメージデータを生成する一括生成処理を、実行可能なように、かつ、第２イメージデータを生成すべきときに、第１イメージデータに対して施すべき回転処理及び拡縮処理の内容を指定する処理内容指定情報に基づき、第２イメージデータの生成がより短時間で完了する処理が回転・拡縮処理，一括生成処理のいずれであるかを判断し、より短時間で完了するものと判断した方の処理を開始するように、情報処理装置が構成される（ＣＰＵがプログラムされる）。
【００１０】
この本発明に係る情報処理装置のＣＰＵが実行する一括生成処理は、第１イメージデータに対して施すべき画像処理の内容によっては、回転・拡縮処理よりも早く完了することがある処理である。また、一括生成処理は、回転・拡縮処理よりも、その実行に要するメモリ量が少ない処理ともなっている。従って、本発明に係る情報処理装置は、一括生成処理が行われることがある分、既存の情報処理装置よりも、イメージデータの回転・拡縮に要する平均的な時間及びメモリ量が少ない装置として動作することになる。
【００１１】
なお、本発明に係る情報処理装置の具体的な構成（第１イメージデータに対して施せる画像処理の内容）は、回転・拡縮処理，一括生成処理の双方が実行されることがあるものでありさえすれば、どのようなものであっても良い。すなわち、イメージデータの回転角を指定できないように（特定の角度でしかイメージデータを回転させられないように）、情報処理装置を構成しておいても良く、イメージデータの回転・拡大のみ或いはイメージデータの回転・縮小のみが行えるように、情報処理装置を構成しておいても良い。
【００１２】
また、本発明に係る情報処理装置を、どのような用途の装置として実現しても良いが、本発明は、イメージデータの回転・拡縮が頻繁に必要とされるプリンタ（印刷手段を備えた情報処理装置）の実現に特に適したものとなっていると言うことも出来る。
【００１３】
そして、本発明に係る画像処理用プログラムは、コンピュータを、本発明の情報処理装置相当の装置として動作させることが出来るプログラムであるので、本発明の画像処理用プログラムを用いれば、コンピュータを、ＣＰＵによるイメージデータの回転・拡縮が、より効率的な手順で行われる装置として動作させることが出来ることになる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を実施するための最良の形態を、図面を参照して詳細に説明する。
【００１５】
まず、図１を用いて、本発明の一実施形態に係る情報処理装置１０の概要を、説明する。
【００１６】
図示してあるように、本実施形態に係る情報処理装置１０は、制御部１１とコントロールパネル１２と印刷機構部１３とを備えた装置（いわゆるプリンタ）である。
【００１７】
この情報処理装置１０が備える印刷機構部１３は、用紙上に実際に印刷を行うユニット（本発明における印刷手段に相当）である。この印刷機構部１３は、印刷エンジン，給・排紙装置等から構成されている。コントロールパネル１２は、ユーザとの間のインタフェース手段として、情報処理装置１０の筐体上に設けられているユニットである。このコントロールパネル１２は、ＬＣＤ，ＬＥＤ，押しボタンスイッチ等から構成されている。
【００１８】
制御部１１は、ホスト５０から送信されてきた印刷データに応じた内容の印刷物を印刷機構部１３に生成させるユニットである。この制御部１１は、ＣＰＵ（本発明におけるＣＰＵに相当），ＲＡＭ（本発明におけるメモリに相当），ＲＯＭ，ホストインタフェース回路等から構成されている。なお、ホスト５０とは、本情報処理装置１０用のドライバプログラム３０がインストールされたコンピュータのことであり、ホストインタフェース回路とは、ホスト５０との間で通信を行うための回路のことである。
【００１９】
そして、本情報処理装置１０では、ホスト５０から或る種の印刷データが送信されてきたときには、ＣＰＵにより、回転・拡縮イメージデータ生成処理が行われる。ここで、回転・拡縮イメージデータ生成処理とは、ＲＡＭ上のイメージデータ（印刷データを解釈することによりＲＡＭ上に生成されたイメージデータ／印刷データに元々含まれていたイメージデータ）から、そのイメージデータに対して、９０度，１８０度或いは２７０度の回転処理と、縦方向，横方向の画素数をいずれもＳ倍する拡縮処理とを組み合わせた回転・拡縮画像処理を施したイメージデータ（以下、回転・拡縮イメージデータと表記する）が生成される処理のことである。
【００２０】
以上のことを前提として、以下、本情報処理装置１０の構成及び動作を、さらに具体的に説明する。
【００２１】
制御部１１内のＲＯＭには、ＣＰＵに、図２に示した手順の回転・拡縮イメージデータ生成処理を実行させるプログラム（ファームウェア）が、記憶されている。
【００２２】
すなわち、ＲＡＭ上の或るイメージデータ（本発明における第１イメージデータに相当；以下、処理対象イメージデータと表記する）から、回転・拡縮イメージデータ（本発明における第２イメージデータに相当）を生成する必要が生じた場合、ＣＰＵは、まず、処理対象イメージデータに施すべき回転処理の回転角が１８０度であるか否かを、判断する(ステップＳ１０１)。
【００２３】
回転角が１８０度であった場合(ステップＳ１０１；ＹＥＳ)、ＣＰＵは、処理対象イメージデータに対して１８０度回転用一括生成処理を行うことにより、処理対象イメージデータに関する回転・縮小イメージデータをＲＡＭ上に生成する（ステップＳ１０２：本発明における一括生成処理に相当）。
【００２４】
ここで、１８０度回転用一括生成処理とは、処理結果（回転・縮小イメージデータ）を記憶するために確保したＲＡＭ上の記憶位置群（記憶位置は、１画素データを記憶するための記憶領域）に、順々に（各記憶位置のアドレスの昇順で）、読出対象アドレスを拡縮率Ｓに応じた値ずつ減少させながら，その読出対象アドレスで特定される処理対象イメージデータの画素データを書き込んでいく処理のことである。換言すれば、この１８０度回転用一括生成処理は、１８０度回転処理（この処理は、読出対象アドレスが“１”ずつ減少される処理）と本質的には同手順の処理により、回転・拡縮イメージデータがＲＡＭ上に生成される処理となっている。
【００２５】
１８０度回転用一括生成処理を行うことにより、処理対象イメージデータに関する回転・縮小イメージデータを生成したＣＰＵは、この回転・拡縮イメージデータ生成処理を終了する。そして、ＣＰＵは、生成した回転・拡縮イメージデータに応じた内容の印刷物を印刷機構部１３に生成させるための処理を、開始する。
【００２６】
一方、回転角が１８０度ではなかった場合(ステップＳ１０１；ＮＯ)、すなわち、回転角が、反時計回り或いは時計回りに９０度であった場合、ＣＰＵは、画素データ増加率Ｋが、予め与えられている閾値Ｋｔを超えているか否かを、判断する(ステップＳ１０３)。
【００２７】
ここで、画素データ増加率Ｋとは、処理対象イメージデータに対して施すべき拡縮処理の拡縮率Ｓの二乗値（Ｓ2）のことである。また、閾値Ｋｔとは、ＣＰＵが、９０度の回転処理，又は，後述する９０度回転用一括生成処理を行うのに要する１画素データ当たりの平均処理時間Ｔ１と、ＣＰＵが、拡縮処理，１８０度の回転処理，又は，１８０度回転用一括生成処理を行うのに要する１画素データ当たりの平均処理時間Ｔ０とから、以下の（１）式により求められた値（詳細は後述）のことである。
【００２８】
Ｋｔ＝Ｔ１／（Ｔ１−Ｔ０）                        …（１）
この閾値Ｋｔよりも画素データ増加率Ｋが大きかった場合(ステップＳ１０３；ＹＥＳ)、ＣＰＵは、処理対象イメージデータに対して、９０度回転→拡縮処理（９０度の回転処理，拡縮処理をこの順で実行する処理）を行うことによって、処理対象イメージデータに関する回転・拡縮イメージデータをＲＡＭ上に生成する(ステップＳ１０４：本発明における回転・拡縮処理に相当)。
【００２９】
一方、画素データ増加率Ｋが閾値Ｋｔ以下であった場合(ステップＳ１０３；ＮＯ)、ＣＰＵは、９０度回転用一括生成処理を処理対象イメージデータに対して行うことにより、処理対象イメージデータに関する回転・拡縮イメージデータをＲＡＭ上に生成する(ステップＳ１０５：本発明における一括生成処理に相当)。
【００３０】
ここで、９０度回転用一括生成処理とは、処理結果（回転・縮小イメージデータ）を記憶するために確保したＲＡＭ上の記憶位置群のそれぞれについて、その記憶位置（以下、書込対象記憶位置と表記する）に記憶されるべき処理対象イメージデータ中の画素データが記憶されている記憶位置のアドレスを、処理対象イメージデータの縦方向及び横方向の画素数，拡縮率Ｓ等から算出し、算出したアドレスで特定される画素データを書込対象記憶位置に書き込む処理のことである。換言すれば、この９０度回転用一括生成処理は、９０度回転処理（この処理は、拡縮率Ｓが“１”である場合における９０度回転用一括生成処理と同じ手順の処理）と本質的には同手順の処理により、回転・拡縮イメージデータが生成される処理となっている。
【００３１】
そして、ステップＳ１０４或いはＳ１０５の処理を終えたＣＰＵは、回転・拡縮イメージデータ生成処理を終了し、生成した回転・縮小イメージデータに応じた内容の印刷物を印刷機構部１３に生成させるための処理を、開始する。
【００３２】
以下、ＣＰＵに、図２に示した手順の回転・拡縮イメージデータ生成処理を行わせている理由を、説明する。
【００３３】
回転・拡縮イメージデータ生成処理中で行われている１８０度の回転処理，１８０度回転用一括生成処理，拡縮処理は、いずれも、読出対象アドレス（そこに記憶された画素データが、回転・縮小イメージデータの要素とするために読み出される記憶位置のアドレス），書込対象アドレスの双方を単調に変化させるといった本質的には同内容の処理により、目的とするイメージデータが生成される処理となっている。このため、上記したように、１８０度の回転処理，１８０度回転用一括生成処理，拡縮処理に要する１画素データ当たりの平均処理時間を、それぞれ、Ｔ０と表記することができる。
【００３４】
一方、９０度の回転処理、９０度回転用一括生成処理は、読出対象アドレスを、処理対象イメージデータの縦方向，横方向の画素数を考慮して変化させなければならない処理となっている。ただし、両処理の内容は、本質的には同じものであるので、上記したように、９０度の回転処理，９０度回転用一括生成処理に要する１画素データ当たりの平均処理時間を、それぞれ、Ｔ１と表記することもできる。
【００３５】
そして、総画素データ数がＮｓの処理対象イメージデータに対して、９０度回転→拡縮処理（９０度の回転処理後に拡縮処理を実行する処理）を行うのに要する処理時間Ｔａ、拡縮→９０度回転処理（拡縮処理後に９０度の回転処理を実行する処理）を行うのに要する処理時間Ｔｂ、９０度回転用一括生成処理を行うのに要する処理時間Ｔｃ、１８０度回転→拡縮処理（１８０度の回転処理後に拡縮処理を実行する処理）を行うのに要する処理時間Ｔｄ、拡縮→１８０度回転処理（拡縮処理後に１８０度の回転処理を実行する処理）を行うのに要する処理時間Ｔｅは、１８０度回転用一括生成処理を行うのに要する処理時間Ｔｆは、それぞれ、以下の（２ａ）〜（２ｆ）式により表すことが出来る。
【００３６】
Ｔａ＝Ｎｓ・Ｔ１＋Ｋ・Ｎｓ・Ｔ０                …（２ａ）
Ｔｂ＝Ｋ・Ｎｓ・Ｔ０＋Ｋ・Ｎｓ・Ｔ１            …（２ｂ）
Ｔｃ＝Ｋ・Ｎｓ・Ｔ１                            …（２ｃ）
Ｔｄ＝Ｎｓ・Ｔ０＋Ｋ・Ｎｓ・Ｔ０                …（２ｄ）
Ｔｅ＝Ｋ・Ｎｓ・Ｔ０＋Ｋ・Ｎｓ・Ｔ０            …（２ｅ）
Ｔｆ＝Ｋ・Ｎｓ・Ｔ０                            …（２ｆ）
従って、Ｔｂ＞Ｔｃ、Ｔｄ＞Ｔｆ、Ｔｅ＞Ｔｆが、常に（Ｋ値によらず）成立することになる。また、これらの式に用いられているＴ０，Ｔ１の実際の値は、ＣＰＵ（及び、その周辺デバイス）の性能によって異なるが、Ｔ１／Ｔ０の値は、“１”〜“２”の範囲内に収まる（通常は、１．５程度の値となる）ので、ＴａとＴｃとの大小関係は、ＴａとＴｃとが一致するＫ値を境に逆転することになる。そして、上記した閾値Ｋｔに関する（１）式は、ＴａとＴｃとが一致するＫ値を求める式となっているため、結局、９０度回転した回転・拡縮イメージデータを得ることができる各処理の処理時間Ｔｘ（ｘ＝ａ〜ｃ）間には、画素データ増加率Ｋが閾値Ｋｔ以下である場合には、９０度回転用一括生成処理の処理時間Ｔｃが最も短く、画素データ増加率Ｋが閾値Ｋｔを超える場合には、９０度回転→拡縮処理の処理時間Ｔａが最も短いという関係が、存在することになる。また、１８０度回転した回転・拡縮イメージデータを得ることができる各処理の処理時間Ｔｘ（ｘ＝ｄ〜ｆ）間には、常に（画素データ増加率Ｋに寄らず）、１８０度回転用一括生成処理の処理時間Ｔａが最も短いという関係が、存在することになる。
【００３７】
より具体的には、Ｔ１＝１．６・Ｔ０が成立する場合、９０度回転した回転・拡縮イメージデータを得ることができる各処理の処理時間Ｔｘ（ｘ＝ａ〜ｃ）間の関係は、図３に示したものとなり、１８０度回転した回転・拡縮イメージデータを得ることができる各処理の処理時間Ｔｘ（ｘ＝ｄ〜ｆ）間の関係は、図４に示したものとなる。
【００３８】
このような関係が、実行すべき画像処理の内容、各処理の処理時間の間に存在しているため、ＣＰＵに、図２に示した手順の回転・拡縮イメージデータ生成処理を行わせているのである。
【００３９】
以上、説明したように、本実施形態に係る情報処理装置１０のＣＰＵが実行可能な９０度回転用一括生成処理は、常に（画素データ増加率Ｋの値によらず）拡縮→９０度回転処理よりも早く完了する処理であると共に、画素データ増加率ＫがＫｔ以下である場合には、９０度回転→拡縮処理よりも早く完了する処理となっている。また、１８０度回転用一括生成処理は、常に、拡縮→１８０度回転処理、１８０度回転→拡縮処理よりも、常に早く完了する処理となっている。さらに、９０度回転用一括生成処理、１８０度回転用一括生成処理は、いずれも、作業用イメージデータがＲＡＭ上に生成されない処理となっている。そして、ＣＰＵは、回転→拡縮処理よりも一括生成処理が早く完了する場合に一括生成処理を実行するように、プログラムされている。従って、本情報処理装置１０は、一括生成処理が行われることがある分、既存の情報処理装置よりも、回転・拡縮イメージデータの生成に要する平均的な時間及びメモリ量が少ない装置として機能することになる。
【００４０】
＜変形形態＞
上記した情報処理装置１０は、各種の変形を行うことが出来る。例えば、情報処理装置１０を、イメージデータの１８０度回転が行えない装置に変形しておいても良い。また、情報処理装置１０を、縦方向の拡縮率と横方向の拡縮率とを指定できる装置に変形しておいても良い。なお、そのような装置は、例えば、縦方向の拡縮率と横方向の拡縮率とが異なる場合には、一括生成処理が行われるように、或いは、“Ｔ１＋Ｋ・Ｔ２＜Ｋ・Ｔ１”が成立するか否かにより実行する処理を選択するように、製造することが出来る。なお、“Ｔ１＋Ｋ・Ｔ２＜Ｋ・Ｔ１”（＝“Ｎｓ・Ｔ１＋Ｋ・Ｎｓ・Ｔ２＜Ｋ・Ｎｓ・Ｔ１”；（２ａ），（２ｃ）式参照）におけるＴ２は、縦方向と横方向の拡縮率が異なる拡縮処理に要する１画素データ当たりの平均処理時間であり、Ｋは、両方向の拡縮率の乗算結果である。
【００４１】
さらに、情報処理装置１０のＲＯＭに記憶されているプログラムを、一般的なコンピュータで動作するものに変形しても良いことや、プリンタとは異なる種類の装置に、本情報処理装置１０で用いられている技術を適用しても良いことなどは、当然のことである。
【図面の簡単な説明】
【００４２】
【図１】実施形態に係る情報処理装置の構成を示したブロック図。
【図２】実施形態に係る情報処理装置内のＣＰＵが実行する回転・拡縮イメージデータ生成処理の流れ図。
【図３】実施形態に係る情報処理装置における９０度回転した回転・拡縮イメージデータの生成速度の説明図。
【図４】実施形態に係る情報処理装置における１８０度回転した回転・拡縮イメージデータの生成速度の説明図。
【図５】従来の，イメージデータを回転・縮小する機能を有する情報処理装置の動作内容の説明図。
【図６】従来の，イメージデータを回転・縮小する機能を有する情報処理装置の動作内容の説明図。
【図７】従来の，イメージデータを回転・縮小する機能を有する情報処理装置の動作内容の説明図。
【符号の説明】
【００４３】
１０  情報処理装置
１１  制御部
１２  コントロールパネル
１３  印刷機構部
【図１】
2005173914.tif 000003
【図２】
2005173914.tif 000004
【図３】
2005173914.tif 000005
【図４】
2005173914.tif 000006
【図５】
2005173914.tif 000007
【図６】
2005173914.tif 000008
【図７】
2005173914.tif 000009