(57)【要約】【課題】  文字画像と写真画像が混在する画像を、画質劣化を防いで効率的に符号化する。【解決手段】  領域判定部102は、画像データの注目画素の値と、注目画素の複数の周辺画素の値から、注目画素を前景画素または背景画素に分類する。透過色設定部103は、前景画素以外の画素に透過色を設定した前景画像を生成する。ロスレス符号化部104は、前景画像をロスレス符号化する。背景画素設定部105は、背景画素以外の画素に背景画素値を設定した背景画像を生成する。ロッシー符号化部106は、背景画像をロッシー符号化する。符号データ生成部107は、ロスレス符号化された符号データとロッシー符号化された符号データを合成して、画像データの符号データにする。【選択図】  図1
2008306394.tif 000002
【特許請求の範囲】
【請求項１】
前景画素と背景画素からなる画像データを入力する入力手段と、
前記画像データにおいて、前記前景画素として出現する画素値のヒストグラムに基づいて、前記背景画素の画素値に前記前景画素として出現しない画素値を設定することにより、第１の画像データを生成する第１の生成手段と、
前記第１の画像データを符号化する第１の符号化手段と、
前記画像データにおいて、前記前景画素の画素値に前記背景画素の画素値に基づいた値を設定することにより、第２の画像データを生成する第２の生成手段と、
前記第２の画像データを符号化する第２の符号化手段とを有することを特徴とする画像処理装置。
【請求項２】
前記第１の符号化手段はロスレス符号化を実行し、前記第２の符号化手段はロッシー符号化を実行することを特徴とする請求項1に記載された画像処理装置。
【請求項３】
前記第１の生成手段は、前記背景画素の画素値に、前記前景画素に出現する最小または最大の画素値に隣接する値を設定することを特徴とする請求項1に記載された画像処理装置。
【請求項４】
前記第１の生成手段は、前記背景画素の画素値に、前記前景画素に出現する画素値の中央の値に最も近い値を設定することを特徴とする請求項1に記載された画像処理装置。
【請求項５】
前記第１の生成手段は、前記背景画素の画素値に、前記前景画素に出現する画素値の中で出現頻度の最も高い輝度値に最も近い値を設定することを特徴とする請求項1に記載された画像処理装置。
【請求項６】
画像データの注目画素の値と、前記注目画素の複数の周辺画素の値から、前記注目画素を前景画素または背景画素に分類する判定手段と、
前記前景画素として出現する画素値のヒストグラムに基づいて、前記前景画素の以外の画素に透過色を設定した前景画像を、前記画像データから生成する一の生成手段と、
前記前景画像をロスレス符号化するロスレス符号化手段と、
前記背景画素の以外の画素に背景画素値を設定した背景画像を、前記画像データから生成する二の生成手段と、
前記背景画像をロッシー符号化するロッシー符号化手段と、
前記ロスレス符号化した符号データと、前記ロッシー符号化した符号データを合成して、前記画像データの符号データにする合成手段とを有することを特徴とする画像処理装置。
【請求項７】
前記判定手段は、前記注目画素の値と、前記複数の周辺画素の値を比較して、前記注目画素と同値の周辺画素が存在する場合は前記注目画素を前記前景画素に分類にし、前記注目画素と同値の周辺画素が存在しない場合は前記注目画素を前記背景画素に分類することを特徴とする請求項6に記載された画像処理装置。
【請求項８】
前記判定手段は、前記注目画素の値と前記複数の周辺画素の値の差分を計算して、前記差分が一つ目の閾値に満たない周辺画素が存在する場合は前記注目画素を前記前景画素に分類にし、前記差分が前記一つ目の閾値に満たない周辺画素が存在しない場合は前記注目画素を前記背景画素に分類することを特徴とする請求項6に記載された画像処理装置。
【請求項９】
前記判定手段は、前記注目画素の値と、前記複数の周辺画素の値を比較する比較手段と、
前記注目画素と同値の周辺画素が存在する場合、前記注目画素と前記複数の周辺画素の間のエッジ強度を算出し、前記エッジ強度が二つ目の閾値を超える場合は前記注目画素を前記前景画素に分類にし、前記エッジ強度が前記二つ目の閾値を超えない場合は前記注目画素を前記背景画素に分類する一の分類手段と、
前記一の分類手段によって前記前景画素に分類された前記注目画素の値によって、前景画素の判定値を更新する更新手段と、
前記注目画素と同値の周辺画素が存在しない場合、前記注目画素の値が前記判定値に一致する場合は前記注目画素を前記前景画素に分類し、前記注目画素の値が前記判定値に一致しない場合は前記注目画素を背景画素に分類する二の分類手段とを有することを特徴とする請求項6に記載された画像処理装置。
【請求項１０】
前記一の生成手段は、色成分ごとに、前記画像データが含む有効な信号レベルの数を計数するカウンタと、
前記色成分ごとに、前記信号レベルの数に基づくインデックステーブルを生成する三の生成手段と、
前記色成分ごとに、前記信号レベルの数が三つ目の閾値に満たない場合は、前記インデックステーブルに基づき前記前景画素の値をインデックス値に置き換える変換手段とを有することを特徴とする請求項6から請求項9の何れか一項に記載された画像処理装置。
【請求項１１】
前景画素と背景画素からなる画像データを入力し、
前記画像データにおいて、前記前景画素として出現する画素値のヒストグラムに基づいて、前記背景画素の画素値に前記前景画素として出現しない画素値を設定することにより、第１の画像データを生成し、
前記第１の画像データを符号化し、
前記画像データにおいて、前記前景画素の画素値に前記背景画素の画素値に基づいた値を設定することにより、第２の画像データを生成し、
前記第２の画像データを符号化することを特徴とする画像処理方法。
【請求項１２】
画像データの注目画素の値と、前記注目画素の複数の周辺画素の値から、前記注目画素を前景画素または背景画素に分類し、
前記前景画素として出現する画素値のヒストグラムに基づいて、前記前景画素の以外の画素に透過色を設定した前景画像を、前記画像データから生成し、
前記前景画像をロスレス符号化し、
前記背景画素の以外の画素に背景画素値を設定した背景画像を、前記画像データから生成し、
前記背景画像をロッシー符号化し、
前記ロスレス符号化した符号データと、前記ロッシー符号化した符号データを合成して、前記画像データの符号データにすることを特徴とする画像処理方法。
【請求項１３】
コンピュータ装置を制御して、請求項1から請求項10の何れか一項に記載された画像処理装置の各手段として機能させることを特徴とするコンピュータプログラム。
【請求項１４】
請求項13に記載されたコンピュータプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを符号化する画像処理に関する。
【背景技術】
【０００２】
文字や線画などの画像（以下、文字画像）と写真画像が混在する画像（以下、混在画像）は、一つの符号化方式で高圧縮符号化すると画質劣化が問題になる。
【０００３】
混在画像の符号化における画質劣化を防ぐために、例えば、非特許文献1は、次の方法を開示する。まず、文字画像の領域（以下、文字領域）、写真画像の領域（以下、写真領域）、領域を特定する属性データ（二値マスク情報）の3レイヤ構造の画像データにする。そして、各領域に、その領域の特性に合った符号化方式を適用する。
【０００４】
3レイヤ構造の画像データを利用する方法は、文字領域と写真領域の画像データのほかに、マスク情報を必要とするので、データ量が多くなる問題がある。
【０００５】
また、特許文献1は、3レイヤ構造に分けて符号化するのではなく、エッジ情報を用いて文字領域を抽出し、文字領域と文字以外の領域（以下、下地領域）に分離して符号化する方式を開示する。この方法は、文字領域は二値化して二値のロスレス符号化を適用する。また、下地領域には多値画像符号化を適用する。
【０００６】
文字領域と下地領域に分離して、文字領域を二値化する方法は、文字画像が階調やグラデーションを有する場合に対応することができない。
【０００７】
【特許文献１】特開平8-331391号公報
【非特許文献１】ITU-T Recommendation T.44 | ISO/IEC 16485 : 2000、Information technology - Mixed Raster Content (MRC)
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、文字画像と写真画像が混在する画像を、画質劣化を防いで効率的に符号化することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１０】
本発明にかかる画像処理は、前景画素と背景画素からなる画像データを入力し、前記画像データにおいて、前記前景画素として出現する画素値のヒストグラムに基づいて、前記背景画素の画素値に前記前景画素として出現しない画素値を設定することにより、第１の画像データを生成し、前記第１の画像データを符号化し、前記画像データにおいて、前記前景画素の画素値に前記背景画素の画素値に基づいた値を設定することにより、第２の画像データを生成し、前記第２の画像データを符号化することを特徴とする。
【００１１】
また、画像データの注目画素の値と、前記注目画素の周辺画素の値から、前記注目画素を前景画素または背景画素に分類し、前記前景画素として出現する画素値のヒストグラムに基づいて、前記前景画素以外の画素に透過色を設定した前景画像を、前記画像データから生成し、前記前景画像をロスレス符号化し、前記背景画素以外の画素に背景画素値を設定した背景画像を、前記画像データから生成し、前記背景画像をロッシー符号化し、前記ロスレス符号化した符号データと、前記ロッシー符号化した符号データを合成して、前記画像データの符号データにすることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、文字画像と写真画像が混在する画像を、画質劣化を防いで効率的に符号化することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【実施例１】
【００１４】
［符号化装置］
図1は実施例の符号化装置の構成例を示すブロック図である。
【００１５】
符号化装置への画素データの入力順序は、ラスタスキャン順とし、各画素においてはR、G、Bの順に色成分データが入力されるものとする。R、G、Bそれぞれに成分番号0、1、2を定義し、画像の左上隅の座標を(0, 0)とする。水平方向の画素位置がx、垂直方向の画素位置がyの画素の成分番号Cの値をP(x, y, C)と表すことにする。例えば、位置(3, 4)にある画素が(R, G, B)=(255, 128, 0)という値をもつ場合、P(3, 4, 0)=255、P(3, 4, 1)=128、P(3, 4, 2)=0と表現する。
【００１６】
ラインバッファ101は、信号線108から画像データを入力し、複数ライン分の画像データをバッファする。ここでは、ラインバッファ101がバッファ可能なライン数をThとする。一画素がRGB各8ビット（3バイト）とし、1ラインの画素数がWとすると、ラインバッファは3×W×Thバイトの記憶容量を有する。なお、ラインバッファ101は、原画像のThライン分の帯状の画像をバッファする。この帯状の画像をストライプもしくはストライプ画像と呼ぶことにする。説明の便宜上、原画像の垂直方向の画素数Hは、Thの整数倍とし、画像の末尾で不完全なストライプが発生しないものとする。
【００１７】
領域判定部102は、ラインバッファ101にバッファされた複数ラインの画像データについて、注目画素が前景に含まれるか、背景に含まれるかの判定（以下、前景/背景判定）を行う。領域判定部102は、注目画素の各成分について、図2に示す注目画素の周辺の複数の八画素の値a〜hの下記に示す成分値をラインバッファ101から読み出す。
a = {P(x-1, y-1, 0), P(x-1, y-1, 1), P(x-1, y-1, 2)}
b = {P(x, y-1, 0), P(x, y-1, 1), P(x, y-1, 2)}
c = {P(x＋1, y-1, 0), P(x＋1, y-1, 1), P(x＋1, y-1, 2)}
d = {P(x-1, y, 0), P(x-1, y, 1), P(x-1, y, 2)}
e = {P(x＋1, y, 0), P(x＋1, y, 1), P(x＋1, y, 2)}
f = {P(x-1, y＋1, 0), P(x-1, y＋1, 1), P(x-1, y＋1, 2)}
g = {P(x, y＋1, 0), P(x, y＋1, 1), P(x, y＋1, 2)}
h = {P(x＋1, y＋1, 0), P(x＋1, y＋1, 1), P(x＋1, y＋1, 2)}
ここで、P(x, y, C)は注目画素の成分値
【００１８】
なお、画像の最初のラインや最後のライン、各ラインの先頭/末尾などで、周辺八画素が画像外になる場合は、符号側と復号側で共通の成分値、例えば0をもつことにする。
【００１９】
領域判定部102は、注目画素の成分値P(x, y, C)と、周辺八画素の成分値を比較する。そして、注目画素と同一の画素値をもつ近傍画素の存在の有無を示す情報を、前景画像処理部110の透過色設定部103と、背景画像処理部111の背景画素設定部104に出力する。なお、画素値が同一とは、二つの画素の値を(r1, g1, b1)(r2, g2, b2)とする場合、r1=r2、g1=g2、b1=b2というように、全成分値が同一の場合を指す。
【００２０】
領域判定部102は、注目画素の周辺八画素に、注目画素の値Xに一致する値をもつ画素が一画素でも存在する場合、注目画素を前景画素と判定して、透過色設定部103へ出力する。さらに、注目画素が前景画素であることを示す判定情報（例えば‘1’）を透過色設定部103と背景画素設定部105へ出力する。
【００２１】
一方、領域判定部102は、注目画素の周辺八画素に、注目画素の値Xと一致する値をもつ画素が一画素も存在しない場合は、注目画素を背景画素と判定して、背景画素設定部105へ出力する。さらに、注目画素が背景画素であることを示す判定情報（例えば‘0’）を透過色設定部103と背景画素設定部105へ出力する。つまり、領域判定部102は、注目画素を前景画素と背景画素に分類する。
【００２２】
透過色設定部103は、領域判定部102から入力される注目画素と、判定情報に基づき前景画像生成処理を行う。判定情報が‘1’、つまり前景画素の場合は注目画素の値Xをそのままロスレス符号化部104へ出力し、判定情報が‘0’、つまり背景画素の場合は任意の画素値tをロスレス符号化部104へ出力する。なお、透過色設定部103が出力する画素値をXfとする。
【００２３】
透過色設定部103が注目画素の値Xを置き換える画素値tを以下では「透過色」と呼ぶ。なお、この透過色としては、前景画素として出現しない画素値が設定される。また、その画素値（透過色）は、前景画素として出現する画素値のヒストグラムに基づいて設定される。
【００２４】
●透過色tの設定
以下、透過色tの設定方法の具体例を説明する。
【００２５】
まず、前景画像として抽出した画素（前景画素）のR、G、Bそれぞれの成分から輝度値（画素値）の出現頻度を調べ、ヒストグラムを生成する。
【００２６】
次に、そのヒストグラム（画素値の分布状況）に基づいて、後段でロスレス符号化を行う際の符号化効率をより良くするために最適な画素値を透過色として設定する。例えば、その最適な画素値の決め方として、以下の方法を適用することができる。ただし、以下で示す数値はそれぞれの条件の関係を分かり易くするための一例で、その数値に限定されるものではない。
(I)前景画素が同じような色（画素値）で構成される場合
【００２７】
図19Aは、前景画像に存在する輝度値（画素値）の分布が次の条件に合う場合のヒストグラムの代表図である。
(1)１回以上カウントされた輝度値が27個
(2)非隣接部分（１回以上カウントされた値が隣接する値域（以下、隣接値域）と別の隣接値域との境界）が０個
(3)隣接値域の幅（隣接値域が複数ある場合は、１回以上カウントされた輝度値の個数が最大の隣接値域）が27になる場合
【００２８】
例えばR、G、Bそれぞれヒストグラムが図19Aに示すような特性を示す場合、前景画素が同じような色（画素値）で構成されていると言える。すなわち、図19(a)のヒストグラムは、出現した輝度値（画素値）が一部分に密集した分布を示す。このような場合、透過色tとして、出現した輝度値（画素値）の最小値に隣接する前の値（小さい値）、または、最大値に隣接する後ろの値（大きい値）を設定する。図19Aの例では、最小輝度値が43、最大輝度値が69であるから、輝度値42か70を透過色tに設定する。
(II)前景画素の輝度値（画素値）はある程度集中するが「まばら」な場合
【００２９】
図19Bは、前景画像に存在する輝度値（画素値）の分布の次の条件に合う場合のヒストグラムの代表図である。
(4)１回以上カウントされた輝度値が２〜10個
(5)非隣接部分（隣接値域と別の隣接値域の境界）が４個
(6)隣接値域の幅（隣接値域が複数ある場合は、１回以上カウントされた輝度値の個数が最大の隣接値域）が10になる場合
【００３０】
例えばR、G、Bそれぞれヒストグラムが図19Bに示すような特性を示す場合、前景画素として出現する輝度値（画素値）の分布はある程度集まって（集中して）はいるが、まだ疎らな状態にあると言える。この場合、出現した輝度値の範囲の中心（中央値）を調べ、中央値に一番近い値を透過色tとして設定する。図19Bの例では、出現する最小輝度値が44で最大輝度値が78であるから、中心値は60になる。60に一番近い、出現していない輝度値は58であるから、透過色t=58に設定する。
(III)前景画素の輝度値（画素値）が分散している場合
【００３１】
図19Cは、前景画像に存在する輝度値（画素値）の分布の次の条件に合う場合のヒストグラムの代表図である。
(7)１回以上カウントされた輝度値が１〜13個
(8)非隣接部分（隣接値域と別の隣接値域の境界）が33個
(9)隣接値域の幅（隣接値域が複数ある場合は、１回以上カウントされた輝度値の個数が最大の隣接値域）が13になる場合
【００３２】
例えばR、G、Bそれぞれヒストグラムが図19Cに示すような特性を示す場合、前景画素として出現する輝度値（画素値）の分布が集まっていない（分散した）状態にあると言える。この場合、最も出現頻度が高い輝度値を調べ、その輝度値に一番近い値を透過色tとして設定する。図19Cの例では、出現頻度が最も高い輝度値は16になる。16に一番近い、出現していない輝度値21を透過色tに設定する。
【００３３】
以上の(I)(II)(III)の何れかの設定方法を適用すれば、透過色tとして設定される画素（背景画素の部分）が他の近隣の画素（前景画素の部分）と近い色（画素値）になるので、予測符号化する際は予測誤差を小さく抑えることができる。そして、その予測誤差を可変長符号化する場合、各予測誤差に短い符号語が割り当てられるため、ロスレス符号化の符号化効率が向上することになる。
【００３４】
●複数の透過色tの設定
図20は輝度値が異なる前景画素が混在する画像例を示す図である。
【００３５】
図20に示すような画像の場合、ロスレス符号化の符号化効率をさらに向上するには、透過色tを一種類にしない方がよいと考えられる。もし、前景画素として出現しない画素値が２つ以上ある場合は、それら２つ以上の画素値を、透過色tに相当する値として利用することも有効である。すなわち、２以上の数種類の色（画素値）を透過色（t1, t2, …, tn）として利用すれば符号化効率を向上することができる。
【００３６】
以下、複数の透過色tの設定方法の具体例を説明する。
【００３７】
透過色tを一種類とする場合と同様、まず、前景画像として抽出した画素（前景画素）のR、G、Bそれぞれの成分から輝度値（画素値）の出現頻度を調べ、ヒストグラムを生成する。
【００３８】
次に、そのヒストグラム（画素値の分布状況）に基づいて、後段でロスレス符号化を行う際の符号化効率をよりよくするために最適な複数の画素値を透過色（t1, t2, …, tn）として設定する。例えば、その最適な画素値の決め方として、以下の方法を適用することができる。ただし、以下で示す数値はそれぞれの条件の関係を分かり易くするための一例で、その数値に限定されるものではない。
(IV)前景画素が幾つかの色（画素値）で構成される場合
【００３９】
図19Dは、前景画像に存在する輝度値（画素値）の分布が次の条件に合う場合のヒストグラムの代表図である。
(10)１回以上カウントされた輝度値が11〜31個
(11)非隣接部分（隣接値域と別の隣接値域の境界）が２個
(12)隣接値域の幅（隣接値域が複数ある場合は、１回以上カウントされた輝度値の個数が最大の隣接値域）が11、21、31になる場合
【００４０】
例えばR、G、Bそれぞれヒストグラムが図19Dに示すような特性を示す場合、前景画素として出現する輝度値（画素値）が幾つかの範囲（値域）に集まっている（集中している）状態にあると言える。例えば10〜20の範囲s1、105〜130の範囲s2、170〜190の範囲s3に集中している場合、それぞれの範囲（値域）に対して適切な透過色t1、t2、t3を設定するのが好ましい。その際、各範囲（各値域）に対する透過色の設定方法は、上記の(I)(II)(III)の何れかの方法を適用することができる。
置き換え
【００４１】
次に、例えば３つの透過色t1、t2、t3を画像のどの位置の画素と置き換えるかを説明する。
【００４２】
まず、前景画像のラインごとにヒストグラムを生成する。ヒストグラムを生成した結果、注目ラインに輝度値が存在しない場合は、透過色t1、t2、t3の何れかをデフォルト値として設定する。本実施例ではt1をデフォルト値とする。
【００４３】
注目ラインに輝度値が存在する場合は、その輝度値がヒストグラムのどの範囲s1、s2、s3に属すかによって、透過色を設定する。例えば、範囲s1の輝度値しか存在しない場合は、そのラインの前景として抽出された画素（前景画素）以外の画素に対して、透過色t1を設定する。
【００４４】
注目ラインに複数の範囲の輝度値が存在する場合は、どちらか一方の輝度値を設定する。例えば、ラスタスキャン順に走査して、先に出現した輝度値が属す範囲によって透過色を設定してもよいし、ライン中のヒストグラムの分布によって、出現頻度の高い輝度値に近い透過色を設定してもよい。
【００４５】
また、ラインごとに透過色を設定するのではなく、前景画像をn×mのブロックに分割し、ブロック内の輝度値のヒストグラムを生成して、上記と同様の方法により、ブロックごとに透過色を設定してもよい。
【００４６】
上記の方法により設定された透過色tはヘッダ情報として符号化データに付加して、復号時に、どの値が透過色tであるかが分かるようにする。
【００４７】
透過色tには、前景画素の値として未使用の値を調べて、その値を設定する。なお、存在する可能性が低い画素値を透過色tと予め設定してもよい。言い換えれば、透過色tは、前景画素の値として未使用の値であれば、どのような値でも構わない。
【００４８】
一方、背景画素設定部105は、領域判定部102から入力される注目画素と、判定情報に基づき背景画像生成処理を行う。判定情報が‘0’、つまり背景画素の場合は注目画素の値Xをそのままロッシー符号化部106へ出力し、判定情報が‘1’、つまり前景画素の場合は、注目画素の値Xとして何らかの背景画素値を割り当て、割り当てた値をロッシー符号化部106へ出力する。なお、背景画素設定部105が出力する画素値をXbとする。
【００４９】
背景画素設定部105が前景画素と判定された注目画素に割り当てる背景画素値は、例えば、注目画素の前方の背景画素の値を設定すればよい。また、所定の値を設定してもよいし、注目画素の上方の背景画素の値と左方の背景画素の値の平均値を設定するなど、背景画像の符号化において符号化効率が良好な値を背景画素値に設定すればよい。
【００５０】
符号データ生成部107は、図3に一例を示す形態で、ロスレス符号化部104から入力される符号データ（以下、ロスレスデータ）と、ロッシー符号化部106から入力される符号データ（以下、ロッシーデータ）を一つの符号データにまとめる。そして、一つにまとめた符号データを信号線109に出力する。
【００５１】
図3(a)に示すように、符号データの先頭にはヘッダとして、ロスレスデータとロッシーデータの各データ長（サイズ）の付加情報をもつ。そして、ロスレス符号化された前景画像を示す1ビットの情報に続いてロスレスデータが存在する。さらに、ロッシー符号化された背景画像を示す1ビットの情報に続いてロッシーデータが存在する。例えば、前景画像の符号データを示す情報は‘1’、背景画像の符号データを示す情報は‘0’にする。
【００５２】
勿論、原画像の全画素が前景画素と判定された場合は、図3(b)に示すように、ロスレスデータサイズを示すヘッダ、前景画像の符号データを示す情報‘1’、ロスレスデータによって構成される符号データが生成される。同様に、原画像の全画素が背景画素と判定された場合は、図3(c)に示すように、ロッシーデータサイズ、背景画像の符号データを示す情報‘0’、ロッシーデータによって構成される符号データが生成される。
【００５３】
●ロスレス符号化部
ロスレス符号化部104は、透過色設定部103から入力される画像データをバッファし、画像データをロスレス符号化する。ロスレス符号化部104は、ロスレス符号化を行う符号化器であればどのようなものでも構わない。例えば、連続階調静止画像の可逆的および準可逆的な圧縮方法の国際標準として勧告されるJPEG-LS (ISO/IEC 14495-1および2)などを利用することができる。
【００５４】
図4はロスレス符号化部104の構成例を示すブロック図で、画像データを予測誤差に変換する系列変換の処理に周辺画素を用いた予測変換を用い、符号化処理にハフマン符号化を用いる画像圧縮方式の一例を示す。
【００５５】
ロスレス符号化部104が実際に符号化を行う前に、予め幾つかの画像を示す画像データを系列変換して得らた予測誤差の頻度分布を調べて、図5に示すようなハフマンテーブルを作成し、メモリ1004に格納しておく。予測誤差の頻度分布の一般的性質として、予測誤差0を中心として出現頻度が高く、予測誤差の絶対値が大きくなるにつれて出現頻度が下がる傾向がある。従って、メモリ1004に格納するハフマンテーブルによって、予測誤差が0近辺のデータには短い符号語が割り当てられ、予測誤差の絶対値が大きいデータには長い符号語が割り当てられる。
【００５６】
バッファ1001は、透過色設定部103（信号線1006）から画像データを入力する。バッファ1001に1ライン分の画像データが蓄積すると、予測器1002は、バッファ1001から符号化対象画素の直前の画素の画素値dと、1ライン前の画素の画素値bを取り出し、例えばp=(d＋b)/2を演算して予測値pを生成する。
【００５７】
減算器1003は符号化対象画素の画素値Xfと予測値pの差分値e=Xf-pを演算し出力する。ハフマン符号器1005は、メモリ1004に格納されたハフマンテーブルを参照して、差分値e（シンボル）に対応する符号を符号データ生成部107（信号線1007）に出力する。
【００５８】
●ロッシー符号化部
ロッシー符号化部106は、背景画素設定部105から入力される画像データをバッファし、画像データをロッシー符号化する。ロッシー符号化部106には、多値の写真画像を対象とする、国際標準として勧告されたJPEG（ITU-T勧告 T.81 | ISO/IEC 10918-1）などに適合または準拠する符号化器を適用することができる。
【００５９】
つまり、画素値が同値の近傍画素が存在すれば、注目画素が文字領域を構成する画素である可能性が高い。この性質を利用して、文字領域を構成する画素を前景画素として抽出し分離して、ロスレス符号化する。ただし、この方法によれば、白い下地や同一色の下地も前景画像として抽出し分離することになるが、同一色が連続する画像のロスレス符号化は圧縮効率が高い上、ブロックノイズも発生せず、下地画像の画質劣化を防ぐことができる。
【００６０】
また、注目画素の値と近傍画素の値が一致する場合に注目画素を前景画素として分離すれば、僅かな色の違いで前景画素として分離されない注目画素が発生する。そこで、注目画素の値と、近傍画素の値の差分diffを次式によって計算し、差分diffが例えば実験的に求めた閾値range未満であれば、注目画素の値と近傍画素の値が類似するとして、注目画素を前景画素として分離してもよい。
diff = √{(Ri - Rn)2 + (Gi - Gn)2 + (Bi - Bn)2}
ここで、Ri、Gi、Biは注目画素の色成分値
Rn、Gn、Bnは近傍画素の色成分値
【００６１】
［復号装置］
次に、上記の符号化装置が生成した符号データを復号する復号装置を説明する。図6は実施例の復号装置の構成例を示すブロック図である。
【００６２】
符号バッファ401は、信号線406を介して復号対象の符号データを入力する。ヘッダ解析部402は、符号バッファ401に格納された符号データを読み込み、符号データに付加されたヘッダ情報を解析して、画像データの復号に必要な情報を取り出す。
【００６３】
ヘッダ解析部402は、ヘッダ情報に記述されたデータサイズ分のデータを、ヘッダに続く符号データから切り出す。勿論、ヘッダ情報に複数のデータサイズが記述されていれば、対応する符号データをそれぞれ切り出すことは言うまでもない。そして、切り出した符号データの先頭ビットが‘1’であれば当該符号データを前記復号部403へ出力し、先頭ビットが‘0’であれば当該符号データを背景復号部404へ出力する。
【００６４】
前景復号部403は、ヘッダ解析部402から入力されるロスレスデータを復号して、復号した画像データを画像合成部405へ出力する。同様に、背景復号部404は、ヘッダ解析部402から入力されるロッシーデータを復号して、復号した画像データを画像合成部405へ出力する。
【００６５】
画像合成部405は、前景復号部403から入力される画像データ（以下、前景データ）と、背景復号部404から入力される画像データ（以下、背景データ）を合成して、合成結果の画像データ、言い換えれば復号された画像データを信号線407に出力する。
【００６６】
図7は画像合成部405の処理を示すフローチャートである。
【００６７】
画像合成部405は、復号が開始されると、注目画素の垂直方向の位置をカウントするカウンタyと、水平方向の位置をカウントするカウンタxを1に初期化する(S501)。
【００６８】
次に、画像合成部405は、前景データの注目画素の値Xf(x, y)と透過色tを比較する(S502)。そして、Xf(x, y)≠tの場合は、注目画素の値Xf(x, y)をそのまま出力する(S503)。また、Xf(x, y)=tの場合は、背景データの注目画素の値Xb(x, y)を読み出し(S504)、値Xbを出力する(S505)。なお、透過色tは、ヘッダ情報の解析結果に基づきヘッダ解析部402から提供される。
【００６９】
次に、画像合成部405は、カウンタxをインクリメントし(S506)、カウンタxと水平方向の画素数Wを比較する(S507)。そして、x＜Wの場合は処理をステップS502に戻して注目画素を一つ進める。なお、画素数Wは、ヘッダ情報の解析結果に基づきヘッダ解析部402から提供される。
【００７０】
x=Wの場合、画像合成部405は、カウンタxを1にし、カウンタyをインクリメントし(S508)、カウンタyと垂直方向の画素数Hを比較する(S509)。そして、y＜Hの場合は処理をステップS502に戻して注目ラインを一つ進める。なお、画素数Hは、ヘッダ情報の解析結果に基づきヘッダ解析部402から提供される。
【００７１】
y=Hの場合、画像合成部405は、処理を終了する。
【００７２】
このように、原画像の注目画素の値と、その周辺八画素の値を比較して、画素値が一致（または類似）する近傍画素が存在するか否かにより前景/背景判定を行い、判定結果に基づき画素を前景画素と背景画素を分離する。そして、画素の連結性が高い前景画素からなる前景画像をロスレス符号化する。また、画素の連結性が低い背景画素からなる背景画像をロッシー符号化する。さらに、前景画像の背景画素位置の画素値を透過色tに置き換えてロスレス符号化する。
【００７３】
従って、透過色tへの置き換えによってマスク情報を必要とせずに、文字領域と写真領域が混在する原画像を効率的に圧縮符号化することができる。また、階調やグラデーションを有する文字画像も前景画像として分離することができるので、文字画像の階調やグラデーションを維持して、原画像を圧縮符号化することができる。
【００７４】
［装置の構成例］
コンピュータ装置に符号化プログラムおよび復号プログラムを実行させることで、上記の符号化装置および復号装置は実現可能である。図8はコンピュータ装置の構成例を示すブロック図である。
【００７５】
CPU 1401は、RAM 1402をワークメモリとして、ROM 1403やハードディスクドライブ(HDD) 1407に格納されたオペレーティングシステム(OS)やプログラムに従い、システムバス1410を介して、各構成を制御する。HDD 1407が格納するプログラムには、実施例の符号化プログラムおよび復号プログラムが含まれ、上述した画像データの符号化および復号が可能である。
【００７６】
CPU 101は、RAM 102に前述したラインバッファ101、バッファ1001、符号バッファ401などを割り当てる。また、CPU 101は、例えばHDD 1407に格納されたハフマンテーブルを読み出し、RAM 102の所定領域に格納して符号化に使用する。
【００７７】
記憶媒体ドライブ1408は、光ディスクなどの記憶媒体をドライブする。記憶媒体には、実施例の符号化プログラムや復号プログラムを記録することができる。CPU 101は、記憶媒体からRAM 102にロードした符号化プログラムや復号プログラムを実行して、上述した画像データの符号化および復号を行うこともできる。
【００７８】
ユーザは、USBインタフェイス(I/F) 1409に接続されたキーボード1404やマウス1405を利用して符号化または復号プログラムの実行を指示する。当該指示を受信したCPU 101は、符号化または復号プログラムを実行して、ビデオI/F 1412に接続されたモニタ1406にユーザインタフェイスを表示する。そして、符号化または復号するデータの選択または指定、並びに、符号化または復号したデータの出力先を受け付ける。
【００７９】
ユーザは、HDD 1407や記憶媒体に格納されたデータ、あるいは、外部装置1411または図示しないネットワーク上のサーバ装置上のデータを符号化または復号するデータとして選択または指定可能である。また、HDD 1407、記憶媒体、外部装置1411、ネットワーク上のサーバ装置などを符号化または復号したデータの出力先として選択または指定可能である。あるいは、ユーザは、モニタ1406を出力先に選択して、復号された画像を表示させてもよい。
【００８０】
CPU 101は、ユーザの指示に従い、選択または指定されたデータを符号化または復号して、符号化または復号したデータを選択または指定された出力先に出力する。
【実施例２】
【００８１】
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００８２】
実施例1では、注目画素の値Xと周辺八画素の値を比較して、画素値が一致（または類似）する近傍画素があるか否かで前景/背景判定を行う例を説明した。他の方法でも前景/背景判定を行うことができる。例えば、周辺画素のエッジ強度を参照したり、直前の前景画素の値を参照するなどして、前景/背景判定を行ってもよい。実施例2では、前景/背景判定の条件に、周辺画素のエッジ強度と直前の前景画素の情報を加える。これにより、より画像の特性に合った前景/背景判定が可能になる。
【００８３】
図9は実施例2の領域判定部102の処理を示すフローチャートである。
【００８４】
領域判定部102は、符号化が開始されると、注目画素の垂直方向の位置をカウントするカウンタyと、水平方向の位置をカウントするカウンタxを1に初期化し、前景画素の判定値q（直前の前景画素の値）を0に初期化する(S701)。
【００８５】
次に、領域判定部102は、注目画素の値X(x, y)と周辺八画素の値a〜hを比較する(S705)。注目画素の値X(x, y)と周辺八画素の値a〜hの少なくとも一つが一致（または類似）する場合は、注目画素のエッジ強度を算出する(S710)。エッジ強度ESは以下の方法で算出する。
【００８６】
注目画素の値X(x, y)と周辺八画素の値a〜hそれぞれを比較して、値X(x, y)と異なる周辺八画素の値の差分値Dを計算する。なお、差分値Dは、RGB各成分同士の差分絶対値の中で一番大きい差分絶対値を採用する。従って、差分値Dが取り得る範囲は0から255である。
【００８７】
例えば、値X(x, y)=(255, 128, 0)、並びに、値X(x, y)に一致しない、ある近傍画素の値がXa=(254, 200, 200)だとすると、各成分の差分絶対値はd=(1, 72, 200)である。従って、値X(x, y)と値Xaの差分値はD=200になる。値Xと異なる値をもつ近傍画素が一つの場合は、その差分値をエッジ強度Dにする。また、値Xと異なる値をもつ近傍画素が複数存在する場合は、それらの差分値Dの平均値をエッジ強度ESとする。また、閾値TFBの設定方法は、本実施例では任意の値を指定しておくことにする。なお、自動的に可変の閾値TFBの設定をする場合は、注目画素を中心とする3×3の範囲内で最大の輝度値と最小の輝度値の差分を算出し、その差分の絶対値を3で割った値を閾値TFBとする方法などが考えられる。
【００８８】
次に、領域判定部102は、エッジ強度ESと所定の閾値を比較する(S711)（ここでは、閾値TFBを50と指定しておく）。そして、ES＞TFBならば注目画素は前景画素として、q=X(x, y)により前景画素の判定値を更新する(S712)。そして、判定情報‘1’を出力し(S703)、処理をステップS706に進める。また、ES≦TFBならば注目画素は背景画素として判定情報‘0’を出力し(S705)、処理をステップS706に進める。
【００８９】
一方、領域判定部102は、注目画素の値X(x, y)と周辺八画素の値a〜hが一致（または類似）しない場合は、値X(x, y)と判定値qが一致するか否かを判定する。X(x, y)=qの場合は、注目画素は前景画素として判定情報‘1’を出力する(S703)。また、X(x, y)≠qの場合は、注目画素は背景画素として判定情報‘0’を出力する(S705)。
【００９０】
次に、領域判定部102は、カウンタxをインクリメントし(S706)、カウンタxと水平方向の画素数Wを比較する(S707)。そして、x＜Wの場合は処理をステップS702に戻して注目画素を一つ進める。なお、画素数Wは、原画像のヘッダ情報から取得する。
【００９１】
x=Wの場合、領域判定部102は、カウンタxを1にし、カウンタyをインクリメントし(S708)、カウンタyと垂直方向の画素数Hを比較する(S709)。そして、y＜Hの場合は処理をステップS502に戻して注目ラインを一つ進める。なお、画素数Hは、原画像のヘッダ情報から取得する。
【００９２】
y=Hの場合、領域判定部102は、処理を終了する。
【００９３】
このように、注目画素の値Xと、周辺八画素の値の比較だけではなく、注目画素のエッジ強度を参照して前景/背景判定を行う。従って、文字領域と写真領域を分離する精度を向上させることができる。
【００９４】
さらに、注目画素の値Xと前景画素の判定値q（直前の前景画素の値）を比較する。その結果、図10に示すような注目画素の値Xと同一の値をもつ画素が周辺八画素に存在しない場合でも、注目画素を前景画素として分離することができる。従って、文字領域の画素に高い確率でロスレス符号化を適用することができ、符号化圧縮による文字画像の画質劣化を抑制することができる。
【実施例３】
【００９５】
以下、本発明にかかる実施例3の画像処理を説明する。なお、実施例3において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００９６】
実施例1では、注目画素の値Xと周辺八画素の値を比較して、画素値が一致（または類似）する近傍画素があるか否かで前景/背景判定を行う例を説明した。他の方法でも前景/背景判定を行うことができる。周辺八画素を超えて画素値を参照する範囲を広げ、例えば、図11に示す太枠で示す注目画素の周辺24画素の値を参照して前景/背景判定を行ってもよい。これにより、より画像の特性に合った前景/背景判定が可能になる。
【００９７】
実施例3の領域判定部102は、実施例1と同様に、まず注目画素の値Xと周辺八画素の値を比較し前景/背景判定を行う。
【００９８】
周辺八画素に注目画素の値Xと同一の（または類似する）画素値をもつ近傍画素が存在しない場合、領域判定部102は、周辺八画素の外周の16画素の値と注目画素の値Xを比較する。この場合も、値Xと同一の（または類似する）画素値をもつ画素が一つでも存在すれば‘1’を、一つも存在しなければ‘0’の判定情報を出力する。
【００９９】
実施例3によれば、図10に示すような周辺八画素に注目画素の値Xと同一の（または類似する）値をもつ画素が存在しない場合でも、注目画素を前景画素として分離することができる。従って、文字領域の画素に高い確率でロスレス符号化を適用することができ、符号化圧縮による文字画像の画質劣化を抑制することができる
【実施例４】
【０１００】
以下、本発明にかかる実施例4の画像処理を説明する。なお、実施例4において、実施例1〜3と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１０１】
実施例1では、原画像全体を一括して処理する方法を説明した。実施例4では、原画像を矩形ブロックに分割して、ブロックごとに処理する方法を説明する。原画像をブロックに分割して前景/背景判定を行えば、前景画素の色が限定される可能性が高くなり、ロスレス符号化の符号化効率が向上すると考えられる。
【０１０２】
そのため、実施例4では、前景画素の色が限定色（例えば32色以下）の場合は、画素値をインデックス値に変換してからロスレス符号化を行い、色数が所定数以上の場合は、これまでどおり、画素値をそのままロスレス符号化する方法を説明する。なお、画素値をそのままロスレス符号化する場合の処理は実施例1〜3と同様の構成になるため、前景画素が特定の色数以内の場合の処理のみ詳細に説明する。
【０１０３】
［符号化装置］
図12は実施例3の符号化装置の構成例を示すブロック図で、図1に示す符号化装置にブロック分割部1201、タイルバッファ1202、前景画素変換部1203を追加し、透過色設定部103を除いた構成である。
【０１０４】
ブロック分割部1201は、ラインバッファ101から読み込んだストライプ画像を水平画素数Tw、垂直画素数Thの矩形ブロック（タイル）に分割して、タイルバッファ1202へ出力する。タイルバッファ1202は、1タイル分の画像データをバッファする。タイルバッファ1202に必要な最低の記憶容量はTw×Th×3バイトである。
【０１０５】
タイルバッファ1202がバッファするタイルの画像データの水平方向位置x、垂直方向位置yの画素の成分値をP(x, y, c)と定義する。ただし、0≦x≦Tw-1、0≦y≦Th-1であり、cはR、G、Bの何れかである。
【０１０６】
領域判定部102は、タイルバッファ1202からタイルの画像データを入力する。前景画素変換部1203は、領域判定部102から出力されるタイルデータと、前景/背景判定の結果を示す判定情報を受信し、画素値をインデックス値に変換する。
【０１０７】
●前景画素変換部
図13は前景画素変換部1203の構成例を示すブロック図である。
【０１０８】
有効レベル数カウンタ1301は、領域判定部102からタイルデータを読み出し、タイルデータの色成分ごとに信号レベル（輝度レベル）の数を計数（カウント）する。言い換えれば、有効レベル数カウンタ1301は、色成分ごとに、何種類の信号レベルがタイルデータに含まれるかをカウントする。有効レベル数カウンタ1301のカウント値である、各色成分の信号レベルの数を有効レベル数と呼び、各色成分の有効レベル数をそれぞれNLV(R)、NLV(G)、NLV(B)と表す。
【０１０９】
図14は有効レベル数カウンタ1301が有効レベル数をカウントするための二値配列F(c, i)を示す図である。cは成分を表し、R、G、Bの何れかである。iは輝度値を表し、0〜255の何れかの整数値である。F(c, i)=‘0’は注目タイルの成分cに輝度値iが出現しないことを意味し、F(c, i)=‘1’は注目タイルの成分cに輝度値iが出現することを意味する。
【０１１０】
●有効レベル数カウンタの処理
図15は有効レベル数カウンタ1301の処理を示すフローチャートである。
【０１１１】
有効レベル数カウンタ1301は、図14に示す配列Fの全要素を‘0’に初期化する(S1601)。そして、タイル内の垂直方向の画素位置を示すカウンタyを1に初期化し(S1602)、タイル内の水平方向の画素位置を示すカウンタxを1に初期化する(S1603)。
【０１１２】
次に、有効レベル数カウンタ1301は、タイルデータP(x, y, c)を取得して、配列Fの要素F(c, P(x, y, c))をインクリメントする(S1604)。つまり、P(x, y, R)、P(x, y, G)、P(x, y, B)に対応する配列Fの要素F(R, P(x, y, R))、F(G, P(x, y, G))、F(B, P(x, y, B))を‘1’にする。
【０１１３】
次に、有効レベル数カウンタ1301は、カウンタxをインクリメントし(S1605)、カウンタxとタイルの水平方向の画素数Twを比較する(S1606)。そして、x＜Twの場合は処理をステップS1604に戻し、次の画素を処理する。
【０１１４】
x=Twの場合、有効レベル数カウンタ1301は、カウンタyをインクリメントし(S1607)、カウンタyとタイルの垂直方向の画素数Thを比較する(S1608)。そして、y＜Thの場合は処理をステップS1603に戻し、次のラインを処理する。
【０１１５】
y=Thの場合、有効レベル数カウンタ1301は、配列Fを調べて、各成分の有効レベル数NLV(c)をカウントする(S1609)。つまり、R成分について、要素F(R, 0)からF(R, 255)のうち値が‘1’の要素の数をカウントしてNLV(R)にする。同様に、G成分、B成分についてNLV(G)、NLV(B)を得る。
【０１１６】
インデックステーブル生成部1302は、有効レベル数カウンタ1301が保持する配列Fを参照して、図16に示すようなインデックス変換用のテーブル（以下、インデックステーブル）IDXを生成する。なお、インデックステーブルIDXは、インデックス変換部1304が輝度値をインデックス値に変換する際に参照するもので、iは輝度値を表し、0から255の何れかの整数値である。そして、生成したインデックステーブルIDXをインデックステーブルメモリ1303に格納する。さらに、符号データに付加する変換テーブル情報をロスレス符号化部104に出力する。
【０１１７】
●インデックステーブル生成部の処理
図17はインデックステーブル生成部1302の処理を示すフローチャートである。なお、インデックステーブル生成部1302は、色成分ごとにインデックステーブルを生成するが、処理は同一であるので、ここでは成分をcとして説明する。
【０１１８】
インデックステーブル生成部1302は、インデックステーブルメモリ1303が保持するインデックステーブルIDXの全要素を-1に初期化する(S1801)。そして、輝度値を表すカウンタiを0に初期化し(S1802)、インデックス値を表す変数idx(c)を0に初期化する(S1803)。
【０１１９】
次に、インデックステーブル生成部1302は、有効レベル数カウント部1301が保持する配列Fを参照して、注目輝度値iに対応するF(c, i)を判定する(S1804)。F(c, i)=‘0’の場合は処理をステップS1807へ進める。
【０１２０】
F(c, i)=‘1’の場合、インデックステーブル生成部1302は、IDX(c, i)にidx(c)を設定するとともに、idx(c)をロスレス符号化部104に出力する(S1805)。
【０１２１】
次に、インデックステーブル生成部1302は、idx(c)をインクリメントし(S1806)、カウンタiをインクリメントして(S1807)、i＜256か否かを判定する(S1808)。i＜256の場合は処理をステップS1804に戻して、次の輝度値を処理する。
【０１２２】
i=256の場合、インデックステーブル生成部1302は、一つの色成分の付加情報の終了を表す終了コードとして-1をロスレス符号化部104に出力する(S1809)。
【０１２３】
インデックステーブル生成部1302は、以上の処理をRGB各成分について行い、インデックステーブルメモリ1303にインデックステーブルIDXを生成するとともに、変換テーブル情報をロスレス符号化部104に出力する。
【０１２４】
●インデックス変換部以降の処理
注目タイルの有効レベル数の計数と、インデックステーブルIDXの生成が終了すると、インデックス変換部1304、セレクタ1305、透過色設定部103、ロスレス符号化部104は、タイルバッファ1202に格納されたタイルデータの符号化を開始する。
【０１２５】
符号化装置は、タイルデータを色成分順、かつ、ラスタスキャン順に読み出して符号化する。つまり、タイルのR成分を符号化し、G成分を符号化し、B成分を符号化する。各成分の符号化処理は共通であるから、色成分をcとして符号化処理を説明する。
【０１２６】
インデックス変換部1304は、インデックステーブルIDXを参照して、タイルバッファ1202から成分順、ラスタスキャン順に読み出された前景画素の輝度値P(x, y, c)をインデックス値IDX(c, P(x, y, c))に置き換える。また、インデックス変換部1304は、インデックステーブルIDXに定義されていないインデックス値、つまり要素が-1のインデックス値IDX(c, j)を一つ選んで透過色tとして、背景画素の輝度値P(x, y c)を透過色tで置き換える。
【０１２７】
セレクタ1305は、タイルバッファ1202から成分順、ラスタスキャン順に読み出された輝度値P(x, y, c)を入力する。また、インデックス変換部1304が出力するインデックス値IDX(c, P(x, y, c))または透過色t=IDX(c, j)を入力する。セレクタ1305は、所定の閾値MLと、有効レベル数カウンタ1301が保持する有効レベル数NLV(c)を比較して、NLV(c)＜MLの場合はインデックス変換部1304の出力値を選択的に出力する。また、NLV(c)≧MLの場合はタイルバッファ1202から読み出された輝度値P(x, y, c)または透過色tを選択的に出力する。
【０１２８】
ロスレス符号化部104は、セレクタ1305から入力される画像データをロスレス符号化して、後述する有効レベル数NLV(c)の判定結果を示す情報と変換テーブル情報を含むヘッダを付加した、タイル単位の符号データを出力する。
【０１２９】
図18はタイル単位の符号データの構成例を示す図である。
【０１３０】
タイル単位の符号データの先頭には、1バイトの有効レベル数NLV(c)の判定結果を示す情報が付加される。図18(a)に示すように、最上位ビット(MSB)をビット7、最下位ビット(LSB)をビット0とする。この場合、ビット2が‘1’の場合はNLV(R)＜MLを表し、ビット1が‘1’の場合はNLV(G)＜MLを表し、ビット0が‘1’の場合はNLV(B)＜MLを表す。なお、ビット7からビット3には‘0’を設定する。
【０１３１】
NLV(R)、NLV(G)、NLV(B)の何れかがML未満の場合、つまり、先頭バイト＞0の場合は、図18(a)に示すように、符号データの先頭バイトに続いて変換テーブル情報が付加される。もし、NLV(R)、NLV(G)、NLV(B)のすべてがML以上の場合、つまり、先頭バイト=0の場合は、図18(b)に示すように、変換テーブル情報は付加されない。また、変換テーブル情報は、NLV(c)＜MLである色成分についてのみ符号データに付加される。
【０１３２】
あるタイルについて、変換テーブル情報idx(c)が下のようになったとする。なお、-1は色成分ごとの変換テーブル情報のデリミタである。
0, 1, 2, 3, 4, … , 254, 255, -1, 0, 128, 255, -1, 0, 64, 128, 192, 255
【０１３３】
また、NLV(R)=255、NLV(G)=3、NLV(B)=5であり、ML=32の場合、符号データの先頭バイトは‘00000011’=3である。この場合、デリミタの-1によって、変換テーブル情報から色成分GとBの変換テーブル情報を切り出し、符号データに付加する。従って、上の例において、符号データに付加される変換テーブル情報は下のようになる。
0, 128, 255, 0, 0, 64, 128, 192, 255
【０１３４】
変換テーブル情報を符号データに付加する際、デリミタの-1は0に置き換えられ、変換テーブル情報の末尾にある0は削除される。復号装置は、変換テーブル情報を左から右に順に解析して、前の値よりも小さい、または、等しい値をデリミタと判断する。
【０１３５】
このように、タイル単位に符号化を行い、必要な変換テーブル情報を各タイルの符号データに含めることによって、復号装置は、タイル単位に画像データを復号することができる。
【０１３６】
なお、符号データ中に所定値が発生しないように工夫を加えて、特殊なマーカを設定し、各タイルの符号データの先頭または末尾にマーカを配置、または、各タイルの符号データ長を別途管理すれば、タイル単位にランダムアクセスして復号することが可能になる。
【０１３７】
このように、タイル単位のロスレス符号化が可能になる上、タイルの輝度値の有効レベル数が閾値ML未満の場合は、前景画像の当該色成分の輝度値をインデックス値に置き換える。さらに、色成分ごとに透過色tを設定してロスレス符号化する。
【０１３８】
従って、原画像をブロックに分割して前景/背景判定を行うことで、前景画素の色を限定してインデックス値に置き換えられる可能性が高くなり、ロスレス符号化の符号化効率が向上する。つまり、実施例1などの効果に加えて、さらに、文字領域と写真領域が混在する原画像を効率的に圧縮符号化することができる。
【０１３９】
［他の実施例］
上記の実施例では、例えば、以下の各手段を備える画像処理装置を説明した。前景画素と背景画素からなる画像データを入力する入力手段。画像データにおいて、前景画素として出現する画素値のヒストグラムに基づいて、背景画素の画素値に前景画素として出現しない画素値を設定することにより、第１の画像データを生成する第１の生成手段。第１の画像データを符号化する第１の符号化手段。画像データにおいて、前景画素の画素値に背景画素の画素値に基づいた値を設定することにより、第２の画像データを生成する第２の生成手段。第２の画像データを符号化する第２の符号化手段である。
【０１４０】
なお、上記実施例では、領域の分離方法の例をいくつか挙げたが、PDL画像の場合には、画像データに領域情報が付与された状態で入力されることがある。そのため、付与されている領域情報を用いて前景画像と背景画像の分離を行っても構わない。
【０１４１】
また、本発明は、複数の機器（例えばコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置、制御装置など）に適用してもよい。
【０１４２】
また、本発明の目的は、上記実施例の機能を実現するコンピュータプログラムを記録した記憶媒体をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）が前記コンピュータプログラムを実行することでも達成される。この場合、記憶媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのコンピュータプログラムと、そのコンピュータプログラムを記憶する、コンピュータが読み取り可能な記憶媒体は本発明を構成する。
【０１４３】
また、前記コンピュータプログラムの実行により上記機能が実現されるだけではない。つまり、そのコンピュータプログラムの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)および/または第一の、第二の、第三の、…プログラムなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０１４４】
また、前記コンピュータプログラムがコンピュータに接続された機能拡張カードやユニットなどのデバイスのメモリに書き込まれていてもよい。つまり、そのコンピュータプログラムの指示により、第一の、第二の、第三の、…デバイスのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０１４５】
本発明を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応または関連するコンピュータプログラムが格納される。
【図面の簡単な説明】
【０１４６】
【図１】実施例の符号化装置の構成例を示すブロック図、
【図２】周辺八画素を示す図、
【図３】符号データの構成例を示す図、
【図４】ロスレス符号化部の構成例を示すブロック図、
【図５】ハフマンテーブルの一例を示す図、
【図６】実施例の復号装置の構成例を示すブロック図、
【図７】画像合成部の処理を示すフローチャート、
【図８】コンピュータ装置の構成例を示すブロック図、
【図９】実施例2の領域判定部の処理を示すフローチャート、
【図１０】注目画素の値と同一の値をもつ画素が周辺八画素に存在しない場合を説明する図、
【図１１】周辺24画素を示す図、
【図１２】実施例3の符号化装置の構成例を示すブロック図、
【図１３】前景画素変換部の構成例を示すブロック図、
【図１４】有効レベル数カウンタが有効レベル数をカウントするための二値配列を示す図、
【図１５】有効レベル数カウンタの処理を示すフローチャート、
【図１６】インデックス変換用のテーブル例を示す図、
【図１７】インデックステーブル生成部の処理を示すフローチャート、
【図１８】タイル単位の符号データの構成例を示す図である。
【図１９Ａ】前景画素のヒストグラム例を示す図、
【図１９Ｂ】前景画素のヒストグラム例を示す図、
【図１９Ｃ】前景画素のヒストグラム例を示す図、
【図１９Ｄ】前景画素のヒストグラム例を示す図、
【図２０】輝度値が異なる前景画素が混在する画像例を示す図である。
【図１】
2008306394.tif 000003
【図２】
2008306394.tif 000004
【図３】
2008306394.tif 000005
【図４】
2008306394.tif 000006
【図５】
2008306394.tif 000007
【図６】
2008306394.tif 000008
【図７】
2008306394.tif 000009
【図８】
2008306394.tif 000010
【図９】
2008306394.tif 000011
【図１０】
2008306394.tif 000012
【図１１】
2008306394.tif 000013
【図１２】
2008306394.tif 000014
【図１３】
2008306394.tif 000015
【図１４】
2008306394.tif 000016
【図１５】
2008306394.tif 000017
【図１６】
2008306394.tif 000018
【図１７】
2008306394.tif 000019
【図１８】
2008306394.tif 000020
【図１９Ａ】
2008306394.tif 000021
【図１９Ｂ】
2008306394.tif 000022
【図１９Ｃ】
2008306394.tif 000023
【図１９Ｄ】
2008306394.tif 000024
【図２０】
2008306394.tif 000025