(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-07-22
(54)【発明の名称】残差及び係数符号化の方法並びに装置
(51)【国際特許分類】
H04N 19/13 20140101AFI20220714BHJP
H04N 19/70 20140101ALI20220714BHJP
H04N 19/176 20140101ALI20220714BHJP
【FI】
H04N19/13
H04N19/70
H04N19/176
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022505523
(86)(22)【出願日】2020-09-24
(85)【翻訳文提出日】2022-01-26
(86)【国際出願番号】 US2020052527
(87)【国際公開番号】W WO2021062014
(87)【国際公開日】2021-04-01
(32)【優先日】2019-09-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521289098
【氏名又は名称】ベイジン ダジア インターネット インフォメーション テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO., LTD.
【住所又は居所原語表記】Room 101D1-7,1st Floor,Building 1,No.6,Shangdi West Road,Haidian District,Beijing 100085,P.R.China
(74)【代理人】
【識別番号】100112656
【氏名又は名称】宮田 英毅
(74)【代理人】
【識別番号】100089118
【氏名又は名称】酒井 宏明
(72)【発明者】
【氏名】チェン,イー-ウェン
(72)【発明者】
【氏名】シュウ,シャオユウ
(72)【発明者】
【氏名】マ,ツン-チュアン
(72)【発明者】
【氏名】ジュ,ホン-ジェン
(72)【発明者】
【氏名】ワン,シャンリン
(72)【発明者】
【氏名】ユ,ビン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159PP04
5C159RC12
5C159TA57
5C159TB08
5C159UA02
5C159UA05
(57)【要約】
電子装置はビデオデータをデコードする方法を実施する。前記方法は、ビットストリームから変換スキップモード符号化ブロックに対応するビデオデータを受信することと、前記ビデオデータから変換スキップモード符号化ブロック内のピクセルに対する第1コードワード、第2コードワード及び第1組のコードワードをデコードすることと、前記第1組のコードワードから初期レベル値を導き出すことと、一定のRiceパラメータを使用して生成した予め定義されたマッピング関係に基づいて前記第1コードワードをピクセルの剰余に変換することと、前記第2コードワードを前記剰余の符号値に変換することと、前記剰余、前記符号値及び前記初期レベル値からピクセルの量子化残差を導き出すことと、を含む。
【特許請求の範囲】
【請求項1】
ビデオデータをデコードする方法であって、
ビットストリームから変換スキップモード符号化ブロックに対応するビデオデータを受信することと、
前記ビデオデータから前記変換スキップモード符号化ブロック内のピクセルに対する第1コードワード、第2コードワード及び第1組のコードワードをデコードすることと、
前記第1組のコードワードから初期レベル値を導き出すことと、
一定のRiceパラメータを使用して生成した予め定義されたマッピング関係に基づいて、前記第1コードワードをピクセルの剰余に変換することと、
前記第2コードワードを前記剰余の符号値に変換することと、
前記剰余、前記符号値及び前記初期レベル値から前記ピクセルの量子化残差を導き出すことと、を含むビデオデータをデコードする方法。
【請求項2】
前記予め定義されたマッピング関係は、
前記一定のRiceパラメータを使用して一定の二値化パラメータを計算することと、
前記一定の二値化パラメータを使用して、1組の候補剰余値のうちの1つに対して、コードワードのプレフィックス値及び対応コードワードの選択可能なサフィックス値を決定することと、
前記1組の候補剰余値のうちの最後の1つを決定するまで、前記1組の候補剰余値のうちの異なる1つに対して、前記コードワードの前記決定ステップを繰り返すことと、により生成される請求項1に記載の方法。
【請求項3】
前記コードワードのプレフィックス値は切断されたRice二値化過程を使用して決定したものである請求項2に記載の方法。
【請求項4】
前記プレフィックス値が、長さが6で且つすべてのビットがいずれも1に等しいビットストリングに等しい場合に、前記コードワードの前記サフィックス値は決定される請求項2に記載の方法。
【請求項5】
前記予め定義されたマッピング関係は、ルックアップテーブルの形式である請求項1に記載の方法。
【請求項6】
前記初期レベル値は、前記変換スキップモード符号化ブロック内の前記ピクセルの位置に基づいて前記ピクセルの量子化残差を導き出すことに用いられる請求項1に記載の方法。
【請求項7】
前記第1コードワードは、予め定義された値を有する前記ピクセルの剰余の固定バイナリコードワードである請求項1に記載の方法。
【請求項8】
前記一定のRiceパラメータは、1、2及び3からなる群から選ばれた値を有する請求項1に記載の方法。
【請求項9】
前記第1コードワードは構文要素abs_remainderに対応し、前記第2コードワードは構文要素sign_coefficient_flagに対応し、且つ前記第1組のコードワードは構文要素dec_abs_levelに対応する請求項1に記載の方法。
【請求項10】
単一のコンテキストモデルは、前記第1コードワード、前記第2コードワード及び前記第1組のコードワードをデコードすることに使用される請求項1に記載の方法。
【請求項11】
前記変換スキップモード符号化ブロックは、符号化ツリーブロックの一部であり、且つ、輝度サンプル又は色度サンプルを含む請求項1に記載の方法。
【請求項12】
電子装置であって、
1つ又は複数の処理ユニットと、
前記1つ又は複数の処理ユニットに結合されるメモリと、
前記メモリに記憶される複数のプログラムと、
を含み、
前記プログラムは、前記1つ又は複数の処理ユニットにより実行されるとき、前記電子装置に請求項1~11に記載の方法を実行させる電子装置。
【請求項13】
非一時的コンピュータ可読記憶媒体であって、
1つ又は複数の処理ユニットを有する電子装置により実行される複数のプログラムを記憶し、
前記複数のプログラムは、前記1つ又は複数の処理ユニットにより実行されるとき、前記電子装置に請求項1~11に記載の方法を実行させる非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本願は、2019年9月24日に提出した発明の名称「Residual and Coefficients Coding for Video Coding」の米国仮特許出願第62/905,342号の優先権を主張し、該出願は援用により本願に全体的に取り込まれる。
【技術分野】
【0002】
本願は一般的にビデオデータ符号化及び圧縮に関し、且つ具体的に、ビデオ符号化のための残差及び係数符号化の改善の方法並びにシステムに関する。
【背景技術】
【0003】
デジタルビデオは様々な電子機器、例えばデジタルテレビ、ラップトップ又はデスクトップパソコン、タブレットコンピュータ、デジタルカメラ、デジタル記録装置、デジタルメディアプレーヤー、ビデオゲームコンソール、スマートフォン、ビデオ遠隔会議装置、ビデオストリーミング装置等によりサポートされている。これらの電子機器はMPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分、高度ビデオ符号化(AVC)、高効率ビデオ符号化(HEVC)及び汎用ビデオ符号化(VVC)標準により定義されたビデオ圧縮/解凍標準を実現することにより、デジタルビデオデータを伝送、受信、エンコーディング、デコーディング及び/又は記憶する。ビデオ圧縮は一般的に、空間領域(イントラフレーム)予測及び/又は時間領域(インターフレーム)予測を実施することによりビデオデータにおける固有の冗長性を低減又は除去することを含む。ブロックベースビデオ符号化に対して、ビデオフレームは1つ又は複数のスライスに分割され、各スライスは複数のビデオブロックを有し、これらのビデオブロックは符号化ツリーユニット(CTU)とも称されてもよい。各CTUは1つの符号化ユニット(CU)を含んでもよく、又は、予め定義された最小CU寸法に達するまで一層小さなCUに再帰的に分割される。各CU(リーフCUとも称される)は1つ又は複数の変換ユニット(TU)を含み、且つ各CUは更に1つ又は複数の予測ユニット(PU)を含む。各CUはイントラ、インター又はIBCモードに基づいて符号化されてもよい。同一ビデオフレーム内の隣接ブロックにおける参照サンプルに対する空間領域予測を使用してビデオフレームのイントラ符号化(I)スライスにおけるビデオブロックをエンコードする。ビデオフレームのインター符号化(P又はB)スライスにおけるビデオブロックは同一ビデオフレーム内の隣接ブロックにおける参照サンプルに対する空間領域予測又は他の以前及び/又は将来の参照ビデオフレームにおける参照サンプルに対する時間領域予測を使用することができる。
【0004】
以前にエンコードされた参照ブロック(例えば、隣接ブロック)の空間領域又は時間領域予測によって、符号化する現在ビデオブロックの予測ブロックを生成する。参照ブロックを探す過程はブロックマッチングアルゴリズムにより完了してもよい。符号化する現在ブロックと予測ブロックとの間のピクセル差を示す残差データは残差ブロック又は予測誤差と称される。インター符号化ブロックは予測ブロックを形成する参照フレーム内の参照ブロックを指す動きベクトルと残差ブロックに基づいてエンコードされる。動きベクトルの決定過程は一般的に動き推定と称される。イントラ符号化ブロックはイントラ予測モードと残差ブロックに基づいてエンコードされる。更なる圧縮のために、残差ブロックはピクセル領域から変換領域(例えば周波数領域)に変換されて、残差変換係数を生成し、次に残差変換係数を量子化することができる。最初に2次元配列で配置されている量子化変換係数は走査されて変換係数の1次元ベクトルを生成し、次にエントロピーによりビデオビットストリームにエンコードされて、更なる圧縮を実現することができる。
【0005】
次に、エンコードされたビデオビットストリームはコンピュータ可読記憶媒体(例えば、フラッシュメモリ)に保存され、それによりデジタルビデオ機能を有する他の電子機器によりアクセスされ、又は直接に有線又は無線により前記電子機器に伝送される。次に、前記電子機器は、例えば該エンコードされたビデオビットストリームを解析することによりビットストリームから構文要素を取得し、且つ少なくとも部分的にビットストリームから取得された構文要素に基づいてエンコードされたビデオビットストリームから前記デジタルビデオデータをそのオリジナルフォーマットに再構築してビデオ解凍(これは上記ビデオ圧縮とは逆の過程である)を実施し、且つ電子機器のディスプレイにおいて再構築されたデジタルビデオデータを表示する。
【0006】
デジタルビデオ品質は高精細度から4Kx2Kひいては8Kx4Kになるにつれて、エンコード/デコードするビデオデータ量は指数的に増加している。デコードされたビデオデータの画像品質を維持するとともに、ビデオデータをどのように一層効率的にエンコード/デコードするかは継続的な挑戦である。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本願においてビデオデータのエンコーディング及びデコーディングに関わる実施形態を説明し、且つより具体的に、パレットモードを用いるビデオエンコーディング及びデコーディングのシステム並びに方法に関わる実施形態を説明した。
【課題を解決するための手段】
【0008】
本願の第1態様によれば、ビデオデータをデコードする方法は、電子装置がビデオデータをデコードする方法を実施することを含む。前記方法は、ビットストリームから変換スキップモード符号化ブロックに対応するビデオデータを受信することと、前記ビデオデータから前記変換スキップモード符号化ブロック内のピクセルに対する第1コードワード、第2コードワード及び第1組のコードワードをデコードすることと、前記第1組のコードワードから初期レベル値を導き出すことと、一定のRiceパラメータを使用して生成した予め定義されたマッピング関係に基づいて、前記第1コードワードをピクセルの剰余に変換することと、前記第2コードワードを前記剰余の符号値に変換することと、前記剰余、前記符号値及び前記初期レベル値から前記ピクセルの量子化残差を導き出すことと、を含む。
【0009】
本願の第2態様によれば、電子装置は、1つ又は複数の処理ユニットと、メモリと、前記メモリに記憶される複数のプログラムと、を含む。前記プログラムは、前記1つ又は複数の処理ユニットにより実行されるとき、前記電子装置に以上に記載のビデオデータをデコードする方法を実施させる。
【0010】
本願の第3態様によれば、非一時的コンピュータ可読記憶媒体は、1つ又は複数の処理ユニットを有する電子装置により実行される複数のプログラムが記憶される。前記プログラムは、前記1つ又は複数の処理ユニットにより実行されるとき、前記電子装置に以上に記載のビデオデータをデコードする方法を実施させる。
【図面の簡単な説明】
【0011】
図面を含んで実施形態に対する更なる理解を提供し、且つ図面は本明細書に取り込まれて明細書の一部を構成し、前記図面は説明される実施形態を示し且つ該説明とともに基本原理を解釈することに用いられる。類似の図面記号は対応の部分を示す。
【
図1】
図1は本開示のいくつかの実施形態に係る例示的なビデオエンコーディング及びデコーディングシステムを示すブロック図である。
【
図2】
図2は本開示のいくつかの実施形態に係る例示的なビデオエンコーダを示すブロック図である。
【
図3】
図3は本開示のいくつかの実施形態に係る例示的なビデオデコーダを示すブロック図である。
【
図4A】
図4Aは本開示のいくつかの実施形態に係るフレームがどのように異なる寸法及び形状の複数のビデオブロックに再帰的に分割されるかを示すブロック図である。
【
図4B】
図4Bは本開示のいくつかの実施形態に係るフレームがどのように異なる寸法及び形状の複数のビデオブロックに再帰的に分割されるかを示すブロック図である。
【
図4C】
図4Cは本開示のいくつかの実施形態に係るフレームがどのように異なる寸法及び形状の複数のビデオブロックに再帰的に分割されるかを示すブロック図である。
【
図4D】
図4Dは本開示のいくつかの実施形態に係るフレームがどのように異なる寸法及び形状の複数のビデオブロックに再帰的に分割されるかを示すブロック図である。
【
図4E】
図4Eは本開示のいくつかの実施形態に係るフレームがどのように異なる寸法及び形状の複数のビデオブロックに再帰的に分割されるかを示すブロック図である。
【
図5A】
図5Aは本開示のいくつかの実施形態に係るコンテキスト(context)符号化及びバイパス符号化を用いる変換高効率符号化の例を示すブロック図である。
【
図5B】
図5Bは本開示のいくつかの実施形態に係るコンテキスト(context)符号化及びバイパス符号化を用いる変換高効率符号化の例を示すブロック図である。
【
図6】
図6は本開示のいくつかの実施形態に係る依存スカラー量子化の例示的な過程を示すブロック図である。
【
図7】
図7は本開示のいくつかの実施形態に係る2つの異なるスカラー量子化器を切り替えるための例示的なステートマシンを示すブロック図である。
【
図8】
図8は本開示のいくつかの実施形態に係るビデオデコーダが変換スキップモード符号化ブロックに対して残差符号化を実施する例示的な過程を示すフローチャートである。
【
図9】
図9は本開示のいくつかの実施形態に係る例示的なコンテキスト適応型バイナリ算術符号化(CABAC)エンジンを示すブロック図である。
【発明を実施するための形態】
【0012】
現在、具体的な実施形態を詳しく参照し、その例は図面に示される。以下の詳細な説明において、本明細書の主題を理解するため、多くの非限定的な具体的な詳細を詳述する。しかしながら、特許請求の範囲を逸脱せずに様々な代替案を使用することができ、且つこれらの具体的な詳細がない場合に主題を実践することができることは、当業者にとって明らかである。例えば、本明細書の主題はデジタルビデオ機能を有する様々なタイプの電子機器において実現されることができることは、当業者にとって明らかである。
【0013】
図1は本開示のいくつかの実施形態に係るビデオブロックを同時にエンコード及びデコードするための例示的なシステム10を示すブロック図である。
図1に示すように、システム10はソースデバイス12を備え、ソースデバイス12は後で宛先デバイス14によりデコードされるビデオデータを生成してエンコードする。ソースデバイス12及び宛先デバイス14は複数種類の電子機器のうちのいずれか1つを含んでもよく、デスクトップ又はラップトップコンピュータ、タブレットコンピュータ、スマートフォン、セットトップボックス、デジタルテレビ、カメラ、表示装置、デジタルメディアプレーヤー、ビデオゲームコンソール、ビデオストリーミング装置等を含む。いくつかの実施形態では、ソースデバイス12及び宛先デバイス14に無線通信機能が装備されている。
【0014】
いくつかの実施形態では、宛先デバイス14はリンク16を介して、デコードしようとするエンコードされたビデオデータを受信することができる。リンク16は、エンコードされたビデオデータをソースデバイス12から宛先デバイス14に移動することができるいかなるタイプの通信媒体又は装置を含んでもよい。一例では、リンク16は通信媒体を含んでもよく、それによりソースデバイス12はエンコードされたビデオデータを宛先デバイス14にリアルタイムで直接伝送することができる。エンコードされたビデオデータは、例えば無線通信プロトコル等の通信標準に基づいて変調され、宛先デバイス14に伝送されることができる。通信媒体はいかなる無線又は有線通信媒体、例えば無線周波数(RF)スペクトル又は1つ又は複数の物理伝送線を含んでもよい。通信媒体はパケットベースネットワーク(例えば、ローカルエリアネットワーク、広域ネットワーク又は例えばインターネット等のグローバルネットワーク)の一部を形成することができる。通信媒体は、ルータ、スイッチ、基地局、又はソースデバイス12から宛先デバイス14までの通信を促進するのに役立ついかなる他の装置を含んでもよい。
【0015】
いくつかの他の実施形態では、エンコードされたビデオデータは出力インターフェース22から記憶装置32に伝送されることができる。その後、宛先デバイス14は入力インターフェース28を介して記憶装置32でのエンコードされたビデオデータにアクセスすることができる。記憶装置32は様々な分散型又はローカルアクセスするデータ記憶媒体のうちのいずれか1つ、例えばハードディスクドライブ、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性又は不揮発性メモリ、又はエンコードされたビデオデータを記憶するためのいかなる他の適切なデジタル記憶媒体を含んでもよい。更なる例では、記憶装置32はファイルサーバ、又はソースデバイス12により生成されたエンコードされたビデオデータを保存することができる他の一時記憶装置に対応してもよい。宛先デバイス14はストリーミング又はダウンロードにより記憶装置32に記憶されたビデオデータにアクセスすることができる。ファイルサーバは、エンコードされたビデオデータを記憶してエンコードされたビデオデータを宛先デバイス14に伝送することができるいかなるタイプのコンピュータであってもよい。例示的なファイルサーバは(例えば、ウェブサイトに使用される)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(NAS)装置又はローカルディスクドライブを含む。宛先デバイス14はいかなる標準データ接続によりエンコードされたビデオデータにアクセスすることができ、前記標準データ接続はファイルサーバに記憶されるエンコードされたビデオデータにアクセスすることに適する無線チャネル(例えば、Wi-Fi接続)、有線接続(例えば、DSL、ケーブルモデム等)又は両方の組み合わせを含む。記憶装置32からのエンコードされたビデオデータの伝送はストリーミング伝送、ダウンロード伝送又は両方の組み合わせであってもよい。
【0016】
図1に示すように、ソースデバイス12はビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。ビデオソース18は例えば、ビデオキャプチャ装置(例えば、ビデオカメラ)、以前にキャプチャされたビデオを含むビデオファイル、ビデオコンテンツプロバイダーからビデオを受信するためのビデオ供給インターフェース、及び/又はコンピュータ図形データをソースビデオとして生成するためのコンピュータ図形システム、又はこれらのソースの組み合わせ等のソースを含んでもよい。一例として、ビデオソース18が安全監視システムのビデオカメラである場合、ソースデバイス12及び宛先デバイス14はカメラ電話又はビデオ電話を形成することができる。ところが、本願に説明される実施形態は一般的にビデオ符号化に適用でき、且つ無線及び/又は有線アプリケーションに適用できる。
【0017】
キャプチャされ、予めキャプチャされ又はコンピュータにより生成されたビデオはビデオエンコーダ20によりエンコードされることができる。エンコードされたビデオデータはソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接伝送されることができる。エンコードされたビデオデータは(又は、代替的に)記憶装置32に記憶されることができ、それによりその後で宛先デバイス14又は他の装置によりアクセスされ、又はデコーディング及び/又は再生に使用される。出力インターフェース22は更にモデム及び/又は送信装置を含んでもよい。
【0018】
宛先デバイス14は入力インターフェース28と、ビデオデコーダ30と、表示装置34とを備える。入力インターフェース28は受信機及び/又はモデムを備えて、リンク16を介してエンコードされたビデオデータを受信することができる。リンク16を介して伝送される又は記憶装置32において提供されるエンコードされたビデオデータは、ビデオエンコーダ20により生成された、ビデオデコーダ30がビデオデータをデコードする際に使用することに供する様々な構文要素を含んでもよい。このような構文要素は通信媒体において伝送され、記憶媒体に記憶され又はファイルサーバに記憶されるエンコードされたビデオデータに含まれてもよい。
【0019】
いくつかの実施形態では、宛先デバイス14は表示装置34を備えてもよく、表示装置34は統合された表示装置、及び宛先デバイス14と通信するように構成される外部表示装置であってもよい。表示装置34はユーザーに対して、デコードされたビデオデータを表示し、様々な表示装置、例えば液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ又は他のタイプの表示装置のうちのいずれか1つを含んでもよい。
【0020】
ビデオエンコーダ20及びビデオデコーダ30は専有又は業界標準(例えば、VVC、HEVC、MPEG-4第10部分、高度ビデオ符号化(AVC)又はこのような標準の拡張)に基づいて操作することができる。理解されるように、本願は特定のビデオ符号化/デコーディング標準に限らず、他のビデオ符号化/デコーディング標準に適用できる。一般的に理解されるように、ソースデバイス12のビデオエンコーダ20はこれらの現在又は将来の標準のうちのいずれか1つに基づいてビデオデータをエンコードするように構成されてもよい。同様に、一般的に理解されるように、宛先デバイス14のビデオデコーダ30はこれらの現在又は将来の標準のうちのいずれか1つに基づいてビデオデータをデコードするように構成されてもよい。
【0021】
ビデオエンコーダ20及びビデオデコーダ30はいずれも複数種類の適切なエンコーダ回路システム、例えば1つ又は複数のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ソフトウェア、ハードウェア、ファームウェア又はそれらの任意の組み合わせのうちのいずれか1つとして実現されることができる。部分的にソフトウェアにより実現されるとき、電子機器はソフトウェアの命令を適切な非一時的コンピュータ可読媒体に記憶し、1つ又は複数のプロセッサを使用してハードウェアにおいて前記命令を実行して、本開示に開示されるビデオ符号化/デコーディング操作を実施することができる。ビデオエンコーダ20及びビデオデコーダ30のそれぞれはいずれも1つ又は複数のエンコーダ又はデコーダに含まれてもよく、エンコーダ又はデコーダのうちのいずれか1つは対応装置における複合エンコーダ/デコーダ(CODEC)の一部に統合されてもよい。
【0022】
図2は本願に説明されるいくつかの実施形態に係る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20はビデオフレーム内のビデオブロックのイントラ及びインター予測符号化を実施することができる。イントラ予測符号化は空間領域予測に依存して、与えられたビデオフレーム又はピクチャ内のビデオデータにおける空間領域冗長性を低減又は除去する。インター予測符号化は時間領域予測に依存して、ビデオシーケンスの近接ビデオフレーム又はピクチャ内のビデオデータにおける時間領域冗長性を低減又は除去する。
【0023】
図2に示すように、ビデオエンコーダ20はビデオデータメモリ40と、予測処理ユニット41と、デコーディングピクチャバッファ(DPB)64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピーエンコーディングユニット56と、を備える。予測処理ユニット41は更に、動き推定ユニット42と、動き補償ユニット44と、パーティションユニット45と、イントラ予測処理ユニット46と、イントラブロックコピー(BC)ユニット48と、を備える。いくつかの実施形態では、ビデオエンコーダ20は逆量子化ユニット58と、逆変換処理ユニット60と、ビデオブロックを再構築するための加算器62とを更に備える。デブロッキングフィルタ(図示せず)は加算器62とDPB64との間に位置してもよく、それによりブロック境界をフィルタリングして再構築ビデオからブロック状アーティファクトを除去する。デブロッキングフィルタ以外に、更にループフィルタ(図示せず)を使用して加算器62の出力をフィルタリングすることができる。ビデオエンコーダ20は固定又はプログラマブルハードウェアユニットの形式を用いてもよく、又は図示の固定又はプログラマブルハードウェアユニットの1つ又は複数に分割されてもよい。
【0024】
ビデオデータメモリ40はビデオエンコーダ20の部材によりエンコードされたビデオデータを記憶することができる。ビデオデータメモリ40におけるビデオデータは例えばビデオソース18から取得されることができる。DPB64は、ビデオエンコーダ20によりビデオデータをエンコードする際に(例えば、イントラ又はインター予測符号化モードにおいて)使用される参照ビデオデータを記憶するバッファである。ビデオデータメモリ40及びDPB64は複数種類のメモリ装置のうちのいずれか1つにより形成されることができる。各例では、ビデオデータメモリ40はビデオエンコーダ20の他の部材とともにチップに位置し、又はそれらの部材に対してチップ外に位置してもよい。
【0025】
図2に示すように、ビデオデータを受信した後、予測処理ユニット41内のパーティションユニット45はビデオデータをビデオブロックに分割する。該分割は、ビデオデータに関連する例えば4分木構造等の予め定義された分割構造に基づいて、ビデオフレームをスライス、タイル(tile)又は他の一層大きな符号化ユニット(CU)に分割することを更に含んでもよい。ビデオフレームは、複数のビデオブロック(タイルのビデオブロック群とも称される)に分割されることができる。予測処理ユニット41は、誤差結果(例えば、符号化率及び歪みレベル)に基づいて、現在ビデオブロックに対して複数の可能な予測符号化モードの1つ、例えば複数のイントラ予測符号化モードの1つ又は複数のインター予測符号化モードの1つを選択することができる。予測処理ユニット41は、残差ブロックを生成するように、取得されたイントラ又はインター予測符号化ブロックを加算器50に提供し、且つ、エンコードされるブロックを再構築してその後で参照フレームの一部として使用するように加算器62に提供することができる。予測処理ユニット41は更にエントロピーエンコーディングユニット56に構文要素、例えば動きベクトル、イントラモードインジケータ、パーティション情報及び他のこのような構文情報を提供する。
【0026】
現在ビデオブロックに適切なイントラ予測符号化モードを選択するために、予測処理ユニット41内のイントラ予測処理ユニット46は、符号化する現在ブロックと同一フレームに位置する1つ又は複数の隣接ブロックに対して、現在ビデオブロックのイントラ予測符号化を実施して空間領域予測を提供することができる。予測処理ユニット41内の動き推定ユニット42及び動き補償ユニット44は、1つ又は複数の参照フレームにおける1つ又は複数の予測ブロックに対して、現在ビデオブロックのインター予測符号化を実施して時間領域予測を提供する。ビデオエンコーダ20は、例えば、ビデオデータの各ブロックに適切な符号化モードを選択するために、複数回の符号化を実施することができる。
【0027】
いくつかの実施形態では、動き推定ユニット42は、動きベクトルを生成することにより現在ビデオフレームのインター予測モードを決定し、前記動きベクトルはビデオフレームシーケンス内の予め定められたパターンに基づく、参照ビデオフレーム内の予測ブロックに対する現在ビデオフレーム内のビデオブロックの予測ユニット(PU)の変位を示す。動き推定ユニット42により実施される動き推定は、動きベクトルを生成する過程であり、該過程はビデオブロックの動きを推定する。例えば、動きベクトルは、現在フレームに符号化される現在ブロック(又は、他の符号化ユニット)に対する、参照フレーム内の予測ブロック(又は、他の符号化ユニット)に対する現在ビデオフレーム又はピクチャ内のビデオブロックのPUの変位を示すことができる。予め定められたパターンは、シーケンスにおけるビデオフレームをPフレーム又はBフレームとして指定することができる。イントラBCユニット48は、動き推定ユニット42がインター予測に対して動きベクトルを決定する方式と同様の方式で、イントラBC符号化に対するベクトル(例えばブロックベクトル)を決定することができ、又は動き推定ユニット42を利用してブロックベクトルを決定することができる。
【0028】
予測ブロックは、ピクセル差で符号化されるビデオブロックのPUに密接にマッチングすると見なされる参照フレームのブロックであり、ピクセル差は絶対差の和(SAD)、二乗差の和(SSD)又は他の差分尺度によって決定されてもよい。いくつかの実施形態では、ビデオエンコーダ20はDPB64に記憶される参照フレームのサブ整数(sub-integer)ピクセル位置の値を計算することができる。例えば、ビデオエンコーダ20は、参照フレームの4分の1のピクセル位置、8分の1のピクセル位置又は他の分数のピクセル位置の値を補間することができる。従って、動き推定ユニット42は、フルピクセル位置及び分数ピクセル位置に対して動き検索を実施し、分数ピクセル精度を有する動きベクトルを出力することができる。
【0029】
動き推定ユニット42はPUの位置と、第1参照フレームリスト(リスト0)又は第2参照フレームリスト(リスト1)から選ばれた参照フレームの予測ブロックの位置とを比較することにより、インター予測符号化フレームにおけるビデオブロックのPUの動きベクトルを計算し、第1参照フレームリスト(リスト0)又は第2参照フレームリスト(リスト1)は、それぞれ、DPB64における1つ又は複数の参照フレームを識別する。動き推定ユニット42は、計算された動きベクトルを動き補償ユニット44に送信し、次にエントロピーエンコーディングユニット56に送信する。
【0030】
動き補償ユニット44により実施される動き補償は、動き推定ユニット42により決定された動きベクトルに基づいて、予測ブロックを取出又は生成するのに関わることができる。現在ビデオブロックのPUの動きベクトルを受信した後、動き補償ユニット44は参照フレームリストの1つにおいて動きベクトルが指す予測ブロックを位置特定し、DPB64から前記予測ブロックを検索し、且つ予測ブロックを加算器50に転送することができる。次に、加算器50は、符号化中の現在ビデオブロックのピクセル値から動き補償ユニット44が提供する予測ブロックのピクセル値を引くことにより、ピクセル差分値の残差ビデオブロックを形成する。残差ビデオブロックを形成するピクセル差分値は、輝度、色度差成分又は両方を含んでもよい。動き補償ユニット44は更に、ビデオフレームのビデオブロックに関連する構文要素を生成することができ、ビデオデコーダ30がビデオフレームのビデオブロックをデコードする際に使用することに供する。構文要素は例えば、予測ブロックを識別するための動きベクトルを定義する構文要素、予測モードを示すいかなる識別子、又は本明細書に説明されるいかなる他の構文情報を含んでもよい。動き推定ユニット42及び動き補償ユニット44は、高度に統合されてもよいが、概念の目的のため、独立して説明する。
【0031】
いくつかの実施形態では、イントラBCユニット48は、動き推定ユニット42及び動き補償ユニット44を参照して説明した上記方式と同様の方式で、ベクトルを生成して予測ブロックを取り出すことができるが、予測ブロック及び符号化中の現在ブロックは同一フレームに位置し、且つベクトルは動きベクトルではなくブロックベクトルと称される。具体的には、イントラBCユニット48は現在ブロックをエンコードするためのイントラ予測モードを決定することができる。いくつかの例では、イントラBCユニット48は様々なイントラ予測モードを使用して現在ブロックをエンコードすることができ、例えば、独立した繰り返しエンコーディング期間にレート-歪み分析によってそれらの性能をテストする。次に、イントラBCユニット48は様々なテスト後のイントラ予測モードから適切なイントラ予測モードを選択してイントラモードインジケータを使用し、且つイントラモードインジケータを対応して生成する。例えば、イントラBCユニット48は様々なテスト後のイントラ予測モードに対するレート-歪み分析を使用してレート-歪み値を計算し、且つテスト後のモードから最適なレート-歪み特性を有するイントラ予測モードを適切なイントラ予測モードとして選択して使用する。レート-歪み分析は一般的にエンコードされたブロックとオリジナル未エンコードされたブロックとの間の歪み(又は、エラー)量を決定し、前記オリジナル未エンコードされたブロックはエンコードされて符号化ブロックを生成し、更に符号化ブロックを生成するためのビットレート(即ち、ビット数)を決定する。イントラBCユニット48は様々なエンコードされたブロックの歪み及びレートに基づいて比率を計算して、どのイントラ予測モードが前記ブロックに対して最適なレート-歪み値を表現するかを決定する。
【0032】
他の例では、イントラBCユニット48は動き推定ユニット42及び動き補償ユニット44を全体的又は部分的に使用して本明細書に説明される実施形態に基づいてイントラBC予測のためのこのような機能を実施することができる。いずれか1つの場合、イントラブロックコピーについては、予測ブロックはピクセル差の面でエンコードされるブロックに密接にマッチングすると見なされるブロックであってもよく、前記ピクセル差は絶対差の和(SAD)、二乗差の和(SSD)又は他の差分尺度によって決定されてもよく、且つ予測ブロックの識別はサブ整数ピクセル位置の値の計算を含んでもよい。
【0033】
予測ブロックがイントラ予測による同一フレームからのものであるか、それともインター予測による異なるフレームからのものであるかにかかわらず、ビデオエンコーダ20はいずれも符号化中の現在ビデオブロックのピクセル値から予測ブロックのピクセル値を引くことによりピクセル差分を形成して残差ビデオブロックを形成することができる。残差ビデオブロックを形成するピクセル差分は輝度及び色度成分差の両方を含んでもよい。
【0034】
イントラ予測処理ユニット46は現在ビデオブロックに対してイントラ予測を行うことができ、動き推定ユニット42及び動き補償ユニット44により実施されるインター予測又はイントラBCユニット48により実施されるイントラブロックコピー予測の代替としては、上述のとおりである。具体的には、イントラ予測処理ユニット46は現在ブロックをエンコードするためのイントラ予測モードを決定することができる。このために、イントラ予測処理ユニット46は様々なイントラ予測モードを使用して現在ブロックをエンコードすることができ、例えば、独立した繰り返しエンコーディング期間に、イントラ予測処理ユニット46(又は、いくつかの実例では、モード選択ユニット)はテスト後のイントラ予測モードから適切なイントラ予測モードを選択して使用することができる。イントラ予測処理ユニット46はエントロピーエンコーディングユニット56に、前記ブロックに対して選択したイントラ予測モードを示す情報を提供することができる。エントロピーエンコーディングユニット56はビットストリームにおいて選択されたイントラ予測モードを示す情報をエンコードすることができる。
【0035】
予測処理ユニット41がインター予測又はイントラ予測により現在ビデオブロックの予測ブロックを決定した後、加算器50は現在ビデオブロックから前記予測ブロックを引くことにより残差ビデオブロックを形成する。前記残差ブロックにおける残差ビデオデータは1つ又は複数の変換ユニット(TU)に含まれて変換処理ユニット52に提供されることができる。変換処理ユニット52は例えば離散余弦変換(DCT)等の変換又は概念的に類似する変換を使用して残差ビデオデータを残差変換係数に変換する。
【0036】
変換処理ユニット52は取得された変換係数を量子化ユニット54に送信することができる。量子化ユニット54は変換係数を量子化してビットレートを更に低減する。量子化過程は更にいくつか又はすべての係数に関連するビット深度を低減することができる。量子化パラメータを調整することにより量子化度を修正することができる。いくつかの例では、次に、量子化ユニット54は量子化後の変換係数を含む行列に対して走査を実施することができる。代替的に、エントロピーエンコーディングユニット56は走査を実行することができる。
【0037】
量子化後、エントロピーエンコーディングユニット56は例えばコンテキスト適応型可変長符号化(CAVLC)、コンテキスト適応型バイナリ算術符号化(CABAC)、構文ベースコンテキスト適応型バイナリ算術符号化(SBAC)、確率間隔区分化エントロピー(PIPE)符号化又は他のエントロピー符号化方法又は技術を使用して量子化された変換係数をビデオビットストリームにエントロピーエンコードする。エンコードされたビットストリームは、その後でビデオデコーダ30に伝送され、又は、記憶装置32に保存されてその後でビデオデコーダ30に伝送され又はビデオデコーダ30により検索されることができる。エントロピーエンコーディングユニット56は更に符号化中の現在ビデオフレームの動きベクトル及び他の構文要素に対してエントロピーエンコーディングを行うことができる。
【0038】
逆量子化ユニット58及び逆変換処理ユニット60はそれぞれ逆量子化及び逆変換によりピクセルフィールドにおける残差ビデオブロックを再構築して、他のビデオブロックを予測するための参照ブロックを生成する。上述のように、動き補償ユニット44はDPB64に記憶されるフレームの1つ又は複数の参照ブロックに基づいて動き補償後の予測ブロックを生成することができる。動き補償ユニット44は更に1つ又は複数の補間フィルタを予測ブロックに応用して動き推定のためのサブ整数ピクセル値を計算することができる。
【0039】
加算器62は再構築された残差ブロックと動き補償ユニット44により生成された動き補償後の予測ブロックとを加えて参照ブロックを生成してDPB64に記憶する。次に、参照ブロックは、イントラBCユニット48、動き推定ユニット42及び動き補償ユニット44により、予測ブロックとして使用されて、後続のビデオフレームにおける他のビデオブロックに対してインター予測を行うことができる。
【0040】
図3は本願のいくつかの実施形態に係る例示的なビデオデコーダ30を示すブロック図である。ビデオデコーダ30はビデオデータメモリ79、エントロピーデコーディングユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90及びDPB92を備える。予測処理ユニット81は更に動き補償ユニット82、イントラ予測処理ユニット84及びイントラBCユニット85を備える。ビデオデコーダ30は
図2におけるビデオエンコーダ20について説明される上記エンコーディング過程とはほぼ逆のデコーディング過程を実行することができる。例えば、動き補償ユニット82はエントロピーデコーディングユニット80から受信された動きベクトルに基づいて予測データを生成することができるが、イントラ予測ユニット84はエントロピーデコーディングユニット80から受信されたイントラ予測モードインジケータに基づいて予測データを生成することができる。
【0041】
いくつかの例では、ビデオデコーダ30のユニットには本願の実施形態を実施するタスクが割り当てられることができる。また、いくつかの例では、本開示の実施形態はビデオデコーダ30の1つ又は複数のユニットの間で分割されてもよい。例えば、イントラBCユニット85は独立して本願の実施形態を実施してもよく、又はビデオデコーダ30の他のユニット(例えば、動き補償ユニット82、イントラ予測処理ユニット84及びエントロピーデコーディングユニット80)と組み合わせて本願の実施形態を実施してもよい。いくつかの例では、ビデオデコーダ30はイントラBCユニット85を含まなくてもよく、且つイントラBCユニット85の機能は予測処理ユニット81の他の部材(例えば、動き補償ユニット82)により実施されてもよい。
【0042】
ビデオデータメモリ79はビデオデコーダ30の他の部材によりデコードされるビデオデータ、例えばエンコードされたビデオビットストリームを記憶することができる。ビデオデータメモリ79に記憶されるビデオデータは、ビデオデータの有線又は無線ネットワーク経由で、例えば記憶装置32、ローカルビデオソース(例えば、カメラ)から取得され、又は物理データ記憶媒体(例えば、フラッシュメモリドライブ又はハードディスク)にアクセスすることにより取得されてもよい。ビデオデータメモリ79は符号化ピクチャバッファ(CPB)を含んでもよく、前記符号化ピクチャバッファ(CPB)はエンコードされたビデオビットストリームからのエンコードされたビデオデータを記憶する。ビデオデコーダ30のデコーディングピクチャバッファ(DPB)92は参照ビデオデータを記憶して、ビデオデコーダ30がビデオデータを(例えば、イントラ又はインター予測符号化モードに基づいて)デコードする際に使用することに供する。ビデオデータメモリ79及びDPB92は複数種類のメモリ装置、例えばダイナミックランダムアクセスメモリ(DRAM)(シンクロナスDRAM(SDRAM)を含む)、磁気抵抗RAM(MRAM)、電気抵抗RAM(RRAM)、又は他のタイプの記憶装置のうちのいずれか1つにより形成されてもよい。説明のために、ビデオデータメモリ79及びDPB92は、
図3においてビデオデコーダ30の2つの異なる部材に描かれる。しかしながら、当業者にとって明らかなことは、ビデオデータメモリ79及びDPB92は同じメモリ装置又は別々のメモリ装置により提供されてもよい。いくつかの例では、ビデオデータメモリ79はビデオデコーダ30の他の部材とともにチップに位置し、又はそれらの部材に対してチップ外に位置してもよい。
【0043】
デコーディング過程期間に、ビデオデコーダ30は符号化ビデオビットストリームを受信し、符号化ビデオビットストリームは符号化ビデオフレームのビデオブロック及び関連する構文要素を示す。ビデオデコーダ30はビデオフレームレベル及び/又はビデオブロックレベルで構文要素を受信することができる。ビデオデコーダ30のエントロピーデコーディングユニット80はビットストリームに対してエントロピーデコーディングを行って量子化係数、動きベクトル又はイントラ予測モードインジケータ及び他の構文要素を生成する。次に、エントロピーデコーディングユニット80は動きベクトル及び他の構文要素を予測処理ユニット81に転送する。
【0044】
ビデオフレームがイントラ予測符号化(I)フレームにエンコードされ、又は他のタイプのフレームにおけるイントラ符号化予測ブロックに使用される場合、予測処理ユニット81のイントラ予測処理ユニット84はシグナリングにより送信されるイントラ予測モード及び現在フレームの以前デコーディングブロックからの参照データに基づいて現在ビデオフレームのビデオブロックに対する予測データを生成することができる。
【0045】
前記ビデオフレームがインター予測符号化(即ち、B又はP)フレームにエンコードされる場合、予測処理ユニット81の動き補償ユニット82はエントロピーデコーディングユニット80から受信された動きベクトル及び他の構文要素に基づいて現在ビデオフレームのビデオブロックに対する1つ又は複数の予測ブロックを生成する。予測ブロックのそれぞれはいずれも参照フレームリストの1つにおける参照フレームに基づいて生成されてもよい。ビデオデコーダ30はデフォルト構築技術を使用してDPB92に記憶される参照フレームに基づいて参照フレームリスト即ちリスト0及びリスト1を構築することができる。
【0046】
いくつかの例では、本明細書において説明されたイントラBCモードに基づいてビデオブロックを符号化するとき、予測処理ユニット81のイントラBCユニット85はエントロピーデコーディングユニット80から受信されたブロックベクトル及び他の構文要素に基づいて現在ビデオブロックの予測ブロックを生成する。予測ブロックはビデオエンコーダ20により定義された現在ビデオブロックと同じピクチャの再構築領域内に位置してもよい。
【0047】
動き補償ユニット82及び/又はイントラBCユニット85は動きベクトル及び他の構文要素を解析することにより現在ビデオフレームのビデオブロックに対する予測情報を決定し、次に該予測情報を使用してデコーディング中の現在ビデオブロックの予測ブロックを生成する。例えば、動き補償ユニット82は受信された構文要素のうちのいくつかを使用して、ビデオフレームのビデオブロックを符号化するための予測モード(例えば、イントラ又はインター予測)、インター予測フレームタイプ(例えば、B又はP)、前記フレームの1つ又は複数の参照フレームリストに対する構築情報、前記フレームの各インター予測符号化ビデオブロックに対する動きベクトル、前記フレームの各インター予測エンコーディングビデオブロックに対するインター予測状態、及び現在ビデオフレームにおけるビデオブロックをデコードするための他の情報を決定する。
【0048】
同様に、イントラBCユニット85は受信された構文要素(例えば、識別子)のうちのいくつかを使用して、現在ビデオブロックがイントラBCモードを使用して予測されること、前記フレームのどのビデオブロックの構築情報が再構築領域内に位置し且つDPB92に記憶されるべきであるか、前記フレームの各イントラBC予測ビデオブロックのブロックベクトル、前記フレームの各イントラBC予測ビデオブロックのイントラBC予測状態、及び現在ビデオフレームにおけるビデオブロックをデコードするための他の情報を決定することができる。
【0049】
動き補償ユニット82は更に、ビデオエンコーダ20がビデオブロックのエンコーディング期間に使用する補間フィルタ等を使用して補間を実施して、参照ブロックのサブ整数ピクセルに対する補間後の値を計算することができる。この場合、動き補償ユニット82は受信された構文要素に基づいてビデオエンコーダ20が使用する補間フィルタを決定し、且つ前記補間フィルタを使用して予測ブロックを生成することができる。
【0050】
逆量子化ユニット86はビデオエンコーダ20がビデオフレームにおける各ビデオブロックに対して計算した同じ量子化パラメータを使用してビットストリームにおいて提供し且つエントロピーデコーディングユニット80によりエントロピーデコードされる量子化変換係数を逆量子化して、量子化度を決定する。逆変換処理ユニット88は前記変換係数に対して逆変換(例えば、逆DCT、逆整数変換又は概念的に類似する逆変換過程)を応用してピクセルフィールドにおける残差ブロックを再構築する。
【0051】
動き補償ユニット82又はイントラBCユニット85がベクトル及び他の構文要素に基づいて現在ビデオブロックに対する予測ブロックを生成した後、加算器90は逆変換処理ユニット88からの残差ブロックと、動き補償ユニット82及びイントラBCユニット85により生成される対応予測ブロックとの和を求めることにより、現在ビデオブロックのデコードされたビデオブロックを再構築する。ループフィルタ(図示せず)は加算器90とDPB92との間に位置してもよく、それによりデコードされたビデオブロックを更に処理する。フレームにおけるデコードされたビデオブロックを与えてからDPB92に記憶し、DPB92は次のビデオブロックの後続の動き補償に使用される参照フレームを記憶する。DPB92又はDPB92と分離するメモリ装置はデコードされたビデオを記憶してもよく、それによりその後で表示装置(例えば、
図1における表示装置34)に表示する。
【0052】
代表的なビデオ符号化過程において、ビデオシーケンスは一般的に1組の規則的なフレーム又はピクチャを含む。各フレームは3つのサンプル配列を含んでもよく、それらがSL、SCb及びSCrと示される。SLが輝度サンプルの2次元配列である。SCbがCb色度サンプルの2次元配列である。SCrがCr色度サンプルの2次元配列である。他の実例では、フレームは単色であってもよく、従って、1つのみの2次元輝度サンプル配列を含む。
【0053】
図4Aに示すように、ビデオエンコーダ20(又は、より具体的に、パーティションユニット45)はまずフレームを1組の符号化ツリーユニット(CTU)に分割してフレームのエンコードされた表示を生成する。ビデオフレームは整数個のCTUを含んでもよく、それらが左から右まで及び上から下までのラスター走査順序に従って連続的に配列されている。各CTUは最も大きな論理符号化ユニットであり、且つCTUの幅及び高さはビデオエンコーダ20がシーケンスパラメータセットにおいてシグナリングにより送信されるのであり、ビデオシーケンスにおけるすべてのCTUに同じ寸法、即ち128×128、64×64、32×32及び16×16を有させる。しかしながら、注意されるように、本願は特定の寸法に限らない。
図4Bに示すように、各CTUは輝度サンプルの1つの符号化ツリーブロック(CTB)と、色度サンプルの2つの対応符号化ツリーブロックと、符号化ツリーブロックのサンプルを符号化するための構文要素と、を含んでもよい。構文要素はエンコードされたピクセルブロックの異なるタイプユニットの属性、及びビデオデコーダ30においてビデオシーケンスをどのように再構築するかについて説明し、インター又はイントラ予測、イントラ予測モード、動きベクトル及び他のパラメータを含む。単色ピクチャ又は3つの独立したカラー平面を有するピクチャにおいて、CTUは単一の符号化ツリーブロックと、符号化ツリーブロックのサンプルを符号化するための構文要素とを含んでもよい。符号化ツリーブロックはサンプルのNxNブロックであってもよい。
【0054】
より良い性能を実現するために、ビデオエンコーダ20はCTUの符号化ツリーブロックに対してツリー分割、例えば2分木分割、3分木分割、4分木分割又は両方の組み合わせを再帰的に実施し、且つCTUを一層小さな符号化ユニット(CU)に分割することができる。
図4Cに示すように、まず64x64のCTU400を4つの比較的小さなCUに分割し、各比較的小さなCUが32x32のブロック寸法を有する。4つの比較的小さなCUのうち、CU410及びCU420のそれぞれはブロック寸法に基づいて4つの16x16のCUに分割される。2つの16x16のCU430及び440のそれぞれはブロック寸法に基づいて4つの8x8のCUに更に分割される。
図4Dには4分木データ構造を示し、該4分木データ構造は
図4Cに示されるCTU400のパーティション過程の最終的な結果を示し、4分木の各リーフノードは32x32から8x8までの対応寸法範囲における1つのCUに対応する。
図4Bに示されるCTUのように、各CUは輝度サンプルの符号化ブロック(CB)と、同じ寸法を有するフレームの色度サンプルの2つの対応符号化ブロックと、符号化ブロックのサンプルを符号化するための構文要素と、を含んでもよい。単色ピクチャ又は3つの独立したカラー平面を有するピクチャにおいて、CUは単一の符号化ブロックと、符号化ブロックのサンプルを符号化するための構文構造とを含んでもよい。注意されるように、
図4C及び
図4Dに示される4分木分割は説明のためのものに過ぎず、且つ1つのCTUをCUに分割して4分木/3分木/2分木パーティションによる異なる局所特性に適応することができる。マルチタイプツリー構造において、1つのCTUは4分木構造に基づいて分割され、各4分木のリーフCUは2分木及び3分木構造に基づいて更に分割されてもよい。
図4Eに示すように、5つの分割タイプ、即ち4元分割、水平2元分割、垂直2元分割、水平3元分割及び垂直3元分割がある。
【0055】
いくつかの実施形態では、ビデオエンコーダ20は更にCUの符号化ブロックを1つ又は複数のMxN予測ブロック(PB)に分割することができる。予測ブロックは矩形(正方形又は非正方形)サンプルブロックであり、該サンプルブロックにおいて同じインター又はイントラ予測を応用する。CUの予測ユニット(PU)は輝度サンプルの予測ブロックと、色度サンプルの2つの対応予測ブロックと、前記予測ブロックを予測するための構文要素と、を含んでもよい。単色ピクチャ又は3つの独立したカラー平面を有するピクチャにおいて、PUは単一の予測ブロックと、前記予測ブロックを予測するための構文構造とを含んでもよい。ビデオエンコーダ20はCUの各PUの輝度、Cb及びCr予測ブロックに対して予測輝度、Cb及びCrブロックを生成することができる。
【0056】
ビデオエンコーダ20はイントラ予測又はインター予測によりPUの予測ブロックを生成することができる。ビデオエンコーダ20がイントラ予測によりPUの予測ブロックを生成する場合、ビデオエンコーダ20はPUに関連するフレームのデコードされたサンプルに基づいてPUの予測ブロックを生成することができる。ビデオエンコーダ20がインター予測によりPUの予測ブロックを生成する場合、ビデオエンコーダ20は該PUに関連するフレーム以外の1つ又は複数のフレームのデコードされたサンプルに基づいてPUの予測ブロックを生成することができる。
【0057】
ビデオエンコーダ20がCUの1つ又は複数のPUに対して予測輝度、Cb及びCrブロックを生成した後、ビデオエンコーダ20はそのオリジナル輝度符号化ブロックからCUの予測輝度ブロックを引くことによりCUの輝度残差ブロックを生成することができ、CUの輝度残差ブロックにおける各サンプルがCUの予測輝度ブロックの1つにおける輝度サンプルとCUのオリジナル輝度符号化ブロックにおける対応サンプルとの差を示すようにする。同様に、ビデオエンコーダ20はCUに対してそれぞれCb残差ブロック及びCr残差ブロックを生成することができ、CUのCb残差ブロックにおける各サンプルがCUの予測Cbブロックの1つにおけるCbサンプルとCUのオリジナルCb符号化ブロックにおける対応のサンプルとの差を示すようにし、且つCUのCr残差ブロックにおける各サンプルはCUの予測Crブロックの1つにおけるCrサンプルとCUのオリジナルCr符号化ブロックにおける対応サンプルとの差を示すことができる。
【0058】
また、
図4Cに示すように、ビデオエンコーダ20は4分木分割によりCUの輝度、Cb及びCr残差ブロックを1つ又は複数の輝度、Cb及びCr変換ブロックに分解することができる。変換ブロックはそれに同じ変換を応用する矩形(正方形又は非正方形)サンプルブロックである。CUの変換ユニット(TU)は輝度サンプルの変換ブロックと、色度サンプルの2つの対応変換ブロックと、前記変換ブロックサンプルを変換するための構文要素と、を含んでもよい。従って、CUの各TUは輝度変換ブロック、Cb変換ブロック及びCr変換ブロックに関連してもよい。いくつかの例では、TUに関連する輝度変換ブロックはCUの輝度残差ブロックのサブブロックであってもよい。Cb変換ブロックはCUのCb残差ブロックのサブブロックであってもよい。Cr変換ブロックはCUのCr残差ブロックのサブブロックであってもよい。単色ピクチャ又は3つの独立したカラー平面を有するピクチャにおいて、TUは単一の変換ブロックと、前記変換ブロックを変換するためのサンプルの構文構造とを含んでもよい。
【0059】
ビデオエンコーダ20は1つ又は複数の変換をTUの輝度変換ブロックに応用してTUに対する輝度係数ブロックを生成することができる。係数ブロックは変換係数の2次元配列であってもよい。変換係数はスカラーであってもよい。ビデオエンコーダ20は1つ又は複数の変換をTUのCb変換ブロックに応用してTUに対するCb係数ブロックを生成することができる。ビデオエンコーダ20は1つ又は複数の変換をTUのCr変換ブロックに応用してTUに対するCr係数ブロックを生成することができる。
【0060】
係数ブロック(例えば、輝度係数ブロック、Cb係数ブロック又はCr係数ブロック)を生成した後、ビデオエンコーダ20は前記係数ブロックを量子化することができる。量子化は一般的に、変換係数を量子化して前記変換係数を示すためのデータ量をできる限り低減することにより更なる圧縮を提供する過程を指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は量子化後の変換係数を示す構文要素に対してエントロピーエンコードを行うことができる。例えば、ビデオエンコーダ20は量子化後の変換係数を示す構文要素に対してコンテキスト適応型バイナリ算術符号化(CABAC)を実施することができる。最後に、ビデオエンコーダ20はビットシーケンスを含むビットストリームを出力することができ、前記ビットシーケンスは符号化フレーム及び関連データの表示を形成し、該表示は記憶装置32に保存され、又は宛先デバイス14に伝送される。
【0061】
ビデオエンコーダ20により生成されたビットストリームを受信した後、ビデオデコーダ30は前記ビットストリームを解析して前記ビットストリームから構文要素を取得することができる。ビデオデコーダ30は少なくとも部分的に前記ビットストリームから取得された構文要素に基づいてビデオデータのフレームを再構築することができる。ビデオデータの再構築過程は一般的にビデオエンコーダ20が実行するエンコーディング過程と逆である。例えば、ビデオデコーダ30は現在CUのTUに関連する係数ブロックに対して逆変換を実施することができ、それにより現在CUのTUに関連する残差ブロックを再構築する。ビデオデコーダ30は更に現在CUのPUの予測ブロックのサンプルと現在CUのTUの変換ブロックの対応サンプルとを加えることにより現在CUの符号化ブロックを再構築する。フレームの各CUに対して符号化ブロックを再構築した後、ビデオデコーダ30は前記フレームを再構築することができる。
【0062】
上述のように、ビデオ符号化は主に2種類のモードを使用してビデオ圧縮即ちイントラ予測及びインター予測を実現する。パレットベース符号化は多くのビデオ符号化標準により採用される他の符号化スキームである。スクリーンにより生成されたコンテンツの符号化に特に適する可能性があるパレットベース符号化において、ビデオコーデック(例えば、ビデオエンコーダ20又はビデオデコーダ30)はカラーのパレットテーブルを形成し、該パレットテーブルが与えられたブロックのビデオデータを示す。パレットテーブルは与えられたブロックにおける最も主要な(例えば、頻繁に使用される)ピクセル値を含む。与えられたブロックのビデオデータにおける頻繁に表示されていないピクセル値はパレットテーブルに含まれないか、パレットテーブルに含まれてエスケープカラー(escape color)とされるかである。
【0063】
パレットテーブルにおける各エントリーはパレットテーブルにおける対応ピクセル値のインデックスを含む。ブロックにおけるサンプルに対するパレットインデックスはエンコードされて、パレットテーブルにおけるどのエントリーがどのサンプルの予測又は再構築に使用されるかを示すことができる。該パレットモードは、ピクチャ、スライス、タイル又は他のこのようなビデオブロックをグルーピングする第1ブロックがパレット予測器を生成する過程からスタートする。以下に解釈する、後続のビデオブロックに使用されるパレット予測器は一般的に以前に使用したパレット予測器を更新することにより生成されるものである。説明のために、パレット予測器がピクチャレベルで定義されると仮定する。即ち、ピクチャは複数の符号化ブロックを含む可能性があり、各符号化ブロックはいずれもそれ自体のパレットテーブルを有するが、ピクチャ全体は1つのみのパレット予測器がある。
【0064】
ビデオビットストリームにおけるシグナリングによりパレットエントリーを送信するために必要なビットを低減するために、ビデオデコーダはパレット予測器を利用してパレットテーブルにおけるビデオブロックを再構築するための新たなパレットエントリーを決定することができる。例えば、パレット予測器は以前に使用したパレットテーブルからのパレットエントリーを含んでもよく、又は、ひいては最近に使用したパレットテーブルのすべてのエントリーを含むことにより最近に使用したパレットテーブルを利用してパレット予測器を初期化することができる。いくつかの実施形態では、パレット予測器は最近に使用したパレットテーブルのすべてのエントリーより少ないものを含んでもよく、且つ、次に以前に使用した他のパレットテーブルからのいくつかのエントリーを合わせることができる。パレット予測器は異なるブロックを符号化するためのパレットテーブルと同じ寸法を有してもよく、又は異なるブロックを符号化するためのパレットテーブルより大きくてもよく、又は異なるブロックを符号化するためのパレットテーブルより小さくてもよい。一例では、パレット予測器は64個のパレットエントリーを含む先入れ先出し(FIFO)テーブルとして実現される。
【0065】
パレット予測器に基づいてビデオデータブロックに対するパレットテーブルを生成するために、ビデオデコーダはエンコードされたビデオビットストリームからパレット予測器の各エントリーの1ビット識別子を受信することができる。1ビット識別子は前記パレット予測器の関連エントリーがパレットテーブルに含まれることを示す第1値(例えば、バイナリ1)、又はパレット予測器の関連エントリーがパレットテーブルに含まれないことを示す第2値(例えば、バイナリ0)を有してもよい。パレット予測器の寸法がビデオデータブロックに使用されるパレットテーブルより大きい場合、パレットテーブルの最大寸法に達すると、ビデオデコーダはより多くの識別子の受信を停止することができる。
【0066】
いくつかの実施形態では、パレットテーブルにおけるいくつかのエントリーはパレット予測器を使用して決定されるのではなく、エンコードされたビデオビットストリームにおいて直接にシグナリングにより送信されてもよい。このようなエントリーに対して、ビデオデコーダはエンコードされたビデオビットストリームから3つの別々のmビット値を受信することができ、該3つの別々のmビット値は該エントリーに関連する輝度及び2つの色度成分のピクセル値を示し、ここで、mがビデオデータのビット深度を示す。直接にシグナリングによりパレットエントリーを送信するために必要な複数のmビット値に比べて、パレット予測器から導き出されたそれらのパレットエントリーは1ビット識別子のみを必要とする。従って、パレット予測器を使用してシグナリングによりいくつか又はすべてのパレットエントリーを送信することにより、シグナリングにより新たなパレットテーブルのエントリーを送信するために必要なビット数を著しく低減することができ、それによりパレットモードで符号化する全体の符号化効率を向上させる。
【0067】
多くの場合、1つのブロックに対するパレット予測器は以前にエンコードされた1つ又は複数のブロックを符号化するためのパレットテーブルに基づいて決定したものである。しかしながら、ピクチャ、スライス又はタイルにおける第1符号化ツリーユニットを符号化するとき、以前にエンコードされたブロックのパレットテーブルは利用不可能である可能性がある。従って、以前に使用したパレットテーブルのエントリーを使用してパレット予測器を生成することが不可能である。このような場合、シーケンスパラメータセット(SPS)及び/又はピクチャパラメータセット(PPS)においてシグナリングによりパレット予測器初期化値のシーケンスを送信することができ、これらの値は以前に使用したパレットテーブルが利用不可能である場合にパレット予測器を生成するための値である。SPSは一般的に、連続的にエンコードされる一連のビデオピクチャ(符号化ビデオシーケンス(CVS)と称される)に応用される構文要素の構文構造を指し、各スライスセグメントヘッダにおいて発見した構文要素が指すPPSにおいて見つけた構文要素のコンテンツによって決定される。PPSは一般的に、CVS内の1つ又は複数の個別ピクチャに応用される構文要素の構文構造を指し、各スライスセグメントヘッダにおいて発見した構文要素によって決定される。従って、SPSは一般的にPPSより一層高いレベルの構文構造と見なされ、これは、PPSに含まれる構文要素に比べて、SPSに含まれる構文要素が一般的に頻繁に変化せず且つビデオデータのより大きな部分に応用されることを意味する。
【0068】
図5A~
図5Bは本開示のいくつかの実施形態に係るコンテキスト符号化及びバイパス符号化を用いる変換係数符号化の例を示すブロック図である。
【0069】
VVCにおける変換係数の符号化はHEVCにおける変換係数の符号化と類似し、その理由は、それらがいずれも非重複係数グループ(CG又はサブブロックとも称される)を使用するためである。しかしながら、この2種類のスキームにはいくつかの相違がある。HEVCにおいて、係数の各CGの寸法が4x4に固定される。VVC Draft6において、CG寸法がTB寸法に依存するようになる。従って、VVCにおいて様々なCG寸法(1x16、2x8、8x2、2x4、4x2及び16x1)を使用することができる。符号化ブロック内のCG及びCG内の変換係数は予め定義された走査順序に従ってエンコードされる。
【0070】
各ピクセルのコンテキスト符号化ビン(CCB)の最大数を制限するために、TBの面積及びビデオ成分のタイプ(即ち、輝度成分及び色度成分)はTBに対するコンテキスト符号化ビン(CCB)の最大数を導き出すことに用いられる。いくつかの実施例では、コンテキスト符号化ビンの最大数はTB_zosize*1.75に等しい。ここで、TB_zosizeが係数をゼロリセットした後のTB内のサンプルの数を示す。なお、coded_sub_block_flagはCGが非ゼロ係数を含むかどうかを示す識別子であり、該識別子がCCBカウント時に考慮されていない。
【0071】
係数のゼロリセットは、変換ブロックに対して変換ブロックの特定領域内に位置する係数を強制的にゼロとして設定することを実施する操作である。例えば、現在VVCにおいて、64x64TBは関連するゼロリセット操作を有する。その結果、64x64TBの左上の32x32領域以外に位置する変換係数はすべて強制的にゼロにされる。事実的に、現在VVCにおいて、ある次元に沿う寸法が32を超えるいかなる変換ブロックに対して、該次元に沿って係数のゼロリセット操作を実施して左上の32x32領域以外に位置する係数を強制的にゼロにする。
【0072】
VVCにおける変換係数の符号化において、変数remBinsPasslはまず許容されるコンテキスト符号化ビン(MCCB)の最大数として設定される。符号化過程期間に、シグナリングによりコンテキストエンコードされたバイナリビットを送信するたびに、変数はいずれも1を引くこととなる。remBinsPass1が4以上である場合、sig_coeff_flag、abs_level_gt1_flag、par_level_flag及びabs_level_gt3_flagを含む構文要素を利用してシグナリングにより係数を送信し、すべてのこれらはいずれも第1繰り返しにおいてコンテキストエンコードされたバイナリビットを使用する。前記係数の残りのレベル情報はabs_remainderの構文要素を利用して第2繰り返しにおいてGolomb-Riceコード及びバイパスエンコードされたバイナリビットを使用してエンコードされる。第1繰り返しを符号化する際にremBinsPass1が4より小さくなる場合、現在係数は第1繰り返しにおいてエンコードされるのではなく、第2繰り返しにおいてGolomb-Riceコード及びバイパスエンコードされたバイナリビットを使用してdec_abs_levelの構文要素を利用して直接エンコードされる。すべての上記レベルがエンコードされた後、sig_coeff_flagが1に等しいすべての符号フラグ(sign_flag)は最終的にバイパスバイナリビットにエンコードされる。このような過程は
図5Aにおいて説明される。remBinsPass1は各TBに対してリセットされる。sig_coeff_flag、abs_level_gt1_flag、par_level_flag及びabs_level_gt3_flagに対してコンテキストエンコードされたバイナリビットを使用することから、残りの係数に対してバイパスエンコードされたバイナリビットを使用することまでの変換は1TBあたりに多くとも1回発生する。係数サブブロックについては、その1番目の係数を符号化する前にremBinsPass1が4より小さい場合、バイパスエンコードされたバイナリビットを使用して係数サブブロック全体を符号化する。
【0073】
HEVCにおいて単一の残差符号化スキームを設計して変換係数及び変換スキップ係数の両方を符号化することに用いられることと異なり、VVCにおいて、2つの独立した残差符号化スキームはそれぞれ変換係数及び変換スキップ係数(即ち、残差)に使用される。
【0074】
例えば、変換スキップモードにおける残差の統計特性が変換係数の統計特性と異なり、且つ低周波数成分の周囲にエネルギー圧縮がないことが見える。残差の符号化は、(空間領域)変換スキップ残差を考慮した異なる信号特性に修正されており、
(1)最後のx/y位置がないシグナリング、
(2)すべての以前の識別子がいずれも0に等しい場合、DCサブブロック以外の各サブブロックに対してエンコードされたcoded_sub_block_flag、
(3)2つの隣接係数sig_coeff_flagを利用してコンテキストモデリングを行うこと、
(4)par_level_flagが1つのみのコンテキストモデルを使用すること、
(5)追加の5、7、9つ以上の識別子、
(6)剰余二値化のための修正されたriceパラメータを導き出すこと、及び、
(7)符号フラグのコンテキストモデリングが左及び上隣接係数値に基づいて決定したものであり、且つsig_coeff_flagの後で符号フラグを解析してコンテキストエンコードされたすべてのバイナリビットを一体に維持すること、を含み、
図5Bに示すように、構文要素sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flagは第1繰り返しにおいて一方の残差サンプルから他方の残差サンプルまでのインターリーブ方式でエンコードされ、その後は第2繰り返しにおけるabs_level_gtX_flagビットプレーン及び第3繰り返しにおけるabs_remainder符号化である。
【0075】
繰り返し1
sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flagである。
【0076】
繰り返し2
abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flagである。
【0077】
繰り返し3
abs_remainderである。
【0078】
図6は本開示のいくつかの実施形態に係る依存スカラー量子化の例示的な過程を示すブロック図である。
【0079】
現在のVVCにおいて、最大QP値は51から63に拡張され、且つ初期QPのシグナリングも対応して変化する。slice_qp_deltaの非ゼロ値がエンコードされるとき、SliceQpYの初期値はスライスサブ層で修正されてもよい。変換スキップブロックについては、許容される最小QPは4に限定され、その理由はQPが1に等しい場合、量子化ステップサイズが1になるためである。
【0080】
また、「依存スカラー量子化」と称される新しい概念を利用してHEVCにおいて使用されるスカラー量子化に適応する。依存スカラー量子化とは、変換係数に対する1組の許容可能な再構築値が再構築順序に従って現在変換係数レベルの前に位置する変換係数レベルの値によって決定される方法を指す。HEVCにおいて使用される通常の独立したスカラー量子化に比べて、許容可能な再構築ベクトルはN次元ベクトル空間においてより集中して圧縮される(Nが変換ブロックにおける変換係数の数を示す)。即ち、与えられた1N次元あたりの単位体積の許容可能な再構築ベクトルの平均数に対して、入力ベクトルと最も接近する再構築ベクトルとの平均歪みが低減される。依存スカラー量子化方法は、(a)異なる再構築レベルを有する2つのスカラー量子化器を定義すること、(b)2つのスカラー量子化器を切り替える過程を定義すること、により実現される。
【0081】
使用される2つのスカラー量子化器(Q0及びQ1で示される)は
図6に示される。利用可能な再構築レベルの位置は量子化ステップサイズΔによって唯一に指定される。使用されるスカラー量子化器(Q0又はQ1)はビットストリームにおいてシグナリングにより明示的に送信されない。それとは逆に、現在変換係数のための量子化器は符号化又は再構築順序に従って現在変換係数の前に位置する変換係数レベルの奇偶性によって決定される。
【0082】
図7は本開示のいくつかの実施形態に係る2つの異なるスカラー量子化器を切り替えるための例示的なステートマシンを示すブロック図である。
【0083】
図7に示すように、2つのスカラー量子化器(Q0及びQ1)の切り替えは4つの量子化器状態(QState)を有するステートマシンにより実現される。QStateは4つの異なる値、即ち0、1、2、3を用いてもよい。それは符号化/再構築順序に従って現在変換係数の前に位置する変換係数レベルの奇偶性によって唯一に決定される。変換ブロックの逆量子化が始まるとき、状態は0に等しく設定される。変換係数は走査順序(即ち、それらに対してエントロピーデコーディングを行うときと同じ順序)に従って再構築される。現在変換係数を再構築した後、状態が更新され、
図7に示され、ここで、kが変換係数レベルの値を示す。
【0084】
シグナリングによりデフォルト及びユーザー定義したスケーリング行列を送信することが更にサポートされる。デフォルト(DEFAULT)モードスケーリング行列はいずれも平坦なものであり、すべてのTB寸法に対して、要素がいずれも16に等しい。現在、IBC及びイントラ符号化モードは同じスケーリング行列を共有する。従って、ユーザー定義した(USER_DEFINED)行列の場合には、MatrixType及びMatrixType_DCの数は、
MatrixType:30=2(2がイントラ&IBC/インターに対する)×3(Y/Cb/Cr成分)×5(正方形TB寸法:対する輝度が4×4~64×64であり、対する色度が2×2~32×32である)
MatrixType_DC:14=2(2がイントラ&IBC/インターに対する×1がY成分に対する)×3(TB寸法:16×16、32×32、64×64)+4(2がイントラ&IBC/インターに対する×2がCb/Cr成分に対する)×2(TB寸法:16×16、32×32)、に更新される。
【0085】
DC値は独立してエンコードされ、16×16、32×32及び64×64のスケーリング行列に使用される。寸法が8×8より小さなTBに対して、1つのスケーリング行列におけるすべての要素はいずれもシグナリングにより送信される。TBの寸法が8×8以上である場合、1つの8×8スケーリング行列には64個のみの要素は基本スケーリング行列としてシグナリングにより送信される。寸法が8×8より大きな行列を取得するために、8×8基本スケーリング行列は(要素に対するコピーにより)対応の正方形寸法(即ち、16×16、32×32、64×64)にアップサンプリングされる。64ポイント変換された高周波数係数のゼロリセットを応用するとき、スケーリング行列の対応高周波数もゼロリセットされる。即ち、TBの幅又は高さが32以上である場合、係数の左半部又は上半部のみを保存し、且つ残りの係数がゼロに割り当てられる。また、64×64スケーリング行列に対してシグナリングにより送信される要素の数も8×8から3つの4×4サブ行列まで減少し、その理由は右下の4×4個の要素を使用しないためである。
【0086】
変換係数レベルの絶対値に関連する構文要素に対して確率モデルを選択することは、絶対レベル又は局所隣接領域における一部の再構築された絶対レベルの値によって決定される。
【0087】
選択された確率モデルは局所隣接領域における絶対レベル(又は、再構築された絶対レベルの一部)と、局所隣接領域における0より大きな絶対レベルの数(1に等しいsig_coeff_flagsの数により与えられる)との総和によって決定される。コンテキストモデリング及び二値化は、
・numSigであって、局所隣接領域における非ゼロレベルの数であるもの、
・sumAbs1であって、局所隣接領域において第1繰り返しの後で再構築された絶対レベル(absLevel1)の一部の総和であるもの、
・sumAbsであって、局所隣接領域における再構築された絶対レベルの総和であるもの、
・対角線位置(d)であって、変換ブロック内の現在走査位置の横座標と縦座標との和であるもの、によって決定される。
【0088】
numSig、sumAbs1及びdの値に基づいて、sig_coeff_flag、abs_level_gt1_flag、par_level_flag及びabs_level_gt3_flagを符号化するための確率モデルを選択する。sumAbs及びnumSigの値に基づいてabs_remainder及びdec_abs_levelを二値化するためのRiceパラメータを選択する。
【0089】
現在VVCにおいて、減少された32ポイントMTS(RMTS32とも称される)はスキップ高周波数係数に基づいて32ポイントDST-7/DCT-8の計算複雑度を低減することに用いられる。且つ、それはすべてのタイプのゼロリセット(即ち、RMTS32及びDCT2における高周波数成分に対する現在ゼロリセット)を含む係数の符号化に従って変化する。具体的には、最後の1つの非ゼロ係数位置で符号化する二値化は減少されたTU寸法に基づいて符号化し、且つ最後の1つの非ゼロ係数位置に対してエンコードされるコンテキストモデルの選択はオリジナルTU寸法によって決定される。また、60個のコンテキストモデルを使用して変換係数のsig_coeff_flagを符号化する。コンテキストモデルインデックスの選択はlocSumAbsPass1と称される以前に部分的に再構築された5つの絶対レベルのうちの最大値と依存量子化状態QStateとの総和に基づくものであり、
cIdxが0に等しい場合、ctxIncは、
ctxInc=12*Max(0,QState-1)+Min((locSumAbsPass1+1)>>1,3)+(d<2?8:(d<5?4:0))に導き出され、
そうでない場合、(cIdxが0より大きい場合)、ctxIncは、
ctxInc=36+8*Max(0,QState-1)+Min((locSumAbsPass1+1)>>1,3)+(d<2?4:0)に導き出される。
【0090】
図8は本開示のいくつかの実施形態に係るビデオデコーダが変換スキップモード符号化ブロックに対して残差符号化を実施する例示的な過程を示すフローチャートである。
【0091】
いくつかの実施例では、残差を符号化するとき、統一された(同じ)Riceパラメータ(ricePar)が導き出されてシグナリングにより構文要素abs_remainder及びdec_abs_levelを送信することに用いられる。唯一の相違点は、baseLevelが符号化abs_remainder及びdec_abs_levelに対してそれぞれ4及び0として設定されることである。Riceパラメータの決定は局所テンプレートにおける隣接する5つの変換係数の絶対レベルの和に基づくものだけではなく、更に対応の基本レベルに基づくものであり、
RicePara=RiceParTable[max(min(31,sumAbs-5*baseLevel),0)]である。
【0092】
即ち、隣接係数のレベル情報に基づいて構文要素abs_remainder及びdec_abs_levelのバイナリコードワードを適応的に決定する。このコードワードの決定が各サンプルに対して実施されるため、追加の論理によりこのコードワードの適応を処理して係数の符号化を行う必要がある。同様に、残差ブロックを符号化するとき、隣接係数のレベル情報に基づいて構文要素abs_remainderのバイナリコードワードを適応的に決定する。
【0093】
また、残差符号化又は変換係数符号化に関連する構文要素を符号化するとき、選択された確率モデルは隣接レベルのレベル情報によって決定され、従って、追加の論理及び追加のコンテキストモデルにより該コンテキストの選択を処理する必要がある。
【0094】
いくつかの実施例では、ビデオコーデックは構文要素abs_remainderの値に対して固定バイナリコードワードを使用して残差符号化を行う。
(1)abs_remainderのコードワードを決定する過程が固定riceパラメータ(例えば、1、2又は3)を利用してVVCにおいて使用する過程と同様であること、
(2)固定長二値化、
(3)切断された(truncated)Rice二値化、
(4)切断されたバイナリ(TB)二値化過程、
(5)kオーダExp-Golomb二値化過程(EGk)、
(6)有限kオーダExp-Golomb二値化、
(7)固定長二値化、の方法を使用してバイナリコードワードを形成することができる(しかしながら、それらに限らない)(詳細な過程はVVC草案仕様書において見つけることができる)。
【0095】
一定のRiceパラメータを使用して変換スキップモード符号化ブロックをデコードするとき、ビデオデコーダはまずビットストリームから変換スキップモード符号化ブロックに対応するビデオデータを受信する(810)。ここで、前記ブロックが変換スキップモードを用いてエンコードし、且つビデオデコーダがデコーディング過程において逆変換を実施しないと仮定する。
【0096】
次に、ビデオデコーダは受信されたビデオデータから第1コードワード(例えば、abs_reaminder)、第2コードワード(例えば、sign_coeff_flag)、及び変換スキップモード符号化ブロック内のピクセルに対する第1組のコードワードをデコードする(820)。
【0097】
デコーダは前記第1組のコードワードから初期レベル値(例えば、dec_abs_level)を導き出す(830)。
【0098】
次に、ビデオデコーダは一定のRiceパラメータを使用して生成した予め定義されたマッピング関係に基づいて第1コードワードをピクセルの剰余に変換する(840)。例えば、Riceパラメータは1、2又は3の定常値を有してもよい。いくつかの実施例では、Riceパラメータは1として設定される。
【0099】
いくつかの実施例では、特定剰余値abs_remainderと対応コードワードとの予め定義されたマッピング関係の生成は、
1)一定のRiceパラメータに基づいて一定の二値化パラメータcMaxを決定することは、
cMax=6<<cRiceParamであるステップ、
2)切断されたRice二値化過程を呼び出すことにより、対応コードワードのプレフィックス値prefixValを導き出し、
prefixVal=Min(cMax,abs_remainder)であるステップ、
3)プレフィックスバイナリビットストリングは長さが6であってすべてのビットがいずれも1に等しいビットストリングに等しい場合、導き出された対応コードワードのサフィックス値suffixValは、
suffixVal=abs_remainder-cMaxであるステップ、に関わる。
【0100】
上述のように、特定剰余値の対応コードワードのサフィックス値は選択可能であり、その理由はコードワードのプレフィックス値がいくつかの条件を満足する場合のみ、それが存在するためである。いくつかの実施例では、該予め定義されたマッピング関係はルックアップテーブルの形式でビデオエンコーダ/デコーダのメモリに構築され、ビデオエンコーダが与えられた剰余値に対してルックアップテーブルからプレフィックス値と選択可能なサフィックス値とを含むコードワードを迅速に見つけることができるようにする。同様に、ビデオデコーダはルックアップテーブルから対応コードワードの剰余を迅速に見つけることができる。
【0101】
次に、ビデオデコーダは第2コードワードを剰余(第1コードワードから取得された)の符号値(例えば、正又は負)に変換する(850)。
【0102】
次に、ビデオデコーダは前記剰余、前記符号値及び前記初期レベル値からピクセルの量子化残差を導き出す(860)。
【0103】
いくつかの実施形態では、ビデオコーデックは構文要素abs_remainder及びdec_abs_levelに対して固定コードワードを使用して係数符号化を行う。下記方法を使用してバイナリコードワードを形成することができる(しかしながら、それらに限らない)。
【0104】
(1)abs_remainder及びdec_abs_levelに対するコードワードを決定する過程は固定Riceパラメータ(例えば、1、2又は3)を利用してVVCにおいて使用する過程と同様である。現在VVCにおいて使用されるabs_remainder及びdec_abs_levelに対するbaseLevelは依然として異なってもよく(例えば、baseLevelが符号化abs_remainder及びdec_abs_levelに対してそれぞれ4及び0として設定される)、
(2)abs_remainder及びdec_abs_levelに対するコードワードを決定する過程は固定Riceパラメータ(例えば、1、2又は3)を利用してVVCにおいて使用する過程と同様である。abs_remainder及びdec_abs_levelに対するbaseLevelsも統一されたものである。(例えば、いずれも0を使用し、又はいずれも4を使用する)
(3)固定長二値化であり、
(4)切断されたRice二値化であり、
(5)切断されたバイナリ(TB)二値化過程であり、
(6)kオーダExp-Golomb二値化過程(EGk)であり、
(7)有限kオーダExp-Golomb二値化であり、
(8)固定長二値化である。
【0105】
いくつかの実施例では、ビデオコーデックは単一のコンテキストを使用して残差符号化又は係数符号化に関連する構文要素(例えば、abs_level_gtx_flag)を符号化し、且つ隣接デコーディングレベル情報に基づくコンテキスト選択を削除することができる。
【0106】
図9は本開示のいくつかの実施形態に係る例示的なコンテキスト適応型バイナリ算術符号化(CABAC)エンジンを示すブロック図である。
【0107】
コンテキスト適応型バイナリ算術符号化(CABAC)は多くのビデオ符号化標準(例えば、H.264/MPEG-4 AVC、高効率ビデオ符号化(HEVC)及びVVC)において使用されるエントロピー符号化形式である。CABACは算術符号化に基づくものであり、いくつかの変化を有することによりビデオ符号化標準のニーズを満足させる。例えば、CABACはバイナリシンボルを符号化し、これは低複雑度を維持し、且ついかなるシンボルのより頻繁に使用するビットに対して確率モデリングを行うことを許容する。局所コンテキストに基づいて確率モデルを適応的に選択することにより、確率をより良くモデリングすることを許容し、その理由は符号化モードが一般的に部分的に良く関連するためである。最後に、CABACは量子化の確率範囲及び確率状態を使用することにより乗算なしの範囲の分割を使用する。
【0108】
CABACは異なるコンテキストに対する複数の確率モデルを有する。それはまずすべての非バイナリシンボルをバイナリに変換する。次に、各バイナリビット(「ビット」とも称される)に対して、コーデックはどの確率モデルを使用するかを選択し、次に近傍要素からの情報を使用して確率推定を最適化する。最後に、算術符号化を応用してデータを圧縮する。
【0109】
コンテキストモデリングは符号化シンボルの条件確率の推定を提供する。適切なコンテキストモデルを利用して、エンコードされる現在シンボル隣接領域における符号化後のシンボルに基づいて、異なる確率モデルを切り替えることにより与えられたシンボル間冗長性を利用することができる。データシンボルに対する符号化は下記段階に関わる。
【0110】
二値化
CABACはバイナリ算術符号化を使用し、これはバイナリデシジョン(1又は0)のみをエンコードすることを意味する。算術符号化の前に、非バイナリ値シンボル(例えば、変換係数又は動きベクトル)はバイナリコードに「二値化」又は変換される。該過程はデータシンボルを可変長コードに変換する過程と類似するが、バイナリコードは伝送される前に更にエンコードされる(算術コーデックにより実行される)。二値化シンボルの各バイナリビット(又は、「ビット」)に対して各段階を繰り返す。
【0111】
コンテキストモデル選択
「コンテキストモデル」は二値化シンボルに対する1つ又は複数のバイナリビットの確率モデルである。最近にエンコードされたデータシンボルの統計データに基づいて利用可能モデルの選択によって該モデルを選択することができる。コンテキストモデルは各バイナリビットが「1」又は「0」である確率を記憶する。
【0112】
算術エンコーディング
算術エンコーダは選択された確率モデルに基づいて各バイナリビットをエンコードする。なお、各バイナリビットは2つのみのサブ範囲(「0」及び「1」に対応する)がある。
【0113】
確率更新
実際符号化値に基づいて選択されたコンテキストモデルを更新する(例えば、バイナリビット値が「1」である場合、「1」の周波数カウントを増加する)。
【0114】
各非バイナリ構文要素値を一連のバイナリビットに分解することにより、CABACにおける各バイナリビット値の更なる過程は関連する符号化モードデシジョンによって決定され、関連する符号化モードは通常モード又はバイパスモードとして選択されてもよい。後者はバイナリビットに使用されるものとして選択され、バイナリビットが均一に分布すると仮定し、従って、バイナリビットに対する通常のバイナリ算術エンコーディング(及び、デコーディング)過程全体を簡単に避ける。通常の符号化モードにおいて、各バイナリビット値は通常のバイナリ算術符号化エンジンを使用してエンコードされ、関連する確率モデルは構文要素のタイプ及び構文要素の二値化表示におけるバイナリビット位置又はバイナリビットインデックス(binIdx)に基づいて固定選択によって決定され、又は、関連する副次情報(例えば、CU/PU/TUの空間領域近傍、成分、深度又は寸法、又はTU内の位置)に基づいて2つ又は複数の確率モデルから適応的に選択される。確率モデルの選択はコンテキストモデリングと称される。重要な設計デシジョンとして、後者は一般的に最もよく見られるバイナリビットのみに適用されるが、一般的によく見られない他のバイナリビットは連携される一般的にゼロオーダ確率モデルを使用して処理される。このような方式によって、CABACはサブシンボルレベルでの選択適応確率モデリングを実現し、従って、高効率ツールを提供し、著しく低減する全体モデリング又は学習コストでシンボル間冗長性を利用することに用いられる。なお、固定及び適応の2つの状況に対して、原則的に、一方の確率モデルから他方の確率モデルまでの切り替えはいずれか2つの連続した通常の符号化バイナリビットの間で発生してもよい。一般的には、CABACにおけるコンテキストモデルの設計は不必要なモデリングコストオーバーヘッドを回避することと、統計的依存性を大きな程度で利用することとのバランスを取ることを反映する。
【0115】
CABACにおける確率モデルのパラメータは適応的なものであり、これは、モデル確率のバイナリビットソースの統計変化への適応が1バイナリビットあたりに後向きに適応及び同期する方式でエンコーダ及びデコーダの両方において実施されることを意味し、この過程は確率推定と称される。このために、CABACにおける各確率モデルはいずれも126種類の異なる状態から1種類を選択してもよく、関連モデル確率値p範囲は区間[0:01875;0:98125]内にある。各確率モデルの2つのパラメータは7ビットエントリーとしてコンテキストメモリに記憶され、即ち、6ビットは最も不可能なシンボル(LPS)を示すモデル確率pLPSの63個の確率状態のそれぞれに対するものであり、且つ1ビットはnMPS、即ち最も可能なシンボル(MPS)の値に対するものである。
【0116】
1つ又は複数の例では、説明される機能はハードウェア、ソフトウェア、ファームウェア又はそれらの任意の組み合わせにおいて実現されてもよい。ソフトウェアにより実現される場合、機能は1つ又は複数の命令又はコードとしてコンピュータ可読媒体に記憶され、又はコンピュータ可読媒体により伝送されてハードウェアベース処理ユニットにより実行されてもよい。コンピュータ可読媒体は、例えばデータ記憶媒体等の有形媒体に対応するコンピュータ可読記憶媒体、又は、コンピュータプログラムを一箇所から例えば通信プロトコルに基づいて他の箇所まで容易に伝送することができるいかなる媒体を含む通信媒体を含んでもよい。この方式によって、コンピュータ可読媒体は一般的に、(1)非一時的有形コンピュータ可読記憶媒体、又は、(2)例えば信号又はキャリア等の通信媒体に対応してもよい。データ記憶媒体は、1つ又は複数のコンピュータ、又は1つ又は複数のプロセッサがアクセスして命令、コード及び/又はデータ構造を検索することにより本願に説明される実施形態を実現することができるいかなる利用可能媒体であってもよい。コンピュータプログラム製品はコンピュータ可読媒体を含んでもよい。
【0117】
本明細書の実施形態の説明において使用される用語は特定の実施形態を説明するためのものに過ぎず、特許請求の範囲を制限するためのものではない。上下の文脈において他の意味を明確に示していない限り、実施形態の説明及び添付の特許請求の範囲に使用される単数形式の「1種類」、「1つ」及び「該」は複数形式も含むように意図されている。更に理解されるように、本明細書に使用される用語「及び/又は」は1つ又は複数の関連する列挙した項目の任意及びすべての可能な組み合わせを指し、且つ1つ又は複数の関連する列挙した項目の任意及びすべての可能な組み合わせを含む。更に理解されるように、用語「備える」及び/又は「含む」は本明細書に使用される際に前記特徴、要素及び/又は部材の存在を指定するが、1つ又は複数の他の特徴、要素、部材及び/又はそれらからなる群の存在又は追加を排除しない。
【0118】
更に理解されるように、用語「第1」、「第2」等は本明細書において様々な要素を説明することに用いられてもよいが、これらの要素はこれらの用語により制限されるものではない。これらの用語は1種類の要素と他の種類の要素とを区別することのみに用いられる。例えば、実施形態の範囲を逸脱せずに、第1電極は第2電極と称されてもよく、且つ、同様に第2電極は第1電極と称されてもよい。第1電極及び第2電極はいずれも電極であるが、同じ電極ではない。
【0119】
本願の記述は説明及び記述のためのものであり、開示される形式の本発明を網羅又は制限するように意図されるものではない。上記記述及び関連図面における指導を受けて、多くの修正、変化及び代替実施形態は当業者にとっては明らかなものである。実施例の選択及び記述は、本発明の原理、実際応用を最もよく解釈し、且つ、当業者が本発明の様々な実施形態を理解でき、基本原理及び様々な修正を有する様々な実施形態を最もよく利用し、例えば期待される特定用途に適用するようにするためのものである。従って、理解されるように、特許請求の範囲は開示される実施形態の具体例に限らず、且つ修正及び他の実施形態は添付の特許請求の範囲内に含まれるように意図されている。
【手続補正書】
【提出日】2022-01-26
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオデータをデコードする方法であって、
ビットストリームから変換スキップモード符号化ブロックに対応するビデオデータを受信することと、
前記ビデオデータから前記変換スキップモード符号化ブロック内のピクセルに対する第1コードワード、第2コードワード及び第1組のコードワードを
決定することと、
前記第1組のコードワードから初期レベル値を導き出すことと、
一定のRiceパラメータを使用して生成した予め定義されたマッピング関係に基づいて、前記第1コードワードをピクセルの剰余に変換することと、
前記第2コードワード
に基づいて、前記剰余
に対する符号
を決定することと、
前記剰余、前記符
号及び前記初期レベル値から前記ピクセルの量子化残差を導き出すことと、を含むビデオデータをデコードする方法。
【請求項2】
前記予め定義されたマッピング関係は、
前記一定のRiceパラメータを使用して一定の二値化パラメータを計算することと、
前記一定の二値化パラメータを使用して、
1つの候補剰余
値に対して、コードワードのプレフィックス値及び対応コードワードの選択可能なサフィックス値を決定するこ
とにより生成される請求項1に記載の方法。
【請求項3】
前記コードワードのプレフィックス値は切断されたRice二値化過程を使用して決定したものである請求項2に記載の方法。
【請求項4】
前記初期レベル値は、前記変換スキップモード符号化ブロック内の前記ピクセルの位置に基づいて前記ピクセルの量子化残差を導き出すことに用いられる請求項1に記載の方法。
【請求項5】
前記第1コードワードは、予め定義された値を有する前記ピクセルの剰余の固定バイナリコードワードである請求項1に記載の方法。
【請求項6】
前記第1コードワードは構文要素abs_remainderに対応し、前記第2コードワードは構文要素sign_coefficient_flagに対
応する請求項1に記載の方法。
【請求項7】
単一のコンテキストモデルは、前記第1コードワード、前記第2コードワード及び前記第1組のコードワードをデコードすることに使用される請求項1に記載の方法。
【請求項8】
電子装置であって、
1つ又は複数の処理ユニットと、
前記1つ又は複数の処理ユニットに結合されるメモリと、
前記メモリに記憶される複数のプログラムと、
を含み、
前記プログラムは、前記1つ又は複数の処理ユニットにより実行されるとき、前記電子装置に請求項1~
7のうちいずれか1項に記載の方法
のひとつを実行させる電子装置。
【請求項9】
非一時的コンピュータ可読記憶媒体であって、
1つ又は複数の処理ユニットを有する電子装置により実行される複数のプログラムを記憶し、
前記複数のプログラムは、前記1つ又は複数の処理ユニットにより実行されるとき、前記電子装置に請求項1~
7のうちいずれか1項に記載の方法
のひとつを実行させる非一時的コンピュータ可読記憶媒体。
【請求項10】
非一時的コンピュータ可読記憶媒体に記憶される、1つ又は複数の処理ユニットを有する電子装置により実行されるコンピュータプログラムであって、前記1つ又は複数の処理ユニットによって実行されるときに、前記電子装置に請求項1~7のうちいずれか1項に記載の方法のひとつを実行させるコンピュータプログラム。
【請求項11】
請求項1~7のうちいずれか1項に記載の方法のひとつにより復号可能なビットストリームを記憶するデコーダ可読記憶媒体。
【国際調査報告】