(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-16
(45)【発行日】2024-07-24
(54)【発明の名称】画像処理装置及び画像処理方法
(51)【国際特許分類】
H04N 19/126 20140101AFI20240717BHJP
H04N 19/136 20140101ALI20240717BHJP
H04N 19/176 20140101ALI20240717BHJP
H04N 19/70 20140101ALI20240717BHJP
【FI】
H04N19/126
H04N19/136
H04N19/176
H04N19/70
(21)【出願番号】P 2023127000
(22)【出願日】2023-08-03
(62)【分割の表示】P 2020509787の分割
【原出願日】2019-03-07
【審査請求日】2023-08-28
(31)【優先権主張番号】P 2018062704
(32)【優先日】2018-03-28
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】筑波 健史
【審査官】岩井 健二
(56)【参考文献】
【文献】特表2017-513342(JP,A)
【文献】特表2015-504289(JP,A)
【文献】特表2013-543317(JP,A)
【文献】国際公開第2018/008387(WO,A1)
【文献】国際公開第2016/044842(WO,A1)
【文献】国際公開第2012/160890(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
第1のサイズの
第1変換ブロックに対応する第1の量子化行列
の部分行列を参照して、高周波成分のゼロ化が適用される
第2変換ブロックの第2のサイズ
に基づいて前記第2変換ブロックに前記ゼロ化が適用されると判定することにより、前記第2のサイズの第2変換ブロックに対応する第2の量子化行列を
設定する
設定部と、
前記設定部により設定された前記第2の量子化行列を用いて、前記第
2変換ブロックの量子化変換係数を逆量子化する逆量子化部と、
を備え
る画像処理装置。
【請求項2】
前記設定部は、どのサイズの変換ブロックに前記ゼロ化が適用されるかを予め規定したルールに従って、前記第2のサイズの第2変換ブロックに前記ゼロ化が適用されることを判定する、
請求項1に記載の画像処理装置。
【請求項3】
前記部分行列のサイズの割合は、前記第2のサイズに対する非ゼロ部分の割合に等しい、
請求項1に記載の画像処理装置。
【請求項4】
前記設定部は、高周波成分のゼロ化が適用されない第3のサイズの変換ブロックに対応する第3量子化行列を、前記第1の量子化行列の全体を参照することにより設定する、
請求項1に記載の画像処理装置。
【請求項5】
画像処理装置により実行される
、
第1のサイズの
第1変換ブロックに対応する第1の量子化行列
の部分行列を参照して、高周波成分のゼロ化が適用される
第2変換ブロックの第2のサイズ
に基づいて前記第2変換ブロックに前記ゼロ化が適用されると判定することにより、前記第2のサイズの第2変換ブロック
に対応する第2の量子化行列を
設定することと、
前記設定することにより設定された前記第2の量子化行列を用いて、前記第
2変換ブロックの量子化変換係数を逆量子化することと、
を含
む画像処理方法。
【請求項6】
第1のサイズの第1変換ブロックに対応する第1の量子化行列の部分行列を参照して、高周波成分のゼロ化が適用される
第2変換ブロックの第2のサイズ
に基づいて前記第2変換ブロックに前記ゼロ化が適用されると判定することにより、前記第2のサイズの第2変換ブロックに対応する第2の量子化行列を
設定する
設定部と、
前記設定部により設定された前記第2の量子化行列を用いて
、前記第2変換ブロックの変換係数を量子
化する量子化部と
、
を備え
る画像処理装置。
【請求項7】
画像処理装置により実行される
、
第1のサイズの第1変換ブロックに対応する第1の量子化行列の部分行列を参照して、高周波成分のゼロ化が適用される
第2変換ブロックの第2のサイズ
に基づいて前記第2変換ブロックに前記ゼロ化が適用されると判定することにより、前記第2のサイズの第2変換ブロックに対応する第2の量子化行列を
設定することと、
前記設定することにより設定された前記第2の量子化行列を用いて
、前記第2変換ブロックの変換係数を量子
化することと
、
を含
む画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置及び画像処理方法に関する。
【背景技術】
【0002】
従来、デジタル画像を効率的に伝送し、蓄積し又は記録するために、H.264/AVC、又はH.264/AVCと比較して約2倍の符号化(圧縮)効率を達成すると言われるH.265/HEVCといった、多くの映像符号化方式が標準化されてきた。ITU-TとISO/IECとの共同の標準化団体であるJVET(Joint Video Experts Team)は、H.265/HEVCよりも符号化効率を一層向上させることを目的として、次世代の映像符号化方式であるFVC(Future Video Coding)の標準化のための検討を開始している。HEVCのモデルに基づいて開発中のFVCの参照ソフトウェアをJEM(Joint Exploration Model)といい、JEMに取り入れられる様々な技術要素が非特許文献1において説明されている。
【0003】
既存の映像符号化方式は、予測(イントラ/インター予測)、直交変換、量子化及びエントロピー符号化といった様々な技法を使用する。なかでも、量子化処理において、直交変換後の周波数領域で変換係数の高周波成分を低周波成分よりも粗く量子化することにより、主観的な画質の劣化を抑制しつつ所望のデータレートを達成することができる。H.265/HEVC(以下、単にHEVCという)によれば、直交変換及び量子化は、TU(Transform Unit)と呼ばれるブロックごとに実行される。TUサイズの候補は、4×4、8×8、16×16又は32×32であり、いくつかのTUサイズに対応する量子化行列をエンコーダからデコーダへシグナリングすることができる。量子化行列は、各ブロックの変換係数の周波数成分別の量子化ステップを左右する。FVCでは、TUの最大サイズは128×128へ拡張され、正方形ではないTUもまた許容される。
【0004】
TUサイズが多様であるほど、使用される量子化行列もまた多様になるが、それら量子化行列の全てをシグナリングすると、符号化ビットストリーム内のオーバヘッドが増大し、符号化効率が低下する。そこで、特許文献1及び特許文献2は、使用される量子化行列の全てではなく一部のみをシグナリングし、シグナリングされた量子化行列から残りの量子化行列を生成することにより、オーバヘッドの増大を回避する技法を提案している。
【先行技術文献】
【非特許文献】
【0005】
【文献】J. Chen, E. Alshina, G. J. Sullivan, J. R. Ohm and J. Boyce,“Algorithm Description of Joint Exploration Test Model (JEM7)”, JVET-G1001, 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
【特許文献】
【0006】
【文献】国際公開第2012/077408号
【文献】国際公開第2012/160890号
【発明の概要】
【発明が解決しようとする課題】
【0007】
量子化行列のシグナリングに起因する符号化効率の低下と、ある量子化行列から他の量子化行列を生成することのデバイスの性能への影響とは、トレードオフの関係にある。特に、FVCのようにブロックサイズ及び形状の組み合わせが高度に多様化する場合、符号化効率のみならず、量子化行列を生成するために要する処理コスト(例えば、ハードウェアリソースの占有、処理遅延又は増加した電力消費など)もまた無視することができない。
【0008】
従って、量子化行列を効率的に生成し又はシグナリングするための改善された仕組みが提供されることが望ましい。
【課題を解決するための手段】
【0009】
本開示によれば、第1のサイズの第1変換ブロックに対応する第1の量子化行列の部分行列を参照して、高周波成分のゼロ化が適用される第2変換ブロックの第2のサイズに基づいて前記第2変換ブロックに前記ゼロ化が適用されると判定することにより、前記第2のサイズの第2変換ブロックに対応する第2の量子化行列を設定する設定部と、前記設定部により設定された前記第2の量子化行列を用いて、前記第2変換ブロックの量子化変換係数を逆量子化する逆量子化部と、を備える画像処理装置が提供される。
【0010】
また、本開示によれば、画像処理装置により実行される、第1のサイズの第1変換ブロックに対応する第1の量子化行列の部分行列を参照して、高周波成分のゼロ化が適用される第2変換ブロックの第2のサイズに基づいて前記第2変換ブロックに前記ゼロ化が適用されると判定することにより、前記第2のサイズの第2変換ブロックに対応する第2の量子化行列を設定することと、前記設定することにより設定された前記第2の量子化行列を用いて、前記第2変換ブロックの量子化変換係数を逆量子化することと、を含む画像処理方法が提供される。
【0011】
また、本開示によれば、第1のサイズの第1変換ブロックに対応する第1の量子化行列の部分行列を参照して、高周波成分のゼロ化が適用される第2変換ブロックの第2のサイズに基づいて前記第2変換ブロックに前記ゼロ化が適用されると判定することにより、前記第2のサイズの第2変換ブロックに対応する第2の量子化行列を設定する設定部と、前記設定部により設定された前記第2の量子化行列を用いて、前記第2変換ブロックの変換係数を量子化する量子化部と、を備える画像処理装置が提供される。
【0012】
また、本開示によれば、画像処理装置により実行される、第1のサイズの第1変換ブロックに対応する第1の量子化行列の部分行列を参照して、高周波成分のゼロ化が適用される第2変換ブロックの第2のサイズに基づいて前記第2変換ブロックに前記ゼロ化が適用されると判定することにより、前記第2のサイズの第2変換ブロックに対応する第2の量子化行列を設定することと、前記設定することにより設定された前記第2の量子化行列を用いて、前記第2変換ブロックの変換係数を量子化することと、を含む画像処理方法が提供される。
【発明の効果】
【0013】
本開示に係る技術によれば、量子化行列を効率的に生成し又はシグナリングすることができる。
なお、上記の効果は必ずしも限定的なものではなく、上記の効果と共に、又は上記の効果に代えて、本明細書に示されたいずれかの効果、又は本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【0014】
【
図1】HEVCにおいて利用可能な量子化行列の種類について説明するための説明図である。
【
図2】FVCにおけるQTBTブロック分割の一例を示す説明図である。
【
図3A】FVCにおける正方形の変換ブロックの変換係数のゼロ化について説明するための説明図である。
【
図3B】FVCにおける非正方形の変換ブロックの変換係数のゼロ化について説明するための説明図である。
【
図4】本開示に係る技術のデコーダ側での基本的な実装の一例について説明するための説明図である。
【
図5】ゼロ化が適用されない変換ブロックのための量子化行列の生成について説明するための説明図である。
【
図6A】ゼロ化が適用される変換ブロックのための量子化行列の生成について説明するための第1の説明図である。
【
図6B】ゼロ化が適用される変換ブロックのための量子化行列の生成について説明するための第2の説明図である。
【
図6C】ゼロ化が適用される変換ブロックのための量子化行列の生成について説明するための第3の説明図である。
【
図7】本開示に係る技術のエンコーダ側での基本的な実装の一例について説明するための説明図である。
【
図8】第1の実施形態に係るエンコーダの構成の一例を示すブロック図である。
【
図9】
図8に示したエンコーダにおいて実行される量子化関連処理の流れの一例を示すフローチャートである。
【
図10】量子化行列生成処理の流れの一例を示すフローチャートである。
【
図11】スケーリングリスト符号化処理の流れの一例を示すフローチャートである。
【
図12】第1の実施形態に係るデコーダの構成の一例を示すブロック図である。
【
図13】
図12に示したデコーダにおいて実行される逆量子化関連処理の流れの一例を示すフローチャートである。
【
図14】スケーリングリストデータ復号処理の流れの一例を示すフローチャートである。
【
図15】第2の実施形態に係るエンコーダの構成の一例を示すブロック図である。
【
図16】
図15に示したエンコーダにおいて実行される量子化関連処理の流れの一例を示すフローチャートである。
【
図17】第2の実施形態に係るデコーダの構成の一例を示すブロック図である。
【
図18】
図17に示したデコーダにおいて実行される逆量子化関連処理の流れの一例を示すフローチャートである。
【
図19】ハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0015】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0016】
本開示のスコープは、以下の詳細な説明の内容には限定されず、出願当時において公知である次の参照文献REF1~REF3の内容もまた、参照によりここに組み込まれる。即ち、これら参照文献の内容もまた、サポート要件の充足性を判断する際の根拠となる。例えば、参照文献REF2に記載されている四分木(Quad-Tree)ブロック構造、及び参照文献REF3に記載されているQTBT(Quad Tree Plus Binary Tree)ブロック構造は、別段の明示的な説明の無い限り、本開示のスコープに包含される。同様に、例えばパース(Parsing)、シンタックス(Syntax)及びセマンティクス(Semantics)といった技術用語もまた、以下の詳細な説明において直接的に言及されているかに関わらず、本開示のスコープに包含され、特許請求の範囲に記載され得るそれら用語についてサポート要件は充足される。
・REF1:Recommendation ITU-T H.264 (04/2017) “Advanced video coding for generic audiovisual services”, April 2017
・REF2:Recommendation ITU-T H.265 (12/2016) “High efficiency video coding”, December 2016
・REF3:J. Chen, E. Alshina, G. J. Sullivan, J. R. Ohm and J. Boyce,“Algorithm Description of Joint Exploration Test Model (JEM7)”, JVET-G1001, 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
【0017】
これ以降、次の順序で説明を行う。
1.概要
1-1.用語の定義
1-2.既存の技術と問題点
1-3.本開示に係る技術の原理
1-4.ゼロ化の制御
1-5.基本量子化行列のサイズの制御
2.第1の実施形態
2-1.エンコーダの構成
2-2.シンタックス及びセマンティクスの例
2-3.参照量子化行列の選択
2-4.リサンプリング手法
2-5.符号化時の量子化関連処理の流れ
2-6.デコーダの構成
2-7.復号時の逆量子化関連処理の流れ
3.第2の実施形態
3-1.エンコーダの構成
3-2.符号化時の量子化関連処理の流れ
3-3.デコーダの構成
3-4.復号時の逆量子化関連処理の流れ
4.ハードウェア構成例
5.まとめ
【0018】
<1.概要>
[1-1.用語の定義]
本明細書において使用されるいくつかの用語の定義は、次の通りである:
・変換ブロックとは、画像内に設定される、直交変換及び逆直交変換の処理単位として扱われるブロックをいう。変換ブロックは、M×Nのサイズを有し、Mは水平方向の成分の数、Nは垂直方向の成分の数である(M、Nは2以上の整数)。M=Nの場合には変換ブロックは正方形であり、M≠Nの場合には変換ブロックは非正方形である。
・変換係数とは、空間領域の信号サンプルを周波数領域へ変換することにより導出される、周波数成分ごとの係数をいう。空間領域と周波数領域との間の変換は、例えば離散コサイン変換(DCT)又は離散サイン変換(DST)といった直交変換(又はその逆変換)であり得る。通常、2次元のM×Nの変換ブロックの信号サンプルを直交変換すると、同じサイズ、即ちM×Nの変換係数の2次元配列が導出される。典型的には、導出される2次元配列の最も左上の成分は直流(DC)成分であり、左上からより遠い位置の成分ほどより高い周波数に対応する。
・量子化行列とは、周波数領域において変換係数の2次元配列を成分ごとに異なる量子化ステップで量子化する際に利用される、量子化ステップを表現する行列である。量子化行列の要素は、必ずしもそれ自体が量子化ステップではなくてもよく、例えば量子化ステップを導出するための関係式へ入力されるパラメータであってもよい。
・スケーリングリストとは、何らかのスキャン順で量子化行列の要素を1次元化することにより導出される、一連の値のリストをいう。即ち、スケーリングリストは、量子化行列を表現する情報の一種である。通常、2次元の量子化行列を符号化ストリームにおいて明示的にシグナリングしようとする場合、2次元の量子化行列は、スケーリングリストへ変換された後に符号化される。
【0019】
[1-2.既存の技術と問題点]
(1)HEVCにおける量子化行列のシグナリング
HEVCでは、符号化処理の処理単位となるCU(Coding Unit)が画像内に四分木(Quad-Tree)状に設定される。そして、予測タイプとしてインター予測が選択されるCUについては直接的にCUを分割することにより1つ以上のTUが設定され、イントラ予測が選択されるCUについてはCU内の各PU(Prediction Unit)を分割することにより1つ以上のTUが設定される。HEVCにおいては、このTU(Transform Unit)が変換ブロックに相当し得る。TUの最小サイズは4×4であり、最大サイズは32×32である。エンコーダにおける直交変換及び量子化、並びにデコーダにおける逆量子化及び逆直交変換は、こうしたTUを処理単位として実行される。HEVCでは、量子化ステップは変換ブロック内で均一であってもよく、又は、変換ブロック内の位置ごとに(即ち、変換係数の周波数成分ごとに)相違してもよい。例えば、符号化ストリームのビットレートが同一であるとすると、変換係数の高周波成分を低周波成分よりも粗く量子化することにより、主観的な画質の劣化を相対的に抑制することができる。
【0020】
変換ブロック内の位置ごとに異なる量子化ステップは、変換ブロックと同一のサイズの量子化行列の要素により表現される。HEVCでは、4×4、8×8及び16×16というTUサイズ候補の各々について、予測タイプ(イントラ又はインター)と色成分(Y、Cb又はCr)との組み合わせごとに異なる、計6(=2×3)種類の量子化行列を使用することができる。32×32のTUサイズについては、予測タイプ(イントラ又はインター)ごとに異なる、計2種類の量子化行列を使用することができる。量子化行列のサイズはサイズIDにより識別され、予測タイプと色成分との組み合わせはマトリクスIDにより識別される。HEVCにおいて利用可能な量子化行列の種類が
図1に概略的に示されている。
【0021】
さらに、HEVCでは、次の3種類の既定の量子化行列が定義されている:
・予測タイプ及び色成分に依存しない、4×4のフラットな既定の量子化行列
・色成分に依存しない、イントラ予測用の8×8の非フラットな既定の量子化行列
・色成分に依存しない、インター予測用の8×8の非フラットな既定の量子化行列
16×16の既定の量子化行列は、8×8の既定の量子化行列の要素を最近傍(Nearest Neighbor)法でアップサンプリングすることにより生成される。32×32の既定の量子化行列は、16×16の既定の量子化行列の要素を同様にアップサンプリングすることにより生成される。そして、HEVCでは、既定の量子化行列とは異なる量子化行列を使用することが望まれる場合に、ユーザにより定義される固有の量子化行列を明示的にシグナリングすることが可能である。但し、4×4及び8×8の量子化行列は、それらの全ての要素をスキャンすることにより全体としてシグナリングされ得る一方、16×16及び32×32の量子化行列のシグナリングは、8×8の量子化行列のシグナリングとアップサンプリングとにより実現される。なお、16×16及び32×32の固有の量子化行列の直流成分向けの要素の値は、別途シグナリングされ得る。
【0022】
量子化行列を明示的にシグナリングする際には、上述したように、2次元の量子化行列の要素があるスキャン順に従って1次元の配列であるスケーリングリストへマッピングされ、スケーリングリストの各要素が直前の要素からの差分値として符号化される。HEVCにおいてこのように生成されるスケーリングリストを指し示すスケーリングリストデータのシンタックスが、参照文献REF2の第7.3.4節に記述されている。
【0023】
(2)FVCにおけるQTBTブロック構造
FVCでは、画像内にQTBT状にCUが設定され、TUはCUと共通化される。より具体的には、画像内に格子状に配置されるCTU(Coding Tree Unit)の各々が、まず、四分木(Quad-Tree)状に分割され、必要に応じて、様々なサイズの正方形の四分木リーフが形成される。そして、各四分木リーフがさらに必要に応じて水平又は垂直のいずれかの境界で二分木(Binary-Tree)状に分割される。
図2に、FVCにおけるQTBTブロック分割の一例が示されている。
図2に示した画像Im0は、各々128×128のサイズを有する4つのCTUを含む。左上のCTUは、4回の再帰的なQT分割によって形成された13個のCUを含み、それらのうち最も小さいCUのサイズは8×8、最も大きいCUのサイズは64×64である。左下のCTUは、4回の再帰的なBT分割によって形成された5つのCUを含む。右上のCTUは、複数回の再帰的なQT分割及びBT分割によって形成された9つのCUを含む。右下のCTUは分割されておらず、1つのCUを含む。
図2の例では最も小さいCUのサイズは8×8であるものの、一辺の長さが2又は4である正方形又は非正方形のCUもまた許容される。FVCでは、これらCUのそれぞれが変換ブロックとしての役割をも有する。
【0024】
(3)FVCにおける高周波成分のゼロ化
上の説明から理解されるように、HEVCにおいて許容される変換ブロックサイズ(即ち、TUサイズ)の上限は32×32であったのに対し、FVCにおいて許容される変換ブロックサイズの上限は128×128まで引き上げられる。こうした大型の変換ブロックは、例えば、いわゆる4Kと呼ばれる高解像度映像を効率的に符号化する際に利用され得る。但し、実際には、32×32を上回るサイズで直交変換を実行することにより得られる変換係数の高周波成分は、そのデータサイズに比して主観的な画質にあまり寄与しない。そこで、FVCでは、一辺の長さが32を上回る変換ブロックにおいて、32番目以降の高域側の周波数成分をゼロ化(zeroing)する手法が採用される。
図3A及び
図3Bは、FVCにおけるこうしたゼロ化のいくつかの例を概略的に示している。
【0025】
図3Aには、3つの正方形の変換ブロックB01、B02及びB03が示されている。変換ブロックB01のサイズは32×32であり、変換ブロックB01にゼロ化は適用されない。変換ブロックB02のサイズは64×64であり、変換ブロックB02の左上の32×32の変換係数以外の変換係数はゼロ化される。変換ブロックB03のサイズは128×128であり、変換ブロックB03の左上の32×32の変換係数以外の変換係数はゼロ化される。
図3Bには、32×32の正方形の変換ブロックに加えて、9つの様々なサイズの非正方形の変換ブロックが示されている。
図3Bから理解されるように、FVCでは、64以上の長さを有する辺において、低域側の32個までの周波数成分が維持され、残りの(高域側の)周波数成分はゼロ化される。
【0026】
(4)問題点の説明
上述したように、HEVCでは、量子化行列のシグナリングに起因する符号化効率の低下を回避するために、16×16及び32×32の量子化行列のシグナリングは、8×8の量子化行列のシグナリングとアップサンプリングとにより実現される。しかしながら、量子化行列のシグナリングに起因する符号化効率の低下と、ある量子化行列から他の量子化行列を(例えばアップサンプリングを通じて)生成することのデバイスの性能への影響とは、トレードオフの関係にある。特に、FVCのようにブロックサイズ及び形状の組み合わせが高度に多様化する場合、それら組み合わせの多くに対応する量子化行列を他の量子化行列から単純に生成しようとすると、その生成処理に要する処理コスト(例えば、ハードウェアリソースの占有、処理遅延又は増加した電力消費など)が顕著となり、エンコーダ又はデコーダといったデバイスの性能を劣化させかねない。
【0027】
[1-3.本開示に係る技術の原理]
前項で説明した既存の技術の問題点を解決し又は少なくとも軽減するために、本開示に係る技術は、量子化行列を効率的に生成し又はシグナリングするための改善された仕組みを提供する。
【0028】
(1)デコーダ側での実装例
図4は、本開示に係る技術のデコーダ側での基本的な実装の一例について説明するための説明図である。
図4を参照すると、デコーダにおいて実行され得る逆量子化に関連する処理ステップS11~S16が示されている。
【0029】
・ステップS11:符号化ストリームを復号して、逆量子化及び逆直交変換の動作を左右するいくつかの制御データをパースし、及び量子化変換係数を生成。制御パラメータは、例えば、ブロック分割を定義するブロック分割データ、及び1つ以上のサイズの量子化行列を定義するスケーリングリスト(SL)データを含む。
【0030】
・ステップS12:ブロック分割データに基づいて、画像内にQTBT状に複数の変換ブロックを設定。ブロック分割データは、例えば、各CTUの再帰的なQT分割又はBT分割を指し示すパラメータの集合を含む。ここで設定される変換ブロックは、様々な形状及びサイズを有し得る。
【0031】
・ステップS13:スケーリングリストデータを復号して、1つ以上のサイズの量子化行列を表現するスケーリングリストを生成し、生成したスケーリングリストをそれぞれの量子化行列へ変換。各サイズについて、予測タイプ及び色成分の組み合わせが互いに異なる複数の種類の量子化行列が生成され得る。本明細書では、このようにスケーリングリストデータに基づいて生成される量子化行列(即ち、明示的にシグナリングされる量子化行列)を基本量子化行列(基本QM)という。ステップS13において生成される基本量子化行列は、QMメモリM11内に記憶される。
【0032】
・ステップS14:基本量子化行列以外の1つ以上のサイズの量子化行列の各々を、いずれかの生成済みの量子化行列を参照することにより生成。本明細書では、このようにサイズの異なる他の量子化行列を参照することにより追加的に生成される量子化行列を追加量子化行列(追加QM)という。また、追加量子化行列の生成の際に参照される量子化行列を、参照量子化行列(参照QM)という。典型的には、追加量子化行列は、参照量子化行列をリサンプリングすることにより生成され得る。追加量子化行列の一辺のサイズが参照量子化行列の対応する辺のサイズよりも大きい場合には、その辺に沿った方向においてアップサンプリングが行われる。また、追加量子化行列の一辺のサイズが参照量子化行列の対応する辺のサイズよりも小さい場合には、その辺に沿った方向においてダウンサンプリングが行われる。参照メモリM12は、これらアップサンプリング及びダウンサンプリングにおいて参照される参照量子化行列を少なくとも部分的に記憶する。
【0033】
上述したように、FVCでは、一辺の長さがある閾値を上回るサイズを有する変換ブロックの高周波成分が強制的にゼロ化される。量子化行列のサイズがこうしたゼロ化が適用されるブロックサイズに等しい場合、必ずゼロとなる変換係数に対応する量子化行列の要素を計算することは不必要なはずである。また、それら要素の計算のために多くのメモリリソースが割り当てられるとすれば、それはリソースの無駄である。そこで、本開示に係る技術では、ゼロ化が適用されるサイズの追加量子化行列を生成する際に、参照量子化行列の全体ではなく非ゼロの係数の量子化に実質的に寄与する範囲の部分行列のみを参照する手法が取り入れられる。これは、ゼロ化される係数に対応する位置の要素を計算するための演算がスキップされること、及び、参照メモリM12が上記部分行列の範囲外の参照量子化行列の要素を保持しなくてよいことを意味する。ステップS14において生成される追加量子化行列は、QMメモリM11内に記憶される。
【0034】
・ステップS15:ステップS12において設定された複数の変換ブロックの各々について、量子化変換係数を逆量子化して、変換係数を復元。このステップS15において使用される量子化行列は、QMメモリM11により記憶される複数の量子化行列のうち、対象変換ブロックの予測タイプと色成分との組み合わせに対応する、対象変換ブロックと同じサイズの量子化行列である。ゼロ化が適用される変換ブロックについては、変換係数のいくつかの周波数成分はゼロ化されており、それら周波数成分について逆量子化処理はスキップされてよい。
【0035】
ある実施形態において、上述したステップS14はステップS15に包含され、個々の変換ブロックにおいて必要とされる量子化行列が(未生成である場合に)逆量子化処理の時点でいわゆる「オンザフライ」で生成されてもよい。他の実施形態において、上述したステップS14は複数の変換ブロックにわたる処理に先立って実行され、全てのサイズ候補の量子化行列が事前にQMメモリM11内に記憶されてもよい。
【0036】
・ステップS16:ステップS12において設定された複数の変換ブロックの各々について、周波数領域の変換係数を逆直交変換して、空間領域の予測誤差を復元。ここで復元される予測誤差は、さらなる処理(図示せず)において、画像を再構築するために予測画像と合成され得る。
【0037】
(2)様々なリサンプリング
図4のステップS14における参照量子化行列から追加量子化行列を生成する処理は、典型的には、量子化行列の水平方向の要素のダウンサンプリング又はアップサンプリングと、垂直方向の要素のダウンサンプリング又はアップサンプリングとの組み合わせである。アップサンプリングは、例えば、最近傍(Nearest Neighbor)法、バイリニア法又はバイキュービック法といった補間法で行列の要素を補間することを含む。ダウンサンプリングは、例えば、行列の要素を間引くことを含む。
【0038】
図5は、ゼロ化が適用されない変換ブロックのための量子化行列の生成について説明するための説明図である。
図5の左上には、参照量子化行列B10が示されている。ここでは、説明の簡明さのために、参照量子化行列B10の形状は正方形であるものとし、参照量子化行列B10のサイズはN
1×N
1である。また、サイズN
1×N
1の変換ブロックには高周波成分のゼロ化が適用されないものとする。
【0039】
図5の下に示した量子化行列B11、B12、B13及びB14は、生成すべき追加量子化行列である。追加量子化行列B11の水平方向のサイズはN
1よりも小さく、垂直方向のサイズもまたN
1よりも小さい。追加量子化行列B11は、高周波成分のゼロ化が適用されない変換ブロックに対応する。そのため、追加量子化行列B11は、参照量子化行列B10の全体を、水平方向及び垂直方向の双方でダウンサンプリングすることにより生成される。追加量子化行列B12の水平方向のサイズはN
1よりも小さく、垂直方向のサイズはN
1よりも大きい。追加量子化行列B12は、高周波成分のゼロ化が適用されない変換ブロックに対応する。そのため、追加量子化行列B12は、参照量子化行列B10の全体を、水平方向でダウンサンプリングし及び垂直方向でアップサンプリングすることにより生成される。追加量子化行列B13の水平方向のサイズはN
1よりも大きく、垂直方向のサイズはN
1よりも小さい。追加量子化行列B13は、高周波成分のゼロ化が適用されない変換ブロックに対応する。そのため、追加量子化行列B13は、参照量子化行列B10の全体を、水平方向でアップサンプリングし及び垂直方向でダウンサンプリングすることにより生成される。追加量子化行列B14の水平方向のサイズはN
1よりも大きく、垂直方向のサイズもまたN
1よりも大きい。追加量子化行列B14は、高周波成分のゼロ化が適用されない変換ブロックに対応する。そのため、追加量子化行列B14は、参照量子化行列B10の全体を、水平方向及び垂直方向の双方でアップサンプリングすることにより生成される。なお、
図5では、水平方向のリサンプリング(ダウンサンプリング又はアップサンプリング)と垂直方向のリサンプリングとが別個の演算として描かれているが、これらリサンプリングは1回の演算として統合的に実行されてもよい。
【0040】
図6A~
図6Cは、ゼロ化が適用される変換ブロックのための量子化行列の生成について説明するための説明図である。上述したように、ゼロ化が適用される変換ブロックのための追加量子化行列の生成は、参照量子化行列の部分行列のみを参照することにより行われる。
図5の例と同様に、ここでも、説明の簡明さのために、サイズN
1×N
1の正方形の量子化行列B10が参照量子化行列として選択されるものとする。
【0041】
図6Aの下に示した量子化行列B21及びB22は、生成すべき追加量子化行列である。追加量子化行列B21の水平方向のサイズは、高周波成分のゼロ化が適用されないサイズの上限N
THよりも大きく、一方で垂直方向のサイズはN
1よりも小さい。追加量子化行列B21は、高周波成分のゼロ化が適用される変換ブロックに対応する。そのため、追加量子化行列B21は、参照量子化行列B10の部分行列を、水平方向でアップサンプリングし及び垂直方向でダウンサンプリングすることにより生成される。水平方向において、参照量子化行列B10のサイズN
1に対する部分行列のサイズN
PARの割合は、追加量子化行列B21のサイズN
2に対する非ゼロ部分のサイズN
THの割合に等しい。追加量子化行列B22の水平方向のサイズもまた、高周波成分のゼロ化が適用されないサイズの上限N
THよりも大きく、一方で垂直方向のサイズは、N
1よりも大きいがN
THよりは小さい。追加量子化行列B22は、高周波成分のゼロ化が適用される変換ブロックに対応する。そのため、追加量子化行列B22は、参照量子化行列B10の部分行列を、水平方向及び垂直方向の双方でアップサンプリングすることにより生成される。
【0042】
図6Bの下に示した量子化行列B31及びB32は、生成すべき追加量子化行列である。追加量子化行列B31の水平方向のサイズはN
1よりも小さく、一方で垂直方向のサイズは高周波成分のゼロ化が適用されないサイズの上限N
THよりも大きい。追加量子化行列B31は、高周波成分のゼロ化が適用される変換ブロックに対応する。そのため、追加量子化行列B31は、参照量子化行列B10の部分行列を、水平方向でダウンサンプリングし及び垂直方向でアップサンプリングすることにより生成される。垂直方向において、参照量子化行列B10のサイズN
1に対する部分行列のサイズN
PARの割合は、追加量子化行列B31のサイズN
2に対する非ゼロ部分のサイズN
THの割合に等しい。追加量子化行列B32の水平方向のサイズは、N
1よりも大きいがN
THよりは小さく、一方で垂直方向のサイズは、高周波成分のゼロ化が適用されないサイズの上限N
THよりも大きい。追加量子化行列B32は、高周波成分のゼロ化が適用される変換ブロックに対応する。そのため、追加量子化行列B32は、参照量子化行列B10の部分行列を、水平方向及び垂直方向の双方でアップサンプリングすることにより生成される。
【0043】
図6Cの下に示した量子化行列B41は、生成すべき追加量子化行列である。追加量子化行列B41の水平方向のサイズは高周波成分のゼロ化が適用されないサイズの上限N
THよりも大きく、垂直方向のサイズもまたN
THよりも大きい。追加量子化行列B41は、高周波成分のゼロ化が適用される変換ブロックに対応する。そのため、追加量子化行列B41は、参照量子化行列B10の部分行列を、水平方向及び垂直方向の双方でアップサンプリングすることにより生成される。水平方向において、参照量子化行列B10のサイズN
1に対する部分行列のサイズN
PAR_Hの割合は、追加量子化行列B41のサイズN
2_Hに対する非ゼロ部分のサイズN
THの割合に等しい。垂直方向において、参照量子化行列B10のサイズN
1に対する部分行列のサイズN
PAR_Vの割合は、追加量子化行列B41のサイズN
2_Vに対する非ゼロ部分のサイズN
THの割合に等しい。
【0044】
図6A~
図6Cの例のように、明示的にシグナリングされない量子化行列を追加的に生成する際に、参照量子化行列の全体ではなく部分行列のみを参照することで、行列要素のリサンプリングのための演算のコストを低減し、及びメモリリソースの浪費を回避することができる。
【0045】
(3)エンコーダ側での実装例
図7は、本開示に係る技術のエンコーダ側での基本的な実装の一例について説明するための説明図である。
図7を参照すると、エンコーダにおいて実行され得る量子化に関連する処理ステップS21~S27が示されている。
【0046】
・ステップS21:画像内にQTBT状に複数の変換ブロックを設定。ブロック構造は、例えば、事前の画像の解析又は最適なブロック構造の探索の結果として決定され得る。さらに、ここで設定されるブロック構造を表現するパラメータ(例えば、各CTUの再帰的なQT分割又はBT分割を指し示すパラメータ)の集合が、ブロック分割データとして生成される。
【0047】
・ステップS22:1つ以上のサイズの、ユーザにより定義される(即ち、既定の量子化行列ではない)基本量子化行列を設定。各サイズについて、予測タイプ及び色成分の組み合わせが互いに異なる複数の種類の量子化行列が設定され得る。ある種類の量子化行列が他の種類の量子化行列と同一であってもよい。ステップS22において設定される基本量子化行列は、QMメモリM21内に記憶される。
【0048】
・ステップS23:基本量子化行列以外の1つ以上のサイズの量子化行列(追加量子化行列)の各々を、いずれかの基本量子化行列を参照することにより生成。追加量子化行列は、
図5~
図6Cに関連して説明したように参照量子化行列をリサンプリングすることにより生成され得る。参照メモリM22は、追加量子化行列を生成する際に参照される参照量子化行列を少なくとも部分的に記憶する。上で説明したデコーダの実装と同様に、エンコーダの実装においても、ゼロ化が適用されるサイズの追加量子化行列を生成する際には、参照量子化行列の全体ではなく、非ゼロの係数の量子化に実質的に寄与する範囲の部分行列のみが参照され得る。
【0049】
・ステップS24:ステップS21において設定された複数の変換ブロックの各々について、空間領域の予測誤差を直交変換して、周波数領域の変換係数を生成。
【0050】
・ステップS25:ステップS21において設定された複数の変換ブロックの各々について、変換係数を量子化して、量子化変換係数を生成。このステップS25において使用される量子化行列は、QMメモリM21により記憶される複数の量子化行列のうち、対象変換ブロックの予測タイプと色成分との組み合わせに対応する、対象変換ブロックと同じサイズの量子化行列である。ゼロ化が適用される変換ブロックについては、変換係数のいくつかの周波数成分はゼロ化されており、それら周波数成分について量子化処理はスキップされてよい。
【0051】
ある実施形態において、上述したステップS23はステップS25に包含され、個々の変換ブロックにおいて必要とされる量子化行列が(未生成である場合に)量子化処理の時点でいわゆる「オンザフライ」で生成されてもよい。他の実施形態において、上述したステップS23は複数の変換ブロックにわたる処理に先立って実行され、全てのサイズ候補の量子化行列が事前にQMメモリM21内に記憶されてもよい。
【0052】
なお、後に説明するように、エンコーダは通常ローカルデコーダを包含し、そのローカルデコーダにおいて逆量子化が実行される。
図7はローカルデコーダにおける逆量子化を示していないものの、この逆量子化においてもステップS25において使用されるものと同じ量子化行列が使用されてよい。
【0053】
・ステップS26:ステップS22において設定された1つ以上のサイズの基本量子化行列をスケーリングリストへ変換し、さらにそれぞれのスケーリングリストを符号化してスケーリングリストデータを生成。
【0054】
・ステップS27:ブロック分割データ及びスケーリングリストデータを含む制御パラメータと量子化変換係数とを符号化して、符号化ストリームを生成。
【0055】
[1-4.ゼロ化の制御]
前項では、少なくとも一方の辺のサイズが上限NTHよりも大きい変換ブロックに高周波成分のゼロ化が適用される例を主に説明した。参照文献REF3によれば、FVCにおけるこの上限NTHは、仕様上の静的な定義として、32に等しい。この場合、どの変換ブロックにゼロ化が適用されるかを指し示す制御パラメータを符号化することは必要とされない。しかしながら、より柔軟なゼロ化の制御を実現するために、例えば次のような制御パラメータが追加的に符号化されてもよい:
【0056】
・ゼロ化フラグ:本フラグが真(True)である場合には、本フラグに関連付けられる変換ブロックに高周波成分のゼロ化が適用される、偽(False)である場合には、本フラグに関連付けられる変換ブロックに高周波成分のゼロ化は適用されない。
【0057】
・ゼロ化サイズ情報:どのサイズの変換ブロックに高周波成分のゼロ化が適用されるかを指し示す。ゼロ化サイズ情報は、例えば、ゼロ化が適用されない(又は適用される)サイズの上限及び下限のうちの少なくとも一方に相当する境界値(閾値)を含んでもよい。その代わりに、ゼロ化サイズ情報は、ゼロ化が適用されない(又は適用される)サイズを識別するインデックスを含んでもよい。ゼロ化サイズ情報は、ゼロ化フラグの有無に関わらず符号化されてもよく、又はゼロ化フラグが真である場合にのみ符号化されてもよい。
【0058】
上述したゼロ化制御用の制御パラメータは、例えば、シーケンス、ピクチャ、スライス、タイル、CTU又は変換ブロックごとに符号化されてよい。このようにゼロ化のオン/オフ又はゼロ化の対象サイズを動的に制御することで、ユーザのニーズ又はシステムの要件若しくは制約に応じて、微細な高周波成分をも表現する画像の柔軟な再生を可能とすることができる。
【0059】
[1-5.基本量子化行列のサイズの制御]
上述したように、HEVCでは、16×16及び32×32の固有の量子化行列は、直接的にはシグナリングされず、よりサイズの小さい量子化行列をアップサンプリングすることによりそれぞれ生成される。具体的には、HEVCでは、8×8までのサイズの量子化行列が直接的にシグナリングされることが仕様上のルールとして予め定義されている。一方、人間の視覚感度特性のモデル(例えば、下記参照文献REF4参照)に基づいて、最も効率的なM×Nの量子化行列(M及びNは2のべき乗)の要素を計算すると、より小さい量子化行列がより大きい量子化行列のサブセットになることが知られている。従って、最適な量子化行列のセットを得るためには、よりサイズの小さい基本量子化行列をアップサンプリングして追加量子化行列を生成する代わりに、よりサイズの大きい基本量子化行列をダウンサンプリングして追加量子化行列を生成する手法もまた有益である。
・REF4:Long-Wen Chang, Ching-Yang Wang and Shiuh-Ming Lee, “Designing JPEG quantization tables based on human visual system”, International Conference on Image Processing, ICIP 99, 24-28 October, 1999
【0060】
そこで、後に説明するいくつかの実施形態では、スケーリングリストデータからどのサイズの量子化行列が基本量子化行列として生成されるのかを指し示すサイズ指示情報が符号化される。サイズ指示情報により基本量子化行列のサイズを可変的に指し示すことで、より多様な量子化行列を柔軟に使い分けることが可能となる。なお、当然ながら、本開示に係る技術は、サイズの大小に関わらず、どのサイズの量子化行列が直接的にシグナリングされるかが仕様において予め定義される方式にも適用可能である。
【0061】
ここまでに説明した本開示に係る技術の原理は、映像を構成する一連の画像を符号化する画像処理装置(即ち、エンコーダ)において実装されてもよく、又は、符号化されたビットストリームを復号して映像を再構成する画像処理装置(即ち、デコーダ)において実装されてもよい。1つの画像処理装置がエンコーダ及びデコーダの双方の機能性を有していてもよい。画像処理装置は、撮像装置、映像記録装置、再生装置、表示装置、通信装置又は情報処理装置といった、いかなる種類の装置であってもよい。次節より、そうした画像処理装置に関連する2つの具体的な実施形態をより詳細に説明する。
【0062】
<2.第1の実施形態>
[2-1.エンコーダの構成]
(1)全体的な構成
図8は、第1の実施形態に係る、エンコーダの機能性を有する画像処理装置10aの構成の一例を示すブロック図である。
図8を参照すると、画像処理装置10aは、符号化制御部11、並び替えバッファ12、減算部13、直交変換部14、量子化部15a、可逆符号化部16、蓄積バッファ17、レート制御部18、逆量子化部21、逆直交変換部22、加算部23、インループフィルタ24、フレームメモリ25、スイッチ26、イントラ予測部30、インター予測部35、モード設定部40及びQM記憶部115aを備える。
【0063】
符号化制御部11は、以下に詳しく説明するような、画像処理装置10aのエンコーダとしての機能性の全般を制御する。本実施形態において、符号化制御部11は、ブロック設定部111及び基本QM設定部113を含む。ブロック設定部111は、
図7に関連して説明したブロック設定処理S21を実行するモジュールである。基本QM設定部113は、
図7に関連して説明した基本QM設定処理S22を実行するモジュールである。これらモジュールについて、後にさらに説明する。
【0064】
並び替えバッファ12は、符号化すべき映像を構成する一連の画像を、所定のGOP(Group of Pictures)構造に従って並び替える。並び替えバッファ12は、並び替え後の画像を減算部13、イントラ予測部30及びインター予測部35へ出力する。
【0065】
減算部13は、並び替えバッファ12から入力される画像(原画像)と予測画像との差分である予測誤差を算出し、算出した予測誤差を直交変換部14へ出力する。
【0066】
直交変換部14は、符号化対象画像内に設定される1つ以上の変換ブロックの各々について直交変換を実行する。ここでの直交変換は、例えば、離散コサイン変換(DCT)又は離散サイン変換(DST)であってよい。より具体的には、直交変換部14は、減算部13から入力される予測誤差を表す空間領域の信号サンプルを変換ブロックごとに直交変換して、周波数領域の変換係数を生成する。また、直交変換部14は、符号化制御部11による制御に従って、あるサイズを有する変換ブロックの高周波成分をゼロ化する。例えば、一辺の長さが32を上回る変換ブロックにおいて、32番目以降の高域側の周波数成分がゼロ化されてもよい。そして、直交変換部14は、生成した変換係数を量子化部15aへ出力する。
【0067】
量子化部15aには、直交変換部14から入力される変換係数、及び後に説明するレート制御部18からのレート制御信号が供給される。量子化部15aは、符号化対象画像内の1つ以上の変換ブロックの各々について、当該変換ブロックと同じサイズの量子化行列を用いて変換係数を量子化して、量子化変換係数(以下、量子化データともいう)を生成する。量子化部15aは、符号化制御部11による制御に従って、変換係数に含まれる強制的にゼロ化された周波数成分の量子化をスキップする。そして、量子化部15aは、生成した量子化データを可逆符号化部16及び逆量子化部21へ出力する。また、量子化部15aは、レート制御部18からのレート制御信号に基づいて量子化ステップを切り替えることにより、量子化データのビットレートを変化させる。本実施形態において、量子化部15aは、QM生成部117aを含む。QM生成部117aは、
図7に関連して説明したQM生成処理S23を実行するモジュールである。QM生成部117aは、
図8には示していない参照メモリM22をも含む。このモジュールについて、後にさらに説明する。
【0068】
可逆符号化部16は、量子化部15aから入力される量子化データを符号化して、符号化ストリームを生成する。また、可逆符号化部16は、デコーダにより参照される様々な制御パラメータを符号化して、符号化パラメータを符号化ストリームへ挿入する。ここで符号化される制御パラメータは、例えば、上述したブロック分割データ及びスケーリングリスト(又はスケーリングリストデータ)を含む。可逆符号化部16は、生成した符号化ストリームを蓄積バッファ17へ出力する。本実施形態において、可逆符号化部16は、SL符号化部119を含む。SL符号化部119は、
図7に関連して説明したQM変換/SLデータ生成処理S26を実行するモジュールである。このモジュールについて、後にさらに説明する。
【0069】
蓄積バッファ17は、可逆符号化部16から入力される符号化ストリームを記憶媒体を用いて一時的に蓄積する。そして、蓄積バッファ17は、蓄積した符号化ストリームを、伝送路の帯域に応じたレートで、図示しない伝送部(例えば、通信インタフェース又は周辺機器との接続インタフェースなど)へ出力する。
【0070】
レート制御部18は、蓄積バッファ17の空き容量を監視する。そして、レート制御部18は、蓄積バッファ17の空き容量に応じてレート制御信号を生成し、生成したレート制御信号を量子化部15aへ出力する。例えば、レート制御部18は、蓄積バッファ17の空き容量が少ない時には、量子化データのビットレートを低下させるためのレート制御信号を生成する。また、レート制御部18は、蓄積バッファ17の空き容量が十分大きい時には、量子化データのビットレートを高めるためのレート制御信号を生成する。
【0071】
逆量子化部21、逆直交変換部22及び加算部23は、ローカルデコーダを構成する。ローカルデコーダは、符号化されたデータを復号して画像を再構築する役割を有する。
【0072】
逆量子化部21は、各変換ブロックについて、量子化部15aにより使用されたものと同じ量子化行列を用いて量子化変換係数を逆量子化して、変換係数を復元する。逆量子化部21は、量子化変換係数に含まれる強制的にゼロ化された周波数成分の逆量子化をスキップする。そして、逆量子化部21は、復元した変換係数を逆直交変換部22へ出力する。
【0073】
逆直交変換部22は、各変換ブロックについて、逆直交変換を実行する。より具体的には、逆直交変換部22は、逆量子化部21から入力される周波数領域の変換係数を変換ブロックごとに逆直交変換して、空間領域の信号サンプルの形式の予測誤差を復元する。そして、逆直交変換部22は、復元した予測誤差を加算部23へ出力する。
【0074】
加算部23は、逆直交変換部22から入力される復元された予測誤差とイントラ予測部30又はインター予測部35から入力される予測画像とを加算することにより、復号画像を再構築する。そして、加算部23は、再構築した復号画像をインループフィルタ24及びフレームメモリ25へ出力する。
【0075】
インループフィルタ24は、画質の向上を目的として復号画像に適用される一連のフィルタから構成される。インループフィルタ24は、例えば、参照文献REF3において説明されているバイラテラルフィルタ、デブロッキングフィルタ、適応オフセットフィルタ、及び適応ループフィルタのうちの1つ以上を含んでよい。インループフィルタ24は、一連のフィルタを通じてフィルタリングされた復号画像をフレームメモリ25へ出力する。
【0076】
フレームメモリ25は、加算部23から入力されるフィルタリング前の復号画像、及びインループフィルタ24から入力されるフィルタリング後の復号画像を記憶する。
【0077】
スイッチ26は、イントラ予測のために使用されるフィルタリング前の復号画像をフレームメモリ25から読み出し、読み出した復号画像を参照画像としてイントラ予測部30に供給する。また、スイッチ26は、インター予測のために使用されるフィルタリング後の復号画像をフレームメモリ25から読み出し、読み出した復号画像を参照画像としてインター予測部35に供給する。
【0078】
イントラ予測部30は、原画像及び復号画像に基づいて、イントラ予測処理を実行する。例えば、イントラ予測部30は、探索範囲に含まれる予測モード候補の各々について、予測誤差及び発生する符号量に基づくコストを評価する。次いで、イントラ予測部30は、コストが最小となる予測モードを最適な予測モードとして選択する。また、イントラ予測部30は、選択した最適な予測モードに従って予測画像を生成する。そして、イントラ予測部30は、予測モード情報を含むいくつかの制御パラメータと共に、予測画像及び対応するコストをモード設定部40へ出力する。
【0079】
インター予測部35は、原画像及び復号画像に基づいて、インター予測処理(動き補償)を実行する。例えば、インター予測部35は、ある探索範囲に含まれる予測モード候補の各々について、予測誤差及び発生する符号量に基づくコストを評価する。次いで、インター予測部35は、コストが最小となる予測モードを最適な予測モードとして選択する。また、インター予測部35は、選択した最適な予測モードに従って予測画像を生成する。そして、インター予測部35は、予測モード情報を含むいくつかの制御パラメータと共に、予測画像及び対応するコストをモード設定部40へ出力する。
【0080】
モード設定部40は、イントラ予測部30及びインター予測部35から入力されるコストの比較に基づいて、ブロックごとに予測タイプを設定する。モード設定部40は、予測タイプとしてイントラ予測を設定したブロックについては、イントラ予測部30により生成される予測画像を減算部13及び加算部23へ出力する。また、モード設定部40は、予測タイプとしてインター予測を設定したブロックについては、インター予測部35により生成される予測画像を減算部13及び加算部23へ出力する。また、モード設定部40は、符号化すべき制御パラメータを可逆符号化部16へ出力する。
【0081】
(2)量子化行列の生成に関係する機能性
図8に示した様々なコンポーネントの中で、ブロック設定部111、基本QM設定部113、QM記憶部115a、QM生成部117a及びSL符号化部119が、エンコーダにおいて実行される量子化行列の生成に主に関係する。
【0082】
ブロック設定部111は、各画像をQTBTブロック分割を通じて複数の変換ブロックへ分割することにより、一連の画像の各々に複数の変換ブロックを設定する。また、ブロック設定部111は、設定した変換ブロックのブロック構造を定義するブロック分割データを生成し、生成したブロック分割データを可逆符号化部16へ出力する。ブロック設定部111により設定される変換ブロックのサイズは、例えば2×2から128×128までのレンジの範囲内であってよい。変換ブロックの形状は、正方形であってもよく又は非正方形であってもよい。変換ブロックの形状及びサイズのいくつかの例が
図2に示されている。
【0083】
基本QM設定部113は、画像処理装置10aにより利用される量子化行列として、1つ以上のサイズの基本量子化行列を設定する。基本量子化行列は、典型的には、FVCの仕様により定義される既定の量子化行列とは値の異なる少なくとも1つの要素を有する。基本量子化行列の要素の値は、例えば、事前の画像の解析又はパラメータのチューニングの結果として決定され得る。基本QM設定部113は、各サイズについて、予測タイプ及び色成分の組み合わせが互いに異なる複数の種類の量子化行列を設定し得る。ある種類の量子化行列が他の種類の量子化行列と同一であってもよい。一例として、基本量子化行列は、正方形の量子化行列のみを含む。他の例として、基本量子化行列は、正方形の量子化行列及び非正方形の量子化行列の双方を含む。後に説明するシンタックスの例において、量子化行列のサイズはサイズIDで識別され、量子化行列の種類はマトリクスIDにより識別される。
【0084】
QM記憶部115aは、画像処理装置10aにより利用される様々なサイズの様々な種類の量子化行列を記憶する記憶モジュールである。QM記憶部115aにより記憶される量子化行列は、基本QM設定部113により設定される基本量子化行列、及び、後述するQM生成部117aにより追加的に生成される追加量子化行列を含む。本実施形態において、基本量子化行列は、複数の変換ブロックにわたる直交変換及び量子化に先立って設定され、それら処理を通じてQM記憶部115aにより記憶される。一方、追加量子化行列は、個別の変換ブロックの変換係数が量子化される際に必要に応じて生成され、QM記憶部115aにより記憶される。QM記憶部115aは、どのサイズの量子化行列が既に存在するかを指し示す内部的な制御情報である行列管理情報を管理してもよい。行列管理情報は、例えば、水平方向及び垂直方向のサイズにそれぞれ対応する2つのサイズIDにより識別される量子化行列が存在するか否か(例えば、生成済みであるか否か)を指し示すフラグのセットからなる。
【0085】
QM生成部117aは、量子化部15aにおいて個別の変換ブロックの変換係数が量子化される際に、その変換ブロックと同じサイズを有する量子化行列が既に生成済みであるかを、QM記憶部115aにより提供される上述した行列管理情報を参照することにより判定する。そして、QM生成部117aは、当該サイズの量子化行列が既に生成済みである場合には、その生成済みの量子化行列をQM記憶部115aから読み出す。一方、QM生成部117aは、変換ブロックと同じサイズを有する量子化行列が生成済みではない場合には、生成済みの基本量子化行列のうちのいずれかを参照量子化行列として選択し、選択した参照量子化行列をリサンプリングすることにより、追加量子化行列を生成する。QM生成部117aは、リサンプリングされる参照量子化行列又はその部分行列を一時的に保持するメモリを含む。
【0086】
QM生成部117aは、例えば、ある対象サイズの変換ブロックに高周波成分のゼロ化が適用されない場合には、その変換ブロックのための量子化行列を、参照量子化行列の全体を参照することにより生成する。一方、QM生成部117aは、別の対象サイズの変換ブロックに高周波成分のゼロ化が適用される場合には、その変換ブロックのための量子化行列を、参照量子化行列の部分行列のみを参照することにより生成する。後者の場合、参照量子化行列のサイズに対する参照される(即ち、一時的にQM生成部117aのメモリにより保持される)部分行列のサイズの割合は、生成される追加量子化行列のサイズに対する非ゼロ部分の割合に等しい。量子化部15aは、このようにリソースを節約しつつ生成される様々な量子化行列のうちのいずれかを用いて、各変換ブロックの変換係数を量子化する。
【0087】
ある例において、QM生成部117aは、どのサイズの変換ブロックにゼロ化が適用されるかを予め定義する仕様上のルールに従って、各変換ブロックにゼロ化が適用されるかを判定してもよい。他の例において、QM生成部117aは、符号化制御部11による制御に従って、ある変換ブロックにはゼロ化が適用され、他の変換ブロックにはゼロ化が適用されないと判定してもよい。後者の例では、上で説明したような、各変換ブロックにゼロ化が適用されるかを指し示すゼロ化フラグ及びどのサイズの変換ブロックにゼロ化が適用されるかを指し示すゼロ化サイズ情報のうちの一方又は双方が、制御パラメータとして符号化され、符号化ストリームへ挿入され得る。
【0088】
SL符号化部119は、基本QM設定部113により設定される上述した基本量子化行列を表現するスケーリングリストを符号化して、スケーリングリストデータを生成する。スケーリングリストデータは、可逆符号化部16により生成される符号化ストリームへ挿入される。
【0089】
ある例において、SL符号化部119は、どのサイズの量子化行列がスケーリングリストデータを介して基本量子化行列として明示的にシグナリングされるのかを指し示すサイズ指示情報を、スケーリングリストデータに含める。スケーリングリストデータを介していくつのサイズの量子化行列がシグナリングされるのかが可変的である場合には、SL符号化部119は、シグナリングの対象であるサイズの数を指し示すサイズ数情報をさらにスケーリングリストデータに含めてもよい。この場合において、2つ以上のサイズがシグナリングされるときは、それらは(異なるサイズIDにより識別される)互いに異なるサイズであるものとするというビットストリーム制約が課せられてもよい。こうしたビットストリーム制約によって、エンコーダにおけるサイズ指示情報の冗長的な符号化を防止し、符号量のオーバヘッドを削減して、リソースの浪費を回避することができる。
【0090】
他の例において、スケーリングリストデータを介して明示的にシグナリングされる基本量子化行列のサイズは、仕様上のルールとして予め定義される。この場合、SL符号化部119は、上述したサイズ指示情報及びサイズ数情報をスケーリングリストデータに含めない。
【0091】
[2-2.シンタックス及びセマンティクスの例]
次の表1は、参照文献REF2に記述されているHEVCのスケーリングリストデータのシンタックスを示している。
【0092】
【0093】
HEVCのスケーリングリストデータは、サイズID(sizeId)により識別される4つのサイズと、マトリクスID(matrixId)により識別される6つの種類との組み合わせの各々について、次の制御パラメータのうちの1つ以上を含む:
・scaling_list_pred_mode_flag[sizeId][matrixId]
・scaling_list_pred_matrix_id_delta[sizeId][matrixId]
・scaling_list_dc_coef_minus8[sizeId-2][matrixId]
・scaling_list_delta_coef
scaling_list_pred_mode_flag[sizeId][matrixId]は、スケーリングリストの符号化手法を切り替えるための制御フラグである。この制御フラグが偽である種類の量子化行列は、scaling_list_pred_matrix_id_delta[sizeId][matrixId]により指し示される他の種類の量子化行列を参照することにより簡易的に符号化される。上記制御フラグが真である量子化行列は、scaling_list_dc_coef_minus8[sizeId-2][matrixId]及び複数個のscaling_list_delta_coefを用いて差分符号化される。scaling_list_delta_coefの数は、中間変数coefNumにより指し示される。
【0094】
次の表2は、本実施形態において修正され得るスケーリングリストデータのシンタックスの一例を示している。表2の例は、上の[1-5.基本量子化行列のサイズの制御]において説明した、どのサイズの量子化行列が基本量子化行列として生成されるのかを指し示すサイズ指示情報を含む。
【0095】
【0096】
具体的には、表2の2行目のパラメータsize_id_minusXがサイズ指示情報に相当する。パラメータsize_id_minusXの値は、実際のサイズIDから予め定義されるオフセット値Xを減算することにより導かれる。
【0097】
次の表3は、HEVCにおける定義から修正され得るサイズIDの定義の一例を示している。
【0098】
【0099】
表3の例では、正方形の量子化行列の一辺のサイズの候補値(2~128)に、小さい方から順にそれぞれ0~6というインデックスがサイズIDとして付与されている。一辺のサイズの候補値NとサイズIDの値sizeIdとの間の関係は、この例では次式の通りである:
N=1<<(sizeId+1)
但し、サイズの候補値とサイズIDとの間の関係は、上の式には限定されない。
【0100】
非正方形の量子化行列のサイズは、水平方向及び垂直方向のそれぞれについてサイズIDを特定することにより識別され得る。表2のシンタックスの例では、サイズ指示情報は、1つのパラメータsize_id_minusXのみを含む。これは、基本量子化行列として正方形の量子化行列のみが明示的にシグナリングされることを意味する。また、オフセット値X未満のサイズIDに対応するサイズの量子化行列はシグナリングされない。なお、かかる例に限定されず、サイズ指示情報は、非正方形の基本量子化行列を識別するための2つのサイズIDをそれぞれ識別する2つのパラメータを含んでもよい。また、オフセットが省略され、オフセットされないサイズIDがそのまま符号化されてもよい。
【0101】
次の表4は、HEVCにおける定義から修正され得るマトリクスIDの定義の一例を示している。
【0102】
【0103】
図1に関連して説明したHEVCにおける定義では、サイズIDが3(サイズ32×32に対応)に等しいケースでマトリクスIDの定義は例外的となるが、表4の例では、サイズIDの値に関わらずマトリクスIDの定義は共通的である。これが、表1のシンタックスの第3行のマトリクスIDのループと、表2のシンタックスの第4行のマトリクスIDのループとの相違に影響している。なお、中間変数coefNumにより指し示される差分符号化される要素値の最大数は、表1及び表2のシンタックスにおいて共に64であるが、より柔軟な量子化行列の設計を可能とするために、この最大数が変更されてもよく又は可変的に設定されてもよい。
【0104】
[2-3.参照量子化行列の選択]
ある追加量子化行列を生成する際にどの量子化行列を参照すべきかは、いかなるルールに従って決定されてもよい。単純な例として、利用可能な正方形の量子化行列のうち最もサイズの大きい行列が、参照量子化行列として選択されてもよい。この例において、明示的にシグナリングされる最大の量子化行列のサイズIDを“maxSignaledSizeId”とし、あるサイズIDとマトリクスIDとの組み合わせにより識別される量子化行列が存在するか否かが行列管理情報“QMAvailFlag[sizeId][matrixId]”により示されるものとする(QMAvailFlag[sizeId][matrixId]が真である場合には識別される量子化行列が存在し、そうでない場合には存在しない)。すると、次のような疑似コードで、参照量子化行列のサイズを指し示す参照サイズID“refSizeId”を決定することができる。
【0105】
【0106】
他の例として、利用可能な量子化行列のうち生成すべき追加量子化行列とのサイズの差が最も小さい行列が、参照量子化行列として選択されてもよい。また、どの量子化行列を参照すべきかを指し示す参照量子化行列情報が追加的に符号化されてもよい。
【0107】
[2-4.リサンプリング手法]
次に、量子化行列を追加的に生成するためのリサンプリングの具体的な手法の一例について説明する。ここでは、説明の簡明さのために、対象変換ブロックの少なくとも一方の辺のサイズが上限NTHよりも大きいことを条件として、対象変換ブロックに高周波成分のゼロ化が適用されるものとする。なお、以下の説明は、当業者にとって明らかであろうわずかな修正と共に、ゼロ化の適用の条件が異なるケースにも適用可能である。
【0108】
まず、第1のサイズの第1の量子化行列が、第2のサイズの第2の量子化行列を生成するための参照量子化行列として選択されたものとする。また、第1のサイズをW1×H1、第2のサイズをW2×H2とする。次の2つの式のいずれかに従って、第2のサイズの変換ブロックに高周波成分のゼロ化が適用されるかを指し示すフラグ“zoFlag”を設定することができる:
zoFlag=max(W2,H2)>NTH
zoFlag=W2>NTH || H2>NTH
これらの式によれば、第2のサイズ(W2×H2)の変換ブロックに高周波成分のゼロ化が適用される場合にはフラグzoFlagは1に、そうでない場合にはフラグzoFlagは0に設定される。
【0109】
第2の量子化行列のうち、実際にリサンプリングを通じて生成される要素の水平方向のレンジをRWIDTH2、垂直方向のレンジをRHEIGHT2とすると、これらレンジは次式により与えられ得る:
WR2=min(W2,NTH)
HR2=min(H2,NTH)
RWIDTH2=[0,WR2-1]
RHEIGHT2=[0,HR2-1]
ここで、WR2及びHR2は、水平方向及び垂直方向のそれぞれのレンジに含まれる要素の個数を表す。第2のサイズ(W2×H2)に対する非ゼロ部分(ゼロ化が適用されない部分)の水平方向の割合rWIDTH2及び垂直方向の割合rHEIGHT2は、次式により与えられ得る:
rWIDTH2=WR2/W2
rHEIGHT2=HR2/H2
これら割合rWIDTH2、rHEIGHT2を用いて、第1の量子化行列のうち第2の量子化行列の非ゼロ部分を生成する際に参照される部分の水平方向のレンジRWIDTH1及び垂直方向のレンジRHEIGHT1を、次のように導出することができる:
WR1=W1・rWIDTH2
HR1=H1・rHEIGHT2
RWIDTH1=[0,WR1-1]
RHEIGHT1=[0,HR1-1]
ここで、WR1及びHR1は、水平方向及び垂直方向のそれぞれのレンジに含まれる要素の個数を表す。
【0110】
上の説明から理解されるように、対象変換ブロックにゼロ化が適用される場合、第1のサイズW1×H1の第1の量子化行列のうちの部分行列のみを参照することにより、対象変換ブロックの変換係数を量子化する(又は量子化変換係数を逆量子化する)ための第2の量子化行列を生成することができる。一方、対象変換ブロックにゼロ化が適用されない場合には、WR2=W2及びHR2=H2、即ちrWIDTH2=rHEIGHT2=1であり、WR1=W1及びHR1=H1となる。この場合、第2の量子化行列を生成するために、第1の量子化行列の全体が参照される。そこで、QM生成部117aは、対象変換ブロックに高周波成分のゼロ化が適用される場合には、参照量子化行列の要素のうち参照レンジRWIDTH1、RHEIGHT1内に含まれる要素のみを、リサンプリングのためにQM記憶部115aから読み出してバッファリングする。対象変換ブロックにゼロ化が適用されない場合には、QM生成部117aは、参照量子化行列の全ての要素をQM記憶部115aから読み出してバッファリングする。
【0111】
第2のサイズに対する第1のサイズの比を、水平方向及び垂直方向でそれぞれsWIDTH及びsHEIGHTとすると、サイズ比sWIDTH、sHEIGHTはそれぞれ次のように与えられる:
sWIDTH=W1/W2
sHEIGHT=H1/H2
一例として、第1の量子化行列QREFを最近傍法でアップサンプリングすることにより第2の量子化行列QADDの要素QADD[j][i]を導出する処理は、これらサイズ比sWIDTH、sHEIGHTを用いて次のように表現され得る。なお、j及びiは、行及び列にそれぞれ対応するインデックスである。第2の量子化行列の要素は、リサンプリングに先立って全て0に初期化されているものとする:
j´=Floor(j・sWIDTH)
i´=Floor(i・sHEIGHT)
QADD[j][i]=QREF[j´][i´] (for i∈RWIDTH2,j∈RHEIGHT2)
ここで、Floor(x)は引数x以下の最大の整数を返す関数である。
【0112】
第1の量子化行列QREFをダウンサンプリングすることにより第2の量子化行列QADDの要素QADD[j][i]を導出する処理は、次のように表現され得る。第2の量子化行列の要素は、リサンプリングに先立って全て0に初期化されているものとする:
QADD[j][i]=QREF[j・sWIDTH][i・sHEIGHT] (for i∈RWIDTH2,j∈RHEIGHT2)
【0113】
なお、本項で説明したリサンプリングの手法は一例に過ぎない。例えば、行列の一方の方向においてアップサンプリングを、他方の方向においてダウンサンプリングを行うことも可能である。また、行列の一方の方向においてリサンプリングを行わないことも当然に可能である。さらに、アップサンプリングにおいて、上に示した最近傍法の代わりに、バイリニア法又はバイキュービック法といった他の補間法が利用されてもよい。
【0114】
[2-5.符号化時の量子化関連処理の流れ]
(1)全体的な流れ
図9は、
図8に示した画像処理装置10aにおいて実行される量子化関連処理の流れの一例を示すフローチャートである。なお、ここでは、説明の簡明さのために、符号化処理に含まれる様々な処理ステップのうち量子化に関連しない処理ステップの説明は省略される。
【0115】
まず、基本QM設定部113は、第1のサイズの第1の量子化行列を含む、1つ以上の基本量子化行列を設定する(ステップS111)。それら基本量子化行列は、QM記憶部115aにより記憶される。
【0116】
その後のステップS113~S116の処理は、ブロック設定部111によりQTBTブロック分割を通じて画像内に設定される複数の変換ブロックの各々について繰り返される(ステップS112)。各繰り返しの対象とされる変換ブロックを、ここでは対象変換ブロックという。
【0117】
QM生成部117aは、まず、対象変換ブロックのブロックサイズに対応する量子化行列が存在するかを、例えばQM記憶部115aにより提供される行列管理情報を参照することにより判定する(ステップS113)。QM生成部117aは、その量子化行列が存在しない場合、後に説明する量子化行列生成処理を実行して、参照量子化行列から追加量子化行列を生成する(ステップS114)。ここで生成される追加量子化行列は、QM記憶部115aにより記憶される。一方、QM生成部117aは、所要の量子化行列が既に存在する場合には、対象変換ブロックのブロックサイズに対応するその量子化行列をQM記憶部115aから読み出す(ステップS115)。そして、量子化部15aは、追加的に生成され又は読み出された量子化行列を用いて、対象変換ブロックの変換係数を量子化する(ステップS116)。
【0118】
SL符号化部119は、ステップS111において設定された1つ以上の基本量子化行列の各々を1次元化することにより、それらをスケーリングリストへ変換する(ステップS117)。次いで、SL符号化部119は、後に説明するスケーリングリスト符号化処理を実行して、スケーリングリストデータを生成する(ステップS118)。
【0119】
図9には示していないものの、ステップS116において生成される変換ブロックごとの量子化変換係数は、可逆符号化部16により符号化され、スケーリングリストデータと共に符号化ストリームの一部となる。スケーリングリストデータは、シーケンス、ピクチャ、スライス又はタイルといったいかなる単位で更新されてもよい。
【0120】
(2)量子化行列生成処理
図10は、
図9のステップS114において実行され得る量子化行列生成処理の流れの一例を示すフローチャートである。
【0121】
まず、QM生成部117aは、対象変換ブロックのための量子化行列を生成する際に参照すべき参照量子化行列を選択する(ステップS121)。一例として、参照量子化行列は、仕様において予め定義されるルール(例えば、利用可能な量子化行列のうち、最大のサイズ又は対象変換ブロックのサイズに最も近いサイズを有する量子化行列、など)に従って選択されてもよい。他の例として、参照量子化行列は、動的に選択されてもよい。
【0122】
次いで、QM生成部117aは、対象変換ブロックに高周波成分のゼロ化が適用されるか否かを判定する(ステップS122)。一例として、QM生成部117aは、仕様において予め定義されるルール(例えば、対象変換ブロックの少なくとも一辺の長さがある閾値を上回るか否か)に従って、対象変換ブロックに高周波成分のゼロ化が適用されるか否かを判定してもよい。他の例として、対象変換ブロックに高周波成分のゼロ化が適用されるか否かが動的に切り替えられてもよい。
【0123】
対象変換ブロックにゼロ化が適用されない場合、QM生成部117aは、ステップS121において選択した参照量子化行列の全体をQM記憶部115aから読み出して、内部的なメモリにおいてバッファリングする(ステップS123)。次いで、QM生成部117aは、読み出した参照量子化行列をリサンプリングして、追加量子化行列を生成する(ステップS124)。
【0124】
一方、対象変換ブロックにゼロ化が適用される場合、QM生成部117aは、対象変換ブロックのサイズに対する非ゼロ部分の割合(例えば、上述した割合rWIDTH2、rHEIGHT2)を計算する(ステップS125)。次いで、QM生成部117aは、計算した割合に従って、選択した参照量子化行列の部分行列をQM記憶部115aから読み出して、内部的なメモリにおいてバッファリングする(ステップS126)。次いで、QM生成部117aは、読み出した部分行列をリサンプリングして、追加量子化行列の非ゼロ部分を生成する(ステップS127)。
【0125】
そして、QM生成部117aは、生成した追加量子化行列をQM記憶部115aに記憶させる(ステップS168)。
【0126】
(3)スケーリングリスト符号化処理
図11は、
図9のステップS118において実行され得るスケーリングリスト符号化処理の流れの一例を示すフローチャートである。
【0127】
まず、SL符号化部119は、基本量子化行列のサイズを識別するサイズIDを符号化して、サイズ指示情報を生成する(ステップS131)。基本量子化行列が必ず正方形の行列である場合には、表3に例示したような1つのサイズIDのみが符号化される。基本量子化行列が非正方形の行列をも含む場合には、2つの方向に対応する2つのサイズIDが符号化されてもよい。サイズ指示情報は、サイズIDから予め定義されるオフセットを減算することにより生成されてもよい。
【0128】
その後のステップS133~S136の処理は、予測タイプと色成分との組み合わせ、即ちマトリクスIDにより識別される量子化行列の種類の各々について繰り返される(ステップS132)。各繰り返しの対象とされるマトリクスIDを、ここでは対象マトリクスIDという。
【0129】
SL符号化部119は、まず、対象マトリクスIDに関連付けられるスケーリングリストの一連の要素の値を明示的に符号化するか否かを判定する(ステップS133)。即ち、SL符号化部119は、スケーリングリストの符号化手法を決定する。例えば、対象マトリクスIDに関連付けられるスケーリングリストが(同じサイズIDの)他のマトリクスIDに関連付けられるスケーリングリストと同一である場合には、SL符号化部119は、要素値を符号化する代わりに、参照スケーリング情報のみを簡易的に符号化することを選択し得る。
【0130】
SL符号化部119は、簡易的な符号化が選択される場合、参照スケーリングリストを決定し(ステップS134)、決定した参照スケーリングリストを指し示す参照スケーリングリスト情報を符号化する(ステップS135)。
【0131】
一方、一連の要素の値を符号化することが選択される場合、SL符号化部119は、
図9のステップS117において導出されたスケーリングリストの一連の要素の値を例えばDPCM(Differential Pulse Code Modulation)方式で符号化することにより、スケーリングリストデータを生成する(ステップS136)。
【0132】
なお、
図11に示したフローチャートは、基本量子化行列のサイズIDが明示的に符号化される例を示している。他の例において、基本量子化行列のサイズの符号化は省略されてもよい。また別の例において、シグナリングの対象であるサイズの数がサイズ数情報としてさらに符号化されてもよい。
【0133】
[2-6.デコーダの構成]
(1)全体的な構成
図12は、第1の実施形態に係る、デコーダの機能性を有する画像処理装置60aの構成の一例を示すブロック図である。
図12を参照すると、画像処理装置60aは、復号制御部61、可逆復号部62、逆量子化部63a、逆直交変換部64、加算部65、インループフィルタ66、並び替えバッファ67、フレームメモリ68、セレクタ70及び71、イントラ予測部80、インター予測部85、並びにQM記憶部165aを備える。
【0134】
復号制御部61は、以下に詳しく説明するような、画像処理装置60aのデコーダとしての機能性の全般を制御する。本実施形態において、復号制御部61は、ブロック設定部161を含む。ブロック設定部161は、
図4に関連して説明したブロック設定処理S12を実行するモジュールである。このモジュールについて、後にさらに説明する。
【0135】
可逆復号部62は、図示しない伝送部(例えば、通信インタフェース又は周辺機器との接続インタフェースなど)から入力される符号化ストリームから様々な制御パラメータをパースする。可逆復号部62によりパースされる制御パラメータは、例えば、上述したブロック分割データ及びスケーリングリストデータを含む。ブロック分割データは、復号制御部61へ出力される。本実施形態において、可逆復号部62は、SL復号部163を含む。SL復号部163は、
図4に関連して説明したスケーリングリスト復号処理S13を実行するモジュールである。このモジュールについて、後にさらに説明する。可逆復号部62は、さらに符号化ストリームを復号して、1つ以上の変換ブロックの各々の量子化データを生成する。可逆復号部62は、生成した量子化データを逆量子化部63aへ出力する。
【0136】
逆量子化部63aは、画像に設定される1つ以上の変換ブロックの各々について、可逆復号部62から入力される量子化データ、即ち量子化変換係数を逆量子化して、変換係数を復元する。逆量子化部63aは、QM記憶部165aにより記憶される複数の量子化行列のうち変換ブロックと同じサイズの量子化行列を、当該変換ブロックの量子化変換係数を逆量子化するために使用する。逆量子化部63aは、復号制御部61による制御に従って、強制的にゼロ化された周波数成分の逆量子化をスキップする。そして、逆量子化部63aは、復元した変換係数を逆直交変換部64へ出力する。本実施形態において、逆量子化部63aは、QM生成部167aを含む。QM生成部167aは、
図4に関連して説明したQM生成処理S14を実行するモジュールである。このモジュールについて、後にさらに説明する。
【0137】
逆直交変換部64は、1つ以上の変換ブロックの各々について逆直交変換を実行する。ここでの逆直交変換は、例えば、逆離散コサイン変換又は逆離散サイン変換であってよい。より具体的には、逆直交変換部64は、逆量子化部63aから入力される周波数領域の変換係数を変換ブロックごとに逆直交変換して、空間領域の信号サンプルである予測誤差を生成する。逆直交変換部64は、生成した予測誤差を加算部65へ出力する。
【0138】
加算部65は、逆直交変換部64から入力される予測誤差と、セレクタ71から入力される予測画像とを加算することにより、復号画像を生成する。そして、加算部65は、生成した復号画像をインループフィルタ66及びフレームメモリ68へ出力する。
【0139】
インループフィルタ66は、画質の向上を目的として復号画像に適用される一連のフィルタから構成される。インループフィルタ66は、例えば、参照文献REF3において説明されているバイラテラルフィルタ、デブロッキングフィルタ、適応オフセットフィルタ、及び適応ループフィルタのうちの1つ以上を含んでよい。インループフィルタ66は、一連のフィルタを通じてフィルタリングされた復号画像を並び替えバッファ67及びフレームメモリ68へ出力する。
【0140】
並び替えバッファ67は、インループフィルタ66から入力される画像を並び替えることにより、映像を構成する時系列の画像のシーケンスを生成する。そして、並び替えバッファ67は、生成した画像のシーケンスを外部機器(例えば、画像処理装置60aと接続されるディスプレイ)へ出力する。
【0141】
フレームメモリ68は、加算部65から入力されるフィルタリング前の復号画像、及びインループフィルタ66から入力されるフィルタリング後の復号画像を記憶する。
【0142】
セレクタ70は、ブロックごとの予測タイプに応じて、フレームメモリ68からの画像の出力先をイントラ予測部80とインター予測部85との間で切り替える。例えば、セレクタ70は、予測タイプとしてイントラ予測が指定された場合には、フレームメモリ68から供給されるフィルタリング前の復号画像を参照画像としてイントラ予測部80へ出力する。また、セレクタ70は、予測タイプとしてインター予測が指定された場合には、フィルタリング後の復号画像を参照画像としてインター予測部85へ出力する。
【0143】
セレクタ71は、ブロックごとの予測タイプに応じて、加算部65へ供給すべき予測画像の出力元をイントラ予測部80とインター予測部85との間で切り替える。例えば、セレクタ71は、イントラ予測が指定された場合には、イントラ予測部80から出力される予測画像を加算部65へ供給する。また、セレクタ71は、インター予測が指定された場合には、インター予測部85から出力される予測画像を加算部65へ供給する。
【0144】
イントラ予測部80は、符号化ストリームからパースされるイントラ予測に関する情報とフレームメモリ68からの参照画像とに基づいてイントラ予測を実行し、予測画像を生成する。そして、イントラ予測部80は、生成した予測画像をセレクタ71へ出力する。
【0145】
インター予測部85は、符号化ストリームからパースされるインター予測に関する情報とフレームメモリ68からの参照画像とに基づいてインター予測を実行し、予測画像を生成する。そして、インター予測部85は、生成した予測画像をセレクタ71へ出力する。
【0146】
(2)量子化行列の生成に関係する機能性
図12に示した様々なコンポーネントの中で、ブロック設定部161、SL復号部163、QM記憶部165a及びQM生成部167aが、デコーダにおいて実行される量子化行列の生成に主に関係する。
【0147】
ブロック設定部161は、ブロック分割データに従って実行されるQTBTブロック分割を通じて、各画像内に複数の変換ブロックを設定する。ブロック設定部161により設定される変換ブロックのサイズは、例えば2×2から128×128までのレンジの範囲内であってよい。変換ブロックの形状は、正方形であってもよく又は非正方形であってもよい。変換ブロックの形状及びサイズのいくつかの例が
図2に示されている。
【0148】
SL復号部163は、スケーリングリストデータを復号して、1つ以上のサイズの基本量子化行列を生成する。ある例において、SL復号部163は、スケーリングリストデータから生成される量子化行列のサイズを指し示すサイズ指示情報を復号する。この場合、SL復号部163は、どのサイズの量子化行列がスケーリングリストデータを介して基本量子化行列として明示的にシグナリングされるのかを、サイズ指示情報を参照することにより認識する。シグナリングの対象であるサイズの数を指し示すサイズ数情報がさらに復号されてもよい。この場合において、2つ以上のサイズがシグナリングされるときは、それらは(異なるサイズIDにより識別される)互いに異なるサイズであるものとするというビットストリーム制約が課せられてもよい。こうしたビットストリーム制約によって、エンコーダにおけるサイズ指示情報の冗長的な符号化を防止し、符号量のオーバヘッドを削減して、リソースの浪費を回避することができる。他の例において、スケーリングリストデータを介して明示的にシグナリングされる基本量子化行列のサイズは、仕様上のルールとして予め定義される。この場合、スケーリングリストデータは、上述したサイズ指示情報及びサイズ数情報を含まず、SL復号部163は、予め定義される1つ以上のサイズの各々についてのスケーリングリストデータを復号して、それら1つ以上のサイズの量子化行列を生成する。
【0149】
SL復号部163は、スケーリングリストデータに基づいて生成した基本量子化行列を、QM記憶部165aに記憶させる。上述したように、各サイズについて、予測タイプ及び色成分の組み合わせが互いに異なる複数の種類の基本量子化行列が存在してよい。基本量子化行列は、差分符号化された一連の要素の値を復号することにより生成されてもよく、又は他の種類の基本量子化行列を参照することにより生成されてもよい。一例として、基本量子化行列は、正方形の量子化行列のみを含む。他の例として、基本量子化行列は、正方形の量子化行列及び非正方形の量子化行列の双方を含む。スケーリングリストデータのシンタックスの例が、上の[2-2.シンタックス及びセマンティクスの例]において説明されている。
【0150】
QM記憶部165aは、画像処理装置60aにより利用される様々なサイズの様々な種類の量子化行列を記憶する記憶モジュールである。QM記憶部165aにより記憶される量子化行列は、SL復号部163により生成される基本量子化行列、及び、後述するQM生成部167aにより追加的に生成される追加量子化行列を含む。本実施形態において、基本量子化行列は、複数の変換ブロックにわたる逆量子化及び逆直交変換に先立って生成され、それら処理を通じてQM記憶部165aにより記憶される。一方、追加量子化行列は、個別の変換ブロックの量子化変換係数が逆量子化される際に必要に応じて生成され、QM記憶部165aにより記憶される。エンコーダ側のQM記憶部115aと同様に、QM記憶部165aは、どのサイズの量子化行列が既に存在するかを指し示す行列管理情報を管理してもよい。行列管理情報は、例えば、水平方向及び垂直方向のサイズにそれぞれ対応する2つのサイズIDにより識別される量子化行列が存在するか否かを指し示すフラグのセットからなる。
【0151】
QM生成部167aは、逆量子化部63aにおいて個別の変換ブロックの量子化変換係数が逆量子化される際に、その変換ブロックと同じサイズを有する量子化行列がスケーリングリストデータに基づいて既に生成済みであるかを、QM記憶部165aにより提供される行列管理情報を参照することにより判定する。そして、QM生成部167aは、当該サイズの量子化行列が既に生成済みである場合には、その生成済みの量子化行列をQM記憶部165aから読み出す。一方、変換ブロックと同じサイズを有する量子化行列が生成済みではない場合には、QM生成部167aは、生成済みのいずれかの基本量子化行列又はその部分行列をリサンプリングすることにより、追加量子化行列を生成する。QM生成部167aは、リサンプリングされる参照量子化行列又はその部分行列を一時的に保持するメモリを含む。
【0152】
QM生成部167aは、例えば、ある対象サイズの変換ブロックに高周波成分のゼロ化が適用されない場合には、その変換ブロックのための量子化行列を、参照量子化行列の全体を参照することにより生成する。一方、QM生成部167aは、別の対象サイズの変換ブロックに高周波成分のゼロ化が適用される場合には、その変換ブロックのための量子化行列を、参照量子化行列の部分行列のみを参照することにより生成する。上述したように、参照量子化行列のサイズに対する参照される部分行列のサイズの割合は、生成される追加量子化行列のサイズに対する非ゼロ部分の割合に等しい。これら割合を計算するための計算式の一例が、上の[2-4.リサンプリング手法]において説明されている。逆量子化部63aは、このようにリソースを節約しつつ生成される様々な量子化行列のうちのいずれかを用いて、各変換ブロックの量子化変換係数を逆量子化する。
【0153】
ある例において、QM生成部167aは、どのサイズの変換ブロックにゼロ化が適用されるかを予め定義する仕様上のルールに従って、各変換ブロックにゼロ化が適用されるかを判定してもよい。他の例において、QM生成部167aは、各変換ブロックにゼロ化が適用されるかを指し示すゼロ化フラグ、及びどのサイズの変換ブロックにゼロ化が適用されるかを指し示すゼロ化サイズ情報といった、符号化ストリームから追加的にパースされ得る1つ以上の制御パラメータに基づいて、各変換ブロックにゼロ化が適用されるか否かを判定してもよい。これら制御パラメータの例が、上の[1-4.ゼロ化の制御]において説明されている。
【0154】
[2-7.復号時の逆量子化関連処理の流れ]
(1)全体的な流れ
図13は、
図12に示した画像処理装置60aにおいて実行される逆量子化関連処理の流れの一例を示すフローチャートである。なお、ここでは、説明の簡明さのために、復号処理に含まれる様々な処理ステップのうち逆量子化に関連しない処理ステップの説明は省略される。
【0155】
まず、SL復号部163は、後に説明するスケーリングリストデータ復号処理を実行して、1つ以上のサイズの基本量子化行列を表現するスケーリングリストを生成する(ステップS161)。次いで、SL復号部163は、1次元の要素値の配列である各スケーリングリストを、何らかのスキャン順で2次元配列へマッピングすることにより、基本量子化行列へ変換する(ステップS162)。QM記憶部165aは、このように生成される基本量子化行列を記憶する(ステップS163)。
【0156】
その後のステップS165~S168の処理は、ブロック設定部161によりQTBTブロック分割を通じて画像内に設定される複数の変換ブロックの各々について繰り返される(ステップS164)。各繰り返しの対象とされる変換ブロックを、ここでは対象変換ブロックという。
【0157】
QM生成部167aは、まず、対象変換ブロックのブロックサイズに対応する量子化行列が存在するかを、例えばQM記憶部165aにより提供される行列管理情報を参照することにより判定する(ステップS165)。QM生成部167aは、その量子化行列が存在しない場合、
図10を参照しながら上で説明した量子化行列生成処理を実行して、参照量子化行列から追加量子化行列を生成する(ステップS166)。ここで生成される追加量子化行列は、QM記憶部165aにより記憶される。一方、QM生成部167aは、所要の量子化行列が既に存在する場合には、対象変換ブロックのブロックサイズに対応するその量子化行列をQM記憶部165aから読み出す(ステップS167)。そして、逆量子化部63aは、追加的に生成され又は読み出された量子化行列を用いて、対象変換ブロックの量子化変換係数を逆量子化する(ステップS168)。
【0158】
図13には示していないものの、ステップS168において逆量子化の結果として生成される周波数領域の変換係数は、逆直交変換部64により空間領域の信号サンプルである予測誤差へ変換される。量子化行列は、スケーリングリストデータの更新に応じて、シーケンス、ピクチャ、スライス又はタイルといったいかなる単位で更新されてもよい。
【0159】
(2)スケーリングリストデータ復号処理
図14は、
図13のステップS161において実行され得るスケーリングリストデータ復号処理の流れの一例を示すフローチャートである。
【0160】
まず、SL復号部163は、サイズ指示情報を復号して、生成すべきスケーリングリストに対応する量子化行列のサイズを識別するサイズIDを設定する(ステップS171)。基本量子化行列が必ず正方形の行列である場合には、表3に例示したような1つのサイズIDのみが設定される。基本量子化行列が非正方形の行列をも含む場合には、2つの方向に対応する2つのサイズIDが、サイズ指示情報に基づいて設定されてもよい。サイズIDは、サイズ指示情報が示す値に予め定義されるオフセットを加算することにより導出されてもよい。
【0161】
その後のステップS173~S177の処理は、予測タイプと色成分との組み合わせ、即ちマトリクスIDにより識別される量子化行列の種類の各々について繰り返される(ステップS172)。各繰り返しの対象とされるマトリクスIDを、ここでは対象マトリクスIDという。
【0162】
SL復号部163は、まず、対象マトリクスIDに関連付けられるスケーリングリストの一連の要素の値が明示的に符号化されているかを判定する(ステップS173)。例えば、SL復号部163は、ステップS171で設定されたサイズID及び対象マトリクスIDに関連付けられる制御フラグ(例えば、表1のscaling_list_pred_mode_flag[sizeId][matrixId])に基づいて、一連の要素の値が符号化されているか又は参照スケーリングリスト情報のみが符号化されているかを判定し得る。
【0163】
SL復号部163は、参照スケーリングリスト情報(例えば、表1のscaling_list_pred_matrix_id_delta[sizeId][matrixId])のみが符号化されている場合、参照スケーリングリスト情報をパースして、参照すべき基本量子化行列のマトリクスIDを導出する(ステップS174)。そして、SL復号部163は、導出したマトリクスIDをキーとして用いて参照される参照スケーリングリストに基づいて、対象マトリクスIDのスケーリングリストを生成する(ステップS175)。
【0164】
一方、スケーリングリストの一連の要素の値が符号化されている場合、SL復号部163は、スケーリングリストデータ内で差分符号化されている一連の要素の差分値をパースする(ステップS176)。そして、SL復号部163は、それら差分値をDPCM方式で復号することにより、対象マトリクスIDのスケーリングリストを生成する(ステップS177)。
【0165】
なお、
図14に示したフローチャートは、基本量子化行列のサイズIDを指し示すサイズ指示情報が復号される例を示している。他の例において、基本量子化行列のサイズは仕様において予め定義されてもよく、サイズ指示情報の復号は省略されてもよい。代替的に、シグナリングの対象であるサイズの数を指し示すサイズ数情報がさらに復号されてもよい。
【0166】
本節で説明した第1の実施形態では、個々の変換ブロックにおいて必要とされる量子化行列が、量子化又は逆量子化の時点で未生成である場合に、いわゆる「オンザフライ」で生成される。こうした構成によれば、多様な量子化行列の形状及びサイズの組み合わせのうち、実際には使用されない組み合わせに対応する量子化行列は生成されない。従って、量子化行列の生成に要する処理コストを低減することができる。また、基本量子化行列以外に、実際に使用される追加量子化行列のみが記憶されるため、メモリリソースの消費を低減することもできる。
【0167】
第1の実施形態とは対照的に、次節で説明する第2の実施形態では、追加量子化行列の生成は、複数の変換ブロックにわたる処理に先立って実行される。
【0168】
<3.第2の実施形態>
[3-1.エンコーダの構成]
(1)全体的な構成
図15は、第2の実施形態に係る、エンコーダの機能性を有する画像処理装置10bの構成の一例を示すブロック図である。
図15を参照すると、画像処理装置10bは、符号化制御部11、並び替えバッファ12、減算部13、直交変換部14、量子化部15b、可逆符号化部16、蓄積バッファ17、レート制御部18、逆量子化部21、逆直交変換部22、加算部23、インループフィルタ24、フレームメモリ25、スイッチ26、イントラ予測部30、インター予測部35、モード設定部40、QM記憶部115b及びQM生成部117bを備える。符号化制御部11は、第1の実施形態と同様に、ブロック設定部111及び基本QM設定部113を含む。可逆符号化部16は、第1の実施形態と同様に、SL符号化部119を含む。
【0169】
量子化部15bには、直交変換部14から入力される変換係数、及びレート制御部18からのレート制御信号が供給される。量子化部15bは、符号化対象画像内の1つ以上の変換ブロックの各々について、当該変換ブロックと同じサイズの量子化行列を用いて変換係数を量子化して、量子化変換係数(量子化データ)を生成する。量子化部15bは、符号化制御部11による制御に従って、変換係数に含まれる強制的にゼロ化された周波数成分の量子化をスキップする。そして、量子化部15bは、生成した量子化データを可逆符号化部16及び逆量子化部21へ出力する。また、量子化部15bは、レート制御信号に基づいて量子化ステップを切り替えることにより量子化データのビットレートを変化させてもよい。
【0170】
(2)量子化行列の生成に関係する機能性
図15に示した様々なコンポーネントの中で、ブロック設定部111、基本QM設定部113、QM記憶部115b、QM生成部117b及びSL符号化部119が、エンコーダにおいて実行される量子化行列の生成に主に関係する。これらコンポーネントの機能のうち、第1の実施形態における対応するコンポーネントと相違する部分について以下に説明する。
【0171】
QM記憶部115bは、画像処理装置10bにより利用される様々なサイズの様々な種類の量子化行列を記憶する記憶モジュールである。QM記憶部115bにより記憶される量子化行列は、基本QM設定部113により設定される基本量子化行列、及び、後述するQM生成部117bにより追加的に生成される追加量子化行列を含む。本実施形態においては、基本量子化行列及び追加量子化行列の双方が、複数の変換ブロックにわたる直交変換及び量子化に先立って生成され、それら処理を通じてQM記憶部115bにより記憶される。QM記憶部115bは、どのサイズの量子化行列が既に存在するかを指し示す内部的な制御情報である行列管理情報を管理してもよい。
【0172】
QM生成部117bは、複数の変換ブロックの変換係数の量子化に先立って、変換ブロックの複数のサイズ候補の各々に対応する追加量子化行列を生成する。例えば、QM生成部117bは、QM記憶部115bにより提供される行列管理情報に基づいて未生成であると判定されるサイズ候補の各々について、生成済みの基本量子化行列のうちのいずれかを参照量子化行列として選択し、選択した参照量子化行列をリサンプリングすることにより、当該サイズ候補の追加量子化行列を生成する。そして、QM生成部117bは、生成した追加量子化行列をQM記憶部115bに記憶させる。QM生成部117bは、リサンプリングされる参照量子化行列又はその部分行列を一時的に保持するメモリを含む。
【0173】
第1の実施形態に係るQM生成部117aと同様、QM生成部117bは、高周波成分のゼロ化が適用されないサイズの追加量子化行列を生成する際には、参照量子化行列の全体を参照する。また、QM生成部117bは、高周波成分のゼロ化が適用されるサイズの量子化行列を生成する際には、参照量子化行列の部分行列のみを参照する。後者の場合の、参照量子化行列のサイズに対する参照される部分行列のサイズの割合は、上述したように、生成される追加量子化行列のサイズに対する非ゼロ部分の割合に等しい。
【0174】
なお、第1の実施形態に関連して上で詳しく説明した、シンタックス及びセマンティクスの例、参照量子化行列を選択する手法の例、並びにリサンプリング(アップサンプリング又はダウンサンプリング)を通じて追加量子化行列を生成する手法の例に関する内容は、第2の実施形態にも等しく当てはまる。
【0175】
[3-2.符号化時の量子化関連処理の流れ]
図16は、
図15に示した画像処理装置10bにおいて実行される量子化関連処理の流れの一例を示すフローチャートである。なお、ここでは、説明の簡明さのために、符号化処理に含まれる様々な処理ステップのうち量子化に関連しない処理ステップの説明は省略される。
【0176】
まず、基本QM設定部113は、第1のサイズの第1の量子化行列を含む、1つ以上の基本量子化行列を設定する(ステップS211)。それら基本量子化行列は、QM記憶部115bにより記憶される。
【0177】
その後のステップS213~S214の処理は、1つ以上のサイズ候補の各々について、即ち、水平方向のサイズIDと垂直方向のサイズIDとの組み合わせの各々について繰り返される(ステップS212a)。さらに、その繰り返しにおいて、予測タイプと色成分との組み合わせに対応する複数のマトリクスIDの各々についての繰り返しが行われる(ステップS212b)。各繰り返しの対象とされるサイズ候補及びマトリクスIDを、ここではそれぞれ対象サイズ候補及び対象マトリクスIDという。
【0178】
QM生成部117bは、まず、対象サイズ候補及び対象マトリクスIDに対応する量子化行列が存在するかを、例えばQM記憶部115bにより提供される行列管理情報を参照することにより判定する(ステップS213)。QM生成部117bは、その量子化行列が存在しない場合、
図10を参照しながら上で説明した量子化行列生成処理を実行して、参照量子化行列から追加量子化行列を生成する(ステップS214)。ここで生成される追加量子化行列は、QM記憶部115bにより記憶される。
【0179】
追加量子化行列を生成するための繰り返しが完了した後、ステップS216~S217の処理が、ブロック設定部111により画像内に設定される複数の変換ブロックの各々について繰り返される(ステップS215)。各繰り返しの対象とされる変換ブロックを、ここでは対象変換ブロックという。
【0180】
量子化部15bは、対象変換ブロックのブロックサイズに対応する量子化行列を、QM記憶部115bから読み出す(ステップS216)。そして、量子化部15bは、読み出された量子化行列を用いて、対象変換ブロックの変換係数を量子化する(ステップS217)。
【0181】
SL符号化部119は、ステップS211において設定された1つ以上の基本量子化行列の各々を1次元化することにより、それらをスケーリングリストへ変換する(ステップS218)。次いで、SL符号化部119は、
図11を参照しながら上で説明したスケーリングリスト符号化処理を実行して、スケーリングリストデータを生成する(ステップS219)。
【0182】
図16には示していないものの、ステップS217において生成される変換ブロックごとの量子化変換係数は、可逆符号化部16により符号化され、スケーリングリストデータと共に符号化ストリームの一部となる。スケーリングリストデータは、シーケンス、ピクチャ、スライス又はタイルといったいかなる単位で更新されてもよい。
【0183】
[3-3.デコーダの構成]
(1)全体的な構成
図17は、第2の実施形態に係る、デコーダの機能性を有する画像処理装置60bの構成の一例を示すブロック図である。
図17を参照すると、画像処理装置60bは、復号制御部61、可逆復号部62、逆量子化部63b、逆直交変換部64、加算部65、インループフィルタ66、並び替えバッファ67、フレームメモリ68、セレクタ70及び71、イントラ予測部80、インター予測部85、QM記憶部165b、並びにQM生成部167bを備える。復号制御部61は、第1の実施形態と同様に、ブロック設定部161を含む。可逆復号部62は、第1の実施形態と同様に、SL復号部163を含む。
【0184】
逆量子化部63bは、画像に設定される1つ以上の変換ブロックの各々について、可逆復号部62から入力される量子化データ、即ち量子化変換係数を逆量子化して、変換係数を復元する。逆量子化部63bは、QM記憶部165bにより記憶される複数の量子化行列のうち変換ブロックと同じサイズの量子化行列を、当該変換ブロックの量子化変換係数を逆量子化するために使用する。逆量子化部63bは、復号制御部61による制御に従って、強制的にゼロ化された周波数成分の逆量子化をスキップする。そして、逆量子化部63bは、復元した変換係数を逆直交変換部64へ出力する。
【0185】
(2)量子化行列の生成に関係する機能性
図17に示した様々なコンポーネントの中で、ブロック設定部161、SL復号部163、QM記憶部165b及びQM生成部167bが、デコーダにおいて実行される量子化行列の生成に主に関係する。これらコンポーネントの機能のうち、第1の実施形態における対応するコンポーネントと相違する部分について以下に説明する。
【0186】
QM記憶部165bは、画像処理装置60bにより利用される様々なサイズの様々な種類の量子化行列を記憶する記憶モジュールである。QM記憶部165bにより記憶される量子化行列は、SL復号部163により生成される基本量子化行列、及び、後述するQM生成部167bにより追加的に生成される追加量子化行列を含む。本実施形態においては、基本量子化行列及び追加量子化行列の双方が、複数の変換ブロックにわたる逆量子化及び逆直交変換に先立って生成され、それら処理を通じてQM記憶部165bにより記憶される。QM記憶部165bは、どのサイズの量子化行列が既に存在するかを指し示す内部的な制御情報である行列管理情報を管理してもよい。
【0187】
QM生成部167bは、複数の変換ブロックの量子化変換係数の逆量子化に先立って、変換ブロックの複数のサイズ候補の各々に対応する追加量子化行列を生成する。例えば、QM生成部167bは、QM記憶部165bにより提供される行列管理情報に基づいて未生成であると判定されるサイズ候補の各々について、生成済みの基本量子化行列のうちのいずれかを参照量子化行列として選択し、選択した参照量子化行列をリサンプリングすることにより、当該サイズ候補の追加量子化行列を生成する。そして、QM生成部167bは、生成した追加量子化行列をQM記憶部165bに記憶させる。QM生成部167bは、リサンプリングされる参照量子化行列又はその部分行列を一時的に保持するメモリを含む。
【0188】
第1の実施形態に係るQM生成部167aと同様、QM生成部167bは、高周波成分のゼロ化が適用されないサイズの追加量子化行列を生成する際には、参照量子化行列の全体を参照する。また、QM生成部117bは、高周波成分のゼロ化が適用されるサイズの量子化行列を生成する際には、参照量子化行列の部分行列のみを参照する。後者の場合の、参照量子化行列のサイズに対する参照される部分行列のサイズの割合は、上述したように、生成される追加量子化行列のサイズに対する非ゼロ部分の割合に等しい。
【0189】
[3-4.復号時の逆量子化関連処理の流れ]
図18は、
図17に示した画像処理装置60bにおいて実行される逆量子化関連処理の流れの一例を示すフローチャートである。なお、ここでは、説明の簡明さのために、復号処理に含まれる様々な処理ステップのうち逆量子化に関連しない処理ステップの説明は省略される。
【0190】
まず、SL復号部163は、
図14を参照しながら上で説明したスケーリングリストデータ復号処理を実行して、1つ以上のサイズの基本量子化行列を表現するスケーリングリストを生成する(ステップS261)。次いで、SL復号部163は、1次元の要素値の配列である各スケーリングリストを、何らかのスキャン順で2次元配列へマッピングすることにより、基本量子化行列へ変換する(ステップS262)。QM記憶部165bは、このように生成される基本量子化行列を記憶する(ステップS263)。
【0191】
その後のステップS265~S266の処理は、1つ以上のサイズ候補の各々について、即ち、水平方向のサイズIDと垂直方向のサイズIDとの組み合わせの各々について繰り返される(ステップS264a)。さらに、その繰り返しにおいて、予測タイプと色成分との組み合わせに対応する複数のマトリクスIDの各々についての繰り返しが行われる(ステップS264b)。各繰り返しの対象とされるサイズ候補及びマトリクスIDを、ここではそれぞれ対象サイズ候補及び対象マトリクスIDという。
【0192】
QM生成部167bは、まず、対象サイズ候補及び対象マトリクスIDに対応する量子化行列が存在するかを、例えばQM記憶部165bにより提供される行列管理情報を参照することにより判定する(ステップS265)。QM生成部167bは、その量子化行列が存在しない場合、
図10を参照しながら上で説明した量子化行列生成処理を実行して、参照量子化行列から追加量子化行列を生成する(ステップS266)。ここで生成される追加量子化行列は、QM記憶部165bにより記憶される。
【0193】
追加量子化行列を生成するための繰り返しが完了した後、ステップS268~S269の処理が、ブロック設定部161により画像内に設定される複数の変換ブロックの各々について繰り返される(ステップS267)。各繰り返しの対象とされる変換ブロックを、ここでは対象変換ブロックという。
【0194】
逆量子化部63bは、対象変換ブロックのブロックサイズに対応する量子化行列を、QM記憶部165bから読み出す(ステップS268)。そして、逆量子化部63bは、読み出された量子化行列を用いて、対象変換ブロックの量子化変換係数を逆量子化する(ステップS269)。
【0195】
図18には示していないものの、ステップS269において逆量子化の結果として生成される周波数領域の変換係数は、逆直交変換部64により空間領域の信号サンプルである予測誤差へ変換される。量子化行列は、スケーリングリストデータの更新に応じて、シーケンス、ピクチャ、スライス又はタイルといったいかなる単位で更新されてもよい。
【0196】
本節で説明した第2の実施形態では、複数の変換ブロックにわたる処理に先立って、量子化処理又は逆量子化処理のために要する可能性のある多数の量子化行列が、予め生成される。こうした構成によれば、画像内のブロックごとの処理が開始した後に、不足している量子化行列を追加的に生成するための演算の必要性が排除され、処理性能が向上し得る。
【0197】
<4.ハードウェア構成例>
上述した実施形態は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組み合わせのいずれを用いて実現されてもよい。画像処理装置10a、10b、60a、60bがソフトウェアを使用する場合、ソフトウェアを構成するコンピュータプログラムが、例えば、装置の内部又は外部に設けられるコンピュータ読取可能な記憶媒体(非一時的な媒体:non-transitory media)に予め格納される。そして、各プログラムは、例えば、実行時にRAM(Random Access Memory)に読み込まれ、CPU(Central Processing Unit)などのプロセッサにより実行される。
【0198】
図19は、上述した実施形態を適用可能なデバイスのハードウェア構成の一例を示すブロック図である。
図19を参照すると、デバイス800は、システムバス810、画像処理チップ820及びオフチップメモリ890を備える。画像処理チップ820は、n個(nは1以上)の処理回路830-1、830-2、…、830-n、参照バッファ840、システムバスインタフェース850及びローカルバスインタフェース860を含む。
【0199】
システムバス810は、画像処理チップ820と外部モジュール(例えば、中央制御機能、アプリケーション機能、通信インタフェース又はユーザインタフェースなど)との間の通信路を提供する。処理回路830-1、830-2、…、830-nは、システムバスインタフェース850を介してシステムバス810と接続され、及びローカルバスインタフェース860を介してオフチップメモリ890と接続される。処理回路830-1、830-2、…、830-nは、オンチップメモリ(例えば、SRAM)に相当し得る参照バッファ840にもアクセスすることができる。オンチップメモリは、例えば、
図4に例示した内部メモリM12、又は
図7に例示した内部メモリM22を含んでもよい。一方、オフチップメモリ890は、例えば、
図4に例示したQMメモリM11、又は
図7に例示したQMメモリM21を含んでもよい。オフチップメモリ890は、画像処理チップ820により処理される画像データを記憶するフレームメモリをさらに含んでもよい。
【0200】
<5.まとめ>
ここまで、
図3A~
図19を用いて、本開示に係る技術の実施形態を詳細に説明した。上述した実施形態によれば、高周波成分のゼロ化が適用される第2のサイズの変換ブロックのための第2の量子化行列を生成する際に、スケーリングリストデータを復号することにより生成される第1のサイズの第1の量子化行列の全体ではなく、当該第1の量子化行列の部分行列のみが参照される。それにより、多様な量子化行列の生成に起因する、例えばハードウェアリソースの占有、処理遅延又は増加した電力消費といった処理コストへの影響を少なくとも軽減することができる。従って、量子化行列を効率的に生成し又はシグナリングするための改善された仕組みが提供される。
【0201】
また、上述した実施形態によれば、第2のサイズが高周波成分のゼロ化が適用されるサイズである場合に、第1のサイズに対する、第2の量子化行列を生成する際に参照される部分行列のサイズの割合は、第2のサイズに対する非ゼロ部分の割合に等しい。それにより、必ずゼロとなる変換係数に対応する量子化行列の要素を計算することに伴うリソースの無駄が排除され得る。
【0202】
また、ある実施例によれば、スケーリングリストデータから生成される基本量子化行列のサイズを指し示すサイズ指示情報が、制御パラメータとして明示的に符号化され又は復号される。これは、多様な量子化行列の生成の基礎となる基本量子化行列のサイズを可変的に指し示すことが可能であること、従って、ユーザが望む形で量子化行列を柔軟に使い分けることが可能となることを意味する。他の実施形態によれば、予め定義される1つ以上のサイズの各々についてのスケーリングリストデータが復号され、当該1つ以上のサイズは、基本量子化行列のサイズを含む。この場合、サイズ指示情報の符号化の必要性が排除される。
【0203】
また、ある実施例によれば、どのサイズの変換ブロックに高周波成分のゼロ化が適用されるかに関するルールが、仕様において予め定義される。この場合、各変換ブロックについて高周波成分のゼロ化が適用されるか否かを判定するための制御パラメータの符号化が必要とされない。他の実施例によれば、高周波成分のゼロ化が適用されるかを指し示す各変換ブロックに関連付けられるゼロ化フラグが、制御パラメータとして明示的に符号化され又は復号される。それにより、ゼロ化のオン/オフを動的に制御することが可能となる。他の実施例によれば、どのサイズの変換ブロックに高周波成分のゼロ化が適用されるかを指し示すゼロ化サイズ情報が、制御パラメータとして明示的に符号化され又は復号される。それにより、ゼロ化の対象サイズを動的に制御することが可能となる。これら実施例によれば、ユーザのニーズ又はシステムの要件若しくは制約に応じて、微細な高周波成分をも表現する画像の柔軟な再生を可能とする仕組みが提供される。
【0204】
また、上述した実施形態によれば、上記第2の量子化行列を生成する際に、上記部分行列がメモリに読み出され一時的に保持される。従って、必要十分な量のメモリリソースのみが確保されるため、エンコーダ又はデコーダといったデバイスの性能が最適化される。
【0205】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【0206】
(実施形態の組み合わせ)
なお、上で説明した実施形態及び関連する様々な例は、いかなる態様で組み合わせられてもよく、本開示に係る技術は、上で直接的に言及した組み合わせに限定されない。例えば、第1の実施形態に関連して説明した任意の手法が、第2の実施形態に関連して説明した任意の手法と組み合わせられてよい。
【0207】
(提案技術の適用対象)
本開示に係る技術は、任意の映像符号化方式(映像復号方式)に適用可能である。即ち、明らかな矛盾が生じない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測及びフィルタリングといった符号化及び復号に関連する処理の仕様は、本開示に係る技術のスコープを限定しない。また、明らかな矛盾が生じない限り、これら処理のうちの一部が省略されてもよい。
【0208】
(ブロック)
概して、「ブロック」とは、画像(ピクチャ、スライス又はタイル等を含む)の任意の部分領域を指す用語である(例外的に、何らかの機能性を実行する機能ブロックを指すことがあり得る)。別段の説明の無い限り、ブロックのサイズ、形状及び特性は、本開示に係る技術のスコープを限定しない。例えば、「ブロック」という概念は、上述した参照文献REF1~REF3において言及されている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)、サブブロック、マクロブロック、タイル及びスライスといった、様々な部分領域(処理単位)を含む。
【0209】
(データ単位/処理単位)
本明細書で言及した様々なパラメータ、データ又は情報が適用される対象の範囲は、上述した例に限定されず、いかなる範囲であってもよい。同様に、本明細書で言及した様々な処理が実行される対象の範囲は、上述した例に限定されず、いかなる範囲であってもよい。例えば、それら範囲は、TB、TU、PB、PU、SCU、CU、LCU、CTB、CTU、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、又はコンポーネントの少なくとも1つを単位(データ単位/処理単位)として設定されてもよい。当然ながら、データ単位/処理単位は、個別のパラメータ、データ若しくは情報ごとに、又は処理ごとに設定されてよく、それら全てにわたって共通していてもいなくてもよい。なお、パラメータ、データ又は情報は任意の場所で記憶され又は伝送されてよく、例えば上述した単位のヘッダ又はパラメータセット内で保持されてもよい。また、複数の場所において分散的に記憶され又は伝送されてもよい。
【0210】
(制御情報)
本開示に係る技術に関連するいかなる制御情報が符号化側から復号側へ伝送されてもよい。例えば、上述した様々な機能性の任意の部分を有効化し又は無効化することを指示するための制御情報(例えば、enabled_flag)が伝送されてもよい。また、上述した様々な機能性の任意の部分の適用範囲(又は適用されない範囲)を指示する制御情報が伝送されてもよい。例えば、本開示に係る技術が適用されるブロックサイズ(上限若しくは下限、又はその双方)、フレーム、コンポーネント、又はレイヤを指定する制御情報が伝送されてもよい。
【0211】
(ブロックサイズ情報)
制御情報において、ブロックサイズは、サイズ値で直接的に表現される代わりに、サイズの値へマッピングされる識別子又はインデックスを介して間接的に表現されてもよい。また、例えば、サイズ値又は対応する識別子若しくはインデックスは、何らかの基準値(例えば、LCU又はSCUのサイズ)との比又は差分として表現されてもよい。例えば、シンタックスエレメントに含まれるサイズ情報が、ここで説明した手法で間接的にサイズ値を指定してもよい。それにより、符号化され、伝送され又は記憶される情報量を低減し、符号化効率を向上させることができる可能性がある。また、ここで説明したブロックサイズを指定するための手法が、ブロックサイズの範囲を指定する際に利用されてもよい。
【0212】
(その他)
概して、「フラグ」とは、複数の状態を識別するための情報を意味し、真(1)又は偽(0)という2つの状態を区別するのみならず、3つ以上の状態を区別可能であってもよい。即ち、「フラグ」の値は、例えば1又は0の2値であってもよく、又は3値以上であってもよい。従って、1つの「フラグ」はいかなる数のビットで構成されてもよく、単一ビットであっても複数ビットであってもよい。また、フラグその他の識別情報を含み得る制御情報は、それ自体がビットストリームに包含されてもよく、又は、何らかの基準としての情報に対する差分情報としてビットストリームに包含されてもよい。
【0213】
さらに、符号化ストリーム又は符号化ビットストリームといった符号化データに関連する様々なデータ及びメタデータは、符号化データに関連付けられている限り、どのような形態で伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得るようにする(例えば、互いにリンクさせ又はマッピングする)ことを意味する。即ち、互いに関連付けられたデータは、1つのデータとして統合的に扱われてもよく、又は別個のデータとして扱われてもよい。例えば、符号化データ(符号化された画像)に関連付けられた情報が、その符号化データとは別の伝送路上で伝送されてもよい。また、符号化データに関連付けられた情報は、その符号化データとは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。また、データの全体ではなく任意の部分同士で、上述した「関連付け」が行われてもよい。例えば、画像とその画像に関連する情報とが、複数フレーム、1フレーム、又はフレーム内の一部分といった任意の単位で互いに関連付けられてよい。
【0214】
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」及び「挿入する」といった用語が、別個のデータを統合的に扱うことを意味するために、又は別個のデータを互いに「関連付ける」ことを意味するために使用されているかもしれない。
【0215】
本開示に係る技術は、装置又はシステムを構成するいかなるコンポーネント(例えば、システムLSI(Large Scale Integration)などのプロセッサ、複数のプロセッサを包含するモジュール、複数のモジュールを包含するユニット、又は、モジュール若しくはユニットに追加的な機能性を付加したセット)において実装されてもよい。
【0216】
本明細書において、システムとは、複数のエレメント(例えば、装置、ユニット、モジュール、コンポーネントなど)の集合を意味し、但しそれらエレメントの全てが同一の筐体中に存在してもしなくてもよい。即ち、システムとは、例えば、別個の筐体に収納され、ネットワークを介して互いに接続される複数のモジュールの集合、及び、1つの筐体に収納される複数のモジュールの集合の双方を含む概念である。
【0217】
また、例えば、単一のコンポーネント(例えば、処理部)として説明したコンポーネントが、複数のコンポーネントへ分割される態様で構成されてもよい。逆に、本明細書において説明した複数のコンポーネントが単一のコンポーネントとして構成されてもよい。本明細書において説明したコンポーネントに、説明したもの以外の構成が付加されてもよい。さらに、システム全体としての機能性又は動作が実質的に同じである限り、ある装置の構成の一部が他の装置に包含されてもよい。また、例えば、本開示に係る技術は、1つ又は複数の機能をネットワークを介して相互接続される複数の装置で協調的に又は分散的に遂行する、クラウドコンピューティング技法を用いて実現されてもよい。
【0218】
あるフローチャートに記述されている1つ以上のステップが、1つの装置において実行される代わりに、複数の装置で分散的に実行されてもよい。1つのステップを構成する複数個の演算が、1つの装置において実行される代わりに、複数の装置で分散的に実行されてもよい。
【0219】
コンピュータにより実行されるプログラムを構成するプログラム命令は、本明細書で説明した2つ以上の処理ステップを、コンピュータに、説明した順序の通りに実行させてもよく、並列的に実行させてもよく、又は、何らかのイベントの発生若しくは外部からの呼び出しをトリガとして個別に実行させてもよい。即ち、明らかな矛盾が生じない限り、本明細書で説明した処理ステップは、説明した順序とは異なる順序で実行されてもよい。さらに、あるプログラム又はプログラム命令に基づいて実行される処理ステップが、他のプログラム又はプログラム命令に基づいて実行される処理ステップと並列的に又は共同的に実行されてもよい。
【0220】
本明細書に記載された効果は、あくまで説明的又は例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果と共に、又は上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏し得る。
【0221】
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
スケーリングリストデータを復号して、第1のサイズの第1の量子化行列を生成する復号部と、
高周波成分のゼロ化が適用される第2のサイズの変換ブロックのための第2の量子化行列を、前記復号部により生成される前記第1の量子化行列の部分行列のみを参照することにより生成する生成部と、
前記生成部により生成される前記第2の量子化行列を用いて、前記第2のサイズの変換ブロックの量子化変換係数を逆量子化する逆量子化部と、
を備える画像処理装置。
(2)
前記第1のサイズに対する前記部分行列のサイズの割合は、前記第2のサイズに対する非ゼロ部分の割合に等しい、前記(1)に記載の画像処理装置。
(3)
前記復号部は、前記スケーリングリストデータから生成される量子化行列のサイズを指し示すサイズ指示情報を復号し、
前記サイズ指示情報により指し示されるサイズは、前記第1のサイズを含み、前記第2のサイズを含まない、
前記(1)又は前記(2)に記載の画像処理装置。
(4)
前記復号部は、予め定義される1つ以上のサイズの各々についてのスケーリングリストデータを復号して、前記1つ以上のサイズの量子化行列を生成し、
予め定義される前記1つ以上のサイズは、前記第1のサイズを含み、前記第2のサイズを含まない、
前記(1)又は前記(2)に記載の画像処理装置。
(5)
前記生成部は、高周波成分のゼロ化が適用されない第3のサイズの変換ブロックのための第3の量子化行列を、前記復号部により生成される前記第1の量子化行列の全体を参照することにより生成する、前記(1)~(4)のいずれか1項に記載の画像処理装置。
(6)
前記生成部は、どのサイズの変換ブロックに前記ゼロ化が適用されるかを予め定義するルールに従って、前記第2のサイズの変換ブロックに前記ゼロ化が適用されることを判定する、前記(1)~(5)のいずれか1項に記載の画像処理装置。
(7)
前記生成部は、前記ゼロ化が適用されるかを指し示す、各変換ブロックに関連付けられるゼロ化フラグに基づいて、前記第2のサイズの変換ブロックに前記ゼロ化が適用されることを判定する、前記(1)~(5)のいずれか1項に記載の画像処理装置。
(8)
前記生成部は、どのサイズの変換ブロックに前記ゼロ化が適用されるかを指し示すゼロ化サイズ情報に基づいて、前記第2のサイズの変換ブロックに前記ゼロ化が適用されることを判定する、前記(1)~(5)のいずれか1項に記載の画像処理装置。
(9)
前記生成部は、前記第2の量子化行列を生成する際に前記部分行列を一時的に保持するメモリ、を含む、前記(1)~(8)のいずれか1項に記載の画像処理装置。
(10)
前記画像処理装置は、前記第1の量子化行列を複数の変換ブロックにわたる処理を通じて記憶する記憶部、をさらに備え、
前記生成部は、前記第2のサイズの個別の変換ブロックの量子化変換係数が逆量子化される際に、前記第2の量子化行列を生成する、
前記(1)~(9)のいずれか1項に記載の画像処理装置。
(11)
前記生成部は、複数の変換ブロックにわたる処理に先立って、前記第2の量子化行列を生成し、
前記画像処理装置は、前記第1の量子化行列及び前記第2の量子化行列を含む複数の量子化行列を、前記複数の変換ブロックにわたる処理を通じて記憶する記憶部、をさらに備える、
前記(1)~(9)のいずれか1項に記載の画像処理装置。
(12)
前記逆量子化部は、QTBT(Quad-Tree plus Binary Tree)ブロック分割を通じて画像内に設定される複数の変換ブロックの各々について逆量子化処理を実行する、前記(1)~(11)のいずれか1項に記載の画像処理装置。
(13)
画像処理装置により実行される画像処理方法であって、
スケーリングリストデータを復号して、第1のサイズの第1の量子化行列を生成することと、
高周波成分のゼロ化が適用される第2のサイズの変換ブロックのための第2の量子化行列を、生成される前記第1の量子化行列の部分行列のみを参照することにより生成することと、
生成される前記第2の量子化行列を用いて、前記第2のサイズの変換ブロックの量子化変換係数を逆量子化することと、
を含む画像処理方法。
(14)
高周波成分のゼロ化が適用される第2のサイズの変換ブロックのための第2の量子化行列を、第1のサイズの第1の量子化行列の部分行列のみを参照することにより生成する生成部と、
符号化対象画像内の前記第2のサイズの変換ブロックの変換係数を、前記生成部により生成される前記第2の量子化行列を用いて量子化して、量子化変換係数を生成する量子化部と、
前記量子化変換係数及び前記第1の量子化行列を表現するスケーリングリストを符号化して、符号化ストリームを生成する符号化部と、
を備える画像処理装置。
(15)
画像処理装置により実行される画像処理方法であって、
高周波成分のゼロ化が適用される第2のサイズの変換ブロックのための第2の量子化行列を、第1のサイズの第1の量子化行列の部分行列のみを参照することにより生成することと、
符号化対象画像内の前記第2のサイズの変換ブロックの変換係数を、生成される前記第2の量子化行列を用いて量子化して、量子化変換係数を生成することと、
前記量子化変換係数及び前記第1の量子化行列を表現するスケーリングリストを符号化して、符号化ストリームを生成することと、
を含む画像処理方法。
【符号の説明】
【0222】
10a,10b 画像処理装置(エンコーダ)
15a,15b 量子化部
16 可逆符号化部
111 ブロック設定部
113 QM設定部
115a,115b QM記憶部
117a,117b QM生成部
119 SL符号化部
60a,60b 画像処理装置(デコーダ)
62 可逆復号部
63a,63b 逆量子化部
161 ブロック設定部
163 SL復号部
165a,165b QM記憶部
167a,167b QM生成部