JP2004165902A - Image processing apparatus - Google Patents

Image processing apparatus Download PDF

Info

Publication number
JP2004165902A
JP2004165902A JP2002328316A JP2002328316A JP2004165902A JP 2004165902 A JP2004165902 A JP 2004165902A JP 2002328316 A JP2002328316 A JP 2002328316A JP 2002328316 A JP2002328316 A JP 2002328316A JP 2004165902 A JP2004165902 A JP 2004165902A
Authority
JP
Japan
Prior art keywords
image
unit
data
processing
packet
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
Application number
JP2002328316A
Other languages
Japanese (ja)
Inventor
Katsuya Suzuki
勝也 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2002328316A priority Critical patent/JP2004165902A/en
Publication of JP2004165902A publication Critical patent/JP2004165902A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To make processing fast by suppressing an increase in the circuit scale that a quantization table occupies. <P>SOLUTION: The quantization table 109 is not present at each JPEG compression part 110, but shared by a common memory means. The quantization table 109 contains a plurality of quantization tables and a specified quantization table is selected with a select signal inputted from a quantization table selection part 108 to output a quantization value to a quantization part 103. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、画像処理を行う画像処理装置に関するものであり、詳細には、原画像を分割した分割画像を処理する画像処理装置に関するものである。
【0002】
【従来の技術】
従来から、画像処理の処理速度を高速化するために、画像データを矩形画像単位に分割し、複数の画像処理ユニットを用いてそれらの矩形画像を並列に処理することで、所望の処理速度を得ることが可能である(例えば、特許文献1参照。)。
【0003】
また、更なる高速化を図るために、より多くの画像処理ユニットを包含した画像処理部を実現する必要がある。
【0004】
【特許文献1】
特開2002−8002号公報
【0005】
【発明が解決しようとする課題】
しかしながら、各画像処理ユニットはそれぞれ固有の量子化テーブルを用意する必要があり、画像処理ユニットの数を増やすことで、その増やした分の量子化テーブルを用意しなければならなくなり、量子化テーブルの占める回路規模が増大していた。
【0006】
そこで、本発明の目的は、上記ような問題点を解決し、量子化テーブルの占める回路規模の増大を抑え処理の高速化を図ることができる画像処理装置を提供することにある。
【0007】
【課題を解決するための手段】
請求項1の発明は、原画像を分割した分割画像を処理する画像処理装置であって、前記分割画像の処理のためのテーブルを格納する格納手段と、前記分割画像に処理情報を付加したデータパケットを入力する入力手段と、前記入力手段により入力したデータパケットの分割画像を、前記テーブルに従い画像処理する複数の画像処理手段とを有し、前記複数の画像処理手段は、前記データパケットの処理情報に従って前記テーブルを選択し前記画像処理に使用することで、前記格納手段の同一のテーブルを共有することを特徴とする。
【0008】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
<第1の実施の形態>
図1は本発明の第1の実施の形態を示す。これは、マルチファンクションシステム1001の例であり、図4に示すように、LAN(local area network)1010に接続してある。
【0009】
図4を説明する。図4において、1001はマルチファンクションシステムであり、スキャナ2070(図1)とプリンタ2095(図1)を有し、スキャナ2070から読み込んだ画像をLAN1010に流したり、LAN1010から受信した画像をプリンタ2095によりプリントアウトできるようになっている。また、スキャナ2070から読んだ画像を、図示しないFAX送信手段により、PSTNまたはISDN1030に送信したり、PSTNまたはISDNから受信した画像を、プリンタ2095によりプリントアウトできるようになっている。
【0010】
1002はデータベースサーバであり、マルチファンクションシステム1001により読み込んだ2値画像及び多値画像をデータベースとして管理するものである。1003はデータベースサーバ1002のデータベースクライアントであり、データベース1002に保存されている画像データを閲覧/検索等できるものである。1004は電子メールサーバであり、マルチファンクションシステム1001により読み取った画像を電子メールの添付として受け取ることができる。1005は電子メールのクライアントであり、電子メールサーバ1004の受け取ったメールを受信し閲覧したり、電子メールを送信したりできる。
【0011】
1006はWWWサーバであり、HTML文書をLAN1010に提供するものであり、マルチファンクションシステム1001によりWWWサーバ1006により提供されるHTML文書をプリントアウトできる。1007はルータであり、LAN1010をインタネット/イントラネット1012と連結するものである。インタネット/イントラネットに、データベースサーバ1002、WWWサーバ1006、電子メールサーバ1004、マルチファンクションシステム1001と同様の装置が、それぞれ1020、1021、1022、1023として連結してある。マルチファンクションシステム1001は、PSTNまたはISDN1030を介して、FAX装置1031と送受信できるようになっている。
【0012】
1040はプリンタであって、LAN1010に接続してあり、マルチファンクションシステム1001により読み取った画像をプリントアウトできるようになっている。
【0013】
次に、図1を説明する。図1において、2000は制御装置であり、画像入力デバイスであるスキャナ2070や画像出力デバイスであるプリンタ2095と接続してあり、一方では、LAN1010や公衆回線WAN2051と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開を行うものである。制御装置2000は、操作部UI2012と、RAM2002と、ROM2003と、システム制御部2150と、画像処理部2149と、プリンタ用画像処理部2115と、スキャナ用画像処理部2114と、レンダリング部2060と、ディクスコントローラ2144と、外部記憶装置2004と、モデム2050と、PHY/PMD回路2146とを有する。
【0014】
RAM2002はCPU2001(図2)のためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。本実施の形態では、ダイレクトRDRAMを採用する例を示す。ROM2003はブートROMであり、システムのブートプログラムが格納されている。
【0015】
レンダリング部2060は、PDLコード又は中間ディスプレイリストをビットマップイメージに展開するものである。
【0016】
次に、システム制御部2150を説明する。システム制御部2150は、CPU2001と、画像リングインタフェース(1)2147と、画像リングインタフェース(2)2148と、CPUバス2126と、システムバスブリッジ2007と、サブバススイッチ2128と、画像DMA(1)2130と、画像圧縮部2131と、画像DMA(2)2132と、フォント伸張部3134と、ソート部2135と、ビットマップトレース部2136と、画像伸張部2133と、フォント伸張部2134と、LANコントローラ2010と、USBインタフェース2138と、汎用シリアルポート2139と、インタラプトコントローラ2140と、GPIOインタフェース2141と、操作部I/F2006と、MAC回路2145とを有する。
【0017】
CPU2001はシステム全体を制御するプロセッサである。本実施の形態は2つのCPUを用いた例を示す。これら2つのCPUは、共通のCPUバス2126に接続され、さらに、システムバスブリッジ2007に接続される。システムバスブリッジ2007には、バススイッチであり、CPU2001の他に、CPUバス2126と、RAMコントローラ2124と、ROMコントローラ2125と、IOバス12127と、サブバススイッチ2128と、IOバス22129と、画像リングインタフェース(1)2147と、画像リングインタフェース(2)2148とが接続されている。
【0018】
サブバススイッチ2128は、第2のバススイッチであり、画像DMA12130と、画像DMA22132と、フォント伸張部3134と、ソート回路2135と、ビットマップトレース部2136とが接続され、これらのDMAから出力されるメモリアクセス要求を調停し、システムバスブリッジ2007への接続を行う。
【0019】
RAMコントローラ2124は、RAM2002を制御するものである。ROMコントローラ2125は、ROM2003を制御するものである。
【0020】
画像DMA12130は、画像圧縮部3131に接続し、レジスタアクセスリング2137を介して設定された情報に基づき、画像圧縮部2131を制御し、RAM2002上にある非圧縮データの読み出し、圧縮、圧縮後データの書き戻しを行う、本実施の形態では、JPEGを圧縮アルゴリズムに採用した例を示す。
【0021】
画像DMA(2)2132は、画像伸張部2133に接続し、レジスタアクセスリング2137を介して設定された情報に基づき、画像伸張部2133を制御し、RAM2002上にある圧縮データの読み出し、伸張、伸張後データの書き戻しを行う、本実施の形態では、JPEGを伸張アルゴリズムに採用した例を示す。
【0022】
フォント伸張部2134は、LANコントローラ2010等を介し外部より転送されるPDLデータに含まれるフォントコードに基づき、ROM2003又はRAM2002に格納された圧縮フォントデータの伸張を行う。本実施の形態では、FBEアルゴリズムを採用した例を示す。
【0023】
ソート回路2135は、PDLデータを展開する段階で生成されるディスプレイリストのオブジェクトの順番を並び替える回路である。
【0024】
ビットマップトレース回路2136は、ビットマップデータより、エッジ情報を抽出する回路である。
【0025】
IOバス(1)2127は、内部IOバスの一種であり、標準バスであるUSBバスのコントローラと、USBインタフェース2138と、汎用シリアルポート2139と、インタラプトコントローラ2140と、GPIOインタフェース2141とが接続されている。IOバス(1)2127には、図示しないバスアービタが含まれている。
【0026】
操作部インタフェース2006は、操作部UI2012とインタフェース部であり、操作部UI2012に表示する画像データを操作部UI2012に対して出力する。また、操作部UI2012から本システム使用者が入力した情報を、CPU2001に伝える役割をする。
【0027】
IOバス(2)2129は、内部IOバスの一種であり、汎用バスインタフェース(1)及び(2)2142と、LANコントローラ2010が接続されている。IOバス(2)2129には、図示しないバスアービタが含まれている。汎用バスインタフェース2142は、2つの同一のバスインタフェースからなり、標準IOバスをサポートするバスブリッジである。本実施の形態では、PCIバス2143を採用した例を示す。LANコントローラ2010は、MAC回路2145とPHY/PMD回路2146を介してLAN1010に接続してあり、情報の入出力を行うものである。
【0028】
画像リングインタフェース(1)2147及び画像リングインタフェース(2)2148は、システムバスブリッジ2007と、画像データを高速で転送する画像リング2008を接続し、タイル化後に圧縮されたデータをRAM2002とタイル画像処理部2149間で転送するDMAコントローラである。
【0029】
HDD2004は、ハードディスクドライブであり、システムソフトウェア、画像データを格納する。ディスクコントローラ2144を介して一方のPCIバス2143に接続される。モデム2050は公衆回線2051に接続してあり、情報の入出力を行うものである。
【0030】
次に、画像処理部2149を説明する。画像処理部2149は、タイル画像処理部2149と、コマンド処理部2104と、ステータス処理部2105と、タイル圧縮部2106と、ステータス処理部2105と、レンダリング部インタフェース2110と、画像入力インタフェース2112と、画像出力インタフェース2113と、多値化部2119と、2値化部2118と、色空間変換部2117と、画像回転部203と0、解像度変換部2116と、画像入力インタフェース2112と、画像出力インタフェース2113と、画像回転部2030と、解像度変換部2116と、色空間変換部2117と、2値化部2118と、多値化部2119と、外部バスインタフェース部2120と、メモリ制御部2122とを有する。
【0031】
画像リング2008は、一対の単方向接続経路の組み合わせにより構成される画像リング(1)及び画像リング(2)である。画像リング2008は、タイル画像処理部2149内で、画像リングインタフェース(3)2101及びタイル画像インタフェース(3)2102を介し、タイル伸張部2103と、コマンド処理部2104と、ステータス処理部2105と、タイル圧縮部2106とに接続されている。本実施の形態では、タイル伸張部2103を2組、タイル圧縮部を3組、実装する例を示す。
【0032】
タイル伸張部2103は、画像リングインタフェース(1)〜(3)2147,2148,2101,2102に接続されるとともに、タイルバス2107に接続され、画像リング2008より入力された圧縮後の画像データを伸張し、タイルバス2107へ転送するバスブリッジである。本実施の形態では、JPEG及びパックビッツ方式による伸張アルゴリズムを採用した例を示す。
【0033】
タイル圧縮部2106は、画像リングインタフェース(1)〜(3)2147,2148,2101,2102への接続に加え、タイルバス2107に接続され、タイルバス2107より入力された圧縮前の画像データを圧縮し、画像リング2008へ転送するバスブリッジである。本実施の形態では、タイル伸張部2103と同じ様に、JPEG及びパックビッツ方式による圧縮アルゴリズムを採用した例を示す。
【0034】
コマンド処理部2104は、画像リングインタフェース(1)〜(3)2147,2148,2101,2102への接続に加え、レジスタ設定バス2109に接続され、画像リング2008を介して入力したCPU2001より発行されたレジスタ設定要求を、レジスタ設定バス2109に接続される該当ブロックへ書き込む。また、CPU2001より発行されたレジスタ読み出し要求に基づき、レジスタ設定バス2109を介して該当レジスタより情報を読み出し。画像リングインタフェース(3)2102に転送する。
【0035】
ステータス処理部2105は、各画像処理部の情報を監視し、CPU2001に対してインタラプトを発行するためのインタラプトパケットを生成し、画像リングインタフェース(3)2102に出力する。
【0036】
タイルバス2107には、上記ブロックに加え、レンダリング部インタフェース2110と、画像入力インタフェース2112と、画像出力インタフェース2113と、多値化部2119と、2値化部2118と、色空間変換部2117と、画像回転部2030と、解像度変換部2116とが接続されている。
【0037】
レンダリング部インタフェース2110は、レンダリング部2060により生成されたビットマップイメージを入力するインタフェースである。レンダリング部2060とレンダリング部インタフェース2110は、一般的なビデオ信号2111にて接続される。レンダリング部インタフェース2110は、タイルバス2107に加え、メモリバス2108とレジスタ設定バス2109への接続を有し、入力されたラスタ画像をレジスタ設定バス2109を介して設定された、所定の方法によりタイル画像への構造変換をすると同時に、クロックの同期化を行い、タイルバス2107に対し出力を行う。
【0038】
画像入力インタフェース2112は、スキャナ用画像処理部2114により補正画像処理されたラスタイメージデータを入力とし、レジスタ設定バス2109を介して設定された所定の方法によりタイル画像への構造変換とクロックの同期化を行い、タイルバス2107に対し出力を行う。
【0039】
画像出力インタフェース2113は、タイルバス2107からのタイル画像データを入力とし、ラスター画像への構造変換とクロックレートの変更を行い、ラスター画像をプリンタ用画像処理部2115へ出力する。
【0040】
画像回転部2030は画像データの回転を行うものである。解像度変換部2116は画像の解像度の変更を行うものである。色空間変換部2117はカラー及びグレースケール画像の色空間の変換を行うものである。2値化部2118は、多値カラー、グレースケール画像を2値化するものである。多値化部2119は2値画像を多値データへ変換するものである。
【0041】
外部バスインタフェース部2120は、画像リングインタフェース(1)〜(3)2147,2148,2101,2102と、コマンド処理部2104と、レジスタ設定バス2109とを介し、CPU2001により発行された書き込み及び読み出し要求を外部バス(3)2121に変換出力するバスブリッジである。外部バス(3)2121は本実施の形態では、プリンタ用画像処理部2115、スキャナ用画像処理部2114に接続されている。
【0042】
メモリ制御部2122は、メモリバス2108に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ(1)及び画像メモリ(2)2123に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施の形態では、画像メモリにSDRAMを用いた例を示す。
【0043】
スキャナ用画像処理部2114は、画像入力デバイスであるスキャナ2070によりスキャンされた画像データを補正画像処理する。プリンタ用画像処理部は、プリンタ出力のための補正画像処理を行い、結果をプリンタ2095へ出力する。
【0044】
[タイル画像パケットフォーマット]
制御装置2000では、画像データと、CPU2001によるコマンドと、各ブロックより発行される割り込み情報とを、パケット化された形式で転送する。本実施の形態では、図5に示すデータパケットと、図6に示すコマンドパケットと、図7に示すインタラプトパケットとの3種の異なる種類のパケットが使用される。
【0045】
(データパケット(図5))
本実施の形態では、画像データを32pixel×32pixelのタイル単位の画像データ3002に分割して取り扱う。このタイル単位の画像に、必要なヘッダ情報3001及び画像付加情報等3003を付加してデータパケットとする。
【0046】
次に、ヘッダ情報3001に含まれる情報について説明する。パケットはヘッダ情報3001内のPcktType3004内のPacketTypeID3023の値によって、データパケットと、コマンドパケットと、インタラプトパケットとに区別される。本実施の形態では、3bitのPacketTypeIDとして、
001b又は101b: データパケット
010b: コマンドパケット
100b: インタラプトパケット
を割り付けている。
【0047】
また、PcktType3004には、RepeatFlag3022が含まれており、データパケットの画像データ及び画像付加情報3003と、ヘッダ情報3001内の所定の情報とが、1つ前に送信したデータパケットと同一の場合、RepeatFlag3022に1をセットする。この場合、パケットの転送はヘッダ情報3001のみ行われる。
【0048】
ChipID3005は、パケットを送信するターゲットとなるチップのIDを示す。
【0049】
ImageType3006は、画像データのタイプを示す。本実施の形態では、ImageType8bitのうち上位2bitを用いて画像データのタイプを次のように規定する。
00b: 1画素の画像データを1bitで表す。
01b: 1画素の画像データを8bit1成分で表す。
10b: 1画素の画像データを8bit3成分、計24bitで表す。
11b: 1画素の画像データを8bit4成分、計32bitで表す。
【0050】
PageID3007は、データパケットが含まれるページを示しており、JobID3008はソフトウェアで管理するためのJobIDを格納する。
【0051】
データパケットのページ上の並び順は、Y方向のタイル座標3009とX方向のタイル座標3010の組み合わせで、YnXnで表される。
【0052】
データパケットにあっては、パケットが持つ画像データ及び画像付加情報が圧縮されているデータパケットと、非圧縮のデータパケットとが存在する。本実施の形態では、圧縮アルゴリズムとして、画像データが多値カラー多値グレースケールを含むの場合はJPEGを、2値の場合及び画像付加情報はパックビッツを採用した例を示す。
【0053】
上記方式により、画像データ及び画像付加情報が圧縮されている場合と非圧縮の場合との区別は、それぞれCompressFlag3017内のImageData3026及びZdata3027が1の場合は圧縮データ、0の場合は非圧縮データであることを表す。
【0054】
また、CompressFlag3017内にはJPEGにより圧縮処理を行う際に使用した量子化テーブルの種類を格納するQ−TableID3028が用意されており、量子化テーブルが複数ある場合、データの圧縮及び伸張時はこの値を参照して使用する量子化テーブルの切替を行う。
【0055】
Process Instruction3011は左詰で8bit毎に処理順に設定し、各処理ユニットは処理後Process Instructionを左に8bitシフトする。Process Instruction3011はUnitID3024とMode3025の組が8組格納されている。UnitID3024は画像処理部2149の各処理ユニットを指定し、Mode3025は各処理ユニットでの動作モードを指定する。これにより、1つのパケットは8つのユニットまで連続して処理することができる。
【0056】
PacketByteLength3012はパケットのトータルバイト数を示す。
【0057】
ImageDataByteLengh3015は画像データのバイト数、ZDataByteLength3016は画像付加情報のバイト数を表し、ImageDataOffset3013、ZDataOffset3014はそれぞれのデータに対するパケットの先頭からのオフセット値を表している。
【0058】
SourceID3018は画像データ及び画像付加情報が生成されたソースを示す。
【0059】
Ztype3020は画像付加情報における有効ビット幅を示し、Ztype3020で示したビット以外の画像付加情報は無効情報とする。尚、Ztype3020が0である場合は、入力された画像付加情報全てが無効であることを表す。
【0060】
ThumbnailData3021はデータパケットの画像データを代表する値以下、サムネール値と呼ぶを格納する。本実施の形態ではThumbnailData3021に最大4つのサムネール値を格納することができる構成となっている。
【0061】
Misc3019は上記の各情報以外に必要となる情報を格納する。本実施の形態ではChar−flag3029及びQ−TableSel3030が用意されている。Char−flag3029にはデータパケットが属する領域信号が格納される。Q−TableSel3030にはJPEG方式による圧縮及び伸張時に使用する量子化テーブルを変更するための情報が格納される。
【0062】
(パケットテーブル(図8))
図8はデータパケットがRAM2002に格納されている状態を示す。各データパケットはパケットテーブル6001によって管理する。パケットテーブル6001の構成要素は次の通りで、それぞれテーブルの値に0を5bit付加すると、パケットの先頭アドレス6002、パケットのByte Length6005となる。
【0063】
Packet Address Pointer 27bit + 5b00000 = Packet先頭Address
Packet Length 11bit + 5b00000 = PacketのByte Length
なお、パケットテーブル6001とチェインテーブル6010は分割されないものとする。
【0064】
パケットテーブル6001は常に走査方向に並んでおり、Yn/Xn=000/000,000/001,000/002,....という順で並んでいる。このパケットテーブル6001のエントリは一意に1つのタイルを示す。また、Yn/Xmaxの次のエントリはYn+1/X0となる。
【0065】
ヘッダ情報3001内のRepeatFlag3002がセットされているパケットが入力される場合は、そのパケットはメモリ上には書かず、パケットテーブルのエントリに1つ目のエントリと同じPacket Address Pointer、Packet Lengthを格納する。1つのパケットデータを2つのテーブルエントリが指すかたちになる。この場合、2つ目のテーブルエントリのRepeat Flag6003がセットされる。
【0066】
パケットがChain DMAにより複数に分断された場合は、Divide Flag6004をセットし、そのパケットの先頭部分が入っているChain Blockのチェインテーブル番号6006をセットする。
【0067】
チェインテーブル6010のエントリはChain Block Address6011とChainBlock Length6012からなっており、テーブルの最後のエントリには、Address、Lengthとして共に0を格納しておく。
【0068】
(コマンドパケットフォーマット(図6))
コマンドパケットフォーマットは、レジスタ設定バス2109へのアクセスを行うためのものである。本パケットを用いることにより、COU2001より画像メモリ2123へのアクセスも可能である。
【0069】
ChipID4004には、コマンドパケットの送信先となる画像処理部2149を表すIDが格納される。PageID4007、JobID4008はソフトウェアで管理するためのPage IDとJob IDを格納する。Packet ID4009は1次元で表される。Data PacketのX−coordinateのみを使用する。
【0070】
パケットバイトレングス4010は固定で128Byteである。パケットデータ部4002には、アドレス4011とデータ4012の組を1つのコマンドとして、最大12個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプはCmdType4005で示され、コマンドの数はCmdnum4006で示される。
【0071】
(インタラプトパケットフォーマット(図7))
インタラプトパケットフォーマットは、画像処理部2149からCPU2001への割り込みを通知するためのものである。ステータス処理部2105はインタラプトパケットを送信すると、次に送信の許可がされるまでは、インタラプトパケットを送信してはならない。
【0072】
パケットバイトレングス5006は固定で128Byteである。パケットデータ部5002には、画像処理部2149の各内部モジュールのステータス情報5007が格納されている。ステータス処理部2105は画像処理部2149内の各モジュールのステータス情報を集め、一括してシステム制御部2150に送ることができる。
【0073】
ChipID5004にはインタラプトパケットの送信先となるシステム制御部2150を表すIDが、また、IntChipID5005にはインタラプトパケットの送信元となる画像処理部2149を表すIDが格納される。
【0074】
[タイル圧縮部]
図9は図4のタイル圧縮部(1),(2),(3)2106の各圧縮部の構成を示す。タイル圧縮部(1),(2),(3)2106は同一構成を有する。図9において、201はタイルバスインタフェース部であり、タイルバス2107とハンドシェイクを行い、タイルバス2107から入力されるヘッダ情報と、画像データ及び画像付加情報とを取得し、後段に接続された各処理ブロックへそれぞれのデータを出力する。タイルバスインタフェース部201では、タイルバス2107から送られてくるヘッダ情報を解析し、ヘッダ情報に矛盾がある場合は、後述のレジスタ設定部206に矛盾内容に相当する割り込み信号を出力した後、リセット信号が入力されるまで動作を停止する。
【0075】
他方、ヘッダ情報に矛盾がない場合は、ヘッダ情報保持部202、第1圧縮処理ユニット203及び第2圧縮処理ユニット204にデータを転送し、ヘッダ情報保持部202ではパケットのヘッダ情報を格納し、第1及び第2圧縮処理部ではそれぞれの圧縮方式で圧縮処理を行う。また、第1及び第2圧縮処理ユニット203,204は、圧縮処理時に問題があった場合に、エラー信号を生成し、レジスタ設定部206にそれぞれ報告する。
【0076】
205は画像リング出力部であり、ヘッダ情報保持部202と、第1圧縮処理部203及び第2圧縮処理部204とから、処理情報及び画像データと、画像付加情報とを取得し、ヘッダ情報に対して所定の値を設定してから、図5のデータパケットを生成し、画像リングインタフェース2102に出力する。
【0077】
206はレジスタ設定部であって、タイル圧縮部2106内部の処理に関して設定を行うためのものであり、タイル圧縮部2106に所定の圧縮処理を行わせるためには、レジスタ設定部206に所定の値を設定する必要がある。これらの設定は、コマンドパケットを用いてシステム制御部2150から画像処理部2149のコマンド処理部2104に送り、コマンド処理部2104からレジスタ設定バス2109を介してタイル圧縮部2106に送られることにより行われる。
【0078】
レジスタ設定部206に設定された値は、各圧縮処理ユニットに送られ、それらの設定値を参照することにより決められた処理を行う。なお、レジスタ設定部206へはコマンドパケットを用いて値を設定するだけでなく、コマンドパケットを用いてレジスタ設定部206が保持している設定値をシステム制御部2150へ出力することも可能である。
【0079】
さらに、レジスタ設定部206は、タイルバスインタフェース部201と、第1圧縮処理ユニット203及び第2圧縮処理ユニット204とから入力された割り込み信号に対応するレジスタを持ち、いずれかのブロックから割り込み信号が入力されると対応するレジスタの値をセットした後に、ステータス処理部2105に対して割り込みが発生したことを知らせるインタラプト信号と、いずれのブロックで割り込みが発生したかを表すステータス信号とを出力する。
【0080】
207はレジスタ設定バスインタフェース部であり、レジスタ設定バス2109からタイル圧縮部に入力されたアドレス及び設定値を、レジスタ設定部206が受け取れるフォーマットに変換して送るためのブロックである。なお、レジスタ設定バスインタフェース部207は、レジスタ設定バス2109からレジスタ設定値を受け取るだけでなく、レジスタ設定バスが示したアドレスに対応する設定値をレジスタ設定部206から読み出してレジスタ設定バス210に出力することも可能である。
【0081】
208は量子化テーブルであり、後述する圧縮処理中の量子化処理時に参照する量子化データ列が格納されている。この量子化テーブル208はレジスタ設定部206からリード/ライトすることが可能であり、かつヘッダ情報保持部202と、第1圧縮処理部203及び第2圧縮処理部204とから独立してリードすることが可能な3つのリード口を持ったRAM手段である。
【0082】
[第1及び第2圧縮処理ユニット203,204]
図10は図9の第1及び第2圧縮処理ユニット203,204の内部構成を示す。なお、本実施の形態では、画像データが8bit構成、24bit構成、又は32bit構成である場合、つまり画像データが第1圧縮処理ユニット203において圧縮処理される場合について説明する。ただし、この説明は他の圧縮処理ユニットにおいても同様である。
【0083】
図10において、101は第1データバッファであって、タイルバスインタフェース部201から送られてきた画像データを格納するためのものであり、所定量のデータが送られると後段に接続されたJPEG圧縮部110に対して所定の順序に従って画像データを出力する。ここで、第1データバッファ101にはヘッダ情報保持部202からヘッダ情報のImageType3006が入力されており、JPEG圧縮部110に出力する画像データの順序はImageTypeにより制御される。
【0084】
110はJPEG圧縮部であり、本実施の形態では、JPEG圧縮部110において画像データのJPEG方式による圧縮を行っている。なお、JPEG圧縮部110内はさらに3つの処理ブロックが存在する。
【0085】
102はDCT変換部であり、第1データバッファ101から64個のデータが入力されると、入力されたデータに対して離散コサイン変換(DCT)を行い周波数成分に変換する。また、このとき離散コサイン変換によって生成されたDC成分値をラッチ信号とともに後述のサムネイル生成部107に出力する。離散コサイン変換は64個のデータが入力される度に行われ、その都度、サムネイル生成部107にはラッチ信号とDC成分値が出力される。また、DCT変換部102はDCT変換の演算中にエラーが発生すると、DCT変換部102からレジスタ設定部206に対してエラー割り込み信号を出力する。
【0086】
103は量子化部であり、DCT変換部102から出力された周波数成分に対して所定の量子化値を用いて量子化を行って量子化データを生成する。なお、量子化値は後述する量子化テーブルから入力され、使用される量子化値はヘッダ情報保持部202からヘッダ情報を解析することにより決定される。量子化部103は量子化を行った結果が所定の値以外の値になると、レジスタ設定部206に対してエラー割り込み信号が出力する。
【0087】
104はハフマン符号化部であり、量子化部103から出力された量子化データに対して所定の符号化を行い符号化データを生成し、第2データバッファ105に出力する。ハフマン符号化部104は符号化が不可能なデータが入力されると、ハフマン符号化部104からレジスタ設定部206に対してエラー割り込み信号が出力する。
【0088】
第2データバッファ105は、ハフマン符号化部104で符号化した符号化データを格納するためのものであり、ハフマン符号化部104から1タイル分の符号化データを取得するとバッファ内に格納した符号化データの容量をData Byte Length1として画像リング出力部205に対して出力する。また、画像リング出力部205の要求に従って第2データバッファ105に格納した符号化データを画像リング出力部205に対して出力する。
【0089】
106はデータ比較部であり、タイルバスインタフェース部201から入力された画像データと第1データバッファ101に格納された画像データを比較するものである。タイルバスインタフェース部201から送られた画像データは、第1データバッファ101に格納されると同時に、画像データが格納された部分に格納されていた画像データとの比較をデータ比較部106で行う。
【0090】
第1データバッファ101には、タイルバスインタフェース部201から入力されるタイルの1つ前に、第1の圧縮処理ユニット203に送られた画像データが格納されているため、上記動作により、データ比較部106では、タイルバスインタフェース部201から送られてくる画像データと、第1の圧縮処理ユニット203において1つ前のタイルの画像データとの比較が行われる。
【0091】
データ比較部106により1タイル分の画像データの比較が終了すると、データ比較部106から画像リング出力部206に対して、比較結果Compare result1が出力される。
【0092】
107はサムネイル生成部であり、DCT変換部102から出力されるラッチ信号に同期してDC成分値を取得し、演算及び正規化を行うことによってタイルごとにサムネイル値を生成して画像リング出力部205に出力する。なお、サムネイル生成部107にはヘッダ保持部202からImageType3006が入力されており、サムネイル生成部107はImageTypeを参照することによりDCT変換部102から送られてくるDC成分値の順序を検知して成分ごとにサムネイル値の生成する。生成されたサムネイル値は画像リング出力部206に出力され、画像リング出力部においてヘッダ情報保持部202から取得したヘッダ情報のThumbnail Data3021の部分に所定のフォーマットで格納される。その後、第1圧縮処理ユニット203で圧縮された画像データ及び第2圧縮処理ユニット204で圧縮された画像付加情報とともにデータパケットとして画像リングインタフェース2104に出力される。
【0093】
109は量子化テーブルであり、量子化部103において量子化を行うための量子化値を格納してある。この量子化テーブル109には、複数の量子化テーブルが格納してあり、後述の量子化テーブル選択部108から入力される選択信号によって所定の量子化テーブルを選択して、量子化部103に量子化値を出力する。ここで、量子化テーブルは各JPEG圧縮部110に1つづつ有るのではなく、共有のメモリ手段が共有している。
【0094】
108は量子化テーブル選択部であり、量子化テーブル109に対して量子化テーブル選択信号を出力することによって、量子化テーブル109に格納されている複数のテーブルから所定のテーブルを選択する。量子化テーブル選択部108には、ヘッダ情報保持部202からImageType3006、Mode3025、Q−Table Sel3030が入力されており、量子化テーブル選択部108はこれらのヘッダ情報から使用する量子化テーブルを決定する。使用する量子化テーブルが決まると、量子化テーブル選択部109は決めた量子化テーブルを選択するように量子化テーブル選択信号を量子化テーブル109に出力するとともに、選択した量子化テーブルを表すQ−Table IDを画像リング出力部205に出力する。
【0095】
<第2の実施の形態>
本実施の形態は、第1の実施の形態との比較でいえば、画像処理方法が異なる。すなわち、第1の実施の形態では、JPEG圧縮を行うようにしたが、本実施の形態では、JPEG圧縮された画像データを伸張するようにした。
【0096】
図11は図3のタイル伸張部2103の構成を示す。図11において、705は画像リング入力部であり、ヘッダ情報保持部702と、第1伸張処理ユニット703と、第2伸張処理ユニット704とへ、ヘッダ情報及び画像データと画像付加情報を入力する。
【0097】
また、画像リング入力部705では、画像リングインタフェース(3)2101から送られてくるヘッダ情報を解析し、ヘッダ情報に矛盾がある場合は、後述のレジスタ設定部706に矛盾内容に相当する割り込み信号を出力した後、リセット信号が入力されるまで動作を停止する。他方、ヘッダ情報に矛盾がない場合は、第1伸張処理ユニット703、第2伸張処理ユニット704、の順番にデータを転送し、第1ないし第2伸張処理ユニット703,704で並列に画像伸張処理を行う。第1ないし第2伸張処理ユニット703,704はその構成が全て同一である。なお、第1伸張処理ユニット703において伸張処理を行っている際に、第1伸張処理ユニット703が動作の異常を検知した場合、第1伸張処理ユニット703は異常動作の内容に相当する割り込み信号をレジスタ設定部706に対して出力した後、リセット信号が入力されるまで動作を停止する。701はタイルバスインタフェース部であり、タイルバス2107とハンドシェイクを行い、タイルバス2107へ、ヘッダ情報と、画像データと、画像付加情報とを出力するとともに、タイルバス2107に接続された各処理ブロックへそれぞれのデータを出力する。
【0098】
706はレジスタ設定部であって、タイル伸張部2103内部の処理に関して設定を行うためのものであり、タイル伸張部2103に所定の伸張処理を行わせるためには、レジスタ設定部706に所定の値を設定する必要がある。これらの設定はコマンドパケットを用いてシステム制御部2150から画像処理部2149のコマンド処理部2104に送り、コマンド処理部2104からレジスタ設定バス2109を介してタイル伸張部2103に送られることにより行う。レジスタ設定部706に設定された値は、第1伸張処理部703及び第2伸張処理部704に送られ、両伸張処理部はそれらの設定値を参照することにより決められた処理を行う。なお、レジスタ設定部706へはコマンドパケットを用いて値を設定するだけでなく、コマンドパケットを用いてレジスタ設定部706が保持している設定値をシステム制御部2150へ出力することも可能である。
【0099】
また、レジスタ設定部706は、タイルバスインタフェース部701と、第1伸張部703と、第2伸張部704とから入力された割り込み信号に対応するレジスタを持ち、いずれかのブロックから割り込み信号が入力されると、対応するレジスタの値をセットした後に、ステータス処理部2105に対して割り込みが発生したことを知らせるインタラプト信号と、いずれのブロックで割り込みが発生したかを表すステータス信号とを出力する。
【0100】
707はレジスタ設定バスインタフェース部であり、レジスタ設定バス2109からタイル伸張部に入力されたアドレス及び設定値を、レジスタ設定部706が受け取れるフォーマットに変換して送るためのブロックである。なお、レジスタ設定バスインタフェース部707は、レジスタ設定バス2109からレジスタ設定値を受け取るだけでなく、レジスタ設定バス2109が示したアドレスに対応する設定値をレジスタ設定部706から読み出してレジスタ設定バス2109に出力することも可能である。
【0101】
708は量子化テーブルであり、逆量子化部803において逆量子化を行うための量子化値が格納してある。量子化テーブル708には、複数の量子化テーブルが格納してあり、後述の量子化テーブル選択部808から入力される選択信号によって所定の量子化テーブルを選択して逆量子化部803に量子化値を出力する。ここで、量子化テーブルは各JPEG圧縮部810に1つづつ有るのではなく、共有のメモリ手段を共有して用いられる。
【0102】
[画像伸張処理ユニット]
図12は図11の第1及び第2伸張処理ユニット703,704の構成を示す。画像データが8bit構成、24bit構成、又は32bit構成である場合、つまり、画像データが第1伸張処理ユニット703において伸張処理される場合について説明する。ただし、この説明は第2伸張処理ユニットについても同様である。
【0103】
図12において、801は第1データバッファであって、画像リング入力部705から送られてきた画像データを格納するためのものであり、所定量のデータが送られると後段に接続されたJPEG伸張部810に対して所定の順序に従って画像データを出力する。第1データバッファ801には、ヘッダ情報保持部702からヘッダ情報のImageType3006が入力されており、JPEG伸張部810でのJPEG伸張処理に使用される。JPEG伸張部810内には、3つの処理ブロックが存在する。
【0104】
802はハフマン復号化部であり、データバッファ801からJPEGの圧縮データが入力されると、所定の復号化を行い、逆量子化部803に出力する。803は逆量子化部であり、ハフマン復号化部802から出力されたデータに対して所定の量子化値を用いて逆量子化を行う。なお、逆量子化値は後述する量子化テーブルから入力され、使用される量子化値はヘッダ情報保持部702からヘッダ情報を解析することにより決定される。804はDCT逆変換部であり、逆量子化部803からの周波数成分のDCT逆変換を行う。
【0105】
805は伸張された画像データを格納するための第2のデータバッファであり、1タイル分の画像データを取得すると、タイルバスインタフェース部701に対して出力する。809は量子化テーブルであり、逆量子化部803において逆量子化を行うための量子化値を格納している。量子化テーブル809には、複数の量子化テーブルが格納されており、後述の量子化テーブル選択部808から入力される選択信号によって所定の量子化テーブルを選択して逆量子化部803に量子化値を出力する。
【0106】
808は量子化テーブル選択部であり、量子化テーブル809に対して量子化テーブル選択信号を出力することによって量子化テーブル809に格納されている複数のテーブルの中から所定のテーブルを選択する。量子化テーブル選択部808には、ヘッダ情報保持部702からImageType3006、Mode3025、Q−Table Sel3030が入力されており、画像リング入力部705からはQ−Table IDが入力されており、量子化テーブル選択部808はこれらのヘッダ情報から使用する量子化テーブルを決定する。使用する量子化テーブルが決まると、量子化テーブル選択部808は決めた量子化テーブルを選択するように量子化テーブル選択信号を量子化テーブル809に出力する。なお、量子化テーブル809は各JPEG伸張部801に1つづつ有るのではなく、共有のメモリ手段を共有して用いられる。
【0107】
このように、画像データに付加されたヘッダ情報内の量子化テーブルの選択情報を用いることで、CPUを介した、画像処理モードの再設定が不要で、また、画像圧縮部で圧縮された画像データを画像伸張部で伸張する際にも、適切な量子化テーブルを選択することができる。加えて、マルチファンクションの処理として、例えば、メモリ上の画像をプリントアウトしながら、メモリ上の別の画像を回転し、メモリに書き戻すという処理を同時に行った場合においても、画像処理がタイル単位で行え、タイル単位で適切な量子化テーブルが自動的に選択されるので、並列動作が容易となる。
【0108】
すなわち、RAM2002のプリント用の画像データからプリント用のデータパケットを生成し、RAM2002→画像リングインタフェース2101→タイル伸張部2103→画像出力インタフェース2113→プリンタ2095という経路をとるプリント出力処理を行い、一方で、RAM2002の回転用の画像データから回転用のデータパケットを生成し、RAM2002→画像リングインタフェース2101→タイル伸張部2103→画像回転部2030→画像リングインタフェース2101→RAM2002という経路をとる画像回転処理を行う。
【0109】
このとき、タイル伸張部2103の各伸張部では、例えば、第1伸張処理ユニットがプリント用のデータパケットのヘッダ情報に従ってプリント出力に適した量子化テーブルを選択してタイル画像を伸張処理し、第2伸張処理ユニットが回転用のデータパケットのヘッダ情報に従って回転処理に適した量子化テーブルを選択してタイル画像を伸張処理することができる。なお、1つの処理ユニットに関して、順次入力したデータパケット毎にテーブルを切り替えるといった、時分割での各処理の割り当てを行ってもよい。
【0110】
(他の実施形態)
上記実施形態では、デジタル複写機のコントローラを例に本発明を説明したが、本発明はこれに限るものではなく、プリンタ装置、スキャナ装置、PC接続用の拡張カード等、他の画像処理装置においても同様に適用可能であることは言うまでもない。また、ユニット間(例えばスキャナユニットとプリンタユニット)の画像データ通信をパケットデータの形式でシリアルデータ通信する場合等においても、各ユニットの圧縮・送信部/受信・伸張部に、本発明を適用することができる。
【0111】
また、上記実施形態では、圧縮処理及び伸張処理を例に、本発明を説明したが、本発明はこれに限るものではなく、2値化処理、色変換処理、解像度変換処理等、テーブルを使用した処理が可能な他の画像処理にも同様に適用することが可能であることは言うまでもない。
【0112】
以下に本発明の実施態様の例を列挙する。
【0113】
〔実施態様1〕 原画像を分割した分割画像を処理する画像処理装置であって、
前記分割画像の処理のためのテーブルを格納する格納手段と、
前記分割画像に処理情報を付加したデータパケットを入力する入力手段と、
前記入力手段により入力したデータパケットの分割画像を、前記テーブルに従い画像処理する複数の画像処理手段とを有し、
前記複数の画像処理手段は、前記データパケットの処理情報に従って前記テーブルを選択し前記画像処理に使用することで、前記格納手段の同一のテーブルを共有することを特徴とする画像処理装置。
【0114】
〔実施態様2〕 実施態様1において、前記画像処理手段は、前記処理情報に含まれるモード切り替情報に従い前記格納手段に格納された量子化テーブルを選択して使用することで画像圧縮処理を行うことを特徴とする画像処理装置。
【0115】
〔実施態様3〕 実施態様1において、前記画像処理手段は、前記処理情報に含まれるモード切り替情報に従い前記格納手段に格納された量子化テーブルを選択して使用することで画像伸張処理を行うことを特徴とする画像処理装置。
【0116】
〔実施態様4〕 実施態様1ないし3のいずれかにおいて、前記原画像を矩形画像単位の画像データに分割することで、前記分割画像を生成する生成手段をさらに有することを特徴とする画像処理装置。
【0117】
〔実施態様5〕 原画像を分割した分割画像を処理する画像処理方法であって、
前記分割画像に処理情報を付加したデータパケットを入力する入力工程と、
前記入力工程において入力したデータパケットの分割画像を、格納手段に格納されたテーブルに従い画像処理する複数の画像処理工程とを有し、
前記複数の画像処理工程は、前記データパケットの処理情報に従って前記テーブルを選択し前記画像処理に使用することで、前記格納手段の同一のテーブルを共有することを特徴とする画像処理方法。
【0118】
〔実施態様6〕 原画像を分割した分割画像を処理する画像処理方法であって、
前記分割画像に処理情報を付加したデータパケットを入力する入力工程と、
前記入力工程において入力したデータパケットの分割画像を、格納手段に格納されたテーブルに従い画像処理する複数の画像処理工程とを有し、
前記複数の画像処理工程は、前記データパケットの処理情報に従って前記テーブルを選択し前記画像処理に使用することで、前記格納手段の同一のテーブルを共有することを特徴とする画像処理方法。
【0119】
〔実施態様7〕 原画像を分割した分割画像を処理する画像処理方法であって、
第1の原画像の分割画像に処理情報を付加した第1のデータパケットと、第2の原画像の分割画像に処理情報を付加した第2のデータパケットを入力する入力工程と、
前記入力工程において入力した第1及び第2のデータパケットの分割画像を、前記テーブルに従い画像処理する複数の画像処理工程とを有し、
前記複数の画像処理工程は、前記第1のデータパケットの処理情報に従って第1のテーブルを選択して分割画像を処理し、前記第2のデータパケットの処理情報に従って第2のテーブルを選択して分割画像を処理することで、第1の原画像に係る処理と第2の原画像に係る処理の並行処理を行うことを特徴とする画像処理方法。
【0120】
【発明の効果】
以上説明したように、本発明によれば、タイル画像の圧縮、伸張時における量子化テーブルの選択を、画像データに付加されたヘッダ情報内の量子化テーブル選択情報を用いて、CPUを介さずに行うことによって、CPUの負荷を減らすと共に、画像処理の処理速度を上げながら、画像処理の並列動作が容易になる。
【図面の簡単な説明】
【図1】本発明の一実施の形態を示すブロック図である。
【図2】図1のシステム制御部2150の構成の一例を示すブロック図である。
【図3】図1の画像処理部2149の構成を示すブロック図である。
【図4】図1のマルチファンクションシステムをLAN1010に接続した例を示す図である。
【図5】データパケットのフォーマットの一例を示す図である。
【図6】コマンドパケットのフォーマットの一例を示す図である。
【図7】インタラプトパケットのフォーマットの一例を示す図である。
【図8】パケットテーブル及びチェーンテーブルのフォーマットの一例を示す図である。
【図9】図4のタイル圧縮部(1),(2),(3)2106の構成の一例を示すブロック図である。
【図10】図9の第1ないし第3圧縮処理ユニット202,203,204の構成の一例を示すブロック図である。
【図11】図3のタイル伸張部2103の構成の一例を示すブロック図である。
【図12】図11の第1ないし第3伸張処理ユニット702,703,704の構成の一例を示すブロック図である。
【符号の説明】
201 タイルバスインタフェース部
202 ヘッダ情報保持部
203 第1圧縮処理部
204 第2圧縮処理部
205 画像リング入力部
206 レジスタ部
207 レジスタ設定バスインタフェース部
2000 制御装置
2106 タイル圧縮部
2149 画像処理部
2150 システム制御部
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image processing apparatus that performs image processing, and more particularly, to an image processing apparatus that processes a divided image obtained by dividing an original image.
[0002]
[Prior art]
Conventionally, in order to increase the processing speed of image processing, image data is divided into rectangular image units, and a plurality of image processing units are used to process the rectangular images in parallel, thereby achieving a desired processing speed. (For example, see Patent Document 1).
[0003]
Further, in order to further increase the speed, it is necessary to realize an image processing unit including more image processing units.
[0004]
[Patent Document 1]
JP-A-2002-8002
[0005]
[Problems to be solved by the invention]
However, each image processing unit needs to prepare its own quantization table, and by increasing the number of image processing units, it is necessary to prepare a quantization table for the increased number. The occupied circuit scale was increasing.
[0006]
SUMMARY OF THE INVENTION It is an object of the present invention to provide an image processing apparatus which solves the above-described problems and suppresses an increase in the circuit size occupied by a quantization table and can increase the processing speed.
[0007]
[Means for Solving the Problems]
An image processing apparatus for processing a divided image obtained by dividing an original image, comprising: storage means for storing a table for processing the divided image; and data obtained by adding processing information to the divided image. Input means for inputting a packet; and a plurality of image processing means for performing image processing on the divided image of the data packet input by the input means in accordance with the table, wherein the plurality of image processing means perform processing of the data packet. By selecting the table according to the information and using the table for the image processing, the same table in the storage unit is shared.
[0008]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
<First embodiment>
FIG. 1 shows a first embodiment of the present invention. This is an example of a multifunction system 1001 and is connected to a LAN (local area network) 1010 as shown in FIG.
[0009]
Referring to FIG. 4, a multifunction system 1001 includes a scanner 2070 (FIG. 1) and a printer 2095 (FIG. 1). The image read from the scanner 2070 flows to the LAN 1010, and the image received from the LAN 1010 is transmitted to the printer 2095 by the printer 2095. It can be printed out. Further, an image read from the scanner 2070 can be transmitted to the PSTN or ISDN 1030 by a facsimile transmission unit (not shown), and an image received from the PSTN or ISDN can be printed out by the printer 2095.
[0010]
A database server 1002 manages the binary image and the multi-valued image read by the multifunction system 1001 as a database. Reference numeral 1003 denotes a database client of the database server 1002, which can browse / search image data stored in the database 1002. An e-mail server 1004 can receive an image read by the multifunction system 1001 as an e-mail attachment. Reference numeral 1005 denotes an e-mail client, which can receive and browse the e-mail received by the e-mail server 1004, and transmit an e-mail.
[0011]
A WWW server 1006 provides an HTML document to the LAN 1010, and can print out the HTML document provided by the WWW server 1006 by the multifunction system 1001. A router 1007 connects the LAN 1010 to the Internet / intranet 1012. Devices similar to the database server 1002, WWW server 1006, electronic mail server 1004, and multifunction system 1001 are connected to the Internet / intranet as 1020, 1021, 1022, and 1023, respectively. The multifunction system 1001 can transmit and receive to and from the FAX device 1031 via the PSTN or ISDN 1030.
[0012]
A printer 1040 is connected to the LAN 1010 and can print out an image read by the multifunction system 1001.
[0013]
Next, FIG. 1 will be described. In FIG. 1, reference numeral 2000 denotes a control device which is connected to a scanner 2070 which is an image input device and a printer 2095 which is an image output device. On the other hand, by connecting to a LAN 1010 and a public line WAN 2051, image information and device It performs input / output of information and image development of PDL data. The control device 2000 includes an operation unit UI 2012, a RAM 2002, a ROM 2003, a system control unit 2150, an image processing unit 2149, a printer image processing unit 2115, a scanner image processing unit 2114, a rendering unit 2060, and a disk unit. It has a controller 2144, an external storage device 2004, a modem 2050, and a PHY / PMD circuit 2146.
[0014]
A RAM 2002 is a system work memory for the CPU 2001 (FIG. 2), and is also an image memory for temporarily storing image data. This embodiment shows an example in which a direct RDRAM is adopted. The ROM 2003 is a boot ROM, and stores a system boot program.
[0015]
The rendering unit 2060 develops a PDL code or an intermediate display list into a bitmap image.
[0016]
Next, the system control unit 2150 will be described. The system control unit 2150 includes a CPU 2001, an image ring interface (1) 2147, an image ring interface (2) 2148, a CPU bus 2126, a system bus bridge 2007, a sub bus switch 2128, and an image DMA (1) 2130. , An image compression unit 2131, an image DMA (2) 2132, a font expansion unit 3134, a sorting unit 2135, a bitmap tracing unit 2136, an image expansion unit 2133, a font expansion unit 2134, and a LAN controller 2010. , A USB interface 2138, a general-purpose serial port 2139, an interrupt controller 2140, a GPIO interface 2141, an operation unit I / F 2006, and a MAC circuit 2145.
[0017]
The CPU 2001 is a processor that controls the entire system. This embodiment shows an example in which two CPUs are used. These two CPUs are connected to a common CPU bus 2126 and further to a system bus bridge 2007. The system bus bridge 2007 is a bus switch. In addition to the CPU 2001, a CPU bus 2126, a RAM controller 2124, a ROM controller 2125, an IO bus 12127, a sub bus switch 2128, an IO bus 22129, and an image ring The interface (1) 2147 and the image ring interface (2) 2148 are connected.
[0018]
The sub bus switch 2128 is a second bus switch, and is connected to the image DMA 12130, the image DMA 22132, the font decompression unit 3134, the sort circuit 2135, and the bitmap trace unit 2136, and is output from these DMAs. It arbitrates for memory access requests and connects to the system bus bridge 2007.
[0019]
The RAM controller 2124 controls the RAM 2002. The ROM controller 2125 controls the ROM 2003.
[0020]
The image DMA 12130 is connected to the image compression unit 3131, controls the image compression unit 2131 based on information set via the register access ring 2137, reads out uncompressed data on the RAM 2002, compresses the uncompressed data, and outputs the uncompressed data. In this embodiment, an example in which JPEG is adopted as a compression algorithm is shown.
[0021]
The image DMA (2) 2132 is connected to the image decompression unit 2133, controls the image decompression unit 2133 based on information set via the register access ring 2137, and reads, decompresses, and decompresses compressed data in the RAM 2002. In the present embodiment, post-data write-back is performed. An example is shown in which JPEG is adopted as a decompression algorithm.
[0022]
The font decompression unit 2134 decompresses the compressed font data stored in the ROM 2003 or the RAM 2002 based on a font code included in PDL data transferred from the outside via the LAN controller 2010 or the like. This embodiment shows an example in which the FBE algorithm is adopted.
[0023]
The sort circuit 2135 is a circuit that rearranges the order of the objects in the display list generated at the stage of expanding the PDL data.
[0024]
The bitmap trace circuit 2136 is a circuit that extracts edge information from bitmap data.
[0025]
The IO bus (1) 2127 is a kind of internal IO bus, and is connected to a controller of a USB bus which is a standard bus, a USB interface 2138, a general-purpose serial port 2139, an interrupt controller 2140, and a GPIO interface 2141. I have. The IO bus (1) 2127 includes a bus arbiter (not shown).
[0026]
The operation unit interface 2006 is an interface unit with the operation unit UI 2012, and outputs image data to be displayed on the operation unit UI 2012 to the operation unit UI 2012. In addition, it plays a role of transmitting information input by the system user from the operation unit UI 2012 to the CPU 2001.
[0027]
The IO bus (2) 2129 is a kind of internal IO bus, and the general-purpose bus interfaces (1) and (2) 2142 and the LAN controller 2010 are connected. The IO bus (2) 2129 includes a bus arbiter (not shown). The general-purpose bus interface 2142 is a bus bridge composed of two identical bus interfaces and supporting a standard IO bus. In this embodiment, an example in which the PCI bus 2143 is adopted is shown. The LAN controller 2010 is connected to the LAN 1010 via the MAC circuit 2145 and the PHY / PMD circuit 2146, and inputs and outputs information.
[0028]
An image ring interface (1) 2147 and an image ring interface (2) 2148 connect the system bus bridge 2007 and the image ring 2008 for transferring image data at a high speed, and process the tiled compressed data into the RAM 2002 and the tile image processing. DMA controller for transferring data between the units 2149.
[0029]
An HDD 2004 is a hard disk drive and stores system software and image data. It is connected to one PCI bus 2143 via a disk controller 2144. The modem 2050 is connected to the public line 2051 and inputs and outputs information.
[0030]
Next, the image processing unit 2149 will be described. The image processing unit 2149 includes a tile image processing unit 2149, a command processing unit 2104, a status processing unit 2105, a tile compression unit 2106, a status processing unit 2105, a rendering unit interface 2110, an image input interface 2112, an image An output interface 2113, a multi-level conversion unit 2119, a binarization unit 2118, a color space conversion unit 2117, an image rotation unit 203 and 0, a resolution conversion unit 2116, an image input interface 2112, and an image output interface 2113; , An image rotation unit 2030, a resolution conversion unit 2116, a color space conversion unit 2117, a binarization unit 2118, a multi-value conversion unit 2119, an external bus interface unit 2120, and a memory control unit 2122.
[0031]
The image ring 2008 is an image ring (1) and an image ring (2) configured by a combination of a pair of unidirectional connection paths. The image ring 2008 includes a tile decompression unit 2103, a command processing unit 2104, a status processing unit 2105, and a tile processing unit in the tile image processing unit 2149 via the image ring interface (3) 2101 and the tile image interface (3) 2102. It is connected to the compression unit 2106. In the present embodiment, an example is shown in which two sets of tile decompression units 2103 and three sets of tile compression units are mounted.
[0032]
The tile expansion unit 2103 is connected to the image ring interfaces (1) to (3) 2147, 2148, 2101 and 2102, and is also connected to the tile bus 2107 and expands the compressed image data input from the image ring 2008. A bus bridge for transferring to the tile bus 2107. In the present embodiment, an example is shown in which a decompression algorithm based on JPEG and Packbits method is adopted.
[0033]
The tile compression unit 2106 is connected to the tile bus 2107 in addition to the connections to the image ring interfaces (1) to (3) 2147, 2148, 2101 and 1022, and compresses the image data before compression input from the tile bus 2107. And a bus bridge for transferring to the image ring 2008. In the present embodiment, as in the case of the tile decompression unit 2103, an example is shown in which a compression algorithm based on JPEG and PackBits is adopted.
[0034]
The command processing unit 2104 is connected to the register setting bus 2109 in addition to the connections to the image ring interfaces (1) to (3) 2147, 2148, 2101 and 2102, and is issued from the CPU 2001 input through the image ring 2008. The register setting request is written to the corresponding block connected to the register setting bus 2109. Further, based on a register read request issued from the CPU 2001, information is read from the corresponding register via the register setting bus 2109. The image is transferred to the image ring interface (3) 2102.
[0035]
The status processing unit 2105 monitors information of each image processing unit, generates an interrupt packet for issuing an interrupt to the CPU 2001, and outputs the generated interrupt packet to the image ring interface (3) 2102.
[0036]
The tile bus 2107 includes, in addition to the above blocks, a rendering unit interface 2110, an image input interface 2112, an image output interface 2113, a multi-level conversion unit 2119, a binarization unit 2118, a color space conversion unit 2117, The image rotation unit 2030 and the resolution conversion unit 2116 are connected.
[0037]
The rendering unit interface 2110 is an interface for inputting the bitmap image generated by the rendering unit 2060. The rendering unit 2060 and the rendering unit interface 2110 are connected by a general video signal 2111. The rendering unit interface 2110 has a connection to a memory bus 2108 and a register setting bus 2109 in addition to the tile bus 2107, and converts an input raster image into a tile image according to a predetermined method set via the register setting bus 2109. At the same time, the clock is synchronized and output to the tile bus 2107.
[0038]
The image input interface 2112 receives the raster image data subjected to the correction image processing by the scanner image processing unit 2114 as input, and converts the structure into a tile image and synchronizes the clock by a predetermined method set via the register setting bus 2109. And outputs it to the tile bus 2107.
[0039]
The image output interface 2113 receives the tile image data from the tile bus 2107 as input, converts the structure into a raster image, changes the clock rate, and outputs the raster image to the printer image processing unit 2115.
[0040]
The image rotating unit 2030 rotates image data. The resolution conversion unit 2116 changes the resolution of an image. The color space conversion unit 2117 converts a color space of a color and grayscale image. The binarizing unit 2118 binarizes a multi-level color or grayscale image. The multi-value conversion unit 2119 converts a binary image into multi-value data.
[0041]
The external bus interface unit 2120 receives write and read requests issued by the CPU 2001 via the image ring interfaces (1) to (3) 2147, 2148, 2101 and 2102, the command processing unit 2104, and the register setting bus 2109. This is a bus bridge for converting and outputting to the external bus (3) 2121. In this embodiment, the external bus (3) 2121 is connected to the printer image processing unit 2115 and the scanner image processing unit 2114.
[0042]
The memory control unit 2122 is connected to the memory bus 2108 and writes image data into the image memory (1) and the image memory (2) 2123 by a preset address division according to a request from each image processing unit. Operations such as reading and refreshing are performed as necessary. In this embodiment, an example in which an SDRAM is used as an image memory will be described.
[0043]
The scanner image processing unit 2114 performs corrected image processing on image data scanned by the scanner 2070, which is an image input device. The printer image processing unit performs correction image processing for printer output, and outputs the result to the printer 2095.
[0044]
[Tile image packet format]
The control device 2000 transfers the image data, the command from the CPU 2001, and the interrupt information issued from each block in a packetized format. In the present embodiment, three different types of packets are used: a data packet shown in FIG. 5, a command packet shown in FIG. 6, and an interrupt packet shown in FIG.
[0045]
(Data packet (Fig. 5))
In the present embodiment, the image data is divided into image data 3002 of 32 pixels × 32 pixels and handled. The required header information 3001 and additional image information 3003 are added to the image in tile units to form a data packet.
[0046]
Next, information included in the header information 3001 will be described. Packets are distinguished into data packets, command packets, and interrupt packets based on the value of PacketTypeID 3023 in PcktType 3004 in header information 3001. In the present embodiment, as a 3-bit PacketTypeID,
001b or 101b: Data packet
010b: Command packet
100b: Interrupt packet
Is assigned.
[0047]
The PcktType 3004 includes a RepeatFlag 3022. If the image data and the image additional information 3003 of the data packet and the predetermined information in the header information 3001 are the same as the data packet transmitted immediately before, the RepeatFlag 3022 Is set to 1. In this case, the transfer of the packet is performed only for the header information 3001.
[0048]
The ChipID 3005 indicates the ID of a chip to which a packet is to be transmitted.
[0049]
ImageType 3006 indicates the type of image data. In the present embodiment, the type of image data is defined as follows by using the upper two bits of the ImageType 8 bits.
00b: One pixel of image data is represented by 1 bit.
01b: One pixel of image data is represented by an 8-bit one component.
10b: One pixel of image data is represented by 8 bits and 3 components, for a total of 24 bits.
11b: One pixel of image data is represented by 8 bits and 4 components, for a total of 32 bits.
[0050]
Page ID 3007 indicates a page including the data packet, and Job ID 3008 stores a Job ID to be managed by software.
[0051]
The arrangement order of the data packets on the page is represented by YnXn, which is a combination of the tile coordinates 3009 in the Y direction and the tile coordinates 3010 in the X direction.
[0052]
The data packet includes a data packet in which image data and image additional information of the packet are compressed, and an uncompressed data packet. In the present embodiment, as a compression algorithm, an example is shown in which JPEG is used when image data includes a multi-valued color multi-valued gray scale, binary data is used, and pack bits are used as image additional information.
[0053]
According to the above method, the case where the image data and the image additional information are compressed and the case where the image additional information is not compressed are as follows. It represents that.
[0054]
Also, a Q-TableID 3028 for storing the type of quantization table used when performing compression processing by JPEG is prepared in the compression flag 3017. If there are a plurality of quantization tables, this value is used when data is compressed and decompressed. , The quantization table to be used is switched.
[0055]
The process instruction 3011 is set to the processing order every 8 bits left-justified, and each processing unit shifts the process instruction to the left by 8 bits after the processing. The Process Instruction 3011 stores eight sets of a Unit ID 3024 and a Mode 3025. The Unit ID 3024 specifies each processing unit of the image processing unit 2149, and the Mode 3025 specifies an operation mode in each processing unit. Thus, one packet can be processed continuously up to eight units.
[0056]
PacketByteLength3012 indicates the total number of bytes of the packet.
[0057]
ImageDataByteLength 3015 represents the number of bytes of the image data, ZDataByteLength 3016 represents the number of bytes of the image additional information, and ImageDataOffset 3013 and ZDataOffset 3014 represent the offset value of each data from the head of the packet.
[0058]
SourceID 3018 indicates a source from which the image data and the image additional information have been generated.
[0059]
Ztype 3020 indicates the effective bit width in the image additional information, and the image additional information other than the bits indicated by Ztype 3020 is invalid information. If the Ztype 3020 is 0, it indicates that all the input image additional information is invalid.
[0060]
The ThumbnailData 3021 stores a value representative of the image data of the data packet or less, hereinafter referred to as a thumbnail value. In the present embodiment, the configuration is such that up to four thumbnail values can be stored in ThumbnailData 3021.
[0061]
The Misc 3019 stores necessary information other than the above information. In the present embodiment, a Char-flag 3029 and a Q-TableSel 3030 are prepared. The Char-flag 3029 stores an area signal to which the data packet belongs. The Q-TableSel 3030 stores information for changing a quantization table used at the time of compression and decompression according to the JPEG method.
[0062]
(Packet table (Fig. 8))
FIG. 8 shows a state where the data packet is stored in the RAM 2002. Each data packet is managed by a packet table 6001. The components of the packet table 6001 are as follows. By adding 0 bits to the values of the table, a packet start address 6002 and a packet Byte Length 6005 are obtained.
[0063]
Packet Address Pointer 27 bits + 5b00000 = Packet Top Address
Packet Length 11 bits + 5b00000 = Byte Length of Packet
Note that the packet table 6001 and the chain table 6010 are not divided.
[0064]
The packet table 6001 is always arranged in the scanning direction, and Yn / Xn = 000/00000 / 0011,000 / 002. . . . It is arranged in the order. The entry of the packet table 6001 uniquely indicates one tile. The next entry of Yn / Xmax is Yn + 1 / X0.
[0065]
When a packet in which the RepeatFlag 3002 in the header information 3001 is set is input, the packet is not written in the memory, and the same Packet Address Pointer and Packet Length as the first entry are stored in the packet table entry. . One packet data is indicated by two table entries. In this case, the Repeat Flag 6003 of the second table entry is set.
[0066]
When a packet is divided into a plurality by the Chain DMA, a Divide Flag 6004 is set, and a Chain Block number 6006 of the Chain Block containing the head of the packet is set.
[0067]
An entry of the chain table 6010 is composed of a Chain Block Address 6011 and a Chain Block Length 6012, and 0 is stored in the last entry of the table as both Address and Length.
[0068]
(Command packet format (Fig. 6))
The command packet format is for accessing the register setting bus 2109. By using this packet, the COU 2001 can also access the image memory 2123.
[0069]
The ChipID 4004 stores an ID representing the image processing unit 2149 to which the command packet is to be transmitted. Page ID 4007 and Job ID 4008 store a Page ID and a Job ID for management by software. Packet ID 4009 is represented in one dimension. Only X-coordinate of Data Packet is used.
[0070]
The packet byte length 4010 is fixed at 128 bytes. The packet data section 4002 can store a maximum of 12 commands using a set of an address 4011 and data 4012 as one command. The type of command, write or read, is indicated by CmdType 4005, and the number of commands is indicated by Cmdnum 4006.
[0071]
(Interrupt packet format (Fig. 7))
The interrupt packet format is for notifying an interrupt from the image processing unit 2149 to the CPU 2001. After transmitting the interrupt packet, the status processing unit 2105 must not transmit the interrupt packet until the transmission is permitted next time.
[0072]
The packet byte length 5006 is fixed at 128 bytes. The packet data section 5002 stores status information 5007 of each internal module of the image processing section 2149. The status processing unit 2105 can collect status information of each module in the image processing unit 2149 and send it to the system control unit 2150 collectively.
[0073]
The ID representing the system control unit 2150 that is the destination of the interrupt packet is stored in the ChipID 5004, and the ID representing the image processing unit 2149 that is the source of the interrupt packet is stored in the IntChipID 5005.
[0074]
[Tile compression unit]
FIG. 9 shows the configuration of each compression unit of the tile compression units (1), (2), and (3) 2106 in FIG. The tile compression units (1), (2), and (3) 2106 have the same configuration. In FIG. 9, reference numeral 201 denotes a tile bus interface unit which performs handshake with the tile bus 2107, acquires header information input from the tile bus 2107, image data and image additional information, and Output each data to the processing block. The tile bus interface unit 201 analyzes the header information sent from the tile bus 2107, and if there is any inconsistency in the header information, outputs an interrupt signal corresponding to the inconsistency to a register setting unit 206 described later, and then resets. Stop operation until signal is input.
[0075]
On the other hand, if there is no inconsistency in the header information, the data is transferred to the header information holding unit 202, the first compression processing unit 203, and the second compression processing unit 204, and the header information holding unit 202 stores the header information of the packet. The first and second compression processing units perform compression processing in each compression method. The first and second compression processing units 203 and 204 generate an error signal and report the error signal to the register setting unit 206 when there is a problem during the compression processing.
[0076]
Reference numeral 205 denotes an image ring output unit that acquires processing information, image data, and image additional information from the header information holding unit 202, the first compression processing unit 203, and the second compression processing unit 204, and converts the acquired information into header information. After setting a predetermined value, the data packet of FIG. 5 is generated and output to the image ring interface 2102.
[0077]
Reference numeral 206 denotes a register setting unit which is used to make settings relating to processing inside the tile compression unit 2106. In order to cause the tile compression unit 2106 to perform predetermined compression processing, the register setting unit 206 requires a predetermined value. Need to be set. These settings are performed by using a command packet to send from the system control unit 2150 to the command processing unit 2104 of the image processing unit 2149, and from the command processing unit 2104 to the tile compression unit 2106 via the register setting bus 2109. .
[0078]
The value set in the register setting unit 206 is sent to each compression processing unit, and a process determined by referring to those set values is performed. It should be noted that not only a value is set to the register setting unit 206 using a command packet, but also a setting value held by the register setting unit 206 can be output to the system control unit 2150 using a command packet. .
[0079]
Further, the register setting unit 206 has a register corresponding to an interrupt signal input from the tile bus interface unit 201, and the first compression processing unit 203 and the second compression processing unit 204. After being input, the corresponding register value is set, and then an interrupt signal for notifying the status processing unit 2105 that an interrupt has occurred and a status signal indicating in which block the interrupt has occurred are output.
[0080]
Reference numeral 207 denotes a register setting bus interface unit, which is a block for converting addresses and setting values input to the tile compression unit from the register setting bus 2109 into a format that can be received by the register setting unit 206 and sending the converted data. Note that the register setting bus interface unit 207 not only receives the register setting value from the register setting bus 2109 but also reads the setting value corresponding to the address indicated by the register setting bus from the register setting unit 206 and outputs it to the register setting bus 210. It is also possible.
[0081]
Reference numeral 208 denotes a quantization table, which stores a quantization data sequence to be referred to during a quantization process during a compression process described later. This quantization table 208 can be read / written from the register setting unit 206, and can be read independently of the header information holding unit 202 and the first and second compression processing units 203 and 204. Is a RAM means having three lead ports.
[0082]
[First and second compression processing units 203 and 204]
FIG. 10 shows the internal configuration of the first and second compression processing units 203 and 204 of FIG. In the present embodiment, a case where the image data has an 8-bit configuration, a 24-bit configuration, or a 32-bit configuration, that is, a case where the image data is compressed by the first compression processing unit 203 will be described. However, this description applies to the other compression processing units.
[0083]
In FIG. 10, reference numeral 101 denotes a first data buffer for storing image data sent from the tile bus interface unit 201. When a predetermined amount of data is sent, a JPEG compression buffer connected to the subsequent stage is connected. The image data is output to the unit 110 in a predetermined order. Here, the ImageType 3006 of the header information is input to the first data buffer 101 from the header information holding unit 202, and the order of the image data output to the JPEG compression unit 110 is controlled by the ImageType.
[0084]
Reference numeral 110 denotes a JPEG compression unit. In the present embodiment, the JPEG compression unit 110 compresses image data according to the JPEG method. It should be noted that the JPEG compression unit 110 has three more processing blocks.
[0085]
Reference numeral 102 denotes a DCT conversion unit which, when 64 data are input from the first data buffer 101, performs a discrete cosine transform (DCT) on the input data to convert the input data into frequency components. At this time, the DC component value generated by the discrete cosine transform is output to a thumbnail generation unit 107 described later together with the latch signal. The discrete cosine transform is performed every time 64 data are input, and each time the latch signal and the DC component value are output to the thumbnail generation unit 107. When an error occurs during the DCT conversion operation, the DCT conversion unit 102 outputs an error interrupt signal from the DCT conversion unit 102 to the register setting unit 206.
[0086]
Reference numeral 103 denotes a quantization unit that quantizes the frequency components output from the DCT transformation unit 102 using a predetermined quantization value to generate quantized data. The quantization value is input from a quantization table described later, and the quantization value to be used is determined by analyzing the header information from the header information holding unit 202. When a result of the quantization performed by the quantization unit 103 becomes a value other than a predetermined value, an error interrupt signal is output to the register setting unit 206.
[0087]
A Huffman encoding unit 104 performs a predetermined encoding on the quantized data output from the quantization unit 103 to generate encoded data, and outputs the encoded data to the second data buffer 105. When data that cannot be encoded is input to the Huffman encoding unit 104, an error interrupt signal is output from the Huffman encoding unit 104 to the register setting unit 206.
[0088]
The second data buffer 105 is for storing the encoded data encoded by the Huffman encoding unit 104. When the encoded data for one tile is acquired from the Huffman encoding unit 104, the second data buffer 105 stores the encoded data in the buffer. The capacity of the converted data is output to the image ring output unit 205 as Data Byte Length1. Also, the coded data stored in the second data buffer 105 is output to the image ring output unit 205 according to the request of the image ring output unit 205.
[0089]
A data comparison unit 106 compares the image data input from the tile bus interface unit 201 with the image data stored in the first data buffer 101. The image data sent from the tile bus interface unit 201 is stored in the first data buffer 101, and at the same time, the data comparison unit 106 compares the image data with the image data stored in the portion where the image data is stored.
[0090]
Since the image data sent to the first compression processing unit 203 is stored in the first data buffer 101 immediately before the tile input from the tile bus interface unit 201, the data comparison is performed by the above operation. The unit 106 compares the image data sent from the tile bus interface unit 201 with the image data of the immediately preceding tile in the first compression processing unit 203.
[0091]
When the comparison of the image data for one tile is completed by the data comparing unit 106, the comparison result Compare result 1 is output from the data comparing unit 106 to the image ring output unit 206.
[0092]
Reference numeral 107 denotes a thumbnail generation unit which obtains a DC component value in synchronization with a latch signal output from the DCT conversion unit 102, generates a thumbnail value for each tile by performing calculation and normalization, and generates a thumbnail value for each tile. Output to 205. Note that ImageType 3006 is input from the header holding unit 202 to the thumbnail generation unit 107, and the thumbnail generation unit 107 detects the order of the DC component values sent from the DCT conversion unit 102 by referring to the ImageType, and Generate a thumbnail value for each. The generated thumbnail value is output to the image ring output unit 206, and is stored in a predetermined format in the Thumbnail Data 3021 part of the header information acquired from the header information holding unit 202 in the image ring output unit. After that, the image data is output to the image ring interface 2104 as a data packet together with the image data compressed by the first compression processing unit 203 and the image additional information compressed by the second compression processing unit 204.
[0093]
Reference numeral 109 denotes a quantization table which stores a quantization value for performing quantization in the quantization unit 103. A plurality of quantization tables are stored in the quantization table 109. A predetermined quantization table is selected by a selection signal input from a quantization table selection unit 108 described later, and the quantization Output the coded value. Here, the quantization table is not provided one by one in each JPEG compression unit 110, but is shared by a common memory unit.
[0094]
Reference numeral 108 denotes a quantization table selection unit that outputs a quantization table selection signal to the quantization table 109 to select a predetermined table from a plurality of tables stored in the quantization table 109. ImageType 3006, Mode 3025, and Q-Table Sel 3030 are input from the header information holding unit 202 to the quantization table selection unit 108, and the quantization table selection unit 108 determines a quantization table to be used from these pieces of header information. When the quantization table to be used is determined, the quantization table selection unit 109 outputs a quantization table selection signal to the quantization table 109 so as to select the determined quantization table, and Q-representing the selected quantization table. The table ID is output to the image ring output unit 205.
[0095]
<Second embodiment>
This embodiment differs from the first embodiment in the image processing method. That is, in the first embodiment, JPEG compression is performed, but in the present embodiment, JPEG-compressed image data is expanded.
[0096]
FIG. 11 shows the configuration of the tile extension unit 2103 of FIG. In FIG. 11, reference numeral 705 denotes an image ring input unit, which inputs header information, image data, and image additional information to the header information holding unit 702, the first decompression processing unit 703, and the second decompression processing unit 704.
[0097]
The image ring input unit 705 analyzes the header information sent from the image ring interface (3) 2101 and, if there is any inconsistency in the header information, sends an interrupt signal corresponding to the inconsistency to a register setting unit 706 described later. After that, the operation is stopped until the reset signal is input. On the other hand, if there is no inconsistency in the header information, the data is transferred in the order of the first decompression processing unit 703 and the second decompression processing unit 704, and the first and second decompression processing units 703 and 704 perform image decompression processing in parallel. I do. The first and second expansion processing units 703 and 704 have the same configuration. If the first decompression processing unit 703 detects an abnormal operation while performing the decompression processing in the first decompression processing unit 703, the first decompression processing unit 703 outputs an interrupt signal corresponding to the content of the abnormal operation. After outputting to the register setting unit 706, the operation is stopped until a reset signal is input. A tile bus interface unit 701 performs handshaking with the tile bus 2107, outputs header information, image data, and image additional information to the tile bus 2107, and processes blocks connected to the tile bus 2107. Output each data to.
[0098]
Reference numeral 706 denotes a register setting unit for making settings relating to processing inside the tile expansion unit 2103. In order for the tile expansion unit 2103 to perform predetermined expansion processing, the register setting unit 706 requires a predetermined value. Need to be set. These settings are performed by using a command packet to send from the system control unit 2150 to the command processing unit 2104 of the image processing unit 2149, and from the command processing unit 2104 to the tile expansion unit 2103 via the register setting bus 2109. The value set in the register setting unit 706 is sent to the first decompression processing unit 703 and the second decompression processing unit 704, and both decompression processing units perform processing determined by referring to those set values. It should be noted that not only the value is set to the register setting unit 706 using the command packet, but also the set value held by the register setting unit 706 can be output to the system control unit 2150 using the command packet. .
[0099]
The register setting unit 706 has registers corresponding to interrupt signals input from the tile bus interface unit 701, the first decompression unit 703, and the second decompression unit 704, and receives an interrupt signal from any of the blocks. Then, after setting the value of the corresponding register, it outputs an interrupt signal notifying to the status processing unit 2105 that the interrupt has occurred, and a status signal indicating in which block the interrupt has occurred.
[0100]
Reference numeral 707 denotes a register setting bus interface, which is a block for converting an address and a setting value input from the register setting bus 2109 to the tile decompression unit into a format that can be received by the register setting unit 706 and sending the converted value. Note that the register setting bus interface unit 707 not only receives the register setting value from the register setting bus 2109 but also reads the setting value corresponding to the address indicated by the register setting bus 2109 from the register setting unit 706 and sends it to the register setting bus 2109. It is also possible to output.
[0101]
A quantization table 708 stores a quantization value for performing inverse quantization in the inverse quantization unit 803. A plurality of quantization tables are stored in the quantization table 708. A predetermined quantization table is selected by a selection signal input from a quantization table selection unit 808 described later, and the quantization table is quantized by the inverse quantization unit 803. Output the value. Here, the quantization table is not provided one by one in each JPEG compression unit 810, but is used by sharing a common memory unit.
[0102]
[Image expansion unit]
FIG. 12 shows the configuration of the first and second decompression processing units 703 and 704 of FIG. A case where the image data has an 8-bit configuration, a 24-bit configuration, or a 32-bit configuration, that is, a case where the image data is decompressed by the first decompression processing unit 703 will be described. However, the description is the same for the second decompression processing unit.
[0103]
In FIG. 12, reference numeral 801 denotes a first data buffer for storing image data sent from the image ring input unit 705. When a predetermined amount of data is sent, a JPEG decompression device connected to the subsequent stage is sent. Image data is output to unit 810 in a predetermined order. To the first data buffer 801, ImageType 3006 of the header information is input from the header information holding unit 702, and is used for JPEG decompression processing in the JPEG decompression unit 810. In the JPEG decompression unit 810, there are three processing blocks.
[0104]
Reference numeral 802 denotes a Huffman decoding unit that performs predetermined decoding when JPEG compressed data is input from the data buffer 801, and outputs the result to the inverse quantization unit 803. An inverse quantization unit 803 performs inverse quantization on the data output from the Huffman decoding unit 802 using a predetermined quantization value. Note that the inverse quantization value is input from a quantization table described later, and the quantization value to be used is determined by analyzing the header information from the header information holding unit 702. Reference numeral 804 denotes a DCT inverse transform unit that performs DCT inverse transform of the frequency component from the inverse quantization unit 803.
[0105]
Reference numeral 805 denotes a second data buffer for storing the decompressed image data, and when acquiring the image data for one tile, outputs it to the tile bus interface unit 701. A quantization table 809 stores a quantization value for performing inverse quantization in the inverse quantization unit 803. A plurality of quantization tables are stored in the quantization table 809. A predetermined quantization table is selected by a selection signal input from a quantization table selection unit 808 described later, and the quantization table is quantized by the inverse quantization unit 803. Output the value.
[0106]
A quantization table selection unit 808 selects a predetermined table from a plurality of tables stored in the quantization table 809 by outputting a quantization table selection signal to the quantization table 809. Image Type 3006, Mode 3025, and Q-Table Sel 3030 are input from the header information holding unit 702 to the quantization table selection unit 808, and Q-Table ID is input from the image ring input unit 705. The unit 808 determines a quantization table to be used from the header information. When the quantization table to be used is determined, the quantization table selection unit 808 outputs a quantization table selection signal to the quantization table 809 so as to select the determined quantization table. It is to be noted that the quantization table 809 is not provided one by one in each JPEG decompression unit 801 but is used by sharing a common memory unit.
[0107]
As described above, by using the selection information of the quantization table in the header information added to the image data, it is not necessary to reset the image processing mode via the CPU, and the image compressed by the image compression unit is not required. When data is expanded by the image expansion unit, an appropriate quantization table can be selected. In addition, as a multi-function process, for example, when simultaneously performing a process of rotating another image in the memory while writing out an image in the memory and writing back to the memory, the image processing is performed on a tile basis. , And an appropriate quantization table is automatically selected for each tile, so that parallel operation is facilitated.
[0108]
That is, a data packet for printing is generated from the image data for printing in the RAM 2002, and a print output process is performed on the route of the RAM 2002 → the image ring interface 2101 → the tile expansion unit 2103 → the image output interface 2113 → the printer 2095. Then, a data packet for rotation is generated from the image data for rotation in the RAM 2002, and an image rotation process is performed by taking a route of RAM 2002 → image ring interface 2101 → tile expansion unit 2103 → image rotation unit 2030 → image ring interface 2101 → RAM 2002. .
[0109]
At this time, in each expansion unit of the tile expansion unit 2103, for example, the first expansion processing unit selects a quantization table suitable for print output according to the header information of the data packet for printing, and expands the tile image. 2 The expansion processing unit can expand the tile image by selecting a quantization table suitable for the rotation processing according to the header information of the data packet for rotation. Note that, for one processing unit, each processing may be assigned in a time-division manner, such as switching a table for each sequentially input data packet.
[0110]
(Other embodiments)
In the above embodiment, the present invention has been described by taking the controller of the digital copying machine as an example. However, the present invention is not limited to this, and may be applied to other image processing apparatuses such as a printer, a scanner, and an expansion card for connecting to a PC. It goes without saying that is also applicable. The present invention is also applied to the compression / transmission / reception / expansion units of each unit even when image data communication between units (for example, a scanner unit and a printer unit) is performed in serial data communication in the form of packet data. be able to.
[0111]
In the above-described embodiment, the present invention has been described by taking compression processing and decompression processing as examples. However, the present invention is not limited to this, and uses tables such as binarization processing, color conversion processing, and resolution conversion processing. Needless to say, the present invention can be similarly applied to other image processing capable of performing the above processing.
[0112]
Hereinafter, examples of embodiments of the present invention will be listed.
[0113]
Embodiment 1 An image processing apparatus that processes a divided image obtained by dividing an original image,
Storage means for storing a table for processing the divided image,
Input means for inputting a data packet obtained by adding processing information to the divided image;
A plurality of image processing means for performing image processing on the divided image of the data packet input by the input means according to the table,
The image processing apparatus, wherein the plurality of image processing units share the same table in the storage unit by selecting the table according to the processing information of the data packet and using the table for the image processing.
[0114]
[Second Embodiment] In the first embodiment, the image processing unit may perform an image compression process by selecting and using a quantization table stored in the storage unit according to mode switching information included in the processing information. An image processing apparatus characterized by the above-mentioned.
[0115]
[Embodiment 3] In Embodiment 1, the image processing unit may perform image expansion processing by selecting and using a quantization table stored in the storage unit according to mode switching information included in the processing information. An image processing apparatus characterized by the above-mentioned.
[0116]
[Embodiment 4] An image processing apparatus according to any one of Embodiments 1 to 3, further comprising a generation unit configured to generate the divided image by dividing the original image into image data in units of rectangular images. .
[0117]
[Embodiment 5] An image processing method for processing a divided image obtained by dividing an original image,
An input step of inputting a data packet obtained by adding processing information to the divided image;
A plurality of image processing steps of performing image processing on the divided image of the data packet input in the input step according to a table stored in storage means,
In the image processing method, the plurality of image processing steps share the same table in the storage unit by selecting the table according to processing information of the data packet and using the table for the image processing.
[0118]
[Embodiment 6] An image processing method for processing a divided image obtained by dividing an original image,
An input step of inputting a data packet obtained by adding processing information to the divided image;
A plurality of image processing steps of performing image processing on the divided image of the data packet input in the input step according to a table stored in storage means,
In the image processing method, the plurality of image processing steps share the same table in the storage unit by selecting the table according to processing information of the data packet and using the table for the image processing.
[0119]
[Embodiment 7] An image processing method for processing a divided image obtained by dividing an original image,
An input step of inputting a first data packet obtained by adding processing information to the divided image of the first original image, and a second data packet obtained by adding processing information to the divided image of the second original image;
A plurality of image processing steps of performing image processing on the divided images of the first and second data packets input in the input step according to the table,
The plurality of image processing steps select a first table according to the processing information of the first data packet, process the divided image, and select a second table according to the processing information of the second data packet. An image processing method, comprising: performing a parallel process of a process relating to a first original image and a process relating to a second original image by processing a divided image.
[0120]
【The invention's effect】
As described above, according to the present invention, the selection of the quantization table at the time of compressing and expanding the tile image is performed without using the CPU by using the quantization table selection information in the header information added to the image data. By doing so, the load on the CPU is reduced, and the parallel operation of image processing is facilitated while increasing the processing speed of image processing.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an embodiment of the present invention.
FIG. 2 is a block diagram illustrating an example of a configuration of a system control unit 2150 in FIG.
FIG. 3 is a block diagram illustrating a configuration of an image processing unit 2149 of FIG. 1;
FIG. 4 is a diagram illustrating an example in which the multifunction system in FIG. 1 is connected to a LAN 1010.
FIG. 5 is a diagram illustrating an example of a format of a data packet.
FIG. 6 is a diagram illustrating an example of a format of a command packet.
FIG. 7 is a diagram illustrating an example of a format of an interrupt packet.
FIG. 8 is a diagram illustrating an example of a format of a packet table and a chain table.
9 is a block diagram illustrating an example of a configuration of a tile compression unit (1), (2), (3) 2106 in FIG.
FIG. 10 is a block diagram illustrating an example of a configuration of first to third compression processing units 202, 203, and 204 in FIG. 9;
11 is a block diagram illustrating an example of a configuration of a tile expansion unit 2103 in FIG.
FIG. 12 is a block diagram illustrating an example of a configuration of first to third decompression processing units 702, 703, and 704 in FIG. 11;
[Explanation of symbols]
201 Tile bus interface
202 Header information holding unit
203 first compression processing unit
204 second compression processing unit
205 Image ring input unit
206 Register section
207 Register setting bus interface
2000 control unit
2106 Tile compression unit
2149 Image processing unit
2150 System control unit

Claims (1)

原画像を分割した分割画像を処理する画像処理装置であって、
前記分割画像の処理のためのテーブルを格納する格納手段と、
前記分割画像に処理情報を付加したデータパケットを入力する入力手段と、
前記入力手段により入力したデータパケットの分割画像を、前記テーブルに従い画像処理する複数の画像処理手段とを有し、
前記複数の画像処理手段は、前記データパケットの処理情報に従って前記テーブルを選択し前記画像処理に使用することで、前記格納手段の同一のテーブルを共有することを特徴とする画像処理装置。
An image processing apparatus for processing a divided image obtained by dividing an original image,
Storage means for storing a table for processing the divided image,
Input means for inputting a data packet obtained by adding processing information to the divided image;
A plurality of image processing means for performing image processing on the divided image of the data packet input by the input means according to the table,
The image processing apparatus, wherein the plurality of image processing units share the same table in the storage unit by selecting the table according to the processing information of the data packet and using the table for the image processing.
JP2002328316A 2002-11-12 2002-11-12 Image processing apparatus Pending JP2004165902A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002328316A JP2004165902A (en) 2002-11-12 2002-11-12 Image processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002328316A JP2004165902A (en) 2002-11-12 2002-11-12 Image processing apparatus

Publications (1)

Publication Number Publication Date
JP2004165902A true JP2004165902A (en) 2004-06-10

Family

ID=32806650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002328316A Pending JP2004165902A (en) 2002-11-12 2002-11-12 Image processing apparatus

Country Status (1)

Country Link
JP (1) JP2004165902A (en)

Similar Documents

Publication Publication Date Title
US7130072B2 (en) Multifunction system, image processing method, computer program and memory medium
JP3862605B2 (en) Image processing device
US7447384B2 (en) Image processing method and apparatus
JP2003316714A (en) Apparatus and method for information processing
JP2001332976A (en) Device and method for processing image
US20040141655A1 (en) Method and apparatus for image processing
JP3907471B2 (en) Image input / output controller
JP4136573B2 (en) Image processing method, image processing apparatus, program, and recording medium
JP2005045458A (en) Image compression method and apparatus
JP2004165902A (en) Image processing apparatus
JP4065550B2 (en) Image input / output control device, image processing device, image processing method in image input / output control device, and image processing method in image processing device
JP2003250050A (en) Image processing apparatus and control method thereof
JP2004120135A (en) Image processor, and control method therefor
JP2004253906A (en) Expanding apparatus
JP2006229688A (en) Image processing device
JP3703431B2 (en) Data communication apparatus, image processing apparatus, data communication method, and data communication method in image processing apparatus
JP2003234910A (en) Multifunction system
JP2003224727A (en) Image processing system
JP2003069831A (en) Image processor, image display method and computer program
JP2003234909A (en) Image processing apparatus
JP2003196044A (en) Image processing method and its device
JP2003234904A (en) Multifunction system controller
JP2005020094A (en) Image processing method and image processor
JP2003078770A (en) Image processing method and its apparatus
JP2004221784A (en) Image processing apparatus