JP2005020094A - 画像処理方法、画像処理装置 - Google Patents
画像処理方法、画像処理装置 Download PDFInfo
- Publication number
- JP2005020094A JP2005020094A JP2003178606A JP2003178606A JP2005020094A JP 2005020094 A JP2005020094 A JP 2005020094A JP 2003178606 A JP2003178606 A JP 2003178606A JP 2003178606 A JP2003178606 A JP 2003178606A JP 2005020094 A JP2005020094 A JP 2005020094A
- Authority
- JP
- Japan
- Prior art keywords
- image
- unit
- tile
- packet
- data
- 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.)
- Withdrawn
Links
Images
Landscapes
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
【課題】画像特性情報が画像圧縮データに付加されていない場合であっても、この画像圧縮データを用いて、画像特性情報を利用した高品位な処理を実現させること。
【解決手段】パケットのヘッダ情報内のZtype3020を参照し、これが0の場合(S1101)、パケット中に画像特性情報が存在しないと判断するので、伸張後の画像データからの画像特性情報を生成する(S1102)。次に、画像特性情報を選択し(S1103)、これを出力する(S1104)。
【選択図】 図11
【解決手段】パケットのヘッダ情報内のZtype3020を参照し、これが0の場合(S1101)、パケット中に画像特性情報が存在しないと判断するので、伸張後の画像データからの画像特性情報を生成する(S1102)。次に、画像特性情報を選択し(S1103)、これを出力する(S1104)。
【選択図】 図11
Description
【0001】
【発明の属する技術分野】
本発明は、圧縮された画像を伸張する技術に関するものであるに関するものである。
【0002】
【従来の技術】
従来の画像処理システムにおいては、印字やネットワークを介した画像データの転送を行う際に、画像データ及び画像特性情報(画像を構成する各画素が夫々何の領域(例えば文字領域や写真領域など)であるかなどを示す属性情報)を圧縮し転送していた。これは転送するデータのデータ量をより小さくすることで、システム全体としてのパフォーマンスを上げるためである。
【0003】
しかしながら、画像データの圧縮結果が常に圧縮前のデータよりデータ量が少なくなるという保証はなく、画像データによっては圧縮すると圧縮前よりも大きくなってしまうものがあり、結果としてシステム全体のパフォーマンスを下げてしまうことが考えられる。このため、圧縮後の画像データ量を積算し、システム全体のパフォーマンスに影響を与える閾値に圧縮後のデータ量が達すると、転送データに画像特性情報を付加しない画像処理システムが提供されている。
【0004】
またその圧縮処理において、タイル単位で画像を圧縮する技術も従来から開示されている(例えば特許文献1を参照)。
【0005】
【特許文献1】
特開2003−69831公報
【0006】
【発明が解決しようとする課題】
しかしながら上記従来技術では、圧縮率の悪い画像データ(圧縮前よりも圧縮後の方がデータ量が大きくなる画像データ)を再び伸張して画像処理等を行う際には、上記画像特性情報が失われてしまっているので、画像特性情報を利用した高品位な処理を行えなくなる事が考えられる。
【0007】
本発明は以上の問題に鑑みてなされたものであり、画像特性情報が画像圧縮データに付加されていない場合であっても、この画像圧縮データを用いて、画像特性情報を利用した高品位な処理を実現させることを目的とする。
【0008】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【0009】
即ち、圧縮された画像を伸張する画像処理方法であって、
1ページの画像を構成する各タイルについて生成された、タイルの圧縮データとヘッダとを含むパケットを入力する入力工程と、
入力したパケット中のタイルの圧縮データを伸張し、当該タイルの画像を得る伸張工程と、
前記伸張工程で伸張した画像を構成する各画素の属性を示す特性情報が前記入力したパケット中に含まれているか否かを、前記入力したパケット中のヘッダを参照して判定する判定工程と、
前記判定工程で、前記特性情報が前記入力したパケット中に含まれていないと判定した場合、前記伸張工程で伸張した画像を用いて、当該画像を構成する各画素に関する情報を作成する作成工程と、
前記伸張工程で伸張した画像、前記作成工程で作成した情報をセットで出力する出力工程と
を備えることを特徴とする。
【0010】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【0011】
即ち、圧縮された画像を伸張する画像処理装置であって、
1ページの画像を構成する各タイルについて生成された、タイルの圧縮データとヘッダとを含むパケットを入力する入力手段と、
入力したパケット中のタイルの圧縮データを伸張し、当該タイルの画像を得る伸張手段と、
前記伸張手段が伸張した画像を構成する各画素の属性を示す特性情報が前記入力したパケット中に含まれているか否かを、前記入力したパケット中のヘッダを参照して判定する判定手段と、
前記判定手段が、前記特性情報が前記入力したパケット中に含まれていないと判定した場合、前記伸張手段が伸張した画像を用いて、当該画像を構成する各画素に関する情報を作成する作成手段と、
前記伸張手段が伸張した画像、前記作成手段が作成した情報をセットで出力する出力手段と
を備えることを特徴とする。
【0012】
【発明の実施の形態】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【0013】
<ネットワークシステムの概要説明>
図2は本実施形態に係る画像処理装置を含むネットワークシステムの概略構成を示す図である。
【0014】
2001は本実施形態に係る画像処理装置で、スキャナとプリンタから構成され、スキャナから読み込んだ画像のデータをローカルエリアネットワーク2002(以下LAN)を介して外部に出力したり、LAN2002を介して受信した画像のデータをプリンタによりプリントアウトすることができる。
【0015】
また、スキャナから読み込んだ画像のデータを不図示のFAX送信部により、PSTNまたはISDN2003を介して外部に出力したり、PSTNまたはISDN2003から受信した画像のデータをプリンタによりプリントアウトすることができる。
【0016】
2004はデータベースサーバで、画像処理装置2001が備えるスキャナにより読み込んだ画像(多値画像や2値画像)のデータをデータベースとして管理する。
【0017】
2005はデータベースサーバ2004に対するデータベースクライアントで、データベースサーバ2004に対してアクセスすることで、データベースサーバ2004が管理(保持)する画像データ閲覧したり、検索したり等することができる。
【0018】
2006は電子メールサーバである。2007は電子メールクライアントで、電子メールサーバ2006を介して他の装置から電子メールを受信したり、他の装置に対して電子メールを送信することができる。
【0019】
WWWサーバ2008はHTML文書のデータをLAN2002を介してアクセスのあった装置に対して提供するためのものである。画像処理装置2001は、このWWWサーバ2008に対してアクセスすることができ、このWWWサーバ2008から提供されるデータに従ったHTML文章をプリンタによってプリントアウトすることができる。
【0020】
ルータ2009はLAN2002をインターネット/イントラネット2010と連結させるためのものである。また同図ではこのインターネット/イントラネット2010には、前述したデータベースサーバ2004、WWWサーバ2008、電子メールサーバ2006,そして画像処理装置2001と同様の装置が夫々2011,2012,2013として接続されている。
【0021】
また画像処理装置2001は、PSTNまたはISDN2003を介して、FAX装置2014ともデータの送受信が可能になっている。また、LAN2002上にプリンタ2015も連結されており、このプリンタ2015により、画像処理装置2001がスキャナにより読み取った画像をプリントアウトすることができる。
【0022】
なお、本実施形態に係る画像処理装置を含むシステムの構成はこれに限定されるものではなく、様々な構成が考えられる。よって本実施形態に係る画像処理装置はそれら様々な構成のシステムにおいて、読み込んだ画像を他の装置に対して提供したり、他の装置から受信した画像をプリントアウトすることができる。
【0023】
また、以下用いる「画像」なる文言が意味するところは、文字情報が含まれていても良く、画像情報や文字情報が混在したものを画像と呼称する場合も以下用いる「画像」なる文言の意味するところに含まれるものとする。
【0024】
<画像処理装置の概要説明>
図1A、1Bは、本実施形態に係る画像処理装置の基本構成を示す図である。コントローラユニット1001は、画像入力デバイスであるスキャナ1002や画像出力デバイスであるプリンタ1003と接続し、一方ではLAN1004や公衆回線(WAN)1005と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開の為の制御処理を行う。以下では同図を用いて、各部の詳細について説明する。
【0025】
<システム制御部2150の概要説明>
図1A、1BにおいてCPU1006は、本装置全体の制御を行うと共に、画像処理装置2001が後述の各処理を行うために、各部を制御するためのものである。本実施形態ではCPU1006は、CPU0,CPU1の2つのCPUにより構成されているものとするが、この数に限定されるものではない。これら2つのCPU1006は共通のCPUバス1007に接続され、CPUバス1007は更にシステムバスブリッジ1008に接続している。
【0026】
システムバスブリッジ1008はバススイッチであり、ここにCPUバス1007、RAMコントローラ1009、ROMコントローラ1010、IOバス1011、サブバススイッチ1012、IOバス1013、画像リングインターフェース1014、画像リングインターフェース1015が接続されている。
【0027】
サブバススイッチ1012は第2のバススイッチであり、画像DMA1016、画像DMA1017、フォント伸張部1018、ソート回路1019、ビットマップトレース回路1020が接続され、これらのDMAから出力されるメモリアクセス要求を調停し、システムバスブリッジ1008への接続を行う。
【0028】
RAM1021はCPU1006が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。そのメモリの使用に係る制御はRAMコントローラ1009によって行われる。このRAM1021として本実施形態ではダイレクトRDRAMとするが、これに限定されるものではない。
【0029】
ROM1022はブートROMであり、本装置のブートプログラムが格納されており、ROMコントローラ1010により制御される。
【0030】
画像DMA1016は画像圧縮部1023と接続しており、レジスタアクセスリング1024を介して設定された情報に基づいて画像圧縮部1023を制御し、RAM1021上の非圧縮データの読み出し、圧縮、圧縮後のデータの書き戻しを行う。本実施形態ではこの圧縮アルゴリズムをJPEGとするが、これに限定されるものではない。
【0031】
画像DMA1017は画像伸張部1025と接続しており、レジスタアクセスリング1024を介して設定された情報に基づいて画像伸張部1025を制御し、RAM1021上の圧縮データの読み出し、伸張、伸張後のデータの書き戻しを行う。本実施形態ではこの伸張アルゴリズムは上記圧縮アルゴリズムに対応させるためにJPEGとするが、上記圧縮アルゴリズムと同様にこれに限定されるものではない。
【0032】
フォント伸張部1018はLANコントローラ1026等を介し、外部より転送されるPDLデータに含まれるフォントコードに基づき、ROM1022もしくは、RAM1021内に格納された圧縮フォントデータの伸張を行う。本実施形態ではこの伸張アルゴリズムをFBEアルゴリズムとするが、これに限定されるものではない。
【0033】
ソート回路1019はPDLデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える処理を行う。ビットマップトレース回路1020は、ビットマップデータより、エッジ情報を抽出する処理を行う。
【0034】
IOバス1011は内部のIOバスの一種であり、USBインターフェース1027、汎用シリアルポート1028、インタラプトコントローラ1029、GPIOインターフェース1030、そして操作部インターフェース1031がこれに接続されている。またIOバス1011には、バスアービタ(図示せず)が含まれる。
【0035】
操作部インターフェース1031は、操作指示を入力するための機能を備えると共に表示機能を備える操作部1032のインターフェース部で、この操作部1032に表示する画像データは操作部インターフェース1031を介して操作部1032に出力される。また、この操作部1032を用いて入力された操作指示はこの操作部インターフェース1031を介してCPU1006に通知される。
【0036】
IOバス1013は、内部のIOバスの一種であり、汎用バスインターフェース1033と、LANコントローラ1026とがこれに接続されている。IOバス1013には、バスアービタ(図示せず)が含まれる。
【0037】
汎用バスインターフェース1033は、2つの同一のバスインターフェースからなり、標準IOバスをサポートするバスブリッジである。本実施形態ではこの汎用バスインターフェース1033はPCIバスとするが、これに限定されるものではない。
【0038】
HDD1035はハードディスクドライブで、システムソフトウェア、画像データ等を格納する。HDD1035はディスクコントローラ1036を介して一方のPCIバス1034(同図ではPCI1)に接続される。
【0039】
LANコントローラ1026は、MAC回路1037、PHY/PMD回路1038を介してLAN1004に接続し、情報の入出力を行う。モデム1039は公衆回線1005に接続し、情報の入出力を行う。
【0040】
<画像処理部1041の概要説明>
次に図1A、1Bを用いて、画像処理部1041を構成する各部について説明する。画像リング1040は、一対の単方向接続経路の組み合わせにより構成される。画像リング1040は、画像処理部1041内で画像リングインターフェース1042、及び画像リングインターフェース1043を介してタイル伸張部1044、コマンド処理部1045、ステータス処理部1046、そしてタイル圧縮部1047と接続している。
【0041】
タイル伸張部1044は画像リングインターフェース1042以外にもタイルバス1048と接続しており、画像リング1040より入力された圧縮後の画像データを伸張し、タイルバス1048へ転送するバスブリッジである。タイルバス1048とは、1ページの画像データを所定の大きさの単位ブロック(タイルと呼ぶ)に分割し、タイル単位でデータ処理及び転送を行うバスである。即ち、タイル伸張部1044はタイル毎に画像を出力するものである。
【0042】
本実施形態ではタイル伸張部1044が行う伸張処理は、圧縮された画像データが多値画像データである場合にはJPEGに従った伸張処理、圧縮された画像データが2値画像データである場合にはパックビッツに従った伸張処理を行うものとするが、圧縮側とでアルゴリズムが対応していればこれに限定されるものではない。
【0043】
タイル圧縮部1047は画像リングインターフェース1043以外にもタイルバス1048と接続しており、タイルバス1048より入力された圧縮前の画像データを圧縮し、画像リング1040に出力するバスブリッジである。
【0044】
本実施形態ではタイル圧縮部1047が行う圧縮処理は、圧縮対象の画像データが多値画像データである場合にはJPEGに従った圧縮処理、圧縮対象の画像データが2値画像データである場合にはパックビッツに従った圧縮処理を行うものとするが、上記伸張処理と同様にこれに限定されるものではない。
【0045】
コマンド処理部1045は、画像リングインターフェース1042以外にもレジスタ設定バス1049と接続しており、画像リング1040を介して入力されたCPU1006より発行されたレジスタ設定要求を、レジスタ設定バス1049に接続されるこのブロックへ書き込む。また、CPU1006より発行されたレジスタ読み出し要求に基づき、レジスタ設定バス1049を介してこのレジスタより情報を読み出し、画像リングインターフェース1043に出力する。
【0046】
ステータス処理部1046は、各画像処理ブロックの情報を監視し、CPU1006に対してインタラプトを発行するためのインタラプトパケットを生成し、画像リングインターフェース1043に出力する。
【0047】
タイルバス1048には更に、レンダリング部インターフェース1050、画像入力インターフェース1051、画像出力インターフェース1052、多値化処理部1053、2値化処理部1054、色空間変換部1055、画像回転部1056、解像度変換部1057、そして画像一時保管部1058が接続されている。また、図中のタイルバス1048はバス・コントローラも含む。
【0048】
レンダリング部インターフェース1050は、後述するレンダリング部1067により生成されたビットマップイメージを入力するインターフェースである。レンダリング部1067とレンダリング部インターフェース1050は一般的なビデオ信号線1059で接続されている。レンダリング部インターフェース1050はタイルバス1048以外にも、メモリバス1060、レジスタ設定バス1049とも接続しており、入力されたラスタ画像(ビットマップイメージ)を、レジスタ設定バス1049を介して設定された所定の方法によりタイル画像への構造変換をすると同時にクロックの同期化を行い、タイルバス1048に対して出力する。
【0049】
画像入力インターフェース1051は、スキャナ1002によって読み取られた(スキャンした)画像のデータを入力とし、タイル画像への構造変換及び、クロックレートの変更を行い、夫々のタイルの画像データを画像処理部1041に出力する。
【0050】
画像出力インターフェース1052は、タイルバス1048から出力されたタイル画像データを入力とし、ラスター画像への構造変換、及びクロックレートの変更を行い、ラスター画像をプリンタ用画像処理部1061に出力する。画像回転部1055、1056は画像データの回転を行う。解像度変換部1057は画像の解像度の変換を行う。2値化処理部1054は多値(カラー及びグレースケール)画像を2値化し、2値画像に変換する。多値化処理部1053は、2値画像を多値画像に変換する。
【0051】
画像一時保管部1058は、受信した画像データを内部の記憶部に一旦記憶し、記憶し終わると直ちに、受信したデータの他ブロックへの送信を行う。
【0052】
外部バスインターフェース部1062は、画像リングインターフェース1014,1015,1042,1043、コマンド処理部1045、レジスタ設定バス1049を介し、CPU1006により発行された書き込み・読み出し要求を外部バス1063に変換出力するバスブリッジである。外部バス1063は、本実施形態ではプリンタ用画像処理部1061、スキャナ用画像処理部1064に接続されている。
【0053】
メモリ制御部1065は、メモリバス1060に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ1及び2からなる画像メモリ1066に対して、画像データの書き込み・読み出しを行い、そして必要に応じてリフレッシュ等の動作を行う。本実施形態では画像メモリ1066としてSDRAMを用いるが、これに限定されるものではない。
【0054】
スキャナ用画像処理部1065は、画像入力デバイスであるスキャナ1002によりスキャンされた画像データに対して補正処理などを行う。
【0055】
プリンタ用画像処理部1061は、プリンタ出力のための補正画像処理を行い、その結果をプリンタ1003に出力する。
【0056】
レンダリング部1067は、PDLコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【0057】
<パケットフォーマット>
次に、本実施形態で用いるデータフォーマットについて説明する。図1A、1Bに示したコントローラユニット1001内では、画像データ、及びCPU1006によるコマンド、各ブロックからの割り込み情報は、夫々パケット化された形式で転送される。以下、これら夫々のパケットであるデータパケット、コマンドパケット、そしてインタラプトパケットの3種類について説明する。
【0058】
・ データパケット
図3は、本実施形態に係るデータパケットの構造を示す図である。また本実施形態では画像データを32画素×32画素を単位とする画像3002(タイル)毎に分割して扱うものとする。このタイル単位の画像に、必要なヘッダ情報3001、及び画像特性情報3003等を結合したパケットをデータパケットと呼ぶ。なお画像特性情報3003は上述の通り、画像を構成する各画素が夫々何の領域(例えば文字領域や写真領域など)であるかなどを示す属性情報である。
【0059】
先ず初めにヘッダ情報3001に含まれる各情報について説明する。パケットはヘッダ情報3001内のPcktType3004内のPacketTypeID3023の値によってデータパケット、コマンドパケット及びインタラプトパケットに区別される。本実施形態ではPacketTypeIDを3ビットで表現し、
として各パケットを区別するものとするが、これに限定されるものではない。
【0060】
また、PcktType3004にはRepeatFlag3022が含まれており、データパケットの画像データ3002及び画像特性情報3003、ヘッダ情報3001内の所定の情報が1つ前に送信したデータパケットと同一の場合、RepeatFlag3022に1をセットする。この場合、パケットの転送はヘッダ情報3001のみ行われる。
【0061】
ChipID3005はパケットを送信するターゲットとなるチップのIDを示す。ImageType3006は画像データのタイプを示す。本実施形態ではImageType3006は8ビットで表現し、上位2ビットを用いて画像データ3002のタイプ(即ち、画像データ3002を含む画像全体のタイプ)を以下のように規定する。
【0062】
PageID3007はデータパケットが含まれるページを示しており、JobID3008はソフトウェアで管理するためのJob IDを格納する。
【0063】
データパケットのページ上の並び順はY方向のTile座標3009(Yn)とX方向のTile座標3010(Xn)の組み合わせで、YnXnで表される。
【0064】
Process Instruction3011は左詰で8bit毎に処理順に設定し、各処理Unitは処理後Process Instructionを左に8BitShiftする。Process Instruction3011はUnitID3024とMode3025の組が8組格納されている。UnitID3024は画像処理部1041の各処理Unitを指定し、Mode3025は各処理Unitでの動作Modeを指定する。これにより、1つのパケットは8つのUnitまで連続して処理することができる。
【0065】
PacketByteLength3012はパケットのトータルバイト数を示す。ImageDataByteLengh3015は画像データのバイト数、ZDataByteLength3016は画像特性情報のバイト数を表し、ImageDataOffset3013、ZDataOffset3014はそれぞれのデータに対するパケットの先頭からのOffsetの値を表している。
【0066】
データパケットでは、パケットが持つ画像データ及び画像特性情報が圧縮されている場合と非圧縮の場合が存在する。本実施形態では圧縮アルゴリズムとして、画像データが多値カラー(多値グレースケールを含む)の場合はJPEGを、2値の場合及び画像特性情報はパックビッツを採用した例を示す。
【0067】
上記方式により画像データ及び画像特性情報が圧縮されている場合と非圧縮の場合との区別は、それぞれCompressFlag3017内のImageData3026及びZdata3027が1の場合は圧縮データ、0の場合は非圧縮データであることを表す。
【0068】
CompressFlag3017内にはJPEGにより圧縮処理を行う際に使用した量子化テーブルの種類を格納するQ−TableID3028が用意されており、量子化テーブルが複数ある場合、データの圧縮及び伸長時はこの値を参照して使用する量子化テーブルの切替を行う。SourceID3018は画像データ及び画像特性情報が生成されたソースを示す。
【0069】
Ztype3020は画像特性情報における有効bit幅を示し、Ztype3020で示したbit以外の画像特性情報は無効情報とする。尚、Ztype3020が0である場合は入力された画像特性情報全てが無効であることを表す。Zdummy3033は後述のCompressFailフラグが立った場合に、画像特性情報の代替値がセットされるためのものである。
【0070】
ThumbnailData3021はデータパケットの画像データを代表する値(以下、サムネール値と呼ぶ)を格納する。本実施形態ではthumbnailData3021に最大4つのサムネール値を格納することができる構成となっている。
【0071】
Misc3019は上記の各情報以外に必要となる情報を格納する。本実施形態ではChar−flag3029及びQ−TableSel3030が用意されている。Char−flag3029にはデータパケットが属する領域信号が格納される。Q−TableSel3030にはJPEG方式による圧縮及び伸長時に使用する量子化テーブルを変更するための情報が格納される。
【0072】
・ PacketTable/ChainTable
前述のパケット・データはメモリに格納される際には、PacketTableという形態で管理される。図4はパケットデータがRAM1021に格納されている状態を示す図である。Packet Table4001の構成要素は次の通りで、それぞれTableの値に0を5bit付加すると、パケットの先頭アドレス4002、パケットのByte Length4005となる。
【0073】
なお、Packet Table4001とChain Table4010は分割されないものとする。Packet Table4001は常に走査方向に並んでおり、Yn/Xn=000/000、000/001、000/002、、、という順で並んでいる。このPacket Table4001のEntryは一意にひとつのTileを示す。また、Yn/Xmaxの次のEntryはYn+1/X0となる。
【0074】
ヘッダ情報3001内のRepeatFlag3002がセットされているパケットが入力される場合は、そのパケットはMemory上には書かず、Packet TableのEntryに1つめのEntryと同じPacket Address Pointer、Packet Lengthを格納する。1つのPacket Dataを2つのTable Entryが指すかたちになる。この場合、2つめのTable EntryのRepeat Flag5003がSetされる。
【0075】
PacketがChain DMAにより複数に分断された場合は、Divide Flag4004をSetし、そのPacketの先頭部分が入っているChain BlockのChain Table番号4006をSetする。Chain Table4007のEntryはChain Block Address4008とChain Block Length4009からなっており、Tableの最後のEntryにはAddress、Length共に0を格納しておく。
【0076】
・ コマンド・パケット
本Packet Formatはレジスタ設定バス2109へのアクセスを行うためのものである。本パケットを用いることにより、CPU1006より画像メモリ1066へのアクセスも可能である。
【0077】
図5は、本実施形態に係るコマンドパケットの構造を示す図である。ChipID5004にはコマンドパケットの送信先となる画像処理部1041を表すIDが格納される。
【0078】
PageID5007、JobID5008はソフトウェアで管理するためのPage IDとJob IDを格納する。Packet ID5009は1次元で表されるData PacketのX−coordinateのみを使用する。パケットバイトレングス5010は128Byte固定である。
【0079】
パケットデータ部5002には、アドレス5011とデータ5012の組を1つのコマンドとして、最大12個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプはCmdType5005で示され、コマンドの数はCmdnum5006で示される。
【0080】
・ インタラプトパケット
本PacketFormatは画像処理部1041からCPU1006への割り込みを通知するためのものである。ステータス処理部1046はインタラプトパケットを送信すると、次に送信の許可がされるまではインタラプト・パケットを送信してはならない。
【0081】
図6は、本実施形態に係るインタラプトパケットの構造を示す図である。パケットバイトレングス6006は128Byte固定である。パケットデータ部6002には、画像処理部1041の各内部モジュールのステータス情報6007が格納されている。ステータス処理部1046は画像処理部1041内の各モジュールのステータス情報を集め、一括してシステム制御部2150に送ることができる。
【0082】
ChipID6004にはインタラプトパケットの送信先となるシステム制御部2150を表すIDが、また、IntChipID6005にはインタラプトパケットの送信元となる画像処理部1041を表すIDが格納される。
【0083】
<タイル圧縮部1047>
次に、タイル圧縮部1047について詳細に説明する。図7はタイル圧縮部1047の機能構成を示すブロック図である。図7において、701はタイルバスインターフェイス部であり、タイルバス1048とハンドシェイクを行い、タイルバス1048から入力されるヘッダ情報、画像データ及び画像特性情報を取得し、後段に接続された各処理ブロックへ夫々のデータを出力する。
【0084】
また、タイルバスインターフェイス部701ではタイルバス1048から送られてくるヘッダ情報の解析を行い、ヘッダ情報に矛盾がある場合は後述のレジスタ設定部706に矛盾内容に相当する割り込み信号を出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0085】
一方、ヘッダ情報に矛盾がない場合は、タイルバスインターフェース部701は後段に接続されたヘッダ情報生成部702に対してヘッダ情報を出力した後、タイルバス1048から画像データと画像特性情報を取得して、ヘッダ情報のImageType3006に従って第1圧縮処理部703(本実施形態ではJPEG方式の圧縮を行う)及び第2圧縮処理部704(本実施形態ではパックビッツ方式の圧縮を行う)夫々に画像データ又は画像特性情報を出力する。
【0086】
具体的には、ImageType3006の上位2ビットが1ビットの画像データを表す00bの場合には、第1圧縮処理部703は使用せずに画像データを第2圧縮処理部704へ出力する。
【0087】
また、ImageTypeの上位2ビットが00b以外の場合、画像データを第1圧縮処理部703へ出力するとともに画像特性情報を第2圧縮処理部704へ出力する。ただし、Ztype3020が0の場合は入力された画像特性情報は無効であるため、画像特性情報を第2圧縮処理部204に出力せず、第2圧縮処理部204による圧縮処理は行わない。
【0088】
702はヘッダ情報生成部であり、第1圧縮処理部703及び第2圧縮処理部704において画像データ及び画像特性情報の圧縮処理を行っている間、ヘッダ情報を生成する。また、ヘッダ情報生成部702は格納したヘッダ情報の中から圧縮処理に必要な情報を第1圧縮処理部703及び第2圧縮処理部704に対して出力する。
【0089】
703は第1圧縮処理部であり、上述の通りJPEG方式による圧縮処理を行う。第1圧縮処理部703は画像データが複数bit構成であった場合に画像データの圧縮処理を行う。また、第1圧縮処理部703では入力された画像データを1タイル分格納するためのバッファを持ち、次のパケットの画像データが入力されるまで直前に処理したパケットの画像データを保持しておくことで、タイルバスインターフェイス部701から入力された画像データとバッファ内に格納された画像データの比較を行う。比較結果は後述の画像リング出力部705に送られ、RepeatFlag3022を生成する際に参照される。
【0090】
尚、第1圧縮処理部703において圧縮処理を行っている際に動作の異常を検知した場合、第1圧縮処理部703は異常動作の内容に相当する割り込み信号をレジスタ設定部706に対して出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0091】
704は第2圧縮処理部であり、上述の通り情報ロスのない圧縮方式であるパックビッツ方式による圧縮処理を行う。第2圧縮処理部704では入力されたパケットの画像データが1bit構成であった場合は画像データを、または画像特性情報が存在する(Ztype3020が0でない)場合は、画像特性情報をパックビッツ方式によって圧縮する。
【0092】
また第2圧縮処理部704でも、入力された画像特性情報を1パケット分格納するためのバッファを持ち、直前に入力された1bit画像データ又は画像特性情報を保持しておくことにより、タイルバスインターフェイス部701から入力された画像又は画像特性情報とバッファ内に格納されたデータの比較を行う。比較結果は後述の画像リング出力部705に送られ、RepeatFlag3022を生成する際に参照される。
【0093】
尚、第2圧縮処理部704において圧縮処理を行っている際に動作の異常を検知した場合、第2圧縮処理部704は異常動作の内容に相当する割り込み信号をレジスタ設定部706に対して出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0094】
705は画像リング出力部であり、ヘッダ情報生成部702、第1圧縮処理部703及び第2圧縮処理部704から処理情報及び画像データ、画像特性情報を取得し、ヘッダ情報に対して所定の値を設定してから図3に示すデータパケットを生成して画像リングインターフェイス1043に出力する。
【0095】
706はタイル圧縮部1047内部の処理に関して設定を行うためのレジスタ設定部であり、タイル圧縮部1047に所定の圧縮処理を行わせるためには、レジスタ設定部706に所定の値(伸張処理部を制御するための予め決められた(プログラムされた)値)を設定する必要がある。これらの設定はコマンドパケットを用いてシステム制御部2150から画像処理部1041のコマンド処理部1045に送り、コマンド処理部1045からレジスタ設定バス1049を介してタイル圧縮部1047に送られることにより行う。レジスタ設定部706に設定された値は、第1圧縮処理部703及び第2圧縮処理部704に送られ、両圧縮処理部はそれらの設定値を参照することにより決められた処理を行う。
【0096】
尚、レジスタ設定部706へはコマンドパケットを用いて値を設定するだけでなく、コマンドパケットを用いてレジスタ設定部706が保持している設定値をシステム制御部2150へ出力することも可能である。
【0097】
さらに、レジスタ設定部706はタイルバスインターフェース部701、第1圧縮処理部703、第2圧縮処理部704から入力された割り込み信号に対応するレジスタを持ち、いずれかのブロックから割り込み信号が入力されると対応するレジスタの値をセットした後に、ステータス処理部1046に対して割り込みが発生したことを知らせるインタラプト信号及びいずれのブロックで割り込みが発生したかを表すステータス信号を出力する。
【0098】
707はレジスタ設定バスインターフェイス部であり、レジスタ設定バス1049からタイル圧縮部1047に入力されたアドレス及び設定値を、レジスタ設定部706が受け取れるフォーマットに変換して送る。
【0099】
なお、レジスタ設定バスインターフェイス部707はレジスタ設定バス1049からレジスタ設定値を受け取るだけでなく、レジスタ設定バス1049が示したアドレスに対応する設定値をレジスタ設定部706から読み出してレジスタ設定バス1049に出力することも可能である。
【0100】
708はデータ量計算部で、画像リング出力部705が画像リング1043に出力した圧縮後の画像データのデータ量の積算値を、パケットヘッダーのPageID3007単位で計算するブロックである。即ち、1ページを構成する各タイルについての圧縮データを逐次加算し、その合計値を求める。
【0101】
PageID3007の値が変更にならない限り、画像リング出力部705が出力した圧縮後画像データのデータ量の積算を行う。但し、PageID3007が変更された場合にはデータ量積算値を0にリセットする。これにより、各ページ毎の圧縮データのサイズを求めることができる。
【0102】
799はデータ量比較部で、データ量計算部708で計算されたデータ量の積算値と、レジスタ設定部706に設定されたデータ閾値とを比較し、画像リング出力部705に比較結果を出力するブロックである。
【0103】
画像リング出力部705は、データ量比較部709からの比較結果信号により、データ量積算値が閾値を超えていた場合、以後、同一のPageIDで出力するデータパケット内に画像特性情報を付加しない。このときパケットヘッダー内のZtype3020及び、Z Data Byte Length3016の値は0になる。
【0104】
<タイル伸張部1044>
次に、タイル伸張部1044について説明する。図8はタイル伸張部1044の機能構成を示す図である。801は画像リング入力部で、図3に示す構成を備えるパケットのデータを受信し、このパケットに含まれる、ヘッダ情報、画像データ、画像特性情報を取得し、後段の各ブロックに夫々のデータを出力する。
【0105】
また、画像リング入力部801では、画像リングインターフェース1042から送られてくるデータパケット内のヘッダ情報の解析を行い、ヘッダ情報に矛盾がある場合は後述のレジスタ設定部806に矛盾内容に相当する割り込み信号を出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0106】
一方、ヘッダ情報に矛盾がない場合は、後段のヘッダ情報保持部802にこのヘッダ情報を出力した後、ヘッダ情報中のImageType3006に従って第1伸張処理部803(本実施形態ではJPEG方式に従った伸張処理を行う)、及び第2伸張処理部804(本実施形態ではパックビッツ方式に従った伸張処理を行う)夫々に画像データ又は画像特性情報を出力する。
【0107】
具体的には、ヘッダ情報におけるImageTypeの上位2ビットが1ビットの画像データを表す00bの場合には、第1伸張処理部803は使用せずに画像データを第2伸張処理部804へ出力する。
【0108】
また、ImageTypeの上位2ビットが00b以外の場合、画像データを第1伸張処理部803へ出力すると共に、画像特性情報を第2伸張処理部804へ出力する。
【0109】
802はヘッダ情報保持部で、画像リング入力部801を介して入力されたヘッダ情報を、第1伸張処理部803、及び第2伸張処理部804が画像データ。及び画像特性情報の伸張処理を行っている間、保持する。また、ヘッダ情報保持部802は、格納したヘッダ情報の中から伸張処理に必要な情報を第1伸張処理部803、及び第2伸張部第2伸張処理部804に出力する。
【0110】
803は第1伸張処理部で、本実施形態ではJPEG方式に従って、入力された圧縮データに対して伸張処理を行う。上述の通り、第1伸張処理部803には、各画素が複数ビットで表現される画像の圧縮データが入力される。また、第1伸張処理部803は、伸張された画像データを1タイル分格納するためのバッファを持ち、次のパケットの画像データが入力されるまで直前に処理したタイル画像データを保持しておくことで、画像リング入力部801から入力されたパケットのヘッダ内のRepeatFlag3022を参照し、1の場合は、バッファ内に格納されたタイル画像データをタイルバスインターフェイス部805に出力する。
【0111】
尚、第1伸張処理部803において伸張処理を行っている際に第1伸張処理部803が動作の異常を検知した場合、第1伸張処理部803は異常動作の内容に相当する割り込み信号をレジスタ設定部806に対して出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0112】
804は第2伸張処理部で、本実施形態では情報ロスのない圧縮方式に対応する伸張方式、具体的にはパックビッツ方式に従って、入力された圧縮データに対して伸張処理を行う。上述の通り、第2伸張処理部804には、各画素が1ビットで表現される画像の圧縮データが入力される。また、パケットデータ内に画像特性情報が含まれている場合(Ztype3020が0でない場合)には、この画像特性情報に対しても、パックビッツ方式に従って伸張処理を行う。
【0113】
また第2伸張処理部804は第1伸張処理部803と同様に、伸張された画像データを1タイル分格納するためのバッファを持ち、次のパケットの画像データが入力されるまで直前に処理したタイル画像データを保持しておくことで、画像リング入力部801から入力されたパケットのヘッダ内のRepeatFlag3022を参照し、1の場合は、バッファ内に格納されたタイル画像データをタイルバスインターフェイス部805に出力する。
【0114】
尚、第2伸張処理部804において伸張処理を行っている際に第2伸張処理部804が動作の異常を検知した場合、第2伸張処理部804は異常動作の内容に相当する割り込み信号をレジスタ設定部806に対して出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0115】
805はタイルバスインターフェイス部で、ヘッダ情報保持部802からヘッダ中の必要な情報を、第1伸張処理部803もしくは第2伸張処理部804から画像データ、画像特性情報を1タイル分のデータとして取得し、タイルバスのプロトコルに従い、タイルバス1048にこの1タイル分のデータを出力する。
【0116】
806はタイル伸張部1044内部の処理に関して設定を行うためのレジスタ設定部であり、タイル伸張部1044に所定の圧縮処理を行わせるためには、レジスタ設定部806に所定の値(伸張処理部を制御するための予め決められた(プログラムされた)値)を設定する必要がある。これらの設定はコマンドパケットを用いてシステム制御部1070から画像処理部1041のコマンド処理部1045に送り、コマンド処理部1045からレジスタ設定バス1049を介してタイル伸張部1044に送られることにより行う。
【0117】
レジスタ設定部806に設定された値は、第1圧縮処理部803、及び第2伸張処理部804に送られ、両伸張処理部はそれらの設定値を参照することにより決められた処理を行う。
【0118】
尚、レジスタ設定部806へはコマンドパケットを用いて値を設定するだけでなく、コマンドパケットを用いてレジスタ設定部が保持している設定値をシステム制御部1070へ出力することも可能である。
【0119】
さらに、レジスタ設定部806は画像リング入力部801、第1伸張処理部803、及び第2伸張処理部804から入力された割り込み信号に対応するレジスタを持ち、いずれかのブロックから割り込み信号が入力されると対応するレジスタの値をセットした後に、ステータス処理部1046に対して割り込みが発生したことを知らせるインタラプト信号及びいずれのブロックで割り込みが発生したかを表すステータス信号を出力する。
【0120】
807はレジスタ設定バスインターフェイス部で、レジスタ設定バス1049からタイル伸張部1044に入力されたアドレス及び設定値を、レジスタ設定部806が受け取れるフォーマットに変換して送るためのブロックである。なお、レジスタ設定バスインターフェイス部807はレジスタ設定バス1049からレジスタ設定値を受け取るだけでなく、レジスタ設定バスが示したアドレスに対応する設定値をレジスタ設定部806から読み出してレジスタ設定バスに出力することも可能である。
【0121】
808は画像付加データ再生部であり、ヘッダ情報保持部802に保持されているヘッダ情報内のZtype3020を参照し、これが0の場合、即ち、受信したパケット内に画像特性情報が存在しない場合(無効情報であることも含む)、第1伸張処理部803、及び第2伸張処理部804から出力される伸張後のタイルの画像データを用いて、この画像データに関する情報として以下の3つの情報を生成する。
【0122】
・ 各画素が有彩色であるか無彩色であるかの情報
・ 各画素が孤立点であるか否かの情報
・ 各画素が文字部であるか否かのフラグ情報
以下、この3つの夫々の情報について説明する。
【0123】
<有彩・無彩色の判定>
第1伸張処理部803から入力された、各画素が複数ビットにより表現される画像、即ちカラー画像のデータを用いて、この画像の各画素が有彩色であるか、無彩色であるかの判定を行う。その方法としては、画素のR,G,B(またはC、M、Y)の夫々の値の最大値、最小値を求め、夫々を比較することで、この画素の画素値が有彩色を示すものであるか、無彩色を示すものであるかを判定する。例えば、YUVであればUVが80h近辺であるかどうかで判定することができる。
【0124】
<孤立点の判定>
第1伸張処理部803、もしくは第2伸張処理部804から入力された画像において、注目画素が孤立点であるか否かの判定を行う。この場合、例えば5×5のサイズのウィンドウを用いて、この注目画素が孤立点であるか否かの判定を行う。このようにして、この画像を構成する各画素に対して、孤立点であるか否かのフラグ情報を求める。
【0125】
この孤立点の求め方については周知の技術であるので、詳細な説明は省略するが、本実施形態ではこの孤立点の求め方については特に限定されるものではなく、他の求め方を用いても良い。
【0126】
<文字フラグの判定>
第1伸張処理部803、もしくは第2伸張処理部804から入力された画像において、注目画素が文字領域内の画素であるか否かの判定を行うとすると、3×3画素での微分により濃度の傾きを計算し、エッジ判定を行う。そして無彩色で且つエッジならば文字と判定する。この技術についても周知の技術であるので、詳細な説明は省略するが、本実施形態ではこの方法に限定されるものではない。
【0127】
また、画像付加データ再生部808はレジスタ設定部806に設定された値によって、出力する画像特性情報を選択する回路を備えている。図9はこの回路の概略構成を示す図である。
【0128】
901,902,903は夫々セレクタで、レジスタ設定部806に設定されている3ビットの画像付加データ設定値(予め決められた(プログラムされた、またはユーザーが制御部より設定した)値で、機器の動作モードによって切り替える)の各ビットが夫々のセレクタに対するセレクト信号になっている。同図の場合、この3ビットのうち最初のビット(ビット0)はセレクタ901に対するセレクト信号として用いられており、次の1ビット(ビット1)はセレクタ902に対するセレクト信号として用いられており、最後の1ビット(ビット2)はセレクタ903に対するセレクト信号として用いられている。
【0129】
各セレクタ901,902,903はセレクト信号が0の場合は画像付加データ再生部808が生成した付加データを選択し、1の場合はレジスタ設定部806に設定されている画像付加データ設定値を出力する。画像特性情報は画像データ1画素に対して3bitの情報で、各bitに意味をもたせたものである。
【0130】
図10は画像特性情報の構成を示す図である。bit0が1の時は、対応している画像データが有彩色であることを表している。bit0が1の時は、対応している画像データが無彩色であることを表している。bit1が0の時は、対応している画像データが孤立点データでないこと、bit1が1の時は孤立点データであることを表している。bit2が0の時は対応している画像データが文字データ以外であること、1である時は文字データであることを表している。
【0131】
この画像特性情報は画像データとともにプリンタ1003に転送され、プリンタ1003はこの画像特性情報をプリンタ固有の画像処理のパラメータとして用いる。従来では画像特性情報が欠損した画像データの場合、実際には画像が出力できなくなるわけではなく、高精彩、高品位な画像設定でのプリントモードが選択できなってしまうが、本実施形態により、画像特性情報が欠損した画像データであっても、これら高精彩、高品位な画像設定でのプリントモードを使用することができ、ユーザーが満足する画像を出力することが可能である。
【0132】
図11は、画像付加データ再生部808が行う処理のフローチャートである。まずパケットのヘッダ情報内のZtype3020を参照し、これが0の場合(ステップS1101)、処理をステップS1102に進め、パケット中に画像特性情報が存在しないと判断するので、前述した方法で伸張部が出力する伸張後の画像データからの画像特性情報を生成する(ステップS1102)。次に、図10で示されたように画像特性情報を選択し(ステップS1103)、これを出力する(ステップS1104)。
【0133】
以上の説明により、本実施形態によれば、従来の画像データのみでのプリントでは1ページ内は全て同じ画像処理を用いていたのに対し、画像特性情報を用いているので、1ページ内でも、画素毎にその画素がもつ特性に応じた画像処理を行うことができる。
【0134】
[その他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0135】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0136】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0137】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0138】
【発明の効果】
以上の説明により、本発明によって、画像特性情報が画像圧縮データに付加されていない場合であっても、この画像圧縮データを用いて、画像特性情報を利用した高品位な処理を実現させることができる。
【図面の簡単な説明】
【図1A】本発明の実施形態に係る画像処理装置の基本構成を示す図である。
【図1B】本発明の実施形態に係る画像処理装置の基本構成を示す図である。
【図2】本発明の実施形態に係る画像処理装置を含むネットワークシステムの概略構成を示す図である。
【図3】本発明の実施形態に係るデータパケットの構造を示す図である。
【図4】パケットデータがRAM1021に格納されている状態を示す図である。
【図5】本発明の実施形態に係るコマンドパケットの構造を示す図である。
【図6】本発明の実施形態に係るインタラプトパケットの構造を示す図である。
【図7】タイル圧縮部1047の機能構成を示すブロック図である。
【図8】タイル伸張部1044の機能構成を示す図である。
【図9】レジスタ設定部806に設定された値によって、出力する画像特性情報を選択する回路の概略構成を示す図である。
【図10】画像特性情報の構成を示す図である。
【図11】画像付加データ再生部808が行う処理のフローチャートである。
【発明の属する技術分野】
本発明は、圧縮された画像を伸張する技術に関するものであるに関するものである。
【0002】
【従来の技術】
従来の画像処理システムにおいては、印字やネットワークを介した画像データの転送を行う際に、画像データ及び画像特性情報(画像を構成する各画素が夫々何の領域(例えば文字領域や写真領域など)であるかなどを示す属性情報)を圧縮し転送していた。これは転送するデータのデータ量をより小さくすることで、システム全体としてのパフォーマンスを上げるためである。
【0003】
しかしながら、画像データの圧縮結果が常に圧縮前のデータよりデータ量が少なくなるという保証はなく、画像データによっては圧縮すると圧縮前よりも大きくなってしまうものがあり、結果としてシステム全体のパフォーマンスを下げてしまうことが考えられる。このため、圧縮後の画像データ量を積算し、システム全体のパフォーマンスに影響を与える閾値に圧縮後のデータ量が達すると、転送データに画像特性情報を付加しない画像処理システムが提供されている。
【0004】
またその圧縮処理において、タイル単位で画像を圧縮する技術も従来から開示されている(例えば特許文献1を参照)。
【0005】
【特許文献1】
特開2003−69831公報
【0006】
【発明が解決しようとする課題】
しかしながら上記従来技術では、圧縮率の悪い画像データ(圧縮前よりも圧縮後の方がデータ量が大きくなる画像データ)を再び伸張して画像処理等を行う際には、上記画像特性情報が失われてしまっているので、画像特性情報を利用した高品位な処理を行えなくなる事が考えられる。
【0007】
本発明は以上の問題に鑑みてなされたものであり、画像特性情報が画像圧縮データに付加されていない場合であっても、この画像圧縮データを用いて、画像特性情報を利用した高品位な処理を実現させることを目的とする。
【0008】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【0009】
即ち、圧縮された画像を伸張する画像処理方法であって、
1ページの画像を構成する各タイルについて生成された、タイルの圧縮データとヘッダとを含むパケットを入力する入力工程と、
入力したパケット中のタイルの圧縮データを伸張し、当該タイルの画像を得る伸張工程と、
前記伸張工程で伸張した画像を構成する各画素の属性を示す特性情報が前記入力したパケット中に含まれているか否かを、前記入力したパケット中のヘッダを参照して判定する判定工程と、
前記判定工程で、前記特性情報が前記入力したパケット中に含まれていないと判定した場合、前記伸張工程で伸張した画像を用いて、当該画像を構成する各画素に関する情報を作成する作成工程と、
前記伸張工程で伸張した画像、前記作成工程で作成した情報をセットで出力する出力工程と
を備えることを特徴とする。
【0010】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【0011】
即ち、圧縮された画像を伸張する画像処理装置であって、
1ページの画像を構成する各タイルについて生成された、タイルの圧縮データとヘッダとを含むパケットを入力する入力手段と、
入力したパケット中のタイルの圧縮データを伸張し、当該タイルの画像を得る伸張手段と、
前記伸張手段が伸張した画像を構成する各画素の属性を示す特性情報が前記入力したパケット中に含まれているか否かを、前記入力したパケット中のヘッダを参照して判定する判定手段と、
前記判定手段が、前記特性情報が前記入力したパケット中に含まれていないと判定した場合、前記伸張手段が伸張した画像を用いて、当該画像を構成する各画素に関する情報を作成する作成手段と、
前記伸張手段が伸張した画像、前記作成手段が作成した情報をセットで出力する出力手段と
を備えることを特徴とする。
【0012】
【発明の実施の形態】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【0013】
<ネットワークシステムの概要説明>
図2は本実施形態に係る画像処理装置を含むネットワークシステムの概略構成を示す図である。
【0014】
2001は本実施形態に係る画像処理装置で、スキャナとプリンタから構成され、スキャナから読み込んだ画像のデータをローカルエリアネットワーク2002(以下LAN)を介して外部に出力したり、LAN2002を介して受信した画像のデータをプリンタによりプリントアウトすることができる。
【0015】
また、スキャナから読み込んだ画像のデータを不図示のFAX送信部により、PSTNまたはISDN2003を介して外部に出力したり、PSTNまたはISDN2003から受信した画像のデータをプリンタによりプリントアウトすることができる。
【0016】
2004はデータベースサーバで、画像処理装置2001が備えるスキャナにより読み込んだ画像(多値画像や2値画像)のデータをデータベースとして管理する。
【0017】
2005はデータベースサーバ2004に対するデータベースクライアントで、データベースサーバ2004に対してアクセスすることで、データベースサーバ2004が管理(保持)する画像データ閲覧したり、検索したり等することができる。
【0018】
2006は電子メールサーバである。2007は電子メールクライアントで、電子メールサーバ2006を介して他の装置から電子メールを受信したり、他の装置に対して電子メールを送信することができる。
【0019】
WWWサーバ2008はHTML文書のデータをLAN2002を介してアクセスのあった装置に対して提供するためのものである。画像処理装置2001は、このWWWサーバ2008に対してアクセスすることができ、このWWWサーバ2008から提供されるデータに従ったHTML文章をプリンタによってプリントアウトすることができる。
【0020】
ルータ2009はLAN2002をインターネット/イントラネット2010と連結させるためのものである。また同図ではこのインターネット/イントラネット2010には、前述したデータベースサーバ2004、WWWサーバ2008、電子メールサーバ2006,そして画像処理装置2001と同様の装置が夫々2011,2012,2013として接続されている。
【0021】
また画像処理装置2001は、PSTNまたはISDN2003を介して、FAX装置2014ともデータの送受信が可能になっている。また、LAN2002上にプリンタ2015も連結されており、このプリンタ2015により、画像処理装置2001がスキャナにより読み取った画像をプリントアウトすることができる。
【0022】
なお、本実施形態に係る画像処理装置を含むシステムの構成はこれに限定されるものではなく、様々な構成が考えられる。よって本実施形態に係る画像処理装置はそれら様々な構成のシステムにおいて、読み込んだ画像を他の装置に対して提供したり、他の装置から受信した画像をプリントアウトすることができる。
【0023】
また、以下用いる「画像」なる文言が意味するところは、文字情報が含まれていても良く、画像情報や文字情報が混在したものを画像と呼称する場合も以下用いる「画像」なる文言の意味するところに含まれるものとする。
【0024】
<画像処理装置の概要説明>
図1A、1Bは、本実施形態に係る画像処理装置の基本構成を示す図である。コントローラユニット1001は、画像入力デバイスであるスキャナ1002や画像出力デバイスであるプリンタ1003と接続し、一方ではLAN1004や公衆回線(WAN)1005と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開の為の制御処理を行う。以下では同図を用いて、各部の詳細について説明する。
【0025】
<システム制御部2150の概要説明>
図1A、1BにおいてCPU1006は、本装置全体の制御を行うと共に、画像処理装置2001が後述の各処理を行うために、各部を制御するためのものである。本実施形態ではCPU1006は、CPU0,CPU1の2つのCPUにより構成されているものとするが、この数に限定されるものではない。これら2つのCPU1006は共通のCPUバス1007に接続され、CPUバス1007は更にシステムバスブリッジ1008に接続している。
【0026】
システムバスブリッジ1008はバススイッチであり、ここにCPUバス1007、RAMコントローラ1009、ROMコントローラ1010、IOバス1011、サブバススイッチ1012、IOバス1013、画像リングインターフェース1014、画像リングインターフェース1015が接続されている。
【0027】
サブバススイッチ1012は第2のバススイッチであり、画像DMA1016、画像DMA1017、フォント伸張部1018、ソート回路1019、ビットマップトレース回路1020が接続され、これらのDMAから出力されるメモリアクセス要求を調停し、システムバスブリッジ1008への接続を行う。
【0028】
RAM1021はCPU1006が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。そのメモリの使用に係る制御はRAMコントローラ1009によって行われる。このRAM1021として本実施形態ではダイレクトRDRAMとするが、これに限定されるものではない。
【0029】
ROM1022はブートROMであり、本装置のブートプログラムが格納されており、ROMコントローラ1010により制御される。
【0030】
画像DMA1016は画像圧縮部1023と接続しており、レジスタアクセスリング1024を介して設定された情報に基づいて画像圧縮部1023を制御し、RAM1021上の非圧縮データの読み出し、圧縮、圧縮後のデータの書き戻しを行う。本実施形態ではこの圧縮アルゴリズムをJPEGとするが、これに限定されるものではない。
【0031】
画像DMA1017は画像伸張部1025と接続しており、レジスタアクセスリング1024を介して設定された情報に基づいて画像伸張部1025を制御し、RAM1021上の圧縮データの読み出し、伸張、伸張後のデータの書き戻しを行う。本実施形態ではこの伸張アルゴリズムは上記圧縮アルゴリズムに対応させるためにJPEGとするが、上記圧縮アルゴリズムと同様にこれに限定されるものではない。
【0032】
フォント伸張部1018はLANコントローラ1026等を介し、外部より転送されるPDLデータに含まれるフォントコードに基づき、ROM1022もしくは、RAM1021内に格納された圧縮フォントデータの伸張を行う。本実施形態ではこの伸張アルゴリズムをFBEアルゴリズムとするが、これに限定されるものではない。
【0033】
ソート回路1019はPDLデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える処理を行う。ビットマップトレース回路1020は、ビットマップデータより、エッジ情報を抽出する処理を行う。
【0034】
IOバス1011は内部のIOバスの一種であり、USBインターフェース1027、汎用シリアルポート1028、インタラプトコントローラ1029、GPIOインターフェース1030、そして操作部インターフェース1031がこれに接続されている。またIOバス1011には、バスアービタ(図示せず)が含まれる。
【0035】
操作部インターフェース1031は、操作指示を入力するための機能を備えると共に表示機能を備える操作部1032のインターフェース部で、この操作部1032に表示する画像データは操作部インターフェース1031を介して操作部1032に出力される。また、この操作部1032を用いて入力された操作指示はこの操作部インターフェース1031を介してCPU1006に通知される。
【0036】
IOバス1013は、内部のIOバスの一種であり、汎用バスインターフェース1033と、LANコントローラ1026とがこれに接続されている。IOバス1013には、バスアービタ(図示せず)が含まれる。
【0037】
汎用バスインターフェース1033は、2つの同一のバスインターフェースからなり、標準IOバスをサポートするバスブリッジである。本実施形態ではこの汎用バスインターフェース1033はPCIバスとするが、これに限定されるものではない。
【0038】
HDD1035はハードディスクドライブで、システムソフトウェア、画像データ等を格納する。HDD1035はディスクコントローラ1036を介して一方のPCIバス1034(同図ではPCI1)に接続される。
【0039】
LANコントローラ1026は、MAC回路1037、PHY/PMD回路1038を介してLAN1004に接続し、情報の入出力を行う。モデム1039は公衆回線1005に接続し、情報の入出力を行う。
【0040】
<画像処理部1041の概要説明>
次に図1A、1Bを用いて、画像処理部1041を構成する各部について説明する。画像リング1040は、一対の単方向接続経路の組み合わせにより構成される。画像リング1040は、画像処理部1041内で画像リングインターフェース1042、及び画像リングインターフェース1043を介してタイル伸張部1044、コマンド処理部1045、ステータス処理部1046、そしてタイル圧縮部1047と接続している。
【0041】
タイル伸張部1044は画像リングインターフェース1042以外にもタイルバス1048と接続しており、画像リング1040より入力された圧縮後の画像データを伸張し、タイルバス1048へ転送するバスブリッジである。タイルバス1048とは、1ページの画像データを所定の大きさの単位ブロック(タイルと呼ぶ)に分割し、タイル単位でデータ処理及び転送を行うバスである。即ち、タイル伸張部1044はタイル毎に画像を出力するものである。
【0042】
本実施形態ではタイル伸張部1044が行う伸張処理は、圧縮された画像データが多値画像データである場合にはJPEGに従った伸張処理、圧縮された画像データが2値画像データである場合にはパックビッツに従った伸張処理を行うものとするが、圧縮側とでアルゴリズムが対応していればこれに限定されるものではない。
【0043】
タイル圧縮部1047は画像リングインターフェース1043以外にもタイルバス1048と接続しており、タイルバス1048より入力された圧縮前の画像データを圧縮し、画像リング1040に出力するバスブリッジである。
【0044】
本実施形態ではタイル圧縮部1047が行う圧縮処理は、圧縮対象の画像データが多値画像データである場合にはJPEGに従った圧縮処理、圧縮対象の画像データが2値画像データである場合にはパックビッツに従った圧縮処理を行うものとするが、上記伸張処理と同様にこれに限定されるものではない。
【0045】
コマンド処理部1045は、画像リングインターフェース1042以外にもレジスタ設定バス1049と接続しており、画像リング1040を介して入力されたCPU1006より発行されたレジスタ設定要求を、レジスタ設定バス1049に接続されるこのブロックへ書き込む。また、CPU1006より発行されたレジスタ読み出し要求に基づき、レジスタ設定バス1049を介してこのレジスタより情報を読み出し、画像リングインターフェース1043に出力する。
【0046】
ステータス処理部1046は、各画像処理ブロックの情報を監視し、CPU1006に対してインタラプトを発行するためのインタラプトパケットを生成し、画像リングインターフェース1043に出力する。
【0047】
タイルバス1048には更に、レンダリング部インターフェース1050、画像入力インターフェース1051、画像出力インターフェース1052、多値化処理部1053、2値化処理部1054、色空間変換部1055、画像回転部1056、解像度変換部1057、そして画像一時保管部1058が接続されている。また、図中のタイルバス1048はバス・コントローラも含む。
【0048】
レンダリング部インターフェース1050は、後述するレンダリング部1067により生成されたビットマップイメージを入力するインターフェースである。レンダリング部1067とレンダリング部インターフェース1050は一般的なビデオ信号線1059で接続されている。レンダリング部インターフェース1050はタイルバス1048以外にも、メモリバス1060、レジスタ設定バス1049とも接続しており、入力されたラスタ画像(ビットマップイメージ)を、レジスタ設定バス1049を介して設定された所定の方法によりタイル画像への構造変換をすると同時にクロックの同期化を行い、タイルバス1048に対して出力する。
【0049】
画像入力インターフェース1051は、スキャナ1002によって読み取られた(スキャンした)画像のデータを入力とし、タイル画像への構造変換及び、クロックレートの変更を行い、夫々のタイルの画像データを画像処理部1041に出力する。
【0050】
画像出力インターフェース1052は、タイルバス1048から出力されたタイル画像データを入力とし、ラスター画像への構造変換、及びクロックレートの変更を行い、ラスター画像をプリンタ用画像処理部1061に出力する。画像回転部1055、1056は画像データの回転を行う。解像度変換部1057は画像の解像度の変換を行う。2値化処理部1054は多値(カラー及びグレースケール)画像を2値化し、2値画像に変換する。多値化処理部1053は、2値画像を多値画像に変換する。
【0051】
画像一時保管部1058は、受信した画像データを内部の記憶部に一旦記憶し、記憶し終わると直ちに、受信したデータの他ブロックへの送信を行う。
【0052】
外部バスインターフェース部1062は、画像リングインターフェース1014,1015,1042,1043、コマンド処理部1045、レジスタ設定バス1049を介し、CPU1006により発行された書き込み・読み出し要求を外部バス1063に変換出力するバスブリッジである。外部バス1063は、本実施形態ではプリンタ用画像処理部1061、スキャナ用画像処理部1064に接続されている。
【0053】
メモリ制御部1065は、メモリバス1060に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ1及び2からなる画像メモリ1066に対して、画像データの書き込み・読み出しを行い、そして必要に応じてリフレッシュ等の動作を行う。本実施形態では画像メモリ1066としてSDRAMを用いるが、これに限定されるものではない。
【0054】
スキャナ用画像処理部1065は、画像入力デバイスであるスキャナ1002によりスキャンされた画像データに対して補正処理などを行う。
【0055】
プリンタ用画像処理部1061は、プリンタ出力のための補正画像処理を行い、その結果をプリンタ1003に出力する。
【0056】
レンダリング部1067は、PDLコードもしくは、中間ディスプレイリストをビットマップイメージに展開する。
【0057】
<パケットフォーマット>
次に、本実施形態で用いるデータフォーマットについて説明する。図1A、1Bに示したコントローラユニット1001内では、画像データ、及びCPU1006によるコマンド、各ブロックからの割り込み情報は、夫々パケット化された形式で転送される。以下、これら夫々のパケットであるデータパケット、コマンドパケット、そしてインタラプトパケットの3種類について説明する。
【0058】
・ データパケット
図3は、本実施形態に係るデータパケットの構造を示す図である。また本実施形態では画像データを32画素×32画素を単位とする画像3002(タイル)毎に分割して扱うものとする。このタイル単位の画像に、必要なヘッダ情報3001、及び画像特性情報3003等を結合したパケットをデータパケットと呼ぶ。なお画像特性情報3003は上述の通り、画像を構成する各画素が夫々何の領域(例えば文字領域や写真領域など)であるかなどを示す属性情報である。
【0059】
先ず初めにヘッダ情報3001に含まれる各情報について説明する。パケットはヘッダ情報3001内のPcktType3004内のPacketTypeID3023の値によってデータパケット、コマンドパケット及びインタラプトパケットに区別される。本実施形態ではPacketTypeIDを3ビットで表現し、
として各パケットを区別するものとするが、これに限定されるものではない。
【0060】
また、PcktType3004にはRepeatFlag3022が含まれており、データパケットの画像データ3002及び画像特性情報3003、ヘッダ情報3001内の所定の情報が1つ前に送信したデータパケットと同一の場合、RepeatFlag3022に1をセットする。この場合、パケットの転送はヘッダ情報3001のみ行われる。
【0061】
ChipID3005はパケットを送信するターゲットとなるチップのIDを示す。ImageType3006は画像データのタイプを示す。本実施形態ではImageType3006は8ビットで表現し、上位2ビットを用いて画像データ3002のタイプ(即ち、画像データ3002を含む画像全体のタイプ)を以下のように規定する。
【0062】
PageID3007はデータパケットが含まれるページを示しており、JobID3008はソフトウェアで管理するためのJob IDを格納する。
【0063】
データパケットのページ上の並び順はY方向のTile座標3009(Yn)とX方向のTile座標3010(Xn)の組み合わせで、YnXnで表される。
【0064】
Process Instruction3011は左詰で8bit毎に処理順に設定し、各処理Unitは処理後Process Instructionを左に8BitShiftする。Process Instruction3011はUnitID3024とMode3025の組が8組格納されている。UnitID3024は画像処理部1041の各処理Unitを指定し、Mode3025は各処理Unitでの動作Modeを指定する。これにより、1つのパケットは8つのUnitまで連続して処理することができる。
【0065】
PacketByteLength3012はパケットのトータルバイト数を示す。ImageDataByteLengh3015は画像データのバイト数、ZDataByteLength3016は画像特性情報のバイト数を表し、ImageDataOffset3013、ZDataOffset3014はそれぞれのデータに対するパケットの先頭からのOffsetの値を表している。
【0066】
データパケットでは、パケットが持つ画像データ及び画像特性情報が圧縮されている場合と非圧縮の場合が存在する。本実施形態では圧縮アルゴリズムとして、画像データが多値カラー(多値グレースケールを含む)の場合はJPEGを、2値の場合及び画像特性情報はパックビッツを採用した例を示す。
【0067】
上記方式により画像データ及び画像特性情報が圧縮されている場合と非圧縮の場合との区別は、それぞれCompressFlag3017内のImageData3026及びZdata3027が1の場合は圧縮データ、0の場合は非圧縮データであることを表す。
【0068】
CompressFlag3017内にはJPEGにより圧縮処理を行う際に使用した量子化テーブルの種類を格納するQ−TableID3028が用意されており、量子化テーブルが複数ある場合、データの圧縮及び伸長時はこの値を参照して使用する量子化テーブルの切替を行う。SourceID3018は画像データ及び画像特性情報が生成されたソースを示す。
【0069】
Ztype3020は画像特性情報における有効bit幅を示し、Ztype3020で示したbit以外の画像特性情報は無効情報とする。尚、Ztype3020が0である場合は入力された画像特性情報全てが無効であることを表す。Zdummy3033は後述のCompressFailフラグが立った場合に、画像特性情報の代替値がセットされるためのものである。
【0070】
ThumbnailData3021はデータパケットの画像データを代表する値(以下、サムネール値と呼ぶ)を格納する。本実施形態ではthumbnailData3021に最大4つのサムネール値を格納することができる構成となっている。
【0071】
Misc3019は上記の各情報以外に必要となる情報を格納する。本実施形態ではChar−flag3029及びQ−TableSel3030が用意されている。Char−flag3029にはデータパケットが属する領域信号が格納される。Q−TableSel3030にはJPEG方式による圧縮及び伸長時に使用する量子化テーブルを変更するための情報が格納される。
【0072】
・ PacketTable/ChainTable
前述のパケット・データはメモリに格納される際には、PacketTableという形態で管理される。図4はパケットデータがRAM1021に格納されている状態を示す図である。Packet Table4001の構成要素は次の通りで、それぞれTableの値に0を5bit付加すると、パケットの先頭アドレス4002、パケットのByte Length4005となる。
【0073】
なお、Packet Table4001とChain Table4010は分割されないものとする。Packet Table4001は常に走査方向に並んでおり、Yn/Xn=000/000、000/001、000/002、、、という順で並んでいる。このPacket Table4001のEntryは一意にひとつのTileを示す。また、Yn/Xmaxの次のEntryはYn+1/X0となる。
【0074】
ヘッダ情報3001内のRepeatFlag3002がセットされているパケットが入力される場合は、そのパケットはMemory上には書かず、Packet TableのEntryに1つめのEntryと同じPacket Address Pointer、Packet Lengthを格納する。1つのPacket Dataを2つのTable Entryが指すかたちになる。この場合、2つめのTable EntryのRepeat Flag5003がSetされる。
【0075】
PacketがChain DMAにより複数に分断された場合は、Divide Flag4004をSetし、そのPacketの先頭部分が入っているChain BlockのChain Table番号4006をSetする。Chain Table4007のEntryはChain Block Address4008とChain Block Length4009からなっており、Tableの最後のEntryにはAddress、Length共に0を格納しておく。
【0076】
・ コマンド・パケット
本Packet Formatはレジスタ設定バス2109へのアクセスを行うためのものである。本パケットを用いることにより、CPU1006より画像メモリ1066へのアクセスも可能である。
【0077】
図5は、本実施形態に係るコマンドパケットの構造を示す図である。ChipID5004にはコマンドパケットの送信先となる画像処理部1041を表すIDが格納される。
【0078】
PageID5007、JobID5008はソフトウェアで管理するためのPage IDとJob IDを格納する。Packet ID5009は1次元で表されるData PacketのX−coordinateのみを使用する。パケットバイトレングス5010は128Byte固定である。
【0079】
パケットデータ部5002には、アドレス5011とデータ5012の組を1つのコマンドとして、最大12個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプはCmdType5005で示され、コマンドの数はCmdnum5006で示される。
【0080】
・ インタラプトパケット
本PacketFormatは画像処理部1041からCPU1006への割り込みを通知するためのものである。ステータス処理部1046はインタラプトパケットを送信すると、次に送信の許可がされるまではインタラプト・パケットを送信してはならない。
【0081】
図6は、本実施形態に係るインタラプトパケットの構造を示す図である。パケットバイトレングス6006は128Byte固定である。パケットデータ部6002には、画像処理部1041の各内部モジュールのステータス情報6007が格納されている。ステータス処理部1046は画像処理部1041内の各モジュールのステータス情報を集め、一括してシステム制御部2150に送ることができる。
【0082】
ChipID6004にはインタラプトパケットの送信先となるシステム制御部2150を表すIDが、また、IntChipID6005にはインタラプトパケットの送信元となる画像処理部1041を表すIDが格納される。
【0083】
<タイル圧縮部1047>
次に、タイル圧縮部1047について詳細に説明する。図7はタイル圧縮部1047の機能構成を示すブロック図である。図7において、701はタイルバスインターフェイス部であり、タイルバス1048とハンドシェイクを行い、タイルバス1048から入力されるヘッダ情報、画像データ及び画像特性情報を取得し、後段に接続された各処理ブロックへ夫々のデータを出力する。
【0084】
また、タイルバスインターフェイス部701ではタイルバス1048から送られてくるヘッダ情報の解析を行い、ヘッダ情報に矛盾がある場合は後述のレジスタ設定部706に矛盾内容に相当する割り込み信号を出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0085】
一方、ヘッダ情報に矛盾がない場合は、タイルバスインターフェース部701は後段に接続されたヘッダ情報生成部702に対してヘッダ情報を出力した後、タイルバス1048から画像データと画像特性情報を取得して、ヘッダ情報のImageType3006に従って第1圧縮処理部703(本実施形態ではJPEG方式の圧縮を行う)及び第2圧縮処理部704(本実施形態ではパックビッツ方式の圧縮を行う)夫々に画像データ又は画像特性情報を出力する。
【0086】
具体的には、ImageType3006の上位2ビットが1ビットの画像データを表す00bの場合には、第1圧縮処理部703は使用せずに画像データを第2圧縮処理部704へ出力する。
【0087】
また、ImageTypeの上位2ビットが00b以外の場合、画像データを第1圧縮処理部703へ出力するとともに画像特性情報を第2圧縮処理部704へ出力する。ただし、Ztype3020が0の場合は入力された画像特性情報は無効であるため、画像特性情報を第2圧縮処理部204に出力せず、第2圧縮処理部204による圧縮処理は行わない。
【0088】
702はヘッダ情報生成部であり、第1圧縮処理部703及び第2圧縮処理部704において画像データ及び画像特性情報の圧縮処理を行っている間、ヘッダ情報を生成する。また、ヘッダ情報生成部702は格納したヘッダ情報の中から圧縮処理に必要な情報を第1圧縮処理部703及び第2圧縮処理部704に対して出力する。
【0089】
703は第1圧縮処理部であり、上述の通りJPEG方式による圧縮処理を行う。第1圧縮処理部703は画像データが複数bit構成であった場合に画像データの圧縮処理を行う。また、第1圧縮処理部703では入力された画像データを1タイル分格納するためのバッファを持ち、次のパケットの画像データが入力されるまで直前に処理したパケットの画像データを保持しておくことで、タイルバスインターフェイス部701から入力された画像データとバッファ内に格納された画像データの比較を行う。比較結果は後述の画像リング出力部705に送られ、RepeatFlag3022を生成する際に参照される。
【0090】
尚、第1圧縮処理部703において圧縮処理を行っている際に動作の異常を検知した場合、第1圧縮処理部703は異常動作の内容に相当する割り込み信号をレジスタ設定部706に対して出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0091】
704は第2圧縮処理部であり、上述の通り情報ロスのない圧縮方式であるパックビッツ方式による圧縮処理を行う。第2圧縮処理部704では入力されたパケットの画像データが1bit構成であった場合は画像データを、または画像特性情報が存在する(Ztype3020が0でない)場合は、画像特性情報をパックビッツ方式によって圧縮する。
【0092】
また第2圧縮処理部704でも、入力された画像特性情報を1パケット分格納するためのバッファを持ち、直前に入力された1bit画像データ又は画像特性情報を保持しておくことにより、タイルバスインターフェイス部701から入力された画像又は画像特性情報とバッファ内に格納されたデータの比較を行う。比較結果は後述の画像リング出力部705に送られ、RepeatFlag3022を生成する際に参照される。
【0093】
尚、第2圧縮処理部704において圧縮処理を行っている際に動作の異常を検知した場合、第2圧縮処理部704は異常動作の内容に相当する割り込み信号をレジスタ設定部706に対して出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0094】
705は画像リング出力部であり、ヘッダ情報生成部702、第1圧縮処理部703及び第2圧縮処理部704から処理情報及び画像データ、画像特性情報を取得し、ヘッダ情報に対して所定の値を設定してから図3に示すデータパケットを生成して画像リングインターフェイス1043に出力する。
【0095】
706はタイル圧縮部1047内部の処理に関して設定を行うためのレジスタ設定部であり、タイル圧縮部1047に所定の圧縮処理を行わせるためには、レジスタ設定部706に所定の値(伸張処理部を制御するための予め決められた(プログラムされた)値)を設定する必要がある。これらの設定はコマンドパケットを用いてシステム制御部2150から画像処理部1041のコマンド処理部1045に送り、コマンド処理部1045からレジスタ設定バス1049を介してタイル圧縮部1047に送られることにより行う。レジスタ設定部706に設定された値は、第1圧縮処理部703及び第2圧縮処理部704に送られ、両圧縮処理部はそれらの設定値を参照することにより決められた処理を行う。
【0096】
尚、レジスタ設定部706へはコマンドパケットを用いて値を設定するだけでなく、コマンドパケットを用いてレジスタ設定部706が保持している設定値をシステム制御部2150へ出力することも可能である。
【0097】
さらに、レジスタ設定部706はタイルバスインターフェース部701、第1圧縮処理部703、第2圧縮処理部704から入力された割り込み信号に対応するレジスタを持ち、いずれかのブロックから割り込み信号が入力されると対応するレジスタの値をセットした後に、ステータス処理部1046に対して割り込みが発生したことを知らせるインタラプト信号及びいずれのブロックで割り込みが発生したかを表すステータス信号を出力する。
【0098】
707はレジスタ設定バスインターフェイス部であり、レジスタ設定バス1049からタイル圧縮部1047に入力されたアドレス及び設定値を、レジスタ設定部706が受け取れるフォーマットに変換して送る。
【0099】
なお、レジスタ設定バスインターフェイス部707はレジスタ設定バス1049からレジスタ設定値を受け取るだけでなく、レジスタ設定バス1049が示したアドレスに対応する設定値をレジスタ設定部706から読み出してレジスタ設定バス1049に出力することも可能である。
【0100】
708はデータ量計算部で、画像リング出力部705が画像リング1043に出力した圧縮後の画像データのデータ量の積算値を、パケットヘッダーのPageID3007単位で計算するブロックである。即ち、1ページを構成する各タイルについての圧縮データを逐次加算し、その合計値を求める。
【0101】
PageID3007の値が変更にならない限り、画像リング出力部705が出力した圧縮後画像データのデータ量の積算を行う。但し、PageID3007が変更された場合にはデータ量積算値を0にリセットする。これにより、各ページ毎の圧縮データのサイズを求めることができる。
【0102】
799はデータ量比較部で、データ量計算部708で計算されたデータ量の積算値と、レジスタ設定部706に設定されたデータ閾値とを比較し、画像リング出力部705に比較結果を出力するブロックである。
【0103】
画像リング出力部705は、データ量比較部709からの比較結果信号により、データ量積算値が閾値を超えていた場合、以後、同一のPageIDで出力するデータパケット内に画像特性情報を付加しない。このときパケットヘッダー内のZtype3020及び、Z Data Byte Length3016の値は0になる。
【0104】
<タイル伸張部1044>
次に、タイル伸張部1044について説明する。図8はタイル伸張部1044の機能構成を示す図である。801は画像リング入力部で、図3に示す構成を備えるパケットのデータを受信し、このパケットに含まれる、ヘッダ情報、画像データ、画像特性情報を取得し、後段の各ブロックに夫々のデータを出力する。
【0105】
また、画像リング入力部801では、画像リングインターフェース1042から送られてくるデータパケット内のヘッダ情報の解析を行い、ヘッダ情報に矛盾がある場合は後述のレジスタ設定部806に矛盾内容に相当する割り込み信号を出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0106】
一方、ヘッダ情報に矛盾がない場合は、後段のヘッダ情報保持部802にこのヘッダ情報を出力した後、ヘッダ情報中のImageType3006に従って第1伸張処理部803(本実施形態ではJPEG方式に従った伸張処理を行う)、及び第2伸張処理部804(本実施形態ではパックビッツ方式に従った伸張処理を行う)夫々に画像データ又は画像特性情報を出力する。
【0107】
具体的には、ヘッダ情報におけるImageTypeの上位2ビットが1ビットの画像データを表す00bの場合には、第1伸張処理部803は使用せずに画像データを第2伸張処理部804へ出力する。
【0108】
また、ImageTypeの上位2ビットが00b以外の場合、画像データを第1伸張処理部803へ出力すると共に、画像特性情報を第2伸張処理部804へ出力する。
【0109】
802はヘッダ情報保持部で、画像リング入力部801を介して入力されたヘッダ情報を、第1伸張処理部803、及び第2伸張処理部804が画像データ。及び画像特性情報の伸張処理を行っている間、保持する。また、ヘッダ情報保持部802は、格納したヘッダ情報の中から伸張処理に必要な情報を第1伸張処理部803、及び第2伸張部第2伸張処理部804に出力する。
【0110】
803は第1伸張処理部で、本実施形態ではJPEG方式に従って、入力された圧縮データに対して伸張処理を行う。上述の通り、第1伸張処理部803には、各画素が複数ビットで表現される画像の圧縮データが入力される。また、第1伸張処理部803は、伸張された画像データを1タイル分格納するためのバッファを持ち、次のパケットの画像データが入力されるまで直前に処理したタイル画像データを保持しておくことで、画像リング入力部801から入力されたパケットのヘッダ内のRepeatFlag3022を参照し、1の場合は、バッファ内に格納されたタイル画像データをタイルバスインターフェイス部805に出力する。
【0111】
尚、第1伸張処理部803において伸張処理を行っている際に第1伸張処理部803が動作の異常を検知した場合、第1伸張処理部803は異常動作の内容に相当する割り込み信号をレジスタ設定部806に対して出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0112】
804は第2伸張処理部で、本実施形態では情報ロスのない圧縮方式に対応する伸張方式、具体的にはパックビッツ方式に従って、入力された圧縮データに対して伸張処理を行う。上述の通り、第2伸張処理部804には、各画素が1ビットで表現される画像の圧縮データが入力される。また、パケットデータ内に画像特性情報が含まれている場合(Ztype3020が0でない場合)には、この画像特性情報に対しても、パックビッツ方式に従って伸張処理を行う。
【0113】
また第2伸張処理部804は第1伸張処理部803と同様に、伸張された画像データを1タイル分格納するためのバッファを持ち、次のパケットの画像データが入力されるまで直前に処理したタイル画像データを保持しておくことで、画像リング入力部801から入力されたパケットのヘッダ内のRepeatFlag3022を参照し、1の場合は、バッファ内に格納されたタイル画像データをタイルバスインターフェイス部805に出力する。
【0114】
尚、第2伸張処理部804において伸張処理を行っている際に第2伸張処理部804が動作の異常を検知した場合、第2伸張処理部804は異常動作の内容に相当する割り込み信号をレジスタ設定部806に対して出力した後、リセット信号(不図示)が入力されるまで動作を停止する。
【0115】
805はタイルバスインターフェイス部で、ヘッダ情報保持部802からヘッダ中の必要な情報を、第1伸張処理部803もしくは第2伸張処理部804から画像データ、画像特性情報を1タイル分のデータとして取得し、タイルバスのプロトコルに従い、タイルバス1048にこの1タイル分のデータを出力する。
【0116】
806はタイル伸張部1044内部の処理に関して設定を行うためのレジスタ設定部であり、タイル伸張部1044に所定の圧縮処理を行わせるためには、レジスタ設定部806に所定の値(伸張処理部を制御するための予め決められた(プログラムされた)値)を設定する必要がある。これらの設定はコマンドパケットを用いてシステム制御部1070から画像処理部1041のコマンド処理部1045に送り、コマンド処理部1045からレジスタ設定バス1049を介してタイル伸張部1044に送られることにより行う。
【0117】
レジスタ設定部806に設定された値は、第1圧縮処理部803、及び第2伸張処理部804に送られ、両伸張処理部はそれらの設定値を参照することにより決められた処理を行う。
【0118】
尚、レジスタ設定部806へはコマンドパケットを用いて値を設定するだけでなく、コマンドパケットを用いてレジスタ設定部が保持している設定値をシステム制御部1070へ出力することも可能である。
【0119】
さらに、レジスタ設定部806は画像リング入力部801、第1伸張処理部803、及び第2伸張処理部804から入力された割り込み信号に対応するレジスタを持ち、いずれかのブロックから割り込み信号が入力されると対応するレジスタの値をセットした後に、ステータス処理部1046に対して割り込みが発生したことを知らせるインタラプト信号及びいずれのブロックで割り込みが発生したかを表すステータス信号を出力する。
【0120】
807はレジスタ設定バスインターフェイス部で、レジスタ設定バス1049からタイル伸張部1044に入力されたアドレス及び設定値を、レジスタ設定部806が受け取れるフォーマットに変換して送るためのブロックである。なお、レジスタ設定バスインターフェイス部807はレジスタ設定バス1049からレジスタ設定値を受け取るだけでなく、レジスタ設定バスが示したアドレスに対応する設定値をレジスタ設定部806から読み出してレジスタ設定バスに出力することも可能である。
【0121】
808は画像付加データ再生部であり、ヘッダ情報保持部802に保持されているヘッダ情報内のZtype3020を参照し、これが0の場合、即ち、受信したパケット内に画像特性情報が存在しない場合(無効情報であることも含む)、第1伸張処理部803、及び第2伸張処理部804から出力される伸張後のタイルの画像データを用いて、この画像データに関する情報として以下の3つの情報を生成する。
【0122】
・ 各画素が有彩色であるか無彩色であるかの情報
・ 各画素が孤立点であるか否かの情報
・ 各画素が文字部であるか否かのフラグ情報
以下、この3つの夫々の情報について説明する。
【0123】
<有彩・無彩色の判定>
第1伸張処理部803から入力された、各画素が複数ビットにより表現される画像、即ちカラー画像のデータを用いて、この画像の各画素が有彩色であるか、無彩色であるかの判定を行う。その方法としては、画素のR,G,B(またはC、M、Y)の夫々の値の最大値、最小値を求め、夫々を比較することで、この画素の画素値が有彩色を示すものであるか、無彩色を示すものであるかを判定する。例えば、YUVであればUVが80h近辺であるかどうかで判定することができる。
【0124】
<孤立点の判定>
第1伸張処理部803、もしくは第2伸張処理部804から入力された画像において、注目画素が孤立点であるか否かの判定を行う。この場合、例えば5×5のサイズのウィンドウを用いて、この注目画素が孤立点であるか否かの判定を行う。このようにして、この画像を構成する各画素に対して、孤立点であるか否かのフラグ情報を求める。
【0125】
この孤立点の求め方については周知の技術であるので、詳細な説明は省略するが、本実施形態ではこの孤立点の求め方については特に限定されるものではなく、他の求め方を用いても良い。
【0126】
<文字フラグの判定>
第1伸張処理部803、もしくは第2伸張処理部804から入力された画像において、注目画素が文字領域内の画素であるか否かの判定を行うとすると、3×3画素での微分により濃度の傾きを計算し、エッジ判定を行う。そして無彩色で且つエッジならば文字と判定する。この技術についても周知の技術であるので、詳細な説明は省略するが、本実施形態ではこの方法に限定されるものではない。
【0127】
また、画像付加データ再生部808はレジスタ設定部806に設定された値によって、出力する画像特性情報を選択する回路を備えている。図9はこの回路の概略構成を示す図である。
【0128】
901,902,903は夫々セレクタで、レジスタ設定部806に設定されている3ビットの画像付加データ設定値(予め決められた(プログラムされた、またはユーザーが制御部より設定した)値で、機器の動作モードによって切り替える)の各ビットが夫々のセレクタに対するセレクト信号になっている。同図の場合、この3ビットのうち最初のビット(ビット0)はセレクタ901に対するセレクト信号として用いられており、次の1ビット(ビット1)はセレクタ902に対するセレクト信号として用いられており、最後の1ビット(ビット2)はセレクタ903に対するセレクト信号として用いられている。
【0129】
各セレクタ901,902,903はセレクト信号が0の場合は画像付加データ再生部808が生成した付加データを選択し、1の場合はレジスタ設定部806に設定されている画像付加データ設定値を出力する。画像特性情報は画像データ1画素に対して3bitの情報で、各bitに意味をもたせたものである。
【0130】
図10は画像特性情報の構成を示す図である。bit0が1の時は、対応している画像データが有彩色であることを表している。bit0が1の時は、対応している画像データが無彩色であることを表している。bit1が0の時は、対応している画像データが孤立点データでないこと、bit1が1の時は孤立点データであることを表している。bit2が0の時は対応している画像データが文字データ以外であること、1である時は文字データであることを表している。
【0131】
この画像特性情報は画像データとともにプリンタ1003に転送され、プリンタ1003はこの画像特性情報をプリンタ固有の画像処理のパラメータとして用いる。従来では画像特性情報が欠損した画像データの場合、実際には画像が出力できなくなるわけではなく、高精彩、高品位な画像設定でのプリントモードが選択できなってしまうが、本実施形態により、画像特性情報が欠損した画像データであっても、これら高精彩、高品位な画像設定でのプリントモードを使用することができ、ユーザーが満足する画像を出力することが可能である。
【0132】
図11は、画像付加データ再生部808が行う処理のフローチャートである。まずパケットのヘッダ情報内のZtype3020を参照し、これが0の場合(ステップS1101)、処理をステップS1102に進め、パケット中に画像特性情報が存在しないと判断するので、前述した方法で伸張部が出力する伸張後の画像データからの画像特性情報を生成する(ステップS1102)。次に、図10で示されたように画像特性情報を選択し(ステップS1103)、これを出力する(ステップS1104)。
【0133】
以上の説明により、本実施形態によれば、従来の画像データのみでのプリントでは1ページ内は全て同じ画像処理を用いていたのに対し、画像特性情報を用いているので、1ページ内でも、画素毎にその画素がもつ特性に応じた画像処理を行うことができる。
【0134】
[その他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0135】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0136】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0137】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0138】
【発明の効果】
以上の説明により、本発明によって、画像特性情報が画像圧縮データに付加されていない場合であっても、この画像圧縮データを用いて、画像特性情報を利用した高品位な処理を実現させることができる。
【図面の簡単な説明】
【図1A】本発明の実施形態に係る画像処理装置の基本構成を示す図である。
【図1B】本発明の実施形態に係る画像処理装置の基本構成を示す図である。
【図2】本発明の実施形態に係る画像処理装置を含むネットワークシステムの概略構成を示す図である。
【図3】本発明の実施形態に係るデータパケットの構造を示す図である。
【図4】パケットデータがRAM1021に格納されている状態を示す図である。
【図5】本発明の実施形態に係るコマンドパケットの構造を示す図である。
【図6】本発明の実施形態に係るインタラプトパケットの構造を示す図である。
【図7】タイル圧縮部1047の機能構成を示すブロック図である。
【図8】タイル伸張部1044の機能構成を示す図である。
【図9】レジスタ設定部806に設定された値によって、出力する画像特性情報を選択する回路の概略構成を示す図である。
【図10】画像特性情報の構成を示す図である。
【図11】画像付加データ再生部808が行う処理のフローチャートである。
Claims (7)
- 圧縮された画像を伸張する画像処理方法であって、
1ページの画像を構成する各タイルについて生成された、タイルの圧縮データとヘッダとを含むパケットを入力する入力工程と、
入力したパケット中のタイルの圧縮データを伸張し、当該タイルの画像を得る伸張工程と、
前記伸張工程で伸張した画像を構成する各画素の属性を示す特性情報が前記入力したパケット中に含まれているか否かを、前記入力したパケット中のヘッダを参照して判定する判定工程と、
前記判定工程で、前記特性情報が前記入力したパケット中に含まれていないと判定した場合、前記伸張工程で伸張した画像を用いて、当該画像を構成する各画素に関する情報を作成する作成工程と、
前記伸張工程で伸張した画像、前記作成工程で作成した情報をセットで出力する出力工程と
を備えることを特徴とする画像処理方法。 - 前記伸張工程では、前記入力したパケット中のヘッダを参照し、前記入力したパケット中の圧縮データが、各画素が1ビットの画像の圧縮データである場合、前記入力したパケット中の圧縮データをパックビッツ方式で伸張し、前記入力したパケット中の圧縮データが、各画素が複数ビットの画像の圧縮データである場合、前記入力したパケット中の圧縮データをJPEG方式で伸張することを特徴とする請求項1に記載の画像処理方法。
- 前記判定工程では、前記ヘッダ中のZtypeを参照し、Ztype=0であれば、前記特性情報が前記入力したパケット中に含まれていないと判定することを特徴とする請求項1に記載の画像処理方法。
- 前記作成工程では、前記伸張工程で伸張した画像を構成する各画素に関する情報として、前記伸張工程で伸張した画像を構成する各画素の色が有彩色をであるか無彩色であるかを示す第1の情報と、前記伸張工程で伸張した画像を構成する各画素が孤立点であるか否かを示す第2の情報と、前記伸張工程で伸張した画像を構成する各画素が文字領域に含まれているか否かを示す第3の情報とを求めることを特徴とする請求項1に記載の画像処理方法。
- 圧縮された画像を伸張する画像処理装置であって、
1ページの画像を構成する各タイルについて生成された、タイルの圧縮データとヘッダとを含むパケットを入力する入力手段と、
入力したパケット中のタイルの圧縮データを伸張し、当該タイルの画像を得る伸張手段と、
前記伸張手段が伸張した画像を構成する各画素の属性を示す特性情報が前記入力したパケット中に含まれているか否かを、前記入力したパケット中のヘッダを参照して判定する判定手段と、
前記判定手段が、前記特性情報が前記入力したパケット中に含まれていないと判定した場合、前記伸張手段が伸張した画像を用いて、当該画像を構成する各画素に関する情報を作成する作成手段と、
前記伸張手段が伸張した画像、前記作成手段が作成した情報をセットで出力する出力手段と
を備えることを特徴とする画像処理装置。 - コンピュータに請求項1乃至4の何れか1項に記載の画像処理方法を実行させるプログラム。
- 請求項6に記載のプログラムを格納する、コンピュータ読み取り可能な記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003178606A JP2005020094A (ja) | 2003-06-23 | 2003-06-23 | 画像処理方法、画像処理装置 |
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 |
---|---|---|---|
JP2003178606A JP2005020094A (ja) | 2003-06-23 | 2003-06-23 | 画像処理方法、画像処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005020094A true JP2005020094A (ja) | 2005-01-20 |
Family
ID=34180168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003178606A Withdrawn JP2005020094A (ja) | 2002-09-27 | 2003-06-23 | 画像処理方法、画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005020094A (ja) |
-
2003
- 2003-06-23 JP JP2003178606A patent/JP2005020094A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4065503B2 (ja) | 画像処理装置、画像入出力装置、変倍処理方法、及びメモリ制御方法 | |
US7130072B2 (en) | Multifunction system, image processing method, computer program and memory medium | |
JP2003244446A (ja) | 画像処理装置及び画像処理方法 | |
JP3862605B2 (ja) | 画像処理装置 | |
US7447384B2 (en) | Image processing method and apparatus | |
JP2003316714A (ja) | 情報処理装置及び方法 | |
US20020054342A1 (en) | Image processing apparatus and method, and storage medium | |
JP4065550B2 (ja) | 画像入出力制御装置、画像処理装置、画像入出力制御装置における画像処理方法、及び画像処理装置における画像処理方法 | |
US20110205591A1 (en) | Image processing device and image processing method | |
JP2005045458A (ja) | 画像圧縮方法、画像圧縮装置 | |
JP4136573B2 (ja) | 画像処理方法、画像処理装置、プログラム及び記録媒体 | |
JP2005020094A (ja) | 画像処理方法、画像処理装置 | |
JP4859215B2 (ja) | データ処理装置、及び、制御方法 | |
JP4906097B2 (ja) | メモリインターフェイスユニットおよびメモリユニット | |
JP2003348338A (ja) | 情報処理装置 | |
JPH11187261A (ja) | 画像処理装置 | |
JP2003250050A (ja) | 画像処理装置及びその制御方法 | |
JP2003224727A (ja) | 画像処理システム | |
JP2002354225A (ja) | 画像処理装置及びその制御方法 | |
JP2004253906A (ja) | 伸長装置 | |
JP2004165902A (ja) | 画像処理装置 | |
JP2003234910A (ja) | マルチファンクションシステム | |
JP2002281293A (ja) | 画像処理装置および画像処理システム | |
JP2003069831A (ja) | 画像処理装置、画像表示方法、並びにコンピュータ・プログラム | |
JP2004120135A (ja) | 画像処理装置、及び、その制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060905 |