JP2005045458A - 画像圧縮方法、画像圧縮装置 - Google Patents
画像圧縮方法、画像圧縮装置 Download PDFInfo
- Publication number
- JP2005045458A JP2005045458A JP2003201925A JP2003201925A JP2005045458A JP 2005045458 A JP2005045458 A JP 2005045458A JP 2003201925 A JP2003201925 A JP 2003201925A JP 2003201925 A JP2003201925 A JP 2003201925A JP 2005045458 A JP2005045458 A JP 2005045458A
- Authority
- JP
- Japan
- Prior art keywords
- image
- data
- compression
- unit
- tile
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
【課題】送信される画像データ量が一定値を超えないように、画像特性情報の送信データ量を制御することにより、再度画像入力をやり直す必要がないようにすること。また、その際に画像特性情報の代替情報を補うことにより、画像劣化の少ない処理を実施すること。
【解決手段】画像及び特性情報の圧縮後のデータのサイズがリミット値を超えている場合、画像特性情報の送信を停止し、各画素に対する画像特性情報において先頭の画素に対応する画像特性情報の値を参照し、その値をZdummy3032にセットする。
【選択図】 図11
【解決手段】画像及び特性情報の圧縮後のデータのサイズがリミット値を超えている場合、画像特性情報の送信を停止し、各画素に対する画像特性情報において先頭の画素に対応する画像特性情報の値を参照し、その値をZdummy3032にセットする。
【選択図】 図11
Description
【0001】
【発明の属する技術分野】
本発明は、画像を圧縮する技術に関するものである。
【0002】
【従来の技術】
従来の画像を圧縮する画像処理装置は、画像入力部から読み込んだ画像データを圧縮する画像データ圧縮部、及びこの画像データ圧縮部により圧縮された画像データを記憶するデータ記憶部を備えるものであった。
【0003】
【発明が解決しようとする課題】
しかし従来例では、上記画像データ圧縮部によって圧縮され、上記データ記憶部に蓄積される圧縮画像データのサイズが上記データ記憶部のメモリサイズを超えてしまった場合、上記画像入力部に再度画像を入力し、前回よりも高い圧縮率で圧縮可能な圧縮パラメータを上記画像データ圧縮部に設定し直し、そして設定し直した圧縮パラメータを用いて再度入力した画像データに対して圧縮を行わなければいけなかった。
【0004】
また他にも例えば、画像データ圧縮部が圧縮した画像データのサイズ(データ量)をカウントし、カウントした値が一定量を超えた場合には、画像特性情報の送信を停止することで、データ記憶部に蓄積する画像データのサイズがデータ記憶部のメモリサイズを超えないようにし、画像データの再入力を回避するようにしていた。この場合、途中から画像特性情報(画像を構成する各画素が夫々何の領域(例えば文字領域や写真領域など)であるかなどを示す属性情報)が欠落してしまうので、装置内部での画像処理やプリント時の補正画像処理が最適に行われず、所望の画像処理結果が得られない可能性があった。
【0005】
本発明は以上の問題に鑑みてなされたものであり、再度画像を入力したりしないように、圧縮後のデータのサイズの制御を行うと共に、圧縮後の画像の劣化を抑制する技術を提供することを目的とする。
【0006】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の画像圧縮方法は以下の構成を備える。
【0007】
すなわち、画像を圧縮する画像圧縮方法であって、
入力された画像を所定のサイズを有する複数のタイルに分割する分割工程と、
分割された夫々のタイルに対して、タイルに含まれる各画素の属性を示す特性情報、当該特性情報の代替値をセットするための領域を有するヘッダ情報とを生成する生成工程と、
各タイルの画像データを圧縮すると共に、圧縮後のデータのサイズを計数する第1の圧縮工程と、
各タイルに対する前記特性情報を圧縮すると共に、圧縮後のデータのサイズを計数する第2の圧縮工程と、
注目タイルに対して前記第1の圧縮工程で圧縮を行い、当該注目タイルに対する特性情報に対して前記第2の圧縮工程が圧縮を行った際に、前記第1の圧縮工程で計数したデータのサイズ、及び前記第2の圧縮工程で計数したデータのサイズを順次加算した値が所定の値を越えた場合、前記第2の圧縮工程に対する特性情報の入力を停止させると共に、前記注目タイルに対するヘッダ情報の前記領域に前記注目タイルに対する前記特性情報を書き込む制御工程と
を備えることを特徴とする。
【0008】
本発明の目的を達成するために、例えば本発明の画像圧縮装置は以下の構成を備える。
【0009】
すなわち、画像を圧縮する画像圧縮装置であって、
入力された画像を所定のサイズを有する複数のタイルに分割する分割手段と、
分割された夫々のタイルに対して、タイルに含まれる各画素の属性を示す特性情報、当該特性情報の代替値をセットするための領域を有するヘッダ情報とを生成する生成手段と、
各タイルの画像データを圧縮すると共に、圧縮後のデータのサイズを計数する第1の圧縮手段と、
各タイルに対する前記特性情報を圧縮すると共に、圧縮後のデータのサイズを計数する第2の圧縮手段と、
注目タイルに対して前記第1の圧縮手段が圧縮を行い、当該注目タイルに対する特性情報に対して前記第2の圧縮手段が圧縮を行った際に、前記第1の圧縮手段が計数したデータのサイズ、及び前記第2の圧縮手段が計数したデータのサイズを順次加算した値が所定の値を越えた場合、前記第2の圧縮手段への特性情報の入力を停止させると共に、前記注目タイルに対するヘッダ情報の前記領域に前記注目タイルに対する前記特性情報を書き込む制御手段と
を備えることを特徴とする。
【0010】
【発明の実施の形態】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【0011】
<ネットワークシステムの概要説明>
図10は本実施形態に係る画像処理装置を含むネットワークシステムの概略構成を示す図である。
【0012】
2001は本実施形態に係る画像処理装置で、スキャナとプリンタから構成され、スキャナから読み込んだ画像のデータをローカルエリアネットワーク2002(以下LAN)を介して外部に出力したり、LAN2002を介して受信した画像のデータをプリンタによりプリントアウトすることができる。
【0013】
また、スキャナから読み込んだ画像のデータを不図示のFAX送信部により、PSTNまたはISDN2003を介して外部に出力したり、PSTNまたはISDN2003から受信した画像のデータをプリンタによりプリントアウトすることができる。
【0014】
2004はデータベースサーバで、画像処理装置2001が備えるスキャナにより読み込んだ画像(多値画像や2値画像)のデータをデータベースとして管理する。
【0015】
2005はデータベースサーバ2004に対するデータベースクライアントで、データベースサーバ2004に対してアクセスすることで、データベースサーバ2004が管理(保持)する画像データ閲覧したり、検索したり等することができる。
【0016】
2006は電子メールサーバである。2007は電子メールクライアントで、電子メールサーバ2006を介して他の装置から電子メールを受信したり、他の装置に対して電子メールを送信することができる。
【0017】
WWWサーバ2008はHTML文書のデータをLAN2002を介してアクセスのあった装置に対して提供するためのものである。画像処理装置2001は、このWWWサーバ2008に対してアクセスすることができ、このWWWサーバ2008から提供されるデータに従ったHTML文章をプリンタによってプリントアウトすることができる。
【0018】
ルータ2009はLAN2002をインターネット/イントラネット2010と連結させるためのものである。また同図ではこのインターネット/イントラネット2010には、前述したデータベースサーバ2004、WWWサーバ2008、電子メールサーバ2006,そして画像処理装置2001と同様の装置が夫々2011,2012,2013として接続されている。
【0019】
また画像処理装置2001は、PSTNまたはISDN2003を介して、FAX装置2014ともデータの送受信が可能になっている。また、LAN2002上にプリンタ2015も連結されており、このプリンタ2015により、画像処理装置2001がスキャナにより読み取った画像をプリントアウトすることができる。
【0020】
なお、本実施形態に係る画像処理装置を含むシステムの構成はこれに限定されるものではなく、様々な構成が考えられる。よって本実施形態に係る画像処理装置はそれら様々な構成のシステムにおいて、読み込んだ画像を他の装置に対して提供したり、他の装置から受信した画像をプリントアウトすることができる。
【0021】
また、以下用いる「画像」なる文言が意味するところは、文字情報が含まれていても良く、画像情報や文字情報が混在したものを画像と呼称する場合も以下用いる「画像」なる文言の意味するところに含まれるものとする。
【0022】
<画像処理装置の概要説明>
図9A、Bは、本実施形態に係る画像処理装置の基本構成を示す図である。コントローラユニット1001は、画像入力デバイスであるスキャナ1002や画像出力デバイスであるプリンタ1003と接続し、一方ではLAN1004や公衆回線(WAN)1005と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開の為の制御処理を行う。以下では同図を用いて、各部の詳細について説明する。
【0023】
<システム制御部2150の概要説明>
図9A、Bのシステム制御部について説明する。CPU1006は、本装置全体の制御を行うと共に、画像処理装置2001が後述の各処理を行うために、各部を制御するためのものである。本実施形態ではCPU1006は、CPU0,CPU1の2つのCPUにより構成されているものとするが、この数に限定されるものではない。これら2つのCPU1006は共通のCPUバス1007に接続され、CPUバス1007は更にシステムバスブリッジ1008に接続している。
【0024】
システムバスブリッジ1008はバススイッチであり、ここにCPUバス1007、RAMコントローラ1009、ROMコントローラ1010、IOバス1011、サブバススイッチ1012、IOバス1013、画像リングインターフェース1014、画像リングインターフェース1015が接続されている。
【0025】
サブバススイッチ1012は第2のバススイッチであり、画像DMA1016、画像DMA1017、フォント伸張部1018、ソート回路1019、ビットマップトレース回路1020が接続され、これらのDMAから出力されるメモリアクセス要求を調停し、システムバスブリッジ1008への接続を行う。
【0026】
RAM1021はCPU1006が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。そのメモリの使用に係る制御はRAMコントローラ1009によって行われる。このRAM1021として本実施形態ではダイレクトRDRAMとするが、これに限定されるものではない。
【0027】
ROM1022はブートROMであり、本装置のブートプログラムが格納されており、ROMコントローラ1010により制御される。
【0028】
画像DMA1016は画像圧縮部1023と接続しており、レジスタアクセスリング1024を介して設定された情報に基づいて画像圧縮部1023を制御し、RAM1021上の非圧縮データの読み出し、圧縮、圧縮後のデータの書き戻しを行う。本実施形態ではこの圧縮アルゴリズムをJPEGとするが、これに限定されるものではない。
【0029】
画像DMA1017は画像伸張部1025と接続しており、レジスタアクセスリング1024を介して設定された情報に基づいて画像伸張部1024を制御し、RAM1021上の圧縮データの読み出し、伸張、伸張後のデータの書き戻しを行う。本実施形態ではこの伸張アルゴリズムは上記圧縮アルゴリズムに対応させるためにJPEGとするが、上記圧縮アルゴリズムと同様にこれに限定されるものではない。
【0030】
フォント伸張部1018はLANコントローラ1026等を介し、外部より転送されるPDLデータに含まれるフォントコードに基づき、ROM1022もしくは、RAM1021内に格納された圧縮フォントデータの伸張を行う。本実施形態ではこの伸張アルゴリズムをFBEアルゴリズムとするが、これに限定されるものではない。
【0031】
ソート回路1019はPDLデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える処理を行う。ビットマップトレース回路1020は、ビットマップデータより、エッジ情報を抽出する処理を行う。
【0032】
IOバス1011は内部のIOバスの一種であり、USBインターフェース1027、汎用シリアルポート1028、インタラプトコントローラ1029、GPIOインターフェース1030、そして操作部インターフェース1031がこれに接続されている。またIOバス1011には、バスアービタ(図示せず)が含まれる。
【0033】
操作部インターフェース1031は、操作指示を入力するための機能を備えると共に表示機能を備える操作部1032のインターフェース部で、この操作部1032に表示する画像データは操作部インターフェース1031を介して操作部1032に出力される。また、この操作部1032を用いて入力された操作指示はこの操作部インターフェース1031を介してCPU1006に通知される。
【0034】
IOバス1013は、内部のIOバスの一種であり、汎用バスインターフェース1033と、LANコントローラ1026とがこれに接続されている。IOバス1013には、バスアービタ(図示せず)が含まれる。
【0035】
汎用バスインターフェース1033は、2つの同一のバスインターフェースからなり、標準IOバスをサポートするバスブリッジである。本実施形態ではこの汎用バスインターフェース1033はPCIバスとするが、これに限定されるものではない。
【0036】
HDD1036はハードディスクドライブで、システムソフトウェア、画像データ等を格納する。HDD1036はディスクコントローラ1037を介して一方のPCIバス1034(同図ではPCI1)に接続される。
【0037】
LANコントローラ1026は、MAC回路1037、PHY/PMD回路1038を介してLAN1004に接続し、情報の入出力を行う。モデム1039は公衆回線1005に接続し、情報の入出力を行う。
【0038】
<画像処理部1041の概要説明>
次に図9A、Bを用いて、画像処理部1041を構成する各部について説明する。画像リング1040は、一対の単方向接続経路の組み合わせにより構成される。画像リング1040は、画像処理部1041内で画像リングインターフェース1042、及び画像リングインターフェース1043を介してタイル伸張部1044、コマンド処理部1045、ステータス処理部1046、そしてタイル圧縮部1047と接続している。
【0039】
タイル伸張部1044は画像リングインターフェース1042以外にもタイルバス1048と接続しており、画像リング1040より入力された圧縮後の画像データを伸張し、タイルバス1048へ転送するバスブリッジである。タイルバス1048とは、1ページの画像データを所定の大きさの単位ブロック(タイルと呼ぶ)に分割し、タイル単位でデータ処理及び転送を行うバスである。
【0040】
本実施形態ではタイル伸張部1044が行う伸張処理は、圧縮された画像データが多値画像データである場合にはJPEGに従った伸張処理、圧縮された画像データが2値画像データである場合にはパックビッツに従った伸張処理を行うものとするが、圧縮側とでアルゴリズムが対応していればこれに限定されるものではない。
【0041】
タイル圧縮部1047は画像リングインターフェース1043以外にもタイルバス1048と接続しており、タイルバス1048より入力された圧縮前の画像データを圧縮し、画像リング1040に出力するバスブリッジである。
【0042】
本実施形態ではタイル圧縮部1047が行う圧縮処理は、圧縮対象の画像データが多値画像データである場合にはJPEGに従った圧縮処理、圧縮対象の画像データが2値画像データである場合にはパックビッツに従った圧縮処理を行うものとするが、上記伸張処理と同様にこれに限定されるものではない。
【0043】
コマンド処理部1045は、画像リングインターフェース1042以外にもレジスタ設定バス1049と接続しており、画像リング1040を介して入力されたCPU1006より発行されたレジスタ設定要求を、レジスタ設定バス1049に接続されるこのブロックへ書き込む。また、CPU1006より発行されたレジスタ読み出し要求に基づき、レジスタ設定バス1049を介してこのレジスタより情報を読み出し、画像リングインターフェース1043に出力する。
【0044】
ステータス処理部1046は、各画像処理ブロックの情報を監視し、CPU1006に対してインタラプトを発行するためのインタラプトパケットを生成し、画像リングインターフェース1043に出力する。
【0045】
タイルバス1048には更に、レンダリング部インターフェース1050、画像入力インターフェース1051、画像出力インターフェース1052、多値化処理部1053、2値化処理部1054、色空間変換部1055、画像回転部1056、解像度変換部1057、そして画像一時保管部1058が接続されている。また、図中のタイルバス1048はバス・コントローラも含む。
【0046】
レンダリング部インターフェース1050は、後述するレンダリング部1067により生成されたビットマップイメージを入力するインターフェースである。レンダリング部1067とレンダリング部インターフェース1050は一般的なビデオ信号線1059で接続されている。レンダリング部インターフェース1050はタイルバス1048以外にも、メモリバス1060、レジスタ設定バス1049とも接続しており、入力されたラスタ画像(ビットマップイメージ)を、レジスタ設定バス1049を介して設定された所定の方法によりタイル画像への構造変換をすると同時にクロックの同期化を行い、タイルバス1048に対して出力する。
【0047】
画像入力インターフェース1051は、スキャナ1002によって読み取られた(スキャンした)画像のデータを入力とし、タイル画像への構造変換及び、クロックレートの変更を行い、夫々のタイルの画像データを画像処理部1041に出力する。
【0048】
画像出力インターフェース1052は、タイルバス1048から出力されたタイル画像データを入力とし、ラスター画像への構造変換及び、クロックレートの変更を行い、ラスター画像をプリンタ用画像処理部1061に出力する。色空間変換部1055は、画像データの色空間の変換処理を行う。画像回転部1056は画像データの回転を行う。解像度変換部1057は画像の解像度の変換を行う。2値化処理部1054は多値(カラー及びグレースケール)画像を2値化し、2値画像に変換する。多値化処理部1053は、2値画像を多値画像に変換する。
【0049】
画像一時保管部1058は、受信した画像データを内部の記憶部に一旦記憶し、記憶し終わると直ちに、受信したデータの他ブロックへの送信を行う。
【0050】
外部バスインターフェース部1062は、画像リングインターフェース1014,1015,1042,1043、コマンド処理部1045、レジスタ設定バス1049を介し、CPU1006により発行された書き込み・読み出し要求を外部バス1063に変換出力するバスブリッジである。外部バス1063は、本実施形態ではプリンタ用画像処理部1061、スキャナ用画像処理部1064に接続されている。
【0051】
メモリ制御部1065は、メモリバス1060に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ1及び2からなる画像メモリ1066に対して、画像データの書き込み・読み出しを行い、そして必要に応じてリフレッシュ等の動作を行う。本実施形態では画像メモリ1066としてSDRAMを用いるが、これに限定されるものではない。
【0052】
スキャナ用画像処理部1065は、画像入力デバイスであるスキャナ1002によりスキャンされた画像データに対して補正処理などを行う。
【0053】
プリンタ用画像処理部1061は、プリンタ出力のための補正画像処理を行い、その結果をプリンタ1003に出力する。
【0054】
レンダリング部1067は、PDLコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【0055】
<パケットフォーマット>
次に、本実施形態で用いるデータフォーマットについて説明する。図9A、Bに示したコントローラユニット1001内では、画像データ、及びCPU1006によるコマンド、各ブロックからの割り込み情報は、夫々パケット化された形式で転送される。以下、これら夫々のパケットであるデータパケット、コマンドパケット、そしてインタラプトパケットの3種類について説明する。
【0056】
・ データパケット
図11は、本実施形態に係るデータパケットの構造を示す図である。また本実施形態では画像データを32画素×32画素を単位とする画像3002(タイル)毎に分割して扱うものとする。このタイル単位の画像に、必要なヘッダ情報3001、及び画像特性情報3003等を結合したパケットをデータパケットと呼ぶ。なお画像特性情報3003は上述の通り、画像を構成する各画素が夫々何の領域(例えば文字領域や写真領域など)であるかなどを示す属性情報である。
【0057】
先ず初めにヘッダ情報3001に含まれる各情報について説明する。パケットはヘッダ情報3001内のPcktType3004内のPacketTypeID3023の値によってデータパケット、コマンドパケット及びインタラプトパケットに区別される。本実施形態ではPacketTypeIDを3ビットで表現し、
PacketTypeID=001b 又は 101bの場合 : データパケット
PacketTypeID=010bの場合 : コマンドパケット
PacketTypeID=100bの場合 : インタラプトパケット
として各パケットを区別するものとするが、これに限定されるものではない。
【0058】
また、PcktType3004にはRepeatFlag3022が含まれており、データパケットの画像データ3002及び画像特性情報3003、ヘッダ情報3001内の所定の情報が1つ前に送信したデータパケットと同一の場合、RepeatFlag3022に1をセットする。この場合、パケットの転送はヘッダ情報3001のみ行われる。
【0059】
ChipID3005はパケットを送信するターゲットとなるチップのIDを示す。ImageType3006は画像データのタイプを示す。本実施形態ではImageType3006は8ビットで表現し、上位2ビットを用いて画像データ3002のタイプ(即ち、画像データ3002を含む画像全体のタイプ)を以下のように規定する。
【0060】
ImageType=00bの場合 : 各画素を1ビットで表す
ImageType=01bの場合 : 各画素を8ビット1成分で表す
ImageType=10bの場合 : 各画素を8ビット3成分、計24ビットで表す
ImageType=11bの場合 : 各画素を8ビット4成分、計32ビットで表す
PageID3007はデータパケットが含まれるページを示しており、JobID3008はソフトウェアで管理するためのJob IDを格納する。
【0061】
データパケットのページ上の並び順はY方向のTile座標3009(Yn)とX方向のTile座標3010(Xn)の組み合わせで、YnXnで表される。
【0062】
Process Instruction3011は左詰で8bit毎に処理順に設定し、各処理Unitは処理後Process Instructionを左に8BitShiftする。Process Instruction3011はUnitID3024とMode3025の組が8組格納されている。UnitID3024は画像処理部1041の各処理Unitを指定し、Mode3025は各処理Unitでの動作Modeを指定する。これにより、1つのパケットは8つのUnitまで連続して処理することができる。
【0063】
PacketByteLength3012はパケットのトータルバイト数を示す。ImageDataByteLengh3015は画像データのバイト数、ZDataByteLength3016は画像特性情報のバイト数を表し、ImageDataOffset3013、ZDataOffset3014はそれぞれのデータに対するパケットの先頭からのOffsetの値を表している。
【0064】
データパケットでは、パケットが持つ画像データ及び画像特性情報が圧縮されている場合と非圧縮の場合が存在する。本実施形態では圧縮アルゴリズムとして、画像データが多値カラー(多値グレースケールを含む)の場合はJPEGを、2値の場合及び画像特性情報はパックビッツを採用した例を示す。
【0065】
上記方式により画像データ及び画像特性情報が圧縮されている場合と非圧縮の場合との区別は、それぞれCompressFlag3017内のImageData3026及びZdata3027が1の場合は圧縮データ、0の場合は非圧縮データであることを表す。
【0066】
CompressFlag3017内にはJPEGにより圧縮処理を行う際に使用した量子化テーブルの種類を格納するQ−TableID3028が用意されており、量子化テーブルが複数ある場合、データの圧縮及び伸長時はこの値を参照して使用する量子化テーブルの切替を行う。SourceID3018は画像データ及び画像特性情報が生成されたソースを示す。
【0067】
Ztype3020は画像特性情報における有効bit幅を示し、Ztype3020で示したbit以外の画像特性情報は無効情報とする。尚、Ztype3020が0である場合は入力された画像特性情報全てが無効であることを表す。Zdummy3033は後述のCompressFailフラグが立った場合に、画像特性情報の代替値がセットされるための領域である。
【0068】
ThumbnailData3021はデータパケットの画像データを代表する値(以下、サムネール値と呼ぶ)を格納する。本実施形態ではthumbnailData3021に最大4つのサムネール値を格納することができる構成となっている。
【0069】
Misc3019は上記の各情報以外に必要となる情報を格納する。本実施形態ではChar−flag3029及びQ−TableSel3030が用意されている。Char−flag3029にはデータパケットが属する領域信号が格納される。Q−TableSel3030にはJPEG方式による圧縮及び伸長時に使用する量子化テーブルを変更するための情報が格納される。Char−flag、Q−TableSelともにパケット内の画像特性情報で示される、所定の画像特性を有する画素数をカウントし、そのカウント結果によりflagがon/offされる。CompressFail3032は、圧縮後のデータ量が所定の値を超えていた場合、セットされるフラグである。
【0070】
・ コマンド・パケット
本Packet Formatはレジスタ設定バス2109へのアクセスを行うためのものである。本パケットを用いることにより、CPU1006より画像メモリ1066へのアクセスも可能である。
【0071】
図12は、本実施形態に係るコマンドパケットの構造を示す図である。ChipID4004にはコマンドパケットの送信先となる画像処理部1041を表すIDが格納される。
【0072】
PageID4007、JobID4008はソフトウェアで管理するためのPage IDとJob IDを格納する。Packet ID4009は1次元で表されるData PacketのX−coordinateのみを使用する。パケットバイトレングス4010は128Byte固定である。
【0073】
パケットデータ部4002には、アドレス4011とデータ4012の組を1つのコマンドとして、最大12個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプはCmdType4005で示され、コマンドの数はCmdnum4006で示される。
【0074】
・ インタラプトパケット
本PacketFormatは画像処理部1041からCPU1006への割り込みを通知するためのものである。ステータス処理部1046はインタラプトパケットを送信すると、次に送信の許可がされるまではインタラプト・パケットを送信してはならない。
【0075】
図13は、本実施形態に係るインタラプトパケットの構造を示す図である。パケットバイトレングス5006は128Byte固定である。パケットデータ部5002には、画像処理部1041の各内部モジュールのステータス情報5007が格納されている。ステータス処理部1046は画像処理部1041内の各モジュールのステータス情報を集め、一括してシステム制御部2150に送ることができる。
【0076】
ChipID5004にはインタラプトパケットの送信先となるシステム制御部2150を表すIDが、また、IntChipID5005にはインタラプトパケットの送信元となる画像処理部1041を表すIDが格納される。
【0077】
・ PacketTable/ChainTable
前述のパケット・データはメモリに格納される際には、PacketTableという形態で管理される。図14はパケットデータがRAM1021に格納されている状態を示す図である。Packet Table6001の構成要素は次の通りで、それぞれTableの値に0を5bit付加すると、パケットの先頭アドレス6002、パケットのByte Length6005となる。
【0078】
Packet Address Pointer (27bit) + 5b00000 = Packet先頭Address
Packet Length (11bit) + 5b00000 = PacketのByte Length
Packet Table6001は常に走査方向に並んでおり、Yn/Xn=000/000、000/001、000/002、、、という順で並んでいる。このPacket Table6001のEntryは一意にひとつのTileを示す。また、Yn/Xmaxの次のEntryはYn+1/X0となる。
【0079】
ヘッダ情報3001内のRepeatFlag3002がセットされているパケットが入力される場合は、そのパケットはMemory上には書かず、Packet TableのEntryに1つめのEntryと同じPacket Address Pointer、Packet Lengthを格納する。1つのPacket Dataを2つのTable Entryが指すかたちになる。この場合、2つめのTable EntryのRepeat Flag6003がSetされる。
【0080】
Packetはメモリ中に離散的に格納することも可能である。その場合は、ChainTableを使って、Packetを管理する。また、PacketTableはパケット・データを途中で分断することも許容されている。
【0081】
Packetが複数に分断された場合は、Divide Flag6004をSetし、そのPacketの先頭部分が入っているChain BlockのChain Table番号6006をSetする。
【0082】
なお、Packet Table6001とChain Table6010は分割されないものとする。Chain Table6010のEntryはChain Block Address6011とChain Block Length6012からなっており、Tableの最後のEntryにはAddress、Length共に0を格納しておく。
【0083】
<スキャナ用画像処理部1064の概要説明>
次に、スキャナ用画像処理部1064について詳細に説明する。図15はスキャナ用画像処理部1064の機能構成を示す図である。
【0084】
スキャナより入力された画像(R、G、B)は入力I/F部7001で画像処理ぶ1064のクロック同期に従って周波数変換される。スキャナが3ラインセンサーだった場合、RGB間でのライン間遅延が存在するので、その場合はライン間遅延補正部7002で各色のライン間の遅延が補正される。副走査オフセット補正部7003では、光学系の色収差などによる副走査方向のオフセットの補正を行う。
【0085】
画像特性判定部7004では、原稿の種類をもとに画像データのエッジ検出等を行って、入力される画像の文字の有無や色の有無等を判定し、RGBの画像データとともに、特性情報を出力する。
【0086】
ガンマ補正部7005及びダイレクトマッピング処理部7006では、スキャナの入力特性に従って、画像データを補正し出力する。例えば、ガンマ補正部7005では各色毎にダイナミックレンジを補正し、ダイレクトマッピング処理部7006では、スキャナの色味を補正する。
【0087】
ダイレクトマッピング処理部7006より出力された画像はMTF補正部7007と特定画像判定部7012に入力される。MTF補正部7007では主走査方向の光学系の開口数や色収差の補正を行う演算処理を施す。特定画像判定部7012では、有価証券類など法律上で印刷することを禁じられている画像データをパターンマッチングなどにより判別する。
【0088】
空間フィルター処理部7008は入力画像に対し、エッジ強調やスムージングなどの空間フィルター処理を実施する。フィルター処理は、前述の画像特性判定部7012の判定結果に応じて、適応的に行われる。例えば入力画像が文字と判定された場合は、エッジが強調され、写真などの連続階調画像と判定された場合は、スムージングされる。
【0089】
ヒストグラム算出部7009では入力された画像のヒストグラムを求める他、有彩のRGB入力画像を無彩色のND画像に変換する。トリミング/マスキング部7010は入力画像データの枠消しやブック枠消しといった、印字画像領域の加工を行う。出力I/F部7011ではスキャナ用画像処理クロックからシステム・クロック同期へ画像データ及び特性情報の周波数変換を行って出力する。
【0090】
<タイル圧縮部1047>
次に、タイル圧縮部1047について詳細に説明する。図2はタイル圧縮部1047の機能構成を示すブロック図である。図2において、201はタイルバスインターフェイス部であり、タイルバス1048とハンドシェイクを行い、タイルバス1048から入力されるヘッダ情報、画像データ及び画像特性情報を取得し、後段に接続された各処理ブロックへ夫々のデータを出力する。
【0091】
また、タイルバスインターフェイス部201ではタイルバス1048から送られてくるヘッダ情報の解析を行い、ヘッダ情報に矛盾がある場合は後述のレジスタ設定部206に矛盾内容に相当する割り込み信号を出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0092】
一方、ヘッダ情報に矛盾がない場合は、タイルバスインターフェース部201は後段に接続されたヘッダ情報生成部202に対してヘッダ情報を出力した後、タイルバス1048から画像データと画像特性情報を取得して、ヘッダ情報のImageType3006に従って第1圧縮処理部203(本実施形態ではJPEG方式の圧縮を行う)及び第2圧縮処理部204(本実施形態ではパックビッツ方式の圧縮を行う)夫々に画像データ又は画像特性情報を出力する。
【0093】
具体的には、ImageType3006の上位2ビットが1ビットの画像データを表す00bの場合には、第1圧縮処理部203は使用せずに画像データを第2圧縮処理部204へ出力する。
【0094】
また、ImageTypeの上位2ビットが00b以外の場合、画像データを第1圧縮処理部203へ出力するとともに画像特性情報を第2圧縮処理部204へ出力する。ただし、Ztype3020が0の場合は入力された画像特性情報は無効であるため、画像特性情報を第2圧縮処理部204に出力せず、第2圧縮処理部204による圧縮処理は行わない。
【0095】
202はヘッダ情報生成部であり、第1圧縮処理部203及び第2圧縮処理部204において画像データ及び画像特性情報の圧縮処理を行っている間、ヘッダ情報を生成する。また、ヘッダ情報生成部202は格納したヘッダ情報の中から圧縮処理に必要な情報を第1圧縮処理部及び第2圧縮処理部に対して出力する。
【0096】
203は第1圧縮処理部であり、上述の通りJPEG方式による圧縮処理を行う。第1圧縮処理部203は画像データが複数bit構成であった場合に画像データの圧縮処理を行う。また、第1圧縮処理部203では入力された画像データを1タイル分格納するためのバッファを持ち、次のパケットの画像データが入力されるまで直前に処理したパケットの画像データを保持しておくことで、タイルバスインターフェイス部201から入力された画像データとバッファ内に格納された画像データの比較を行う。比較結果は後述の画像リング出力部205に送られ、RepeatFlag3022を生成する際に参照される。
【0097】
尚、第1圧縮処理部203において圧縮処理を行っている際に動作の異常を検知した場合、第1圧縮処理部203は異常動作の内容に相当する割り込み信号をレジスタ設定部206に対して出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0098】
204は第2圧縮処理部であり、上述の通り情報ロスのない圧縮方式であるパックビッツ方式による圧縮処理を行う。第2圧縮処理部204では入力されたパケットの画像データが1bit構成であった場合は画像データを、または画像特性情報が存在する(Ztype3020が0でない)場合は、画像特性情報をパックビッツ方式によって圧縮する。
【0099】
また第2圧縮処理部204でも、入力された画像特性情報を1パケット分格納するためのバッファを持ち、直前に入力された1bit画像データ又は画像特性情報を保持しておくことにより、タイルバスインターフェイス部201から入力された画像又は画像特性情報とバッファ内に格納されたデータの比較を行う。比較結果は後述の画像リング出力部205に送られ、RepeatFlag3022を生成する際に参照される。
【0100】
尚、第2圧縮処理部204において圧縮処理を行っている際に動作の異常を検知した場合、第2圧縮処理部204は異常動作の内容に相当する割り込み信号をレジスタ設定部206に対して出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0101】
205は画像リング出力部であり、ヘッダ情報生成部202、第1圧縮処理部203及び第2圧縮処理部204から処理情報及び画像データ、画像特性情報を取得し、ヘッダ情報に対して所定の値を設定してから図11に示すデータパケットを生成して画像リングインターフェイス1043に出力する。
【0102】
206はタイル圧縮部1047内部の処理に関して設定を行うためのレジスタ設定部である。タイル圧縮部1047に所定の圧縮処理を行わせるためには、圧縮率、Jpeg用のQ−Table、後述のデータカウント処理に用いるデータリミット値等の各パラメータをレジスタ設定部206に設定する必要がある。これらの設定はコマンドパケットを用いてシステム制御部2150から画像処理部1041のコマンド処理部1045に送り、コマンド処理部1045からレジスタ設定バス1049を介してタイル圧縮部1047に送られることにより行う。レジスタ設定部206に設定された値は、第1圧縮処理部203及び第2圧縮処理部204に送られ、両圧縮処理部はそれらの設定値を参照することにより決められた処理を行う。
【0103】
尚、レジスタ設定部206へはコマンドパケットを用いて値を設定するだけでなく、コマンドパケットを用いてレジスタ設定部206が保持している設定値をシステム制御部2150へ出力することも可能である。
【0104】
さらに、レジスタ設定部206はタイルバスインターフェース部201、第1圧縮処理部203、第2圧縮処理部204から入力された割り込み信号に対応するレジスタを持ち、いずれかのブロックから割り込み信号が入力されると対応するレジスタの値をセットした後に、ステータス処理部1046に対して割り込みが発生したことを知らせるインタラプト信号及びいずれのブロックで割り込みが発生したかを表すステータス信号を出力する。
【0105】
207はレジスタ設定バスインターフェイス部であり、レジスタ設定バス1049からタイル圧縮部1047に入力されたアドレス及び設定値を、レジスタ設定部206が受け取れるフォーマットに変換して送る。
【0106】
なお、レジスタ設定バスインターフェイス部207はレジスタ設定バス1049からレジスタ設定値を受け取るだけでなく、レジスタ設定バス1049が示したアドレスに対応する設定値をレジスタ設定部206から読み出してレジスタ設定バス1049に出力することも可能である。
【0107】
208はデータ量カウント部であり、第1圧縮処理部203及び第2圧縮処理部204から画像リング出力部205に送られる画像データおよび画像特性情報のデータ量をカウントし、所定の値を超えたら、レジスタ設定部206に割り込み信号をヘッダ情報生成部202にフラグ信号を出力する。
【0108】
<第1圧縮処理部203>
図1は第1圧縮処理部203の機能構成を示すブロック図である。本実施形態では扱う画像の各画素が8ビット構成、24ビット構成又は32ビット構成である場合、つまり画像データが第1圧縮処理部203において圧縮処理される場合について説明する。
【0109】
図1において、101はタイルバスインターフェイス部201から送られてきた画像データを格納するためのデータバッファであり、所定量のデータが送られると後段に接続されたJPEG圧縮部110に対して所定の順序に従って画像データを出力する。ここで、データバッファ101にはヘッダ情報生成部202からヘッダ情報に含まれるImageType3006が入力されており、JPEG圧縮部110に出力する画像データの順序はImageType3006に従ったものとなる。
【0110】
以下にImageType3006とJPEG圧縮部110に入力される画像データの順序との関係について説明する。図3はImageType3006の上位2ビットが01b、すなわち1画素を1成分8ビットで表している1タイル分の画像を示す図で、同図の画像は32画素×32画素の計1024画素で構成されている。
【0111】
同図の画像をJPEG圧縮部110へ出力するために、まずこの画像をJPEG圧縮処理の処理単位である8画素×8画素の64画素を単位として、16のブロック(同図には夫々のブロックに固有の番号を付けている)に分割する。そしてブロック毎にJPEG圧縮部110へ出力する。尚、図3では1画素の画像データを細線で、JPEG圧縮処理単位に分割したブロックを太線で示し、JPEG圧縮部110へ送られる順番に0から15までの番号を付している。
【0112】
図4は図3におけるブロック0に含まれる画素群を拡大した図である。ブロック内には64画素の画像データがあり、各画素に対しては主走査方向、副走査方向に対してそれぞれ0から7まで番号をつけて表している。
【0113】
ブロック0内において、JPEG圧縮部110へ出力される順序は、矢印で示したように左上の(0,0)の画素データ始めとして主走査方向に(0,1)→(0,2)→…・→(0,7)の順番に行われる。(0,7)の画素データの次は副走査方向に1ライン移動して(1.0)→(1,1)→…→(1,7)と進み、これを繰り返して右下の(7,7)の画像データが出力されるとブロックの画像データの出力を終了する。ブロック0を構成する各画素のデータが出力されると、次はブロック1の左上の(0,8)から同じ順序で画像データが出力される。
【0114】
図5はImageType3006の上位2ビットが10b、すなわち1画素を8ビット3成分、計24ビットで表している1タイル分の画像を示す図である。尚、図5では各画素は表さずにJPEG圧縮処理単位であるブロック単位で表わし、各画像データが画素ごとではなく成分ごとに成分1、成分2及び成分3に分割して示している。
【0115】
図6は図5で示した3つの成分からなる画像データをJPEG圧縮部110に出力する順番を示した図である。尚、図6で示された各ブロック内において、各画素のデータが出力される順序は図4に示したものと同様である。本実施形態では、まず始めにデータバッファ101からブロック0の成分1の画像データが出力される。ブロック0の成分1の画像データが全て出力されると、次にブロック0の成分2の画像データ、続いてブロック0の成分3の画像データが出力され、これによってブロック0を構成する全ての成分の画像データが出力される。
【0116】
ブロック0の画像データが全て出力されると、次はブロック1の成分1の画像データが、続いてブロック1の成分2→ブロック1の成分3→ブロック2の成分1→・・・・と続き、最後にブロック15の成分1→ブロック15の成分2→ブロック15の成分3の画像データを出力し終わったところで1タイル分の画像データの出力を終了する。
【0117】
尚、ImageType3006の上位2ビットが11b、すなわち1画素を8ビット4成分、計32ビットで表している1タイル分の画像データがタイルバスインターフェース部201から入力された場合も図5及び図6と同様に、各ブロックの各成分の画像データを成分1→成分2→成分3→成分4の順番に出力する。
【0118】
このようにして、本実施形態ではJPEG圧縮部110によって圧縮処理される順序は、1タイルの画像データを主走査方向8画素×副走査方向8画素のブロックに分割し、ブロック単位で圧縮が行われる。また、各ブロックに画像データが複数(複数の成分を有する)ある場合は、ブロック内の各成分の画像データを圧縮し、全ての成分に対して圧縮を行ってから次のブロックの圧縮を行う。
【0119】
図1において110はJPEG圧縮部であり、本実施形態ではJPEG圧縮部110において画像データのJPEG方式による圧縮を行っている。尚、JPEG圧縮部110は更に以下説明する3つの部分からなる。
【0120】
102はDCT変換部であり、データバッファ101から64個のデータ(1ブロック分のデータ)が入力されると、入力されたデータに対して離散コサイン変換を行い周波数成分に変換する。また、このとき離散コサイン変換によって生成されたDC成分値をラッチ信号とともに後述のサムネール生成部107に出力する。離散コサイン変換は64個のデータが入力される度に行われ、その都度サムネール生成部107にはラッチ信号とDC成分値が出力される。また、DCT変換部102はDCT変換の演算中にエラーが発生すると、DCT変換部102からレジスタ設定部206に対してエラー割り込み信号を出力する。
【0121】
103は量子化部であり、DCT変換部102から出力された周波数成分に対して所定の量子化値を用いて量子化を行って量子化データを生成する。尚量子化値は後述する量子化テーブルから入力され、使用される量子化値はヘッダ情報生成部202からヘッダ情報を解析することにより決定される。量子化部103は量子化を行った結果が所定の値以外の値になると、レジスタ設定部206に対してエラー割り込み信号を出力する。
【0122】
104はハフマン符号化部であり、量子化部103から出力された量子化データに対して所定の符号化を行い符号化データを生成し、データバッファ105に出力する。ハフマン符号化部104は符号化が不可能なデータが入力されるとレジスタ設定部206に対してエラー割り込み信号を出力する。
【0123】
105はハフマン符号化部104で符号化した符号化データを格納するためのデータバッファであり、ハフマン符号化部104から1タイル分の符号化データを取得すると、バッファ105内に格納した符号化データの容量をData Byte Length1として画像リング出力部205に出力する。また、画像リング出力部205の要求に従ってバッファ内に格納した符号化データを画像リング出力部205に対して出力する。
【0124】
106はデータ比較部であり、タイルバスインターフェイス部201から入力された画像データとデータバッファ101に格納された画像データを比較する。タイルバスインターフェイス部201から送られた画像データはデータバッファ101に格納されると同時に、既に格納されていた画像データとの比較をデータ比較部106で行う。
【0125】
データバッファ101にはタイルバスインターフェース部201から入力されるタイルの1つ前に第1圧縮処理部203に送られた画像データが格納されているため、上記動作によりデータ比較部106ではタイルバスインターフェイス部201から送られてくる画像データと、上記1つ前のタイルの画像データとの比較が行われる。
【0126】
データ比較部106により1タイル分の画像データの比較が終了すると、データ比較部106から画像リング出力部206に対して比較結果Compare result 1が出力される。
【0127】
107はサムネール生成部であり、DCT変換部102から出力されるラッチ信号に同期してDC成分値を取得し、演算及び正規化を行うことによってタイルごとにサムネール値を生成して画像リング出力部205に出力する。尚、サムネール生成部107にはヘッダ情報生成部202からImageType3006が入力され、サムネール生成部107はImageTypeを参照することによりDCT変換部102から送られてくるDC成分値の順序を検知して成分ごとにサムネール値を生成する。
【0128】
生成されたサムネール値は画像リング出力部205に出力され、画像リング出力部205においてヘッダ情報生成部202から取得したヘッダ情報のthumbnail Data3021の部分に所定のフォーマットで格納される。その後、第1圧縮処理部203で圧縮された画像データ及び第2圧縮処理部204で圧縮された画像特性情報とともにデータパケットとして画像リングインターフェース1043に出力される。
【0129】
108は量子化テーブルであり、量子化部103において量子化を行うための量子化値のテーブルを格納している。本実施形態における量子化テーブルには複数の量子化テーブルが格納されており、後述の量子化テーブル選択部109から入力される選択信号に応じた量子化テーブルの量子化値が量子化部103に出力される。
【0130】
109は量子化テーブル選択部であり、量子化テーブル109に対して量子化テーブル選択信号を出力することによって量子化テーブル109に格納されている複数のテーブルの中から所望のテーブルを選択することができる。
【0131】
量子化テーブル選択部109にはヘッダ情報生成部202からImageType3006、Mode3025、Char−flag3029、Q−TableSel3030が入力され、量子化テーブル選択部109はこれらのヘッダ情報から使用する量子化テーブルを決定する。使用する量子化テーブルが決まると、量子化テーブル選択部109は決めた量子化テーブルを選択するように量子化テーブル選択信号を量子化テーブル109に出力するとともに、選択した量子化テーブルを表すQ−Table IDを画像リング出力部205に出力する。
【0132】
<第2圧縮処理部204>
図7は第2圧縮処理部204の機能構成を示すブロック図である。図7において、701はタイルバスインターフェイス部201から送られてくる画像特性情報を格納するためのデータバッファであり、所定量のデータが送られると後段に接続されたパックビッツ圧縮部702に対して所定の順序に従ってデータを出力する。
【0133】
702はパックビッツ圧縮部であり、データバッファ701から出力された画像特性情報に対してパックビッツ方式の圧縮を行う。
【0134】
703はパックビッツ圧縮部702で圧縮した圧縮データを格納するためのデータバッファであり、パックビッツ圧縮部702から1タイル分の圧縮データを取得すると、バッファ703内に格納したデータの容量をData Byte Length2として画像リング出力部205に対して出力する。
【0135】
また、画像リング出力部205の要求に従ってバッファ703内に格納した圧縮データを画像リング出力部205に対して出力する。
【0136】
704はデータ比較部であり、タイルバスインターフェイス部201から入力された画像データとデータバッファ701に格納されたデータを比較する。タイルバスインターフェイス部201から送られたデータはデータバッファ701に格納されると同時に、データバッファ701に格納されていたデータとの比較をデータ比較部704で行う。
【0137】
データバッファ701にはタイルバスインターフェース部201から入力されるタイルの1つ前に第2の圧縮処理部204に送られた画像特性情報が格納されているため、上記動作によりデータ比較部106ではタイルバスインターフェイス部201から送られてくる画像特性情報と、第2の圧縮処理部において1つ前のタイルの画像特性情報の比較が行われる。
【0138】
データ比較部704により1タイル分の画像特性情報の比較が終了すると、データ比較部704から画像リング出力部206に対して比較結果Compare result2 が出力される。
【0139】
<データ量カウントによる画像特性情報の制御>
図8は、タイル圧縮部1047が行うデータカウント処理のフローチャートである。
【0140】
まず、タイル圧縮部1047において圧縮処理が開始されるとデータカウンタ値(DataCount)は0にセットされる(ステップS801)。次に第1圧縮処理部203及び第2圧縮処理部204は夫々が行った圧縮処理が完了すると、データ量カウント部208に夫々の圧縮データ量Data Byte Length1及びData Byte Length2を出力するので、データ量カウント分208は夫々をデータカウンタ値DataCountに加算する(ステップS802)。次にデータカウンタ値DataCountと予め設定されたリミット値とを比較する(ステップS803)。
【0141】
そしてデータカウンタ値DataCountがリミット値を超えていると判断された場合は、処理をステップS804に進め、データバッファ703からの画像特性情報の送信を停止する(ステップS804)。
【0142】
また、ヘッダ情報生成部202とレジスタ設定部206にCompressFail信号を出力し、データ量がオーバしたことを通知する(ステップS805)。レジスタ設定部はCompressFail信号を受けるとステータス処理部1046へ割り込み信号を出力する。さらにデータ量カウント部208はData Byte Length2を0に設定し、画像リング出力部205に出力する(ステップS806)。
【0143】
そしてヘッダ情報生成部202では、第2圧縮処理部204のデータバッファ701に格納された各画素に対する画像特性情報において先頭の画素に対応する画像特性情報の値を参照し、その値をZdummy3032にセットする(ステップS807)。
【0144】
一方、ステップS803においてデータカウンタ値がリミット値を超えていないと判断された場合は、データバッファ703に保存されている画像特性情報およびData Byte Length2をそのまま画像リング出力部205に出力する(ステップS808)。
【0145】
データ量カウント部208は、データバッファ105に保存されている画像データおよびData Byte Length1をそのまま画像リング出力部205に送信する(ステップS809)。
【0146】
最後に1ページの処理が終了したか判断し(ステップS810)、終了していない場合は処理をステップS802に戻し、前述の処理を繰り返す。1ページの処理が終了したと判断された場合は、データカウント処理を終了する。
【0147】
以上のように、圧縮処理を行った際に画像データが一定量を超えないように制御して、再読み込みの発生を抑えるとともに、欠落した画像特性情報をヘッダ情報に書き込んで補うことで画像劣化の極力少ない画像処理を実施することができる。
【0148】
<プリンタ用画像処理部1061の概要説明>
次に、プリンタ用画像処理部1061の詳細について説明する。図16はプリンタ用画像処理部1061の機能構成を示すブロック図である。図9A、Bに示した画像処理部1041より出力された画像データRGB(又はCMYK)はプリンタ画像処理部8001,8002に夫々入力される。夫々のプリンタ画像処理部は内部に夫々2色分の画像処理部を備えており、各色毎にプリンタエンジンを備えるタンデムエンジンプリンタ1003からの画像要求に応じて、それぞれのブロックが各プリンタエンジンに同期して動作できるようになっている。
【0149】
図17はプリンタ画像処理部8001,8002の機能構成を示すブロック図である。内部は大きくは2系統に分かれており、2色分のプリンタエンジンに対応した画像データを生成する。9001,9002は入力I/F部であり、入力される画像データをプリンタ用画像処理クロック同期に従って周波数変換する。
【0150】
9003,9004は下地除去及びND変換部であり、画像特性情報に応じて入力画像データの背景色を飛ばしたり、RGBの有彩色データを無彩色のNDデータに変換する。9005,9006は輝度濃度変換部であり、画像特性情報に応じて入力データの輝度濃度変換を行う。9007,9008はダイレクトマッピング処理部であり、画像特性情報に応じてRGB入力データをプリンタエンジンのC/M/Y/Kの各色成分への変換を行う。
【0151】
9009,9010は色バランス補正部であり、画像特性情報に応じて出力画像の色味の微調整などを行う。9013〜9018は出力ガンマ補正部であり、出力される画像のダイナミックレンジやトーンカーブの補正を行う。本実施形態では1色につき、A〜Cの3種類のガンマ補正を同時に行って出力する。
【0152】
9019〜9024は中間調処理部であり、画像データを量子化して出力画像の階調変換を行っている。本実施形態ではプリンタ用画像処理部への入力8ビットデータを4ビットデータに変換する。中間調処理方法としては、一般にスクリーン処理や誤差拡散処理などが広く知られているが、本実施形態では各色とも任意の3種類の中間調処理を行うようになっている。
【0153】
9025,9026は中間調処理選択部であり、前述の3種類の中間調処理部で処理された出力画像を画像特性情報に応じて最適な処理結果を選択するようになっている。9027,9028はスムージング処理部であり、文字エッジ等のがたつきを軽減するパターンマッチング処理を行っている。
【0154】
9029,9030は特定情報付加部であり、出力画像データ中に出力機器を特定できるような画像情報を重畳する処理を行う。9031は出力選択部であり、前述の2系統の画像処理部で処理されたデータをどちらのプリンタエンジンに出力するかを切り替えられるようになっている。9032、9034はドラム間遅延制御部、9033,9035はドラム間遅延メモリである。
【0155】
前述の入力I/F部から出力選択部までは、図1の画像処理部1041から出力された画像データが同時刻に4つの画像処理部で処理されている。ドラム間遅延制御部9032,9034では画像処理部1041から出力され、プリンタ用画像処理部1061で処理された画像データを、プリンタエンジンからの出力要求があるまでドラム間遅延メモリ9033,9035に蓄積する。こうすることによって、各プリンタエンジンに同期して画像データを出力することができる。
【0156】
9036,9037は出力I/F部であり、プリンタI/Fクロックに同期して画像を出力するための周波数変換を行う。
以上説明したように、本実施形態は、送信される画像データ量が一定値を超えないように、画像特性情報の送信データ量を制御することにより、再度画像入力をやり直す必要がないようにする。また、その際に画像特性情報の代替情報を補うことにより、画像劣化の少ない処理が実施できる。
【0157】
なお、本実施形態ではタンデムエンジンのプリンタに対応するプリンタ用画像処理部について説明しているが、これに限定されるものではなく、シングルエンジン用の画像処理部の構成でも構わないし、1つの画像処理部に4色分の画像処理ブロックを備えていても構わない。
【0158】
[その他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0159】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0160】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0161】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0162】
【発明の効果】
以上の説明により、本発明によって、送信される画像データ量が一定値を超えないように、画像特性情報の送信データ量を制御することにより、再度画像入力をやり直す必要がないようにすることができる。また、その際に画像特性情報の代替情報を補うことにより、画像劣化の少ない処理が実施できる。
【図面の簡単な説明】
【図1】第1圧縮処理部203の機能構成を示すブロック図である。
【図2】タイル圧縮部1047の機能構成を示すブロック図である。
【図3】ImageType3006の上位2ビットが01b、すなわち1画素を1成分8ビットで表している1タイル分の画像を示す図である。
【図4】図3におけるブロック0に含まれる画素群を拡大した図である。
【図5】ImageType3006の上位2ビットが10b、すなわち1画素を8ビット3成分、計24ビットで表している1タイル分の画像を示す図である。
【図6】図5で示した3つの成分からなる画像データをJPEG圧縮部110に出力する順番を示した図である。
【図7】第2圧縮処理部204の機能構成を示すブロック図である。
【図8】タイル圧縮部1047が行うデータカウント処理のフローチャートである。
【図9A】本発明の実施形態に係る画像処理装置の基本構成を示す図である。
【図9B】本発明の実施形態に係る画像処理装置の基本構成を示す図である。
【図10】本発明の実施形態に係る画像処理装置を含むネットワークシステムの概略構成を示す図である。
【図11】本発明の実施形態に係るデータパケットの構造を示す図である。
【図12】本発明の実施形態に係るコマンドパケットの構造を示す図である。
【図13】本発明の実施形態に係るインタラプトパケットの構造を示す図である。
【図14】パケットデータがRAM1021に格納されている状態を示す図である。
【図15】スキャナ用画像処理部1064の機能構成を示す図である。
【図16】プリンタ用画像処理部1061の機能構成を示すブロック図である。
【図17】プリンタ画像処理部8001,8002の機能構成を示すブロック図である。
【発明の属する技術分野】
本発明は、画像を圧縮する技術に関するものである。
【0002】
【従来の技術】
従来の画像を圧縮する画像処理装置は、画像入力部から読み込んだ画像データを圧縮する画像データ圧縮部、及びこの画像データ圧縮部により圧縮された画像データを記憶するデータ記憶部を備えるものであった。
【0003】
【発明が解決しようとする課題】
しかし従来例では、上記画像データ圧縮部によって圧縮され、上記データ記憶部に蓄積される圧縮画像データのサイズが上記データ記憶部のメモリサイズを超えてしまった場合、上記画像入力部に再度画像を入力し、前回よりも高い圧縮率で圧縮可能な圧縮パラメータを上記画像データ圧縮部に設定し直し、そして設定し直した圧縮パラメータを用いて再度入力した画像データに対して圧縮を行わなければいけなかった。
【0004】
また他にも例えば、画像データ圧縮部が圧縮した画像データのサイズ(データ量)をカウントし、カウントした値が一定量を超えた場合には、画像特性情報の送信を停止することで、データ記憶部に蓄積する画像データのサイズがデータ記憶部のメモリサイズを超えないようにし、画像データの再入力を回避するようにしていた。この場合、途中から画像特性情報(画像を構成する各画素が夫々何の領域(例えば文字領域や写真領域など)であるかなどを示す属性情報)が欠落してしまうので、装置内部での画像処理やプリント時の補正画像処理が最適に行われず、所望の画像処理結果が得られない可能性があった。
【0005】
本発明は以上の問題に鑑みてなされたものであり、再度画像を入力したりしないように、圧縮後のデータのサイズの制御を行うと共に、圧縮後の画像の劣化を抑制する技術を提供することを目的とする。
【0006】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の画像圧縮方法は以下の構成を備える。
【0007】
すなわち、画像を圧縮する画像圧縮方法であって、
入力された画像を所定のサイズを有する複数のタイルに分割する分割工程と、
分割された夫々のタイルに対して、タイルに含まれる各画素の属性を示す特性情報、当該特性情報の代替値をセットするための領域を有するヘッダ情報とを生成する生成工程と、
各タイルの画像データを圧縮すると共に、圧縮後のデータのサイズを計数する第1の圧縮工程と、
各タイルに対する前記特性情報を圧縮すると共に、圧縮後のデータのサイズを計数する第2の圧縮工程と、
注目タイルに対して前記第1の圧縮工程で圧縮を行い、当該注目タイルに対する特性情報に対して前記第2の圧縮工程が圧縮を行った際に、前記第1の圧縮工程で計数したデータのサイズ、及び前記第2の圧縮工程で計数したデータのサイズを順次加算した値が所定の値を越えた場合、前記第2の圧縮工程に対する特性情報の入力を停止させると共に、前記注目タイルに対するヘッダ情報の前記領域に前記注目タイルに対する前記特性情報を書き込む制御工程と
を備えることを特徴とする。
【0008】
本発明の目的を達成するために、例えば本発明の画像圧縮装置は以下の構成を備える。
【0009】
すなわち、画像を圧縮する画像圧縮装置であって、
入力された画像を所定のサイズを有する複数のタイルに分割する分割手段と、
分割された夫々のタイルに対して、タイルに含まれる各画素の属性を示す特性情報、当該特性情報の代替値をセットするための領域を有するヘッダ情報とを生成する生成手段と、
各タイルの画像データを圧縮すると共に、圧縮後のデータのサイズを計数する第1の圧縮手段と、
各タイルに対する前記特性情報を圧縮すると共に、圧縮後のデータのサイズを計数する第2の圧縮手段と、
注目タイルに対して前記第1の圧縮手段が圧縮を行い、当該注目タイルに対する特性情報に対して前記第2の圧縮手段が圧縮を行った際に、前記第1の圧縮手段が計数したデータのサイズ、及び前記第2の圧縮手段が計数したデータのサイズを順次加算した値が所定の値を越えた場合、前記第2の圧縮手段への特性情報の入力を停止させると共に、前記注目タイルに対するヘッダ情報の前記領域に前記注目タイルに対する前記特性情報を書き込む制御手段と
を備えることを特徴とする。
【0010】
【発明の実施の形態】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【0011】
<ネットワークシステムの概要説明>
図10は本実施形態に係る画像処理装置を含むネットワークシステムの概略構成を示す図である。
【0012】
2001は本実施形態に係る画像処理装置で、スキャナとプリンタから構成され、スキャナから読み込んだ画像のデータをローカルエリアネットワーク2002(以下LAN)を介して外部に出力したり、LAN2002を介して受信した画像のデータをプリンタによりプリントアウトすることができる。
【0013】
また、スキャナから読み込んだ画像のデータを不図示のFAX送信部により、PSTNまたはISDN2003を介して外部に出力したり、PSTNまたはISDN2003から受信した画像のデータをプリンタによりプリントアウトすることができる。
【0014】
2004はデータベースサーバで、画像処理装置2001が備えるスキャナにより読み込んだ画像(多値画像や2値画像)のデータをデータベースとして管理する。
【0015】
2005はデータベースサーバ2004に対するデータベースクライアントで、データベースサーバ2004に対してアクセスすることで、データベースサーバ2004が管理(保持)する画像データ閲覧したり、検索したり等することができる。
【0016】
2006は電子メールサーバである。2007は電子メールクライアントで、電子メールサーバ2006を介して他の装置から電子メールを受信したり、他の装置に対して電子メールを送信することができる。
【0017】
WWWサーバ2008はHTML文書のデータをLAN2002を介してアクセスのあった装置に対して提供するためのものである。画像処理装置2001は、このWWWサーバ2008に対してアクセスすることができ、このWWWサーバ2008から提供されるデータに従ったHTML文章をプリンタによってプリントアウトすることができる。
【0018】
ルータ2009はLAN2002をインターネット/イントラネット2010と連結させるためのものである。また同図ではこのインターネット/イントラネット2010には、前述したデータベースサーバ2004、WWWサーバ2008、電子メールサーバ2006,そして画像処理装置2001と同様の装置が夫々2011,2012,2013として接続されている。
【0019】
また画像処理装置2001は、PSTNまたはISDN2003を介して、FAX装置2014ともデータの送受信が可能になっている。また、LAN2002上にプリンタ2015も連結されており、このプリンタ2015により、画像処理装置2001がスキャナにより読み取った画像をプリントアウトすることができる。
【0020】
なお、本実施形態に係る画像処理装置を含むシステムの構成はこれに限定されるものではなく、様々な構成が考えられる。よって本実施形態に係る画像処理装置はそれら様々な構成のシステムにおいて、読み込んだ画像を他の装置に対して提供したり、他の装置から受信した画像をプリントアウトすることができる。
【0021】
また、以下用いる「画像」なる文言が意味するところは、文字情報が含まれていても良く、画像情報や文字情報が混在したものを画像と呼称する場合も以下用いる「画像」なる文言の意味するところに含まれるものとする。
【0022】
<画像処理装置の概要説明>
図9A、Bは、本実施形態に係る画像処理装置の基本構成を示す図である。コントローラユニット1001は、画像入力デバイスであるスキャナ1002や画像出力デバイスであるプリンタ1003と接続し、一方ではLAN1004や公衆回線(WAN)1005と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開の為の制御処理を行う。以下では同図を用いて、各部の詳細について説明する。
【0023】
<システム制御部2150の概要説明>
図9A、Bのシステム制御部について説明する。CPU1006は、本装置全体の制御を行うと共に、画像処理装置2001が後述の各処理を行うために、各部を制御するためのものである。本実施形態ではCPU1006は、CPU0,CPU1の2つのCPUにより構成されているものとするが、この数に限定されるものではない。これら2つのCPU1006は共通のCPUバス1007に接続され、CPUバス1007は更にシステムバスブリッジ1008に接続している。
【0024】
システムバスブリッジ1008はバススイッチであり、ここにCPUバス1007、RAMコントローラ1009、ROMコントローラ1010、IOバス1011、サブバススイッチ1012、IOバス1013、画像リングインターフェース1014、画像リングインターフェース1015が接続されている。
【0025】
サブバススイッチ1012は第2のバススイッチであり、画像DMA1016、画像DMA1017、フォント伸張部1018、ソート回路1019、ビットマップトレース回路1020が接続され、これらのDMAから出力されるメモリアクセス要求を調停し、システムバスブリッジ1008への接続を行う。
【0026】
RAM1021はCPU1006が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。そのメモリの使用に係る制御はRAMコントローラ1009によって行われる。このRAM1021として本実施形態ではダイレクトRDRAMとするが、これに限定されるものではない。
【0027】
ROM1022はブートROMであり、本装置のブートプログラムが格納されており、ROMコントローラ1010により制御される。
【0028】
画像DMA1016は画像圧縮部1023と接続しており、レジスタアクセスリング1024を介して設定された情報に基づいて画像圧縮部1023を制御し、RAM1021上の非圧縮データの読み出し、圧縮、圧縮後のデータの書き戻しを行う。本実施形態ではこの圧縮アルゴリズムをJPEGとするが、これに限定されるものではない。
【0029】
画像DMA1017は画像伸張部1025と接続しており、レジスタアクセスリング1024を介して設定された情報に基づいて画像伸張部1024を制御し、RAM1021上の圧縮データの読み出し、伸張、伸張後のデータの書き戻しを行う。本実施形態ではこの伸張アルゴリズムは上記圧縮アルゴリズムに対応させるためにJPEGとするが、上記圧縮アルゴリズムと同様にこれに限定されるものではない。
【0030】
フォント伸張部1018はLANコントローラ1026等を介し、外部より転送されるPDLデータに含まれるフォントコードに基づき、ROM1022もしくは、RAM1021内に格納された圧縮フォントデータの伸張を行う。本実施形態ではこの伸張アルゴリズムをFBEアルゴリズムとするが、これに限定されるものではない。
【0031】
ソート回路1019はPDLデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える処理を行う。ビットマップトレース回路1020は、ビットマップデータより、エッジ情報を抽出する処理を行う。
【0032】
IOバス1011は内部のIOバスの一種であり、USBインターフェース1027、汎用シリアルポート1028、インタラプトコントローラ1029、GPIOインターフェース1030、そして操作部インターフェース1031がこれに接続されている。またIOバス1011には、バスアービタ(図示せず)が含まれる。
【0033】
操作部インターフェース1031は、操作指示を入力するための機能を備えると共に表示機能を備える操作部1032のインターフェース部で、この操作部1032に表示する画像データは操作部インターフェース1031を介して操作部1032に出力される。また、この操作部1032を用いて入力された操作指示はこの操作部インターフェース1031を介してCPU1006に通知される。
【0034】
IOバス1013は、内部のIOバスの一種であり、汎用バスインターフェース1033と、LANコントローラ1026とがこれに接続されている。IOバス1013には、バスアービタ(図示せず)が含まれる。
【0035】
汎用バスインターフェース1033は、2つの同一のバスインターフェースからなり、標準IOバスをサポートするバスブリッジである。本実施形態ではこの汎用バスインターフェース1033はPCIバスとするが、これに限定されるものではない。
【0036】
HDD1036はハードディスクドライブで、システムソフトウェア、画像データ等を格納する。HDD1036はディスクコントローラ1037を介して一方のPCIバス1034(同図ではPCI1)に接続される。
【0037】
LANコントローラ1026は、MAC回路1037、PHY/PMD回路1038を介してLAN1004に接続し、情報の入出力を行う。モデム1039は公衆回線1005に接続し、情報の入出力を行う。
【0038】
<画像処理部1041の概要説明>
次に図9A、Bを用いて、画像処理部1041を構成する各部について説明する。画像リング1040は、一対の単方向接続経路の組み合わせにより構成される。画像リング1040は、画像処理部1041内で画像リングインターフェース1042、及び画像リングインターフェース1043を介してタイル伸張部1044、コマンド処理部1045、ステータス処理部1046、そしてタイル圧縮部1047と接続している。
【0039】
タイル伸張部1044は画像リングインターフェース1042以外にもタイルバス1048と接続しており、画像リング1040より入力された圧縮後の画像データを伸張し、タイルバス1048へ転送するバスブリッジである。タイルバス1048とは、1ページの画像データを所定の大きさの単位ブロック(タイルと呼ぶ)に分割し、タイル単位でデータ処理及び転送を行うバスである。
【0040】
本実施形態ではタイル伸張部1044が行う伸張処理は、圧縮された画像データが多値画像データである場合にはJPEGに従った伸張処理、圧縮された画像データが2値画像データである場合にはパックビッツに従った伸張処理を行うものとするが、圧縮側とでアルゴリズムが対応していればこれに限定されるものではない。
【0041】
タイル圧縮部1047は画像リングインターフェース1043以外にもタイルバス1048と接続しており、タイルバス1048より入力された圧縮前の画像データを圧縮し、画像リング1040に出力するバスブリッジである。
【0042】
本実施形態ではタイル圧縮部1047が行う圧縮処理は、圧縮対象の画像データが多値画像データである場合にはJPEGに従った圧縮処理、圧縮対象の画像データが2値画像データである場合にはパックビッツに従った圧縮処理を行うものとするが、上記伸張処理と同様にこれに限定されるものではない。
【0043】
コマンド処理部1045は、画像リングインターフェース1042以外にもレジスタ設定バス1049と接続しており、画像リング1040を介して入力されたCPU1006より発行されたレジスタ設定要求を、レジスタ設定バス1049に接続されるこのブロックへ書き込む。また、CPU1006より発行されたレジスタ読み出し要求に基づき、レジスタ設定バス1049を介してこのレジスタより情報を読み出し、画像リングインターフェース1043に出力する。
【0044】
ステータス処理部1046は、各画像処理ブロックの情報を監視し、CPU1006に対してインタラプトを発行するためのインタラプトパケットを生成し、画像リングインターフェース1043に出力する。
【0045】
タイルバス1048には更に、レンダリング部インターフェース1050、画像入力インターフェース1051、画像出力インターフェース1052、多値化処理部1053、2値化処理部1054、色空間変換部1055、画像回転部1056、解像度変換部1057、そして画像一時保管部1058が接続されている。また、図中のタイルバス1048はバス・コントローラも含む。
【0046】
レンダリング部インターフェース1050は、後述するレンダリング部1067により生成されたビットマップイメージを入力するインターフェースである。レンダリング部1067とレンダリング部インターフェース1050は一般的なビデオ信号線1059で接続されている。レンダリング部インターフェース1050はタイルバス1048以外にも、メモリバス1060、レジスタ設定バス1049とも接続しており、入力されたラスタ画像(ビットマップイメージ)を、レジスタ設定バス1049を介して設定された所定の方法によりタイル画像への構造変換をすると同時にクロックの同期化を行い、タイルバス1048に対して出力する。
【0047】
画像入力インターフェース1051は、スキャナ1002によって読み取られた(スキャンした)画像のデータを入力とし、タイル画像への構造変換及び、クロックレートの変更を行い、夫々のタイルの画像データを画像処理部1041に出力する。
【0048】
画像出力インターフェース1052は、タイルバス1048から出力されたタイル画像データを入力とし、ラスター画像への構造変換及び、クロックレートの変更を行い、ラスター画像をプリンタ用画像処理部1061に出力する。色空間変換部1055は、画像データの色空間の変換処理を行う。画像回転部1056は画像データの回転を行う。解像度変換部1057は画像の解像度の変換を行う。2値化処理部1054は多値(カラー及びグレースケール)画像を2値化し、2値画像に変換する。多値化処理部1053は、2値画像を多値画像に変換する。
【0049】
画像一時保管部1058は、受信した画像データを内部の記憶部に一旦記憶し、記憶し終わると直ちに、受信したデータの他ブロックへの送信を行う。
【0050】
外部バスインターフェース部1062は、画像リングインターフェース1014,1015,1042,1043、コマンド処理部1045、レジスタ設定バス1049を介し、CPU1006により発行された書き込み・読み出し要求を外部バス1063に変換出力するバスブリッジである。外部バス1063は、本実施形態ではプリンタ用画像処理部1061、スキャナ用画像処理部1064に接続されている。
【0051】
メモリ制御部1065は、メモリバス1060に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ1及び2からなる画像メモリ1066に対して、画像データの書き込み・読み出しを行い、そして必要に応じてリフレッシュ等の動作を行う。本実施形態では画像メモリ1066としてSDRAMを用いるが、これに限定されるものではない。
【0052】
スキャナ用画像処理部1065は、画像入力デバイスであるスキャナ1002によりスキャンされた画像データに対して補正処理などを行う。
【0053】
プリンタ用画像処理部1061は、プリンタ出力のための補正画像処理を行い、その結果をプリンタ1003に出力する。
【0054】
レンダリング部1067は、PDLコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【0055】
<パケットフォーマット>
次に、本実施形態で用いるデータフォーマットについて説明する。図9A、Bに示したコントローラユニット1001内では、画像データ、及びCPU1006によるコマンド、各ブロックからの割り込み情報は、夫々パケット化された形式で転送される。以下、これら夫々のパケットであるデータパケット、コマンドパケット、そしてインタラプトパケットの3種類について説明する。
【0056】
・ データパケット
図11は、本実施形態に係るデータパケットの構造を示す図である。また本実施形態では画像データを32画素×32画素を単位とする画像3002(タイル)毎に分割して扱うものとする。このタイル単位の画像に、必要なヘッダ情報3001、及び画像特性情報3003等を結合したパケットをデータパケットと呼ぶ。なお画像特性情報3003は上述の通り、画像を構成する各画素が夫々何の領域(例えば文字領域や写真領域など)であるかなどを示す属性情報である。
【0057】
先ず初めにヘッダ情報3001に含まれる各情報について説明する。パケットはヘッダ情報3001内のPcktType3004内のPacketTypeID3023の値によってデータパケット、コマンドパケット及びインタラプトパケットに区別される。本実施形態ではPacketTypeIDを3ビットで表現し、
PacketTypeID=001b 又は 101bの場合 : データパケット
PacketTypeID=010bの場合 : コマンドパケット
PacketTypeID=100bの場合 : インタラプトパケット
として各パケットを区別するものとするが、これに限定されるものではない。
【0058】
また、PcktType3004にはRepeatFlag3022が含まれており、データパケットの画像データ3002及び画像特性情報3003、ヘッダ情報3001内の所定の情報が1つ前に送信したデータパケットと同一の場合、RepeatFlag3022に1をセットする。この場合、パケットの転送はヘッダ情報3001のみ行われる。
【0059】
ChipID3005はパケットを送信するターゲットとなるチップのIDを示す。ImageType3006は画像データのタイプを示す。本実施形態ではImageType3006は8ビットで表現し、上位2ビットを用いて画像データ3002のタイプ(即ち、画像データ3002を含む画像全体のタイプ)を以下のように規定する。
【0060】
ImageType=00bの場合 : 各画素を1ビットで表す
ImageType=01bの場合 : 各画素を8ビット1成分で表す
ImageType=10bの場合 : 各画素を8ビット3成分、計24ビットで表す
ImageType=11bの場合 : 各画素を8ビット4成分、計32ビットで表す
PageID3007はデータパケットが含まれるページを示しており、JobID3008はソフトウェアで管理するためのJob IDを格納する。
【0061】
データパケットのページ上の並び順はY方向のTile座標3009(Yn)とX方向のTile座標3010(Xn)の組み合わせで、YnXnで表される。
【0062】
Process Instruction3011は左詰で8bit毎に処理順に設定し、各処理Unitは処理後Process Instructionを左に8BitShiftする。Process Instruction3011はUnitID3024とMode3025の組が8組格納されている。UnitID3024は画像処理部1041の各処理Unitを指定し、Mode3025は各処理Unitでの動作Modeを指定する。これにより、1つのパケットは8つのUnitまで連続して処理することができる。
【0063】
PacketByteLength3012はパケットのトータルバイト数を示す。ImageDataByteLengh3015は画像データのバイト数、ZDataByteLength3016は画像特性情報のバイト数を表し、ImageDataOffset3013、ZDataOffset3014はそれぞれのデータに対するパケットの先頭からのOffsetの値を表している。
【0064】
データパケットでは、パケットが持つ画像データ及び画像特性情報が圧縮されている場合と非圧縮の場合が存在する。本実施形態では圧縮アルゴリズムとして、画像データが多値カラー(多値グレースケールを含む)の場合はJPEGを、2値の場合及び画像特性情報はパックビッツを採用した例を示す。
【0065】
上記方式により画像データ及び画像特性情報が圧縮されている場合と非圧縮の場合との区別は、それぞれCompressFlag3017内のImageData3026及びZdata3027が1の場合は圧縮データ、0の場合は非圧縮データであることを表す。
【0066】
CompressFlag3017内にはJPEGにより圧縮処理を行う際に使用した量子化テーブルの種類を格納するQ−TableID3028が用意されており、量子化テーブルが複数ある場合、データの圧縮及び伸長時はこの値を参照して使用する量子化テーブルの切替を行う。SourceID3018は画像データ及び画像特性情報が生成されたソースを示す。
【0067】
Ztype3020は画像特性情報における有効bit幅を示し、Ztype3020で示したbit以外の画像特性情報は無効情報とする。尚、Ztype3020が0である場合は入力された画像特性情報全てが無効であることを表す。Zdummy3033は後述のCompressFailフラグが立った場合に、画像特性情報の代替値がセットされるための領域である。
【0068】
ThumbnailData3021はデータパケットの画像データを代表する値(以下、サムネール値と呼ぶ)を格納する。本実施形態ではthumbnailData3021に最大4つのサムネール値を格納することができる構成となっている。
【0069】
Misc3019は上記の各情報以外に必要となる情報を格納する。本実施形態ではChar−flag3029及びQ−TableSel3030が用意されている。Char−flag3029にはデータパケットが属する領域信号が格納される。Q−TableSel3030にはJPEG方式による圧縮及び伸長時に使用する量子化テーブルを変更するための情報が格納される。Char−flag、Q−TableSelともにパケット内の画像特性情報で示される、所定の画像特性を有する画素数をカウントし、そのカウント結果によりflagがon/offされる。CompressFail3032は、圧縮後のデータ量が所定の値を超えていた場合、セットされるフラグである。
【0070】
・ コマンド・パケット
本Packet Formatはレジスタ設定バス2109へのアクセスを行うためのものである。本パケットを用いることにより、CPU1006より画像メモリ1066へのアクセスも可能である。
【0071】
図12は、本実施形態に係るコマンドパケットの構造を示す図である。ChipID4004にはコマンドパケットの送信先となる画像処理部1041を表すIDが格納される。
【0072】
PageID4007、JobID4008はソフトウェアで管理するためのPage IDとJob IDを格納する。Packet ID4009は1次元で表されるData PacketのX−coordinateのみを使用する。パケットバイトレングス4010は128Byte固定である。
【0073】
パケットデータ部4002には、アドレス4011とデータ4012の組を1つのコマンドとして、最大12個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプはCmdType4005で示され、コマンドの数はCmdnum4006で示される。
【0074】
・ インタラプトパケット
本PacketFormatは画像処理部1041からCPU1006への割り込みを通知するためのものである。ステータス処理部1046はインタラプトパケットを送信すると、次に送信の許可がされるまではインタラプト・パケットを送信してはならない。
【0075】
図13は、本実施形態に係るインタラプトパケットの構造を示す図である。パケットバイトレングス5006は128Byte固定である。パケットデータ部5002には、画像処理部1041の各内部モジュールのステータス情報5007が格納されている。ステータス処理部1046は画像処理部1041内の各モジュールのステータス情報を集め、一括してシステム制御部2150に送ることができる。
【0076】
ChipID5004にはインタラプトパケットの送信先となるシステム制御部2150を表すIDが、また、IntChipID5005にはインタラプトパケットの送信元となる画像処理部1041を表すIDが格納される。
【0077】
・ PacketTable/ChainTable
前述のパケット・データはメモリに格納される際には、PacketTableという形態で管理される。図14はパケットデータがRAM1021に格納されている状態を示す図である。Packet Table6001の構成要素は次の通りで、それぞれTableの値に0を5bit付加すると、パケットの先頭アドレス6002、パケットのByte Length6005となる。
【0078】
Packet Address Pointer (27bit) + 5b00000 = Packet先頭Address
Packet Length (11bit) + 5b00000 = PacketのByte Length
Packet Table6001は常に走査方向に並んでおり、Yn/Xn=000/000、000/001、000/002、、、という順で並んでいる。このPacket Table6001のEntryは一意にひとつのTileを示す。また、Yn/Xmaxの次のEntryはYn+1/X0となる。
【0079】
ヘッダ情報3001内のRepeatFlag3002がセットされているパケットが入力される場合は、そのパケットはMemory上には書かず、Packet TableのEntryに1つめのEntryと同じPacket Address Pointer、Packet Lengthを格納する。1つのPacket Dataを2つのTable Entryが指すかたちになる。この場合、2つめのTable EntryのRepeat Flag6003がSetされる。
【0080】
Packetはメモリ中に離散的に格納することも可能である。その場合は、ChainTableを使って、Packetを管理する。また、PacketTableはパケット・データを途中で分断することも許容されている。
【0081】
Packetが複数に分断された場合は、Divide Flag6004をSetし、そのPacketの先頭部分が入っているChain BlockのChain Table番号6006をSetする。
【0082】
なお、Packet Table6001とChain Table6010は分割されないものとする。Chain Table6010のEntryはChain Block Address6011とChain Block Length6012からなっており、Tableの最後のEntryにはAddress、Length共に0を格納しておく。
【0083】
<スキャナ用画像処理部1064の概要説明>
次に、スキャナ用画像処理部1064について詳細に説明する。図15はスキャナ用画像処理部1064の機能構成を示す図である。
【0084】
スキャナより入力された画像(R、G、B)は入力I/F部7001で画像処理ぶ1064のクロック同期に従って周波数変換される。スキャナが3ラインセンサーだった場合、RGB間でのライン間遅延が存在するので、その場合はライン間遅延補正部7002で各色のライン間の遅延が補正される。副走査オフセット補正部7003では、光学系の色収差などによる副走査方向のオフセットの補正を行う。
【0085】
画像特性判定部7004では、原稿の種類をもとに画像データのエッジ検出等を行って、入力される画像の文字の有無や色の有無等を判定し、RGBの画像データとともに、特性情報を出力する。
【0086】
ガンマ補正部7005及びダイレクトマッピング処理部7006では、スキャナの入力特性に従って、画像データを補正し出力する。例えば、ガンマ補正部7005では各色毎にダイナミックレンジを補正し、ダイレクトマッピング処理部7006では、スキャナの色味を補正する。
【0087】
ダイレクトマッピング処理部7006より出力された画像はMTF補正部7007と特定画像判定部7012に入力される。MTF補正部7007では主走査方向の光学系の開口数や色収差の補正を行う演算処理を施す。特定画像判定部7012では、有価証券類など法律上で印刷することを禁じられている画像データをパターンマッチングなどにより判別する。
【0088】
空間フィルター処理部7008は入力画像に対し、エッジ強調やスムージングなどの空間フィルター処理を実施する。フィルター処理は、前述の画像特性判定部7012の判定結果に応じて、適応的に行われる。例えば入力画像が文字と判定された場合は、エッジが強調され、写真などの連続階調画像と判定された場合は、スムージングされる。
【0089】
ヒストグラム算出部7009では入力された画像のヒストグラムを求める他、有彩のRGB入力画像を無彩色のND画像に変換する。トリミング/マスキング部7010は入力画像データの枠消しやブック枠消しといった、印字画像領域の加工を行う。出力I/F部7011ではスキャナ用画像処理クロックからシステム・クロック同期へ画像データ及び特性情報の周波数変換を行って出力する。
【0090】
<タイル圧縮部1047>
次に、タイル圧縮部1047について詳細に説明する。図2はタイル圧縮部1047の機能構成を示すブロック図である。図2において、201はタイルバスインターフェイス部であり、タイルバス1048とハンドシェイクを行い、タイルバス1048から入力されるヘッダ情報、画像データ及び画像特性情報を取得し、後段に接続された各処理ブロックへ夫々のデータを出力する。
【0091】
また、タイルバスインターフェイス部201ではタイルバス1048から送られてくるヘッダ情報の解析を行い、ヘッダ情報に矛盾がある場合は後述のレジスタ設定部206に矛盾内容に相当する割り込み信号を出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0092】
一方、ヘッダ情報に矛盾がない場合は、タイルバスインターフェース部201は後段に接続されたヘッダ情報生成部202に対してヘッダ情報を出力した後、タイルバス1048から画像データと画像特性情報を取得して、ヘッダ情報のImageType3006に従って第1圧縮処理部203(本実施形態ではJPEG方式の圧縮を行う)及び第2圧縮処理部204(本実施形態ではパックビッツ方式の圧縮を行う)夫々に画像データ又は画像特性情報を出力する。
【0093】
具体的には、ImageType3006の上位2ビットが1ビットの画像データを表す00bの場合には、第1圧縮処理部203は使用せずに画像データを第2圧縮処理部204へ出力する。
【0094】
また、ImageTypeの上位2ビットが00b以外の場合、画像データを第1圧縮処理部203へ出力するとともに画像特性情報を第2圧縮処理部204へ出力する。ただし、Ztype3020が0の場合は入力された画像特性情報は無効であるため、画像特性情報を第2圧縮処理部204に出力せず、第2圧縮処理部204による圧縮処理は行わない。
【0095】
202はヘッダ情報生成部であり、第1圧縮処理部203及び第2圧縮処理部204において画像データ及び画像特性情報の圧縮処理を行っている間、ヘッダ情報を生成する。また、ヘッダ情報生成部202は格納したヘッダ情報の中から圧縮処理に必要な情報を第1圧縮処理部及び第2圧縮処理部に対して出力する。
【0096】
203は第1圧縮処理部であり、上述の通りJPEG方式による圧縮処理を行う。第1圧縮処理部203は画像データが複数bit構成であった場合に画像データの圧縮処理を行う。また、第1圧縮処理部203では入力された画像データを1タイル分格納するためのバッファを持ち、次のパケットの画像データが入力されるまで直前に処理したパケットの画像データを保持しておくことで、タイルバスインターフェイス部201から入力された画像データとバッファ内に格納された画像データの比較を行う。比較結果は後述の画像リング出力部205に送られ、RepeatFlag3022を生成する際に参照される。
【0097】
尚、第1圧縮処理部203において圧縮処理を行っている際に動作の異常を検知した場合、第1圧縮処理部203は異常動作の内容に相当する割り込み信号をレジスタ設定部206に対して出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0098】
204は第2圧縮処理部であり、上述の通り情報ロスのない圧縮方式であるパックビッツ方式による圧縮処理を行う。第2圧縮処理部204では入力されたパケットの画像データが1bit構成であった場合は画像データを、または画像特性情報が存在する(Ztype3020が0でない)場合は、画像特性情報をパックビッツ方式によって圧縮する。
【0099】
また第2圧縮処理部204でも、入力された画像特性情報を1パケット分格納するためのバッファを持ち、直前に入力された1bit画像データ又は画像特性情報を保持しておくことにより、タイルバスインターフェイス部201から入力された画像又は画像特性情報とバッファ内に格納されたデータの比較を行う。比較結果は後述の画像リング出力部205に送られ、RepeatFlag3022を生成する際に参照される。
【0100】
尚、第2圧縮処理部204において圧縮処理を行っている際に動作の異常を検知した場合、第2圧縮処理部204は異常動作の内容に相当する割り込み信号をレジスタ設定部206に対して出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0101】
205は画像リング出力部であり、ヘッダ情報生成部202、第1圧縮処理部203及び第2圧縮処理部204から処理情報及び画像データ、画像特性情報を取得し、ヘッダ情報に対して所定の値を設定してから図11に示すデータパケットを生成して画像リングインターフェイス1043に出力する。
【0102】
206はタイル圧縮部1047内部の処理に関して設定を行うためのレジスタ設定部である。タイル圧縮部1047に所定の圧縮処理を行わせるためには、圧縮率、Jpeg用のQ−Table、後述のデータカウント処理に用いるデータリミット値等の各パラメータをレジスタ設定部206に設定する必要がある。これらの設定はコマンドパケットを用いてシステム制御部2150から画像処理部1041のコマンド処理部1045に送り、コマンド処理部1045からレジスタ設定バス1049を介してタイル圧縮部1047に送られることにより行う。レジスタ設定部206に設定された値は、第1圧縮処理部203及び第2圧縮処理部204に送られ、両圧縮処理部はそれらの設定値を参照することにより決められた処理を行う。
【0103】
尚、レジスタ設定部206へはコマンドパケットを用いて値を設定するだけでなく、コマンドパケットを用いてレジスタ設定部206が保持している設定値をシステム制御部2150へ出力することも可能である。
【0104】
さらに、レジスタ設定部206はタイルバスインターフェース部201、第1圧縮処理部203、第2圧縮処理部204から入力された割り込み信号に対応するレジスタを持ち、いずれかのブロックから割り込み信号が入力されると対応するレジスタの値をセットした後に、ステータス処理部1046に対して割り込みが発生したことを知らせるインタラプト信号及びいずれのブロックで割り込みが発生したかを表すステータス信号を出力する。
【0105】
207はレジスタ設定バスインターフェイス部であり、レジスタ設定バス1049からタイル圧縮部1047に入力されたアドレス及び設定値を、レジスタ設定部206が受け取れるフォーマットに変換して送る。
【0106】
なお、レジスタ設定バスインターフェイス部207はレジスタ設定バス1049からレジスタ設定値を受け取るだけでなく、レジスタ設定バス1049が示したアドレスに対応する設定値をレジスタ設定部206から読み出してレジスタ設定バス1049に出力することも可能である。
【0107】
208はデータ量カウント部であり、第1圧縮処理部203及び第2圧縮処理部204から画像リング出力部205に送られる画像データおよび画像特性情報のデータ量をカウントし、所定の値を超えたら、レジスタ設定部206に割り込み信号をヘッダ情報生成部202にフラグ信号を出力する。
【0108】
<第1圧縮処理部203>
図1は第1圧縮処理部203の機能構成を示すブロック図である。本実施形態では扱う画像の各画素が8ビット構成、24ビット構成又は32ビット構成である場合、つまり画像データが第1圧縮処理部203において圧縮処理される場合について説明する。
【0109】
図1において、101はタイルバスインターフェイス部201から送られてきた画像データを格納するためのデータバッファであり、所定量のデータが送られると後段に接続されたJPEG圧縮部110に対して所定の順序に従って画像データを出力する。ここで、データバッファ101にはヘッダ情報生成部202からヘッダ情報に含まれるImageType3006が入力されており、JPEG圧縮部110に出力する画像データの順序はImageType3006に従ったものとなる。
【0110】
以下にImageType3006とJPEG圧縮部110に入力される画像データの順序との関係について説明する。図3はImageType3006の上位2ビットが01b、すなわち1画素を1成分8ビットで表している1タイル分の画像を示す図で、同図の画像は32画素×32画素の計1024画素で構成されている。
【0111】
同図の画像をJPEG圧縮部110へ出力するために、まずこの画像をJPEG圧縮処理の処理単位である8画素×8画素の64画素を単位として、16のブロック(同図には夫々のブロックに固有の番号を付けている)に分割する。そしてブロック毎にJPEG圧縮部110へ出力する。尚、図3では1画素の画像データを細線で、JPEG圧縮処理単位に分割したブロックを太線で示し、JPEG圧縮部110へ送られる順番に0から15までの番号を付している。
【0112】
図4は図3におけるブロック0に含まれる画素群を拡大した図である。ブロック内には64画素の画像データがあり、各画素に対しては主走査方向、副走査方向に対してそれぞれ0から7まで番号をつけて表している。
【0113】
ブロック0内において、JPEG圧縮部110へ出力される順序は、矢印で示したように左上の(0,0)の画素データ始めとして主走査方向に(0,1)→(0,2)→…・→(0,7)の順番に行われる。(0,7)の画素データの次は副走査方向に1ライン移動して(1.0)→(1,1)→…→(1,7)と進み、これを繰り返して右下の(7,7)の画像データが出力されるとブロックの画像データの出力を終了する。ブロック0を構成する各画素のデータが出力されると、次はブロック1の左上の(0,8)から同じ順序で画像データが出力される。
【0114】
図5はImageType3006の上位2ビットが10b、すなわち1画素を8ビット3成分、計24ビットで表している1タイル分の画像を示す図である。尚、図5では各画素は表さずにJPEG圧縮処理単位であるブロック単位で表わし、各画像データが画素ごとではなく成分ごとに成分1、成分2及び成分3に分割して示している。
【0115】
図6は図5で示した3つの成分からなる画像データをJPEG圧縮部110に出力する順番を示した図である。尚、図6で示された各ブロック内において、各画素のデータが出力される順序は図4に示したものと同様である。本実施形態では、まず始めにデータバッファ101からブロック0の成分1の画像データが出力される。ブロック0の成分1の画像データが全て出力されると、次にブロック0の成分2の画像データ、続いてブロック0の成分3の画像データが出力され、これによってブロック0を構成する全ての成分の画像データが出力される。
【0116】
ブロック0の画像データが全て出力されると、次はブロック1の成分1の画像データが、続いてブロック1の成分2→ブロック1の成分3→ブロック2の成分1→・・・・と続き、最後にブロック15の成分1→ブロック15の成分2→ブロック15の成分3の画像データを出力し終わったところで1タイル分の画像データの出力を終了する。
【0117】
尚、ImageType3006の上位2ビットが11b、すなわち1画素を8ビット4成分、計32ビットで表している1タイル分の画像データがタイルバスインターフェース部201から入力された場合も図5及び図6と同様に、各ブロックの各成分の画像データを成分1→成分2→成分3→成分4の順番に出力する。
【0118】
このようにして、本実施形態ではJPEG圧縮部110によって圧縮処理される順序は、1タイルの画像データを主走査方向8画素×副走査方向8画素のブロックに分割し、ブロック単位で圧縮が行われる。また、各ブロックに画像データが複数(複数の成分を有する)ある場合は、ブロック内の各成分の画像データを圧縮し、全ての成分に対して圧縮を行ってから次のブロックの圧縮を行う。
【0119】
図1において110はJPEG圧縮部であり、本実施形態ではJPEG圧縮部110において画像データのJPEG方式による圧縮を行っている。尚、JPEG圧縮部110は更に以下説明する3つの部分からなる。
【0120】
102はDCT変換部であり、データバッファ101から64個のデータ(1ブロック分のデータ)が入力されると、入力されたデータに対して離散コサイン変換を行い周波数成分に変換する。また、このとき離散コサイン変換によって生成されたDC成分値をラッチ信号とともに後述のサムネール生成部107に出力する。離散コサイン変換は64個のデータが入力される度に行われ、その都度サムネール生成部107にはラッチ信号とDC成分値が出力される。また、DCT変換部102はDCT変換の演算中にエラーが発生すると、DCT変換部102からレジスタ設定部206に対してエラー割り込み信号を出力する。
【0121】
103は量子化部であり、DCT変換部102から出力された周波数成分に対して所定の量子化値を用いて量子化を行って量子化データを生成する。尚量子化値は後述する量子化テーブルから入力され、使用される量子化値はヘッダ情報生成部202からヘッダ情報を解析することにより決定される。量子化部103は量子化を行った結果が所定の値以外の値になると、レジスタ設定部206に対してエラー割り込み信号を出力する。
【0122】
104はハフマン符号化部であり、量子化部103から出力された量子化データに対して所定の符号化を行い符号化データを生成し、データバッファ105に出力する。ハフマン符号化部104は符号化が不可能なデータが入力されるとレジスタ設定部206に対してエラー割り込み信号を出力する。
【0123】
105はハフマン符号化部104で符号化した符号化データを格納するためのデータバッファであり、ハフマン符号化部104から1タイル分の符号化データを取得すると、バッファ105内に格納した符号化データの容量をData Byte Length1として画像リング出力部205に出力する。また、画像リング出力部205の要求に従ってバッファ内に格納した符号化データを画像リング出力部205に対して出力する。
【0124】
106はデータ比較部であり、タイルバスインターフェイス部201から入力された画像データとデータバッファ101に格納された画像データを比較する。タイルバスインターフェイス部201から送られた画像データはデータバッファ101に格納されると同時に、既に格納されていた画像データとの比較をデータ比較部106で行う。
【0125】
データバッファ101にはタイルバスインターフェース部201から入力されるタイルの1つ前に第1圧縮処理部203に送られた画像データが格納されているため、上記動作によりデータ比較部106ではタイルバスインターフェイス部201から送られてくる画像データと、上記1つ前のタイルの画像データとの比較が行われる。
【0126】
データ比較部106により1タイル分の画像データの比較が終了すると、データ比較部106から画像リング出力部206に対して比較結果Compare result 1が出力される。
【0127】
107はサムネール生成部であり、DCT変換部102から出力されるラッチ信号に同期してDC成分値を取得し、演算及び正規化を行うことによってタイルごとにサムネール値を生成して画像リング出力部205に出力する。尚、サムネール生成部107にはヘッダ情報生成部202からImageType3006が入力され、サムネール生成部107はImageTypeを参照することによりDCT変換部102から送られてくるDC成分値の順序を検知して成分ごとにサムネール値を生成する。
【0128】
生成されたサムネール値は画像リング出力部205に出力され、画像リング出力部205においてヘッダ情報生成部202から取得したヘッダ情報のthumbnail Data3021の部分に所定のフォーマットで格納される。その後、第1圧縮処理部203で圧縮された画像データ及び第2圧縮処理部204で圧縮された画像特性情報とともにデータパケットとして画像リングインターフェース1043に出力される。
【0129】
108は量子化テーブルであり、量子化部103において量子化を行うための量子化値のテーブルを格納している。本実施形態における量子化テーブルには複数の量子化テーブルが格納されており、後述の量子化テーブル選択部109から入力される選択信号に応じた量子化テーブルの量子化値が量子化部103に出力される。
【0130】
109は量子化テーブル選択部であり、量子化テーブル109に対して量子化テーブル選択信号を出力することによって量子化テーブル109に格納されている複数のテーブルの中から所望のテーブルを選択することができる。
【0131】
量子化テーブル選択部109にはヘッダ情報生成部202からImageType3006、Mode3025、Char−flag3029、Q−TableSel3030が入力され、量子化テーブル選択部109はこれらのヘッダ情報から使用する量子化テーブルを決定する。使用する量子化テーブルが決まると、量子化テーブル選択部109は決めた量子化テーブルを選択するように量子化テーブル選択信号を量子化テーブル109に出力するとともに、選択した量子化テーブルを表すQ−Table IDを画像リング出力部205に出力する。
【0132】
<第2圧縮処理部204>
図7は第2圧縮処理部204の機能構成を示すブロック図である。図7において、701はタイルバスインターフェイス部201から送られてくる画像特性情報を格納するためのデータバッファであり、所定量のデータが送られると後段に接続されたパックビッツ圧縮部702に対して所定の順序に従ってデータを出力する。
【0133】
702はパックビッツ圧縮部であり、データバッファ701から出力された画像特性情報に対してパックビッツ方式の圧縮を行う。
【0134】
703はパックビッツ圧縮部702で圧縮した圧縮データを格納するためのデータバッファであり、パックビッツ圧縮部702から1タイル分の圧縮データを取得すると、バッファ703内に格納したデータの容量をData Byte Length2として画像リング出力部205に対して出力する。
【0135】
また、画像リング出力部205の要求に従ってバッファ703内に格納した圧縮データを画像リング出力部205に対して出力する。
【0136】
704はデータ比較部であり、タイルバスインターフェイス部201から入力された画像データとデータバッファ701に格納されたデータを比較する。タイルバスインターフェイス部201から送られたデータはデータバッファ701に格納されると同時に、データバッファ701に格納されていたデータとの比較をデータ比較部704で行う。
【0137】
データバッファ701にはタイルバスインターフェース部201から入力されるタイルの1つ前に第2の圧縮処理部204に送られた画像特性情報が格納されているため、上記動作によりデータ比較部106ではタイルバスインターフェイス部201から送られてくる画像特性情報と、第2の圧縮処理部において1つ前のタイルの画像特性情報の比較が行われる。
【0138】
データ比較部704により1タイル分の画像特性情報の比較が終了すると、データ比較部704から画像リング出力部206に対して比較結果Compare result2 が出力される。
【0139】
<データ量カウントによる画像特性情報の制御>
図8は、タイル圧縮部1047が行うデータカウント処理のフローチャートである。
【0140】
まず、タイル圧縮部1047において圧縮処理が開始されるとデータカウンタ値(DataCount)は0にセットされる(ステップS801)。次に第1圧縮処理部203及び第2圧縮処理部204は夫々が行った圧縮処理が完了すると、データ量カウント部208に夫々の圧縮データ量Data Byte Length1及びData Byte Length2を出力するので、データ量カウント分208は夫々をデータカウンタ値DataCountに加算する(ステップS802)。次にデータカウンタ値DataCountと予め設定されたリミット値とを比較する(ステップS803)。
【0141】
そしてデータカウンタ値DataCountがリミット値を超えていると判断された場合は、処理をステップS804に進め、データバッファ703からの画像特性情報の送信を停止する(ステップS804)。
【0142】
また、ヘッダ情報生成部202とレジスタ設定部206にCompressFail信号を出力し、データ量がオーバしたことを通知する(ステップS805)。レジスタ設定部はCompressFail信号を受けるとステータス処理部1046へ割り込み信号を出力する。さらにデータ量カウント部208はData Byte Length2を0に設定し、画像リング出力部205に出力する(ステップS806)。
【0143】
そしてヘッダ情報生成部202では、第2圧縮処理部204のデータバッファ701に格納された各画素に対する画像特性情報において先頭の画素に対応する画像特性情報の値を参照し、その値をZdummy3032にセットする(ステップS807)。
【0144】
一方、ステップS803においてデータカウンタ値がリミット値を超えていないと判断された場合は、データバッファ703に保存されている画像特性情報およびData Byte Length2をそのまま画像リング出力部205に出力する(ステップS808)。
【0145】
データ量カウント部208は、データバッファ105に保存されている画像データおよびData Byte Length1をそのまま画像リング出力部205に送信する(ステップS809)。
【0146】
最後に1ページの処理が終了したか判断し(ステップS810)、終了していない場合は処理をステップS802に戻し、前述の処理を繰り返す。1ページの処理が終了したと判断された場合は、データカウント処理を終了する。
【0147】
以上のように、圧縮処理を行った際に画像データが一定量を超えないように制御して、再読み込みの発生を抑えるとともに、欠落した画像特性情報をヘッダ情報に書き込んで補うことで画像劣化の極力少ない画像処理を実施することができる。
【0148】
<プリンタ用画像処理部1061の概要説明>
次に、プリンタ用画像処理部1061の詳細について説明する。図16はプリンタ用画像処理部1061の機能構成を示すブロック図である。図9A、Bに示した画像処理部1041より出力された画像データRGB(又はCMYK)はプリンタ画像処理部8001,8002に夫々入力される。夫々のプリンタ画像処理部は内部に夫々2色分の画像処理部を備えており、各色毎にプリンタエンジンを備えるタンデムエンジンプリンタ1003からの画像要求に応じて、それぞれのブロックが各プリンタエンジンに同期して動作できるようになっている。
【0149】
図17はプリンタ画像処理部8001,8002の機能構成を示すブロック図である。内部は大きくは2系統に分かれており、2色分のプリンタエンジンに対応した画像データを生成する。9001,9002は入力I/F部であり、入力される画像データをプリンタ用画像処理クロック同期に従って周波数変換する。
【0150】
9003,9004は下地除去及びND変換部であり、画像特性情報に応じて入力画像データの背景色を飛ばしたり、RGBの有彩色データを無彩色のNDデータに変換する。9005,9006は輝度濃度変換部であり、画像特性情報に応じて入力データの輝度濃度変換を行う。9007,9008はダイレクトマッピング処理部であり、画像特性情報に応じてRGB入力データをプリンタエンジンのC/M/Y/Kの各色成分への変換を行う。
【0151】
9009,9010は色バランス補正部であり、画像特性情報に応じて出力画像の色味の微調整などを行う。9013〜9018は出力ガンマ補正部であり、出力される画像のダイナミックレンジやトーンカーブの補正を行う。本実施形態では1色につき、A〜Cの3種類のガンマ補正を同時に行って出力する。
【0152】
9019〜9024は中間調処理部であり、画像データを量子化して出力画像の階調変換を行っている。本実施形態ではプリンタ用画像処理部への入力8ビットデータを4ビットデータに変換する。中間調処理方法としては、一般にスクリーン処理や誤差拡散処理などが広く知られているが、本実施形態では各色とも任意の3種類の中間調処理を行うようになっている。
【0153】
9025,9026は中間調処理選択部であり、前述の3種類の中間調処理部で処理された出力画像を画像特性情報に応じて最適な処理結果を選択するようになっている。9027,9028はスムージング処理部であり、文字エッジ等のがたつきを軽減するパターンマッチング処理を行っている。
【0154】
9029,9030は特定情報付加部であり、出力画像データ中に出力機器を特定できるような画像情報を重畳する処理を行う。9031は出力選択部であり、前述の2系統の画像処理部で処理されたデータをどちらのプリンタエンジンに出力するかを切り替えられるようになっている。9032、9034はドラム間遅延制御部、9033,9035はドラム間遅延メモリである。
【0155】
前述の入力I/F部から出力選択部までは、図1の画像処理部1041から出力された画像データが同時刻に4つの画像処理部で処理されている。ドラム間遅延制御部9032,9034では画像処理部1041から出力され、プリンタ用画像処理部1061で処理された画像データを、プリンタエンジンからの出力要求があるまでドラム間遅延メモリ9033,9035に蓄積する。こうすることによって、各プリンタエンジンに同期して画像データを出力することができる。
【0156】
9036,9037は出力I/F部であり、プリンタI/Fクロックに同期して画像を出力するための周波数変換を行う。
以上説明したように、本実施形態は、送信される画像データ量が一定値を超えないように、画像特性情報の送信データ量を制御することにより、再度画像入力をやり直す必要がないようにする。また、その際に画像特性情報の代替情報を補うことにより、画像劣化の少ない処理が実施できる。
【0157】
なお、本実施形態ではタンデムエンジンのプリンタに対応するプリンタ用画像処理部について説明しているが、これに限定されるものではなく、シングルエンジン用の画像処理部の構成でも構わないし、1つの画像処理部に4色分の画像処理ブロックを備えていても構わない。
【0158】
[その他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0159】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0160】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0161】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0162】
【発明の効果】
以上の説明により、本発明によって、送信される画像データ量が一定値を超えないように、画像特性情報の送信データ量を制御することにより、再度画像入力をやり直す必要がないようにすることができる。また、その際に画像特性情報の代替情報を補うことにより、画像劣化の少ない処理が実施できる。
【図面の簡単な説明】
【図1】第1圧縮処理部203の機能構成を示すブロック図である。
【図2】タイル圧縮部1047の機能構成を示すブロック図である。
【図3】ImageType3006の上位2ビットが01b、すなわち1画素を1成分8ビットで表している1タイル分の画像を示す図である。
【図4】図3におけるブロック0に含まれる画素群を拡大した図である。
【図5】ImageType3006の上位2ビットが10b、すなわち1画素を8ビット3成分、計24ビットで表している1タイル分の画像を示す図である。
【図6】図5で示した3つの成分からなる画像データをJPEG圧縮部110に出力する順番を示した図である。
【図7】第2圧縮処理部204の機能構成を示すブロック図である。
【図8】タイル圧縮部1047が行うデータカウント処理のフローチャートである。
【図9A】本発明の実施形態に係る画像処理装置の基本構成を示す図である。
【図9B】本発明の実施形態に係る画像処理装置の基本構成を示す図である。
【図10】本発明の実施形態に係る画像処理装置を含むネットワークシステムの概略構成を示す図である。
【図11】本発明の実施形態に係るデータパケットの構造を示す図である。
【図12】本発明の実施形態に係るコマンドパケットの構造を示す図である。
【図13】本発明の実施形態に係るインタラプトパケットの構造を示す図である。
【図14】パケットデータがRAM1021に格納されている状態を示す図である。
【図15】スキャナ用画像処理部1064の機能構成を示す図である。
【図16】プリンタ用画像処理部1061の機能構成を示すブロック図である。
【図17】プリンタ画像処理部8001,8002の機能構成を示すブロック図である。
Claims (7)
- 画像を圧縮する画像圧縮方法であって、
入力された画像を所定のサイズを有する複数のタイルに分割する分割工程と、
分割された夫々のタイルに対して、タイルに含まれる各画素の属性を示す特性情報、当該特性情報の代替値をセットするための領域を有するヘッダ情報とを生成する生成工程と、
各タイルの画像データを圧縮すると共に、圧縮後のデータのサイズを計数する第1の圧縮工程と、
各タイルに対する前記特性情報を圧縮すると共に、圧縮後のデータのサイズを計数する第2の圧縮工程と、
注目タイルに対して前記第1の圧縮工程で圧縮を行い、当該注目タイルに対する特性情報に対して前記第2の圧縮工程が圧縮を行った際に、前記第1の圧縮工程で計数したデータのサイズ、及び前記第2の圧縮工程で計数したデータのサイズを順次加算した値が所定の値を越えた場合、前記第2の圧縮工程に対する特性情報の入力を停止させると共に、前記注目タイルに対するヘッダ情報の前記領域に前記注目タイルに対する前記特性情報を書き込む制御工程と
を備えることを特徴とする画像圧縮方法。 - 前記第1の圧縮工程では、JPEG方式による圧縮処理を行うことを特徴とする請求項1に記載の画像圧縮方法。
- 前記第2の圧縮工程では、パックビッツ方式による圧縮処理を行うことを特徴とする請求項1に記載の画像圧縮方法。
- 前記制御工程では、前記注目タイルに対するヘッダ情報の前記領域に前記注目タイルに対する前記特性情報において、先頭のデータの値を書き込むことを特徴とする請求項1に記載の画像圧縮方法。
- 画像を圧縮する画像圧縮装置であって、
入力された画像を所定のサイズを有する複数のタイルに分割する分割手段と、
分割された夫々のタイルに対して、タイルに含まれる各画素の属性を示す特性情報、当該特性情報の代替値をセットするための領域を有するヘッダ情報とを生成する生成手段と、
各タイルの画像データを圧縮すると共に、圧縮後のデータのサイズを計数する第1の圧縮手段と、
各タイルに対する前記特性情報を圧縮すると共に、圧縮後のデータのサイズを計数する第2の圧縮手段と、
注目タイルに対して前記第1の圧縮手段が圧縮を行い、当該注目タイルに対する特性情報に対して前記第2の圧縮手段が圧縮を行った際に、前記第1の圧縮手段が計数したデータのサイズ、及び前記第2の圧縮手段が計数したデータのサイズを順次加算した値が所定の値を越えた場合、前記第2の圧縮手段への特性情報の入力を停止させると共に、前記注目タイルに対するヘッダ情報の前記領域に前記注目タイルに対する前記特性情報を書き込む制御手段と
を備えることを特徴とする画像圧縮装置。 - コンピュータに請求項1乃至4の何れか1項に記載の画像圧縮方法を実行させることを特徴とするプログラム。
- 請求項6に記載のプログラムを格納することを特徴とするコンピュータ読み取り可能な記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003201925A JP2005045458A (ja) | 2003-07-25 | 2003-07-25 | 画像圧縮方法、画像圧縮装置 |
US10/670,278 US7447384B2 (en) | 2002-09-27 | 2003-09-26 | Image processing method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003201925A JP2005045458A (ja) | 2003-07-25 | 2003-07-25 | 画像圧縮方法、画像圧縮装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005045458A true JP2005045458A (ja) | 2005-02-17 |
Family
ID=34261843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003201925A Pending JP2005045458A (ja) | 2002-09-27 | 2003-07-25 | 画像圧縮方法、画像圧縮装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005045458A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007066142A (ja) * | 2005-09-01 | 2007-03-15 | Shinsedai Kk | ダイレクトメモリアクセスコントローラ |
US7940990B2 (en) | 2006-08-02 | 2011-05-10 | Sony Corporation | Image signal processing apparatus and image signal processing method |
JP2012183320A (ja) * | 2012-04-26 | 2012-09-27 | Toshiba Corp | 撮像装置、撮像装置の作動方法及び内視鏡装置 |
JP2013078591A (ja) * | 2012-11-21 | 2013-05-02 | Toshiba Corp | 撮像装置、撮像装置の作動方法及び内視鏡装置 |
US8610765B2 (en) | 2010-11-24 | 2013-12-17 | Kabushiki Kaisha Toshiba | Imaging apparatus, imaging method, and endoscope apparatus |
-
2003
- 2003-07-25 JP JP2003201925A patent/JP2005045458A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007066142A (ja) * | 2005-09-01 | 2007-03-15 | Shinsedai Kk | ダイレクトメモリアクセスコントローラ |
JP4625929B2 (ja) * | 2005-09-01 | 2011-02-02 | 新世代株式会社 | ダイレクトメモリアクセスコントローラ |
US7940990B2 (en) | 2006-08-02 | 2011-05-10 | Sony Corporation | Image signal processing apparatus and image signal processing method |
US8610765B2 (en) | 2010-11-24 | 2013-12-17 | Kabushiki Kaisha Toshiba | Imaging apparatus, imaging method, and endoscope apparatus |
JP2012183320A (ja) * | 2012-04-26 | 2012-09-27 | Toshiba Corp | 撮像装置、撮像装置の作動方法及び内視鏡装置 |
JP2013078591A (ja) * | 2012-11-21 | 2013-05-02 | Toshiba Corp | 撮像装置、撮像装置の作動方法及び内視鏡装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8660347B2 (en) | Image processing apparatus and processing method therefor | |
US7468803B2 (en) | Image processing apparatus and image processing method | |
US7130072B2 (en) | Multifunction system, image processing method, computer program and memory medium | |
US8953220B2 (en) | Image processing for rotation of compressed image data | |
US7447384B2 (en) | Image processing method and apparatus | |
JP3862605B2 (ja) | 画像処理装置 | |
US20060072147A1 (en) | System and method for compressing and rotating image data | |
JP2005045458A (ja) | 画像圧縮方法、画像圧縮装置 | |
JP2003316714A (ja) | 情報処理装置及び方法 | |
US20040141655A1 (en) | Method and apparatus for image processing | |
JP4136573B2 (ja) | 画像処理方法、画像処理装置、プログラム及び記録媒体 | |
JP5441676B2 (ja) | 画像処理装置及びその処理方法 | |
JP2006229688A (ja) | 画像処理装置 | |
JP2008160866A (ja) | 画像処理方法及び装置 | |
JP4859215B2 (ja) | データ処理装置、及び、制御方法 | |
JP2004253906A (ja) | 伸長装置 | |
JP2003348338A (ja) | 情報処理装置 | |
JP2005020094A (ja) | 画像処理方法、画像処理装置 | |
JP2003224727A (ja) | 画像処理システム | |
JP2004120135A (ja) | 画像処理装置、及び、その制御方法 | |
JP2003250050A (ja) | 画像処理装置及びその制御方法 | |
JP2003069831A (ja) | 画像処理装置、画像表示方法、並びにコンピュータ・プログラム | |
JP2003078770A (ja) | 画像処理方法及びその装置 | |
JP2003234909A (ja) | 画像処理装置 | |
JP2004165902A (ja) | 画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060718 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070920 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070925 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080205 |