(57)【要約】      （修正有）【課題】Large  Blockの算術符号化処理を係数発生の特徴に合わせて適切に切り替えることによって、算術符号化の処理量を削減する。【解決手段】画像符号化装置５００の符号化部と画像復号装置の復号部に関する発明であり，画像符号化装置５００は、制御部５０１，並べ替えバッファ５１１，演算部５１２，直交変換部５１３，量子化部５１４，符号化部５１５，蓄積バッファ５１６，レート制御部５２３，逆量子化部５１７，逆直交変換部５１８，演算部５１９、インループフィルタ部５２０、フレームメモリ５２１，予測部５２２を有している。画像符号化装置５００は、予測処理を用いて画像データの符号化を行い，例えばＶＶＣ規格に対応した符号化ストリームを生成する。【選択図】図１
2020127065.tif 000002
【特許請求の範囲】
【請求項１】
画像符号化装置において、
変換ブロックサイズTbSizeと有効変換ブロックサイズnonZeroSizeを求める判定部と、
TbSizeとnonZeroSizeとCUモードなどの符号化情報から、最後の有効係数位置LastPosX,  LastPosYの値を所定の方法に従いbin列に変換する２値化部と、
前記のbin列のbin位置に応じてコンテキストを切り替えるコンテキストモデル部と、
前記コンテキストを入力として、bin列をbit列に符号化する算術符号化部と
を備えることを特徴とする画像符号化装置。
【請求項２】
画像復号装置において、
ストリームから変換ブロックサイズTbSizeと有効変換ブロックサイズnonZeroSizeとCUモードを復号する、復号部と、
TbSizeとnonZeroSizeとCUモードに従い、最後の有効係数位置LastPosX,  LastPosYを通常モードで復号するか、バイパスモードで復号するかを判定する判定部と、
bit列からbin列を算出するコンテキスト適応型２進算術復号部と、
前記算術復号部から出力されるbin列を入力とし、シンタックス・エレメントを復号する２値変換部と
を備えることを特徴とする画像復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像符号化装置及び画像復号装置に関する。
【背景技術】
【０００２】
従来技術
次世代画像符号化標準規格VVC(Versatile  Video  Coding)ではHEVCと同様にcoding  tree  units(CTUs)の概念を採用している。PictureをCTUに分割し、CTUを最上位のブロック単位として符号化を行う。2018年10月時点のVVCでは、CTUの最大サイズは128x128と規定されている。ただし、Luma  transform  block(TB)の最大サイズは64x64である。
【０００３】
HEVCでは、CTUはquad-tree(4分木)構造を用いてさらにcoding  units(CUs)に分割される。CU内にprediction  unit(PU)とTransform  Unit(TU)を持ち、入力画像の特徴に合わせてPUサイズとTUサイズを独立に選択できることがHEVCの特徴でもある。TUはCUと同様にquaternary-tree構造で分割可能である。
【０００４】
一方VVCでは、HEVCのCU/PU/TUの概念に代わって、multi-type  tree(binary-tree、ternary-tree)+quad-tree構造が採用された。CTUはまずquad-treeで分割される。quad-tree  leafはさらに、multi-type  tree構造に分割される。図4にmulti-type  treeの構造を示す。binary-tree、ternary-tree構造により、より柔軟にブロック分割することがき、VVCでは長方形CUを持つことができる。
【０００５】
multi-type  tree  leafがCUサイズとなる。Transformサイズの上限サイズを超えない限り、CUのサイズはPUのサイズ、TUサイズと同一である。CUサイズTransformサイズを超えている場合は、TUは上限値までに自動的に分割される。その場合のブロックサイズはCU  ＝  PU  !=  TUとなる。
【０００６】
Large  Block  Size  Transform
HEVCの直交変換のブロックサイズは最大32x32であるのに対して、VVCでは直交変換のブロックサイズが最大64x64まで拡張されている。VVCでは演算量を削減するために、32x32より大きいサイズのブロックの高周波領域係数を0にする処理(Zero  Out)が採用されている。例えば、ブロックサイズが64以上の場合、左上の32x32の領域のみ有効なデータとして出力し、そのほかの領域は０を出力する。（図3  Zero  Outを参照）
【０００７】
【表１】
2020127065.tif 000003
【０００８】
表１はLastPostionのsyntax表である。図5は64x64サイズの変換ブロックのスキャン順を図示している。表1のlast_sig_coeff_x_prefix,  last_sig_coeff_x_suffixはスキャン順で走査したときの、最後の有効変換係数の横方向の位置を示す。last_sig_coeff_y_prefix,  last_sig_coeff_y_suffixはスキャン順で走査したときの、最後の有効変換係数の縦方向の位置を示す。最後の有効変換係数の位置LastSignificantCoeffX,  LastSignificantCoeffYは下記の式で求める。
【０００９】
【数１】
2020127065.tif 000004
【００１０】
前記LastSignificantCoeffX,  LastSignificantCoeffYからスキャン順序によって、変換残差ブロック内の変換係数をスキャンしつつ、変換残差ブロックに有効変改係数が存在するかどうか示すcoded_sub_block_flagが復号される。その後、変換残差ブロック内の０ではない値を有する有効変換係数を示す有効性フラグ（sig_coeff_flag）及び有効変換係数のレベル情報が復号される。coded_sub_block_flagは、所定のスキャン順序によってスキャニングされつつ、コンテキスト基盤二進算術符号（context  adaptive  binary  arithmetic  coding）により復号される。coded_sub_block_flagが復号された後、sig_coeff_flagが復号され、有効係数のレベル情報、すなわち、有効係数の符号（sign）及び絶対値（ａｂｓ）が復号される。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】B.  Bross,  J.  Chen,  S.  Liu,  “Versatile  Video  Coding  (Draft  3),”  document  JVET-L1001-v9,  12th  JVET  meeting:  Macao,  CN,  3-12  Oct  2018.
【非特許文献２】J  Choi,  J  Heo,  S  Yoo,  J  Choi,  Ling  Li,  J  Lim,  S  Kim,  “Non-CE7:  Last  position  coding  for  large  block-size  transforms”,  document  JVET-M251,  13th  JVET  meeting:  Marrakech,  MA,  9-18  Jan.  2019.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
前述のLarge変換ブロックサイズ64x64に対応するために、算術符号化部に64x64ブロック用のコンテキストと、最終有効係数位置(LastPosX/Y)の値を63まで指定できるように、２値化テーブルを拡張する必要がある。
【００１３】
ただし、前述のZeroOut処理により、変換ブロック内の左上からの相対座標でxが32以上、または、yが32以上の領域の変換係数が0になるため、最終有効係数位置は０から３１の範囲に限定してよい。
【００１４】
非特許文献２では、上記のZeroOutの特徴を利用しLastPosX/Yの符号化する方法を提案している。
【００１５】
表２はゼロアウトを考慮する前の２値化テーブルを示す。
【００１６】
【表２】
2020127065.tif 000005
【００１７】
表３はZeroOutを考慮した後の２値化テーブルを表す。
【００１８】
【表３】
2020127065.tif 000006
【００１９】
表４は表２と表３のbin列の長さの比較を示している。
【００２０】
【表４】
2020127065.tif 000007
【００２１】
たしかに、表３の方式ではLastPos値が24-31のとき、bin列の長さが９となり、表２「方式の場合のbin列長１０に比べて１少ない。また、図7に示すように、６４ｘ６４用のコンテキストも拡張される。
【００２２】
一方、変換ブロックサイズが32x32以上かつCUモードがIntraのとき、変換係数の分は低次から高次まで広く分布する傾向がある。しかし、表３のテーブルはLastPosの値が小さいときにbin列長が短くなるように設計されている。
【００２３】
Large  Blockサイズ  &  Intra-CUの場合、最終有効係数位置が高次側まで発生する頻度が高くなるので、算術符号化処理の処理量が増える課題がある。本発明は、Large  Blockの算術符号化処理を係数発生の特徴に合わせて適切に切り替えることによって、算術符号化の処理量を削減することを目的とする。
【課題を解決するための手段】
【００２４】
画像符号化装置は、変換ブロックサイズTbSizeと有効変換ブロックサイズnonZeroSizeを求める判定部と、TbSizeとnonZeroSizeとCUモードなどの符号化情報から、最後の有効係数位置LastPosX,  LastPosYの値を所定の方法に従いbin列に変換する２値化部と、前記のbin列のbin位置に応じてコンテキストを切り替えるコンテキストモデル部と、前記コンテキストを入力として、bin列をbit列に符号化する算術符号化部とを備える。
【図面の簡単な説明】
【００２５】
【図１】本開示に係る情報処理を説明する図である。
【図２】本開示に係る情報処理を説明する図である。
【図３】本開示に係る情報処理を説明する図である。
【図４】本開示に係る情報処理を説明する図である。
【図５】本開示に係る情報処理を説明する図である。
【図６】本開示に係る情報処理を説明する図である。
【図７】本開示に係る情報処理を説明する図である。
【図８】本開示に係る情報処理を説明する図である。
【図９】本開示に係る情報処理を説明する図である。
【図１０】本開示に係る情報処理を説明する図である。
【図１１】本開示に係る情報処理を説明する図である。
【図１２】本開示に係る情報処理を説明する図である。
【図１３】本開示に係る情報処理を説明する図である。
【図１４】本開示に係る情報処理を説明する図である。
【図１５】本開示に係る情報処理を説明する図である。
【図１６】本開示に係る情報処理を説明する図である。
【図１７】本開示に係る情報処理を説明する図である。
【図１８】本開示に係る情報処理を説明する図である。
【発明を実施するための形態】
【００２６】
１．本発明の全体構成
本発明は画像符号化装置の符号化部と画像復号装置の復号部に関する発明である。
【００２７】
図1は、画像符号化装置の１実施形態の構成を例示している。画像符号化装置５００は、予測処理を用いて画像データの符号化を行い、例えばVVC規格に対応した符号化ストリームを生成する。
【００２８】
画像符号化装置５００は、制御部５０１、並べ替えバッファ５１１、演算部５１２、直交変換部５１３、量子化部５１４、符号化部５１５、蓄積バッファ５１６、レート制御部５２３を有する。また、画像符号化装置５００は、逆量子化部５１７、逆直交変換部５１８、演算部５１９、インループフィルタ部５１８、フレームメモリ５２１、予測部５２２を有している。
【００２９】
図16は画像符号化装置の全体の動作を表すフローチャートを示す。
【００３０】
図2は画像復号装置の１実施形態の構成を示している。  画像復号装置６００は、蓄積バッファ６１１、並べ替えバッファ６１７、逆量子化部６１３、逆直交変換部６１４、演算部６１５、インループフィルタ部６１６、フレームメモリ６１８、予測部６１９を有している。
【００３１】
図17は画像復号装置の全体の動作を表すフローチャートを示す。
【００３２】
２．本発明の詳細な動作
以下、図1の本発明の一実施形態による画像符号化装置５００の符号化部５１５、及び図2の画像復号化装置６００の復号部６１２で行われる残差ブロックの符号化過程及び復号化過程について具体的に説明する。本発明の一実施形態による残差ブロックの符号化方法及び復号化方法及びその装置は、一般的な映像コーデックでの残差ブロックの符号化及び復号化にも適用されるということを本発明が属する技術分野で当業者であるならば、明細書を介して理解することができるであろう。
【００３３】
図6は、変換ブロック（transformation  residual  block）を符号化する過程について説明するための参照図である。量子化部５１４から出力された変換ブロックは、符号化部５１５に入力される。符号化部５１５は変換ブロック内を図6に図示している通りのスキャン順でスキャンを行い、０でない有効係数の内、最後の有効係数の位置を決定する。図6の例では最後の有効変換係数が(LastPosX,LastPosY)=(13,13)である場合を示している。
【００３４】
実施例１
図8は、本発明の一実施形態による符号化部５１５の構成を示したブロック図である。符号化部５１５は２値化部、コンテキストモデル部、２進算術符号化部を含む。２進算術符号化部はコンテキストモードとbypassモード部の動作モードを持つ。
図9はLastPosX,LastPosYを符号化の処理内容を示すフローチャートである。
【００３５】
ステップS1
変換ブロックサイズ(TbSize),  有効変換ブロックサイズ(nonZeroSize)を求める。変換ブロックサイズ(TbSize)は並び替えバッファ５１１に含む変換ブロックサイズ判定部により計算される。有効変換ブロックサイズnonZeroSizeは下記のように求める。
nonZeroSize  =  Min(  TbSize,  32  )
長方形ブロックに対しては、TbSize、nonZeroSizeを横方向と縦方向とに分けて別々に求めてもよい。
【００３６】
ステップS2
通常のCABAC処理を実施するか、バイパスモードのCABACを実施するかを判定する。
TbSizeが32以下のとき、または、当該ブロックがInterCUのとき、ステップS3に進む。TbSizeが32より大きく、かつ、IntraCUのときはステップS５に進む。ステップS5以降の処理により、LargeBlockに適した算術符号化を実施することになる。
【００３７】
ステップ３（一般的な２値化処理）
２値化部は、最後の有効変換係数の位置を示す変換ブロック内の横軸方向への相対的位置ｘ、及び縦軸方向への相対的位置ｙを二進値に変換し、bin列を出力する。最後の有効変換係数の位置情報を二進化するための方式としては、図10、図11、図12のよう、truncated  unary  binarization、固定長二進符号化（fixed  length  binarization）を適用することができる。LastPosX,LastPosYを図10の２値化テーブルを用いてbin列に変換する。
【００３８】
例えば、図６の例において、最後の有効変換係数の位置が、Ｘ＝13である場合、LastPosXを表すsyntax  element  last_sig_coeff_x_prefix,  last_sig_coeff_y_suffixは  prefix=11111110,  suffix=01と二進化される。
【００３９】
【表５】
2020127065.tif 000008
【００４０】
ステップ４（一般的な算術符号化処理）
2値化部によって、二進値にマッピングされた最後の有効変換係数の位置情報は、コンテキストモデルに入力される。コンテキストモデルは、入力されたビン（bin）値、または以前に符号化されたシンタックス・エレメントに基づいて、現在入力されたビン（bin）を符号化するのに必要な確率モデルであるコンテキストを決定する。特に、本発明の一実施形態によれば、最後の有効変換係数の位置によって、あらかじめ決定された所定のコンテキストのうち一つが選択される。
【００４１】
算術符号化部は、コンテキストモデルで決定された確率モデルに基づいて、入力されたビン（bin）値を算術符号化してビットストリームを生成する。
【００４２】
図13は、本発明の一実施形態による最後の有効変換係数の位置の符号化のためのコンテキスト選択過程を説明するための参照図である。
【００４３】
コンテキストモデルは、最後の有効変換係数の位置によって、あらかじめ準備した複数個のコンテキストのうち一つを選択する。複数個のコンテキストは、「０」と「１」との二進信号を、それぞれ発生確率が高いシンボル（ＭＰＳ：most  probable  symbol）と、発生確率が低いシンボル（ＬＰＳ：least  probable  symbol）とに分類し、ＭＰＳ及びＬＰＳの確率値を設定したものである。複数個のコンテキストは、最後の有効変換係数の位置によって、「０」と「１」との二進信号のうち、いずれがそれぞれＭＰＳ及びＬＰＳに該当し、ＭＰＳ及びＬＰＳの確率値を設定したものであり、「０」と「１」のうち、いずれのシンボルをＭＰＳまたはＬＰＳに設定し、各ＭＰＳ及びＬＰＳの確率値をいかように設定するということは、設計可能な事項である。図13では、所定のスキャニング順序によって、変換ブロック内の変換係数をスキャニングするとき、最後の変換係数のbin列位置によって選択されるコンテキストを図示している。図13を参照すれば、コンテキストモデルは、４ｘ４変換ブロックについて、０、１、２のインデックス値を有する３個のコンテキストを具備し、StepS3で求めた、ビン列の位置によって、０、１、２のインデックス値を有する３個のコンテキストのうち、一つを選択する。すなわち、４ｘ４変換ブロックで、LastPosX=2でbin列が１１０の場合、最初のbin値１には０のインデックス値を有するコンテキストが選択され、２番目のbin値１には１のインデックス値を有するコンテキストが選択され、３番目のbin値０には２のインデックス値を有するコンテキストが選択される。同様に、コンテキストモデルは、８ｘ８変換ブロックについて、３から５のインデックス値を有する３個のコンテキストを具備し、８ｘ８変換ブロック内で、最後の有効変換係数の位置を表すbin列によって、３から５のインデックス値を有する３個のコンテキストのうち一つを選択する。同様に、コンテキストモデルは、１６ｘ１６変換ブロックについて、６から９のインデックス値を有する４個のコンテキストを具備し、１６ｘ１６変換ブロック内で、最後の有効変換係数の位置を表すbin列によって、６から９のインデックス値を有する４個のコンテキストのうち一つを選択する。  同様に、コンテキストモデルは、３２ｘ３２変換ブロックについて、１０から１４のインデックス値を有する５個のコンテキストを具備し、３２ｘ３２変換ブロック内で、最後の有効変換係数の位置を表すbin列によって、１０から１４のインデックス値を有する４個のコンテキストのうち一つを選択する。
【００４４】
算術符号化部は、コンテキストモデルで決定されたコンテキストに基づいて、入力された最後の有効変換係数の位置を示すビン（bin）値を算術符号化してビットストリームを生成する。一例として、最後の有効変換係数の横軸方向の位置であるＸは、２の値を有し、２値化部は、このような２の値を二進化し、「１１０」というビン・ストリングを生成したと仮定する。また、コンテキストモデルで、最後の有効変換係数の位置によって選択されたコンテキストによれば、ＭＰＳは、０．８の確率値を有する「１」であり、ＬＰＳは、０．２の確率値を有する「０」と仮定する。算術符号化部は、［０，１］の区間を、「１１０」のビン・ストリングを構成する最初のビン（bin）である「１」の確率値によって分割して、［０，０．８］に更新し、次のビンである「１」の確率値によって、［０，０．８］の区間をさらに更新し、新しい区間［０，０．６４］を決定する。また、算術符号化部は、最後のビンである「０」の確率値によって、区間［０，０．６４］を更新して新しい区間［０．５１２，０．６４］を決定する。算術符号化部は、［０．５１２，０．６４］区間内に入る最短桁の実数０．６２５の二進表現である「０．１０１」で、小数部をとった「１１」を、最後の有効変換係数の横軸方向の位置を示す２の値に対応するコードワードとして出力する。同様に、算術符号化部は、最後の有効変換係数の縦軸方向の位置を示す座標値Ｙを二進化し、選択されたコンテキストによって、二進化された座標値Ｙを符号化してビットストリームを生成する。
【００４５】
一方、図8のＣＡＢＡＣ  は、前述の最後の有効変換係数の位置情報以外に、変換ブロック内に、０ではない有効変換係数が存在するか否かを示すcoded_sub_block_flag、及び変換ブロック内の各有効変換係数の位置を示すsig_coef_flagを符号化する。coded_sub_block_flag及びsig_coef_flagの符号化過程は、従来のＨ．２６５ないし、VVCで規定されている方法で実行される。
【００４６】
CABAC  bypassモードとは、bin列の0/1の発生確率を0.5と固定にすることにより、コンテキストの更新などの演算処理をバイパスすることで、CABACの演算処理を簡略化するモードである。前述の有効変換係数の位置を表すシンタックスlast_sig_coeff_x_sufixはバイパスモードによって符号化される。
【００４７】
ステップ5
LastPosX/YをFixed-length(FL)方式によりbin列に変換する。
図11、図12はFL方式の２値化変換の例を示している。図11は最大値（cMax）が３１のときのテーブルを示している。cMaxの値をnonZeroSize-1としてbin列の生成を行う。
【００４８】
例えば、図6の例において、最後の有効変換係数の位置が、Ｘ＝13及びＹ＝13である場合、図11の符号化方式を用いて、それぞれ、LastPosＸ＝01101、LastPosY＝01101に二進化される。
【００４９】
ステップ６
有効変換係数の位置を表すbin列を前述のバイパスモードの算術符号化を実行し、ビットストリームを生成する。
【００５０】
実施例２
復号部６１２において、LastPosX,LastPosYを復号する方法について説明する。
図14は、本発明の一実施形態による復号部６１２の構成を示したブロック図である。復号部６１２は２値化部、コンテキストモデル部、２進算術符号化部を含む。２進算術符号化部はコンテキストモードとbypassモード部を含む。
図15はLastPosX,LastPosYを可逆復号の処理内容を示すフローチャートである。
【００５１】
ステップS10
ストリームから変換ブロックサイズTbSize,  有効変換ブロックサイズnonZeroSizeを復号する。
【００５２】
ステップS20
TbSizeが32以下のとき、または、当該ブロックがInterCUのとき、ステップS3０に進み通常CABAC処理を実施する。TbSizeが32より大きく、かつ、IntraCUのときはStepS50に進み、バイパスモードのCABACを実施する。
【００５３】
ステップS３0
算術復号部は、横軸方向及び縦軸方向への相対的位置情報を復号化し、最後の有効変換係数の位置を決定する。算術復号部は、算術符号化部で遂行される符号化過程との逆過程として、CABACを適用し、最後の有効変換係数の位置を復号化し、最後の有効変換係数の位置を決定する。算術復号部は、複数個のコンテキストのうち、最後の有効変換係数のbin列の位置によって１つのコンテキストを選択し、選択されたコンテキストによって、CABAC復号化し、最後の有効変換係数の位置を表すbin列を取得する。
【００５４】
ステップS４0
従来方式（図10）に従いbin列からsyntax値を復号し、LastPosX,  LastPosYの値を求める。
【００５５】
ステップS５0
バイパスモードでCABAC復号化し、最後の有効変換係数の位置を表すbin列を取得する。
【００５６】
ステップS６0
FL方式（図11、図12）によりbin列からsyntax値を復号し、LastPosX,  LastPosYの値を求める。
【００５７】
実施例３
図18はCUモードがtransquant_bypassモード、または、transform_skipモードのときの、LastPosX,LastPosYを符号化の処理内容を示すフローチャートである。
【００５８】
transquant_bypassモードとは直交変換、逆量子を用いないで、高効率な可逆符号化をサポートするためのモードである。transform_skipモードとは、直交変換を用いないで、スクリーンコンテンツなどを高効率に符号化するモードである。
【００５９】
transquant_bypassモード、transform_skipモードのときは直交変換を用いないので、変換係数が低域に集中せずに、ブロック内の広い範囲に分布する傾向がある。また、transquant_bypassモード、transform_skipモードのときは、ZeorOutを適用しないので、nonZeroSize＝TbSizeとなる。
【００６０】
上記の特徴を考慮し、transquant_bypassモード  or    transform_skipモードのときは、bin列の計算にFL方式を使用し、cMax=TbSizeとしてbin列の計算を行う。
【００６１】
（発明の効果）
本発明の実施形態によれば、Large  Block時の算術符号化処理を係数発生の特徴に合わせて適切に切り替えることによって、算術符号化の処理量を削減することができる。
【００６２】
変換ブロックサイズ64x64の専用コンテキストモデルが不要になり、メモリ等の使用量を小さくすることができる。
【図１】
2020127065.tif 000009
【図２】
2020127065.tif 000010
【図３】
2020127065.tif 000011
【図４】
2020127065.tif 000012
【図５】
2020127065.tif 000013
【図６】
2020127065.tif 000014
【図７】
2020127065.tif 000015
【図８】
2020127065.tif 000016
【図９】
2020127065.tif 000017
【図１０】
2020127065.tif 000018
【図１１】
2020127065.tif 000019
【図１２】
2020127065.tif 000020
【図１３】
2020127065.tif 000021
【図１４】
2020127065.tif 000022
【図１５】
2020127065.tif 000023
【図１６】
2020127065.tif 000024
【図１７】
2020127065.tif 000025
【図１８】
2020127065.tif 000026