(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-05
(54)【発明の名称】コンテキスト・ベース適応バイナリ算術符号化のための確率計算の方法およびデバイス
(51)【国際特許分類】
H04N 19/13 20140101AFI20241128BHJP
H04N 19/157 20140101ALI20241128BHJP
H04N 19/174 20140101ALI20241128BHJP
H04N 19/176 20140101ALI20241128BHJP
H04N 19/70 20140101ALI20241128BHJP
H04N 19/91 20140101ALI20241128BHJP
【FI】
H04N19/13
H04N19/157
H04N19/174
H04N19/176
H04N19/70
H04N19/91
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024534131
(86)(22)【出願日】2022-12-29
(85)【翻訳文提出日】2024-06-06
(86)【国際出願番号】 US2022054291
(87)【国際公開番号】W WO2023129680
(87)【国際公開日】2023-07-06
(32)【優先日】2021-12-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521248394
【氏名又は名称】ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO.,LTD.
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100217940
【氏名又は名称】三並 大悟
(72)【発明者】
【氏名】シウ、シャオユー
(72)【発明者】
【氏名】チェン、イー-ウェン
(72)【発明者】
【氏名】チェン、ウェイ
(72)【発明者】
【氏名】カオ、ハン
(72)【発明者】
【氏名】クオ、チョー-ウェイ
(72)【発明者】
【氏名】チュー、ホン-チェン
(72)【発明者】
【氏名】ヤン、ニン
(72)【発明者】
【氏名】ワン、シャンリン
(72)【発明者】
【氏名】ユイ、ビン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159ME11
5C159RB09
5C159RC12
5C159TA58
5C159TB06
5C159TB08
5C159TC27
5C159TC28
5C159UA02
5C159UA05
(57)【要約】
ビデオ復号および符号化のための方法、その装置、およびその非一時的コンピュータ可読記憶媒体が提供される。ビデオ復号のための1つの方法では、1つのバイナリ算術復号器は、適応重みに従って、バイナリ算術復号器の1つの所与のコンテキスト・モデルの1つのバイナリ・シンボルの多重仮説確率を取得し得、多重仮説確率は、1つのバイナリ・シンボルがバイナリ値に等しい確率を示し、1つのバイナリ・シンボルは、コンテキスト・モデルに関連付けられた複数のバイナリ・シンボルからのものである。さらに、復号器は、多重仮説確率に従って1つのバイナリ・シンボルを復号し得る。
【特許請求の範囲】
【請求項1】
ビデオ復号のための方法であって、
1つのバイナリ算術復号器によって、適応重みに従って、前記バイナリ算術復号器の1つの所与のコンテキスト・モデルの1つのバイナリ・シンボルの多重仮説確率(multi-hypothesis probability)を取得することであって、前記多重仮説確率は、前記1つのバイナリ・シンボルがバイナリ値に等しい確率を示し、前記1つのバイナリ・シンボルは、前記コンテキスト・モデルに関連付けられた複数のバイナリ・シンボルからのものである、前記取得することと、
前記復号器によって、前記多重仮説確率に従って前記1つのバイナリ・シンボルを復号することと、
を含む、方法。
【請求項2】
前記復号器によって、第1の適応パラメータに従って前記1つのバイナリ・シンボルの第1の確率を取得することと、
前記復号器によって、第2の適応パラメータに従って前記1つのバイナリ・シンボルの第2の確率を取得することと、
前記復号器によって、前記適応重み、前記第1の確率、および前記第2の確率に従って、前記多重仮説確率を取得することと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記復号器によって、重み初期化テーブル内の所定の整数の重み値のセットから前記コンテキスト・モデル(context model)に従って前記適応重みを取得すること
をさらに含む、請求項1に記載の方法。
【請求項4】
前記復号器によって、各スライス・タイプ(slice type)の重み初期化テーブルを取得することと、
現在のスライスが第1のスライス・タイプであるとの決定に応答して、前記復号器によって、前記第1のスライス・タイプに従って前記重み初期化テーブルを選択することであって、前記第1のスライス・タイプは、Iタイプ、Pタイプ、またはBタイプを含む、前記選択することと、
前記復号器によって、選択された前記重み初期化テーブルに従って前記適応重みを取得することと、
をさらに含む、請求項1に記載の方法。
【請求項5】
前記復号器によって、各スライスに対して重み初期化テーブルを選択するか否かを示すピクチャ・パラメータ・セット(PPS)内の制御構文要素(control syntax element)を取得すること
をさらに含む、請求項4に記載の方法。
【請求項6】
前記制御構文要素が有効化されているとの決定に応答して、前記復号器によって、スライス・レベルで、各スライスのスライス・タイプに従って各スライスに対して選択された重み初期化テーブルを示す各スライスの適応重み構文要素を取得すること
をさらに含む、請求項5に記載の方法。
【請求項7】
前記復号器によって、各Iスライス用の第1の重み初期化テーブル、各Pスライス用の第2の重み初期化テーブル、および各Bスライス用の第3の重み初期化テーブルを取得することと、
現在のスライスがIスライスであるとの決定に応答して、前記復号器によって、前記第1の重み初期化テーブルを選択することと、
前記現在のスライスがPスライスまたはBスライスであるとの決定に応答して、前記復号器によって、前記第2の重み初期化テーブルまたは前記第3の重み初期化テーブルを選択することと、
前記復号器によって、選択された前記重み初期化テーブルに従って前記適応重みを取得することと、
をさらに含む、請求項1に記載の方法。
【請求項8】
前記現在のスライスがIスライスでないとの決定に応答して、前記復号器によって、各スライスに対して重み初期化テーブルを選択するか否かを示すピクチャ・パラメータ・セット(PPS)内の制御構文要素を取得することと、
前記制御構文要素が有効化されているとの決定に応答して、前記復号器によって、スライス・レベルで、前記第2の重み初期化テーブルおよび前記第3の重み初期化テーブルから選択される重み初期化テーブルを示す各非Iスライスの適応重み構文要素を取得することと、
をさらに含む、請求項7に記載の方法。
【請求項9】
ビデオ符号化のための方法であって、
1つのバイナリ算術符号化器によって、適応重みに従って、前記バイナリ算術符号化器の1つの所与のコンテキスト・モデルの複数のバイナリ・シンボルからの1つのバイナリ・シンボルの多重仮説確率を決定することであって、前記多重仮説確率は、前記1つのバイナリ・シンボルがバイナリ値に等しい確率を示す、前記決定することと、
前記符号化器によって、前記多重仮説確率に従って前記1つのバイナリ・シンボルを符号化することと、
を含む、方法。
【請求項10】
前記符号化器によって、第1の適応パラメータに従って前記1つのバイナリ・シンボルの第1の確率を決定することと、
前記符号化器によって、第2の適応パラメータに従って前記1つのバイナリ・シンボルの第2の確率を決定することと、
前記符号化器によって、前記適応重み、前記第1の確率、および前記第2の確率に従って、前記多重仮説確率を決定することと、
をさらに含む、請求項9に記載の方法。
【請求項11】
前記符号化器によって、重み初期化テーブル内の所定の整数の重み値のセットに従って前記適応重みを重み値として事前に決定すること
をさらに含む、請求項9に記載の方法。
【請求項12】
前記符号化器によって、各スライス・タイプの重み初期化テーブルを決定することと、
現在のスライスが第1のスライス・タイプであるとの決定に応答して、前記符号化器によって、前記第1のスライス・タイプに従って前記重み初期化テーブルを選択することであって、前記第1のスライス・タイプは、Iタイプ、Pタイプ、またはBタイプを含む、前記選択することと、
前記符号化器によって、選択された前記重み初期化テーブルに従って前記適応重みを決定することと、
をさらに含む、請求項9に記載の方法。
【請求項13】
前記符号化器によって、各スライスに対して重み初期化テーブルを選択するか否かを示すためのピクチャ・パラメータ・セット(PPS)内の制御構文要素をシグナリングすること
をさらに含む、請求項12に記載の方法。
【請求項14】
前記制御構文要素が有効化されているとの決定に応答して、前記符号化器によって、スライス・レベルで、各スライスに対して選択された重み初期化テーブルを示すための各スライスの適応重み構文要素をシグナリングすること
をさらに含む、請求項13に記載の方法。
【請求項15】
前記符号化器によって、各Iスライス用の第1の重み初期化テーブル、各Pスライス用の第2の重み初期化テーブル、および各Bスライス用の第3の重み初期化テーブルを決定することと、
現在のスライスがIスライスであるとの決定に応答して、前記符号化器によって、前記第1の重み初期化テーブルを選択することと、
前記現在のスライスがPスライスまたはBスライスであるとの決定に応答して、前記符号化器によって、前記第2の重み初期化テーブルまたは前記第3の重み初期化テーブルを選択することと、
前記符号化器によって、選択された前記重み初期化テーブルに従って前記適応重みを決定することと、
をさらに含む、請求項9に記載の方法。
【請求項16】
前記現在のスライスがIスライスでないとの決定に応答して、前記符号化器によって、各スライスに対して重み初期化テーブルを選択するか否かを示すためのピクチャ・パラメータ・セット(PPS)内の制御構文要素をシグナリングすることと、
前記制御構文要素が有効化されているとの決定に応答して、前記符号化器によって、スライス・レベルで、前記第2の重み初期化テーブルおよび前記第3の重み初期化テーブルから選択される重み初期化テーブルを示すための各非Iスライスの適応重み構文要素をシグナリングすることと、
をさらに含む、請求項15に記載の方法。
【請求項17】
ビデオ復号のための方法であって、
復号器によって、現在のスライスの前に符号化された1つまたは複数のスライスを選択することと、
前記復号器によって、前記現在のスライスの前に符号化された1つのスライスの1つまたは複数のコンテキスト・モデルのコンテキスト状態を継承することによって、前記現在のスライスの1つまたは複数のコンテキスト・モデルの初期コンテキスト状態を取得することと、
前記復号器によって、前記初期コンテキスト状態に従って前記現在のスライス内の前記1つまたは複数のコンテキスト・モデルに関連付けられたバイナリ・シンボルを復号することと、
を含む、方法。
【請求項18】
前記1つまたは複数のスライスは、前記現在のスライスの直前に符号化されたスライスを含む、請求項17に記載の方法。
【請求項19】
前記1つまたは複数のスライスは、前記現在のスライスの直前に符号化されていないスライスを含み、前記スライスは、
前記スライスが前記現在のスライスと同じスライス・タイプを有するという条件、
前記スライスが前記現在のスライスとの最小の量子化パラメータ(QP)の差を有するという条件、または、
前記スライスが前記現在のスライスと同じ時間レイヤを有するという条件、
のうちの少なくとも1つを満たす、請求項7に記載の方法。
【請求項20】
前記1つまたは複数の初期コンテキスト状態は、確率値、適応レート、または適応重みのパラメータのうちの少なくとも1つを含む、請求項17に記載の方法。
【請求項21】
前記復号器によって、1つまたは複数の既存のコンテキスト・ベース適応バイナリ算術符号化(CABAC)初期化テーブルに従って、前記現在のスライスの少なくとも1つの第2の初期コンテキスト状態を取得することであって、前記現在のスライスは、前記初期コンテキスト状態と、前記少なくとも1つの第2の初期コンテキスト状態とを含む、前記取得することと、
前記復号器によって、前記初期コンテキスト状態および前記少なくとも1つの第2の初期コンテキスト状態に従って、前記現在のスライス内の前記バイナリ・シンボルを復号することと、
をさらに含む、請求項17に記載の方法。
【請求項22】
ビデオ符号化のための方法であって、
符号化器によって、現在のスライスの前に符号化された1つまたは複数のスライスを選択することと、
前記符号化器によって、前記現在のスライスの前に符号化された1つのスライスから1つまたは複数のコンテキスト・モデルのコンテキスト状態を継承することによって、前記現在のスライスの前記1つまたは複数のコンテキスト・モデルの初期コンテキスト状態を決定することと、
前記符号化器によって、前記初期コンテキスト状態に従って前記現在のスライスの前記1つまたは複数のコンテキスト・モデルに関連付けられたバイナリ・シンボルを符号化することと、
を含む、方法。
【請求項23】
前記1つまたは複数のスライスは、前記現在のスライスの直前に符号化されたスライスを含む、請求項22に記載の方法。
【請求項24】
前記1つまたは複数のスライスは、前記現在のスライスの直前に符号化されていないスライスを含み、前記スライスは、
前記スライスが前記現在のスライスと同じスライス・タイプを有するという条件、
前記スライスが前記現在のスライスとの最小の量子化パラメータ(QP)の差を有するという条件、または、
前記スライスが前記現在のスライスと同じ時間レイヤを有するという条件、
のうちの少なくとも1つを満たす、請求項22に記載の方法。
【請求項25】
前記1つまたは複数の初期コンテキスト状態は、確率値、適応レート、または適応重みのパラメータのうちの少なくとも1つを含む、請求項22に記載の方法。
【請求項26】
前記符号化器によって、1つまたは複数の既存のコンテキスト・ベース適応バイナリ算術符号化(CABAC)初期化テーブルに従って、前記現在のスライスの少なくとも1つの第2の初期コンテキスト状態を決定することであって、前記現在のスライスは、前記初期コンテキスト状態と、前記少なくとも1つの第2の初期コンテキスト状態とを含む、前記決定することと、
前記符号化器によって、前記初期コンテキスト状態および前記少なくとも1つの第2の初期コンテキスト状態に従って、前記現在のスライス内の前記バイナリ・シンボルを符号化することと、
をさらに含む、請求項22に記載の方法。
【請求項27】
ビデオ復号のための装置であって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合され、前記1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されるメモリと、
を備え、
前記1つまたは複数のプロセッサは、前記命令の実行時に、請求項1~8および17~21のいずれか一項に記載の方法を実行するように構成される、装置。
【請求項28】
ビデオ符号化のための装置であって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合され、前記1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されるメモリと、
を備え、
前記1つまたは複数のプロセッサは、前記命令の実行時に、請求項9~16および22~26のいずれか一項に記載の方法を実行するように構成される、装置。
【請求項29】
1つまたは複数のコンピュータ・プロセッサによって実行された場合に、前記1つまたは複数のコンピュータ・プロセッサに、ビットストリームを受信させ、前記ビットストリームに基づいて請求項1~8および17~21のいずれかに記載の方法を実行させるコンピュータ実行可能命令を記憶するための非一時的コンピュータ可読記憶媒体。
【請求項30】
1つまたは複数のコンピュータ・プロセッサによって実行された場合に、前記1つまたは複数のコンピュータ・プロセッサに、請求項9~16および22~26のいずれかに記載の方法を実行させて、現在のビデオ・ブロックをビットストリームに符号化させ、前記ビットストリームを送信させるコンピュータ実行可能命令を記憶するための非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年12月29日に出願された「Methods and Devices on Probability Calculation for Context-Based Adaptive Binary Arithmetic Coding」と題された米国仮出願第63/294,692号に基づいて出願され、その優先権を主張し、その全体が引用によりあらゆる目的で組み込まれている。
【0002】
本開示は、ビデオ符号化および圧縮に関し、より詳細には、近年のビデオ・コーデックに使用されているエントロピー符号化方法であるコンテキスト・ベース適応バイナリ算術符号化(CABAC:context-based adaptive binary arithmetic coding)のための確率推定モジュールの精度を向上させる方法および装置に関するが、これらに限定されない。
【背景技術】
【0003】
ビデオ・データを圧縮するために様々なビデオ符号化技術が使用され得る。ビデオ符号化は1つまたは複数のビデオ符号化規格に従って実行される。たとえば、ビデオ符号化規格は、バーサタイル・ビデオ・コーディング(VVC:Versatile Video Coding)、高効率ビデオ符号化(H.265/HEVC:High Efficiency Video Coding)、高度ビデオ符号化(H.264/AVC:Advanced Video Coding)、動画像専門家グループ(MPEG:moving picture expert group)符号化などを含む。ビデオ符号化は一般に、ビデオ画像またはシーケンスに存在する冗長性を利用する予測方法(たとえば、インター予測、イントラ予測など)を利用する。ビデオ符号化技術の重要な目標は、ビデオ品質の低下を回避または最小化しながら、より低いビットレートを使用する形式にビデオ・データを圧縮することである。
【0004】
VVC規格の最初のバージョンは2020年7月に完成しており、前世代のビデオ符号化規格HEVCと比較して約50%のビットレートの節約または同等の知覚品質を提供する。VVC規格は、以前の規格よりも大幅な符号化の改善を提供するが、追加の符号化ツールを使用すると優れた符号化効率が実現され得るという証拠がある。最近、ITU-T VECGおよびISO/IEC MPEGの協力の下、共同ビデオ探索チーム(JVET:Joint Video Exploration Team)が、VVCを超える符号化効率の大幅な向上を可能にすることができる高度な技術の探索を開始した。2021年4月、将来のビデオ符号化探索作業のために、拡張圧縮モデル(ECM:Enhanced Compression Model)と呼ばれる1つのソフトウェア・コードベースが確立された。ECM参照ソフトウェアは、JVETによってVVC用に開発されたVVCテスト・モデル(VTM)に基づいており、いくつかの既存のモジュール(たとえば、イントラ/インター予測、変換、インループ・フィルタ(in-loop filter)など)がさらに拡張および/または改善されている。将来的には、VVC規格を超える任意の新しい符号化ツールは、ECMプラットフォームに統合され、JVETの共通テスト条件(CTC:common test condition)を使用してテストされる必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示は、CABACのための確率推定モジュールの精度の向上に関する技術の例を提供する。
【課題を解決するための手段】
【0006】
本開示の第1の態様によれば、ビデオ復号のための方法が提供される。この方法は、1つのバイナリ算術復号器が、適応重みに従って、バイナリ算術復号器の1つの所与のコンテキスト・モデル(context model)の1つのバイナリ・シンボルの多重仮説確率(multi-hypothesis probability)を取得し得、多重仮説確率が、1つのバイナリ・シンボルがバイナリ値に等しい確率を決定し得、1つのバイナリ・シンボルが、コンテキスト・モデルに関連付けられた複数のバイナリ・シンボルからのものである、ことを含む。さらに、復号器は、多重仮説確率に従って1つのバイナリ・シンボルを符号化し得る。また、復号器は、多重仮説確率に従って1つのバイナリ・シンボルを復号し得る。
【0007】
本開示の第2の態様によれば、ビデオ符号化のための方法が提供される。この方法は、1つのバイナリ算術符号化器が、適応重みに従って、バイナリ算術符号化器の1つの所与のコンテキスト・モデルの複数のバイナリ・シンボルからの1つのバイナリ・シンボルの多重仮説確率を決定し得、多重仮説確率が、1つのバイナリ・シンボルがバイナリ値に等しい確率を示す、ことを含む。さらに、符号化器は、多重仮説確率に従って1つのバイナリ・シンボルを符号化し得る。
【0008】
本開示の第3の態様によれば、ビデオ復号のための方法が提供される。この方法は、復号器が、現在のスライスの前に符号化された1つまたは複数のスライスを選択し、現在のスライスの前に符号化された1つのスライスの1つまたは複数のコンテキスト・モデルのコンテキスト状態を継承することによって、現在のスライスの1つまたは複数のコンテキスト・モデルの初期コンテキスト状態を取得し、初期コンテキスト状態に従って現在のスライス内の1つまたは複数のコンテキスト・モデルに関連付けられたバイナリ・シンボルを復号し得ることを含む。
【0009】
本開示の第4の態様によれば、ビデオ符号化のための方法が提供される。この方法は、符号化器が、現在のスライスの前に符号化された1つまたは複数のスライスを選択し、現在のスライスの前に符号化された1つのスライスから1つまたは複数のコンテキスト・モデルのコンテキスト状態を継承することによって、現在のスライスの1つまたは複数のコンテキスト・モデルの初期コンテキスト状態を決定し、初期コンテキスト状態に従って現在のスライスの1つまたは複数のコンテキスト・モデルに関連付けられたバイナリ・シンボルを符号化し得ることを含む。
【0010】
本開示の第5の態様によれば、ビデオ復号のための装置が提供される。この装置は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されるメモリと、を含み、1つまたは複数のプロセッサは、命令の実行時に、第1または第3の態様による方法を実行するように構成される。
【0011】
本開示の第6の態様によれば、ビデオ符号化のための装置が提供される。この装置は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されるメモリと、を含み、1つまたは複数のプロセッサは、命令の実行時に、第2または第4の態様による方法を実行するように構成される。
【0012】
本開示の第7の態様によれば、1つまたは複数のコンピュータ・プロセッサによって実行された場合に、1つまたは複数のコンピュータ・プロセッサに、ビットストリームを受信させ、ビットストリームに基づいて第1または第3の態様による方法を実行させるコンピュータ実行可能命令を記憶するための非一時的コンピュータ可読記憶媒体が提供される。
【0013】
本開示の第8の態様によれば、1つまたは複数のコンピュータ・プロセッサによって実行された場合に、1つまたは複数のコンピュータ・プロセッサに、第2または第4の態様による方法を実行させて、現在のビデオ・ブロックをビットストリームに符号化させ、ビットストリームを送信させるコンピュータ実行可能命令を記憶するための非一時的コンピュータ可読記憶媒体が提供される。
【0014】
添付の図面に示された特定の例を参照して、本開示の例のより具体的な説明が行われる。これらの図面が一部の例のみを示しており、したがって範囲を限定するものとは見なされないことを考慮して、添付の図面を使用してさらに具体的かつ詳細に例が記載および説明される。
【図面の簡単な説明】
【0015】
【
図1A】本開示のいくつかの例によるビデオ・ブロックを符号化および復号するためのシステムを示すブロック図である。
【
図1B】本開示のいくつかの例による符号化器のブロック図である。
【
図1C-1F】本開示のいくつかの例による、フレームが、異なるサイズおよび形状の複数のビデオ・ブロックにどのように再帰的に分割されるかを示すブロック図である。
【
図2】本開示のいくつかの例による復号器のブロック図である。
【
図3A】本開示のいくつかの例によるマルチ・タイプ・ツリー構造におけるブロック分割を示す図である。
【
図3B】本開示のいくつかの例によるマルチ・タイプ・ツリー構造におけるブロック分割を示す図である。
【
図3C】本開示のいくつかの例によるマルチ・タイプ・ツリー構造におけるブロック分割を示す図である。
【
図3D】本開示のいくつかの例によるマルチ・タイプ・ツリー構造におけるブロック分割を示す図である。
【
図3E】本開示のいくつかの例によるマルチ・タイプ・ツリー構造におけるブロック分割を示す図である。
【
図4】本開示のいくつかの例によるユーザ・インターフェースと結合されたコンピューティング環境を示す図である。
【
図5】本開示のいくつかの例によるビデオ復号のための方法を示すフローチャートである。
【
図6】本開示のいくつかの例による
図5に示されたビデオ復号のための方法に対応するビデオ符号化のための方法を示すフローチャートである。
【
図7】本開示のいくつかの例によるビデオ復号のための方法を示すフローチャートである。
【
図8】本開示のいくつかの例による
図7に示されたビデオ復号のための方法に対応するビデオ符号化のための方法を示すフローチャートである。
【発明を実施するための形態】
【0016】
特定の実装への参照がここで詳細に行われ、その例が添付の図面に示されている。以下の詳細な説明では、本明細書に提示される主題の理解を助けるために、多数の非限定的な特定の詳細が示されている。しかしながら、様々な代替例が使用され得ることは当業者には明らかであろう。たとえば、本明細書で提示される主題が、デジタルビデオ機能を有する多くのタイプの電子デバイスで実施されることが可能であるということは当業者には明らかであろう。
【0017】
本開示で使用される用語は、特定の実施形態を説明する目的でのみ採用されており、本開示を限定することが意図されていない。本開示および添付の特許請求の範囲における単数形の「a/an」、「said」、および「the」は、本開示全体を通じて他の意味が明確に示されていない限り、複数形も含むものとする。本開示で使用される「および/または」という用語は、列挙された複数の関連項目のうちの1つまたはいずれかあるいは全ての可能な組み合わせを指し、これらを含むことも理解されたい。
【0018】
「一実施形態(one embodiment)」、「一実施形態(an embodiment)」、「一例(an example)」、「いくつかの実施形態(some embodiments)」、「いくつかの例(some examples)」、または同様の文言への本明細書全体での言及は、記載された特定の特徴、構造、または特性が少なくとも1つの実施形態または例に含まれることを意味する。1つまたはいくつかの実施形態に関連して説明される特徴、構造、要素、または特性は、特に明記されない限り、他の実施形態にも適用可能である。
【0019】
本開示全体を通じて、「第1」、「第2」、「第3」などの用語は全て、特に明記されない限り、空間的または時系列順序を暗示することなく、たとえば、デバイス、コンポーネント、組成物、ステップなどの関連する要素を参照するためだけの命名法として使用されている。たとえば、「第1のデバイス」および「第2のデバイス」は、別々に形成された2つのデバイス、または同一のデバイスの2つの部分、コンポーネントもしくは動作状態を指し得、任意に命名され得る。
【0020】
「モジュール」、「サブモジュール」、「回路(circuit)」、「サブ回路(sub-circuit)」、「回路(circuitry)」、「サブ回路(sub-circuitry)」、「ユニット」、または「サブユニット」という用語は、1つまたは複数のプロセッサで実行されることが可能なコードまたは命令を記憶するメモリ(共有、専用、またはグループ)を含み得る。モジュールは、記憶されたコードまたは命令を含むまたは含まない1つまたは複数の回路を含み得る。モジュールまたは回路は、直接または間接的に接続された1つまたは複数のコンポーネントを含み得る。これらのコンポーネントは、互いに物理的に取り付けられているか、または隣接して配置されていてもよく、そうでなくてもよい。
【0021】
本明細書で使用する場合、「~場合(if)」または「~とき(when)」という用語は、文脈に応じて「~すると(upon)」または「~に応答して(in response to)」を意味すると理解され得る。これらの用語は、請求項に登場する場合、関連する制限または特徴が条件付きまたは任意選択であることを示さない場合がある。たとえば、方法は、i)条件Xが存在するときまたは場合に、機能またはアクションX’が実行されるステップと、ii)条件Yが存在するときまたは場合に、機能またはアクションY’が実行されるステップと、を含み得る。この方法は、機能またはアクションX’を実行する能力と、機能またはアクションY’を実行する能力との両方を有して実施され得る。したがって、機能X’およびY’は、この方法の複数回の実行時に、その時々において、両方とも実行され得る。
【0022】
ユニットまたはモジュールは、純粋にソフトウェアによって、純粋にハードウェアによって、またはハードウェアとソフトウェアとの組み合わせによって実装され得る。純粋なソフトウェア実装では、たとえば、ユニットまたはモジュールは、特定の機能を実行するために直接的または間接的に相互にリンクされた機能的に関連するコード・ブロックまたはソフトウェア・コンポーネントを含み得る。
【0023】
図1Aは、本開示のいくつかの実装による、並行してビデオ・ブロックを符号化および復号するための例示的なシステム10を示すブロック図である。
図1Aに示されるように、システム10は、デスティネーション・デバイス14によって後で復号されるビデオ・データを生成および符号化するソース・デバイス12を含む。ソース・デバイス12およびデスティネーション・デバイス14は、デスクトップまたはラップトップ・コンピュータ、タブレット・コンピュータ、スマート・フォン、セット・トップ・ボックス、デジタル・テレビ、カメラ、表示デバイス、デジタル・メディア・プレーヤー、ビデオ・ゲーム・コンソール、ビデオ・ストリーミング・デバイスなどを含む多種多様な電子デバイスのいずれかを含み得る。いくつかの実装では、ソース・デバイス12およびデスティネーション・デバイス14には無線通信機能が搭載される。
【0024】
いくつかの実装では、デスティネーション・デバイス14は、リンク16を介して、復号されるべき符号化されたビデオ・データを受信し得る。リンク16は、符号化されたビデオ・データをソース・デバイス12からデスティネーション・デバイス14に移動することが可能な任意のタイプの通信媒体またはデバイスを含み得る。一例では、リンク16は、ソース・デバイス12が符号化されたビデオ・データをリアルタイムにデスティネーション・デバイス14に直接送信することを可能にするための通信媒体を含み得る。符号化されたビデオ・データは、無線通信プロトコルなどの通信規格に従って変調され、デスティネーション・デバイス14に送信され得る。通信媒体は、たとえば、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線など、任意の無線または有線通信媒体を含み得る。通信媒体は、パケットベースのネットワーク、たとえば、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはグローバル・ネットワーク、たとえば、インターネットなどの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソース・デバイス12からデスティネーション・デバイス14への通信を容易にするのに有用であり得る他の任意の機器を含み得る。
【0025】
いくつかの他の実装態様では、符号化済みビデオ・データは、出力インターフェース22から記憶デバイス32に送信され得る。その後、記憶デバイス32内の符号化されたビデオ・データは、デスティネーション・デバイス14によって入力インターフェース28を介してアクセスされ得る。記憶デバイス32は、ハード・ドライブ、ブルーレイ・ディスク、デジタル・バーサタイル・ディスク(DVD)、コンパクト・ディスク読み取り専用メモリ(CD-ROM)、フラッシュ・メモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオ・データを記憶するための他の任意の適切なデジタル記憶媒体などの、多様な分散型(distributed)のまたは局所(locally)アクセス型のデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイス32は、ソース・デバイス12によって生成された符号化されたビデオ・データを保持し得るファイル・サーバまたは他の中間記憶デバイスに対応し得る。デスティネーション・デバイス14は、ストリーミングまたはダウンロードにより、記憶デバイス32から記憶されたビデオ・データにアクセスし得る。ファイル・サーバは、符号化されたビデオ・データを記憶し、符号化されたビデオ・データをデスティネーション・デバイス14に送信することが可能な任意のタイプのコンピュータであり得る。例示的なファイル・サーバは、ウェブ・サーバ(たとえば、ウェブサイト用)、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカル・ディスク・ドライブを含む。デスティネーション・デバイス14は、ファイル・サーバに記憶されている符号化されたビデオ・データにアクセスするのに適した、無線チャネル(たとえば、ワイヤレス・フィデリティ(Wi-Fi)接続)、有線接続(たとえば、デジタル加入者線(DSL:Digital Subscriber Line)、ケーブルモデムなど)、または両方の組み合わせを含む、任意の標準的なデータ接続を介して符号化されたビデオ・データにアクセスし得る。記憶デバイス32からの符号化されたビデオ・データの送信は、ストリーミング送信、ダウンロード送信、または両方の組み合わせであり得る。
【0026】
図1Aに示されるように、ソース・デバイス12は、ビデオ・ソース18、ビデオ符号化器20、および出力インターフェース22を含む。ビデオ・ソース18は、たとえば、ビデオ・カメラのビデオ・キャプチャ・デバイス、キャプチャ済みのビデオを含むビデオ・アーカイブ、ビデオ・コンテンツ・プロバイダからビデオを受信するためのビデオ・フィード・インターフェース、および/またはコンピュータ・グラフィックス・データをソース・ビデオとして生成するためのコンピュータ・グラフィックス・システム、あるいはそのようなソースの組み合わせなどのソースを含み得る。一例として、ビデオ・ソース18がセキュリティ監視システムのビデオ・カメラである場合、ソース・デバイス12およびデスティネーション・デバイス14はカメラ付き電話またはビデオ電話を形成し得る。しかしながら、本出願で説明される実装は、一般にビデオ符号化に適用可能であり得、無線および/または有線アプリケーションに適用され得る。
【0027】
キャプチャされたビデオ、事前にキャプチャされたビデオ、またはコンピュータ生成されたビデオが、ビデオ符号化器20によって符号化され得る。符号化されたビデオ・データは、ソース・デバイス12の出力インターフェース22を介してデスティネーション・デバイス14に直接送信され得る。符号化されたビデオ・データはさらに(または代わりに)、復号および/または再生のために、デスティネーション・デバイス14または他のデバイスによって後でアクセスできるように、記憶デバイス32に記憶され得る。出力インターフェース22は、モデムおよび/または送信機をさらに含み得る。
【0028】
デスティネーション・デバイス14は、入力インターフェース28、ビデオ復号器30、および表示デバイス34を含む。入力インターフェース28は、受信機および/またはモデムを含み、リンク16を介して符号化されたビデオ・データを受信し得る。リンク16を介して伝達される、または記憶デバイス32上に提供される符号化されたビデオ・データは、ビデオ・データを復号する際にビデオ復号器30によって使用されるために、ビデオ符号化器20によって生成される多様な構文要素(syntax element)を含み得る。そのような構文要素は、通信媒体上で伝送される、記憶媒体上に記憶される、またはファイル・サーバ上に記憶される、符号化されたビデオ・データ内に含まれ得る。
【0029】
いくつかの実装では、デスティネーション・デバイス14は、一体化された表示デバイス、およびデスティネーション・デバイス14と通信するように構成される外部表示デバイスとすることができる表示デバイス34を含み得る。表示デバイス34は、復号されたビデオ・データをユーザに表示し、液晶ディスプレイ(LCD)、プラズマ・ディスプレイ、有機発光ダイオード(OLED:Organic Light Emitting Diode)ディスプレイ、または他のタイプの表示デバイスなどの多様な表示デバイスのいずれかを含み得る。
【0030】
ビデオ符号化器20およびビデオ復号器30は、独自規格または業界標準、たとえば、VVC、HEVC、MPEG-4、パート10、AVC、またはそのような規格の拡張に従って動作し得る。本出願は特定のビデオ符号化/復号規格に限定されず、他のビデオ符号化/復号規格にも適用可能であり得ることを理解されたい。一般に、ソース・デバイス12のビデオ符号化器20は、これらの現在または将来の規格のいずれかに従ってビデオ・データを符号化するように構成され得ることが考えられる。同様に、デスティネーション・デバイス14のビデオ復号器30は、これらの現在または将来の規格のいずれかに従ってビデオ・データを復号するように構成され得ることも一般に考えられる。
【0031】
ビデオ符号化器20およびビデオ復号器30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリート・ロジック、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせなどの多様な適切な符号化器および/または復号器回路のいずれかとして実装され得る。ソフトウェアで部分的に実装される場合、電子デバイスは、ソフトウェアの命令を適切な非一時的コンピュータ可読媒体に記憶し、1つまたは複数のプロセッサを使用してハードウェアで命令を実行して、本開示で開示されるビデオ符号化/復号動作を実行し得る。ビデオ符号化器20およびビデオ復号器30のそれぞれは、1つまたは複数の符号化器または復号器に含まれ得、そのいずれもが、符号化器/復号器の組み合わせ(CODEC:combined encoder/decoder)の一部としてそれぞれのデバイスに統合され得る。
【0032】
HEVCと同様に、VVCはブロック・ベースのハイブリッド・ビデオ符号化フレームワークに基づいて構築されている。
図1Bは、本開示のいくつかの実装によるブロック・ベースのビデオ符号化器を示すブロック図である。符号化器100において、入力ビデオ信号は、符号化ユニット(CU:coding unit)と呼ばれるブロックごとに処理される。符号化器100は、
図1Aに示されるビデオ符号化器20であり得る。VTM-1.0では、CUは最大128x128ピクセルとすることができる。しかしながら、4分木のみに基づいてブロックを分割するHEVCとは異なり、VVCでは、1つの符号化ツリー・ユニット(CTU:coding tree unit)が4分木/2分木/3分木に基づいて様々な局所特性に適応するようにCUに分割される。さらに、HEVCにおける複数の分割ユニット・タイプの概念が排除され、すなわち、CU、予測ユニット(PU:prediction unit)、および変換ユニット(TU:transform unit)の分離は、VVCにはもはや存在せず、代わりに、各CUが常に、さらなる分割なく、予測および変換の両方の基本単位として使用される。マルチ・タイプ・ツリー構造では、まず、1つのCTUが4分木構造により分割される。次に、各4分木リーフ・ノードは、2分木構造および3分木構造によってさらに分割されることができる。
【0033】
図3A~
図3Eは、本開示のいくつかの実装によるマルチ・タイプ・ツリー分割モードを示す概略図である。
図3A~
図3Eはそれぞれ、4分割(
図3A)、垂直2分割(
図3B)、水平2分割(
図3C)、垂直3分割(
図3D)、および水平3分割(
図3E)を含む5つの分割タイプを示している。
【0034】
所与のビデオ・ブロックごとに、空間予測および/または時間予測が実行され得る。空間予測(または「イントラ予測」)は、同じビデオ・ピクチャ/スライス内のすでに符号化された近傍ブロック(これらは参照サンプルと呼ばれる)のサンプルからのピクセルを使用して現在のビデオ・ブロックを予測する。空間予測はビデオ信号に内在する空間的冗長性を低減する。時間予測(「インター予測」または「動き補償予測」とも呼ばれる)は、すでに符号化されたビデオ・ピクチャからの再構成されたピクセルを使用して現在のビデオ・ブロックを予測する。時間予測はビデオ信号に内在する時間的冗長性を低減する。所与のCUの時間予測信号は通常、現在のCUとその時間参照との間の動きの量および方向を示す1つまたは複数の動きベクトル(MV:motion vector)によってシグナリングされる。また、複数の参照ピクチャがサポートされている場合、1つの参照ピクチャ・インデックスが追加で送られ、これは時間予測信号が参照ピクチャ・ストア内のどの参照ピクチャのものであるかを識別するために使用される。
【0035】
空間予測および/または時間予測の後、符号化器100内のイントラ/インター・モード決定回路121は、たとえばレート歪み最適化方法に基づいて、最良の予測モードを選ぶ。次いで、ブロック予測子(block predictor)120が現在のビデオ・ブロックから減算され、その結果得られた予測残差は変換回路102および量子化回路104を使用して無相関化される。その結果得られた量子化された残差係数は、逆量子化回路116によって逆量子化され、逆変換回路118によって逆変換されて、再構成された残差を形成し、これは次いで予測ブロックに再び加算されて、CUの再構成された信号を形成する。さらに、デブロッキング・フィルタ、サンプル適応オフセット(SAO:sample adaptive offset)、および/または適応インループ・フィルタ(ALF:adaptive in-loop filter)などのインループ・フィルタリング115が、再構成されたCUに適用され得、その後ピクチャ・バッファ117の参照ピクチャ・ストアに入れられ、将来のビデオ・ブロックを符号化するために使用される。出力ビデオ・ビットストリーム114を形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数は全てエントロピー符号化ユニット106に送られてさらに圧縮され、パックされてビットストリームを形成する。
【0036】
たとえば、AVC、HEVC、ならびにVVCの最新バージョンではデブロッキング・フィルタが利用可能である。HEVCでは、符号化効率をさらに向上させるために、SAOと呼ばれる追加のインループ・フィルタが定義されている。VVC規格の最新バージョンでは、ALFと呼ばれるさらに他のインループ・フィルタが積極的に研究されており、最終的な規格に含まれる十分な可能性を有している。
【0037】
これらのインループ・フィルタ操作は任意選択である。これらの操作を実行することは、符号化効率および視覚品質を向上させるのに役立つ。それらはまた、計算の複雑さを省くために符号化器100によって行われる決定としてオフにされ得る。
【0038】
イントラ予測は通常、フィルタリングされていない再構成されたピクセルに基づき、インター予測は、これらのフィルタ・オプションが符号化器100によってオンにされている場合、フィルタリングされた再構成されたピクセルに基づくことに留意されたい。
【0039】
図2は、多くのビデオ符号化規格と併せて使用され得るブロック・ベースのビデオ復号器200を示すブロック図である。この復号器200は、
図1Bの符号化器100に存在する再構成関連部分と同様である。ブロック・ベースのビデオ復号器200は、
図1Aに示されるビデオ復号器30であり得る。復号器200では、入来したビデオ・ビットストリーム201は最初にエントロピー復号202によって復号されて、量子化された係数レベルおよび予測関連情報を導出する。次いで、量子化された係数レベルは逆量子化204および逆変換206によって処理されて、再構成された予測残差を取得する。イントラ/インター・モード・セレクタ212に実装されたブロック予測メカニズムは、復号された予測情報に基づいてイントラ予測208または動き補償210のいずれかを実行するように構成される。総和器(summer)214を使用して逆変換206からの再構成された予測残差と、ブロック予測メカニズムによって生成された予測出力との総和をとることによって、フィルタリングされていない再構成されたピクセルのセットが取得される。
【0040】
再構成されたブロックはさらにインループ・フィルタ209を経由し得、その後、参照ピクチャ・ストアとして機能するピクチャ・バッファ213に記憶される。ピクチャ・バッファ213内の再構成されたビデオは、ディスプレイ・デバイスを駆動するために送出される共に、将来のビデオ・ブロックを予測するために使用され得る。インループ・フィルタ209がオンにされている状況では、これらの再構成されたピクセルにフィルタリング操作が実行されて、最終的な再構成されたビデオ出力222を導出する。
【0041】
現在のVVCおよびAVS3規格では、現在の符号化ブロックの動き情報は、マージ候補インデックスによって指定される空間的または時間的な近傍のブロックからコピーされるか、あるいは動き推定の明示的なシグナリングによって取得される。本開示の焦点は、アフィン・マージ候補の導出方法を改善することによって、アフィン・マージ・モードの動きベクトルの精度を向上させることである。本開示の説明を容易にするために、VVC規格における既存のアフィン・マージ・モード設計が、提案されたアイデアを説明するための例として使用される。VVC規格における既存のアフィン・モード設計が本開示全体を通して例として使用されるが、最新のビデオ符号化技術の当業者にとって、提案された技術は、異なる設計のアフィン動き予測モード、あるいは同じまたは類似の設計思想を有する他の符号化ツールにも適用され得ることに留意されたい。
【0042】
典型的なビデオ符号化プロセスでは、ビデオ・シーケンスは、典型的には、順序付けられたフレームまたはピクチャのセットを含む。各フレームは、SL、SCb、およびSCrと表される3つのサンプル配列を含み得る。SLはルマ・サンプル(luma sample)の2次元配列である。SCbはCbクロマ・サンプル(chroma sample)の2次元配列である。SCrはCrクロマ・サンプルの2次元配列である。他の例では、フレームはモノクロであり得、したがって、ルマ・サンプルのただ1つの2次元配列を含む。
【0043】
図1Cに示されるように、ビデオ符号化器20(またはより詳細には、ビデオ符号化器20の予測処理ユニット内の分割ユニット)は、最初にフレームをCTUのセットに分割することによって、フレームの符号化された表現を生成する。ビデオ・フレームは、ラスタ・スキャン順序で左から右および上から下に連続して並べられた整数個のCTUを含み得る。各CTUは最大の論理的な符号化ユニットであり、ビデオ・シーケンス内の全てのCTUが、128×128、64×64、32×32、および16×16のうちの1つである同じサイズを有するように、CTUの幅および高さがシーケンス・パラメータ・セットでビデオ符号化器20によってシグナリングされる。しかしながら、本出願は必ずしも特定のサイズに限定されないことに留意されたい。
図1Dに示されるように、各CTUは、ルマ・サンプルの1つのCTBと、クロマ・サンプルの2つの対応する符号化ツリー・ブロックと、符号化ツリー・ブロックのサンプルを符号化するために使用される構文要素とを含み得る。構文要素は、符号化されたピクセルのブロックの様々なタイプのユニットのプロパティと、インター予測またはイントラ予測、イントラ予測モード、動きベクトル、および他のパラメータを含めて、ビデオ復号器30でビデオ・シーケンスがどのように再構成され得るかと、を記述する。モノクロ・ピクチャまたは3つの別個のカラー・プレーンを有するピクチャでは、CTUは、単一の符号化ツリー・ブロックと、その符号化ツリー・ブロックのサンプルを符号化するために使用される構文要素とを含み得る。符号化ツリー・ブロックは、N×Nのサンプルのブロックであり得る。
【0044】
より良いパフォーマンスを達成するために、ビデオ符号化器20は、CTUの符号化ツリー・ブロックに対して、2分木分割、3分木分割、4分木分割、またはそれらの組み合わせなどのツリー分割を再帰的に実行し、CTUをより小さなCUに分割し得る。
図1Eに示されるように、64×64のCTU400はまず、それぞれが32×32のブロック・サイズを有する4つのより小さいCUに分割される。4つのより小さいCUのうち、CU410およびCU420はそれぞれ、16×16のブロック・サイズの4つのCUに分割される。2つの16×16のCU430および440はそれぞれ、8×8のブロック・サイズの4つのCUにさらに分割される。
図1Fは、
図1Eに示されたCTU400の分割プロセスの最終結果を示す4分木データ構造を示しており、4分木の各リーフ・ノードは、32×32から8×8までの範囲のそれぞれのサイズの1つのCUに対応する。
図1Dに示されたCTUと同様に、各CUは、同じサイズのフレームのルマ・サンプルのCBおよびクロマ・サンプルの2つの対応する符号化ブロックと、符号化ブロックのサンプルを符号化するために使用される構文要素とを含み得る。モノクロ・ピクチャまたは3つの別個のカラー・プレーンを有するピクチャでは、CUは、単一の符号化ブロックと、その符号化ブロックのサンプルを符号化するために使用されるシンタックス構造とを含み得る。
図1E~
図1Fに示された4分木分割は例示のみを目的としており、1つのCTUは、4分木/3分木/2分木分割に基づいて様々な局所特性に適応するようにCUに分割され得ることに留意されたい。マルチ・タイプ・ツリー構造では、1つのCTUが4分木構造によって分割され、各4分木リーフCUはさらに2分木構造および3分木構造によって分割されることができる。
図3A~
図3Eに示されるように、幅Wおよび高さHを有する符号化ブロックの可能な分割タイプは5つあり、すなわち、4分割、水平2分割、垂直2分割、水平3分割、および垂直3分割である。
【0045】
いくつかの実装では、ビデオ符号化器20は、CUの符号化ブロックを1つまたは複数のM×NのPBにさらに分割し得る。PBは、インターまたはイントラの同じ予測が適用されるサンプルの長方形(正方形または非正方形)のブロックである。CUのPUは、ルマ・サンプルのPBと、クロマ・サンプルの2つの対応するPBと、PBを予測するために使用される構文要素とを含み得る。モノクロ・ピクチャまたは3つの別個のカラー・プレーンを有するピクチャでは、PUは、単一のPBと、そのPBを予測するために使用されるシンタックス構造とを含み得る。ビデオ符号化器20は、CUの各PUのルマ、Cb、およびCrのPBに対する予測ルマ、Cb、およびCrブロックを生成し得る。
【0046】
ビデオ符号化器20は、PUの予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオ符号化器20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオ符号化器20は、PUに関連付けられたフレームの復号済みのサンプルに基づいてPUの予測ブロックを生成し得る。ビデオ符号化器20がPUの予測ブロックを生成するためにインター予測を使用する場合、ビデオ符号化器20は、PUに関連付けられたフレーム以外の1つまたは複数のフレームの復号済みのサンプルに基づいてPUの予測ブロックを生成し得る。
【0047】
ビデオ符号化器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符号化ブロック内の対応するサンプルとの差を示し得る。
【0048】
さらに、
図1Eに示されるように、ビデオ符号化器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は、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを含み得る。
【0049】
ビデオ符号化器20は、TUのルマ変換ブロックに1つまたは複数の変換を適用して、TUのルマ係数ブロックを生成し得る。係数ブロックは、変換係数の2次元配列であり得る。変換係数はスカラー量であり得る。ビデオ符号化器20は、TUのCb変換ブロックに1つまたは複数の変換を適用して、TUのCb係数ブロックを生成し得る。ビデオ符号化器20は、TUのCr変換ブロックに1つまたは複数の変換を適用して、TUのCr係数ブロックを生成し得る。
【0050】
係数ブロック(たとえば、ルマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、ビデオ符号化器20は、係数ブロックを量子化し得る。量子化は一般に、変換係数を表現するために使用されるデータ量を極力削減してさらなる圧縮を実現するために、変換係数が量子化されるプロセスを指す。ビデオ符号化器20が係数ブロックを量子化した後、ビデオ符号化器20は量子化された変換係数を示す構文要素をエントロピー符号化し得る。たとえば、ビデオ符号化器20は、量子化された変換係数を示す構文要素に対してCABACを実行し得る。最後に、ビデオ符号化器20は、符号化されたフレームおよび関連データの表現を形成するビットのシーケンスを含むビットストリームを出力し得、これは記憶デバイス32に保存されるか、またはデスティネーション・デバイス14に送信される。
【0051】
ビデオ復号器30は、ビデオ符号化器20によって生成されたビットストリームを受信した後、ビットストリームをパースして、ビットストリームから構文要素を取得し得る。ビデオ復号器30は、ビットストリームから取得された構文要素に少なくとも部分的に基づいてビデオ・データのフレームを再構成し得る。ビデオ・データを再構成するプロセスは、一般に、ビデオ符号化器20によって実行される符号化プロセスと相反的である。たとえば、ビデオ復号器30は、現在のCUのTUに関連付けられた係数ブロックに逆変換を実行して、現在のCUのTUに関連付けられた残差ブロックを再構成し得る。また、ビデオ復号器30は、現在のCUのPUの予測ブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに加算することによって、現在のCUの符号化ブロックを再構成する。フレームの各CUについて符号化ブロックを再構成した後、ビデオ復号器30はフレームを再構成し得る。
【0052】
上記で述べられたように、ビデオ符号化は主に2つのモード、すなわち、フレーム内予測(またはイントラ予測)とフレーム間予測(またはインター予測)とを使用してビデオ圧縮を実現する。IBCはフレーム内予測または第3のモードと見なされ得ることに留意されたい。2つのモードの間では、フレーム間予測はフレーム内予測よりも符号化効率により貢献し、その理由は、動きベクトルを使用して参照ビデオ・ブロックから現在のビデオ・ブロックを予測するためである。
【0053】
しかしながら、ビデオ・データ・キャプチャ技術が日々進歩し、ビデオ・データの詳細を保存するためにビデオ・ブロック・サイズがより精細化されているので、現在のフレームの動きベクトルを表現するために必要なデータ量も大幅に増加している。この課題を克服する1つの方法は、空間領域と時間領域との両方での近傍のCUのグループが予測のための類似のビデオ・データを有しているだけでなく、これらの近傍のCU間の動きベクトルも類似していることから恩恵を受けることである。したがって、空間的な近傍のCUおよび/または時間的に同位置のCUの動き情報を、それらの空間的および時間的相関を調べることによって、現在のCUの動き情報(たとえば、動きベクトル)の近似として使用することが可能であり、これは現在のCUの「動きベクトル予測子(MVP:Motion Vector Predictor)」とも呼ばれる。
【0054】
図1Bに関連して上述されたように、動き推定ユニットによって決定された現在のCUの実際の動きベクトルをビデオ・ビットストリームに符号化する代わりに、現在のCUの動きベクトル予測子が現在のCUの実際の動きベクトルから減算されて、現在のCUの動きベクトル差分(MVD:Motion Vector Difference)が生成される。そうすることで、フレームの各CUについて動き推定ユニットによって決定された動きベクトルをビデオ・ビットストリームに符号化する必要がなくなり、ビデオ・ビットストリーム内の動き情報を表現するために使用されるデータ量が大幅に削減されることができる。
【0055】
符号ブロックのフレーム間予測中に参照フレーム内の予測ブロックを選ぶプロセスと同様に、現在のCUの空間的な近傍のCUおよび/または時間的に同位置のCUに関連付けられた潜在的な候補動きベクトルを使用して、現在のCUに対する動きベクトル候補リスト(別名、「マージ・リスト」)を構築し、次いで、動きベクトル候補リストから1つのメンバーを現在のCUの動きベクトル予測子として選択するためのルールのセットがビデオ符号化器20およびビデオ復号器30の両方によって選ばれる必要がある。そうすることで、動きベクトル候補リスト自体をビデオ符号化器20からビデオ復号器30に送信する必要がなくなり、ビデオ符号化器20およびビデオ復号器30が動きベクトル候補リスト内の同じ動きベクトル予測子を使用して現在のCUを符号化および復号するには、動きベクトル候補リスト内の選択された動きベクトル予測子のインデックスで十分である。
【0056】
本開示の主な目的は、ハイブリッド・ビデオ符号化フレームワークで使用されるCABAC技術の効率を高めることである。具体的には、ビデオ信号を圧縮するときに生成される構文要素のバイナリ・シンボル(別名、略してビン(bin))の系列の確率推定の精度を高めるためのいくつかの改善が提案される。以下では、AVC、HEVC、およびVVCなどの最新のビデオ符号化規格で適用されている既存のCABAC技術の詳細な分析が最初に提供される。次に、既存のCABAC設計のいくつかの欠陥/制限が論じられる。その後、確率推定の精度を高めることを通じてCABAC効率を向上させるための方法が提案される。
【0057】
AVCおよびHEVCにおけるCABACの確率推定技術
CABACは元々H.264/AVC規格において、2つのサポートされているエントロピー符号化スキームのうちの1つとして導入された。CABACでは、算術符号化は、符号語マッピング(別名、バイナリ化)と確率推定との2つのモジュールで構成される。符号語マッピングのプロセスでは、構文要素がビンの列にマッピングされる。マッピングは、様々なバイナリ化スキームに基づいて構文要素をいくつかのビンのグループに変換する、いわゆるバイナライザによって実現される。実際には、固定長符号、単進符号、切り捨て単進符号(truncated unary code)、およびk次指数ゴロム符号などの様々なバイナリ化スキームがそのような変換に適用され得る。確率推定モジュールの目的は、1つのビンが1または0の値を有する尤度を決定することである。AVCでは、ビンの確率は指数エージング・モデル(exponential aging model)に基づいて計算され、このモデルでは、1つの現在のビンが1または0に等しい確率は、符号化済みの以前のビンの値に依存する。さらに、一般的なデータ統計によれば、1つの現在のビンの直前のビンの影響は、大抵、ずっと前に符号化されたビンよりも大きい。これを考慮して、CABACでは、現在のビンの確率を推定するために使用される符号化済みのビンの数Nを制御する1つのパラメータαが導入され、すなわち、N=1/αである。このパラメータは、符号化されたビンの増加と共に確率が更新される適応速度に転換される。具体的には、適応パラメータαを使用して、1つのビンが劣勢確率シンボル(LPS:least probable symbol)である確率が次のように再帰的に計算され、
p(t+1)=p(t)・(1-α)+x(t)・α (1)
ここで、p(t)は瞬間tにおけるLPSシンボルの確率であり、p(t+1)は瞬間t+1におけるLPSシンボルの更新された確率であり、x(t)は、現在のビンがLPSシンボルである場合は1に等しく、現在のビンが優勢確率シンボル(MPS:most probable symbol)である場合は0に等しい。AVCおよびHEVCのCABACエンジンでは、この確率は、(1)に従ってα≒1/19.69の固定値で各構文要素に対して独立して更新され、すなわち、1つの現在のビンの確率を推定するときに、約19.69個の符号化済みのビンが考慮される。さらに、確率推定中の乗算を回避するために、実数であって0から1までの範囲にある式(1)の確率p(t)は、固定の確率状態のセットに量子化される。たとえば、AVCとHEVCとの両方で、確率は7ビットの精度を有し、これは128個の確率状態に対応する。
【0058】
AVCおよびHEVCでは、ビデオ・ビットストリームは通常、1つまたは複数の独立して復号可能なスライスで構成される。各スライスの開始時に、全てのコンテキストの確率がいくつかの事前定義された値に初期化される。理論的には、1つの所与のコンテキストの統計的性質が分かっている場合、一様分布(すなわち、pinit=0.5)を使用してコンテキストの確率を初期化する必要がある。しかしながら、1つのコンテキストの確率をそれに対応する統計分布に迅速に追いつかせるために、各コンテキストにいくつかの適切な初期確率値(これは等確率でない場合がある)を提供すると有益であることが分かっている。具体的には、AVCおよびHEVCでは、1つのスライスの初期QP SliceQPYが与えられると、1つのコンテキストの初期確率状態InitProbStateが次のように計算され、
m=SlopeIdx・5-45
n=(OffsetIdx<<3)-16
InitProbState=Clip3(1,127,(m・SliceQPY)>>4+n) (2)
ここで、SlopeIdxおよびOffsetIdx(どちらも0~15の範囲内)は2つの初期化パラメータであり、これらは、1つのコンテキストの初期確率を計算するためのルック・アップ・テーブル(LUT)として事前定義され、記憶される。式(2)に示されるように、初期確率状態は、(m>>4)に等しい傾きと、nに等しいオフセットとを有するスライスQPの線形関数によってモデル化される。
【0059】
VVCにおけるCABACの確率推定技術
VVCで適用される確率推定モジュールは、AVCおよびHEVCのものとほぼ同じに保たれているが、次の重要な違いを除き、まず、VVCはコンテキストごとに2つの確率推定値を保持し、それぞれが式(1)において独自の確率適応レートαを有する。算術符号化に実際に使用される最終的な確率は、2つの推定値の平均であり、第2に、VVCでは、複数の確率LUTが事前定義され、1つのスライスの異なるコンテキストの確率を初期化するために使用される。一方、AVCおよびHEVCと同様に、確率の初期推定値は、スライスQPを入力とする1つの線形モデルに基づいて構築される。しかしながら、VVCでは、導出された値は実際の確率値を表し、AVC/HEVCでは、確率状態のインデックスを表す。
【0060】
多重仮説確率推定
全ての構文要素に対して1つの固定の適応パラメータを使用することは、それらの統計的特性が異なるため最適ではない場合があることは明らかである。一方、複数の確率推定量を使用すると、単一の推定量と比較してより高い推定精度が達成され得ることがいくつかの科学研究で分かっている。そのため、確率適応の低い速度および高い速度に対応する2つの異なる適応パラメータα0およびα1が利用される1つの多重仮説確率推定スキームがVVCのCABAC設計において適用されている。このように、2つの適応パラメータを使用して、ビンごとに2つの異なる確率が計算されることができ、次いでこれらを平均してビンの最終確率が生成され、すなわち、
p0(t+1)=p0(t)・(1-α0)+x(t)・α0
p1(t+1)=p1(t)・(1-α1)+x(t)・α1
p(t+1)=(p0(t+1)+p1(t+1))/2 (3)
ここで、α0およびα1は、2つの確率仮説に関連付けられた2つの適応パラメータである。VVCでは、α0およびα1の値は、適応パラメータならびに初期確率を合同で最適化するように設計された1つのトレーニング・アルゴリズムを使用して、コンテキストごとに独立して選択される。具体的には、現在の設計によれば、各コンテキストは、1つの事前定義された値のセット{1/4,1/8,1/16,1/32}からα0を選択し、他の事前定義された値のセット{1/32,1/64,1/128,1/256,1/512}からα1を選択することが可能になされている。
【0061】
初期確率計算
AVC/HEVCと同様に、VVCのCABACプロセスも、各スライスの開始時に1つのQP依存確率初期化プロセスを呼び出す。しかしながら、1つの確率ステートマシンの状態を初期化するAVC/HEVCと比較して、初期確率の実際の値が次のように直接導出され、
【数1】
ここで、SlopeIdxおよびOffsetIdxは、線形モデルの傾きおよびオフセットを計算するための2つの初期化パラメータであり、それぞれ3ビットの精度で表され、
【数2】
および
【数3】
は、2つの確率推定量に対して計算された2つの初期確率である。
【0062】
問題の記述
AVC/HEVCのCABAC設計と比較して、VVCの確率推定スキームは各コンテキストのビンの真の統計分布をより正確に捕捉することができるので、CABAC効率の向上につながる。しかしながら、その設計はまださらに改善されることができる。具体的には、本開示では、VVCのCABACプロセスの現在の確率推定に存在する以下の欠陥が特定される。
【0063】
まず、上記で論じられたように、VVCでは、多重仮説に基づく確率推定スキームが適用され、2つの確率推定量(一方は適応レートが速く、他方は適応レートが遅い)が各コンテキスト・モデルのビンの確率を推定する。さらに、既存の設計では、1つのビンの確率は2つの確率推定量の単純な平均にすぎない。固定の重みが、異なるコンテキストの様々なデータ統計に適応するのに十分なほど柔軟でない場合があることを考慮すると、そのような設計は最適とは言えない。
【0064】
一方、既存のVVC設計によれば、1つのスライス内の全てのコンテキストの確率は、異なるスライス・タイプ(slice type)(すなわち、I、B、およびPスライス)に対して事前に決定された初期コンテキスト値の3つのセットに基づいて初期化される。このうち、Iスライス・タイプの初期コンテキスト値のセットはIスライスのみへの使用が許可され、BスライスおよびPスライスの初期コンテキスト値のセットはBスライスまたはPスライスのいずれかへの使用が許可される。各ビデオ・ビットストリームのビンは通常、その固有の特徴により、互いに非常に異なる統計的特性を示す。したがって、初期コンテキスト値の3つの固定のセットのみを使用することは、確率推定量が各コンテキストの真の確率分布を迅速に捕捉するための効率的な開始点を提供するには、最適からは程遠いように思われる。一方、1つのビデオ・シーケンス内の強い時間的相関により、現在のスライスの前に符号化されたスライスからのコンテキストの確率統計は、現在のスライス内のコンテキストの確率を初期化するためのより正確な推定値を提供することができる可能性がある。
【0065】
本開示では、VVCにおける既存の確率推定スキームの問題/欠陥を解決するための方法が提案される。具体的には、ハードウェア・コーデック実装との親和性を考慮しながら確率推定精度をさらに向上させるための以下の方法が提案される。
【0066】
第1に、確率推定の精度を高めるために、重み付けされた多重仮説確率の更新を行う1つのバイナリ算術符号化が提案される。具体的には、単純な平均を使用する代わりに、各コンテキストの1つのビンを符号化するために使用される最終確率が、そのコンテキストに関連付けられた2つの確率推定量p0およびp1の1つの加重結合として計算される。さらに、1つのスライスの開始時のコンテキストの初期重みパラメータを示すための複数の初期化方法が提案される。
【0067】
第2に、インター符号化されたスライスのコンテキストの状態パラメータを初期化するための、1つの改良された初期化スキームが提案される。具体的には、既存の固定コンテキスト初期化テーブルの使用に加えて、提案されたスキームは、1つのインター符号化されたスライスにおけるコンテキストの状態パラメータ(たとえば、2つの確率推定量、適応レート、および2つの確率推定量の結合の重み係数)を、符号化済みのスライスの対応する状態パラメータからコピーされるように初期化することを可能にする。
【0068】
適応重みを用いた多重仮説確率推定
VVCでは、多重仮説に基づく確率推定が適用され、1つのコンテキストの各ビンを符号化するときの最終確率が2つの確率推定量の平均として計算される。異なるビデオ・ビットストリームの固有の統計特性を考慮すると、1つのコンテキストの2つの確率推定量を結合するときに、そのようなスキーム(すなわち、等しい重み(すなわち0.5)を使用する)が常に、真のシンボル統計を捕捉するのに十分なほど柔軟ではない場合があることは明らかである。したがって、このセクションでは、VVCの確率推定精度をさらに向上させるための、適応重みを用いた多重仮説確率推定(MHP-AW:multi-hypothesis probability estimation with adaptive weights)。具体的には、VVCのCABAC設計と同じく、2つの個別の確率推定量p0およびp1が、コンテキストごとに保持され、それらの独自の適応レートα0およびα1に基づいて更新される。しかしながら、固定の平均を使用する代わりに、提案されたスキームでは複数の重みパラメータが導入され、1つのコンテキストのバイナリ算術符号化に使用される最終確率pは、2つの確率推定量の加重結合に基づいて導出される。詳細には、提案された確率推定は次のように定式化されることができ、
p0(t+1)=p0(t)・(1-α0)+x(t)・α0
p1(t+1)=p1(t)・(1-α1)+x(t)・α1
p(t+1)=(1-ω)・p0(t)+ω・p1(t) (5)
ここで、ωは2つの確率推定値の結合に使用される重みであり、その値は[0,1]の範囲から取得される。式(5)において、重みωは1つの実数値を表し、これはハードウェア/ソフトウェア・コーデック実装のために整数に量子化される必要がある。実際には、ωの値を整数に変換するために様々な方法が適用され得る。たとえば、実際の重み値を近似するために、量子化ステップqstepを用いた1つの一様量子化器(uniform quantizer)が適用され得、これは1つの整数と量子化ステップとの乗算によって次のように行われ、
ω=ωint・qstep (6)
ここで、ωintは整数の重み値である。さらに、同じく1つの実数値である量子化ステップは、次のようにMビットの1回の右シフト演算として近似されることができる。
ω=ωint・qstep=ωint>>M (7)
【0069】
式(7)に示されるように、提案されたMHP-AWスキームをハードウェア/ソフトウェアで実装する場合、整数の重み値ωintのセットを記憶するには追加のメモリが必要になる。一方、式(5)に示されるように、整数の重みの精度(すなわち、M)により、2つの確率推定量の加重結合に必要な乗算器のビット幅も決まる。したがって、実際には、符号化効率とハードウェア/ソフトウェア実装の複雑さとの間の様々なトレードオフを実現するために、異なる整数の重み値のセットおよび表現精度が適用され得る。たとえば、表現精度Mが5に等しいと仮定すると、異なる整数値のセットが適用され得る。一例では、1つの事前定義されたセット{0,3,6,10,13,16,19,22,26,29,32}から各コンテキストの最適な重みを選択することが提案される。他の例では、1つの事前定義されたセット{0,6,11,16,21,26,32}から重みを設定することが提案される。さらに他の例では、事前定義された整数の重み値のセット{0,8,12,16,20,24,32}を使用することが提案される。
【0070】
確率および適応レートと同様に、提案されたMHP-AWスキームでは、重みωintの1つの初期値が、1つのスライスの先頭でコンテキストごとに提供される必要がある。以下では、MHP-AW重みの初期化のための様々なスキームが提案される。第1の方法では、複数の異なる事前定義されたテーブルを定義することが提案され、各テーブルは、1つのスライス内の全てのコンテキストに対する重み初期化値のセットを含む。1つのスライスを符号化/復号する前に、1つの事前定義されたテーブルが選択され得、対応するMHP-AW重みが、テーブルの対応する重み値に基づいて初期化される。たとえば、一実施形態では、いくつかのスライス・タイプ依存の初期重みテーブル、たとえば、I、P、およびBスライス用に特別に設計された重み初期化テーブルの3つのセットが導出され得る。このようにして、1つのスライスに対して、ビデオ符号化器は3つの事前定義されたテーブルから1つを選択して、スライス内のシンボル統計によりよく適応するようにMHP-AW重みを初期化し得る。そのようなスキームが適用される場合、以下の表1に示されるように、スライスごとに1つの追加の構文要素sh_cabac_weight_init_idxがシグナリングされ得、これはそのスライスに対してどの初期重みテーブルが選択されるかを示し、
【0071】
【表1】
ここで、シンタックスpps_cabac_weight_init_present_flagは、スライスごとに異なる初期重みテーブルを選択することが許可されているか否かを示す、ピクチャ・パラメータ・セット(PPS)でシグナリングされる1つの制御フラグである。このフラグが有効化されている場合、選択された初期重みテーブルを示すために、他のシンタックスsh_cabac_weight_init_idxがスライス・レベルでさらにシグナリングされる。他の実施形態では、IスライスのMHP-AW重みが、Iスライス・タイプに関連付けられた初期重みテーブルによって初期化されることのみを許可し、PスライスおよびBスライスのMHP-AW重みは、事前定義された重み初期化テーブルのうちの1つから初期化されることが許可されることが提案される。具体的には、現在のスライスのスライス・タイプに関連付けられた初期重みテーブルに加えて、1つのP(またはB)スライスがB(またはP)スライス・タイプの初期重みテーブルで初期化されることのみを許可することが提案される。対応して、そのような場合、以下の表2に示されるように、P/BスライスのMHP-AW重みの初期テーブル選択のためにスライスごとに1つのフラグのみがシグナリングされる必要がある。
【0072】
【表2】
フラグsh_cabac_weight_init_flagが0に等しい場合、これは、現在のスライスのスライス・タイプに対応する初期重みテーブルがそのスライスのMHP-AW重みの値を初期化するために使用されることを意味し、フラグが1に等しい場合、これは、現在のスライスが1つのBスライスである場合に、Pスライス・タイプに対応する初期重みテーブルがそのスライスのMHP-AW重みの値を初期化するために使用され、現在のスライスが1つのPスライスである場合に、Bスライス・タイプに対応する初期重みテーブルがそのスライスのMHP-AW重みの値を初期化するために使用されることを意味する。
【0073】
さらに、本開示の他の実施形態では、各コンテキストに対応するMHP-AW重みを含むように既存のCABAC初期化テーブルを拡張することが提案される。具体的には、そのような変更後、1つのCABAC初期化テーブルの各要素は、1)初期確率値と、2)2つの確率仮説の確率および適応速度を初期化するために使用される適応レートと、3)各コンテキストの確率を更新するときに2つの仮説を結合するために使用されるMHP-AWの重みと、を含む3つの異なるカテゴリの情報を含む。既存のVVC設計と同様に、そのようなスキームが適用される場合、複数のCABAC初期化テーブルが事前に決定され得、各スライスに関連付けられた2つの確率、2つの適応レート、ならびに結合重みの対応する値を初期化するために、各スライスに対してどの初期化テーブルが選択されるかを通知するための構文要素が符号化器から復号器にシグナリングされ得る。1つの特定の実施形態では、スライスでのCABAC初期化テーブルの選択を示すために、既存のCABAC初期化構文要素、すなわち、pps_cabac_init_present_flagおよびsh_cabac_init_flagを再利用することが提案される。そのような方法が適用される場合、IスライスのCABAC状態(すなわち、確率、適応レート、および結合重み)は、Iスライス・タイプの初期化テーブルによって初期化されることのみが許可され、P(またはB)スライスのCABAC状態は、B(またはP)スライス・タイプの初期化テーブルで初期化されることが許可される。他の実施形態では、いくつか(>3つ)のCABACテーブルを事前に決定し、1つのスライスのCABAC状態が事前定義されたテーブルのうちの1つから任意に初期化されることが許可されることが提案される。
【0074】
上記の全ての方法では、1つのスライスを符号化するときにコンテキストのMHP-AW重みを初期化するために固定値が使用されるが、これは算術符号化のための信頼できる確率推定を提供するには正確ではない場合がある。そのような問題を解決するために、スライスごとに最適なMHP-AW重みを計算し、対応する最適なMHP-AW重みを復号器にシグナリングする柔軟性を符号化器に与えることが提案される。
【0075】
一実施形態では、各コンテキスト要素の重み値を直接シグナリングすることが提案される。たとえば、スライス内のコンテキストのMHP-AW重みが1つの固定の初期化テーブルで初期化されるか否かを示すための1つのフラグが最初にシグナリングされ得る。フラグが1に等しい場合、どの重み初期化テーブルが現在のスライスに適用されるかを復号器に通知するための他の構文要素がシグナリングされ得、そうでない場合、すなわち、フラグが0に等しい場合、スライス内のコンテキストのMHP-AW重みは、ビットストリームからパースされた値によって初期化される。実際には、MHP-AW重み値の符号語を生成するために、たとえば、固定長符号、単進符号、k次指数ゴロム符号などの様々なバイナリ化方法が適用され得る。
【0076】
他の実施形態では、1つの適応的なシグナリング方法が提案される。具体的には、各スライスの開始時に、このスキームはまず、バイナリ・マップweightMap[]を符号化器から復号器に送信し、各要素は、対応するコンテキストが、選択されたデフォルトの初期化重みテーブルからの初期化された重み値を使用するか否かを示す。i番目のweightMap[]マップ・エントリが0に等しい場合、これは、現在のスライスのi番目のコンテキストのMHP-AW重みが、選択された初期化重みテーブル内の対応する値によって初期化されることを意味する。i番目のweightMap[]マップ・エントリが1に等しい場合、これは、現在のスライスのi番目のコンテキストのMHP-AW重みが、ビットストリームに示される初期値によって初期化されることを意味する。マップweightMap[]を符号化するために様々な方法が適用され得る。一例では、マップのバイナリ値を符号化するためにランレングス符号化を使用し、1つの1(または0)に出会う前の連続する0(または1)の数を示す1つの「ラン」値が送信されることが提案される。
【0077】
符号化済みのスライスからの初期CABAC状態の継承
上記で論じられたように、異なるビデオ・ビットストリーム内の同じコンテキストのシンボルは、通常、全く異なる統計的特性を示す。確率状態が事前定義されたCABACテーブルで固定されており、様々なスライスの固有の特徴に適応することができないと仮定する。事前定義された初期テーブルがビデオ・ビットストリームの真のシンボル統計から逸脱している場合、符号化効率が低下する可能性がある。CABAC効率を向上させるために、1つの以前のスライスを符号化/復号した後のコンテキスト状態からコンテキストを初期化するための改良されたCABAC初期化スキームが提案される。CABAC初期化のための以前のスライスを識別するには、様々な方法があり得る。
【0078】
一実施形態では、符号化済みのN個のスライスの出力コンテキスト状態を保持することが提案される。1つの現在のスライスが符号化される場合、ビデオ符号化器は、符号化済みのN個のスライスから最良のものを選択し、復号器に1つのインデックスをシグナリングして、(シグナリングされたインデックス値によって示される)選択された符号化済みのスライスの対応するコンテキスト状態から現在のスライスのコンテキストを初期化する。
【0079】
他の実施形態では、選択された符号化済みのスライスをビットストリームで直接シグナリングする代わりに、現在のスライスのコンテキスト初期化のための対応する符号化済みのスライスを選択するためのいくつかの暗黙的な復号器側での選択スキームが適用され得、これは以下を含む。
【0080】
ルール#1:符号化順序に従ってスライスの直前に符号化されたスライスを直接選択することが提案される。
【0081】
ルール#2:順序に従って現在のスライスに最も近く、同じスライス・タイプを有する、符号化済みのスライスを選択することが提案される。
【0082】
ルール#3:順序に従って現在のスライスに最も近く、現在のスライスとの最小のQP差を有する、符号化済みのスライスを選択することが提案される。
【0083】
ルール#4:順序に従って現在のスライスに最も近く、現在のスライスと同じ時間レイヤ(temporal layer)を有する、符号化済みのスライスを選択することが提案される。
【0084】
上記の暗黙的な選択ルールは別々に提案されているが、提案された初期CABAC状態継承スキームでは組み合わせて一緒に適用され得る。1つの特定の例では、ルール#2、#3、および#4を一緒に組み合わせることが提案される。具体的には、そのような組み合わせに基づいて、符号化器/復号器は、符号化順序に従って現在のスライスに最も近く、現在のスライスとの最小のQPの差を有する、同じスライス・タイプの符号化済みのスライスを選択し得る。そのような符号化済みのスライスが存在しない場合、現在のスライスのコンテキスト状態を初期化するために、既存の事前定義されたCABAC初期化テーブルのうちの1つが適用され得る。
【0085】
さらに、提案された継承ベースのコンテキスト初期化スキームでは、継承されたコンテキスト状態は、たとえば、確率値、適応レート、および結合重み(提案されたMHP-AWスキームが適用される場合)の、様々なカテゴリの状態情報を含み得る。本開示の一実施形態では、選択された符号化済みのスライスから1つの状態情報のみを継承し、現在のスライスのその他の状態情報は、既存の事前定義されたCABAC初期化テーブルを使用して初期化されることが提案される。他の実施形態では、選択された符号化済みのスライスから2つの状態情報のみを継承することが提案される。さらに他の実施形態では、選択された符号化済みのスライスの対応するコンテキスト状態から現在のスライスの全ての状態情報を継承することが提案される。
【0086】
上記の継承ベースのCABAC初期化は、コンテキストの初期化の効率を向上させることができるが、異なるスライス間にパースの依存関係を導入し得る。これは、1つの現在のスライスのエントロピー符号化が、その参照スライス(すなわち、選択された符号化済みのスライス)のエントロピー符号化が完全に終了するまで呼び出されることができないためである。
【0087】
エントロピー符号化の効率および並列性のより優れた制御を提供するために、1つの適応的なCABAC初期化スキームが提案され、1つの現在のスライスのコンテキスト状態が次の2つの方法のいずれかで初期化され得、1)事前定義されたCABAC初期化テーブルのうちの1つを使用して初期化されるか、または2)1つの符号化済みのスライスの結果的に得られたコンテキスト状態によって初期化される。具体的には、提案されたスキームでは、1つのスライスの先頭で1つのバイナリ・フラグが最初にシグナリングされる。フラグがゼロに等しい場合、これは、現在のスライスのコンテキストが、たとえば、構文要素sh_cabac_init_flagで示される、既存の事前定義されたCABAC初期化テーブルのうちの1つによって初期化されることを意味する。フラグが1に等しい場合、これは、継承ベースのコンテキスト初期化方法が適用され、初期化コンテキスト値が、現在のスライスの前に符号化された選択されたスライスから出力されるコンテキスト状態に設定されることを意味する。
【0088】
図4は、ユーザ・インターフェース460と結合されたコンピューティング環境(またはコンピューティング・デバイス)410を示している。コンピューティング環境410は、データ処理サーバの一部とすることができる。いくつかの実施形態では、コンピューティング・デバイス410は、本開示の様々な例に従って前述された様々な方法またはプロセス(たとえば、符号化/復号方法またはプロセス)のいずれかを実行することができる。コンピューティング環境410は、プロセッサ420、メモリ440、およびI/Oインターフェース450を含み得る。
【0089】
プロセッサ420は、典型的には、表示、データ取得、データ通信、および画像処理に関連付けられた動作など、コンピューティング環境410の全体的な動作を制御する。プロセッサ420は、上述の方法におけるステップの全てまたは一部を実施するための命令を実行するための1つまたは複数のプロセッサを含み得る。さらに、プロセッサ420は、プロセッサ420と他のコンポーネントとの間のインタラクションを容易にする1つまたは複数のモジュールを含み得る。プロセッサは、中央処理装置(CPU)、マイクロプロセッサ、シングルチップマシン、GPUなどであり得る。
【0090】
メモリ440は、コンピューティング環境410の動作をサポートするために様々なタイプのデータを記憶するように構成される。メモリ440は、所定のソフトウェア442を含み得る。そのようなデータの例は、コンピューティング環境410上で動作させられる任意のアプリケーションまたは方法のための命令、ビデオ・データセット、画像データなどを含む。メモリ440は、任意のタイプの揮発性もしくは不揮発性メモリ・デバイス、またはそれらの組み合わせ、たとえば、スタティック・ランダム・アクセス・メモリ(SRAM)、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)、消去可能プログラム可能読み取り専用メモリ(EPROM)、プログラム可能読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気メモリ、フラッシュ・メモリ、磁気ディスクまたは光ディスクを使用して実装され得る。
【0091】
I/Oインターフェース450は、プロセッサ420と周辺インターフェース・モジュール、たとえば、キーボード、クリックホイール、ボタンなどとの間のインターフェースを提供する。これらのボタンは、ホーム・ボタン、スキャン開始ボタン、およびスキャン停止ボタンを含み得るが、これらに限定されない。I/Oインターフェース450は、符号化器および復号器と結合されることができる。
【0092】
いくつかの実施形態では、上述の方法を実行するための、コンピューティング環境410内のプロセッサ420によって実行可能な、たとえばメモリ440に含まれる、複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。たとえば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピー・ディスク、光学データ記憶デバイスなどであり得る。
【0093】
非一時的コンピュータ可読記憶媒体は、1つまたは複数のプロセッサを有するコンピューティング・デバイスによって実行される複数のプログラムが記憶されており、複数のプログラムは、1つまたは複数のプロセッサによって実行された場合に、コンピューティング・デバイスに上述の動き予測のための方法を実行させる。
【0094】
いくつかの実施形態では、コンピューティング環境410は、上記の方法を実行するための、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル・ロジック・デバイス(PLD)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、グラフィカル・プロセッシング・ユニット(GPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子部品を用いて実装され得る。
【0095】
図5は、本開示の一例によるビデオ復号のための方法を示すフローチャートである。
【0096】
ステップ501において、プロセッサ420は、1つのバイナリ算術復号器側で、適応重みに従って、バイナリ算術復号器の1つの所与のコンテキスト・モデルの1つのバイナリ・シンボルの多重仮説確率を取得し得、多重仮説確率は、1つのバイナリ・シンボルがバイナリ値に等しい確率を示し、1つのバイナリ・シンボルは、コンテキスト・モデルに関連付けられた複数のバイナリ・シンボルからのものである。
【0097】
たとえば、適応重みは式(5)の重みωであり得、これは2つの確率推定値の結合に使用され、その値は範囲[0,1]から取得される。式(5)において、重みωは1つの実数値を表し、これはハードウェア/ソフトウェア・コーデック実装のために整数に量子化される必要がある。実際には、その値を整数に変換するために様々な方法が適用され得る。したがって、多重仮説確率は、適応重みωを使用した2つの確率推定値の結合である。
【0098】
いくつかの例では、プロセッサ420は、第1の適応パラメータに従って1つのバイナリ・シンボルの第1の確率を取得し、第2の適応パラメータに従って1つのバイナリ・シンボルの第2の確率を取得し得る。さらに、プロセッサ420は、適応重み、第1の確率、および第2の確率に従って、多重仮説確率を取得し得る。たとえば、第1の確率は式(5)のp0(t+1)であり得、第2の確率は式(5)のp1(t+1)であり得る。
【0099】
いくつかの例では、プロセッサ420は、重み初期化テーブル内の所定の整数の重み値のセットからコンテキスト・モデルに従って適応重みを取得し得る。
【0100】
「適応重みを用いた多重仮説確率推定」のセクションで論じられたように、1つの事前定義されたセットから各コンテキストの最適な重みを選択することが提案されている。たとえば、事前定義された整数の重み値のセット{0,3,6,10,13,16,19,22,26,29,32}、{0,6,11,16,21,26,32}、または{0,8,12,16,20,24,32}を使用することが提案されている。
【0101】
いくつかの例では、復号器は、各スライス・タイプの重み初期化テーブルを取得し、現在のスライスが第1のスライス・タイプであるとの決定に応答して、第1のスライス・タイプに従って重み初期化テーブルを選択し得、第1のスライス・タイプは、Iタイプ、Pタイプ、またはBタイプを含み、また選択された重み初期化テーブルに従って適応重みを取得することと、を実行し得る。
【0102】
いくつかの例では、プロセッサ420は、制御構文要素(control syntax element)が有効化されているとの決定に応答して、スライス・レベルで、各スライスのスライス・タイプに従って各スライスに対して選択された重み初期化テーブルを示す各スライスの適応重み構文要素を取得し得る。
【0103】
いくつかの例では、プロセッサ420は、各Iスライス用の第1の重み初期化テーブル、各Pスライス用の第2の重み初期化テーブル、および各Bスライス用の第3の重み初期化テーブルを取得し得る。さらに、プロセッサ420は、現在のスライスがIスライスであるとの決定に応答して、第1の重み初期化テーブルを選択し、現在のスライスがPスライスまたはBスライスであるとの決定に応答して、第2の重み初期化テーブルまたは第3の重み初期化テーブルを選択し、選択された重み初期化テーブルに従って適応重みを取得し得、これは表2に示されている。
【0104】
ステップ502において、プロセッサ420は、多重仮説確率に従って1つのバイナリ・シンボルを復号し得る。
【0105】
図6は、
図5に示されたビデオ復号のための方法に対応するビデオ符号化のための方法を示すフローチャートである。
【0106】
ステップ601において、プロセッサ420は、1つのバイナリ算術復号器側で、適応重みに従って、バイナリ算術復号器の1つの所与のコンテキスト・モデルの1つのバイナリ・シンボルの多重仮説確率を決定し得、多重仮説確率は、1つのバイナリ・シンボルがバイナリ値に等しい確率を示し、1つのバイナリ・シンボルは、コンテキスト・モデルに関連付けられた複数のバイナリ・シンボルからのものである。たとえば、符号化器は、適応重みに従って、バイナリ算術復号器の1つの所与のコンテキスト・モデルの1つのバイナリ・シンボルの多重仮説確率を取得し得る。
【0107】
たとえば、適応重みは式(5)の重みωであり得、これは2つの確率推定値の結合に使用され、その値は範囲[0,1]から取得される。式(5)において、重みωは1つの実数値を表し、これはハードウェア/ソフトウェア・コーデック実装のために整数に量子化される必要がある。実際には、適応重みの値を整数に変換するために様々な方法が適用され得る。したがって、多重仮説確率は、適応重みωを使用した2つの確率推定値の結合である。
【0108】
いくつかの例では、プロセッサ420は、第1の適応パラメータに従って1つのバイナリ・シンボルの第1の確率を決定し、第2の適応パラメータに従って1つのバイナリ・シンボルの第2の確率を決定し得る。さらに、プロセッサ420は、適応重み、第1の確率、および第2の確率に従って、多重仮説確率を決定し得る。たとえば、第1の確率は式(5)のp0(t+1)であり得、第2の確率は式(5)のp1(t+1)であり得る。
【0109】
いくつかの例では、プロセッサ420は、重み初期化テーブル内の所定の整数の重み値のセットからコンテキスト・モデルに従って適応重みを決定し得る。
【0110】
「適応重みを用いた多重仮説確率推定」のセクションで論じられたように、1つの事前定義されたセットから各コンテキストの最適な重みを選択することが提案されている。たとえば、事前定義された整数の重み値のセット{0,3,6,10,13,16,19,22,26,29,32}、{0,6,11,16,21,26,32}、または{0,8,12,16,20,24,32}を使用することが提案されている。
【0111】
いくつかの例では、復号器は、各スライス・タイプの重み初期化テーブルを決定し、現在のスライスが第1のスライス・タイプであるとの決定に応答して、第1のスライス・タイプに従って重み初期化テーブルを選択し得、第1のスライス・タイプは、Iタイプ、Pタイプ、またはBタイプを含み、また選択された重み初期化テーブルに従って適応重みを取得することと、を実行し得る。
【0112】
いくつかの例では、プロセッサ420は、制御構文要素が有効化されているとの決定に応答して、スライス・レベルで、各スライスのスライス・タイプに従って各スライスに対して選択された重み初期化テーブルを示す各スライスの適応重み構文要素を決定し得る。
【0113】
いくつかの例では、プロセッサ420は、各Iスライス用の第1の重み初期化テーブル、各Pスライス用の第2の重み初期化テーブル、および各Bスライス用の第3の重み初期化テーブルを決定し得る。さらに、プロセッサ420は、現在のスライスがIスライスであるとの決定に応答して、第1の重み初期化テーブルを選択し、現在のスライスがPスライスまたはBスライスであるとの決定に応答して、第2の重み初期化テーブルまたは第3の重み初期化テーブルを選択し、選択された重み初期化テーブルに従って適応重みを決定し得、これは表2に示されている。
【0114】
ステップ602において、プロセッサ420は、多重仮説確率に従って1つのバイナリ・シンボルを符号化し得る。たとえば、符号化器は、多重仮説確率に従って1つのバイナリ・シンボルを符号化し得る。
【0115】
図7は、本開示の一例によるビデオ復号のための方法を示すフローチャートである。
【0116】
ステップ701において、プロセッサ420は、復号器側で、現在のスライスの前に符号化された1つまたは複数のスライスを選択し得る。
【0117】
たとえば、「符号化済みのスライスからの初期CABAC状態の継承」のセクションで論じられたように、1つまたは複数のスライスは、N個の符号化済みのスライスであり得る。1つの現在のスライスが符号化される場合、ビデオ符号化器は、符号化済みのN個のスライスから最良のものを選択し、復号器に1つのインデックスをシグナリングして、(シグナリングされたインデックス値によって示される)選択された符号化済みのスライスの対応するコンテキスト状態から現在のスライスのコンテキストを初期化する。
【0118】
いくつかの例では、1つまたは複数のスライスは、現在のスライスの直前に符号化されたスライスを含み得る。
【0119】
いくつかの例では、1つまたは複数のスライスは、現在のスライスの直前に符号化されていないスライスを含み得、スライスは、スライスが現在のスライスと同じスライス・タイプを有するという条件、スライスが現在のスライスとの最小の量子化パラメータ(QP:quantization parameter)の差を有するという条件、または、スライスが現在のスライスと同じ時間レイヤを有するという条件、のうちの少なくとも1つを満たす。
【0120】
たとえば、ルール#1、ルール#2、ルール#3、ルール#4、またはこれらのルールの任意の組み合わせに従う、現在のスライスのコンテキスト初期化のための対応する符号化済みのスライスを選択するためのいくつかの暗黙的な復号器側での選択スキームが適用され得る。
【0121】
ステップ702において、プロセッサ420は、現在のスライスの前に符号化された1つのスライスの1つまたは複数のコンテキスト・モデルのコンテキスト状態を継承することによって、現在のスライスの1つまたは複数のコンテキスト・モデルの初期コンテキスト状態を取得し得る。
【0122】
コンテキスト状態を継承することにより、現在のスライスの1つまたは複数のコンテキスト・モデルは、1つの符号化済みのスライス(すなわち、現在のスライスの前に符号化された1つのスライス)の1つまたは複数のコンテキスト・モデルのコンテキスト状態を初期コンテキスト状態として使用する。
【0123】
いくつかの例では、1つまたは複数の初期コンテキスト状態は、確率値、適応レート、または適応重みのパラメータのうちの少なくとも1つを含み得る。
【0124】
たとえば、継承されたコンテキスト状態は、たとえば、確率値、適応レート、および結合重み(提案されたMHP-AWスキームが適用される場合)の、様々なカテゴリの状態情報を含み得る。本開示の一実施形態では、選択された符号化済みのスライスから1つの状態情報のみを継承し、現在のスライスのその他の状態情報は、既存の事前定義されたCABAC初期化テーブルを使用して初期化されることが提案される。他の実施形態では、選択された符号化済みのスライスから2つの状態情報のみを継承することが提案される。さらに他の実施形態では、選択された符号化済みのスライスの対応するコンテキスト状態から現在のスライスの全ての状態情報を継承することが提案される。
【0125】
いくつかの例では、プロセッサ420は、1つまたは複数の既存のコンテキスト・ベース適応バイナリ算術符号化(CABAC)初期化テーブルに従って、現在のスライスの少なくとも1つの第2の初期コンテキスト状態を取得し得、現在のスライスは、初期コンテキスト状態と、少なくとも1つの第2の初期コンテキスト状態とを含む。さらに、プロセッサ420は、初期コンテキスト状態および少なくとも1つの第2の初期コンテキスト状態に従って、現在のスライス内のバイナリ・シンボルを復号し得る。
【0126】
ステップ703において、プロセッサ420は、初期コンテキスト状態に従って現在のスライス内の1つまたは複数のコンテキスト・モデルに関連付けられたバイナリ・シンボルを復号し得る。
【0127】
図8は、
図7に示されたビデオ復号のための方法に対応するビデオ符号化のための方法を示すフローチャートである。
【0128】
ステップ801において、プロセッサ420は、符号化器側で、現在のスライスの前に符号化された1つまたは複数のスライスを選択し得る。
【0129】
たとえば、「符号化済みのスライスからの初期CABAC状態の継承」のセクションで論じられたように、1つまたは複数のスライスは、N個の符号化済みのスライスであり得る。1つの現在のスライスが符号化される場合、ビデオ符号化器は、符号化済みのN個のスライスから最良のものを選択し、復号器に1つのインデックスをシグナリングして、(シグナリングされたインデックス値によって示される)選択された符号化済みのスライスの対応するコンテキスト状態から現在のスライスのコンテキストを初期化する。
【0130】
いくつかの例では、1つまたは複数のスライスは、現在のスライスの直前に符号化されたスライスを含み得る。
【0131】
いくつかの例では、1つまたは複数のスライスは、現在のスライスの直前に符号化されていないスライスを含み得、スライスは、スライスが現在のスライスと同じスライス・タイプを有するという条件、スライスが現在のスライスとの最小の量子化パラメータ(QP)の差を有するという条件、または、スライスが現在のスライスと同じ時間レイヤを有するという条件、のうちの少なくとも1つを満たす。
【0132】
たとえば、ルール#1、ルール#2、ルール#3、ルール#4、またはこれらのルールの任意の組み合わせに従う、現在のスライスのコンテキスト初期化のための対応する符号化済みのスライスを選択するためのいくつかの暗黙的な選択スキームが適用され得る。
【0133】
ステップ802において、プロセッサ420は、現在のスライスの前に符号化された1つのスライスの1つまたは複数のコンテキスト・モデルのコンテキスト状態を継承することによって、現在のスライスの1つまたは複数のコンテキスト・モデルの初期コンテキスト状態を決定し得る。
【0134】
コンテキスト状態を継承することにより、現在のスライスの1つまたは複数のコンテキスト・モデルは、1つの符号化済みのスライス(すなわち、現在のスライスの前に符号化された1つのスライス)の1つまたは複数のコンテキスト・モデルのコンテキスト状態を初期コンテキスト状態として使用する。
【0135】
いくつかの例では、1つまたは複数の初期コンテキスト状態は、確率値、適応レート、または適応重みのパラメータのうちの少なくとも1つを含み得る。
【0136】
たとえば、継承されたコンテキスト状態は、たとえば、確率値、適応レート、および結合重み(提案されたMHP-AWスキームが適用される場合)の、様々なカテゴリの状態情報を含み得る。本開示の一実施形態では、選択された符号化済みのスライスから1つの状態情報のみを継承し、現在のスライスのその他の状態情報は、既存の事前定義されたCABAC初期化テーブルを使用して初期化されることが提案される。他の実施形態では、選択された符号化済みのスライスから2つの状態情報のみを継承することが提案される。さらに他の実施形態では、選択された符号化済みのスライスの対応するコンテキスト状態から現在のスライスの全ての状態情報を継承することが提案される。
【0137】
ステップ803において、プロセッサ420は、初期コンテキスト状態に従って現在のスライス内の1つまたは複数のコンテキスト・モデルに関連付けられたバイナリ・シンボルを符号化し得る。
【0138】
いくつかの例では、プロセッサ420は、1つまたは複数の既存のコンテキスト・ベース適応バイナリ算術符号化(CABAC)初期化テーブルに従って、現在のスライスの少なくとも1つの第2の初期コンテキスト状態を決定し得、現在のスライスは、初期コンテキスト状態と、少なくとも1つの第2の初期コンテキスト状態とを含む。さらに、プロセッサ420は、初期コンテキスト状態および少なくとも1つの第2の初期コンテキスト状態に従って、現在のスライス内のバイナリ・シンボルを符号化し得る。
【0139】
いくつかの例では、ビデオ符号化のための装置が提供される。この装置は、プロセッサ420と、プロセッサによって実行可能な命令を記憶するように構成されるメモリ440と、を含み、プロセッサは、命令の実行時に、上記で説明された任意の方法を実行するように構成される。
【0140】
他のいくつかの例では、命令が記憶された非一時的コンピュータ可読記憶媒体が提供される。命令がプロセッサ420によって実行された場合に、命令は本開示に示された任意の方法をプロセッサに実行させる。一例では、複数のプログラムは、符号化されたビデオ情報(たとえば、符号化されたビデオ・フレームを表現するビデオ・ブロック、ならびに/あるいは関連付けられた1つまたは複数の構文要素など)を含むビットストリームまたはデータストリームを(たとえば、
図2のビデオ符号化器20から)受信するために、コンピューティング環境410内のプロセッサ420によって実行され得、また、受信されたビットストリームまたはデータストリームに従って上述の復号方法を実行するために、コンピューティング環境410内のプロセッサ420によって実行され得る。他の例では、複数のプログラムは、上述の符号化方法を実行して、ビデオ情報(たとえば、ビデオ・フレームを表現するビデオ・ブロック、ならびに/あるいは関連付けられた1つまたは複数の構文要素など)をビットストリームまたはデータストリームに符号化するために、コンピューティング環境410内のプロセッサ420によって実行され得、また、ビットストリームまたはデータストリームを(たとえば、
図3のビデオ復号器30に)送信するために、コンピューティング環境410内のプロセッサ420によって実行され得る。あるいは、非一時的コンピュータ可読記憶媒体は、ビデオ・データの復号時に復号器(たとえば、
図3のビデオ復号器30)によって使用するための、たとえば上述の符号化方法を使用して符号化器(たとえば、
図2のビデオ符号化器20)によって生成された、符号化されたビデオ情報(たとえば、符号化されたビデオ・フレームを表現するビデオ・ブロック、ならびに/あるいは関連付けられた1つまたは複数の構文要素など)を含むビットストリームまたはデータストリームが記憶され得る。非一時的コンピュータ可読記憶媒体は、たとえば、ROM、ランダム・アクセス・メモリ(RAM)、CD-ROM、磁気テープ、フロッピー・ディスク、光学データ記憶デバイスなどであり得る。
【0141】
本開示の他の例は、本明細書を検討し、本明細書に開示された本開示を実践することにより当業者には明らかになろう。本出願は、本開示の一般原理に従い、当技術分野において知られているまたは慣行の範囲内にある本開示からの逸脱を含む、本開示のあらゆる変形、使用、または適応を網羅することが意図されている。本明細書および例は、単なる例示と見なされるべきであることが意図されている。
【0142】
本開示は、上記で説明され、添付の図面に示された厳密な例に限定されるものではなく、本開示の範囲から逸脱することなく様々な修正および変更が行われ得ることは理解されよう。
【手続補正書】
【提出日】2024-06-06
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年12月29日に出願された「Methods and Devices on Probability Calculation for Context-Based Adaptive Binary Arithmetic Coding」と題された米国仮出願第63/294,692号に基づいて出願され、その優先権を主張し、その全体が引用によりあらゆる目的で組み込まれている。
【0002】
本開示は、ビデオ符号化および圧縮に関し、より詳細には、近年のビデオ・コーデックに使用されているエントロピー符号化方法であるコンテキスト・ベース適応バイナリ算術符号化(CABAC:context-based adaptive binary arithmetic coding)のための確率推定モジュールの精度を向上させる方法および装置に関するが、これらに限定されない。
【背景技術】
【0003】
ビデオ・データを圧縮するために様々なビデオ符号化技術が使用され得る。ビデオ符号化は1つまたは複数のビデオ符号化規格に従って実行される。たとえば、ビデオ符号化規格は、バーサタイル・ビデオ・コーディング(VVC:Versatile Video Coding)、高効率ビデオ符号化(H.265/HEVC:High Efficiency Video Coding)、高度ビデオ符号化(H.264/AVC:Advanced Video Coding)、動画像専門家グループ(MPEG:moving picture expert group)符号化などを含む。ビデオ符号化は一般に、ビデオ画像またはシーケンスに存在する冗長性を利用する予測方法(たとえば、インター予測、イントラ予測など)を利用する。ビデオ符号化技術の重要な目標は、ビデオ品質の低下を回避または最小化しながら、より低いビットレートを使用する形式にビデオ・データを圧縮することである。
【0004】
VVC規格の最初のバージョンは2020年7月に完成しており、前世代のビデオ符号化規格HEVCと比較して約50%のビットレートの節約または同等の知覚品質を提供する。VVC規格は、以前の規格よりも大幅な符号化の改善を提供するが、追加の符号化ツールを使用すると優れた符号化効率が実現され得るという証拠がある。最近、ITU-T VECGおよびISO/IEC MPEGの協力の下、共同ビデオ探索チーム(JVET:Joint Video Exploration Team)が、VVCを超える符号化効率の大幅な向上を可能にすることができる高度な技術の探索を開始した。2021年4月、将来のビデオ符号化探索作業のために、拡張圧縮モデル(ECM:Enhanced Compression Model)と呼ばれる1つのソフトウェア・コードベースが確立された。ECM参照ソフトウェアは、JVETによってVVC用に開発されたVVCテスト・モデル(VTM)に基づいており、いくつかの既存のモジュール(たとえば、イントラ/インター予測、変換、インループ・フィルタ(in-loop filter)など)がさらに拡張および/または改善されている。将来的には、VVC規格を超える任意の新しい符号化ツールは、ECMプラットフォームに統合され、JVETの共通テスト条件(CTC:common test condition)を使用してテストされる必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示は、CABACのための確率推定モジュールの精度の向上に関する技術の例を提供する。
【課題を解決するための手段】
【0006】
本開示の第1の態様によれば、ビデオ復号のための方法が提供される。この方法は、バイナリ算術復号器が、適応重みに従って、バイナリ算術復号器のコンテキスト・モデル(context model)のバイナリ・シンボルの多重仮説確率(multi-hypothesis probability)を取得し得、多重仮説確率が、バイナリ・シンボルがバイナリ値に等しい確率を決定し得、バイナリ・シンボルが、コンテキスト・モデルに関連付けられた複数のバイナリ・シンボルからのものである、ことを含む。さらに、復号器は、多重仮説確率に従ってバイナリ・シンボルを符号化し得る。また、復号器は、多重仮説確率に従ってバイナリ・シンボルを復号し得る。
【0007】
本開示の第2の態様によれば、ビデオ符号化のための方法が提供される。この方法は、バイナリ算術符号化器が、適応重みに従って、バイナリ算術符号化器のコンテキスト・モデルの複数のバイナリ・シンボルからのバイナリ・シンボルの多重仮説確率を決定し得、多重仮説確率が、バイナリ・シンボルがバイナリ値に等しい確率を示す、ことを含む。さらに、符号化器は、多重仮説確率に従ってバイナリ・シンボルを符号化し得る。
【0008】
本開示の第3の態様によれば、ビデオ復号のための方法が提供される。この方法は、復号器が、現在のスライスの前に符号化された1つまたは複数のスライスを選択し、現在のスライスの前に符号化されたスライスの1つまたは複数のコンテキスト・モデルのコンテキスト状態を継承することによって、現在のスライスの1つまたは複数のコンテキスト・モデルの初期コンテキスト状態を取得し、初期コンテキスト状態に従って現在のスライス内の1つまたは複数のコンテキスト・モデルに関連付けられたバイナリ・シンボルを復号し得ることを含む。
【0009】
本開示の第4の態様によれば、ビデオ符号化のための方法が提供される。この方法は、符号化器が、現在のスライスの前に符号化された1つまたは複数のスライスを選択し、現在のスライスの前に符号化されたスライスから1つまたは複数のコンテキスト・モデルのコンテキスト状態を継承することによって、現在のスライスの1つまたは複数のコンテキスト・モデルの初期コンテキスト状態を決定し、初期コンテキスト状態に従って現在のスライスの1つまたは複数のコンテキスト・モデルに関連付けられたバイナリ・シンボルを符号化し得ることを含む。
【0010】
本開示の第5の態様によれば、ビデオ復号のための装置が提供される。この装置は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されるメモリと、を含み、1つまたは複数のプロセッサは、命令の実行時に、第1または第3の態様による方法を実行するように構成される。
【0011】
本開示の第6の態様によれば、ビデオ符号化のための装置が提供される。この装置は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されるメモリと、を含み、1つまたは複数のプロセッサは、命令の実行時に、第2または第4の態様による方法を実行するように構成される。
【0012】
本開示の第7の態様によれば、1つまたは複数のコンピュータ・プロセッサによって実行された場合に、1つまたは複数のコンピュータ・プロセッサに、ビットストリームを受信させ、ビットストリームに基づいて第1または第3の態様による方法を実行させるコンピュータ実行可能命令を記憶するための非一時的コンピュータ可読記憶媒体が提供される。
【0013】
本開示の第8の態様によれば、1つまたは複数のコンピュータ・プロセッサによって実行された場合に、1つまたは複数のコンピュータ・プロセッサに、第2または第4の態様による方法を実行させて、現在のビデオ・ブロックをビットストリームに符号化させ、ビットストリームを送信させるコンピュータ実行可能命令を記憶するための非一時的コンピュータ可読記憶媒体が提供される。
【0014】
添付の図面に示された特定の例を参照して、本開示の例のより具体的な説明が行われる。これらの図面が一部の例のみを示しており、したがって範囲を限定するものとは見なされないことを考慮して、添付の図面を使用してさらに具体的かつ詳細に例が記載および説明される。
【図面の簡単な説明】
【0015】
【
図1A】本開示のいくつかの例によるビデオ・ブロックを符号化および復号するためのシステムを示すブロック図である。
【
図1B】本開示のいくつかの例による符号化器のブロック図である。
【
図1C-1F】本開示のいくつかの例による、フレームが、異なるサイズおよび形状の複数のビデオ・ブロックにどのように再帰的に分割されるかを示すブロック図である。
【
図2】本開示のいくつかの例による復号器のブロック図である。
【
図3A】本開示のいくつかの例によるマルチ・タイプ・ツリー構造におけるブロック分割を示す図である。
【
図3B】本開示のいくつかの例によるマルチ・タイプ・ツリー構造におけるブロック分割を示す図である。
【
図3C】本開示のいくつかの例によるマルチ・タイプ・ツリー構造におけるブロック分割を示す図である。
【
図3D】本開示のいくつかの例によるマルチ・タイプ・ツリー構造におけるブロック分割を示す図である。
【
図3E】本開示のいくつかの例によるマルチ・タイプ・ツリー構造におけるブロック分割を示す図である。
【
図4】本開示のいくつかの例によるユーザ・インターフェースと結合されたコンピューティング環境を示す図である。
【
図5】本開示のいくつかの例によるビデオ復号のための方法を示すフローチャートである。
【
図6】本開示のいくつかの例による
図5に示されたビデオ復号のための方法に対応するビデオ符号化のための方法を示すフローチャートである。
【
図7】本開示のいくつかの例によるビデオ復号のための方法を示すフローチャートである。
【
図8】本開示のいくつかの例による
図7に示されたビデオ復号のための方法に対応するビデオ符号化のための方法を示すフローチャートである。
【発明を実施するための形態】
【0016】
特定の実装への参照がここで詳細に行われ、その例が添付の図面に示されている。以下の詳細な説明では、本明細書に提示される主題の理解を助けるために、多数の非限定的な特定の詳細が示されている。しかしながら、様々な代替例が使用され得ることは当業者には明らかであろう。たとえば、本明細書で提示される主題が、デジタルビデオ機能を有する多くのタイプの電子デバイスで実施されることが可能であるということは当業者には明らかであろう。
【0017】
本開示で使用される用語は、特定の実施形態を説明する目的でのみ採用されており、本開示を限定することが意図されていない。本開示および添付の特許請求の範囲における単数形の「a/an」、「said」、および「the」は、本開示全体を通じて他の意味が明確に示されていない限り、複数形も含むものとする。本開示で使用される「および/または」という用語は、列挙された複数の関連項目のうちの1つまたはいずれかあるいは全ての可能な組み合わせを指し、これらを含むことも理解されたい。
【0018】
「一実施形態(one embodiment)」、「一実施形態(an embodiment)」、「一例(an example)」、「いくつかの実施形態(some embodiments)」、「いくつかの例(some examples)」、または同様の文言への本明細書全体での言及は、記載された特定の特徴、構造、または特性が少なくとも1つの実施形態または例に含まれることを意味する。1つまたはいくつかの実施形態に関連して説明される特徴、構造、要素、または特性は、特に明記されない限り、他の実施形態にも適用可能である。
【0019】
本開示全体を通じて、「第1」、「第2」、「第3」などの用語は全て、特に明記されない限り、空間的または時系列順序を暗示することなく、たとえば、デバイス、コンポーネント、組成物、ステップなどの関連する要素を参照するためだけの命名法として使用されている。たとえば、「第1のデバイス」および「第2のデバイス」は、別々に形成された2つのデバイス、または同一のデバイスの2つの部分、コンポーネントもしくは動作状態を指し得、任意に命名され得る。
【0020】
「モジュール」、「サブモジュール」、「回路(circuit)」、「サブ回路(sub-circuit)」、「回路(circuitry)」、「サブ回路(sub-circuitry)」、「ユニット」、または「サブユニット」という用語は、1つまたは複数のプロセッサで実行されることが可能なコードまたは命令を記憶するメモリ(共有、専用、またはグループ)を含み得る。モジュールは、記憶されたコードまたは命令を含むまたは含まない1つまたは複数の回路を含み得る。モジュールまたは回路は、直接または間接的に接続された1つまたは複数のコンポーネントを含み得る。これらのコンポーネントは、互いに物理的に取り付けられているか、または隣接して配置されていてもよく、そうでなくてもよい。
【0021】
本明細書で使用する場合、「~場合(if)」または「~とき(when)」という用語は、文脈に応じて「~すると(upon)」または「~に応答して(in response to)」を意味すると理解され得る。これらの用語は、請求項に登場する場合、関連する制限または特徴が条件付きまたは任意選択であることを示さない場合がある。たとえば、方法は、i)条件Xが存在するときまたは場合に、機能またはアクションX’が実行されるステップと、ii)条件Yが存在するときまたは場合に、機能またはアクションY’が実行されるステップと、を含み得る。この方法は、機能またはアクションX’を実行する能力と、機能またはアクションY’を実行する能力との両方を有して実施され得る。したがって、機能X’およびY’は、この方法の複数回の実行時に、その時々において、両方とも実行され得る。
【0022】
ユニットまたはモジュールは、純粋にソフトウェアによって、純粋にハードウェアによって、またはハードウェアとソフトウェアとの組み合わせによって実装され得る。純粋なソフトウェア実装では、たとえば、ユニットまたはモジュールは、特定の機能を実行するために直接的または間接的に相互にリンクされた機能的に関連するコード・ブロックまたはソフトウェア・コンポーネントを含み得る。
【0023】
図1Aは、本開示のいくつかの実装による、並行してビデオ・ブロックを符号化および復号するための例示的なシステム10を示すブロック図である。
図1Aに示されるように、システム10は、デスティネーション・デバイス14によって後で復号されるビデオ・データを生成および符号化するソース・デバイス12を含む。ソース・デバイス12およびデスティネーション・デバイス14は、デスクトップまたはラップトップ・コンピュータ、タブレット・コンピュータ、スマート・フォン、セット・トップ・ボックス、デジタル・テレビ、カメラ、表示デバイス、デジタル・メディア・プレーヤー、ビデオ・ゲーム・コンソール、ビデオ・ストリーミング・デバイスなどを含む多種多様な電子デバイスのいずれかを含み得る。いくつかの実装では、ソース・デバイス12およびデスティネーション・デバイス14には無線通信機能が搭載される。
【0024】
いくつかの実装では、デスティネーション・デバイス14は、リンク16を介して、復号されるべき符号化されたビデオ・データを受信し得る。リンク16は、符号化されたビデオ・データをソース・デバイス12からデスティネーション・デバイス14に移動することが可能な任意のタイプの通信媒体またはデバイスを含み得る。一例では、リンク16は、ソース・デバイス12が符号化されたビデオ・データをリアルタイムにデスティネーション・デバイス14に直接送信することを可能にするための通信媒体を含み得る。符号化されたビデオ・データは、無線通信プロトコルなどの通信規格に従って変調され、デスティネーション・デバイス14に送信され得る。通信媒体は、たとえば、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線など、任意の無線または有線通信媒体を含み得る。通信媒体は、パケットベースのネットワーク、たとえば、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはグローバル・ネットワーク、たとえば、インターネットなどの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソース・デバイス12からデスティネーション・デバイス14への通信を容易にするのに有用であり得る他の任意の機器を含み得る。
【0025】
いくつかの他の実装態様では、符号化済みビデオ・データは、出力インターフェース22から記憶デバイス32に送信され得る。その後、記憶デバイス32内の符号化されたビデオ・データは、デスティネーション・デバイス14によって入力インターフェース28を介してアクセスされ得る。記憶デバイス32は、ハード・ドライブ、ブルーレイ・ディスク、デジタル・バーサタイル・ディスク(DVD)、コンパクト・ディスク読み取り専用メモリ(CD-ROM)、フラッシュ・メモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオ・データを記憶するための他の任意の適切なデジタル記憶媒体などの、多様な分散型(distributed)のまたは局所(locally)アクセス型のデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイス32は、ソース・デバイス12によって生成された符号化されたビデオ・データを保持し得るファイル・サーバまたは他の中間記憶デバイスに対応し得る。デスティネーション・デバイス14は、ストリーミングまたはダウンロードにより、記憶デバイス32から記憶されたビデオ・データにアクセスし得る。ファイル・サーバは、符号化されたビデオ・データを記憶し、符号化されたビデオ・データをデスティネーション・デバイス14に送信することが可能な任意のタイプのコンピュータであり得る。例示的なファイル・サーバは、ウェブ・サーバ(たとえば、ウェブサイト用)、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカル・ディスク・ドライブを含む。デスティネーション・デバイス14は、ファイル・サーバに記憶されている符号化されたビデオ・データにアクセスするのに適した、無線チャネル(たとえば、ワイヤレス・フィデリティ(Wi-Fi)接続)、有線接続(たとえば、デジタル加入者線(DSL:Digital Subscriber Line)、ケーブルモデムなど)、または両方の組み合わせを含む、任意の標準的なデータ接続を介して符号化されたビデオ・データにアクセスし得る。記憶デバイス32からの符号化されたビデオ・データの送信は、ストリーミング送信、ダウンロード送信、または両方の組み合わせであり得る。
【0026】
図1Aに示されるように、ソース・デバイス12は、ビデオ・ソース18、ビデオ符号化器20、および出力インターフェース22を含む。ビデオ・ソース18は、たとえば、ビデオ・カメラのビデオ・キャプチャ・デバイス、キャプチャ済みのビデオを含むビデオ・アーカイブ、ビデオ・コンテンツ・プロバイダからビデオを受信するためのビデオ・フィード・インターフェース、および/またはコンピュータ・グラフィックス・データをソース・ビデオとして生成するためのコンピュータ・グラフィックス・システム、あるいはそのようなソースの組み合わせなどのソースを含み得る。一例として、ビデオ・ソース18がセキュリティ監視システムのビデオ・カメラである場合、ソース・デバイス12およびデスティネーション・デバイス14はカメラ付き電話またはビデオ電話を形成し得る。しかしながら、本出願で説明される実装は、一般にビデオ符号化に適用可能であり得、無線および/または有線アプリケーションに適用され得る。
【0027】
キャプチャされたビデオ、事前にキャプチャされたビデオ、またはコンピュータ生成されたビデオが、ビデオ符号化器20によって符号化され得る。符号化されたビデオ・データは、ソース・デバイス12の出力インターフェース22を介してデスティネーション・デバイス14に直接送信され得る。符号化されたビデオ・データはさらに(または代わりに)、復号および/または再生のために、デスティネーション・デバイス14または他のデバイスによって後でアクセスできるように、記憶デバイス32に記憶され得る。出力インターフェース22は、モデムおよび/または送信機をさらに含み得る。
【0028】
デスティネーション・デバイス14は、入力インターフェース28、ビデオ復号器30、および表示デバイス34を含む。入力インターフェース28は、受信機および/またはモデムを含み、リンク16を介して符号化されたビデオ・データを受信し得る。リンク16を介して伝達される、または記憶デバイス32上に提供される符号化されたビデオ・データは、ビデオ・データを復号する際にビデオ復号器30によって使用されるために、ビデオ符号化器20によって生成される多様な構文要素(syntax element)を含み得る。そのような構文要素は、通信媒体上で伝送される、記憶媒体上に記憶される、またはファイル・サーバ上に記憶される、符号化されたビデオ・データ内に含まれ得る。
【0029】
いくつかの実装では、デスティネーション・デバイス14は、一体化された表示デバイス、およびデスティネーション・デバイス14と通信するように構成される外部表示デバイスとすることができる表示デバイス34を含み得る。表示デバイス34は、復号されたビデオ・データをユーザに表示し、液晶ディスプレイ(LCD)、プラズマ・ディスプレイ、有機発光ダイオード(OLED:Organic Light Emitting Diode)ディスプレイ、または他のタイプの表示デバイスなどの多様な表示デバイスのいずれかを含み得る。
【0030】
ビデオ符号化器20およびビデオ復号器30は、独自規格または業界標準、たとえば、VVC、HEVC、MPEG-4、パート10、AVC、またはそのような規格の拡張に従って動作し得る。本出願は特定のビデオ符号化/復号規格に限定されず、他のビデオ符号化/復号規格にも適用可能であり得ることを理解されたい。一般に、ソース・デバイス12のビデオ符号化器20は、これらの現在または将来の規格のいずれかに従ってビデオ・データを符号化するように構成され得ることが考えられる。同様に、デスティネーション・デバイス14のビデオ復号器30は、これらの現在または将来の規格のいずれかに従ってビデオ・データを復号するように構成され得ることも一般に考えられる。
【0031】
ビデオ符号化器20およびビデオ復号器30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリート・ロジック、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせなどの多様な適切な符号化器および/または復号器回路のいずれかとして実装され得る。ソフトウェアで部分的に実装される場合、電子デバイスは、ソフトウェアの命令を適切な非一時的コンピュータ可読媒体に記憶し、1つまたは複数のプロセッサを使用してハードウェアで命令を実行して、本開示で開示されるビデオ符号化/復号動作を実行し得る。ビデオ符号化器20およびビデオ復号器30のそれぞれは、1つまたは複数の符号化器または復号器に含まれ得、そのいずれもが、符号化器/復号器の組み合わせ(CODEC:combined encoder/decoder)の一部としてそれぞれのデバイスに統合され得る。
【0032】
HEVCと同様に、VVCはブロック・ベースのハイブリッド・ビデオ符号化フレームワークに基づいて構築されている。
図1Bは、本開示のいくつかの実装によるブロック・ベースのビデオ符号化器を示すブロック図である。符号化器100において、入力ビデオ信号は、符号化ユニット(CU:coding unit)と呼ばれるブロックごとに処理される。符号化器100は、
図1Aに示されるビデオ符号化器20であり得る。VTM-1.0では、CUは最大128x128ピクセルとすることができる。しかしながら、4分木のみに基づいてブロックを分割するHEVCとは異なり、VVCでは、1つの符号化ツリー・ユニット(CTU:coding tree unit)が4分木/2分木/3分木に基づいて様々な局所特性に適応するようにCUに分割される。さらに、HEVCにおける複数の分割ユニット・タイプの概念が排除され、すなわち、CU、予測ユニット(PU:prediction unit)、および変換ユニット(TU:transform unit)の分離は、VVCにはもはや存在せず、代わりに、各CUが常に、さらなる分割なく、予測および変換の両方の基本単位として使用される。マルチ・タイプ・ツリー構造では、まず、1つのCTUが4分木構造により分割される。次に、各4分木リーフ・ノードは、2分木構造および3分木構造によってさらに分割されることができる。
【0033】
図3A~
図3Eは、本開示のいくつかの実装によるマルチ・タイプ・ツリー分割モードを示す概略図である。
図3A~
図3Eはそれぞれ、4分割(
図3A)、垂直2分割(
図3B)、水平2分割(
図3C)、垂直3分割(
図3D)、および水平3分割(
図3E)を含む5つの分割タイプを示している。
【0034】
所与のビデオ・ブロックごとに、空間予測および/または時間予測が実行され得る。空間予測(または「イントラ予測」)は、同じビデオ・ピクチャ/スライス内のすでに符号化された近傍ブロック(これらは参照サンプルと呼ばれる)のサンプルからのピクセルを使用して現在のビデオ・ブロックを予測する。空間予測はビデオ信号に内在する空間的冗長性を低減する。時間予測(「インター予測」または「動き補償予測」とも呼ばれる)は、すでに符号化されたビデオ・ピクチャからの再構成されたピクセルを使用して現在のビデオ・ブロックを予測する。時間予測はビデオ信号に内在する時間的冗長性を低減する。所与のCUの時間予測信号は通常、現在のCUとその時間参照との間の動きの量および方向を示す1つまたは複数の動きベクトル(MV:motion vector)によってシグナリングされる。また、複数の参照ピクチャがサポートされている場合、1つの参照ピクチャ・インデックスが追加で送られ、これは時間予測信号が参照ピクチャ・ストア内のどの参照ピクチャのものであるかを識別するために使用される。
【0035】
空間予測および/または時間予測の後、符号化器100内のイントラ/インター・モード決定回路121は、たとえばレート歪み最適化方法に基づいて、最良の予測モードを選ぶ。次いで、ブロック予測子(block predictor)120が現在のビデオ・ブロックから減算され、その結果得られた予測残差は変換回路102および量子化回路104を使用して無相関化される。その結果得られた量子化された残差係数は、逆量子化回路116によって逆量子化され、逆変換回路118によって逆変換されて、再構成された残差を形成し、これは次いで予測ブロックに再び加算されて、CUの再構成された信号を形成する。さらに、デブロッキング・フィルタ、サンプル適応オフセット(SAO:sample adaptive offset)、および/または適応インループ・フィルタ(ALF:adaptive in-loop filter)などのインループ・フィルタリング115が、再構成されたCUに適用され得、その後ピクチャ・バッファ117の参照ピクチャ・ストアに入れられ、将来のビデオ・ブロックを符号化するために使用される。出力ビデオ・ビットストリーム114を形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数は全てエントロピー符号化ユニット106に送られてさらに圧縮され、パックされてビットストリームを形成する。
【0036】
たとえば、AVC、HEVC、ならびにVVCの最新バージョンではデブロッキング・フィルタが利用可能である。HEVCでは、符号化効率をさらに向上させるために、SAOと呼ばれる追加のインループ・フィルタが定義されている。VVC規格の最新バージョンでは、ALFと呼ばれるさらに他のインループ・フィルタが積極的に研究されており、最終的な規格に含まれる十分な可能性を有している。
【0037】
これらのインループ・フィルタ操作は任意選択である。これらの操作を実行することは、符号化効率および視覚品質を向上させるのに役立つ。それらはまた、計算の複雑さを省くために符号化器100によって行われる決定としてオフにされ得る。
【0038】
イントラ予測は通常、フィルタリングされていない再構成されたピクセルに基づき、インター予測は、これらのフィルタ・オプションが符号化器100によってオンにされている場合、フィルタリングされた再構成されたピクセルに基づくことに留意されたい。
【0039】
図2は、多くのビデオ符号化規格と併せて使用され得るブロック・ベースのビデオ復号器200を示すブロック図である。この復号器200は、
図1Bの符号化器100に存在する再構成関連部分と同様である。ブロック・ベースのビデオ復号器200は、
図1Aに示されるビデオ復号器30であり得る。復号器200では、入来したビデオ・ビットストリーム201は最初にエントロピー復号202によって復号されて、量子化された係数レベルおよび予測関連情報を導出する。次いで、量子化された係数レベルは逆量子化204および逆変換206によって処理されて、再構成された予測残差を取得する。イントラ/インター・モード・セレクタ212に実装されたブロック予測メカニズムは、復号された予測情報に基づいてイントラ予測208または動き補償210のいずれかを実行するように構成される。総和器(summer)214を使用して逆変換206からの再構成された予測残差と、ブロック予測メカニズムによって生成された予測出力との総和をとることによって、フィルタリングされていない再構成されたピクセルのセットが取得される。
【0040】
再構成されたブロックはさらにインループ・フィルタ209を経由し得、その後、参照ピクチャ・ストアとして機能するピクチャ・バッファ213に記憶される。ピクチャ・バッファ213内の再構成されたビデオは、ディスプレイ・デバイスを駆動するために送出される共に、将来のビデオ・ブロックを予測するために使用され得る。インループ・フィルタ209がオンにされている状況では、これらの再構成されたピクセルにフィルタリング操作が実行されて、最終的な再構成されたビデオ出力222を導出する。
【0041】
現在のVVCおよびAVS3規格では、現在の符号化ブロックの動き情報は、マージ候補インデックスによって指定される空間的または時間的な近傍のブロックからコピーされるか、あるいは動き推定の明示的なシグナリングによって取得される。本開示の焦点は、アフィン・マージ候補の導出方法を改善することによって、アフィン・マージ・モードの動きベクトルの精度を向上させることである。本開示の説明を容易にするために、VVC規格における既存のアフィン・マージ・モード設計が、提案されたアイデアを説明するための例として使用される。VVC規格における既存のアフィン・モード設計が本開示全体を通して例として使用されるが、最新のビデオ符号化技術の当業者にとって、提案された技術は、異なる設計のアフィン動き予測モード、あるいは同じまたは類似の設計思想を有する他の符号化ツールにも適用され得ることに留意されたい。
【0042】
典型的なビデオ符号化プロセスでは、ビデオ・シーケンスは、典型的には、順序付けられたフレームまたはピクチャのセットを含む。各フレームは、SL、SCb、およびSCrと表される3つのサンプル配列を含み得る。SLはルマ・サンプル(luma sample)の2次元配列である。SCbはCbクロマ・サンプル(chroma sample)の2次元配列である。SCrはCrクロマ・サンプルの2次元配列である。他の例では、フレームはモノクロであり得、したがって、ルマ・サンプルのただ1つの2次元配列を含む。
【0043】
図1Cに示されるように、ビデオ符号化器20(またはより詳細には、ビデオ符号化器20の予測処理ユニット内の分割ユニット)は、最初にフレームをCTUのセットに分割することによって、フレームの符号化された表現を生成する。ビデオ・フレームは、ラスタ・スキャン順序で左から右および上から下に連続して並べられた整数個のCTUを含み得る。各CTUは最大の論理的な符号化ユニットであり、ビデオ・シーケンス内の全てのCTUが、128×128、64×64、32×32、および16×16のうちの1つである同じサイズを有するように、CTUの幅および高さがシーケンス・パラメータ・セットでビデオ符号化器20によってシグナリングされる。しかしながら、本出願は必ずしも特定のサイズに限定されないことに留意されたい。
図1Dに示されるように、各CTUは、ルマ・サンプルの1つのCTBと、クロマ・サンプルの2つの対応する符号化ツリー・ブロックと、符号化ツリー・ブロックのサンプルを符号化するために使用される構文要素とを含み得る。構文要素は、符号化されたピクセルのブロックの様々なタイプのユニットのプロパティと、インター予測またはイントラ予測、イントラ予測モード、動きベクトル、および他のパラメータを含めて、ビデオ復号器30でビデオ・シーケンスがどのように再構成され得るかと、を記述する。モノクロ・ピクチャまたは3つの別個のカラー・プレーンを有するピクチャでは、CTUは、単一の符号化ツリー・ブロックと、その符号化ツリー・ブロックのサンプルを符号化するために使用される構文要素とを含み得る。符号化ツリー・ブロックは、N×Nのサンプルのブロックであり得る。
【0044】
より良いパフォーマンスを達成するために、ビデオ符号化器20は、CTUの符号化ツリー・ブロックに対して、2分木分割、3分木分割、4分木分割、またはそれらの組み合わせなどのツリー分割を再帰的に実行し、CTUをより小さなCUに分割し得る。
図1Eに示されるように、64×64のCTU400はまず、それぞれが32×32のブロック・サイズを有する4つのより小さいCUに分割される。4つのより小さいCUのうち、CU410およびCU420はそれぞれ、16×16のブロック・サイズの4つのCUに分割される。2つの16×16のCU430および440はそれぞれ、8×8のブロック・サイズの4つのCUにさらに分割される。
図1Fは、
図1Eに示されたCTU400の分割プロセスの最終結果を示す4分木データ構造を示しており、4分木の各リーフ・ノードは、32×32から8×8までの範囲のそれぞれのサイズの1つのCUに対応する。
図1Dに示されたCTUと同様に、各CUは、同じサイズのフレームのルマ・サンプルのCBおよびクロマ・サンプルの2つの対応する符号化ブロックと、符号化ブロックのサンプルを符号化するために使用される構文要素とを含み得る。モノクロ・ピクチャまたは3つの別個のカラー・プレーンを有するピクチャでは、CUは、単一の符号化ブロックと、その符号化ブロックのサンプルを符号化するために使用されるシンタックス構造とを含み得る。
図1E~
図1Fに示された4分木分割は例示のみを目的としており、1つのCTUは、4分木/3分木/2分木分割に基づいて様々な局所特性に適応するようにCUに分割され得ることに留意されたい。マルチ・タイプ・ツリー構造では、1つのCTUが4分木構造によって分割され、各4分木リーフCUはさらに2分木構造および3分木構造によって分割されることができる。
図3A~
図3Eに示されるように、幅Wおよび高さHを有する符号化ブロックの可能な分割タイプは5つあり、すなわち、4分割、水平2分割、垂直2分割、水平3分割、および垂直3分割である。
【0045】
いくつかの実装では、ビデオ符号化器20は、CUの符号化ブロックを1つまたは複数のM×NのPBにさらに分割し得る。PBは、インターまたはイントラの同じ予測が適用されるサンプルの長方形(正方形または非正方形)のブロックである。CUのPUは、ルマ・サンプルのPBと、クロマ・サンプルの2つの対応するPBと、PBを予測するために使用される構文要素とを含み得る。モノクロ・ピクチャまたは3つの別個のカラー・プレーンを有するピクチャでは、PUは、単一のPBと、そのPBを予測するために使用されるシンタックス構造とを含み得る。ビデオ符号化器20は、CUの各PUのルマ、Cb、およびCrのPBに対する予測ルマ、Cb、およびCrブロックを生成し得る。
【0046】
ビデオ符号化器20は、PUの予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオ符号化器20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオ符号化器20は、PUに関連付けられたフレームの復号済みのサンプルに基づいてPUの予測ブロックを生成し得る。ビデオ符号化器20がPUの予測ブロックを生成するためにインター予測を使用する場合、ビデオ符号化器20は、PUに関連付けられたフレーム以外の1つまたは複数のフレームの復号済みのサンプルに基づいてPUの予測ブロックを生成し得る。
【0047】
ビデオ符号化器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符号化ブロック内の対応するサンプルとの差を示し得る。
【0048】
さらに、
図1Eに示されるように、ビデオ符号化器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は、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを含み得る。
【0049】
ビデオ符号化器20は、TUのルマ変換ブロックに1つまたは複数の変換を適用して、TUのルマ係数ブロックを生成し得る。係数ブロックは、変換係数の2次元配列であり得る。変換係数はスカラー量であり得る。ビデオ符号化器20は、TUのCb変換ブロックに1つまたは複数の変換を適用して、TUのCb係数ブロックを生成し得る。ビデオ符号化器20は、TUのCr変換ブロックに1つまたは複数の変換を適用して、TUのCr係数ブロックを生成し得る。
【0050】
係数ブロック(たとえば、ルマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、ビデオ符号化器20は、係数ブロックを量子化し得る。量子化は一般に、変換係数を表現するために使用されるデータ量を極力削減してさらなる圧縮を実現するために、変換係数が量子化されるプロセスを指す。ビデオ符号化器20が係数ブロックを量子化した後、ビデオ符号化器20は量子化された変換係数を示す構文要素をエントロピー符号化し得る。たとえば、ビデオ符号化器20は、量子化された変換係数を示す構文要素に対してCABACを実行し得る。最後に、ビデオ符号化器20は、符号化されたフレームおよび関連データの表現を形成するビットのシーケンスを含むビットストリームを出力し得、これは記憶デバイス32に保存されるか、またはデスティネーション・デバイス14に送信される。
【0051】
ビデオ復号器30は、ビデオ符号化器20によって生成されたビットストリームを受信した後、ビットストリームをパースして、ビットストリームから構文要素を取得し得る。ビデオ復号器30は、ビットストリームから取得された構文要素に少なくとも部分的に基づいてビデオ・データのフレームを再構成し得る。ビデオ・データを再構成するプロセスは、一般に、ビデオ符号化器20によって実行される符号化プロセスと相反的である。たとえば、ビデオ復号器30は、現在のCUのTUに関連付けられた係数ブロックに逆変換を実行して、現在のCUのTUに関連付けられた残差ブロックを再構成し得る。また、ビデオ復号器30は、現在のCUのPUの予測ブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに加算することによって、現在のCUの符号化ブロックを再構成する。フレームの各CUについて符号化ブロックを再構成した後、ビデオ復号器30はフレームを再構成し得る。
【0052】
上記で述べられたように、ビデオ符号化は主に2つのモード、すなわち、フレーム内予測(またはイントラ予測)とフレーム間予測(またはインター予測)とを使用してビデオ圧縮を実現する。IBCはフレーム内予測または第3のモードと見なされ得ることに留意されたい。2つのモードの間では、フレーム間予測はフレーム内予測よりも符号化効率により貢献し、その理由は、動きベクトルを使用して参照ビデオ・ブロックから現在のビデオ・ブロックを予測するためである。
【0053】
しかしながら、ビデオ・データ・キャプチャ技術が日々進歩し、ビデオ・データの詳細を保存するためにビデオ・ブロック・サイズがより精細化されているので、現在のフレームの動きベクトルを表現するために必要なデータ量も大幅に増加している。この課題を克服する1つの方法は、空間領域と時間領域との両方での近傍のCUのグループが予測のための類似のビデオ・データを有しているだけでなく、これらの近傍のCU間の動きベクトルも類似していることから恩恵を受けることである。したがって、空間的な近傍のCUおよび/または時間的に同位置のCUの動き情報を、それらの空間的および時間的相関を調べることによって、現在のCUの動き情報(たとえば、動きベクトル)の近似として使用することが可能であり、これは現在のCUの「動きベクトル予測子(MVP:Motion Vector Predictor)」とも呼ばれる。
【0054】
図1Bに関連して上述されたように、動き推定ユニットによって決定された現在のCUの実際の動きベクトルをビデオ・ビットストリームに符号化する代わりに、現在のCUの動きベクトル予測子が現在のCUの実際の動きベクトルから減算されて、現在のCUの動きベクトル差分(MVD:Motion Vector Difference)が生成される。そうすることで、フレームの各CUについて動き推定ユニットによって決定された動きベクトルをビデオ・ビットストリームに符号化する必要がなくなり、ビデオ・ビットストリーム内の動き情報を表現するために使用されるデータ量が大幅に削減されることができる。
【0055】
符号ブロックのフレーム間予測中に参照フレーム内の予測ブロックを選ぶプロセスと同様に、現在のCUの空間的な近傍のCUおよび/または時間的に同位置のCUに関連付けられた潜在的な候補動きベクトルを使用して、現在のCUに対する動きベクトル候補リスト(別名、「マージ・リスト」)を構築し、次いで、動きベクトル候補リストから1つのメンバーを現在のCUの動きベクトル予測子として選択するためのルールのセットがビデオ符号化器20およびビデオ復号器30の両方によって選ばれる必要がある。そうすることで、動きベクトル候補リスト自体をビデオ符号化器20からビデオ復号器30に送信する必要がなくなり、ビデオ符号化器20およびビデオ復号器30が動きベクトル候補リスト内の同じ動きベクトル予測子を使用して現在のCUを符号化および復号するには、動きベクトル候補リスト内の選択された動きベクトル予測子のインデックスで十分である。
【0056】
本開示の主な目的は、ハイブリッド・ビデオ符号化フレームワークで使用されるCABAC技術の効率を高めることである。具体的には、ビデオ信号を圧縮するときに生成される構文要素のバイナリ・シンボル(別名、略してビン(bin))の系列の確率推定の精度を高めるためのいくつかの改善が提案される。以下では、AVC、HEVC、およびVVCなどの最新のビデオ符号化規格で適用されている既存のCABAC技術の詳細な分析が最初に提供される。次に、既存のCABAC設計のいくつかの欠陥/制限が論じられる。その後、確率推定の精度を高めることを通じてCABAC効率を向上させるための方法が提案される。
【0057】
AVCおよびHEVCにおけるCABACの確率推定技術
CABACは元々H.264/AVC規格において、2つのサポートされているエントロピー符号化スキームのうちの1つとして導入された。CABACでは、算術符号化は、符号語マッピング(別名、バイナリ化)と確率推定との2つのモジュールで構成される。符号語マッピングのプロセスでは、構文要素がビンの列にマッピングされる。マッピングは、様々なバイナリ化スキームに基づいて構文要素をいくつかのビンのグループに変換する、いわゆるバイナライザによって実現される。実際には、固定長符号、単進符号、切り捨て単進符号(truncated unary code)、およびk次指数ゴロム符号などの様々なバイナリ化スキームがそのような変換に適用され得る。確率推定モジュールの目的は、1つのビンが1または0の値を有する尤度を決定することである。AVCでは、ビンの確率は指数エージング・モデル(exponential aging model)に基づいて計算され、このモデルでは、1つの現在のビンが1または0に等しい確率は、符号化済みの以前のビンの値に依存する。さらに、一般的なデータ統計によれば、1つの現在のビンの直前のビンの影響は、大抵、ずっと前に符号化されたビンよりも大きい。これを考慮して、CABACでは、現在のビンの確率を推定するために使用される符号化済みのビンの数Nを制御する1つのパラメータαが導入され、すなわち、N=1/αである。このパラメータは、符号化されたビンの増加と共に確率が更新される適応速度に転換される。具体的には、適応パラメータαを使用して、1つのビンが劣勢確率シンボル(LPS:least probable symbol)である確率が次のように再帰的に計算され、
p(t+1)=p(t)・(1-α)+x(t)・α (1)
ここで、p(t)は瞬間tにおけるLPSシンボルの確率であり、p(t+1)は瞬間t+1におけるLPSシンボルの更新された確率であり、x(t)は、現在のビンがLPSシンボルである場合は1に等しく、現在のビンが優勢確率シンボル(MPS:most probable symbol)である場合は0に等しい。AVCおよびHEVCのCABACエンジンでは、この確率は、(1)に従ってα≒1/19.69の固定値で各構文要素に対して独立して更新され、すなわち、1つの現在のビンの確率を推定するときに、約19.69個の符号化済みのビンが考慮される。さらに、確率推定中の乗算を回避するために、実数であって0から1までの範囲にある式(1)の確率p(t)は、固定の確率状態のセットに量子化される。たとえば、AVCとHEVCとの両方で、確率は7ビットの精度を有し、これは128個の確率状態に対応する。
【0058】
AVCおよびHEVCでは、ビデオ・ビットストリームは通常、1つまたは複数の独立して復号可能なスライスで構成される。各スライスの開始時に、全てのコンテキストの確率がいくつかの事前定義された値に初期化される。理論的には、1つの所与のコンテキストの統計的性質が分かっている場合、一様分布(すなわち、pinit=0.5)を使用してコンテキストの確率を初期化する必要がある。しかしながら、1つのコンテキストの確率をそれに対応する統計分布に迅速に追いつかせるために、各コンテキストにいくつかの適切な初期確率値(これは等確率でない場合がある)を提供すると有益であることが分かっている。具体的には、AVCおよびHEVCでは、1つのスライスの初期QP SliceQPYが与えられると、1つのコンテキストの初期確率状態InitProbStateが次のように計算され、
m=SlopeIdx・5-45
n=(OffsetIdx<<3)-16
InitProbState=Clip3(1,127,(m・SliceQPY)>>4+n) (2)
ここで、SlopeIdxおよびOffsetIdx(どちらも0~15の範囲内)は2つの初期化パラメータであり、これらは、1つのコンテキストの初期確率を計算するためのルック・アップ・テーブル(LUT)として事前定義され、記憶される。式(2)に示されるように、初期確率状態は、(m>>4)に等しい傾きと、nに等しいオフセットとを有するスライスQPの線形関数によってモデル化される。
【0059】
VVCにおけるCABACの確率推定技術
VVCで適用される確率推定モジュールは、AVCおよびHEVCのものとほぼ同じに保たれているが、次の重要な違いを除き、まず、VVCはコンテキストごとに2つの確率推定値を保持し、それぞれが式(1)において独自の確率適応レートαを有する。算術符号化に実際に使用される最終的な確率は、2つの推定値の平均であり、第2に、VVCでは、複数の確率LUTが事前定義され、1つのスライスの異なるコンテキストの確率を初期化するために使用される。一方、AVCおよびHEVCと同様に、確率の初期推定値は、スライスQPを入力とする1つの線形モデルに基づいて構築される。しかしながら、VVCでは、導出された値は実際の確率値を表し、AVC/HEVCでは、確率状態のインデックスを表す。
【0060】
多重仮説確率推定
全ての構文要素に対して1つの固定の適応パラメータを使用することは、それらの統計的特性が異なるため最適ではない場合があることは明らかである。一方、複数の確率推定量を使用すると、単一の推定量と比較してより高い推定精度が達成され得ることがいくつかの科学研究で分かっている。そのため、確率適応の低い速度および高い速度に対応する2つの異なる適応パラメータα0およびα1が利用される1つの多重仮説確率推定スキームがVVCのCABAC設計において適用されている。このように、2つの適応パラメータを使用して、ビンごとに2つの異なる確率が計算されることができ、次いでこれらを平均してビンの最終確率が生成され、すなわち、
p0(t+1)=p0(t)・(1-α0)+x(t)・α0
p1(t+1)=p1(t)・(1-α1)+x(t)・α1
p(t+1)=(p0(t+1)+p1(t+1))/2 (3)
ここで、α0およびα1は、2つの確率仮説に関連付けられた2つの適応パラメータである。VVCでは、α0およびα1の値は、適応パラメータならびに初期確率を合同で最適化するように設計された1つのトレーニング・アルゴリズムを使用して、コンテキストごとに独立して選択される。具体的には、現在の設計によれば、各コンテキストは、1つの事前定義された値のセット{1/4,1/8,1/16,1/32}からα0を選択し、他の事前定義された値のセット{1/32,1/64,1/128,1/256,1/512}からα1を選択することが可能になされている。
【0061】
初期確率計算
AVC/HEVCと同様に、VVCのCABACプロセスも、各スライスの開始時に1つのQP依存確率初期化プロセスを呼び出す。しかしながら、1つの確率ステートマシンの状態を初期化するAVC/HEVCと比較して、初期確率の実際の値が次のように直接導出され、
【数1】
ここで、SlopeIdxおよびOffsetIdxは、線形モデルの傾きおよびオフセットを計算するための2つの初期化パラメータであり、それぞれ3ビットの精度で表され、
【数2】
および
【数3】
は、2つの確率推定量に対して計算された2つの初期確率である。
【0062】
問題の記述
AVC/HEVCのCABAC設計と比較して、VVCの確率推定スキームは各コンテキストのビンの真の統計分布をより正確に捕捉することができるので、CABAC効率の向上につながる。しかしながら、その設計はまださらに改善されることができる。具体的には、本開示では、VVCのCABACプロセスの現在の確率推定に存在する以下の欠陥が特定される。
【0063】
まず、上記で論じられたように、VVCでは、多重仮説に基づく確率推定スキームが適用され、2つの確率推定量(一方は適応レートが速く、他方は適応レートが遅い)が各コンテキスト・モデルのビンの確率を推定する。さらに、既存の設計では、1つのビンの確率は2つの確率推定量の単純な平均にすぎない。固定の重みが、異なるコンテキストの様々なデータ統計に適応するのに十分なほど柔軟でない場合があることを考慮すると、そのような設計は最適とは言えない。
【0064】
一方、既存のVVC設計によれば、1つのスライス内の全てのコンテキストの確率は、異なるスライス・タイプ(slice type)(すなわち、I、B、およびPスライス)に対して事前に決定された初期コンテキスト値の3つのセットに基づいて初期化される。このうち、Iスライス・タイプの初期コンテキスト値のセットはIスライスのみへの使用が許可され、BスライスおよびPスライスの初期コンテキスト値のセットはBスライスまたはPスライスのいずれかへの使用が許可される。各ビデオ・ビットストリームのビンは通常、その固有の特徴により、互いに非常に異なる統計的特性を示す。したがって、初期コンテキスト値の3つの固定のセットのみを使用することは、確率推定量が各コンテキストの真の確率分布を迅速に捕捉するための効率的な開始点を提供するには、最適からは程遠いように思われる。一方、1つのビデオ・シーケンス内の強い時間的相関により、現在のスライスの前に符号化されたスライスからのコンテキストの確率統計は、現在のスライス内のコンテキストの確率を初期化するためのより正確な推定値を提供することができる可能性がある。
【0065】
本開示では、VVCにおける既存の確率推定スキームの問題/欠陥を解決するための方法が提案される。具体的には、ハードウェア・コーデック実装との親和性を考慮しながら確率推定精度をさらに向上させるための以下の方法が提案される。
【0066】
第1に、確率推定の精度を高めるために、重み付けされた多重仮説確率の更新を行う1つのバイナリ算術符号化が提案される。具体的には、単純な平均を使用する代わりに、各コンテキストの1つのビンを符号化するために使用される最終確率が、そのコンテキストに関連付けられた2つの確率推定量p0およびp1の1つの加重結合として計算される。さらに、1つのスライスの開始時のコンテキストの初期重みパラメータを示すための複数の初期化方法が提案される。
【0067】
第2に、インター符号化されたスライスのコンテキストの状態パラメータを初期化するための、1つの改良された初期化スキームが提案される。具体的には、既存の固定コンテキスト初期化テーブルの使用に加えて、提案されたスキームは、1つのインター符号化されたスライスにおけるコンテキストの状態パラメータ(たとえば、2つの確率推定量、適応レート、および2つの確率推定量の結合の重み係数)を、符号化済みのスライスの対応する状態パラメータからコピーされるように初期化することを可能にする。
【0068】
適応重みを用いた多重仮説確率推定
VVCでは、多重仮説に基づく確率推定が適用され、1つのコンテキストの各ビンを符号化するときの最終確率が2つの確率推定量の平均として計算される。異なるビデオ・ビットストリームの固有の統計特性を考慮すると、1つのコンテキストの2つの確率推定量を結合するときに、そのようなスキーム(すなわち、等しい重み(すなわち0.5)を使用する)が常に、真のシンボル統計を捕捉するのに十分なほど柔軟ではない場合があることは明らかである。したがって、このセクションでは、VVCの確率推定精度をさらに向上させるための、適応重みを用いた多重仮説確率推定(MHP-AW:multi-hypothesis probability estimation with adaptive weights)。具体的には、VVCのCABAC設計と同じく、2つの個別の確率推定量p0およびp1が、コンテキストごとに保持され、それらの独自の適応レートα0およびα1に基づいて更新される。しかしながら、固定の平均を使用する代わりに、提案されたスキームでは複数の重みパラメータが導入され、1つのコンテキストのバイナリ算術符号化に使用される最終確率pは、2つの確率推定量の加重結合に基づいて導出される。詳細には、提案された確率推定は次のように定式化されることができ、
p0(t+1)=p0(t)・(1-α0)+x(t)・α0
p1(t+1)=p1(t)・(1-α1)+x(t)・α1
p(t+1)=(1-ω)・p0(t)+ω・p1(t) (5)
ここで、ωは2つの確率推定値の結合に使用される重みであり、その値は[0,1]の範囲から取得される。式(5)において、重みωは1つの実数値を表し、これはハードウェア/ソフトウェア・コーデック実装のために整数に量子化される必要がある。実際には、ωの値を整数に変換するために様々な方法が適用され得る。たとえば、実際の重み値を近似するために、量子化ステップqstepを用いた1つの一様量子化器(uniform quantizer)が適用され得、これは1つの整数と量子化ステップとの乗算によって次のように行われ、
ω=ωint・qstep (6)
ここで、ωintは整数の重み値である。さらに、同じく1つの実数値である量子化ステップは、次のようにMビットの1回の右シフト演算として近似されることができる。
ω=ωint・qstep=ωint>>M (7)
【0069】
式(7)に示されるように、提案されたMHP-AWスキームをハードウェア/ソフトウェアで実装する場合、整数の重み値ωintのセットを記憶するには追加のメモリが必要になる。一方、式(5)に示されるように、整数の重みの精度(すなわち、M)により、2つの確率推定量の加重結合に必要な乗算器のビット幅も決まる。したがって、実際には、符号化効率とハードウェア/ソフトウェア実装の複雑さとの間の様々なトレードオフを実現するために、異なる整数の重み値のセットおよび表現精度が適用され得る。たとえば、表現精度Mが5に等しいと仮定すると、異なる整数値のセットが適用され得る。一例では、1つの事前定義されたセット{0,3,6,10,13,16,19,22,26,29,32}から各コンテキストの最適な重みを選択することが提案される。他の例では、1つの事前定義されたセット{0,6,11,16,21,26,32}から重みを設定することが提案される。さらに他の例では、事前定義された整数の重み値のセット{0,8,12,16,20,24,32}を使用することが提案される。
【0070】
確率および適応レートと同様に、提案されたMHP-AWスキームでは、重みωintの1つの初期値が、1つのスライスの先頭でコンテキストごとに提供される必要がある。以下では、MHP-AW重みの初期化のための様々なスキームが提案される。第1の方法では、複数の異なる事前定義されたテーブルを定義することが提案され、各テーブルは、1つのスライス内の全てのコンテキストに対する重み初期化値のセットを含む。1つのスライスを符号化/復号する前に、1つの事前定義されたテーブルが選択され得、対応するMHP-AW重みが、テーブルの対応する重み値に基づいて初期化される。たとえば、一実施形態では、いくつかのスライス・タイプ依存の初期重みテーブル、たとえば、I、P、およびBスライス用に特別に設計された重み初期化テーブルの3つのセットが導出され得る。このようにして、1つのスライスに対して、ビデオ符号化器は3つの事前定義されたテーブルから1つを選択して、スライス内のシンボル統計によりよく適応するようにMHP-AW重みを初期化し得る。そのようなスキームが適用される場合、以下の表1に示されるように、スライスごとに1つの追加の構文要素sh_cabac_weight_init_idxがシグナリングされ得、これはそのスライスに対してどの初期重みテーブルが選択されるかを示し、
【0071】
【表1】
ここで、シンタックスpps_cabac_weight_init_present_flagは、スライスごとに異なる初期重みテーブルを選択することが許可されているか否かを示す、ピクチャ・パラメータ・セット(PPS)でシグナリングされる1つの制御フラグである。このフラグが有効化されている場合、選択された初期重みテーブルを示すために、他のシンタックスsh_cabac_weight_init_idxがスライス・レベルでさらにシグナリングされる。他の実施形態では、IスライスのMHP-AW重みが、Iスライス・タイプに関連付けられた初期重みテーブルによって初期化されることのみを許可し、PスライスおよびBスライスのMHP-AW重みは、事前定義された重み初期化テーブルのうちの1つから初期化されることが許可されることが提案される。具体的には、現在のスライスのスライス・タイプに関連付けられた初期重みテーブルに加えて、1つのP(またはB)スライスがB(またはP)スライス・タイプの初期重みテーブルで初期化されることのみを許可することが提案される。対応して、そのような場合、以下の表2に示されるように、P/BスライスのMHP-AW重みの初期テーブル選択のためにスライスごとに1つのフラグのみがシグナリングされる必要がある。
【0072】
【表2】
フラグsh_cabac_weight_init_flagが0に等しい場合、これは、現在のスライスのスライス・タイプに対応する初期重みテーブルがそのスライスのMHP-AW重みの値を初期化するために使用されることを意味し、フラグが1に等しい場合、これは、現在のスライスが1つのBスライスである場合に、Pスライス・タイプに対応する初期重みテーブルがそのスライスのMHP-AW重みの値を初期化するために使用され、現在のスライスが1つのPスライスである場合に、Bスライス・タイプに対応する初期重みテーブルがそのスライスのMHP-AW重みの値を初期化するために使用されることを意味する。
【0073】
さらに、本開示の他の実施形態では、各コンテキストに対応するMHP-AW重みを含むように既存のCABAC初期化テーブルを拡張することが提案される。具体的には、そのような変更後、1つのCABAC初期化テーブルの各要素は、1)初期確率値と、2)2つの確率仮説の確率および適応速度を初期化するために使用される適応レートと、3)各コンテキストの確率を更新するときに2つの仮説を結合するために使用されるMHP-AWの重みと、を含む3つの異なるカテゴリの情報を含む。既存のVVC設計と同様に、そのようなスキームが適用される場合、複数のCABAC初期化テーブルが事前に決定され得、各スライスに関連付けられた2つの確率、2つの適応レート、ならびに結合重みの対応する値を初期化するために、各スライスに対してどの初期化テーブルが選択されるかを通知するための構文要素が符号化器から復号器にシグナリングされ得る。1つの特定の実施形態では、スライスでのCABAC初期化テーブルの選択を示すために、既存のCABAC初期化構文要素、すなわち、pps_cabac_init_present_flagおよびsh_cabac_init_flagを再利用することが提案される。そのような方法が適用される場合、IスライスのCABAC状態(すなわち、確率、適応レート、および結合重み)は、Iスライス・タイプの初期化テーブルによって初期化されることのみが許可され、P(またはB)スライスのCABAC状態は、B(またはP)スライス・タイプの初期化テーブルで初期化されることが許可される。他の実施形態では、いくつか(>3つ)のCABACテーブルを事前に決定し、1つのスライスのCABAC状態が事前定義されたテーブルのうちの1つから任意に初期化されることが許可されることが提案される。
【0074】
上記の全ての方法では、1つのスライスを符号化するときにコンテキストのMHP-AW重みを初期化するために固定値が使用されるが、これは算術符号化のための信頼できる確率推定を提供するには正確ではない場合がある。そのような問題を解決するために、スライスごとに最適なMHP-AW重みを計算し、対応する最適なMHP-AW重みを復号器にシグナリングする柔軟性を符号化器に与えることが提案される。
【0075】
一実施形態では、各コンテキスト要素の重み値を直接シグナリングすることが提案される。たとえば、スライス内のコンテキストのMHP-AW重みが1つの固定の初期化テーブルで初期化されるか否かを示すための1つのフラグが最初にシグナリングされ得る。フラグが1に等しい場合、どの重み初期化テーブルが現在のスライスに適用されるかを復号器に通知するための他の構文要素がシグナリングされ得、そうでない場合、すなわち、フラグが0に等しい場合、スライス内のコンテキストのMHP-AW重みは、ビットストリームからパースされた値によって初期化される。実際には、MHP-AW重み値の符号語を生成するために、たとえば、固定長符号、単進符号、k次指数ゴロム符号などの様々なバイナリ化方法が適用され得る。
【0076】
他の実施形態では、1つの適応的なシグナリング方法が提案される。具体的には、各スライスの開始時に、このスキームはまず、バイナリ・マップweightMap[]を符号化器から復号器に送信し、各要素は、対応するコンテキストが、選択されたデフォルトの初期化重みテーブルからの初期化された重み値を使用するか否かを示す。i番目のweightMap[]マップ・エントリが0に等しい場合、これは、現在のスライスのi番目のコンテキストのMHP-AW重みが、選択された初期化重みテーブル内の対応する値によって初期化されることを意味する。i番目のweightMap[]マップ・エントリが1に等しい場合、これは、現在のスライスのi番目のコンテキストのMHP-AW重みが、ビットストリームに示される初期値によって初期化されることを意味する。マップweightMap[]を符号化するために様々な方法が適用され得る。一例では、マップのバイナリ値を符号化するためにランレングス符号化を使用し、1つの1(または0)に出会う前の連続する0(または1)の数を示す1つの「ラン」値が送信されることが提案される。
【0077】
符号化済みのスライスからの初期CABAC状態の継承
上記で論じられたように、異なるビデオ・ビットストリーム内の同じコンテキストのシンボルは、通常、全く異なる統計的特性を示す。確率状態が事前定義されたCABACテーブルで固定されており、様々なスライスの固有の特徴に適応することができないと仮定する。事前定義された初期テーブルがビデオ・ビットストリームの真のシンボル統計から逸脱している場合、符号化効率が低下する可能性がある。CABAC効率を向上させるために、1つの以前のスライスを符号化/復号した後のコンテキスト状態からコンテキストを初期化するための改良されたCABAC初期化スキームが提案される。CABAC初期化のための以前のスライスを識別するには、様々な方法があり得る。
【0078】
一実施形態では、符号化済みのN個のスライスの出力コンテキスト状態を保持することが提案される。1つの現在のスライスが符号化される場合、ビデオ符号化器は、符号化済みのN個のスライスから最良のものを選択し、復号器に1つのインデックスをシグナリングして、(シグナリングされたインデックス値によって示される)選択された符号化済みのスライスの対応するコンテキスト状態から現在のスライスのコンテキストを初期化する。
【0079】
他の実施形態では、選択された符号化済みのスライスをビットストリームで直接シグナリングする代わりに、現在のスライスのコンテキスト初期化のための対応する符号化済みのスライスを選択するためのいくつかの暗黙的な復号器側での選択スキームが適用され得、これは以下を含む。
【0080】
ルール#1:符号化順序に従ってスライスの直前に符号化されたスライスを直接選択することが提案される。
【0081】
ルール#2:順序に従って現在のスライスに最も近く、同じスライス・タイプを有する、符号化済みのスライスを選択することが提案される。
【0082】
ルール#3:順序に従って現在のスライスに最も近く、現在のスライスとの最小のQP差を有する、符号化済みのスライスを選択することが提案される。
【0083】
ルール#4:順序に従って現在のスライスに最も近く、現在のスライスと同じ時間レイヤ(temporal layer)を有する、符号化済みのスライスを選択することが提案される。
【0084】
上記の暗黙的な選択ルールは別々に提案されているが、提案された初期CABAC状態継承スキームでは組み合わせて一緒に適用され得る。1つの特定の例では、ルール#2、#3、および#4を一緒に組み合わせることが提案される。具体的には、そのような組み合わせに基づいて、符号化器/復号器は、符号化順序に従って現在のスライスに最も近く、現在のスライスとの最小のQPの差を有する、同じスライス・タイプの符号化済みのスライスを選択し得る。そのような符号化済みのスライスが存在しない場合、現在のスライスのコンテキスト状態を初期化するために、既存の事前定義されたCABAC初期化テーブルのうちの1つが適用され得る。
【0085】
さらに、提案された継承ベースのコンテキスト初期化スキームでは、継承されたコンテキスト状態は、たとえば、確率値、適応レート、および結合重み(提案されたMHP-AWスキームが適用される場合)の、様々なカテゴリの状態情報を含み得る。本開示の一実施形態では、選択された符号化済みのスライスから1つの状態情報のみを継承し、現在のスライスのその他の状態情報は、既存の事前定義されたCABAC初期化テーブルを使用して初期化されることが提案される。他の実施形態では、選択された符号化済みのスライスから2つの状態情報のみを継承することが提案される。さらに他の実施形態では、選択された符号化済みのスライスの対応するコンテキスト状態から現在のスライスの全ての状態情報を継承することが提案される。
【0086】
上記の継承ベースのCABAC初期化は、コンテキストの初期化の効率を向上させることができるが、異なるスライス間にパースの依存関係を導入し得る。これは、1つの現在のスライスのエントロピー符号化が、その参照スライス(すなわち、選択された符号化済みのスライス)のエントロピー符号化が完全に終了するまで呼び出されることができないためである。
【0087】
エントロピー符号化の効率および並列性のより優れた制御を提供するために、1つの適応的なCABAC初期化スキームが提案され、1つの現在のスライスのコンテキスト状態が次の2つの方法のいずれかで初期化され得、1)事前定義されたCABAC初期化テーブルのうちの1つを使用して初期化されるか、または2)1つの符号化済みのスライスの結果的に得られたコンテキスト状態によって初期化される。具体的には、提案されたスキームでは、1つのスライスの先頭で1つのバイナリ・フラグが最初にシグナリングされる。フラグがゼロに等しい場合、これは、現在のスライスのコンテキストが、たとえば、構文要素sh_cabac_init_flagで示される、既存の事前定義されたCABAC初期化テーブルのうちの1つによって初期化されることを意味する。フラグが1に等しい場合、これは、継承ベースのコンテキスト初期化方法が適用され、初期化コンテキスト値が、現在のスライスの前に符号化された選択されたスライスから出力されるコンテキスト状態に設定されることを意味する。
【0088】
図4は、ユーザ・インターフェース460と結合されたコンピューティング環境(またはコンピューティング・デバイス)410を示している。コンピューティング環境410は、データ処理サーバの一部とすることができる。いくつかの実施形態では、コンピューティング・デバイス410は、本開示の様々な例に従って前述された様々な方法またはプロセス(たとえば、符号化/復号方法またはプロセス)のいずれかを実行することができる。コンピューティング環境410は、プロセッサ420、メモリ440、およびI/Oインターフェース450を含み得る。
【0089】
プロセッサ420は、典型的には、表示、データ取得、データ通信、および画像処理に関連付けられた動作など、コンピューティング環境410の全体的な動作を制御する。プロセッサ420は、上述の方法におけるステップの全てまたは一部を実施するための命令を実行するための1つまたは複数のプロセッサを含み得る。さらに、プロセッサ420は、プロセッサ420と他のコンポーネントとの間のインタラクションを容易にする1つまたは複数のモジュールを含み得る。プロセッサは、中央処理装置(CPU)、マイクロプロセッサ、シングルチップマシン、GPUなどであり得る。
【0090】
メモリ440は、コンピューティング環境410の動作をサポートするために様々なタイプのデータを記憶するように構成される。メモリ440は、所定のソフトウェア442を含み得る。そのようなデータの例は、コンピューティング環境410上で動作させられる任意のアプリケーションまたは方法のための命令、ビデオ・データセット、画像データなどを含む。メモリ440は、任意のタイプの揮発性もしくは不揮発性メモリ・デバイス、またはそれらの組み合わせ、たとえば、スタティック・ランダム・アクセス・メモリ(SRAM)、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)、消去可能プログラム可能読み取り専用メモリ(EPROM)、プログラム可能読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気メモリ、フラッシュ・メモリ、磁気ディスクまたは光ディスクを使用して実装され得る。
【0091】
I/Oインターフェース450は、プロセッサ420と周辺インターフェース・モジュール、たとえば、キーボード、クリックホイール、ボタンなどとの間のインターフェースを提供する。これらのボタンは、ホーム・ボタン、スキャン開始ボタン、およびスキャン停止ボタンを含み得るが、これらに限定されない。I/Oインターフェース450は、符号化器および復号器と結合されることができる。
【0092】
いくつかの実施形態では、上述の方法を実行するための、コンピューティング環境410内のプロセッサ420によって実行可能な、たとえばメモリ440に含まれる、複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。たとえば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピー・ディスク、光学データ記憶デバイスなどであり得る。
【0093】
非一時的コンピュータ可読記憶媒体は、1つまたは複数のプロセッサを有するコンピューティング・デバイスによって実行される複数のプログラムが記憶されており、複数のプログラムは、1つまたは複数のプロセッサによって実行された場合に、コンピューティング・デバイスに上述の動き予測のための方法を実行させる。
【0094】
いくつかの実施形態では、コンピューティング環境410は、上記の方法を実行するための、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル・ロジック・デバイス(PLD)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、グラフィカル・プロセッシング・ユニット(GPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子部品を用いて実装され得る。
【0095】
図5は、本開示の一例によるビデオ復号のための方法を示すフローチャートである。
【0096】
ステップ501において、プロセッサ420は、1つのバイナリ算術復号器側で、適応重みに従って、バイナリ算術復号器の1つの所与のコンテキスト・モデルの1つのバイナリ・シンボルの多重仮説確率を取得し得、多重仮説確率は、1つのバイナリ・シンボルがバイナリ値に等しい確率を示し、1つのバイナリ・シンボルは、コンテキスト・モデルに関連付けられた複数のバイナリ・シンボルからのものである。
【0097】
たとえば、適応重みは式(5)の重みωであり得、これは2つの確率推定値の結合に使用され、その値は範囲[0,1]から取得される。式(5)において、重みωは1つの実数値を表し、これはハードウェア/ソフトウェア・コーデック実装のために整数に量子化される必要がある。実際には、その値を整数に変換するために様々な方法が適用され得る。したがって、多重仮説確率は、適応重みωを使用した2つの確率推定値の結合である。
【0098】
いくつかの例では、プロセッサ420は、第1の適応パラメータに従って1つのバイナリ・シンボルの第1の確率を取得し、第2の適応パラメータに従って1つのバイナリ・シンボルの第2の確率を取得し得る。さらに、プロセッサ420は、適応重み、第1の確率、および第2の確率に従って、多重仮説確率を取得し得る。たとえば、第1の確率は式(5)のp0(t+1)であり得、第2の確率は式(5)のp1(t+1)であり得る。
【0099】
いくつかの例では、プロセッサ420は、重み初期化テーブル内の所定の整数の重み値のセットからコンテキスト・モデルに従って適応重みを取得し得る。
【0100】
「適応重みを用いた多重仮説確率推定」のセクションで論じられたように、1つの事前定義されたセットから各コンテキストの最適な重みを選択することが提案されている。たとえば、事前定義された整数の重み値のセット{0,3,6,10,13,16,19,22,26,29,32}、{0,6,11,16,21,26,32}、または{0,8,12,16,20,24,32}を使用することが提案されている。
【0101】
いくつかの例では、復号器は、各スライス・タイプの重み初期化テーブルを取得し、現在のスライスが第1のスライス・タイプであるとの決定に応答して、第1のスライス・タイプに従って重み初期化テーブルを選択し得、第1のスライス・タイプは、Iタイプ、Pタイプ、またはBタイプを含み、また選択された重み初期化テーブルに従って適応重みを取得することと、を実行し得る。
【0102】
いくつかの例では、プロセッサ420は、制御構文要素(control syntax element)が有効化されているとの決定に応答して、スライス・レベルで、各スライスのスライス・タイプに従って各スライスに対して選択された重み初期化テーブルを示す各スライスの適応重み構文要素を取得し得る。
【0103】
いくつかの例では、プロセッサ420は、各Iスライス用の第1の重み初期化テーブル、各Pスライス用の第2の重み初期化テーブル、および各Bスライス用の第3の重み初期化テーブルを取得し得る。さらに、プロセッサ420は、現在のスライスがIスライスであるとの決定に応答して、第1の重み初期化テーブルを選択し、現在のスライスがPスライスまたはBスライスであるとの決定に応答して、第2の重み初期化テーブルまたは第3の重み初期化テーブルを選択し、選択された重み初期化テーブルに従って適応重みを取得し得、これは表2に示されている。選択された重み初期化テーブルは、第1の重み初期化テーブル、第2の重み初期化テーブルまたは第3の重み初期化テーブルのうちの1つであり得る。
【0104】
ステップ502において、プロセッサ420は、多重仮説確率に従って1つのバイナリ・シンボルを復号し得る。
【0105】
図6は、
図5に示されたビデオ復号のための方法に対応するビデオ符号化のための方法を示すフローチャートである。
【0106】
ステップ601において、プロセッサ420は、1つのバイナリ算術復号器側で、適応重みに従って、バイナリ算術復号器の1つの所与のコンテキスト・モデルの1つのバイナリ・シンボルの多重仮説確率を決定し得、多重仮説確率は、1つのバイナリ・シンボルがバイナリ値に等しい確率を示し、1つのバイナリ・シンボルは、コンテキスト・モデルに関連付けられた複数のバイナリ・シンボルからのものである。たとえば、符号化器は、適応重みに従って、バイナリ算術復号器の1つの所与のコンテキスト・モデルの1つのバイナリ・シンボルの多重仮説確率を取得し得る。
【0107】
たとえば、適応重みは式(5)の重みωであり得、これは2つの確率推定値の結合に使用され、その値は範囲[0,1]から取得される。式(5)において、重みωは1つの実数値を表し、これはハードウェア/ソフトウェア・コーデック実装のために整数に量子化される必要がある。実際には、適応重みの値を整数に変換するために様々な方法が適用され得る。したがって、多重仮説確率は、適応重みωを使用した2つの確率推定値の結合である。
【0108】
いくつかの例では、プロセッサ420は、第1の適応パラメータに従って1つのバイナリ・シンボルの第1の確率を決定し、第2の適応パラメータに従って1つのバイナリ・シンボルの第2の確率を決定し得る。さらに、プロセッサ420は、適応重み、第1の確率、および第2の確率に従って、多重仮説確率を決定し得る。たとえば、第1の確率は式(5)のp0(t+1)であり得、第2の確率は式(5)のp1(t+1)であり得る。
【0109】
いくつかの例では、プロセッサ420は、重み初期化テーブル内の所定の整数の重み値のセットからコンテキスト・モデルに従って適応重みを決定し得る。
【0110】
「適応重みを用いた多重仮説確率推定」のセクションで論じられたように、1つの事前定義されたセットから各コンテキストの最適な重みを選択することが提案されている。たとえば、事前定義された整数の重み値のセット{0,3,6,10,13,16,19,22,26,29,32}、{0,6,11,16,21,26,32}、または{0,8,12,16,20,24,32}を使用することが提案されている。
【0111】
いくつかの例では、復号器は、各スライス・タイプの重み初期化テーブルを決定し、現在のスライスが第1のスライス・タイプであるとの決定に応答して、第1のスライス・タイプに従って重み初期化テーブルを選択し得、第1のスライス・タイプは、Iタイプ、Pタイプ、またはBタイプを含み、また選択された重み初期化テーブルに従って適応重みを取得することと、を実行し得る。
【0112】
いくつかの例では、プロセッサ420は、制御構文要素が有効化されているとの決定に応答して、スライス・レベルで、各スライスのスライス・タイプに従って各スライスに対して選択された重み初期化テーブルを示す各スライスの適応重み構文要素を決定し得る。
【0113】
いくつかの例では、プロセッサ420は、各Iスライス用の第1の重み初期化テーブル、各Pスライス用の第2の重み初期化テーブル、および各Bスライス用の第3の重み初期化テーブルを決定し得る。さらに、プロセッサ420は、現在のスライスがIスライスであるとの決定に応答して、第1の重み初期化テーブルを選択し、現在のスライスがPスライスまたはBスライスであるとの決定に応答して、第2の重み初期化テーブルまたは第3の重み初期化テーブルを選択し、選択された重み初期化テーブルに従って適応重みを決定し得、これは表2に示されている。選択された重み初期化テーブルは、第1の重み初期化テーブル、第2の重み初期化テーブルまたは第3の重み初期化テーブルのうちの1つであり得る。
【0114】
ステップ602において、プロセッサ420は、多重仮説確率に従って1つのバイナリ・シンボルを符号化し得る。たとえば、符号化器は、多重仮説確率に従って1つのバイナリ・シンボルを符号化し得る。
【0115】
図7は、本開示の一例によるビデオ復号のための方法を示すフローチャートである。
【0116】
ステップ701において、プロセッサ420は、復号器側で、現在のスライスの前に符号化された1つまたは複数のスライスを選択し得る。
【0117】
たとえば、「符号化済みのスライスからの初期CABAC状態の継承」のセクションで論じられたように、1つまたは複数のスライスは、N個の符号化済みのスライスであり得る。1つの現在のスライスが符号化される場合、ビデオ符号化器は、符号化済みのN個のスライスから最良のものを選択し、復号器に1つのインデックスをシグナリングして、(シグナリングされたインデックス値によって示される)選択された符号化済みのスライスの対応するコンテキスト状態から現在のスライスのコンテキストを初期化する。
【0118】
いくつかの例では、1つまたは複数のスライスは、現在のスライスの直前に符号化されたスライスを含み得る。
【0119】
いくつかの例では、1つまたは複数のスライスは、現在のスライスの直前に符号化されていないスライスを含み得、スライスは、スライスが現在のスライスと同じスライス・タイプを有するという条件、スライスが現在のスライスとの最小の量子化パラメータ(QP:quantization parameter)の差を有するという条件、または、スライスが現在のスライスと同じ時間レイヤを有するという条件、のうちの少なくとも1つを満たす。
【0120】
たとえば、ルール#1、ルール#2、ルール#3、ルール#4、またはこれらのルールの任意の組み合わせに従う、現在のスライスのコンテキスト初期化のための対応する符号化済みのスライスを選択するためのいくつかの暗黙的な復号器側での選択スキームが適用され得る。
【0121】
ステップ702において、プロセッサ420は、現在のスライスの前に符号化された1つのスライスの1つまたは複数のコンテキスト・モデルのコンテキスト状態を継承することによって、現在のスライスの1つまたは複数のコンテキスト・モデルの初期コンテキスト状態を取得し得る。
【0122】
コンテキスト状態を継承することにより、現在のスライスの1つまたは複数のコンテキスト・モデルは、1つの符号化済みのスライス(すなわち、現在のスライスの前に符号化された1つのスライス)の1つまたは複数のコンテキスト・モデルのコンテキスト状態を初期コンテキスト状態として使用する。
【0123】
いくつかの例では、1つまたは複数の初期コンテキスト状態は、確率値、適応レート、または適応重みのパラメータのうちの少なくとも1つを含み得る。
【0124】
たとえば、継承されたコンテキスト状態は、たとえば、確率値、適応レート、および結合重み(提案されたMHP-AWスキームが適用される場合)の、様々なカテゴリの状態情報を含み得る。本開示の一実施形態では、選択された符号化済みのスライスから1つの状態情報のみを継承し、現在のスライスのその他の状態情報は、既存の事前定義されたCABAC初期化テーブルを使用して初期化されることが提案される。他の実施形態では、選択された符号化済みのスライスから2つの状態情報のみを継承することが提案される。さらに他の実施形態では、選択された符号化済みのスライスの対応するコンテキスト状態から現在のスライスの全ての状態情報を継承することが提案される。
【0125】
いくつかの例では、プロセッサ420は、1つまたは複数の既存のコンテキスト・ベース適応バイナリ算術符号化(CABAC)初期化テーブルに従って、現在のスライスの少なくとも1つの第2の初期コンテキスト状態を取得し得、現在のスライスは、初期コンテキスト状態と、少なくとも1つの第2の初期コンテキスト状態とを含む。さらに、プロセッサ420は、初期コンテキスト状態および少なくとも1つの第2の初期コンテキスト状態に従って、現在のスライス内のバイナリ・シンボルを復号し得る。
【0126】
ステップ703において、プロセッサ420は、初期コンテキスト状態に従って現在のスライス内の1つまたは複数のコンテキスト・モデルに関連付けられたバイナリ・シンボルを復号し得る。
【0127】
図8は、
図7に示されたビデオ復号のための方法に対応するビデオ符号化のための方法を示すフローチャートである。
【0128】
ステップ801において、プロセッサ420は、符号化器側で、現在のスライスの前に符号化された1つまたは複数のスライスを選択し得る。
【0129】
たとえば、「符号化済みのスライスからの初期CABAC状態の継承」のセクションで論じられたように、1つまたは複数のスライスは、N個の符号化済みのスライスであり得る。1つの現在のスライスが符号化される場合、ビデオ符号化器は、符号化済みのN個のスライスから最良のものを選択し、復号器に1つのインデックスをシグナリングして、(シグナリングされたインデックス値によって示される)選択された符号化済みのスライスの対応するコンテキスト状態から現在のスライスのコンテキストを初期化する。
【0130】
いくつかの例では、1つまたは複数のスライスは、現在のスライスの直前に符号化されたスライスを含み得る。
【0131】
いくつかの例では、1つまたは複数のスライスは、現在のスライスの直前に符号化されていないスライスを含み得、スライスは、スライスが現在のスライスと同じスライス・タイプを有するという条件、スライスが現在のスライスとの最小の量子化パラメータ(QP)の差を有するという条件、または、スライスが現在のスライスと同じ時間レイヤを有するという条件、のうちの少なくとも1つを満たす。
【0132】
たとえば、ルール#1、ルール#2、ルール#3、ルール#4、またはこれらのルールの任意の組み合わせに従う、現在のスライスのコンテキスト初期化のための対応する符号化済みのスライスを選択するためのいくつかの暗黙的な選択スキームが適用され得る。
【0133】
ステップ802において、プロセッサ420は、現在のスライスの前に符号化された1つのスライスの1つまたは複数のコンテキスト・モデルのコンテキスト状態を継承することによって、現在のスライスの1つまたは複数のコンテキスト・モデルの初期コンテキスト状態を決定し得る。
【0134】
コンテキスト状態を継承することにより、現在のスライスの1つまたは複数のコンテキスト・モデルは、1つの符号化済みのスライス(すなわち、現在のスライスの前に符号化された1つのスライス)の1つまたは複数のコンテキスト・モデルのコンテキスト状態を初期コンテキスト状態として使用する。
【0135】
いくつかの例では、1つまたは複数の初期コンテキスト状態は、確率値、適応レート、または適応重みのパラメータのうちの少なくとも1つを含み得る。
【0136】
たとえば、継承されたコンテキスト状態は、たとえば、確率値、適応レート、および結合重み(提案されたMHP-AWスキームが適用される場合)の、様々なカテゴリの状態情報を含み得る。本開示の一実施形態では、選択された符号化済みのスライスから1つの状態情報のみを継承し、現在のスライスのその他の状態情報は、既存の事前定義されたCABAC初期化テーブルを使用して初期化されることが提案される。他の実施形態では、選択された符号化済みのスライスから2つの状態情報のみを継承することが提案される。さらに他の実施形態では、選択された符号化済みのスライスの対応するコンテキスト状態から現在のスライスの全ての状態情報を継承することが提案される。
【0137】
ステップ803において、プロセッサ420は、初期コンテキスト状態に従って現在のスライス内の1つまたは複数のコンテキスト・モデルに関連付けられたバイナリ・シンボルを符号化し得る。
【0138】
いくつかの例では、プロセッサ420は、1つまたは複数の既存のコンテキスト・ベース適応バイナリ算術符号化(CABAC)初期化テーブルに従って、現在のスライスの少なくとも1つの第2の初期コンテキスト状態を決定し得、現在のスライスは、初期コンテキスト状態と、少なくとも1つの第2の初期コンテキスト状態とを含む。さらに、プロセッサ420は、初期コンテキスト状態および少なくとも1つの第2の初期コンテキスト状態に従って、現在のスライス内のバイナリ・シンボルを符号化し得る。
【0139】
いくつかの例では、ビデオ符号化のための装置が提供される。この装置は、プロセッサ420と、プロセッサによって実行可能な命令を記憶するように構成されるメモリ440と、を含み、プロセッサは、命令の実行時に、上記で説明された任意の方法を実行するように構成される。
【0140】
他のいくつかの例では、命令が記憶された非一時的コンピュータ可読記憶媒体が提供される。命令がプロセッサ420によって実行された場合に、命令は本開示に示された任意の方法をプロセッサに実行させる。一例では、複数のプログラムは、符号化されたビデオ情報(たとえば、符号化されたビデオ・フレームを表現するビデオ・ブロック、ならびに/あるいは関連付けられた1つまたは複数の構文要素など)を含むビットストリームまたはデータストリームを(たとえば、
図2のビデオ符号化器20から)受信するために、コンピューティング環境410内のプロセッサ420によって実行され得、また、受信されたビットストリームまたはデータストリームに従って上述の復号方法を実行するために、コンピューティング環境410内のプロセッサ420によって実行され得る。他の例では、複数のプログラムは、上述の符号化方法を実行して、ビデオ情報(たとえば、ビデオ・フレームを表現するビデオ・ブロック、ならびに/あるいは関連付けられた1つまたは複数の構文要素など)をビットストリームまたはデータストリームに符号化するために、コンピューティング環境410内のプロセッサ420によって実行され得、また、ビットストリームまたはデータストリームを(たとえば、
図3のビデオ復号器30に)送信するために、コンピューティング環境410内のプロセッサ420によって実行され得る。あるいは、非一時的コンピュータ可読記憶媒体は、ビデオ・データの復号時に復号器(たとえば、
図3のビデオ復号器30)によって使用するための、たとえば上述の符号化方法を使用して符号化器(たとえば、
図2のビデオ符号化器20)によって生成された、符号化されたビデオ情報(たとえば、符号化されたビデオ・フレームを表現するビデオ・ブロック、ならびに/あるいは関連付けられた1つまたは複数の構文要素など)を含むビットストリームまたはデータストリームが記憶され得る。非一時的コンピュータ可読記憶媒体は、たとえば、ROM、ランダム・アクセス・メモリ(RAM)、CD-ROM、磁気テープ、フロッピー・ディスク、光学データ記憶デバイスなどであり得る。
【0141】
本開示の他の例は、本明細書を検討し、本明細書に開示された本開示を実践することにより当業者には明らかになろう。本出願は、本開示の一般原理に従い、当技術分野において知られているまたは慣行の範囲内にある本開示からの逸脱を含む、本開示のあらゆる変形、使用、または適応を網羅することが意図されている。本明細書および例は、単なる例示と見なされるべきであることが意図されている。
【0142】
本開示は、上記で説明され、添付の図面に示された厳密な例に限定されるものではなく、本開示の範囲から逸脱することなく様々な修正および変更が行われ得ることは理解されよう。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオ復号のための方法であって、
バイナリ算術復号器によって、適応重みに従って、前記バイナリ算術復号器の
コンテキスト・モデルの
バイナリ・シンボルの多重仮説確率(multi-hypothesis probability)を取得することであって、前記多重仮説確率は、前記
バイナリ・シンボルがバイナリ値に等しい確率を示し、前記
バイナリ・シンボルは、前記コンテキスト・モデルに関連付けられた複数のバイナリ・シンボルからのものである、前記取得することと、
前記
バイナリ算術復号器によって、前記多重仮説確率に従って前記
バイナリ・シンボルを復号することと、
を含む、方法。
【請求項2】
前記方法は、
前記
バイナリ算術復号器によって、第1の適応パラメータに従って前記バイナリ・シンボルの第1の確率を取得することと、
前記
バイナリ算術復号器によって、第2の適応パラメータに従って前記バイナリ・シンボルの第2の確率を取得することと、
前記
バイナリ算術復号器によって、前記適応重み、前記第1の確率、および前記第2の確率に従って、前記多重仮説確率を取得
することをさらに含み、または、
前記方法は、
前記バイナリ算術復号器によって、重み初期化テーブル内の所定の整数の重み値のセットから前記コンテキスト・モデル(context model)に従って前記適応重みを取得することをさらに含む、
請求項1に記載の方法。
【請求項3】
前記
バイナリ算術復号器によって、各スライス・タイプ(slice type)の重み初期化テーブルを取得することと、
現在のスライスが第1のスライス・タイプであるとの決定に応答して、前記
バイナリ算術復号器によって、前記第1のスライス・タイプに従って前記重み初期化テーブルを選択することであって、前記第1のスライス・タイプは、Iタイプ、Pタイプ、またはBタイプを含む、前記選択することと、
前記
バイナリ算術復号器によって、選択された前記重み初期化テーブルに従って前記適応重みを取得することと、
をさらに含む、請求項1に記載の方法。
【請求項4】
前記方法は、
前記
バイナリ算術復号器によって、各スライスに対して
前記重み初期化テーブルを選択するか否かを示すピクチャ・パラメータ・セット(PPS)内の制御構文要素(control syntax element)を取得すること
、または、
前記方法は、
前記制御構文要素が有効化されているとの決定に応答して、前記バイナリ算術復号器によって、スライス・レベルで、各スライスのスライス・タイプに従って各スライスに対して選択された重み初期化テーブルを示す各スライスの適応重み構文要素を取得すること
をさらに含む、請求項
3に記載の方法。
【請求項5】
前記
バイナリ算術復号器によって、各Iスライス用の第1の重み初期化テーブル、各Pスライス用の第2の重み初期化テーブル、および各Bスライス用の第3の重み初期化テーブルを取得することと、
現在のスライスがIスライスであるとの決定に応答して、前記
バイナリ算術復号器によって、前記第1の重み初期化テーブルを選択することと、
前記現在のスライスがPスライスまたはBスライスであるとの決定に応答して、前記
バイナリ算術復号器によって、前記第2の重み初期化テーブルまたは前記第3の重み初期化テーブルを選択することと、
前記
バイナリ算術復号器によって、選択された
重み初期化テーブルに従って前記適応重みを取得することと、
をさらに含む、請求項1に記載の方法。
【請求項6】
前記現在のスライスがIスライスでないとの決定に応答して、前記
バイナリ算術復号器によって、各スライスに対して重み初期化テーブルを選択するか否かを示すピクチャ・パラメータ・セット(PPS)内の制御構文要素を取得することと、
前記制御構文要素が有効化されているとの決定に応答して、前記
バイナリ算術復号器によって、スライス・レベルで、前記第2の重み初期化テーブルおよび前記第3の重み初期化テーブルから選択される重み初期化テーブルを示す各非Iスライスの適応重み構文要素を取得することと、
をさらに含む、請求項
5に記載の方法。
【請求項7】
ビデオ符号化のための方法であって、
バイナリ算術符号化器によって、適応重みに従って、前記バイナリ算術符号化器の
コンテキスト・モデルの複数のバイナリ・シンボルからの
バイナリ・シンボルの多重仮説確率を決定することであって、前記多重仮説確率は、前記
バイナリ・シンボルがバイナリ値に等しい確率を示す、前記決定することと、
前記
バイナリ算術符号化器によって、前記多重仮説確率に従って前記
バイナリ・シンボルを符号化することと、
を含む、方法。
【請求項8】
前記方法は、
前記
バイナリ算術符号化器によって、第1の適応パラメータに従って前記
バイナリ・シンボルの第1の確率を決定することと、
前記
バイナリ算術符号化器によって、第2の適応パラメータに従って前記
バイナリ・シンボルの第2の確率を決定することと、
前記
バイナリ算術符号化器によって、前記適応重み、前記第1の確率、および前記第2の確率に従って、前記多重仮説確率を決定することと、
をさらに含み、または、
前記方法は、
前記バイナリ算術符号化器によって、重み初期化テーブル内の所定の整数の重み値のセットに従って前記適応重みを重み値として事前に決定すること
をさらに含む、請求項
7に記載の方法。
【請求項9】
前記
バイナリ算術符号化器によって、各スライス・タイプの重み初期化テーブルを決定することと、
現在のスライスが第1のスライス・タイプであるとの決定に応答して、前記
バイナリ算術符号化器によって、前記第1のスライス・タイプに従って前記重み初期化テーブルを選択することであって、前記第1のスライス・タイプは、Iタイプ、Pタイプ、またはBタイプを含む、前記選択することと、
前記
バイナリ算術符号化器によって、選択された前記重み初期化テーブルに従って前記適応重みを決定することと、
をさらに含む、請求項
7に記載の方法。
【請求項10】
前記方法は、
前記
バイナリ算術符号化器によって、各スライスに対して
前記重み初期化テーブルを選択するか否かを示すためのピクチャ・パラメータ・セット(PPS)内の制御構文要素をシグナリングすること
をさらに含み、または、
前記方法は、
前記制御構文要素が有効化されているとの決定に応答して、前記バイナリ算術符号化器によって、スライス・レベルで、各スライスに対して選択された前記重み初期化テーブルを示すための各スライスの適応重み構文要素をシグナリングすること
をさらに含む、請求項
9に記載の方法。
【請求項11】
前記
バイナリ算術符号化器によって、各Iスライス用の第1の重み初期化テーブル、各Pスライス用の第2の重み初期化テーブル、および各Bスライス用の第3の重み初期化テーブルを決定することと、
現在のスライスがIスライスであるとの決定に応答して、前記
バイナリ算術符号化器によって、前記第1の重み初期化テーブルを選択することと、
前記現在のスライスがPスライスまたはBスライスであるとの決定に応答して、前記
バイナリ算術符号化器によって、前記第2の重み初期化テーブルまたは前記第3の重み初期化テーブルを選択することと、
前記
バイナリ算術符号化器によって、選択された重み初期化テーブルに従って前記適応重みを決定することと、
をさらに含む、請求項
7に記載の方法。
【請求項12】
前記現在のスライスがIスライスでないとの決定に応答して、前記
バイナリ算術符号化器によって、各スライスに対して重み初期化テーブルを選択するか否かを示すためのピクチャ・パラメータ・セット(PPS)内の制御構文要素をシグナリングすることと、
前記制御構文要素が有効化されているとの決定に応答して、前記
バイナリ算術符号化器によって、スライス・レベルで、前記第2の重み初期化テーブルおよび前記第3の重み初期化テーブルから選択される重み初期化テーブルを示すための各非Iスライスの適応重み構文要素をシグナリングすることと、
をさらに含む、請求項
11に記載の方法。
【請求項13】
ビデオ復号のための方法であって、
復号器によって、現在のスライスの前に符号化された1つまたは複数のスライスを選択することと、
前記復号器によって、前記現在のスライスの前に符号化された
スライスの1つまたは複数のコンテキスト・モデルのコンテキスト状態を継承することによって、前記現在のスライスの1つまたは複数のコンテキスト・モデルの初期コンテキスト状態を取得することと、
前記復号器によって、前記初期コンテキスト状態に従って前記現在のスライス内の前記1つまたは複数のコンテキスト・モデルに関連付けられたバイナリ・シンボルを復号することと、
を含む、方法。
【請求項14】
前記1つまたは複数のスライスは、前記現在のスライスの直前に符号化されたスライスを含
み、
または、
前記1つまたは複数のスライスは、前記現在のスライスの直前に符号化されていないスライスを含み、前記スライスは、
前記スライスが前記現在のスライスと同じスライス・タイプを有するという条件、
前記スライスが前記現在のスライスとの最小の量子化パラメータ(QP)の差を有するという条件、または、
前記スライスが前記現在のスライスと同じ時間レイヤを有するという条件、
のうちの少なくとも1つを満たす、
請求項
13に記載の方法。
【請求項15】
前記1つまたは複数の初期コンテキスト状態は、確率値、適応レート、または適応重みのパラメータのうちの少なくとも1つを含む、請求項
13に記載の方法。
【請求項16】
前記復号器によって、1つまたは複数の既存のコンテキスト・ベース適応バイナリ算術符号化(CABAC)初期化テーブルに従って、前記現在のスライスの少なくとも1つの第2の初期コンテキスト状態を取得することであって、前記現在のスライスは、前記初期コンテキスト状態と、前記少なくとも1つの第2の初期コンテキスト状態とを含む、前記取得することと、
前記復号器によって、前記初期コンテキスト状態および前記少なくとも1つの第2の初期コンテキスト状態に従って、前記現在のスライス内の前記バイナリ・シンボルを復号することと、
をさらに含む、請求項
13に記載の方法。
【請求項17】
ビデオ符号化のための方法であって、
符号化器によって、現在のスライスの前に符号化された1つまたは複数のスライスを選択することと、
前記符号化器によって、前記現在のスライスの前に符号化されたスライスから1つまたは複数のコンテキスト・モデルのコンテキスト状態を継承することによって、前記現在のスライスの前記1つまたは複数のコンテキスト・モデルの初期コンテキスト状態を決定することと、
前記符号化器によって、前記初期コンテキスト状態に従って前記現在のスライスの前記1つまたは複数のコンテキスト・モデルに関連付けられたバイナリ・シンボルを符号化することと、
を含む、方法。
【請求項18】
前記1つまたは複数のスライスは、前記現在のスライスの直前に符号化されたスライスを含
み、
または、
前記1つまたは複数のスライスは、前記現在のスライスの直前に符号化されていないスライスを含み、前記スライスは、
前記スライスが前記現在のスライスと同じスライス・タイプを有するという条件、
前記スライスが前記現在のスライスとの最小の量子化パラメータ(QP)の差を有するという条件、または、
前記スライスが前記現在のスライスと同じ時間レイヤを有するという条件、
のうちの少なくとも1つを満たす、
請求項
17に記載の方法。
【請求項19】
前記1つまたは複数の初期コンテキスト状態は、確率値、適応レート、または適応重みのパラメータのうちの少なくとも1つを含む、請求項
17に記載の方法。
【請求項20】
前記符号化器によって、1つまたは複数の既存のコンテキスト・ベース適応バイナリ算術符号化(CABAC)初期化テーブルに従って、前記現在のスライスの少なくとも1つの第2の初期コンテキスト状態を決定することであって、前記現在のスライスは、前記初期コンテキスト状態と、前記少なくとも1つの第2の初期コンテキスト状態とを含む、前記決定することと、
前記符号化器によって、前記初期コンテキスト状態および前記少なくとも1つの第2の初期コンテキスト状態に従って、前記現在のスライス内の前記バイナリ・シンボルを符号化することと、
をさらに含む、請求項
17に記載の方法。
【請求項21】
ビデオ復号のための装置であって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合され、前記1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されるメモリと、
を備え、
前記1つまたは複数のプロセッサは、前記命令の実行時に、請求項1~
6および
13~
16のいずれか一項に記載の方法を実行するように構成される、装置。
【請求項22】
ビデオ符号化のための装置であって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合され、前記1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されるメモリと、
を備え、
前記1つまたは複数のプロセッサは、前記命令の実行時に、請求項
7~
12および
17~
20のいずれか一項に記載の方法を実行するように構成される、装置。
【請求項23】
請求項1~6および13~16のいずれか一項に記載の方法によって復号されるビットストリーム、または請求項7~12および17~20のいずれか一項に記載の方法によって生成されるビットストリームを記憶するためのコンピュータ可読記憶媒体。
【請求項24】
ビットストリームを記憶するための方法であって、前記ビットストリームは、請求項1~6および13~16のいずれか一項に記載の方法によって使用され/復号され、または請求項7~12および17~20のいずれか一項に記載の方法によって生成される、方法。
【請求項25】
ビットストリームを受信するための方法であって、前記ビットストリームは、請求項1~6および13~16のいずれか一項に記載の方法によって使用され/復号される、方法。
【請求項26】
ビットストリームを送信するための方法であって、前記ビットストリームは、請求項7~12および17~20のいずれか一項に記載の方法によって生成される、方法。
【請求項27】
ビットストリームを記憶するための命令を含むコンピュータプログラムであって、前記ビットストリームは、請求項1~6および13~16のいずれか一項に記載の方法によって復号される、符号化されたビデオ・データ、または請求項7~12および17~20のいずれか一項に記載の方法によって生成される、符号化されたビデオ・データを含む、コンピュータプログラム。
【国際調査報告】