(57)【要約】【課題】少ないメモリ容量でタイル単位に変倍処理を行える画像処理装置及び画像処理装置の変倍処理方法を提供する。【解決手段】デジタル複写機の変倍処理部２１１６は、メモリバス２１０８を介して外部メモリに接続されている。メモリインタフェース５は、タイルスレーブインタフェース４から入力した画像データを外部メモリにタイル画像単位で書き込む。そして、メモリインタフェース５は、外部メモリに書き込まれたタイル画像を読み出し変倍ブロック６に送る。変倍ブロック６は、タイル画像を変倍処理してタイルバッファ７に出力する。タイルマスタインタフェース８はタイルバッファ７のタイル画像をタイルバスへ出力する。【選択図】　　　図１３
2004048372.tif 000002
【特許請求の範囲】
【請求項１】
入力した画像データに変倍処理を施す画像処理装置であって、
入力した画像データを外部メモリにタイル画像単位で書き込む書込手段と、
前記外部メモリに書き込まれたタイル画像を読み出す読出手段と、
前記読出手段により読み出されたタイル画像を変倍処理する変倍手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記画像処理装置は、タイル画像の入出力処理及び管理を実行する画像入出力装置のために用いられる画像処理装置であり、
前記画像入出力装置のタイル画像を入力する入力手段と、
前記変倍手段により変倍処理されたタイル画像を前記画像入出力装置に対して出力する出力手段と、
をさらに有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像処理装置は、ＩＣチップとして構成されており、前記タイル画像の水平方向の画素数に対応するラインバッファをチップ内に有することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記読出手段は、各タイル画像の読み出し開始時において、所定のライン数分の画像データを前記外部メモリから連続して読み出すことを特徴とする請求項１〜３のいずれかに記載の画像処理装置。
【請求項５】
入力した画像データに画像処理を施す画像処理装置であって、
入力した画像データを外部メモリにラスタ展開する展開手段と、
前記外部メモリに書き込まれたラスタデータをタイル画像単位で読み出す読出手段と、
前記読出手段により読み出されたタイル画像に所定の画像処理を施す画像処理手段とを有し、
前記読出手段は、各タイル画像の読み出し開始時において、所定のライン数分の画像データを前記外部メモリから連続して読み出すことを特徴とする画像処理装置。
【請求項６】
入力した画像データに変倍処理を施す画像処理装置であって、
入力した画像データを外部メモリにタイル画像単位で書き込む書込手段と、
前記外部メモリに書き込まれたタイル画像を読み出す読出手段と、
前記読出手段により読み出されたタイル画像を変倍処理する変倍手段と、
指定された垂直方向の変倍率がｎ（ｎ＜１）である場合、前記外部メモリにおいて管理すべき垂直方向のタイル画像数を少なくとも（１／ｎ）＋２個とし、前記読出手段及び前記書込手段による前記外部メモリへのアクセスに関する排他制御を行う排他制御手段と、
を有することを特徴とする画像処理装置。
【請求項７】
入力した画像データに変倍処理を施す画像処理装置であって、
入力した画像データを外部メモリにタイル画像単位で書き込む書込手段と、
前記外部メモリに書き込まれたタイル画像を読み出す読出手段と、
前記読出手段により読み出されたタイル画像を変倍処理する変倍手段と、
前記変倍手段により変倍処理された画像データを格納する格納手段と、
前記格納手段の制御を行う格納制御手段とを有し、
前記変倍手段は、水平方向に連続した複数個のタイル画像を一括して変倍処理し、前記格納制御手段は、変倍処理された画像データを前記格納手段に格納し、前記格納手段に格納した画像データをタイル画像単位に読み出して出力することを特徴とする画像処理装置。
【請求項８】
前記格納制御手段は、一括して変倍処理されるタイル画像の個数と位置情報に基づいて、前記変倍手段から出力される画像データを前記格納手段へ格納しないように制御することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
入力した画像データを画像処理して出力する画像入出力装置であって、
前記入力した画像データを所定の分割画像に分割し、前記分割画像に属性情報を付加してデータパケットを生成する生成手段と、
前記データパケットを入力して分割画像を変倍処理し、変倍処理された分割画像からデータパケットを再構成して出力する変倍処理手段とを有し、
前記変倍処理手段は、前記ヘッダに含まれる位置情報に基づいて、入力したデータパケットの画像データを外部メモリに前記分割画像単位で書き込み、前記外部メモリに書き込まれた前記分割画像を読み出し、読み出された前記分割画像を変倍処理することを特徴とする画像入出力装置。
【請求項１０】
入力した画像データを画像処理して出力する画像入出力装置であって、
前記入力した画像データを、所定の分割画像の単位で画像処理して出力するＩＣチップと、
前記ＩＣチップによる画像処理のためにアクセスされるメモリユニットとを有し、
前記入力した画像データを変倍処理する場合、前記ＩＣチップは、変倍率に応じて前記メモリユニットを前記分割画像単位で確保し、前記メモリユニットの分割画像に基づいて変倍処理を実行することを特徴とする画像入出力装置。
【請求項１１】
入力した画像データに変倍処理を施す画像処理装置の変倍処理方法であって、
入力した画像データを外部メモリにタイル画像単位で書き込む書込工程と、
前記外部メモリに書き込まれたタイル画像を読み出す読出工程と、
前記読出工程において読み出されたタイル画像を変倍処理する変倍工程と、
を有することを特徴とする変倍処理方法。
【請求項１２】
入力した画像データに画像処理を施す画像処理装置のメモリ制御方法であって、
入力した画像データを外部メモリにラスタ展開する展開工程と、
前記外部メモリに書き込まれたラスタデータをタイル画像単位で読み出す読出工程と、
前記読出工程において読み出されたタイル画像に所定の画像処理を施す画像処理工程とを有し、
前記読出工程は、各タイル画像の読み出し開始時において、所定のライン数分の画像データを前記外部メモリから連続して読み出すことを特徴とするメモリ制御方法。
【請求項１３】
入力した画像データに変倍処理を施す画像処理装置のメモリ制御方法であって、
入力した画像データを外部メモリにタイル画像単位で書き込む書込工程と、
前記外部メモリに書き込まれたタイル画像を読み出す読出工程と、
前記読出工程において読み出されたタイル画像を変倍処理する変倍工程と、
指定された垂直方向の変倍率がｎ（ｎ＜１）である場合、前記外部メモリにおいて管理すべき垂直方向のタイル画像数を少なくとも（１／ｎ）＋２個とし、前記読出工程及び前記書込工程における前記外部メモリへのアクセスに関する排他制御を行う排他制御工程と、
を有することを特徴とするメモリ制御方法。
【請求項１４】
入力した画像データに変倍処理を施す画像処理装置の変倍処理方法であって、
入力した画像データを外部メモリにタイル画像単位で書き込む書込工程と、
前記外部メモリに書き込まれたタイル画像を読み出す読出工程と、
前記読出工程において読み出されたタイル画像を変倍処理する変倍工程と、
前記変倍工程において変倍処理された画像データのバッファへの格納及び読み出しを制御する格納制御工程とを有し、
前記変倍工程は、水平方向に連続した複数個のタイル画像を一括して変倍処理し、前記格納制御工程は、変倍処理された画像データを前記バッファに格納し、前記バッファに格納した画像データをタイル画像単位に読み出して出力することを特徴とする変倍処理方法。
【請求項１５】
入力した画像データを画像処理して出力する画像入出力装置の変倍処理方法であって、
前記入力した画像データを所定の分割画像に分割し、前記分割画像に属性情報を付加してデータパケットを生成する生成工程と、
前記データパケットの分割画像を変倍処理し、変倍処理された分割画像からデータパケットを再構成する変倍処理工程と、
前記変倍処理工程は、前記ヘッダに含まれる位置情報に基づいて、前記データパケットの画像データを外部メモリに前記分割画像単位で書き込み、前記外部メモリに書き込まれた前記分割画像を読み出し、読み出された前記分割画像を変倍処理することを特徴とする変倍処理方法。
【請求項１６】
入力した画像データを画像処理して出力するＩＣチップとメモリユニットとを備える画像入出力装置の変倍処理方法であって、
前記ＩＣチップにおいて、入力した画像データを、所定の分割画像の単位で画像処理して出力する画像処理工程と、
前記画像処理工程における処理のために前記メモリユニットにアクセスするメモリアクセス工程とを有し、
前記入力した画像データを変倍処理する場合、前記メモリアクセス工程は、変倍率に応じて前記メモリユニットを前記分割画像単位で確保し、前記画像処理工程は、変倍処理を実行することを特徴とする画像入出力装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力した画像データに画像処理、特に変倍処理を施すための画像処理装置、画像入出力装置、変倍処理方法、及びメモリ制御方法に関する。
【０００２】
【従来の技術】
画像の変倍処理は、デジタル複写機等の画像入出力装置や、パーソナルコンピュータ等の情報処理装置において、非常に重要な機能となっている。特に画像入出力装置においては、頻繁に用いられる機能であり、通常、専用の変倍回路が設けられている。
【０００３】
従来の変倍回路の動作概略を図３４に示す。図３４において、３４０１は変倍回路を示し、３４０２は変倍される原画像（入力画像）全体を、３４０３は変倍後の出力画像全体を示している。また、３４０４は変倍前、３４０５は変倍後の画像の各画素を示している。各画像の内部に示された各番号は変倍回路３４０１に入力或いは出力される順番を示す。
【０００４】
図３５は、従来の変倍回路３４０１の詳細な構成を示すブロック図である。図３５において、３５０１はラインバッファ、３５０２は垂直フィルタ、３５０３はシフトレジスタ、３５０４は水平フィルタである。水平及び垂直フィルタの詳細な構成については図３６に示す。
【０００５】
図３４に示す従来の変倍回路３４０１は、１枚の画像における画像データ（ピクセルデータ）をスキャン順に受け取って、変倍結果をスキャン順に出力する。この変倍回路３４０１の内部における処理について図３５を用いて説明する。まず、外部から変倍回路３４０１に入力されたピクセルデータは、ラインバッファ３５０１に蓄積される。そして、垂直フィルタ３５０２は水平方向に一致した位置でかつ垂直方向が１ラインずつシフトさせた複数の画像データ（図３５では８ライン分）のフィルタ処理を行う。垂直方向のフィルタ処理を行った後、その結果の画像データは水平方向の変倍処理を行うべくシフトレジスタ３５０３に入力され、垂直方向と同様に画像データ（図３５では８画素）フィルタ処理が行われる。
【０００６】
図３６は、フィルタ処理回路の動作を示す図である。図３６において、３６０１はフィルタ係数発生回路、３６０２は乗算回路、３６０３は加算回路である。ここで、フィルタ係数発生回路３６０１からフィルタ係数が出力され、一方で、垂直或いは水平方向に連続した画像データが、ラインバッファ３５０１或いはシフトレジスタ３５０３から入力される。そして、画像データの各々の画素と、その画素に対応するフィルタ係数との掛け算を乗算回路３６０２で行った後、すべての演算結果が加算回路３６０３で加算されて出力される。以上が従来の変倍処理の構成である。
【０００７】
ところで、特開平２００２−８００２号公報に開示されるように、各処理ブロックがタイル単位で画像処理を行う画像入出力装置が本出願人より提案されている。この画像入出力装置の画像処理部の構成はＩＣチップ化に適しており、その処理ブロックの一つとして変倍回路を備えることができる。
【０００８】
【発明が解決しようとする課題】
しかしながら、昨今の取り扱う画像サイズの巨大化に伴い、上記従来例のような変倍回路では、変倍処理に必要なバッファが非常に大きなものとなる。図３５の回路の場合、ラインバッファは８ライン分必要なので、例えばＡ４、６００ｄｐｉの原画像の場合、約７０００画素分のバッファが必要となる。
【０００９】
そして、特に上述したタイル単位で画像データを管理する画像入出力装置に変倍回路を実装する場合、従来の変倍回路では、１つのチップ内に変倍回路を組み込もうとしても、ラインバッファも巨大なものとなるので、ＩＣ化に際しては現実的ではなかった。
【００１０】
また、変倍回路を含むＩＣチップにラインバッファを持たず、管理可能なチップ外部のメモリをラインバッファの代わりとして利用する装置構成も考えられるが、この構成のみでは、外部メモリへのアクセスが集中し、変倍回路の処理速度が制限されることがある。
【００１１】
本発明は上述した問題点を解決するためのものであり、少ないメモリ容量でタイル単位に変倍処理を行える画像処理装置及び画像処理装置の変倍処理方法を提供することを目的とする。
【００１２】
また、外部メモリを用いた画像処理、特に変倍処理を行う際の処理速度を向上させた画像処理装置及び画像処理装置のメモリ制御方法を提供することを目的とする。
【００１３】
また、簡単な構成で変倍処理と画像データの書き込み処理を行う際のメモリ管理を容易に効率よく行える画像処理装置及び画像処理装置のメモリ制御方法を提供することを目的とする。
【００１４】
また、回路のクロック速度を上げることなく、変倍処理を行う際の処理速度を向上させた画像処理装置及び画像処理装置の変倍処理方法を提供することを目的とする。
【００１５】
また、外部メモリを用いた変倍処理におけるデータ管理を容易にした画像入出力装置及び画像入出力装置の変倍処理法を提供することを目的とする。
【００１６】
また、ＩＣチップ内の回路構成にはほとんど影響を与えることなく、様々な変倍率や画像サイズに対応した変倍処理を可能とした画像入出力装置及び画像入出力装置の変倍処理法を提供することを目的とする。
【００１７】
【課題を解決するための手段】
上記目的を達成するために、本発明の画像処理装置は、入力した画像データに変倍処理を施す画像処理装置であって、入力した画像データを外部メモリにタイル画像単位で書き込む書込手段と、前記外部メモリに書き込まれたタイル画像を読み出す読出手段と、前記読出手段により読み出されたタイル画像を変倍処理する変倍手段と、を有することを特徴とする。
【００１８】
また、本発明の画像処理装置は、入力した画像データに画像処理を施す画像処理装置であって、入力した画像データを外部メモリにラスタ展開する展開手段と、前記外部メモリに書き込まれたラスタデータをタイル画像単位で読み出す読出手段と、前記読出手段により読み出されたタイル画像に所定の画像処理を施す画像処理手段とを有し、前記読出手段は、各タイル画像の読み出し開始時において、所定のライン数分の画像データを前記外部メモリから連続して読み出すことを特徴とする。
【００１９】
また、本発明の画像処理装置は、入力した画像データに変倍処理を施す画像処理装置であって、入力した画像データを外部メモリにタイル画像単位で書き込む書込手段と、前記外部メモリに書き込まれたタイル画像を読み出す読出手段と、前記読出手段により読み出されたタイル画像を変倍処理する変倍手段と、指定された垂直方向の変倍率がｎ（ｎ＜１）である場合、前記外部メモリにおいて管理すべき垂直方向のタイル画像数を少なくとも（１／ｎ）＋２個とし、前記読出手段及び前記書込手段による前記外部メモリへのアクセスに関する排他制御を行う排他制御手段と、を有することを特徴とする。
【００２０】
また、本発明の画像処理装置は、入力した画像データに変倍処理を施す画像処理装置であって、入力した画像データを外部メモリにタイル画像単位で書き込む書込手段と、前記外部メモリに書き込まれたタイル画像を読み出す読出手段と、前記読出手段により読み出されたタイル画像を変倍処理する変倍手段と、前記変倍手段により変倍処理された画像データを格納する格納手段と、前記格納手段の制御を行う格納制御手段とを有し、前記変倍手段は、水平方向に連続した複数個のタイル画像を一括して変倍処理し、前記格納制御手段は、変倍処理された画像データを前記格納手段に格納し、前記格納手段に格納した画像データをタイル画像単位に読み出して出力することを特徴とする。
【００２１】
また、本発明の画像入出力装置は、入力した画像データを画像処理して出力する画像入出力装置であって、前記入力した画像データを所定の分割画像に分割し、前記分割画像に属性情報を付加してデータパケットを生成する生成手段と、前記データパケットを入力して分割画像を変倍処理し、変倍処理された分割画像からデータパケットを再構成して出力する変倍処理手段とを有し、前記変倍処理手段は、前記ヘッダに含まれる位置情報に基づいて、入力したデータパケットの画像データを外部メモリに前記分割画像単位で書き込み、前記外部メモリに書き込まれた前記分割画像を読み出し、読み出された前記分割画像を変倍処理することを特徴とする。
【００２２】
また、本発明の画像入出力装置は、入力した画像データを画像処理して出力する画像入出力装置であって、前記入力した画像データを、所定の分割画像の単位で画像処理して出力するＩＣチップと、前記ＩＣチップによる画像処理のためにアクセスされるメモリユニットとを有し、前記入力した画像データを変倍処理する場合、前記ＩＣチップは、変倍率に応じて前記メモリユニットを前記分割画像単位で確保し、前記メモリユニットの分割画像に基づいて変倍処理を実行することを特徴とする。
【００２３】
また、本発明の変倍処理方法は、入力した画像データに変倍処理を施す画像処理装置の変倍処理方法であって、入力した画像データを外部メモリにタイル画像単位で書き込む書込工程と、前記外部メモリに書き込まれたタイル画像を読み出す読出工程と、前記読出工程において読み出されたタイル画像を変倍処理する変倍工程と、を有することを特徴とする。
【００２４】
また、本発明のメモリ制御方法は、入力した画像データに画像処理を施す画像処理装置のメモリ制御方法であって、入力した画像データを外部メモリにラスタ展開する展開工程と、前記外部メモリに書き込まれたラスタデータをタイル画像単位で読み出す読出工程と、前記読出工程において読み出されたタイル画像に所定の画像処理を施す画像処理工程とを有し、前記読出工程は、各タイル画像の読み出し開始時において、所定のライン数分の画像データを前記外部メモリから連続して読み出すことを特徴とする。
【００２５】
また、本発明のメモリ制御方法は、入力した画像データに変倍処理を施す画像処理装置のメモリ制御方法であって、入力した画像データを外部メモリにタイル画像単位で書き込む書込工程と、前記外部メモリに書き込まれたタイル画像を読み出す読出工程と、前記読出工程において読み出されたタイル画像を変倍処理する変倍工程と、指定された垂直方向の変倍率がｎ（ｎ＜１）である場合、前記外部メモリにおいて管理すべき垂直方向のタイル画像数を少なくとも（１／ｎ）＋２個とし、前記読出工程及び前記書込工程における前記外部メモリへのアクセスに関する排他制御を行う排他制御工程と、を有することを特徴とする。
【００２６】
また、本発明の変倍処理方法は、入力した画像データに変倍処理を施す画像処理装置の変倍処理方法であって、入力した画像データを外部メモリにタイル画像単位で書き込む書込工程と、前記外部メモリに書き込まれたタイル画像を読み出す読出工程と、前記読出工程において読み出されたタイル画像を変倍処理する変倍工程と、前記変倍工程において変倍処理された画像データのバッファへの格納及び読み出しを制御する格納制御工程とを有し、前記変倍工程は、水平方向に連続した複数個のタイル画像を一括して変倍処理し、前記格納制御工程は、変倍処理された画像データを前記バッファに格納し、前記バッファに格納した画像データをタイル画像単位に読み出して出力することを特徴とする。
【００２７】
また、本発明の変倍処理方法は、入力した画像データを画像処理して出力する画像入出力装置の変倍処理方法であって、前記入力した画像データを所定の分割画像に分割し、前記分割画像に属性情報を付加してデータパケットを生成する生成工程と、前記データパケットの分割画像を変倍処理し、変倍処理された分割画像からデータパケットを再構成する変倍処理工程と、前記変倍処理工程は、前記ヘッダに含まれる位置情報に基づいて、前記データパケットの画像データを外部メモリに前記分割画像単位で書き込み、前記外部メモリに書き込まれた前記分割画像を読み出し、読み出された前記分割画像を変倍処理することを特徴とする。
【００２８】
また、本発明の変倍処理方法は、入力した画像データを画像処理して出力するＩＣチップとメモリユニットとを備える画像入出力装置の変倍処理方法であって、前記ＩＣチップにおいて、入力した画像データを、所定の分割画像の単位で画像処理して出力する画像処理工程と、前記画像処理工程における処理のために前記メモリユニットにアクセスするメモリアクセス工程とを有し、前記入力した画像データを変倍処理する場合、前記メモリアクセス工程は、変倍率に応じて前記メモリユニットを前記分割画像単位で確保し、前記画像処理工程は、変倍処理を実行することを特徴とする。
【００２９】
【発明の実施の形態】
以下、図面を参照しながら本発明に係る実施の形態を詳細に説明する。
【００３０】
（第１の実施形態）
まず、１枚の画像を複数のタイルに分割し、タイル単位で画像データを授受し管理する画像入出力装置の構成及び動作について説明する。この画像入出力装置は、一般にデジタル複写機と呼ばれるものであり、本発明に係る変倍処理を実行することができる。
【００３１】
［画像入出力装置の構成］
図１は、本発明を適用可能な画像入出力装置（デジタル複写機）の構成を説明するブロック図である。図２は、図１に示すシステム制御部の構成を説明する詳細ブロック図であり、図３は、図１に示す画像処理部の構成を説明する詳細ブロック図である。
【００３２】
図１〜図３において、ＣｏｎｔｒｏｌｌｅｒＵｎｉｔ２０００は画像入力デバイスであるスキャナ２０７０や画像出力デバイスであるプリンタ２０９５と接続し、一方ではＬＡＮ２０１１や公衆回線（ＷＡＮ）２０５１と接続することで、画像情報やデバイス情報の入出力、ＰＤＬデータのイメージ展開を行う為のコントローラである。
【００３３】
図２において、ＣＰＵ２００１はシステム全体を制御するプロセッサである。本実施形態では２つのＣＰＵを用いた例を示す。これら二つのＣＰＵは、共通のＣＰＵバス２１２６に接続され、さらに、システムバスブリッジ２００７に接続される。
【００３４】
システムバスブリッジ２００７は、バススイッチであり、ＣＰＵバス２１２６、ＲＡＭコントローラ２１２４、ＲＯＭコントローラ２１２５、ＩＯバス２１２７、サブバススイッチ２１２８、ＩＯバス２１２９、画像リングインタフェース（１）２１４７、画像リングインタフェース（２）２１４８が接続される。
【００３５】
サブバススイッチ２１２８は、第二のバススイッチであり、画像ＤＭＡ（１）２１３０、画像ＤＭＡ（２）２１３２、フォント伸張部２１３４、ソート回路２１３５、ビットマップトレース部２１３６が接続され、これらのＤＭＡから出力されるメモリアクセス要求を調停し、システムバスブリッジへの接続を行う。
【００３６】
図１において、ＲＡＭ２００２は、ＣＰＵ２００１が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＡＭ２００２は、図２のＲＡＭコントローラ２１２４により制御され、本実施形態では、ダイレクトＲＤＲＡＭを採用する例を示す。
【００３７】
ＲＯＭ２００３はブートＲＯＭであり、システムのブートプログラムが格納されている。ＲＯＭ２００３は、図２のＲＯＭコントローラ２１２５により制御される。
【００３８】
図２において、画像ＤＭＡ（１）２１３０は、画像圧縮部２１３１に接続し、レジスタアクセスリング２１３７を介して設定された情報に基づき、画像圧縮部２１３１を制御し、ＲＡＭ２００２上にある非圧縮データの読み出し、圧縮、圧縮後データの書き戻しを行う。本実施形態では、ＪＰＥＧを圧縮アルゴリズムに採用した例を示す。
【００３９】
画像ＤＭＡ（２）２１３２は、画像伸長部２１３３に接続し、レジスタアクセスリング２１３７を介して設定された情報に基づき、画像伸長部２１３３を制御し、ＲＡＭ２００２上にある圧縮データの読み出し、伸長、伸長後データの書き戻しを行う。本実施形態では、ＪＰＥＧを伸長アルゴリズムに採用した例を示す。
【００４０】
フォント伸長部２１３４は、ＬＡＮインタフェース２０１０等を介し外部より転送されるＰＤＬデータに含まれるフォントコードに基づき、ＲＯＭ２００３もしくは、ＲＡＭ２００２内に格納された、圧縮フォントデータの伸長を行う。本実施形態では、ＦＢＥアルゴリズムを採用した例を示す。
【００４１】
ソート回路２１３５は、ＰＤＬデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える回路である。ビットマップトレース回路２１３６は、ビットマップデータより、エッジ情報を抽出する回路である。
【００４２】
ＩＯバス２１２７は、内部ＩＯバスの一種であり、標準バスであるＵＳＢバスのコントローラ、ＵＳＢインタフェース２１３８、汎用シリアルポート２１３９、インタラプトコントローラ２１４０、ＧＰＩＯインタフェース２１４１が接続される。ＩＯバス２１２７には、バスアービタ（図示せず）が含まれる。
【００４３】
操作部Ｉ／Ｆ２００６は、図１の操作部（ＵＩ）２０１２のインタフェース部で、操作部２０１２に表示する画像データを操作部２０１２に対して出力する。また、操作部２０１２から本システム使用者が入力した情報を、ＣＰＵ２００１に伝える役割をする。
【００４４】
ＩＯバス２１２９は内部ＩＯバスの一種であり、汎用バスインタフェース（１，２）２１４２と、ＬＡＮコントローラ２０１０が接続される。ＩＯバス２１２９にはバスアービタ（図示せず）が含まれる。
【００４５】
汎用バスインタフェース（１，２）２１４２は、２つの同一のバスインタフェースから成り、標準ＩＯバスをサポートするバスブリッジである。本実施形態では、ＰＣＩバス２１４３，２１５３を採用した例を示す。
【００４６】
図１において、２００４はハードディスクドライブ（ＨＤＤ）で、システムソフトウェア、画像データを格納する。ＨＤＤ２００４は、ディスクコントローラ２１４４を介して一方のＰＣＩバス２１５３に接続される。
【００４７】
図２のＬＡＮコントローラ２０１０は、ＭＡＣ回路２１４５、ＰＨＹ／ＰＭＤ回路２１４６を介しＬＡＮ２０１１に接続し、情報の入出力を行う。Ｍｏｄｅｍ２０５０は公衆回線２０５１に接続し、情報の入出力を行う。
【００４８】
図２において、画像リングインタフェース（１）２１４７及び画像リングインタフェース（２）２１４８は、システムバスブリッジ２００７と画像データを高速で転送する画像リング２００８を接続し、タイル化後に圧縮されたデータをＲＡＭ２００２とタイル画像処理部２１４９間で転送するＤＭＡコントローラである。
【００４９】
画像リング２００８は、一対の単方向接続経路の組み合わせにより構成される。図３に示すように、画像リング２００８は、タイル画像処理部２１４９内で、画像リングインタフェース（３）２１０１及び画像リングインタフェース（４）２１０２を介し、タイル伸長部（１，２）２１０３、コマンド処理部２１０４、ステータス処理部２１０５、タイル圧縮部（１−３）２１０６に接続される。本実施形態では、タイル伸長部２１０３を２組、タイル圧縮部２１０６を３組実装する例を示す。
【００５０】
タイル伸長部（１，２）２１０３は、画像リングインタフェース（３）２１０１への接続に加え、タイルバス２１０７に接続され、画像リングより入力された圧縮後の画像データを伸長し、タイルバス２１０７へ転送するバスブリッジである。本実施形態では、ＪＰＥＧ及びパックビッツ方式による伸長アルゴリズムを採用した例を示す。
【００５１】
タイル圧縮部（１−３）２１０６は、画像リングインタフェース（４）２１０２への接続に加え、タイルバス２１０７に接続され、タイルバス２１０７より入力された圧縮前の画像データを圧縮し、画像リング２００８へ転送するバスブリッジである。本実施形態では、タイル伸長部と同じ様にＪＰＥＧ及びパックビッツ方式による圧縮アルゴリズムを採用した例を示す。
【００５２】
コマンド処理部２１０４は、画像リングインタフェースへの接続に加え、レジスタ設定バス２１０９に接続され、画像リングを介して入力したＣＰＵ２００１より発行されたレジスタ設定要求を、レジスタ設定バス２１０９に接続される該当ブロックへ書き込む。また、ＣＰＵ２００１より発行されたレジスタ読み出し要求に基づき、レジスタ設定バスを介して該当レジスタより情報を読み出し、画像リングインタフェース２１０２に転送する。
【００５３】
ステータス処理部２１０５は、各画像処理部の情報を監視し、ＣＰＵ２００１に対してインタラプトを発行するためのインタラプトパケットを生成し、画像リングインタフェース２１０２に出力する。タイルバス２１０７には上記ブロックに加え、以下の機能ブロックが接続される。
【００５４】
レンダリング部インタフェース２１１０、画像入力インタフェース２１１２、画像出力インタフェース２１１３、多値化部２１１９、２値化部２１１８、色空間変換部２１１７、画像回転部２０３０、変倍処理部２１１６、レンダリング部インターフェース２１１０。
【００５５】
レンダリング部インターフェース２１１０は、後述するレンダリング部２０６０により生成されたビットマップイメージを入力するインタフェースとして機能をする。レンダリング部２０６０とレンダリング部インタフェース２１１０は、一般的なビデオ信号２１１１にて接続される。レンダリング部インタフェース２１１０は、タイルバス２１０７に加え、メモリバス２１０８、レジスタ設定バス２１０９へ接続される。そして、レンダリング部インタフェース２１１０は、レジスタ設定バス２１０９を介して設定された所定の方法により、入力されたラスタ画像をタイル画像へ構造変換するとともにクロックの同期化を行い、タイルバス２１０７に対しタイル画像の出力を行う。
【００５６】
画像入力インタフェース２１１２は、後述するスキャナ用画像処理部２１１４により補正画像処理されたラスタイメージデータを入力する。そして、画像入力インタフェース２１１２は、レジスタ設定バス２１０９を介して設定された所定の方法により、入力したラスタイメージデータをタイル画像へ構造変換するとともにクロックの同期化を行い、タイルバス２１０７に対しタイル画像の出力を行う。
【００５７】
画像出力インタフェース２１１３は、タイルバスからのタイル画像データ（データパケット）を入力し、入力したタイル画像データをラスタ画像へ構造変換するとともにクロックレートの変更を行い、ラスタ画像をプリンタ用画像処理部２１１５へ出力する。
【００５８】
画像回転部２０３０は画像データの回転を行う。変倍処理（解像度変換）部２１１６は画像の変倍処理（解像度の変更）を行う。変倍部２１１６は、本実施形態における主要部であり、その詳細については後述する。色空間変換部２１１７はカラー及びグレースケール画像の色空間の変換を行う。２値化部２１１８は、多値（カラー、グレースケール）画像を２値化する。多値化部２１１９は２値画像を多値データへ変換する。
【００５９】
外部バスインタフェース部２１２０は、画像リングインタフェース（１）２１４７、（３）２１０１、コマンド処理部２１０４、レジスタ設定バス２１０９を介し、ＣＰＵ２００１により発行された、書き込み、読み出し要求を外部バス２１２１に変換出力するバスブリッジである。外部バス２１２１は本実施形態では、プリンタ用画像処理部２１１５、スキャナ用画像処理部２１１４に接続されている。
【００６０】
メモリ制御部２１２２は、メモリバス２１０８に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ（１，２）２１２３に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施形態では、画像メモリにＳＤＲＡＭを用いた例を示す。
【００６１】
図１において、スキャナ用画像処理部２１１４は、画像入力デバイスであるスキャナ２０７０によりスキャンされた画像データを補正画像処理する。
【００６２】
プリンタ用画像処理部２１１５では、プリンタ出力のための補正画像処理を行い、結果をプリンタ２０９５へ出力する。レンダリング部２０６０はＰＤＬコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【００６３】
［画像入出力装置のユニット構成］
図１の画像入出力装置のＣｏｎｔｏｒｏｌｌｅｒ　Ｕｎｉｔ２０００は、１つのコントローラボードに構成されている。そして、システム制御部２１５０、及び画像処理部２１４９は、このボード上にそれぞれＩＣチップとして実装されている。この２つのＩＣチップ間のデータ転送は、画像リングを介して、後述の各パケットにより行なわれる。
【００６４】
また、画像メモリ（１，２）２１２３は、画像処理部２１４９の外部メモリとして、同じくコントローラボード上に独立して設けられている。本実施形態において、このメモリは、ボード上のメモリスロットに対して着脱可能なカードの形態を有しており、必要に応じて異なる容量の別のメモリに差し替えることもできる。なお、画像メモリ２１２３は、カードの形態に限らず、コントローラボードに直接埋め込まれるＩＣチップの形態を有していてもよい。
【００６５】
［ネットワークシステムの構成］
図４は、図１の画像入出力装置（デジタル複写機）を含むネットワークシステム全体の構成を説明する図である。
【００６６】
図４において、１００１は図１の画像入出力装置であり、スキャナとプリンタから構成され、スキャナから読み込んだ画像をローカルエリアネットワーク（以下ＬＡＮ）１０１０に流したり、ＬＡＮから受信した画像をプリンタによりプリントアウトできる。また、スキャナから読み込んだ画像を図示しないＦＡＸ送信手段により、ＰＳＴＮまたはＩＳＤＮ１０３０に送信したり、ＰＳＴＮまたはＩＳＤＮから受信した画像をプリンタによりプリントアウトできる。１００２は、データベースサーバで、画像入出力装置１００１により読み込んだ２値画像及び多値画像をデータベースとして管理する。
【００６７】
１００３は前記データベースサーバ１００２のデータベースクライアントで、データベースサーバ１００２に保存されている画像データを閲覧／検索等できる。
【００６８】
１００４は電子メールサーバで、画像入出力装置１００１により読み取った画像を電子メールの添付として受け取ることができる。１００５は、電子メールクライアントで、電子メールサーバ１００４の受け取ったメールを受信し閲覧したり、電子メールを送信したりすることが可能である。
【００６９】
１００６はＨＴＭＬ文書をＬＡＮに提供するＷＷＷサーバで、画像入出力装置１００１によりＷＷＷサーバで提供されるＨＴＭＬ文書をプリントアウトできる。
【００７０】
１００７はルータで、ＬＡＮ１０１０をインターネット／イントラネット１０１２と連結する。インターネット／イントラネットに、前述したデータベースサーバ１００２、ＷＷＷサーバ１００６、電子メールサーバ１００４、画像入出力装置１００１と同様の装置が、それぞれ１０２０、１０２１、１０２２、１０２３として連結している。
【００７１】
一方、画像入出力装置１００１は、ＰＳＴＮまたはＩＳＤＮ１０３０を介して、ＦＡＸ装置１０３１と送受信可能になっている。
【００７２】
また、ＬＡＮ上にプリンタ１０４０も連結されており、画像入出力装置１００１により読み取った画像をプリントアウト可能なように構成されている。
【００７３】
［パケット構成］
次に、本実施形態における画像データ処理に用いられるパケットのフォーマットについて説明する。本実施形態におけるＣｏｎｔｒｏｌｌｅｒＵｎｉｔ２０００は、画像データ、ＣＰＵ２００１によるコマンド、及び各画像処理部（２１１６，２１１７，２１１８，２１１９，２０３０）より発行される割り込み情報を、パケット化された形式で転送する。パケットデータには、以下の種類がある。
【００７４】
（１）データパケット（図５）
図５に示すデータパケットは所定画素数（本実施形態では３２ｐｉｘｅｌ×３２ｐｉｘｅｌとする）で分割したタイル単位の画像データ３００２と、後述する制御情報を格納するヘッダ情報３００１と画像付加情報等３００３とから構成される。
【００７５】
以下、ヘッダ情報３００１内に含まれる情報について説明を行う。
【００７６】
ＰｃｋｔＴｙｐｅ３００４はパケット・タイプを識別する。このＰｃｋｔＴｙｐｅ３００４にはリピートフラグが含まれており、画像データ３００２が１つ前に送信したデータパケットの画像データと同一の場合、リピートフラグがセットされる。
【００７７】
ＣｈｉｐＩＤ３００５はパケットの送信先のＣｈｉｐを示す。ＩｍａｇｅＴｙｐｅ３００６は画像データのタイプを示す。ＰａｇｅＩＤ３００７は画像データのページ番号を示す。ＪｏｂＩＤ３００８はソフトウェアで画像処理を管理するためのジョブＩＤを格納する。ＰａｃｋｅｔＩＤＹ３００９及びＰａｃｋｅｔＩＤＸ３０１０は、パケットに含まれる（又は指定される）画像データが、画像全体においてどの位置におけるタイルに相当するかを示す。ここでタイル位置はＹ方向（ＰａｃｋｅｔＩＤＹ３００９）とＸ方向（ＰａｃｋｅｔＩＤＸ３０１０）を組み合わせ、ＹｎＸｎで表される。
【００７８】
データパケットは画像データが圧縮されている場合と非圧縮の場合とがある。本実施形態では、圧縮アルゴリズムとして、多値カラー（多値グレースケールを含む）の場合はＪＰＥＧを、２値の場合はパックビッツを採用した例を示した。圧縮されている場合と非圧縮の場合との区別は、後述するＣｏｍｐｒｅｓｓＦｌａｇ３０１７で示される。
【００７９】
Ｐｒｏｃｅｓｓ　Ｉｎｓｔｒｕｃｔｉｏｎ３０１１は５ビットのＵｎｉｔＩＤ３０１９と３ビットのＭｏｄｅ３０２０との組である処理Ｕｎｉｔ１−８から構成され、各処理Ｕｎｉｔは左（下位）から順番に処理される。処理されたＵｎｉｔＩＤ及びＭｏｄｅは廃棄され、次に処理されるＵｎｉｔＩＤ及びＭｏｄｅが左端に位置するように、Ｐｒｏｃｅｓｓ　Ｉｎｓｔｒｕｃｔｉｏｎ全体が左に８ビットシフトされる。Ｐｒｏｃｅｓｓ　Ｉｎｓｔｒｕｃｔｉｏｎ３０１１にはＵｎｉｔＩＤ３０１９とＭｏｄｅ３０２０との組が最大８組格納される。ＵｎｉｔＩＤ３０１９は各画像データ処理部を指定し、Ｍｏｄｅ３０２０は各画像データ処理部での動作モードを指定する。これにより、１つの画像データパケットに含まれる（又は指定される）画像データに対して、最大でのべ８つの画像データ処理部による連続処理を指定することが可能である。
【００８０】
ＰａｃｋｅｔＢｙｔｅＬｅｎｇｔｈ３０１２はパケットのトータルバイト数を示す。ＩｍａｇｅＤａｔａＢｙｔｅＬｅｎｇｈ３０１５は画像データのバイト数を示す。ＺＤａｔａＢｙｔｅＬｅｎｇｔｈ３０１６は画像付加情報のバイト数を示す。ＩｍａｇｅＤａｔａＯｆｆｓｅｔ３０１３、ＺＤａｔａＯｆｆｓｅｔ３０１４はそれぞれ、画像データ及び画像付加情報の、パケットの先頭からのオフセットを示す。
【００８１】
（２）コマンドパケット（図６）
図６に示すコマンドパケットはレジスタ設定バス２１０９へのアクセスを行うためのものである。このパケットを用いることにより、ＣＰＵ２００１より画像メモリ（１，２）２１２３へのアクセスも可能である。また、コマンドパケットは、ヘッダ４００１及びコマンド（パケットデータ部）４００２から構成される。
【００８２】
このヘッダ４００１におけるＣｈｉｐＩＤ４００４には、コマンドパケットの送信先となる画像処理部２１４９を表すＩＤが格納される。
【００８３】
ＰａｇｅＩＤ４００７及びＪｏｂＩＤ４００８はそれぞれ、ソフトウェアで管理するためのＰａｇｅ　ＩＤ及びＪｏｂ　ＩＤを格納する。Ｐａｃｋｅｔ　ＩＤ４００９は１次元で表され、Ｄａｔａ　ＰａｃｋｅｔのＸ−ｃｏｏｒｄｉｎａｔｅのみを使用する。ＰａｃｋｅｔＢｙｔｅＬｅｎｇｔｈ４０１０は１２８Ｂｙｔｅ固定である。
【００８４】
一方、パケットデータ部４００２には、アドレス４０１１とデータ４０１２の組を１つのコマンドとして最大１２個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプはＣｍｄＴｙｐｅ４００５で示され、コマンドの数はＣｍｄｎｕｍ４００６で示される。
【００８５】
（３）インタラプトパケット（図７）
図７に示すインタラプトパケットはヘッダ５００１及びインタラプトデータ（パケットデータ部）５００２からなり、画像処理部２１４９からＣＰＵ２００１への割り込みを通知するために用いられる。
【００８６】
ステータス処理部２１０５はインタラプトパケットを送信すると、次に送信の許可がされるまではインタラプトパケットを送信してはならない。ＰａｃｋｅｔＢｙｔｅＬｅｎｇｔｈ５００６は１２８Ｂｙｔｅ固定である。
【００８７】
パケットデータ部５００２には、画像処理部２１４９の各々の内部モジュールのステータス情報５００７が格納されている。ステータス処理部２１０５は画像処理部２１４９内のモジュールのステータス情報を集め、一括してシステム制御部２１５０に送ることができる。
【００８８】
ＣｈｉｐＩＤ５００４には、インタラプトパケットの送信先となるシステム制御部２１５０を表すＩＤが格納される。また、ＩｎｔＣｈｉｐＩＤ５００５にはインタラプトパケットの送信元となる画像処理部２１４９を表すＩＤが格納される。
【００８９】
［パケットテーブルの構成］
上述した各パケットは、図８に示すようなパケットテーブル６００１によって管理される。このパケットテーブル６００１は画像データと対で使用され、画像データが図１に示すＲＡＭ２００２に展開されている場合は、ＲＡＭ２００２上で管理される。また、画像データが外部記憶装置２００４に格納される場合には、このパケットテーブル６００１も同時に外部記憶装置２００４に格納される。外部記憶装置２００４に格納された画像データが再びＲＡＭ２００２に展開される場合、同時にこのパケットテーブル６００１もＲＡＭ２００２に読み出され、画像データが展開されるアドレス情報に応じてアドレス情報の書き換えが行われる。
【００９０】
パケットテーブル６００１の値（ポインタ及び長さ）に０を５ｂｉｔ付加すると、パケットの先頭Ａｄｄｒｅｓｓ（Ｐａｃｋｅｔ　Ｓｔａｒｔ　Ａｄｄｒｅｓｓ）６００２、パケットのバイト長（Ｐａｃｋｅｔ　Ｂｙｔｅ　Ｌｅｎｇｔｈ）６００５となる。即ち、
Ｐａｃｋｅｔ　Ａｄｄｒｅｓｓ　Ｐｏｉｎｔｅｒ　（２７ｂｉｔ）　＋　５ｂ０００００　＝　Ｐａｃｋｅｔ先頭Ａｄｄｒｅｓｓ
ＰａｃｋｅｔＬｅｎｇｔｈ　（１１ｂｉｔ）　＋　５ｂ０００００　＝　Ｐａｃｋｅｔ　Ｂｙｔｅ　Ｌｅｎｇｔｈ
となる。
【００９１】
尚、パケットテーブル６００１とチェーンテーブル（Ｃｈａｉｎ　Ｔａｂｌｅ）６０１０とは分割されないものとする。
【００９２】
パケットテーブル６００１は、常に走査方向に並んでおり、Ｙｎ／Ｘｎ＝０００／０００，０００／００１，０００／００２，…という順に並んでいる。このパケットテーブル６００１のエントリは一意に１つのタイルを示す。また、Ｙｎ／Ｘｍａｘの次のエントリはＹｎ＋１／Ｘ０となる。
【００９３】
ここで、パケットがひとつ前のパケットとまったく同じデータである場合は、そのパケットはメモリ上に格納されず、パケットテーブル６００１のエントリに１つ前のエントリと同じＰａｃｋｅｔ　Ａｄｄｒｅｓｓ　Ｐｏｉｎｔｅｒ、Ｐａｃｋｅｔ　Ｌｅｎｇｔｈを格納する。
【００９４】
つまり、１つのパケットデータを２つのテーブルエントリが指すようなかたちになる。この場合、２つ目のテーブルエントリのＲｅｐｅａｔ　Ｆｌａｇ６００３がセットされる。
【００９５】
また、パケットがチェーンＤＭＡにより複数に分断された場合、ＤｉｖｉｄｅＦｌａｇ６００４をセットし、そのパケットの先頭部分が入っているチェーンブロックのチェーンテーブル番号６００６をセットする。
【００９６】
チェーンテーブル６０１０のエントリはＣｈａｉｎ　Ｂｌｏｃｋ　Ａｄｄｒｅｓｓ６０１１とＣｈａｉｎ　Ｂｌｏｃｋ　Ｌｅｎｇｔｈ６０１２とから構成され、チェーンテーブルの最後のエントリにはＣｈａｉｎ　Ｂｌｏｃｋ　Ａｄｄｒｅｓｓ６０１１、Ｃｈａｉｎ　Ｂｌｏｃｋ　Ｌｅｎｇｔｈ６０１２共に０を格納しておく。
【００９７】
［データパケットによる画像入力処理］
次に、スキャナ２０７０で読み取った画像データをタイル画像に分割し、タイル画像からデータパケットを生成し、ＲＡＭ２００２に格納する画像入力処理について説明する。
【００９８】
図９は、画像入力処理に関連するブロック間のデータの経路と処理手順を示す図である。以下では、図１−３に示したブロック図に加えて、この図９を参照しながら説明する。
【００９９】
まず、スキャナ２０７０において画像の読み取りが行われると、読み取られた画像データはラスタデータとして順次スキャナ用画像処理部２１１４に転送される。スキャナ用画像処理部２１１４はラスタデータの順に必要な画像処理を行い、処理された画像データを画像入力インタフェース２１１２に転送する。画像入力インタフェース２１１２はラスタデータの順に転送されてくる画像データを、メモリバス２１０８を介してメモリ制御部２１２２に転送する。
【０１００】
メモリ制御部２１２２は画像メモリ（１）２１２３にラスタの形式で展開していく。この画像メモリ（１）２１２３は最小容量としてラスタデータ３２ライン分で構成されている。３２ライン分の画像データが画像メモリ（１）２１２３に展開されると、画像入力インタフェース２１１２は３２ｐｉｘｅｌ×３２ラインのタイル画像の単位で読み出しを開始する。このタイル画像の読み出しはメモリ制御部２１２２、メモリバス２１０８を介して行われる。
【０１０１】
画像入力インタフェース２１１２は、生成されたタイル画像３００２にヘッダ３００１とＺデータ３００３を付加して、図３に示すフォーマットのデータパケットを生成する。ここで、Ｐｒｏｃｅｓｓ　ｉｎｓｔｒｕｃｔｉｏｎ３００１には、ＲＡＭ２００２に画像データを格納するための経路情報が記載される。
【０１０２】
次に、画像入力インタフェース２１１２は、タイルバス２１０７に対してタイル圧縮部（１）２１０６への接続を要求する。その後、画像入力インタフェース２１１２は、タイルバス２１０７によってタイル圧縮部（１）２１０６に接続されると、データパケットをタイル圧縮部（１）２１０６に転送する。
【０１０３】
タイル圧縮部（１）２１０６はデータパケットのタイル画像３００２をＪＰＥＧ圧縮し、ＪＰＥＧ圧縮されたデータパケットを画像リングインタフェース（４）２１０２に転送する。そして、画像リングインタフェース２１０２（４）は画像リング２００８を介して、システム制御部２１５０にデータパケットを転送する。システム制御部２１５０では、転送されてきたデータパケットをＲＡＭ２００２に格納する。
【０１０４】
このようにして、スキャナ２０７０で読み取った画像データからデータパケットが生成され、データ圧縮された後に、システム制御部２１５０のＲＡＭ２００２に格納される。
【０１０５】
スキャナ２０７０で読み取った原稿画像のタイル画像への分割例を図１０に示す。図１０に示すように、１ページの原稿が複数のタイルに分割され、タイル毎にタイル画像データが生成される。ここで、Ａ４サイズ（２１０×２９７ｍｍ）の原稿をスキャナ２０７０で６００×６００ｄｐｉの解像度で読み取ったとする。このとき、画像の画素数は、１インチが２５．４ｍｍであるとすると、縦４９６１画素×横７０１６画素となる。そして、３２×３２画素のタイルで分割したとすると、Ａ４サイズの原稿から３４３２０個のタイル画像データが生成される。
【０１０６】
［データパケットによる画像出力処理］
続いて、システム制御部２１５０のＲＡＭ２００２に格納されているデータパケットをもとにプリンタ２０９５でプリントする画像出力処理について説明する。
【０１０７】
図１１は、画像出力処理に関連するブロック間のデータの経路と処理手順を示している。以下の説明では、図１−３のブロック図に加え、この図１１を適宜参照されたい。
【０１０８】
まず、システム制御部２１５０から出力されたデータパケットは、画像リング２００８を介して、画像リングインタフェース（３）２１０１に入力される。なお、ここでＰｒｏｃｅｓｓ　Ｉｎｓｔｒｕｃｔｉｏｎ３０１１には、ＲＡＭ２００２の画像データをプリンタ２０９５で出力するための経路情報が記載されている。
【０１０９】
画像リングインタフェース２１０１（３）は、タイル伸張部（１）２１０３を選択して、画像タイルデータを転送する。このタイル伸張部（１）２１０３の選択は前記したパケットフォーマットのＰｒｏｃｅｓｓ　Ｉｎｓｔｒｕｃｔｉｏｎ３０１１に従って行われる。
【０１１０】
タイル伸張部（１）２１０３はデータパケットのタイル画像をＪＰＥＧ伸張して、非圧縮の画像データに変換する。次にタイル伸張部（１）２１０３はタイルバス２１０７に対して、画像出力インタフェース２１１３への接続要求を行う。その後、タイル伸張部（１）２１０３は、タイルバス２１０７によって画像出力インタフェース２１１３に接続されると、データパケットを画像出力インタフェース２１１３に転送する。
【０１１１】
データパケットを受け取った画像出力インタフェース２１１３は、メモリバス２１０８を介して、データパケットのタイル画像をメモリ制御部２１２２に転送する。メモリ制御部２１２２は、転送されてくるタイル画像を画像メモリ（２）２１２３に展開する。この展開はタイル単位で行うが、画像メモリ（２）２１２３の内部にはラスタデータの形式で行っていく。
【０１１２】
このラスタデータがプリンタ２０９５で出力する３２ライン分のラスタデータとして全て展開されると、画像出力インタフェース２１１３はラスタ順のデータ読み出しを開始する。このラスタデータの読み出しはメモリ制御部２１２２、メモリバス２１０８を介して行われる。ラスタ順にデータを読み出した画像出力インタフェース２１１３は、このデータをプリンタ用画像処理部２１１５に転送する。そして、ラスタデータを受け取ったプリンタ２０９５はラスタデータに基づいてプリントする。
【０１１３】
［画像入出力装置の複合処理］
本実施形態では、上述した画像入力処理と画像出力処理を組み合わせることによって、スキャナ２０７０とプリンタ２０９５を用いた複写処理を行うことができる。
【０１１４】
また、上記画像入力処理を実行後、ＲＡＭ２００２のデータパケットを外部記憶装置２００４に格納することで、画像のファイリング処理を行うことができる。
【０１１５】
また、ＲＡＭ２００２のデータパケットを所定のフォーマットに変換してＬＡＮや公衆回線へ出力することにより、メール添付送信等、所定のプロトコルに従う画像送信処理やファクシミリ送信処理を行うことが可能である。
【０１１６】
また、上記画像出力処理において、外部装置からの受信データに基づきレンダリング処理を行うレンダリング部２０６０からタイル画像を入力することにより、プリント処理を行うことができる。
【０１１７】
また、ＲＡＭ２００２のデータパケットを画像処理部２１４９において処理した後、再びＲＡＭ２００２に格納するといった画像処理も可能であり、必要に応じて、この処理経路をとる画像処理と上記各処理と組み合わせて実行することもできる。
【０１１８】
以上、本実施形態の画像入出力装置で実行できる主な処理を述べたが、データパケットで画像処理を行う構成により、画像処理部２１４９内の各処理ブロックはタイル単位で確保される。したがって、画像処理部２１４９には、複数の処理に関する画像データを混在させることができる。すなわち、本実施形態の画像入出力装置は、複数の画像データに関する画像処理を並行に実行することができるものである。
【０１１９】
［データパケットによる変倍処理］
次に、本実施形態におけるデータパケットによる変倍処理について詳細に説明する。
【０１２０】
以下では、ＲＡＭ２００２に格納されたデータパケット（タイル画像）を変倍処理部２１１６において１５０％伸張し、再びＲＡＭ２００２に格納する、という処理を例にとって説明する。
【０１２１】
図１２は、データパケットの変倍処理に関連するブロック間のデータの経路と処理手順を示す図である。以下では、図１−３に示したブロック図に加えて、この図１２を参照しながら説明する。
【０１２２】
まず、システム制御部２１５０はＲＡＭ２００２からデータパケットを読み出し、読み出したデータパケットを画像リングインタフェース（３）２１４７を介して、画像処理部２１４９に送出する。ここで、生成されたデータパケットのＰｒｏｃｅｓｓ　Ｉｎｓｔｒｕｃｔｉｏｎ３０１１には、タイル伸張部（１）２１０３→変倍処理部２１１６で１５０％伸張→タイル圧縮部（１）２０１６で圧縮→ＲＡＭ２００２に格納、という処理を指定するためのデータが格納されている。具体的には、ＵｎｉｔＩＤ１にタイル伸張部２１０３のＩＤが格納され、ＵｎｉｔＩＤ２に変倍処理部２１１６のＩＤが格納され、ＵｎｉｔＩＤ３にタイル圧縮部（１）２０１６が格納され、ＵｎｉｔＩＤ４にＲＡＭ２００２のＩＤが格納される。そして、Ｍｏｄｅ１からＭｏｄｅ３には各処理部で行われる処理に対応した値が格納される。本実施形態では変倍処理部２１１６で行われる１５０％伸張はレジスタインタフェースにて指示されるためＭｏｄｅ２には何も格納されない。
【０１２３】
次に、システム制御部２１５０から出力されたデータパケットは、画像リング２００８を介して画像リングインタフェース（３）２１０１に入力される。この画像リングインタフェース（３）２１０１はタイル伸張部（１）２１０３を選択して、データパケットを転送する。ここで、タイル伸張部（１）２１０３の選択は、図５に示したパケットフォーマットのＰｒｏｃｅｓｓ　Ｉｎｓｔｒｕｃｔｉｏｎ３０１１に従って行われる。
【０１２４】
タイル伸張部（１）２１０３では転送されたデータパケットをＪＰＥＧ伸張して、非圧縮の画像データに変換する。次に、タイル伸張部（１）２１０３は、タイルバス２１０７に対して変倍処理部２１１６への接続要求を行う。そして、タイル伸張部（１）２１０３は、タイルバス２１０７を介して変倍処理部２１１６に接続されると、データパケットを変倍処理部２１１６に転送する。
【０１２５】
図１３は、本実施形態における変倍処理部２１１６の構成を示す図である。変倍処理部２１１６は、自身が構成されるＩＣチップの外部に設けられている画像メモリ（１，２）２１２３を利用して処理を実行する。以下、変倍処理部２１１６の内部処理を説明する際は、画像メモリ（１，２）を外部メモリ２１２３と呼ぶことにする。
【０１２６】
図１３において、４はタイルスレーブインタフェースであり、タイル伸張部（１）２１０３からタイルバス２１０７を介してデータパケットを受け取るためのインタフェースである。５はメモリインタフェースであり、タイルスレーブインタフェース４が受け取ったタイルデータを外部メモリ上にラスタ展開し、後述する変倍ブロックが必要とするタイルデータをラスタ展開されたメモリから読み出してくるためのインタフェースである。６は変倍ブロックであり、実際に変倍操作を行う。７はタイルバッファであり、変倍処理されたタイルデータを１タイル分蓄積する。８はタイルマスターインタフェースであり、変倍処理されたタイルデータをタイル圧縮部（１）２１０８にタイルバス２１０７経由で出力する。９は変倍ブロック６で変倍率及びフィルタの設定等を行うためのレジスタインタフェースである。
【０１２７】
この変倍処理部２１１６においては、まずタイルスレーブインタフェース４にデータパケットが入力される。ここで、タイルスレーブインタフェース４は入力されたデータパケットのヘッダの内容を解析する。具体的には、データパケットのヘッダに含まれるＰａｇｅＩＤ３００７及びＪｏｂＩＤ３００８を検出しデータの正当性を確認し、更に、ＰａｃｋｅｔＩＤＹ３００９及びＰａｃｋｅｔＩＤＸ３０１０にてパケットの画像全体における位置を把握する。このとき、タイル伸張部２１０３によってＰｒｏｃｅｓｓ　Ｉｎｓｔｒｕｃｔｉｏｎ３０１１は既に８ビットシフトされており、ＵｎｉｔＩＤ２及びＭｏｄｅ２はそれぞれ、ＵｎｉｔＩＤ１及びＭｏｄｅ１になっている。そして、メモリインタフェース５に対し位置情報とともにタイルデータを出力し、メモリインタフェース５は確保されている外部メモリ２１２３上にタイルデータを展開する。
【０１２８】
変倍ブロック６は、メモリインタフェース５を介して入力されたタイルデータに対して１５０％の画像伸張を行う。この詳細な処理については後述する。
【０１２９】
変倍処理されたタイルデータは順次、タイルバッファ７を介してタイルマスターインタフェース８に送られる。ここで、タイルマスターインタフェース８は、変倍ブロック６から送られてきたデータ長に関する情報に基づき、有効画素範囲情報（図３に示したデータパケットの、ｖａｌｉｄ　ｗｉｄｔｈ３０２１及びｖａｌｉｄ　ｈｅｉｇｈｔ３０２２）等をヘッダに記載する。具体的には、タイルマスターインタフェース８は、タイルデータに関して、ｖａｌｉｄｗｉｄｔｈ３０２１及びｖａｌｉｄ　ｈｅｉｇｈｔ３０２２にそれぞれ、有効画素範囲情報としての値“３２”及び“３２”を記述する。
【０１３０】
そして、タイルマスターインタフェース８は、各タイルデータと、それぞれのタイルデータに対応したヘッダとから新たにデータパケットを生成する。ここで、Ｐｒｏｃｅｓｓ　Ｉｎｓｔｒｕｃｔｉｏｎ３０１１は８ビットシフトされ、ＵｎｉｔＩＤ１にタイル圧縮部（１）２１０６のＩＤが記載され、Ｍｏｄｅ１にはタイル圧縮部の処理を記述したＭｏｄｅ２の値がシフトされる。同様に、ＵｎｉｔＩＤ２以降のＵｎｉｔＩＤ及びＭｏｄｅも８ビットシフトが行われるが、今回の例では圧縮部での処理が最後であるため結果的には何も格納されない。
【０１３１】
次に、タイルマスターインタフェース８は、タイルバス２１０７に対してシフト後のＵｎｉｔＩＤ１に該当するタイル圧縮部（１）２１０６への接続を要求する。その後、タイルマスターインタフェース８は、タイルバス２１０７によってタイル圧縮部（１）２１０６に接続されると、データパケットをタイル圧縮部（１）２１０６に転送する。
【０１３２】
タイル圧縮部（１）２１０６ではデータパケットをＪＰＥＧ圧縮し、ＪＰＥＧ圧縮されたデータパケットを画像リングインタフェース２１０２に転送する。画像リングインタフェース２１０２は画像リング２００８を介して、システム制御部２１５０に転送する。そして、最後にシステム制御部２１５０が、転送されてきたデータパケットのタイルデータをＲＡＭ２００２に格納することによって、一連の変倍処理が終了する。
【０１３３】
［変倍処理の詳細］
ここで、変倍処理部２１１６における変倍ブロック６の変倍処理について更に詳述する。
【０１３４】
図１４は、変倍ブロック６の詳細な構成を示すブロック図である。図１４において、１０は変倍コントロールブロックであり、変倍処理全体を制御する。１１はバッファであり、メモリバス２１０８と変倍ブロック６間のタイルデータの幅及びスピード差を吸収する。１２は水平変倍回路であり、水平方向の変倍処理を行う。１３は水平方向の変倍処理結果を格納する複数のラインバッファであり、タイルの水平方向画素分の長さを持つ。１４は垂直変倍回路であり、垂直方向の変倍処理を行う。
【０１３５】
図１５は、外部メモリ２１２３上に展開されるタイル単位のラスタデータを示す図である。図１５において、１５は処理される画像全体を示す。１６はタイルに分割された画像を示し、タイル内の番号は原画像におけるタイルの位置をｘｙ座標で示している。１７は外部メモリ２１２３に実際に確保されるメモリエリアであり、垂直方向１タイル分の処理が終了する毎に、このエリア１７は図の下側へ移動する。
【０１３６】
図１６は、図１４に示した変倍コントロールブロック１０の詳細を示すブロック図である。図１６において、２０はタイミング発生回路、２１は水平アドレス保持回路、２２は水平アドレスカウンタ、２３は垂直アドレス保持回路、２４は垂直アドレスカウンタ、２５は水平変倍情報保持回路、２６は垂直変倍情報保持回路である。
【０１３７】
まず、タイル伸張部（１）２１０３からタイルバス２１０７を介してタイルスレーブインタフェース４に入力されたタイルデータはメモリインタフェース５に転送され、メモリバス２１０８及びメモリ制御部２１２２を介して、一旦図１５に示されるように１枚の画像の形に戻される。但し、外部メモリ２１２３は１枚の画像データ分を確保しているわけではなく、必要な垂直のメモリ確保量は変倍処理を行うのに必要とされる量、即ち、図１５に示す太線で示されるエリアを展開できる程度の量が実際には確保される。更に、メモリインタフェース５は少なくとも垂直方向に１タイル分の画像データを外部メモリ２１２３に展開し終えた時点で変倍ブロック６にＲｅａｄｙ信号を通知する。
【０１３８】
一方、変倍ブロック６はメモリインタフェース５からＲｅａｄｙ信号を受けて変倍処理に必要なタイルデータのアドレスをメモリインタフェース５に通知し、外部メモリ２１２３からの読み出し要求を行う。読み出し要求を受けたメモリインタフェース５はメモリバス２１０８を介して外部メモリ２１２３から該当する位置のタイルデータを読み出して変倍ブロック６へ送出する。これにより、変倍ブロック６はメモリインタフェース５より送出されたタイルデータ及びレジスタインタフェース９を介して設定された変倍率及びフィルタ係数に基づき変倍処理を実行する。そして変倍ブロック６は、変倍処理を行った結果をタイルバッファ７に蓄積し、１タイル分の変倍画像を生成し終えた段階でタイルマスターインタフェース８にＤｏｎｅ信号を通知する。このＤｏｎｅ信号を通知されたタイルマスターインタフェース８は、変倍結果のタイルデータをタイルバッファ７より読み出し、タイルバス２１０７を介して次の処理ブロック（タイル圧縮部）へ出力を行う。
【０１３９】
このように、図１３に示すメモリインタフェース５より送出されたタイルデータは図１４に詳細を示す変倍ブロック６のバッファ１１でバス幅の違い及び画像の読み出し速度の違いを吸収し、水平変倍回路１２で水平方向の変倍操作を行う。この変倍処理を行う回路は前述した図１５に示したフィルタ回路と同じである。そして、水平方向に変倍処理された結果はラインバッファ１３に格納され、垂直変倍回路１４で垂直方向の変倍処理が行われた後、図１３に示すタイルバッファ７に出力される。
【０１４０】
ここで、図１６を参照しながら上述の変倍コントロールブロック１０の詳細な構成及び動作について説明する。
【０１４１】
図１に示すメモリインタフェース５からＤｏｎｅ信号を受けて、変倍コントロールブロック１０のタイミング発生回路２０は、バッファ１１及び水平変倍回路１２（図１４）、図１６に示す水平アドレスカウンタ２２の各ブロックにＬｉｎｅＳｔａｒｔ信号を出力する。また、タイミング発生回路２０は、ラインバッファ１３及び垂直変倍回路１４（図１４）、図１６に示す垂直アドレスカウンタ２４の各ブロックにＴｉｌｅＳｔａｒｔ信号を出力する。さらに、タイミング発生回路２０は、図１６に示す水平アドレス保持回路２１及び水平変倍情報保持回路２５にＸｓｔａｒｔ信号を出力し、垂直アドレス保持回路２３及び垂直変倍情報保持回路２６にＹｓｔａｒｔ信号を出力して各ブロックを初期化させる。その後、メモリインタフェース５へタイルデータの読み出し要求信号Ｒｅｑを出力する。また、水平アドレスカウンタ２２及び垂直アドレスカウンタ２４は、変倍処理を行うのに必要な読み出したいタイルデータのアドレスを示す信号Ａｄｄｒｅｓｓを出力する。
【０１４２】
ここで、外部メモリ２１２３よりタイルデータが読み出され、従来例と同様な水平方向の変倍処理がタイル単位で開始され、水平方向アドレスカウンタ２２は原画像データのシフトが発生したことを示すＨｓｈｉｆｔ信号に基づき、カウンタの値をカウントアップしていく。
【０１４３】
その後、タイル１ライン分の水平方向変倍処理が終了すると（ＨＤｏｎｅ信号）、タイミング発生回路２０は新たにバッファ１１及び水平変倍回路１２（図１４）、図１６に示す水平アドレスカウンタ２２、垂直アドレスカウンタ２４の各ブロックにＬｉｎｅＳｔａｒｔ信号を出力し、バッファ１１及び水平変倍回路１２を初期化する。これと同時に、図１６に示す水平アドレスカウンタ２２のカウント値を水平アドレス保持回路２１にロードし、フィルタ係数生成回路には水平変倍情報保持回路に保持された値（ＲｅｇＨＩｎｆ）をロードさせ、垂直アドレスカウンタ２４の値をカウントアップさせる。そして、更新された水平及び垂直アドレスＡｄｄｒｅｓｓと読み出し要求信号Ｒｅｑとに基づき、メモリインタフェース５は次のラインの画像データを外部メモリ２１２３から読み出す。
【０１４４】
上述の操作により、図１４に示すラインバッファ１３に所定の変倍結果が揃うと垂直方向変倍回路１４が動作を開始し、タイルのライン数分の変倍処理を終了するとタイル終了信号Ｖｄｏｎｅ信号が図１６に示すタイミング発生回路２０に入力される。この信号に基づきタイミング発生回路２０は水平アドレス保持回路２１に次の水平アドレスカウンタの値を保持させる信号ＴｉｌｅＤｏｎｅを出力する。これらの処理を繰り返した後、変倍出力タイルが水平方向の最後のタイルを処理し終えたときにタイミング発生回路２０は垂直アドレス保持回路２３に対し、現在の垂直アドレスカウンタ２４の値を保持させる信号Ｘｌａｓｔを出力する。これにより、タイミング発生回路２０は垂直アドレス保持回路２３に現在の垂直アドレスカウンタ値を保持させる。
【０１４５】
次の出力タイルは水平方向アドレスが０であるので、タイミング発生回路２０はＴｉｌｅＳｔａｒｔ信号を出力する前に水平アドレス保持回路２１の値を初期化する信号Ｘｓｔａｒｔ信号を水平アドレス保持回路２１に出力する。そして、水平アドレス保持回路２１により保持されている水平アドレスが初期化された後、出力基準にて垂直方向に１タイル進んだタイルの変倍処理が実行される。ここで、ラインバッファ１３は、変倍処理部２１１６の出力がタイル基準で実行されるため、１タイル画像の水平方向画素数分の長さを持つ複数の（先の従来例と同様であれば８ライン分）ラインバッファで構成される。したがって、１タイルの水平方向画素数がもし３２画素であるとすれば先の従来例に比べおおよそ２００分の１の量でよいことになる。
【０１４６】
以上説明したように、本実施形態によれば、必要とするラインバッファの長さはタイルの水平方向画素数分であり、垂直方向の変倍フィルタの構成を従来例と同様とすると、１タイルの水平方向画素数を３２、処理できる最大画素の水平方向画素数を約７０００画素とした場合、変倍処理部２１１６が必要とするラインバッファの量は従来例のおおよそ２００分の１で済む。したがって、少ないラインバッファの量で従来例の変倍装置と同等な変倍処理が可能であり、変倍処理を含む複数の機能を１つのＩＣチップ内に実現するのに最適である。
【０１４７】
また、タイル画像のラスタ展開用のメモリを外部メモリとしているため、様々な変倍率やより大きな画像サイズへの対応を考えた場合にもタイルのサイズが同じであるならばＩＣチップ内の回路規模にはほとんど影響がなく対応が可能である。
【０１４８】
また、変倍処理部は、ＣＰＵ等から直接制御されることなく、データパケットのヘッダの座標情報に基づいて外部メモリ上の適切な領域に画像データをラスタ展開することができるので、外部メモリを用いた変倍処理におけるデータの管理が容易である。
【０１４９】
（第２の実施形態）
第１の実施形態のような装置構成であっても、画像データがフルカラーである場合等においては、かなりの大きさの外部メモリが要求されることがある。例えばＡ４長手サイズ、６００ｄｐｉの画像では約７０００画素となり、１タイルの垂直方向画素数を３２とすると、８ビットフルカラーの画像データを１タイル幅でラスタ展開するには、おおよそ１Ｍバイトの外部メモリが必要とされる。さらに、変倍処理として、特に垂直方向の縮小を行うためには複数のタイルが必要とされるため、ラスタ展開に必要とされるメモリ量は更に増大する。
【０１５０】
このような状況を考慮した場合、外部メモリに、レイテンシーの高いＳＲＡＭを用いるより、汎用のＳＤＲＡＭを用いるほうがコスト的には好ましい。
【０１５１】
しかしながら、変倍回路においては変倍率によって変倍処理に必要な開始画素位置も必要とされる画素数も異なってくる。このため、画像メモリにＳＤＲＡＭを用いた場合、必要な画素データ全てを１度にバースト転送することは処理上も、またバッファの量的にも問題があり、どうしてもメモリからの画素データの読み出し待ち時間により変換処理速度が上がらなくなってしまう。
【０１５２】
本実施形態では、変倍処理の開始時に、外部のメモリにラスタ展開された画像データの読み出しデータ量を制御することにより、例えばＳＤＲＡＭのように読み出し待ち時間が生じる画像メモリを用いた場合でも、高速な変倍処理を実行可能とする。
【０１５３】
［変倍処理の詳細］
本実施形態の変倍処理部２１１６のブロック構成は、図１３に示したものと同じである。図１７は、図１３に示したメモリインタフェース５の詳細な構成を示す図である。
【０１５４】
図１７において、５０１は書き込み制御回路であり、図１３に示したタイルスレーブインタフェース４からのデータを受け取り、外部メモリ２１２３への書き込み制御を行う。５０２は読み出し制御回路であり、図１３に示した変倍ブロック６からの要求信号を受け取り、必要な画像データを外部メモリ２１２３から読み出す。５０３はメモリインタフェース制御回路であり、書き込み制御回路５０１及び読み出し制御回路５０２からの要求に応じて外部メモリ２１２３との通信を行い、データの書き込み又は読み出しを制御する。
【０１５５】
図１８は、図１７に示した読み出し制御回路５０２の詳細な構成を示す図である。図１８において、６０１はリクエストカウンタ（ＲｅｑＣｏｕｎｔ）であり、外部メモリの読み出しリクエスト数をカウントする。６０２はリードリクエスト生成回路（ＲＲｅｑＧｅｎ）であり、変倍ブロック６のバッファ（ＦＩＦＯ）状態を示す信号（ＮｏｔＦｕｌｌ）や水平方向変倍開始パルス（ＬｉｎｅＳｔａｒｔ）又は変倍に必要なデータの位置を示すメモリアドレス（Ａｄｄｒｅｓｓ）を受け取り、メモリ読み出し信号（Ｒｅｑ）と読み出しアドレス（ＲＡｄｄｒ）を生成する。６０３はリードカウンタ（ＲｅａｄＣｏｕｎｔ）であり、読み出し要求から求められるデータ数と実際に読み出されたデータ数をカウントする。６０４はＯＲ回路であり、リクエストカウンタ６０１から出力されるＳｔａｒｔＤｏｎｅ信号とリードカウンタ６０３から出力されるＣｏｕｎｔＺｅｒｏ信号とを入力し、その論理和を出力する。６０５はＡＮＤ回路であり、リードリクエスト生成回路６０２から出力されるＲｅｑ信号とＯＲ回路６０４から出力される信号とを入力し、その論理積を出力する。
【０１５６】
以上の構成を有する変倍回路の動作について図中に示す信号を参照しながら説明する。
【０１５７】
タイル伸張部（１）２１０３から、図１３に示したタイルバス２１０７を経由してタイルスレーブインタフェース４に入力された画像データは、メモリインタフェース５に転送され、メモリバス２１０８及び外部メモリインタフェース２１２２を経由して、一旦図１５に示した、１枚の画像の形に戻される。
【０１５８】
第１の実施形態と同様に、外部メモリ２１２３は１枚の画像データ分を確保しているわけではなく、必要な垂直のメモリ確保量は変倍処理を行うのに必要とされる量、即ち、図１５に示した太線のエリアを展開できる程度の量が実際には確保される。更に、図１に示したメモリインタフェース５は、少なくとも垂直方向に１タイル分の画像データを外部メモリ２１２３に展開し終えた時点で変倍ブロック６にＲｅａｄｙ信号を通知する。
【０１５９】
一方、変倍ブロック６はメモリインタフェース５からのＲｅａｄｙ信号を受けて変倍処理に必要な画像データのアドレスをメモリインタフェース５に通知し、読み出し要求を行う。読み出し要求を受けたメモリインタフェース５はメモリバス２１０８経由で外部メモリ２１２３から該当する位置の画像データを読み出して変倍ブロック６へ送出する。これにより、変倍ブロック６はメモリインタフェース５より送出された画像データ及びレジスタインタフェース９を介して設定された変倍率及びフィルタ係数に基づき、変倍処理を行う。そして、その結果をタイルバッファ７に蓄積し、１タイル分の変倍画像を生成し終えた段階で、タイルマスターインタフェース８にＤｏｎｅ信号を通知する。Ｄｏｎｅ信号を通知されたタイルマスターインタフェース８は、変倍結果の画像をタイルバッファ７より読み出し、タイルバス２１０７を介してタイル圧縮部（１）２１０６へ出力する。
【０１６０】
ここで、メモリインタフェース５で授受される信号は図１７に示したようになる。そして、図１３に示したタイルスレーブインタフェース４より得られた画像データ（ＴｓＤａｔａ）とタイルの番号（Ｔｐｏｓ）が書き込み制御回路５０１で対応する外部メモリのアドレスに書き込むようにメモリインタフェース制御回路５０３に対して書き込みリクエスト信号（ＷＲｅｑ）を出力する。そして、最終的に対応するメモリのアドレスへ画像データが書き込まれる。
【０１６１】
一方、外部メモリ２１２３に書き込まれた画像データのうち、変倍ブロック６にて変倍処理に必要とされる画像データは、読み出し制御回路５０２において、変倍ブロック６より得られる水平方向変倍開始パルス（ＬｉｎｅＳｔａｒｔ）と、それ以前に確定された読み出し開始アドレス（ＳＡｄｄｒｅｓｓ）と、変倍ブロック４０６のバッファ状態を示す信号（ＮｏｔＦｕｌｌ）とに基づき、読み出され始める。ここで、読み出し制御回路５０２で授受される信号は図１７に示したようになる。
【０１６２】
次に、この読み出し制御回路５０２の動作を図１９に示すタイミングチャートを参照しながら説明する。まず、変倍ブロック６からの水平方向変倍開始信号（ＬｉｎｅＳｔａｒｔ）パルスが“１”にアサートされる（ｔ０）。この時、図１８に示したリードリクエスト生成回路（ＲＲｅｑＧｅｎ）６０２からの読み出しアドレス（ＲＡｄｄｒ）が変倍ブロック６に供給される読み出し開始アドレス（ＳＡｄｄｒｅｓｓ）としてラッチされる。そして、メモリ読み出し信号（Ｒｅｑ）により変倍ブロック６のバッファ状態を示す信号（ＮｏｔＦｕｌｌ）のサンプリングが開始される。
【０１６３】
同時に、リクエストの発行数をカウントするリクエストカウンタ（ＲｅｑＣｏｕｎｔ）６０１の発行カウンタを“０”にリセットし、ＳｔａｒｔＤｏｎｅ信号を“１”にセットする。ＳｔａｒｔＤｏｎｅ信号によりＡＮＤ回路６０５によるマスクを解除されたＲｅｑ信号はＲＲｅｑ信号として図１７に示すメモリインタフェース制御回路５０３に読み出し要求を通知する。これに応じて、メモリインタフェース制御回路５０３が外部メモリインタフェース２１２２と通信を行い、読み出し要求受理信号を受けると、ＲＡｃｋ信号は“１”にセットされる。
【０１６４】
このＲＡｃｋ信号が“１”にアサートされたことを確認すると（ｔ１）、リクエストカウンタ（ＲｅｑＣｏｕｎｔ）６０１の発行カウンタを１増加し、リードリクエスト生成回路（ＲＲｅｑＧｅｎ）６０２は読み出しアドレス（ＲＡｄｄｒ）の値を必要なだけインクリメントする（この例では８）。同時に、リードカウンタ（ＲｅａｄＣｏｕｎｔ）６０３が読み出し要求のビート数だけ、カウンタの値を増加させる。尚、カウンタの値が“０”でなくなったため、ＣｏｕｎＺｅｒｏ信号は“０”になるが、リクエストカウンタ（ＲｅｑＣｏｕｎｔ）６０１から出力されるＳｔａｒｔＤｏｎｅ信号が“１”であるため、ＯＲ回路６０４の出力は“１”でありつづける。従って読み出し要求信号ＲＲｅｑは“１”でありつづける。
【０１６５】
次に、外部メモリインタフェース２１２２への読み出し要求を終えたメモリインタフェース４０５は新たな読み出し要求信号（ＲＲｅｑ）に基づき新たな読み出し要求を外部メモリインタフェース２１２２に発行したことをＲＡｃｋ信号で通知する。ＲＡｃｋ信号で読み出し要求が伝わったことを検知すると、リクエストカウンタ（ＲｅｑＣｏｕｎｔ）６０１、リードリクエスト生成回路（ＲＲｅｑＧｅｎ）６０２からの読み出しアドレス（ＲＡｄｄｒ）、及びリードカウンタ（ＲｅａｄＣｏｕｎｔ）を上述のｔ１と同様にそれぞれ必要な値だけ増加させる（ｔ２）。尚、図１９に示す例では、カウンタ及びアドレスの値は１６進表記である。
【０１６６】
その後、外部メモリインタフェース２１２２より画像データの読み出し準備が整い、読み出しが開始されたことを示す信号（ＲｄＶａｌｉｄ）が“１”にアサートされると、リードカウンタ（ＲｅａｄＣｏｕｎｔ）６０３はそのカウンタの値を現在値から“１”づつ減少させる（ｔ３）。変倍ブロック４０６のバッファ（ＦＩＦＯ）にまだ余裕があり、読み出し要求（ＲＲｅｑ）が“１”であったため、メモリインタフェース４０５経由で外部メモリ２１２３に要求していた読み出し要求が受け付けられたことを示すＲＡｃｋ信号が帰ってくる。そして、先ほど（ｔ２）と同様に、リクエストカウンタ（ＲｅｑＣｏｕｎｔ）、読み出しアドレス（ＲＡｄｄｒ）が必要な値だけ増加される。
【０１６７】
但し、現時点で既にデータの読み出しが開始されているため、リードカウンタ（ＲｅａｄＣｏｕｎｔ）６０３の値は、通常の増加分（この例では“８”）を増加させた値から読み出しによる減少分“１”があるため、直前の値より結果的に“７”だけ増加した値となる（ｔ４）。
【０１６８】
変倍ブロック６のバッファ（ＦＩＦＯ）にまだ余裕があり、読み出し要巨Ｍ号（ＲＲｅｑ）が“１”であったため、メモリインタフェース２１２２経由で外部メモリ２１２３に要求していた読み出し要求が受け付けられたことを示すＲＡｃｋ信号が帰ってくる。そして、読み出しアドレス（ＲＡｄｄｒ）が必要な値だけ増加され、リードカウンタ（ＲｅａｄＣｏｕｎｔ）６０３も先ほどと同様に直前の値に対して“７”だけ増加する。
【０１６９】
一方、リクエストカウンタ（ＲｅｑＣｏｕｎｔ）６０１は今回の読み出し要求の受付でバッファ（ＦＩＦＯ）の段数分の読み出しを終了するので現時点の値を保持し、ＳｔａｒｔＤｏｎｅ信号が“０”にデアサートされる。これにより、変倍ブロック４０６のバッファ（ＦＩＦＯ）状態を示す信号（ＮｏｔＦｕｌｌ）の状態にかかわらずマスク用の信号ＳｔａｒｔＤｏｎｅ及びＣｏｕｎｔＺｅｒｏの両信号が共に“０”となる。従ってＯＲ回路６０４の出力は“０”、ＡＮＤ回路６０５の出力も“０”となり、メモリインタフェース２１２２への読み出し要求信号は発生しなくなる（ｔ５）。
【０１７０】
ここで、外部メモリ２１２３から順調に画像データの読み出しが行われ、読み出し要求分の画像データの読み出しが終了すると、リードカウンタ（ＲｅａｄＣｏｕｎｔ）６０３は“０”となり、ＣｏｕｎｔＺｅｒｏ信号は“１”となる。これにより、読み出し要求信号（ＲＲｅｑ）のマスクが解除され、新たな読み出し要求信号がメモリインタフェースに対して発行される（ｔ６）。
【０１７１】
本実施形態では変倍ブロック４０６が順調に画像データ処理を行い、結果的にバッファが一杯にならなかった場合を示している。もちろん、変倍率の設定で画像データの消費量が異なり、バッファが一杯に近い状態になり、バッファ状態を示す信号（ＮｏｔＦｕｌｌ）が“０”となる場合もありうる。この場合には、もちろん読み出し要求は発生しない。
【０１７２】
その後、外部メモリインタフェース２１２２に読み出し要求が受け付けられ、ＲＡｃｋが帰ってくるとリードカウンタ（ＲｅａｄＣｏｕｎｔ）６０３はビート数“８”だけ増加する。そして、ＣｏｕｎｔＺｅｒｏ信号は“０”となり、Ｒｅｑ信号のマスクが有効になり、読み出し要求信号（ＲＲｅｑ）は“０”となり、新たな読み出し要求は、（ｔ７）で受け付けられた読み出し要求が完了するまで発行されない。
【０１７３】
以上説明したように、本実施形態によれば、各タイルに関して、水平方向の変倍処理開始時に水平変倍回路のバッファの量だけの画像データを変倍処理回路の処理状態によらず、メモリインタフェースから転送するようにした。これにより、水平変倍回路が処理を行う際に必要な画像データがメモリインタフェースからの読み出し待ち状態となることを少なくでき、処理速度の高速化が可能となる。
【０１７４】
また、読み出し処理を集中させることにより外部ＳＤＲＡＭのヒット率を高くすることができ、ＩＣチップ内の外部ＳＤＲＡＭを用いる機能ブロックに対しても、ラスタ展開時の書き込みについても高速化が図れる。
【０１７５】
更に、変倍処理のように処理の開始時点で必要とされるデータ量すべての読み出しが困難であり、逐次的に読み出さざるを得ないシステムにおけるスプリットトランザクションをサポートする読み出し制御を簡単に行える。
【０１７６】
以上、外部ＳＤＲＡＭを用いる変倍処理部を例に説明したが、変倍処理部に限らず、他の処理ブロックにおける画像処理にも、本実施形態における発明を適用することができる。
【０１７７】
例えば、図９の画像入力処理におけるタイル画像の生成処理の際に、画像入力インタフェース２１１２において、タイル単位でのラスタ展開のために画像メモリを用いている。このとき、本実施形態と同様な連続読み出しのメモリアクセス制御を行うことができ、タイル画像生成の高速化が達成できる。
【０１７８】
（第３の実施形態）
上記実施形態のように、外部メモリを用いて変倍処理を実行する場合、メモリを管理して処理の信頼性を向上させるために、外部メモリへのタイル画像の書き込み、読み出しに対する排他制御を行うことが好ましい。本実施形態では、以下説明するような排他制御の構成をとることにより、変倍率に応じたメモリ管理を、簡単な装置構成で実行できるようにする。
【０１７９】
［変倍処理の詳細］
本実施形態の変倍処理部２１１６のブロック構成は、図１３に示したものと同じである。図２０は、図１３に示したメモリインタフェース５の一例を示す詳細ブロック図である。
【０１８０】
図２０において、書き込み制御回路５０１、読み出し制御回路５０２、メモリインタフェース制御回路５０３は、第２の実施系形態で説明した同一符号の回路と同様な機能を有している。
【０１８１】
７０１は排他制御回路で、書き込みを行おうとしているタイルの位置情報（タイルポジション信号Ｔｐｏｓ）と、読み出しを行おうとしている読み出しアドレスに基づき書き込み、読み出しの許可（許可信号ＴＲＥｎａｂｌｅ）を与える制御を各信号Ｔｐｏｓ，ＴＷＥｎａｂｌｅ，ＴｉｌｅＳｔａｒｔ，ＳＡｄｄｒｅｓｓに従って行う。
【０１８２】
図２１は、図２０に示した排他制御回路７０１の詳細回路の一例を示すブロック図である。
【０１８３】
図２１において、８０１はＥｘｃｌｕｓｉｖｅＯＲゲート、８０２はＤ−ＦｌｉｐＦｌｏｐ、８０３はＥｎａｂｌｅ付きのＤ−ＦｌｉｐＦｌｏｐ、８０４はデコーダ回路、８０５−１−ｓ０〜８０５−１−ｓ７，８０５−２−ｍ０〜８０５−２−ｍ７はＡｎｄ回路、８０６−１〜８０６−８はＲＳ−ＦｌｉｐＦｌｏｐ、８０７はマスク生成回路（ＭａｓｋＧｅｎ）、８０８はアンドゲートである。
【０１８４】
図２２〜図２５は、図２０に示した排他制御回路７０１によるタイル画像データ転送処理時のメモリ状態を説明するための図である。
【０１８５】
図２２〜図２５において、ｔＦｌａｇ０〜７は変倍処理の進行状態に従い変化する同一垂直方向のタイル位置の変倍処理終了有無を示すフラグで、ラスタ展開される外部のメモリ上の垂直方向のタイル位置に応じたメモリ状態がＲＳ−ＦｌｉｐＦｌｏｐ８０６−１〜８０６−８上に保持される。
【０１８６】
なお、ＲＳ−ＦｌｉｐＦｌｏｐ８０６−１〜８０６−８は、図２１に示した排他制御回路７０１のデコード回路８０４の出力とマスク回路８０７の出力とに基づいてセット（「１」）またはリセット（「０」）される。そして、該フラグｔＦｌａｇ０〜７の状態に従って、外部のメモリに対するデータ書き込み時におけるタイルスレーブインタフェース４によるデータの受信動作、すなわちタイルスレーブインタフェース４に対する信号ＴＷＥｎａｂｌｅのセットまたはリセットを制御するとともに、外部のメモリからのデータ読み出し時における読み出し制御回路５０２に対する信号ＴＲＥｎａｂｌｅのセットまたはリセットを制御する。
【０１８７】
なお、本実施形態においては、図２２〜図２５において変倍装置で変倍可能な最小倍率は、例えば０．２５（１／４）であるとし、ラスタメモリの垂直方向のタイル数は条件式より求められる最小の値（４＋２＝６）であるから、これ以上、かつ最小の２のべき乗の値である「８」として説明する。
【０１８８】
変倍動作開始時には、図２２〜図２５におけるフラグｔＦｌａｇ０〜７はすべて「０」にクリアされた状態にあり、画像データはタイルバスにて図２２中の左上から順に送られてくる。
【０１８９】
図２２に示す例では、一番上の左から３つ目までがデータ転送が終了し、現在４つ目の図２２の斜線で示されたタイル画像の転送が現在行われているとする。
【０１９０】
そして、タイル画像の転送がさらに進み、図２２の一番上の列の転送が終了し、図２３に示すように上から２列目の転送が開始されると、１列目の書き込み終了を示すフラグｔＦｌａｇ０が「１」にセットされる。同様にして列の書き込みが終了した時点で該当するフラグが順次「１」にセットされる。
【０１９１】
一方、変倍処理による読み出し側の制御は、例えば、１／４倍の変倍を行っている場合のメモリ状態は図２４に示す通りであり、図２４ではラスタ展開された画像のうち斜線で示された（３，８ｎ）から（８，８ｎ＋５）のタイルに含まれる画像データを用い、１タイル分の変倍結果を出力しようとしている。
【０１９２】
本来、変倍率が（この例では水平垂直とも）１／４であるので、水平方向および垂直方向とも、４タイルずつ（この例では（４，８ｎ＋１）から（７，８ｎ＋４）の部分）の画像があればよいと思われるが、実際にはフィルタ処理を行う関係上周辺の画像データをも必要とするため、図２４に示すような（３，８ｎ）から（８，８ｎ＋５）のタイルに含まれる画像データが必要となる。
【０１９３】
この状態から水平方向に変倍処理を実行していき、水平方向の変倍処理を終え、垂直方向に変倍結果として１タイル分処理した場合のメモリの状態図およびフラグの値は図２５に示す通りとなる。
【０１９４】
図２５に示したように、つまり図２４のメモリ状態から図２５のメモリ状態に移った場合、変倍処理のために使用するタイル画像の位置は（０，８ｎ＋４）から（４，８（ｎ＋１）＋１）の位置に移動する。ただし、（０，８（ｎ＋１））から（４，８（ｎ＋１）＋１）の位置のタイル画像はメモリ上の位置は図２４のタイル画像と同じであるが、新たにタイルスレーブより得られた画像データをおく必要があるため、該当するフラグｔＦｌａｇ０〜３は図示してあるようにクリアされている。
【０１９５】
これら図２２から図２３および図２４から図２５の変化に対応し該当するフラグのセットおよびクリアを実現する回路の一例が図２１に示す排他制御回路７０１である。
【０１９６】
１垂直方向の画像データ書き込み終了時、つまり図２２に示すメモリ状態から図２３に示すメモリ状態への変化時には、タイルスレーブインタフェース４より入力されるタイルの位置を示す情報（信号Ｔｐｏｓ）内の垂直方向情報（図２０に示す信号Ｔｐｏｓ（Ｖ））が変化する。したがって、その変化のタイミングを捉え、デコーダ回路２４が出力する現在書き込み中の位置信号を、ゲートし、該当する位置のフラグをセットする信号（図２２および図２３の例ではゲート８０５−１−ｓ０）を８０６のＲＳ−ＦｌｉｐＦｌｏｐ８０６−１に出力する。該当するＲＳ−ＦｌｉｐＦｌｏｐはそのフラグをセットする。
【０１９７】
一方、１垂直方向分の変倍処理が終了した場合、つまり、図２３に示すメモリ状態から図２４に示すメモリ状態への変化時には、メモリからの水平位置の読み出しアドレスは「０」である。したがって、水平読み出しアドレスが「０」であるときのタイル変倍開始パルス（信号ＴｉｌｅＳｔａｒｔ）でマスク生成回路２７の出力を有効にしてやることでフラグをクリアする。
【０１９８】
また、マスク生成回路８０７は、図２３に示すメモリ状態時点での変倍開始時の垂直方向データ読み出しアドレスと、図２４に示すメモリ状態時点での変倍開始時の垂直方向データ読み出しアドレスから読み出しが終了した垂直方向タイル位置を判断する。そして、判断結果から、読み出し終了位置に該当するフラグをクリアするための信号を発生する。デコーダ回路８０４の出力例を表１に示す。
【０１９９】
【表１】
2004048372.tif 000003
【０２００】
このフラグデータに基づき、書き込み時には書き込もうとするタイル位置の画像データがすでに変倍処理による読み出しが終了しているかどうかを判断する。変倍処理による読み出しが終了していれば、図１０に示された信号ＴＷＥｎａｂｌｅを「１」にすることで、タイルスレーブインタフェース４はデータの受信を行う。逆に、変倍処理による読み出しが終了していない場合には、ＴＷＥｎａｂｌｅ信号を「０」にすることでタイルスレーブインタフェース４は本変倍装置に画像データを送ろうとしているタイルマスタインタフェース８を該当する位置の書き込みフラグが「０」になるまで待たせる。
【０２０１】
一方、読み出し時には、読み出そうとしているアドレスのフラグがセットされている場合には、図２０に示した排他制御回路７０１から読み出し制御回路５０２に出力されるＴＲＥｎａｂｌｅ信号を「１」とし、図２０の読み出し制御回路５０２はメモリインタフェース制御回路１２に対しメモリ読み出し要求信号ＲＲｅｑおよびＲＡｄｄｒ信号を出力する。
【０２０２】
逆に、フラグがセットされていない場合には、ＴＲＥｎａｂｌｅ信号を「０」とすることで、読み出し制御回路５０２はメモリインタフェース制御回路５０３への読み出し要求信号の出力を制限する。
【０２０３】
上記実施形態では、書き込みのための制御信号ＴＷＥｎａｂｌｅをタイルスレーブインタフェースに出力し、タイルデータの転送を制限したが、この信号を書き込み制御回路５０１へ出力し、書き込み要求信号を制限しても結果は同じである。
【０２０４】
本実施形態によれば、タイル画像をラスタ変換するためのメモリの書き込み、読み出しの排他制御を垂直方向のタイル単位で行い、しかも、管理すべき垂直方向のタイル数を変倍処理部が処理可能な最小倍率をｎ（＜１）とした場合、管理すべき垂直方向のタイル数を（１／ｎ）＋２以上、かつ２のべき乗に制限することでメモリ管理を簡単に実現した。
【０２０５】
また、変倍処理部の特殊事情による読み出し済みメモリの解放に関しても垂直方向の出力タイルの変化時点に行うことで全体の構成を簡単に実現することが可能となった。
【０２０６】
なお、管理すべき垂直方向のタイル数は、２のべき乗に限定するものではない。すなわち、上記実施形態の構成において、垂直方向のタイル数を６、または７個としても、同様にメモリ管理を簡単にすることができる。
【０２０７】
（第４の実施形態）
上記各実施形態で説明した装置をＩＣチップ化する場合、ある程度高速な変倍処理を実行することができるが、今後、さらなる変倍処理の高速化が要求されることが予想される。
【０２０８】
回路全体のクロック速度を上げることにより、この要求を満たす回路を構成することができるが、ＩＣ化に際する制約を与えことになる。また、外部メモリの要求スピードもクロック速度の高速化に伴い高速化されるため、使用されるメモリーチップのコストを上げる要因ともなる。
【０２０９】
本実施形態では、変倍処理回路に多少の回路を追加する代わりに、従来と同様なクロックスピードで従来よりも高速に変倍処理を行えるようにする。
【０２１０】
［変倍処理の詳細］
本実施形態における変倍処理部２１１６のブロック図を図２６に示す。第１−３の実施系形態と異なるのは、タイルバッファ７を制御するためのタイルバッファ制御回路２６０１を設けた点である。
【０２１１】
本実施形態における変倍ブロック６の詳細な構成は、図１４に示したものと同じであり、変倍コントロールブロック１０の詳細な構成も、図１６に示したものと同じである。
【０２１２】
ただし、変倍処理部２１１６は、上記各実施形態とは異なり、２タイル単位で変倍処理を実行する。以下、変倍処理部２１１６の全体動作を説明する。
【０２１３】
まず、タイル伸張部（１）２１０３から図２６に示すタイルバス２１０７を介してタイルスレーブインタフェース４に入力されたタイルデータはメモリインタフェース５に転送され、メモリバス２１０８及びメモリ制御部２１２２を介して、一旦図１１に示されるように１枚の画像の形に戻される。但し、外部の画像メモリ２１２３は１枚の画像データ分を確保しているわけではなく、必要な垂直のメモリ確保量は変倍処理を行うのに必要とされる量、即ち、上記実施形態と同様に、図１５に示す太線で示されるエリアを展開できる程度の量が実際には確保される。更に、図２６に示すメモリインタフェース５は少なくとも垂直方向に１タイル分の画像データを画像メモリ２１２３に展開し終えた時点で変倍ブロック６にＲｅａｄｙ信号を通知する。
【０２１４】
一方、変倍ブロック６はメモリインタフェース５からＲｅａｄｙ信号を受けて変倍処理に必要なタイルデータのアドレスをメモリインタフェース５に通知する。これを受けて、メモリインタフェース５は画像メモリ２１２３からの読み出し要求を行う。読み出し要求を受けたメモリインタフェース５はメモリバス２１０８を介して画像メモリ２１２３から該当する位置のタイルデータを読み出して変倍ブロック６へ送出する。これにより、変倍ブロック６はメモリインタフェース５より送出されたタイルデータ及びレジスタインタフェース９を介して設定された変倍率及びフィルタ係数に基づき、変倍処理を行った結果をタイルバッファ７に蓄積し、２タイル分の変倍画像を生成し終えた段階でタイルマスターインタフェース８にＤｏｎｅ信号を通知する。このＤｏｎｅ信号を通知されたタイルマスターインタフェース８は、変倍結果のタイルデータをタイルバッファ７よりタイル単位で読み出し、タイルバス２１０７を介してタイル圧縮部（１）２１０６へ出力を行う。
【０２１５】
ここで、図１６を参照しながら上述の変倍コントロールブロック１０の詳細な構成及び動作について説明する。
【０２１６】
図２６に示すメモリインタフェース５からＤｏｎｅ信号を受けて、変倍コントロールブロック１０のタイミング発生回路２０は、バッファ１１及び水平変倍回路１２（図１４）、図１６に示す水平アドレスカウンタ２２の各ブロックにＬｉｎｅＳｔａｒｔ信号を出力する。また、タイミング発生回路２０は、ラインバッファ１３及び垂直変倍回路１４（図１４）、図１６に示す垂直アドレスカウンタ２４の各ブロックにＴｉｌｅＳｔａｒｔ信号を出力する。さらに、タイミング発生回路２０は、図１６に示す水平アドレス保持回路２１及び水平変倍情報保持回路２５にＸｓｔａｒｔ信号を出力し、垂直アドレス保持回路２３及び垂直変倍情報保持回路２６にＹｓｔａｒｔ信号を出力して各ブロックを初期化させる。その後、メモリインタフェース５へタイルデータの読み出し要求信号Ｒｅｑを出力する。また、水平アドレスカウンタ２２及び垂直アドレスカウンタ２４は、変倍処理を行うのに必要な読み出したいタイルデータのアドレスを示す信号Ａｄｄｒｅｓｓを出力する。
【０２１７】
ここで、外部メモリ２１２３よりタイルデータが読み出され、水平方向の変倍処理が開始され、水平方向アドレスカウンタ２２は元画像データのシフトが発生したことを示すＨｓｈｉｆｔ信号に基づき、カウンタの値をカウントアップしていく。
【０２１８】
その後、タイル１ライン分の２倍の画素数分の水平方向変倍処理が終了すると（ＨＤｏｎｅ信号）、タイミング発生回路２０は新たにバッファ１１及び水平変倍回路１２（図１４）、図１６に示す水平アドレスカウンタ２２、垂直アドレスカウンタ２４の各ブロックにＬｉｎｅＳｔａｒｔ信号を出力し、バッファ１１及び水平変倍回路１２を初期化する。これと同時に、図１６に示す水平アドレスカウンタ２２のカウント値を水平アドレス保持回路２１にロードし、フィルタ係数生成回路には水平変倍情報保持回路に保持された値（ＲｅｇＨＩｎｆ）をロードさせ、垂直アドレスカウンタ２４の値をカウントアップさせる。そして、更新された水平及び垂直アドレスＡｄｄｒｅｓｓと読み出し要求信号Ｒｅｑとに基づき、メモリインタフェース５は次のラインの画像データを外部メモリ２１２３から読み出す。
【０２１９】
上述の操作により、図１４に示すラインバッファ１３に所定の変倍結果が揃うと垂直方向変倍回路１４が動作を開始し、垂直方向に変倍処理を実施した結果画像データをタイルバッファ制御回路２６０１に出力する。垂直方向変倍回路１４においてタイルのライン数分の変倍処理を終了するとタイル終了信号Ｖｄｏｎｅ信号が図１６に示すタイミング発生回路２０に入力される。この信号に基づきタイミング発生回路２０は水平アドレス保持回路２１に次の水平アドレスカウンタの値を保持させる信号ＴｉｌｅＤｏｎｅを出力する。これらの処理を繰り返した後、変倍出力タイルが水平方向の最後のタイルを処理し終えたときにタイミング発生回路２０は垂直アドレス保持回路２３に対し、現在の垂直アドレスカウンタ２４の値を保持させる信号Ｘｌａｓｔを出力し、垂直アドレス保持回路２３に現在の垂直アドレスカウンタ値を保持させる。
【０２２０】
一方、タイルバッファ制御回路２６０１は垂直方向変倍回路１４にて垂直方向の変倍をも実施された変倍結果画像データを数え、タイルバッファの該当する位置へと書き込みを行う。また、タイルマスターインタフェース回路の読み出し要求アドレスに従い該当するタイル画像データを読み出し、出力する。このとき、読み出すべきタイル画像データが水平方向に連続した２つのタイル画像のうち初めのものであるか後のものであるかを判断し、読み出しアドレスを該当するアドレスに変換してタイルバッファから読み出しを行う。
【０２２１】
タイルバッファ制御回路２６０１の一例を図２７に示す。図２７において、２７０１は変倍ブロック６より変倍結果画像と同時に出力されるＶａｌｉｄ信号をカウントする書き込みアドレスカウンタ、２７０２はタイルマスターインタフェースより読み出し要求を受けて読み出し画素数をカウントする読み出しアドレスカウンタである。
【０２２２】
本実施形態の変倍処理の特徴を明確に説明するため、タイルの大きさを水平方向８画素、垂直方向８ラインであるとする。この場合のタイルバッファ７におけるアドレスの一例を図２８に示す。図２８にてハッチがかかっている部分が最初のタイル部分を示す。
【０２２３】
タイルバッファ７への書き込み時は、書き込みアドレスは図２８に示した番号順に出力され、タイルバッファ上の図示される位置に格納される。一方、読み出し時にはタイル単位で出力する必要があるため、読み出しアドレスを０→１→…→７→１６→１７→…として読み出し、図にてハッチがかかった部分を読み出した後、今度は８→９→…→１５→２４→…と読み出しを行う。そのため、読み出しアドレスは読み出しアドレスカウンタの出力アドレス信号の位置を入れ替えた信号をタイルバッファ７に与えることで実現できる。
【０２２４】
次に、本実施形態の構成を用いて変倍処理を行った場合のタイル１ラインあたりの処理時間を概算する。まず、タイル単位で処理を行う場合と、水平方向に２タイル連続して処理を行う場合との処理領域の違いを図２９に示す。図２９は簡単のため変倍率を１（つまり１００％）とした時の処理に必要な原画像データと、出力のタイルを示すものである。図２９（ａ）はタイル単位で処理を行う場合を図示し、ハッチがけを行った部分が外部メモリから読み出す必要がある画像データである。図に示すように、タイル単位で処理を行うため中央の濃い色でハッチがけされた部分は実際には外部メモリから２回、（最初のタイルの最後と次のタイルの最初）読み出される必要がある。
【０２２５】
２タイル連続して出力を行う本実施形態の処理結果を図２９（ｂ）に図示する。図２９（ｂ）では、水平方向に連続した２タイルを一度に処理するため、図２９（ａ）で示したような外部メモリ２１２３から２度読み出さなければならない領域が発生していない。もちろん、２タイル連続したタイルを生成した後には、同じように２度読みする領域が発生するが、その発生頻度は図２９（ａ）に図示した場合の半分である。
【０２２６】
次に、倍率１の場合のラインあたりの処理に要するクロックサイクルの概算を行う。処理を開始し、メモリインタフェースから画像データが出力されるまでの遅延は外部メモリを用いる以上避けることができず、読み出し要求を出してから、実際にメモリからデータが読み出されるまでのサイクル数は水平変倍回路が動作できない不要なサイクルとなる。このサイクル数をＴＡとする。
【０２２７】
また、メモリからの読み出しは、高速アクセスを行う必要上、バースト読み出しを行う必要があり、読み出し開始位置と、実際に変倍処理に必要な画素位置とが一致するとは限らないため、ここでも不要なサイクルが発生し、その値をＴＢとする。
【０２２８】
変倍演算開始時のオーバーヘッドおよび、パイプライン処理終了処理に要するサイクル数をＴＣとする。
【０２２９】
以上の条件にて実際の水平方向処理サイクル数を計算する、ただし、上記ＴＡ、ＴＢ、ＴＣには各々１０、７、５を代表値として用いるとすると、１タイル相当画素数の水平変倍に要する処理サイクルは
ＴＡ＋ＴＢ＋３２＋ＴＣ＝５４
一方、連続した２タイル分の水平方向変倍を一括処理する場合には
ＴＡ＋ＴＢ＋６４＋ＴＣ＝８６
これを１タイル分に換算するとその半分になるので８６／２＝４３
となり、平均して約２０％の処理サイクルの短縮つまり、高速化が可能となる。
【０２３０】
以上説明したように、本実施形態では、２つのタイルを処理するので、クロック速度の高速化等を行わなくても、高速な変倍処理が可能となる。なお、一括して処理するタイルの数は２つに限るものではなく、３つや４つを一括して処理するようにしてもよい。
【０２３１】
（第５の実施形態）
上記第４の実施形態では、複数タイルを一括して変倍処理するため、水平方向の端部の処理時には、本来必要としないデータまでも変倍ブロックから出力されてしまうことがある。
【０２３２】
本実施形態では、複数タイル単位で変倍処理する場合においても、有効なタイルのみを出力するように変倍処理部を制御する。
【０２３３】
［変倍処理の詳細］
本実施形態における変倍処理部２１１６のブロック構成は、第４の実施形態で説明した図２６のものと同様である。ただし、タイルバッファ制御回路２６０１の構成が、第４の実施形態と異なっている。以下、タイルバッファ制御回路２６０１の詳細について説明する。
【０２３４】
本実施形態のタイルバッファ制御回路のブロック図を、図３０に示す。図３０において、３００１は変倍ブロック６より変倍結果画像と同時に出力されるＶａｌｉｄ信号をカウントする書き込みアドレスカウンタ、３００２はタイルマスタインタフェースより読み出し要求を受けて読み出し画素数をカウントする読み出しアドレスカウンタである。
【０２３５】
図３１はタイルバッファのアドレス配置を説明するための図である。いま、図３１（ａ）に示されるように、タイルバッファが水平方向に２タイル分領域を確保して用いられているとすると、書き込み時のアドレスは図中に示されるようなアドレス配置となり、下位６ビットは水平方向の画素カウンタで占められ、上位５ビットはライン方向のカウンタで占められる。
【０２３６】
一方、図３１（ｂ）に示されるように、タイルバッファに格納されたタイルデータの読み出し時のアドレスは、タイル単位で読み出す必要上、水平方向に偶数番目のタイルか奇数番目のタイルかを示すビットがはさまれ、それより下位側の５ビットはタイル内の水平方向画素アドレスを、上位側５ビットは垂直方向のラインアドレスで占められる。
【０２３７】
この読み出し時のアドレスを正しく生成するために、読み出しアドレスカウンタは図３２にて示されるようなフローに従いアドレスを生成する。
【０２３８】
図３２のフローチャートの処理は、変倍処理部２１１６に内蔵されるＣＰＵ（図示せず）により制御されるものであり、処理に必要なパラメータ等は、ヘッダ情報を解析するタイルスレーブインタフェース４やレジスタインタフェース９から取得することができる。
【０２３９】
まず、変倍ブロック６から２タイル分の変倍処理が終了したことを示す信号が入力されるとタイルバッファ読み出し中であることを示す信号ｔｒａｎｓを１にセットする。また、アドレスカウンタを０にリセットし、かつ、タイルの番号を示す信号ｏｄｄを０にリセットする（Ｓ３２０１）。
【０２４０】
そして、タイルバッファより１画素ずつデータを読み出し、１タイル分のデータが読み出されるまでカウンタをカウントアップする（Ｓ３２０２：Ｎｏ，及びＳ３２０３）。
【０２４１】
１タイル分の変倍出力をタイルバッファより読み出し終えたら（Ｓ３２０２：Ｙｅｓ）、現在出力しているタイルバッファの内容が２タイル目であるかどうかを判断する（Ｓ３２０４）。
【０２４２】
２タイル目であるならば（Ｓ３２０４：Ｎｏ）、タイルバッファの読み出し終了動作を示す信号ｔｒａｎｓを０にリセットする（Ｓ３２０５）。逆に、読み出したタイルバッファの内容が１タイル目であった場合には（Ｓ３２０４：Ｙｅｓ）、水平方向の最後の変倍結果であるかどうかの信号Ｘｌａｓｔと、期待される出力タイル数が奇数であるかどうかを示す信号ＸｄｉｓｔＯｄｄを確認する（Ｓ３２０６）。
【０２４３】
ここで、水平方向の最終出力であり、かつ、期待される出力タイル数が奇数の場合（Ｓ３２０６：Ｙｅｓ）には、読み出しアドレスのカウントを中止し、ｔｒａｎｓ信号を０にリセットする（Ｓ３２０５）。それ以外の場合（Ｓ３２０６：Ｎｏ）にはｏｄｄを１にセットし、カウンタを０にリセットした後（Ｓ３２０７）、ステップＳ３２０２に戻り、上記のカウントアップ動作を再度実行する。
【０２４４】
このように、書き込みアドレスカウンタ３００１は、タイルバッファ７への書き込み制御を行うため、Ｖａｌｉｄ信号が１のときにカウントアップ動作を行うカウンタで構成される。また、書き込みアドレスカウンタ３００１は、タイルバッファ７への書き込み許可信号ＢｕｆＥｎを出力するために、図３３に示されるような回路にて構成される。
【０２４５】
図３３の回路は、ＢｕｆＥｎが１である場合にはタイルバッファ７への該当するラインへの書き込みデータ出力を変倍ブロック６に対し許可し、０である場合には変倍ブロック６のタイルバッファ７への該当するラインへの書き込みデータ出力処理を停止させることで、タイルバッファ７への書き込みを制御する。
【０２４６】
図３３の回路は、タイルマスターインタフェース８が動作していない場合には、タイルバッファ７への書き込みを許可する。
【０２４７】
また、タイルマスターインタフェース８が動作中で、タイルマスターインタフェース８が最初のタイルを出力中の場合には、タイルバッファ７への書き込みを禁止する。
【０２４８】
また、タイルマスターインタフェース８が動作中で、タイルマスターインタフェース８が２番目のタイルを出力中の場合には、読み出し中のタイルのラインアドレスＲｄＡｄｄｒ＿Ｌと書き込もうとしているラインアドレスから計算される値ＷｒＡｄｄ＿Ｌ＋１の大きさを比較し、ＲｄＡｄｄｒ＿Ｌ＞ＷｒＡｄｄ＿Ｌ＋１である場合のみ書き込みを許可する。ここで、書き込みアドレスに対し＋１が行われるのは、書き込み制御をライン単位で行わせることにより回路を簡単化するためである。
【０２４９】
以上説明したように、複数のタイルを一括して変倍処理する場合においても、有効な画像データのみを出力させるようにすることができる。
【０２５０】
（他の実施形態）
上記各実施形態の画像入出力装置は、複数の画像データに関する画像処理を並行に実行できるように構成されている。この画像入出力装置において、変倍処理を実行中、回転処理部等、他の画像処理部が画像メモリを同時に使用したとしても、本発明の適用により、互いの処理に関する画像メモリの競合を少なくすることができる。特に、画像入力インタフェースからの画像入力処理との並行処理を実行する際には、画像処理部において非常に大きな容量の画像データが同時に処理されることになる。しかし、この場合においても、画像メモリは各処理に関してタイル単位で確保されるので、円滑に並行処理を実行することができる。
【０２５１】
上記各実施形態では、デジタル複写機等の画像入出力装置を例に、本発明を説明してきたが、これに限るものではなく、本発明は複数の機器（例えば、ホストコンピュータ，インタフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）等、様々な画像入出力装置に適用してもよい。
【０２５２】
また、本発明は、画像入出力装置に限らず、パーソナルコンピュータ等情報処理装置にも、適用可能である。この場合、例えば、上記画像入出力装置の変倍処理に係る部分をオプションカード上に構成し、そのオプションカードを情報処理装置の汎用バスに接続して用いる装置構成が考えられる。
【０２５３】
また、情報処理装置のＣＰＵとメインメモリを上記変倍回路とし、画像処理専用の他のメモリを外部メモリとする装置構成をとるようにしても、本発明の処理は実行可能である。この場合、ＣＰＵが上記実施形態で説明した変倍処理のプログラムを実行することにより、メインメモリの記憶領域を節約することができる。このとき用いられる変倍処理のためのプログラムは、予め装置の記憶媒体等に格納されることになる。
【０２５４】
すなわち、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０２５５】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２５６】
プログラムコードを供給するための記憶媒体としては、例えばフロッピー（Ｒ）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０２５７】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２５８】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２５９】
同様に、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを蓄積した外部装置（例えばアプリケーションサーバー等）から、ネットワークを介してダウンロードすることにより、システムあるいは装置の記憶装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）がこの外部装置に格納されたプログラムコードを読み出し実行することによっても、完成されることは言うまでもない。
【０２６０】
【発明の効果】
以上説明してきたように、本発明によれば、少ないメモリ容量でタイル単位に変倍処理を行うことができるという効果がある。
【０２６１】
また、外部メモリを用いた画像処理、特に変倍処理を行う際の処理速度を向上させることができるという効果がある。
【０２６２】
また、簡単な構成で変倍処理と画像データの書き込み処理を行う際のメモリ管理を容易に効率よく行えるという効果がある。
【０２６３】
また、回路のクロック速度を上げることなく、変倍処理を行う際の処理速度を向上させることができるという効果がある。
【０２６４】
また、外部メモリを用いた変倍処理におけるデータ管理を容易にすることができるという効果がある。
【０２６５】
また、ＩＣチップ内の回路構成にはほとんど影響を与えることなく、様々な変倍率や画像サイズに対応した変倍処理が可能となるという効果がある。
【図面の簡単な説明】
【図１】本発明を適用可能な画像入出力装置（デジタル複写機）の構成を説明するブロック図である。
【図２】システム制御部の構成を説明する詳細ブロック図である。
【図３】画像処理部の構成を説明する詳細ブロック図である。
【図４】図１の画像入出力装置を含むネットワークシステム全体の構成を説明する図である。
【図５】図１の画像入出力装置で用いられるデータパケットを説明するための図である。
【図６】図１の画像入出力装置で用いられるコマンドパケットを説明するための図である。
【図７】図１の画像入出力装置で用いられるインタラプトパケットを説明するための図である。
【図８】各パケットを管理するパケットテーブルを説明するための図である。
【図９】画像入力処理に関連するブロック間のデータの経路と処理手順を示す図である。
【図１０】スキャナ２０７０で読み取った原稿画像のタイル画像への分割例を示す図である。
【図１１】画像出力処理に関連するブロック間のデータの経路と処理手順を示す図である。
【図１２】データパケットの変倍処理に関連するブロック間のデータの経路と処理手順を示す図である。
【図１３】第１−３の実施形態における変倍処理部の構成を示す図である。
【図１４】変倍ブロック６の詳細な構成を示すブロック図である。
【図１５】外部メモリ上に展開されるタイル単位のラスタデータを示す図である。
【図１６】図１４に示した変倍コントロールブロックの詳細を示すブロック図である。
【図１７】第２の実施形態におけるメモリインタフェース５の詳細な構成を示す図である。
【図１８】図１７に示した読み出し制御回路の詳細な構成を示す図である。
【図１９】読み出し制御回路の動作を説明するためのタイミングチャートである。
【図２０】図１３に示したメモリインタフェースの一例を示す詳細ブロック図である。
【図２１】図２０に示した排他制御回路の詳細回路の一例を示すブロック図である。
【図２２】図２０に示した排他制御回路によるタイル画像データ転送処理時のメモリ状態を説明するための図である。
【図２３】図２０に示した排他制御回路によるタイル画像データ転送処理時のメモリ状態を説明するための図である。
【図２４】図２０に示した排他制御回路によるタイル画像データ転送処理時のメモリ状態を説明するための図である。
【図２５】図２０に示した排他制御回路によるタイル画像データ転送処理時のメモリ状態を説明するための図である。
【図２６】第４、第５の実施形態における変倍処理部のブロック構成を示す図である。
【図２７】第４の実施形態におけるタイルバッファ制御回路を示すブロック図である。
【図２８】タイルバッファ７におけるアドレスの一例を示す図である。
【図２９】タイル単位で処理を行う場合と、水平方向に２タイル連続して処理を行う場合との処理領域の違いを示す図である。
【図３０】第５の実施形態におけるタイルバッファ制御回路を示すブロック図である。
【図３１】タイルバッファのアドレス配置を説明するための図である。
【図３２】読み出しアドレスカウンタが従うアドレス生成のためのフローである。
【図３３】書き込みアドレスカウンタの回路構成を示す図である。
【図３４】従来の変倍回路の動作概略を示す図である。
【図３５】従来の変倍回路の詳細な構成を示すブロック図である。
【図３６】フィルタ処理回路の動作を示す図である。
【符号の説明】
４　タイルスレーブインタフェース
５　メモリインタフェース
６　変倍ブロック
７　タイルバッファ
８　タイルマスターインタフェース
９　レジスタインタフェース
２１１６　変倍処理部
２１２３　画像（外部）メモリ
【図１】
2004048372.tif 000004
【図２】
2004048372.tif 000005
【図３】
2004048372.tif 000006
【図４】
2004048372.tif 000007
【図５】
2004048372.tif 000008
【図６】
2004048372.tif 000009
【図７】
2004048372.tif 000010
【図８】
2004048372.tif 000011
【図９】
2004048372.tif 000012
【図１０】
2004048372.tif 000013
【図１１】
2004048372.tif 000014
【図１２】
2004048372.tif 000015
【図１３】
2004048372.tif 000016
【図１４】
2004048372.tif 000017
【図１５】
2004048372.tif 000018
【図１６】
2004048372.tif 000019
【図１７】
2004048372.tif 000020
【図１８】
2004048372.tif 000021
【図１９】
2004048372.tif 000022
【図２０】
2004048372.tif 000023
【図２１】
2004048372.tif 000024
【図２２】
2004048372.tif 000025
【図２３】
2004048372.tif 000026
【図２４】
2004048372.tif 000027
【図２５】
2004048372.tif 000028
【図２６】
2004048372.tif 000029
【図２７】
2004048372.tif 000030
【図２８】
2004048372.tif 000031
【図２９】
2004048372.tif 000032
【図３０】
2004048372.tif 000033
【図３１】
2004048372.tif 000034
【図３２】
2004048372.tif 000035
【図３３】
2004048372.tif 000036
【図３４】
2004048372.tif 000037
【図３５】
2004048372.tif 000038
【図３６】
2004048372.tif 000039