JP2005020594A - Printer and control method thereof - Google Patents

Printer and control method thereof Download PDF

Info

Publication number
JP2005020594A
JP2005020594A JP2003185385A JP2003185385A JP2005020594A JP 2005020594 A JP2005020594 A JP 2005020594A JP 2003185385 A JP2003185385 A JP 2003185385A JP 2003185385 A JP2003185385 A JP 2003185385A JP 2005020594 A JP2005020594 A JP 2005020594A
Authority
JP
Japan
Prior art keywords
printing
data
encoded
print
size
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2003185385A
Other languages
Japanese (ja)
Inventor
Toru Wakana
徹 若菜
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 JP2003185385A priority Critical patent/JP2005020594A/en
Publication of JP2005020594A publication Critical patent/JP2005020594A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To reduce the consumption of a memory while improving the image quality by dynamically changing the tile size which is an object of discrete wavelet transformation based on a print data. <P>SOLUTION: A CPU2005 of a printer determines the tile size for wavelet transformation according to the size of a print image data based on the data when the print data is received from an external equipment 2001 such as a host computer, and performs compression coding, which is sequentially accumulated in a RAM2010. At printing, the data accumulated in the RAM2010 is decoded and outputted to a printer engine 2011 through an I/F circuit 2009. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明はホストコンピュータ等の外部装置から受信した印刷データに基づき印刷する技術に関するものである。
【0002】
【従来の技術】
従来、レーザービームプリンタなどの、いわゆるページプリンタと呼ばれる画像形成装置においては、1ページ分のラスタデータをラスタメモリ上に保持して画像形成を行なっていた。このような画像処理装置としてのラスタデータは、テキストだけでなく、単なる図形から写真のような画像まであらゆる画像を扱うものである。
【0003】
また、これらの画像形成装置は、近年解像度が向上し、例えば600dpiの解像度で、A4サイズ1ページ分作成するためには4MByteものメモリを必要とする。そして現在も解像度はますます増大する傾向にあり、さらに従来1画素2階調(1ビット)で表現されていた階調も、16階調(4ビット)〜256階調(8ビット)へと向上しつつあり、ますますメモリを必要とするようになってきている。なおかつ最近ではカラーを扱う場合も多くなりモノクロに比べYMCK空間の場合は4プレーン分さらに必要となり、メモリサイズが膨大になってきている。
【0004】
このようなメモリの増大によるコストアップを抑えるため、様々な省メモリ技術が提案されている。例えば1ページ分のラスタデータをラスタメモリ上にそのままもつのではなく、バンド状に分割し、バンド単位で様々な符号化方式を用いてラスタデータを符号化し省メモリ化することである。この符号化方式に色空間変換、2次元離散ウェーブレット変換、エントロピー符号化などを用いた符号化方式がある。この符号化方式の離散ウェーブレット変換を実行する前にタイリング処理を施し、そのタイル単位に離散ウェーブレット変換を用いるというものである。
【0005】
【発明が解決しようとする課題】
しかしながら、ラスタデータには様々な画像が描画され、なお且つ様々な解像度で形成されている。例えば、レーザープリンタなどの印刷装置では、一つの印刷装置で300dpi、600dpi、1200dpi、2400dpiなど多種多様な解像度での印字が可能である。これらの画像や解像度において、前記色空間変換、前記離散ウェーブレット変換、前記エントロピー符号化手段を用いて符号化を行う際に、全ての画像に対して一様なパラメータで処理を実行すると、画像に応じて、符号化効率、画像の品位などの処理が非効率な場合がある。たとえは、画像の品質を高めるため、タイル分割サイズが大きく設定した場合、システムによってはシステムのメモリ使用量が増加し、システムの負荷が高くなる場合がある。また、高解像度のラスタデータを印刷する場合、低解像度のラスタデータを印刷する場合と同様のサイズでタイル分割を行うと、タイル分割サイズが小さくなり、タイル分割数が増加し、タイル間の歪みが出現する可能性もある。
【0006】
本発明はかかる問題点に鑑みなされたものであり、離散ウェーブレット変換対象であるタイルサイズを、印刷データに基づいて動的に変更することで、メモリ消費量の削減と画質向上の両立を図る技術を提供しようとするものである。
【0007】
【課題を解決するための手段】
かかる課題を解決するため、例えば本発明の印刷装置は以下の構成を備える。すなわち、
上位装置から受信した印刷データに基づき、所定の記録媒体上に画像を印刷する印刷装置であって、
受信した印刷データに基づく印刷イメージデータを、タイル単位に分割し、ウェーブレット変換することで圧縮符号化し、所定の記憶装置に順次格納する符号化手段と、
前記記憶装置に記憶された符号化データを順次復号して印刷する印刷手段とを備え、
前記符号化手段は、符号化対象となるタイルサイズを、印刷しようする印刷イメージデータのサイズに応じて調整する調整手段を含むことを特徴とする。
【0008】
【発明の実施の形態】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【0009】
<装置構成の説明>
図1は、本実施形態に適用されるレーザビームプリンタ(以下、LBPと略す)の内部構造を示す断面図で、このLBPは不図示のデータ源から文字パターンの登録や定型書式(フォームデータ)などの登録が行える。
【0010】
同図において、1000はLBP本体であり、外部に接続されているホストコンピュータ(第2図の2001)から供給される文字情報(文字コード)やフォーム情報あるいはマクロ命令などを入力して記憶するとともに、それらの情報に従って対応する文字パターンやフォームパターンなどを作成し、記録媒体である記録紙上に像を形成する。1012は操作のためのスイッチおよびLED表示器などが配されている操作パネル、1001はLBP1000全体の制御およびホストコンピュータから供給される文字情報などを解析するプリンタ制御ユニットである。この制御ユニット1001は、主に文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ1002に出力する。
【0011】
レーザドライバ1002は半導体レーザ1003を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ1003から発射されるレーザ光1004をオンオフ切り替えする。レーザ1004は回転多面鏡(ポリゴンミラー)1005で左右方向に振られ静電ドラム1006上を走査する。これにより、静電ドラム1006上には文字パターンの静電潜像が形成される。この潜像は、静電ドラム1006周囲の現像ユニット1007により現像された後、記録紙に転送される。この記録紙にはカットシートを用い、カットシート記録紙はLBP1000に装着した用紙カセット1008に収納され、給紙ローラ1009および搬送ローラ1010と1011とにより装置内に取り込まれて、静電ドラム1006に供給される。
【0012】
図2は、主として制御ユニット1001の内部構成と、制御ユニット1001とホストコンピュータ等の外部機器2001及びプリンタエンジン2011(図1参照)との接続関係を示している。
【0013】
図示において、2003はアドレス及びデータバスを示し、2004はバッファ部を含むホストI/F、2005は制御ユニット1001並びにLBP1000全体の制御を司るCPUである。CPU2005が実行するプログラムやフォントデータ等が格納されているROM、2007はCPU2005により制御されるDMA部、2008はパネル部、2009はエンジン2011に送るためのデータを格納しておくための出力バッファ部を含むI/F回路部、2010は受信データを格納する受信バッファ、画像データを展開するため、及び、CPU2005のワークエリアとして使用されるRAMを示している。
【0014】
上記構成において、印刷する際の解像度の変更は、回転多面鏡1005の回転速度R、及び、レーザドライバ1002並びにRAM2010からの画像データの読出す際のクロック周波数Fを制御することで行うことで実現できるが、解像度の変更そのものは公知であるので、ここでの詳述は省略する。
【0015】
<符号化の説明>
外部機器2001から受信した印刷データに基づいて、たとえばバンド単位の印刷イメージを生成した後、そのイメージデータを圧縮符号化することになる。そして、このバンド単位の圧縮は、RAMの容量が許すかぎり複数ページに亙って行っていく。一方、印刷する際には、在るページのバンドの圧縮データを伸長してはエンジンに2011に出力する処理を行う。以下に説明する符号化はこのバンド単位の圧縮処理についてのものである。
【0016】
実施形態におけうバンド単位の符号化処理を図6のフローチャートに従って説明する。
【0017】
先ず、ステップS601において、色空間変換処理を行う。なお、この色変換処理であるが、実施形態の装置が図1に示すようなモノクロプリンタの場合には省略して構わない。この場合、画像中の符号化対象となる画像データは、8ビットのモノクロ画像データとする。しかしながら、各画素4ビット、10ビット、12ビットといった具合に8ビット以外のビット数で表すモノクロ画像、或いは各画素における各色成分(RGB/Lab/YCrCb)を8ビットで表現するカラーの多値画像データである場合に適用することも可能である。また、画像を構成する各画素の状態等を表す多値情報である場合、例えば各画素の色を表す多値のインデックス値である場合にも適用できる。これらに応用する場合には、各種類の多値情報を後述するモノクロ画像データとすればよい。
【0018】
ステップS602において、当該画像データのタイル分割処理を行う。タイル分割処理とは、画像データをいくつかの矩形領域に分割し、その単位で後述する処理を続行する事である。本実施形態の場合のタイル分割時のタイルのサイズは、入力する画像データの解像度(画素数)に応じて決定した。すなわち、比較的廉価なデジタルカメラ等で撮像した画像は、画素数が少なく、逆に、高級なデジタルカメラで撮像した画像はその画素数が多い。画素数がもともと少ない画像は、多い画像よりももともと画質が低めであるので、タイルサイズは大きくし、それ以上の画質劣化を避けるべきである。逆に、画素数が多い画像はもともと高い画質である点、及び、画素数が多いと符号化する際に多くのワークメモリ容量を必要賭する点に鑑み、タイルサイズを小さくして符号化するようにした。
【0019】
以上のようにして、タイルサイズを決定するが、このタイルサイズの決定方法は、入力した中間調画像のサイズ情報(PDLに記述されている)に従い、予め用意されたルックアップテーブルを参照して決定する方法、あるいは、予めタイルサイズを決定する関数を用意しておき、それをコールすることで実現する方法が考えられるが、いずれでも構わない。
【0020】
次に、ステップ603において、離散ウェーブレット変換を行う。以下に離散ウェーブレット変換後の画像データ(離散ウェーブレット変換係数)を示す。

Figure 2005020594
ここで、Y(2n),Y(2n+1)は離散ウェーブレット変換係数列であり、Y(2n)は低周波サブバンド、Y(2n+1)は高周波サブバンドである。また、上式においてfloor{X}はXを超えない最大の整数値を表す。この離散ウェーブレット変換を模式的に表わしたのが図7である。
【0021】
本変換式は一次元のデータに対するものであるが、この変換を水平方向、垂直方向の順に適用して二次元の変換を行うことにより図8に示す如く、周波数毎のサブバンドデータを得ることができる。次にLLサブバンドを、同様に4つのサブバンドに分け(図9)、その中のLLサブバンドをまた4サブバンドに分け(図10)、合計10サブバンドを作る。10個のサブバンドそれぞれに対して、図10の様にHH1,HL1,…と呼ぶことにする。
【0022】
ここで、各サブバンドの名称における数字を、それぞれのサブバンドのレベルとする。つまり、レベル1のサブバンドは、HL1,HH1,LH1、レベル2のサブバンドは、HL2,HH2,LH2である。なおLLサブバンドは、レベル0のサブバンドとする。LLサブバンドはひとつしかないので添字を付けない。またレベル0からレベルnまでのサブバンドを復号することで得られる復号画像を、レベルnの復号画像と呼ぶ。復号画像は、そのレベルが高い程解像度は高い。10個のサブバンドの変換係数は、いったん不図示のバッファに格納されLL,HL1,LH1,HH1,HL2,LH2,HH2,HL3,LH3,HH3の順に、つまり、レベルが低いサブバンドからレベルが高いサブバンドの順に、係数量子化が行われる。
【0023】
ステップS604において、係数量子化を行う。ただし、この量子化は特に実施しなくてもよい。係数量子化とは、各サブバンドの変換係数を各周波数成分毎に定めた量子化ステップで量子化し、量子化後の値(係数量子化値)を生成する。係数値をX、この係数の属する周波数成分に対する量子化ステップの値をqとするとき、量子化後の係数値Q(X)は次式によって求めるものとする。
【0024】
Q(X)=floor{(X/q)+0.5}
次に、ステップS605において、これら係数量子化値をエントロピー符号化を行う。
【0025】
エントロピー符号化は、EBCOT(Embedded Block Coding with Optimized Truncation)を用い、前記離散ウェーブレット変換後の画像を、まず、図11に示されているように、入力された係数量子化値の集まりである各サブバンドが矩形(コードブロックと呼ぶ)に分割される。なお、このコードブロックの大きさには、2m×2n(m、nは2以上の整数)等が設定される。また、このコードブロックは、ビットプレーン分割を行い、あるビットプレーンにおける各ビットは、ある分類規則に基づいて3種類に分けられて、同じ種類のビットを集めたコーディングパスが3種類生成される。入力された係数量子化値は、ここで得られたコーディングパスを単位として、エントロピー符号化である二値算術符号化が行われ、エントロピー符号化値が生成される。
【0026】
以上、実施形態における画像の符号化処理を説明した。次に、図3のフローチャートを用いて、本システムにおける説明を行う。
【0027】
まず、ステップS300のページ生成についての説明を行う。図2のホストコンピュータなどの外部機器2001よりホストI/F部2004にステップS301においてPDL(ページ記述言語)により画像データが入力されてくる。
【0028】
ステップS302において、ステップS301で入力したPDLを解析し、バンド符号化表現の作成を行う。ここでいうバンド符号化表現とは、バンド単位に分割された「ビットマップ」、「ランレングス」、「台形」、「ボックス」、「高速境界符合化されたビットマップ」などの描画オブジェクトと背景パターン、および、それらをラスタメモリに描画する際の描画論理の総称である。
【0029】
次に、ステップS303において、圧縮ページ作成の処理を行い、RAM2010に順次記憶する。ステップS304では、この記憶された圧縮データを順次復号して印刷処理を行う。注意したいのは、圧縮処理と印刷処理は、同期しておらず、印刷処理では既に圧縮されたデータを、プリンタエンジンの処理速度に間に合うように復号処理しているのに対し、圧縮処理ではRAMの容量が許す限りは順次圧縮するものである。
【0030】
以下、圧縮ページ作成処理の詳細を図4のフローチャートを用いて説明する。
【0031】
先ず、ステップS401において、RAM2010内にワークメモリの獲得を行う。ここでワークメモリとは、被圧縮データを格納するための領域のことである。次いで、ステップS402において、バンド番号を示す変数“N”(RAM2010に確保、もしくはCPUのレジスタを使用する)を“1”で初期化する。
【0032】
ただしNは、整数値で、1≦N≦N_MAX を満たすものとする。また、N_MAXは、1 ≦ N_MAX を満たす整数値であり、1ページをバンドに分割した際の最大バンド数である。
【0033】
次にステップS403において、バンド番号Nが
N ≦ N_MAX
を満たすかどうかを調査する。すなわち、1ページの最後のバンドに対する圧縮符号化が完了したか否かを判断する。
【0034】
もし、N≦N_MAX を満たすなら、ステップS404にすすみ、N≦N_MAXを満たさないなら、1ページ分の処理が完了したものとし、本処理を終える。
【0035】
ここでは、N≦N_MAX を満たす場合、すなわちステップS404に進んだ場合について説明する。ステップS404において、レンダリング処理を行う。レンダリング処理とは、図3のステップS302で作成したバンド符号化表現の構成されているオブジェクト構成(例えば、文字、イメージ、図形など)の種別を解析し、図4のステップ401で獲得したワークメモリへビットマップ化して格納することである。
【0036】
次にステップS405にすすみ、圧縮処理を行う。ここで圧縮処理とはステップS401のワークメモリにステップS404でレンダリングしたバンドデータに対して圧縮処理を行い、図2に示すRAM2010の一部に存在する不図示のページメモリへ格納することを指すものとする。この符号化処理は前述した図6のフローチャートの符号化処理を用いる。この際、図4のステップS404のレンダリング結果からレンダリングされたラスタデータの解像度を獲得し、その解像度を基に図6のステップS602のタイル分割のサイズを決定するものとする。また、離散ウェーブレット変換後のLLサブバンドのサイズに制限が加えられている場合には、そのサイズから離散ウェーブレット変換の回数を重視する場合には、そこから逆算してタイル分割のサイズを決定してもよいものとする。
【0037】
次にステップ407において、バンド番号“N”を次のバンドを指し示すようにするため“N”を“1”だけインクリメントし、ステップS403に戻る。
【0038】
以上の処理を1ページ分処理すると、本処理を終え、図3のステップS303に戻ることになる。
【0039】
次に、図3におけるステップS304の印刷処理を図5のフローチャートに従って説明する。
【0040】
先ず、ステップS501において、バンド番号を示す変数“N”を“1”で初期化する。
ただし変数Nは、整数値で、
1≦N≦N_MAX を満たすものとする。また、N_MAXは1 ≦N_MAX を満たす整数値であって、1ページを構成するバンド数である。
【0041】
次にステップS502において、バンド番号Nが、
N≦N_MAX
を満たすかどうかを判断する。すなわち、1ページ分の印刷処理が終了したか否かを判断する。
【0042】
もし、N≦N_MAX を満たすなら、処理はステップS503に進み、NバンドのShippingを行う。ここでShippingとは、バンドデータをビデオ信号に変換して図2のエンジン部2011へ出力する処理である。さらに図4の圧縮ページ作成処理において、既にこのページは圧縮されているので、伸長する必要がある。ここでは、伸長しながら同時にShippingが可能なものとする。ここでは、特に伸長の例は明記しないが、図6の符号化処理を復号化可能な処理系とする。
【0043】
次にステップS504にすすみ、バンド番号Nを次のバンド番号とするため、“1”だけインクリメント(増加)し、ステップS502へ戻る。
【0044】
以上の処理を1ページ分だけ行うことで、記録紙1枚上に画像を印刷することが可能になる。
【0045】
<他の実施形態の説明>
上記実施形態では、圧縮符号化する際のタイルサイズを、画像サイズに依存して決定するものとして説明したが、これに限定されるものではない。離散ウェーブレット変換の設定された回数に応じてタイルサイズを決定する場合であっても構わない。また、離散ウェーブレット変換の最低周波数成分LLのサイズに応じてタイルサイズを決定する場合であっても構わない。
【0046】
また、上記実施形態では、ページ記述言語によるラスタデータの生成の場合を扱ったが、読み取り装置などによりラスタデータを生成する場合であっても構わない。実施形態は、色空間変換を行う場合を扱ったが、色空間変換を行わない場合であっても構わない。更に、上記実施形態は、可逆符号化、非可逆符号化については言及していないが、そのどちらであっても構わない。上記実施形態では、モノクロデータの場合を扱ったが、カラーデータであっても構わない。また、実施形態では、ラスタデータの階調数には言及していないが、いくつであっても構わない。
更に、上記実施形態では、ラスタデータの解像度に応じてタイルサイズを変える場合を扱ったが、離散ウェーブレット変換の設定された回数に応じてタイルサイズを決定する場合であっても構わない。上記実施形態ではラスタデータの解像度に応じてタイルサイズを変える場合を扱ったが、離散ウェーブレット変換の最低周波数成分のサイズに応じてタイルサイズを決定する場合であっても構わない。また、実施形態では、離散ウェーブレット変換後に量子化を行う場合を扱ったが、量子化を行わない場合であっても構わない。上記実施形態では、ラスタデータの解像度が300dpi,600dpi,1200dpi,2400dpiの場合を扱ったが、上記以外の解像度であっても構わない。
【0047】
【発明の効果】
以上説明したように本発明によれば、離散ウェーブレット変換対象であるタイルサイズを、印刷データに基づいて動的に変更することで、メモリ消費量の削減と画質向上の両立を図ることが可能になる。
【図面の簡単な説明】
【図1】実施形態における印刷装置の断面構造図である。
【図2】図1における制御ユニット1001のブロック構成図である。
【図3】実施形態における印刷装置の全体処理手順を示すフローチャートである。
【図4】実施形態における圧縮処理手順を示すフローチャートである。
【図5】実施形態における印刷処理の手順を示すフローチャートである。
【図6】実施形態における符号化処理手順を示すフローチャートである。
【図7】離散ウェーブレット変換の処理内容を説明するための図である。
【図8】1回目の離散ウェーブレット変換後のタイルの状態を示すブロック図である。
【図9】2回目の離散ウェーブレット変換後のタイルの状態を示すブロック図である。
【図10】3回目の離散ウェーブレット変換後のタイルの状態を示すブロック図である。
【図11】符号化する際のCodeBlock及びSubbandを示す図である。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technique for printing based on print data received from an external device such as a host computer.
[0002]
[Prior art]
Conventionally, in an image forming apparatus called a page printer such as a laser beam printer, image data is formed by holding raster data for one page on a raster memory. Raster data as such an image processing apparatus handles not only text but also all kinds of images from simple figures to images such as photographs.
[0003]
In addition, these image forming apparatuses have recently improved in resolution. For example, in order to create one page of A4 size at a resolution of 600 dpi, a memory of 4 MBytes is required. In addition, the resolution tends to increase more and more, and the gradation represented by 2 gradations (1 bit) per pixel has been changed from 16 gradations (4 bits) to 256 gradations (8 bits). It is getting better and more and more memory is needed. In recent years, color is often handled, and in the case of YMCK space, four planes are further required compared to monochrome, and the memory size has become enormous.
[0004]
In order to suppress an increase in cost due to such an increase in memory, various memory saving technologies have been proposed. For example, instead of having raster data for one page on the raster memory as it is, the raster data is divided into bands and the raster data is encoded using various encoding methods in band units to save memory. Examples of this encoding method include an encoding method using color space conversion, two-dimensional discrete wavelet conversion, entropy encoding, and the like. Tiling processing is performed before executing the discrete wavelet transform of this encoding method, and the discrete wavelet transform is used for each tile.
[0005]
[Problems to be solved by the invention]
However, various images are drawn on the raster data and are formed at various resolutions. For example, a printing apparatus such as a laser printer can print at various resolutions such as 300 dpi, 600 dpi, 1200 dpi, and 2400 dpi with a single printing apparatus. In these images and resolutions, when encoding using the color space conversion, the discrete wavelet transform, and the entropy encoding means, if processing is performed with uniform parameters for all the images, Accordingly, processing such as encoding efficiency and image quality may be inefficient. For example, when the tile division size is set to be large in order to improve the image quality, the memory usage of the system may increase depending on the system, and the load on the system may increase. Also, when printing high resolution raster data and performing tile division at the same size as when printing low resolution raster data, the tile division size is reduced, the number of tile divisions is increased, and distortion between tiles is increased. May appear.
[0006]
The present invention has been made in view of such problems, and is a technique for achieving both reduction in memory consumption and improvement in image quality by dynamically changing the tile size, which is an object of discrete wavelet transformation, based on print data. Is to provide.
[0007]
[Means for Solving the Problems]
In order to solve this problem, for example, a printing apparatus of the present invention has the following configuration. That is,
A printing device that prints an image on a predetermined recording medium based on print data received from a host device,
Print image data based on the received print data is divided into tile units, compressed and encoded by wavelet transform, and sequentially stored in a predetermined storage device;
Printing means for sequentially decoding and printing the encoded data stored in the storage device,
The encoding means includes adjusting means for adjusting the tile size to be encoded in accordance with the size of print image data to be printed.
[0008]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
[0009]
<Description of device configuration>
FIG. 1 is a cross-sectional view showing the internal structure of a laser beam printer (hereinafter abbreviated as LBP) applied to the present embodiment. This LBP is a registration of character patterns and fixed forms (form data) from a data source (not shown). Etc. can be registered.
[0010]
In this figure, reference numeral 1000 denotes an LBP main body, which inputs and stores character information (character code), form information, macro instructions, etc. supplied from an externally connected host computer (2001 in FIG. 2). A corresponding character pattern, form pattern, or the like is created in accordance with the information, and an image is formed on a recording sheet as a recording medium. Reference numeral 1012 denotes an operation panel on which switches for operation and an LED display are arranged. Reference numeral 1001 denotes a printer control unit that controls the entire LBP 1000 and analyzes character information supplied from a host computer. The control unit 1001 mainly converts character information into a video signal having a corresponding character pattern and outputs the video signal to the laser driver 1002.
[0011]
The laser driver 1002 is a circuit for driving the semiconductor laser 1003, and switches on and off the laser light 1004 emitted from the semiconductor laser 1003 in accordance with the input video signal. A laser 1004 is swung left and right by a rotary polygon mirror (polygon mirror) 1005 and scans the electrostatic drum 1006. As a result, an electrostatic latent image of a character pattern is formed on the electrostatic drum 1006. This latent image is developed by the developing unit 1007 around the electrostatic drum 1006 and then transferred to the recording paper. A cut sheet is used as the recording paper. The cut sheet recording paper is stored in a paper cassette 1008 mounted on the LBP 1000 and is taken into the apparatus by the paper feed roller 1009 and the transport rollers 1010 and 1011, and is stored in the electrostatic drum 1006. Supplied.
[0012]
FIG. 2 mainly shows the internal configuration of the control unit 1001 and the connection relationship between the control unit 1001 and an external device 2001 such as a host computer and the printer engine 2011 (see FIG. 1).
[0013]
In the drawing, reference numeral 2003 denotes an address and data bus, 2004 denotes a host I / F including a buffer unit, and 2005 denotes a CPU that controls the control unit 1001 and the LBP 1000 as a whole. ROM that stores programs executed by the CPU 2005, font data, and the like, 2007 is a DMA unit controlled by the CPU 2005, 2008 is a panel unit, and 2009 is an output buffer unit for storing data to be sent to the engine 2011 An I / F circuit unit 2010 includes a reception buffer for storing received data, a RAM used for developing image data, and a RAM used as a work area for the CPU 2005.
[0014]
In the above configuration, the resolution at the time of printing is changed by controlling the rotation speed R of the rotary polygon mirror 1005 and the clock frequency F when reading image data from the laser driver 1002 and the RAM 2010. However, since the resolution change itself is publicly known, detailed description thereof is omitted here.
[0015]
<Description of encoding>
Based on the print data received from the external device 2001, for example, a print image for each band is generated, and then the image data is compressed and encoded. This band-by-band compression is performed over a plurality of pages as long as the RAM capacity permits. On the other hand, when printing, the compressed data of the band of the existing page is decompressed and output to the engine 2011. The encoding described below is for this band-by-band compression process.
[0016]
The band-by-band encoding process in the embodiment will be described with reference to the flowchart of FIG.
[0017]
First, in step S601, color space conversion processing is performed. This color conversion process may be omitted when the apparatus of the embodiment is a monochrome printer as shown in FIG. In this case, the image data to be encoded in the image is 8-bit monochrome image data. However, a monochrome image represented by a number of bits other than 8 bits such as 4 bits, 10 bits, and 12 bits for each pixel, or a color multivalued image that represents each color component (RGB / Lab / YCrCb) in each pixel by 8 bits. It is also possible to apply when it is data. Further, the present invention can be applied to multi-value information representing the state of each pixel constituting an image, for example, multi-value index value representing the color of each pixel. When applied to these, each type of multi-value information may be monochrome image data to be described later.
[0018]
In step S602, tile division processing of the image data is performed. Tile division processing is to divide image data into several rectangular areas and continue the processing described later in units of the division. In the present embodiment, the tile size at the time of tile division is determined according to the resolution (number of pixels) of the input image data. That is, an image captured by a relatively inexpensive digital camera has a small number of pixels, and conversely, an image captured by a high-grade digital camera has a large number of pixels. An image with a small number of pixels is originally lower in image quality than a large image, so the tile size should be increased to avoid further image quality degradation. On the other hand, in view of the fact that an image with a large number of pixels originally has high image quality and that a large number of pixels requires a large amount of work memory, encoding is performed with a small tile size. I did it.
[0019]
The tile size is determined as described above. This tile size determination method refers to a lookup table prepared in advance according to the input halftone image size information (described in the PDL). A method of determining or a method of preparing a function for determining a tile size in advance and calling it can be considered, but either method may be used.
[0020]
Next, in step 603, discrete wavelet transform is performed. The image data (discrete wavelet transform coefficient) after the discrete wavelet transform is shown below.
Figure 2005020594
Here, Y (2n) and Y (2n + 1) are discrete wavelet transform coefficient sequences, Y (2n) is a low-frequency subband, and Y (2n + 1) is a high-frequency subband. In the above formula, floor {X} represents the maximum integer value not exceeding X. FIG. 7 schematically shows the discrete wavelet transform.
[0021]
This conversion formula is for one-dimensional data. By applying this conversion in the order of horizontal and vertical directions and performing two-dimensional conversion, subband data for each frequency can be obtained as shown in FIG. Can do. Next, the LL subband is similarly divided into four subbands (FIG. 9), and the LL subband is divided into four subbands (FIG. 10), so that a total of 10 subbands are formed. Each of the 10 subbands is called HH1, HL1,... As shown in FIG.
[0022]
Here, the number in the name of each subband is the level of each subband. That is, the level 1 subbands are HL1, HH1, and LH1, and the level 2 subbands are HL2, HH2, and LH2. The LL subband is a level 0 subband. Since there is only one LL subband, no subscript is added. A decoded image obtained by decoding subbands from level 0 to level n is referred to as a level n decoded image. The higher the level of the decoded image, the higher the resolution. The transform coefficients of the 10 subbands are temporarily stored in a buffer (not shown), and in the order of LL, HL1, LH1, HH1, HL2, LH2, HH2, HL3, LH3, and HH3, that is, the levels from the lower level subbands Coefficient quantization is performed in order of higher subbands.
[0023]
In step S604, coefficient quantization is performed. However, this quantization need not be particularly performed. In the coefficient quantization, the transform coefficient of each subband is quantized in a quantization step determined for each frequency component, and a value after quantization (coefficient quantization value) is generated. When the coefficient value is X and the quantization step value for the frequency component to which the coefficient belongs is q, the quantized coefficient value Q (X) is obtained by the following equation.
[0024]
Q (X) = floor {(X / q) +0.5}
Next, in step S605, these coefficient quantized values are entropy encoded.
[0025]
Entropy encoding uses EBCOT (Embedded Block Coding with Optimized Truncation), and the image after the discrete wavelet transform is first set of input coefficient quantized values as shown in FIG. The subband is divided into rectangles (called code blocks). The size of this code block is set to 2m × 2n (m and n are integers of 2 or more). Further, this code block is divided into bit planes, and each bit in a certain bit plane is divided into three types based on a certain classification rule, and three types of coding paths that collect the same type of bits are generated. The input coefficient quantization value is subjected to binary arithmetic coding, which is entropy coding, with the coding pass obtained here as a unit, and an entropy coded value is generated.
[0026]
The image encoding process in the embodiment has been described above. Next, the system will be described with reference to the flowchart of FIG.
[0027]
First, the page generation in step S300 will be described. In step S301, image data is input from the external device 2001 such as the host computer shown in FIG. 2 to the host I / F unit 2004 in PDL (page description language).
[0028]
In step S302, the PDL input in step S301 is analyzed to create a band coded expression. Band-coded representations here refer to drawing objects such as "bitmaps", "run lengths", "trapezoids", "boxes", and "bitmaps with high-speed boundary encoding" divided into bands. A generic term for patterns and drawing logic when drawing them in raster memory.
[0029]
Next, in step S <b> 303, a compressed page creation process is performed and sequentially stored in the RAM 2010. In step S304, the stored compressed data is sequentially decoded to perform printing processing. It should be noted that the compression process and the print process are not synchronized. In the print process, the already compressed data is decoded so as to meet the processing speed of the printer engine. As long as the capacity of the file permits, the compression is performed sequentially.
[0030]
Details of the compressed page creation process will be described below with reference to the flowchart of FIG.
[0031]
First, in step S401, work memory is acquired in the RAM 2010. Here, the work memory is an area for storing compressed data. In step S402, a variable “N” indicating the band number (secured in the RAM 2010 or using a CPU register) is initialized with “1”.
[0032]
However, N is an integer value and satisfies 1 ≦ N ≦ N_MAX. N_MAX is an integer value that satisfies 1 ≦ N_MAX, and is the maximum number of bands when one page is divided into bands.
[0033]
Next, in step S403, the band number N is N ≦ N_MAX.
Investigate whether it meets the requirements. That is, it is determined whether or not the compression encoding for the last band of one page is completed.
[0034]
If N ≦ N_MAX is satisfied, the process proceeds to step S404. If N ≦ N_MAX is not satisfied, it is assumed that the processing for one page has been completed, and this processing ends.
[0035]
Here, a case where N ≦ N_MAX is satisfied, that is, a case where the process proceeds to step S404 will be described. In step S404, a rendering process is performed. The rendering process is an analysis of the type of object configuration (for example, character, image, graphic, etc.) that is configured in the band coded representation created in step S302 of FIG. 3, and the work memory acquired in step 401 of FIG. It is to make a bitmap and store.
[0036]
In step S405, compression processing is performed. Here, the compression process means that the band data rendered in step S404 is compressed in the work memory in step S401 and stored in a page memory (not shown) existing in a part of the RAM 2010 shown in FIG. And This encoding process uses the encoding process shown in the flowchart of FIG. At this time, it is assumed that the resolution of the raster data rendered is obtained from the rendering result of step S404 in FIG. 4, and the tile division size in step S602 in FIG. 6 is determined based on the resolution. In addition, when the size of the LL subband after the discrete wavelet transform is limited, if the number of the discrete wavelet transform is emphasized from the size, the size of the tile division is determined by calculating backward from there. It may be.
[0037]
Next, in step 407, “N” is incremented by “1” to indicate the band number “N” to the next band, and the process returns to step S403.
[0038]
When the above process is performed for one page, the present process is terminated and the process returns to step S303 in FIG.
[0039]
Next, the printing process in step S304 in FIG. 3 will be described with reference to the flowchart in FIG.
[0040]
First, in step S501, a variable “N” indicating a band number is initialized with “1”.
However, the variable N is an integer value,
It is assumed that 1 ≦ N ≦ N_MAX. N_MAX is an integer value satisfying 1 ≦ N_MAX and is the number of bands constituting one page.
[0041]
Next, in step S502, the band number N is
N ≦ N_MAX
Judge whether to satisfy. That is, it is determined whether or not the printing process for one page has been completed.
[0042]
If N ≦ N_MAX is satisfied, the process advances to step S503 to perform N-band shipping. Here, “shipping” is a process of converting band data into a video signal and outputting the video signal to the engine unit 2011 in FIG. Furthermore, in the compressed page creation process of FIG. 4, since this page has already been compressed, it needs to be expanded. Here, it is assumed that Shipping is possible at the same time while expanding. Here, an example of decompression is not specified, but the encoding process in FIG. 6 is a decoding-capable processing system.
[0043]
In step S504, the band number N is incremented (increased) by “1” to return to step S502.
[0044]
By performing the above processing for only one page, it is possible to print an image on one sheet of recording paper.
[0045]
<Description of other embodiments>
In the above embodiment, the tile size for compression encoding is described as being determined depending on the image size. However, the present invention is not limited to this. The tile size may be determined according to the set number of times of the discrete wavelet transform. Further, the tile size may be determined according to the size of the lowest frequency component LL of the discrete wavelet transform.
[0046]
In the above-described embodiment, the case of generating raster data using the page description language has been dealt with. However, it may be a case where raster data is generated by a reading device or the like. The embodiment has dealt with the case where color space conversion is performed, but may be a case where color space conversion is not performed. Furthermore, although the said embodiment does not mention lossless encoding and lossy encoding, either may be sufficient. In the above embodiment, the case of monochrome data has been dealt with, but it may be color data. In the embodiment, the number of gradations of the raster data is not mentioned, but any number is acceptable.
Furthermore, in the above embodiment, the case where the tile size is changed according to the resolution of the raster data has been dealt with. However, the tile size may be determined according to the set number of times of the discrete wavelet transform. In the above embodiment, the case where the tile size is changed according to the resolution of the raster data has been dealt with. However, the tile size may be determined according to the size of the lowest frequency component of the discrete wavelet transform. In the embodiment, the case where the quantization is performed after the discrete wavelet transform has been dealt with, but the case where the quantization is not performed may be used. In the above embodiment, the case where the resolution of raster data is 300 dpi, 600 dpi, 1200 dpi, and 2400 dpi has been dealt with, but other resolutions may be used.
[0047]
【The invention's effect】
As described above, according to the present invention, it is possible to achieve both reduction in memory consumption and improvement in image quality by dynamically changing the tile size that is a discrete wavelet transform target based on print data. Become.
[Brief description of the drawings]
FIG. 1 is a cross-sectional structure diagram of a printing apparatus according to an embodiment.
FIG. 2 is a block configuration diagram of a control unit 1001 in FIG.
FIG. 3 is a flowchart illustrating an overall processing procedure of the printing apparatus according to the embodiment.
FIG. 4 is a flowchart illustrating a compression processing procedure in the embodiment.
FIG. 5 is a flowchart illustrating a print processing procedure according to the embodiment.
FIG. 6 is a flowchart showing an encoding processing procedure in the embodiment.
FIG. 7 is a diagram for explaining processing contents of discrete wavelet transform;
FIG. 8 is a block diagram showing a state of a tile after a first discrete wavelet transform.
FIG. 9 is a block diagram showing a state of a tile after a second discrete wavelet transform.
FIG. 10 is a block diagram showing a state of a tile after a third discrete wavelet transform.
FIG. 11 is a diagram illustrating CodeBlock and Subband at the time of encoding.

Claims (6)

上位装置から受信した印刷データに基づき、所定の記録媒体上に画像を印刷する印刷装置であって、
受信した印刷データに基づく印刷イメージデータを、タイル単位に分割し、ウェーブレット変換することで圧縮符号化し、所定の記憶装置に順次格納する符号化手段と、
前記記憶装置に記憶された符号化データを順次復号して印刷する印刷手段とを備え、
前記符号化手段は、符号化対象となるタイルサイズを、印刷しようする印刷イメージデータのサイズに応じて調整する調整手段を含むことを特徴とする印刷装置。
A printing device that prints an image on a predetermined recording medium based on print data received from a host device,
Print image data based on the received print data is divided into tile units, compressed and encoded by wavelet transform, and sequentially stored in a predetermined storage device;
Printing means for sequentially decoding and printing the encoded data stored in the storage device,
The printing apparatus includes: an adjustment unit that adjusts a tile size to be encoded according to a size of print image data to be printed.
上位装置から受信した印刷データに基づき、所定の記録媒体上に画像を印刷する印刷装置であって、
受信した印刷データに基づく印刷イメージデータを、タイル単位に分割し、ウェーブレット変換することで圧縮符号化し、所定の記憶装置に順次格納する符号化手段と、
前記記憶装置に記憶された符号化データを順次復号して印刷する印刷手段とを備え、
前記符号化手段は、符号化対象となるタイルサイズを、印刷しようするウェーブレット変換回数に応じて調整する調整手段を含むことを特徴とする印刷装置。
A printing device that prints an image on a predetermined recording medium based on print data received from a host device,
Print image data based on the received print data is divided into tile units, compressed and encoded by wavelet transform, and sequentially stored in a predetermined storage device;
Printing means for sequentially decoding and printing the encoded data stored in the storage device,
The printing apparatus includes: an adjustment unit that adjusts a tile size to be encoded in accordance with the number of wavelet transforms to be printed.
上位装置から受信した印刷データに基づき、所定の記録媒体上に画像を印刷する印刷装置であって、
受信した印刷データに基づく印刷イメージデータを、タイル単位に分割し、ウェーブレット変換することで圧縮符号化し、所定の記憶装置に順次格納する符号化手段と、
前記記憶装置に記憶された符号化データを順次復号して印刷する印刷手段とを備え、
前記符号化手段は、符号化対象となるタイルサイズを、ウェーブレット変換後の最低周波数のサブバンドサイズに応じて調整する調整手段を含むことを特徴とする印刷装置。
A printing device that prints an image on a predetermined recording medium based on print data received from a host device,
Print image data based on the received print data is divided into tile units, compressed and encoded by wavelet transform, and sequentially stored in a predetermined storage device;
Printing means for sequentially decoding and printing the encoded data stored in the storage device,
The printing apparatus includes: an adjustment unit that adjusts a tile size to be encoded according to a subband size of a lowest frequency after wavelet transformation.
上位装置から受信した印刷データに基づき、所定の記録媒体上に画像を印刷する印刷装置の制御方法であって、
受信した印刷データに基づく印刷イメージデータを、タイル単位に分割し、ウェーブレット変換することで圧縮符号化し、所定の記憶装置に順次格納する符号化工程と、
前記記憶装置に記憶された符号化データを順次復号して印刷する印刷工程とを備え、
前記符号化工程は、符号化対象となるタイルサイズを、印刷しようする印刷イメージデータのサイズに応じて調整する調整工程を含むことを特徴とする印刷装置の制御方法。
A printing apparatus control method for printing an image on a predetermined recording medium based on print data received from a host apparatus,
An encoding process in which print image data based on received print data is divided into tile units, compressed by wavelet transform, and sequentially stored in a predetermined storage device;
A printing step of sequentially decoding and printing the encoded data stored in the storage device,
The method for controlling a printing apparatus, wherein the encoding step includes an adjustment step of adjusting a tile size to be encoded according to a size of print image data to be printed.
上位装置から受信した印刷データに基づき、所定の記録媒体上に画像を印刷する印刷装置の制御方法であって、
受信した印刷データに基づく印刷イメージデータを、タイル単位に分割し、ウェーブレット変換することで圧縮符号化し、所定の記憶装置に順次格納する符号化工程と、
前記記憶装置に記憶された符号化データを順次復号して印刷する印刷工程とを備え、
前記符号化工程は、符号化対象となるタイルサイズを、印刷しようするウェーブレット変換回数に応じて調整する調整工程を含むことを特徴とする印刷装置の制御方法。
A printing apparatus control method for printing an image on a predetermined recording medium based on print data received from a host apparatus,
An encoding process in which print image data based on received print data is divided into tile units, compressed by wavelet transform, and sequentially stored in a predetermined storage device;
A printing step of sequentially decoding and printing the encoded data stored in the storage device,
The method of controlling a printing apparatus, wherein the encoding step includes an adjustment step of adjusting a tile size to be encoded according to the number of wavelet transforms to be printed.
上位装置から受信した印刷データに基づき、所定の記録媒体上に画像を印刷する印刷装置の制御方法であって、
受信した印刷データに基づく印刷イメージデータを、タイル単位に分割し、ウェーブレット変換することで圧縮符号化し、所定の記憶装置に順次格納する符号化工程と、
前記記憶装置に記憶された符号化データを順次復号して印刷する印刷工程とを備え、
前記符号化工程は、符号化対象となるタイルサイズを、ウェーブレット変換後の最低周波数のサブバンドサイズに応じて調整する調整工程を含むことを特徴とする印刷装置の制御方法。
A printing apparatus control method for printing an image on a predetermined recording medium based on print data received from a host apparatus,
An encoding process in which print image data based on received print data is divided into tile units, compressed by wavelet transform, and sequentially stored in a predetermined storage device;
A printing step of sequentially decoding and printing the encoded data stored in the storage device,
The method for controlling a printing apparatus, wherein the encoding step includes an adjustment step of adjusting a tile size to be encoded according to a subband size of a lowest frequency after wavelet transform.
JP2003185385A 2003-06-27 2003-06-27 Printer and control method thereof Withdrawn JP2005020594A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003185385A JP2005020594A (en) 2003-06-27 2003-06-27 Printer and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003185385A JP2005020594A (en) 2003-06-27 2003-06-27 Printer and control method thereof

Publications (1)

Publication Number Publication Date
JP2005020594A true JP2005020594A (en) 2005-01-20

Family

ID=34184860

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003185385A Withdrawn JP2005020594A (en) 2003-06-27 2003-06-27 Printer and control method thereof

Country Status (1)

Country Link
JP (1) JP2005020594A (en)

Similar Documents

Publication Publication Date Title
JP5052569B2 (en) Image compression apparatus, image compression method, image expansion apparatus, image expansion method, image forming apparatus, computer program, and recording medium
US5552898A (en) Lossy and lossless compression in raster image processor
US7013050B2 (en) Image encoding apparatus and method, program code, and storage medium
US8452083B2 (en) Image processing apparatus, image processing method, and computer-readable medium
US8780414B2 (en) Image processing apparatus, image processing method, and computer-readable medium for image data compression
US6853466B1 (en) Image processing apparatus and method
US6847467B2 (en) Method and apparatus for low memory rendering
JP2006101010A (en) Image processing apparatus, image processing method, and program, and storage medium
JP2004242290A (en) Image processing apparatus and image processing method, image edit processing system, image processing program, and storage medium
US8335387B2 (en) Streak compensation in compressed image paths
MXPA04006233A (en) Raster image path architecture.
JP2004112695A (en) Image processing apparatus and processing method thereof
JP2009296590A (en) Image processing device and image processing method
US8284450B2 (en) Streak compensation in compressed image paths
US7245778B2 (en) Methods, devices and systems for compressing images
Dang Anderson et a
JP2005020594A (en) Printer and control method thereof
JP4678814B2 (en) Image processing method and apparatus
JP2005012790A (en) Method and device for forming halftone image from compressed image
JP2003204439A (en) Image coding apparatus and method therefor
JP5078199B2 (en) Image encoding apparatus and method, program code, and storage medium
JP2005063445A (en) Raster image processing
JP4093871B2 (en) Image forming apparatus, program, and storage medium
JP2006157371A (en) Apparatus and method of image processing, program, and information recording medium
JP2004112532A (en) Image processing apparatus, image reading apparatus, image forming apparatus, television camera, image outputting apparatus, information processing apparatus, program, and storage medium

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060905