(57)【特許請求の範囲】
【請求項１】
階調幅指標を３つ以上に分割し、階調幅指標の中央よりも両端側を密に分割して、解像度成分の区間設定を行うことを特徴とするブロックトランケーション符号化装置。
【請求項２】
請求項１に記載のブロックトランケーション符号化装置であって、前記階調幅指標を１：２：２：１に分割することを特徴とするブロックトランケーション符号化装置。
【請求項３】
階調幅指標を３つ以上に分割し、階調幅指標の中央よりも両端側を密に分割して、解像度成分の区間設定を行うステップを有することを特徴とするブロックトランケーション符号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ブロックトランケーション符号化装置及び方法に関するもので、特に解像度成分の適切な区間設定を行うことで画質を向上させるものに関する。
【０００２】
【従来の技術】
従来から、静止画像の符号化法として、ブロックトランケーション符号化（BTC Block Truncation Coding ）と呼ばれる方法が知られている。これは、原画像を m×n 画素のブロックに分解し（分割は必須ではないが）、該ブロックに所定の階調数を割り当て、該限られた階調数によってブロック内の画素値を表現する（階調数を量子化する）方法である。
【０００３】
図２０は、４階調を割り当ててモノクロ画像の符号化を行う場合の、量子化区間および復号値の設定の概要を示したものである。図２０の太線は、符号化対象となるブロックの画素値のヒストグラムを示しており、横軸が画素値、縦軸が頻度である。
該ヒストグラムを元に、ブロック内の画素値の平均値的な値LA、ブロック内の画素値のダイナミックレンジを反映した値LDが求められ、これらの２つの量をもとに、画素値を量子化する４つの区間が設定される。原画像の各画素がどの区間に含まれるかを示すフラグをφと呼び、符号化時には、LA、LD、各画素のφ、の３つの量が符号化される。なお、LDは階調幅指標と呼ばれ、φは解像度成分と呼ばれる。
【０００４】
さて今、上記モノクロ画像（１画素8bitの階調とする）について、２×４画素（計64bit ）を１ブロックとして、1/2 に圧縮して符号化することを考える。各ブロックに４階調を割り当てるためには、１画素当たりφとして2bitが必要になるため、φだけで計16bit が必要になり、1/2 （＝ブロック当たり32bit ）に圧縮するためには、残る16bit をLA、LDに割り当てることになる。
ここで、LA、LDおよびφの値は、一般的なブロックトランケーション符号化においては、以下の様に求められる。
図２０のようにブロック内の画素値の最大値をmax 、最小値をmin とし、区間(max−min)を４等分する。そして、該4 区間の内の両端の区間について、各区間内の画素値の平均値Q1、Q4を求める。そして、
LA＝（Q1＋Q4）/2
LD＝ Q4 −Q1
によって、LA、LDが求められ、これを元に、量子化区間の境界L1、L2が
L1＝ LA −LD/4
L2＝ LA+LD/4
の様に求められる。ここで重要なのは、LDを４等分して、画素値の量子化区間を設定している点である。これは、ヒストグラムの中央値付近を細かく量子化し、端部を粗く量子化することに他ならず、中央値付近の出現頻度が相対的に大きいヒストグラムを想定して量子化区間の設定を行っていると考えられる。なぜならば、出現頻度の多い区間を密に量子化することで、ブロック全体としての量子化誤差が小さく抑えられ、復号後の画質を向上させられるからである。このように、一般的なヒストグラムを想定して、LDの区間設定を行うBTC を、GBTC（Generalized Block Truncation Coding)型符号化方式と呼び、特開平６−１６４９５０公報にも記載のある通りである。
ここで、x を画素値とした場合、φは
min ≦x ≦L1  の場合  φ=0
L1＜x ≦LA  の場合  φ=1
LA＜x ≦L2  の場合  φ=2
L2＜x ≦max   の場合  φ=3
と規定される。
一方、復号値ｄは、
φ＝0   の場合  ｄ = d1 ＝ Q1 （＝ＬＡ―ＬＤ/2）
φ＝1   の場合  ｄ = d2 ＝ LA − LD/6
φ＝2   の場合  ｄ = d3 ＝ LA ＋ LD/6
φ＝3   の場合  ｄ = d4 ＝ Q4 （＝ＬＡ＋ＬＤ/2）
と規定される。ここで重要なのは、LDを6 等分して、復号値d2、d3を規定している点である。これは、LAから見て、各量子化区間の中央よりも離れた位置に復号することに他ならないが、これは復号値のダイナミックレンジを広めにとることを意図しているように思われる。
なお上記では、４階調に量子化するために区間（max −min)を4 等分し、その後LDを求めているが、その他の階調数に量子化する場合は、K 。Ogura ；"Generalized Block Truncation Coding（GBTC)"、ISO/TC97/SC2/WG8 N510 （June 1987)を参照されたい（GBTC型符号化方式は、GBTCのサブセットである）。
【０００５】
以上のようにGBTC型符号化方式では、中央値付近の出現頻度が相対的に大きいヒストグラムを想定して量子化区間の設定を行っていると考えられるが、実際の画像はそうでない場合がある。たとえは、図２１に示したようなモノクロの文字画像の場合、その画素値のヒストグラムは図２２の通りであり、図２０とは反対に中央の頻度が少ないものとなる。
また上記GBTC型符号化方式では、ブロック内の全ての画素に一律に2bitのφを割り当てているが、原画像を小さな領域に分割して符号化する場合など、対象となる画像自体の階調がもともと限られている場合には、一律な割り当ては効率的ではない。すなわち、原画像の階調が広い場合にはφへの割り当てを増やし、狭い場合には、φへの割り当てを減らすような構成が必要である。（特願２０００−０９２３９３記載の“画像を予め定められた一定の大きさの矩形ブロックに分割し、該ブロックを更に分割して周波数変換の単位となる画像ブロックを作成し、該周波数変換結果を元に矩形ブロックを予め定められた一定長の符号長に符号化を行う固定長符号化装置。”は、こうした手法を意図したものである。）
【０００６】
そこで例えば、上記２×４画素のブロックを２×２画素のサブブロック２つに分割し、該２つのサブブロックを“階調が狭いサブブロック" と“階調が広いサブブロック" に分類し、前者に1 階調を割り当て、後者に４階調を割り当てることを考える。これにより、２×４画素のブロック単位で見れば、計５階調（あるいはそれ以上）を得ることが出来、復号画像の画質を向上させることができる。この場合、“階調が狭いサブブロック" に対しては画素の代表値のみを符号化し、“階調が広いサブブロック" に対してはBTC を適用するような構成が考えられる。
この場合にも、“階調が広いサブブロック" のみの画素値のヒストグラムは、もはやブロック全体のヒストグラムではなく、文字画像でない場合でも、上記GBTC型符号化方式が想定しているヒストグラムとは異なるものとなる。そもそも“階調が狭いサブブロック" とは、サブブロック内の画素値の差が少ないサブブロックであり、“階調が広いサブブロック" とは、サブブロック内の画素値として、大きいものと小さいものの両方を含むサブブロックである。よって、“階調が広いサブブロック" のみの画素値のヒストグラムは、図２３のようにフラットであったり、図２４に示すように、むしろ中央の頻度が少な目の、図２０とは上下が反転した形状になることがあるのである。
【０００７】
以上のような場合には、ヒストグラムに対する想定が成り立たないため、GBTC型符号化方式をそのまま適用することはできない。最適な画質を得るためには、新たなLDの分割法が必須であり、例えば、図１のように、LDの中央を粗に分割し、両端側を密に分割することが必要である。また、復号値の設定としては、解像度成分として設定された各区間の中央よりも、階調幅指標の両端側よりであるのが望ましい。
【０００８】
【発明が解決しようとする課題】
そこで、本発明は、通常の形状ではないヒストグラムを有しうる画像にブロックトランケーション符号化を適用する場合において、適切な区間設定を行って画質を向上させることを目的とする。
【００２６】
なお、" 通常の形状ではないヒストグラム" として、図２３のようなフラットな分布を想定した場合、区間(max−min)を４等分したものを、そのままφの区間とし、各区間の中央に復号することで、量子化誤差を最小にすることができる。これはLDを１：２：２：１に分割することに相当する。
【００２７】
よって、本発明は、上記の目的に加えて、フラットな分布の場合に、量子化誤差を最小にすることを目的とする。
【００３５】
【課題を解決するための手段】
以上に鑑み、請求項１に係る発明は、階調幅指標を３つ以上に分割し、階調幅指標の中央よりも両端側を密に分割して、解像度成分の区間設定を行うことを特徴とするブロックトランケーション符号化装置を提案する。
【００４８】
請求項２に係る発明は、請求項１に記載のブロックトランケーション符号化装置であって、前記階調幅指標を１：２：２：１に分割することを特徴とするブロックトランケーション符号化装置を提案する。
【００５０】
請求項３に係る発明は、階調幅指標を３つ以上に分割し、階調幅指標の中央よりも両端側を密に分割して、解像度成分の区間設定を行うステップを有することを特徴とするブロックトランケーション符号化方法を提案する。
【００５６】
【発明の実施の形態】
以下、本発明の実施の形態の好適な例を図面を参照しながら説明するが、まず、本願実施例の装置構成について説明を行う。
【００５７】
［装置構成１］
図２は、本願にかかる装置構成の第１の例を示したものである。データバスを介して、ＨＤＤ、ＲＡＭ、ＣＰＵが接続されており、以下の流れで、原画像の符号化処理がなされる。
▲１▼  ＨＤＤ上に記録されたオリジナル画像は、ＣＰＵからの命令によってＲＡＭ上に読み込まれる。
▲２▼  〔符号化ステップ〕ＣＰＵはＲＡＭ上の画像を部分的に読み込み、本願の符号化方法を適用して符号化を行う。
▲３▼  ＣＰＵは、符号化後のデータをＲＡＭ上の別の領域に書き込む。
▲４▼  全ての原画像が符号化されると、ＣＰＵからの命令によって、符号化後のデータがＨＤＤ上に記録される。
また、同一の装置構成において、以下の流れで、符号化された画像の復号化処理がなされる。
▲１▼  ＨＤＤ上に記録された符号化された画像は、ＣＰＵからの命令によってＲＡＭ上に読み込まれる。
▲２▼  〔復号化ステップ〕ＣＰＵはＲＡＭ上の符号化された画像を部分的に読み込み、本願を適用して復号化を行う。
▲３▼  ＣＰＵは、復号化後のデータをＲＡＭ上の別の領域に書き込む。
▲４▼  全ての画像が復号化されると、ＣＰＵからの命令によって、復号化後のデータがＨＤＤ上に記録される。
【００５８】
［装置構成２］
また図３は、本願にかかる装置構成の第２の例を示したものである。データバスを介して、ＨＤＤ、ＲＡＭ１（ＰＣ内) 、ＣＰＵ１（ＰＣ内) 、プリンタが接続されている。オリジナル画像のプリントアウトに際し、画像の符号化がなされ、符号化後のデータがプリンタに送信される。プリンタへの送信データ量が低減されるため、送信時間が短縮され、符号化・復号化に要する時間を加味しても、高速なプリントが可能になる。
▲１▼  ＨＤＤ上に記録されたオリジナル画像は、ＣＰＵからの命令によってＲＡＭ上に読み込まれる。
▲２▼  〔符号化ステップ〕ＣＰＵ１は、ＲＡＭ１上の画像を部分的に読み込み、本願の符号化方法を適用して符号化を行う。
▲３▼  ＣＰＵ１は、符号化後のデータをＲＡＭ１上の別の領域に書き込む。
▲４▼  ＣＰＵ１からの命令によって、符号化後のデータがプリンタ内のＲＡＭ２上に記録される。
▲５▼  〔復号化ステップ〕プリンタ内のＣＰＵ２は、符号化後のデータを読み込み、本願の復号化処理を適用して画像の復号を行う。
▲６▼  ＣＰＵ２は、復号化後のデータをＲＡＭ２上に書き込む。
プリンタは、全てのデータが復号化された後、該復号化後のデータを所定の手順でプリントアウトする
【００５９】
以上のような装置構成のもと、本願実施例１においては、CMYKの４コンポーネントからなるカラーの原画像（１画素32bit ）を２×２画素単位のブロックに分割し、４階調に量子化してブロックトランケーション符号化を行う（図４）。本実施例は、図５にその符号構成を示している（φは４画素分のbit を連結するため、8bitとなる）。
ここで図７は、本願実施例に共通な、ブロック内で最大値・最小値を探索する処理、図８はLA、LD算出処理、図９はφ算出処理を示したものである。本願においては、図９の様に、ＬＤを６で割ることにより、その両端を密に量子化する。
さて、図１０は本願実施例１の流れを示したものであり、まずＣコンポーネント（Ｃプレーン）の画素値Ｐ（ｉ）が入力された後、ブロック内の最大値・最小値が求められる。そして、最大値―最小値（これは画素値の分布幅を直接反映する量である）が所定値Th以上のときは、フラグ＝１としてBTC を適用し、そうでない場合にはフラグ＝０としてブロック内の画素値の平均値を符号化し、これを全てのコンポーネントおよびブロックについて繰り返す。
本例においては、各コンポーネント（プレーン）の画素値は８bit であり、図５のように、ＬＡ、ＬＤ、平均値全てに８bit を割り当てているため、LA、ＬＤ、平均値は量子化せずにそのまま符号とすることができる。本例においては、各ブロックごとに、BTC を適用するか平均値を符号化するかを判断し、これを全プレーンについて行うため、符号の並びは、例えば図６のようになる。
また、これらの符号を復号する場合には、まずフラグを読み、ＢＴＣで符号化されている場合には、LA、LD、φを読み込み、復号値ｄを、
φ＝0 の場合 ｄ = d1 ＝ Q1 （＝ＬＡ−ＬＤ/2）
φ＝1 の場合 ｄ = d2 ＝ LA − LD/6
φ＝2 の場合 ｄ = d3 ＝ LA ＋ LD/6
φ＝3 の場合 ｄ = d4 ＝ Q4 （＝ＬＡ＋ＬＤ/2）
によって得る。これは、先述のように、通常復号値を量子化区間の両端よりに選ぶことを意味するが、特にヒストグラムがフラットな場合には、区間の中央に復号することを意味する。また、ＢＴＣで符号化されていない場合は、符号がそのまま４画素分の復号値となる（なお、本明細書内ではフローチャートは省略する）。
【００６０】
また、図１４は本願実施例２の流れを示したものである。本例では、CMY の３コンポーネントからなるカラーの原画像（１画素24bit ）を２×２画素単位のブロックに分割し、４階調に量子化してブロックトランケーション符号化を行う。まずＭコンポーネントの画素値Ｐ（ｉ）が入力された後、ブロック内の最大値・最小値が求められ、最大値―最小値（これは画素値の分布幅を直接反映する量である）が所定値Th以上のときは、フラグ＝１としてBTC を適用し、そうでない場合にはフラグ＝０としてブロック内の画素値の平均値を符号化する。つぎに、その他のコンポーネントに関しては、Ｍコンポーネントの結果をそのまま反映して、BTC とするか否かを決定する。このため符号は、図１１の様になる。
【００６１】
また、図１５は本願実施例３の流れを示したものである。本例では、RGB の３コンポーネントからなるカラーの原画像（１画素24bit ）を２×２画素単位のブロックに分割し、４階調に量子化してブロックトランケーション符号化を行う。まず、ブロック内の全ての画素値は下記式によって、輝度Ｙと色差Ｕ、Ｖに変換される。これは、RCT （Reversible Component Transform） と呼ばれる変換である。
輝度Ｙ＝｜＿（Ｒ＋２Ｇ＋Ｂ）／４＿｜  （記号｜＿  ＿｜はフロア関数を示す）
色差Ｕ＝Ｒ−Ｇ          ・・・・式１
色差Ｖ＝Ｂ−Ｇ
逆変換は、
Ｒ＝Ｇ＋Ｕ
Ｇ＝Ｙ−｜＿（Ｕ＋Ｖ）／４＿｜      ・・・・式２
Ｂ＝Ｖ＋Ｇ
そして、ブロック内の４画素分の輝度（ａ、ｂ、ｃ、ｄとする）について、図１３に示したＳ変換が施され、４つの係数ＬＬ、ＨＬ、ＬＨ、ＨＨが生成される。Ｓ変換は簡易なウェーブレットフィルタであり、ＨＬ、ＬＨ、ＨＨ係数は、ハイパスフィルタ出力に相当する。そして、これらのいずれかの値が所定値Ｔｈ（ＨＨは２Ｔ）以上である場合、ＹＵＶの全てに対してＢＴＣが適用され、そうでない場合には平均値が符号化される。よって符号は、図１２の様になる。
なお、これらの符号を復号する場合には、まずフラグを読み、ＢＴＣで符号化されている場合には、LA、LD、φを読み込み、復号値ｄを、
φ＝0 の場合 ｄ = d1 ＝ Q1 （＝ＬＡ−ＬＤ/2）
φ＝1 の場合 ｄ = d2 ＝ LA − LD/6
φ＝2 の場合 ｄ = d3 ＝ LA ＋ LD/6
φ＝3 の場合 ｄ = d4 ＝ Q4 （＝ＬＡ＋ＬＤ/2）
によって得る。また、ＢＴＣで符号化されていない場合は、符号がそのまま４画素分の復号値となる。その後、上式２によってYUV をＲＧＢに戻すことによって、画素値を得ることができる（本明細書内ではフローチャートは省略する）。
【００６２】
また本願実施例４において、図１６はＲＧＢの３コンポーネントからなるカラーの原画像（１画素24bit ）を２×４画素単位のブロックに分割し、さらにこれを２×２画素のサブブロックＡ、Ｂに再分割し、符号化する場合の様子を示している。本実施例は、図１７にその符号構成を示している。
図１９はその流れを示したものであり、各サブブロックのＲＧＢ値は、それぞれＹＵＶ変換され、その後輝度または色差がＳ変換される。そしてＳ変換係数と所定値との関係で、ＢＴＣの適否が、
サブブロックＡ、Ｂともに平均値で符号化。フラグ＝０
サブブロックＡは平均値、ＢはＢＴＣ。フラグ＝１でφは8bit
サブブロックＡはＢＴＣ、Ｂは平均値。フラグ＝２でφは8bit
サブブロックＡ、Ｂをまとめて、８画素分でＢＴＣ。フラグ＝３でφは16bit
（ＬＡ、ＬＤは２で割って７bit に量子化）
のように決定され、これを輝度・色差の全て、および全てのブロックについて繰り返す。よって符号の例は、図１８の様になる。実施例１のように、各サブブロックに個別にＢＴＣを適用するよりも、本例のように２つのサブブロックにまとめてＢＴＣを適用した方が、LA、LDが一組で済む分、圧縮率を上げることができる。
また同様に、復号の場合には、まずフラグを読み、ＢＴＣで符号化されている場合には、LA、LD、φを読み込み、復号値ｄを、
φ＝0 の場合 ｄ = d1 ＝ Q1 （＝ＬＡ−ＬＤ/2）
φ＝1 の場合 ｄ = d2 ＝ LA − LD/6
φ＝2 の場合 ｄ = d3 ＝ LA ＋ LD/6
φ＝3 の場合 ｄ = d4 ＝ Q4 （＝ＬＡ＋ＬＤ/2）
によって得る。また、平均値としても符号化されている場合は、符号がそのまま４画素分の復号値となる。その後、上式２によってYUV をＲＧＢに戻すことによって、画素値を得ることができる（本明細書内ではフローチャートは省略する）。
【００６４】
【発明の効果】
請求項１に記載のブロックトランケーション符号化装置は、階調幅指標を３つ以上に分割し、階調幅指標の中央よりも両端側を密に分割して、解像度成分の区間設定を行うので、通常の形状ではないヒストグラムを有しうる画像にブロックトランケーション符号化を適用する場合において、適切な区間設定を行って画質を向上させることが可能となる。
【００７７】
請求項２に記載のブロックトランケーション符号化装置は、請求項１に記載のブロックトランケーション符号化装置であって、前記階調幅指標を１：２：２：１に分割するので、フラットな分布の場合に、量子化誤差を最小にすることができる。
【００７９】
請求項３に記載のブロックトランケーション符号化方法は、階調幅指標を３つ以上に分割し、階調幅指標の中央よりも両端側を密に分割して、解像度成分の区間設定を行うステップを有するので、通常の形状ではないヒストグラムを有しうる画像にブロックトランケーション符号化を適用する場合において、適切な区間設定を行って画質を向上させることができる。
【図面の簡単な説明】
【図１】本願の区間設定法である。
【図２】本願の装置構成例１の図である。
【図３】本願の装置構成例２の図である。
【図４】本願実施例１のCMYKの４コンポーネントからなるカラーの原画像（１画素32bit ）を２×２画素単位のブロックに分割する図である。
【図５】本願実施例１の符号構成図である。
【図６】本願実施例１の符号の並びの一例である。
【図７】本願実施例の最大・最小値探索処理のフローチャートである。
【図８】本願実施例のLA、LD算出処理のフローチャートである。
【図９】本願実施例のφ算出処理のフローチャートである。
【図１０】本願実施例１のフローチャートである。
【図１１】本願実施例２の符号構成図である。
【図１２】本願実施例３の符号構成図である。
【図１３】Ｓ変換および逆Ｓ変換の変換式である。
【図１４】本願実施例２のフローチャートである。
【図１５】本願実施例３のフローチャートである。
【図１６】本願実施例４のＲＧＢの３コンポーネントからなるカラーの原画像（１画素24bit ）を２×４画素単位のブロックに分割する図である。
【図１７】本願実施例４の符号構成図である。
【図１８】本願実施例４の符号の並びの一例である。
【図１９】本願実施例４のフローチャートである。
【図２０】従来技術のＧＢＴＣにおける量子各区間および復号値の設定法の概要図である。
【図２１】従来技術のＧＢＴＣ型符号化方式によるモノクロ文字画像の一例である。
【図２２】図２１の画像に対する画素値のヒストグラムである。
【図２３】ＧＢＴＣ型符号化方式での“階調が広いサブブロック”のみの画素値のヒストグラムの一例である。
【図２４】ＧＢＴＣ型符号化方式での“階調が広いサブブロック”のみの画素値のヒストグラムの一例である。
【図１】
0003907505.tif 000002
【図２】
0003907505.tif 000003
【図３】
0003907505.tif 000004
【図４】
0003907505.tif 000005
【図５】
0003907505.tif 000006
【図６】
0003907505.tif 000007
【図７】
0003907505.tif 000008
【図８】
0003907505.tif 000009
【図９】
0003907505.tif 000010
【図１０】
0003907505.tif 000011
【図１１】
0003907505.tif 000012
【図１２】
0003907505.tif 000013
【図１３】
0003907505.tif 000014
【図１４】
0003907505.tif 000015
【図１５】
0003907505.tif 000016
【図１６】
0003907505.tif 000017
【図１７】
0003907505.tif 000018
【図１８】
0003907505.tif 000019
【図１９】
0003907505.tif 000020
【図２０】
0003907505.tif 000021
【図２１】
0003907505.tif 000022
【図２２】
0003907505.tif 000023
【図２３】
0003907505.tif 000024
【図２４】
0003907505.tif 000025