JP2013175870A - 画像処理装置及び画像処理方法 - Google Patents
画像処理装置及び画像処理方法 Download PDFInfo
- Publication number
- JP2013175870A JP2013175870A JP2012038344A JP2012038344A JP2013175870A JP 2013175870 A JP2013175870 A JP 2013175870A JP 2012038344 A JP2012038344 A JP 2012038344A JP 2012038344 A JP2012038344 A JP 2012038344A JP 2013175870 A JP2013175870 A JP 2013175870A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- error
- transform coefficient
- data
- coefficient data
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
【課題】ブロック境界の画質の劣化を修復するための改善された仕組みを提供すること。
【解決手段】1つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第1の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第2の符号化ストリームを取得するストリーム取得部と、前記第1の符号化ストリームから前記変換係数データを復号する第1復号部と、前記第2の符号化ストリームから前記誤差データを復号する第2復号部と、前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正する合成部と、を備える画像処理装置を提供する。
【選択図】図6
【解決手段】1つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第1の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第2の符号化ストリームを取得するストリーム取得部と、前記第1の符号化ストリームから前記変換係数データを復号する第1復号部と、前記第2の符号化ストリームから前記誤差データを復号する第2復号部と、前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正する合成部と、を備える画像処理装置を提供する。
【選択図】図6
Description
本開示は、画像処理装置及び画像処理方法に関する。
近年実用されている多くの画像符号化方式は、デジタル画像信号を空間ドメインの信号から周波数ドメインの信号へ変換し、周波数ドメインでデータを量子化して符号化することにより、画像のデータサイズを圧縮する。例えば、JPEG(Joint Photographic Experts Group)方式では、離散コサイン変換(DCT:Discrete Cosine Transform)が信号の変換のために使用される。一方、JPEG2000方式では、離散ウェーブレット変換(DWT:Discrete Wavelet Transform)が信号の変換のために使用される。
これら変換は、一般的に、画像内に設定されるブロック単位で行われる。DCTでは、様々な周波数の定常波(余弦波)がブロック単位で使用されるのに対して、DWTでは、空間的な局在性を有する孤立波がブロック内で使用される。そのため、DWTベースの画像符号化方式は、DCTベースの画像符号化方式と比較して、例えば、色又は輝度が空間的に緩やかに変化するようなグラデーション領域において画質の劣化が少ないという利点を有する。
しかし、ブロックの端部では、DWTの演算式に代入されるフィルタタップが不足する。そこで、通常、対称周期拡張(symmetric extension)によって、不足するフィルタタップが補われる。しかし、対称周期拡張に起因してブロックの端部に高周波成分の変換係数が発生すると、この高周波成分の変換係数のビットの一部又は全部がレート制御又は量子化を通じて失われることにより、ブロック境界に沿って歪みが発生し得る。
下記特許文献1及び2は、DWTベースの画像符号化方式において、復号される画像のブロック境界の近傍の画素をフィルタリングすることにより、ブロック境界に発生した画質の劣化を修復する手法を開示している。
しかしながら、ブロック境界の近傍の画素をフィルタリングする手法は、ブロック境界の近傍領域において画像が不自然にぼけるという副作用をもたらす。従って、ブロック境界の画質の劣化を修復するための改善された仕組みが提供されることが望ましい。
本開示によれば、1つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第1の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第2の符号化ストリームを取得するストリーム取得部と、前記第1の符号化ストリームから前記変換係数データを復号する第1復号部と、前記第2の符号化ストリームから前記誤差データを復号する第2復号部と、前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正する合成部と、を備える画像処理装置が提供される。
また、本開示によれば、1つ以上のブロックを含む画像の周波数成分の変換係数データを符号化して、第1の符号化ストリームを生成する第1符号化部と、前記変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを符号化して、第2の符号化ストリームを生成する第2符号化部と、前記第2の符号化ストリームを前記第1の符号化ストリームと関連付けて出力するストリーム出力部と、を備える画像処理装置が提供される。
また、本開示によれば、1つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第1の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第2の符号化ストリームを取得することと、前記第1の符号化ストリームから前記変換係数データを復号することと、前記第2の符号化ストリームから前記誤差データを復号することと、前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正することと、を含む画像処理方法が提供される。
本開示に係る技術によれば、ブロック境界の近傍領域において画像をぼけさせることなく、ブロック境界の画質の劣化を修復することができる。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、以下の順序で説明を行う。
1.課題の説明
2.第1の実施形態
2−1.エンコーダの構成例
2−2.デコーダの構成例
2−3.符号化処理の流れ
2−4.復号処理の流れ
2−5.第1の実施形態のまとめ
3.第2の実施形態
3−1.エンコーダの構成例
3−2.符号化処理の流れ
3−3.第2の実施形態のまとめ
4.第3の実施形態
4−1.エンコーダの構成例
4−2.デコーダの構成例
4−3.符号化処理の流れ
4−4.復号処理の流れ
4−5.第3の実施形態のまとめ
5.第4の実施形態
5−1.エンコーダの構成例
5−2.デコーダの構成例
5−3.符号化処理の流れ
5−4.復号処理の流れ
5−5.第4の実施形態のまとめ
6.総括
1.課題の説明
2.第1の実施形態
2−1.エンコーダの構成例
2−2.デコーダの構成例
2−3.符号化処理の流れ
2−4.復号処理の流れ
2−5.第1の実施形態のまとめ
3.第2の実施形態
3−1.エンコーダの構成例
3−2.符号化処理の流れ
3−3.第2の実施形態のまとめ
4.第3の実施形態
4−1.エンコーダの構成例
4−2.デコーダの構成例
4−3.符号化処理の流れ
4−4.復号処理の流れ
4−5.第3の実施形態のまとめ
5.第4の実施形態
5−1.エンコーダの構成例
5−2.デコーダの構成例
5−3.符号化処理の流れ
5−4.復号処理の流れ
5−5.第4の実施形態のまとめ
6.総括
<1.課題の説明>
まず、図1及び図2を用いて、本開示に係る技術に関連する課題について述べる。
まず、図1及び図2を用いて、本開示に係る技術に関連する課題について述べる。
図1は、ブロック端における対称周期拡張について説明するための説明図である。図1において、横軸は1次元化された画像信号の信号位置に対応し、縦軸は各信号位置における画素値に対応する。図中の実線の丸印は実際の画素値であり、破線の丸印は対称周期拡張によって補われる画素値である。図1の例において、信号位置ゼロから信号位置N−1までの画素は、ブロックB0に含まれる。JPEG2000方式で画像が符号化される場合には、このようなブロックはタイルと呼ばれ、タイルを処理単位として離散ウェーブレット変換(DWT)が実行される。JPEG2000方式のタイルのサイズは、可変である。画像全体に1つのタイルが設定されてもよく、その場合にはタイル端は画像の端部に等しい。
JPEG2000方式を例にとると、DWTは、実質的には、各画素の周辺画素を含むフィルタタップを入力値とするフィルタ演算によって実現される。しかし、ブロックの端部では、フィルタ演算に入力すべきフィルタタップが不足する。そのため、対称周期拡張によって、不足する画素値が補われる。図1の例では、ブロック境界BB1の近傍で、画素Pa、Pb及びPcはブロックB0に含まれるものの、画素Pd及びPeはブロックB0に含まれない。従って、信号位置N−1におけるDWTのフィルタ演算のために、信号位置Nに画素Pb´、信号位置N+1に画素Pa´がそれぞれ複製され、画素Pa、Pb、Pc、Pb´及びPa´の画素値がフィルタ演算において使用される。
なお、本明細書では、主にJPEG2000方式を例にとって説明する。しかしながら、本開示に係る技術は、JPEG2000方式に限定されず、DWTベースの対称周期拡張を伴う様々な画像符号化方式に広く適用可能である。
図2は、対称周期拡張に起因する高周波成分の変換係数について説明するための説明図である。図2では、ケース1及びケース2という2つのケースが対比される。
ケース1では、信号位置N−1にブロック境界が位置しておらず、信号位置N−3からN+1にかけて、画素値は緩やかに変化する。この場合、DWTの結果として得られる高周波成分の変換係数は、信号位置N−1の近傍では有意な値を示さない。
一方、ケース2では、信号位置N−1にブロック境界が位置しており、対称周期拡張に起因して画素値は信号位置N−1を頂点として急に変化する。この場合、DWTの結果として得られる高周波成分の変換係数は、信号位置N−1において有意な値を示す。図2の例では、信号位置N−1において高周波成分の変換係数が2を示している(図中下部の表における信号位置N−1の係数(H)を参照)。
このような変換係数のビットの一部又は全部が例えばレート制御のために破棄(truncate)され、又は量子化を通じて失われると、復号後の画像においてブロック境界を挟んで画素値が不連続となり、いわゆるブロック歪み(タイル歪み)が現れる。特に、画素値が緩やかに変化している領域にブロック境界が位置している場合には、ブロック歪みがユーザに感知され易い。
従来の手法では、ブロック境界の近傍領域においてブロック歪みが現れる場合に、デコーダ側でブロック境界の近傍の画素をフィルタリングすることにより、画質の劣化の修復が試みられる。しかし、そのような手法は、ブロック境界の近傍領域において画像が不自然にぼけるという副作用を伴う。本開示に係る技術は、こうした副作用を伴うことなく、ブロック境界の画質の劣化を修復することを可能とする。そのような技術の4つの実施形態について、次節より詳細に説明する。
<2.第1の実施形態>
[2−1.エンコーダの構成例]
図3は、第1の実施形態に係るエンコーダ100の構成の一例を示すブロック図である。図3を参照すると、エンコーダ100は、変換・シフト部110、タイル分割部120、DWT部130、量子化部140、ビットモデリング部150、符号化・レート制御部160、誤差データ生成部170、誤差符号化部180及びストリーム出力部190を備える。
[2−1.エンコーダの構成例]
図3は、第1の実施形態に係るエンコーダ100の構成の一例を示すブロック図である。図3を参照すると、エンコーダ100は、変換・シフト部110、タイル分割部120、DWT部130、量子化部140、ビットモデリング部150、符号化・レート制御部160、誤差データ生成部170、誤差符号化部180及びストリーム出力部190を備える。
(1)変換・シフト部
変換・シフト部110には、入力画像の画像信号IMGが入力される。変換・シフト部110は、エンコーダ100によりサポートされる色空間と画像信号IMGの色空間とが異なる場合に、画像信号IMGの色空間をエンコーダ100によりサポートされる色空間に変換する。また、変換・シフト部110は、画像信号IMGの信号値の定義域の中央値がゼロに一致するように、画像信号IMGの信号レベルを一律的にシフトする。例えば、シフト前の信号値の定義域が0〜255である場合には、信号値は、一律的に128だけ減算され得る。そして、変換・シフト部110は、変換及びシフト後の画像信号BBをタイル分割部120へ出力する。
変換・シフト部110には、入力画像の画像信号IMGが入力される。変換・シフト部110は、エンコーダ100によりサポートされる色空間と画像信号IMGの色空間とが異なる場合に、画像信号IMGの色空間をエンコーダ100によりサポートされる色空間に変換する。また、変換・シフト部110は、画像信号IMGの信号値の定義域の中央値がゼロに一致するように、画像信号IMGの信号レベルを一律的にシフトする。例えば、シフト前の信号値の定義域が0〜255である場合には、信号値は、一律的に128だけ減算され得る。そして、変換・シフト部110は、変換及びシフト後の画像信号BBをタイル分割部120へ出力する。
(2)タイル分割部
タイル分割部120は、入力画像内に1つ以上のタイルを設定する。タイルのサイズは、典型的には、一辺の長さが2のべき乗の画素数に等しい複数のサイズの候補から選択され得る。入力画像の全体に1つのタイルが設定されてもよい。タイル分割部120は、タイルの設定に従って、画像信号BBをタイルごとの画像信号であるタイル信号TBBに分割し、タイル信号TBBをDWT部130へ順次出力する。
タイル分割部120は、入力画像内に1つ以上のタイルを設定する。タイルのサイズは、典型的には、一辺の長さが2のべき乗の画素数に等しい複数のサイズの候補から選択され得る。入力画像の全体に1つのタイルが設定されてもよい。タイル分割部120は、タイルの設定に従って、画像信号BBをタイルごとの画像信号であるタイル信号TBBに分割し、タイル信号TBBをDWT部130へ順次出力する。
(3)離散ウェーブレット変換(DWT)部
DWT部130は、タイル分割部120からタイルごとに入力されるタイル信号TBBについて2次元のDWTを実行することにより、タイルごとの変換係数データを生成する。ここでのDWTは、例えば、整数型5×3DWTであってもよく、又は実数型9×7DWTであってもよい。一例として、JPEG2000方式における整数型5×3DWTの演算式を式(1)及び式(2)に示す。
DWT部130は、タイル分割部120からタイルごとに入力されるタイル信号TBBについて2次元のDWTを実行することにより、タイルごとの変換係数データを生成する。ここでのDWTは、例えば、整数型5×3DWTであってもよく、又は実数型9×7DWTであってもよい。一例として、JPEG2000方式における整数型5×3DWTの演算式を式(1)及び式(2)に示す。
なお、式(1)はローパスフィルタのフィルタ演算、式(2)はハイパスフィルタのフィルタ演算にそれぞれ相当する。これら演算式において、nは水平方向又は垂直方向の信号位置、X(n)は信号位置nにおける画素値、Y(n)は信号位置nにおける変換係数、をそれぞれ表す。floor(x)は、xの小数部を丸める関数である。式(1)及び式(2)に従ってローパスフィルタ及びハイパスフィルタのフィルタ演算が信号位置ごとに交互に実行されることにより、タイル信号TBBは2つのサブバンド信号に分解される。
このようにDWTを実行する際、タイル端では式(1)又は式(2)に代入されるフィルタタップが不足する。そこで、DWT部130は、各タイルの端部の画素値を図1を用いて説明した対称周期拡張によって拡張した上でフィルタ演算を実行する。
図4は、2次元DWTについて説明するための説明図である。図4の左上には、1つのタイルについてのタイル信号TBBが示されている。DWT部130は、まず、タイル信号TBBを水平方向に走査し、信号位置ごとにローパスフィルタ及びハイパスフィルタを交互に適用する。DWT部130は、ローパスフィルタの出力信号(1L)及びハイパスフィルタの出力信号(1H)を図4の中央上のように並び替える。このような処理を垂直方向についても実行すると、図4の右上のように、4つのサブバンド信号(1LL、1HL、1LH、1HH)が得られる。これが1回の2次元DWTの結果である。DWT部130は、さらに、低周波成分のサブバンド信号(1LL)を対象として、2次元DWTを実行し得る。その結果、図4の右下のように、7つのサブバンド信号(2LL、2HL、2LH、2HH、1HL、1LH、1HH)が得られる。DWT部130は、このように2次元DWT(低周波及び高周波のサブバンドへの信号の分解)を所定の回数だけ繰り返して実行し、複数の周波数成分(即ち、サブバンド)の変換係数を含む変換係数データCEを生成する。このような階層的なサブバンドの分解によって、プログレッシブな画像の復号が可能となる。なお、サブバンドの分解は、いかなる回数だけ繰り返されてもよい。
DWT部130は、このように2次元のDWTを実行することにより生成されるタイルごとの変換係数データCEを、量子化部140へ出力する。
(4)量子化部
量子化部140は、DWT部130から入力される変換係数データCEを量子化することにより、量子化された変換係数データQCEを生成する。JPEG2000方式では、スカラ量子化が採用され、サブバンドごとに動的に量子化ステップが決定され得る。量子化部140は、量子化された変換係数データQCEをビットモデリング部150及び誤差データ生成部170へ出力する。なお、量子化部140による量子化処理は、省略されてもよい。
量子化部140は、DWT部130から入力される変換係数データCEを量子化することにより、量子化された変換係数データQCEを生成する。JPEG2000方式では、スカラ量子化が採用され、サブバンドごとに動的に量子化ステップが決定され得る。量子化部140は、量子化された変換係数データQCEをビットモデリング部150及び誤差データ生成部170へ出力する。なお、量子化部140による量子化処理は、省略されてもよい。
(5)ビットモデリング部
ビットモデリング部150は、エントロピー符号化の一種であるEBCOT(Embedded Block Coding with Optimized Truncation)を実現するためのビットモデリングを行う。ビットモデリング部150は、コードブロックごとに、量子化部140から入力される変換係数データQCEから、3つの符号化パス(サブビットプレーン)を含むビット列BINを生成する。そして、ビットモデリング部150は、生成したビット列BINを符号化・レート制御部160へ出力する。
ビットモデリング部150は、エントロピー符号化の一種であるEBCOT(Embedded Block Coding with Optimized Truncation)を実現するためのビットモデリングを行う。ビットモデリング部150は、コードブロックごとに、量子化部140から入力される変換係数データQCEから、3つの符号化パス(サブビットプレーン)を含むビット列BINを生成する。そして、ビットモデリング部150は、生成したビット列BINを符号化・レート制御部160へ出力する。
(6)符号化・レート制御部
符号化・レート制御部160は、指定される符号化レート(あるいは圧縮率)を達成するために、ビットの破棄位置(TP:Truncation Point)をコードブロックごとに決定し、破棄位置以下の下位ビットに相当する変換係数データQCEのビットプレーンを破棄する。また、符号化・レート制御部160は、残されるビットプレーンを含む変換係数データのビット列BINを算術符号化器の一種であるMQ−Coderによって符号化して、第1の符号化ストリームBSを生成する。そして、符号化・レート制御部160は、生成した第1の符号化ストリームBSを、ストリーム出力部190へ出力する。また、符号化・レート制御部160は、コードブロックごとに決定される破棄位置TPを、誤差データ生成部170へ出力する。なお、ここでの説明に限定されず、破棄位置TPは、コードブロック以外の単位(例えば、個々の変換係数、サブバンド又はタイルなどの単位)で決定されてもよい。
符号化・レート制御部160は、指定される符号化レート(あるいは圧縮率)を達成するために、ビットの破棄位置(TP:Truncation Point)をコードブロックごとに決定し、破棄位置以下の下位ビットに相当する変換係数データQCEのビットプレーンを破棄する。また、符号化・レート制御部160は、残されるビットプレーンを含む変換係数データのビット列BINを算術符号化器の一種であるMQ−Coderによって符号化して、第1の符号化ストリームBSを生成する。そして、符号化・レート制御部160は、生成した第1の符号化ストリームBSを、ストリーム出力部190へ出力する。また、符号化・レート制御部160は、コードブロックごとに決定される破棄位置TPを、誤差データ生成部170へ出力する。なお、ここでの説明に限定されず、破棄位置TPは、コードブロック以外の単位(例えば、個々の変換係数、サブバンド又はタイルなどの単位)で決定されてもよい。
(7)誤差データ生成部
誤差データ生成部170は、変換係数データQCEの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを生成する。より具体的には、本実施形態において、誤差データ生成部170は、符号化・レート制御部160から、コードブロックごとの破棄位置TPを取得する。次に、誤差データ生成部170は、量子化部140から入力される変換係数データQCEのうちタイル端の高周波成分の変換係数を対象とし、破棄位置TPに基づいて、符号化・レート制御部160において破棄される下位ビットを特定する。そして、誤差データ生成部170は、対象の変換係数の各々について、特定した下位ビットにより示される誤差を算出し、当該誤差を含む誤差データBCCVを生成する。
誤差データ生成部170は、変換係数データQCEの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを生成する。より具体的には、本実施形態において、誤差データ生成部170は、符号化・レート制御部160から、コードブロックごとの破棄位置TPを取得する。次に、誤差データ生成部170は、量子化部140から入力される変換係数データQCEのうちタイル端の高周波成分の変換係数を対象とし、破棄位置TPに基づいて、符号化・レート制御部160において破棄される下位ビットを特定する。そして、誤差データ生成部170は、対象の変換係数の各々について、特定した下位ビットにより示される誤差を算出し、当該誤差を含む誤差データBCCVを生成する。
図5は、誤差データ生成部170による誤差データ生成処理の対象となる変換係数について説明するための説明図である。
図5の左には、1回の2次元DWTによって生成される4つのサブバンド1LL、1HL、1LH及び1HHを含む変換係数データQCE1が示されている。変換係数データQCE1のうち、サブバンド1HL、1HH及び1LHにわたる端部E1に位置する変換係数は、タイル端の高周波成分の変換係数である。DWT部130における2次元DWTの回数が1回の場合、誤差データ生成部170は、このような端部E1に位置する変換係数を所定の順序で走査し、変換係数ごとの誤差を誤差データBCCVに順に追加する。
図5の中央には、2回の2次元DWTによって生成される7つのサブバンド2LL、2HL、2LH、2HH、1HL、1LH及び1HHを含む変換係数データQCE2が示されている。変換係数データQCE2のうち、サブバンド1HL、1HH及び1LHにわたる端部E1、並びにサブバンド2HL、2HH及び2LHにわたる端部E2に位置する変換係数は、タイル端の高周波成分の変換係数である。DWT部130における2次元DWTの回数が2回の場合、誤差データ生成部170は、このような端部E1及びE2に位置する変換係数を所定の順序で走査し、変換係数ごとの誤差を誤差データBCCVに順に追加する。
図5の右には、3回の2次元DWTによって生成される10個のサブバンド3LL、3HL、3LH、3HH、2HL、2LH、2HH、1HL、1LH及び1HHを含む変換係数データQCE3が示されている。変換係数データQCE3のうち、サブバンド1HL、1HH及び1LHにわたる端部E1、サブバンド2HL、2HH及び2LHにわたる端部E2並びにサブバンド3HL、3HH及び3LHにわたる端部E3に位置する変換係数は、タイル端の高周波成分の変換係数である。DWT部130における2次元DWTの回数が3回の場合、誤差データ生成部170は、このような端部E1、E2及びE3に位置する変換係数を所定の順序で走査し、変換係数ごとの誤差を誤差データBCCVに順に追加する。
誤差データ生成部170による変換係数の走査順は、例えば、低周波成分から高周波成分へ、という順序であってよい。それにより、プログレッシブな画像の復号に際して、低解像度画像のみを復号しようとするデコーダが迅速に低周波成分の誤差データを取得することが可能となる。
誤差データ生成部170は、このように生成される誤差データBCCVを、誤差符号化部180へ出力する。
(8)誤差符号化部
誤差符号化部180は、誤差データ生成部170から入力される誤差データBCCVを符号化して、第2の符号化ストリームBCBSを生成する。誤差符号化部180による誤差データBCCVの符号化は、例えば、ハフマン符号化又はビットモデリング及び算術符号化など、任意の手法に従って行われてよい。また、ロスレス(Lossless)符号化及びロッシー(Lossy)符号化のいずれが採用されてもよい。誤差符号化部180は、生成した第2の符号化ストリームBCBSを、ストリーム出力部190へ出力する。
誤差符号化部180は、誤差データ生成部170から入力される誤差データBCCVを符号化して、第2の符号化ストリームBCBSを生成する。誤差符号化部180による誤差データBCCVの符号化は、例えば、ハフマン符号化又はビットモデリング及び算術符号化など、任意の手法に従って行われてよい。また、ロスレス(Lossless)符号化及びロッシー(Lossy)符号化のいずれが採用されてもよい。誤差符号化部180は、生成した第2の符号化ストリームBCBSを、ストリーム出力部190へ出力する。
なお、誤差符号化部180は、一部のサブバンドについてのみ誤差データを符号化してもよい。例えば、誤差符号化部180は、より画質の劣化が現れ易い低域のサブバンド1HL、1LH及び1HHについての誤差データのみを符号化してもよい。それにより、デコーダにおける画質の劣化の修復をある程度まで可能とさせながら、誤差データの符号量を低減することができる。
(9)ストリーム出力部
ストリーム出力部190は、誤差符号化部180から入力される第2の符号化ストリームBCBSを、符号化・レート制御部160から入力される第1の符号化ストリームBSと関連付けて、これら2つの符号化ストリームを出力する。ストリーム出力部190は、例えば、第2の符号化ストリームBCBSにアクセスするための参照用パラメータを生成し、生成した参照用パラメータを第1の符号化ストリームBSのヘッダ領域に挿入してもよい。
ストリーム出力部190は、誤差符号化部180から入力される第2の符号化ストリームBCBSを、符号化・レート制御部160から入力される第1の符号化ストリームBSと関連付けて、これら2つの符号化ストリームを出力する。ストリーム出力部190は、例えば、第2の符号化ストリームBCBSにアクセスするための参照用パラメータを生成し、生成した参照用パラメータを第1の符号化ストリームBSのヘッダ領域に挿入してもよい。
例えば、第1及び第2の符号化ストリームBS、BCBSが1つの多重化ストリームPBS内に多重化される(パッキングされる)場合には、参照用パラメータは、第2の符号化ストリームBCBSのストリーム識別子、開始アドレス、又は第1の符号化ストリームBSに続くストリームが第2の符号化ストリームBCBSであることを示すフラグなどであってよい。また、例えば、第1及び第2の符号化ストリームBS、BCBSが別のファイル内に格納される場合には、参照用パラメータは、第2の符号化ストリームBCBSが格納されるファイルのファイル名などであってよい。このような参照用パラメータが挿入されるヘッダ領域は、第1の符号化ストリームが格納されるファイル内に存在してもよく、又は第1の符号化ストリームが格納されるファイルとは別のファイル(例えば、ヘッダファイル)内に存在してもよい。
ストリーム出力部190により出力される第1及び第2の符号化ストリームBS、BCBSは、エンコーダ100に接続される記憶媒体により記憶されてもよい。その代わりに、第1及び第2の符号化ストリームBS、BCBSは、エンコーダ100から他の装置へ送信され、他の装置において記憶又は復号されてもよい。
[2−2.デコーダの構成例]
図6は、第1の実施形態に係るデコーダ200の構成の一例を示すブロック図である。図6を参照すると、デコーダ200は、ストリーム取得部210、復号部220、ビットデモデリング部230、誤差復号部240、合成部250、逆量子化部260、逆DWT部270、タイル合成部280及び逆変換・逆シフト部290を備える。
図6は、第1の実施形態に係るデコーダ200の構成の一例を示すブロック図である。図6を参照すると、デコーダ200は、ストリーム取得部210、復号部220、ビットデモデリング部230、誤差復号部240、合成部250、逆量子化部260、逆DWT部270、タイル合成部280及び逆変換・逆シフト部290を備える。
(1)ストリーム取得部
ストリーム取得部210は、デコーダ200による復号処理の入力となる符号化ストリームを取得する。ストリーム取得部210により取得される符号化ストリーム(例えば、多重化ストリームPBS)は、復号すべき画像の周波数成分の変換係数データが符号化された第1の符号化ストリームBS、及び変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第2の符号化ストリームBCBSを含み得る。例えば、ストリーム取得部210は、第1の符号化ストリームBSを取得し、第1の符号化ストリームBSのヘッダ領域に第2の符号化ストリームBCBSにアクセスするための参照用パラメータが挿入されている場合に、当該参照用パラメータを用いて第2の符号化ストリームBCBSをさらに取得する。そして、ストリーム取得部210は、取得した第1の符号化ストリームBSを復号部220へ出力する。また、ストリーム取得部210は、取得した第2の符号化ストリームBCBSを誤差復号部240へ出力する。
ストリーム取得部210は、デコーダ200による復号処理の入力となる符号化ストリームを取得する。ストリーム取得部210により取得される符号化ストリーム(例えば、多重化ストリームPBS)は、復号すべき画像の周波数成分の変換係数データが符号化された第1の符号化ストリームBS、及び変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第2の符号化ストリームBCBSを含み得る。例えば、ストリーム取得部210は、第1の符号化ストリームBSを取得し、第1の符号化ストリームBSのヘッダ領域に第2の符号化ストリームBCBSにアクセスするための参照用パラメータが挿入されている場合に、当該参照用パラメータを用いて第2の符号化ストリームBCBSをさらに取得する。そして、ストリーム取得部210は、取得した第1の符号化ストリームBSを復号部220へ出力する。また、ストリーム取得部210は、取得した第2の符号化ストリームBCBSを誤差復号部240へ出力する。
(2)復号部
復号部220は、ストリーム取得部210から入力される第1の符号化ストリームBSから、変換係数データのビット列BINを復号する。より具体的には、本実施形態において、復号部220は、第1の符号化ストリームBSから、コードブロックごとの3つの符号化パスのビット列BINをMQ−Deoderによって復号する。そして、復号部220は、復号されたビット列BINをビットデモデリング部230へ出力する。
復号部220は、ストリーム取得部210から入力される第1の符号化ストリームBSから、変換係数データのビット列BINを復号する。より具体的には、本実施形態において、復号部220は、第1の符号化ストリームBSから、コードブロックごとの3つの符号化パスのビット列BINをMQ−Deoderによって復号する。そして、復号部220は、復号されたビット列BINをビットデモデリング部230へ出力する。
(3)ビットデモデリング部
ビットデモデリング部230は、復号部220から入力されるビット列BINを並び替え直すことにより、エンコーダ100において量子化された変換係数データQCEを復元する。但し、ビットデモデリング部230により復元される変換係数データQCEは、符号化前の変換係数データQCEと比較して、エンコーダ100においてレート制御のために破棄された下位ビットに相当する分の誤差を有する。ビットデモデリング部230は、復元した変換係数データQCEを合成部250へ出力する。
ビットデモデリング部230は、復号部220から入力されるビット列BINを並び替え直すことにより、エンコーダ100において量子化された変換係数データQCEを復元する。但し、ビットデモデリング部230により復元される変換係数データQCEは、符号化前の変換係数データQCEと比較して、エンコーダ100においてレート制御のために破棄された下位ビットに相当する分の誤差を有する。ビットデモデリング部230は、復元した変換係数データQCEを合成部250へ出力する。
(4)誤差復号部
誤差復号部240は、ストリーム取得部210から入力される第2の符号化ストリームBCBSから、誤差データBCCVを復号する。誤差データBCCVは、上述したように、エンコーダ100において、下位ビットが破棄される前の変換係数データQCEと指定されるレートに応じて決定された破棄位置TPとに基づいて生成されたデータである。誤差復号部240は、例えば、ハフマン復号又は算術復号及びビットデモデリングなどの任意の手法に従って、誤差データBCCVを復号してよい。そして、誤差復号部240は、復号した誤差データBCCVを合成部250へ出力する。
誤差復号部240は、ストリーム取得部210から入力される第2の符号化ストリームBCBSから、誤差データBCCVを復号する。誤差データBCCVは、上述したように、エンコーダ100において、下位ビットが破棄される前の変換係数データQCEと指定されるレートに応じて決定された破棄位置TPとに基づいて生成されたデータである。誤差復号部240は、例えば、ハフマン復号又は算術復号及びビットデモデリングなどの任意の手法に従って、誤差データBCCVを復号してよい。そして、誤差復号部240は、復号した誤差データBCCVを合成部250へ出力する。
(5)合成部
合成部250は、ビットデモデリング部230から入力される変換係数データQCE及び誤差復号部240から入力される誤差データBCCVを合成することにより、変換係数データQCEの誤差を補正する。より具体的には、本実施形態において、合成部250は、図5に例示したようなタイルの端部の高周波成分の変換係数の各々について、変換係数データQCEにより示される値と誤差データBCCVにより示される値とを加算する。それにより、誤差の補正された変換係数データR−QCEが生成される。そして、合成部250は、生成した変換係数データR−QCEを逆量子化部260へ出力する。なお、合成部250は、一部のサブバンド(例えば、より画質の劣化が現れ易い低域のサブバンド)についてのみ誤差データを変換係数データと合成してもよい。
合成部250は、ビットデモデリング部230から入力される変換係数データQCE及び誤差復号部240から入力される誤差データBCCVを合成することにより、変換係数データQCEの誤差を補正する。より具体的には、本実施形態において、合成部250は、図5に例示したようなタイルの端部の高周波成分の変換係数の各々について、変換係数データQCEにより示される値と誤差データBCCVにより示される値とを加算する。それにより、誤差の補正された変換係数データR−QCEが生成される。そして、合成部250は、生成した変換係数データR−QCEを逆量子化部260へ出力する。なお、合成部250は、一部のサブバンド(例えば、より画質の劣化が現れ易い低域のサブバンド)についてのみ誤差データを変換係数データと合成してもよい。
(6)逆量子化部
逆量子化部260は、合成部250から入力される変換係数データR−QCEを、エンコーダ100における量子化処理において使用されたものと同等の量子化ステップで逆量子化することにより、量子化前の変換係数データCEを復元する。そして、逆量子化部260は、復元した変換係数データCEを逆DWT部270へ出力する。なお、逆量子化部260による逆量子化処理は、省略されてもよい。
逆量子化部260は、合成部250から入力される変換係数データR−QCEを、エンコーダ100における量子化処理において使用されたものと同等の量子化ステップで逆量子化することにより、量子化前の変換係数データCEを復元する。そして、逆量子化部260は、復元した変換係数データCEを逆DWT部270へ出力する。なお、逆量子化部260による逆量子化処理は、省略されてもよい。
(7)逆DWT部
逆DWT部270は、逆量子化部260から入力される変換係数データCE、即ち少なくとも誤差データBCCVとの合成後の変換係数データについて2次元の逆DWTを実行することにより、タイルごとの画像信号であるタイル信号TBBを復元する。ここでの逆DWTは、例えば、整数型5×3逆DWTであってもよく、又は実数型9×7逆DWTであってもよい。一例として、JPEG2000方式における整数型5×3逆DWTの演算式を式(3)及び式(4)に示す。
逆DWT部270は、逆量子化部260から入力される変換係数データCE、即ち少なくとも誤差データBCCVとの合成後の変換係数データについて2次元の逆DWTを実行することにより、タイルごとの画像信号であるタイル信号TBBを復元する。ここでの逆DWTは、例えば、整数型5×3逆DWTであってもよく、又は実数型9×7逆DWTであってもよい。一例として、JPEG2000方式における整数型5×3逆DWTの演算式を式(3)及び式(4)に示す。
逆DWT部270は、このような2次元の逆DWTを繰り返すことにより所望のレベルのタイル信号TBBを復元し、復元したタイル信号TBBをタイル合成部280へ順次出力する。
(8)タイル合成部
タイル合成部280は、逆DWT部270から入力されるタイル信号TBBを、タイル位置及びタイルサイズに応じて画像内に順次配置し、1つの画像の画像信号BBを復元する。そして、タイル合成部280は、復元した画像信号BBを逆変換・逆シフト部290へ出力する。
タイル合成部280は、逆DWT部270から入力されるタイル信号TBBを、タイル位置及びタイルサイズに応じて画像内に順次配置し、1つの画像の画像信号BBを復元する。そして、タイル合成部280は、復元した画像信号BBを逆変換・逆シフト部290へ出力する。
(9)逆変換・逆シフト部
逆変換・逆シフト部290は、タイル合成部280から入力される画像信号BBの信号値を一律的にシフトし、画像信号IMGを復元する。また、逆変換・逆シフト部290は、画像信号IMGの色空間を逆変換する。逆変換・逆シフト部290により復元された画像信号IMGは、例えば、表示装置(図示せず)へ出力されてもよく、又は記憶媒体により記憶されてもよい。
逆変換・逆シフト部290は、タイル合成部280から入力される画像信号BBの信号値を一律的にシフトし、画像信号IMGを復元する。また、逆変換・逆シフト部290は、画像信号IMGの色空間を逆変換する。逆変換・逆シフト部290により復元された画像信号IMGは、例えば、表示装置(図示せず)へ出力されてもよく、又は記憶媒体により記憶されてもよい。
[2−3.符号化処理の流れ]
(1)全体的な処理
図7は、第1の実施形態に係るエンコーダ100による符号化処理の流れの一例を示すフローチャートである。
(1)全体的な処理
図7は、第1の実施形態に係るエンコーダ100による符号化処理の流れの一例を示すフローチャートである。
図7を参照すると、まず、変換・シフト部110は、入力画像信号IMGの色空間をエンコーダ100によりサポートされる色空間に変換し、信号レベルをシフトする(ステップS110)。そして、変換・シフト部110は、変換及びシフト後の画像信号BBをタイル分割部120へ出力する。
次に、タイル分割部120は、入力画像内に1つ以上のタイルを設定し、画像信号BBをタイル信号TBBに分割する(ステップS115)。そして、タイル分割部120は、タイル信号TBBをDWT部130へ出力する。その後のステップS120からステップS180までの処理は、入力画像内のタイルの各々について繰り返される。
DWT部130は、タイル分割部120から入力されるタイル信号TBBについて2次元のDWTを実行することにより、変換係数データCEを生成する(ステップS120)。そして、DWT部130は、生成した変換係数データCEを量子化部140へ出力する。
次に、量子化部140は、DWT部130から入力される変換係数データCEを量子化することにより、量子化された変換係数データQCEを生成する(ステップS125)。そして、量子化部140は、量子化された変換係数データQCEをビットモデリング部150及び誤差データ生成部170へ出力する。
次に、ビットモデリング部150は、コードブロックごとに、量子化部140から入力される変換係数データQCEを、3つの符号化パスを含むビット列BINに変換する(ステップS130)。そして、ビットモデリング部150は、ビット列BINを符号化・レート制御部160へ出力する。
次に、符号化・レート制御部160は、指定される符号化レートに応じた破棄位置TPを決定し、ビットモデリング部150から入力されるビット列BINの破棄位置TP以下の下位ビットを破棄する(ステップS135)。
また、符号化・レート制御部160は、下位ビットの破棄されたビット列BINを符号化して、第1の符号化ストリームBSを生成する(ステップS140)。そして、符号化・レート制御部160は、生成した第1の符号化ストリームBSを、ストリーム出力部190へ出力する。また、符号化・レート制御部160は、破棄位置TPを、誤差データ生成部170へ出力する。
次に、誤差データ生成部170は、変換係数データQCEの下位ビットの破棄によって生じる誤差を含む誤差データBCCVを生成する(ステップS150)。ここでの誤差データ生成部170による誤差データ生成処理について、後にさらに説明する。そして、誤差データ生成部170は、誤差データBCCVを誤差符号化部180へ出力する。
次に、誤差符号化部180は、誤差データ生成部170から入力される誤差データBCCVを符号化して、第2の符号化ストリームBCBSを生成する(ステップS170)。そして、誤差符号化部180は、生成した第2の符号化ストリームBCBSを、ストリーム出力部190へ出力する。
その後、未処理の次のタイルが存在する場合には、処理はステップS120へ戻る。全てのタイルについて第1及び第2の符号化ストリームが生成された場合には、処理はステップS190へ進む。
ステップS190において、ストリーム出力部190は、符号化された誤差データを含む第2の符号化ストリームBCBSを、符号化された変換係数データを含む第1の符号化ストリームBSと関連付けて、これら2つの符号化ストリームを出力する。
(2)誤差データ生成処理
図8は、図7のステップS150において実行される誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
図8は、図7のステップS150において実行される誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
図8を参照すると、まず、誤差データ生成部170は、量子化部140から入力される変換係数データQCEから、図5に例示したようなタイル端の高周波成分の1つの変換係数(以下、注目変換係数という)を取得する(ステップS161)。
また、誤差データ生成部170は、注目変換係数の下位ビットを符号化・レート制御部160において破棄する際に使用された破棄位置TPを取得する(ステップS162)。
次に、誤差データ生成部170は、注目変換係数の誤差を破棄位置TPに基づいて算出し、算出した誤差を誤差データBCCVに追加する(ステップS164)。
次に、誤差データ生成部170は、タイル内に処理すべき次の変換係数が存在するかを判定する(ステップS165)。ここで、処理すべき次の変換係数が存在する場合には、当該次の変換係数を注目変換係数として、ステップS161からステップS164までの処理が繰り返される。処理すべき次の変換係数が存在しない場合には、図8の誤差データ生成処理は終了する。
[2−4.復号処理の流れ]
図9は、第1の実施形態に係るデコーダ200により実行される復号処理の流れの一例を示すフローチャートである。
図9は、第1の実施形態に係るデコーダ200により実行される復号処理の流れの一例を示すフローチャートである。
図9を参照すると、まず、ストリーム取得部210は、復号すべき画像の変換係数データが符号化された第1の符号化ストリームBS、及び当該変換係数データの誤差を含む誤差データが符号化された第2の符号化ストリームBCBSを取得する(ステップS210)。そして、ストリーム取得部210は、第1の符号化ストリームBSを復号部220へ出力する。また、ストリーム取得部210は、第2の符号化ストリームBCBSを誤差復号部240へ出力する。
その後のステップS215からステップS260までの処理は、入力画像内のタイルの各々について繰り返される。
復号部220は、ストリーム取得部210から入力される第1の符号化ストリームBSから、変換係数データのビット列BINを復号する(ステップS215)。そして、復号部220は、復号されたビット列BINをビットデモデリング部230へ出力する。
次に、ビットデモデリング部230は、復号部220から入力されるビット列BINを並び替え直すことにより、ビット列BINを量子化された変換係数データQCEに変換する(ステップS220)。そして、ビットデモデリング部230は、量子化された変換係数データQCEを合成部250へ出力する。
また、誤差復号部240は、ストリーム取得部210から入力される第2の符号化ストリームBCBSから、誤差データBCCVを復号する(ステップS225)。そして、誤差復号部240は、復号した誤差データBCCVを合成部250へ出力する。
次に、合成部250は、ビットデモデリング部230から入力される変換係数データQCE及び誤差復号部240から入力される誤差データBCCVを合成する(ステップS240)。より具体的には、合成部250は、タイルの端部の高周波成分の変換係数の各々について、変換係数データQCEにより示される値と誤差データBCCVにより示される値とを加算する。それにより、誤差の補正された変換係数データR−QCEが生成される。そして、合成部250は、変換係数データR−QCEを逆量子化部260へ出力する。
次に、逆量子化部260は、合成部250から入力される変換係数データR−QCEを逆量子化することにより、量子化前の変換係数データCEを復元する(ステップS245)。そして、逆量子化部260は、復元した変換係数データCEを逆DWT部270へ出力する。
次に、逆DWT部270は、逆量子化部260から入力される変換係数データCEについて2次元の逆DWTを実行することにより、タイルごとの画像信号であるタイル信号TBBを復元する(ステップS250)。そして、逆DWT部270は、復元したタイル信号TBBをタイル合成部280へ出力する。
その後、未処理の次のタイルが存在する場合には、処理はステップS215へ戻る。全てのタイルについてタイル信号TBBが復元された場合には、処理はステップS265へ進む。
ステップS265において、タイル合成部280は、逆DWT部270から入力される複数のタイルのタイル信号TBBを合成することにより、1つの画像の画像信号BBを復元する(ステップS265)。そして、タイル合成部280は、復元した画像信号BBを逆変換・逆シフト部290へ出力する。なお、1つの画像全体が1つのタイルに相当する場合には、ステップS265の処理はスキップされてよい。
次に、逆変換・逆シフト部290は、タイル合成部280から入力される画像信号BBの信号値を一律的にシフトして画像信号IMGを復元し、(必要に応じて)画像信号IMGの色空間を逆変換する(ステップS270)。そして、逆変換・逆シフト部290は、例えば表示装置又は記憶装置などの、デコーダ200と接続される装置へ、画像信号IMGを出力する。
なお、本明細書で説明する様々な処理は、必ずしもフローチャートに示した順序で実行されなくてよい。一例として、色空間の変換、信号レベルのシフト及びタイル分割の順序が入れ替えられてもよい。また、いくつかの処理ステップは、直列的に実行されてもよく、又は並列的に実行されてもよい。
[2−5.第1の実施形態のまとめ]
ここまで、図3〜図9を用いて、第1の実施形態について説明した。本実施形態によれば、画像の変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データが、変換係数データに加えて符号化される。そして、当該画像を復号する際に、変換係数データと誤差データとが合成される。従って、変換係数データの下位ビットの破棄を原因とするブロック境界の画質の劣化を修復することができる。また、本実施形態によれば、ブロック境界の近傍の画素の追加的なフィルタリングが行われないため、ブロック境界の近傍領域において画像がぼけるという副作用を生じさせることなく、画質の劣化を直接的に補償することができる。
ここまで、図3〜図9を用いて、第1の実施形態について説明した。本実施形態によれば、画像の変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データが、変換係数データに加えて符号化される。そして、当該画像を復号する際に、変換係数データと誤差データとが合成される。従って、変換係数データの下位ビットの破棄を原因とするブロック境界の画質の劣化を修復することができる。また、本実施形態によれば、ブロック境界の近傍の画素の追加的なフィルタリングが行われないため、ブロック境界の近傍領域において画像がぼけるという副作用を生じさせることなく、画質の劣化を直接的に補償することができる。
また、本実施形態によれば、誤差データは、下位ビットが破棄される前の変換係数データと破棄位置TP(Truncation Point)とに基づいて生成される。破棄位置TPは、例えばJPEG2000方式などの既存の画像符号化方式においても生成されるパラメータである。従って、比較的少ないコストで、誤差データが追加的に符号化されるように既存の画像符号化方式を拡張して、本実施形態に係る手法を導入することができる。
また、本実施形態によれば、各ブロック(JPEG2000方式ではタイル)の端部の高周波成分の変換係数データについてのみ、誤差データが符号化される。従って、誤差データの追加的な符号化によって符号量が大幅に増加することはない。
<3.第2の実施形態>
[3−1.エンコーダの構成例]
図10は、第2の実施形態に係るエンコーダ300の構成の一例を示すブロック図である。図10を参照すると、エンコーダ300は、変換・シフト部110、タイル分割部120、DWT部130、量子化部140、ビットモデリング部150、符号化・レート制御部160、誤差データ生成部370、誤差符号化部180及びストリーム出力部190を備える。誤差データ生成部370は、誤差計算部372、振幅判定部374及び置換部376を含む。
[3−1.エンコーダの構成例]
図10は、第2の実施形態に係るエンコーダ300の構成の一例を示すブロック図である。図10を参照すると、エンコーダ300は、変換・シフト部110、タイル分割部120、DWT部130、量子化部140、ビットモデリング部150、符号化・レート制御部160、誤差データ生成部370、誤差符号化部180及びストリーム出力部190を備える。誤差データ生成部370は、誤差計算部372、振幅判定部374及び置換部376を含む。
(1)誤差計算部
誤差計算部372は、第1の実施形態に係る誤差データ生成部170と同様に、変換係数データQCEの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを生成する。より具体的には、誤差計算部372は、符号化・レート制御部160から、コードブロックごとの破棄位置TPを取得する。次に、誤差計算部372は、量子化部140から入力される変換係数データQCEのうちタイル端の高周波成分の変換係数を対象とし、破棄位置TPに基づいて、符号化・レート制御部160において破棄される下位ビットを特定する。そして、誤差計算部372は、対象の変換係数の各々について、特定した下位ビットにより示される誤差を算出し、当該誤差を含む誤差データBCCVを生成する。誤差計算部372は、このように生成される誤差データBCCVを、置換部376へ出力する。
誤差計算部372は、第1の実施形態に係る誤差データ生成部170と同様に、変換係数データQCEの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを生成する。より具体的には、誤差計算部372は、符号化・レート制御部160から、コードブロックごとの破棄位置TPを取得する。次に、誤差計算部372は、量子化部140から入力される変換係数データQCEのうちタイル端の高周波成分の変換係数を対象とし、破棄位置TPに基づいて、符号化・レート制御部160において破棄される下位ビットを特定する。そして、誤差計算部372は、対象の変換係数の各々について、特定した下位ビットにより示される誤差を算出し、当該誤差を含む誤差データBCCVを生成する。誤差計算部372は、このように生成される誤差データBCCVを、置換部376へ出力する。
(2)振幅判定部
振幅判定部374は、量子化部140から入力される変換係数データQCEのうちタイル端の高周波成分の変換係数の各々について、その絶対値(即ち、振幅)を振幅閾値と比較する。ここで、高周波成分の変換係数の絶対値が大きいということは、その領域において局所的に画素値の変化が急であることを意味する。逆に、高周波成分の変換係数の絶対値が小さいということは、その領域において局所的に画素値の変化が緩やかであることを意味する。画素値の変化が急な領域では、当該領域にブロック境界が存在するとしても、ブロック歪みはユーザにより感知されにくい。また、絶対値の大きい変換係数は、符号化・レート制御部160において破棄されにくい。本実施形態では、これら事実に基づいて、画素値の変化が急な領域における画質の劣化の修復を実質的に行わないことにより、誤差データの符号量を削減する。振幅判定部374は、タイル端の高周波成分の変換係数の各々について、その絶対値が振幅閾値よりも大きいか否かを示す誤差符号化フラグFLGを生成し、生成した誤差符号化フラグFLGを置換部376へ出力する。誤差符号化フラグFLGは、例えば、変換係数の絶対値が振幅閾値よりも大きい場合に“0:False”、それ以外の場合に“1:True”を示し得る。
振幅判定部374は、量子化部140から入力される変換係数データQCEのうちタイル端の高周波成分の変換係数の各々について、その絶対値(即ち、振幅)を振幅閾値と比較する。ここで、高周波成分の変換係数の絶対値が大きいということは、その領域において局所的に画素値の変化が急であることを意味する。逆に、高周波成分の変換係数の絶対値が小さいということは、その領域において局所的に画素値の変化が緩やかであることを意味する。画素値の変化が急な領域では、当該領域にブロック境界が存在するとしても、ブロック歪みはユーザにより感知されにくい。また、絶対値の大きい変換係数は、符号化・レート制御部160において破棄されにくい。本実施形態では、これら事実に基づいて、画素値の変化が急な領域における画質の劣化の修復を実質的に行わないことにより、誤差データの符号量を削減する。振幅判定部374は、タイル端の高周波成分の変換係数の各々について、その絶対値が振幅閾値よりも大きいか否かを示す誤差符号化フラグFLGを生成し、生成した誤差符号化フラグFLGを置換部376へ出力する。誤差符号化フラグFLGは、例えば、変換係数の絶対値が振幅閾値よりも大きい場合に“0:False”、それ以外の場合に“1:True”を示し得る。
なお、振幅閾値は、例えば“3”などの固定的な値であってもよい。その代わりに、振幅判定部374は、量子化部140において使用された量子化ステップの値に応じて、振幅閾値を動的に変化させてもよい。例えば、量子化ステップの値が大きいほど振幅閾値を小さく設定することにより、画質の劣化が修復される領域の広さが量子化ステップの変化を原因として不自然に変化することが防止される。
(3)置換部
置換部376は、変換係数の絶対値の大きさが上述した振幅閾値よりも大きいことを誤差符号化フラグFLGが示している場合に、誤差計算部372から入力される誤差データBCCVにおいて、当該変換係数に対応する誤差をゼロに置換する。そして、置換部376は、置換後の誤差データBCCVを誤差符号化部180へ出力する。
置換部376は、変換係数の絶対値の大きさが上述した振幅閾値よりも大きいことを誤差符号化フラグFLGが示している場合に、誤差計算部372から入力される誤差データBCCVにおいて、当該変換係数に対応する誤差をゼロに置換する。そして、置換部376は、置換後の誤差データBCCVを誤差符号化部180へ出力する。
置換部376により一部の変換係数について誤差がゼロに置換される結果、誤差データBCCVにおいて、ゼロの占める割合が大きくなる。その結果、例えばハフマン符号化又は算術符号化などのエントロピー符号化を通じて誤差データBCCVを符号化する場合の符号量は、置換が行われない場合と比較して少なくなる。
本実施形態に係るエンコーダ300から出力される第1及び第2の符号化ストリームは、例えば、第1の実施形態に係るデコーダ200によって復号され得る。その際、画素値の変化が緩やかな領域においてのみ、第2の符号化ストリームから復号される誤差は、ゼロ以外の値を示す。
[3−2.符号化処理の流れ]
(1)振幅判定処理
図11は、振幅判定部374により実行される振幅判定処理の詳細な流れの一例を示すフローチャートである。
(1)振幅判定処理
図11は、振幅判定部374により実行される振幅判定処理の詳細な流れの一例を示すフローチャートである。
図11を参照すると、まず、振幅判定部374は、タイル端の高周波成分の1つの変換係数を注目変換係数とし、当該注目変換係数の絶対値を振幅閾値と比較する(ステップS352)。ここで、注目変換係数の絶対値が振幅閾値よりも大きい場合には、振幅判定部374は、当該注目変換係数についての誤差符号化フラグを“0:False”に設定する(ステップS353)。一方、注目変換係数の絶対値が振幅閾値よりも大きくない場合には、振幅判定部374は、当該注目変換係数についての誤差符号化フラグを“1:True”に設定する(ステップS354)。
次に、振幅判定部374は、処理すべき次の変換係数が存在するかを判定する(ステップS355)。ここで、処理すべき次の変換係数が存在する場合には、当該次の変換係数を注目変換係数として、ステップS352からステップS354までの処理が繰り返される。処理すべき次の変換係数が存在しない場合には、図11の振幅判定処理は終了する。
(2)誤差データ生成処理
図12は、本実施形態に係る誤差データ生成部370により実行される誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
図12は、本実施形態に係る誤差データ生成部370により実行される誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
図12を参照すると、まず、振幅判定部374は、図11を用いて説明した振幅判定処理を実行し、誤差符号化フラグFLGを生成する(ステップS351)。そして、振幅判定部374は、生成した誤差符号化フラグFLGを置換部376へ出力する。
次に、誤差計算部372は、量子化部140から入力される変換係数データQCEから、1つの注目変換係数を取得する(ステップS361)。
また、誤差計算部372は、注目変換係数の下位ビットを符号化・レート制御部160において破棄する際に使用された破棄位置TPを取得する(ステップS362)。
次に、誤差計算部372は、注目変換係数の誤差を破棄位置TPに基づいて算出し、算出した誤差を誤差データBCCVに追加する(ステップS364)。
誤差計算部372は、ステップS361からステップS364までの処理を、タイル内に処理すべき次の変換係数が存在しなくなるまで繰り返す(ステップS365)。
その後、置換部376は、振幅判定部374から入力される誤差符号化フラグFLGが“0:False”を示している変換係数について、誤差データBCCV内の誤差をゼロに置換する(ステップS356)。
[3−3.第2の実施形態のまとめ]
ここまで、図10〜図12を用いて、第2の実施形態について説明した。本実施形態によれば、画素値の変化が急な領域における変換係数について誤差データ内の誤差がゼロに置換されるため、誤差データの追加的な符号化による符号量の増加を抑制することができる。また、画素値の変化が急な領域ではブロック歪みはユーザに感知されにくいため、当該領域において画質の劣化が修復されないとしても、その主観的な画質への影響は小さい。
ここまで、図10〜図12を用いて、第2の実施形態について説明した。本実施形態によれば、画素値の変化が急な領域における変換係数について誤差データ内の誤差がゼロに置換されるため、誤差データの追加的な符号化による符号量の増加を抑制することができる。また、画素値の変化が急な領域ではブロック歪みはユーザに感知されにくいため、当該領域において画質の劣化が修復されないとしても、その主観的な画質への影響は小さい。
<4.第3の実施形態>
[4−1.エンコーダの構成例]
図13は、第3の実施形態に係るエンコーダ500の構成の一例を示すブロック図である。図13を参照すると、エンコーダ500は、変換・シフト部110、タイル分割部120、DWT部130、量子化部140、ビットモデリング部150、符号化・レート制御部160、誤差データ生成部570、誤差符号化部580、フラグ符号化部585及びストリーム出力部590を備える。誤差データ生成部570は、誤差計算部372及び振幅判定部374を含む。
[4−1.エンコーダの構成例]
図13は、第3の実施形態に係るエンコーダ500の構成の一例を示すブロック図である。図13を参照すると、エンコーダ500は、変換・シフト部110、タイル分割部120、DWT部130、量子化部140、ビットモデリング部150、符号化・レート制御部160、誤差データ生成部570、誤差符号化部580、フラグ符号化部585及びストリーム出力部590を備える。誤差データ生成部570は、誤差計算部372及び振幅判定部374を含む。
(1)誤差データ生成部
誤差データ生成部570において、誤差計算部372は、変換係数データQCEの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データBCCVを生成する。そして、誤差計算部372は、誤差データBCCVを誤差符号化部580へ出力する。振幅判定部374は、上述した振幅判定処理を実行することにより誤差符号化フラグFLGを生成し、生成した誤差符号化フラグFLGを誤差符号化部580及びフラグ符号化部585へ出力する。
誤差データ生成部570において、誤差計算部372は、変換係数データQCEの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データBCCVを生成する。そして、誤差計算部372は、誤差データBCCVを誤差符号化部580へ出力する。振幅判定部374は、上述した振幅判定処理を実行することにより誤差符号化フラグFLGを生成し、生成した誤差符号化フラグFLGを誤差符号化部580及びフラグ符号化部585へ出力する。
(2)誤差符号化部
誤差符号化部580は、誤差データ生成部570から入力される誤差データBCCVを符号化して、第2の符号化ストリームBCBSを生成する。より具体的には、本実施形態において、誤差符号化部580は、誤差符号化フラグFLGが“1:True”を示している変換係数の誤差のみを符号化する。誤差符号化フラグFLGが“0:False”を示している変換係数、即ち絶対値の大きさが振幅閾値よりも大きい変換係数についての誤差は、第2の符号化ストリーム内に符号化されない。誤差符号化部180は、このように生成される第2の符号化ストリームBCBSを、ストリーム出力部590へ出力する。なお、絶対値の大きい変換係数についての誤差の符号化を誤差符号化部580がスキップする代わりに、誤差計算部372が、誤差符号化フラグFLGに従って、絶対値の大きい変換係数(即ち、FLG=“0”)について誤差データBCCVの生成をスキップしてもよい。その場合には、振幅判定部374から誤差計算部372へ、誤差符号化フラグFLGが入力される。
誤差符号化部580は、誤差データ生成部570から入力される誤差データBCCVを符号化して、第2の符号化ストリームBCBSを生成する。より具体的には、本実施形態において、誤差符号化部580は、誤差符号化フラグFLGが“1:True”を示している変換係数の誤差のみを符号化する。誤差符号化フラグFLGが“0:False”を示している変換係数、即ち絶対値の大きさが振幅閾値よりも大きい変換係数についての誤差は、第2の符号化ストリーム内に符号化されない。誤差符号化部180は、このように生成される第2の符号化ストリームBCBSを、ストリーム出力部590へ出力する。なお、絶対値の大きい変換係数についての誤差の符号化を誤差符号化部580がスキップする代わりに、誤差計算部372が、誤差符号化フラグFLGに従って、絶対値の大きい変換係数(即ち、FLG=“0”)について誤差データBCCVの生成をスキップしてもよい。その場合には、振幅判定部374から誤差計算部372へ、誤差符号化フラグFLGが入力される。
(3)フラグ符号化部
フラグ符号化部585は、振幅判定部374から入力される誤差符号化フラグFLGを符号化して、第3の符号化ストリームFBSを生成する。誤差符号化フラグFLGは、誤差データBCCV内の誤差に対応する画像内の位置を特定するためのパラメータとして、デコーダ側で使用される。誤差符号化フラグFLGは、例えば、図5に例示した端部E3、E2及びE1に沿って、誤差が符号化されない変換係数について“0”、誤差が符号化される変換係数について“1”が並ぶビット列である。ビットの順序は、誤差データの符号化の順序に対応する。フラグ符号化部585は、一例として、ランレングス符号化によって誤差符号化フラグFLGのデータ量を圧縮した上で、算術符号化によって第3の符号化ストリームFBSを生成し得る。フラグ符号化部585は、このように生成される第3の符号化ストリームFBSを、ストリーム出力部590へ出力する。
フラグ符号化部585は、振幅判定部374から入力される誤差符号化フラグFLGを符号化して、第3の符号化ストリームFBSを生成する。誤差符号化フラグFLGは、誤差データBCCV内の誤差に対応する画像内の位置を特定するためのパラメータとして、デコーダ側で使用される。誤差符号化フラグFLGは、例えば、図5に例示した端部E3、E2及びE1に沿って、誤差が符号化されない変換係数について“0”、誤差が符号化される変換係数について“1”が並ぶビット列である。ビットの順序は、誤差データの符号化の順序に対応する。フラグ符号化部585は、一例として、ランレングス符号化によって誤差符号化フラグFLGのデータ量を圧縮した上で、算術符号化によって第3の符号化ストリームFBSを生成し得る。フラグ符号化部585は、このように生成される第3の符号化ストリームFBSを、ストリーム出力部590へ出力する。
(4)ストリーム出力部
ストリーム出力部590は、誤差符号化部580から入力される第2の符号化ストリームBCBS及びフラグ符号化部585から入力される第3の符号化ストリームFBSを第1の符号化ストリームBSと関連付けて、これら3つの符号化ストリームを出力する。ストリーム出力部590は、例えば、第2及び第3の符号化ストリームにアクセスするための参照用パラメータを生成し、生成した参照用パラメータを第1の符号化ストリームBSのヘッダ領域に挿入してもよい。
ストリーム出力部590は、誤差符号化部580から入力される第2の符号化ストリームBCBS及びフラグ符号化部585から入力される第3の符号化ストリームFBSを第1の符号化ストリームBSと関連付けて、これら3つの符号化ストリームを出力する。ストリーム出力部590は、例えば、第2及び第3の符号化ストリームにアクセスするための参照用パラメータを生成し、生成した参照用パラメータを第1の符号化ストリームBSのヘッダ領域に挿入してもよい。
[4−2.デコーダの構成例]
図14は、第3の実施形態に係るデコーダ600の構成の一例を示すブロック図である。図14を参照すると、デコーダ600は、ストリーム取得部610、復号部220、ビットデモデリング部230、フラグ復号部640、誤差復号部645、合成部650、逆量子化部260、逆DWT部270、タイル合成部280及び逆変換・逆シフト部290を備える。
図14は、第3の実施形態に係るデコーダ600の構成の一例を示すブロック図である。図14を参照すると、デコーダ600は、ストリーム取得部610、復号部220、ビットデモデリング部230、フラグ復号部640、誤差復号部645、合成部650、逆量子化部260、逆DWT部270、タイル合成部280及び逆変換・逆シフト部290を備える。
(1)ストリーム取得部
ストリーム取得部610は、デコーダ600による復号処理の入力となる符号化ストリームを取得する。ストリーム取得部610により取得される符号化ストリーム(例えば、多重化ストリームPBS)は、変換係数データが符号化された第1の符号化ストリームBS、誤差データが符号化された第2の符号化ストリームBCBS及び誤差符号化フラグが符号化された第3の符号化ストリームFBSを含み得る。例えば、ストリーム取得部610は、第1の符号化ストリームBSのヘッダ領域に挿入される参照用パラメータを用いて第2及び第3の符号化ストリームBCBS、FBSを取得してもよい。ストリーム取得部610は、第1の符号化ストリームBSを復号部220へ出力する。また、ストリーム取得部610は、第2の符号化ストリームBCBSを誤差復号部645へ出力する。また、ストリーム取得部610は、第3の符号化ストリームFBSをフラグ復号部640へ出力する。
ストリーム取得部610は、デコーダ600による復号処理の入力となる符号化ストリームを取得する。ストリーム取得部610により取得される符号化ストリーム(例えば、多重化ストリームPBS)は、変換係数データが符号化された第1の符号化ストリームBS、誤差データが符号化された第2の符号化ストリームBCBS及び誤差符号化フラグが符号化された第3の符号化ストリームFBSを含み得る。例えば、ストリーム取得部610は、第1の符号化ストリームBSのヘッダ領域に挿入される参照用パラメータを用いて第2及び第3の符号化ストリームBCBS、FBSを取得してもよい。ストリーム取得部610は、第1の符号化ストリームBSを復号部220へ出力する。また、ストリーム取得部610は、第2の符号化ストリームBCBSを誤差復号部645へ出力する。また、ストリーム取得部610は、第3の符号化ストリームFBSをフラグ復号部640へ出力する。
(2)フラグ復号部
フラグ復号部640は、ストリーム取得部610から入力される第3の符号化ストリームFBSから、誤差符号化フラグFLGを復号する。フラグ復号部640は、例えば、算術復号及びランレングス復号などの任意の手法に従って、誤差符号化フラグFLGを復号してよい。そして、フラグ復号部640は、復号した誤差符号化フラグFLGを誤差復号部645へ出力する。
フラグ復号部640は、ストリーム取得部610から入力される第3の符号化ストリームFBSから、誤差符号化フラグFLGを復号する。フラグ復号部640は、例えば、算術復号及びランレングス復号などの任意の手法に従って、誤差符号化フラグFLGを復号してよい。そして、フラグ復号部640は、復号した誤差符号化フラグFLGを誤差復号部645へ出力する。
(3)誤差復号部
誤差復号部645は、ストリーム取得部610から入力される第2の符号化ストリームBCBSから、誤差データBCCVを復号する。本実施形態において、誤差データBCCVは、上述したように、振幅が相対的に小さい変換係数についての誤差のみを含む。従って、誤差データBCCVのみでは、誤差データBCCV内の誤差のそれぞれが画像内のどの位置の変換係数の誤差であるのかを特定することができない。そこで、誤差復号部645は、フラグ復号部640から入力される誤差符号化フラグFLGを参照し、誤差データBCCV内の誤差のそれぞれが画像内のどの位置の変換係数の誤差であるのかを特定する。そして、誤差復号部645は、復号した誤差データBCCVを合成部650へ出力する。
誤差復号部645は、ストリーム取得部610から入力される第2の符号化ストリームBCBSから、誤差データBCCVを復号する。本実施形態において、誤差データBCCVは、上述したように、振幅が相対的に小さい変換係数についての誤差のみを含む。従って、誤差データBCCVのみでは、誤差データBCCV内の誤差のそれぞれが画像内のどの位置の変換係数の誤差であるのかを特定することができない。そこで、誤差復号部645は、フラグ復号部640から入力される誤差符号化フラグFLGを参照し、誤差データBCCV内の誤差のそれぞれが画像内のどの位置の変換係数の誤差であるのかを特定する。そして、誤差復号部645は、復号した誤差データBCCVを合成部650へ出力する。
(4)合成部
合成部650は、ビットデモデリング部230から入力される変換係数データQCE及び誤差復号部645から入力される誤差データBCCVを合成することにより、変換係数データQCEの誤差を補正する。本実施形態において、誤差を合成することにより実質的に補正される変換係数は、誤差符号化フラグFLGにより特定される位置の変換係数である。振幅が相対的に大きい変換係数については、誤差は合成されない。合成部650は、補正後の変換係数データR−QCEを逆量子化部260へ出力する。
合成部650は、ビットデモデリング部230から入力される変換係数データQCE及び誤差復号部645から入力される誤差データBCCVを合成することにより、変換係数データQCEの誤差を補正する。本実施形態において、誤差を合成することにより実質的に補正される変換係数は、誤差符号化フラグFLGにより特定される位置の変換係数である。振幅が相対的に大きい変換係数については、誤差は合成されない。合成部650は、補正後の変換係数データR−QCEを逆量子化部260へ出力する。
[4−3.符号化処理の流れ]
(1)全体的な処理
図15は、第3の実施形態に係るエンコーダ500による符号化処理の流れの一例を示すフローチャートである。
(1)全体的な処理
図15は、第3の実施形態に係るエンコーダ500による符号化処理の流れの一例を示すフローチャートである。
図15を参照すると、まず、変換・シフト部110は、入力画像信号IMGの色空間をエンコーダ100によりサポートされる色空間に変換し、信号レベルをシフトする(ステップS510)。そして、変換・シフト部110は、変換及びシフト後の画像信号BBをタイル分割部120へ出力する。
次に、タイル分割部120は、入力画像内に1つ以上のタイルを設定し、画像信号BBをタイル信号TBBに分割する(ステップS515)。そして、タイル分割部120は、タイル信号TBBをDWT部130へ出力する。その後のステップS520からステップS580までの処理は、入力画像内のタイルの各々について繰り返される。
DWT部130は、タイル分割部120から入力されるタイル信号TBBについて2次元のDWTを実行することにより、変換係数データCEを生成する(ステップS520)。そして、DWT部130は、生成した変換係数データCEを量子化部140へ出力する。
次に、量子化部140は、DWT部130から入力される変換係数データCEを量子化することにより、量子化された変換係数データQCEを生成する(ステップS525)。そして、量子化部140は、量子化された変換係数データQCEをビットモデリング部150及び誤差データ生成部570へ出力する。
次に、ビットモデリング部150は、コードブロックごとに、量子化部140から入力される変換係数データQCEを、3つの符号化パスを含むビット列BINに変換する(ステップS530)。そして、ビットモデリング部150は、ビット列BINを符号化・レート制御部160へ出力する。
次に、符号化・レート制御部160は、指定される符号化レートに応じた破棄位置TPを決定し、ビットモデリング部150から入力されるビット列BINの破棄位置TP以下の下位ビットを破棄する(ステップS535)。
また、符号化・レート制御部160は、下位ビットの破棄されたビット列BINを符号化して、第1の符号化ストリームBSを生成する(ステップS540)。そして、符号化・レート制御部160は、生成した第1の符号化ストリームBSを、ストリーム出力部590へ出力する。また、符号化・レート制御部160は、破棄位置TPを、誤差データ生成部570へ出力する。
次に、誤差データ生成部570は、変換係数データQCEの下位ビットの破棄によって生じる誤差を含む誤差データBCCVを生成する(ステップS550)。ここでの誤差データ生成部570による誤差データ生成処理について、後にさらに説明する。そして、誤差データ生成部570は、誤差データBCCVを誤差符号化部580へ出力する。また、誤差データ生成部570は、誤差符号化フラグFLGを誤差符号化部580及びフラグ符号化部585へ出力する。
次に、誤差符号化部580は、誤差データ生成部570から入力される誤差データBCCVのうち、振幅が相対的に小さい変換係数についてのデータを符号化して、第2の符号化ストリームBCBSを生成する(ステップS570)。そして、誤差符号化部580は、生成した第2の符号化ストリームBCBSを、ストリーム出力部590へ出力する。
また、フラグ符号化部585は、誤差データ生成部570から入力される誤差符号化フラグFLGを符号化して、第3の符号化ストリームFBSを生成する(ステップS575)。そして、フラグ符号化部585は、第3の符号化ストリームFBSを、ストリーム出力部590へ出力する。
その後、未処理の次のタイルが存在する場合には、処理はステップS520へ戻る。全てのタイルについて第1、第2及び第3の符号化ストリームが生成された場合には、処理はステップS590へ進む。
ステップS590において、ストリーム出力部590は、第2及び第3の符号化ストリームBCBS、FBSを第1の符号化ストリームBSと関連付けて、これら3つの符号化ストリームを出力する。
(2)誤差データ生成処理
図16は、本実施形態に係る誤差データ生成部570により実行される誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
図16は、本実施形態に係る誤差データ生成部570により実行される誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
図16を参照すると、まず、誤差データ生成部570の振幅判定部374は、図11を用いて説明した振幅判定処理を実行し、誤差符号化フラグFLGを生成する(ステップS551)。そして、振幅判定部374は、生成した誤差符号化フラグFLGを誤差符号化部580及びフラグ符号化部585へ出力する。
次に、誤差計算部372は、量子化部140から入力される変換係数データQCEから、1つの注目変換係数を取得する(ステップS561)。
また、誤差計算部372は、注目変換係数の下位ビットを符号化・レート制御部160において破棄する際に使用された破棄位置TPを取得する(ステップS562)。
次に、誤差計算部372は、注目変換係数の振幅が振幅閾値よりも大きくないことを誤差符号化フラグFLGが示しているかを判定する(ステップS563)。例えば、注目変換係数について誤差符号化フラグFLGが“1:True”を示している場合には、注目変換係数の振幅は振幅閾値よりも大きくないと判定され得る。その場合、誤差計算部372は、注目変換係数の誤差を破棄位置TPに基づいて算出し、算出した誤差を誤差データBCCVに追加する(ステップS564)。一方、注目変換係数の振幅が振幅閾値よりも大きい場合には、ステップS564の処理はスキップされる。なお、変換係数の振幅に応じた誤差のスキップは、誤差計算部372における誤差の計算の際に行われてもよく、又は誤差符号化部580における誤差の符号化の際に行われてもよい。
誤差データ生成部570は、ステップS561からステップS564までの処理を、タイル内に処理すべき次の変換係数が存在しなくなるまで繰り返す(ステップS565)。誤差データ生成部570は、このように生成される誤差データBCCVを誤差符号化部580へ出力する。
[4−4.復号処理の流れ]
図17は、第3の実施形態に係るデコーダ600により実行される復号処理の流れの一例を示すフローチャートである。
図17は、第3の実施形態に係るデコーダ600により実行される復号処理の流れの一例を示すフローチャートである。
図17を参照すると、まず、ストリーム取得部610は、復号すべき画像の変換係数データが符号化された第1の符号化ストリームBS、誤差データが符号化された第2の符号化ストリームBCBS及び誤差符号化フラグが符号化された第3の符号化ストリームFBSを取得する(ステップS610)。そして、ストリーム取得部610は、第1の符号化ストリームBSを復号部220へ出力する。また、ストリーム取得部610は、第2の符号化ストリームBCBSを誤差復号部645へ出力する。また、ストリーム取得部610は、第3の符号化ストリームFBSをフラグ復号部640へ出力する。
その後のステップS615からステップS660までの処理は、入力画像内のタイルの各々について繰り返される。
復号部220は、ストリーム取得部610から入力される第1の符号化ストリームBSから、変換係数データのビット列BINを復号する(ステップS615)。そして、復号部220は、復号されたビット列BINをビットデモデリング部230へ出力する。
次に、ビットデモデリング部230は、復号部220から入力されるビット列BINを並び替え直すことにより、ビット列BINを量子化された変換係数データQCEに変換する(ステップS620)。そして、ビットデモデリング部230、量子化された変換係数データQCEを合成部650へ出力する。
また、フラグ復号部640は、ストリーム取得部610から入力される第3の符号化ストリームFBSから、誤差符号化フラグFLGを復号する(ステップS625)。そして、フラグ復号部640は、復号した誤差符号化フラグFLGを誤差復号部645へ出力する。
次に、誤差復号部645は、ストリーム取得部610から入力される第2の符号化ストリームBCBSから、誤差符号化フラグFLGにより特定される位置の変換係数についての誤差データBCCVを復号する(ステップS630)。そして、誤差復号部645は、復号した誤差データBCCVを合成部650へ出力する。
次に、合成部650は、誤差符号化フラグFLGにより特定される位置の変換係数について、ビットデモデリング部230から入力される変換係数データQCEに誤差データBCCVを合成する(ステップS640)。それにより、誤差の補正された変換係数データR−QCEが生成される。そして、合成部650は、変換係数データR−QCEを逆量子化部260へ出力する。
次に、逆量子化部260は、合成部650から入力される変換係数データR−QCEを逆量子化することにより、量子化前の変換係数データCEを復元する(ステップS645)。そして、逆量子化部260は、復元した変換係数データCEを逆DWT部270へ出力する。
次に、逆DWT部270は、逆量子化部260から入力される変換係数データCEについて2次元の逆DWTを実行することにより、タイルごとの画像信号であるタイル信号TBBを復元する(ステップS650)。そして、逆DWT部270は、復元したタイル信号TBBをタイル合成部280へ出力する。
その後、未処理の次のタイルが存在する場合には、処理はステップS615へ戻る。全てのタイルについてタイル信号TBBが復元された場合には、処理はステップS665へ進む。
ステップS665において、タイル合成部280は、逆DWT部270から入力される複数のタイルのタイル信号TBBを合成することにより、1つの画像の画像信号BBを復元する(ステップS665)。そして、タイル合成部280は、復元した画像信号BBを逆変換・逆シフト部290へ出力する。
次に、逆変換・逆シフト部290は、タイル合成部280から入力される画像信号BBの信号値を一律的にシフトして画像信号IMGを復元し、(必要に応じて)画像信号IMGの色空間を逆変換する(ステップS670)。そして、逆変換・逆シフト部290は、例えば表示装置又は記憶装置などの、デコーダ600と接続される装置へ、画像信号IMGを出力する。
[4−5.第3の実施形態のまとめ]
ここまで、図13〜図17を用いて、第3の実施形態について説明した。本実施形態によれば、画素値の変化が急な領域における変換係数について誤差データの符号化が省略されるため、誤差データの追加的な符号化による符号量の増加を一層効果的に抑制することができる。また、誤差符号化フラグが追加的に符号化されることにより、デコーダは、部分的に省略された誤差データを変換係数データに適切に合成することができる。第2の実施形態と同様、画素値の変化が急な領域ではブロック歪みはユーザに感知されにくいため、当該領域において画質の劣化が修復されないとしても、その主観的な画質への影響は小さい。
ここまで、図13〜図17を用いて、第3の実施形態について説明した。本実施形態によれば、画素値の変化が急な領域における変換係数について誤差データの符号化が省略されるため、誤差データの追加的な符号化による符号量の増加を一層効果的に抑制することができる。また、誤差符号化フラグが追加的に符号化されることにより、デコーダは、部分的に省略された誤差データを変換係数データに適切に合成することができる。第2の実施形態と同様、画素値の変化が急な領域ではブロック歪みはユーザに感知されにくいため、当該領域において画質の劣化が修復されないとしても、その主観的な画質への影響は小さい。
<5.第4の実施形態>
[5−1.エンコーダの構成例]
図18は、第4の実施形態に係るエンコーダ700の構成の一例を示すブロック図である。図18を参照すると、エンコーダ700は、変換・シフト部110、タイル分割部120、DWT部730、量子化部740、ビットモデリング部150、符号化・レート制御部160、誤差データ生成部770、誤差符号化部180及びストリーム出力部190を備える。
[5−1.エンコーダの構成例]
図18は、第4の実施形態に係るエンコーダ700の構成の一例を示すブロック図である。図18を参照すると、エンコーダ700は、変換・シフト部110、タイル分割部120、DWT部730、量子化部740、ビットモデリング部150、符号化・レート制御部160、誤差データ生成部770、誤差符号化部180及びストリーム出力部190を備える。
(1)DWT部
DWT部730は、タイル分割部120からタイルごとに入力されるタイル信号TBBについて2次元のDWTを実行することにより、タイルごとの変換係数データCEを生成する。DWT部730は、第1の実施形態に係るDWT部130と同様に、各タイルの端部の画素値を対称周期拡張によって拡張した上でフィルタ演算を実行する。ここでのDWTは、例えば、整数型5×3DWTであってもよく、又は実数型9×7DWTであってもよい。DWT部730は、タイルごとの変換係数データCEを、量子化部740及び誤差データ生成部770へ出力する。
DWT部730は、タイル分割部120からタイルごとに入力されるタイル信号TBBについて2次元のDWTを実行することにより、タイルごとの変換係数データCEを生成する。DWT部730は、第1の実施形態に係るDWT部130と同様に、各タイルの端部の画素値を対称周期拡張によって拡張した上でフィルタ演算を実行する。ここでのDWTは、例えば、整数型5×3DWTであってもよく、又は実数型9×7DWTであってもよい。DWT部730は、タイルごとの変換係数データCEを、量子化部740及び誤差データ生成部770へ出力する。
(2)量子化部
量子化部740は、DWT部730から入力される変換係数データCEを量子化することにより、量子化された変換係数データQCEを生成する。量子化部740は、量子化された変換係数データQCEをビットモデリング部150へ出力する。また、量子化部740は、例えばサブバンドごとに決定され得る量子化ステップQVを、誤差データ生成部770へ出力する。
量子化部740は、DWT部730から入力される変換係数データCEを量子化することにより、量子化された変換係数データQCEを生成する。量子化部740は、量子化された変換係数データQCEをビットモデリング部150へ出力する。また、量子化部740は、例えばサブバンドごとに決定され得る量子化ステップQVを、誤差データ生成部770へ出力する。
(3)誤差データ生成部
誤差データ生成部770は、変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データBCCVを生成する。本実施形態において、誤差データBCCVにより示される誤差は、量子化誤差をも含む。より具体的には、誤差データ生成部770は、DWT部730から入力される変換係数データCEからタイル端の高周波成分の変換係数を取得し、取得した変換係数を量子化部740から入力される量子化ステップQVを用いて量子化する。次に、誤差データ生成部770は、量子化後の変換係数の下位ビットを、符号化・レート制御部160から入力される破棄位置TPに基づいて破棄する。次に、誤差データ生成部770は、下位ビットの破棄された変換係数を量子化ステップQVを用いて逆量子化することにより、変換係数データR−CEを復元する。そして、誤差データ生成部770は、量子化前の変換係数データCEの値と復元された変換係数データR−CEの値との差分に基づいて、誤差データBCCVを生成する。誤差データ生成部770は、このように生成される誤差データBCCVを、誤差符号化部180へ出力する。
誤差データ生成部770は、変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データBCCVを生成する。本実施形態において、誤差データBCCVにより示される誤差は、量子化誤差をも含む。より具体的には、誤差データ生成部770は、DWT部730から入力される変換係数データCEからタイル端の高周波成分の変換係数を取得し、取得した変換係数を量子化部740から入力される量子化ステップQVを用いて量子化する。次に、誤差データ生成部770は、量子化後の変換係数の下位ビットを、符号化・レート制御部160から入力される破棄位置TPに基づいて破棄する。次に、誤差データ生成部770は、下位ビットの破棄された変換係数を量子化ステップQVを用いて逆量子化することにより、変換係数データR−CEを復元する。そして、誤差データ生成部770は、量子化前の変換係数データCEの値と復元された変換係数データR−CEの値との差分に基づいて、誤差データBCCVを生成する。誤差データ生成部770は、このように生成される誤差データBCCVを、誤差符号化部180へ出力する。
本実施形態においても、誤差データBCCVは、誤差符号化部180により任意の手法で符号化される。そして、符号化された誤差データBCCVを含む第2の符号化ストリームBCBSが、符号化された変換係数データを含む第1の符号化ストリームBSに関連付けられる。
[5−2.デコーダの構成例]
図19は、第4の実施形態に係るデコーダ800の構成の一例を示すブロック図である。図19を参照すると、デコーダ800は、ストリーム取得部210、復号部220、ビットデモデリング部230、誤差復号部240、逆量子化部850、合成部860、逆DWT部270、タイル合成部280及び逆変換・逆シフト部290を備える。
図19は、第4の実施形態に係るデコーダ800の構成の一例を示すブロック図である。図19を参照すると、デコーダ800は、ストリーム取得部210、復号部220、ビットデモデリング部230、誤差復号部240、逆量子化部850、合成部860、逆DWT部270、タイル合成部280及び逆変換・逆シフト部290を備える。
(1)逆量子化部
逆量子化部850は、ビットデモデリング部230から入力される変換係数データQCEを、エンコーダ700における量子化処理において使用されたものと同等の量子化ステップで逆量子化することにより、量子化前の変換係数データCEを復元する。そして、逆量子化部850は、復元した変換係数データCEを合成部860へ出力する。
逆量子化部850は、ビットデモデリング部230から入力される変換係数データQCEを、エンコーダ700における量子化処理において使用されたものと同等の量子化ステップで逆量子化することにより、量子化前の変換係数データCEを復元する。そして、逆量子化部850は、復元した変換係数データCEを合成部860へ出力する。
(5)合成部
合成部860は、逆量子化部850から入力される逆量子化された変換係数データCE及び誤差復号部240から入力される誤差データBCCVを合成することにより、変換係数データCEの誤差を補正する。より具体的には、本実施形態において、合成部860は、図5に例示したようなタイルの端部の高周波成分の変換係数の各々について、変換係数データCEにより示される値と誤差データBCCVにより示される値とを加算する。それにより、誤差の補正された変換係数データR−CEが生成される。そして、合成部250は、生成した変換係数データR−CEを逆DWT部270へ出力する。
合成部860は、逆量子化部850から入力される逆量子化された変換係数データCE及び誤差復号部240から入力される誤差データBCCVを合成することにより、変換係数データCEの誤差を補正する。より具体的には、本実施形態において、合成部860は、図5に例示したようなタイルの端部の高周波成分の変換係数の各々について、変換係数データCEにより示される値と誤差データBCCVにより示される値とを加算する。それにより、誤差の補正された変換係数データR−CEが生成される。そして、合成部250は、生成した変換係数データR−CEを逆DWT部270へ出力する。
[5−3.符号化処理の流れ]
図20は、第4の実施形態に係る誤差データ生成部770により実行される誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
図20は、第4の実施形態に係る誤差データ生成部770により実行される誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
図20を参照すると、まず、誤差データ生成部770は、DWT部730から入力される変換係数データCEから、タイル端の高周波成分の1つの注目変換係数を取得する(ステップS761)。
次に、誤差データ生成部770は、量子化部740から入力される量子化ステップQVを用いて、注目変換係数を量子化する(ステップS762)。
次に、誤差データ生成部770は、符号化・レート制御部160から入力される破棄位置TPに基づいて、量子化後の注目変換係数の下位ビットを破棄する(ステップS763)。
次に、誤差データ生成部770は、下位ビットの破棄された変換係数を量子化ステップQVを用いて逆量子化することにより、注目変換係数の値を復元する(ステップS764)。
次に、誤差データ生成部770は、量子化前の注目変換係数と復元された注目変換係数との差分に相当する誤差を、誤差データBCCVに追加する(ステップS765)。
次に、誤差データ生成部770は、タイル内に処理すべき次の変換係数が存在するかを判定する(ステップS766)。ここで、処理すべき次の変換係数が存在する場合には、当該次の変換係数を注目変換係数として、ステップS761からステップS765までの処理が繰り返される。処理すべき次の変換係数が存在しない場合には、図20の誤差データ生成処理は終了する。
[5−4.復号処理の流れ]
図21は、第4の実施形態に係るデコーダ800により実行される復号処理の流れの一例を示すフローチャートである。
図21は、第4の実施形態に係るデコーダ800により実行される復号処理の流れの一例を示すフローチャートである。
図21を参照すると、まず、ストリーム取得部210は、復号すべき画像の変換係数データが符号化された第1の符号化ストリームBS、及び当該変換係数データの誤差を含む誤差データが符号化された第2の符号化ストリームBCBSを取得する(ステップS810)。そして、ストリーム取得部210は、第1の符号化ストリームBSを復号部220へ出力する。また、ストリーム取得部210は、第2の符号化ストリームBCBSを誤差復号部240へ出力する。
その後のステップS815からステップS860までの処理は、入力画像内のタイルの各々について繰り返される。
復号部220は、ストリーム取得部210から入力される第1の符号化ストリームBSから、変換係数データのビット列BINを復号する(ステップS815)。そして、復号部220は、復号されたビット列BINをビットデモデリング部230へ出力する。
次に、ビットデモデリング部230は、復号部220から入力されるビット列BINを並び替え直すことにより、ビット列BINを量子化された変換係数データQCEに変換する(ステップS820)。そして、ビットデモデリング部230は、量子化された変換係数データQCEを逆量子化部850へ出力する。
次に、逆量子化部850は、ビットデモデリング部230から入力される変換係数データQCEを逆量子化することにより、量子化前の変換係数データCEを復元する(ステップS825)。そして、逆量子化部850は、復元した変換係数データCEを合成部860へ出力する。
また、誤差復号部240は、ストリーム取得部210から入力される第2の符号化ストリームBCBSから、誤差データBCCVを復号する(ステップS830)。そして、誤差復号部240は、復号した誤差データBCCVを合成部860へ出力する。
次に、合成部860は、逆量子化部850から入力される逆量子化された変換係数データCEに誤差復号部240から入力される誤差データBCCVを合成する(ステップS835)。それにより、誤差の補正された変換係数データR−CEが生成される。そして、合成部860は、変換係数データR−CEを逆DWT部270へ出力する。
次に、逆DWT部270は、合成部860から入力される変換係数データR−CEについて2次元の逆DWTを実行することにより、タイルごとの画像信号であるタイル信号TBBを復元する(ステップS850)。そして、逆DWT部270は、復元したタイル信号TBBをタイル合成部280へ出力する。
その後、未処理の次のタイルが存在する場合には、処理はステップS815へ戻る。全てのタイルについてタイル信号TBBが復元された場合には、処理はステップS865へ進む。
ステップS865において、タイル合成部280は、逆DWT部270から入力される複数のタイルのタイル信号TBBを合成することにより、1つの画像の画像信号BBを復元する(ステップS865)。そして、タイル合成部280は、復元した画像信号BBを逆変換・逆シフト部290へ出力する。なお、1つの画像全体が1つのタイルに相当する場合には、ステップS865の処理はスキップされてよい。
次に、逆変換・逆シフト部290は、タイル合成部280から入力される画像信号BBの信号値を一律的にシフトして画像信号IMGを復元し、(必要に応じて)画像信号IMGの色空間を逆変換する(ステップS870)。そして、逆変換・逆シフト部290は、例えば表示装置又は記憶装置などの、デコーダ800と接続される装置へ、画像信号IMGを出力する。
[5−5.第4の実施形態のまとめ]
ここまで、図18〜図21を用いて、第4の実施形態について説明した。本実施形態によれば、レート制御のための下位ビットの破棄(Truncation)によって生じる誤差と共に変換係数データの量子化(Quantization)によって生じる量子化誤差をも含む誤差データが、変換係数データに加えて符号化される。そして、画像を復号する際に、変換係数データと誤差データとが合成される。従って、変換係数データの量子化及び下位ビットの破棄の双方を原因とするブロック境界の画質の劣化を修復することができる。また、本実施形態においても、ブロック境界の近傍の画素の追加的なフィルタリングが行われないため、ブロック境界の近傍領域において画像がぼけるという副作用を生じさせることなく、画質の劣化を直接的に補償することができる。
ここまで、図18〜図21を用いて、第4の実施形態について説明した。本実施形態によれば、レート制御のための下位ビットの破棄(Truncation)によって生じる誤差と共に変換係数データの量子化(Quantization)によって生じる量子化誤差をも含む誤差データが、変換係数データに加えて符号化される。そして、画像を復号する際に、変換係数データと誤差データとが合成される。従って、変換係数データの量子化及び下位ビットの破棄の双方を原因とするブロック境界の画質の劣化を修復することができる。また、本実施形態においても、ブロック境界の近傍の画素の追加的なフィルタリングが行われないため、ブロック境界の近傍領域において画像がぼけるという副作用を生じさせることなく、画質の劣化を直接的に補償することができる。
なお、第4の実施形態は、上述した第2の実施形態又は第3の実施形態と組合せられてもよい。即ち、画素値の変化が急な領域における変換係数について、誤差データ内の誤差がゼロに置換されてもよい。また、当該領域において、誤差データの符号化が省略されてもよい。それにより、量子化誤差をも含む誤差データの追加的な符号化による符号量の増加を抑制することができる。
<6.総括>
本開示に係る技術の上述した4つの実施形態によれば、ブロック境界の画質の劣化を修復するための改善された仕組みが提供される。即ち、画像の変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データが追加的に符号化され、画像を復号する際に、当該誤差データを用いて画質の劣化が修復される。従って、ブロック境界の近傍領域において画像がぼけるという副作用を生じさせることなく、画質の劣化を補償することができる。
本開示に係る技術の上述した4つの実施形態によれば、ブロック境界の画質の劣化を修復するための改善された仕組みが提供される。即ち、画像の変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データが追加的に符号化され、画像を復号する際に、当該誤差データを用いて画質の劣化が修復される。従って、ブロック境界の近傍領域において画像がぼけるという副作用を生じさせることなく、画質の劣化を補償することができる。
なお、本明細書において説明したエンコーダ及びデコーダによる一連の処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時にRAM(Random Access Memory)に読み込まれ、CPU(Central Processing Unit)などのプロセッサにより実行される。
本開示に係る技術は、画像を符号化し又は復号する様々な製品に応用可能である。限定ではなく一例として、PC(Personal Computer)、スマートフォン、PDA(Personal Digital Assistants)、デジタルカメラ、ゲーム端末、コンテンツレコーダ、コンテンツプレーヤ又はデジタルテレビジョン装置などの製品において、本開示に係る技術が採用されてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
1つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第1の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第2の符号化ストリームを取得するストリーム取得部と、
前記第1の符号化ストリームから前記変換係数データを復号する第1復号部と、
前記第2の符号化ストリームから前記誤差データを復号する第2復号部と、
前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正する合成部と、
を備える画像処理装置。
(2)
前記誤差データは、下位ビットが破棄される前の前記変換係数データと指定されるレートに応じて決定された破棄位置とに基づいて、前記画像の符号化の際に生成される、前記(1)に記載の画像処理装置。
(3)
前記誤差データは、前記変換係数データの量子化前の値と、下位ビットを破棄された後の前記変換係数データから逆量子化される値との差分に基づいて、前記画像の符号化の際に生成され、
前記画像処理装置は、前記第1復号部により復号される前記変換係数データを逆量子化する逆量子化部、をさらに備え、
前記合成部は、逆量子化された前記変換係数データ及び前記誤差データを合成する、
前記(1)に記載の画像処理装置。
(4)
前記合成部は、各ブロックの端部の高周波成分の前記変換係数データについて前記変換係数データ及び前記誤差データを合成する、前記(1)〜(3)のいずれか1項に記載の画像処理装置。
(5)
前記画像処理装置は、前記誤差データに含まれる誤差に対応する前記画像内の位置を特定するパラメータを復号する第3復号部、をさらに備え、
前記合成部は、復号される前記パラメータにより特定される位置の前記変換係数データ及び前記誤差データを合成する、
前記(4)に記載の画像処理装置。
(6)
前記変換係数データは、各ブロックの端部の画素値を対称周期拡張によって拡張して離散ウェーブレット変換を実行することにより、前記画像の符号化の際に生成され、
前記画像処理装置は、前記誤差データとの合成後の前記変換係数データについて逆離散ウェーブレット変換を実行する逆変換部、をさらに備える、
前記(1)〜(5)のいずれか1項に記載の画像処理装置。
(7)
前記合成部は、一部のサブバンドについてのみ前記誤差データを前記変換係数データと合成する、前記(6)に記載の画像処理装置。
(8)
前記画像処理装置は、JPEG2000方式に従って前記画像を復号する装置であり、
前記ブロックは、タイルに相当する、
前記(1)〜(7)のいずれか1項に記載の画像処理装置。
(9)
1つ以上のブロックを含む画像の周波数成分の変換係数データを符号化して、第1の符号化ストリームを生成する第1符号化部と、
前記変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを符号化して、第2の符号化ストリームを生成する第2符号化部と、
前記第2の符号化ストリームを前記第1の符号化ストリームと関連付けて出力するストリーム出力部と、
を備える画像処理装置。
(10)
前記第1符号化部は、指定されるレートに応じて決定される破棄位置に従って、前記変換係数データの下位ビットを破棄し、
前記画像処理装置は、下位ビットが破棄される前の前記変換係数データと前記破棄位置とに基づいて、前記誤差データを生成する生成部、をさらに備える、
前記(9)に記載の画像処理装置。
(11)
前記第1符号化部は、量子化された前記変換係数データを符号化し、
前記画像処理装置は、前記変換係数データの量子化前の値と、前記第1符号化部により下位ビットを破棄された後の前記変換係数データから逆量子化される値との差分に基づいて、前記誤差データを生成する生成部、をさらに備える、
前記(9)に記載の画像処理装置。
(12)
前記生成部は、各ブロックの端部の高周波成分の前記変換係数データについて前記誤差データを生成する、前記(10)又は前記(11)に記載の画像処理装置。
(13)
前記生成部は、相対的に大きい絶対値を有する変換係数に対応する誤差をゼロとする、前記(10)〜(12)のいずれか1項に記載の画像処理装置。
(14)
前記生成部は、相対的に小さい絶対値を有する変換係数に対応する誤差のみを前記誤差データに含め、
前記画像処理装置は、前記誤差データに含まれる誤差に対応する前記画像内の位置を特定するパラメータを符号化する第3符号化部、をさらに備える、
前記(10)〜(12)のいずれか1項に記載の画像処理装置。
(15)
前記生成部は、前記変換係数データを量子化する際に使用された量子化ステップに応じて、各変換係数の絶対値と比較される閾値を決定する、前記(13)又は前記(14)に記載の画像処理装置。
(16)
前記画像処理装置は、各ブロックの端部の画素値を対称周期拡張によって拡張して離散ウェーブレット変換を実行することにより、前記変換係数データを生成する変換部、をさらに備える、前記(9)〜(15)のいずれか1項に記載の画像処理装置。
(17)
前記第2符号化部は、一部のサブバンドについてのみ前記誤差データを符号化する、前記(16)に記載の画像処理装置。
(18)
前記画像処理装置は、JPEG2000方式に従って前記画像を符号化する装置であり、
前記ブロックは、タイルに相当する、
前記(9)〜(17)のいずれか1項に記載の画像処理装置。
(19)
1つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第1の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第2の符号化ストリームを取得することと、
前記第1の符号化ストリームから前記変換係数データを復号することと、
前記第2の符号化ストリームから前記誤差データを復号することと、
前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正することと、
を含む画像処理方法。
(20)
1つ以上のブロックを含む画像の周波数成分の変換係数データを符号化して、第1の符号化ストリームを生成することと、
前記変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを符号化して、第2の符号化ストリームを生成することと、
前記第2の符号化ストリームを前記第1の符号化ストリームと関連付けて出力することと、
を含む画像処理方法。
(21)
画像処理装置を制御するコンピュータを、
1つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第1の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第2の符号化ストリームを取得するストリーム取得部と、
前記第1の符号化ストリームから前記変換係数データを復号する第1復号部と、
前記第2の符号化ストリームから前記誤差データを復号する第2復号部と、
前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正する合成部と、
として機能させるためのプログラム。
(22)
画像処理装置を制御するコンピュータを、
1つ以上のブロックを含む画像の周波数成分の変換係数データを符号化して、第1の符号化ストリームを生成する第1符号化部と、
前記変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを符号化して、第2の符号化ストリームを生成する第2符号化部と、
前記第2の符号化ストリームを前記第1の符号化ストリームと関連付けて出力するストリーム出力部と、
として機能させるためのプログラム。
(1)
1つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第1の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第2の符号化ストリームを取得するストリーム取得部と、
前記第1の符号化ストリームから前記変換係数データを復号する第1復号部と、
前記第2の符号化ストリームから前記誤差データを復号する第2復号部と、
前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正する合成部と、
を備える画像処理装置。
(2)
前記誤差データは、下位ビットが破棄される前の前記変換係数データと指定されるレートに応じて決定された破棄位置とに基づいて、前記画像の符号化の際に生成される、前記(1)に記載の画像処理装置。
(3)
前記誤差データは、前記変換係数データの量子化前の値と、下位ビットを破棄された後の前記変換係数データから逆量子化される値との差分に基づいて、前記画像の符号化の際に生成され、
前記画像処理装置は、前記第1復号部により復号される前記変換係数データを逆量子化する逆量子化部、をさらに備え、
前記合成部は、逆量子化された前記変換係数データ及び前記誤差データを合成する、
前記(1)に記載の画像処理装置。
(4)
前記合成部は、各ブロックの端部の高周波成分の前記変換係数データについて前記変換係数データ及び前記誤差データを合成する、前記(1)〜(3)のいずれか1項に記載の画像処理装置。
(5)
前記画像処理装置は、前記誤差データに含まれる誤差に対応する前記画像内の位置を特定するパラメータを復号する第3復号部、をさらに備え、
前記合成部は、復号される前記パラメータにより特定される位置の前記変換係数データ及び前記誤差データを合成する、
前記(4)に記載の画像処理装置。
(6)
前記変換係数データは、各ブロックの端部の画素値を対称周期拡張によって拡張して離散ウェーブレット変換を実行することにより、前記画像の符号化の際に生成され、
前記画像処理装置は、前記誤差データとの合成後の前記変換係数データについて逆離散ウェーブレット変換を実行する逆変換部、をさらに備える、
前記(1)〜(5)のいずれか1項に記載の画像処理装置。
(7)
前記合成部は、一部のサブバンドについてのみ前記誤差データを前記変換係数データと合成する、前記(6)に記載の画像処理装置。
(8)
前記画像処理装置は、JPEG2000方式に従って前記画像を復号する装置であり、
前記ブロックは、タイルに相当する、
前記(1)〜(7)のいずれか1項に記載の画像処理装置。
(9)
1つ以上のブロックを含む画像の周波数成分の変換係数データを符号化して、第1の符号化ストリームを生成する第1符号化部と、
前記変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを符号化して、第2の符号化ストリームを生成する第2符号化部と、
前記第2の符号化ストリームを前記第1の符号化ストリームと関連付けて出力するストリーム出力部と、
を備える画像処理装置。
(10)
前記第1符号化部は、指定されるレートに応じて決定される破棄位置に従って、前記変換係数データの下位ビットを破棄し、
前記画像処理装置は、下位ビットが破棄される前の前記変換係数データと前記破棄位置とに基づいて、前記誤差データを生成する生成部、をさらに備える、
前記(9)に記載の画像処理装置。
(11)
前記第1符号化部は、量子化された前記変換係数データを符号化し、
前記画像処理装置は、前記変換係数データの量子化前の値と、前記第1符号化部により下位ビットを破棄された後の前記変換係数データから逆量子化される値との差分に基づいて、前記誤差データを生成する生成部、をさらに備える、
前記(9)に記載の画像処理装置。
(12)
前記生成部は、各ブロックの端部の高周波成分の前記変換係数データについて前記誤差データを生成する、前記(10)又は前記(11)に記載の画像処理装置。
(13)
前記生成部は、相対的に大きい絶対値を有する変換係数に対応する誤差をゼロとする、前記(10)〜(12)のいずれか1項に記載の画像処理装置。
(14)
前記生成部は、相対的に小さい絶対値を有する変換係数に対応する誤差のみを前記誤差データに含め、
前記画像処理装置は、前記誤差データに含まれる誤差に対応する前記画像内の位置を特定するパラメータを符号化する第3符号化部、をさらに備える、
前記(10)〜(12)のいずれか1項に記載の画像処理装置。
(15)
前記生成部は、前記変換係数データを量子化する際に使用された量子化ステップに応じて、各変換係数の絶対値と比較される閾値を決定する、前記(13)又は前記(14)に記載の画像処理装置。
(16)
前記画像処理装置は、各ブロックの端部の画素値を対称周期拡張によって拡張して離散ウェーブレット変換を実行することにより、前記変換係数データを生成する変換部、をさらに備える、前記(9)〜(15)のいずれか1項に記載の画像処理装置。
(17)
前記第2符号化部は、一部のサブバンドについてのみ前記誤差データを符号化する、前記(16)に記載の画像処理装置。
(18)
前記画像処理装置は、JPEG2000方式に従って前記画像を符号化する装置であり、
前記ブロックは、タイルに相当する、
前記(9)〜(17)のいずれか1項に記載の画像処理装置。
(19)
1つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第1の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第2の符号化ストリームを取得することと、
前記第1の符号化ストリームから前記変換係数データを復号することと、
前記第2の符号化ストリームから前記誤差データを復号することと、
前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正することと、
を含む画像処理方法。
(20)
1つ以上のブロックを含む画像の周波数成分の変換係数データを符号化して、第1の符号化ストリームを生成することと、
前記変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを符号化して、第2の符号化ストリームを生成することと、
前記第2の符号化ストリームを前記第1の符号化ストリームと関連付けて出力することと、
を含む画像処理方法。
(21)
画像処理装置を制御するコンピュータを、
1つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第1の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第2の符号化ストリームを取得するストリーム取得部と、
前記第1の符号化ストリームから前記変換係数データを復号する第1復号部と、
前記第2の符号化ストリームから前記誤差データを復号する第2復号部と、
前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正する合成部と、
として機能させるためのプログラム。
(22)
画像処理装置を制御するコンピュータを、
1つ以上のブロックを含む画像の周波数成分の変換係数データを符号化して、第1の符号化ストリームを生成する第1符号化部と、
前記変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを符号化して、第2の符号化ストリームを生成する第2符号化部と、
前記第2の符号化ストリームを前記第1の符号化ストリームと関連付けて出力するストリーム出力部と、
として機能させるためのプログラム。
100,300,500,700 画像処理装置(エンコーダ)
130,730 DWT(離散ウェーブレット変換)部
140,740 量子化部
160 符号化・レート制御部(第1符号化部)
170,370,570,770 誤差データ生成部
180,580 誤差符号化部(第2符号化部)
585 フラグ符号化部(第3符号化部)
190,590 ストリーム出力部
200,600,800 画像処理装置(デコーダ)
210,610 ストリーム取得部
220 復号部(第1復号部)
240,645 誤差復号部(第2復号部)
640 フラグ復号部(第3復号部)
250,650,860 合成部
260,850 逆量子化部
270 逆DWT(離散ウェーブレット変換)部
130,730 DWT(離散ウェーブレット変換)部
140,740 量子化部
160 符号化・レート制御部(第1符号化部)
170,370,570,770 誤差データ生成部
180,580 誤差符号化部(第2符号化部)
585 フラグ符号化部(第3符号化部)
190,590 ストリーム出力部
200,600,800 画像処理装置(デコーダ)
210,610 ストリーム取得部
220 復号部(第1復号部)
240,645 誤差復号部(第2復号部)
640 フラグ復号部(第3復号部)
250,650,860 合成部
260,850 逆量子化部
270 逆DWT(離散ウェーブレット変換)部
Claims (19)
- 1つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第1の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第2の符号化ストリームを取得するストリーム取得部と、
前記第1の符号化ストリームから前記変換係数データを復号する第1復号部と、
前記第2の符号化ストリームから前記誤差データを復号する第2復号部と、
前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正する合成部と、
を備える画像処理装置。 - 前記誤差データは、下位ビットが破棄される前の前記変換係数データと指定されるレートに応じて決定された破棄位置とに基づいて、前記画像の符号化の際に生成される、請求項1に記載の画像処理装置。
- 前記誤差データは、前記変換係数データの量子化前の値と、下位ビットを破棄された後の前記変換係数データから逆量子化される値との差分に基づいて、前記画像の符号化の際に生成され、
前記画像処理装置は、前記第1復号部により復号される前記変換係数データを逆量子化する逆量子化部、をさらに備え、
前記合成部は、逆量子化された前記変換係数データ及び前記誤差データを合成する、
請求項1に記載の画像処理装置。 - 前記合成部は、各ブロックの端部の高周波成分の前記変換係数データについて前記変換係数データ及び前記誤差データを合成する、請求項1に記載の画像処理装置。
- 前記画像処理装置は、前記誤差データに含まれる誤差に対応する前記画像内の位置を特定するパラメータを復号する第3復号部、をさらに備え、
前記合成部は、復号される前記パラメータにより特定される位置の前記変換係数データ及び前記誤差データを合成する、
請求項4に記載の画像処理装置。 - 前記変換係数データは、各ブロックの端部の画素値を対称周期拡張によって拡張して離散ウェーブレット変換を実行することにより、前記画像の符号化の際に生成され、
前記画像処理装置は、前記誤差データとの合成後の前記変換係数データについて逆離散ウェーブレット変換を実行する逆変換部、をさらに備える、
請求項1に記載の画像処理装置。 - 前記合成部は、一部のサブバンドについてのみ前記誤差データを前記変換係数データと合成する、請求項6に記載の画像処理装置。
- 前記画像処理装置は、JPEG2000方式に従って前記画像を復号する装置であり、
前記ブロックは、タイルに相当する、
請求項1に記載の画像処理装置。 - 1つ以上のブロックを含む画像の周波数成分の変換係数データを符号化して、第1の符号化ストリームを生成する第1符号化部と、
前記変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを符号化して、第2の符号化ストリームを生成する第2符号化部と、
前記第2の符号化ストリームを前記第1の符号化ストリームと関連付けて出力するストリーム出力部と、
を備える画像処理装置。 - 前記第1符号化部は、指定されるレートに応じて決定される破棄位置に従って、前記変換係数データの下位ビットを破棄し、
前記画像処理装置は、下位ビットが破棄される前の前記変換係数データと前記破棄位置とに基づいて、前記誤差データを生成する生成部、をさらに備える、
請求項9に記載の画像処理装置。 - 前記第1符号化部は、量子化された前記変換係数データを符号化し、
前記画像処理装置は、前記変換係数データの量子化前の値と、前記第1符号化部により下位ビットを破棄された後の前記変換係数データから逆量子化される値との差分に基づいて、前記誤差データを生成する生成部、をさらに備える、
請求項9に記載の画像処理装置。 - 前記生成部は、各ブロックの端部の高周波成分の前記変換係数データについて前記誤差データを生成する、請求項10に記載の画像処理装置。
- 前記生成部は、相対的に大きい絶対値を有する変換係数に対応する誤差をゼロとする、請求項10に記載の画像処理装置。
- 前記生成部は、相対的に小さい絶対値を有する変換係数に対応する誤差のみを前記誤差データに含め、
前記画像処理装置は、前記誤差データに含まれる誤差に対応する前記画像内の位置を特定するパラメータを符号化する第3符号化部、をさらに備える、
請求項10に記載の画像処理装置。 - 前記生成部は、前記変換係数データを量子化する際に使用された量子化ステップに応じて、各変換係数の絶対値と比較される閾値を決定する、請求項13に記載の画像処理装置。
- 前記画像処理装置は、各ブロックの端部の画素値を対称周期拡張によって拡張して離散ウェーブレット変換を実行することにより、前記変換係数データを生成する変換部、をさらに備える、請求項9に記載の画像処理装置。
- 前記第2符号化部は、一部のサブバンドについてのみ前記誤差データを符号化する、請求項16に記載の画像処理装置。
- 前記画像処理装置は、JPEG2000方式に従って前記画像を符号化する装置であり、
前記ブロックは、タイルに相当する、
請求項9に記載の画像処理装置。 - 1つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第1の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第2の符号化ストリームを取得することと、
前記第1の符号化ストリームから前記変換係数データを復号することと、
前記第2の符号化ストリームから前記誤差データを復号することと、
前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正することと、
を含む画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012038344A JP2013175870A (ja) | 2012-02-24 | 2012-02-24 | 画像処理装置及び画像処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012038344A JP2013175870A (ja) | 2012-02-24 | 2012-02-24 | 画像処理装置及び画像処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013175870A true JP2013175870A (ja) | 2013-09-05 |
Family
ID=49268424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012038344A Pending JP2013175870A (ja) | 2012-02-24 | 2012-02-24 | 画像処理装置及び画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013175870A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10356408B2 (en) | 2015-11-27 | 2019-07-16 | Canon Kabushiki Kaisha | Image encoding apparatus and method of controlling the same |
-
2012
- 2012-02-24 JP JP2012038344A patent/JP2013175870A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10356408B2 (en) | 2015-11-27 | 2019-07-16 | Canon Kabushiki Kaisha | Image encoding apparatus and method of controlling the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102287947B1 (ko) | 영상의 ai 부호화 및 ai 복호화 방법, 및 장치 | |
JP5838258B2 (ja) | データをロッシー圧縮符号化する方法および装置、および、データを再構築する対応する方法および装置 | |
KR100664932B1 (ko) | 비디오 코딩 방법 및 장치 | |
JP7225449B2 (ja) | 逆変換シフトメモリにより削減されたダイナミックレンジ変換を行う動画像を復号する方法 | |
US9860566B2 (en) | Image decoding apparatus and image decoding method | |
JP2009302638A (ja) | 情報処理装置および方法 | |
JP6566865B2 (ja) | 動画像復号装置、動画像復号方法、動画像符号化装置、動画像符号化方法及びコンピュータ可読記録媒体 | |
JP6857973B2 (ja) | 画像符号化装置及びその制御方法 | |
JP2004336162A (ja) | 符号化データ生成装置及び方法、プログラム並びに情報記録媒体 | |
KR100643269B1 (ko) | Roi를 지원하는 영상 코딩 방법 및 장치 | |
JP2012124837A (ja) | 画像復号化装置および方法、画像符号化装置および方法、並びにプログラム | |
JP5817125B2 (ja) | 画像処理装置および方法 | |
JP2004040429A (ja) | ディジタル画像符号化装置及びそれに用いるディジタル画像符号化方法並びにそのプログラム | |
JP2013187692A (ja) | 画像処理装置及び画像処理方法 | |
JP2008271039A (ja) | 画像符号化装置及び画像復号化装置 | |
JP2004048607A (ja) | ディジタル画像符号化装置およびディジタル画像符号化方法 | |
JP2006246351A (ja) | 画像符号化装置および画像復号化装置 | |
JP2013175870A (ja) | 画像処理装置及び画像処理方法 | |
Wu et al. | Comparisons of Threshold EZW and SPIHT Wavelets Based Image Compression Methods | |
JP2018082299A (ja) | 映像符号化装置、映像復号装置、及びプログラム | |
JP6792359B2 (ja) | 画像符号化装置 | |
JP2011239066A (ja) | 画像処理装置および方法 | |
JP2018011188A (ja) | 画像処理装置及び画像処理方法 | |
US20090074059A1 (en) | Encoding method and device for image data | |
Rahman et al. | Efficient Image Compression Technique using JPEG2000 with Adaptive Threshold |