(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-16
(45)【発行日】2024-01-24
(54)【発明の名称】CABACのニューラルネットワーク実装に基づくビデオの符号化及び復号のための方法及び機器
(51)【国際特許分類】
H04N 19/91 20140101AFI20240117BHJP
H04N 19/11 20140101ALI20240117BHJP
H04N 19/13 20140101ALI20240117BHJP
H04N 19/176 20140101ALI20240117BHJP
【FI】
H04N19/91
H04N19/11
H04N19/13
H04N19/176
(21)【出願番号】P 2020550073
(86)(22)【出願日】2019-04-24
(86)【国際出願番号】 US2019028859
(87)【国際公開番号】W WO2019209913
(87)【国際公開日】2019-10-31
【審査請求日】2022-04-13
(32)【優先日】2018-04-27
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】518338149
【氏名又は名称】インターデジタル ヴイシー ホールディングス, インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100108213
【氏名又は名称】阿部 豊隆
(72)【発明者】
【氏名】ボルデ,フィリップ
(72)【発明者】
【氏名】ギャルピン,フランク
(72)【発明者】
【氏名】ラケイプ,ファビアン
(72)【発明者】
【氏名】ナセル,カラム
【審査官】田中 純一
(56)【参考文献】
【文献】特開平07-154607(JP,A)
【文献】特表2007-503784(JP,A)
【文献】米国特許出願公開第2006/0251330(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
H04N 1/41 - 1/419
H04N 1/64
H03M 3/00 - 9/00
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ビデオのピクチャ内の現在のブロックに関連するシンタックス要素のビンにアクセスすること(610)、
前記シンタックス要素の前記ビンのコンテキストを決定すること(630、650)であって、前記コンテキストは前記シンタックス要素に関連する、決定すること(630、650)、及び
前記決定したコンテキストに基づいて前記シンタックス要素の前記ビンをエントロピ符号化すること(640)
を含む、ビデオを符号化する方法であって、
シンタックス要素のビンに前記アクセスすること(610)は、
前記シンタックス要素の前に符号化されたデータに対してニューラルネットワークを適用することによって前記シンタックス要素の予測を前記シンタックス要素について決定すること(612)であって、前記シンタックス要素の前に符号化された前記データは前に符号化されたブロックに対する又は前記現在のブロックに対する空間的及び時間的な情報を含む、決定すること(612)、及び
前記予測と前記シンタックス要素との差を表す値に基づいて前記シンタックス要素のビンを決定すること(614、616)を含む、
ビデオを符号化する方法。
【請求項2】
ビデオのピクチャ内の現在のブロックに関連するシンタックス要素のビンにアクセスするための手段と、
前記シンタックス要素に関連する前記シンタックス要素の前記ビンのコンテキストを決定するための手段と、
前記決定したコンテキストに基づいて前記シンタックス要素の前記ビンをエントロピ符号化するための手段と
を含む、ビデオを符号化するための機器であって、
シンタックス要素のビンにアクセスするための前記手段は、
前記シンタックス要素の前に符号化されたデータに応じて前記シンタックス要素の予測を前記シンタックス要素について決定するためのニューラルネットワークであって、前記シンタックス要素の前に符号化された前記データは前に符号化されたブロックに対する又は前記現在のブロックに対する空間的及び時間的な情報を含む、ニューラルネットワーク、
前記予測と前記シンタックス要素との差を表す値に基づいて前記シンタックス要素のビンを決定するための手段
を含む、ビデオを符号化するための機器。
【請求項3】
符号化ビデオのピクチャ内の現在のブロックに関連するシンタックス要素の符号化済みのビンにアクセスすること(1410)、
前記シンタックス要素に関連する前記シンタックス要素の前記ビンのコンテキストを決定すること(1430、1450)、及び
前記決定したコンテキストに基づいて前記シンタックス要素の前記符号化済みのビンをエントロピ復号すること(1440)を含む、
ビデオを復号する方法であって、
前記エントロピ復号することは、
前記シンタックス要素の前に復号されたデータに対してニューラルネットワークを適用することによって前記シンタックス要素の予測を前記シンタックス要素について決定することであって、前記シンタックス要素の前に復号された前記データは前に復号されたブロックに対する又は前記現在のブロックに対する空間的及び時間的な情報を含む、決定すること、
前記シンタックス要素の
決定済みの予測及び前記シンタックス要素の
復号済みのビンに基づいて前記シンタックス要素を決定することであって、前記シンタックス要素の前記復号済みのビンは前記予測と前記シンタックス要素との差を表す値である、決定することを含む、
ビデオを復号する方法。
【請求項4】
符号化ビデオのピクチャ内の現在のブロックに関連するシンタックス要素の符号化済みのビンにアクセスするための手段と、
前記シンタックス要素に関連する前記シンタックス要素の前記ビンのコンテキストを決定するための手段と、
前記決定したコンテキストに基づいてシンタックス要素の前記符号化済みのビンをエントロピ復号するための手段と
を含む、ビデオを復号するための機器であって、
前記エントロピ復号手段は、
前記シンタックス要素の前に復号されたデータに応じて前記シンタックス要素の予測を前記シンタックス要素について決定するためのニューラルネットワークであって、前記シンタックス要素の前に復号された前記データは前に復号されたブロックに対する又は前記現在のブロックに対する空間的及び時間的な情報を含む、ニューラルネットワーク、
前記シンタックス要素の
決定済みの予測及び前記シンタックス要素の
復号済みのビンに応じて前記シンタックス要素を決定するための手段であって、前記シンタックス要素の前記復号済みのビンは前記予測と前記シンタックス要素との差を表す値である、決定するための手段を含む、
ビデオを復号するための機器。
【請求項5】
前記シンタックス要素がフラグであり、前記予測と前記シンタックス要素との前記差を表す前記値が前記予測と前記フラグとの間のXOR値である、
請求項1若しくは3に記載の方法。
【請求項6】
前記シンタックス要素が整数値であり、前記予測と前記シンタックス要素との前記差を表す前記値が前記予測と前記シンタックス要素の値との差である、
請求項1若しくは3に記載の方法。
【請求項7】
前記ニューラルネットワークから出力される前記シンタックス要素の前記予測が、シンタックス要素のあり得る値それぞれの確率を与えるベクトルであり、前記予測と前記シンタックス要素との前記差を表す前記値は、ハフマンコード化を用いた関連する確率に基づく前記シンタックス要素の値それぞれのコード語である、
請求項1若しくは3に記載の方法。
【請求項8】
前記シンタックス要素の前に符号化された又は復号された前記データが、
-前記現在のブロックの近隣における前に符号化された又は復号された同じ種類のシンタックス要素の値、
-前記現在のブロックのL字型内の再構築済みのサンプル、
-前記現在のブロックの予測サンプル、
-前記現在のブロックの再構築済みの残差、
-前記現在のブロックがインタでコード化される場合、前記現在のブロックの参照ブロックの前記L字型内のサンプル、
-前記現在のブロックがインタでコード化される場合、前記現在のブロックの動きフィールド、
-前記動きフィールドを用いた動き補償によって生成される前記現在のブロックの前記予測サンプル、
-量子化パラメータ、
-前記現在のブロックのサイズ
のうちの少なくとも1つを含む、
請求項1、3及び5~7の何れか一項に記載の方法。
【請求項9】
複数のニューラルネットワークが使用され、ニューラルネットワークがシンタックス要素の種類について訓練される、
請求項1、3、及び5~8の何れか一項に記載の方法。
【請求項10】
前記エントロピ符号化又は復号が、コンテキスト適応型バイナリ算術コード化CABAC又は復号である、
請求項1、3、及び5~8の何れか一項に記載の方法。
【請求項11】
プロセッサによって実行されるとき、請求項1、3、又は5~10の何れか一項に記載の方法を実行するための、ソフトウェアコード命令を含むコンピュータプログラム。
【請求項12】
前記シンタックス要素がフラグであり、前記予測と前記シンタックス要素との前記差を表す前記値が前記予測と前記フラグとの間のXOR値である、請求項2若しくは4に記載の機器。
【請求項13】
前記シンタックス要素が整数値であり、前記予測と前記シンタックス要素との前記差を表す前記値が前記予測と前記シンタックス要素の値との差である、請求項2若しくは4に記載の機器。
【請求項14】
前記ニューラルネットワークから出力される前記シンタックス要素の前記予測が、シンタックス要素のあり得る値それぞれの確率を与えるベクトルであり、前記予測と前記シンタックス要素との前記差を表す前記値は、ハフマンコード化を用いた関連する確率に基づく前記シンタックス要素の値それぞれのコード語である、請求項2若しくは4に記載の機器。
【請求項15】
前記シンタックス要素の前に符号化された又は復号された前記データが、
-前記現在のブロックの近隣における前に符号化された又は復号された同じ種類のシンタックス要素の値、
-前記現在のブロックのL字型内の再構築済みのサンプル、
-前記現在のブロックの予測サンプル、
-前記現在のブロックの再構築済みの残差、
-前記現在のブロックがインタでコード化される場合、前記現在のブロックの参照ブロックの前記L字型内のサンプル、
-前記現在のブロックがインタでコード化される場合、前記現在のブロックの動きフィールド、
-前記動きフィールドを用いた動き補償によって生成される前記現在のブロックの前記予測サンプル、
-量子化パラメータ、
-前記現在のブロックのサイズ
のうちの少なくとも1つを含む、請求項2,4,及び12~14の何れか一項に記載の機器。
【請求項16】
複数のニューラルネットワークが使用され、ニューラルネットワークが、シンタックス要素の種類について訓練される、請求項2,4,及び12~15の何れか一項に記載の機器。
【請求項17】
前記エントロピ符号化又は復号が、コンテキスト適応型バイナリ算術コード化CABAC又は復号である、請求項2,4,及び12~15の何れか一項に記載の機器。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
[0001] 本実施形態は一般にビデオの符号化及び復号、とりわけCABACのためのニューラルネットワークの少なくとも1つの実装に基づくエントロピ符号化及び復号に関する。
【背景技術】
【0002】
背景
[0002] 本明細書に記載する如何なる背景情報も、以下に記載する本明細書の実施形態に関係し得る当技術分野の様々な側面を読者に紹介することを意図する。この解説は、本開示の様々な態様の更なる理解に役立つ背景情報を読者に与えるのに有用だと考えられる。従って、これらの記述はかかる観点から読まれるべきであることを理解すべきである。
【0003】
[0003] 高い圧縮効率を実現するために、画像及びビデオのコード化方式は通常、予測及び変換を使用してビデオコンテンツ内の空間的及び時間的な冗長性を活用する。概して、フレーム内の又はフレーム間の相関を利用するためにイントラ予測又はインタ予測が使用され、その後、予測誤差又は予測残差として示されることが多い元の画像と予測画像との差が変換され、量子化され、エントロピコード化される。ビデオを再構築するために、その予測、変換、量子化、及びエントロピコード化に対応する逆のプロセスによって圧縮データが復号される。
【0004】
[0004] 高効率ビデオコーディング(HEVC)標準(“ITU-T H.265 Telecommunication standardization sector of ITU (10/2014), series H: audiovisual and multimedia systems, infrastructure of audiovisual services - coding of moving video, High efficiency video coding, Recommendation ITU-T H.265”)では、コンテキスト適応型バイナリ算術コード化(CABAC)がエントロピコード化に使用される。データのコード化は、符号化されるデータに対して様々な長さのシンボルを関連付けることで構成される。効率的なエントロピコード化を得るために、多く見られるシンボルはあまり見られないシンボルに比べて少ないビットを用いて表される。
【0005】
[0005] 本発明は、HEVCにおいて又は数値データのエントロピコード化を伴う他の任意の応用において実装されるCABACを改善するための幾つかの方式を提案する。
【発明の概要】
【0006】
概要
[0006] 本開示の一態様によれば、ビデオのピクチャ内のブロックに関連するシンタックス要素のビンにアクセスすること、シンタックス要素のビンのコンテキストを決定すること、及び決定したコンテキストに基づいてシンタックス要素のビンをエントロピ符号化することを含む、ビデオを符号化する方法が提供される。第1の実施形態によれば、シンタックス要素のビンにアクセスすることは、シンタックス要素の前に符号化されたデータに対してニューラルネットワークモデルを適用することによってシンタックス要素の予測をシンタックス要素について決定すること、及びシンタックス要素の予測の関連性に基づいてシンタックス要素のビンを決定することを含む。第2の実施形態によれば、シンタックス要素のビンのコンテキストを決定することは、ニューラルネットワークモデル及びシンタックス要素の前に符号化されたデータを使用してコンテキストに関連する確率を決定することを含む。特定の特性によれば、前述のシンタックス要素の前に符号化されたデータは、前に符号化されたブロックに対する又は現在のブロックに対する空間的及び時間的な情報を含む。
【0007】
[0007] 本開示の一態様によれば、ビデオを符号化するための機器が提供され、その機器は、ビデオのピクチャ内のブロックに関連するシンタックス要素のビンにアクセスするための手段と、シンタックス要素のビンのコンテキストを決定するための手段と、決定したコンテキストに基づいてシンタックス要素のビンをエントロピ符号化するための手段とを含む。第1の実施形態によれば、シンタックス要素のビンにアクセスするための手段は、シンタックス要素の前に符号化されたデータを使用してシンタックス要素の予測をシンタックス要素について決定し、シンタックス要素の予測の関連性に基づいてシンタックス要素のビンを決定するためのニューラルネットワークを含む。第2の実施形態によれば、シンタックス要素のビンのコンテキストを決定するための手段は、シンタックス要素の前に符号化されたデータを使用してコンテキストに関連する確率を決定するためのニューラルネットワークを含む。
【0008】
[0008] 本開示の一態様によれば、ビデオを符号化するための機器が提供され、その機器はプロセッサ及びプロセッサに結合される少なくとも1つのメモリを含み、プロセッサはビデオのピクチャ内のブロックに関連するシンタックス要素のビンにアクセスし、シンタックス要素のビンのコンテキストを決定し、決定したコンテキストに基づいてシンタックス要素のビンをエントロピ符号化するように構成される。第1の実施形態によれば、プロセッサは、シンタックス要素の前に符号化されたデータを使用してシンタックス要素の予測をシンタックス要素について決定し、シンタックス要素の予測の関連性に基づいてシンタックス要素のビンを決定するためのニューラルネットワークとして構成される。第2の実施形態によれば、プロセッサは、シンタックス要素の前に符号化されたデータを使用してコンテキストに関連する確率を決定するためのニューラルネットワークとして構成される。
【0009】
[0009] 本開示の一態様によれば、ピクチャのブロックを表す符号化データを含むようにビットストリームがフォーマットされ、符号化データはビデオのピクチャ内のブロックに関連するシンタックス要素のビンにアクセスし、シンタックス要素のビンのコンテキストを決定し、決定したコンテキストに基づいてシンタックス要素のビンをエントロピ符号化することによって符号化される。第1の実施形態によれば、シンタックス要素のビンにアクセスすることは、シンタックス要素の前に符号化されたデータに対してニューラルネットワークモデルを適用することによってシンタックス要素の予測をシンタックス要素について決定すること、及びシンタックス要素の予測の関連性に基づいてシンタックス要素のビンを決定することを含む。第2の実施形態によれば、或るシンタックス要素のうちのこのシンタックス要素のビンのコンテキストを決定することは、ニューラルネットワークモデル及びシンタックス要素の前に符号化されたデータを使用してコンテキストに関連する確率を決定することを含む。
【0010】
[0010] 本開示の一態様によれば、ピクチャのブロックを表す符号化データを含むようにフォーマットされたビットストリームを信号が含み、符号化データはビデオのピクチャ内のブロックに関連するシンタックス要素のビンにアクセスし、シンタックス要素のビンのコンテキストを決定し、決定したコンテキストに基づいてシンタックス要素のビンをエントロピ符号化することによって符号化される。第1の実施形態によれば、シンタックス要素のビンにアクセスすることは、シンタックス要素の前に符号化されたデータに対してニューラルネットワークモデルを適用することによってシンタックス要素の予測をシンタックス要素について決定すること、及びシンタックス要素の予測の関連性に基づいてシンタックス要素のビンを決定することを含む。第2の実施形態によれば、或るシンタックス要素のうちのこのシンタックス要素のビンのコンテキストを決定することは、ニューラルネットワークモデル及びシンタックス要素の前に符号化されたデータを使用してコンテキストに関連する確率を決定することを含む。
【0011】
[0011] 本開示の一態様によれば、符号化ビデオのピクチャ内のブロックに関連するシンタックス要素の符号化済みのビンにアクセスすること、シンタックス要素のビンのコンテキストを決定すること、及び決定したコンテキストに基づいてシンタックス要素の符号化済みのビンをエントロピ復号することを含む、ビデオを復号する方法が提供される。第1の実施形態によれば、シンタックス要素のビンをエントロピ復号することは、シンタックス要素の前に復号されたデータに対してニューラルネットワークモデルを適用することによってシンタックス要素の予測をシンタックス要素について決定すること、並びにシンタックス要素の予測及びシンタックス要素の復号済みのビンに応じてシンタックス要素を決定することを含む。第2の実施形態によれば、シンタックス要素のビンのコンテキストを決定することは、ニューラルネットワークモデル及びシンタックス要素の前に復号されたデータを使用してコンテキストに関連する確率を決定することを含む。
【0012】
[0012] 本開示の一態様によれば、ビデオを復号するための機器が提供され、その機器は、符号化ビデオのピクチャ内のブロックに関連するシンタックス要素の符号化済みのビンにアクセスするための手段と、シンタックス要素のビンのコンテキストを決定するための手段と、決定したコンテキストに基づいてシンタックス要素の符号化済みのビンをエントロピ復号するための手段とを含む。第1の実施形態によれば、シンタックス要素のビンをエントロピ復号するための手段は、シンタックス要素の前に復号されたデータを使用してシンタックス要素の予測をシンタックス要素について決定し、シンタックス要素の予測及びシンタックス要素の復号済みのビンに応じてシンタックス要素を決定するためのニューラルネットワークを含む。第2の実施形態によれば、或るシンタックス要素のうちのこのシンタックス要素のビンのコンテキストを決定するための手段は、シンタックス要素の前に復号されたデータを使用してコンテキストに関連する確率を決定するためのニューラルネットワークを含む。
【0013】
[0013] 本開示の一態様によれば、ビデオを復号するための機器が提供され、その機器はプロセッサ及びプロセッサに結合される少なくとも1つのメモリを含み、プロセッサはシンタックス要素に関連するシンタックス要素の符号化済みのビンにアクセスし、決定したコンテキストに基づいてシンタックス要素の符号化済みのビンをエントロピ復号するように構成される。第1の実施形態によれば、プロセッサは、シンタックス要素の前に復号されたデータを使用してシンタックス要素の予測をシンタックス要素について決定し、シンタックス要素の予測及びシンタックス要素の復号済みのビンに応じてシンタックス要素を決定するためのニューラルネットワークを実装するように構成される。第2の実施形態によれば、プロセッサは、シンタックス要素の前に復号されたデータを使用してコンテキストに関連する確率を決定するためのニューラルネットワークを実装するように構成される。
【0014】
[0014] 本開示の一態様によれば、第1の実施形態又は第2の実施形態の何れかに従い、ビデオのピクチャ内のブロックに関連するシンタックス要素のビンにアクセスし、シンタックス要素のビンのコンテキストを決定し、決定したコンテキストに基づいてシンタックス要素のビンをエントロピ符号化するためのプログラムコード命令を含むコンピュータ可読プログラム製品が提供される。
【0015】
[0015] 本開示の一態様によれば、第1の実施形態又は第2の実施形態の何れかに従い、符号化ビデオのピクチャ内のブロックに関連するシンタックス要素の符号化済みのビンにアクセスし、シンタックス要素のビンのコンテキストを決定し、決定したコンテキストに基づいてシンタックス要素の符号化済みのビンをエントロピ復号するためのプログラムコード命令を含むコンピュータ可読プログラム製品が提供される。
【0016】
[0016] 本開示の一態様によれば、第1の実施形態又は第2の実施形態の何れかに従い、ビデオのピクチャ内のブロックに関連するシンタックス要素のビンにアクセスし、シンタックス要素のビンのコンテキストを決定し、決定したコンテキストに基づいてシンタックス要素のビンをエントロピ符号化するためのプログラムコード命令を含む、ソフトウェアプログラムを保持するコンピュータ可読記憶媒体が提供される。
【0017】
[0017] 本開示の一態様によれば、第1の実施形態又は第2の実施形態の何れかに従い、シンタックス要素に関連するシンタックス要素の符号化済みのビンにアクセスし、決定したコンテキストに基づいてシンタックス要素の符号化済みのビンをエントロピ復号するためのプログラムコード命令を含む、ソフトウェアプログラムを保持するコンピュータ可読記憶媒体が提供される。
【0018】
[0018] 上記では、本内容の実施形態の一部の側面の基本的な理解を与えるために本内容の単純化した要約を示した。この要約は本内容の網羅的な概要ではない。この要約は実施形態の主要な/重大な要素を明らかにすることも、本内容の範囲を詳細に概説することも意図しない。この要約の唯一の目的は、後で示すより詳細な説明への導入部として本内容の一部の概念を単純化した形で提示することである。
【0019】
[0019] 添付図面を参照して進める例示的実施形態についての以下の詳細な説明から本開示の更なる特徴及び利点を明らかにする。
【0020】
図面の簡単な説明
[0020] 本開示は、以下で簡単に説明する下記の例示的な図面に従ってより良く理解することができる。
【図面の簡単な説明】
【0021】
【
図1】[0020]本開示の実施形態の何れか1つによる例示的なビデオエンコーダの単純化したブロック図を示す。
【
図2】[0020]従来技術によるコンテキストベースのエントロピコード化の例示的方法の流れ図を示す。
【
図3】[0020]従来技術によるシンタックス要素の非限定的な特定例に関する例示的なコンテキストモデリングを示す。
【
図4】[0020]従来技術による例示的なCABACエンコーダの単純化したブロック図を示す。
【
図5】[0020]本開示の第1の実施形態による例示的なCABACエンコーダの単純化したブロック図を示す。
【
図6】[0020]本開示の第1の実施形態によるコンテキストベースのエントロピコード化の例示的方法の流れ図を示す。
【
図7】[0020]本開示の実施形態の何れか1つによる、NNへのあり得るデータ入力を示す。
【
図8】[0020]本開示の実施形態の何れか1つに関する、多成分入力を有するNNを示す。
【
図9】[0020]本開示の第2の実施形態による例示的なCABACエンコーダの単純化したブロック図を示す。
【
図10】[0020]本開示の第2の実施形態によるコンテキストベースのエントロピコード化の例示的方法の流れ図を示す。
【
図11】[0020]本開示の第2の実施形態による、CABACエンコーダ内の1つのビンを伴うNNの例示的訓練の単純化したブロック図を示す。
【
図12】[0020]本開示の第2の実施形態による、CABACエンコーダ内の1つのビンを伴うNNの例示的訓練の単純化したブロック図を示す。
【
図13】[0020]本開示の実施形態の何れか1つによる例示的なビデオデコーダの単純化したブロック図を示す。
【
図14】[0020]本開示の第1の実施形態又は第2の実施形態による、コンテキストベースのエントロピ復号の例示的方法の流れ図を示す。
【
図15】[0020]本開示の態様を実装し、実行することができる計算環境のブロック図を示す。
【発明を実施するための形態】
【0022】
実施形態の詳細な解説
[0021] 図示の要素は様々な形態のハードウェア、ソフトウェア、又はその組み合わせによって実装できることを理解すべきである。好ましくはこれらの要素は、プロセッサ、メモリ、及び入出力インタフェースを含み得る1つ又は複数の適切にプログラムされた汎用装置上でハードウェアとソフトウェアとの組み合わせによって実装される。本明細書では「結合」という語句は直接接続されること、又は1つ若しくは複数の中間コンポーネントを介して間接的に接続されることを意味するものと定義する。かかる中間コンポーネントは、ハードウェアによるコンポーネント及びソフトウェアによるコンポーネントの両方を含み得る。
【0023】
[0022] この説明は本開示の原理を示す。従って本明細書で明示的に説明され又は図示されていなくても、本開示の原理を実施し本開示の範囲に含まれる様々な構成を当業者なら考案できることが理解されよう。
【0024】
[0023] 本明細書で挙げる全ての例及び条件付き言語は、当技術分野を促進するために発明者がもたらす本開示の原理及び概念を読者が理解するのを助けるための教示を目的とするものであり、具体的に挙げるかかる例及び条件に限定されないものと解釈されるべきである。
【0025】
[0024] 更に、本開示の原理、態様、及び実施形態、並びにその具体例を挙げる本明細書の全ての表現は、その構造上の等価物及び機能上の等価物の両方を包含することを意図する。加えて、かかる等価物は現在知られている等価物並びに将来開発される等価物、即ち構造に関係なく同じ機能を実行する開発される任意の要素の両方を含むことを意図する。
【0026】
[0025] 従って、例えば本明細書に示すブロック図は本開示の原理を具体化する例示的回路の概念図を表すことを当業者なら理解されよう。同様に、任意の流れ図、工程図、状態遷移図、疑似コード等は、コンピュータ可読媒体内で実質的に表すことができ、そのためコンピュータ又はプロセッサによって、かかるコンピュータ又はプロセッサが明示的に示されていようがいまいが実行される様々なプロセスを表すことが理解されよう。
【0027】
[0026] 図示の様々な要素の機能は、専用ハードウェア並びに適切なソフトウェアに関連してソフトウェアを実行可能なハードウェアを使用することによって与えられ得る。プロセッサによって与えられるとき、それらの機能は単一の専用プロセッサによって、単一の共用プロセッサによって、又はその一部が共用され得る複数の個別のプロセッサによって与えられ得る。更に、「プロセッサ」又は「コントローラ」という用語を明示的に使用することはソフトウェアを実行可能なハードウェアに排他的に言及するものだと解釈すべきではなく、デジタル信号プロセッサ(DSP)ハードウェア、ソフトウェアを記憶するための読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、及び不揮発性記憶域を制限なしに暗に含み得る。
【0028】
[0027] 他の従来の及び/又は特注のハードウェアも含まれ得る。同様に、図示の何れのスイッチも概念上のものに過ぎない。それらの機能はプログラムロジックの動作によって、専用ロジックによって、プログラム制御及び専用ロジックの相互作用によって、更には手動で実行することができ、文脈からより明確に理解されるように特定の技法が実装者によって選択可能である。
【0029】
[0028] 本明細書の特許請求の範囲では、指定の機能を実行するための手段として表す如何なる要素も、例えばa)その機能を行う回路素子の組み合わせ、又はb)その機能を行うためのソフトウェアを実行するための適切な回路と組み合わせられる任意の形式の、従ってファームウェア、マイクロコード等を含むソフトウェアを含む、その機能を実行する任意のやり方を包含することを意図する。かかる特許請求の範囲によって定める本開示は、列挙する様々な手段によって与えられる機能が、特許請求の範囲が必要とするやり方で組み合わせられ、まとめられるという事実にある。従って、それらの機能を提供可能な如何なる手段も本明細書に示す手段と等価だと見なす。
【0030】
[0029] 典型的な符号化及び/又は復号装置に見られる他の多くの要素を明瞭にするために排除する一方、本開示を明確に理解することに関連する要素を例示するために図面及び説明を単純化していることを理解すべきである。
【0031】
[0030] 本明細書では様々な要素を説明するために第1の及び第2のという用語を使用する場合があるが、それらの要素はそれらの用語によって限定されるべきではないことが理解されよう。これらの用語は或る要素を別の要素と区別するために使用するに過ぎない。上記では様々な方法を記載し、それらの方法のそれぞれは記載した方法を実現するための1つ又は複数のステップ又はアクションを含む。方法が適切に動作するためにステップ又はアクションの特定の順序が必要でない限り、特定のステップ及び/又はアクションの順序及び/又は使用を修正し若しくは組み合わせることができる。
【0032】
[0031] ピクチャとは、モノクロ形式のルマサンプルのアレイ、又はルマサンプルのアレイと4:2:0、4:2:2、及び4:4:4カラー形式のクロマサンプルの対応する2つのアレイとであることを理解すべきである。HEVCで「ブロック」はサンプルアレイ内の特定の領域(例えばルマY)を扱い、「単位」は全ての符号化済みの色成分(ルマY、並びにことによるとクロマCb及びクロマCr)、シンタックス要素、及びブロックに関連する予測データ(例えば動きベクトル)のコロケーテッドブロックを含む。但し「ブロック」という用語は本明細書ではブロック(例えばコード化ブロック(CB)、変換ブロック(TB)、コード化グループ(CG)等)又は単位(例えばCU)を指すためにより広く使用する。
【0033】
[0032] ピクチャ又はピクセル若しくは変換係数のブロックは、2次元のアレイ又は行列であることを理解すべきである。水平方向即ちx方向(又は軸)は幅を表し、垂直方向即ちy方向(又は軸)は高さを表す。インデックスは0から始まる。x方向は列を表し、y方向は行を表す。最大のxインデックスは幅-1である。最大のyインデックスは高さ-1である。
【0034】
[0033] 以下の節では「再構築する」という語と「復号する」という語を区別なく使用する場合がある。必ずではないが通常、「再構築する」はエンコーダ側で使用されるのに対し「復号する」はデコーダ側で使用される。また「コード化する」という語と「符号化する」という語を区別なく使用する場合がある。更に「画像」、「ピクチャ」、及び「フレーム」という語を区別なく使用する場合がある。更に「コード化」、「ソースコード化」、及び「圧縮」という語を区別なく使用する場合がある。
【0035】
[0034] 本開示は、ニューラルネットワークを使用することによってシンタックス要素のエントロピコード化及び復号の効率を改善する、ビデオ又は画像を符号化及び復号するための技法(ソースコード化及び復号としても知られている)を対象とする。具体的には、CABACはシンボル(又はシンタックス要素)を符号化し、任意のシンボルのより頻繁に使用されるビットに関する確率モデリングを維持する。確率モデルは局所コンテキストに基づいて適応的に選択することができ、コード化モードは通常局所的によく相関しているので、より優れた確率のモデリングを可能にする。従ってCABACの性能は、シンボルの頻度及び局所コンテキストに基づくシンボルに関する確率のモデリングという2つの特徴に依存する。エントロピコード化の効率を高めるCABACのニューラルネットワーク実装の2つの代替的実施形態を記載する。第1の実施形態では、コード化するためのシンボルの分布をニューラルネットワークが改善する。第2の実施形態では、コード化するための分布のモデリングがニューラルネットワークによって改善される。ビデオを符号化及び復号することに関して説明するが、本原理はエントロピコード化及び/又は復号を使用して静止画像を符号化及び/又は復号することに適合する。
【0036】
符号化
[0035]
図1は、本開示の一実施形態による例示的なビデオエンコーダ100の単純化したブロック図を示す。エンコーダ100は、通信システム内の送信機又はヘッドエンドの中に含まれ得る。1つ又は複数のピクチャを有するビデオシーケンスを符号化するために、ピクチャを構成可能なサイズを有する正方形のCTUに区分化することができる。1組の連続したCTUをスライスにまとめることができる。CTUは、CUへのQTBT区分化の根である。この例示的なエンコーダ100では、以下で説明するようにピクチャがエンコーダモジュールによって符号化される。各ブロックは、イントラモード又はインタモードを使用して符号化される。ブロックがイントラモードで符号化される場合、エンコーダ100はイントラ予測を行う(モジュール160)。インタモードでは、動き推定(モジュール175)及び動き補償(モジュール170)が行われる。エンコーダは、ブロックを符号化するためにイントラモード又はインタモードのどちらを使用するのかを決定し(モジュール105)、イントラ/インタの決定を予測モードフラグによって示す。元の画像ブロックから予測済みのサンプルブロック(予測因子としても知られている)を減算すること(モジュール110)によって残差が計算される。
【0037】
[0036] 一例として、イントラモードでのブロックは再構築済みの隣接サンプルから予測される。インタ予測は、動き推定を行い(モジュール175)、参照ピクチャバッファ180内に記憶される参照ブロックを(モジュール170内で)動き補償することによって行われる。動き推定モジュール175の目的は、典型的にはレート-歪みコスト(RDコスト)が十分低いとき又は最小限に達したとき終了する反復探索を使用し得る最も優れた動きベクトルを決定することなので、動き推定モジュール175は動き補償を含み得る。
【0038】
[0037] 残差を変換し(モジュール125)、量子化する(モジュール130)。変換モジュール125は、ピクセル又は時間領域から変換又は周波数領域に画像を変換することができる。変換は、例えば余弦変換、正弦変換、ウェーブレット変換等とすることができる。量子化は、例えばレート歪み基準に従って行うことができる。量子化済みの変換係数、並びに動きベクトル及び他のシンタックス要素をエントロピコード化して(モジュール145)ビットストリームを出力する。エントロピコード化は、例えばコンテキスト適応型バイナリ算術コード化(CABAC)、コンテキスト適応型可変長コード化(CAVLC)、ハフマン、算術、指数ゴロム等であり得る。エンコーダは変換を飛ばして、非変換残差信号に量子化を直接適用することもできる。エンコーダは変換及び量子化の両方をバイパスする、即ち変換プロセス又は量子化プロセスを適用することなしに残差を直接コード化することもできる。直接のPCMコード化では予測を適用せず、ビットストリーム内にブロックサンプルが直接コード化される。
【0039】
[0038] エンコーダは復号ループを含み、従って符号化ブロックを復号して更なる予測のための参照を提供する。量子化済みの変換係数を逆量子化し(モジュール140)、逆変換して(モジュール150)残差を復号する。復号した残差と予測したサンプルブロックとを組み合わせること(モジュール155)によって画像ブロックを再構築する。例えばデブロッキング/サンプル適応オフセット(SAO)フィルタリングを実行してコード化アーティファクトを減らすために、再構築したピクチャにインループフィルタ(165)を適用することができる。フィルタ済みの画像を参照ピクチャバッファ180内に記憶する。
【0040】
[0039] ビデオエンコーダ100のモジュールはソフトウェアによって実装され、プロセッサによって実行されてもよく、又は圧縮の当業者によってよく知られている回路によって実装することができる。具体的には、ビデオエンコーダ100は集積回路(IC)として実装することができる。
【0041】
[0040] 本開示に記載する差異、とりわけ以下の段落及び図面の中でより詳細に説明するエントロピコード化モジュール145の差異を除き、ビデオエンコーダ100のモジュールは他のビデオエンコーダ(例えばHEVCエンコーダ)内にもあり得る。エントロピ符号化以外の機能(例えば145以外のモジュール)に関してはビデオエンコーダ100はHEVCビデオデコーダと同様とすることができ、本明細書ではその機能を詳細には説明しない。
【0042】
エントロピ符号化
[0041] HEVC標準及びAVC標準では、CABACを使用してシンタックス要素をエントロピコード化及び復号することができる。
【0043】
[0042] CABACは算術コード化に基づき、HEVC標準及びAVC標準によって採用されている。CABACは異なるコンテキストに対して複数の確率モデルを使用することができる。CABACは全ての非2値シンボルを2値にまず変換する。具体的には、シンタックス要素を2値化する(即ちそれぞれが「0」又は「1」に等しいビンと呼ばれる一連の2値シンボルとして表す)。次いでビンごとに、エンコーダはどの確率モデルを使用するのかを選択し(ビンが「0」又は「1」である確率を明らかにする)、近隣の要素(又はコンテキスト)からの情報を利用して確率推定を最適化することができる。
【0044】
[0043]
図2は、従来技術によるコンテキストベースのエントロピコード化(例えばCABAC)の例示的方法の流れ
図200を示す。ステップ210で、まだ2進値(バイナリフラグ等)ではない場合、シンタックス要素(SE)201をまず2値化する。次いでループ220内で、ビンに対して以下を行う:
a.ステップ230で、コード化するためのシンタックス要素又はビンのコンテキスト情報に基づいてコンテキストCTXを選択する。コンテキストCTXは、ビンが「1」又は「0」であるコンテキスト確率を記憶するコンテキストモデルに関連する。コンテキスト確率は、コンテキスト値CTXを既知としてビンが「b」の値を取る推定条件付き確率、即ちP(b/CTX)に対応する。選択は、符号化するための現在のシンボル(シンタックス要素)の近隣にある既にコード化されたシンボル(シンタックス要素)、CUのサイズ若しくは形状、又はスライスの種類等のコンテキスト情報に基づく。
b.ステップ240で、コンテキスト確率P(b/CTX)に従ってエントロピエンコーダ(例えば算術エンコーダ)を使用してビンを符号化する。
c.ステップ250で、ビンがコード化されたらコンテキストモデルを更新し、即ちコンテキスト確率P(0/CTX)及びP(1/CTX)を更新する。例えば更新は、ビン値(「0」又は「1」)の発生回数のカウントの更新であり得る。
d.ステップ225で、符号化するための更なるビンがあるかどうかを確認する。ある場合は(例えばシンタックス要素の次のビンに移ることによって)ステップ220に戻り、さもなければステップ260でこのプロセスを終了する。
【0045】
[0044] 一般性を失うことなく、ステップ240及び250は順序を変えること又は並列に実行することができる。
【0046】
[0045] 一例として、正の整数値に対応し、幾つかのコンテキストモデルがシンタックス要素に関連する、シンタックス要素SEを検討されたい。例えば
図3に示すように、正の整数値は予測を伴う動きベクトル差(MVD)に対応する。3つのコンテキストモデルのうちのどのモデルを使用するのかを選ぶためにe=|MVD
A|+|MVD
B|の値を使用し、MVD
A及びMVD
Bは、
図3に示すように現在のコード化ブロックCの左側のブロックA及び上側のブロックBのそれぞれに関するMVDの前にコード化された値である。以下のステップを適用することができる:
・2値化(例えば210):正の整数値を以下のように単項コード化によってビン列に変換する。
-SE=0→ビン列=「0」
-SE=1→ビン列=「10」
-SE=2→ビン列=「110」
-...
・コンテキストモデリング(例えば230):ビン列の異なるビンに対して以下のコンテキストモデルを規定する。
〇ビン0→前にコード化されたSEの値、SE
PREVに応じた3つのコンテキスト0、1、2
■(0<=SE
PREV<3)が成立する場合→モデル0
■(3<=SE
PREV<33)が成立する場合→モデル1
■(33<=SE
PREV)が成立する場合→モデル2
〇他のビン→モデル3
【0047】
[0046] HEVCのCABACエンコーダ(ステップ250)には2つの主要モード、つまり通常コード化及びバイパスコード化がある。バイパスコード化モードは符号情報に関係するビンについて又はより有意でないビンについて選択することができ、それらのビンは一様に分布していると想定され、それらのビンでは結果として通常のバイナリ算術符号化プロセスがバイパスされる。通常コード化モードでは、通常の算術符号化プロセスを使用することによってビン値が符号化され、関連する確率モデルは如何なるコンテキストモデリングもなしに固定選択によって決定され、又は関係するコンテキストモデルに応じて適応的に選択される。
【0048】
[0047] コンテキストベースのコード化では、データの分布を歪める(skew)ために条件付き確率モデルが使用される。データを圧縮するために算術コード化が最終的に適用される。ビットごとにコンテキスト、従って確率モデルを適切に選択することは圧縮効率の向上を可能にする。コンテキストモデルはインデックス付けし、コンテキストインデックスによって識別することができる。CABAC並びに他のコンテキストベースのエンコーダ及びデコーダは圧縮の当業者によってよく知られており、本明細書では詳細には説明しない。
【0049】
[0048]
図4は、従来技術によるCABACエンコーダを示す。2値化のステップ210は、例えば2値化モジュール410によって実行され得る。コンテキストモデリングのステップ230は、例えば局所コンテキスト420から及び実際のコード化ビン値に基づく更新からコンテキストモデラモジュール430によって実行され得る。かかるデータはメモリ内に記憶されている可能性がある。通常コード化及びバイパスコード化のステップ250は、例えば通常コード化エンジン440及びバイパスコード化エンジン450によって実行され得る。本開示は、全般的なコンテキストベースのエントロピエンコーダ(例えばCABACエンコーダ)に適用され、ニューラルネットワークモデルを使用して要素の予測又は要素(例えばシンタックス要素又はシンタックス要素のビン)のエントロピ圧縮に使用されるコンテキストモデルの予測を決定することに関し、より高い圧縮効率をもたらし得る。具体的には本開示は、シンタックス要素の前に符号化されたデータに対してニューラルネットワークモデルを適用することによってシンタックス要素の予測をシンタックス要素について決定すること、及びシンタックス要素自体ではなくシンタックス要素の予測の関連性(例えば差異)をコード化することを対象とする。以下の段落及び図面の中でより詳細に説明するように、本開示はシンタックス要素の前に符号化されたデータに対してニューラルネットワークモデルを適用することによってシンタックス要素のコンテキストモデル及びコンテキストモデルに関連する確率を決定することを更に対象とする。
【0050】
コード化するための要素の分布の改善
[0049] 本開示の一実施形態によれば、ビデオエンコーダ100は概してシンタックス要素の予測の符号化(及び対応する復号)におけるニューラルネットワークの実装と共に、エントロピコーダ500を含み又は上記のエントロピ符号化の方法600を用いる。以下の段落及び図面の中で修正形態についてより詳細に説明する。
【0051】
[0050]
図5は、本原理の第1の実施形態によるCABACエンコーダを示す。入力データ520から、ニューラルネットワーク(NN)530を用いて符号化するためのシンタックス要素を予測する。シンタックス要素自体ではなく、シンタックス要素に関するシンタックス要素の予測の関連性をコード化する。シンタックス要素に関しては、関連性は2進値(バイナリフラグ等)又は限られた範囲を有する整数等の非2進値であり、又はインデックスによって識別されるNの値を取ることができる。バイナライザ410、コンテキストモデラ430、通常コード化エンジン440、又はバイパスコード化エンジン450は修正されず、コード化するための要素だけを前処理(510)し、シンタックス要素ではなく予測の関連性を使用する。
【0052】
[0051] 第1の改変形態によれば、予測の関連性はシンタックス要素とシンタックス要素の予測との間のXORによって得られる。この改変形態は、シンタックス要素がフラグである場合にうまく適合する。
【0053】
[0052] 第2の改変形態によれば、予測の関連性はシンタックス要素とシンタックス要素の予測との差540によって得られる。この改変形態は、シンタックス要素が限られた範囲を有する整数値である場合又はシンタックス要素がインデックスによって識別されるN(Nは正の整数である)の値を取り得る場合にうまく適合する。
【0054】
[0053] 第3の改変形態によれば、予測はシンタックス要素の複数の値に関する確率の順序付きベクトルであり、関連性は確率の順序付きベクトルにおけるインデックスである。この改変形態は、シンタックス要素が限られた範囲を有する整数値である場合、又はシンタックス要素がインデックスによって識別されるN(Nは正の整数である)の値を取り得る場合にうまく適合する。この改変形態では、関連性又はシンタックス要素自体をコード化することができる。
【0055】
[0054] 第4の改変形態によれば、ニューラルネットワークは分類器であり、最後の層の出力はあり得る値それぞれのNの確率を与えるベクトルである。改変形態では、最後の層がソフトマックスである。すると、関連する確率に基づいてシンタックス要素値それぞれのコード語を導出することができる。例えばコード語の長さは、例えばハフマンコード化を用いた確率の関数であり得る。
【0056】
[0055] NN530への入力データ520は、コード化するためのシンタックス要素に適合される。有利にはNNは、前に符号化されたブロック又は現在のブロックに対する空間的及び/又は時間的な情報等の複合データ(complex data)の入力を可能にする。非限定的な例によれば、シンタックス要素の前に符号化されたデータは、
ブロックの近隣(例えば
図7に示す上側のブロック710若しくは左側のブロック720又はL字型750と交差するブロック740)における前に符号化された(又は復号された)同じ種類のシンタックス要素の値、
現在のブロックのL字型750内の再構築済みのサンプル、
現在のブロックの予測サンプル、
現在のブロックの再構築済みの残差、
インタにおける参照ブロックのL字型内のサンプル、
ブロックがインタでコード化される場合、ブロックの動きフィールド、
動きファイルドを用いた動き補償によって生成されるブロックの予測サンプル、
量子化パラメータQP、
ブロックのサイズ及び/又は形状
のうちの少なくとも1つを含み得る。
【0057】
[0056] 例えばエンコーダにおいて、インタモード予測の場合、現在のCUの近隣における、又は前に復号された動きベクトルを含む履歴ベースのバッファを使用する前に復号された動きベクトル、及び時間的コロケート動きベクトルを使用することができる。実際、動きフィールドの特性は連続的である、又は時間と共に繰り返すパターン若しくはテクスチャ(L字型内の再構築済みのサンプル)と相関し得るパターンをもたらす可能性がより高い。ニューラルネットワークはこの相関を学習することができ、そのためニューラルネットワークはこのCUについて現在の動き(又は或る予測因子とのMV差(MVD)、若しくは「mvd_greater_than0」、「mvd_greater_than1」、「abs_mvd」等のMVDに関連する関連シンタックス要素)又は他のインタコード化されたパラメータを効率的に予測することができる。
【0058】
[0057] 例えばエンコーダにおいて、インタモード予測の場合、NNは、典型的には前に復号された変換の種類及び変換のサイズ、前に復号された残差値、並びに近隣内の及び参照ピクチャ内の再構築済みのサンプルから現在の変換パラメータ(例えば複数の変換サイズ-MTS、二次変換-NSST)をどのように予測するのかを学習することができる。
【0059】
[0058] 別の例では、局所照明補償(LIC:Local Illumination Compensation)パラメータ(例えばLICフラグ)を近隣内の再構築済みのサンプル、参照ピクチャ内の再構築済みのサンプル、及び前に導出されたLICパラメータ値等の入力データに基づいてNNによって予測することができ、その理由は照明変動が典型的にはその形状又はテクスチャによってcaraterizeされ得るシーケンス内の同じオブジェクトに結び付く可能性があるからである。
【0060】
[0059] 別の例では、エンコーダは概してレート-歪み最適化(RDO:rate-distorsion optimization)に基づいて双方向予測(例えばgbiインデックスシンタックス要素)の場合の不均一な重みを決定することができる。この選択は2つの予測を構築するために使用される再構築済みのCUの相対精度と相関し得ることが分かる場合があり、NNベースのアーキテクチャによって学習され得る。
【0061】
[0060]
図6は、例示的実施形態によるコンテキストベースのエントロピコード化(例えばCABAC)の例示的方法の流れ
図600を示す。
図6は
図4と類似点を有する。コード化するための要素が別個であることを除き、ステップ620、630、640、650、625、及び660は、ステップ420、430、440、450、425、及び460のそれぞれと同様である。以下で説明するように、ステップ610はステップ410と重要な違いを有する。ステップ610で、ビデオのピクチャ内の現在のブロックに関連するシンタックス要素(SE)の2進値にアクセスする。このステップ610は3つのサブステップ、つまりNNを使用してシンタックス要素を予測すること612、シンタックス要素に対する予測の関連性を決定すること614、及び必要な場合は予測の関連性を2値化すること616を含む。第1の実施形態によれば、コード化するための2進値はシンタックス要素の予測の関連性を表す。従ってステップ612で、シンタックス要素の前に符号化されたデータに対してニューラルネットワークモデルを適用することによってシンタックス要素の予測を得る。次いでステップ614で、シンタックス要素の予測をシンタックス要素と比較し、予測の関連性を決定し、ステップ616でシンタックス要素についてコード化するためのビンを決定するために使用する。
【0062】
[0061] シンタックス要素がフラグである改変形態では、シンタックス要素の予測が2進値である。従って、フラグの予測とフラグとの間のXORは、予測が関連する、即ち正しい場合はコード化するためのビンとして「0」の値をもたらし、予測が失敗する場合はコード化するためのビンとして「1」の値をもたらす。従って、関連する一連の予測がコード化するための一連のゼロ値をもたらし、エントロピコード化を改善する。
【0063】
[0062] シンタックス要素がNの値を取り得る別の改変形態では、ニューラルネットワークが分類器であり、最後の層の出力はあり得る値それぞれのNの確率を与えるベクトルである。かかる改変形態は、シンタックス要素がイントラ予測、
図3に示すような動き予測、残差変換の係数等のコード化モードであることにうまく適合する。典型的には、ニューラルネットワークは例えば3層+ソフトマックスを有する多層パーセプトロン(MLP)等の小さい分類器であり得る。次いで表1に示すように、Nの確率を最も高い確率から低い確率へと並べ直す。インデックス「00」に対応する、最も高い確率に対応する値(値A)がシンタックス要素に等しい場合、インデックス「00」はコード化するためのビンとして「0」、「0」のビン値をもたらす。予測は関連性があり、圧縮が改善される。さもなければ、インデックス「01」に対応する、2番目に高い確率に対応する値(値C)がシンタックス要素に等しい場合、インデックス「01」はコード化するためのビンとして「0」、「1」の値をもたらす。
【0064】
【0065】
[0063] 別の改変形態では、出力される確率を処理する。(1)を証明する最大整数として規定される整数K(K<=N)を検討する:
【0066】
【0067】
[0065] 式中SPは既定の閾値である。
【0068】
[0066] 別の改変形態では、(2)を証明する最大整数として規定される整数K(K<=N)を検討する:
【0069】
[0067] 閾値に勝る確率を有するモードの数であるK=card{k<N,但しp(k)>TP}、式中TPは既定の閾値である。
【0070】
[0068] 符号化するためのシンタックス要素が最初のKのMPMモードの1つである場合、シンタックス要素のインデックスはlog2(K)ビンで符号化される。さもなければ、シンタックス要素は表2の例に示すようにlog2(N-K)ビットで符号化される。
【0071】
[0069] 表2は、K=4の最確モードを2ビットで、及び他の低確モードを4ビットでコード化する一例を示す。
【0072】
【0073】
[0070] コード化するためのビンがNNによって決定されると、
図2の方法で説明したのと同じステップを処理する。ループ620内でコンテキスト要素のビンに対して以下を行う:
a.ステップ630で、コード化するためのシンタックス要素又はビンのコンテキスト情報に基づき、シンタックス要素のビンのコンテキストCTXを決定する。
b.ステップ640で、コンテキスト確率P(b/CTX)に従ってエントロピエンコーダ(例えば算術エンコーダ)を使用してビンを符号化する。
c.ステップ650で、ビンがコード化されたらコード化する次のビンのためにコンテキストモデルを更新し、即ちコンテキストCTXのコード化されたビンに基づいてコンテキスト確率P(b/CTX)を修正する。
【0074】
[0071] 次いで次のビンを処理する。最後に、プロセス600を繰り返すことによって次のシンタックス要素を処理する。
【0075】
[0072] 完全を期すために、
図8は本実施形態で使用するための多成分入力を有するNNを示す。各成分810は様々なサイズのチャネルである。例えば入力チャネルのサイズは、再構築済みのブロックの予測サンプル又は残差等の入力用の1ブロックのサイズに等しい。例えば入力チャネルのサイズは、上側のブロック及び左側のブロックのシンタックス要素の値を入力するための、又は現在のブロックのQP値を入力するための1つの値又は2つの値に等しい。各成分810はNN820の入力である。簡単に言えば入力は、予測するためのシンタックス要素との相関を有するデータである。例えばエンコーダでは、インタスライスの場合、ブロックの分割は基礎を成す動きに、及び動き補償されたブロックから生じる予測に主に依存する。従って、画像間の区分化のためのNNの入力はブロックに関連する動き補償情報から導出され、分割を表すシンタックス要素はそれらの入力に基づいて予測される。有利には、ニューラルネットワークは畳み込み層で構成される。NNの出力は、値の確率の予測ベクトル830である。NN820は他の種類(前の層のニューロンの各クラスタから最大値を取るMaxPool、加算、全結合等)の層を含み得ることに留意されたい。
【0076】
[0073] 特定の実施形態によれば、異なる予測領域に従って複数のNNが実装される。従って、第1のNNはイントラ予測及び関連するシンタックス要素について訓練され、第2のNNはインタ予測及び関連するシンタックス要素について訓練される。更に別の実施形態では、GOP内のピクチャのシーケンス番号に従ってNNが訓練される。更に別の実施形態では、ビデオ又は画像の種類(HDR、映画、スポーツ等)又は伝送の種類(低減されたビットレート、テレビ会議等)に従ってNNが訓練される。従って、1つ又は複数のNNの任意の組み合わせ又は構成が本開示に適合する。エントロピコード化に関する1つ又は複数のNNの訓練はNNを訓練するための通常の枠組みから逸脱しないことを当業者なら理解されよう。NNはシンタックス要素の予測ベクトルをNNの現在のパラメータを使用して提供する。損失関数を使用し、予測ベクトル及びシンタックス要素の値を比較する。例えば、ベクトルを評価するために平均二乗誤差を使用する。その後、この損失を使用してNNの新たなパラメータを最適化プロセスによって導出/調整する。このNNが非常に大きい画像集合に基づいて訓練され、NNのパラメータ(重み)が設定されると、NNはエンコーダによって直接使用することができ又はデコーダに送信することができる。
【0077】
[0074] 従って別の特定の実施形態によれば、NNがオフラインで訓練され、NNの重みがデコーダに伝送され、又はデコーダがn(nは正の整数である)の既知の訓練されたNNを実装し、nのNNのうちの或るNNの指示が例えばSPS、PPS、又はスライスヘッダ内でデコーダに伝送される。
【0078】
[0075] 別の特定の実施形態によれば、NNがエンコーダ及びデコーダの両方において実行中にオンラインで訓練される。
【0079】
コード化するための要素の分布のコンテキストモデリングの改善
[0076] 本開示の別の実施形態によれば、ビデオエンコーダ100は概してシンタックス要素のエントロピコード化(及び対応する復号)におけるコンテキストモデルの確率を決定し更新するためのニューラルネットワークの実装と共に、エントロピコーダ900を含み又は上記のエントロピ符号化の方法1000を用いる。以下の段落及び図面の中で修正形態についてより詳細に説明する。
【0080】
[0077]
図9は、本原理の第2の実施形態によるCABACエンコーダを示す。入力データ910から及びコード化されたビン値から、シンタックス要素を符号化するために使用される1つのコンテキストモデルに関連する確率をニューラルネットワーク(NN)920によって予測する。NN920はコンテキストモデラ930の一部である。バイナライザ410、通常コード化エンジン440、及びバイパスコード化エンジン450を含むCABACエンコーダの他の部分は修正されない。
【0081】
[0078] NN920への入力データ910は、コード化するためのシンタックス要素に適合される。有利にはNNは、前に符号化されたブロック又は現在のブロックに対する空間的及び/又は時間的な情報等の複合データの入力を可能にする。非限定的な例によれば、シンタックス要素の前に符号化されたデータは、
ブロックの近隣(例えば
図7に示す上側のブロック710若しくは左側のブロック720又はL字型750と交差するブロック740)における前に符号化された(又は復号された)同じ種類のシンタックス要素の値。有利には、これらの値は、N1の(異なる)前回コード化された値及び/又は現在のブロックの近隣にあるが(例えば上のCTUの行内で)N1の値よりも後に復号されている可能性がある他のN2の値で満たされた履歴ベースのバッファを使用して管理され得る。
現在のブロックのL字型750内の再構築済みのサンプル、
現在のブロックの予測サンプル、
現在のブロックの再構築済みの残差、
インタにおける参照ブロックのL字型内のサンプル、
ブロックがインタでコード化される場合、ブロックの動きフィールド、
動きファイルドを用いた動き補償によって生成されるブロックの予測サンプル、
量子化パラメータQP、
ブロックのサイズ及び/又は形状
のうちの少なくとも1つを含み得る。
【0082】
[0079] 加えてCABACのコンテキストモデリングプロセスは再帰的であり、従って第2の実施形態の第1の改変形態によれば、NN920への入力データ910は
Sの前に(符号化順序)コード化された同じ種類のシンタックス要素の値
Tの前に(符号化順序)コード化された同じ種類のビン値の値
Kの前に(符号化順序)同じ種類のシンタックス要素の確率pk(k=1,...K)の値
を更に含み得る。
【0083】
[0080] 従来のCABACでは、その値がp
σ=α.p
σ-1によって再帰的に決定される確率の有限状態があり(σ=0...63)、式中
【数2】
が成立する。
【0084】
[0081] 確率の更新は最後にコード化されたビン値で行い、ビン値が優勢(MPS)のビン値又は劣勢(LPS)のビン値である場合はそれぞれσを1ジャンプインクリメントし又はデクリメントする。従って例示的実施形態によれば、確率のエボリューション(evolution)をモデリングするために、K(Kは正の整数値、例えばK=3である)の前の確率、及び/又はT(Tは正の整数値、例えばT=2である)の前のコード化されたビン値、及び/又はS(Sは正の整数値、例えばS=3である)の同じ種類の前のシンタックス要素の値が使用される。
【0085】
[0082] 有利には、NNの出力(確率推定)を更に安定させるために以下を行うことができる:
インクリメント/デクリメントの方向を推定し、このインクリメントによって確率を更新する。
又は(推定確率が1を超えるジャンプである場合)1を超えるジャンプを可能にするが、ジャンプをnジャンプ(例えばn=3)に限定する。
【0086】
[0083] 有利には、NNはシンタックス要素に関連するコンテキストモデル並びにコンテキストに関連する確率を入力データ910に基づいて決定する。
【0087】
[0084] 第2の実施形態の第2の改変形態によれば、NNが再帰型ニューラルネットワーク(RNN)であり、一部の入力(即ちSの前にコード化された同じ種類のシンタックス要素の値、又はTの前にコード化された同じ種類のビン値の値)が無用である。例えばかかるRNNは、エルマンネットワーク、ジョーダンネットワークとすることができ、又は長・短期記憶(LSTM)ユニット(又はブロック)で構成され得る。実際、長期的な時間依存性の学習を必要とする問題を解くために標準のRNNを訓練することは困難であり得る。その理由は損失関数の勾配が時間と共に指数関数的に減衰するからである。基本的なRNNとは逆に、LSTMネットワークは長期間にわたってメモリ内に情報を保持することができる「メモリセル」として振る舞う専用ユニットを使用する。これは情報がメモリに入るとき、出力されるとき、及び忘却されるときを制御する1組のゲートを用いて実装され、LSTMネットワークが長期的な依存性を学習することを可能にする。
【0088】
[0085] それに加えて、再帰型ニューラルネットワークと等価のNNアーキテクチャも使用することができる。その場合はSの前にコード化された同じ種類のシンタックス要素の値、又はTの前にコード化された同じ種類のビン値の値が無用であり、その理由は、それらの値がRNN内で再投入され得るからであり、反復tの出力h(t)が反復t+1において再利用される。第1の実施形態に関して説明したNNの改変形態の何れも本実施形態に適合する。
【0089】
[0086]
図10は、例示的実施形態によるコンテキストベースのエントロピコード化(例えばCABAC)の例示的方法の流れ
図1000を示す。
図10は
図4と類似点を有する。ステップ1010、1020、1040、1025、及び1060は、ステップ410、420、440、425、及び460のそれぞれと同様である。訓練に関して以下で説明するように、ステップ1030及び1050はステップ430及び440との違いを有する。ステップ1010で、ビデオのピクチャ内の現在のブロックに関連するシンタックス要素(SE)の2進値にアクセスし、即ちまだ2進値(バイナリフラグ等)ではない場合、シンタックス要素(SE)1010をまず2値化する。次いでループ1020内で、ビンに対して以下を行う:
a.ステップ1030で、コード化するためのシンタックス要素のコンテキスト情報を使用してNNによってコンテキスト確率を決定する。コンテキスト確率は、コンテキスト値CTXを既知としてビンが「b」の値を取る推定条件付き確率、即ちP(b/CTX)に対応する。決定は、符号化するための現在のシンボル(シンタックス要素)の近隣にある既にコード化されたシンボル(シンタックス要素)、CU/PU/TUのサイズ若しくは形状、CUのコード化モード、又はスライスの種類若しくは他の入力データ等のコンテキスト情報に基づく。
b.ステップ1040で、コンテキスト確率P(b/CTX)に従ってエントロピエンコーダ(例えば算術エンコーダ)を使用してビンを符号化する。
c.ステップ1050で、ビンがコード化されたらコンテキストセットを更新し、即ちコンテキスト確率を更新する。例えば更新は、ビン値(「0」又は「1」)の発生回数のカウントの更新を表し得る。先に詳述したように、インクリメント/デクリメントの方向を推定し、このインクリメントによって確率を更新することができ、又は(推定確率が1を超えるジャンプである場合)1を超えるジャンプのインクリメント/デクリメントを可能にするが、ジャンプはnジャンプ(例えばn=3)に限定する。
d.ステップ1025で、符号化するための更なるビンがあるかどうかを確認する。ある場合は(例えばシンタックス要素の次のビンに移ることによって)ステップ1020に戻り、さもなければステップ1060でこのプロセスを終了する。
【0090】
[0087] 一般性を失うことなく、ステップ1040及び1050は順序を変えること又は並列に実行することができる。
【0091】
[0088] 先に詳述したように、様々なアーキテクチャが、本実施形態で使用するための多成分入力を有するNN並びに複数の訓練方式(オンライン、オフライン)に適合する。本原理の第2の実施形態の2つの改変形態によるNNの訓練について次に説明する。
【0092】
[0089]
図11は、本開示の第2の実施形態による、CABACエンコーダ内の1つのビンを伴うNNの例示的訓練の単純化したブロック図を示す。所与のビンシンボル(即ちシンタックス要素SE)Sについて、符号化されるビンシンボルSごとに値(Xt,Yt)を集めることによって
図4に示す通常のエンコーダから訓練セットが構築され、XtはTの前に(符号化順序)コード化されたSのビン値を含み、YtはSの現在の値である。次式の通り損失(クロスエントロピコスト)を計算する:
【0093】
[0090] 損失=-(1-bint).log(pt)-bint.log(1-pt) (1)
【0094】
[0091] 式中、ptはbin(t)がゼロに等しい推定確率を表すNNの出力であり、bin(t)は現在のビン値である。この場合もやはり、エントロピコード化に関する1つ又は複数のNNの訓練はNNを訓練するための通常の枠組みから逸脱しないことを当業者なら理解されよう。その後、この損失を使用してNNの新たなパラメータを最適化プロセスによって導出/調整する。このNNが非常に大きい画像集合に基づいて訓練され、NNのパラメータ(重み)が設定されると、NNはエンコーダによって直接使用することができ又はデコーダに送信することができる。
【0095】
[0092] 第2の実施形態の改変形態では、それぞれのビンの確率を独立に処理するのではなく、シンボル確率をNNによって全体として処理する。
図12は、本開示の第2の実施形態による、CABACエンコーダ内の1つのシンボルを伴うNNの例示的訓練の単純化したブロック図を示す。この事例では、NNはSのあり得る全ての値のための分類器である(シンタックス要素SはNの値を取ることができ、又は限られた範囲の値を有する整数である)。NNの出力はp
i(t)、但しi=1..Nであり、p
i(t)はSがi番目のあり得る値に等しい確率である。時点tにおけるSの値がs番目のあり得る値である場合、クロスエントロピコスト関数は次式の通りである:
【0096】
【0097】
[0094] この場合、バイナリ算術コーダ440によって使用される各ビンの確率は、全体として検討されるシンボルの確率から導出することができる。
【0098】
[0095] 改変形態では、有利には通常のエンコーダの修正版を訓練に使用することができ、通常のコード化モデルが結果にバイアスをかけないようにシンボルSに関連するRDOのλの値をゼロに強制する。他のシンボルは通常のRDO及び通常のλを用いてコード化される。
【0099】
[0096] 一実施形態では、この方法は、ステップ1040でシンタックス要素のエントロピ符号化されたビンを提供することを更に含み得る。提供するステップは、エンコーダ100の別のモジュールに出力すること又は提供することを含み得る。提供するステップは任意選択的でも、バイパスされても、又は除去されてもよい。ステップ1010から1040は例えばエンコーダ100によって、とりわけエントロピコード化ブロック145によって実行され得る。方法1000は、シンタックス要素の複数のビンに対して、複数のシンタックス要素(例えばブロック内の複数の変換係数に関連するシンタックス要素)に対して、及び/又はピクチャ内の複数のブロックに対して実行され得る。方法1000は、シンタックス要素のビンに対して、ブロック内のシンタックス要素に対して、及び/又はピクチャ内のブロックに対して実行されてもよい。
【0100】
[0097] この方法の一実施形態によれば、ニューラルネットワークが再帰型ニューラルネットワークである。
【0101】
[0098] この方法の一実施形態によれば、複数のニューラルネットワークが使用され、ニューラルネットワークがシンタックス要素の種類について訓練される。
【0102】
[0099] この方法の一実施形態によれば、エントロピ符号化がCABACエントロピ符号化であり得る。
【0103】
[00100] 一実施形態によれば、この方法は、ピクチャを受信し、ブロックを含む複数のブロックにピクチャを区分化し、ブロックの予測残差を決定し、複数の変換係数を得るために残差を変換し量子化し、残差をエントロピ符号化することを更に含み得る。変換及び量子化のステップは、例えばエンコーダ100のモジュール125及び130によって実行され得る。エントロピ符号化のステップは、例えばエンコーダ100のモジュール145によって実行され得る。受信、変換、及び量子化のステップは、別の装置によって前に実行されている可能性があるので、及び/又は結果がメモリ内に記憶されている可能性があるので、任意選択的でも、バイパスされても、又は除去されてもよい。
【0104】
[00101] 上記の方法1000の実施形態の何れもエンコーダ100によって実装できることを理解すべきである。エンコーダ100のブロックはハードウェア(例えば集積回路)によって、又はメモリ内に記憶され、プロセッサによって実行されるソフトウェアによって実装され得る。
【0105】
復号
[00102]
図13は、本開示の一実施形態による例示的なビデオデコーダ1300の単純化したブロック図を示す。ビデオデコーダ1300は、通信システム内の受信機の中に含まれ得る。ビデオデコーダ1300は、
図1に記載したビデオエンコーダ100によって実行される符号化経路の逆の復号経路を概して実行する。具体的には、デコーダ1300の入力は、ビデオエンコーダ100によって生成され得るビデオビットストリームを含む。変換係数、動きベクトル、シンタックス要素、及び他のコード化された情報を得るためにこのビットストリームをまずエントロピ復号する(モジュール1330)。残差を復号するために変換係数を逆量子化し(モジュール1340)、逆変換する(モジュール1350)。復号済みの残差を予測済みのサンプルブロック(予測因子としても知られている)と組み合わせて(モジュール255)復号/再構築済みの画像ブロックを得る。予測済みのサンプルブロックはイントラ予測(モジュール1360)又は動き補償予測(即ちインタ予測)(モジュール1375)から得ることができる(モジュール1370)。再構築済みの画像にインループフィルタ(モジュール1365)を適用することができる。インループフィルタはデブロッキングフィルタ及びSAOフィルタを含み得る。フィルタ済みの画像を参照ピクチャバッファ1380内に記憶する。
【0106】
[00103] ビデオデコーダ1300のモジュールはソフトウェアによって実装され、プロセッサによって実行されてもよく、又は圧縮の当業者によってよく知られている回路によって実装することができる。具体的には、ビデオエンコーダ1300は集積回路(IC)として単独で又はコーデックとしてビデオデコーダ100と組み合わせて実装することができる。
【0107】
[00104] 本開示に記載する差異、とりわけ本開示による
図1のモジュール145の逆であり、以下の段落及び図面の中でより詳細に説明するエントロピ復号モジュール1330の差異を除き、ビデオデコーダ1300のモジュールは他のビデオデコーダ(例えばHEVCデコーダ)内にもある。エントロピ復号以外の機能(例えば1330以外のモジュール)ではビデオデコーダ1300はHEVCビデオデコーダと同様とすることができ、本明細書ではその機能を詳細には説明しない。
【0108】
エントロピ復号
[00105] 先に説明したようにHEVC標準では、所謂変換ブロック(TB)内に含まれる量子化済みの係数がCABACを使用してエントロピコード化され、復号され得る。CABACデコーダにおいて、CABACエンコーダの全般的な逆の機能が実行される。CABAC並びに他のコンテキストベースのエンコーダ及びデコーダは圧縮の当業者によってよく知られており、本明細書では詳細には説明しない。本開示は、全般的なコンテキストベースのエントロピエンコーダ及びデコーダ(例えばCABACエンコーダ及びデコーダ)に適用され、シンタックス要素の改善された予測を決定すること又はニューラルネットワークによる要素(例えばシンタックス要素)のエントロピ圧縮に使用される改善されたコンテキスト確率を決定することに関する。
【0109】
[00106] CABAC復号のプロセスへの入力は、典型的にはHEVC標準に準拠するコード化ビットストリーム内にある。復号プロセスの任意の時点において、デコーダは次にどのシンタックス要素を復号すべきかを知っており、その理由は、標準化されたビットストリームのシンタックス及び復号プロセス内でかかるシンタックス要素が完全に指定されるからである。更にデコーダは、復号すべき現在のシンタックス要素がどのように2値化されている(即ち「1」又は「0」にそれぞれ等しいビンと呼ばれる一連の2値シンボルとして表される)のか、及びビン列の各ビンがどのように符号化されているのかも分かる。
【0110】
[00107] 従って、CABAC復号プロセスの最初の段階では一連のビンを復号する。或るビンについて、デコーダはそのビンがバイパスモードに従って符号化されているのか、又は通常モードに従って符号化されているのかが分かる。バイパスモードは単純にビットストリーム内のビットを読み取り、取得したビット値を現在のビンに割り当てることで構成される。このモードには複雑でなく、従って高速であり、典型的には一様の統計的分布を有する、即ち「1」又は「0」に等しい等確率を有するビンに使用されるという利点がある。
【0111】
[00108] 現在のビンがバイパスモードでコード化されていない場合、そのビンは通常モードで、即ちコンテキストベースの算術コード化によってコード化されている。通常モードでは、現在のビンを復号するためにまずコンテキストを得る。コンテキストは、通常モードに関連するコンテキストモデラモジュールによって与えられる。コンテキストの目標は、幾つかのコンテキスト上の前の又は情報Xを所与とし、現在のビンが「0」の値を有する条件付き確率を得ることである。前のXは、現在のビンが復号されている時点における、エンコーダ側及びデコーダ側の両方において同期的に入手可能な幾つかの既に復号されているシンタックス要素の値である。
【0112】
[00109] 典型的には、ビンを復号するために使用する前のXは標準内で規定され、復号するための現在のビンと統計的に相関することを理由に選択される。情報理論においてよく知られているように、Xを所与としたビンの条件付きエントロピはビンとXとの相関が高まるにつれて低下するので、このコンテキスト情報を使用することはビンをコード化するレートコストを低減することを可能にする(ビンとXとが統計的に相関する場合、H(bin|X)<H(bin)、又はXを既知としたビンの条件付きエントロピがビンのエントロピを下回る)。
【0113】
[00110] コンテキスト情報Xをこのように使用して、現在のビンが「0」又は「1」である確率を得る。これらの条件付き確率を所与とし、通常復号モードは2進値ビンの算術復号を行う。次いで、現在のコンテキスト情報Xを既知として現在のビンに関連する条件付き確率の値を更新するためにビンの値を使用する。これをコンテキストモデルの更新と呼ぶ。ビンが復号(又はコード化)されている限りコンテキストモデルをビンごとに更新することは、各2値要素のコンテキストモデリングを漸進的に洗練させることを可能にする。従って、CABACデコーダはそれぞれの通常符号化済みのビンの統計的挙動を漸進的に学習する。どのようにコード化されたのかにもよるが、現在のビンの通常の算術復号又はそのバイパス復号は一連の復号済みのビンをもたらす。
【0114】
[00111] コンテキストモデラ及びコンテキストモデルの更新ステップは、CABACエンコーダ側及びデコーダ側での厳密に同一の操作であることを理解すべきである。
【0115】
[00112] CABAC復号の第2の段階は、この一連の2値シンボルを高レベルのシンタックス要素に変換することで構成される。シンタックス要素はフラグの形を取ることができ、その場合、シンタックス要素は現在の復号済みのビンの値を直接取る。他方で、検討される標準仕様による1組の幾つかのビンに現在のシンタックス要素の2値化が対応する場合、「Binary Codeword to Syntax Element」と呼ばれる変換ステップを行う。この変換ステップはエンコーダによって行われた2値化ステップの逆である。一例として、シンタックス要素の標準の2値化は次の符号化要素をもたらす:last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、及びlast_sig_coeff_y_suffix。従ってデコーダによって行われる逆変換は、これらのシンタックス要素の値をそのそれぞれの復号済みの2値化バージョンに基づいて得ることで構成される。
【0116】
[00113] 従って、本原理の一実施形態によるデコーダは、シンタックス要素の改善された予測に基づいてシンタックス要素を復号するために、又は要素(例えばシンタックス要素)の改善されたコンテキスト確率をモデリングし決定するために現在のシンタックス要素の前に復号されたデータを使用してニューラルネットワークを実装する。
【0117】
[00114] 第1の実施形態によれば、この一連の2値シンボルを高レベルのシンタックス要素に変換する間、CABACは入力データに応じてシンタックス要素の予測をシンタックス要素について決定するNNを実装する。かかるNNは
図5のエンコーダ500のNN530及び入力データ520と厳密に同等である。次いで、予測の関連性をコード化する復号済みの一連のビンを予測と共に使用して、CABACエンコーダによってコード化されたシンタックス要素を決定する。シンタックス要素がフラグである改変形態によれば、フラグの予測と復号済みのビンとの間のXORが復号済みのシンタックス要素をもたらす。第1の実施形態の様々な改変形態についての説明は省くが、デコーダの当業者にとっては容易に理解される。
【0118】
[00115] 第2の実施形態によれば、復号プロセスが一連のビンを復号し、CABACが前述のシンタックス要素に関連するコンテキスト、シンタックス要素の前に復号されたデータを使用してシンタックス要素に関連する確率を決定するNNを実装する。従って、コンテキストモデル及び確率の更新がNNによって行われる。
【0119】
[00116]
図14は、本開示の実施形態の何れか1つによる、コンテキストベースのエントロピ復号(例えばCABAC)の例示的方法の流れ
図1400を示す。
図14は、
図6又は
図10の逆である。ビットストリームが、エントロピ符号化されたシンタックス要素を含む符号化ビデオと共に受信される。ステップ1425、1430、1450、及び1460は、ステップ625、630、650、及び660のそれぞれと同様であり(又はステップ1025、1030、1050、及び1060のそれぞれと同様であり)、更なる説明は行わない。ステップ1440は、エントロピ符号化の代わりにエントロピ復号を行う点でステップ640(又は1040)の逆である。
【0120】
[00117] 一般性を失うことなく、ステップ1440及び1450は順序を変えること又は並列に実行することができる。
【0121】
[00118] 1組のコンテキストモデル内の或るコンテキストモデルから別のコンテキストモデルに遷移する又は切り替えるために使用される閾値又はレベルは、符号化されていようがいまいがビットストリーム内に含まれてもよく、
図14の方法を実行するためにデコーダにおいて取得され得ることを理解すべきである。
【0122】
[00119] 一実施形態では、この方法はステップ1440で、シンタックス要素のエントロピ復号されたビンを提供することを更に含み得る。提供するステップは、デコーダの別のモジュールに出力すること又は提供することを含み得る。提供するステップは任意選択的でも、バイパスされても、又は除去されてもよい。
【0123】
[00120] ステップ1410から1440は例えばデコーダ1300によって、とりわけエントロピ復号モジュール1330によって実行され得る。方法1400は、シンタックス要素の複数のビンに対して、ブロック内の複数のシンタックス要素に対して、及び/又はピクチャ内の複数のブロックに対して実行され得る。方法1400は、シンタックス要素のビンに対して、ブロック内のシンタックス要素に対して、及び/又はピクチャ内のブロックに対して実行されてもよい。
【0124】
[00121]
【0125】
[00122] この方法の一実施形態によれば、エントロピ復号がCABACエントロピ復号であり得る。
【0126】
[00123] 一実施形態によれば、この方法は、符号化ピクチャを受信し、ブロックをエントロピ復号し、復号済みの残差を得るためにブロックを逆変換し、復号済みの残差を予測済みのサンプルブロックと組み合わせて復号済み/再構築済みの画像ブロックを得ることを更に含み得る。変換係数は、逆変換の前に更に逆量子化され得る。エントロピ復号、逆変換、及び逆量子化のステップは、例えばデコーダ1300のモジュール1330、1350、及び1340のそれぞれによって実行され得る。受信、エントロピ復号、逆変換及び逆量子化、並びに組み合わせのステップは、別の装置によって前に実行されている及び/又は別の装置に提供されている可能性があるので、又は結果がメモリから取得されている及び/又はメモリ内に記憶されている可能性があるので、任意選択的でも、バイパスされても、又は除去されてもよい。
【0127】
[00124] 上記の方法1400の実施形態の何れもデコーダ1300によって実装できることを理解すべきである。デコーダ1300のブロックはハードウェア(例えば集積回路)によって、又はメモリ内に記憶され、プロセッサによって実行されるソフトウェアによって実装され得る。
【0128】
[00125]
図15は、本開示の例示的実施形態の様々な態様を実装することができる例示的システムのブロック
図1500を示す。システム1500は、以下に記載の様々なコンポーネントを含む装置として具体化することができ、上記のプロセスを実行するように構成される。かかる装置の例は、これだけに限定されないが、パーソナルコンピュータ、ラップトップコンピュータ、スマートフォン、スマートウォッチ、タブレットコンピュータ、デジタルマルチメディアセットトップボックス、デジタルテレビ受信機、パーソナルビデオ録画システム、接続された家庭用電化製品、及びサーバを含む。上記の例示的ビデオシステムを実装するために、システム1500は
図15に示し且つ当業者によって知られている通信チャネルを介して他の同様のシステム及びディスプレイに通信可能に結合され得る。システム1500は、エンコーダ100、デコーダ1300、又はその両方を独立に又は一緒に実装することができる。更にシステム1500は、方法600、方法1000、及び/又は方法1400を含む本開示のプロセスの何れかを独立に又は一緒に実装することができ、且つ実行するように構成することができる。
【0129】
[00126] システム1500は、上記の様々なプロセスを実施するために自らの中にロードされた命令を実行するように構成される少なくとも1つのプロセッサ1510を含み得る。プロセッサ1510は、埋込メモリ、入出力インタフェース、及び当技術分野で知られている他の様々な回路を含み得る。システム1500は、少なくとも1つのメモリ1520(例えはRAM等の揮発性メモリ装置、ROM等の不揮発性メモリ装置)も含み得る。システム1500は、これだけに限定されないが、消去プログラム可能読取専用メモリ(EPROM)、ROM、プログラム可能読取専用メモリ(PROM)、ダイナミックRAM(DRAM)、スタティックRAM(SRAM)、フラッシュメモリ、磁気ディスクドライブ、及び/又は光ディスクドライブを含む不揮発性メモリを含み得る記憶装置1540を更に含むことができる。記憶装置1540は、非限定的な例として内蔵記憶装置、付加記憶装置、及び/又はネットワークアクセス可能記憶装置を含み得る。システム1500は、符号化済みのビデオ又は復号済みのビデオを提供するためにデータを処理するように構成されるエンコーダ/デコーダモジュール1530も含み得る。
【0130】
[00127] エンコーダ/デコーダモジュール1530は、例えば
図6、
図10、及び
図14のそれぞれによる符号化及び/又は復号機能を実行するために装置内に含まれ得るモジュールを表す。圧縮の分野で知られているように、装置は符号化モジュール及び復号モジュールの一方又は両方を含み得る。加えて、エンコーダ/デコーダモジュール1530はシステム1500の別個の要素として実装することができ、又は当業者に知られているようにハードウェアとソフトウェアとの組み合わせとしてプロセッサ1510内に組み込まれてもよい。例えばエンコーダ/デコーダモジュール1530は、1つ又は2つの別個の集積回路及び/又は書換可能ゲートアレイ(FPGA)として実装することができる。
【0131】
[00128] 上記の様々なプロセスを実行するためにプロセッサ1510上にロードされるプログラムコードは記憶装置1540内に記憶され、その後プロセッサ1510によって実行するためにメモリ1520上にロードされ得る。本開示の例示的実施形態によれば、プロセッサ1510、メモリ1520、記憶装置1540、及びエンコーダ/デコーダモジュール1530の1つ又は複数が、上記で論じたプロセスの実行中にこれだけに限定されないが入力ビデオ、復号ビデオ、ビットストリーム、等式、公式、行列、変数、演算、及び演算ロジックを含む様々なアイテムの1つ又は複数を記憶し得る。
【0132】
[00129] システム1500は、通信チャネル1560を介して他の装置と通信することを可能にする通信インタフェース1550も含み得る。通信インタフェース1550は、これだけに限定されないが、通信チャネル1560からデータを送受信するように構成されるトランシーバを含み得る。通信インタフェースは、これだけに限定されないがモデム又はネットワークカードを含むことができ、通信チャネルは有線媒体及び/又は無線媒体内に実装することができる。システム1500の様々なコンポーネントは、これだけに限定されないが内部バス、配線、及びプリント回路基板を含む様々な適切な接続を使用して接続し又は通信可能に結合することができる。
【0133】
[00130] 本開示による例示的実施形態は、プロセッサ1510によって実行されるコンピュータソフトウェアによって、又はハードウェアによって、又はハードウェアとソフトウェアとの組み合わせによって実行することができる。非限定的な例として、本開示による例示的実施形態は1つ又は複数の集積回路によって実装され得る。メモリ1520は技術的環境に適した任意の種類のものとすることができ、非限定的な例として光メモリ装置、磁気メモリ装置、半導体ベースのメモリ装置、固定メモリ、及び脱着可能メモリ等、任意の適切なデータ記憶技術を使用して実装することができる。プロセッサ1510は技術的環境に適した任意の種類のものとすることができ、非限定的な例としてマイクロプロセッサ、汎用コンピュータ、専用コンピュータ、及びマルチコアアーキテクチャに基づくプロセッサのうちの1つ又は複数を包含し得る。
【0134】
[00131] 本明細書に記載した実装形態は、例えば方法若しくはプロセス、機器、ソフトウェアプログラム、データストリーム、又は信号によって実装することができる。単一形式の実装形態の脈絡でしか論じられていなくても(例えば方法としてしか論じられていなくても)、論じられた特徴の実装形態は他の形(例えば機器又はプログラム)でも実装することができる。機器は例えば適切なハードウェア、ソフトウェア、及びファームウェアによって実装することができる。方法は例えばプロセッサ等の機器によって実装することができ、プロセッサは例えばコンピュータ、マイクロプロセッサ、集積回路、又はプログラム可能論理装置を含む処理装置全般を指す。プロセッサは、例えばコンピュータ、携帯電話、ポータブル/携帯情報端末(PDA)、及びエンドユーザ間の情報の通信を助ける他の装置等の通信装置も含む。
【0135】
[00132] 本開示の一態様によれば、ビデオを符号化するための機器1500が提供され、その機器はプロセッサ1510及びプロセッサに結合される少なくとも1つのメモリ1520、1540を含み、プロセッサ1510は上記のビデオ符号化の方法600又は1000の実施形態の何れかを実行するように構成される。
【0136】
[00133] 本開示の一態様によれば、ビデオを復号するための機器1500が提供され、その機器はプロセッサ1510及びプロセッサに結合される少なくとも1つのメモリ1520、1540を含み、プロセッサ1510は上記のビデオ復号の方法1300の実施形態の何れかを実行するように構成される。
【0137】
[00134] 本開示の一態様によれば、ビデオのピクチャ内のブロックに関連するシンタックス要素のビンにアクセスするための手段と、シンタックス要素のビンのコンテキストを決定するための手段と、決定したコンテキストに基づいてシンタックス要素のビンをエントロピ符号化するための手段とを含む、ビデオを符号化するための機器が提供され、ビンにアクセスするための手段又はコンテキストを決定するための手段は開示した実施形態の何れかに従って実装される。
図1及び
図15のビデオエンコーダは機器の構造又は手段、とりわけブロック145、1510、及び1530を含み得る。
【0138】
[00135] 本開示の一態様によれば、符号化ビデオのピクチャ内のブロックに関連するシンタックス要素の符号化済みのビンにアクセスするための手段と、シンタックス要素を有するシンタックス要素のビンのコンテキストを決定するための手段と、決定したコンテキストに基づいてシンタックス要素の符号化済みのビンをエントロピ復号するための手段とを含む、ビデオを復号するための機器が提供される。
図13及び
図15は、ビデオを復号するための機器の構造又は手段、とりわけブロック1330、1510、及び1530を含み得る。
【0139】
[00136] 当業者に明らかなように、実装形態は例えば記憶され又は伝送され得る情報を運ぶようにフォーマットされる多岐にわたる信号を作り出し得る。情報は例えば方法を実行するための命令、又は記載した実装形態の1つによって作り出されるデータを含み得る。例えば信号は、記載した実施形態のビットストリームを運ぶようにフォーマットされ得る。かかる信号は、例えば電磁波として(例えばスペクトルの無線周波数部分を用いて)、又はベースバンド信号としてフォーマットされ得る。フォーマットすることは、例えばデータストリームを符号化し、符号化データストリームで搬送波を変調することを含み得る。信号が運ぶ情報は、例えばアナログ情報又はデジタル情報とすることができる。信号は、知られているように様々な異なる有線リンク又は無線リンク上で伝送され得る。信号はプロセッサ可読媒体上に記憶され得る。
【0140】
[00137] 本開示の一態様によれば、ピクチャのブロックを表す符号化データを含むようにフォーマットされたビットストリームを信号が含み、符号化データはビデオを符号化する方法600又は1000の実施形態の何れかに従って符号化される。
【0141】
[00138] 本開示の一態様によれば、ピクチャのブロックを表す符号化データを含むようにビットストリームがフォーマットされ、符号化データはビデオを符号化する方法600又は1000の実施形態の何れかに従って符号化される。
【0142】
[00139] 更に、方法600、1000、及び/又は1400の何れも、プロセッサによって実行され得るコンピュータ実行可能命令を(独立に又は一緒に)含むコンピュータプログラム製品として実装することができる。コンピュータ実行可能命令を有するコンピュータプログラム製品は、システム1500、エンコーダ100、及び/又はデコーダ1300のそれぞれの一時的又は非一時的コンピュータ可読記憶媒体の中に記憶することができる。
【0143】
[00140] 本開示の一態様によれば、本開示の方法600、1000、及び/又は1400の何れかの実施形態の何れかを(独立に又は一緒に)実行するためのプログラムコード命令を含むコンピュータ可読プログラム製品が提供される。
【0144】
[00141] 一部の実施形態では、本開示の態様を引き続き実装しながらプロセス600、1000、及び/又は1400内の要素の1つ又は複数を組み合わせ、異なる順序で実行し、又は除外できることに留意することが重要である。他のステップが並列に実行されてもよく、プロセッサは或るステップを開始する前に別のステップが完全に完了するのを待たない。
【0145】
[00142] 更に、本開示の態様はコンピュータ可読記憶媒体の形を取り得る。1つ又は複数のコンピュータ可読記憶媒体の任意の組み合わせを利用することができる。コンピュータ可読記憶媒体は、1つ又は複数のコンピュータ可読媒体内に実装され、コンピュータによって実行可能なコンピュータ可読プログラムコードがその上に実装されているコンピュータ可読プログラム製品の形を取り得る。本明細書で使用するとき、コンピュータ可読記憶媒体は、情報を内部に記憶する固有の能力並びに情報をそこから取り出せるようにする固有の能力を与えられた非一時的記憶媒体と見なされる。コンピュータ可読記憶媒体は、例えばこれだけに限定されないが、電子、磁気、光学、電磁、赤外、若しくは半導体のシステム、機器、若しくは装置、又は上記のものの任意の適切な組み合わせとすることができる。
【0146】
[00143] 当業者なら容易に理解されるように、以下の列挙は本開示を適用することができるコンピュータ可読記憶媒体のより具体的な例を示すが、例示に過ぎず網羅的な列挙ではないことを理解すべきである。例の列挙は、ポータブルコンピュータディスケット、ハードディスク、ROM、EPROM、フラッシュメモリ、携帯型コンパクトディスク読取専用メモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又は上記のものの任意の適切な組み合わせを含む。
【0147】
[00144] 本開示の一態様によれば、方法600、1000、及び/又は1400を含む本開示の方法の何れかの実施形態の何れかを実行するためのプログラムコード命令を含む、ソフトウェアプログラムを保持するコンピュータ可読記憶媒体が提供される。
【0148】
[00145] 本開示の「一実施形態」、又は「或る実施形態」、又は「一実装形態」、又は「或る実装形態」並びにそれらの他の異体に言及することは、実施形態に関連して記載される特定の特徴、構造、特性等が本開示の少なくとも1つの実施形態に含まれることを意味することを理解すべきである。従って、本明細書の全体を通して様々な箇所に登場する「一実施形態では」、又は「或る実施形態では」、又は「一実装形態では」、又は「或る実装形態では」という語句並びに他の任意の異体の登場は必ずしも全て同じ実施形態を指すものではない。
【0149】
[00146] 加えて本開示又は本開示の特許請求の範囲は、様々な情報片を「決定すること」に言及する場合がある。情報を決定することは、例えば情報を推定すること、情報を計算すること、情報を予測すること、情報を選択すること、又は情報をメモリから取り出すことの1つ又は複数を含み得る。
【0150】
[00147] 更に本開示又は本開示の特許請求の範囲は、様々な情報片を「提供すること」に言及する場合がある。情報を提供することは、例えば情報を出力すること、情報を記憶すること、情報を伝送すること、情報を送信すること、情報を表示すること、情報を示すこと、情報を処理すること、又は情報を移動することの1つ又は複数を含み得る。
【0151】
[00148] 更に本開示又は本開示の特許請求の範囲は、様々な情報片に「アクセスすること」に言及する場合がある。情報にアクセスすることは、例えば情報を受信すること、情報を(例えばメモリから)取り出すこと、情報を記憶すること、情報を処理すること、情報を移動すること、情報を複製すること、情報を消去すること、情報を計算すること、情報を決定すること、情報を予測すること、又は情報を推定することの1つ又は複数を含み得る。
【0152】
[00149] 更に本開示又は本開示の特許請求の範囲は、様々な情報片を「受信すること」に言及する場合がある。受信することは「アクセスすること」と同様に広義語であることを意図する。情報を受信することは、例えば情報にアクセスすること、又は情報を(例えばメモリから)取り出すことの1つ又は複数を含み得る。更に、「受信すること」は典型的には例えば情報を記憶する操作、情報を処理する操作、情報を伝送する操作、情報を移動する操作、情報を複製する操作、情報を消去する操作、情報を計算する操作、情報を決定する操作、情報を予測する操作、又は情報を推定する操作等の操作中に何らかの形で関与する。
【0153】
[00150] 図示し説明した様々な特徴は交換可能であることを理解すべきである。別段の定めがない限り、或る実施形態に示す特徴を別の実施形態に組み込むことができる。更に、様々な実施形態において記載した特徴は、分けることができない又は組み合わせることができないと示されていない限り、組み合わせる又は分けることができる。
【0154】
[00151] 先に述べたように、図示の様々な要素の機能は、専用ハードウェア並びに適切なソフトウェアに関連してソフトウェアを実行可能なハードウェアを使用することによって与えられ得る。更に、プロセッサによって与えられるとき、それらの機能は単一の専用プロセッサによって、単一の共用プロセッサによって、又はその一部が共用され得る複数の個別のプロセッサによって与えられ得る。
【0155】
[00152] 添付図面に示した構成要素であるシステムコンポーネント及び方法の一部はソフトウェアによって実装することが好ましいので、本開示のプロセスをプログラムするやり方に応じてシステムコンポーネント又はプロセス機能ブロック間の実際の接続が異なり得ることを更に理解すべきである。本明細書の教示を所与として、当業者は本開示のこれらの及び同様の実装又は構成を考えることができるようになる。
【0156】
[00153] 本明細書では添付図面に関して例示的実施形態を説明してきたが、本開示はそれらの厳密な実施形態に限定されず、本開示の範囲から逸脱することなしに様々な変更及び修正が当業者によって加えられてもよいことを理解すべきである。加えて、本開示の範囲から逸脱することなしに個々の実施形態を組み合わせることができる。そのような全ての変更及び修正が添付の特許請求の範囲に記載の本開示の範囲に含まれることを意図する。