JP2023006203A - 画像復号装置及び画像符号化装置 - Google Patents

画像復号装置及び画像符号化装置 Download PDF

Info

Publication number
JP2023006203A
JP2023006203A JP2021108681A JP2021108681A JP2023006203A JP 2023006203 A JP2023006203 A JP 2023006203A JP 2021108681 A JP2021108681 A JP 2021108681A JP 2021108681 A JP2021108681 A JP 2021108681A JP 2023006203 A JP2023006203 A JP 2023006203A
Authority
JP
Japan
Prior art keywords
profile
syntax
value
length
flag
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021108681A
Other languages
English (en)
Inventor
知宏 猪飼
Tomohiro Igai
健 中條
Takeshi Nakajo
知典 橋本
Tomonori Hashimoto
天洋 周
Tianyang Zhou
友子 青野
Tomoko Aono
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2021108681A priority Critical patent/JP2023006203A/ja
Publication of JP2023006203A publication Critical patent/JP2023006203A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】互換性を有しながらツール制限を行うビットストリーム構造を有する画像復号装置及び画像符号化装置を提供する。【解決手段】符号化データからプロファイルを示すgeneral_profile_idcを復号するヘッダ復号部を備え、上記ヘッダ復号部は、general_profile_idcが特定の値の場合、符号化データからさらに制限シンタックス長を示すシンタックス要素と、制限シンタックス長を示すシンタックス要素で示される長さ以上の制限シンタックス群を復号することを特徴とする画像復号装置。【選択図】図21

Description

本発明の実施形態は、画像復号装置及び画像符号化装置に関する。
画像を効率的に伝送又は記録するために、画像を符号化することによって符号化データを生成する画像符号化装置、及び、当該符号化データを復号することによって復号画像を生成する画像復号装置が用いられている。
具体的な画像符号化方式としては、例えば、H.264/AVCやHEVC(High-Efficiency Video
Coding)方式等が挙げられる。
このような画像符号化方式においては、動画像を構成する画像(ピクチャ)は、画像を分割することにより得られるスライス、スライスを分割することにより得られる符号化ツリーユニット(CTU:Coding Tree Unit)、符号化ツリーユニットを分割することで得ら
れる符号化単位(符号化ユニット(Coding Unit:CU)と呼ばれることもある)、及び、
符号化単位を分割することより得られる変換ユニット(TU:Transform Unit)からなる階層構造により管理され、CU毎に符号化/復号される。
また、このような画像符号化方式においては、通常、入力画像を符号化/復号することによって得られる局所復号画像に基づいて予測画像が生成され、当該予測画像を入力画像(原画像)から減算して得られる予測誤差(「差分画像」又は「残差画像」と呼ぶこともある)が符号化される。予測画像の生成方法としては、画面間予測(インター予測)、及び、画面内予測(イントラ予測)が挙げられる。
また、近年の画像符号化及び復号技術として非特許文献1(VVC)が挙げられる。非特
許文献1には、変換精度やライスパラメータの拡張技術が開示されている。
非特許文献2には、Format Range Extension profiles(RExt)とよばれ、HEVCにおいて
、新しいプロファイルを定義する技術が知られている。
VVC operation range extensions (Draft 3), JVET-V2005-v1, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29 ITU-T:HEVC
非特許文献1は拡張技術であるから、既存のプロファイルでの動作に影響を与えることのないよう後方互換性を有しつつ、すでに新しいプロファイルにおいて利用可能なように定義する必要がある。非特許文献2は、HEVCのprofile_tier_level()というシンタックスにおいて拡張プロファイルの定義を定めているが、VVCのprofile_tier_level()のシンタ
ックスには、適当なreservedビットが定められていないため、後方互換性を有しながら拡張することが難しい、という課題がある。また、新たなプロファイル定義のために、将来の拡張(前方互換性)を考えた構成も必要である。
上記課題を解決するために、本発明の一態様に係る画像復号装置は、
符号化データからプロファイルを示すgeneral_profile_idcを復号するヘッダ復号部を備
え、general_profile_idcが特定の値の場合において、符号化データからさらに制限シン
タックス長を示すシンタックス要素と、制限シンタックス長を示すシンタックス要素で示される長さ以上の制限シンタックス群を復号することを特徴とする。
以上の構成によれば、上記問題の何れかの解決を図ることができる。
本実施形態に係る画像伝送システムの構成を示す概略図である。 本実施形態に係る動画像符号化装置を搭載した送信装置、及び、動画像復号装置を搭載した受信装置の構成について示した図である。PROD_Aは動画像符号化装置を搭載した送信装置を示しており、PROD_Bは動画像復号装置を搭載した受信装置を示している。 本実施形態に係る動画像符号化装置を搭載した記録装置、及び、動画像復号装置を搭載した再生装置の構成について示した図である。PROD_Cは動画像符号化装置を搭載した記録装置を示しており、PROD_Dは動画像復号装置を搭載した再生装置を示している。 符号化ストリームのデータの階層構造を示す図である。 本発明のプロファイルレベルを規定するシンタックステーブルである。 動画像復号装置の構成を示す概略図である。 動画像復号装置の概略的動作を説明するフローチャートである。 TU復号部の構成を示す概略図である。 本発明の拡張規格用のシンタックステーブルである。 量子化変換係数に関するシンタックス要素を示す図である。 RRCに関するシンタックス表である。 RRCに関するシンタックス表である。 RRCに関するシンタックス表である。 TSRCに関するシンタックス表である。 TSRCに関するシンタックス表である。 動画像符号化装置の構成を示すブロック図である。 ライスパラメータ導出に関する図である。 プロファイルのgeneral_profile_idcの例を示す図である。 本発明のプロファイル単位のツール制限を規定するテーブルである。 本発明のプロファイル単位のツール制限を規定するテーブルである。 本発明のツール制限を規定するシンタックステーブルである。 本発明のツール制限を規定するシンタックステーブルの別の例である。
〔実施形態1〕
以下、図面を参照しながら本発明の実施形態について説明する。
図1は、本実施形態に係る画像伝送システム1の構成を示す概略図である。
画像伝送システム1は、符号化対象画像を符号化した符号化ストリームを伝送し、伝送された符号化ストリームを復号し画像を表示するシステムである。画像伝送システム1は、動画像符号化装置(画像符号化装置)11、ネットワーク21、動画像復号装置(画像復号装置)31、及び画像表示装置(画像表示装置)41を含んで構成される。
動画像符号化装置11には画像Tが入力される。
ネットワーク21は、動画像符号化装置11が生成した符号化ストリームTeを動画像復号装置31に伝送する。ネットワーク21は、インターネット(Internet)、広域ネットワーク(WAN:Wide Area Network)、小規模ネットワーク(LAN:Local Area Network)又はこれらの組み合わせである。ネットワーク21は、必ずしも双方向の通信網に限らず、地上デジタル放送、衛星放送等の放送波を伝送する一方向の通信網であってもよい。また、ネットワーク21は、DVD(Digital Versatile Disc:登録商標)、BD(Blue-ray Disc:登録商標)等の符号化ストリームTeを記録した記憶媒体で代替されてもよい。
動画像復号装置31は、ネットワーク21が伝送した符号化ストリームTeのそれぞれを復号し、復号した1又は複数の復号画像Tdを生成する。
画像表示装置41は、動画像復号装置31が生成した1又は複数の復号画像Tdの全部又は一部を表示する。画像表示装置41は、例えば、液晶ディスプレイ、有機EL(Electro-luminescence)ディスプレイ等の表示デバイスを備える。ディスプレイの形態としては、据え置き、モバイル、HMD等が挙げられる。また、動画像復号装置31が高い処理能力を有する場合には、画質の高い画像を表示し、より低い処理能力しか有しない場合には、高い処理能力、表示能力を必要としない画像を表示する。
<演算子>
本明細書で用いる演算子を以下に記載する。
>>は右ビットシフト、<<は左ビットシフト、&はビットワイズAND、|はビットワイズOR
、|=はOR代入演算子であり、||は論理和を示す。
x?y:zは、xが真(0以外)の場合にy、xが偽(0)の場合にzをとる3項演算子である。
Clip3(a,b,c)は、cをa以上b以下の値にクリップする関数であり、c<aの場合にはaを返
し、c>bの場合にはbを返し、その他の場合にはcを返す関数である(ただし、a<=b)。
abs(a)はaの絶対値を返す関数である。
Int(a)はaの整数値を返す関数である。
floor(a)はa以下の最小の整数を返す関数である。
ceil(a)はa以上の最大の整数を返す関数である。
a/dはdによるaの除算(小数点以下切り捨て)を表す。
<符号化ストリームTeの構造>
本実施形態に係る動画像符号化装置11及び動画像復号装置31の詳細な説明に先立って、動画像符号化装置11によって生成され、動画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
図4は、符号化ストリームTeにおけるデータの階層構造を示す図である。符号化ストリ
ームTeは、例示的に、シーケンス、及びシーケンスを構成する複数のピクチャを含む。図4には、それぞれ、シーケンスSEQを既定する符号化ビデオシーケンス、ピクチャPICTを規定する符号化ピクチャ、スライスSを規定する符号化スライス、スライスデータを規定す
る符号化スライスデータ、符号化スライスデータに含まれる符号化ツリーユニット、符号化ツリーユニットに含まれる符号化ユニットを示す図が示されている。
(符号化ビデオシーケンス)
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために動画像復号
装置31が参照するデータの集合が規定されている。シーケンスSEQは、図4の符号化ビデオシーケンスに示すように、ビデオパラメータセット(Video Parameter Set)、シーケン
スパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャヘッダ(picture header)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。
ビデオパラメータセットVPSは、複数のレイヤから構成されている画像において、複数
の画像に共通する符号化パラメータの集合及び画像に含まれる複数のレイヤ及び個々のレイヤに関連する符号化パラメータの集合が規定されている。
シーケンスパラメータセットSPSでは、対象シーケンスを復号するために動画像復号装
置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。なお、SPSは複数存在してもよい。その場合、PPSから複数のSPSの何れか
を選択する。
ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために
動画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適用を示すフラグ(weighted_pred_flag)及びスケーリングリスト(量子化マトリックス)が含まれる。なお、PPSは複数存在してもよい。その場合、対象シーケンス内の各ピクチャから複数のPPSの何れかを選択する。
ピクチャヘッダでは、1枚の符号化ピクチャに含まれる全てのスライスに共通の符号化パラメータが定義される。例えばPOC(Picture Order Count)や分割に関する符号化パラメータが含まれる。
(符号化ピクチャ)
符号化ピクチャでは、処理対象のピクチャPICTを復号するために動画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図4の符号化ピクチャに示すよ
うに、スライス0~スライスNS-1を含む(NSはピクチャPICTに含まれるスライスの総数)
なお、以下、スライス0~スライスNS-1のそれぞれを区別する必要が無い場合、符号の
添え字を省略して記述することがある。また、以下に説明する符号化ストリームTeに含まれるデータであって、添え字を付している他のデータについても同様である。
(符号化スライス)
符号化スライスでは、処理対象のスライスSを復号するために動画像復号装置31が参照
するデータの集合が規定されている。スライスは、図4の符号化スライスに示すように、
スライスヘッダ、及び、スライスデータを含んでいる。
スライスヘッダには、対象スライスの復号方法を決定するために動画像復号装置31が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダに含まれる符号化パラメータの一例である。
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、又は、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、又は、イントラ予測を用いるBスライス等が挙げられる。なお、インター予測は、単予測、双予測に限定されず、より多くの参照ピクチャを用いて予測画像を生成してもよい。以下、P、Bスライスと呼ぶ場合には、インター予測を用いることができるブロックを含むスライスを指す。
なお、スライスヘッダは、ピクチャパラメータセットPPSへの参照(pic_parameter_set_id)を含んでいてもよい。
(符号化スライスデータ)
符号化スライスデータでは、処理対象のスライスデータを復号するために動画像復号装置31が参照するデータの集合が規定されている。スライスデータは、図4の符号化スライ
スヘッダに示すように、CTUを含んでいる。CTUは、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
(符号化ツリーユニット)
図4の符号化ツリーユニットには、処理対象のCTUを復号するために動画像復号装置31が参照するデータの集合が規定されている。CTUは、再帰的な4分木分割(QT(Quad Tree)
分割)、2分木分割(BT(Binary Tree)分割)あるいは3分木分割(TT(Ternary Tree)
分割)により符号化処理の基本的な単位である符号化ユニットCUに分割される。BT分割とTT分割を合わせてマルチツリー分割(MT(Multi Tree)分割)と呼ぶ。再帰的な4分木分
割により得られる木構造のノードのことを符号化ノード(Coding Node)と称する。4分木、2分木、及び3分木の中間ノードは、符号化ノードであり、CTU自身も最上位の符号化ノードとして規定される。
CUは符号化ノードの末端ノードであり、これ以上分割されない。CUは符号化処理の基本的な単位となる。
(符号化ユニット)
図4の符号化ユニットに示すように、処理対象の符号化ユニットを復号するために動画
像復号装置31が参照するデータの集合が規定されている。具体的には、CUは、CUヘッダCUH、予測パラメータ、変換パラメータ、量子化変換係数等から構成される。CUヘッダでは予測モード等が規定される。
予測処理は、CU単位で行われる場合と、CUをさらに分割したサブCU単位で行われる場合がある。CUとサブCUのサイズが等しい場合には、CU中のサブCUは1つである。CUがサブCU
のサイズよりも大きい場合、CUは、サブCUに分割される。例えばCUが8x8、サブCUが4x4の場合、CUは水平2分割、垂直2分割からなる、4つのサブCUに分割される。
予測の種類(予測モードCuPredMode)は、イントラ予測(MODE_INTRA)と、インター予測(MODE_INTER)の2つを少なくとも備える。さらにイントラブロツクコピー予測(MODE_IBC)
を備えても良い。イントラ予測、イントラブロツクコピー予測は、同一ピクチャ内の予測であり、インター予測は、互いに異なるピクチャ間(例えば、表示時刻間、レイヤ画像間)で行われる予測処理を指す。
変換・量子化処理はCU単位で行われるが、量子化変換係数は4x4等のサブブロック単位
でエントロピー符号化してもよい。
予測画像は、ブロックに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測とインター予測の予測パラメータがある。
(動画像復号装置の構成)
本実施形態に係る動画像復号装置31(図6)の構成について説明する。
動画像復号装置31は、エントロピー復号部301、パラメータ復号部(予測画像復号装置
)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311(スケーリング部)、及び加算部312を含んで構成される。なお、後述の動画像符号化装置11に合わせ、動画像復号装
置31にループフィルタ305が含まれない構成もある。
パラメータ復号部302は、さらに、ヘッダ復号部3020、CT情報復号部3021、及びCU復号
部3022(予測モード復号部)を備えており、CU復号部3022はTU復号部3024を備えている。これらを総称して復号モジュールと呼んでもよい。ヘッダ復号部3020は、符号化データからVPS、SPS、PPS等のパラメータセット情報、スライスヘッダ(スライス情報)を復号す
る。CT情報復号部3021は、符号化データからCTを復号する。CU復号部3022は符号化データからCUを復号する。TU復号部3024は、符号化データから、変換スキップフラグtransform_skip_flagとQP更新情報(量子化補正値)と量子化変換係数(residual_coding)を復号する。
ヘッダ復号部3020は、SPSから非分離変換を利用するか否かを示すフラグsps_lfnst_enabled_flagを復号する。また、ヘッダ復号部3020は、sps_lfnst_enabled_flagが1である
場合に、ピクチャヘッダ(PH)からph_lfnst_enabled_flagを復号する。ph_lfnst_enabled_flagが現れない場合には、ph_lfnst_enabled_flagを0と推定(infer)する。あるいは、ph_lfnst_enabled_flagが現れない場合には、ph_lfnst_enabled_flagの値としてsps_lfnst_enabled_flagの値を設定してもよい。
TU復号部3024は、符号化データから変換基底を示すインデックスmts_idxを復号する。
また、TU復号部3024は、符号化データから非分離変換の利用の有無、及び、変換基底を示すパラメータlfnst_idxを復号する。具体的には、TU復号部3024は、CUの幅と高さが4以
上であり、且つ、予測モードがイントラ予測モードである場合に、lfnst_idxを復号する
。なお、lfnst_idxは0の場合、非分離変換の非適用を示し、1の場合、非分離変換の変換
行列(変換基底)のセット(ペア)のうち一方の変換行列を示し、2の場合、上記ペアの
うち他方の変換行列を示す。
TU復号部3024は、変換ユニットのサイズ(tbWidthとtbHeight)が所定の最大サイズ以
下である場合(tbWidth<=MaxTsSize && tbHeight<=MaxTsSize)、transform_skip_flag[x0][y0][cIdx]を復号する。
TU復号部3024は、TUに予測誤差が含まれている場合(例えば、tu_cbf_luma[x0][y0]が
1の場合)、符号化データからQP更新情報と量子化変換係数を復号する。量子化変換係数の導出では複数のモード(例えばRRCモードとTSRCモード)を備えてもよい。具体的には
、変換を用いる通常の予測誤差の導出(RRC:Regular Residual Coding)と、変換を用いな
い変換スキップモードでの予測誤差の導出(TSRC:Transform Skip Residual Coding)とで
、異なる処理を実施してもよい。QP更新情報は、量子化パラメータQPの予測値である量子化パラメータ予測値qPpredからの差分値である。
また、以降では処理の単位としてCTU、CUを使用した例を記載するが、この例に限らず
、サブCU単位で処理をしてもよい。あるいはCTU、CUをブロック、サブCUをサブブロック
と読み替え、ブロックあるいはサブブロック単位の処理としてもよい。
エントロピー復号部301は、外部から入力された符号化ストリームTeに対してエントロ
ピー復号を行って、個々の符号(シンタックス要素)をパースする。エントロピー符号化には、シンタックス要素の種類や周囲の状況に応じて適応的に選択したコンテキスト(確率モデル)を用いてシンタックス要素を可変長符号化する方式と、予め定められた表、あるいは計算式を用いてシンタックス要素を可変長符号化する方式がある。前者の例としてCABAC(Context Adaptive Binary Arithmetic Coding)が挙げられる。パースされた符号には、予測画像を生成するための予測情報及び、差分画像を生成するための予測誤差等がある。
エントロピー復号部301は、分離した符号をパラメータ復号部302に出力する。分離した符号とは、例えば、予測モードCuPredModeである。どの符号を復号するかの制御は、パラメータ復号部302の指示に基づいて行われる。
(基本フロー)
図7は動画像復号装置31の概略的動作を説明するフローチャートである。
(S1100:パラメータセット情報復号)ヘッダ復号部3020は、符号化データからVPS、SPS、PPS、SEI、PH等のパラメータセット情報を復号する。
(S1200:スライス情報復号)ヘッダ復号部3020は、符号化データからスライスヘッダ
(スライス情報)を復号する。
以下、動画像復号装置31は、対象ピクチャに含まれる各CTUについて、S1300からS5000
の処理を繰り返すことにより各CTUの復号画像を導出する。
(S1300:CTU情報復号)CT情報復号部3021は、符号化データからCTUを復号する。
(S1400:CT情報復号)CT情報復号部3021は、符号化データからCTを復号する。
(S1500:CU復号)CU復号部3022はS1510、S1520を実施して、符号化データからCUを復
号する。また、CU復号部3022は、符号化データからCU単位で量子化パラメータの差分CuQpDeltaValを復号し、量子化パラメータを導出する。
(S1510:CU情報復号)CU復号部3022は、符号化データからCU情報、予測情報、TU分割
フラグsplit_transform_flag、CU残差フラグcbf_cb、cbf_cr、cbf_luma等を復号する。
(S1520:TU情報復号)TU復号部3024は、TUに予測誤差が含まれている場合に、符号化
データからQP更新情報と量子化変換係数を復号する。
(S2000:予測画像生成)予測画像生成部308は、対象CUに含まれる各ブロックについて、予測情報に基づいて予測画像を生成する。
(S3000:逆量子化・逆変換)逆量子化・逆変換部311は、対象CUに含まれる各TUについて、逆量子化・逆変換処理を実行する。
(S4000:復号画像生成)加算部312は、予測画像生成部308より供給される予測画像と
、逆量子化・逆変換部311より供給される予測誤差とを加算することによって、対象CUの
復号画像を生成する。
(S5000:ループフィルタ)ループフィルタ305は、復号画像にデブロッキングフィルタ、SAO (Sample Adaptive Filter)、ALF (AdaptiveLoopFilter)等のループフィルタをかけ、復号画像を生成する。
(量子化変換係数の導出、残差符号化)
ロスレス符号化や原画の画素間相関が小さい時には、変換を実施しない方が、符号化効率は高い場合がある。変換を実施しない技術を変換スキップ(Transform Skip)と称す。変換スキップは、Identical Transformとも呼ばれ、量子化パラメータに応じた変換係数
のスケーリングのみを行う。変換スキップであるかはシンタックス要素transform_skip_flagを用いて通知される。transform_skip_flagは、Y, Cb, Crの各色コンポーネント(cIdx)ごとに通知されてもよい。
変換を用いる通常の予測誤差の導出(RRC:Regular Residual Coding)と、変換スキップ
モードでの予測誤差の導出(TSRC:Transform Skip Residual Coding)とでは、予測誤差の
符号化方法も復号方法も異なる。
図8はTU復号部3024のブロック図であり、RRC部30241とTSRC部30242が含まれる。RRC部30241は変換を用いる通常の予測誤差を導出する処理部であり、TSRC部30242は変換スキッ
プモードでの予測誤差を導出する処理部である。
図10のtransform_skip_flag[x0][y0][cIdx]は、左上座標が(x0,y0)、色成分がcIdxのブロックにおいて、変換が適用されるか否かを示す。transform_skip_flag=1(変換スキッ
プモード)の場合、このブロックには変換は適用されない。transform_skip_flag=0の場
合、このブロックに変換が適用されるか否かは他のパラメータに依存する。
図11から図13、および図14から図15は各々、RRC(Regular Residual Coding)、TSRC(Transform Skip Residual Coding)での変換係数(予測誤差)の符号化データの構造(符号化方法)を示すシンタックステーブルである。
(RRC部、RRCモード)
変換スキップしない通常の予測誤差符号化方法(図11から図13)において、RRC部30241は、LAST位置を示すシンタックス要素(図示しない)を復号し、LAST位置(LastSignificantCoeffX, LastSignificantCoeffY)を導出する。LAST位置は、TUの変換係数を低周波数成分から高周波数成分の方向にスキャンする場合の最後の非ゼロ係数の位置である。高周波数成分から順に変換係数(係数)を符号化、復号する場合、LAST位置は最初に復号する量子化変換係数の位置を示す。次に、RRC部30241は、LAST位置を参照してsb_coded_flagを復号する。sb_coded_flagは、サブブロックに非ゼロ係数が含まれるか否かを示すフラグである。サブブロックはTUを4x4単位に分割した領域である。sb_coded_flag=1(サブブロックに非ゼロ係数が含まれる)であれば、RRC部30241はsig_coeff_flagを復号する。sig_coeff_flagは係数値が非ゼロか否かを示すフラグである。sig_coeff_flag=1(係数値は非ゼロ)であれば、RRC部30241はabs_level_gtx_flag、par_level_flag、abs_remainder、dec_abs_levelを復号する。これらは係数の絶対値を示すシンタックス要素である。abs_level_gtx_flag[n][j]はスキャン位置nの係数の絶対値が(j<<1)+1より大きいか否かを表すフラグである。abs_level_gtx_flag[n][j]が通知されない場合、0と推定される。par_level_flag[n]はスキャン位置nの係数のパリティである。par_level_flag[n][j]が通知されない場合、0と推定される。abs_remainder[n]はスキャン位置nの係数の絶対値の残り(remaining)を表し、ゴロム・ライス符号(Golomb-Rice code)により復号される。abs_remainder[n]が通知されない場合、0と推定される。dec_abs_level[n]はスキャン位置nにおける係数の絶対値を導出するための残差の絶対値である。dec_abs_level[n]が通知されない場合、0と推定される。RRC部30241はこれらのシンタックス要素から係数の絶対値を導出する。
上記のように、RRC部30241は、TUのサブブロックにおいてLAST位置を復号することが特徴である。
(TSRC部、TSRCモード)
変換を実施しない場合(変換スキップモード)の予測誤差符号化方法(図14、図15、図9)
において、TSRC部30242は、各サブブロックのsb_coded_flagを復号する。sb_coded_flag=1(サブブロックに非ゼロ係数が含まれる)であれば、TSRC部30242は、サブブロック内の位置(xC, xC)の変換係数のsig_coeff_flag[xC][yC]を復号する。sig_coeff_flag=1(係数値
は非ゼロ)であれば、TSRC部30242はcoeff_sign_flag、abs_level_gtx_flag、par_level_flag、abs_remainderを復号する。これらは係数の絶対値を示すシンタックス要素であり、定義は上述の通りである。TSRC部30242はこれらのシンタックス要素から係数の絶対値を
導出する。
上記のように、TSRC部30242は、TUのサブブロックにおいてLAST位置を復号しないこと
が特徴である。
(abs_remainderとdec_abs_levelの復号)
TU復号部3024は、符号化データから、ライスパラメータcRiceParamを用いて、残差絶対値のシンタックス値(abs_remainderもしくはdec_abs_level、以下残差と記す)を復号する。当該シンタックスのバイナリゼーションには、プリフィックスとサフィックスとから構成される符号を用いる。プリフィックスとサフィックスとして、ゴロムライス符号のアルファ符号と固定長バイナリゼーションを用いてもよい。サフィックスはEG(k)(Exponential-Golomb code)符号を用いてもよい。シンタックス要素として符号化される、「変換係数の残差の絶対値(残差絶対値)」を単に「残差」と表現する。
本実施形態では、ゴロムライス符号として、Truncated Rice(TR)符号を用い、プリフィックスをprefixValTRとsuffixValTRに分けて符号化し、EG(k)符号では、サフィックスをexp部のexpValとescape部のescapeValに分けて符号化する例を説明する。残差(abs_remainderもしくはdec_abs_level)を1<<cRiceParam、(((1<<expVal))-1)<<cRiceParamで割った商は各々prefixValTRとexpValを用いて符号化される。残差(abs_remainderもしくはdec_abs_level)を1<<cRiceParam、(1<<expVal<<cRiceParam)で割った余りは、各々suffixValTR、escapeValを用いて符号化される。つまり、残差は以下の様に符号化される。
((prefixValTR + ((1<<expVal-1))) << cRiceParam) + suffixValTR + escapeVal
残差が所定の値cMax以下の場合には、prefixValTRとsuffixValTRだけが符号化される。
prefixVal = (prefixValTR<<cRiceParam) + suffixValTR
残差が所定の値より大きい場合(suffixValが存在する場合)、cMaxと等しいprefixValを示すprefixValTRに加えてexpValとescapeValが符号化される。
prefixVal = (prefixValTR<<cRiceParam) = cMax
suffixVal = (((1<<expVal)-1)<<cRiceParam) + escapeVal
ここでは残差は以下で表せる。プリフィックスだけで表せる場合の残差は下式である。
残差=((prefixValTR) << cRiceParam) + suffixValTR
それ以外(プリフィックスだけで表せない場合、もしくは、prefixValTR=6)の場合の残
差は下式である。
残差=((prefixValTR + (1<<(expVal)-1)) << cRiceParam) + escapeVal
また以下のように、prefixVal、suffixValを定義してもよい。
prefixVal = (prefixValTR << cRiceParam) + suffixValTR
suffixVal = (((2<<expVal)-2) << cRiceParam) + escapeVal
(流れ)
TU復号部3024は、まずプリフィックスprefixValの最大値cMaxを、cRiceParamから導出
する。
cMax = 6 << cRiceParam
ここで6はprefixValTRの最大値である。maxPrefixValTRとも呼ぶ。
TU復号部3024は、後述のTruncated Rice(TR)符号のバイナリゼーションに基づいて符号化データからプリフィックスの値(prefixVal)を復号する。なお、プリフィックスと残
差の関係は以下のとおりである。
prefixVal = Min(cMax,abs_remainder[n])
あるいは以下でもよい。
prefixVal = Min(cMax,dec_abs_level)
続いて、残差がcMaxより大きい場合(prefixValだけでは残差を表現できない場合)、TU復号部3024は、以下の関係式を満たすsuffixValをさらに復号する。
suffixVal = abs_remainder[n] - cMax
あるいは以下でもよい。
suffixVal = dec_abs_level - cMax
具体的には、TU復号部3024は、suffixValが存在する場合、符号化データからLimited k-th order Exp-Golomb(EG(k))のバイナリゼーションに基づいてsuffixValを復号する。suffixValが存在する場合とは、TR符号のprefixValのビット列が長さ6(=maxPrefixValTR)、つまり"111111"の場合である。ここで、次数kをcRiceParam、変数maxPreExtLenを11、変数truncSuffixLenを15とする。maxPreExtLenは固定値(11)とせず、変換係数のレンジlog2TransformRangeに応じて導出してもよい。
本実施形態において例えば、maxPreExtLenを以下の式で導出してもよい。
maxPreExtLen = (32 - 6) - log2TransformRange = 26 - log2TransformRange
例えば、log2TransformRangeが後述の(式R-1)の場合、以下のように導出してもよい。
maxPreExtLen = extended_precision_processing_flag ? 26 - Max(15, BitDepth + BDOFFSET) : 11
ここで、maxPreExtLen、escapeLengthは、各々、EG(k)符号におけるexp部とescape部の長さの最大値を示す。log2TransformRangeは、逆量子化・逆変換部311で処理される変換
での係数のレンジを示す変数である。
(Truncated Rice(TR)符号のバイナリゼーション)
TRバイナリゼーションの入力symbolValはprefixValであり、TRバイナリゼーションでは、symbolVal(==prefixVal)の(1<<cRiceParam)による商をprefixValTR、余りをsuffixValTRとして符号化する。なお、TR符号の入力symbolValとprefixValTRの関係は以下のとおりである。
prefixValTR = symbolVal>>cRiceParam
prefixValTRは以下の定義でビット列に変換される。prefixValTR<(cMax>>cRiceParam)
の場合、prefixValTR+1の長さのbinIdxでインデックスされたビット列である。binIdx<prefixValTRの場合、ビン(bins)は"1"、binIdx==prefixValTRの場合、ビンは"0"である。それ以外(prefixValTR==(cMax>>cRiceParam)の場合、長さがcMax>>cRiceParamの"1"の列である。なお、ビンとは、"0"か"1"からなるビット列である。binIdxとは、ビット列の先頭からの位置を示す値であり、binIdx=0が先頭(バイナリ列の左端)に対応する。以下にprefixValTRが0~5の場合のビット列(bins)の例を示す。
prefixValTR==0 bins=0
prefixValTR==1 bins=10
prefixValTR==2 bins=110
prefixValTR==3 bins=1110
prefixValTR==4 bins=11110
prefixValTR==5 bins=111110

ただし、symbolVal>=cMax(すなわちprefixVal==(6<<cRiceParam))の場合は下式である。
prefixValTR==6 bins=111111
TR符号のprefixValTRのbinsはtruncatedなアルファ符号(unary符号)である。ここでtruncatedであるとは最大値に一致する場合には、最後の0を省略することを意味する。
cMaxがsymbolValより大きく(symbolVal<cMax)、cRiceParam>0の場合には、TRビン列のsuffixTRが存在し、下記のように導出される。suffixValTRはTRビット列のsuffixである。
suffixValTR = symbolVal - (prefixValTR<<cRiceParam)
また、TRビット列のsuffixのバイナリゼーションは、最大値cMaxFLを(1<<cRiceParam)-1とする、固定長バイナリゼーション(後述)を用いる。
なお、symbolVal==cMaxの場合には、残差のサフィックスは、上記TRバイナリゼーショ
ンのsuffixValTRではなく、EG(k)符号のバイナリゼーションを用いる。
(Limited k-th order Exp-Golomb/EG(k)符号のバイナリゼーション)
残差のsuffixValはEG(k)符号のバイナリゼーションを用いてもよい。EG(k)符号は、次
数k(=cRiceParam)とmaxPreExtLenを入力として得られるバイナリゼーションであり、以下の疑似コードで示す。EG(k)符号は長さmaxPreExtLen以下からなるexp部と、escapeLength長の固定長バイナリゼーションのescape部からなる。preExtLenは、exp部のput(1)の数をカウントする変数であり、exp部で符号化される値espValに等しい。つまりexpVal=preExtLen。対応する残差の値はexpVal<<cRiceParamである。escapeValはescape部で符号化される値である。
// exp部
codeValue = symbolVal >> k
preExtLen = 0
while((preExtLen<maxPreExtLen) && (codeValue > ((2<<preExtLen) - 2)))) {
preExtLen++
put(1)
}
if(preExtLen == maxPreExtLen)
escapeLength = truncSuffixLen
else {
escapeLength = preExtLen + k
put(0)
}
// escape部
symbolVal = symbolVal - (((1<<preExtLen)-1)<<k)
while((escapeLength--)>0)
put((symbolVal>>escapeLength) & 1)
ここで、symbolValは入力値であり、残差からprefixVal(==cMax)を引いた値である。put(X)は、X("0"または"1")をビット列の最後に追加してビット列を作る操作を示す。ビット列の初期値は空({})である。escapeLengthは、symbolValにおいてescape部から出力されるビット位置を示す変数である。
なお、escape部は以下のようにしてもよい。
symbolVal = symbolVal - (((2<<preExtLen)-2)<<k)
while((escapeLength--)>0)
put((symbolVal>>escapeLength) & 1)
(固定長バイナリゼーション)
固定長バイナリゼーションは、最大値cMaxFL、値symbolValに対して、Ceil(Log2(cMaxFL+1))の長さfixedLengthのunsigned整数列(2進数列)を用いて行う。なお、位置binIdxの0が最上位ビット(MSB)に対応し、binIdxが大きくなるにつれて最下位ビット(LSB)に近づく。
(残差の復号のまとめ)
TU復号部3024は、prefixValとsuffixValから構成される残差を復号する。
TU復号部3024は、cRiceParamからcMaxを導出し、cMaxを上限として符号化データからprefixValを復号し、suffixValが存在する場合にはsuffixValを復号する。
具体的には、TU復号部3024は、TRバイナリゼーションのprefixValTRを復号し、symbolVal<cMax、cRiceParam>0(つまりprefixVal<cMax、prefixVal<6)の場合には、さらに符号化データから固定長バイナリゼーションのsuffixValTRを復号する。この場合、suffixValが存在しない。
TU復号部3024は、上記suffixValが存在しない場合、以下の式で、abs_remainder[n]、dec_abs_levelを導出する。
abs_remainder[n] = (prefixValTR<<cRiceParam) + suffixValTR
dec_abs_level[n]= (prefixValTR<<cRiceParam) + suffixValTR
それ以外の場合(prefixVal==cMax、prefixValTR==6の場合)、TU復号部3024は、EG(k)符号によりsuffixValを復号し、下式でabs_remainder[n]、dec_abs_level[n]を導出する。
abs_remainder[n] = cMax + suffixVal
dec_abs_level[n] = cMax + suffixVal
ここで、suffixValがEG(k)符号のexp部のpreExtLenとescape部のescapeValからなる場
合、下記が成り立つ。
suffixVal = (preExtLen<<cRiceParam) + escapeVal
まとめると、TU復号部3024は、符号化データからTRバイナリゼーションのプリフィック
スprefixValと、EG(k)符号のexp部のpreExtLenとescape部のescapeValからなるsuffixValを復号して、残差(abs_remainder[n]もしくはdec_abs_level[n])を導出する。
abs_remainder[n] = prefixVal + suffixVal = (prefixValTR<<cRiceParam) + (prefixValTR < 6) ? suffixValTR : (1<<expVal<<cRiceParam) + escapeVal
ここで、(prefixValTR < 6)の場合にpreExtLen=escapeVal=0とすると、
abs_remainder[n] = (prefixValTR+preExtLen)<<cRiceParam + (prefixValTR < 6) ? suffixValTR : escapeVal
dec_abs_level[n]の導出も同様である。
なお、truncatedなアルファ符号のpredfixValTRのbinsとアルファ符号のpredExtLenのbinsを連結した符号もアルファ符号であるので、TR符号のprefixValとEG(k)符号のexp部は一体のものとして復号してもよい。この場合、最大長maxPreExtLen+6のアルファ符号を符号化データから読み取って、アルファ符号の長さprefixtmp(=prefixValTR+expVal)を復号する。ここで、maxPreExtLen+6は、prefixValTRの最大長6と、EG(k)符号のexp部の最大長maxPreExtLenの和である。
TU復号部3024は、1<<cRiceParamの商と余りに分けて、残差を以下のように導出しても
よい。
残差 = (prefixRes << cRiceParam) + suffixRes
復号されたアルファ符号の長さをprefixtmpとすると、残差の指数部prefixResは下式で表される。
prefixRes = (prefixVal<6) ? prefixValTR : prefixValTR + (1<<expVal) - 1
prefixtmp<6の場合はprefixValTR=prefixtmp、prefixtmp>=6の場合はprefixValTR=6、expVal=prefixtmp-6であるので、以下で導出できる。
prefixRes
= (prefixtmp<6) ? prefixtmp : 6 + (1<<(prefixtmp-6)) - 1
= (prefixtmp<6) ? prefixtmp : (1<<(prefixtmp-6)) + 5
また、
prefixRes = (prefixVal<6) ? prefixValTR : prefixValTR + (2<<expVal) - 2
を用いる構成の場合には以下でもよい。
prefixRes
= (prefixtmp<6) ? prefixtmp : 6 + (2<<(prefixtmp-6)) - 2
= (prefixtmp<6) ? prefixtmp : (2<<(prefixtmp-6)) + 4
= (prefixtmp<6) ? prefixtmp : (1<<(prefixtmp-5)) + 4
ここでprefixtmp<6はprefixtmp<5としても処理できる。また、suffixValTRもescapeValもどちらも固定長バイナリゼーションなので、前者をcMaxFLのfixedLength、後者をescapeLength長のfixedLengthとして、同様にsuffixResも復号してよい。
(量子化変換係数)
TU復号部3024(残差復号部30241)は、位置nに対して、順に、符号化データからabs_remainderを復号し、量子化変換係数AbsLevelをAbsLevelPass1とabs_remainderから以下の式で導出する。nはサブブロック内のスキャン順で最後の係数位置以下で、所定のビット数を復号するまでの位置のいずれかである。
AbsLevel[xC][yC] = AbsLevelPass1[xC][yC] + 2 * abs_remainder[n]
ここで、AbsLevelPass1[xC][yC] = sig_coeff_flag[xC][yC] + par_level_flag[n] + abs
_level_gtx_flag[n][0] + 2 * abs_level_gtx_flag[n][1]。
TU復号部3024は、上記以外(所定のビット数を復号した時のn)の場合、符号化データ
からdec_abs_levelを復号し、以下の式によりAbsLevelを導出する。
if (dec_abs_level[n] == ZeroPos[n])
AbsLevel[xC][yC] = 0
else if (dec_abs_level[n] < ZeroPos)
AbsLevel[xC][yC] = dec_abs_level[n] + 1
else /*dec_abs_level[n] > ZeroPos[n]*/
AbsLevel[xC][yC] = dec_abs_level[n]
ここでZeroPosは以下の式で導出される。
ZeroPos[n] = ( QState < 2 ? 1 : 2 ) << cRiceParam
ここでQStateは依存量子化の状態を示す。
(ライスパラメータ導出)
係数の絶対値を表すシンタックス要素の内、abs_remainder、dec_abs_levelは、ゴロム・ライス符号(またはライス符号)でバイナリ化された値を、バイパス符号(CABACの等確率符号)により復号される。abs_remainderは変換係数の絶対値のオフセットに対する差分であり、dec_abs_levelは変換係数の絶対値である。
なお、ゴロム・ライス符号は、シンタックス要素を前半部(プリフィックス)と後半(リマインダー、サフィックス)の2つの部分に分割して符号化する。プリフィックスには0に近い値を短い符号量で符号化可能なアルファ符号(unary符号)を用いる。サフィックスにはライスパラメータcRiceParamを用いた固定長バイナリゼーションもしくはEG(k)バイナリゼーションを用いる。ライスパラメータが大きいほど、小さな値のビット長はより長く、大きな値のビット長がより短くなる特性がある。シンタックス要素の値の大きさの発生確率に応じて、ライスパラメータを調整することで符号量の削減が可能である。
本実施形態の動画像復号装置、動画像符号化装置では、既に導出された係数の絶対値から、復号するシンタックス要素の値を予測する。そして、その予測値から適切なライスパラメータを導出する。図17を用いて、以下に詳細を示す。
現在のTUの左上座標を(x0,y0)、現在のスキャン位置を(xC,yC)、TUの幅と高さのlog2の値をそれぞれlog2TbWidth、log2TbHeightとする。また係数の絶対値を格納する配列を、
位置(x,y)を用いてAbsLevel[x][y]で表す。図17(a)はabs_remainder、または、dec_abs_levelを復号する際に用いる、係数の周りの復号済係数の位置を示している。周りの係数の絶対値和を表す変数をlocSumAbsとすると、TU復号部3024はRRCにおいてlocSumAbsを以下
のように導出する。
locSumAbs = 0
if(xC < (1<<log2TbWidth)-1) {
locSumAbs += AbsLevel[xC+1][yC]
if(xC < (1<<log2TbWidth)-2)
locSumAbs += AbsLevel[xC+2][yC]
if(yC < (1<<log2TbHeight)-1)
locSumAbs += AbsLevel[xC+1][yC+1]
}
if(yC < (1<<log2TbHeight)-1) {
locSumAbs += AbsLevel[xC][yC+1]
if(yC < (1<<log2TbHeight)-2)
locSumAbs += AbsLevel[xC][yC+2]
}
locSumAbs0 = locSumAbs
locSumAbs = Clip3(0, 31, locSumAbs-baseLevel*5)
1) 係数位置(xC+1,yC)がブロック内にある(xC<(1<<log2TbWidth)-1)とき、locSumAbsにt1(AbsLevel[xC+1][yC])の値を加える。
2) 1)のとき、さらに位置(xC+2,yC)がブロック内にある(xC<(1<<log2TbWidth)-2)とき、locSumAbsにt2(AbsLevel[xC+2][yC])の値を加える。
3) 1)のときさらに位置(xC+1,yC+1)がブロック内にある(yC<(1<<log2TbHeigh)-1)とき、locSumAbsにt3(AbsLevel[xC+1][yC+1])の値を加える。
4) 位置(xC,yC+1)がブロック内にある(yC<(1<<log2TbHeight)-1)とき、locSumAbsにt4(AbsLevel[xC][yC+1])の値を加える。
5) 4)のときさらに位置(xC,yC+2)がブロック内にある(yC<(1<<log2TbHeight)-2)
とき、locSumAbsにt5(AbsLevel[xC][yC+2])の値を加える。
以上の処理から計算されたlocSumAbsを変数baseLevelとクリップ処理によって以下のように更新する。
locSumAbs = Clip3(0, 31, locSumAbs-baseLevel*5)
ここでbaseLevelは、abs_remainderを復号するとき(tcoeff==0)は4、dec_abs_levelを復
号するとき(tcoeff==1)は0としてもよい。tcoeffは復号対象がabs_remainderであるか、dec_abs_levelであるかを示す変数である。
図17(b)に示すテーブルを用いて、導出されたlocSumAbsからabs_remainder、dec_abs_levelの復号に用いられるライスパラメータを導出する。
図示しないが、TU復号部3024は以下のようにテーブルを用いずに、式を用いてライスパラメータcRiceParamを導出してもよい。
if (baseLevel != 0)
cRiceParam = Max(0, floor(log2(15 * locSumAbs)) - 7)
else
cRiceParam = Max(0, floor(log2(9 * locSumAbs) + 20) - 5)
式としては上記のように、周囲の変換係数の和locSumAbsとの積和と、2を底とする対
数を用いることができる。ここでbaseLevel!=0は、abs_remainderの復号に用いる場合を
示し、else以下のbaseLevel==0は、dec_abs_levelの復号に用いる場合を示す。
TU復号部3024は、TSRCにおいて周りの復号済係数を用いず、ライスパラメータcRiceParamを常に1にセットする。
(量子化変換係数の導出、依存量子化)
逆量子化・逆変換部311は、変換係数を逆量子化する。量子化方法として、スカラー量
子化と依存量子化の2つの方法を備える。依存量子化の場合、さらにRRC部30241において逆量子化処理の一部を行ってもよい。
逆量子化・逆変換部311は、量子化パラメータqPと、rectNonTsFlag、量子化マトリックスm[][]の値に応じて、線形スケール値ls[x][y]を以下のように導出する。逆量子化・逆
変換部311は、依存量子化が有効で、かつ、変換スキップが無効の場合と、それ以外とでls[][]の導出方法を切り替える。
if (sh_dep_quant_used_flag && !transform_skip_flag)
ls[x][y] = (m[x][y]*levelScale[rectNonTsFlag][(qP+1)%6]) << ((qP+1)/6)
else
ls[x][y] = (m[x][y]*levelScale[rectNonTsFlag][qP%6]) << (qP/6)
rectNonTsFlag = (transform_skip_flag==0 && (((Log2(nTbW)+Log2(nTbH)) & 1)==1))
? 1 : 0
bdShift1 = transform_skip_flag==1 ? 10 : BitDepth+rectNonTsFlag+((Log2(nTbW)+Log2(nTbH))/2)-5+sh_dep_quant_used_flag
なお、後述のように係数の範囲を拡張する場合には、スケーリングのシフト値bdShift1を以下の式で導出してもよい。
bdShift1 = BitDepth + rectNonTsFlag +(((Log2(nTbW)+Log2(nTbH))/2) + 10 - log2TransformRange + sh_dep_quant_used_flag
(依存量子化ではない場合)
依存量子化ではない場合、逆量子化部3111(スケーリング部31111、変換係数クリップ部31112)は、量子化変換係数と量子化パラメータから一意に変換係数を導出する。例えば変換係数値dを導出する。
TransCoeffLevel[x0][y0][cIdx][xC][yC] = AbsLevel[xC][yC] * (1-2*coeff_sign_flag[n]) <式TC_REGULAR>
dz[xC][yC] = TransCoeffLevel[x0][y0][cIdx][xC][yC]
ls[x][y] = (m[x][y] * levelScale[rectNonTsFlag][qP%6]) << (qP / 6)
dnc[xC][yC] = (dz[xC][yC]*ls[xC][yC]+((1<<bdShift1)>>1)) >> bdShift1
d[xC][yC] = Clip3(CoeffMin, CoeffMax, dnc[xC][yC])
ここでAbsLevelは量子化変換係数値、ls,bdShift1は量子化パラメータqPから導出される
変数である。CoeffMin、CoeffMaxはクリッピングの最小値と最大値であり、以下の式により導出する。
CoeffMin = -(1 << log2TransformRange)
CoeffMax = (1 << log2TransformRange) - 1
log2TransformRangeは変換係数のレンジを示す。log2TransformRange=15の場合、CoeffMin = -(1<<15)、CoeffMax = (1<<15)-1。
変換係数のレンジlog2TransformRangeは、BitDepthに依存して下記により設定してもよい。
log2TransformRange = extended_precision_processing_flag ? Max(15, BitDepth +
BDOFFSET) : 15 (式R-1)
また、以下のようにlog2TransformRangeの最大長を制限してもよい。
log2TransformRange = extended_precision_processing_flag ? Min(Max(15, BitDepth +
BDOFFSET), 20) : 15 (式R-1A)
bitDepth>10の場合にさらに制限してもよい。
log2TransformRange = extended_precision_processing_flag ? Min(Max(15, BitDepth +
BDOFFSET), 20) : 15 (式R-1B)
ここで、BDOFFSETは変換係数の範囲を計算するための固定値であり、4, 5, 6などが適当
である。extended_precision_processing_flagは、変換係数の範囲として拡張レンジを使うか否かを示すフラグである。
(依存量子化の場合)
一方、図11に示すように、依存量子化は異なるレベルを持つ2つの量子化器を備える。
TU復号部3024(残差復号部30242)は、量子化変換係数の中間値(AbsLevelPass1、AbsLevel)のパリティを用いて、4つの状態QStateを切り替える。そして、QStateに応じて量子化・逆量子化する。
QState = QStateTransTable[QState][AbsLevelPass1[xC][yC] & 1]
TransCoeffLevel[x0][y0][cIdx][xC][yC] = (2*AbsLevel[xC][yC]-(QState>1 ? 1 : 0)) * (1-2*coeff_sign_flag[n]) <式TC_DQ>
dz[xC][yC] = TransCoeffLevel[x0][y0][cIdx][xC][yC]
逆量子化部3111(スケーリング部31111)は、量子化パラメータを用いて導出される変
数lsを用いてスケーリングを行う。
ls[x][y] = (m[x][y] * levelScale[rectNonTsFlag][(qP+1) % 6]) << ((qP+1) / 6
dnc[xC][yC] = (dz[xC][yC]*ls[xC][yC]+((1<<bdShift1)>>1)) >> bdShift1
逆量子化部3111(変換係数クリップ部31112)は、変換係数をCoeffMinとCoeffMaxの間
にクリップする。
d[xC][yC] = Clip3(CoeffMin, CoeffMax, dnc[xC][yC])
ここで、QStateは状態、QStateTransTable[][]は状態遷移に用いるテーブルで、例えばQStateTransTable[][]={{0,2},{2,0},{1,3},{3,1}}である。
QStateは、QStateTransTable[][]を用いずに以下の式で導出してもよい。
QState =(32040 >>((QState << 2)+((AbsLevelPass1[xC][yC] & 1)<< 1)))&
3
QStateの値により、AbsLevelが同じでも異なるTransCoeffLevel(あるいはd)が導出される。QStateは1つ前に復号した量子化変換係数値を参照して導出されるので、一般的なスカラー(逆)量子化に比べ、係数間の相関を利用した符号化効率の良い(逆)量子化ができる。
(逆変換)
逆量子化・逆変換部311は、スケーリング部31111、逆非分離変換部31121、逆コア変換
部31123から構成される。
逆量子化・逆変換部311は、エントロピー復号部301から入力された量子化変換係数qd[][]をスケーリング部31111によりスケーリング(逆量子化)して変換係数d[][]を求める。この量子化変換係数qd[][]は、符号化処理において、予測誤差に対してDCT(Discrete Cosine Transform、離散コサイン変換)、DST(Discrete Sine Transform、離散サイン変換)等の変換を行い量子化して得られる係数、もしくは、変換後の係数をさらに非分離変換した係数である。逆量子化・逆変換部311は、lfnst_idx!=0の場合、逆非分離変換部31121により逆変換を行う。さらに変換係数について逆DCT、逆DST等の逆周波数変換を行い、予測誤差を算出する。また、lfnst_idx==0の場合、逆非分離変換部31121での処理を行わず、スケーリング部31111によりスケーリングされた変換係数について逆DCT、逆DST等の逆変換を行い、予測誤差を算出する。逆量子化・逆変換部311は予測誤差を加算部312に出力する。
なお、逆変換及び変換は、対になる処理であるため、変換と逆変換とを互いに置き換えて解釈してもよい。あるいは、逆変換を変換と呼ぶ場合には、変換を順変換と呼んでもよい。例えば、逆非分離変換を非分離変換と呼ぶ場合、非分離変換は順非分離変換と呼んでもよい。また、コア変換を単に変換と呼んでもよい。
逆コア変換部31123(垂直変換部311231)は得られた残差d[][]に対して垂直変換を行う。
e[x][y] = Σ(transMatrix[y][j]×d[x][j]) (j = 0..nTbS - 1)
逆コア変換部31123(中間値クリップ部311232)は、第1の中間値e[x][y]をシフト、クリッピングし、第2の中間値g[x][y]を導出する。
g[x][y] = Clip3(CoeffMin, CoeffMax, (e[x][y] + 64) >> 7)
またCoeffMin、CoeffMaxはクリッピングの最小値と最大値である。
逆コア変換部31123(水平変換部311233)は、変換係数d[ ][ ]、又は、修正変換係数d[
][ ]に対し、変換を行い予測誤差r[][]を導出する(S5)。
r[x][y] = Σ(TransMatrix[x][j]×g[j][y]) (j = 0..nTbS - 1)
そして、r[][]に対し、ビットデプス(BitDepth)に応じたシフトを行い、予測画像生成部308で導出される予測画像と同じ精度の誤差resSamples[][]を導出する。例えば、シフトは以下で表現される。
resSamples[x][y] = (r[x][y] + (1 << (bdShift2 - 1))) >> bdShift2 (式BD-1)
ここで、変換後のシフト値bdShift2=5+log2TransformRange-BitDepthを導出する。(式R-1)の場合、
bdShift2 = extended_precision_processing_flag ? (5 + BDOFFSET) : Max(20 - BitDepth, 0)
なお、上記のシフト値bdShift2は、変換サイズのnTbW、nTHが両方とも1より大きい場
合に用いる構成であり、それ以外(変換サイズのnTbW、nTHの大きさのいずれかが1)の
場合ではシフト値を1だけ大きくしてもよい。
bdShift2 = (nTbH>1 && nTbW>1) ? 5 + log2TransformRange - BitDepth : 6 + log2TransformRange - BitDepth
(非分離変換)
逆非分離変換は、動画像復号装置31において、TUの一部又は全領域の変換係数に対して適用される。逆非分離変換が適用された後の変換係数に対して、逆分離変換(DCT2及びDST7等)が適用される。また、TUを4x4のサブブロックに分割し、左上の所定のサブブロックのみに非分離変換及び逆非分離変換が適用される。TUの幅W、高さHのうち、一方が4であるTUのサイズは、例えば、4×4、8×4、4×8、L×4及び4×L(Lは16以上の自然数)が挙げられる。
また、分離変換後の変換係数において一部の低周波数成分のみを伝送する技術をRST(Reduced Secondary Transform)変換、もしくはLFNST(Low Frequency Non-Separable-Transform)と呼ぶ。非分離変換の非ゼロ変換係数の数nonZeroSizeが分離変換のサイズ((1<<log2StSize)x(1<<log2StSize))以下である場合、LFNSTと呼ぶ。
(S2000:非分離変換インデックスの復号)
TU復号部3024は、符号化データから分離変換の変換行列を示すインデックスmts_idxを
復号する。mts_idxはlfnst_idxのあとに復号し、lfnst_idxが0の場合のみ、mtx_idxを復
号する構成であってもよい。つまり、非分離変換を用いない場合(lfnst_idxが0)のみ、mtx_idx!=0で示されるDCT2以外の変換行列を用いる構成でもよい。
また、TU復号部3024は、符号化データからインデックスlfnst_idxを復号する。lfnst_idxは非分離変換の利用の有無、及び、変換行列を示すインデックスである。TU復号部3024はフラグLfnstDcOnlyとフラグLfnstZeroOutSigCoeffFlagを導出する。LfnstDcOnlyは変換係数がDCのみであるかを示すフラグ、LfnstZeroOutSigCoeffFlagは所定の高周波数領域(ゼロアウト領域)に変換係数が存在するかを示すフラグである。TU復号部3024は、LfnstDcOnly==0かつLfnstZeroOutSigCoeffFlag==1のときに、lfnst_idxを復号する。ここでLfnstDcOnly==0はDC係数以外の変換係数があることを示す。LfnstZeroOutSigCoeffFlag==1はゼロアウト領域に非ゼロ変換係数がないことを示す。TU復号部3024は、TUの残差residualを復号する前に、LfnstDcOnly=1、LfnstZeroOutSigCoeffFlag=1にセットする。ラスト係数の位置がDC以外(lastSubBlock==0 && lastScanPos>0)の場合、LfnstDcOnly=0にセットする。高周波数領域にラスト位置がある場合、LfnstZeroOutSigCoeffFlag=0にセットする。高周波数領域にラスト位置がある場合は、例えば、(lastScanPos>7 && (log2TbWidth==2 || log2TbWidth==3)を満たす場合である。TU復号部3024はlfnst_idxを復号しない場合、lfnst_idx=0にセットする。
TU復号部3024は、予測モードがイントラ予測モード、かつ、sps_lfnst_enabled_flagが1の場合、lfnst_idxを復号する。なお、lfnst_idxは、0の場合、非分離変換の非適用を
示し、1の場合、非分離変換行列のセット(ペア)のうち一方の変換を利用することを示
し、2の場合、ペアのうち他方の変換を利用することを示す。
(ライスパラメータ導出)
係数の絶対値を表すシンタックス要素の内、abs_remainder、dec_abs_levelは、ゴロム・ライス符号(またはライス符号)でバイナリ化された値を、バイパス復号(CABACの等確率復号)により復号される。abs_remainderは変換係数の絶対値のオフセットに対する差分であり、dec_abs_levelは変換係数の絶対値である。
なお、ゴロム・ライス符号は、シンタックス要素を前半部(プリフィックス)と後半(リマインダー、サフィックス)の2つの部分に分割して符号化する。プリフィックスには0に近い値を短い符号量で符号化可能なアルファ符号(unary符号)を用いる。サフィックスにはライスパラメータcRiceParamを用いた固定長バイナリゼーションもしくはEG(k)バイナリゼーションを用いる。ライスパラメータが大きいほど、小さな値のビット長はより長く、大きな値のビット長がより短くなる特性がある。シンタックス要素の値の大きさの発生確率に応じて、ライスパラメータを調整することで符号量の削減が可能である。
現在のTUの左上座標を(x0,y0)、現在のスキャン位置を(xC,yC)、TUの幅と高さのlog2の値をそれぞれlog2TbWidth、log2TbHeightとする。また係数の絶対値を格納する配列を、
位置(x,y)を用いてAbsLevel[x][y]で表す。図17(a)はabs_remainder、または、dec_abs_levelを復号する際に用いる、係数の周りの復号済係数の位置を示している。周りの係数の絶対値和を表す変数をlocSumAbsとすると、TU復号部3024はRRCにおいてlocSumAbsを以下のように導出する。
locSumAbs = 0
if(xC < (1<<log2TbWidth)-1) {
locSumAbs += AbsLevel[xC+1][yC]
if(xC < (1<<log2TbWidth)-2)
locSumAbs += AbsLevel[xC+2][yC]
if(yC < (1<<log2TbHeight)-1)
locSumAbs += AbsLevel[xC+1][yC+1]
}
if(yC < (1<<log2TbHeight)-1) {
locSumAbs += AbsLevel[xC][yC+1]
if(yC < (1<<log2TbHeight)-2)
locSumAbs += AbsLevel[xC][yC+2]
}
locSumAbs0 = locSumAbs
locSumAbs = Clip3(0, 31, locSumAbs-baseLevel*5)
以上の処理から計算されたlocSumAbsを変数baseLevelとクリップ処理によって以下のように更新する。
locSumAbs = Clip3(0, 31, locSumAbs-baseLevel*5)
ここでbaseLevelは、abs_remainderを復号するとき(tcoeff==0)は4、dec_abs_levelを復
号するとき(tcoeff==1)は0としてもよい。tcoeffは復号対象がabs_remainderであるか、dec_abs_levelであるかを示す変数である。
テーブルRiceParamTblを用いて、導出されたlocSumAbsからabs_remainder、dec_abs_levelの復号に用いられるライスパラメータcRiceParamを導出する。
cRiceParam = RiceParamTbl[locSumAbs]
RiceParamTbl[]=0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3}
上記はライスパラメータ拡張(以下ライス拡張)を行わない場合であり、ライスパラメータcRiceParamは、0から3の値をとる。
なお、フラグsps_rrc_rice_extension_flagが有効を示す場合、以下の処理を行う。こ
の場合、shiftValの加算などによって、ライスパラメータcRiceParamは、0から3の値を超える値を用いることができる。なお、レンジ拡張を行う場合(extended_precision_processing_flag==1)や、非分離変換を行う場合(sps_lfnst_enabled_flag==1、lfnst_idxが0以外)には、以下のStatCoeffの導出、localSumAbsを用いたshiftValの導出、shiftValによるcRiceParamの更新処理を行わなくてもよい。sps_rrc_rice_extension_flagはバイナリゼーションに使用するライスパラメータの拡張が有効か否かを示すフラグである。
TU復号部3024は以下の疑似コードを用いて、符号化データのresidual_codingからabs_reminderとdec_abs_levelを復号する。また、TU復号部3024はStatCoeffを導出する。updateHistはsps_persistent_rice_adaptation_enabled_flagを参照して、残差(TU)単位で0または1に初期化される。sps_persistent_rice_adaptation_enabled_flag=1の場合、updateHistは1に初期化され、以下の処理が行われる。TUで最初の0より大きいabs_remainderもしくはdec_abs_levelの対数値をStatCoeffに保存する(StatCoeffの値を更新する)。更新する際に現在のStatCoeff[cIdx]の値と平均化することで、変動を抑える。なお、sps_persistent_rice_adaptation_enabled_flagはバイナリゼーションに使用するライスパラメータを、各TUの先頭で初期化するか否かを示すフラグである。
lastScanPos = numSbCoeff
lastSubBlock = (1 << (log2TbWidth + log2TbHeight - (log2SbW + log2SbH))) - 1
HistValue = sps_persistent_rice_adaptation_enabled_flag ? (1 << StatCoeff[cIdx]) : 0
updateHist = sps_persistent_rice_adaptation_enabled_flag ? 1 : 0
if(abs_level_gtx_flag[n][1]) {
abs_remainder[n]
if(updateHist && abs_remainder[n] > 0) {
StatCoeff[cIdx] = (StatCoeff[cIdx] + Floor(Log2(abs_remainder[n])) + 2) >>
1
updateHist = 0
}
}
...
if(sb_coded_flag[xS][yS]) {
dec_abs_level[n]
if(updateHist && dec_abs_level[n] > 0) {
StatCoeff[cIdx] = (StatCoeff[cIdx] + Floor(Log2(dec_abs_level[n]))) >> 1
updateHist = 0
}
}
StatCoeff[idx]は以下のように初期化される。
StatCoeff[idx] = (bitDepth > 10) ? (2 * Floor(Log2(bitDepth - 10)) : 0
sps_persistent_rice_adaptation_enabled_flag=0の場合、StatCoeff[idx]は0に設定され、更新されない。
TU復号部3024は、sps_rrc_rice_extension_flagとlocalSumAbsの値に応じてshiftValを導出する。
if(!sps_rrc_rice_extension_flag) {
shiftVal = 0
}else {
shiftVal = (localSumAbs < Tx[0]) ? Rx[0] : ((localSumAbs < Tx[1]) ? Rx[1] : ((localSumAbs < Tx[2]) ? Rx[2] : ((localSumAbs < Tx[3]) ? Rx[3] : Rx[4])))
}
ここで、Rx[]、Tx[]は以下のテーブルである。
Tx[ ] = {32, 128, 512, 2048}
Rx[ ] = {0, 2, 4, 6, 8}
TU復号部3024は、以下の処理からcRiceParamを導出する。
locSumAbs = locSumAbs >> shiftVal
locSumAbs = Clip3(0, 31, locSumAbs - baseLevel * 5)
cRiceParam = RiceParamTbl[locSumAbs]
TU復号部3024は、ライス拡張を行う場合には0以外になりえる値shiftValを加算し、cRiceParamを更新する。
cRiceParam = cRiceParam + shiftVal
TU復号部3024は、TSRCにおいて周りの復号済係数を用いず、ライスパラメータcRiceParamを常に1にセットする。また、sps_ts_residual_coding_rice_present_in_sh_flagが1の場合、スライスヘッダでsh_ts_residual_coding_rice_idx_minus1を符号化、復号してよい。その場合、以下の式で導出する。sh_ts_residual_coding_rice_idx_minus1を符号化、復号しない場合には0でinferする。sps_ts_residual_coding_rice_present_in_sh_flagはsh_ts_residual_coding_rice_idx_minus1がスライスヘッダに存在するか否かを示すフ
ラグである。sh_ts_residual_coding_rice_idx_minus1はTSRCで使用するライスパラメー
タを規定するパラメータである。
cRiceParam = sh_ts_residual_coding_rice_idx_minus1 + 1
逆量子化・逆変換部311は、tbWidth、tbHeightのサイズの量子化変換ブロックを逆量子化する。そして、変換サイズで指定された変換基底を用いて変換する。
(abs_remainderとdec_abs_levelの復号)
TU復号部3024は、符号化データから、ライスパラメータcRiceParamを用いて、残差絶対値のシンタックス値(abs_remainderもしくはdec_abs_level、以下残差と記す)を復号する。当該シンタックスのバイナリゼーションには、プリフィックスとサフィックスとから構成される符号を用いる。プリフィックスとサフィックスとして、ゴロムライス符号のアルファ符号と固定長バイナリゼーションを用いてもよい。サフィックスはEG(k)(Exponential-Golomb code)符号を用いてもよい。なお、ゴロムライス符号では、プリフィックスをprefixValTRとsuffixValTRに分けて符号化し、EG(k)符号では、サフィックスをexp部のexpValとescape部のescapeValに分けて符号化する。残差を1<<cRiceParam、((1<<expVal))-1)<<cRiceParamで割った商は各々prefixValTRとexpValを用いて符号化される。残差を1<<cRiceParam、(1<<expVal<<cRiceParam)で割った余りは、各々suffixValTR、escapeValを用いて符号化される。つまり、残差は以下の様に符号化される。
((prefixValTR + ((1<<(expVal) -1) ) << cRiceParam) + suffixValTR + escapeVal 残差が所定の値cMax以下の場合には、prefixValTRとsuffixValTRだけが符号化される。
prefixVal = (prefixValTR<<cRiceParam) + suffixValTR
残差が所定の値より大きい場合(suffixValが存在する場合)、cMaxと等しいprefixValを示すprefixValTRに加えてexpValとescapeValが符号化される。
prefixVal = (prefixValTR<<cRiceParam) = cMax
suffixVal = (((1<<expVal)-1)<<cRiceParam) + escapeVal
ここでは残差は以下で表せる。プリフィックスだけで表せる場合の残差は下式である。
残差=((prefixValTR) << cRiceParam) + suffixValTR
それ以外(プリフィックスだけで表せない場合、もしくは、prefixValTR=6)の場合の残
差は下式である。
残差=((prefixValTR + (1<<(expVal)-1 ) << cRiceParam) + escapeVal
また以下のように、prefixVal、suffixValを定義してもよい。
prefixVal = (prefixValTR << cRiceParam) + suffixValTR
suffixVal = (((2<<expVal)-2 << cRiceParam) + escapeVal
上記構成によれば、変換係数のレンジが大きくなる場合(extended_precision_processing_flag==1)に、変換サイズを所定のサイズ以下に制限するため、変換係数のレンジが大きい場合にハードウェア回路の規模を小さくすることができる。この効果は、量子化パラメータに依存せず常に得ることができる。また、変換係数のレンジが大きくならない場合(extended_precision_processing_flag==0)、変換サイズを所定のサイズ以下に制限せず、大きいサイズを使用可能とする。従って、変換係数のレンジが大きくならない場合、符号化効率の低下は生じない効果を奏する。
逆量子化・逆変換部311は、エントロピー復号部301から入力された量子化変換係数をスケーリング(逆量子化)して変換係数d[][]を求める。この量子化変換係数は、符号化処
理において、予測誤差に対してDCT(Discrete Cosine Transform、離散コサイン変換)、DST(Discrete Sine Transform、離散サイン変換)等の変換を行い量子化して得られる係数である。逆量子化・逆変換部311はtransform_skip_flagが0の場合、スケーリング済み
の変換係数d[][]に対して、逆DCT、逆DST等の逆周波数変換を行い、予測誤差res[][]を算出する。逆量子化・逆変換部311はtransform_skip_flagが1の場合、res[x][y]=d[x][y]とする。逆量子化・逆変換部311は予測誤差を加算部312に出力する。
なお、逆変換及び変換は、対になる処理であるため、変換と逆変換とを互いに置き換えて解釈してもよい。あるいは、逆変換を変換と呼ぶ場合には、変換を順変換と呼んでもよい。例えば、逆非分離変換を非分離変換と呼ぶ場合、非分離変換は順非分離変換と呼んでもよい。また、分離変換を単に変換と呼ぶ。
加算部312は、予測画像生成部308から入力されたブロックの予測画像と逆量子化・逆変換部311から入力された予測誤差を画素毎に加算して、ブロックの復号画像を生成する。
加算部312はブロックの復号画像を参照ピクチャメモリ306に記憶し、また、ループフィルタ305に出力する。
(動画像符号化装置の構成)
次に、本実施形態に係る動画像符号化装置11の構成について説明する。図16は、本実施形態に係る動画像符号化装置11の構成を示すブロック図である。動画像符号化装置11は、予測画像生成部101、減算部102、変換・量子化部103、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、パラメータ符号化部111、エントロピー符号化部104を含んで構成される。
予測画像生成部101は画像Tの各ピクチャを分割した領域であるCU毎に予測画像を生成する。予測画像生成部101は既に説明した予測画像生成部308と同じ動作であり、説明を省略する。
減算部102は、予測画像生成部101から入力されたブロックの予測画像の画素値を、画像Tの画素値から減算して予測誤差を生成する。減算部102は予測誤差を変換・量子化部103
に出力する。
変換・量子化部103は、減算部102から入力された予測誤差に対し、周波数変換によって変換係数を算出し、量子化によって量子化変換係数を導出する。変換・量子化部103は、
量子化変換係数をエントロピー符号化部104及び逆量子化・逆変換部105に出力する。
逆量子化・逆変換部105は、動画像復号装置31における逆量子化・逆変換部311と同じであり、説明を省略する。算出した予測誤差は加算部106に出力される。
エントロピー符号化部104には、変換・量子化部103から量子化変換係数が入力され、パラメータ符号化部111から符号化パラメータが入力される。符号化パラメータは、例えば
、予測モードを示すpredModeである。predModeはイントラ予測を示すMODE_INTRA、インター予測を示すMODE_INTERのいずれでもよいし、MODE_INTRA、MODE_INTER、画面内のブロックをコピーして予測画像とするイントラブロックコピー予測を示すMODE_IBCであってもよい。
エントロピー符号化部104は、分割情報、予測パラメータ、量子化変換係数等をエント
ロピー符号化して符号化ストリームTeを生成し、出力する。
パラメータ符号化部111は、図示しないヘッダ符号化部1110、CT情報符号化部1111、CU
符号化部1112(予測モード符号化部)、及びインター予測パラメータ符号化部112とイン
トラ予測パラメータ符号化部113を備えている。CU符号化部1112はさらにTU符号化部1114
を備えている。
以下、各モジュールの概略動作を説明する。パラメータ符号化部111はヘッダ情報、分
割情報、予測情報、量子化変換係数等のパラメータの符号化処理を行う。
CT情報符号化部1111は、符号化データからQT、MT(BT、TT)分割情報等を符号化する。
CU符号化部1112はCU情報、予測情報、TU分割フラグ、CU残差フラグ等を符号化する。
TU符号化部1114は、TUに予測誤差が含まれている場合に、QP更新情報と量子化変換係数を符号化する。TU符号化部1114は、TU復号部3024で説明したように、TR符号とEG(k)符号
で残差を符号化する。つまり、TR符号、EG(k)符号に用いて、残差の絶対値を示すシンタ
ックス要素(abs_remainder、dec_abs_level)を符号化する。符号化に用いるライスパラメータの導出方法、TR符号のプリフィックスの最大値、exp部の最大長maxPreExtLen、escape部の長さtruncSuffixLenは、画像復号装置で説明した方法のいずれかを用いる。変換・量子化部103、逆量子化・逆変換部105も、画像復号装置で説明したような、CoeffMin, CoeffMax, bdShift1, bdShift2の値を用いることができる。
つまり、TU符号化部1114は、変換ブロック中の復号装置における逆量子化・スケーリング前(符号化装置における量子化・スケーリング後)の変換係数の値の実際のレンジLog2ResidualRangeに応じて、適応的に、bdShift1、bdShift2を導出してもよい。さらに、extended_precision_flagと、変換ブロックサイズnTbW、nTbHの大きさに依存して、変換係数のレンジlog2TransformRangeと、bdShift1、bdShift2を導出してもよい。
CT情報符号化部1111、CU符号化部1112は、インター予測パラメータ、イントラ予測パラメータ、量子化変換係数等のシンタックス要素をエントロピー符号化部104に供給する。
加算部106は、予測画像生成部101から入力されたブロックの予測画像の画素値と逆量子化・逆変換部105から入力された予測誤差を画素毎に加算して復号画像を生成する。加算
部106は生成した復号画像を参照ピクチャメモリ109に記憶する。
ループフィルタ107は加算部106が生成した復号画像に対し、デブロッキングフィルタ、SAO、ALFを施す。なお、ループフィルタ107は、必ずしも上記3種類のフィルタを含まな
くてもよく、例えばデブロッキングフィルタのみの構成であってもよい。
SAOは、サンプル単位で分類結果に応じたオフセットを加算するフィルタであり、ALFは、伝送したフィルタ係数と参照画像(もしくは参照画像と対象画素との差異)の積和を用いるフィルタである。
予測パラメータメモリ108は、符号化パラメータ決定部110が生成した予測パラメータを、対象ピクチャ及びCU毎に予め定めた位置に記憶する。
参照ピクチャメモリ109は、ループフィルタ107が生成した復号画像を対象ピクチャ及びCU毎に予め定めた位置に記憶する。
符号化パラメータ決定部110は、符号化パラメータの複数のセットのうち、1つのセットを選択する。符号化パラメータとは、上述したQT、BTあるいはTT分割情報、予測パラメータ、あるいはこれらに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータを用いて予測画像を生成する。
符号化パラメータ決定部110は、複数のセットの各々について情報量の大きさと符号化
誤差を示すRDコスト値を算出する。符号化パラメータ決定部110は、算出したコスト値が
最小となる符号化パラメータのセットを選択する。これにより、エントロピー符号化部10
4は、選択した符号化パラメータのセットを符号化ストリームTeとして出力する。符号化
パラメータ決定部110は決定した符号化パラメータを予測パラメータメモリ108に記憶する。
(拡張プロファイルの符号化・復号方法)
上記では、extended_precision_processing_flag、sps_ts_residual_coding_rice_present_in_sh_flag、sps_rrc_rice_extension_flag、sps_persistent_rice_adaptation_enabled_flagによるツール制限を説明したが、上記ツールはVVCの第一版には規定されていな
いために、第一版で動作する復号装置で動作をしないようにする必要がある。
プロファイルとは、互換性を保証するために利用可能なツール(復号動作や符号化データの構造)を規定する仕組みである。具体的には、あるプロファイルでは、特定のシンタックス要素の値を制限する。プロファイルは後述するgeneral_profile_idcと他のシンタックスを用いて規定する。
図5は、本発明のツール制限を規定するシンタックステーブルである。general_profile_idcは、プロファイルを示すシンタックスであり、VVCの第1版では図18の(a)に示すようにプロファイル(プロファイル名)と値が定められている。ここでは、各プロファイルに一意の値が定められている。例えばgeneral_profile_idcは、Main 10は1、Main 10 4:4:4は33、Main 10 4:4:4 Stillは97、Multilayer Mainは17である。general_profile_idcはu(7)と示した通り、0~127の値(128通り)であるため、拡張プロファイルのgeneral_profile_idcに、一意の値をつけることは難しい。なおDescriptionのu(n)は、nビット固定長であることを示す。
general_profile_idc:プロファイルを表すパラメータである。
general_tier_flag:ティアを表すパラメータである。
ptl_frame_only_constraint_flag:1に等しい場合、sps_field_seq_flagは全て1であることを示す。つまり、フィールドピクチャが用いられないことを示す。
ptl_multilayer_enabled_flag:1に等しい場合、1レイヤのみであることを示す。
ptl_sublayer_level_present_flag[i]:TemporalId(時間階層化のために各ピクチャに付加されるID)がiの場合のレベルの値を示す。
ptl_reserved_zero_bit:常に0であるprofile_level_tier内の予備ビットである。
ptl_num_sub_profiles:サブプロファイルの数を示すシンタックスである。
general_sub_profile_idc[i]は、Rec.ITU-T T.35規定されるプロファイルの値である。
図18の(b)は、拡張プロファイルのbase_profile_idcの例である。この例では、複数プ
ロファイルに同じ値を用いるため、base_profile_idcだけではプロファイルを一意に決めることはできない。ここでは、以下の規則により、4、36、68、100の何れかの値を用いる。
基本プロファイル値(基本値、base_profile_idc):
・第1類のプロファイル:1
・第2類のプロファイル:4
フィーチャープロファイル値(フィーチャー値、feature value):
・Multilayer:16
・4:4:4:32
・StillPicture:64
つまりgeneral_profile_idc = base_profile_idc+Σfeature_valueである。
具体的には、基本値として第1類のプロファイルであれば1、それ以外では第2類のプロファイルであれば4を用いる。さらに、フィーチャー値を加算する。フィーチャー値はプロファイルで利用可能なツールがあると加算される。例えば、「マルチレイヤ(multi l
ayer)」を用いる場合、base_profile_idcに16を加算する。マルチレイヤは、複数のレイ
ヤ(layer_idc)を用いて同時刻の複数の映像を一つのストリームにまとめることができる
フィーチャーである。4:4:4は、色空間の4:4:4フォーマットを復号することができるフィーチャーであり、base_profile_idcに32を加算する。Still Pictureは先頭1フレームのみ(つまり静止画)のみのフィーチャーであり、base_profile_idcに64を加算する。複数のフィーチャーを備える場合、フィーチャー値を合計する。例えば、基本値が第2類で4:4:4と静止画のフィーチャーを持つ場合、general_profile_idcとして、4(第2類のプロファイル値)+32(4:4:4のフィーチャー値)+64(静止画のフィーチャー値)=100を用いる。
すなわち、general_profile_idcが特定の値であることと、上記制限シンタックス群の
シンタックス要素の値に応じて、プロファイルが識別される符号化データを復号もしくは符号化する。general_profile_idcの値は、基本値と0つ以上のフィーチャー値の合計で
示され、フィーチャー値には、マルチレイヤを示す16、4:4:4を示す32、静止画を示す64
を少なくとも備え、ヘッダ復号部は、上記基本値として、少なくとも第1類の値である1と第2類の値(実施形態の例では4であるが、4に限定されず、2、3、5、6、7などでもよい)を備える符号化データを復号することを特徴とする。また、上記ヘッダ復号部は、第2類の基本値と上記フィーチャー値の合計の値が、所定のgeneral_profile_idcの
値であると判定する。
図19は、本発明のプロファイル単位のツール制限を規定するテーブルである。
sps_chroma_format_idc、sps_bitdepth_minus8、extended_precision_processing_flag、sps_ts_residual_coding_rice_present_in_sh_flag、sps_rrc_rice_extension_flag、sps_persistent_rice_adaptation_enabled_flagは各々復号動作を規定するシンタックスである。-は、値に制限がないことを示す。
sps_chroma_format_idc:色空間を指定するシンタックスである。0は4:0:0、1は4:2:2
、2は4:4:4の色空間を表わす。
sps_bitdepth_minus8:ビットデプスの値から8を引いた値であり、輝度、色差共通の値である。
extended_precision_processing_flag:変換レンジを拡張するフラグである。
sps_ts_residual_coding_rice_present_in_sh_flag:変換スキップのライスパラメータ導出方法を拡張するフラグである。
sps_rrc_rice_extension_flag:変換スキップ以外のライスパラメータ導出方法を拡張
するフラグである。
sps_persistent_rice_adaptation_enabled_flag:変換スキップ以外のライスパラメー
タ導出を拡張し、複数のTUにわたって状態を用いることを示すフラグである。
本発明では、プロファイル毎に図19のように利用可能なシンタックス要素の値を制限することで、互換性を確保する。
図19は、本発明のプロファイル単位のツール制限を規定するテーブルである。general_max_12bit_constraint_flag、general_max_10bit_constraint_flag、general_max_8bit_constraint_flag、general_max_422chroma_constraint_flag、general_max_420chroma_constraint_flag、general_max_monochrome_constraint_flag、general_one_picture_only_c
onstraint_flag、general_lower_bit_rate_constraint_flagは各々復号動作を規定するシンタックスである。
general_max_12bit_constraint_flag:1の場合、bitdepthの値を12以下(sps_bitdepth_minus8<=4)に制限するフラグである。0の場合、この制限はない(bitdepthが13以上
でもよい)。
general_max_10bit_constraint_flag:1の場合、bitdepthの値を10以下(sps_bitdepth_minus8<=2)に制限するフラグである。0の場合、この制限はない(bitdepthが11以上
でもよい)。
general_max_8bit_constraint_flag:1の場合、bitdepthの値を8(sps_bitdepth_minus8==0)に制限するフラグである。0の場合、この制限はない(bitdepthが9以上でもよい)。
general_max_422chroma_constraint_flag:1の場合、色空間を4:2:2、あるいは、4:2:0に制限するフラグである。0の場合、この制限はない(色空間4:4:4の使用も可能)。
general_max_420chroma_constraint_flag:1の場合、色空間4:2:0に制限するフラグである。0の場合、この制限はない(色空間4:2:0以外の使用も可能)。
general_max_monochrome_constraint_flag:1の場合、色空間4:0:0に制限するフラグ
である。0の場合、この制限はない(色空間4:0:0以外の使用も可能)。
general_one_picture_only_constraint_flag:1の場合、ビットストリーム内のピクチャが1枚のみ(つまり静止画)であることを示す。0の場合、この制限はない(複数ピクチャであってもよい)。
general_lower_bit_rate_constraint_flag:1の場合、利用可能なビットレートを制限するフラグである。0の場合、この制限はない(異なるビットレート制限が可能)。
本発明では、プロファイル毎に図20のようにシンタックス要素の値を制限することで、互換性を確保する。
第2類のgeneral_profile_idcの値を持つプロファイルは、上記色空間、ビットデプス
、ピクチャタイプの制限を示すシンタックス要素群の値によって、ツールの動作が規定される。
(構成例)
図21は、本発明のツール制限を規定するシンタックステーブルの例である。図21に示すように、一般制限情報であるgeneral_constraints_infoは、gci_present_flagを持ち、gci_present_flagが1の場合に、一般ツール制限情報を含む。一般ツール制限情報は、gci_intra_only_constraint_flag、gci_all_layers_independent_constraint_flag、gci_one_au_only_constraint_flag, ..., gci_no_virtual_boundaries_constraint_flagの第1の一般ツール制限情報と、general_profile_idcに依存して復号・符号化される制限シンタックス群(第2の一般ツール制限情報)から構成される。SYN_CONST3に示す制限シンタックス群はすでに説明したとおりである。SYN_CONST1は、general_profile_idcが所定の値(ここでは第2類の基本値とフィーチャー値の加算からなる、4、36、68、100、第2類のプロファイル値)であるかの判定を示す。以下、general_profile_idcが第2類のプロファイル値であるかの判定を、general_profile_idcが所定の値である、と示す。つまり、後続のSYN_CONST2に示す制限シンタックス長、SYN_CONST3に示す制限シンタックス群(第2の一般制限シンタックス群)、SYN_CONST4に示す予備ビットを復号、符号化するか否かを判定する。本発明のヘッダ復号部3020及びヘッダ符号化部1110はgeneral_profile_idcが所定値である場合、所定の制限シンタックス群を復号及び符号化する。制限シンタックス群としては図示するようにgeneral_max_12bit_constraint_flag、general_max_10bit_constraint_flag、general_max_8bit_constraint_flag、general_max_422chroma_constraint_flag、general_max_420chroma_constraint_flag、general_max_monochrome_constraint_flag、general_one_picture_only_constraint_flag、general_lower_bit_rate_constraint_flagの何れかを含んでもよい。さらに、制限シンタックス群は、少なくともビットデプスを制限するためのgeneral_max_12bit_constraint_flagと色空間を制限するためのgeneral_max_422chroma_constraint_flag、general_max_420chroma_constraint_flagを含んでもよい。すなわち、本発明の動画像復号装置および動画像符号化装置では、同じgeneral_profile_idcを使いながら、general_profile_idcが所定値の場合、新たな制約フラグを定義する。そして、その制約フラグで、個別のプロファイルを識別する。上記によって、同じgeneral_profile_idcを含みながら、異なるビットデプスや色空間に対応するビットストリームをプロファイルとして規定し、当該ビットストリームの復号をサポートする動画像復号装置及び、当該ビットストリームの符号化をサポートする動画像符号化装置を提供することができる効果を奏する。
より具体的には、本発明のヘッダ復号部3020及びヘッダ符号化部1110はgeneral_profile_idcが所定値であるかを判定する(図21のSYN_CONST1)。判定が真の場合、後続のSYN_CONST2に示す制限シンタックス長、SYN_CONST3に示す制限シンタックス群、SYN_CONST4に示す予備ビットを復号、符号化する。SYN_CONST2のgci_num_profile_constraint_bitsは、制限シンタックス長と予備ビットの数(1ビットづつなので、ビット長)を示す。動画像復号装置及び動画像符号化装置は、ビットストリームコンフォーマンスとして、「gci_num_profile_constraint_bitsの値が制限シンタックス群の数(NCONST3)以上」である制限を備えるビットストリームを復号および符号化する。NCONST3はここでは8であるが、制限シンタックス群SYN_CONST3の数に応じて他の値であってもよい。また将来的に値を変更してもよい。
ヘッダ復号部3020及びヘッダ符号化部1110は、general_profile_idcが所定値の場合、
ビットストリームコンフォーマンス制限としてgci_present_flagが常に1である符号化データを復号・符号化する。general_profile_idcが所定値の場合には、gci_present_flagが1であるので、常に一般ツール制限情報(第1の一般ツール制限情報と制限シンタックス群)を復号・符号化する。これにより、general_profile_idcだけでは一意に識別できないprofileの制限事項を、復号、符号化し、プロファイルを識別することができる。さらに、プロファイルで規定されるツール制限についても同時に実現することができる。
ヘッダ復号部3020及びヘッダ符号化部1110は、gci_present_flagが1の場合、gci_intra_only_constraint_flag、gci_all_layers_independent_constraint_flag、gci_one_au_only_constraint_flag、...、gci_no_virtual_boundaries_constraint_flagなどの第1の一般ツール制限情報を復号、符号化する。 gci_intra_only_constraint_flag:1の場合、イントラスライスIに制限するフラグである。0の場合、この制限はない(インタースライスP、Bも利用可能)。
gci_all_layers_independent_constraint_flag:1の場合、全てのレイヤが独立に符号化・復号できることを示す(つまり他のレイヤを参照しない。他のインターレイヤ画像を参照ピクチャリストに入れた予測を行わない)。0の場合、この制限はない。
gci_one_au_only_constraint_flag:1の場合、1つのアクセスユニットのみであるこ
とを示す。0の場合、この制限はない。
gci_no_virtual_boundaries_constraint_flag:1の場合、バーチャルバウンダリと呼
ばれるループフィルタを特定の水平線、垂直線において行わないツールを利用しない。0の場合、この制限はない。
さらに、ヘッダ復号部3020及びヘッダ符号化部1110は、gci_no_virtual_boundaries_constraint_flagの後に、gci_num_profile_constraint_bitsを復号・符号化してもよい。gci_num_profile_constraint_bitsはgci_num_reserved_bitsと同じ長さの8ビット固定長である。また、ヘッダ復号部3020及びヘッダ符号化部1110は、SYN_CONST4に示すように、所定の回数だけgci_reserved_profile_zero_bitを復号、符号化してもよい。所定の回数は、gci_num_profile_constraint_bitsで規定されるビット長から固定値NCONST3を引いた回数である。gci_reserved_profile_zero_bitは、ある版の規格では0であるが、それ以降の版の規格では0以外の値であってもよい。つまり、gci_reserved_profile_zero_bitを別のシンタックス要素general_xxx_constraint_flagとして、将来拡張してもよい。
上記所定のgeneral_profile_idcでない場合、ヘッダ復号部3020及びヘッダ符号化部1110はSYN_CONST5に示すように8ビット固定長のgci_num_reserved_bitsを復号し、num_reserved_bitsで示されるgci_reserved_zero_bitを復号・符号化してもよい。
上記の構成によれば、ヘッダ復号部3020及びヘッダ符号化部1110はgeneral_profile_idcが所定値であるかを判定し、判定が真の場合に制限シンタックス群の長さを示すシンタックス要素を符号化データから復号・符号化する。また、制限シンタックス群の長さを示すシンタックスと等しい数、もしくはそれ以上の数の制限シンタックス群を復号、符号化することにより拡張プロファイルでの制限をシンタックス要素として規定し復号、符号化を可能とする効果を奏する。
また、gci_num_reserved_bitsとgci_num_profile_constraint_bitsを等しくし、gci_num_profile_constraint_bitsで規定される長さのSYN_CONST3をSYN_CONST4のgci_num_reserved_bitsと同様に読み捨てることができるようにすることで、後方互換性を有した動画像復号装置と動画像符号化装置を提供する効果を奏する。
さらに、gci_num_profile_constraint_bitsのビット長に応じて、gci_reserved_profile_zero_bitを読み飛ばす構成とすることにより、将来の制限シンタックス群を増やすような前方互換性を有した動画像復号装置と動画像符号化装置を提供してもよい。
(別の構成例)
図22は、本発明のツール制限を規定するシンタックステーブルの別の例である。
より具体的には、本発明のヘッダ復号部3020及びヘッダ符号化部1110はgeneral_profile_idcが所定値であるかを判定し(SYN_CONST1)、真の場合、後続のSYN_CONST2Bに示す制限シンタックス長、SYN_CONST3に示す制限シンタックス群、SYN_CONST4Bに示す制限シンタックス群の予備ビット長と予備ビットを復号、符号化する。SYN_CONST2Bのgci_num_profile_constraint_N_bitsは、制限シンタックス長の数(1ビットづつなので、ビット長)を示す。動画像復号装置及び動画像符号化装置は、general_profile_idcが所定値の場合、gci_num_profile_constraint_N_bitsの値(ここではNCONST3)と等しい数のシンタックス(制限シンタックス群)を復号および符号化する。ヘッダ復号部3020及びヘッダ符号化部1110は、general_profile_idcが所定値の場合、SYN_CONST2Bに示すように、gci_num_reserved2_bitsと等しいgci_num_profile_constraint_N_bitsを復号・符号化する。また、ヘッダ復号部3020及びヘッダ符号化部1110は、SYN_CONST4Bに示すように、制限シンタックス群の予備ビット長gci_num_reserved2_bitsで規定されるビット長だけgci_reserved_profile_zero_bitを復号、符号化する。つまり、予備ビット長で示される数の予備ビットを復号・符号化する。gci_reserved_profile_zero_bitは、ある版の規格では0であるが、それ以降の版の規格では0以外の値であってもよい。つまり、このgci_reserved_profile_zero_bitを別のシンタックス要素general_xxx_constraint_flagとして、将来拡張してもよい。
上記所定のgeneral_profile_idcでない場合、ヘッダ復号部3020及びヘッダ符号化部1110はSYN_CONST5に示すように8ビット固定長のgci_num_reserved_bitsを復号し、num_reserved_bitsで示される予備ビットを復号・符号化する。gci_reserved_profile_zero_bit、gci_reserved_zero_bitは1ビットのフラグである。
上記の構成によれば、ヘッダ復号部3020及びヘッダ符号化部1110はgeneral_profile_idcが所定値であるかを判定する。判定が真の場合、制限シンタックス群の長さを示すシンタックス要素を符号化データから復号・符号化し、制限シンタックス群の長さを示すシンタックスと等しい数の制限シンタックス群を復号、符号化する。これにより、拡張プロファイルでの制限をシンタックス値として規定し、復号、符号化を可能とする効果を奏する。 また、gci_num_reserved_bitsとgci_num_profile_constraint_N_bitsのビット長を等しくし、SYN_CONST5のgci_num_reserved_bitsを読み出すこととしている第1版の動画像復号装置でも同じ長さのgci_num_profile_constraint_N_bitsを問題なく読めるようにする。
さらにgci_num_profile_constraint_N_bitsの値を、SYN_CONST3のビット長とgci_num_reserved2_bitsのビット長(8bit)とgci_num_reserved2_bitsの値の合計と等しくすることで、SYN_CONST3とgci_num_reserved2_bitsとSYN_CONST4BをSYN_CONST5のgci_num_reserved_bitsと同様に読み捨てることができるようにできる。従って、後方互換性を有した動画像復号装置と動画像符号化装置を提供する効果を奏する。
さらに、gci_num_reserved2_bitを復号、符号化し、そのビット長に応じて、gci_reserved_profile_zero_bitを読み飛ばす構成とすることにより、将来の制限シンタックス群を増やすような前方互換性を有した動画像復号装置と動画像符号化装置を提供してもよい。
なお、上述した実施形態における動画像符号化装置11、動画像復号装置31の一部、例えば、エントロピー復号部301、パラメータ復号部302、ループフィルタ305、予測画像生成
部308、逆量子化・逆変換部311、加算部312、予測画像生成部101、減算部102、変換・量
子化部103、エントロピー符号化部104、逆量子化・逆変換部105、ループフィルタ107、符号化パラメータ決定部110、パラメータ符号化部111をコンピュータで実現するようにしてもよい。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、動画像符号化装置11、動画像復号装置31の何れかに内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるものであってもよい。
また、上述した実施形態における動画像符号化装置11、動画像復号装置31の一部、又は全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。動画像符号化装置11、動画像復号装置31の各機能ブロックは個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、又は汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
〔応用例〕
上述した動画像符号化装置11及び動画像復号装置31は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用することができる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CG及びGUIを含む)であってもよい。
まず、上述した動画像符号化装置11及び動画像復号装置31を、動画像の送信及び受信に利用できることを、図2を参照して説明する。
図2には、動画像符号化装置11を搭載した送信装置PROD_Aの構成を示したブロック図が
示されている。図に示すように、送信装置PROD_Aは、動画像を符号化することによって符号化データを得る符号化部PROD_A1と、符号化部PROD_A1が得た符号化データで搬送波を変調することによって変調信号を得る変調部PROD_A2と、変調部PROD_A2が得た変調信号を送信する送信部PROD_A3と、を備えている。上述した動画像符号化装置11は、この符号化部PROD_A1として利用される。
送信装置PROD_Aは、符号化部PROD_A1に入力する動画像の供給源として、動画像を撮像
するカメラPROD_A4、動画像を記録した記録媒体PROD_A5、動画像を外部から入力するための入力端子PROD_A6、及び、画像を生成又は加工する画像処理部A7を更に備えていてもよ
い。図においては、これら全てを送信装置PROD_Aが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_A5は、符号化されていない動画像を記録したものであってもよい
し、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(
不図示)を介在させるとよい。
また、図2には、動画像復号装置31を搭載した受信装置PROD_Bの構成を示したブロック
図が示されている。図に示すように、受信装置PROD_Bは、変調信号を受信する受信部PROD_B1と、受信部PROD_B1が受信した変調信号を復調することによって符号化データを得る復調部PROD_B2と、復調部PROD_B2が得た符号化データを復号することによって動画像を得る復号部PROD_B3と、を備えている。上述した動画像復号装置31は、この復号部PROD_B3として利用される。
受信装置PROD_Bは、復号部PROD_B3が出力する動画像の供給先として、動画像を表示す
るディスプレイPROD_B4、動画像を記録するための記録媒体PROD_B5、及び、動画像を外部に出力するための出力端子PROD_B6を更に備えていてもよい。図においては、これら全て
を受信装置PROD_Bが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_B5は、符号化されていない動画像を記録するためのものであって
もよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化されたものであってもよい。後者の場合、復号部PROD_B3と記録媒体PROD_B5との間に、復号部PROD_B3から
取得した動画像を記録用の符号化方式に従って符号化する符号化部(不図示)を介在させるとよい。
なお、変調信号を伝送する伝送媒体は、無線であってもよいし、有線であってもよい。また、変調信号を伝送する伝送態様は、放送(ここでは、送信先が予め特定されていない送信態様を指す)であってもよいし、通信(ここでは、送信先が予め特定されている送信態様を指す)であってもよい。すなわち、変調信号の伝送は、無線放送、有線放送、無線通信、及び有線通信の何れによって実現してもよい。
例えば、地上デジタル放送の放送局(放送設備等)/受信局(テレビジョン受像機等)は、変調信号を無線放送で送受信する送信装置PROD_A/受信装置PROD_Bの一例である。また、ケーブルテレビ放送の放送局(放送設備等)/受信局(テレビジョン受像機等)は、変調信号を有線放送で送受信する送信装置PROD_A/受信装置PROD_Bの一例である。
また、インターネットを用いたVOD(Video On Demand)サービスや動画共有サービス等のサーバ(ワークステーション等)/クライアント(テレビジョン受像機、パーソナルコンピュータ、スマートフォン等)は、変調信号を通信で送受信する送信装置PROD_A/受信装置PROD_Bの一例である(通常、LANにおいては伝送媒体として無線又は有線の何れかが用いられ、WANにおいては伝送媒体として有線が用いられる)。ここで、パーソナルコンピュータには、デスクトップ型PC、ラップトップ型PC、及びタブレット型PCが含まれる。また、スマートフォンには、多機能携帯電話端末も含まれる。
なお、動画共有サービスのクライアントは、サーバからダウンロードした符号化データを復号してディスプレイに表示する機能に加え、カメラで撮像した動画像を符号化してサーバにアップロードする機能を有している。すなわち、動画共有サービスのクライアントは、送信装置PROD_A及び受信装置PROD_Bの双方として機能する。
次に、上述した動画像符号化装置11及び動画像復号装置31を、動画像の記録及び再生に利用できることを、図3を参照して説明する。
図3には、上述した動画像符号化装置11を搭載した記録装置PROD_Cの構成を示したブロ
ック図が示されている。図に示すように、記録装置PROD_Cは、動画像を符号化することによって符号化データを得る符号化部PROD_C1と、符号化部PROD_C1が得た符号化データを記録媒体PROD_Mに書き込む書込部PROD_C2と、を備えている。上述した動画像符号化装置11
は、この符号化部PROD_C1として利用される。
なお、記録媒体PROD_Mは、(1)HDD(Hard Disk Drive)やSSD(Solid State Drive)等のように、記録装置PROD_Cに内蔵されるタイプのものであってもよいし、(2)SDメモリカードやUSB(Universal Serial Bus)フラッシュメモリ等のように、記録装置PROD_Cに
接続されるタイプのものであってもよいし、(3)DVD(Digital Versatile Disc:登録商標)やBD(Blu-ray Disc:登録商標)等のように、記録装置PROD_Cに内蔵されたドライブ
装置(不図示)に装填されるものであってもよい。
また、記録装置PROD_Cは、符号化部PROD_C1に入力する動画像の供給源として、動画像
を撮像するカメラPROD_C3、動画像を外部から入力するための入力端子PROD_C4、動画像を受信するための受信部PROD_C5、及び、画像を生成又は加工する画像処理部PROD_C6を更に備えていてもよい。図においては、これら全てを記録装置PROD_Cが備えた構成を例示しているが、一部を省略しても構わない。
なお、受信部PROD_C5は、符号化されていない動画像を受信するものであってもよいし
、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを受信するものであってもよい。後者の場合、受信部PROD_C5と符号化部PROD_C1との間に、伝送用の符号化方式で符号化された符号化データを復号する伝送用復号部(不図示)を介在させるとよい。
このような記録装置PROD_Cとしては、例えば、DVDレコーダ、BDレコーダ、HDD(Hard Disk Drive)レコーダ等が挙げられる(この場合、入力端子PROD_C4又は受信部PROD_C5が
動画像の主な供給源となる)。また、カムコーダ(この場合、カメラPROD_C3が動画像の
主な供給源となる)、パーソナルコンピュータ(この場合、受信部PROD_C5又は画像処理
部C6が動画像の主な供給源となる)、スマートフォン(この場合、カメラPROD_C3又は受
信部PROD_C5が動画像の主な供給源となる)等も、このような記録装置PROD_Cの一例であ
る。
また、図3には、上述した動画像復号装置31を搭載した再生装置PROD_Dの構成を示した
ブロック図が示されている。図に示すように、再生装置PROD_Dは、記録媒体PROD_Mに書き込まれた符号化データを読み出す読出部PROD_D1と、読出部PROD_D1が読み出した符号化データを復号することによって動画像を得る復号部PROD_D2と、を備えている。上述した動画像復号装置31は、この復号部PROD_D2として利用される。
なお、記録媒体PROD_Mは、(1)HDDやSSD等のように、再生装置PROD_Dに内蔵されるタイプのものであってもよいし、(2)SDメモリカードやUSBフラッシュメモリ等のように
、再生装置PROD_Dに接続されるタイプのものであってもよいし、(3)DVDやBD等のよう
に、再生装置PROD_Dに内蔵されたドライブ装置(不図示)に装填されるものであってもよい。
また、再生装置PROD_Dは、復号部PROD_D2が出力する動画像の供給先として、動画像を
表示するディスプレイPROD_D3、動画像を外部に出力するための出力端子PROD_D4、及び、動画像を送信する送信部PROD_D5を更に備えていてもよい。図においては、これら全てを
再生装置PROD_Dが備えた構成を例示しているが、一部を省略しても構わない。
なお、送信部PROD_D5は、符号化されていない動画像を送信するものであってもよいし
、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを送信するものであってもよい。後者の場合、復号部PROD_D2と送信部PROD_D5との間に、動画像を伝送用の符号化方式で符号化する符号化部(不図示)を介在させるとよい。
このような再生装置PROD_Dとしては、例えば、DVDプレイヤ、BDプレイヤ、HDDプレイヤ等が挙げられる(この場合、テレビジョン受像機等が接続される出力端子PROD_D4が動画
像の主な供給先となる)。また、テレビジョン受像機(この場合、ディスプレイPROD_D3
が動画像の主な供給先となる)、デジタルサイネージ(電子看板や電子掲示板等とも称され、ディスプレイPROD_D3又は送信部PROD_D5が動画像の主な供給先となる)、デスクトップ型PC(この場合、出力端子PROD_D4又は送信部PROD_D5が動画像の主な供給先となる)、ラップトップ型又はタブレット型PC(この場合、ディスプレイPROD_D3又は送信部PROD_D5が動画像の主な供給先となる)、スマートフォン(この場合、ディスプレイPROD_D3又は
送信部PROD_D5が動画像の主な供給先となる)等も、このような再生装置PROD_Dの一例で
ある。
(ハードウェア的実現及びソフトウェア的実現)
また、上述した動画像復号装置31及び動画像符号化装置11の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
後者の場合、上記各装置は、各機能を実現するプログラムの命令を実行するCPU、上記
プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(Random
Access Memory)、上記プログラム及び各種データを格納するメモリ等の記憶装置(記録媒体)等を備えている。そして、本発明の実施形態の目的は、上述した機能を実現するソフトウェアである上記各装置の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記各装置に供給し、そのコンピュータ(又はCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ類、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD-ROM(Compact Disc Read-Only Memory)/MOディスク(Magneto-Optical disc)/MD(Mini Disc)/DVD(Digital Versatile Disc:登録商標)/CD-R(CD Recordable)/ブルーレイディスク(Blu-ray Disc:登録商標)等の光ディスクを含むディスク類、ICカード(メモリカードを含む)/光カード等のカード類、マスクROM/EPROM(Erasable Programmable Read-Only Memory)/EEPROM(Electrically Erasable and Programmable Read-Only Memory:登録商標)/フラッシュROM等の半導体メモリ類、あるいはPLD(Programmable logic device)やFPGA(Field Programmable Gate Array)等の論理回路類等を用いることができる。
また、上記各装置を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、LAN(Local Area Network)、ISDN(Integrated Services Digital Network)、VAN(Value-Added Network)、CATV(Community Antenna television/Cable Television)通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成又は種類のものに限定されない。例えば、IEEE(Institute of Electrical and Electronic Engineers)1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL(Asymmetric Digital Subscriber Line)回線等の有線でも、IrDA(Infrared Data Association)やリモコンのような赤外線、BlueTooth(登録商標)、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(Digital Living Network Alliance:登録商標)、携帯電話網、衛星回線、地上デジタル放送網等の無線でも利用可能である。なお、本発明の実施形態は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明の実施形態は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
本発明の実施形態は、画像データが符号化された符号化データを復号する動画像復号装
置、及び、画像データが符号化された符号化データを生成する動画像符号化装置に好適に適用することができる。また、動画像符号化装置によって生成され、動画像復号装置によって参照される符号化データのデータ構造に好適に適用することができる。
31 動画像復号装置
301 エントロピー復号部
302 パラメータ復号部
3020 ヘッダ復号部
308 予測画像生成部
311 逆量子化・逆変換部
312 加算部
11 動画像符号化装置
101 予測画像生成部
102 減算部
103 変換・量子化部
104 エントロピー符号化部
105 逆量子化・逆変換部(スケーリング部)
107 ループフィルタ
110 符号化パラメータ決定部
111 パラメータ符号化部
1110 ヘッダ符号化部
1111 CT情報符号化部
1112 CU符号化部(予測モード符号化部)
1114 TU符号化部
311 逆量子化・逆変換部(スケーリング部)
3111 逆量子化部
3112 逆変換部
31123 逆コア変換部

Claims (11)

  1. 符号化データからプロファイルを示すgeneral_profile_idcを復号するヘッダ復号部を
    備え、
    上記ヘッダ復号部は、general_profile_idcが所定値の場合、符号化データからさらに
    制限シンタックス長を示すシンタックス要素と、制限シンタックス長を示すシンタックス要素で示される長さ以上の制限シンタックス群を復号することを特徴とする画像復号装置。
  2. general_profile_idcが特定の値であることと、上記制限シンタックス群のシンタック
    ス要素の値に応じて、プロファイルが識別される符号化データを復号することを特徴とする請求項1に記載の画像復号装置。
  3. 上記ヘッダ復号部は、general_profile_idcが上記所定値以外の場合、符号化データか
    らさらに予備ビット長を示すシンタックス要素と、予備ビット長で示される数の予備ビットを復号することを特徴とする請求項1に記載の画像復号装置。
  4. 上記ヘッダ復号部は、general_profile_idcが所定値の場合、符号化データからさらに
    制限シンタックス長を示すシンタックス要素と、制限シンタックス長を示すシンタックス要素で示される長さと等しい数の制限シンタックス群を復号することを特徴とする請求項1に記載の画像復号装置。
  5. 上記ヘッダ復号部は、general_profile_idcが所定値の場合、符号化データからさらに
    、制限シンタックス用の第2の予備ビット長を復号し、上記第2の予備ビット長の長さの第2の予備ビットを復号することを特徴とする請求項4に記載の画像復号装置。
  6. 上記制限シンタックス長を示すシンタックス要素と、上記予備ビット長を示すシンタックス要素は両者とも同じ8ビットの長さを有することを特徴とする請求項1および請求項4に記載の画像復号装置。
  7. 上記制限シンタックス群は、少なくとも、ビットデプスを制限するシンタックス要素と、色空間を制限するシンタックス要素を含むことを特徴する請求項1から請求項6に記載の画像復号装置。
  8. general_profile_idcの値は基本値と0以上のフィーチャー値の合計で示され、フィー
    チャー値には、マルチレイヤを示す16、4:4:4を示す32、静止画を示す64を少なくとも備
    え、
    上記ヘッダ部は、上記基本値として、少なくとも第1類の値である1と第2類の値を備える符号化データを復号することを特徴とする請求項1から請求項7に記載の画像復号装置。
  9. 上記ヘッダ部は、第2類の基本値と上記フィーチャー値の合計値を、上記所定値であると判定することを特徴とする請求項8に記載の画像復号装置。
  10. プロファイルを示すgeneral_profile_idcを符号化するヘッダ符号化部を備え、
    上記ヘッダ符号化部は、general_profile_idcが所定値の場合、さらに制限シンタック
    ス長を示すシンタックス要素と、制限シンタックス長を示すシンタックス要素で示される長さ以上の制限シンタックス群を符号化することを特徴とする画像符号化装置。
  11. 上記ヘッダ符号化部は、general_profile_idcが所定値の場合、さらに制限シンタック
    ス長を示すシンタックス要素と、制限シンタックス長を示すシンタックス要素で示される長さと等しい数の制限シンタックス群を符号化することを特徴とする請求項10に記載の画像符号化装置。
JP2021108681A 2021-06-30 2021-06-30 画像復号装置及び画像符号化装置 Pending JP2023006203A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021108681A JP2023006203A (ja) 2021-06-30 2021-06-30 画像復号装置及び画像符号化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021108681A JP2023006203A (ja) 2021-06-30 2021-06-30 画像復号装置及び画像符号化装置

Publications (1)

Publication Number Publication Date
JP2023006203A true JP2023006203A (ja) 2023-01-18

Family

ID=85108183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021108681A Pending JP2023006203A (ja) 2021-06-30 2021-06-30 画像復号装置及び画像符号化装置

Country Status (1)

Country Link
JP (1) JP2023006203A (ja)

Similar Documents

Publication Publication Date Title
US11166033B2 (en) Adaptation parameter set in access unit in video coding
US11778215B2 (en) Coding output layer set data and conformance window data of high level syntax for video coding
WO2016203881A1 (ja) 算術復号装置及び算術符号化装置
WO2016203981A1 (ja) 画像復号装置及び画像符号化装置
KR20200037272A (ko) 비디오 코딩에서 크로스-성분 동적 범위 조정 (cc-dra) 의 시스템 및 방법
KR20170110084A (ko) 고 스루풋 cabac 코딩을 위한 팔레트 인덱스 그루핑
JP7402016B2 (ja) 画像復号装置及び画像符号化装置
JP7469904B2 (ja) 画像復号装置、画像符号化装置、画像復号方法及び画像符号化方法
JP2022523789A (ja) 変換スキップモードのための係数コーディング
CN113196776B (zh) 预测图像生成装置、运动图像解码装置、运动图像编码装置以及预测图像生成方法
KR20220024050A (ko) 비디오 코딩을 위한 저주파 비분리형 변환 시그널링을 위한 콘텍스트 모델링
KR20220024117A (ko) 크로마 양자화 파라미터 (qp) 맵핑 테이블들의 시그널링
WO2021246284A1 (ja) 動画像復号装置及び動画像符号化装置
CN116458156A (zh) 视频译码中的基于上下文的变换索引信令
KR20230002329A (ko) 동적 범위 조정 파라미터 시그널링 및 가변 비트 깊이 지원의 실행
JP2023006203A (ja) 画像復号装置及び画像符号化装置
WO2022131243A1 (ja) 画像復号装置及び画像符号化装置
JP2021150703A (ja) 画像復号装置及び画像符号化装置
JP2022188825A (ja) 画像復号装置及び画像符号化装置
JP2022178335A (ja) 画像復号装置及び画像符号化装置
US11451779B2 (en) Scaling list signalling for video coding
JP2022045909A (ja) 画像復号装置及び画像符号化装置
JP2021013110A (ja) 画像復号装置および画像符号化装置
KR20220137913A (ko) 디코딩된 픽처 버퍼 관리를 위한 동적 범위 조정 파라미터들 및 동적 범위의 시그널링
JP2020205483A (ja) 画像復号装置および画像符号化装置

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20221207