JP4434215B2 - 復号化装置および復号化方法 - Google Patents
復号化装置および復号化方法 Download PDFInfo
- Publication number
- JP4434215B2 JP4434215B2 JP2007029200A JP2007029200A JP4434215B2 JP 4434215 B2 JP4434215 B2 JP 4434215B2 JP 2007029200 A JP2007029200 A JP 2007029200A JP 2007029200 A JP2007029200 A JP 2007029200A JP 4434215 B2 JP4434215 B2 JP 4434215B2
- Authority
- JP
- Japan
- Prior art keywords
- image information
- pixel
- coefficient
- value
- pixels
- 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 Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
本発明は、復号化装置および復号化方法に関し、特に、情報を伸長する復号化装置および復号化方法に関する。
従来、例えば、画像データから所定の割合で画素を間引くことにより情報量を圧縮する場合、サブサンプリングフィルタにより前処理が実行された後に、所定の画素が間引かれていた。
このような処理において、前述のサブサンプリングフィルタとしては、ナイキストの条件(サンプリング定理)を満たす、固定係数のフィルタが用いられていた。
しかしながら、このような固定係数のフィルタは、処理しようとする画像の種類に拘わらず特性が不変であるので、画像の種類によっては特性が必ずしも最適ではない場合があるという課題があった。
また、圧縮された画像を復号化する場合において使用される予測フィルタも、固定係数フィルタが使用されていた。従って、予測フィルタにおいても、前述の場合と同様の課題があった。
本発明は、以上のような状況に鑑みてなされたものであり、例えば、画像データから所定の画素を間引くことにより圧縮処理し、予測フィルタによりもとの画像を伸長処理する場合において、最適なサブサンプリングフィルタおよび予測フィルタを提供することを目的とする。
本発明の復号化装置は、もとの画像情報の画素を第1の係数に基づいて間引くことによって符号化された間引き後の画像情報に対して画素を補間する処理を施して復号化した後、出力する復号化装置において、前記符号化された間引き後の画像情報に対する画素の補間を第2の係数に基づいて行う演算手段と、前記第2の係数を算出する算出手段と、前記演算手段により得られたデータを出力する出力手段とを備え、前記算出手段は、学習用の前記もとの画像情報が準備されているとき、画素を間引くことによって符号化された符号化後の画像情報と、符号化前の学習用の前記もとの画像情報とを参照して、符号化後の画像情報から所定の係数に基づいて復号された画像情報と、符号化前の学習用の前記もとの画像情報との差を最小にするその所定の係数を前記第2の係数の最適値として算出し、符号化された画像情報には、前記画像情報に含まれている所定の画素と前記所定の画素の周辺に位置するその他の画素の画素値の差分値に所定の閾値を適用することにより得られる情報であって、前記所定の画素と前記他の画素の画素値の大小関係を表す非線形情報が含まれ、前記演算手段は、前記符号化された画像情報のうち間引き後の画素位置に対応する第1の画像情報及び前記第1の画像情報の前記所定の画素の画素値と前記非線形情報に基づいて算出され、前記その他の画素に対応する情報である第2の画像情報と、前記第2の係数とを積和演算することにより補間を行うことを特徴とする。
前記算出手段は、前記符号化後の画像情報と、符号化前の学習用の前記もとの画像情報とから、最小2乗法を用いて、前記第2の係数の最適値を算出することができる。
本発明の復号化方法は、もとの画像情報の画素を第1の係数に基づいて間引くことによって符号化された間引き後の画像情報に対して画素を補間する処理を施して復号化した後、出力する復号化方法において、前記符号化された間引き後の画像情報に対する画素の補間を第2の係数に基づいて行う演算ステップと、前記第2の係数を算出する算出ステップと、前記演算ステップにより得られたデータを出力する出力ステップとを備え、前記算出ステップは、学習用の前記もとの画像情報が準備されているとき、画素を間引くことによって符号化された符号化後の画像情報と、符号化前の学習用の前記もとの画像情報とを参照して、符号化後の画像情報から所定の係数に基づいて復号された画像情報と、符号化前の学習用の前記もとの画像情報との差を最小にするその所定の係数を前記第2の係数の最適値として算出し、符号化された画像情報には、前記画像情報に含まれている所定の画素と、前記所定の画素の周辺に位置するその他の画素の画素値の差分値に所定の閾値を適用することにより得られる情報であって、前記所定の画素と前記他の画素の画素値の大小関係を表す非線形情報が含まれ、前記演算ステップの処理においては、前記符号化された画像情報のうち間引き後の画素位置に対応する第1の画像情報及び前記第1の画像情報の前記所定の画素の画素値と前記非線形情報に基づいて算出され、前記その他の画素に対応する情報である第2の画像情報と、前記第2の係数とを積和演算することにより補間を行うことを特徴とする。
本発明の復号化装置および復号化方法においては、符号化された間引き後の画像情報に対する画素の補間が第2の係数に基づいて行われ、前記第2の係数が算出され、演算により得られたデータが出力される。また、学習用のもとの画像情報が準備されているとき、画素を間引くことによって符号化された符号化後の画像情報と、符号化前の学習用の前記もとの画像情報とを参照して、符号化後の画像情報から所定の係数に基づいて復号された画像情報と、符号化前の学習用の前記もとの画像情報との差を最小にするその所定の係数が前記第2の係数の最適値として算出される。符号化された画像情報には、前記画像情報に含まれている所定の画素と前記所定の画素の周辺に位置するその他の画素の画素値の差分値に所定の閾値を適用することにより得られる情報であって、前記所定の画素と前記他の画素の画素値の大小関係を表す非線形情報が含まれ、前記符号化された画像情報のうち間引き後の画素位置に対応する第1の画像情報及び前記第1の画像情報の前記所定の画素の画素値と前記非線形情報に基づいて算出され、前記その他の画素に対応する情報である第2の画像情報と、前記第2の係数とを積和演算することにより補間が行われる。
本発明によれば、画像に応じて最適な係数を設定することが可能となる。
図1は、本発明の一実施の形態の構成例を示すブロック図である。この図において、エンコーダ1は、原画をプリフィルタ処理をした後、画素を間引きし、データ量を1/9に圧縮するようになされている。プリフィルタ係数格納回路2は、プリフィルタ係数生成回路3から出力されるプリフィルタ係数を格納するようになされている。プリフィルタ係数生成回路3は、原画と予測フィルタ係数格納回路5からの出力を参照して、プリフィルタ係数を生成し、プリフィルタ係数格納回路2に供給する。
デコーダ4は、エンコーダ1により圧縮された画像に対して、予測フィルタ処理を行うことにより、もとの画像に復号化(伸長)する処理を行うようになされている。予測フィルタ係数格納回路5は、予測フィルタ係数生成回路6より供給される予測フィルタ係数を格納するようになされている。予測フィルタ係数生成回路6は、原画と圧縮画像とを参照して予測フィルタ係数を生成し、予測フィルタ係数格納回路5に供給するようになされている。
図2は、エンコーダ1の詳細な構成例を示している。この図において、ブロック化回路1aは、シリアルデータとして入力される画像データをブロック化する処理を行うようになされている。プリフィルタ回路1bは、ブロック化された画像データを32種類のクラスに分類するとともに、プリフィルタ係数格納回路2から供給されるプリフィルタ係数と画像データとの間で積和演算を行い、得られたデータをコード化回路1dに出力する。
付加コード生成回路1cは、ブロック化された画像データの中心画素と、その周囲の4画素の間で所定の演算を行い、得られた付加コードをコード化回路1dに対して出力する。
コード化回路1dは、プリフィルタ回路1bから出力されるデータを上位4ビットとし、また、付加コード生成回路1cから出力されるデータを下位4ビットとして連接し、1個のデータ(8ビットデータ)として出力するようになされている。
次に、本実施の形態の動作について説明する。なお、本発明は、プリフィルタおよび予測フィルタ係数の決定方法を特徴としているが、その前段階として、本実施の形態による画像データの圧縮および伸長処理について説明する。
いま、図3に示すような画像データがブロック化回路1aに対して入力されたとする。即ち、ライン#1乃至#6に示すような順序で、1ラインずつ画像データが入力されたとすると、ブロック化回路1aは、このような入力データを内蔵されているメモリに記憶させ、所定量のデータが記憶されたところで、図中破線で示すようなブロック@1乃至@6を形成し、各ブロック(図4参照)をプリフィルタ回路1bに対して順に出力する。
なお、図2では説明を簡単にするために、画素の数を減らしてあるが、実際の画像は、例えば、縦横それぞれ数百乃至数千ドット程度の画素により構成されている。
プリフィルタ回路1bは、図5に示すような構成とされている。この図において、クラス分類回路1b−1は、入力された9画素のデータのうち図6に示す5画素に注目し、その5画素のパターンに応じて入力データを32種類のクラスに分類し、そのクラスを示す値を出力する。
即ち、図3に示す破線で囲まれた領域内の9画素を、図4に示すように、左上から順にx0乃至x8とする。このようなブロックが入力されると、クラス分類回路1b−1は、画素x4を中心として、その上下左右の画素(x1,x3,x5,x7)(図6参照)に注目して、その5つの画素をそのパターンに応じて32個のクラスに分類する。
図7は、クラス分類処理の一例を説明するフローチャートである。この処理が実行されると、ステップS1では、一次元配列x[]の第0番目乃至第4番目に、画素x1,x3,x4,x5,x7の画素値が、それぞれ格納される。
ステップS2では、x1,x3,x4,x5,x7(以下、代表画素という)の中で最大の値が変数maxに代入される。続くステップS3では、代表画素の中で最小の値が変数minに代入される。そして、ステップS4では、(max−min+1)の値が、変数drに代入される。
ステップS5では、変数drの値が1であるか否かが判定される。その結果、変数drの値が1である(YES)と判定された場合には、ステップS6に進み、変数iに0が代入された後、処理を終了する(エンド)。また、変数drの値が1ではない(NO)と判定された場合には、ステップS7に進む。
ステップS7では、変数jが0に初期設定され、ステップS8に進む。ステップS8では、以下に示す式で得られた値が変数wに代入される。なお、wは実数であり、浮動小数点により計算される。
2(x[j]−min+0.5)/dr ・・・ (1)
次のステップS9では、ステップS8で計算された変数wの値が0よりも小さいか否かが判定される。その結果、変数wの値が0よりも小さい(w<0:YES)と判定された場合は、ステップS10に進み、配列z[j]に0が代入され、ステップS14に進む。また、変数wの値が0以上である(w≧0:NO)と判定された場合には、ステップS11に進む。ステップS11では、変数wの値が、1よりも大きいか否かが判定され、その結果、変数wの値が1よりも大きい(w>1:YES)と判定された場合には、ステップS12に進み、配列z[j]に値1が代入される。また、ステップS11において、変数wの値が1以下である(w≦1:NO)と判定された場合には、ステップS13に進み、変数wの値の小数点以下を切り捨てた整数値が代入される。
そして、ステップS14では、変数jの値が1だけインクリメントされ、ステップS15に進む。ステップS15では、変数jの値が5よりも小さいか否かが判定される。その結果、変数jの値が5より小さい(j<5:YES)と判定された場合は、ステップS7に戻り、前述と同様の処理が繰り返され、また、変数jの値が5以上である(j≧5:NO)と判定された場合には、ステップS16に進む。
ステップS16では、以下に示す式により得られた値が変数iに代入され、処理を終了する(エンド)。
z[0]×1+z[1]×2+z[2]×4+z[3]×8+z[4]×16
・・・ (2)
・・・ (2)
即ち、配列z[]の第0番目乃至第4番目の要素は、第0ビット(LSB)乃至第4ビット(MSB)として、クラスコードを格納する変数iに代入される。そして、処理を終了する(エンド)。
以上のようにして生成されたクラスコードiは、フィルタ回路1b−2に供給される。
フィルタ回路1b−2は、プリフィルタ係数格納回路2から、クラスコードiに対応するプリフィルタ係数を読み出す。そして、フィルタ回路1b−2は、得られたプリフィルタ係数を用いて、ブロック化回路1aより出力される画素データに対して、フィルタ処理を施す。即ち、フィルタ回路1b−2は、図8に示すように、9個の画素x0乃至x8の画素値に対して、プリフィルタ係数格納回路2から供給されたプリフィルタ係数ai0乃至ai8を乗算し、プリフィルタ後の画素値y4を得る。なお、以上の演算は、以下のように表すことができる。ここで、iはクラスコードである。なお、プリフィルタ係数生成回路3におけるプリフィルタ係数の生成方法については後述する。
y4=ai0×x0+ai1×x1+ai2×x2+
ai3×x3+ai4×x4+ai5×x5+
ai6×x6+ai7×x7+ai8×x8 ・・・ (3)
ai3×x3+ai4×x4+ai5×x5+
ai6×x6+ai7×x7+ai8×x8 ・・・ (3)
このようにして得られた画素値y4は、コード化回路1dに供給される。
ブロック化回路1aから出力されたデータは、付加コード生成回路1cに対しても供給される。図9は、付加コード生成回路1cにおいて実行される処理の一例を説明するフローチャートである。
この処理が実行されると、ステップS20において、一次元配列x[]の第0番目乃至第3番目に、画素x1,x3,x5,x7の画素値が代入される。そして、ステップS21では、変数jが0に初期設定される。
続くステップS22では、配列x[]の第j番目の要素(x[j])から中心画素x4の値を減算し、更に値16を減算して得られた値が、変数wに代入される。
そして、ステップS23では、ステップS22で得られたwの値が0よりも大きいか否かが判定される。その結果、変数wの値が0よりも大きい(w>0:YES)と判定された場合には、ステップS24に進む。また、逆に、変数wの値が0以下である(w≦0:NO)と判定された場合には、ステップS25に進む。
ステップS24では、一次元配列k[]の第j番目(k[j])に1が代入され、また、ステップS25では、一次元配列k[]の第j番目(k[j])に0が代入される。そして、ステップS26に進むことになる。
従って、画素x1(または、x3,x5,x7)の画素値が中心画素x4の画素値に値16を加算した値よりも大きい場合(x1>x4+16)には、配列k[]に1が代入され、また、画素x1(または、x3,x5,x7)の画素値が中心画素x4の画素値に値16を加算した値以下である場合(x1≦x4+16)には、配列k[]に0が代入されることになる。即ち、中心画素とその周辺の画素の画素値の大小関係に応じて1または0とされる付加コード(非線形コード)が生成されることになる。
ステップS26では、変数jの値が1だけインクリメントされ、ステップS27に進む。ステップS27では、変数jの値が、4よりも小さいか否かが判定される。その結果、変数jの値が4より小さい(j<4:YES)と判定された場合は、ステップS22に戻り、前述の場合と同様の処理が繰り返される。また、変数jの値が4以上である(j≧4:NO)と判定された場合には処理を終了する(エンド)。
以上の処理により得られた付加コードは、コード化回路1dに供給される。
コード化回路1dは、プリフィルタ回路1bから供給された画素値y4と、付加コード生成回路1cから供給された付加コードに対して所定の演算を施し、得られたデータを圧縮画像データとして出力する。即ち、コード化回路1dは、以下に示す演算を実行する。
d12=(240&y4)|(k[3],k[2],k[1],k[0])
・・・ (4)
・・・ (4)
なお、d12は出力データを示している。また、&は論理積を示し、|は論理和を示している。更に、(,,,)は、連接を表している。即ち、(a,b)の場合では、変数aが上位ビット、変数bが下位ビットとして、1まとめのデータとされることを示している。
このような演算によれば、最初の()内の演算により、画素値y4の上位4ビットが抽出され(240は、2進法では11110000である)、次の()内の演算により、付加コードが4ビットのデータに変換される。そして、これらの()の論理和を演算することにより、上位4ビットと下位4ビットとが重畳されることになる。
図10は、図1に示すデコーダ4の詳細な構成例を示すブロック図である。
この図に示すように、デコーダ4は、ブロック化回路4a、デコード回路4b、予測フィルタ回路4c、および、非ブロック化回路4dにより構成されている。
ブロック化回路4aは、入力されたデータをブロック化するようになされている。デコード回路4bは、ブロック化回路4aによりブロック化されたデータに対してデコード処理を施す。予測フィルタ係数格納回路5は、予測フィルタ係数生成回路6により生成された予測フィルタ係数を格納するようになされている。予測フィルタ回路4cは、予測フィルタ係数格納回路5から供給される係数に応じて、デコード回路4bから出力されるデータに対してフィルタリング処理を施す。非ブロック化回路4dは、予測フィルタ回路4cからの出力信号をもとの画像信号(シリアル信号)に変換するようになされている。
なお、予測フィルタ係数生成回路6における予測フィルタ係数の生成方法に関しては後述する。
次に、デコーダ4の動作について説明する。
図11は、ブロック化回路4aの動作を説明する図である。画像データ(圧縮処理が施されているデータ)は、ライン#1乃至#6に示す順序で、ブロック化回路4aに入力される。なお、この図において、破線で示す丸は、圧縮により間引かれた画素を示しており、実線で示す丸は圧縮後に残った画素を示している。
ブロック化回路4aは、ライン#1乃至#6の順に入力された画素データを図示せぬメモリに記憶させ、所定量のデータが記憶されたところで、ブロック@1乃至@6を形成し、各ブロックのデータをデコード回路4bに対して順に出力する。
図12は、デコード回路4bにおいて実行される処理の一例を示している。この処理が実行されると、ステップS40において、変数jが1に初期設定され、ステップS41に進む。ステップS41では、以下の演算が実行される。即ち、図11に示す圧縮後に残った実線領域内の画素を左上から順に、d0乃至d24とすると、k[j]は、d12を用いて以下のように表すことができる。
k[j]=(d12&2j)/2j ・・・ (5)
ここで、d12は、入力データを示している。また、&は前述のように論理積を示している。例えば、j=0の場合では、d12と1(=20)の論理積が演算され、得られた値が1(=20)で除算され、配列k[0]に代入される。即ち、j=0では、d12の最下位ビットに格納されている付加コードの最下位ビット(k1)が取り出されることになる。j=1,2,3では、最下位ビットから第1乃至第3ビット目の情報(k3,k5,k7)が取り出される。
続くステップS42では、変数jの値が1だけインクリメントされ、ステップS43において、変数jの値が4よりも小さいか否かが判定される。その結果、変数jの値が4よりも小さい(YES)と判定された場合は、ステップS41に戻り、前述の場合と同様の処理が繰り返されることになる。また、変数jの値が4以上である(NO)と判定された場合には、ステップS44に進む。
以上の繰り返し処理の結果、j=1では、入力データd12からk3が抽出され、以下、j=2ではk5、j=3ではk7が順次抽出され、それぞれ、k[1],k[2],k[3]に格納されることになる。
ステップS44では、変数jが0に再設定される。そして、ステップS45に進み、配列kの第j番目の要素(k[j])の値が1であるか否かが判定される。その結果、k[j]が0である(NO)と判定された場合は、ステップS47に進み、配列y’[]の第j番目(y’[j])に、0が代入された後、ステップS48に進む。一方、k[j]=1である(YES)と判定された場合には、ステップS46に進み、以下の演算が実行される。
y’[j]=240&d12−16 ・・・ (6)
即ち、入力データd12の上位4ビットには、プリフィルタ後の画素値(y4)が格納されているので、d12と240の論理積を演算することにより、y4が抽出され、得られた値に16を加算した値が、配列y’の第j番目の要素(y’[j])として格納される。
ステップS48では、変数jの値が1だけインクリメントされ、ステップS49に進み、変数jの値が4よりも小さいか否かが判定される。その結果、変数jの値が4よりも小さい(YES)と判定された場合には、ステップS45に戻り、前述の場合と同様の処理が繰り返される。また、変数jの値が4以上である(NO)と判定された場合には、ステップS50に進む。
ステップS50では、以下の処理が実行される。
k1=k[0] ・・・ (7)
k3=k[1] ・・・ (8)
k5=k[2] ・・・ (9)
k7=k[3] ・・・ (10)
k3=k[1] ・・・ (8)
k5=k[2] ・・・ (9)
k7=k[3] ・・・ (10)
即ち、配列kの第0乃至第3番目の要素が、変数k1,k3,k5,k7にそれぞれ代入される。
そして、ステップS50の処理が終了すると、ステップS51に進み、以下の式に示す処理が実行される。
y1’=y’[0] ・・・ (11)
y3’=y’[1] ・・・ (12)
y4’=d12 ・・・ (13)
y5’=y’[2] ・・・ (14)
y7’=y’[3] ・・・ (15)
y3’=y’[1] ・・・ (12)
y4’=d12 ・・・ (13)
y5’=y’[2] ・・・ (14)
y7’=y’[3] ・・・ (15)
即ち、配列y’の第0番目乃至第3番目の要素が、変数y1’,y3’,y5’,y7’にそれぞれ代入されるとともに、入力データd12の値がy4’に代入される。そして、これらの変数に代入された値が、予測フィルタ回路4cに出力され、処理を終了する(エンド)。
以上の処理により、図13に示すように、入力されたデータd12より、代表画素の値(y1’,y3’,y4’,y5’,y7’)と、付加コード(k1,k3,k5,k7)とを得る。
図14は、予測フィルタ回路4cの構成例を示している。この図に示すように、予測フィルタ回路4cは、クラス分類回路4c−1およびフィルタ回路4c−2により構成されている。クラス分類回路4c−1は、付加コードと1ブロック分の画素とから、クラスコードを生成して、フィルタ回路4c−2に供給する。フィルタ回路4c−2は、クラスコードに対応する係数を、予測フィルタ係数格納回路5から読み出し、入力データとの間で所定の処理を行うことで、元の画素データを再生するようになされている。
図15は、クラス分類回路4c−1が実行する処理の一例を示す図である。この処理が実行されると、ステップS60において、変数maxに、図16に示す、d7,d11,d12,d13,d17の中で、最大の値が選択されて代入される。続くステップS61では、d7,d11,d12,d13,d17の中で、最小の値が選択されて変数minに代入される。
ステップS62では、変数drに値(max−min+1)が代入される。そして、ステップS63に進み、変数drの値が1であるか否かが判定される。その結果、変数drの値が1である(YES)と判定された場合には、ステップS66に進み、変数z12に0が代入されてステップS70に進む。また、変数drの値が0である(NO)と判定された場合には、ステップS64に進む。
ステップS64では、以下の演算が実行される。
w=2(d12−min+0.5)/dr ・・・ (16)
そして、続くステップS65では、ステップS64で得られたwの値が、0よりも小さいか否かが判定される。その結果、wの値が0よりも小さい(YES)と判定された場合は、ステップS66に進み、変数z12に値0が代入され、ステップS70に進む。また、wの値が0以上である(NO)と判定された場合には、ステップS67に進み、変数wの値が1よりも大きいか否かが判定される。その結果、変数wの値が1よりも大きい(YES)と判定された場合には、ステップS68に進み、変数z12に値1が代入され、ステップS70に進む。また、変数wの値が1以下である(NO)と判定された場合には、ステップS69に進み、変数wの値の小数点以下を切り捨てた整数値が変数z12に代入される。
ステップS70では、以下の計算が実行される。
i=(k7,k5,z12,k3,k1) ・・・ (17)
なお、ここで、(,,,,)は、連接を表しており、()内の変数をそれぞれ1ビットとみなして順に結合して形成される2進数が変数iに代入される。そして、以上の演算が終了すると、得られた変数iの値がクラスコードとして出力され、処理を終了する(エンド)。
以上のような処理により、クラス分類回路4c−1がクラスコードiを生成すると、得られたクラスコードiは、フィルタ回路4c−2に供給される。フィルタ回路4c−2は、クラスコードiに対応するフィルタ係数を、予測フィルタ係数格納回路5から読み出す。
予測フィルタ係数格納回路5は、予測フィルタ係数生成回路6により生成された、クラスコードiに対応する予測フィルタ係数係数bij0乃至bij24およびcij1,cij3,cij5,cij7を、フィルタ回路4c−2に供給する。なお、これらの予測フィルタ係数は、図17に示すように、復号化しようとする部分の代表画素に対応する係数cij1,cij3,cij5,cij7と、25画素からなるブロックのそれぞれの画素に対応する係数bij0乃至bij24から構成されている。
フィルタ回路4c−2は、以上の予測フィルタ係数と、デコード回路4bにより得られたy1’,y3’,y5’,y7’と、1ブロック分の画素データd0乃至d24の間で以下の演算を行い、図17に示す、デコード後のデータであるx0’乃至x8’を得る。
xj’=bij0×d0+bij1×d1+bij2×d2+
bij3×d3+bij4×d4+bij5×d5+
bij6×d6+bij7×d7+bij8×d8+
bij9×d9+bij10×d10+bij11×d11+
bij12×d12+bij13×d13+bij14×d14+
bij15×d15+bij16×d16+bij17×d17+
bij18×d18+bij19×d19+bij20×d20+
bij21×d21+bij22×d22+bij23×d23+
bij24×d24+
cij1×y1'+cij3×y3'+cij5×y5'+cij7×y7'
・・・ (18)
bij3×d3+bij4×d4+bij5×d5+
bij6×d6+bij7×d7+bij8×d8+
bij9×d9+bij10×d10+bij11×d11+
bij12×d12+bij13×d13+bij14×d14+
bij15×d15+bij16×d16+bij17×d17+
bij18×d18+bij19×d19+bij20×d20+
bij21×d21+bij22×d22+bij23×d23+
bij24×d24+
cij1×y1'+cij3×y3'+cij5×y5'+cij7×y7'
・・・ (18)
なお、ここで、iは、前述のようにコードデータであり、0≦i≦31とされている。また、jは、図15に示すように、圧縮画素と、圧縮時に間引いた画素を全て復元するために0≦j≦8とされている。
以上のような処理により得られたブロックデータは、非ブロック化回路4dに供給されることになる。
非ブロック化回路4dでは、予測フィルタ回路4cより出力されたブロックデータ@1乃至@6が、内蔵されているメモリに記憶され、図18に示すように、ライン#1乃至#6の順序で、1ライン毎に順次読み出されて出力される。
次に、図19を参照して、図1に示す実施の形態のプリフィルタ係数生成回路3と予測フィルタ係数生成回路6における、プリフィルタ係数と、予測フィルタ係数の生成方法について説明する。
図19は、プリフィルタ係数と予測フィルタ係数を生成する処理を説明するフローチャートである。いま、学習用のサンプルとして、n種類の画像(原画)が準備されており、その原画に基づいて、係数が生成されるものとする。
図19の処理が実行されると、ステップS100において、プリフィルタ係数生成回路3にプリフィルタ係数の初期値(初期プリフィルタ係数)が設定される。
例えば、初期係数として、以下のような値を用いることができる。
111
111
111
111
111
そして、ステップS101では、以上のような初期プリフィルタ係数を用いて、エンコーダ1において、前述のような、原画の圧縮処理が実行され、1/9に圧縮された画像が生成される。
続くステップS102では、予測フィルタ係数の学習が行われる。即ち、学習用の原画と、デコーダ4から出力されるデコード画像との間で、最小2乗法に基づく計算がなされ、予測フィルタ係数が決定されることになる。以下にその詳細を説明する。
いま、第k番目の原画が圧縮処理されたとすると、その出力の一部は、図20に示すようになる。また、学習用の原画のうち、図20の画素d12kを中心画素とする中心ブロックの画素をx0k乃至x8kとする。このとき、エンコーダ1から出力された画像データをDijとし、また、予測フィルタ係数をBjとすると、これらの間には以下の関係が成立する。なお、iは、フィルタのクラス数を表しており、また、jはモード数を表しており、それぞれ、0≦i≦31,0≦j≦8である。
Xj’=DijBj ・・・ (19)
なお、式(19)は、次のように表わすことができる。
ここで、学習用の原画をXjとすると、予測フィルタ係数は、以下のような条件を満足することが望まれる。なお、minは最小値を意味する。
|Xj’−Xj|2 →min ・・・ (21)
ここで、式(19)を式(21)に代入すると、以下の式を得る。
|DijBj−Xj|2→min ・・・ (22)
制約条件として|Bj|2≦1を課した場合に、式(22)を解くと以下の式を得る。
Bij=(DijtDij+αI)-1DijtXj ・・・ (23)
ここで、tは転置を、また、−1は、逆行列を表している。更に、Iは、n×mの単位行列を表している。
図21は、以上に示したような最小2乗法に基づいて、予測フィルタ係数を計算する処理の一例を説明するフローチャートである。
この処理が実行されると、ステップS200において、行列(DijtDij)の全ての要素の絶対値の和が計算され、得られた値が変数maxに代入される。続くステップS201では、処理の開始値を格納する変数loop_startが1に初期設定される。続くステップS202では、変数maxの値の対数を取った値の整数部分が、処理の終了値を格納する変数loop_endに格納される。
続くステップS203では、自然対数eの変数loop_start乗の値(=exp(loop_start))が計算され、変数αに代入される。
ステップS204では、前述の式(23)に従って、予測フィルタの係数Bijが計算されることになる。
次のステップS205では、|Bij|2の値が1以下であるか否かが判定される。即ち、予測フィルタ係数のノルムが1以下であるか否かが判定される。その結果、|Bij|2の値が1以下である(YES)と判定された場合には、処理を終了する(エンド)。また、|Bij|2の値が1よりも大きい(NO)と判定された場合にはステップS206に進む。
ステップS206では、変数loop_startの値が1だけインクリメントされ、ステップS207に進む。ステップS207では、exp(loop_start)が演算され、得られた値が変数αに代入される。そして、ステップS208に進む。
ステップS208では、変数loop_startの値が変数loop_endの値以上であるか否かが判定される。その結果、変数loop_startの値が変数loop_endの値以上である(YES)と判定された場合には、処理を終了する(エンド)。また、変数loop_startの値が変数loop_endの値よりも小さい(NO)と判定された場合には、ステップS204に戻り、前述の場合と同様の処理が繰り返されることになる。
以上の処理により、最小2乗法に基づいて、予測フィルタの係数の最適値が算出されることになる。
図19に戻って、以上のようにして、予測フィルタ係数が決定されると、ステップS103に進み、デコード(復号化)画像が生成されることになる。この処理は、前述の場合と同様であり、ステップS102において生成された予測フィルタ係数を用いて、エンコーダ1から出力された画像が復号化されることになる。
続くステップS104では、原画とデコード画(デコーダ4の出力画像)との間で、以下の式により、SNR(Signal-to-noise Ratio)が計算される。
SNR=20log10(255/誤差の標準偏差) ・・・ (24)
ここで、誤差の標準偏差は、以下の式により求めることができる。
即ち、全画素に亘って、誤差の2乗平均の平方根が求められる。なお、ここで、Nは、全データ(画素)数を示している。
SNRが算出されると、ステップS105に進む。そして、SNRの変化量が小さいか、または、処理回数が所定値を超過したか否かが判定される。即ち、前回の処理により得られたSNRと今回の処理により得られたSNRの差が0.05dB以下であるか、または、処理回数が50回を超過したか否かが判定される。その結果、変化量が小さいかまたは所定の処理回数を超過した(YES)と判定された場合は、処理を終了する(エンド)。また、これらの何れも満足していない(NO)と判定された場合には、ステップS106に進む。
ステップS106では、プリフィルタ係数の学習が実行される。即ち、図23に示すように、エンコード処理では、第k番目の原画の15×15画素のブロックに対して所定の演算がなされ、5×5画素の圧縮画像が得られることになるが、このとき、中心画素ブロックの値は以下の式により求めることができる。
x12jk=bij0×(ap0×x00k+ap1×x01k+・・・+
ap8×x08k)+bij1×(・・・)+
bij2×(・・・)+bij3(・・・)+
bij4×(aq0×x40k+aq1×x41k・・・+
aq8×x48k)+・・・+
cij1×y1’k+cij3×y3’k+cij5×y5’k+
cij7×y7’k ・・・ (26)
ap8×x08k)+bij1×(・・・)+
bij2×(・・・)+bij3(・・・)+
bij4×(aq0×x40k+aq1×x41k・・・+
aq8×x48k)+・・・+
cij1×y1’k+cij3×y3’k+cij5×y5’k+
cij7×y7’k ・・・ (26)
この式において、予測フィルタ係数bij0,bij1,bij2,・・・,cij1,cij3,cij5,cij7は、ステップS102の処理において既に決定されているので、既知である。また、付加コードy1’k,y3’k,y5’k,y7’kも既知である。従って、これらの既知の値をもとにして、プリフィルタ係数である、ap0,ap1,ap8,・・・,aq0,aq1,・・・,aq8,・・・を求めることを考える。
式(26)において、既知であるcij1×y1’k+cij3×y3’k+cij5×y5’k+cij7×y7’kを左辺に移行し、これを行列式で表すと、以下のようになる。
この式に対して、前述の場合と同様に、2乗最小法を適用することにより、プリフィルタ係数の最適値を求めることができる。即ち、式(27)をX=BAと表すと、以下の式を計算することにより最適値を得る。
A=(BtB+αI)-1BtX ・・・ (28)
具体的には、図21のフローチャートと同様の処理を行うことにより、最適なプリフィルタ係数を求めることができる。
図19に戻り、ステップS106の処理が終了し、プリフィルタ係数の最適値が計算されると、ステップS101に戻り、前述の場合と同様の処理が繰り返されることになる。その結果、原画とデコード画とのSNRの変化量が小さくなった場合(値が収束した場合)もしくは、処理回数が所定の回数を超過した場合には処理が終了する(エンド)。
以上のような処理によれば、学習用の原画を用いて、予測フィルタとプリフィルタの特性を、画像に合わせて最適化することが可能となるので、画質の劣化を最小限にとどめて圧縮伸長処理することが可能となる。
1 エンコーダ, 1a ブロック化回路, 1b プリフィルタ回路, 1c 付加コード生成回路, 1d コード化回路, 2 プリフィルタ係数格納回路, 3 プリフィルタ係数生成回路, 4 デコーダ, 4a ブロック化回路, 4b デコード回路, 4c 予測フィルタ回路, 4d 非ブロック化回路4d, 5 予測フィルタ係数格納回路, 6 予測フィルタ係数生成回路
Claims (3)
- もとの画像情報の画素を第1の係数に基づいて間引くことによって符号化された間引き後の画像情報に対して画素を補間する処理を施して復号化した後、出力する復号化装置において、
前記符号化された間引き後の画像情報に対する画素の補間を第2の係数に基づいて行う演算手段と、
前記第2の係数を算出する算出手段と、
前記演算手段により得られたデータを出力する出力手段と
を備え、
前記算出手段は、学習用の前記もとの画像情報が準備されているとき、画素を間引くことによって符号化された符号化後の画像情報と、符号化前の学習用の前記もとの画像情報とを参照して、符号化後の画像情報から所定の係数に基づいて復号された画像情報と、符号化前の学習用の前記もとの画像情報との差を最小にするその所定の係数を前記第2の係数の最適値として算出し、
符号化された画像情報には、前記画像情報に含まれている所定の画素と前記所定の画素の周辺に位置するその他の画素の画素値の差分値に所定の閾値を適用することにより得られる情報であって、前記所定の画素と前記他の画素の画素値の大小関係を表す非線形情報が含まれ、
前記演算手段は、前記符号化された画像情報のうち間引き後の画素位置に対応する第1の画像情報及び前記第1の画像情報の前記所定の画素の画素値と前記非線形情報に基づいて算出され、前記その他の画素に対応する情報である第2の画像情報と、前記第2の係数とを積和演算することにより補間を行う
ことを特徴とする復号化装置。 - 前記算出手段は、前記符号化後の画像情報と、符号化前の学習用の前記もとの画像情報とから、最小2乗法を用いて、前記第2の係数の最適値を算出する
ことを特徴とする請求項1に記載の復号化装置。 - もとの画像情報の画素を第1の係数に基づいて間引くことによって符号化された間引き後の画像情報に対して画素を補間する処理を施して復号化した後、出力する復号化方法において、
前記符号化された間引き後の画像情報に対する画素の補間を第2の係数に基づいて行う演算ステップと、
前記第2の係数を算出する算出ステップと、
前記演算ステップにより得られたデータを出力する出力ステップと
を含み、
前記算出ステップの処理においては、学習用の前記もとの画像情報が準備されているとき、画素を間引くことによって符号化された符号化後の画像情報と、符号化前の学習用の前記もとの画像情報とを参照して、符号化後の画像情報から所定の係数に基づいて復号された画像情報と、符号化前の学習用の前記もとの画像情報との差を最小にするその所定の係数を前記第2の係数の最適値として算出し、
符号化された画像情報には、前記画像情報に含まれている所定の画素と、前記所定の画素の周辺に位置するその他の画素の画素値の差分値に所定の閾値を適用することにより得られる情報であって、前記所定の画素と前記他の画素の画素値の大小関係を表す非線形情報が含まれ、
前記演算ステップの処理においては、前記符号化された画像情報のうち間引き後の画素位置に対応する第1の画像情報及び前記第1の画像情報の前記所定の画素の画素値と前記非線形情報に基づいて算出され、前記その他の画素に対応する情報である第2の画像情報と、前記第2の係数とを積和演算することにより補間を行う
ことを特徴とする復号化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007029200A JP4434215B2 (ja) | 2007-02-08 | 2007-02-08 | 復号化装置および復号化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007029200A JP4434215B2 (ja) | 2007-02-08 | 2007-02-08 | 復号化装置および復号化方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35151096A Division JP3965528B2 (ja) | 1996-12-27 | 1996-12-27 | 符号化装置、符号化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007159164A JP2007159164A (ja) | 2007-06-21 |
JP4434215B2 true JP4434215B2 (ja) | 2010-03-17 |
Family
ID=38242823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007029200A Expired - Fee Related JP4434215B2 (ja) | 2007-02-08 | 2007-02-08 | 復号化装置および復号化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4434215B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210266535A1 (en) * | 2018-04-11 | 2021-08-26 | Sony Corporation | Data processing apparatus and data processing method |
-
2007
- 2007-02-08 JP JP2007029200A patent/JP4434215B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007159164A (ja) | 2007-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4718609B2 (ja) | 多次元デジタル信号のフィルタリング方法及び装置、並びに、関連する符号化/復号化方法及び装置 | |
US6118900A (en) | Image coding device and image decoding device for use with image disassembly | |
US20120045141A1 (en) | Image encoding apparatus and decoding apparatus | |
KR20050008761A (ko) | 신호의 다중속도 격자 벡터 양자화를 위한 방법 및 시스템 | |
CN103229508A (zh) | 图像编码装置以及图像编码方法 | |
CN111641826B (zh) | 对数据进行编码、解码的方法、装置与系统 | |
CN110753225A (zh) | 一种视频压缩方法、装置及终端设备 | |
JP3796432B2 (ja) | フィルタ処理装置およびフィルタ処理方法 | |
JP4434215B2 (ja) | 復号化装置および復号化方法 | |
CN115866252B (zh) | 一种图像压缩方法、装置、设备及存储介质 | |
JP3937442B2 (ja) | 符号化装置、符号化方法、復号装置、復号方法 | |
EP1156679A2 (en) | Image encoding and decoding method and apparatus, and recording medium in which program therefor is recorded | |
JP3965528B2 (ja) | 符号化装置、符号化方法 | |
JP3833224B2 (ja) | 符号化方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体 | |
CN114842108A (zh) | 一种概率栅格地图的处理方法、装置及存储设备 | |
US8139880B2 (en) | Lifting-based directional lapped transforms | |
WO1994025934A1 (en) | Codeword-dependent post-filtering for vector quantization-based image compression | |
JPH0666948B2 (ja) | フレーム間ベクトル量子化符号化復号化装置 | |
JPH10191318A (ja) | 符号化装置、符号化方法、復号化装置、復号化方法、送受信装置、および、送受信方法 | |
CN117911276A (zh) | 一种通用的去除不良天气条件的图像修复方法及系统 | |
JP3653759B2 (ja) | クラス分類適応処理装置 | |
WO2019198383A1 (ja) | 符号化装置、復号装置、符号化方法、復号方法、プログラム、および記録媒体 | |
EP0783230A2 (en) | Transform coding of arbitrarily shaped image segments | |
JPH1188183A (ja) | ウェーブレット変換装置およびその方法並びにウェーブレット逆変換装置およびその方法並びに画像符号化装置およびその方法並びに画像復号化装置およびその方法 | |
JP4444480B2 (ja) | フィルタ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20091208 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091221 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130108 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |