JP5632431B2 - 画像符号化装置、及び画像符号化方法 - Google Patents

画像符号化装置、及び画像符号化方法 Download PDF

Info

Publication number
JP5632431B2
JP5632431B2 JP2012194599A JP2012194599A JP5632431B2 JP 5632431 B2 JP5632431 B2 JP 5632431B2 JP 2012194599 A JP2012194599 A JP 2012194599A JP 2012194599 A JP2012194599 A JP 2012194599A JP 5632431 B2 JP5632431 B2 JP 5632431B2
Authority
JP
Japan
Prior art keywords
representative color
color
target pixel
representative
threshold
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.)
Active
Application number
JP2012194599A
Other languages
English (en)
Other versions
JP2014053654A (ja
Inventor
淳 松村
淳 松村
田中 達也
達也 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012194599A priority Critical patent/JP5632431B2/ja
Priority to US13/948,370 priority patent/US9183643B2/en
Publication of JP2014053654A publication Critical patent/JP2014053654A/ja
Application granted granted Critical
Publication of JP5632431B2 publication Critical patent/JP5632431B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Color Image Communication Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明の実施形態は、画像データをカラーパレットで表現することでデータを圧縮する画像符号化装置、及び画像符号化方法に関する。
自然画像データを圧縮する場合、静止画であればJPEG、動画像であればMPEGを用いることで効率的なデータ圧縮が可能である。一方で、PCの画面のようなCG画像データに対しては、上記手法よりも複数の代表色(パレット)で各画素を表現するカラーパレット画像符号化の方が効率的なデータ圧縮が可能な場合がある。
カラーパレット画像符号化では、対象となる画像をどのような代表色で表現するか、また各画素をどの代表色で表現するか、を決定することが重要である。
例えば、画像の色のヒストグラムを生成し、その分布に基づいて代表色を決定する技術がある。しかしながら、代表色を1つ生成するたびにヒストグラムを算出するため、計算量が非常に多かった。また、すべての色を対象としてヒストグラムを算出するため、ヒストグラムを算出するために非常に容量の大きなメモリが必要となるという問題があった。そのため、例えばLSIなどのハードウェアで実装ことが非常に困難であった。
特開2011−249947号公報
P. Heckbert, "Color Image Quantization for Frame Buffer Display," Computer Graphics, vol. 16, no. 3, pp. 297−303, 1982.
上記従来技術では、すべての色を対象としてヒストグラムを算出するため、ヒストグラムを算出するために非常に容量の大きなメモリが必要という問題があった。
上記目的を達成するために、実施形態に係る画像符号化装置は、取得部と、比較部と、判定部と、符号化部とを有する。取得部は、符号化対象の画像データから所定サイズの画素ブロックを取得する。比較部は、既に定められている代表色それぞれと、前記画素ブロック内の対象画素の色との距離を算出し、前記距離が最小距離となる前記代表色を求める。判定部は、前記最小距離が第1の閾値よりも小さい場合には、前記最小距離の前記代表色と対応するインデックスを前記対象画素に割り当て、前記最小距離が前記第1の閾値よりも大きい場合には、前記対象画素の画素値を新たな代表色として追加し、そして前記新たな代表色と対応する前記インデックスを前記対象画素に割り当てる。符号化部は、前記代表色と、前記対象画素に割り当てられたインデックスとを符号化する。
本発明の実施形態によれば、代表色を生成するためのヒストグラム算出に必要なメモリの消費を抑えながら、低処理量でのカラーパレット画像符号化が可能となる。
第1の実施形態の画像符号化装置を表すブロック図。 第2の実施形態の画像符号化装置を表すブロック図。 符号化部の詳細な構成を表すブロック図。 第1の実施形態の画像符号化装置の変形例を表す図。 第1の実施形態の画像符号化装置の処理を表すフローチャート。 第1の実施形態の画像符号化装置の変形例1の処理を表すフローチャート。 第1の実施形態の画像符号化装置の変形例2の処理を表すフローチャート。 第2の実施形態の画像符号化装置の処理を表すフローチャート。 画素ブロックの例を示す図。 インデックスが割り当てられた結果(8色パレット時)。 インデックスが割り当てられた結果(4色パレット時、閾値A=9)。 インデックスが割り当てられた結果(4色パレット時、閾値A=96)。 8色パレットの初期状態の例を示す図。 8色パレットにおける代表色の例を示す図(1画素処理時)。 8色パレットにおける代表色の例を示す図(2画素処理時)。 8色パレットにおける代表色の例を示す図(16画素処理時)。 4色パレット初期状態。 4色パレットにおける代表色の例を示す図(4画素処理時)。 4色パレットにおける代表色の例を示す図(12画素終了時、閾値A=9)。 4色パレットにおける代表色の例を示す図(16画素終了時、閾値A=96)。 データ構造の例を示す図(代表色の量子化を行っていない場合)。 データ構造の例を示す図(代表色の量子化を行っている場合)。 インデックス割り当て結果(1パス目、8色パレット時、閾値A=96)。 8色パレットにおける代表色追加と対応画素数。 インデックス割り当て結果(2パス目、8色パレット時、閾値A=48)。 8色パレットにおける代表色追加(2パス目、閾値A0=48)。
以下、図面を参照しながら本発明の実施形態の画像処理装置について詳細に説明する。なお、同一の符号を付した要素は同様の機能を有するものとして、重複する説明を適宜省略する。
(第1の実施形態)
第1の実施形態の画像符号化装置1は、符号化対象となる対象画素をどの代表色で表現するかを示すインデックスを割り当て、代表色と割り当てられたインデックスを符号化する。代表色(パレット)の生成の際に、ヒストグラム生成を行わないため処理に必要となるメモリを削減可能である。なお、代表色及び対象画素の色の情報は、RGB、YUV、YCbCr、HSVなどどの表色系で表現されても良い。本実施形態では、RGB空間で表現される例について述べる。本実施形態では、画素ブロック及び対象画素の処理(スキャン)を、ラスタースキャン順に行う動作について例示するが、そのほかの順番であっても構わない。
図1は、画像符号化装置1を表すブロック図である。画像符号化装置1は、取得部101と、比較部102と、判定部103と、記憶部104と、符号化部105とを備える。
取得部101は、符号化対象の画像データから所定サイズの画素ブロックを取得する。比較部102は、既に定められている代表色それぞれと、画素ブロック内の対象画素の色との距離を算出し、距離が最小距離となる代表色を求める。
判定部103は、最小距離が閾値Aよりも小さい場合には、最小距離の代表色と対応するインデックスを対象画素に割り当て、最小距離が閾値Aよりも大きい場合には、対象画素の画素値を新たな代表色として追加し、そして新たな代表色と対応するインデックスを対象画素に割り当てる。記憶部104は、代表色を記憶する。なお本実施形態では、代表色と対応するインデックスは代表色が追加された順番に順じた値となるようにする。最初の代表色のインデックスは0番となり、順に1,2…と決定される。符号化部105は、代表色と、対象画素に割り当てられたインデックスとを符号化する。
図5は、画像符号化装置1の処理を表すフローチャートである。以下、本実施形態の画像圧縮装置が実行する処理のフローを説明する。
取得部101は、符号化対象の画像データから所定サイズの画素ブロックを取得する(S101)。
比較部102は、既に定められている代表色それぞれと、画素ブロック内の対象画素の色との距離を算出する(S102)。
比較部102は、記憶部103に記憶されている全ての代表色に対して、対象画素と間の距離が算出されたかを判断する(S103)。全ての代表色との比較が終了したと判断した場合(S103,Yes)、距離が最小距離となる代表色の情報を判定部103に送り、S104に進む。
判定部103は、最少距離と閾値Aとの比較を行う(S104)。最小距離が閾値Aよりも小さい場合(S104、Yes)、S107に進む。最小距離が閾値Aよりも大きい場合(S104,No)、S105に進む。
判定部103は、対象画素の色を最小距離となった代表色で表現することを決定する(S107)。
判定部103は、記憶部104で保持されている代表色の数が、所定の上限値以上か否かの判定を行う(S105)。記憶部104で保持されている代表色の数が、上限値よりも少なければ(S105,No)、S106に進む。記憶部104で保持されている代表色の数が、上限値以上であれば(S105,Yes)、これ以上新たな代表色は追加できないものとしてS107に進む。
判定部103は、対象画素の色を新たな代表色として、記憶部104に追加して記憶させる(S106)。
判定部103は、画素ブロック内の全ての対象画素に対して、代表色のインデックスが割り当てられているかを判定する(S108)。画素ブロック内の処理が終わっていない場合(S108,No)、S102に戻る。画素ブロック内の処理が終わった場合(S108,Yes)、S109に進む。
符号化部105は、記憶部104に記憶されている、代表色、代表色と対応するインデックス、及び画素ブロック内の対象画素に割り当てられたインデックスを符号化して出力する(S109)。
符号化部105は、符号化対象の画像データの全ての画素ブロックに対して、符号化が終わったかを判定する(S110)。符号化が終わっていない場合(S110,No)、S101に戻る。符号化が終わった場合(S110,Yes)、符号化を終了となる。
以降、各処理ステップに関する詳細説明を行う。
取得部101が、S101で取得する画素ブロックの形状は、N×N画素の正方形、M×N画素の長方形、M×1画素のラインでいずれであっても良い(N,Mは自然数)。
図9は、画素ブロックの例を示す図である。一つの矩形が各対象画素を示し、夫々の色をRGB空間(ダイナミックレンジは8ビット[0:255])で表現した値が記載されている。以下の説明で図9を参照しながら具体例について説明する。
比較部102は、対象画素の色と、記憶部104に保持されている代表色の間の距離を算出する(S102)。図13は、代表色の初期状態の例を示す図である。paletteX(X=0,1,・・・、7は各代表色のインデックスを示す)と、代表色とが対応して保持されている本実施形態では、代表色の上限値を8色(8パレット)とする。処理開始時の初期状態では、各代表色のR、G、Bの色情報はN/A(not available)とする。ただし、代表色の初期状態は、例えばR=0、G=0、B=0のように所定の値としても良い。また、事前にどの色が多く出現するかに関する事前情報があれば、頻度の高い色を代表色の初期状態とすることで効率が上がる可能性がある。
画素ブロック内の対象画素の色と、代表色との距離の算出は、以下の式を用いる。
αはRに対する重み係数、βはGに対する重み係数、γはBに対する重み係数を示す。本実施形態では、α=β=γ=1とする例について述べる。ただし、ベイヤー配列などを考慮し、α=γ=1、β=2とGを優先しても良い。
また、YUV表色系の場合でも上記と同様の式で距離を求めることができる。YUVの場合、例えばYに対する重み係数をα、Uに対する重み係数をβ、Vに対する重み係数をγとする。色歪みが発生しないようにUVを優先して、α=1、β=γ=2とする。また、客観画質であるPSNRを高める場合には、Yを優先して、α=2、β=γ=1としても良い。
上記例では、8ビット精度で距離を算出しているが、変更例として、各色の下位数ビットを落として距離を求めてもよい。下位数ビットを落とす処理とは、例えば算術右シフトを用いる。最下位のビットを落とし、色情報を8ビットから7ビットにしてから差分を求めることで、差分を算出する際に増える1ビットの正負の情報と含めても、元の8ビットで処理が可能となる。それによって、ビット幅を増やさずに済むことが可能となる。
本実施形態では、対象画素の色(図9の画素ブロックの左上の画素の場合、R=128、G=128、B=128)と図13に示す初期状態の代表色(N/A)との距離は、無限大として定義する。初期状態の代表色(N/A)と対象画素との間の距離は、取りうる範囲の最大(色情報のダイナミックレンジが8ビットの場合は255)となる。α=β=γ=1であれば、距離=255×3=765とする。
なお、比較部102が、記憶部104に保持されている代表色の内、N/Aではない数(新たに代表色として追加された数)をカウントし、N/Aではない代表色とだけ距離を算出することで、N/Aと不必要に比較することがなくなる。それによって、HW実装の場合、各代表色との比較が終了したか否かを判定するステップ(S103)の数が減るため、処理量が削減可能である。なお、SW実装においても、各代表色との間の距離を求める処理量が削減可能となる。カウントしない場合は、全て(本実施形態では、8色)の代表色との距離を算出すれば良い。本実施形態では、追加された代表色の数をカウントするものとして、以降の説明を行っていく。なお、SWによる実装の場合には、
判定部103は、対象画素の色が代表色で置き換わった際の歪量を、閾値Aを用いて判定している。所定の歪量以上となった場合には(S104,No)、対象画素の色を代表色とする(S106)ことで、歪量が閾値Aを超えた値とならないように制御している。閾値Aの決定方法は様々あげられる。例えば各RGBの8ビットのダイナミックレンジの内、下位2ビットの歪量を許容する場合、2ビットの最大値=3の歪量がRGBそれぞれで発生したとして、閾値A=3+3+3=9と設定することができる。なお、本実施形態では閾値Aが9の場合について以下の説明を行う。
閾値Aの値が小さいほど、歪量が少なくなり高画質になる。その一方で、代表色が多く追加されるため、符号化されたデータの量が増加する。逆に、閾値Aの値を大きくするほど、歪量が大きくなり画質は下がる。その一方で、代表色が少ないため、符号化されたデータの量は減少する。したがって、判定部103が、符号化されたデータの量が所望の量になるよう閾値Aを反復処理で試しても良い。反復処理とは、Aの値を少しずつ変え、代表色の量と歪量との関係が所望の量になるAを求める処理をいう。また、閾値Aをフィードバック制御に基づいて調整しても良い。フィードバック制御とは、前回のデータ量とAとの関係から、データ量とAとの間の相関を予測し、次に演算するAの大きさを決定する処理をいう。例えば、閾値がA0の場合、符号量が大きくなりすぎた場合、次の処理はA=A0×2で実行する。A=A0×2の場合、符号量が少なすぎた場合、A=(A0×2+A0)/2とし、徐々にAを収束させていく。また、複数の閾値Aの値を並列に実行して、符号化されたデータの量が所望の量に近くなる閾値Aを選択することも可能である。この変形例については、後述する。
画素ブロック内の最初の対象画素に対する処理について説明する。記憶部104に保持されている代表色はすべてN/Aである。最初の対象画素の色と代表色との距離はいずれも最大値(=255×3=765)となり、閾値A(=9)よりも大きい(S104、No)。また、代表色の上限値が8に対して、新たな代表色を追加したカウント数は0であるため(S105,No)、S106へと進む。判定部103は、記憶部104のpalette0(インデックスは0)の代表色に、最初の対象画素のRGBの色情報を追加する(S106)。図14は、最初の対象画素の色を追加した後、記憶部104に記憶される代表色の情報を示す。そして、判定部103は、最初の対象画素にインデックス0を割り当てる(S107)。
判定部103は、画素ブロック内の16画素中で、1画素しか処理を終えていないと判定し(S108,No)、2番目の対象画素の色と代表色との距離を算出するステップ(S102)に戻る。
次に、画素ブロック内の2番目の対象画素に対する処理について説明する。比較部102は、図14に示した記憶部104に保持されている代表色と、2番目の対象画素の色との距離を算出する(S102)。palette0との距離が0+64+64=128となる。他のpaletteは全てN/Aであり、距離が765となる。本実施形態では、追加された代表色との間でのみ距離を算出するため、palette0との距離を求めた後(S103,Yes)、S104に進む。比較部102は、palette0の128を最少距離として判定部103に送る(S104)。
閾値A(=9)よりも最小距離が大きいため(S104,No)、S105へと進む。新たな代表色を追加したカウント数(=1)は、上限値(=8)よりも小さいので(S105,No)、S106に進む。判定部103は、記憶部104のpalette1(インデックスは1)の代表色に2番目の対象画素のRGBの色情報を追加する(S106)。図15は、2番目の対象画素の色を追加した後、記憶部104に記憶される代表色の情報を示す。そして、判定部103は、2番目の対象画素にインデックス1を割り当てる。
図9に示した、画素ブロック内のすべての対象画素の処理が終わった結果について説明する。図16は、図9のすべての対象画素の処理が終わった結果(S108,Yes)、記憶部104に保持されている代表色を示す図である。記憶部104には、5色の代表色が記憶されている。図10は、図9の画素ブロック内の各対象画素に対して割り当てられたインデックスを示す図である。
符号化部105は、記憶部104に記憶されている、代表色、代表色と対応するインデックス、及び画素ブロック内の対象画素に割り当てられたインデックスを符号化して出力する(S109)。図21は、符号化された画素ブロックのデータ構造の例を示す図である。図21に示すように最初に記憶部104で保持可能な代表色の上限値(=8)を3ビットで表現し符号化する。次に、使用したpalette数を符号化し、続いて各paletteの色情報(RGB各8ビット×palette数)を符号化し、最後に各対象画素がどの代表色で表現されているかを示すインデックスを5色のpaletteを表現可能な3ビット×画素数で符号化する。
上記説明ではすべての情報を固定長で符号化している。例えばインデックスを符号化する際に、出現頻度に応じて符号長を変えた可変長符号化方式(ハフマン符号化、算術符号化)を用いてもいい。あるいは連続するインデックスをまとめて符号化するランレングス符号化方式を利用しても良い。
上記の説明で、図9に示した画素ブロックの符号化処理が終了する(S110,No)。これを符号化対象の画像データ内の全ての画素ブロックに対して繰り返す。
上記の実施形態では記憶部104が、上限値=8のpaletteを保持できる例について説明した。そのため、全て対象画素の圧縮後の歪量が、許容される歪量(閾値A)以下となっており、本実施例では結果的に圧縮後のデータは歪みのないロスレス圧縮データとなっている。以下では、図9に示した画素ブロックをpaletteの上限値=4とした場合の動作について説明する。なお、記憶部104が保持する代表色の初期状態は、同様に図17に示したN/Aであるものとする。また、閾値A(=9)とする。その場合、画素ブロックの対象画素のうち12画素までは上記の実施形態と同様の処理が繰り返さる。図19は、12画素まで処理が終わった段階で、記憶部104に追加されている代表色を示す図である。
13番目の対象画素(R=0、G=0、B=0)と、記憶部104に保持されている代表色(palette1および3)との最小距離は128+64+64=256となり、閾値Aよりも大きいため(S104,N0)、S105に進む。判定部103は、代表色の数が上限値以上かを判定する(S105)。すでに上限値(=4)まで新たに追加された代表色の数が到達しているため(S104,Yes)、S107へ進む。13番目の対象画素の場合、複数の代表色(palette1および3)で最小距離となる。その場合、例えば、インデックスの値が小さい方を優先しても良い。または、隣接する画素で用いられているインデックスを優先しても良い。本実施形態では、インデックスの値が小さい方を優先して割り当てることとする。判定部103は、13番目の対象画素にインデックス1を割り当てる。以降、14番目の対象画素、15番目の対象画素も同様の処理でインデックス1が割り当てられる。最後の16番目の対象画素は、palette0の代表色との距離が最小で64となる。そのため、判定部103は、16番目の対象画素にインデックス0を割り当てる。図11は、以上の処理をすべての画素ブロック内の対象画素に行った結果、対象画素に割り当てられたインデックスを示す図である。
続いて、閾値Aが大きい値の場合の動作について説明する。以下、閾値A=96、上限値=4とした場合について説明する。画素ブロックの対象画素のうち4番目の対象画素までは上記のA=9の場合と同様の処理が繰り返される。図18は、4番目の対象画素まで処理が終わった段階で記憶部104に保持されているpaletteを示す図である。代表色は2つ追加されている。次に、4番目の対象画素(R=128、G=96、B=128)と、記憶部1004に保持されている代表色との最小距離はpalette0で32となり、閾値A以下となる。判定部103は、4番目の対象画素に、インデックス0を割り当てる(S107)。5番目の対象画素も同様に、最小距離が閾値A以下となるpalette0のインデックス0が割り当てられる。7、8番目の対象画素はすでにある代表色と同一の色情報であり、最小距離が0でそれぞれインデックスが1、0と割り当てられることになる。
次に8番目の対象画素(R=64、G=128、B=64)の最小距離は64+64で128となり、閾値Aより大きいため(S104,No)、S105へ進む。判定部103は、記憶部104に保持されている代表色の数が、所定の上限値以上か否かの判定を行う(S105)。記憶部104に保持されている代表色の数が2であるため、上限値=4よりも小さいため(S105,No)、8番目の対象画素の色を新たな代表色としてpalette2に追加する(S106)。図12は、以上の処理をすべての画素ブロック内の対象画素に実行した後のインデックスの割り当て結果を示す図である。図20は、記憶部104に保持される代表色を示す図である。
上記の実施形態における比較部102では、数式1に基づいた距離aのみを算出していた。本変更例では、比較部102が複数の式に基づいて距離b〜dを算出する例について説明する。判定部103は、それぞれに対する閾値に基づいて新たな代表色を追加するか否か判定しても良い。
例えば、以下に距離b〜dを新たに追加した場合について説明する。
比較部102は、例えば距離aをまず算出し、最小距離となる代表色を求める。最小距離が閾値αよりも大きいの場合には、対象画素の色を新たな代表色として追加する。最小距離が閾値α以下の場合には、最小距離となる代表色と、対象画素の色との距離b〜dを算出する。判定部103は、算出された距離b〜dそれぞれと閾値βとを比較する。すべての距離b〜dが、閾値β以下の場合、距離aが最小距離となる代表色のインデックスを対象画素に割り当てる。距離b〜dのいずれかが閾値βより大きい場合、対象画素の色を新たな代表色として追加する。
上記のように距離a〜dという複数の距離と、閾値αと閾値βという複数の閾値との間で代表値を求めるため、特定の色だけが大きく歪むことを抑制することができる。それによって、主観画質を向上することが可能となる。
本実施形態の変形例として、新たに追加された代表色の数が記憶部104で保持できる上限値に到達した際の処理ステップ(S105)が異なる場合について説明する。図6は、本変形例における処理を示すフローチャートである。図5に示した第1の実施形態とは異なる処理のみ説明する。本変形例では、判定部103が、ステップにおいて、上限値に到達していると判定した場合(S205,Yes)、符号化部105が、符号化失敗を出力する(S211)点が異なる。これにより、閾値Aで設定された許容される歪量以上の圧縮データが生成されることがなくなる。一方で、閾値Aの値によっては符号化失敗を出力するため、圧縮データを生成できない場合が存在する。このような場合に備えて、本変形例は、図4に示す画像符号化システムでの運用が有効となる。図4は、画像符号化装置1を複数持つシステムを示す図である。それぞれの画像符号化装置1は、異なる閾値Aをそれぞれ設定して並列に動作する。符号化に成功して出力された圧縮データの中から最も閾値Aの値が小さい圧縮データを選択装置3にて選択して出力する。それによって、高画質な圧縮データの生成が可能となる。さらに、例えば、JPEGやMPEGなど他方式の圧縮方式を用いる画像符号化装置4を併用することで、グラフィック画像だけでなく、様々な特性をもつ画像に対して高効率な圧縮が可能となる。他方式の画像符号化装置4を併用する場合、例えば選択装置3は、画像符号化装置1,4から得られる歪量や圧縮データのサイズから、所望の圧縮データを選択すればよい。
さらなる変形例の処理を示すフローチャートを図7に示す。判定部103が、符号化に成功したか否かを判定するステップ(S212)が追加さている。符号化が失敗したと判定された場合(S212,No)、判定部103は、閾値Aの値を大きくする(S213)。
図6のシステムにおいては、画像符号化装置1を並列に実行したが、閾値Aの設定範囲によっては、非常に多くの画像符号化装置1を並列に配置する必要がある。本変形であれば、例えば、閾値A=0(すなわちロスレス圧縮)から開始して、閾値Aを少しずつ大きくすることで画像符号化装置1が1つだけで最適な閾値Aを設定することが可能となる。特に本変形は、ソフトウェアで実装した場合において特に有効である。
本実施形態の変形例として、記憶部104に記憶する代表色の初期状態をN/Aにせずに、例えばpalette0は画素ブロック内の最初の対象画素の色としても良い。図14は、本変更例の代表色の初期状態を示す図である。初期状態のN/Aとの距離が無限大であれば、必ず最初の画素は新たな代表色として追加されるが、例えば、N/Aではなく、R=0、G=0、B=0などの特定の値で初期状態を決定した場合でもpalette0だけは別扱いとしても良い。最初の対象画素の色をpalette0に設定することで、最初の対象画素に対するindex情報は不要となる。それによって、図21におけるindex情報が画素ブロック内の画素数−1個分で済み、符号量の削減が可能となる。
本実施形態の変形例として、符号化部105がS109において、代表色を量子化することで、より圧縮率の高いデータ圧縮が可能となる。図3は、符号化部105の内部構造を示す図である。符号化部105は、代表色を量子化する量子化部1051と、量子化された代表色と、インデックス情報をエントロピー符号化するエントロピー符号化部1052を有する。インデックス情報は特殊な処理をせずにエントロピー符号化部1052へと入力され、代表色は量子化部1051を経由してからエントロピー符号化部1052へと入力される。代表色の量子化として、例えば、8ビットの情報の下位ビットを一律に落として、6ビットにする方法がある。図22は、データ構造を示す図である。圧縮データ構造は、例えば代表色の上限値を4色とすると、図22に示すデータ構造となる。第1の実施形態の図21と比較して、より高い圧縮率が実現できる。
以上の実施形態によれば、全画素の色のヒストグラム算出を必要とすることなくカラーパレット画像符号化が実現可能である。それによって、処理に必要となるメモリが大幅に削減できる。さらに、逐次的に代表色を決定しながら処理を行えるため、画像スキャンを繰り返すこともない。そのため、特にハードウェア実装において有効である。
例えば、PCの画面等のCG画像データを扱う装置やシステムに、本実施形態の画像符号化装置組み込むことで、伝送速度の向上やCG画像データを保存するDRAMなどの容量の削減が可能である。しかしながら、本実施形態の用途は、上記用途に限定されるものではない。
(第2の実施形態)
第2の実施形態の画像符号化装置2は、代表色に対するヒストグラムを算出し、その分布に基づいて閾値Aを調整する処理を行う点が第1の実施形態の画像符号化装置1と異なる。
図2は、画像符号化装置2を表すブロック図である。画像符号化装置2は、ヒストグラム算出部206と、調整部207とをさらに備える。
ヒストグラム算出部206は、それぞれの代表色が、画素ブロックの内いくつの画素に対して割り当てられたかを累積したヒストグラムを算出する。
調整部207は、ヒストグラムに基づいて閾値Aを調整する。
図8は、画像符号化装置2の処理を表すフローチャートである。画像符号化装置1と異なる処理についてのみ説明する。
以下の説明では、図9に示した画素ブロックを符号化する動作について例示する。記憶部204で保持される代表色の上限値を8色とし、判定部203で用いられる閾値An(n=0〜7)は、それぞれの代表色paletten(0〜7)に適用される閾値を示す。
Anがすべて同じ96を用いた場合、画像処理装置1と同様の動作(S301〜309)を行った段階で、画素ブロック内の対象画素には、図23に示すような代表画素のインデックスが割り当てられる。また、図24(a)に示すように、記憶部204に代表画素が保持される。
第1の実施形態とは異なり画像符号化装置2のヒストグラム算出部206は、画素ブロックの内いくつの画素に対して割り当てられたかを累積したヒストグラムを算出する(S308)。図24(b)は、ヒストグラム算出部206が求めたヒストグラムの例を示す図である。画素ブロック内の対象画素の座標をXn、Ynとして表現している。たとえば、画素ブロック内で最も右上の対象画素の座標はX0/Y0と表現されている。ヒストグラムを求めた結果、palette0の代表色が割り当てられた対象画素の数が最も多く、7画素である。次いでpalette1、palette3、palette2の順に少なくなっている。
判定部203は、画素ブロック内のすべての対象画素に対して代表色が決定されたか判定する(S309)。調整部207は、算出されたヒストグラムに基づいて、閾値Anを調整するか否かを判定する(S310)。調整部207は、最も多くの対象画素に割り当てられた代表色(palettex)をより精度の高い代表色で表現するために、閾値Axの値を小さくする。
例えば、平均的に各代表色に画素が割り当てられたとしたときの値(画素ブロックの画素数/代表色の数)を閾値Cとする。閾値Cよりも多く特定の代表色に対象画素が割り当てられている場合、閾値の調整が必要と判定する(S310,No)。図24の例では、本実施形態では、palette0が閾値C(16画素/4パレット=4)よりも多くの画素が割り当てられている。そのため、閾値A0がS311の調整対象となる。上記例では、1つの代表色が選択された場合について説明したが、複数の代表色の調整を行う構成であっても良い。なお、S311を繰り返すことにより、画素ブロックのスキャンを繰り返すことになる。そのため、例えば、調整回数に上限を設け、繰り返し処理を制限しても良い。(たとえば、上限を2回とする等)
調整部207は、閾値Axの値を現在の値より小さくなるように調整する。調整量に関してはいずれの方法であっても構わない。たとえば、単純に現在の値の半分にしても良いし、さらに追加可能な代表色の数(本実施形態であれば、8−4=4色)に基づいて調整量を決定してもよい。その場合、例えば、Ax=Ax/(1+追加可能代表色数)とする。これによって、追加可能な代表色の数が多いほど、閾値がAxよりも小さくなる。本実施形態では、単純に半分(A0=96→48)としたが、ステップ(S310)による繰り返し回数によっては、自動的にA0の値は最適値に近づいていくため、単純な調整方式でも十分な効果が得られる。
比較部202は、A0=48、その他An=96として、再び代表色と対象画素との距離を算出する(S302)。この際、記憶部204の代表色は、すでに追加されている代表色を用いて行う。2回目の動作では、15番目の対象画素までは最初の動作と同じ結果が得られる。16番目の画素に対しては、最小距離となるpalette0の代表色との距離(64)よりも閾値A0が小さくなる(S304,No)。判定部203は、palette4に16番目の対象画素の色を追加する新たな代表色として追加する(S305およびS306)。
以上の処理を、図25は、画素ブロック内のすべての対象画素に適用した場合のインデックスの割り当結果を示す図である。図26は、記憶部104に保持される代表色を示す図である。
なお、画像符号化装置1は閾値Aがすべての代表色に対して共通の閾値を用いていた。一方、画像符号化装置2は代表色それぞれに対して異なる値の閾値が設定可能である。たとえば、palette0には閾値A0、palette1には閾値A1、といった形となる。
第1の実施形態の変形例で説明した、閾値α、閾値βの例に関しても、代表色毎に設定することができる(例えば、palette0には閾値α0、閾値β0、palette1には閾値α1、閾値β0等)。
また、複数の画像符号化装置1が並列に処理を行う変形例においては、それぞれの画像符号化装置1がそれぞれ異なる閾値を用いることができる(例えば、palette0には閾値A0、palette1には閾値A1を行う画像符号化装置と、palette0には閾値A’0、palette1には閾値A’1を行う画像符号化装置を用いる等)
上記の実施形態によれば、ヒストグラム算出に必要な使用メモリを削減しながら、閾値Anを自動的に制御して、適切な代表色の生成可能が可能となる。
なお、上述の画像符号化装置は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、取得部、比較部、判定部、記憶部、調整部、ヒストグラム選択部、および選択装置は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、画像符号化装置は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD−ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、BおよびCは、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスクもしくはCD−R、CD−RW、DVD−RAM、DVD−Rなどの記憶媒体などを適宜利用して実現することができる。
これまで、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1、2・・・画像符号化装置
101、201・・・取得部
102、202・・・比較部
103、203・・・判定部
104、204・・・記憶部
105、205・・・符号化部
206・・・ヒストグラム算出部
207・・・調整部
3・・・選択装置
4・・・他方式の画像符号化装置

Claims (9)

  1. 符号化対象の画像データから所定サイズの画素ブロックを取得する取得部と、
    既に定められている代表色それぞれと、前記画素ブロック内の対象画素の色との距離を算出し、前記距離が最小距離となる前記代表色を求める比較部と、
    前記最小距離が第1の閾値よりも小さい場合には、前記最小距離の前記代表色と対応するインデックスを前記対象画素に割り当て、前記最小距離が前記第1の閾値よりも大きい場合には、前記対象画素の画素値を新たな代表色として追加し、そして前記新たな代表色と対応する前記インデックスを前記対象画素に割り当てる判定部と、
    前記代表色と、前記対象画素に割り当てられたインデックスとを符号化する符号化部と、
    を有する画像符号化装置。
  2. 前記判定部は、前記最小距離が前記第1の閾値よりも大きい場合に、前記代表色の数が上限値に達しているかを判定し、前記上限値に達している場合には、前記対象画素の色を新たな代表色として追加せず、前記最小距離の前記代表色と対応する前記インデックスを前記対象画素に割り当てることを特徴とする請求項1記載の画像符号化装置。
  3. それぞれの前記対象画素に対してそれぞれの前記代表色が割り当てられた数を累積したヒストグラムを求めるヒストグラム算出部と、
    前記ヒストグラムに基づいて、前記代表色毎に前記第1の閾値の大きさを調整する調整部と、をさらに備え、
    前記判定部は、前記代表色それぞれに定められた前記第1の閾値を用いる
    請求項1記載の画像符号化装置。
  4. 前記調整部は、前記ヒストグラムにおいて、それぞれの前記代表色が割り当てられた数が第2の閾値以上であれば、その代表色に対する第1の閾値の値を小さくする、
    請求項3記載の画像符号化装置。
  5. 前記判定部は、前記最小距離が前記第1の閾値よりも大きい場合に、前記代表色の数が上限値に達しているかを判定し、
    前記符号化部は前記上限値に達している場合には、符号化失敗として出力する、
    請求項1記載の画像符号化装置。
  6. 請求項1〜5記載の画像符号化装置であって、
    前記画素ブロックのうち最初の対象画素はロスレスとなることを特徴する
    請求項1記載の画像符号化装置。
  7. 前記符号化部は、前記代表色を量子化して符号化することを特徴する請求項1〜6記載のいずれか一項記載の画像符号化装置。
  8. それぞれが異なる大きさの前記第1の閾値を有する複数の請求項1記載の画像符号化装置を備え、
    得られた圧縮データのうち、最も第1の閾値の値が小さい圧縮データを出力する画像符号化装置。
  9. 符号化対象の画像データから所定サイズの画素ブロックを取得し、
    既に定められている代表色それぞれと、前記画素ブロック内の対象画素の色との距離を算出し、前記距離が最小距離となる前記代表色を求め、
    前記最小距離が第1の閾値よりも小さい場合には、前記最小距離の前記代表色と対応するインデックスを前記対象画素に割り当て、前記最小距離が前記第1の閾値よりも大きい場合には、前記対象画素の画素値を新たな代表色として追加し、そして前記新たな代表色と対応する前記インデックスを前記対象画素に割り当て、
    前記代表色と、前記対象画素に割り当てられたインデックスとを符号化する、
    画像符号化方法。
JP2012194599A 2012-09-04 2012-09-04 画像符号化装置、及び画像符号化方法 Active JP5632431B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012194599A JP5632431B2 (ja) 2012-09-04 2012-09-04 画像符号化装置、及び画像符号化方法
US13/948,370 US9183643B2 (en) 2012-09-04 2013-07-23 Apparatus and method for generating typical colors for image coding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012194599A JP5632431B2 (ja) 2012-09-04 2012-09-04 画像符号化装置、及び画像符号化方法

Publications (2)

Publication Number Publication Date
JP2014053654A JP2014053654A (ja) 2014-03-20
JP5632431B2 true JP5632431B2 (ja) 2014-11-26

Family

ID=50187691

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012194599A Active JP5632431B2 (ja) 2012-09-04 2012-09-04 画像符号化装置、及び画像符号化方法

Country Status (2)

Country Link
US (1) US9183643B2 (ja)
JP (1) JP5632431B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014107742A (ja) * 2012-11-28 2014-06-09 Toshiba Corp 画像符号化装置、画像復号装置、画像符号化方法、及び画像復号方法
JP2015023506A (ja) * 2013-07-22 2015-02-02 株式会社東芝 画像符号化装置及び画像復号化装置
US9654806B2 (en) * 2014-03-26 2017-05-16 Qualcomm Incorporated Determining palette size, palette entries and filtering of palette coded blocks in video coding
US8908986B1 (en) * 2014-07-23 2014-12-09 Teespring, Inc. Systems and methods for selecting ink colors
GB2531005A (en) 2014-10-06 2016-04-13 Canon Kk Improved encoding process using a palette mode
WO2016115728A1 (en) * 2015-01-23 2016-07-28 Mediatek Singapore Pte. Ltd. Improved escape value coding methods
JP6122516B2 (ja) 2015-01-28 2017-04-26 財團法人工業技術研究院Industrial Technology Research Institute エンコーディング方法及びエンコーダ
US9729885B2 (en) * 2015-02-11 2017-08-08 Futurewei Technologies, Inc. Apparatus and method for compressing color index map
CN105992003B (zh) * 2015-03-01 2021-04-27 上海天荷电子信息有限公司 依据排序或频度对调色板颜色编号的图像压缩方法和装置
CN106254865B (zh) 2015-06-08 2020-06-09 同济大学 一种图像编码及解码方法、图像处理设备
WO2016197893A1 (zh) * 2015-06-08 2016-12-15 同济大学 图像编码及解码方法、图像处理设备、计算机存储介质
JP6545570B2 (ja) * 2015-08-18 2019-07-17 株式会社東芝 符号化装置、復号装置および画像処理装置
US10110926B2 (en) 2015-10-15 2018-10-23 Cisco Technology, Inc. Efficient loop filter for video codec
JP6613842B2 (ja) 2015-11-24 2019-12-04 富士通株式会社 画像符号化装置、画像符号化方法、及び画像符号化プログラム
JP2017108309A (ja) * 2015-12-10 2017-06-15 オリンパス株式会社 撮像装置および撮像方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01198866A (ja) * 1988-02-03 1989-08-10 Ricoh Co Ltd 色符号化方法
JPH01204569A (ja) * 1988-02-10 1989-08-17 Ricoh Co Ltd 色符号化方法
US6389162B2 (en) * 1996-02-15 2002-05-14 Canon Kabushiki Kaisha Image processing apparatus and method and medium
JPH1040364A (ja) * 1996-07-25 1998-02-13 Ricoh Co Ltd カラー画像生成方法
JP4046857B2 (ja) * 1998-07-02 2008-02-13 キヤノン株式会社 画像処理装置およびその方法、並びに、記録媒体
JP2001043376A (ja) * 1999-07-30 2001-02-16 Canon Inc 画像抽出方法及び装置並びに記憶媒体
US6937759B2 (en) * 2002-02-28 2005-08-30 Nokia Corporation Method and device for reducing image by palette modification
US20040013297A1 (en) * 2002-07-18 2004-01-22 Roger Lo Method for performing color gamut compression
JP4311648B2 (ja) * 2004-02-19 2009-08-12 富士フイルム株式会社 代表色選択装置および方法、減色画像生成装置および方法並びにプログラム
US20060204086A1 (en) * 2005-03-10 2006-09-14 Ullas Gargi Compression of palettized images
US20080031587A1 (en) * 2006-08-02 2008-02-07 Chia-Hung Chen Methods for searching data recorded in a storage and recording systems that allow playback utilizing trick-mode operations
AU2006246497B2 (en) * 2006-11-30 2010-02-11 Canon Kabushiki Kaisha Method and apparatus for hybrid image compression
JP4993093B2 (ja) * 2007-05-31 2012-08-08 富士ゼロックス株式会社 画像処理装置および画像処理プログラム
JP4586891B2 (ja) * 2008-06-10 2010-11-24 コニカミノルタビジネステクノロジーズ株式会社 減色方法、減色処理装置、画像形成装置、およびコンピュータプログラム
JP5348411B2 (ja) * 2009-07-15 2013-11-20 富士ゼロックス株式会社 画像処理装置および画像処理プログラム
US8587604B1 (en) * 2010-02-03 2013-11-19 Amazon Technologies, Inc. Interactive color palettes for color-aware search
JP5047332B2 (ja) 2010-05-25 2012-10-10 ヤフー株式会社 画像減色装置、方法及びプログラム
JP5333787B2 (ja) * 2010-07-20 2013-11-06 富士ゼロックス株式会社 画像処理装置及び画像処理プログラム
JP2012085029A (ja) * 2010-10-08 2012-04-26 Fujitsu Semiconductor Ltd 画像処理装置

Also Published As

Publication number Publication date
JP2014053654A (ja) 2014-03-20
US9183643B2 (en) 2015-11-10
US20140064612A1 (en) 2014-03-06

Similar Documents

Publication Publication Date Title
JP5632431B2 (ja) 画像符号化装置、及び画像符号化方法
JP6512928B2 (ja) 画像符号化装置、画像処理装置、画像符号化方法
EP2232876B1 (en) Pixel block processing
US8335385B2 (en) Pixel block processing
US8260072B2 (en) Image encoding apparatus and method of controlling the same
JP5208218B2 (ja) 画像符号化装置、デジタルスチルカメラ、デジタルビデオカメラ、撮像素子、および画像符号化方法
JP2017055267A (ja) 画像符号化装置、画像処理装置、画像符号化方法
US7916954B2 (en) Image encoding apparatus and control method thereof
JP2013507083A5 (ja)
US20070206868A1 (en) Image encoding apparatus and control method thereof
JP2005348390A (ja) 画像符号化装置及び画像復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US6697529B2 (en) Data compression method and recording medium with data compression program recorded therein
JP7065594B2 (ja) 画像符号化装置及びその制御方法、並びにプログラム
US8396308B2 (en) Image coding based on interpolation information
KR101847459B1 (ko) 이미지 변환장치 및 방법
JP2012222453A (ja) データ処理装置、データ処理方法、プログラム、およびカメラシステム
JP2011023922A (ja) 画像符号化装置およびそのプログラム
JPH09247675A (ja) 画像圧縮方法および画像圧縮システム
JP2007019878A (ja) 画像符号化装置及び画像符号化方法
US9135723B1 (en) Efficient visually lossless compression
JP2006304198A (ja) 画像圧縮装置
JP2020092327A (ja) 画像符号化装置、画像符号化方法、およびプログラム
KR101826040B1 (ko) 파일 형식에 기반한 이미지 처리 장치 및 방법
JP6285711B2 (ja) 画像処理装置
KR102037951B1 (ko) 파일 형식에 기반한 이미지 처리 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140408

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: 20140912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141009

R151 Written notification of patent or utility model registration

Ref document number: 5632431

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313114

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350