(57)【特許請求の範囲】
【請求項１】
画像を入力する入力手段と、前記入力手段により入力された画像を分割して、それぞれがオーバラップしない領域とオーバーラップ領域とを含む複数のタイル画像を生成する生成手段と、前記生成手段により生成された複数のタイル画像それぞれに対して別々に画像処理を実行する画像処理手段とを有する画像処理装置であって、
前記生成手段は、前記タイル画像を生成する際に、前記オーバーラップ領域の画像の解像度が前記オーバラップしない領域の画像の解像度より小さくなるように、前記オーバーラップ領域の画像の解像度を変換することを特徴とする画像処理装置。
【請求項２】
前記生成手段は、前記オーバラップしない領域の画像の解像度を変換せずに、前記オーバーラップ領域の画像の解像度を小さくするように変換することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像に基づいて印刷を実行する際の印刷モードを設定する設定手段を更に有し、
前記生成手段は、前記オーバーラップ領域の画像の解像度を前記設定手段により設定された印刷モードに応じた解像度に変換することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記オーバーラップ領域は複数のサブ領域を含み、前記生成手段は、前記複数のサブ領域の画像の解像度を領域ごとに異なる解像度に変換することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
画像を入力する入力手段と、前記入力手段により入力された画像を分割して、それぞれがオーバラップしない領域とオーバーラップ領域とを含む複数のタイル画像を生成する生成手段と、前記生成手段により生成された複数のタイル画像それぞれに対して別々に画像処理を実行する画像処理手段とを有する画像処理装置であって、
前記生成手段は、前記タイル画像を生成する際に、前記オーバーラップ領域の画像が前記オーバラップしない領域の画像より高い圧縮率で圧縮されるように、前記オーバーラップ領域の画像を圧縮することを特徴とする画像処理装置。
【請求項６】
前記生成手段は、前記オーバラップしない領域の画像を第１の圧縮率で圧縮して、前記オーバーラップ領域の画像を前記第１の圧縮率より高い第２の圧縮率で圧縮することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
画像処理装置の制御方法であって、
画像を入力する入力工程と、
前記入力工程により入力された画像を分割して、それぞれがオーバラップしない領域とオーバーラップ領域とを含む複数のタイル画像を生成する生成工程と、
前記生成工程により生成された複数のタイル画像それぞれに対して別々に画像処理を実行する画像処理工程とを有し、
前記生成工程では、前記タイル画像を生成する際に、前記オーバーラップ領域の画像の解像度が前記オーバラップしない領域の画像の解像度より小さくなるように、前記オーバーラップ領域の画像の解像度を変換することを特徴とする制御方法。
【請求項８】
画像処理装置の制御方法であって、
画像を入力する入力工程と、
前記入力工程により入力された画像を分割して、それぞれがオーバラップしない領域とオーバーラップ領域とを含む複数のタイル画像を生成する生成工程と、
前記生成工程により生成された複数のタイル画像それぞれに対して別々に画像処理を実行する画像処理工程とを有し、
前記生成工程では、前記タイル画像を生成する際に、前記オーバーラップ領域の画像が前記オーバラップしない領域の画像より高い圧縮率で圧縮されるように、前記オーバーラップ領域の画像を圧縮することを特徴とする制御方法。
【請求項９】
画像処理装置に、
画像を入力する入力工程と、
前記入力工程により入力された画像を分割して、それぞれがオーバラップしない領域とオーバーラップ領域とを含む複数のタイル画像を生成する生成工程と、
前記生成工程により生成された複数のタイル画像それぞれに対して別々に画像処理を実行する画像処理工程とを実行させるためのプログラムであって、
前記生成工程では、前記タイル画像を生成する際に、前記オーバーラップ領域の画像の解像度が前記オーバラップしない領域の画像の解像度より小さくなるように、前記オーバーラップ領域の画像の解像度を変換することを特徴とするプログラム。
【請求項１０】
画像処理装置に、
画像を入力する入力工程と、
前記入力工程により入力された画像を分割して、それぞれがオーバラップしない領域とオーバーラップ領域とを含む複数のタイル画像を生成する生成工程と、
前記生成工程により生成された複数のタイル画像それぞれに対して別々に画像処理を実行する画像処理工程とを実行させるためのプログラムであって、
前記生成工程では、前記タイル画像を生成する際に、前記オーバーラップ領域の画像が前記オーバラップしない領域の画像より高い圧縮率で圧縮されるように、前記オーバーラップ領域の画像を圧縮することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データに所定の画像処理を施して出力をする画像処理装置及びその制御方法とプログラムに関するものである。
【背景技術】
【０００２】
複写機、ファクシミリ、レーザプリンタ等の画像処理装置では、入力したデジタル画像の各ラインをラインメモリに格納し、回転や各種フィルタ処理等を行っている。これにより画像データの回転、平滑化、拡大／縮小、更にはエッジ強調等の画像処理を実行している。このような画像処理を実行する画像処理装置は一般に、ページメモリや画像処理や画像の編集用に、回転部、フィルタ処理部等を含む画像処理部を有している。このような画像処理部で画像データを、例えば９０度回転する回転部の場合で説明する。画像データを９０度回転する場合は、例えばページメモリに画像データをラスタ（水平方向の走査順）順に１ページ分の画像データを書き込む。そして、その画像データを読み出す際には、垂直方向に読み出すことにより画像データの回転を実現できる。しかしこのような回転を実現するためには、１ページの最大サイズに対応する巨大なページメモリが必要となる。
【０００３】
またページメモリの容量の増大を抑制する手法として、ページ画像をタイル画像に分割し、各タイルごとに画像データを回転し、各回転した各タイル画像を最終段で結合することによりページ画像を回転する手法がある。
【０００４】
しかしながらこの手法では、注目画素と、その注目画素に対する周辺画素を参照して注目画素のフィルタ演算を行う場合、タイル画像の境界の画素が注目画素となる場合は、１つのタイル画像だけで演算を実行することができない。従って、タイル画像の境界の画素が注目画素となる場合は、周辺画素を含めて演算するためにフィルタ演算のサイズに応じてバンドメモリを持たなければならない。
【０００５】
このような周辺画素を参照する演算に対する解決手法として、処理対象の原画像をタイル画像に分割する際に、このタイル画像の境界近傍部分の注目画素が周辺画素を参照できるように画素をオーバーラップさせて分割する方法がある。そして周辺画素を用いてタイル画像の境界の画素を処理する場合には、上述したような周辺画素を保持するためのラインメモリは必要とせず、このオーバーラップ部分の画素を参照してフィルタ演算等を行っている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１９８１２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述のようにタイル画像に分割する際にオーバーラップ部を付与して画像を分割すると、各タイル画像のデータ量は、本身（オーバーラップでない部分）の画像データ量と、オーバーラップ部分の画像データ量とを加算したデータ量となる。例えば、タイル画像が１６画素×１６画素（２５６画素）の場合、オーバーラップ部である周辺画素を２画素を付与すると、各タイル画像は２０画素×２０画素（４００画素）となる。即ち、オーバーラップを付与した場合のタイル画像のデータ量は、オーバーラップを付与しない場合に比べて約１．５倍となり、タイル画像をメモリから読み出す場合のメモリに必要とされるスループット（必要帯域）も１．５倍となる。従って、要求されるスループットが足りない場合には、メモリ仕様として周波数の増加や、バス幅の増加等を行わなければならず、メモリコストの増大が避けられないという課題があった。
【０００８】
本発明の目的は、上記従来技術の問題点を解決することにある。
【０００９】
本発明の特徴は、オーバーラップ領域の画像のデータ量を少なくして画像処理を実現できる画像処理装置及びその制御方法とプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
画像を入力する入力手段と、前記入力手段により入力された画像を分割して、それぞれがオーバラップしない領域とオーバーラップ領域とを含む複数のタイル画像を生成する生成手段と、前記生成手段により生成された複数のタイル画像それぞれに対して別々に画像処理を実行する画像処理手段とを有する画像処理装置であって、
前記生成手段は、前記タイル画像を生成する際に、前記オーバーラップ領域の画像の解像度が前記オーバラップしない領域の画像の解像度より小さくなるように、前記オーバーラップ領域の画像の解像度を変換することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、オーバーラップ領域の画像のデータ量を少なくして画像処理を実現できる。これにより、メモリのスループットの負担を小さくし、画像処理のコストパフォーマンスを高めることができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係る画像処理装置の全体構成を示すブロック図である。
【図２】画像処理装置を制御するソフトウェアモジュールの構成図である。
【図３】実施形態に係るプリンタ画像処理部の構成を示すブロック図である。
【図４】実施形態１のアドレス制御部が生成するアドレスを説明する図である。
【図５】画像処理装置におけるプリント動作を説明するフローチャートである。
【図６】アドレス制御部のアドレス制御を示すフローチャートである。
【図７】５×５フィルタ演算部による注目画素Ｄ22の演算処理の説明図である。
【図８】５×５フィルタ演算部の内部構造を示すブロック図である。
【図９】フィルタ演算に使用するフィルタ係数の一例図である。
【図１０】注目画素Ｄ6のフィルタ演算を説明する図である。
【図１１】プリンタドライバにおける画面表示の一例を示す図である。
【図１２】実施形態２に係る画像処理装置のプリント動作を説明するフローチャートである。
【図１３】実施形態２に係るプリンタ画像処理部の構成を示すブロック図である。
【図１４】実施形態２に係るアドレス制御部のアドレス制御を説明する図である。
【図１５】アドレス制御部がタイル画像の読出しを行うためのアドレス制御を示すフローチャートである。
【図１６】実施形態２における注目画素Ｄ24のフィルタ演算を説明する図である。
【図１７】３×３のフィルタ演算に使用するフィルタ係数の一例を示した図である。
【図１８】実施形態２における注目画素Ｄ6のフィルタ演算を説明する図である。
【図１９】実施形態２のアドレス制御部が生成するアドレスを説明する図である。
【図２０】フィルタ演算部の注目画素Ｄ19のフィルタ演算を説明する図である。
【図２１】フィルタ演算部の注目画素Ｄ3のフィルタ演算を説明する図である。
【図２２】実施形態３の画像圧縮部及び画像伸張部の構成を示すブロック図である。
【図２３】実施形態３の画像圧縮部による圧縮処理を示すフローチャートである。
【図２４】実施形態３のＭＣＵを示す図である。
【図２５】実施形態３の量子化の例を示す図である。
【図２６】実施形態３に係る量子化部の構成を示すブロック図である。
【図２７】量子化テーブルの例を示す図である。
【図２８】実施形態３に係る画像伸張部の処理を説明するフローチャートである。
【図２９】画像伸張部の逆量子化部の構成を示すブロック図である。
【図３０】逆量子化後の値の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１４】
［実施形態１］
図１は、本実施形態に係る画像処理装置（複合機）１００の全体構成を示すブロック図である。
【００１５】
図１において、画像処理装置１００は、画像入力デバイスであるスキャナ１０１や、プリンタ画像処理部１１９で処理された画像データに基づいて印刷するプリンタエンジン１０２を有している。また画像処理装置１００は、ＬＡＮ１０や公衆回線１０４と接続して、画像情報やデバイス情報を入出力する。ＣＰＵ１０５は、この画像処理装置１００全体を制御するための中央処理装置である。ＲＡＭ１０６は、ＣＰＵ１０５が動作するためのワークメモリを提供しており、また入力した画像データを一時記憶するための画像メモリを提供している。ＲＯＭ１０７はブートＲＯＭであり、システムのブートプログラムが格納されている。ＨＤＤ１０８はハードディスクドライブであり、各種処理のためのシステムソフトウェア及び入力された画像データ等を格納する。操作部Ｉ／Ｆ１０９は、画像データ等を表示可能な表示画面や操作ボタン等を有する操作部１１０のインタフェース部である。ネットワークインターフェース１１１は、例えばＬＡＮカード等で実現され、ＬＡＮ１０を介して外部装置との間で情報の入出力を行う。モデム１１２は公衆回線１０４を介して外部装置との間で情報の入出力を行う。以上のユニットがシステムバス１１３上に配置されている。
【００１６】
イメージバスＩ／Ｆ１１４は、システムバス１１３と画像データを高速で転送する画像バス１１５とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。画像バス１１５には、ラスタイメージプロセッサ（ＲＩＰ）部１１６、デバイスＩ／Ｆ１１７、スキャナ画像処理部１１８、編集用画像処理部１２０、画像圧縮部１０３、画像伸張部１２１、カラーマネージメントモジュール（ＣＭＭ）１３０が接続されている。ＲＩＰ部１１６は、ページ記述言語（ＰＤＬ）コードや後述するベクトルデータをイメージに展開する。デバイスＩ／Ｆ部１１７は、画像伸張部１２１とプリンタ画像処理部１１９を介してスキャナ１０１やプリンタエンジン１０２と画像処理装置１００とを接続し、画像データの同期系／非同期系の変換を行う。また、スキャナ画像処理部１１８は、スキャナ１０１から入力した画像データに対して、補正、加工、編集等の各種処理を行う。編集用画像処理部１２０は、画像データの回転や、トリミング・マスキング等の各種画像処理を行う。画像圧縮部１０３はスキャナ画像処理部１１８や編集用画像処理部１２０で処理された画像データをＨＤＤ１０８で格納する際に所定の圧縮方式で符号化する。画像伸張部１２１は、ＨＤＤ１０８に格納されている圧縮画像データを復号して伸張する。プリンタ画像処理部１１９は、プリンタエンジン１０２に出力する画像データに、そのプリンタエンジン１０２に応じた画像処理、解像度変換等の処理を行う。ＣＭＭ１３０は、画像データに対して、プロファイルやキャリブレーションデータに基づいた色変換処理（色空間変換処理）を施す専用ハードウェアモジュールである。プロファイルとは、機器に依存した色空間で表現したカラー画像データを、機器に依存しない色空間（例えばＬａｂ等）に変換するための関数のような情報である。キャリブレーションデータは、スキャナ１０１やプリンタエンジン１０２の色再現特性を修正するためのデータである。
【００１７】
図２は、本実施形態に係る画像処理装置１００を制御するソフトウェアモジュールの構成を説明する図である。これらソフトウェアモジュールは、主にＣＰＵ１０５の制御の下に動作する。
【００１８】
ジョブコントロール処理２０１は、各ソフトウェアモジュールを統括・制御し、コピー、プリント、スキャン、ＦＡＸ送受信等の画像処理装置１００で発生するあらゆるジョブの制御を行う。ネットワーク処理２０２は、主にネットワークＩ／Ｆ１１１を介して行われる、外部装置との通信を制御するモジュールであり、ＬＡＮ１０上の各機器との通信制御を行う。ネットワーク処理２０２は、ＬＡＮ１０の各機器からの制御コマンドやデータを受信すると、その内容をジョブコントロール処理２０１へ通知する。またジョブコントロール処理２０１からの指示に基づき、ＬＡＮ１０の各機器へ制御コマンドやデータの送信を行う。
【００１９】
ＵＩ処理２０３は、主に操作部１１０、操作部Ｉ／Ｆ１０９に係る制御を行う。操作者が操作部１１０を操作した内容を、ジョブコントロール処理２０１へ通知すると共に、ジョブコントロール処理２０１からの指示に基づいて、操作部１１０の表示画面の表示内容を制御する。ＦＡＸ処理２０４は、モデム１１２を介してＦＡＸ受信を行い、ＦＡＸ画像に特有の画像処理を施した後、その受信した画像をジョブコントロール処理２０１へ通知する。また、ジョブコントロール処理２０１からの指定される画像を、指定通知先へＦＡＸで送信する。プリント処理２０７は、ジョブコントロール処理２０１の指示に基づいて、編集用画像処理部１２０、プリンタ画像処理部１１９及びプリンタエンジン１０２を制御し、指定された画像の印刷処理を行う。
【００２０】
プリント処理２０７は、ジョブコントロール処理２０１より、画像データ、画像情報（画像データのサイズ、カラーモード、解像度等）、レイアウト情報（オフセット、拡大縮小、面つけ等）及び用紙情報（サイズ、印刷方向等）の情報を受付ける。そして画像圧縮部１０３、画像伸張部１２１、編集用画像処理部１２０及びプリンタ画像処理部１１９を制御して、画像データに対して適切な画像処理を施し、プリンタエンジン１０２を制御して用紙へ印刷を行わせる。
【００２１】
スキャン処理２１０は、ジョブコントロール処理２０１の指示に基づいて、スキャナ１０１及びスキャナ画像処理部１１８を制御して、スキャナ１０１により原稿の読み込みを行わせる。ジョブコントロール処理２０１の指示には、カラーモードが含まれており、スキャン処理２１０ではカラーモードに応じた処理が行われる。即ち、カラーモードがカラーであれば原稿をカラー画像として入力し、モノクロであれば原稿をモノクロ画像として入力する。またカラーモードが自動である場合には、プレスキャン等により原稿のカラー／モノクロ判定し、その判定結果に基づいた画像として再度原稿をスキャンして画像を入力する。スキャン処理２１０は、スキャナ１０１により原稿のスキャンを実行し、デジタルデータとして画像データを入力する。こうして入力した画像のカラー情報は、ジョブコントロール処理２０１へ通知される。更に、スキャン処理２１０は、その入力した画像に対し、スキャナ画像処理部１１８を制御して画像の圧縮等の画像処理を施した後、ジョブコントロール処理２０１へ画像処理済みの入力画像を通知する。
【００２２】
色変換処理２０９は、ジョブコントロール処理２０１の指示に基づいて、指示画像に対して色変換処理を行い、色変換処理後の画像をジョブコントロール処理２０１へ通知する。ジョブコントロール処理２０１は、色変換処理２０９に対して、入力色空間情報、出力色空間情報及び色変換を適用する画像を通知する。色変換処理２０９に通知された出力色空間が、入力機器に依存しない色空間（例えばＬａｂ空間）である場合には、入力機器に依存する入力色空間（例えば、ＲＧＢ）からＬａｂに変換するための情報である入力プロファイル情報があわせて通知される。この場合、色変換処理２０９は入力プロファイルより、入力色空間からＬａｂ空間へマッピングするルックアップテーブル（ＬＵＴ）を作成し、このＬＵＴを利用して入力画像の色変換を行う。また色変換処理２０９に通知された入力色空間が、Ｌａｂ空間である場合には、Ｌａｂ空間から出力機器に依存する出力色空間に変換するための出力プロファイル情報があわせて通知される。この場合、色変換処理２０９は出力プロファイルより、Ｌａｂ色空間から出力色空間へマッピングするＬＵＴを作成し、このＬＵＴを利用して入力画像の色変換を行う。また、色変換処理２０９に通知された入力色空間、出力色空間の双方が、デバイスに依存する色空間である場合には、入力プロファイルと出力プロファイルの双方が通知される。この場合、色変換処理２０９は入力プロファイル及び出力プロファイルより、入力色空間から出力色空間へダイレクトにマッピングするＬＵＴを作成し、このＬＵＴを利用して入力画像の色変換を行う。色変換処理２０９では、ＣＭＭ１３０が機器内にあれば、ＣＭＭ１３０へ生成したＬＵＴを設定することより、ＣＭＭ１３０を利用して色変換を行う。一方、ＣＭＭ１３０がない場合にはＣＰＵ１０５がソフト的に色変換処理を行う。尚、色変換処理２０９は、予めリファレンス画像の色変換を実行することにより、入力プロファイルのみが指定された場合の色変換処理に要する時間を保持する。更に、色変換処理２０９は、出力プロファイルのみが指定された場合の色変換に要する時間を保持する。また色変換処理２０９は、入力プロファイルと出力プロファイルが指定された場合の色変換に要する時間を保持する。
【００２３】
ＲＩＰ処理２１１は、ジョブコントロール処理２０１の指示に基づいて、ＰＤＬ（ページ記述言語）の解釈（インタプリット）を行い、ＲＩＰ部１１６を制御してレンダリングすることで、ビットマップイメージへの展開を行う。
【００２４】
図３は本実施形態に係るプリンタ画像処理部１１９の構成を示すブロック図である。
【００２５】
タイル分割ＤＭＡＣ３００は、メモリ読出部３０１とアドレス制御部３０２を有している。ＲＡＭ１０６から原画像データを読み出すときは、アドレス制御部３０２でアドレスを生成し、そのアドレスに基づいてメモリ読出部３０１によりＲＡＭ１０６へリード要求トランザクションを発行して、ＲＡＭ１０６からデータを読み出す。
【００２６】
図５は、本実施形態に係る画像処理装置１００におけるプリント動作を説明するフローチャートである。この処理はＲＡＭ１０６或いはＲＯＭ１０７に記憶されたプログラムをＣＰＵ１０５が実行することにより達成される。
【００２７】
ＬＡＮ１０を介して送信されてきたＰＤＬ（ページ記述言語）を、ネットワークＩ／Ｆ１１１にて受信し、イメージパスＩ／Ｆ１１４を介してＲＩＰ部１１６へ入力する。これによりＳ１で、ＲＩＰ部１１６は、そのＰＤＬを解釈（インタプリット）してレンダリングを実行する。次にＳ２に進み、Ｓ１でレンダリングされビットマップ形式の画像データを画像バス１１５を介して画像圧縮部１０３に送り、そこで所定の画像圧縮方式を用いて符号化する。そしてＳ３で、イメージパスＩ／Ｆ１１４を介してＨＤＤ１０８へ各ジョブのページ群を格納する。こうしてＨＤＤ１０８に格納されたページ群は、Ｓ４で、プリンタエンジン１０２の出力タイミングに同期して呼び出され、イメージバスＩ／Ｆ１１４、デバイスＩ／Ｆ１２１を介して画像伸張部１２１に送られて復号（伸張）される。こうして復元された画像データを、Ｓ５で、ページ毎に一旦ＲＡＭ１０６に展開される。こうして展開された画像データは、後述するプリンタ画像処理部１１９のタイル分割ＤＭＡＣ３００により、印刷するページのタイミングで読み出され、プリンタ画像処理部１１９で印刷用の画像処理が実行される。Ｓ６では、ＲＡＭ１０６からタイル画像を読出し、次にＳ７で、そのタイル画像に対して、各フィルタ演算部でタイル単位（ブロック単位）で画像処理を実行する。そしてＳ８で、全てのタイル画像に対する処理が終了するとＳ９に進んで、その処理した画像データをプリンタエンジン１０２に出力して印刷する。
【００２８】
図４は、アドレス制御部３０２が生成するアドレスを説明する図である。
【００２９】
図は６×６のタイルデータに周囲２画素ずつのオーバーラップタイル画像を付加した１０×１０のタイルデータを読み出す場合を示す。図４は展開された画像データをＲＡＭ１０６に配列したものである。斜線の部分はオーバーラップ部分（第１の領域）を示し、点線で囲む領域が実際にオーバーラップを含めたタイル部分（ブロック）となる。アドレス制御部３０２は複数のタイルに分割するために、斜線で示したオーバーラップ部を含むタイル部分の画像データを後述するような画素データを読み出せるようにアドレス制御を行う。従って斜線部分で示すオーバーラップ部分の画像データは多重に読み出される。更に、図４のタイル部分の拡大図において、黒丸（●）が実際に読み出される画像データを示し、その白抜き文字が読み出される順番を示している。即ち、図４に示すように、本身（第２の領域）となる６×６のタイルデータの全てと、２×２のオーバーラップ部の左上の画素が読み出される。
【００３０】
図６は、アドレス制御部３０２がオーバーラップ含むタイル画像を読み出すためのアドレス制御（Ｓ６）を示すフローチャートである。
【００３１】
まずアドレス制御部３０２は、図４のように列アドレス（Ｘ方向）と行アドレス（Ｙ方向）でタイルの位置を判断、制御する。まず始めにＳ１１で、タイルの左上の画素データのアドレスをスタートタイルアドレスとしてセットする。次にＳ１２に進み、スタートタイルアドレスでセットされている画素データを読み出す。次にＳ１３に進み、アドレス制御部３０２が生成しているアドレスが、オーバーラップ部であるか否かを判定する。オーバーラップ部の場合はＳ１４に進み、更に、行（Ｙ方向）のアドレスを判定し、該当する行に読み出す画素データがあるか否かを判定する。ここで読み出す画素データがない場合はＳ１９に進んで、行アドレス（Ｙ）を１つインクリメントしてＳ１２に進む。一方、読み出す画素データがある場合はＳ１５に進み、列アドレス（Ｘ）を２つインクリメントしてＳ１７に進む。Ｓ１７では、列の最後か否かを判定し、列の最後でないと判定するとＳ１２に戻って画素データを読み出す。
【００３２】
一方、Ｓ１３で、アドレスがオーバーラップ部でないと判定するとＳ１６に進み、列アドレス（Ｘ）を１つインクリメントしてＳ１７に進み、画素データを読み出す動作を繰り返す。そしてＳ１７で、列の最後と判定した場合はＳ１８へ進み、その行がタイルの最終の行であるかどうかを判定する。最終の行でないと判定した場合はＳ１９に進み行アドレスを１つインクリメントして、次の列からの画素を読み出す動作を繰り返す。そしてＳ１８で最終の行であると判定した場合は、タイル画像の読出しが全て終了したので、この処理を終了する。
【００３３】
以上のように本実施形態１では、図４のように周囲２画素のオーバーラップ部では、２×２の矩形（小ブロック）において左上の画素（代表画素）だけを読み出すようにアドレス制御部３０２のリードアドレスを生成する。これら代表画素は、例えば図７のＤ0，Ｄ1，Ｄ2，…に対応する。これによりオーバーラップ部分の解像度を落とすことができる。またページ全体で並んでいるデータをタイル毎に読み出せるようにアドレスを制御することでタイル画像を生成することができる。これにより図３の入力タイルバッファ３０４，３０５には、読み出されたタイルデータが入力されて格納される。セレクタ３０３は、入力タイルバッファ３０４，３０５を切り替えて順次データを格納する。
【００３４】
図７は、本実施形態に係る５×５フィルタ演算部３０７による、注目画素Ｄ22に対する演算処理を説明する図である。尚、演算係数ＣＡ00〜ＣＡ08の一例は図９に示されている。
【００３５】
本実施形態では、入力タイルバッファ３０４，３０５のように２重のバッファ構成にした。これにより、例えば入力タイルバッファ３０４よりセレクタ３０６を介して５×５フィルタ演算部３０７へデータが読み出されている間、他方の入力タイルバッファ３０５へメモリ読出部３０１はデータを書き込むことができスループットを高めることができる。５×５フィルタ演算部３０７は、タイルデータにフィルタ演算を施す演算処理部である。
【００３６】
図８は、５×５フィルタ演算部３０７の内部構造を示すブロック図である。本実施形態では、５×５のフィルタ演算を行う場合の構成を示しており、レジスタ群８０１と畳み込み演算部８０２を有している。入力タイルバッファ３０４，３０５に格納された画素データは、５×５のフィルタで演算する５×５フィルタ演算部３０７へ順次入力される。本実施形態では、５×５の垂直方向の５画素をそれぞれ初段のレジスタＤin00〜Ｄin04の入力へ同時に入力し、この入力動作を５回繰り返して、５×５のフィルタ演算に必要な画素データをレジスタ群内の全てのレジスタに格納する。その後、各レジスタからの出力（Ｄout00〜Ｄout24）を用いて畳み込み演算部８０２でフィルタ演算を実行する。
【００３７】
図９は、５×５フィルタ演算部３０７がフィルタ演算に使用するフィルタ係数の一例を示す図である。
【００３８】
Ｄ22を演算で求める場合は、注目画素に対するフィルタ係数（ＣＡ00〜ＣＡ08）を周辺の対応する画素に乗算する。そして各々の演算結果を用いて５×５のフィルタ画素分の総和を求めて注目画素に対する演算を終了する。
【００３９】
図１０は、注目画素Ｄ6のフィルタ演算を説明する図である。
【００４０】
図のように例えば、画素Ｄ6の左斜め上の画素は、先ほどのタイル画像読出し時に画素を間引いた代表画素だけを読んでいるために、実際には対象とする画素データがない。この場合は、画素Ｄ0を参照画素として演算し、Ｄ6の真上、右斜め上の画素は、画素Ｄ1を参照する（例えば、参照画素は図の太字のエリアで参照している）。
【００４１】
以上のように本身の部分（オーバーラップでない部分）の端部画素の演算を行う場合、参照画素の位置に画素データがない場合には、近傍の画素データを用いて注目画素に対するフィルタ演算を行う。これにより、解像度が低くなっているオーバーラップ部分を参照画素としてフィルタ演算を実行することができる。
【００４２】
このようにして本身部分の注目画素のフィルタ演算が終了した画素データは、セレクタ３０８を介して出力タイルバッファ３０９或いは３１０に書き込まれる。出力タイルバッファ３０９，３１０のどちらかのバッファが一杯になった時点で、出力タイルの送信が許可状態となり、セレクタ３１１を介してタイル画像を出力する。
【００４３】
これにより図５のＳ６で、ＲＡＭ１０６からタイル画像データを読み出す。Ｓ７では、Ｓ６で読み出したタイル画像データのフィルタ演算を実行する。そしてＳ８で、ＲＡＭ１０６に展開された画像データの全タイル画像の読出しが終了したか否かを判定し、終了していないときはステップＳ６に戻るが、終了したと判定した場合はＳ９に進む。Ｓ９では、プリンタ画像処理部１１９から出力された画像データをプリンタエンジン１０２へ出力する。これにより画像が用紙に印刷されて処理を終了する。
【００４４】
以上説明したように本実施形態１によれば、展開されたビットマップ形式の画像データをＲＡＭ１０６より読み出す（取得する）際にオーバーラップ部（第１の領域）を含み、更に、オーバーラップ部の解像度を低下させて画像データを読み込む。更に、オーバーラップ部が本身（第２の領域）よりも相対的に解像度の低いフォーマットでタイル分割を実行する。これにより周辺画素を参照するフィルタ演算を行う場合に、ＲＡＭ１０６から、オーバーラップ部を含むタイル単位での画像データの転送におけるデータ量を削減できる。従って、ＲＡＭ１０６のバンドやシステムバス、画像バス等のコスト上昇を抑えて、パフォーマンスの良い画像処理装置を提供できる。
【００４５】
尚、本実施形態１では、プリンタ画像処理部１１９ではフィルタ演算部３０７でフィルタ演算を行ったが、色変換や各種スクリーン処理等を行う処理部を実装し、これら処理部がシリアル、或いは並列に処理する構成でも良い。
【００４６】
［実施形態２］
次に本発明の実施形態２を説明する。本実施形態に係る画像処理装置の全体構成及び各ソフトウェアモジュールは前述の実施形態１と同様であるため、その説明を省略する。本実施形態２では、プリント動作がつのモードを有する場合で説明する。
【００４７】
図１１は、ユーザがプリント動作を行う場合のプリンタドライバにおける画面表示の一例を示す図である。この画面は、ＬＡＮ１０を介して画像処理装置１００に接続されているＰＣ（不図示）の表示部に表示される。
【００４８】
図１１は、ユーザが印刷品質を選択するために印刷品質タブ９０４を選択した場合の画面表示例を示す。ここでユーザは、出力方法ダイアログ９０５で、印刷、ストレージへの保存、セキュアプリント等を選択できる。印刷目的ダイアログ９０６は、印刷や保存する際の印刷品質を選択するためのものである。図のように「一般」が選択された場合は、パフォーマンス重視（印刷速度や保存速度が速い）の設定となり、「グラフィックス」、「高精細文書」が選択された場合は画質品質重視の設定となり、これ以降、画像処理装置１００はこの設定に基づいて動作する。
【００４９】
次にユーザが印刷目的ダイアログ９０６で「高精細文書」を選択して印刷を指示した場合を図１２のフローチャートを参照して説明する。
【００５０】
図１１の印刷目的ダイアログ９０６で「高精細文書」を選択し、印刷ボタン９０８を押下すると、ＬＡＮ１０に接続されたＰＣより印刷データがＰＤＬ（ページ記述言語）で送信される。このＰＤＬデータはネットワークＩ／Ｆ１１１で受信され、イメージパスＩ／Ｆ１１４よりＲＩＰ部１１６へ入力される。これによりＲＩＰ部１１６は、Ｓ２１で、そのＰＤＬデータを解釈（インタプリット）してレンダリングを実行する。次にＳ２２に進み、その展開した画像データを符号化する。そしてＳ２３に進み、イメージパスＩ／Ｆ１１４を介してＨＤＤ１０８へ各ジョブのページ群を格納する。次にＳ２４に進み、格納したページ群を、プリンタエンジン１０２の出力タイミングに同期して読み出して復号して伸張する。次にＳ２５に進み、こうして復元した画像データを、ページ毎に一旦ＲＡＭ１０６に展開する。
【００５１】
次にＳ２６に進み、その展開された画像データの印刷品質モードを確認する。ここで高画質モードであると判定するとＳ２７に進み、後述するプリンタ画像処理部１１９の＜ＲＵＬＥ１＞に従って画像データを読み出す。一方、Ｓ２６で、高画質モードでないと判定するとＳ２８に進み、後述するプリンタ画像処理部１１９の＜ＲＵＬＥ２＞に従って画像データを読み出す。
【００５２】
こうしてＳ２７或いはＳ２８で画像データを読み出すとＳ２９に進み、その画像データに対してフィルタ演算処理を実行する。そしてＳ３０で、全てのタイル画像に対する処理が終了するとＳ３１に進み、プリンタエンジン１０２に出力して印刷する。Ｓ３０で全てのタイル画像に対する処理が終了していないときはステップＳ２６に戻って、前述の処理を実行する。
【００５３】
図１３は、本実施形態２に係るプリンタ画像処理部１１９の構成を示すブロック図である。本実施形態２では、実施形態１で説明した５×５フィルタ演算部３０７に、３×３フィルタ演算部１００７が追加されている。３×３フィルタ演算部１００７と５×５フィルタ演算部３０７の間に緩衝用のタイルバッファ１００８が設けられている。その他の構成は図３と同じであるため同じ記号を付して、その説明を省略する。
【００５４】
図１４は、本実施形態２に係るアドレス制御部１００２のアドレス制御を説明する図である。前述の実施形態１とは異なり実施形態２は、６×６のタイルデータに３×３のフィルタ演算を行った後、５×５のフィルタ演算を行う。従って、実施形態１のオーバラップ部の周囲に更に２画素ずつのオーバーラップ部を付加し、本実施形態２での３×３のフィルタ演算を行うために周囲に１画素を付加した計１２×１２のタイルデータを読み出す。従って、オーバラップ部は複数種類のサブ領域（ここでは２種類のオーバラップ部）を含み、各サブ領域はそれぞれ複数の小ブロックに分割されている。
【００５５】
図１４は、展開された画像データをＲＡＭ１０６に配列した状態を示す図である。図において斜線部分はオーバーラップ部分であり、点線で囲まれた領域が実際にオーバーラップ部を含めたタイル部分となる。
【００５６】
アドレス制御部１００２は、実施形態１と同様にタイル画像に分割するために、図の斜線で示したオーバーラップ部を含むタイルを、後述するような順番で画素データを読み出すようにアドレス制御を行う。従って、斜線部分のオーバーラップ部分の画素データは多重に読み出される。更に図１４のタイル部分の拡大図において、黒丸（●）の白抜き文字が実際に読み出す画素データの順番を示している。
【００５７】
図１５は、実施形態２に係るアドレス制御部１００２がオーバーラップ部分を含むタイル画像の読出しを行うためのアドレス制御を示すフローチャートである。本実施形態２においても、アドレス制御部１００２は、図１４のように列アドレス（Ｘ方向）と行アドレス（Ｙ方向）の２つのアドレスでタイルの位置を判断、制御する。
【００５８】
まず始めにＳ４１で、画素データのアドレスをスタートタイルアドレスとしてタイルの左上にセットする。次にＳ４２に進み、スタートタイルアドレスでセットされている画素データを読み出す。続いてＳ４３で、アドレス制御部１００２が生成している現在のアドレスをチェックし、現在の行アドレスが示す行に読み出す画素データがあるか否かを判断する。ここで読み出す画素データがある場合はＳ４４に進み、次に読み出す画素データをアドレスするように列アドレスを進める。そしてＳ４２に戻って画素データを読み出すという動作を繰り返し、該当の行の読出し対象となる画素データを全てリードする。こうしてＳ４３で、該当する行の画素データを全て読み出した場合はＳ４５に進み、現在の行がタイルの最終行であるか否かを判定する。ここで最終の行でないと判定した場合はＳ４６に進み、行アドレスを１インクリメントしてＳ４３に進み、上記のように次列からの画素を読み出す動作を繰り返す。そしてＳ４５で、最終の行であると判断するとタイル画像の読出し処理を終了する。
【００５９】
以上説明したように本実施形態２では、印刷品質モードを「高精細文書」に設定にした場合は周囲２画素のオーバーラップ部分（図の最外周から内側へ２周目、３周目の部分）では、例えば２×２の矩形の左上の画素）に基づいて読み出す代表画素を選択する。そして図１５で説明したようにアドレスを生成して順次画素データを読出す（代表画素は例えば図１６のＤ6，Ｄ７，・・・に対応する）。また３×３のフィルタ演算用のオーバーラップ部分（図の最外周部分）においても、ある規則（図の場合には２×１の矩形では左端或いは右端の画素選択、１×２の矩形では上端或いは下端の画素選択）に基づいて代表画素を選択する。これに応じてアドレスを生成し、同じく順次画素データを読出す（代表画素は例えば図１６のＤ0，Ｄ1，・・・に対応する）。
【００６０】
以上のように例えばフィルタ演算が２つある場合、対応するオーバーラップ部分の代表画素をそれぞれ異なるルールでアドレスを飛ばして生成し、読み出すことにより各オーバーラップ部分に応じて異なる解像度をもつタイル分割を行うことができる。また「高精細文書」等の高画質モードが設定された場合は、例えば最外周の読み出す画素の解像度を次段のオーバーラップ部分（最外周から内側へ２周目、３周目の部分）の解像度より高くする等する。こうして、フィルタ演算における画質の向上を実現させ、より高画質な画像の再現を可能とした。
【００６１】
これにより「高精細文書」等の高画質モードにより、アドレス制御部１００２により、上述のルール（図１５では＜RULE1＞）で生成されたアドレスに基づいて、メモリ読出部１００１よりＲＡＭ１０６に配列されたデータを読み出す（Ｓ２７）。こうして読み出されたオーバーラップタイルデータは、セレクタ３０３を介して、入力タイルバッファ３０４，３０５のいずれかに格納される。そしてタイルバッファのタイルデータが一杯になると、３×３フィルタ演算部１００７へデータが転送される。この３×３フィルタ演算部１００７の内部構造は，前述の実施形態１のフィルタ演算部３０７とほぼ同様であるので説明を省略する。
【００６２】
同様に３×３フィルタ演算部１００７の図示しないレジスタ群へ順次データを格納していき、３×３フィルタの計９画素がレジスタに格納されると、図示しない畳み込み演算部により３×３のフィルタ演算が実行される。
【００６３】
図１６に示したフィルタ演算式は、図のＤ24を注目画素として演算する場合の例を示している。
【００６４】
図１７は３×３のフィルタ演算に使用するフィルタ係数の一例を示した図である。
【００６５】
図１６のように、注目画素Ｄ24に対する演算の場合は、注目画素に対するフィルタ係数（ＣＡ00〜ＣＡ03）を周辺画素の対応する画素データに乗算する。こうして各々の結果を３×３のフィルタ画素分の総和をとることで注目画素に対する演算を終了する。
【００６６】
一方、図１８のフィルタ演算は、注目画素Ｄ6に対する演算の例を示した図である。図のように、例えば注目画素Ｄ6の真上の画素には実際には対象とするデータはない。この場合はＤ0を参照画素として演算し、注目画素Ｄ6の右横、右斜め下の画素は、自己のＤ6を参照する（例えば、参照画素は図の太字のエリアで参照している）。
【００６７】
以上のように本身の部分（オーバーラップでない部分）の端部画素の演算を行う場合に、参照画素位置にデータがない場合は、近傍の画素データを演算に用いて注目画素に対する演算を行う。これにより解像度が低くなっているオーバーラップ部を参照画素としてフィルタ演算を実行することができる。
【００６８】
３×３のフィルタ演算が実行された後、演算結果のタイルデータは、一旦タイルバッファ１００８に格納される。このとき、３×３のフィルタ演算で必要となった最外周のオーバーラップ部分は必要がなくなるので、次段の５×５フィルタ演算部３０７に入力する際にはこの部分を削除する。これにより１２×１２のタイルから１０×１０のタイルへ変更して入力される。こうして５×５フィルタ演算部３０７へ入力されたタイルデータには、実施形態１と同様の処理が行われる。こうして本身部分の注目画素のフィルタ演算が終了した画素データは、セレクタ３０８を介して出力タイルバッファ３０９又は３１０に書き込まれる。そして出力タイルバッファ３０９，３１０のいずれかが一杯になった時点でタイルデータの送信が許可状態となり、セレクタ３１１を介してタイルデータが出力される。
【００６９】
従ってＳ２９で、プリンタ画像処理部１１９内の各フィルタ演算部でフィルタ処理を実行しながら、ＲＡＭ１０６に展開された画像データの全タイル画像の読出しが終了したか否かを判断する（Ｓ３０）。そして全タイル画像の読出しが終了した場合はＳ３１に進み、プリンタ画像処理部１１９より出力された画像データをプリンタエンジン１０２へ入力する。これにより用紙に印刷され、その用紙を排出して印刷動作を終了する。
【００７０】
次にユーザが、図１１の印刷目的ダイアログ９０６にて「一般」（速度優先モード）に設定して印刷する場合について説明する。ＲＡＭ１０６に印刷したい画像データが展開される処理までは「高精細文書」（画質優先モード）が選択された場合と同様なので説明を省略する。
【００７１】
今回、図１９のタイル部分の拡大図において、黒丸（●）の白抜き文字が実際に読み出す画素データの順番を示している。本モードでのアドレス制御部１００２のアドレスの生成、制御は図１５のフローチャートと同様であるので説明を省略する。
【００７２】
図１９のように、５×５のフィルタ演算用に周囲２画素のオーバーラップ部分（図の最外周から内側へ２周目、３周目の部分）に対しては図のようにある規則（図の場合は２×２の矩形において左上の画素を読む）に基づいて読み出す代表画素を選択する。そして、それに基づいてアドレスを生成し、順次読出していく（代表画素は例えば図２０のＤ3，Ｄ4，・・・に対応する）。更に今回は、３×３のフィルタ演算用のオーバーラップ部分（図の最外周部分）においてもある規則（今回は４×１の矩形で左１、或いは右１画素選択、また１×４の矩形では上端或いは下端の画素選択）に基づいて代表画素を選択する。そして、その選択した画素データを読み出すためにアドレスを生成する（代表画素は例えば図２０のＤ0，Ｄ1，・・・に対応する）。
【００７３】
以上のように例えばフィルタ演算が２つある場合において、対応するオーバーラップ部分の代表画素をそれぞれ異なるルールでアドレスを飛ばして生成し、読み出すことにより各オーバーラップ部分に応じて異なる解像度をもつタイル分割を行うことが可能となる。また「一般」等のパフォーマンス重視モードが設定された場合は、上記のように例えば最外周の読み出す画素の解像度を、高精細文書」が選択された場合よりも低下させる。具体的には、４×１の矩形で１画素を選択している。これにより３×３のフィルタ演算の精度は劣化する方向だが、タイルデータは小さくなるのでＲＡＭ１０６から読み出す際のスループットは早くなりパフォーマンスの向上できる。
【００７４】
このように「一般」等の速度優先モードでは、アドレス制御部１００２で、上述したルール（図１５では、＜RULE2＞と記載）で生成されたアドレスに基づいて、メモリ読出部１００１よりＲＡＭ１０６から原画像データを読み出す（Ｓ２８）。
【００７５】
図２０，図２１は、３×３フィルタ演算部１００７で、それぞれＤ19とＤ3のフィルタ演算を行う場合を説明する図である。
【００７６】
特に図２１において、先ほどの「高精細文書」が選択された場合と比較して、最外周の代表画素が粗くなっているので「FILOUT_03」を求める加算の項は更に重複した参照画素が呼ばれている。従って、参照画素データが少なくなった分だけ演算精度は低くなるが、タイルデータのデータ量を小さくできる。
【００７７】
このようにして３×３のフィルタ演算が実行された後、演算結果のタイルデータは一旦タイルバッファ１００８に格納される。前述と同様に３×３のフィルタ演算で必要となった最外周のオーバーラップ部分は必要がなくなるので、次段の５×５フィルタ演算部３０７に入力する際にはこの部分を削除して、１２×１２のタイルから１０×１０のタイルへ変更される。次段の５×５フィルタ演算部３０７へ入力されたタイルデータは、前述の実施形態１と同様の処理が行われ、本身部分の注目画素のフィルタ演算が終了した画素はセレクタ３０８を介して、出力タイルバッファ３０９，３１０に書き込まれる。そして出力タイルバッファ３０９，３１０のいずれかが一杯になるとタイルデータの送信が許可状態となりセレクタ３１１を介してタイルデータを出力する（Ｓ２９）。従って、Ｓ２９でプリンタ画像処理部１１９の各フィルタ演算部でフィルタ処理を実行しながら、ＲＡＭ１０６に展開された画像データの全タイル画像の読出しが終了したか否かを判定する（Ｓ３０）。全タイル画像の読出しが終了した場合はＳ３１へ進んで、プリンタエンジン１０２へ出力して印刷してプリント動作を終了する。
【００７８】
以上のように本実施形態２では、ユーザが設定した印刷モード（画像処理モード）に応じて、ページ画像を展開したＲＡＭ等のページメモリよりデータを読み出す際にオーバーラップ部分の解像度を切替えて画像データを読み出すように制御できる。従って、オーバーラップ部分を含むタイル画像のデータ量を、その印刷モードに応じて変更することができ、これにより画像データの増大を抑えて、ユーザが意図した画像品質と処理速度で印刷できる。
【００７９】
また本実施形態２のように、プリンタ画像処理部１１９に周辺画素を参照するフィルタ演算等の処理が複数ある場合には、フィルタ演算用のオーバーラップ部を対応する複数の階層とすることで複数の異なるフィルタ演算処理にも対応できるようになる。更に画像処理部が、印刷モード等に応じて、読み出す画素データの解像度を変更することにより、ＲＡＭとの間でデータ帯域を広げることなく、ユーザのモード設定等に適したパフォーマンスの良い処理を実行できる。
【００８０】
［実施形態３］
前述の実施形態１，２では、ページ単位で画像データを圧縮していた。このため、任意のタイルを切り出すためには、１ページ全部の画像データをＲＡＭ１０６に展開する必要がある。例えば、Ａ４縦の画像データをＡ４横で印刷するために９０度或いは２７０度回転する場合、或いは回転を伴わない場合でも、例えば１０×１０のタイルを切り出すためには（９ライン＋α）の画像を伸張する必要がある。そのため、画像データを伸張するために使用するＲＡＭ１０６の容量が大きくなってしまう。
【００８１】
そこで本実施形態３では、図５のＳ２の画像データの圧縮の段階でオーバーラップ部分を含むタイルに分割してからＪＰＥＧ圧縮する。その際に、ＪＰＥＧの処理単位の都合上、本身の部分とオーバーラップ部分共に、そのサイズは縦、横ともに８の倍数とする。この制限の下で、本身の部分とオーバーラップ部分のサイズは、後段のプリンタ画像処理部１１９での処理（Ｓ７）で必要なサイズによって決める。この方法によって、図１２の画像伸張（Ｓ２５）の際に、１ページの中の必要な部分のみをＲＡＭ１０６に展開することができ、その際に必要なＲＡＭ１０６の容量を小さくすることができる。
【００８２】
本実施形態３では、オーバーラップ部分は、複数のオーバーラップ部分を含むタイルに含まれるため、普通に圧縮したのでは圧縮後のデータが大きくなってしまう。そこで、本実施形態３では、オーバーラップ部分と本身の部分とで圧縮パラメータを切り替える。それによって、最終的な印刷品質への影響を抑えつつデータ量を小さくしている。
【００８３】
図２２（Ａ）は、本実施形態３に係る画像圧縮部１０３の構成を示すブロック図である。図２３は、本実施形態３に係る画像圧縮部１０３による圧縮処理を示すフローチャートである。これらを参照しながら圧縮方法について説明する。この処理は、図５のＳ２或いは図１２のＳ２２で実行される。
【００８４】
ＭＣＵ  ＤＭＡＣ（以下、ＤＭＡＣ）２４０１は、指定された本身の部分とオーバーラップ部分のサイズをもとにＲＡＭ１０６のビットマップデータからオーバーラップ部分を含むタイルを切り出して読み出す（Ｓ５１）。ＪＰＥＧでは図２４（Ａ）〜（Ｃ）に示すようにＭＣＵ（Minimum Code Unit）と呼ばれる単位で処理される。ＭＣＵは８×８画素で構成され、各コンポーネント（Ｒ，Ｇ，Ｂ，Ｃ，Ｍ，Ｙ，Ｋ等）ごとに存在する。図２４（Ａ）〜（Ｃ）のそれぞれは、Ｒ，Ｇ，Ｂのそれぞれに対するＭＣＵを示している。
【００８５】
次にＳ５２に進み、ＤＭＡＣ２４０１は、読み出したビットマップイメージをＭＣＵ単位に並び替える。その際に、ＤＭＡＣ２４０１は、各ＭＣＵがオーバーラップ部分であるか、本身の部分であるかを識別し、それに基づく量子化テーブルの選択信号２８０５（図２６）を生成して後段のモジュールに伝播していく。そしてＳ５３で、各ＭＣＵは、ＤＣＴ部２４０２によって離散コサイン変換されて２次元の周波数成分に変換される。
【００８６】
図２５（Ａ）に示すAfterDCTは、ＭＣＵを離散コサイン変換した場合の一例を示し、変換後も８×８単位である。各要素は周波数変換後の係数値を示し、一番左上の値はＤＣ成分の係数値を示し、右下に行くほど高調波成分の係数値を示す。こうして周波数変換された各ＭＣＵは次に、量子化部２４０３によって量子化される。
【００８７】
図２６は、本実施形態３に係る量子化部２４０３の構成を示すブロック図である。
【００８８】
この量子化部２４０３は、量子化テーブルを参照して量子化を行う量子化コア部２８０１、選択信号２８０５に応じて、量子化に使用する量子化テーブルを選択するセレクタ２８０２を有している。量子化テーブル２８０３，２８０４はそれぞれ、オーバラップしたＭＣＵ用の量子化テーブルと、オーバラップしていない（本身の）ＭＣＵ用の量子化テーブル（図２７（Ｂ））である。ここで選択信号２８０５が「０」であれば量子化テーブル２８０３（図２７（Ａ））が、「１」であれば量子化テーブル２８０４（図２７（Ｂ））がそれぞれ選択される。
【００８９】
この量子化コア部２８０１は、ＭＣＵの各要素をそれぞれに対応する量子化値で割り算して量子化する。８×８のＭＣＵに対応する量子化値をまとめて表記したものを量子化テーブルと呼ぶ。この量子化テーブルの例を図２７（Ａ）（Ｂ）に示す。一般的に、高調波成分の情報は失われても人間の視覚では目立たないことが知られているため、高調波成分に対応する量子化値ほど大きい（粗い）値を使用する。オーバラップしたＭＣＵ用のテーブルである図２７（Ａ）に示す例で説明すると、右下に行くほど大きい値になる。図２７（Ｂ）は、本身のＭＣＵ用の量子化テーブル２８０４の具体例を示している。
【００９０】
ＪＰＥＧ圧縮では、後に出てくる符号化部２４０４のハフマン符号化の性質上、量子化テーブルの値を大きくしたほうが圧縮後のコードデータのサイズを小さくできる。但し、量子化テーブルの値を大きくしていくと失われる情報量も多くなって人間の視覚でも劣化が目立つようになる。つまり画像品質とコードデータのサイズはトレードオフであり、それを決める要因が量子化テーブルの値である。
【００９１】
本実施形態３では、オーバーラップ部分は本身の部分に比べて、後段の画像処理を行った後の最終画像データに対する影響度が小さいことに着目し、オーバーラップ部分と本身の部分で量子化テーブルの値を変えている。それによって、本身の部分は高画質に、オーバーラップ部分は本身と比べると画質は落ちるが、圧縮後のデータサイズが小さくなるようにする。
【００９２】
具体的には、Ｓ５４でオーバーラップ部分かどうかを判定し、セレクタ２８０２に選択信号２８０５を出力する。量子化コア部２８０１は、ＤＭＡＣ２４１０から受け取った周波数変換後の係数値を、セレクタ２８０２で選択された対応する量子化テーブルの値で割り算する。
【００９３】
図２５（Ａ）は、周波数変換後の係数値を示す。図２５（Ｂ）は、量子化テーブル２８０３で量子化した（Ｓ５５）結果の一例を示し、図２５（Ｃ）は、量子化テーブル２８０４を使用して量子化した（Ｓ５６）結果の一例を示す。尚、ここでは、割り算の結果を切り捨てているが、四捨五入する方法でも良い。こうしてＳ５５或いはＳ５６を実行した後Ｓ５７に進み、その量子化した値をハフマン符号化する。
【００９４】
符号化部２４０４によるハフマン符号化では、出現頻度の高い数値に対して短いビット長を割り当てることによりデータ量を削減する。量子化後の値では「０」が一番出現頻度が高いはずである。よって、「０」に短いビット長を割り当てる。つまり、ＪＰＥＧ圧縮では、量子化テーブルの値を調整して画質に影響の少ない高調波成分の係数値をできるだけ「０」にすることにより、できる限り画質を維持したままデータ量を削減する。次にＳ５８に進み、ハフマン符号化されたコードデータをＣｏｄｅ  ＤＭＡｃ２４０５によりＲＡＭ１０６に出力して保存し、画像圧縮処理を終了する。
【００９５】
次に図５のＳ４、図１２のＳ２４の画像伸張処理について説明する。この画像伸張処理は、前述の画像圧縮処理のほぼ逆順に処理を行う。
【００９６】
図２２（Ｂ）は、本実施形態３に係る画像伸張部１２１の構成を示すブロック図である。図２８は、本実施形態３に係る画像伸張部１２１の処理を説明するフローチャートである。
【００９７】
図２９は、画像伸張部１２１の逆量子化部２５０３の構成を示すブロック図である。
【００９８】
Ｓ６１で、Ｃｏｄｅ  ＤＭＡＣ２５０１がＲＡＭ１０６からハフマン符号化されたコードデータを読み出す。次にＳ６２に進み、ハフマン復号化部２５０２がハフマン復号化を実行し、Ｓ６３で、その復号化したデータをＭＣＵ単位に並べる。つぎに逆量子化部２５０３で逆量子化を行う。この逆量子化では、量子化の際に使用したのと同じ量子化テーブルを使用する。具体的には、まずＳ６４で、オーバーラップ部分かどうかを判定する。そしてその判定した結果を信号３２０４でセレクタ３２０２に伝える。ここで信号３２０４が「０」であれば、セレクタ３２０２はオーバーラップ部分用テーブル３２０３を選択し、「１」であれば本身部分用テーブル３２０４を選択する。これにより逆量子化コア部３２０１は、その選択されたテーブルを使用して逆量子化を行う。具体的には、逆量子化部コア部３２０１は、ハフマン復号部２５０２から入力した量子化値を、その選択された量子化テーブルの値で掛け算して量子化する（Ｓ６５，Ｓ６６）。
【００９９】
図３０（Ａ）（Ｂ）は逆量子化後の値の一例を示す図で、図３０（Ａ）は、Ｓ６５で逆量子化した結果例を示し、図３０（Ｂ）は、Ｓ６６で逆量子化した結果例を示す。
【０１００】
次にＳ６７に進み、その逆量子化したデーを、逆ＤＣＴ（逆離散コサイン変換）部２５０４で逆離散コサイン変換する。次にＳ６８に進み、ラスタＤＭＡＣ２５０５によってＭＣＵ単位のデータをビットマップデータに変換する。そしてＳ６９に進み、そのラスタデータをＲＡＭ１０６に保存して、この画像伸張処理を終了する。
【０１０１】
（他の実施形態）
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。
【０１０２】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
0005383416.tif 000002
【図２】
0005383416.tif 000003
【図３】
0005383416.tif 000004
【図４】
0005383416.tif 000005
【図５】
0005383416.tif 000006
【図６】
0005383416.tif 000007
【図７】
0005383416.tif 000008
【図８】
0005383416.tif 000009
【図９】
0005383416.tif 000010
【図１０】
0005383416.tif 000011
【図１１】
0005383416.tif 000012
【図１２】
0005383416.tif 000013
【図１３】
0005383416.tif 000014
【図１４】
0005383416.tif 000015
【図１５】
0005383416.tif 000016
【図１６】
0005383416.tif 000017
【図１７】
0005383416.tif 000018
【図１８】
0005383416.tif 000019
【図１９】
0005383416.tif 000020
【図２０】
0005383416.tif 000021
【図２１】
0005383416.tif 000022
【図２２】
0005383416.tif 000023
【図２３】
0005383416.tif 000024
【図２４】
0005383416.tif 000025
【図２５】
0005383416.tif 000026
【図２６】
0005383416.tif 000027
【図２７】
0005383416.tif 000028
【図２８】
0005383416.tif 000029
【図２９】
0005383416.tif 000030
【図３０】
0005383416.tif 000031