(57)【要約】【課題】コピー機能とスキャナ機能とを持つＭＦＰ装置において、コピー時のメモリ使用効率とスキャナ時の画質を両立するための方法を提供することである。【解決手段】ラインセンサからＡ／Ｄ変換部、読み取り制御部を介してＤＲＡＭを通り、画像処理部からＤＲＡＭを介してプリンタの順で画像データが流れるＭＦＰ装置において次の構成を備える。即ち、読取制御部と画像処理部でシェーディング処理を行えるようにし、コピー時は読み取り制御部でシェーディング処理を行ってから画像を圧縮してＤＲＡＭに格納する。スキャン時、読取制御部はシェーディング処理を行わず無圧縮で一旦ＤＲＡＭへ格納し、画像処理部が画像データをＤＲＡＭからシェーディングデータと共に矩形領域単位に読み出し、シェーディング処理および他各種の画像処理を行ってからＤＲＡＭへ出力する。【選択図】  図４
2008035502.tif 000002
【特許請求の範囲】
【請求項１】
画像原稿をコピーする第１の機能と前記画像原稿をスキャンして得られた画像データを外部装置に出力する第２の機能とを備えた多機能プリンタ装置であって、
前記画像原稿をスキャンして線順次に読取る読取手段と、
前記読取手段により読取って得られた画像データを格納するメモリと、
前記第１の機能を実行する第１の画像処理手段と、
前記第２の機能を実行する第２の画像処理手段とを有し、
前記第１の画像処理手段は、
前記読取手段により読取られた画像データを圧縮する圧縮手段と、
前記圧縮手段により圧縮された圧縮画像データを前記メモリに出力する第１の出力手段とを有することを特徴とする多機能プリンタ装置。
【請求項２】
前記圧縮手段は、前記読取手段により読み取られた画像データを線順次に圧縮することを特徴とする請求項１に記載の多機能プリンタ装置。
【請求項３】
前記圧縮手段はＤＰＣＭ方式に従って画像データを圧縮することを特徴とする請求項１又は２に記載の多機能プリンタ装置。
【請求項４】
前記メモリに格納された圧縮画像データを読出して伸張する伸張手段と、
前記伸張手段により伸張された画像データを用いて記録媒体に画像をプリントするプリント手段とをさらに有することを特徴とする請求項１乃至３のいずれか１項に記載の多機能プリンタ装置。
【請求項５】
前記伸張手段はＤＰＣＭ方式に従って圧縮画像データを伸張することを特徴とする請求項４に記載の多機能プリンタ装置。
【請求項６】
前記第１及び第２の画像処理手段、及び前記伸張手段は半導体チップに実装されることを特徴とする請求項４に記載の多機能プリンタ装置。
【請求項７】
前記第１の画像処理手段はさらに、
前記圧縮手段により画像データの圧縮を行なう前に、前記読取手段により読取って得られた画像データにシェーディング処理を行なう第１のシェーディング処理手段と、
前記第１のシェーディング処理手段によりシェーディング処理が施された画像データにガンマ変換を施す第１のガンマ変換手段とを有することを特徴とする請求項１に記載の多機能プリンタ装置。
【請求項８】
前記第２の画像処理手段は、
前記読取手段により読み取られた画像データを非圧縮で前記メモリに出力する第２の出力手段と、
前記メモリから読み出した非圧縮の画像データにシェーディング処理を行なう第２のシェーディング処理手段と、
前記第２のシェーディング処理手段によりシェーディング処理が施された画像データにガンマ変換を施す第２のガンマ変換手段とを有することを特徴とする請求項１に記載の多機能プリンタ装置。
【請求項９】
画像原稿をコピーする第１の機能と前記画像原稿をスキャンして得られた画像データを外部装置に出力する第２の機能とを備えた多機能プリンタ装置で実行される画像処理方法あって、
前記画像原稿をスキャンして線順次に読取る読取工程と、
前記第１の機能の実行にあたっては、前記読取工程において読取って得られた画像データを圧縮する圧縮工程と、
前記圧縮工程において圧縮された圧縮画像データをメモリに出力する出力工程とを有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複写機能と読取画像データを接続されたホスト装置へ転送が可能なスキャン機能とを備えた多機能プリンタ装置、及びその画像処理方法に関する。
【背景技術】
【０００２】
図５は従来の複写機能とスキャン機能とを備えた多機能プリンタ（以下、ＭＦＰ）の構成を示すブロック図である。
【０００３】
図５において、１０は装置全体を制御する制御チップ（半導体チップ）で、下記１００〜１２００の各ブロックがワンチップ化されている。１００はスキャナＩ／Ｆで、ＡＦＥ２４００でＡ／Ｄ変換されたライン単位の画像データを制御チップ１０の外部から受信し、ＤＭＡＣ１１０を用いてメインメモリ２０００へ書き込む。
【０００４】
２００はスキャナ画像処理部で、ＤＭＡＣ２１０を用いてメインメモリ２０００から画像データを読み出し、エッジ強調やガンマ変換など所定の画像処理を行ってから再びＤＭＡＣ２１０を用いてその処理結果をメインメモリ２０００へ書き込む。
【０００５】
３００はプリンタ画像処理部で、スキャナ画像処理部で処理を行われた画像データをプリンタ出力用のＣＭＹＫ（濃度）データに変換するブロックである。プリンタ画像処理部３００はＤＭＡＣ３１０を用いてメインメモリに対する書き込みと、そのメインメモリからの読み出しとを行う。
【０００６】
４００はプリンタＩ／Ｆで、プリンタ画像処理部３００の処理結果であるＣＭＹＫデータをプリンタ２１００へ送信するインタフェース回路である。プリンタＩ／Ｆ４００はメインメモリ２０００からはＤＭＡＣ４１０を用いて読み出しを行う。
【０００７】
以上、スキャナＩ／Ｆ１００、スキャナ画像処理部２００、プリンタ画像処理部３００、プリンタＩ／Ｆ４００夫々は、ＤＭＡＣ１１０、２１０、３１０、４１０を介して共通の画像バス１１００に接続されている。
【０００８】
５００は画像バス１１００、制御バス１２００とメインメモリ２０００との間の調停やインタフェース制御を行うメモリ制御部である。
【０００９】
６００は装置全体の制御を行うＣＰＵである。
【００１０】
７００はスキャナやプリンタのモータの制御を行うモータコントローラである。
【００１１】
８００は操作部２５００とのインタフェース制御を行うパネルＩ／Ｆである。
【００１２】
９００はＲＯＭ２６００とのインタフェース制御を行うＳＩＯである。
【００１３】
１０００はＭＦＰに接続されるホスト装置（ここでは、ＰＣ）との通信処理を行うＵＳＢデバイスＩ／Ｆである。
【００１４】
ＣＰＵ６００、モータコントローラ７００、パネルＩ／Ｆ８００、ＳＩＯ９００、ＵＳＢデバイスＩ／Ｆ１０００夫々は、共通の制御バス１２００に接続されている。
【００１５】
２０００はＣＰＵ６００や各処理ブロックが作業用メモリとして用いるメインメモリである。２１００は例えば記録紙などの記録媒体への画像データの出力を行うプリンタである。２３００はＣＣＤまたはＣＩＳといった光学素子が用いられる画像読取処理部である。２４００は画像読取処理部２３００から線順次にアナログ出力される画像データをＡ／Ｄ変換して、ライン単位の画像データとして、制御チップ１０のスキャナＩ／Ｆ１００へ入力するＡＦＥである。
【００１６】
２５００はＭＦＰのユーザへ各種情報を出力するＬＣＤとユーザが直接操作するキー（ＫＥＹ）などから構成される操作部で、パネルＩ／Ｆ８００を介して制御チップ１０に対する情報入力と、制御チップ１０からの情報出力とを行う。２６００は、ＣＰＵ６００の動作プログラムを格納したＲＯＭである。
【００１７】
図６はスキャナ画像処理部２００内部の詳細な構成を示すブロック図である。
【００１８】
図６において、２０１は、ＣＣＤおよびＣＩＳの画素ごとの感度ばらつきを補正するシェーディング処理部である。２０２は、シェーディング処理後の画像データに対し、階調特性を変換するためのガンマ変換部である。２０３は、ある画素を中心としたｎ×ｎ画素の画素値を調べ、その画素が文字画像の一部であるか否かを判定する文字判定処理部である。２０４は、ある画素を中心としたｍ×ｍ画素の画素値から、フィルタ演算によりエッジ強調処理やモアレ抑制処理を行うフィルタ処理部である。
【００１９】
シェーディング処理部２０１、文字判定処理部２０３、フィルタ処理部２０４各々は、シェーディングデータあるいは複数ライン分の入力画像データを格納するための専用ラインバッファ２０１ａ、２０３ａ、２０４ａを装備している。メインメモリ２０００に格納された画像データまたはシェーディングデータは、主走査方向（ＣＣＤ或はＣＩＳの移動方向）に複数ライン分読み出され、それらラインバッファに格納されて、個別に画像処理を施される。
【００２０】
上記の従来例の構成を開示する先行技術としては、例えば、特許文献１に開示されるものがある。
【００２１】
ところで、特許文献１の構成では、画像処理部内の各画像処理ブロックが、その画像処理に必要なラインメモリをそれぞれに装備する必要があるため、非常に大きなラインメモリが必要になる。例えば、５×５画素のフィルタ処理を行うには原稿幅４ライン分のラインメモリが必要である。入力画像がＡ４サイズの解像度６００ｄｐｉのカラー画像（＝５０００画素／ライン）で１画素１６ビットとすると、１２０ｋＢという非常に大きなサイズのメモリが制御チップ１０内に必要になる。加えて、このメモリサイズは、入力画像データの解像度および原稿の幅方向の実サイズに比例した量が必要になる。
【００２２】
この問題を解決するため、特許文献２は、新たな画像処理システムを提案している。
【００２３】
特許文献２によれば、読取制御部から出力されてメインメモリに線順次に格納された画像データを、図７に示すように、画像処理に必要な「のりしろ」を加えた矩形領域毎に読み出す。加えて、その矩形領域に対応する位置の明暗シェーディングデータをメインメモリから同時に読み出す。そして、画像処理部内で、シェーディング処理などの各種画像処理を施し、その処理結果をまた矩形領域毎にメインメモリへと書き込む。
【００２４】
このような処理を行うことで、各画像処理部は原稿幅ではなくその矩形の横幅分だけラインメモリを持てばよいため、各画像処理部のラインメモリの総量を大幅に削減することができる。また、入力画像データがより高解像度になった場合、もしくは入力画像のサイズ自体が、例えば、Ａ４からＡ３へというように大きくなる場合も、メインメモリからその矩形領域を読み出す回数を増やせばよいだけである。従って、画像が高解像度になっても、或はそのサイズが大きくなっても、それらの変更に対する対応も容易である。なお、ここでいう「のりしろ」とは、入力矩形全体に対して画像処理を行うために、入力矩形領域の外側に付けてメインメモリから読み出す必要のある領域である。例えば、５×５画素のフィルタ処理を行うためには、入力矩形の上下左右に２ラインずつよけいに読み出す必要がある。
【特許文献１】特開平７−１７０３７２号公報
【特許文献２】特開２００４−２２０５８４号公報
【発明の開示】
【発明が解決しようとする課題】
【００２５】
しかしながら、特許文献２に開示された方法でも依然として問題点は残る。
【００２６】
この方法では、画像処理部はスキャナＩ／Ｆからメインメモリに矩形の縦幅分の画像データが出力されるまで処理を開始することができないので、１ライン分の画像データを少なくともその矩形縦幅分は格納できる量のメインメモリが必要になる。
【００２７】
もちろん、矩形の縦幅を小さくすればこの問題は解消される。しかしながら、その場合は、メインメモリから読み出す矩形領域に付随する「のりしろ」、及びその矩形領域に対してシェーディング処理を行うために必要なシェーディングデータによる影響が大きくなる。矩形領域の縦幅をｎラインとすると、５×５画素フィルタ処理に必要なのりしろが上下で計４ライン、シェーディングデータが２ライン(明暗)分必要になる。従って、ｎ＋６ライン分のデータをメインメモリから読み出す必要がある。つまり、ｎが小さいほど、メインメモリから読み出す必要のあるデータ量は相対的に大きくなるため、制御チップ１０とメインメモリ２０００間のデータアクセスの帯域が多く必要になる。
【００２８】
また、以上のことはＭＦＰのスキャナ機能を用いる場合に必要なメモリについて述べているが、ＭＦＰに複写機能を備える場合は、そのＭＦＰ装置内に、スキャン機能とプリント機能の両方でメモリが必要になる。この場合におけるＭＦＰ装置内部のデータフローは図８に示すようになる。
【００２９】
即ち、コピー時には、画像読取処理部２３００で読み取ってＡＦＥ２４００でＡ／Ｄ変換した画像データは一旦、メインメモリ２０００内のバッファ１へ線順次に書き込まれる。スキャナ画像処理部２００ではバッファ１から画像データをのりしろを含む矩形領域に対応したシェーディングデータとともに読み出して各種画像処理を行った後、メインメモリ内のバッファ２へその画像処理が施された画像データを書き込む。さらに、この画像データを、プリンタ画像処理部３００がバッファ２から線順次に読み出して、プリンタ２１００で処理できるＣＭＹＫ二値データに変換し、メインメモリ２０００内のバッファ３へ書き込む。次に、バッファ３へ書き込まれたＣＭＹＫ二値データを、プリンタＩ／Ｆ４００が読み出して、プリンタ２１００へ出力し、出力用紙への記録を行う。
【００３０】
一方、スキャン時には、スキャナ画像処理部２００までのデータフローは前述と同じであり、スキャナ画像処理部２００の出力データはバッファ２ではなくＵＳＢデバイスＩ／Ｆ１０００への送信バッファに蓄積され、ＵＳＢ経由でＰＣへ送信される。このため、バッファ２とバッファ３は不要となり、送信バッファのサイズはバッファ２や３より小さいため、必要なバッファメモリ総量はコピー時ほど多くはない。
【００３１】
このように、ＭＦＰでは、コピー時には、スキャナＩ／Ｆ、スキャナ画像処理部、プリンタ画像処理部、プリンタＩ／Ｆのすべてがメインメモリへアクセスする。このため、各処理ブロック間の処理速度の差を吸収するバッファ１〜３がメインメモリ内に夫々必要になり、かつ、制御チップとメインメモリとの間のデータアクセス帯域が非常に多く必要になる。
【００３２】
以上のことをまとめると、特許文献２で提案された方法では、以下の問題がある。
【００３３】
（１）スキャナＩ／Ｆ〜スキャナ画像処理部間のバッファメモリ（図８のバッファ１）の容量が比較的多く必要である。
【００３４】
（２）さらに、コピー時には、メインメモリ内に大サイズのバッファメモリ（図８のバッファ１＋バッファ２＋バッファ３）が必要で、かつ、制御チップとメインメモリとの間のデータアクセス帯域も多く必要になる。
【００３５】
本発明は上記従来例に鑑みてなされたもので、コピー時のメモリ使用効率とスキャナ時の画質を両立することが可能なコピー機能とスキャナ機能とを持つ多機能プリンタ装置、及び画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００３６】
上記目的を達成するため本発明の多機能記録装置は以下の構成からなる。
【００３７】
即ち、画像原稿をコピーする第１の機能と前記画像原稿をスキャンして得られた画像データを外部装置に出力する第２の機能とを備えた多機能プリンタ装置であって、前記画像原稿をスキャンして線順次に読取る読取手段と、前記読取手段により読取って得られた画像データを格納するメモリと、前記第１の機能を実行する第１の画像処理手段と、前記第２の機能を実行する第２の画像処理手段とを有し、前記第１の画像処理手段は、前記読取手段により読取って得られた画像データを圧縮する圧縮手段と、前記圧縮手段により圧縮された圧縮画像データを前記メモリに出力する第１の出力手段とを有することを特徴とする。
【００３８】
また他の発明によれば、画像原稿をコピーする第１の機能と前記画像原稿をスキャンして得られた画像データを外部装置に出力する第２の機能とを備えた多機能プリンタ装置で実行される画像処理方法あって、前記画像原稿をスキャンして線順次に読取る読取工程と、前記第１の機能の実行にあたっては、前記読取工程において読取って得られた画像データを圧縮する圧縮工程と、前記圧縮工程において圧縮された圧縮画像データをメモリに出力する出力工程とを有することを特徴とする画像処理方法を備える。
【発明の効果】
【００３９】
従って本発明によれば、多機能プリンタ装置として必要機能を満たすのに必要な総メモリ量の削減を図ることができるという効果がある。さらに、読取画像データをメモリに格納する際の圧縮をコピー機能の実行時に限定することで、スキャン機能実行時の画質劣化防止を図ることができる。
【発明を実施するための最良の形態】
【００４０】
以下添付図面を参照して本発明の好適な実施例について、さらに具体的かつ詳細に説明する。
【００４１】
なお、この明細書において、「記録」（「プリント」という場合もある）とは、文字、図形等有意の情報を形成する場合のみを表すものではない。これに加えて、有意無意を問わず、また人間が視覚で知覚し得るように顕在化したものであるか否かを問わず、広く記録媒体上に画像、模様、パターン等を形成する、または媒体の加工を行う場合も表すものとする。
【００４２】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、広く、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等、インクを受容可能なものも表すものとする。
【００４３】
図１は本発明の代表的な実施例である多機能プリンタ（ＭＦＰ）装置の概略構成を示すブロック図である。なお、従来例で既に説明したのと同じ構成要素には同じ参照番号を付してその説明は省略する。ここでは、特に、この実施例の特徴と従来例のＭＦＰとの差異について、図５に示した構成と比較しながら説明する。
【００４４】
図１と図５と比較すると分かるように、この実施例では、図１に示すように、スキャナＩ／Ｆの出力に新たにコピー画像処理部１２０（第１の機能）を設ける。コピー画像処理部１２０は第１の画像処理を行う。その中に、コピー時に必要な量のシェーディングデータを内蔵するシェーディングメモリ（ＳＲＡＭ）１２２、シェーディング処理部１２１、ガンマ変換処理部１２３、ＤＰＣＭ方式によるＤＰＣＭ圧縮処理部１２４を備える。シェーディング処理部１２１の処理は第１のシェーディング処理とも呼ばれ、ガンマ変換処理部１２３の処理は第１のガンマ変換とも呼ばれる。また、従来のスキャナ画像処理部２００（第２の機能）に備えられていたシェーディング処理部２０１（第２のシェーディング処理）は残す。さらに、スキャナ画像処理部２００にＤＰＣＭ伸張処理部２０５を追加する。スキャナ画像処理部２００は第２の画像処理を行う。
【００４５】
従って、図１から分かるように、第１の画像処理と第２の画像処理とを行う処理部は制御チップ（半導体チップ）に実装されていると言える。
【００４６】
また、ＤＰＣＭ圧縮処理部１２４は圧縮画像データをメインメモリ２０００に出力する（第１の出力）機能も有している。
【００４７】
これ以外の構成は図５に示した従来例と同じである。なお、図１では制御バス側に接続されているブロックの記載を省略している。
【００４８】
以降、図１に示すような構成を持つＭＦＰ装置において実行するコピー時とスキャン時の処理動作について詳細に説明する。
【００４９】
＜スキャン時の処理＞
まず、画像原稿スキャン時の処理について説明する。この処理は、基本的には特許文献２で開示されている内容と同じであり、以下の通りである。
【００５０】
１．予め各色成分の明暗のシェーディングデータを取得し、メインメモリ２０００内に保持しておく。
【００５１】
２．原稿の読取処理を開始する。ＡＦＥ２４００からスキャナＩ／Ｆ１００経由で制御チップ１０（半導体チップ）に線順次にデジタル画像データを入力する。
【００５２】
３．コピー画像処理部１２０を介さずに、非圧縮データをＤＭＡＣ−１１０により線順次に、メインメモリ２０００へ書き込む（第２の出力）。
【００５３】
４．メインメモリ２０００へ出力された線順次の画像データが、スキャナ画像処理部２００での処理矩形の高さ（のりしろを含む）以上に蓄積されたときに、スキャナ画像処理部２００が処理を開始する。スキャナ画像処理部２００の出力矩形サイズをｍ×ｎとすると、５×５画素のフィルタ処理で上下左右２画素ずつののりしろが必要なため、入力は（ｍ＋４）×（ｎ＋４）の矩形となる。ＤＭＡＣ２１０で、図７に示したように、この部分に相当する矩形画像データと、同時にその部分に相当するシェーディングデータ（ｍ＋４）×２ライン（明暗）分を読み出す。
【００５４】
５．スキャナ画像処理部２００内の、シェーディング処理部２０１でシェーディング処理、ガンマ変換処理部２０２で入力ガンマ変換処理（第２のガンマ変換）、フィルタ処理部２０４でフィルタ処理を行なう。そして、のりしろ部を除いた処理結果であるｍ×ｎ画素の矩形画像データをＤＭＡＣ２１０により出力する。
【００５５】
６．上記４、５の処理を、出力された画像データが１ストライプ（主走査方向の出力矩形の総和）分となるまで繰り返す。ＣＰＵ６００は、メインメモリ２０００へ出力された１ストライプ分の処理済画像データを、ＵＳＢデバイスＩ／Ｆ１０００を通じて、接続されたＰＣへ線順次に送信する。
【００５６】
７．画像読取処理部２３００からの出力画像データがスキャナ画像処理部２００が次に処理する矩形領域の高さに達したとき（最初から数えて２ｎ＋４ライン分に達したとき）、次のストライプに関してスキャナ画像処理部２００が処理を開始する。以降同様に、画像読取処理部２３００からの出力がｎライン蓄積する毎にこれを繰り返す。
【００５７】
＜コピー時の処理＞
次にコピー時の処理について説明する。
【００５８】
まず、ＡＦＥ２４００からライン単位に画像データを入力して、メインメモリ２０００へ出力するまでの処理を示す。
【００５９】
１．予めコピー時の解像度のシェーディングデータを取得し、その結果をシェーディングメモリ１２２に書き込んでおいてから、原稿読み取りを開始する。
【００６０】
２．原稿読取処理を開始する。ＡＦＥ２４００からスキャナＩ／Ｆ１００経由で制御チップ１０に線順次のデジタル画像データを入力する。
【００６１】
３．スキャナＩ／Ｆ１００から出力された線順次のデジタル画像データをコピー画像処理部１２０へ入力し、コピー画像処理部のシェーディング処理部１２１でシェーディング処理を行う。この際、シェーディングデータはシェーディングメモリ１２２から入力画像データに同期して随時読み出して用いる。この処理により、センサの各画素での感度ばらつきが補正されるため、後段のＤＰＣＭ圧縮処理による画質劣化を最小限に抑えることができる。
【００６２】
４．ガンマ変換処理部１２３において、入力ガンマ変換処理を実行する。この処理により、入力画像の階調数が減るため、後段のＤＰＣＭ圧縮処理による画質劣化をさらに抑えることができる。
【００６３】
５．入力画像の各ラインに対しＤＰＣＭ圧縮を実行する。ＤＰＣＭ圧縮のアルゴリズムは後述する。
【００６４】
６．圧縮画像データをＤＭＡＣ１１０を用いてライン単位にメインメモリ２０００へ書き出す。
【００６５】
ここで行うＤＰＣＭ圧縮処理は、シェーディング処理と入力ガンマ変換処理の結果として得られた各画素１６ビット画像データを、各画素８ビットの固定長に圧縮する処理である。
【００６６】
図２はＤＰＣＭ圧縮処理の概要を示すフローチャートである。
【００６７】
ここで、入力１６ビットデジタル画像１ライン分のうち、左からｉ番目の画素値をｐ［ｉ］(１６ビット)とし、この画素に対する符号データをｃ［ｉ］（８ビット）、及び復号データをｑ［ｉ］（１６ビット）とする。
【００６８】
また、
table［ｊ］＝（ｉｎｔ）（ｊ／５１２）＋１２８
（−６５５３６＜ｊ＜６５５３６）
revtable［ｋ］＝（ｋ−１２８）＊５１２
（０≦k＜２５６）とする。
【００６９】
さて、ステップＳ６０１では、ｉの値を調べる。ここで、ｉ＝０であれば、処理はステップＳ６０２へ、ｉ≠０であれば、処理はステップＳ６０３へ進む。
【００７０】
ステップＳ６０２では、ｃ［ｉ］＝ｐ［ｉ］＞＞８、ｑ［ｉ］＝ｃ［ｉ］＜＜８の演算を行い、その後、処理はステップＳ６０５へ進む。なお、“＞＞８”は入力ビット列を右に８ビットシフトする操作を意味する。また、“＜＜８”は入力ビット列を左に８ビットシフトする操作を意味する。このような操作により１画素１６ビットの画像データの下位８ビットには全て“０”がセットされる。
【００７１】
ステップＳ６０３では、ｃ［ｉ］＝table［ｐ［ｉ］−ｑ［ｉ−１］］、ｑ［ｉ］＝ｑ［［ｉ−１］＋revtable［ｃ［ｉ］］を演算し、その後、処理はステップＳ６０４へ進む。
【００７２】
ステップＳ６０４では、もしｑ［ｉ］＞６５５３５なら、ｑ［ｉ］＝６５５３５とし、もしｑ［ｉ］＜０なら、ｑ［ｉ］＝０とし、その後、処理は ステップＳ６０５へ進む。 
ステップＳ６０５では、ｉの値を"＋１"インクリメントし、その後、処理はステップＳ６０６へ進む。
【００７３】
ステップＳ６０６では、注目画素が画像の右端であるかどうかを調べ、そうであれば処理終了し、そうでなければ処理はステップＳ６０３へ戻る。
【００７４】
このように、入力画像データの各ラインごとにＤＰＣＭ圧縮処理を行うことで、画像読取処理部の出力が１画素につき１６ビットから８ビットに固定長圧縮される。
【００７５】
次に、メインメモリ２０００に書き出された圧縮画像データをスキャナ画像処理部２００がどのように処理するかをフローチャートを参照して説明する。
【００７６】
図３はスキャナ画像処理部２００における圧縮画像データの処理を示すフローチャートである。
【００７７】
ステップＳ７０１では、スキャナ画像処理部２００のＤＭＡＣ２１０は、スキャン時と同様に図７に示すように、ｍ×ｎ画素の出力矩形に対して、上下左右２画素ずつののりしろを加えた形でメインメモリ２０００から画像データを読み出す。ただし画像データは、１画素あたり１６ビットから８ビットへと半分に固定長圧縮されているため、スキャン時と同じ位置の矩形を読み出すにはデータ量やアドレス差分値が半分になることなどに注意する必要がある。また、シェーディングデータを読み出す必要はない。
【００７８】
ステップＳ７０２では、ＤＭＡＣ２１０を介して読み込まれた画像データに対し、スキャナ画像処理部２００内のＤＰＣＭ伸張処理部２０５で、以下のアルゴリズムでＤＰＣＭによりデータの伸張を行う。伸張処理は矩形内のラインごとに行う必要がある。
【００７９】
以降の説明において、出力矩形をｍ×ｎとすると、入力矩形は（ｍ＋２）×（ｎ＋２）であるが、その中での座標値（ｉ，ｊ）における符号データ（各画素８ビット）をｃ［ｉ，ｊ］とし、その伸張結果（各画素１６ビット）をｑ［ｉ，ｊ］とする。
【００８０】
さて、ステップＳ７０２−１では、ｉ＝ｊ＝０とする。
【００８１】
ステップＳ７０２−２では、入力矩形画像（ストライプ）が入力画像左端であるかどうかを調べる。ここで、入力矩形画像が入力画像左端であれば、処理はステップＳ７０２−３へ進み、そうでなければ、ステップＳ７０２−１１へ進む。
【００８２】
ステップＳ７０２−３では、入力矩形内ｊライン目の伸張処理を開始する。
【００８３】
ステップＳ７０２−４では、入力矩形の左端２画素はのりしろであり、その次の入力画素からが実画像を表す符号データになる。そこで、左端２画素については常に白画素として“６５５３５”を出力する。即ち、ｑ［０，ｊ］＝ｑ［１，ｊ］＝６５５３５とする。 
ステップＳ７０２−５では、３画素目（＝原稿の左端画素）については、下位８ビットを無視することにより圧縮されているため、入力８ビットデータを２５６倍して１６ビットデータとして出力する。つまり、ｑ［２，ｊ］＝ｃ［２，ｊ］＜＜８とする。
【００８４】
ステップＳ７０２−６では、４画素目以降を次の処理により復号化する。
【００８５】
即ち、ｑ［ｉ，ｊ］＝ｑ［ｉ−１，ｊ］＋revtable［c［ｉ，ｊ］］を演算する。
【００８６】
ここで、もしｑ［ｉ，ｊ］＞６５５３５なら、q［ｉ，ｊ］＝６５５３５とし、ｑ［ｉ，ｊ］＜０なら、ｑ［ｉ，ｊ］＝０とする。
【００８７】
ステップＳ７０２−７では、矩形内各ライン（ｊ＝０〜ｎ＋２−１）について、入力矩形の左からｍ画素目の伸張出力値ｑ［ｍ−１，ｊ］を、ｑ’［ｊ］としてＤＰＣＭ伸張処理部２０５内部に記憶する。
【００８８】
ステップＳ７０２−８では、入力矩形の全画素の伸張処理が終了したなら（ｊ＝ｎ＋２−１）、処理はステップＳ７０２−２０へ進む。
【００８９】
ステップＳ７０２−９では、伸張処理が入力矩形右端まで到達したなら（ｉ＝ｍ＋２−１）、処理はステップＳ７０２−１０へ進み、そうでなければ、処理はステップＳ７０２−１１へ進む。
【００９０】
ステップＳ７０２−１０では、ｊの値を“＋１”インクリメントし、その後、処理はステップＳ７０２−３へ進む。
【００９１】
ステップＳ７０２−１１では、ｉの値を“＋１”インクリメントし、その後、処理はステップＳ７０２−６へ進む。
【００９２】
ステップＳ７０２−１２では、入力矩形内ｊライン目の伸張処理を開始する。
【００９３】
ステップＳ７０２−１３では、ｉ＝０ならば、ステップＳ７０２−７またはステップＳ７０２−１５の処理においてで記憶している伸張出力値ｑ’［ｊ］を用いて、次の処理を行う。
【００９４】
即ち、ｑ［０，ｊ］＝ｑ’［ｊ］＋revtable［ｃ[０，ｊ］］を演算する。
【００９５】
ここで、ｑ［０，ｊ］＞６５５３５なら、ｑ［０，ｊ］＝６５５３５とし、
ｑ［０，ｊ］＜０なら、ｑ ［０，ｊ］＝０とする。
【００９６】
ステップＳ７０２−１４では、次の処理を行う。
【００９７】
即ち、ｉ≠０のとき、
q［ｉ，ｊ］＝ｑ［ｉ−１，ｊ］＋revtable［ｃ［ｉ，ｊ］］を演算する。
【００９８】
ここで、ｑ［ｉ，ｊ］＞６５５３５なら、 q［ｉ，ｊ］＝６５５３５とし、
ｑ［ｉ，ｊ］＜０なら、 q［ｉ，ｊ］＝０とする。
【００９９】
ステップＳ７０２−１５では、矩形内各ライン（ｊ＝０〜ｎ＋２−１）について、入力矩形の左からｍ画素目の伸張出力値ｑ［ｍ−１，ｊ］をｑ’［ｊ］としてＤＰＣＭ伸張処理部２０５内部で記憶する。
【０１００】
ステップＳ７０２−１６では、入力矩形の全画素の伸張処理が終了したかどうかを調べる。ここで、ｊ＝ｎ＋２−１なら処理はステップＳ７０２−２０へ進み、ｊ≠ｎ＋２−１なら、処理はステップＳ７０２−１７に進む。
【０１０１】
ステップＳ７０２−１７では、伸張処理が入力矩形右端まで到達したかどうかを調べる。ここで、ｉ＝ｍ＋２−１なら処理はステップＳ７０２−１８へ進み、ｉ≠ｍ＋２−１なら、処理はステップＳ７０２−１９へ進む。
【０１０２】
ステップＳ７０２−１８では、ｊの値を"＋１"インクリメントし、その後、処理はステップＳ７０２−１２へ進む。
【０１０３】
ステップＳ７０２−１９では、ｉの値を"＋１"インクリメントし、その後、処理はステップＳ７０２−１４へ進む。
【０１０４】
ステップＳ７０２−２０では、ステップＳ７０２−８またはステップＳ７０２−１６の時点で注目矩形の伸張処理が終了しているので、伸張された矩形画像データに対し、文字判定処理とフィルタ処理を行う。シェーディング処理とガンマ変換処理はすでにコピー画像処理部で処理済みのためここでは行わない。フィルタ処理部内で矩形内上下左右２画素ののりしろは削られ、その結果をＤＭＡＣ２１０を用いてメインメモリ２０００内のバッファ２へ矩形単位に書き出す。
【０１０５】
ステップＳ７０２−２１では、現在の注目矩形がストライプの右端であるかどうかを調べる。ここで、現在の注目矩形がストライプの右端であればこのストライプの処理を終了し、そうでなければ処理はステップＳ７０２−２２へ進む。
【０１０６】
ステップＳ７０２−２２では、注目矩形を一つ右へ移し、その後、処理はステップＳ７０１へ戻る。
【０１０７】
以上のようにして、スキャナ画像処理部２００では、入力画像１ストライプ分の処理を実行する。以降は各ストライプに対して同様の処理を繰り返す。
【０１０８】
以上の処理をまとめると、コピー時にはＡＦＥ２４００から線順次に入力されるデジタル画像データに対し、コピー画像処理部１２０内のシェーディングメモリ１２２に格納したシェーディングデータを用いて、シェーディング処理・ガンマ変換処理を行う。その後、ＤＰＣＭ圧縮処理を行ってメインメモリへ線順次にデータを書き出す。スキャナ画像処理部２００は、メインメモリから矩形領域毎に読み出した圧縮データを伸張後、シェーディングと入力ガンマ変換処理を除くフィルタ処理などの各種画像処理を行う。
【０１０９】
これに対して、スキャン時にはＡＦＥ２４００から線順次に入力されるデジタル画像データにコピー画像処理部１２０では処理を行わず、非圧縮のまま線順次でメインメモリに書き出す。スキャナ画像処理部では、その画像データを矩形領域毎に読み出すと同時にその矩形位置に対応したシェーディングデータをメインメモリから読み出し、シェーディング処理・入力ガンマ変換処理を行ってからフィルタ処理などの各種画像処理を行う。 
図４がこの実施例に従ってコピーとスキャンとを夫々実行したときに必要なバッファメモリを示す図である。図４に示すように、この実施例によれば、コピー時に必要なバッファ１の容量が画像データ圧縮により従来の半分になる。つまり、圧縮による削減分は、コピー時のバッファ１のサイズとスキャン時のバッファ１のサイズの差に相当する。
【０１１０】
スキャン時に必要なバッファメモリ総量は従来と変わらないが、もともとスキャン時にはコピー時に比べバッファメモリの総必要量が少ない。
【０１１１】
つまり、この実施例では、従来例と比較して、スキャナＩ／Ｆ１００とＤＭＡＣ１１０との間で新たにコピー画像処理部１２０を設け、コピー時のみ、ここでスキャナＩ／Ｆから入力されるライン単位の画像データを圧縮する。その後、ＤＭＡＣ１１０経由でメインメモリ２０００へ圧縮画像データを書き込む。このようにして、スキャナＩ／Ｆ１００とスキャナ画像処理部２００の間とのバッファ１の必要量、および制御チップとメインメモリとの間の帯域が削減される。
【０１１２】
また、スキャナ画像処理部２００は、圧縮画像データを矩形単位でメインメモリ２０００から読み出し、スキャナ画像処理部２００内に新たに設けたＤＰＣＭ伸張処理部２０５でこれをライン毎に伸張してから以降の画像処理を行う。
【０１１３】
スキャン時には、スキャナＩ／ＦからＤＭＡＣ１１０へ出力される画像データを圧縮せず、ＤＰＣＭ伸張処理部２０５での伸張処理も行わない従来同様の処理を行うことで、圧縮による画像劣化を防ぐ。
【０１１４】
なお、この実施例では、圧縮処理に前入力画素との差分値をコード化する固定長ＤＰＣＭ圧縮処理を採用している。ＤＰＣＭ圧縮処理は画像データにおいて隣接画素との相関が高いことを利用する処理であるため、センサの各画素の感度バラツキを補正するシェーディング処理を行う前にこの圧縮手法を用いると圧縮による画像劣化が大きくなってしまうという問題が発生する。
【０１１５】
この問題を解決するために、この実施例では、スキャナＩ／Ｆ１００から出力される線順次のデータに対し、まずシェーディング処理を行い、次にガンマ変換を行ってから、ＤＰＣＭ圧縮を行う。ガンマ変換を行うことにより、これを行わない場合に比べより階調変化が少なくなるのでＤＰＣＭ圧縮による画質劣化がさらに抑えられる。
【０１１６】
さて、特許文献２ではシェーディングデータは画像データとともにメインメモリから読出している。この実施例では、これに対して、そのシェーディングデータの読出し動作を高速化するとともに、メインメモリからの読出し動作を少なくするために、コピー画像処理部内にＳＲＡＭで構成されるシェーディングメモリ１２２を設けている。コピー時のシェーディング処理に必要なシェーディングデータは、このメモリ内に予め格納しておいたデータを用いる。こうすることで、コピー時にシェーディングデータを保持するためのメインメモリの容量を削減し、かつシェーディングデータのメインメモリから読込動作も不要となる。
【０１１７】
従って、以上説明した実施例に従えば、コピー時に必要なバッファ容量が削減できた分だけ、コピーおよびスキャン機能を実現するためにシステム全体として必要なバッファメモリ量を減らすことができる。
【０１１８】
さらに、制御チップとメインメモリ（バッファ１）との間のデータ入出力動作が半分になる。このように、コピー時とスキャン時でバッファメモリを使い分けることで、次のことが実現できる。
【０１１９】
（１）コピー時に必要なメインメモリ容量が削減され、システム全体に要求されるメモリ容量が削減される。これは装置のトータルコストの削減につながる。
【０１２０】
（２）コピー時における画像データとシェーディングデータに係るメモリ入出力動作が削減される。
【０１２１】
（３）コピー時のメインメモリ内のシェーディングデータ領域が不要になる。
【０１２２】
（４）スキャン時の、ＤＰＣＭ画像圧縮による画質劣化の防止される。
【０１２３】
（５）読取処理部内でのシェーディング処理をコピー時に限定することで、コピー画像処理部で必要なシェーディングメモリの容量抑制が図られる。
【０１２４】
次に、本発明の他の実施例を説明する。
【０１２５】
先の実施例では、コピー画像処理部１２０とスキャナ画像処理部２００の両方に、シェーディング処理部（１２１，２０１）とガンマ変換処理部（１２３，２０２）を設けている。しかしながら、コピー画像処理部１２０のそれとスキャナ画像処理部２００のそれは機能的に同じものであり、同時に動くことはない。そのため、これらを各一つずつにして、セレクタでデータフローを切り替えるような構成も考えられる。
【０１２６】
図９を参照してその動作を説明する。
【０１２７】
＜コピー時＞
ＡＦＥ２４００でＡ／Ｄ変換した画像データはスキャナＩ／Ｆ１００を介してセレクタ１４０により共通画像処理部１３０に送られる。ここで、シェーディング処理部１３１においてＳＨＤメモリ１３２のシェーディングデータを参照してシェーディング補正が行われる。後述のように、スキャン時においても同様にシェーディング処理部１３１にて補正が行われる。γ変換処理部１３３で処理された後、セレクタ１５０によりＤＰＣＭ圧縮処理部１２４で圧縮処理を行う。そして、ＤＭＡＣ１１０によりメインメモリ２０００へ圧縮されたデータが格納される。次にメインメモリ２０００から読み出された圧縮画像データは、ＤＭＡＣ２１０によりセレクタ１６０に送られる。セレクタ１６０はスキャナ画像処理部２００に画像データを送るように切換えを行う。ＤＰＣＭ伸張処理部２０５により伸張された後、文字判定処理部２０３、フィルタ処理部２０４での処理が行われる。そしてＤＭＡＣ２１０、３１０を介してプリンタ画像処理部３００でプリンタに送るデータへの変換を行う。
【０１２８】
＜スキャン時＞
セレクタ１４０までの画像データの流れはコピー時における説明と同様である。ここで、セレクタ１４０によりＤＭＡＣ１１０、メモリ制御部５００でメインメモリ２０００へ非圧縮状態で画像データが格納される。
【０１２９】
メインメモリ２０００から読み出された非圧縮状態のデータはＤＭＡＣ２１０を介してセレクタ１６０により共通画像処理部１３０へ送られる。そしてコピー時と同様にシェーディング処理、γ変換処理をおこなった後、セレクタ１５０により文字判定処理部２０３へ直接に送られる。スキャン時の画像データは非圧縮データのため、ＤＰＣＭ伸張処理部２０５を介する必要がない。以降のデータの流れはコピー時と同様である。
【０１３０】
この実施形態によれば、コピー時とスキャナ時に行う処理における共通処理を、共通画像処理部１３０において行うので、処理を簡素化することができる。
【図面の簡単な説明】
【０１３１】
【図１】本発明の代表的な実施例であるマルチファンクションプリンタの概略構成を示すブロック図である。
【図２】画像コピー時に実行する入力画像データのＤＰＣＭ圧縮処理を示すフローチャートである。
【図３】画像コピー時に実行する各メモリからのデータ読込とＤＰＣＭ伸張処理を示すフローチャートである。
【図４】コピーとスキャンとを夫々実行したときに必要なバッファメモリ容量を示す図である。
【図５】従来のマルチファンクションプリンタの概略構成を示すブロック図である。
【図６】図５に示すマルチファンクションプリンタのスキャナ画像処理部の内部構成を示すブロック図である。
【図７】特開２００４−２２０５８４に開示されたスキャナ画像処理部において実行されるメインメモリからの画像読出しと画像処理後のメインメモリへの出力の様子を示す図である。
【図８】従来のマルチファンクションプリンタにおける各画像処理ブロックとメインメモリ内の各バッファとの関係を示す図である。
【図９】他の実施例に従うマルチファンクションプリンタの概略構成を示すブロック図である。
【符号の説明】
【０１３２】
１２０  コピー画像処理部
１２１  シェーディング処理部
１２２  シェーディングメモリ（ＳＲＡＭ）
１２３  ガンマ変換処理部
１２４  ＤＰＣＭ圧縮処理部
２００  スキャナ画像処理部
２０１  シェーディング処理部
２０５  ＤＰＣＭ伸張処理部
【図１】
2008035502.tif 000003
【図２】
2008035502.tif 000004
【図３】
2008035502.tif 000005
【図４】
2008035502.tif 000006
【図５】
2008035502.tif 000007
【図６】
2008035502.tif 000008
【図７】
2008035502.tif 000009
【図８】
2008035502.tif 000010
【図９】
2008035502.tif 000011