IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士ゼロックス株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-16
(45)【発行日】2022-05-24
(54)【発明の名称】電子装置及びプログラム
(51)【国際特許分類】
   H04N 1/393 20060101AFI20220517BHJP
   G06T 1/60 20060101ALI20220517BHJP
【FI】
H04N1/393
G06T1/60 450E
【請求項の数】 8
(21)【出願番号】P 2017114675
(22)【出願日】2017-06-09
(65)【公開番号】P2019004198
(43)【公開日】2019-01-10
【審査請求日】2020-05-21
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
(74)【代理人】
【識別番号】100125346
【弁理士】
【氏名又は名称】尾形 文雄
(74)【代理人】
【識別番号】100166981
【弁理士】
【氏名又は名称】砂田 岳彦
(72)【発明者】
【氏名】大上 俊
(72)【発明者】
【氏名】ヌデ島 正起
(72)【発明者】
【氏名】橋本 貴之
(72)【発明者】
【氏名】大野 智之
【審査官】橘 高志
(56)【参考文献】
【文献】特開2000-151995(JP,A)
【文献】特開平07-191660(JP,A)
【文献】特開2002-290710(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/393
G06T 1/60
(57)【特許請求の範囲】
【請求項1】
拡大又は縮小を行う拡大縮小回路の入力および出力をDMA(Direct Memory Access)転送で行う電子装置であって、
DMA転送により入力された画像を拡大又は縮小する拡大縮小手段と、
前記拡大縮小手段により拡大又は縮小されてDMA転送により出力される処理後の画像のサイズとして設定される予め定められたサイズを記憶する記憶手段と、
前記処理後の画像のサイズと前記予め定められたサイズとの差異を検知する検知手段と、
前記検知手段が前記差異を検知した場合に、前記処理後の画像に対して画素を追加する処理又は当該処理後の画像の画素を削除する処理を行う画像処理手段と
を備え
前記検知手段は、前記差異の内容によって、前記画像処理手段に対して処理を指示することを特徴とする電子装置。
【請求項2】
前記画像処理手段は、主走査方向において、前記処理後の画像のサイズと前記予め定められたサイズとが異なる場合に、前記画素を追加する処理又は前記画素を削除する処理を行い、副走査方向において、当該処理後の画像のサイズと当該予め定められたサイズとが異なる場合に、当該画素を追加する処理又は当該画素を削除する処理を行うこと
を特徴とする請求項1に記載の電子装置。
【請求項3】
前記画像処理手段は、主走査方向及び副走査方向のそれぞれにおいて、前記処理後の画像のサイズが前記予め定められたサイズより小さい場合には、当該処理後の画像のサイズが当該予め定められたサイズになるように画素を追加し、当該処理後の画像のサイズが当該予め定められたサイズより大きい場合には、当該処理後の画像のサイズが当該予め定められたサイズになるように画素を削除すること
を特徴とする請求項2に記載の電子装置。
【請求項4】
前記検知手段は、DMA転送による前記拡大縮小手段への画像の入力が完了したことを示す入力完了信号、及び、当該拡大縮小手段からDMA転送の制御部へ前記予め定められたサイズの画像の出力が完了したことを示す出力完了信号により、前記処理後の画像のサイズと当該予め定められたサイズとの差異を検知するこ
を特徴とする請求項1乃至3の何れか1項に記載の電子装置。
【請求項5】
前記入力完了信号は、主走査方向の画像の入力が完了したことを示す信号と副走査方向の画像の入力が完了したことを示す信号とを含み、
前記出力完了信号は、主走査方向の画像の出力が完了したことを示す信号と副走査方向の画像の出力が完了したことを示す信号とを含むこと
を特徴とする請求項4に記載の電子装置。
【請求項6】
前記記憶手段は、前記処理後の画像のサイズと前記予め定められたサイズとが異なることを示す情報を記憶するこ
を特徴とする請求項1乃至5の何れか1項に記載の電子装置。
【請求項7】
DMA(Direct Memory Access)転送により入力された画像を指定された倍率で拡大又は縮小する指示を受け付ける受付手段と、
拡大又は縮小されDMA転送により出力される画像のサイズとして設定される予め定められたサイズを記憶する記憶手段と、
前記指定された倍率で拡大又は縮小された画像のサイズと前記予め定められたサイズとの差異に基づいて、当該指定された倍率がDMA転送においてストールの発生し得る倍率であることを検知する検知手段と、
前記検知手段が前記指定された倍率がストールの発生し得る倍率であることを検知した場合に、当該指定された倍率で拡大又は縮小された画像から前記予め定められたサイズの画像を生成する生成手段と
を備え
前記検知手段は、前記差異の内容によって、前記生成手段に対して前記予め定められたサイズの画像の生成を指示することを特徴とする電子装置。
【請求項8】
拡大又は縮小を行う拡大縮小回路の入力および出力をDMA(Direct Memory Access)転送で行うコンピュータに、
DMA転送により入力された画像を拡大又は縮小する機能と、
拡大又は縮小されてDMA転送により出力される処理後の画像のサイズとして設定される予め定められたサイズを記憶する機能と、
前記処理後の画像のサイズと前記予め定められたサイズとの差異を検知する機能と、
前記差異の内容によって、前記処理後の画像に対して画素に関する処理を指示する機能と、
前記指示に基づいて、前記処理後の画像に対して画素を追加する処理又は当該処理後の画像の画素を削除する処理を行う機能と
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子装置及びプログラムに関する。
【背景技術】
【0002】
例えば、特許文献1には、ページメモリから画素データをDMA(Direct Memory Access)転送で読み出し一時保持する第1画素データ保持手段と、第1画素データ保持手段に保持された画素データの画素変倍を行うために画素データを保持する第2画素データ保持手段と、変倍率が設定されるレジスタの値で記録手段に出力する画素を選択するための画素アドレスを生成し、画素アドレスによって第2画素データ保持手段から出力される画素データの画素を間引きまたは重複することにより主走査方向の縮小または拡大を行う画素変倍制御手段と、ライン選択信号により次ラインのラインスタートアドレスを現ラインと同一のラインスタートアドレスまたは次々ラインのラインスタートアドレスとすることにより副走査方向の拡大または縮小を行うライン選択制御手段とを備える画像処理装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2000-151995号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
画像の拡大縮小を行う回路では、画像の入出力をDMA転送で行う場合がある。この場合、DMA転送による画像の入力が出力よりも先に終了することにより、画像の出力を待ち合わせてストールしたり、DMA転送による画像の出力が入力よりも先に終了することにより、入力された画像を吐き出せずにストールしたりしてしまうことがある。
本発明の目的は、DMA転送により入力された画像を拡大又は縮小してDMA転送により出力する場合に、拡大又は縮小した画像のサイズによらず、予め指定された転送サイズ分だけそのまま出力する構成と比較して、DMA転送におけるストールを抑制することにある。
【課題を解決するための手段】
【0005】
請求項1に記載の発明は、拡大又は縮小を行う拡大縮小回路の入力および出力をDMA(DirectMemoryAccess)転送で行う電子装置であって、DMA転送により入力された画像を拡大又は縮小する拡大縮小手段と、前記拡大縮小手段により拡大又は縮小されてDMA転送により出力される処理後の画像のサイズとして設定される予め定められたサイズを記憶する記憶手段と、前記処理後の画像のサイズと前記予め定められたサイズとの差異を検知する検知手段と、前記検知手段が前記差異を検知した場合に、前記処理後の画像に対して画素を追加する処理又は当該処理後の画像の画素を削除する処理を行う画像処理手段とを備え、前記検知手段は、前記差異の内容によって、前記画像処理手段に対して処理を指示することを特徴とする電子装置である。
請求項2に記載の発明は、前記画像処理手段は、主走査方向において、前記処理後の画像のサイズと前記予め定められたサイズとが異なる場合に、前記画素を追加する処理又は前記画素を削除する処理を行い、副走査方向において、当該処理後の画像のサイズと当該予め定められたサイズとが異なる場合に、当該画素を追加する処理又は当該画素を削除する処理を行うことを特徴とする請求項1に記載の電子装置である。
請求項3に記載の発明は、前記画像処理手段は、主走査方向及び副走査方向のそれぞれにおいて、前記処理後の画像のサイズが前記予め定められたサイズより小さい場合には、当該処理後の画像のサイズが当該予め定められたサイズになるように画素を追加し、当該処理後の画像のサイズが当該予め定められたサイズより大きい場合には、当該処理後の画像のサイズが当該予め定められたサイズになるように画素を削除することを特徴とする請求項2に記載の電子装置である。
請求項4に記載の発明は、前記検知手段は、DMA転送による前記拡大縮小手段への画像の入力が完了したことを示す入力完了信号、及び、当該拡大縮小手段からDMA転送の制御部へ前記予め定められたサイズの画像の出力が完了したことを示す出力完了信号により、前記処理後の画像のサイズと当該予め定められたサイズとの差異を検知することを特徴とする請求項1乃至3の何れか1項に記載の電子装置である。
請求項5に記載の発明は、前記入力完了信号は、主走査方向の画像の入力が完了したことを示す信号と副走査方向の画像の入力が完了したことを示す信号とを含み、前記出力完了信号は、主走査方向の画像の出力が完了したことを示す信号と副走査方向の画像の出力が完了したことを示す信号とを含むことを特徴とする請求項4に記載の電子装置である。
請求項6に記載の発明は、前記記憶手段は、前記処理後の画像のサイズと前記予め定められたサイズとが異なることを示す情報を記憶することを特徴とする請求項1乃至5の何れか1項に記載の電子装置である。
請求項7に記載の発明は、DMA(DirectMemoryAccess)転送により入力された画像を指定された倍率で拡大又は縮小する指示を受け付ける受付手段と、拡大又は縮小されDMA転送により出力される画像のサイズとして設定される予め定められたサイズを記憶する記憶手段と、前記指定された倍率で拡大又は縮小された画像のサイズと前記予め定められたサイズとの差異に基づいて、当該指定された倍率がDMA転送においてストールの発生し得る倍率であることを検知する検知手段と、前記検知手段が前記指定された倍率がストールの発生し得る倍率であることを検知した場合に、当該指定された倍率で拡大又は縮小された画像から前記予め定められたサイズの画像を生成する生成手段とを備え、前記検知手段は、前記差異の内容によって、前記生成手段に対して前記予め定められたサイズの画像の生成を指示することを特徴とする電子装置である。
請求項8に記載の発明は、拡大又は縮小を行う拡大縮小回路の入力および出力をDMA(DirectMemoryAccess)転送で行うコンピュータに、DMA転送により入力された画像を拡大又は縮小する機能と、拡大又は縮小されてDMA転送により出力される処理後の画像のサイズとして設定される予め定められたサイズを記憶する機能と、前記処理後の画像のサイズと前記予め定められたサイズとの差異を検知する機能と、前記差異の内容によって、前記処理後の画像に対して画素に関する処理を指示する機能と、前記指示に基づいて、前記処理後の画像に対して画素を追加する処理又は当該処理後の画像の画素を削除する処理を行う機能とを実現させるためのプログラムである。
【発明の効果】
【0006】
請求項1記載の発明によれば、DMA転送により入力された画像を拡大又は縮小してDMA転送により出力する場合に、拡大又は縮小した画像のサイズによらず、予め指定された転送サイズ分だけそのまま出力する構成と比較して、DMA転送におけるストールを抑制することができる。
請求項2記載の発明によれば、主走査方向及び副走査方向の何れか一方の方向で画素の追加又は画素の削除を行う構成と比較して、DMA転送におけるストールを抑制することができる。
請求項3記載の発明によれば、主走査方向及び副走査方向の何れか一方の方向で画素の追加又は画素の削除を行う構成と比較して、より確実に、DMA転送におけるストールを抑制することができる。
請求項4記載の発明によれば、入力完了信号及び出力完了信号を用いない構成と比較して、処理後の画像のサイズと予め定められたサイズとの差異を把握することが容易になる。
請求項5記載の発明によれば、入力完了信号及び出力完了信号を用いない構成と比較して、主走査方向及び副走査方向において処理後の画像のサイズと予め定められたサイズとの差異を把握することが容易になる。
請求項6記載の発明によれば、処理後の画像のサイズと予め定められたサイズとが異なることをユーザが把握できるようになる。
請求項7記載の発明によれば、DMA転送により入力された画像を拡大又は縮小してDMA転送により出力する場合に、拡大又は縮小した画像のサイズによらず、予め指定された転送サイズ分だけそのまま出力する構成と比較して、DMA転送におけるストールを抑制することができる。
請求項8記載の発明によれば、DMA転送により入力された画像を拡大又は縮小してDMA転送により出力する場合に、拡大又は縮小した画像のサイズによらず、予め指定された転送サイズ分だけそのまま出力する構成と比較して、DMA転送におけるストールを抑制する機能を、コンピュータにより実現できる。
【図面の簡単な説明】
【0007】
図1】本実施の形態に係る画像処理装置のハードウェア構成例を示す図である。
図2】本実施の形態に係る制御部の構成例を示す図である。
図3】従来の拡大縮小処理の一例について説明するための図である。
図4】本実施の形態に係るイメージコアの構成例を示す図である。
図5】主走査出力サイズ設定値が実際の出力サイズよりも小さい場合の処理の流れの一例を説明するための図である。
図6】主走査出力サイズ設定値が実際の出力サイズよりも大きい場合の処理の流れの一例を説明するための図である。
図7】副走査出力サイズ設定値が実際の出力サイズよりも小さい場合の処理の流れの一例を説明するための図である。
図8】副走査出力サイズ設定値が実際の出力サイズよりも大きい場合の処理の流れの一例を説明するための図である。
図9-1】副走査方向の処理の手順の一例を示したフローチャートである。
図9-2】副走査方向の処理の手順の一例を示したフローチャートである。
図10-1】主走査方向通常処理の手順の一例を示したフローチャートである。
図10-2】主走査方向通常処理の手順の一例を示したフローチャートである。
図11】主走査方向全カッティング処理の手順の一例を示したフローチャートである。
図12】主走査方向全パディング処理の手順の一例を示したフローチャートである。
図13】(a)、(b)は、画像データのカット又はパディングの処理の具体例を説明するための図である。
図14】本実施の形態に係る画像処理装置の他の構成例を示す図である。
【発明を実施するための形態】
【0008】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【0009】
<画像処理装置のハードウェア構成>
まず、本実施の形態に係る画像処理装置100のハードウェア構成について説明する。図1は、本実施の形態に係る画像処理装置100のハードウェア構成例を示す図である。本実施の形態に係る画像処理装置100は、例えば、画像読み取り機能(スキャン機能)、印刷機能(プリント機能)、複写機能(コピー機能)及びファクシミリ機能等の各種の画像処理機能を備えた、いわゆる複合機である。なお、本実施の形態において、画像処理装置100は、電子装置の一例として用いられる。
【0010】
図示するように、本実施の形態に係る画像処理装置100は、制御部10と、HDD(Hard Disk Drive)20と、操作パネル30と、画像読取部40と、画像形成部50と、通信インタフェース(以下、「通信I/F」と表記する)60とを備える。なお、これらの各機能部はバス70に接続されており、このバス70を介してデータの授受を行う。
【0011】
制御部10は、画像処理装置100の各部の動作を制御する。制御部10の構成の詳細については、後述する。
【0012】
HDD20は、各種データを記憶する記憶部である。HDD20には、例えば、画像読取部40の画像読み取りによって生成された画像データや、通信I/F60によって外部から受信した画像データ等が記憶される。
【0013】
操作パネル30は、各種の情報を表示するとともに、ユーザからの操作を受け付ける。この操作パネル30は、液晶ディスプレイ等で構成された表示パネル、表示パネルの上に配置され、ユーザによりタッチされた位置を検出するタッチパネル、ユーザにより押下される物理キー等から構成される。そして、操作パネル30は、例えば、画像処理装置100の操作画面等の各種画面を表示パネルに表示したり、タッチパネル及び物理キーによりユーザからの操作を受け付けたりする。
【0014】
画像読取部40は、原稿台上にセットされた用紙等の記録材に形成されている画像を読み取って、読み取った画像を示す画像情報(画像データ)を生成する。ここで、画像読取部40は、例えばスキャナーであり、光源から原稿に照射した光に対する反射光をレンズで縮小してCCD(Charge Coupled Devices)で受光するCCD方式や、LED光源から原稿に順に照射した光に対する反射光をCIS(Contact Image Sensor)で受光するCIS方式のものを用いるとよい。
【0015】
画像形成部50は、用紙等の記録材に画像を形成する印刷機構である。ここで、画像形成部50は、例えばプリンターであり、感光体に付着させたトナーを記録材に転写して像を形成する電子写真方式や、インクを記録材上に吐出して像を形成するインクジェット方式のものを用いるとよい。
【0016】
通信I/F60は、不図示のネットワークを介して他の装置との間で各種データの送受信を行う通信インタフェースである。
【0017】
そして、この画像処理装置100では、制御部10による制御の下、画像読取部40によってスキャン機能が実現され、画像形成部50によってプリント機能が実現され、画像読取部40及び画像形成部50によってコピー機能が実現され、画像読取部40、画像形成部50及び通信I/F60によってファクシミリ機能が実現される。
【0018】
<制御部の構成>
次に、制御部10の構成について、詳細に説明する。図2は、本実施の形態に係る制御部10の構成例を示す図である。図示するように、本実施の形態に係る制御部10は、CPU(Central Processing Unit)11、RAM(Random Access Memory)12、ROM(Read Only Memory)13、DMAC(Direct Memory Access Controler)14、DMAC15、イメージコア16、レジスタ17を備える。
【0019】
CPU11は、ROM13等に記憶された各種プログラムをRAM12にロードして実行することにより、画像処理装置100の各部の動作を制御し、画像処理装置100における各機能を実現する。RAM12は、CPU11の作業用メモリ等として用いられるメモリ(記憶部)である。RAM12としては、例えば、SDRAM(Synchronous Dynamic Random Access Memory)の一種であるDDR SDRAM(Double-Data-Rate SDRAM)を例示することができる。ROM13は、CPU11が実行する各種プログラム等を記憶するメモリ(記憶部)である。
【0020】
DMAC14、DMAC15は、CPU11を介さずにデータを転送するDMA転送を制御するコントローラ(制御部)である。DMAC14は、例えば、RAM12又はROM13からデータを読み出し、読み出したデータをイメージコア16へ転送する。また、DMAC15は、例えば、イメージコア16から出力されたデータをRAM12又はROM13へ転送する。
【0021】
イメージコア16は、DMAC14から入力される画像データを、指定された倍率等で拡大又は縮小する処理を行い、処理後の画像データをDMAC15へ出力する。
【0022】
記憶手段の一例としてのレジスタ17は、イメージコア16へ入力される画像データのサイズの設定値(以下、「入力サイズ設定値」と称する)や、画像データを拡大又は縮小する場合の倍率の設定値、イメージコア16にて拡大又は縮小されて出力される画像データのサイズの設定値(以下、「出力サイズ設定値」と称する)を格納する。また、レジスタ17には、出力サイズ設定値に関するエラーの情報が記憶される。
【0023】
さらに説明すると、入力サイズ設定値とは、イメージコア16に入力される画像データのサイズを示す値であり、例えば、スキャンした原稿のサイズの値や、ユーザが指定したサイズ(例えば、B4サイズ)の値である。倍率の設定値とは、例えば、ユーザが指定した拡大縮小の変倍率の値である。出力サイズ設定値とは、入力サイズ設定値と倍率の設定値とにより計算される値であり、入力サイズ設定値の画像データを変倍率で拡大又は縮小して出力される画像データのサイズとして設定される値である。本実施の形態では、予め定められたサイズの一例として、出力サイズ設定値が用いられる。
【0024】
なお、以下では、主走査方向における入力サイズ設定値を「主走査入力サイズ設定値」と称する。副走査方向における入力サイズ設定値を「副走査入力サイズ設定値」と称する。主走査方向における出力サイズ設定値を「主走査出力サイズ設定値」と称する。副走査方向における出力サイズ設定値を「副走査出力サイズ設定値」と称する。
【0025】
ここで、従来の拡大縮小処理について説明する。図3は、従来の拡大縮小処理の一例について説明するための図である。図3に示す例では、画像データ1Aはページメモリ上の600dpi(dots per inch)のB4サイズの画像データを示す。画像データ1Aのライン数は、B4サイズの縦(364mm)×(600dpi/25.4mm)≒8598ラインである。この画像データ1Aを縮小してA4サイズで出力する処理について説明する。
【0026】
この場合、出力ライン数は、A4サイズの縦(297mm)×(600dpi/25.4mm)≒7016ラインと設定される。このとき、変倍率Rは、R=(297mm)/(364mm)≒0.816である。この変倍率の小数部を例えば8ビットで処理する場合、16進数で表示すると、0.816×256≒208=d0、又は、0.816×256≒209=d1となる。そのため、変倍率をd0又はd1のどちらで設定するかによって、出力されるライン数が変わってくる。
【0027】
より具体的には、例えば、変倍率をd0で設定する場合、画像データ1Bのように、出力ライン数は、364mm×(208/256)×(600dpi/25.4mm)≒6986ラインとなる。一方、例えば、変倍率をd1で設定する場合、画像データ1Cのように、出力ライン数は、364mm×(209/256)×(600dpi/25.4mm)≒7019ラインとなる。
【0028】
画像データ1Bの場合、出力ライン数(6986ライン)が設定出力ライン数(即ち、副走査出力サイズ設定値)(7016ライン)よりも少ないため、斜線を付した画像データ分が不足する。そのため、DMA転送による入力が終了してデータが来なくなり、DMA転送における出力がストールしてしまう。一方、画像データ1Cの場合、出力ライン数(7019ライン)が設定出力ライン数(7016ライン)よりも多いため、斜線を付した画像データ分が超過となる。そのため、DMA転送による出力が終了してデータが吐き出せずに、DMA転送における入力がストールしてしまう。
【0029】
このように、画像データの拡大縮小処理では、ビット精度の誤差によりストールが発生してしまう場合がある。また、上述のようなビット精度の誤差に限らず、例えば、画像データの出力サイズ設定値が誤っている場合には、DMA転送におけるストールが発生してしまう場合がある。
そこで、本実施の形態では、画像データのカット、パディングを行うことにより、DMA転送がストールしないように制御する。以下、このような制御を実現するためイメージコア16等の説明を行う。
【0030】
<イメージコアの構成>
次に、イメージコア16の構成について、詳細に説明する。図4は、本実施の形態に係るイメージコア16の構成例を示す図である。図示するように、本実施の形態に係るイメージコア16は、入力制御部16a、拡大縮小回路16b、画像カット/パディング部16c、出力制御部16d、出力サイズ正誤検知部16eを備える。
【0031】
なお、図4に示す例では、DMAC14及びDMAC15を介してイメージコア16とデータのやり取りを行うメモリとして、RAM12を示している。また、図4に示す構成では詳細を省略するが、拡大縮小回路16bとRAM12のラインバッファとの間にもDMAバスが存在する。このDMAバスでもDMA転送が行われ、拡大縮小回路16bは、画像データをラインバッファに格納したり、ラインバッファから画像データを読み出したりして、拡大縮小の処理を行う。また、DMAC14、DMAC15、イメージコア16、レジスタ17をまとめて、画像データの解像度を変換する「解像度変換部」と称する。
【0032】
入力制御部16aは、イメージコア16における画像データの入力を制御する。ここで、入力制御部16aは、DMAC14から転送される画像データを拡大縮小回路16bへ入力する。さらに説明すると、入力制御部16aは、DMAC14から転送された画像データを、順次、拡大縮小回路16bへ入力する。そして、拡大縮小回路16bへの画像データの入力が完了した場合には、入力が完了したことを示す信号を、出力サイズ正誤検知部16eへ出力する。
【0033】
より具体的には、入力制御部16aは、主走査方向において、1ライン分の画像データの拡大縮小回路16bへの入力が完了した場合には、主走査方向の入力が完了したことを示す信号(以下、「主走査入力完了信号(hiDone)」と称する)を有効にして(アサートして)、出力サイズ正誤検知部16eへ出力する。言い換えると、入力制御部16aは、主走査入力完了信号(hiDone)に「1」をセットして、出力サイズ正誤検知部16eへ出力する。
【0034】
また、入力制御部16aは、副走査方向において、拡大縮小回路16bへの画像データの入力が完了した場合には、副走査方向の入力が完了したことを示す信号(以下、「副走査入力完了信号(viDone)」と称する)を有効にして(アサートして)、出力サイズ正誤検知部16eへ出力する。言い換えると、入力制御部16aは、副走査入力完了信号(viDone)に「1」をセットして、出力サイズ正誤検知部16eへ出力する。
【0035】
さらに、入力制御部16aは、出力サイズ正誤検知部16eからの指示を基に、拡大縮小回路16bへ画像データを入力するのを待機したり、再開したりする。より具体的には、入力制御部16aは、画像データの入力を待機するか否かを制御する信号(以下、「入力wait信号(input_wait)」と称する)に「1」がセットされて出力サイズ正誤検知部16eから通知された場合には、画像データの入力を待機する。
【0036】
なお、後述するように、拡大縮小回路16bにより1ラインの処理が終了した後、入力wait信号(input_wait)は「0」にネゲート(無効化)される。即ち、拡大縮小回路16bにより1ラインの処理が終了した後、入力制御部16aは、画像データの入力を再開する。
本実施の形態では、拡大縮小手段への画像の入力が完了したことを示す入力完了信号の一例として、主走査入力完了信号(hiDone)、副走査入力完了信号(viDone)が用いられる。
【0037】
拡大縮小手段、受付手段の一例としての拡大縮小回路16bは、例えばレジスタ17に予め書き込まれた設定値(パラメータ)により拡大又は縮小の指示を受け付けて、入力制御部16aから入力された画像データを、指定された倍率等で拡大又は縮小する処理を行う。そして、処理後の画像データを画像カット/パディング部16cへ転送する。
【0038】
ここで、拡大縮小回路16bは、画像データの拡大又は縮小の処理が1ライン分終了した場合には、1ラインの処理が終了したことを示す信号(以下、「ライン処理終了信号(line_done)」と称する)を、出力サイズ正誤検知部16eへ出力する。また、拡大縮小回路16bは、画像データの拡大又は縮小の処理が最終ラインまで終了した場合(即ち、ページ全体の処理が終了した場合)には、最終ラインまで処理が終了したことを示す信号(以下、「ページ処理終了信号(page_done)」と称する)を、出力サイズ正誤検知部16eへ出力する。
【0039】
画像処理手段、生成手段の一例としての画像カット/パディング部16cは、拡大縮小回路16bによる処理後の画像データに対して、画素(画像データ)の削除(カット)又は画素の追加(パディング)を行う。ここで、画像カット/パディング部16cは、拡大縮小回路16bによる処理後の画像データのサイズと出力サイズ設定値とが異なる場合に、処理後の画像データの画素を削除する処理又は処理後の画像データに対して画素を追加する処理を行う。言い換えると、画像カット/パディング部16cは、拡大又は縮小の倍率として指定された倍率がDMA転送においてストールの発生し得る倍率である場合に、画素を削除する処理又は画素を追加する処理を行い、DMA転送がストールしないサイズの画像を生成する。
【0040】
より具体的には、画像カット/パディング部16cは、画素をカットすることを指示する信号(以下、「カットenable信号(hcut)」と称する)を出力サイズ正誤検知部16eから受け付けた場合に、画素のカット(カッティング)を行う。また、画像カット/パディング部16cは、画素をパディングすることを指示する信号(以下、「パディングenable信号(hpad)」と称する)を出力サイズ正誤検知部16eから受け付けた場合に、画素のパディングを行う。なお、パディングする画素はダミーの画素であり、例えば、画素値255の白画素などが用いられる。
【0041】
なお、後述するように、拡大縮小回路16bにより1ラインの処理が終了した後、カットenable信号(hcut)及びパディングenable信号(hpad)は「0」にネゲート(無効化)される。即ち、拡大縮小回路16bにより1ラインの処理が終了した後、画像カット/パディング部16cは、画素のカット/パディングの処理を終了する。
【0042】
出力制御部16dは、イメージコア16における画像データの出力を制御する。ここで、出力制御部16dは、画像カット/パディング部16cから転送される画像データをDMAC15へ出力する。さらに説明すると、出力制御部16dは、画像カット/パディング部16cから転送された画像データを、順次、DMAC15へ出力する。そして、出力サイズ設定値分の画像データの出力が完了した場合には、出力が完了したことを示す信号を、出力サイズ正誤検知部16eへ出力する。
【0043】
より具体的には、出力制御部16dは、主走査方向において、設定値(即ち、主走査出力サイズ設定値)分の画像データのDMAC15への出力が完了した場合には、主走査方向の出力が完了したことを示す信号(以下、「主走査出力完了信号(hoDone)」と称する)を有効にして(アサートして)、出力サイズ正誤検知部16eへ出力する。言い換えると、出力制御部16dは、主走査出力完了信号(hoDone)に「1」をセットして、出力サイズ正誤検知部16eへ出力する。
【0044】
また、出力制御部16dは、副走査方向において、設定値(即ち、副走査出力サイズ設定値)分の画像データのDMAC15への出力が完了した場合には、副走査方向の出力が完了したことを示す信号(以下、「副走査出力完了信号(voDone)」と称する)を有効にして(アサートして)、出力サイズ正誤検知部16eへ出力する。言い換えると、出力制御部16dは、副走査出力完了信号(voDone)に「1」をセットして、出力サイズ正誤検知部16eへ出力する。
【0045】
さらに、出力制御部16dは、出力サイズ正誤検知部16eからの指示を基に、DMAC15へ画像データを出力するのを待機したり、再開したりする。より具体的には、出力制御部16dは、画像データの出力を待機するか否かを制御する信号(以下、「出力wait信号(output_wait)」と称する)に「1」がセットされて出力サイズ正誤検知部16eから通知された場合には、画像データの出力を待機する。
【0046】
なお、後述するように、拡大縮小回路16bにより1ラインの処理が終了した後、出力wait信号(output_wait)は「0」にネゲート(無効化)される。即ち、拡大縮小回路16bにより1ラインの処理が終了した後、出力制御部16dは、画像データの出力を再開する。
本実施の形態では、予め定められたサイズの画像の出力が完了したことを示す出力完了信号の一例として、主走査出力完了信号(hoDone)、副走査出力完了信号(voDone)が用いられる。
【0047】
検知手段の一例としての出力サイズ正誤検知部16eは、各部から受け取る信号を基に、主走査出力サイズ設定値や副走査出力サイズ設定値にエラーのあることを検知する。そして、出力サイズ正誤検知部16eは、検知するエラーの内容によって、画像カット/パディング部16cに対してカットenable信号(hcut)を出力したり、パディングenable信号(hpad)を出力したりする。さらに、出力サイズ正誤検知部16eは、入力wait信号(input_wait)を入力制御部16aに出力したり、出力wait信号(output_wait)を出力制御部16dに出力したりする。
【0048】
ここで、まず、主走査出力サイズ設定値にエラーのある場合について説明する。
【0049】
主走査方向において、設定値(主走査出力サイズ設定値)分の画像データの出力が完了したが、画像データの入力が完了していない場合、出力サイズ正誤検知部16eは、主走査出力サイズ設定値が実際の出力サイズよりも小さいことを検知する。言い換えると、出力サイズ正誤検知部16eは、主走査出力完了信号(hoDone=1)を受け取ったが、主走査入力完了信号(hiDone=1)を受け取っていない場合、主走査出力サイズ設定値が実際の出力サイズよりも小さいことを検知する。
【0050】
この場合、出力サイズ正誤検知部16eは、主走査出力サイズ設定値が実際の出力サイズよりも小さいことを示す「2」がセットされたエラー信号(out_hsize_err)を、レジスタ17に格納する。また、出力サイズ正誤検知部16eは、主走査方向の入力が完了するまで画素をカットするように、カットenable信号(hcut)を画像カット/パディング部16cに出力する。また、出力サイズ正誤検知部16eは、主走査方向の入力が完了するまで画像データの出力を待機するように、出力wait信号(output_wait)に「1」をセットして出力制御部16dに出力する。
【0051】
次に、主走査方向において、画像データの入力が完了したが、設定値(主走査出力サイズ設定値)分の画像データの出力が完了していない場合、出力サイズ正誤検知部16eは、主走査出力サイズ設定値が実際の出力サイズよりも大きいことを検知する。言い換えると、出力サイズ正誤検知部16eは、主走査入力完了信号(hiDone=1)を受け取ったが、主走査出力完了信号(hoDone=1)を受け取っていない場合、主走査出力サイズ設定値が実際の出力サイズよりも大きいことを検知する。
【0052】
この場合、出力サイズ正誤検知部16eは、主走査出力サイズ設定値が実際の出力サイズよりも大きいことを示す「1」がセットされたエラー信号(out_hsize_err)を、レジスタ17に格納する。また、出力サイズ正誤検知部16eは、主走査方向において設定値分の画像データの出力が完了するまで画素をパディングするように、パディングenable信号(hpad)を画像カット/パディング部16cに出力する。また、出力サイズ正誤検知部16eは、主走査方向において設定値分の画像データの出力が完了するまで画像データの入力を待機するように、入力wait信号(input_wait)に「1」をセットして入力制御部16aに出力する。
【0053】
次に、副走査出力サイズ設定値にエラーのある場合について説明する。
【0054】
副走査方向において、設定値(副走査出力サイズ設定値)分の画像データの出力が完了したが、画像データの入力が完了していない場合、出力サイズ正誤検知部16eは、副走査出力サイズ設定値が実際の出力サイズよりも小さいことを検知する。言い換えると、出力サイズ正誤検知部16eは、副走査出力完了信号(voDone=1)を受け取ったが、副走査入力完了信号(viDone=1)を受け取っていない場合、副走査出力サイズ設定値が実際の出力サイズよりも小さいことを検知する。
【0055】
この場合、出力サイズ正誤検知部16eは、副走査出力サイズ設定値が実際の出力サイズよりも小さいことを示す「2」がセットされたエラー信号(out_vsize_err)を、レジスタ17に格納する。また、出力サイズ正誤検知部16eは、副走査方向の入力が完了するまで画素をカットするように、カットenable信号(hcut)を画像カット/パディング部16cに出力する。また、出力サイズ正誤検知部16eは、副走査方向の入力が完了するまで画像データの出力を待機するように、出力wait信号(output_wait)に「1」をセットして出力制御部16dに出力する。
【0056】
次に、副走査方向において、画像データの入力が完了したが、設定値(副走査出力サイズ設定値)分の画像データの出力が完了していない場合、出力サイズ正誤検知部16eは、副走査出力サイズ設定値が実際の出力サイズよりも大きいことを検知する。言い換えると、出力サイズ正誤検知部16eは、副走査入力完了信号(viDone=1)を受け取ったが、副走査出力完了信号(voDone=1)を受け取っていない場合、副走査出力サイズ設定値が実際の出力サイズよりも大きいことを検知する。
【0057】
この場合、出力サイズ正誤検知部16eは、副走査出力サイズ設定値が実際の出力サイズよりも大きいことを示す「1」がセットされたエラー信号(out_vsize_err)を、レジスタ17に格納する。また、出力サイズ正誤検知部16eは、副走査方向において設定値分の画像データの出力が完了するまで画素をパディングするように、パディングenable信号(hpad)を画像カット/パディング部16cに出力する。また、出力サイズ正誤検知部16eは、副走査方向において設定値分の画像データの出力が完了するまで画像データの入力を待機するように、入力wait信号(iput_wait)に「1」をセットして入力制御部16aに出力する。
【0058】
このようにして、出力サイズ正誤検知部16eは、主走査出力サイズ設定値や副走査出力サイズ設定値にエラーのあることを検知し、画像カット/パディング部16cに対してカットenable信号(hcut)やパディングenable信号(hpad)を出力する。また、レジスタ17に格納されるエラー信号により、主走査出力サイズ設定値や副走査出力サイズ設定値に誤りのあることがユーザに通知される。ユーザはレジスタ17に格納されるエラー信号により誤りを特定し、デバッグを行えばよい。
【0059】
<画像カット/パディングの処理の説明>
次に、主走査出力サイズ設定値や副走査出力サイズ設定値にエラーがある場合に、画像データをカットしたりパディングしたりする処理の流れについて、詳細に説明する。図5図8は、主走査出力サイズ設定値や副走査出力サイズ設定値にエラーがある場合の処理を説明するための図である。
【0060】
図5図8に示す例において、「IN DATA」は、DMAC14から入力制御部16aに入力される画像データである。また、「OUT DATA」は、拡大縮小回路16bによる処理が行われ、出力制御部16dからDMAC15へ出力される画像データである。「hiDone」、「hoDone」、「viDone」、「voDone」、「out_hsize_err」、「out_vsize_err」、「hcut」、「hpad」、「input_wait」、「output_wait」、「line_done」、「page_done」は、上述した各種信号である。
【0061】
なお、「hiDone」、「hoDone」、「out_hsize_err」、「line_done」は、主走査出力サイズ設定値にエラーがある場合の例(図5及び図6の例)で用いられる。また、「viDone」、「voDone」、「out_vsize_err」、「page_done」は、副走査出力サイズ設定値にエラーがある場合の例(図7及び図8の例)で用いられる。
【0062】
まず、図5を参照しながら、主走査出力サイズ設定値が実際の出力サイズよりも小さい場合の処理について説明する。図5は、主走査出力サイズ設定値が実際の出力サイズよりも小さい場合の処理の流れの一例を説明するための図である。ここで、拡大縮小回路16bは、入力制御部16aから入力された画像データを200%拡大する処理を行うものとして説明する。
【0063】
主走査方向において、入力制御部16aから拡大縮小回路16bへの1ライン分の画像データの入力が完了すると、主走査入力完了信号(hiDone)が立つ(「1」がセットされる)。また、主走査方向において、主走査出力サイズ設定値分の画像データの出力が完了すると、主走査出力完了信号(hoDone)が立つ。
【0064】
ここで、主走査出力サイズ設定値が実際の出力サイズよりも小さい場合には、主走査出力完了信号(hoDone)が立った後にも、拡大縮小回路16bにて処理が行われて、処理後の画像データが出力される。この画像データは、超過データ(超過画素)であり、DMA転送がストールしないようにするためには、カットすることが必要になる。
【0065】
そこで、図5に示すように、主走査出力完了信号(hoDone)が立ったにもかかわらず、主走査入力完了信号(hiDone)が立っていない場合(hoDone==1かつhiDone==0の場合)、カットenable信号(hcut)が生成され、画像カット/パディング部16cにより画素のカットが行われる。ここでは、主走査出力完了信号(hoDone)が立った後、拡大縮小回路16bによる1ライン分の画像データの出力が終了するまで(即ち、出力サイズ正誤検知部16eが拡大縮小回路16bからライン処理終了信号(line_done)を受け取るまで)、出力画素がカットされる。
【0066】
また、主走査出力サイズのエラー信号(out_hsize_err)が生成される。このエラー信号(out_hsize_err)では、主走査出力サイズ設定値が実際の出力サイズよりも小さいことを示す「2」がセットされる。さらに、出力wait信号(output_wait)に「1」がセットされて、出力制御部16dによる画像データの出力が待機される。
【0067】
また、出力サイズ正誤検知部16eは、主走査出力完了信号(hoDone)が立った後、拡大縮小回路16bからライン処理終了信号(line_done)を受け取ると、ライン処理終了信号(line_done)に「1」をセットする。ライン処理終了信号(line_done)に「1」がセットされると、エラー信号(out_hsize_err)が「0」にネゲートされる。同様に、カットenable信号(hcut)、出力wait信号(output_wait)が「0」にネゲートされる。
【0068】
このようにして、主走査出力サイズ設定値が実際の出力サイズよりも小さい場合、超過画素がカットされて、1ラインの処理が終了する。
【0069】
次に、図6を参照しながら、主走査出力サイズ設定値が実際の出力サイズよりも大きい場合の処理について説明する。図6は、主走査出力サイズ設定値が実際の出力サイズよりも大きい場合の処理の流れの一例を説明するための図である。ここでは、図5の例と同様に、拡大縮小回路16bは画像データを200%拡大する処理を行うものとして説明する。
【0070】
主走査出力サイズ設定値が実際の出力サイズよりも大きい場合には、出力される画像データが不足しており、DMA転送がストールしないようにするためには、不足している画像データを補うために画素をパディングすることが必要になる。
【0071】
そこで、図6に示すように、主走査入力完了信号(hiDone)が立ったにもかかわらず、主走査出力完了信号(hoDone)が立っていない場合(hiDone==1かつhoDone==0の場合)、パディングenable信号(hpad)が生成され、画像カット/パディング部16cにより画素のパディングが行われる。ここでは、拡大縮小回路16bによる画像データの出力が終わった後、主走査出力完了信号(hoDone)が立つまで、画素がパディングされる。
【0072】
また、主走査出力サイズのエラー信号(out_hsize_err)が生成される。このエラー信号(out_hsize_err)では、主走査出力サイズ設定値が実際の出力サイズよりも大きいことを示す「1」がセットされる。さらに、入力wait信号(input_wait)に「1」がセットされて、入力制御部16aによる画像データの入力が待機される。
【0073】
また、出力サイズ正誤検知部16eは、拡大縮小回路16bによる画像データの出力が終わった後(即ち、拡大縮小回路16bからライン処理終了信号(line_done)を受け取った後)、主走査出力完了信号(hoDone)が立つと、ライン処理終了信号(line_done)に「1」をセットする。ライン処理終了信号(line_done)に「1」がセットされると、エラー信号(out_hsize_err)が「0」にネゲートされる。同様に、パディングenable信号(hpad)、入力wait信号(input_wait)が「0」にネゲートされる。
【0074】
このようにして、主走査出力サイズ設定値が実際の出力サイズよりも大きい場合、不足分の画素がパディングされて、1ラインの処理が終了する。
【0075】
次に、図7を参照しながら、副走査出力サイズ設定値が実際の出力サイズよりも小さい場合の処理について説明する。図7は、副走査出力サイズ設定値が実際の出力サイズよりも小さい場合の処理の流れの一例を説明するための図である。ここでは、図5の例と同様に、拡大縮小回路16bは画像データを200%拡大する処理を行うものとして説明する。
【0076】
図5及び図6で説明したように、各ラインでは、主走査方向に画像データの拡大縮小処理が行われる。そして、例えば、主走査出力サイズ設定値が実際の出力サイズよりも小さい場合には、図5に示すように、超過画素がカットされる。また、主走査出力サイズ設定値が実際の出力サイズよりも大きい場合には、図6に示すように、不足分の画素がパディングされる。
【0077】
このようにして各ラインの処理が順に行われた結果、副走査方向において、入力制御部16aから拡大縮小回路16bへの画像データの入力が完了すると、副走査入力完了信号(viDone)が立つ。また、副走査方向において、副走査出力サイズ設定値分の画像データの出力が完了すると、副走査出力完了信号(voDone)が立つ。
【0078】
ここで、副走査出力サイズ設定値が実際の出力サイズよりも小さい場合には、副走査出力完了信号(voDone)が立った後にも、拡大縮小回路16bにて処理が行われて、処理後の画像データが出力される。この画像データは、超過データ(超過ライン)であり、DMA転送がストールしないようにするためには、カットすることが必要になる。
【0079】
そこで、図7に示すように、副走査出力完了信号(voDone)が立ったにもかかわらず、副走査入力完了信号(viDone)が立っていない場合(voDone==1かつviDone==0の場合)、カットenable信号(hcut)が生成され、画像カット/パディング部16cにより画素のカットが行われる。ここでは、副走査出力完了信号(voDone)が立った後、拡大縮小回路16bによる最終ラインの画像データの出力が終了するまで、出力ラインがカットされる。
【0080】
また、副走査出力サイズのエラー信号(out_vsize_err)が生成される。このエラー信号(out_vsize_err)では、副走査出力サイズ設定値が実際の出力サイズよりも小さいことを示す「2」がセットされる。さらに、出力wait信号(output_wait)に「1」がセットされて、出力制御部16dによる画像データの出力が待機される。
【0081】
また、出力サイズ正誤検知部16eは、副走査出力完了信号(voDone)が立った後、拡大縮小回路16bからページ処理終了信号(page_done)を受け取ると、ページ処理終了信号(page_done)に「1」をセットする。ページ処理終了信号(page_done)に「1」がセットされると、エラー信号(out_vsize_err)が「0」にネゲートされる。同様に、カットenable信号(hcut)、出力wait信号(output_wait)が「0」にネゲートされる。
【0082】
このようにして、副走査出力サイズ設定値が実際の出力サイズよりも小さい場合、超過ラインがカットされて、DMAC14から入力される画像データの最終ラインまで処理が行われる。
【0083】
次に、図8を参照しながら、副走査出力サイズ設定値が実際の出力サイズよりも大きい場合の処理について説明する。図8は、副走査出力サイズ設定値が実際の出力サイズよりも大きい場合の処理の流れの一例を説明するための図である。ここでは、図5の例と同様に、拡大縮小回路16bは画像データを200%拡大する処理を行うものとして説明する。
【0084】
副走査出力サイズ設定値が実際の出力サイズよりも大きい場合には、出力される画像データが不足しており、DMA転送がストールしないようにするためには、不足している画像データを補うためにライン単位で画像データをパディングすることが必要になる。
【0085】
そこで、図8に示すように、副走査入力完了信号(viDone)が立ったにもかかわらず、副走査出力完了信号(voDone)が立っていない場合(viDone==1かつvoDone==0の場合)、パディングenable信号(hpad)が生成され、画像カット/パディング部16cによりライン単位の画像データのパディングが行われる。ここでは、拡大縮小回路16bによる画像データの出力が終わった後、副走査出力完了信号(voDone)が立つまで、画像データがパディングされる。
【0086】
また、副走査出力サイズのエラー信号(out_vsize_err)が生成される。このエラー信号(out_vsize_err)では、副走査出力サイズ設定値が実際の出力サイズよりも大きいことを示す「1」がセットされる。さらに、入力wait信号(input_wait)に「1」がセットされて、入力制御部16aによる画像データの入力が待機される。
【0087】
また、出力サイズ正誤検知部16eは、拡大縮小回路16bによる画像データの出力が終わった後(即ち、拡大縮小回路16bからページ処理終了信号(page_done)を受け取った後)、副走査出力完了信号(voDone)が立つと、ページ処理終了信号(page_done)に「1」をセットする。ページ処理終了信号(page_done)に「1」がセットされると、エラー信号(out_vsize_err)が「0」にネゲートされる。同様に、パディングenable信号(hpad)、入力wait信号(input_wait)が「0」にネゲートされる。
【0088】
このようにして、副走査出力サイズ設定値が実際の出力サイズよりも大きい場合、不足分のラインがパディングされて、DMAC14へ出力する画像データの最終ラインまで処理が行われる。
【0089】
<副走査方向の処理手順>
上述したように、イメージコア16では、画像データに対してライン単位で副走査方向の処理が行われる。また、各ラインでは、画素単位で主走査方向の処理が行われる。ここで、図9-1及び図9-2を参照しながら、副走査方向の処理手順について説明する。図9-1及び図9-2は、副走査方向の処理の手順の一例を示したフローチャートである。
【0090】
まず、入力制御部16aは、副走査方向の入力カウント(以下、副走査入力カウントと称する)をリセットし、出力制御部16dは、副走査方向の出力カウント(以下、副走査出力カウントと称する)をリセットする(ステップ101)。ここで、副走査入力カウントは「0」にリセットされる。同様に、副走査出力カウントは「0」にリセットされる。
【0091】
次に、入力制御部16aは、副走査方向において、拡大縮小回路16bへの画像データの入力が完了したか否かを判定する(ステップ102)。ここで、入力制御部16aは、副走査方向において、DMAC14から転送される画像データを最終ラインまで全て拡大縮小回路16bへ入力したか否かを判定する。
【0092】
より具体的には、入力制御部16aは、副走査入力カウントと副走査入力サイズ設定値とを比較する。副走査入力カウントが副走査入力サイズ設定値よりも小さい場合には、画像データの入力が完了していない(ステップ102でNO)と判定される。一方、副走査入力カウントと副走査入力サイズ設定値とが同一である場合には、画像データの入力が完了した(ステップ102でYES)と判定される。
【0093】
ステップ102で肯定の判断(YES)がされた場合、入力制御部16aは、「viDone」に「1」をセットする(ステップ103)。言い換えると、入力制御部16aは、副走査方向において画像データの入力が完了したことを示す副走査入力完了信号(viDone=1)を、出力サイズ正誤検知部16eへ出力する。一方、ステップ102で否定の判断(NO)がされた場合、入力制御部16aは、「viDone」に「0」をセットする(「viDone」を立てずに「0」のままにする)(ステップ104)。
【0094】
次に、出力制御部16dは、副走査方向において、副走査出力サイズ設定値分の画像データの出力が完了したか否かを判定する(ステップ105)。ここで、出力制御部16dは、副走査方向において、副走査出力サイズ設定値分の画像データを全てDMAC15に出力したか否かを判定する。
【0095】
より具体的には、出力制御部16dは、副走査出力カウントと副走査出力サイズ設定値とを比較する。副走査出力カウントが副走査出力サイズ設定値よりも小さい場合には、画像データの出力が完了していない(ステップ105でNO)と判定される。一方、副走査出力カウントと副走査出力サイズ設定値とが同一である場合には、画像データの出力が完了した(ステップ105でYES)と判定される。
【0096】
ステップ105で肯定の判断(YES)がされた場合、出力制御部16dは、「voDone」に「1」をセットする(ステップ106)。言い換えると、出力制御部16dは、副走査方向において画像データの出力が完了したことを示す副走査出力完了信号(voDone=1)を、出力サイズ正誤検知部16eへ出力する。一方、ステップ105で否定の判断(NO)がされた場合、出力制御部16dは、「voDone」に「0」をセットする(「voDone」を立てずに「0」のままにする)(ステップ107)。
【0097】
次に、出力サイズ正誤検知部16eは、「viDone」及び「voDone」が共に「1」であるか否かを判定する(ステップ108)。
ステップ108で肯定の判断(YES)がされた場合、次に、出力サイズ正誤検知部16eは、「page_done」が「1」であるか否かを判定する(ステップ109)。ここで、出力サイズ正誤検知部16eは、「voDone」が「1」であるとともに、拡大縮小回路16bからページ処理終了信号(page_done)を受け取っていれば、「page_done」に「1」をセットし、ステップ109で肯定の判断(YES)を行う。一方、出力サイズ正誤検知部16eは、拡大縮小回路16bからページ処理終了信号(page_done)を受け取っていなければ、ステップ109で否定の判断(NO)を行い、ページ処理終了信号を受け取るまで待機する。
【0098】
ステップ109で肯定の判断(YES)がされた場合には、各種信号、言い換えると、副走査出力サイズのエラー信号(out_vsize_err)、カットenable信号(hcut)、パディングenable信号(hpad)、入力wait信号(input_wait)、出力wait信号(output_wait)が「0」にネゲートされる(ステップ110)。そして、本処理フローは終了する。
【0099】
また、ステップ108で否定の判断(NO)がされた場合には、次に、出力サイズ正誤検知部16eは、「viDone」が「1」、かつ「voDone」が「0」であるか否かを判定する(ステップ111)。
【0100】
ステップ111で肯定の判断(YES)がされた場合、主走査方向全パディング処理が行われる(ステップ112)。主走査方向全パディング処理の詳細については、後述する。主走査方向全パディング処理が終了した後、出力サイズ正誤検知部16eは、副走査出力サイズ設定値が実際の出力サイズよりも大きいことを示す「1」がセットされたエラー信号(out_vsize_err)を、レジスタ17に出力する(ステップ113)。次に、出力制御部16dは、副走査出力カウントを「1」増やす(ステップ114)。そして、後述するステップ122へ移行する。
【0101】
また、ステップ111で否定の判断(NO)がされた場合、次に、出力サイズ正誤検知部16eは、「viDone」が「0」、かつ「voDone」が「1」であるか否かを判定する(ステップ115)。
【0102】
ステップ115で肯定の判断(YES)がされた場合、入力制御部16aは、副走査入力カウントを「1」増やす(ステップ116)。そして、次の1ラインに対して、主走査方向全カッティング処理が行われる(ステップ117)。主走査方向全カッティング処理の詳細については、後述する。主走査方向全カッティング処理が終了した後、出力サイズ正誤検知部16eは、副走査出力サイズ設定値が実際の出力サイズよりも小さいことを示す「2」がセットされたエラー信号(out_vsize_err)を、レジスタ17に出力する(ステップ118)。そして、後述するステップ122へ移行する。
【0103】
また、ステップ115で否定の判断(NO)がされた場合、即ち、「viDone」及び「voDone」が共に「0」であると判定された場合、入力制御部16aは、副走査入力カウントを「1」増やす(ステップ119)。そして、次の1ラインに対して、主走査方向通常処理が行われる(ステップ120)。主走査方向通常処理の詳細については、後述する。主走査方向通常処理が終了した後、出力制御部16dは、副走査出力カウントを「1」増やす(ステップ121)。そして、ステップ102に移行する。
【0104】
また、ステップ114の後、又はステップ118の後、出力サイズ正誤検知部16eは、副走査出力サイズのエラー信号をレジスタ17に格納済みであるか否かを判定する(ステップ122)。
【0105】
ステップ122で否定の判断(NO)がされた場合、出力サイズ正誤検知部16eは、副走査出力サイズのエラー信号(out_vsize_err)をレジスタ17に出力して格納させる(ステップ123)。ここでは、ステップ113の処理が行われた場合には「1」がセットされたエラー信号(out_vsize_err)が格納され、ステップ118の処理が行われた場合には「2」がセットされたエラー信号(out_vsize_err)が格納される。
また、ステップ122で肯定の判断(YES)がされた場合、又はステップ123の後、ステップ102に移行する。
【0106】
このようにして、「viDone」及び「voDone」の値を基に、副走査方向の各ラインに対して、主走査方向全パディング処理、主走査方向全カッティング処理、又は主走査方向通常処理が行われる。そして、副走査出力サイズ設定値が実際の出力サイズよりも大きい場合にはパディング処理が行われ、副走査出力サイズ設定値が実際の出力サイズよりも小さい場合にはカッティング処理が行われる。
【0107】
<主走査方向通常処理の手順>
次に、主走査方向通常処理の手順について説明する。図10-1及び図10-2は、主走査方向通常処理の手順の一例を示したフローチャートである。図10-1及び図10-2に示す一連の処理は、図9-2のステップ120の処理に該当する。
【0108】
まず、入力制御部16aは、主走査方向の入力カウント(以下、主走査入力カウントと称する)をリセットし、出力制御部16dは、主走査方向の出力カウント(以下、主走査出力カウントと称する)をリセットする(ステップ201)。ここで、主走査入力カウントは「0」にリセットされる。同様に、主走査出力カウントは「0」にリセットされる。
【0109】
次に、入力制御部16aは、主走査方向において、拡大縮小回路16bへの1ライン分の画像データの入力が完了したか否かを判定する(ステップ202)。ここで、入力制御部16aは、主走査方向において、DMACから転送される1ライン分の画像データを全て拡大縮小回路16bへ入力したか否かを判定する。
【0110】
より具体的には、入力制御部16aは、主走査入力カウントと主走査入力サイズ設定値とを比較する。主走査入力カウントが主走査入力サイズ設定値よりも小さい場合には、画像データの入力が完了していない(ステップ202でNO)と判定される。一方、主走査入力カウントと主走査入力サイズ設定値とが同一である場合には、画像データの入力が完了した(ステップ202でYES)と判定される。
【0111】
ステップ202で肯定の判断(YES)がされた場合、入力制御部16aは、「hiDone」に「1」をセットする(ステップ203)。言い換えると、入力制御部16aは、主走査方向において画像データの入力が完了したことを示す主走査入力完了信号(hiDone=1)を、出力サイズ正誤検知部16eへ出力する。一方、ステップ202で否定の判断(NO)がされた場合、入力制御部16aは、「hiDone」に「0」をセットする(「hiDone」を立てずに「0」のままにする)(ステップ204)。
【0112】
次に、出力制御部16dは、主走査方向において、主走査出力サイズ設定値分の画像データの出力が完了したか否かを判定する(ステップ205)。ここで、出力制御部16dは、主走査方向において、主走査出力サイズ設定値分の画像データを全てDMAC15に出力したか否かを判定する。
【0113】
より具体的には、出力制御部16dは、主走査出力カウントと主走査出力サイズ設定値とを比較する。主走査出力カウントが主走査出力サイズ設定値よりも小さい場合には、画像データの出力が完了していない(ステップ205でNO)と判定される。一方、主走査出力カウントと主走査出力サイズ設定値とが同一である場合には、画像データの出力が完了した(ステップ205でYES)と判定される。
【0114】
ステップ205で肯定の判断(YES)がされた場合、出力制御部16dは、「hoDone」に「1」をセットする(ステップ206)。言い換えると、出力制御部16dは、主走査方向において1ライン分の画像データの出力が完了したことを示す主走査出力完了信号(hoDone=1)を、出力サイズ正誤検知部16eへ出力する。一方、ステップ205で否定の判断(NO)がされた場合、出力制御部16dは、「hoDone」に「0」をセットする(「hoDone」を立てずに「0」のままにする)(ステップ207)。
【0115】
次に、出力サイズ正誤検知部16eは、「hiDone」及び「hoDone」が共に「1」であるか否かを判定する(ステップ208)。
ステップ208で肯定の判断(YES)がされた場合、次に、出力サイズ正誤検知部16eは、「line_done」が「1」であるか否かを判定する(ステップ210)。ここで、出力サイズ正誤検知部16eは、「hoDone」が「1」であるとともに、拡大縮小回路16bからライン処理終了信号(line_done)を受け取っていれば、「line_done」に「1」をセットし、ステップ209で肯定の判断(YES)を行う。一方、出力サイズ正誤検知部16eは、拡大縮小回路16bからライン処理終了信号(line_done)を受け取っていなければ、ステップ209で否定の判断(NO)を行い、ライン処理終了信号を受け取るまで待機する。
【0116】
ステップ209で肯定の判断(YES)がされた場合には、各種信号、言い換えると、主走査出力サイズのエラー信号(out_hsize_err)、カットenable信号(hcut)、パディングenable信号(hpad)、入力wait信号(input_wait)、出力wait信号(output_wait)が「0」にネゲートされる(ステップ210)。そして、本処理フローは終了する。
【0117】
また、ステップ208で否定の判断(NO)がされた場合、次に、出力サイズ正誤検知部16eは、「hiDone」が「1」、かつ「hoDone」が「0」であるか否かを判定する(ステップ211)。
【0118】
ステップ211で肯定の判断(YES)がされた場合、出力サイズ正誤検知部16eは、主走査方向の出力が完了するまで画像データの入力を待機するように、入力wait信号(input_wait)に「1」をセットして入力制御部16aに出力する(ステップ212)。次に、出力サイズ正誤検知部16eは、主走査出力サイズ設定値が実際の出力サイズよりも大きいことを示す「1」がセットされたエラー信号(out_hsize_err)を、レジスタ17に出力する(ステップ213)。
【0119】
次に、出力サイズ正誤検知部16eは、主走査方向の出力が完了するまで画素をパディングするように、パディングenable信号(hpad)を画像カット/パディング部16cに出力する。そして、画像カット/パディング部16cは、1画素をパディングして出力する(ステップ214)。次に、出力制御部16dは、主走査出力カウントを「1」増やす(ステップ215)。そして、後述するステップ228へ移行する。
【0120】
また、ステップ211で否定の判断(NO)がされた場合、次に、出力サイズ正誤検知部16eは、「hiDone」が「0」、かつ「hoDone」が「1」であるか否かを判定する(ステップ216)。
【0121】
ステップ216で肯定の判断(YES)がされた場合、入力制御部16aから拡大縮小回路16bに1画素入力され、拡大縮小回路16bは、入力制御部16aから入力される1画素を読み込む(ステップ217)。次に、入力制御部16aは、主走査入力カウントを「1」増やす(ステップ218)。そして、拡大縮小回路16bは、読み込んだ1画素に対して拡大又は縮小の処理を行う(ステップ219)。
【0122】
次に、出力サイズ正誤検知部16eは、主走査出力サイズ設定値が実際の出力サイズよりも小さいことを示す「2」がセットされたエラー信号(out_hsize_err)を、レジスタ17に出力する(ステップ220)。次に、出力サイズ正誤検知部16eは、主走査方向の入力が完了するまで(即ち、ページ処理終了信号(page_done)を受け取るまで)画素をカットするように、カットenable信号(hcut)を画像カット/パディング部16cに出力する。 そして、画像カット/パディング部16cは、拡大縮小回路16bからの画素をカット(カッティング)する(ステップ221)。
【0123】
また、出力サイズ正誤検知部16eは、主走査方向の入力が完了するまで画像データの出力を待機するように、出力wait信号(output_wait)に「1」をセットして出力制御部16dに出力する(ステップ222)。そして、後述するステップ228へ移行する。
【0124】
また、ステップ216で否定の判断(NO)がされた場合、即ち、「hiDone」及び「hoDone」が共に「0」であると判定された場合、入力制御部16aから拡大縮小回路16bに1画素入力され、拡大縮小回路16bは、入力制御部16aから入力される1画素を読み込む(ステップ223)。次に、入力制御部16aは、主走査入力カウントを「1」増やす(ステップ224)。そして、拡大縮小回路16bは、読み込んだ1画素に対して拡大又は縮小の処理を行う(ステップ225)。
【0125】
次に、画像カット/パディング部16cは、拡大縮小回路16bから転送された画素をスルーしてそのまま出力制御部16dに出力する(ステップ226)。次に、出力制御部16dは、主走査出力カウントを「1」増やす(ステップ227)。そして、ステップ202に移行する。
【0126】
また、ステップ215の後、又はステップ222の後、出力サイズ正誤検知部16eは、主走査出力サイズのエラー信号をレジスタ17に格納済みであるか否かを判定する(ステップ228)。
【0127】
ステップ228で否定の判断(NO)がされた場合、出力サイズ正誤検知部16eは、主走査出力サイズのエラー信号(out_hsize_err)をレジスタ17に出力して格納させる(ステップ229)。ここでは、ステップ213の処理が行われた場合には「1」がセットされたエラー信号(out_hsize_err)が格納され、ステップ220の処理が行われた場合には「2」がセットされたエラー信号(out_hsize_err)が格納される。
また、ステップ228で肯定の判断(YES)がされた場合、又はステップ229の後、ステップ202に移行する。
【0128】
このようにして、「hiDone」及び「hoDone」の値を基に、1ラインの画像データに対して処理が行われる。そして、主走査出力サイズ設定値が実際の出力サイズよりも大きい場合にはパディング処理が行われ、主走査出力サイズ設定値が実際の出力サイズよりも小さい場合にはカッティング処理が行われる。
【0129】
<主走査方向全カッティング処理>
次に、主走査方向全カッティング処理の手順について説明する。主走査方向全カッティング処理は、「viDone==0」かつ「voDone==1」の場合、言い換えると、副走査方向において設定値分(設定ライン分)の画像データの出力が完了したにもかかわらず、拡大縮小回路16bから画像データが出力される場合に、1ライン分の画素を全てカットする処理である。図11は、主走査方向全カッティング処理の手順の一例を示したフローチャートである。図11に示す一連の処理は、図9-2のステップ117の処理に該当する。
【0130】
まず、入力制御部16aは、主走査入力カウントをリセットし、出力制御部16dは、主走査出力カウントをリセットする(ステップ301)。ここで、主走査入力カウントは「0」にリセットされる。同様に、主走査出力カウントは「0」にリセットされる。
【0131】
次に、入力制御部16aは、「hoDone」に「1」をセットする(ステップ302)。次のステップ303~305の処理、ステップ306~308の処理はそれぞれ、図10-1のステップ202~204、ステップ208~210の処理と同様である。
【0132】
即ち、1ライン分の画像データの入力が完了したと判定された場合(ステップ303でYES)、「hiDone」に「1」がセットされ(ステップ304)、ステップ306で肯定の判断(YES)がされる。そして、出力サイズ正誤検知部16eが拡大縮小回路16bからライン処理終了信号(line_done)を受け取ると(ステップ307でYES)、各種信号が「0」にネゲートされる(ステップ308)。そして、本処理フローは終了する。
【0133】
一方、ステップ303において、1ライン分の画像データの入力が完了していないと判定された場合(ステップ303でNO)には、ステップ306で否定の判断(NO)がされる。そして、ステップ309~314の処理が行われる。ステップ309~ステップ314の処理はそれぞれ、図10-2のステップ217~222の処理と同様である。即ち、拡大縮小回路16bに1画素が入力され、拡大縮小回路16bにて拡大縮小処理が行われた後、拡大縮小後の画素がカットされる。
【0134】
このようにして、主走査方向において1ライン分の画像データの入力が完了するまで、拡大縮小回路16bから出力される拡大縮小後の画素が全てカットされる。そして、1ライン分の画像データの入力が完了すると、主走査方向全カッティング処理は終了する。
【0135】
<主走査方向全パディング処理の手順>
次に、主走査方向全パディング処理の手順について説明する。主走査方向全パディング処理は、「viDone==1」かつ「voDone==0」の場合、言い換えると、副走査方向において、拡大縮小回路16bへの画像データの入力が完了したにもかかわらず、設定値分(設定ライン分)の画像データの出力が完了していない場合に、1ライン分の画素を全てパディングする処理である。図12は、主走査方向全パディング処理の手順の一例を示したフローチャートである。図12に示す一連の処理は、図9-2のステップ112の処理に該当する。
【0136】
まず、入力制御部16aは、主走査入力カウントをリセットし、出力制御部16dは、主走査出力カウントをリセットする(ステップ401)。ここで、主走査入力カウントは「0」にリセットされる。同様に、主走査出力カウントは「0」にリセットされる。
【0137】
次に、出力制御部16dは、「hiDone」に「1」をセットする(ステップ402)。次のステップ403~ステップ405の処理、ステップ406~ステップ408の処理はそれぞれ、図10-1のステップ205~207、ステップ208~210の処理と同様である。
【0138】
即ち、1ライン分の画像データの出力が完了したと判定された場合(ステップ403でYES)、「hoDone」に「1」がセットされ(ステップ404)、ステップ406で肯定の判断(YES)がされる。主走査方向全パディング処理では、拡大縮小回路16bが拡大縮小の処理を行わないため、出力サイズ正誤検知部16eは、「hoDone」に「1」がセットされると「line_done」に「1」をセットし、ステップ407で肯定の判断(YES)がされる。そして、各種信号が「0」にネゲートされ(ステップ408)、本処理フローは終了する。
【0139】
一方、ステップ403において、1ライン分の画像データの出力が完了していないと判定された場合(ステップ403でNO)、ステップ406で否定の判断(NO)がされる。そして、ステップ409~412の処理が行われる。ステップ409~412の処理はそれぞれ、図10-2のステップ212~215の処理と同様である。即ち、画像カット/パディング部16cが1画素をパディングして出力制御部16dに出力する。
【0140】
このようにして、主走査方向において1ライン分の画像データ(主走査出力サイズ設定値の画像データ)の出力が完了するまで、1画素ずつパディングされる。そして、1ライン分の画像データの出力が完了すると、主走査方向全パディング処理は終了する。
【0141】
<画像カット・パディングの処理の具体例>
次に、画像データのカット・パディングの処理について、具体例を挙げて説明する。図13(a)、(b)は、画像データのカット又はパディングの処理の具体例を説明するための図である。以下に示すステップは、図9図12の各ステップに対応するものとする。
【0142】
図13(a)を参照しながら、1つ目の具体例について説明する。
図13(a)に示す例では、拡大縮小回路16bによる処理後の画像データの設定値が1500画素×2000ラインである場合に、実際には1600画素×1900ラインの画像データが生成されるものとする。即ち、主走査出力サイズ設定値(1500画素)が実際の出力サイズ(1600画素)よりも小さく、副走査出力サイズ設定値(2000ライン)が実際の出力サイズ(1900ライン)よりも大きい場合の動作例である。
【0143】
まず、画像データの1ライン目から順次処理が行われる。ここでは、図9-2のステップ120の主走査方向通常処理が順次行われ、拡大縮小回路16bから処理後の画素が出力される。そして、1ライン目の1500画素が出力されると、主走査出力カウントと主走査出力サイズ設定値とが同一になり、主走査出力サイズ設定値分の画像データの出力が完了する(ステップ205でYES)。そして、「hoDone」に「1」がセットされる(ステップ206)。
【0144】
その結果、「hiDone=0」かつ「hoDone=1」になり(ステップ216でYES)、拡大縮小回路16bから出力される画素がカットされる(ステップ221)。ここで、拡大縮小回路16bに1画素入力され、拡大縮小回路16bから出力される画素がカットされることにより、1500画素を超える100画素分がカットされる。そして、1ライン目の処理は終了する。また、2ライン目以降でも同様に、1500画素を超える100画素分がカットされ、破線を付した領域2Aの画素がカットされることになる。
【0145】
1900ラインまで処理されると、副走査入力カウントと副走査入力サイズ設定値とが同一になり、副走査方向において、拡大縮小回路16bへの画像データの入力が完了する(ステップ102でYES)。そして、「viDone」に「1」がセットされる(ステップ103)。その結果、「viDone=1」かつ「voDone=0」になり(ステップ111でYES)、主走査方向全パディング処理が行われる(ステップ112)。
【0146】
主走査方向全パディング処理では、1901ライン目の主走査方向の処理として、1ライン分である主走査出力サイズ設定値(1500画素)の画像がパディングされる(ステップ411)。このパディングの処理が、1902ライン目以降も2000ラインに到達するまで行われ、破線を付した領域2Bの画素がパディングされることになる。
【0147】
また、2000ラインまでパディングされると、副走査出力カウントと副走査出力サイズ設定値とが同一になり、副走査出力サイズ設定値分の画像データの出力が完了する(ステップ105でYES)。そして、「voDone」に「1」がセットされる(ステップ106)。その結果、「viDone=1」かつ「voDone=1」になり(ステップ108でYES)、ステップ109及びステップ110の処理が行われて、全体の処理が終了する。
【0148】
このようにして、画像データのカット又はパディングが行われ、設定値である1500画素×2000ラインの画像データが、イメージコア16からDMAC15へ出力される。
【0149】
次に、図13(b)を参照しながら、2つ目の具体例について説明する。
図13(b)に示す例では、拡大縮小回路16bによる処理後の画像データの設定値が1500画素×2000ラインである場合に、実際には1400画素×2100ラインの画像データが生成されるものとする。即ち、主走査出力サイズ設定値(1500画素)が実際の出力サイズ(1400画素)よりも大きく、副走査出力サイズ設定値(2000ライン)が実際の出力サイズ(2100ライン)よりも小さい場合の動作例である。
【0150】
まず、図13(a)の例と同様に、画像データの1ライン目から順次処理が行われる。そして、1ライン目の1400画素が出力されると、主走査入力カウントと主走査入力サイズ設定値とが同一になり、主走査方向において、拡大縮小回路16bへの画像データの入力が完了する(ステップ202でYES)。そして、「hiDone」に「1」がセットされる(ステップ203)。
【0151】
その結果、「hiDone=1」かつ「hoDone=0」になり(ステップ211でYES)、画素のパディングが行われる(ステップ214)。ここで、1ライン目が主走査出力サイズ設定値(1500画素)になるように、1400画素を超える100画素がパディングされる。そして、1ライン目の処理は終了する。また、2ライン目以降でも同様に、1400画素を超える100画素のパディングが行われ、破線を付した領域2Cの画素がパディングされることになる。
【0152】
2000ラインまで処理されると、副走査出力カウントと副走査出力サイズ設定値とが同一になり、副走査出力サイズ設定値分の画像データの出力が完了する(ステップ105でYES)。そして、「voDone」に「1」がセットされる(ステップ106)。その結果、「viDone=0」かつ「voDone=1」になり(ステップ115でYES)、主走査方向全カッティング処理が行われる(ステップ118)。
【0153】
主走査方向全カッティング処理では、2001ライン目の主走査方向の処理として、拡大縮小回路16bから出力される1ライン分の1400画素がカットされる(ステップ313)。このカッティングの処理が、2002ライン目以降も2100ラインに到達するまで行われ、破線を付した領域2Dの画素がカットされることになる。
【0154】
また、2100ラインまでカットされると、副走査入力カウントと副走査入力サイズ設定値とが同一になり、副走査方向において、拡大縮小回路16bへの画像データの入力が完了する(ステップ102でYES)。そして、「viDone」に「1」がセットされる(ステップ103)。その結果、「viDone=1」かつ「voDone=1」になり(ステップ108でYES)、ステップ109及びステップ110の処理が行われて、全体の処理が終了する。
【0155】
このようにして、画像データのカット又はパディングが行われ、設定値である1500画素×2000ラインの画像データが、イメージコア16からDMAC15へ出力される。
【0156】
以上説明したように、本実施の形態に係るイメージコア16は、設定値(主走査出力サイズ設定値及び副走査出力サイズ設定値)のサイズの画像データをDMAC15に出力するように、画素のカットやパディングを行う。例えば、画像処理装置100にて推奨されていない倍率などのように、ユーザがどのような倍率を選択して画像データの拡大又は縮小をする場合でも、イメージコア16は、設定値のサイズの画像データを出力するように画素のカットやパディングを行う。このように、イメージコア16は、指定された倍率がDMA転送においてストールの発生し得る倍率である場合に、出力する画像のサイズを、DMA転送による入力や出力においてストールが発生しないサイズの画像に変更し、ストールの発生を抑制する制御を行う。
【0157】
<他の構成例>
次に、本実施の形態に係る画像処理装置100の他の構成例について説明する。図4に示す例では、イメージコア16の内部にストール防止の機構を備えることとしたが、他の構成例では、イメージコア16の外部にストール防止の機構を備える。例えば、イメージコア16の構成上、ストール防止の機構をイメージコア16の内部に搭載できない場合に、他の構成例が用いられる。
【0158】
図14は、本実施の形態に係る画像処理装置100の他の構成例を示す図である。図14に示す構成では、図4に示す構成と違い、画像カット/パディング部16c、出力サイズ正誤検知部16eが、イメージコア16の外部に設けられる。さらに、図14に示す構成では、入力画素カウンタ部16f、出力画素カウンタ部16g、入出力完了判断部16hが新たに設けられる。一方で、図14に示す構成では、入力制御部16a、出力制御部16dは設けられず、入力制御部16aの機能はDMAC14により実現され、出力制御部16dの機能はDMAC15により実現される。
【0159】
拡大縮小回路16b、画像カット/パディング部16cは、図4に示す構成と同様の処理を行う。
出力サイズ正誤検知部16eは、入力wait信号(iput_wait)をDMAC14に出力し、出力wait信号(output_wait)をDMAC15に出力する点で、図4に示す構成と異なる。
【0160】
入力画素カウンタ部16fは、主走査入力カウント及び副走査入力カウントを有しており、カウントの情報(in_cnt)を入出力完了判断部16hへ出力する。
出力画素カウンタ部16gは、主走査出力カウント及び副走査出力カウントを有しており、カウントの情報(out_cnt)を入出力完了判断部16hへ出力する。
【0161】
入出力完了判断部16hは、レジスタ17から、主走査入力サイズ設定値、副走査入力サイズ設定値、主走査出力サイズ設定値、及び副走査出力サイズ設定値を取得する。また、入出力完了判断部16hは、入力画素カウンタ部16f及び出力画素カウンタ部16gのそれぞれから、カウントの情報を取得する。そして、入出力完了判断部16hは、取得したこれらの情報から、主走査入力完了信号(hiDone)、副走査入力完了信号(viDone)、主走査出力完了信号(hoDone)、副走査出力完了信号(voDone)を生成する。生成された信号は、出力サイズ正誤検知部16eの処理に用いられる。
【0162】
より具体的には、例えば、主走査入力サイズ設定値と主走査入力カウントとが同一の場合、入出力完了判断部16hは、主走査入力完了信号(hiDone=1)を生成する。また、例えば、副走査入力サイズ設定値と副走査入力カウントとが同一の場合、入出力完了判断部16hは、副走査入力完了信号(viDone=1)を生成する。さらに、例えば、主走査出力サイズ設定値と主走査出力カウントとが同一の場合、入出力完了判断部16hは、主走査出力完了信号(hoDone=1)を生成する。また、例えば、副走査出力サイズ設定値と副走査出力カウントとが同一の場合、入出力完了判断部16hは、副走査出力完了信号(voDone=1)を生成する。このようにして生成された信号は、出力サイズ正誤検知部16eに出力され、カットenable信号(hcut)やパディングenable信号(hpad)の生成などに用いられる。
【0163】
なお、本発明の実施の形態を実現するプログラムは、通信手段により提供することはもちろん、CD-ROM等の記録媒体に格納して提供することも可能である。
【0164】
また、上記では種々の実施形態および変形例を説明したが、これらの実施形態や変形例どうしを組み合わせて構成してももちろんよい。
また、本開示は上記の実施形態に何ら限定されるものではなく、本開示の要旨を逸脱しない範囲で種々の形態で実施することができる。
【符号の説明】
【0165】
10…制御部、14,15…DMAC、16…イメージコア、16a…入力制御部、16b…拡大縮小回路、16c…画像カット/パディング部、16d…出力制御部、16e…出力サイズ正誤検知部、16f…入力画素カウンタ部、16g…出力画素カウンタ部、16h…入出力完了判断部、17…レジスタ、100…画像処理装置
図1
図2
図3
図4
図5
図6
図7
図8
図9-1】
図9-2】
図10-1】
図10-2】
図11
図12
図13
図14