JP6134651B2 - 算術復号装置、算術符号化装置および算術復号方法 - Google Patents
算術復号装置、算術符号化装置および算術復号方法 Download PDFInfo
- Publication number
- JP6134651B2 JP6134651B2 JP2013551716A JP2013551716A JP6134651B2 JP 6134651 B2 JP6134651 B2 JP 6134651B2 JP 2013551716 A JP2013551716 A JP 2013551716A JP 2013551716 A JP2013551716 A JP 2013551716A JP 6134651 B2 JP6134651 B2 JP 6134651B2
- Authority
- JP
- Japan
- Prior art keywords
- context
- index
- context index
- block
- frequency
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Peptides Or Proteins (AREA)
Description
(2)低周波数側の部分領域に含まれる周波数成分に対して、周波数領域内での当該周波数成分の位置に応じて定まるコンテキストインデックス(位置コンテキストとも呼ぶ)を導出する。
(3)中周波数領域の部分領域に含まれる周波数成分に対して、当該周波数成分の周辺の周波数成分における非ゼロ係数の数に応じて定まるコンテキストインデックス(周辺参照コンテキストとも呼ぶ)を導出する。
(4)高周波数側の部分領域に含まれる周波数成分に対して、固定のコンテキストインデックスを導出する。
(5)処理対象ブロックのサイズが所定サイズ未満である場合には、さらに、周波数領域内での当該周波数成分の位置に応じて定まるコンテキストインデックス(位置コンテキストとも呼ぶ)を導出する。
図2を用いて、動画像符号化装置2によって生成され、動画像復号装置1によって復号される符号化データ#1の構成例について説明する。符号化データ#1は、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。
ピクチャレイヤでは、処理対象のピクチャPICT(以下、対象ピクチャとも称する)を復号するために動画像復号装置1が参照するデータの集合が規定されている。ピクチャPICTは、図2の(a)に示すように、ピクチャヘッダPH、及び、スライスS1〜SNSを含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
スライスレイヤでは、処理対象のスライスS(対象スライスとも称する)を復号するために動画像復号装置1が参照するデータの集合が規定されている。スライスSは、図2の(b)に示すように、スライスヘッダSH、及び、ツリーブロックTBLK1〜TBLKNC(NCはスライスSに含まれるツリーブロックの総数)を含んでいる。
ツリーブロックレイヤでは、処理対象のツリーブロックTBLK(以下、対象ツリーブロックとも称する)を復号するために動画像復号装置1が参照するデータの集合が規定されている。
ツリーブロックヘッダTBLKHには、対象ツリーブロックの復号方法を決定するために動画像復号装置1が参照する符号化パラメータが含まれる。具体的には、図2の(c)に示すように、対象ツリーブロックの各CUへの分割パターンを指定するツリーブロック分割情報SP_TBLK、および、量子化ステップの大きさを指定する量子化パラメータ差分Δqp(qp_delta)が含まれる。
CUレイヤでは、処理対象のCU(以下、対象CUとも称する)を復号するために動画像復号装置1が参照するデータの集合が規定されている。
続いて、図2の(d)を参照しながら符号化単位情報CUに含まれるデータの具体的な内容について説明する。図2の(d)に示すように、符号化単位情報CUは、具体的には、スキップモードフラグSKIP、CU予測タイプ情報Pred_type、PT情報PTI、および、TT情報TTIを含む。
スキップフラグSKIPは、対象CUについて、スキップモードが適用されているか否かを示すフラグであり、スキップフラグSKIPの値が1の場合、すなわち、対象CUにスキップモードが適用されている場合、その符号化単位情報CUにおけるPT情報PTIは省略される。なお、スキップフラグSKIPは、Iスライスでは省略される。
CU予測タイプ情報Pred_typeは、CU予測方式情報PredModeおよびPU分割タイプ情報PartModeを含む。CU予測タイプ情報のことを単に予測タイプ情報と呼ぶこともある。
PT情報PTIは、対象CUに含まれるPTに関する情報である。言い換えれば、PT情報PTIは、PTに含まれる1または複数のPUそれぞれに関する情報の集合である。上述のとおり予測画像の生成は、PUを単位として行われるので、PT情報PTIは、動画像復号装置1によって予測画像が生成される際に参照される。PT情報PTIは、図2の(d)に示すように、各PUにおける予測情報等を含むPU情報PUI1〜PUINP(NPは、対象PTに含まれるPUの総数)を含む。
TT情報TTIは、CUに含まれるTTに関する情報である。言い換えれば、TT情報TTIは、TTに含まれる1または複数のTUそれぞれに関する情報の集合であり、動画像復号装置1により残差データを復号する際に参照される。なお、以下、TUのことをブロックと称することもある。
処理2:処理1にて得られた変換係数を量子化する;
処理3:処理2にて量子化された変換係数を可変長符号化する;
なお、上述した量子化パラメータqpは、動画像符号化装置2が変換係数を量子化する際に用いた量子化ステップQPの大きさを表す(QP=2qp/6)。
PU分割タイプには、対象CUのサイズを2N×2N画素とすると、次の合計8種類のパターンがある。すなわち、2N×2N画素、2N×N画素、N×2N画素、およびN×N画素の4つの対称的分割(symmetric splittings)、並びに、2N×nU画素、2N×nD画素、nL×2N画素、およびnR×2N画素の4つの非対称的分割(asymmetric splittings)である。なお、N=2m(mは1以上の任意の整数)を意味している。以下、対称CUを分割して得られる領域のことをパーティションとも称する。
インターPUでは、上記8種類の分割タイプのうち、N×N(図3の(h))以外の7種類が定義されている。なお、上記6つの非対称的分割は、AMP(Asymmetric Motion Partition)と呼ばれることもある。
イントラPUでは、次の2種類の分割パターンが定義されている。対象CUを分割しない、すなわち対象CU自身が1つのPUとして取り扱われる分割パターン2N×2Nと、対象CUを、4つのPUへと対称的に分割するパターンN×Nと、である。したがって、イントラPUでは、図3に示した例でいえば、(a)および(h)の分割パターンを取ることができる。例えば、128×128画素のイントラCUは、128×128画素、および、64×64画素のイントラPUへ分割することが可能である。
次に、図3(i)〜(o)を用いて、TU分割タイプについて説明する。TU分割のパターンは、CUのサイズ、分割の深度(trafoDepth)、および対象PUのPU分割タイプにより定まる。
図4及び図5は、量子化残差情報QD(図4ではresidual_coding_cabac()と表記)に含まれる各シンタックスが示されている。
以下では、図4〜図6を参照して、ブロックサイズが所定のサイズ以下である場合の各シンタックスの復号手順について、ブロックサイズが8×8画素である場合を例にとり説明する。なお、上記所定のサイズ以下のブロックサイズとは、例えば、4×4画素及び8×8画素のことを指すが、これは本実施形態を限定するものではない(以下同様)。
動画像復号装置1の備える可変長符号復号部11は、処理対象ブロックのブロックサイズが所定のサイズより大きい場合、周波数領域を複数のサブブロックに分割し、サブブロックを処理単位として、significant_coeff_flagの復号を行う。量子化残差情報QDには、サブブロック単位で、サブブロック内に少なくとも1つの非0変換係数が存在するか否かを示すフラグ(サブブロック係数有無フラグsignificant_coeffgroup_flag)が含まれる。なお、所定のサイズより大きいブロックサイズとは、例えば、16×16画素、32×32画素、4×16画素、16×4画素、8×32画素、32×8画素のことを指すが、本実施形態はこれに限定されるものではない(以下同様)。
以下では、本実施形態に係る動画像復号装置1について図1、図9〜図51を参照して説明する。動画像復号装置1は、H.264/MPEG−4 AVC規格に採用されている技術、VCEG(Video Coding Expert Group)における共同開発用コーデックであるKTAソフトウェアに採用されている技術、TMuC(Test Model under Consideration)ソフトウェアに採用されている技術、および、その後継コーデックであるHEVC(High-Efficiency Video Coding)にて提案されている技術を実装している復号装置である。
図10は、可変長符号復号部11の要部構成を示すブロック図である。図10に示すように、可変長符号復号部11は、量子化残差情報復号部111、予測パラメータ復号部112、予測タイプ情報復号部113、および、フィルタパラメータ復号部114を備えている。
予測画像生成部12は、各パーティションについての予測タイプ情報Pred_typeに基づいて、各パーティションがインター予測を行うべきインター予測パーティションであるのか、イントラ予測を行うべきイントラ予測パーティションであるのかを識別する。そして、前者の場合には、インター予測画像Pred_Interを生成すると共に、生成したインター予測画像Pred_Interを予測画像Predとして加算器14に供給し、後者の場合には、イントラ予測画像Pred_Intraを生成すると共に、生成したイントラ予測画像Pred_Intraを加算器14に供給する。なお、予測画像生成部12は、処理対象PUに対してスキップモードが適用されている場合には、当該PUに属する他のパラメータの復号を省略する。
動きベクトル復元部12aは、各インター予測パーティションに関する動きベクトルmvを、そのパーティションに関する動きベクトル残差と、他のパーティションに関する復元済みの動きベクトルmv’とから復元する。具体的には、(1)推定動きベクトルインデックスにより指定される推定方法に従って、復元済みの動きベクトルmv’から推定動きベクトルを導出し、(2)導出した推定動きベクトルと動きベクトル残差とを加算することによって動きベクトルmvを得る。なお、他のパーティションに関する復元済みの動きベクトルmv’は、フレームメモリ15から読み出すことができる。動きベクトル復元部12aは、復元した動きベクトルmvを、対応する参照画像インデックスRIと共に、インター予測画像生成部12bに供給する。
インター予測画像生成部12bは、画面間予測によって、各インター予測パーティションに関する動き補償画像mcを生成する。具体的には、動きベクトル復元部12aから供給された動きベクトルmvを用いて、同じく動きベクトル復元部12aから供給された参照画像インデックスRIによって指定される適応フィルタ済復号画像P_ALF’から動き補償画像mcを生成する。ここで、適応フィルタ済復号画像P_ALF’は、既にフレーム全体の復号が完了した復号済みの復号画像に対して、ループフィルタ16によるフィルタ処理を施すことによって得られる画像であり、インター予測画像生成部12bは、適応フィルタ済復号画像P_ALF’を構成する各画素の画素値をフレームメモリ15から読み出すことができる。インター予測画像生成部12bによって生成された動き補償画像mcは、インター予測画像Pred_Interとして予測方式決定部12dに供給される。
イントラ予測画像生成部12cは、各イントラ予測パーティションに関する予測画像Pred_Intraを生成する。具体的には、まず、可変長符号復号部11から供給されたイントラ予測パラメータPP_Intraに基づいて予測モードを特定し、特定された予測モードを対象パーティションに対して、例えば、ラスタスキャン順に割り付ける。
予測方式決定部12dは、各パーティションが属するPUについての予測タイプ情報Pred_typeに基づいて、各パーティションがインター予測を行うべきインター予測パーティションであるのか、イントラ予測を行うべきイントラ予測パーティションであるのかを決定する。そして、前者の場合には、インター予測画像生成部12bにて生成されたインター予測画像Pred_Interを予測画像Predとして加算器14に供給し、後者の場合には、イントラ予測画像生成部12cにて生成されたイントラ予測画像Pred_Intraを予測画像Predとして加算器14に供給する。
逆量子化・逆変換部13は、(1)符号化データ#1の量子化残差情報QDから復号された変換係数Coeffを逆量子化し、(2)逆量子化によって得られた変換係数Coeff_IQに対して逆DCT(Discrete Cosine Transform)変換等の逆周波数変換を施し、(3)逆周波数変換によって得られた予測残差Dを加算器14に供給する。なお、量子化残差情報QDから復号された変換係数Coeffを逆量子化する際に、逆量子化・逆変換部13は、可変長符号復号部11から供給された量子化パラメータ差分Δqpから量子化ステップQPを導出する。量子化パラメータqpは、直前に逆量子化及び逆周波数変換したTUに関する量子化パラメータqp’に量子化パラメータ差分Δqpを加算することによって導出でき、量子化ステップQPは、量子化パラメータqpから例えばQP=2pq/6によって導出できる。また、逆量子化・逆変換部13による予測残差Dの生成は、TUあるいはTUを分割したブロックを単位として行われる。
・C(u)=1/√2 (u=0)
・C(u)=1 (u≠0)
・C(v)=1/√2 (v=0)
・C(v)=1 (v≠0)
加算器14は、予測画像生成部12から供給された予測画像Predと、逆量子化・逆変換部13から供給された予測残差Dとを加算することによって復号画像Pを生成する。生成された復号画像Pは、フレームメモリ15に格納される。
ループフィルタ16は、(1)復号画像Pにおけるブロック境界、またはパーティション境界の周辺の画像の平滑化(デブロック処理)を行うデブロッキングフィルタ(DF:Deblocking Filter)としての機能と、(2)デブロッキングフィルタが作用した画像に対して、フィルタパラメータFPを用いて適応フィルタ処理を行う適応フィルタ(ALF:Adaptive Loop Filter)としての機能とを有している。
量子化残差情報復号部111は、符号化データ#1に含まれる量子化残差情報QDから、各周波数成分(xC、yC)についての量子化された変換係数Coeff(xC、yC)を復号するための構成である。ここで、xCおよびyCは、周波数領域における各周波数成分の位置を表すインデックスであり、それぞれ、上述した水平方向周波数uおよび垂直方向周波数vに対応するインデックスである。また、量子化残差情報QDに含まれる各種のシンタックスは、コンテキスト適応型2値算術符号化(CABAC:(Context-based Adaptive Binary Arithmetic Coding))によって符号化されている。なお、以下では、量子化された変換係数Coeffを、単に、変換係数Coeffと呼ぶこともある。
算術符号復号部130は、量子化残差情報QDに含まれる各ビットをコンテキストを参照して復号するための構成であり、図1に示すように、コンテキスト記録更新部131及びビット復号部132を備えている。
コンテキスト記録更新部131は、各コンテキストインデックスctxIdxによって管理されるコンテキスト変数CVを記録及び更新するための構成である。ここで、コンテキスト変数CVには、(1)発生確率が高い優勢シンボルMPS(most probable symbol)と、(2)その優勢シンボルMPSの発生確率を指定する確率状態インデックスpStateIdxとが含まれている。
ビット復号部132は、コンテキスト記録更新部131に記録されているコンテキスト変数CVを参照し、量子化残差情報QDに含まれる各ビット(Binとも呼ぶ)を復号する。また、復号して得られたBinの値を変換係数復号部120の備える各部に供給する。また、復号して得られたBinの値は、コンテキスト記録更新部131にも供給され、コンテキスト変数CVを更新するために参照される。
図1に示すように、変換係数復号部120は、ラスト係数位置復号部121、スキャン順テーブル格納部122、係数復号制御部123、係数有無フラグ復号部、係数値復号部125、復号係数記憶部126、及び、サブブロック係数有無フラグ復号部127を備えている。
ラスト係数位置復号部121は、ビット復号部132より供給される復号ビット(Bin)を解釈し、シンタックスlast_significant_coeff_x及びlast_significant_coeff_yを復号する。復号したシンタックスlast_significant_coeff_x及びlast_significant_coeff_yは、係数復号制御部123に供給される。また、ラスト係数位置復号部121は、算術符号復号部130にてシンタックスlast_significant_coeff_x及びlast_significant_coeff_yのBinを復号するために用いられるコンテキストを決定するためのコンテキストインデックスctxIdxを算出する。算出されたコンテキストインデックスctxIdxは、コンテキスト記録更新部131に供給される。
スキャン順テーブル格納部122には、処理対象のTU(ブロック)のサイズ、スキャン方向の種別を表すスキャンインデックス、及びスキャン順に沿って付与された周波数成分識別インデックスを引数として、処理対象の周波数成分の周波数領域における位置を与えるテーブルが格納されている。
また、スキャン順テーブル格納部122には、サブブロックのスキャン順を指定するためのサブブロックスキャン順テーブルが格納されている。サブブロックスキャン順テーブルは、処理対象のTU(ブロック)のサイズとイントラ予測モードの予測モードインデックス(予測方向)とに関連付けられたスキャンインデックスscanIndexによって指定される。処理対象のTUに用いられた予測方法がイントラ予測である場合には、係数復号制御部123は、当該TUのサイズと当該TUの予測モードとに関連付けられたスキャンインデックスscanIndexによって指定されるテーブルを参照してサブブロックのスキャン順を決定する。
係数復号制御部123は、量子化残差情報復号部111の備える各部における復号処理の順序を制御するための構成である。
ブロックサイズが所定のサイズ以下である場合、係数復号制御部123は、ラスト係数位置復号部121から供給されるシンタックスlast_significant_coeff_x及びlast_significant_coeff_yを参照し、順スキャンに沿った最後の非0変換係数の位置を特定すると共に、特定した最後の非0変換係数の位置を起点とするスキャン順であって、スキャン順テーブル格納部122に格納されたスキャン順テーブルよって与えられるスキャン順の逆スキャン順に、各周波数成分の位置(xC、yC)を、係数有無フラグ復号部124及び復号係数記憶部126に供給する。
ブロックサイズが所定のサイズよりも大きい場合、係数復号制御部123は、ラスト係数位置復号部121から供給されるシンタックスlast_significant_coeff_x及びlast_significant_coeff_yを参照し、順スキャンに沿った最後の非0変換係数の位置を特定すると共に、特定した最後の非0変換係数を含むサブブロックの位置を起点とするスキャン順であって、スキャン順テーブル格納部122に格納されたサブブロックスキャン順テーブルによって与えられるスキャン順の逆スキャン順に、各サブブロックの位置(xCG、yCG)を、サブブロック係数有無フラグ復号部127に供給する。
サブブロック係数有無フラグ復号部127は、ビット復号部132から供給される各Binを解釈し、各サブブロック位置(xCG、yCG)によって指定されるシンタックスsignificant_coeffgroup_flag[xCG][yCG]を復号する。また、サブブロック係数有無フラグ復号部127は、算術符号復号部130にてシンタックスsignificant_coeffgroup_flag[xCG][yCG]のBinを復号するために用いられるコンテキストを決定するためのコンテキストインデックスctxIdxを算出する。算出されたコンテキストインデックスctxIdxは、コンテキスト記録更新部131に供給される。ここで、シンタックスsignificant_coeffgroup_flag[xCG][yCG]は、サブブロック位置(xCG、yCG)によって指定されるサブブロックに、少なくとも1つの非0変換係数が含まれている場合に1をとり、非0変換係数が1つも含まれていない場合に0をとるシンタックスである。復号されたシンタックスsignificant_coeffgroup_flag[xCG][yCG]の値は、復号係数記憶部126に格納される。
本実施形態に係る係数有無フラグ復号部124は、各係数位置(xC、yC)によって指定されるシンタックスsignificant_coeff_flag[xC][yC]を復号する。復号されたシンタックスsignificant_coeff_flag[xC][yC]の値は、復号係数記憶部126に格納される。また、係数有無フラグ復号部124は、算術符号復号部130にてシンタックスsignificant_coeff_flag[xC][yC]のBinを復号するために用いられるコンテキストを決定するためのコンテキストインデックスctxIdxを算出する。算出されたコンテキストインデックスctxIdxは、コンテキスト記録更新部131に供給される。係数有無フラグ復号部124の具体的な構成については後述する。
係数値復号部125は、ビット復号部132から供給される各Binを解釈し、シンタックスcoeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_sign_flag、及びcoeff_abs_level_minus3を復号すると共に、これらのシンタックスを復号した結果に基づき、処理対象の周波数成分における変換係数(より具体的には非0変換係数)の値を導出する。また、各種シンタックスの復号に用いたコンテキストインデックスctxIdxは、コンテキスト記録更新部131に供給される。導出された変換係数の値は、復号係数記憶部126に格納される。
復号係数記憶部126は、係数値復号部125によって復号された変換係数の各値を記憶しておくための構成である。また、復号係数記憶部126には、係数有無フラグ復号部124によって復号されたシンタックスsignificant_coeff_flagの各値が記憶される。復号係数記憶部126によって記憶されている変換係数の各値は、逆量子化・逆変換部13に供給される。
以下では、図19を参照して、サブブロック係数有無フラグ復号部127の具体的な構成例について説明する。
サブブロック係数有無フラグ復号部127の備えるコンテキスト導出部127aは、各サブブロック位置(xCG、yCG)によって指定されるサブブロックに割り付けるコンテキストインデックスを導出する。サブブロックに割り付けられたコンテキストインデックスは、当該サブブロックについてのシンタックスsignificant_coeffgroup_flagを示すBinを復号する際に用いられる。また、コンテキストインデックスを導出する際には、サブブロック係数有無フラグ記憶部127bに記憶された復号済みのサブブロック係数有無フラグの値が参照される。コンテキスト導出部127aは、導出したコンテキストインデックスをコンテキスト記録更新部131に供給する。
コンテキストインデックスには、色空間を示すcIdxと、TUサイズを示すlog2TrofoSizeによって定まる所定の初期値(ctxIdxOffset)が設定される。
ctxIdx = ctxIdxOffset
(2)xCG<3、かつ、yCG==3のとき
コンテキストインデックスには、サブブロック位置(xCG、yCG)の右隣に位置する復号済みサブブロック係数有無フラグsignificant_coeffgroup_flag[xCG+1][yCG+1]の値を参照して次のように設定される。
ctxIdx = ctxIdxOffset+ significant_coeffgroup_flag[xCG+1][yCG]
(3)xCG==3、かつ、yCG<3のとき
コンテキストインデックスには、サブブロック位置(xCG、yCG)の下に位置する復号済みサブブロック係数有無フラグsignificant_coeffgroup_flag[xCG][yCG+1]の値を参照して次のように設定される。
ctxIdx = ctxIdxOffset + significant_coeffgroup_flag[xCG][yCG+1]
(4)xCG<3、かつ、yCG<3のとき
コンテキストインデックスには、サブブロック位置(xCG、yCG)の右隣に位置する復号済みサブブロック係数有無フラグsignificant_coeffgroup_flag[xCG+1][yCG]と、サブブロック位置(xCG,yCG)の下に位置する復号済サブブロック係数有無フラグsiginificant_coeffgroup_flag[xCG][yCG+1]の値を参照して次のように設定される。
ctxIdx = ctxIdxOffset + Max( significant_coeffgroup_flag[xCG+1][yCG], significant_coeffgroup_flag[xCG][yCG+1] )
なお、初期値ctxIdxOffsetは、色空間を示すcIdxと、TUサイズを示すlog2TrofoSizeによって次のように設定される。
ctxIdxOffset = cIdx==0 ? ( ( 5 ‐ log2TrafoSize ) * 16 ) + 44 :
( ( 4 − log2TrafoSize ) * 16 ) + 44 + 64
サブブロック係数有無フラグ記憶部127bには、サブブロック係数有無フラグ設定部127cによって復号又は設定されたシンタックスsignificant_coeffgroup_flagの各値が記憶されている。サブブロック係数有無フラグ設定部127cは、隣接サブブロックに割り付けられたシンタックスsignificant_coeffgroup_flagを、サブブロック係数有無フラグ記憶部127bから読み出すことができる。
サブブロック係数有無フラグ設定部127cは、ビット復号部132から供給される各Binを解釈し、シンタックスsignificant_coeffgroup_flag[xCG][yCG]を復号または設定する。より具体的には、サブブロック係数有無フラグ設定部127cは、サブブロック位置(xCG、yCG)、及び、サブブロック位置(xCG、yCG)によって指定されるサブブロックに隣接するサブブロック(隣接サブブロックとも呼ぶ)に割り付けられたシンタックスsignificant_coeffgroup_flagを参照し、シンタックスsignificant_coeffgroup_flag[xCG][yCG]を復号または設定する。また、復号または設定されたシンタックスsignificant_coeffgroup_flag[xCG][yCG]の値は、係数有無フラグ復号部124に供給される。
サブブロックスキャン順を指定するスキャンタイプが垂直方向優先スキャンである場合、サブブロック係数有無フラグ設定部127cは、図20(a)に示すように、サブブロック(xCG、yCG)に隣接するサブブロック(xCG、yCG+1)に割り付けられたサブブロック係数有無フラグsignificant_coeffgroup_flag[xCG][yCG+1]の値を参照する。significant_coeffgroup_flag[xCG][yCG+1]=1である場合、サブブロック係数有無フラグ設定部127cは、significant_coeffgroup_flag[xCG][yCG]=1に設定する。この場合、significant_coeffgroup_flag[xCG][yCG]を復号する処理を省略することができる。なお、隣接サブブロックに割り付けられたサブブロック係数有無フラグの値を当該サブブロックに割り付けられたサブブロック係数有無フラグの値に設定することを、「サブブロック係数有無フラグの推測」と表現することもある。推測されたサブブロック係数有無フラグに対しては、符号化及び復号処理が省略可能である。
サブブロックスキャン順を指定するスキャンタイプが水平方向優先スキャンである場合、サブブロック係数有無フラグ設定部127cは、図20(b)に示すように、サブブロック(xCG、yCG)に隣接するサブブロック(xCG+1、yCG)に割り付けられたサブブロック係数有無フラグsignificant_coeffgroup_flag[xCG+1][yCG]の値を参照する。significant_coeffgroup_flag[xCG+1][yCG]=1である場合、サブブロック係数有無フラグ設定部127cは、significant_coeffgroup_flag[xCG][yCG]=1に設定する。この場合、significant_coeffgroup_flag[xCG][yCG]を復号する処理を省略することができる。
サブブロックスキャン順を指定するスキャンタイプが斜め方向スキャンである場合、サブブロック係数有無フラグ設定部127cは、図20(c)に示すように、サブブロック(xCG、yCG)に隣接するサブブロック(xCG+1、yCG)に割り付けられたサブブロック係数有無フラグsignificant_coeffgroup_flag[xCG+1][yCG]の値とサブブロック(xCG、yCG+1)に割り付けられたサブブロック係数有無フラグsignificant_coeffgroup_flag[xCG][yCG+1]の値とを参照する。
比較例に係るサブブロック係数有無フラグ符号化及び復号処理では、変換係数の偏りに関わらず、斜め方向スキャンが選択されるものとする。また、DC成分を含むサブブロック及びラスト係数を含むサブブロックについては、significant_coeffgroup_flagが1に設定(推測)され、符号化されないものとする。
一方で、本実施形態に係るサブブロック係数有無フラグ符号化処理では、イントラ予測モードに応じて、スキャン方向を決定するので、変換係数の偏りの態様に適したスキャン順が選択される。また、DC成分を含むサブブロック及びラスト係数を含むサブブロックについては、significant_coeffgroup_flagが1に設定(推測)され、符号化されない。
以下では、図23を参照して、係数有無フラグ復号部124の具体的な構成例について説明する。
図23は、係数有無フラグ復号部124の構成例を示すブロック図である。図23に示すように、係数有無フラグ復号部124は、周波数分類部124a、位置コンテキスト導出部124b、周辺参照コンテキスト導出部124c、係数有無フラグ記憶部124d、及び係数有無フラグ設定部124eを備えている。
周波数分類部124aは、対象となる周波数領域のサイズが所定のサイズ以下のサイズである場合(例えば、4×4成分、8×8成分である場合)、当該所定サイズ以下の周波数領域の各周波数成分に対して、その周波数成分の位置に応じて、当該周波数成分を複数の部分領域の何れかに分類すると共に、位置コンテキスト導出部124bによって導出されたコンテキストインデックスctxIdxを割り付ける。
yCG=yC>>2 ・・・(eq.A2)
ここで、xCG=0、1、...、(sz−1)>>2であり、yCG=0、1、...、(sz−1)>>2であるとする。
(1)xCG+yCG<THA、かつ、xC+yC<THZを満たす周波数成分を部分領域R0に分類する。
(2)xCG+yCG<THA、かつ、THZ≦xC+yCを満たす周波数成分を部分領域R1に分類する。
(3)THA≦xCG+yCGを満たす周波数成分を部分領域R2に分類する。
********************************************************************
if( xCG+yCG<THA){
if( xC+yC<THZ ) {
R0へ分類
}
else{// if( xC+yC>=THZ)
R1へ分類
}
}
else{//if( xCG+yCG>=THA ){
R2へ分類
}
********************************************************************
ここで、閾値THZとして2を用いる。THAは、THA≧THZ/4を満たす閾値を表している。具体的な値としては、例えば、周波数領域のサイズ(処理対象TUのサイズ)に関わらず、THA=1とすればよい。また、周波数領域のサイズlog2TrafoSizeを用いて、THA=1<<(log2TrafoSize-2)としてもよい。すなわち、周波数領域のサイズが16×16である場合、THA=1とし、周波数領域のサイズが32×32である場合、THA=2としてもよい。このように、周波数領域のサイズに応じて、異なる閾値を用いる構成としてもよい。また、閾値THZを1としても良い。
位置コンテキスト導出部124bは、対象周波数成分に対するコンテキストインデックスctxIdxを、周波数領域における当該対象周波数成分の位置に基づいて導出する。
なお、NXはコンテキストインデックスの開始点を表す定数である。周波数領域のサイズが4×4及び8×8で用いるコンテキスト数が各々N4個、N8個の場合には、周波数領域のサイズが16×16および32×32の開始点はNX=N4+N8になる。
周辺参照コンテキスト導出部124cは、復号対象の周波数成分に対するコンテキストインデックスctxIdxを、当該周波数成分の周辺の周波数成分について復号済みの非0変換係数の数cntに基づいて導出する。
ここで、tempは、
temp=(cnt+1)>>1
によって定まる。
ここで、tempは、上記の場合と同様に、
temp=(cnt+1)>>1
によって定まる。
ここで、(eq.A6)における各項は、()内の比較が真である場合に1をとり、()内の比較が偽である場合に0をとるものとする。
・・・(eq.A7)
また、対象とする変換係数のサブブロック内の位置に応じて、数式(eq.A6)と数式(eq.A7)との何れかを用いて変換係数を導出する構成としてもよい。すなわち、対象とする変換係数のサブブロック内の位置に応じて、変換係数の導出に用いる参照成分を変更する構成としてもよい。
係数有無フラグ設定部124eは、ビット復号部132から供給される各Binを解釈し、シンタックスsignificant_coeff_flag[xC][yC]を復号または設定する。復号または設定されたシンタックスsignificant_coeff_flag[xC][yC]は、復号係数記憶部126に供給される。
係数有無フラグ記憶部124dには、シンタックスsignificant_coeff_flag[xC][yC]の各値が格納される。係数有無フラグ記憶部124dに格納されたシンタックスsignificant_coeff_flag[xC][yC]の各値は、周辺参照コンテキスト導出部124cによって参照される。
以下では、係数有無フラグ復号部124による他の処理例について図26〜図28を参照して説明する。
TH=Max(width、height)>>2
によって定められる。ここで、widthは、周波数成分を単位として表現された対象周波数領域の幅を示しており、heightは周波数成分を単位として表現された対象周波数領域の高さを示している。例えば対象周波数領域の幅が16成分(16画素に対応)、高さが4成分(4画素に対応)であるとき、width=16、height=4である。
まず、周波数分類部124aは、処理対象の周波数領域が所定のサイズ以下である場合に、処理対象の周波数成分の位置(xC,yC)に基づいて、処理対象の周波数成分を4×4成分の場合はサブグループ(サブ領域)R0〜R6へ、8×8成分の場合はサブグループR0〜R9へ分類処理を行う。
(1)xC=0、かつ、yC=0の場合、サブグループR0へ分類する。
(2)xC=1、かつ、yC=0の場合、サブグループR1へ分類する。
(3)xC=0、かつ、yC=1の場合、サブグループR2へ分類する。
(4)xC=1、かつ、yC=1の場合、サブグループR3へ分類する。
(5)1<xC<4、かつ、yC<2の場合、サブグループR4へ分類する。
(6)xC<2、かつ、1<yC<4の場合、サブグループR5へ分類する。
(7)2≦xC<4、かつ、2≦yC<4の場合、サブグループR6へ分類する。
(1)xC=0、かつ、yC=0の場合、サブグループR0へ分類する。
(2)xC=1、かつ、yC=0の場合、サブグループR1へ分類する。
(3)xC=0、かつ、yC=1の場合、サブグループR2へ分類する。
(4)xC=1、かつ、yC=1の場合、サブグループR3へ分類する。
(5)1<xC<4、かつ、yC<2の場合、サブグループR4へ分類する。
(6)xC<2、かつ、1<yC<4の場合、サブグループR5へ分類する。
(7)2≦xC<4、かつ、2≦yC<4の場合、サブグループR6へ分類する。
(8)xC≧4、かつ、yC<4の場合、サブグループR7へ分類する。
(9)xC<4、かつ、yC≧4の場合、サブグループR8へ分類する。
(10)xC≧4、かつ、yC≧4の場合、サブグループR9へ分類する。
以上、周波数領域が所定のサイズ以下である場合に、異なる変換ブロック間において、共通のコンテキストインデックスを導出する場合について説明したが、コンテキストインデックスの導出処理はこれに限定されない。以下では、異なる変換ブロック間において、共通のコンテキストインデックスを導出しない場合について説明する。
(1)xC=0、かつ、yC=0の場合、サブグループR0へ分類する。
(2)(xC=0かつyC=0)でなく、xC<2、かつ、yC<2の場合、サブグループR1へ分類する。
(3)xC=2、かつ、yC<2の場合、サブグループR2へ分類する。
(4)xC=3、かつ、yC<2の場合、サブグループR3へ分類する。
(5)xC<2、かつ、yC=2の場合、サブグループR4へ分類する。
(6)xC<2、かつ、yC=3の場合、サブグループR5へ分類する。
(7)xC≧2、かつ、yC≧2の場合、サブグループR6へ分類する。
(1’)xC<1、かつ、yC<1の場合、サブグループR0へ分類する。
(2’)(xC<1かつyC<1)ではなく、xC<2、かつ、yC<2の場合、サブグループR1へ分類する。
(1)xC<2、かつ、yC<2の場合、サブグループR0へ分類する。
(2)(xC<2かつyC<2)でなく、xC<4、かつ、yC<4の場合、サブグループR1へ分類する。
(3)xC≧4、かつ、xC<6、かつ、yC<4の場合、サブグループR2へ分類する。
(4)xC≧6、かつ、yC<4の場合、サブグループR3へ分類する。
(5)xC<4、かつ、yC≧4、かつ、yC<6の場合、サブグループR4へ分類する。
(6)xC<4、かつ、yC≧6の場合、サブグループR5へ分類する。
(7)xC≧4、かつ、yC≧4の場合、サブグループR6へ分類する。
Y=log2TrafoSize == 2 ? yC : yC>>1
続いて、導出した変数X、Yに基づいて、処理対象の周波数成分(xC、yC)をサブグループR0〜R6へ分類処理を行う。
(2)(X=0かつY=0)でなく、X<2、かつ、Y<2の場合、サブグループR1へ分類する。
(3)X=2、かつ、Y<2の場合、サブグループR2へ分類する。
(4)X=3、かつ、Y<2の場合、サブグループR3へ分類する。
(5)X<2、かつ、Y=2の場合、サブグループR4へ分類する。
(6)X<2、かつ、Y=3の場合、サブグループR5へ分類する。
(7)X≧2、かつ、Y≧2の場合、サブグループR6へ分類する。
(2)xC<width/2、かつ、yC<width/2の場合、サブグループR1へ分類する。
(3)xC≧width/2、かつ、xC<width×3/4、かつ、yC<width/2の場合、サブグループR2へ分類する。
(4)xC≧width×3/4、かつ、yC<width/2の場合、サブグループR3へ分類する。
(5)xC<width/2、かつ、yC≧width/2、かつ、yC<width×3/4の場合、サブグループR4へ分類する。
(6)xC<width/2、かつ、yC≧width×3/4の場合、サブグループR5へ分類する。
(7)xC≧width/2、かつ、yC≧width/2の場合、サブグループR6へ分類する。
ここでwidthは、対象周波数領域の幅(4×4では4、8×8では8)である。
ctxIdx(i) = i + offsetBlk
なお、iは、サブグループRiを識別する番号を表わし、offsetBlkは、4×4成分と8×8成分のコンテキストインデックスを識別するためのオフセットであり、変換ブロックの横幅サイズの対数値を示すlog2TrafoWidthによって所定の値が設定される。よって、輝度の4×4成分の各サブグループRiのコンテキストインデックスctxIdx(i)は、図62(b)に示すように設定され、輝度の8×8成分の各サブグループRiのコンテキストインデックスctxIdx(i)は、図62(c)に示すように設定される。
ctxIdx(i) = i + offsetClr + offsetBlk
なお、iは、サブグループRiを識別する番号を表わし、offsetBlkは、4×4成分と8×8成分のコンテキストインデックスを識別するためのオフセットであり、変換ブロックの横幅サイズの対数値を示すlog2TrafoWidthに応じて所定の値が設定される。offsetClrは
、輝度と色差のコンテキストインデックスを識別するための所定のオフセットである。例えば、offsetClr=14とすれば、色差の4×4成分の各サブグループRiのコンテキストインデックスctxIdx(i)は、図63(a)に示すように設定され、色差の8×8成分の各サブグループRiのコンテキストインデックスctxIdx(i)は、図63(b)に示すように設定される。
ストインデックスを図63(a)、(b)に図示しているが、これに限定されない。offsetClrは、4×4変換ブロック〜32×32変換ブロックの輝度のコンテキスインデックスの総数であることが好ましい。
また、各変換ブロックの輝度のコンテキストインデックスctxIdxは、次の式により導出される。
(4×4成分の場合)
ctxIdx=CTX_IND_MAP[ index ]
(8×8成分の場合)
ctxIdx=CTX_IND_MAP[ index ] + sigCtxOffset
ここで、sigCtxOffsetは、4×4成分のコンテキストインデックスと8×8成分のコンテキストインデックスを識別するための所定のオフセットである。
(4×4成分の場合)
ctxIdx=CTX_IND_MAP[ index ] + SigCtxOffsetLuma
(8×8成分の場合)
ctxIdx=CTX_IND_MAP[ index ] + sigCtxOffset + SigCtxOffsetLuma
ここで、sigCtxOffsetは、4×4成分のコンテキストインデックスと8×8成分、16×4成分、4×16成分のコンテキストインデックスを識別するための所定のオフセットであり、SigCtxOffsetLumaは輝度と色差のコンテキストインデックスを識別するための所定のオフセットである。
周波数領域が所定のサイズ以下である場合の周波数分類部124aによる周波数分類処理と、位置コンテキスト導出部124bによるコンテキストインデックス導出処理の具体例3を、図64〜図65を更に参照して説明する。
また、各変換ブロックの輝度のコンテキストインデックスctxIdxは、次の式により導出される。
(4×4成分の場合)
ctxIdx=CTX_IND_MAP[ index ]
(8×8成分の場合)
ctxIdx=CTX_IND_MAP[ index ] + sigCtxOffset
ここで、sigCtxOffsetは、4×4成分のコンテキストインデックスと8×8成分のコンテキストインデックスを識別するための所定のオフセットである。
(4×4成分の場合)
ctxIdx=CTX_IND_MAP[ index ] + SigCtxOffsetLuma
(8×8成分の場合)
ctxIdx=CTX_IND_MAP[ index ] + sigCtxOffset + SigCtxOffsetLuma
ここで、sigCtxOffsetは、4×4成分のコンテキストインデックスと8×8成分、16×4成分、4×16成分のコンテキストインデックスを識別するための所定のオフセットであり、SigCtxOffsetLumaは輝度と色差のコンテキストインデックスを識別するための所定のオフセットである。
周波数領域が所定のサイズ以下である場合の周波数分類部124aによる周波数分類処理と、位置コンテキスト導出部124bによるコンテキストインデックス導出処理の具体例の具体例3では、輝度と色差の両方に関して、非ゼロ係数の発生頻度が水平方向周波数成分uと垂直方向周波数成分vとがu=vとなる境界を境にして出現頻度が対称となる特性を利用して、周波数分類部124aで分類された各サブグループに対して、コンテキストインデックスを割り当てる例について説明した。
また、各変換ブロックの輝度のコンテキストインデックスctxIdxは、次の式により導出される。
(4×4成分の場合)
ctxIdx=CTX_IND_MAP_L[ index ]
(8×8成分の場合)
ctxIdx=CTX_IND_MAP_L[ index ] + sigCtxOffset
ここで、sigCtxOffsetは、4×4成分のコンテキストインデックスと8×8成分のコンテキストインデックスを識別するための所定のオフセットである。
(4×4成分の場合)
ctxIdx=CTX_IND_MAP_C[ index ] + SigCtxOffsetLuma
(8×8成分の場合)
ctxIdx=CTX_IND_MAP_C[ index ] + sigCtxOffset + SigCtxOffsetLuma
ここで、sigCtxOffsetは、4×4成分のコンテキストインデックスと8×8成分のコンテキストインデックスを識別するための所定のオフセットであり、SigCtxOffsetLumaは輝度と色差のコンテキストインデックスを識別するための所定のオフセットである。
具体例2〜具体例4では、4×4変換ブロックと8×8変換ブロックにおける周波数成分の分類処理を共通化する場合について説明したが、分類処理はこれに限定されない。例えば、図60(b)の8×8変換ブロックの領域R0において、DC成分をさらに別のサブグループR7として分類してもよい。すなわち、4×4成分のサイズを有する周波数領域の分割パターンと、8×8成分のサイズを有する周波数領域の分割パターンとが、DC成分を除く周波数領域において、互いに相似となるように周波数領域をサブ領域(サブグループ)へ分割してもよい。
(1)xC=0、かつ、yC=0の場合、サブグループR0へ分類する。
(2)(xC=0かつyC=0)でなく、xC<2、かつ、yC<2の場合、サブグループR1へ分類する。
(3)xC=2、かつ、yC<2の場合、サブグループR2へ分類する。
(4)xC=3、かつ、yC<2の場合、サブグループR3へ分類する。
(5)xC<2、かつ、yC=2の場合、サブグループR4へ分類する。
(6)xC<2、かつ、yC=3の場合、サブグループR5へ分類する。
(7)xC≧2、かつ、yC≧2の場合、サブグループR6へ分類する。
上記(1)及び(2)は下記(1’)及び(2’)によっても処理することができる。
(2’)(xC<1かつyC<1)ではなく、xC<2、かつ、yC<2の場合、サブグループR1へ分類する。
(1)xC=0、かつ、yC=0の場合、サブグループR7へ分類する。
(2)(xC=0かつyC=0)でなく、xC<2、かつ、yC<2の場合、サブグループR0へ分類する。
(3)(xC<2かつyC<2)でなく、xC<4、かつ、yC<4の場合、サブグループR1へ分類する。
(4)xC≧4、かつ、xC<6、かつ、yC<4の場合、サブグループR2へ分類する。
(5)xC≧6、かつ、yC<4の場合、サブグループR3へ分類する。
(6)xC<4、かつ、yC≧4、かつ、yC<6の場合、サブグループR4へ分類する。
(7)xC<4、かつ、yC≧6の場合、サブグループR5へ分類する。
(8)xC≧4、かつ、yC≧4の場合、サブグループR6へ分類する。
まず、周波数分類部124aは、次に示す式により、処理対象の周波数成分の位置(xC,yC)と、変換ブロックのサイズを示すlog2TrafoSizeに基づいて、変数X,Yを算出する。
Y=log2TrafoSize == 2 ? yC : yC>>1
続いて、導出した変数X、Yに基づいて、処理対象の周波数成分(xC、yC)をサブグループR0〜R6へ分類処理を行う。
(2)(X=0かつY=0)でなく、X<2、かつ、Y<2の場合、サブグループR1へ分類する。
(3)X=2、かつ、Y<2の場合、サブグループR2へ分類する。
(4)X=3、かつ、Y<2の場合、サブグループR3へ分類する。
(5)X<2、かつ、Y=2の場合、サブグループR4へ分類する。
(6)X<2、かつ、Y=3の場合、サブグループR5へ分類する。
(7)X≧2、かつ、Y≧2の場合、サブグループR6へ分類する。
(2)xC<width/2、かつ、yC<width/2の場合、サブグループR1へ分類する。
(3)xC≧width/2、かつ、xC<width×3/4、かつ、yC<width/2の場合、サブグループR2へ分類する。
(4)xC≧width×3/4、かつ、yC<width/2の場合、サブグループR3へ分類する。
(5)xC<width/2、かつ、yC≧width/2、かつ、yC<width×3/4の場合、サブグループR4へ分類する。
(6)xC<width/2、かつ、yC≧width×3/4の場合、サブグループR5へ分類する。
(7)xC≧width/2、かつ、yC≧width/2の場合、サブグループR6へ分類する。
ここでwidthは、対象周波数領域の幅(4×4では4、8×8では8)である。
ctxIdx(i) = i + offsetBlk
なお、iは、サブグループRiを識別する番号を表わし、offsetBlkは、4×4成分と8×8成分のコンテキストインデックスを識別するためのオフセットであり、変換ブロックの横幅サイズの対数値を示すlog2TrafoWidthによって所定の値が設定される。
ctxIdx(i) = i + offsetClr + offsetBlk
なお、iは、サブグループRiを識別する番号を表わし、offsetBlkは、4×4成分と8×8成分のコンテキストインデックスを識別するためのオフセットであり、変換ブロックの横幅サイズの対数値を示すlog2TrafoWidthに応じて所定の値が設定される。offsetClrは、輝度と色差のコンテキストインデックスを識別するための所定のオフセットである。ここで、offsetClr=20とした場合に、色差に関して、上記式により導出される4×4成分の各サブ領域Riに対応するコンテキストインデックスctxIdx(i)を図88(c)に示し、8×8成分の各サブ領域Riに対応するコンテキストインデックスctxIdx(i)を図88(d)に示す。なお、説明上、輝度と色差のコンテキストインデックスを識別するためのオフセットoffsetClrをoffsetClr=20として、色差のコンテキストインデックスを図88(c)、(d)に図示しているが、これに限定されない。offsetClrは、4×4変換ブロック〜32×32変換ブロックの輝度のコンテキスインデックスの総数であることが好ましい。
処理対象の周波数成分(xC,yC)が属するサブブロック(4×4の場合は1×1サブブロック)の位置(X,Y)に対応するインデックス値indexを、次の式により算出する。
ただし、 X=xC, Y=yCである。続いて、求めたインデックス値indexとルックアップテーブルCTX_IND_MAP[ index ]からコンテキストインデックスctxIdxを次の式により導出する。
なお、色差の場合は、上記の式により算出したコンテキストインデックスctxIdxと所定のオフセットoffsetClrを用いて、次の式によりコンテキストインデックスを導出する。
なお、offsetClrは、輝度と色差のコンテキストインデックスを識別するための所定のオフセットである。
処理対象の周波数成分(xC,yC)が属するサブブロック(8×8の場合は2×2サブブロック)の位置(X,Y)、及びDC成分に対応するインデックス値indexは、次の式により算出される。
ただし、X=xC>>1, Y=yC>>1である。続いて、求めたインデックス値indexとルックアップテーブルCTX_IND_MAP[ index ]と、4×4成分と8×8成分のコンテキストインデックスを識別するための所定のオフセットoffsetBlkを用いて、コンテキストインデックスctxIdxを次の式により導出する。
ここで、4×4成分の輝度のコンテキストインデックスの総数は7であるため、offsetBlk=7となる。なお、色差の場合は、上記の式により算出したコンテキストインデックスctxIdxと所定のオフセットoffsetClrを用いて、次の式によりコンテキストインデックスを導出する。
なお、offsetClrは、輝度と色差のコンテキストインデックスを識別するための所定のオフセットである。
したがって、図70(a)、(b)に示す例において、輝度に関して15個のコンテキストインデックスが導出され、色差に関して15個のコンテキストインデックスが導出され、15+15=30個のコンテキストインデックスが導出される。これは、図30(a)〜(c)に示した比較例において導出される37個よりも7個少ない。
具体例2では、変換ブロックサイズが4×4ブロック(4×4成分)、8×8ブロック(8×8成分)に関して、処理対象の周波数成分をサブグループへ分類処理を共通化し、コンテキストインデックス導出処理を簡略化する場合について説明した。ここでは、さらに横幅16、縦幅4の16×4ブロック(16×4成分)、及び横幅4、縦幅16の4×16ブロック(4×16成分)に適用する場合について説明する。
(16×4成分の場合)
(1)0≦xC<4、かつ、yC=0の場合、サブグループA0へ分類する。
(2)(0≦xC<4、かつ、yC=0)でなく、0≦xC<8、かつ、0≦yC<2の場合、サブグループA1へ分類する。
(3)8≦xC<12、かつ、0≦yC<2の場合、サブグループA2へ分類する。
(4)12≦xC<16、かつ、0≦yC<2の場合、サブグループA3へ分類する。
(5)0≦xC<8、かつ、yC=2の場合、サブグループA4へ分類する。
(6)0≦xC<8、かつ、yC=3の場合、サブグループA5へ分類する。
(7)8≦xC<16、かつ、2≦yC<4の場合、サブグループA6へ分類する。
(4×16成分の場合)
(1)xC=0、かつ、0≦yC<4の場合、サブグループA0へ分類する。
(2)(xC=0、かつ、0≦yC<4)でなく、0≦xC<2、かつ、0≦yC<8の場合、サブグループA1へ分類する。
(3)xC=2、かつ、0≦yC<8の場合、サブグループA2へ分類する。
(4)xC=3、かつ、0≦yC<8の場合、サブグループA3へ分類する。
(5)0≦xC<2、かつ、8≦yC<12の場合、サブグループA4へ分類する。
(6)0≦xC<2、かつ、12≦yC<16の場合、サブグループA5へ分類する。
(7)2≦xC<4、かつ、8≦yC<16の場合、サブグループA6へ分類する。
Y=log2TrafoHeight==2 ? yC : yC>>2
続いて、導出したサブブロック位置(X,Y)に基づいて、処理対象の周波数成分(xC,yC)をサブグループA0〜A6へ分類処理を行う。
(2)(X=0かつY=0)でなく、X<2、かつ、Y<2の場合、サブグループA1へ分類する。
(3)X=2、かつ、Y<2の場合、サブグループA2へ分類する。
(4)X=3、かつ、Y<2の場合、サブグループA3へ分類する。
(5)X<2、かつ、Y=2の場合、サブグループA4へ分類する。
(6)X<2、かつ、Y=3の場合、サブグループA5へ分類する。
(7)X≧2、かつ、Y≧2の場合、サブグループA6へ分類する。
る共通処理は、次のように処理することもできる。
(2)xC<width/2、かつ、yC<height/2の場合、サブグループA1へ分類する。
(3)xC≧width/2、かつ、xC<width×3/4、かつ、yC<height/2の場合、サブグループA2へ分類する。
(4)xC≧width×3/4、かつ、yC<height/2の場合、サブグループA3へ分類する。
(5)xC<width/2、かつ、yC≧height/2、かつ、yC<height×3/4の場合、サブグループA4へ分類する。
(6)xC<width/2、かつ、yC≧height×3/4の場合、サブグループA5へ分類する。
(7)xC≧width/2、かつ、yC≧height/2の場合、サブグループA6へ分類する。
また、4×16変換ブロックの場合、サブブロック(4×1サブブロック)の位置(X、Y)から定まるインデックス値indexは、サブブロックを縦方向に走査した順番(開始値は0)を表わし、次の式により算出される。
また、各変換ブロックの輝度のコンテキストインデックスctxIdxは、次の式により導出される。
(4×4成分の場合)
ctxIdx=CTX_IND_MAP [ index ]
(8×8成分、16×4成分、4×16成分の場合)
ctxIdx=CTX_IND_MAP [ index ] + sigCtxOffset
ここで、sigCtxOffsetは、4×4成分のコンテキストインデックスと8×8成分、16×4成分、4×16成分のコンテキストインデックスを識別するための所定のオフセットである。
(4×4成分の場合)
ctxIdx=CTX_IND_MAP [ index ] + SigCtxOffsetLuma
(8×8成分、16×4成分、4×16成分の場合)
ctxIdx=CTX_IND_MAP [ index ] + sigCtxOffset + SigCtxOffsetLuma
ここで、sigCtxOffsetは、4×4成分のコンテキストインデックスと8×8成分、16×4成分、4×16成分のコンテキストインデックスを識別するための所定のオフセットであり、SigCtxOffsetLumaは輝度と色差のコンテキストインデックスを識別するための所定のオフセットである。
また、4×16変換ブロックの場合、サブブロック(4×1サブブロック)の位置(X、Y)から定まるインデックス値indexは、サブブロックを縦方向に走査した順番(開始値は0)を表わし、次の式により算出される。
また、各変換ブロックの輝度のコンテキストインデックスctxIdxは、次の式により導出される。
(4×4成分の場合)
ctxIdx=CTX_IND_MAP_L[ index ]
(8×8成分、16×4成分、4×16成分の場合)
ctxIdx=CTX_IND_MAP_L[ index ] + sigCtxOffset
ここで、sigCtxOffsetは、4×4成分のコンテキストインデックスと8×8成分、16×4成分、4×16成分のコンテキストインデックスを識別するための所定のオフセットである。
(4×4成分の場合)
ctxIdx=CTX_IND_MAP_C[ index ] + SigCtxOffsetLuma
(8×8成分、16×4成分、4×16成分の場合)
ctxIdx=CTX_IND_MAP_C[ index ] + sigCtxOffset + SigCtxOffsetLuma
ここで、sigCtxOffsetは、4×4成分のコンテキストインデックスと8×8成分、16×4成分、4×16成分のコンテキストインデックスを識別するための所定のオフセットであり、SigCtxOffsetLumaは輝度と色差のコンテキストインデックスを識別するための所定のオフセットである。
周波数領域が所定のサイズ以下である場合の周波数分類部124aによる周波数分類処理と、位置コンテキスト導出部124bによるコンテキストインデックス導出処理の具体例7では、4×4成分のサイズを有する周波数領域の分割パターンと、8×8成分のサイズを有する周波数領域の分割パターンが互いに相似となるように周波数領域をサブ領域(サブグループ)へ分割し、各サブ領域に個別のコンテキストインデックスを導出する場合について、図85〜図87を用いて説明する。
(1)xC<2、かつ、yC<2を満たす場合、次の(1−a)〜(1−d)の条件によりサブ領域R0〜R3へ分類する。
(1−a)xC<1、かつ、yC<1の場合、サブ領域R0へ分類する。
(1−b)xC≧1、かつ、yC<1の場合、サブ領域R1へ分類する。
(1−c)xC<1、かつ、yC≧1の場合、サブ領域R2へ分類する。
(1−d)xC≧1、かつ、yC≧1の場合、サブ領域R3へ分類する。
(2)xC≧2、かつ、yC<2の場合、次の(2−a)〜(2−b)の条件により、サブ領域R4、またはR5へ分類する。
(2−a)xC<3の場合、サブ領域R4へ分類する。
(2−b)xC≧3の場合、サブ領域R5へ分類する。
(3)xC<2、かつ、yC≧2の場合、次の(3−a)〜(3−b)の条件により、サブ領域R6、またはR7へ分類する。
(3−a)yC<3の場合、サブ領域R6へ分類する。
(3−b)yC≧3の場合、サブ領域R7へ分類する。
(4)xC≧2、かつ、yC≧2の場合、サブ領域R8へ分類する。
(1)xC<4、かつ、yC<4を満たす場合、次の(1−a)〜(1−d)の条件によりサブ領域R0〜R3へ分類する。
(1−a)xC<2、かつ、yC<2の場合、サブ領域R0へ分類する。
(1−b)xC≧2、かつ、yC<2の場合、サブ領域R1へ分類する。
(1−c)xC<2、かつ、yC≧2の場合、サブ領域R2へ分類する。
(1−d)xC≧2、かつ、yC≧2の場合、サブ領域R3へ分類する。
(2)xC≧4、かつ、yC<4の場合、次の(2−a)〜(2−b)の条件により、サブ領域R4、またはR5へ分類する。
(2−a)xC<6の場合、サブ領域R4へ分類する。
(2−b)xC≧6の場合、サブ領域R5へ分類する。
(3)xC<4、かつ、yC≧4の場合、次の(3−a)〜(3−b)の条件により、サブ領域R6、またはR7へ分類する。
(3−a)yC<6の場合、サブ領域R6へ分類する。
(3−b)yC≧6の場合、サブ領域R7へ分類する。
(4)xC≧4、かつ、yC≧4の場合、サブ領域R8へ分類する。
Y=log2TrafoHeight==2 ? yC : yC>>1
続いて、導出したサブブロック位置(X,Y)に基づいて、処理対象の周波数成分(xC,yC)をサブ領域R0〜R8へ分類処理を行う。
(1−a)X<1、かつ、Y<1の場合、サブ領域R0へ分類する。
(1−b)X≧1、かつ、Y<1の場合、サブ領域R1へ分類する。
(1−c)X<1、かつ、Y≧1の場合、サブ領域R2へ分類する。
(1−d)X≧1、かつ、Y≧1の場合、サブ領域R3へ分類する。
(2)X≧2、かつ、Y<2の場合、次の(2−a)〜(2−b)の条件により、サブ領域R4、またはR5へ分類する。
(2−a)X<3の場合、サブ領域R4へ分類する。
(2−b)X≧3の場合、サブ領域R5へ分類する。
(3)X<2、かつ、Y≧2の場合、次の(3−a)〜(3−b)の条件により、サブ領域R6、またはR7へ分類する。
(3−a)Y<3の場合、サブ領域R6へ分類する。
(3−b)Y≧3の場合、サブ領域R7へ分類する。
(4)X≧2、かつ、Y≧2の場合、サブ領域R8へ分類する。
また、上記4×4成分と8×8成分をサブ領域へ分類する共通処理は、次のように処理することもできる。
(1−a)xC<width/4、かつ、yC<height/4の場合、サブ領域R0へ分類する。
(1−b)xC≧width/4、かつ、yC<height/4の場合、サブ領域R1へ分類する。
(1−c)xC<width/4、かつ、yC≧height/4の場合、サブ領域R2へ分類する。
(1−d)xC≧width/4、かつ、yC≧height/4の場合、サブ領域R3へ分類する。
(2)xC≧width/2、かつ、yC<height/2の場合、次の(2−a)〜(2−b)の条件により、サブ領域R4、またはR5へ分類する。
(2−a)xC<width×3/4の場合、サブ領域R4へ分類する。
(2−b)xC≧width×3/4の場合、サブ領域R5へ分類する。
(3)xC<width/2、かつ、yC≧height/2の場合、次の(3−a)〜(3−b)の条件により、サブ領域R6、またはR7へ分類する。
(3−a)yC<height×3/4の場合、サブ領域R6へ分類する。
(3−b)yC≧height×3/4の場合、サブ領域R7へ分類する。
(4)xC≧width/2、かつ、yC≧height/2の場合、サブ領域R8へ分類する。
ここでwidthは、対象周波数領域の横幅(4×4では4、8×8では8)である。またheightは、対象周波数領域の縦幅(4×4では4、8×8では8)である。
ctxIdx(i) = i + offsetBlk
なお、iは、サブ領域Riを識別する番号を表わし、offsetBlkは、4×4成分のコンテキストインデックスと8×8成分のコンテキストインデックスを識別するためのオフセットであり、変換ブロックの横幅サイズの対数値を示すlog2TrafoWidthによって所定の値が設定される。
ctxIdx(i) = i + offsetClr + offsetBlk
なお、iは、サブ領域Riを識別する番号を表わし、offsetBlkは、4×4成分のコンテキストインデックスと8×8成分のコンテキストインデックスを識別するためのオフセットであり、変換ブロックの横幅サイズの対数値を示すlog2TrafoWidthに応じて所定の値が設定される。offsetClrは、輝度と色差のコンテキストインデックスを識別するための所定のオフセットである。ここでoffsetClr=20とした場合に、色差に関して、上記式により導出される4×4成分、及び8×8成分のコンテキストインデックスを図86(c)、(d)に示す。図86(c)は、色差の4×4成分の各サブ領域Riに対応するコンテキストインデックスctxIdx(i)を示し、図86(d)は、色差の8×8成分の各サブ領域Riに対応するコンテキストインデックスctxIdx(i)を示す。なお、説明上、輝度と色差のコンテキストインデックスを識別するためのオフセットoffsetClrをoffsetClr=20として、色差のコンテキストインデックスを図86(c)、(d)に図示しているが、これに限定されない。offsetClrは、4×4変換ブロック〜32×32変換ブロックの輝度のコンテキスインデックスの総数であることが好ましい。
Y=log2TrafoHeight==2 ? yC : yC>>1
4×4成分と8×8成分の場合、各サブブロック(4×4の場合は1×1サブブロック、8×8の場合は2×2サブブロック)の位置(X,Y)から定まるインデックス値indexは、次式により導出される。なお、インデックス値indexは、サブブロックを横方向に走査した順番(開始値は0)を表わす。
また、各サブブロックに対応する輝度のコンテキストインデックスctxIdxは、次式により導出される。
ctxIdx = CTX_IND_MAP[ index ] + offsetBlk
ここで、offsetBlkは4×4成分と8×8成分のコンテキストインデックスを識別するためのオフセットであり、変換ブロックの横幅サイズの対数値を示すlog2TrafoWidthに応じて所定の値が設定される。
ctxIdx = CTX_IND_MAP[ index ] + offsetBlk
ctxIdx = ctxIdx + offsetClr
ここで、offsetBlkは4×4成分と8×8成分のコンテキストインデックスを識別するためのオフセットであり、変換ブロックの横幅サイズの対数値を示すlog2TrafoWidthに応じて所定の値が設定される。また、offsetClrは輝度と色差のコンテキストインデックスを識別するための所定のオフセットである。
周波数領域が所定のサイズ以下である場合の周波数分類部124aによる周波数分類処理と、位置コンテキスト導出部124bによるコンテキストインデックス導出処理の具体例8では、最小の変換ブロックサイズであるM×M成分(例えば4×4)のサイズを有する周波数領域の分割パターンが輝度と色差とで共通となるように、周波数領域をサブグループへ分割し、各サブグループに対応するコンテキストインデックスを導出する場合について、図90〜図91、図30、図60、図62、図63を用いて説明する。
(1−a)xC<width/4、かつ、yC<height/4の場合、サブグループR0へ分類する。
(1−b)xC≧width/4、または、yC≧height/4の場合、サブグループR1へ分類する。
(2)xC≧width/2、かつ、yC<height/2の場合、次の(2−a)〜(2−b)の条件により、サブグループR2、またはR3へ分類する。
(2−a)xC<width×3/4の場合、サブグループR2へ分類する。
(2−b)xC≧width×3/4の場合、サブグループR3へ分類する。
(3)xC<width/2、かつ、yC≧height/2の場合、次の(3−a)〜(3−b)の条件により、サブグループR4、またはR5へ分類する。
(3−a)yC<height×3/4の場合、サブグループR4へ分類する。
(3−b)yC≧height×3/4の場合、サブグループR5へ分類する。
(4)xC≧width/2、かつ、yC≧height/2の場合、サブグループR6へ分類する。
ここでwidthは、対象周波数領域の横幅(4×4では4)である。またheightは、対象周波数領域の縦幅(4×4では4)である。上記分類処理を4×4成分に適用した例は、図60(a)に示す通りである。
なお、iは、サブグループRiを識別する番号を表わし、offsetClrは、輝度と色差のコンテキストインデックスを識別するためのオフセットであり、4×4変換ブロック〜32×32変換ブロックの輝度のコンテキスインデックスの総数であることが好ましい。また、cIdxは、輝度と色差を識別するための変数であり、輝度の場合、cIdx=0、色差の場合、cIdx=1となる。
続いて、コンテキストインデックスctxIdxは、次の式により導出される。
また、色差の場合は、上記の式により導出したコンテキストインデックスctxIdxへ所定のオフセットoffsetClrを加算し、コンテキストインデックスを導出する。すなわち、
ctxIdx = ctxIdx + offsetClr
図90(b)は、図90(a)に示す疑似コードにおけるCTX_IND_MAP[index]の一例を示す図であり、図62(b)は、図90(a)に示す疑似コードに対して、図90(b)のCTX_IND_MAP [index]を用いた場合に得られる、4×4成分の輝度に関する各コンテキストインデックスの値を示している。また、図63(a)は、図90(a)に示す疑似コードに対して、図90(b)のCTX_IND_MAP[index]を用いた場合に得られる、4×4成分の色差に関する各コンテキストインデックスを示している。なお、図62(b)に示す例において、最も高周波成分側に位置する周波数成分(図62(b)において網掛けが付された周波数成分)に対しては、コンテキストインデックスは導出されない(図63(a)においても同様)。なお、説明上、輝度と色差のコンテキストインデックスを識別するためのオフセットoffsetClrをoffsetClr=14として、色差のコンテキストインデックスを図63(a)に図示しているが、これに限定されない。offsetClrは、4×4変換ブロック〜32×32変換ブロックの輝度のコンテキスインデックスの総数であることが好ましい。
周波数領域が所定のサイズ以下である場合の周波数分類部124aによる周波数分類処理と、位置コンテキスト導出部124bによるコンテキストインデックス導出処理の具体例9では、最小の変換ブロックサイズであるM×M成分(例えば4×4)のサイズを有する周波数領域の分割パターンが、輝度と色差とで共通となるように周波数領域をサブグループへ分割し、各サブグループに対応するコンテキストインデックスを導出する場合について、図90〜91、図85、図86を用いて説明する。
(1−a)xC<width/4、かつ、yC<height/4の場合、サブグループR0へ分類する。
(1−b)xC≧width/4、かつ、yC<height/4の場合、サブグループR1へ分類する。
(1−c)xC<width/4、かつ、yC≧height/4の場合、サブグループR2へ分類する。
(1−d)xC≧width/4、かつ、yC≧height/4の場合、サブグループR3へ分類する。
(2)xC≧width/2、かつ、yC<height/2の場合、次の(2−a)〜(2−b)の条件により、サブグループR4、またはR5へ分類する。
(2−a)xC<width×3/4の場合、サブグループR4へ分類する。
(2−b)xC≧width×3/4の場合、サブグループR5へ分類する。
(3)xC<width/2、かつ、yC≧height/2の場合、次の(3−a)〜(3−b)の条件により、サブグループR6、またはR7へ分類する。
(3−a)yC<height×3/4の場合、サブグループR6へ分類する。
(3−b)yC≧height×3/4の場合、サブグループR7へ分類する。
(4)xC≧width/2、かつ、yC≧height/2の場合、サブグループR8へ分類する。
ここでwidthは、対象周波数領域の横幅(4×4では4)である。またheightは、対象周波数領域の縦幅(4×4では4)である。
なお、iは、サブグループRiを識別する番号を表わし、offsetClrは、輝度と色差のコンテキストインデックスを識別するためのオフセットであり、4×4変換ブロック〜32×32変換ブロックの輝度のコンテキスインデックスの総数であることが好ましい。また、cIdxは、輝度と色差を識別するための変数であり、輝度の場合、cIdx=0、色差の場合、cIdx=1となる。
続いて、コンテキストインデックスctxIdxは、次の式により導出される。
また、色差の場合は、上記の式により算出したコンテキストインデックスctxIdxに所定のオフセットoffsetClrを加算し、コンテキストインデックスを導出する。すなわち、
ctxIdx = ctxIdx + offsetClr
図90(c)は、図90(a)に示す疑似コードにおけるCTX_IND_MAP[index]の一例を示す図であり、図86(a)は、図90(a)に示す疑似コードに対して、図90(c)のCTX_IND_MAP [index]を用いた場合に得られる、4×4成分の輝度に関する各コンテキストインデックスの値を示している。また、図86(c)は、図90(a)に示す疑似コードに図90(c)のCTX_IND_MAP[index]を用いた場合に得られる、4×4成分の色差に関する各コンテキストインデックスを示している。なお、図86(a)に示す例において、最も高周波成分側に位置する周波数成分(図86(a)において網掛けが付された周波数成分)に対しては、コンテキストインデックスは導出されない(図86(c)においても同様)。なお、説明上、輝度と色差のコンテキストインデックスを識別するためのオフセットoffsetClrをoffsetClr=20として、色差のコンテキストインデックスを図86(c)に図示しているが、これに限定されない。offsetClrは、4×4変換ブロック〜32×32変換ブロックの輝度のコンテキスインデックスの総数であることが好ましい。
周波数領域が所定のサイズ以下である場合の周波数分類部124aによる周波数分類処理と、位置コンテキスト導出部124bによるコンテキストインデックス導出処理の具体例9〜10では、最小の変換ブロックサイズであるM×M成分(例えば4×4)のサイズを有する周波数領域の分割パターンが、輝度と色差とで共通となるように周波数領域をサブグループへ分割し、各サブグループに個別のコンテキストインデックスを導出する例、あるいは、処理対象の周波数周成分の位置(xC、yC)とルックアップテーブルを用いて、処理対象の周波数成分(xC、yC)のコンテキストインデックスctxIdxを導出する例について説明した。以下では、ルックアップテーブルを用いずに、処理対象の周波数成分の位置(xC、yC)を用いた演算式により、コンテキストインデックスを導出する例について説明する。
なお、色差の場合は、式(eq.e1)により導出されたctxIdxに、輝度と色差のコンテキストインデックスを識別するための所定のオフセットoffsetClrを加算する。すなわち、
ctxIdx = ctxIdx + offsetClr
なお、offsetClrは、4×4変換ブロック〜32×32変換ブロックの輝度のコンテキスインデックスの総数であることが好ましい。
ここで、式(eq.e2)において、a = 1、 b = 1とすれば、4×4成分に関して、図92(b)に示す輝度のコンテキストインデックスが導出される。
ここで、式(eq.e3)において、th = 3、d = 4とすれば、4×4成分に関して、図92(d)に示す輝度のコンテキストインデックスが導出される。
式(eq.f1)を4×4成分に適用した場合に導出される、輝度のコンテキストインデックスの例を図93(a)に示す。図93(a)に示すように、周波数領域は、DCから高周波成分に向かって、逆L字型のサブ領域に分割されると共に、各サブ領域に対応するコンテキストインデックスctxIdxが導出されている。このように、DCから高周波成分に向かって逆L字型に分割するパターンは、非ゼロ係数の発生頻度の分布形状の良い近似であり、非ゼロ係数の発生頻度が同程度になる周波数成分に対して共通のコンテキストインデックスを割り付けることができる。
ここで、式(eq.f2)において、th = 3、a = 4とすれば、4×4成分に関して、図93(b)に示す輝度のコンテキストインデックスが導出される。
ここで、式(eq.f3)において、th = 1、a= 4とすれば、4×4成分に関して、図93(d)に示す輝度のコンテキストインデックスが導出される。
a : yC < (height/2) ? max ( xC, yC ) : max ( xC, yC ) + b
・・・(eq.f4)
ここで、式(eq.f4)において、th = 1、a = 6、b = 2、height = 4とすれば、4×4成分に関して、図93(e)に示す輝度のコンテキストインデックスが導出される。図93(e)に示す4×4成分の分割パターンは、図60(a)に示す4×4成分の周波数成分の分割パターンを表現することができる。
Y = yC >> (log2TrafoHeight-2)
ctxIdx = ( (X>>1) + (Y>>1) > th ) ?
a : ( Y < (1<<(log2TrafoHeight-2))) ? max ( X, Y ) : max ( X, Y ) + b ・・・(eq.f5)
なお、式(eq.f5)において、log2TrafoWidthは変換ブロックの横幅の対数値(4×4の場合は2)を表わし、log2TrafoHeightは変換ブロックの縦幅の対数値(4×4の場合は2)を表わす。4×4成分に関して、図93(e)に示す輝度のコンテキストインデックスを導出する場合は、式(eq.f5)において、th = 1、a = 6、b = 2とすればよい。なお、8×8成分へ適用する場合は、式(eq.f5)によって導出したコンテキストインデックスctxIdxに、4×4成分と8×8成分のコンテキストインデックスを識別するための所定のオフセットoffsetBlkを加算する。すなわち、
ctxIdx = ctxIdx + offsetBlk
ここで、offsetBlk=7とすれば、輝度に関して、図62(b)に示す8×8成分の周波数成分の分割パターンとコンテキストインデックスとを表現することができる。
a : ( xC < width/2 ) ? max ( xC, yC ) : max ( xC, yC ) + b
・・・(eq.f6)
ここで、式(eq.f6)において、th = 1、a = 6、b = 2、width = 4とすれば、図93(f)に示すコンテキストインデックスが導出される。図93(f)に示す4×4成分の分割パターンは、図60(a)に示す4×4成分の周波数成分の分割パターンを表現することができる。
Y = yC >> (log2TrafoHeight-2)
ctxIdx = ( (X>>1) + (Y>>1) > th ) ?
a : ( X < (1<<(log2TrafoWidth-1)) ) ? max ( X, Y ) : max ( X, Y ) + b ・・・(eq.f7)
なお、式(eq.f7)において、log2TrafoWidthは変換ブロックの横幅の対数値(4×4の場合は2)を表わし、log2TrafoHeightは変換ブロックの縦幅の対数値(4×4の場合は2)を表わす。4×4成分に関して、図93(f)に示すコンテキストインデックスを導出する場合は、式(eq.f7)において、th = 1、a = 6、b = 2とすればよい。なお、8×8成分へ適用する場合は、式(eq.f7)によって導出したコンテキストインデックスctxIdxに、4×4成分と8×8成分のコンテキストインデックスを識別するための所定のオフセットoffsetBlkを加算する。
ここで、offsetBlk=7とすれば、図60(b)に示す8×8成分の周波数成分の分割パターンを表現することができる。
ここで、式(eq.g1)において、a = 1、b = 1、c = 3とすれば、4×4成分に関して、図94(a)に示す輝度のコンテキストインデックスが導出される。なお、式(eq.g1)において、(A > B)は、AがBよりも大きい場合に、1を返し、それ以外の場合は0を返す演算を表わす。
( xC + yC > th ) ? d : ( ( xC + yC + a ) >> b ) + ( ( yC > xC ) * c )・・・(eq.g2)
ここで、式(eq.g2)において、th = 3、a = 1、b = 1、c = 3、d = 3とすれば、4×4成分に関して、図94(b)に示す輝度のコンテキストインデックスが導出される。
4×4成分に関して、式(eq.g3)を適用した場合、図94(d)に示すコンテキストインデックスが導出される。
ここで、式(eq.h1)において、a = 1、b = 1、c = 3とすれば、4×4成分に関して、図95(a)に示す輝度のコンテキストインデックスが導出される。
ここで、式(eq.h2)において、th = 3、a = 1、b = 1、c = 3、d = 3とすれば、4×4成分に関して、図95(b)に示す輝度のコンテキストインデックスが導出される。
4×4成分に関して、式(eq.g3)を適用した場合、図95(d)に示すコンテキストインデックスが導出される。
本実施形態に係る係数有無フラグ復号部は、上述の構成に限られるものではない。以下では、第1の変形例に係る係数有無フラグ復号部124’について、図39〜図42を参照して説明する。
・係数有無フラグ復号部124’は、サブブロック周辺参照コンテキスト導出部124fを備えている。
サブブロック周辺参照コンテキスト導出部124fは、処理対象のサブブロックに含まれる各周波数成分に割り付けるコンテキストインデックスを、当該処理対象のサブブロックに隣接するサブブロックであって、サブブロック係数有無フラグsignificant_coeffgroup_flagが復号済みのサブブロックを参照して導出する。また、サブブロック周辺参照コンテキスト導出部124fは、処理対象のサブブロックに含まれる各周波数成分に対して、共通のコンテキストインデックスを割り付ける。
+ (significant_coeffgroup_flag[xCG][yCG+1]!=0) ・・・(eq.B1)
ctxIdx = offset + ctxCnt
ここで、(eq.B1)における各項は、()内の比較が真である場合に1をとり、()内の比較が偽である場合に0をとるものとする。また、参照する隣接サブブロック(xCG+1、yCG)、または隣接するサブブロック(xCG、yCG+1)の何れかが変換ブロックの外側に位置する場合、該当する位置のサブブロック係数有無フラグの値を0として扱う。
・ctxIdx=1 ・・・ サブブロック(xCG+1、yCG)及びサブブロック(xCG、yCG+1)の何れか一方に非ゼロ変換係数が存在する。
・ctxIdx=2 ・・・ サブブロック(xCG+1、yCG)及びサブブロック(xCG、yCG+1)の双方にに非ゼロ変換係数が存在する。
以下では、係数有無フラグ復号部の第2の変形例について、図43を参照して説明する。
以下では、図96を参照して、係数有無フラグ復号部124の第3の変形例について説明する。以下に説明する係数有無フラグ復号部124の第3の変形例は、係数有無フラグのコンテキストインデックス導出に関して、
(1)処理対象のTUサイズが所定サイズ以下の場合は、処理対象の周波数成分の位置を表わすxCとyCを用いた演算式によって、周波数領域を複数のサブ領域に分割すると共に、各サブ領域に対応する輝度及び色差のコンテキストインデックスを導出する、
(2)処理対象のTUサイズが所定サイズより大きい場合は、処理対象の周波数成分の位置が、低周波数成分および中周波数成分に属するとき、処理対象の周辺に位置する非ゼロ係数の個数に基づいてコンテキストインデックスを導出し、高周波数成分に属するときは固定のコンテキストインデックスを割り当てる、という特徴を有する。
(導出方法制御部124x)
導出方法制御部124xには、処理対象の周波数成分の位置(xC,yC)と、変換ブロックの対数値(log2TrafoWidth、log2TrafoHeight)が入力される。対数値のサイズから、周波数領域の幅widthと高さheightを(1<<log2TrafoWidth)と(1<<log2TrafoHeight)により算出する。なお、対数値のサイズではなく、周波数領域の幅と高さを直接入力しても良い。
(2)xC+yC>=THLo、かつ、xCG+yCG<THHiを満たす周波数成分を部分領域R1に分類する。
(3)xCG+yCG>=THHiを満たす周波数成分を部分領域R2に分類する。
ここで、閾値THloは、例えば、以下の式(eq.A2-1)によって設定することが好適である。また、閾値THhiは、例えば、以下の式(eq.A2-2)によって設定することが好適である。
THhi = (3 * max(width, height) >> 4 )・・・(eq.A2-2)
なお、発明者らは、周波数領域を部分領域R0〜R2へ分割し、部分領域R0とR1に関して、周辺参照によりコンテキストインデックスを導出する場合、上記閾値(eq.A2-1)の設定が符号化効率の観点から好適であることを実験により確認している。
(2)xCG+yCG>=THLo、かつ、xCG+yCG<THHiを満たす周波数成分を部分領域R1に分類する。
(3)xCG+yCG>=THHiを満たす周波数成分を部分領域R2に分類する。
ここで、閾値THloは、THlo=1とするのが好ましい。閾値THhiは、式(eq.A2-2)と同様である。
位置コンテキスト導出部124bは、対象周波数成分に対するコンテキストインデックスctxIdxを、周波数領域における当該対象周波数成分の位置に基づいて導出する。なお、周波数成分の位置によらず、固定値となるコンテキストインデックスctxIdxを導出する場合も位置コンテキスト導出部124bで行われる。
なお、上記式(eq.A2-3)において、sigCtxOffsetR2は、部分領域R2に属する周波数成分に関するコンテキストインデックスの開始点を表す所定の定数である。
位置コンテキスト導出部124bは、割り当てられた相対コンテキストインデックスの値ctxGrpIdxと、TUサイズ毎の所定のオフセット値baseCtxによってコンテキストインデックスctxIdxを導出する。なお、8×8TUの場合は、対象周波数成分の位置(xC,yC)が属する2×2サブブロックの位置(xC>>1, yC>>1)に置き換えて解釈するものとする。すなわち、
X = log2TrafoWidth==2 ? xC : xC>>1
Y = log2TrafoHeigt==2 ? yC : yC>>1
ctxGrpIdx = CTX_GRP_TBL [ X ][ Y ] ・・・(eq.A2-4)
ctxIdx = ctxGrpIdx + baseCtx ・・・(eq.A2-5)
ここで、変数baseCtxは、各TUのコンテキストインデックスの開始点を表わす。
なお、相対コンテキストインデックスの値ctxGrpIdxの導出は、図100(a)に示す係数位置(X,Y)と相対コンテキストインデックスの対応表(ルックアップテーブルCTX_GRP_TBL[X][Y])を用いて導出する式(eq.A2-4)に限定されされない、以下のような論理的な導出方法を用いても良い。この場合、位置コンテキスト導出部124bは、係数位置(X,Y)の以下に示す各ビットx0,x1,y0,y1の値を用いて導出する。
x1 = (X & 2 )>>1 ・・・ Xの上位1ビット(下位2ビット目)
y0 = (Y & 1 ) ・・・ Yの下位1ビット(下位1ビット目)
y1 = (Y & 2 )>>1 ・・・ Yの上位1ビット(下位2ビット目)
以下、x0,x1,y0,y1による相対コンテキストインデックスctxGrpIdxの導出方法を説明する。
・相対コンテキストインデックスの値ctxGrpIdxの上位1ビット目(下位3ビット目:ctxGrpIdx2)とYの上位1ビット(y1)の値が等しい。すなわち、
ctxGrpIdx2 = y1 ・・・(eq.A2-6)
・相対コンテキストインデックスの値ctxGrpIdxの上位2ビット目(下位2ビット目:ctxGrpIdx1)とXの上位1ビット(x1)の値が等しい。すなわち、
ctxGrpIdx1 = x1 ・・・(eq.A2-7)
また、図100(c)は、図100(b)に示す係数位置と相対コンテキストインデックスの対応表CTX_GRP_TBL[X][Y]の各値の下位1ビットのみを表わしたものである。図100(c)に注目すると、相対コンテキストインデックスの値ctxGrpIdxの下位1ビット目(ctxGrpIdx0)は、係数位置(X,Y)の各ビットx0,x1,y0,y1を用いて、x1の否定とy0との論理積の値と、x0とy1の否定との論理積の値、との論理和によって表わすことができる。すなわち、
ctxGrpIdx0 = ( !x1 & y0 ) | ( x0 & !y1 ) ・・・(eq.A2-8)
ここで、演算子‘ !’は、否定を表わし、演算子 ‘ & ’は、ビット単位の論理積を表わし、演算子‘ | ’は、ビット単位の論理和を表わす(以下、同様)。
なお、図100(a)に示す係数位置と相対コンテキストインデックスの対応表に示す各相対コンテキストインデックスの値の設定は、図100(a)に限定されない。例えば、図101に示すように、x1, y1, zの値を設定するビット位置を変更した6パターンの設定が可能である。なお、図101中のzを
z =( !x1 & y0 ) | ( x0 & !y1 ) ・・・(eq.A2-9)
とすれば、図100(a)に示す係数位置と対応する相対コンテキストインデックスの各値は、図101に示すパターン0により導出される。
ここで、演算子‘ ^ ’はビット単位の排他論理和を表わす(以下、同様)。
また、式(eq.A2-9)に示すzの代わりに、式(eq.A2-12)に示す論理演算により算出されるzを用いてもよい。その場合、図101のパターン0に該当する係数(X、Y)に対応するコンテキストグループの各値は、図102(c)に示すようになる。
以上のように、本処理では、図60、図100に示すコンテキストインデックス導出方法により、4×4成分と8×8成分および輝度と色差のサブグループへの分類処理を共通にすることで、符号化効率を維持したまま、コンテキストインデックス導出処理を簡略化することができる。
ctxIdx = ctxGrpIdx + baseCtx ・・・ (eq.A2-14)
本処理は、図60、図100のコンテキストインデックス導出方法に比べステップ数が大きいが、符号化効率がより高いという特徴を有する。また、DCを別にしても、0〜7の3ビットの範囲に収まる点もハードウェアで実現する上で実装を容易にすることができる。
ctxGrpIdx = (bit3<<2) | (bit2<<2) | (bit1<<1) | bit0
bit3 = (x1 & y1)
bit2 = ( x1 & !y1 ) | (!x1 & y1)
bit1 = ( !x1 & y1 ) | (!x1 & !y1 & y0 )
bit0 = (x0 & !y1) | (y0 & y1 & !x1)
以上のように、本処理では、図70に示すコンテキストインデックス導出方法により、4×4成分と8×8成分および輝度と色差のサブグループへの分類処理を共通にすることで、符号化効率を維持したまま、コンテキストインデックス導出処理を簡略化することができる。
周辺参照コンテキスト導出部124cは、復号対象の周波数成分に対するコンテキストインデックスctxIdxを、当該周波数成分の周辺の周波数成分について復号済みの非0変換係数の数cntに基づいて導出する。より具体的には、周辺参照コンテキスト導出部124cは、対象周波数成分の位置(xC,yC)、もしくは、対象周波数成分が属するサブブロックの位置(xCG,yCG)が次の条件を満たす場合、変換係数の位置に応じて異なる参照位置(テンプレート)を用いて復号済みの非0変換係数の数cntを導出する。
(2)xC+yC>=THlo、かつ、xCG+yCG<THhiを満たす場合・・・図98(a)に示す部分領域R1
ここで、閾値THloは、上述の式(eq.A2-1)、THhiは、上述の式(eq.A2-2)によって設定すればよいが、これに限定されない。
サブブロック内スキャンが斜め方向スキャンである場合、周辺参照コンテキスト導出部124cは、以下のとおり、変換係数の位置に応じて異なる参照位置(テンプレート)を用いて復号済みの非0変換係数の数cntを導出する。図99(a)は、サブブロック内スキャンが斜め方向スキャンである場合において、サブブロック内の周波数成分上の位置と、選択するテンプレートの関係を示す図である。4×4成分のサブブロックにおいて、位置に示す表記が(b)の場合には、図99(b)に示すテンプレートを用い、表記が(c)の場合には、図99(c)に示すテンプレートを用いる。図99(b)(c)はテンプレートの形状を示す。すなわち、参照周波数成分(例えば、c1、c2、c3、c4、c5)と対象周波数成分xとの相対位置を示す。図99(d)は、4×4サブブロックにおける斜め方向スキャンのスキャン順(逆スキャン順)を表わす図である。
なお、上記式(eq.A3)において、演算子‘&’はビット単位の論理和を取る演算子であり、‘&&’は、論理積を示す演算子であり、‘||’は、論理和を示す演算子である(以下において、同様)。
なお、上記式(eq.A3’)において、“%”は、剰余を求める演算子である(以下において、同様)。
(式(eq.A3)を満たす場合)
変換係数の位置(xC, yC)が、式(eq.A3)を満たす場合、非0変換係数のカウント数cntを、図99(c)に示す参照周波数成分(c1、c2、c4、c5)を用いて、以下の式(eq.A4)によって導出する。
ここで、式(eq.A4)における各項は、()内の比較が真である場合に1をとり、()内の比較が偽である場合に0をとるものとする。
変換係数の位置(xC, yC)が、式(eq.A3)を満たさない場合は、図99(b)に示す参照周波数成分c1〜c5を用いて、以下の式(eq.A5)によって、非0変換係数の数cntを算出する。
(コンテキストインデックスctxIdxの導出)
続いて、周辺参照コンテキスト導出部124cは、変換係数が属する部分領域R0、または、R1に応じてコンテキストインデックスの開始点を変更して、以下の式(eq.A6)を用いてコンテキストインデックスctxIdxを導出し、その導出結果ctxIdxを導出方法制御部124xに供給する。
ここで、ctxCntは、
ctxCnt = ( cnt + 1 ) >> 1
によって定まる。
係数有無フラグ設定部124eは、ビット復号部132から供給される各Binを解釈し、シンタックスsignificant_coeff_flag[xC][yC]を設定する。設定されたシンタックスsignificant_coeff_flag[xC][yC]は、復号係数記憶部126に供給される。
係数有無フラグ記憶部124dには、シンタックスsignificant_coeff_flag[xC][yC]の各値が格納される。係数有無フラグ記憶部124dに格納されたシンタックスsignificant_coeff_flag[xC][yC]の各値は、周辺参照コンテキスト導出部124cによって参照される。なお、各周波数成分の位置(xC、yC)に非0の変換係数が存在するか否かは係数有無フラグ専用の記憶部を用いずとも、復号した変換係数値を参照することでも参照できるため、係数有無フラグ記憶部124dを設けず、代わりに、復号係数記憶部126を用いることもできる。
図103は、コンテキスト導出部124zを構成する導出方法制御部124x、位置コンテキスト導出部124bと周辺参照コンテキスト導出部124cの動作を示すフローチャートである。
導出方法制御部124xは、TUサイズが所定サイズより小さいか否かを判定する。判定で例えば以下の式を用いる。
なお、閾値THSizeとしては例えば20が用いられる。閾値THsizeに20を用いた場合には、4×4TU、及び8×8TUが所定サイズより小さいと判定される。16×4TU、4×16TU、16×16TU、32×4TU、4×32TU、32×32TUは所定サイズ以上であると判定されることになる。なお、閾値THSizeは0としてもよい。この場合、4×4TU〜32×32TUが所定サイズ以上であると判定されることになる。
処理対象のTUサイズが所定サイズ以上の場合(ステップSA101でNo)、導出方法制御部124xは、対象変換係数が含まれるサブブロック位置(xCG,yCG)が高周波数成分であるか否か(例えば、図98(a)に示す部分領域R2であるか否か)を判定する。
対象変換係数が含まれるサブブロック位置(xCG,yCG)が高周波数成分でない場合(ステップSA102においてNo)、導出方法制御部124xは、対象変換係数の位置(xC,yC)が低周波数成分であるか否か(例えば、図98(a)に示す部分領域R0であるか否か)を判定する。
対象変換係数の位置(xC,yC)が低周波数成分でない場合(ステップSA103においてNo)、導出方法制御部124xは、対象変換係数の位置(xC,yC)が中周波数成分であると判定し、変数sigCtxOffsetRXをsigCtxOffsetR1に設定する。続いて、ステップSA106へ遷移する。
(ステップSA105)
対象変換係数の位置(xC,yC)が低周波数成分である場合(ステップSA103においてYes)、導出方法制御部124xは、変数sigCtxOffsetRXへsigCtxOffsetR0を設定する。続いて、ステップSA106へ遷移する。
(ステップSA106)
導出方法制御部124xはコンテキスト導出手段として、周辺参照コンテキスト導出部124cを選択し、選択された周辺参照コンテキスト導出部124cによって、対象変換係数のコンテキストインデックスが導出される。
処理対象のTUサイズが所定サイズ未満である場合(ステップSA101においてYes)、もしくは、対象変換係数を含むサブブロックが高周波数成分である場合(ステップSB103においてYes)、導出方法制御部124xは、コンテキスト導出手段として、位置コンテキスト導出部124bを選択し、選択された位置コンテキスト導出部124bによって、対象変換係数のコンテキストインデックスが導出される。
以下では、変換係数復号部120による変換係数復号処理の流れについて、図44〜51を参照して説明する。
図44は、周波数領域のサイズが所定のサイズ以下(例えば、4×4成分、8×8成分)である場合の変換係数復号部120による変換係数復号処理を示す擬似コードである。
まず、変換係数復号部120の備える係数復号制御部123は、スキャンタイプScanTypeを選択する。
(ステップS12)
続いて、変換係数復号部120の備えるラスト係数位置復号部121は、順スキャンに沿って最後の変換係数の位置を示すシンタックスlast_significant_coeff_x及びlast_significant_coeff_yを復号する。
(ステップS13)
続いて、係数復号制御部123は、サブグループを単位とするループを開始する。ここで、サブグループとは、対象周波数領域を分割して得られる1または複数の領域のことであり、各サブグループは、例えば、16個の周波数成分によって構成される。
(ステップS14)
続いて、変換係数復号部120の備える係数有無フラグ復号部124は、対象サブグループ内の各非ゼロ変換係数有無フラグsignificant_coeff_flagを復号する。
(ステップS15)
続いて、変換係数復号部120の備える係数値復号部125は、対象サブグループ内の非0変換係数の符号及び大きさを復号する。これは、各シンタックスcoeff_abs_level_greateer1_flag、coeff_abs_level_greateer2_flag、coeff_sign_flag、coeff_abs_level_minus3を復号することによって行われる。
(ステップS16)
本ステップは、サブブロックを単位とするループの終端である。
まず、変換係数復号部120の備える係数復号制御部123は、予測方式情報PredModeが、イントラ予測方式MODE_INTRAを示しているか否かを判別する。
(ステップS112)
予測方式がイントラ予測方式であるとき(ステップS111でYes)、変換係数復号部120の備える係数復号制御部123は、イントラ予測モード(予測方向)及び対象のTUサイズ(周波数領域のサイズ)に基づいて、スキャンタイプを設定する。具体的なスキャンタイプの設定処理については、すでに述べたため、ここでは説明を省略する。
まず、変換係数復号部120の備える係数有無フラグ復号部124は、ラスト係数のあるサブグループの位置を取得する。
(ステップS142)
続いて、係数有無フラグ復号部124は、対象周波数領域に含まれるsignificant_coeff_flagの値を0に初期化する。
(ステップS143)
続いて、係数有無フラグ復号部124は、サブグループを単位とするループを開始する。ここで、当該ループは、ラスト係数のあるサブグループから始まるループであって、逆スキャン順にサブグループをスキャンするループである。
(ステップS144)
続いて、係数有無フラグ復号部124は、対象サブグループ内のループを開始する。当該ループは、周波数成分を単位とするループである。
(ステップS145)
続いて、係数有無フラグ復号部124は、変換係数の位置を取得する。
(ステップS146)
続いて、係数有無フラグ復号部124は、取得した変換係数の位置がラスト位置であるか否かを判別する。
(ステップS147)
取得した変換係数の位置がラスト位置でないとき(ステップS146でNo)、係数有無フラグ復号部124は、変換係数有無フラグsignificant_coeff_flagを復号する。
(ステップS148)
当該ステップは、サブグループ内のループの終端である。
(ステップS149)
続いて、係数有無フラグ復号部124は、サブグループ内の各非0変換係数の符号及び大きさを復号する。
(ステップS150)
当該ステップは、サブグループのループの終端である。
図48は、周波数領域のサイズが所定のサイズより大きい(例えば、16×16成分、32×32成分)場合の変換係数復号部120による変換係数復号処理を示す擬似コードである。
まず、変換係数復号部120の備える係数復号制御部123は、スキャンタイプScanTypeを選択する。これは上述のステップS11と同様の処理である。
(ステップS22)
続いて、変換係数復号部120の備えるラスト係数位置復号部121は、順スキャンに沿って最後の変換係数の位置を示すシンタックスlast_significant_coeff_x及びlast_significant_coeff_yを復号する。
(ステップS23)
続いて、係数復号制御部123は、サブブロックを単位とするループを開始する。
(ステップS24)
続いて、変換係数復号部120の備えるサブブロック係数有無フラグ復号部127は、サブブロック係数有無フラグsignificant_coeffgroup_flagを復号する。
(ステップS25)
当該ループは、サブブロックを単位とするループの終端である。
(ステップS26)
続いて、係数復号制御部123は、サブブロックを単位とするループを開始する。
(ステップS27)
続いて、変換係数復号部120の備える係数有無フラグ復号部124は、対象サブブロック内の各非ゼロ変換係数有無フラグsignificant_coeff_flagを復号する。
(ステップS28)
続いて、変換係数復号部120の備える係数値復号部125は、対象サブグループ内の非0変換係数の符号及び大きさを復号する。これは、各シンタックスcoeff_abs_level_greateer1_flag、coeff_abs_level_greateer2_flag、coeff_sign_flag、coeff_abs_level_minus3を復号することによって行われる。
(ステップS29)
本ステップは、サブブロックを単位とするループの終端である。(ステップS26のサブブロックを単位とするループの終端)
まず、変換係数復号部120の備える係数有無フラグ復号部124は、ラスト係数のあるサブブロックの位置を取得する。
(ステップS242)
続いて、係数有無フラグ復号部124は、対象周波数領域に含まれるサブブロック係数有無フラグsignificant_coeffgroup_flagの値に初期化する。この初期化処理は、DC係数を含むサブブロックのサブブロック係数有無フラグと、ラスト係数を含むサブブロックのサブブロック係数有無フラグとを1に設定し、その他のサブブロック係数有無フラグを0に設定することによって行われる。
(ステップS243)
続いて、係数有無フラグ復号部124は、サブブロックを単位とするループを開始する。
(ステップS244)
続いて、係数有無フラグ復号部124は、サブブロックの位置を取得する。
(ステップS245)
続いて、係数有無フラグ復号部124は、対象サブブロックに隣接する復号済みのサブブロックに非0変換係数が存在するか否かを判別する。
(ステップS246)
ステップS245でYesの場合、対象サブブロックのサブブロック係数有無フラグを1に設定する。
・サブブロックスキャンが斜め方向である場合、図20(c)に示したように、サブブロック(xCG+1、yCG)及びサブブロック(xCG、yCG+1)の双方のサブブロックに非0変換係数が存在する場合に、対象サブブロック(xCG、yCG)のサブブロック係数有無フラグを1に設定する。
続いて、係数有無フラグ復号部124は、対象サブブロックがラスト係数を含むサブブロックであるか否かを判別する。
(ステップS248)
対象サブブロックがラスト係数を含むサブブロックでないとき(ステップS247でNo)、係数有無フラグ復号部124は、サブブロック係数有無フラグsignificant_coeffgroup_flagを復号する。
(ステップS249)
当該ステップは、サブブロックのループの終端である。
まず、変換係数復号部120の備える係数有無フラグ復号部124は、ラスト係数のあるサブブロックの位置を取得する。
(ステップS272)
続いて、係数有無フラグ復号部124は、対象周波数領域に含まれるsignificant_coeff_flagの値を0に初期化する。
(ステップS273)
続いて、係数有無フラグ復号部124は、サブブロックを単位とするループを開始する。ここで、当該ループは、ラスト係数のあるサブブロックから始まるループであって、サブブロック逆スキャン順にサブブロックをスキャンするループである。
(ステップS274)
続いて、係数有無フラグ復号部124は、対象サブブロック内のループを開始する。当該ループは、周波数成分を単位とするループである。
(ステップS275)
続いて、係数有無フラグ復号部124は、変換係数の位置を取得する。
(ステップS276)
続いて、係数有無フラグ復号部124は、対象サブブロックに非0変換係数が存在するか否かを判別する。
(ステップS277)
対象サブブロックに非0変換係数が存在する場合(ステップS276でYes)、係数有無フラグ復号部124は、取得した変換係数の位置がラスト位置であるか否かを判別する。
(ステップS278)
取得した変換係数の位置がラスト位置でないとき(ステップS277でNo)、係数有無フラグ復号部124は、変換係数有無フラグsignificant_coeff_flagを復号する。
(ステップS279)
当該ステップは、サブブロック内のループの終端である。
(ステップS280)
続いて、係数有無フラグ復号部124は、サブブロック内の各非0変換係数の符号及び大きさを復号する。
(ステップS281)
当該ステップは、サブブロックのループの終端である。
まず、変換係数復号部120の備える係数復号制御部123は、スキャンタイプScanTypeを選択する。これは上述のステップS11と同様の処理である。
(ステップS32)
続いて、変換係数復号部120の備えるラスト係数位置復号部121は、順スキャンに沿って最後の変換係数の位置を示すシンタックスlast_significant_coeff_x及びlast_significant_coeff_yを復号する。また、変換係数復号部120の備える係数有無フラグ復号部124は、ラスト係数のあるサブブロックの位置を取得する。
(ステップS33)
続いて、係数復号制御部123は、サブブロックを単位とするループを開始する。なお、ループの開始時点に、係数有無フラグ復号部124は、対象周波数領域に含まれるサブブロック係数有無フラグsignificant_coeffgroup_flagの値に初期化する。この初期化処理は、DC係数を含むサブブロックのサブブロック係数有無フラグと、ラスト係数を含むサブブロックのサブブロック係数有無フラグとを1に設定し、その他のサブブロック係数有無フラグを0に設定することによって行われる。
(ステップS34)
続いて、変換係数復号部120の備えるサブブロック係数有無フラグ復号部127は、サブブロック係数有無フラグsignificant_coeffgroup_flagを復号する。
(ステップS35)
続いて、変換係数復号部120の備える係数有無フラグ復号部124は、対象サブブロック内の各非ゼロ変換係数有無フラグsignificant_coeff_flagを復号する。
(ステップS36)
続いて、変換係数復号部120の備える係数値復号部125は、対象サブグループ内の非0変換係数の符号及び大きさを復号する。これは、各シンタックスcoeff_abs_level_greateer1_flag、coeff_abs_level_greateer2_flag、coeff_sign_flag、coeff_abs_level_minus3を復号することによって行われる。
(ステップS37)
本ステップは、サブブロックを単位とするループの終端である。
続いて、係数有無フラグ復号部124は、サブブロックの位置を取得する。
(ステップS342)
続いて、係数有無フラグ復号部124は、対象サブブロックに隣接する復号済みのサブブロックに非0変換係数が存在するか否かを判別する。
(ステップS343)
ステップS342でYesの場合、対象サブブロックのサブブロック係数有無フラグを1に設定する。
・サブブロックスキャンが水平方向優先スキャンである場合、図20(b)に示したように、サブブロック(xCG+1、yCG)に非0変換係数が存在し、サブブロック(xCG、yCG+1)に非0変換係数が存在しない場合に、対象サブブロック(xCG、yCG)のサブブロック係数有無フラグを1に設定する。
・サブブロックスキャンが斜め方向である場合、図20(c)に示したように、サブブロック(xCG+1、yCG)及びサブブロック(xCG、yCG+1)の双方のサブブロックに非0変換係数が存在する場合に、対象サブブロック(xCG、yCG)のサブブロック係数有無フラグを1に設定する。
続いて、係数有無フラグ復号部124は、対象サブブロックがラスト係数を含むサブブロックであるか否かを判別する。
(ステップS345)
対象サブブロックがラスト係数を含むサブブロックでないとき(ステップS344でNo)、係数有無フラグ復号部124は、サブブロック係数有無フラグsignificant_coeffgroup_flagを復号する。
まず、係数有無フラグ復号部124は、対象サブブロック内のループを開始する。当該ループは、周波数成分を単位とするループである。なお、ループの開始時点に、係数有無フラグ復号部124は、対象周波数領域に含まれるsignificant_coeff_flagの値を0に初期化する。
(ステップS352)
続いて、係数有無フラグ復号部124は、変換係数の位置を取得する。
(ステップS353)
続いて、係数有無フラグ復号部124は、対象サブブロックに非0変換係数が存在するか否かを判別する。
(ステップS354)
対象サブブロックに非0変換係数が存在する場合(ステップS353でYes)、係数有無フラグ復号部124は、取得した変換係数の位置がラスト位置であるか否かを判別する。
(ステップS355)
取得した変換係数の位置がラスト位置でないとき(ステップS354でNo)、係数有無フラグ復号部124は、変換係数有無フラグsignificant_coeff_flagを復号する。
(ステップS356)
当該ステップは、サブブロック内のループの終端である。
一実施形態に係る動画像符号化装置2の構成について図52〜図56を参照して説明する。動画像符号化装置2は、H.264/MPEG−4 AVC規格に採用されている技術、VCEG(Video Coding Expert Group)における共同開発用コーデックであるKTAソフトウェアに採用されている技術、TMuC(Test Model under Consideration)ソフトウェアに採用されている技術、および、その後継コーデックであるHEVC(High-Efficiency Video Coding)にて提案されている技術を実装している符号化装置である。以下では、既に説明した部分と同じ部分については同じ符号を付し、その説明を省略する。
予測画像生成部21は、処理対象LCUを、1または複数の下位CUに再帰的に分割し、各リーフCUをさらに1または複数のパーティションに分割し、パーティション毎に、画面間予測を用いたインター予測画像Pred_Inter、または、画面内予測を用いたイントラ予測画像Pred_Intraを生成する。生成されたインター予測画像Pred_Interおよびイントラ予測画像Pred_Intraは、予測画像Predとして、加算器24および減算器28に供給される。
イントラ予測画像生成部21aは、画面内予測によって、各パーティションに関する予測画像Pred_Intraを生成する。具体的には、(1)各パーティションついてイントラ予測に用いる予測モードを選択し、(2)選択した予測モードを用いて、復号画像Pから予測画像Pred_Intraを生成する。イントラ予測画像生成部21aは、生成したイントラ予測画像Pred_Intraを、予測方式制御部21dに供給する。
動きベクトル検出部21bは、各パーティションに関する動きベクトルmvを検出する。具体的には、(1)参照画像として利用する適応フィルタ済復号画像P_ALF’を選択し、(2)選択した適応フィルタ済復号画像P_ALF’において対象パーティションを最良近似する領域を探索することによって、対象パーティションに関する動きベクトルmvを検出する。ここで、適応フィルタ済復号画像P_ALF’は、既にフレーム全体の復号が完了した復号済みの復号画像に対して、ループフィルタ26による適応的フィルタ処理を施すことによって得られる画像であり、動きベクトル検出部21bは、適応フィルタ済復号画像P_ALF’を構成する各画素の画素値をフレームメモリ25から読み出すことができる。動きベクトル検出部21bは、検出した動きベクトルmvを、参照画像として利用した適応フィルタ済復号画像P_ALF’を指定する参照画像インデックスRIと共に、インター予測画像生成部21c及び動きベクトル冗長性削除部21eに供給する。
インター予測画像生成部21cは、画面間予測によって、各インター予測パーティションに関する動き補償画像mcを生成する。具体的には、動きベクトル検出部21bから供給された動きベクトルmvを用いて、動きベクトル検出部21bから供給された参照画像インデックスRIによって指定される適応フィルタ済復号画像P_ALF’から動き補償画像mcを生成する。動きベクトル検出部21bと同様に、インター予測画像生成部21cは、適応フィルタ済復号画像P_ALF’を構成する各画素の画素値をフレームメモリ25から読み出すことができる。インター予測画像生成部21cは、生成した動き補償画像mc(インター予測画像Pred_Inter)を、動きベクトル検出部21bから供給された参照画像インデックスRIと共に、予測方式制御部21dに供給する。
予測方式制御部21dは、イントラ予測画像Pred_Intra及びインター予測画像Pred_Interを符号化対象画像と比較し、イントラ予測を行うかインター予測を行うかを選択する。イントラ予測を選択した場合、予測方式制御部21dは、イントラ予測画像Pred_Intraを予測画像Predとして加算器24及び減算器28に供給すると共に、イントラ予測画像生成部21aから供給されるイントラ予測パラメータPP_Intraを可変長符号符号化部27に供給する。一方、インター予測を選択した場合、予測方式制御部21dは、インター予測画像Pred_Interを予測画像Predとして加算器24及び減算器28に供給すると共に、参照画像インデックスRI、並びに、後述する動きベクトル冗長性削除部21eから供給された推定動きベクトルインデックスPMVI及び動きベクトル残差MVDをインター予測パラメータPP_Interとして可変長符号符号化部27に供給する。また、予測方式制御部21dは、イントラ予測画像Pred_Intra及びインター予測画像Pred_Interのうち何れの予測画像を選択したのかを示す予測タイプ情報Pred_typeを可変長符号符号化部27に供給する。
動きベクトル冗長性削除部21eは、動きベクトル検出部21bによって検出された動きベクトルmvにおける冗長性を削除する。具体的には、(1)動きベクトルmvの推定に用いる推定方法を選択し、(2)選択した推定方法に従って推定動きベクトルpmvを導出し、(3)動きベクトルmvから推定動きベクトルpmvを減算することにより動きベクトル残差MVDを生成する。動きベクトル冗長性削除部21eは、生成した動きベクトル残差MVDを、選択した推定方法を示す推定動きベクトルインデックスPMVIと共に、予測方式制御部21dに供給する。
変換・量子化部22は、(1)符号化対象画像から予測画像Predを減算した予測残差Dに対してブロック(変換単位)毎にDCT変換(Discrete Cosine Transform)等の周波数変換を施し、(2)周波数変換により得られた変換係数Coeff_IQを量子化し、(3)量子化により得られた変換係数Coeffを可変長符号符号化部27及び逆量子化・逆変換部23に供給する。なお、変換・量子化部22は、(1)量子化の際に用いる量子化ステップQPをTU毎に選択し、(2)選択した量子化ステップQPの大きさを示す量子化パラメータ差分Δqpを可変長符号符号化部27に供給し、(3)選択した量子化ステップQPを逆量子化・逆変換部23に供給する。ここで、量子化パラメータ差分Δqpとは、周波数変換及び量子化するTUに関する量子化パラメータqp(例えばQP=2pq/6)の値から、直前に周波数変換及び量子化したTUに関する量子化パラメータqp’の値を減算して得られる差分値のことを指す。
・C(u)=1 (u≠0)
・C(v)=1/√2 (v=0)
・C(v)=1 (v≠0)
(逆量子化・逆変換部23)
逆量子化・逆変換部23は、(1)量子化された変換係数Coeffを逆量子化し、(2)逆量子化によって得られた変換係数Coeff_IQに対して逆DCT(Discrete Cosine Transform)変換等の逆周波数変換を施し、(3)逆周波数変換によって得られた予測残差Dを加算器24に供給する。量子化された変換係数Coeffを逆量子化する際には、変換・量子化部22から供給された量子化ステップQPを利用する。なお、逆量子化・逆変換部23から出力される予測残差Dは、変換・量子化部22に入力される予測残差Dに量子化誤差が加わったものであるが、ここでは簡単のために共通の呼称を用いる。逆量子化・逆変換部23のより具体的な動作は、動画像復号装置1の備える逆量子化・逆変換部13とほぼ同様である。
加算器24は、予測方式制御部21dにて選択された予測画像Predを、逆量子化・逆変換部23にて生成された予測残差Dに加算することによって、(局所)復号画像Pを生成する。加算器24にて生成された(局所)復号画像Pは、ループフィルタ26に供給されると共にフレームメモリ25に格納され、イントラ予測における参照画像として利用される。
可変長符号符号化部27は、(1)変換・量子化部22から供給された量子化後の変換係数Coeff並びにΔqp、(2)予測方式制御部21dから供給された量子化パラメータPP(インター予測パラメータPP_Inter、および、イントラ予測パラメータPP_Intra)、(3)予測タイプ情報Pred_type、および、(4)ループフィルタ26から供給されたフィルタパラメータFPを可変長符号化することによって、符号化データ#1を生成する。
減算器28は、予測方式制御部21dにて選択された予測画像Predを、符号化対象画像から減算することによって、予測残差Dを生成する。減算器28にて生成された予測残差Dは、変換・量子化部22によって周波数変換及び量子化される。
ループフィルタ26は、(1)復号画像Pにおけるブロック境界、またはパーティション境界の周辺の画像の平滑化(デブロック処理)を行うデブロッキングフィルタ(DF:Deblocking Filter)としての機能と、(2)デブロッキングフィルタが作用した画像に対して、フィルタパラメータFPを用いて適応フィルタ処理を行う適応フィルタ(ALF:Adaptive Loop Filter)としての機能を有している。
量子化残差情報符号化部271は、量子化された変換係数Coeff(xC、yC)をコンテキスト適応型2値算術符号化(CABAC:(Context-based Adaptive Binary Arithmetic Coding))することによって、量子化残差情報QDを生成する。生成された量子化残差情報QDに含まれるシンタックスは、図4及び図5に示した各シンタックス、及びsignificant_coeffgroup_flagである。
図54は、量子化残差情報符号化部271の構成を示すブロック図である。図54に示すように、量子化残差情報符号化部271は、変換係数符号化部220及び算術符号符号化部230を備えている。
算術符号符号化部230は、変換係数符号化部220から供給される各Binをコンテキストを参照して符号化することによって量子化残差情報QDを生成するための構成であり、図54に示すように、コンテキスト記録更新部231及びビット符号化部232を備えている。
コンテキスト記録更新部231は、各コンテキストインデックスctxIdxによって管理されるコンテキスト変数CVを記録及び更新するための構成である。ここで、コンテキスト変数CVには、(1)発生確率が高い優勢シンボルMPS(most probable symbol)と、(2)その優勢シンボルMPSの発生確率を指定する確率状態インデックスpStateIdxとが含まれている。
ビット符号化部232は、コンテキスト記録更新部231に記録されているコンテキスト変数CVを参照し、変換係数符号化部220の備える各部から供給される各Binを符号化することによって量子化残差情報QDを生成する。また、符号化したBinの値はコンテキスト記録更新部231にも供給され、コンテキスト変数CVを更新するために参照される。
図54に示すように、変換係数符号化部220は、ラスト位置符号化部221、スキャン順テーブル格納部222、係数符号化制御部223、係数有無フラグ符号化部224、係数値符号化部225、符号化係数記憶部226、サブブロック係数有無フラグ227、及びシンタックス導出部228を備えている。
シンタックス導出部228は、変換係数Coeff(xC、yC)の各値を参照し、対象周波数領域におけるこれらの変換係数を特定するためのシンタックスlast_significant_coeff_x、last_significant_coeff_y、significant_coeff_flag、coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_sign_flag、及びcoeff_abs_level_minus3の各値を導出する。導出された各シンタックスは、符号化係数記憶部226に供給される。また、導出されたシンタックスのうちlast_significant_coeff_x、last_significant_coeff_yは、係数符号化制御部223及びラスト位置符号化部221にも供給される。また、導出されたシンタックスのうちsignificant_coeff_flagは、係数有無フラグ符号化部224にも供給される。なお、各シンタックスが示す内容については上述したためここでは説明を省略する。
ラスト位置符号化部221は、シンタックス導出部228より供給されるシンタックスlast_significant_coeff_x、last_significant_coeff_yを示すBinを生成する。また、生成した各Binをビット符号化部232に供給する。また、シンタックスlast_significant_coeff_x及びlast_significant_coeff_yのBinを符号化するために参照されるコンテキストを指定するコンテキストインデックスctxIdxを、コンテキスト記録更新部231に供給する。
スキャン順テーブル格納部222には、処理対象のTU(ブロック)のサイズ、スキャン方向の種別を表すスキャンインデックス、及びスキャン順に沿って付与された周波数成分識別インデックスを引数として、処理対象の周波数成分の周波数領域における位置を与えるテーブルが格納されている。このようなスキャン順テーブルの一例としては、図4及び図5に示したScanOrderが挙げられる。
係数符号化制御部223は、量子化残差情報符号化部271の備える各部における符号化処理の順序を制御するための構成である。
ブロックサイズが所定のサイズ以下(例えば4×4成分、8×8成分等)である場合、係数符号化制御部223は、シンタックス導出部228より供給されるシンタックスlast_significant_coeff_x及びlast_significant_coeff_yを参照し、順スキャンに沿った最後の非0変換係数の位置を特定すると共に、特定した最後の非0変換係数の位置を起点とするスキャン順であって、スキャン順テーブル格納部222に格納されたスキャン順テーブルよって与えられるスキャン順の逆スキャン順に、各周波数成分の位置(xC、yC)を、係数有無フラグ符号化部に供給する。
ブロックサイズが所定のサイズよりも大きい場合、係数符号化制御部223は、シンタックス導出部228から供給されるシンタックスlast_significant_coeff_x及びlast_significant_coeff_yを参照し、順スキャンに沿った最後の非0変換係数の位置を特定すると共に、特定した最後の非0変換係数を含むサブブロックの位置を起点とするスキャン順であって、スキャン順テーブル格納部222に格納されたサブブロックスキャン順テーブルよって与えられるスキャン順の逆スキャン順に、各サブブロックの位置(xCG、yCG)を、サブブロック係数有無フラグ符号化部227に供給する。
係数値符号化部225は、シンタックス導出部228から供給されるシンタックスcoeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_sign_flag、及びcoeff_abs_level_minus3を示すBinを生成する。また、生成した各Binをビット符号化部232に供給する。また、これらのシンタックスのBinを符号化するために参照されるコンテキストを指定するコンテキストインデックスctxIdxを、コンテキスト記録更新部231に供給する。
本実施形態に係る係数有無フラグ符号化部224は、各位置(xC、yC)によって指定されるシンタックスsignificant_coeff_flag[xC][yC]を符号化する。より具体的には、各位置(xC、yC)によって指定されるシンタックスsignificant_coeff_flag[xC][yC]を示すBinを生成する。生成された各Binは、ビット符号化部232に供給される。また、係数有無フラグ符号化部224は、算術符号符号化部230にてシンタックスsignificant_coeff_flag[xC][yC]のBinを符号化するために用いられるコンテキストを決定するためのコンテキストインデックスctxIdxを算出する。算出されたコンテキストインデックスctxIdxは、コンテキスト記録更新部231に供給される。
周波数分類部224aは、対象となる周波数領域のサイズが所定のサイズ以下のサイズである場合(例えば、4×4成分、8×8成分である場合)、当該所定サイズ以下の周波数領域の各周波数成分に対して、その周波数成分の位置に応じて、当該周波数成分を複数の部分領域の何れかに分類すると共に、位置コンテキスト導出部224bによって導出されたコンテキストインデックスctxIdxを割り付ける。
位置コンテキスト導出部224bは、対象周波数成分に対するコンテキストインデックスctxIdxを、周波数領域における当該対象周波数成分の位置に基づいて導出する。
周辺参照コンテキスト導出部224cは、符号化対象の周波数成分に対するコンテキストインデックスctxIdxを、当該周波数成分の周辺の周波数成分について符号化済みの非0変換係数の数cntに基づいて導出する。
係数有無フラグ設定部224eは、シンタックス導出部228から供給されるシンタックスsignificant_coeff_flag[xC][yC]を示すBinを生成する。生成したBinは、ビット符号化部232に供給される。また、係数有無フラグ設定部224eは、対象サブブロックに含まれるsignificant_coeff_flag[xC][yC]の値を参照し、対象サブブロックに含まれる全てのsignificant_coeff_flag[xC][yC]が0である場合、すなわち、当該対象サブブロックに非0変換係数が含まれていない場合に、当該対象サブブロックに関するsignificant_coeffgroup_flag[xCG][yCG]の値を0に設定し、そうでない場合に当該対象サブブロックに関するsignificant_coeffgroup_flag[xCG][yCG]の値を1に設定する。このように値が付されたsignificant_coeffgroup_flag[xCG][yCG]は、サブブロック係数有無フラグ符号化部227に供給される。
係数有無フラグ記憶部224dには、シンタックスsignificant_coeff_flag[xC][yC]の各値が格納される。係数有無フラグ記憶部224dに格納されたシンタックスsignificant_coeff_flag[xC][yC]の各値は、周辺参照コンテキスト導出部224cによって参照される。
サブブロック係数有無フラグ符号化部227は、各サブブロック位置(xCG、yCG)によって指定されるシンタックスsignificant_coeffgroup_flag[xCG][yCG]を符号化する。より具体的には、各サブブロック位置(xCG、yCG)によって指定されるシンタックスsignificant_coeffgroup_flag[xCG][yCG]を示すBinを生成する。生成された各Binは、ビット符号化部232に供給される。また、サブブロック係数有無フラグ符号化部227は、算術符号符号化部230にてシンタックスsignificant_coeff_flag[xC][yC]のBinを符号化するために用いられるコンテキストを決定するためのコンテキストインデックスctxIdxを算出する。算出されたコンテキストインデックスctxIdxは、コンテキスト記録更新部231に供給される。
サブブロック係数有無フラグ符号化部227の備えるコンテキスト導出部227aは、各サブブロック位置(xCG、yCG)によって指定されるサブブロックに割り付けるコンテキストインデックスを導出する。サブブロックに割り付けられたコンテキストインデックスは、当該サブブロックについてのシンタックスsignificant_coeffgroup_flagを示すBinを復号する際に用いられる。また、コンテキストインデックスを導出する際には、サブブロック係数有無フラグ記憶部227bに記憶されたサブブロック係数有無フラグの値が参照される。コンテキスト導出部227aは、導出したコンテキストインデックスをコンテキスト記録更新部231に供給する。
サブブロック係数有無フラグ記憶部227bには、係数有無フラグ符号化部224から供給されたシンタックスsignificant_coeffgroup_flagの各値が記憶されている。サブブロック係数有無フラグ設定部227cは、隣接サブブロックに割り付けられたシンタックスsignificant_coeffgroup_flagを、サブブロック係数有無フラグ記憶部227bから読み出すことができる。
サブブロック係数有無フラグ設定部227cは、サブブロック係数有無フラグ設定部227cは、係数有無フラグ符号化部224から供給されるシンタックスsignificant_coeffgroup_flag[xCG][yCG]を示すBinを生成する。生成したBinは、ビット符号化部232に供給される。
サブブロックスキャン順を指定するスキャンタイプが垂直方向優先スキャンである場合、サブブロック係数有無フラグ設定部227cは、図20(a)に示すように、サブブロック(xCG、yCG)に隣接するサブブロック(xCG、yCG+1)に割り付けられたサブブロック係数有無フラグsignificant_coeffgroup_flag[xCG][yCG+1]の値を参照する。significant_coeffgroup_flag[xCG][yCG+1]=1である場合、サブブロック係数有無フラグ設定部227cは、significant_coeffgroup_flag[xCG][yCG]=1であると推測し、significant_coeffgroup_flag[xCG][yCG]の符号化を省略する。
サブブロックスキャン順を指定するスキャンタイプが水平方向優先スキャンである場合、サブブロック係数有無フラグ設定部227cは、図20(b)に示すように、サブブロック(xCG、yCG)に隣接するサブブロック(xCG+1、yCG)に割り付けられたサブブロック係数有無フラグsignificant_coeffgroup_flag[xCG+1][yCG]の値を参照する。significant_coeffgroup_flag[xCG+1][yCG]=1である場合、サブブロック係数有無フラグ設定部227cは、significant_coeffgroup_flag[xCG][yCG]=1であると推測し、significant_coeffgroup_flag[xCG][yCG]の符号化を省略する。
サブブロックスキャン順を指定するスキャンタイプが斜め方向スキャンである場合、サブブロック係数有無フラグ設定部227cは、図20(c)に示すように、サブブロック(xCG、yCG)に隣接するサブブロック(xCG+1、yCG)に割り付けられたサブブロック係数有無フラグsignificant_coeffgroup_flag[xCG+1][yCG]の値とサブブロック(xCG、yCG+1)に割り付けられたサブブロック係数有無フラグsignificant_coeffgroup_flag[xCG][yCG+1]の値とを参照する。
本実施形態に係る係数有無フラグ符号化部は、上述の構成に限られるものではない。本実施形態に係る係数有無フラグ符号化部は、第1の変形例に係る係数有無フラグ復号部124’に対応する構成を有するものとしてもよい。
・係数有無フラグ符号化部224’は、サブブロック周辺参照コンテキスト導出部224fを備えている。
また、本実施形態に係る係数有無フラグ符号化部は、第2の変形例に係る係数有無フラグ復号部124’’に対応する構成を有するものとしてもよい。
また、本実施形態に係る係数有無フラグ符号化部224は、第3の変形例に係る係数有無フラグ復号部124に対応する構成を有するものとしてもよい。
導出方法制御部224xは、対象となるTUサイズが所定のサイズ以下のサイズである場合(例えば、4×4TU、8×8TUである場合)、当該所定サイズ以下の周波数領域の各周波数成分に対して、その周波数成分の位置に応じて、当該周波数成分を複数の部分領域の何れかに分類すると共に、位置コンテキスト導出部224bによって導出されたコンテキストインデックスctxIdxを割り付ける。
位置コンテキスト導出部224bは、対象周波数成分に対するコンテキストインデックスctxIdxを、周波数領域における当該対象周波数成分の位置に基づいて導出する。
周辺参照コンテキスト導出部224cは、符号化対象の周波数成分に対するコンテキストインデックスctxIdxを、当該周波数成分の周辺の周波数成分について符号化済みの非0変換係数の数cntに基づいて導出する。より具体的には、周辺参照コンテキスト導出部224cは、対象周波数成分の位置(xC,yC)、もしくは、対象周波数成分が属するサブブロックの位置(xCG,yCG)が所定の条件を満たす場合、変換係数の位置に応じて異なる参照位置(テンプレート)を用いて符号化済みの非0変換係数の数cntを導出する。
係数有無フラグ設定部224eは、シンタックス導出部228から供給されるシンタックスsignificant_coeff_flag[xC][yC]を示すBinを生成する。生成したBinは、ビット符号化部232に供給される。また、係数有無フラグ設定部224eは、対象サブブロックに含まれるsignificant_coeff_flag[xC][yC]の値を参照し、対象サブブロックに含まれる全てのsignificant_coeff_flag[xC][yC]が0である場合、すなわち、当該対象サブブロックに非0変換係数が含まれていない場合に、当該対象サブブロックに関するsignificant_coeff_group_flag[xCG][yCG]の値を0に設定し、そうでない場合に当該対象サブブロックに関するsignificant_coeff_group_flag[xCG][yCG]の値を1に設定する。このように値が付されたsignificant_coeff_group_flag[xCG][yCG]は、サブブロック係数有無フラグ符号化部227に供給される。
上述した動画像符号化装置2及び動画像復号装置1は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用することができる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CGおよびGUIを含む)であってもよい。
上述した動画像復号装置1、および動画像符号化装置2の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
X=log2TrafoWidth == 2 ? xC : xC>>1
Y=log2TrafoHeight == 2 ? yC : yC>>1
によって変数X及びYを導出し、該変数Xの下位1ビット目(上位2ビット目)の値と、該変数Xの下位2ビット目(上位1ビット目)の値と、該変数Yの下位1ビット目(上位2ビット目)の値と、該変数Yの下位2ビット目(上位1ビット目)の値とに基づいて定まる対象周波数成分の属するサブ領域の識別番号(相対コンテキストインデックス)と所定のオフセットを加算して、対象周波数成分のコンテキストインデックスを導出することを特徴としている。
X=log2TrafoSize ==2 ? xC : xC>>1
Y=log2TrafoSize ==2 ? yC : yC>>1
によって変数X及びYを導出し、
X=0かつY=0であるとき、対象周波数成分をサブ領域R0に分類し、
(X=0かつY=0)でなくX<2かつY<2であるとき、対象周波数成分をサブ領域R1に分類し、
X=2かつY<2であるとき、対象周波数成分をサブ領域R2へ分類し、
X=3かつY<2であるとき、対象周波数成分をサブ領域R3へ分類し、
X<2かつY=2であるとき、対象周波数成分をサブ領域R4へ分類し、
X<2かつY=3であるとき、対象周波数成分をサブ領域R5へ分類し、
X≧2かつY≧2であるとき、対象周波数成分をサブ領域R6へ分類する、ことが好ましい。
)と、該周波数領域の横幅を示す変数であるlog2TrafoWidth(log2TrafoWidthは自然数)と該周波数領域の縦幅を示す変数であるlog2TrafoHeight(log2TrafoHeightは自然数)に基づき、
X=log2TrafoWidth == 2 ? xC : xC>>2
Y=log2TrafoHeight == 2 ? yC : yC>>2
によって変数X及びYを導出し、
X=0かつY=0であるとき、対象周波数成分をサブ領域A0に分類し、
(X=0かつY=0)でなくX<2かつY<2であるとき、対象周波数成分をサブ領域A1に分類し、
X=2かつY<2であるとき、対象周波数成分をサブ領域A2へ分類し、
X=3かつY<2であるとき、対象周波数成分をサブ領域A3へ分類し、
X<2かつY=2であるとき、対象周波数成分をサブ領域A4へ分類し、
X<2かつY=3であるとき、対象周波数成分をサブ領域A5へ分類し、
X≧2かつY≧2であるとき、対象周波数成分をサブ領域A6へ分類する、ことが好ましい。
(1−a)xC<width/4、かつ、yC<height/4の場合、対象周波数成分をサブ領域R0へ分類する
(1−b)xC≧width/4、かつ、yC<height/4の場合、対象周波数成分をサブ領域R1へ分類する
(1−c)xC<width/4、かつ、yC≧height/4の場合、対象周波数成分をサブ領域R2へ分類する
(1−d)xC≧width/4、かつ、yC≧height/4の場合、対象周波数成分をサブ領域R3へ分類する
xC≧width/2、かつ、yC<height/2の場合、(2−a)〜(2−b)の条件により、対象周波数成分をサブ領域R4、またはR5へ分類し、
(2−a)xC<width×3/4の場合、対象周波数成分をサブ領域R4へ分類する
(2−b)xC≧width×3/4の場合、対象周波数成分をサブ領域R5へ分類する
xC<width/2、かつ、yC≧height/2の場合、(3−a)〜(3−b)の条件により、対象周波数成分をサブ領域R6、またはR7へ分類し、
(3−a)yC<height×3/4の場合、対象周波数成分をサブ領域R6へ分類する
(3−b)yC≧height×3/4の場合、対象周波数成分をサブ領域R7へ分類する
xC≧width/2、かつ、yC≧height/2の場合、対象周波数成分をサブ領域R8へ分類する、ことが好ましい。
(1−a)xC<width/4、かつ、yC<height/4の場合、対象周波数成分をサブ領域R0へ分類する
(1−b)xC≧width/4、または、yC≧height/4の場合、対象周波数成分をサブ領域R1へ分類する
xC≧width/2、かつ、yC<height/2の場合、(2−a)〜(2−b)の条件により、対象周波数成分をサブ領域R2、またはR3へ分類し、
(2−a)xC<width×3/4の場合、対象周波数成分をサブ領域R2へ分類する
(2−b)xC≧width×3/4の場合、対象周波数成分をサブ領域R3へ分類する
xC<width/2、かつ、yC≧height/2の場合、(3−a)〜(3−b)の条件により、対象周波数成分をサブ領域R4、またはR5へ分類し、
(3−a)yC<height×3/4の場合、対象周波数成分をサブ領域R4へ分類する
(3−b)yC≧height×3/4の場合、対象周波数成分をサブ領域R5へ分類する
xC≧width/2、かつ、yC≧height/2の場合、対象周波数成分をサブ領域R6へ分類する、ことが好ましい。
11 可変長符号復号部
111 量子化残差情報復号部(算術復号装置)
120 変換係数復号部
123 係数復号制御部(サブブロック分割手段、サブブロックスキャン順設定手段)
124 係数有無フラグ復号部(コンテキストインデックス導出手段)
124a 周波数分類部
124b 位置コンテキスト導出部
124c 周辺参照コンテキスト導出部
124d 係数有無フラグ記憶部
124e 係数有無フラグ設定部
124x 導出方法制御部
124z コンテキスト導出部
127 サブブロック係数有無フラグ復号部(サブブロック係数有無フラグ復号手段)
127a コンテキスト導出部
127b サブブロック係数有無フラグ記憶部
127c サブブロック係数有無フラグ設定部
130 算術符号復号部
131 コンテキスト記録更新部
132 ビット復号部(シンタックス復号手段)
2 動画像符号化装置(画像符号化装置)
27 可変長符号符号化部
271 量子化残差情報符号化部(算術符号化装置)
220 変換係数符号化部
223 係数符号化制御部(サブブロック分割手段、サブブロックスキャン順設定手段)
224 係数有無フラグ符号化部(コンテキストインデックス導出手段)
224a 周波数分類部
224b 位置コンテキスト導出部
224c 周辺参照コンテキスト導出部
224d 係数有無フラグ記憶部
224e 係数有無フラグ設定部
224x 導出方法制御部
224z コンテキスト導出部
227 サブブロック係数有無フラグ符号化部(サブブロック係数有無フラグ符号化手段)
227a コンテキスト導出部
227b サブブロック係数有無フラグ記憶部
227c サブブロック係数有無フラグ設定部
228 シンタックス導出部
230 算術符号符号化部
231 コンテキスト記録更新部
232 ビット符号化部(シンタックス符号化手段)
Claims (6)
- 対象画像の単位領域毎に周波数変換して得られる変換係数の符号化データを復号する算術復号装置において、
前記単位領域毎に、前記変換係数が0であるか否かを示す変換係数有無フラグのコンテキストインデックスを導出するコンテキストインデックス導出手段と、
導出した前記コンテキストインデックスによって指定される確率状態に基づいて、前記変換係数有無フラグを算術復号するシンタックス復号手段とを備え、
前記コンテキストインデックス導出手段は、
輝度について、DC成分における前記変換係数有無フラグのコンテキストインデックスのみを、前記単位領域の全てのサイズに対して第1の共通の値に設定し、
色差について、DC成分における前記変換係数有無フラグのコンテキストインデックスのみを、前記単位領域の全てのサイズに対して第2の共通の値に設定する、
ことを特徴とする算術復号装置。 - 前記コンテキストインデックスは、前記変換係数の位置に基づいて導出されることを特徴とする請求項1に記載の算術復号装置。
- 前記コンテキストインデックス導出手段は、ルックアップテーブルの参照値に所定のオフセット値を加えることによって、前記変換係数有無フラグのコンテキストインデックスを導出することを特徴とする請求項1に記載の算術復号装置。
- 第1の共通の値は0であり、第2の共通の値は第1の共通の値とは異なることを特徴とする請求項1に記載の算術復号装置。
- 対象画像の単位領域毎に符号化データを生成する算術符号化装置において、
前記単位領域毎に、変換係数が0であるか否かを示す変換係数有無フラグのコンテキストインデックスを導出するコンテキストインデックス導出手段と、
導出した前記コンテキストインデックスによって指定される確率状態に基づいて、前記変換係数有無フラグを算術符号化するシンタックス符号化手段とを備え、
前記コンテキストインデックス導出手段は、
輝度について、DC成分における前記変換係数有無フラグのコンテキストインデックスのみを、前記単位領域の全てのサイズに対して第1の共通の値に設定し、
色差について、DC成分における前記変換係数有無フラグのコンテキストインデックスのみを、前記単位領域の全てのサイズに対して第2の共通の値に設定する、
ことを特徴とする算術符号化装置。 - 対象画像を単位領域毎に周波数変換して得られる変換係数の符号化データを復号する算術復号方法であって、
前記単位領域毎に、前記変換係数が0であるか否かを示す変換係数有無フラグのコンテキストインデックスを導出するステップと、
導出した前記コンテキストインデックスによって指定される確率状態に基づいて、前記変換係数有無フラグを算術復号するステップと、
輝度について、DC成分における前記変換係数有無フラグのコンテキストインデックスのみを、前記単位領域の全てのサイズに対して第1の共通の値に設定するステップと、
色差について、DC成分における前記変換係数有無フラグのコンテキストインデックスのみを、前記単位領域の全てのサイズに対して第2の共通の値に設定するステップと、
を少なくとも含むことを特徴とする算術復号方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013551716A JP6134651B2 (ja) | 2011-12-28 | 2012-12-26 | 算術復号装置、算術符号化装置および算術復号方法 |
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011289938 | 2011-12-28 | ||
JP2011289938 | 2011-12-28 | ||
JP2012011555 | 2012-01-23 | ||
JP2012011555 | 2012-01-23 | ||
JP2012031118 | 2012-02-15 | ||
JP2012031118 | 2012-02-15 | ||
JP2012091444 | 2012-04-12 | ||
JP2012091444 | 2012-04-12 | ||
PCT/JP2012/083555 WO2013099892A1 (ja) | 2011-12-28 | 2012-12-26 | 算術復号装置、画像復号装置、および、算術符号化装置 |
JP2013551716A JP6134651B2 (ja) | 2011-12-28 | 2012-12-26 | 算術復号装置、算術符号化装置および算術復号方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017085594A Division JP6441406B2 (ja) | 2011-12-28 | 2017-04-24 | 動画像復号装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2013099892A1 JPWO2013099892A1 (ja) | 2015-05-07 |
JP6134651B2 true JP6134651B2 (ja) | 2017-05-24 |
Family
ID=48697376
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013551716A Active JP6134651B2 (ja) | 2011-12-28 | 2012-12-26 | 算術復号装置、算術符号化装置および算術復号方法 |
JP2017085594A Expired - Fee Related JP6441406B2 (ja) | 2011-12-28 | 2017-04-24 | 動画像復号装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017085594A Expired - Fee Related JP6441406B2 (ja) | 2011-12-28 | 2017-04-24 | 動画像復号装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10129548B2 (ja) |
EP (1) | EP2800368B1 (ja) |
JP (2) | JP6134651B2 (ja) |
CN (3) | CN104067614B (ja) |
RU (1) | RU2628130C2 (ja) |
WO (1) | WO2013099892A1 (ja) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130182772A1 (en) | 2012-01-13 | 2013-07-18 | Qualcomm Incorporated | Determining contexts for coding transform coefficient data in video coding |
AU2012200319B2 (en) * | 2012-01-19 | 2015-11-26 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit |
AU2012200345B2 (en) | 2012-01-20 | 2014-05-01 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding the significance map residual coefficients of a transform unit |
CN111683255B (zh) * | 2012-01-20 | 2022-08-02 | 索尼公司 | 有效度图编码的复杂度降低 |
PH12018500138A1 (en) | 2012-01-20 | 2018-07-09 | Ge Video Compression Llc | Transform coefficient coding |
PL3910947T3 (pl) | 2012-03-26 | 2023-12-27 | JVC Kenwood Corporation | Urządzenie do dekodowania obrazu, sposób dekodowania obrazu i program do dekodowania obrazu |
PT2869563T (pt) * | 2012-07-02 | 2018-06-25 | Samsung Electronics Co Ltd | Método e aparelho para codificar vídeo de entropia e método e aparelho para descodifcar vídeo de entropia |
US9538175B2 (en) * | 2012-09-26 | 2017-01-03 | Qualcomm Incorporated | Context derivation for context-adaptive, multi-level significance coding |
EP2920964B1 (en) * | 2013-03-26 | 2018-05-09 | MediaTek Inc. | Method of cross color intra prediction |
US9336558B2 (en) * | 2013-09-27 | 2016-05-10 | Apple Inc. | Wavefront encoding with parallel bit stream encoding |
US9781424B2 (en) * | 2015-01-19 | 2017-10-03 | Google Inc. | Efficient context handling in arithmetic coding |
KR20180040515A (ko) * | 2015-09-10 | 2018-04-20 | 삼성전자주식회사 | 부호화 장치, 복호화 장치, 그 부호화 및 복호화 방법 |
KR20170102806A (ko) * | 2016-03-02 | 2017-09-12 | 한국전자통신연구원 | 비디오 신호 부호화/복호화 방법 및 이를 위한 장치 |
CN113810697A (zh) | 2016-04-29 | 2021-12-17 | 世宗大学校产学协力团 | 用于对图像信号进行编码和解码的方法和装置 |
US10887626B2 (en) * | 2016-05-13 | 2021-01-05 | Sharp Kabushiki Kaisha | Image decoding device and image encoding device |
EP3270595A1 (en) * | 2016-07-15 | 2018-01-17 | Thomson Licensing | Method and apparatus for last coefficient coding for adaptive transform based video compression |
JP2020072277A (ja) * | 2017-03-03 | 2020-05-07 | シャープ株式会社 | 動画像符号化装置及び動画像復号装置 |
KR102272992B1 (ko) * | 2017-04-13 | 2021-07-06 | 엘지전자 주식회사 | 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치 |
WO2018190595A1 (ko) * | 2017-04-13 | 2018-10-18 | 엘지전자(주) | 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치 |
JP6986868B2 (ja) * | 2017-06-19 | 2021-12-22 | キヤノン株式会社 | 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、プログラム |
WO2019029951A1 (en) * | 2017-08-08 | 2019-02-14 | Thomson Licensing | METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING |
US10484695B2 (en) * | 2017-10-23 | 2019-11-19 | Google Llc | Refined entropy coding for level maps |
CN115190296A (zh) * | 2017-12-28 | 2022-10-14 | 松下电器(美国)知识产权公司 | 编码装置、解码装置和存储介质 |
AU2018416684B2 (en) * | 2018-03-29 | 2022-12-01 | Sony Corporation | Image processing apparatus and image processing method |
JP2018157571A (ja) * | 2018-04-19 | 2018-10-04 | マイクロソフト テクノロジー ライセンシング,エルエルシー | 非変換符号化のためのスキャン順序 |
US10645381B2 (en) | 2018-04-30 | 2020-05-05 | Google Llc | Intra-prediction for smooth blocks in image/video |
KR102630190B1 (ko) | 2018-09-23 | 2024-01-25 | 엘지전자 주식회사 | 비디오 신호의 부호화/복호화 방법 및 이를 위한 장치 |
WO2020084475A1 (en) | 2018-10-22 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Utilization of refined motion vector |
WO2020084476A1 (en) * | 2018-10-22 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Sub-block based prediction |
EP3857879A4 (en) | 2018-11-12 | 2022-03-16 | Beijing Bytedance Network Technology Co., Ltd. | SIMPLIFICATION OF COMBINED INTER-INTRA PREDICTION |
CN114374839B (zh) | 2018-11-12 | 2023-06-20 | Lg电子株式会社 | 图像解码方法、图像编码方法和数据发送方法 |
CN113170192B (zh) * | 2018-11-15 | 2023-12-01 | 北京字节跳动网络技术有限公司 | 仿射的merge与mvd |
WO2020103877A1 (en) | 2018-11-20 | 2020-05-28 | Beijing Bytedance Network Technology Co., Ltd. | Coding and decoding of video coding modes |
KR20210091161A (ko) | 2018-11-20 | 2021-07-21 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 부분적 위치에 기반한 차분 계산 |
US10939107B2 (en) | 2019-03-01 | 2021-03-02 | Sony Corporation | Embedded codec circuitry for sub-block based allocation of refinement bits |
KR102635518B1 (ko) | 2019-03-06 | 2024-02-07 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 변환된 단예측 후보의 사용 |
WO2020184920A1 (ko) * | 2019-03-08 | 2020-09-17 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
CN113905232A (zh) * | 2019-03-09 | 2022-01-07 | 杭州海康威视数字技术股份有限公司 | 进行编码和解码的方法、解码端、编码端和系统 |
WO2020185005A1 (ko) * | 2019-03-12 | 2020-09-17 | 엘지전자 주식회사 | 변환에 기반한 영상 코딩 방법 및 그 장치 |
KR20230169434A (ko) | 2019-04-02 | 2023-12-15 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 디코더 측 움직임 벡터 유도 |
WO2020215338A1 (zh) * | 2019-04-26 | 2020-10-29 | 深圳市大疆创新科技有限公司 | 视频编解码的方法和装置 |
CN117221544A (zh) * | 2019-05-19 | 2023-12-12 | 字节跳动有限公司 | 数字视频中的变换旁路编解码残差块 |
KR102211000B1 (ko) * | 2019-06-21 | 2021-02-02 | 삼성전자주식회사 | 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치 |
KR20220024500A (ko) * | 2019-07-12 | 2022-03-03 | 엘지전자 주식회사 | 변환에 기반한 영상 코딩 방법 및 그 장치 |
US11962779B2 (en) * | 2019-11-11 | 2024-04-16 | Lg Electronics Inc. | Image coding method based on conversion, and device for same |
JP7441638B2 (ja) | 2019-12-06 | 2024-03-01 | 日本放送協会 | 符号化装置、復号装置、及びプログラム |
US11418814B2 (en) * | 2020-05-22 | 2022-08-16 | Tencent America LLC | Constraint on syntax elements for still picture profiles |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9422738D0 (en) * | 1994-11-10 | 1995-01-04 | Univ Western Ontario | Context-based, adaptive, progressive, lossless compression of still continuous -tone images |
CN1874509B (zh) * | 2001-09-14 | 2014-01-15 | 诺基亚有限公司 | 基于上下文的自适应二进制算术编码的方法和系统 |
CA2499212C (en) * | 2002-09-17 | 2013-11-19 | Vladimir Ceperkovic | Fast codec with high compression ratio and minimum required resources |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
US7379608B2 (en) * | 2003-12-04 | 2008-05-27 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. | Arithmetic coding for transforming video and picture data units |
KR100612015B1 (ko) * | 2004-07-22 | 2006-08-11 | 삼성전자주식회사 | 컨텍스트 적응형 이진 산술 부호화 방법 및 그 장치 |
US8311119B2 (en) * | 2004-12-31 | 2012-11-13 | Microsoft Corporation | Adaptive coefficient scan order |
RU2336661C2 (ru) * | 2005-04-19 | 2008-10-20 | Самсунг Электроникс Ко., Лтд. | Способ и устройство адаптивного выбора контекстной модели для кодирования по энтропии |
US7751636B2 (en) * | 2005-09-23 | 2010-07-06 | Faraday Technology Corp. | Method for decoding transform coefficients corresponding to an image |
CN101370138B (zh) * | 2007-08-17 | 2011-02-09 | 中国科学院计算技术研究所 | 一种h.264标准cavlc残差系数的解码方法 |
CN101933331B (zh) * | 2007-09-06 | 2014-04-09 | 日本电气株式会社 | 视频编码装置、视频编码方法、视频解码方法 |
WO2010143853A2 (ko) * | 2009-06-07 | 2010-12-16 | 엘지전자 주식회사 | 비디오 신호의 디코딩 방법 및 장치 |
US9154801B2 (en) * | 2010-09-30 | 2015-10-06 | Texas Instruments Incorporated | Method and apparatus for diagonal scan and simplified coding of transform coefficients |
ES2864591T3 (es) * | 2011-12-21 | 2021-10-14 | Sun Patent Trust | Selección de contexto para codificación por entropía de coeficientes de transformada |
-
2012
- 2012-12-26 JP JP2013551716A patent/JP6134651B2/ja active Active
- 2012-12-26 CN CN201280065204.2A patent/CN104067614B/zh active Active
- 2012-12-26 CN CN201810673979.7A patent/CN108900839B/zh active Active
- 2012-12-26 US US14/368,377 patent/US10129548B2/en active Active
- 2012-12-26 RU RU2014130759A patent/RU2628130C2/ru active
- 2012-12-26 EP EP12863083.7A patent/EP2800368B1/en active Active
- 2012-12-26 WO PCT/JP2012/083555 patent/WO2013099892A1/ja active Application Filing
- 2012-12-26 CN CN201810673977.8A patent/CN108769691B/zh active Active
-
2017
- 2017-04-24 JP JP2017085594A patent/JP6441406B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN108900839B (zh) | 2022-05-31 |
CN108769691A (zh) | 2018-11-06 |
CN108769691B (zh) | 2022-05-31 |
US10129548B2 (en) | 2018-11-13 |
RU2628130C2 (ru) | 2017-08-15 |
EP2800368A4 (en) | 2015-06-03 |
JP2017169209A (ja) | 2017-09-21 |
CN104067614B (zh) | 2018-07-27 |
EP2800368A1 (en) | 2014-11-05 |
CN104067614A (zh) | 2014-09-24 |
US20140348247A1 (en) | 2014-11-27 |
JPWO2013099892A1 (ja) | 2015-05-07 |
EP2800368B1 (en) | 2021-07-28 |
JP6441406B2 (ja) | 2018-12-19 |
CN108900839A (zh) | 2018-11-27 |
WO2013099892A1 (ja) | 2013-07-04 |
RU2014130759A (ru) | 2016-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6134651B2 (ja) | 算術復号装置、算術符号化装置および算術復号方法 | |
JP7001768B2 (ja) | 算術復号装置 | |
JP6560702B2 (ja) | 算術復号装置、算術符号化装置、算術復号方法、および、算術符号化方法 | |
JP7200320B2 (ja) | 画像フィルタ装置、フィルタ方法および動画像復号装置 | |
JP6190361B2 (ja) | 算術復号装置、画像復号装置、算術符号化装置、および画像符号化装置 | |
US11627337B2 (en) | Image decoding device | |
US10547861B2 (en) | Image decoding device | |
WO2016203881A1 (ja) | 算術復号装置及び算術符号化装置 | |
JP2013187869A (ja) | 算術復号装置、算術符号化装置、画像復号装置、および画像符号化装置 | |
JP2013192118A (ja) | 算術復号装置、画像復号装置、算術符号化装置、および画像符号化装置 | |
JP2013141094A (ja) | 画像復号装置、画像符号化装置、画像フィルタ装置、および符号化データのデータ構造 | |
WO2012137890A1 (ja) | 画像フィルタ装置、復号装置、符号化装置、および、データ構造 | |
JP2013118424A (ja) | 画像復号装置、画像符号化装置、および符号化データのデータ構造 | |
JP2013223051A (ja) | 算術復号装置、画像復号装置、算術符号化装置、および画像符号化装置 | |
JP2013251827A (ja) | 画像フィルタ装置、画像復号装置、画像符号化装置、およびデータ構造 | |
JP2021057620A (ja) | 画像フィルタ装置、画像復号装置、画像符号化装置、およびデータ構造 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151021 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151021 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170110 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170313 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170328 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170424 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6134651 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |