説明

画像処理装置及びプリンタコントローラ

【目的】 与えられた圧縮画像データと他の圧縮画像データとを組み合わせて伸長するための画像処理装置であって、前記圧縮データ順次伸長するに際して所定のエリアの展開に係る情報を該エリアに続く次のエリアの展開まで保持する保持手段を有することを特徴とする画像処理装置。

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は画像処理装置に関する。
【0002】
【従来の技術】ワードプロセッサや、デスクトップパブリシングシステムなどによって作成される1ページの情報は、「文字」と、円や直線などの「図形」と、イメージスキャナなどで生成される「画像」の3種類に大別される。この例について図3を用いて説明する。図3の301はワードプロセッサや、デスクトップパブリシングシステムなどで、作られる1ページのデータを表示した例を示している。この「文字」「図形」「画像」は、302のようなコードとして次の処理に渡される。このとき、「画像」のコードとして、カラーの多値画像であればADCTと呼ばれる画像圧縮方式が、用いられることが多い。従来の手法では、コード化されたデータ302は、出力する際に、1ページの全てのエリアを確保したページメモリ303にラスタイメージとして展開される。302のように、2つの「画像」コードを含む場合でも、ページメモリを持っていることによって、1つのADCT処理ブロックが、第1の画像を展開した後に、第2の画像を展開することができる。「文字」や「図形」も、このページメモリに展開される。この1ページ分のデータをプリンタエンジンに送り、出力する。
【0003】
【発明が解決しようとする課題】しかしながらかかる上述の例のように、ページメモリを持つと、大量のメモリが必要である。プリンタエンジンが低速度であれば、ページメモリとして、ハードディスク装置などを用いることも可能であるが高価なものとなる。例えば、400DPIの解像度でC(シアン)、M(マゼンタ)、Y(イエロー)、K(ブラック)の4色で現像され、各色8ビットの階調をもつプリンタでは、A4サイズでおよそ60MByteのRAMが必要である。そこで、図3の304に示すような、1ページを横方向のセグメントに分割し、1セグメント分の大きさのバンドメモリによって、コードを展開するシステムが考えられる。これによれば、ページをセグメントに分けることで、メモリを小さくすることができる。しかし、図3で示しているように、1ページに複数の「画像」が含まれている場合には問題が生じ、従来は良好な処理が行えなかった。例えば図4において、注目しているセグメント404において、圧縮画像の伸長器が、図4の第1画像402を伸長する場合、(尚402中のa、b、c、・・・はADCT方式における8×8画素からなるブロックを意味している)a、b、cのブロックが順次伸長され、fまで伸長すると次は、gではなく第2画像404のjの部分を伸長しなければならない。しかしながら、伸長の途中でしかしながら、画像が第1画像から第2画像に変わるため、良好に伸長が行えないという問題が生じるという点が発明者により見い出された。
【0004】又、セグメントの境界と、圧縮コードを伸長した画像の小ブロックの境界とが一致していない場合には不都合があるという点も発明者により見い出された。即ちADCT方式などの画像圧縮方式では画像を8×8画素などの大きさのブロックごとに処理がなされる。もしこのブロックがセグメントの境界に一致していないと、2つのセグメントにまたがるブロックでは、次のセグメントにかかる部分のデータの扱いが問題となる。
【0005】本発明はかかる問題を全て或いは個々に解決した画像処理方法及び装置を提供することを目的とする。
【0006】又本発明は、複数の画像を示す圧縮データを良好に再生することが出来る画像処理方法及び装置を提供することを他の目的とする。
【0007】又本発明は2次元符号化された画像データを良好に再生することが出来る画像処理方法及び装置を提供することを更に他の目的とする。
【0008】又本発明は少ない容量のプリンタ用インターフェースを提供することを更に他の目的とする。
【0009】又本発明は新規な機能を有するプリンタ用インターフェースを提供することを更に他の目的とする。
【0010】又本発明は高品位の画像データを出力することが出来る画像処理装置を提供することを更に他の目的とする。
【0011】
【課題を解決するための手段】かかる目的を達成するため本発明の好ましい実施例においては、与えられた圧縮データと他のデータとを組み合わせて伸長するための画像処理装置であって、前記圧縮データ順次伸長するに際して所定のエリアの展開に係る情報を該エリアに続く次のエリアの展開まで保持する保持手段を有する画像処理装置が開示される。
【0012】
【実施例】以下説明する本発明の好ましい実施例では、ADCT画像圧縮伸長装置に、8×8画素ブロックの境界を検出する手段と、複数個のハフマンテーブル、複数個の量子化テーブル、複数個の同期合わせ用のFIFO、複数個のDC成分保存レジスタなどの各種のレジスタやバッファを持ち、これを伸長画像ごとに切替える手段を持つことで、1つの伸長器によって、1セグメントに含まれる複数の圧縮された画像データについての伸長を可能とする様にした装置が開示される。即ちこの装置においては1セグメントにかかる、複数の画像に関して、画像内の途中から途中までの圧縮データの伸長を可能としている。これにより、バンドメモリによる複数の圧縮された画像情報からラスタイメージの展開が可能となるがかかる実施例に本発明は限定されないものである。
【0013】以下図面を用いて詳述する。
【0014】図3は、本発明の一実施例のシステムの動作を説明するための図面であり、301はワードプロセッサやDTPシステムなど、コンピュータ上で、編集している1ページの情報を示している。コンピュータ内部ではかかる1ページ分の画像情報は302に示すようなコードとして扱われている。コンピュータ内部で扱うコードとさらにプリンタに出力するためのコードとが、違っている場合も多いが、ここでは、同じものとして説明をする。本発明は上述した違っている場合、同じものである場合、いずれにも適用可能である。コード302では301にある各要素を示す記述がある。コード302に示された例について説明する。まず描画すべき色がRGB(0、0、0)によって黒を表わし、Circle(600、300、100)で円を描画することを表わしている。Image(…ADCT)data(ff、ee、…)は、ADCT方式で圧縮された画像データであり、そのデータを示している。本実施例では例えば上述した様なコード情報を、304のイメージ展開システムによって、ラスタイメージとして展開し、プリンタエンジンに転送し、305のようなプリントアウトを得る。
【0015】図1は本発明の一実施例のラスタイメージ展開システムのブロック図である。101のI/Fにより、コンピュータ側から、コードデータを受けとり、1ページ分のコードデータは一旦、全て104のRAMに格納される。102に示すROMにはコードデータをラスタイメージに展開するためのプログラムと文字のフォントデータが格納されている。RAM104に格納されているデータの中で「文字」と「図形」を示すコマンドについては、103に示すCPUがROM102のプログラムによって106のバンドメモリ上にラスターイメージ展開を行う。一方RAM104に格納されているデータの中で圧縮画像のコードは、105のADCT伸長器によって、ラスタイメージに戻され、106のバンドメモリに展開される。1セグメント分の展開が終了したら、ラスタイメージを108のプリンタエンジンにインターフェース107を介して転送し、実際にプリントを行い次にセグメントの展開を行う。105のADCT処理ブロックの内部は図2のようになっている。
【0016】図2において201はCPU103とのデータのやり取りを行うインターフェース、202はハフマンデコード/エンコードを行うブロック、203はかかるハフマンデコード/エンコードのためのレジスタ、バッファ、204はハフマンデコードのためのハフマンテーブルを格納しておく部分、205はハフマンデコードされたデータをストアするFIFO、206はハフマンデコードされたデータを逆量子化する逆量子化器、207はかかる逆量子化のために用いられるレジスタ、バッファ、208は逆量子化のために用いられる量子化テーブルを格納しておく部分、209はIDCT(Invert Discrate Cosine Transform)を行うブロック、210はかかるIDCTを行うためのレジスタ、バッファ、211は伸長データをバンドメモリに格納するためのインターフェース、212は本実施例におけるDCTブロック(8画素×8画素からなる)を検出し、図4における画像1、画像2の切り換点を判別するための8×8ブロック検出器、213はかかるブロックの区切りから画像1、画像2の切換を示す切換信号を発生する切換信号発生器である。
【0017】尚図2に示す各ブロックは上述の様な復号化のための機能だけではなく、符号化のための機能も有している。したがって図2においては211から201のブロックへデータを転送すれば圧縮動作も行える。尚、説明が前後するが本実施例におけるプリンタは例えばインクジェット記録を行うプリンタ、好ましくはVSPにおいて知られる様な膜沸騰により液滴を吐出するプリンタであってもよいし、又電子写真方式のプリンタであってもよい。
【0018】プリンタとして複走査方向に所定の幅に並べられた複数記録エレメントを使用しかかる複数記録エレメントを主走査方向に移動させて一画面分の画像を記録するプリンタを用いる場合には前述のバンドメモリの幅を前記複数記録エレメントの幅よりも大きくすればよい。
【0019】次に本発明の実施例の動作について説明する。
【0020】図4に示すようにページ内に2つの「画像」がある場合について、図2の動作を説明する。201のI/Fは図1の104のRAMから、図4 402に示すimage1のaの部分に相当するような、ハフマンエンコードされているデータを取り出す。202のハフマン復号化器では、デコードをおこなう。このとき、204のハフマンテーブルを参照するが、現在は402に示す画像1のデコードを行うためテーブル204の0番を使う。このテーブルデータはデコードする画像ごとに異なり、あらかじめCPUによって設定されている。またデコード時に使われるレジスタやバッファは、レジスタ、バッファ203の0番の部分を使用する。即ち、例えばADCT方式で符号化される場合には各ブロックの直交変換後のDC成分はDPCM圧縮してハフマンエンコードされている。ハフマンデコーダ202によりもとの画像のDC成分とAC成分のデータが伸長され、FIFO205の0番に入る。逆量子化器206では、FIFO205に溜っているデータを読みだし、AC成分のランレングスのデコードの後に、テーブル208に記憶されている量子化テーブルに従って、系数をかける。このときの量子化テーブルは0番を使うが、このテーブルも画像1、画像2で同じとは限らず異なるテーブルを用い、あらかじめCPUによって設定されている。また作業用のレジスタやバッファは、207の0番を使用する。次に、209のIDCT(逆ディスクリートコサイン変換)器では逆量子化器の出力である8×8の2次元の空間周波数データをもとの画像データに変換する。ここでも作業のためのレジスタやバッファは210の0番を使用する。そしてI/F211によって、伸長されたデータはバンドメモリ106へ出力される。また212のブロック検出器は、8×8のブロックの境界を検出している。現在伸長している画像が、セグメントの終わりになったかどうかを判断している。すなわち、図4のfのブロックを伸長したら、次は、g、h、i…ではなく403の第2画像のjを伸長しなければならない。したがって212のブロック検出器からのブロック境界信号を計数して切替え信号発生器213はセグメントの境界部分では、各部のレジスタやテーブルの番号を0番から1番へ変更する信号を出す。このとき既に、ハフマン符号化器などでは、現在のセグメントの次のセグメントのデータのデコードを始めてしまっているが、切替え時点までの状態は、0番に保持されるため、画像2のデコードが、1のブロックが終了した時点で、0番にもどって、画像1の伸長処理を再開することができる。
【0021】次に画像2の圧縮画像データのj、kからlまでのブロックのデータが順次伸長され復号が行われる。
【0022】この場合、伸長に必要なパラメータは各レジスタやテーブル番号の1番にストアされる。
【0023】画像2の注目セグメント404の伸長が行われると次に注目セグメントが1バンド分変更され、再び前述の画像1の伸長処理が行われる。
【0024】かかる動作をくり返せば複数圧縮画像のデータをバンドメモリを用いて容易に伸長出来る。
【0025】又、ページ内の圧縮画像の配置される位置が、任意に設定されている場合には、伸長画像の8×8ブロックの境界が、セグメントの境界に一致していない場合がおこりうる。次にかかる場合でも良好な処理を行うことが出来る実施例について図5以降を用いて説明する。かかる実施例においては図2に示した実施例と構成は共通している。図5の501は現在展開が行なわれているセグメントを示し、502はこの次に展開がなされるセグメントを示している。画像1503は8×8のブロックとセグメントの境界が一致しており、画像2 504は8×8ブロックとセグメントの境界が一致していない場合を示している。画像2の中の505はセグメントにまたがるようなブロックを示しており、このようなブロックを伸長した場合、現在のセグメントからはみ出た部分のデータを保持するために、本実施例においてはバンドメモリ図1の大きさをセグメントの大きさより1ブロックの幅だけ、大きく設定し、セグメント境界を越えた部分のデータもそのまま、バンドメモリに書き込む。そして、次のセグメントを展開する処理に入る直前に、この1ブロック幅のデータを、バンドメモリの先頭部分にデータ複写する。ただし、8×8ブロック境界とセグメント境界が一致している圧縮画像データのみを伸長する場合には、このデータ複写を行なわない。図7はセグメントとバンドメモリの大きさを示す図である。図7R>7のようにバンドメモリは1ブロック幅すなわち8画素分の幅だけ、セグメントの大きさよりも多くメモリを設定しておく。図7の703は前述のフローの複写部分を示す図である。ブロックの境界とセグメントの境界が一致していない画像があると、コピーフラグがONになり、次のセグメントの展開に先だって、703の斜線部へデータがコピーされる。
【0026】このようにすることで、主走査方向に複数の画像が配置される場合の伸長動作を可能とするための、画像の途中から途中の伸長動作を可能とするために、同じ圧縮データを戻って2回伸長することなく、中断した伸長動作の状態を保持し、再開するような伸長装置を構成できる。
【0027】また本実施例ではADCT方式の圧縮方法を採ったので図2に示した各レジスタ、ハフマンテーブル、レジスタ、バッファ、量子化テーブルをストアするテーブルとしたが圧縮方式が異なれば各レジスタ等の構成は圧縮方式に応じて適宜変更する。例えば圧縮方式がベクトル量子化であり、復号用テーブルが画像によってことなるものである場合には、かかる画像に応じたパラメータをストアするレジスタを有するように構成すればよい。
【0028】また、以上の実施例では特にカラー画像の処理について述べているが、カラー画像の処理に関してはY,Cr,Cb等夫々の色成分に合わせて前述の各レジスタ、各テーブルの段数が増加することになる。
【0029】尚、説明が前後するが図5以降を用いて説明した実施例の動作について図6のフローチャートを用いて更に説明を行う。
【0030】かかる実施例においてはバンドメモリは前述した様に、図5の504のような画像でもセグメントを越えた部分のデータをメモリに保持できる。そして、1つのセグメントにかかる伸長を終えたら、バンドメモリのデータはプリンタエンジンへ送られ、次のセグメントの展開動作に入るが、このとき、プリンタ側へ送られるのは1ブロック幅の分は除いた大きさの部分すなわちセグメントと同じ大きさである。続いて、1ブロック幅の部分のデータは、703に示すように、バンドの先頭部分の斜線で示した部分に複写される。
【0031】これらを、図6のフローチャートで説明する。これは、前述の説明のように、コードデータが、図1R>1の104のRAMに格納されているものとして、ここからコードを取り出して、バンドメモリ106に展開する動作についてのものである。まずステップ602は1ブロック幅(8画素幅)のデータの複写をするかどうかの判断部分である。最初のセグメントについては複写を行なわないので、ステップ605へゆく、ステップ605はコードデータの取りだしを行なう。そして、取り出されたコードに従って、バンドメモリへの展開処理を行なう。コードが「文字」を表すものであれば、ステップ606の文字の展開を行ない、コードが「図形」を表すものであれば、ステップ607の図形の展開を行ない、「画像」を表すものであればステップ608の図形の展開を行なう。それぞれのコードはバンドメモリへラスタイメージとして展開されたら、ステップ611の判断部で、注目セグメントにかかるコードを全て展開したかを判断し、残っている分があればステップ605へ戻って動作を繰り返す。ここで、圧縮画像の展開に関しては、ステップ609の部分でブロックの境界とセグメントの境界が一致していない場合を判断し、もし一致していない場合はステップ610でコピーフラグを立てる。1つのセグメントにかかるデータを展開し終ったら、そのデータをステップ612で、プリンタエンジンへ転送する。そして、ステップ613で全てのセグメントについての動作が終えたかどうか、すなわち、1ページ分の展開を終えたかどうかの判断をおこなう。ここではまだ、第1セグメントの展開が終ったばかりであるから、ステップ602へもどって、動作を繰り返す。第2のセグメントに関してからは、前のセグメントの展開時にコピーフラグが立っている場合があり、この場合はステップ602の判断部でステップ603へ進む。これは、ブロックの境界とセグメントの境界が一致していない画像を展開し、セグメントをはみ出た部分の処理をせよという、コピーフラグ(図1の破線で示す)が立っている場合であり、はみ出た部分すなわち1ブロック幅のデータを、バンドの先頭に複写する動作を行なう。そしてステップ604でこのフラグをクリアして、ステップ605へ進み、第2セグメントに関してのコードの取り出しと展開を行なう。以上の動作をステップ613の判断部で1ページ分が終了するまで繰り返す。このように、フラグを設けることで、展開画像中にブロック境界とセグメント境界が不一致の画像が存在しない場合には、1ブロック幅データの複写動作を行なわずにすむ。
【0032】このようにすることで、主走査方向に複数の画像が配置される場合の伸長動作を可能とするための、画像の途中から途中の伸長動作を可能とするために、同じ圧縮データを、戻って2回伸長することなく、中断した伸長動作の状態を保持し、再開するような伸長装置を構成できる。
【0033】また、上記実施例では、常にバンドメモリ106の先頭と各セグメントの先頭が一致するような構成について述べたが、いわゆるリングバッファのようにしてもよい。この場合は、複写動作が不必要になる。バンドメモリとしてかかるリングバッファを用いた場合について図8を用いて説明する。図8のそれぞれは、バンドメモリ106でのデータの展開の様子である。点々の分はセグメントの大きさのメモリ領域を示し、白い部分はセグメントからはみ出た部分のメモリ容量、即ち1ブロック幅の部分を示している。まず801に示す最初のせぐめんとの展開時はバンドメモリの先頭が、セグメントの先頭と一致して、展開が行なわれる。次に、802では、先ほどの801で、最後の部分の1ブロック幅の部分の最上部(→)で示すをセグメントの先頭として、2番目のセグメントの展開を行なう。この場合、バンドメモリの終端は先頭と同じになっており、すなわちリングバッファの構成になっている。802に示されるように、この場合では、セグメントの大きさの部分が2つに分かれているように図示されるが、実際は連続してアクセスできる。さらに3番目のセグメントの展開時には803のような位置((→)で示す)をセグメントの先頭として展開がなされる。そして804の状態になったら次は801の状態にもどって、以下これを繰り返す。
【0034】このようなリングバッファ構成では、ブロック境界とセグメント境界が一致せず、セグメントをはみ出るブロックが存在しても、次のセグメントの展開をバンドメモリの先頭をずらすことで、良好な伸長処理が行える。
【0035】本発明はかかる実施例に限定されず、他の方法であっても図5に示す様な8×8ブロックとセグメントの境界の不一致を解決出来ればよい。
【0036】上述の例では図4に示す様に2つの画像が主走査方向に並んだ場合を例にとって説明したが、本発明はこれに限らず他の場合、主走査方向に3以上の複数画像が並んだ場合にも同様にて適用することが出来る。
【0037】バンドメモリはラスタイメージ展開と、プリンタエンジン出力を同時に行なうために、いわゆるダブルバッファ構成としてもよい。画像の圧縮方式は国際標準のJPEG方式のADCT方式を想定しているが、前述のようにこれに限るものではなく、他の符合化を用いてもよい。
【0038】以上説明した本実施例に依れば複数個の参照テーブルやレジスタやバッファなどにより、動作状態を保持する手段と画素ブロックの境界を検出し、伸長画像ごとに動作状態を切替える手段と、を持った圧縮画像データの伸長装置によって、限定された大きさのバンドメモリによって、複数の圧縮画像からなるページ情報を展開できる。
【0039】上記の実施例においては圧縮された複数の画像を伸長してバンド幅のメモリに展開する例について説明したが、本発明はこれに限らずページメモリに展開する場合でも同様に実施することができる。
【0040】
【発明の効果】以上説明した様に、本発明に依れば簡単な構成で複数の圧縮データを示す画像を良好に伸長できる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す、システムのブロック図。
【図2】画像伸長ブロックの内部ブロック図。
【図3】本実施例の動作を従来方法との対比を示す図。
【図4】1ページ内に2つの画像がある場合の配置図。
【図5】ブロックの境界とセグメントの境界を示す図。
【図6】本実施例の動作を説明するためのフローチャート。
【図7】セグメントとバンドメモリの大きさを示す図。
【図8】本発明の別の実施例を説明するための図。

【特許請求の範囲】
【請求項1】 与えられた圧縮データと他のデータとを組み合わせて伸長するための画像処理装置であって前記圧縮データを順次伸長するに際して所定のエリアの展開に係る情報を該エリアに続く次のエリアの展開まで保持する保持手段を有することを特徴とする画像処理装置。
【請求項2】 前記圧縮データはADCT方式により圧縮されたデータであることを特徴とする請求項1の画像処理装置。
【請求項3】 前記所定エリアはプリンタの印字バンド幅に応じて決められていることを特徴とする請求項1の画像処理装置。
【請求項4】 前記他のデータもADCT方式により圧縮されたデータであることを特徴とする請求項1の画像処理装置。
【請求項5】 前記所定のエリアは所定バンド幅であることを特徴とする請求項1の画像処理装置。
【請求項6】 コンピュータから、2次元符号化方法により符号化された画像データを受信する受信手段、前記受信手段により受信された画像データを伸長する伸長手段、前記伸長手段により伸長された画像データを記憶するバンドメモリであって前記2次元符号化方法において用いられる2次元ブロックよりも大きいバンドメモリ、前記バンドメモリに記憶された画像データをプリンタに出力する出力手段とを有することを特徴とするプリンタコントローラ。
【請求項7】 2次元符号化方法により符号化された画像を伸長する伸長手段;前記伸長手段により伸長された画像データを記憶するバンドメモリであって前記2次元符号化方法において用いられる2次元ブロックよりも大きいバンドメモリとを有することを特徴とする画像処理装置。
【請求項8】 前記2次元符号化方法はADCTであることを特徴とする請求項7記載の画像処理装置。
【請求項9】 更に前記バンドメモリに記憶された画像データをプリンタに供給する手段とを有することを特徴とする請求項7の画像処理装置。
【請求項10】 前記プリンタはインクジェットプリンタであることを特徴とする請求項7の画像処理装置。
【請求項11】 前記プリンタは膜沸騰により液滴を吐出するプリンタであることを特徴とする請求項10の画像処理装置。

【図1】
image rotate


【図2】
image rotate


【図3】
image rotate


【図4】
image rotate


【図5】
image rotate


【図6】
image rotate


【図7】
image rotate


【図8】
image rotate