(57)【要約】【課題】主走査方向の画素数が、バッファの容量を超えている入力画像データを処理でき、また、主走査、副走査の双方に対する拡大縮小処理を一度に行うことができる画像処理装置を提供する。【解決手段】処理対象となった画像データの主走査方向幅以下の容量を有し、逐次的に入力される画素値情報を格納するバッファメモリ２８と、拡縮画像データのうち、主走査方向については主走査方向幅分、副走査方向については少なくともその一部を保持可能なバンドメモリ部２４とを備え、ラスタデータ処理部２３が、バッファメモリ２８に格納された各画素値情報の転送先となるバンドメモリ部２４内の転送先アドレス情報を、指定された拡大縮小率に応じて生成し、生成された転送先アドレス情報に基づいて、バッファメモリ２８から、前記バンドメモリ部２４への画素値情報の転送を行う画像処理装置である。【選択図】        図１
2004289667.tif 000002
【特許請求の範囲】
【請求項１】
処理対象となった画像データに含まれる各画素の画素値情報の入力をラスタスキャン順に逐次的に受けて、指定された拡大縮小率で当該画像データを拡大縮小した拡縮画像データを生成する画像処理装置であって、
前記画像データの主走査方向幅以下の容量を有し、前記逐次的に入力される画素値情報を格納する第１メモリと、
前記拡縮画像データのうち、主走査方向については主走査方向幅分、副走査方向については少なくともその一部を保持可能な第２メモリと、
前記第１メモリに格納された各画素値情報の転送先となる前記第２メモリ内の転送先アドレス情報を、指定された拡大縮小率に応じて生成する手段と、
前記生成された転送先アドレス情報に基づいて、前記第１メモリから、前記第２メモリへの画素値情報の転送を行う手段と、
を含むことを特徴とする画像処理装置。
【請求項２】
処理対象となった画像データに含まれる各画素の画素値情報の入力をラスタスキャン順に逐次的に受けて、指定された拡大縮小率で当該画像データを拡大縮小した拡縮画像データを生成する画像処理装置であって、
前記画像データの主走査方向幅以下の容量を有し、前記逐次的に入力される画素値情報を格納する第１メモリと、
前記拡縮画像データを主走査方向については主走査方向幅分、副走査方向については少なくともその一部を保持可能な第２メモリと、
前記第２メモリ内の各アドレスに保持すべき画素値情報を格納している、前記第１メモリ内の転送元アドレスを、指定された拡大縮小率に応じて定められるアドレスシフト量に基づいて生成する転送元アドレス生成手段と、
前記生成された転送元アドレス情報に基づいて、前記第１メモリから、前記第２メモリへの画素値情報の転送を行う手段と、
を含むことを特徴とする画像処理装置。
【請求項３】
請求項１又は２に記載の画像処理装置において、
前記第１メモリの容量に基づいて規定されるサイズの画素ブロックに、前記画像データを分割する手段をさらに含み、
前記第１メモリは、前記分割された画素ブロックに含まれる画素値情報を格納することを特徴とする画像処理装置。
【請求項４】
請求項２に記載の画像処理装置において、
前記転送元アドレス生成手段は、前記アドレスシフト量の累積加算演算に基づいて得られるオフセット値を利用して転送元アドレスを生成しており、
前記転送の後に、その時点での前記オフセット値のうち、少なくとも小数点以下部分を保持する保持手段を含む、
ことを特徴とする画像処理装置。
【請求項５】
請求項２に記載の画像処理装置において、
前記転送元アドレス生成手段は、主走査方向及び副走査方向のそれぞれについて、主走査方向、副走査方向のそれぞれに対する拡大縮小率に応じたアドレスシフト量を、それぞれ累積加算演算して得られる各オフセット値を利用して転送元アドレスを生成しており、
前記転送の後に、その時点での主走査方向に関する前記オフセット値のうち、少なくとも小数点以下部分を保持する第１保持手段と、
副走査方向に関する前記オフセット値のうち、少なくとも小数点以下部分を保持する第２保持手段と、
を含む、
ことを特徴とする画像処理装置。
【請求項６】
請求項４に記載の画像処理装置において、
前記転送元アドレス生成手段は、前記第２メモリが拡縮画像データの副走査方向幅分の画素値情報を保持できない場合、
当該第２メモリの容量分だけ転送した時点での前記オフセット値のうち、少なくとも小数点以下部分を次回の転送元アドレスの演算の初期値として保持する初期値保持手段をさらに有することを特徴とする画像処理装置。
【請求項７】
請求項４から６のいずれか一項に記載の画像処理装置において、
前記アドレスシフト量は、指定された拡大縮小率の逆数であり、
前記転送元アドレス生成手段は、現在のオフセット値に、アドレスシフト量を加算してオフセット値を更新し、
その更新後のオフセット値が「１」以上となった場合には、転送元アドレスを一つ進める
ことを特徴とする画像処理装置。
【請求項８】
請求項６に記載の画像処理装置において、
前記アドレスシフト量は、指定された拡大縮小率の逆数であり、
前記転送元アドレス生成手段は、現在のオフセット値に、アドレスシフト量を加算してオフセット値を更新し、
その更新後のオフセット値が「１」以上となった場合には、転送元アドレスを一つ進め、
前記第１メモリに格納されている画素値情報の、処理対象画像データ上での位置を参照し、当該位置が所定の条件を満足する場合は、前記オフセット値を、前記初期値保持手段に保持されている初期値に設定する
ことを特徴とする画像処理装置。
【請求項９】
コンピュータを用い、処理対象となった画像データに含まれる各画素の画素値情報の入力をラスタスキャン順に逐次的に受けて、指定された拡大縮小率で当該画像データを拡大縮小した拡縮画像データを生成する画像処理方法であって、
前記画像データの主走査方向幅以下の容量を有する第１メモリに、前記逐次的に入力される画素値情報を格納する工程と、
前記拡縮画像データのうち、主走査方向については主走査方向幅分、副走査方向については少なくともその一部を保持可能な第２メモリに対して、前記第１メモリから画素値情報の転送を行う工程であって、転送先となる前記第２メモリ内の転送先アドレス情報を、指定された拡大縮小率に応じて生成し、当該転送先アドレス情報に基づいて、前記第１メモリに格納されている画素値情報を前記第２メモリへ転送する工程と、
を含むことを特徴とする画像処理方法。
【請求項１０】
コンピュータを用い、処理対象となった画像データに含まれる各画素の画素値情報の入力をラスタスキャン順に逐次的に受けて、指定された拡大縮小率で当該画像データを拡大縮小した拡縮画像データを生成する画像処理方法であって、
前記画像データの主走査方向幅以下の容量を有する第１メモリに、前記逐次的に入力される画素値情報を格納する工程と、
前記拡縮画像データを主走査方向については主走査方向幅分、副走査方向については少なくともその一部を保持可能な第２メモリに対して、前記第１メモリから画素値情報の転送を行う工程であって、前記第２メモリ内の各アドレスに保持すべき画素値情報を格納している前記第１メモリ内の転送元アドレスを、指定された拡大縮小率に応じて定められるアドレスシフト量に基づいて生成し、当該生成された転送元アドレス情報に基づいて、前記第１メモリから、前記第２メモリへの画素値情報の転送を行う工程と、
を含むことを特徴とする画像処理方法。
【請求項１１】
処理対象となった画像データに含まれる各画素の画素値情報の入力をラスタスキャン順に逐次的に受けて、指定された拡大縮小率で当該画像データを拡大縮小した拡縮画像データを生成する画像処理プログラムであって、コンピュータに、
前記画像データの主走査方向幅以下の容量を有する第１メモリに、前記逐次的に入力される画素値情報を格納する手順と、
前記拡縮画像データのうち、主走査方向については主走査方向幅分、副走査方向については少なくともその一部を保持可能な第２メモリに対して、前記第１メモリから画素値情報の転送を行う手順であって、転送先となる前記第２メモリ内の転送先アドレス情報を、指定された拡大縮小率に応じて生成し、当該転送先アドレス情報に基づいて、前記第１メモリに格納されている画素値情報を前記第２メモリへ転送する手順と、
を実行させることを特徴とする画像処理プログラム。
【請求項１２】
処理対象となった画像データに含まれる各画素の画素値情報の入力をラスタスキャン順に逐次的に受けて、指定された拡大縮小率で当該画像データを拡大縮小した拡縮画像データを生成する画像処理プログラムであって、コンピュータに、
前記画像データの主走査方向幅以下の容量を有する第１メモリに、前記逐次的に入力される画素値情報を格納する手順と、
前記拡縮画像データを主走査方向については主走査方向幅分、副走査方向については少なくともその一部を保持可能な第２メモリに対して、前記第１メモリから画素値情報の転送を行う手順であって、前記第２メモリ内の各アドレスに保持すべき画素値情報を格納している前記第１メモリ内の転送元アドレスを、指定された拡大縮小率に応じて定められるアドレスシフト量に基づいて生成し、当該生成された転送元アドレス情報に基づいて、前記第１メモリから、前記第２メモリへの画素値情報の転送を行う手順と、
を含むことを特徴とする画像処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像データに対して拡大縮小処理を行う画像処理装置に関する。
【０００２】
【従来の技術】
プリンタなどの画像処理装置は一般に、ページ記述言語（ＰＤＬ）と呼ばれる言語記述された画像データを、パーソナルコンピュータなどから受け入れて、これを処理する。具体的にプリンタの画像生成部は、当該記述を解釈しながらラスタデータを描画し、プリンタエンジンに当該ラスタデータを転送し、プリンタエンジンにて印刷出力が行われる。
【０００３】
こうしたページ記述言語で記述された画像データは、一般にはベクトルデータ等であって、画像生成部でラスタデータの生成が行われるため、その場でプリンタエンジンの解像度でのラスタデータを生成でき、プリンタエンジンの解像度に適合した印刷結果が得られるのが普通である。
【０００４】
しかしページ記述言語で記述された画像データのなかには、ラスタデータそのものが埋め込まれる場合がある。このような場合は、当該埋め込まれたラスタデータをそのままプリンタエンジンに出力して印刷結果を得る。
【０００５】
ところが、このラスタデータは、必ずしもプリンタエンジンの解像度と同じ解像度で生成されているとはいえないため、画像生成部は、当該埋め込まれていたラスタデータを、プリンタエンジンの解像度になるよう、拡大縮小処理する。
【０００６】
従来一般的な拡大縮小処理の方法としては、非特許文献１に開示されている最近隣内挿法（ｎｅａｒｅｓｔ  ｎｅｉｇｈｂｏｒ  ｉｎｔｅｒｐｏｌａｔｉｏｎ）がある。また、この方法を実装した例として、特許文献１、２等が開示されている。
【０００７】
【非特許文献１】
高木幹雄、下田陽久  監修、「画像処理ハンドブック」、初版、１９９１年１月、東京大学出版会
【特許文献１】
特開平４−３６７０８０号公報
【特許文献２】
特開２００１−１５０７３９号公報
【０００８】
【発明が解決しようとする課題】
しかしながら、上記従来の画像処理装置によると、入力される画像データを少なくとも１ライン（主走査方向幅分）保持可能なラインバッファを備える必要がある。また、単純に読み出し方法を変更するだけでは主走査方向、副走査方向の双方に対する拡大縮小処理を一度に行うことができない。
【０００９】
本発明は、上記実情に鑑みて為されたもので、主走査方向の画素数が、バッファの容量を超えている入力画像データを処理でき、また、主走査、副走査の双方に対する拡大縮小処理を一度に行うことができる画像処理装置を提供することをその目的の一つとする。
【００１０】
【課題を解決するための手段】
上記従来例の問題点を解決するための本発明は、処理対象となった画像データに含まれる各画素の画素値情報の入力をラスタスキャン順に逐次的に受けて、指定された拡大縮小率で当該画像データを拡大縮小した拡縮画像データを生成する画像処理装置であって、前記画像データの主走査方向幅以下の容量を有し、前記逐次的に入力される画素値情報を格納する第１メモリと、前記拡縮画像データのうち、主走査方向については主走査方向幅分、副走査方向については少なくともその一部を保持可能な第２メモリと、前記第１メモリに格納された各画素値情報の転送先となる前記第２メモリ内の転送先アドレス情報を、指定された拡大縮小率に応じて生成する手段と、前記生成された転送先アドレス情報に基づいて、前記第１メモリから、前記第２メモリへの画素値情報の転送を行う手段と、を含むことを特徴としている。
【００１１】
また、上記従来例の問題点を解決するための本発明は、処理対象となった画像データに含まれる各画素の画素値情報の入力をラスタスキャン順に逐次的に受けて、指定された拡大縮小率で当該画像データを拡大縮小した拡縮画像データを生成する画像処理装置であって、前記画像データの主走査方向幅以下の容量を有し、前記逐次的に入力される画素値情報を格納する第１メモリと、前記拡縮画像データを主走査方向については主走査方向幅分、副走査方向については少なくともその一部を保持可能な第２メモリと、前記第２メモリ内の各アドレスに保持すべき画素値情報を格納している、前記第１メモリ内の転送元アドレスを、指定された拡大縮小率に応じて定められるアドレスシフト量に基づいて生成する転送元アドレス生成手段と、前記生成された転送元アドレス情報に基づいて、前記第１メモリから、前記第２メモリへの画素値情報の転送を行う手段と、を含むことを特徴としている。
【００１２】
ここで前記第１メモリの容量に基づいて規定されるサイズの画素ブロックに、前記画像データを分割する手段をさらに含み、前記第１メモリは、前記分割された画素ブロックに含まれる画素値情報を格納することとしてもよい。
【００１３】
また、前記転送元アドレス生成手段は、前記アドレスシフト量の累積加算演算に基づいて得られるオフセット値を利用して転送元アドレスを生成しており、前記転送の後に、その時点での前記オフセット値のうち、少なくとも小数点以下部分を保持する保持手段を含む、こととしてもよい。
【００１４】
さらに、前記転送元アドレス生成手段は、主走査方向及び副走査方向のそれぞれについて、主走査方向、副走査方向のそれぞれに対する拡大縮小率に応じたアドレスシフト量を、それぞれ累積加算演算して得られる各オフセット値を利用して転送元アドレスを生成しており、前記転送の後に、その時点での主走査方向に関する前記オフセット値のうち、少なくとも小数点以下部分を保持する第１保持手段と、副走査方向に関する前記オフセット値のうち、少なくとも小数点以下部分を保持する第２保持手段と、を含むようにしてもよい。
【００１５】
また、前記転送元アドレス生成手段は、前記第２メモリが拡縮画像データの副走査方向幅分の画素値情報を保持できない場合、当該第２メモリの容量分だけ転送した時点での前記オフセット値のうち、少なくとも小数点以下部分を次回の転送元アドレスの演算の初期値として保持する初期値保持手段をさらに有することとしてもよい。
【００１６】
さらに前記アドレスシフト量は、指定された拡大縮小率の逆数であり、前記転送元アドレス生成手段は、現在のオフセット値に、アドレスシフト量を加算してオフセット値を更新し、その更新後のオフセット値が「１」以上となった場合には、転送元アドレスを一つ進めることとしてもよい。
【００１７】
さらに、前記アドレスシフト量は、指定された拡大縮小率の逆数であり、前記転送元アドレス生成手段は、現在のオフセット値に、アドレスシフト量を加算してオフセット値を更新し、その更新後のオフセット値が「１」以上となった場合には、転送元アドレスを一つ進め、前記第１メモリに格納されている画素値情報の、処理対象画像データ上での位置を参照し、当該位置が所定の条件を満足する場合は、前記オフセット値を、前記初期値保持手段に保持されている初期値に設定するようにしてもよい。
【００１８】
また、上記従来例の問題点を解決するための本発明は、コンピュータを用い、処理対象となった画像データに含まれる各画素の画素値情報の入力をラスタスキャン順に逐次的に受けて、指定された拡大縮小率で当該画像データを拡大縮小した拡縮画像データを生成する画像処理方法であって、前記画像データの主走査方向幅以下の容量を有する第１メモリに、前記逐次的に入力される画素値情報を格納する工程と、前記拡縮画像データのうち、主走査方向については主走査方向幅分、副走査方向については少なくともその一部を保持可能な第２メモリに対して、前記第１メモリから画素値情報の転送を行う工程であって、転送先となる前記第２メモリ内の転送先アドレス情報を、指定された拡大縮小率に応じて生成し、当該転送先アドレス情報に基づいて、前記第１メモリに格納されている画素値情報を前記第２メモリへ転送する工程と、を含むことを特徴としている。
【００１９】
また、上記従来例の問題点を解決するための本発明は、コンピュータを用い、処理対象となった画像データに含まれる各画素の画素値情報の入力をラスタスキャン順に逐次的に受けて、指定された拡大縮小率で当該画像データを拡大縮小した拡縮画像データを生成する画像処理方法であって、前記画像データの主走査方向幅以下の容量を有する第１メモリに、前記逐次的に入力される画素値情報を格納する工程と、前記拡縮画像データを主走査方向については主走査方向幅分、副走査方向については少なくともその一部を保持可能な第２メモリに対して、前記第１メモリから画素値情報の転送を行う工程であって、前記第２メモリ内の各アドレスに保持すべき画素値情報を格納している前記第１メモリ内の転送元アドレスを、指定された拡大縮小率に応じて定められるアドレスシフト量に基づいて生成し、当該生成された転送元アドレス情報に基づいて、前記第１メモリから、前記第２メモリへの画素値情報の転送を行う工程と、を含むことを特徴としている。
【００２０】
さらに、上記従来例の問題点を解決するための本発明は、処理対象となった画像データに含まれる各画素の画素値情報の入力をラスタスキャン順に逐次的に受けて、指定された拡大縮小率で当該画像データを拡大縮小した拡縮画像データを生成する画像処理プログラムであって、コンピュータに、前記画像データの主走査方向幅以下の容量を有する第１メモリに、前記逐次的に入力される画素値情報を格納する手順と、前記拡縮画像データのうち、主走査方向については主走査方向幅分、副走査方向については少なくともその一部を保持可能な第２メモリに対して、前記第１メモリから画素値情報の転送を行う手順であって、転送先となる前記第２メモリ内の転送先アドレス情報を、指定された拡大縮小率に応じて生成し、当該転送先アドレス情報に基づいて、前記第１メモリに格納されている画素値情報を前記第２メモリへ転送する手順と、を実行させることを特徴としている。
【００２１】
また、上記従来例の問題点を解決するための本発明は、処理対象となった画像データに含まれる各画素の画素値情報の入力をラスタスキャン順に逐次的に受けて、指定された拡大縮小率で当該画像データを拡大縮小した拡縮画像データを生成する画像処理プログラムであって、コンピュータに、前記画像データの主走査方向幅以下の容量を有する第１メモリに、前記逐次的に入力される画素値情報を格納する手順と、前記拡縮画像データを主走査方向については主走査方向幅分、副走査方向については少なくともその一部を保持可能な第２メモリに対して、前記第１メモリから画素値情報の転送を行う手順であって、前記第２メモリ内の各アドレスに保持すべき画素値情報を格納している前記第１メモリ内の転送元アドレスを、指定された拡大縮小率に応じて定められるアドレスシフト量に基づいて生成し、当該生成された転送元アドレス情報に基づいて、前記第１メモリから、前記第２メモリへの画素値情報の転送を行う手順と、を含むことを特徴としている。
【００２２】
【発明の実施の形態】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る画像処理装置は、図１に示すように、コンピュータシステムによって制御されるプリンタ装置であり、画像データ入力部１１と、ラスタデータ生成部１２と、プリンタエンジン部１３とを含んで構成されている。また、ラスタデータ生成部１２は、ページ記述言語処理部２１と、画像処理部２２と、ラスタデータ処理部２３と、バンドメモリ部２４とを含む。
【００２３】
さらにラスタデータ処理部２３は、入力バッファ部２５と、メモリ転送部２６と、拡大縮小制御部２７と、第１メモリとしてのバッファメモリ２８とを含んでなり、ここで拡大縮小制御部２７は、図示しないコンピュータ読み取り可能な記憶媒体（ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ、ハードディスク装置など）に格納されているプログラムに従って動作するもので、このプログラムは、機能的には図２に示すように、メモリ制御部３１と、主走査方向拡縮部３２と、主走査方向拡縮制御部３３と、副走査方向拡縮制御部３４と、転送制御部３５とを含んで構成されている。
【００２４】
画像データ入力部１１は、外部のパーソナルコンピュータ等から、所定のページ記述言語で記述された画像データの入力を受けてラスタデータ生成部１２に出力する。ラスタデータ生成部１２は、入力された画像データに基づき、プリンタエンジン部１３で行われる印刷解像度（以下、単に印刷解像度という）のラスタデータを生成して出力する。このラスタデータ生成部１２の具体的内容は、後に詳しく述べる。プリンタエンジン部１３は、ラスタデータ生成部１２が出力するラスタデータに基づいて用紙に画像データを印刷して出力する。
【００２５】
ラスタデータ生成部１２のページ記述言語処理部２１は、入力された画像データに含まれるページ記述言語での記述を、所定の中間言語での記述に変換して画像処理部２２に出力する。ここで中間言語での記述には、ラスタデータ部分と、ラスタデータでない部分（描画命令などの部分）との少なくともいずれか一方が含まれる。
画像処理部２２は、ページ記述言語処理部２１から入力される中間言語での記述を、図示しないメモリに保持し、当該中間言語での記述を参照しながら、ラスタデータでない部分については印刷解像度のラスタデータを生成して、バンドメモリ部２４に出力する。またラスタデータ部分については、当該ラスタデータをラスタデータ処理部２３に逐次的に出力する。また、この画像処理部２２は、ラスタデータ処理部２３から入力されるラスタデータ（画素値の情報）を、バンドメモリ部２４に出力する。
【００２６】
ラスタデータ処理部２３は、逐次的に入力されるラスタデータの解像度と、印刷解像度とを比較して拡大縮小率を演算し、当該拡大縮小率に基づく拡大縮小処理を行い、その拡大縮小処理後の画像データ（拡縮画像データ）を構成する各画素値情報を、各画素値情報を格納すべきバンドメモリ部２４上のアドレスを指定するアドレス情報とともに、バンドメモリ部２４に出力する。
【００２７】
バンドメモリ部２４は、本発明の第２メモリに相当し、拡大縮小処理後の画像データのうち、主走査方向については主走査方向幅分、副走査方向については少なくともその一部を保持可能な容量を有している。すなわち、主走査方向（行方向）については、プリンタエンジン部１３の印刷解像度と印刷可能幅とで規定される画素数分の記憶領域を有するが、副走査方向については必ずしも、印刷可能な長さに相当する行数分の記憶領域を有していなくてもよい。なお、印刷可能な長さに相当する行数分の記憶領域を有するページメモリを、このバンドメモリ部２４の代わりに用いてもよい。
【００２８】
本実施の形態において特徴的なことの一つは、このラスタデータ処理部２３の処理である。以下、このラスタデータ処理部２３の処理の例について説明する。なお、以下の説明では拡大処理を例として説明するが、縮小処理も同様に行うことができる。
【００２９】
本実施の形態のラスタデータ処理部２３のバッファメモリ２８は、ラスタデータの主走査方向幅以下の容量を有するメモリである。
【００３０】
ラスタデータ処理部２３の入力バッファ部２５は、逐次的に入力されるラスタデータの画素値情報を一時的に保持し、当該画素値情報をバッファメモリ２８に書き込む。メモリ転送部２６は、拡大縮小制御部２７から、バッファメモリ２８上の転送元アドレスと、バンドメモリ部２４上の転送先アドレスとを指定する情報の入力を受けて、当該指定された、バッファメモリ２８上の転送元アドレスから画素値情報を読み出して、画像処理部２２を介してバンドメモリ部２４上の転送先アドレスに転送する。
【００３１】
拡大縮小制御部２７は、逐次的に入力されるラスタデータの解像度と、印刷解像度とを比較して拡大縮小率を演算し、バッファメモリ２８に保持されている各画素値情報について、それら各々の転送先となる、バンドメモリ部２４上のアドレス値（転送先アドレス）を、この拡大縮小率に応じてそれぞれ決定し、各画素値情報について、その格納場所である転送元アドレスと、それぞれについて決定された転送先アドレスとを、メモリ転送部２６に出力する。
【００３２】
具体的にこの拡大縮小制御部２７は、基本的に次のように動作する。なお、以下の説明では図３（ａ）に示すように、主走査方向の画素数がＷ個であるようなラスタデータを、主走査方向にＮ倍、副走査方向にＭ倍した拡縮画像データを生成する場合について説明する。
ここで、バッファメモリ２８の容量がｘ（ここでｘ≦Ｗ）であるとすると、入力バッファ部２５からバッファメモリ２８にｘ個の画素値情報が書き込まれる。具体的に図３（ａ）の例でいえば、主走査方向の画素Ｐ０，０〜Ｐ０，Ｗのうち、Ｐ０，０〜Ｐ０，ｘ−１までのｘ個の画素値情報がバッファメモリ２８に保持された状態となっている。
【００３３】
拡大縮小制御部２７は、転送元アドレスとして、Ｐ０，０の画素値情報の格納場所を表す情報を出力し、またこれとともに、拡縮画像データの左上の画素を格納すべき位置を表す、バンドメモリ部２４上の転送先アドレスから、順次、主走査方向に転送先アドレスをインクリメントしつつ、Ｎ個（図３ではＮ＝２としている）の転送先アドレスを出力する。すると、バンドメモリ部２４には、図３（ｂ）に示すように、Ｐ０，０がＮ個（この例では２個）主走査方向に連続して転送された状態となる（Ｐ）。
【００３４】
拡大縮小制御部２７は、バッファメモリ２８に格納されている各画素値情報Ｐ０，０〜Ｐ０，ｘ−１の各転送元アドレスについて、それぞれＮ個ずつ転送先アドレスを出力する処理を行って、主走査方向にＮ倍に拡大したラスタデータの一部をバンドメモリ部２４に形成する（Ｑ）。以下、このような主走査方向への処理を「主走査方向処理」と呼ぶ。
【００３５】
次に、拡大縮小制御部２７は、拡縮画像データの左上の画素を格納すべき位置を表す、バンドメモリ部２４上の転送先アドレスから転送先アドレスを副走査方向に一つだけ進める。例えばバンドメモリ部２４の主走査方向の幅がＬである場合、当初の転送先アドレスにＬを加算する（Ｓ１）。そして拡大縮小制御部２７は、Ｐ０，０を格納した転送元アドレスから、主走査方向処理を繰り返して行う。この副走査方向への処理を、以下、副走査方向処理と呼ぶ。
【００３６】
この副走査方向処理をＭ回繰り返して行った後、拡大縮小制御部２７は、入力バッファ２５に対して処理の完了を報知し、次の画素値情報群Ｐ０，ｘ〜Ｐ０，２ｘ−１をバッファメモリ２８に格納させる。
【００３７】
そして、拡大縮小制御部２７は拡縮画像データの左上の画素を格納すべき位置を表す、バンドメモリ部２４上の転送先アドレスから主走査方向にｘだけ進めたアドレスから（Ｓ２）、再び主走査方向処理と副走査方向処理とを行う。
【００３８】
拡大縮小制御部２７は、このようにしてバッファメモリ２８に保持可能なｘ個の画素値情報群をブロックとして上記処理（以下、ブロック処理と呼ぶ）を行い、ラスタデータの１行分の処理を終えると、次の行に移って（Ｓ３）、さらにブロック処理を繰り返す。
【００３９】
そしてバッファメモリ２８には、図３（ｂ）に示すように、Ｎ×Ｍ倍に拡大されたラスタデータが保持されているようになる。
【００４０】
すなわち、この拡大縮小制御部２７は、拡大処理においては、各画素値情報の転送元アドレスから複数の転送先アドレスに対して転送させることで拡大処理を行っている。副走査方向への拡大も、バッファメモリ２８の副走査方向に転送先アドレスを移動しながら同じ画素値情報を出力することで実現している。
【００４１】
図４に、拡大縮小制御部２７が出力する信号の例を転送タイミングチャートとして示す。図４において、ＲＤＹはバンドメモリ部２４への転送が有効であることを示す制御信号であり、ＥＮＡはバンドメモリ部２４がデータ転送を受入可能であることを示す制御信号である。ＡＤＤＲＥＳＳは、ＲＤＹがアサートに変わったときの転送先アドレスである。またＤＡＴＡは、画素値情報であり、ＥＮＤは、バースト転送（ここではｘ個の画素値情報１行分がバースト転送される）が終了したことを示す制御信号である。
【００４２】
この拡大方式の場合、ラスタデータはスキャンライン順に入力されるものの、バッファメモリ２８からバンドメモリ部２４への転送はスキャンライン順に転送されるとは限らない（ｘ個ずつのブロックに分けて副走査方向への走査が行われる）。ここでは最初の画素値情報Ｐ０，０が転送開始になるとき（Ｄｘ，Ｄｙ）の転送先アドレスへ、当該画素値情報を転送している。その後は、主走査方向に順次転送されるため、図４に示すように拡大縮小制御部２７は、必ずしも転送先アドレスを指定する必要はなく、バンドメモリ部２４側で、転送先アドレスを主走査方向に順次インクリメントしながら格納していけばよい。
【００４３】
図４に示すようにブロックの終端の画素値情報Ｐ０，ｘ−１が転送されるときにＥＮＤ信号が生じ、主走査方向の１行分の拡大が終了したことを示している。再び拡大データＰ０，０が転送開始になるときに拡大縮小制御部２７は、（Ｄｘ，Ｄｙ＋１）の転送先アドレスから転送を開始し、副走査方向への拡大を行う。なお、縮小の場合は、画素値情報を間引いて転送することとなる。
【００４４】
ここで拡大縮小制御部２７のより詳しい処理の内容例について述べる。すでに図２に示したように、拡大縮小制御部２７が実行するプログラムは、機能的に、メモリ制御部３１と、主走査方向拡縮部３２と、主走査方向拡縮制御部３３と、副走査方向拡縮制御部３４と、転送制御部３５とを含み、メモリ制御部３１は、入力される画素値情報の転送制御やバッファメモリ２８の制御を行う。主走査方向拡縮部３２は、ブロックを単位として転送されてくる画素値情報を主走査方向に拡大縮小する処理（主走査方向処理）を行う。
【００４５】
主走査方向拡縮制御部３３は、主走査方向の拡縮計算を行い、転送先アドレスの信号等を生成する。副走査方向拡縮制御部３４は、副走査方向の拡縮計算を行い、副走査方向の拡縮を行うために、ブロックごとの処理を主走査方向拡縮制御部３３に繰り返し行わせる制御信号を出力する。転送制御部３５は、ＲＤＹの信号を監視し転送可能となると、転送先アドレス信号を出力して画素値情報の転送を制御する。また、ブロック１行分の転送が完了すると、ＥＮＤ信号を生成して出力する。
【００４６】
ここまでの説明では、拡大縮小率が整数倍（の拡大）である例について説明してきたが、拡大縮小率は小数点以下を含んでも構わない。この場合、転送先アドレスについては、上述の処理と同様に決定するのであるが、各転送先アドレスに対してどの画素値情報を転送するかについては、拡大縮小率に応じて定めなければならない。すなわち、２倍、３倍といった整数倍のときには、当該拡大率に示された回数だけ画素値情報を繰り返して出力すればよいが、１．２倍、などといった小数点以下を含む拡大率では、５つの画素値情報を６画素分のメモリ領域に転送するのであり、要するにいずれかの画素値情報だけを２回繰り返し、他の画素値情報は１回ずつ転送することになって、どの転送元アドレスの画素値情報を各転送先アドレスに対して転送するかを定める必要がある。
【００４７】
また、本実施の形態においては、主走査方向に対してブロックごとに処理を行っているため、ブロックごとに単純な拡大縮小処理を行うと、小数点以下の部分（小数部）を有する拡大縮小率に対する処理の場合等に、ブロック境界部分が拡縮画像データ上で目立って見えてしまう現象が憂慮される。
【００４８】
そこで本実施の形態の拡大縮小制御部２７は、基本的に、バンドメモリ部２４上の各転送先アドレスに転送して保持させるべき画素値情報が格納されている、バッファメモリ２８内の転送元アドレスを、拡大縮小率に応じて定められるアドレスシフト量に基づいて生成し、バッファメモリ２８内の当該生成した転送元アドレスから画素値情報を読み出して、バンドメモリ部２４上の転送先アドレスに転送する。また、前回処理したブロックの終端でのアドレスシフト量を保持しておき、次のブロックの処理に供し、次のブロックでは、当該保持したアドレスシフト量を利用してさらに転送元アドレスを決定する処理を続ける。
【００４９】
この処理は具体的に、主走査方向拡縮制御部３３と、副走査方向拡縮制御部３４とによって行われる。次に、これらの基本的構成を、図５を用いて説明する。図５は、主走査方向拡縮制御部３３又は副走査方向拡縮制御部３４の構成例を表す機能ブロック図である。
【００５０】
図５に示す構成例のように、主走査方向拡縮制御部３３又は副走査方向拡縮制御部３４は、初期値保持部４１と、ブロックオフセット値保持部４２と、第１選択部４３と、レジスタ部４４と、第１比較部４５と、第２比較部４６と、減算部４７と、加算部４８と、第２選択部４９と、第３選択部５０とを含む。
【００５１】
初期値保持部４１は、所定の方法で定められる初期値を保持し、出力する。この初期値を定める方法については後に詳しく述べる。ブロックオフセット値保持部４２は、前回のブロック処理において、最後の画素値情報を出力したときのオフセット値をブロックオフセット値として保持している。ここでオフセット値は、アドレスシフト量の累積加算によって求められる値であり、典型的には累積加算値の小数部分である。
【００５２】
第１選択部４３は、マルチプレクサ（ＭＵＸ）であり、初期値保持部４１から初期値の入力を、ブロックオフセット値保持部４２からブロックオフセット値の入力を、さらに後に説明する第２選択部４９から現在のオフセット値（以下、継続オフセット値と呼ぶ）の入力を受けて、そのいずれかを所定の条件に基づいて選択する。具体的にこの第１選択部４３は、主走査方向拡縮制御部３３においては、図６に示すような処理によって上記入力される値のいずれか一つを選択的に出力する。すなわち、転送元アドレスが指している画素値情報が各ブロックごとのブロック処理において最初に処理するものであるか否かを調べ（Ｓ１１）、最初に処理するものでなければ（Ｎｏならば）、継続オフセット値を選択的に出力して（Ｓ１２）、処理を終了する。
【００５３】
また、この処理Ｓ１１において、転送元アドレスが指している画素値情報がブロック処理において最初に処理するものであれば（Ｙｅｓならば）、さらに、当該画素値情報が、ラスタデータ上の行の先頭画素のものであるか否か、すなわち主走査方向の先頭の画素のものであるか否かを調べる（Ｓ１３）。ここで、先頭画素のものであれば（Ｙｅｓならば）、初期値を選択的に出力して（Ｓ１４）、処理を終了し、また処理Ｓ１３において、先頭画素のものでなければ（Ｎｏならば）、ブロックオフセット値を選択的に出力して（Ｓ１５）、処理を終了する。
【００５４】
またこの第１選択部４３は、副走査方向拡縮制御部３４においては、フラグ情報を保持するレジスタ（不図示）を用い、入力バッファ部２５からバッファメモリ２８に画素値情報が書き込まれるタイミング（処理開始直後、又は前回ＥＮＤの信号を出力した直後など）で、フラグ情報を例えば「０」などにリセットしておく。そしてこの第１選択部４３は、図７に示すように、フラグ情報が「０」などにリセットされているか否か、つまり、現在バッファメモリ２８に格納されている画素値情報が今回初めて読み出されるものであるか否か、を調べる（Ｓ２１）。ここで、フラグ情報が「０」などにリセットされていなければ（Ｎｏならば）、継続オフセット値を選択的に出力して（Ｓ２２）、処理を終了する。
【００５５】
また、この処理Ｓ２１においてフラグ情報が「０」などにリセットされていれば（Ｙｅｓならば）、フラグ情報を、例えば「１」にセットして（Ｓ２３）、さらに転送の対象となる画素値情報が、処理対象となっている画像データの先頭行のものであるか否かを調べる（Ｓ２４）。そして、処理対象となっている画像データの先頭行のものであれば（Ｙｅｓであれば）、初期値を選択的に出力して（Ｓ２５）、処理を終了し、処理Ｓ２４において、転送対象となる画素値情報が処理対象となっている画像データの先頭行のものでなければ（Ｎｏならば）、ブロックオフセット値を選択的に出力して（Ｓ２６）、処理を終了する。つまり、副走査方向には、バッファメモリ２８に書き込まれた画素値情報の副走査方向への拡大・縮小が完了した時点でのアドレスシフト量（副走査方向へのシフト量）がブロックオフセット値として保持され、利用されることになる。
【００５６】
レジスタ部４４は、第１選択部４３が出力した値を一時的に保持し、その整数部を第１比較部４５と第２比較部４６とに出力し、小数部を加算部４８に出力し、さらに保持している値そのもの（整数部と小数部とを含む）を減算部４７に出力する。第１比較部４５は、レジスタ部４４が保持する値の整数部が「１」以上か否かを判断し、「１」を超えていれば、転送元アドレスを１つ進める信号（シフト信号）を出力する。具体的に第１比較部４５は、主走査方向拡縮制御部３３においては、シフト信号により、転送元アドレスを主走査方向に一つ進める。また、副走査方向拡縮制御部３４においては、この第１比較部４５は、シフト信号により、転送元アドレスを副走査方向に一つ進める。
【００５７】
第２比較部４６は、レジスタ部４４が保持している値の整数部が「２」以上であるか否かを判断し、「２」以上であれば、転送先アドレスと画素値情報との出力を抑制するディスエイブル信号を出力する。このディスエイブル信号が出力されているときには、主走査方向拡縮制御部３３は、転送先アドレスと画素値情報との出力を行わない。
【００５８】
減算部４７は、レジスタ部４４が保持している値そのものから「１」を減算して出力する。加算部４８は、アドレスシフト量としての拡大縮小率の逆数を、レジスタ部４４が保持している値の小数部に加算して出力する。この加算部４８の出力が、アドレスシフト量の累積加算演算の結果である。すなわちアドレスシフト量とは、拡縮画像データを「１」としたときの元のラスタデータの拡大縮小率に相当するもので、拡縮画像データの１画素あたり、元のラスタデータでどれだけの画素移動量になるかを小数点を含めて示したものである。
【００５９】
第２選択部４９は、マルチプレクサ（ＭＵＸ）であり、第２比較部４６がディスエイブル信号を出力しているときには、減算部４７が出力する値を選択的に出力し、第２比較部４６がディスエイブル信号を出力していないときには、加算部４８が出力する値を選択的に出力する。この第２選択部４９が出力する値が、継続オフセット値となる。
【００６０】
第３選択部５０は、マルチプレクサ（ＭＵＸ）であり、ブロックの終端の画素値情報を出力する際に、ブロックオフセット保持部４２の値を更新するためのもので、具体的には、主走査方向拡縮制御部３３においてはブロックの終端画素であるか否かを（例えばＥＮＤ信号などにより）判断し、終端画素であれば継続オフセット値を選択的に出力してブロックオフセット保持部４２に保持されているブロックオフセット値を更新する。また、ブロックの終端画素でなければ、ブロックオフセット保持部４２が出力したブロックオフセット値をそのままブロックオフセット保持部４２に出力する。
【００６１】
また、この第３選択部５０は、副走査方向拡縮制御部３４においては、ブロックの終端画素、つまりラスタデータの各行の右端の画素であるか否かを（例えば読み出しアドレスなどにより）判断し、終端画素であれば継続オフセット値を選択的に出力してブロックオフセット保持部４２に保持されているブロックオフセット値を更新する。また、ブロックの終端画素でなければ、ブロックオフセット保持部４２が出力したブロックオフセット値をそのままブロックオフセット保持部４２に出力する。
【００６２】
ここで初期値保持部４１が保持する初期値を定める方法の例について述べる。本実施の形態の拡大縮小制御部２７は、バンドメモリ部２４の容量いっぱいに拡縮画像データの一部が格納された時点で、主走査方向拡縮制御部３３と、副走査方向拡縮制御部３４とに対して、その時点での継続オフセット値を初期値保持部４１に保持させる。すなわち拡縮画像データは、バンドメモリ部２４の副走査方向の行数分ずつ区切られて印刷されるのであるが、このように初期値を設定することにより、当該区切られた部分の境界（バンドをまたぐところ）における拡縮画像データの乱れを防止する。なお、バンドメモリ部２４に代えて、ページメモリを用いる場合は、基本的に初期値の設定は不要であり、「０」としておくことができる。このような場合は、初期値保持部４１自体、必ずしも必要ではない。
【００６３】
次に、図５に示した処理を行う主走査方向拡縮制御部３３の動作例について説明する。なお、ここでは主走査方向拡縮制御部３３について説明するが、副走査方向拡縮制御部３４についても同様である。
【００６４】
まず、拡大率４／３倍（拡大縮小率の逆数＝０．７５）、初期値＝０．６であるときの動作について図８を参照しながら説明する。バッファメモリ２８に、画素値情報Ｐ０，０〜Ｐ０，ｘ−１が格納され、このＰ０，０〜Ｐ０，ｘ−１の画素値情報群からなるブロックについてのブロック処理が開始されると、このうち最初の画素値情報Ｐ０，０について、第１選択部４３が、今回処理する画素値情報が、ブロック処理において最初に処理するものであり、かつ、当該画素値情報は、ラスタデータ上の行の先頭画素のものであるので、初期値である０．６を選択的に出力する。そしてレジスタ部４４がこれを保持する。
【００６５】
レジスタ部４４が保持している値０．６の整数部は、０であるので、シフト信号もディスエイブル信号も出力されない。従って転送元アドレスはインクリメントされず、次に出力する画素値情報もＰ０，０である。また、加算部４８は、小数部０．６に、拡大縮小率の逆数０．７５を加算した値１．３５を出力する。また減算部４７は、０．６から１を引いて−０．４を得て出力する。
【００６６】
第２選択部４９は、ディスエイブル信号が出力されていないので、加算部４８が出力する値「１．３５」を選択的に継続オフセット値として出力する。
【００６７】
第１選択部４３は、次の画素値情報はＰ０，０であるが、ブロック処理において最初に処理するものでないので、この継続オフセット値を選択的に出力する。そしてレジスタ部４４がこれを保持する。この整数部は「１」であるので、シフト信号は出力されるが、ディスエイブル信号は出力されない。シフト信号が出力されるので、転送元アドレスがインクリメントされて、次に出力する画素値情報はＰ０，１となる。
【００６８】
加算部４８は第１選択部４３が出力する値の小数部「０．３５」に拡大縮小率の逆数０．７５を加算した値１．１０を出力する。この場合もディスエイブル信号が出力されていないので、第２選択部４９は、この加算部４８が出力する値１．１０を継続オフセット値として出力し、ブロック処理の最初の画素値情報でないので、第１選択部４３はこの継続オフセット値をそのまま出力してレジスタ部４４に格納する。
【００６９】
以下、同様の処理の繰り返しにより、図８（ｆ）に示すように「Ｐ０，０、Ｐ０，０、Ｐ０，１、Ｐ０，２、Ｐ０，２、Ｐ０，３、Ｐ０，４、…」といったように画素値情報が出力される。また、ブロックの終端の画素（例えばＰ０，５とする）の処理においてシフト信号が出力されると、第３選択部５０が、その時点の継続オフセット値＝１．３５により、ブロックオフセット保持部４２の値（ブロックオフセット値）を更新する。
【００７０】
そして、副走査方向への処理が終了し、次のブロックである画素値情報Ｐ０，ｘ〜Ｐ０，（２ｘ−１）がバッファメモリ２８に格納されるようになると、第１選択部４３は、新たにブロック処理を開始する。当該開始したブロック処理において最初に処理される画素値情報Ｐ０，ｘについて、当該画素値情報は、ブロック処理において最初に処理されるものであるが、ラスタデータの行の先頭の画素値情報でないので、第１選択部４３は、ブロックオフセット値保持部４２が保持しているブロックオフセット値＝１．３５を出力するようになる。
【００７１】
また、図９を用いてラスタデータの縮小を行う場合について、２／３縮小、すなわち拡大縮小率の逆数＝１．５、初期値が１．０であるとして説明する。バッファメモリ２８に、画素値情報Ｐ０，０〜Ｐ０，ｘ−１が格納され、このＰ０，０〜Ｐ０，ｘ−１の画素値情報群からなるブロックについてのブロック処理が開始されると、このうち最初の画素値情報Ｐ０，０について、第１選択部４３が、今回処理する画素値情報が、ブロック処理において最初に処理するものであり、かつ、当該画素値情報は、ラスタデータ上の行の先頭画素のものであるので、初期値である１．０を選択的に出力する。そしてレジスタ部４４がこれを保持する。
【００７２】
レジスタ部４４が保持している値１．０の整数部は、１であるので、シフト信号が出力され、ディスエイブル信号は出力されない。従って転送元アドレスがインクリメントされ、次に出力する画素値情報はＰ０，１となる。また、加算部４８は、小数部０．０に、拡大縮小率の逆数１．５を加算した値１．５を出力する。また減算部４７は、１．０から１を引いて得た値０、を出力する。
【００７３】
第２選択部４９は、ディスエイブル信号が出力されていないので、加算部４８が出力する値「１．５０」を選択的に継続オフセット値として出力する。
【００７４】
第１選択部４３は、次の画素値情報はＰ０，１であり、ブロック処理において最初に処理するものでないので、この継続オフセット値を選択的に出力する。そしてレジスタ部４４がこれを保持する。この整数部は「１」であるので、シフト信号は出力されるが、ディスエイブル信号は出力されない。シフト信号が出力されるので、転送元アドレスがインクリメントされて、次に出力する画素値情報はＰ０，２となる。
【００７５】
加算部４８は第１選択部４３が出力する値の小数部「０．５」に拡大縮小率の逆数１．５を加算した値２．０を出力する。この時点でもディスエイブル信号は出力されていないので、第２選択部４９は、この加算部４８が出力する値２．０を継続オフセット値として出力する。ブロック処理の最初の画素値情報でないので、第１選択部４３はこの継続オフセット値をそのまま出力してレジスタ部４４に格納する。
【００７６】
このレジスタ部４４に格納された値の整数部は「２」であるので、シフト信号とディスエイブル信号とが両方とも出力される。その結果、処理中の画素値情報Ｐ０，２は出力されないこととなる。また、ディスエイブル信号が出力されているので、第２選択部４９は、減算部４７が出力する、値「１」（すなわち２．０から１を引いた値）を選択的に出力する。
【００７７】
以下、同様の処理の繰り返しにより、図９（ｆ）に示すように「Ｐ０，０、Ｐ０，１、Ｐ０，３、Ｐ０，４、Ｐ０，６、Ｐ０，７、…」といったように画素値情報が出力される。なお、図９（ｆ）において、「−」となっているのは、出力される画素値情報がないことを示す。
【００７８】
こうして順次出力される画素値情報は、図３に示したように、バンドメモリ部２４上の、別途生成される転送先アドレス情報によって示される位置に順次格納されていき、バンドメモリ部２４に拡縮画像データが生成される。
【００７９】
このように本実施の形態に係る画像処理装置は、画像データ入力部１１で受け入れた画像データについて、ラスタデータ生成部１２のページ記述言語処理部２１がベクトルデータなど、ラスタデータでない部分については、当該記述に基づいてラスタデータを生成してバンドメモリ部２４に書き込む。また、ラスタデータの部分については、ラスタデータ処理部２３に出力される。
【００８０】
ラスタデータ処理部２３は、ページ記述言語処理部２１からラスタスキャン順に逐次的に入力されるラスタデータについて、当該ラスタデータの解像度（例えばページ記述言語の記述により与えられる）と、プリンタエンジン部１３の印刷解像度との比によって指定される拡大縮小率で拡大縮小処理を行ってバンドメモリ部２４に書き込む。この際、ラスタデータ処理部２３は、ラスタデータ１行分のデータを所定サイズのブロックに分割して、当該ブロックのサイズのバッファメモリ２８に格納し、ブロックに含まれる画素値情報のそれぞれについてバッファメモリ２８上の転送元アドレスと、バンドメモリ部２４上の転送先アドレスとを演算して、バッファメモリ２８の転送元アドレスから、バンドメモリ部２４の転送先アドレスへと画素値情報を転送する。
【００８１】
これによりバンドメモリ部２４に画像データのうちラスタデータ部分についてはそれを拡縮してプリンタエンジン部１３の印刷解像度に適合させたデータ（拡縮画像データ）が保持され、またベクトルデータなどラスタデータ以外の部分については、当該データの記述に基づいて生成された印刷解像度のラスタデータが保持されるようになる。
【００８２】
そしてバンドメモリ部２４に格納されたデータがプリンタエンジン部１３に出力されて印刷が行われる。なお、バンドメモリ部２４は、副走査方向には印刷用紙全体の画像を表すに十分なサイズがないので、複数のバンドメモリを準備し、プリンタエンジン部１３から出力を行いながら、他方のバンドメモリ部に描画を行い、用紙１枚分の印刷することが可能である。また描画されたバンドメモリデータを圧縮し、用紙１枚分の圧縮データが用意できたなら、伸長しながらプリンタエンジン部１３に出力しても良い。
【００８３】
本発明の実施の形態によれば、主走査方向の画素数が、バッファメモリ２８の容量を超えているような入力画像データをも処理でき、また、主走査、副走査の双方に対する拡大縮小処理を一度に行うことができる。
【００８４】
またここまでの説明では、各部がソフトウエアによって制御されるものとして説明してきたが、例えば図５の処理などは、ディジタル回路素子によってハードウエア的に構成されてもよい。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る画像処理装置の構成ブロック図である。
【図２】ラスタデータ処理部の処理内容の例を表す機能ブロック図である。
【図３】画素値情報のバンドメモリ部への転送状況の例を表す説明図である。
【図４】拡大縮小制御部が出力する信号の例を表す転送タイミングチャート図である。
【図５】主走査方向拡縮制御部と、副走査方向拡縮制御部とによって行われる処理の基本的構成例を表す機能ブロック図である。
【図６】主走査方向拡縮制御部における第１選択部の動作例を表すフローチャート図である。
【図７】副走査方向拡縮制御部における第１選択部の動作例を表すフローチャート図である。
【図８】拡大処理における転送元アドレスの遷移の例を表す説明図である。
【図９】縮小処理における転送元アドレスの遷移の例を表す説明図である。
【符号の説明】
１１  画像データ入力部、１２  ラスタデータ生成部、１３  プリンタエンジン部、２１  ページ記述言語処理部、２２  画像処理部、２３  ラスタデータ処理部、２４  バンドメモリ部、２５  入力バッファ部、２６  メモリ転送部、２７  拡大縮小制御部、２８  バッファメモリ、３１  メモリ制御部、３２  主走査方向拡縮部、３３  主走査方向拡縮制御部、３４  副走査方向拡縮制御部、３５  転送制御部、４１  初期値保持部、４２  ブロックオフセット値保持部、４３  第１選択部、  ４４  レジスタ部、４５  第１比較部、４６  第２比較部、４７  減算部、４８  加算部、４９  第２選択部、５０  第３選択部。
【図１】
2004289667.tif 000003
【図２】
2004289667.tif 000004
【図３】
2004289667.tif 000005
【図４】
2004289667.tif 000006
【図５】
2004289667.tif 000007
【図６】
2004289667.tif 000008
【図７】
2004289667.tif 000009
【図８】
2004289667.tif 000010
【図９】
2004289667.tif 000011