(57)【要約】【課題】ブロック境界の画質の劣化を修復するための改善された仕組みを提供すること。【解決手段】１つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第１の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第２の符号化ストリームを取得するストリーム取得部と、前記第１の符号化ストリームから前記変換係数データを復号する第１復号部と、前記第２の符号化ストリームから前記誤差データを復号する第２復号部と、前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正する合成部と、を備える画像処理装置を提供する。【選択図】図６
2013175870.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第１の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第２の符号化ストリームを取得するストリーム取得部と、
前記第１の符号化ストリームから前記変換係数データを復号する第１復号部と、
前記第２の符号化ストリームから前記誤差データを復号する第２復号部と、
前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正する合成部と、
を備える画像処理装置。
【請求項２】
前記誤差データは、下位ビットが破棄される前の前記変換係数データと指定されるレートに応じて決定された破棄位置とに基づいて、前記画像の符号化の際に生成される、請求項１に記載の画像処理装置。
【請求項３】
前記誤差データは、前記変換係数データの量子化前の値と、下位ビットを破棄された後の前記変換係数データから逆量子化される値との差分に基づいて、前記画像の符号化の際に生成され、
前記画像処理装置は、前記第１復号部により復号される前記変換係数データを逆量子化する逆量子化部、をさらに備え、
前記合成部は、逆量子化された前記変換係数データ及び前記誤差データを合成する、
請求項１に記載の画像処理装置。
【請求項４】
前記合成部は、各ブロックの端部の高周波成分の前記変換係数データについて前記変換係数データ及び前記誤差データを合成する、請求項１に記載の画像処理装置。
【請求項５】
前記画像処理装置は、前記誤差データに含まれる誤差に対応する前記画像内の位置を特定するパラメータを復号する第３復号部、をさらに備え、
前記合成部は、復号される前記パラメータにより特定される位置の前記変換係数データ及び前記誤差データを合成する、
請求項４に記載の画像処理装置。
【請求項６】
前記変換係数データは、各ブロックの端部の画素値を対称周期拡張によって拡張して離散ウェーブレット変換を実行することにより、前記画像の符号化の際に生成され、
前記画像処理装置は、前記誤差データとの合成後の前記変換係数データについて逆離散ウェーブレット変換を実行する逆変換部、をさらに備える、
請求項１に記載の画像処理装置。
【請求項７】
前記合成部は、一部のサブバンドについてのみ前記誤差データを前記変換係数データと合成する、請求項６に記載の画像処理装置。
【請求項８】
前記画像処理装置は、ＪＰＥＧ２０００方式に従って前記画像を復号する装置であり、
前記ブロックは、タイルに相当する、
請求項１に記載の画像処理装置。
【請求項９】
１つ以上のブロックを含む画像の周波数成分の変換係数データを符号化して、第１の符号化ストリームを生成する第１符号化部と、
前記変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを符号化して、第２の符号化ストリームを生成する第２符号化部と、
前記第２の符号化ストリームを前記第１の符号化ストリームと関連付けて出力するストリーム出力部と、
を備える画像処理装置。
【請求項１０】
前記第１符号化部は、指定されるレートに応じて決定される破棄位置に従って、前記変換係数データの下位ビットを破棄し、
前記画像処理装置は、下位ビットが破棄される前の前記変換係数データと前記破棄位置とに基づいて、前記誤差データを生成する生成部、をさらに備える、
請求項９に記載の画像処理装置。
【請求項１１】
前記第１符号化部は、量子化された前記変換係数データを符号化し、
前記画像処理装置は、前記変換係数データの量子化前の値と、前記第１符号化部により下位ビットを破棄された後の前記変換係数データから逆量子化される値との差分に基づいて、前記誤差データを生成する生成部、をさらに備える、
請求項９に記載の画像処理装置。
【請求項１２】
前記生成部は、各ブロックの端部の高周波成分の前記変換係数データについて前記誤差データを生成する、請求項１０に記載の画像処理装置。
【請求項１３】
前記生成部は、相対的に大きい絶対値を有する変換係数に対応する誤差をゼロとする、請求項１０に記載の画像処理装置。
【請求項１４】
前記生成部は、相対的に小さい絶対値を有する変換係数に対応する誤差のみを前記誤差データに含め、
前記画像処理装置は、前記誤差データに含まれる誤差に対応する前記画像内の位置を特定するパラメータを符号化する第３符号化部、をさらに備える、
請求項１０に記載の画像処理装置。
【請求項１５】
前記生成部は、前記変換係数データを量子化する際に使用された量子化ステップに応じて、各変換係数の絶対値と比較される閾値を決定する、請求項１３に記載の画像処理装置。
【請求項１６】
前記画像処理装置は、各ブロックの端部の画素値を対称周期拡張によって拡張して離散ウェーブレット変換を実行することにより、前記変換係数データを生成する変換部、をさらに備える、請求項９に記載の画像処理装置。
【請求項１７】
前記第２符号化部は、一部のサブバンドについてのみ前記誤差データを符号化する、請求項１６に記載の画像処理装置。
【請求項１８】
前記画像処理装置は、ＪＰＥＧ２０００方式に従って前記画像を符号化する装置であり、
前記ブロックは、タイルに相当する、
請求項９に記載の画像処理装置。
【請求項１９】
１つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第１の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第２の符号化ストリームを取得することと、
前記第１の符号化ストリームから前記変換係数データを復号することと、
前記第２の符号化ストリームから前記誤差データを復号することと、
前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正することと、
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
近年実用されている多くの画像符号化方式は、デジタル画像信号を空間ドメインの信号から周波数ドメインの信号へ変換し、周波数ドメインでデータを量子化して符号化することにより、画像のデータサイズを圧縮する。例えば、ＪＰＥＧ（Joint  Photographic  Experts  Group）方式では、離散コサイン変換（ＤＣＴ：Discrete  Cosine  Transform）が信号の変換のために使用される。一方、ＪＰＥＧ２０００方式では、離散ウェーブレット変換（ＤＷＴ：Discrete  Wavelet  Transform）が信号の変換のために使用される。
【０００３】
これら変換は、一般的に、画像内に設定されるブロック単位で行われる。ＤＣＴでは、様々な周波数の定常波（余弦波）がブロック単位で使用されるのに対して、ＤＷＴでは、空間的な局在性を有する孤立波がブロック内で使用される。そのため、ＤＷＴベースの画像符号化方式は、ＤＣＴベースの画像符号化方式と比較して、例えば、色又は輝度が空間的に緩やかに変化するようなグラデーション領域において画質の劣化が少ないという利点を有する。
【０００４】
しかし、ブロックの端部では、ＤＷＴの演算式に代入されるフィルタタップが不足する。そこで、通常、対称周期拡張（symmetric  extension）によって、不足するフィルタタップが補われる。しかし、対称周期拡張に起因してブロックの端部に高周波成分の変換係数が発生すると、この高周波成分の変換係数のビットの一部又は全部がレート制御又は量子化を通じて失われることにより、ブロック境界に沿って歪みが発生し得る。
【０００５】
下記特許文献１及び２は、ＤＷＴベースの画像符号化方式において、復号される画像のブロック境界の近傍の画素をフィルタリングすることにより、ブロック境界に発生した画質の劣化を修復する手法を開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１１２００４号公報
【特許文献２】特開２００１−２５７５９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ブロック境界の近傍の画素をフィルタリングする手法は、ブロック境界の近傍領域において画像が不自然にぼけるという副作用をもたらす。従って、ブロック境界の画質の劣化を修復するための改善された仕組みが提供されることが望ましい。
【課題を解決するための手段】
【０００８】
本開示によれば、１つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第１の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第２の符号化ストリームを取得するストリーム取得部と、前記第１の符号化ストリームから前記変換係数データを復号する第１復号部と、前記第２の符号化ストリームから前記誤差データを復号する第２復号部と、前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正する合成部と、を備える画像処理装置が提供される。
【０００９】
また、本開示によれば、１つ以上のブロックを含む画像の周波数成分の変換係数データを符号化して、第１の符号化ストリームを生成する第１符号化部と、前記変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを符号化して、第２の符号化ストリームを生成する第２符号化部と、前記第２の符号化ストリームを前記第１の符号化ストリームと関連付けて出力するストリーム出力部と、を備える画像処理装置が提供される。
【００１０】
また、本開示によれば、１つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第１の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第２の符号化ストリームを取得することと、前記第１の符号化ストリームから前記変換係数データを復号することと、前記第２の符号化ストリームから前記誤差データを復号することと、前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正することと、を含む画像処理方法が提供される。
【発明の効果】
【００１１】
本開示に係る技術によれば、ブロック境界の近傍領域において画像をぼけさせることなく、ブロック境界の画質の劣化を修復することができる。
【図面の簡単な説明】
【００１２】
【図１】ブロック端における対称周期拡張について説明するための説明図である。
【図２】対称周期拡張に起因する高周波成分の変換係数について説明するための説明図である。
【図３】第１の実施形態に係るエンコーダの構成の一例を示すブロック図である。
【図４】２次元ＤＷＴについて説明するための説明図である。
【図５】誤差データ生成処理の対象となる変換係数について説明するための説明図である。
【図６】第１の実施形態に係るデコーダの構成の一例を示すブロック図である。
【図７】第１の実施形態に係る符号化処理の流れの一例を示すフローチャートである。
【図８】第１の実施形態に係る誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
【図９】第１の実施形態に係る復号処理の流れの一例を示すフローチャートである。
【図１０】第２の実施形態に係るエンコーダの構成の一例を示すブロック図である。
【図１１】第２の実施形態に係る振幅判定処理の詳細な流れの一例を示すフローチャートである。
【図１２】第２の実施形態に係る誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
【図１３】第３の実施形態に係るエンコーダの構成の一例を示すブロック図である。
【図１４】第３の実施形態に係るデコーダの構成の一例を示すブロック図である。
【図１５】第３の実施形態に係る符号化処理の流れの一例を示すフローチャートである。
【図１６】第３の実施形態に係る誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
【図１７】第３の実施形態に係る復号処理の流れの一例を示すフローチャートである。
【図１８】第４の実施形態に係るエンコーダの構成の一例を示すブロック図である。
【図１９】第４の実施形態に係るデコーダの構成の一例を示すブロック図である。
【図２０】第４の実施形態に係る誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
【図２１】第４の実施形態に係る復号処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１４】
また、以下の順序で説明を行う。
１．課題の説明
２．第１の実施形態
２−１．エンコーダの構成例
２−２．デコーダの構成例
２−３．符号化処理の流れ
２−４．復号処理の流れ
２−５．第１の実施形態のまとめ
３．第２の実施形態
３−１．エンコーダの構成例
３−２．符号化処理の流れ
３−３．第２の実施形態のまとめ
４．第３の実施形態
４−１．エンコーダの構成例
４−２．デコーダの構成例
４−３．符号化処理の流れ
４−４．復号処理の流れ
４−５．第３の実施形態のまとめ
５．第４の実施形態
５−１．エンコーダの構成例
５−２．デコーダの構成例
５−３．符号化処理の流れ
５−４．復号処理の流れ
５−５．第４の実施形態のまとめ
６．総括
【００１５】
＜１．課題の説明＞
まず、図１及び図２を用いて、本開示に係る技術に関連する課題について述べる。
【００１６】
図１は、ブロック端における対称周期拡張について説明するための説明図である。図１において、横軸は１次元化された画像信号の信号位置に対応し、縦軸は各信号位置における画素値に対応する。図中の実線の丸印は実際の画素値であり、破線の丸印は対称周期拡張によって補われる画素値である。図１の例において、信号位置ゼロから信号位置Ｎ−１までの画素は、ブロックＢ０に含まれる。ＪＰＥＧ２０００方式で画像が符号化される場合には、このようなブロックはタイルと呼ばれ、タイルを処理単位として離散ウェーブレット変換（ＤＷＴ）が実行される。ＪＰＥＧ２０００方式のタイルのサイズは、可変である。画像全体に１つのタイルが設定されてもよく、その場合にはタイル端は画像の端部に等しい。
【００１７】
ＪＰＥＧ２０００方式を例にとると、ＤＷＴは、実質的には、各画素の周辺画素を含むフィルタタップを入力値とするフィルタ演算によって実現される。しかし、ブロックの端部では、フィルタ演算に入力すべきフィルタタップが不足する。そのため、対称周期拡張によって、不足する画素値が補われる。図１の例では、ブロック境界ＢＢ１の近傍で、画素Ｐａ、Ｐｂ及びＰｃはブロックＢ０に含まれるものの、画素Ｐｄ及びＰｅはブロックＢ０に含まれない。従って、信号位置Ｎ−１におけるＤＷＴのフィルタ演算のために、信号位置Ｎに画素Ｐｂ´、信号位置Ｎ＋１に画素Ｐａ´がそれぞれ複製され、画素Ｐａ、Ｐｂ、Ｐｃ、Ｐｂ´及びＰａ´の画素値がフィルタ演算において使用される。
【００１８】
なお、本明細書では、主にＪＰＥＧ２０００方式を例にとって説明する。しかしながら、本開示に係る技術は、ＪＰＥＧ２０００方式に限定されず、ＤＷＴベースの対称周期拡張を伴う様々な画像符号化方式に広く適用可能である。
【００１９】
図２は、対称周期拡張に起因する高周波成分の変換係数について説明するための説明図である。図２では、ケース１及びケース２という２つのケースが対比される。
【００２０】
ケース１では、信号位置Ｎ−１にブロック境界が位置しておらず、信号位置Ｎ−３からＮ＋１にかけて、画素値は緩やかに変化する。この場合、ＤＷＴの結果として得られる高周波成分の変換係数は、信号位置Ｎ−１の近傍では有意な値を示さない。
【００２１】
一方、ケース２では、信号位置Ｎ−１にブロック境界が位置しており、対称周期拡張に起因して画素値は信号位置Ｎ−１を頂点として急に変化する。この場合、ＤＷＴの結果として得られる高周波成分の変換係数は、信号位置Ｎ−１において有意な値を示す。図２の例では、信号位置Ｎ−１において高周波成分の変換係数が２を示している（図中下部の表における信号位置Ｎ−１の係数（Ｈ）を参照）。
【００２２】
このような変換係数のビットの一部又は全部が例えばレート制御のために破棄（truncate）され、又は量子化を通じて失われると、復号後の画像においてブロック境界を挟んで画素値が不連続となり、いわゆるブロック歪み（タイル歪み）が現れる。特に、画素値が緩やかに変化している領域にブロック境界が位置している場合には、ブロック歪みがユーザに感知され易い。
【００２３】
従来の手法では、ブロック境界の近傍領域においてブロック歪みが現れる場合に、デコーダ側でブロック境界の近傍の画素をフィルタリングすることにより、画質の劣化の修復が試みられる。しかし、そのような手法は、ブロック境界の近傍領域において画像が不自然にぼけるという副作用を伴う。本開示に係る技術は、こうした副作用を伴うことなく、ブロック境界の画質の劣化を修復することを可能とする。そのような技術の４つの実施形態について、次節より詳細に説明する。
【００２４】
＜２．第１の実施形態＞
［２−１．エンコーダの構成例］
図３は、第１の実施形態に係るエンコーダ１００の構成の一例を示すブロック図である。図３を参照すると、エンコーダ１００は、変換・シフト部１１０、タイル分割部１２０、ＤＷＴ部１３０、量子化部１４０、ビットモデリング部１５０、符号化・レート制御部１６０、誤差データ生成部１７０、誤差符号化部１８０及びストリーム出力部１９０を備える。
【００２５】
（１）変換・シフト部
変換・シフト部１１０には、入力画像の画像信号ＩＭＧが入力される。変換・シフト部１１０は、エンコーダ１００によりサポートされる色空間と画像信号ＩＭＧの色空間とが異なる場合に、画像信号ＩＭＧの色空間をエンコーダ１００によりサポートされる色空間に変換する。また、変換・シフト部１１０は、画像信号ＩＭＧの信号値の定義域の中央値がゼロに一致するように、画像信号ＩＭＧの信号レベルを一律的にシフトする。例えば、シフト前の信号値の定義域が０〜２５５である場合には、信号値は、一律的に１２８だけ減算され得る。そして、変換・シフト部１１０は、変換及びシフト後の画像信号ＢＢをタイル分割部１２０へ出力する。
【００２６】
（２）タイル分割部
タイル分割部１２０は、入力画像内に１つ以上のタイルを設定する。タイルのサイズは、典型的には、一辺の長さが２のべき乗の画素数に等しい複数のサイズの候補から選択され得る。入力画像の全体に１つのタイルが設定されてもよい。タイル分割部１２０は、タイルの設定に従って、画像信号ＢＢをタイルごとの画像信号であるタイル信号ＴＢＢに分割し、タイル信号ＴＢＢをＤＷＴ部１３０へ順次出力する。
【００２７】
（３）離散ウェーブレット変換（ＤＷＴ）部
ＤＷＴ部１３０は、タイル分割部１２０からタイルごとに入力されるタイル信号ＴＢＢについて２次元のＤＷＴを実行することにより、タイルごとの変換係数データを生成する。ここでのＤＷＴは、例えば、整数型５×３ＤＷＴであってもよく、又は実数型９×７ＤＷＴであってもよい。一例として、ＪＰＥＧ２０００方式における整数型５×３ＤＷＴの演算式を式（１）及び式（２）に示す。
【００２８】
【数１】
2013175870.tif 000003
【００２９】
なお、式（１）はローパスフィルタのフィルタ演算、式（２）はハイパスフィルタのフィルタ演算にそれぞれ相当する。これら演算式において、ｎは水平方向又は垂直方向の信号位置、Ｘ（ｎ）は信号位置ｎにおける画素値、Ｙ（ｎ）は信号位置ｎにおける変換係数、をそれぞれ表す。ｆｌｏｏｒ（ｘ）は、ｘの小数部を丸める関数である。式（１）及び式（２）に従ってローパスフィルタ及びハイパスフィルタのフィルタ演算が信号位置ごとに交互に実行されることにより、タイル信号ＴＢＢは２つのサブバンド信号に分解される。
【００３０】
このようにＤＷＴを実行する際、タイル端では式（１）又は式（２）に代入されるフィルタタップが不足する。そこで、ＤＷＴ部１３０は、各タイルの端部の画素値を図１を用いて説明した対称周期拡張によって拡張した上でフィルタ演算を実行する。
【００３１】
図４は、２次元ＤＷＴについて説明するための説明図である。図４の左上には、１つのタイルについてのタイル信号ＴＢＢが示されている。ＤＷＴ部１３０は、まず、タイル信号ＴＢＢを水平方向に走査し、信号位置ごとにローパスフィルタ及びハイパスフィルタを交互に適用する。ＤＷＴ部１３０は、ローパスフィルタの出力信号（１Ｌ）及びハイパスフィルタの出力信号（１Ｈ）を図４の中央上のように並び替える。このような処理を垂直方向についても実行すると、図４の右上のように、４つのサブバンド信号（１ＬＬ、１ＨＬ、１ＬＨ、１ＨＨ）が得られる。これが１回の２次元ＤＷＴの結果である。ＤＷＴ部１３０は、さらに、低周波成分のサブバンド信号（１ＬＬ）を対象として、２次元ＤＷＴを実行し得る。その結果、図４の右下のように、７つのサブバンド信号（２ＬＬ、２ＨＬ、２ＬＨ、２ＨＨ、１ＨＬ、１ＬＨ、１ＨＨ）が得られる。ＤＷＴ部１３０は、このように２次元ＤＷＴ（低周波及び高周波のサブバンドへの信号の分解）を所定の回数だけ繰り返して実行し、複数の周波数成分（即ち、サブバンド）の変換係数を含む変換係数データＣＥを生成する。このような階層的なサブバンドの分解によって、プログレッシブな画像の復号が可能となる。なお、サブバンドの分解は、いかなる回数だけ繰り返されてもよい。
【００３２】
ＤＷＴ部１３０は、このように２次元のＤＷＴを実行することにより生成されるタイルごとの変換係数データＣＥを、量子化部１４０へ出力する。
【００３３】
（４）量子化部
量子化部１４０は、ＤＷＴ部１３０から入力される変換係数データＣＥを量子化することにより、量子化された変換係数データＱＣＥを生成する。ＪＰＥＧ２０００方式では、スカラ量子化が採用され、サブバンドごとに動的に量子化ステップが決定され得る。量子化部１４０は、量子化された変換係数データＱＣＥをビットモデリング部１５０及び誤差データ生成部１７０へ出力する。なお、量子化部１４０による量子化処理は、省略されてもよい。
【００３４】
（５）ビットモデリング部
ビットモデリング部１５０は、エントロピー符号化の一種であるＥＢＣＯＴ（Embedded  Block  Coding  with  Optimized  Truncation）を実現するためのビットモデリングを行う。ビットモデリング部１５０は、コードブロックごとに、量子化部１４０から入力される変換係数データＱＣＥから、３つの符号化パス（サブビットプレーン）を含むビット列ＢＩＮを生成する。そして、ビットモデリング部１５０は、生成したビット列ＢＩＮを符号化・レート制御部１６０へ出力する。
【００３５】
（６）符号化・レート制御部
符号化・レート制御部１６０は、指定される符号化レート（あるいは圧縮率）を達成するために、ビットの破棄位置（ＴＰ：Truncation  Point）をコードブロックごとに決定し、破棄位置以下の下位ビットに相当する変換係数データＱＣＥのビットプレーンを破棄する。また、符号化・レート制御部１６０は、残されるビットプレーンを含む変換係数データのビット列ＢＩＮを算術符号化器の一種であるＭＱ−Ｃｏｄｅｒによって符号化して、第１の符号化ストリームＢＳを生成する。そして、符号化・レート制御部１６０は、生成した第１の符号化ストリームＢＳを、ストリーム出力部１９０へ出力する。また、符号化・レート制御部１６０は、コードブロックごとに決定される破棄位置ＴＰを、誤差データ生成部１７０へ出力する。なお、ここでの説明に限定されず、破棄位置ＴＰは、コードブロック以外の単位（例えば、個々の変換係数、サブバンド又はタイルなどの単位）で決定されてもよい。
【００３６】
（７）誤差データ生成部
誤差データ生成部１７０は、変換係数データＱＣＥの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを生成する。より具体的には、本実施形態において、誤差データ生成部１７０は、符号化・レート制御部１６０から、コードブロックごとの破棄位置ＴＰを取得する。次に、誤差データ生成部１７０は、量子化部１４０から入力される変換係数データＱＣＥのうちタイル端の高周波成分の変換係数を対象とし、破棄位置ＴＰに基づいて、符号化・レート制御部１６０において破棄される下位ビットを特定する。そして、誤差データ生成部１７０は、対象の変換係数の各々について、特定した下位ビットにより示される誤差を算出し、当該誤差を含む誤差データＢＣＣＶを生成する。
【００３７】
図５は、誤差データ生成部１７０による誤差データ生成処理の対象となる変換係数について説明するための説明図である。
【００３８】
図５の左には、１回の２次元ＤＷＴによって生成される４つのサブバンド１ＬＬ、１ＨＬ、１ＬＨ及び１ＨＨを含む変換係数データＱＣＥ１が示されている。変換係数データＱＣＥ１のうち、サブバンド１ＨＬ、１ＨＨ及び１ＬＨにわたる端部Ｅ１に位置する変換係数は、タイル端の高周波成分の変換係数である。ＤＷＴ部１３０における２次元ＤＷＴの回数が１回の場合、誤差データ生成部１７０は、このような端部Ｅ１に位置する変換係数を所定の順序で走査し、変換係数ごとの誤差を誤差データＢＣＣＶに順に追加する。
【００３９】
図５の中央には、２回の２次元ＤＷＴによって生成される７つのサブバンド２ＬＬ、２ＨＬ、２ＬＨ、２ＨＨ、１ＨＬ、１ＬＨ及び１ＨＨを含む変換係数データＱＣＥ２が示されている。変換係数データＱＣＥ２のうち、サブバンド１ＨＬ、１ＨＨ及び１ＬＨにわたる端部Ｅ１、並びにサブバンド２ＨＬ、２ＨＨ及び２ＬＨにわたる端部Ｅ２に位置する変換係数は、タイル端の高周波成分の変換係数である。ＤＷＴ部１３０における２次元ＤＷＴの回数が２回の場合、誤差データ生成部１７０は、このような端部Ｅ１及びＥ２に位置する変換係数を所定の順序で走査し、変換係数ごとの誤差を誤差データＢＣＣＶに順に追加する。
【００４０】
図５の右には、３回の２次元ＤＷＴによって生成される１０個のサブバンド３ＬＬ、３ＨＬ、３ＬＨ、３ＨＨ、２ＨＬ、２ＬＨ、２ＨＨ、１ＨＬ、１ＬＨ及び１ＨＨを含む変換係数データＱＣＥ３が示されている。変換係数データＱＣＥ３のうち、サブバンド１ＨＬ、１ＨＨ及び１ＬＨにわたる端部Ｅ１、サブバンド２ＨＬ、２ＨＨ及び２ＬＨにわたる端部Ｅ２並びにサブバンド３ＨＬ、３ＨＨ及び３ＬＨにわたる端部Ｅ３に位置する変換係数は、タイル端の高周波成分の変換係数である。ＤＷＴ部１３０における２次元ＤＷＴの回数が３回の場合、誤差データ生成部１７０は、このような端部Ｅ１、Ｅ２及びＥ３に位置する変換係数を所定の順序で走査し、変換係数ごとの誤差を誤差データＢＣＣＶに順に追加する。
【００４１】
誤差データ生成部１７０による変換係数の走査順は、例えば、低周波成分から高周波成分へ、という順序であってよい。それにより、プログレッシブな画像の復号に際して、低解像度画像のみを復号しようとするデコーダが迅速に低周波成分の誤差データを取得することが可能となる。
【００４２】
誤差データ生成部１７０は、このように生成される誤差データＢＣＣＶを、誤差符号化部１８０へ出力する。
【００４３】
（８）誤差符号化部
誤差符号化部１８０は、誤差データ生成部１７０から入力される誤差データＢＣＣＶを符号化して、第２の符号化ストリームＢＣＢＳを生成する。誤差符号化部１８０による誤差データＢＣＣＶの符号化は、例えば、ハフマン符号化又はビットモデリング及び算術符号化など、任意の手法に従って行われてよい。また、ロスレス（Lossless）符号化及びロッシー（Lossy）符号化のいずれが採用されてもよい。誤差符号化部１８０は、生成した第２の符号化ストリームＢＣＢＳを、ストリーム出力部１９０へ出力する。
【００４４】
なお、誤差符号化部１８０は、一部のサブバンドについてのみ誤差データを符号化してもよい。例えば、誤差符号化部１８０は、より画質の劣化が現れ易い低域のサブバンド１ＨＬ、１ＬＨ及び１ＨＨについての誤差データのみを符号化してもよい。それにより、デコーダにおける画質の劣化の修復をある程度まで可能とさせながら、誤差データの符号量を低減することができる。
【００４５】
（９）ストリーム出力部
ストリーム出力部１９０は、誤差符号化部１８０から入力される第２の符号化ストリームＢＣＢＳを、符号化・レート制御部１６０から入力される第１の符号化ストリームＢＳと関連付けて、これら２つの符号化ストリームを出力する。ストリーム出力部１９０は、例えば、第２の符号化ストリームＢＣＢＳにアクセスするための参照用パラメータを生成し、生成した参照用パラメータを第１の符号化ストリームＢＳのヘッダ領域に挿入してもよい。
【００４６】
例えば、第１及び第２の符号化ストリームＢＳ、ＢＣＢＳが１つの多重化ストリームＰＢＳ内に多重化される（パッキングされる）場合には、参照用パラメータは、第２の符号化ストリームＢＣＢＳのストリーム識別子、開始アドレス、又は第１の符号化ストリームＢＳに続くストリームが第２の符号化ストリームＢＣＢＳであることを示すフラグなどであってよい。また、例えば、第１及び第２の符号化ストリームＢＳ、ＢＣＢＳが別のファイル内に格納される場合には、参照用パラメータは、第２の符号化ストリームＢＣＢＳが格納されるファイルのファイル名などであってよい。このような参照用パラメータが挿入されるヘッダ領域は、第１の符号化ストリームが格納されるファイル内に存在してもよく、又は第１の符号化ストリームが格納されるファイルとは別のファイル（例えば、ヘッダファイル）内に存在してもよい。
【００４７】
ストリーム出力部１９０により出力される第１及び第２の符号化ストリームＢＳ、ＢＣＢＳは、エンコーダ１００に接続される記憶媒体により記憶されてもよい。その代わりに、第１及び第２の符号化ストリームＢＳ、ＢＣＢＳは、エンコーダ１００から他の装置へ送信され、他の装置において記憶又は復号されてもよい。
【００４８】
［２−２．デコーダの構成例］
図６は、第１の実施形態に係るデコーダ２００の構成の一例を示すブロック図である。図６を参照すると、デコーダ２００は、ストリーム取得部２１０、復号部２２０、ビットデモデリング部２３０、誤差復号部２４０、合成部２５０、逆量子化部２６０、逆ＤＷＴ部２７０、タイル合成部２８０及び逆変換・逆シフト部２９０を備える。
【００４９】
（１）ストリーム取得部
ストリーム取得部２１０は、デコーダ２００による復号処理の入力となる符号化ストリームを取得する。ストリーム取得部２１０により取得される符号化ストリーム（例えば、多重化ストリームＰＢＳ）は、復号すべき画像の周波数成分の変換係数データが符号化された第１の符号化ストリームＢＳ、及び変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第２の符号化ストリームＢＣＢＳを含み得る。例えば、ストリーム取得部２１０は、第１の符号化ストリームＢＳを取得し、第１の符号化ストリームＢＳのヘッダ領域に第２の符号化ストリームＢＣＢＳにアクセスするための参照用パラメータが挿入されている場合に、当該参照用パラメータを用いて第２の符号化ストリームＢＣＢＳをさらに取得する。そして、ストリーム取得部２１０は、取得した第１の符号化ストリームＢＳを復号部２２０へ出力する。また、ストリーム取得部２１０は、取得した第２の符号化ストリームＢＣＢＳを誤差復号部２４０へ出力する。
【００５０】
（２）復号部
復号部２２０は、ストリーム取得部２１０から入力される第１の符号化ストリームＢＳから、変換係数データのビット列ＢＩＮを復号する。より具体的には、本実施形態において、復号部２２０は、第１の符号化ストリームＢＳから、コードブロックごとの３つの符号化パスのビット列ＢＩＮをＭＱ−Ｄｅｏｄｅｒによって復号する。そして、復号部２２０は、復号されたビット列ＢＩＮをビットデモデリング部２３０へ出力する。
【００５１】
（３）ビットデモデリング部
ビットデモデリング部２３０は、復号部２２０から入力されるビット列ＢＩＮを並び替え直すことにより、エンコーダ１００において量子化された変換係数データＱＣＥを復元する。但し、ビットデモデリング部２３０により復元される変換係数データＱＣＥは、符号化前の変換係数データＱＣＥと比較して、エンコーダ１００においてレート制御のために破棄された下位ビットに相当する分の誤差を有する。ビットデモデリング部２３０は、復元した変換係数データＱＣＥを合成部２５０へ出力する。
【００５２】
（４）誤差復号部
誤差復号部２４０は、ストリーム取得部２１０から入力される第２の符号化ストリームＢＣＢＳから、誤差データＢＣＣＶを復号する。誤差データＢＣＣＶは、上述したように、エンコーダ１００において、下位ビットが破棄される前の変換係数データＱＣＥと指定されるレートに応じて決定された破棄位置ＴＰとに基づいて生成されたデータである。誤差復号部２４０は、例えば、ハフマン復号又は算術復号及びビットデモデリングなどの任意の手法に従って、誤差データＢＣＣＶを復号してよい。そして、誤差復号部２４０は、復号した誤差データＢＣＣＶを合成部２５０へ出力する。
【００５３】
（５）合成部
合成部２５０は、ビットデモデリング部２３０から入力される変換係数データＱＣＥ及び誤差復号部２４０から入力される誤差データＢＣＣＶを合成することにより、変換係数データＱＣＥの誤差を補正する。より具体的には、本実施形態において、合成部２５０は、図５に例示したようなタイルの端部の高周波成分の変換係数の各々について、変換係数データＱＣＥにより示される値と誤差データＢＣＣＶにより示される値とを加算する。それにより、誤差の補正された変換係数データＲ−ＱＣＥが生成される。そして、合成部２５０は、生成した変換係数データＲ−ＱＣＥを逆量子化部２６０へ出力する。なお、合成部２５０は、一部のサブバンド（例えば、より画質の劣化が現れ易い低域のサブバンド）についてのみ誤差データを変換係数データと合成してもよい。
【００５４】
（６）逆量子化部
逆量子化部２６０は、合成部２５０から入力される変換係数データＲ−ＱＣＥを、エンコーダ１００における量子化処理において使用されたものと同等の量子化ステップで逆量子化することにより、量子化前の変換係数データＣＥを復元する。そして、逆量子化部２６０は、復元した変換係数データＣＥを逆ＤＷＴ部２７０へ出力する。なお、逆量子化部２６０による逆量子化処理は、省略されてもよい。
【００５５】
（７）逆ＤＷＴ部
逆ＤＷＴ部２７０は、逆量子化部２６０から入力される変換係数データＣＥ、即ち少なくとも誤差データＢＣＣＶとの合成後の変換係数データについて２次元の逆ＤＷＴを実行することにより、タイルごとの画像信号であるタイル信号ＴＢＢを復元する。ここでの逆ＤＷＴは、例えば、整数型５×３逆ＤＷＴであってもよく、又は実数型９×７逆ＤＷＴであってもよい。一例として、ＪＰＥＧ２０００方式における整数型５×３逆ＤＷＴの演算式を式（３）及び式（４）に示す。
【００５６】
【数２】
2013175870.tif 000004
【００５７】
逆ＤＷＴ部２７０は、このような２次元の逆ＤＷＴを繰り返すことにより所望のレベルのタイル信号ＴＢＢを復元し、復元したタイル信号ＴＢＢをタイル合成部２８０へ順次出力する。
【００５８】
（８）タイル合成部
タイル合成部２８０は、逆ＤＷＴ部２７０から入力されるタイル信号ＴＢＢを、タイル位置及びタイルサイズに応じて画像内に順次配置し、１つの画像の画像信号ＢＢを復元する。そして、タイル合成部２８０は、復元した画像信号ＢＢを逆変換・逆シフト部２９０へ出力する。
【００５９】
（９）逆変換・逆シフト部
逆変換・逆シフト部２９０は、タイル合成部２８０から入力される画像信号ＢＢの信号値を一律的にシフトし、画像信号ＩＭＧを復元する。また、逆変換・逆シフト部２９０は、画像信号ＩＭＧの色空間を逆変換する。逆変換・逆シフト部２９０により復元された画像信号ＩＭＧは、例えば、表示装置（図示せず）へ出力されてもよく、又は記憶媒体により記憶されてもよい。
【００６０】
［２−３．符号化処理の流れ］
（１）全体的な処理
図７は、第１の実施形態に係るエンコーダ１００による符号化処理の流れの一例を示すフローチャートである。
【００６１】
図７を参照すると、まず、変換・シフト部１１０は、入力画像信号ＩＭＧの色空間をエンコーダ１００によりサポートされる色空間に変換し、信号レベルをシフトする（ステップＳ１１０）。そして、変換・シフト部１１０は、変換及びシフト後の画像信号ＢＢをタイル分割部１２０へ出力する。
【００６２】
次に、タイル分割部１２０は、入力画像内に１つ以上のタイルを設定し、画像信号ＢＢをタイル信号ＴＢＢに分割する（ステップＳ１１５）。そして、タイル分割部１２０は、タイル信号ＴＢＢをＤＷＴ部１３０へ出力する。その後のステップＳ１２０からステップＳ１８０までの処理は、入力画像内のタイルの各々について繰り返される。
【００６３】
ＤＷＴ部１３０は、タイル分割部１２０から入力されるタイル信号ＴＢＢについて２次元のＤＷＴを実行することにより、変換係数データＣＥを生成する（ステップＳ１２０）。そして、ＤＷＴ部１３０は、生成した変換係数データＣＥを量子化部１４０へ出力する。
【００６４】
次に、量子化部１４０は、ＤＷＴ部１３０から入力される変換係数データＣＥを量子化することにより、量子化された変換係数データＱＣＥを生成する（ステップＳ１２５）。そして、量子化部１４０は、量子化された変換係数データＱＣＥをビットモデリング部１５０及び誤差データ生成部１７０へ出力する。
【００６５】
次に、ビットモデリング部１５０は、コードブロックごとに、量子化部１４０から入力される変換係数データＱＣＥを、３つの符号化パスを含むビット列ＢＩＮに変換する（ステップＳ１３０）。そして、ビットモデリング部１５０は、ビット列ＢＩＮを符号化・レート制御部１６０へ出力する。
【００６６】
次に、符号化・レート制御部１６０は、指定される符号化レートに応じた破棄位置ＴＰを決定し、ビットモデリング部１５０から入力されるビット列ＢＩＮの破棄位置ＴＰ以下の下位ビットを破棄する（ステップＳ１３５）。
【００６７】
また、符号化・レート制御部１６０は、下位ビットの破棄されたビット列ＢＩＮを符号化して、第１の符号化ストリームＢＳを生成する（ステップＳ１４０）。そして、符号化・レート制御部１６０は、生成した第１の符号化ストリームＢＳを、ストリーム出力部１９０へ出力する。また、符号化・レート制御部１６０は、破棄位置ＴＰを、誤差データ生成部１７０へ出力する。
【００６８】
次に、誤差データ生成部１７０は、変換係数データＱＣＥの下位ビットの破棄によって生じる誤差を含む誤差データＢＣＣＶを生成する（ステップＳ１５０）。ここでの誤差データ生成部１７０による誤差データ生成処理について、後にさらに説明する。そして、誤差データ生成部１７０は、誤差データＢＣＣＶを誤差符号化部１８０へ出力する。
【００６９】
次に、誤差符号化部１８０は、誤差データ生成部１７０から入力される誤差データＢＣＣＶを符号化して、第２の符号化ストリームＢＣＢＳを生成する（ステップＳ１７０）。そして、誤差符号化部１８０は、生成した第２の符号化ストリームＢＣＢＳを、ストリーム出力部１９０へ出力する。
【００７０】
その後、未処理の次のタイルが存在する場合には、処理はステップＳ１２０へ戻る。全てのタイルについて第１及び第２の符号化ストリームが生成された場合には、処理はステップＳ１９０へ進む。
【００７１】
ステップＳ１９０において、ストリーム出力部１９０は、符号化された誤差データを含む第２の符号化ストリームＢＣＢＳを、符号化された変換係数データを含む第１の符号化ストリームＢＳと関連付けて、これら２つの符号化ストリームを出力する。
【００７２】
（２）誤差データ生成処理
図８は、図７のステップＳ１５０において実行される誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
【００７３】
図８を参照すると、まず、誤差データ生成部１７０は、量子化部１４０から入力される変換係数データＱＣＥから、図５に例示したようなタイル端の高周波成分の１つの変換係数（以下、注目変換係数という）を取得する（ステップＳ１６１）。
【００７４】
また、誤差データ生成部１７０は、注目変換係数の下位ビットを符号化・レート制御部１６０において破棄する際に使用された破棄位置ＴＰを取得する（ステップＳ１６２）。
【００７５】
次に、誤差データ生成部１７０は、注目変換係数の誤差を破棄位置ＴＰに基づいて算出し、算出した誤差を誤差データＢＣＣＶに追加する（ステップＳ１６４）。
【００７６】
次に、誤差データ生成部１７０は、タイル内に処理すべき次の変換係数が存在するかを判定する（ステップＳ１６５）。ここで、処理すべき次の変換係数が存在する場合には、当該次の変換係数を注目変換係数として、ステップＳ１６１からステップＳ１６４までの処理が繰り返される。処理すべき次の変換係数が存在しない場合には、図８の誤差データ生成処理は終了する。
【００７７】
［２−４．復号処理の流れ］
図９は、第１の実施形態に係るデコーダ２００により実行される復号処理の流れの一例を示すフローチャートである。
【００７８】
図９を参照すると、まず、ストリーム取得部２１０は、復号すべき画像の変換係数データが符号化された第１の符号化ストリームＢＳ、及び当該変換係数データの誤差を含む誤差データが符号化された第２の符号化ストリームＢＣＢＳを取得する（ステップＳ２１０）。そして、ストリーム取得部２１０は、第１の符号化ストリームＢＳを復号部２２０へ出力する。また、ストリーム取得部２１０は、第２の符号化ストリームＢＣＢＳを誤差復号部２４０へ出力する。
【００７９】
その後のステップＳ２１５からステップＳ２６０までの処理は、入力画像内のタイルの各々について繰り返される。
【００８０】
復号部２２０は、ストリーム取得部２１０から入力される第１の符号化ストリームＢＳから、変換係数データのビット列ＢＩＮを復号する（ステップＳ２１５）。そして、復号部２２０は、復号されたビット列ＢＩＮをビットデモデリング部２３０へ出力する。
【００８１】
次に、ビットデモデリング部２３０は、復号部２２０から入力されるビット列ＢＩＮを並び替え直すことにより、ビット列ＢＩＮを量子化された変換係数データＱＣＥに変換する（ステップＳ２２０）。そして、ビットデモデリング部２３０は、量子化された変換係数データＱＣＥを合成部２５０へ出力する。
【００８２】
また、誤差復号部２４０は、ストリーム取得部２１０から入力される第２の符号化ストリームＢＣＢＳから、誤差データＢＣＣＶを復号する（ステップＳ２２５）。そして、誤差復号部２４０は、復号した誤差データＢＣＣＶを合成部２５０へ出力する。
【００８３】
次に、合成部２５０は、ビットデモデリング部２３０から入力される変換係数データＱＣＥ及び誤差復号部２４０から入力される誤差データＢＣＣＶを合成する（ステップＳ２４０）。より具体的には、合成部２５０は、タイルの端部の高周波成分の変換係数の各々について、変換係数データＱＣＥにより示される値と誤差データＢＣＣＶにより示される値とを加算する。それにより、誤差の補正された変換係数データＲ−ＱＣＥが生成される。そして、合成部２５０は、変換係数データＲ−ＱＣＥを逆量子化部２６０へ出力する。
【００８４】
次に、逆量子化部２６０は、合成部２５０から入力される変換係数データＲ−ＱＣＥを逆量子化することにより、量子化前の変換係数データＣＥを復元する（ステップＳ２４５）。そして、逆量子化部２６０は、復元した変換係数データＣＥを逆ＤＷＴ部２７０へ出力する。
【００８５】
次に、逆ＤＷＴ部２７０は、逆量子化部２６０から入力される変換係数データＣＥについて２次元の逆ＤＷＴを実行することにより、タイルごとの画像信号であるタイル信号ＴＢＢを復元する（ステップＳ２５０）。そして、逆ＤＷＴ部２７０は、復元したタイル信号ＴＢＢをタイル合成部２８０へ出力する。
【００８６】
その後、未処理の次のタイルが存在する場合には、処理はステップＳ２１５へ戻る。全てのタイルについてタイル信号ＴＢＢが復元された場合には、処理はステップＳ２６５へ進む。
【００８７】
ステップＳ２６５において、タイル合成部２８０は、逆ＤＷＴ部２７０から入力される複数のタイルのタイル信号ＴＢＢを合成することにより、１つの画像の画像信号ＢＢを復元する（ステップＳ２６５）。そして、タイル合成部２８０は、復元した画像信号ＢＢを逆変換・逆シフト部２９０へ出力する。なお、１つの画像全体が１つのタイルに相当する場合には、ステップＳ２６５の処理はスキップされてよい。
【００８８】
次に、逆変換・逆シフト部２９０は、タイル合成部２８０から入力される画像信号ＢＢの信号値を一律的にシフトして画像信号ＩＭＧを復元し、（必要に応じて）画像信号ＩＭＧの色空間を逆変換する（ステップＳ２７０）。そして、逆変換・逆シフト部２９０は、例えば表示装置又は記憶装置などの、デコーダ２００と接続される装置へ、画像信号ＩＭＧを出力する。
【００８９】
なお、本明細書で説明する様々な処理は、必ずしもフローチャートに示した順序で実行されなくてよい。一例として、色空間の変換、信号レベルのシフト及びタイル分割の順序が入れ替えられてもよい。また、いくつかの処理ステップは、直列的に実行されてもよく、又は並列的に実行されてもよい。
【００９０】
［２−５．第１の実施形態のまとめ］
ここまで、図３〜図９を用いて、第１の実施形態について説明した。本実施形態によれば、画像の変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データが、変換係数データに加えて符号化される。そして、当該画像を復号する際に、変換係数データと誤差データとが合成される。従って、変換係数データの下位ビットの破棄を原因とするブロック境界の画質の劣化を修復することができる。また、本実施形態によれば、ブロック境界の近傍の画素の追加的なフィルタリングが行われないため、ブロック境界の近傍領域において画像がぼけるという副作用を生じさせることなく、画質の劣化を直接的に補償することができる。
【００９１】
また、本実施形態によれば、誤差データは、下位ビットが破棄される前の変換係数データと破棄位置ＴＰ（Truncation  Point）とに基づいて生成される。破棄位置ＴＰは、例えばＪＰＥＧ２０００方式などの既存の画像符号化方式においても生成されるパラメータである。従って、比較的少ないコストで、誤差データが追加的に符号化されるように既存の画像符号化方式を拡張して、本実施形態に係る手法を導入することができる。
【００９２】
また、本実施形態によれば、各ブロック（ＪＰＥＧ２０００方式ではタイル）の端部の高周波成分の変換係数データについてのみ、誤差データが符号化される。従って、誤差データの追加的な符号化によって符号量が大幅に増加することはない。
【００９３】
＜３．第２の実施形態＞
［３−１．エンコーダの構成例］
図１０は、第２の実施形態に係るエンコーダ３００の構成の一例を示すブロック図である。図１０を参照すると、エンコーダ３００は、変換・シフト部１１０、タイル分割部１２０、ＤＷＴ部１３０、量子化部１４０、ビットモデリング部１５０、符号化・レート制御部１６０、誤差データ生成部３７０、誤差符号化部１８０及びストリーム出力部１９０を備える。誤差データ生成部３７０は、誤差計算部３７２、振幅判定部３７４及び置換部３７６を含む。
【００９４】
（１）誤差計算部
誤差計算部３７２は、第１の実施形態に係る誤差データ生成部１７０と同様に、変換係数データＱＣＥの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを生成する。より具体的には、誤差計算部３７２は、符号化・レート制御部１６０から、コードブロックごとの破棄位置ＴＰを取得する。次に、誤差計算部３７２は、量子化部１４０から入力される変換係数データＱＣＥのうちタイル端の高周波成分の変換係数を対象とし、破棄位置ＴＰに基づいて、符号化・レート制御部１６０において破棄される下位ビットを特定する。そして、誤差計算部３７２は、対象の変換係数の各々について、特定した下位ビットにより示される誤差を算出し、当該誤差を含む誤差データＢＣＣＶを生成する。誤差計算部３７２は、このように生成される誤差データＢＣＣＶを、置換部３７６へ出力する。
【００９５】
（２）振幅判定部
振幅判定部３７４は、量子化部１４０から入力される変換係数データＱＣＥのうちタイル端の高周波成分の変換係数の各々について、その絶対値（即ち、振幅）を振幅閾値と比較する。ここで、高周波成分の変換係数の絶対値が大きいということは、その領域において局所的に画素値の変化が急であることを意味する。逆に、高周波成分の変換係数の絶対値が小さいということは、その領域において局所的に画素値の変化が緩やかであることを意味する。画素値の変化が急な領域では、当該領域にブロック境界が存在するとしても、ブロック歪みはユーザにより感知されにくい。また、絶対値の大きい変換係数は、符号化・レート制御部１６０において破棄されにくい。本実施形態では、これら事実に基づいて、画素値の変化が急な領域における画質の劣化の修復を実質的に行わないことにより、誤差データの符号量を削減する。振幅判定部３７４は、タイル端の高周波成分の変換係数の各々について、その絶対値が振幅閾値よりも大きいか否かを示す誤差符号化フラグＦＬＧを生成し、生成した誤差符号化フラグＦＬＧを置換部３７６へ出力する。誤差符号化フラグＦＬＧは、例えば、変換係数の絶対値が振幅閾値よりも大きい場合に“０：False”、それ以外の場合に“１：True”を示し得る。
【００９６】
なお、振幅閾値は、例えば“３”などの固定的な値であってもよい。その代わりに、振幅判定部３７４は、量子化部１４０において使用された量子化ステップの値に応じて、振幅閾値を動的に変化させてもよい。例えば、量子化ステップの値が大きいほど振幅閾値を小さく設定することにより、画質の劣化が修復される領域の広さが量子化ステップの変化を原因として不自然に変化することが防止される。
【００９７】
（３）置換部
置換部３７６は、変換係数の絶対値の大きさが上述した振幅閾値よりも大きいことを誤差符号化フラグＦＬＧが示している場合に、誤差計算部３７２から入力される誤差データＢＣＣＶにおいて、当該変換係数に対応する誤差をゼロに置換する。そして、置換部３７６は、置換後の誤差データＢＣＣＶを誤差符号化部１８０へ出力する。
【００９８】
置換部３７６により一部の変換係数について誤差がゼロに置換される結果、誤差データＢＣＣＶにおいて、ゼロの占める割合が大きくなる。その結果、例えばハフマン符号化又は算術符号化などのエントロピー符号化を通じて誤差データＢＣＣＶを符号化する場合の符号量は、置換が行われない場合と比較して少なくなる。
【００９９】
本実施形態に係るエンコーダ３００から出力される第１及び第２の符号化ストリームは、例えば、第１の実施形態に係るデコーダ２００によって復号され得る。その際、画素値の変化が緩やかな領域においてのみ、第２の符号化ストリームから復号される誤差は、ゼロ以外の値を示す。
【０１００】
［３−２．符号化処理の流れ］
（１）振幅判定処理
図１１は、振幅判定部３７４により実行される振幅判定処理の詳細な流れの一例を示すフローチャートである。
【０１０１】
図１１を参照すると、まず、振幅判定部３７４は、タイル端の高周波成分の１つの変換係数を注目変換係数とし、当該注目変換係数の絶対値を振幅閾値と比較する（ステップＳ３５２）。ここで、注目変換係数の絶対値が振幅閾値よりも大きい場合には、振幅判定部３７４は、当該注目変換係数についての誤差符号化フラグを“０：False”に設定する（ステップＳ３５３）。一方、注目変換係数の絶対値が振幅閾値よりも大きくない場合には、振幅判定部３７４は、当該注目変換係数についての誤差符号化フラグを“１：True”に設定する（ステップＳ３５４）。
【０１０２】
次に、振幅判定部３７４は、処理すべき次の変換係数が存在するかを判定する（ステップＳ３５５）。ここで、処理すべき次の変換係数が存在する場合には、当該次の変換係数を注目変換係数として、ステップＳ３５２からステップＳ３５４までの処理が繰り返される。処理すべき次の変換係数が存在しない場合には、図１１の振幅判定処理は終了する。
【０１０３】
（２）誤差データ生成処理
図１２は、本実施形態に係る誤差データ生成部３７０により実行される誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
【０１０４】
図１２を参照すると、まず、振幅判定部３７４は、図１１を用いて説明した振幅判定処理を実行し、誤差符号化フラグＦＬＧを生成する（ステップＳ３５１）。そして、振幅判定部３７４は、生成した誤差符号化フラグＦＬＧを置換部３７６へ出力する。
【０１０５】
次に、誤差計算部３７２は、量子化部１４０から入力される変換係数データＱＣＥから、１つの注目変換係数を取得する（ステップＳ３６１）。
【０１０６】
また、誤差計算部３７２は、注目変換係数の下位ビットを符号化・レート制御部１６０において破棄する際に使用された破棄位置ＴＰを取得する（ステップＳ３６２）。
【０１０７】
次に、誤差計算部３７２は、注目変換係数の誤差を破棄位置ＴＰに基づいて算出し、算出した誤差を誤差データＢＣＣＶに追加する（ステップＳ３６４）。
【０１０８】
誤差計算部３７２は、ステップＳ３６１からステップＳ３６４までの処理を、タイル内に処理すべき次の変換係数が存在しなくなるまで繰り返す（ステップＳ３６５）。
【０１０９】
その後、置換部３７６は、振幅判定部３７４から入力される誤差符号化フラグＦＬＧが“０：False”を示している変換係数について、誤差データＢＣＣＶ内の誤差をゼロに置換する（ステップＳ３５６）。
【０１１０】
［３−３．第２の実施形態のまとめ］
ここまで、図１０〜図１２を用いて、第２の実施形態について説明した。本実施形態によれば、画素値の変化が急な領域における変換係数について誤差データ内の誤差がゼロに置換されるため、誤差データの追加的な符号化による符号量の増加を抑制することができる。また、画素値の変化が急な領域ではブロック歪みはユーザに感知されにくいため、当該領域において画質の劣化が修復されないとしても、その主観的な画質への影響は小さい。
【０１１１】
＜４．第３の実施形態＞
［４−１．エンコーダの構成例］
図１３は、第３の実施形態に係るエンコーダ５００の構成の一例を示すブロック図である。図１３を参照すると、エンコーダ５００は、変換・シフト部１１０、タイル分割部１２０、ＤＷＴ部１３０、量子化部１４０、ビットモデリング部１５０、符号化・レート制御部１６０、誤差データ生成部５７０、誤差符号化部５８０、フラグ符号化部５８５及びストリーム出力部５９０を備える。誤差データ生成部５７０は、誤差計算部３７２及び振幅判定部３７４を含む。
【０１１２】
（１）誤差データ生成部
誤差データ生成部５７０において、誤差計算部３７２は、変換係数データＱＣＥの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データＢＣＣＶを生成する。そして、誤差計算部３７２は、誤差データＢＣＣＶを誤差符号化部５８０へ出力する。振幅判定部３７４は、上述した振幅判定処理を実行することにより誤差符号化フラグＦＬＧを生成し、生成した誤差符号化フラグＦＬＧを誤差符号化部５８０及びフラグ符号化部５８５へ出力する。
【０１１３】
（２）誤差符号化部
誤差符号化部５８０は、誤差データ生成部５７０から入力される誤差データＢＣＣＶを符号化して、第２の符号化ストリームＢＣＢＳを生成する。より具体的には、本実施形態において、誤差符号化部５８０は、誤差符号化フラグＦＬＧが“１：True”を示している変換係数の誤差のみを符号化する。誤差符号化フラグＦＬＧが“０：False”を示している変換係数、即ち絶対値の大きさが振幅閾値よりも大きい変換係数についての誤差は、第２の符号化ストリーム内に符号化されない。誤差符号化部１８０は、このように生成される第２の符号化ストリームＢＣＢＳを、ストリーム出力部５９０へ出力する。なお、絶対値の大きい変換係数についての誤差の符号化を誤差符号化部５８０がスキップする代わりに、誤差計算部３７２が、誤差符号化フラグＦＬＧに従って、絶対値の大きい変換係数（即ち、ＦＬＧ＝“０”）について誤差データＢＣＣＶの生成をスキップしてもよい。その場合には、振幅判定部３７４から誤差計算部３７２へ、誤差符号化フラグＦＬＧが入力される。
【０１１４】
（３）フラグ符号化部
フラグ符号化部５８５は、振幅判定部３７４から入力される誤差符号化フラグＦＬＧを符号化して、第３の符号化ストリームＦＢＳを生成する。誤差符号化フラグＦＬＧは、誤差データＢＣＣＶ内の誤差に対応する画像内の位置を特定するためのパラメータとして、デコーダ側で使用される。誤差符号化フラグＦＬＧは、例えば、図５に例示した端部Ｅ３、Ｅ２及びＥ１に沿って、誤差が符号化されない変換係数について“０”、誤差が符号化される変換係数について“１”が並ぶビット列である。ビットの順序は、誤差データの符号化の順序に対応する。フラグ符号化部５８５は、一例として、ランレングス符号化によって誤差符号化フラグＦＬＧのデータ量を圧縮した上で、算術符号化によって第３の符号化ストリームＦＢＳを生成し得る。フラグ符号化部５８５は、このように生成される第３の符号化ストリームＦＢＳを、ストリーム出力部５９０へ出力する。
【０１１５】
（４）ストリーム出力部
ストリーム出力部５９０は、誤差符号化部５８０から入力される第２の符号化ストリームＢＣＢＳ及びフラグ符号化部５８５から入力される第３の符号化ストリームＦＢＳを第１の符号化ストリームＢＳと関連付けて、これら３つの符号化ストリームを出力する。ストリーム出力部５９０は、例えば、第２及び第３の符号化ストリームにアクセスするための参照用パラメータを生成し、生成した参照用パラメータを第１の符号化ストリームＢＳのヘッダ領域に挿入してもよい。
【０１１６】
［４−２．デコーダの構成例］
図１４は、第３の実施形態に係るデコーダ６００の構成の一例を示すブロック図である。図１４を参照すると、デコーダ６００は、ストリーム取得部６１０、復号部２２０、ビットデモデリング部２３０、フラグ復号部６４０、誤差復号部６４５、合成部６５０、逆量子化部２６０、逆ＤＷＴ部２７０、タイル合成部２８０及び逆変換・逆シフト部２９０を備える。
【０１１７】
（１）ストリーム取得部
ストリーム取得部６１０は、デコーダ６００による復号処理の入力となる符号化ストリームを取得する。ストリーム取得部６１０により取得される符号化ストリーム（例えば、多重化ストリームＰＢＳ）は、変換係数データが符号化された第１の符号化ストリームＢＳ、誤差データが符号化された第２の符号化ストリームＢＣＢＳ及び誤差符号化フラグが符号化された第３の符号化ストリームＦＢＳを含み得る。例えば、ストリーム取得部６１０は、第１の符号化ストリームＢＳのヘッダ領域に挿入される参照用パラメータを用いて第２及び第３の符号化ストリームＢＣＢＳ、ＦＢＳを取得してもよい。ストリーム取得部６１０は、第１の符号化ストリームＢＳを復号部２２０へ出力する。また、ストリーム取得部６１０は、第２の符号化ストリームＢＣＢＳを誤差復号部６４５へ出力する。また、ストリーム取得部６１０は、第３の符号化ストリームＦＢＳをフラグ復号部６４０へ出力する。
【０１１８】
（２）フラグ復号部
フラグ復号部６４０は、ストリーム取得部６１０から入力される第３の符号化ストリームＦＢＳから、誤差符号化フラグＦＬＧを復号する。フラグ復号部６４０は、例えば、算術復号及びランレングス復号などの任意の手法に従って、誤差符号化フラグＦＬＧを復号してよい。そして、フラグ復号部６４０は、復号した誤差符号化フラグＦＬＧを誤差復号部６４５へ出力する。
【０１１９】
（３）誤差復号部
誤差復号部６４５は、ストリーム取得部６１０から入力される第２の符号化ストリームＢＣＢＳから、誤差データＢＣＣＶを復号する。本実施形態において、誤差データＢＣＣＶは、上述したように、振幅が相対的に小さい変換係数についての誤差のみを含む。従って、誤差データＢＣＣＶのみでは、誤差データＢＣＣＶ内の誤差のそれぞれが画像内のどの位置の変換係数の誤差であるのかを特定することができない。そこで、誤差復号部６４５は、フラグ復号部６４０から入力される誤差符号化フラグＦＬＧを参照し、誤差データＢＣＣＶ内の誤差のそれぞれが画像内のどの位置の変換係数の誤差であるのかを特定する。そして、誤差復号部６４５は、復号した誤差データＢＣＣＶを合成部６５０へ出力する。
【０１２０】
（４）合成部
合成部６５０は、ビットデモデリング部２３０から入力される変換係数データＱＣＥ及び誤差復号部６４５から入力される誤差データＢＣＣＶを合成することにより、変換係数データＱＣＥの誤差を補正する。本実施形態において、誤差を合成することにより実質的に補正される変換係数は、誤差符号化フラグＦＬＧにより特定される位置の変換係数である。振幅が相対的に大きい変換係数については、誤差は合成されない。合成部６５０は、補正後の変換係数データＲ−ＱＣＥを逆量子化部２６０へ出力する。
【０１２１】
［４−３．符号化処理の流れ］
（１）全体的な処理
図１５は、第３の実施形態に係るエンコーダ５００による符号化処理の流れの一例を示すフローチャートである。
【０１２２】
図１５を参照すると、まず、変換・シフト部１１０は、入力画像信号ＩＭＧの色空間をエンコーダ１００によりサポートされる色空間に変換し、信号レベルをシフトする（ステップＳ５１０）。そして、変換・シフト部１１０は、変換及びシフト後の画像信号ＢＢをタイル分割部１２０へ出力する。
【０１２３】
次に、タイル分割部１２０は、入力画像内に１つ以上のタイルを設定し、画像信号ＢＢをタイル信号ＴＢＢに分割する（ステップＳ５１５）。そして、タイル分割部１２０は、タイル信号ＴＢＢをＤＷＴ部１３０へ出力する。その後のステップＳ５２０からステップＳ５８０までの処理は、入力画像内のタイルの各々について繰り返される。
【０１２４】
ＤＷＴ部１３０は、タイル分割部１２０から入力されるタイル信号ＴＢＢについて２次元のＤＷＴを実行することにより、変換係数データＣＥを生成する（ステップＳ５２０）。そして、ＤＷＴ部１３０は、生成した変換係数データＣＥを量子化部１４０へ出力する。
【０１２５】
次に、量子化部１４０は、ＤＷＴ部１３０から入力される変換係数データＣＥを量子化することにより、量子化された変換係数データＱＣＥを生成する（ステップＳ５２５）。そして、量子化部１４０は、量子化された変換係数データＱＣＥをビットモデリング部１５０及び誤差データ生成部５７０へ出力する。
【０１２６】
次に、ビットモデリング部１５０は、コードブロックごとに、量子化部１４０から入力される変換係数データＱＣＥを、３つの符号化パスを含むビット列ＢＩＮに変換する（ステップＳ５３０）。そして、ビットモデリング部１５０は、ビット列ＢＩＮを符号化・レート制御部１６０へ出力する。
【０１２７】
次に、符号化・レート制御部１６０は、指定される符号化レートに応じた破棄位置ＴＰを決定し、ビットモデリング部１５０から入力されるビット列ＢＩＮの破棄位置ＴＰ以下の下位ビットを破棄する（ステップＳ５３５）。
【０１２８】
また、符号化・レート制御部１６０は、下位ビットの破棄されたビット列ＢＩＮを符号化して、第１の符号化ストリームＢＳを生成する（ステップＳ５４０）。そして、符号化・レート制御部１６０は、生成した第１の符号化ストリームＢＳを、ストリーム出力部５９０へ出力する。また、符号化・レート制御部１６０は、破棄位置ＴＰを、誤差データ生成部５７０へ出力する。
【０１２９】
次に、誤差データ生成部５７０は、変換係数データＱＣＥの下位ビットの破棄によって生じる誤差を含む誤差データＢＣＣＶを生成する（ステップＳ５５０）。ここでの誤差データ生成部５７０による誤差データ生成処理について、後にさらに説明する。そして、誤差データ生成部５７０は、誤差データＢＣＣＶを誤差符号化部５８０へ出力する。また、誤差データ生成部５７０は、誤差符号化フラグＦＬＧを誤差符号化部５８０及びフラグ符号化部５８５へ出力する。
【０１３０】
次に、誤差符号化部５８０は、誤差データ生成部５７０から入力される誤差データＢＣＣＶのうち、振幅が相対的に小さい変換係数についてのデータを符号化して、第２の符号化ストリームＢＣＢＳを生成する（ステップＳ５７０）。そして、誤差符号化部５８０は、生成した第２の符号化ストリームＢＣＢＳを、ストリーム出力部５９０へ出力する。
【０１３１】
また、フラグ符号化部５８５は、誤差データ生成部５７０から入力される誤差符号化フラグＦＬＧを符号化して、第３の符号化ストリームＦＢＳを生成する（ステップＳ５７５）。そして、フラグ符号化部５８５は、第３の符号化ストリームＦＢＳを、ストリーム出力部５９０へ出力する。
【０１３２】
その後、未処理の次のタイルが存在する場合には、処理はステップＳ５２０へ戻る。全てのタイルについて第１、第２及び第３の符号化ストリームが生成された場合には、処理はステップＳ５９０へ進む。
【０１３３】
ステップＳ５９０において、ストリーム出力部５９０は、第２及び第３の符号化ストリームＢＣＢＳ、ＦＢＳを第１の符号化ストリームＢＳと関連付けて、これら３つの符号化ストリームを出力する。
【０１３４】
（２）誤差データ生成処理
図１６は、本実施形態に係る誤差データ生成部５７０により実行される誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
【０１３５】
図１６を参照すると、まず、誤差データ生成部５７０の振幅判定部３７４は、図１１を用いて説明した振幅判定処理を実行し、誤差符号化フラグＦＬＧを生成する（ステップＳ５５１）。そして、振幅判定部３７４は、生成した誤差符号化フラグＦＬＧを誤差符号化部５８０及びフラグ符号化部５８５へ出力する。
【０１３６】
次に、誤差計算部３７２は、量子化部１４０から入力される変換係数データＱＣＥから、１つの注目変換係数を取得する（ステップＳ５６１）。
【０１３７】
また、誤差計算部３７２は、注目変換係数の下位ビットを符号化・レート制御部１６０において破棄する際に使用された破棄位置ＴＰを取得する（ステップＳ５６２）。
【０１３８】
次に、誤差計算部３７２は、注目変換係数の振幅が振幅閾値よりも大きくないことを誤差符号化フラグＦＬＧが示しているかを判定する（ステップＳ５６３）。例えば、注目変換係数について誤差符号化フラグＦＬＧが“１：True”を示している場合には、注目変換係数の振幅は振幅閾値よりも大きくないと判定され得る。その場合、誤差計算部３７２は、注目変換係数の誤差を破棄位置ＴＰに基づいて算出し、算出した誤差を誤差データＢＣＣＶに追加する（ステップＳ５６４）。一方、注目変換係数の振幅が振幅閾値よりも大きい場合には、ステップＳ５６４の処理はスキップされる。なお、変換係数の振幅に応じた誤差のスキップは、誤差計算部３７２における誤差の計算の際に行われてもよく、又は誤差符号化部５８０における誤差の符号化の際に行われてもよい。
【０１３９】
誤差データ生成部５７０は、ステップＳ５６１からステップＳ５６４までの処理を、タイル内に処理すべき次の変換係数が存在しなくなるまで繰り返す（ステップＳ５６５）。誤差データ生成部５７０は、このように生成される誤差データＢＣＣＶを誤差符号化部５８０へ出力する。
【０１４０】
［４−４．復号処理の流れ］
図１７は、第３の実施形態に係るデコーダ６００により実行される復号処理の流れの一例を示すフローチャートである。
【０１４１】
図１７を参照すると、まず、ストリーム取得部６１０は、復号すべき画像の変換係数データが符号化された第１の符号化ストリームＢＳ、誤差データが符号化された第２の符号化ストリームＢＣＢＳ及び誤差符号化フラグが符号化された第３の符号化ストリームＦＢＳを取得する（ステップＳ６１０）。そして、ストリーム取得部６１０は、第１の符号化ストリームＢＳを復号部２２０へ出力する。また、ストリーム取得部６１０は、第２の符号化ストリームＢＣＢＳを誤差復号部６４５へ出力する。また、ストリーム取得部６１０は、第３の符号化ストリームＦＢＳをフラグ復号部６４０へ出力する。
【０１４２】
その後のステップＳ６１５からステップＳ６６０までの処理は、入力画像内のタイルの各々について繰り返される。
【０１４３】
復号部２２０は、ストリーム取得部６１０から入力される第１の符号化ストリームＢＳから、変換係数データのビット列ＢＩＮを復号する（ステップＳ６１５）。そして、復号部２２０は、復号されたビット列ＢＩＮをビットデモデリング部２３０へ出力する。
【０１４４】
次に、ビットデモデリング部２３０は、復号部２２０から入力されるビット列ＢＩＮを並び替え直すことにより、ビット列ＢＩＮを量子化された変換係数データＱＣＥに変換する（ステップＳ６２０）。そして、ビットデモデリング部２３０、量子化された変換係数データＱＣＥを合成部６５０へ出力する。
【０１４５】
また、フラグ復号部６４０は、ストリーム取得部６１０から入力される第３の符号化ストリームＦＢＳから、誤差符号化フラグＦＬＧを復号する（ステップＳ６２５）。そして、フラグ復号部６４０は、復号した誤差符号化フラグＦＬＧを誤差復号部６４５へ出力する。
【０１４６】
次に、誤差復号部６４５は、ストリーム取得部６１０から入力される第２の符号化ストリームＢＣＢＳから、誤差符号化フラグＦＬＧにより特定される位置の変換係数についての誤差データＢＣＣＶを復号する（ステップＳ６３０）。そして、誤差復号部６４５は、復号した誤差データＢＣＣＶを合成部６５０へ出力する。
【０１４７】
次に、合成部６５０は、誤差符号化フラグＦＬＧにより特定される位置の変換係数について、ビットデモデリング部２３０から入力される変換係数データＱＣＥに誤差データＢＣＣＶを合成する（ステップＳ６４０）。それにより、誤差の補正された変換係数データＲ−ＱＣＥが生成される。そして、合成部６５０は、変換係数データＲ−ＱＣＥを逆量子化部２６０へ出力する。
【０１４８】
次に、逆量子化部２６０は、合成部６５０から入力される変換係数データＲ−ＱＣＥを逆量子化することにより、量子化前の変換係数データＣＥを復元する（ステップＳ６４５）。そして、逆量子化部２６０は、復元した変換係数データＣＥを逆ＤＷＴ部２７０へ出力する。
【０１４９】
次に、逆ＤＷＴ部２７０は、逆量子化部２６０から入力される変換係数データＣＥについて２次元の逆ＤＷＴを実行することにより、タイルごとの画像信号であるタイル信号ＴＢＢを復元する（ステップＳ６５０）。そして、逆ＤＷＴ部２７０は、復元したタイル信号ＴＢＢをタイル合成部２８０へ出力する。
【０１５０】
その後、未処理の次のタイルが存在する場合には、処理はステップＳ６１５へ戻る。全てのタイルについてタイル信号ＴＢＢが復元された場合には、処理はステップＳ６６５へ進む。
【０１５１】
ステップＳ６６５において、タイル合成部２８０は、逆ＤＷＴ部２７０から入力される複数のタイルのタイル信号ＴＢＢを合成することにより、１つの画像の画像信号ＢＢを復元する（ステップＳ６６５）。そして、タイル合成部２８０は、復元した画像信号ＢＢを逆変換・逆シフト部２９０へ出力する。
【０１５２】
次に、逆変換・逆シフト部２９０は、タイル合成部２８０から入力される画像信号ＢＢの信号値を一律的にシフトして画像信号ＩＭＧを復元し、（必要に応じて）画像信号ＩＭＧの色空間を逆変換する（ステップＳ６７０）。そして、逆変換・逆シフト部２９０は、例えば表示装置又は記憶装置などの、デコーダ６００と接続される装置へ、画像信号ＩＭＧを出力する。
【０１５３】
［４−５．第３の実施形態のまとめ］
ここまで、図１３〜図１７を用いて、第３の実施形態について説明した。本実施形態によれば、画素値の変化が急な領域における変換係数について誤差データの符号化が省略されるため、誤差データの追加的な符号化による符号量の増加を一層効果的に抑制することができる。また、誤差符号化フラグが追加的に符号化されることにより、デコーダは、部分的に省略された誤差データを変換係数データに適切に合成することができる。第２の実施形態と同様、画素値の変化が急な領域ではブロック歪みはユーザに感知されにくいため、当該領域において画質の劣化が修復されないとしても、その主観的な画質への影響は小さい。
【０１５４】
＜５．第４の実施形態＞
［５−１．エンコーダの構成例］
図１８は、第４の実施形態に係るエンコーダ７００の構成の一例を示すブロック図である。図１８を参照すると、エンコーダ７００は、変換・シフト部１１０、タイル分割部１２０、ＤＷＴ部７３０、量子化部７４０、ビットモデリング部１５０、符号化・レート制御部１６０、誤差データ生成部７７０、誤差符号化部１８０及びストリーム出力部１９０を備える。
【０１５５】
（１）ＤＷＴ部
ＤＷＴ部７３０は、タイル分割部１２０からタイルごとに入力されるタイル信号ＴＢＢについて２次元のＤＷＴを実行することにより、タイルごとの変換係数データＣＥを生成する。ＤＷＴ部７３０は、第１の実施形態に係るＤＷＴ部１３０と同様に、各タイルの端部の画素値を対称周期拡張によって拡張した上でフィルタ演算を実行する。ここでのＤＷＴは、例えば、整数型５×３ＤＷＴであってもよく、又は実数型９×７ＤＷＴであってもよい。ＤＷＴ部７３０は、タイルごとの変換係数データＣＥを、量子化部７４０及び誤差データ生成部７７０へ出力する。
【０１５６】
（２）量子化部
量子化部７４０は、ＤＷＴ部７３０から入力される変換係数データＣＥを量子化することにより、量子化された変換係数データＱＣＥを生成する。量子化部７４０は、量子化された変換係数データＱＣＥをビットモデリング部１５０へ出力する。また、量子化部７４０は、例えばサブバンドごとに決定され得る量子化ステップＱＶを、誤差データ生成部７７０へ出力する。
【０１５７】
（３）誤差データ生成部
誤差データ生成部７７０は、変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データＢＣＣＶを生成する。本実施形態において、誤差データＢＣＣＶにより示される誤差は、量子化誤差をも含む。より具体的には、誤差データ生成部７７０は、ＤＷＴ部７３０から入力される変換係数データＣＥからタイル端の高周波成分の変換係数を取得し、取得した変換係数を量子化部７４０から入力される量子化ステップＱＶを用いて量子化する。次に、誤差データ生成部７７０は、量子化後の変換係数の下位ビットを、符号化・レート制御部１６０から入力される破棄位置ＴＰに基づいて破棄する。次に、誤差データ生成部７７０は、下位ビットの破棄された変換係数を量子化ステップＱＶを用いて逆量子化することにより、変換係数データＲ−ＣＥを復元する。そして、誤差データ生成部７７０は、量子化前の変換係数データＣＥの値と復元された変換係数データＲ−ＣＥの値との差分に基づいて、誤差データＢＣＣＶを生成する。誤差データ生成部７７０は、このように生成される誤差データＢＣＣＶを、誤差符号化部１８０へ出力する。
【０１５８】
本実施形態においても、誤差データＢＣＣＶは、誤差符号化部１８０により任意の手法で符号化される。そして、符号化された誤差データＢＣＣＶを含む第２の符号化ストリームＢＣＢＳが、符号化された変換係数データを含む第１の符号化ストリームＢＳに関連付けられる。
【０１５９】
［５−２．デコーダの構成例］
図１９は、第４の実施形態に係るデコーダ８００の構成の一例を示すブロック図である。図１９を参照すると、デコーダ８００は、ストリーム取得部２１０、復号部２２０、ビットデモデリング部２３０、誤差復号部２４０、逆量子化部８５０、合成部８６０、逆ＤＷＴ部２７０、タイル合成部２８０及び逆変換・逆シフト部２９０を備える。
【０１６０】
（１）逆量子化部
逆量子化部８５０は、ビットデモデリング部２３０から入力される変換係数データＱＣＥを、エンコーダ７００における量子化処理において使用されたものと同等の量子化ステップで逆量子化することにより、量子化前の変換係数データＣＥを復元する。そして、逆量子化部８５０は、復元した変換係数データＣＥを合成部８６０へ出力する。
【０１６１】
（５）合成部
合成部８６０は、逆量子化部８５０から入力される逆量子化された変換係数データＣＥ及び誤差復号部２４０から入力される誤差データＢＣＣＶを合成することにより、変換係数データＣＥの誤差を補正する。より具体的には、本実施形態において、合成部８６０は、図５に例示したようなタイルの端部の高周波成分の変換係数の各々について、変換係数データＣＥにより示される値と誤差データＢＣＣＶにより示される値とを加算する。それにより、誤差の補正された変換係数データＲ−ＣＥが生成される。そして、合成部２５０は、生成した変換係数データＲ−ＣＥを逆ＤＷＴ部２７０へ出力する。
【０１６２】
［５−３．符号化処理の流れ］
図２０は、第４の実施形態に係る誤差データ生成部７７０により実行される誤差データ生成処理の詳細な流れの一例を示すフローチャートである。
【０１６３】
図２０を参照すると、まず、誤差データ生成部７７０は、ＤＷＴ部７３０から入力される変換係数データＣＥから、タイル端の高周波成分の１つの注目変換係数を取得する（ステップＳ７６１）。
【０１６４】
次に、誤差データ生成部７７０は、量子化部７４０から入力される量子化ステップＱＶを用いて、注目変換係数を量子化する（ステップＳ７６２）。
【０１６５】
次に、誤差データ生成部７７０は、符号化・レート制御部１６０から入力される破棄位置ＴＰに基づいて、量子化後の注目変換係数の下位ビットを破棄する（ステップＳ７６３）。
【０１６６】
次に、誤差データ生成部７７０は、下位ビットの破棄された変換係数を量子化ステップＱＶを用いて逆量子化することにより、注目変換係数の値を復元する（ステップＳ７６４）。
【０１６７】
次に、誤差データ生成部７７０は、量子化前の注目変換係数と復元された注目変換係数との差分に相当する誤差を、誤差データＢＣＣＶに追加する（ステップＳ７６５）。
【０１６８】
次に、誤差データ生成部７７０は、タイル内に処理すべき次の変換係数が存在するかを判定する（ステップＳ７６６）。ここで、処理すべき次の変換係数が存在する場合には、当該次の変換係数を注目変換係数として、ステップＳ７６１からステップＳ７６５までの処理が繰り返される。処理すべき次の変換係数が存在しない場合には、図２０の誤差データ生成処理は終了する。
【０１６９】
［５−４．復号処理の流れ］
図２１は、第４の実施形態に係るデコーダ８００により実行される復号処理の流れの一例を示すフローチャートである。
【０１７０】
図２１を参照すると、まず、ストリーム取得部２１０は、復号すべき画像の変換係数データが符号化された第１の符号化ストリームＢＳ、及び当該変換係数データの誤差を含む誤差データが符号化された第２の符号化ストリームＢＣＢＳを取得する（ステップＳ８１０）。そして、ストリーム取得部２１０は、第１の符号化ストリームＢＳを復号部２２０へ出力する。また、ストリーム取得部２１０は、第２の符号化ストリームＢＣＢＳを誤差復号部２４０へ出力する。
【０１７１】
その後のステップＳ８１５からステップＳ８６０までの処理は、入力画像内のタイルの各々について繰り返される。
【０１７２】
復号部２２０は、ストリーム取得部２１０から入力される第１の符号化ストリームＢＳから、変換係数データのビット列ＢＩＮを復号する（ステップＳ８１５）。そして、復号部２２０は、復号されたビット列ＢＩＮをビットデモデリング部２３０へ出力する。
【０１７３】
次に、ビットデモデリング部２３０は、復号部２２０から入力されるビット列ＢＩＮを並び替え直すことにより、ビット列ＢＩＮを量子化された変換係数データＱＣＥに変換する（ステップＳ８２０）。そして、ビットデモデリング部２３０は、量子化された変換係数データＱＣＥを逆量子化部８５０へ出力する。
【０１７４】
次に、逆量子化部８５０は、ビットデモデリング部２３０から入力される変換係数データＱＣＥを逆量子化することにより、量子化前の変換係数データＣＥを復元する（ステップＳ８２５）。そして、逆量子化部８５０は、復元した変換係数データＣＥを合成部８６０へ出力する。
【０１７５】
また、誤差復号部２４０は、ストリーム取得部２１０から入力される第２の符号化ストリームＢＣＢＳから、誤差データＢＣＣＶを復号する（ステップＳ８３０）。そして、誤差復号部２４０は、復号した誤差データＢＣＣＶを合成部８６０へ出力する。
【０１７６】
次に、合成部８６０は、逆量子化部８５０から入力される逆量子化された変換係数データＣＥに誤差復号部２４０から入力される誤差データＢＣＣＶを合成する（ステップＳ８３５）。それにより、誤差の補正された変換係数データＲ−ＣＥが生成される。そして、合成部８６０は、変換係数データＲ−ＣＥを逆ＤＷＴ部２７０へ出力する。
【０１７７】
次に、逆ＤＷＴ部２７０は、合成部８６０から入力される変換係数データＲ−ＣＥについて２次元の逆ＤＷＴを実行することにより、タイルごとの画像信号であるタイル信号ＴＢＢを復元する（ステップＳ８５０）。そして、逆ＤＷＴ部２７０は、復元したタイル信号ＴＢＢをタイル合成部２８０へ出力する。
【０１７８】
その後、未処理の次のタイルが存在する場合には、処理はステップＳ８１５へ戻る。全てのタイルについてタイル信号ＴＢＢが復元された場合には、処理はステップＳ８６５へ進む。
【０１７９】
ステップＳ８６５において、タイル合成部２８０は、逆ＤＷＴ部２７０から入力される複数のタイルのタイル信号ＴＢＢを合成することにより、１つの画像の画像信号ＢＢを復元する（ステップＳ８６５）。そして、タイル合成部２８０は、復元した画像信号ＢＢを逆変換・逆シフト部２９０へ出力する。なお、１つの画像全体が１つのタイルに相当する場合には、ステップＳ８６５の処理はスキップされてよい。
【０１８０】
次に、逆変換・逆シフト部２９０は、タイル合成部２８０から入力される画像信号ＢＢの信号値を一律的にシフトして画像信号ＩＭＧを復元し、（必要に応じて）画像信号ＩＭＧの色空間を逆変換する（ステップＳ８７０）。そして、逆変換・逆シフト部２９０は、例えば表示装置又は記憶装置などの、デコーダ８００と接続される装置へ、画像信号ＩＭＧを出力する。
【０１８１】
［５−５．第４の実施形態のまとめ］
ここまで、図１８〜図２１を用いて、第４の実施形態について説明した。本実施形態によれば、レート制御のための下位ビットの破棄（Truncation）によって生じる誤差と共に変換係数データの量子化（Quantization）によって生じる量子化誤差をも含む誤差データが、変換係数データに加えて符号化される。そして、画像を復号する際に、変換係数データと誤差データとが合成される。従って、変換係数データの量子化及び下位ビットの破棄の双方を原因とするブロック境界の画質の劣化を修復することができる。また、本実施形態においても、ブロック境界の近傍の画素の追加的なフィルタリングが行われないため、ブロック境界の近傍領域において画像がぼけるという副作用を生じさせることなく、画質の劣化を直接的に補償することができる。
【０１８２】
なお、第４の実施形態は、上述した第２の実施形態又は第３の実施形態と組合せられてもよい。即ち、画素値の変化が急な領域における変換係数について、誤差データ内の誤差がゼロに置換されてもよい。また、当該領域において、誤差データの符号化が省略されてもよい。それにより、量子化誤差をも含む誤差データの追加的な符号化による符号量の増加を抑制することができる。
【０１８３】
＜６．総括＞
本開示に係る技術の上述した４つの実施形態によれば、ブロック境界の画質の劣化を修復するための改善された仕組みが提供される。即ち、画像の変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データが追加的に符号化され、画像を復号する際に、当該誤差データを用いて画質の劣化が修復される。従って、ブロック境界の近傍領域において画像がぼけるという副作用を生じさせることなく、画質の劣化を補償することができる。
【０１８４】
なお、本明細書において説明したエンコーダ及びデコーダによる一連の処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時にＲＡＭ（Random  Access  Memory）に読み込まれ、ＣＰＵ（Central  Processing  Unit）などのプロセッサにより実行される。
【０１８５】
本開示に係る技術は、画像を符号化し又は復号する様々な製品に応用可能である。限定ではなく一例として、ＰＣ（Personal  Computer）、スマートフォン、ＰＤＡ（Personal  Digital  Assistants）、デジタルカメラ、ゲーム端末、コンテンツレコーダ、コンテンツプレーヤ又はデジタルテレビジョン装置などの製品において、本開示に係る技術が採用されてよい。
【０１８６】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１８７】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
１つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第１の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第２の符号化ストリームを取得するストリーム取得部と、
前記第１の符号化ストリームから前記変換係数データを復号する第１復号部と、
前記第２の符号化ストリームから前記誤差データを復号する第２復号部と、
前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正する合成部と、
を備える画像処理装置。
（２）
前記誤差データは、下位ビットが破棄される前の前記変換係数データと指定されるレートに応じて決定された破棄位置とに基づいて、前記画像の符号化の際に生成される、前記（１）に記載の画像処理装置。
（３）
前記誤差データは、前記変換係数データの量子化前の値と、下位ビットを破棄された後の前記変換係数データから逆量子化される値との差分に基づいて、前記画像の符号化の際に生成され、
前記画像処理装置は、前記第１復号部により復号される前記変換係数データを逆量子化する逆量子化部、をさらに備え、
前記合成部は、逆量子化された前記変換係数データ及び前記誤差データを合成する、
前記（１）に記載の画像処理装置。
（４）
前記合成部は、各ブロックの端部の高周波成分の前記変換係数データについて前記変換係数データ及び前記誤差データを合成する、前記（１）〜（３）のいずれか１項に記載の画像処理装置。
（５）
前記画像処理装置は、前記誤差データに含まれる誤差に対応する前記画像内の位置を特定するパラメータを復号する第３復号部、をさらに備え、
前記合成部は、復号される前記パラメータにより特定される位置の前記変換係数データ及び前記誤差データを合成する、
前記（４）に記載の画像処理装置。
（６）
前記変換係数データは、各ブロックの端部の画素値を対称周期拡張によって拡張して離散ウェーブレット変換を実行することにより、前記画像の符号化の際に生成され、
前記画像処理装置は、前記誤差データとの合成後の前記変換係数データについて逆離散ウェーブレット変換を実行する逆変換部、をさらに備える、
前記（１）〜（５）のいずれか１項に記載の画像処理装置。
（７）
前記合成部は、一部のサブバンドについてのみ前記誤差データを前記変換係数データと合成する、前記（６）に記載の画像処理装置。
（８）
前記画像処理装置は、ＪＰＥＧ２０００方式に従って前記画像を復号する装置であり、
前記ブロックは、タイルに相当する、
前記（１）〜（７）のいずれか１項に記載の画像処理装置。
（９）
１つ以上のブロックを含む画像の周波数成分の変換係数データを符号化して、第１の符号化ストリームを生成する第１符号化部と、
前記変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを符号化して、第２の符号化ストリームを生成する第２符号化部と、
前記第２の符号化ストリームを前記第１の符号化ストリームと関連付けて出力するストリーム出力部と、
を備える画像処理装置。
（１０）
前記第１符号化部は、指定されるレートに応じて決定される破棄位置に従って、前記変換係数データの下位ビットを破棄し、
前記画像処理装置は、下位ビットが破棄される前の前記変換係数データと前記破棄位置とに基づいて、前記誤差データを生成する生成部、をさらに備える、
前記（９）に記載の画像処理装置。
（１１）
前記第１符号化部は、量子化された前記変換係数データを符号化し、
前記画像処理装置は、前記変換係数データの量子化前の値と、前記第１符号化部により下位ビットを破棄された後の前記変換係数データから逆量子化される値との差分に基づいて、前記誤差データを生成する生成部、をさらに備える、
前記（９）に記載の画像処理装置。
（１２）
前記生成部は、各ブロックの端部の高周波成分の前記変換係数データについて前記誤差データを生成する、前記（１０）又は前記（１１）に記載の画像処理装置。
（１３）
前記生成部は、相対的に大きい絶対値を有する変換係数に対応する誤差をゼロとする、前記（１０）〜（１２）のいずれか１項に記載の画像処理装置。
（１４）
前記生成部は、相対的に小さい絶対値を有する変換係数に対応する誤差のみを前記誤差データに含め、
前記画像処理装置は、前記誤差データに含まれる誤差に対応する前記画像内の位置を特定するパラメータを符号化する第３符号化部、をさらに備える、
前記（１０）〜（１２）のいずれか１項に記載の画像処理装置。
（１５）
前記生成部は、前記変換係数データを量子化する際に使用された量子化ステップに応じて、各変換係数の絶対値と比較される閾値を決定する、前記（１３）又は前記（１４）に記載の画像処理装置。
（１６）
前記画像処理装置は、各ブロックの端部の画素値を対称周期拡張によって拡張して離散ウェーブレット変換を実行することにより、前記変換係数データを生成する変換部、をさらに備える、前記（９）〜（１５）のいずれか１項に記載の画像処理装置。
（１７）
前記第２符号化部は、一部のサブバンドについてのみ前記誤差データを符号化する、前記（１６）に記載の画像処理装置。
（１８）
前記画像処理装置は、ＪＰＥＧ２０００方式に従って前記画像を符号化する装置であり、
前記ブロックは、タイルに相当する、
前記（９）〜（１７）のいずれか１項に記載の画像処理装置。
（１９）
１つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第１の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第２の符号化ストリームを取得することと、
前記第１の符号化ストリームから前記変換係数データを復号することと、
前記第２の符号化ストリームから前記誤差データを復号することと、
前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正することと、
を含む画像処理方法。
（２０）
１つ以上のブロックを含む画像の周波数成分の変換係数データを符号化して、第１の符号化ストリームを生成することと、
前記変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを符号化して、第２の符号化ストリームを生成することと、
前記第２の符号化ストリームを前記第１の符号化ストリームと関連付けて出力することと、
を含む画像処理方法。
（２１）
画像処理装置を制御するコンピュータを、
１つ以上のブロックを含む画像の周波数成分の変換係数データが符号化された第１の符号化ストリーム、及び前記変換係数データの下位ビットをレート制御のために破棄する際に生じた誤差を含む誤差データが符号化された第２の符号化ストリームを取得するストリーム取得部と、
前記第１の符号化ストリームから前記変換係数データを復号する第１復号部と、
前記第２の符号化ストリームから前記誤差データを復号する第２復号部と、
前記変換係数データ及び前記誤差データを合成することにより、前記変換係数データの誤差を補正する合成部と、
として機能させるためのプログラム。
（２２）
画像処理装置を制御するコンピュータを、
１つ以上のブロックを含む画像の周波数成分の変換係数データを符号化して、第１の符号化ストリームを生成する第１符号化部と、
前記変換係数データの下位ビットをレート制御のために破棄する際に生じる誤差を含む誤差データを符号化して、第２の符号化ストリームを生成する第２符号化部と、
前記第２の符号化ストリームを前記第１の符号化ストリームと関連付けて出力するストリーム出力部と、
として機能させるためのプログラム。
【符号の説明】
【０１８８】
１００，３００，５００，７００    画像処理装置（エンコーダ）
１３０，７３０                    ＤＷＴ（離散ウェーブレット変換）部
１４０，７４０                    量子化部
１６０                            符号化・レート制御部（第１符号化部）
１７０，３７０，５７０，７７０    誤差データ生成部
１８０，５８０                    誤差符号化部（第２符号化部）
５８５                            フラグ符号化部（第３符号化部）
１９０，５９０                    ストリーム出力部
２００，６００，８００            画像処理装置（デコーダ）
２１０，６１０                    ストリーム取得部
２２０                            復号部（第１復号部）
２４０，６４５                    誤差復号部（第２復号部）
６４０                            フラグ復号部（第３復号部）
２５０，６５０，８６０            合成部
２６０，８５０                    逆量子化部
２７０                            逆ＤＷＴ（離散ウェーブレット変換）部
【図１】
2013175870.tif 000005
【図２】
2013175870.tif 000006
【図３】
2013175870.tif 000007
【図４】
2013175870.tif 000008
【図５】
2013175870.tif 000009
【図６】
2013175870.tif 000010
【図７】
2013175870.tif 000011
【図８】
2013175870.tif 000012
【図９】
2013175870.tif 000013
【図１０】
2013175870.tif 000014
【図１１】
2013175870.tif 000015
【図１２】
2013175870.tif 000016
【図１３】
2013175870.tif 000017
【図１４】
2013175870.tif 000018
【図１５】
2013175870.tif 000019
【図１６】
2013175870.tif 000020
【図１７】
2013175870.tif 000021
【図１８】
2013175870.tif 000022
【図１９】
2013175870.tif 000023
【図２０】
2013175870.tif 000024
【図２１】
2013175870.tif 000025