(57)【要約】【課題】人工画像と自然画像とが混在する入力画像であっても、正確に綺麗な圧縮処理を可能とする。【解決手段】文書ファイルを解釈して写真画像をビットマップデータとして描画する写真画像描画処理手段と、写真画像描画処理手段において描画する写真画像が人工画像であるか自然画像であるかを判断する写真画像判別手段と、写真画像判別手段において判別情報をビットマップデータに展開する判別情報描画処理手段と、ビットマップデータと人工画像であるか自然画像であるかの判別情報とを記憶する画像記憶手段と、画像記憶手段により記憶されたビットマップデータを符号化する符号化手段と、符号化手段で符号化された符号を記憶する符号記憶手段と、符号化手段において自然画像である部分を非可逆圧縮する非可逆圧縮手段と、を備える。【選択図】        図２
2009272867.tif 000002
【特許請求の範囲】
【請求項１】
文書ファイルを解釈して写真画像をビットマップデータとして描画する写真画像描画処理手段と、
前記写真画像描画処理手段において描画する写真画像が、人工画像であるか自然画像であるかを判断する写真画像判別手段と、
前記写真画像判別手段において判別情報をビットマップデータに展開する判別情報描画処理手段と、
前記ビットマップデータと人工画像であるか自然画像であるかの判別情報とを記憶する画像記憶手段と、
前記画像記憶手段により記憶されたビットマップデータを符号化する符号化手段と、
前記符号化手段で符号化された符号を記憶する符号記憶手段と、
前記符号化手段において自然画像である部分を非可逆圧縮する非可逆圧縮手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記符号化手段は、１画素単位に可逆／非可逆符号化を切り替え符号化することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記符号化手段は、属性データとビットマップデータを辞書方式で可逆圧縮することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記符号化手段は、前記属性データとビットマップデータをランレングス方式で可逆圧縮することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
さらに、前記符号化手段は、
前記画像記憶手段に記憶されたビットマップデータと属性データを読み込む画像データ読み込み手段と、
前記画像データ読み込み手段から読み込まれたビットマップデータと属性データの画素のランレングスを求めるランレングス生成手段と、
前記ランレングス生成手段においてランレングスの色情報と計測する色情報との差を求める差分解析手段と、
前記ランレングス生成手段において前記差分解析手段に求めた差分が許容範囲であるかを判定するランレングス判定手段と、
前記ランレングス生成手段において前記ランレングス判定手段により許容範囲であると判定した場合、ランレングスを継続し、許容範囲でない場合は、ランレングスを中止するランレングス生成手段と、
前記ランレングス生成手段で求めたランレングスを符号化する符号化処理手段と、
を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記差分解析手段は、ランレングスの色情報と計測する色情報との色成分の差の合計を求め、前記ランレングス判定手段で判定することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記差分解析手段は、ランレングスの色情報と計測する色情報との色成分の差のＭＡＸ値を求め、前記ランレングス判定手段で判定することを特徴とする請求項５に記載の画像処理装置。
【請求項８】
前記差分解析手段は、ランレングスの色情報と計測する色情報との色差で、前記ランレングス判定手段で判定することを特徴とする請求項５に記載の画像処理装置。
【請求項９】
前記ランレングス判定手段は、ランレングスの色情報と計測する色情報とが不一致を起こした場合、許容されるランレングスかを判定するランレングス判定手段を有することを特徴とする請求項５に記載の画像処理装置。
【請求項１０】
文書ファイルを解釈して写真画像をビットマップデータとして描画する写真画像描画処理手段と、
前記写真画像描画処理手段において描画する写真画像が人工画像であるか、自然画像であるかを判断する写真画像判別手段と、
前記写真画像判別手段において判別情報をビットマップデータに展開して描画する判別情報描画処理手段と、
前記ビットマップデータと人工画像であるか自然画像であるか判別情報とを記憶する画像記憶手段と、
前記画像記憶手段により記憶されたビットマップデータを符号化する符号化手段と、
前記符号化手段で符号化された符号を記憶する符号記憶手段と、
前記符号化手段においては自然画像である部分を非可逆圧縮する非可逆圧縮手段と、
を備えることを特徴とする画像処理装置。
【請求項１１】
文書ファイルを解釈して写真画像をビットマップデータとして描画する写真画像描画処理手段と、
前記写真画像描画処理手段において描画する写真画像が人工画像であるか、自然画像であるかを判断する写真画像判別手段と、
前記写真画像判別手段において判別情報をビットマップデータに展開して描画する判別情報描画処理手段と、
前記ビットマップデータと人工画像であるか自然画像であるか判別情報とを記憶する画像記憶手段と、
前記画像記憶手段により記憶されたビットマップデータを符号化する符号化手段と、
前記符号化手段で符号化された符号を記憶する符号記憶手段と、
前記符号化手段においては自然画像である部分を強い量子化レベルで符号化する量子化手段と、
を備えることを特徴とする画像処理装置。
【請求項１２】
前記量子化手段は、１画素単位に量子化レベルを切り替え符号化することを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
画像記憶手段と符号記憶手段とを有する画像処理方法であって、
写真画像描画処理手段により文書ファイルを解釈して写真画像をビットマップデータとして描画する写真画像描画処理工程と、
写真画像判別手段により前記写真画像描画処理工程において描画する写真画像が人工画像であるか自然画像であるかを判断する写真画像判別工程と、
判別情報描画処理手段により前記写真画像判別工程において判別情報をビットマップデータに展開する判別情報描画処理工程と、
前記ビットマップデータと人工画像であるか自然画像であるかの判別情報とを前記画像記憶手段に記憶する画像記憶工程と、
符号化手段により前記画像記憶工程で記憶されたビットマップデータを符号化する符号化工程と、
前記符号記憶手段により前記符号化工程で符号化された符号を記憶する符号記憶工程と、
前記符号化工程において自然画像である部分を非可逆圧縮する非可逆圧縮工程と、
を含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関するものである。
【背景技術】
【０００２】
一般に、コンピュータで作成した文書をプリンタで出力する場合には以下の手順で処理される。
（１）文書データを複数の描画コマンド群へ変換する。
（２）プリンタドライバと言われるソフトウェアやプリンタコントローラ装置で描画コマンドを解析してラスタイメージを作成する。
（３）ラスタイメージに対し、色変換処理や擬似中間調処理などを施してプリンタ出力信号を作成する。
（４）印刷を実行する。
【０００３】
プリンタで画質が良好なカラー画像を出力するためには、自然画像（イメージ）、グラフィック、線画（細線）、文字など画像の種類によって異なる色処理や中間調処理が必要になる。すなわち、種々の画像種を含む画像を出力するためには、画像種毎に最適な画像処理を施す手段が必要になる。たとえば、特許文献１では、描画命令で記述された文書画像をビットマップイメージに展開するとともに、画像種を表す属性データをビットマップイメージに展開し、省メモリでかつ精度よく画像種を識別してラスター処理している。そして、上記（２）の描画コマンドを解析してラスタイメージを作成するときに生成されたＲＧＢデータは、６００ＤＰＩ時に約１００Ｍバイトの容量を持つために、大きなメモリを必要とする。
【０００４】
このために、このＲＧＢデータを何らかの圧縮方法で圧縮し、格納することが一般的である。この圧縮方法としては、非可逆方式であるＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）などの方法を使用するのが一般的である。しかし、ＪＰＥＧ圧縮を行う場合に、低品質、高圧縮率のパラメータを設定すると、文字等の濃度変化が大きい画像部周辺に、いわゆるモスキートノイズが発生し、画質が劣化してしまう。一方、高品質、低圧縮率のパラメータを設定すると、文字等の周辺部に現れるモスキートノイズは軽減する。
【０００５】
しかしながらこの場合は圧縮率が低いために、記憶デバイスに格納できる画像枚数が制限されたり、記憶デバイスの種類によっては、アクセススピードの制限に起因して一定時間内に処理可能なデータ量が制限されるために、システム全体としての生産性が落ちてしまうことが考えられる。 その解決方法として、特許文献２では、周波数変換（公報内では直交変換）された周波数変換係数から画像タイプを識別し、その識別結果に応じて（周波数係数を量子化する）量子化ステップを切り替えることによって圧縮効率と画質の向上を図っている。このような周波数変換係数や入力画像データから画像や係数分布の特徴を識別し適応量子化を行う圧縮方式は、他にもさまざまな方式が開示されている。
【０００６】
また、特許文献３では、 周波数変換（公報内では直交変換）された周波数変換係数から画像タイプを識別し、その識別結果に応じて（周波数係数を量子化する）量子化ステップを制限する制限処理を使用して画質の向上を図っている。また、特許文献４では、ＲＧＢデータを圧縮する時に属性データの値に基づいて圧縮方式を変更する方式が知られている。また、特許文献５においては、デバイスドライバーからプリンタへ転送するときに、ＰＤＬのコマンドで描画される写真画像描画コマンドのソース画像が自然画像であるのか、人工画像であるのかを判断し、圧縮方式を変更する方法が知られている。
【０００７】
【特許文献１】特許第３６３６８９１号公報
【特許文献２】特許第３２０５０２８号公報
【特許文献３】特開２００４−１１２３４５号公報
【特許文献４】特開２００１−１６９１２０号公報
【特許文献５】特許第４００１２６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記に示されるような特許文献２、３に開示されている技術にあっては、周波数帯域が大きい文字領域を圧縮するときに、ＤＣＴ（離散コサイン変換）係数の高周波数をできるだけ保存し、圧縮するために、圧縮率が低下する。また、正確に復号するには、各ＤＣＴ圧縮したブロックごとの量子化値もしくは、量子化タイプを符号などに入れ込まなければならず、圧縮率の低下とシステムの複雑さを招来させることになる。また、ブロック単位に量子化レベルが異なるために、たとえば図５２に示すように網点のブロックは文字部分が少ないために周波数帯域で判断できずに、文字領域と判断されず、量子化レベルが大きくなり、文字の劣化を招き、ブロック単位に量子化レベルが異なる場合、その判断にミスなどにより、画質が低下する。また、ブロック単位に量子化レベルが異なるために、たとえば図５３に示すようにブロック内部に写真画像とグラフィックス画像が混在するブロックでは特に判断を間違えやすい。特に、文字画像の鮮鋭さを求める場合、その文字に対しては基本的には可逆圧縮が望ましい。
【０００９】
また、前述した特許文献４、５においては、写真画像と文字画像を別の圧縮方式で圧縮するために、圧縮率の低下や、画質の劣化の問題が発生しないかもしれないが、写真画像と文字画像を別の方式で圧縮するために、最低２つの異なる方式の圧縮装置を必要とし、構成する回路のゲート規模を大きくしてしまう。写真画像と文字画像とを別の方式で圧縮するために、最低２つの異なる方式の圧縮装置を必要とし、構成する回路のゲート規模を大きくしてしまう。また、後画像処理装置（色変換＋階調処理装置など）においては、異なる圧縮方式で圧縮された符号を１画素ごとに同期を取りながら復号する必要があり、構成が複雑化するという問題点があった。
【００１０】
本発明は、上記に鑑みてなされたものであって、人工画像と自然画像とが混在する入力画像であっても、比較的簡単な構成で、かつ正確に綺麗な圧縮処理を可能とすることを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、文書ファイルを解釈して写真画像をビットマップデータとして描画する写真画像描画処理手段と、前記写真画像描画処理手段において描画する写真画像が、人工画像であるか自然画像であるかを判断する写真画像判別手段と、前記写真画像判別手段において判別情報をビットマップデータに展開する判別情報描画処理手段と、前記ビットマップデータと人工画像であるか自然画像であるかの判別情報とを記憶する画像記憶手段と、前記画像記憶手段により記憶されたビットマップデータを符号化する符号化手段と、前記符号化手段で符号化された符号を記憶する符号記憶手段と、前記符号化手段において自然画像である部分を非可逆圧縮する非可逆圧縮手段と、を備えることを特徴とする。
【００１２】
また、請求項２にかかる発明は、前記符号化手段は、１画素単位に可逆／非可逆符号化を切り替え符号化することを特徴とする。
【００１３】
また、請求項３にかかる発明は、前記符号化手段は、属性データとビットマップデータを辞書方式で可逆圧縮することを特徴とする。
【００１４】
また、請求項４にかかる発明は、前記符号化手段は、前記属性データとビットマップデータをランレングス方式で可逆圧縮することを特徴とする。
【００１５】
また、請求項５にかかる発明は、さらに、前記符号化手段は、前記画像記憶手段に記憶されたビットマップデータと属性データを読み込む画像データ読み込み手段と、前記画像データ読み込み手段から読み込まれたビットマップデータと属性データの画素のランレングスを求めるランレングス生成手段と、前記ランレングス生成手段においてランレングスの色情報と計測する色情報との差を求める差分解析手段と、前記ランレングス生成手段において前記差分解析手段に求めた差分が許容範囲であるかを判定するランレングス判定手段と、前記ランレングス生成手段において前記ランレングス判定手段により許容範囲であると判定した場合、ランレングスを継続し、許容範囲でない場合は、ランレングスを中止するランレングス生成手段と、前記ランレングス生成手段で求めたランレングスを符号化する符号化処理手段と、を備えることを特徴とする。
【００１６】
また、請求項６にかかる発明は、前記差分解析手段は、ランレングスの色情報と計測する色情報との色成分の差の合計を求め、前記ランレングス判定手段で判定することを特徴とする。
【００１７】
また、請求項７にかかる発明は、前記差分解析手段は、ランレングスの色情報と計測する色情報との色成分の差のＭＡＸ値を求め、前記ランレングス判定手段で判定することを特徴とする。
【００１８】
また、請求項８にかかる発明は、前記差分解析手段は、ランレングスの色情報と計測する色情報との色差で、前記ランレングス判定手段で判定することを特徴とする。
【００１９】
また、請求項９にかかる発明は、前記ランレングス判定手段は、ランレングスの色情報と計測する色情報とが不一致を起こした場合、許容されるランレングスかを判定するランレングス判定手段を有することを特徴とする。
【００２０】
また、請求項１０にかかる発明は、文書ファイルを解釈して写真画像をビットマップデータとして描画する写真画像描画処理手段と、前記写真画像描画処理手段において描画する写真画像が人工画像であるか、自然画像であるかを判断する写真画像判別手段と、前記写真画像判別手段において判別情報をビットマップデータに展開して描画する判別情報描画処理手段と、前記ビットマップデータと人工画像であるか自然画像であるか判別情報とを記憶する画像記憶手段と、前記画像記憶手段により記憶されたビットマップデータを符号化する符号化手段と、前記符号化手段で符号化された符号を記憶する符号記憶手段と、前記符号化手段においては自然画像である部分を非可逆圧縮する非可逆圧縮手段と、を備えることを特徴とする。
【００２１】
また、請求項１１にかかる発明は、文書ファイルを解釈して写真画像をビットマップデータとして描画する写真画像描画処理手段と、前記写真画像描画処理手段において描画する写真画像が人工画像であるか、自然画像であるかを判断する写真画像判別手段と、前記写真画像判別手段において判別情報をビットマップデータに展開して描画する判別情報描画処理手段と、前記ビットマップデータと人工画像であるか自然画像であるか判別情報とを記憶する画像記憶手段と、前記画像記憶手段により記憶されたビットマップデータを符号化する符号化手段と、前記符号化手段で符号化された符号を記憶する符号記憶手段と、前記符号化手段においては自然画像である部分を強い量子化レベルで符号化する量子化手段と、を備えることを特徴とする。
【００２２】
また、請求項１２にかかる発明は、前記符号化手段は、１画素単位に量子化レベルを切り替え符号化することを特徴とする。
【００２３】
また、請求項１３にかかる発明は、画像記憶手段と符号記憶手段とを有する画像処理方法であって、写真画像描画処理手段により文書ファイルを解釈して写真画像をビットマップデータとして描画する写真画像描画処理工程と、写真画像判別手段により前記写真画像描画処理工程において描画する写真画像が人工画像であるか自然画像であるかを判断する写真画像判別工程と、判別情報描画処理手段により前記写真画像判別工程において判別情報をビットマップデータに展開する判別情報描画処理工程と、前記ビットマップデータと人工画像であるか自然画像であるかの判別情報とを前記画像記憶手段に記憶する画像記憶工程と、符号化手段により前記画像記憶工程で記憶されたビットマップデータを符号化する符号化工程と、前記符号記憶手段により前記符号化工程で符号化された符号を記憶する符号記憶工程と、前記符号化工程において自然画像である部分を非可逆圧縮する非可逆圧縮工程と、を含むことを特徴とする。
【発明の効果】
【００２４】
本発明は、文書ファイルを解釈して写真画像をビットマップデータとして描画する際に、写真画像が人工画像であるか、自然画像であるかを判断し、ビットマップデータを符号化し、自然画像である部分を非可逆圧縮するため、人工画像と自然画像とが混在する入力画像であっても、正確に綺麗な圧縮処理を行なうことができるという効果を奏する。
【発明を実施するための最良の形態】
【００２５】
以下に添付図面を参照して、この発明にかかる画像処理装置および画像処理方法の最良な実施の形態を詳細に説明する。
【００２６】
（実施の形態）
以下、図面を参照して本発明の形態を説明する。図１は、この発明を実施した多色画像形成装置の機構部の構成例を示す図である。この多色画像形成装置において、符号１は像担持体であるベルト状の感光体であり、その感光体１は回転ローラ２、３により回動可能に支持され、その各回転ローラ２、３の駆動により矢示Ａ方向に回動される。感光体１の外周部には、帯電手段である帯電装置４、除電ランプＬ、感光体１用のクリーニングブレード１５Ａが配置されている。帯電装置４の下流位置には、光書込手段であるレーザ書き込みユニット５より発せられるレーザ光が照射される光書き込み部がある。
【００２７】
光書き込み部より下流位置には、複数の現像ユニット（現像手段）が切り換え自在に支持された多色現像装置６が配置されている。多色現像装置６は、収容するトナーの色毎に、イエロー現像ユニット、マゼンタ現像ユニット、シアン現像ユニットを備えている。多色現像装置６の上部には、黒色トナーを収容したブラック現像ユニット７が備えられている。
【００２８】
これらの各現像ユニットのいずれか１つが対応する色の現像タイミングに同期し、現像可能な位置に移動する。多色現像装置６は、円周上１２０度の回転によっていずれかの現像ユニットを選択する機能を有している。そして、これらの現像ユニットが稼動するときには、ブラック現像ユニット７は感光体１より離間した位置に移動する。その移動は、カム４５の回転により行なわれる。
【００２９】
レーザ書き込みユニット５は、図示しないレーザ光源から複数色の画像形成信号（書き込み情報）に応じたレーザ光を順次発生させ、ポリゴンモータ５Ａによって回転されるポリゴンミラー５Ｂを用いてそのレーザ光を周期的に偏向させ、ｆθレンズ５Ｃおよびミラー５Ｄなどを経て、帯電された感光体１の表面を走査してその表面に静電潜像を形成させる。
【００３０】
感光体１の表面に形成される静電潜像は、対応する現像ユニットからのトナーによって現像され、トナー画像が形成・保持される。中間転写ベルト１０は、感光体１に隣接しており、回転ローラ１１、１２により矢示Ｂ方向に回動可能に支持されている。感光体１上のトナー画像は、中間転写ベルト１０の裏側にある転写ブラシ（第１の転写手段）１３により、その中間転写ベルト１０の表面に転写される。
【００３１】
感光体１の表面は１色毎にクリーニングブレード１５Ａによりクリーニングされ、その表面に所定色のトナー画像が形成される。そして、その都度中間転写ベルト１０の１回動毎にその表面の同じ位置に感光体１上のトナー画像が転写されて、中間転写ベルト１０上に複数色のトナー画像が重ね合わせられて保持される。その後、そのトナー画像は用紙やプラスチック等の記録媒体に転写される。
【００３２】
用紙への転写に際しては、給紙装置（給紙カセット）１７に収納されている用紙が給紙ローラ１８によって繰り出されて搬送ローラ１９により搬送され、レジストローラ対２０に付き当てられた状態で一旦停止された後、トナー画像の転写位置が正規のものとなるようにタイミングがとられて中間転写ベルト１０と転写ローラ（第２の転写手段）１４のニップに再搬送される。そして、その用紙は転写ローラ１４の作用により中間転写ベルト１０上の複数色のトナー画像が一括転写された後、定着装置５０に送られ、そこでトナー像が定着された後、排紙ローラ対５１により本体フレーム９の上部の排紙スタック部５２に排出される。
【００３３】
中間転写ベルト１０には、回転ローラ１１の部位に中間転写ベルト１０用のクリーニング装置１６が設けられ、クリーニングブレード１６Ａがクリーニングブレード接離用アーム１６Ｃを介して接離自在の構成となっている。このクリーニングブレード１６Ａは、感光体１からトナー画像を受け取る工程では、中間転写ベルト１０から離れ、中間転写ベルト１０より用紙にトナー画像が転写された後に接触するようになっていて、用紙にトナー画像が転写された後の残留トナーをかきとる。クリーニングブレード１６Ａは、すでに記したように、感光体１用と中間転写ベルト１０用がある。これらブレードがかきとった廃トナーは、回収容器１５に収納する。その回収容器１５は適宜交換される。中間転写ベルト１０用のクリーニング装置１６の内部に設けられたオーガ１６Ｂが、クリーニングブレード１６Ａでかきとられた廃トナーを搬送し、図示しない搬送手段で回収容器１５に送るようになっている。
【００３４】
符号３１はユニット化されたプロセスカートリッジで、感光体１、帯電装置４、中間転写ベルト１０、クリーニング装置１６、用紙搬送路を形成する搬送ガイド３０などを一体に組み込み、寿命到来時に交換できるように構成されている。プロセスカートリッジ３１の交換のほかに、多色現像装置６、ブラック現像ユニット７なども寿命到来時に交換するが、その交換性やジャム紙の処理を容易にするため、本体の一部の前フレーム８は支軸９Ａを中心に開閉可能に回動できる構造にしてある。
【００３５】
図１の左側には、電装・制御装置６０が収納されている。その上方には、ファン５８が備えられており、機内の温度過昇防止のために排風する。図の右側には、比較的小規模な別の給紙装置５９が備えられている。なお、この実施形態では、中間転写体として中間転写ベルト１０を使用したが、中間転写ドラムを使用することもできる。
【００３６】
つぎに、以上のように構成されたカラープリンタにおける画像処理装置の詳細な構成および動作について説明する。図２は、図１における電装・制御装置の構成を示すブロック図である。符号１０１はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であり、プリンタ機器を全体の制御を行っている。符号１０２はＣＰＵＩ／Ｆであり、メモリアービター１０３に接続され、ＣＰＵ１０１とメモリアービター１０３間のＩ／Ｆを処理する。符号１０３はメモリアービターであり、ＣＰＵ１０１、通信処理装置１１１、描画装置１０７、復号装置１０８、符号化装置１０６などとメモリとのアクセスを制御する。符号１０４はメモリコントローラであり、メインメモリ１０５を制御する。符号１０５はメインメモリであり、ＣＰＵ１０１からの描画コマンドや、ＣＰＵ１０１のプログラムやバンドデータや、ページの圧縮データなどの各種データなどを格納する。符号１０６は符号化装置であり、メインメモリ１０５のバンドを符号化し、メインメモリ１０５の符号ページメモリ領域へ符号データを送る。符号１０７は描画装置であり、メインメモリ１０５の描画コマンドを読み込み、メインメモリ１０５のＲＧＢＡバンド画像メモリ領域１０５ｃへ描画する。符号１０８は復号装置であり、プリンタエンジン１１２に同期して符号化装置１０６により、符号化された符号を受け取って復号し、画像処理装置１０９へ転送する。符号１０９は画像処理装置であり、復号装置１０８で復号された画像を画像処理しエンジンコントローラ１１０へ転送する。符号１１０はエンジンコントローラであり、プリンタエンジン１１２を制御する。符号１１２はプリンタエンジンである。また、符号１１１は通信処理装置であり、ネットワークによりＰＣ１１３からのＰＤＬを受け取りメインメモリ１０６へ転送する。符号１１３はＰＣ（パーソナルコンピュータ）である。
【００３７】
図３は、本発明の実施の形態にかかる画像処理の流れを示すブロック図である。この図３において、メインメモリ１０５は、通信処理装置１１１から送られたＰＤＬをＰＤＬメモリ領域１０５ａに記憶する。ＣＰＵ１０１は、メインメモリ１０５のＰＤＬメモリ領域１０５ａに記憶されているＰＤＬを読み込み、ＰＤＬを解析して、メインメモリ１０５の描画コマンドメモリ領域１０５ｂへ描画コマンドを生成する。描画装置１０７は、メインメモリ１０５の描画コマンドを読み込み、同メモリのＲＧＢＡバンド画像メモリ領域１０５ｃへ描画する。符号化装置１０６は、ＲＧＢＡバンド画像メモリ領域１０５ｃからＲＧＢＡバンド画像を読み込み符号化し、ＲＧＢＡページ符号メモリ領域１０５ｄへ転送する。復号装置１０８は、この符号を復号し、画像処理装置１０９へ転送する。画像処理装置１０９のＲＧＢ→ＣＭＹ色変換処理装置１２１は、復号されたデータを色変換し、ＵＣＲ処理装置１２２へ転送する。画像処理装置１０９のＵＣＲ処理装置１２２は、ＲＧＢ→ＣＭＹ色変換処理装置１２１で色変換した画像データをＵＣＲ処理し、階調処理装置１２３へ転送する。画像処理装置１０９の階調処理装置１２３は、ＵＣＲ処理装置１２２でＵＣＲ処理した画像データを階調処理し、プリンタエンジン１１２へ転送する。プリンタエンジン１１２でプリント出力する。
【００３８】
図４にメインメモリ１０５のフォーマットを示す。この図４に示すように、ＰＤＬメモリ領域１０５ａにはＰＣ１１３からのＰＤＬを格納する。描画コマンドメモリ領域１０５ｂには、描画コマンドデータを格納する。ＲＧＢＡバンド画像メモリ領域１０５ｃには、ＲＧＢＡバンドデータを格納する。ＲＧＢＡページ符号メモリ領域１０５ｄには、符号化された１ページ分のバンドの符号データを複数ページ分格納する領域である。プログラム領域１０５ｐには、ＣＰＵ１０１のプログラムを格納する。また、符号１０５ｅは、格子点データメモリ領域１０５ｆ、ガンマデータメモリ領域１０５ｇ、しきい値データメモリ領域１０５ｈを有する画像処理装置パラメータ領域である。
【００３９】
図５に図４のＲＧＢＡバンド画像メモリ領域１０５ｃのメモリフォーマット例を示す。ここでは、１つの画素単位にＲＧＢ情報とＡ値（属性情報）をもつ、Ａ値は属性であり、図５のように、その画素がグラフィックスであるか、文字であるか、写真であるか、また、符号化するときに、可逆圧縮するのか、非可逆圧縮するのかを示す非可逆圧縮ＦＬＡＧを示す。
【００４０】
図６は、本発明の実施の形態にかかる処理の概念を示すブロック図である。この図６において、ＰＣ１１３は、ＰＤＬ（ページ記述言語）を生成し、ネットワークを介してプリンタへ転送する。プリンタの通信処理装置１１１は、ＰＣ１１３からのＰＤＬを受け取りメインメモリ１０５のＰＤＬメモリ領域１０５ａへ格納する。メインメモリ１０５は、ＰＤＬや描画コマンドやＲＧＢＡ多値バンド画像やページ符号やプログラムや各種のワークデータなどを記憶する。ＣＰＵ１０１は、ＰＣ１１３からのＰＤＬを解析し、描画装置１０７の描画コマンドを生成し、メインメモリ１０５の描画コマンドメモリ領域１０５ｂへ描画コマンドを書き込む。符号化装置１０６は、メインメモリ１０５のＲＧＢＡバンド画像メモリ領域１０５ｃからＲＧＢＡ多値バンド画像を読み込み、符号化を行い、メインメモリ１０５のＲＧＢＡページ符号メモリ領域１０５ｄへ書き込む。復号装置１０８は、プリンタエンジン１１２に同期してメインメモリ１０５のＲＧＢＡページ符号メモリ領域１０５ｄの符号を復号し、画像処理装置１０９へ転送する。画像処理装置１０９は、復号装置１０８からの復号されたＲＧＢＡデータを受け取り、色変換や階調処理を行い、エンジンコントローラ１１０へ転送する。エンジンコントローラ１１０は、画像処理装置１０９から受け取った画像をプリンタエンジン１１２へ転送する。
【００４１】
図７は、ＲＧＢ情報と属性情報の関係を示す説明図である。（Ａ）はＲＧＢ情報の画像例である。（Ｂ）は（Ａ）の例の写真画像属性をもつ写真画像を示す。（Ｃ）は（Ａ）の例の文字属性をもつ文字画像を示す。（Ｄ）は（Ａ）の例のグラフィックス属性をもつグラフィックス画像を示す。（Ｅ）は以上の（Ｂ），（Ｃ），（Ｄ）の属性を示す属性情報である。（Ｆ）は以上の非可逆圧縮ＦＬＡＧを示す。非可逆画像情報である。このように写真画像の自然画像は非可逆であり、写真画像の人工画像は可逆画像である。
【００４２】
図８に人工画像の例を示す。この図８の（Ａ）〜（Ｆ）に示すようにグラフィックス画像や、表などを写真画像として、描画する画像を人工画像と判断する。一方、図９に自然画像の例を示す。この一般的な写真画像である図９の（Ａ）〜（Ｄ）に示すような自然画像は非可逆で圧縮しても、画像の劣化が目立たない。
【００４３】
図１０に各描画コマンドのフォーマット例を示す。描画コマンドは、（Ａ）パラメータ設定コマンドと、（Ｂ）グラフィックス描画コマンドと、（Ｄ）写真画像描画コマンドに分けることができる。パラメータ設定コマンドは、各種の描画パラメータのパラメータを設定するコマンドであり、グラフィックス描画コマンド（Ｂ）は、グラフィックス描画を実行するためのコマンドであり、写真画像描画コマンド（Ｄ）は、写真画像描画を実行するためのコマンドである。図１０の（Ａ），（Ｅ）にパラメータ設定コマンドを示す。また、（Ｂ），（Ｃ）にグラフィックス描画コマンドを示す。（Ｄ）に写真画像描画コマンドを示す。
【００４４】
図１０の（Ａ）はバンド初期化コマンドであり、バンドの先頭アドレスとバンドの高さと幅を定義している。（Ｂ）は四角形描画コマンドであり、指定された四角形の左上の座標から右下の座標までの四角形を描画する。（Ｃ）は三角形描画コマンドであり、指定された三角形の頂点座標から三角形を描画する。（Ｄ）は写真画像の変倍コマンドであり、写真画像を変倍し、描画する。
【００４５】
図４３に写真画像の変倍の処理例を示す。このようにソース画像を指定された変倍数で変倍しＲＧＢＡバンド画像メモリ領域１０５ｃへ描画する。そのとき、図５の属性値も、写真画像の描画領域に描画する。これにより、非可逆圧縮ＦＬＡＧは描画された写真領域の画素ごと描画される。図１０の（Ｅ）はバンド終了コマンドであり、定義したバンドの描画の終了を意味する。
【００４６】
図１１は、ＣＰＵ１０１による描画コマンドの生成処理を示すフローチャートである。この図１１に示すように、まず、ＣＰＵ１０１はＰＤＬコマンドを読み込み（ステップＳ１１）、写真画像の描画コマンドであるか否かを判断する（ステップＳ１２）。ここで写真画像の描画コマンドでなければ、写真属性を設定する（ステップＳ１３）。続いて、自然画像／人工画像かを判断する処理を行い（ステップＳ１４）、自然画像か否かを判断する（ステップＳ１５）。ここで自然画像であると判断した場合、非可逆圧縮ＦＬＡＧを１にし（ステップＳ１６）、他方、自然画像でないと判断した場合、非可逆圧縮ＦＬＡＧを０にする（ステップＳ１７）。続いて、描画コマンドの写真画像描画コマンドを作成する（ステップＳ１８）。そして、上記動作について全てのＰＤＬコマンドについての処理を判断する（ステップＳ１９）。一方、ステップＳ１２において写真画像の描画コマンドであると判断した場合、さらに文字の描画であるか否かを判断する（ステップＳ２０）。ここで、文字の描画であると判断すると、文字属性を設定する（ステップＳ２１）。また、文字の描画ではないと判断した場合、グラフィックス属性を設定する（ステップＳ２２）。続いて、上記何れかの属性を設定した後、描画コマンドのグラフィックス画像描画コマンドを作成し（ステップＳ２３）、ステップＳ１９に進む。
【００４７】
このようにＰＤＬを順次解析しながら、図１０に示すような描画コマンドを生成する。そして、写真画像の描画コマンドであれば、その写真画像のソース画像は自然画像か、人工画像であるか？を判断し、自然画像であれば、非可逆圧縮ＦＬＡＧをＯＮする。
【００４８】
図１２は、図１１の自然画像／人工画像判断処理の処理を示すフローチャートである。自然画像／人工画像判断処理は、ソース画像の２０行おきに、同色画素のラン長を求め、ラン長毎の頻度を保持し（ステップＳ３１）、２０行おきのすべての行についてのラン長の頻度が保持された後、前記頻度の合計をｎ（ラン長が全部でｎ個あったということ）、ｉ番目のラン長をＸｉとしたとき、以下の式（１）または式（２）を用いてラン長の分散ＤｅｖＲｕｎを計算する（ステップＳ３２）。一般に、ある値の分布を調べるためには、その値のヒストグラムをとり、その形状を比較することにより行う。しかし、分布の幅が広いか狭いかだけを見れば充分である場合には、前記値の分散を求めるのが簡易な方法である。本実施例および後述する実施例では、ラン長の分布を分散として求めることにより、簡単な計算で分布形状の指標を得ることができる。
【００４９】
【数１】
2009272867.tif 000003
【００５０】
そして、分散ＤｅｖＲｕｎが実験で規定された閾値Ｔｈ（たとえば１０）以上の場合には（図１２のステップＳ３３で判断Ｙｅｓ）、人工画像であると判断し（ステップＳ３４）、一方、分散ＤｅｖＲｕｎ＜Ｔｈの場合（図１２のステップＳ３３で判断Ｎｏ）、自然画像であると判断する（ステップＳ３５）。
【００５１】
図１３は、符号化装置１０６の概略構成と処理の流れを示すブロック図である。この図１３において、符号１５１はメモリであり、ＲＧＢＡ画像データを格納する。符号１５２は画像読み込み部であり、メモリ１５１からＲＧＢＡ画像データを読み込む。なお、ＲＧＢＡ画像データは２ラインごと読み込まれていく。符号１５３はランレングス生成処理部であり、画像読み込み部１５２で読み出されたＲＧＢＡ画像データを、図１６に示すように２ラインをジグザグにスキャンし同じＲＧＢＡ値のランレングスに変換し、繰り返し処理部１５４へ転送する。また、図２２に非可逆圧縮処理時のランレングス処理例を示す。図２４に後述するランレングス処理のフローチャートを示す。このように、ランレングスの非可逆圧縮ＦＬＡＧが“1”であり、ランレングスのＲＧＢＡ値と計測する画素のＲＧＢＡ値が許容値以内であり、計測する画素の非可逆圧縮ＦＬＡＧが“１”であれば許可し、ランレングスを長めに求めることにより、圧縮率を上げている。許容値としては、ＲＧＢＡ値の合計である許容合計とＲＧＢ成分の差のＭＡＸ値である許容ＭＡＸ差分がある。この２つの値が共に許容値以内である必要がある。また、たとえ許容値以内であっても、ランレングスのＲＧＢＡ値と計測する画素のＲＧＢＡ値が異なり、許容できるランレングス値を超えた場合は、見た目で分かるために、ランレングスの値も許容ランレングス以内でないといけない。図１７では、許容ランレングスが６であるためにランレングスが６以上になると、ランレングスの継続を停止し、次の色のランレングスを再開している。
【００５２】
このように本方式は、非可逆時に文字のように、急峻に変化する部分への劣化は、許容値を余りにも大きくしなければあり得ない。また、許容するランレングスも、余りに大きな値を使用しない限り、プリンタ画像のような高い解像度のものには見た目に目立たない。
【００５３】
図１３の符号１５４は繰り返し処理部であり、図１５のようにランレングス生成処理部１５３からのランレングスの繰り返しを計算し、繰り返し数とランレングスを辞書変換部１５５へ転送する。符号１５５は辞書変換部であり、ランレングス生成処理部１５３で求めたランレングスのＲＧＢＡ値を限られた複数画像を図２０のように、ＦＩＦＯ方式で画像データを格納する記憶装置であり、繰り返し処理部１５４から送られたＲＧＢＡ画像データと、ＲＧＢＡ辞書内に記憶されたＲＧＢＡデータと比較し、一致する画像データがある場合、図３４０に示すようにインデックスを符号フォーマット処理部１５６へ転送し、辞書を更新しない。一致する画像データがない場合、ＲＧＢＡデータを符号フォーマット処理部１５６へ転送し、図２１のように辞書の追加を行う。符号１５６は符号フォーマット処理部であり、繰り返し処理部１５４からのラン長と繰り返し数と辞書変換部１５５からのインデックス値もしくは、ＲＧＢＡデータを図１５の符号フォーマットの形式で符号を生成する。符号１５７は符号書き込み部であり、符号フォーマット処理部１５６で符号化された符号をメモリ１５８へ書き込む。符号１５８はメモリであり、符号データを格納する。なお、図１８に繰り返し処理例を示し、図１９に符号化時のラインメモリのアクセス方法を示す。
【００５４】
図１４は、復号装置１０８の概略構成と処理の流れを示すブロック図である。この図１４において、符号１５８はメモリであり、符号データを格納する。符号１５９は符号読み込み部であり、メモリ１５８から符号データを読み込む。符号１６０は符号フォーマット解析部であり、符号読み込み部１５９で読み出された符号を解釈しランレングス（同じＲＧＢＡ画素の長さ）やインデックス値（ＲＧＢＡ辞書のインデックス値）や、交互のランレングスの繰り返し値などに変換し、辞書変換部１６１へ転送する。符号１６１は辞書変換部であり、符号フォーマット解析部１６０で求めたランレングスデータがＲＧＢＡデータである場合、図２１のように、ＲＧＢＡデータを辞書に追加し、インデックスである場合、図２７のようにインデックス値で辞書のＲＧＢＡデータを求め、繰り返し処理部１６２へ転送し、辞書を更新する。符号１６２は繰り返し処理部であり、符号フォーマット解析部１６０で求めた繰り返し値とランレングス値から図３３のように、交互のランレングスを繰り返し分、順次ランレングスを生成し、ランレングス復号処理部１６３へ転送する。符号１６３はランレングス復号処理部であり、繰り返し処理部１６２で求めたランレングスを辞書変換部１６１で求めたＲＧＢＡデータで、図３４のように２ラインを描画し、２ライン分すべて描画し終わると画像書き込み部１６４へ転送する。符号１６４は画像書き込み部であり、ランレングス復号処理部１３で生成された２ラインのデータをメモリ１６５へ書き込む。符号１６５はメモリであり、画像データを格納する。
【００５５】
図１５に符号フォーマットの例を示す。ランレングスは、同じＲＧＢＡ画素の長さのランレングス符号であり、ランレングス＋色データの組で表現され、短い４ＢＩＴのＬ１符号はランレングス長を１〜８まで表現する。８ＢＩＴのＬ２符号はランレングス長を９〜４０まで表現する。Ｌ３は段階的に長くなる符号であり、４１〜１０４８５７６までのランレングスを表現することができる。カラー画像は、ランレングス＋色データの組で表現されるＲＧＢの生データである。ＩＮＤＥＸヘッダーは、ＩＮＤＥＸヘッダー＋ランレングス＋インデックス値の組で表現され、ランレングスの次がインデックス値であることを示す。
【００５６】
また、インデックスは、辞書のインデックス値であり、ＩＮＤＥＸヘッダー＋ランレングス＋インデックス値の組で表現され、短い４ＢＩＴのＩ１符号はインデックス値の１〜８まで表現する。８ＢＩＴのＩ２符号はインデックス値を９〜１３６まで表現することができる。繰り返しは、交互するランレングスの繰り返し数の符号であり、複数のランレングス符号＋繰り返しの組で表現され、短い４ＢＩＴのＮ１符号は繰り返し１を、Ｎ２符号は繰り返し２を表現する。Ｎ３は段階的に長くなる符号であり、３〜１０４８５７６までの繰り返しを表現することができる。ライン終端符号は、ラインの終端を表現している。符号終端は、符号の終端を表現しており、ライン終端符号の次に現れる。
【００５７】
図２４は、本発明の実施の形態にかかるランレングスを求める処理を示すフローチャートである。この図２４において、まず、不一致フラグ＝０とし（ステップＳ４１）、ＲＧＢＡＤＡＴＡの値を読みＯＲＧ−ＲＧＢＡＤＡＴＡとする（ステップＳ４２）。続いて、ＲＧＢＡＤＡＴＡの値を読み込み（ステップＳ４３）、下記判断を行う（ステップＳ４４）。（ＯＲＧ−ＲＧＢＡＤＡＴＡ≠ＲＧＢＡＤＡＴＡ）＆ＯＲＧ−ＲＧＢＡＤＡＴＡの非可逆圧縮ＦＬＡＧ＝０（可逆）？であるかを判断する。このステップＳ４４において判断Ｎｏの場合、さらに、（ＯＲＧ−ＲＧＢＡＤＡＴＡの非可逆圧縮ＦＬＡＧ＝１（非可逆））＆（ＲＧＢＡＤＡＴＡの非可逆圧縮ＦＬＡＧ＝１（非可逆））であるかを判断する（ステップＳ４５）。このステップＳ４５で判断Ｙｅｓの場合、不一致フラグ＝１とし（ステップＳ４６）、Ｒ差分＝正数化（ＯＲＧ−ＲＧＢＡＤＡＴＡのＲ値−ＲＧＢＡＤＡＴＡのＲ値）、Ｇ差分＝正数化（ＯＲＧ−ＲＧＢＡＤＡＴＡのＧ値−ＲＧＢＡＤＡＴＡのＧ値）、Ｂ差分＝正数化（ＯＲＧ−ＲＧＢＡＤＡＴＡのＢ値−ＲＧＢＡＤＡＴＡのＢ値）とする（ステップＳ４７〜Ｓ４９）。さらに、差分合計＝Ｒ差分＋Ｇ差分＋Ｂ差分を求め（ステップＳ５０）、ＭＡＸ差分＝ＭＡＸ（Ｒ差分、Ｇ差分、Ｂ差分）を求める（ステップＳ５１）。続いて、（ＭＡＸ差分＜許容差分）＆（差分合計＜許容差分合計）であるかを判断する（ステップＳ５２）。このステップＳ５２において判断Ｙｅｓの場合、さらに（不一致フラグ＝１）＆（ランレングス＞許容ランレングス）であるかを判断する（ステップＳ５３）。このステップＳ５３において判断Ｎｏの場合、ランレングスを一つインクリメントし（ステップＳ５４）、ステップＳ４３に戻る。ステップＳ４４で判断Ｙｅｓの場合、あるいはステップＳ５２で判断Ｎｏの場合、あるいはステップＳ５３で判断Ｙｅｓの場合、ランレングスを符号化する（ステップＳ５５）。また、ステップＳ４５で判断Ｎｏの場合、ステップＳ５４に進む。
【００５８】
図２５に符号化装置１０６の詳細構成例を示すブロック図を示す。本構成は図１３の構成を詳細に示すものである。この図２５において、符号２０１はメモリアービターＩ/Ｆであり、メモリアービター１０３（図２参照）とのＩ/Ｆである。符号２０２はＲＧＢＡバンド画像読み込み装置であり、メインメモリ１０５（図２参照）のＲＧＢＡバンド画像メモリ領域１０５ｃからバンド画像のＲＧＢＡデータを読み込み、ラインメモリ制御装置２０４へ転送する。このときＲＧＢＡバンド画像読み込み装置２０２は、図１６のように２ラインをジグザグにアドレスを生成するのではなく、１ラインごと水平方向に画像データを読み込む。符号２０３はＲＧＢＡバンド画像アドレス生成装置であり、ＲＧＢＡバンド画像読み込み装置２０２で必要とするメインメモリ１０５のＲＧＢＡバンド画像メモリ領域１０５ｃのメモリアドレスを生成する。このときＲＧＢＡバンド画像アドレス生成装置２０３は、図１６のように２ラインをジグザグにアドレスを生成するのではなく、１ラインごと水平方向にアドレスを生成していく。
【００５９】
符号２０４はラインメモリ制御装置であり、ＲＧＢＡバンド画像読み込み装置２０２から受け取ったＲＧＢＡ画像データの偶数ライン目をＲＧＢＡラインデータ記憶装置２０５へ転送する。そして、奇数ライン目のデータを受け取るときに図１６のように、２ラインをジグザグにデータを生成するために、ＲＧＢＡラインデータ記憶装置２０５からのデータの読み込みと、ＲＧＢＡバンド画像読み込み装置２０２からのデータの受け取りを交互に行い、２ラインのジグザグスキャンを実行し、順次、ランレングス生成処理装置２０６へＲＧＢＡ画像データを転送する。符号２０５はＲＧＢＡラインデータ記憶装置であり、ラインメモリ制御装置２０４により制御され、１ライン分のラインデータを受け取り記憶する。符号２０６はランレングス生成処理装置であり、ラインメモリ制御装置２０４からのＲＧＢＡ画像データを受け取り、図１７のように順次同じＲＧＢＡ値のランレングスを生成し、繰り返し処理装置２０７にランレングスの値とランレングスのＲＧＢＡ値を転送する。また、非可逆パラメータ設定装置２１２から非可逆時の許容値を受け取り図２２、図２３のように許容値内でのランレングスを求めることができる。
【００６０】
符号２０７は繰り返し処理装置であり、ランレングス生成処理装置２０６からランレングスの値とランレングスのＲＧＢＡ値を受け取り、図１６のように交互のランレングスでの繰り返し数を求め、辞書変換装置２０８へ転送する。図２９に詳細なブロック図を示す。符号２０８は辞書変換装置であり、繰り返し処理装置２０７からランレングスの値とランレングスのＲＧＢＡ値と繰り返し数を受け取り、図１５のように、ＦＩＦＯ方式でランレングスのＲＧＢＡ値のインデックス化と辞書の登録を行う。繰り返し処理装置２０７から送られたランレングスのＲＧＢＡ値と、ＲＧＢＡ辞書内に記憶されたＲＧＢＡ値と比較し、一致するデータがある場合、図２０のようにインデックスを符号フォーマット生成装置２０９へ転送し、辞書を更新しない。一致するデータがない場合、ＲＧＢＡデータを符号フォーマット生成装置２０９へ転送し、図２１のように辞書の追加を行い、符号フォーマット生成装置２０９へランレングスの値とランレングスのＲＧＢＡ値と繰り返し数とインデックス値を転送する。図３０に詳細なブロック図を示す。
【００６１】
符号２０９は符号フォーマット生成装置であり、辞書変換装置２０８からランレングスの値とランレングスのＲＧＢＡ値と繰り返し数とインデックス値を受け取り、図１５のような符号フォーマットで符号を生成し、ＲＧＢＡバンド符号書き込み装置２１０へ転送する。符号２１０はＲＧＢＡバンド符号書き込み装置であり、符号フォーマット生成装置２０９から受け取った符号を、メインメモリ１０５のページ符号メモリ領域１０５ｄへ書き込む。符号２１１はＲＧＢＡバンド符号アドレス生成装置であり、ＲＧＢＡバンド符号書き込み装置２１０で必要とする、メインメモリ１０５のＲＧＢＡページ符号メモリ領域１０５ｄのアドレスを生成する。符号２１２は非可逆パラメータ設定装置であり、ランレングス生成装置２０６へ非可逆時の許容値を転送する。
【００６２】
図２６〜図２８は、図２５の符号化装置による符号化処理を示すフローチャートである。まず、偶数ラインフラグを１（ステップＳ５１）、ライン初期値フラグを１に設定する（ステップＳ５２）。続いて、偶数ラインフラグが１であるか否かを判断し（ステップＳ５３）、ここで偶数ラインフラグが１でなければジグザグフラグを０、偶数ラインフラグを１、繰り返し値を０、ラインメモリアドレスを０に設定する（ステップＳ５４〜Ｓ５７）。続いて、ジグザグフラグが０であるか否かを判断する（ステップＳ５８）。ここでジグザグフラグが０であると判断した場合、ラインメモリからライン０ＲＧＢＡカラー画素を読み込みＲＧＢＡＤＡＴＡとし（ステップＳ５９）、ジグザグフラグを１とする（ステップＳ６０）。一方、ステップＳ５８においてジグザグフラグが０でなければ、ラインメモリからライン１ＲＧＢＡカラー画素を読み込みＲＧＢＡＤＡＴＡとし（ステップＳ６１）、さらにラインメモリアドレスを一つインクリメントし（ステップＳ６２）、ジグザグフラグを０とする（ステップＳ６３）。
【００６３】
一方、ステップＳ５３において偶数ラインフラグが１である場合、メインメモリ１０５からＲＧＢＡカラー画素を読み込みラインメモリのライン０へ書き込む（ステップＳ６４）。続いて、１ライン分のデータを読み込んだか否かを判断する（ステップＳ６５）。ここで１ライン分のデータを読み込んだと判断すると、メインメモリ１０５からＲＧＢＡカラー画素を読み込みラインメモリのライン１へ書き込む（ステップＳ６６）。そして、１ライン分のデータを読み込んだか否かを判断する（ステップＳ６７）。ここで１ライン分のデータを読み込んだと判断すると、偶数ラインフラグを０とし（ステップＳ６８）、ステップＳ５２に戻る。
【００６４】
上記図２６の処理を実行した後に図２７に示す動作に移行する。ライン初期値フラグが１であるか否かを判断する（ステップＳ６９）。ここで、ライン初期値フラグが１であると判断した場合、ＯＲＧ−ＲＧＢＡＤＡＴＡ＝ＲＧＢＡＤＡＴＡとし（ステップＳ７０）、ライン初期値フラグを０とする（ステップＳ７１）。一方、ステップＳ６９においてライン初期値フラグが１ではないと判断した場合、さらに（ＯＲＧ−ＲＧＢＡＤＡＴＡ≠ＲＧＢＡＤＡＴＡ）＆ＯＲＧ−ＲＧＢＡＤＡＴＡの非可逆圧縮ＦＬＡＧ＝０（可逆）であるか否かを判断する（ステップＳ７２）。このステップＳ７２で判断Ｎｏである場合、さらにＯＲＧ−ＲＧＢＡＤＡＴＡの非可逆圧縮ＦＬＡＧ＝１（非可逆）であるか否かを判断する（ステップＳ７３）。このステップＳ７３で判断Ｙｅｓである場合、不一致フラグを１とする（ステップＳ７４）。続いて、Ｒ差分＝正数化（ＯＲＧ−ＲＧＢＡＤＡＴＡのＲ値  ―  ＲＧＢＡＤＡＴＡのＲ値）、Ｇ差分＝正数化（ＯＲＧ−ＲＧＢＡＤＡＴＡのＧ値  ―  ＲＧＢＡＤＡＴＡのＧ値）、Ｂ差分＝正数化（ＯＲＧ−ＲＧＢＡＤＡＴＡのＢ値  ―  ＲＧＢＡＤＡＴＡのＢ値）、差分合計＝Ｒ差分＋Ｇ差分＋Ｂ差分、ＭＡＸ差分＝ＭＡＸ（Ｒ差分、Ｇ差分、Ｂ差分）とする（ステップＳ７５〜Ｓ７９）。
【００６５】
続いて、（ＭＡＸ差分＜許容ＭＡＸ差分）＆（差分合計＜許容差分合計）であるか否かを判断する（ステップＳ８０）。このステップＳ８０で判断Ｙｅｓの場合、さらに（不一致フラグ＝１）＆（ランレングス＞許容ランレングス）であるか否かを判断する（ステップＳ８１）。このステップＳ８１で判断Ｎｏの場合、ランレングスを一つずらす（ステップＳ８２）。一方、ステップＳ８１において判断Ｙｅｓの場合、不一致フラグを０とし（ステップＳ８３）、（２つ前のランレングス＝ランレングス）＆（２つ前のＲＧＢＡＤＡＴＡ＝ＲＧＢＡＤＡＴＡ）？であるか否かを判断する（ステップＳ８４）。このステップＳ８４で判断Ｙｅｓの場合、繰り返し値を一つインクリメントし（ステップＳ８５）、ＯＲＧ−ＲＧＢＡＤＡＴＡ＝ＲＧＢＡＤＡＴＡとする（ステップＳ８６）。さらに２つ前のランレングス＝１つ前のランレングス、２つ前のＲＧＢＡＤＡＴＡ＝１つ前のＲＧＢＡＤＡＴＡとする（ステップＳ８７）。さらに１つ前のランレングス＝ランレングス、１つ前のＲＧＢＡＤＡＴＡ＝ＲＧＢＡＤＡＴＡとする（ステップＳ８８）。一方、ステップＳ８４で判断ＮＯの場合、２つ前のランレングス＝１つ前のランレングス、２つ前のＲＧＢＡＤＡＴＡ＝１つ前のＲＧＢＡＤＡＴＡとし（ステップＳ８９）、１つ前のランレングス＝ランレングス、１つ前のＲＧＢＡＤＡＴＡ＝ＲＧＢＡＤＡＴＡとする（ステップＳ９０）、ＯＲＧ−ＲＧＢＡＤＡＴＡ＝ＲＧＢＡＤＡＴＡとする（ステップＳ９１）。
【００６６】
上記図２７の処理を実行した後に図２８に示す動作に移行する。繰り返し値＞０？か否かを判断する（ステップＳ９２）。このステップＳ９２で判断Ｙｅｓの場合、符号フォーマットの繰り返し値を符号化する（ステップＳ９３）。続いて、ＲＧＢＡＤＡＴＡは辞書にあるか否かを判断する（ステップＳ９４）。このステップＳ９４で判断ＹＥＳの場合、辞書からインデックス値を求める（ステップＳ９５）。続いて、符合フォーマットのＩＮＤＥＸヘッダーを符号化し（ステップＳ９６）、符合フォーマットのランレングスを符号化し（ステップＳ９７）、符合フォーマットのインデックスを符号化する（ステップＳ９８）。続いて、ライン終端であるか否かを判断し（ステップＳ９９）、ライン終端である場合、符合フォーマットのライン終端を符号化し（ステップＳ１００）、辞書を初期化する（ステップＳ１０１）。続いて、全てのラインを処理したか否かを判断し（ステップＳ１０２）、全てのラインを処理したならば、符号フォーマットの符号終端値を符号化する（ステップＳ１０３）。一方、ステップＳ９４において判断Ｎｏの場合、辞書にＲＧＢＡＤＡＴＡを追加し（ステップＳ１０４）、符号フォーマットのランレングスを符号化し（ステップＳ１０５）、符号フォーマットのカラー画像（ＲＧＢＡＤＡＴＡ）を符号化し（ステップＳ１０６）、ステップＳ９９に進む。
【００６７】
図２９に図２５のランレングス生成処理装置のブロック図を示す。この図２９において、符号２２１は差分解析装置であり、現在のランレングスのＲＧＢＡデータとランレングス値と図２５の非可逆パラメータ設定装置２１２からの許容値を受け取り、ランレングスが継続するか？を判断する比較結果を制御装置２２７へ転送する。図３０に詳細なブロック図を示す。符号２２３はレジスタであり、現在のランレングスのＯＲＧ−ＲＧＢＡデータを記憶する。符号２２２はＭＵＸであり、次のランレングスのＲＧＢＡデータをレジスタ２２３へ転送する。符号２２４はレジスタであり、現在のランレングス値を記憶する。符号２２６は加算器であり、ランレングス値に１を加算する。符号２２５はＭＵＸであり、制御装置２２７でランレングスが継続する場合、加算器２２６で１つ加算された値をレジスタ２２４へ転送し、次のランレングスへ移る場合、“１”の値をレジスタ２２４へ転送する。符号２２７は制御装置であり、このランレングス生成処理装置２０６を制御する。
【００６８】
図３０に図９の差分解析装置のブロック図を示す。この図３０において符号２３１〜２３３はランレングスのＲＧＢＡ値（ＯＲＧ−ＲＧＢＡＤＡＴＡ）とＲＧＢＡデータ値との絶対値の差分を求める絶対値の差分演算器である。符号２３４はＭＡＸ値生成装置であり、差分演算器２３１〜２３３で求めたＲＧＢＡ差分値から、ＭＡＸの差分を求める。符号２３５は比較器であり、ＭＡＸ値生成装置２３４で求めたＭＡＸ差分値が、許容できる範囲であるか判定する。符号２３８は加算器であり、差分演算器２３１〜２３３で求めたＲＧＢＡ差分値の合計を計算する。符号２３９は比較器であり、加算器２３８の加算で求めた差分合計値が許容できる範囲であるか判定する。符号２３６は比較器であり、ランレングスのＲＧＢＡ値（ＯＲＧ−ＲＧＢＡＤＡＴＡ）とＲＧＢＡデータ値を比較し、一致するか判定する。符号２４０は不一致フラグのレジスタであり、比較器２３６からの判定結果が不一致であれば、その不一致結果を保持する。
【００６９】
符号２３８は加算器であり、ランレングスのＲＧＢＡ値（ＯＲＧ−ＲＧＢＡＤＡＴＡ）のＡ値（属性値）が写真属性であるか？を判定する。符号２４１は比較器であり、図２２のランレングス値と許容ランレングス値を比較し、許容値を超えていないか判定する。符号２４２はＯＲ演算器であり、不一致フラグ（レジスタ２４０）のレジスタの値が“１”（不一致を検出していない）であれば、ＡＮＤ演算器２４３の比較結果を条件からはずし、不一致フラグのレジスタの値が“０”（不一致を検出した）であれば、比較器２４１のランレングスが許容値を超えたかの条件をＡＮＤ演算器２４３へ送る。符号２４３はＡＮＤ演算器であり、非可逆時に、符号２３５、符号２３７、符号２３９、符号２４１の各ブロックの許容値の判定結果が全てクリアしているかを判定する。符号２４４、２４５は可逆時に比較器２３６のランレングスのＲＧＢＡ値（ＯＲＧ−ＲＧＢＡＤＡＴＡ）とＲＧＢＡデータ値の比較結果をＯＲ演算器２４６へ転送する。符号２４６はＯＲ演算器であり、可逆／非可逆時にＡＮＤ演算器２４３および符号２４５の条件を判定し、比較値を求める。
【００７０】
図３１に図２５の繰り返し処理装置のブロック図を示す。この図３１において、符号２５１はレジスタであり、１つ前のランレングスのＲＧＢＡデータを記憶する。符号２５２はレジスタであり、２つ前のランレングスのＲＧＢＡデータを記憶する。符合２５３は比較装置であり、レジスタ２５２の２つ前のランレングスのＲＧＢＡデータと現在のランレングスのＲＧＢＡデータを比較し、比較結果を制御装置２６０へ転送する。符号２５４はレジスタであり、１つ前のランレングス値を記憶する。符号２５５はレジスタであり、２つ前のランレングス値を記憶する。符合２５６は比較装置であり、２つ前のランレングス値と現在のランレングスのＲＧＢＡデータを比較し、比較結果を制御装置２６０へ転送する。制御装置２６０は比較装置２５３と比較装置２５６の比較結果を受け取り、ランレングス値、ＲＧＢＡデータとも一致したときに繰り返し値をアップする。符号２５７はレジスタであり、繰り返し値を記憶する。符合２５９は加算器であり、レジスタ２５７の繰り返し値に１を加算する。符号２５８はＭＵＸであり、制御装置２６０で繰り返しがある場合、加算器２５９で１加算された値をレジスタ２５７へ転送する。符号２６０は制御装置であり、この繰り返し処理装置２０７を制御する。
【００７１】
図３２に図２５の符号化用の辞書変換装置のブロック図を示す。この図３２において、符号２６１〜２６６はレジスタであり、繰り返し処理装置２０７からランレングスのＲＧＢＡデータを受け取り、辞書データとして記憶する。符号２６７〜２７２は比較装置であり、レジスタ２６１〜２６６の辞書データと繰り返し処理装置２０７からランレングスのＲＧＢＡデータを並列に比較し、比較結果をインデックス生成装置２７３に入力し、また比較結果の一致を判定するＯＲ装置２７４へ転送する。符号２７３はインデックス生成装置であり、比較装置２６７〜２７２からの比較結果により、インデックス値を生成する。符号２７４はＯＲ装置であり、比較装置２６７〜２７２からの比較結果に１つでも一致するものがあるか判定し、制御装置２７７へ転送する。符号２７５はレジスタであり、繰り返し処理装置２０７からの繰り返し値を一時記憶する。符号２７６はレジスタであり、繰り返し処理装置２０７からのランレングス値を一時記憶する。
【００７２】
図３３は図３２のインデックス生成装置の処理動作を示すフローチャートである。この図３３において、比較装置２６７〜２７２からの比較結果を優先順位に基づき、判定し（ステップＳ１１１〜Ｓ１１５）、インデックス値を生成する（ステップＳ１１６〜Ｓ１２０）。
【００７３】
図３８に図２の復号装置のブロック図を示す。この図３８において、符号２８１はＲＧＢＡバンド画像読み込み装置であり、メインメモリ１０５のＲＧＢＡページ画像メモリ領域１０５ｃから符号を読み込み、符号フォーマット解析装置２８３へ転送する。符号２８２はＲＧＢＡバンド符号アドレス生成装置であり、ＲＧＢＡバンド符号読み込み装置２８１で必要とする、メインメモリ１０５のＲＧＢＡページ画像メモリ領域１０５ｃのアドレスを生成する。符号２８３は符号フォーマット解析装置であり、ＲＧＢＡバンド符号読み込み装置２８１から符号を受け取り、図１５の符号フォーマットに基づき、符号を復号し、ランレングス値、ランレングスのＲＧＢＡ値、ランレングスのインデックス値、繰り返し値などを生成し、辞書変換装置２８４へ転送する。
【００７４】
符号２８４は辞書変換装置であり、符号フォーマット解析装置２８３で求めたランレングスデータがＲＧＢＡデータである場合、図２１のように、ＲＧＢＡデータを辞書に追加し、繰り返し処理装置２８５へ、ランレングス値、ランレングスのＲＧＢＡ値、繰り返し値などを繰り返し処理装置２８５へ転送する。インデックスである場合、図２９のようにインデックス値で辞書のＲＧＢＡデータを求め、繰り返し処理装置２８５へ転送し、繰り返し処理装置２８５へ、ランレングス値、ランレングスのＲＧＢＡ値、繰り返し値などを繰り返し処理装置２８５へ転送する。
【００７５】
符号２８５は繰り返し処理装置であり、受け取った繰り返し値とランレングス値から図３５のように、交互のランレングスを繰り返し分、順次ランレングスを生成し、ランレングス復号処理装置２８６へ転送する。符号２８６はランレングス復号処理装置であり、繰り返し処理装置２８５で求めたランレングスと辞書変換装置２８５で求めたＲＧＢＡ値により、ランレングス数のＲＧＢＡ値を順次、ラインメモリ制御装置２８７へ転送する。図３６にランレングス復号処理例を示す。
【００７６】
符号２８７はラインメモリ制御装置であり、ランレングス復号処理装置２８６から順次ＲＧＢＡデータを受け取り、ＲＧＢＡラインデータ記憶装置２８８へ２ラインをジグザグにＲＧＢＡ値を書き込んでいく。そして、２ライン分すべて描画し終わると、ＲＧＢＡラインデータ記憶装置２８８からライン０から水平方向に順次ＲＧＢＡデータを読み込み、画像処理装置Ｉ／Ｆ２８９へ転送する。符号２８８はＲＧＢＡラインデータ記憶装置であり、ラインメモリ制御装置２８７により制御されて、２ライン分のＲＧＢＡデータを記憶する。画像処理装置Ｉ／Ｆ２８９であり、ラインメモリ制御装置２８７から順次、復号されたＲＧＢ画像データを受け取り、画像処理装置Ｉ／Ｆ２８９へ転送する。図３７に復号時のラインメモリのアクセス方法を示す。
【００７７】
図３９〜図４２は、図３９の復号装置の処理動作を示すフローチャートである。この図において、まず、ラインアドレス＝０、ジグザグフラグ＝０，繰り返し値＝０、インデックスフラグ＝０としてそれぞれ初期化し（ステップＳ１２１〜Ｓ１２４）、符号フォーマット解析装置２８３により符号を読み込む（ステップＳ１２５）。続いて、読み込んだ符号がインデックス符号であるか否かを判断する（ステップＳ１２６）。ここでインデックス符号であると判断した場合、そのインデックス値をセットし（ステップＳ１２７）、インデックスフラグを１に設定し（ステップＳ１２８）、符号フォーマット解析装置２８３により符号を読み込む（ステップＳ１２９）。続いて、２つ前のランレングス＝１つ前のランレングスとし（ステップＳ１３０）、さらに１つ前のランレングス＝ランレングスとする（ステップＳ１３１）。
【００７８】
続いて、２つ前のランレングスのＲＧＢＡＤＡＴＡ＝１つ前のランレングスのＲＧＢＡＤＡＴＡとし（ステップＳ１３２）、１つ前のランレングスのＲＧＢＡＤＡＴＡ＝ランレングスのＲＧＢＡＤＡＴＡとし（ステップＳ１３３）、符号からランレングス値を求める（ステップＳ１３４）。続いて、インデックスフラグ＝１か否かを判断する（ステップＳ１３５）。ここでインデックスフラグ＝１であると判断した場合、インデックス値の辞書のＲＧＢＡをＲＧＢＡＤＡＴＡとする（ステップＳ１３６）。一方、ステップＳ１３５においてインデックスフラグ＝１ではないと判断した場合、符号フォーマット解析装置２８３により符号を読み込み（ステップＳ１３７）、符号のＲＧＢＡをＲＧＢＡＤＡＴＡとし（ステップＳ１３８）、辞書にＲＧＢＡＤＡＴＡを追加する（ステップＳ１３９）。
【００７９】
ステップＳ１２６において読み込んだ符号がインデックス符号ではないと判断した場合、さらに符号はランレングス符号であるか否かを判断する（ステップＳ１４０）。ここでランレングス符号であると判断した場合にはステップＳ１３０に進み、一方、ランレングス符号ではないと判断した場合、さらに符号は繰り返し符号であるか否かを判断する（ステップＳ１４１）。ここで繰り返し符号であると判断した場合、符号フォーマット解析装置２８３により符号を読み込み（ステップＳ１４２）、その符号から繰り返し値を求める（ステップＳ１４３）。
【００８０】
つぎに図４０を説明する。ステップＳ１４１において繰り返し符号ではないと判断した場合、さらに符号はライン終端符号であるか否かを判断する（ステップＳ１４４）。ここでライン終端符号であると判断した場合、ラインメモリアドレス＝０とする（ステップＳ１４５）。続いて、ラインメモリのライン０からＲＧＢＡＤＡＴＡをＲＧＢＡバンド符号読み込み装置２８１へ転送する（ステップＳ１４６）。さらにラインメモリアドレスを一つインクリメントし（ステップＳ１４７）、ラインメモリの全ての値を出力したか否かを判断する（ステップＳ１４８）。ここでラインメモリの全ての値を出力したと判断すると、ラインメモリアドレス＝０とし（ステップＳ１４９）、ラインメモリのライン１からＲＧＢＡＤＡＴＡをＲＧＢＡバンド符号読み込み装置２８１へ転送する（ステップＳ１５０）。さらにラインメモリアドレスを一つインクリメントし（ステップＳ１５１）、ラインメモリの全ての値を出力したか否かを判断する（ステップＳ１５２）。ここでラインメモリの全ての値を出力したと判断すると、辞書を初期化する（ステップＳ１５３）。
【００８１】
つぎに図４１を説明する。図３９の処理の後、ＬＯＯＰ＝ランレングスとし（ステップＳ１５４）、ジグザグフラグ＝０であるか否かを判断する（ステップＳ１５５）。ここでジグザグフラグ＝０であると判断した場合、ラインメモリのライン０へＲＧＢＡＤＡＴＡを書き込み（ステップＳ１５６）、ジグザグフラグ＝１とし（ステップＳ１５７）、ＬＯＯＰ＝ＬＯＯＰ−１とする（ステップＳ１５８）。続いて、ＬＯＯＰ＝０であるか否かを判断する（ステップＳ１５９）。ここでＬＯＯＰ＝０であればステップＳ１２３に戻り、ＬＯＯＰ＝０でなければステップＳ１５５に戻る。
【００８２】
つぎに図４２を説明する。ステップＳ１４３を実行した後、ＬＯＯＰ＝２つ前のランレングスとし（ステップＳ１６０）、ジグザグフラグ＝０であるか否かを判断する（ステップＳ１６１）。ここでジグザグフラグ＝０であると判断した場合、ラインメモリのライン０へ２つ目のランレングスのＲＧＢＡＤＡＴＡを書き込み（ステップＳ１６２）、ジグザグフラグ＝１とし（ステップＳ１６３）、ＬＯＯＰ＝ＬＯＯＰ−１とする（ステップＳ１６４）。一方、ステップＳ１６１においてジグザグフラグ＝０でなければラインメモリのライン1へ２つ目のランレングスのＲＧＢＡＤＡＴＡを書き込み（ステップＳ１６５）、ラインメモリアドレスを一つインクリメントし（ステップＳ１６６）。ジグザグフラグ＝０とする（ステップＳ１６７）。
【００８３】
続いて、ＬＯＯＰ＝０であるか否かを判断する（ステップＳ１６８）。ここでＬＯＯＰ＝０であると判断した場合、繰り返し値を一つデクリメントし（ステップＳ１６９）、繰り返し値が０であるか否かを判断する（ステップＳ１７０）。ここで繰り返し値が０でなければＬＯＯＰを１つ前のランレングスとし（ステップＳ１７１）、ジグザグフラグ＝０であるか否かを判断する（ステップＳ１７２）。ここでジグザグフラグ＝０であると判断した場合、ラインメモリのライン０へ１つ目のランレングスのＲＧＢＡＤＡＴＡを書き込み（ステップＳ１７３）、ジグザグフラグ＝１とし（ステップＳ１７４）、ＬＯＯＰ＝ＬＯＯＰ−１とする（ステップＳ１７５）。一方、ステップＳ１７２においてジグザグフラグ＝０でなければラインメモリのライン１へ２つ目のランレングスのＲＧＢＡＤＡＴＡを書き込み（ステップＳ１７６）、ラインメモリアドレスを一つインクリメントし（ステップＳ１７７）。ジグザグフラグ＝０とする（ステップＳ１７８）。続いて、ＬＯＯＰ＝０であるか否かを判断する（ステップＳ１７９）。ここでＬＯＯＰ＝０であると判断した場合、繰り返し値を一つデクリメントし（ステップＳ１８０）、繰り返し値が０であるか否かを判断する（ステップＳ１８１）。ここで繰り返し値が０であればステップＳ１２３に戻り、繰り返し値が０でなければステップＳ１６０に戻る。
【００８４】
図４４に復号用の辞書変換装置のブロック図を示す。この図４４において、符号２９１〜２９６はレジスタであり、符号フォーマット解析装置２８３からランレングスのＲＧＢ値を受け取り、辞書データとして記憶する。符号２９７はＭＵＸであり、符号フォーマット解析装置２８３からランレングスのインデックス値を受け取り、レジスタ２９１〜２９６の辞書データを選択し、繰り返し処理装置２８５へ転送する。符号２９７はＭＵＸであり、符号フォーマット解析装置２８３からランレングスのＲＧＢＡ値を受け取り、ＲＧＢＡデータ０に転送したり、符号フォーマット解析装置２８３からランレングスのインデックス値を受け取った場合は、ＭＵＸ２９７で選択された辞書データのＲＧＢＡ値を再度、ＲＧＢＡデータ０に転送する。符号２９８はＭＵＸであり、ＲＧＢＡデータ値を出力する。符号２９９はレジスタであり、符号フォーマット解析装置２８３からの繰り返し値を一時記憶する。符号３００はレジスタであり、符号フォーマット解析装置２８３からのランレングス値を一時記憶する。符号３０１はこの辞書変換装置を制御する制御装置である。
【００８５】
図４５に復号用の繰り返し処理装置のブロック図を示す。この図４５において、符号３１１はレジスタであり、１つ前のランレングスのＲＧＢＡデータを記憶する。符号３１２はレジスタであり、２つ前のランレングスのＲＧＢＡデータを記憶する。符号３１４はレジスタであり、１つ前のランレングス値を記憶する。符号３１５はレジスタであり、２つ前のランレングス値を記憶する。符号３１７は制御装置であり、繰り返し値を受け取り、繰り返しがない場合は、ＭＵＸ３１３，３１６を制御して、受け取ったランレングス、ＲＧＢＡデータをそのまま、次の工程へ流す。繰り返しがある場合は、２つ前のランレングス、ＲＧＢＡデータと１つ前のランレングス、ＲＧＢＡデータを交互に出力する。符号３１３，３１６はＭＵＸである。
【００８６】
図４６にランレングス復号処理装置のブロック図を示す。この図４６において、符号３２１はレジスタであり、受け取ったＲＧＢＡデータを一時格納する。符号３２２は制御装置であり、受け取ったランレングスの値だけ、レジスタ３２１のＲＧＢＡデータをラインメモリ制御装置２８７へ転送する。
【００８７】
図４７に図２の画像処理装置のブロック図を示す。この図４７において、符号３３１は格子点データ記憶装置であり、色変換処理装置３３４が演算する格子点データを属性データ単位（文字、写真、グラフィックスなど）に格納する。符号３３２はガンマ-テーブル記憶装置であり、色変換処理装置３３４が演算するガンマ-データを格納する。符号３３３はしきい値マトリックス記憶装置であり、階調処理装置３３７が演算するしきい値を属性データ単位（文字、写真、グラフィックスなど）に格納する。符号３３４は色変換処理装置であり、復号装置１０８から受け取ったＲＧＢＡデータをＡ値（属性データ）により、格子点データ記憶装置３３１から属性にあった格子点データを読み込み、ＲＧＢ→ＣＭＹ変換を行い、さらにＢＧＵＣＲ処理（墨生成・アンダーカラー除去処理）を行い、ガンマ-テーブル記憶装置３３２のガンマ-テーブルを読み込みガンマ処理を行い、多値ＣＭＹＫライン記憶装置３３５へＣ，Ｍ，Ｙ，Ｋ版ごとに書き込み、Ａ属性ライン記憶装置３３６へＡ値（属性データ）を書き込む。
【００８８】
符号３３５は多値ＣＭＹＫライン記憶装置であり、画像処理された多値Ｃ，Ｍ，Ｙ，Ｋデータを記憶する。符号３３６はＡ属性ライン記憶装置であり、属性データを記憶する。符号３３７は階調処理装置であり、色変換装置から受け取ったＣ，Ｍ，Ｙ，ＫデータをＡ値（属性データ）により、しきい値マトリックス記憶装置３３３から属性にあったしきい値データを読み込み、階調処理を行い、少値ＣＭＹＫライン記憶装置３３８へ画像処理された少値Ｃ，Ｍ，Ｙ，Ｋデータを書き込む。符号３３８は少値ＣＭＹＫライン記憶装置であり、少値Ｃ，Ｍ，Ｙ，Ｋデータをライン分記憶しており、図２のエンジンコントローラへ転送する。
【００８９】
図４８、図４９は図４７の画像処理装置の処理動作を示すフローチャートである。まず、ライン書き込みアドレスを０に初期化し（ステップＳ１９１）、色変換処理装置３３４により復号装置１０８からＲＧＢＡデータを受け取る（ステップＳ１９２）。続いて、色変換処理装置３３４はＡ値（属性データ）の示す色変換パラメータにより色変換処理を行なう（ステップＳ１９３）。色変換処理装置３３４は色変換処理したＣＭＹＫ画像データをＣＭＹＫ画像データをＣ，Ｍ，Ｙ，Ｋ版ごと分離して、多値ＣＭＹＫライン記憶装置３３５に書き込み（ステップＳ１９４）、さらにＡ値（属性データ）をＡ属性ライン記憶装置３３６に書き込む（ステップＳ１９５）。続いて、１ライン分の画像データを処理したか否かを判断する（ステップＳ１９６）。ここで１ライン分の画像データを処理していなければ、ラインメモリ書き込みアドレスを一つインクリメントし（ステップＳ１９７）、ステップＳ１９２に戻る。一方、ステップＳ１９６において１ライン分の画像データを処理したと判断した場合、ライン書き込みアドレスを０とし（ステップＳ１９８）、階調処理装置３３７により多値ＣＭＹＫライン記憶装置３３５からＣ版データを受け取り、Ａ属性ライン記憶装置３３６から属性データを受け取る（ステップＳ１９９）。続いて、階調処理装置３３７はＡ値（属性データ）の示すＣ版のしきい値マトリックスデータを読み込んで階調処理を行ない（ステップＳ２００）、さらに階調処理した少値Ｃ版データを少値ＣＭＹＫライン記憶装置３３８へ書き込む（ステップＳ２０１）。
【００９０】
続いて、１ライン分の画像データを処理したか否かを判断する（ステップＳ２０２）。ここで１ライン分の画像データを処理していなければ、ラインメモリ書き込みアドレスを一つインクリメントし（ステップＳ２０３）、ステップＳ１９９に戻る。一方、ステップＳ２０２において１ライン分の画像データを処理したと判断した場合、ライン書き込みアドレスを０とし（ステップＳ２０４）、階調処理装置３３７により多値ＣＭＹＫライン記憶装置３３５からＭ版データを受け取り、Ａ属性ライン記憶装置３３６からＭ版属性データを受け取る（ステップＳ２０５）。続いて、階調処理装置３３７はＡ値（属性データ）の示すＭ版のしきい値マトリックスデータを読み込んで階調処理を行ない（ステップＳ２０６）、さらに諧調処理した少値Ｍ版データを少値ＣＭＹＫライン記憶装置３３８へ書き込む（ステップＳ２０７）。続いて、１ライン分の画像データを処理したか否かを判断する（ステップＳ２０８）。ここで１ライン分の画像データを処理していなければ、ラインメモリ書き込みアドレスを一つインクリメントし（ステップＳ２０９）、ステップＳ２０５に戻る。一方、ステップＳ２０８において１ライン分の画像データを処理したと判断した場合、上記と同様にＹ版、Ｋ版の処理を行い（ステップＳ２１０）、全てのラインの処理を終了したか否かを判断し（ステップＳ２１１）、全てのラインの処理が終了するまで上記処理を実行する。
【００９１】
図５０に図４７の色変換処理装置の詳細なブロック図を示す。この図５０において、符号３４１は格子点選択装置であり、図２の復号装置１０８からのＲＧＢＡデータを、各ＲＧＢ成分を上位ＮＢＩＴ、下位８−ＮＢＩＴに分割し、それぞれをＨＲＧＢ、ＤＲＧＢとし、８個の格子点からなる立方体の６個の四面体のどの四面体に相当するかを判断し、ＴＹＰＥとし、ＨＲＧＢを格子点アドレス生成装置３４２へ、ＤＲＧＢを格子点補間処理装置３４４へ転送する。符号３４２は格子点アドレス生成装置であり、格子点選択装置３４１からのＨＲＧＢとＨＲＵ，ＧＵ，ＢＵとＴＹＰＥとＡ(属性データ)を受け取り、格子点アドレスを求める。符号３４３はデータ切り出し装置であり、読み込んだ格子点データを格子点補間処理装置３３４で補間するための４つのパラメータを切り出す。符号３４４は格子点補間処理装置であり、データ切り出し装置３４３からの補間する四面体の４点の格子点のＣ，Ｍ，Ｙ値とから格子点選択装置３４１のＤＲＧＢで補間し、Ｃ，Ｍ，Ｙデータを求める。符号３４５はＢＧ／ＵＣＲ処理装置であり、格子点補間処理装置３４４からの補間されたＣ、Ｍ、ＹデータからＫ版を生成し、Ｃ，Ｍ，Ｙの値を減じる。符号３４６はガンマ処理装置であり、ＢＧ／ＵＣＲ処理装置３４５により生成されたＣ，Ｍ，Ｙ，Ｋデータからガンマ-テーブル記憶装置３３２のガンマーテーブルをアクセスすることにより、非線形の補間を行い、ＭＵＸ３４７へ転送する。符号３４７はＭＵＸであり、処理する版を選択し多値ＣＭＹＫライン記憶装置３３５へ転送する。符号３４８はレジスタであり、格子点選択装置３４１から属性データを受け取り、Ａ属性ライン記憶装置３３６へ転送する。
【００９２】
図５１に図４７の階調処理装置について詳細に説明する。この図５１において、符号３５１はしきい値マトリックスアドレス生成装置であり、図４７のＡ属性ライン記憶装置３３６から属性データを受け取り、しきい値マトリックス記憶装置３３３のアドレスを生成する。符号３５２は水平しきい値マトリックス記憶装置であり、しきい値マトリックス記憶装置３３３から水平ラインで使用される全てのしきい値マトリックスを読み込み記憶する。符号３５３は多値データシフト装置であり、図４７の多値ＣＭＹＫライン記憶装置３３５から１画素のＣ，Ｍ，Ｙ，Ｋのいずれかの多値データを受け取り、水平しきい値マトリックス記憶装置３５２のしきい値マトリックスに対応する位置を示す多値データ始点により、多値データをシフトさせる。符号３５４は比較装置であり、多値データシフト装置３５３によりシフトされたシフトデータと水平しきい値マトリックス記憶装置３５２からのしきい値マトリックスと比較する。符号３５５は少値データシフト装置であり、比較装置３５４で求めた２値化データを多値データシフト装置３５３の逆のシフトを行い、１画素の２値化データを固定長データ生成装置３５６へ送る。符号３５６は固定長データ生成装置であり、少値データシフト装置３５５で求めた２値データを順次、固定長のデータに加えていくことにより、メモリのワード単位の固定長のデータを生成する。符号３５７はコントローラであり、この階調処理装置を制御する。
【００９３】
この例では、ＲＧＢの画像での実施の形態であったが、ＣＭＹやＣＭＹＫやＬａｂの多値データでも、同様に行うことが可能である。また、ＣＭＹのＣ版のみの場合のように、１つの版の多値でも、ＲＧＢのＲのみの多値の場合でも、どうように考えることができる。また、この実施の形態では、ＦＩＦＯ(Ｆｉｒｓｔ＿Ｉｎ＿Ｆｉｒｓｔ＿Ｏｕｔ)方式の実施例であったが、同様に辞書を使用する方式であれば、容易に考えることができる。また、この実施例では、自然画像の写真画像は非可逆でそれ以外を可逆圧縮する実施の形態であったが、同様に、自然画像の写真画像は非可逆で量子化レベルが強く、それ以外も非可逆で量子化レベルが少なくすることも、容易に考えることができる。
【００９４】
したがって、以上説明してきた実施の形態によれば、バンドメモリへの描画時に写真画像においては、描画するソース画像が自然画像か、人工画像かを判断し、自然画像において、非可逆圧縮する非可逆ＦＬＡＧを“ＯＮ”させて、バンドメモリへ描画し、符号化時にその値により、その領域を１画素単位で非可逆圧縮し、その他の文字やグラフィックス画像においては、可逆圧縮し、人工画像と判断された写真画像も可逆圧縮することにより、圧縮率と画質を両方においてよくなる。また、１画素単位で可逆／非可逆を切り替え圧縮することが可能であるために、たとえば図５３に示すようにグラフィックス画像と写真画像が混在する画像においても、正確に綺麗な圧縮処理が可能となる。
【産業上の利用可能性】
【００９５】
以上のように、本発明にかかる画像処理装置および画像処理方法は、デジタルカラー複写機、デジタルカメラ、プリンタなどに有用であり、特に、グラフィックス画像と写真画像が混在する場合における良好な画像処理を実現する装置、方法などに適している。
【図面の簡単な説明】
【００９６】
【図１】この発明を実施した多色画像形成装置の機構部の構成例を示す説明図である。
【図２】図１における電装・制御装置の構成を示すブロック図である。
【図３】本発明の実施の形態にかかる画像処理の流れを示すブロック図である。
【図４】本発明の実施の形態にかかるメインメモリのフォーマット例を示す説明図である。
【図５】図４におけるＲＧＢＡバンド画像メモリ領域のメモリフォーマット例を示す説明図である。
【図６】本発明の実施の形態にかかる処理の概念を示すブロック図である。
【図７】ＲＧＢ情報と属性情報の関係を示す説明図である。
【図８】本発明の実施の形態にかかる人工画像例を示す説明図である。
【図９】本発明の実施の形態にかかる自然画像例を示す説明図である。
【図１０】発明の実施の形態にかかる各描画コマンドのフォーマット例を示す説明図である。
【図１１】本発明の実施の形態にかかる描画コマンド生成処理を示すフローチャートである。
【図１２】本発明の実施の形態にかかる自然画像／人工画像の判断処理を示すフローチャートである。
【図１３】本発明の実施の形態にかかる符号化装置の概略構成および処理の流れを示すブロック図である。
【図１４】本発明の実施の形態にかかる復号装置の概略構成および処理の流れを示すブロック図である。
【図１５】本発明の実施の形態にかかる符号フォーマット例を示す説明図である。
【図１６】本発明の実施の形態にかかるバンド画像の符号化順番を示す説明図である。
【図１７】本発明の実施の形態にかかるランレングス例を示す説明図である。
【図１８】本発明の実施の形態にかかる繰り返し処理例を示す説明図である。
【図１９】本発明の実施の形態にかかる符号化時のラインメモリのアクセス方法を示す説明図である。
【図２０】本発明の実施の形態にかかる符号化時のＦＩＦＯ辞書の更新処理例を示す説明図である。
【図２１】本発明の実施の形態にかかる符号化／復号時における辞書の追加例を示す説明図である。
【図２２】本発明の実施の形態にかかる非可逆圧縮時のランレングス処理例を示す説明図である。
【図２３】本発明の実施の形態にかかる非可逆圧縮による復号画像例を示す説明図である。
【図２４】本発明の実施の形態にかかるランレングスを求める処理を示すフローチャートである。
【図２５】本発明の実施の形態にかかる符号化装置の詳細構成を示すブロック図である。
【図２６】本発明の実施の形態にかかる符号化処理（１）を示すフローチャートである。
【図２７】本発明の実施の形態にかかる符号化処理（２）を示すフローチャートである。
【図２８】本発明の実施の形態にかかる符号化処理（３）を示すフローチャートである。
【図２９】本発明の実施の形態にかかるランレングス生成処理装置の詳細構成を示すブロック図である。
【図３０】本発明の実施の形態にかかる差分解析装置の詳細構成を示すブロック図である。
【図３１】本発明の実施の形態にかかる繰り返し処理装置の詳細構成を示すブロック図である。
【図３２】本発明の実施の形態にかかる符号化用の辞書変換装置の詳細構成を示すブロック図である。
【図３３】本発明の実施の形態にかかるインデックス生成処理を示すフローチャートである。
【図３４】本発明の実施の形態にかかる復号時のおける辞書の更新処理を示す説明図である。
【図３５】本発明の実施の形態にかかる繰り返しの復号処理例を示す説明図である。
【図３６】本発明の実施の形態にかかるランレングス復号処理例を示す説明図である。
【図３７】本発明の実施の形態にかかる復号時におけるラインメモリのアクセス方法を示す説明図である。
【図３８】本発明の実施の形態にかかる復号装置の詳細構成を示すブロック図である。
【図３９】本発明の実施の形態にかかる復号装置の処理（１）を示すフローチャートである。
【図４０】本発明の実施の形態にかかる復号装置の処理（２）を示すフローチャートである。
【図４１】本発明の実施の形態にかかる復号装置の処理（３）を示すフローチャートである。
【図４２】本発明の実施の形態にかかる復号装置の処理（４）を示すフローチャートである。
【図４３】写真画像の変倍処理例を示す説明図である。
【図４４】本発明の実施の形態にかかる復号用の辞書変換装置の構成を示すブロック図である。
【図４５】本発明の実施の形態にかかる復号用の繰り返し処理装置の構成を示すブロック図である。
【図４６】本発明の実施の形態にかかるランレングス復号処理装置の構成を示すブロック図である。
【図４７】本発明の実施の形態にかかる画像処理装置の詳細構成を示すブロック図である。
【図４８】本発明の実施の形態にかかる画像処理装置の処理（１）を示すフローチャートである。
【図４９】本発明の実施の形態にかかる画像処理装置の処理（２）を示すフローチャートである。
【図５０】本発明の実施の形態にかかる色変換処理装置の詳細構成を示すブロック図である。
【図５１】本発明の実施の形態にかかる階調処理装置の詳細構成を示すブロック図である。
【図５２】網点と文字が混在した画像例を示す説明図である。
【図５３】写真画像とグラフィック画像とが混在する画像例を示す説明図である。
【符号の説明】
【００９７】
１０１  ＣＰＵ
１０５  メインメモリ
１０５ｂ  描画コマンドメモリ領域
１０５ｃ  ＲＧＢＡバンド画像メモリ領域
１０５ｅ  画像処理パラメータ領域
１０６  符号化装置
１０７  描画装置
１０８  復号装置
１０９  画像処理装置
２０６  ランレングス生成処理装置
２０７  繰り返し処理装置
２０８  辞書変換装置
２０９  符号フォーマット生成装置
２２１  差分解析装置
３３４  色変換処理装置
３３７  階調処理装置
【図１】
2009272867.tif 000004
【図２】
2009272867.tif 000005
【図３】
2009272867.tif 000006
【図４】
2009272867.tif 000007
【図５】
2009272867.tif 000008
【図６】
2009272867.tif 000009
【図８】
2009272867.tif 000010
【図１０】
2009272867.tif 000011
【図１１】
2009272867.tif 000012
【図１２】
2009272867.tif 000013
【図１３】
2009272867.tif 000014
【図１４】
2009272867.tif 000015
【図１５】
2009272867.tif 000016
【図１６】
2009272867.tif 000017
【図１７】
2009272867.tif 000018
【図１８】
2009272867.tif 000019
【図１９】
2009272867.tif 000020
【図２０】
2009272867.tif 000021
【図２１】
2009272867.tif 000022
【図２４】
2009272867.tif 000023
【図２５】
2009272867.tif 000024
【図２６】
2009272867.tif 000025
【図２７】
2009272867.tif 000026
【図２８】
2009272867.tif 000027
【図２９】
2009272867.tif 000028
【図３０】
2009272867.tif 000029
【図３１】
2009272867.tif 000030
【図３２】
2009272867.tif 000031
【図３３】
2009272867.tif 000032
【図３４】
2009272867.tif 000033
【図３５】
2009272867.tif 000034
【図３６】
2009272867.tif 000035
【図３７】
2009272867.tif 000036
【図３８】
2009272867.tif 000037
【図３９】
2009272867.tif 000038
【図４０】
2009272867.tif 000039
【図４１】
2009272867.tif 000040
【図４２】
2009272867.tif 000041
【図４３】
2009272867.tif 000042
【図４４】
2009272867.tif 000043
【図４５】
2009272867.tif 000044
【図４６】
2009272867.tif 000045
【図４７】
2009272867.tif 000046
【図４８】
2009272867.tif 000047
【図４９】
2009272867.tif 000048
【図５０】
2009272867.tif 000049
【図５１】
2009272867.tif 000050
【図５２】
2009272867.tif 000051
【図５３】
2009272867.tif 000052
【図７】
2009272867.tif 000053
【図９】
2009272867.tif 000054
【図２２】
2009272867.tif 000055
【図２３】
2009272867.tif 000056