(57)【要約】  本開示は、符号化効率の低減を抑制することができるようにする画像処理装置および方法に関する。画像の予測残差を直交変換するとともに、その予測残差が直交変換されて得られる係数データの有効桁数を、その画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、その係数データを量子化するとともに、その係数データが量子化されて得られる量子化係数の有効桁数を、そのローカルレベルのビット深度に基づいて制御し、量子化係数を符号化し、ビットストリームを生成する。本開示は、例えば、画像処理装置、画像符号化装置、または画像復号装置等に適用することができる。
2019159696.tif 000002
【特許請求の範囲】
【請求項１】
画像の予測残差を直交変換するとともに、前記予測残差が直交変換されて得られる係数データの有効桁数を、前記画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する直交変換部と、
前記直交変換部により得られる前記係数データを量子化するとともに、前記係数データが量子化されて得られる量子化係数の有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御する量子化部と、
前記量子化部により得られる前記量子化係数を符号化し、ビットストリームを生成する符号化部と
を備える画像処理装置。
【請求項２】
前記直交変換部は、前記ローカルレベルの前記ビット深度に応じたシフト量でビットシフトすることにより、前記係数データの有効桁数を制御し、
前記量子化部は、前記ローカルレベルの前記ビット深度に応じたシフト量でビットシフトすることにより、前記量子化係数の有効桁数を制御する
請求項１に記載の画像処理装置。
【請求項３】
前記画像のシーケンス毎に設定される前記係数データの有効桁数の制御量および前記量子化係数の有効桁数の制御量の補正値である拡張ビット精度を、前記ローカルレベルの前記ビット深度に基づいて導出する拡張ビット精度導出部をさらに備え、
前記直交変換部は、
前記係数データの有効桁数の制御量を、前記拡張ビット精度導出部により導出される前記拡張ビット精度を用いて補正し、
補正された前記制御量で前記係数データの有効桁数を制御し、
前記量子化部は、
前記量子化係数の有効桁数の制御量を、前記拡張ビット精度導出部により導出される前記拡張ビット精度を用いて補正し、
補正された前記制御量で前記量子化係数の有効桁数を制御する
請求項１に記載の画像処理装置。
【請求項４】
前記拡張ビット精度導出部は、前記シーケンスレベルの前記ビット深度と前記ローカルレベルの前記ビット深度との差分を、前記拡張ビット精度として導出する
請求項３に記載の画像処理装置。
【請求項５】
前記符号化部は、前記拡張ビット精度導出部により導出される前記拡張ビット精度に関する情報を符号化し、前記拡張ビット精度に関する情報を含む前記ビットストリームを生成する
請求項３に記載の画像処理装置。
【請求項６】
前記拡張ビット精度導出部により導出される前記拡張ビット精度を用いて差分パラメータを導出する差分パラメータ導出部をさらに備え、
前記符号化部は、前記差分パラメータ導出部により導出された前記差分パラメータを、前記拡張ビット精度に関する情報として符号化し、前記差分パラメータを含む前記ビットストリームを生成する
請求項５に記載の画像処理装置。
【請求項７】
前記差分パラメータは、前記画像のスライスレベルの前記ビット深度と前記ローカルレベルの前記ビット深度との差分である
請求項６に記載の画像処理装置。
【請求項８】
画像の予測残差を直交変換するとともに、前記予測残差が直交変換されて得られる係数データの有効桁数を、前記画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、
前記係数データを量子化するとともに、前記係数データが量子化されて得られる量子化係数の有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御し、
前記量子化係数を符号化し、ビットストリームを生成する
画像処理方法。
【請求項９】
画像の予測残差を直交変換するとともに、前記予測残差が直交変換されて得られる係数データの有効桁数を、前記画像に対応する予測画像または前記予測画像を生成する際に参照する復号画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する直交変換部と、
前記直交変換部により得られる前記係数データを量子化するとともに、前記係数データが量子化されて得られる量子化係数の有効桁数を、前記予測画像または前記復号画像の前記ローカルレベルの前記ビット深度に基づいて制御する量子化部と、
前記量子化部により得られる前記量子化係数を符号化し、ビットストリームを生成する符号化部と
を備える画像処理装置。
【請求項１０】
画像の予測残差を直交変換するとともに、前記予測残差が直交変換されて得られる係数データの有効桁数を、前記画像に対応する予測画像または前記予測画像を生成する際に参照する復号画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、
前記係数データを量子化するとともに、前記係数データが量子化されて得られる量子化係数の有効桁数を、前記予測画像または前記復号画像の前記ローカルレベルの前記ビット深度に基づいて制御し、
前記量子化係数を符号化し、ビットストリームを生成する
画像処理方法。
【請求項１１】
ビットストリームを復号する復号部と、
前記復号部により前記ビットストリームが復号されて得られる量子化係数を逆量子化するとともに、前記量子化係数が逆量子化されて得られる係数データの有効桁数を、シーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する逆量子化部と、
前記逆量子化部により前記量子化係数が逆量子化されて得られる前記係数データを逆直交変換するとともに、前記係数データが逆直交変換されて得られる残差データの有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御する逆直交変換部と
を備える画像処理装置。
【請求項１２】
前記逆量子化部は、前記ローカルレベルの前記ビット深度に応じたシフト量でビットシフトすることにより、前記係数データの有効桁数を制御し、
前記逆直交変換部は、前記ローカルレベルの前記ビット深度に応じたシフト量でビットシフトすることにより、前記残差データの有効桁数を制御する
請求項１１に記載の画像処理装置。
【請求項１３】
前記ビットストリームは、シーケンス毎に設定される前記係数データの有効桁数の制御量および前記残差データの有効桁数の制御量の補正値である拡張ビット精度に関する情報を含み、
前記復号部は、
前記ビットストリームを復号して前記ビットストリームに含まれる前記拡張ビット精度に関する情報を抽出し、
抽出した前記拡張ビット精度に関する情報に基づいて、前記拡張ビット精度を導出し、
前記逆量子化部は、
前記係数データの有効桁数の制御量を、前記復号部により導出される前記拡張ビット精度を用いて補正し、
補正された前記制御量で前記係数データの有効桁数を制御し、
前記逆直交変換部は、
前記残差データの有効桁数の制御量を、前記復号部により導出される前記拡張ビット精度を用いて補正し、
補正された前記制御量で前記残差データの有効桁数を制御する
請求項１１に記載の画像処理装置。
【請求項１４】
前記拡張ビット精度は、前記シーケンスレベルの前記ビット深度と前記ローカルレベルの前記ビット深度との差分である
請求項１３に記載の画像処理装置。
【請求項１５】
前記拡張ビット精度に関する情報は、前記画像のスライスレベルの前記ビット深度と前記ローカルレベルの前記ビット深度との差分である差分パラメータを含み、
前記復号部は、前記シーケンスレベルの前記ビット深度から前記スライスレベルの前記ビット深度を減算し、前記差分パラメータを加算することにより、前記拡張ビット精度を導出する
請求項１４に記載の画像処理装置。
【請求項１６】
前記拡張ビット精度に関する情報は、前記画像のシーケンスレベルの前記ビット深度と前記ローカルレベルの前記ビット深度との差分である差分パラメータを含み、
前記復号部は、前記シーケンスレベルの前記ビット深度から前記差分パラメータを減算することにより、前記拡張ビット精度を導出する
請求項１４に記載の画像処理装置。
【請求項１７】
前記拡張ビット精度に関する情報は、前記拡張ビット精度と前記拡張ビット精度の予測値との差分である差分パラメータを含み、
前記復号部は、前記差分パラメータに前記予測値を加算することにより、前記拡張ビット精度を導出する
請求項１４に記載の画像処理装置。
【請求項１８】
ビットストリームを復号し、
前記ビットストリームが復号されて得られる量子化係数を逆量子化するとともに、前記量子化係数が逆量子化されて得られる係数データの有効桁数を、シーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、
前記量子化係数が逆量子化されて得られる前記係数データを逆直交変換するとともに、前記係数データが逆直交変換されて得られる残差データの有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御する
画像処理方法。
【請求項１９】
ビットストリームを復号する復号部と、
前記復号部により前記ビットストリームが復号されて得られる量子化係数を逆量子化するとともに、前記量子化係数が逆量子化されて得られる係数データの有効桁数を、予測画像または前記予測画像を生成する際に参照する復号画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する逆量子化部と、
前記逆量子化部により前記量子化係数が逆量子化されて得られる前記係数データを逆直交変換するとともに、前記係数データが逆直交変換されて得られる残差データの有効桁数を、前記予測画像または前記復号画像の前記ローカルレベルの前記ビット深度に基づいて制御する逆直交変換部と
を備える画像処理装置。
【請求項２０】
ビットストリームを復号し、
前記ビットストリームが復号されて得られる量子化係数を逆量子化するとともに、前記量子化係数が逆量子化されて得られる係数データの有効桁数を、予測画像または前記予測画像を生成する際に参照する復号画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、
前記量子化係数が逆量子化されて得られる前記係数データを逆直交変換するとともに、前記係数データが逆直交変換されて得られる残差データの有効桁数を、前記予測画像または前記復号画像の前記ローカルレベルの前記ビット深度に基づいて制御する
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置および方法に関し、特に、符号化効率の低減を抑制することができるようにした画像処理装置および方法に関する。
【背景技術】
【０００２】
従来、画像の符号化や復号において、シーケンスパラメータセット（SPS（Sequence Parameter Set））で規定される入力画像のビット深度’BitDepth’に基づいて、直交変換や量子化（逆量子化や逆直交変換）の演算精度を制御する方法があった（例えば、非特許文献１参照）。【０００３】
例えば、非特許文献１に記載の画像符号化・復号においては、直交変換や量子化（逆量子化や逆直交変換）の演算精度を制御するスケーリングパラメータ’bdShift’は、上述のようにシーケンス毎に設定される（SPSにおいて規定される）ビット深度’BitDepth’に基づいて設定されていた。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】J TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU（International Telecommunication Union）, "High efficiency video coding", H.265, 12/2016
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、入力画像のビット深度は、例えばピクチャ毎やピクチャ内の局所領域毎等、シーケンス内において時間方向や空間方向に変化するが、従来の方法では、直交変換や量子化（逆量子化や逆直交変換）の演算精度を、入力画像のビット深度のそのような変化に応じて、シーケンス内において時間方向や空間方向に制御することが困難であった。そのため、符号化効率が低減するおそれがあった。【０００６】
本開示は、このような状況に鑑みてなされたものであり、符号化効率の低減を抑制することができるようにするものである。
【課題を解決するための手段】
【０００７】
本技術の一側面の画像処理装置は、画像の予測残差を直交変換するとともに、前記予測残差が直交変換されて得られる係数データの有効桁数を、前記画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する直交変換部と、前記直交変換部により得られる前記係数データを量子化するとともに、前記係数データが量子化されて得られる量子化係数の有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御する量子化部と、前記量子化部により得られる前記量子化係数を符号化し、ビットストリームを生成する符号化部とを備える画像処理装置である。【０００８】
本技術の一側面の画像処理方法は、画像の予測残差を直交変換するとともに、前記予測残差が直交変換されて得られる係数データの有効桁数を、前記画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、前記係数データを量子化するとともに、前記係数データが量子化されて得られる量子化係数の有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御し、前記量子化係数を符号化し、ビットストリームを生成する画像処理方法である。【０００９】
本技術の他の側面の画像処理装置は、画像の予測残差を直交変換するとともに、前記予測残差が直交変換されて得られる係数データの有効桁数を、前記画像に対応する予測画像または前記予測画像を生成する際に参照する復号画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する直交変換部と、前記直交変換部により得られる前記係数データを量子化するとともに、前記係数データが量子化されて得られる量子化係数の有効桁数を、前記予測画像または前記復号画像の前記ローカルレベルの前記ビット深度に基づいて制御する量子化部と、前記量子化部により得られる前記量子化係数を符号化し、ビットストリームを生成する符号化部とを備える画像処理装置である。【００１０】
本技術の他の側面の画像処理方法は、画像の予測残差を直交変換するとともに、前記予測残差が直交変換されて得られる係数データの有効桁数を、前記画像に対応する予測画像または前記予測画像を生成する際に参照する復号画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、前記係数データを量子化するとともに、前記係数データが量子化されて得られる量子化係数の有効桁数を、前記予測画像または前記復号画像の前記ローカルレベルの前記ビット深度に基づいて制御し、前記量子化係数を符号化し、ビットストリームを生成する画像処理方法である。【００１１】
本技術のさらに他の側面の画像処理装置は、ビットストリームを復号する復号部と、前記復号部により前記ビットストリームが復号されて得られる量子化係数を逆量子化するとともに、前記量子化係数が逆量子化されて得られる係数データの有効桁数を、シーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する逆量子化部と、前記逆量子化部により前記量子化係数が逆量子化されて得られる前記係数データを逆直交変換するとともに、前記係数データが逆直交変換されて得られる残差データの有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御する逆直交変換部とを備える画像処理装置である。【００１２】
本技術のさらに他の側面の画像処理方法は、ビットストリームを復号し、前記ビットストリームが復号されて得られる量子化係数を逆量子化するとともに、前記量子化係数が逆量子化されて得られる係数データの有効桁数を、シーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、前記量子化係数が逆量子化されて得られる前記係数データを逆直交変換するとともに、前記係数データが逆直交変換されて得られる残差データの有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御する画像処理方法である。【００１３】
本技術のさらに他の側面の画像処理装置は、ビットストリームを復号する復号部と、前記復号部により前記ビットストリームが復号されて得られる量子化係数を逆量子化するとともに、前記量子化係数が逆量子化されて得られる係数データの有効桁数を、予測画像または前記予測画像を生成する際に参照する復号画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する逆量子化部と、前記逆量子化部により前記量子化係数が逆量子化されて得られる前記係数データを逆直交変換するとともに、前記係数データが逆直交変換されて得られる残差データの有効桁数を、前記予測画像または前記復号画像の前記ローカルレベルの前記ビット深度に基づいて制御する逆直交変換部とを備える画像処理装置である。【００１４】
本技術のさらに他の側面の画像処理方法は、ビットストリームを復号し、前記ビットストリームが復号されて得られる量子化係数を逆量子化するとともに、前記量子化係数が逆量子化されて得られる係数データの有効桁数を、予測画像または前記予測画像を生成する際に参照する復号画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、前記量子化係数が逆量子化されて得られる前記係数データを逆直交変換するとともに、前記係数データが逆直交変換されて得られる残差データの有効桁数を、前記予測画像または前記復号画像の前記ローカルレベルの前記ビット深度に基づいて制御する画像処理方法である。【００１５】
本技術の一側面の画像処理装置および方法においては、画像の予測残差が直交変換されるとともに、その予測残差が直交変換されて得られる係数データの有効桁数が、その画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御され、その係数データが量子化されるとともに、その係数データが量子化されて得られる量子化係数の有効桁数が、そのローカルレベルのビット深度に基づいて制御され、その量子化係数が符号化され、ビットストリームが生成される。【００１６】
本技術の他の側面の画像処理装置および方法においては、画像の予測残差が直交変換されるとともに、その予測残差が直交変換されて得られる係数データの有効桁数が、その画像に対応する予測画像またはその予測画像を生成する際に参照する復号画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御され、その係数データが量子化されるとともに、その係数データが量子化されて得られる量子化係数の有効桁数が、その予測画像または復号画像のローカルレベルのビット深度に基づいて制御され、その量子化係数が符号化され、ビットストリームが生成される。【００１７】
本技術のさらに他の側面の画像処理装置および方法においては、ビットストリームが復号され、そのビットストリームが復号されて得られる量子化係数が逆量子化されるとともに、その量子化係数が逆量子化されて得られる係数データの有効桁数が、シーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御され、その量子化係数が逆量子化されて得られる係数データが逆直交変換されるとともに、その係数データが逆直交変換されて得られる残差データの有効桁数が、そのローカルレベルのビット深度に基づいて制御される。【００１８】
本技術のさらに他の側面の画像処理装置および方法においては、ビットストリームが復号され、ビットストリームが復号されて得られる量子化係数が逆量子化されるとともに、その量子化係数が逆量子化されて得られる係数データの有効桁数が、予測画像またはその予測画像を生成する際に参照する復号画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御され、その量子化係数が逆量子化されて得られる係数データが逆直交変換されるとともに、その係数データが逆直交変換されて得られる残差データの有効桁数が、その予測画像または復号画像のローカルレベルのビット深度に基づいて制御される。
【発明の効果】
【００１９】
本開示によれば、画像を処理することができる。特に、符号化効率の低減を抑制することができる。
【図面の簡単な説明】
【００２０】
【図１】演算精度の制御の様子の例を示す図である。
【図２】使用ビットレンジの例を示す図である。
【図３】演算精度の変化の様子の例を示す図である。
【図４】ピクチャ間のビット深度の変化の様子の例を示す図である。
【図５】局所領域間の輝度信号のビット深度の変化の例を示す図である。
【図６】局所領域間の輝度信号のビット深度の変化の例を示す図である。
【図７】局所領域間の色差信号のビット深度の変化の例を示す図である。
【図８】局所領域間の色差信号のビット深度の変化の例を示す図である。
【図９】演算精度の主な制御方法の一覧を示す図である。
【図１０】方法＃１による直交変換や量子化の演算精度の制御の様子の例を示す図である。
【図１１】方法＃１による逆量子化や逆直交変換の演算精度の制御の様子の例を示す図である。
【図１２】演算精度の変化の様子の例を示す図である。
【図１３】方法＃２による直交変換や量子化の演算精度の制御の様子の例を示す図である。
【図１４】方法＃２による逆量子化や逆直交変換の演算精度の制御の様子の例を示す図である。
【図１５】画像符号化装置の主な構成例を示すブロック図である。
【図１６】制御部の主な構成例を示すブロック図である。
【図１７】直交変換部の主な構成例を示すブロック図である。
【図１８】プライマリ水平変換部の主な構成例を示すブロック図である。
【図１９】プライマリ垂直変換部の主な構成例を示すブロック図である。
【図２０】量子化部の主な構成例を示すブロック図である。
【図２１】画像符号化処理の流れの例を説明するフローチャートである。
【図２２】dBD,deltaX導出処理の流れの例を説明するフローチャートである。
【図２３】入力画像の例を示す図である。
【図２４】拡張ビット精度制御グループの例を示す図である。
【図２５】差分パラメータの予測値の導出方法の例を示す図である。
【図２６】直交変換処理の流れの例を説明するフローチャートである。
【図２７】プライマリ水平変換処理の流れの例を説明するフローチャートである。
【図２８】プライマリ垂直変換処理の流れの例を説明するフローチャートである。
【図２９】量子化処理の流れの例を説明するフローチャートである。
【図３０】拡張ビット精度情報符号化処理の流れの例を説明するフローチャートである。
【図３１】シンタックスの例を示す図である。
【図３２】画像復号装置の主な構成例を示すブロック図である。
【図３３】復号部の主な構成例を示すブロック図である。
【図３４】逆量子化部の主な構成例を示すブロック図である。
【図３５】逆直交変換部の主な構成例を示すブロック図である。
【図３６】逆プライマリ垂直変換部の主な構成例を示すブロック図である。
【図３７】逆プライマリ水平変換部の主な構成例を示すブロック図である。
【図３８】画像復号処理の流れの例を説明するフローチャートである。
【図３９】dBD導出処理の流れの例を説明するフローチャートである。
【図４０】逆量子化処理の流れの例を説明するフローチャートである。
【図４１】逆直交変換処理の流れの例を説明するフローチャートである。
【図４２】逆プライマリ垂直変換処理の流れの例を説明するフローチャートである。
【図４３】逆プライマリ水平変換処理の流れの例を説明するフローチャートである。
【図４４】画像符号化装置の主な構成例を示すブロック図である。
【図４５】制御部の主な構成例を示すブロック図である。
【図４６】画像符号化処理の流れの例を説明するフローチャートである。
【図４７】シーケンスビット深度設定処理の流れの例を説明するフローチャートである。
【図４８】dBD導出処理の流れの例を説明するフローチャートである。
【図４９】拡張ビット精度情報符号化処理の流れの例を説明するフローチャートである。
【図５０】画像復号装置の主な構成例を示すブロック図である。
【図５１】復号部の主な構成例を示すブロック図である。
【図５２】画像復号処理の流れの例を説明するフローチャートである。
【図５３】シーケンスビット深度導出処理の流れの例を説明するフローチャートである。
【図５４】コンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【００２１】
以下、本開示を実施するための形態（以下実施の形態とする）について説明する。なお、説明は以下の順序で行う。
１．演算精度の制御
２．共通コンセプト（各手法概要）
３．第１の実施の形態（方法＃１詳細）
４．第２の実施の形態（方法＃２詳細）
５．付記
【００２２】
＜１．演算精度の制御＞
＜技術内容・技術用語をサポートする文献等＞
本技術で開示される範囲は、実施例に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献に記載されている内容も含まれる。
【００２３】
非特許文献１：（上述）
非特許文献２：TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU（International Telecommunication Union）, "Advanced video coding for generic audiovisual services", H.264, 04/2017
非特許文献３：Jianle Chen, Elena Alshina, Gary J. Sullivan, Jens-Rainer, Jill Boyce, "Algorithm Description of Joint Exploration Test Model 4", JVET-G1001_v1, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT, 13-21 July 2017
【００２４】
つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、非特許文献１に記載されているQuad-Tree Block Structure、非特許文献３に記載されているQTBT（Quad Tree Plus Binary Tree） Block Structureが実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース（Parsing）、シンタックス（Syntax）、セマンティクス（Semantics）等の技術用語についても同様に、実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。
【００２５】
また、本明細書において、画像（ピクチャ）の部分領域や処理単位として説明に用いる「ブロック」（処理部を示すブロックではない）は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、上述の非特許文献１乃至非特許文献３に記載のTB（Transform Block）、TU（Transform Unit）、PB（Prediction Block）、PU（Prediction Unit）、SCU（Smallest Coding Unit）、CU（Coding Unit）、LCU（Largest Coding Unit）、CTB（Coding Tree Block）、CTU（Coding Tree Unit）、変換ブロック、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域（処理単位）が含まれるものとする。
【００２６】
また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック（例えばLCUやSCU等）のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報の情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定（例えば、許容されるブロックサイズの範囲の指定等）も含む。
【００２７】
＜演算精度の制御＞
従来、例えば非特許文献１に記載の方法のように、画像の符号化や復号において、シーケンスパラメータセット（SPS（Sequence Parameter Set））で規定される入力画像のビット深度'BitDepth'に基づいて、直交変換や量子化（逆量子化や逆直交変換）の演算精度を制御する方法があった。
【００２８】
例えば、図１のＡに示されるように、符号化において、入力画像とその予測画像との差分である残差データ（予測残差とも称する）を求め（図示せず）、その予測残差resに対してプライマリ水平変換１１、プライマリ垂直変換１２、セカンダリ変換（図示せず）、量子化１３、および符号化１４を行う方法がある。
【００２９】
このような符号化のプライマリ水平変換１１において、所定のスケーリングパラメータであるプライマリ水平変換シフト量fwdShift1を用いて変換後の係数データtmpをビットシフトし、プライマリ垂直変換１２において、所定のスケーリングパラメータであるプライマリ垂直変換シフト量fwdShift2を用いて変換後の係数データ（変換係数とも称する）coefをビットシフトし、量子化１３において、所定のスケーリングパラメータである量子化シフト量fwdQShiftを用いて量子化後の係数データ（量子化係数とも称する）qcoefをビットシフトすることにより、それぞれの有効桁数を制御する方法がある。なお、これらのスケーリングパラメータの内、プライマリ水平変換シフト量fwdShift1と量子化シフト量fwdQShiftとが、ビット深度'bitDepth'に依存する。
【００３０】
このような符号化に対応する復号の場合、図１のＢに示されるように、ビットストリームbitstreamに対して、復号２１、逆量子化２２、逆セカンダリ変換（図示せず）、逆プライマリ垂直変換２３、および逆プライマリ水平変換２４が順次行われ、得られた予測残差resrecに対して予測画像が加算されて（図示せず）復号画像が得られる。
【００３１】
このような復号の逆量子化２２において、所定のスケーリングパラメータである逆量子化シフト量invQShiftを用いて逆量子化後の係数データ（つまり変換係数）coefをビットシフトし、逆プライマリ垂直変換２３において、所定のスケーリングパラメータである逆プライマリ垂直変換シフト量invShift1を用いて変換後の係数データtmpをビットシフトし、逆プライマリ水平変換２４として、所定のスケーリングパラメータである逆プライマリ水平変換シフト量invShift2を用いて変換後の残差データ（つまり予測残差）resrecをビットシフトすることにより、それぞれの有効桁数を制御する方法がある。なお、これらのスケーリングパラメータの内、逆プライマリ水平変換シフト量invShift2と逆量子化シフト量invQShiftとが、ビット深度'bitDepth'に依存する。
【００３２】
つまり、狭いレンジの信号を想定した場合、データのとり得る最小値coefMin乃至最大値coefMaxのフルレンジを使って演算されることはない。すなわち、図２に示されるように、データのLSB（Least Significant Bit）乃至MSB（Most Significant Bit）のビット幅（log2TransformRange+1）bitには、係数の数値表現に使用されているビットフィールド（図中斜線部分）と、使用されていないビットフィールド（図中白地部分）とが存在する。つまり、最小値coefMin乃至最大値coefMaxの範囲内で、使用されていないビットフィールドの一部を係数の有効桁数を上げるビットとして用いる余地がある。
【００３３】
図１の例では、この余地（使われないレンジ）を利用して係数データをビットシフトすることにより、直交変換や量子化（逆量子化や逆直交変換）における係数データの有効桁数（すなわち演算精度）を制御している。例えば復号の場合、逆量子化、逆垂直変換、逆水平変換の各処理において、係数データや残差データの有効桁数は、図３のように拡張される。データの有効桁数が拡張することにより、演算精度が向上する。
【００３４】
しかしながら、入力画像のビット深度は、例えばピクチャ毎やピクチャ内の局所領域毎等、シーケンス内においても時間方向や空間方向に変化しうる。例えば、図４のＡに示されるフレーム４１においては、照明が少なく全体が暗い画像となっている。このフレーム４１内の画素値の分布はヒストグラム４２のようになり、信号のレンジ（画素値の最小値乃至最大値の幅）（以下、ビット深度とも称する）は、９ビットである。
【００３５】
図４のＢに示されるフレーム４３は、フレーム４１の次のフレームである。フレーム４３は、照明が多く全体が明るい画像となっている。このフレーム４３の画素値の分布はヒストグラム４４のようになり、ビット深度は１０ビットである。
【００３６】
このように例えば照明変動等が起きると、ピクチャ間で信号のレンジ（ビット深度）が変化する。つまり、シーケンス内においても時間方向のビット深度の変化が起こり得る。
【００３７】
また、ピクチャ内においても、局所領域毎にビット深度が変化することもあり得る。つまり、空間方向のビット深度の変化も起こり得る。例えば、図５に示される輝度信号のピクチャ４５を４×４に１６分割し、それぞれを局所領域（局所領域００乃至局所領域３３）とすると、この輝度信号のピクチャ４５の各局所領域の画素値のヒストグラムは、図６のようになる。つまり、ピクチャ４５の局所領域３０および３３のビット深度は９ビットであり、ピクチャ全体（all）やその他の局所領域のビット深度は１０ビットである。このように、輝度信号のビット深度は、ピクチャ内の輝度分布に応じて、空間方向に変化しうる。
【００３８】
また、例えば、図７に示される色差信号（Ｃｂ）のピクチャ４６を４×４に１６分割し、それぞれを局所領域（局所領域００乃至局所領域３３）とすると、この色差信号のピクチャ４６の各局所領域の画素値のヒストグラムは、図８のようになる。つまり、この場合、ピクチャ４６には、ビット深度が７ビットの局所領域、ビット深度が８ビットの局所領域、９ビットの局所領域が存在する。このように、色差信号のビット深度は、ピクチャ内の色差分布に応じて空間方向に変化しうる。
【００３９】
これに対して、直交変換や量子化（逆量子化や逆直交変換）に用いられるスケーリングパラメータは、上述したようにシーケンスパラメータセットにセットされる。つまり、直交変換や量子化（逆量子化や逆直交変換）における有効桁数の制御は、シーケンス毎に行われる。
【００４０】
そのため、直交変換や量子化（逆量子化や逆直交変換）の演算精度を、入力画像のビット深度の変化に応じて、シーケンス内において時間方向や空間方向に制御することが困難であった。そのため、符号化効率が低減するおそれがあった。
【００４１】
＜２．共通コンセプト＞
＜シーケンス内における演算精度の制御＞
そこで、画像の予測残差を直交変換するとともに、その予測残差が直交変換されて得られる係数データの有効桁数を、その画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、その係数データを量子化するとともに、その係数データが量子化されて得られる量子化係数の有効桁数を、そのローカルレベルのビット深度に基づいて制御し、その量子化係数を符号化し、ビットストリームを生成するようにする。
【００４２】
例えば、画像処理装置において、画像の予測残差を直交変換するとともに、その予測残差が直交変換されて得られる係数データの有効桁数を、その画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する直交変換部と、その直交変換部により得られる係数データを量子化するとともに、その係数データが量子化されて得られる量子化係数の有効桁数を、そのローカルレベルのビット深度に基づいて制御する量子化部と、その量子化部により得られる量子化係数を符号化し、ビットストリームを生成する符号化部とを備えるようにする。
【００４３】
このようにすることにより、直交変換および量子化におけるデータの有効桁数を、シーケンス内においても時間方向または空間方向に対して制御することができる。つまり、直交変換および量子化の演算精度を、シーケンス内においても時間方向または空間方向に対して制御することができる。したがって、符号化効率の低減を抑制することができる。
【００４４】
また、ビットストリームを復号し、そのビットストリームが復号されて得られる量子化係数を逆量子化するとともに、その量子化係数が逆量子化されて得られる係数データの有効桁数を、シーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、その量子化係数が逆量子化されて得られる係数データを逆直交変換するとともに、その係数データが逆直交変換されて得られる残差データの有効桁数を、そのローカルレベルのビット深度に基づいて制御するようにする。
【００４５】
例えば、画像処理装置において、ビットストリームを復号する復号部と、その復号部によりビットストリームが復号されて得られる量子化係数を逆量子化するとともに、その量子化係数が逆量子化されて得られる係数データの有効桁数を、シーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する逆量子化部と、その逆量子化部により量子化係数が逆量子化されて得られる係数データを逆直交変換するとともに、その係数データが逆直交変換されて得られる残差データの有効桁数を、そのローカルレベルのビット深度に基づいて制御する逆直交変換部とを備えるようにする。
【００４６】
このようにすることにより、逆量子化および逆直交変換におけるデータの有効桁数を、シーケンス内においても時間方向または空間方向に対して制御することができる。つまり、逆量子化および逆直交変換の演算精度を、シーケンス内においても時間方向または空間方向に対して制御することができる。したがって、符号化効率の低減を抑制することができる。
【００４７】
また、画像の予測残差を直交変換するとともに、その予測残差が直交変換されて得られる係数データの有効桁数を、その画像に対応する予測画像（またはその予測画像を生成する際に参照する復号画像）のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、その係数データを量子化するとともに、その係数データが量子化されて得られる量子化係数の有効桁数を、その予測画像（またはその予測画像を生成する際に参照する復号画像）のローカルレベルのビット深度に基づいて制御し、その量子化係数を符号化し、ビットストリームを生成するようにする。
【００４８】
例えば、画像処理装置において、画像の予測残差を直交変換するとともに、その予測残差が直交変換されて得られる係数データの有効桁数を、その画像に対応する予測画像（またはその予測画像を生成する際に参照する復号画像）のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する直交変換部と、その直交変換部により得られる係数データを量子化するとともに、その係数データが量子化されて得られる量子化係数の有効桁数を、その予測画像（またはその予測画像を生成する際に参照する復号画像）のローカルレベルのビット深度に基づいて制御する量子化部と、その量子化部により得られる量子化係数を符号化し、ビットストリームを生成する符号化部とを備えるようにする。
【００４９】
このようにすることにより、直交変換および量子化におけるデータの有効桁数を、シーケンス内においても時間方向または空間方向に対して制御することができる。つまり、直交変換および量子化の演算精度を、シーケンス内においても時間方向または空間方向に対して制御することができる。したがって、符号化効率の低減を抑制することができる。
【００５０】
また、ビットストリームを復号し、そのビットストリームが復号されて得られる量子化係数を逆量子化するとともに、その量子化係数が逆量子化されて得られる係数データの有効桁数を、予測画像（またはその予測画像を生成する際に参照する復号画像）のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、その量子化係数が逆量子化されて得られる係数データを逆直交変換するとともに、その係数データが逆直交変換されて得られる残差データの有効桁数を、その予測画像（またはその予測画像を生成する際に参照する復号画像）のローカルレベルのビット深度に基づいて制御するようにする。
【００５１】
例えば、ビットストリームを復号する復号部と、その復号部によりビットストリームが復号されて得られる量子化係数を逆量子化するとともに、その量子化係数が逆量子化されて得られる係数データの有効桁数を、予測画像（またはその予測画像を生成する際に参照する復号画像）のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する逆量子化部と、その逆量子化部により量子化係数が逆量子化されて得られる係数データを逆直交変換するとともに、その係数データが逆直交変換されて得られる残差データの有効桁数を、その予測画像（またはその予測画像を生成する際に参照する復号画像）のローカルレベルのビット深度に基づいて制御する逆直交変換部とを備えるようにする。
【００５２】
このようにすることにより、逆量子化および逆直交変換におけるデータの有効桁数を、シーケンス内においても時間方向または空間方向に対して制御することができる。つまり、逆量子化および逆直交変換の演算精度を、シーケンス内においても時間方向または空間方向に対して制御することができる。したがって、符号化効率の低減を抑制することができる。
【００５３】
＜制御例＞
以上のような演算精度の制御例の一覧を図９に示す。図９に示される表において、最上段の項目名の行を除き、上から１段目の例（方法＃１）の場合、符号化側においては、有効桁数の制御の補正量を示すパラメータである拡張ビット精度dBDは、入力画像から導出される。そして、その拡張ビット精度dBDを用いた有効桁数の制御（伸長や正規化）は、直交変換処理および量子化処理、並びに、逆量子化処理および逆直交変換処理において行われる。より具体的には、これらの処理におけるデータの有効桁数のシーケンス毎の制御が、この拡張ビット精度dBDを用いて補正される。
【００５４】
そして、その拡張ビット精度dBDを用いた差分パラメータdeltaXが、符号化側から復号側に伝送される。復号側においては、拡張ビット精度dBDは、その伝送されてきた差分パラメータdeltaXを用いて導出される。そして、その拡張ビット精度dBDを用いた有効桁数の制御（伸長や正規化）は、逆量子化処理および逆直交変換処理において行われる。より具体的には、これらの処理におけるデータの有効桁数のシーケンス毎の制御が、この拡張ビット精度dBDを用いて補正される。
【００５５】
したがって、方法＃１の場合、直交変換処理および量子化処理、並びに、逆量子化処理および逆直交変換処理の演算精度を向上させることができる（つまり、演算精度の低減を抑制することができる）。したがって、符号化効率を向上させることができる（つまり、符号化効率の低減を抑制することができる）。
【００５６】
また、この拡張ビット精度dBDを用いて有効桁数の制御（伸長や正規化）を、直交変換処理および量子化処理、並びに、逆量子化処理および逆直交変換処理において（これらの処理と一括して）行うことができる。したがって、新たな処理部を設けずに有効桁数の制御を実現することができるので、符号化や復号に関する処理の負荷（例えば回路規模等の実装コスト）の増大を抑制することができる。
【００５７】
さらに、差分パラメータdeltaXを符号化側から復号側に伝送するため、符号化側が、復号側において用いられる拡張ビット精度dBDを制御することができる。つまり、例えば、符号化側が復号側における演算精度（データの有効桁数）を制御することができる等、符号化側の処理の自由度を向上させることができる。
【００５８】
なお、符号化・復号方法として、直交変換処理や量子化処理（逆量子化処理や逆直交変換処理）をスキップすることができるようにする方法もある。このような符号化・復号方法の場合、これらの処理をスキップする係数データに対しては、上述のような拡張ビット精度dBDを用いたシーケンス内での有効桁数の制御（伸長や正規化）は不要である。上述の方法＃１の場合、有効桁数の制御（伸長や正規化）を直交変換処理および量子化処理（逆量子化処理および逆直交変換処理）と一括して行うことができるので、直交変換処理および量子化処理（逆量子化処理および逆直交変換処理）をスキップする係数データの有効桁数の制御を省略することができる。つまり、係数データのみの有効桁数を制御することができる。したがって、不要な処理の増大を抑制し、符号化や復号に関する処理の負荷の増大を抑制することができる。
【００５９】
また、図９の表の上から２段目の例（方法＃２）の場合、符号化側も復号側も、拡張ビット精度dBDは、予測画像（またはその予測画像生成で参照する復号画像）から導出される。そして、その拡張ビット精度dBDを用いた有効桁数の制御（伸長や正規化）は、直交変換処理および量子化処理、並びに、逆量子化処理および逆直交変換処理において行われる。より具体的には、これらの処理におけるデータの有効桁数のシーケンス毎の制御が、この拡張ビット精度dBDを用いて補正される。つまりこの場合、差分パラメータdeltaXの伝送は省略される。
【００６０】
したがって、方法＃２の場合、直交変換処理および量子化処理、並びに、逆量子化処理および逆直交変換処理の演算精度を向上させることができる（つまり、演算精度の低減を抑制することができる）。したがって、符号化効率を向上させることができる（つまり、符号化効率の低減を抑制することができる）。
【００６１】
また、この拡張ビット精度dBDを用いて有効桁数の制御（伸長や正規化）を、直交変換処理および量子化処理、並びに、逆量子化処理および逆直交変換処理において（これらの処理と一括して）行うことができる。したがって、新たな処理部を設けずに有効桁数の制御を実現することができるので、回路規模の増大を抑制することができる。
【００６２】
さらに、上述のように差分パラメータdeltaXの伝送が省略されるため、その分、符号化効率を向上させることができる（拡張ビット精度dBDに係るオーバーヘッドを削減することができる）。
【００６３】
また、方法＃１の場合と同様に、有効桁数の制御（伸長や正規化）を直交変換処理および量子化処理（逆量子化処理および逆直交変換処理）と一括して行うため、それらの処理をスキップする係数データの有効桁数の制御を省略することができる。したがって、直交変換処理や量子化処理（逆量子化処理や逆直交変換処理）をスキップすることができるようにする符号化・復号方法の場合には、係数データのみの有効桁数を制御することができる。つまり、不要な処理の増大を抑制し、符号化や復号に関する処理の負荷の増大を抑制することができる。
【００６４】
＜方法＃１概要＞
例えば、方法＃１の場合、符号化におけるプライマリ水平変換１１乃至符号化１４の各処理は、図１０のように行われる。まず、入力画像（Input sequence）に対して、シーケンスレベルよりも小さいデータ単位であるローカルレベル（block）毎の画素値の最小値（minPixelVal）および最大値（maxPixelVal）を探索する処理である領域毎画素最小値最大値探索５１が行われる。
【００６５】
そして、この探索により検出されたローカルレベル毎の画素値の最小値（minPixelVal）および最大値（maxPixelVal）を用いて、そのローカルレベル毎に拡張ビット精度dBDを導出するdBD導出５２が行われる。このdBD導出５２においては、例えば、各ローカルレベルのビット深度LocalBitDepthが、ローカルレベル毎の画素値の最小値（minPixelVal）および最大値（maxPixelVal）を用いて、以下の式（１）のように導出される。
【００６６】
なお、式（１）で導出されたローカルのビット深度LocalBitDepthを、所定の閾値minLocalBitDepth（例えば、8）を参照して、さらに式（１Ａ）に示すように、LocalBitDepth = max(minLocalBitDepth,LocalBitDepth)として補正してもよい。こうすることで、後続の式（２）で導出される拡張ビット精度dBDの値が大きくなり過ぎる（すなわち、有効桁数をあげ過ぎて中間係数データが最小値coefMin乃至最大値coefMaxの範囲を超えてしまう）ケースの発生を抑制することができる。なお、式（１Ａ）において、演算子max(x, y)は、数値x, yのうち大きい値を返す演算子である。
【００６７】
LocalBitDepth = ceil(log2(maxPixelVal - minPixelVal))  ・・・（１）
LocalBitDepth = max(minLocalBitDepth, LocalBitDepth)  ・・・（１Ａ）
【００６８】
なお、log2(x)は、２を底とする実数xの対数値を返す関数であり、ceil(x)は、実数xに対して、x以上の最小の整数を返す天井関数である。そして、拡張ビット精度dBDが、そのローカルレベルのビット深度LocalBitDepthとシーケンスレベルのビット深度channelBitDepthとを用いて、以下の式（２）のように導出される。
【００６９】
dBD = channelBitDepth - LocalBitDepth  ・・・（２）
【００７０】
プライマリ水平変換１１においては、その拡張ビット精度dBDを用いて、シーケンスレベルの有効桁数の制御量（シフト量）が補正される。つまり、シーケンスレベルのプライマリ水平変換シフト量fwdShift1および拡張ビット精度dBDが用いられて、係数データtmpの有効桁数が制御される。より具体的には、係数データtmpが、(fwdShfit1-dBD)ビットだけビットシフトされる（>>(fwdShift1-dBD)）。つまり、拡張ビット精度dBDは、入力画像のシーケンス毎に設定される係数データの有効桁数の制御量および量子化係数の有効桁数の制御量（fwdShift1）の補正値である。
【００７１】
プライマリ垂直変換１２においては、シーケンスレベルのプライマリ垂直変換シフト量fwdShift2が用いられて、変換係数coefの有効桁数が制御される。より具体的には、変換係数coefが、fwdShift2ビットだけビットシフトされる（>>fwdShift2）。
【００７２】
量子化１３においては、その拡張ビット精度dBDを用いて、シーケンスレベルの有効桁数の制御量（シフト量）が補正される。つまり、シーケンスレベルの量子化シフト量fwdQShiftおよび拡張ビット精度dBDが用いられて、量子化係数qcoefの有効桁数が制御される。より具体的には、量子化係数qcoefが、(fwdQShift+dBD)ビットだけビットシフトされる（>>(fwdQShift+dBD)）。つまり、拡張ビット精度dBDは、入力画像のシーケンス毎に設定される量子化係数qcoefの有効桁数の制御量および量子化係数の有効桁数の制御量である量子化シフト量fwdQShiftの補正値である。
【００７３】
なお、便宜上、シーケンスレベルのビット深度channelBitDepthをーパラメータとして参照して決まる有効桁数の制御量（シフト量、スケーリングパラメータ）を、シーケンスレベルの有効桁数の制御量（シフト量、スケーリングパラメータ）と称し、上述の拡張ビット精度dBDにより補正されたシーケンスレベルの有効桁数の制御量（シフト量、スケーリングパラメータ）を、補正制御量（補正シフト量、補正スケーリングパラメータ）と称する。
【００７４】
また、このdBD導出５２において導出された拡張ビット精度dBDを用いて差分パラメータdeltaXを導出するdeltaX導出５３が行われる。このdeltaX導出５３においては、例えば、スライスレベルのビット深度sliceBitDepthが、スライスレベル毎の画素値の最小値（slice_min_val）および最大値（slice_max_val）を用いて、以下の式（３）のように導出される。
【００７５】
sliceBitDepth = ceil(log2(slice_max_val - slice_min_val))  ・・・（３）
【００７６】
そして、差分パラメータdeltaXが、拡張ビット精度dBD、スライスレベルのビット深度sliceBitDepth、およびシーケンスレベルのビット深度channelBitDepthを用いて、以下の式（４）のように導出される。
【００７７】
deltaX = dBD + sliceBitDepth - channelBitDepth  ・・・（４）
【００７８】
符号化１４においては、量子化係数が符号化されてビットストリームbitstreamが得られるとともに、差分パラメータdeltaXが符号化され、そのビットストリームに含められる。
【００７９】
なお、上述のように拡張ビット精度dBDを用いたシーケンス内での有効桁数の制御は、プライマリ水平変換１１、プライマリ垂直変換１２、量子化１３において行われるため、これらの処理をスキップする場合は、この有効桁数の制御も省略される。
【００８０】
また、例えば、方法＃１の場合、復号における復号２１乃至逆プライマリ水平変換２４の各処理は、図１１のように行われる。まず、復号２１において、ビットストリームbitstreamが復号されて、量子化係数qcoefが得られるとともに、シーケンスレベルのビット深度channelBitDepthおよびスライスレベルのビット深度sliceBitDepthが導出され、さらに、差分パラメータdeltaXが得られる。
【００８１】
このシーケンスレベルのビット深度channelBitDepth、スライスレベルのビット深度sliceBitDepth、差分パラメータdeltaXを用いて、拡張ビット精度dBDを導出するdBD導出６１が行われる。このdBD導出６１においては、拡張ビット精度dBDが、それらのパラメータを用いて、以下の式（５）のように導出される。
【００８２】
dBD = channelBitDepth - sliceBitDepth + deltaX  ・・・（５）
【００８３】
逆量子化２２においては、その拡張ビット精度dBDを用いて、シーケンスレベルの有効桁数の制御量（シフト量）が補正される。つまり、シーケンスレベルの逆量子化シフト量invQShiftおよび拡張ビット精度dBDが用いられて、変換係数coefの有効桁数が制御される。より具体的には、変換係数coefが、(invQShift-dBD)ビットだけビットシフトされる（>>(invQShift-dBD)）。つまり、拡張ビット精度dBDは、入力画像のシーケンス毎に設定される変換係数coefの有効桁数の制御量および量子化係数の有効桁数の制御量である量子化シフト量invQShiftの補正値である。
【００８４】
逆プライマリ垂直変換２３においては、シーケンスレベルの逆プライマリ垂直変換シフト量invShift1が用いられて、係数データtmpの有効桁数が制御される。より具体的には、係数データtmpが、invShift1ビットだけビットシフトされる（>>invShift1）。
【００８５】
逆プライマリ水平変換２４においては、その拡張ビット精度dBDを用いて、シーケンスレベルの有効桁数の制御量（シフト量）が補正される。つまり、シーケンスレベルの逆プライマリ水平変換シフト量invShift2および拡張ビット精度dBDが用いられて、予測残差resiの有効桁数が制御される。より具体的には、予測残差resiが、(invShift2+dBD)ビットだけビットシフトされる（>>(invShift2+dBD)）。つまり、拡張ビット精度dBDは、入力画像のシーケンス毎に設定される予測残差resiの有効桁数の制御量および量子化係数の有効桁数の制御量量である逆プライマリ水平変換シフト量invShift2の補正値である。
【００８６】
したがって、例えば復号の場合、逆量子化、逆垂直変換、逆水平変換の各処理において、係数の有効桁数を、図１２のように、シーケンスレベルの拡張からさらに拡張することができる。つまり、ビット深度のシーケンス内における時間方向または空間方向の変化に応じて有効桁数を制御することができる。このように有効桁数が拡張することにより、演算精度が向上する。したがって、符号化効率の低減を抑制することができる。
【００８７】
なお、上述のように、拡張ビット精度dBDを用いたシーケンス内での有効桁数の制御は、逆量子化２２、逆プライマリ垂直変換２３、逆プライマリ水平変換２４において行われるため、これらの処理をスキップする場合は、この有効桁数の制御も省略される。したがって、不要な処理の増大を抑制することができ、復号の負荷の増大を抑制することができる。
【００８８】
符号化の場合も同様に、水平変換、垂直変換、量子化の各処理において、係数の有効桁数を、シーケンスレベルの拡張からさらに拡張することができる。つまり、ビット深度のシーケンス内における時間方向または空間方向の変化に応じて有効桁数を制御することができる。このように有効桁数が拡張することにより、演算精度が向上する。したがって、符号化効率の低減を抑制することができる。
【００８９】
また、上述したように、プライマリ水平変換１１、プライマリ垂直変換１２、量子化１３をスキップする場合は、この有効桁数の制御も省略されるので、不要な処理の増大を抑制することができ、符号化の負荷の増大を抑制することができる。
【００９０】
なお、符号化の場合、逆量子化、逆垂直変換、逆水平変換の各処理においても、復号の場合と同様に、有効桁数が制御される。つまり、復号の場合と同様に有効桁数を拡張することができる。つまり、これらの処理の演算精度を向上させることができ、符号化効率の低減を抑制することができる。
【００９１】
＜方法＃２概要＞
例えば、図９の方法＃２の場合、符号化におけるプライマリ水平変換１１乃至符号化１４の各処理は、図１３のように行われる。まず、予測７１により得られた、入力画像に対応する予測画像に対して、領域毎画素最小値最大値探索５１が行われ、ローカルレベル（block）毎の画素値の最小値（minPredPixelVal）および最大値（maxPredPixelVal）が探索される。
【００９２】
そして、この探索により検出された予測画像のローカルレベル毎の画素値の最小値（minPredPixelVal）および最大値（maxPredPixelVal）を用いてdBD導出５２が行われる。このdBD導出５２においては、例えば、予測画像の各ローカルレベルのビット深度PredBitDepthが、予測画像のローカルレベル毎の画素値の最小値（minPredPixelVal）および最大値（maxPredPixelVal）を用いて、以下の式（６）のように導出される。
【００９３】
なお、式（６）で導出されたローカルレベルのビット深度PredBitDepthを、所定の閾値minLocalBitDepth（例えば、8）を参照して、さらに式（６Ａ）に示すように、PredBitDepth = max(minLocalBitDepth,PredBitDepth)として補正してもよい。こうすることで、後続の式（７）で導出される拡張ビット精度dBDが大きくなり過ぎる（すなわち、有効桁数をあげ過ぎて中間係数データが最小値coefMin乃至最大値coefMaxの範囲を超えてしまう）ケースの発生を抑制することができる。なお、式（６Ａ）において、演算子max(x, y)は、数値x, yのうち大きい値を返す演算子である。
【００９４】
PredBitDepth = ceil(log2(maxPredPixelVal - minPredPixelVal))  ・・・（６）
PredBitDepth = max(minLocalBitDepth, PredBitDepth)  ・・・（６Ａ）
【００９５】
そして、拡張ビット精度dBDが、その予測画像のローカルレベルのビット深度PredBitDepthとシーケンスレベルのビット深度channelBitDepthとを用いて、以下の式（７）のように導出される。
【００９６】
dBD = channelBitDepth - PredBitDepth  ・・・（７）
【００９７】
予測７１により得られた予測画像は、演算７２により入力画像から減算され、予測残差resiが得られる。
【００９８】
この予測残差resiに対して、プライマリ水平変換１１、プライマリ垂直変換１２、および量子化１３の各処理は、方法＃１（図１０）の場合と同様に行われる。ただし、この方法＃２の場合、deltaX導出５３の処理が省略され、符号化１４において差分パラメータdeltaXの符号化に関する処理が省略される。つまり、方法＃２の場合、差分パラメータdeltaXの符号化側から復号側への伝送が省略される。
【００９９】
なお、上述のように拡張ビット精度dBDを用いたシーケンス内での有効桁数の制御は、プライマリ水平変換１１、プライマリ垂直変換１２、量子化１３において行われるため、これらの処理をスキップする場合は、この有効桁数の制御も省略される。
【０１００】
また、例えば、方法＃２の場合、復号における復号２１乃至逆プライマリ水平変換２４の各処理は、図１４のように行われる。この場合、復号２１におけるスライスレベルのビット深度sliceBitDepthの導出や、差分パラメータdeltaXの復号が省略される。
【０１０１】
また、予測８１により得られた予測画像に対して、領域毎画素最小値最大値探索８３が行われ、ローカルレベル（block）毎の画素値の最小値（minPredPixelVal）および最大値（maxPredPixelVal）が探索される。
【０１０２】
そして、この探索により検出された予測画像のローカルレベル毎の画素値の最小値（minPredPixelVal）および最大値（maxPredPixelVal）を用いてdBD導出６１が行われる。このdBD導出６１においては、例えば、予測画像の各ローカルレベルのビット深度PredBitDepthが、上述の式（６）および（６Ａ）のように導出される。そして、拡張ビット精度dBDが、上述の式（７）のように導出される。
【０１０３】
復号２１により得られた量子化係数qcoefに対して、逆量子化２２、逆プライマリ垂直変換２３、および逆プライマリ水平変換２４の各処理は、方法＃１（図１１）の場合と同様に行われる。
【０１０４】
逆プライマリ水平変換２４により得られた予測残差resiに対して、演算８２が行われ、予測８１により得られた予測画像が加算され、復号画像rec'が得られる。
【０１０５】
復号の場合、図１２に示される方法＃１の復号の場合と同様に、ビット深度のシーケンス内における時間方向または空間方向の変化に応じて有効桁数を制御することができる。このように有効桁数が拡張することにより、演算精度が向上する。したがって、符号化効率の低減を抑制することができる。
【０１０６】
なお、上述のように、拡張ビット精度dBDを用いたシーケンス内での有効桁数の制御は、逆量子化２２、逆プライマリ垂直変換２３、逆プライマリ水平変換２４において行われるため、これらの処理をスキップする場合は、この有効桁数の制御も省略される。したがって、不要な処理の増大を抑制することができ、復号の負荷の増大を抑制することができる。
【０１０７】
また、符号化の場合も、方法＃１の場合と同様に、水平変換、垂直変換、量子化の各処理において、係数の有効桁数を、シーケンスレベルの拡張からさらに拡張することができる。つまり、ビット深度のシーケンス内における時間方向または空間方向の変化に応じて有効桁数を制御することができる。このように有効桁数が拡張することにより、演算精度が向上する。したがって、符号化効率の低減を抑制することができる。
【０１０８】
また、上述したように、プライマリ水平変換１１、プライマリ垂直変換１２、量子化１３をスキップする場合は、この有効桁数の制御も省略されるので、不要な処理の増大を抑制することができ、符号化の負荷の増大を抑制することができる。
【０１０９】
なお、符号化の場合、逆量子化、逆垂直変換、逆水平変換の各処理においても、復号の場合と同様に、有効桁数が制御される。つまり、復号の場合と同様に有効桁数を拡張することができる。つまり、これらの処理の演算精度を向上させることができ、符号化効率の低減を抑制することができる。
【０１１０】
なお、方法＃２では、図１３（図１４）に示すように、処理対象ブロックのローカルレベルのビット深度を、予測７１（８１）で得られる処理対象ブロックに対応する予測画像を参照して、式（６）および（６Ａ）によって導出しているが、予測画像の代わりに、該予測画像生成で参照する復号画像を用いて、処理対象ブロックのローカルビット深度を導出してもよい（方法＃２'）。
【０１１１】
すなわち、図１３（図１４）において、予測７１（８１）において予測画像生成で参照する復号画像Recrefに対して、領域毎画素最小値最大値探索５１（８３）を行い、ローカルレベル（block）毎の画素値の最小値（minRecPixelVal）および最大値（maxRecPixelVal）を探索する。続いて、この探索により検出された復号画像のローカルレベル毎の画素値の最小値（minRecPixelVal）および最大値（maxRecPixelVal）を用いて、dBD導出６１を行う。このdBD導出６１においては、復号画像の各ローカルレベルのビット深度RecBitDepthを、以下の式（６'）および（６Ａ'）のように導出する。そして、拡張ビット精度dBDを、式（７'）のように導出する。
【０１１２】
RecBitDepth = ceil(log2(maxRecPixelVal - minRecPixelVal))  ・・・（６'）
RecBitDepth = max(minLocalBitDepth, recBitDepth)           ・・・(６Ａ')
dBD = channelBitDepth - RecBitDepth  ・・・（７'）
【０１１３】
このようにすることで、方法＃２'は、予測画像を参照して拡張ビット精度dBDを導出する方法（方法#２）と同様の効果を奏する。なお、方法＃２'の方法＃２に対するメリットは、予測画像を生成しなくても、復号画像のみから拡張ビット精度dBDを導出可能な点である。
【０１１４】
なお、上記において、復号画像Recrefとは、イントラ予測であれば、対象ブロックのイントラ予測画像を生成するために参照する局所復号画素領域を指し、インター予測であれば、対象ブロックのインター予測画像を生成するために参照する局所復号画素領域である。
【０１１５】
＜３．第１の実施の形態＞
＜画像符号化装置＞
第１の実施の形態においては、上述の方法＃１の詳細について説明する。まず、符号化の際にそのような演算精度の制御を行う構成について説明する。図１５は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図１５に示される画像符号化装置１００は、動画像の画像データを符号化する装置である。例えば、画像符号化装置１００は、非特許文献１乃至非特許文献３に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データを符号化する。
【０１１６】
なお、図１５においては、処理部やデータの流れ等の主なものを示しており、図１５に示されるものが全てとは限らない。つまり、画像符号化装置１００において、図１５においてブロックとして示されていない処理部が存在したり、図１５において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像符号化装置１００内の処理部等を説明する他の図においても同様である。
【０１１７】
図１５に示されるように画像符号化装置１００は、制御部１０１、並べ替えバッファ１１１、演算部１１２、直交変換部１１３、量子化部１１４、符号化部１１５、蓄積バッファ１１６、逆量子化部１１７、逆直交変換部１１８、演算部１１９、インループフィルタ部１２０、フレームメモリ１２１、予測部１２２、およびレート制御部１２３を有する。
【０１１８】
＜制御部＞
制御部１０１は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ１１１により保持されている動画像データを処理単位のブロック（CU, PU, 変換ブロックなど）へ分割する。また、制御部１０１は、各ブロックへ供給する符号化パラメータ（ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど）を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。
【０１１９】
これらの符号化パラメータの詳細については後述する。制御部１０１は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
【０１２０】
ヘッダ情報Hinfoは、各ブロックに供給される。
予測モード情報Pinfoは、符号化部１１５と予測部１２２とに供給される。
変換情報Tinfoは、符号化部１１５、直交変換部１１３、量子化部１１４、逆量子化部１１７、および逆直交変換部１１８に供給される。
フィルタ情報Finfoは、インループフィルタ部１２０に供給される。
【０１２１】
＜並べ替えバッファ＞
画像符号化装置１００には、動画像データの各フィールド（入力画像）がその再生順（表示順）に入力される。並べ替えバッファ１１１は、各入力画像をその再生順（表示順）に取得し、保持（記憶）する。並べ替えバッファ１１１は、制御部１０１の制御に基づいて、その入力画像を符号化順（復号順）に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ１１１は、処理後の各入力画像を演算部１１２に供給する。また、並べ替えバッファ１１１は、その各入力画像（元画像）を、予測部１２２やインループフィルタ部１２０にも供給する。
【０１２２】
＜演算部＞
演算部１１２は、処理単位のブロックに対応する画像I、および予測部１２２より供給される予測画像Pを入力とし、画像recから予測画像Pを以下の式（８）に示されるように減算して、予測残差resiを導出し、それを直交変換部１１３に供給する。
【０１２３】
resi = rec - P  ・・・（８）
【０１２４】
＜直交変換部＞
直交変換部１１３は、演算部１１２から供給される予測残差resiと、制御部１０１から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、予測残差resiに対して直交変換を行い、変換係数coefを導出する。直交変換部１１３は、その得られた変換係数coefを量子化部１１４に供給する。
【０１２５】
＜量子化部＞
量子化部１１４は、直交変換部１１３から供給される変換係数coefと、制御部１０１から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数coefをスケーリング（量子化）する。なお、この量子化のレートは、レート制御部１２３により制御される。量子化部１１４は、このような量子化により得られた量子化後の変換係数、すなわち量子化係数qcoefを、符号化部１１５および逆量子化部１１７に供給する。
【０１２６】
＜符号化部＞
符号化部１１５は、量子化部１１４から供給された量子化係数qcoefと、制御部１０１から供給される各種符号化パラメータ（ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど）と、インループフィルタ部１２０から供給されるフィルタ係数等のフィルタに関する情報と、予測部１２２から供給される最適な予測モードに関する情報とを入力とする。符号化部１１５は、量子化係数qcoefを可変長符号化（例えば、算術符号化）し、ビット列（符号化データ）を生成する。
【０１２７】
また、符号化部１１５は、その量子化係数qcoefから残差情報Rinfoを導出し、残差情報Rinfoを符号化し、ビット列を生成する。
【０１２８】
さらに、符号化部１１５は、インループフィルタ部１２０から供給されるフィルタに関する情報をフィルタ情報Finfoに含め、予測部１２２から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部１１５は、上述した各種符号化パラメータ（ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど）を符号化し、ビット列を生成する。
【０１２９】
また、符号化部１１５は、以上のように生成された各種情報のビット列を多重化し、符号化データを生成する。符号化部１１５は、その符号化データを蓄積バッファ１１６に供給する。
【０１３０】
＜蓄積バッファ＞
蓄積バッファ１１６は、符号化部１１５において得られた符号化データを、一時的に保持する。蓄積バッファ１１６は、所定のタイミングにおいて、保持している符号化データを、例えばビットストリーム等として画像符号化装置１００の外部に出力する。例えば、この符号化データは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ１１６は、符号化データ（ビットストリーム）を伝送する伝送部でもある。
【０１３１】
＜逆量子化部＞
逆量子化部１１７は、逆量子化に関する処理を行う。例えば、逆量子化部１１７は、量子化部１１４から供給される量子化係数qcoefと、制御部１０１から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化係数qcoefの値をスケーリング（逆量子化）する。なお、この逆量子化は、量子化部１１４において行われる量子化の逆処理である。逆量子化部１１７は、このような逆量子化により得られた変換係数coef'を、逆直交変換部１１８に供給する。
【０１３２】
＜逆直交変換部＞
逆直交変換部１１８は、逆直交変換に関する処理を行う。例えば、逆直交変換部１１８は、逆量子化部１１７から供給される変換係数coef'と、制御部１０１から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数coef'に対して逆直交変換を行い、予測残差resi'を導出する。なお、この逆直交変換は、直交変換部１１３において行われる直交変換の逆処理である。逆直交変換部１１８は、このような逆直交変換により得られた予測残差resi'を演算部１１９に供給する。なお、逆直交変換部１１８は、復号側の逆直交変換部（後述する）と同様であるので、逆直交変換部１１８については、復号側について行う説明（後述する）を適用することができる。
【０１３３】
＜演算部＞
演算部１１９は、逆直交変換部１１８から供給される予測残差resi'と、予測部１２２から供給される予測画像Pとを入力とする。演算部１１９は、その予測残差resi'と、その予測残差resi'に対応する予測画像Pとを加算し、局所復号画像Rlocalを導出する。演算部１１９は、導出した局所復号画像Rlocalをインループフィルタ部１２０およびフレームメモリ１２１に供給する。
【０１３４】
＜インループフィルタ部＞
インループフィルタ部１２０は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部１２０は、演算部１１９から供給される局所復号画像Rlocalと、制御部１０１から供給されるフィルタ情報Finfoと、並べ替えバッファ１１１から供給される入力画像（元画像）とを入力とする。なお、インループフィルタ部１２０に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック（CU、CTU等）の情報等がインループフィルタ部１２０に入力されるようにしてもよい。
【０１３５】
インループフィルタ部１２０は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。インループフィルタ部１２０は、必要に応じて入力画像（元画像）や、その他の入力情報もそのフィルタ処理に用いる。
【０１３６】
例えば、インループフィルタ部１２０は、非特許文献３に記載のように、バイラテラルフィルタ、デブロッキングフィルタ（DBF（DeBlocking Filter））、適応オフセットフィルタ（SAO（Sample Adaptive Offset））、および適応ループフィルタ（ALF(Adaptive Loop Filter)）の４つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
【０１３７】
もちろん、インループフィルタ部１２０が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部１２０がウィーナーフィルタ等を適用するようにしてもよい。
【０１３８】
インループフィルタ部１２０は、フィルタ処理された局所復号画像Rlocalをフレームメモリ１２１に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部１２０は、そのフィルタに関する情報を符号化部１１５に供給する。
【０１３９】
＜フレームメモリ＞
フレームメモリ１２１は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ１２１は、演算部１１９から供給される局所復号画像Rlocalや、インループフィルタ部１２０から供給されるフィルタ処理された局所復号画像Rlocalを入力とし、それを保持（記憶）する。また、フレームメモリ１２１は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する（フレームメモリ１２１内のバッファへ格納する）。フレームメモリ１２１は、予測部１２２の要求に応じて、その復号画像R（またはその一部）を予測部１２２に供給する。
【０１４０】
＜予測部＞
予測部１２２は、予測画像の生成に関する処理を行う。例えば、予測部１２２は、制御部１０１から供給される予測モード情報Pinfoと、並べ替えバッファ１１１から供給される入力画像（元画像）と、フレームメモリ１２１から読み出す復号画像R（またはその一部）を入力とする。予測部１２２は、予測モード情報Pinfoや入力画像（元画像）を用い、インター予測やイントラ予測等の予測処理を行い、復号画像Rを参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像Pを生成する。予測部１２２は、生成した予測画像Pを演算部１１２および演算部１１９に供給する。また、予測部１２２は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部１１５に供給する。
【０１４１】
＜レート制御部＞
レート制御部１２３は、レート制御に関する処理を行う。例えば、レート制御部１２３は、蓄積バッファ１１６に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部１１４の量子化動作のレートを制御する。
【０１４２】
以上のような構成の画像符号化装置１００において、制御部１０１、直交変換部１１３、量子化部１１４、および符号化部１１５、並びに、逆量子化部１１７および逆直交変換部１１８は、上述した本技術を適用した処理（シーケンス内での有効桁数の制御に関する処理）を行う。
【０１４３】
例えば、制御部１０１は、この有効桁数の制御に関する情報を生成する。例えば、制御部１０１は、この有効桁数の制御に関する情報として、シーケンスレベルのビット深度channelBitDepth（シーケンスビット深度とも称する）、スライスレベルのビット深度sliceBitDepth（スライスビット深度とも称する）、ローカルレベル毎の拡張ビット精度dBD、各拡張ビット精度dBDに対応する差分パラメータdeltaX等を生成する。
【０１４４】
制御部１０１は、これらの情報を所定の処理部に供給する。例えば、制御部１０１は、シーケンスビット深度channelBitDepthや拡張ビット精度dBDを変換情報Tinfoとして直交変換部１１３、量子化部１１４、逆量子化部１１７、および逆直交変換部１１８に供給する。
【０１４５】
また、例えば、制御部１０１は、シーケンスビット深度channelBitDepth、スライスビット深度sliceBitDepth、および差分パラメータdeltaXを符号化部１１５に供給する。なお、制御部１０１は、シーケンスビット深度channelBitDepthの代わりに、シーケンスビット深度channelBitDepthから所定の値（例えば８）を減算した値（輝度のシーケンスビット深度bit_depth_luma_minus8および色差のシーケンスビット深度bit_depth_chroma_minus8）を、シーケンスビット深度に関する情報として、符号化部１１５に供給する。また、制御部１０１は、スライスビット深度sliceBitDepthの代わりに、入力画像の画素値のスライスレベルの最小値slice_min_valおよび最大値slice_max_valを、スライスレベルビット深度に関する情報として、符号化部１１５に供給する。なお、制御部１０１は、差分パラメータdeltaXを、拡張ビット精度に関する情報として、符号化部１１５に供給する。
【０１４６】
直交変換部１１３は、上述のように直交変換を行うとともに、変換情報Tinfoとして制御部１０１から供給されるシーケンスビット深度channelBitDepthや拡張ビット精度dBDに基づいて、演算精度（係数データの有効桁数）を、ビット深度のシーケンス内における時間方向または空間方向の変化に応じて制御する。例えば、直交変換部１１３は、ローカルレベルのビット深度に応じたシフト量（拡張ビット精度dBDに応じたシフト量）でビットシフトすることにより、係数データの有効桁数を制御する。
【０１４７】
量子化部１１４は、上述のように量子化を行うとともに、変換情報Tinfoとして制御部１０１から供給されるシーケンスビット深度channelBitDepthや拡張ビット精度dBDに基づいて、演算精度（係数データの有効桁数）を、ビット深度のシーケンス内における時間方向または空間方向の変化に応じて制御する。例えば、量子化部１１４は、ローカルレベルのビット深度に応じたシフト量（拡張ビット精度dBDに応じたシフト量）でビットシフトすることにより、量子化係数の有効桁数を制御する。
【０１４８】
逆量子化部１１７は、上述のように逆量子化を行うとともに、変換情報Tinfoとして制御部１０１から供給されるシーケンスビット深度channelBitDepthや拡張ビット精度dBDに基づいて、演算精度（係数データの有効桁数）を、ビット深度のシーケンス内における時間方向または空間方向の変化に応じて制御する。
【０１４９】
逆直交変換部１１８は、上述のように逆直交変換を行うとともに、変換情報Tinfoとして制御部１０１から供給されるシーケンスビット深度channelBitDepthや拡張ビット精度dBDに基づいて、演算精度（係数データの有効桁数）を、ビット深度のシーケンス内における時間方向または空間方向の変化に応じて制御する。
【０１５０】
符号化部１１５は、制御部１０１から供給されるシーケンスビット深度に関する情報、スライスビット深度に関する情報、および差分パラメータdeltaX（拡張ビット精度に関する情報）を符号化し、ビットストリームに含める（差分パラメータdeltaXを含むビットストリームを生成する）。例えば、符号化部１１５は、シーケンスビット深度に関する情報をビットストリームのシーケンスパラメータセットに含める。また、例えば、符号化部１１５は、スライスビット深度に関する情報をビットストリームのスライスヘッダに含める。
【０１５１】
したがって、画像符号化装置１００は、符号化効率の低減を抑制することができる。
【０１５２】
＜制御部の詳細＞
図１６は、制御部１０１の、有効桁数の制御に関する情報の生成に関する主な構成例を示すブロック図である。図１６に示されるように、制御部１０１は、シーケンスビット深度設定部１３１、スライスビット深度設定部１３２、画素最小値最大値探索部１３３、dBD導出部１３４、およびdeltaX導出部１３５を有する。なお、制御部１０１は、上述のように、他の情報の生成等、有効桁数の制御に関する情報の生成以外の処理も行うが、それらの処理についての構成の説明は省略する。
【０１５３】
シーケンスビット深度設定部１３１は、並べ替えバッファ１１１の入力画像を入力とし、外部パラメータに基づいてシーケンスビット深度channelBitDepthを設定する。シーケンスビット深度設定部１３１は、設定したシーケンスビット深度channelBitDepthをdBD導出部１３４およびdeltaX導出部１３５に供給する。また、シーケンスビット深度設定部１３１は、そのシーケンスビット深度channelBitDepthを、変換情報Tinfoとして直交変換部１１３、量子化部１１４、逆量子化部１１７、および逆直交変換部１１８に供給する。さらに、シーケンスビット深度設定部１３１は、そのシーケンスビット深度に関する情報を生成し、符号化部１１５に供給する。
【０１５４】
スライスビット深度設定部１３２は、並べ替えバッファ１１１の入力画像を入力とし、スライスビット深度sliceBitDepthを設定する。スライスビット深度設定部１３２は、設定したスライスビット深度sliceBitDepthをdeltaX導出部１３５に供給する。また、スライスビット深度設定部１３２は、そのスライスビット深度に関する情報を、符号化部１１５に供給する。
【０１５５】
画素最小値最大値探索部１３３は、並べ替えバッファ１１１の入力画像を入力とし、シーケンスレベルよりも小さいデータ単位であるローカルレベル毎に、その入力画像の画素値の最小値（minPixelVal）と最大値（maxPixelVal）とを探索する。画素最小値最大値探索部１３３は、その探索により検出した各ローカルレベルの最小値（minPixelVal）と最大値（maxPixelVal）とを、dBD導出部１３４に供給する。
【０１５６】
dBD導出部１３４は、シーケンスビット深度設定部１３１から供給されるシーケンスビット深度channelBitDepthと、画素最小値最大値探索部１３３から供給される最小値（minPixelVal）および最大値（maxPixelVal）とを入力とし、それらのパラメータに基づいて拡張ビット精度dBDをローカルレベル毎に導出する。
【０１５７】
dBD導出部１３４は、その導出した拡張ビット精度dBDをdeltaX導出部１３５に供給する。また、dBD導出部１３４は、その導出した拡張ビット精度dBDを、変換情報Tinfoとして直交変換部１１３、量子化部１１４、逆量子化部１１７、および逆直交変換部１１８に供給する。
【０１５８】
deltaX導出部１３５は、dBD導出部１３４から供給される拡張ビット精度dBDを入力とし、差分パラメータdeltaXを導出する。deltaX導出部１３５は、導出した差分パラメータdeltaXを、拡張ビット精度に関する情報として、符号化部１１５に供給する。
【０１５９】
＜直交変換部の詳細＞
図１７は、図１５の直交変換部１１３の主な構成例を示すブロック図である。図１７に示されるように、直交変換部１１３は、プライマリ変換部１４１およびセカンダリ変換部１４２を有する。
【０１６０】
プライマリ変換部１４１は、例えば直交変換等の所定の変換処理であるプライマリ変換に関する処理を行う。例えば、プライマリ変換部１４１は、予測残差resi、変換情報Tinfo、および予測モード情報PInfo（図示せず）等を入力とし、その予測残差resiに対してプライマリ変換を行い、得られた係数データcoefPをセカンダリ変換部１４２に供給する。また、プライマリ変換部１４１は、そのプライマリ変換の際、変換タイプ識別子trTypeIdxHおよびtrTypeIdxV、変換ブロックの水平方向のサイズlog2TrWidth、変換ブロックの垂直方向のサイズlog2TrHeight、シーケンスビット深度channelBitDepth、並びに拡張ビット精度dBD等の情報を入力とし、それらの情報に基づいて、シーケンス内における時間方向または空間方向のビット深度の変化に応じた係数の有効桁数の制御（演算精度の制御）を行う。
【０１６１】
図１７に示されるように、プライマリ変換部１４１は、プライマリ水平変換部１５１およびプライマリ垂直変換部１５２を有する。
【０１６２】
プライマリ水平変換部１５１は、水平方向の１次元変換であるプライマリ水平変換に関する処理を行う。例えば、プライマリ水平変換部１５１は、予測残差resi、変換情報Tinfo、および予測モード情報PInfo（図示せず）等を入力とし、その予測残差resiに対してプライマリ水平変換を行い、得られた係数データcoefH（= tmp）をプライマリ垂直変換部１５２に供給する。
【０１６３】
その際、プライマリ水平変換部１５１は、プライマリ水平変換の変換タイプ識別子trTypeIdxH、変換ブロックの水平方向のサイズlog2TrWidth、変換ブロックの垂直方向のサイズlog2TrHeight、シーケンスビット深度channelBitDepth、および拡張ビット精度dBD等の情報を入力とし、それらの情報に基づいて、シーケンス内における時間方向または空間方向のビット深度の変化に応じた係数の有効桁数の制御（演算精度の制御）を行う。
【０１６４】
プライマリ垂直変換部１５２は、垂直方向の１次元変換であるプライマリ垂直変換に関する処理を行う。例えば、プライマリ垂直変換部１５２は、係数データcoefH（= tmp）、変換情報Tinfo、および予測モード情報PInfo（図示せず）等を入力とし、その係数データcoefHに対してプライマリ垂直変換を行い、得られた係数データcoefPをセカンダリ変換部１４２に供給する。
【０１６５】
その際、プライマリ垂直変換部１５２は、プライマリ垂直変換の変換タイプ識別子trTypeIdxV、変換ブロックの水平方向のサイズlog2TrWidth、および変換ブロックの垂直方向のサイズlog2TrHeight等の情報を入力とし、それらの情報に基づいて、シーケンス毎の有効桁数の制御（演算精度の制御）を行う。
【０１６６】
セカンダリ変換部１４２は、例えば直交変換等の所定の変換処理であるセカンダリ変換に関する処理を行う。例えばセカンダリ変換部１４２は、係数データcoefP、変換情報Tinfo（図示せず）、および予測モード情報PInfo（図示せず）等を入力とし、その係数データcoefPに対してセカンダリ変換を行い、得られた係数データcoefPを量子化部１１４に供給する。
【０１６７】
なお、プライマリ変換部１４１、セカンダリ変換部１４２、プライマリ水平変換部１５１、およびプライマリ垂直変換部１５２は、それぞれ、自身の処理をスキップ（省略）することができる。
【０１６８】
＜プライマリ水平変換部＞
図１８は、プライマリ水平変換部１５１の主な構成例を示すブロック図である。図１８に示されるように、プライマリ水平変換部１５１は、パラメータ導出部１６１、行列演算部１６２、正規化部１６３、およびクリップ部１６４を有する。
【０１６９】
パラメータ導出部１６１は、変換タイプ識別子trTypeIdxH、変換ブロックの水平方向のサイズlog2TrWidth、変換ブロックの垂直方向のサイズlog2TrHeight、シーケンスビット深度channelBitDepth、並びに拡張ビット精度dBD等の情報を入力とし、それらの情報に基づいて、プライマリ水平変換処理に用いられるパラメータを導出する。
【０１７０】
例えば、パラメータ導出部１６１は、変換タイプ識別子trTypeIdxHや、変換ブロックの水平方向のサイズlog2TrWidth等の情報に基づいて、変換行列THを導出する。
【０１７１】
また、例えば、パラメータ導出部１６１は、変換ブロックの水平方向のサイズlog2TrWidth、シーケンスビット深度channelBitDepth、変換行列TH、並びに拡張ビット精度dBD等の情報に基づいて、シーケンス毎に設定されるプライマリ水平変換における有効桁数のシフト量であるプライマリ水平変換シフト量fwdShift1を導出する。なお、プライマリ水平変換シフト量fwdShift1が導出済みの場合、この処理は省略することができる。
【０１７２】
さらに、例えば、パラメータ導出部１６１は、その導出したシーケンスレベルのプライマリ水平変換シフト量fwdShift1および拡張ビット精度dBDに基づいて、ローカルレベルのプライマリ水平変換シフト量fwdShift1'を導出する。つまり、パラメータ導出部１６１は、ローカルレベル毎に、拡張ビット精度dBDを用いてプライマリ水平変換シフト量fwdShift1を補正する。
【０１７３】
また、例えば、パラメータ導出部１６１は、変換係数の最小値coefMinと最大値coefMaxとを導出する。
【０１７４】
パラメータ導出部１６１は、導出したパラメータを各処理部に供給する。例えば、パラメータ導出部１６１は、導出した変換行列THを行列演算部１６２に供給する。また、例えば、パラメータ導出部１６１は、導出したプライマリ水平変換シフト量fwdShift1'を正規化部１６３に供給する。さらに、例えば、パラメータ導出部１６１は、導出した変換係数の最小値coefMinおよび最大値coefMaxをクリップ部１６４に供給する。
【０１７５】
行列演算部１６２は、予測残差resiおよび変換行列THを入力とし、行列演算に関する処理を行う。例えば、行列演算部１６２は、予測残差resiに対して、変換行列THを用いて水平方向の１次元直交変換を行う。行列演算部１６２は、その演算結果である中間データtmp1を正規化部１６３に供給する。
【０１７６】
正規化部１６３は、その中間データtmp1とプライマリ水平変換シフト量fwdShift1'とを入力とし、正規化に関する処理を行う。例えば、正規化部１６３は、中間データtmp1をローカルレベルのプライマリ水平変換シフト量fwdShift1'で右ビットシフトして正規化する。つまり、正規化部１６３は、中間データtmp1の有効桁数を制御する。正規化部１６３は、その正規化により得られた中間データtmp2をクリップ部１６４に供給する。
【０１７７】
クリップ部１６４は、その中間データtmp2と、変換係数の最小値coefMinおよび最大値coefMaxとを入力とし、クリップ処理に関する処理を行う。クリップ処理とは、所定の最小値以下の値をその最小値に変換し、所定の最大値以上の値をその最大値に変換する処理である。例えば、クリップ部１６４は、中間データtmp2の値を、変換係数の最小値coefMinおよび最大値coefMaxの範囲内にクリップする。クリップ部１６４は、中間データtmp2がクリップされて得られた係数データcoefH（=tmp）をプライマリ垂直変換部１５２に供給する。なお、クリップ部１６４は、省略してもよい。
【０１７８】
＜プライマリ垂直変換部＞
図１９は、プライマリ垂直変換部１５２の主な構成例を示すブロック図である。図１９に示されるように、プライマリ垂直変換部１５２は、パラメータ導出部１７１、行列演算部１７２、正規化部１７３、およびクリップ部１７４を有する。
【０１７９】
パラメータ導出部１７１は、変換タイプ識別子trTypeIdxV、変換ブロックの水平方向のサイズlog2TrWidth、および変換ブロックの垂直方向のサイズlog2TrHeight等の情報を入力とし、それらの情報に基づいて、プライマリ垂直変換処理に用いられるパラメータを導出する。
【０１８０】
例えば、パラメータ導出部１７１は、変換タイプ識別子trTypeIdxVや、変換ブロックの水平方向のサイズlog2TrHeight等の情報に基づいて、変換行列TVを導出する。
【０１８１】
また、例えば、パラメータ導出部１７１は、変換ブロックの垂直方向のサイズlog2TrHeightや変換行列TV等の情報に基づいて、シーケンス毎に設定されるプライマリ垂直変換における有効桁数のシフト量であるプライマリ垂直変換シフト量fwdShift2を導出する。なお、プライマリ垂直変換シフト量fwdShift2が導出済みの場合、この処理は省略することができる。
【０１８２】
また、例えば、パラメータ導出部１７１は、変換係数の最小値coefMinと最大値coefMaxとを導出する。
【０１８３】
パラメータ導出部１７１は、導出したパラメータを各処理部に供給する。例えば、パラメータ導出部１７１は、導出した変換行列TVを行列演算部１７２に供給する。また、例えば、パラメータ導出部１７１は、導出したプライマリ垂直変換シフト量fwdShift2を正規化部１７３に供給する。さらに、例えば、パラメータ導出部１７１は、導出した変換係数の最小値coefMinおよび最大値coefMaxをクリップ部１７４に供給する。
【０１８４】
行列演算部１７２は、係数データcoefHおよび変換行列THを入力とし、行列演算に関する処理を行う。例えば、行列演算部１７２は、係数データcoefHに対して、変換行列TVを用いて垂直方向の１次元直交変換を行う。行列演算部１７２は、その演算結果である中間データtmp3を正規化部１７３に供給する。
【０１８５】
正規化部１７３は、その中間データtmp3とプライマリ垂直変換シフト量fwdShift2とを入力とし、正規化に関する処理を行う。例えば、正規化部１７３は、中間データtmp3を、シーケンスレベルのプライマリ垂直変換シフト量fwdShift2で右ビットシフトして正規化する。つまり、正規化部１７３は、中間データtmp3の有効桁数を制御する。正規化部１７３は、その正規化により得られた中間データtmp4をクリップ部１７４に供給する。
【０１８６】
クリップ部１７４は、その中間データtmp4と、変換係数の最小値coefMinおよび最大値coefMaxとを入力とし、クリップ処理に関する処理を行う。例えば、クリップ部１７４は、中間データtmp4の値を、変換係数の最小値coefMinおよび最大値coefMaxの範囲内にクリップする。クリップ部１７４は、中間データtmp4がクリップされて得られた係数データcoefPをセカンダリ変換部１４２に供給する。なお、クリップ部１７４は、省略してもよい。
【０１８７】
＜量子化部＞
図２０は、量子化部１１４の主な構成例を示すブロック図である。図２０に示されるように、量子化部１１４は、パラメータ導出部１８１、量子化スケーリング部１８２、量子化正規化部１８３、およびクリップ部１８４を有する。
【０１８８】
パラメータ導出部１８１は、量子化パラメータqp、量子化マトリクスscalingMat、変換ブロックの水平方向のサイズlog2TrWidth、変換ブロックの垂直方向のサイズlog2TrHeight、シーケンスビット深度channelBitDepth、並びに拡張ビット精度dBD等の情報を入力とし、それらの情報に基づいて、量子化処理に用いられるパラメータを導出する。
【０１８９】
例えば、パラメータ導出部１８１は、量子化パラメータqp、量子化マトリクスscalingMat等の情報に基づいて、量子化スケールパラメータfwdQScaleを導出する。
【０１９０】
また、例えば、パラメータ導出部１８１は、量子化パラメータqp、変換ブロックの水平方向のサイズlog2TrWidth、変換ブロックの垂直方向のサイズlog2TrHeight、シーケンスビット深度channelBitDepth等の情報に基づいて、シーケンス毎に設定される量子化における有効桁数のシフト量である量子化シフト量fwdQShiftを導出する。なお、量子化シフト量fwdQShiftが導出済みの場合、この処理は省略することができる。
【０１９１】
さらに、例えば、パラメータ導出部１８１は、その導出したシーケンスレベルの量子化シフト量fwdQShiftおよび拡張ビット精度dBDに基づいて、ローカルレベルの量子化シフト量fwdQShift'を導出する。つまり、パラメータ導出部１８１は、ローカルレベル毎に、拡張ビット精度dBDを用いて量子化シフト量fwdQShiftを補正する。
【０１９２】
また、例えば、パラメータ導出部１８１は、量子化係数の最小値coefMinと最大値coefMaxとを導出する。
【０１９３】
パラメータ導出部１８１は、導出したパラメータを各処理部に供給する。例えば、パラメータ導出部１８１は、導出した量子化スケールパラメータfwdQScaleを量子化スケーリング部１８２に供給する。また、例えば、パラメータ導出部１８１は、導出した量子化シフト量fwdQShift'を量子化正規化部１８３に供給する。さらに、例えば、パラメータ導出部１８１は、導出した量子化係数の最小値coefMinおよび最大値coefMaxをクリップ部１８４に供給する。
【０１９４】
量子化スケーリング部１８２は、変換係数coefおよび量子化スケールパラメータfwdQScaleを入力とし、係数のスケーリングに関する処理を行う。例えば、量子化スケーリング部１８２は、量子化スケールパラメータfwdQScaleを用いて変換係数coefのスケーリングを行う。量子化スケーリング部１８２は、その演算結果である中間データtmp5を量子化正規化部１８３に供給する。
【０１９５】
量子化正規化部１８３は、その中間データtmp5と量子化シフト量fwdQShift'とを入力とし、正規化に関する処理を行う。例えば、量子化正規化部１８３は、中間データtmp5をローカルレベルの量子化シフト量fwdQShift'で右ビットシフトして正規化する。つまり、量子化正規化部１８３は、中間データtmp5の有効桁数を制御する。量子化正規化部１８３は、その正規化により得られた中間データtmp6をクリップ部１８４に供給する。
【０１９６】
クリップ部１８４は、その中間データtmp6と、量子化係数の最小値coefMinおよび最大値coefMaxとを入力とし、クリップ処理に関する処理を行う。例えば、クリップ部１８４は、中間データtmp6の値を、量子化係数の最小値coefMinおよび最大値coefMaxの範囲内にクリップする。クリップ部１８４は、中間データtmp6がクリップされて得られた量子化係数qcoefを符号化部１１５および逆量子化部１１７に供給する。なお、クリップ部１８４は、省略してもよい。
【０１９７】
＜画像符号化処理の流れ＞
次に、以上のような画像符号化装置１００により実行される各処理の流れについて説明する。最初に、図２１のフローチャートを参照して、画像符号化処理の流れの例を説明する。
【０１９８】
画像符号化処理が開始されると、ステップＳ１０１において、並べ替えバッファ１１１は、制御部１０１に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える。
【０１９９】
ステップＳ１０２において、制御部１０１は、並べ替えバッファ１１１が保持する入力画像に対して、処理単位を設定する（ブロック分割を行う）。
【０２００】
ステップＳ１０３において、制御部１０１は、並べ替えバッファ１１１が保持する入力画像についての符号化パラメータを決定（設定）する。
【０２０１】
ステップＳ１０４において、予測部１２２は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部１２２は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
【０２０２】
ステップＳ１０５において、演算部１１２は、入力画像と、ステップＳ１０４の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部１１２は、入力画像と予測画像との予測残差resiを生成する。このようにして求められた予測残差resiは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
【０２０３】
ステップＳ１０６において、直交変換部１１３は、ステップＳ１０５の処理により生成された予測残差resiに対して直交変換処理を行い、変換係数coefを導出する。
【０２０４】
ステップＳ１０７において、量子化部１１４は、制御部１０１により算出された量子化パラメータを用いる等して、ステップＳ１０６の処理により得られた変換係数coefを量子化し、量子化係数qcoefを導出する。
【０２０５】
ステップＳ１０８において、逆量子化部１１７は、ステップＳ１０７の処理により生成された量子化係数qcoefを、そのステップＳ１０７の量子化の特性に対応する特性で逆量子化し、変換係数coef'を導出する。なお、この逆量子化処理は、復号側において行われる逆量子化処理（後述する）と同様であるので、このステップＳ１０８の逆量子化処理については、復号側について行う説明（後述する）を適用することができる。
【０２０６】
ステップＳ１０９において、逆直交変換部１１８は、ステップＳ１０８の処理により得られた変換係数coef'を、ステップＳ１０６の直交変換処理に対応する方法で逆直交変換し、予測残差resi'を導出する。なお、この逆直交変換処理は、復号側において行われる逆直交変換処理（後述する）と同様であるので、このステップＳ１０９の逆直交変換処理については、復号側について行う説明（後述する）を適用することができる。
【０２０７】
ステップＳ１１０において、演算部１１９は、ステップＳ１０９の処理により導出された予測残差resi'に、ステップＳ１０４の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
【０２０８】
ステップＳ１１１において、インループフィルタ部１２０は、ステップＳ１１０の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う。
【０２０９】
ステップＳ１１２において、フレームメモリ１２１は、ステップＳ１１０の処理により導出された、局所的に復号された復号画像や、ステップＳ１１２においてフィルタ処理された、局所的に復号された復号画像を記憶する。
【０２１０】
ステップＳ１１３において、符号化部１１５は、ステップＳ１０７の処理により得られた量子化係数qcoefを符号化する。例えば、符号化部１１５は、画像に関する情報である量子化係数qcoefを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部１１５は、各種符号化パラメータ（ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo等）を符号化する。さらに、符号化部１１５は、量子化係数qcoefから残差情報RInfoを導出し、その残差情報RInfoを符号化する。
【０２１１】
ステップＳ１１４において、蓄積バッファ１１６は、このようにして得られた符号化データを蓄積し、例えばビットストリームとして、それを画像符号化装置１００の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。また、レート制御部１２３は、必要に応じてレート制御を行う。
【０２１２】
ステップＳ１１４の処理が終了すると、画像符号化処理が終了する。
【０２１３】
以上のような流れの画像符号化処理において、ステップＳ１０３、ステップＳ１０６、ステップＳ１０７、ステップＳ１０８、およびステップＳ１１３の処理として、上述した本技術を適用した処理が行われる。したがって、この画像符号化処理を実行することにより、符号化効率の低減を抑制することができる。
【０２１４】
＜dBD,deltaX導出処理の流れ＞
図２１のステップＳ１０３においては、各種符号化パラメータが導出される。例えば、拡張ビット精度dBDや差分パラメータdeltaX等が導出される。図２２のフローチャートを参照して、この拡張ビット精度dBDや差分パラメータdeltaX等のパラメータを導出するdBD,deltaX導出処理の流れの例を説明する。
【０２１５】
dBD,deltaX導出処理が開始されると、制御部１０１のシーケンスビット深度設定部１３１は、ステップＳ１３１において、コンポーネントXのシーケンスビット深度channelBitDepthを外部パラメータに基づいて設定する。つまり、シーケンスビット深度設定部１３１は、外部より入力される入力画像の各コンポーネントのビット深度を求め、その値を、各コンポーネントのシーケンスビット深度channelBitDepthに設定する。
【０２１６】
ステップＳ１３２において、スライスビット深度設定部１３２は、コンポーネントXのスライスビット深度sliceBitDepthを導出する。
【０２１７】
例えば、スライスビット深度設定部１３２は、まず、スライス単位に、各コンポーネントのスライスビット深度に関わる以下のシンタックスを該スライスに含まれる各コンポーネントの画素群に基づいて導出する。
【０２１８】
slice_min_val：コンポーネントX(X=Y/Cb/Cr)のスライス内における最小画素値
slice_max_val：コンポーネントX(X=Y/Cb/Cr)のスライス内における最大画素値
【０２１９】
そして、スライスビット深度設定部１３２は、それらのシンタックスを用いて、スライスビット深度sliceBitDepthを以下の式（９）のように導出する。
【０２２０】
sliceBitDepth = ceil(log2(slice_max_val - slice_min_val))
・・・（９）
【０２２１】
ステップＳ１３３において、画素最小値最大値探索部１３３は、拡張ビット精度制御グループSG毎に、コンポーネントXの最小画素値minPixelValueと最大画素値maxPixelValueとを導出する。
【０２２２】
ここで、拡張ビット精度制御グループSGとは、コンポーネントXの係数の有効桁数を拡張する拡張ビット精度dBDを制御するグループ単位を指す。例えば、図２３に示される入力画像１９１の場合、ピクチャ全体が４×４に１６分割され、それぞれが局所領域（局所領域００乃至局所領域３３）として設定されている。例えば、このような局所領域を拡張ビット精度制御グループSGとすることができる。つまりこの場合、局所領域毎に拡張ビット精度dBDが導出される。つまり、係数の有効桁数（演算精度）が局所領域毎に制御される。このような拡張ビット精度制御グループSGとする領域の大きさや形状は任意である。例えば、Slice、Tile、CTU（Coding Tree Unit）、CTB（Coded Tree Block）、CU（Coding Unit）、CB（Coding Block）、TU（Transform Unit）、TB（Transform Block）等を単位として拡張ビット精度制御グループSGを設定するようにしてもよい。
【０２２３】
ステップＳ１３４において、dBD導出部１３４は、拡張ビット精度制御グループSG毎に、ステップＳ１３３において導出されたコンポーネントXの最小画素値minPixelValueおよび最大画素値maxPixelValueを用いて、以下の式（１０）のように、ローカルレベルのビット深度LocalBitDepth（拡張ビット精度制御グループSG毎のビット深度）を導出し、さらにそのローカルレベルのビット深度LocalBitDepthと、ステップＳ１３１において導出されたシーケンスビット深度channelBitDepthとを用いて、係数の有効桁数を何ビット拡張するかを示す拡張ビット精度dBDを、例えば以下の式（１１）のように導出する。
【０２２４】
なお、式（１０）で導出されたローカルレベルのビット深度LocalBitDepthを、所定の閾値minLocalBitDepth（例えば、8）を参照して、さらに式（１０Ａ）に示すように、LocalBitDepth = max(minLocalBitDepth,LocalBitDepth)として補正してもよい。こうすることで、後続の式（１１）で導出される拡張ビット精度dBDが大きくなり過ぎる（すなわち、有効桁数をあげ過ぎて中間係数データが最小値coefMin乃至最大値coefMaxの範囲を超えてしまう）ケースの発生を抑制することができる。なお、式（１０Ａ）において、演算子max(x, y)は、数値x, yのうち大きい値を返す演算子である。
【０２２５】
LocalBitDepth = ceil(log2(maxPixelValue - minPixelValue))
・・・（１０）
LocalBitDepth = max(minLocalBitDepth, LocalBitDepth)
・・・（１０Ａ）
dBD = channelBitDepth - LocalBitDepth
・・・（１１）
【０２２６】
ステップＳ１３５において、deltaX導出部１３５は、拡張ビット精度制御グループSG毎に、コンポーネントXの拡張ビット精度dBDの差分パラメータを導出する。例えば、deltaX導出部１３５は、シーケンスビット深度channelBitDepth、スライスビット深度sliceBitDepthと、拡張ビット精度制御グループSG毎の拡張ビット精度dBDを用いて、以下の式（１２）のように導出する。つまり、この場合、差分パラメータdeltaXは、画像のスライスビット深度sliceBitDepthとローカルレベルのビット深度LocalBitDepthとの差分である。
【０２２７】
deltaX = dBD + sliceBitDepth - channelBitDepth
= sliceBitDepth - LocalBitDepth
・・・（１２）
【０２２８】
なお、channelBitDepth≧sliceBitDepth ≧ deltaXの関係にある。このように、差分パラメータdeltaXを、拡張ビット精度dBD、シーケンスビット深度、スライスビット深度を介して表すことで、差分パラメータdeltaXの値をより小さくする（値の増大を抑制する）ことができる。すなわち、deltaXの符号量を小さくすることができ、符号化効率の低減を抑制することができる。
【０２２９】
ステップＳ１３５の処理が終了すると、dBD,deltaX導出処理が終了し、処理は図２１に戻る。
【０２３０】
＜拡張ビット精度制御グループSGの制御＞
なお、拡張ビット精度制御グループSGは、CTBのサイズCtbLog2Sizeに対する分割深度の差分値diff_cu_delta_depthによって制御するようにしてもよい。この場合、SGのサイズLog2SGSizeは、例えば、以下の式（１３）のように求まる。
【０２３１】
Log2SGSize = CtbLog2Size - diff_cu_delta_depth
・・・（１３）
【０２３２】
例えば、図２４において点線枠で示されるCTBが128x128のサイズの場合（CtbLog2Size = 7）であって、図２４において太線枠で示されるSGのサイズを32x32とする場合（Log2SGSize = 5）、差分値diff_cu_delta_depthの値は、以下の式（１４）のように２となる。
【０２３３】
diff_cu_delta_depth = CtbLog2Size - Log2SGSize = 7 - 5 = 2
・・・（１４）
【０２３４】
なお、差分値diff_cu_delta_depthは、所定のパラメータセット（ヘッダ情報）単位（例えば、シーケンスパラメータセット（SPS）、ピクチャパラメータセット（PPS（Picture Parameter Set））、またはスライスヘッダ（SH（Slice Header））等）で通知されるものとする。こうすることで、差分値diff_cu_delta_depthで拡張ビット精度制御グループSGの粒度を制御することができるようになる。
【０２３５】
例えば、信号のレンジがある程度大きい領域において一定である場合は、この差分値diff_cu_delta_depthの値を小さくすることで、差分パラメータdeltaXを通知する単位を大きくすることができ、オーバーヘッドを削減することができる。
【０２３６】
逆に、信号のレンジが小さい領域で変化する場合は、この差分値diff_cu_delta_depthの値を大きくすることで、差分パラメータdeltaXを通知する単位を小さくすることができ、より細かい粒度で、逆量子化・逆直交変換時の変換係数の有効桁数を拡張することができる。
【０２３７】
＜差分パラメータdeltaXの定義の他の例１＞
なお、以上においては、コンポーネントXの拡張ビット精度dBDの差分パラメータdeltaXを、シーケンスビット深度channelBitDepth、スライスビット深度sliceBitDepth、および拡張ビット精度dBDから求めるように説明したが、差分パラメータdeltaXの定義は、任意であり、この例に限定されない。
【０２３８】
例えば、拡張ビット精度dBDを、シーケンスビット深度channelBitDepthと、差分パラメータdeltaXの和で導出するようにしてもよい。つまり、差分パラメータdeltaXを、以下の式（１５）に示されるように、シーケンスビット深度channelBitDepthと拡張ビット精度dBDの差分値としてもよい。
【０２３９】
deltaX = channelBitDepth - dBD
・・・（１５）
【０２４０】
このようにすることにより、差分パラメータdeltaXを、上述した例よりも容易に導出することができる。
【０２４１】
＜差分パラメータdeltaXの定義の他の例２＞
また、以下の式（１６）のように、差分パラメータdeltaXを、拡張ビット精度dBDと等価としてもよい。
【０２４２】
deltaX = dBD
・・・（１６）
【０２４３】
この場合、差分パラメータdeltaXを、拡張ビット精度dBD以外の他のパラメータに依存しないで導出することができる。
【０２４４】
＜差分パラメータdeltaXの定義の他の例３＞
また、例えば、以下の式（１７）のように、差分パラメータdeltaXを、処理対象の拡張ビット精度制御グループSG（カレント拡張ビット精度制御グループSGcurと称する）の拡張ビット精度dBDと、その拡張ビット精度dBDの予測値dBDpredとの差分としてもよい。
【０２４５】
deltaX = dBD - dBDpred
・・・（１７）
【０２４６】
例えば、この予測値dBDpredは、カレント拡張ビット精度制御グループSGcurに隣接する符号化済みの拡張ビット精度制御グループneighborSGsのdBDを参照して導出される。例えば、図２５のＡのようなCTBにおいて、図２５のＢに示されるように、右下４分の１の領域がカレント拡張ビット精度制御グループSGcurあるとする。また、そのカレント拡張ビット精度制御グループSGcurの上辺に隣接する拡張ビット精度制御グループSGを隣接拡張ビット精度制御グループSGAとし、カレント拡張ビット精度制御グループSGcurの左辺に隣接する拡張ビット精度制御グループSGを隣接拡張ビット精度制御グループSGBとする。隣接拡張ビット精度制御グループSGAおよび隣接拡張ビット精度制御グループSGBは、符号化済みの隣接拡張ビット精度制御グループである。
【０２４７】
この場合、拡張ビット精度dBDの予測値dBDpredが、隣接拡張ビット精度制御グループSGAの拡張ビット精度dBDAおよび隣接拡張ビット精度制御グループSGBの拡張ビット精度dBDBに基づいて設定されるようにしてもよい。さらに、例えば、拡張ビット精度dBDの予測値dBDpredが、これらの隣接拡張ビット精度制御グループが参照可能であるか否かに応じた方法で導出されるようにしてもよい。例えば、以下のような方法で予測値dBDpredが求められるようにしてもよい。
【０２４８】
例えば、隣接拡張ビット精度制御グループSGAと隣接拡張ビット精度制御グループSGBともに参照可能な場合、予測値dBDpredは、以下の式（１８）のように導出する。
【０２４９】
dBDpred = ave(dBDA, dBDB)
・・・（１８）
【０２５０】
ここで、ave(x, y)は、ｘとｙの平均値を返す演算子である。
例えば、ave(x, y) = (x + y + 1)>>1である。
【０２５１】
また、例えば、隣接拡張ビット精度制御グループSGAのみ参照可能な場合、予測値dBDpredは、以下の式（１９）のように導出する。
【０２５２】
dBDpred = dBDA
・・・（１９）
【０２５３】
また、例えば、隣接拡張ビット精度制御グループSGBのみ参照可能な場合、予測値dBDpredは、以下の式（２０）のように導出する。
【０２５４】
dBDpred = dBDB
・・・（２０）
【０２５５】
また、例えば、隣接拡張ビット精度制御グループSGAおよび隣接拡張ビット精度制御グループSGBの両方が参照不可な場合、予測値dBDpredは、以下の式（２１）のように導出する。
【０２５６】
dBDpred = const  (=0)
・・・（２１）
【０２５７】
このように、隣接する符号化済ビット精度制御グループneigborSGsの拡張ビット精度dBDを使って、カレント拡張ビット精度制御グループSGcurのdBDを予測することで、差分パラメータdeltaXの値を低減することができる。すなわち、deltaXの復号や符号化に要する符号量の増大を抑制することができる。
【０２５８】
＜直交変換処理の流れ＞
図２１のステップＳ１０６の処理において実行される直交変換処理の流れの例を、図２６のフローチャートを参照して説明する。
【０２５９】
直交変換処理が開始されると、直交変換部１１３のプライマリ水平変換部１５１は、ステップＳ１５１において、プライマリ水平変換処理を行う。
【０２６０】
ステップＳ１５２において、プライマリ垂直変換部１５２は、プライマリ垂直変換処理を行う。
【０２６１】
ステップＳ１５３において、セカンダリ変換部１４２は、セカンダリ変換処理を行う。
【０２６２】
ステップＳ１５３の処理が終了すると、直交変換処理が終了し、処理は図２１に戻る。
【０２６３】
以上のような直交変換処理において、ステップＳ１５１やステップＳ１５２の処理として、上述した本技術を適用した処理が行われる。したがって、この直交変換処理を実行することにより、符号化効率の低減を抑制することができる。
【０２６４】
なお、この直交変換処理の各ステップ（ステップＳ１５１乃至ステップＳ１５３）の処理は、それぞれ、スキップ（省略）することができる。
【０２６５】
＜プライマリ水平変換処理の流れ＞
図２６のステップＳ１５１において実行されるプライマリ水平変換処理の流れの例を、図２７のフローチャートを参照して説明する。
【０２６６】
プライマリ水平変換処理が開始されると、プライマリ水平変換部１５１のパラメータ導出部１６１は、ステップＳ１７１において、変換行列THを導出する。例えば、パラメータ導出部１６１は、変換タイプ識別子trTypeIdxHおよび変換ブロックのサイズに関する情報（log2TrWidth）に対応する（1<<log2TrWidth）行（1<<log2TrWidth）列のベース変換行列Tbaseを不図示のルックアップテーブルLUTより読み出し、変換行列THへ設定する（つまり、TH = Tbase）。
【０２６７】
ステップＳ１７２において、パラメータ導出部１６１は、プライマリ水平変換シフト量fwdShift1'を導出する。例えば、パラメータ導出部１６１は、シーケンス毎のプライマリ水平変換シフト量fwdShift1を、以下の式（２２）のように、変換ブロックのサイズに関する情報（log2TrWidth）、シーケンスビット深度channelBitDepth、ステップＳ１７１において導出した変換行列THの整数近似精度を表すパラメータtrMatShift、および変換係数のレンジに関するパラメータlog2TransformRangeに基づいて導出する。なお、パラメータtrMatShiftは、例えば、8の値をとる。
【０２６８】
fwdShift1 = log2TrWidth + channelBitDepth + trMatShift - log2TransformDynamicRange
・・・（２２）
【０２６９】
そして、パラメータ導出部１６１は、導出したシーケンス毎のプライマリ水平変換シフト量fwdShift1を、拡張ビット精度dBDを用いて以下の式（２３）のように補正する。つまり、パラメータ導出部１６１は、シーケンス毎のプライマリ水平変換シフト量fwdShift1および拡張ビット精度dBDを用いてローカルレベルの（拡張ビット精度制御グループSG毎の）プライマリ水平変換シフト量fwdShift1'を導出する。
【０２７０】
fwdShift1’ = fwdShift1 - dBD
・・・（２３）
【０２７１】
この式（２３）によって、プライマリ水平変換シフト量fwdShift1の大きさを拡張ビット精度dBD減らすことで、プライマリ水平変換に伴う正規化処理と、有効桁数をdBDだけ拡張する変換係数の伸長処理を同時に行うことができる。また、式（２３）によって、プライマリ水平変換シフト量fwdShift1の大きさを、拡張ビット精度dBD減らすことで、プライマリ水平変換後の変換係数の有効桁数をdBDだけあげることができる。
【０２７２】
また、ステップＳ１７２において、パラメータ導出部１６１は、変換係数の最小値coefMinおよび最大値coefMaxを、変換係数のレンジに関するパラメータlog2TransformRangeを用いて、以下の式（２４）および式（２５）のように導出する。
【０２７３】
coefMin = - 1<<log2TransformRange
・・・（２４）
coefMax = (1<<log2TransformRange) - 1
・・・（２５）
【０２７４】
ステップＳ１７３において、行列演算部１６２は、ステップＳ１７１において導出された変換行列THを用いて、以下の式（２６）のように予測残差resiに水平方向の１次元直交変換を行い、中間データtmp1を得る。なお、式（２６）において、×は行列積を表す演算子である。
【０２７５】
tmp1 = resi×THT
・・・（２６）
【０２７６】
ステップＳ１７４において、正規化部１６３は、以下の式（２７）に示されるように、中間データtmp1（予測残差resiと変換行列THとの行列積）を、ステップＳ１７２において導出されたプライマリ水平変換シフト量fwdShift1’で右ビットシフトして正規化をし、中間データtmp2を得る。
【０２７７】
tmp2 = ( tmp1 + offsetFwdShift1 ) >> fwdShift1’
・・・（２７）
【０２７８】
なお、offsetFwdShift1は、正規化時のラウンディングオフセットであり、例えば、以下の式（２８）のように導出される。
【０２７９】
offsetFwdShift1 = 1<<(fwdShift1’ - 1)
・・・（２８）
【０２８０】
なお、上述の式（２７）の代わりに、以下の式（２９）によって正規するようにしてもよい。
【０２８１】
tmp2 = sign(tmp1) * ( abs(tmp1) + offsetFwdShift1 ) >> fwdShift1’
・・・（２９）
【０２８２】
ステップＳ１７５において、クリップ部１６４は、以下の式（３０）に示されるように、中間データtmp2の値を、ステップＳ１７２において導出した係数の最小値coefMin乃至係数の最大値coefMaxの範囲になるようにクリップし、クリップ後の係数データcoefHを導出する。
【０２８３】
coefH  = clip3(coefMin, coefMax, tmp2)
・・・（３０）
【０２８４】
ここで、clip3(a_min, a_max, val)は、valがa_minより小さいとき、a_minを返し、valがa_maxより大きいとき、a_maxを返し、それ以外の場合（a_min乃至a_maxの範囲にある場合）、valを返すクリップ演算子である。
【０２８５】
ステップＳ１７５の処理が終了すると、処理は図２６に戻る。
【０２８６】
以上のように、プライマリ水平変換部１５１は、プライマリ水平変換シフト量fwdShift1の大きさを拡張ビット精度dBD減らすことで、プライマリ水平変換後の係数データcoefHの有効桁数をdBDだけあげることができる。したがって、後段の変換・量子化の処理において、演算精度をあげて、変換・量子化を行うことができる。また、プライマリ水平変換に伴う正規化処理と、有効桁数をdBDだけ拡張する変換係数の伸長処理を同時に行うことができる。
【０２８７】
なお、ステップＳ１７５の処理は省略するようにしてもよい。
【０２８８】
＜プライマリ垂直変換処理の流れ＞
図２６のステップＳ１５２において実行されるプライマリ垂直変換処理の流れの例を、図２８のフローチャートを参照して説明する。
【０２８９】
プライマリ垂直変換処理が開始されると、プライマリ垂直変換部１５２のパラメータ導出部１７１は、ステップＳ１９１において、変換行列TVを導出する。例えば、パラメータ導出部１７１は、変換タイプ識別子trTypeIdxVおよび変換ブロックのサイズに関する情報（log2TrHeight）に対応する（1<<log2TrHeight）行（1<<log2TrHeight）列のベース変換行列Tbaseを不図示のルックアップテーブルLUTより読み出し、変換行列TVへ設定する（つまり、TV = Tbase）。
【０２９０】
ステップＳ１９２において、パラメータ導出部１７１は、プライマリ垂直変換シフト量fwdShift2を導出する。例えば、パラメータ導出部１７１は、シーケンス毎のプライマリ垂直変換シフト量fwdShift2を、以下の式（３１）のように、変換ブロックのサイズに関する情報(log2TrHeight)と変換行列TVの整数近似精度を表すパラメータtrMatShiftに基づいて導出する。なお、パラメータtrMatShiftは、例えば、8の値をとる。その場合、変換行列TVの整数近似精度は、8bitであることを意味する。
【０２９１】
fwdShift2 = log2TrHeight + trMatShift
・・・（３１）
【０２９２】
また、ステップＳ１９２において、パラメータ導出部１７１は、変換係数の最小値coefMinおよび最大値coefMaxを、変換係数のレンジに関するパラメータlog2TransformRangeを用いて、上述の式（２４）および式（２５）のように導出する。
【０２９３】
ステップＳ１９３において、行列演算部１７２は、ステップＳ１９１において導出された変換行列TVを用いて、以下の式（３２）のように係数データcoefHに垂直方向の１次元直交変換を行い、中間データtmp3を得る。なお、式（３２）において、×は行列積を表す演算子である。
【０２９４】
tmp3 = TV×coefH
・・・（３２）
【０２９５】
ステップＳ１９４において、正規化部１７３は、以下の式（３３）に示されるように、中間データtmp3（変換行列TVと係数データcoefHとの行列積）を、ステップＳ１９２において導出されたプライマリ垂直変換シフト量fwdShift2で右ビットシフトして正規化をし、中間データtmp4を得る。
【０２９６】
tmp4 = ( tmp3 + offsetFwdShift2 ) >> fwdShift2
・・・（３３）
【０２９７】
なお、offsetFwdShift2は、正規化時のラウンディングオフセットであり、例えば、以下の式（３４）のように導出される。
【０２９８】
offsetFwdShift2 = 1<<(fwdShift2 - 1)
・・・（３４）
【０２９９】
なお、上述の式（３３）の代わりに、以下の式（３５）によって正規するようにしてもよい。
【０３００】
tmp4 = sign(tmp3) * ( abs(tmp3) + offsetFwdShift2 ) >> fwdShift2
・・・（３５）
【０３０１】
ステップＳ１９５において、クリップ部１７４は、以下の式（３６）に示されるように、中間データtmp4の値を、ステップＳ１９２において導出した係数の最小値coefMin乃至係数の最大値coefMaxの範囲になるようにクリップし、クリップ後の係数データcoefPを導出する。
【０３０２】
coefP  = clip3(coefMin, coefMax, tmp4)
・・・（３６）
【０３０３】
ステップＳ１９５の処理が終了すると、処理は図２６に戻る。
【０３０４】
以上のように、プライマリ垂直変換部１５２は、拡張ビット精度dBDだけ有効桁位数をあげた係数データcoefHに垂直方向の１次元直交変換をして、プライマリ垂直変換後の係数データcoefPを得ることができる。つまり、演算精度をあげて、プライマリ垂直変換を行うことができる。
【０３０５】
なお、ステップＳ１９５の処理は省略するようにしてもよい。
【０３０６】
＜量子化処理の流れ＞
図２１のステップＳ１０７において実行される量子化処理の流れの例を、図２９のフローチャートを参照して説明する。
【０３０７】
量子化処理が開始されると、量子化部１１４のパラメータ導出部１８１は、ステップＳ２１１において、量子化スケールパラメータfwdQScaleを導出する。例えば、変換ブロックの縦幅と横幅が互いに同じサイズの場合（すなわち、変換ブロックが正方形の場合）（log2TrSize%2==0）、パラメータ導出部１８１は、以下の式（３７）のように、量子化スケールパラメータfwdQScaleを導出する。
【０３０８】
fwdQScale = fwdLevelScale[qp_rem] * (16 / scaleMat)
・・・（３７）
【０３０９】
また、変換ブロックの縦幅と横幅が異なる場合（log2TrSize%2==1）、パラメータ導出部１８１は、以下の式（３８）のように、量子化スケールパラメータfwdQScaleを導出する。
【０３１０】
fwdQScale = fwdLevelScale[qp_rem] * (16 / scaleMat) * WHScale
・・・（３８）
【０３１１】
式（３７）および式（３８）において、qp_remは、qp % 6の値（qpを6で除算した剰余）である。また、qp_perは、qp // 6の値（qpを6で除算した商）である。また、WHScaleは、変換ブロックのサイズが正方形でない場合の補正スケーリングパラメータであり、所定値（例えば、181）が設定される。また、fwdLevelScale[]は、qp_rem (=qp % 6)毎のスケーリングパラメータを格納した配列であり、fwdLevelScale = [ 26214, 23302, 20560, 18396, 16384, 14564]の値が格納されている。また、scalingMatは、量子化マトリックスであり、変換係数の位置毎に値が設定される。
【０３１２】
ステップＳ２１２において、パラメータ導出部１８１は、量子化シフト量fwdQShift'を導出する。例えば、変換ブロックの縦幅と横幅が同じサイズの場合（すなわち、変換ブロックが正方形の場合）（log2TrSize%2==0）パラメータ導出部１８１は、以下の式（３９）のように、シーケンス毎の量子化シフト量fwdQShiftを導出する。
【０３１３】
fwdQShift = quantShift + qp_per
+ (log2TransformRange - channelBitDepth - log2TrSize)
・・・（３９）
【０３１４】
また、変換ブロックの縦幅と横幅が異なる場合（log2TrSize%2==1）、パラメータ導出部１８１は、以下の式（４０）のように、シーケンス毎の量子化シフト量fwdQShiftを導出する。
【０３１５】
fwdQShift = quantShift + qp_per
+ (log2TransformRange - channelBitDepth - log2TrSize - fwdWHShift)
・・・（４０）
【０３１６】
式（３９）および式（４０）において、quantShiftは、量子化スケーリングパラメータの精度に関わるシフト量であり、所定値（例えば、14）が設定される。log2TrSizeは、変換ブロックのサイズの対数値を示す。log2TransformRangeは、変換係数のレンジに関するパラメータであり、所定値（例えば、15）が設定される。fwdWHShiftは、変換ブロックのサイズが正方形でないときの補正シフト量であり、所定値（例えば、7）が設定される。拡張ビット精度dBDは、変換係数の有効桁数を拡張するためのシフト量であり、例えば、dBD=1であれば、dBD=0に対して1/2倍精度にすることを表す。
【０３１７】
そして、パラメータ導出部１８１は、以下の式（４１）のように、導出したシーケンス毎の量子化シフト量fwdQShiftを、拡張ビット精度dBDを用いて補正する。つまり、パラメータ導出部１８１は、シーケンス毎の量子化シフト量fwdQShiftと拡張ビット精度dBDとを用いて、ローカルレベルの量子化シフト量fwdQShift'を導出する。
【０３１８】
fwdQShift’ = fwdQShift + dBD
・・・（４１）
【０３１９】
式（４１）のように、量子化シフト量fwdQShiftの大きさを拡張ビット精度dBDだけ増やすことで、量子化後の変換係数coef’の有効桁数をdBDだけ減らすことができる。また、この場合、量子化に伴う正規化処理と、有効桁数をdBDだけ正規化する変換係数の正規化処理を同時に行うことができる。
【０３２０】
また、ステップＳ２１２において、パラメータ導出部１８１は、変換係数の最小値coefMinおよび最大値coefMaxを、変換係数のレンジに関するパラメータlog2TransformRangeを用いて、上述した式（２４）および式（２５）のように導出する。
【０３２１】
ステップＳ２１３において、量子化スケーリング部１８２は、例えば以下の式（４２）のように、変換係数coefをステップＳ２１１において導出した量子化スケーリングパラメータfwdQScaleでスケーリングし、中間データtmp5を得る。
【０３２２】
tmp5 = qcoef * fwdQScale  ・・・（４２）
【０３２３】
ステップＳ２１４において、量子化正規化部１８３は、以下の式（４３）のように、ステップＳ２１３において導出された中間データtmp5を、ステップＳ２１２において導出された量子化シフト量fwdQShift'で右ビットシフトして正規化をし、中間データtmp6を得る。
【０３２４】
tmp6 = sign(tmp5) * ( abs(tmp5) + offsetFwdQShift ) >> fwdQShift’
・・・（４３）
【０３２５】
ここで、offsetFwdQShiftは、量子化正規化時のラウンディングオフセットであり、RDOQ (Rate Distortion Optimized Quantization)等の手法で最適なラウンディングオフセットが決まる。
【０３２６】
ステップＳ２１５において、クリップ部１８４は、例えば以下の式（４４）のように、ステップＳ２１４の処理により得られた中間データtmp6の値を、ステップＳ２１２において導出した係数の最小値coefMin乃至係数の最大値coefMaxの範囲になるようにクリップし、クリップ後の量子化係数qcoefを得る。
【０３２７】
qcoef = clip3(coefMin, coefMax, tmp6)
・・・（４４）
【０３２８】
ステップＳ２１５の処理が終了すると、処理は図２１に戻る。
【０３２９】
以上のように、量子化部１１４は、拡張ビット精度dBDだけ有効桁位数をあげた変換係数coefを量子化して、量子化係数qcoefを得る。つまり、演算精度をあげて、量子化を行うことができる。また、この方法の場合、量子化に伴う正規化処理と、有効桁数をdBDだけ拡張した変換係数を元の有効桁数の精度へ戻す正規化処理を同時に行うことができる。
【０３３０】
なお、ステップＳ２１５の処理は省略するようにしてもよい。
【０３３１】
＜拡張ビット精度情報符号化処理の流れ＞
図２１のステップＳ１１３の符号化処理においては、拡張ビット精度dBDの差分パラメータdeltaX等の、制御部１０１より供給される、有効桁数の制御（演算精度の制御）に関する情報も符号化され、ビットストリームに含められる。
【０３３２】
そのような有効桁数の制御（演算精度の制御）に関する情報を符号化する拡張ビット精度情報符号化処理の流れの例を、図３０のフローチャートを参照して説明する。
【０３３３】
拡張ビット精度情報符号化処理が開始されると、符号化部１１５は、ステップＳ２３１において、シーケンスパラメータセットSPSの１パラメータとして、各コンポーネントのシーケンスビット深度channelBitDepthに関する情報（シンタックスの値）を符号化する。例えば、channelBitDepthに関わるシンタックスとして、以下のようなものがある。
【０３３４】
bit_depth_luma_minus8：輝度のシーケンスビット深度を示すシンタックス
bit_depth_chroma_minus8：色差のシーケンスビット深度を示すシンタックス
【０３３５】
これらのシンタックスの値は、例えば、以下の式（４５）および式（４６）のように導出される。例えば、制御部１０１のシーケンスビット深度設定部１３１が、図２２のステップＳ１３１において、これらのシンタックスの値を導出する。
【０３３６】
bit_depth_luma_minus8 = channelBitDepth - 8
・・・（４５）
bit_depth_chroma_minus8 = channelBitDepth - 8
・・・（４６）
【０３３７】
符号化部１１５は、制御部１０１から供給されるこれらのシンタックスの値を、シーケンスビット深度channelBitDepthに関する情報として符号化し、ビットストリームに含める（シーケンスビット深度に関する情報を含むビットストリームを生成する）。
【０３３８】
ステップＳ２３２において、符号化部１１５は、スライスヘッダSHの１パラメータとして、各コンポーネントのスライスビット深度sliceBitDepthに関する情報（シンタックスの値）を符号化する。例えば、スライスビット深度sliceBitDepthに関わるシンタックスとして、以下のようなものがある。
【０３３９】
slice_min_val：コンポーネントX(X=Y/Cb/Cr)のスライス内における最小画素値
slice_max_val：コンポーネントX(X=Y/Cb/Cr)のスライス内における最大画素値
【０３４０】
例えば、制御部１０１のスライスビット深度設定部１３２が、図２２のステップＳ１３２において、これらのシンタックスの値を導出する。符号化部１１５は、制御部１０１から供給されるこれらのシンタックスの値を、スライスビット深度sliceBitDepthに関する情報として符号化し、ビットストリームに含める（スライスビット深度に関する情報を含むビットストリームを生成する）。
【０３４１】
ステップＳ２３３において、符号化部１１５は、拡張ビット精度制御グループSG毎に、コンポーネントXの拡張ビット精度dBDの差分パラメータdeltaXを符号化する。例えば、制御部１０１のdeltaX導出部１３５が、図２２のステップＳ１３５において、この差分パラメータdeltaXを導出する。符号化部１１５は、制御部１０１から供給される差分パラメータdeltaXを、拡張ビット精度dBDに関する情報として符号化し、ビットストリームに含める（差分パラメータdeltaXを含むビットストリームを生成する）。
【０３４２】
ステップＳ２３３の処理が終了すると、拡散ビット精度情報符号化処理が終了し、処理は図２１に戻る。
【０３４３】
以上のように差分パラメータdeltaX等の有効桁数の制御（演算精度の制御）に関する情報を符号化し、ビットストリームに含め、符号化側から復号側に伝送することにより、復号側においても、本技術を適用した方法で復号を行うことができる。したがって、符号化効率の低減を抑制することができる。
【０３４４】
図３１は、差分パラメータdeltaXのシンタックスの例を示す図である。図３１のＡのシンタックスは、例えばCTU、CTB、CU、またはCB等、差分パラメータdeltaXを変換ブロックより大きい単位でシグナルする場合の例を示す。このようにすることにより、オーバーヘッドを低減させることができる。
【０３４５】
なお、adaptive_scaling_enabled_flagは、適応スケーリングの適用可か否かを示すフラグであり、ヘッダ情報（例えば、シーケンスパラメータセット（SPS）、ピクチャパラメータセット（PPS）、またはスライスヘッダ（SH））において通知される。
【０３４６】
該フラグが真（１）のとき、適応スケーリングを適用するため、適応スケーリングに関するシンタックス群を復号・符号化する。これに対して、該フラグが偽（０）のとき、適応スケーリングを適用しないため、deltaX(X=Y/Cb/Cr) = 0と解釈する。
【０３４７】
図３１のＢのシンタックスは、変換ブロック単位でシグナルする場合の例を示す。この場合、各コンポーネントのcbf（coded block flag）を参照して、有意係数のある変換ブロックに対して、差分パラメータを符号化・復号する。このようにすることにより、オーバーヘッドを低減させることができる。
【０３４８】
＜画像復号装置＞
次に、復号の際に図９の表の方法＃１のような演算精度の制御を行う構成について説明する。図３２は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図３２に示される画像復号装置２００は、AVCやHEVCのように、画像とその予測画像との予測残差が符号化された符号化データを復号する装置である。例えば、画像復号装置２００は、非特許文献１乃至非特許文献３に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データが符号化された符号化データを復号する。例えば、画像復号装置２００は、上述の画像符号化装置１００により生成された符号化データ（ビットストリーム）を復号する。
【０３４９】
なお、図３２においては、処理部やデータの流れ等の主なものを示しており、図３２に示されるものが全てとは限らない。つまり、画像復号装置２００において、図３２においてブロックとして示されていない処理部が存在したり、図３２において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像復号装置２００内の処理部等を説明する他の図においても同様である。
【０３５０】
図３２において、画像復号装置２００は、蓄積バッファ２１１、復号部２１２、逆量子化部２１３、逆直交変換部２１４、演算部２１５、インループフィルタ部２１６、並べ替えバッファ２１７、フレームメモリ２１８、および予測部２１９を備えている。なお、予測部２１９は、不図示のイントラ予測部、およびインター予測部を備えている。画像復号装置２００は、符号化データ（ビットストリーム）を復号することによって、動画像データを生成するための装置である。
【０３５１】
＜蓄積バッファ＞
蓄積バッファ２１１は、画像復号装置２００に入力されたビットストリームを取得し、保持（記憶）する。蓄積バッファ２１１は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部２１２に供給する。
【０３５２】
＜復号部＞
復号部２１２は、画像の復号に関する処理を行う。例えば、復号部２１２は、蓄積バッファ２１１から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。
【０３５３】
シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部２１２は、ビットストリームから、これらの情報をパースする（解析して取得する）。これらの情報について以下に説明する。
【０３５４】
＜ヘッダ情報Hinfo＞
ヘッダ情報Hinfoは、例えば、VPS（Video Parameter Set）／SPS（Sequence Parameter Set）／PPS（Picture Parameter Set）／SH（スライスヘッダ）などのヘッダ情報を含む。ヘッダ情報Hinfoには、例えば、画像サイズ（横幅PicWidth、縦幅PicHeight）、ビット深度（輝度bitDepthY, 色差bitDepthC）、色差アレイタイプChromaArrayType、CUサイズの最大値MaxCUSize／最小値MinCUSize、４分木分割（Quad-tree分割ともいう）の最大深度MaxQTDepth/最小深度MinQTDepth、２分木分割（Binary-tree分割）の最大深度MaxBTDepth/最小深度MinBTDepth、変換スキップブロックの最大値MaxTSSize（最大変換スキップブロックサイズともいう）、各符号化ツールのオンオフフラグ（有効フラグともいう）などを規定する情報が含まれる。
【０３５５】
例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が１（真）の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が０（偽）の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
【０３５６】
コンポーネント間予測有効フラグ（ccp_enabled_flag）:コンポーネント間予測（CCP（Cross-Component Prediction），CC予測とも称する）が使用可能であるか否かを示すフラグ情報である。例えば、このフラグ情報が「１」（真）の場合、使用可能であることが示され、「０」（偽）の場合、使用不可であることが示される。
【０３５７】
なお、このCCPは、コンポーネント間線形予測（CCLMまたはCCLMP）とも称する。
【０３５８】
＜予測モード情報Pinfo＞
予測モード情報Pinfoには、例えば、処理対象PB（予測ブロック）のサイズ情報PBSize（予測ブロックサイズ）、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。
【０３５９】
イントラ予測モード情報IPinfoには、例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode、およびそのシンタックスから導出される輝度イントラ予測モードIntraPredModeY等が含まれる。
【０３６０】
また、イントラ予測モード情報IPinfoには、例えば、コンポーネント間予測フラグ（ccp_flag（cclmp_flag））、多クラス線形予測モードフラグ（mclm_flag）、色差サンプル位置タイプ識別子（chroma_sample_loc_type_idx）、色差MPM識別子（chroma_mpm_idx）、および、これらのシンタックスから導出される輝度イントラ予測モード（IntraPredModeC）等が含まれる。
【０３６１】
コンポーネント間予測フラグ（ccp_flag（cclmp_flag））は、コンポーネント間線形予測を適用するか否かを示すフラグ情報である。例えば、ccp_flag==1のとき、コンポーネント間予測を適用することを示し、ccp_flag==0のとき、コンポーネント間予測を適用しないことを示す。
【０３６２】
多クラス線形予測モードフラグ（mclm_flag）は、線形予測のモードに関する情報（線形予測モード情報）である。より具体的には、多クラス線形予測モードフラグ（mclm_flag）は、多クラス線形予測モードにするか否かを示すフラグ情報である。例えば、「０」の場合、１クラスモード（単一クラスモード）（例えばCCLMP）であることを示し、「１」の場合、２クラスモード（多クラスモード）（例えばMCLMP）であることを示す。
【０３６３】
色差サンプル位置タイプ識別子（chroma_sample_loc_type_idx）は、色差コンポーネントの画素位置のタイプ（色差サンプル位置タイプとも称する）を識別する識別子である。例えば色フォーマットに関する情報である色差アレイタイプ（ChromaArrayType）が420形式を示す場合、色差サンプル位置タイプ識別子は、以下の式（４７）のような割り当て方となる。
【０３６４】
chroma_sample_loc_type_idx == 0：Type2
chroma_sample_loc_type_idx == 1：Type3
chroma_sample_loc_type_idx == 2：Type1
chroma_sample_loc_type_idx == 3：Type0
・・・（４７）
【０３６５】
なお、この色差サンプル位置タイプ識別子（chroma_sample_loc_type_idx）は、色差コンポーネントの画素位置に関する情報（chroma_sample_loc_info()）として（に格納されて）伝送される。
【０３６６】
色差MPM識別子（chroma_mpm_idx）は、色差イントラ予測モード候補リスト（intraPredModeCandListC）の中のどの予測モード候補を色差イントラ予測モードとして指定するかを表す識別子である。
【０３６７】
動き予測情報MVinfoには、例えば、merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X={0,1}, mvd等の情報が含まれる（例えば、JCTVC-W1005, 7.3.8.6 Prediction Unit Syntaxを参照）。
【０３６８】
もちろん、予測モード情報Pinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【０３６９】
＜変換情報Tinfo＞
変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【０３７０】
処理対象変換ブロックの横幅サイズTBWSizeおよび縦幅TBHSize（または、２を底とする各TBWSize（または、TrWidth）、TBHSize（または、TrHeight）の対数値log2TBWSize（または、log2TrWidth）、log2TBHSize（または、log2TrHeight）であってもよい）。
変換スキップフラグ（ts_flag）:（逆）プライマリ変換および（逆）セカンダリ変換をスキップか否かを示すフラグである。
スキャン識別子（scanIdx）
量子化パラメータ（qp）
量子化マトリックス（scaling_matrix（例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax））
【０３７１】
＜残差情報Rinfo＞
残差情報Rinfo（例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照）には、例えば以下のシンタックスが含まれる。
【０３７２】
cbf（coded_block_flag）：残差データ有無フラグ
last_sig_coeff_x_pos：ラスト非ゼロ係数X座標
last_sig_coeff_y_pos：ラスト非ゼロ係数Y座標
coded_sub_block_flag：サブブロック非ゼロ係数有無フラグ
sig_coeff_flag：非ゼロ係数有無フラグ
gr1_flag：非ゼロ係数のレベルが１より大きいかを示すフラグ（GR1フラグとも呼ぶ）
gr2_flag：非ゼロ係数のレベルが２より大きいかを示すフラグ(GR2フラグとも呼ぶ)
sign_flag：非ゼロ係数の正負を示す符号（サイン符号とも呼ぶ）
coeff_abs_level_remaining:非ゼロ係数の残余レベル（非ゼロ係数残余レベルとも呼ぶ）
など。
【０３７３】
もちろん、残差情報Rinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【０３７４】
＜フィルタ情報Finfo＞
フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。
【０３７５】
デブロッキングフィルタ(DBF)に関する制御情報
画素適応オフセット(SAO)に関する制御情報
適応ループフィルタ(ALF)に関する制御情報
その他の線形・非線形フィルタに関する制御情報
【０３７６】
より具体的には、例えば、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報や、CU単位のフィルタOn/Off制御情報、スライス、タイルの境界に関するフィルタOn/Off制御情報などが含まれる。もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
【０３７７】
復号部２１２の説明に戻り、復号部２１２は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化係数qcoefを導出する。復号部２１２は、その量子化係数qcoefを、逆量子化部２１３に供給する。
【０３７８】
また、復号部２１２は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、量子化係数qcoef、変換情報Tinfo、フィルタ情報Finfoを各ブロックへ供給する。具体的には以下の通りである。
【０３７９】
ヘッダ情報Hinfoは、逆量子化部２１３、逆直交変換部２１４、予測部２１９、インループフィルタ部２１６に供給される。
予測モード情報Pinfoは、逆量子化部２１３および予測部２１９に供給される。
変換情報Tinfoは、逆量子化部２１３および逆直交変換部２１４に供給される。
フィルタ情報Finfoは、インループフィルタ部２１６に供給される。
【０３８０】
もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
【０３８１】
例えば、画像符号化装置１００の説明において上述した、例えば、シーケンスビット深度channelBitDepthに関する情報、スライスビット深度sliceBitDepthに関する情報、差分パラメータdeltaX等の、有効係数の制御（演算精度の制御）に関する情報は、変換情報Tinfoに含められていてもよい。
【０３８２】
＜逆量子化部＞
逆量子化部２１３は、逆量子化に関する処理を行う。例えば、逆量子化部２１３は、復号部２１２から供給される変換情報Tinfoおよび量子化係数qcoefを入力とし、その変換情報Tinfoに基づいて、量子化係数qcoefの値をスケーリング（逆量子化）し、逆量子化後の変換係数coef'を導出する。
【０３８３】
なお、この逆量子化は、量子化部１１４による量子化の逆処理として行われる。また、この逆量子化は、逆量子化部１１７による逆量子化と同様の処理である。つまり、逆量子化部１１７は、逆量子化部２１３と同様の処理（逆量子化）を行う。
【０３８４】
逆量子化部２１３は、導出した変換係数coef'を逆直交変換部２１４に供給する。
【０３８５】
＜逆直交変換部＞
逆直交変換部２１４は、逆直交変換に関する処理を行う。例えば、逆直交変換部２１４は、逆量子化部２１３から供給される変換係数coef'、および、復号部２１２から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、変換係数coef'に対して逆直交変換処理を行い、予測残差resi'を導出する。
【０３８６】
なお、この逆直交変換は、直交変換部１１３による直交変換の逆処理として行われる。また、この逆直交変換は、逆直交変換部１１８による逆直交変換と同様の処理である。つまり、逆直交変換部１１８は、逆直交変換部２１４と同様の処理（逆直交変換）を行う。
【０３８７】
逆直交変換部２１４は、導出した予測残差resi'を演算部２１５に供給する。
【０３８８】
＜演算部＞
演算部２１５は、画像に関する情報の加算に関する処理を行う。例えば、演算部２１５は、逆直交変換部２１４から供給される予測残差resi'と、予測部２１９から供給される予測画像Pとを入力とする。演算部２１５は、以下の式（４８）に示されるように、予測残差resi'とその予測残差resi'に対応する予測画像P（予測信号）とを加算し、局所復号画像Rlocalを導出する。
【０３８９】
Rlocal = resi' + P
・・・（４８）
【０３９０】
演算部２１５は、導出した局所復号画像Rlocalを、インループフィルタ部２１６およびフレームメモリ２１８に供給する。
【０３９１】
＜インループフィルタ部＞
インループフィルタ部２１６は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部２１６は、演算部２１５から供給される局所復号画像Rlocalと、復号部２１２から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部２１６に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
【０３９２】
インループフィルタ部２１６は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。
【０３９３】
例えば、インループフィルタ部２１６は、非特許文献１に記載のように、バイラテラルフィルタ、デブロッキングフィルタ（DBF（DeBlocking Filter））、適応オフセットフィルタ（SAO（Sample Adaptive Offset））、および適応ループフィルタ（ALF(Adaptive Loop Filter)）の４つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
【０３９４】
インループフィルタ部２１６は、符号化側（例えば画像符号化装置１００のインループフィルタ部１２０）により行われたフィルタ処理に対応するフィルタ処理を行う。もちろん、インループフィルタ部２１６が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部２１６がウィーナーフィルタ等を適用するようにしてもよい。
【０３９５】
インループフィルタ部２１６は、フィルタ処理された局所復号画像Rlocalを並べ替えバッファ２１７およびフレームメモリ２１８に供給する。
【０３９６】
＜並べ替えバッファ＞
並べ替えバッファ２１７は、インループフィルタ部２１６から供給された局所復号画像Rlocalを入力とし、それを保持（記憶）する。並べ替えバッファ２１７は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する（バッファ内に格納する）。並べ替えバッファ２１７は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ２１７は、並べ替えた復号画像R群を動画像データとして画像復号装置２００の外部に出力する。
【０３９７】
＜フレームメモリ＞
フレームメモリ２１８は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ２１８は、演算部２１５より供給される局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ２１８内のバッファへ格納する。
【０３９８】
また、フレームメモリ２１８は、インループフィルタ部２１６から供給される、インループフィルタ処理された局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ２１８内のバッファへ格納する。フレームメモリ２１８は、適宜、その記憶している復号画像R（またはその一部）を参照画像として予測部２１９に供給する。
【０３９９】
なお、フレームメモリ２１８が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
【０４００】
＜予測部＞
予測部２１９は、予測画像の生成に関する処理を行う。例えば、予測部２１９は、復号部２１２から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部２１９は、その予測モード情報Pinfoによって指定される、フレームメモリ２１８に格納されたフィルタ前またはフィルタ後の復号画像R（またはその一部）を、参照画像として利用する。予測部２１９は、導出した予測画像Pを、演算部２１５に供給する。
【０４０１】
以上のような構成の画像復号装置２００において、復号部２１２、逆量子化部２１３、および逆直交変換部２１４は、上述した本技術を適用した処理を行う。また、復号部２１２は、復号部として、上述した本技術を適用した処理（シーケンス内での有効桁数の制御に関する処理）を行う。
【０４０２】
例えば、復号部２１２は、ビットストリームを復号し、そのビットストリームに含まれる有効桁数の制御に関する情報を抽出する。例えば、復号部２１２は、この有効桁数の制御に関する情報として、シーケンスビット深度channelBitDepthに関する情報、スライスビット深度sliceBitDepthに関する情報、差分パラメータdeltaX等の情報を抽出する。さらに、復号部２１２は、それらの情報から、シーケンスビット深度channelBitDepthや、スライスビット深度sliceBitDepth、拡張ビット精度dBD等を導出する。
【０４０３】
復号部２１２は、これらの情報を所定の処理部に供給する。例えば、復号部２１２は、シーケンスビット深度channelBitDepthや拡張ビット精度dBDを変換情報Tinfoとして逆量子化部２１３および逆直交変換部２１４に供給する。
【０４０４】
逆量子化部２１３は、上述のように逆量子化を行うとともに、変換情報Tinfoとして復号部２１２から供給されるシーケンスビット深度channelBitDepthや拡張ビット精度dBDに基づいて、演算精度（係数データの有効桁数）を、ビット深度のシーケンス内における時間方向または空間方向の変化に応じて制御する。例えば、逆量子化部２１３は、ローカルレベルのビット深度に応じたシフト量（拡張ビット精度dBDに応じたシフト量）でビットシフトすることにより、係数データの有効桁数を制御する。
【０４０５】
逆直交変換部２１４は、上述のように逆直交変換を行うとともに、変換情報Tinfoとして制御部１０１から供給されるシーケンスビット深度channelBitDepthや拡張ビット精度dBDに基づいて、演算精度（係数データの有効桁数）を、ビット深度のシーケンス内における時間方向または空間方向の変化に応じて制御する。例えば、逆直交変換部２１４は、ローカルレベルのビット深度に応じたシフト量（拡張ビット精度dBDに応じたシフト量）でビットシフトすることにより、残差データの有効桁数を制御する。
【０４０６】
したがって、画像復号装置２００は、符号化効率の低減を抑制することができる。
【０４０７】
＜復号部の詳細＞
図３３は、復号部２１２の、有効桁数の制御に関する情報の抽出等に関する主な構成例を示すブロック図である。図３３に示されるように、復号部２１２は、シーケンスビット深度導出部２３１、スライスビット深度導出部２３２、deltaX復号部２３３、およびdBD導出部２３４を有する。なお、復号部２１２は、上述のように、他の情報の復号等、有効桁数の制御に関する情報の抽出等以外の処理も行うが、それらの処理についての構成の説明は省略する。
【０４０８】
シーケンスビット深度導出部２３１は、蓄積バッファ２１１のビットストリームbitstreamを入力とし、シーケンスビット深度channelBitDepthの導出に関する処理を行う。例えば、シーケンスビット深度導出部２３１は、ビットストリームに含まれるシーケンスビット深度に関する情報を復号して抽出する。また、例えば、シーケンスビット深度導出部２３１は、その抽出したシーケンスビット深度に関する情報を用いてシーケンスビット深度channelBitDepthを導出する。また、例えば、シーケンスビット深度導出部２３１は、その導出したシーケンスビット深度channelBitDepthをdBD導出部２３４に供給する。さらに、例えば、シーケンスビット深度導出部２３１は、その導出したシーケンスビット深度channelBitDepthを、変換情報Tinfoとして逆量子化部２１３および逆直交変換部２１４に供給する。
【０４０９】
スライスビット深度導出部２３２は、蓄積バッファ２１１のビットストリームbitstreamを入力とし、スライスビット深度sliceBitDepthの導出に関する処理を行う。例えば、スライスビット深度導出部２３２は、ビットストリームに含まれるスライスビット深度に関する情報を復号して抽出する。また、例えば、スライスビット深度導出部２３２は、その抽出したスライスビット深度に関する情報を用いてスライスビット深度sliceBitDepthを導出する。また、例えば、スライスビット深度導出部２３２は、その導出したスライスビット深度sliceBitDepthをdBD導出部２３４に供給する。
【０４１０】
deltaX復号部２３３は、蓄積バッファ２１１のビットストリームbitstreamを入力とし、差分パラメータdeltaXの復号に関する処理を行う。例えば、deltaX復号部２３３は、ビットストリームに含まれる差分パラメータdeltaX（拡張ビット精度に関する情報）を復号して抽出する。deltaX復号部２３３は、得られた差分パラメータdeltaXを、dBD導出部２３４に供給する。
【０４１１】
dBD導出部２３４は、シーケンスビット深度導出部２３１から供給されるシーケンスビット深度channelBitDepth、スライスビット深度導出部２３２から供給されるスライスビット深度sliceBitDepth、および、deltaX復号部２３３はから供給される差分パラメータdeltaXを入力とし、拡張ビット精度dBDの導出に関する処理を行う。例えば、dBD導出部２３４は、それらのパラメータに基づいて拡張ビット精度dBDをローカルレベル毎に導出する。また、dBD導出部１３４は、その導出した拡張ビット精度dBDを、変換情報Tinfoとして逆量子化部２１３および逆直交変換部２１４に供給する。
【０４１２】
＜逆量子化部＞
図３４は、逆量子化部２１３の主な構成例を示すブロック図である。図３４に示されるように、逆量子化部２１３は、パラメータ導出部２４１、逆量子化スケーリング部２４２、逆量子化正規化部２４３、およびクリップ部２４４を有する。
【０４１３】
パラメータ導出部２４１は、量子化パラメータqp、量子化マトリクスscalingMat、変換ブロックの水平方向のサイズlog2TrWidth、変換ブロックの垂直方向のサイズlog2TrHeight、シーケンスビット深度channelBitDepth、並びに拡張ビット精度dBD等の情報を入力とし、それらの情報に基づいて、逆量子化処理に用いられるパラメータを導出する。
【０４１４】
例えば、パラメータ導出部２４１は、量子化パラメータqp、量子化マトリクスscalingMat等の情報に基づいて、逆量子化スケールパラメータinvQScaleを導出する。
【０４１５】
また、例えば、パラメータ導出部２４１は、量子化パラメータqp、変換ブロックの水平方向のサイズlog2TrWidth、変換ブロックの垂直方向のサイズlog2TrHeight、シーケンスビット深度channelBitDepth等の情報に基づいて、シーケンス毎に設定される量子化における有効桁数のシフト量である逆量子化シフト量invQShiftを導出する。なお、逆量子化シフト量invQShiftが導出済みの場合、この処理は省略することができる。
【０４１６】
さらに、例えば、パラメータ導出部２４１は、その導出したシーケンスレベルの逆量子化シフト量invQShiftおよび拡張ビット精度dBDに基づいて、ローカルレベルの逆量子化シフト量invQShift'を導出する。つまり、パラメータ導出部２４１は、ローカルレベル毎に、拡張ビット精度dBDを用いて逆量子化シフト量invQShiftを補正する。
【０４１７】
また、例えば、パラメータ導出部２４１は、変換係数の最小値coefMinと最大値coefMaxとを導出する。
【０４１８】
パラメータ導出部２４１は、導出したパラメータを各処理部に供給する。例えば、パラメータ導出部２４１は、導出した逆量子化スケールパラメータinvQScaleを逆量子化スケーリング部２４２に供給する。また、例えば、パラメータ導出部２４１は、導出した逆量子化シフト量invQShift'を逆量子化正規化部２４３に供給する。さらに、例えば、パラメータ導出部２４１は、導出した変換係数の最小値coefMinおよび最大値coefMaxをクリップ部２４４に供給する。
【０４１９】
逆量子化スケーリング部２４２は、量子化係数qcoefおよび逆量子化スケールパラメータinvQScaleを入力とし、係数のスケーリングに関する処理を行う。例えば、逆量子化スケーリング部２４２は、逆量子化スケールパラメータinvQScaleを用いて量子化係数qcoefのスケーリングを行う。逆量子化スケーリング部２４２は、その演算結果である中間データtmp1を逆量子化正規化部２４３に供給する。
【０４２０】
逆量子化正規化部２４３は、その中間データtmp1と逆量子化シフト量invQShift'とを入力とし、正規化に関する処理を行う。例えば、逆量子化正規化部２４３は、中間データtmp1をローカルレベルの逆量子化シフト量invQShift'で右ビットシフトして正規化する。つまり、逆量子化正規化部２４３は、中間データtmp1の有効桁数を制御する。逆量子化正規化部２４３は、その正規化により得られた中間データtmp2をクリップ部２４４に供給する。
【０４２１】
クリップ部２４４は、その中間データtmp2と、変換係数の最小値coefMinおよび最大値coefMaxとを入力とし、クリップ処理に関する処理を行う。例えば、クリップ部２４４は、中間データtmp2の値を、変換係数の最小値coefMinおよび最大値coefMaxの範囲内にクリップする。クリップ部２４４は、中間データtmp2がクリップされて得られた変換係数coef'を逆直交変換部２１４に供給する。なお、クリップ部２４４は、省略してもよい。
【０４２２】
＜逆直交変換部の詳細＞
図３５は、図３２の逆直交変換部２１４の主な構成例を示すブロック図である。図３５に示されるように、逆直交変換部２１４は、逆セカンダリ変換部２５１および逆プライマリ変換部２５２を有する。
【０４２３】
逆セカンダリ変換部２５１は、例えば逆直交変換等の所定の変換処理である逆セカンダリ変換に関する処理を行う。例えば逆セカンダリ変換部２５１は、変換係数coef'および変換情報Tinfo（図示せず）等を入力とし、その変換係数coef'に対して逆セカンダリ変換を行い、得られた係数データcoefP'を逆プライマリ変換部２５２に供給する。
【０４２４】
逆プライマリ変換部２５２は、例えば逆直交変換等の所定の変換処理である逆プライマリ変換に関する処理を行う。例えば、逆プライマリ変換部２５２は、係数データcoefP'や変換情報Tinfo等を入力とし、その係数データcoefP'に対して逆プライマリ変換を行い、得られた予測残差resi'を演算部２１５に供給する。また、逆プライマリ変換部２５２は、その逆プライマリ変換の際、変換タイプ識別子trTypeIdxHおよびtrTypeIdxV、変換ブロックの水平方向のサイズlog2TrWidth、変換ブロックの垂直方向のサイズlog2TrHeight、シーケンスビット深度channelBitDepth、並びに拡張ビット精度dBD等の情報を入力とし、それらの情報に基づいて、シーケンス内における時間方向または空間方向のビット深度の変化に応じた係数の有効桁数の制御（演算精度の制御）を行う。
【０４２５】
図３５に示されるように、逆プライマリ変換部２５２は、逆プライマリ垂直変換部２６１および逆プライマリ水平変換部２６２を有する。
【０４２６】
逆プライマリ垂直変換部２６１は、垂直方向の逆１次元直交変換である逆プライマリ垂直変換に関する処理を行う。例えば、逆プライマリ垂直変換部２６１は、係数データcoefP'や変換情報Tinfo等を入力とし、その係数データcoefP'に対して逆プライマリ垂直変換を行い、得られた係数データcoefIV（= tmp）を逆プライマリ水平変換部２６２に供給する。
【０４２７】
その際、逆プライマリ垂直変換部２６１は、逆プライマリ垂直変換の変換タイプ識別子trTypeIdxV、変換ブロックの水平方向のサイズlog2TrWidth、および変換ブロックの垂直方向のサイズlog2TrHeight等の情報を入力とし、それらの情報に基づいて、シーケンス毎の係数の有効桁数の制御（演算精度の制御）を行う。
【０４２８】
逆プライマリ水平変換部２６２は、水平方向の逆１次元直交変換である逆プライマリ水平変換に関する処理を行う。例えば、逆プライマリ水平変換部２６２は、係数データcoefIV（= tmp）や変換情報Tinfo等を入力とし、その係数データcoefIVに対して逆プライマリ水平変換を行い、得られた予測残差resi'を演算部２１５に供給する。
【０４２９】
その際、逆プライマリ水平変換部２６２は、逆プライマリ水平変換の変換タイプ識別子trTypeIdxH、変換ブロックの水平方向のサイズlog2TrWidth、変換ブロックの垂直方向のサイズlog2TrHeight、シーケンスビット深度channelBitDepth、および拡張ビット精度dBD等の情報を入力とし、それらの情報に基づいて、シーケンス内における時間方向または空間方向のビット深度の変化に応じた係数の有効桁数の制御（演算精度の制御）を行う。
【０４３０】
＜逆プライマリ垂直変換部＞
図３６は、逆プライマリ垂直変換部２６１の主な構成例を示すブロック図である。図３６に示されるように、逆プライマリ垂直変換部２６１は、パラメータ導出部２７１、行列演算部２７２、正規化部２７３、およびクリップ部２７４を有する。
【０４３１】
パラメータ導出部２７１は、変換タイプ識別子trTypeIdxV、変換ブロックの水平方向のサイズlog2TrWidth、および変換ブロックの垂直方向のサイズlog2TrHeight等の情報を入力とし、それらの情報に基づいて、逆プライマリ垂直変換処理に用いられるパラメータを導出する。
【０４３２】
例えば、パラメータ導出部２７１は、変換タイプ識別子trTypeIdxVや、変換ブロックの水平方向のサイズlog2TrHeight等の情報に基づいて、変換行列TVを導出する。
【０４３３】
また、例えば、パラメータ導出部２７１は、変換ブロックの垂直方向のサイズlog2TrHeightや変換行列TV等の情報に基づいて、シーケンス毎に設定される逆プライマリ垂直変換における有効桁数のシフト量である逆プライマリ垂直変換シフト量invShift1を導出する。なお、逆プライマリ垂直変換シフト量invShift1が導出済みの場合、この処理は省略することができる。
【０４３４】
また、例えば、パラメータ導出部２７１は、変換係数の最小値coefMinと最大値coefMaxとを導出する。
【０４３５】
パラメータ導出部２７１は、導出したパラメータを各処理部に供給する。例えば、パラメータ導出部２７１は、導出した変換行列TVを行列演算部２７２に供給する。また、例えば、パラメータ導出部２７１は、導出した逆プライマリ垂直変換シフト量invShift1を正規化部２７３に供給する。さらに、例えば、パラメータ導出部２７１は、導出した変換係数の最小値coefMinおよび最大値coefMaxをクリップ部２７４に供給する。
【０４３６】
行列演算部２７２は、係数データcoefP'および変換行列TVを入力とし、行列演算に関する処理を行う。例えば、行列演算部２７２は、係数データcoefP'に対して、変換行列TVを用いて垂直方向の逆１次元直交変換を行う。行列演算部２７２は、その演算結果である中間データtmp3を正規化部２７３に供給する。
【０４３７】
正規化部２７３は、その中間データtmp3と逆プライマリ垂直変換シフト量invShift1とを入力とし、正規化に関する処理を行う。例えば、正規化部２７３は、中間データtmp3を、シーケンスレベルの逆プライマリ垂直変換シフト量invShift1で右ビットシフトして正規化する。つまり、正規化部２７３は、中間データtmp3の有効桁数を制御する。正規化部２７３は、その正規化により得られた中間データtmp4をクリップ部２７４に供給する。
【０４３８】
クリップ部２７４は、その中間データtmp4と、変換係数の最小値coefMinおよび最大値coefMaxとを入力とし、クリップ処理に関する処理を行う。例えば、クリップ部２７４は、中間データtmp4の値を、変換係数の最小値coefMinおよび最大値coefMaxの範囲内にクリップする。クリップ部２７４は、中間データtmp4がクリップされて得られた係数データcoefIVを逆プライマリ水平変換部２６２に供給する。なお、クリップ部２７４は、省略してもよい。
【０４３９】
＜逆プライマリ水平変換部＞
図３７は、逆プライマリ水平変換部２６２の主な構成例を示すブロック図である。図３７に示されるように、逆プライマリ水平変換部２６２は、パラメータ導出部２８１、行列演算部２８２、正規化部２８３、およびクリップ部２８４を有する。
【０４４０】
パラメータ導出部２８１は、変換タイプ識別子trTypeIdxH、変換ブロックの水平方向のサイズlog2TrWidth、および変換ブロックの垂直方向のサイズlog2TrHeight、シーケンスビット深度channelBitDepth、並びに拡張ビット精度dBD等の情報を入力とし、それらの情報に基づいて、逆プライマリ水平変換処理に用いられるパラメータを導出する。
【０４４１】
例えば、パラメータ導出部２８１は、変換タイプ識別子trTypeIdxHや、変換ブロックの水平方向のサイズlog2TrWidth等の情報に基づいて、変換行列THを導出する。
【０４４２】
また、例えば、パラメータ導出部２８１は、変換ブロックの水平方向のサイズlog2TrWidth、シーケンスビット深度channelBitDepth、変換行列TH、並びに拡張ビット精度dBD等の情報に基づいて、シーケンス毎に設定される逆プライマリ水平変換における有効桁数のシフト量である逆プライマリ水平変換シフト量invShift2を導出する。なお、逆プライマリ水平変換シフト量invShift2が導出済みの場合、この処理は省略することができる。
【０４４３】
さらに、例えば、パラメータ導出部２８１は、その導出したシーケンスレベルの逆プライマリ水平変換シフト量invShift2および拡張ビット精度dBDに基づいて、ローカルレベルの逆プライマリ水平変換シフト量invShift2'を導出する。つまり、パラメータ導出部２８１は、ローカルレベル毎に、拡張ビット精度dBDを用いて逆プライマリ水平変換シフト量invShift2を補正する。
【０４４４】
また、例えば、パラメータ導出部２８１は、残差データの最小値coefMinと最大値coefMaxとを導出する。
【０４４５】
パラメータ導出部２８１は、導出したパラメータを各処理部に供給する。例えば、パラメータ導出部２８１は、導出した変換行列THを行列演算部２８２に供給する。また、例えば、パラメータ導出部２８１は、導出した逆プライマリ水平変換シフト量invShift2'を正規化部２８３に供給する。さらに、例えば、パラメータ導出部２８１は、導出した残差データの最小値coefMinおよび最大値coefMaxをクリップ部２８４に供給する。
【０４４６】
行列演算部２８２は、係数データcoefIVおよび変換行列THを入力とし、行列演算に関する処理を行う。例えば、行列演算部２８２は、係数データcoefIVに対して、変換行列THを用いて水平方向の逆１次元直交変換を行う。行列演算部２８２は、その演算結果である中間データtmp5を正規化部２８３に供給する。
【０４４７】
正規化部２８３は、その中間データtmp5と逆プライマリ水平変換シフト量invShift2'とを入力とし、正規化に関する処理を行う。例えば、正規化部２８３は、中間データtmp5をローカルレベルの逆プライマリ水平変換シフト量invShift2'で右ビットシフトして正規化する。つまり、正規化部２８３は、中間データtmp5の有効桁数を制御する。正規化部２８３は、その正規化により得られた中間データtmp6をクリップ部２８４に供給する。
【０４４８】
クリップ部２８４は、その中間データtmp6と、残差データの最小値coefMinおよび最大値coefMaxとを入力とし、クリップ処理に関する処理を行う。例えば、クリップ部２８４は、中間データtmp6の値を、残差データの最小値coefMinおよび最大値coefMaxの範囲内にクリップする。クリップ部２８４は、中間データtmp6がクリップされて得られた予測残差resi'を演算部２１５に供給する。なお、クリップ部２８４は、省略してもよい。
【０４４９】
＜画像復号処理の流れ＞
次に、以上のような画像復号装置２００により実行される各処理の流れについて説明する。最初に、図３８のフローチャートを参照して、画像復号処理の流れの例を説明する。
【０４５０】
画像復号処理が開始されると、蓄積バッファ２１１は、ステップＳ３０１において、画像復号装置２００の外部から供給される符号化データ（ビットストリーム）を取得して保持する（蓄積する）。
【０４５１】
ステップＳ３０２において、復号部２１２は、その符号化データ（ビットストリーム）を復号し、量子化係数qcoefを得る。また、復号部２１２は、この復号により、符号化データ（ビットストリーム）から各種符号化パラメータをパースする（解析して取得する）。
【０４５２】
ステップＳ３０３において、逆量子化部２１３は、ステップＳ３０２の処理により得られた量子化係数qcoefに対して、符号化側で行われた量子化の逆処理である逆量子化を行い、変換係数coef'を得る。
【０４５３】
ステップＳ３０４において、逆直交変換部２１４は、ステップＳ３０３の処理により得られた変換係数coef'に対して、符号化側で行われた直交変換処理の逆処理である逆直交変換処理を行い、予測残差resi'を得る。
【０４５４】
ステップＳ３０５において、予測部２１９は、ステップＳ３０２においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ２１８に記憶されている参照画像を参照する等して、予測画像Pを生成する。
【０４５５】
ステップＳ３０６において、演算部２１５は、ステップＳ３０４の処理により得られた予測残差resi'と、ステップＳ３０５の処理により得られた予測画像Pとを加算し、局所復号画像Rlocalを導出する。
【０４５６】
ステップＳ３０７において、インループフィルタ部２１６は、ステップＳ３０６の処理により得られた局所復号画像Rlocalに対して、インループフィルタ処理を行う。
【０４５７】
ステップＳ３０８において、並べ替えバッファ２１７は、ステップＳ３０７の処理により得られたフィルタ処理された局所復号画像Rlocalを用いて復号画像Rを導出し、その復号画像R群の順序を復号順から再生順に並べ替える。再生順に並べ替えられた復号画像R群は、動画像として画像復号装置２００の外部に出力される。
【０４５８】
また、ステップＳ３０９において、フレームメモリ２１８は、ステップＳ３０６の処理により得られた局所復号画像Rlocal、および、ステップＳ３０７の処理により得られたフィルタ処理後の局所復号画像Rlocalの内、少なくとも一方を記憶する。
【０４５９】
ステップＳ３０９の処理が終了すると、画像復号処理が終了する。
【０４６０】
以上のような流れの画像復号処理において、ステップＳ３０２、ステップＳ３０３、およびステップＳ３０４の処理として、上述した本技術を適用した処理が行われる。したがって、この画像復号処理を実行することにより、符号化効率の低減を抑制することができる。
【０４６１】
＜dBD導出処理の流れ＞
図３８のステップＳ３０２においては、各種符号化パラメータが導出される。例えば、拡張ビット精度dBD等が導出される。図３９のフローチャートを参照して、この拡張ビット精度dBD等のパラメータを導出するdBD導出処理の流れの例を説明する。
【０４６２】
dBD導出処理が開始されると、復号部２１２のシーケンスビット深度導出部２３１は、ステップＳ３２１において、コンポーネントXのシーケンスビット深度channelBitDepthを導出する。
【０４６３】
例えば、シーケンスビット深度導出部２３１は、ビットストリームのシーケンスパラメータセットSPSに含まれる各コンポーネントのシーケンスビット深度channelBitDepthに関わるシンタックスの値（シーケンスビット深度に関する情報）を復号して抽出する。また、シーケンスビット深度導出部２３１は、その抽出したシンタックスの値から、シーケンスビット深度channelBtiDepthを導出する。例えば、channelBitDepthに関わるシンタックスとして、以下のようなものがある。
【０４６４】
bit_depth_luma_minus8：輝度のシーケンスビット深度を示すシンタックス
bit_depth_chroma_minus8：色差のシーケンスビット深度を示すシンタックス
【０４６５】
例えば、輝度の場合、シーケンスビット深度導出部２３１は、以下の式（４９）のようにシーケンスビット深度channelBtiDepthを導出する。
【０４６６】
channelBitDepth = 8 + bit_depth_luma_minus8
・・・（４９）
【０４６７】
また、例えば色差の場合、シーケンスビット深度導出部２３１は、以下の式（５０）のようにシーケンスビット深度channelBitDepthを導出する。
【０４６８】
channelBitDepth = 8 + bit_depth_chroma_minus8
・・・（５０）
【０４６９】
ステップＳ３２２において、スライスビット深度導出部２３２は、コンポーネントXのスライスビット深度sliceBitDepthを導出する。
【０４７０】
例えば、スライスビット深度導出部２３２は、ビットストリームのスライスヘッダSHに含まれる各コンポーネントのスライスビット深度に関わるシンタックスの値（スライスビット深度に関する情報）を復号し、抽出する。また、スライスビット深度導出部２３２は、その抽出したシンタックスの値から、スライスビット深度sliceBitDepthを導出する。例えば、スライスビット深度sliceBitDepthに関わるシンタックスとして、以下のようなものがある。
【０４７１】
slice_min_val：コンポーネントX(X=Y/Cb/Cr)のスライス内における最小画素値
slice_max_val：コンポーネントX(X=Y/Cb/Cr)のスライス内における最大画素値
【０４７２】
スライスビット深度導出部２３２は、例えば、以下の式（５１）のように、これらの値から、スライスビット深度sliceBitDepthを導出する。
【０４７３】
sliceBitDepth = ceil( log2 (slice_max_val - slice_min_val) )
・・・（５１）
【０４７４】
なお、スライス内の最小画素値slice_min_valおよび最大画素値 slice_max_valの代わりに、直接スライスビット深度sliceBitDepthをスライスヘッダより復号してもよいし、シーケンスビット深度channelBitDepthとスライスビット深度sliceBitDepthの差分値slice_bit_depth_diffXを復号するようにしてもよい。
【０４７５】
slice_bit_depth_diffX：コンポーネントXのシーケンスビット深度channelBitDepthに対するスライスビット深度の差分値
【０４７６】
slice_bit_depth_diffXからスライスビット深度sliceBitDepthを導出する場合、スライスビット深度sliceBitDepthは、例えば以下の式（５２）のように導出される。
【０４７７】
sliceBitDepth = channelBitDepth - slice_bit_depth_diffX
・・・（５２）
【０４７８】
ステップＳ３２３において、deltaX復号部２３３は、拡張ビット精度制御グループSG毎にコンポーネントXの拡張ビット精度dBDの差分パラメータdeltaXを復号する。
【０４７９】
例えば、deltaX復号部２３３は、拡張ビット精度制御グループSG（Scaling Group）毎にコンポーネントXの係数の有効桁数を何ビット拡張するかを示す拡張ビット精度dBDの差分パラメータdeltaXを符号化データから復号する。
【０４８０】
ステップＳ３２４において、dBD導出部２３４は、拡張ビット精度制御グループSG毎に、コンポーネントXの拡張ビット精度dBDを導出する。
【０４８１】
例えば、dBD導出部２３４は、拡張ビット精度制御グループSG毎に、以下の式（５３）のように、コンポーネントXの拡張ビット精度dBDの差分パラメータdeltaX、シーケンスビット深度channelBitDepth、およびスライスビット深度sliceBitDepthから拡張ビット精度dBDを導出する。
【０４８２】
dBD = channelBitDepth - sliceBitDepth + deltaX
・・・（５３）
【０４８３】
なお、channelBitDepth≧sliceBitDepth ≧ deltaXの関係にある。拡張ビット精度dBDをシーケンスビット深度、スライスビット深度を介して表すことで、差分パラメータdeltaXの値を小さくすることができる。すなわち、差分パラメータdeltaXの復号・符号化に要する符号量を小さくすることができる。
【０４８４】
ステップＳ３２４の処理が終了すると、dBD導出処理が終了し、処理は図３８に戻る。
【０４８５】
＜拡張ビット精度制御グループSGの制御＞
なお、拡張ビット精度制御グループSGは、CTBのサイズCtbLog2Sizeに対する分割深度の差分値diff_cu_delta_depthによって制御するようにしてもよい。この場合、SGのサイズLog2SGSizeは、以下の式（５４）のように求まる。
【０４８６】
Log2SGSize = CtbLog2Size - diff_cu_delta_depth
・・・（５４）
【０４８７】
例えば、図２４において点線枠で示されるCTBが128x128のサイズの場合(CtbLog2Size = 7)であって、図２４において太線枠で示されるSGのサイズを32x32とする場合(Log2SGSize = 5)、差分値diff_cu_delta_depthの値は、以下の式（５５）のように２となる。
【０４８８】
diff_cu_delta_depth = CtbLog2Size - Log2SGSize = 7 - 5 = 2
・・・（５５）
【０４８９】
なお、差分値diff_cu_delta_depthは、所定のパラメータセット（ヘッダ情報）単位（例えば、シーケンスパラメータセット（SPS）、ピクチャパラメータセット（PPS（Picture Parameter Set））、またはスライスヘッダ（SH（Slice Header））等）で通知されるものとする。こうすることで、差分値diff_cu_delta_depthで拡張ビット精度制御グループSGの粒度を制御することができるようになる。
【０４９０】
例えば、信号のレンジがある程度大きい領域において一定である場合は、この差分値diff_cu_delta_depthの値を小さくすることで、差分パラメータdeltaXを通知する単位を大きくすることができ、オーバーヘッドを削減することができる。
【０４９１】
逆に、信号のレンジが小さい領域で変化する場合は、この差分値diff_cu_delta_depthの値を大きくすることで、差分パラメータdeltaXを通知する単位を小さくすることができ、より細かい粒度で、逆量子化・逆直交変換時の変換係数の有効桁数を拡張することができる。
【０４９２】
＜拡張ビット精度dBDの定義の他の例１＞
なお、以上においては、コンポーネントXの拡張ビット精度dBDを、シーケンスビット深度channelBitDepth、スライスビット深度sliceBitDepth、および拡張ビット精度dBDの差分パラメータdeltaXから求めるように説明したが、拡張ビット精度dBDの定義は、任意であり、この例に限定されない。
【０４９３】
例えば、差分パラメータdeltaXを、シーケンスビット深度channelBitDepthと拡張ビット精度dBDとの差分値としてもよい。つまり、拡張ビット精度dBDを、以下の式（５６）に示されるように、シーケンスビット深度channelBitDepthと差分パラメータdeltaXの差分値としてもよい。
【０４９４】
dBD = channelBitDepth - deltaX
・・・（５６）
（すなわち、deltaX = channelBitDepth - dBD）
【０４９５】
このようにすることにより、拡張ビット精度dBDを、上述した例よりも容易に導出することができる。
【０４９６】
＜拡張ビット精度dBDの定義の他の例２＞
また、以下の式（５７）のように、拡張ビット精度dBDを、差分パラメータdeltaXと等価としてもよい。
【０４９７】
dBD = deltaX
・・・（５７）
【０４９８】
この場合、拡張ビット精度dBDを、差分パラメータdeltaX以外の他のパラメータに依存しないで導出することができる。
【０４９９】
＜拡張ビット精度dBDの定義の他の例３＞
また、例えば、以下の式（５８）のように、拡張ビット精度dBDを、処理対象の拡張ビット精度制御グループSG（カレント拡張ビット精度制御グループSGcurと称する）の拡張ビット精度dBDの予測値dBDpredと、差分パラメータdeltaXとの和としてもよい。
【０５００】
dBD = dBDpred + deltaX
・・・（５８）
（つまり、deltaX = dBD - dBDpred）
【０５０１】
例えば、この予測値dBDpredは、図２５を参照して上述したようにカレント拡張ビット精度制御グループSGcurに隣接する符号化済みの拡張ビット精度制御グループneighborSGsのdBDを参照して導出される。また、この場合、拡張ビット精度dBDの予測値dBDpredが、隣接拡張ビット精度制御グループSGAの拡張ビット精度dBDAおよび隣接拡張ビット精度制御グループSGBの拡張ビット精度dBDBに基づいて設定されるようにしてもよい。さらに、例えば、拡張ビット精度dBDの予測値dBDpredが、これらの隣接拡張ビット精度制御グループが参照可能であるか否かに応じた方法（例えば、上述の式（１８）乃至（２１））で導出されるようにしてもよい。
【０５０２】
このように、隣接する符号化済ビット精度制御グループneigborSGsの拡張ビット精度dBDを使って、カレント拡張ビット精度制御グループSGcurのdBDを予測することで、差分パラメータdeltaXの値を低減することができる。すなわち、deltaXの復号や符号化に要する符号量の増大を抑制することができる。
【０５０３】
＜逆量子化処理の流れ＞
図３８のステップＳ３０３において実行される逆量子化処理の流れの例を、図４０のフローチャートを参照して説明する。
【０５０４】
逆量子化処理が開始されると、逆量子化部２１３のパラメータ導出部２４１は、ステップＳ３４１において、逆量子化スケールパラメータinvQScaleを導出する。例えば、変換ブロックの縦幅と横幅が互いに同じサイズの場合（すなわち、変換ブロックが正方形の場合）（log2TrSize%2==0）、パラメータ導出部２４１は、以下の式（５９）のように、逆量子化スケールパラメータinvQScaleを導出する。
【０５０５】
invQScale = levelScale[qp_rem] * scaleMat * (1<< qp_per)
・・・（５９）
【０５０６】
また、変換ブロックの縦幅と横幅が異なる場合（log2TrSize%2==1）、パラメータ導出部２４１は、以下の式（６０）のように、逆量子化スケールパラメータinvQScaleを導出する。
【０５０７】
invQScale = levelScale[qp_rem] * scaleMat * WHScale * (1<<qp_per)
・・・（６０）
【０５０８】
式（５９）および式（６０）において、qp_remは、qp % 6の値（qpを6で除算した剰余）である。また、qp_perは、qp // 6の値（qpを6で除算した商）である。また、WHScaleは、変換ブロックのサイズが正方形でない場合の補正スケーリングパラメータであり、所定値（例えば、181）が設定される。また、levelScale[]は、qp_rem (=qp % 6)毎のスケーリングパラメータを格納した配列であり、levelScale = [ 40, 45, 51, 57, 64, 72 ]の値が格納されている。また、scalingMatは、量子化マトリックスであり、変換係数の位置毎に値が設定される。
【０５０９】
ステップＳ３４２において、パラメータ導出部２４１は、逆量子化シフト量invQShift'を導出する。例えば、変換ブロックの縦幅と横幅が同じサイズの場合（すなわち、変換ブロックが正方形の場合）（log2TrSize%2==0）パラメータ導出部２４１は、以下の式（６１）のように、シーケンス毎の逆量子化シフト量invQShiftを導出する。
【０５１０】
invQShift = channelBitDepth + log2TrSize + 10 - log2TransformRange
・・・（６１）
【０５１１】
また、変換ブロックの縦幅と横幅が異なる場合（log2TrSize%2==1）、パラメータ導出部２４１は、以下の式（６２）のように、シーケンス毎の逆量子化シフト量invQShiftを導出する。
【０５１２】
invQShift = channelBitDepth + log2TrSize + 10 - log2TransformRange + invWHShift
・・・（６２）
【０５１３】
式（６１）および式（６２）において、log2TrSizeは、変換ブロックのサイズの対数値を示す。log2TransformRangeは、変換係数のレンジに関するパラメータであり、所定値（例えば、15）が設定される。invWHShiftは、変換ブロックのサイズが正方形でないときの補正シフト量であり、所定値（例えば、8）が設定される。拡張ビット精度dBDは、変換係数の有効桁数を拡張するためのシフト量であり、例えば、dBD=1であれば、dBD=0に対して1/2倍精度にすることを表す。
【０５１４】
そして、パラメータ導出部２４１は、以下の式（６３）のように、導出したシーケンス毎の逆量子化シフト量invQShiftを、拡張ビット精度dBDを用いて補正する。つまり、パラメータ導出部２４１は、シーケンス毎の逆量子化シフト量invQShiftと拡張ビット精度dBDとを用いて、ローカルレベルの逆量子化シフト量invQShift'を導出する。
【０５１５】
invQShift’ = invQShift - dBD
・・・（６３）
【０５１６】
式（６３）により、逆量子化シフト量invQShiftの大きさを、拡張ビット精度dBDだけ減らすことで、逆量子化後の変換係数coef’の有効桁数を拡張ビット精度dBDだけあげることができる。
【０５１７】
また、ステップＳ３４２において、パラメータ導出部２４１は、変換係数の最小値coefMinおよび最大値coefMaxを、変換係数のレンジに関するパラメータlog2TransformRangeを用いて、上述した式（２４）および式（２５）のように導出する。
【０５１８】
ステップＳ３４３において、逆量子化スケーリング部２４２は、例えば以下の式（６４）のように、量子化係数qcoefを、ステップＳ３４１において導出した逆量子化スケールパラメータinvQScaleでスケーリングし、中間データtmp1を得る。
【０５１９】
tmp1 = qcoef * invQScale
・・・（６４）
【０５２０】
ステップＳ３４４において、逆量子化正規化部２４３は、中間データtmp1の各係数を逆量子化シフト量invQShift'で正規化する。
【０５２１】
例えば、逆量子化正規化部２４３は、以下の式（６５）のように、ステップＳ３４３において導出された中間データtmp1を、ステップＳ３４２において導出された逆量子化シフト量invQShift'で右ビットシフトして正規化し、中間データtmp2を得る。
【０５２２】
tmp2 = ( tmp1 + offsetInvQShift ) >> invQShift’
・・・（６５）
【０５２３】
ここで、offsetInvQShiftは、正規化時のラウンディングオフセットであり、例えば以下の式（６６）のように導出される。
【０５２４】
offsetInvQShift = 1 << (invQShift’ - 1)
・・・（６６）
【０５２５】
なお、式（６５）の代わりに、以下の式（６７）によって正規するようにしてもよい。
【０５２６】
tmp2 = sign(tmp1) * ( abs(tmp1) + offsetInvQShift ) >> invQShift’
・・・（６７）
【０５２７】
ステップＳ３４５において、クリップ部２４４は、例えば以下の式（６８）のように、ステップＳ３４４の処理により得られた中間データtmp2の値を、ステップＳ３４２において導出した係数の最小値coefMin乃至係数の最大値coefMaxの範囲になるようにクリップし、クリップ後の変換係数coef'を得る。
【０５２８】
coef’ = clip3(coefMin, coefMax, coef’)
・・・（６８）
【０５２９】
ステップＳ３４５の処理が終了すると、逆量子化処理が終了し、処理は、図３８に戻る。
【０５３０】
＜逆直交変換処理の流れ＞
図３８のステップＳ３０４の処理において実行される逆直交変換処理の流れの例を、図４１のフローチャートを参照して説明する。
【０５３１】
逆直交変換処理が開始されると、逆直交変換部２１４の逆セカンダリ変換部２５１は、ステップＳ３６１において、逆セカンダリ変換処理を行う。
【０５３２】
ステップＳ３６２において、逆プライマリ垂直変換部２６１は、逆プライマリ垂直変換処理を行う。
【０５３３】
ステップＳ３６３において、逆プライマリ水平変換部２６２は、逆プライマリ水平変換処理を行う。
【０５３４】
ステップＳ３６３の処理が終了すると、逆直交変換処理が終了し、処理は図３８に戻る。
【０５３５】
以上のような逆直交変換処理において、ステップＳ３６２やステップＳ３６３の処理として、上述した本技術を適用した処理が行われる。したがって、この逆直交変換処理を実行することにより、符号化効率の低減を抑制することができる。
【０５３６】
なお、この逆直交変換処理の各ステップ（ステップＳ３６１乃至ステップＳ３６３）の処理は、それぞれ、スキップ（省略）することができる。
【０５３７】
＜逆プライマリ垂直変換処理の流れ＞
図４１のステップＳ３６２において実行される逆プライマリ垂直変換処理の流れの例を、図４２のフローチャートを参照して説明する。
【０５３８】
逆プライマリ垂直変換処理が開始されると、逆プライマリ垂直変換部２６１のパラメータ導出部２７１は、ステップＳ３８１において、変換行列TVを導出する。例えば、パラメータ導出部２７１は、変換タイプ識別子trTypeIdxVおよび変換ブロックのサイズに関する情報（log2TrHeight）に対応する（1<<log2TrHeight）行（1<<log2TrHeight）列のベース変換行列Tbaseを不図示のルックアップテーブルLUTより読み出し、変換行列TVへ設定する（つまり、TV = Tbase）。
【０５３９】
ステップＳ３８２において、パラメータ導出部２７１は、逆プライマリ垂直変換シフト量invShift1を導出する。例えば、パラメータ導出部２７１は、シーケンス毎の逆プライマリ垂直変換シフト量invShift1を、以下の式（６９）のように、変換行列TVの整数近似精度を表すパラメータtrMatShiftに基づいて導出する。なお、パラメータtrMatShiftは、例えば、8の値をとる。その場合、変換行列TVの整数近似精度は、8bitであることを意味する。
【０５４０】
fwdShift1 = trMatShift + 1
・・・（６９）
【０５４１】
また、ステップＳ３８２において、パラメータ導出部２７１は、変換係数の最小値coefMinおよび最大値coefMaxを、変換係数のレンジに関するパラメータlog2TransformRangeを用いて、上述の式（２４）および式（２５）のように導出する。
【０５４２】
ステップＳ３８３において、行列演算部２７２は、ステップＳ３８１において導出された変換行列TVを用いて、以下の式（７０）のように、係数データcoefP'の垂直方向の１次元直交変換を行い、中間データtmp3を得る。なお、式（７０）において、×は行列積を表す演算子である。
【０５４３】
tmp3 = TVT×coefP'
・・・（７０）
【０５４４】
ステップＳ３８４において、正規化部２７３は、以下の式（７１）に示されるように、中間データtmp3（変換行列TVTと係数データcoefP'との行列積）を、ステップＳ３８２において導出された逆プライマリ垂直変換シフト量invShift1で右ビットシフトして正規化をし、中間データtmp4を得る。
【０５４５】
tmp4 = ( tmp3 + offsetInvShift1 ) >> invShift1
・・・（７１）
【０５４６】
なお、offsetInvShift1は、正規化時のラウンディングオフセットであり、例えば、以下の式（７２）のように導出される。
【０５４７】
offsetInvShift1 = 1 << ( invShift1 - 1 )
・・・（７２）
【０５４８】
なお、上述の式（７１）の代わりに、以下の式（７３）によって正規するようにしてもよい。
【０５４９】
tmp4 = sign(tmp3) * ( abs(tmp3) + offsetInvShift1 ) >> invShift1
・・・（７３）
【０５５０】
ステップＳ３８５において、クリップ部２７４は、以下の式（７４）に示されるように、中間データtmp4の値を、ステップＳ３８２において導出した係数の最小値coefMin乃至係数の最大値coefMaxの範囲になるようにクリップし、クリップ後の係数データcoefIV（=tmp）を導出する。
【０５５１】
coefIV = clip3(coefMin, coefMax, tmp4)
・・・（７４）
【０５５２】
ステップＳ３８５の処理が終了すると、逆プライマリ垂直変換処理が終了し、処理は図４１に戻る。
【０５５３】
以上のように、逆プライマリ垂直変換部２６１は、拡張ビット精度dBDだけ有効桁位数をあげた変換係数coef'に垂直方向の逆１次元直交変換をして、逆プライマリ垂直変換後の係数データcoefIVを得ることができる。つまり、演算精度をあげて、逆プライマリ垂直変換を行うことができる。
【０５５４】
なお、ステップＳ３８５の処理は省略するようにしてもよい。
【０５５５】
＜逆プライマリ水平変換処理の流れ＞
図４１のステップＳ３６３において実行される逆プライマリ水平変換処理の流れの例を、図４３のフローチャートを参照して説明する。
【０５５６】
逆プライマリ水平変換処理が開始されると、逆プライマリ水平変換部２６２のパラメータ導出部２８１は、ステップＳ４０１において、変換行列THを導出する。例えば、パラメータ導出部２８１は、変換タイプ識別子trTypeIdxHおよび変換ブロックのサイズに関する情報（log2TrWidth）に対応する（1<<log2TrWidth）行（1<<log2TrWidth）列のベース変換行列Tbaseを不図示のルックアップテーブルLUTより読み出し、変換行列THへ設定する（つまり、TH = Tbase）。
【０５５７】
ステップＳ４０２において、パラメータ導出部２８１は、逆プライマリ水平変換シフト量invShift2'を導出する。例えば、パラメータ導出部２８１は、シーケンス毎の逆プライマリ水平変換シフト量invShift2を、以下の式（７５）のように、変換行列THの整数近似精度を表すパラメータtrMatShift、変換係数のレンジに関するパラメータlog2TransformRange、およびシーケンスビット深度channelBitDepthに基づいて導出する。なお、パラメータtrMatShiftは、例えば、8の値をとる。
【０５５８】
invShift2 = trMatShift + log2TransformDynamicRange - 1 - channelBitDepth
・・・（７５）
【０５５９】
そして、パラメータ導出部２８１は、導出したシーケンス毎の逆プライマリ水平変換シフト量invShift2を、拡張ビット精度dBDを用いて以下の式（７６）のように補正する。つまり、パラメータ導出部２８１は、シーケンス毎の逆プライマリ水平変換シフト量invShift2および拡張ビット精度dBDを用いてローカルレベルの（拡張ビット精度制御グループSG毎の）逆プライマリ水平変換シフト量invShift2'を導出する。
【０５６０】
invShift2' = invShift2 + dBD
・・・（７６）
【０５６１】
この式（７６）によって、逆プライマリ水平変換シフト量invShift2の大きさを拡張ビット精度dBD増やすことで、逆プライマリ水平変換に伴う正規化処理と、有効桁数をdBDだけ拡張した変換係数を元の有効桁数の精度へ戻す正規化処理を同時に行うことができる。
【０５６２】
また、ステップＳ４０２において、パラメータ導出部２８１は、残差データの最小値coefMinおよび最大値coefMaxを、変換係数のレンジに関するパラメータlog2TransformRangeを用いて、上述の式（２４）および式（２５）のように導出する。
【０５６３】
ステップＳ４０３において、行列演算部２８２は、ステップＳ４０１において導出された変換行列THを用いて、以下の式（７７）のように係数データcoefIVに水平方向の逆１次元直交変換を行い、中間データtmp5を得る。なお、式（７７）において、×は行列積を表す演算子である。
【０５６４】
tmp5 = coefIV×TH
・・・（７７）
【０５６５】
ステップＳ４０４において、正規化部２８３は、以下の式（７８）に示されるように、中間データtmp5（係数データcoefIVと変換行列THとの行列積）を、ステップＳ４０２において導出されたローカルレベルの逆プライマリ水平変換シフト量invShift2'で右ビットシフトして正規化をし、中間データtmp6を得る。
【０５６６】
tmp6 = ( tmp5 + offsetInvShift2 ) >> invShift2'
・・・（７８）
【０５６７】
なお、offsetInvShift2は、正規化時のラウンディングオフセットであり、例えば、以下の式（７９）のように導出される。
【０５６８】
offsetInvShift2 = 1 << ( invShift2' - 1 )
・・・（７９）
【０５６９】
なお、上述の式（７８）の代わりに、以下の式（８０）によって正規するようにしてもよい。
【０５７０】
tmp6 = sign(tmp5) * ( abs(tmp5) + offsetInvShift2 ) >> invShift2'
・・・（８０）
【０５７１】
ステップＳ４０５において、クリップ部２８４は、以下の式（８１）に示されるように、中間データtmp6の値を、ステップＳ４０２において導出した予測残差の最小値coefMin乃至係数の最大値coefMaxの範囲になるようにクリップし、クリップ後の予測残差resi'を導出する。
【０５７２】
resi' = clip3(coefMin, coefMax, tmp6)
・・・（８１）
【０５７３】
ステップＳ４０５の処理が終了すると、逆プライマリ水平変換処理が終了し、処理は図４１に戻る。
【０５７４】
以上のように、逆プライマリ水平変換部２６２は、逆プライマリ水平変換シフト量invShift2の大きさを拡張ビット精度dBDだけ減らすことで、逆プライマリ水平変換後のresi'の有効桁数をdBDだけあげることができる。したがって、後段の変換・量子化の処理において、演算精度をあげて、変換・量子化を行うことができる。また逆、プライマリ水平変換に伴う正規化処理と、有効桁数をdBDだけ拡張した変換係数を元の有効桁数の精度へ戻す正規化処理を同時に行うことができる。
【０５７５】
なお、ステップＳ４０５の処理は省略するようにしてもよい。
【０５７６】
＜４．第２の実施の形態＞
＜画像符号化装置＞
第２の実施の形態においては、図９の表の方法＃２の詳細について説明する。まず、符号化の際にそのような演算精度の制御を行う構成について説明する。図４４は、この場合の画像符号化装置１００の主な構成例を示すブロック図である。図４４の場合も画像符号化装置１００は、方法＃１の場合（図１５）と基本的に同様の構成を有するが、予測部１２２により得られた予測画像Pが制御部１０１にも供給される。
【０５７７】
例えば、制御部１０１は、ローカルレベル毎の拡張ビット精度dBDを、この予測画像に基づいて導出する。また、この場合、拡張ビット精度dBDは予測画像から導出されるので、復号側においても同様に、予測画像から拡張ビット精度dBDを導出することができる。つまり、差分パラメータdeltaXの伝送が不要である。したがって、制御部１０１は、この差分パラメータdeltaXの導出を省略する。当然、符号化部１１５も差分パラメータdeltaX（拡張ビット精度に関する情報）の符号化を省略する。
【０５７８】
＜制御部の詳細＞
図４５は、この場合の制御部１０１の、有効桁数の制御に関する情報の生成に関する主な構成例を示すブロック図である。図４５に示されるように、この場合の制御部１０１は、シーケンスビット深度設定部１３１、画素最小値最大値探索部１３３、およびdBD導出部１３４を有する。差分パラメータdeltaXの符号化側から復号側への伝送が省略されるため、deltaX導出部１３５は省略される。そのため、スライスビット深度設定部１３２も省略される。
【０５７９】
また、画素最小値最大値探索部１３３は、予測画像を入力とし、シーケンスレベルよりも小さいデータ単位であるローカルレベル毎に、その予測画像の画素値の最小値（minPredPixelVal）と最大値（maxPredPixelVal）とを探索する。画素最小値最大値探索部１３３は、その探索により検出した各ローカルレベルの最小値（minPredPixelVal）と最大値（maxPredPixelVal）とを、dBD導出部１３４に供給する。
【０５８０】
dBD導出部１３４は、シーケンスビット深度設定部１３１から供給されるシーケンスビット深度channelBitDepthと、画素最小値最大値探索部１３３から供給される予測画像の画素値の最小値（minPredPixelVal）および最大値（maxPredPixelVal）とを入力とし、それらのパラメータに基づいて拡張ビット精度dBDをローカルレベル毎に導出する。
【０５８１】
dBD導出部１３４は、その導出した拡張ビット精度dBDを変換情報Tinfoとして直交変換部１１３、量子化部１１４、逆量子化部１１７、および逆直交変換部１１８に供給する。
【０５８２】
つまり、方法＃２の場合、拡張ビット精度dBDの導出方法と、差分パラメータdeltaXの伝送が省略されることが異なるだけで、それ以外の処理、例えば、直交変換部１１３、量子化部１１４、逆量子化部１１７、および逆直交変換部１１８における有効桁数の制御等は、基本的に方法＃１と同様である。
【０５８３】
したがって、この場合も、方法＃１の場合と同様に、符号化効率の低減を抑制することができる。
【０５８４】
＜画像符号化処理の流れ＞
次に、図４６のフローチャートを参照して、この場合の画像符号化処理の流れの例を説明する。
【０５８５】
画像符号化処理が開始されると、ステップＳ５０１およびステップＳ５０２の各処理が、図２１のステップＳ１０１およびステップＳ１０２の各処理と同様に実行される。
【０５８６】
ステップＳ５０３において、制御部１０１は、並べ替えバッファ１１１が保持する入力画像についての符号化パラメータを決定（設定）する。ただし、この場合、制御部１０１は、有効桁数の制御に関する情報については、入力画像に基づいてシーケンスビット深度channelBitDepthの設定のみを行い、拡張ビット精度dBDの導出は行わない。
【０５８７】
ステップＳ５０４において、予測部１２２は、ステップＳ１０４の場合と同様に予測処理を行い、最適な予測モードの予測画像等を生成する。
【０５８８】
ステップＳ５０５において、制御部１０１は、ステップＳ５０４において生成された予測画像から拡張ビット精度dBDを導出する。
【０５８９】
ステップＳ５０６乃至ステップＳ５１５の各処理は、図２１のステップＳ１０５乃至ステップＳ１１４の各処理と同様に行われる。
【０５９０】
以上のような流れの画像符号化処理において、ステップＳ５０３、ステップＳ５０５、ステップＳ５０７、ステップＳ５０８、ステップＳ５０９、ステップＳ５１０、およびステップＳ５１４の処理として、上述した本技術を適用した処理が行われる。したがって、この画像符号化処理を実行することにより、符号化効率の低減を抑制することができる。
【０５９１】
＜シーケンスビット深度設定処理の流れ＞
図４６のステップＳ５０３においては、各種符号化パラメータが設定される。例えば、シーケンスビット深度channelBitDepthが設定される。図４７のフローチャートを参照して、このシーケンスビット深度channelBitDepthを設定するシーケンスビット深度設定処理の流れの例を説明する。
【０５９２】
シーケンスビット深度設定処理が開始されると、シーケンスビット深度設定部１３１は、ステップＳ５３１において、外部より入力される入力画像の各コンポーネントのビット深度を求め、その値を、各コンポーネントのシーケンスビット深度channelBitDepthに設定する。
【０５９３】
ステップＳ５３１の処理が終了すると、シーケンスビット深度設定処理が終了し、処理は図４６に戻る。
【０５９４】
＜dBD導出処理の流れ＞
図４６のステップＳ５０５の処理において実行されるdBD導出処理の流れの例を、図４８のフローチャートを参照して説明する。
【０５９５】
dBD導出処理が開始されると、画素最小値最大値探索部１３３は、ステップＳ５５１において、拡張ビット精度制御グループSG毎に、予測画像のコンポーネントXの最小画素値minPredPixelVal、および最大画素値maxPredPixelValを導出する。
【０５９６】
ステップＳ５５２において、dBD導出部１３４は、ステップＳ５５１において導出された予測画像の最小画素値minPredPixelVal、および最大画素値maxPredPixelValに基づいて、拡張ビット精度制御グループSG毎に、コンポーネントXの拡張ビット精度dBDを導出する。
【０５９７】
ステップＳ５５２の処理が終了すると、dBD導出処理が終了し、処理は図４６に戻る。
【０５９８】
以上のように、拡張ビット精度制御グループSG毎に拡張ビット精度dBDが導出されるので、直交変換部１１３、量子化部１１４、逆量子化部１１７、および逆直交変換部１１８は、それぞれ、方法＃１の場合と同様に、その拡張ビット精度dBDを用いて、拡張ビット精度制御グループSG毎に係数の有効桁数（演算精度）を制御することができる。したがって、この場合も、方法＃１の場合と同様に、符号化効率の低減を抑制することができる。
【０５９９】
＜拡張ビット精度情報符号化処理の流れ＞
図４６のステップＳ５１４の処理においては、有効桁数の制御（演算精度の制御）に関する情報として、シーケンスビット深度に関する情報が符号化され、ビットストリームに含められる。
【０６００】
このシーケンスビット深度に関する情報を符号化する拡張ビット精度情報符号化処理の流れの例を、図４９のフローチャートを参照して説明する。
【０６０１】
拡張ビット精度情報符号化処理が開始されると、符号化部１１５は、ステップＳ５７１において、コンポーネントXのシーケンスビット深度channelBitDepthに関する情報を符号化し、ビットストリーム（例えばシーケンスパラメータセットSPS）に含める。
【０６０２】
ステップＳ５７１の処理が終了すると、拡張ビット精度情報符号化処理が終了し、処理は図４６に戻る。
【０６０３】
このように、この場合、符号化部１１５は、シーケンスビット深度に関する情報を符号化してビットストリームに含める（シーケンスビット深度に関する情報を含むビットストリームを生成する）が、差分パラメータdeltaXの符号化は省略される。したがって、符号化効率の低減を抑制することができる。
【０６０４】
＜変形例＞
なお、第２の実施例の形態（図９の表の方法＃２）における画像符号化装置では、処理対象ブロックに対応する予測画像を参照して、ローカルレベル毎の拡張ビット精度dBDを導出しているが、予測画像の代わりに、該予測画像生成で参照する復号画像を用いて、処理対象ブロックのローカルビット深度を導出し、該ローカルビット深度を参照して、拡張ビット精度dBDを導出する構成としてもよい（方法＃２'）。
【０６０５】
すなわち、図４５において、画素最小値最大値探索部１３３は、処理対象ブロックの予測画像生成で参照する復号画像Recrefを入力とし、シーケンスレベルよりも小さいデータ単位であるローカルレベル毎に、その復号画像Recrefの画素値の最小値（minRecPixelVal）と最大値（maxRecPixelVal）とを探索する。画素最小値最大値探索部１３３は、その探索により検出した各ローカルレベルの最小値（minRecPixelVal）と最大値（maxRecPixelVal）とを、dBD導出部１３４に供給する。
【０６０６】
また、dBD導出部１３４は、シーケンスビット深度設定部１３１から供給されるシーケンスビット深度channelBitDepthと、画素最小値最大値探索部１３３から供給される復号画像Recrefの画素値の最小値（minRecPixelVal）および最大値（maxRecPixelVal）とを入力とし、それらのパラメータに基づいて拡張ビット精度dBDをローカルレベル毎に導出する。
【０６０７】
同様に、図４６のステップＳ５０５は、"復号画像から拡張ビット精度dBDを導出する"と解釈する。
【０６０８】
従って、この場合も方法＃２の場合と同様に、符号化効率の低減を抑制する効果を奏する。また、方法＃２'の方法＃２に対するメリットは、予測画像を生成しなくても、復号画像のみから拡張ビット精度dBDを導出可能な点である。
【０６０９】
なお、上記において、復号画像Recrefとは、イントラ予測であれば、対象ブロックのイントラ予測画像を生成するために参照する局所復号画素領域を指し、インター予測であれば、対象ブロックのインター予測画像を生成するために参照する局所復号画素領域である。
【０６１０】
＜画像復号装置＞
次に、復号の際に図９の表の方法＃２のような演算精度の制御を行う構成について説明する。図５０は、この場合の画像復号装置２００の主な構成例を示すブロック図である。図５０の場合も画像復号装置２００は、方法＃２の場合（図３２）と基本的に同様の構成を有するが、予測部２１９により得られた予測画像Pが復号部２１２にも供給される。
【０６１１】
例えば、復号部２１２は、ローカルレベル毎の拡張ビット精度dBDを、この予測画像に基づいて導出する。つまり、差分パラメータdeltaXの伝送が不要である。したがって、符号化効率の低減を抑制することができる。また、当然、復号部２１２は、この差分パラメータdeltaXの復号を省略する。
【０６１２】
＜復号部の詳細＞
図５１は、この場合の復号部２１２の、有効桁数の制御に関する情報の抽出等に関する主な構成例を示すブロック図である。図５１に示されるように、この場合の復号部２１２は、シーケンスビット深度導出部２３１、dBD導出部２３４、および画素最小値最大値探索部４３１を有する。差分パラメータdeltaXの符号化側から復号側への伝送が省略されるため、スライスビット深度導出部２３２およびdeltaX復号部２３３は省略される。
【０６１３】
画素最小値最大値探索部４３１は、予測画像を入力とし、シーケンスレベルよりも小さいデータ単位であるローカルレベル毎に、その予測画像の画素値の最小値（minPredPixelVal）と最大値（maxPredPixelVal）とを探索する。画素最小値最大値探索部４３１は、その探索により検出した各ローカルレベルの最小値（minPredPixelVal）と最大値（maxPredPixelVal）とを、dBD導出部２３４に供給する。
【０６１４】
dBD導出部２３４は、シーケンスビット深度導出部２３１から供給されるシーケンスビット深度channelBitDepthと、画素最小値最大値探索部４３１から供給される予測画像の画素値の最小値（minPredPixelVal）および最大値（maxPredPixelVal）とを入力とし、それらのパラメータに基づいて拡張ビット精度dBDをローカルレベル毎に導出する。
【０６１５】
dBD導出部２３４は、その導出した拡張ビット精度dBDを変換情報Tinfoとして逆量子化部２１３および逆直交変換部２１４に供給する。
【０６１６】
つまり、方法＃２の場合、復号側においても、拡張ビット精度dBDの導出方法と、差分パラメータdeltaXの伝送が省略されることが異なるだけで、それ以外の処理、例えば、逆量子化部２１３や逆直交変換部２１４における有効桁数の制御等は、基本的に方法＃１と同様である。
【０６１７】
したがって、この場合も、方法＃１の場合と同様に、符号化効率の低減を抑制することができる。
【０６１８】
＜画像復号処理の流れ＞
次に、図５２のフローチャートを参照して、この場合の画像復号処理の流れの例を説明する。
【０６１９】
画像復号処理が開始されると、ステップＳ６０１の処理が、図３８のステップＳ３０１の処理と同様に実行される。
【０６２０】
ステップＳ６０２において、復号部２１２は、復号処理を行う。この方法＃２の場合、この復号処理において、差分パラメータdeltaXの復号やスライスビット深度sliceBitDepthの導出等の処理が省略される（行われない）。
【０６２１】
ステップＳ６０３において、予測部２１９は、ステップＳ３０５の場合と同様に予測処理を行い、予測画像Pを生成する。
【０６２２】
ステップＳ６０４において、復号部２１２は、ステップＳ６０３において生成された予測画像Pから拡張ビット精度dBDを導出する。なお、この拡張ビット精度dBDの導出は、方法＃１の場合（図３９）と同様に行われる。
【０６２３】
ステップＳ６０５およびステップＳ６０６の各処理は、ステップＳ３０３およびステップＳ３０４の各処理と同様に行われる。つまり、逆量子化部２１３および逆直交変換部２１４は、方法＃１の場合と同様に、逆量子化処理や逆直交変換処理を行う。つまり、方法＃１の場合と同様に、ローカルレベルの拡張ビット精度dBDを用いた有効桁数の制御（演算精度の制御）が行われる。したがって、この場合も、符号化効率の低減を抑制することができる。
【０６２４】
ステップＳ６０７乃至ステップＳ６１０の各処理は、ステップＳ３０６乃至ステップＳ３０９の各処理と同様に実行される。
【０６２５】
＜シーケンスビット深度導出処理の流れ＞
図５２のステップＳ６０２の復号処理においては、各種符号化パラメータが設定される。例えば、ビットストリームからシーケンスビット深度に関する情報が読み出され、そのシーケンスビット深度に関する情報から、シーケンスビット深度channelBitDepthが導出される。図５３のフローチャートを参照して、このシーケンスビット深度channelBitDepthを導出するシーケンスビット深度導出処理の流れの例を説明する。
【０６２６】
シーケンスビット深度導出処理が開始されると、シーケンスビット深度導出部２３１は、ステップＳ６３１において、ビットストリームを復号して、シーケンスビット深度に関する情報を抽出し、その抽出したシーケンスビット深度に関する情報に基づいて、各コンポーネントのシーケンスビット深度channelBitDepthを導出する。
【０６２７】
ステップＳ６３１の処理が終了すると、シーケンスビット深度導出処理が終了し、処理は図５２に戻る。
【０６２８】
このように各処理が実行されることにより、シーケンスレベルよりも小さいデータ単位であるローカルレベル毎に、変換係数の有効桁数を制御することができる。したがって、方法＃２の場合も、符号化効率の低減を抑制することができる。
【０６２９】
＜変形例＞
なお、第２の実施例の形態（図９の表の方法＃２）における画像復号装置では、処理対象ブロックに対応する予測画像を参照して、ローカルレベル毎の拡張ビット精度dBDを導出しているが、予測画像の代わりに、該予測画像生成で参照する復号画像を用いて、処理対象ブロックのローカルビット深度を導出し、該ローカルビット深度を参照して、拡張ビット精度dBDを導出する構成としてもよい（方法＃２'）。
【０６３０】
すなわち、図５１において、画素最小値最大値探索部４３１は、処理対象ブロックの予測画像生成で参照する復号画像Recrefを入力とし、シーケンスレベルよりも小さいデータ単位であるローカルレベル毎に、その復号画像Recrefの画素値の最小値（minRecPixelVal）と最大値（maxRecPixelVal）とを探索する。画素最小値最大値探索部４３１は、その探索により検出した各ローカルレベルの最小値（minRecPixelVal）と最大値（maxRecPixelVal）とを、dBD導出部２３４に供給する。
【０６３１】
また、dBD導出部２３４は、シーケンスビット深度導出部２３１から供給されるシーケンスビット深度channelBitDepthと、画素最小値最大値探索部４３１から供給される復号画像Recrefの画素値の最小値（minRecPixelVal）および最大値（maxRecPixelVal）とを入力とし、それらのパラメータに基づいて拡張ビット精度dBDをローカルレベル毎に導出する。
【０６３２】
同様に、図５２のステップＳ６０４は、”復号画像から拡張ビット精度dBDを導出する”と解釈する。
【０６３３】
従って、この場合も方法＃２の場合と同様に、符号化効率の低減を抑制する効果を奏する。また、方法＃２'の方法＃２に対するメリットは、予測画像を生成しなくても、復号画像のみから拡張ビット精度dBDを導出可能な点である。
【０６３４】
なお、上記において、復号画像Recrefとは、イントラ予測であれば、対象ブロックのイントラ予測画像を生成するために参照する局所復号画素領域を指し、インター予測であれば、対象ブロックのインター予測画像を生成するために参照する局所復号画素領域である。
【０６３５】
＜５．付記＞
＜コンピュータ＞
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
【０６３６】
図５４は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０６３７】
図５４に示されるコンピュータ８００において、CPU（Central Processing Unit）８０１、ROM（Read Only Memory）８０２、RAM（Random Access Memory）８０３は、バス８０４を介して相互に接続されている。
【０６３８】
バス８０４にはまた、入出力インタフェース８１０も接続されている。入出力インタフェース８１０には、入力部８１１、出力部８１２、記憶部８１３、通信部８１４、およびドライブ８１５が接続されている。
【０６３９】
入力部８１１は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部８１２は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部８１３は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部８１４は、例えば、ネットワークインタフェースよりなる。ドライブ８１５は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア８２１を駆動する。
【０６４０】
以上のように構成されるコンピュータでは、CPU８０１が、例えば、記憶部８１３に記憶されているプログラムを、入出力インタフェース８１０およびバス８０４を介して、RAM８０３にロードして実行することにより、上述した一連の処理が行われる。RAM８０３にはまた、CPU８０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０６４１】
コンピュータ（CPU８０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア８２１に記録して適用することができる。その場合、プログラムは、リムーバブルメディア８２１をドライブ８１５に装着することにより、入出力インタフェース８１０を介して、記憶部８１３にインストールすることができる。
【０６４２】
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部８１４で受信し、記憶部８１３にインストールすることができる。
【０６４３】
その他、このプログラムは、ROM８０２や記憶部８１３に、あらかじめインストールしておくこともできる。
【０６４４】
＜情報・処理の単位＞
以上において説明した各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU（Transform Unit）、TB(Transform Block)、PU（Prediction Unit）、PB(Prediction Block)、CU（Coding Unit）、LCU（Largest Coding Unit）、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
【０６４５】
＜制御情報＞
以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可（または禁止）するか否かを制御する制御情報（例えばenabled_flag）を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象（または適用しない対象）を示す制御情報を伝送するようにしてもよい。例えば、本技術を適用する（または、適用を許可若しくは禁止する）ブロックサイズ（上限若しくは下限、またはその両方）、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。
【０６４６】
＜本技術の適用対象＞
本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換（逆変換）、量子化（逆量子化）、符号化（復号）、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
【０６４７】
また本技術は、複数の視点（ビュー（view））の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点（ビュー（view））の符号化・復号において、本技術を適用するようにすればよい。
【０６４８】
さらに本技術は、所定のパラメータについてスケーラビリティ（scalability）機能を有するように複数レイヤ化（階層化）された階層画像の符号化・復号を行う階層画像符号化（スケーラブル符号化）・復号システムに適用することができる。その場合、各階層（レイヤ）の符号化・復号において、本技術を適用するようにすればよい。
【０６４９】
上述した実施形態に係る画像符号化装置１００や画像復号装置２００は、例えば、衛星放送、ケーブルＴＶなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機（例えばテレビジョン受像機や携帯電話機）、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置（例えばハードディスクレコーダやカメラ）などの、様々な電子機器に応用され得る。
【０６５０】
また、本技術は、任意の装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI（Large Scale Integration）等としてのプロセッサ（例えばビデオプロセッサ）、複数のプロセッサ等を用いるモジュール（例えばビデオモジュール）、複数のモジュール等を用いるユニット（例えばビデオユニット）、ユニットにさらにその他の機能を付加したセット（例えばビデオセット）等（すなわち、装置の一部の構成）として実施することもできる。
【０６５１】
さらに、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、コンピュータ、AV（Audio Visual）機器、携帯型情報処理端末、IoT（Internet of Things）デバイス等の任意の端末に対して、画像（動画像）に関するサービスを提供するクラウドサービスに適用することもできる。
【０６５２】
なお、本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
【０６５３】
例えば、本技術は、観賞用コンテンツ等の提供の用に供されるシステムやデバイスに適用することができる。また、例えば、本技術は、交通状況の監理や自動運転制御等、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、機械等の自動制御の用に供されるシステムやデバイスに適用することができる。さらに、例えば、本技術は、農業や畜産業の用に供されるシステムやデバイスにも適用することができる。また、本技術は、例えば火山、森林、海洋等の自然の状態や野生生物等を監視するシステムやデバイスにも適用することができる。さらに、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。
【０６５４】
＜その他＞
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の２状態を識別する際に用いる情報だけでなく、３以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の２値であってもよいし、３値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報（フラグも含む）は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
【０６５５】
また、符号化データ（ビットストリーム）に関する各種情報（メタデータ等）は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る（リンクさせ得る）ようにすることを意味する。つまり、互いに関連付けられたデータは、１つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ（画像）に関連付けられた情報は、その符号化データ（画像）とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ（画像）に関連付けられた情報は、その符号化データ（画像）とは別の記録媒体（または同一の記録媒体の別の記録エリア）に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、１フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
【０６５６】
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを１つのデータにまとめるといった、複数の物を１つにまとめることを意味し、上述の「関連付ける」の１つの方法を意味する。
【０６５７】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０６５８】
また、例えば、本技術は、装置またはシステムを構成するあらゆる構成、例えば、システムLSI（Large Scale Integration）等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等（すなわち、装置の一部の構成）として実施することもできる。
【０６５９】
なお、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【０６６０】
また、例えば、１つの装置（または処理部）として説明した構成を分割し、複数の装置（または処理部）として構成するようにしてもよい。逆に、以上において複数の装置（または処理部）として説明した構成をまとめて１つの装置（または処理部）として構成されるようにしてもよい。また、各装置（または各処理部）の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置（または処理部）の構成の一部を他の装置（または他の処理部）の構成に含めるようにしてもよい。
【０６６１】
また、例えば、本技術は、１つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０６６２】
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能（機能ブロック等）を有し、必要な情報を得ることができるようにすればよい。
【０６６３】
また、例えば、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、１つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を１つのステップとしてまとめて実行することもできる。
【０６６４】
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【０６６５】
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【０６６６】
なお、本技術は以下のような構成も取ることができる。
（１）  画像の予測残差を直交変換するとともに、前記予測残差が直交変換されて得られる係数データの有効桁数を、前記画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する直交変換部と、
前記直交変換部により得られる前記係数データを量子化するとともに、前記係数データが量子化されて得られる量子化係数の有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御する量子化部と、
前記量子化部により得られる前記量子化係数を符号化し、ビットストリームを生成する符号化部と
を備える画像処理装置。
（２）  前記直交変換部は、前記ローカルレベルの前記ビット深度に応じたシフト量でビットシフトすることにより、前記係数データの有効桁数を制御し、
前記量子化部は、前記ローカルレベルの前記ビット深度に応じたシフト量でビットシフトすることにより、前記量子化係数の有効桁数を制御する
（１）に記載の画像処理装置。
（３）  前記直交変換部は、
前記予測残差をプライマリ直交変換し、得られた前記プライマリ直交変換の結果をセカンダリ直交変換するとともに、
前記プライマリ直交変換において、前記係数データの有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御する
（１）または（２）に記載の画像処理装置。
（４）  前記直交変換部は、前記プライマリ直交変換において、
前記予測残差を水平方向に１次元変換し、
得られた中間データの有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御し、
有効桁数が制御された前記中間データを垂直方向に１次元変換し、
得られた係数データの有効桁数を、前記シーケンスレベルの前記ビット深度に基づいて制御する
（３）に記載の画像処理装置。
（５）  前記直交変換部は、
前記画像のシーケンス毎に設定される前記中間データの有効桁数の制御量を、前記ローカルレベルの前記ビット深度に基づいて補正し、
補正した前記制御量で前記中間データの有効桁数を制御する
（４）に記載の画像処理装置。
（６）  前記量子化部は、
前記画像のシーケンス毎に設定される前記量子化係数の有効桁数の制御量を、前記ローカルレベルの前記ビット深度に基づいて補正し、
補正した前記制御量で前記量子化係数の有効桁数を制御する
（１）乃至（５）のいずれかに記載の画像処理装置。
（７）  前記画像のシーケンス毎に設定される前記係数データの有効桁数の制御量および前記量子化係数の有効桁数の制御量の補正値である拡張ビット精度を、前記ローカルレベルの前記ビット深度に基づいて導出する拡張ビット精度導出部をさらに備え、
前記直交変換部は、
前記係数データの有効桁数の制御量を、前記拡張ビット精度導出部により導出される前記拡張ビット精度を用いて補正し、
補正された前記制御量で前記係数データの有効桁数を制御し、
前記量子化部は、
前記量子化係数の有効桁数の制御量を、前記拡張ビット精度導出部により導出される前記拡張ビット精度を用いて補正し、
補正された前記制御量で前記量子化係数の有効桁数を制御する
（１）乃至（６）のいずれかに記載の画像処理装置。
（８）  前記拡張ビット精度導出部は、前記シーケンスレベルの前記ビット深度と前記ローカルレベルの前記ビット深度との差分を、前記拡張ビット精度として導出する
（７）に記載の画像処理装置。
（９）  外部パラメータに基づいて、前記シーケンスレベルの前記ビット深度を設定するシーケンスビット深度設定部をさらに備え、
前記拡張ビット精度導出部は、前記シーケンスビット深度設定部により設定された前記シーケンスレベルの前記ビット深度を用いて前記差分を導出する
（８）に記載の画像処理装置。
（１０）  前記画像の画素値の前記ローカルレベルの最小値および最大値を探索する画素最小値最大値探索部をさらに備え、
前記拡張ビット精度導出部は、
前記画素最小値最大値探索部の探索により検出された前記最大値および前記最小値の差分を用いて前記ローカルレベルの前記ビット深度を導出し、
導出した前記ローカルレベルの前記ビット深度を用いて前記差分を導出する
（８）または（９）に記載の画像処理装置。
（１１）  前記拡張ビット精度導出部は、CTBのサイズと前記CTBのサイズに対する分割深度の差分値とに基づいて定まるサイズの領域毎に、前記拡張ビット精度を導出する
（７）乃至（１０）のいずれかに記載の画像処理装置。
（１２）  前記符号化部は、前記CTBのサイズに対する分割深度の差分値を符号化し、前記CTBのサイズに対する分割深度の差分値を含む前記ビットストリームを生成する
（１１）に記載の画像処理装置。
（１３）  前記符号化部は、前記拡張ビット精度導出部により導出される前記拡張ビット精度に関する情報を符号化し、前記拡張ビット精度に関する情報を含む前記ビットストリームを生成する
（７）乃至（１２）のいずれかに記載の画像処理装置。
（１４）  前記拡張ビット精度導出部により導出される前記拡張ビット精度を用いて差分パラメータを導出する差分パラメータ導出部をさらに備え、
前記符号化部は、前記差分パラメータ導出部により導出された前記差分パラメータを、前記拡張ビット精度に関する情報として符号化し、前記差分パラメータを含む前記ビットストリームを生成する
（１３）に記載の画像処理装置。
（１５）  前記差分パラメータは、前記画像のスライスレベルの前記ビット深度と前記ローカルレベルの前記ビット深度との差分である
（１４）に記載の画像処理装置。
（１６）  前記差分パラメータは、前記画像のシーケンスレベルの前記ビット深度と前記ローカルレベルの前記ビット深度との差分である
（１４）または（１５）に記載の画像処理装置。
（１７）  前記差分パラメータは、前記拡張ビット精度と、前記拡張ビット精度の予測値との差分である
（１４）乃至（１６）のいずれかに記載の画像処理装置。
（１８）  前記ローカルレベルに対応するカレント領域の前記予測値は、前記ローカルレベルに対応する前記カレント領域の周辺の領域の前記拡張ビット精度に基づいて導出される
（１７）に記載の画像処理装置。
（１９）  前記符号化部は、前記ローカルレベルの前記ビット深度に基づく有効桁数の制御が可能であるかを示す制御情報を符号化し、前記制御情報を含む前記ビットストリームを生成する
（１）乃至（１８）のいずれかに記載の画像処理装置。
（２０）  画像の予測残差を直交変換するとともに、前記予測残差が直交変換されて得られる係数データの有効桁数を、前記画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、
前記係数データを量子化するとともに、前記係数データが量子化されて得られる量子化係数の有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御し、
前記量子化係数を符号化し、ビットストリームを生成する
画像処理方法。
【０６６７】
（２１）  ビットストリームを復号する復号部と、
前記復号部により前記ビットストリームが復号されて得られる量子化係数を逆量子化するとともに、前記量子化係数が逆量子化されて得られる係数データの有効桁数を、シーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する逆量子化部と、
前記逆量子化部により前記量子化係数が逆量子化されて得られる前記係数データを逆直交変換するとともに、前記係数データが逆直交変換されて得られる残差データの有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御する逆直交変換部と
を備える画像処理装置。
（２２）  前記逆量子化部は、前記ローカルレベルの前記ビット深度に応じたシフト量でビットシフトすることにより、前記係数データの有効桁数を制御し、
前記逆直交変換部は、前記ローカルレベルの前記ビット深度に応じたシフト量でビットシフトすることにより、前記残差データの有効桁数を制御する
（２１）に記載の画像処理装置。
（２３）  前記逆量子化部は、
前記画像のシーケンス毎に設定される前記係数データの有効桁数の制御量を、前記ローカルレベルの前記ビット深度に基づいて補正し、
補正した前記制御量で前記係数データの有効桁数を制御する
（２１）または（２２）に記載の画像処理装置。
（２４）  前記逆直交変換部は、
前記係数データを逆セカンダリ直交変換し、得られた前記逆セカンダリ直交変換の結果を逆プライマリ直交変換するとともに、
前記逆プライマリ直交変換において、前記残差データの有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御する
（２１）乃至（２３）のいずれかに記載の画像処理装置。
（２５）  前記逆直交変換部は、前記逆プライマリ直交変換において、
前記逆セカンダリ直交変換の結果を垂直方向に逆１次元変換し、
得られた中間データの有効桁数を、前記シーケンスレベルの前記ビット深度に基づいて制御し、
有効桁数が制御された前記中間データを水平方向に逆１次元変換し、
得られた残差データの有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御する
（２４）に記載の画像処理装置。
（２６）  前記逆直交変換部は、
前記画像のシーケンス毎に設定される前記残差データの有効桁数の制御量を、前記ローカルレベルの前記ビット深度に基づいて補正し、
補正した前記制御量で前記残差データの有効桁数を制御する
（２５）に記載の画像処理装置。
（２７）  前記ビットストリームは、シーケンス毎に設定される前記係数データの有効桁数の制御量および前記残差データの有効桁数の制御量の補正値である拡張ビット精度に関する情報を含み、
前記復号部は、
前記ビットストリームを復号して前記ビットストリームに含まれる前記拡張ビット精度に関する情報を抽出し、
抽出した前記拡張ビット精度に関する情報に基づいて、前記拡張ビット精度を導出し、
前記逆量子化部は、
前記係数データの有効桁数の制御量を、前記復号部により導出される前記拡張ビット精度を用いて補正し、
補正された前記制御量で前記係数データの有効桁数を制御し、
前記逆直交変換部は、
前記残差データの有効桁数の制御量を、前記復号部により導出される前記拡張ビット精度を用いて補正し、
補正された前記制御量で前記残差データの有効桁数を制御する
（２１）乃至（２６）のいずれかに記載の画像処理装置。
（２８）  前記拡張ビット精度は、前記シーケンスレベルの前記ビット深度と前記ローカルレベルの前記ビット深度との差分である
（２７）に記載の画像処理装置。
（２９）  前記拡張ビット精度に関する情報は、前記画像のスライスレベルの前記ビット深度と前記ローカルレベルの前記ビット深度との差分である差分パラメータを含み、
前記復号部は、前記シーケンスレベルの前記ビット深度から前記スライスレベルの前記ビット深度を減算し、前記差分パラメータを加算することにより、前記拡張ビット精度を導出する
（２８）に記載の画像処理装置。
（３０）  前記ビットストリームは、前記シーケンスレベルの前記ビット深度に関する情報をさらに含み、
前記復号部は、
前記ビットストリームを復号して前記ビットストリームに含まれる前記シーケンスレベルの前記ビット深度に関する情報を抽出し、
抽出した前記シーケンスレベルの前記ビット深度に関する情報に基づいて、前記シーケンスレベルの前記ビット深度を導出し、
導出した前記シーケンスレベルの前記ビット深度を用いて前記拡張ビット精度を導出する
（２９）に記載の画像処理装置。
（３１）  前記シーケンスレベルの前記ビット深度に関する情報は、前記シーケンスレベルの前記ビット深度から所定の値を減算した値であり、
前記復号部は、
前記シーケンスレベルの前記ビット深度に関する情報に前記所定の値を加算して前記シーケンスレベルの前記ビット深度を導出する
（３０）に記載の画像処理装置。
（３２）  前記ビットストリームは、前記スライスレベルの前記ビット深度に関する情報をさらに含み、
前記復号部は、
前記ビットストリームを復号して前記ビットストリームに含まれる前記スライスレベルの前記ビット深度に関する情報を抽出し、
抽出した前記スライスレベルの前記ビット深度に関する情報に基づいて、前記スライスレベルの前記ビット深度を導出し、
導出した前記スライスレベルの前記ビット深度を用いて前記拡張ビット精度を導出する
（２９）乃至（３１）のいずれかに記載の画像処理装置。
（３３）  前記スライスレベルの前記ビット深度に関する情報は、前記画像の画素値の前記スライスレベルの最小値および最大値であり、
前記復号部は、
前記最大値と前記最小値の差分を用いて前記スライスレベルの前記ビット深度を導出する
（３２）に記載の画像処理装置。
（３４）  前記拡張ビット精度に関する情報は、前記画像のシーケンスレベルの前記ビット深度と前記ローカルレベルの前記ビット深度との差分である差分パラメータを含み、
前記復号部は、前記シーケンスレベルの前記ビット深度から前記差分パラメータを減算することにより、前記拡張ビット精度を導出する
（２８）乃至（３３）のいずれかに記載の画像処理装置。
（３５）  前記拡張ビット精度に関する情報は、前記拡張ビット精度と、前記拡張ビット精度の予測値との差分である差分パラメータを含み、
前記復号部は、前記差分パラメータに前記予測値を加算することにより、前記拡張ビット精度を導出する
（２８）乃至（３４）のいずれかに記載の画像処理装置。
（３６）  前記ローカルレベルに対応するカレント領域の前記予測値は、前記ローカルレベルに対応する前記カレント領域の周辺の領域の前記拡張ビット精度に基づいて導出される
（３５）に記載の画像処理装置。
（３７）  前記復号部は、CTBのサイズと前記CTBのサイズに対する分割深度の差分値とに基づいて定まるサイズの領域毎に、前記拡張ビット精度を導出する
（２７）乃至（３６）のいずれかに記載の画像処理装置。
（３８）  前記復号部は、前記ビットストリームを復号して、前記CTBのサイズに対する分割深度の差分値を抽出する
（３７）に記載の画像処理装置。
（３９）  前記復号部は、前記ビットストリームを復号して、前記ローカルレベルの前記ビット深度に基づく有効桁数の制御が可能であるかを示す制御情報を抽出し、抽出した前記制御情報に従って、前記ローカルレベルの前記ビット深度に基づく有効桁数の制御の適用を制御する
（２１）乃至（３８）のいずれかに記載の画像処理装置。
（４０）  ビットストリームを復号し、
前記ビットストリームが復号されて得られる量子化係数を逆量子化するとともに、前記量子化係数が逆量子化されて得られる係数データの有効桁数を、シーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、
前記量子化係数が逆量子化されて得られる前記係数データを逆直交変換するとともに、前記係数データが逆直交変換されて得られる残差データの有効桁数を、前記ローカルレベルの前記ビット深度に基づいて制御する
画像処理方法。
【０６６８】
（４１）  画像の予測残差を直交変換するとともに、前記予測残差が直交変換されて得られる係数データの有効桁数を、前記画像に対応する予測画像または前記予測画像を生成する際に参照する復号画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する直交変換部と、
前記直交変換部により得られる前記係数データを量子化するとともに、前記係数データが量子化されて得られる量子化係数の有効桁数を、前記予測画像または前記復号画像の前記ローカルレベルの前記ビット深度に基づいて制御する量子化部と、
前記量子化部により得られる前記量子化係数を符号化し、ビットストリームを生成する符号化部と
を備える画像処理装置。
（４２）  前記直交変換部は、前記予測画像の前記ローカルレベルの前記ビット深度に応じたシフト量でビットシフトすることにより、前記係数データの有効桁数を制御し、
前記量子化部は、前記予測画像の前記ローカルレベルの前記ビット深度に応じたシフト量でビットシフトすることにより、前記量子化係数の有効桁数を制御する
（４１）に記載の画像処理装置。
（４３）  前記直交変換部は、
前記予測残差をプライマリ直交変換し、得られた前記プライマリ直交変換の結果をセカンダリ直交変換するとともに、
前記プライマリ直交変換において、前記係数データの有効桁数を、前記予測画像の前記ローカルレベルの前記ビット深度に基づいて制御する
（４１）または（４２）に記載の画像処理装置。
（４４）  前記直交変換部は、前記プライマリ直交変換において、
前記予測残差を水平方向に１次元変換し、
得られた中間データの有効桁数を、前記予測画像の前記ローカルレベルの前記ビット深度に基づいて制御し、
有効桁数が制御された前記中間データを垂直方向に１次元変換し、
得られた係数データの有効桁数を、前記画像の前記シーケンスレベルの前記ビット深度に基づいて制御する
（４３）に記載の画像処理装置。
（４５）  前記直交変換部は、
前記画像のシーケンス毎に設定される前記中間データの有効桁数の制御量を、前記予測画像の前記ローカルレベルの前記ビット深度に基づいて補正し、
補正した前記制御量で前記中間データの有効桁数を制御する
（４４）に記載の画像処理装置。
（４６）  前記量子化部は、
前記画像のシーケンス毎に設定される前記量子化係数の有効桁数の制御量を、前記予測画像の前記ローカルレベルの前記ビット深度に基づいて補正し、
補正した前記制御量で前記量子化係数の有効桁数を制御する
（４１）乃至（４５）のいずれかに記載の画像処理装置。
（４７）  前記画像のシーケンス毎に設定される前記係数データの有効桁数の制御量および前記量子化係数の有効桁数の制御量の補正値である拡張ビット精度を、前記予測画像の前記ローカルレベルの前記ビット深度に基づいて導出する拡張ビット精度導出部をさらに備え、
前記直交変換部は、
前記係数データの有効桁数の制御量を、前記拡張ビット精度導出部により導出される前記拡張ビット精度を用いて補正し、
補正された前記制御量で前記係数データの有効桁数を制御し、
前記量子化部は、
前記量子化係数の有効桁数の制御量を、前記拡張ビット精度導出部により導出される前記拡張ビット精度を用いて補正し、
補正された前記制御量で前記量子化係数の有効桁数を制御する
（４１）乃至（４６）のいずれかに記載の画像処理装置。
（４８）  前記拡張ビット精度導出部は、前記シーケンスレベルの前記ビット深度と、前記予測画像の前記ローカルレベルの前記ビット深度との差分を、前記拡張ビット精度として導出する
（４７）に記載の画像処理装置。
（４９）  外部パラメータに基づいて、前記シーケンスレベルの前記ビット深度を設定するシーケンスビット深度設定部をさらに備え、
前記拡張ビット精度導出部は、前記シーケンスビット深度設定部により設定された前記シーケンスレベルの前記ビット深度を用いて前記差分を導出する
（４８）に記載の画像処理装置。
（５０）  前記画像の予測を行い前記予測画像を生成する予測部をさらに備え、
前記拡張ビット精度導出部は、前記拡張ビット精度を、前記予測部により生成された前記予測画像の前記ローカルレベルの前記ビット深度に基づいて導出する
（４７）乃至（４９）のいずれかに記載の画像処理装置。
（５１）  前記予測部により生成された前記予測画像の画素値の前記ローカルレベルの最小値および最大値を探索する画素最小値最大値探索部をさらに備え、
前記拡張ビット精度導出部は、
前記画素最小値最大値探索部の探索により検出された前記最大値および前記最小値の差分を用いて前記予測画像の前記ローカルレベルの前記ビット深度を導出し、
前記拡張ビット精度を、導出した前記予測画像の前記ローカルレベルの前記ビット深度に基づいて導出する
（５０）に記載の画像処理装置。
（５２）  前記拡張ビット精度導出部は、CTBのサイズと前記CTBのサイズに対する分割深度の差分値とに基づいて定まるサイズの領域毎に、前記拡張ビット精度を導出する
（４７）乃至（５１）のいずれかに記載の画像処理装置。
（５３）  前記符号化部は、前記CTBのサイズに対する分割深度の差分値を符号化し、前記CTBのサイズに対する分割深度の差分値を含む前記ビットストリームを生成する
（５２）に記載の画像処理装置。
（５４）  前記符号化部は、前記予測画像の前記ローカルレベルの前記ビット深度に基づく有効桁数の制御が可能であるかを示す制御情報を符号化し、前記制御情報を含む前記ビットストリームを生成する
（４１）乃至（５３）のいずれかに記載の画像処理装置。
（５５）  画像の予測残差を直交変換するとともに、前記予測残差が直交変換されて得られる係数データの有効桁数を、前記画像に対応する予測画像または前記予測画像を生成する際に参照する復号画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、
前記係数データを量子化するとともに、前記係数データが量子化されて得られる量子化係数の有効桁数を、前記予測画像または前記復号画像の前記ローカルレベルの前記ビット深度に基づいて制御し、
前記量子化係数を符号化し、ビットストリームを生成する
画像処理方法。
【０６６９】
（６１）  ビットストリームを復号する復号部と、
前記復号部により前記ビットストリームが復号されて得られる量子化係数を逆量子化するとともに、前記量子化係数が逆量子化されて得られる係数データの有効桁数を、予測画像または前記予測画像を生成する際に参照する復号画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御する逆量子化部と、
前記逆量子化部により前記量子化係数が逆量子化されて得られる前記係数データを逆直交変換するとともに、前記係数データが逆直交変換されて得られる残差データの有効桁数を、前記予測画像または前記復号画像の前記ローカルレベルの前記ビット深度に基づいて制御する逆直交変換部と
を備える画像処理装置。
（６２）  前記逆量子化部は、前記予測画像の前記ローカルレベルの前記ビット深度に応じたシフト量でビットシフトすることにより、前記係数データの有効桁数を制御し、
前記逆直交変換部は、前記予測画像の前記ローカルレベルの前記ビット深度に応じたシフト量でビットシフトすることにより、前記残差データの有効桁数を制御する
（６１）に記載の画像処理装置。
（６３）  前記逆量子化部は、
前記画像のシーケンス毎に設定される前記係数データの有効桁数の制御量を、前記予測画像の前記ローカルレベルの前記ビット深度に基づいて補正し、
補正した前記制御量で前記係数データの有効桁数を制御する
（６１）または（６２）に記載の画像処理装置。
（６４）  前記逆直交変換部は、
前記係数データを逆セカンダリ直交変換し、得られた前記逆セカンダリ直交変換の結果を逆プライマリ直交変換するとともに、
前記逆プライマリ直交変換において、前記残差データの有効桁数を、前記予測画像の前記ローカルレベルの前記ビット深度に基づいて制御する
（６１）乃至（６３）のいずれかに記載の画像処理装置。
（６５）  前記逆直交変換部は、前記逆プライマリ直交変換において、
前記逆セカンダリ直交変換の結果を垂直方向に逆１次元変換し、
得られた中間データの有効桁数を、前記シーケンスレベルの前記ビット深度に基づいて制御し、
有効桁数が制御された前記中間データを水平方向に逆１次元変換し、
得られた残差データの有効桁数を、前記予測画像の前記ローカルレベルの前記ビット深度に基づいて制御する
（６４）に記載の画像処理装置。
（６６）  前記逆直交変換部は、
前記画像のシーケンス毎に設定される前記残差データの有効桁数の制御量を、前記予測画像の前記ローカルレベルの前記ビット深度に基づいて補正し、
補正した前記制御量で前記残差データの有効桁数を制御する
（６５）に記載の画像処理装置。
（６７）  前記画像のシーケンス毎に設定される前記係数データの有効桁数の制御量および前記残差データの有効桁数の制御量の補正値である拡張ビット精度を、前記予測画像の前記ローカルレベルの前記ビット深度に基づいて導出する拡張ビット精度導出部をさらに備え、
前記逆量子化部は、
前記係数データの有効桁数の制御量を、前記拡張ビット精度導出部により導出される前記拡張ビット精度を用いて補正し、
補正された前記制御量で前記係数データの有効桁数を制御し、
前記逆直交変換部は、
前記残差データの有効桁数の制御量を、前記拡張ビット精度導出部により導出される前記拡張ビット精度を用いて補正し、
補正された前記制御量で前記残差データの有効桁数を制御する
（６１）乃至（６６）のいずれかに記載の画像処理装置。
（６８）  前記拡張ビット精度導出部は、前記シーケンスレベルの前記ビット深度と、前記予測画像の前記ローカルレベルの前記ビット深度との差分を、前記拡張ビット精度として導出する
（６７）に記載の画像処理装置。
（６９）  外部パラメータに基づいて、前記シーケンスレベルの前記ビット深度を設定するシーケンスビット深度設定部をさらに備え、
前記拡張ビット精度導出部は、前記シーケンスビット深度設定部により設定された前記シーケンスレベルの前記ビット深度を用いて前記差分を導出する
（６８）に記載の画像処理装置。
（７０）  前記画像の予測を行い前記予測画像を生成する予測部をさらに備え、
前記拡張ビット精度導出部は、前記拡張ビット精度を、前記予測部により生成された前記予測画像の前記ローカルレベルの前記ビット深度に基づいて導出する
（６７）乃至（６９）のいずれかに記載の画像処理装置。
（７１）  前記予測部により生成された前記予測画像の画素値の前記ローカルレベルの最小値および最大値を探索する画素最小値最大値探索部をさらに備え、
前記拡張ビット精度導出部は、
前記画素最小値最大値探索部の探索により検出された前記最大値および前記最小値の差分を用いて前記予測画像の前記ローカルレベルの前記ビット深度を導出し、
前記拡張ビット精度を、導出した前記予測画像の前記ローカルレベルの前記ビット深度に基づいて導出する
（７０）に記載の画像処理装置。
（７２）  前記拡張ビット精度導出部は、CTBのサイズと前記CTBのサイズに対する分割深度の差分値とに基づいて定まるサイズの領域毎に、前記拡張ビット精度を導出する
（６７）乃至（７１）のいずれかに記載の画像処理装置。
（７３）  前記復号部は、前記ビットストリームを復号して、前記CTBのサイズに対する分割深度の差分値を抽出し、
前記拡張ビット精度導出部は、前記CTBのサイズと前記復号部により抽出された前記CTBのサイズに対する分割深度の差分値とに基づいて定まるサイズの領域毎に、前記拡張ビット精度を導出する
（７２）に記載の画像処理装置。
（７４）  前記復号部は、前記ビットストリームを復号して、前記予測画像の前記ローカルレベルの前記ビット深度に基づく有効桁数の拡張の適用が可能であるかを示す制御情報を抽出し、抽出した前記制御情報に従って、前記予測画像の前記ローカルレベルの前記ビット深度に基づく有効桁数の拡張の適用を制御する
（６１）乃至（７３）のいずれかに記載の画像処理装置。
（７５）  ビットストリームを復号し、
前記ビットストリームが復号されて得られる量子化係数を逆量子化するとともに、前記量子化係数が逆量子化されて得られる係数データの有効桁数を、予測画像または前記予測画像を生成する際に参照する復号画像のシーケンスレベルよりも小さいデータ単位であるローカルレベルの画素値の幅を示すビット深度に基づいて制御し、
前記量子化係数が逆量子化されて得られる前記係数データを逆直交変換するとともに、前記係数データが逆直交変換されて得られる残差データの有効桁数を、前記予測画像または前記復号画像の前記ローカルレベルの前記ビット深度に基づいて制御する
画像処理方法。
【符号の説明】
【０６７０】
１００  画像符号化装置，  １０１  制御部，  １１２  演算部，  １１３  直交変換部，  １１４  量子化部，  １１５  符号化部，  １１７  逆量子化部，  １１８  逆直交変換部,  １２２  予測部，  １３１  シーケンスビット深度設定部，  １３２  スライスビット深度設定部，  １３３  画素最小値最大値探索部，  １３４  dBD導出部，  １３５  deltaX導出部，  １４１  プライマリ変換部，  １５１  プライマリ水平変換部，  １５２  プライマリ垂直変換部，  １６１  パラメータ導出部，  １６２  行列演算部，  １６３  正規化部，  １６４  クリップ部，  １７１  パラメータ導出部，  １７２  行列演算部，  １７３  正規化部，  １７４  クリップ部，  １８１  パラメータ導出部，  １８２  量子化スケーリング部，  １８３  量子化正規化部，  １８４  クリップ部，  ２００  画像復号装置，  ２１２  復号部，  ２１３  逆量子化部，  ２１４  逆直交変換部，  ２１５  演算部，  ２１９  予測部，  ２３１  シーケンスビット深度導出部，  ２３２  スライスビット深度導出部，  ２３３  deltaX復号部，  ２３４  dBD導出部，  ２４１  パラメータ導出部，  ２４２  逆量子化スケーリング部，  ２４３  逆量子化正規化部，  ２４４  クリップ部，  ２５２  逆プライマリ変換部，  ２６１  逆プライマリ垂直変換部，  ２６２  逆プライマリ水平変換部，  ２７１  パラメータ導出部，  ２７２  行列演算部，  ２７３  正規化部，  ２７４  クリップ部，  ２８１  パラメータ導出部，  ２８２  行列演算部，  ２８３  正規化部，  ２８４  クリップ部，  ４３１  画素最小値最大値探索部
【図１】
2019159696.tif 000003
【図２】
2019159696.tif 000004
【図３】
2019159696.tif 000005
【図４】
2019159696.tif 000006
【図５】
2019159696.tif 000007
【図６】
2019159696.tif 000008
【図７】
2019159696.tif 000009
【図８】
2019159696.tif 000010
【図９】
2019159696.tif 000011
【図１０】
2019159696.tif 000012
【図１１】
2019159696.tif 000013
【図１２】
2019159696.tif 000014
【図１３】
2019159696.tif 000015
【図１４】
2019159696.tif 000016
【図１５】
2019159696.tif 000017
【図１６】
2019159696.tif 000018
【図１７】
2019159696.tif 000019
【図１８】
2019159696.tif 000020
【図１９】
2019159696.tif 000021
【図２０】
2019159696.tif 000022
【図２１】
2019159696.tif 000023
【図２２】
2019159696.tif 000024
【図２３】
2019159696.tif 000025
【図２４】
2019159696.tif 000026
【図２５】
2019159696.tif 000027
【図２６】
2019159696.tif 000028
【図２７】
2019159696.tif 000029
【図２８】
2019159696.tif 000030
【図２９】
2019159696.tif 000031
【図３０】
2019159696.tif 000032
【図３１】
2019159696.tif 000033
【図３２】
2019159696.tif 000034
【図３３】
2019159696.tif 000035
【図３４】
2019159696.tif 000036
【図３５】
2019159696.tif 000037
【図３６】
2019159696.tif 000038
【図３７】
2019159696.tif 000039
【図３８】
2019159696.tif 000040
【図３９】
2019159696.tif 000041
【図４０】
2019159696.tif 000042
【図４１】
2019159696.tif 000043
【図４２】
2019159696.tif 000044
【図４３】
2019159696.tif 000045
【図４４】
2019159696.tif 000046
【図４５】
2019159696.tif 000047
【図４６】
2019159696.tif 000048
【図４７】
2019159696.tif 000049
【図４８】
2019159696.tif 000050
【図４９】
2019159696.tif 000051
【図５０】
2019159696.tif 000052
【図５１】
2019159696.tif 000053
【図５２】
2019159696.tif 000054
【図５３】
2019159696.tif 000055
【図５４】
2019159696.tif 000056
【国際調査報告】
2019159696.tif 000057
2019159696.tif 000058
2019159696.tif 000059
2019159696.tif 000060