(57)【要約】【課題】ＤＭＡ転送により入力された画像を拡大又は縮小してＤＭＡ転送により出力する場合に、拡大又は縮小した画像のサイズによらず、予め指定された転送サイズ分だけそのまま出力する構成と比較して、ＤＭＡ転送におけるストールを抑制する。【解決手段】画像処理装置は、ＤＭＡ転送により入力された画像を拡大又は縮小する拡大縮小回路１６ｂと、拡大縮小回路１６ｂにより拡大又は縮小された処理後の画像のサイズと処理後の画像のサイズとして予め定められたサイズとが異なる場合に、処理後の画像に対して画素を追加する処理又は処理後の画像の画素を削除する処理を行う画像カット／パディング部１６ｃとを備える。【選択図】図４
2019004198.tif 000002
【特許請求の範囲】
【請求項１】
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送により入力された画像を拡大又は縮小する拡大縮小手段と、
前記拡大縮小手段により拡大又は縮小された処理後の画像のサイズと当該処理後の画像のサイズとして予め定められたサイズとが異なる場合に、当該処理後の画像に対して画素を追加する処理又は当該処理後の画像の画素を削除する処理を行う画像処理手段と
を備える電子装置。
【請求項２】
前記画像処理手段は、主走査方向において、前記処理後の画像のサイズと前記予め定められたサイズとが異なる場合に、前記画素を追加する処理又は前記画素を削除する処理を行い、副走査方向において、当該処理後の画像のサイズと当該予め定められたサイズとが異なる場合に、当該画素を追加する処理又は当該画素を削除する処理を行うこと
を特徴とする請求項１に記載の電子装置。
【請求項３】
前記画像処理手段は、主走査方向及び副走査方向のそれぞれにおいて、前記処理後の画像のサイズが前記予め定められたサイズより小さい場合には、当該処理後の画像のサイズが当該予め定められたサイズになるように画素を追加し、当該処理後の画像のサイズが当該予め定められたサイズより大きい場合には、当該処理後の画像のサイズが当該予め定められたサイズになるように画素を削除すること
を特徴とする請求項２に記載の電子装置。
【請求項４】
ＤＭＡ転送による前記拡大縮小手段への画像の入力が完了したことを示す入力完了信号、及び、当該拡大縮小手段からＤＭＡ転送の制御部へ前記予め定められたサイズの画像の出力が完了したことを示す出力完了信号により、前記処理後の画像のサイズと当該予め定められたサイズとの差異を検知する検知手段をさらに備えること
を特徴とする請求項１乃至３の何れか１項に記載の電子装置。
【請求項５】
前記入力完了信号は、主走査方向の画像の入力が完了したことを示す信号と副走査方向の画像の入力が完了したことを示す信号とを含み、
前記出力完了信号は、主走査方向の画像の出力が完了したことを示す信号と副走査方向の画像の出力が完了したことを示す信号とを含むこと
を特徴とする請求項４に記載の電子装置。
【請求項６】
前記処理後の画像のサイズと前記予め定められたサイズとが異なることを示す情報を記憶する記憶手段をさらに備えること
を特徴とする請求項１乃至５の何れか１項に記載の電子装置。
【請求項７】
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送により入力された画像を指定された倍率で拡大又は縮小する指示を受け付ける受付手段と、
前記指定された倍率がＤＭＡ転送においてストールの発生し得る倍率である場合に、ＤＭＡ転送がストールしないサイズの画像を生成する生成手段と
を備える電子装置。
【請求項８】
コンピュータに、
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送により入力された画像を拡大又は縮小する機能と、
拡大又は縮小された処理後の画像のサイズと当該処理後の画像のサイズとして予め定められたサイズとが異なる場合に、当該処理後の画像に対して画素を追加する処理又は当該処理後の画像の画素を削除する処理を行う機能と
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置及びプログラムに関する。
【背景技術】
【０００２】
例えば、特許文献１には、ページメモリから画素データをＤＭＡ（Direct Memory Access）転送で読み出し一時保持する第１画素データ保持手段と、第１画素データ保持手段に保持された画素データの画素変倍を行うために画素データを保持する第２画素データ保持手段と、変倍率が設定されるレジスタの値で記録手段に出力する画素を選択するための画素アドレスを生成し、画素アドレスによって第２画素データ保持手段から出力される画素データの画素を間引きまたは重複することにより主走査方向の縮小または拡大を行う画素変倍制御手段と、ライン選択信号により次ラインのラインスタートアドレスを現ラインと同一のラインスタートアドレスまたは次々ラインのラインスタートアドレスとすることにより副走査方向の拡大または縮小を行うライン選択制御手段とを備える画像処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−１５１９９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
画像の拡大縮小を行う回路では、画像の入出力をＤＭＡ転送で行う場合がある。この場合、ＤＭＡ転送による画像の入力が出力よりも先に終了することにより、画像の出力を待ち合わせてストールしたり、ＤＭＡ転送による画像の出力が入力よりも先に終了することにより、入力された画像を吐き出せずにストールしたりしてしまうことがある。
本発明の目的は、ＤＭＡ転送により入力された画像を拡大又は縮小してＤＭＡ転送により出力する場合に、拡大又は縮小した画像のサイズによらず、予め指定された転送サイズ分だけそのまま出力する構成と比較して、ＤＭＡ転送におけるストールを抑制することにある。
【課題を解決するための手段】
【０００５】
請求項１に記載の発明は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送により入力された画像を拡大又は縮小する拡大縮小手段と、前記拡大縮小手段により拡大又は縮小された処理後の画像のサイズと当該処理後の画像のサイズとして予め定められたサイズとが異なる場合に、当該処理後の画像に対して画素を追加する処理又は当該処理後の画像の画素を削除する処理を行う画像処理手段とを備える電子装置である。
請求項２に記載の発明は、前記画像処理手段は、主走査方向において、前記処理後の画像のサイズと前記予め定められたサイズとが異なる場合に、前記画素を追加する処理又は前記画素を削除する処理を行い、副走査方向において、当該処理後の画像のサイズと当該予め定められたサイズとが異なる場合に、当該画素を追加する処理又は当該画素を削除する処理を行うことを特徴とする請求項１に記載の電子装置である。
請求項３に記載の発明は、前記画像処理手段は、主走査方向及び副走査方向のそれぞれにおいて、前記処理後の画像のサイズが前記予め定められたサイズより小さい場合には、当該処理後の画像のサイズが当該予め定められたサイズになるように画素を追加し、当該処理後の画像のサイズが当該予め定められたサイズより大きい場合には、当該処理後の画像のサイズが当該予め定められたサイズになるように画素を削除することを特徴とする請求項２に記載の電子装置である。
請求項４に記載の発明は、ＤＭＡ転送による前記拡大縮小手段への画像の入力が完了したことを示す入力完了信号、及び、当該拡大縮小手段からＤＭＡ転送の制御部へ前記予め定められたサイズの画像の出力が完了したことを示す出力完了信号により、前記処理後の画像のサイズと当該予め定められたサイズとの差異を検知する検知手段をさらに備えることを特徴とする請求項１乃至３の何れか１項に記載の電子装置である。
請求項５に記載の発明は、前記入力完了信号は、主走査方向の画像の入力が完了したことを示す信号と副走査方向の画像の入力が完了したことを示す信号とを含み、前記出力完了信号は、主走査方向の画像の出力が完了したことを示す信号と副走査方向の画像の出力が完了したことを示す信号とを含むことを特徴とする請求項４に記載の電子装置である。
請求項６に記載の発明は、前記処理後の画像のサイズと前記予め定められたサイズとが異なることを示す情報を記憶する記憶手段をさらに備えることを特徴とする請求項１乃至５の何れか１項に記載の電子装置である。
請求項７に記載の発明は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送により入力された画像を指定された倍率で拡大又は縮小する指示を受け付ける受付手段と、前記指定された倍率がＤＭＡ転送においてストールの発生し得る倍率である場合に、ＤＭＡ転送がストールしないサイズの画像を生成する生成手段とを備える電子装置である。
請求項８に記載の発明は、コンピュータに、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送により入力された画像を拡大又は縮小する機能と、拡大又は縮小された処理後の画像のサイズと当該処理後の画像のサイズとして予め定められたサイズとが異なる場合に、当該処理後の画像に対して画素を追加する処理又は当該処理後の画像の画素を削除する処理を行う機能とを実現させるためのプログラムである。
【発明の効果】
【０００６】
請求項１記載の発明によれば、ＤＭＡ転送により入力された画像を拡大又は縮小してＤＭＡ転送により出力する場合に、拡大又は縮小した画像のサイズによらず、予め指定された転送サイズ分だけそのまま出力する構成と比較して、ＤＭＡ転送におけるストールを抑制することができる。
請求項２記載の発明によれば、主走査方向及び副走査方向の何れか一方の方向で画素の追加又は画素の削除を行う構成と比較して、ＤＭＡ転送におけるストールを抑制することができる。
請求項３記載の発明によれば、主走査方向及び副走査方向の何れか一方の方向で画素の追加又は画素の削除を行う構成と比較して、より確実に、ＤＭＡ転送におけるストールを抑制することができる。
請求項４記載の発明によれば、入力完了信号及び出力完了信号を用いない構成と比較して、処理後の画像のサイズと予め定められたサイズとの差異を把握することが容易になる。
請求項５記載の発明によれば、入力完了信号及び出力完了信号を用いない構成と比較して、主走査方向及び副走査方向において処理後の画像のサイズと予め定められたサイズとの差異を把握することが容易になる。
請求項６記載の発明によれば、処理後の画像のサイズと予め定められたサイズとが異なることをユーザが把握できるようになる。
請求項７記載の発明によれば、ＤＭＡ転送により入力された画像を拡大又は縮小してＤＭＡ転送により出力する場合に、拡大又は縮小した画像のサイズによらず、予め指定された転送サイズ分だけそのまま出力する構成と比較して、ＤＭＡ転送におけるストールを抑制することができる。
請求項８記載の発明によれば、ＤＭＡ転送により入力された画像を拡大又は縮小してＤＭＡ転送により出力する場合に、拡大又は縮小した画像のサイズによらず、予め指定された転送サイズ分だけそのまま出力する構成と比較して、ＤＭＡ転送におけるストールを抑制する機能を、コンピュータにより実現できる。
【図面の簡単な説明】
【０００７】
【図１】本実施の形態に係る画像処理装置のハードウェア構成例を示す図である。
【図２】本実施の形態に係る制御部の構成例を示す図である。
【図３】従来の拡大縮小処理の一例について説明するための図である。
【図４】本実施の形態に係るイメージコアの構成例を示す図である。
【図５】主走査出力サイズ設定値が実際の出力サイズよりも小さい場合の処理の流れの一例を説明するための図である。
【図６】主走査出力サイズ設定値が実際の出力サイズよりも大きい場合の処理の流れの一例を説明するための図である。
【図７】副走査出力サイズ設定値が実際の出力サイズよりも小さい場合の処理の流れの一例を説明するための図である。
【図８】副走査出力サイズ設定値が実際の出力サイズよりも大きい場合の処理の流れの一例を説明するための図である。
【図９−１】副走査方向の処理の手順の一例を示したフローチャートである。
【図９−２】副走査方向の処理の手順の一例を示したフローチャートである。
【図１０−１】主走査方向通常処理の手順の一例を示したフローチャートである。
【図１０−２】主走査方向通常処理の手順の一例を示したフローチャートである。
【図１１】主走査方向全カッティング処理の手順の一例を示したフローチャートである。
【図１２】主走査方向全パディング処理の手順の一例を示したフローチャートである。
【図１３】（ａ）、（ｂ）は、画像データのカット又はパディングの処理の具体例を説明するための図である。
【図１４】本実施の形態に係る画像処理装置の他の構成例を示す図である。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【０００９】
＜画像処理装置のハードウェア構成＞
まず、本実施の形態に係る画像処理装置１００のハードウェア構成について説明する。図１は、本実施の形態に係る画像処理装置１００のハードウェア構成例を示す図である。本実施の形態に係る画像処理装置１００は、例えば、画像読み取り機能（スキャン機能）、印刷機能（プリント機能）、複写機能（コピー機能）及びファクシミリ機能等の各種の画像処理機能を備えた、いわゆる複合機である。なお、本実施の形態において、画像処理装置１００は、電子装置の一例として用いられる。
【００１０】
図示するように、本実施の形態に係る画像処理装置１００は、制御部１０と、ＨＤＤ（Hard Disk Drive）２０と、操作パネル３０と、画像読取部４０と、画像形成部５０と、通信インタフェース（以下、「通信Ｉ／Ｆ」と表記する）６０とを備える。なお、これらの各機能部はバス７０に接続されており、このバス７０を介してデータの授受を行う。
【００１１】
制御部１０は、画像処理装置１００の各部の動作を制御する。制御部１０の構成の詳細については、後述する。
【００１２】
ＨＤＤ２０は、各種データを記憶する記憶部である。ＨＤＤ２０には、例えば、画像読取部４０の画像読み取りによって生成された画像データや、通信Ｉ／Ｆ６０によって外部から受信した画像データ等が記憶される。
【００１３】
操作パネル３０は、各種の情報を表示するとともに、ユーザからの操作を受け付ける。この操作パネル３０は、液晶ディスプレイ等で構成された表示パネル、表示パネルの上に配置され、ユーザによりタッチされた位置を検出するタッチパネル、ユーザにより押下される物理キー等から構成される。そして、操作パネル３０は、例えば、画像処理装置１００の操作画面等の各種画面を表示パネルに表示したり、タッチパネル及び物理キーによりユーザからの操作を受け付けたりする。
【００１４】
画像読取部４０は、原稿台上にセットされた用紙等の記録材に形成されている画像を読み取って、読み取った画像を示す画像情報（画像データ）を生成する。ここで、画像読取部４０は、例えばスキャナーであり、光源から原稿に照射した光に対する反射光をレンズで縮小してＣＣＤ（Charge Coupled Devices）で受光するＣＣＤ方式や、ＬＥＤ光源から原稿に順に照射した光に対する反射光をＣＩＳ（Contact Image Sensor）で受光するＣＩＳ方式のものを用いるとよい。
【００１５】
画像形成部５０は、用紙等の記録材に画像を形成する印刷機構である。ここで、画像形成部５０は、例えばプリンターであり、感光体に付着させたトナーを記録材に転写して像を形成する電子写真方式や、インクを記録材上に吐出して像を形成するインクジェット方式のものを用いるとよい。
【００１６】
通信Ｉ／Ｆ６０は、不図示のネットワークを介して他の装置との間で各種データの送受信を行う通信インタフェースである。
【００１７】
そして、この画像処理装置１００では、制御部１０による制御の下、画像読取部４０によってスキャン機能が実現され、画像形成部５０によってプリント機能が実現され、画像読取部４０及び画像形成部５０によってコピー機能が実現され、画像読取部４０、画像形成部５０及び通信Ｉ／Ｆ６０によってファクシミリ機能が実現される。
【００１８】
＜制御部の構成＞
次に、制御部１０の構成について、詳細に説明する。図２は、本実施の形態に係る制御部１０の構成例を示す図である。図示するように、本実施の形態に係る制御部１０は、ＣＰＵ（Central Processing Unit）１１、ＲＡＭ（Random Access Memory）１２、ＲＯＭ（Read Only Memory）１３、ＤＭＡＣ（Direct Memory Access Controler）１４、ＤＭＡＣ１５、イメージコア１６、レジスタ１７を備える。
【００１９】
ＣＰＵ１１は、ＲＯＭ１３等に記憶された各種プログラムをＲＡＭ１２にロードして実行することにより、画像処理装置１００の各部の動作を制御し、画像処理装置１００における各機能を実現する。ＲＡＭ１２は、ＣＰＵ１１の作業用メモリ等として用いられるメモリ（記憶部）である。ＲＡＭ１２としては、例えば、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）の一種であるＤＤＲ ＳＤＲＡＭ(Double-Data-Rate SDRAM)を例示することができる。ＲＯＭ１３は、ＣＰＵ１１が実行する各種プログラム等を記憶するメモリ（記憶部）である。
【００２０】
ＤＭＡＣ１４、ＤＭＡＣ１５は、ＣＰＵ１１を介さずにデータを転送するＤＭＡ転送を制御するコントローラ（制御部）である。ＤＭＡＣ１４は、例えば、ＲＡＭ１２又はＲＯＭ１３からデータを読み出し、読み出したデータをイメージコア１６へ転送する。また、ＤＭＡＣ１５は、例えば、イメージコア１６から出力されたデータをＲＡＭ１２又はＲＯＭ１３へ転送する。
【００２１】
イメージコア１６は、ＤＭＡＣ１４から入力される画像データを、指定された倍率等で拡大又は縮小する処理を行い、処理後の画像データをＤＭＡＣ１５へ出力する。
【００２２】
記憶手段の一例としてのレジスタ１７は、イメージコア１６へ入力される画像データのサイズの設定値（以下、「入力サイズ設定値」と称する）や、画像データを拡大又は縮小する場合の倍率の設定値、イメージコア１６にて拡大又は縮小されて出力される画像データのサイズの設定値（以下、「出力サイズ設定値」と称する）を格納する。また、レジスタ１７には、出力サイズ設定値に関するエラーの情報が記憶される。
【００２３】
さらに説明すると、入力サイズ設定値とは、イメージコア１６に入力される画像データのサイズを示す値であり、例えば、スキャンした原稿のサイズの値や、ユーザが指定したサイズ（例えば、Ｂ４サイズ）の値である。倍率の設定値とは、例えば、ユーザが指定した拡大縮小の変倍率の値である。出力サイズ設定値とは、入力サイズ設定値と倍率の設定値とにより計算される値であり、入力サイズ設定値の画像データを変倍率で拡大又は縮小して出力される画像データのサイズとして設定される値である。本実施の形態では、予め定められたサイズの一例として、出力サイズ設定値が用いられる。
【００２４】
なお、以下では、主走査方向における入力サイズ設定値を「主走査入力サイズ設定値」と称する。副走査方向における入力サイズ設定値を「副走査入力サイズ設定値」と称する。主走査方向における出力サイズ設定値を「主走査出力サイズ設定値」と称する。副走査方向における出力サイズ設定値を「副走査出力サイズ設定値」と称する。
【００２５】
ここで、従来の拡大縮小処理について説明する。図３は、従来の拡大縮小処理の一例について説明するための図である。図３に示す例では、画像データ１Ａはページメモリ上の６００ｄｐｉ（dots per inch）のＢ４サイズの画像データを示す。画像データ１Ａのライン数は、Ｂ４サイズの縦（３６４ｍｍ）×（６００ｄｐｉ／２５．４ｍｍ）≒８５９８ラインである。この画像データ１Ａを縮小してＡ４サイズで出力する処理について説明する。
【００２６】
この場合、出力ライン数は、Ａ４サイズの縦（２９７ｍｍ）×（６００ｄｐｉ／２５．４ｍｍ）≒７０１６ラインと設定される。このとき、変倍率Ｒは、Ｒ＝（２９７ｍｍ）／（３６４ｍｍ）≒０．８１６である。この変倍率の小数部を例えば８ビットで処理する場合、１６進数で表示すると、０．８１６×２５６≒２０８＝ｄ０、又は、０．８１６×２５６≒２０９＝ｄ１となる。そのため、変倍率をｄ０又はｄ１のどちらで設定するかによって、出力されるライン数が変わってくる。
【００２７】
より具体的には、例えば、変倍率をｄ０で設定する場合、画像データ１Ｂのように、出力ライン数は、３６４ｍｍ×（２０８／２５６）×（６００ｄｐｉ／２５．４ｍｍ）≒６９８６ラインとなる。一方、例えば、変倍率をｄ１で設定する場合、画像データ１Ｃのように、出力ライン数は、３６４ｍｍ×（２０９／２５６）×（６００ｄｐｉ／２５．４ｍｍ）≒７０１９ラインとなる。
【００２８】
画像データ１Ｂの場合、出力ライン数（６９８６ライン）が設定出力ライン数（即ち、副走査出力サイズ設定値）（７０１６ライン）よりも少ないため、斜線を付した画像データ分が不足する。そのため、ＤＭＡ転送による入力が終了してデータが来なくなり、ＤＭＡ転送における出力がストールしてしまう。一方、画像データ１Ｃの場合、出力ライン数（７０１９ライン）が設定出力ライン数（７０１６ライン）よりも多いため、斜線を付した画像データ分が超過となる。そのため、ＤＭＡ転送による出力が終了してデータが吐き出せずに、ＤＭＡ転送における入力がストールしてしまう。
【００２９】
このように、画像データの拡大縮小処理では、ビット精度の誤差によりストールが発生してしまう場合がある。また、上述のようなビット精度の誤差に限らず、例えば、画像データの出力サイズ設定値が誤っている場合には、ＤＭＡ転送におけるストールが発生してしまう場合がある。
そこで、本実施の形態では、画像データのカット、パディングを行うことにより、ＤＭＡ転送がストールしないように制御する。以下、このような制御を実現するためイメージコア１６等の説明を行う。
【００３０】
＜イメージコアの構成＞
次に、イメージコア１６の構成について、詳細に説明する。図４は、本実施の形態に係るイメージコア１６の構成例を示す図である。図示するように、本実施の形態に係るイメージコア１６は、入力制御部１６ａ、拡大縮小回路１６ｂ、画像カット／パディング部１６ｃ、出力制御部１６ｄ、出力サイズ正誤検知部１６ｅを備える。
【００３１】
なお、図４に示す例では、ＤＭＡＣ１４及びＤＭＡＣ１５を介してイメージコア１６とデータのやり取りを行うメモリとして、ＲＡＭ１２を示している。また、図４に示す構成では詳細を省略するが、拡大縮小回路１６ｂとＲＡＭ１２のラインバッファとの間にもＤＭＡバスが存在する。このＤＭＡバスでもＤＭＡ転送が行われ、拡大縮小回路１６ｂは、画像データをラインバッファに格納したり、ラインバッファから画像データを読み出したりして、拡大縮小の処理を行う。また、ＤＭＡＣ１４、ＤＭＡＣ１５、イメージコア１６、レジスタ１７をまとめて、画像データの解像度を変換する「解像度変換部」と称する。
【００３２】
入力制御部１６ａは、イメージコア１６における画像データの入力を制御する。ここで、入力制御部１６ａは、ＤＭＡＣ１４から転送される画像データを拡大縮小回路１６ｂへ入力する。さらに説明すると、入力制御部１６ａは、ＤＭＡＣ１４から転送された画像データを、順次、拡大縮小回路１６ｂへ入力する。そして、拡大縮小回路１６ｂへの画像データの入力が完了した場合には、入力が完了したことを示す信号を、出力サイズ正誤検知部１６ｅへ出力する。
【００３３】
より具体的には、入力制御部１６ａは、主走査方向において、１ライン分の画像データの拡大縮小回路１６ｂへの入力が完了した場合には、主走査方向の入力が完了したことを示す信号（以下、「主走査入力完了信号（hiDone）」と称する）を有効にして（アサートして）、出力サイズ正誤検知部１６ｅへ出力する。言い換えると、入力制御部１６ａは、主走査入力完了信号（hiDone）に「１」をセットして、出力サイズ正誤検知部１６ｅへ出力する。
【００３４】
また、入力制御部１６ａは、副走査方向において、拡大縮小回路１６ｂへの画像データの入力が完了した場合には、副走査方向の入力が完了したことを示す信号（以下、「副走査入力完了信号（viDone）」と称する）を有効にして（アサートして）、出力サイズ正誤検知部１６ｅへ出力する。言い換えると、入力制御部１６ａは、副走査入力完了信号（viDone）に「１」をセットして、出力サイズ正誤検知部１６ｅへ出力する。
【００３５】
さらに、入力制御部１６ａは、出力サイズ正誤検知部１６ｅからの指示を基に、拡大縮小回路１６ｂへ画像データを入力するのを待機したり、再開したりする。より具体的には、入力制御部１６ａは、画像データの入力を待機するか否かを制御する信号（以下、「入力wait信号（input_wait）」と称する）に「１」がセットされて出力サイズ正誤検知部１６ｅから通知された場合には、画像データの入力を待機する。
【００３６】
なお、後述するように、拡大縮小回路１６ｂにより１ラインの処理が終了した後、入力wait信号（input_wait）は「０」にネゲート（無効化）される。即ち、拡大縮小回路１６ｂにより１ラインの処理が終了した後、入力制御部１６ａは、画像データの入力を再開する。
本実施の形態では、拡大縮小手段への画像の入力が完了したことを示す入力完了信号の一例として、主走査入力完了信号（hiDone）、副走査入力完了信号（viDone）が用いられる。
【００３７】
拡大縮小手段、受付手段の一例としての拡大縮小回路１６ｂは、例えばレジスタ１７に予め書き込まれた設定値（パラメータ）により拡大又は縮小の指示を受け付けて、入力制御部１６ａから入力された画像データを、指定された倍率等で拡大又は縮小する処理を行う。そして、処理後の画像データを画像カット／パディング部１６ｃへ転送する。
【００３８】
ここで、拡大縮小回路１６ｂは、画像データの拡大又は縮小の処理が１ライン分終了した場合には、１ラインの処理が終了したことを示す信号（以下、「ライン処理終了信号（line_done）」と称する）を、出力サイズ正誤検知部１６ｅへ出力する。また、拡大縮小回路１６ｂは、画像データの拡大又は縮小の処理が最終ラインまで終了した場合（即ち、ページ全体の処理が終了した場合）には、最終ラインまで処理が終了したことを示す信号（以下、「ページ処理終了信号（page_done）」と称する）を、出力サイズ正誤検知部１６ｅへ出力する。
【００３９】
画像処理手段、生成手段の一例としての画像カット／パディング部１６ｃは、拡大縮小回路１６ｂによる処理後の画像データに対して、画素（画像データ）の削除（カット）又は画素の追加（パディング）を行う。ここで、画像カット／パディング部１６ｃは、拡大縮小回路１６ｂによる処理後の画像データのサイズと出力サイズ設定値とが異なる場合に、処理後の画像データの画素を削除する処理又は処理後の画像データに対して画素を追加する処理を行う。言い換えると、画像カット／パディング部１６ｃは、拡大又は縮小の倍率として指定された倍率がＤＭＡ転送においてストールの発生し得る倍率である場合に、画素を削除する処理又は画素を追加する処理を行い、ＤＭＡ転送がストールしないサイズの画像を生成する。
【００４０】
より具体的には、画像カット／パディング部１６ｃは、画素をカットすることを指示する信号（以下、「カットenable信号（hcut）」と称する）を出力サイズ正誤検知部１６ｅから受け付けた場合に、画素のカット（カッティング）を行う。また、画像カット／パディング部１６ｃは、画素をパディングすることを指示する信号（以下、「パディングenable信号（hpad）」と称する）を出力サイズ正誤検知部１６ｅから受け付けた場合に、画素のパディングを行う。なお、パディングする画素はダミーの画素であり、例えば、画素値２５５の白画素などが用いられる。
【００４１】
なお、後述するように、拡大縮小回路１６ｂにより１ラインの処理が終了した後、カットenable信号（hcut）及びパディングenable信号（hpad）は「０」にネゲート（無効化）される。即ち、拡大縮小回路１６ｂにより１ラインの処理が終了した後、画像カット／パディング部１６ｃは、画素のカット／パディングの処理を終了する。
【００４２】
出力制御部１６ｄは、イメージコア１６における画像データの出力を制御する。ここで、出力制御部１６ｄは、画像カット／パディング部１６ｃから転送される画像データをＤＭＡＣ１５へ出力する。さらに説明すると、出力制御部１６ｄは、画像カット／パディング部１６ｃから転送された画像データを、順次、ＤＭＡＣ１５へ出力する。そして、出力サイズ設定値分の画像データの出力が完了した場合には、出力が完了したことを示す信号を、出力サイズ正誤検知部１６ｅへ出力する。
【００４３】
より具体的には、出力制御部１６ｄは、主走査方向において、設定値（即ち、主走査出力サイズ設定値）分の画像データのＤＭＡＣ１５への出力が完了した場合には、主走査方向の出力が完了したことを示す信号（以下、「主走査出力完了信号（hoDone）」と称する）を有効にして（アサートして）、出力サイズ正誤検知部１６ｅへ出力する。言い換えると、出力制御部１６ｄは、主走査出力完了信号（hoDone）に「１」をセットして、出力サイズ正誤検知部１６ｅへ出力する。
【００４４】
また、出力制御部１６ｄは、副走査方向において、設定値（即ち、副走査出力サイズ設定値）分の画像データのＤＭＡＣ１５への出力が完了した場合には、副走査方向の出力が完了したことを示す信号（以下、「副走査出力完了信号（voDone）」と称する）を有効にして（アサートして）、出力サイズ正誤検知部１６ｅへ出力する。言い換えると、出力制御部１６ｄは、副走査出力完了信号（voDone）に「１」をセットして、出力サイズ正誤検知部１６ｅへ出力する。
【００４５】
さらに、出力制御部１６ｄは、出力サイズ正誤検知部１６ｅからの指示を基に、ＤＭＡＣ１５へ画像データを出力するのを待機したり、再開したりする。より具体的には、出力制御部１６ｄは、画像データの出力を待機するか否かを制御する信号（以下、「出力wait信号（output_wait）」と称する）に「１」がセットされて出力サイズ正誤検知部１６ｅから通知された場合には、画像データの出力を待機する。
【００４６】
なお、後述するように、拡大縮小回路１６ｂにより１ラインの処理が終了した後、出力wait信号（output_wait）は「０」にネゲート（無効化）される。即ち、拡大縮小回路１６ｂにより１ラインの処理が終了した後、出力制御部１６ｄは、画像データの出力を再開する。
本実施の形態では、予め定められたサイズの画像の出力が完了したことを示す出力完了信号の一例として、主走査出力完了信号（hoDone）、副走査出力完了信号（voDone）が用いられる。
【００４７】
検知手段の一例としての出力サイズ正誤検知部１６ｅは、各部から受け取る信号を基に、主走査出力サイズ設定値や副走査出力サイズ設定値にエラーのあることを検知する。そして、出力サイズ正誤検知部１６ｅは、検知するエラーの内容によって、画像カット／パディング部１６ｃに対してカットenable信号（hcut）を出力したり、パディングenable信号（hpad）を出力したりする。さらに、出力サイズ正誤検知部１６ｅは、入力wait信号（input_wait）を入力制御部１６ａに出力したり、出力wait信号（output_wait）を出力制御部１６ｄに出力したりする。
【００４８】
ここで、まず、主走査出力サイズ設定値にエラーのある場合について説明する。
【００４９】
主走査方向において、設定値（主走査出力サイズ設定値）分の画像データの出力が完了したが、画像データの入力が完了していない場合、出力サイズ正誤検知部１６ｅは、主走査出力サイズ設定値が実際の出力サイズよりも小さいことを検知する。言い換えると、出力サイズ正誤検知部１６ｅは、主走査出力完了信号（hoDone=1）を受け取ったが、主走査入力完了信号（hiDone=1）を受け取っていない場合、主走査出力サイズ設定値が実際の出力サイズよりも小さいことを検知する。
【００５０】
この場合、出力サイズ正誤検知部１６ｅは、主走査出力サイズ設定値が実際の出力サイズよりも小さいことを示す「２」がセットされたエラー信号（out_hsize_err）を、レジスタ１７に格納する。また、出力サイズ正誤検知部１６ｅは、主走査方向の入力が完了するまで画素をカットするように、カットenable信号（hcut）を画像カット／パディング部１６ｃに出力する。また、出力サイズ正誤検知部１６ｅは、主走査方向の入力が完了するまで画像データの出力を待機するように、出力wait信号（output_wait）に「１」をセットして出力制御部１６ｄに出力する。
【００５１】
次に、主走査方向において、画像データの入力が完了したが、設定値（主走査出力サイズ設定値）分の画像データの出力が完了していない場合、出力サイズ正誤検知部１６ｅは、主走査出力サイズ設定値が実際の出力サイズよりも大きいことを検知する。言い換えると、出力サイズ正誤検知部１６ｅは、主走査入力完了信号（hiDone=1）を受け取ったが、主走査出力完了信号（hoDone=1）を受け取っていない場合、主走査出力サイズ設定値が実際の出力サイズよりも大きいことを検知する。
【００５２】
この場合、出力サイズ正誤検知部１６ｅは、主走査出力サイズ設定値が実際の出力サイズよりも大きいことを示す「１」がセットされたエラー信号（out_hsize_err）を、レジスタ１７に格納する。また、出力サイズ正誤検知部１６ｅは、主走査方向において設定値分の画像データの出力が完了するまで画素をパディングするように、パディングenable信号（hpad）を画像カット／パディング部１６ｃに出力する。また、出力サイズ正誤検知部１６ｅは、主走査方向において設定値分の画像データの出力が完了するまで画像データの入力を待機するように、入力wait信号（input_wait）に「１」をセットして入力制御部１６ａに出力する。
【００５３】
次に、副走査出力サイズ設定値にエラーのある場合について説明する。
【００５４】
副走査方向において、設定値（副走査出力サイズ設定値）分の画像データの出力が完了したが、画像データの入力が完了していない場合、出力サイズ正誤検知部１６ｅは、副走査出力サイズ設定値が実際の出力サイズよりも小さいことを検知する。言い換えると、出力サイズ正誤検知部１６ｅは、副走査出力完了信号（voDone=1）を受け取ったが、副走査入力完了信号（viDone=1）を受け取っていない場合、副走査出力サイズ設定値が実際の出力サイズよりも小さいことを検知する。
【００５５】
この場合、出力サイズ正誤検知部１６ｅは、副走査出力サイズ設定値が実際の出力サイズよりも小さいことを示す「２」がセットされたエラー信号（out_vsize_err）を、レジスタ１７に格納する。また、出力サイズ正誤検知部１６ｅは、副走査方向の入力が完了するまで画素をカットするように、カットenable信号（hcut）を画像カット／パディング部１６ｃに出力する。また、出力サイズ正誤検知部１６ｅは、副走査方向の入力が完了するまで画像データの出力を待機するように、出力wait信号（output_wait）に「１」をセットして出力制御部１６ｄに出力する。
【００５６】
次に、副走査方向において、画像データの入力が完了したが、設定値（副走査出力サイズ設定値）分の画像データの出力が完了していない場合、出力サイズ正誤検知部１６ｅは、副走査出力サイズ設定値が実際の出力サイズよりも大きいことを検知する。言い換えると、出力サイズ正誤検知部１６ｅは、副走査入力完了信号（viDone=1）を受け取ったが、副走査出力完了信号（voDone=1）を受け取っていない場合、副走査出力サイズ設定値が実際の出力サイズよりも大きいことを検知する。
【００５７】
この場合、出力サイズ正誤検知部１６ｅは、副走査出力サイズ設定値が実際の出力サイズよりも大きいことを示す「１」がセットされたエラー信号（out_vsize_err）を、レジスタ１７に格納する。また、出力サイズ正誤検知部１６ｅは、副走査方向において設定値分の画像データの出力が完了するまで画素をパディングするように、パディングenable信号（hpad）を画像カット／パディング部１６ｃに出力する。また、出力サイズ正誤検知部１６ｅは、副走査方向において設定値分の画像データの出力が完了するまで画像データの入力を待機するように、入力wait信号（iput_wait）に「１」をセットして入力制御部１６ａに出力する。
【００５８】
このようにして、出力サイズ正誤検知部１６ｅは、主走査出力サイズ設定値や副走査出力サイズ設定値にエラーのあることを検知し、画像カット／パディング部１６ｃに対してカットenable信号（hcut）やパディングenable信号（hpad）を出力する。また、レジスタ１７に格納されるエラー信号により、主走査出力サイズ設定値や副走査出力サイズ設定値に誤りのあることがユーザに通知される。ユーザはレジスタ１７に格納されるエラー信号により誤りを特定し、デバッグを行えばよい。
【００５９】
＜画像カット／パディングの処理の説明＞
次に、主走査出力サイズ設定値や副走査出力サイズ設定値にエラーがある場合に、画像データをカットしたりパディングしたりする処理の流れについて、詳細に説明する。図５〜図８は、主走査出力サイズ設定値や副走査出力サイズ設定値にエラーがある場合の処理を説明するための図である。
【００６０】
図５〜図８に示す例において、「IN DATA」は、ＤＭＡＣ１４から入力制御部１６ａに入力される画像データである。また、「OUT DATA」は、拡大縮小回路１６ｂによる処理が行われ、出力制御部１６ｄからＤＭＡＣ１５へ出力される画像データである。「hiDone」、「hoDone」、「viDone」、「voDone」、「out_hsize_err」、「out_vsize_err」、「hcut」、「hpad」、「input_wait」、「output_wait」、「line_done」、「page_done」は、上述した各種信号である。
【００６１】
なお、「hiDone」、「hoDone」、「out_hsize_err」、「line_done」は、主走査出力サイズ設定値にエラーがある場合の例（図５及び図６の例）で用いられる。また、「viDone」、「voDone」、「out_vsize_err」、「page_done」は、副走査出力サイズ設定値にエラーがある場合の例（図７及び図８の例）で用いられる。
【００６２】
まず、図５を参照しながら、主走査出力サイズ設定値が実際の出力サイズよりも小さい場合の処理について説明する。図５は、主走査出力サイズ設定値が実際の出力サイズよりも小さい場合の処理の流れの一例を説明するための図である。ここで、拡大縮小回路１６ｂは、入力制御部１６ａから入力された画像データを２００％拡大する処理を行うものとして説明する。
【００６３】
主走査方向において、入力制御部１６ａから拡大縮小回路１６ｂへの１ライン分の画像データの入力が完了すると、主走査入力完了信号（hiDone）が立つ（「１」がセットされる）。また、主走査方向において、主走査出力サイズ設定値分の画像データの出力が完了すると、主走査出力完了信号（hoDone）が立つ。
【００６４】
ここで、主走査出力サイズ設定値が実際の出力サイズよりも小さい場合には、主走査出力完了信号（hoDone）が立った後にも、拡大縮小回路１６ｂにて処理が行われて、処理後の画像データが出力される。この画像データは、超過データ（超過画素）であり、ＤＭＡ転送がストールしないようにするためには、カットすることが必要になる。
【００６５】
そこで、図５に示すように、主走査出力完了信号（hoDone）が立ったにもかかわらず、主走査入力完了信号（hiDone）が立っていない場合（hoDone==1かつhiDone==0の場合）、カットenable信号（hcut）が生成され、画像カット／パディング部１６ｃにより画素のカットが行われる。ここでは、主走査出力完了信号（hoDone）が立った後、拡大縮小回路１６ｂによる１ライン分の画像データの出力が終了するまで（即ち、出力サイズ正誤検知部１６ｅが拡大縮小回路１６ｂからライン処理終了信号（line_done）を受け取るまで）、出力画素がカットされる。
【００６６】
また、主走査出力サイズのエラー信号（out_hsize_err）が生成される。このエラー信号（out_hsize_err）では、主走査出力サイズ設定値が実際の出力サイズよりも小さいことを示す「２」がセットされる。さらに、出力wait信号（output_wait）に「１」がセットされて、出力制御部１６ｄによる画像データの出力が待機される。
【００６７】
また、出力サイズ正誤検知部１６ｅは、主走査出力完了信号（hoDone）が立った後、拡大縮小回路１６ｂからライン処理終了信号（line_done）を受け取ると、ライン処理終了信号（line_done）に「１」をセットする。ライン処理終了信号（line_done）に「１」がセットされると、エラー信号（out_hsize_err）が「０」にネゲートされる。同様に、カットenable信号（hcut）、出力wait信号（output_wait）が「０」にネゲートされる。
【００６８】
このようにして、主走査出力サイズ設定値が実際の出力サイズよりも小さい場合、超過画素がカットされて、１ラインの処理が終了する。
【００６９】
次に、図６を参照しながら、主走査出力サイズ設定値が実際の出力サイズよりも大きい場合の処理について説明する。図６は、主走査出力サイズ設定値が実際の出力サイズよりも大きい場合の処理の流れの一例を説明するための図である。ここでは、図５の例と同様に、拡大縮小回路１６ｂは画像データを２００％拡大する処理を行うものとして説明する。
【００７０】
主走査出力サイズ設定値が実際の出力サイズよりも大きい場合には、出力される画像データが不足しており、ＤＭＡ転送がストールしないようにするためには、不足している画像データを補うために画素をパディングすることが必要になる。
【００７１】
そこで、図６に示すように、主走査入力完了信号（hiDone）が立ったにもかかわらず、主走査出力完了信号（hoDone）が立っていない場合（hiDone==1かつhoDone==0の場合）、パディングenable信号（hpad）が生成され、画像カット／パディング部１６ｃにより画素のパディングが行われる。ここでは、拡大縮小回路１６ｂによる画像データの出力が終わった後、主走査出力完了信号（hoDone）が立つまで、画素がパディングされる。
【００７２】
また、主走査出力サイズのエラー信号（out_hsize_err）が生成される。このエラー信号（out_hsize_err）では、主走査出力サイズ設定値が実際の出力サイズよりも大きいことを示す「１」がセットされる。さらに、入力wait信号（input_wait）に「１」がセットされて、入力制御部１６ａによる画像データの入力が待機される。
【００７３】
また、出力サイズ正誤検知部１６ｅは、拡大縮小回路１６ｂによる画像データの出力が終わった後（即ち、拡大縮小回路１６ｂからライン処理終了信号（line_done）を受け取った後）、主走査出力完了信号（hoDone）が立つと、ライン処理終了信号（line_done）に「１」をセットする。ライン処理終了信号（line_done）に「１」がセットされると、エラー信号（out_hsize_err）が「０」にネゲートされる。同様に、パディングenable信号（hpad）、入力wait信号（input_wait）が「０」にネゲートされる。
【００７４】
このようにして、主走査出力サイズ設定値が実際の出力サイズよりも大きい場合、不足分の画素がパディングされて、１ラインの処理が終了する。
【００７５】
次に、図７を参照しながら、副走査出力サイズ設定値が実際の出力サイズよりも小さい場合の処理について説明する。図７は、副走査出力サイズ設定値が実際の出力サイズよりも小さい場合の処理の流れの一例を説明するための図である。ここでは、図５の例と同様に、拡大縮小回路１６ｂは画像データを２００％拡大する処理を行うものとして説明する。
【００７６】
図５及び図６で説明したように、各ラインでは、主走査方向に画像データの拡大縮小処理が行われる。そして、例えば、主走査出力サイズ設定値が実際の出力サイズよりも小さい場合には、図５に示すように、超過画素がカットされる。また、主走査出力サイズ設定値が実際の出力サイズよりも大きい場合には、図６に示すように、不足分の画素がパディングされる。
【００７７】
このようにして各ラインの処理が順に行われた結果、副走査方向において、入力制御部１６ａから拡大縮小回路１６ｂへの画像データの入力が完了すると、副走査入力完了信号（viDone）が立つ。また、副走査方向において、副走査出力サイズ設定値分の画像データの出力が完了すると、副走査出力完了信号（voDone）が立つ。
【００７８】
ここで、副走査出力サイズ設定値が実際の出力サイズよりも小さい場合には、副走査出力完了信号（voDone）が立った後にも、拡大縮小回路１６ｂにて処理が行われて、処理後の画像データが出力される。この画像データは、超過データ（超過ライン）であり、ＤＭＡ転送がストールしないようにするためには、カットすることが必要になる。
【００７９】
そこで、図７に示すように、副走査出力完了信号（voDone）が立ったにもかかわらず、副走査入力完了信号（viDone）が立っていない場合（voDone==1かつviDone==0の場合）、カットenable信号（hcut）が生成され、画像カット／パディング部１６ｃにより画素のカットが行われる。ここでは、副走査出力完了信号（voDone）が立った後、拡大縮小回路１６ｂによる最終ラインの画像データの出力が終了するまで、出力ラインがカットされる。
【００８０】
また、副走査出力サイズのエラー信号（out_vsize_err）が生成される。このエラー信号（out_vsize_err）では、副走査出力サイズ設定値が実際の出力サイズよりも小さいことを示す「２」がセットされる。さらに、出力wait信号（output_wait）に「１」がセットされて、出力制御部１６ｄによる画像データの出力が待機される。
【００８１】
また、出力サイズ正誤検知部１６ｅは、副走査出力完了信号（voDone）が立った後、拡大縮小回路１６ｂからページ処理終了信号（page_done）を受け取ると、ページ処理終了信号（page_done）に「１」をセットする。ページ処理終了信号（page_done）に「１」がセットされると、エラー信号（out_vsize_err）が「０」にネゲートされる。同様に、カットenable信号（hcut）、出力wait信号（output_wait）が「０」にネゲートされる。
【００８２】
このようにして、副走査出力サイズ設定値が実際の出力サイズよりも小さい場合、超過ラインがカットされて、ＤＭＡＣ１４から入力される画像データの最終ラインまで処理が行われる。
【００８３】
次に、図８を参照しながら、副走査出力サイズ設定値が実際の出力サイズよりも大きい場合の処理について説明する。図８は、副走査出力サイズ設定値が実際の出力サイズよりも大きい場合の処理の流れの一例を説明するための図である。ここでは、図５の例と同様に、拡大縮小回路１６ｂは画像データを２００％拡大する処理を行うものとして説明する。
【００８４】
副走査出力サイズ設定値が実際の出力サイズよりも大きい場合には、出力される画像データが不足しており、ＤＭＡ転送がストールしないようにするためには、不足している画像データを補うためにライン単位で画像データをパディングすることが必要になる。
【００８５】
そこで、図８に示すように、副走査入力完了信号（viDone）が立ったにもかかわらず、副走査出力完了信号（voDone）が立っていない場合（viDone==1かつvoDone==0の場合）、パディングenable信号（hpad）が生成され、画像カット／パディング部１６ｃによりライン単位の画像データのパディングが行われる。ここでは、拡大縮小回路１６ｂによる画像データの出力が終わった後、副走査出力完了信号（voDone）が立つまで、画像データがパディングされる。
【００８６】
また、副走査出力サイズのエラー信号（out_vsize_err）が生成される。このエラー信号（out_vsize_err）では、副走査出力サイズ設定値が実際の出力サイズよりも大きいことを示す「１」がセットされる。さらに、入力wait信号（input_wait）に「１」がセットされて、入力制御部１６ａによる画像データの入力が待機される。
【００８７】
また、出力サイズ正誤検知部１６ｅは、拡大縮小回路１６ｂによる画像データの出力が終わった後（即ち、拡大縮小回路１６ｂからページ処理終了信号（page_done）を受け取った後）、副走査出力完了信号（voDone）が立つと、ページ処理終了信号（page_done）に「１」をセットする。ページ処理終了信号（page_done）に「１」がセットされると、エラー信号（out_vsize_err）が「０」にネゲートされる。同様に、パディングenable信号（hpad）、入力wait信号（input_wait）が「０」にネゲートされる。
【００８８】
このようにして、副走査出力サイズ設定値が実際の出力サイズよりも大きい場合、不足分のラインがパディングされて、ＤＭＡＣ１４へ出力する画像データの最終ラインまで処理が行われる。
【００８９】
＜副走査方向の処理手順＞
上述したように、イメージコア１６では、画像データに対してライン単位で副走査方向の処理が行われる。また、各ラインでは、画素単位で主走査方向の処理が行われる。ここで、図９−１及び図９−２を参照しながら、副走査方向の処理手順について説明する。図９−１及び図９−２は、副走査方向の処理の手順の一例を示したフローチャートである。
【００９０】
まず、入力制御部１６ａは、副走査方向の入力カウント（以下、副走査入力カウントと称する）をリセットし、出力制御部１６ｄは、副走査方向の出力カウント（以下、副走査出力カウントと称する）をリセットする（ステップ１０１）。ここで、副走査入力カウントは「０」にリセットされる。同様に、副走査出力カウントは「０」にリセットされる。
【００９１】
次に、入力制御部１６ａは、副走査方向において、拡大縮小回路１６ｂへの画像データの入力が完了したか否かを判定する（ステップ１０２）。ここで、入力制御部１６ａは、副走査方向において、ＤＭＡＣ１４から転送される画像データを最終ラインまで全て拡大縮小回路１６ｂへ入力したか否かを判定する。
【００９２】
より具体的には、入力制御部１６ａは、副走査入力カウントと副走査入力サイズ設定値とを比較する。副走査入力カウントが副走査入力サイズ設定値よりも小さい場合には、画像データの入力が完了していない（ステップ１０２でＮＯ）と判定される。一方、副走査入力カウントと副走査入力サイズ設定値とが同一である場合には、画像データの入力が完了した（ステップ１０２でＹＥＳ）と判定される。
【００９３】
ステップ１０２で肯定の判断（ＹＥＳ）がされた場合、入力制御部１６ａは、「viDone」に「１」をセットする（ステップ１０３）。言い換えると、入力制御部１６ａは、副走査方向において画像データの入力が完了したことを示す副走査入力完了信号（viDone=1）を、出力サイズ正誤検知部１６ｅへ出力する。一方、ステップ１０２で否定の判断（ＮＯ）がされた場合、入力制御部１６ａは、「viDone」に「０」をセットする（「viDone」を立てずに「０」のままにする）（ステップ１０４）。
【００９４】
次に、出力制御部１６ｄは、副走査方向において、副走査出力サイズ設定値分の画像データの出力が完了したか否かを判定する（ステップ１０５）。ここで、出力制御部１６ｄは、副走査方向において、副走査出力サイズ設定値分の画像データを全てＤＭＡＣ１５に出力したか否かを判定する。
【００９５】
より具体的には、出力制御部１６ｄは、副走査出力カウントと副走査出力サイズ設定値とを比較する。副走査出力カウントが副走査出力サイズ設定値よりも小さい場合には、画像データの出力が完了していない（ステップ１０５でＮＯ）と判定される。一方、副走査出力カウントと副走査出力サイズ設定値とが同一である場合には、画像データの出力が完了した（ステップ１０５でＹＥＳ）と判定される。
【００９６】
ステップ１０５で肯定の判断（ＹＥＳ）がされた場合、出力制御部１６ｄは、「voDone」に「１」をセットする（ステップ１０６）。言い換えると、出力制御部１６ｄは、副走査方向において画像データの出力が完了したことを示す副走査出力完了信号（voDone=1）を、出力サイズ正誤検知部１６ｅへ出力する。一方、ステップ１０５で否定の判断（ＮＯ）がされた場合、出力制御部１６ｄは、「voDone」に「０」をセットする（「voDone」を立てずに「０」のままにする）（ステップ１０７）。
【００９７】
次に、出力サイズ正誤検知部１６ｅは、「viDone」及び「voDone」が共に「１」であるか否かを判定する（ステップ１０８）。
ステップ１０８で肯定の判断（ＹＥＳ）がされた場合、次に、出力サイズ正誤検知部１６ｅは、「page_done」が「１」であるか否かを判定する（ステップ１０９）。ここで、出力サイズ正誤検知部１６ｅは、「voDone」が「１」であるとともに、拡大縮小回路１６ｂからページ処理終了信号（page_done）を受け取っていれば、「page_done」に「１」をセットし、ステップ１０９で肯定の判断（ＹＥＳ）を行う。一方、出力サイズ正誤検知部１６ｅは、拡大縮小回路１６ｂからページ処理終了信号（page_done）を受け取っていなければ、ステップ１０９で否定の判断（ＮＯ）を行い、ページ処理終了信号を受け取るまで待機する。
【００９８】
ステップ１０９で肯定の判断（ＹＥＳ）がされた場合には、各種信号、言い換えると、副走査出力サイズのエラー信号（out_vsize_err）、カットenable信号（hcut）、パディングenable信号（hpad）、入力wait信号（input_wait）、出力wait信号（output_wait）が「０」にネゲートされる（ステップ１１０）。そして、本処理フローは終了する。
【００９９】
また、ステップ１０８で否定の判断（ＮＯ）がされた場合には、次に、出力サイズ正誤検知部１６ｅは、「viDone」が「１」、かつ「voDone」が「０」であるか否かを判定する（ステップ１１１）。
【０１００】
ステップ１１１で肯定の判断（ＹＥＳ）がされた場合、主走査方向全パディング処理が行われる（ステップ１１２）。主走査方向全パディング処理の詳細については、後述する。主走査方向全パディング処理が終了した後、出力サイズ正誤検知部１６ｅは、副走査出力サイズ設定値が実際の出力サイズよりも大きいことを示す「１」がセットされたエラー信号（out_vsize_err）を、レジスタ１７に出力する（ステップ１１３）。次に、出力制御部１６ｄは、副走査出力カウントを「１」増やす（ステップ１１４）。そして、後述するステップ１２２へ移行する。
【０１０１】
また、ステップ１１１で否定の判断（ＮＯ）がされた場合、次に、出力サイズ正誤検知部１６ｅは、「viDone」が「０」、かつ「voDone」が「１」であるか否かを判定する（ステップ１１５）。
【０１０２】
ステップ１１５で肯定の判断（ＹＥＳ）がされた場合、入力制御部１６ａは、副走査入力カウントを「１」増やす（ステップ１１６）。そして、次の１ラインに対して、主走査方向全カッティング処理が行われる（ステップ１１７）。主走査方向全カッティング処理の詳細については、後述する。主走査方向全カッティング処理が終了した後、出力サイズ正誤検知部１６ｅは、副走査出力サイズ設定値が実際の出力サイズよりも小さいことを示す「２」がセットされたエラー信号（out_vsize_err）を、レジスタ１７に出力する（ステップ１１８）。そして、後述するステップ１２２へ移行する。
【０１０３】
また、ステップ１１５で否定の判断（ＮＯ）がされた場合、即ち、「viDone」及び「voDone」が共に「０」であると判定された場合、入力制御部１６ａは、副走査入力カウントを「１」増やす（ステップ１１９）。そして、次の１ラインに対して、主走査方向通常処理が行われる（ステップ１２０）。主走査方向通常処理の詳細については、後述する。主走査方向通常処理が終了した後、出力制御部１６ｄは、副走査出力カウントを「１」増やす（ステップ１２１）。そして、ステップ１０２に移行する。
【０１０４】
また、ステップ１１４の後、又はステップ１１８の後、出力サイズ正誤検知部１６ｅは、副走査出力サイズのエラー信号をレジスタ１７に格納済みであるか否かを判定する（ステップ１２２）。
【０１０５】
ステップ１２２で否定の判断（ＮＯ）がされた場合、出力サイズ正誤検知部１６ｅは、副走査出力サイズのエラー信号（out_vsize_err）をレジスタ１７に出力して格納させる（ステップ１２３）。ここでは、ステップ１１３の処理が行われた場合には「１」がセットされたエラー信号（out_vsize_err）が格納され、ステップ１１８の処理が行われた場合には「２」がセットされたエラー信号（out_vsize_err）が格納される。
また、ステップ１２２で肯定の判断（ＹＥＳ）がされた場合、又はステップ１２３の後、ステップ１０２に移行する。
【０１０６】
このようにして、「viDone」及び「voDone」の値を基に、副走査方向の各ラインに対して、主走査方向全パディング処理、主走査方向全カッティング処理、又は主走査方向通常処理が行われる。そして、副走査出力サイズ設定値が実際の出力サイズよりも大きい場合にはパディング処理が行われ、副走査出力サイズ設定値が実際の出力サイズよりも小さい場合にはカッティング処理が行われる。
【０１０７】
＜主走査方向通常処理の手順＞
次に、主走査方向通常処理の手順について説明する。図１０−１及び図１０−２は、主走査方向通常処理の手順の一例を示したフローチャートである。図１０−１及び図１０−２に示す一連の処理は、図９−２のステップ１２０の処理に該当する。
【０１０８】
まず、入力制御部１６ａは、主走査方向の入力カウント（以下、主走査入力カウントと称する）をリセットし、出力制御部１６ｄは、主走査方向の出力カウント（以下、主走査出力カウントと称する）をリセットする（ステップ２０１）。ここで、主走査入力カウントは「０」にリセットされる。同様に、主走査出力カウントは「０」にリセットされる。
【０１０９】
次に、入力制御部１６ａは、主走査方向において、拡大縮小回路１６ｂへの１ライン分の画像データの入力が完了したか否かを判定する（ステップ２０２）。ここで、入力制御部１６ａは、主走査方向において、ＤＭＡＣから転送される１ライン分の画像データを全て拡大縮小回路１６ｂへ入力したか否かを判定する。
【０１１０】
より具体的には、入力制御部１６ａは、主走査入力カウントと主走査入力サイズ設定値とを比較する。主走査入力カウントが主走査入力サイズ設定値よりも小さい場合には、画像データの入力が完了していない（ステップ２０２でＮＯ）と判定される。一方、主走査入力カウントと主走査入力サイズ設定値とが同一である場合には、画像データの入力が完了した（ステップ２０２でＹＥＳ）と判定される。
【０１１１】
ステップ２０２で肯定の判断（ＹＥＳ）がされた場合、入力制御部１６ａは、「hiDone」に「１」をセットする（ステップ２０３）。言い換えると、入力制御部１６ａは、主走査方向において画像データの入力が完了したことを示す主走査入力完了信号（hiDone=1）を、出力サイズ正誤検知部１６ｅへ出力する。一方、ステップ２０２で否定の判断（ＮＯ）がされた場合、入力制御部１６ａは、「hiDone」に「０」をセットする（「hiDone」を立てずに「０」のままにする）（ステップ２０４）。
【０１１２】
次に、出力制御部１６ｄは、主走査方向において、主走査出力サイズ設定値分の画像データの出力が完了したか否かを判定する（ステップ２０５）。ここで、出力制御部１６ｄは、主走査方向において、主走査出力サイズ設定値分の画像データを全てＤＭＡＣ１５に出力したか否かを判定する。
【０１１３】
より具体的には、出力制御部１６ｄは、主走査出力カウントと主走査出力サイズ設定値とを比較する。主走査出力カウントが主走査出力サイズ設定値よりも小さい場合には、画像データの出力が完了していない（ステップ２０５でＮＯ）と判定される。一方、主走査出力カウントと主走査出力サイズ設定値とが同一である場合には、画像データの出力が完了した（ステップ２０５でＹＥＳ）と判定される。
【０１１４】
ステップ２０５で肯定の判断（ＹＥＳ）がされた場合、出力制御部１６ｄは、「hoDone」に「１」をセットする（ステップ２０６）。言い換えると、出力制御部１６ｄは、主走査方向において１ライン分の画像データの出力が完了したことを示す主走査出力完了信号（hoDone=1）を、出力サイズ正誤検知部１６ｅへ出力する。一方、ステップ２０５で否定の判断（ＮＯ）がされた場合、出力制御部１６ｄは、「hoDone」に「０」をセットする（「hoDone」を立てずに「０」のままにする）（ステップ２０７）。
【０１１５】
次に、出力サイズ正誤検知部１６ｅは、「hiDone」及び「hoDone」が共に「１」であるか否かを判定する（ステップ２０８）。
ステップ２０８で肯定の判断（ＹＥＳ）がされた場合、次に、出力サイズ正誤検知部１６ｅは、「line_done」が「１」であるか否かを判定する（ステップ２１０）。ここで、出力サイズ正誤検知部１６ｅは、「hoDone」が「１」であるとともに、拡大縮小回路１６ｂからライン処理終了信号（line_done）を受け取っていれば、「line_done」に「１」をセットし、ステップ２０９で肯定の判断（ＹＥＳ）を行う。一方、出力サイズ正誤検知部１６ｅは、拡大縮小回路１６ｂからライン処理終了信号（line_done）を受け取っていなければ、ステップ２０９で否定の判断（ＮＯ）を行い、ライン処理終了信号を受け取るまで待機する。
【０１１６】
ステップ２０９で肯定の判断（ＹＥＳ）がされた場合には、各種信号、言い換えると、主走査出力サイズのエラー信号（out_hsize_err）、カットenable信号（hcut）、パディングenable信号（hpad）、入力wait信号（input_wait）、出力wait信号（output_wait）が「０」にネゲートされる（ステップ２１０）。そして、本処理フローは終了する。
【０１１７】
また、ステップ２０８で否定の判断（ＮＯ）がされた場合、次に、出力サイズ正誤検知部１６ｅは、「hiDone」が「１」、かつ「hoDone」が「０」であるか否かを判定する（ステップ２１１）。
【０１１８】
ステップ２１１で肯定の判断（ＹＥＳ）がされた場合、出力サイズ正誤検知部１６ｅは、主走査方向の出力が完了するまで画像データの入力を待機するように、入力wait信号（input_wait）に「１」をセットして入力制御部１６ａに出力する（ステップ２１２）。次に、出力サイズ正誤検知部１６ｅは、主走査出力サイズ設定値が実際の出力サイズよりも大きいことを示す「１」がセットされたエラー信号（out_hsize_err）を、レジスタ１７に出力する（ステップ２１３）。
【０１１９】
次に、出力サイズ正誤検知部１６ｅは、主走査方向の出力が完了するまで画素をパディングするように、パディングenable信号（hpad）を画像カット／パディング部１６ｃに出力する。そして、画像カット／パディング部１６ｃは、１画素をパディングして出力する（ステップ２１４）。次に、出力制御部１６ｄは、主走査出力カウントを「１」増やす（ステップ２１５）。そして、後述するステップ２２８へ移行する。
【０１２０】
また、ステップ２１１で否定の判断（ＮＯ）がされた場合、次に、出力サイズ正誤検知部１６ｅは、「hiDone」が「０」、かつ「hoDone」が「１」であるか否かを判定する（ステップ２１６）。
【０１２１】
ステップ２１６で肯定の判断（ＹＥＳ）がされた場合、入力制御部１６ａから拡大縮小回路１６ｂに１画素入力され、拡大縮小回路１６ｂは、入力制御部１６ａから入力される１画素を読み込む（ステップ２１７）。次に、入力制御部１６ａは、主走査入力カウントを「１」増やす（ステップ２１８）。そして、拡大縮小回路１６ｂは、読み込んだ１画素に対して拡大又は縮小の処理を行う（ステップ２１９）。
【０１２２】
次に、出力サイズ正誤検知部１６ｅは、主走査出力サイズ設定値が実際の出力サイズよりも小さいことを示す「２」がセットされたエラー信号（out_hsize_err）を、レジスタ１７に出力する（ステップ２２０）。次に、出力サイズ正誤検知部１６ｅは、主走査方向の入力が完了するまで（即ち、ページ処理終了信号（page_done）を受け取るまで）画素をカットするように、カットenable信号（hcut）を画像カット／パディング部１６ｃに出力する。  そして、画像カット／パディング部１６ｃは、拡大縮小回路１６ｂからの画素をカット（カッティング）する（ステップ２２１）。
【０１２３】
また、出力サイズ正誤検知部１６ｅは、主走査方向の入力が完了するまで画像データの出力を待機するように、出力wait信号（output_wait）に「１」をセットして出力制御部１６ｄに出力する（ステップ２２２）。そして、後述するステップ２２８へ移行する。
【０１２４】
また、ステップ２１６で否定の判断（ＮＯ）がされた場合、即ち、「hiDone」及び「hoDone」が共に「０」であると判定された場合、入力制御部１６ａから拡大縮小回路１６ｂに１画素入力され、拡大縮小回路１６ｂは、入力制御部１６ａから入力される１画素を読み込む（ステップ２２３）。次に、入力制御部１６ａは、主走査入力カウントを「１」増やす（ステップ２２４）。そして、拡大縮小回路１６ｂは、読み込んだ１画素に対して拡大又は縮小の処理を行う（ステップ２２５）。
【０１２５】
次に、画像カット／パディング部１６ｃは、拡大縮小回路１６ｂから転送された画素をスルーしてそのまま出力制御部１６ｄに出力する（ステップ２２６）。次に、出力制御部１６ｄは、主走査出力カウントを「１」増やす（ステップ２２７）。そして、ステップ２０２に移行する。
【０１２６】
また、ステップ２１５の後、又はステップ２２２の後、出力サイズ正誤検知部１６ｅは、主走査出力サイズのエラー信号をレジスタ１７に格納済みであるか否かを判定する（ステップ２２８）。
【０１２７】
ステップ２２８で否定の判断（ＮＯ）がされた場合、出力サイズ正誤検知部１６ｅは、主走査出力サイズのエラー信号（out_hsize_err）をレジスタ１７に出力して格納させる（ステップ２２９）。ここでは、ステップ２１３の処理が行われた場合には「１」がセットされたエラー信号（out_hsize_err）が格納され、ステップ２２０の処理が行われた場合には「２」がセットされたエラー信号（out_hsize_err）が格納される。
また、ステップ２２８で肯定の判断（ＹＥＳ）がされた場合、又はステップ２２９の後、ステップ２０２に移行する。
【０１２８】
このようにして、「hiDone」及び「hoDone」の値を基に、１ラインの画像データに対して処理が行われる。そして、主走査出力サイズ設定値が実際の出力サイズよりも大きい場合にはパディング処理が行われ、主走査出力サイズ設定値が実際の出力サイズよりも小さい場合にはカッティング処理が行われる。
【０１２９】
＜主走査方向全カッティング処理＞
次に、主走査方向全カッティング処理の手順について説明する。主走査方向全カッティング処理は、「viDone==0」かつ「voDone==1」の場合、言い換えると、副走査方向において設定値分（設定ライン分）の画像データの出力が完了したにもかかわらず、拡大縮小回路１６ｂから画像データが出力される場合に、１ライン分の画素を全てカットする処理である。図１１は、主走査方向全カッティング処理の手順の一例を示したフローチャートである。図１１に示す一連の処理は、図９−２のステップ１１７の処理に該当する。
【０１３０】
まず、入力制御部１６ａは、主走査入力カウントをリセットし、出力制御部１６ｄは、主走査出力カウントをリセットする（ステップ３０１）。ここで、主走査入力カウントは「０」にリセットされる。同様に、主走査出力カウントは「０」にリセットされる。
【０１３１】
次に、入力制御部１６ａは、「hoDone」に「１」をセットする（ステップ３０２）。次のステップ３０３〜３０５の処理、ステップ３０６〜３０８の処理はそれぞれ、図１０−１のステップ２０２〜２０４、ステップ２０８〜２１０の処理と同様である。
【０１３２】
即ち、１ライン分の画像データの入力が完了したと判定された場合（ステップ３０３でＹＥＳ）、「hiDone」に「１」がセットされ（ステップ３０４）、ステップ３０６で肯定の判断（ＹＥＳ）がされる。そして、出力サイズ正誤検知部１６ｅが拡大縮小回路１６ｂからライン処理終了信号（line_done）を受け取ると（ステップ３０７でＹＥＳ）、各種信号が「０」にネゲートされる（ステップ３０８）。そして、本処理フローは終了する。
【０１３３】
一方、ステップ３０３において、１ライン分の画像データの入力が完了していないと判定された場合（ステップ３０３でＮＯ）には、ステップ３０６で否定の判断（ＮＯ）がされる。そして、ステップ３０９〜３１４の処理が行われる。ステップ３０９〜ステップ３１４の処理はそれぞれ、図１０−２のステップ２１７〜２２２の処理と同様である。即ち、拡大縮小回路１６ｂに１画素が入力され、拡大縮小回路１６ｂにて拡大縮小処理が行われた後、拡大縮小後の画素がカットされる。
【０１３４】
このようにして、主走査方向において１ライン分の画像データの入力が完了するまで、拡大縮小回路１６ｂから出力される拡大縮小後の画素が全てカットされる。そして、１ライン分の画像データの入力が完了すると、主走査方向全カッティング処理は終了する。
【０１３５】
＜主走査方向全パディング処理の手順＞
次に、主走査方向全パディング処理の手順について説明する。主走査方向全パディング処理は、「viDone==1」かつ「voDone==0」の場合、言い換えると、副走査方向において、拡大縮小回路１６ｂへの画像データの入力が完了したにもかかわらず、設定値分（設定ライン分）の画像データの出力が完了していない場合に、１ライン分の画素を全てパディングする処理である。図１２は、主走査方向全パディング処理の手順の一例を示したフローチャートである。図１２に示す一連の処理は、図９−２のステップ１１２の処理に該当する。
【０１３６】
まず、入力制御部１６ａは、主走査入力カウントをリセットし、出力制御部１６ｄは、主走査出力カウントをリセットする（ステップ４０１）。ここで、主走査入力カウントは「０」にリセットされる。同様に、主走査出力カウントは「０」にリセットされる。
【０１３７】
次に、出力制御部１６ｄは、「hiDone」に「１」をセットする（ステップ４０２）。次のステップ４０３〜ステップ４０５の処理、ステップ４０６〜ステップ４０８の処理はそれぞれ、図１０−１のステップ２０５〜２０７、ステップ２０８〜２１０の処理と同様である。
【０１３８】
即ち、１ライン分の画像データの出力が完了したと判定された場合（ステップ４０３でＹＥＳ）、「hoDone」に「１」がセットされ（ステップ４０４）、ステップ４０６で肯定の判断（ＹＥＳ）がされる。主走査方向全パディング処理では、拡大縮小回路１６ｂが拡大縮小の処理を行わないため、出力サイズ正誤検知部１６ｅは、「hoDone」に「１」がセットされると「line_done」に「１」をセットし、ステップ４０７で肯定の判断（ＹＥＳ）がされる。そして、各種信号が「０」にネゲートされ（ステップ４０８）、本処理フローは終了する。
【０１３９】
一方、ステップ４０３において、１ライン分の画像データの出力が完了していないと判定された場合（ステップ４０３でＮＯ）、ステップ４０６で否定の判断（ＮＯ）がされる。そして、ステップ４０９〜４１２の処理が行われる。ステップ４０９〜４１２の処理はそれぞれ、図１０−２のステップ２１２〜２１５の処理と同様である。即ち、画像カット／パディング部１６ｃが１画素をパディングして出力制御部１６ｄに出力する。
【０１４０】
このようにして、主走査方向において１ライン分の画像データ（主走査出力サイズ設定値の画像データ）の出力が完了するまで、１画素ずつパディングされる。そして、１ライン分の画像データの出力が完了すると、主走査方向全パディング処理は終了する。
【０１４１】
＜画像カット・パディングの処理の具体例＞
次に、画像データのカット・パディングの処理について、具体例を挙げて説明する。図１３（ａ）、（ｂ）は、画像データのカット又はパディングの処理の具体例を説明するための図である。以下に示すステップは、図９〜図１２の各ステップに対応するものとする。
【０１４２】
図１３（ａ）を参照しながら、１つ目の具体例について説明する。
図１３（ａ）に示す例では、拡大縮小回路１６ｂによる処理後の画像データの設定値が１５００画素×２０００ラインである場合に、実際には１６００画素×１９００ラインの画像データが生成されるものとする。即ち、主走査出力サイズ設定値（１５００画素）が実際の出力サイズ（１６００画素）よりも小さく、副走査出力サイズ設定値（２０００ライン）が実際の出力サイズ（１９００ライン）よりも大きい場合の動作例である。
【０１４３】
まず、画像データの１ライン目から順次処理が行われる。ここでは、図９−２のステップ１２０の主走査方向通常処理が順次行われ、拡大縮小回路１６ｂから処理後の画素が出力される。そして、１ライン目の１５００画素が出力されると、主走査出力カウントと主走査出力サイズ設定値とが同一になり、主走査出力サイズ設定値分の画像データの出力が完了する（ステップ２０５でＹＥＳ）。そして、「hoDone」に「１」がセットされる（ステップ２０６）。
【０１４４】
その結果、「hiDone=0」かつ「hoDone=1」になり（ステップ２１６でＹＥＳ）、拡大縮小回路１６ｂから出力される画素がカットされる（ステップ２２１）。ここで、拡大縮小回路１６ｂに１画素入力され、拡大縮小回路１６ｂから出力される画素がカットされることにより、１５００画素を超える１００画素分がカットされる。そして、１ライン目の処理は終了する。また、２ライン目以降でも同様に、１５００画素を超える１００画素分がカットされ、破線を付した領域２Ａの画素がカットされることになる。
【０１４５】
１９００ラインまで処理されると、副走査入力カウントと副走査入力サイズ設定値とが同一になり、副走査方向において、拡大縮小回路１６ｂへの画像データの入力が完了する（ステップ１０２でＹＥＳ）。そして、「viDone」に「１」がセットされる（ステップ１０３）。その結果、「viDone=1」かつ「voDone=0」になり（ステップ１１１でＹＥＳ）、主走査方向全パディング処理が行われる（ステップ１１２）。
【０１４６】
主走査方向全パディング処理では、１９０１ライン目の主走査方向の処理として、１ライン分である主走査出力サイズ設定値（１５００画素）の画像がパディングされる（ステップ４１１）。このパディングの処理が、１９０２ライン目以降も２０００ラインに到達するまで行われ、破線を付した領域２Ｂの画素がパディングされることになる。
【０１４７】
また、２０００ラインまでパディングされると、副走査出力カウントと副走査出力サイズ設定値とが同一になり、副走査出力サイズ設定値分の画像データの出力が完了する（ステップ１０５でＹＥＳ）。そして、「voDone」に「１」がセットされる（ステップ１０６）。その結果、「viDone=1」かつ「voDone=1」になり（ステップ１０８でＹＥＳ）、ステップ１０９及びステップ１１０の処理が行われて、全体の処理が終了する。
【０１４８】
このようにして、画像データのカット又はパディングが行われ、設定値である１５００画素×２０００ラインの画像データが、イメージコア１６からＤＭＡＣ１５へ出力される。
【０１４９】
次に、図１３（ｂ）を参照しながら、２つ目の具体例について説明する。
図１３（ｂ）に示す例では、拡大縮小回路１６ｂによる処理後の画像データの設定値が１５００画素×２０００ラインである場合に、実際には１４００画素×２１００ラインの画像データが生成されるものとする。即ち、主走査出力サイズ設定値（１５００画素）が実際の出力サイズ（１４００画素）よりも大きく、副走査出力サイズ設定値（２０００ライン）が実際の出力サイズ（２１００ライン）よりも小さい場合の動作例である。
【０１５０】
まず、図１３（ａ）の例と同様に、画像データの１ライン目から順次処理が行われる。そして、１ライン目の１４００画素が出力されると、主走査入力カウントと主走査入力サイズ設定値とが同一になり、主走査方向において、拡大縮小回路１６ｂへの画像データの入力が完了する（ステップ２０２でＹＥＳ）。そして、「hiDone」に「１」がセットされる（ステップ２０３）。
【０１５１】
その結果、「hiDone=1」かつ「hoDone=0」になり（ステップ２１１でＹＥＳ）、画素のパディングが行われる（ステップ２１４）。ここで、１ライン目が主走査出力サイズ設定値（１５００画素）になるように、１４００画素を超える１００画素がパディングされる。そして、１ライン目の処理は終了する。また、２ライン目以降でも同様に、１４００画素を超える１００画素のパディングが行われ、破線を付した領域２Ｃの画素がパディングされることになる。
【０１５２】
２０００ラインまで処理されると、副走査出力カウントと副走査出力サイズ設定値とが同一になり、副走査出力サイズ設定値分の画像データの出力が完了する（ステップ１０５でＹＥＳ）。そして、「voDone」に「１」がセットされる（ステップ１０６）。その結果、「viDone=0」かつ「voDone=1」になり（ステップ１１５でＹＥＳ）、主走査方向全カッティング処理が行われる（ステップ１１８）。
【０１５３】
主走査方向全カッティング処理では、２００１ライン目の主走査方向の処理として、拡大縮小回路１６ｂから出力される１ライン分の１４００画素がカットされる（ステップ３１３）。このカッティングの処理が、２００２ライン目以降も２１００ラインに到達するまで行われ、破線を付した領域２Ｄの画素がカットされることになる。
【０１５４】
また、２１００ラインまでカットされると、副走査入力カウントと副走査入力サイズ設定値とが同一になり、副走査方向において、拡大縮小回路１６ｂへの画像データの入力が完了する（ステップ１０２でＹＥＳ）。そして、「viDone」に「１」がセットされる（ステップ１０３）。その結果、「viDone=1」かつ「voDone=1」になり（ステップ１０８でＹＥＳ）、ステップ１０９及びステップ１１０の処理が行われて、全体の処理が終了する。
【０１５５】
このようにして、画像データのカット又はパディングが行われ、設定値である１５００画素×２０００ラインの画像データが、イメージコア１６からＤＭＡＣ１５へ出力される。
【０１５６】
以上説明したように、本実施の形態に係るイメージコア１６は、設定値（主走査出力サイズ設定値及び副走査出力サイズ設定値）のサイズの画像データをＤＭＡＣ１５に出力するように、画素のカットやパディングを行う。例えば、画像処理装置１００にて推奨されていない倍率などのように、ユーザがどのような倍率を選択して画像データの拡大又は縮小をする場合でも、イメージコア１６は、設定値のサイズの画像データを出力するように画素のカットやパディングを行う。このように、イメージコア１６は、指定された倍率がＤＭＡ転送においてストールの発生し得る倍率である場合に、出力する画像のサイズを、ＤＭＡ転送による入力や出力においてストールが発生しないサイズの画像に変更し、ストールの発生を抑制する制御を行う。
【０１５７】
＜他の構成例＞
次に、本実施の形態に係る画像処理装置１００の他の構成例について説明する。図４に示す例では、イメージコア１６の内部にストール防止の機構を備えることとしたが、他の構成例では、イメージコア１６の外部にストール防止の機構を備える。例えば、イメージコア１６の構成上、ストール防止の機構をイメージコア１６の内部に搭載できない場合に、他の構成例が用いられる。
【０１５８】
図１４は、本実施の形態に係る画像処理装置１００の他の構成例を示す図である。図１４に示す構成では、図４に示す構成と違い、画像カット／パディング部１６ｃ、出力サイズ正誤検知部１６ｅが、イメージコア１６の外部に設けられる。さらに、図１４に示す構成では、入力画素カウンタ部１６ｆ、出力画素カウンタ部１６ｇ、入出力完了判断部１６ｈが新たに設けられる。一方で、図１４に示す構成では、入力制御部１６ａ、出力制御部１６ｄは設けられず、入力制御部１６ａの機能はＤＭＡＣ１４により実現され、出力制御部１６ｄの機能はＤＭＡＣ１５により実現される。
【０１５９】
拡大縮小回路１６ｂ、画像カット／パディング部１６ｃは、図４に示す構成と同様の処理を行う。
出力サイズ正誤検知部１６ｅは、入力wait信号（iput_wait）をＤＭＡＣ１４に出力し、出力wait信号（output_wait）をＤＭＡＣ１５に出力する点で、図４に示す構成と異なる。
【０１６０】
入力画素カウンタ部１６ｆは、主走査入力カウント及び副走査入力カウントを有しており、カウントの情報（in_cnt）を入出力完了判断部１６ｈへ出力する。
出力画素カウンタ部１６ｇは、主走査出力カウント及び副走査出力カウントを有しており、カウントの情報（out_cnt）を入出力完了判断部１６ｈへ出力する。
【０１６１】
入出力完了判断部１６ｈは、レジスタ１７から、主走査入力サイズ設定値、副走査入力サイズ設定値、主走査出力サイズ設定値、及び副走査出力サイズ設定値を取得する。また、入出力完了判断部１６ｈは、入力画素カウンタ部１６ｆ及び出力画素カウンタ部１６ｇのそれぞれから、カウントの情報を取得する。そして、入出力完了判断部１６ｈは、取得したこれらの情報から、主走査入力完了信号（hiDone）、副走査入力完了信号（viDone）、主走査出力完了信号（hoDone）、副走査出力完了信号（voDone）を生成する。生成された信号は、出力サイズ正誤検知部１６ｅの処理に用いられる。
【０１６２】
より具体的には、例えば、主走査入力サイズ設定値と主走査入力カウントとが同一の場合、入出力完了判断部１６ｈは、主走査入力完了信号（hiDone=1）を生成する。また、例えば、副走査入力サイズ設定値と副走査入力カウントとが同一の場合、入出力完了判断部１６ｈは、副走査入力完了信号（viDone=1）を生成する。さらに、例えば、主走査出力サイズ設定値と主走査出力カウントとが同一の場合、入出力完了判断部１６ｈは、主走査出力完了信号（hoDone=1）を生成する。また、例えば、副走査出力サイズ設定値と副走査出力カウントとが同一の場合、入出力完了判断部１６ｈは、副走査出力完了信号（voDone=1）を生成する。このようにして生成された信号は、出力サイズ正誤検知部１６ｅに出力され、カットenable信号（hcut）やパディングenable信号（hpad）の生成などに用いられる。
【０１６３】
なお、本発明の実施の形態を実現するプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭ等の記録媒体に格納して提供することも可能である。
【０１６４】
また、上記では種々の実施形態および変形例を説明したが、これらの実施形態や変形例どうしを組み合わせて構成してももちろんよい。
また、本開示は上記の実施形態に何ら限定されるものではなく、本開示の要旨を逸脱しない範囲で種々の形態で実施することができる。
【符号の説明】
【０１６５】
１０…制御部、１４，１５…ＤＭＡＣ、１６…イメージコア、１６ａ…入力制御部、１６ｂ…拡大縮小回路、１６ｃ…画像カット／パディング部、１６ｄ…出力制御部、１６ｅ…出力サイズ正誤検知部、１６ｆ…入力画素カウンタ部、１６ｇ…出力画素カウンタ部、１６ｈ…入出力完了判断部、１７…レジスタ、１００…画像処理装置
【図１】
2019004198.tif 000003
【図２】
2019004198.tif 000004
【図３】
2019004198.tif 000005
【図４】
2019004198.tif 000006
【図５】
2019004198.tif 000007
【図６】
2019004198.tif 000008
【図７】
2019004198.tif 000009
【図８】
2019004198.tif 000010
【図９−１】
2019004198.tif 000011
【図９−２】
2019004198.tif 000012
【図１０−１】
2019004198.tif 000013
【図１０−２】
2019004198.tif 000014
【図１１】
2019004198.tif 000015
【図１２】
2019004198.tif 000016
【図１３】
2019004198.tif 000017
【図１４】
2019004198.tif 000018