JP3907505B2 - Block truncation coding apparatus and method - Google Patents
Block truncation coding apparatus and method Download PDFInfo
- Publication number
- JP3907505B2 JP3907505B2 JP2002072966A JP2002072966A JP3907505B2 JP 3907505 B2 JP3907505 B2 JP 3907505B2 JP 2002072966 A JP2002072966 A JP 2002072966A JP 2002072966 A JP2002072966 A JP 2002072966A JP 3907505 B2 JP3907505 B2 JP 3907505B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- value
- pixel
- image
- encoded
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、ブロックトランケーション符号化装置及び方法に関するもので、特に解像度成分の適切な区間設定を行うことで画質を向上させるものに関する。
【0002】
【従来の技術】
従来から、静止画像の符号化法として、ブロックトランケーション符号化(BTC Block Truncation Coding )と呼ばれる方法が知られている。これは、原画像を m×n 画素のブロックに分解し(分割は必須ではないが)、該ブロックに所定の階調数を割り当て、該限られた階調数によってブロック内の画素値を表現する(階調数を量子化する)方法である。
【0003】
図20は、4階調を割り当ててモノクロ画像の符号化を行う場合の、量子化区間および復号値の設定の概要を示したものである。図20の太線は、符号化対象となるブロックの画素値のヒストグラムを示しており、横軸が画素値、縦軸が頻度である。
該ヒストグラムを元に、ブロック内の画素値の平均値的な値LA、ブロック内の画素値のダイナミックレンジを反映した値LDが求められ、これらの2つの量をもとに、画素値を量子化する4つの区間が設定される。原画像の各画素がどの区間に含まれるかを示すフラグをφと呼び、符号化時には、LA、LD、各画素のφ、の3つの量が符号化される。なお、LDは階調幅指標と呼ばれ、φは解像度成分と呼ばれる。
【0004】
さて今、上記モノクロ画像(1画素8bitの階調とする)について、2×4画素(計64bit )を1ブロックとして、1/2 に圧縮して符号化することを考える。各ブロックに4階調を割り当てるためには、1画素当たりφとして2bitが必要になるため、φだけで計16bit が必要になり、1/2 (=ブロック当たり32bit )に圧縮するためには、残る16bit をLA、LDに割り当てることになる。
ここで、LA、LDおよびφの値は、一般的なブロックトランケーション符号化においては、以下の様に求められる。
図20のようにブロック内の画素値の最大値をmax 、最小値をmin とし、区間(max−min)を4等分する。そして、該4 区間の内の両端の区間について、各区間内の画素値の平均値Q1、Q4を求める。そして、
LA=(Q1+Q4)/2
LD= Q4 −Q1
によって、LA、LDが求められ、これを元に、量子化区間の境界L1、L2が
L1= LA −LD/4
L2= LA+LD/4
の様に求められる。ここで重要なのは、LDを4等分して、画素値の量子化区間を設定している点である。これは、ヒストグラムの中央値付近を細かく量子化し、端部を粗く量子化することに他ならず、中央値付近の出現頻度が相対的に大きいヒストグラムを想定して量子化区間の設定を行っていると考えられる。なぜならば、出現頻度の多い区間を密に量子化することで、ブロック全体としての量子化誤差が小さく抑えられ、復号後の画質を向上させられるからである。このように、一般的なヒストグラムを想定して、LDの区間設定を行うBTC を、GBTC(Generalized Block Truncation Coding)型符号化方式と呼び、特開平6−164950公報にも記載のある通りである。
ここで、x を画素値とした場合、φは
min ≦x ≦L1 の場合 φ=0
L1<x ≦LA の場合 φ=1
LA<x ≦L2 の場合 φ=2
L2<x ≦max の場合 φ=3
と規定される。
一方、復号値dは、
φ=0 の場合 d = d1 = Q1 (=LA―LD/2)
φ=1 の場合 d = d2 = LA − LD/6
φ=2 の場合 d = d3 = LA + LD/6
φ=3 の場合 d = d4 = Q4 (=LA+LD/2)
と規定される。ここで重要なのは、LDを6 等分して、復号値d2、d3を規定している点である。これは、LAから見て、各量子化区間の中央よりも離れた位置に復号することに他ならないが、これは復号値のダイナミックレンジを広めにとることを意図しているように思われる。
なお上記では、4階調に量子化するために区間(max −min)を4 等分し、その後LDを求めているが、その他の階調数に量子化する場合は、K 。Ogura ;"Generalized Block Truncation Coding(GBTC)"、ISO/TC97/SC2/WG8 N510 (June 1987)を参照されたい(GBTC型符号化方式は、GBTCのサブセットである)。
【0005】
以上のようにGBTC型符号化方式では、中央値付近の出現頻度が相対的に大きいヒストグラムを想定して量子化区間の設定を行っていると考えられるが、実際の画像はそうでない場合がある。たとえは、図21に示したようなモノクロの文字画像の場合、その画素値のヒストグラムは図22の通りであり、図20とは反対に中央の頻度が少ないものとなる。
また上記GBTC型符号化方式では、ブロック内の全ての画素に一律に2bitのφを割り当てているが、原画像を小さな領域に分割して符号化する場合など、対象となる画像自体の階調がもともと限られている場合には、一律な割り当ては効率的ではない。すなわち、原画像の階調が広い場合にはφへの割り当てを増やし、狭い場合には、φへの割り当てを減らすような構成が必要である。(特願2000−092393記載の“画像を予め定められた一定の大きさの矩形ブロックに分割し、該ブロックを更に分割して周波数変換の単位となる画像ブロックを作成し、該周波数変換結果を元に矩形ブロックを予め定められた一定長の符号長に符号化を行う固定長符号化装置。”は、こうした手法を意図したものである。)
【0006】
そこで例えば、上記2×4画素のブロックを2×2画素のサブブロック2つに分割し、該2つのサブブロックを“階調が狭いサブブロック" と“階調が広いサブブロック" に分類し、前者に1 階調を割り当て、後者に4階調を割り当てることを考える。これにより、2×4画素のブロック単位で見れば、計5階調(あるいはそれ以上)を得ることが出来、復号画像の画質を向上させることができる。この場合、“階調が狭いサブブロック" に対しては画素の代表値のみを符号化し、“階調が広いサブブロック" に対してはBTC を適用するような構成が考えられる。
この場合にも、“階調が広いサブブロック" のみの画素値のヒストグラムは、もはやブロック全体のヒストグラムではなく、文字画像でない場合でも、上記GBTC型符号化方式が想定しているヒストグラムとは異なるものとなる。そもそも“階調が狭いサブブロック" とは、サブブロック内の画素値の差が少ないサブブロックであり、“階調が広いサブブロック" とは、サブブロック内の画素値として、大きいものと小さいものの両方を含むサブブロックである。よって、“階調が広いサブブロック" のみの画素値のヒストグラムは、図23のようにフラットであったり、図24に示すように、むしろ中央の頻度が少な目の、図20とは上下が反転した形状になることがあるのである。
【0007】
以上のような場合には、ヒストグラムに対する想定が成り立たないため、GBTC型符号化方式をそのまま適用することはできない。最適な画質を得るためには、新たなLDの分割法が必須であり、例えば、図1のように、LDの中央を粗に分割し、両端側を密に分割することが必要である。また、復号値の設定としては、解像度成分として設定された各区間の中央よりも、階調幅指標の両端側よりであるのが望ましい。
【0008】
【発明が解決しようとする課題】
そこで、本発明は、通常の形状ではないヒストグラムを有しうる画像にブロックトランケーション符号化を適用する場合において、適切な区間設定を行って画質を向上させることを目的とする。
【0026】
なお、" 通常の形状ではないヒストグラム" として、図23のようなフラットな分布を想定した場合、区間(max−min)を4等分したものを、そのままφの区間とし、各区間の中央に復号することで、量子化誤差を最小にすることができる。これはLDを1:2:2:1に分割することに相当する。
【0027】
よって、本発明は、上記の目的に加えて、フラットな分布の場合に、量子化誤差を最小にすることを目的とする。
【0035】
【課題を解決するための手段】
以上に鑑み、請求項1に係る発明は、階調幅指標を3つ以上に分割し、階調幅指標の中央よりも両端側を密に分割して、解像度成分の区間設定を行うことを特徴とするブロックトランケーション符号化装置を提案する。
【0048】
請求項2に係る発明は、請求項1に記載のブロックトランケーション符号化装置であって、前記階調幅指標を1:2:2:1に分割することを特徴とするブロックトランケーション符号化装置を提案する。
【0050】
請求項3に係る発明は、階調幅指標を3つ以上に分割し、階調幅指標の中央よりも両端側を密に分割して、解像度成分の区間設定を行うステップを有することを特徴とするブロックトランケーション符号化方法を提案する。
【0056】
【発明の実施の形態】
以下、本発明の実施の形態の好適な例を図面を参照しながら説明するが、まず、本願実施例の装置構成について説明を行う。
【0057】
[装置構成1]
図2は、本願にかかる装置構成の第1の例を示したものである。データバスを介して、HDD、RAM、CPUが接続されており、以下の流れで、原画像の符号化処理がなされる。
▲1▼ HDD上に記録されたオリジナル画像は、CPUからの命令によってRAM上に読み込まれる。
▲2▼ 〔符号化ステップ〕CPUはRAM上の画像を部分的に読み込み、本願の符号化方法を適用して符号化を行う。
▲3▼ CPUは、符号化後のデータをRAM上の別の領域に書き込む。
▲4▼ 全ての原画像が符号化されると、CPUからの命令によって、符号化後のデータがHDD上に記録される。
また、同一の装置構成において、以下の流れで、符号化された画像の復号化処理がなされる。
▲1▼ HDD上に記録された符号化された画像は、CPUからの命令によってRAM上に読み込まれる。
▲2▼ 〔復号化ステップ〕CPUはRAM上の符号化された画像を部分的に読み込み、本願を適用して復号化を行う。
▲3▼ CPUは、復号化後のデータをRAM上の別の領域に書き込む。
▲4▼ 全ての画像が復号化されると、CPUからの命令によって、復号化後のデータがHDD上に記録される。
【0058】
[装置構成2]
また図3は、本願にかかる装置構成の第2の例を示したものである。データバスを介して、HDD、RAM1(PC内) 、CPU1(PC内) 、プリンタが接続されている。オリジナル画像のプリントアウトに際し、画像の符号化がなされ、符号化後のデータがプリンタに送信される。プリンタへの送信データ量が低減されるため、送信時間が短縮され、符号化・復号化に要する時間を加味しても、高速なプリントが可能になる。
▲1▼ HDD上に記録されたオリジナル画像は、CPUからの命令によってRAM上に読み込まれる。
▲2▼ 〔符号化ステップ〕CPU1は、RAM1上の画像を部分的に読み込み、本願の符号化方法を適用して符号化を行う。
▲3▼ CPU1は、符号化後のデータをRAM1上の別の領域に書き込む。
▲4▼ CPU1からの命令によって、符号化後のデータがプリンタ内のRAM2上に記録される。
▲5▼ 〔復号化ステップ〕プリンタ内のCPU2は、符号化後のデータを読み込み、本願の復号化処理を適用して画像の復号を行う。
▲6▼ CPU2は、復号化後のデータをRAM2上に書き込む。
プリンタは、全てのデータが復号化された後、該復号化後のデータを所定の手順でプリントアウトする
【0059】
以上のような装置構成のもと、本願実施例1においては、CMYKの4コンポーネントからなるカラーの原画像(1画素32bit )を2×2画素単位のブロックに分割し、4階調に量子化してブロックトランケーション符号化を行う(図4)。本実施例は、図5にその符号構成を示している(φは4画素分のbit を連結するため、8bitとなる)。
ここで図7は、本願実施例に共通な、ブロック内で最大値・最小値を探索する処理、図8はLA、LD算出処理、図9はφ算出処理を示したものである。本願においては、図9の様に、LDを6で割ることにより、その両端を密に量子化する。
さて、図10は本願実施例1の流れを示したものであり、まずCコンポーネント(Cプレーン)の画素値P(i)が入力された後、ブロック内の最大値・最小値が求められる。そして、最大値―最小値(これは画素値の分布幅を直接反映する量である)が所定値Th以上のときは、フラグ=1としてBTC を適用し、そうでない場合にはフラグ=0としてブロック内の画素値の平均値を符号化し、これを全てのコンポーネントおよびブロックについて繰り返す。
本例においては、各コンポーネント(プレーン)の画素値は8bit であり、図5のように、LA、LD、平均値全てに8bit を割り当てているため、LA、LD、平均値は量子化せずにそのまま符号とすることができる。本例においては、各ブロックごとに、BTC を適用するか平均値を符号化するかを判断し、これを全プレーンについて行うため、符号の並びは、例えば図6のようになる。
また、これらの符号を復号する場合には、まずフラグを読み、BTCで符号化されている場合には、LA、LD、φを読み込み、復号値dを、
φ=0 の場合 d = d1 = Q1 (=LA−LD/2)
φ=1 の場合 d = d2 = LA − LD/6
φ=2 の場合 d = d3 = LA + LD/6
φ=3 の場合 d = d4 = Q4 (=LA+LD/2)
によって得る。これは、先述のように、通常復号値を量子化区間の両端よりに選ぶことを意味するが、特にヒストグラムがフラットな場合には、区間の中央に復号することを意味する。また、BTCで符号化されていない場合は、符号がそのまま4画素分の復号値となる(なお、本明細書内ではフローチャートは省略する)。
【0060】
また、図14は本願実施例2の流れを示したものである。本例では、CMY の3コンポーネントからなるカラーの原画像(1画素24bit )を2×2画素単位のブロックに分割し、4階調に量子化してブロックトランケーション符号化を行う。まずMコンポーネントの画素値P(i)が入力された後、ブロック内の最大値・最小値が求められ、最大値―最小値(これは画素値の分布幅を直接反映する量である)が所定値Th以上のときは、フラグ=1としてBTC を適用し、そうでない場合にはフラグ=0としてブロック内の画素値の平均値を符号化する。つぎに、その他のコンポーネントに関しては、Mコンポーネントの結果をそのまま反映して、BTC とするか否かを決定する。このため符号は、図11の様になる。
【0061】
また、図15は本願実施例3の流れを示したものである。本例では、RGB の3コンポーネントからなるカラーの原画像(1画素24bit )を2×2画素単位のブロックに分割し、4階調に量子化してブロックトランケーション符号化を行う。まず、ブロック内の全ての画素値は下記式によって、輝度Yと色差U、Vに変換される。これは、RCT (Reversible Component Transform) と呼ばれる変換である。
輝度Y=|_(R+2G+B)/4_| (記号|_ _|はフロア関数を示す)
色差U=R−G ・・・・式1
色差V=B−G
逆変換は、
R=G+U
G=Y−|_(U+V)/4_| ・・・・式2
B=V+G
そして、ブロック内の4画素分の輝度(a、b、c、dとする)について、図13に示したS変換が施され、4つの係数LL、HL、LH、HHが生成される。S変換は簡易なウェーブレットフィルタであり、HL、LH、HH係数は、ハイパスフィルタ出力に相当する。そして、これらのいずれかの値が所定値Th(HHは2T)以上である場合、YUVの全てに対してBTCが適用され、そうでない場合には平均値が符号化される。よって符号は、図12の様になる。
なお、これらの符号を復号する場合には、まずフラグを読み、BTCで符号化されている場合には、LA、LD、φを読み込み、復号値dを、
φ=0 の場合 d = d1 = Q1 (=LA−LD/2)
φ=1 の場合 d = d2 = LA − LD/6
φ=2 の場合 d = d3 = LA + LD/6
φ=3 の場合 d = d4 = Q4 (=LA+LD/2)
によって得る。また、BTCで符号化されていない場合は、符号がそのまま4画素分の復号値となる。その後、上式2によってYUV をRGBに戻すことによって、画素値を得ることができる(本明細書内ではフローチャートは省略する)。
【0062】
また本願実施例4において、図16はRGBの3コンポーネントからなるカラーの原画像(1画素24bit )を2×4画素単位のブロックに分割し、さらにこれを2×2画素のサブブロックA、Bに再分割し、符号化する場合の様子を示している。本実施例は、図17にその符号構成を示している。
図19はその流れを示したものであり、各サブブロックのRGB値は、それぞれYUV変換され、その後輝度または色差がS変換される。そしてS変換係数と所定値との関係で、BTCの適否が、
サブブロックA、Bともに平均値で符号化。フラグ=0
サブブロックAは平均値、BはBTC。フラグ=1でφは8bit
サブブロックAはBTC、Bは平均値。フラグ=2でφは8bit
サブブロックA、Bをまとめて、8画素分でBTC。フラグ=3でφは16bit
(LA、LDは2で割って7bit に量子化)
のように決定され、これを輝度・色差の全て、および全てのブロックについて繰り返す。よって符号の例は、図18の様になる。実施例1のように、各サブブロックに個別にBTCを適用するよりも、本例のように2つのサブブロックにまとめてBTCを適用した方が、LA、LDが一組で済む分、圧縮率を上げることができる。
また同様に、復号の場合には、まずフラグを読み、BTCで符号化されている場合には、LA、LD、φを読み込み、復号値dを、
φ=0 の場合 d = d1 = Q1 (=LA−LD/2)
φ=1 の場合 d = d2 = LA − LD/6
φ=2 の場合 d = d3 = LA + LD/6
φ=3 の場合 d = d4 = Q4 (=LA+LD/2)
によって得る。また、平均値としても符号化されている場合は、符号がそのまま4画素分の復号値となる。その後、上式2によってYUV をRGBに戻すことによって、画素値を得ることができる(本明細書内ではフローチャートは省略する)。
【0064】
【発明の効果】
請求項1に記載のブロックトランケーション符号化装置は、階調幅指標を3つ以上に分割し、階調幅指標の中央よりも両端側を密に分割して、解像度成分の区間設定を行うので、通常の形状ではないヒストグラムを有しうる画像にブロックトランケーション符号化を適用する場合において、適切な区間設定を行って画質を向上させることが可能となる。
【0077】
請求項2に記載のブロックトランケーション符号化装置は、請求項1に記載のブロックトランケーション符号化装置であって、前記階調幅指標を1:2:2:1に分割するので、フラットな分布の場合に、量子化誤差を最小にすることができる。
【0079】
請求項3に記載のブロックトランケーション符号化方法は、階調幅指標を3つ以上に分割し、階調幅指標の中央よりも両端側を密に分割して、解像度成分の区間設定を行うステップを有するので、通常の形状ではないヒストグラムを有しうる画像にブロックトランケーション符号化を適用する場合において、適切な区間設定を行って画質を向上させることができる。
【図面の簡単な説明】
【図1】本願の区間設定法である。
【図2】本願の装置構成例1の図である。
【図3】本願の装置構成例2の図である。
【図4】本願実施例1のCMYKの4コンポーネントからなるカラーの原画像(1画素32bit )を2×2画素単位のブロックに分割する図である。
【図5】本願実施例1の符号構成図である。
【図6】本願実施例1の符号の並びの一例である。
【図7】本願実施例の最大・最小値探索処理のフローチャートである。
【図8】本願実施例のLA、LD算出処理のフローチャートである。
【図9】本願実施例のφ算出処理のフローチャートである。
【図10】本願実施例1のフローチャートである。
【図11】本願実施例2の符号構成図である。
【図12】本願実施例3の符号構成図である。
【図13】S変換および逆S変換の変換式である。
【図14】本願実施例2のフローチャートである。
【図15】本願実施例3のフローチャートである。
【図16】本願実施例4のRGBの3コンポーネントからなるカラーの原画像(1画素24bit )を2×4画素単位のブロックに分割する図である。
【図17】本願実施例4の符号構成図である。
【図18】本願実施例4の符号の並びの一例である。
【図19】本願実施例4のフローチャートである。
【図20】従来技術のGBTCにおける量子各区間および復号値の設定法の概要図である。
【図21】従来技術のGBTC型符号化方式によるモノクロ文字画像の一例である。
【図22】図21の画像に対する画素値のヒストグラムである。
【図23】GBTC型符号化方式での“階調が広いサブブロック”のみの画素値のヒストグラムの一例である。
【図24】GBTC型符号化方式での“階調が広いサブブロック”のみの画素値のヒストグラムの一例である。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a block truncation encoding apparatus and method , and more particularly to an apparatus that improves image quality by setting appropriate sections of resolution components.
[0002]
[Prior art]
Conventionally, a method called block truncation coding (BTC Block Truncation Coding) is known as a still image coding method. This means that the original image is decomposed into blocks of m × n pixels (division is not essential), a predetermined number of gradations is assigned to the block, and the pixel values in the block are expressed by the limited number of gradations. This is a method of (quantizing the number of gradations).
[0003]
FIG. 20 shows an outline of setting a quantization interval and a decoded value when a monochrome image is encoded by assigning four gradations. A thick line in FIG. 20 shows a histogram of pixel values of a block to be encoded, with the horizontal axis representing pixel values and the vertical axis representing frequency.
Based on the histogram, an average value LA of the pixel values in the block and a value LD reflecting the dynamic range of the pixel values in the block are obtained, and the pixel values are quantized based on these two quantities. Four sections are set. A flag indicating which section each pixel of the original image is included is called φ, and at the time of encoding, three quantities of LA, LD, and φ of each pixel are encoded. Note that LD is called a gradation width index, and φ is called a resolution component.
[0004]
Now, it is considered that the monochrome image (with a gradation of 8 bits per pixel) is encoded by being compressed to 1/2 by 2 × 4 pixels (64 bits in total) as one block. In order to assign 4 gradations to each block, 2 bits are required as φ per pixel, so a total of 16 bits are required with φ alone, and in order to compress to 1/2 (= 32 bits per block) The remaining 16 bits are assigned to LA and LD.
Here, the values of LA, LD, and φ are obtained as follows in general block truncation coding.
As shown in FIG. 20, the maximum value of the pixel values in the block is max, the minimum value is min, and the section (max-min) is equally divided into four. Then, average values Q1 and Q4 of the pixel values in each section are obtained for both ends of the four sections. And
LA = (Q1 + Q4) / 2
LD = Q4−Q1
, LA and LD are obtained, and based on this, the boundaries L1 and L2 of the quantization interval are
L1 = LA −LD / 4
L2 = LA + LD / 4
Is required. The important point here is that the quantization interval of the pixel value is set by dividing the LD into four equal parts. This is nothing but to quantize the vicinity of the median of the histogram finely and coarsely quantize the edges, and set the quantization interval assuming a histogram with a relatively high frequency of appearance near the median. It is thought that there is. This is because by densely quantizing a section having a high appearance frequency, the quantization error of the entire block can be suppressed to be small, and the image quality after decoding can be improved. In this way, assuming a general histogram, the BTC for setting the LD section is called a GBTC (Generalized Block Truncation Coding) type coding system, as described in JP-A-6-164950. .
Here, when x is a pixel value, φ is
When min ≤ x ≤ L1, φ = 0
If L1 <x ≦ LA φ = 1
When LA <x ≤ L2, φ = 2
When L2 <x ≤ max φ = 3
It is prescribed.
On the other hand, the decoded value d is
When φ = 0 d = d1 = Q1 (= LA-LD / 2)
When φ = 1 d = d2 = LA − LD / 6
When φ = 2 d = d3 = LA + LD / 6
When φ = 3 d = d4 = Q4 (= LA + LD / 2)
It is prescribed. What is important here is that the LD is divided into six equal parts to define the decoded values d2 and d3. This is nothing but decoding at a position farther from the center of each quantization interval as seen from LA, but this seems to intend to increase the dynamic range of the decoded value.
In the above, in order to quantize to 4 gradations, the section (max−min) is divided into 4 equal parts, and then LD is obtained. However, when quantizing to other gradations, K. Ogura; see "Generalized Block Truncation Coding (GBTC)", ISO / TC97 / SC2 / WG8 N510 (June 1987) (GBTC-type coding is a subset of GBTC).
[0005]
As described above, in the GBTC coding method, it is considered that the quantization interval is set assuming a histogram with a relatively high appearance frequency near the median, but the actual image may not be so. . For example, in the case of a monochrome character image as shown in FIG. 21, the histogram of the pixel values is as shown in FIG. 22, and the frequency at the center is low as opposed to FIG.
In the GBTC encoding method, 2 bits are uniformly assigned to all pixels in the block. However, when the original image is divided into small areas and encoded, the gradation of the target image itself is used. If is originally limited, uniform allocation is not efficient. That is, it is necessary to increase the allocation to φ when the gradation of the original image is wide, and to decrease the allocation to φ when it is narrow. (In Japanese Patent Application No. 2000-092393, “divides an image into rectangular blocks of a predetermined size, and further divides the block to create an image block as a unit of frequency conversion. (A fixed-length encoding device that originally encodes a rectangular block to a predetermined code length. ”Is intended for such a method.)
[0006]
Therefore, for example, the above 2 × 4 pixel block is divided into two 2 × 2 pixel sub-blocks, and the two sub-blocks are classified into “sub-blocks with narrow gradation” and “sub-blocks with wide gradation”. Consider assigning 1 gradation to the former and assigning 4 gradations to the latter. Thus, when viewed in blocks of 2 × 4 pixels, a total of 5 gradations (or more) can be obtained, and the image quality of the decoded image can be improved. In this case, a configuration in which only a representative value of a pixel is encoded for a “subblock with a narrow gradation” and BTC is applied to a “subblock with a wide gradation” can be considered.
Also in this case, the histogram of the pixel value of only “sub-block with wide gradation” is no longer the histogram of the whole block, and even if it is not a character image, it is different from the histogram assumed by the GBTC coding method. It will be a thing. In the first place, a “sub-block with a narrow gradation” is a sub-block with a small difference in pixel values within a sub-block, and a “sub-block with a wide gradation” has a large or small pixel value within a sub-block. It is a sub-block containing both things. Therefore, the pixel value histogram of only the “sub-block with wide gradation” is flat as shown in FIG. 23, or as shown in FIG. The shape may be changed.
[0007]
In such a case, since the assumption for the histogram does not hold, the GBTC coding method cannot be applied as it is. In order to obtain the optimum image quality, a new LD division method is essential. For example, as shown in FIG. 1, it is necessary to roughly divide the center of the LD and to densely divide both ends. Further, it is desirable that the decoded value is set from both ends of the gradation width index rather than the center of each section set as the resolution component.
[0008]
[Problems to be solved by the invention]
Therefore, an object of the present invention is to improve image quality by setting appropriate sections when applying block truncation coding to an image that may have a histogram that is not of a normal shape.
[0026]
Assuming a flat distribution as shown in FIG. 23 as a “non-regular histogram”, the section (max−min) divided into four equal parts is used as it is as a section of φ, and at the center of each section. By decoding, the quantization error can be minimized. This corresponds to dividing the LD into 1: 2: 2: 1 .
[0027]
Therefore, in addition to the above object , the present invention aims to minimize the quantization error in the case of a flat distribution.
[0035]
[Means for Solving the Problems]
In view of the above, the invention according to
[0048]
The invention according to
[0050]
The invention according to
[0056]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, a preferred example of an embodiment of the present invention will be described with reference to the drawings. First, an apparatus configuration of the present embodiment will be described.
[0057]
[Device Configuration 1]
FIG. 2 shows a first example of a device configuration according to the present application. An HDD, RAM, and CPU are connected via a data bus, and an original image is encoded in the following flow.
{Circle around (1)} The original image recorded on the HDD is read onto the RAM by a command from the CPU.
(2) [Encoding step] The CPU partially reads an image on the RAM and applies the encoding method of the present application to perform encoding.
(3) The CPU writes the encoded data in another area on the RAM.
(4) When all the original images are encoded, the encoded data is recorded on the HDD in accordance with a command from the CPU.
In the same apparatus configuration, the encoded image is decoded according to the following flow.
(1) The encoded image recorded on the HDD is read onto the RAM in accordance with a command from the CPU.
(2) [Decoding step] The CPU partially reads the encoded image on the RAM and performs decoding by applying the present application.
(3) The CPU writes the decrypted data in another area on the RAM.
(4) When all the images are decoded, the decoded data is recorded on the HDD in accordance with a command from the CPU.
[0058]
[Device configuration 2]
FIG. 3 shows a second example of the device configuration according to the present application. The HDD, RAM 1 (inside PC), CPU 1 (inside PC), and printer are connected via a data bus. When the original image is printed out, the image is encoded, and the encoded data is transmitted to the printer. Since the amount of data transmitted to the printer is reduced, the transmission time is shortened, and high-speed printing is possible even when the time required for encoding / decoding is taken into account.
{Circle around (1)} The original image recorded on the HDD is read onto the RAM by a command from the CPU.
(2) [Encoding step] The
(3) The
(4) The encoded data is recorded on the
(5) [Decoding step] The
(6) The
After all data is decrypted, the printer prints out the decrypted data according to a predetermined procedure.
With the above apparatus configuration, in the first embodiment of the present invention, a color original image (1 pixel 32 bits) composed of 4 components of CMYK is divided into blocks of 2 × 2 pixels and quantized into 4 gradations. Block truncation encoding is performed (FIG. 4). In this embodiment , the code configuration is shown in FIG. 5 (φ is 8 bits because bits of 4 pixels are connected).
Here, FIG. 7 shows processing for searching for the maximum value / minimum value within the block, FIG. 8 shows LA and LD calculation processing, and FIG. 9 shows φ calculation processing, which is common to the present embodiment. In the present application, as shown in FIG. 9, the LD is divided by 6 to densely quantize the both ends.
FIG. 10 shows the flow of the first embodiment of the present invention. First, after the pixel value P (i) of the C component (C plane) is input, the maximum value / minimum value in the block is obtained. When the maximum value-minimum value (which is an amount that directly reflects the distribution width of the pixel value) is equal to or greater than the predetermined value Th, BTC is applied as flag = 1, otherwise, flag = 0 is set. Encode the average of the pixel values in the block and repeat this for all components and blocks.
In this example, the pixel value of each component (plane) is 8 bits, and since LA, LD, and average value are all assigned 8 bits as shown in FIG. 5, LA, LD, and average value are not quantized. Can be used as they are. In this example, for each block, it is determined whether BTC is applied or the average value is encoded, and this is performed for all the planes. Therefore, the arrangement of codes is as shown in FIG. 6, for example.
When decoding these codes, first, the flag is read, and when encoded with BTC, LA, LD, and φ are read, and the decoded value d is
When φ = 0 d = d1 = Q1 (= LA-LD / 2)
When φ = 1 d = d2 = LA − LD / 6
When φ = 2 d = d3 = LA + LD / 6
When φ = 3 d = d4 = Q4 (= LA + LD / 2)
Get by. This is because, as described previously, but normally decoded value means to select the from both ends of the quantization intervals, particularly when the histogram is flat, means to decode the central segments. In addition, when it is not encoded by BTC, the code becomes a decoded value for four pixels as it is (note that the flowchart is omitted in this specification ).
[0060]
Further, FIG. 14 shows the flow of the
[0061]
Further, FIG. 15 shows the flow of the
Luminance Y = | _ (R + 2G + B) / 4_ | (symbol | __ | represents a floor function)
Color difference U = RG-
Color difference V = BG
Inverse transformation is
R = G + U
G = Y− | _ (U + V) / 4_ |
B = V + G
Then, the S conversion shown in FIG. 13 is performed on the luminance (a, b, c, d) for four pixels in the block, and four coefficients LL, HL, LH, and HH are generated. The S conversion is a simple wavelet filter, and the HL, LH, and HH coefficients correspond to the high-pass filter output. If any of these values is equal to or greater than a predetermined value Th (HH is 2T), BTC is applied to all of YUV, and if not, an average value is encoded. Therefore, the code is as shown in FIG.
When decoding these codes, first, the flag is read, and when encoded with BTC, LA, LD, φ are read, and the decoded value d is
When φ = 0 d = d1 = Q1 (= LA-LD / 2)
When φ = 1 d = d2 = LA − LD / 6
When φ = 2 d = d3 = LA + LD / 6
When φ = 3 d = d4 = Q4 (= LA + LD / 2)
Get by. In addition, when the encoding is not performed by BTC, the code is a decoded value for four pixels as it is. Thereafter, the pixel value can be obtained by returning YUV to RGB by the above equation 2 (the flowchart is omitted in this specification ).
[0062]
In
FIG. 19 shows the flow. The RGB value of each sub-block is YUV converted, and thereafter the luminance or color difference is S-converted. The suitability of the BTC is determined by the relationship between the S conversion coefficient and the predetermined value.
Both sub-blocks A and B are encoded with an average value. Flag = 0
Sub-block A is the average value, B is BTC. Flag = 1 and φ is 8bit
Sub-block A is BTC, B is average value. Flag = 2 and φ is 8bit
Sub-blocks A and B are combined into 8 pixels for BTC. Flag = 3 and φ is 16bit
(LA and LD are divided by 2 and quantized to 7 bits)
This is repeated for all luminance and color differences and all blocks. Therefore, an example of the code is as shown in FIG. Rather than applying BTC individually to each sub-block as in the first embodiment, applying BTC together in two sub-blocks as in this example reduces the amount of LA and LD required by one set. You can raise the rate.
Similarly, in the case of decoding, first, the flag is read, and in the case of encoding with BTC, LA, LD, and φ are read, and the decoded value d is set as
When φ = 0 d = d1 = Q1 (= LA-LD / 2)
When φ = 1 d = d2 = LA − LD / 6
When φ = 2 d = d3 = LA + LD / 6
When φ = 3 d = d4 = Q4 (= LA + LD / 2)
Get by. If the average value is also encoded, the code becomes the decoded value for four pixels as it is. Thereafter, the pixel value can be obtained by returning YUV to RGB by the above equation 2 (the flowchart is omitted in this specification ).
[0064]
【The invention's effect】
Since the block truncation encoding apparatus according to
[0077]
Block truncation coding apparatus according to
[0079]
The block truncation encoding method according to
[Brief description of the drawings]
FIG. 1 is a section setting method of the present application.
FIG. 2 is a diagram of an apparatus configuration example 1 of the present application.
FIG. 3 is a diagram of an apparatus configuration example 2 of the present application.
FIG. 4 is a diagram in which a color original image (1 pixel 32 bits) composed of four CMYK components according to
FIG. 5 is a code configuration diagram of
FIG. 6 is an example of an arrangement of codes according to the first embodiment of the present application.
FIG. 7 is a flowchart of maximum / minimum value search processing according to the embodiment of the present invention.
FIG. 8 is a flowchart of LA and LD calculation processing according to the embodiment of the present invention.
FIG. 9 is a flowchart of φ calculation processing according to the embodiment of the present application.
FIG. 10 is a flowchart of
FIG. 11 is a code configuration diagram of
FIG. 12 is a code configuration diagram of
FIG. 13 is a conversion formula of S conversion and inverse S conversion.
FIG. 14 is a flowchart of
FIG. 15 is a flowchart of
FIG. 16 is a diagram in which a color original image (one pixel 24 bits) composed of three RGB components according to the fourth embodiment of the present application is divided into blocks of 2 × 4 pixel units.
FIG. 17 is a code configuration diagram of the fourth embodiment of the present application.
FIG. 18 is an example of an arrangement of codes according to the fourth embodiment of the present invention.
FIG. 19 is a flowchart of
FIG. 20 is a schematic diagram of a method for setting each quantum interval and a decoded value in GBTC of the prior art.
FIG. 21 is an example of a monochrome character image according to a GBTC type encoding method of the prior art.
22 is a histogram of pixel values for the image of FIG.
FIG. 23 is an example of a histogram of pixel values of only “sub-block with wide gradation” in the GBTC type encoding method;
FIG. 24 is an example of a histogram of pixel values of only “sub-block with wide gradation” in the GBTC type encoding method;
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002072966A JP3907505B2 (en) | 2002-03-15 | 2002-03-15 | Block truncation coding apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002072966A JP3907505B2 (en) | 2002-03-15 | 2002-03-15 | Block truncation coding apparatus and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003274195A JP2003274195A (en) | 2003-09-26 |
JP3907505B2 true JP3907505B2 (en) | 2007-04-18 |
Family
ID=29202820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002072966A Expired - Fee Related JP3907505B2 (en) | 2002-03-15 | 2002-03-15 | Block truncation coding apparatus and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3907505B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021502771A (en) * | 2018-05-03 | 2021-01-28 | エルジー エレクトロニクス インコーポレイティド | Image decoding methods and devices that use block size conversion in image coding systems |
CN110445949B (en) * | 2019-08-06 | 2021-05-07 | 绍兴聚量数据技术有限公司 | Histogram shift-based AMBTC domain reversible information hiding method |
-
2002
- 2002-03-15 JP JP2002072966A patent/JP3907505B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003274195A (en) | 2003-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7751633B1 (en) | Method for compressing an image | |
US8565298B2 (en) | Encoder rate control | |
US7016545B1 (en) | Reversible embedded wavelet system implementation | |
US6847735B2 (en) | Image processing system, image processing apparatus, image input apparatus, image output apparatus and method, and storage medium | |
JP4365957B2 (en) | Image processing method and apparatus and storage medium | |
CN1756296B (en) | Image processing apparatus and image processing method | |
US20050276501A1 (en) | Image decoding apparatus and its control method | |
JP3843581B2 (en) | Image encoding device, image decoding device, image processing device, image encoding method, image decoding method, and image processing method | |
US7260265B2 (en) | Enhancing compression while transcoding JPEG images | |
US6934418B2 (en) | Image data coding apparatus and image data server | |
GB2345401A (en) | Compression of digital images comprising background pixels | |
GB2325584A (en) | Reversible embedded wavelet transform system implementation | |
US7046387B1 (en) | Efficient coding of color images including monochrome images | |
JP3907505B2 (en) | Block truncation coding apparatus and method | |
US6069980A (en) | Adaptive character image generation and synthesis | |
JP3227181B2 (en) | Image processing device | |
Nakachi et al. | Lossless and near-lossless compression of still color images | |
JP3824259B2 (en) | Encoding method, decoding method, encoding device, decoding device, and recording medium | |
JP3732684B2 (en) | Color image encoding apparatus and method, and color image decoding apparatus and method | |
GB2341035A (en) | Video coding method | |
JP4047207B2 (en) | Image coding apparatus, image coding method, and program | |
JP2004112712A (en) | Image processing apparatus, image processing method, and recording medium recorded with image processing method | |
JPH0575868A (en) | Picture processor | |
JPH11331844A (en) | Fixed length block encoder and decoder | |
JPH0435361A (en) | Picture coding device and picture coding and decoding device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050311 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050406 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060815 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061016 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070116 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110126 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120126 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130126 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140126 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |