(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-29
(45)【発行日】2024-09-06
(54)【発明の名称】残差及び係数のコーディングの方法及び装置
(51)【国際特許分類】
H04N 19/13 20140101AFI20240830BHJP
H04N 19/136 20140101ALI20240830BHJP
H04N 19/176 20140101ALI20240830BHJP
【FI】
H04N19/13
H04N19/136
H04N19/176
【外国語出願】
(21)【出願番号】P 2023194291
(22)【出願日】2023-11-15
(62)【分割の表示】P 2022520402の分割
【原出願日】2020-09-29
【審査請求日】2023-11-15
(32)【優先日】2019-10-07
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-10-01
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-10-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521024075
【氏名又は名称】ベイジン・ダジア・インターネット・インフォメーション・テクノロジー・カンパニー,リミテッド
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100138759
【氏名又は名称】大房 直樹
(74)【代理人】
【識別番号】100201743
【氏名又は名称】井上 和真
(72)【発明者】
【氏名】チェン,イー-ウエン
(72)【発明者】
【氏名】シウ,シヤオユー
(72)【発明者】
【氏名】マー,ツン-チュアン
(72)【発明者】
【氏名】ジュ,ホーン-ジェン
(72)【発明者】
【氏名】ワーン,シアーンリン
(72)【発明者】
【氏名】ユ,ビーン
【審査官】田中 崇大
(56)【参考文献】
【文献】米国特許出願公開第2017/0064336(US,A1)
【文献】BROSS, Benjamin et al.,Versatile Video Coding (Draft 6),JVET-O2001 (version 14),ITU,2019年07月31日,pp.73-81, 151-153, 377-378, 382,JVET-O2001-vE.docx
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/13
H04N 19/136
H04N 19/176
(57)【特許請求の範囲】
【請求項1】
ビデオ
符号化の方法であって、
符号化ユニットに対応する1つ以上のシンタックス要素
を決定するステップと、
前記1つ以上のシンタックス要素に応じてライスパラメータを決定するステップと
、
当該決定されたライスパラメータを使用して生成された所定のマッピング関係に従って、
前記符号化ユニット内のサンプルのパラメータに
基づいて第1の符号語を決定するステップと、
前記サンプルの当該パラメータ
に関する記号値に
基づいて第2の符号語を決定するステップと、
前記第1の符号語、前記第2の符号語及び前記1つ以上のシンタックス要素をビットストリーム内に符号化するステップと
を備え
、
前記1つ以上のシンタックス要素に応じてライスパラメータを決定する当該ステップは、前記符号化ユニットの残差が変換スキップモードにあるかどうかに基づいて前記ライスパラメータを決定するステップを含み、
前記符号化ユニットの残差が前記変換スキップモードにあるかどうかに基づいて前記ライスパラメータを決定する当該ステップは、前記符号化ユニットの残差が前記変換スキップモードにあるとの決定に基づいて、前記ライスパラメータを変換ユニットに関する一定の値に設定するステップを含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記1つ以上のシンタックス要素
に基づいてパラメータ値が決定され、
前記1つ以上のシンタックス要素に応じて
前記ライスパラメータを決定す
るステップが、
前
記パラメータ
値を閾値の集合と比較するステップであって、
前記閾値の集合における各閾値が候補ライスパラメータを有するステップと、
前記閾値の集合から、前
記パラメータ
値を対象として含む一対の閾値を決定するステップと、
前記ライスパラメータを、前記
一対の閾値に対応する2つの候補ライスパラメータのうちの1つとして決定するステップと
を含む、方法。
【請求項3】
請求項2に記載の方法であって、前記閾値の集合及び当該閾値に関連する候補ライスパラメータが定数値である、方法。
【請求項4】
請求項1に記載の方法であって、前記1つ以上のシンタックス要素が、前記符号化ユニットの第1の成分に関連したシンタックス要素の第1の部分集合、及び前記符号化ユニットの第2の成分に関連したシンタックス要素の第2の部分集合
を含む、方法。
【請求項5】
請求項
4に記載の方法であって
、シンタックス要素の前記第1の部分集合と
、シンタックス要素の前記第2の部分集合との間に、少なくとも1つの差異がある、方法。
【請求項6】
請求項1に記載の方法であって、前記1つ以上のシンタックス要素が、シーケンス、ピクチャ、スライス、タイル、符号化ツリーユニット(CTU)、符号化ユニット(CU)、変換ユニット(TU)、及び変換ブロック(TB)からなるグループから選択された1つのレベルで信号伝達される、方法。
【請求項7】
請求項1に記載の方法であって、前記第1の符号語が、前記符号化ユニットにおける前記
サンプルの変換係数の符号化に関連したものである、方法。
【請求項8】
請求項1に記載の方法であって、前記第1の符号語が、前記符号化ユニットにおける前記
サンプルの変換スキップ残差の符号化に関連したものである、方法。
【請求項9】
請求項1に記載の方法であって、
前記1つ以上のシンタックス要素に応じて前記ライスパラメータを決定するステップは、ルックアップテーブル
内の当該ライスパラメータを探すステップを含む、方法。
【請求項10】
請求項1に記載の方法であって、前記所定のマッピング関係
を、
当該決定されたライスパラメータを使用して2値化処理パラメータを計算するステップと、
前記2値化処理パラメータを使用して、候補残り値の集合のうちの1つのための、符号語のプレフィックス値及び対応する符号語の任意選択のサフィックス値を決定するステップと、
前記候補残り値の集合の最後の1つが決定されるまで、前記候補残り値の集合の別の1つに対して、前記符号語の前記決定するステップを繰り返すステップと
によって生成
するステップをさらに備える、方法。
【請求項11】
請求項
10に記載の方法であって、前記符号語の前記プレフィックス値が、短縮化ライス2値化処理プロセスを使用して決定される、方法。
【請求項12】
請求項
10に記載の方法であって、前記プレフィックス値が、すべてのビットが1に等しくなる長さ6のビットストリングに等しいとき、前記符号語の前記サフィックス値が決定される、方法。
【請求項13】
請求項1に記載の方法であって、
前記符号化ユニットが変換スキップモード符号化ユニットであり、
当該方法が
、
前記変換スキップモード符号化ユニット内の前記
サンプルに関する符号語の第1のグループを
前記ビットストリーム内に符号化するステッ
プ
をさらに備える、方法。
【請求項14】
電子装置であって、
1つ以上の処理部と、
前記1つ以上の処理部に接続されたメモリと、
前記メモリに記憶された複数のプログラムであって、前記1つ以上の処理部によって実行されたとき、前記電子装置に、請求項1から
13のうちのいずれか一項に記載の方法を実施させる複数のプログラムと
を備える電子装置。
【請求項15】
1つ以上の処理部を有する電子装置によって実行するための複数のプログラムを記憶している非一時的なコンピュータ読み取り可能な記録媒体であって、前記複数のプログラムは、前記1つ以上の処理部によって実行されると、前記電子装置に、請求項1から
13のうちのいずれか一項に記載の方法を実施させる、非一時的なコンピュータ読み取り可能な記録媒体。
【請求項16】
コンピュータによって実行されると、請求項1から13のうちのいずれか一項に記載の方法を実施させる命令を含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願)
本出願は、2019年10月1日付け出願の「Residual and Coefficients Coding for Video Coding(ビデオコーディングのための残差及び係数のコーディング)」という名称の米国特許仮出願第62/909,079号、2019年10月5日付け出願の「Residual and Coefficients Coding for Video Coding(ビデオコーディングのための残差及び係数のコーディング)」という名称の米国特許仮出願第62/911,260号、及び2019年10月7日付け出願の「Residual and Coefficients Coding for Video Coding(ビデオコーディングのための残差及び係数のコーディング)」という名称の米国特許仮出願第62/911,930号の優先権を主張するものであり、これらはすべて全体が参照によって組み込まれる。
【0002】
(技術分野)
本出願は、一般にビデオデータの符号化及び圧縮に関するものであり、詳細には、ビデオコーディングのための残差及び係数のコーディングを改善する方法及びシステムに関する。
【背景技術】
【0003】
デジタルビデオは、デジタルテレビジョン、ラップトップ型又はデスクトップ型のコンピュータ、タブレット型コンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤー、ビデオゲームコンソール、スマートフォン、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどの種々の電子デバイスによってサポートされる。そのような電子デバイスは、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4 Part 10 AVC(Advanced Video Coding)、HEVC(高能率映像符号化:High Efficiency Video Coding)、VVC(Versatile Video Coding)規格などで定められたビデオ圧縮伸張規格を実装することにより、デジタルビデオデータの送信、受信、符号化、復号、及び/又は格納を行う。一般にビデオ圧縮は、空間(イントラフレーム)予測及び/又は時間(インターフレーム)予測を実行してビデオデータに固有の冗長を低減するか又は除去することを含む。ブロックベースのビデオコーディングについては、ビデオフレームが1つ以上のスライスへと分割され、各スライスが符号化ツリーユニット(CTU:coding tree unit)とも称され得る複数のビデオブロックを有する。各CTUが1つの符号化ユニット(CU:coding unit)を含有し得、又は所定の最小のCUサイズに達するまで、より小さいCUへと再帰的に分割され得る。各CU(リーフCUとも命名されている)が1つ以上の変換ユニット(TU:transform unit)を含有しており、1つ以上の予測ユニット(PU:prediction unit)も含む。各CUは、イントラモード、インターモード又はIBCモードのいずれかで符号化され得る。ビデオフレームにおけるイントラ符号化(I)スライス内のビデオブロックは、同じビデオフレームの内部の近隣のブロックにおける参照サンプルに対して空間予測を使用して符号化される。ビデオフレームにおけるインター符号化(P又はB)スライス内のビデオブロックは、同じビデオフレーム内の近隣のブロックにおける参照サンプルに対する空間予測を使用したものでもよいし、あるいは以前の他の参照ビデオフレーム及び/又は未来の他の参照ビデオフレームにおける参照サンプルに対する時間予測を使用したものでもよい。
【0004】
たとえば近隣のブロックといった以前に符号化された参照ブロックに基づく空間予測又は時間予測は、符号化される現在のビデオブロックに関する予測ブロックをもたらす。参照ブロックを見いだすプロセスは、ブロックマッチングアルゴリズムによって達成され得る。符号化される現在のブロックと予測ブロックとの間の画素差分を表す残差データは、残差ブロック又は予測誤差と称される。インター符号化ブロックは、予測ブロックを形成する参照フレームにおける参照ブロックを指し示す動きベクトル及び残差ブロックに従って符号化される。動きベクトルを決定するプロセスは一般的には動き予測と称される。イントラ符号化ブロックは、イントラ予測モード及び残差ブロックに従って符号化される。さらなる圧縮のために、残差ブロックは、画素領域から、たとえば周波数領域といった変換領域に変換されて残差変換係数をもたらし、次いで量子化され得る。最初に2次元配列に配置される量子化された変換係数は、変換係数の1次元ベクトルを生成するために走査されてよく、次いで、さらにいっそうの圧縮を達成するためにビデオビットストリームへとエントロピー符号化される。
【0005】
次いで、符号化ビデオビットストリームは、デジタルビデオ機能を伴う別の電子デバイスによってアクセスされるコンピュータ読み取り可能な記録媒体(たとえばフラッシュメモリ)に保存されるか、又は有線もしくは無線で電子デバイスに直接伝送される。次いで、電子デバイスは、たとえば符号化ビデオビットストリームを解析してビットストリームからシンタックス要素を取得し、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、符号化ビデオビットストリームからのデジタルビデオデータを元のフォーマットに再構成することによってビデオ伸張(前述のビデオ圧縮とは逆の処理)を実行し、再構成されたデジタルビデオデータを電子デバイスのディスプレイに描画する。
【0006】
デジタルビデオの品質がハイビジョン(High Definition)から4K×2K又は8K×4Kに移行するにつれて、符号化/復号対象のビデオデータ量が指数関数的に増大する。これは、復号されるビデオデータの画質を維持しながらビデオデータをいかにより効率的に符号化/復号できるかという点での絶え間ない努力がある。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本出願は、ビデオデータの符号化及び復号に関連した実装形態を記述するものであり、より詳細には、ビデオコーディングのための残差及び係数のコーディングを改善する方法及びシステムに関連した実装形態を記述する。
【課題を解決するための手段】
【0008】
本出願の第1の態様によれば、ビデオデータを復号する方法は、ビットストリームから、符号化ユニットに対応する1つ以上のシンタックス要素及びビデオデータを受け取るステップと、1つ以上のシンタックス要素に応じてライス(rice)パラメータを決定するステップと、ビデオデータから、符号化ユニット内の画素に関する第1の符号語(コードワード)及び第2の符号語(コードワード)を復号するステップと、決定されたライスパラメータを使用して生成された所定のマッピング関係に従って、第1のコードワードを画素のパラメータに変換するステップと、第2の符号語をパラメータの記号値(sign value)に変換するステップと、パラメータ及び記号値に基づいて、画素の定量化された画素値を決定するステップとを含む。
【0009】
本出願の第2の態様によれば、電子装置は、1つ以上の処理部、メモリ、及びメモリに記憶された複数のプログラムを含む。このプログラムは、1つ以上の処理部によって実行されると、電子機器に、上記で記述されたようにビデオデータを復号する方法を実施させる。
【0010】
本出願の第3の態様によれば、非一時的なコンピュータ読み取り可能な記録媒体は、1つ以上の処理部を有する電子装置によって実行される複数のプログラムを記憶している。このプログラムは、1つ以上の処理部によって実行されると、電子機器に、上記で記述されたようにビデオデータを復号する方法を実施させる。
【0011】
実施形態のさらなる理解を提供するために含まれる添付図面は、本明細書に組み込まれて本明細書の一部を構成し、記述された実施形態を図示して、記述とともに基本原理を説明するのに役立つものである。類似の参照数字は相当する部分を指す。
【図面の簡単な説明】
【0012】
【
図1】本開示のいくつかの実施形態による例示的ビデオ符号化及び復号システムを示すブロック図である。
【
図2】本開示のいくつかの実施形態による例示的なビデオ符号化器を示すブロック図である。
【
図3】本開示のいくつかの実施形態による例示的ビデオ復号器を示すブロック図である。
【
図4A】本開示のいくつかの実施形態によって、フレームが、サイズ及び形状の異なる複数のビデオブロックへと再帰的に分割される様子を示すブロック図である。
【
図4B】本開示のいくつかの実施形態によって、フレームが、サイズ及び形状の異なる複数のビデオブロックへと再帰的に分割される様子を示すブロック図である。
【
図4C】本開示のいくつかの実施形態によって、フレームが、サイズ及び形状の異なる複数のビデオブロックへと再帰的に分割される様子を示すブロック図である。
【
図4D】本開示のいくつかの実施形態によって、フレームが、サイズ及び形状の異なる複数のビデオブロックへと再帰的に分割される様子を示すブロック図である。
【
図4E】本開示のいくつかの実施形態によって、フレームが、サイズ及び形状の異なる複数のビデオブロックへと再帰的に分割される様子を示すブロック図である。
【
図5A】本開示のいくつかの実装形態による、コンテキストコーディング及びバイパスコーディングを使用する効率的な符号化の変換の例を示すブロック図である。
【
図5B】本開示のいくつかの実装形態による、コンテキストコーディング及びバイパスコーディングを使用する効率的な符号化の変換の例を示すブロック図である。
【
図6】本開示のいくつかの実装形態による従属スカラー量子化の例示的プロセスを示すブロック図である。
【
図7】本開示のいくつかの実装形態による、2つの異なるスカラー量子化器の間を切り換えるための例示的ステートマシンを示すブロック図である。
【
図8】本開示のいくつかの実装形態による、ビデオ復号器が符号化ブロックに対する残差及び係数のコーディングを実行する例示的プロセスを示す流れ図である。
【
図9】本開示のいくつかの実装形態による、コンテキスト適応型2進算術符号化(CABAC)エンジンの例を示すブロック図である。
【発明を実施するための形態】
【0013】
次に具体的な実施形態が詳細に参照され、それらの実施例が添付図面に示されている。以下の詳細な説明では、本明細書で提示される主題の理解を支援するために多くの非限定的かつ具体的な詳細が明らかにされる。しかし、特許請求の範囲から逸脱することなく様々な代替形態が使用され得、これらの具体的な詳細なしで主題が実施され得ることが、当業者には明らかであろう。たとえば、本明細書で提示された主題が、デジタルビデオ機能を伴う多くのタイプの電子デバイスにおいて実施され得ることは、当業者には明らかであろう。
【0014】
図1は、本開示のいくつかの実施形態による、ビデオブロックの符号化と復号を並行して行うための例示的システム10を示すブロック図である。
図1に示されるように、システム10は、後に送信先(デスティネーション)装置14によって復号されるビデオデータを生成して符号化する情報源(ソース)装置12を含む。情報源装置12及び送信先装置14は、デスクトップコンピュータ又はラップトップコンピュータ、タブレット型コンピュータ、スマートフォン、セットトップボックス、デジタルテレビジョン、カメラ、表示装置、デジタルメディアプレーヤー、ビデオゲームコンソール、ビデオストリーミングデバイス等を含む種々の電子デバイスのうち任意のものを備え得る。いくつかの実施形態では、情報源装置12及び送信先装置14は無線通信機能を装備している。
【0015】
いくつかの実施形態では、送信先装置14は、リンク16を通じて、復号される符号化ビデオデータを受け取ってよい。リンク16は、情報源装置12から送信先装置14に、符号化ビデオデータを転送することができる任意のタイプの通信媒体又は通信デバイスを備え得る。一例では、リンク16は、情報源装置12が送信先装置14に、符号化ビデオデータをリアルタイムで直接伝送することを可能にするための通信媒体を備え得る。符号化ビデオデータは、無線通信プロトコルなどの通信規格に従って変調されて送信先装置14に伝送され得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つ以上の物理的伝送路などの任意の無線又は有線の通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、広域ネットワーク、又はインターネットなどのグローバネットワークなどのパケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、又は情報源装置12から送信先装置14への通信を容易にするのに役立つその他の機器を含み得る。
【0016】
いくつかの他の実施形態では、符号化ビデオデータは、出力インタフェース22から記録装置32に伝送され得る。続いて、記録装置32における符号化ビデオデータは、送信先装置14によって入力インタフェース28を介してアクセスされ得る。記録装置32は、ハードディスク(hard drive)、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性のメモリ、又は符号化ビデオデータを記憶するのに適する他のデジタル記録媒体など、種々の、分散された又は局所的にアクセスされるデータ記録媒体のうち任意のものを含み得る。さらなる例では、記録装置32は、情報源装置12によって生成された、符号化ビデオデータを保持し得る、ファイルサーバ又は別の中間記録装置に相当してよい。送信先装置14は、記録装置32からストリーミング又はダウンロードすることによって、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶したり、符号化ビデオデータを送信先装置14に伝送したりすることができる任意のタイプのコンピュータでよい。例示的ファイルサーバは、(たとえばウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS:network attached storage)装置、又はローカルディスクドライブを含む。送信先装置14は、ファイルサーバに記憶されている符号化ビデオデータにアクセスするのに適する無線チャンネル(たとえばWi-Fi接続)、有線接続(たとえば、DSLやケーブルモデムなど)、又は両方の組合せを含む任意の標準的なデータ接続を通じて、符号化ビデオデータにアクセスし得る。記録装置32からの符号化ビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、又は両方の組合せでよい。
【0017】
図1に示されるように、情報源装置12は、ビデオ源18、ビデオ符号化器20及び出力インタフェース22を含む。ビデオ源18は、たとえばビデオカメラ、以前に取り込まれたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受け取るためのビデオ供給インタフェース、及び/又はソースビデオとしてのコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、あるいはそのようなソースの組合せといった、ビデオキャプチャーデバイスなどのソースを含み得る。一例として、ビデオ源18がセキュリティ監視システムのビデオカメラである場合には、情報源装置12及び送信先装置14がカメラフォン又はビデオフォンを形成し得る。しかしながら、本出願に記述された実施形態は、一般にビデオコーディングに適用可能であり得、無線及び/又は有線の用途に適用され得る。
【0018】
取り込まれた、前もって取り込まれた、又はコンピュータで生成されたビデオは、ビデオ符号化器20によって符号化され得る。符号化ビデオデータは、情報源装置12の出力インタフェース22を通って送信先装置14に直接伝送され得る。符号化ビデオデータは、復号及び/又は再生のために、送信先装置14又は他のデバイスによる後のアクセス用に、記録装置32にも(又は代わりに)記憶されてよい。出力インタフェース22はモデム及び/又は送信器をさらに含み得る。
【0019】
送信先装置14は、入力インタフェース28、ビデオ復号器30、及び表示装置34を含む。入力インタフェース28は受信器及び/又はモデムを含み得、リンク16を通じて、符号化ビデオデータを受け取る。リンク16を通じて通信されるか又は記録装置32で供給される符号化ビデオデータは、ビデオ復号器30によってビデオデータを復号する際に使用される、ビデオ符号化器20によって生成された種々のシンタックス要素を含み得る。そのようなシンタックス要素が含まれ得る符号化ビデオデータは、通信媒体で伝送され、記録媒体又はファイルサーバに記憶される。
【0020】
いくつかの実施形態では、送信先装置14が含み得る表示装置34は、統合表示装置と、送信先装置14と通信するように構成された外部表示装置とであり得る。表示装置34は、復号ビデオデータをユーザーに表示し、液晶ディスプレイ(LCD:liquid crystal display)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は別タイプの表示装置などの種々の表示装置のうち任意のものを備え得る。
【0021】
ビデオ符号化器20及びビデオ復号器30は、VVC,HEVC,MPEG-4 Part 10 AVC(Advanced Video Coding),又はこれらの規格の拡張版などの、知的所有物又は業界規格に基づいて動作し得る。本出願は特定のビデオ符号化/復号の規格に限定されず、他のビデオ符号化/復号の規格に適用可能であり得ることを理解されたい。一般に、情報源装置12のビデオ符号化器20は、これらの現在の規格又は将来の規格のいずれかに従ってビデオデータを符号化するように構成され得ることが企図されている。同様に、送信先装置14のビデオ復号器30は、これらの現在の規格又は将来の規格のいずれかに従ってビデオデータを復号するように構成され得ることも一般に企図されている。
【0022】
ビデオ符号化器20及びビデオ復号器30は、それぞれ、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP:digital signal processor)、特定用途向け集積回路(ASIC:application specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)、ディスクリートロジック(個別論理回路:discrete logic)、ソフトウェア、ハードウェア、ファームウェア又はこれらの任意の組合せなどの種々の適切な符号化回路構成のうち任意のものとして実施され得る。電子デバイスは、部分的にソフトウェアで実施されるときには、ソフトウェアに関する命令を適切な非一時的コンピュータ可読媒体に記憶し、1つ以上のプロセッサを使用してハードウェアで命令を実行して、本開示で開示されたビデオ符号化/復号の処理を実行し得る。ビデオ符号化器20及びビデオ復号器30の各々が1つ以上の符号化器又は復号器に含まれ得、そのいずれかが、それぞれのデバイスにおいて組み合わされた符号化器/復号器(CODEC)の一部として一体化され得る。
【0023】
図2は、本出願に記述されたいくつかの実施形態による例示的ビデオ符号化器20を示すブロック図である。ビデオ符号化器20は、ビデオフレームの内部のビデオブロックのイントラ予測符号化及びインター予測符号化を実行し得る。イントラ予測符号化は、所与のビデオフレーム又はピクチャの内部のビデオデータにおける空間冗長性を低減するか又は除去するために空間予測に頼る。インター予測符号化は、ビデオシーケンスの隣接したビデオフレーム又はピクチャの内部のビデオデータにおける時間冗長性を低減するか又は除去するために時間予測に頼る。
【0024】
図2に示されるように、ビデオ符号化器20は、ビデオデータメモリ40、予測処理部41、復号ピクチャバッファ(DPB:decoded picture buffer)64、加算器50、変換処理部52、量子化部54、及びエントロピー符号化部56を含む。予測処理部41は、動き推定部42、動き補償部44、分割部45、イントラ予測処理部46、及びイントラブロックコピー(BC)部48をさらに含む。いくつかの実施形態では、ビデオ符号化器20は、ビデオブロックを再構成するための逆量子化部58、逆変換処理部60、及び加算器62も含む。再構成されたビデオから、ブロック境界をフィルタリングしてブロック歪を除去するために、加算器62とDPB64との間にデブロッキングフィルタ(図示せず)が配置されてよい。デブロッキングフィルタに加えて、加算器62の出力をフィルタリングするためにループ内フィルタ(図示せず)も使用され得る。ビデオ符号化器20は、変更不能な又はプログラマブルなハードウェアユニットという形態を取ってよく、あるいは、1つ以上の変更不能な又はプログラマブルなハードウェアユニットのうちに分割されてもよい。
【0025】
ビデオデータメモリ40は、ビデオ符号化器20の構成要素によって符号化されるビデオデータを記憶し得る。ビデオデータメモリ40のビデオデータは、たとえばビデオ源18から取得され得る。DPB64は、ビデオ符号化器20によって(たとえばイントラ予測符号化モード又はインター予測符号化モードで)ビデオデータを符号化するのに用いる参照ビデオデータを記録するバッファである。ビデオデータメモリ40及びDPB64は、様々な記録装置のうち任意のものによっても形成され得る。様々な例において、ビデオデータメモリ40は、ビデオ符号化器20の他の構成要素とともにオンチップでよく、又はそれらの構成要素に対してオフチップでもよい。
【0026】
図2に示されるように、予測処理部41の内部の分割部45は、受け取ったビデオデータをビデオブロックへと分割する。この分割は、ビデオデータに関連づけられた四分木構造などの所定の分割構造に従って、ビデオフレームを、スライス、タイル、又は他のより大きい符号化ユニット(CU)へと分割することを含み得る。ビデオフレームは複数のビデオブロック(又は、タイルと称されるビデオブロックのセット)に分割され得る。予測処理部41は、誤り結果(たとえば符号化レートや歪みのレベル)に基づいて現在のビデオブロック用に、複数のイントラ予測符号化モードのうちの1つ、又は複数のインター予測符号化モードのうちの1つなど、複数の可能な予測符号化モードのうちの1つを選択してよい。予測処理部41は、結果として生じるイントラ予測符号化ブロック又はインター予測符号化ブロックを、加算器50に供給して残差ブロックを生成してよく、また、この符号化ブロックを加算器62に供給して、後に参照フレームの一部として使用するために再構成してよい。予測処理部41は、また、エントロピー符号化部56に、動きベクトル、イントラモードインジケータ、分割情報、及び他のそのようなシンタックス情報などのシンタックス要素を供給する。
【0027】
現在のビデオブロック用に適切なイントラ予測符号化モードを選択するために、予測処理部41の内部のイントラ予測処理部46は、符号化される現在のブロックと同じフレームにおける1つ以上の近隣のブロックに関する現在のビデオブロックのイントラ予測符号化を実行して、空間予測をもたらし得る。予測処理部41の内部の動き推定部42及び動き補償部44は、1つ以上の参照フレームにおける1つ以上の予測ブロックに関連して現在のビデオブロックのインター予測符号化を実行して時間予測をもたらす。ビデオ符号化器20は、たとえばビデオデータの各ブロック用に適切な符号化モードを選択するために、複数の符号化パスを実行してよい。
【0028】
いくつかの実施形態では、動き推定部42は、一連のビデオフレームの内部の所定のパターンに従って、参照ビデオフレームの内部の予測ブロックに対する現在のビデオフレームの内部のビデオブロックの予測ユニット(PU)の変位を示す動きベクトルを生成することにより、現在のビデオフレームに関するインター予測モードを決定する。動き推定部42によって実行される動き予測は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム内(又は他の符号化ユニット内)の符号化される現在のブロックに関連して、参照フレーム内(又は他の符号化ユニット)内の予測ブロックに対する現在のビデオフレーム又はピクチャの内部のビデオブロックのPUの変位を示し得る。所定のパターンは、ビデオフレームを、シーケンスにおけるPフレーム又はBフレームとして指定し得る。イントラBC部48は、インター予測用の動き推定部42による動きベクトルの決定と同様のやり方で、イントラBC符号化用の、たとえばブロックベクトルといったベクトルを決定してよく、又は動き推定部42を利用してブロックベクトルを決定してもよい。
【0029】
予測ブロックは、画素差分の観点から、符号化対象となるビデオブロックのPUと密接に対応するものとみなされる参照フレームのブロックであり、差分絶対値和(SAD:sum of absolute difference)、差分二乗和(SSD:sum of square difference)、又は他の差分基準量によって決定され得る。いくつかの実施形態では、ビデオ符号化器20は、DPB64に記憶された参照フレームのサブ整数型画素位置の値を計算してよい。たとえば、ビデオ符号化器20は、参照フレームの1/4画素位置、1/8画素位置、又は他の分数画素位置の値を補間してよい。したがって、動き推定部42は、全体の画素位置及び分数画素位置に関する動き探索を実行して、分数画素精度を有する動きベクトルを出力し得る。
【0030】
動き推定部42は、インター予測符号化フレームのビデオブロックのPUに関して、第1の参照フレームリスト(リスト0)又は第2の参照フレームリスト(リスト1)から選択された参照フレームの予測ブロックの位置と当該PUの位置とを比較することにより動きベクトルを計算する。ここで、第1の参照フレームリスト又は第2の参照フレームリストはそれぞれDPB64に格納されている1つ以上の参照フレームを特定するものである。動き推定部42は、計算された動きベクトルを動き補償部44に送り、次いでエントロピー符号化部56に送る。
【0031】
動き補償部44によって実行される動き補償は、動き推定部42によって決定された動きベクトルに基づいて予測ブロックを取り込むこと又は生成することを包含し得る。動き補償部44は、現在のビデオブロックのPUに関する動きベクトルを受け取ると、動きベクトルが参照フレームリストのうちの1つにおいて指し示す予測ブロックを捜し出し、DPB64から予測ブロックを取り出して、予測ブロックを加算器50に転送する。次いで、加算器50は、符号化される現在のビデオブロックの画素値から動き補償部44によってもたらされた予測ブロックの画素値を差し引くことにより、画素差分値の残差ビデオブロックを形成する。残差ビデオブロックを形成する画素差分値は、輝度(luma)差分成分もしくは色差(chroma)差分成分、又はこれらの両方を含み得る。動き補償部44は、ビデオ復号器30によって、ビデオフレームのビデオブロックを復号する際に使用されるビデオフレームのビデオブロックに関連したシンタックス要素も生成し得る。シンタックス要素は、たとえば、予測ブロックを特定するために使用される動きベクトルを定義するシンタックス要素、予測モードを指示する任意のフラグ、又は本明細書に記述されたその他のシンタックス情報を含み得る。なお、動き推定部42と動き補償部44はほとんど一体化され得るが、概念的な目的のために個別に示されている。
【0032】
いくつかの実施形態では、イントラBC部48は、動き推定部42及び動き補償部44に関して上記に記述されたのと同様のやり方でベクトルを生成して予測ブロックを取り込み得るが、予測ブロックは符号化される現在のブロックと同じフレームにあり、ベクトルは動きベクトルと対照的にブロックベクトルと称される。詳細には、イントラBC部48は、現在のブロックを符号化するためにイントラ予測モードを使用するように決定してよい。いくつかの例において、イントラBC部48は、たとえば個別の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し、レート-歪み解析によってそれらイントラ予測モードの性能を分析してよい。次に、イントラBC部48は、試験された様々なイントラ予測モードの中で、イントラモードインジケータを生成するのに使用する適切なイントラ予測モードを選択してよい。たとえば、イントラBC部48は、レート-歪み解析を使用して、試験された様々なイントラ予測モードに関するレート-歪み値を計算し、試験されたモードの中で最善のレート-歪み特性を有するイントラ予測モードを、使用するのに適切なイントラ予測モードとして選択してよい。レート-歪み解析は、一般に、符号化ブロックと、当該符号化ブロックを生成するために符号化される符号化前の元のブロックとの間の歪み(又は誤差)量とともに、これら符号化ブロックを生成するために使用されたビットレート(すなわち、多数のビット)を決定する。イントラBC部48は、様々な符号化ブロックについて歪みとレートとの比率を計算して、そのブロックに関する最善のレート-歪み値を示すイントラ予測モードを決定してよい。
【0033】
他の例では、イントラBC部48は、本明細書に記述された実施形態に従ってイントラBC予測のためのそのような機能を実行するために、動き推定部42及び動き補償部44を全体的又は部分的に使用してよい。どちらの場合にも、イントラブロックコピーについては、予測ブロックは、画素差分の観点から、符号化対象となるブロックと密接に対応するものとみなされるブロックでよく、差分絶対値和(SAD)、差分二乗和(SSD)、又は他の差分基準量によって決定され得る。予測ブロックの特定には、サブ整数型画素位置の値の計算が含まれ得る。
【0034】
予測ブロックがイントラ予測による同じフレームからのものであろうとインター予測による異なるフレームからのものであろうと、ビデオ符号化器20は、符号化される現在のビデオブロックの画素値から予測ブロックの画素値を差し引くことによって残差ビデオブロックを形成してよく、画素差分値を形成する。残差ビデオブロックを形成する画素差分値は、輝度差分成分と色差差分成分の両方を含み得る。
【0035】
イントラ予測処理部46は、前述のように、動き推定部42及び動き補償部44によって実行されるインター予測、又はイントラBC部48によって実行されるイントラブロックコピー予測の代替として、現在のビデオブロックをイントラ予測してよい。詳細には、イントラ予測処理部46は、現在のブロックを符号化するためにイントラ予測モードを使用するように決定してよい。そうするために、イントラ予測処理部46は、たとえば個別の符号化パス中に様々なイントラ予測モードを使用して現在のブロックを符号化してよく、イントラ予測処理部46(又はいくつかの例ではモード選択部)は、試験されたイントラ予測モードから、使用するべき適切なイントラ予測モードを選択してよい。イントラ予測処理部46は、そのブロック向けに選択されたイントラ予測モードを表す情報をエントロピー符号化部56に供給してよい。エントロピー符号化部56は、ビットストリームにおける選択されたイントラ予測モードを指示する情報を符号化してよい。
【0036】
予測処理部41がインター予測又はイントラ予測のいずれかによって現在のビデオブロック用の予測ブロックを決定した後に、加算器50が、現在のビデオブロックから予測ブロックを差し引くことによって残差ビデオブロックを生成する。残差ブロックにおける残差ビデオデータは1つ以上の変換ユニット(TU)に含まれ得、変換処理部52に供給される。変換処理部52は、離散コサイン変換(DCT:discrete cosine transform)又は概念的に同様の変換などの変換を使用して残差ビデオデータを残差変換係数に変換する。
【0037】
変換処理部52は、結果として生じる変換係数を量子化部54に送ってよい。量子化部54は、変換係数を量子化してビットレートをさらに低下させる。量子化プロセスは、係数のうちのいくつか又はすべてに関連したビット深さも縮小し得る。量子化の程度は、量子化パラメータを調節することによって変更され得る。いくつかの例において、量子化部54は、次いで、量子化された変換係数を含むマトリクスの走査を実行し得る。あるいはエントロピー符号化部56が走査を実行してもよい。
【0038】
量子化に続いて、エントロピー符号化部56は、たとえば、コンテキスト適応型可変長符号化(CAVLC:context adaptive variable length coding)、コンテキスト適応型2値算術符号化(CABAC:context adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型2値算術符号化(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率区間区分エントロピー符号化(PIPE:probability interval partitioning entropy coding)、又は別のエントロピー符号化の技法もしくは技術を使用して、量子化された変換係数をビデオビットストリームへとエントロピー符号化する。次いで、符号化ビットストリームは、ビデオ復号器30に伝送されるか、又は後にビデオ復号器30へ伝送するため、もしくはビデオ復号器30によって後に取り戻すために記録装置32に記録され得る。エントロピー符号化部56は、符号化される現在のビデオフレームに関する動きベクトル及び他のシンタックス要素もエントロピー符号化してよい。
【0039】
他のビデオブロックを予測するための参照ブロックを生成するために、画素領域における残差ビデオブロックを再構成するのに、逆量子化部58が逆量子化を適用し、逆変換処理部60が逆変換を適用する。前述のように、動き補償部44は、DPB64に記憶されたフレームの1つ以上の参照ブロックから、動き補償された予測ブロックを生成し得る。動き補償部44はまた、予測ブロックに1つ以上の補間フィルタを適用して、動き予測に用いるサブ整数画素値を計算してよい。
【0040】
加算器62は、再構成された残差ブロックを、動き補償部44によって生成された動き補償された予測ブロックに加えて、DPB64に記憶するための参照ブロックを生成する。次いで、参照ブロックは、イントラBC部48、動き推定部42及び動き補償部44によって、後続のビデオフレームにおける別のビデオブロックをインター予測するための予測ブロックとして使用され得る。
【0041】
図3は、本出願のいくつかの実施形態による例示的なビデオ復号器30を示すブロック図である。ビデオ復号器30は、ビデオデータメモリ79、エントロピー復号部80、予測処理部81、逆量子化部86、逆変換処理部88、加算器90、及びDPB 92を含む。予測処理部81は、動き補償部82、イントラ予測処理部84、及びイントラBC部85をさらに含む。ビデオ復号器30は、
図2に関連してビデオ符号化器20に関して記述された符号化プロセスとは全体的に逆の復号プロセスを実行し得る。たとえば、動き補償部82は、エントロピー復号部80から受け取られた動きベクトルに基づいて予測データを生成し得、一方、イントラ予測処理部84は、エントロピー復号部80から受け取られたイントラ予測モードインジケータに基づいて予測データを生成し得る。
【0042】
いくつかの例において、ビデオ復号器30のユニットには、本出願の実施形態を実行するようにタスクが課されることがある。また、いくつかの例では、本開示の実施形態は、ビデオ復号器30の1つ以上のユニットの間で分割されてもよい。たとえば、イントラBC部85は、本出願の実施形態を、単独で、又はビデオ復号器30の動き補償部82、イントラ予測処理部84、及びエントロピー復号部80などの他のユニットと組み合わせて実行し得る。いくつかの例では、ビデオ復号器30はイントラBC部85を含まなくてよく、イントラBC部85の機能性は、動き補償部82など、予測処理部81の他の構成要素によって実行され得る。
【0043】
ビデオデータメモリ79は、ビデオ復号器30の他の構成要素によって復号される符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ79に記憶されたビデオデータは、記録装置32から、たとえばカメラなどのローカルなビデオ源から、ビデオデータの有線もしくは無線のネットワーク通信によって、又はたとえばフラッシュドライブもしくはハードディスクといった物理的データ記録媒体にアクセスすることによって取得され得る。ビデオデータメモリ79は、符号化ビデオビットストリームからの符号化ビデオデータを記憶する、符号化ピクチャバッファ(CPB:coded picture buffer)を含み得る。ビデオ復号器30の、復号ピクチャバッファ(DPB)92は、ビデオ復号器30によって(たとえばイントラ予測符号化モード又はインター予測符号化モードで)ビデオデータを符号化するのに用いる参照ビデオデータを記憶する。ビデオデータメモリ79及びDPB 92は、シンクロナスDRAM(SDRAM:Synchronous Dynamic Random Access Memory)、磁気抵抗型RAM(MRAM:Magneto-resistive RAM)、抵抗変化型RAM(RRAM)、又は他のタイプのメモリデバイスを含む動的ランダムアクセスメモリ(DRAM:Resistive RAM)などの種々のメモリデバイスのうち任意のものによって形成され得る。例示のために、ビデオデータメモリ79及びDPB 92は、
図3におけるビデオ復号器30の2つの別個の構成要素として表されている。しかし、ビデオデータメモリ79及びDPB92は、同一のメモリデバイス又は個別のメモリデバイスによってもたらされ得ることが当業者には明らかであろう。いくつかの例では、ビデオデータメモリ79は、ビデオ復号器30の他の構成要素とともにオンチップでよく、又はそれらの構成要素に対してオフチップでもよい。
【0044】
復号プロセス中に、ビデオ復号器30は、符号化ビデオフレーム及び関連するシンタックス要素のビデオブロックを表す符号化ビデオビットストリームを受け取る。ビデオ復号器30はビデオフレームレベル及び/又はビデオブロックレベルのシンタックス要素を受け取ってよい。ビデオ復号器30のエントロピー復号部80は、ビットストリームをエントロピー復号して、量子化係数、動きベクトル又はイントラ予測モードインジケータ、及び他のシンタックス要素を生成する。次いで、エントロピー復号部80は、動きベクトル及び他のシンタックス要素を予測処理部81に転送する。
【0045】
ビデオフレームが、イントラ予測符号化(I)フレームとして、又は他のタイプのフレームにおけるイントラ符号化予測ブロック向けに符号化されるとき、予測処理部81のイントラ予測処理部84は、信号伝達されたイントラ予測モード及び現在のフレームの以前に復号されたブロックからの参照データに基づいて、現在のビデオフレームのビデオブロックに関する予測データを生成し得る。
【0046】
ビデオフレームがインター予測符号化(すなわちB又はP)フレームとして符号化されるとき、予測処理部81の動き補償部82は、エントロピー復号部80から受け取られた動きベクトル及び他のシンタックス要素に基づいて現在のビデオフレームのビデオブロックに関する1つ以上の予測ブロックを生成する。予測ブロックの各々が、参照フレームリストのうちの1つの内部の参照フレームから生成され得る。ビデオ復号器30は、DPB92に記憶された参照フレームに基づくデフォルトの構成技術を使用して、参照フレームリスト、リスト0及びリスト1を構成し得る。
【0047】
いくつかの例では、本明細書に記述されたイントラBCモードに従ってビデオブロックが符号化されるとき、予測処理部81のイントラBC部85は、エントロピー復号部80から受け取られたブロックベクトル及び他のシンタックス要素に基づいて現在のビデオブロックに関する予測ブロックを生成する。予測ブロックは、ビデオ符号化器20によって定義された現在のビデオブロックと同一のピクチャの再構成された領域の内部にあり得る。
【0048】
動き補償部82及び/又はイントラBC部85は、動きベクトル及び他のシンタックス要素を解析することによって現在のビデオフレームのビデオブロックに関する予測情報を決定し、次いで、予測情報を使用して、復号される現在のビデオブロックに関する予測ブロックを生成する。たとえば、動き補償部82は、受け取られたシンタックス要素のうちのいくつかを使用して、ビデオフレームのビデオブロックを符号化するのに使用される予測モード(たとえばイントラ予測又はインター予測)、インター予測フレームタイプ(たとえばB又はP)、フレームに関する参照フレームリストのうちの1つ以上の構成情報、フレームにおける各インター予測符号化ビデオブロックの動きベクトル、フレームの各インター予測符号化ビデオブロックのインター予測状態、及び現在のビデオフレームにおけるビデオブロックを復号するための他の情報を決定する。
【0049】
同様に、イントラBC部85は、たとえばフラグといった受け取られたシンタックス要素のうちのいくつかを使用して、現在のビデオブロックはイントラBCモードを使用して予測されたものであること、再構成された領域の内部にあってDPB 92に記憶されるべきフレームのビデオブロックの構成情報、フレームの各イントラBC予測ビデオブロックのブロックベクトル、フレームの各イントラBC予測ビデオブロックのイントラBC予測状態、及び現在のビデオフレームにおけるビデオブロックを復号するための他の情報を決定し得る。
【0050】
動き補償部82はまた、ビデオ符号化器20によってビデオブロックの符号化中に参照ブロックのサブ整数画素の補間値を計算するために使用されたような補間フィルタを使用して、補間を実行し得る。この場合、動き補償部82は、受け取られたシンタックス要素から、ビデオ符号化器20によって使用された補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成し得る。
【0051】
逆量子化部86は、ビットストリームの中に与えられてエントロピー復号部80によってエントロピー復号された量子化変換係数を、ビデオ符号化器20によってビデオフレームにおける各ビデオブロックについて量子化の程度を決定するために計算されたものと同一の量子化パラメータを使用して逆量子化する。逆変換処理部88は、画素領域における残差ブロックを再構成するために、変換係数に対して、たとえば逆DCT、逆整数変換、又は概念的に類似の逆変換プロセスといった逆変換を適用する。
【0052】
動き補償部82又はイントラBC部85がベクトル及び他のシンタックス要素に基づいて現在のビデオブロックに関する予測ブロックを生成した後に、加算器90は、逆変換処理部88からの残差ブロックと、動き補償部82及びイントラBC部85によって生成された対応する予測ブロックとを合計することによって、現在のビデオブロックに関する復号ビデオブロックを再構成する。復号ビデオブロックをさらに処理するために、加算器90とDPB92との間にループ内フィルタ(図示せず)が配置されてよい。次いで、所与のフレームにおける復号ビデオブロックは、次のビデオブロックの後続の動き補償に使用される参照フレームを記憶するDPB 92に記憶される。DPB92又はDPB92とは別個のメモリデバイスも、復号されたビデオを、後に
図1の表示装置34などの表示装置に提示するために記憶し得る。
【0053】
一般的なビデオ符号化プロセスでは、ビデオシーケンスは、一般的にはフレーム又はピクチャの順序づけられたセットを含む。各フレームが、SL、SCb、及びSCrと表される3つのサンプル配列を含み得る。SLは、輝度(luma)サンプルからなる2次元配列である。SCbは、Cb色差サンプルからなる2次元配列である。SCrは、Cr色差サンプルからなる2次元配列である。他の事例では、フレームは白黒でよく、したがって輝度サンプルの2次元配列を1つだけ含む。
【0054】
図4Aに示されるように、ビデオ符号化器20(より具体的には分割部45)は、最初にフレームを符号化ツリーユニット(CTU)の集合に分割することによってフレームの符号化表現を生成する。ビデオフレームは、左から右及び上から下へのラスタスキャン順で連続的に順序づけられた整数個のCTUを含み得る。各CTETは最大の論理符号化ユニットであり、CTUの幅及び高さは、シーケンスパラメータセットにおいて、ビデオ符号化器20によって、ビデオシーケンスにおけるすべてのCTUが128×128、64×64、32×32、及び16×16のうちの1つである同一のサイズを有するように信号伝達される。しかし、本出願は必ずしも特定のサイズに制限されるものではないことに留意されたい。
図4Bに示されるように、各CTUは、輝度(luma)サンプルからなる1つの符号化ツリーブロック(CTB)と、対応する2つの色差サンプルからなる符号化ツリーブロックと、符号化ツリーブロックのサンプルを符号化するのに使用されるシンタックス要素とを含み得る。シンタックス要素は、画素の符号化ブロックの種々のタイプのユニットの特性と、インター予測又はイントラ予測、イントラ予測モード、動きベクトル、及び他のパラメータを含め、ビデオ復号器30にてビデオシーケンスを再構成し得る方法とを記述するものである。白黒ピクチャ又は3つの個別のカラープレーンを有するピクチャでは、CTUは、単一の符号化ツリーブロックと、符号化ツリーブロックのサンプルを符号化するのに使用されるシンタックス要素とを含み得る。符号化ツリーブロックは、サンプルのN×Nのブロックでよい。
【0055】
より優れた性能を達成するために、ビデオ符号化器20は、CTUの符号化ツリーブロックに対して、二分木(binary-tree)分割、三分木(ternary-tree)分割、四分木(quad-tree)分割、又はこれらの組合せなどの木分割を再帰的に実行して、CTUをより小さい符号化ユニット(CU)に分割し得る。
図4Cに表されるように、64×64のCTU400が、最初に、それぞれが32×32のブロックサイズを有する4つのより小さいCUに分割される。4つのより小さいCUの中で、CU410及びCU420が、それぞれ16×16のブロックサイズで4つのCUに分割される。2つの16×16のCUである430及び440が、それぞれ8×8のブロックサイズで4つのCUにさらに分割される。
図4Dは、
図4Cに表されたようなCTU400の分割プロセスの最終結果を示す四分木データ構造を表すものであり、四分木の各リーフノードが32×32~8×8の範囲のそれぞれのサイズの1つのCUに対応する。各CUは、
図4Bに表されたCTUに類似して、輝度サンプルの符号化ブロック(CB)と、同じサイズのフレームの色差サンプルの2つの対応する符号化ブロックと、符号化ブロックのサンプルを符号化するのに使用されるシンタックス要素とを含み得る。白黒ピクチャ又は3つの個別のカラープレーンを有するピクチャでは、CUは、単一の符号化ブロックと、符号化ブロックのサンプルを符号化するのに使用されるシンタックス構造とを含み得る。
図4C及び
図4Dに表された四分木分割は単なる説明のためのものであり、1つのCTUが、様々な局所的特性に適合するように、四分木分割/三分木分割/二分木分割に基づいてCUに分割され得ることに留意されたい。複合の木構造では、1つのCTUが四分木構造によって分割され、各四分木の葉CUが二分木構造及び三分木構造によってさらに分割され得る。
図4Eに示されるように、4分割、水平2分割、垂直2分割、水平3分割、垂直3分割といった5つの分割タイプがある。
【0056】
いくつかの実施形態では、ビデオ符号化器20は、CUの符号化ブロックを1つ以上のM×Nの予測ブロック(PB)へとさらに分割し得る。予測ブロックは、同一の(インター又はイントラ)予測が適用されるサンプルの矩形状(正方形又は非正方形)のブロックである。CUの予測ユニット(PU)は、輝度サンプルの予測ブロックと、色差サンプルの2つの対応する予測ブロックと、予測ブロックを予測するのに使用されるシンタックス要素とを含み得る。白黒ピクチャ又は3つの個別のカラープレーンを有するピクチャでは、PUは、単一の予測ブロックと、予測ブロックを予測するのに使用されるシンタックス構造とを含み得る。ビデオ符号化器20は、CUの各PUにおける、予測輝度、輝度に関するCb及びCrブロック、並びに、Cb及びCr予測ブロックを生成し得る。
【0057】
ビデオ符号化器20は、PUに関する予測ブロックを生成するためにイントラ予測又はインター予測を使用してよい。ビデオ符号化器20がイントラ予測を使用してPUの予測ブロックを生成する場合には、ビデオ符号化器20はPUに関連したフレームの復号サンプルに基づいてPUの予測ブロックを生成し得る。ビデオ符号化器20がインター予測を使用してPUの予測ブロックを生成する場合には、ビデオ符号化器20はPUに関連したフレーム以外の1つ以上のフレームの復号サンプルに基づいてPUの予測ブロックを生成し得る。
【0058】
ビデオ符号化器20は、CUにおける1つ以上のPUに関する予測輝度ブロック、予測Cbブロック及び予測Crブロックを生成した後に、CUの輝度残差ブロックにおける各サンプルがCUの予測輝度ブロックのうちの1つにおける輝度サンプルとCUの元の輝度符号化ブロックにおける対応するサンプルとの間の差分を示すように、CUの元の輝度符号化ブロックからCUの予測輝度ブロックを差し引くことによって、CUに関する輝度残差ブロックを生成し得る。同様に、ビデオ符号化器20は、CUのCb残差ブロックにおける各サンプルが、CUの予測Cbブロックのうちの1つにおけるCbサンプルとCUの元のCb符号化ブロックにおける対応するサンプルとの間の差分を示すように、CUのCb残差ブロック及びCr残差ブロックをそれぞれ生成してよく、CUのCr残差ブロックにおける各サンプルが、CUの予測Crブロックのうちの1つにおけるCrサンプルとCUの元のCr符号化ブロックにおける対応するサンプルとの間の差分を示し得る。
【0059】
その上、
図4Cに示されるように、ビデオ符号化器20は、四分木分割を使用して、CUの輝度、Cb及びCrの残差ブロックを、1つ以上の輝度、Cb及びCrの変換ブロックへと分解する。変換ブロックは、同一の変換が適用されるサンプルの矩形(正方形又は非正方形)のブロックである。CUの変換ユニット(TU)は、輝度サンプルの変換ブロックと、色差サンプルの2つの対応する変換ブロックと、変換ブロックサンプルを予測するのに使用されるシンタックス要素とを含み得る。したがって、CUの各TUは、輝度変換ブロック、Cb変換ブロック、及びCr変換ブロックに関連づけられ得る。いくつかの例では、TUに関連した輝度変換ブロックはCUの輝度残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。白黒ピクチャ又は3つの個別のカラープレーンを有するピクチャでは、TUは、単一の変換ブロックと、変換ブロックのサンプルを変換するのに使用されるシンタックス構造とを含み得る。
【0060】
ビデオ符号化器20は、TUの輝度変換ブロックに1つ以上の変換を適用してTU用の輝度係数ブロックを生成し得る。係数ブロックは変換係数の2次元配列であり得る。変換係数はスカラー量であり得る。ビデオ符号化器20は、TUのCb変換ブロックに1つ以上の変換を適用してTU用のCb係数ブロックを生成し得る。ビデオ符号化器20は、TUのCr変換ブロックに1つ以上の変換を適用してTU用のCr係数ブロックを生成し得る。
【0061】
ビデオ符号化器20は、係数ブロック(たとえば輝度係数ブロック、Cb係数ブロック又はCr係数ブロック)を生成した後に係数ブロックを量子化し得る。量子化は、一般に、変換係数を表すために使用されるデータ量をどうにかして低減するために変換係数が量子化されるプロセスを指すものであり、さらなる圧縮をもたらす。ビデオ符号化器20は、係数ブロックを量子化した後に、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオ符号化器20は量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型2値算術符号化(CABAC)を実行し得る。最終的に、ビデオ符号化器20は、符号化フレーム及び関連するデータの表現を形成する一連のビットを含むビットストリームを出力し得、これは記録装置32に保存されるか又は送信先装置14に伝送される。
【0062】
ビデオ復号器30は、ビデオ符号化器20によって生成されたビットストリームを受け取った後に、ビットストリームを解析して、ビットストリームからシンタックス要素を取得し得る。ビデオ復号器30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいてビデオデータのフレームを再構成し得る。ビデオデータを再構成するプロセスは、一般にビデオ符号化器20によって実行された符号化プロセスの逆のである。たとえば、ビデオ復号器30は、現在のCUのTUに関連した係数ブロックに対する逆変換を実行して、現在のCUのTUに関連した残差ブロックを再構成し得る。ビデオ復号器30はまた、現在のCUのPUに関する予測ブロックのサンプルを、対応する現在のCUのTUの変換ブロックのサンプルに加算することによって現在のCUの符号化ブロックを再構成する。ビデオ復号器30は、フレームの各CUに関する符号化ブロックを再構成した後にフレームを再構成し得る。
【0063】
前述のように、ビデオ符号化は、主としてイントラフレーム予測(すなわちイントラ予測)及びインターフレーム予測(すなわちインター予測)の2つのモードを使用してビデオ圧縮を達成するものである。パレットベースの符号化は、多くのビデオコーディング規格によって採用されている別の符号化方式である。パレットベースの符号化は、スクリーンに生成されたコンテンツを符号化するのに特に適し、この方式では、ビデオコーダ(たとえばビデオ符号化器20又はビデオ復号器30)が、所与のブロックのビデオデータを表現する色のパレットテーブルを形成する。パレットテーブルは、所与のブロックの中で最も優勢な(たとえば頻繁に使用される)画素値を含む。所与のブロックのビデオデータにおいて頻繁に表現されない画素値は、パレットテーブルに含まれないか、又は回避色としてパレットテーブルに含まれる。
【0064】
パレットテーブルの各エントリは、パレットテーブルの中の対応する画素値に関するインデックスを含む。ブロックの中のサンプルに関するパレットインデックスは、サンプルを予測するか又は再構成するために使用されるパレットテーブルのエントリを指示するように符号化され得る。このパレットモードは、ピクチャ、スライス、タイル、又はビデオブロックのそのようなグループ化の最初のブロックに関するパレット予測子を生成するプロセスから始まる。以下で説明されるように、後続のビデオブロックに関するパレット予測子は、一般的には、以前に使用されたパレット予測子を更新することによって生成される。例示のために、パレット予測子はピクチャレベルで定義されると想定されている。言い換えれば、ピクチャは、それぞれが固有のパレットテーブルを有する複数の符号化ブロックを含み得るが、全体のピクチャに関する1つのパレット予測子がある。
【0065】
ビデオビットストリームにおけるパレットエントリの信号伝達に必要なビット数を低減するために、ビデオ復号器は、ビデオブロックを再構成するために使用されるパレットテーブルの新しいパレットエントリを決定するためにパレット予測子を利用し得る。たとえば、パレット予測子は、以前に使用されたパレットテーブルからのパレットエントリを含んでよく、あるいは、つい最近使用されたパレットテーブルのすべてのエントリを含むことにより、つい最近使用されたパレットテーブルを用いて初期化されてもよい。いくつかの実施形態では、パレット予測子は、つい最近使用されたパレットテーブルからのすべてのエントリよりも少ないエントリを含み、次いで、以前に使用された他のパレットテーブルからのいくつかのエントリを組み込んでもよい。パレット予測子のサイズは、異なるブロックを符号化するために使用されるパレットテーブルのサイズと比較して、同一でも、より大きくても、より小さくてもよい。一例では、パレット予測子は、64のパレットエントリを含む先入れ先出し(FIFO)テーブルとして実現される。
【0066】
パレット予測子からのビデオデータのブロックに関するパレットテーブルを生成するために、ビデオ復号器は、符号化ビデオビットストリームから、パレット予測子の各入力について1ビットのフラグを受け取り得る。1ビットのフラグは、パレット予測子の関連する入力がパレットテーブルの中に含まれることを指示する第1の値(たとえば2進数の1)又はパレット予測子の関連する入力がパレットテーブルの中に含まれないことを指示する第2の値(たとえば2進数の0)を有し得る。パレット予測子のサイズがビデオデータのブロック用に使用されるパレットテーブルよりも大きい場合には、ビデオ復号器は、一旦パレットテーブルの最大サイズに達したら、さらにフラグを受け取ることを停止してよい。
【0067】
いくつかの実施形態では、パレットテーブルのいくつかのエントリは、パレット予測子を使用して決定されるのではなく、符号化ビデオビットストリームにおいて直接信号伝達され得る。そのようなエントリについて、ビデオ復号器は、符号化ビデオビットストリームから、エントリに関連した輝度成分及び2つの色差成分に関する画素値を指示する3つの個別のmビットの値を受け取り得、mはビデオデータのビット深度を表現する。直接信号伝達されるパレットエントリのために複数のmビットの値が必要とされるのに対して、パレット予測子から導出されるパレットエントリが必要とするのは1ビットのフラグのみである。したがって、パレット予測子を使用してパレット入力のいくつか又はすべてを信号伝達すれば、新規のパレットテーブルの入力を信号伝達するために必要なビット数をかなり低減することができ、それによって、パレットモード符号化の全体的な符号化効率を改善する。
【0068】
多くの事例において、1つのブロックに関するパレット予測子は、以前に符号化された1つ以上のブロックを符号化するために使用されたパレットテーブルに基づいて決定される。しかし、ピクチャ、スライス又はタイルにおける最初の符号化ツリーユニットを符号化するときには、以前に符号化されたブロックのパレットテーブルを利用できない可能性がある。したがって、以前に使用されたパレットテーブルのエントリを使用してパレット予測子を生成することはできない。そのような場合には、以前に使用されたパレットテーブルが利用できないときにパレット予測子を生成するために使用された値である、一連のパレット予測子の初期化指定子が、シーケンスパラメータセット(SPS)及び/又はピクチャパラメータセット(PPS)において信号伝達されてよい。SPSは、一般に、各スライスセグメントヘッダに見られるシンタックス要素によって参照されるPPSに見られるシンタックス要素のコンテンツによって決定されたものとして、符号化ビデオシーケンス(CVS)と呼ばれる一連の連続した符号化ビデオピクチャに適合するシンタックス要素のシンタックス構造を指す。PPSは、一般に、各スライスセグメントヘッダに見られるシンタックス要素によって決定されたものとして、CVSの内部の1つ以上の個々のピクチャに適合するシンタックス要素のシンタックス構造を指す。したがって、SPSは、一般にPPSよりも上位のレベルのシンタックス構造とみなされ、SPSに含まれるシンタックス要素は、一般にそれほど頻繁に変化せず、PPSに含まれるシンタックス要素と比較して、ビデオデータのより大きい部分に適合することを意味する。
【0069】
図5A~
図5Bは、本開示のいくつかの実装形態による、コンテキストコーディング及びバイパスコーディングを使用する効率的な符号化の変換の例を示すブロック図である。
【0070】
VVCにおける変換係数コーディングとHEVCにおける変換係数コーディングとは、どちらもオーバラップしない係数グループ(CG又はサブブロックとも呼ばれる)を使用するので類似である。しかしながら、2つの方式の間にはいくつかの差異もある。HEVCでは、係数の各CGは4×4の固定サイズを有する。VVCの草案6では、CGサイズはTBサイズに依拠するようになる。結果として、VVCでは様々なCGサイズ(1×16、2×8、8×2、2×4、4×2及び16×1)が使用可能である。符号化ブロックの内部のCG及びCGの内部の変換係数は、既定の走査順序に従って符号化される。
【0071】
1つの画素ごとのコンテキスト符号化ビン(CCB)の最大数を制限するために、TBの領域及びビデオコンポーネントのタイプ(すなわち輝度コンポーネント対色差コンポーネント)が、TBのコンテキスト符号化ビン(CCB)の最大数を導出するように使用される。いくつかの実施形態では、コンテキスト符号化ビンの最大数はTB_zosize*1.75と等しい。ここで、TB_zosizeは、係数のゼロ設定後のTBの内部のサンプル数を表す。coded_sub_block_flagは、CGが非ゼロ係数を含有するか否かを指示するフラグであり、CCBカウントについては考慮に入れられないことに留意されたい。
【0072】
係数のゼロ設定は、ゼロに設定される変換ブロックの、ある領域に配置された変換ブロックの強制係数に対して実行される演算である。たとえば、現行のVVCでは、64×64のTBは関連するゼロ設定演算を有する。その結果、64×64のTBの左上の32×32領域の外部に配置された変換係数は、すべてが強制的にゼロに設定される。実際には、現行のVVCでは、ある次元に沿って32を超えたサイズを有するあらゆる変換ブロックに対する係数のゼロ設定演算は、左上の32×32の領域を超えて配置された係数を、その次元に沿って強制的にゼロにするように実行される。
【0073】
VVCのコーディング変換係数において、変数remBinsPass1が、最初に、コンテキスト符号化ビン(MCCB)の許容された最大数に設定される。符号化プロセス中に、コンテキスト符号化ビンが信号伝達されるごとに、変数は1つ減少される。remBinsPass1が4以上である間は、係数は、第1のパスにおいて、sig_coeff_flag、abs_level_gt1_flag、par_level_flag及びabs_level_gt3_flagを含むシンタックス要素とともに、すべてがコンテキスト符号化ビンを使用して信号伝達される。係数のレベル情報の残りの部分は、第2のパスにおいて、ゴロム・ライス(Golomb-Rice)符号及びバイパス符号化ビンを使用して、abs_remainderのシンタックス要素とともに符号化される。remBinsPass1が第1のパスの符号化の間に4未満になったときには、現在の係数は第1のパスにおいて符号化されず、第2のパスにおいて、ゴロム・ライス符号及びバイパス符号化ビンを使用して、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に対するコンテキスト符号化ビンの使用から、残りの係数に対するバイパス符号化ビンの使用への移行が生じるのは、1つのTB当たり多くて1回である。係数サブブロックについては、remBinsPass1が、そのまさに第1の係数を符号化する前に4未満であれば、係数サブブロックの全体がバイパス符号化ビンを使用して符号化される。
【0074】
変換係数と変換スキップ係数との両方の符号化に対して1つの残差符号化方式が設計されているHEVCとは異なり、VVCでは、変換係数と変換スキップ係数(すなわち残差)とに対してそれぞれ2つの個別の残差符号化方式が採用される。
【0075】
たとえば、変換スキップモードにおける残差の統計的特性は、変換係数のものとは異なることが観測されており、また低周波成分のまわりにエネルギー圧縮はない。残差コーディングは、(空間の)変換スキップ残差の種々の信号特性を明らかにするように修正され、以下の事項を含む。
【0076】
(1)最後のx/y位置の信号伝達がないこと;
【0077】
(2)すべての前のフラグが0に等しいときのDCサブブロックを除いて、すべてのサブブロックについて符号化された符号化サブブロックフラグ;
【0078】
(3)2つの近隣の係数を伴うsig_coeff_flagコンテキストモデリング;
【0079】
(4)コンテキストモデルを1つだけ使用するpar_level_flag;
【0080】
(5)5つ、7つ、9つよりも多くの追加のフラグ;
【0081】
(6)残りの2値化処理のための修正されたライス(rice)パラメータの導出;及び
【0082】
(7)当該符号フラグに関するコンテキストモデリングは左の近隣の係数値及び上の近隣の係数値に基づいて決定され、すべてのコンテキスト符号化ビンを一緒に維持するためにsig_coeff_flagの後に符号フラグが解析されること。
【0083】
図5Bに示されるように、シンタックス要素sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flagは、第1のパスで、1つの残差サンプルから別の残差サンプルへとインタリーブ方式で符号化され、続いて、第2のパスで、ビット面によってabs_level_gtX_flagが符号化され、第3のパスでabs_remainderが符号化される。
【0084】
パス1:sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag
【0085】
パス2:abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flag
【0086】
パス3:abs_remainder
【0087】
図6は、本開示のいくつかの実装形態による従属スカラー量子化の例示的プロセスを示すブロック図である。
【0088】
現行のVVCでは、最大のQP値は51~63に拡張されており、それに応じて初期のQPの信号伝達が変更される。slice_qp_deltaの非ゼロ値が符号化されるとき、SliceQpYの初期値はスライスセグメント層において修正され得る。変換スキップブロックについて、QPが1に等しいとき量子化ステップサイズは1になるので、許容されるQPの最小値は4と定義される。
【0089】
加えて、HEVCで使用されるスカラー量子化は、「従属スカラー量子化(Dependent scalar quantization)」と呼ばれる新規の概念に適合される。従属スカラー量子化は、変換係数の1組の容認される再構成値が、再構成の順序において、現行の変換係数レベルに先行する変換係数レベルの値に依拠する手法を指す。容認される再構成ベクトルは、HEVCで使用される従来の独立したスカラー量子化と比較して、N次元のベクトル空間に、より高密度に圧縮される(Nは変換ブロックにおける変換係数の数を表す)。すなわち、N次元の単位ボリュームごとに容認される再構成ベクトルの所与の平均数については、入力ベクトルと最も近い再構成ベクトルの間の平均歪みが縮小される。従属スカラー量子化の手法は、(a)異なる再構成レベルを用いて2つのスカラー量子化器を定義し、(b)2つのスカラー量子化器の間を切り換えるためのプロセスを定義することによって実現される。
【0090】
使用される2つのスカラー量子化器はQ0及びQ1によって表され、
図6に示されている。使用可能な再構成レベルの位置は、量子化ステップサイズΔによって一意的に規定される。使用されるスカラー量子化器(Q0又はQ1)は、ビットストリームにおいて明示的に信号伝達されるわけではない。代わりに、現行の変換係数用に使用される量子化器は、符号化又は再構成の順序において現行の変換係数に先行する変換係数のレベルのパリティによって決定される。
【0091】
図7は、本開示のいくつかの実装形態による、2つの異なるスカラー量子化器の間を切り換えるための例示的ステートマシンを示すブロック図である。
【0092】
図7に示されるように、2つのスカラー量子化器(Q0とQ1)の間の切換えは、4つの量子化器状態(QState)を有するステートマシンによって実現される。QStateは4つの異なる値0、1、2、3を採用することができる。QState値は、符号化/再構成の順序において現行の変換係数に先行する変換係数レベルのパリティによって一意的に決定される。変換ブロックの逆量子化の開始において、QStateは0に設定される。変換係数は、走査順(すなわちエントロピー復号と同一の順序)に再構成される。現行の変換係数が再構成された後に、
図7に示されるように状態が更新され、kは変換係数レベルの値を表す。
【0093】
デフォルトのスケーリングマトリクス及びユーザー定義のスケーリングマトリクスを信号伝達することもサポートされている。デフォルトモードのスケーリングマトリクスはすべてフラットであり、要素は、すべてのTBサイズについて16に等しい。IBC及びイントラ符号化モードは、現在同一のスケーリングマトリクスを共有する。したがって、USER_DEFINEDマトリクスの場合には、MatrixType及びMatrixType_DCの数は以下のように更新される。
【0094】
MatrixType:30=2(イントラ&IBC/インター用)×3(Y/Cb/Cr成分)×5(正方形TBのサイズ:色差は2×2~32×32、輝度は4×4~64×64)
【0095】
MatrixType_DC:14=2(イントラ&IBC/インター用の2×Y成分用の1)×3(TBサイズ:16×16、32×32、64×64)+4(イントラ&IBC/インター用の2×Cb/Cr成分用の2)×2(TBサイズ:16×16、32×32)
【0096】
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から、右下の4×4の要素は使用されないので、3つの4×4のサブベクトル-マトリクスへと減少される。
【0097】
変換係数レベルの絶対値に関するシンタックス要素の確率モデルの選択は、ローカル近隣における絶対レベル又は部分的に再構成された絶対レベルの値に依拠する。
【0098】
選択される確率モデルは、ローカル近隣における絶対レベル(又は部分的に再構成された絶対レベル)の合計、及びローカル近隣における0よりも大きい絶対レベルの数(1に等しいsig_coeff_flagsの数によって与えられる)に依拠する。コンテキストモデリング及び2値化処理は、ローカル近隣に関する以下の測定値に依拠する。
・numSig:ローカル近隣における非ゼロレベルの数、
・sumAbs1:ローカル近隣における第1のパスの後に部分的に再構成された絶対レベル(absLevel1)の合計、
・sumAbs:ローカル近隣における再構成された絶対レベルの合計、
・対角位置(d):変換ブロック内の現在の走査位置の水平座標と垂直座標との合計。
【0099】
numSig、sumAbs1、及びdの値に基づいて、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、及びabs_level_gt3_flagを符号化するための確率モデルが選択される。abs_remainder及びdec_abs_levelを2値化処理するためのライスパラメータは、sumAbs及びnumSigの値に基づいて選択される。
【0100】
現行のVVCでは、縮小された32点のMTS(RMTS32とも呼ばれる)は高周波係数をスキップすることに基づくものであり、32点のDST-7/DCT-8の計算の複雑さを軽減するように使用される。また、32点のMTSは、すべてのタイプのゼロ設定(すなわち、DCT2における高周波成分に対するRMTS32及び既存のゼロ設定)を含む係数の符号化の変更を伴う。具体的には、最後の非ゼロ係数位置の符号化の2値化処理は、縮小されたTUサイズに基づいて符号化され、また、最後の非ゼロ係数位置を符号化するためのコンテキストモデルの選択は元のTUサイズによって決定される。加えて、変換係数のsig_coeff_flagを符号化するために60のコンテキストモデルが使用される。コンテキストモデルのインデックスは、以下のように、locSumAbsPass1と呼ばれる、5つの、以前に部分的に再構成された絶対レベルの最大値の合計と、従属量子化の状態QStateとに基づいて選択される。
【0101】
cIdxが0に等しければ、ctxIncは以下のように導出される。
【0102】
ctxInc=12*Max(0,QState-1)+Min((locSumAbsPass1+1)>>1,3)+(d<2?8:(d<5?4:0))
【0103】
そうでなければ(cIdxが0よりも大きければ)、ctxIncは以下のように導出される。
【0104】
ctxInc=36+8*Max(0,QState-1)+Min((locSumAbsPass1+1)>>1,3)+(d<2?4:0)
【0105】
図8は、本開示のいくつかの実装形態による、ビデオ復号器が符号化ブロックに対する残差及び係数のコーディングを実行する例示的プロセスを示す流れ
図800である。
【0106】
VVCでは、(たとえば変換スキップモードの符号化ブロックに関して)係数を符号化するとき、又は(たとえば変換モードの符号化ブロックに関して)残差を符号化するとき、abs_remainder及びdec_abs_levelのシンタックスを信号伝達するために統合ライスパラメータ(RicePara)導出が使用される。唯一の相違点は、ベースレベルbaseLebelが、abs_remainder及びdec_abs_levelを符号化するためにそれぞれ4及び0に設定されることである。ライスパラメータは、以下のように、ローカルテンプレートにおける近隣の5つの変換係数の絶対レベルの合計ばかりでなく、対応するベースレベルにも基づいて決定される。
【0107】
RicePara=RiceParTable[max(min(31,sumAbs-5*baseLevel),0)]
【0108】
言い換えれば、シンタックス要素abs_remainder及びdec_abs_levelに関する2進符号語(2進コードワード)は、近隣の係数のレベル情報に応じて適応的に決定される。この符号語の決定は、各サンプルに対して実行されるので、係数又は残差の符号化向けにこの符号語の適応を扱うための追加論理を必要とする。
【0109】
同様に、変換スキップモードで残差ブロックを符号化するとき、シンタックス要素abs_remainderに関する2進符号語は、近隣の残差サンプルのレベル情報に応じて適応的に決定される。
【0110】
その上に、残差符号化又は変換係数符号化に関連するシンタックス要素を符号化するとき、確率モデルの選択は近隣のレベルのレベル情報に依拠し、追加論理及び追加のコンテキストモデルを必要とする。
【0111】
本開示では、前述の問題に対処して符号化効率を改善するために、複数の残差及び係数の復号プロセスが提示される。
【0112】
いくつかの実施形態では、ビデオコーダは、残差又は変換係数の符号化において、たとえばabs_remainderといったあるシンタックス要素を符号化するために、2進符号語の変数集合を使用する。ビデオコーダは、たとえば変換ブロック/符号化ブロック、スライス、シーケンス、CTU、CUなどの量子化パラメータ(QP)、CUの予測モード(たとえばIBCモード又はイントラもしくはインター)、又はスライスタイプ(たとえばIスライス、Pスライス又はBスライス)といった、現在のブロックのある他の符号化された情報に応じて、2進符号語の特定のセットを選択する。ビデオコーダは、以下に列記される例示的方法のうちの1つを使用して2進符号語の変数集合を導出し得る。
1.abs_remainder用の符号語を決定するために現行のVVCで使用されているものと同一のプロシージャが、異なるライスパラメータを用いて使用される。
2.k次Exp-Golombの2値化処理プロセス(EGk)
3.制限されたk次Exp-Golombの2値化処理
【0113】
上記で言及されたこれらの例示的方法では、ビデオコーダは、残差又は変換係数の符号化のための2進符号語の異なるセットを導出するために、ライスパラメータの異なる値を使用してよい。いくつかの実施形態では、残差サンプルの所与のブロックについて、ライスパラメータ値は、近隣のレベル情報の代わりに、QPcuと表されるCU QPに応じて決定される。テーブル1に示されるように、特定の1つの例が以下で示され、TH1~TH4は、(TH1<TH2<TH3<TH4)を満たす所定の閾値であり、K0~K4は所定のライスパラメータ値である。同一の論理が、実際には違った風に実装され得ることは注目に値する。たとえば、テーブル1に示されるように、現在のCUのQP値から同一のライスパラメータを導出するために、ある式又はルックアップテーブルが使用され得る。言い換えれば、ここのQP値は、量子化レベルを定義することと、ライスパラメータを決定することとの2つの目的に役立つ。
【0114】
【0115】
なお、ライスパラメータ及び対応する閾値の集合は、シンタックス要素に関する符号語の決定に関連したライスパラメータ及び対応する閾値のすべての全集合又は部分集合であり得る。ライスパラメータ及び対応する閾値の集合は、ビデオビットストリームにおける異なるレベルで信号伝達され得る。たとえば、この集合は、シーケンスレベル(たとえばシーケンスパラメータの集合)、ピクチャレベル(たとえばピクチャパラメータの集合)、スライスレベル(たとえばスライスヘッダ)、符号化ツリーユニット(CTU)レベル又は符号化ユニット(CU)レベルで信号伝達され得る。
【0116】
一例では、変換スキップ残差符号化においてabs_remainderシンタックス要素を符号化するための符号語を決定するために使用されるライスパラメータは自体が、スライスヘッダ、PPSヘッダ、及び/又はSPSヘッダにおいて信号伝達される。信号伝達されたライスパラメータは、CUがスキップモード変換として符号化されて前述のスライスヘッダ/PPS/SPSに関連づけられるとき、シンタックスabs_remainderを符号化するための符号語を決定するように使用される。いくつかの実施形態では、ライスパラメータ値がより大きければ、符号語の長さがより均一に分配されることになる。
【0117】
いくつかの実施形態では、ビデオコーダは、変換係数符号化及び/又は変換スキップ残差符号化のシンタックス要素に関する符号語の決定に関連したパラメータ及び対応する閾値の集合を使用する。また、ビデオコーダは、現在のブロックが輝度の残差/係数又は色差の残差/係数を含有しているかどうかに応じて別々の集合を使用することができる。決定された符号語は、たとえば算術符号化といったエントロピー符号化器によってシンタックス要素を符号化するとき、2値化処理符号語(2値化処理コードワード)として使用される。
【0118】
たとえば、現行のVVCにおいて使用されている、変換残差コーディングに関連したabs_remainderに関する符号語が、輝度ブロックと色差ブロックとの両方に使用される。ビデオコーダは、符号化プロセスを改善するために、輝度ブロック及び色差ブロックに対して、それぞれ異なる一定のライスパラメータを使用する(K1及びK2を整数として、たとえば輝度ブロックに対してK1を使用し、色差ブロックに対してK2を使用する)ことができる。
【0119】
いくつかの実施形態では、変換係数符号化及び/又は変換スキップ残差符号化のシンタックス要素用の符号語決定に関連したパラメータ値(たとえばK1~K4)及び/又は閾値(たとえばTH1~TH4)の集合はビットストリームへと信号伝達され、パラメータ値(たとえばK1~K4)及び/又は閾値(たとえばTH1~TH4)の別の集合は輝度ブロック及び色差ブロック向けに信号伝達され得る。決定された符号語は、たとえば算術符号化といったエントロピー符号化器によってシンタックス要素を符号化するとき、2値化処理符号語として使用される。
【0120】
残差/係数復号のための前述の改善されたプロセスを実施するために、ビデオ復号器30は、最初に、ビットストリームから、符号化ユニットに対応する1つ以上のシンタックス要素及びビデオデータを受け取る(810)。次に、ビデオコーダ30は、1つ以上のシンタックス要素に応じてライスパラメータ値を決定する(820)。
【0121】
いくつかの実施形態では、ビデオ復号器30は、符号化ブロックに含まれる情報(たとえば1つ以上のシンタックス要素)に基づいてライスパラメータ値を決定する。たとえば、1つ以上のシンタックス要素は量子化パラメータ(QP)を含み、ビデオコーダはQP(たとえばQPCU)を閾値(たとえばTH1~TH4)の集合と比較し、各閾値は候補ライスパラメータ値(たとえばK0~K4)を有する。ビデオコーダは、量子化パラメータを対象として含む一対の閾値(たとえばQPCUはTH1とTH2との間にある)を決定し、次いで、上記で説明されたように、対の閾値に対応する2つの候補ライスパラメータのうちの1つとしてライスパラメータ値を決定する。いくつかの実施形態では、正の無限大及び負の無限大も暗黙の閾値として考慮に入れられる。
【0122】
いくつかの実施形態では、閾値と、関連する候補ライスパラメータ値との集合は、ビデオ復号器30のメモリに記憶された一定の(たとえば所定の)値である。言い換えれば、ビデオ復号器30は、これらの値を、ビットストリームから受け取るのではなく、符号化/復号の仕様に基づいて決定する。次いで、ビデオ復号器30はテーブル1に記述された論理に基づいてライスパラメータ値を決定する。
【0123】
いくつかの実施形態では、閾値及び関連する候補ライスパラメータ値の集合は、ビットストリームの1つ以上のシンタックス要素で伝えられる変数である。次いで、ビデオ復号器30は、ビットストリームの中の情報からこれらの値を決定する。たとえば、ビデオ復号器30は、ビットストリームからK1~K4の値及びTH1~TH4の値から受け取る。次いで、ビデオ復号器30はテーブル1に記述された論理に基づいてライスパラメータ値を決定する。
【0124】
いくつかの実施形態では、1つ以上のシンタックス要素がライスパラメータ値自体を含む。その結果、ビデオ復号器30は、ビットストリームからライスパラメータの値を直接受け取る。ライスパラメータ値は、1、2、3、又はビデオエンコーダ20によって、たとえばレート-歪み解析に基づいて選択された他の定数値でよい。その結果、ビデオ復号器30は、ライスパラメータの値がビットストリームで直接信号伝達されるので、テーブル1に記述されたプロセスを見合わせる。
【0125】
次いで、ビデオ復号器30は、ビデオデータから、符号化ユニット内の画素に関する第1の符号語(コードワード)及び第2の符号語(コードワード)を復号する(830)。たとえば、ビデオ復号器30は、以前に決定されたライスパラメータ値を使用して生成された所定のマッピング関係に応じて、第1の符号語を画素のパラメータ(たとえばabs_remainder)に変換する(840)。ビデオ復号器30は、第2の符号語をパラメータの記号値(sign value)に変換する(850)。ビデオ復号器30は、パラメータ及び記号値に基づいて、画素の定量化された画素値を決定する(860)。
【0126】
いくつかの実施形態では、ビデオ復号器30は、符号化ユニットの輝度成分及び色差成分を復号するために別々のシンタックス要素(たとえば各ライスパラメータ)を使用する。たとえば、1つ以上のシンタックス要素は、符号化ユニットの第1の成分(たとえば輝度)に関連したシンタックス要素の第1の部分集合、及び符号化ユニットの第2の成分(たとえば色差)に関連したシンタックス要素の第2の部分集合をさらに含む。その結果、ビデオ符号化器は、輝度成分及び色差成分に対して別々のライスパラメータ値及び別々の閾値(たとえば、輝度成分に対してK1~K4及びTH1~TH4の集合、第1の色差成分に対してK1~K4及びTH1~TH4の別の集合、また第2の色差成分に対してK1~K4及びTH1~TH4の別の集合)を使用する。これら別々のライスパラメータ値及び閾値は、前述の処理に基づいて決定され得る(たとえば事前に決定され得、又はビットストリームで直接信号伝達され得、もしくはQP値によって間接的に決定され得る)。
【0127】
いくつかの実施形態では、符号化ユニットの第1の成分(たとえば輝度)に関連したシンタックス要素の第1の部分集合と、符号化ユニットの第2の成分(たとえば色差)に関連した第2の部分集合との間には、少なくとも1つの差異がある。
【0128】
いくつかの実施形態では、1つ以上のシンタックス要素が、シーケンス、ピクチャ、スライス、タイル、CTU、CU、変換ユニット(TU)、及び変換ブロック(TB)からなるグループから選択された1つのレベルで信号伝達される。たとえば、ビデオ復号器30が、ライスパラメータ値及び/又は閾値を特定のレベルにおいて一旦決定すると、そのレベル以下の符号化ユニットはすべて、復号に向けて決定された同一のライスパラメータ値及び/又は閾値を共有する。
【0129】
いくつかの実施形態では、第1の符号語は、(たとえば符号化ユニットが変換モードを使用して符号化されるとき)符号化ユニットにおける画素の変換係数の符号化に関連づけられる。
【0130】
いくつかの実施形態では、符号化ユニットが変換スキップモードの符号化ユニットであるときには、ビデオ復号器30は、ビデオデータから、変換スキップモードの符号化ユニットの中の画素用の符号語の第1のグループを復号する。次に、ビデオ復号器30は、符号語の第1のグループから初期のレベル値を導出して、パラメータ、記号値及び初期のレベル値から、画素の定量化された残差を導出する。
【0131】
いくつかの代替実施形態では、第1の符号語は、(たとえば符号化ユニットが変換スキップモードを使用して符号化されるとき)符号化ユニットにおける画素の残差の符号化に関連づけられる。
【0132】
いくつかの実施形態では、所定のマッピング関係は、(たとえばテーブル1に示されたような)ルックアップテーブルの形態である。
【0133】
いくつかの実施形態では、ビデオ復号器30は、決定されたライスパラメータを使用して2値化処理パラメータを計算するステップと、2値化処理パラメータを使用して、候補残り値の集合のうちの1つのための、符号語のプレフィックス(接頭部)値及び対応する符号語の任意選択のサフィックス(接尾部)値を決定するステップと、候補残り値の集合の最後の1つが決定されるまで、候補残り値の集合の別の1つに対して、符号語の、前記決定するステップを繰り返すステップとを実行することによって、所定のマッピング関係を生成する。
【0134】
いくつかの実施形態では、符号語のプレフィックス値は、短縮化ライス(Truncated Rice)2値化処理プロセスを使用して決定される。
【0135】
いくつかの実施形態では、プレフィックス値が、すべてのビットが1に等しくなる長さ6のビットストリングであるとき、符号語のサフィックス値が決定される。
【0136】
図9は、本開示のいくつかの実装形態による、コンテキスト適応型2進算術符号化(CABAC)エンジンの例を示すブロック図である。
【0137】
コンテキスト適応型2進算術符号化(CABAC)は、たとえばH.264/MPEG-4 AVC、高能率映像符号化(HEVC)及びVVCといった多くのビデオコーディング規格において使用されるエントロピー符号化の形態である。CABACは算術符号化に基づくものであり、少数の変更でビデオコーディング規格の要求に適合する。たとえば、CABACは2進シンボルを符号化し、低複雑性を保ち、あらゆるシンボルのより頻繁に使用されるビットに関する確率モデリングを可能にするものである。確率モデルは、ローカルコンテキストに基づいて適応的に選択され、符号化モードが通常は局所的にうまく相関するので、確率のより優れたモデリングを可能にする。最後に、CABACは、量子化された確率範囲及び確率状態を使用することにより、乗算なしの範囲分割を使用する。
【0138】
CABACは、種々のコンテキストに対して複数の確率モデルを有する。CABACは、最初に、すべての非2進シンボルを2進に変換する。次いで、符号化器は、各ビン(「ビット」とも称される)について、使用するべき確率モデルを選択し、次いで近くの要素からの情報を使用して確率推定を最適化する。データを圧縮するために、最後に算術符号化が適用される。
【0139】
コンテキストモデリングは、符号化シンボルの条件付き確率の推定をもたらす。適切なコンテキストモデルを利用すると、符号化のために現在のシンボルの近隣の既に符号化されているシンボルに応じて別々の確率モデルの間を切り換えることにより、所与のシンボル間冗長性が利用され得る。データシンボルを符号化するステップは以下のステージを包含している。
【0140】
2値化処理:CABACは2進算術符号化を使用するものであり、符号化されるのは2値判定(1又は0)のみであることを意味する。非2値シンボル(たとえば変換係数又は動きベクトル)は、算術符号化に先立って「2値化され」、すなわち2進符号に変換される。このプロセスは、データシンボルを可変長符号に変換する処理に類似であるが、送信する前に2進符号が(算術符号化器によって)さらに符号化される。ステージは、2値化されたシンボルの各ビン(すなわち「ビット」)に対して繰り返される。
【0141】
コンテキストモデルの選択:「コンテキストモデル」は、2値化されたシンボルの1つ以上のビンに関する確率モデルである。このモデルは、最近符号化されたデータシンボルの統計に依拠して、使用可能なモデルから選択されてよい。コンテキストモデルは、各ビンが「1」である確率又は「0」である確率を記憶する。
【0142】
算術符号化:算術符号化器は選択された確率モデルに応じて各ビンを符号化する。各ビンにつき、(「0」及び「1」に対応する)まさに2つのサブ範囲があることに留意されたい。
【0143】
確率の更新:選択されたコンテキストモデルは、実際の符号化された値に基づいて更新される(たとえばビン値が「1」であれば、「1」の度数カウントが増加される)。
【0144】
それぞれの非2進シンタックス要素の値を一連のビンへと分解することにより、CABACにおける各ビン値のさらなる処理は、関連する符号化モード決定に依拠して、通常モード又はバイパスモードに選択され得る。バイパスモードを選択されるビンは、均一な分布を仮定されるものであり、結果的に、すべての通常の2進算術符号化(及び復号)プロセスは単にバイパスされる。通常の符号化モードでは、各ビン値は、通常の2進算術符号化エンジンを使用することによって符号化され、関連する確率モデルは、シンタックス要素のタイプ及びシンタックス要素の2値化表現のビン位置すなわちビンインデックス(binIdx)に基づく一定の選択によって決定されるか、又は関連するサイド情報(たとえばCU/PU/TUの空間的近隣、成分、深度もしくはサイズ、又はTUの内部の位置)に依拠して、2つ以上の確率モデルから適応的に選択される。確率モデルの選択はコンテキストモデリングと称される。重要な設計決定として、後者は、一般的には、最も頻繁に観察されたビンにのみ適用され、通常はそれほど頻繁に観測されないその他のビンは、接合を使用して、一般的にはゼロ次確率モデルを使用して処理される。このようにして、CABACは、サブシンボルレベルでの選択的な適応確率モデリングを可能にし、よって、かなり低減された全体的なモデリングコスト又は学習コストでシンボル間冗長性を利用するための効率的な手段をもたらす。一定の選択と適応的な選択との両方について、原理的に、任意の2つの連続した通常の符号化されたビンの間で、ある確率モデルから別の確率モデルへの切換えが起こり得ることに留意されたい。一般に、CABACでは、コンテキストモデルの設計は、不必要なモデリングコストのオーバヘッドを防止することと、かなりの程度まで統計依存性を利用することとの、矛盾する目標の間で、優れた妥協点を見いだすという目標を反映する。
【0145】
CABACにおける確率モデルのパラメータは適応性があり、これは、ビンのソースの統計的変動に対するモデル確率の適応が、符号化器と復号器との両方で、ビンごとに、後方適応式に同期して実行されることを意味し、このプロセスは確率推定と呼ばれる。そのために、CABACにおける各確率モデルは126の別々の状態のうちの1つを採用することができ、関連するモデル確率値pは[0:01875;0:98125]の範囲に及ぶ。各確率モデルの2つのパラメータは、コンテキストメモリの中に7ビットのエントリとして記憶され、6ビットが、最低確率のシンボル(LPS)のモデル確率pLPSを表す63の確率状態の各々用であり、1ビットが、最高確率のシンボル(MPS)の値nMPS用である。
【0146】
1つ又は複数の例では、記述された機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組合せで実現され得る。この機能は、ソフトウェアで実現される場合には、1つ以上の命令又は符号(コード)としてコンピュータ読み取り可能な媒体に記憶されるか又は伝送されてよく、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記録媒体などの有形の媒体に対応するコンピュータ読み取り可能な記録媒体、又は、たとえば通信プロトコルによる、ある位置から別の位置へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信メディアを含み得る。このように、コンピュータ読み取り可能な媒体は、一般に(1)非一時的な有形のコンピュータ読み取り可能な記録媒体、又は(2)信号もしくは搬送波などの通信媒体に相当し得るものである。データ記録媒体は、1つ以上のコンピュータ又は1つ以上のプロセッサによって、本出願に記述された実施形態を実現するための命令、符号及び/又はデータ構造を取り出すためにアクセスされ得る、任意の利用可能な媒体でよい。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0147】
本明細書の実施形態の記述において使用される専門用語は、特定の実施形態のみを記述するためのものであり、特許請求の範囲を制限するようには意図されていない。実施形態及び添付の特許請求の範囲の記述で用いられるように、単数形「1つの(a)」、「1つの(an)」、及び「その(the)」は、文脈がはっきりと別様に示さなければ、複数形も含むように意図されている。本明細書で使用されるような「及び/又は」という用語は、関連する列挙された項目のうちの1つ又は複数の、ありとあらゆる可能な組合せを指し、かつ包含することも理解されよう。「備える」及び/又は「備えている」という用語は、本明細書で使用されたとき、明示された特徴、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、要素、構成要素、及び/又はこれらのグループの存在もしくは追加を排除するものではないがさらに理解されよう。
【0148】
様々な要素を説明するために、本明細書では第1、第2などの用語が用いられることがあるが、これらの要素は、これらの用語によって限定されるべきでないことも理解されよう。これらの用語は、単に1つの要素を別のものと区別するのに用いられる。たとえば、実施形態の範囲から逸脱することなく、第1の電極が第2の電極と称され得て、同様に、第2の電極が第1の電極と称され得る。第1の電極と第2の電極は、どちらも電極であるが同一の電極ではない。
【0149】
本出願の記述は解説及び説明のために提示されており、網羅的であること又は開示された形態の発明に限定されることは意図されていない。多くの修正形態、変形形態、及び代替の実施形態が、先の記述及び関連する図面において提示された教示内容の利益を有する当業者には明らかなはずである。実施形態は、本発明の原理や実際の用途について最も良く説明するため、他の当業者が様々な実施形態に関して本発明を理解することを可能にするため、また、基本原理と、企図された特定の使用法に適するものとしての様々な修正形態を伴う様々な実施形態とを最も良く利用するために、選択して記述されたものである。したがって、特許請求の範囲は、開示された実施形態の特定の実施例及びその修正形態に限定されず、添付の特許請求の範囲の範囲内に含まれるように他の実施形態が意図されていることを理解されたい。