JP2004120135A - Image processor, and control method therefor - Google Patents

Image processor, and control method therefor Download PDF

Info

Publication number
JP2004120135A
JP2004120135A JP2002278119A JP2002278119A JP2004120135A JP 2004120135 A JP2004120135 A JP 2004120135A JP 2002278119 A JP2002278119 A JP 2002278119A JP 2002278119 A JP2002278119 A JP 2002278119A JP 2004120135 A JP2004120135 A JP 2004120135A
Authority
JP
Japan
Prior art keywords
image
data
unit
compression
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
JP2002278119A
Other languages
Japanese (ja)
Inventor
Masahiro Takizawa
滝澤 昌弘
Yoshinobu Umeda
梅田 嘉伸
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 JP2002278119A priority Critical patent/JP2004120135A/en
Publication of JP2004120135A publication Critical patent/JP2004120135A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an image processor which is easily structured and designed and can change parameters with respect to compression in units of pixel blocks such as a tile. <P>SOLUTION: The image processor includes: a division section 2112 for dividing image data received from an image input section such as a scanner 2070 in units of prescribed pixel blocks; an image compression section 2106 for applying compression coding to the divided pixel block; and an image storage section 2002 for storing compression coded information subjected to compression coding, and the division section, the image compression section, and the image storage section make communication with each other by using packet data. Then the division section 2112 discriminates the attribute of the pixel block in the case of dividing the received image data into the prescribed pixel block and outputs information with respect to the produced attribute as attached information together with data of the pixel block as packet data. Further, the image compression section determines the parameters for compression coding according to the attribute information in the packet data outputted from the division section and applies compression coding to the data of the pixel block included in the packet data. The storage section stores the packet data compressed by the image compression section. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は画像処理装置及びその制御方法、詳しくは、画像データを圧縮符号化する画像処理装置及びその制御方法に関するものである。
【0002】
【従来の技術】
従来、画像処理装置が画像読取装置などの画像入力装置から処理装置内部のメモリに画像データや画像データに付随する画像情報を格納する場合、画像処理装置に取り込んだ画像データ及び画像情報に対して、画像をタイル状に分割し、タイル毎にJPEG圧縮処理を行うことによってデータ量を減少してからメモリへ格納することが一般的である。
【0003】
これは画像データ及び画像情報を格納するためのメモリ容量を削減するのと同時に、画像処理装置−メモリ間、及び印字を行う際にメモリ−印字装置間のデータの転送量を削減するために行われる。
【0004】
また、圧縮されたタイル画像データを、1つのタイルが1つのパケットに対応したパケット形式でデータ通信を行うことがある。パケットは、ヘッダ部と画像データ部から構成され、ヘッダ部には、パケットのデータサイズや画像全体におけるタイルの位置、画像処理内容といった情報が格納されており、画像データ部には、圧縮されたタイル画像データまたは非圧縮のタイル画像データが格納されている。
【0005】
【発明が解決しようとする課題】
しかしながら、従来例においては、ある特定の位置のタイルで設定を変更することは行っていなかった。従来例においては、圧縮はページ毎に行い、ページの先頭で圧縮パラメータを画像圧縮回路に設定していた。
【0006】
圧縮のパラメータは画像の特徴に合わせて変更したほうが望ましい。例えば、文字が書かれたタイルでは、高周波数成分をあまり圧縮しない圧縮パラメータを設定して精細な画像とすることが望ましく、自然画像が書かれたタイルでは、高周波数成分の画像圧縮率を上げた圧縮パラメータを設定してデータサイズの小さい画像とすることが望ましい。従来の画像処理装置では、文字画像タイルと自然画像タイルなど特徴の異なる画像が1ページ中に混在したときに、それぞれのタイル画像の特徴に合わせて画像圧縮パラメータを変更することが不可能であり、画像の品位を保ちつつ、圧縮率の高い画像圧縮を行うことが難しいという問題点があった。
【0007】
本発明は上記問題点に鑑みなされたものであり、装置構成並びに装置の設計を容易にしながら、タイル等の画素ブロック単位に圧縮に関するパラメータを変更可能な画像処理装置及びその制御方法を提供しようとするものである。
【0008】
また、他の発明は、上記目的に加えて、目標サイズに画像を圧縮することを可能ならしめる画像処理装置及びその制御方法を提供しようとするものである。
【0009】
【課題を解決するための手段】
かかる課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。
【0010】
画像入力部より入力した画像データを所定の画素ブロック単位に分割する分割部、分割した画素ブロックを圧縮符号化する画像圧縮部、圧縮符号化した圧縮符号化情報を記憶する画像記憶部を備え、前記分割部、画像圧縮部、及び画像記憶部の間では、パケットデータとして通信する画像処理装置であって、
前記分割部は、入力した画像データを所定画素ブロックに分割する際、当該画素ブロックの属性を判別し、生成した属性に関する情報を付加情報として前記画素ブロックのデータと共にパケットデータとして出力し、
前記画像圧縮部は、前記分割部から出力されたパケットデータ中の属性情報に従って圧縮符号化する際のパラメータを決定し、当該パケットデータに含まれる画素ブロックのデータを圧縮符号化し、
前記記憶部は、前記画像圧縮部で圧縮されたパケットデータを記憶することを特徴とする。
【0011】
【発明の実施の形態】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【0012】
[ハードウェアの説明]
本実施形態におけるデジタル複合機のブロック構成を図10に示す。図中、2000は、実施形態の画像入出力制御装置及び画像処理装置を適用可能なコントローラ(Controller Unit)である。
【0013】
ここで、2150はデジタル複合機全体を制御するシステム制御部である。2149は入力した画像データに対して所定の画像処理を行う画像処理部であり、その詳細については後述する。2008は画像リングであり、システム処理部2150と画像処理部2149をリング状に接続する。
【0014】
2012は各種設定や動作指示操作を行うための操作部であり、タッチパネル、液晶表示器、各種スイッチやボタンで構成される。2002はRAM、2003はROMである。2143は汎用PCI(Peripheral Component Interconnect Bus)バスであり、2004は外部記憶装置(例えばハードディスクやMO等の大容量記憶装置)、2144はディスクコントローラである。2050は、公衆回線と接続するためのモデム、2146はPHY/PMDであり、LAN2011と接続しており、デジタル複合機はモデム2050及びPHY/PMDを介して外部機器と通信可能である。画像処理部2149には、プリンタ2095、画像メモリ2123、スキャナ2070が接続される。
【0015】
ここで、ハードウェアとしての観点から見た、コントローラ2000の構成について説明する。デジタル複写機等、デジタル複合機におけるコントローラは、システムLSIとして、システム制御部2150、画像処理部2149それぞれ1つの半導体基板上に構成している。また、ここで述べる半導体基板は、ICチップと言い換えることできる。すなわち、本実施形態では、コントローラ2000が1つのプリント基板であり、このプリント基板上に、システム制御部2150、画像処理部2149がICチップとして実装されている。但し、本発明はこれに限るものではなく、例えば、システム制御部2150、画像処理部2149が、それぞれ別々のプリント基板上にICチップとして実装されていてもよい。また、システム制御部2150、画像処理部2149が同一半導体基板上に構成されていてもよい。
【0016】
次に、主に、システム制御部2150及び画像処理部2149の内部構成を説明するための詳細な全体構成を図11に示す。
【0017】
コントローラ2000は、画像入力デバイスであるスキャナ2070(ADFを搭載している)や画像出力デバイスであるプリンタ2095と接続し、一方ではLAN2011や公衆回線WAN2051と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開を行う為のコントローラである。
【0018】
CPU2001はシステム全体を制御するプロセッサである。本実施の形態では2つのCPUを用いた例を示している。これら二つのCPUは、共通のCPUバス2126に接続され、さらに、システムバスブリッジ2007に接続される。
【0019】
システムバスブリッジ2007は、バススイッチであり、CPUバス2126、RAMコントローラ2124、ROMコントローラ2125、IOバス1(2127)、IOバス2(2129)、画像リングインターフェース1(2147)、画像リングインターフェース2(2148)が接続される。
【0020】
RAM2002は、CPU2001が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。RAM2002は、RAMコントローラ2124により制御される。
【0021】
ROM2003はブートROMであり、システムのブートプログラムが格納されている。ROMコントローラ2125により制御される。
【0022】
IOバス1(2127)は、内部IOバスの一種であり、標準バスであるUSBバスのコントローラ、USBインターフェース2138、汎用シリアルポート2139、インタラプトコントローラ2140、GPIOインターフェース2141が接続される。IOバス1(2127)には、バスアービタ(図示せず)が含まれる。
【0023】
操作部I/F2006は操作部UI2012とのインターフェース部で、操作部2016に表示する画像データを操作部2012に対して出力する。また、操作部2012から本システム使用者が入力した情報を、CPU2001に伝える役割をする。
【0024】
IOバス2(2129)は内部IOバスの一種であり、汎用バスインターフェース1及び2(2142)と、LANコントローラ2010が接続される。IOバス2(2142)にはバスアービタ(図示せず)が含まれる。
【0025】
汎用バスインターフェース1と2(2142)は、2つの同一のバスインターフェースから成り、標準IOバスをサポートするバスブリッジである。本実施の形態では、PCIバス(2143)を採用した例を示した。
【0026】
実施形態での外部記憶装置2004はハードディスクドライブ(以下、HDD)で、システムソフトウェア、画像データを格納するためのもので、ディスクコントローラ2144を介して一方のPCIバス2143に接続される。
【0027】
LANコントローラ2010は、MAC回路2145、PHY/PMD回路2146を介しLAN2011に接続し、情報の入出力を行う。Modem2050は公衆回線2051に接続し、情報の入出力を行う。
【0028】
パケット転送手段である画像リングインターフェース1(2147)及び画像リングインターフェース2(2148)は、システムバスブリッジ2007と画像データを高速で転送する画像リング2008を接続し、タイル化されたデータをRAM2002と画像処理部2149間で転送するDMAコントローラである。
【0029】
同じくパケット転送手段である画像リング2008は、一連の単方向接続経路の組み合わせにより構成される。画像リング2008は、画像処理部1(2149)内で、画像リングインターフェース3(2101)、及び画像リングインターフェース4(2102)を介し、コマンド処理部2104、ステータス処理部2105、タイルバス2127に接続される。
【0030】
なお、通信単位となるパケットの書式については後述するが、やりとりされる情報には画像データがあるのは勿論、コマンド、割り込み要求等がある。これらの各信号をやりとりするのに、それぞれに専用の信号線を割り当ててしまうと回路(チップサイズ)及びLSIパッケージの規模が大きくなり、コストが増加する。かかる点、上記のように、システム制御部215や画像処理部219間では、システムとして動作するのに必要な情報をすべてパケット形式の情報通信という形式にすることで、それぞれの回路が単独に設計できて、より自由度が増し、各回路に汎用性を持たせることも可能になる。
【0031】
コマンド処理部2104は、画像リングインターフェースへの接続に加え、レジスタ設定バス2109に接続され、画像リングを介して入力したCPU2001より発行されたレジスタ設定要求を、レジスタ設定バス2109に接続される該当ブロックへ書き込む。また、CPU2001より発行されたレジスタ読み出し要求に基づき、レジスタ設定バスを介して該当レジスタより情報を読み出し、画像リングインターフェース4(2102)に転送する。
【0032】
ステータス処理部2105は各画像処理部の情報を監視し、CPU2001に対してインタラプトを発行するためのインタラプトバケットを生成し、画像リングインターフェース4(2012)に出力する。
【0033】
タイルバス2107には上記ブロックに加え、画像入力インターフェース2112、画像出力インターフェース2113、複数の矩形画像処理部2116〜2119、2030等の機能ブロックが接続される。
【0034】
本実施の形態では、矩形画像処理部として、多値化部2119、2値化部2118、色空間変換部2117、画像回転部2030、解像度変換部2116を実装している。スキャナ2070は画像処理部2149に接続されている。
【0035】
画像処理部2149内の、画像入力インターフェース2112は、後述するスキャナ2170により補正画像処理されたラスタイメージデータを入力とし、以下に示す処理を行う。
【0036】
先ず、1画素単位に、画素が文字・線画中のものであるか、中間調画内にあるのか等を判断し、1画素毎に設けられる画像付加情報(以下、Zフラグと記す)3003に文字・線画である場合に1を、そうでなければ0をセットする。実施形態では、後述するように、画像を矩形の画素ブロック(32×32画素ブロック)、換言すればタイル単位に圧縮するものであるから、次いで、その画素ブロックを構成する個々の画素のZフラグの状態に基づいて、注目画素ブロックにおける属性(Q−Table selデータ、Char−Flag)を決定する。こうして画素ブロックに対する属性が決定されると、その結果のデータを後段のタイルバス2107に出力する(尚、Q−Table selの生成の仕方についての詳細については後述する)。実施形態では、各処理部間のデータはパケット単位になされるものであるので、このとき画素ブロックのデータはヘッダ情報(Q−Table selデータを含む)+タイルデータを少なくとも含むパケット形式にし、クロックと同期化して出力する。
【0037】
画像処理部2149内の画像出力インターフェース2113は、タイルバス2107からの矩形データを入力とし、ラスター画像への構造変換及び、クロックレートの変更を行い、ラスター画像をプリンタ2095へ出力する。
【0038】
画像回転部2030は画像データの回転を行い、解像度変換部2116は補間/間引き等の処理を行うことで画像の解像度の変更を行う。また、色空間変換部2117はカラー及びグレースケール画像の色空間の変換を行う。2値化部2118は、多値カラー、グレースケール画像を誤差拡散処理やディザ処理により2値化する。また、多値化部2119は2値画像を多値データへ変換するもので、例えば、或る2値画素に着目した際、その周囲の画素群を参照することで注目画素を2ビット以上の多値画素データに変換するものである。
【0039】
メモリ制御部2122は、メモリバス2108に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ2123に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施の形態では、画像メモリにSDRAMを用いるものとする。
【0040】
次に本実施の形態におけるデジタル複合機のエラー処理について説明する。
【0041】
画像入力インターフェース2112は、次の2つのエラー、つまり、スキャナ2170の送るデータよりも画像入力インターフェース2112の動作が遅く、画像入力インターフェース2112がデータを受け取れなかった場合に起きるオーバーランエラー、および、スキャナ2170から不正な垂直同期信号または水平同期信号を受け取ったときに発生する同期エラーを検出する。また、画像入力インターフェース2112は、次の6つの割り込み、つまり、スキャナ2170から1ページ分のデータを正常に読み込んだときに起きるスキャナ正常動作終了割り込み、および、画像入力インターフェース2112が1ページ分のデータを出力して停止後、または、画像入力インターフェース2112が外部から動作を強制的に止められた場合、または、画像入力インターフェース2112がエラーを検出した時に起きる画像入力インターフェース動作終了割り込み、および、1タイル分のデータの出力が終わるたびに起きるタイル終了割り込み、および、1タイル分のデータの出力を開始するたびに起きるタイル開始割り込み、および、スキャナ2170が出す垂直同期信号の立ち上がりを検出したときに発生する垂直同期信号の立ち上がり割り込み、および、垂直同期信号の立ち下がりを検出したときに発生する垂直同期信号の立ち下がり割り込み、および、レジスタで設定されたライン数分のデータをスキャナ2170から受け取ったときに発生するマークライン割り込みを発生する。エラーまたは割り込みを検出した画像入力インターフェース2112は、割り込み信号を用いてステータス処理部2105にエラーまたは割り込みを知らせ、ステータス処理部2105はインタラプトバケットを用いてCPU2001にエラーまたは割り込みを知らせる。
【0042】
画像出力インターフェース2113は、次の2つのエラー、つまり、プリンタ2095へ送るデータよりも画像出力インターフェース2113の動作が遅く、プリンタ2095がデータを受け取れなかった場合に起きるアンダーランエラー、および、プリンタ2095から不正な垂直同期信号または水平同期信号を受け取ったときに発生する同期エラーを検出する。また、画像出力インターフェース2113は、次の6つの割り込み、つまり、プリンタ2095へ1ページ分のデータを正常に送ったときに起きるプリンタ正常動作終了割り込み、および、画像出力インターフェース2113が1ページ分のデータを出力して停止後、または、画像出力インターフェース2113が外部から動作を強制的に止められた場合、または、画像出力インターフェース2113がエラーを検出した時に起きる画像出力インターフェース動作終了割り込み、および、1タイル分のデータの出力が終わるたびに起きるタイル終了割り込み、1タイル分のデータの出力を開始するたびに起きるタイル開始割り込み、および、垂直同期信号の立ち上がりを検出したときに発生する垂直同期信号の立ち上がり割り込み、および、垂直同期信号の立ち下がりを検出したときに発生する垂直同期信号の立ち下がり割り込み、および、レジスタで設定されたライン数分のデータをプリンタ2095から受け取ったときに発生するマークライン割り込みを発生する。エラーまたは割り込みを検出した画像出力インターフェース2113は、割り込み信号を用いてステータス処理部2105にエラーまたは割り込みを知らせ、ステータス処理部2105はインタラプトバケットを用いてCPU2001にエラーまたは割り込みを知らせる。
【0043】
ここで、参考までに上で述べた不正な垂直同期信号または水平同期信号について説明する。画像出力インターフェース2113および画像入力インターフェース2112は、垂直同期信号の立ち上がりから立ち上がりの期間における水平同期信号の立ち上がりの回数を数えている。正常な垂直同期信号および水平同期信号が入力した場合は、垂直同期信号の立ち上がりから立ち上がりの期間における水平同期信号の立ち上がりの回数は変化しないが、不正な垂直同期信号または水平同期信号が入力した場合は、垂直同期信号の立ち上がりから立ち上がりの期間における水平同期信号の立ち上がりの回数は変化する。ここで、垂直同期信号および水平同期信号の立ち上がりで説明したが、立ち下がりであっても良いのは言うまでもない。
【0044】
画像回転部2030は、次の3つのエラー、つまり、パケットヘッダーに画像回転部2030で処理できる色形式(YMCK、RGBα、RGB、YUV、Lab、Y、M、C、K、ND,BK)以外の未定義のImageTypeが書かれていたときに起きるImageTypeエラー、および、パケットヘッダーに書かれたX座標またはY座標が画像回転部2030に書かれた1ページのXサイズまたはYサイズよりも大きかった場合に起きるX座標エラーまたはY座標エラー、および、パケットヘッダーに書かれたProcessInstructionModeに画像回転部2030で処理できるProcessInstructionMode(0°回転、90°回転、180°回転、270°回転、および、それぞれの鏡像)以外の未定義のProcessInstructionModeが書かれて場合に起きるProcessInstructionModeエラーを検出する。エラーを検出した画像回転部2030は、割り込み信号を用いてステータス処理部2105にエラーを知らせ、ステータス処理部2105はインタラプトバケットを用いてCPU2001にエラーを知らせる。
【0045】
解像度変換部2116は、次の6つのエラー、パケットヘッダーに書かれたPacketTypeIDがデータパケット以外の場合に起きるPacketTypeエラー、および、パケットヘッダーに解像度変換部2116が処理できる色形式(YMCK、RGBα、RGB、YUV、Lab、Y、M、C、K、ND,BK)以外の未定義のImageTypeが書かれていた時に起きるImageTypeエラー、および、パケットヘッダーに書かれたPageIDが処理中のPageIDと異なっていた場合に起きるPageIDエラー、および、パケットヘッダーに書かれたJobIDが処理中のJobIDと異なっていた場合に起きるJobIDエラー、および、パケットヘッダーに書かれたX座標またはY座標が解像度変換部2116が期待した順番どおりでなかった場合に起きるX座標エラーまたはY座標エラーを検出する。エラーを検出した解像度変換部2116は、割り込み信号を用いてステータス処理部2105にエラーを知らせ、ステータス処理部2105はインタラプトバケットを用いてCPU2001にエラーを知らせる。また、解像度変換部2116は、1ページ分の解像度変換したデータを正常に送ったときに起きる解像度変換正常動作終了割り込みを発生する。エラーまたは割り込みを検出した解像度変換部2116は、割り込み信号を用いてステータス処理部2105にエラーまたは割り込みを知らせ、ステータス処理部2105はインタラプトバケットを用いてCPU2001にエラーまたは割り込みを知らせる。
【0046】
色空間変換部2117は次の3つのエラー、つまり、パケットヘッダーに色空間変換部2117が処理できる色形式(YMCK、RGBα、RGB、YUV、Lab、Y、M、C、K、ND,BK)以外の未定義のImageTypeが書かれていた時に起きるImageTypeエラー、および、パケットヘッダーに書かれたPacketTypeIDがデータパケット以外の場合に起きるPacketTypeエラー、および、パケットヘッダーに色空間変換部2117が処理できる色形式(YMCK、RGBα、RGB、YUV、Lab、Y、M、C、K、ND,BKそれぞれへの変換)以外のProcessInstructionModeが書かれていた場合に起きるProcessInstructionModeエラーを検出する。エラーを検出した色空間変換部2117は、割り込み信号を用いてステータス処理部2105にエラーを知らせ、ステータス処理部2105はインタラプトバケットを用いてCPU2001にエラーを知らせる。
【0047】
2値化部2118は、次の5つのエラー、つまり、パケットヘッダーに2値化部2118が処理できる色形式(Y、M、C、K、ND)以外のImageTypeが書かれていたときに起きるImageTypeエラー、および、パケットヘッダーに書かれたPacketTypeIDがデータパケット以外を示していた場合に起きるPacketTypeエラー、および、パケットヘッダーに書かれたPageIDが処理中のPageIDと異なっていた場合に起きるPageIDエラー、および、パケットヘッダーに書かれたJobIDが処理中のJobIDと異なっていた場合に起きるJobIDエラー、および、パケットヘッダーに書かれたX座標またはY座標が2値化部2118に書かれた1ページのXサイズまたはYサイズよりも大きかった場合に起きるX座標エラーまたはY座標エラーを検出する。エラーを検出した2値化部2118は、割り込み信号を用いてステータス処理部2105にエラーを知らせ、ステータス処理部2105はインタラプトバケットを用いてCPU2001にエラーを知らせる。
【0048】
多値化部2119は、次の3つのエラー、つまり、パケットヘッダーに黒色以外のImageTypeが書かれていたときに起きるImageTypeエラー、および、パケットヘッダーに書かれたPacketTypeIDがデータパケット以外を示していた場合に起きるPacketTypeエラー、および、パケットヘッダーに書かれたProcessInstructionModeが多値化部2119が処理できるProcessInstructionMode以外の場合に起きるProcessInstructionModeエラーを検出する。エラーを検出した多値化部2119は、割り込み信号を用いてステータス処理部2105にエラーを知らせ、ステータス処理部2105はインタラプトバケットを用いてCPU2001にエラーを知らせる。
【0049】
エラーまたは割り込みを検出したCPU2001は、ステータス処理部2105、および、各画像処理部のエラーまたは割り込み要因レジスタを読み、それぞれの要因に適した処理を行う。エラーの場合、CPU2001は画像処理部2149にリセットを行い、エラーから復帰する。
【0050】
[システム全体]
次に、本実施の形態におけるデジタル複合機を含むネットワークシステム全体の構成図を図9に示す。
【0051】
1001は上述した本実施の形態におけるデジタル複合機であり、本発明の画像出力制御装置及び画像処理装置を適用可能なコントローラにより制御されている。
【0052】
デジタル複合機1001は、上記の如く、スキャナとプリンタを有し、スキャナから読み込んだ画像をローカルエリアネットワーク1010(以下LAN)に流したり、LANから受信した画像や印刷データをプリンタによりプリントアウトできる。
【0053】
また、スキャナから読んだ画像を、モデム2050であるFAX送信手段により、PSTNまたはISDN1030に送信したり、PSTNまたはISDNから受信した画像をプリンタによりプリントアウトできる。1002は、データベースサーバで、デジタル複合機1001により読み込んだ2値画像及び多値画像をデータベースとして管理する。
【0054】
1003は、データベースサーバ1002のデータベースクライアントで、データベース1002に保存されている画像データの閲覧/検索等ができる。
【0055】
1004は、電子メールサーバで、デジタル複合機1001により読み取った画像を電子メールの添付として受け取ることができる。1005は、電子メールのクライアントで、電子メールサーバ1004の受け取ったメールを受信し閲覧したり、電子メールを送信したりすることが可能である。
【0056】
1006がHTML文書をLANに提供するWWWサーバで、デジタル複合機1001によりWWWサーバで提供されるHTML文書をプリントアウトできる。
【0057】
1011は、ルータでLAN1010をインターネット/イントラネット1012と連結する。インターネット/イントラネットに、前述したデータベースサーバ1002、WWWサーバ1006、電子メールサーバ1004、デジタル複合機1001と同様の装置が、それぞれ1020,1021,1022,1023として連結している。一方、デジタル複合機1001は、PSTNまたはISDN1030を介して、FAX装置1031と送受信可能になっている。
【0058】
また、LAN上にプリンタ1040も連結されており、デジタル複合機1001により読み取った画像をプリントアウト可能なように構成されている。
【0059】
[タイル画像(パケット)フォーマット]
次に、本実施形態の画像入出力装置及び画像処理装置を適用可能なコントローラ2000内で処理されるパケットのフォーマットについて説明する。
【0060】
本実施形態におけるコントローラ2000内では、画像データ、CPU2001によるコマンド、各ブロックより発行される割り込み情報等を、パケット化された形式で転送する。本実施形態では、図12に示すデータパケット、図13に示すコマンドパケット、図14に示すインタラプトパケットの3種の異なる種類のパケットが使用される。以下、各パケットについて説明する。
【0061】
<データパケット(図12)>
まず、図12を用いてデータパケットについて説明する。本実施形態では画像データを32画素×32画素のタイル(Tile)単位の画像データ(ImageData+padding)3002に分割して取り扱う例を示した。
【0062】
このタイル単位の画像に、必要なヘッダ情報(header)3001及び画像付加情報等(Zdata+padding)3003を付加してデータパケット(DataPacket)とする。以下にヘッダ情報3001に含まれる情報について説明を行う。
【0063】
パケットのタイプはヘッダ情報3001内のパケットタイプ(PcktType)3004で区別される。チップID(ChipID)3005はパケットを送信するターゲットとなるチップのIDを示す。データタイプ(DataType)3006ではデータのタイプを示す。ページID(PageID)3007はページを示しており、ジョブID(JobID)3008はソフトウェアで管理するためのIDを格納する。
【0064】
タイルの番号はY方向のタイル座標3009とX方向のタイル座標3010の組み合わせで、YnXnで表される。データパケットは画像データが圧縮されている場合と非圧縮の場合がある。本実施形態では非圧縮の場合を示した。圧縮されている場合と非圧縮の場合との区別は圧縮フラグ(CompressFlag)3017で示される。
【0065】
プロセスインストラクション(Process Instruction)3011は左詰で処理順に設定し、各処理ユニット(上述の矩形画像処理部等)は、処理後プロセスインストラクション3011を左に8ビットシフトする。プロセスインストラクション3011はユニットID(UnitID)3019とモード(Mode)3020の組が8組格納されている。ユニットID3019は各処理ユニットを指定し、モード3020は各処理ユニットでの動作モードを指定する。これにより、1つのパケットは8つのユニットで連続して処理することができる。
【0066】
パケット長(PacketByteLength)3012はパケットのトータルバイト数を示す。画像データ長(ImageDataByteLengh)3015は画像データのバイト数、Zデータ長(ZdataByteLength)3016は画像付加情報のバイト数を表し、画像データオフセット(ImageDataOffset)3013、Zデータオフセット(ZdataOffset)3014は、それぞれのデータのパケットの先頭からのオフセットを表している。3015はイメージデータのバイト数(Image Data Byte length)を示し、3016はZ−Dataのバイト数(Z Data byte length)を示している。3017はパケット内のイメージデータが圧縮されたものであるか否かを示すフラグ(Compress Flag)、3029は文字領域であるか否かを示すフラグ(Char−Flag)、3030は注目画素ブロック(タイル)を圧縮する際の量子化ステップを決定する量子化テーブル選択データ(Q−Table Sel)である。
【0067】
次に、図15を用いてパケットテーブル(Packet Table)について説明する。各パケットはパケットテーブル6001によって管理する。パケットテーブル6001の構成要素は次の通りで、それぞれテーブルの値に0を5bit付加すると、パケットの先頭アドレス(PacketAddressPointer)6002、パケット長(Byte Length)6005となる。またここで、Packet Address Pointer 27bit + 5b00000 = パケット先頭アドレス、Packet Length 11bit + 5b00000 = パケット長の関係が成り立つ。パケットテーブル6001とチェーンテーブル(ChainTable)6010は分割されないものとする。
【0068】
パケットテーブル6001は常に走査方向に並んでおり、Yn/Xn=000/000, 000/001,000/002,....という順で並んでいる。このパケットテーブル6001のエントリは一意にひとつのタイルを示す。また、Yn/Xmaxの次のエントリはYn+1/X0となる。
【0069】
パケットがひとつ前のパケットとまったく同じデータである場合は、そのパケットはメモリ上には書かず、パケットテーブルのエントリに1つめのエントリと同じ先頭アドレス(PacketAddressPointer)、パケット長(PacketLength)を格納する。1つのパケットデータを2つのテーブルエントリが指すようなかたちになる。この場合、2つめのテーブルエントリのリピートフラグ(RepeatFlag)6003がセットされる。
【0070】
パケットがチェーンDMAにより複数に分断された場合は、分割フラグ(DivideFlag)6004をセットし、そのパケットの先頭部分が入っているチェーンブロックのチェーンテーブル番号(ChainTableNo)6006をセットする。
【0071】
チェーンテーブル6010のエントリはチェーンブロックアドレス(ChainBlockAddress)6011とチェーンブロック長(ChainBlockLength)6012からなっており、テーブルの最後のエントリにはアドレス、データ長共に0を格納しておく。
【0072】
<コマンドパケット(図13)>
次に、図6を用いてコマンドパケット(Command Packet)について説明する。
【0073】
コマンドパケットはレジスタ設定バス2109へのアクセスを行うためのものである。コマンドパケットを用いることにより、CPU2001より画像メモリ2123へのアクセスも可能である。
【0074】
ヘッダ4001内のチップID(ChipID)4004にはコマンドパケットの送信先となる画像処理部を表すIDが格納される。ページID(PageID)4007、ジョブID(JobID)4008はソフトウェアで管理するためのページIDとジョブIDを格納する。
【0075】
パケットID(PacketID)4009は1次元で表される。従って、データパケット(Data Packet)のX座標(X−coordinate)4009のみを使用する。パケット長(PacketByteLength)4010は128Byte固定である。
【0076】
パケットデータ部(Command)4002には、アドレス(Address)4011とデータ(Data)4012の組を1つのコマンドとして、最大12個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプは、コマンドタイプ(CmdType)4005で示され、コマンドの数はコマンド数(Cmdnum)4006で示される。
【0077】
<インタラプトパケット(図14)>
最後に、図14を用いてインタラプトパケット(Interrupt Packet)について説明する。
【0078】
インタラプトパケットは画像処理部2149からCPU2001への割り込みを通知するためのものである。ステータス処理部2105はインタラプトパケットを送信すると、CPU2001より次に送信の許可がされるまではインタラプトパケットを送信してはならない。
【0079】
パケット長(PacketByteLength)5006は128Byte固定である。パケットデータ部(IntData)5002には、画像処理部の各内部モジュール(各矩形画像処理部、入出力インターフェイス等)のステータス情報(ModuleStatus)5007が格納されている。ステータス処理部2105は画像処理部内の各モジュールのステータス情報を集め、一括してシステム制御部2150に送ることができる。
【0080】
チップID(ChipID)5004にはインタラプトパケットの送信先となるシステム制御部2150を表すIDが、また、インタラプトチップID(IntChipID)5005にはインタラプトの送信元となる画像処理部を表すIDが格納される。
【0081】
[タイル圧縮部]
図11におけるタイル圧縮部2106のブロック図を図1に示す。
【0082】
図1において、101はタイルバスインターフェイス部であり、タイルバス2107から入力されるデータパケットを取得して一時的に内部バッファに入力されたデータを格納し、後段に接続されたヘッダ情報保持部102、第1圧縮処理部103及び第2圧縮処理部104へヘッダ情報、画像データ及び画像付加情報データをそれぞれ振り分けて出力する。
【0083】
タイルバス2107からタイルバスインターフェイス部101へデータパケットを入力する場合、まず初めにデータパケットのヘッダ情報が入力され、タイルバスインターフェイス部101ではヘッダ情報内に設定された値を参照してヘッダ情報の後に入力される画像データ及び画像付加情報の入力の準備を行う。
【0084】
また、タイルバスインターフェイス部101ではタイルバスから入力されるヘッダ情報(3001)の解析を行う。ここでヘッダ情報を解析した結果、ヘッダ情報内に設定された値に矛盾があったり取りうる範囲を越えた値が設定されていた場合、タイルバスインターフェイス部101は後述のレジスタ設定部109に割り込み信号を出力することでヘッダ情報に矛盾があることを知らせた後、タイルバスからデータパケットの取得を停止する。このデータパケットを取得しない状態はリセット信号(不図示)が入力されるまで続く。
【0085】
ヘッダ情報(3001)に矛盾がない場合は、後段に接続されたヘッダ情報保持部102に対してヘッダ情報を出力し、続いてタイルバス2107から画像データ及び画像付加情報の取得を開始する。
【0086】
取得した画像データ及び画像付加情報はヘッダ情報のImageType(3006)を参照して第1圧縮処理部103及び第2圧縮処理部104に出力される。
【0087】
例えば、ヘッダ情報におけるImageTypeが1画素を1ビットで表す画像データであるBkである場合、タイルバスから取得した画像データは第2圧縮処理部104へ出力される。このとき画像付加情報はタイルバスインターフェイス部101で捨てられる。
【0088】
また、ImageTypeがBk以外(8ビットND、8ビットRGBデータなと多ビット(多値)画像データ)を表す場合は画像データを第1圧縮処理部103へ、画像付加情報を第2圧縮処理部104へ出力する。ただし、Ztype(3020)が画像付加情報がないことを表している場合は画像付加情報は存在しないとみなされ、画像付加情報は第2圧縮処理部において圧縮処理が行われない。
【0089】
102はヘッダ情報保持部であり、第1圧縮処理部103及び第2圧縮処理部104において画像データ及び画像付加情報の圧縮処理を行う間、内部バッファにヘッダ情報を保持するとともに、格納したヘッダ情報の中から圧縮処理に必要な情報を第1圧縮処理部及び第2圧縮処理部に対して出力する。
【0090】
また、ヘッダ情報保持部102ではタイルバスインターフェイス部101から入力されたヘッダ情報と、前記ヘッダ情報が入力される前にヘッダ情報保持部のバッファに格納されていたヘッダ情報(タイル圧縮部2106において一つ前に処理を行ったデータパケットのヘッダ情報)と、タイルバスインターフェイス部101から入力されたヘッダ情報を比較し、比較結果をバス111を用いてパケット生成部105へ出力する。
【0091】
第1圧縮処理部103及び第2圧縮処理部104により圧縮処理が終了すると、ヘッダ情報保持部102に保持したヘッダ情報はパケット生成部105からの要求によりバス110を用いてパケット生成部へ出力される。
【0092】
103は画像データを圧縮するための第1圧縮処理部であり、本実施形態ではJPEG方式による圧縮を行う。また、第1圧縮処理部103はタイルバスインターフェイス部101から入力された画像データと直前に第1圧縮処理部で圧縮処理を行った画像データについて、それぞれ対応する位置の画素についてデータパケットに含まれる全画素の比較を行い、その比較結果をバス113を用いてパケット生成部105へ出力する。
【0093】
第1圧縮処理部103で圧縮処理された符号化画像データはパケット生成部105からの要求によりバス112を用いてパケット生成部へ出力される。
【0094】
尚、ヘッダ情報内のImageType(3006)が1ビット画像データ(2値画像データ)であることを表している場合は、画像データは第2圧縮処理部において圧縮処理を行うため第1圧縮部103は動作しない。
【0095】
104は画像付加情報、または1ビット画像データを圧縮するための第2圧縮処理部であり、本実施形態では情報ロスのない圧縮方式、具体的にはパックビッツ方式による圧縮を行う。また、第2圧縮処理部104はタイルバスインターフェイス部101から入力された画像付加情報又は画像データと、直前に第2圧縮処理部で圧縮処理を行った画像付加情報又は画像データについて、第1圧縮処理部103と同様にそれぞれ対応する位置の画素に対する画像付加情報または画像データについてデータパケットに含まれる全画素の比較を行い、その比較結果をバス114を用いてパケット生成部105へ出力する。
【0096】
第2圧縮処理部104で圧縮処理された符号化画像付加情報又は画像データはパケット生成部105からの要求によりバス113を用いてパケット生成部へ出力される。
【0097】
105はパケット生成部であり、ヘッダ情報保持部102、第1圧縮処理部103及び第2圧縮処理部104からヘッダ情報、画像データ及び画像付加情報を取得して画像データ及び画像付加情報を圧縮したデータパケットを生成する。
【0098】
また、パケット生成部105で生成されるヘッダ情報には、ヘッダ情報保持部102、第1圧縮処理部103及び第2圧縮処理部104から出力された各部の比較結果や第1圧縮処理部103及び第2圧縮処理部104で符号化を行った後の画像データ量及び画像付加情報のデータ量、データパケットのデータ量や第1圧縮処理部103及び第2圧縮処理部104で圧縮処理を行ったときに使用したパラメータなどの情報が反映される。
【0099】
上記のように第1圧縮処理部103及び第2圧縮処理部104による圧縮処理が終了して符号化データを生成し、各情報がヘッダ情報に反映されると、データパケットは画像リング出力部106に出力される。
【0100】
106は画像リング出力部であり、画像リングインターフェイス4(2102)と同期を取ってパケット生成部105から送られてくるデータパケットを画像リングインターフェイス4(2102)に出力する。
【0101】
109はタイル圧縮部2106内部の処理に関する所設定を行うためのレジスタ設定部であり、タイル圧縮部2106に所定の圧縮処理を行わせるためにレジスタ設定部109に所定の値を設定する。
【0102】
これらの設定は図13に示すコマンドパケットを用いてシステム制御部2150から画像処理部2149のコマンド処理部2104に送られ、コマンド処理部からレジスタ設定バス2109を介してタイル圧縮部2106に送られる。
【0103】
レジスタ設定部109に設定された値は、第1圧縮処理部103及び第2圧縮処理部104に送られ、両圧縮処理部はそれらの設定値を参照することにより決められた処理を行う。
【0104】
尚、レジスタ設定部へはコマンドパケットを用いて値を設定するだけでなく、コマンドパケットを用いてレジスタ設定部が保持している設定値をシステム制御部2150へ出力することも可能である。
【0105】
また、レジスタ設定部109ではヘッダ情報を格納するためのレジスタを持ち、タイルバスインターフェース部101から割り込み信号が入力されると、タイルバスインターフェース101からヘッダ情報を取り込んでレジスタに設定するとともに、ステータス処理部2105に対して割り込みが発生したことを知らせるインタラプト信号及びエラーの状態を表すステータス信号を出力する。
【0106】
108はレジスタ設定バスインターフェイス部であり、レジスタ設定バス2109から入力された設定値をレジスタ設定部109が取得できるようにフォーマット変換及びハンドシェイクを行うためのブロックである。
【0107】
[第1圧縮処理部]
図2は第1圧縮処理部103のブロック構成図を示している。図示において、201はタイルバスインターフェイス部101から送られてきた画像データを格納するための第1のデータバッファであり、所定量のデータが送られると後段に接続されたDCT変換部202に対して所定の順序に従ってデータを出力する。
【0108】
尚、第1のデータバッファにはヘッダ情報保持部102からヘッダ情報のImageType(3006)が入力されており、第1のデータバッファへの画像データの入力及び第1のデータバッファからDCT変換部202へ出力するデータの順序、及び画像データのデータ数はImageTypeによって制御される。
【0109】
また、タイルバスインターフェイス部から第1のデータバッファに画像データが送られ、前記画像データが第1のデータバッファ内の所定の場所に格納されると同時に前記画像データが格納される場所にそれまで格納されていた画像データ(これは第1の圧縮処理部で直前に処理されたデータパケットの画像データにおいて、前記送られてきた画像データの位置に対応する画像データである)を後述するデータ比較部211に出力する。
【0110】
202はDCT変換部であり、第1のデータバッファ201から所定の順序で画像データが入力されると、離散コサイン変換を行って画像データを周波数成分データに変換する。また、このときDCT変換部202において離散コサイン変換を行うことによって生成された直流成分の値をラッチ信号とともに後述のサムネール生成部212に出力する。
【0111】
203は量子化部であり、DCT変換部202から出力された周波数成分データに対して、それぞれ所定の量子化値を用いて量子化を行う。尚、量子化に使用する値は後述する量子化テーブルから入力される。DCT変換部202で量子化に用いる量子化テーブルはヘッダ情報を参照することにより決定される。使用する量子化テーブルを決定方法の詳細は後述する。
【0112】
204はハフマン符号化部であり、量子化部203から出力されたデータに対してハフマン方式の符号化を行って符号化データを生成する。
【0113】
205は第2のデータバッファであり、ハフマン符号化部204で符号化した符号化データを格納するためのバッファである。
【0114】
第2のデータバッファ205はハフマン符号化部204からの符号化データの入力を終了すると、符号化された画像データのデータ量をData Byte Lengthとしてパケット生成部105に出力するとともに後述のデータカウンタ214に出力する。
【0115】
その後パケット生成部105の要求に従って格納した符号化データを出力する。
【0116】
211はデータ比較部であり、タイルバスインターフェイス部101から入力された画像データと、第1のデータバッファ201に格納された画像データとの比較を行う。ここで、第1のデータバッファ201からデータ比較部211に入力される画像データは、現在タイルバスインターフェイス部101から入力されているデータパケットの画像データではなくタイルバスインターフェイス部101から入力されているデータパケットの前に第1の圧縮処理部で圧縮処理を行った画像データである。そのため、データ比較部211では現在タイルバスインターフェイス部101から第1の圧縮処理部に入力されている画像データと、その前に第1の圧縮処理部によって処理された画像データの比較を行っている。
【0117】
上記動作をタイルバスインターフェイス部101から入力される全画像データに渡って行うことにより、データ比較部211ではデータパケットに含まれるすべての画像データに対して前データパケットの画像データとの比較を行うことができる。
【0118】
前記比較が1データパケット分終了すると、ひとつのデータパケットの画像データはすべて第1のデータバッファ201に格納される。尚、このようにして第1のデータバッファ201に格納された画像データは次のデータパケットの画像データがタイルバスインターフェイス部101から入力されたときに、データ比較部211により次の画像データと比較が行われる。
【0119】
タイルバスインターフェイス部101から入力される1パケット分の全ての画像データに対して上記比較動作を行った結果は、パケット生成部105に対して比較結果Compare resultとして出力される。
【0120】
212はサムネール生成部であり、DCT変換部202から出力されるDCT変換を行う際に生成される直流成分を取得し、複数の直流成分を基にサムネール値を生成する。DCT変換部202から直流成分を取得するのは直流成分に同期して出力されるラッチ信号を参照して行われる。生成されたサムネール値はThumbnail Dataとしてパケット生成部105に出力され、ヘッダ情報のThumbnail Data(3021)に所定のフォーマットで格納される。
【0121】
210は量子化部203において量子化を行うための量子化値を格納するための量子化テーブル部である。量子化テーブルとはDCT変換部202で離散コサイン変換を行って周波数成分となったデータを各周波数成分ごとに所定の値で除すことにより量子化を行うにあたり、量子化によって各周波数成分を除す値(量子化値)を提供する複数データの集まりであり、DCT変換部202で生成されたすべての周波数成分に対して量子化値を提供するデータ群を量子化テーブルと呼ぶ。
【0122】
量子化部203は任意の量子化テーブルの中から、量子化を行う周波数データに対応した量子化値を取得することにより量子化を行う。
【0123】
本実施形態の量子化テーブル部は上記量子化テーブルを4つ持ち、後述の量子化テーブル選択部から入力される選択信号によって所定の量子化テーブルを選択して量子化部203に量子化値を出力する。
【0124】
213は量子化テーブル選択部であり、量子化テーブル部210に対して量子化テーブル選択信号を出力することによって量子化テーブル部に格納されている複数(本実施形態では4つ)の量子化テーブルの中から所定のテーブルを選択する。量子化部203では前記量子化テーブル選択部213により選択された量子化テーブルを用いて量子化を行う。
【0125】
量子化テーブル選択部213にはヘッダ情報保持部202からMode(3025)、Q−Table Sel(3030)が、レジスタ設定部109からはヘッダ情報に格納するQ−TableID(3028)を決定するためのレジスタ値Reg−Qmode及びQ−TableIDとDCT変換部202が使用する量子化テーブルの対応を示すためのレジスタ値Reg−QTFieldが、そして後述のカウンタ値比較部からはデータカウンタのカウンタ値とレジスタ値の比較結果count−overが入力されている。量子化テーブル選択部213ではこれらの入力を参照することにより量子化部203で量子化を行うときに使用する量子化テーブル及びヘッダ情報に格納するQ−TableIDを選択している。
【0126】
214は、第2のデータバッファからパケット生成部に対してデータパケットひとつ分の符号化画像データが出力されるたびに、Data Byte Lengthを取得して内部カウンタに加算するデータカウンタである。データカウンタ214は上記動作を繰り返すことによりタイル圧縮部2106がシステムバスブリッジ2007を介してRAM2002へ送った符号化画像データの総量を内部カウンタに保持する。
【0127】
尚、データカウンタ214はヘッダ情報保持部102から出力されるカウンタリセット信号により内部カウンタがクリアされる。ヘッダ情報部102は後述するように、直前のデータパケットのヘッダ情報と現在第1圧縮処理部103により圧縮処理を行っているヘッダ情報のPageID(3007)及びJobID(3008)を比較し、PageID、JobIDのどちらか又は両方が両ヘッダ情報で異なる値であった場合にカウンタリセット信号を出力する。
【0128】
上記構成により、データカウンタ214では異なるページ、又は異なるジョブのデータパケットが入力されるとカウンタがクリアされる。そのためデータカウンタ214の内部カウンタには同一ジョブの同一ページ内における符号化画像データの総量が格納されている。
【0129】
215はカウンタ値比較部であり、前記データカウンタ214の内部カウンタ値とレジスタ設定部109から出力されるカウンタ値比較用のレジスタ設定値Reg−JPEGCountValueを比較し、その結果をcount_overとして量子化テーブル選択部213に出力する。
【0130】
データカウンタ214、カウンタ値比較部215及び量子化テーブル選択部213の動作の詳細は後述することとする。
【0131】
[第2圧縮処理部]
図4に第2圧縮処理部104のブロック図を示す。尚、以下の説明ではタイルバスインターフェイス部101から画像付加情報が入力された例について説明を行うが、特に説明がない場合は1ビットの画像データが入力された場合も同様の動作を行う。
【0132】
図4において、401はタイルバスインターフェイス部101から送られてきた画像付加情報を格納するための第1のデータバッファであり、所定量のデータが送られると後段に接続されたパックビッツ符号化部402に対して所定の順序に従ってデータを出力する。
【0133】
また、タイルバスインターフェイス部から第1のデータバッファに画像付加情報が送られ、前記画像付加情報が第1のデータバッファ内の所定の場所に格納されると同時に前記画像付加情報が格納される場所にそれまで格納されていた画像付加情報(これは第2の圧縮処理部で直前に処理されたデータパケットの画像付加情報において、前記送られてきた画像付加情報の位置に対応する画像付加情報である)を後述するデータ比較部405に出力する。
【0134】
402はパックビッツ符号化部であり、第1のデータバッファ401から出力された画像付加情報に対してパックビッツ方式による符号化処理を行って符号化データを生成する。
【0135】
403は第2のデータバッファであり、パックビッツ符号化部402で符号化した符号化データを格納するためのバッファである。
【0136】
第2のデータバッファ403はパックビッツ符号化部402からの符号化データの入力を終了すると、符号化された画像付加情報のデータ量をData Byte Lengthとしてパケット生成部105に出力するとともに後述のデータカウンタ406に出力する。
【0137】
その後パケット生成部105の要求に従って格納した符号化データを出力する。
【0138】
405はデータ比較部であり、タイルバスインターフェイス部101から入力された画像付加情報と、第1のデータバッファ401に格納された画像付加情報との比較を行う。ここで、第1のデータバッファ401からデータ比較部405に入力される画像付加情報は、現在タイルバスインターフェイス部101から入力されているデータパケットの画像付加情報ではなく、タイルバスインターフェイス部101から入力されているデータパケットの前に第2の圧縮処理部で圧縮処理を行った画像付加情報である。そのため、データ比較部405では現在タイルバスインターフェイス部101から第2の圧縮処理部に入力されている画像付加情報と、その前に第2の圧縮処理部によって処理された画像付加情報の比較を行っている。
【0139】
上記動作をタイルバスインターフェイス部101から入力される全画像付加情報に渡って行うことにより、データ比較部405ではデータパケットに含まれるすべての画像付加情報に対して前データパケットの画像付加情報との比較を行うことができる。
【0140】
前記比較が1データパケット分終了すると、ひとつのデータパケットの画像付加情報はすべて第1のデータバッファ401に格納される。尚、このようにして第1のデータバッファ401に格納された画像付加情報は次のデータパケットの画像付加情報がタイルバスインターフェイス部101から入力されたときに、データ比較部405により次の画像付加情報と比較が行われる。
【0141】
タイルバスインターフェイス部101から入力される1パケット分の全ての画像付加情報に対して上記比較動作を行った結果は、パケット生成部105に対して比較結果Compare resultとして出力される。
【0142】
以上説明した、Data Byte Length及びCompere resultはパケット生成部105においてヘッダ情報を生成する情報としてバス115によりパケット生成部105に送られる(図1参照)。
【0143】
406は、第2のデータバッファからパケット生成部105に対してデータパケットひとつ分の符号化画像付加情報が出力されるたびに、Data Byte Lengthを取得して内部カウンタに加算するデータカウンタである。データカウンタ406は上記動作を繰り返すことによりタイル圧縮部2106がシステムバスブリッジ2007を介してRAM2002へ送った符号化画像付加情報の総量を内部カウンタに保持する。
【0144】
尚、データカウンタ406はヘッダ情報保持部102から出力されるカウンタリセット信号により内部カウンタがクリアされる。ヘッダ情報部102は後述するように、直前のデータパケットのヘッダ情報と現在第1圧縮処理部103により圧縮処理を行っているヘッダ情報のPageID(3007)及びJobID(3008)を比較し、PageID、JobIDのどちらか又は両方が両ヘッダ情報で異なる値であった場合にカウンタリセット信号を出力する。
【0145】
上記構成により、データカウンタ406では異なるページ、又は異なるジョブのデータパケットが入力されるとカウンタがクリアされる。そのためデータカウンタ214の内部カウンタには同一ジョブの同一ページ内における符号化画像データの総量が格納されている。
【0146】
407はカウンタ値比較部であり、前記データカウンタ406の内部カウンタ値とレジスタ設定部109から出力されるカウンタ値比較用のレジスタ設定値Reg−PackCountValueを比較し、その結果をcount_overとしてバス115を用いてパケット生成部105に出力する。
【0147】
[ヘッダ情報保持部]
図3にヘッダ情報保持部102のブロック図を示す。ヘッダ情報部102はヘッダバッファ301とヘッダ比較部302から構成される。
【0148】
ヘッダバッファ301はタイルバスインターフェイス部101から送られてきたヘッダ情報を、第1の圧縮処理部103及び第2の圧縮処理部104において画像データ及び画像付加情報が圧縮される間、ヘッダ情報を保持するためのバッファであり、また、画像データ、画像付加情報の圧縮処理を行うために必要なヘッダ情報を第1の圧縮処理部103及び第2の圧縮処理部104に出力する。本実施形態では第1の圧縮処理部103に対しては入力される画像データ量を判断するためのImageType、JPEG圧縮に使用する量子化テーブルを決定するためのパラメータとしてMode及びQ−Table Selが出力される。
【0149】
また、第2の圧縮処理部104には入力される画像付加情報のデータ量を判断するためのImageTypeが出力される。
【0150】
さらに、ヘッダ比較部にはヘッダ情報の比較のために以下に示す内容が出力される。
ImageType(3006)
Page_ID(3007)
Job_ID(3008)
Mode(3025)
Source_id(3018)
Char_Flag (3029)
Q−Table Sel(3030)
Z_DataType(3020)
データ比較部302ではタイルバスインターフェイス部101から入力されたヘッダ情報の所定の情報と、ヘッダバッファ301に格納されたヘッダ情報との比較を行う。ここで、ヘッダバッファ301からデータ比較部302に入力されるヘッダ情報は、現在タイルバスインターフェイス部101から入力されているデータパケットのヘッダ情報ではなく、タイルバスインターフェイス部101から入力されているデータパケットの前にヘッダバッファに格納されていたヘッダ情報である。そのため、データ比較部302では現在タイルバスインターフェイス部101からヘッダ保持部に入力されているヘッダ情報と、その前にヘッダ保持部に格納されていたヘッダ情報の比較を行っている。
【0151】
ヘッダ比較部302からは比較結果Compare resultがパケット生成部105に出力される。
【0152】
また、データ比較部302では第1の圧縮処理部内のデータカウンタ214及び第2の圧縮処理部内のデータカウンタ406に対してカウンタリセット信号を出力する。カウンタリセット信号はヘッダ情報の比較のために入力されたヘッダ情報のうち、PageID及びJobIDを参照して行われる。
【0153】
すなわちタイルバスインターフェイス部101から入力されたPageIDとヘッダバッファ301から入力されたPageID、また同様にJobID同士を比較し、その結果PageIDとJobIDのどちらか又は両方の値が異なる場合、データ比較部302からカウンタリセット信号が出力される。
【0154】
これにより、第1の圧縮処理部内のデータカウンタ214及び第2の圧縮処理部内のデータカウンタ406は異なるページのデータパケットが続けて入力された場合、及び異なるJobのデータパケットが続けて入力された場合にカウンタリセット信号を出力する。
【0155】
[量子化テーブル選択部]
図5に図2に示す量子化テーブル選択部231のブロック図を示す。
【0156】
量子化テーブル選択部231は一つのセレクタ502と二つのルックアップテーブル(LUT)501及び503から構成される。
【0157】
セレクタ502はLUT501を参照する信号を選択を行う。図5ではヘッダ情報のQ−Table Sel(3030)とカウンタ値比較部215から出力される比較結果count_overの一方を選択してLUT501に入力する。本実施形態ではcount_overが選択されている。
【0158】
LUT501はMode(3025)3ビットとセレクタ502から出力されるcount_over1ビットの値を参照して4ビットのQ−TableID(3028)を出力する。LUT501から出力されるQ−TableIDの値はレジスタ設定部109から入力されるReg−Qmode[63:0]を利用する。
【0159】
図6はLUT501は入力される値(アドレス)に対する出力される値(格納されているデータ)の関係を示す図である。
【0160】
例えば、LUT501にMode=000、データカウンタ214の内部カウンタ値がレジスタ値Reg−JpegCountValue以下であるためcount_over=0が入力されると、LUT501はReg−Qmode[63:0]の中のReg−Qmode[3:0]から入力されている値をQ−TableID(3028)として出力する。図6の右側には出力されるQ−TableID(3028)の値の一例を示しているが、その場合Q−TableIDとして0000が出力される。
【0161】
ここで、しばらく第1の圧縮処理部によりデータパケットの圧縮処理が進み、データカウンタ214の内部カウンタ値がレジスタ値Reg−JpegCountValueを越えると、カウンタ値比較部215からcount_over=1が出力される。なお、レジスタ値Reg−JpegCountValueの値は、UI(操作部)2012から設定されるものとするが、原稿サイズによって自動的に決定されるようにしても良い。
【0162】
するとLUT501は図6に示すようにMode=000、count_over=1が入力されるためReg−Qmode[35:32]の値である1000がQ−TableIDとして出力される。
【0163】
上記動作によりLUT501から出力されたQ−TableIDはバス113を通ってパケット生成部105に送られ、ヘッダ情報のQ−TableID(3028)に反映される。
【0164】
LUT503はLUT501から出力されたQ−TableIDの値を参照して、量子化テーブル部210に対して2ビットの量子化テーブル選択信号SELを出力する。セレクタ502から出力されるSELの値はレジスタ設定部109から入力されるReg−QTField[31:0]を利用する。
【0165】
図8は、Reg−QTField[31:0]の構成を説明するための図であり、Reg−QTField[31:0]は、1組2ビットで構成されたQTFieldから成り立ち、1つのレジスタに16組のQTFieldを持ち、選ばれたQTFieldがSELとなる。
bit[31:30]   Q−Table ID=1111 が入力されたときに使用するQTField
bit[29:28]   Q−Table ID=1110 が入力されたときに使用するQTField
bit[27:26]   Q−Table ID=1101 が入力されたときに使用するQTField
bit[25:24]   Q−Table ID=1100 が入力されたときに使用するQTField
bit[23:22]   Q−Table ID=1011 が入力されたときに使用するQTField
bit[21:20]   Q−Table ID=1010 が入力されたときに使用するQTField
bit[19:18]   Q−Table ID=1001 が入力されたときに使用するQTField
bit[17:16]   Q−Table ID=1000 が入力されたときに使用するQTField
bit[15:14]   Q−Table ID=0111 が入力されたときに使用するQTField
bit[13:12]   Q−Table ID=0110 が入力されたときに使用するQTField
bit[11:10]   Q−Table ID=0101 が入力されたときに使用するQTField
bit[9:8]    Q−Table ID=0100 が入力されたときに使用するQTField
bit[7:6]    Q−Table ID=0011 が入力されたときに使用するQTField
bit[5:4]    Q−Table ID=0010 が入力されたときに使用するQTField
bit[3:2]    Q−Table ID=0001 が入力されたときに使用するQTField
bit[1:0]    Q−Table ID=0000 が入力されたときに使用するQTField
図7はLUT503に入力されるQ−TableIDの値(入力アドレス)と出力されるSELの値(格納データ)との関係を示している。
【0166】
例えば、LUT503にQ=TableID =0000が入力されると、LUT503はReg−QTField[31:0]の中のReg− QTField[1:0]から入力されている値をSELとして出力する。図7の右側には出力されるSELの値及びそのとき量子化テーブル部210で選択される量子化テーブルの一例を示している。図7ではQ=TableID =0000が入力されるとSELとして00が出力され、量子化テーブルQ0が選択される。
【0167】
また、図6に示すようにLUT501にcount_over=1が入力され、LUT501から出力されるQ−TableIDが1000に変化すると、LUT503から出力されるSELの値も00から10に変化して量子化テーブルQ2が選択される。
【0168】
量子化テーブル部210では、量子化テーブル選択部213から出力されたSELにより選択された量子化テーブルを用い、量子化部203の要求に従って量子化値を出力する。
【0169】
以上の説明によると、1ページの画像を圧縮してRAM2002に格納している最中に、そのデータ量が閾値であるReg−JobCountValueに到達すると、それ以降については新にセットされた量子化テーブルで量子化し、圧縮が行われ、画像の入力は継続する。ただし、閾値に到達する以前の既圧縮符号化データ(RAM2002に格納されたデータ)は、従前の量子化テーブルを用いて圧縮符号化されていることになるので、そのデータは読み出され、パケットデータとして画像リング2008を介してタイル伸長部2103で伸長処理され、新たに決定された量子化テーブルで再圧縮処理が行われることになる。
【0170】
また、本実施形態では、量子化テーブルのパラメータ選択方法について説明してきたが、これは、量子化テーブルに限定したものではなく、他のパラメータ、例えば、ハフマン符号化部204についても全く同様の構成でパラメータを任意の位置のタイルで選択可能にする構成に出来る。例えば、注目画素ブロックがRGB形式およびND形式をはじめとする輝度のデータである場合には、輝度用のハフマン符号化テーブルを利用し、CMYK形式およびグレースケールをはじめとする濃度データであれば色差用のハフマン符号化テーブルを利用して符号化を行う。注目画素ブロックのタイプ(色空間)が如何なるものであるのかの判断は、データパケットのヘッダに含まれるImage Typeに従って行えば良いであろう。
【0171】
また、本実施形態では、画像圧縮時のパラメータ選択について説明してきたが、これは圧縮時に限定したものではなく、伸張時においても本発明と同様の構成で同様の効果が期待できる。
【0172】
また、本実施形態では、パケットヘッダー中の情報に相当する2つのテーブル(レジスタ)の値を基に量子化テーブルを選択するとして説明してきたが、これは、2つのテーブル(レジスタ)に限定するものではなく、1つもしくは3つ以上のテーブル(レジスタ)を基に量子化テーブルを選択してもよい。
【0173】
ここで、スキャナ2070は、スキャンした画像を評価し、各画素が文字データを構成する画像であるか否かを示す情報(文字フラグ)を、画素毎に付加する文字判定機能を持つ。文字判定のための構成およびアルゴリズムは、特許番号 第2872285号などで説明されている。
【0174】
また、各タイルが、文字データを含んだタイルであるか否かを示すための情報(Q−Table Sel(3030))を各タイルのヘッダ情報に持つ。Q−Table Selは、画素毎に付加された文字フラグを基にスキャナ2070において付加され、その付加条件は次の2つから選択できる。
【0175】
条件1:
1タイル中つまり32×32画素中の1024個の全ての文字フラグが’0’つまり文字でなかった場合、Q−Table Sel(3030)を’0’に設定する。
【0176】
それ以外の場合、つまり、1タイル中つまり32×32画素中の1024個のどれか一つの文字フラグが’1’つまり文字だった場合、Q−Table Sel(3030)を’1’に設定する。条件1は次の論理回路で表すことができる。
Q−Table Sel = (画素1の文字フラグ)or (画素2の文字フラグ)or…or_(画素1024の文字フラグ)
条件2:
1タイル中つまり32×32画素中の1024個のどれか一つの文字フラグが’0’、つまり文字でなかった場合、Q−Table Sel(3030)を’0’に設定する。
1タイル中つまり32×32画素中の1024個の全ての文字フラグが’1’つまり全て文字だった場合、Q−Table Sel(3030)を’1’に設定する。それ以外の場合、つまり、条件2は次の論理回路で表すことができる。
Q−Table Sel = (画素1の文字フラグ)and (画素2の文字フラグ)and…and_(画素1024の文字フラグ)
Q−Table Sel(3030)=’0’の場合、圧縮率が高い写真用のQ−Tableが選択されるように、Reg−QTField[31:0]および、Q−TableIDを設定することで、省データサイズ重視の画像圧縮を行うことが出来る。
【0177】
Q−Table Sel(3030)=’1’の場合、解像度が高い文字用のQ−Tableが選択されるように、Reg−QTField[31:0]および、Q−TableIDを設定することで、画質重視な画像圧縮を行うことが出来る。
【0178】
ここで説明のために、条件1、2は、単純な論理回路で説明してきたが、文字フラグが’1’である画素の数をカウントし、カウンターの値と予め設定された閾値との大小比較を行った結果によって、Q−Tableの切り替えを行うことで、より画像に合わせた精度の高い条件設定を行うことが可能となる。
【0179】
ここで説明のために、条件判断は1タイル中つまり32×32画素中の1024個で行っているとしてきたが、それに限定したものではなく、例えば、JPEGの処理単位8×8画素ごとにQ−TableSelを持てば、JPEGの処理単位毎にQ−Tableを選択することも可能である。
【0180】
なお、上記実施形態では、主としてスキャナ2070から読取った画像を圧縮し、RAM2002に格納することについて説明したが、本実施形態における装置は先に説明したようにネットワークに接続され、ネットワーク上のクライアント(例えばパーソナルコンピュータ等)にとってプリンタとしての機能も果たす。従って、この場合、データの流れとしては、LANコントローラ2010より受信した印刷情報(PDLデータ)をCPU2001が解釈し、それを展開した際にも圧縮しRAM2002に格納する。この際の圧縮処理は、画像リング2008を介して、パケット形式(レンダリング部インタフェース2110が画像入力インタフェース2112と同様の処理を行う)にして画像処理部2149に送信し、その圧縮結果(パケット)を画像リング2008を介して受信し、RAM2002に格納することになる。こうして圧縮処理を行なっている間、RAM2002に格納された圧縮された画像データ(ヘッダのCompressFlag3017を調べることで圧縮されたデータであるのかどうかが判別できる)は、再度画像リング2008を介して画像処理部2149にパケット送信され、タイル伸長部2103(1)、(2)で伸長され、プリンタ用画像処理部2115を介してプリンタ2095で印刷されることになる。
【0181】
以上説明したように本実施形態によれば、タイル毎に伝送されるパケットヘッダー中に書かれた量子化テーブル選択情報を基にタイル毎に量子化テーブルを選択することが可能になり、画像の特徴に合わせた圧縮パラメータをタイル毎に設定することで、画像品位を低下させることなしに高圧縮率で画像圧縮することが可能になる。
【0182】
【発明の効果】
以上説明したように本発明によれば、装置構成並びに装置の設計を容易にしながら、タイル等の画素ブロック単位に圧縮に関するパラメータが変更可能になる。また、更に、目標サイズに画像を圧縮することが可能になる。
【図面の簡単な説明】
【図1】本実施形態におけるタイル圧縮部2106のブロック図である。
【図2】第1圧縮処理部103のブロック図である。
【図3】ヘッダ情報保持部102のブロック図である。
【図4】第2圧縮処理部104のブロック図である。
【図5】量子化テーブル選択部213のブロック図である。
【図6】LUT501における入力値に対する出力値との関係を示す図である。
【図7】LUT503における入力値に対する出力値との関係を示す図である。
【図8】レジスタ設定部109の出力データReg−QTField[31:0]のフォーマットを示す図である。
【図9】実施形態におけるデジタル複合機を含むネットワークシステム全体の構成図である。
【図10】実施形態におけるデジタル複合機のコントローラのブロック構成図である。
【図11】実施形態におけるデジタル複合機のコントローラの詳細を示すブロック構成図である。
【図12】コントローラ2000において用いられるデータパケットのフォーマットを示す図である。
【図13】コントローラ2000において用いられるコマンドパケットのフォーマットを示す図である。
【図14】コントローラ2000において用いられるインタラプトパケットのフォーマットを示す図である。
【図15】コントローラ2000において用いられるパケットテーブルの内容を示す図である。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image processing apparatus and a control method therefor, and more particularly, to an image processing apparatus that compresses and encodes image data and a control method therefor.
[0002]
[Prior art]
Conventionally, when an image processing apparatus stores image data and image information accompanying the image data in an internal memory of the processing apparatus from an image input apparatus such as an image reading apparatus, the image data and the image information captured by the image processing apparatus are In general, the image is divided into tiles, and the amount of data is reduced by performing JPEG compression processing for each tile, and then the image is stored in a memory.
[0003]
This is done not only to reduce the memory capacity for storing image data and image information, but also to reduce the amount of data transferred between the image processing device and the memory and between the memory and the printing device when printing. Is
[0004]
In some cases, data communication of compressed tile image data is performed in a packet format in which one tile corresponds to one packet. The packet is composed of a header part and an image data part. The header part stores information such as the data size of the packet, the position of the tile in the entire image, and the content of the image processing. Tile image data or uncompressed tile image data is stored.
[0005]
[Problems to be solved by the invention]
However, in the conventional example, setting has not been changed for a tile at a specific position. In the conventional example, compression is performed for each page, and a compression parameter is set in the image compression circuit at the top of the page.
[0006]
It is desirable to change the compression parameters in accordance with the characteristics of the image. For example, for tiles on which characters are written, it is desirable to set a compression parameter that does not compress high frequency components so much that a fine image is obtained. For tiles on which natural images are written, increase the image compression ratio of high frequency components. It is desirable to set the compression parameter set as above and obtain an image having a small data size. In a conventional image processing apparatus, when images having different characteristics such as a character image tile and a natural image tile are mixed in one page, it is impossible to change the image compression parameter according to the characteristics of each tile image. However, there is a problem that it is difficult to perform image compression with a high compression ratio while maintaining image quality.
[0007]
SUMMARY OF THE INVENTION The present invention has been made in view of the above problems, and provides an image processing apparatus capable of changing parameters related to compression in units of pixel blocks such as tiles and a control method thereof while facilitating the apparatus configuration and apparatus design. Is what you do.
[0008]
Another object of the present invention is to provide an image processing apparatus capable of compressing an image to a target size and a control method thereof, in addition to the above objects.
[0009]
[Means for Solving the Problems]
In order to solve such a problem, for example, an image processing apparatus of the present invention has the following configuration.
[0010]
A division unit that divides image data input from the image input unit into predetermined pixel block units, an image compression unit that compresses and encodes the divided pixel blocks, and an image storage unit that stores compression-encoded compression encoded information, An image processing device that communicates as packet data between the division unit, the image compression unit, and the image storage unit,
The dividing unit, when dividing the input image data into predetermined pixel blocks, determines the attribute of the pixel block, and outputs information on the generated attribute as additional information as packet data together with the data of the pixel block,
The image compression unit determines a parameter when performing compression encoding according to the attribute information in the packet data output from the division unit, and compression-encodes data of a pixel block included in the packet data,
The storage unit stores the packet data compressed by the image compression unit.
[0011]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
[0012]
[Description of hardware]
FIG. 10 shows a block configuration of a digital multifunction peripheral according to the present embodiment. In the figure, reference numeral 2000 denotes a controller (Controller Unit) to which the image input / output control device and the image processing device of the embodiment can be applied.
[0013]
Here, reference numeral 2150 denotes a system control unit that controls the entire digital multifunction peripheral. An image processing unit 2149 performs predetermined image processing on input image data, and details thereof will be described later. An image ring 2008 connects the system processing unit 2150 and the image processing unit 2149 in a ring shape.
[0014]
Reference numeral 2012 denotes an operation unit for performing various settings and operation instruction operations, and includes a touch panel, a liquid crystal display, various switches and buttons. 2002 is a RAM, and 2003 is a ROM. Reference numeral 2143 denotes a general-purpose PCI (Peripheral Component Interconnect Bus) bus, reference numeral 2004 denotes an external storage device (for example, a large-capacity storage device such as a hard disk or MO), and reference numeral 2144 denotes a disk controller. Reference numeral 2050 denotes a modem for connecting to a public line. Reference numeral 2146 denotes a PHY / PMD which is connected to the LAN 2011. The digital multifunction peripheral can communicate with an external device via the modem 2050 and the PHY / PMD. The printer 2095, the image memory 2123, and the scanner 2070 are connected to the image processing unit 2149.
[0015]
Here, the configuration of the controller 2000 from the viewpoint of hardware will be described. A controller in a digital multifunction peripheral such as a digital copying machine is configured as a system LSI on a single semiconductor substrate for each of a system control unit 2150 and an image processing unit 2149. The semiconductor substrate described here can be called an IC chip. That is, in this embodiment, the controller 2000 is a single printed circuit board, and the system control unit 2150 and the image processing unit 2149 are mounted on this printed circuit board as an IC chip. However, the present invention is not limited to this. For example, the system control unit 2150 and the image processing unit 2149 may be mounted as IC chips on separate printed boards. Further, the system control unit 2150 and the image processing unit 2149 may be configured on the same semiconductor substrate.
[0016]
Next, FIG. 11 shows a detailed overall configuration mainly for describing the internal configuration of the system control unit 2150 and the image processing unit 2149.
[0017]
The controller 2000 is connected to a scanner 2070 (having an ADF) as an image input device and a printer 2095 as an image output device. On the other hand, the controller 2000 is connected to a LAN 2011 or a public line WAN 2051 so that image information and device information can be obtained. This is a controller for performing input / output and image development of PDL data.
[0018]
The CPU 2001 is a processor that controls the entire system. In this embodiment, an example using two CPUs is shown. These two CPUs are connected to a common CPU bus 2126 and further to a system bus bridge 2007.
[0019]
The system bus bridge 2007 is a bus switch, and includes a CPU bus 2126, a RAM controller 2124, a ROM controller 2125, an IO bus 1 (2127), an IO bus 2 (2129), an image ring interface 1 (2147), and an image ring interface 2 ( 2148) is connected.
[0020]
The RAM 2002 is a system work memory for the operation of the CPU 2001 and is also an image memory for temporarily storing image data. The RAM 2002 is controlled by a RAM controller 2124.
[0021]
The ROM 2003 is a boot ROM, and stores a system boot program. It is controlled by the ROM controller 2125.
[0022]
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. IO bus 1 (2127) includes a bus arbiter (not shown).
[0023]
An operation unit I / F 2006 is an interface unit with the operation unit UI 2012 and outputs image data to be displayed on the operation unit 2016 to the operation unit 2012. In addition, it plays a role of transmitting information input by the user of the system from the operation unit 2012 to the CPU 2001.
[0024]
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. IO bus 2 (2142) includes a bus arbiter (not shown).
[0025]
General-purpose bus interfaces 1 and 2 (2142) are bus bridges composed of two identical bus interfaces and supporting a standard IO bus. In the present embodiment, an example in which the PCI bus (2143) is adopted has been described.
[0026]
The external storage device 2004 in the embodiment is a hard disk drive (hereinafter, HDD) for storing system software and image data, and is connected to one PCI bus 2143 via a disk controller 2144.
[0027]
The LAN controller 2010 is connected to the LAN 2011 via the MAC circuit 2145 and the PHY / PMD circuit 2146, and inputs and outputs information. The Modem 2050 connects to the public line 2051 and inputs and outputs information.
[0028]
An image ring interface 1 (2147) and an image ring interface 2 (2148), which are packet transfer means, connect the system bus bridge 2007 and the image ring 2008 for transferring image data at high speed, and transfer the tiled data to the RAM 2002 and the RAM 2002. A DMA controller that transfers data between the processing units 2149.
[0029]
The image ring 2008, which is also a packet transfer unit, is configured by a combination of a series of unidirectional connection paths. The image ring 2008 is connected to the command processing unit 2104, the status processing unit 2105, and the tile bus 2127 in the image processing unit 1 (2149) via the image ring interface 3 (2101) and the image ring interface 4 (2102). You.
[0030]
Although the format of a packet serving as a communication unit will be described later, the information exchanged includes not only image data but also commands and interrupt requests. If dedicated signal lines are allocated to exchange each of these signals, the circuit (chip size) and the size of the LSI package increase, and the cost increases. In this regard, as described above, all the information necessary for operating the system between the system control unit 215 and the image processing unit 219 is in the form of information communication in a packet format, so that each circuit is designed independently. As a result, the degree of freedom is further increased, and each circuit can be made versatile.
[0031]
The command processing unit 2104 is connected to the register setting bus 2109 and, in addition to the connection to the image ring interface, transmits a register setting request issued from the CPU 2001 via the image ring to the corresponding block connected to the register setting bus 2109. Write to Further, based on a register read request issued by the CPU 2001, information is read from the corresponding register via the register setting bus and transferred to the image ring interface 4 (2102).
[0032]
The status processing unit 2105 monitors information of each image processing unit, generates an interrupt bucket for issuing an interrupt to the CPU 2001, and outputs the interrupt bucket to the image ring interface 4 (2012).
[0033]
To the tile bus 2107, in addition to the above blocks, functional blocks such as an image input interface 2112, an image output interface 2113, and a plurality of rectangular image processing units 2116 to 2119 and 2030 are connected.
[0034]
In the present embodiment, as the rectangular image processing unit, a multi-level conversion unit 2119, a binarization unit 2118, a color space conversion unit 2117, an image rotation unit 2030, and a resolution conversion unit 2116 are mounted. The scanner 2070 is connected to the image processing unit 2149.
[0035]
An image input interface 2112 in the image processing unit 2149 receives raster image data subjected to correction image processing by a scanner 2170 described later as input, and performs the following processing.
[0036]
First, for each pixel, it is determined whether the pixel is in a character / line image or in a halftone image, and the like, and added to image additional information (hereinafter referred to as a Z flag) 3003 provided for each pixel. Set to 1 if it is a character / line drawing, otherwise set to 0. In the embodiment, as will be described later, the image is compressed in a rectangular pixel block (32 × 32 pixel block), in other words, in a tile unit. Next, the Z flag of each pixel constituting the pixel block is compressed. , The attribute (Q-Table sel data, Char-Flag) in the target pixel block is determined. When the attribute for the pixel block is determined in this way, the resulting data is output to the subsequent tile bus 2107 (the details of how to generate a Q-Table sel will be described later). In the embodiment, the data between the processing units is performed in packet units. At this time, the data of the pixel block is in a packet format including at least header information (including Q-Table sel data) + tile data, and a clock. Output in synchronization with.
[0037]
The image output interface 2113 in the image processing unit 2149 receives the rectangular 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 2095.
[0038]
The image rotation unit 2030 rotates image data, and the resolution conversion unit 2116 changes the resolution of the image by performing processing such as interpolation / thinning. The color space conversion unit 2117 performs color space conversion of color and grayscale images. The binarization unit 2118 binarizes the multi-valued color or grayscale image by error diffusion processing or dither processing. Further, the multi-level conversion unit 2119 converts a binary image into multi-level data. For example, when focusing on a certain binary pixel, the pixel of interest is converted into two or more bits by referring to the surrounding pixel group. This is converted into multi-valued pixel data.
[0039]
The memory control unit 2122 is connected to the memory bus 2108, and writes and reads image data to and from the image memory 2123 and refreshes the image data when necessary according to a request from each image processing unit. Perform the operation. In this embodiment, an SDRAM is used as an image memory.
[0040]
Next, error processing of the digital multifunction peripheral according to the present embodiment will be described.
[0041]
The image input interface 2112 has the following two errors: an overrun error that occurs when the operation of the image input interface 2112 is slower than the data transmitted by the scanner 2170 and the image input interface 2112 cannot receive data; A synchronization error that occurs when an incorrect vertical synchronization signal or horizontal synchronization signal is received from 2170 is detected. The image input interface 2112 has the following six interrupts: a scanner normal operation end interrupt that occurs when one page of data is normally read from the scanner 2170, and an image input interface 2112 that outputs one page of data. Is output, or when the image input interface 2112 is forcibly stopped from outside, or when the image input interface 2112 detects an error, an image input interface operation end interrupt that occurs and one tile Interrupt that occurs every time the output of one minute of data is completed, a tile start interrupt that occurs each time the output of one tile of data is started, and occurs when a rising edge of the vertical synchronization signal output from the scanner 2170 is detected. Vertical A rising interrupt of a signal and a falling interrupt of a vertical synchronizing signal generated when a falling of the vertical synchronizing signal is detected, and also generated when data corresponding to the number of lines set in the register is received from the scanner 2170. Generate a mark line interrupt. The image input interface 2112 detecting the error or the interrupt notifies the status processing unit 2105 of the error or the interrupt using the interrupt signal, and the status processing unit 2105 notifies the CPU 2001 of the error or the interrupt using the interrupt bucket.
[0042]
The image output interface 2113 has the following two errors: the operation of the image output interface 2113 is slower than the data to be sent to the printer 2095, an underrun error that occurs when the printer 2095 cannot receive the data, and the Detects a synchronization error that occurs when an incorrect vertical or horizontal synchronization signal is received. The image output interface 2113 includes the following six interrupts: a printer normal operation end interrupt that occurs when one page of data is normally transmitted to the printer 2095, and an image output interface 2113 that outputs one page of data. , Or when the image output interface 2113 is forcibly stopped from the outside, or when the image output interface 2113 detects an error, an image output interface operation end interrupt that occurs and one tile Tile end interrupt that occurs each time the output of one minute of data ends, tile start interrupt that occurs each time the output of one tile of data starts, and the rising edge of the vertical synchronizing signal that occurs when the rising edge of the vertical synchronizing signal is detected Interrupts, and Straight synchronizing signal the vertical synchronizing signal falling interrupt that occurs when the fall is detected, and generates a mark line interrupt generated when receiving the number of data lines that is set in the register from the printer 2095. The image output interface 2113 that has detected the error or the interrupt notifies the status processing unit 2105 of the error or the interrupt using the interrupt signal, and the status processing unit 2105 notifies the CPU 2001 of the error or the interrupt using the interrupt bucket.
[0043]
Here, the illegal vertical synchronizing signal or the horizontal synchronizing signal described above will be described for reference. The image output interface 2113 and the image input interface 2112 count the number of rises of the horizontal synchronization signal in the period from the rise of the vertical synchronization signal to the rise. When the normal vertical sync signal and horizontal sync signal are input, the number of rises of the horizontal sync signal in the period from the rise to the rise of the vertical sync signal does not change, but when an incorrect vertical sync signal or horizontal sync signal is input The number of rises of the horizontal synchronization signal in the period from the rise of the vertical synchronization signal to the rise changes. Here, the rising of the vertical synchronizing signal and the horizontal synchronizing signal has been described, but it goes without saying that the falling may be the falling.
[0044]
The image rotation unit 2030 has the following three errors, namely, a packet header other than the color formats (YMCK, RGBα, RGB, YUV, Lab, Y, M, C, K, ND, and BK) that can be processed by the image rotation unit 2030. ImageType error that occurs when an undefined ImageType is written, and the X coordinate or Y coordinate written in the packet header is larger than the X size or Y size of one page written in the image rotation unit 2030 An X coordinate error or a Y coordinate error occurring in the case, and a ProcessInstructionMode (0 ° rotation, 90 ° rotation, 180 ° rotation, 270 ° rotation, and the like, respectively) that can be processed by the image rotation unit 2030 in the ProcessInstructionMode written in the packet header Mirror image) Detects a ProcessInstructionMode error that occurs when an undefined ProcessInstructionMode is written. The image rotation unit 2030 that has detected the error notifies the status processing unit 2105 of the error using an interrupt signal, and the status processing unit 2105 notifies the CPU 2001 of the error using an interrupt bucket.
[0045]
The resolution conversion unit 2116 includes the following six errors, a PacketType error that occurs when the PacketTypeID written in the packet header is other than a data packet, and a color format (YMCK, RGBα, RGB) that can be processed by the resolution conversion unit 2116 in the packet header. , YUV, Lab, Y, M, C, K, ND, BK), an ImageType error that occurs when an undefined ImageType is written, and the PageID written in the packet header is different from the PageID being processed. The page ID error that occurs in the case where the error occurs, the JobID error that occurs when the JobID written in the packet header is different from the JobID being processed, and the X coordinate or the Y coordinate written in the packet header are converted to the resolution conversion unit 21. 6 detects the X coordinate error or Y coordinate error that occurs when not a order that you expect. The resolution conversion unit 2116 that has detected the error notifies the status processing unit 2105 of the error using an interrupt signal, and the status processing unit 2105 notifies the CPU 2001 of the error using an interrupt bucket. In addition, the resolution conversion unit 2116 generates a resolution conversion normal operation end interrupt that occurs when data of one page of resolution conversion is normally transmitted. The resolution conversion unit 2116 detecting the error or the interrupt notifies the status processing unit 2105 of the error or the interrupt using the interrupt signal, and the status processing unit 2105 notifies the CPU 2001 of the error or the interrupt using the interrupt bucket.
[0046]
The color space conversion unit 2117 outputs the following three errors, namely, a color format (YMCK, RGBα, RGB, YUV, Lab, Y, M, C, K, ND, and BK) that can be processed by the color space conversion unit 2117 in the packet header. An ImageType error that occurs when an undefined ImageType other than the above is written, a PacketType error that occurs when the PacketTypeID written in the packet header is other than a data packet, and a color that can be processed by the color space conversion unit 2117 in the packet header Detects a ProcessInstructionMode error that occurs when a ProcessInstructionMode other than a format (YMCK, RGBα, RGB, YUV, Lab, Y, M, C, K, ND, and BK) is written. You. The color space conversion unit 2117 that has detected the error notifies the status processing unit 2105 of the error using an interrupt signal, and the status processing unit 2105 notifies the CPU 2001 of the error using an interrupt bucket.
[0047]
The binarizing unit 2118 occurs when the following five errors, that is, ImageTypes other than the color formats (Y, M, C, K, and ND) that can be processed by the binarizing unit 2118 are written in the packet header. An ImageType error, and a PacketType error that occurs when the PacketTypeID written in the packet header indicates something other than a data packet, and a PageID error that occurs when the PageID written in the packet header is different from the PageID being processed. Also, a JobID error that occurs when the JobID written in the packet header is different from the JobID being processed, and the X-coordinate or the Y-coordinate written in the packet header of one page written in the binarization unit 2118 From X size or Y size Detecting the X coordinate error or Y coordinate error that occurs when larger. The binarizing unit 2118 that has detected the error notifies the status processing unit 2105 of the error using an interrupt signal, and the status processing unit 2105 notifies the CPU 2001 of the error using an interrupt bucket.
[0048]
The multi-level conversion unit 2119 states that the following three errors, that is, an ImageType error that occurs when an ImageType other than black is written in the packet header, and a PacketTypeID written in the packet header indicate a data packet other than the data packet A PacketType error that occurs in this case and a ProcessInstructionMode error that occurs when the ProcessInstructionMode written in the packet header is other than the ProcessInstructionMode that can be processed by the multi-value coding section 2119 are detected. The multi-level converting unit 2119 that has detected the error notifies the status processing unit 2105 of the error using an interrupt signal, and the status processing unit 2105 notifies the CPU 2001 of the error using an interrupt bucket.
[0049]
Upon detecting the error or the interrupt, the CPU 2001 reads the status processing unit 2105 and the error or interrupt factor register of each image processing unit, and performs a process suitable for each factor. In the case of an error, the CPU 2001 resets the image processing unit 2149 and returns from the error.
[0050]
[Entire system]
Next, FIG. 9 shows a configuration diagram of an entire network system including the digital multifunction peripheral according to the present embodiment.
[0051]
Reference numeral 1001 denotes the digital multifunction peripheral according to the embodiment described above, which is controlled by a controller to which the image output control device and the image processing device of the present invention can be applied.
[0052]
As described above, the digital multifunction peripheral 1001 has a scanner and a printer, and can flow an image read from the scanner to a local area network 1010 (hereinafter, LAN), and can print out an image and print data received from the LAN by the printer.
[0053]
Further, the image read from the scanner can be transmitted to the PSTN or ISDN 1030 by a facsimile transmission unit as the modem 2050, and the image received from the PSTN or ISDN can be printed out by a printer. A database server 1002 manages a binary image and a multi-valued image read by the digital multifunction peripheral 1001 as a database.
[0054]
Reference numeral 1003 denotes a database client of the database server 1002, which can browse and search image data stored in the database 1002.
[0055]
An electronic mail server 1004 can receive an image read by the digital multifunction peripheral 1001 as an electronic mail attachment. Reference numeral 1005 denotes an e-mail client, which is capable of receiving and browsing the e-mail received by the e-mail server 1004 and transmitting the e-mail.
[0056]
Reference numeral 1006 denotes a WWW server that provides an HTML document to the LAN, and the digital multifunction peripheral 1001 can print out an HTML document provided by the WWW server.
[0057]
A router 1011 connects the LAN 1010 with the Internet / intranet 1012 by a router. Devices similar to the aforementioned database server 1002, WWW server 1006, e-mail server 1004, and digital multifunction peripheral 1001 are connected to the Internet / intranet as 1020, 1021, 1022, and 1023, respectively. On the other hand, the digital multifunction peripheral 1001 is capable of transmitting and receiving to and from the FAX device 1031 via the PSTN or ISDN 1030.
[0058]
A printer 1040 is also connected to the LAN, and is configured to be able to print out an image read by the digital multifunction peripheral 1001.
[0059]
[Tile image (packet) format]
Next, the format of a packet processed in the controller 2000 to which the image input / output device and the image processing device of the present embodiment can be applied will be described.
[0060]
In the controller 2000 according to the present embodiment, image data, commands from the CPU 2001, interrupt information issued from each block, and the like are transferred in a packetized format. In the present embodiment, three different types of packets are used: a data packet shown in FIG. 12, a command packet shown in FIG. 13, and an interrupt packet shown in FIG. Hereinafter, each packet will be described.
[0061]
<Data packet (FIG. 12)>
First, a data packet will be described with reference to FIG. In the present embodiment, an example has been described in which image data is divided into image data (ImageData + padding) 3002 in units of 32 pixels × 32 pixels and handled.
[0062]
The required header information (header) 3001 and additional image information (Zdata + padding) 3003 are added to the image in tile units to form a data packet (DataPacket). Hereinafter, information included in the header information 3001 will be described.
[0063]
The packet type is distinguished by a packet type (PcktType) 3004 in the header information 3001. A chip ID (Chip ID) 3005 indicates the ID of a chip that is a target for transmitting a packet. A data type (DataType) 3006 indicates a data type. A page ID (PageID) 3007 indicates a page, and a job ID (JobID) 3008 stores an ID for management by software.
[0064]
The tile number 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. Data packets may be compressed image data or uncompressed. In the present embodiment, a case of non-compression has been described. The distinction between the case of compression and the case of non-compression is indicated by a compression flag (CompressFlag) 3017.
[0065]
The process instruction (Process Instruction) 3011 is set left-justified in the processing order, and each processing unit (such as the above-described rectangular image processing unit) shifts the post-processing process instruction 3011 to the left by 8 bits. The process instruction 3011 stores eight sets of a unit ID (Unit ID) 3019 and a mode (Mode) 3020. A unit ID 3019 specifies each processing unit, and a mode 3020 specifies an operation mode in each processing unit. Thereby, one packet can be processed continuously by eight units.
[0066]
A packet length (PacketByteLength) 3012 indicates the total number of bytes of the packet. The image data length (ImageDataByteLength) 3015 represents the number of bytes of image data, the Z data length (ZdataByteLength) 3016 represents the number of bytes of image additional information, and the image data offset (ImageDataOffset) 3013 and the Z data offset (ZdataOffset) 3014 are respectively Indicates the offset from the beginning of the data packet. Reference numeral 3015 denotes the number of bytes (Image Data Byte length) of the image data, and reference numeral 3016 denotes the number of bytes of Z-Data (Z Data byte length). Reference numeral 3017 denotes a flag (Compress Flag) indicating whether or not the image data in the packet is compressed, 3029 indicates a flag (Char-Flag) indicating whether or not the image is a character area, and 3030 indicates a target pixel block (tile). ) Is quantization table selection data (Q-Table Sel) for determining a quantization step when compressing.
[0067]
Next, a packet table (Packet Table) will be described with reference to FIG. Each packet is managed by a packet table 6001. The components of the packet table 6001 are as follows. When 5 bits are added to the values in the table, a packet start address (PacketAddressPointer) 6002 and a packet length (Byte Length) 6005 are obtained. Also, here, the relationship of Packet Address Pointer 27 bits + 5b00000 = packet start address, Packet Length 11 bits + 5b00000 = packet length holds. The packet table 6001 and the chain table (ChainTable) 6010 are not divided.
[0068]
The packet table 6001 is always arranged in the scanning direction, and Yn / Xn = 000/00000/0001/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.
[0069]
If the packet has exactly the same data as the immediately preceding packet, the packet is not written in the memory, and the same start address (PacketAddressPointer) and packet length (PacketLength) as the first entry are stored in the packet table entry. . One packet data is represented by two table entries. In this case, the repeat flag (RepeatFlag) 6003 of the second table entry is set.
[0070]
When the packet is divided into a plurality of pieces by the chain DMA, a division flag (DividFlag) 6004 is set, and a chain table number (ChainTableNo) 6006 of a chain block including the head of the packet is set.
[0071]
The entry of the chain table 6010 is composed of a chain block address (ChainBlockAddress) 6011 and a chain block length (ChainBlockLength) 6012, and 0 is stored in the last entry of the table for both the address and the data length.
[0072]
<Command packet (FIG. 13)>
Next, a command packet (Command Packet) will be described with reference to FIG.
[0073]
The command packet is for accessing the register setting bus 2109. By using the command packet, the CPU 2001 can also access the image memory 2123.
[0074]
In a chip ID (Chip ID) 4004 in the header 4001, an ID indicating an image processing unit to which a command packet is to be transmitted is stored. A page ID (Page ID) 4007 and a job ID (Job ID) 4008 store a page ID and a job ID for management by software.
[0075]
The packet ID (PacketID) 4009 is represented in one dimension. Therefore, only the X-coordinate (X-coordinate) 4009 of the data packet (Data Packet) is used. The packet length (PacketByteLength) 4010 is fixed at 128 bytes.
[0076]
The packet data section (Command) 4002 can store a maximum of 12 commands using a set of an address (Address) 4011 and data (Data) 4012 as one command. The command type of write or read is indicated by a command type (CmdType) 4005, and the number of commands is indicated by a command number (Cmdnum) 4006.
[0077]
<Interrupt packet (Fig. 14)>
Finally, an interrupt packet (Interrupt Packet) will be described with reference to FIG.
[0078]
The interrupt packet is for notifying an interrupt from the image processing unit 2149 to the CPU 2001. When transmitting the interrupt packet, the status processing unit 2105 must not transmit the interrupt packet until the CPU 2001 permits the transmission.
[0079]
The packet length (PacketByteLength) 5006 is fixed at 128 bytes. The packet data section (IntData) 5002 stores status information (ModuleStatus) 5007 of each internal module (each rectangular image processing section, input / output interface, etc.) of the image processing section. The status processing unit 2105 collects status information of each module in the image processing unit, and can collectively send the status information to the system control unit 2150.
[0080]
The chip ID (ChipID) 5004 stores an ID indicating the system control unit 2150 that is the transmission destination of the interrupt packet, and the interrupt chip ID (IntChipID) 5005 stores the ID indicating the image processing unit that is the transmission source of the interrupt. You.
[0081]
[Tile compression unit]
FIG. 1 shows a block diagram of the tile compression section 2106 in FIG.
[0082]
In FIG. 1, reference numeral 101 denotes a tile bus interface unit, which acquires a data packet input from the tile bus 2107, temporarily stores data input to an internal buffer, and a header information holding unit 102 connected at a subsequent stage. , The header information, the image data, and the image additional information data are distributed and output to the first compression processing unit 103 and the second compression processing unit 104, respectively.
[0083]
When a data packet is input from the tile bus 2107 to the tile bus interface unit 101, first, the header information of the data packet is input, and the tile bus interface unit 101 refers to the value set in the header information to check the header information. Preparations are made for input of image data and image additional information to be input later.
[0084]
The tile bus interface unit 101 analyzes header information (3001) input from the tile bus. Here, as a result of analyzing the header information, if the values set in the header information are inconsistent or set to values beyond the range which can be taken, the tile bus interface unit 101 interrupts the register setting unit 109 described later. After outputting a signal to notify that the header information is inconsistent, the acquisition of data packets from the tile bus is stopped. This state in which no data packet is obtained continues until a reset signal (not shown) is input.
[0085]
If there is no inconsistency in the header information (3001), the header information is output to the header information holding unit 102 connected at the subsequent stage, and subsequently, acquisition of image data and image additional information from the tile bus 2107 is started.
[0086]
The acquired image data and image additional information are output to the first compression processing unit 103 and the second compression processing unit 104 with reference to the ImageType (3006) of the header information.
[0087]
For example, when the ImageType in the header information is Bk, which is image data representing one pixel with one bit, the image data obtained from the tile bus is output to the second compression processing unit 104. At this time, the image additional information is discarded by the tile bus interface unit 101.
[0088]
When ImageType represents a value other than Bk (8-bit ND, 8-bit RGB data or multi-bit (multi-valued) image data), the image data is transmitted to the first compression processing unit 103, and the image additional information is transmitted to the second compression processing unit. Output to 104. However, when Ztype (3020) indicates that there is no image additional information, it is considered that there is no image additional information, and the image additional information is not subjected to compression processing in the second compression processing unit.
[0089]
Reference numeral 102 denotes a header information holding unit which holds the header information in an internal buffer and stores the stored header information while the first compression processing unit 103 and the second compression processing unit 104 compress the image data and the image additional information. The information necessary for compression processing is output to the first compression processing unit and the second compression processing unit.
[0090]
In the header information holding unit 102, the header information input from the tile bus interface unit 101 and the header information stored in the buffer of the header information holding unit before the header information is input (one in the tile compression unit 2106). The header information of the data packet that has been processed immediately before is compared with the header information input from the tile bus interface unit 101, and the comparison result is output to the packet generation unit 105 using the bus 111.
[0091]
When the compression processing is completed by the first compression processing unit 103 and the second compression processing unit 104, the header information held in the header information holding unit 102 is output to the packet generation unit using the bus 110 in response to a request from the packet generation unit 105. You.
[0092]
Reference numeral 103 denotes a first compression processing unit for compressing image data, and in this embodiment, performs compression according to the JPEG method. In addition, the first compression processing unit 103 includes, in the data packet, a pixel at a corresponding position between the image data input from the tile bus interface unit 101 and the image data that has been subjected to the compression processing by the first compression processing unit immediately before. All the pixels are compared, and the comparison result is output to the packet generation unit 105 using the bus 113.
[0093]
The encoded image data compressed by the first compression processing unit 103 is output to the packet generation unit using the bus 112 in response to a request from the packet generation unit 105.
[0094]
When the ImageType (3006) in the header information indicates that the image data is 1-bit image data (binary image data), the image data is compressed by the second compression processing unit. Does not work.
[0095]
Reference numeral 104 denotes a second compression processing unit for compressing the image additional information or the 1-bit image data. In the present embodiment, the second compression processing unit performs a compression method using no information loss, specifically, a packbits method. In addition, the second compression processing unit 104 performs first compression on the image additional information or image data input from the tile bus interface unit 101 and the image additional information or image data that has been subjected to compression processing by the second compression processing unit immediately before. Similar to the processing unit 103, all the pixels included in the data packet are compared for the image additional information or the image data for the pixel at the corresponding position, and the comparison result is output to the packet generation unit 105 using the bus 114.
[0096]
The encoded image additional information or image data compressed by the second compression processing unit 104 is output to the packet generation unit using the bus 113 in response to a request from the packet generation unit 105.
[0097]
Reference numeral 105 denotes a packet generation unit, which acquires header information, image data, and image additional information from the header information holding unit 102, the first compression processing unit 103, and the second compression processing unit 104, and compresses the image data and image additional information. Generate a data packet.
[0098]
The header information generated by the packet generation unit 105 includes a comparison result of each unit output from the header information holding unit 102, the first compression processing unit 103, and the second compression processing unit 104, and the first compression processing unit 103 The image data amount after the encoding by the second compression processing unit 104, the data amount of the image additional information, the data amount of the data packet, and the compression processing by the first compression processing unit 103 and the second compression processing unit 104 Information such as parameters used at that time is reflected.
[0099]
As described above, when the compression processing by the first compression processing unit 103 and the second compression processing unit 104 is completed to generate encoded data, and when each information is reflected in the header information, the data packet is transferred to the image ring output unit 106. Is output to
[0100]
An image ring output unit 106 outputs a data packet sent from the packet generation unit 105 to the image ring interface 4 (2102) in synchronization with the image ring interface 4 (2102).
[0101]
Reference numeral 109 denotes a register setting unit for setting a location related to processing inside the tile compression unit 2106, and sets a predetermined value in the register setting unit 109 so that the tile compression unit 2106 performs a predetermined compression process.
[0102]
These settings are sent from the system control unit 2150 to the command processing unit 2104 of the image processing unit 2149 using the command packet shown in FIG. 13, and sent from the command processing unit to the tile compression unit 2106 via the register setting bus 2109.
[0103]
The value set in the register setting unit 109 is sent to the first compression processing unit 103 and the second compression processing unit 104, and both compression processing units perform a process determined by referring to those set values.
[0104]
It should be noted that not only the value is set to the register setting unit using the command packet, but also the setting value held by the register setting unit can be output to the system control unit 2150 using the command packet.
[0105]
The register setting unit 109 has a register for storing header information. When an interrupt signal is input from the tile bus interface unit 101, the register setting unit 109 fetches the header information from the tile bus interface 101 and sets it in the register. An interrupt signal for notifying that an interrupt has occurred to the unit 2105 and a status signal indicating an error state are output.
[0106]
Reference numeral 108 denotes a register setting bus interface unit, which is a block for performing format conversion and handshaking so that the register setting unit 109 can acquire a setting value input from the register setting bus 2109.
[0107]
[First compression processing unit]
FIG. 2 is a block diagram of the first compression processing unit 103. In the drawing, reference numeral 201 denotes a first data buffer for storing image data sent from the tile bus interface unit 101, and when a predetermined amount of data is sent, the first data buffer 201 is sent to a DCT conversion unit 202 connected at a subsequent stage. Data is output in a predetermined order.
[0108]
Note that the first data buffer is input with the ImageType (3006) of the header information from the header information holding unit 102, so that the image data is input to the first data buffer and the first data buffer is transferred to the DCT conversion unit 202. The order of the data to be output to and the number of data of the image data are controlled by ImageType.
[0109]
Further, the image data is sent from the tile bus interface unit to the first data buffer, and the image data is stored in a predetermined location in the first data buffer, and at the same time the image data is stored in a location where the image data is stored. The stored image data (this is image data corresponding to the position of the transmitted image data in the image data of the data packet processed immediately before by the first compression processing unit) is compared with a data comparison described later. Output to the unit 211.
[0110]
Reference numeral 202 denotes a DCT transform unit that, when image data is input in a predetermined order from the first data buffer 201, performs discrete cosine transform to convert the image data into frequency component data. Also, at this time, the DCT transform unit 202 outputs the value of the DC component generated by performing the discrete cosine transform together with a latch signal to a thumbnail generating unit 212 described later.
[0111]
Reference numeral 203 denotes a quantization unit that performs quantization on the frequency component data output from the DCT transformation unit 202 using a predetermined quantization value. Note that values used for quantization are input from a quantization table described later. The quantization table used for quantization in the DCT transform unit 202 is determined by referring to the header information. Details of a method for determining the quantization table to be used will be described later.
[0112]
Reference numeral 204 denotes a Huffman encoding unit which performs Huffman encoding on the data output from the quantization unit 203 to generate encoded data.
[0113]
Reference numeral 205 denotes a second data buffer, which is a buffer for storing the encoded data encoded by the Huffman encoding unit 204.
[0114]
When the input of the encoded data from the Huffman encoding unit 204 ends, the second data buffer 205 outputs the data amount of the encoded image data to the packet generation unit 105 as Data Byte Length, and a data counter 214 described later. Output to
[0115]
Thereafter, the stored encoded data is output according to a request from the packet generation unit 105.
[0116]
A data comparison unit 211 compares the image data input from the tile bus interface unit 101 with the image data stored in the first data buffer 201. Here, the image data input from the first data buffer 201 to the data comparison unit 211 is not the image data of the data packet currently input from the tile bus interface unit 101 but is input from the tile bus interface unit 101. This is image data that has been subjected to compression processing by the first compression processing unit before the data packet. Therefore, the data comparison unit 211 compares the image data currently input from the tile bus interface unit 101 to the first compression processing unit with the image data processed by the first compression processing unit before that. .
[0117]
By performing the above operation over all the image data input from the tile bus interface unit 101, the data comparison unit 211 compares all the image data included in the data packet with the image data of the previous data packet. be able to.
[0118]
When the comparison is completed for one data packet, all the image data of one data packet is stored in the first data buffer 201. The image data thus stored in the first data buffer 201 is compared with the next image data by the data comparison unit 211 when the image data of the next data packet is input from the tile bus interface unit 101. Is performed.
[0119]
The result of performing the comparison operation on all image data of one packet input from the tile bus interface unit 101 is output to the packet generation unit 105 as a comparison result Compare result.
[0120]
Reference numeral 212 denotes a thumbnail generation unit that acquires a DC component generated when performing DCT conversion output from the DCT conversion unit 202 and generates a thumbnail value based on a plurality of DC components. The acquisition of the DC component from the DCT converter 202 is performed with reference to a latch signal output in synchronization with the DC component. The generated thumbnail value is output as Thumbnail Data to the packet generation unit 105, and is stored in Thumbnail Data (3021) of the header information in a predetermined format.
[0121]
Reference numeral 210 denotes a quantization table unit for storing a quantization value for performing quantization in the quantization unit 203. The quantization table means that when the DCT transform unit 202 performs the discrete cosine transform and divides the frequency component data by a predetermined value for each frequency component to perform quantization, the quantization unit removes each frequency component. A group of data that provides a quantization value for each frequency component generated by the DCT transform unit 202 is referred to as a quantization table.
[0122]
The quantization unit 203 performs quantization by obtaining a quantization value corresponding to frequency data to be quantized from an arbitrary quantization table.
[0123]
The quantization table unit of the present embodiment has four of the above quantization tables, selects a predetermined quantization table according to a selection signal input from a quantization table selection unit described later, and sends a quantization value to the quantization unit 203. Output.
[0124]
A quantization table selection unit 213 outputs a plurality of (four in the present embodiment) quantization tables stored in the quantization table unit by outputting a quantization table selection signal to the quantization table unit 210. Select a predetermined table from. The quantization unit 203 performs quantization using the quantization table selected by the quantization table selection unit 213.
[0125]
The mode (3025) and Q-Table Sel (3030) from the header information holding unit 202 for the quantization table selection unit 213, and the Q-Table ID (3028) for storing in the header information from the register setting unit 109 are determined. A register value Reg-QTField for indicating the correspondence between the register values Reg-Qmode and Q-TableID and the quantization table used by the DCT conversion unit 202, and a counter value and a register value of the data counter from a counter value comparison unit described later. The comparison result count-over is input. The quantization table selection unit 213 selects a Q-TableID to be stored in header information and a quantization table used when performing quantization in the quantization unit 203 by referring to these inputs.
[0126]
A data counter 214 acquires Data Byte Length and adds it to the internal counter each time encoded image data for one data packet is output from the second data buffer to the packet generator. By repeating the above operation, the data counter 214 holds the total amount of encoded image data sent from the tile compression unit 2106 to the RAM 2002 via the system bus bridge 2007 in the internal counter.
[0127]
The internal counter of the data counter 214 is cleared by a counter reset signal output from the header information holding unit 102. As will be described later, the header information section 102 compares the header information of the immediately preceding data packet with the Page ID (3007) and the Job ID (3008) of the header information currently being compressed by the first compression processing section 103, and When one or both of the JobIDs have different values in both header information, a counter reset signal is output.
[0128]
With the above configuration, the counter is cleared in the data counter 214 when a different page or a data packet of a different job is input. Therefore, the internal counter of the data counter 214 stores the total amount of encoded image data in the same page of the same job.
[0129]
A counter value comparing unit 215 compares the internal counter value of the data counter 214 with the register setting value Reg-JPEGCountValue for counter value output from the register setting unit 109, and selects the result as count_over to select the quantization table. Output to the unit 213.
[0130]
The details of the operations of the data counter 214, the counter value comparison unit 215, and the quantization table selection unit 213 will be described later.
[0131]
[Second compression processing unit]
FIG. 4 is a block diagram of the second compression processing unit 104. In the following description, an example in which image additional information is input from the tile bus interface unit 101 will be described. Unless otherwise specified, the same operation is performed when 1-bit image data is input.
[0132]
In FIG. 4, reference numeral 401 denotes a first data buffer for storing the image additional information transmitted from the tile bus interface unit 101, and a pack bit encoding unit connected to the subsequent stage when a predetermined amount of data is transmitted. Data is output to 402 in a predetermined order.
[0133]
Further, the image additional information is sent from the tile bus interface unit to the first data buffer, and the image additional information is stored in a predetermined location in the first data buffer, and at the same time the image additional information is stored. The image additional information stored up to that point (this is the image additional information corresponding to the position of the transmitted image additional information in the image additional information of the data packet processed immediately before by the second compression processing unit). Is output to a data comparison unit 405 described later.
[0134]
Reference numeral 402 denotes a PackBits encoding unit, which performs encoding processing according to the PackBits method on the image additional information output from the first data buffer 401 to generate encoded data.
[0135]
Reference numeral 403 denotes a second data buffer, which is a buffer for storing the encoded data encoded by the PackBits encoding unit 402.
[0136]
When the input of the encoded data from the PackBits encoding unit 402 is completed, the second data buffer 403 outputs the data amount of the encoded image additional information to the packet generation unit 105 as Data Byte Length, and outputs data to be described later. Output to the counter 406.
[0137]
Thereafter, the stored encoded data is output according to a request from the packet generation unit 105.
[0138]
A data comparison unit 405 compares the image additional information input from the tile bus interface unit 101 with the image additional information stored in the first data buffer 401. Here, the image additional information input to the data comparison unit 405 from the first data buffer 401 is not the image additional information of the data packet currently input from the tile bus interface unit 101, but is input from the tile bus interface unit 101. This is image additional information that has been subjected to compression processing by the second compression processing unit before the data packet that has been processed. Therefore, the data comparison unit 405 compares the image additional information currently input from the tile bus interface unit 101 to the second compression processing unit with the image additional information previously processed by the second compression processing unit. ing.
[0139]
By performing the above operation over all the image additional information input from the tile bus interface unit 101, the data comparison unit 405 compares all the image additional information included in the data packet with the image additional information of the previous data packet. A comparison can be made.
[0140]
When the comparison is completed for one data packet, all the image additional information of one data packet is stored in the first data buffer 401. It should be noted that the image additional information stored in the first data buffer 401 in this manner is used by the data comparing unit 405 when the image additional information of the next data packet is input from the tile bus interface unit 101. Information and comparisons are made.
[0141]
The result of performing the above-described comparison operation on all pieces of image additional information of one packet input from the tile bus interface unit 101 is output to the packet generation unit 105 as a comparison result Compare result.
[0142]
The above described Data Byte Length and Compare result are sent to the packet generator 105 via the bus 115 as information for generating header information in the packet generator 105 (see FIG. 1).
[0143]
Reference numeral 406 denotes a data counter that acquires Data Byte Length and adds it to the internal counter each time encoded image additional information for one data packet is output from the second data buffer to the packet generation unit 105. By repeating the above operation, the data counter 406 holds the total amount of the encoded image additional information sent from the tile compression unit 2106 to the RAM 2002 via the system bus bridge 2007 in the internal counter.
[0144]
The internal counter of the data counter 406 is cleared by a counter reset signal output from the header information holding unit 102. As will be described later, the header information section 102 compares the header information of the immediately preceding data packet with the Page ID (3007) and the Job ID (3008) of the header information currently being compressed by the first compression processing section 103, and When one or both of the JobIDs have different values in both header information, a counter reset signal is output.
[0145]
With the above configuration, the data counter 406 is cleared when a different page or a data packet of a different job is input. Therefore, the internal counter of the data counter 214 stores the total amount of encoded image data in the same page of the same job.
[0146]
A counter value comparison unit 407 compares the internal counter value of the data counter 406 with a register setting value Reg-PackCountValue for counter value output from the register setting unit 109, and uses the result as a count_over using the bus 115. Output to the packet generation unit 105.
[0147]
[Header information holding unit]
FIG. 3 is a block diagram of the header information holding unit 102. The header information unit 102 includes a header buffer 301 and a header comparison unit 302.
[0148]
The header buffer 301 holds the header information sent from the tile bus interface unit 101 while the first compression processing unit 103 and the second compression processing unit 104 compress the image data and the image additional information. And a header information necessary for compressing the image data and the image additional information to the first compression processing unit 103 and the second compression processing unit 104. In the present embodiment, ImageType for determining the amount of input image data and Mode and Q-Table Sel as parameters for determining a quantization table used for JPEG compression are provided to the first compression processing unit 103. Is output.
[0149]
Further, ImageType for determining the data amount of the input image additional information is output to the second compression processing unit 104.
[0150]
Further, the following contents are output to the header comparing unit for comparing the header information.
ImageType (3006)
Page_ID (3007)
Job_ID (3008)
Mode (3025)
Source_id (3018)
Char_Flag (3029)
Q-Table Sel (3030)
Z_DataType (3020)
The data comparing unit 302 compares predetermined information of the header information input from the tile bus interface unit 101 with the header information stored in the header buffer 301. Here, the header information input from the header buffer 301 to the data comparison unit 302 is not the header information of the data packet currently input from the tile bus interface unit 101, but the data packet input from the tile bus interface unit 101. Is the header information stored in the header buffer before. Therefore, the data comparison unit 302 compares the header information currently input to the header holding unit from the tile bus interface unit 101 with the header information previously stored in the header holding unit.
[0151]
The header comparison unit 302 outputs the comparison result Compare result to the packet generation unit 105.
[0152]
Further, the data comparison unit 302 outputs a counter reset signal to the data counter 214 in the first compression processing unit and the data counter 406 in the second compression processing unit. The counter reset signal is performed by referring to the Page ID and the Job ID among the header information input for comparison of the header information.
[0153]
That is, the page ID input from the tile bus interface unit 101 is compared with the page ID input from the header buffer 301, and similarly, the job IDs are compared. As a result, if one or both values of the page ID and the job ID are different, the data comparison unit 302 Outputs a counter reset signal.
[0154]
As a result, the data counter 214 in the first compression processing unit and the data counter 406 in the second compression processing unit receive data packets of different pages continuously and data packets of different Jobs continuously. In this case, a counter reset signal is output.
[0155]
[Quantization table selector]
FIG. 5 shows a block diagram of the quantization table selection unit 231 shown in FIG.
[0156]
The quantization table selector 231 includes one selector 502 and two lookup tables (LUTs) 501 and 503.
[0157]
The selector 502 selects a signal that refers to the LUT 501. In FIG. 5, one of the Q-Table Sel (3030) of the header information and the comparison result count_over output from the counter value comparison unit 215 is selected and input to the LUT 501. In the present embodiment, count_over is selected.
[0158]
The LUT 501 outputs a 4-bit Q-TableID (3028) with reference to the Mode (3025) 3 bits and the value of the count_over1 bit output from the selector 502. The value of the Q-TableID output from the LUT 501 uses Reg-Qmode [63: 0] input from the register setting unit 109.
[0159]
FIG. 6 is a diagram illustrating a relationship between an input value (address) and an output value (stored data) in the LUT 501.
[0160]
For example, when the Mode_000 is input to the LUT 501 and the count_over = 0 is input because the internal counter value of the data counter 214 is equal to or less than the register value Reg-JpegCountValue, the LUT 501 receives the Reg-Qmode in the Reg-Qmode [63: 0]. The value input from [3: 0] is output as Q-TableID (3028). An example of the value of the output Q-TableID (3028) is shown on the right side of FIG. 6, in which case 0000 is output as the Q-TableID.
[0161]
Here, the compression processing of the data packet progresses for a while by the first compression processing unit, and when the internal counter value of the data counter 214 exceeds the register value Reg-JpegCountValue, the counter value comparison unit 215 outputs count_over = 1. Note that the value of the register value Reg-JpegCountValue is set from the UI (operation unit) 2012, but may be automatically determined based on the document size.
[0162]
Then, as shown in FIG. 6, Mode = 000 and count_over = 1 are input to the LUT 501, so that the value 1000 of Reg-Qmode [35:32] is output as the Q-TableID.
[0163]
The Q-TableID output from the LUT 501 by the above operation is sent to the packet generation unit 105 via the bus 113, and is reflected in the Q-TableID (3028) of the header information.
[0164]
The LUT 503 outputs a 2-bit quantization table selection signal SEL to the quantization table unit 210 with reference to the value of the Q-TableID output from the LUT 501. The value of SEL output from the selector 502 uses Reg-QTField [31: 0] input from the register setting unit 109.
[0165]
FIG. 8 is a diagram for describing the configuration of Reg-QTField [31: 0]. Reg-QTField [31: 0] is composed of a QTField composed of a set of 2 bits, and 16 bits are stored in one register. It has a set of QTFields, and the selected QTField is the SEL.
bit [31:30] QTField used when Q-Table ID = 1111 is input
bit [29:28] Q-Field used when Q-Table ID = 1110 is input
bit [27:26] QTField used when Q-Table ID = 1101 is input
bit [25:24] QTField used when Q-Table ID = 1100 is input
bit [23:22] QTField used when Q-Table ID = 1011 is input
bit [21:20] QField used when Q-Table ID = 1010 is input
bit [19:18] QTField used when Q-Table ID = 1001 is input
bit [17:16] QTField used when Q-Table ID = 1000 is input
bit [15:14] QTField used when Q-Table ID = 0111 is input
bit [13:12] QTField used when Q-Table ID = 0110 is input
bit [11:10] QTField used when Q-Table ID = 0101 is input
bit [9: 8] QTField used when Q-Table ID = 0100 is input
bit [7: 6] QTField used when Q-Table ID = 0011 is input
bit [5: 4] QTField used when Q-Table ID = 0010 is input
bit [3: 2] QTField used when Q-Table ID = 0001 is input
bit [1: 0] QTField used when Q-Table ID = 0000 is input
FIG. 7 shows the relationship between the value of the Q-TableID (input address) input to the LUT 503 and the value of the SEL (storage data) output.
[0166]
For example, when Q = TableID = 0000 is input to the LUT 503, the LUT 503 outputs a value input from Reg-QTField [1: 0] in Reg-QTField [31: 0] as SEL. The right side of FIG. 7 shows an example of the output SEL value and the quantization table selected by the quantization table unit 210 at that time. In FIG. 7, when Q = TableID = 0000 is input, 00 is output as SEL, and the quantization table Q0 is selected.
[0167]
Also, as shown in FIG. 6, when count_over = 1 is input to the LUT 501 and the Q-TableID output from the LUT 501 changes to 1000, the SEL value output from the LUT 503 also changes from 00 to 10 and the quantization table Q2 is selected.
[0168]
The quantization table section 210 uses the quantization table selected by the SEL output from the quantization table selection section 213, and outputs a quantization value according to a request from the quantization section 203.
[0169]
According to the above description, when the data amount reaches the threshold value Reg-JobCountValue while the image of one page is compressed and stored in the RAM 2002, the quantization table newly set after that is set. , And compression is performed, and image input continues. However, already-compressed encoded data (data stored in the RAM 2002) before reaching the threshold value has been compression-encoded using the conventional quantization table, so that the data is read out and the packet is read out. The data is decompressed by the tile decompression unit 2103 via the image ring 2008, and recompression is performed using the newly determined quantization table.
[0170]
Further, in the present embodiment, the method of selecting the parameters of the quantization table has been described. However, the present invention is not limited to the quantization table, and other parameters such as the Huffman encoding unit 204 have exactly the same configuration. The parameter can be selected by a tile at an arbitrary position. For example, if the target pixel block is luminance data including RGB format and ND format, a Huffman coding table for luminance is used, and if density data including CMYK format and gray scale is used, color difference Is encoded by using a Huffman encoding table for encoding. The determination of the type (color space) of the pixel block of interest may be made in accordance with the Image Type included in the header of the data packet.
[0171]
Further, in the present embodiment, the parameter selection at the time of image compression has been described. However, this is not limited to the compression, and the same effect can be expected at the time of decompression with the same configuration as the present invention.
[0172]
In this embodiment, the quantization table is selected based on the values of the two tables (registers) corresponding to the information in the packet header. However, this is limited to the two tables (registers). Instead, the quantization table may be selected based on one or three or more tables (registers).
[0173]
Here, the scanner 2070 has a character determination function of evaluating a scanned image and adding information (character flag) indicating whether each pixel is an image constituting character data to each pixel. The configuration and algorithm for character determination are described in, for example, Japanese Patent No. 2872285.
[0174]
Also, information (Q-Table Sel (3030)) indicating whether each tile is a tile including character data is included in the header information of each tile. The Q-Table Sel is added by the scanner 2070 based on the character flag added for each pixel, and the addition condition can be selected from the following two conditions.
[0175]
Condition 1:
If all 1024 character flags in one tile, that is, in 32 × 32 pixels, are not “0”, that is, not a character, Q-Table Sel (3030) is set to “0”.
[0176]
In other cases, that is, when any one of 1024 character flags in one tile, that is, 32 × 32 pixels is “1”, that is, a character, the Q-Table Sel (3030) is set to “1”. . Condition 1 can be represented by the following logic circuit.
Q-Table Sel = (character flag of pixel 1) or (character flag of pixel 2) or ... or_ (character flag of pixel 1024)
Condition 2:
If any one of 1024 character flags in one tile, that is, 32 × 32 pixels, is not “0”, that is, if it is not a character, Q-Table Sel (3030) is set to “0”.
When all the 1024 character flags in one tile, that is, in 32 × 32 pixels are “1”, that is, all the characters are characters, the Q-Table Sel (3030) is set to “1”. In other cases, that is, condition 2 can be expressed by the following logic circuit.
Q-Table Sel = (character flag of pixel 1) and (character flag of pixel 2) and ... and_ (character flag of pixel 1024)
When Q-Table Sel (3030) = '0', Reg-QTField [31: 0] and Q-TableID are set so that a Q-Table for a photograph having a high compression ratio is selected. Image compression that emphasizes data saving can be performed.
[0177]
When Q-Table Sel (3030) = '1', image quality is set by setting Reg-QTField [31: 0] and Q-TableID so that a Q-Table for characters with high resolution is selected. Important image compression can be performed.
[0178]
Here, for the sake of explanation, the conditions 1 and 2 have been described using a simple logic circuit. However, the number of pixels whose character flag is “1” is counted, and the magnitude of the counter value and a preset threshold value are determined. By switching the Q-Table based on the result of the comparison, it is possible to set the condition with higher accuracy in accordance with the image.
[0179]
Here, for the sake of explanation, it has been described that the condition determination is made in 1024 of one tile, that is, 32 × 32 pixels. However, the present invention is not limited to this. With -TableSel, it is also possible to select a Q-Table for each JPEG processing unit.
[0180]
Note that, in the above-described embodiment, the description has been given mainly of compressing the image read from the scanner 2070 and storing the image in the RAM 2002. However, the apparatus according to the present embodiment is connected to the network as described above, For example, a personal computer or the like also functions as a printer. Therefore, in this case, as the data flow, the CPU 2001 interprets the print information (PDL data) received from the LAN controller 2010, compresses it even when it is expanded, and stores it in the RAM 2002. The compression process at this time is transmitted to the image processing unit 2149 via the image ring 2008 in the form of a packet (the rendering unit interface 2110 performs the same processing as the image input interface 2112), and transmits the compression result (packet). The data is received via the image ring 2008 and stored in the RAM 2002. While the compression process is being performed, the compressed image data stored in the RAM 2002 (it can be determined whether or not the data is compressed by checking the compression flag 3017 in the header) is again processed through the image ring 2008. The packet is transmitted to the unit 2149, decompressed by the tile decompression units 2103 (1) and 2103, and printed by the printer 2095 via the printer image processing unit 2115.
[0181]
As described above, according to the present embodiment, it is possible to select a quantization table for each tile based on quantization table selection information written in a packet header transmitted for each tile, and By setting a compression parameter corresponding to a feature for each tile, it is possible to perform image compression at a high compression rate without deteriorating image quality.
[0182]
【The invention's effect】
As described above, according to the present invention, it is possible to change parameters related to compression in units of pixel blocks such as tiles while facilitating the device configuration and device design. Further, it becomes possible to compress the image to the target size.
[Brief description of the drawings]
FIG. 1 is a block diagram of a tile compression unit 2106 according to the present embodiment.
FIG. 2 is a block diagram of a first compression processing unit 103;
FIG. 3 is a block diagram of a header information holding unit 102;
FIG. 4 is a block diagram of a second compression processing unit 104;
FIG. 5 is a block diagram of a quantization table selection unit 213.
FIG. 6 is a diagram illustrating a relationship between an input value and an output value in an LUT 501.
FIG. 7 is a diagram illustrating a relationship between an input value and an output value in an LUT 503.
FIG. 8 is a diagram showing a format of output data Reg-QTField [31: 0] of a register setting unit 109.
FIG. 9 is a configuration diagram of an entire network system including the digital multifunction peripheral according to the embodiment.
FIG. 10 is a block diagram of a controller of the digital multi-function peripheral in the embodiment.
FIG. 11 is a block diagram illustrating details of a controller of the digital multi-function peripheral in the embodiment.
FIG. 12 is a diagram showing a format of a data packet used in the controller 2000.
FIG. 13 is a diagram showing a format of a command packet used in the controller 2000.
FIG. 14 is a diagram showing a format of an interrupt packet used in the controller 2000.
FIG. 15 is a diagram showing the contents of a packet table used in the controller 2000.

Claims (19)

画像入力部より入力した画像データを所定の画素ブロック単位に分割する分割部、分割した画素ブロックを圧縮符号化する画像圧縮部、圧縮符号化した圧縮符号化情報を記憶する画像記憶部を備え、前記分割部、画像圧縮部、及び画像記憶部の間では、パケットデータとして通信する画像処理装置であって、
前記分割部は、入力した画像データを所定画素ブロックに分割する際、当該画素ブロックの属性を判別し、生成した属性に関する情報を付加情報として前記画素ブロックのデータと共にパケットデータとして出力し、
前記画像圧縮部は、前記分割部から出力されたパケットデータ中の属性情報に従って圧縮符号化する際のパラメータを決定し、当該パケットデータに含まれる画素ブロックのデータを圧縮符号化し、
前記記憶部は、前記画像圧縮部で圧縮されたパケットデータを記憶する
ことを特徴とする画像処理装置。
A division unit that divides image data input from the image input unit into predetermined pixel block units, an image compression unit that compresses and encodes the divided pixel blocks, and an image storage unit that stores compression-encoded compression encoded information, An image processing device that communicates as packet data between the division unit, the image compression unit, and the image storage unit,
The dividing unit, when dividing the input image data into predetermined pixel blocks, determines the attribute of the pixel block, and outputs information on the generated attribute as additional information as packet data together with the data of the pixel block,
The image compression unit determines a parameter when performing compression encoding according to the attribute information in the packet data output from the division unit, and compression-encodes data of a pixel block included in the packet data,
The image processing apparatus, wherein the storage unit stores the packet data compressed by the image compression unit.
前記画像入力部は画像読取装置であることを特徴とする請求項1に記載の画像処理装置。The image processing apparatus according to claim 1, wherein the image input unit is an image reading device. 請求項1において、前記画像入力手段はページ記述言語から画像情報を生成するコントローラ装置であることを特徴とする画像処理装置。2. The image processing apparatus according to claim 1, wherein the image input unit is a controller device that generates image information from a page description language. 前記画像データと付加情報は前記画像圧縮部によりそれぞれ異なる圧縮方法により圧縮されることを特徴とする請求項1に記載の画像処理装置。The image processing apparatus according to claim 1, wherein the image data and the additional information are compressed by the image compression unit using different compression methods. 前記画像圧縮部の画像圧縮処理はJPEG圧縮であり、前記前記分割部は、画像をJPEG圧縮する単位の整数倍のサイズに分割することを特徴とする請求項1に記載の画像処理装置。2. The image processing apparatus according to claim 1, wherein the image compression processing of the image compression unit is JPEG compression, and the division unit divides the image into an integral multiple of a unit of JPEG compression. 前記画像圧縮部には複数の量子化テーブルを有し、パラメータによって使用する量子化テーブルを選択することにより圧縮率を変更させることを特徴とする請求項5に記載の画像処理装置。6. The image processing apparatus according to claim 5, wherein the image compression unit has a plurality of quantization tables, and changes a compression ratio by selecting a quantization table to be used according to a parameter. 前記圧縮手段は複数のハフマンテーブルを有し、前記パラメータで示されるハフマンテーブルを選択することにより圧縮率を変更することを特徴とする請求項6に記載の画像処理装置。The image processing apparatus according to claim 6, wherein the compression unit has a plurality of Huffman tables, and changes a compression ratio by selecting a Huffman table indicated by the parameter. 画像入力部より入力した画像データを所定の画素ブロック単位に分割する分割部、分割した画素ブロックを圧縮符号化する画像圧縮部、圧縮符号化した圧縮符号化情報を記憶する画像記憶部を備え、前記分割部、画像圧縮部、及び画像記憶部の間では、パケットデータとして通信する画像処理装置の制御方法であって、
前記分割部は、入力した画像データを所定画素ブロックに分割する際、当該画素ブロックの属性を判別し、生成した属性に関する情報を付加情報として前記画素ブロックのデータと共にパケットデータとして出力する工程を有し、
前記画像圧縮部は、前記分割部から出力されたパケットデータ中の属性情報に従って圧縮符号化する際のパラメータを決定し、当該パケットデータに含まれる画素ブロックのデータを圧縮符号化する工程と有し、
前記記憶部は、前記画像圧縮部で圧縮されたパケットデータを記憶する工程を有する
ことを特徴とする画像処理装置の制御方法。
A division unit that divides image data input from the image input unit into predetermined pixel block units, an image compression unit that compresses and encodes the divided pixel blocks, and an image storage unit that stores compression-encoded compression encoded information, A method for controlling an image processing device that communicates as packet data between the division unit, the image compression unit, and the image storage unit,
When dividing the input image data into predetermined pixel blocks, the division unit determines an attribute of the pixel block, and outputs information on the generated attribute as additional information as packet data together with the data of the pixel block. And
The image compression unit determines a parameter when performing compression encoding according to attribute information in the packet data output from the division unit, and compression-encodes data of a pixel block included in the packet data. ,
The method according to claim 1, wherein the storage unit stores the packet data compressed by the image compression unit.
画像データを圧縮し記憶する画像処理装置であって、
入力した画像を所定の画素ブロックに分割し、当該画素ブロックの属性を判別し、判別した属性に関する情報を付加情報として前記画素ブロックのデータと共にパケットデータとして出力する画像分割手段と、
分割して得た画素ブロックのパケットデータを受信して、圧縮符号化する圧縮手段と、
該圧縮手段で圧縮符号されたデータ量を計数し、所定量になったか否かを判断する計数手段と、
圧縮符号化されたデータをパケットデータとして記憶する記憶手段とを備え、
前記圧縮手段は、
前記画像分割手段より出力されたパケットデータ中の付加情報及び前記計数手段による判断結果によって決定されるパラメータに基づいて圧縮符号化することを特徴とする画像処理装置。
An image processing apparatus for compressing and storing image data,
Image dividing means for dividing the input image into predetermined pixel blocks, determining the attribute of the pixel block, and outputting information on the determined attribute as packet data together with the data of the pixel block as additional information,
Compression means for receiving the packet data of the pixel block obtained by the division and compressing and encoding the packet data;
Counting means for counting the amount of data compressed and compressed by the compression means and determining whether or not the amount has reached a predetermined amount;
Storage means for storing compression-encoded data as packet data,
The compression means,
An image processing apparatus, wherein compression encoding is performed based on additional information in packet data output from the image dividing unit and a parameter determined based on a determination result by the counting unit.
前記画像分割手段で分割する画像は原稿読取装置で読取られた画像であることを特徴とする請求項9に記載の画像処理装置。The image processing apparatus according to claim 9, wherein the image divided by the image dividing unit is an image read by a document reading device. 前記画像分割手段で分割する画像はページ記述言語から生成される画像であることをことを特徴とする請求項9に記載の画像処理装置。The image processing apparatus according to claim 9, wherein the image divided by the image dividing unit is an image generated from a page description language. 画像圧縮手段は、JPEG圧縮を行うものであって、前記パラメータは量子化ステップを決定するためのものであることを特徴とする請求項9に記載の画像処理装置。The image processing apparatus according to claim 9, wherein the image compression unit performs JPEG compression, and the parameter is for determining a quantization step. 前記画素ブロックのサイズは、JPEG圧縮する際の画像処理単位(8×8画素)の整数倍の画像サイズであることを特徴とする請求項12に記載の画像処理装置。13. The image processing apparatus according to claim 12, wherein the size of the pixel block is an image size that is an integral multiple of an image processing unit (8 × 8 pixels) at the time of JPEG compression. 前記圧縮手段は、JPEG圧縮する際に行ったDCT変換後の係数に対し、高周波成分について異なる量子化ステップを有する複数の量子化テーブルを備えることを特徴とする請求項12又は13に記載の画像処理装置。14. The image according to claim 12, wherein the compression unit includes a plurality of quantization tables each having a different quantization step for a high-frequency component with respect to a coefficient after DCT performed when performing JPEG compression. Processing equipment. 前記付加情報には、前記画素が文字を構成する画像データの一部であるか否かを示すための情報が含まれることを特徴とする請求項14に記載の画像処理装置。The image processing apparatus according to claim 14, wherein the additional information includes information indicating whether the pixel is part of image data forming a character. 前記圧縮手段は、少なくとも第一の量子化テーブル及び第二の量子化テーブルの2つを有し、第一の量子化テーブルは第二の量子化テーブルよりも高周波成分の画像劣化が少なく、高周波成分の圧縮率が低いことを特徴とする請求項15に記載の画像処理装置。The compression means has at least two of a first quantization table and a second quantization table, and the first quantization table has less image deterioration of high frequency components than the second quantization table, The image processing apparatus according to claim 15, wherein a compression ratio of the component is low. 前記付加情報により、注目画素ブロックが全て文字でないことを表している場合、もしくは、1つでも文字データが混在していることを表している場合、もしくは、文字データ画素が閾値個数以上混在している場合に、前記第一の量子化テーブルを選択することを特徴とする請求項16に記載の画像処理装置。The additional information indicates that all the target pixel blocks are not characters, or indicates that at least one character data is mixed, or that the number of character data pixels is equal to or greater than the threshold number. 17. The image processing apparatus according to claim 16, wherein when there is, the first quantization table is selected. 前記付加情報により、注目画素ブロックが全て文字であることを表している場合、もしくは、1つでも文字データが混在してないことを表している場合、もしくは、文字データ画素が閾値個数以下混在している場合に、前記第二の量子化テーブルを選択することを特徴とする請求項16に記載の画像処理装置。The additional information indicates that all the pixel blocks of interest are characters, or that one or more character data are not mixed, or that the number of character data pixels is equal to or less than the threshold number. 17. The image processing apparatus according to claim 16, wherein the second quantization table is selected when the second quantization table is set. 画像データを圧縮し記憶する画像処理装置の制御方法であって、
入力した画像を所定の画素ブロックに分割し、当該画素ブロックの属性を判別し、判別した属性に関する情報を付加情報として前記画素ブロックのデータと共にパケットデータとして出力する画像分割工程と、
分割して得た画素ブロックのパケットデータを受信して、圧縮符号化する圧縮工程と、
該圧縮工程で圧縮符号されたデータ量を計数し、所定量になったか否かを判断する計数工程と、
圧縮符号化されたデータをパケットデータとして所定の記憶手段に格納する工程とを備え、
前記圧縮工程は、
前記画像分割工程より出力されたパケットデータ中の付加情報及び前記計数手段による判断結果によって決定されるパラメータに基づいて圧縮符号化することを特徴とする画像処理装置の制御方法。
A method of controlling an image processing device that compresses and stores image data,
An image dividing step of dividing the input image into predetermined pixel blocks, determining the attribute of the pixel block, and outputting information on the determined attribute as packet data together with the data of the pixel block as additional information;
A compression step of receiving packet data of the pixel block obtained by division and compressing and encoding the packet data;
A counting step of counting the amount of data compressed and encoded in the compression step, and determining whether or not the amount has reached a predetermined amount;
Storing the compression-encoded data as packet data in predetermined storage means,
The compression step includes:
A control method for an image processing apparatus, comprising: performing compression encoding based on additional information in packet data output from the image dividing step and a parameter determined based on a determination result by the counting unit.
JP2002278119A 2002-09-24 2002-09-24 Image processor, and control method therefor Pending JP2004120135A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002278119A JP2004120135A (en) 2002-09-24 2002-09-24 Image processor, and control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002278119A JP2004120135A (en) 2002-09-24 2002-09-24 Image processor, and control method therefor

Publications (1)

Publication Number Publication Date
JP2004120135A true JP2004120135A (en) 2004-04-15

Family

ID=32273510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002278119A Pending JP2004120135A (en) 2002-09-24 2002-09-24 Image processor, and control method therefor

Country Status (1)

Country Link
JP (1) JP2004120135A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8023749B2 (en) 2006-06-19 2011-09-20 Sharp Kabushiki Kaisha Image compressing apparatus and image reading apparatus including the same, image processing apparatus including image compressing apparatus and image forming apparatus including the same, image compression processing method, computer program thereof, and recording medium
CN111937029A (en) * 2018-09-18 2020-11-13 富士施乐株式会社 Image processing apparatus, image processing method, image processing program, and storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8023749B2 (en) 2006-06-19 2011-09-20 Sharp Kabushiki Kaisha Image compressing apparatus and image reading apparatus including the same, image processing apparatus including image compressing apparatus and image forming apparatus including the same, image compression processing method, computer program thereof, and recording medium
CN111937029A (en) * 2018-09-18 2020-11-13 富士施乐株式会社 Image processing apparatus, image processing method, image processing program, and storage medium

Similar Documents

Publication Publication Date Title
US7130072B2 (en) Multifunction system, image processing method, computer program and memory medium
US20030164975A1 (en) Image processing apparatus and image processing method
JP2001136352A (en) Picture input device and its controlling method
JP3862605B2 (en) Image processing device
US7447384B2 (en) Image processing method and apparatus
US20040141655A1 (en) Method and apparatus for image processing
JP2003316714A (en) Apparatus and method for information processing
JP3907471B2 (en) Image input / output controller
JP2004120135A (en) Image processor, and control method therefor
JP2004299387A (en) Electronic device, image formation apparatus, and image data conversion method
JP2005045458A (en) Image compression method and apparatus
JP4136573B2 (en) Image processing method, image processing apparatus, program, and recording medium
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
JP3703431B2 (en) Data communication apparatus, image processing apparatus, data communication method, and data communication method in image processing apparatus
JP2006229688A (en) Image processing device
JP2003250050A (en) Image processing apparatus and control method thereof
JP2003078770A (en) Image processing method and its apparatus
JP4859215B2 (en) Data processing apparatus and control method
JP2004165902A (en) Image processing apparatus
JP2004253906A (en) Expanding apparatus
JP2003069831A (en) Image processor, image display method and computer program
JP2003348338A (en) Information processing apparatus
JP2003234909A (en) Image processing apparatus
JP2003234904A (en) Multifunction system controller
JP2003234910A (en) Multifunction system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060414

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060804