(58)【調査した分野】(Int.Cl.,DB名)
前記予測モードおよび前記色成分の少なくとも1つの組み合わせは、ルマ成分のイントラ予測と、クロマ成分のイントラ予測と、ルマ成分のインター予測と、クロマ成分のインター予測と、を含む、
請求項2に記載の画像処理装置。
前記予測モードおよび前記色成分の少なくとも1つの組み合わせは、Y成分のイントラ予測と、Cb成分のイントラ予測と、Cr成分のイントラ予測と、Y成分のインター予測と、Cb成分のインター予測と、Cr成分のインター予測と、を含む、
請求項2に記載の画像処理装置。
前記予測モードおよび前記色成分の少なくとも1つの組み合わせは、ルマ成分のイントラ予測と、クロマ成分のイントラ予測と、ルマ成分のインター予測と、クロマ成分のインター予測と、を含む、
請求項7に記載の画像処理方法。
前記予測モードおよび前記色成分の少なくとも1つの組み合わせは、Y成分のイントラ予測と、Cb成分のイントラ予測と、Cr成分のイントラ予測と、Y成分のインター予測と、Cb成分のインター予測と、Cr成分のインター予測と、を含む、
請求項7に記載の画像処理方法。
【発明を実施するための形態】
【0017】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【0018】
また、以下の順序で説明を行う。
1.一実施形態に係る画像符号化装置の構成例
1−1.全体的な構成例
1−2.シンタックス処理部の構成例
1−3.パラメータ構成例
2.一実施形態に係る符号化時の処理の流れ
3.一実施形態に係る画像復号装置の構成例
3−1.全体的な構成例
3−2.シンタックス処理部の構成例
4.一実施形態に係る復号時の処理の流れ
4−1.量子化行列の生成
4−2.スライスへの量子化行列の設定
5.シンタックスの例
5−1.第1の例
5−2.第2の例
6.パラメータセットの様々な構成例
6−1.第1の手法
6−2.第1の手法の変形例
6−3.第2の手法
6−4.第3の手法
6−5.第3の手法の変形例
7.応用例
8.まとめ
【0019】
<1.一実施形態に係る画像符号化装置の構成例>
本節では、一実施形態に係る画像符号化装置の構成例について説明する。
【0020】
[1−1.全体的な構成例]
図1は、一実施形態に係る画像符号化装置10の構成の一例を示すブロック図である。
図1を参照すると、画像符号化装置10は、A/D(Analogue to Digital)変換部11、並び替えバッファ12、シンタックス処理部13、減算部14、直交変換部15、量子化部16、可逆符号化部17、蓄積バッファ18、レート制御部19、逆量子化部21、逆直交変換部22、加算部23、デブロックフィルタ24、フレームメモリ25、セレクタ26、イントラ予測部30、動き探索部40、及びモード選択部50を備える。
【0021】
A/D変換部11は、アナログ形式で入力される画像信号をデジタル形式の画像データに変換し、一連のデジタル画像データを並び替えバッファ12へ出力する。
【0022】
並び替えバッファ12は、A/D変換部11から入力される一連の画像データに含まれる画像を並び替える。並び替えバッファ12は、符号化処理に係るGOP(Group of Pictures)構造に応じて画像を並び替えた後、並び替え後の画像データをシンタックス処理部13へ出力する。
【0023】
並び替えバッファ12からシンタックス処理部13へ出力される画像データは、NAL(Network Abstraction Layer:ネットワーク抽象レイヤ)ユニットという単位でビットストリームへマッピングされる。画像データのストリームは、1つ以上のシーケンスを含む。シーケンスの先頭のピクチャは、IDR(Instantaneous Decoding Refresh)ピクチャと呼ばれる。各シーケンスは1つ以上のピクチャを含み、さらに各ピクチャは1つ以上のスライスを含む。H.264/AVC及びHEVCでは、これらスライスが映像の符号化及び復号の基本的な単位である。各スライスのデータは、VCL(Video Coding Layer:ビデオ符号化レイヤ) NALユニットとして認識される。
【0024】
シンタックス処理部13は、並び替えバッファ12から入力される画像データのストリーム内のNALユニットを順次認識し、ヘッダ情報を格納する非VCL NALユニットをストリームに挿入する。シンタックス処理部13がストリームに挿入する非VCL NALユニットは、シーケンスパラメータセット(SPS:Sequence Parameter Set)及びピクチャパラメータセット(PPS:Picture Parameter Set)を含む。さらに、本実施形態において、シンタックス処理部13は、SPS及びPPSとは異なる非VCL NALユニットである量子化行列パラメータセット(QMPS:Quantization Matrix Parameter Set)をストリームに挿入する。また、シンタックス処理部13は、スライスの先頭にスライスヘッダ(SH:Slice Header)を付加する。そして、シンタックス処理部13は、VCL NALユニット及び非VCL NALユニットを含む画像データのストリームを、減算部14、イントラ予測部30及び動き探索部40へ出力する。シンタックス処理部13の詳細な構成について、後にさらに説明する。
【0025】
減算部14には、シンタックス処理部13から入力される画像データ、及び後に説明するモード選択部50により選択される予測画像データが供給される。減算部14は、シンタックス処理部13から入力される画像データとモード選択部50から入力される予測画像データとの差分である予測誤差データを算出し、算出した予測誤差データを直交変換部15へ出力する。
【0026】
直交変換部15は、減算部14から入力される予測誤差データについて直交変換を行う。直交変換部15により実行される直交変換は、例えば、離散コサイン変換(Discrete Cosine Transform:DCT)又はカルーネン・レーベ変換などであってよい。直交変換部15は、直交変換処理により取得される変換係数データを量子化部16へ出力する。
【0027】
量子化部16は、直交変換部15から入力される変換係数データを量子化行列を用いて量子化し、量子化後の変換係数データ(以下、量子化データという)を可逆符号化部17及び逆量子化部21へ出力する。量子化データのビットレートは、レート制御部19からのレート制御信号に基づいて制御される。量子化部16により使用される量子化行列は、量子化行列パラメータセット内で定義され、スライスごとにスライスヘッダ内で指定され得る。量子化行列が指定されない場合には、全ての成分について等しい量子化ステップを有するフラットな量子化行列が使用される。
【0028】
可逆符号化部17は、量子化部16から入力される量子化データについて可逆符号化処理を行うことにより、符号化ストリームを生成する。可逆符号化部17による可逆符号化は、例えば、可変長符号化、又は算術符号化などであってよい。また、可逆符号化部17は、モード選択部50から入力されるイントラ予測に関する情報又はインター予測に関する情報を、符号化ストリームのヘッダ内に多重化する。そして、可逆符号化部17は、生成した符号化ストリームを蓄積バッファ18へ出力する。
【0029】
蓄積バッファ18は、可逆符号化部17から入力される符号化ストリームを半導体メモリなどの記憶媒体を用いて一時的に蓄積する。そして、蓄積バッファ18は、蓄積した符号化ストリームを、伝送路の帯域に応じたレートで、図示しない伝送部(例えば、通信インタフェース又は周辺機器との接続インタフェースなど)へ出力する。
【0030】
レート制御部19は、蓄積バッファ18の空き容量を監視する。そして、レート制御部19は、蓄積バッファ18の空き容量に応じてレート制御信号を生成し、生成したレート制御信号を量子化部16へ出力する。例えば、レート制御部19は、蓄積バッファ18の空き容量が少ない時には、量子化データのビットレートを低下させるためのレート制御信号を生成する。また、例えば、レート制御部19は、蓄積バッファ18の空き容量が十分大きい時には、量子化データのビットレートを高めるためのレート制御信号を生成する。
【0031】
逆量子化部21は、量子化部16から入力される量子化データについて、量子化行列を用いて逆量子化処理を行う。そして、逆量子化部21は、逆量子化処理により取得される変換係数データを、逆直交変換部22へ出力する。
【0032】
逆直交変換部22は、逆量子化部21から入力される変換係数データについて逆直交変換処理を行うことにより、予測誤差データを復元する。そして、逆直交変換部22は、復元した予測誤差データを加算部23へ出力する。
【0033】
加算部23は、逆直交変換部22から入力される復元された予測誤差データとモード選択部50から入力される予測画像データとを加算することにより、復号画像データを生成する。そして、加算部23は、生成した復号画像データをデブロックフィルタ24及びフレームメモリ25へ出力する。
【0034】
デブロックフィルタ24は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタリング処理を行う。デブロックフィルタ24は、加算部23から入力される復号画像データをフィルタリングすることによりブロック歪みを除去し、フィルタリング後の復号画像データをフレームメモリ25へ出力する。
【0035】
フレームメモリ25は、加算部23から入力される復号画像データ、及びデブロックフィルタ24から入力されるフィルタリング後の復号画像データを記憶媒体を用いて記憶する。
【0036】
セレクタ26は、イントラ予測のために使用されるフィルタリング前の復号画像データをフレームメモリ25から読み出し、読み出した復号画像データを参照画像データとしてイントラ予測部30に供給する。また、セレクタ26は、インター予測のために使用されるフィルタリング後の復号画像データをフレームメモリ25から読み出し、読み出した復号画像データを参照画像データとして動き探索部40に供給する。
【0037】
イントラ予測部30は、シンタックス処理部13から入力される符号化対象の画像データ、及びセレクタ26を介して供給される復号画像データに基づいて、各イントラ予測モードのイントラ予測処理を行う。例えば、イントラ予測部30は、各イントラ予測モードによる予測結果を所定のコスト関数を用いて評価する。そして、イントラ予測部30は、コスト関数値が最小となるイントラ予測モード、即ち圧縮率が最も高くなるイントラ予測モードを、最適なイントラ予測モードとして選択する。さらに、イントラ予測部30は、当該最適なイントラ予測モードを示す予測モード情報、予測画像データ、及びコスト関数値などのイントラ予測に関する情報を、モード選択部50へ出力する。
【0038】
動き探索部40は、シンタックス処理部13から入力される符号化対象の画像データ、及びセレクタ26を介して供給される復号画像データに基づいて、インター予測処理(フレーム間予測処理)を行う。例えば、動き探索部40は、各予測モードによる予測結果を所定のコスト関数を用いて評価する。次に、動き探索部40は、コスト関数値が最小となる予測モード、即ち圧縮率が最も高くなる予測モードを、最適な予測モードとして選択する。また、動き探索部40は、当該最適な予測モードに従って予測画像データを生成する。そして、動き探索部40は、選択した最適な予測モードを表す予測モード情報、予測画像データ、及びコスト関数値などのインター予測に関する情報を、モード選択部50へ出力する。
【0039】
モード選択部50は、イントラ予測部30から入力されるイントラ予測に関するコスト関数値と動き探索部40から入力されるインター予測に関するコスト関数値とを比較する。そして、モード選択部50は、イントラ予測及びインター予測のうちコスト関数値がより少ない予測手法を選択する。モード選択部50は、イントラ予測を選択した場合には、イントラ予測に関する情報を可逆符号化部17へ出力すると共に、予測画像データを減算部14及び加算部23へ出力する。また、モード選択部50は、インター予測を選択した場合には、インター予測に関する上述した情報を可逆符号化部17へ出力すると共に、予測画像データを減算部14及び加算部23へ出力する。
【0040】
[1−2.シンタックス処理部の構成例]
図2は、
図1に示した画像符号化装置10のシンタックス処理部13の詳細な構成の一例を示すブロック図である。
図2を参照すると、シンタックス処理部13は、設定部110、パラメータ生成部120及び挿入部130を有する。
【0041】
(1)設定部
設定部110は、画像符号化装置10による符号化処理のために使用される様々な設定を保持する。例えば、設定部110は、画像データの各シーケンスのプロファイル、各ピクチャの符号化モード、及びGOP構造に関するデータなどを保持する。また、本実施形態において、設定部110は、量子化部16(及び逆量子化部21)により使用される量子化行列についての設定を保持する。量子化部16によりどういった量子化行列を使用すべきかは、典型的には、オフラインでの画像の解析に基づいて、スライスごとに予め決定され得る。
【0042】
例えば、デジタルビデオカメラの様な応用例では、入力画像に圧縮ひずみが存在しないため、高域においても量子化ステップをより小さくした量子化行列が使用され得る。量子化行列は、ピクチャ単位又はフレーム単位で変化する。入力画像の複雑性が低い場合には、量子化ステップのより小さいフラットな量子化行列を使用することで、ユーザに主観的に感知される画質を向上させることができる。一方、入力画像の複雑性が高い場合には、符号量の増大を抑制するために、より大きい量子化ステップを用いることが望ましい。この場合、フラットな量子化行列を使用すると低域信号のひずみがブロックノイズとして認識される恐れがある。そのため、低域から高域に向かって量子化ステップが増加するような量子化行列を使用してノイズを低減することが有益である。
【0043】
MPEG2で符号化された放送コンテンツを再圧縮するレコーダの様な応用例では、入力画像自体に、モスキートノイズなどのMPEG2の圧縮ひずみが存在する。モスキートノイズは、高域信号をより大きい量子化ステップで量子化した結果として生じるノイズであり、ノイズの周波数成分自体も極めて高い周波数となる。このような入力画像については、再圧縮する際に、高域に大きい量子化ステップを有する量子化行列を使用することが望ましい。また、プログレッシブ信号と比較して、インターレース信号では、飛び越し走査の影響で、水平方向の信号の相関の方が垂直方向の信号の相関よりも高い。そのため、画像信号がプログレッシブ信号であるかインターレース信号であるかに応じて異なる量子化行列を使用することも有益である。いずれの場合にも、画像の内容に応じて、最適な量子化行列はピクチャ単位又はフレーム単位で変化し得る。
【0044】
(2)パラメータ生成部
パラメータ生成部120は、設定部110により保持されている符号化処理のための設定を定義するパラメータを生成し、生成したパラメータを挿入部130へ出力する。
【0045】
例えば、本実施形態において、パラメータ生成部120は、量子化部16により使用される量子化行列を定義する量子化行列パラメータを生成する。パラメータ生成部120により生成される一群の量子化行列パラメータは、量子化行列パラメータセット(QMPS)に含められる。各QMPSには、各QMPSを互いに識別するための識別子であるQMPS IDが付与される。典型的には、1つのQMPS内で、複数の種類の量子化行列が定義される。量子化行列の種類は、行列サイズ、並びに対応する予測方式及び信号成分によって互いに区別される。例えば、1つのQMPS内で、4×4、8×8、16×16及び32×32の各サイズについて最大で6種類の量子化行列(イントラ予測/インター予測のY/Cb/Cr成分)が定義され得る。
【0046】
より具体的には、パラメータ生成部120は、H.264/AVCにおける量子化行列の符号化処理と同様に、各量子化行列をジグザグスキャンによって一次元配列に変形し、一次元配列の各要素の値をDPCM(Differential Pulse Code Modulation)方式で符号化してもよい。この場合、DPCMの差分データの一次元配列が量子化行列パラメータとなる。量子化行列パラメータの生成のためのこのようなモードを、本明細書では、全スキャンモードという。
【0047】
また、パラメータ生成部120は、量子化行列パラメータの符号量を削減するために、全スキャンモードとは異なるモードで量子化行列パラメータを生成してもよい。例えば、パラメータ生成部120は、全スキャンモードの代わりに、次に説明するコピーモード又は軸指定モードで量子化行列パラメータを生成してもよい。
【0048】
コピーモードは、あるスライスについて使用される量子化行列が既に定義された量子化行列に類似し又は等しい場合に選択され得るモードである。コピーモードの場合には、パラメータ生成部120は、コピー元の量子化行列が定義されているQMPSのQMPS ID、並びにコピー元の量子化行列のサイズ及びタイプを、量子化行列パラメータとしてQMPSに含める。なお、本明細書において、ある量子化行列に対応する予測方式と信号成分との組合せを、当該量子化行列のタイプという。パラメータ生成部120は、定義しようとする量子化行列とコピー元の量子化行列との間で差分が存在する場合には、各成分の残差を表す残差行列を生成するための残差データを、QMPSにさらに含めてもよい。
【0049】
軸指定モードについての処理は、さらに差分方式と補間方式という2つの指定方式によって分けられる。差分方式では、パラメータ生成部120は、変換単位の最も左の列である縦軸、最も上の行である横軸及び対角線に沿った斜め軸に該当する量子化行列の要素の値のみを指定する。補間方式では、パラメータ生成部120は、変換単位の左上(DC成分)、右上、左下及び右下という4つのコーナーに該当する量子化行列の要素の値のみを指定する。残りの要素の値は、線形補間、キュービック補間又はラグランジュ補間などの任意の手法で補間され得る。軸指定モードにおいても、パラメータ生成部120は、定義しようとする量子化行列と補間後の量子化行列との間で差分が存在する場合には、各成分の残差を表す残差行列を生成するための残差データを、QMPSにさらに含めてもよい。
【0050】
(3)挿入部
挿入部130は、パラメータ生成部120により生成されるパラメータ群をそれぞれ含むSPS、PPS、QMPS及びスライスヘッダなどのヘッダ情報を、並び替えバッファ12から入力される画像データのストリームに挿入する。上述したように、QMPSは、SPS及びPPSとは異なる非VCL NALユニットである。QMPSには、パラメータ生成部120により生成される量子化行列パラメータが含められる。そして、挿入部130は、ヘッダ情報の挿入された画像データのストリームを、減算部14、イントラ予測部30及び動き探索部40へ出力する。
【0051】
[1−3.パラメータ構成例]
(1)量子化行列パラメータセット
図3は、本実施形態において各QMPSに含まれるパラメータの一例を示す説明図である。
図3を参照すると、各QMPSには、「QMPS ID」、「生成モード存在フラグ」、「生成モード」及び各モードごとに異なる量子化行列パラメータが含まれる。
【0052】
「QMPS ID」は、各QMPSを互いに識別するための識別子である。QMPS IDは、例えば、0〜31の範囲の整数などであってよい。未使用のQMPS IDの指定は、新たなQMPSが定義されることを意味する。シーケンス内で既に使用されているQMPS IDの再指定は、定義済みのQMPSが更新されることを意味する。
【0053】
「生成モード存在フラグ」は、量子化行列生成処理のモードを表す区分である「生成モード」が当該QMPS内に存在するか否かを示すフラグである。生成モード存在フラグが「0:存在せず」を示す場合には、当該QMPS内では、全スキャンモードで量子化行列が定義される。一方、生成モード存在フラグが「1:存在する」を示す場合には、当該QMPS内に「生成モード」が存在する。
【0054】
「生成モード」は、例えば、「0:コピー」、「1:軸指定」又は「2:全スキャン」のいずれかの値をとり得る区分である。後に説明するシンタックスの擬似コードでは、生成モードは“pred_mode”という変数によって表される。
【0055】
コピーモード(即ち、pred_mode=0)の場合には、QMPSは、量子化行列パラメータとして、「ソースID」、「コピー元サイズ」、「コピー元タイプ」、「残差フラグ」及び「残差データ」を含み得る。「ソースID」は、コピー元の量子化行列が定義されたQMPSを指定するQMPS IDである。「コピー元サイズ」は、コピー元の量子化行列のサイズである。「コピー元タイプ」は、コピー元の量子化行列のタイプ(イントラ−Y、イントラ−Cb、…、インターCr)である。「残差フラグ」は、残差が存在するか否かを示すフラグである。「残差データ」は、残差が存在する場合に残差を表す残差行列を生成するためのデータである。残差フラグが「0:存在せず」を示す場合には、残差データは省略され得る。
【0056】
なお、あるQMPSのソースIDが当該QMPS自身のQMPS IDと等しい場合には、
図38に例示したような既定の量子化行列が指定されたものと解釈されてよい。それにより、既定の量子化行列を指定するための独立したフラグをQMPSに含めなくてもよくなるため、QMPSの符号量が削減され得る。
【0057】
軸指定モード(即ち、pred_mode=1)の場合には、QMPSは、量子化行列パラメータとして、「指定方式フラグ」に加えて、「基準軸データ」及び「コーナーデータ」のいずれか一方、「残差フラグ」、並びに「残差データ」を含み得る。指定方式フラグは、量子化行列の生成の基準となる基準軸の要素の値をどのように指定するかを示すフラグであり、例えば、「0:差分」又は「1:補間」のいずれかの値をとり得る。指定方式が「0:差分」の場合には、量子化行列の基準軸である縦軸、横軸及び斜め軸に該当する要素の値が、基準軸データにより指定される。指定方式が「1:補間」の場合には、量子化行列の左上、右上、左下及び右下という4つのコーナーに該当する要素の値が、コーナーデータにより指定される。3つの基準軸の要素の値は、これら4つのコーナーの値から補間によって生成され得る。残差フラグ及び残差データは、コピーモードの場合と同様である。
【0058】
全スキャンモード(即ち、pred_mode=2)の場合には、QMPSは、量子化行列パラメータとして、DPCMの差分データの一次元配列を含み得る。
【0059】
なお、各QMPSは、量子化行列の種類ごとに異なる生成モード及び各モードに対応する量子化行列パラメータを含んでよい。即ち、一例として、1つのQMPS内で、ある種類の量子化行列は全スキャンモードで定義され、別の種類の量子化行列は軸指定モードで定義され、残りの量子化行列はコピーモードで定義されてもよい。
【0060】
(2)スライスヘッダ
図4は、本実施形態において各スライスヘッダに含まれるパラメータの一例を部分的に示す説明図である。
図4を参照すると、各スライスヘッダには、「スライスタイプ」、「PPS ID」、「QMPS ID存在フラグ」及び「QMPS ID」が含まれ得る。「スライスタイプ」は、当該スライスの符号化タイプを示す区分であり、Pスライス、Bスライス又はIスライスなどに対応する値をとる。「PPS ID」は、当該スライスのために参照されるピクチャパラメータセット(PPS)のIDである。「QMPS ID存在フラグ」は、当該スライスヘッダ内にQMPS IDが存在するか否かを示すフラグである。「QMPS ID」は、当該スライスのために参照される量子化行列パラメータセット(QMPS)のQMPS IDである。
【0061】
<2.一実施形態に係る符号化時の処理の流れ>
(1)パラメータセット挿入処理
図5は、本実施形態に係るシンタックス処理部13の挿入部130によるパラメータセット挿入処理の流れの一例を示すフローチャートである。
【0062】
図5を参照すると、挿入部130は、まず、並び替えバッファ12から入力される画像データのストリーム内のNALユニットを順次取得し、1つのピクチャを認識する(ステップS100)。次に、挿入部130は、認識したピクチャがシーケンスの先頭のピクチャであるか否かを判定する(ステップS102)。ここで、認識したピクチャがシーケンスの先頭のピクチャである場合には、挿入部130は、ストリームにSPSを挿入する(ステップS104)。次に、挿入部130は、認識したピクチャについてPPSの変更があるか否かをさらに判定する(ステップS106)。ここで、PPSの変更がある場合、又は認識したピクチャがシーケンスの先頭のピクチャである場合には、挿入部130は、ストリームにPPSを挿入する(ステップS108)。次に、挿入部130は、QMPSの変更があるか否かをさらに判定する(ステップS110)。ここで、QMPSの変更がある場合、又は認識したピクチャがシーケンスの先頭のピクチャである場合には、挿入部130は、ストリームにQMPSを挿入する(ステップS112)。その後、挿入部130は、ストリームの終了が検出された場合には、処理を終了する。一方、ストリームが終了しない場合には、挿入部130は、次のピクチャについて上述した処理を繰り返す(ステップS114)。
【0063】
なお、ここでは説明の簡明さのためにSPS、PPS及びQMPSの挿入についてのみフローチャートに示しているが、挿入部130は、SEI(Supplemental Enhancement Information)及びスライスヘッダなどの他のヘッダ情報をもストリームに挿入し得る。
【0064】
(2)ストリーム構成の説明
図6は、本実施形態に係る手法と既存の手法との間のストリーム構成の違いについて説明するための説明図である。
【0065】
図6の左には、既存の手法に従って生成される一例としてのストリームST1が示されている。ストリームST1の先頭はシーケンスの先頭であることから、ストリームST1の先頭には1つ目のSPS(1)及び1つ目のPPS(1)が挿入される。SPS(1)及びPPS(1)において、1つ以上の量子化行列が定義され得る。次に、いくつかのスライスヘッダ及びスライスデータが続いた後、量子化行列を更新する必要性が生じたものとする。すると、ストリームST1に2つ目のPPS(2)が挿入される。PPS(2)には、量子化行列パラメータ以外のパラメータも含まれる。次に、いくつかのスライスヘッダ及びスライスデータが続いた後、PPSを更新する必要性が生じたものとする。すると、ストリームST1に3つ目のPPS(3)が挿入される。PPS(3)には、量子化行列パラメータも含まれる。その後のスライスについての量子化処理(及び逆量子化処理)は、スライスヘッダ内のPPS IDにより指定されるPPS内で定義されている量子化行列を用いて行われる。
【0066】
図6の右には、本実施形態に係る上述した手法に従って生成される一例としてのストリームST2が示されている。ストリームST2の先頭はシーケンスの先頭であることから、ストリームST2の先頭には1つ目のSPS(1)、1つ目のPPS(1)及び1つ目のQMPS(1)が挿入される。ストリームST2では、QMPS(1)において1つ以上の量子化行列が定義され得る。ストリームST2のPPS(1)及びQMPS(1)の長さの和は、ストリームST1のPPS(1)の長さとほぼ等しい。次に、いくつかのスライスヘッダ及びスライスデータが続いた後、量子化行列を更新する必要性が生じると、ストリームST2に2つ目のQMPS(2)が挿入される。QMPS(2)には量子化行列パラメータ以外のパラメータが含まれないため、QMPS(2)の長さはストリームST1のPPS(2)の長さよりも短い。次に、いくつかのスライスヘッダ及びスライスデータが続いた後、PPSを更新する必要性が生じると、ストリームST2に2つ目のPPS(2)が挿入される。ストリームST2のPPS(2)には量子化行列パラメータが含まれないため、ストリームST2のPPS(2)の長さはストリームST1のPPS(3)の長さよりも短い。その後のスライスについての量子化処理(及び逆量子化処理)は、スライスヘッダ内のQMPS IDにより指定されるQMPS内で定義されている量子化行列を用いて行われる。
【0067】
図6のストリームST1及びST2を比較すると、本実施形態において説明した手法によってストリーム全体の符号量が削減され得ることが理解される。特に、量子化行列のサイズがより大きい場合、又はピクチャごとに定義される量子化行列の数がより多い場合には、上述した手法による符号量の削減は一層効果的となる。
【0068】
<3.一実施形態に係る画像復号装置の構成例>
[3−1.全体的な構成例]
本節では、一実施形態に係る画像復号装置の構成例について説明する。
【0069】
図7は、一実施形態に係る画像復号装置60の構成の一例を示すブロック図である。
図7を参照すると、画像復号装置60は、シンタックス処理部61、可逆復号部62、逆量子化部63、逆直交変換部64、加算部65、デブロックフィルタ66、並び替えバッファ67、D/A(Digital to Analogue)変換部68、フレームメモリ69、セレクタ70及び71、イントラ予測部80、並びに動き補償部90を備える。
【0070】
シンタックス処理部61は、伝送路を介して入力される符号化ストリームからSPS、PPS、QMPS及びスライスヘッダなどのヘッダ情報を取得し、取得したヘッダ情報に基づいて画像復号装置60による復号処理のための様々な設定を認識する。例えば、本実施形態において、シンタックス処理部61は、QMPSに含まれる量子化行列パラメータに基づいて、逆量子化部63による逆量子化処理の際に使用される量子化行列を設定する。シンタックス処理部61の詳細な構成について、後にさらに説明する。
【0071】
可逆復号部62は、シンタックス処理部61から入力される符号化ストリームを、符号化の際に使用された符号化方式に従って復号する。そして、可逆復号部62は、復号後の量子化データを逆量子化部63へ出力する。また、可逆復号部62は、ヘッダ情報に含まれるイントラ予測に関する情報をイントラ予測部80へ出力し、インター予測に関する情報を動き補償部90へ出力する。
【0072】
逆量子化部63は、シンタックス処理部61により設定される量子化行列を用いて、可逆復号部62による復号後の量子化データ(即ち、量子化された変換係数データ)を逆量子化する。あるスライス内の各ブロックについてどの量子化行列を使用すべきかは、スライスヘッダにおいて指定されるQMPS ID、各ブロック(変換単位)のサイズ、各ブロックの予測方式及び信号成分に応じて決定され得る。
【0073】
逆直交変換部64は、符号化の際に使用された直交変換方式に従い、逆量子化部63から入力される変換係数データについて逆直交変換を行うことにより、予測誤差データを生成する。そして、逆直交変換部64は、生成した予測誤差データを加算部65へ出力する。
【0074】
加算部65は、逆直交変換部64から入力される予測誤差データと、セレクタ71から入力される予測画像データとを加算することにより、復号画像データを生成する。そして、加算部65は、生成した復号画像データをデブロックフィルタ66及びフレームメモリ69へ出力する。
【0075】
デブロックフィルタ66は、加算部65から入力される復号画像データをフィルタリングすることによりブロック歪みを除去し、フィルタリング後の復号画像データを並び替えバッファ67及びフレームメモリ69へ出力する。
【0076】
並び替えバッファ67は、デブロックフィルタ66から入力される画像を並び替えることにより、時系列の一連の画像データを生成する。そして、並び替えバッファ67は、生成した画像データをD/A変換部68へ出力する。
【0077】
D/A変換部68は、並び替えバッファ67から入力されるデジタル形式の画像データをアナログ形式の画像信号に変換する。そして、D/A変換部68は、例えば、画像復号装置60と接続されるディスプレイ(図示せず)にアナログ画像信号を出力することにより、画像を表示させる。
【0078】
フレームメモリ69は、加算部65から入力されるフィルタリング前の復号画像データ、及びデブロックフィルタ66から入力されるフィルタリング後の復号画像データを記憶媒体を用いて記憶する。
【0079】
セレクタ70は、可逆復号部62により取得されるモード情報に応じて、画像内のブロックごとに、フレームメモリ69からの画像データの出力先をイントラ予測部80と動き補償部90との間で切り替える。例えば、セレクタ70は、イントラ予測モードが指定された場合には、フレームメモリ69から供給されるフィルタリング前の復号画像データを参照画像データとしてイントラ予測部80へ出力する。また、セレクタ70は、インター予測モードが指定された場合には、フレームメモリ69から供給されるフィルタリング後の復号画像データを参照画像データとして動き補償部90へ出力する。
【0080】
セレクタ71は、可逆復号部62により取得されるモード情報に応じて、画像内のブロックごとに、加算部65へ供給すべき予測画像データの出力元をイントラ予測部80と動き補償部90との間で切り替える。例えば、セレクタ71は、イントラ予測モードが指定された場合には、イントラ予測部80から出力される予測画像データを加算部65へ供給する。セレクタ71は、インター予測モードが指定された場合には、動き補償部90から出力される予測画像データを加算部65へ供給する。
【0081】
イントラ予測部80は、可逆復号部62から入力されるイントラ予測に関する情報とフレームメモリ69からの参照画像データとに基づいて画素値の画面内予測を行い、予測画像データを生成する。そして、イントラ予測部80は、生成した予測画像データをセレクタ71へ出力する。
【0082】
動き補償部90は、可逆復号部62から入力されるインター予測に関する情報とフレームメモリ69からの参照画像データとに基づいて動き補償処理を行い、予測画像データを生成する。そして、動き補償部90は、生成した予測画像データをセレクタ71へ出力する。
【0083】
[3−2.シンタックス処理部の構成例]
図8は、
図7に示した画像復号装置60のシンタックス処理部61の詳細な構成の一例を示すブロック図である。
図8を参照すると、シンタックス処理部61は、パラメータ取得部160及び設定部170を有する。
【0084】
(1)パラメータ取得部
パラメータ取得部160は、画像データのストリームからSPS、PPS、QMPS及びスライスヘッダなどのヘッダ情報を認識し、ヘッダ情報に含まれるパラメータを取得する。例えば、本実施形態において、パラメータ取得部160は、量子化行列を定義する量子化行列パラメータをQMPSから取得する。上述したように、QMPSは、SPS及びPPSとは異なる非VCL NALユニットである。そして、パラメータ取得部160は、取得したパラメータを設定部170へ出力する。また、パラメータ取得部160は、画像データのストリームを可逆復号部62へ出力する。
【0085】
(2)設定部
設定部170は、パラメータ取得部160により取得されるパラメータに基づいて、
図7に示した各部の処理のための設定を行う。例えば、設定部170は、LCU及びSCUの値の組から符号化単位のサイズの範囲を認識すると共に、split_flagの値に応じて符号化単位のサイズを設定する。ここで設定される符号化単位を処理の単位として、画像データの復号が行われる。また、設定部170は、変換単位のサイズをさらに設定する。ここで設定される変換単位を処理の単位として、上述した逆量子化部63による逆量子化及び逆直交変換部64による逆直交変換が行われる。
【0086】
また、本実施形態において、設定部170は、パラメータ取得部160によりQMPSから取得される量子化行列パラメータに基づいて、量子化行列を設定する。より具体的には、設定部170は、QMPSに含まれる量子化行列パラメータに基づき、サイズ及びタイプの互いに異なる複数の量子化行列を、全スキャンモード、コピーモード又は軸指定モードでそれぞれ生成する。量子化行列の生成は、画像データのストリーム内でQPMSが検出される都度行われ得る。
【0087】
例えば、設定部170は、全スキャンモードにおいて、量子化行列パラメータに含まれる差分データの一次元配列をDPCM方式で復号する。そして、設定部170は、復号後の一次元配列を、ジグザグスキャンのスキャンパターンに従って二次元の量子化行列に変形する。
【0088】
また、設定部170は、コピーモードにおいて、量子化行列パラメータに含まれるソースID、コピー元サイズ及びコピー元タイプにより特定される(以前に生成した)量子化行列をコピーする。このとき、設定部170は、コピー元の量子化行列のサイズよりも新たな量子化行列のサイズが小さい場合には、コピーした量子化行列の要素を間引くことにより、新たな量子化行列を生成する。また、設定部170は、コピー元の量子化行列のサイズよりも新たな量子化行列のサイズが大きい場合には、コピーした量子化行列の要素を補間することにより、新たな量子化行列を生成する。そして、設定部170は、残差成分が存在する場合には、新たな量子化行列に残差成分を加算する。
【0089】
また、設定部170は、あるQMPS内の量子化行列パラメータに含まれるソースIDが当該QMPSのQMPS IDと等しい場合には、新たな量子化行列を既定の量子化行列とする。
【0090】
また、設定部170は、軸指定モードにおいて、量子化行列パラメータに含まれる指定方式フラグを認識する。そして、設定部170は、差分方式の場合には、量子化行列パラメータに含まれる基準軸データに基づいて縦軸、横軸及び斜め軸に該当する量子化行列の要素の値を生成し、残りの要素の値を補間により生成する。また、設定部170は、補間方式の場合には、量子化行列パラメータに含まれるコーナーデータに基づいて4つのコーナーに該当する量子化行列の要素の値を生成し、基準軸の要素の値を補間により生成した後、さらに残りの要素の値を補間により生成する。そして、設定部170は、残差成分が存在する場合には、新たな量子化行列に残差成分を加算する。
【0091】
その後、設定部170は、スライスヘッダにおいてQMPS IDが指定されると、指定されたQMPS IDにより識別されるQMPSについて生成した量子化行列を、逆量子化部63が使用すべき量子化行列として設定する。
【0092】
<4.一実施形態に係る復号時の処理の流れ>
[4−1.量子化行列の生成]
(1)量子化行列生成処理
図9は、本実施形態に係るシンタックス処理部61による量子化行列生成処理の流れの一例を示すフローチャートである。
図9の量子化行列生成処理は、画像データのストリーム内でQPMSが検出される都度行われ得る処理である。
【0093】
図9を参照すると、パラメータ取得部160は、まず、QMPSからQMPS IDを取得する(ステップS200)。ここで取得されるQMPS IDがストリーム内で未使用のIDであれば、設定部170は、当該QMPS IDに関連付けられる量子化行列を、以下に説明する処理に従って新たに生成する。一方、QMPS IDが既に使用されているIDであれば、設定部170は、当該QMPS IDと関連付けて保持している量子化行列を、以下に説明する処理に従って生成される行列に更新する。次に、パラメータ取得部160は、QMPSから生成モード存在フラグを取得する(ステップS202)。
【0094】
その後のステップS206からステップS240までの処理は、量子化行列の種類ごとに繰り返される(ステップS204)。なお、量子化行列の種類とは、量子化行列のサイズとタイプ(即ち、予測方式及び信号成分)との組合せに相当する。
【0095】
ステップS206では、設定部170は、生成モード存在フラグの値に応じて、QMPS内に生成モード(の区分)が存在するか否かを判定する(ステップS206)。ここで生成モードが存在しない場合には、設定部170は、H.264/AVCにおける量子化行列の復号処理と同様に、全スキャン方式で量子化行列を生成する(ステップS208)。一方、生成モードが存在する場合には、パラメータ取得部160は、QMPSから生成モードを取得する(ステップS210)。そして、設定部170は、生成モードに応じて異なる処理を行う(ステップS212、S214)。
【0096】
例えば、設定部170は、コピーモードが指示されている場合には、
図10に例示するコピーモードでの処理を行う(ステップS220)。また、設定部170は、軸指定モードが指示されている場合には、
図11に例示する軸指定モードでの処理を行う(ステップS240)。また、設定部170は、全スキャンモードが指示されている場合には、H.264/AVCにおける量子化行列の復号処理と同様に、全スキャン方式で量子化行列を生成する(ステップS208)。
【0097】
その後、全ての量子化行列の種類について量子化行列が生成されると、
図9に示した量子化行列生成処理は終了する。
【0098】
(2)コピーモードでの処理
図10は、
図9のステップS220におけるコピーモードでの処理の詳細な流れの一例を示すフローチャートである。
【0099】
図10を参照すると、まず、パラメータ取得部160は、QMPSからソースIDを取得する(ステップS221)。次に、設定部170は、
図9のステップS200において取得されたQMPS ID(現在のQMPSのQMPS ID)とソースIDとが等しいか否かを判定する(ステップS222)。ここで、現在のQMPSのQMPS IDとソースIDとが等しい場合には、設定部170は、新たな量子化行列を既定の量子化行列として生成する(ステップS223)。一方、現在のQMPSのQMPS IDとソースIDとが等しくない場合には、処理はステップS224へ進む。
【0100】
ステップS224において、パラメータ取得部160は、QMPSからコピー元サイズ及びコピー元タイプを取得する(ステップS224)。次に、設定部170は、ソースID、コピー元サイズ及びコピー元タイプにより特定される量子化行列をコピーする(ステップS225)。次に、設定部170は、コピー元サイズと生成対象の量子化行列のサイズとを比較する(ステップS226)。ここで、コピー元サイズと生成対象の量子化行列のサイズとが等しくない場合には、設定部170は、サイズの相違に応じて、コピーした量子化行列の要素を補間し又は間引くことにより、新たな量子化行列を生成する(ステップS227)。
【0101】
さらに、パラメータ取得部160は、QMPSから残差フラグを取得する(ステップS228)。次に、設定部170は、残差フラグの値に応じて、残差データが存在するか否かを判定する(ステップS229)。ここで、残差データが存在する場合には、設定部170は、ステップS223又はステップS225〜S227において生成された新たな量子化行列に残差を加算する(ステップS230)。
【0102】
(3)軸指定モードでの処理
図11は、
図9のステップS240における軸指定モードでの処理の詳細な流れの一例を示すフローチャートである。
【0103】
図11を参照すると、まず、パラメータ取得部160は、QMPSから指定方式フラグを取得する(ステップS241)。次に、設定部170は、指定方式フラグの値に応じて、指定方式を判定する(ステップS242)。ここで、差分方式が指示されている場合には、処理はステップS243へ進む。一方、補間方式が指示されている場合には、処理はステップS246へ進む。
【0104】
差分方式の場合、設定部170は、量子化行列パラメータに含まれる基準軸データに基づいて、縦軸、横軸及び斜め軸に該当する量子化行列の要素の値を生成する(ステップS243、S244及びS245)。一方、補間方式の場合、設定部170は、量子化行列パラメータに含まれるコーナーデータに基づいて、4つのコーナーに該当する量子化行列の要素の値を生成する(ステップS246)。次に、設定部170は、4つのコーナーを結ぶ基準軸(縦軸、横軸及び斜め軸)の要素の値を補間により生成する(ステップS247)。その後、設定部170は、基準軸の要素の値に基づいて、残りの要素の値を補間する(ステップS248)。
【0105】
さらに、パラメータ取得部160は、QMPSから残差フラグを取得する(ステップS249)。次に、設定部170は、残差フラグの値に応じて、残差データが存在するか否かを判定する(ステップS250)。ここで、残差データが存在する場合には、設定部170は、ステップS248において生成された新たな量子化行列に残差を加算する(ステップS251)。
【0106】
[4−2.スライスへの量子化行列の設定]
図12は、本実施形態に係るシンタックス処理部61によるスライスへの量子化行列設定処理の流れの一例を示すフローチャートである。
図12の処理は、画像データのストリーム内でスライスヘッダが検出される都度行われ得る。
【0107】
まず、パラメータ取得部160は、スライスヘッダからQMPS ID存在フラグを取得する(ステップS261)。次に、パラメータ取得部160は、QMPS ID存在フラグの値に応じて、スライスヘッダ内にQMPS IDが存在するか否かを判定する(ステップS262)。ここで、QMPS IDが存在する場合には、パラメータ取得部160は、さらにQMPS IDをQMPSから取得する(ステップS263)。そして、設定部170は、取得されたQMPS IDにより識別されるQMPSについて生成した量子化行列を、当該スライスヘッダに続くスライスのために設定する(ステップS264)。一方、スライスヘッダ内にQMPS IDが存在しない場合には、設定部170は、フラットな量子化行列を当該スライスヘッダに続くスライスのために設定する(ステップS265)。
【0108】
<5.シンタックスの例>
[5−1.第1の例]
図13〜
図15は、本実施形態に係るQMPSのシンタックスを表現する例示的な擬似コードの第1の例を示している。擬似コードの左端には、行番号が付されている。また、擬似コード内の変数に付された下線は、当該変数に対応するパラメータがQMPS内で特定されることを意味する。
【0109】
図13の第1行の関数QuantizationMatrixParameterSet()は、1つのQMPSのシンタックスを表現する関数である。第2行及び第3行において、QMPS ID(quantization_matrix_parameter_id)及び生成モード存在フラグ(pred_present_flag)が特定される。その後の第6行から第56行までのシンタックスは、量子化行列のサイズ及びタイプごとにループされる。ループ内の第7行から第53行までのシンタックスは、生成モードが存在する場合(pred_present_flag=1)にQMPSに挿入される。
【0110】
生成モードが存在する場合の第9行から第16行までのシンタックスは、コピーモードでのシンタックスである。第9行から第11行では、ソースID、コピー元サイズ及びコピー元タイプが特定される。第12行の関数pred_matrix()は、ソースID、コピー元サイズ及びコピー元タイプにより特定される量子化行列がコピーされることを意味する。第13行では、残差フラグが特定される。第15行の関数residual_matrix()は、残差成分が存在する場合に残差データがQMPSにおいて特定されることを意味する。
【0111】
第18行から第50行までのシンタックスは軸指定モードでのシンタックスであり、
図14に記載されている。第18行では、指定方式フラグが特定される。指定方式が差分(DPCM)方式の場合には、第21行から第25行において縦軸の要素の値、第26行から第34行において横軸の要素の値、第35行から第40行において斜め軸の要素の値がそれぞれ特定される。この場合の基準軸データは、DPCMの差分データの一次元配列である。なお、横軸の要素の値を縦軸からコピーし得る場合には、横軸の要素についてのシンタックスは省略され得る(第27行、第28行)。指定方式が補間方式の場合には、第42行から第45行において左上(DC成分)、右上、左下及び右下の要素の値がコーナーデータとしてそれぞれ特定される。
【0112】
第52行の処理は、全スキャンモードでのシンタックスである。第55行の処理は、生成モードが存在しない場合のシンタックスである。いずれの場合にも、H.264/AVCにおける量子化行列のシンタックスを表す関数qmatrix()によって、全スキャン方式で量子化行列が特定される。
【0113】
図15の第1行の関数residual_matrix()は、
図13の第15行及び
図14の第49行において使用されている、残差データを特定するための関数である。
図15の例において、残差データは、DPCM方式又はランレングス方式で特定される。DPCM方式の場合には、第4行から第8行において、一次元配列の要素ごとに前の要素との間の差分の値(delta_coef)が特定される。ランレングス方式の場合には、第11行から第18行において、値にゼロが続く部分の要素群の長さ(run)及び非ゼロの要素の値(data)が繰り返し特定される。
【0114】
[5−2.第2の例]
図16〜
図20は、本実施形態に係るQMPSのシンタックスを表現する例示的な擬似コードの第2の例を示している。
【0115】
図16の第1行の関数QuantizationMatrixParameterSet()は、1つのQMPSのシンタックスを表現する関数である。第2行において、QMPS ID(quantization_matrix_parameter_id)が特定される。また、既定の量子化行列のみが指定されるケースを除き、第6行において、生成モード存在フラグ(pred_present_flag)が特定される。
【0116】
さらに、第2の例では、関数QuantizaionMatrixParameterSet()の第7行から第10行において、4種類の量子化スケール(Qscale0〜Qscale3)が特定される。これら量子化スケールは、量子化行列の各要素の値を量子化して符号量をより少なくするために採用され得るパラメータである。より具体的には、例えば、8×8の量子化行列に、
図21に示すような4つの量子化スケール設定領域A1〜A4が定義される。量子化スケール設定領域A1は、DC成分を含む低域信号に対応する要素群のための領域である。量子化スケール設定領域A2及びA3は、それぞれ中間域の信号に対応する要素群のための領域である。量子化スケール設定領域A4は、高域信号に対応する要素群のための領域である。このような領域ごとに、量子化行列の要素の値を量子化するための量子化スケールが設定され得る。例えば、
図22を参照すると、量子化スケール設定領域A1についての第1の量子化スケール(Qscale0)は“1”である。これは、低域信号に対応する要素群については量子化行列の値が量子化されないことを意味する。一方、量子化スケール設定領域A2についての第2の量子化スケール(Qscale1)は“2”である。量子化スケール設定領域A3についての第3の量子化スケール(Qscale2)は“3”である。量子化スケール設定領域A4についての第4の量子化スケール(Qscale3)は“4”である。量子化スケールが大きくなるほど、量子化により生じる誤差は増加する。しかし、一般的に、高域信号については、ある程度の誤差が許容され得る。従って、高い符号化効率を達成することが望まれる場合には、量子化行列の量子化のためのこのような量子化スケールの設定によって、量子化行列の定義に要する符号量を、画質を大きく劣化させることなく効果的に削減することができる。量子化行列の量子化が行われる場合には、実質的には、
図3に例示した残差データ又は差分データの各要素の値が、各要素が属する量子化スケール設定領域について設定された量子化ステップで量子化され又は逆量子化され得る。
【0117】
なお、
図21に示した量子化スケール設定領域の配置は一例に過ぎない。例えば、量子化行列のサイズごとに異なる数の量子化スケール設定領域が定義されてもよい(例えば、サイズが大きいほど多くの量子化スケール設定領域を定義され得る)。また、量子化スケール設定領域の境界の位置も
図21の例に限定されない。通常、量子化行列を一次元化する際のスキャンパターンはジグザグスキャンである。そのため、
図21に示したような右上から左下にかけての斜めの領域境界が用いられることが好ましい。しかしながら、量子化行列の要素間の相関又は使用されるスキャンパターンなどに応じて、縦方向又は横方向に沿った領域境界が用いられてもよい。さらに、量子化スケール設定領域の配置(領域の数及び境界の位置など)は、符号化効率の観点で適応的に選択されてもよい。例えば、フラットに近い量子化行列が定義される場合には、より少ない数の量子化スケール設定領域が選択されてもよい。
【0118】
図16において、その後の第13行から第76行までのシンタックスは、量子化行列のサイズ及びタイプごとにループされる。ループ内の第14行から第66行(
図18参照)までのシンタックスは、生成モードが存在する場合(pred_present_flag=1)にQMPSに挿入される。
【0119】
生成モードが存在する場合の第16行から第22行までのシンタックスは、コピーモードでのシンタックスである。第16行から第18行では、ソースID、コピー元サイズ及びコピー元タイプが特定される。第19行では、残差フラグが特定される。第21行の関数residual_matrix()は、残差成分が存在する場合に残差データがQMPSにおいて特定されることを意味する。ここでの残差データは、上述した4種類の量子化スケール(Qscale0〜Qscale3)の値に応じて量子化され得る。第23行から第56行までのシンタックスは軸指定モードでのシンタックスであり、
図17に記載されている。軸指定モードでの残差データもまた、上述した4種類の量子化スケール(Qscale0〜Qscale3)の値に応じて量子化され得る(第55行)。
【0120】
図18の第57行から第66行までのシンタックスは、全スキャンモードでのシンタックスである。また、第68行から第75行までのシンタックスは、生成モードが存在しない場合のシンタックスである。いずれの場合にも、関数qmatrix()によって全スキャン方式で量子化行列が特定される。但し、第2の例では、符号化効率をより高めるために、DPCM方式の差分データ(delta_coef)又はランレングス方式のランの値(run)及び非ゼロ要素の値(data)をエントロピー符号化するためのVLCテーブルが、適応的に切り替えられる。第61行及び第71行のvlc_table_dataは、DPCM方式の差分データ(delta_coef)又はランレングス方式の非ゼロ要素の値(data)のために選択されるVLCテーブルのテーブル番号を特定する。第63行及び第73行のvlc_table_runは、ランレングス方式のランの値(run)のために選択されるVLCテーブルのテーブル番号を特定する。
【0121】
図19の第1行の関数qmatrix()は、全スキャン方式で量子化行列を特定するためのシンタックスである。
図19の第3行から第8行はDPCM方式でのシンタックスを示しており、第5行の差分データ(delta_coef)は、上述したvlc_table_dataにより特定されるVLCテーブルを用いて符号化される。また、第10行から第21行はランレングス方式でのシンタックスを示しており、第12行のランの値(run)は、上述したvlc_table_runにより特定されるVLCテーブルを用いて符号化される。第13行の非ゼロ要素の値(data)は、上述したvlc_table_dataにより特定されるVLCテーブルを用いて符号化される。
【0122】
図23は、LCEC(Low Complexity Entropy Coding:低負荷エントロピー符号化)方式において選択可能な11種類のVLC(Variable Length Coding)テーブルの符号語リストを示している。
図23における各符号語内の“x”は、所謂サフィックスである。例えば、“15”という値を指数ゴロム符号で符号化すると“000010000”という9ビットの符号語が得られるが、当該値をVLC4で符号化すると“11111”という5ビットの符号語が得られる。このように、より大きい値が多く符号化される場合には、短い符号語の中により桁数の多いサフィックスを有するVLCテーブルを選択することで、符号化効率を高めることができる。
図23の11種類のVLCテーブルの中では、例えばVLC4は、5ビットの符号語の中に4桁のサフィックスを有している。また、VLC9は、6ビットの符号語の中に4桁のサフィックスを有している。従って、これらVLCテーブルは、より大きい値が多く符号化される場合に適している。
【0123】
量子化行列のシンタックスに戻ると、量子化行列の一次元配列の差分データではゼロが続くことが多いため、ランレングス方式のランの値については、ゼロ、1又は2などの小さい値ではなくより大きい値が多く発生する。一方、ランレングス方式の非ゼロ要素の値及び差分データの値については、大きい値は少ない頻度でしか発生しない。従って、上述したシンタックスのように差分データの指定方式(DPCM/ランレングス)及び値の種
類(ランレングス方式の場合のラン/非ゼロ要素)ごとにVLCテーブルを切り替えることで、量子化行列の定義に要する符号量は一層削減される。
【0124】
図20の第1行の関数residual_matrix()においても、VLCテーブルの適応的な切り替えが採用されている。即ち、第7行のvlc_table_dataは、DPCM方式の差分データ(delta_coef)のために選択されるVLCテーブルのテーブル番号を特定する。第10行の差分データ(delta_coef)は、第7行で特定されるVLCテーブルを用いて符号化される。第15行のvlc_table_dataは、ランレングス方式の非ゼロ要素の値(data)のために選択されるVLCテーブルのテーブル番号を特定する。第16行のvlc_table_runは、ランレングス方式のランの値(run)のために選択されるVLCテーブルのテーブル番号を特定する。第19行のランの値(run)は、上述したvlc_table_runにより特定されるVLCテーブルを用いて符号化される。第20行の非ゼロ要素の値(data)は、上述したvlc_table_dataにより特定されるVLCテーブルを用いて符号化される。
【0125】
このようなQMPSのシンタックスの様々な特徴により、量子化行列の定義に要する符号量が効果的に削減され、符号化効率は向上し得る。なお、本節で説明したシンタックスは一例に過ぎない。即ち、ここで例示したシンタックスの一部が省略され、パラメータの順序が変更され、又は他のパラメータがシンタックスに追加されてもよい。また、本節で説明したシンタックスのいくつかの特徴は、QMPSではなくSPS又はPPSにおいて量子化行列を定義する際に採用されてもよい。その場合には、SPS又はPPSにおける量子化行列の定義に要する符号量を削減することができる。
【0126】
<6.パラメータセットの様々な構成例>
ここまで、量子化行列パラメータを格納する量子化行列パラメータセット(QMPS)のシンタックスの具体的ないくつかの例を説明した。QMPSは、実質的には、量子化行列パラメータのみを含む専用のパラメータセットであってもよく、量子化行列以外の符号化ツールに関連する他のパラメータをも含む共用のパラメータセットであってもよい。例えば、“Adaptation Parameter Set (APS)”(JCTVC-F747r3,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 6th Meeting: Torino, IT, 14-22 July, 2011)は、適応パラメータセット(APS:Adaptation Parameter Set)と呼ばれる新たなパラメータセットを導入し、適応ループフィルタ(ALF:Adaptive Loop Filter)及びサンプル適応オフセット(SAO:Sample Adaptive Offset)に関連するパラメータをAPSに格納することを提案している。かかるAPSにさらに量子化行列パラメータを含めることで、上述したQMPSを実質的に構成することもできる。そこで、本節では、“Adaptation Parameter Set (APS)”(JCTVC-F747r3)により提案されているAPSを利用してQMPSを構成するためのいくつかの手法について説明する。
【0127】
[6−1.第1の手法]
第1の手法は、1つのAPS内で対象の全てのパラメータを列挙し、当該APSを一意に識別する識別子であるAPS IDを用いて各パラメータを参照する、という手法である。
図24は、第1の手法に従って構成される符号化ストリームの一例を示している。
【0128】
図24を参照すると、シーケンスの先頭に位置するピクチャP0の冒頭に、SPS801、PPS802及びAPS803が挿入されている。PPS802は、PPS ID“P0”により識別される。APS803は、APS ID“A0”により識別される。APS803は、ALF関連パラメータ、SAO関連パラメータ及び量子化行列パラメータ(以下、QM関連パラメータという)を含む。ピクチャP0内のスライスデータに付加されているスライスヘッダ804は、参照PPS ID“P0”を含み、これは当該スライスデータを復号するためにPPS802内のパラメータが参照されることを意味する。同様に、スライスヘッダ804は、参照APS ID“A0”を含み、これは当該スライスデータを復号するためにAPS803内のパラメータが参照されることを意味する。
【0129】
ピクチャP0に続くピクチャP1には、APS805が挿入されている。APS805は、APS ID“A1”により識別される。APS805は、ALF関連パラメータ、SAO関連パラメータ及びQM関連パラメータを含む。APS805に含まれるALF関連パラメータ及びSAO関連パラメータはAPS803から更新されているが、QM関連パラメータは更新されていない。ピクチャP1内のスライスデータに付加されているスライスヘッダ806は、参照APS ID“A1”を含み、これは当該スライスデータを復号するためにAPS805内のパラメータが参照されることを意味する。
【0130】
ピクチャP1に続くピクチャP2には、APS807が挿入されている。APS807は、APS ID“A2”により識別される。APS807は、ALF関連パラメータ、SAO関連パラメータ及びQM関連パラメータを含む。APS807に含まれるALF関連パラメータ及びQM関連パラメータはAPS805から更新されているが、SAO関連パラメータは更新されていない。ピクチャP2内のスライスデータに付加されているスライスヘッダ808は、参照APS ID“A2”を含み、これは当該スライスデータを復号するためにAPS807内のパラメータが参照されることを意味する。
【0131】
図25は、第1の手法に従って定義されるAPSのシンタックスの一例を示している。
図25の第2行において、当該APSを一意に識別するためのAPS IDが特定される。APS IDは、
図3を用いて説明したQMPS IDの代わりに用いられるパラメータセット識別子である。第13行〜第17行では、ALF関連パラメータが特定される。第18行〜第23行では、SAO関連パラメータが特定される。第24行〜第28行では、QM関連パラメータが特定される。第24行の“aps_qmatrix_flag”は、当該APS内にQM関連パラメータが設定されているかを示す量子化行列存在フラグである。第27行の“qmatrix_param()”は、
図13〜
図20に例示したような量子化行列パラメータを特定する関数である。当該APS内にQM関連パラメータが設定されていることを第24行の量子化行列存在フラグが示している場合(aps_qmatrix_flag=1)に、当該APS内で関数qmatrix_param()を用いて量子化行列パラメータが設定され得る。
【0132】
第1の手法が採用される場合、
図8に示したパラメータ取得部160は、APSに含まれる量子化行列存在フラグを参照することにより、当該APS内に量子化行列パラメータが設定されているかを判定する。そして、パラメータ取得部160は、APS内に量子化行列パラメータが設定されている場合に、当該APSから量子化行列パラメータを取得する。
【0133】
図26は、第1の手法に従って定義されるスライスヘッダのシンタックスの一例を示す説明図である。
図26の第5行では、当該スライスに設定すべきパラメータのうちPPSに含まれるパラメータを参照するための参照PPS IDが特定される。第8行では、当該スライスに設定すべきパラメータのうちAPSに含まれるパラメータを参照するための参照APS IDが特定される。参照APS IDは、
図4を用いて説明した(参照)QMPS IDの代わりに用いられる参照用パラメータである。
【0134】
第1の手法によれば、“Adaptation Parameter Set (APS)”(JCTVC-F747r3)により提案されているAPSを拡張することにより、上述した量子化行列パラメータセットを少ないコストで実現することができる。また、量子化行列存在フラグを用いて、APSに包含可能な様々な符号化ツールに関連するパラメータのうち、量子化行列パラメータのみを部分的に更新し、又は量子化行列パラメータのみを部分的に更新しないことが可能となる。即ち、量子化行列の更新の必要性が生じたタイミングでのみAPSに量子化行列パラメータを含めることができるため、APS内で量子化行列パラメータを効率的に伝送することができる。
【0135】
[6−2.第1の手法の変形例]
APS内の量子化行列パラメータの符号量をより削減するために、以下に説明する変形例に係る手法が採用されてもよい。
【0136】
図27は、第1の手法の一変形例に従って定義されるAPSのシンタックスの一例を示している。
図27に示したシンタックスにおいて、第24行〜第33行では、QM関連パラメータが特定される。第24行の“aps_qmatrix_flag”は、当該APS内にQM関連パラメータが設定されているかを示す量子化行列存在フラグである。第25行の“ref_aps_id_present_flag”は、当該APSのQM関連パラメータとして過去参照IDが使用されるかを示す過去参照ID存在フラグである。過去参照IDが使用されることを過去参照ID存在フラグが示している場合(ref_aps_id_present_flag=1)には、第27行において、過去参照ID“ref_aps_id”が設定される。過去参照IDは、当該APSよりも前に符号化され又は復号されるAPSのAPS IDを参照するための識別子である。過去参照IDが使用される場合には、参照元の(後の)APS内には量子化行列パラメータは設定されない。この場合、
図8に示した設定部170は、参照元のAPSに対応する量子化行列として、過去参照IDにより示される参照先のAPSの量子化行列パラメータに基づいて設定した量子化行列を再利用する。なお、過去参照IDが参照元のAPSのAPS IDを参照すること(いわゆる自己参照)は、禁止されてもよい。その代わりに、設定部170は、自己参照が行われているAPSに対応する量子化行列として、既定の量子化行列を設定してもよい。過去参照IDが使用されない場合(ref_aps_id_present_flag=0)には、第31行の関数“qmatrix_param()”を用いて、当該APS内に量子化行列パラメータが設定され得る。
【0137】
このように、既に符号化され又は復号された量子化行列を過去参照IDを用いて再利用することで、同じ量子化行列パラメータが繰り返しAPS内に設定されることが回避される。それにより、APS内の量子化行列パラメータの符号量を削減することができる。なお、
図27では、過去のAPSを参照するためにAPS IDが使用される例を示したが、過去のAPSを参照する手法はかかる例に限定されない。例えば、参照元のAPSと参照先のAPSとの間のAPSの数などの他のパラメータが、過去のAPSを参照するために用いられてもよい。また、過去参照ID存在フラグが使用される代わりに、過去参照IDが所定の値(例えばマイナス1)を示すか否かに応じて、過去のAPSの参照と新たな量子化行列パラメータの設定とが切り替えられてもよい。
【0138】
[6−3.第2の手法]
第2の手法は、パラメータの種類ごとに異なるAPS(異なるNALユニット)内にパラメータを格納し、各APSを一意に識別するAPS IDを用いて各パラメータを参照する、という手法である。
図28は、第2の手法に従って構成される符号化ストリームの一例を示している。
【0139】
図28を参照すると、シーケンスの先頭に位置するピクチャP0の冒頭に、SPS811、PPS812、APS813a、APS813b及びAPS813cが挿入されている。PPS812は、PPS ID“P0”により識別される。APS813aはALF関連パラメータ用のAPSであり、APS ID“A00”により識別される。APS813bはSAO関連パラメータ用のAPSであり、APS ID“A10”により識別される。APS813cはQM関連パラメータ用のAPSであり、APS ID“A20”により識別される。ピクチャP0内のスライスデータに付加されているスライスヘッダ814は、参照PPS ID“P0”を含み、これは当該スライスデータを復号するためにPPS812内のパラメータが参照されることを意味する。同様に、スライスヘッダ814は、参照APS_ALF ID“A00”、参照APS_SAO ID“A10”及び参照APS_QM ID“A20”を含み、これらは当該スライスデータを復号するためにAPS813a、813b及び813c内のパラメータが参照されることを意味する。
【0140】
ピクチャP0に続くピクチャP1には、APS815a及びAPS815bが挿入されている。APS815aはALF関連パラメータ用のAPSであり、APS ID“A01”により識別される。APS815bはSAO関連パラメータ用のAPSであり、APS ID“A11”により識別される。ピクチャP0からQM関連パラメータは更新されないため、QM関連パラメータ用のAPSは挿入されていない。ピクチャP1内のスライスデータに付加されているスライスヘッダ816は、参照APS_ALF ID“A01”、参照APS_SAO ID“A11”及び参照APS_QM ID“A20”を含む。これらは、当該スライスデータを復号するためにAPS815a、815b及び813c内のパラメータが参照されることを意味する。
【0141】
ピクチャP1に続くピクチャP2には、APS817a及びAPS817cが挿入されている。APS817aはALF関連パラメータ用のAPSであり、APS ID“A02”により識別される。APS817cはQM関連パラメータ用のAPSであり、APS ID“A21”により識別される。ピクチャP1からSAO関連パラメータは更新されないため、SAO関連パラメータ用のAPSは挿入されていない。ピクチャP2内のスライスデータに付加されているスライスヘッダ818は、参照APS_ALF ID“A02”、参照APS_SAO ID“A11”及び参照APS_QM ID“A21”を含む。これらは、当該スライスデータを復号するためにAPS817a、815b及び817c内のパラメータが参照されることを意味する。
【0142】
第2の手法におけるQM関連パラメータ用のAPS(例えば、APS813c及び817c)は、実質的に上述したQMPSに等しい。QM関連パラメータ用のAPSのAPS IDは、
図3を用いて説明したQMPS IDの代わりに用いられる。第2の手法によれば、パラメータの種類ごとに異なるAPSが用いられるため、更新の必要性がないパラメータについて冗長的なパラメータの伝送が行われない。そのため、符号化効率は最適化され得る。但し、第2の手法では、APSの対象とされるパラメータの種類が増加するほど、APSの種類を識別するための識別子であるNALユニットタイプ(nal_unit_type)の種類も増加する。HEVCの標準仕様において、拡張のために確保されているNALユニットタイプ(nal_unit_type)の数には制限がある。従って、APSのために多数のNALユニットタイプを消費することを回避する仕組みを考慮することが有益である。
【0143】
[6−4.第3の手法]
第3の手法は、APSに量子化行列パラメータ及び他のパラメータを含め、これらパラメータをAPS IDとは別に定義される識別子ごとにグループ化する、という手法である。本明細書では、APS IDとは別に定義されグループごとに付与される当該識別子を、補助識別子(SUB ID)という。各パラメータは、スライスヘッダにおいて補助識別子を用いて参照される。
図29は、第3の手法に従って構成される符号化ストリームの一例を示している。
【0144】
図29を参照すると、シーケンスの先頭に位置するピクチャP0の冒頭に、SPS821、PPS822及びAPS823が挿入されている。PPS822は、PPS ID“P0”により識別される。APS823は、ALF関連パラメータ、SAO関連パラメータ及びQM関連パラメータを含む。ALF関連パラメータは、1つのグループに属し、ALF用の補助識別子であるSUB_ALF ID“AA0”により識別される。SAO関連パラメータは、1つのグループに属し、SAO用の補助識別子であるSUB_SAO ID“AS0”により識別される。QM関連パラメータは、1つのグループに属し、QM用の補助識別子であるSUB_QM ID“AQ0”により識別される。ピクチャP0内のスライスデータに付加されているスライスヘッダ824は、参照SUB_ALF ID“AA0”、参照SUB_SAO ID“AS0”及び参照SUB_QM ID“AQ0”を含む。これらは、当該スライスデータを復号するために、SUB_ALF ID“AA0”に属するALF関連パラメータ、SUB_SAO ID“AS0”に属するSAO関連パラメータ及びSUB_QM ID“AQ0”に属するQM関連パラメータが参照されることを意味する。
【0145】
ピクチャP0に続くピクチャP1には、APS825が挿入されている。APS825は、ALF関連パラメータ及びSAO関連パラメータを含む。ALF関連パラメータは、SUB_ALF ID“AA1”により識別される。SAO関連パラメータは、SUB_SAO ID“AS1”により識別される。ピクチャP0からQM関連パラメータは更新されないため、APS825にQM関連パラメータは含まれていない。ピクチャP1内のスライスデータに付加されているスライスヘッダ826は、参照SUB_ALF ID“AA1”、参照SUB_SAO ID“AS1”及び参照SUB_QM ID“AQ0”を含む。これらは、当該スライスデータを復号するために、APS825内のSUB_ALF ID“AA1”に属するALF関連パラメータ及びSUB_SAO ID“AS1”に属するSAO関連パラメータ、並びにAPS823内のSUB_QM ID“AQ0”に属するQM関連パラメータが参照されることを意味する。
【0146】
ピクチャP1に続くピクチャP2には、APS827が挿入されている。APS827は、ALF関連パラメータ及びQM関連パラメータを含む。ALF関連パラメータは、SUB_ALF ID“AA2”により識別される。QM関連パラメータは、SUB_QM ID“AQ1”により識別される。ピクチャP1からSAO関連パラメータは更新されないため、APS827にSAO関連パラメータは含まれていない。ピクチャP2内のスライスデータに付加されているスライスヘッダ828は、参照SUB_ALF ID“AA2”、参照SUB_SAO ID“AS1”及び参照SUB_QM ID“AQ1”を含む。これらは、当該スライスデータを復号するために、APS827内のSUB_ALF ID“AA2”に属するALF関連パラメータ及びSUB_QM ID“AQ1”に属するQM関連パラメータ、並びにAPS825内のSUB_SAO ID“AS1”に属するSAO関連パラメータが参照されることを意味する。
【0147】
図30は、第3の手法に従って定義されるAPSのシンタックスの一例を示している。
図30の第2行〜第4行において、3つのグループ存在フラグ“aps_adaptive_loop_filter_flag”、“aps_sample_adaptive_offset_flag”及び“aps_qmatrix_flag”が特定される。グループ存在フラグは、各グループに属するパラメータが当該APS内に含まれるか否かを示す。
図30の例ではAPS IDはシンタックスから省略されているが、当該APSを識別するためのAPS IDがシンタックス内に追加されてもよい。第12行〜第17行では、ALF関連パラメータが特定される。第13行の“sub_alf_id”は、ALF用の補助識別子である。第18行〜第24行では、SAO関連パラメータが特定される。第19行の“sub_sao_id”は、SAO用の補助識別子である。第25行〜第30行では、QM関連パラメータが特定される。第26行の“sub_qmatrix_id”は、QM用の補助識別子である。第29行の“qmatrix_param()”は、
図13〜
図20に例示したような量子化行列パラメータを特定する関数である。
【0148】
図31は、第3の手法に従って定義されるスライスヘッダのシンタックスの一例を示す説明図である。
図31の第5行では、当該スライスに設定すべきパラメータのうちPPSに含まれるパラメータを参照するための参照PPS IDが特定される。第8行では、当該スライスに設定すべきパラメータのうちALF関連パラメータを参照するための参照SUB_ALF IDが特定される。第9行では、当該スライスに設定すべきパラメータのうちSAO関連パラメータを参照するための参照SUB_SAO IDが特定される。第10行では、当該スライスに設定すべきパラメータのうちQM関連パラメータを参照するための参照SUB_QM IDが特定される。
【0149】
第3の手法が採用される場合、画像符号化装置10のシンタックス処理部13のパラメータ生成部120は、量子化行列パラメータが更新される都度、更新された一群の量子化行列パラメータに補助識別子として新たなSUB_QM IDを付与する。そして、挿入部130は、SUB_QM IDの付与された量子化行列パラメータを、他のパラメータと共にAPSに挿入する。画像復号装置60のシンタックス処理部61のパラメータ取得部160は、各スライスに設定される量子化行列パラメータを、スライスヘッダ内で指定される参照SUB_QM IDを用いてAPSから取得する。
【0150】
第3の手法によれば、補助識別子を用いてAPS内のパラメータがグループ化され、更新の必要性がないグループのパラメータについて冗長的なパラメータの伝送が行われない。そのため、符号化効率は最適化され得る。また、パラメータの種類が増加してもAPSの種類は増加しないため、上述した第2の手法のようにNALユニットタイプが数多く消費されることがない。従って、第3の手法は、将来の拡張の柔軟性を損なうこともない。
【0151】
図29〜
図31の例では、APSに含まれるパラメータが、ALF、SAO及びQMという関連する符号化ツールに応じてグループ化されている。しかしながら、これはパラメータのグループ化の一例に過ぎない。また、APSには、他の符号化ツールに関連するパラメータが含まれてもよい。例えば、適応補間フィルタ(AIF:Adaptive Interpolation Filter)のフィルタ係数などのAIF関連パラメータは、APSに含められ得るパラメータの一例である。以下、
図32を参照しながら、APSに含まれるパラメータのグループ化の様々な基準について述べる。
【0152】
図32に示された表は、代表的な符号化ツールごとのパラメータの特徴として、「パラメータの内容」、「更新頻度」及び「データサイズ」を一覧化している。
【0153】
適応ループフィルタ(ALF)は、復号画像と原画像との誤差を最小化するように適応的に決定されるフィルタ係数で復号画像を2次元フィルタリングするフィルタ(典型的には、ウィーナフィルタ)である。ALF関連パラメータは、各ブロックに適用されるフィルタ係数とCU(Coding Unit)ごとのOn/Offフラグとを含む。ALFのフィルタ係数のデータサイズは、他の種類のパラメータと比較して非常に大きい。そのため、通常、符号量の多いIピクチャについてはALF関連パラメータは伝送されるが、符号量の小さいBピクチャについてはALF関連パラメータの伝送は省略され得る。これは、符号量の小さいピクチャについてデータサイズの大きいALF関連パラメータを伝送することが利得の観点から非効率的であるためである。ALFのフィルタ係数は、ほとんどの場合、ピクチャごとに変化する。フィルタ係数は画像の内容に依存するため、過去に設定されたフィルタ係数を再利用できる可能性は低い。
【0154】
サンプル適応オフセット(SAO)は、復号画像の各画素値に適応的に決定されるオフセット値を加えることにより、復号画像の画質を向上させるツールである。SAO関連パラメータは、オフセットパターン及びオフセット値を含む。SAO関連パラメータのデータサイズは、ALF関連パラメータほどには大きくない。SAO関連パラメータもまた、原則としてピクチャごとに変化する。但し、SAO関連パラメータには、画像の内容がわずかに変化してもあまり変化しないという性質があるため、過去に設定されたパラメータ値を再利用できる可能性がある。
【0155】
量子化行列(QM)は、直交変換によって画像データから変換される変換係数を量子化する際に用いられる量子化スケールを要素とする行列である。QM関連パラメータ、即ち量子化行列パラメータについては、本明細書で詳しく説明した通りである。QM関連パラメータのデータサイズは、SAO関連パラメータよりも大きい。量子化行列は、原則として全てのピクチャに必要とされるが、画像の内容が大きく変化しなければ必ずしもピクチャごとに更新されなくてよい。そのため、量子化行列は、同じ種別(I/P/Bピクチャなど)のピクチャについて、又はGOPごとに再利用され得る。
【0156】
適応補間フィルタ(AIF)は、動き補償の際に用いられる補間フィルタのフィルタ係数をサブピクセル位置ごとに適応的に変化させるツールである。AIF関連パラメータは、サブピクセル位置ごとのフィルタ係数を含む。AIF関連パラメータのデータサイズは、上述した3種類のパラメータと比較すると小さい。AIF関連パラメータは、原則としてピクチャごとに変化する。但し、ピクチャの種別が同じであれば補間の特性が類似する傾向があることから、同じ種別(I/P/Bピクチャなど)のピクチャについてAIF関連パラメータを再利用することができる。
【0157】
上述したようなパラメータの性質に基づいて、例えば、APSに含まれるパラメータをグループ化するための次の3通りの基準を採用することができる。
基準A)符号化ツールに応じたグループ化
基準B)更新頻度に応じたグループ化
基準C)パラメータの再利用の可能性に応じたグループ化
【0158】
基準Aは、関連する符号化ツールに応じてパラメータをグループ化する、という基準である。
図29〜
図31に例示したパラメータセットの構成は、基準Aに基づいている。パラメータの性質は概して関連する符号化ツールに応じて決まるため、符号化ツールごとにパラメータをグループ化することで、パラメータの様々な性質に応じて適時かつ効率的にパラメータを更新することが可能となる。
【0159】
基準Bは、更新頻度に応じてパラメータをグループ化する、という基準である。
図32に示したように、ALF関連パラメータ、SAO関連パラメータおよびAIF関連パラメータは、いずれも原則として毎ピクチャ更新され得る。そこで、例えばこれらパラメータを1つのグループに、QM関連パラメータを他のグループにグループ化することができる。この場合には、基準Aと比較してグループの数が少なくなる。その結果、スライスヘッダで特定すべき補助識別子の数も少なくなるため、スライスヘッダの符号量を削減することができる。一方、同じグループに属するパラメータの更新頻度は互いに類似するため、更新されないパラメータが他のパラメータの更新のために冗長的に伝送される可能性も低く保たれる。
【0160】
基準Cは、パラメータの再利用の可能性に応じてパラメータをグループ化する、という基準である。ALF関連パラメータについては再利用の可能性は低いが、SAO関連パラメータ及びAIF関連パラメータについてはある程度の再利用の可能性がある。QM関連パラメータについては、複数のピクチャにわたってパラメータが再利用される可能性が高い。従って、このような再利用の可能性に応じてパラメータをグループ化することで、再利用されるパラメータをAPS内で冗長的に伝送することを回避することができる。
【0161】
[6−5.第3の手法の変形例]
上述した第3の手法では、
図31に例示したように、APS内のパラメータをグループ化するグループの数だけ参照SUB IDがスライスヘッダ内で特定されることになる。参照SUB IDのために要する符号量は、おおよそスライスヘッダの数とグループの数との積に比例する。このような符号量をより削減するために、以下に説明する変形例に係る手法が採用されてもよい。
【0162】
第3の手法の変形例では、補助識別子の組合せに関連付けられる組合せIDが、APS又は他のパラメータセット内で定義される。そして、APS内に含まれるパラメータは、組合せIDを通じてスライスヘッダから参照され得る。
図33は、第3の手法のこのような変形例に従って構成される符号化ストリームの一例を示している。
【0163】
図33を参照すると、シーケンスの先頭に位置するピクチャP0の冒頭に、SPS831、PPS832及びAPS833が挿入されている。PPS832は、PPS ID“P0”により識別される。APS833は、ALF関連パラメータ、SAO関連パラメータ及びQM関連パラメータを含む。ALF関連パラメータは、SUB_ALF ID“AA0”により識別される。SAO関連パラメータは、SUB_SAO ID“AS0”により識別される。QM関連パラメータは、SUB_QM ID“AQ0”により識別される。さらに、APS833は、組合せの定義として、組合せID“C00”={AA0,AS0,AQ0}を含む。ピクチャP0内のスライスデータに付加されているスライスヘッダ834は、組合せID“C00”を含む。これは、当該スライスデータを復号するために、組合せID“C00”にそれぞれ関連付けられているSUB_ALF ID“AA0”に属するALF関連パラメータ、SUB_SAO ID“AS0”に属するSAO関連パラメータ及びSUB_QM ID“AQ0”に属するQM関連パラメータが参照されることを意味する。
【0164】
ピクチャP0に続くピクチャP1には、APS835が挿入されている。APS835は、ALF関連パラメータ及びSAO関連パラメータを含む。ALF関連パラメータは、SUB_ALF ID“AA1”により識別される。SAO関連パラメータは、SUB_SAO ID“AS1”により識別される。ピクチャP0からQM関連パラメータは更新されないため、APS835にQM関連パラメータは含まれていない。さらに、APS835は、組合せの定義として、組合せID“C01”={AA1,AS0,AQ0}、組合せID“C02”={AA0,AS1,AQ0}及び組合せID“C03”={AA1,AS1,AQ0}を含む。ピクチャP1内のスライスデータに付加されているスライスヘッダ836は、組合せID“C03”を含む。これは、当該スライスデータを復号するために、組合せID“C03”にそれぞれ関連付けられているSUB_ALF ID“AA1”に属するALF関連パラメータ、SUB_SAO ID“AS1”に属するSAO関連パラメータ及びSUB_QM ID“AQ0”に属するQM関連パラメータが参照されることを意味する。
【0165】
ピクチャP1に続くピクチャP2には、APS837が挿入されている。APS837は、ALF関連パラメータを含む。ALF関連パラメータは、SUB_ALF ID“AA2”により識別される。ピクチャP1からSAO関連パラメータ及びQM関連パラメータは更新されないため、APS837にSAO関連パラメータ及びQM関連パラメータは含まれていない。さらに、APS837は、組合せの定義として、組合せID“C04”={AA2,AS0,AQ0}及び組合せID“C05”={AA2,AS1,AQ0}を含む。ピクチャP2内のスライスデータに付加されているスライスヘッダ838は、組合せID“C05”を含む。これは、当該スライスデータを復号するために、組合せID“C05”にそれぞれ関連付けられているSUB_ALF ID“AA2”に属するALF関連パラメータ、SUB_SAO ID“AS1”に属するSAO関連パラメータ及びSUB_QM ID“AQ0”に属するQM関連パラメータが参照されることを意味する。
【0166】
なお、本変形例において、補助識別子の全ての組合せについて組合せIDが定義されなくてよく、スライスヘッダにおいて実際に参照される補助識別子の組合せについてのみ組合せIDが定義されてよい。また、補助識別子の組合せは、対応するパラメータが格納されているAPSとは異なるAPS内で定義されてもよい。
【0167】
本変形例が採用される場合、画像符号化装置10のシンタックス処理部13のパラメータ生成部120は、量子化行列パラメータを含む様々なパラメータをグループ化する補助識別子の組合せに関連付けられる組合せIDを、追加的なパラメータとして生成する。そして、挿入部130は、パラメータ生成部130により生成された組合せIDを、APS又は他のパラメータセットに挿入する。画像復号装置60のシンタックス処理部61のパラメータ取得部160は、各スライスのスライスヘッダにおいて指定される組合せIDを取得し、当該組合せIDに関連付けられる補助識別子を用いてAPS内の量子化行列パラメータをさらに取得する。
【0168】
このように、補助識別子の組合せに関連付けられる組合せIDを用いてAPS内のパラメータを参照することで、スライスヘッダから各パラメータを参照するために要する符号量を削減することができる。
【0169】
<7.応用例>
上述した実施形態に係る画像符号化装置10及び画像復号装置60は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
【0170】
[7−1.第1の応用例]
図34は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
【0171】
チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
【0172】
デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
【0173】
デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
【0174】
映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
【0175】
表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOLEDなど)の映像面上に映像又は画像を表示する。
【0176】
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
【0177】
外部インタフェース909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
【0178】
制御部910は、CPU(Central Processing Unit)などのプロセッサ、並びにRAM(Random Access Memory)及びROM(Read Only Memory)などのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
【0179】
ユーザインタフェース911は、制御部910と接続される。ユーザインタフェース911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
【0180】
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース909及び制御部910を相互に接続する。
【0181】
このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置60の機能を有する。従って、テレビジョン装置900で復号される映像についての符号化効率の低下を緩和し、あるいは符号化効率を向上することができる。
【0182】
[7−2.第2の応用例]
図35は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
【0183】
アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
【0184】
携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
【0185】
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号をアンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
【0186】
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号をアンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929の記憶媒体に記憶させる。
【0187】
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
【0188】
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記録再生部929の記憶媒体に記憶させる。
【0189】
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号をアンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
【0190】
このように構成された携帯電話機920において、画像処理部927は、上述した実施形態に係る画像符号化装置10及び画像復号装置60の機能を有する。従って、携帯電話機920で符号化及び復号される映像についての符号化効率の低下を緩和し、あるいは符号化効率を向上することができる。
【0191】
[7−3.第3の応用例]
図36は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
【0192】
記録再生装置940は、チューナ941、外部インタフェース942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、及びユーザインタフェース950を備える。
【0193】
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送手段としての役割を有する。
【0194】
外部インタフェース942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース942は、記録再生装置940における伝送手段としての役割を有する。
【0195】
エンコーダ943は、外部インタフェース942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
【0196】
HDD944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラム及びその他のデータを内部のハードディスクに記録する。また、HDD944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
【0197】
ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD−Video、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等)又はBlu−ray(登録商標)ディスクなどであってよい。
【0198】
セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
【0199】
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ904は、生成した音声データを外部のスピーカへ出力する。
【0200】
OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
【0201】
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
【0202】
ユーザインタフェース950は、制御部949と接続される。ユーザインタフェース950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
【0203】
このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置10の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置60の機能を有する。従って、記録再生装置940で符号化及び復号される映像についての符号化効率の低下を緩和し、あるいは符号化効率を向上することができる。
【0204】
[7−4.第4の応用例]
図37は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
【0205】
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース971、及びバス972を備える。
【0206】
光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、及び制御部970を相互に接続する。
【0207】
光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD又はCMOSなどのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
【0208】
信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
【0209】
画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース966又はメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース966又はメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
【0210】
OSD969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
【0211】
外部インタフェース966は、例えばUSB入出力端子として構成される。外部インタフェース966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース966は、撮像装置960における伝送手段としての役割を有する。
【0212】
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
【0213】
制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース971から入力される操作信号に応じて、撮像装置960の動作を制御する。
【0214】
ユーザインタフェース971は、制御部970と接続される。ユーザインタフェース971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
【0215】
このように構成された撮像装置960において、画像処理部964は、上述した実施形態に係る画像符号化装置10及び画像復号装置60の機能を有する。従って、撮像装置960で符号化及び復号される映像についての符号化効率の低下を緩和し、あるいは符号化効率を向上することができる。
【0216】
<8.まとめ>
ここまで、
図1〜
図37を用いて、一実施形態に係る画像符号化装置10及び画像復号装置60について説明した。本実施形態によれば、画像の量子化及び逆量子化の際に使用される量子化行列を定義する量子化行列パラメータが、シーケンスパラメータセット及びピクチャパラメータセットとは異なる量子化行列パラメータセット(QMPS)内に挿入される。それにより、量子化行列の更新の際に量子化行列パラメータ以外のパラメータを符号化することも、量子化行列パラメータ以外のパラメータの更新の際に量子化行列パラメータを符号化することも不要となる。従って、量子化行列の更新に伴う符号化効率の低下が緩和され、あるいは符号化効率が向上する。特に、量子化行列のサイズがより大きい場合、又はピクチャごとに定義される量子化行列の数がより多い場合には、本明細書で開示した手法による符号量の削減は、一層効果的となる。
【0217】
また、本実施形態によれば、量子化行列を直接的に定義する代わりに、以前に生成した量子化行列をコピーすることを指示するパラメータが、QMPSに含められ得る。この場合には、量子化行列そのものを特定するパラメータ(例えば、DPCM方式での差分データの配列)がQMPS内で省略されるため、量子化行列の定義に要する符号量をさらに削減することができる。
【0218】
また、本実施形態によれば、各QMPSにQMPS IDが付与される。そして、コピーモードにおいては、コピー元の量子化行列を定義したQMPSのQMPS IDが、ソースIDとして指定され得る。また、コピー元の量子化行列のサイズ及びタイプが、コピー元サイズ及びコピー元タイプとして指定され得る。従って、以前に生成した複数のQMPSの量子化行列のうち任意のQMPSの量子化行列をコピー元の量子化行列として柔軟に指定することができる。また、サイズ又はタイプの異なる量子化行列をコピーして再利用することも可能である。
【0219】
また、本実施形態によれば、コピーされる量子化行列の残差成分を指定するパラメータが、QMPSに含められ得る。従って、以前に生成した量子化行列と完全には等しくない量子化行列をも、少ない符号量で新たに生成することができる。
【0220】
また、軸指定モードにおいては、量子化行列の全ての要素がスキャンされる代わりに、量子化行列の3つの基準軸又は4つのコーナーに該当する量子化行列の要素の値のみが、QMPSに含められ得る。従って、この場合にも少ない符号量で量子化行列を定義することができる。
【0221】
また、本実施形態によれば、スライスヘッダにおいて指定されるQMPS IDにより識別されるQMPS内の量子化行列パラメータに基づいて、各スライスについて使用すべき量子化行列が設定される。従って、スライスごとに量子化行列を柔軟に切り替えることができるため、時々刻々と画像特性が変化する場合にも、各時点で最適な量子化行列を使用して映像を符号化又は復号することができる。
【0222】
なお、本明細書では、量子化行列パラメータセットが、符号化ストリームのヘッダに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、量子化行列パラメータセットを伝送する手法はかかる例に限定されない。例えば、各パラメータセット内の情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
【0223】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【0224】
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
量子化行列を定義する量子化行列パラメータがシーケンスパラメータセット及びピクチャパラメータセットとは異なるパラメータセット内に設定された符号化ストリームから、前記量子化行列パラメータを取得する取得部と、
前記取得部により取得される前記量子化行列パラメータに基づいて、前記符号化ストリームから復号されるデータを逆量子化する際に用いられる量子化行列を設定する設定部と、
前記設定部により設定される量子化行列を用いて、前記符号化ストリームから復号される前記データを逆量子化する逆量子化部と、
を備える画像処理装置。
(2)
前記量子化行列パラメータを含むパラメータセットは、量子化行列以外の符号化ツールに関連する他の符号化パラメータをも設定可能な共用のパラメータセットであり、
前記取得部は、前記共用のパラメータセット内に前記量子化行列パラメータが設定されている場合に、当該量子化行列パラメータを取得する、
前記(1)に記載の画像処理装置。
(3)
前記取得部は、前記共用のパラメータセットに含まれるフラグを参照することにより、前記共用のパラメータセット内に前記量子化行列パラメータが設定されているかを判定する、前記(2)に記載の画像処理装置。
(4)
前記共用のパラメータセットは、適応パラメータセット(Adaptation Parameter Set)である、前記(2)又は前記(3)に記載の画像処理装置。
(5)
前記設定部は、第1の適応パラメータセットの後に復号される第2の適応パラメータセット内に前記第1の適応パラメータセットへの参照が含まれる場合に、前記第1の適応パラメータセットから取得された前記量子化行列パラメータに基づいて設定した量子化行列を、前記第2の適応パラメータセットに対応する量子化行列として再利用する、前記(4)に記載の画像処理装置。
(6)
前記設定部は、第3の適応パラメータセット内に当該第3の適応パラメータセットへの参照が含まれる場合に、当該第3の適応パラメータセットに対応する量子化行列として既定の量子化行列を設定する、前記(5)に記載の画像処理装置。
(7)
前記設定部は、第1のパラメータセットについての第1の量子化行列のコピーを指示するコピーパラメータが第2のパラメータセットに含まれる場合には、前記第1の量子化行列をコピーすることにより、第2の量子化行列を設定する、前記(1)に記載の画像処理装置。
(8)
前記量子化行列パラメータを含む各パラメータセットは、各パラメータセットを識別する識別子を有し、
前記コピーパラメータは、コピー元のパラメータセットの識別子を含む、
前記(7)に記載の画像処理装置。
(9)
各パラメータセットは、複数の種類の量子化行列をそれぞれ定義する前記量子化行列パラメータを含み、
前記コピーパラメータは、前記第1の量子化行列の種類を指定する種類パラメータを含む、
前記(8)に記載の画像処理装置。
(10)
前記設定部は、第3のパラメータセットに含まれる前記コピー元のパラメータセットの識別子が前記第3のパラメータセットの識別子に等しい場合には、前記第3のパラメータセットについての第3の量子化行列として、既定の量子化行列を設定する、前記(8)に記載の画像処理装置。
(11)
前記設定部は、前記第2の量子化行列のサイズが前記第1の量子化行列のサイズよりも大きい場合には、コピーした前記第1の量子化行列の要素を補間することにより、前記第2の量子化行列を設定する、前記(7)に記載の画像処理装置。
(12)
前記設定部は、前記第2の量子化行列のサイズが前記第1の量子化行列のサイズよりも小さい場合には、コピーした前記第1の量子化行列の要素を間引くことにより、前記第2の量子化行列を設定する、前記(7)に記載の画像処理装置。
(13)
前記設定部は、コピーされる量子化行列の残差成分を指定する残差指定パラメータが前記第2のパラメータセットに含まれる場合には、コピーした前記第1の量子化行列に前記残差成分を加算することにより、前記第2の量子化行列を設定する、前記(7)に記載の画像処理装置。
(14)
前記量子化行列パラメータを含む各パラメータセットは、各パラメータセットを識別するパラメータセット識別子を有し、
前記逆量子化部は、スライスヘッダにおいて指定される前記パラメータセット識別子により識別されるパラメータセットに含まれる量子化行列パラメータに基づいて前記設定部により設定される量子化行列を、各スライスについて使用する、
前記(1)に記載の画像処理装置。
(15)
前記量子化行列パラメータを含むパラメータセットは、量子化行列以外の符号化ツールに関連する他の符号化パラメータをさらに含む、前記(7)〜(14)のいずれか1項に記載の画像処理装置。
(16)
前記量子化行列パラメータ及び前記他の符号化パラメータは、各パラメータセットを識別するパラメータセット識別子とは別に定義される補助識別子ごとにグループ化され、
前記取得部は、前記量子化行列パラメータを、前記補助識別子を用いて取得する、
前記(15)に記載の画像処理装置。
(17)
前記パラメータセット又は他のパラメータセットにおいて、複数の前記補助識別子の組合せに関連付けられる組合せ識別子が定義され、
前記取得部は、各スライスのスライスヘッダにおいて指定される前記組合せ識別子を取得し、取得した前記組合せ識別子に関連付けられる前記補助識別子を用いて前記量子化行列パラメータを取得する、
前記(16)に記載の画像処理装置。
(18)
量子化行列を定義する量子化行列パラメータがシーケンスパラメータセット及びピクチャパラメータセットとは異なるパラメータセット内に設定された符号化ストリームから、前記量子化行列パラメータを取得することと、
取得された前記量子化行列パラメータに基づいて、前記符号化ストリームから復号されるデータを逆量子化する際に用いられる量子化行列を設定することと、
設定された量子化行列を用いて、前記符号化ストリームから復号される前記データを逆量子化することと、
を含む画像処理方法。
(19)
データを量子化行列を用いて量子化する量子化部と、
前記量子化部により前記データを量子化する際に使用される量子化行列を定義する量子化行列パラメータを設定する設定部と、
前記設定部により設定される前記量子化行列パラメータをシーケンスパラメータセット及びピクチャパラメータセットとは異なるパラメータセット内に符号化する符号化部と、 を備える画像処理装置。
(20)
データを量子化行列を用いて量子化することと、
前記データを量子化する際に使用される前記量子化行列を定義する量子化行列パラメータを設定することと、
設定された前記量子化行列パラメータをシーケンスパラメータセット及びピクチャパラメータセットとは異なるパラメータセット内に符号化することと、
を含む画像処理方法。