(57)【要約】【課題】画像を回転して出力させる際の処理効率を向上させることのできる画像処理装置及び画像処理方法の提供を目的とする。【解決手段】一以上の画素より構成されるブロック単位に分割して処理可能な画像データを処理する画像処理装置であって、前記画像データに係る入力画像を回転させて得られる出力画像を構成する出力画素ごとに、前記入力画像において該出力画素に対応する入力画素の位置を回転角度に基づいて算出する画素位置算出手段と、前記画素位置算出手段によって位置が算出された入力画素を含む前記ブロックを第一のメモリ領域に展開するブロック展開手段と、前記第一のメモリ領域に展開された前記ブロックにおける前記入力画素に基づく画素を前記出力画像が描画される第二のメモリ領域における前記出力画素の位置に記録する出力画像描画手段とを有することにより上記課題を解決する。【選択図】図２
2009049791.tif 000002
【特許請求の範囲】
【請求項１】
一以上の画素より構成されるブロック単位に分割して処理可能な画像データを処理する画像処理装置であって、
前記画像データに係る入力画像を回転させて得られる出力画像を構成する出力画素ごとに、前記入力画像において該出力画素に対応する入力画素の位置を回転角度に基づいて算出する画素位置算出手段と、
前記画素位置算出手段によって位置が算出された入力画素を含む前記ブロックを第一のメモリ領域に展開するブロック展開手段と、
前記第一のメモリ領域に展開された前記ブロックにおける前記入力画素に基づく画素を前記出力画像が描画される第二のメモリ領域における前記出力画素の位置に記録する出力画像描画手段とを有することを特徴とする画像処理装置。
【請求項２】
前記画素位置算出手段によって位置が算出された前記入力画素を含む前記ブロックの位置を算出するブロック位置算出手段を有することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記画素位置算出手段は、既に対応する前記入力画素の位置が算出された第一の出力画素から次に前記入力画素の位置を算出する第二の出力画素への第一移動量に基づいて、前記第一の出力画素に対応する第一の入力画素を基準とした前記第一の画像における第二の移動量を算出し、前記第一の入力画素の位置と前記第二の移動量とに基づいて、前記第二の出力画素に対応する第二の入力画素の位置を算出することを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
前記第一のメモリ領域は、ＣＰＵと同一チップ上の記録媒体によって提供されることを特徴とする請求項１乃至３いずれか一項記載の画像処理装置。
【請求項５】
前記画像データは、ＪＰＥＧ形式のデータであることを特徴とする請求項１乃至４いずれか一項記載の画像処理装置。
【請求項６】
一以上の画素より構成されるブロック単位に分割して処理可能な画像データを処理する画像処理方法であって、
前記画像データに係る入力画像を回転させて得られる出力画像を構成する出力画素ごとに、前記入力画像において該出力画素に対応する入力画素の位置を回転角度に基づいて算出する画素位置算出手順と、
前記画素位置算出手順において位置が算出された入力画素を含む前記ブロックを第一のメモリ領域に展開するブロック展開手順と、
前記第一のメモリ領域に展開された前記ブロックにおける前記入力画素に基づく画素を前記出力画像が描画される第二のメモリ領域における前記出力画素の位置に記録する出力画像描画手順とを有することを特徴とする画像処理方法。
【請求項７】
前記画素位置算出手順において位置が算出された前記入力画素を含む前記ブロックの位置を算出するブロック位置算出手順を有することを特徴とする請求項６記載の画像処理方法。
【請求項８】
前記画素位置算出手順は、既に対応する前記入力画素の位置が算出された第一の出力画素から次に前記入力画素の位置を算出する第二の出力画素への第一移動量に基づいて、前記第一の出力画素に対応する第一の入力画素を基準とした前記第一の画像における第二の移動量を算出し、前記第一の入力画素の位置と前記第二の移動量とに基づいて、前記第二の出力画素に対応する第二の入力画素の位置を算出することを特徴とする請求項６又は７記載の画像処理方法。
【請求項９】
前記第一のメモリ領域は、ＣＰＵと同一チップ上の記録媒体によって提供されることを特徴とする請求項６乃至８いずれか一項記載の画像処理方法。
【請求項１０】
前記画像データは、ＪＰＥＧ形式のデータであることを特徴とする請求項６乃至９いずれか一項記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
従来、ＪＰＥＧ形式等の画像データを印刷する際に、画像を回転させる必要がある場合、次のような処理手順が必要とされていた。
【０００３】
図１は、従来において画像を回転させて印刷する際の処理手順を説明するための図である。図中において５００は、デコード（伸張）前のＪＰＥＧデータを示す。
【０００４】
まず、ＪＰＥＧデータ５００がデコードされる（Ｓ１１）。デコードの結果、ワークバッファ５１０には、画像データ５００ａが展開される（Ｓ１１）。ワークバッファは、一般的に、ＣＰＵとバスを介して接続されるＲＡＭ上において確保される。なお、画像データ５００ａは、重ねられた三つの矩形によって示されているが、これは、Ｙ、Ｃｒ、Ｃｂのそれぞれの色成分に対応するプレーンを概念的に表現したものである。
【０００５】
続いて、画像データ５００ａに対して、プリンタによって表現される色空間（ＣＭＹＫ）への変換が実行される（Ｓ１２）。その結果、ワークバッファ５１０には、画像データ５００ｂが生成される。画像データ５００ｂは、重ねられた四つの矩形によって示されているが、これは、Ｃ、Ｍ、Ｙ、Ｋのそれぞれの色成分に対応するプレーンを概念的に表現したものである。なお、色変換によって、プレーンが１つ増加する。すなわち、メモリの使用量は、４／３倍に増加する。
【０００６】
続いて、画像データ５００ｂの階調を、プリンタによって表現可能な階調に変換する（Ｓ１３）。階調変換の結果、ワークバッファ５１０には、画像データ５００ｃが生成される。なお、画像データ５００ｃは、画像データ５００ｂより小さい矩形によって示されている。これは、階調変換によってデータ量が減少したことを表現している。
【０００７】
続いて、画像データ５００ｃに対して回転処理が実行される（Ｓ１４）。回転処理の結果は、ＲＡＭ上に確保されるフレームバッファ５２０に書き込まれる。図中では、右回りに９０度回転した例が示されている。
【０００８】
その後、フレームバッファ５２０に書き込まれた画像データ５００ｄに基づいて印刷が行われる。
【特許文献１】特開２０００−３２２５６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述のように、従来、画像を回転させるためには、回転の対象となる画像の全てがワークバッファ上に展開されていた。したがって、メモリ消費量の増加を招くとともに、処理性能を低下させるという問題があった。また、回転処理そのものもコストが高い処理であり、処理性能を低下させる要因の一つであった。
【００１０】
なお、斯かる問題点は、印刷の場合のみならず、ディスプレイに表示させたり、変換処理として画像を回転させたものをファイルに出力させたりする場合等、何らかの形態において画像を回転させて出力させる場合において共通に生じうるものである。
【００１１】
本発明は、上記の点に鑑みてなされたものであって、画像を回転して出力させる際の処理効率を向上させることのできる画像処理装置及び画像処理方法の提供を目的とする。
【課題を解決するための手段】
【００１２】
そこで上記課題を解決するため、本発明は、一以上の画素より構成されるブロック単位に分割して処理可能な画像データを処理する画像処理装置であって、前記画像データに係る入力画像を回転させて得られる出力画像を構成する出力画素ごとに、前記入力画像において該出力画素に対応する入力画素の位置を回転角度に基づいて算出する画素位置算出手段と、前記画素位置算出手段によって位置が算出された入力画素を含む前記ブロックを第一のメモリ領域に展開するブロック展開手段と、前記第一のメモリ領域に展開された前記ブロックにおける前記入力画素に基づく画素を前記出力画像が描画される第二のメモリ領域における前記出力画素の位置に記録する出力画像描画手段とを有することを特徴とする。
【００１３】
このような画像処理装置では、画像を回転して出力させる際の処理効率を向上させることができる。
【発明の効果】
【００１４】
本発明によれば、画像を回転して出力させる際の処理効率を向上させることのできる画像処理装置及び画像処理方法を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面に基づいて本発明の実施の形態を説明する。本実施の形態では、一又は複数の画素より構成されるブロック単位で分割して処理可能な画像データとしてＪＰＥＧデータを例として説明する。ＪＰＥＧデータは、ＭＣＵ（Minimum Coded Unit）と呼ばれる処理の基本単位（ブロック）によって分割して処理可能とされているからである。なお、ＭＣＵは、通常８×８画素＝６４画素より構成される。
【００１６】
図２は、本発明の実施の形態において画像を回転させて出力する際の画像処理方法の概要を説明するための図である。
【００１７】
図２において、５０は、デコード（伸張）前のＪＰＥＧデータである。６０は、ワークバッファであり、７０は、回転後の出力画像が描画（記録）されるフレームバッファ（又はバンドバッファ）である。
【００１８】
まず、フレームバッファ７０にこれから描画される出力画像の一つの画素位置（以下、「出力画素」という。）に対応する、ＪＰＥＧデータ５０に係る画像における画素５１ａ−１を特定し、画素５１ａ−１を含むＭＣＵ５１を所定の演算によって特定する（Ｓ２１）。
【００１９】
続いて、ＭＣＵ５１をデコードする。その結果、ＭＣＵ５１の画素分の画像データ５１ａがワークバッファ６０に展開される（Ｓ２２）。なお、画像データ５１ａは、重ねられた三つの矩形によって示されているが、これは、Ｙ、Ｃｒ、Ｃｂのそれぞれの色成分に対応するプレーンを概念的に示したものである。
【００２０】
続いて、画像データ５１ａより出力画素に対応する画素５１ａ−１を取り出し、画素５１ａ−１に対して、プリンタによって表現される色空間（ＣＭＹＫ）への変換が実行される（Ｓ２３）。その結果、ワークバッファ６０には、画素５１ｂ−１が生成される。画素５１ｂ−１は、重ねられた四つの矩形によって示されているが、これは、Ｃ、Ｍ、Ｙ、Ｋのそれぞれの色成分に対応するプレーンを概念的に表現したものである。
【００２１】
続いて、画素５１ｂ−１の階調を、プリンタによって表現可能な階調に変換する（Ｓ２４）。階調変換の結果、ワークバッファ５１０には、画素５１ｃ−１が生成される。なお、画素５１ｃ−１は、画素５１ｂ−１より小さい矩形によって示されている。これは、階調変換によってデータ量が減少したことを表現している。
【００２２】
続いて、画素５１ｃ−１を、フレームバッファ７０における出力画素の位置に書き込む（Ｓ２５）。
【００２３】
上記を出力画像の各画素について行うことにより、回転された出力画像がフレームバッファ７０に描画される。すなわち、本実施の形態では、ＪＰＥＧデータ５０における画素の並び順にしたがって処理対象とする画素が決定されるのではなく、出力画像の画素位置に基づく、いわゆる逆算によってＪＰＥＧデータ５０において処理対象とされる画素が画決定される。
【００２４】
なお、図１と図２とを比較して明らかなように、本実施の形態における画像処理方法によれば、ＪＰＥＧデータ５０の全画素分をメモリ上に展開させる必要はないため、メモリ消費量を著しく低下させることができる。また、回転処理は必要とされないため、処理性能の向上を図ることができる。
【００２５】
以下、具体的に説明する。図３は、本発明の実施の形態における画像処理装置のハードウェア構成例を示す図である。図３において、画像処理装置１０は、それぞれバスBで相互に接続されているＲＯＭ１０１、ＲＡＭ１０２、ＨＤＤ（Hard Disk Drive）１０３、ＣＰＵ１０４、スキャナエンジン１０５、プリンタエンジン１０６、及びネットワークインタフェース１０７等を有する。
【００２６】
ＲＯＭ１０１には、画像処理装置１０の動作を制御するための各種プログラムやプログラムによって利用されるデータが記録されている。ＲＡＭ１０２には、プログラムがロードされたり、各種の作用領域として用いられたりする。例えば、ＲＡＭ１０２は、図２におけるフレームバッファ７０を提供する。ＨＤＤ１０３には、ネットワークを介して受信される画像データやスキャナエンジン１０５によって読み取られる画像データが蓄積される。ＣＰＵ１０４は、ＲＡＭ１０３にロードされたプログラムに従って、画像処理装置１０の動作を制御する。スキャナエンジン１０５は、紙文書より画像を読み取るためのハードウェア一式である。プリンタエンジン１０６は、画像データを印刷するためのハードウェア一式である。ネットワークインタフェース１０７は、ネットワークに接続するためのインタフェースとして用いられる。
【００２７】
ところで、ＣＰＵ１０４には、ＳＲＡＭ（Static RAM）１０８が配設されている。ＳＲＡＭ１０８は、図２におけるワークバッファを提供する。なお、ＳＲＡＭ１０８は、ＣＰＵ１０４の外部に配設されていてもよいが、ＣＰＵ１０４との通信速度の高速化の観点より、ＣＰＵ１０４と同一チップ上に配設されることが望ましい。
【００２８】
図４は、本発明の実施の形態における画像処理装置の機能構成例を示す図である。図４において、画像処理装置１０は、画像データ入力部１１、アドレス算出部１２、デコード部１３、色変換部１４、階調変換部１５、描画部１６、及び出力部１７等を有する。これら各部は、ＣＰＵ１０４がプログラムを処理することにより実現されるソフトウェアである。
【００２９】
画像データ入力部１１は、印刷対象とするＪＰＥＧファイル（ＪＰＥＧデータを格納したファイル）を入力（取得）する。例えば、印刷対象とするＪＰＥＧファイルは、例えば、スキャナエンジン１０５によって読み取られた画像に係るＪＰＥＧファイルであったり、ＨＤＤ１０３に保存（蓄積）されているＪＰＥＧファイルであったり、ネットワークを介してＰＣ（Personal Computer）等より受信されるＪＰＥＧファイルであったりする。
【００３０】
アドレス算出部１２は、出力画像（フレームバッファ７０）の画素位置からの逆算によって、ＪＰＥＧファイルに格納されたＪＰＥＧデータにおいて、出力画素に対応する画素の位置及びその画素を含むＭＣＵの位置を算出する。
【００３１】
デコード部１３は、アドレス算出部１２によって位置が算出（特定）されたＭＣＵをデコード（伸張）する。
【００３２】
階調変換部１５は、画像データに対して階調変換を実行する。色変換部１４は、画像データの色空間の変換を実行する。描画部１６は、フレームバッファ７０への出力画像の描画（記録）を行う。出力部１７は、フレームバッファ７０に描画された出力画像をプリンタエンジン１０６に印刷させるための制御を行う。
【００３３】
以下、画像処理装置の処理手順について説明する。図５は、画像を回転させて出力する際の画像処理装置による処理手順を説明するためのフローチャートである。以下の説明において、図２と同一対象に対しては同一符号を用いる。
【００３４】
ステップＳ１０１において、画像データ入力部１１は、印刷対象のＪＰＥＧファイルを入力（取得）する。
【００３５】
図６は、ＪＰＥＧファイルの構造を説明するための概略図である。図６に示されるように、ＪＰＥＧファイル４０には、画像幅、画像高さ、水平サンプリング数、垂直サンプリング数、及びＪＰＥＧデータ５０（画像データ）が格納されている。画像幅、画像高さは、それぞれ、ＪＰＥＧデータ５０に係る画像の幅、高さである。水平サンプリング数、垂直サンプリング数は、ＪＰＥＧデータ５０の水平サンプリング数、垂直サンプリング数である。
【００３６】
続いて、アドレス算出部１２は、ＲＡＭ１０２上のフレームバッファ７０において、ＪＰＥＧデータ５０に係る画像を回転させることにより得られる出力画像が描画される領域のうち、最初に描画対象とする画素（出力画素）に対応する、ＪＰＥＧデータ５０のデコード後の画像（以下「ＪＰＥＧ画像」という。）における画素の位置を算出する（Ｓ１０２）。
【００３７】
図７は、出力画素に対応するＪＰＥＧデータにおける画素位置の算出処理を概念的に示す図である。図７において８０は、フレームバッファ７０に対して回転後の出力画像が描画される領域（すなわち、フレームバッファ７０における出力画像の領域）を示す。図７では、画素Ｑが最初の出力画素とされ、画素Ｑに対応するＪＰＥＧ画像における画素Ｐの位置が、画素Ｑに対応する画素（対応画素）の位置として算出される様子が示されている。なお、図中では、一般化して説明するため、画素Ｑを最初の出力画素としているが、出力画像の描画領域８０左上の原点画素Ｑ０を最初の出力画素とするのが処理の単純化の観点より好ましい。
【００３８】
また、図中において、ｄｗは、描画領域８０の画素単位の幅、ｄｈは、描画領域８０の画素単位の高さ、ｓｗは、ＪＰＥＧデータ５０に係る画像の画素単位の幅、ｓｈは、ＪＰＥＧデータ５０に係る画像の画素単位の高さを示す。
【００３９】
描画領域８０の或る画素に対応する、ＪＰＥＧデータ５０における画素位置の算出式は、回転角度に応じて異なる。そこで、本実施の形態において説明する回転のパターン（回転パターン）について説明する。
【００４０】
図８は、本実施の形態における回転パターンを示す図である。図８では、四つの回転パターンが示されている。（Ａ）は、回転しない場合又は３６０度回転させる場合である。（Ａ）の回転パターンを、以下、回転パターンＡという。（Ｂ）は、１８０度回転させる場合である。（Ｂ）の回転パターンを、以下、回転パターンＢという。（Ｃ）は、右回りに２７０度又は左回りに９０度回転させる場合である。（Ｃ）の回転パターンを、以下、回転パターンＣという。（Ｄ）は、右回りに９０度又は左回りに２７０度回転させる場合である。（Ｄ）の回転パターンを、以下、回転パターンＤという。
【００４１】
回転パターンＡの場合、ステップＳ１０２では、例えば、以下の式に基づいて対応画素Ｐの位置を算出すればよい。
【００４２】
【数１】
2009049791.tif 000003
ここで、各パラメータの意味は、図７に基づいて説明すると以下の通りである。
Ｑ０ｘ：フレームバッファ７０の原点（図７における左上頂点）からの原点画素Ｑ０のＸ方向の画素位置
Ｑ０ｙ：フレームバッファ７０の原点からの原点画素Ｑ０のＹ方向の画素位置
Ｑｘ：フレームバッファ７０の原点からの出力画素ＱのＸ方向の画素位置
Ｑｙ：フレームバッファ７０の原点からの出力画素ＱのＹ方向の画素位置
Ｐｘ：ＪＰＥＧ画像５０ａの原点（図７における左上頂点）からの対応画素ＰのＸ方向の画素位置
Ｐｙ：ＪＰＥＧ画像５０ａの原点らの対応画素ＰのＹ方向の画素位置
他のパラメータについては、図７において説明した通りである。
【００４３】
回転パターンＢの場合、ステップＳ１０２では、例えば、以下の式に基づいて対応画素Ｐの位置を算出すればよい。
【００４４】
【数２】
2009049791.tif 000004
回転パターンＣの場合、ステップＳ１０２では、例えば、以下の式に基づいて対応画素Ｐの位置を算出すればよい。
【００４５】
【数３】
2009049791.tif 000005
回転パターンＤの場合、ステップＳ１０２では、例えば、以下の式に基づいて対応画素Ｐの位置を算出すればよい。
【００４６】
【数４】
2009049791.tif 000006
続いて、アドレス算出部１２は、対応画素Ｐを含むＭＣＵ（対応ＭＣＵ）の位置を算出し（Ｓ１０３）、対応ＭＣＵ内における対応画素Ｐのオフセット値（画素位置）を算出する（Ｓ１０４）。
【００４７】
図９は、対応画素を含むＭＣＵの位置の算出処理を概念的に示す図である。図９では、対応ＭＣＵとしてデコード前のＭＣＵ５１の位置が算出される様子が示されている。
【００４８】
対応ＭＣＵ５１の位置及びオフセット値は、次の式に基づいて算出すればよい。
【００４９】
【数５】
2009049791.tif 000007
ここで、各パラメータの意味は以下の通りである。
Ｍｘ：左辺の商。対応ＭＣＵ５１のＸ方向の位置（ＭＣＵ単位）を示す。
Ｉｘ：左辺の剰：対応ＭＣＵ５１の原点（左上頂点）からの対応画素ＰのＸ方向のオフセット値（画素位置）を示す。
Ｍｙ：左辺の商。対応ＭＣＵ５１のＹ方向の位置（ＭＣＵ単位）を示す。
Ｉｙ：左辺の剰：対応ＭＣＵ５１の原点からのＹ方向の対応画素Ｐのオフセット値（画素位置）を示す。
【００５０】
なお、画像幅、画像高さ、水平サンプリング数、及び垂直サンプリング数は、図６に示されるようにＪＰＥＧファイル４０内に格納されているものを用いればよい。
【００５１】
続いて、デコード部１３は、対応ＭＣＵ５１がＳＲＡＭ１０８上のワークバッファ６０に既にデコードされているか否かを判定し（Ｓ１０５）、デコードされていない場合は、アドレス算出部１０２によって算出された対応ＭＣＵ５１の位置情報に基づいて対応ＭＣＵ５１をワークバッファ６０にデコードする（Ｓ１０６）。なお、ＳＲＡＭ１０８は、記憶容量が小さいため、ワークバッファ６０に展開させておくＭＣＵの数は、キャッシュによる効果とのバランスに応じて適切に調整されることが好ましい。例えば、常に１つのＭＣＵのみがデコードされた状態にしておく場合、異なるＭＣＵがワークバッファ６０に展開されている場合は、当該ＭＣＵの削除した後、対応ＭＣＵをデコードするようにするとよい。
【００５２】
このように、本実施の形態では、ＳＲＡＭ１０８上にワークバッファ６０が確保される。本実施の形態では、ＪＰＥＧデータ５０の全画素を一度に展開する必要がないため、ＳＲＡＭ１０８のような小規模の記憶媒体でも十分ワークバッファとして利用可能だからである。ＳＲＡＭは１０８、それ自体高速なアクセスが可能であり、また、ＣＰＵ１０４とＳＲＡＭ１０８との間は、バスＢを介さずに通信可能であるため、ワークバッファ６０を扱う処理をより高速化することができる。
【００５３】
続いて、色変換部１４は、アドレス算出部１０２によって算出されたオフセット値に基づいて、デコードされた対応ＭＣＵ５１ａより対応画素Ｐを取り出し、対応画素Ｐの画素値を取得する（Ｓ１０７）。続いて、色変換部１４は、取得された画素値に基づいて、対応画素Ｐの色変換（色空間の変換）を実行し、変換結果をワークバッファ６０に書き込む（Ｓ１０８）。例えば、ＹＣｒＣｂ空間からＣＭＹＫ空間へ色空間が変換される。
【００５４】
続いて、階調変換部１５は、色変換が施された対応画素Ｐに対して階調変換を実行し、階調変換の結果をワークバッファ６０に書き込む（Ｓ１０９）。階調変換により、対応画素Ｐの階調は、プリンタエンジン１０６が表現可能な階調に変換される。
【００５５】
続いて、描画部１６は、階調変換が施された対応画素ＰをＲＡＭ１０２上のフレームバッファ７０における画素Ｑの位置に書き込む（記録する）（Ｓ１１０）。なお、ここで、画素Ｑの位置は、当初より特定されているため演算によって求める必要はない。
【００５６】
続いて、アドレス算出部１２は、描画領域８０の全画素（すなわち、ＪＰＥＧ画像５０ａの全画素）についてフレームバッファ７０への描画が完了したか否かを判定する（Ｓ１１１）。描画が完了していない場合（Ｓ１１１でＮｏ）、アドレス算出部１２は、描画領域８０において、既に描画された画素Ｑの次に描画対象とする画素（以下「画素Ｑｎ」という。）に対応する、ＪＰＥＧ画像５０における画素（以下、「対応画素Ｐｎ」という。）の位置を算出する（Ｓ１１２）。より詳しくは、描画領域８０における画素Ｑから画素Ｑｎへの移動量（画素単位）に対応する、ＪＰＥＧ画像５０ａにおける対応画素の移動量（画素単位）を算出し、算出された移動量と対応画素Ｐの画素位置とに基づいて対応画素Ｐｎの位置を算出する。
【００５７】
図１０は、出力画素の移動量に基づく対応画素の移動量の算出処理を概念的に示す図である。図１０では、出力画素の移動量がｄの場合に、対応画素の移動量がｓとして算出される例が示されている。
【００５８】
移動量の算出式は、回転パターン（図８参照）ごとに異なる。回転パターンＡの場合、例えば以下の式に基づいて、対応画素の移動量を算出すればよい。
【００５９】
【数６】
2009049791.tif 000008
ここで、各パラメータの意味は、以下の通りである。
ｄｘ：描画領域８０におけるＸ方向の画素単位の移動量
ｄｙ：描画領域８０におけるＹ方向の画素単位の移動量
ｓｘ：ＪＰＥＧ画像５０ａにおけるＸ方向の画素単位の移動量
ｓｙ：ＪＰＥＧ画像５０ｂにおけるＹ方向の画素単位の移動量
回転パターンＢの場合、例えば以下の式に基づいて、対応画素の移動量を算出すればよい。
【００６０】
【数７】
2009049791.tif 000009
回転パターンＣの場合、例えば以下の式に基づいて、対応画素の移動量を算出すればよい。
【００６１】
【数８】
2009049791.tif 000010
回転パターンＤの場合、例えば以下の式に基づいて、対応画素の移動量を算出すればよい。
【００６２】
【数９】
2009049791.tif 000011
したがって、ＪＰＥＧ画像５０ａにおいて、次に処理対象とされる対応画素Ｐ１の位置は、（Ｐｘ＋ｓｘ，Ｐｙ＋ｓｙ）となる。なお、ステップＳ１１２では、ステップＳ１０２と同じ式によって対応画素Ｐｎの位置を直接的に算出してもよい。但し、算出式が単純であることからも明らかなように、移動量に基づいて算出する方が処理の高速化を図ることができる。
【００６３】
次の対応画素Ｐｎの位置が特定されると、対応画素Ｐｎに基づいてステップＳ１０３〜Ｓ１１０の処理が実行される。描画領域８０の全ての画素について描画が完了すると（Ｓ１１１でＹｅｓ）、出力部１７は、フレームバッファ７０の描画領域８０に描画された出力画像をプリンタエンジン１０６に印刷させる（Ｓ１１３）。
【００６４】
上述したように、本発明の実施の形態における画像処理装置１０によれば、画像を回転させて出力させる必要がある場合、メモリ消費量を削減しつつ、高速に処理を行うことができる。
【００６５】
なお、本実施の形態では、ＳＲＡＭ１０８をワークバッファ６０として用いる例について説明したが、ＲＡＭ１０２をワークバッファ６０として用いても良い。この場合、ワークバッファ６０に対するアクセス速度は低下するが、多くのデコード後のＭＣＵを展開させることができるため、ステップＳ１０５におけるヒット率を高めることができる。
【００６６】
また、本発明の適用範囲は、ＪＰＥＧデータに限定されない。一以上の画素より構成されるブロック単位で処理可能な画像データであれば、本発明は有効に適用可能である。
【００６７】
また、本発明の適用範囲は、印刷の際の画像処理だけに限定されない。表示や、データ変換等、画像を回転させて出力する各種の処理に提供可能である。
【００６８】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００６９】
【図１】従来において画像を回転させて印刷する際の処理手順を説明するための図である。
【図２】本発明の実施の形態において画像を回転させて出力する際の画像処理方法の概要を説明するための図である。
【図３】本発明の実施の形態における画像処理装置のハードウェア構成例を示す図である。
【図４】本発明の実施の形態における画像処理装置の機能構成例を示す図である。
【図５】画像を回転させて出力する際の画像処理装置による処理手順を説明するためのフローチャートである。
【図６】ＪＰＥＧファイルの構造を説明するための概略図である。
【図７】出力画素に対応するＪＰＥＧデータにおける画素位置の算出処理を概念的に示す図である。
【図８】本実施の形態における回転パターンを示す図である。
【図９】対応画素を含むＭＣＵの位置の算出処理を概念的に示す図である。
【図１０】出力画素の移動量に基づく対応画素の移動量の算出処理を概念的に示す図である。
【符号の説明】
【００７０】
１０          画像処理装置
１１          画像データ入力部
１２          アドレス算出部
１３          デコード部
１４          色変換部
１５          階調変換部
１６          描画部
１７          出力部
１０１        ＲＯＭ
１０２        ＲＡＭ
１０３        ＨＤＤ
１０４        ＣＰＵ
１０５        スキャナエンジン
１０６        プリンタエンジン
１０７        ネットワークインタフェース
１０８        ＳＲＡＭ
Ｂ            バス
【図１】
2009049791.tif 000012
【図２】
2009049791.tif 000013
【図３】
2009049791.tif 000014
【図４】
2009049791.tif 000015
【図５】
2009049791.tif 000016
【図６】
2009049791.tif 000017
【図７】
2009049791.tif 000018
【図８】
2009049791.tif 000019
【図９】
2009049791.tif 000020
【図１０】
2009049791.tif 000021