(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-20
(54)【発明の名称】高ビット深度ビデオコーディングのライスパラメータ導出のための低複雑度の履歴使用
(51)【国際特許分類】
H04N 19/13 20140101AFI20231213BHJP
H04N 19/136 20140101ALI20231213BHJP
H04N 19/176 20140101ALI20231213BHJP
【FI】
H04N19/13
H04N19/136
H04N19/176
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023533331
(86)(22)【出願日】2021-12-10
(85)【翻訳文提出日】2023-05-31
(86)【国際出願番号】 US2021062742
(87)【国際公開番号】W WO2022125854
(87)【国際公開日】2022-06-16
(32)【優先日】2020-12-10
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-12-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】ルサノフスキー、ドミトロ
(72)【発明者】
【氏名】カルチェビチ、マルタ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159RC12
5C159TA57
5C159TB08
5C159TB13
5C159TC31
5C159TC35
5C159TC41
5C159TC42
5C159TD07
5C159TD12
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
履歴ベースのライスパラメータ導出を使用してビデオデータを処理するための技法について本明細書で説明される。たとえば、プロセスは、複数のサンプルを含む変換ブロックを取得することを含むことができる。複数のサンプルのための1つまたは複数のパラメータ(たとえば、ライスパラメータ)は、複数のサンプルのうちの現在のサンプルの局所近傍を分析し、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定することによって、決定され得る。1つまたは複数の前に復号された変換ブロックから決定される履歴パラメータ値(たとえば、履歴ライスパラメータ値)が取得され得、この履歴パラメータ値に少なくとも部分的に基づいて、現在のサンプルのパラメータ(たとえば、ライスパラメータ)が決定され得る。現在のサンプルは、現在のサンプルの決定されたパラメータに基づいて復号され得る。
【選択図】
図5
【特許請求の範囲】
【請求項1】
ビデオデータを復号する方法であって、
変換ブロックを取得することと、前記変換ブロックは、複数のサンプルを含み、
前記複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、前記複数のサンプルのための1つまたは複数のパラメータを決定することと、
前記局所近傍の前記分析に少なくとも部分的に基づいて、前記現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定することと、
1つまたは複数の前に復号された変換ブロックから決定される履歴パラメータ値を取得することと、
前記履歴パラメータ値に少なくとも部分的に基づいて、前記現在のサンプルのパラメータを決定することと、
前記現在のサンプルの前記決定されたパラメータに基づいて前記現在のサンプルを復号することと、
を備える、方法。
【請求項2】
近隣変換係数の前記数が0であるという決定に少なくとも部分的に基づいて、前記履歴パラメータ値の第1の整数倍に基づいて前記現在のサンプルの前記パラメータを決定すること、
をさらに備える、請求項1に記載の方法。
【請求項3】
前記現在のサンプルの前記パラメータを決定することは、入力とパラメータとの間でマッピングするルックアップテーブルへの入力として、前記履歴パラメータ値の前記第1の整数倍を提供することを備える、請求項2に記載の方法。
【請求項4】
前記第1の整数倍と前記しきい値量は、同じ値である、請求項2に記載の方法。
【請求項5】
近隣変換係数の前記数が0よりも大きいという決定に少なくとも部分的に基づいて、前記履歴パラメータ値の第2の整数倍と前記近隣変換係数の合計とに基づいて前記現在のサンプルの前記パラメータを決定すること、
をさらに備える、請求項2に記載の方法。
【請求項6】
前記現在のサンプルの前記パラメータを決定することは、入力とパラメータとの間でマッピングするルックアップテーブルへの入力として、前記近隣変換係数の前記合計と合計された前記履歴パラメータ値の前記第2の整数倍を提供することを備える、請求項5に記載の方法。
【請求項7】
前記第2の整数倍は、前記第1の整数倍よりも小さい、請求項6に記載の方法。
【請求項8】
近隣変換係数の前記数が前記しきい値量よりも小さいと決定することは、前記現在のサンプルのための1つまたは複数の利用不可能な近隣変換係数を識別したことに少なくとも部分的に基づく、請求項1に記載の方法。
【請求項9】
前記変換ブロック内の前記現在のサンプルのロケーションを取得することと、
前記現在のサンプルの前記ロケーションを前記変換ブロックの幅および前記変換ブロックの高さのうちの1つまたは複数と比較することと、
前記比較に少なくとも部分的に基づいて、前記1つまたは複数の利用不可能な近隣変換係数を識別することと、
をさらに備える、請求項8に記載の方法。
【請求項10】
前記1つまたは複数の利用不可能な近隣変換係数は、前記変換ブロックの外部のロケーションに関連付けられる、請求項9に記載の方法。
【請求項11】
近隣変換係数の前記数が前記しきい値量よりも小さいと決定することは、
前記現在のサンプルの前記ロケーションの水平成分が前記変換ブロックの前記幅の第1の距離内にあると決定することと、
前記現在のサンプルの前記ロケーションの垂直成分が前記変換ブロックの前記高さの第2の距離内にあると決定することと、
を備える、請求項9に記載の方法。
【請求項12】
前記複数のサンプルは、変換ブロックサンプルタイプに関連付けられ、前記変換ブロックサンプルタイプは、ルーマサンプルまたはクロマサンプルを含む、請求項1に記載の方法。
【請求項13】
前記変換ブロックサンプルタイプは、前記履歴パラメータ値がそれから決定される、前記1つまたは複数の前に復号された変換ブロックに関連付けられたサンプルタイプと同じである、請求項12に記載の方法。
【請求項14】
前記履歴パラメータ値は、前記1つまたは複数の前に復号された変換ブロックの各々から取得される、第1の非0の復号された変換係数に少なくとも部分的に基づいて決定される、請求項1に記載の方法。
【請求項15】
前記1つまたは複数の前に復号された変換ブロックの各々から取得される、各第1の非0の復号された変換係数のバイナリコード長を決定することをさらに備える、請求項14に記載の方法。
【請求項16】
前記履歴パラメータ値は、前記1つまたは複数の前に復号された変換ブロックの各々の前記第1の非0の復号された変換係数のために決定される前記バイナリコード長の指数加重移動平均として決定される、請求項15に記載の方法。
【請求項17】
前記複数のサンプルのための前記1つまたは複数のパラメータは、1つまたは複数のライスパラメータを含み、前記履歴パラメータ値は、履歴ライスパラメータ値であり、前記現在のサンプルのために決定される前記パラメータは、前記現在のサンプルのライスパラメータである、請求項1に記載の方法。
【請求項18】
前記現在のサンプルの前記決定されたパラメータに基づいて前記現在のサンプルを復号することは、前記決定されたパラメータに基づいて前記現在のサンプルを示すシンタックス要素を復号することを備える、請求項1に記載の方法。
【請求項19】
前記決定されたパラメータに基づいて前記現在のサンプルを復号することは、前記決定されたパラメータを使用してゴロムライスコードを復号することを備える、請求項1に記載の方法。
【請求項20】
ビデオデータを復号する方法であって、
変換ブロックを取得することと、
前記変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0の復号された変換係数を決定することと、
前記1つまたは複数の非0の復号された変換係数の少なくとも一部分に基づいて、前記変換ブロックの履歴更新値を決定することと、
前記変換ブロックの前記履歴更新値を既存の履歴パラメータ値と組み合わせることに少なくとも部分的によって、前記既存の履歴パラメータ値を更新することと、前記既存の履歴パラメータ値は、一連の前に分析された変換ブロックから決定される、一連の非0の復号された変換係数に少なくとも部分的に基づく、
前記既存の履歴パラメータ値または前記更新された既存の履歴パラメータ値に基づいて、前記変換ブロックの少なくとも1つのサンプルを復号することと、
を備える、方法。
【請求項21】
前記変換ブロックの前記履歴更新値を前記既存の履歴パラメータ値と組み合わせることは、前記変換ブロックの前記履歴更新値を前記既存の履歴パラメータ値で平均化することを備える、請求項20に記載の方法。
【請求項22】
前記変換ブロックの前記履歴更新値を前記既存の履歴パラメータ値と組み合わせることは、前記変換ブロックの前記履歴更新値と前記既存の履歴パラメータ値との間の指数加重移動平均を決定することを備える、請求項20に記載の方法。
【請求項23】
前記変換ブロックの前記履歴更新値に第1の重みを、および前記既存の履歴パラメータ値に第2の重みを割り当てることをさらに備え、
前記指数加重移動平均を決定することは、前記第1の重みおよび前記第2の重みに少なくとも部分的に基づく、請求項22に記載の方法。
【請求項24】
前記変換ブロックの前記履歴更新値は、前記変換ブロックの前記分析において決定される、第1の非0の復号された変換係数に基づいて決定される、請求項20に記載の方法。
【請求項25】
前記第1の非0の復号された変換係数は、逆方向の前記変換ブロックのラン走査順序に基づいて決定される、請求項24に記載の方法。
【請求項26】
前記変換ブロックの前記履歴更新値は、前記第1の非0の復号された変換係数のバイナリコード長を決定することに少なくとも部分的によって決定される、請求項24に記載の方法。
【請求項27】
前記変換ブロックと、前記前に分析された変換ブロックとは、第1のスライスに関連付けられ、
前記既存の履歴パラメータ値は、同じスライスに関連付けられた連続的に分析される変換ブロックのために決定される連続的な履歴更新値に基づいて反復的に更新される、
請求項20に記載の方法。
【請求項28】
前記既存の履歴パラメータ値を所定の値に初期化することをさらに備え、
前記初期化することは、前記第1のスライスの第1の変換ブロックを分析することと、前記第1の変換ブロックの履歴更新値を決定することとの前に実施される、
請求項27に記載の方法。
【請求項29】
前記変換ブロックの前記履歴更新値は、前記変換ブロックの前記非0の復号された変換係数のすべてに基づいて決定される、請求項20に記載の方法。
【請求項30】
前記履歴更新値は、前記変換ブロックの前記非0の復号された変換係数のすべてを平均化することに少なくとも部分的によって決定される、請求項29に記載の方法。
【請求項31】
前記既存の履歴パラメータ値は、既存の履歴ライスパラメータ値である、請求項20に記載の方法。
【請求項32】
前記変換ブロックの前記少なくとも1つのサンプルを復号することは、前記既存の履歴パラメータ値または前記更新された既存の履歴パラメータ値に基づいて、前記少なくとも1つのサンプルを示すシンタックス要素を復号することを備える、請求項20に記載の方法。
【請求項33】
前記変換ブロックの前記少なくとも1つのサンプルを復号することは、前記既存の履歴パラメータ値または前記更新された既存の履歴パラメータ値を使用してゴロムライスコードを復号することを備える、請求項20に記載の方法。
【請求項34】
ビデオデータを復号するための装置であって、
少なくとも1つのメモリと、
前記少なくとも1つのメモリに結合された少なくとも1つのプロセッサと、を備え、前記少なくとも1つのプロセッサは、
変換ブロックを取得することと、前記変換ブロックが、複数のサンプルを含む、
前記複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、前記複数のサンプルのための1つまたは複数のパラメータを決定することと、
前記局所近傍の前記分析に少なくとも部分的に基づいて、前記現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定することと、
1つまたは複数の前に復号された変換ブロックから決定される履歴パラメータ値を取得することと、
前記履歴パラメータ値に少なくとも部分的に基づいて、前記現在のサンプルのパラメータを決定することと、
前記現在のサンプルの前記決定されたパラメータに基づいて前記現在のサンプルを復号することと、
を行うように構成された、装置。
【請求項35】
前記少なくとも1つのプロセッサは、
近隣変換係数の前記数が0であるという決定に少なくとも部分的に基づいて、前記履歴パラメータ値の第1の整数倍に基づいて前記現在のサンプルの前記パラメータを決定するように構成された、請求項34に記載の装置。
【請求項36】
前記現在のサンプルの前記パラメータを決定するために、前記少なくとも1つのプロセッサは、
入力とパラメータとの間でマッピングするルックアップテーブルへの入力として、前記履歴パラメータ値の前記第1の整数倍を提供するように構成された、請求項35に記載の装置。
【請求項37】
前記第1の整数倍と前記しきい値量は、同じ値である、請求項35に記載の装置。
【請求項38】
前記少なくとも1つのプロセッサは、
近隣変換係数の前記数が0よりも大きいという決定に少なくとも部分的に基づいて、前記履歴パラメータ値の第2の整数倍と前記近隣変換係数の合計とに基づいて前記現在のサンプルの前記パラメータを決定するように構成された、請求項35に記載の装置。
【請求項39】
前記現在のサンプルの前記パラメータを決定するために、前記少なくとも1つのプロセッサは、
入力とパラメータとの間でマッピングするルックアップテーブルへの入力として、前記近隣変換係数の前記合計と合計された前記履歴パラメータ値の前記第2の整数倍を提供するように構成された、請求項38に記載の装置。
【請求項40】
前記第2の整数倍は、前記第1の整数倍よりも小さい、請求項39に記載の装置。
【請求項41】
前記少なくとも1つのプロセッサは、前記現在のサンプルのための1つまたは複数の利用不可能な近隣変換係数を識別したことに少なくとも部分的に基づいて、近隣変換係数の前記数が前記しきい値量よりも小さいと決定するように構成された、請求項34に記載の装置。
【請求項42】
前記少なくとも1つのプロセッサは、
前記変換ブロック内の前記現在のサンプルのロケーションを取得することと、
前記現在のサンプルの前記ロケーションを前記変換ブロックの幅および前記変換ブロックの高さのうちの1つまたは複数と比較することと、
前記比較に少なくとも部分的に基づいて、前記1つまたは複数の利用不可能な近隣変換係数を識別することと、
を行うように構成された、請求項41に記載の装置。
【請求項43】
前記1つまたは複数の利用不可能な近隣変換係数は、前記変換ブロックの外部のロケーションに関連付けられる、請求項42に記載の装置。
【請求項44】
近隣変換係数の前記数が前記しきい値量よりも小さいと決定するために、前記少なくとも1つのプロセッサは、
前記現在のサンプルの前記ロケーションの水平成分が前記変換ブロックの前記幅の第1の距離内にあると決定することと、
前記現在のサンプルの前記ロケーションの垂直成分が前記変換ブロックの前記高さの第2の距離内にあると決定することと、
を行うように構成された、請求項42に記載の装置。
【請求項45】
前記複数のサンプルは、変換ブロックサンプルタイプに関連付けられ、前記変換ブロックサンプルタイプは、ルーマサンプルまたはクロマサンプルを含む、請求項44に記載の装置。
【請求項46】
前記変換ブロックサンプルタイプは、前記履歴パラメータ値がそれから決定される、前記1つまたは複数の前に復号された変換ブロックに関連付けられたサンプルタイプと同じである、請求項45に記載の装置。
【請求項47】
前記少なくとも1つのプロセッサは、
前記1つまたは複数の前に復号された変換ブロックの各々から取得される、第1の非0の復号された変換係数に少なくとも部分的に基づいて、前記履歴パラメータ値を決定するように構成された、請求項44に記載の装置。
【請求項48】
前記少なくとも1つのプロセッサは、
前記1つまたは複数の前に復号された変換ブロックの各々から取得される、各第1の非0の復号された変換係数のバイナリコード長を決定するように構成された、請求項47に記載の装置。
【請求項49】
前記少なくとも1つのプロセッサは、
前記履歴パラメータ値を、前記1つまたは複数の前に復号された変換ブロックの各々の前記第1の非0の復号された変換係数のために決定される前記バイナリコード長の指数加重移動平均として決定するように構成された、請求項48に記載の装置。
【請求項50】
前記複数のサンプルのための前記1つまたは複数のパラメータは、1つまたは複数のライスパラメータを含み、前記履歴パラメータ値は、履歴ライスパラメータ値であり、前記現在のサンプルのために決定される前記パラメータは、前記現在のサンプルのライスパラメータである、請求項34に記載の装置。
【請求項51】
前記現在のサンプルの前記決定されたパラメータに基づいて前記現在のサンプルを復号するために、前記少なくとも1つのプロセッサは、
前記決定されたパラメータに基づいて前記現在のサンプルを示すシンタックス要素を復号するように構成された、請求項34に記載の装置。
【請求項52】
前記現在のサンプルの前記決定されたパラメータに基づいて前記現在のサンプルを復号するために、前記少なくとも1つのプロセッサは、
前記決定されたパラメータを使用してゴロムライスコードを復号するように構成された、請求項34に記載の装置。
【請求項53】
ビデオデータを復号するための装置であって、
少なくとも1つのメモリと、
前記少なくとも1つのメモリに結合された少なくとも1つのプロセッサと、を備え、前記少なくとも1つのプロセッサは、
変換ブロックを取得することと、
前記変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0の復号された変換係数を決定することと、
前記1つまたは複数の非0の復号された変換係数の少なくとも一部分に基づいて、前記変換ブロックの履歴更新値を決定することと、
前記変換ブロックの前記履歴更新値を既存の履歴パラメータ値と組み合わせることに少なくとも部分的によって、前記既存の履歴パラメータ値を更新することと、前記既存の履歴パラメータ値は、一連の前に分析された変換ブロックから決定される、一連の非0の復号された変換係数に少なくとも部分的に基づく、
前記既存の履歴パラメータ値または前記更新された既存の履歴パラメータ値に基づいて、前記変換ブロックの少なくとも1つのサンプルを復号することと、
を行うように構成された、装置。
【請求項54】
前記変換ブロックの前記履歴更新値を前記既存の履歴パラメータ値と組み合わせるために、前記少なくとも1つのプロセッサは、
前記変換ブロックの前記履歴更新値を前記既存の履歴パラメータ値で平均化するように構成された、請求項53に記載の装置。
【請求項55】
前記変換ブロックの前記履歴更新値を前記既存の履歴パラメータ値と組み合わせるために、前記少なくとも1つのプロセッサは、
前記変換ブロックの前記履歴更新値と前記既存の履歴パラメータ値との間の指数加重移動平均を決定するように構成された、請求項53に記載の装置。
【請求項56】
前記少なくとも1つのプロセッサは、
前記変換ブロックの前記履歴更新値に第1の重みを、および前記既存の履歴パラメータ値に第2の重みを割り当てることと、
前記第1の重みおよび前記第2の重みに少なくとも部分的に基づいて前記指数加重移動平均を決定することと、
を行うように構成された、請求項55に記載の装置。
【請求項57】
前記少なくとも1つのプロセッサは、前記変換ブロックの前記分析において決定される、第1の非0の復号された変換係数に基づいて、前記変換ブロックの前記履歴更新値を決定するように構成された、請求項56に記載の装置。
【請求項58】
前記少なくとも1つのプロセッサは、逆方向の前記変換ブロックのラン走査順序に基づいて、前記第1の非0の復号された変換係数を決定するように構成された、請求項57に記載の装置。
【請求項59】
前記少なくとも1つのプロセッサは、前記第1の非0の復号された変換係数のバイナリコード長を決定することに少なくとも部分的によって、前記変換ブロックの前記履歴更新値を決定するように構成された、請求項57に記載の装置。
【請求項60】
前記変換ブロックと、前記前に分析された変換ブロックとは、第1のスライスに関連付けられ、
前記少なくとも1つのプロセッサは、同じスライスに関連付けられた連続的に分析される変換ブロックのために決定される連続的な履歴更新値に基づいて、前記既存の履歴パラメータ値を反復的に更新するように構成された、
請求項56に記載の装置。
【請求項61】
前記少なくとも1つのプロセッサは、前記既存の履歴パラメータ値を所定の値に初期化するように構成され、
前記初期化することは、前記第1のスライスの第1の変換ブロックを分析することと、前記第1の変換ブロックの履歴更新値を決定することとの前に実施される、請求項60に記載の装置。
【請求項62】
前記少なくとも1つのプロセッサは、前記変換ブロックの前記非0の復号された変換係数のすべてに基づいて、前記変換ブロックの前記履歴更新値を決定するように構成された、請求項56に記載の装置。
【請求項63】
前記少なくとも1つのプロセッサは、前記変換ブロックの前記非0の復号された変換係数のすべてを平均化することに少なくとも部分的によって、前記履歴更新値を決定するように構成された、請求項62に記載の装置。
【請求項64】
前記既存の履歴パラメータ値は、既存の履歴ライスパラメータ値である、請求項56に記載の装置。
【請求項65】
前記変換ブロックの前記少なくとも1つのサンプルを復号するために、前記少なくとも1つのプロセッサは、
前記既存の履歴パラメータ値または前記更新された既存の履歴パラメータ値に基づいて、前記少なくとも1つのサンプルを示すシンタックス要素を復号するように構成された、請求項53に記載の装置。
【請求項66】
前記変換ブロックの前記少なくとも1つのサンプルを復号するために、前記少なくとも1つのプロセッサは、
前記既存の履歴パラメータ値または前記更新された既存の履歴パラメータ値を使用してゴロムライスコードを復号するように構成された、請求項53に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本出願は、ビデオコーディング(たとえば、ビデオ符号化および/またはビデオ復号)に関する。たとえば、本出願の態様は、高ビット深度コーディングにおける通常残差コーディング(RRC:regular residual coding)のパラメータ導出(たとえば、ライス(rice)パラメータ導出)を改善するためのシステムおよび技法に関する。本システムおよび技法は、規格およびそれの拡張の中でも、汎用ビデオコーディング(VVC)規格の新しい拡張に適用可能である。
【背景技術】
【0002】
[0002]多くのデバイスおよびシステムは、ビデオデータが消費のために処理および出力されることを可能にする。デジタルビデオデータは、消費者およびビデオプロバイダの需要を満たすための大量のデータを含む。たとえば、ビデオデータの消費者は、高い忠実度、解像度、フレームレートなどを伴う、最高の品質のビデオを望む。その結果、これらの需要を満たすために必要とされる大量のビデオデータは、ビデオデータを処理および記憶する通信ネットワークおよびデバイスに負担をかける。
【0003】
[0003]様々なビデオコーディング技法が、ビデオデータを圧縮するために使用され得る。ビデオコーディングは、1つまたは複数のビデオコーディング規格に従って実施される。たとえば、ビデオコーディング規格は、特に、特に、汎用ビデオコーディング(VVC)、高効率ビデオコーディング(HEVC)、アドバンストビデオコーディング(AVC)、MPEG-2 Part 2コーディング(MPEGはmoving picture experts groupを表す)、ならびにアライアンスフォーオープンメディアによって開発されたAOMedia Video 1(AV1)などのプロプライエタリビデオコーデック/フォーマットを含む。ビデオコーディングは、概してビデオ画像またはシーケンス中に存在する冗長を利用する予測方法(たとえば、インター予測、イントラ予測など)を利用する。ビデオコーディング技法の目標は、ビデオ品質に対する劣化を回避するかまたは最小限に抑えながら、より低いビットレートを使用する形式にビデオデータを圧縮することである。常に発展しつつあるビデオサービスが利用可能になるとともに、より良いコーディング効率をもつ符号化技法が必要とされる。
【発明の概要】
【0004】
[0004]いくつかの例では、履歴パラメータ情報(たとえば、履歴ライスパラメータ情報)に少なくとも部分的に基づくパラメータ導出(たとえば、ライスパラメータ導出)のためのシステムおよび技法について説明される。少なくとも1つの例示的な例によれば、ビデオデータを復号する方法が提供される。方法は、変換ブロックを取得することと、変換ブロックが、複数のサンプルを含む;複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、複数のサンプルのための1つまたは複数のパラメータを決定することと;局所近傍の分析に少なくとも部分的に基づいて、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定することと;1つまたは複数の前に復号された変換ブロックから決定される履歴パラメータ値を取得することと;履歴パラメータ値に少なくとも部分的に基づいて、現在のサンプルのパラメータを決定することと;現在のサンプルの決定されたパラメータに基づいて現在のサンプルを復号することと、を含む。
【0005】
[0005]別の例では、ビデオデータを復号するための装置が提供され、装置は、メモリと、メモリに結合された(たとえば、回路中に実装された)1つまたは複数のプロセッサとを含む。1つまたは複数のプロセッサは、変換ブロックを取得することと、変換ブロックが、複数のサンプルを含む;複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、複数のサンプルのための1つまたは複数のパラメータを決定することと;局所近傍の分析に少なくとも部分的に基づいて、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定することと;1つまたは複数の前に復号された変換ブロックから決定される履歴パラメータ値を取得することと;履歴パラメータ値に少なくとも部分的に基づいて、現在のサンプルのパラメータを決定することと;現在のサンプルの決定されたパラメータに基づいて現在のサンプルを復号することと、を行うように構成され、それらを行うことができる。
【0006】
[0006]別の例では、命令を記憶した非一時的コンピュータ可読媒体が提供され、命令は、1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、変換ブロックを取得することと、変換ブロックが、複数のサンプルを含む;複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、複数のサンプルのための1つまたは複数のパラメータを決定することと;局所近傍の分析に少なくとも部分的に基づいて、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定することと;1つまたは複数の前に復号された変換ブロックから決定される履歴パラメータ値を取得することと;履歴パラメータ値に少なくとも部分的に基づいて、現在のサンプルのパラメータを決定することと;現在のサンプルの決定されたパラメータに基づいて現在のサンプルを復号することと、を行わせる。
【0007】
[0007]別の例では、装置が提供され、装置は、変換ブロックを取得するための手段と、変換ブロックが、複数のサンプルを含む;複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、複数のサンプルのための1つまたは複数のパラメータを決定するための手段と;局所近傍の分析に少なくとも部分的に基づいて、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定するための手段と;1つまたは複数の前に復号された変換ブロックから決定される履歴パラメータ値を取得するための手段と;履歴パラメータ値に少なくとも部分的に基づいて、現在のサンプルのパラメータを決定するための手段と;現在のサンプルの決定されたパラメータに基づいて現在のサンプルを復号するための手段と、を含む。
【0008】
[0008]別の例では、ビデオデータを符号化する方法が提供され、方法は、変換ブロックを取得することと、変換ブロックが、複数のサンプルを含む;複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、複数のサンプルのための1つまたは複数のパラメータを決定することと;局所近傍の分析に少なくとも部分的に基づいて、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定することと;1つまたは複数の前に符号化された変換ブロックから決定される履歴パラメータ値を取得することと;履歴パラメータ値に少なくとも部分的に基づいて、現在のサンプルのパラメータを決定することと;現在のサンプルの決定されたパラメータに基づいてビットストリームを生成することと、を含む。
【0009】
[0009]別の例では、ビデオデータを符号化するための装置が提供され、装置は、メモリと、メモリに結合された(たとえば、回路中に実装された)1つまたは複数のプロセッサとを含む。1つまたは複数のプロセッサは、変換ブロックを取得することと、変換ブロックが、複数のサンプルを含む;複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、複数のサンプルのための1つまたは複数のパラメータを決定することと;局所近傍の分析に少なくとも部分的に基づいて、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定することと;1つまたは複数の前に符号化された変換ブロックから決定される履歴パラメータ値を取得することと;履歴パラメータ値に少なくとも部分的に基づいて、現在のサンプルのパラメータを決定することと、現在のサンプルの決定されたパラメータに基づいてビットストリームを生成することと、を行うように構成され、それらを行うことができる。
【0010】
[0010]別の例では、命令を記憶した非一時的コンピュータ可読媒体が提供され、命令は、1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、変換ブロックを取得することと、変換ブロックが、複数のサンプルを含む;複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、複数のサンプルのための1つまたは複数のパラメータを決定することと;局所近傍の分析に少なくとも部分的に基づいて、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定することと;1つまたは複数の前に復号された変換ブロックから決定される履歴パラメータ値を取得することと;履歴パラメータ値に少なくとも部分的に基づいて、現在のサンプルのパラメータを決定することと;現在のサンプルの決定されたパラメータに基づいてビットストリームを生成することと、を行わせる。
【0011】
[0011]別の例では、装置が提供され、装置は、変換ブロックを取得するための手段と、変換ブロックが、複数のサンプルを含む;複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、複数のサンプルのための1つまたは複数のパラメータを決定するための手段と;局所近傍の分析に少なくとも部分的に基づいて、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定するための手段と;1つまたは複数の前に符号化された変換ブロックから決定される履歴パラメータ値を取得するための手段と;履歴パラメータ値に少なくとも部分的に基づいて、現在のサンプルのパラメータを決定するための手段と;現在のサンプルの決定されたパラメータに基づいてビットストリームを生成するための手段と、を含む。
【0012】
[0012]いくつかの態様では、複数のサンプルのための1つまたは複数のパラメータは、1つまたは複数のライスパラメータを含み、履歴パラメータ値は、履歴ライスパラメータ値であり、現在のサンプルのために決定されるパラメータは、現在のサンプルのライスパラメータである。いくつかの態様では、既存の履歴パラメータ値は、既存の履歴ライスパラメータ値である。
【0013】
[0013]いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、近隣変換係数の数が0であるという決定に少なくとも部分的に基づいて、履歴パラメータ値の第1の整数倍に基づいて現在のサンプルのパラメータを決定することをさらに備える。
【0014】
[0014]いくつかの態様では、現在のサンプルのパラメータを決定することは、入力とパラメータとの間でマッピングするルックアップテーブルへの入力として、履歴パラメータ値の第1の整数倍を提供することを備える。
【0015】
[0015]いくつかの態様では、第1の整数倍としきい値量は、同じ値である。
【0016】
[0016]いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、近隣変換係数の数が0よりも大きいという決定に少なくとも部分的に基づいて、履歴パラメータ値の第2の整数倍と近隣変換係数の合計とに基づいて現在のサンプルのパラメータを決定することをさらに備える。
【0017】
[0017]いくつかの態様では、現在のサンプルのパラメータを決定することは、入力とパラメータとの間でマッピングするルックアップテーブルへの入力として、近隣変換係数の合計と合計された履歴パラメータ値の第2の整数倍を提供することを備える。
【0018】
[0018]いくつかの態様では、第2の整数倍は、第1の整数倍よりも小さい。
【0019】
[0019]いくつかの態様では、近隣変換係数の数がしきい値量よりも小さいと決定することは、現在のサンプルのための1つまたは複数の利用不可能な近隣変換係数を識別したことに少なくとも部分的に基づく。
【0020】
[0020]いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、変換ブロック内の現在のサンプルのロケーションを取得することと;現在のサンプルのロケーションを変換ブロックの幅および変換ブロックの高さのうちの1つまたは複数と比較することと;比較に少なくとも部分的に基づいて、1つまたは複数の利用不可能な近隣変換係数を識別することと、をさらに備える。
【0021】
[0021]いくつかの態様では、1つまたは複数の利用不可能な近隣変換係数は、変換ブロックの外部のロケーションに関連付けられる。
【0022】
[0022]いくつかの態様では、近隣変換係数の数がしきい値量よりも小さいと決定することは、現在のサンプルのロケーションの水平成分が変換ブロックの幅の第1の距離内にあると決定することと;現在のサンプルのロケーションの垂直成分が変換ブロックの高さの第2の距離内にあると決定することと、を備える。
【0023】
[0023]いくつかの態様では、複数のサンプルは、変換ブロックサンプルタイプに関連付けられ、変換ブロックサンプルタイプは、ルーマサンプルまたはクロマサンプルを含む。
【0024】
[0024]いくつかの態様では、変換ブロックサンプルタイプは、履歴パラメータ値がそれから決定される、1つまたは複数の前に復号された変換ブロックに関連付けられたサンプルタイプと同じである。
【0025】
[0025]いくつかの態様では、履歴パラメータ値は、1つまたは複数の前に復号された変換ブロックの各々から取得される、第1の非0の復号された変換係数に少なくとも部分的に基づいて決定される。
【0026】
[0026]いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、1つまたは複数の前に復号された変換ブロックの各々から取得される、各第1の非0の復号された変換係数のバイナリコード長を決定することをさらに備える。
【0027】
[0027]いくつかの態様では、履歴パラメータ値は、1つまたは複数の前に復号された変換ブロックの各々の第1の非0の復号された変換係数のために決定されるバイナリコード長の指数加重移動平均として決定される。
【0028】
[0028]いくつかの態様では、現在のサンプルの決定されたパラメータに基づいて現在のサンプルを復号することは、決定されたパラメータに基づいて現在のサンプルを示すシンタックス要素を復号することを備える。
【0029】
[0029]いくつかの態様では、決定されたパラメータに基づいて現在のサンプルを復号することは、決定されたパラメータを使用してゴロムライスコードを復号することを備える。
【0030】
[0030]別の例では、ビデオデータを復号する方法が提供され、方法は、変換ブロックを取得することと;変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0の復号された変換係数を決定することと;1つまたは複数の非0の復号された変換係数の少なくとも一部分に基づいて、変換ブロックの履歴更新値を決定することと;変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることに少なくとも部分的によって既存の履歴パラメータ値を更新することと、既存の履歴パラメータ値が、一連の前に分析された変換ブロックから決定される、一連の非0の復号された変換係数に少なくとも部分的に基づく;既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいて、変換ブロックの少なくとも1つのサンプルを復号することと、を含む。
【0031】
[0031]別の例では、ビデオデータを復号するための装置が提供され、装置は、メモリと、メモリに結合された(たとえば、回路中に実装された)1つまたは複数のプロセッサとを含む。1つまたは複数のプロセッサは、変換ブロックを取得することと;変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0の復号された変換係数を決定することと;1つまたは複数の非0の復号された変換係数の少なくとも一部分に基づいて、変換ブロックの履歴更新値を決定することと;変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることに少なくとも部分的によって既存の履歴パラメータ値を更新することと、既存の履歴パラメータ値が、一連の前に分析された変換ブロックから決定される、一連の非0の復号された変換係数に少なくとも部分的に基づく;既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいて、変換ブロックの少なくとも1つのサンプルを復号することと、を行うように構成され、それらを行うことができる。
【0032】
[0032]別の例では、命令を記憶した非一時的コンピュータ可読媒体が提供され、命令は、1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、変換ブロックを取得することと;変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0の復号された変換係数を決定することと;1つまたは複数の非0の復号された変換係数の少なくとも一部分に基づいて、変換ブロックの履歴更新値を決定することと;変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることに少なくとも部分的によって既存の履歴パラメータ値を更新することと、既存の履歴パラメータ値が、一連の前に分析された変換ブロックから決定される、一連の非0の復号された変換係数に少なくとも部分的に基づく;既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいて、変換ブロックの少なくとも1つのサンプルを復号することと、を行わせる。
【0033】
[0033]別の例では、装置が提供され、装置は、変換ブロックを取得するための手段と;変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0の復号された変換係数を決定するための手段と;1つまたは複数の非0の復号された変換係数の少なくとも一部分に基づいて、変換ブロックの履歴更新値を決定するための手段と;変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることに少なくとも部分的によって既存の履歴パラメータ値を更新するための手段と、既存の履歴パラメータ値が、一連の前に分析された変換ブロックから決定される、一連の非0の復号された変換係数に少なくとも部分的に基づく;既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいて、変換ブロックの少なくとも1つのサンプルを復号するための手段と、を含む。
【0034】
[0034]別の例では、ビデオデータを符号化する方法が提供され、方法は、変換ブロックを取得することと;変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0のコーディングされた変換係数を決定することと;1つまたは複数の非0のコーディングされた変換係数の少なくとも一部分に基づいて、変換ブロックの履歴更新値を決定することと;変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることに少なくとも部分的によって既存の履歴パラメータ値を更新することと、既存の履歴パラメータ値が、一連の前に分析された変換ブロックから決定される、一連の非0のコーディングされた変換係数に少なくとも部分的に基づく;既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいてビットストリームを生成することと、を含む。
【0035】
[0035]別の例では、ビデオデータを符号化するための装置が提供され、装置は、メモリと、メモリに結合された(たとえば、回路中に実装された)1つまたは複数のプロセッサとを含む。1つまたは複数のプロセッサは、変換ブロックを取得することと;変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0のコーディングされた変換係数を決定することと;1つまたは複数の非0のコーディングされた変換係数の少なくとも一部分に基づいて、変換ブロックの履歴更新値を決定することと;変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることに少なくとも部分的によって既存の履歴パラメータ値を更新することと、既存の履歴パラメータ値が、一連の前に分析された変換ブロックから決定される、一連の非0のコーディングされた変換係数に少なくとも部分的に基づく;既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいてビットストリームを生成することと、を行うように構成され、それらを行うことができる。
【0036】
[0036]別の例では、命令を記憶した非一時的コンピュータ可読媒体が提供され、命令は、1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、変換ブロックを取得することと;変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0の復号された変換係数を決定することと;1つまたは複数の非0の復号された変換係数の少なくとも一部分に基づいて、変換ブロックの履歴更新値を決定することと;変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることに少なくとも部分的によって既存の履歴パラメータ値を更新することと、既存の履歴パラメータ値が、一連の前に分析された変換ブロックから決定される、一連の非0の復号された変換係数に少なくとも部分的に基づく;既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいてビットストリームを生成することと、を行わせる。
【0037】
[0037]別の例では、装置が提供され、装置は、変換ブロックを取得するための手段と;変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0のコーディングされた変換係数を決定するための手段と;1つまたは複数の非0のコーディングされた変換係数の少なくとも一部分に基づいて、変換ブロックの履歴更新値を決定するための手段と;変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることに少なくとも部分的によって既存の履歴パラメータ値を更新するための手段と、既存の履歴パラメータ値が、一連の前に分析された変換ブロックから決定される、一連の非0のコーディングされた変換係数に少なくとも部分的に基づく;既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいてビットストリームを生成するための手段と、を含む。
【0038】
[0038]いくつかの態様では、変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることは、変換ブロックの履歴更新値を既存の履歴パラメータ値で平均化することを備える。
【0039】
[0039]いくつかの態様では、変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることは、変換ブロックの履歴更新値と既存の履歴パラメータ値との間の指数加重移動平均を決定することを備える。
【0040】
[0040]いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、変換ブロックの履歴更新値に第1の重みを、および既存の履歴パラメータ値に第2の重みを割り当てることをさらに備え、ここにおいて、指数加重移動平均を決定することは、第1の重みおよび第2の重みに少なくとも部分的に基づく。
【0041】
[0041]いくつかの態様では、変換ブロックの履歴更新値は、変換ブロックの分析において決定される、第1の非0の復号された変換係数に基づいて決定される。
【0042】
[0042]いくつかの態様では、第1の非0の復号された変換係数は、逆方向の変換ブロックのラン走査順序に基づいて決定される。
【0043】
[0043]いくつかの態様では、変換ブロックの履歴更新値は、第1の非0の復号された変換係数のバイナリコード長を決定することに少なくとも部分的によって決定される。
【0044】
[0044]いくつかの態様では、変換ブロックと、前に分析された変換ブロックとは、第1のスライスに関連付けられ、既存の履歴パラメータ値は、同じスライスに関連付けられた連続的に分析される変換ブロックのために決定される連続的な履歴更新値に基づいて反復的に更新される。
【0045】
[0045]いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、既存の履歴パラメータ値を所定の値に初期化することをさらに備え、ここにおいて、初期化することは、第1のスライスの第1の変換ブロックを分析することと、第1の変換ブロックの履歴更新値を決定することとの前に実施される。
【0046】
[0046]いくつかの態様では、変換ブロックの履歴更新値は、変換ブロックの非0の復号された変換係数のすべてに基づいて決定される。
【0047】
[0047]いくつかの態様では、履歴更新値は、変換ブロックの非0の復号された変換係数のすべてを平均化することに少なくとも部分的によって決定される。
【0048】
[0048]いくつかの態様では、変換ブロックの少なくとも1つのサンプルを復号することは、既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいて、少なくとも1つのサンプルを示すシンタックス要素を復号することを備える。
【0049】
[0049]いくつかの態様では、変換ブロックの少なくとも1つのサンプルを復号することは、既存の履歴パラメータ値または更新された既存の履歴パラメータ値を使用してゴロムライスコードを復号することを備える。
【0050】
[0050]いくつかの態様では、装置は、モバイルデバイス(たとえば、携帯電話もしくはいわゆる「スマートフォン」、または他のモバイルデバイス)、パーソナルコンピュータ、ラップトップコンピュータ、エクステンデッドリアリティ(XR)デバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、または複合現実(MR)デバイス)、モノのインターネット(IoT)デバイス、車両または車両のコンピューティング構成要素もしくはシステム、スマートウェアラブルデバイス、サーバコンピュータ、カメラ(たとえば、デジタルカメラ、インターネットプロトコル(IP)カメラなど)、マルチカメラシステム、ロボティクスデバイスまたはシステム、航空デバイスまたはシステム、あるいは他のデバイスであり得るかまたはそれらの一部であり得る。いくつかの態様では、装置は、1つまたは複数の画像をキャプチャするための1つのカメラまたは複数のカメラを含む。いくつかの態様では、装置は、1つまたは複数の画像、通知、および/または他の表示可能なデータを表示するためのディスプレイを含む。いくつかの態様では、上記で説明された装置は、1つまたは複数のセンサーを含むことができる。
【0051】
[0051]本概要は、特許請求される主題の重要な特徴または必須の特徴を識別するようには意図されておらず、特許請求される主題の範囲を決定するために別個に使用されるようにも意図されていない。主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分を参照することによって理解されたい。
【0052】
[0052]上記のことは、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照すると、より明らかになろう。
【0053】
[0053]本出願の例示的な実施形態は、以下の図を参照しながら以下で詳細に説明される。
【図面の簡単な説明】
【0054】
【
図1】[0054]いくつかの例による、符号化デバイスと復号デバイスとの一例を示すブロック図。
【
図2】[0055]いくつかの例による、現在の係数の近隣係数を示すライス導出テンプレートの一例を示す図。
【
図3】[0056]いくつかの例による、例示的なライス導出テンプレートでオーバーレイされた様々な変換ユニット(TU)の一例を示す図。
【
図4】[0057]いくつかの例による、ライス導出テンプレートとサンプルの空間的位置との間の相互作用に少なくとも部分的に基づいて変換ユニットのサンプルに適用された様々な分類の一例を示す図。
【
図5】[0058]いくつかの例による、履歴ライスパラメータ値を決定するための履歴カウンタの履歴更新の一例を示す図。
【
図6】[0059]いくつかの例による、ライスパラメータを導出するためのプロセスの一例を示すフローチャート。
【
図7】[0060]いくつかの例による、ライスパラメータを導出するためのプロセスの別の例を示すフローチャート。
【
図8】[0061]いくつかの例による、例示的なビデオ符号化デバイスを示すブロック図。
【
図9】[0062]いくつかの例による、例示的なビデオ復号デバイスを示すブロック図。
【発明を実施するための形態】
【0055】
[0063]本開示のいくつかの態様および実施形態が以下で提供される。当業者には明らかであるように、これらの態様および実施形態のうちのいくつかは独立して適用され得、それらのうちのいくつかは組み合わせて適用され得る。以下の説明では、説明の目的で、本出願の実施形態の完全な理解を提供するために具体的な詳細が記載される。ただし、様々な実施形態は、これらの具体的な詳細なしに実践され得ることが明らかであろう。図および説明は限定するものではない。
【0056】
[0064]以下の説明は、例示的な実施形態を提供しているにすぎず、本開示の範囲、適用可能性、または構成を限定するものではない。そうではなく、例示的な実施形態の以下の説明は、例示的な実施形態を実装することを可能にする説明を当業者に提供する。添付の特許請求の範囲に記載されるように、本出願の趣旨および範囲から逸脱することなく、要素の機能および構成において様々な変更が行われ得ることを理解されたい。
【0057】
[0065]デジタルビデオデータは、特に、高品質のビデオデータに対する需要が成長し続けるにつれて大量のデータを含むことができる。たとえば、ビデオデータの消費者は、一般に、高い忠実度、解像度、フレームレートなどをもつますます高い品質のビデオを望む。しかしながら、そのような需要を満たすために必要とされる大量のビデオデータは、通信ネットワークならびにビデオデータを処理し、記憶するデバイスに著しい負担をかけることがある。
【0058】
[0066]ビデオコーディングデバイスは、ビデオデータを効率的に符号化および復号するためのビデオ圧縮技法を実装する。ビデオ圧縮技法は、ビデオシーケンスに固有の冗長を低減または除去するために、空間予測(たとえば、イントラフレーム予測またはイントラ予測)、時間予測(たとえば、インターフレーム予測またはインター予測)、(ビデオデータの異なるレイヤにわたる)レイヤ間予測、および/または他の予測技法を含む、異なる予測モードを適用することを含み得る。ビデオエンコーダは、元のビデオシーケンスの各ピクチャを(以下でより詳細に説明される)ビデオブロックまたはコーディングユニットと呼ばれる矩形領域に区分することができる。これらのビデオブロックは、特定の予測モードを使用して符号化され得る。
【0059】
[0067]ビデオブロックは、1つまたは複数のやり方で、より小さいブロックの1つまたは複数のグループに分割され得る。ブロックは、コーディングツリーブロック、予測ブロック、変換ブロック、および/または他の好適なブロックを含むことができる。概して「ブロック」への言及は、別段に規定されていない限り、そのようなビデオブロック(たとえば、当業者によって理解されるように、コーディングツリーブロック、コーディングブロック、予測ブロック、変換ブロック、あるいは他の適切なブロックまたはサブブロック)を指し得る。さらに、これらのブロックの各々はまた、本明細書では、互換的に「ユニット」(たとえば、コーディングツリーユニット(CTU)、コーディングユニット、予測ユニット(PU)、変換ユニット(TU)など)と呼ばれることがある。いくつかの場合には、ユニットは、ビットストリーム中で符号化されるコーディング論理ユニットを示し得、ブロックは、プロセスがターゲットであるビデオフレームバッファの一部分を示し得る。
【0060】
[0068]インター予測モードの場合、ビデオエンコーダは、参照フレームまたは参照ピクチャと呼ばれる、別の時間ロケーション中にあるフレーム(またはピクチャ)中で符号化されているブロックと同様のブロックを探索することができる。ビデオエンコーダは、その探索を、符号化されるべきブロックからのある空間変位に制限し得る。最良の一致が、水平変位成分と垂直変位成分とを含む2次元(2D)動きベクトルを使用して特定され得る。イントラ予測モードの場合、ビデオエンコーダは、同じピクチャ内の前に符号化された隣接ブロックからのデータに基づいて、空間予測技法を使用して、予測されたブロックを形成し得る。
【0061】
[0069]ビデオエンコーダは予測誤差を決定し得る。たとえば、予測は、符号化されているブロック中のピクセル値と予測されたブロック中のピクセル値との間の差分として決定され得る。予測誤差は残差と呼ばれることもある。ビデオエンコーダはまた、変換係数を生成するために、予測誤差に変換(たとえば、離散コサイン変換(DCT)または他の好適な変換)を適用し得る。変換の後に、ビデオエンコーダは変換係数を量子化し得る。量子化された変換係数と動きベクトルとは、シンタックス要素を使用して表され、制御情報とともに、ビデオシーケンスのコーディングされた表現を形成し得る。いくつかの事例では、ビデオエンコーダは、量子化された変換係数および/またはシンタックス要素をエントロピー符号化し、それにより、さらに、それらの表現のために必要とされるビット数を低減し得る。
【0062】
[0070]受信されたビットストリームをエントロピー復号し、逆量子化した後に、ビデオデコーダは、上記で説明されたシンタックス要素および制御情報を使用して、現在のフレームを復号するための予測データ(たとえば、予測ブロック)を構築し得る。たとえば、ビデオデコーダは、予測されたブロックと圧縮された予測誤差とを加算し得る。ビデオデコーダは、量子化された係数を使用して変換基底関数を重み付けすることによって、圧縮された予測誤差を決定し得る。再構築されたフレームと元のフレームとの間の差分は、再構築誤差と呼ばれる。
【0063】
[0071]ビデオコーディングは、特定のビデオコーディング規格に従って実施され得る。ビデオコーディング規格の例は、特に、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、スケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張を含む、アドバンストビデオコーディング(AVC)またはITU-T H.264、範囲およびスクリーンコンテンツコーディング、3Dビデオコーディング(3D-HEVC)、マルチビュー(MV-HEVC)、およびスケーラブル(SHVC)拡張を含む、高効率ビデオコーディング(HEVC)またはITU-T H.265、汎用ビデオコーディング(VVC)またはITU-T H.266およびそれの拡張、VP9、アライアンスオブオープンメディア(AOMedia)Video 1(AV1)、エッセンシャルビデオコーディング(EVC)を含むが、それらに限定されない。
【0064】
[0072]上述されたように、ビデオエンコーダは、ビットストリームを生成するために、量子化された変換係数および/またはシンタックス要素をエントロピー符号化し得る。ビデオデコーダは、逆エントロピーコーディングプロセスを使用してビットストリームをエントロピー復号することができる。いくつかの例では、エントロピーコーディング(たとえば、エントロピー符号化および/または復号)を実施するために、ライスパラメータを使用したライスコーディングが使用され得る。現在のVVC規格では、通常残差コーディング(RRC)のライスパラメータは、近隣変換係数の合計を決定(たとえば、算出、計算など)するためのテンプレート(ライスパラメータ導出テンプレートとも呼ばれる)と、様々な(different)可能な合計値を特定のライスパラメータ値にマッピングするルックアップテーブルとに基づいて導出され得る。この手法では、ライスパラメータ導出テンプレートからの決定された合計は、ライスパラメータ値のルックアップテーブルへのインデックスとして使用される。1つの例示的な例では、ライスパラメータ導出テンプレートは、サンプルのグリッド(たとえば、8×8サンプルのグリッド)上に適用され得る。いくつかの場合には、グリッドは、ビデオデータのより大きいフレームまたはスライスから取得された変換ブロック(TB)または変換ユニット(TU)を表すことができる。現在の変換係数のライスパラメータを決定するために、ビデオエンコーダまたはデコーダは、テンプレートを利用して1つまたは複数の近隣変換係数を識別することができる。ライスパラメータ導出テンプレートは、所与の現在の係数のためのいくつかの近隣係数(たとえば、5つの近隣係数)を識別するために使用され得る。ビデオエンコーダまたはデコーダは、次いで、テンプレートに基づいて識別された近隣変換係数の絶対値の合計を決定することができる。
【0065】
[0073]ライスパラメータ導出のためのテンプレートベースの方法(たとえば、VVCセクション9.3.3.2(たとえば、未修正の式1517)によるテンプレートベースのライスパラメータ導出、および以下で説明される様々な修正例(たとえば、式1517の修正)は、いくつかの例では、復号が、ブロックの終了から開始して、それのDCのほうへ進む、逆方向パスで行われることを利用することができる。ブロック(たとえば、TUまたはTB)ごとに実施される逆方向パス復号に基づいて、そのようなライスパラメータ導出技法は、現在のTUにおいてより早く復号された1つまたは複数の変換係数を利用することができる。
【0066】
[0074]いくつかの場合(たとえば、高ビット深度コーディングの場合)には、ゴロムライス方法を使用して変換係数がコーディングされる(たとえば、4×4のサイズを有する)小さいサイズのTUまたはTBの割合が高いために、正確なライス導出は、TU復号のまさに開始において現れる変換係数など、いくつかの変換係数のために行われることが可能でない。たとえば、(たとえば、5など、何らかの所定の数の近隣変換係数を使用してテンプレートベースのライスパラメータ導出に基づいて)TU復号の開始において現れるそれらの係数に対してテンプレートベースのライスパラメータ導出を実施するために利用可能な非0の近隣変換係数の量が不十分であり得る。
【0067】
[0075]本明細書でさらに詳細に説明されるように、パラメータ導出(たとえば、ライスパラメータ導出)を改善するための(「システムおよび技法」と総称される)システム、装置、方法、およびコンピュータ可読媒体について本明細書で説明される。そのようなシステムおよび技法は、高ビット深度コーディングにおける通常残差コーディング(RRC)のためにおよび/または他のビデオコーディングのために使用され得る。いくつかの態様によれば、システムおよび技法は、1つまたは複数の利用不可能な近隣変換係数の存在下でライスパラメータ導出を実施することを含むことができる。たとえば、ビデオエンコーダおよび/またはビデオデコーダは、現在のTUの現在のサンプル(たとえば、デコーダの場合、現在復号されているTUの現在復号されているサンプル)について、ライス導出テンプレートによって指定された1つまたは複数の近隣変換係数が利用不可能であると決定することができる。利用不可能な近隣変換係数は、現在復号されている係数と同じTU内に位置しない変換係数であり得る。たとえば、利用不可能な近隣変換係数は、ライス導出テンプレートが、現在復号されているTUの1つまたは複数のボーダーまたはエッジにわたるとき、存在すると決定され得る。
【0068】
[0076]利用不可能な近隣変換係数を無視するか、またはそれらを0に等しく設定するのではなく、本明細書で説明されるシステムおよび技法は、テンプレートおよびルックアップテーブルベースのライス導出を実施するとき、利用不可能な近隣変換係数の代わりに使用される履歴ライスパラメータ値を提供することができる。いくつかの例では、履歴ライスパラメータ値は、前に復号されたTUから取得される1つまたは複数の第1の復号された非0の変換係数を累算する1つまたは複数の履歴カウンタを維持することによって、決定(たとえば、算出、計算など)され得る。たとえば、前に復号されたTU、および現在復号されているTUは、ビデオデータの同じフレーム、ブロック、スライス、または他の区分と、現在復号されているTUが属するより大きいユニットの持続時間の間維持される(1つまたは複数の)履歴カウンタとに関連付けられ得る。(1つまたは複数の)履歴カウンタは、より早くのTUからの第1の非0の復号された変換係数のランニング合計を維持することができ、これから、本明細書で説明されるシステムおよび技法によるライス導出を実施するために履歴ライスパラメータ値が問合せられまたは使用されるたびに、算術平均が決定され得る。いくつかの例では、1つまたは複数の履歴カウンタは、以下でより深く説明されるように、履歴ライスパラメータ値のために加重平均または指数加重移動平均を実装することができる。
【0069】
[0077]システムおよび技法に関するさらなる詳細について、図に関して説明される。
【0070】
[0078]
図1は、符号化デバイス104と復号デバイス112とを含むシステム100の一例を示すブロック図である。符号化デバイス104はソースデバイスの一部であり得、復号デバイス112は受信デバイスの一部であり得る。ソースデバイスおよび/または受信デバイスは、モバイルもしくは固定電話ハンドセット(たとえば、スマートフォン、セルラー電話など)、デスクトップコンピュータ、ラップトップもしくはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、インターネットプロトコル(IP)カメラ、または任意の他の好適な電子デバイスなど、電子デバイスを含み得る。いくつかの例では、ソースデバイスと受信デバイスとは、ワイヤレス通信のための1つまたは複数のワイヤレストランシーバを含み得る。本明細書で説明されるコーディング技法は、(たとえば、インターネットを介した)ストリーミングビデオ送信、テレビジョン放送もしくは送信、データ記憶媒体上に記憶するためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例を含む、様々なマルチメディア適用例におけるビデオコーディングに適用可能である。本明細書で使用されるコーディングという用語は、符号化および/または復号を指すことができる。いくつかの例では、システム100は、ビデオ会議、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、ゲーム、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートすることができる。
【0071】
[0079]符号化デバイス104(またはエンコーダ)は、符号化ビデオビットストリームを生成するためにビデオコーディング規格、フォーマット、コーデック、またはプロトコルを使用してビデオデータを符号化するために使用され得る。ビデオコーディング規格およびフォーマット/コーデックの例は、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、スケーラブルビデオコーディング(SVC)拡張とマルチビュービデオコーディング(MVC)拡張とを含む(ISO/IEC MPEG-4 AVCとしても知られる)ITU-T H.264、高効率ビデオコーディング(HEVC)またはITU-T H.265、および汎用ビデオコーディング(VVC)またはITU-T H.266を含む。範囲およびスクリーンコンテンツコーディング拡張、3Dビデオコーディング(3D-HEVC)ならびにマルチビュー拡張(MV-HEVC)ならびにスケーラブル拡張(SHVC)を含む、マルチレイヤビデオコーディングに対処するHEVCへの様々な拡張が存在する。HEVCおよびそれの拡張は、ITU-Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECモーションピクチャエキスパートグループ(MPEG)のジョイントコラボレーションチームオンビデオコーディング(JCT-VC)ならびにジョイントコラボレーションチームオン3Dビデオコーディング拡張開発(JCT-3V)によって開発された。VP9と、アライアンスフォーオープンメディアアライアンスオブオープンメディア(AOMedia)によって開発されたAOMedia Video 1(AV1)と、エッセンシャルビデオコーディング(EVC)とは、本明細書で説明される技法が適用され得る他のビデオコーディング規格である。
【0072】
[0080]本明細書で説明されるシステムおよび技法は、既存のビデオコーデック(たとえば、VVC、HEVC、AVC、または他の好適な既存のビデオコーデック)のいずれかに適用され得、ならびに/あるいは開発中の任意のビデオコーディング規格および/または将来のビデオコーディング規格のための効率的なコーディングツールになり得る。たとえば、本明細書で説明される例は、VVC、HEVC、AVC、および/またはそれらの拡張などのビデオコーデックを使用して実施され得る。しかしながら、本明細書で説明される技法およびシステムは、MPEG、JPEG(または静止画像のための他のコーディング規格)、VP9、AV1、それらの拡張、あるいはすでに利用可能であるか、またはまだ利用可能ではないか、もしくは開発されていない他の好適なコーディング規格など、他のコーディング規格、コーデック、またはフォーマットにも適用可能であり得る。たとえば、いくつかの例では、符号化デバイス104および/または復号デバイス112は、AV1、AVIの拡張、および/またはAV1の後継バージョン(たとえば、AV2)、あるいは他のプロプライエタリフォーマットまたは業界規格など、プロプライエタリビデオコーデック/フォーマットに従って動作し得る。したがって、本明細書で説明される技法およびシステムは、特定のビデオコーディング規格を参照しながら説明され得るが、当業者は、説明がその特定の規格にのみ適用されると解釈されるべきではないことを諒解されよう。
【0073】
[0081]
図1を参照すると、ビデオソース102は、符号化デバイス104にビデオデータを提供し得る。ビデオソース102は、ソースデバイスの一部であり得るか、またはソースデバイス以外のデバイスの一部であり得る。ビデオソース102は、ビデオキャプチャデバイス(たとえば、ビデオカメラ、カメラフォン、ビデオフォンなど)、記憶されたビデオを含んでいるビデオアーカイブ、ビデオデータを提供するビデオサーバまたはコンテンツプロバイダ、ビデオサーバまたはコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、コンピュータグラフィックスビデオデータを生成するためのコンピュータグラフィックスシステム、そのようなソースの組合せ、あるいは任意の他の好適なビデオソースを含み得る。
【0074】
[0082]ビデオソース102からのビデオデータは、1つまたは複数の入力ピクチャまたはフレームを含み得る。ピクチャまたはフレームは、いくつかの場合には、ビデオの一部である静止画像である。いくつかの例では、ビデオソース102からのデータは、ビデオの一部でない静止画像であり得る。HEVC、VVC、および他のビデオコーディング仕様では、ビデオシーケンスは、一連のピクチャを含むことができる。ピクチャは、SL、SCb、およびSCrと示される、3つのサンプルアレイを含み得る。SLはルーマサンプルの2次元アレイであり、SCbはCbクロミナンスサンプルの2次元アレイであり、SCrはCrクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプル」と呼ばれることもある。ピクセルは、ピクチャのアレイ中の所与のロケーションについてすべての3つの成分(ルーマおよびクロマサンプル)を指すことができる。他の事例では、ピクチャは、モノクロームであり得、ルーマサンプルのアレイのみを含み得、その場合、ピクセルという用語とサンプルという用語は互換的に使用され得る。説明の目的のために個々のサンプルに言及する、本明細書で説明される例示的な技法に関して、同じ技法は、ピクセル(たとえば、ピクチャのアレイ中の所与のロケーションについてのすべての3つのサンプル成分)に適用され得る。説明の目的でピクセル(たとえば、ピクチャのアレイ中の所与のロケーションについてのすべての3つのサンプル成分)に言及する、本明細書で説明される例示的な技法に関して、同じ技法は、個々のサンプルに適用され得る。
【0075】
[0083]符号化デバイス104のエンコーダエンジン106(またはエンコーダ)は、符号化ビデオビットストリームを生成するためにビデオデータを符号化する。いくつかの例では、符号化ビデオビットストリーム(または「ビデオビットストリーム」または「ビットストリーム」)は、一連の1つまたは複数のコード化ビデオシーケンスである。コード化ビデオシーケンス(CVS)は、ベースレイヤ中の、いくつかのプロパティをもつランダムアクセスポイントピクチャを有するアクセスユニット(AU)で始まり、ベースレイヤ中の、いくつかのプロパティをもつランダムアクセスポイントピクチャを有する次のAUまでの、次のAUを含まない一連のAUを含む。たとえば、CVSを開始するランダムアクセスポイントピクチャのいくつかのプロパティは、1に等しいRASLフラグ(たとえば、NoRaslOutputFlag)を含み得る。他の場合、(0に等しいRASLフラグをもつ)ランダムアクセスポイントピクチャはCVSを開始しない。アクセスユニット(AU)は、1つまたは複数のコード化ピクチャと、同じ出力時間を共有するコード化ピクチャに対応する制御情報とを含む。ピクチャのコード化スライスは、ビットストリームレベルにおいて、ネットワークアブストラクションレイヤ(NAL)ユニットと呼ばれるデータユニット中にカプセル化される。たとえば、HEVCビデオビットストリームは、NALユニットを含む1つまたは複数のCVSを含み得る。NALユニットの各々はNALユニットヘッダを有する。一例では、ヘッダは、(マルチレイヤ拡張を除いて)H.264/AVCでは1バイトであり、HEVCでは2バイトである。NALユニットヘッダ中のシンタックス要素は、指定されたビットをとり、したがって、特にトランスポートストリーム、リアルタイムトランスポート(RTP)プロトコル、ファイルフォーマットなど、すべての種類のシステムおよびトランスポートレイヤに可視である。
【0076】
[0084]ビデオコーディングレイヤ(VCL)NALユニットと非VCL NALユニットとを含む、NALユニットの2つのクラスがHEVC規格に存在する。VCL NALユニットは、コード化ピクチャデータの(以下で説明される)1つのスライスまたはスライスセグメントを含み、非VCL NALユニットは、1つまたは複数のコード化ピクチャに関係する制御情報を含む。いくつかの場合には、NALユニットはパケットと呼ばれることがある。HEVC AUは、コード化ピクチャデータを含んでいるVCL NALユニットと、(もしあれば)コード化ピクチャデータに対応する非VCL NALユニットとを含む。
【0077】
[0085]NALユニットは、ビデオ中のピクチャのコード化表現など、ビデオデータのコード化表現を形成するビットのシーケンス(たとえば、符号化ビデオビットストリーム、ビットストリームのCVSなど)を含んでいることがある。エンコーダエンジン106は、各ピクチャを複数のスライスに区分することによってピクチャのコード化表現を生成する。スライスは、スライス中の情報が、同じピクチャ内の他のスライスからのデータへの依存性なしにコーディングされるように、他のスライスから独立している。スライスは、独立したスライスセグメントを含む1つまたは複数のスライスセグメントと、存在する場合、前のスライスセグメントに依存する1つまたは複数の依存するスライスセグメントとを含む。スライスは、ルーマサンプルとクロマサンプルとのコーディングツリーブロック(CTB)に区分される。ルーマサンプルのCTBおよびクロマサンプルの1つまたは複数のCTBは、サンプルのためのシンタックスとともに、コーディングツリーユニット(CTU)と呼ばれる。CTUは「ツリーブロック」または「最大コーディングユニット」(LCU)と呼ばれることもある。CTUは、HEVC符号化のための基本処理ユニットである。CTUは、様々なサイズの複数のコーディングユニット(CU)にスプリットされ得る。CUは、コーディングブロック(CB)と呼ばれるルーマおよびクロマサンプルアレイを含んでいる。
【0078】
[0086]ルーマおよびクロマCBは、予測ブロック(PB)にさらにスプリットされ得る。PBは、(利用可能なとき、または使用のために有効にされたとき)インター予測またはイントラブロックコピー予測のために同じ動きパラメータを使用するルーマ成分またはクロマ成分のサンプルのブロックである。ルーマPBおよび1つまたは複数のクロマPBは、関連するシンタックスとともに、予測ユニット(PU)を形成する。インター予測の場合、動きパラメータのセット(たとえば、1つまたは複数の動きベクトル、参照インデックスなど)は、PUごとにビットストリーム中でシグナリングされ、ルーマPBおよび1つまたは複数のクロマPBのインター予測のために使用される。動きパラメータは動き情報と呼ばれることもある。CBはまた、1つまたは複数の変換ブロック(TB)に区分され得る。TBは、予測残差信号をコーディングするために残差変換(たとえば、いくつかの場合には、同じ2次元変換)が適用される色成分のサンプルの正方形ブロックを表現する。変換ユニット(TU)は、ルーマおよびクロマサンプルのTBと、対応するシンタックス要素とを表現する。
【0079】
[0087]CUのサイズは、コーディングモードのサイズに対応し、形状が正方形であり得る。たとえば、CUのサイズは、8×8サンプル、16×16サンプル、32×32サンプル、64×64サンプル、または対応するCTUのサイズまでの任意の他の適切なサイズであり得る。「N×N」という句は、本明細書では、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法(たとえば、8ピクセル×8ピクセル)を指すために使用される。ブロック中のピクセルは行および列に配置され得る。いくつかの例では、ブロックは、水平方向において垂直方向と同じ数のピクセルを有するとは限らない。CUに関連するシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を表し得る。区分モードは、CUがイントラ予測モード符号化されるか、インター予測モード符号化されるかの間で異なり得る。PUは、形状が非正方形になるように区分され得る。CUに関連するシンタックスデータは、たとえば、CTUに従う1つまたは複数のTUへのCUの区分をも表し得る。TUは、形状が正方形または非正方形であり得る。
【0080】
[0088]HEVC規格によれば、変換は、変換ユニット(TU)を使用して実施され得る。TUは、異なるCUでは異なり得る。TUは、所与のCU内のPUのサイズに基づいてサイズ決定され得る。TUは、PUと同じサイズであるか、またはPUよりも小さいことがある。いくつかの例では、CUに対応する残差サンプルは、残差クワッドツリー(RQT)として知られるクワッドツリー構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードはTUに対応し得る。TUに関連するピクセル差分値は、変換係数を生成するために変換され得る。変換係数は、エンコーダエンジン106によって量子化され得る。
【0081】
[0089]ビデオデータのピクチャがCUに区分されると、エンコーダエンジン106は、予測モードを使用して各PUを予測する。予測ユニットまたは予測ブロックは、(以下で説明される)残差を得るために元のビデオデータから減算される。CUごとに、シンタックスデータを使用してビットストリーム内で予測モードがシグナリングされ得る。予測モードは、イントラ予測(またはピクチャ内予測)またはインター予測(またはピクチャ間予測)を含み得る。イントラ予測は、ピクチャ内の空間的に隣接するサンプル間の相関を利用する。たとえば、イントラ予測を使用して、各PUは、たとえば、PUに関する平均値を見つけるためのDC予測、平坦面をPUに適合させるための平面予測、隣接データから外挿するための方向予測、または任意の他の好適なタイプの予測を使用して、同じピクチャ中の隣接画像データから予測される。インター予測は、画像サンプルのブロックについての動き補償予測を導出するためにピクチャ間の時間相関を使用する。たとえば、インター予測を使用して、各PUは、(出力順序において現在ピクチャの前または後の)1つまたは複数の参照ピクチャ中の画像データからの動き補償予測を使用して予測される。ピクチャ間予測を使用してピクチャエリアをコーディングすべきなのか、ピクチャ内予測を使用してピクチャエリアをコーディングすべきなのかの決定は、たとえば、CUレベルにおいて行われ得る。
【0082】
[0090]エンコーダエンジン106と(以下でより詳細に説明される)デコーダエンジン116とは、VVCに従って動作するように構成され得る。VVCによれば、(エンコーダエンジン106および/またはデコーダエンジン116などの)ビデオコーダは、ピクチャを複数のコーディングツリーユニット(CTU)に区分する(ここで、ルーマサンプルのCTBとクロマサンプルの1つまたは複数のCTBとが、サンプルのためのシンタックスとともに、CTUと呼ばれる)。ビデオコーダは、クワッドツリーバイナリツリー(QTBT)構造またはマルチタイプツリー(MTT)構造など、ツリー構造に従ってCTUを区分することができる。QTBT構造は、HEVCのCUとPUとTUの区別など、複数の区分タイプの概念を除去する。QTBT構造は、クワッドツリー区分に従って区分される第1のレベルと、バイナリツリー区分に従って区分される第2のレベルとを含む、2つのレベルを含む。QTBT構造のルートノードは、CTUに対応する。バイナリツリーのリーフノードは、コーディングユニット(CU)に対応する。
【0083】
[0091]MTT区分構造では、ブロックは、クワッドツリー区分と、バイナリツリー区分と、1つまたは複数のタイプのトリプルツリー区分とを使用して区分され得る。トリプルツリー区分は、ブロックが3つのサブブロックにスプリットされる区分である。いくつかの例では、トリプルツリー区分は、中心を通って元のブロックを分割することなしに、ブロックを3つのサブブロックに分割する。MTTにおける区分タイプ(たとえば、クワッドツリー、バイナリツリー、およびトライプツリー)は、対称的または非対称的であり得る。
【0084】
[0092]AV1コーデックに従って動作するとき、符号化デバイス104と復号デバイス112とは、ブロック中のビデオデータをコーディングするように構成され得る。AV1では、処理され得る最大のコーディングブロックは、スーパーブロックと呼ばれる。AV1では、スーパーブロックは、128×128ルーマサンプルまたは64×64ルーマサンプルのいずれかであり得る。しかしながら、後継のビデオコーディングフォーマット(たとえば、AV2)では、スーパーブロックは、異なる(たとえば、より大きい)ルーマサンプルサイズによって定義され得る。いくつかの例では、スーパーブロックは、ブロッククワッドツリーのトップレベルである。符号化デバイス104は、さらに、スーパーブロックをより小さいコーディングブロックに区分し得る。符号化デバイス104は、正方形または非正方形区分を使用してスーパーブロックおよび他のコーディングブロックをより小さいブロックに区分し得る。非正方形ブロックは、N/2×N、N×N/2、N/4×N、およびN×N/4ブロックを含み得る。符号化デバイス104と復号デバイス112とは、コーディングブロックの各々に対して別個の予測および変換プロセスを実施し得る。
【0085】
[0093]AV1はまた、ビデオデータのタイルを定義する。タイルは、他のタイルとは無関係にコーディングされ得るスーパーブロックの矩形アレイである。すなわち、符号化デバイス104と復号デバイス112とは、他のタイルからのビデオデータを使用せずに、タイル内のコーディングブロックをそれぞれ符号化および復号し得る。しかしながら、符号化デバイス104と復号デバイス112とは、タイル境界を横断してフィルタ処理を実施し得る。タイルは、サイズが均一または不均一であり得る。タイルベースのコーディングは、エンコーダおよびデコーダ実装形態のための並列処理および/またはマルチスレッディングを可能にし得る。
【0086】
[0094]いくつかの例では、符号化デバイス104と復号デバイス112とは、ルミナンス成分とクロミナンス成分との各々を表現するために単一のQTBTまたはMTT構造を使用することができ、他の例では、ビデオコーダは、ルミナンス成分のための1つのQTBTまたはMTT構造、および両方のクロミナンス成分のための別のQTBTまたはMTT構造(またはそれぞれのクロミナンス成分のための2つのQTBTおよび/またはMTT構造)など、2つまたはそれ以上のQTBTまたはMTT構造を使用することができる。
【0087】
[0095]符号化デバイス104と復号デバイス112とは、HEVCに従うクワッドツリー区分、QTBT区分、MTT区分、または他の区分構造を使用するように構成され得る。
【0088】
[0096]いくつかの例では、ピクチャの1つまたは複数のスライスは、スライスタイプを割り当てられる。スライスタイプは、Iスライスと、Pスライスと、Bスライスとを含む。Iスライス(フレーム内、独立して復号可能)は、イントラ予測によってのみコーディングされるピクチャのスライスであり、したがって、Iスライスは、スライスの任意の予測ユニットまたは予測ブロックを予測するためにフレーム内のデータのみを必要とするので、独立して復号可能である。Pスライス(単方向予測されるフレーム)は、イントラ予測を用いて、および単方向インター予測を用いてコーディングされ得るピクチャのスライスである。Pスライス内の各予測ユニットまたは予測ブロックは、イントラ予測またはインター予測のいずれかを用いてコーディングされる。インター予測が適用されるとき、予測ユニットまたは予測ブロックは、1つの参照ピクチャによってのみ予測され、したがって、参照サンプルは、1つのフレームの1つの参照領域からのみのものである。Bスライス(双方向予測フレーム)は、イントラ予測を用いて、およびインター予測(たとえば、双予測または単予測のいずれか)を用いてコーディングされ得るピクチャのスライスである。Bスライスの予測ユニットまたは予測ブロックは、2つの参照ピクチャから双方向予測され得、ここで、各ピクチャは1つの参照領域を導き、双方向予測されたブロックの予測信号を生成するために、2つの参照領域のサンプルセットが(たとえば、等しい重みを用いて、または異なる重みを用いて)重み付けされる。上記で説明されたように、1つのピクチャのスライスが独立してコーディングされる。いくつかの場合には、ピクチャは、ただ1つのスライスとしてコーディングされ得る。
【0089】
[0097]上記のように、ピクチャ内予測は、ピクチャ内の空間的に隣接するサンプル間の相関を利用する。(「イントラモード」とも呼ばれる)複数のイントラ予測モードがある。いくつかの例では、ルーマブロックのイントラ予測は、平面モードと、DCモードと、33個の角度モード(たとえば、対角イントラ予測モードおよび対角イントラ予測モードに隣接する角度モード)とを含む35個のモードを含む。イントラ予測の35個のモードは、以下の表1に示されているようにインデックス付けされる。他の例では、33個の角度モードによってまだ表現されていない予測角度を含むより多くのイントラモードが定義され得る。他の例では、角度モードに関連する予測角度は、HEVCにおいて使用されるものとは異なり得る。
【0090】
【0091】
[0098]ピクチャ間予測は、画像サンプルのブロックについての動き補償予測を導出するためにピクチャ間の時間相関を使用する。並進運動モデルを使用して、前に復号されたピクチャ(参照ピクチャ)中のブロックの位置は、動きベクトル(Δx,Δy)によって示され、Δxは、現在のブロックの位置に対する参照ブロックの水平変位を指定し、Δyはその垂直変位を指定する。いくつかの場合には、動きベクトル(Δx,Δy)は、(整数精度とも呼ばれる)整数サンプル精度であり得、その場合、動きベクトルは、参照フレームの整数ペルグリッド(または整数ピクセルサンプリンググリッド)を指す。いくつかの場合には、動きベクトル(Δx,Δy)は、参照フレームの整数ペルグリッドに制限されることなしに、基礎をなすオブジェクトの移動をより正確にキャプチャするために、(分数ペル精度または非整数精度とも呼ばれる)分数サンプル精度のものであり得る。動きベクトルの精度は、動きベクトルの量子化レベルによって表され得る。たとえば、量子化レベルは、整数精度(たとえば、1ピクセル)または分数ペル精度(たとえば、1/4ピクセル、1/2ピクセル、または他のサブピクセル値)であり得る。対応する動きベクトルが分数サンプル精度を有するとき、予測信号を導出するために、参照ピクチャに補間が適用される。たとえば、整数位置において利用可能なサンプルは、分数位置における値を推定するために、(たとえば、1つまたは複数の補間フィルタを使用して)フィルタ処理され得る。前に復号された参照ピクチャは、参照ピクチャリストへの参照インデックス(refIdx)によって示される。動きベクトルおよび参照インデックスは、動きパラメータと呼ばれることがある。単予測と双予測とを含む、2つの種類のピクチャ間予測が実施され得る。
【0092】
[0099](双方向インター予測とも呼ばれる)双予測を使用するインター予測の場合、動きパラメータの2つのセット(Δx0、y0、refIdx0、および、Δx1、y1、refIdx1)が、(同じ参照ピクチャから、または場合によっては異なる参照ピクチャから)2つの動き補償予測を生成するために使用される。たとえば、双予測の場合、各予測ブロックは、2つの動き補償予測信号を使用し、B予測ユニットを生成する。2つの動き補償予測は、最終の動き補償予測を得るために組み合わされる。たとえば、2つの動き補償予測は、平均化によって組み合わされ得る。別の例では、重み付け予測が使用され得、その場合、異なる重みが、各動き補償予測に適用され得る。双予測において使用され得る参照ピクチャは、リスト0およびリスト1として示される、2つの別個のリストに記憶される。動きパラメータは、動き推定プロセスを使用してエンコーダにおいて導出され得る。
【0093】
[0100](単方向インター予測とも呼ばれる)単予測を使用するインター予測の場合、動きパラメータ(Δx0,y0,refIdx0)の1つのセットが、参照ピクチャから動き補償予測を生成するために使用される。たとえば、単予測の場合、各予測ブロックは、高々1つの動き補償予測信号を使用し、P予測ユニットを生成する。
【0094】
[0101]PUは、予測プロセスに関係するデータ(たとえば、動きパラメータまたは他の好適なデータ)を含み得る。たとえば、PUがイントラ予測を使用して符号化されるとき、PUは、PUのためのイントラ予測モードを表すデータを含み得る。別の例として、PUがインター予測を使用して符号化されるとき、PUは、PUのための動きベクトルを定義するデータを含み得る。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分(Δx)、動きベクトルの垂直成分(Δy)、動きベクトルの解像度(たとえば、整数精度、1/4ピクセル精度、または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、参照インデックス、動きベクトルのための参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)、またはそれらの任意の組合せを表し得る。
【0095】
[0102]AV1は、ビデオデータのコーディングブロックを符号化および復号するための2つの一般的な技法を含む。2つの一般的な技法は、イントラ予測(たとえば、フレーム内予測または空間予測)と、インター予測(たとえば、フレーム間予測または時間予測)とである。AV1のコンテキストでは、イントラ予測モードを使用してビデオデータの現在のフレームのブロックを予測するとき、符号化デバイス104と復号デバイス112とは、ビデオデータの他のフレームからのビデオデータを使用しない。たいていのイントラ予測モードでは、ビデオ符号化デバイス104は、現在のブロック中のサンプル値と、同じフレーム中の参照サンプルから生成される予測値との間の差分に基づいて現在のフレームのブロックを符号化する。ビデオ符号化デバイス104は、イントラ予測モードに基づいて参照サンプルから生成される予測値を決定する。
【0096】
[0103]イントラ予測および/またはインター予測を使用して予測を実施した後に、符号化デバイス104は、変換および量子化を実施することができる。たとえば、予測の後に、エンコーダエンジン106は、PUに対応する残差値を計算し得る。残差値は、コーディングされているピクセルの現在のブロック(PU)と、現在のブロックを予測するために使用される予測ブロック(たとえば、現在のブロックの予測されたバージョン)との間のピクセル差分値を備え得る。たとえば、予測ブロックを生成した(たとえば、インター予測またはイントラ予測を出した)後に、エンコーダエンジン106は、現在のブロックから、予測ユニットによって生成された予測ブロックを減算することによって、残差ブロックを生成することができる。残差ブロックは、現在のブロックのピクセル値と予測ブロックのピクセル値との間の差分を定量化するピクセル差分値のセットを含む。いくつかの例では、残差ブロックは、2次元ブロックフォーマット(たとえば、ピクセル値の2次元行列またはアレイ)で表現され得る。そのような例では、残差ブロックはピクセル値の2次元表現である。
【0097】
[0104]予測が実施された後に残存し得るいずれの残差データも、離散コサイン変換、離散サイン変換、整数変換、ウェーブレット変換、他の好適な変換関数、またはそれらの任意の組合せに基づき得るブロック変換を使用して変換される。いくつかの場合には、1つまたは複数のブロック変換(たとえば、サイズ32×32、16×16、8×8、4×4、または他の好適なサイズ)が各CUにおける残差データに適用され得る。いくつかの実施形態では、エンコーダエンジン106によって実装される変換および量子化プロセスのためにTUが使用され得る。1つまたは複数のPUを有する所与のCUは、1つまたは複数のTUをも含み得る。以下でさらに詳細に説明されるように、残差値は、ブロック変換を使用して変換係数に変換され得、エントロピーコーディングのためのシリアル化変換係数を生成するために、TUを使用して量子化および走査され得る。
【0098】
[0105]いくつかの実施形態では、CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後に、エンコーダエンジン106は、CUのTUのための残差データを計算し得る。PUは、空間領域(またはピクセル領域)においてピクセルデータを備え得る。TUは、ブロック変換の適用の後に変換領域において係数を備え得る。前記のように、残差データは、符号化されていないピクチャのピクセルとPUに対応する予測値との間のピクセル差分値に対応し得る。エンコーダエンジン106は、CUのための残差データを含むTUを形成し得、CUのための変換係数を生成するためにTUを変換し得る。
【0099】
[0106]エンコーダエンジン106は、変換係数の量子化を実施し得る。量子化は、係数を表現するために使用されるデータの量を低減するために変換係数を量子化することによって、さらなる圧縮を提供する。たとえば、量子化は、係数の一部または全部に関連するビット深度を低減し得る。一例では、nビット値をもつ係数は、量子化中にmビット値に切り捨てられ得、nはmよりも大きい。
【0100】
[0107]量子化が実施されると、コーディングされたビデオビットストリームは、量子化された変換係数と、予測情報(たとえば、予測モード、動きベクトル、ブロックベクトルなど)と、区分情報と、他のシンタックスデータなどの任意の他の好適なデータとを含む。コーディングされたビデオビットストリームの異なる要素は、エンコーダエンジン106によってエントロピー符号化され得る。いくつかの例では、エンコーダエンジン106は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。いくつかの例では、エンコーダエンジン106は適応走査を実施し得る。ベクトル(たとえば、1次元ベクトル)を形成するために量子化変換係数を走査した後、エンコーダエンジン106は、ベクトルをエントロピー符号化し得る。たとえば、エンコーダエンジン106は、コンテキスト適応型可変長コーディング、コンテキスト適応型バイナリ算術コーディング、シンタックスベースコンテキスト適応型バイナリ算術コーディング、確率間隔区分エントロピーコーディング、または別の好適なエントロピー符号化技法を使用し得る。
【0101】
[0108]符号化デバイス104の出力110は、通信リンク120を介して受信デバイスの復号デバイス112に、符号化ビデオビットストリームデータを構成するNALユニットを送り得る。復号デバイス112の入力114はNALユニットを受信し得る。通信リンク120は、ワイヤレスネットワーク、ワイヤードネットワーク、またはワイヤードネットワークとワイヤレスネットワークとの組合せによって提供されるチャネルを含み得る。ワイヤレスネットワークは、任意のワイヤレスインターフェースまたはワイヤレスインターフェースの組合せを含み得、任意の好適なワイヤレスネットワーク(たとえば、インターネットまたは他のワイドエリアネットワーク、パケットベースネットワーク、WiFi(登録商標)、無線周波数(RF)、UWB、WiFi-Direct、セルラー、ロングタームエボリューション(LTE(登録商標))、WiMax(登録商標)など)を含み得る。ワイヤードネットワークは、任意のワイヤードインターフェース(たとえば、ファイバー、イーサネット(登録商標)、電力線イーサネット、同軸ケーブルを介したイーサネット、デジタル信号線(DSL)など)を含み得る。ワイヤードおよび/またはワイヤレスネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチなど、様々な機器を使用して実装され得る。符号化ビデオビットストリームデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、受信デバイスに送信され得る。
【0102】
[0109]いくつかの例では、符号化デバイス104は、符号化ビデオビットストリームデータを記憶装置108に記憶し得る。出力110は、エンコーダエンジン106から、または記憶装置108から符号化ビデオビットストリームデータを取り出し得る。記憶装置108は、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。たとえば、記憶装置108は、ハードドライブ、記憶ディスク、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体を含み得る。記憶装置108は、インター予測において使用するための参照ピクチャを記憶するための復号ピクチャバッファ(DPB)をも含むことができる。さらなる例では、記憶装置108は、ソースデバイスによって生成された符号化ビデオを記憶することができるファイルサーバまたは別の中間記憶デバイスに対応し得る。そのような場合、復号デバイス112を含む受信デバイスは、ストリーミングまたはダウンロードを介して記憶デバイスから記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化ビデオデータを記憶することと、その符号化されたビデオデータを受信デバイスに送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。受信デバイスは、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi-Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。記憶装置108からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【0103】
[0110]復号デバイス112の入力114は、符号化ビデオビットストリームデータを受信し、ビデオビットストリームデータをデコーダエンジン116に、またはデコーダエンジン116による後の使用のために記憶装置118に提供し得る。たとえば、記憶装置118は、インター予測において使用するための参照ピクチャを記憶するためのDPBを含むことができる。復号デバイス112を含む受信デバイスは、記憶装置108を介して復号されるべき符号化ビデオデータを受信することができる。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、受信デバイスに送信され得る。送信された符号化ビデオデータのための通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイスから受信デバイスへの通信を可能にするために有用であり得る任意の他の機器を含み得る。
【0104】
[0111]デコーダエンジン116は、(たとえば、エントロピーデコーダを使用して)エントロピー復号し、符号化ビデオデータを構成する1つまたは複数のコード化ビデオシーケンスの要素を抽出することによって、符号化ビデオビットストリームデータを復号し得る。デコーダエンジン116は、符号化ビデオビットストリームデータを再スケーリングし、符号化ビデオビットストリームデータに対して逆変換を実施し得る。残差データが、デコーダエンジン116の予測段階にパスされる。デコーダエンジン116は、ピクセルのブロック(たとえば、PU)を予測する。いくつかの例では、逆変換の出力(残差データ)に予測が加算される。
【0105】
[0112]復号デバイス112は、復号ビデオをビデオ宛先デバイス122に出力し得、ビデオ宛先デバイス122は、復号ビデオデータをコンテンツの消費者に表示するためのディスプレイまたは他の出力デバイスを含み得る。いくつかの態様では、ビデオ宛先デバイス122は、復号デバイス112を含む受信デバイスの一部であり得る。いくつかの態様では、ビデオ宛先デバイス122は、受信デバイス以外の別個のデバイスの一部であり得る。
【0106】
[0113]いくつかの例では、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、それぞれオーディオ符号化デバイスおよびオーディオ復号デバイスと統合され得る。ビデオ符号化デバイス104および/またはビデオ復号デバイス112はまた、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、上記で説明されたコーディング技法を実装するために必要である他のハードウェアまたはソフトウェアを含み得る。ビデオ符号化デバイス104およびビデオ復号デバイス112は、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。符号化デバイス104の具体的な詳細の一例は、
図8を参照しながら以下で説明される。復号デバイス112の具体的な詳細の一例は、
図9を参照しながら以下で説明される。
【0107】
[0114]
図1に示されている例示的なシステムは、本明細書で使用され得る1つの例示的な例である。本明細書で説明される技法を使用してビデオデータを処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実施され得る。概して、本開示の技法はビデオ符号化デバイスまたはビデオ復号デバイスによって実施されるが、本技法は、一般に「コーデック」と呼ばれる複合ビデオエンコーダ/デコーダによっても実施され得る。さらに、本開示の技法はまた、ビデオプリプロセッサによって実施され得る。ソースデバイスと受信デバイスとは、ソースデバイスが受信デバイスに送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、ソースデバイスと受信デバイスとは、デバイスの各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、例示的なシステムは、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ビデオデバイス間の一方向または二方向のビデオ送信をサポートし得る。
【0108】
[0115]HEVC規格に対する拡張は、MV-HEVCと呼ばれるマルチビュービデオコーディング拡張と、SHVCと呼ばれるスケーラブルビデオコーディング拡張とを含む。MV-HEVC拡張およびSHVC拡張は、階層化コーディングの概念を共有し、異なるレイヤが符号化ビデオビットストリームに含まれる。コード化ビデオシーケンス中の各レイヤは、一意のレイヤ識別子(ID)によってアドレス指定される。レイヤIDは、NALユニットがそれに関連するレイヤを識別するために、NALユニットのヘッダ中に存在し得る。MV-HEVCでは、異なるレイヤは、ビデオビットストリーム中の同じシーンの異なるビューを表すことができる。SHVCでは、異なる空間解像度(またはピクチャ解像度)で、または異なる再構築忠実度でビデオビットストリームを表す異なるスケーラブルレイヤが提供される。スケーラブルレイヤは、(レイヤID=0である)ベースレイヤと、(レイヤID=1、2、...nである)1つまたは複数のエンハンスメントレイヤと、を含み得る。ベースレイヤは、HEVCの第1のバージョンのプロファイルに適合し得、ビットストリーム中の利用可能な最下位レイヤを表現する。エンハンスメントレイヤは、ベースレイヤと比較して、増加された空間解像度、時間解像度またはフレームレート、および/あるいは再構築忠実度(または品質)を有する。エンハンスメントレイヤは、階層的に編成されており、下位レイヤに依存すること(または依存しないこと)がある。いくつかの例では、単一規格コーデックを使用して、異なるレイヤがコーディングされ得る(たとえば、HEVC、SHVC、または他のコーディング規格を使用して、すべてのレイヤが符号化される)。いくつかの例では、多規格コーデックを使用して、異なるレイヤがコーディングされ得る。たとえば、ベースレイヤは、AVCを使用してコーディングされ得るが、1つまたは複数のエンハンスメントレイヤは、HEVC規格に対するSHVC拡張および/またはMV-HEVC拡張を使用してコーディングされ得る。
【0109】
[0116]概して、レイヤは、VCL NALユニットのセットと非VCL NALユニットの対応するセットとを含む。NALユニットは、特定のレイヤID値を割り当てられる。レイヤは、あるレイヤが下位レイヤに依存し得るという意味で、階層的であり得る。レイヤセットは、自己完結型であるビットストリーム内で表されるレイヤのセットを指し、これは、レイヤセット内のレイヤが、復号プロセスにおいてレイヤセット中の他のレイヤに依存し得るが、復号のために任意の他のレイヤに依存しないことを意味する。したがって、レイヤセット中のレイヤは、ビデオコンテンツを表すことができる独立したビットストリームを形成することができる。レイヤセット中のレイヤのセットは、サブビットストリーム抽出プロセスの動作によって別のビットストリームから取得され得る。レイヤセットは、いくつかのパラメータに従ってデコーダが動作することを希望するときに復号されることになるレイヤのセットに対応し得る。
【0110】
[0117]前に説明されたように、HEVCビットストリームは、VCL NALユニットと非VCL NALユニットとを含む、NALユニットのグループを含む。VCL NALユニットは、コード化ビデオビットストリームを形成するコード化ピクチャデータを含む。たとえば、コード化ビデオビットストリームを形成するビットのシーケンスは、VCL NALユニット中に存在する。非VCL NALユニットは、他の情報に加えて、符号化ビデオビットストリームに関係する高レベル情報をもつパラメータセットを含んでいることがある。たとえば、パラメータセットは、ビデオパラメータセット(VPS)と、シーケンスパラメータセット(SPS)と、ピクチャパラメータセット(PPS)とを含み得る。パラメータセットの目標の例は、ビットレート効率と、エラーレジリエンシーと、システムレイヤインターフェースを提供することとを含む。各スライスは、復号デバイス112がそのスライスを復号するために使用し得る情報にアクセスするために、単一のアクティブなPPS、SPS、およびVPSを参照する。VPS識別子(ID)と、SPS IDと、PPS IDとを含むIDが、パラメータセットごとにコーディングされ得る。SPSは、SPS IDとVPS IDとを含む。PPSは、PPS IDとSPS IDとを含む。各スライスヘッダはPPS IDを含む。IDを使用して、アクティブなパラメータセットが所与のスライスについて識別され得る。
【0111】
[0118]PPSは、所与のピクチャ中のすべてのスライスに適用される情報を含む。いくつかの例では、ピクチャ中のすべてのスライスは、同じPPSを指す。異なるピクチャ中のスライスも、同じPPSを指し得る。SPSは、同じコード化ビデオシーケンス(CVS)またはビットストリーム中のすべてのピクチャに適用される情報を含む。前に説明されたように、コード化ビデオシーケンスは、(上記で説明された)ベースレイヤ中の、いくつかのプロパティをもつランダムアクセスポイントピクチャ(たとえば、瞬時復号参照(IDR:instantaneous decode reference)ピクチャまたは切断リンクアクセス(BLA:broken link access)ピクチャ、あるいは他の適切なランダムアクセスポイントピクチャ)で開始し、ベースレイヤ中の、いくつかのプロパティをもつランダムアクセスポイントピクチャを有する次のアクセスユニット(AU)までの、次のAU(またはビットストリームの終端)を含まない、一連のAUである。SPS中の情報は、コード化ビデオシーケンス内でピクチャごとに変化しないことがある。コード化ビデオシーケンス中のピクチャは、同じSPSを使用し得る。VPSは、コード化ビデオシーケンスまたはビットストリーム内のすべてのレイヤに適用される情報を含む。VPSは、コード化ビデオシーケンス全体に適用されるシンタックス要素をもつシンタックス構造を含む。いくつかの実施形態では、VPS、SPS、またはPPSは、符号化ビットストリームとともに帯域内で送信され得る。いくつかの実施形態では、VPS、SPS、またはPPSは、コード化ビデオデータを含んでいるNALユニットとは別個の送信において帯域外で送信され得る。
【0112】
[0119]本開示では、概して、シンタックス要素などのある情報を「シグナリング」することに言及することがある。「シグナリング」という用語は、概して、符号化ビデオデータを復号するために使用されるシンタックス要素および/または他のデータについての値の通信を指し得る。たとえば、ビデオ符号化デバイス104は、ビットストリーム中でシンタックス要素についての値をシグナリングし得る。概して、シグナリングは、ビットストリーム中で値を生成することを指す。上述のように、ビデオソース102は、ビデオ宛先デバイス122による後の取出しのためにシンタックス要素を記憶装置108に記憶するときに起こり得るように、ビットストリームを、実質的にリアルタイムで、またはリアルタイムではなく、ビデオ宛先デバイス122に移送し得る。
【0113】
[0120]ビデオビットストリームは、補足エンハンスメント情報(SEI)メッセージをも含むことができる。たとえば、SEI NALユニットはビデオビットストリームの一部であり得る。いくつかの場合には、SEIメッセージは、復号プロセスによって必要とされない情報を含んでいることがある。たとえば、SEIメッセージ中の情報は、ビットストリームのビデオピクチャを復号するためのデコーダにとって必須でないことがあるが、デコーダは、ピクチャの表示または処理(たとえば、復号された出力)を改善するためにその情報を使用であることができる。SEIメッセージ中の情報は埋込みメタデータであり得る。1つの例示的な例では、SEIメッセージ中の情報は、コンテンツの視認性を改善するためにデコーダ側エンティティによって使用され得る。いくつかの事例では、いくつかの適用例規格は、適用例規格に準拠するすべてのデバイスに品質の改善がもたらされ得るように、ビットストリーム中のそのようなSEIメッセージの存在(たとえば、多くの他の例に加えて、フレームパッキングSEIメッセージがビデオのあらゆるフレームのために搬送される、フレーム互換平面立体視3DTVビデオフォーマットのためのフレームパッキングSEIメッセージの搬送、リカバリポイントSEIメッセージの処理、DVBにおけるパンスキャンスキャン矩形SEIメッセージの使用)を規定し得る。
【0114】
[0121]上述されたように、符号化デバイス104は、ビットストリームを生成するために、量子化された変換係数および/またはシンタックス要素をエントロピー符号化し得る。復号デバイス112は、ビットストリームを受信し、エントロピー復号することができる。いくつかの例では、符号化デバイス104および/または復号デバイス112は、エントロピーコーディング(たとえば、エントロピー符号化および/または復号)を実施するために、ライスパラメータを使用したライスコーディングを利用することができる。現在のVVC規格によれば、通常残差コーディング(RRC)のライスパラメータは、近隣変換係数の合計を計算するためのテンプレートと、様々な可能な合計値を特定のライスパラメータ値にマッピングするルックアップテーブルとに基づいて導出され得る。この手法では、テンプレートからの計算された合計は、ライスパラメータ値のルックアップテーブルへのインデックスとして使用される。例示的なテンプレートは、以下で説明される
図2に示されている。ライスパラメータ値のルックアップテーブルの一例は、以下の表1に提供される。
【0115】
[0122]
図2は、ライスパラメータ導出のためのテンプレートの一例を示す図である。
図2の例では、テンプレートは、サンプルの8×8グリッドに対して適用されるものとして示されているが、より大きいまたはより小さい数のサンプル(およびより大きいまたはより小さいグリッド)が利用されてもよい。いくつかの場合には、8×8グリッドは、ビデオデータのより大きいフレームまたはスライスから取得された変換ブロックまたは変換ユニット(TU)を表すことができる。図示のように、(たとえば、中実の黒い塗りつぶしで陰影を付けられた)現在の変換係数のライスパラメータを決定するために、ビデオコーダは、最初にテンプレートを利用して、(たとえば、斜め線の塗りつぶしで淡く陰影を付けられた)1つまたは複数の近隣変換係数を識別することができる。
図2に示されているように、ライスパラメータ導出テンプレートは、所与の現在の係数について5つの近隣係数を識別するが、より大きいまたはより小さい数の近隣係数ならびに/あるいは異なるパターンおよび配置の近隣係数が利用されてもよい。
【0116】
[0123]ビデオコーダは、その後、テンプレート(たとえば、locSumAbs)に基づいて識別された近隣変換係数の絶対値の合計を決定することができる。いくつかの例では、近隣変換係数の得られた合計は、現在の係数のライスパラメータ値をそれによって取得するために表1のルックアップテーブルへのインデックスとして直接提供され得る。一例では、locSumAbsは、表1へのインデックスとして提供される前に、次のように(たとえば、減算およびクリップ演算を介して)正規化され得る。
【0117】
【0118】
[0124]前述のように、ライスパラメータは、ルックアップテーブルへのインデックスとしてlocSumAbsの値を使用して導出され得る。locSumAbs値とライスパラメータ値(たとえば、cRiceParam)との間でマッピングするルックアップテーブルの一例が、以下の表1に提供される。
【0119】
【0120】
[0125]表1に示されているように、いくつかの例では、ライスパラメータの値の範囲は、両端値を含めて、0~3に制約され得る。生のlocSumAbs値は(たとえば、上記で提供された例示的な正規化演算を介して)0と31との間になるように正規化されるので、表1は、正規化演算によって出力され得るlocSumAbsのすべて可能な値に対するライスパラメータ値を導出するために使用され得る。
【0121】
[0126]VVC仕様のセクション9.3.3.2によって与えられるライスパラメータ導出プロセスは、参考のために以下に複製される。
【0122】
【0123】
【0124】
[0127]いくつかの場合には、VVC9.3.3.2のライスパラメータ導出は、たとえば、VVCの高ビット深度拡張のために、高ビット深度ビデオデータが、通常ならば、VVC9.3.3.2の未修正のライスパラメータ導出プロセスの下では、性能および/または効率性の限定を被り得るという観測に基づいて、修正されてよい。修正されたライスパラメータ導出は、したがって、ビデオの様々な入力ビット深度におけるこれらの限定のうちの1つまたは複数に対処するために使用され得、したがって、コーディング設計の圧縮効率を改善することができる。たとえば、いくつかの例では、修正されたライスパラメータ導出は、変換係数の増加したビット深度および/または増加したダイナミックレンジを扱うために、locSumAbsをスケーリングまたは正規化することを含むことができる。前に説明されたのと同様に、スケーリングおよび正規化は、ライスパラメータを導出するためにlocSumAbsを使用するより前に実施され得る。いくつかの例では、VVC仕様の修正された式1517が使用され得る。
【0125】
[0128]ライスパラメータ導出のための修正された式1517の第1の例が以下で提供され、VVC9.3.3.2に対する修正を示すように注釈が付けられている。適用されるスケーリングファクタの量は、入力ビット深度、あらかじめ定義された演算ビット深度(たとえば、10)、変換係数の局所アクティビティ、および/またはビットストリーム中でシグナリングされるブロックサイズもしくはシンタックス要素に依存し得る。次いで、locSumAbsは、たとえば、locSumAbsを0と31との間になるようにクリッピングするVVCにおける既存のクリッピング機構を使用して、特定の範囲にクリッピングされ得る。その後、正規化およびクリッピングされたlocSumAbsを使用して、あらかじめ定義されたルックアップテーブル、たとえば、VVCにおける現在のルックアップテーブル、(上記の表1と同じである)表128を使用してライスパラメータ値を導出し得る。ルックアップテーブルからのライスパラメータ値は、次いで、ライスパラメータ範囲のダイナミックレンジを拡張するためのオフセットを加算することによって修正され得る。以下は、上記で説明された例示的な技法を使用した、VVC仕様のセクション9.3.3.2の例示的な修正である(追加は下線付きのテキスト(「追加」)で示されている)。
【0126】
【0127】
いくつかの例では、追加の変数a、bおよびcが次のように定義され得る。変数aは、整数値、たとえば、a=4、または2の何らかの他のべき乗であり得、変数bは、演算ビット深度、たとえば、b=10を指定し得、変数cは、修正された式1517において上記で導入された計算値shiftに等しく設定されるか、または計算されたシフト値から導出され得る。
【0128】
[0129]ライスパラメータ導出のための修正された式1517の第2の例が以下で提供され、VVC9.3.3.2に対して行われた修正を示すようにこの場合も注釈が付けられている。修正された式1517のこの第2の例では、locSumAbsがしきい値T以上であるときのみ、locSumAbsはスケーリングおよび/または正規化され得る。そのような例では、VVC9.3.3.2によって与えられるライスパラメータ導出プロセスは、それに応じて次のように修正され得る(追加は下線付きのテキスト(「追加」)で示されている)。
【0129】
【0130】
[0130]いくつかの例では、しきい値Tは、あらかじめ定義されたしきい値である。1つの例示的な例では、しきい値Tは、32に等しく設定され得る。いくつかの例では、変数a、b、およびcのうちの1つまたは複数の値は、ビットストリームを通してシグナリングされ得る。追加または代替として、変数a、bおよびcのうちの1つまたは複数の値は、ビット深度、局所統計値(たとえば、現在のブロック内の変換係数値の最小/最大値または平均値)、復号された変換またはブロックサイズ、および/あるいはビットストリーム中でシグナリングされるシンタックス要素のうちの1つまたは複数に応じて設定されるかまたはそれらから導出され得る。いくつかの場合には、すぐ上の式1517の第2の修正において使用される変数a、b、およびcのうちの1つまたは複数の値は、前に論じられた式1517の第1の修正において使用される変数a、b、およびcのうちの1つまたは複数の対応する値と同じであるかまたはさもなければ同様であり得る。
【0131】
[0131]VVC9.3.3.2(たとえば、未修正の式1517)の下でのライスパラメータ導出のためのテンプレートベースの方法と、上記で説明された様々な修正例(たとえば、式1517の第1および第2の修正)とは、いくつかの例では、復号が、ブロックの終了から開始して、それのDCのほうへ進む、逆方向パスで行われることを利用することができる。ブロックまたはTUごとに実施される逆方向パス復号に基づいて、ライスパラメータ導出に対するこれらの前に説明された手法は、現在のTUにおいてより早く復号された1つまたは複数の変換係数を利用することができる。
【0132】
[0132]VVC開発では、ゴロムライス方法を使用して正確なライスパラメータ導出を提供するために、(たとえば、コンテキストコーディングされた)非0の変換係数が使用され得ることを示唆する、いくつかの統計的仮定が行われた。VVC開発中のさらなる統計的仮定は、この非0の変換係数が、デコーダが変換係数復号を開始する前にデコーダに利用可能であることを示唆した。そのような仮定は、VVC開発において利用される共通テスト条件(CTC)コーディングに対して成り立つように思われる。
【0133】
[0133]しかしながら、いくつかの場合(たとえば、高ビット深度コーディングの場合)には、ゴロムライス方法を使用してコーディングされる変換係数をもつ小さいサイズの(たとえば、4×4のサイズを有する)TUの割合が高い場合、正確なライス導出は、TU復号のまさに開始において現れる変換係数のために行われ得ないことが観測される。特に、TU復号の開始において現れるそれらの係数に対してテンプレートベースのライスパラメータ導出を実施するために利用可能な非0の近隣変換係数の量が不十分であり得る(テンプレートベースのライスパラメータ導出は、5など、何らかの所定の数の近隣変換係数を使用することを想起されたい)。
【0134】
[0134]上記で説明されたように、本明細書では、ビデオコーディングにおけるパラメータ導出(たとえば、ライスパラメータ導出)を改善するためのシステムおよび技法について説明される。本システムおよび技法は、符号化デバイス104、復号デバイス112によって、符号化デバイス104と復号デバイス112の両方によって、および/または他のデバイスによって実施され得る。いくつかの場合には、符号化デバイス104および/または復号デバイス112は、不十分な数の近隣変換係数が利用可能であるとき、ライスパラメータ導出のために1つまたは複数の履歴ライスパラメータ値を使用することができる。たとえば、近隣変換係数の数は、ライスパラメータ導出に対するテンプレートベースのルックアップテーブル手法(たとえば、VVCおよび/または他のビデオコーディング規格において使用される手法)を十分に利用するために必要なあらかじめ定義された量よりも小さいことがある。利用不可能な近隣変換係数を無視するか、またはそれらを0に等しく設定するのではなく、本明細書で説明されるシステムおよび技法は、テンプレートおよびルックアップテーブルベースのライス導出を実施するとき、利用不可能な近隣変換係数の代わりに使用される履歴ライスパラメータ値を提供することができる。いくつかの例では、本明細書で説明されるシステムおよび技法は、ルックアップテーブルに基づく既存のライスパラメータ導出技法の短所に通常よりも遭遇し得る、高ビット深度コーディングのコンテキストにおいて使用され得る。
【0135】
[0135]
図3は、(たとえば、現在の係数302に関連付けられた少なくとも5つの近隣変換係数312、314、315、316、および318からなる)テンプレートサポートエリアがコード化変換ブロックまたはTUの外側にわたり、したがって、低い精度のライスパラメータ導出を生じる、異なる例示的なシナリオを示す図である。
図3に示されているように、8×8サンプルグリッド300は、3つの異なる変換ブロック320、330、および340(たとえば、TU)の境界でオーバーレイされて示されている。変換ブロック320、330、および340のすべて3つは、変換ブロック(たとえば、TU)復号および/またはライスパラメータ導出が現在実施されているサンプルまたは係数を表す、現在の係数302を含んでいる。しかしながら、変換ブロック320、330、および340内の現在の係数302の位置は、ライス導出テンプレートによって定義される5つの近隣変換係数のうちの1つまたは複数が、変換ブロック(たとえば、TU)の外側に(たとえば、それの境界を越えて)位置するようなものである。
【0136】
[0136]前に論じられたように、復号は、変換ブロックの右下サンプルから開始するなど、変換ブロック(またはTU)内の構成サンプルわたって逆方向パスで実施され得る。たとえば、変換ブロック320の右下サンプルは、現在の係数302であり、したがって、現在の係数302は、変換ブロック320のために復号される第1のサンプルである。変換ブロック330および340の場合、現在の係数302は右下サンプルでないが、現在の係数302は、逆方向パスで復号されるべき第1の少数のサンプルのうちにとどまる。概して、ライス導出テンプレートの形状(geometry)は、変換ブロック(たとえば、TU)の下部エッジおよび/または右側エッジの近くに位置するサンプルのために、変換ブロックの境界またはボーダー内に完全に含まれていないことがあることが観測され得る。したがって、いくつかの場合には、逆方向パスで復号されるべき第1のサンプルは、上記で説明されたライスパラメータ導出に対するテンプレートベースの手法を十分に利用することができない。
【0137】
[0137]いくつかの例では、テンプレートサポートエリアの外側に、または現在の変換ブロック(たとえば、現在のTU)の外側に位置する近隣変換係数は、絶対値合計locSumAbsを決定(たとえば、算出、計算など)するために0の値を有するものとして扱われ得る。たとえば、近隣変換係数312、314、315、および318はすべて、変換ブロック340(たとえば、TU)の外側に位置し、近隣変換係数316のみが、変換ブロック340の内側にある。そのような例では、変換係数316のみに基づいてライスパラメータ導出を進めると、より低い精度のライスパラメータ導出が生じ得る。いくつかの変換ブロック(たとえば、変換ブロック320など)について、テンプレートによって定義される近隣変換係数のすべてが変換ブロックの外側に位置するとき、VVCおよび他のビデオコーディング規格において指定されたテンプレートおよびルックアップテーブル手法を使用してライスパラメータを導出することが可能でないことがある。
【0138】
[0138]したがって、本明細書で説明されるシステムおよび技法は、最適なライスパラメータの1つまたは複数の履歴値を決定(たとえば、算出、計算など)し維持することに少なくとも部分的によって、ライスパラメータ導出の精度を改善するために使用され得る。いくつかの場合には、最適なライスパラメータの履歴値は、より早く復号または符号化された変換係数(たとえば、逆方向パスで何らかのより早い時間において復号または符号化された、現在の変換ブロックの外部にある変換係数)から決定され得る。いくつかの例では、最適なライスパラメータの1つまたは複数の履歴値は、1つまたは複数の前に符号化された変換ブロックから決定される履歴パラメータ値として利用され得、ここで、履歴パラメータ値は、現在のサンプルのパラメータ(たとえば、ライスパラメータ)を決定するために使用される。いくつかの例では、履歴パラメータ値は、履歴ライスパラメータ値および履歴変換係数値のうちの1つまたは複数を含むことができ、ここで、履歴変換係数値は、1つまたは複数の前に符号化された変換ブロックから決定される。いくつかの場合には、履歴パラメータ値は、履歴変換係数値であり得る。いくつかの例では、履歴パラメータ値は、外部で導出され得るオフセット値であり得る。履歴パラメータ値がオフセット値であるとき、オフセット値は、前に符号化された変換ブロックから決定される1つまたは複数の変換係数値に少なくとも部分的に基づいて決定され得、および/あるいは所定のオフセット値であり得る。
【0139】
[0139]いくつかの例では、ライス導出テンプレートによって与えられる1つまたは複数の近隣変換係数が、現在の変換ブロックの外側に位置するとき、1つまたは複数の履歴ライスパラメータ値は、絶対値合計locSumAbsを決定(たとえば、算出、計算など)する際に使用され得る。たとえば、利用不可能な近隣変換係数を、0値を有するものとして扱うのではなく、利用不可能な近隣変換係数は、代わりに、履歴ライスパラメータ値を割り当てられ得る。
図3のコンテキストおよび変換ブロック340の例では、利用不可能な近隣変換係数は、312、314、315および318である。したがって、変換ブロック340の例では、利用不可能な近隣変換係数312、314、315および318のすべて4つは、履歴ライスパラメータ値を割り当てられ得る。いくつかの場合には、同じ履歴ライスパラメータ値が、利用不可能な近隣変換係数のすべてに割り当てられ得るが、履歴ライスパラメータ値は、利用不可能な近隣変換係数の各々に固有の情報および特性に基づいて修正または調整されることも可能である。
【0140】
[0140]いくつかの例では、絶対値合計locSumAbsは、履歴ライスパラメータ値と利用可能な近隣変換係数の値との組合せを使用して計算され得る。これは、ライス導出テンプレートによって与えられる近隣変換係数の全部ではないが、それらの一部が、現在の変換ブロック(たとえば、TU)の外側に位置する、部分的に利用不可能な場合と呼ばれ得る。変換ブロック340のコンテキストでは、絶対値合計locSumAbsは、したがって、利用可能な変換係数316の絶対値と、4つの利用不可能な変換係数312、314、315、318のために取得されるかまたはさもなければ決定される4つの履歴ライスパラメータ値との合計として計算され得る。上述のように、4つの履歴ライスパラメータ値は、同じであり得るか、または利用不可能な変換係数のうちの所与の変換係数のために特に決定され得る。
【0141】
[0141]絶対値合計locSumAbsは、追加または代替として、履歴ライスパラメータ値のみを使用して計算され得る。これは、ライス導出テンプレートによって与えられる近隣変換係数のすべてが、現在の変換ブロックの外側に位置する、完全に利用不可能な場合と呼ばれ得る。たとえば、変換ブロック320を参照すると、近隣変換係数312、314、315、316、318のすべて5つは、変換ブロック320の現在の係数302に関して利用不可能であることがわかる。それに応じて、この完全に利用不可能な場合には、絶対値合計locSumAbsは、したがって、5つの利用不可能な変換係数のために取得されるかまたはさもなければ決定される5つの履歴ライスパラメータ値の合計として計算され得る。前述のように、5つの履歴ライスパラメータ値は、同じであり得るか、または利用不可能な変換係数のうちの所与の変換係数のために特に決定され得る。
【0142】
[0142]いくつかの例では、本明細書で開示される(たとえば、符号化デバイス104および/または復号デバイス112によって実装される)システムおよび技法は、係数のためのテンプレートベースのライス導出方法の予期(または推定)された精度に基づいて、変換ブロック(たとえば、TU)内の復号された係数の空間的位置を分類することができる。テンプレートベースのライス導出の予期された精度に基づく分類の1つの例示的な例は、
図4に示されている。いくつかの場合には、
図4に示されている8×8サンプルグリッドは、
図3に関して上記で論じられた8×8サンプルグリッドと同じまたは同様であり得る。同様に、現在の係数に関する5つの近隣変換係数の相対的ロケーションは、
図4において、
図3におけるのと同じであり得、たとえば、両方の図は、同じ例示的なライス導出テンプレートを利用する。
【0143】
[0143]テンプレートベースのライス導出の予期された精度の分類は、ライス導出テンプレートが、一貫した様式で(たとえば、ライスパラメータ導出が実施されるたびに同じテンプレートが使用される)、現在の係数の位置に対する近隣係数の位置を識別するという観測に、少なくとも部分的に基づくことができる。したがって、変換ブロック(たとえば、TU)内の現在の係数の位置と、ライス導出テンプレートの形状とが与えられれば、TUの境界の外側に出る近隣変換係数の数は、事前に決定され得る。利用不可能な近隣変換係数のこの数は、次いで、テンプレートベースの方法から生じるはずであるライスパラメータ導出の精度を予測または推定するために使用され得る。いくつかの例では、利用不可能な近隣変換係数の数および/またはライス導出の予期された精度は、さらに、履歴ライスパラメータ値がどのように使用されるか(たとえば、本開示のシステムおよび技法が、部分的に利用不可能な場合に適用されるかまたは完全に利用不可能な場合に適用されるか)を決定することができる。
【0144】
[0144]
図4の例では、サンプル400の8×8グリッドが示されている。サンプルグリッド400は、変換ユニット(TU)またはコード化ブロックであり得、4つの重複しない領域410、420、430、および440に分割される。図示のように、各領域は、ライスパラメータ導出の予想される精度に従って異なる分類(たとえば、C1、C2、C3、C4)を割り当てられ得る。言い換えれば、ライスパラメータ導出の予想される精度は、各領域内のサンプルのすべてについて同じであるが、異なる領域中に位置するサンプルについて必ずしも同じであるとは限らないことがある。
【0145】
[0145]空間的位置が第1の領域410内に位置するサンプル(および関連する変換係数)は、クラスC1として示されている。C1分類をもつサンプルは、テンプレートベースの方法を使用して(たとえば、精度しきい値よりも大きい)正確なライスパラメータ導出を有することが予想されるサンプルであり得る。そのような例によれば、C1係数のライスパラメータ導出は、(たとえば、ビデオ符号化デバイス104および/またはビデオ復号デバイス112によって)次のように決定され得る。
【0146】
【0147】
ここで、template_based_method()は、(上記で複製された)VVCの9.3.3.2節において定義されているテンプレートベースのライスパラメータ導出として提供され得る。いくつかの例では、template_based_method()は、同じく上記で説明された、VVC9.3.3.2に対する可能な修正のうちの1つまたは複数を使用して実装され得る。
【0148】
[0146]空間的位置が第4の領域440内に位置するサンプル(および関連する変換係数)は、クラスC4として示されている。C4分類をもつサンプルは、本明細書で前に説明されたテンプレートベースの方法のうちの1つまたは複数を使用して(たとえば、精度しきい値よりも小さいかまたは0精度の)正確でないライスパラメータ導出を有することが予想されるサンプルであり得る。1つの例示的な例では、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、(たとえば、前に復号された係数の履歴から導出された最適なライスパラメータの1つまたは複数の履歴推定値を使用することによって)正確なライスパラメータ導出を取得するために、代わりに履歴ベースの導出方法を使用することができる。そのような例によれば、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、次のようにC4係数のライスパラメータ導出を決定することができる。
【0149】
【0150】
[0147]空間的位置が第2の領域420内に位置するサンプル(および関連する変換係数)は、クラスC2として示されている。空間的位置が第3の領域内に位置するサンプルおよび変換係数は、クラスC3として示されている。C2またはC3分類をもつサンプルは、本明細書で前に説明されたテンプレートベースの方法またはそれの修正のうちの1つまたは複数を使用して(たとえば、精度しきい値よりも小さい)低減した精度のライスパラメータ導出を有することが予想されるサンプルであり得る。1つの例示的な例では、C2およびC3係数のライスパラメータ導出の精度は、テンプレートベースの方法、たとえば、template_based_method()を、履歴ベースの導出方法、たとえば、history_based_method()と組み合わせることによって改善され得る。そのような例によれば、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、次のようにC2および/またはC3係数のライスパラメータを導出することができる。
【0151】
【0152】
[0148]いくつかの例では、分類は、たとえば、N個の第1の復号された係数をC4に割り当て、残りの係数がC1として分類される、逆方向での走査順序のランに基づくことができる(逆走査順序は、ここではC4に位置するはずである、右下サンプルから始まることを想起されたい)。
【0153】
[0149]いくつかの場合には、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、上記で説明された、定義されたクラスのうちの1つまたは複数のサブセットを使用することができる。たとえば、いくつかの場合には、テンプレートベースの方法は、場合によっては、C4領域440内に位置する現在の係数のライスパラメータを導出するのに近隣係数値の不十分な量を有するので、C4クラスの復号された係数のみが、履歴ライス情報を使用し得る。C1クラスは、C1領域410内に位置する現在の係数のライスパラメータ導出を実施するために履歴ライス情報を使用しない。この理由は、C1をもつあらゆる可能なロケーションについて、ライステンプレートによって定義される近隣係数がすべて、TU400全体内に依然として含まれるからである。したがって、いくつかの例では、C1クラスのサポートは、C2領域420、C3領域430、および/またはTU400全体のうちの1つまたは複数を組み込むように拡張され得、その各場合において、履歴情報はライス導出のために使用されない。
【0154】
[0150]本明細書で説明される技法を利用するために、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、ライスパラメータ、たとえば、riceParを導出するために、局所および履歴情報のアグリゲーションのための異なる技法を適用することができる。いくつかの例では、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、近隣変換係数(たとえば、テンプレートベースの方法による、riceParTemplate)と、履歴ライスパラメータ情報(たとえば、履歴ベースの方法による、riceParHistory)とから取得されたライス情報に基づいて、加重平均を決定(たとえば、算出、計算など)することができる。たとえば、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、次の式を使用して、近隣変換係数と履歴ライスパラメータ情報とから取得されたライス情報に基づいて加重平均を決定することができる。
【0155】
【0156】
[0151]いくつかの場合には、加重平均の重みw1およびw2のうちの1つまたは複数は、現在復号されているTU内の対応する係数の空間的ロケーションに依存することができる。いくつかの例では、加重平均は指数加重移動平均であり得る。
【0157】
[0152]
図5は、前に復号されたTUに基づいて履歴ライスパラメータ情報および/または履歴ライスパラメータ値を決定する一例を示す図である。一連のTUがグリッド500中に示されている。右下TU510は、現在復号されているTUである(たとえば、ここで、履歴ライスパラメータ情報は、現在復号されているTUの個々のサンプルのためのライスパラメータを導出するために使用され得る)。残りのTU551~557は、前に復号されたTUであり、これらから履歴ライスパラメータ情報が計算され得る。前に復号されたTU551~557は、各TUが復号された時間ステップでラベリングされ、たとえば、TU551は1ステップ前に復号され、TU552は2ステップ前に復号され、TU553は3ステップ前に復号された、など。
【0158】
[0153]前に復号されたTU551~557のうちの所与のTUごとに、その所与のTUのために復号された第1の非0の変換係数は、履歴カウンタ520に累算される。いくつかの例では、履歴カウンタ520に累算される値は、第1の非0の変換係数自体の大きさ、第1の非0の変換係数の復号されたライスパラメータの大きさ、および/または上述の係数もしくはライスパラメータの(たとえば、ビットでの)バイナリコード長であり得る。図示のように、履歴カウンタ520は、たとえば、加重合計を実装するために、各累算値Rに重みwを適用することができる。加重合計から、加重平均および/または指数加重移動平均が履歴ライスパラメータ値のために計算され得る。いくつかの場合には、重みwは1に等しく設定され得、その場合、履歴カウンタ520は合計を実装し、算術平均は、履歴ライスパラメータ値のために計算され得る。
【0159】
[0154]いくつかの例では、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、値Rを取得するために使用されている、前に復号されたTU551~557のうちの特定の1つ中の第1の非0の変換係数の空間的ロケーションに基づいて、重みwを決定することができる。空間的ロケーションは、
図4に関して上記で論じられた分類C1~C4のうちの1つに対応することができる。重みwは、0と1との間の値であり得、および/または1、2、3などの整数値であり得る。
【0160】
[0155]各前に復号されたTU551~557の第1の非0の変換係数から抽出された値Rは、履歴カウンタ520に対する更新として使用され、履歴更新または履歴更新値と呼ばれ得る。履歴カウンタ520によって維持される累積履歴更新カウンタは、したがって、一連の前に復号されたTU551~557全体にわたる累積履歴合計(wが1に等しくない場合は加重合計)を表す。いくつかの例では、履歴カウンタ520は、その各々が複数のTUを含んでいる可能性があるCTUおよび/またはスライスの開始において、0または別の開始値に初期化され得る。
【0161】
[0156]履歴カウンタ520における累積履歴値に基づいて、最適な履歴ライスパラメータ値は、現在のTU510において、本明細書で説明される履歴ベースのライス導出を実施するために使用され得る。たとえば、前述のように、算術平均または指数加重移動平均は、履歴カウンタ520から取得され(るか、あるいは履歴カウンタ520から取得された1つまたは複数の値に基づいて計算され)、履歴ライスパラメータ値として使用され得る。
図5では、コネクタ矢印は、履歴カウンタ520からの履歴ライスパラメータ値が、現在のTU510の下部エッジと右側エッジとのいずれかに位置するサンプルのライスパラメータを導出するために利用され得るように、履歴カウンタ520の出力から、現在のTU510のこれらの2つのエリアに流れている。この理由は、いくつかの例では、(たとえば、現在のTU510などの)所与のTUの下部エッジと右側エッジとが、ライス導出テンプレートによって定義される1つまたは複数の利用不可能な近隣変換係数を有する可能性が最も高い個々のサンプルロケーションを含んでいるからである(たとえば、TU400の下部エッジと右側エッジとに位置する、
図4の分類C2、C3、およびC4を参照されたい)。
【0162】
[0157]以下に提供されるのは、(たとえば、ライス導出テンプレートに基づいて現在のTU内で取得される)局所的な近隣係数情報と(たとえば、履歴カウンタ520を介して、前に復号されたTU551~557から取得される)履歴ライスパラメータ情報とのアグリゲーションのためにビデオ符号化デバイス104および/またはビデオ復号デバイス112によって使用され得る技法の一例である。前述のように、履歴ライスパラメータ値は、近隣変換係数の局所情報が利用可能でないかまたは部分的にのみ利用可能である場合、テンプレートベースのライス導出において使用され得る。以下に示されるのは、テンプレートベースのライス導出手法がどのようにして履歴ベースのライス導出をも提供するように拡張され得るかの擬似コード例である。既存のテンプレートベースの方法に対する追加は、下線付きのテキスト(「追加」)で示されている。histCoefという項は、たとえば、過去において累算されたか、または、たとえば、histCoef=1<<histRiceParamなど、履歴ライスパラメータ値に対して表された、推定された履歴変換係数を定義する。MおよびNという項は、推定された重み値、たとえば、整数値であり、いくつかの例では、それぞれ2および3に等しくなり得る。
【0163】
【0164】
[0158]本明細書で説明されるシステムおよび技法は、履歴更新を実施するために様々な技法を適用することができる。いくつかの例では、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、ライス導出のための履歴パラメータをカウンタ(たとえば、履歴カウンタ520)として実装することができる。いくつかの場合には、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、(たとえば、前に復号されたTU551~557の)復号された変換係数および/またはそれらの対応するライスパラメータのための移動平均値ストレージを利用することができる。いくつかの例では、復号された変換係数またはライスパラメータの実際の値を使用するのではなく、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、次式などに基づいて、復号された変換係数または対応するライスパラメータを表すために必要とされるバイナリコードワードの長さを決定(たとえば、算出、計算など)することができる。
【0165】
【0166】
[0159]一例では、インデックスriceClassによって識別されるクラスごとに、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、異なる履歴ライスパラメータ値が、現在のTUのための利用不可能な近隣変換係数のロケーションに応じて利用されるように、個別の履歴を計算し、カウンタStatCoeff[riceClass]に記憶することができる。いくつかの場合には、TU復号中に、履歴更新に含めるために定義される、各復号された変換係数は、(たとえば、上記のcodeLengthなどの)バイナリコード長推定を通して表され得る。バイナリコード長推定は、最適な履歴ライスパラメータ値の示すような履歴更新において使用され得る。
【0167】
[0160]前に復号されたTU551~557ごとに、そのTUの履歴更新に含まれるべき変換係数の数は、NUM_HISTORY_UPDATEによって与えられ得る。いくつかの例では、NUM_HISTORY_UPDATEは1に等しく設定され、各前に復号されたTUからの第1の非0の変換係数のみが利用される。しかしながら、NUM_HISTORY_UPDATEは、2または3などの値にも設定され得、その場合、それぞれ、最初の2つまたは最初の3つの非0の変換係数が、前に復号されたTUごとに使用されるはずである。
【0168】
[0161](たとえば、NUM_HISTORY_UPDATEに等しい)復号された変換係数の数は、1つまたは複数の履歴カウンタにおいて維持される履歴観測値を更新するために使用され得る。いくつかの例では、履歴観測値は、履歴カウンタ520などの履歴カウンタによって記憶および維持され得る。履歴更新プロセスでは別個のカウンタが使用されることが可能であり、次のように、あるカウンタ(たとえば、collectStatCoeff)は、コード長の累積合計を維持し、別のカウンタ(たとえば、counterCollectStatCoeff)は、履歴更新プロセスに提供された係数または別個のエントリの数の累積合計を維持する。
【0169】
【0170】
[0162]現在のクラスおよび/または現在のTUの履歴更新のために定義されたサンプルのNUM_HISTORY_UPDATEの数が上記で説明されたようにパースされた後に、グローバル履歴カウンタStatCoeffは、線形モデル(たとえば、加重移動平均または指数加重移動平均)を通して次のように更新され得る。
【0171】
【0172】
[0163]いくつかの例では、上記の線形モデルのパラメータは、低複雑度の乗算および/または除算演算のより効率的な実施を可能にするために、2のべき乗の導関数として選択され得る。
【0173】
[0164]いくつかの例では、NUM_HISTORY_UPDATEは、第1の非0の変換係数のみが、各前に復号されたTUからパースされ、最適な履歴ライスパラメータを決定するための履歴カウンタを更新するために使用されることを意味する、1に等しく設定され得る。この場合、numCollectedに関する上記の式はnumCollected=0に簡略化される(または、NUM_HISTORY_UPDATEが1に等しくなるように指定されたにもかかわらず、所与の前に復号されたTUのために変換係数が収集されなかった事例を考慮するために、上記の元の式は維持され得る)。
【0174】
[0165]上記の例を続けると、NUM_HISTORY_UPDATEは1に等しく設定され、numCollectedは0に等しく設定され、次いで、第2の式は、averageRiceInTU=collectStatCoeffとして簡略化され得る。言い換えれば、TUごとに単一の変換係数のみが収集された(たとえば、第1の非0の変換係数が収集された)とき、値averageRiceInTUは、そのTUのための収集された値collectStatCoeffと同じである。
【0175】
[0166]いくつかの例では、重みw3およびw4は、両方とも1に等しく設定され得、たとえば、それにより、StatCoeff[i][compID]に関する上記の第3の式からそれらがドロップアウトされる。両方の重み値が1に設定されると、次いで、StatCoeffの更新値は、ちょうど受信された履歴更新値と、最も新しい履歴更新値が受信される直前からの前のStatCoeff値との平均として計算される。いくつかの例では、NUM_HISTORY_UPDATE、w3、およびw4は、それぞれ1に等しく設定され得る。
【0176】
[0167]いくつかの例では、履歴カウンタは、復号ピクチャの特定の領域、たとえば、フルピクチャ、スライス、タイル、CTUのグループ、またはCTUのグループの開始において規範的にリセットされる単一のCTUを通して維持され得る。復号される各新しい領域の開始において、履歴カウンタは、0にリセットされるか、またはさもなければ何らかの所定の開始値に初期化され得る。
【0177】
[0168]各新しい領域の開始において履歴カウンタがデフォルト値で初期化される例では、いくつかの場合には、デフォルト値は、作表され、サイド情報としてデコーダに提供され、(たとえば、スライスレベルで)コード化ビットストリームを通してまたはそれを用いてシグナリングされ、特別な更新シグナリング機構を通して提供され、および/あるいはビット深度、量子化パラメータ、または他のシンタックス要素からデコーダ側において導出され得る。
【0178】
[0169]いくつかの例では、本明細書で説明されるライスパラメータ導出のための履歴更新プロセスの1つまたは複数の態様(たとえば、更新の速度、移動平均のパラメータまたは重みなど)は、ブロックサイズ、ブロック寸法の比、コーディングモード(イントラ予測もしくはインター予測など)、スライスタイプ、および/または復号に関連するシグナリングされたシンタックス要素のうちの1つまたは複数に応じて作成され得る。
【0179】
[0170]
図6は、画像および/またはビデオデータを処理するためのプロセス600の一例を示すフローチャートである。ブロック602において、プロセス600は、変換ブロックを取得することを含むことができ、変換ブロックは、複数のサンプルを含む。いくつかの例では、変換ブロックは、コーディングまたは復号された変換ブロックであり得る。いくつかの例では、変換ブロックは、変換ユニット(TU)であり得る。いくつかの場合には、変換ブロックは、
図3に示されている変換ブロック320、330、および340のうちの1つまたは複数と同じまたは同様であり得る。
【0180】
[0171]ブロック604において、プロセス600は、複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、複数のサンプルのための1つまたは複数のパラメータ(たとえば、ライスパラメータ)を決定することを含む。いくつかの場合には、ブロック604は、複数のサンプルのうちの現在のサンプルの局所近傍を分析することを含むことができる、変換ブロックを走査することを含むことができる。いくつかの例では、現在のサンプルの局所近傍は、現在のサンプルと同じ変換ブロックの内部に位置することができる。たとえば、局所近傍は、
図3では現在のサンプル302について示されている3つの変換ブロック320、300、および340の境界によって与えられ得る。
【0181】
[0172]いくつかの場合には、局所近傍を分析することは、局所近傍をテンプレートサポートエリアと比較することによって実施され得る。テンプレートサポートエリアは、(たとえば、テンプレートおよびルックアップテーブルベースのライスパラメータ導出を実施するために使用される)ライスパラメータ導出テンプレートなど、パラメータ導出テンプレートとして取得され得る。いくつかの態様では、1つまたは複数のパラメータ(たとえば、ライスパラメータ)は、ルックアップテーブルに基づく既存のライスパラメータ導出技法の短所に通常よりも遭遇し得る、高ビット深度コーディングのコンテキストにおいて決定され得る。
【0182】
[0173]ブロック606において、プロセス600は、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定することを含む。決定は、(たとえば、ブロック604に関して上記で説明された)局所近傍の分析に少なくとも部分的に基づき得る。いくつかの例では、しきい値量は、パラメータ導出テンプレート(たとえば、ライスパラメータ導出テンプレート)に含まれる近隣変換係数の数と同じであり得る。
【0183】
[0174]1つの例示的な例では、しきい値量は、
図2に示されているライスパラメータ導出のための例示的なテンプレートに含まれる近隣変換係数の数である、5に等しくなり得る。いくつかの例では、しきい値量は、5よりも大きくまたはそれよりも小さくなり得、ライスパラメータ導出テンプレートは、
図2に示されているよりも大きいまたは小さい数の近隣係数を含むことができる。
【0184】
[0175]いくつかの場合には、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいという決定は、テンプレートサポートエリアが変換ブロックの境界の外側にわたると決定するために使用され得る。たとえば、現在のサンプルにとって利用可能である近隣変換係数の数が、パラメータ導出テンプレート(たとえば、ライスパラメータ導出テンプレート)に含まれる変換係数のしきい値数よりも小さい場合、テンプレートサポートエリアが少なくとも部分的に変換ブロックの境界の外側にわたると決定され得る(たとえば、変換ブロック340は、
図3では、それの境界内に、ただ1つの利用可能な近隣変換係数316を有するものとして示されている)。いくつかの場合には、現在のサンプルにとって利用可能な近隣変換係数の数が0である場合、テンプレートサポートエリアが完全に変換ブロックの境界の外側にわたると決定され得る(たとえば、変換ブロック320は、
図3では、それの境界内に0個の利用可能な近隣変換係数を有するものとして示されている)。
【0185】
[0176]ブロック608において、プロセス600は、1つまたは複数の前に復号された変換ブロックから決定される履歴パラメータ値(たとえば、履歴ライスパラメータ値)を取得することを含む。いくつかの例では、履歴パラメータ値は、変換ブロック内の利用可能な近隣変換係数の数が、ライス導出テンプレートに含まれる変換係数のしきい値数よりも小さいというブロック606における決定に応答して取得され得る。いくつかの場合には、履歴パラメータ値(たとえば、履歴ライスパラメータ値)は、ブロック608において動的に決定され得る。いくつかの例では、履歴パラメータ値(たとえば、履歴ライスパラメータ値)は、前に復号された変換ブロックまたはTUのために決定された値を累算することによって加重合計を維持する履歴カウンタ(たとえば、
図5に示されている履歴カウンタ520)から取得されるかまたは取り出され得る。
【0186】
[0177]いくつかの例では、履歴パラメータ値(たとえば、履歴ライスパラメータ値)は、加重合計を実装するために、履歴カウンタを使用して各累算値Rに重みwを適用することによって、1つまたは複数の前に復号された変換ブロックから決定され得る。いくつかの場合には、加重合計は、加重平均および/または指数加重移動平均を計算するために使用され得、加重平均および/または指数加重移動平均は、次いで、ブロック608において取得される履歴パラメータ値(たとえば、履歴ライスパラメータ値)として使用され得る。いくつかの場合には、重みwは、所与の前に復号された変換ブロック中の第1の非0の変換係数の空間的ロケーションに少なくとも部分的に基づいて決定され得る。いくつかの態様では、重みwを決定するために使用される空間的ロケーションは、
図4に示されているように分類C1~C4のうちの1つに対応することができる。いくつかの態様では、重みwは、0と1との間の値であり得、および/または整数値であり得る。いくつかの例では、履歴パラメータ値(たとえば、履歴ライスパラメータ値)は、CTUまたはスライスの終了に達するまで履歴カウンタを更新することによって計算され得、その終了の時間において、履歴カウンタ(および履歴ライスパラメータ値)は0または何らかの他の開始値に初期化され得、履歴更新プロセスが繰り返される。
【0187】
[0178]ブロック610において、プロセス600は、現在のサンプルのパラメータ(たとえば、ライスパラメータ)を決定することを含む。プロセス600は、上記で説明されたように、ブロック608において取得された履歴パラメータ値(たとえば、履歴ライスパラメータ値)に少なくとも部分的に基づいてパラメータ(たとえば、ライスパラメータ)を決定することができる。いくつかの例では、履歴パラメータ値(たとえば、履歴ライスパラメータ値)は、テンプレートベースのパラメータ導出手法(たとえば、テンプレートベースのライスパラメータ導出手法)が利用されるとき、各利用不可能な近隣変換係数を交換するために使用され得る。テンプレートベースの近隣変換係数が部分的にのみ利用不可能であるとき、ライスパラメータは、利用可能な近隣変換係数とN倍の履歴パラメータ値(たとえば、履歴ライスパラメータ値)との合計に基づいて決定され得、ここで、Nは、(たとえば、ブロック604において決定され得る)利用不可能な近隣変換係数の数に等しい。
【0188】
[0179]ブロック612において、プロセス600は、現在のサンプルの決定されたパラメータに基づいて現在のサンプルを復号することを含む。たとえば、本明細書で説明されるように、プロセス600は、パラメータに基づいて現在のサンプルを復号するために、(たとえば、
図9に関して以下で説明されるエントロピー復号ユニット80を使用して)エントロピー復号を実施することができる。一例では、復号デバイス112は、決定されたパラメータに基づいて現在のサンプルを示すシンタックス要素を復号することに少なくとも部分的によって現在のサンプルを復号することができる。別の例では、復号デバイス112は、決定されたパラメータを使用してゴロムライスコードを復号することに少なくとも部分的によって現在のサンプルを復号することができる。
【0189】
[0180]
図7は、画像および/またはビデオデータを処理するためのプロセス700の一例を示すフローチャートである。ブロック702において、プロセス700は、変換ブロックを取得することを含むことができる。いくつかの例では、変換ブロックは、コーディングまたは復号された変換ブロックであり得る。いくつかの例では、変換ブロックは、変換ユニット(TU)であり得る。いくつかの場合には、変換ブロックは、
図3に示されている変換ブロック320、330、および340のうちの1つまたは複数と同じまたは同様であり得る。
【0190】
[0181]ブロック704において、プロセス700は、変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0の復号された変換係数を決定することを含むことができる。いくつかの場合には、変換ブロックの分析は、変換ブロックを走査することによって実施され得る。たとえば、変換ブロックを走査することは、逆方向の走査順序で実施され得る(たとえば、ここで、逆走査順序は、変換ブロックまたはTUの右下サンプルから始まる)。走査することは、少なくとも第1の非0の復号された変換係数の位置が特定されるまで続くことができる。2つ以上の非0の復号された変換係数が決定されるべき場合、走査することは、非0の復号された変換係数の所定の量が決定されるまで続くことができる。いくつかの例では、走査プロセス中に、非0の復号された変換係数に遭遇したとき、非0値はバッファまたはカウンタに記憶され得る。
【0191】
[0182]ブロック706において、プロセス700は、1つまたは複数の非0の復号された変換係数の少なくとも一部分に基づいて、変換ブロックの履歴更新値を決定することを含むことができる。1つの例示的な例では、履歴更新値は、ブロック704において変換ブロックを分析(たとえば、走査)するときに取得された第1の非0の変換係数から決定され得る。いくつかの場合には、所与の変換ブロックの履歴更新値は、所与の変換ブロックを走査するとき取得された、第1の非0の復号された変換係数の値に等しくなり得る。いくつかの例では、変換ブロックの履歴更新値は、変換ブロックの非0の復号された変換係数のすべてに基づいて決定される。いくつかの場合には、履歴更新値は、変換ブロックの非0の復号された変換係数のすべてを平均化することに少なくとも部分的によって決定される。
【0192】
[0183]いくつかの例では、履歴更新値は、前に復号された変換ブロックのために決定された履歴更新値を累算することによって加重合計を維持する履歴カウンタ(たとえば、
図5に示されている履歴カウンタ520)に記憶され得る。
【0193】
[0184]ブロック708において、プロセス700は、変換ブロックの履歴更新値を既存の履歴パラメータ値(たとえば、既存の履歴ライスパラメータ値)と組み合わせることに少なくとも部分的によって既存の履歴パラメータ値を更新することを含むことができる。いくつかの態様では、変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることは、変換ブロックの履歴更新値を既存の履歴パラメータ値で平均化することを含むことができる。いくつかの場合には、既存の履歴パラメータ値は、既存の履歴ライスパラメータ値である。
【0194】
[0185]いくつかの態様では、変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることは、変換ブロックの履歴更新値と既存の履歴パラメータ値との間の指数加重移動平均を決定することを含むことができる。いくつかの場合には、プロセス700は、変換ブロックの履歴更新値に第1の重みを、および既存の履歴パラメータ値に第2の重みを割り当てることを含むことができる。そのような場合、指数加重移動平均を決定することは、第1の重みおよび第2の重みに少なくとも部分的に基づく。
【0195】
[0186]いくつかの態様では、変換ブロックの履歴更新値は、変換ブロックの分析において決定される、第1の非0の復号された変換係数に基づいて決定される。いくつかの場合には、第1の非0の復号された変換係数は、逆方向の変換ブロックのラン走査順序に基づいて決定される。いくつかの場合には、変換ブロックの履歴更新値は、第1の非0の復号された変換係数のバイナリコード長を決定することに少なくとも部分的によって決定される。
【0196】
[0187]いくつかの態様では、変換ブロックと、前に分析された変換ブロックとは、第1のスライスに関連付けられる。いくつかの場合には、既存の履歴パラメータ値は、同じスライスに関連付けられた連続的に分析される変換ブロックのために決定される連続的な履歴更新値に基づいて反復的に更新される。いくつかの例では、プロセス700は、既存の履歴パラメータ値を所定の値に初期化することを含む。初期化することは、第1のスライスの第1の変換ブロックを分析することと、第1の変換ブロックの履歴更新値を決定することとの前に実施される。
【0197】
[0188]たとえば、既存の履歴パラメータ値(たとえば、既存の履歴ライスパラメータ値)は、一連の前に分析された(たとえば、前に走査された)変換ブロックから決定される、一連の非0の復号された変換係数に少なくとも部分的に基づき得る。いくつかの例では、既存の履歴パラメータ値(たとえば、既存の履歴ライスパラメータ値)は、加重合計を実装または決定することなどのために、履歴カウンタを使用して各累算値Rに重みwを適用することによって、1つまたは複数の前に復号された変換ブロックから決定され得る。
【0198】
[0189]いくつかの場合には、加重合計は、加重平均および/または指数加重移動平均を計算するために使用され得る。1つの例示的な例では、重みwは、累算値ごとに1に等しく設定され得る。いくつかの場合には、重みwは、所与の前に復号された変換ブロック中の第1の非0の変換係数の空間的ロケーションに少なくとも部分的に基づいて決定され得る。いくつかの態様では、重みwを決定するために使用される空間的ロケーションは、
図4に示されているように分類C1~C4のうちの1つに対応することができる。いくつかの態様では、重みwは、0と1との間の値であり得、および/または整数値であり得る。いくつかの例では、履歴ライスパラメータ値は、CTUまたはスライスの終了に達するまで履歴カウンタを更新することによって計算され得、その終了の時間において、履歴カウンタ(および履歴ライスパラメータ値)は0または何らかの他の開始値に初期化され得、履歴更新プロセスが繰り返される。
【0199】
[0190]ブロック710において、プロセス700は、既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいて、変換ブロックの少なくとも1つのサンプルを復号することを含む。たとえば、本明細書で説明されるように、プロセス700は、既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいて現在のサンプルを復号するために、(たとえば、
図9に関して以下で説明されるエントロピー復号ユニット80を使用して)エントロピー復号を実施することができる。一例では、復号デバイス112は、既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいて、少なくとも1つのサンプルを示すシンタックス要素を復号することに少なくとも部分的によって現在のサンプルを復号することができる。別の例では、復号デバイス112は、既存の履歴パラメータ値または更新された既存の履歴パラメータ値を使用してゴロムライスコードを復号することに少なくとも部分的によって現在のサンプルを復号することができる。
【0200】
[0191]いくつかの態様では、ビデオデータを符号化するプロセスは、複数のサンプルを含む変換ブロックを取得することを含むことができる。プロセスは、複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、複数のサンプルのための1つまたは複数のパラメータを決定することを含むことができる。プロセスは、局所近傍の分析に少なくとも部分的に基づいて、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定することをさらに含むことができる。いくつかの場合には、プロセスは、現在のサンプルのための1つまたは複数の利用不可能な近隣変換係数を識別したことに少なくとも部分的に基づいて、近隣変換係数の数がしきい値量よりも小さいと決定することができる。そのような場合、1つまたは複数の利用不可能な近隣変換係数は、変換ブロックの外部のロケーションに関連付けられ得る。いくつかの例では、プロセスは、変換ブロック内の現在のサンプルのロケーションを取得することと、現在のサンプルのロケーションを、変換ブロックの幅、変換ブロックの高さ、または変換ブロックの幅および高さと比較することと、比較に少なくとも部分的に基づいて、1つまたは複数の利用不可能な近隣変換係数を識別することとを含むことができる。いくつかの場合には、近隣変換係数の数がしきい値量よりも小さいと決定するために、プロセスは、現在のサンプルのロケーションの水平成分が変換ブロックの幅の第1の距離内にあると決定することと、現在のサンプルのロケーションの垂直成分が変換ブロックの高さの第2の距離内にあると決定することとを含むことができる。
【0201】
[0192]ビデオデータを符号化するプロセスは、1つまたは複数の前に符号化された変換ブロックから決定される履歴パラメータ値を取得することをさらに含むことができる。ビデオデータを符号化するプロセスは、履歴パラメータ値に少なくとも部分的に基づいて、現在のサンプルのパラメータを決定することをさらに含むことができる。いくつかの例では、複数のサンプルのための1つまたは複数のパラメータは、1つまたは複数のライスパラメータを含み、履歴パラメータ値は、履歴ライスパラメータ値であり、現在のサンプルのために決定されるパラメータは、現在のサンプルのライスパラメータである。
【0202】
[0193]いくつかの例では、ビデオデータを符号化するプロセスは、近隣変換係数の数が0であるという決定に少なくとも部分的に基づいて、履歴パラメータ値の第1の整数倍に基づいて現在のサンプルのパラメータを決定することを含むことができる。いくつかの態様では、プロセスは、入力とパラメータとの間でマッピングするルックアップテーブルへの入力として、履歴パラメータ値の第1の整数倍を提供することに少なくとも部分的によって、現在のサンプルのパラメータを決定することができる。いくつかの場合には、第1の整数倍としきい値量は、同じ値である。いくつかの態様では、プロセスは、近隣変換係数の数が0よりも大きいという決定に少なくとも部分的に基づいて、履歴パラメータ値の第2の整数倍と近隣変換係数の合計とに基づいて現在のサンプルのパラメータを決定することを含むことができる。そのような態様では、第2の整数倍は、第1の整数倍よりも小さい。さらに、そのような態様では、プロセスは、入力とパラメータとの間でマッピングするルックアップテーブルへの入力として、近隣変換係数の合計と合計された履歴パラメータ値の第2の整数倍を提供することに少なくとも部分的によって、現在のサンプルのパラメータを決定することができる。
【0203】
[0194]いくつかの例では、複数のサンプルは、変換ブロックサンプルタイプに関連付けられる。たとえば、変換ブロックサンプルタイプは、ルーマサンプルまたはクロマサンプルを含むことができる。いくつかの場合には、変換ブロックサンプルタイプは、履歴パラメータ値がそれから決定される、1つまたは複数の前に復号された変換ブロックに関連付けられたサンプルタイプと同じである。
【0204】
[0195]いくつかの態様では、履歴パラメータ値は、1つまたは複数の前にコーディングされた変換ブロックの各々から取得される、第1の非0の復号された変換係数に少なくとも部分的に基づいて決定される。いくつかの例では、プロセスは、1つまたは複数の前にコーディングされた変換ブロックの各々から取得される、各第1の非0の復号された変換係数のバイナリコード長を決定することを含むことができる。いくつかの場合には、履歴パラメータ値は、1つまたは複数の前にコーディングされた変換ブロックの各々の第1の非0のコーディングされた変換係数のために決定されるバイナリコード長の指数加重移動平均として決定される。
【0205】
[0196]プロセスは、現在のサンプルの決定されたパラメータに基づいてビットストリームを生成することをさらに含むことができる。たとえば、符号化デバイス104は(たとえば、エントロピー符号化ユニット56を使用して)、決定されたパラメータ(たとえば、ライスパラメータ)に基づいてビットストリームを生成することができる。
【0206】
[0197]いくつかの例では、ビデオデータを符号化するプロセスが提供される。プロセスは、変換ブロックを取得することを含むことができる。プロセスは、変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0のコーディングされた変換係数を決定することをさらに含むことができる。プロセスは、1つまたは複数の非0のコーディングされた変換係数の少なくとも一部分に基づいて、変換ブロックの履歴更新値を決定することを含むことができる。
【0207】
[0198]ビデオデータを符号化するプロセスは、変換ブロックの分析において決定される、第1の非0のコーディングされた変換係数に基づいて、変換ブロックの履歴更新値を決定することを含むことができる。いくつかの例では、プロセスは、逆方向の変換ブロックのラン走査順序に基づいて、第1の非0のコーディングされた変換係数を決定することを含むことができる。いくつかの場合には、プロセスは、第1の非0のコーディングされた変換係数のバイナリコード長を決定することに少なくとも部分的によって変換ブロックの履歴更新値を決定することを含むことができる。いくつかの場合には、プロセスは、変換ブロックの非0のコーディングされた変換係数のすべてに基づいて変換ブロックの履歴更新値を決定することを含むことができる。いくつかの例では、プロセスは、変換ブロックの非0のコーディングされた変換係数のすべてを平均化することに少なくとも部分的によって履歴更新値を決定することを含むことができる。
【0208】
[0199]ビデオデータを符号化するプロセスは、変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせる(たとえば、平均化するかまたは他の方法で組み合わせる)ことに少なくとも部分的によって既存の履歴パラメータ値を更新することをさらに含むことができる。いくつかの態様では、既存の履歴パラメータ値は、既存の履歴ライスパラメータ値である。既存の履歴パラメータ値は、一連の前に分析された変換ブロックから決定される、一連の非0のコーディングされた変換係数に少なくとも部分的に基づく。いくつかの態様では、既存の履歴パラメータ値を更新するために、プロセスは、変換ブロックの履歴更新値と既存の履歴パラメータ値との間の指数加重移動平均を決定することを含むことができる。たとえば、いくつかの場合には、プロセスは、変換ブロックの履歴更新値に第1の重みを、および既存の履歴パラメータ値に第2の重みを割り当てることと、第1の重みおよび第2の重みに少なくとも部分的に基づいて指数加重移動平均を決定することとを含むことができる。
【0209】
[0200]いくつかの態様では、変換ブロックと、前に分析された変換ブロックとは、第1のスライスに関連付けられる。プロセスは、同じスライスに関連付けられた連続的に分析される変換ブロックのために決定される連続的な履歴更新値に基づいて既存の履歴パラメータ値を反復的に更新することをさらに含むことができる。いくつかの場合には、プロセスは、既存の履歴パラメータ値を所定の値に初期化することを含むことができる。いくつかの例では、プロセスは、第1のスライスの第1の変換ブロックを分析することと、第1の変換ブロックの履歴更新値を決定することとの前に、初期化を実施することができる。
【0210】
[0201]ビデオデータを符号化するプロセスは、既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいてビットストリームを生成することをさらに含むことができる。たとえば、符号化デバイス104は(たとえば、エントロピー符号化ユニット56を使用して)、決定されたパラメータ(たとえば、ライスパラメータ)に基づいてビットストリームを生成することができる。
【0211】
[0202]いくつかの実装形態では、本明細書で説明されるプロセス(または方法)は、
図1に示されているシステム100など、コンピューティングデバイスまたは装置によって実施され得る。たとえば、プロセスは、
図1および
図8に示されている符号化デバイス104によって、別のビデオソース側デバイスもしくはビデオ送信デバイスによって、
図1および
図9に示されている復号デバイス112によって、ならびに/または、プレーヤデバイス、ディスプレイ、もしくは任意の他のクライアント側デバイスなど、別のクライアント側デバイスによって実施され得る。いくつかの場合には、コンピューティングデバイスまたは装置は、本明細書で説明されるプロセスのステップを行うように構成されたデバイスのプロセッサ、マイクロプロセッサ、マイクロコンピュータ、または他の構成要素を含み得る。いくつかの例では、コンピューティングデバイスまたは装置は、ビデオフレームを含むビデオデータ(たとえば、ビデオシーケンス)をキャプチャするように構成されたカメラを含み得る。いくつかの例では、ビデオデータをキャプチャするカメラまたは他のキャプチャデバイスは、コンピューティングデバイスとは別個であり、その場合、コンピューティングデバイスは、キャプチャされたビデオデータを受信または取得する。コンピューティングデバイスは、ビデオデータを通信するように構成されたネットワークインターフェースをさらに含み得る。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータまたは他のタイプのデータを通信するように構成され得る。いくつかの例では、コンピューティングデバイスまたは装置は、ビデオビットストリームのピクチャのサンプルなど、出力ビデオコンテンツを表示するためのディスプレイを含み得る。
【0212】
[0203]プロセスは、論理流れ図に関して説明され得、その動作は、ハードウェア、コンピュータ命令、またはそれらの組合せにおいて実施され得る動作のシーケンスを表現する。コンピュータ命令のコンテキストでは、動作は、1つまたは複数のプロセッサによって実行されたとき、具陳された動作を実施する1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表現する。概して、コンピュータ実行可能命令は、特定の機能を実施するか、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が説明される順序は、限定として解釈されるものではなく、任意の数の説明される動作は、プロセスを実装するために任意の順序でおよび/または並行して組み合わされ得る。
【0213】
[0204]さらに、プロセスは、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実施され得、まとめて1つまたは複数のプロセッサ上で、ハードウェアによって、あるいはそれらの組合せで実行するコード(たとえば、実行可能命令、1つまたは複数のコンピュータプログラム、または1つまたは複数のアプリケーション)として実装され得る。上述のように、コードは、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読または機械可読記憶媒体に記憶され得る。コンピュータ可読または機械可読記憶媒体は非一時的であり得る。
【0214】
[0205]本明細書で説明されるコーディング技法は、例示的なビデオ符号化および復号システム(たとえば、システム100)において実装され得る。いくつかの例では、システムは、宛先デバイスによって後で復号されるべき符号化ビデオデータを提供するソースデバイスを含む。特に、ソースデバイスは、コンピュータ可読媒体を介してビデオデータを宛先デバイスに提供する。ソースデバイスと宛先デバイスとは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイスと宛先デバイスとは、ワイヤレス通信のために装備され得る。
【0215】
[0206]宛先デバイスは、コンピュータ可読媒体を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体は、ソースデバイスから宛先デバイスに符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体は、ソースデバイスが符号化ビデオデータを宛先デバイスにリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイスに送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信媒体は、ソースデバイスから宛先デバイスへの通信を可能にするために有用であり得る、ルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【0216】
[0207]いくつかの例では、符号化データは、出力インターフェースから記憶デバイスに出力され得る。同様に、符号化データは、入力インターフェースによって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイスは、ソースデバイスによって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイスは、ストリーミングまたはダウンロードを介して記憶デバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、その符号化ビデオデータを宛先デバイスに送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイスは、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。記憶デバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【0217】
[0208]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システムは、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0218】
[0209]一例では、ソースデバイスは、ビデオソースと、ビデオエンコーダと、出力インターフェースとを含む。宛先デバイスは、入力インターフェースと、ビデオデコーダと、ディスプレイデバイスとを含み得る。ソースデバイスのビデオエンコーダは、本明細書で開示される技法を適用するように構成され得る。他の例では、ソースデバイスと宛先デバイスとは、他の構成要素または配置を含み得る。たとえば、ソースデバイスは、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイスは、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【0219】
[0210]上記の例示的なシステムは一例にすぎない。ビデオデータを並行して処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実施され得る。概して、本開示の技法はビデオ符号化デバイスによって実施されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実施され得る。その上、本開示の技法はビデオプリプロセッサによっても実施され得る。ソースデバイスと宛先デバイスとは、ソースデバイスが宛先デバイスに送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、ソースデバイスと宛先デバイスとは、デバイスの各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、例示的なシステムは、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ビデオデバイス間の一方向または双方向のビデオ送信をサポートし得る。
【0220】
[0211]ビデオソースは、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソースは、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。いくつかの場合には、ビデオソースがビデオカメラである場合、ソースデバイスと宛先デバイスとは、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダによって符号化され得る。符号化されたビデオ情報は、次いで、出力インターフェースによってコンピュータ可読媒体上に出力され得る。
【0221】
[0212]述べられたように、コンピュータ可読媒体は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu-rayディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、たとえば、ネットワーク送信を介して、ソースデバイスから符号化ビデオデータを受信し、その符号化ビデオデータを宛先デバイスに提供し得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイスから符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解され得る。
【0222】
[0213]宛先デバイスの入力インターフェースは、コンピュータ可読媒体から情報を受信する。コンピュータ可読媒体の情報は、ビデオエンコーダによって定義され、またビデオデコーダによって使用される、ブロックおよび他のコード化ユニット、たとえば、ピクチャグループ(GOP)の特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイスは、復号ビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。本出願の様々な実施形態について説明された。
【0223】
[0214]符号化デバイス104と復号デバイス112との具体的な詳細が、それぞれ
図8および
図9に示されている。
図8は、本開示で説明される技法のうちの1つまたは複数を実装し得る例示的な符号化デバイス104を示すブロック図である。符号化デバイス104は、たとえば、本明細書で説明されるシンタックス構造(たとえば、VPS、SPS、PPS、または他のシンタックス要素のシンタックス構造)を生成し得る。符号化デバイス104は、ビデオスライス内のビデオブロックのイントラ予測コーディングとインター予測コーディングとを実施し得る。前に説明されたように、イントラコーディングは、所与のビデオフレームまたはピクチャ内の空間冗長性を低減または除去するために、空間予測に少なくとも部分的に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたは周囲のフレーム内の時間冗長性を低減または除去するために、時間予測に少なくとも部分的に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。
【0224】
[0215]符号化デバイス104は、区分ユニット35と、予測処理ユニット41と、フィルタユニット63と、ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測処理ユニット46とを含む。ビデオブロック再構築のために、符号化デバイス104はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。フィルタユニット63は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表現するものとする。
図8では、フィルタユニット63はループ内フィルタであるものとして示されているが、他の構成では、フィルタユニット63はループ後フィルタとして実装され得る。後処理デバイス57は、符号化デバイス104によって生成された符号化ビデオデータに対して追加の処理を実施し得る。本開示の技法は、いくつかの事例では、符号化デバイス104によって実装され得る。しかしながら、他の事例では、本開示の技法のうちの1つまたは複数は、後処理デバイス57によって実装され得る。
【0225】
[0216]
図8に示されているように、符号化デバイス104はビデオデータを受信し、区分ユニット35はデータをビデオブロックに区分する。区分はまた、たとえば、LCUおよびCUのクワッドツリー構造に従って、スライス、スライスセグメント、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分を含み得る。符号化デバイス104は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(および場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、誤差結果(たとえば、コーディングレートおよびひずみレベルなど)に基づいて現在のビデオブロックについて、複数のイントラ予測コーディングモードのうちの1つ、または複数のインター予測コーディングモードのうちの1つなど、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット41は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に提供し、参照ピクチャとして使用するための符号化ブロックを再構築するために加算器62に提供し得る。
【0226】
[0217]予測処理ユニット41内のイントラ予測処理ユニット46は、空間圧縮を行うために、コーディングされるべき現在のブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して現在のビデオブロックのイントラ予測コーディングを実施し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対して現在のビデオブロックのインター予測コーディングを実施する。
【0227】
[0218]動き推定ユニット42は、ビデオシーケンスに対する所定のパターンに従って、ビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスを、Pスライス、Bスライス、またはGPBスライスに指定し得る。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別個に示されている。動き推定ユニット42によって実施される動き推定は、ビデオブロックについての動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する、現在のビデオフレームまたはピクチャ内のビデオブロックの予測ユニット(PU)の変位を示し得る。
【0228】
[0219]予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUにぴったり一致することがわかるブロックである。いくつかの例では、符号化デバイス104は、ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置についての値を計算し得る。たとえば、符号化デバイス104は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対して動き探索を実施し、分数ピクセル精度で動きベクトルを出力し得る。
【0229】
[0220]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUについての動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの各々は、ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
【0230】
[0221]動き補償ユニット44によって実施される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実施することを伴い得る。現在のビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストにおいて指す予測ブロックの位置を特定し得る。符号化デバイス104は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックのための残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表現する。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際に復号デバイス112が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【0231】
[0222]イントラ予測処理ユニット46は、上記で説明されたように、動き推定ユニット42と動き補償ユニット44とによって実施されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測処理ユニット46は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードのためにレートひずみ分析を使用してレートひずみ値を計算し得、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのためのひずみおよびレートから比を計算し得る。
【0232】
[0223]いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。符号化デバイス104は、様々なブロックのための符号化コンテキストの構成データ定義、ならびにコンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示を送信ビットストリーム中に含め得る。ビットストリーム構成データは、複数のイントラ予測モードインデックステーブルと、(コードワードマッピングテーブルとも呼ばれる)複数の修正されたイントラ予測モードインデックステーブルとを含み得る。
【0233】
[0224]予測処理ユニット41が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロックのための予測ブロックを生成した後、符号化デバイス104は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【0234】
[0225]変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実施し得る。代替的に、エントロピー符号化ユニット56が走査を実施し得る。
【0235】
[0226]量子化の後に、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピー符号化技法を実施し得る。エントロピー符号化ユニット56によるエントロピー符号化の後に、符号化ビットストリームは復号デバイス112に送信されるか、あるいは復号デバイス112が後で送信するかまたは取り出すためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コーディングされている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【0236】
[0227]逆量子化ユニット58と逆変換処理ユニット60とは、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構築するために、それぞれ逆量子化と逆変換とを適用する。動き補償ユニット44は、残差ブロックを参照ピクチャリスト内の参照ピクチャのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構築された残差ブロックに1つまたは複数の補間フィルタを適用し得る。加算器62は、ピクチャメモリ64に記憶するための参照ブロックを生成するために、再構築された残差ブロックを動き補償ユニット44によって生成された動き補償予測ブロックに加算する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
【0237】
[0228]このようにして、
図8の符号化デバイス104は、本明細書で説明される技法を実施するように構成されたビデオエンコーダの一例を表す。たとえば、符号化デバイス104は、本明細書で説明されるプロセスを含む、本明細書で説明される技法のいずれかを実施し得る。いくつかの場合には、本開示の技法のうちのいくつかは、後処理デバイス57によっても実装され得る。
【0238】
[0229]
図9は、例示的な復号デバイス112を示すブロック図である。復号デバイス112は、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、フィルタユニット91と、ピクチャメモリ92とを含む。予測処理ユニット81は、動き補償ユニット82と、イントラ予測処理ユニット84とを含む。復号デバイス112は、いくつかの例では、
図8からの符号化デバイス104に関して説明された符号化パスとは概して逆の復号パスを実施し得る。
【0239】
[0230]復号プロセス中に、復号デバイス112は、符号化デバイス104によって送られた、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表現する符号化ビデオビットストリームを受信する。いくつかの実施形態では、復号デバイス112は、符号化デバイス104から符号化ビデオビットストリームを受信し得る。いくつかの実施形態では、復号デバイス112は、サーバ、メディアアウェアネットワーク要素(MANE)、ビデオエディタ/スプライサ、または上記で説明された技法のうちの1つまたは複数を実装するように構成された他のそのようなデバイスなど、ネットワークエンティティ79から符号化ビデオビットストリームを受信し得る。ネットワークエンティティ79は、符号化デバイス104を含むことも、含まないこともある。本開示で説明される技法のうちのいくつかは、ネットワークエンティティ79が符号化ビデオビットストリームを復号デバイス112に送信するより前に、ネットワークエンティティ79によって実装され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ79および復号デバイス112は別個のデバイスの部分であり得るが、他の事例では、ネットワークエンティティ79に関して説明される機能は、復号デバイス112を備える同じデバイスによって実施され得る。
【0240】
[0231]復号デバイス112のエントロピー復号ユニット80は、量子化係数と、動きベクトルと、他のシンタックス要素とを生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルと他のシンタックス要素とを予測処理ユニット81に転送する。復号デバイス112は、ビデオスライスレベルおよび/またはビデオブロックレベルのシンタックス要素を受信し得る。エントロピー復号ユニット80は、VPS、SPS、およびPPSなど、または複数のパラメータセット中の固定長シンタックス要素と可変長シンタックス要素の両方を処理し、パースし得る。
【0241】
[0232]ビデオスライスがイントラコード化(I)スライスとしてコーディングされたとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(すなわち、B、PまたはGPB)スライスとしてコーディングされたとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリスト内の参照ピクチャのうちの1つから生成され得る。復号デバイス112は、ピクチャメモリ92に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構築し得る。
【0242】
[0233]動き補償ユニット82は、動きベクトルと他のシンタックス要素とをパースすることによって現在のビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在のビデオブロックのための予測ブロックを生成するために、その予測情報を使用する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスのための1つまたは複数の参照ピクチャリストのための構築情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、パラメータセット中の1つまたは複数のシンタックス要素を使用し得る。
【0243】
[0234]動き補償ユニット82はまた、補間フィルタに基づいて補間を実施し得る。動き補償ユニット82は、参照ブロックのサブ整数ピクセルのための補間値を計算するために、ビデオブロックの符号化中に符号化デバイス104によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素から符号化デバイス104によって使用された補間フィルタを決定し得、予測ブロックを生成するためにその補間フィルタを使用し得る。
【0244】
[0235]逆量子化ユニット86は、ビットストリーム中で提供され、エントロピー復号ユニット80によって復号された量子化変換係数を逆量子化、すなわち、量子化解除する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべきである逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとに符号化デバイス104によって計算される量子化パラメータの使用を含み得る。逆変換処理ユニット88は、ピクセル領域における残差ブロックを生成するために、逆変換(たとえば、逆DCTまたは他の好適な逆変換)、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【0245】
[0236]動き補償ユニット82が、動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックのための予測ブロックを生成した後に、復号デバイス112は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器90は、この加算演算を実施する1つまたは複数の構成要素を表現する。所望される場合、(コーディングループ内またはコーディングループ後のいずれかの)ループフィルタも、ピクセル遷移を平滑化するために、またはさもなければビデオ品質を改善するために使用され得る。フィルタユニット91は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表現するものとする。
図9では、フィルタユニット91はループ内フィルタであるものとして示されているが、他の構成では、フィルタユニット91はループ後フィルタとして実装され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶するピクチャメモリ92に記憶される。ピクチャメモリ92はまた、
図1に示されているビデオ宛先デバイス122など、ディスプレイデバイス上で後で提示するために復号ビデオを記憶する。
【0246】
[0237]このようにして、
図9の復号デバイス112は、本明細書で説明される技法を実施するように構成されたビデオデコーダの一例を表す。たとえば、復号デバイス112は、本明細書で説明されるプロセスを含む、本明細書で説明される技法のいずれかを実施し得る。
【0247】
[0238]本明細書で使用される「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブル記憶デバイス、光記憶デバイス、ならびに(1つまたは複数の)命令および/またはデータを記憶、含有、または担持することが可能な様々な他の媒体を含む。コンピュータ可読媒体は、データがそこに記憶され得る非一時的媒体を含み得、それは、ワイヤレスにまたはワイヤード接続を介して伝搬する搬送波および/または一時的電子信号を含まない。非一時的媒体の例は、限定はしないが、磁気ディスクもしくは磁気テープ、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリ、またはメモリデバイスを含み得る。コンピュータ可読媒体は、その上に、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表し得るコードおよび/または機械実行可能命令を記憶していることがある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリコンテンツをパスおよび/または受信することによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の好適な手段を介してパス、フォワーディング、または送信され得る。
【0248】
[0239]いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含んでいるケーブル信号またはワイヤレス信号を含むことができる。しかしながら、述べられるとき、非一時的コンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、および信号自体などの媒体を明確に除外する。
【0249】
[0240]本明細書で提供される実施形態および例の完全な理解を提供するために、具体的な詳細が上記の説明で提供される。ただし、実施形態はこれらの具体的な詳細なしに実践され得ることを当業者は理解されよう。説明の明快のために、いくつかの事例では、本技術は、デバイス、デバイス構成要素、ソフトウェアで具現される方法におけるステップまたはルーチン、あるいはハードウェアとソフトウェアとの組合せを備える機能ブロックを含む個々の機能ブロックを含むものとして提示され得る。図に示されているおよび/または本明細書で説明された構成要素以外の追加の構成要素が使用され得る。たとえば、回路、システム、ネットワーク、プロセス、および他の構成要素は、実施形態を不要な詳細で不明瞭にしないためにブロック図の形態で構成要素として示され得る。他の事例では、実施形態を不明瞭にすることを回避するために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は不要な詳細なしに示され得る。
【0250】
[0241]個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として描かれるプロセスまたは方法として上述され得る。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実施され得る。さらに、動作の順序は並べ替えられ得る。それの動作が完了されるとき、プロセスは終了されるが、図中に含まれない追加のステップを有し得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応するとき、それの終了は、呼出し関数またはメイン関数への関数の復帰に対応することができる。
【0251】
[0242]上記で説明された例によるプロセスおよび方法は、記憶されるかまたはさもなければコンピュータ可読媒体から利用可能である、コンピュータ実行可能命令を使用して実装され得る。そのような命令は、たとえば、汎用コンピュータ、専用コンピュータ、または処理デバイスが、ある機能または機能のグループを実施することを引き起こすか、あるいはさもなければそれらを実施するように構成する、命令とデータとを含むことができる。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、たとえば、バイナリ、アセンブリ言語などの中間フォーマット命令、ファームウェア、ソースコードなどであり得る。命令、使用される情報、および/または説明された例による方法中に作成される情報を記憶するために使用され得るコンピュータ可読媒体の例は、磁気または光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク化された記憶デバイスなどを含む。
【0252】
[0243]これらの開示によるプロセスおよび方法を実装するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せを含むことができ、様々なフォームファクタのいずれかをとることができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実施するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読または機械可読媒体に記憶され得る。プロセッサは、必要なタスクを実施し得る。フォームファクタの典型的な例は、ラップトップ、スマートフォン、モバイルフォン、タブレットデバイスまたは他のスモールフォームファクタパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどを含む。本明細書で説明された機能はまた、周辺機器またはアドインカードで具現され得る。そのような機能はまた、さらなる例として、単一のデバイスにおいて実行する異なるチップまたは異なるプロセスの間で回路板上に実装され得る。
【0253】
[0244]命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、本開示で説明された機能を提供するための例示的な手段である。
【0254】
[0245]上記の説明では、本出願の態様がそれの特定の実施形態を参照しながら説明されたが、本出願はそれに限定されないことを、当業者は認識されよう。本出願の例示的な実施形態が本明細書で詳細に説明されているが、従来技術によって限定される場合を除いて、発明的概念が、場合によっては様々に具現および採用され得、添付の特許請求の範囲が、そのような変形形態を含むように解釈されるものであることを理解されたい。上記で説明された適用例の様々な特徴および態様は、個々にまたは一緒に使用され得る。さらに、実施形態は、本明細書のより広い趣旨および範囲から逸脱することなく、本明細書で説明された環境および適用例以外に、任意の数の環境および適用例において利用され得る。したがって、本明細書および図面は、限定的なものではなく例示的なものとして考慮されるべきである。説明の目的で、方法は特定の順序で説明された。代替実施形態では、方法は、説明された順序とは異なる順序で実施され得ることを諒解されたい。
【0255】
[0246]本明細書で使用される、よりも小さい(「<」)、および、よりも大きい(「>」)のシンボルまたは専門用語は、本明細書の範囲から逸脱することなく、それぞれ、よりも小さいかまたはそれに等しい(「≦」)、および、よりも大きいかまたはそれに等しい(「≧」)シンボルと置き換えられ得ることを、当業者は諒解されよう。
【0256】
[0247]構成要素が、ある動作を実施する「ように構成されて」いるものとして説明される場合、そのような構成は、たとえば、動作を実施するように電子回路または他のハードウェアを設計することによって、動作を実施するようにプログラマブル電子回路(たとえば、マイクロプロセッサ、または他の好適な電子回路)をプログラムすることによって、またはそれらの任意の組合せによって、達成され得る。
【0257】
[0248]「に結合された」という句は、直接的にまたは間接的にのいずれかで別の構成要素に物理的に接続された任意の構成要素、および/あるいは直接的にまたは間接的にのいずれかで別の構成要素と通信している(たとえば、ワイヤードまたはワイヤレス接続および/あるいは他の好適な通信インターフェースを介して他の構成要素に接続された)任意の構成要素を指す。
【0258】
[0249]セット「のうちの少なくとも1つ」、および/またはセットのうちの「1つまたは複数」を具陳するクレームの文言または他の文言は、セットのうちの1つのメンバーまたは(任意の組合せにおける)セットのうちの複数のメンバーがクレームを満足することを示す。たとえば、「AおよびBのうちの少なくとも1つ」を具陳する請求項の文言は、A、B、またはAおよびBを意味する。別の例では、「A、B、およびCのうちの少なくとも1つ」を具陳する請求項の文言は、A、B、C、またはAおよびB、またはAおよびC、またはBおよびC、またはAおよびBおよびCを意味する。セット「のうちの少なくとも1つ」および/またはセットのうちの「1つまたは複数」という文言は、セットを、セットに記載されている項目に限定しない。たとえば、「AおよびBのうちの少なくとも1つ」を具陳するクレームの文言は、A、B、またはAおよびBを意味することができ、さらに、AおよびBのセットに記載されていない項目を含むことができる。
【0259】
[0250]本明細書で開示される実施形態に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明された。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本出願の範囲からの逸脱を生じるものと解釈されるべきではない。
【0260】
[0251]本明細書で説明された技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用を含む複数の用途を有する集積回路デバイスなど、様々なデバイスのいずれかにおいて実装され得る。モジュールまたは構成要素として説明された特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別個に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、少なくとも部分的に、上記で説明された方法のうちの1つまたは複数を実施する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、FLASH(登録商標)メモリ、磁気もしくは光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形式でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって少なくとも部分的に実現され得る。
【0261】
[0252]プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示において説明された技法のうちのいずれかを実施するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、あるいは本明細書で説明された技法の実装に好適な他の構造または装置のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のソフトウェアモジュールもしくはハードウェアモジュール内で提供されるか、または組み合わされたビデオエンコーダデコーダ(CODEC)に組み込まれ得る。
【0262】
[0253]本開示の例示的な例は、以下を含む。
【0263】
[0254]態様1:ビデオデータを復号する方法であって、方法は、変換ブロックを取得することと、変換ブロックが、複数のサンプルを含む、複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、複数のサンプルのための1つまたは複数のパラメータを決定することと、局所近傍の分析に少なくとも部分的に基づいて、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定することと、1つまたは複数の前に復号された変換ブロックから決定される履歴パラメータ値を取得することと、履歴パラメータ値に少なくとも部分的に基づいて、現在のサンプルのパラメータを決定することと、現在のサンプルの決定されたパラメータに基づいて現在のサンプルを復号することとを備える、方法。
【0264】
[0255]態様2:近隣変換係数の数が0であるという決定に少なくとも部分的に基づいて、履歴パラメータ値の第1の整数倍に基づいて現在のサンプルのパラメータを決定することをさらに備える、態様1の方法。
【0265】
[0256]態様3:現在のサンプルのパラメータを決定することが、入力とパラメータとの間でマッピングするルックアップテーブルへの入力として、履歴パラメータ値の第1の整数倍を提供することを備える、態様2の方法。
【0266】
[0257]態様4:第1の整数倍としきい値量が、同じ値である、態様2または3のいずれかの方法。
【0267】
[0258]態様5:近隣変換係数の数が0よりも大きいという決定に少なくとも部分的に基づいて、履歴パラメータ値の第2の整数倍と近隣変換係数の合計とに基づいて現在のサンプルのパラメータを決定することをさらに備える、態様2~4のいずれかの方法。
【0268】
[0259]態様6:現在のサンプルのパラメータを決定することが、入力とパラメータとの間でマッピングするルックアップテーブルへの入力として、近隣変換係数の合計と合計された履歴パラメータ値の第2の整数倍を提供することを備える、態様5の方法。
【0269】
[0260]態様7:第2の整数倍が、第1の整数倍よりも小さい、態様6の方法。
【0270】
[0261]態様8:近隣変換係数の数がしきい値量よりも小さいと決定することが、現在のサンプルのための1つまたは複数の利用不可能な近隣変換係数を識別したことに少なくとも部分的に基づく、態様1~7のいずれかの方法。
【0271】
[0262]態様9:変換ブロック内の現在のサンプルのロケーションを取得することと、現在のサンプルのロケーションを変換ブロックの幅および変換ブロックの高さのうちの1つまたは複数と比較することと、比較に少なくとも部分的に基づいて、1つまたは複数の利用不可能な近隣変換係数を識別することとをさらに備える、態様8の方法。
【0272】
[0263]態様10:1つまたは複数の利用不可能な近隣変換係数が、変換ブロックの外部のロケーションに関連付けられる、態様9の方法。
【0273】
[0264]態様11:近隣変換係数の数がしきい値量よりも小さいと決定することは、現在のサンプルのロケーションの水平成分が変換ブロックの幅の第1の距離内にあると決定することと、現在のサンプルのロケーションの垂直成分が変換ブロックの高さの第2の距離内にあると決定することとを備える、態様9または10のいずれかの方法。
【0274】
[0265]態様12:複数のサンプルが、変換ブロックサンプルタイプに関連付けられ、変換ブロックサンプルタイプが、ルーマサンプルまたはクロマサンプルを含む、態様1~11のいずれかの方法。
【0275】
[0266]態様13:変換ブロックサンプルタイプは、履歴パラメータ値がそれから決定される、1つまたは複数の前に復号された変換ブロックに関連付けられたサンプルタイプと同じである、態様12の方法。
【0276】
[0267]態様14:履歴パラメータ値が、1つまたは複数の前に復号された変換ブロックの各々から取得される、第1の非0の復号された変換係数に少なくとも部分的に基づいて決定される、態様1~13のいずれかの方法。
【0277】
[0268]態様15:1つまたは複数の前に復号された変換ブロックの各々から取得される、各第1の非0の復号された変換係数のバイナリコード長を決定することをさらに備える、態様14の方法。
【0278】
[0269]態様16:履歴パラメータ値が、1つまたは複数の前に復号された変換ブロックの各々の第1の非0の復号された変換係数のために決定されるバイナリコード長の指数加重移動平均として決定される、態様15の方法。
【0279】
[0270]態様17:複数のサンプルのための1つまたは複数のパラメータが、1つまたは複数のライスパラメータを含み、履歴パラメータ値が、履歴ライスパラメータ値であり、現在のサンプルのために決定されるパラメータが、現在のサンプルのライスパラメータである、態様1~16のいずれかの方法。
【0280】
[0271]態様18:現在のサンプルの決定されたパラメータに基づいて現在のサンプルを復号することが、決定されたパラメータに基づいて現在のサンプルを示すシンタックス要素を復号することを備える、態様1~17のいずれかの方法。
【0281】
[0272]態様19:決定されたパラメータに基づいて現在のサンプルを復号することが、決定されたパラメータを使用してゴロムライスコードを復号することを備える、態様1~18のいずれかの方法。
【0282】
[0273]態様20:ビデオデータを復号する方法であって、方法は、変換ブロックを取得することと、変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0の復号された変換係数を決定することと、1つまたは複数の非0の復号された変換係数の少なくとも一部分に基づいて、変換ブロックの履歴更新値を決定することと、変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることに少なくとも部分的によって既存の履歴パラメータ値を更新することと、既存の履歴パラメータ値が、一連の前に分析された変換ブロックから決定される、一連の非0の復号された変換係数に少なくとも部分的に基づく、既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいて、変換ブロックの少なくとも1つのサンプルを復号することとを備える、方法。
【0283】
[0274]態様21:変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることが、変換ブロックの履歴更新値を既存の履歴パラメータ値で平均化することを備える、態様20の方法。
【0284】
[0275]態様22:変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることが、変換ブロックの履歴更新値と既存の履歴パラメータ値との間の指数加重移動平均を決定することを備える、態様20または21のいずれかの方法。
【0285】
[0276]態様23:変換ブロックの履歴更新値に第1の重みを、および既存の履歴パラメータ値に第2の重みを割り当てることをさらに備え、ここにおいて、指数加重移動平均を決定することが、第1の重みおよび第2の重みに少なくとも部分的に基づく、態様22の方法。
【0286】
[0277]態様24:変換ブロックの履歴更新値が、変換ブロックの分析において決定される、第1の非0の復号された変換係数に基づいて決定される、態様20~23のいずれかの方法。
【0287】
[0278]態様25:第1の非0の復号された変換係数が、逆方向の変換ブロックのラン走査順序に基づいて決定される、態様24の方法。
【0288】
[0279]態様26:変換ブロックの履歴更新値が、第1の非0の復号された変換係数のバイナリコード長を決定することに少なくとも部分的によって決定される、態様24または25のいずれかの方法。
【0289】
[0280]態様27:変換ブロックと、前に分析された変換ブロックとが、第1のスライスに関連付けられ、既存の履歴パラメータ値が、同じスライスに関連付けられた連続的に分析される変換ブロックのために決定される連続的な履歴更新値に基づいて反復的に更新される、態様20~26のいずれかの方法。
【0290】
[0281]態様28:既存の履歴パラメータ値を所定の値に初期化することをさらに備え、ここにおいて、初期化することが、第1のスライスの第1の変換ブロックを分析することと、第1の変換ブロックの履歴更新値を決定することとの前に実施される、態様27の方法。
【0291】
[0282]態様29:変換ブロックの履歴更新値が、変換ブロックの非0の復号された変換係数のすべてに基づいて決定される、態様20~28のいずれかの方法。
【0292】
[0283]態様30:履歴更新値が、変換ブロックの非0の復号された変換係数のすべてを平均化することに少なくとも部分的によって決定される、態様29の方法。
【0293】
[0284]態様31:既存の履歴パラメータ値が、既存の履歴ライスパラメータ値である、態様20~30のいずれかの方法。
【0294】
[0285]態様32:変換ブロックの少なくとも1つのサンプルを復号することが、既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいて、少なくとも1つのサンプルを示すシンタックス要素を復号することを備える、態様20~31のいずれかの方法。
【0295】
[0286]態様33:変換ブロックの少なくとも1つのサンプルを復号することが、既存の履歴パラメータ値または更新された既存の履歴パラメータ値を使用してゴロムライスコードを復号することを備える、態様20~32のいずれかの方法。
【0296】
[0287]態様34:ビデオデータを復号するための装置であって、少なくとも1つのメモリと、少なくとも1つのメモリに結合された少なくとも1つのプロセッサとを備え、少なくとも1つのプロセッサは、変換ブロックを取得することと、変換ブロックが、複数のサンプルを含む、複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、複数のサンプルのための1つまたは複数のパラメータを決定することと、局所近傍の分析に少なくとも部分的に基づいて、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定することと、1つまたは複数の前に復号された変換ブロックから決定される履歴パラメータ値を取得することと、履歴パラメータ値に少なくとも部分的に基づいて、現在のサンプルのパラメータを決定することと、現在のサンプルの決定されたパラメータに基づいて現在のサンプルを復号することとを行うように構成された、装置。
【0297】
[0288]態様35:少なくとも1つのプロセッサは、近隣変換係数の数が0であるという決定に少なくとも部分的に基づいて、履歴パラメータ値の第1の整数倍に基づいて現在のサンプルのパラメータを決定するように構成された、態様34の装置。
【0298】
[0289]態様36:現在のサンプルのパラメータを決定するために、少なくとも1つのプロセッサが、入力とパラメータとの間でマッピングするルックアップテーブルへの入力として、履歴パラメータ値の第1の整数倍を提供するように構成された、態様35の装置。
【0299】
[0290]態様37:第1の整数倍としきい値量が、同じ値である、態様35または36のいずれかの装置。
【0300】
[0291]態様38:少なくとも1つのプロセッサは、近隣変換係数の数が0よりも大きいという決定に少なくとも部分的に基づいて、履歴パラメータ値の第2の整数倍と近隣変換係数の合計とに基づいて現在のサンプルのパラメータを決定するように構成された、態様35~37のいずれかの装置。
【0301】
[0292]態様39:現在のサンプルのパラメータを決定するために、少なくとも1つのプロセッサが、入力とパラメータとの間でマッピングするルックアップテーブルへの入力として、近隣変換係数の合計と合計された履歴パラメータ値の第2の整数倍を提供するように構成された、態様38の装置。
【0302】
[0293]態様40:第2の整数倍が、第1の整数倍よりも小さい、態様39の装置。
【0303】
[0294]態様41:少なくとも1つのプロセッサは、現在のサンプルのための1つまたは複数の利用不可能な近隣変換係数を識別したことに少なくとも部分的に基づいて、近隣変換係数の数がしきい値量よりも小さいと決定するように構成された、態様34~40のいずれかの装置。
【0304】
[0295]態様42:少なくとも1つのプロセッサが、変換ブロック内の現在のサンプルのロケーションを取得することと、現在のサンプルのロケーションを変換ブロックの幅および変換ブロックの高さのうちの1つまたは複数と比較することと、比較に少なくとも部分的に基づいて、1つまたは複数の利用不可能な近隣変換係数を識別することとを行うように構成された、態様41の装置。
【0305】
[0296]態様43:1つまたは複数の利用不可能な近隣変換係数が、変換ブロックの外部のロケーションに関連付けられる、態様42の装置。
【0306】
[0297]態様44:近隣変換係数の数がしきい値量よりも小さいと決定するために、少なくとも1つのプロセッサは、現在のサンプルのロケーションの水平成分が変換ブロックの幅の第1の距離内にあると決定することと、現在のサンプルのロケーションの垂直成分が変換ブロックの高さの第2の距離内にあると決定することとを行うように構成された、態様42または43のいずれかの装置。
【0307】
[0298]態様45:複数のサンプルが、変換ブロックサンプルタイプに関連付けられ、変換ブロックサンプルタイプが、ルーマサンプルまたはクロマサンプルを含む、態様34~44のいずれかの装置。
【0308】
[0299]態様46:変換ブロックサンプルタイプは、履歴パラメータ値がそれから決定される、1つまたは複数の前に復号された変換ブロックに関連付けられたサンプルタイプと同じである、態様45の装置。
【0309】
[0300]態様47:少なくとも1つのプロセッサが、1つまたは複数の前に復号された変換ブロックの各々から取得される、第1の非0の復号された変換係数に少なくとも部分的に基づいて、履歴パラメータ値を決定するように構成された、態様34~46のいずれかの装置。
【0310】
[0301]態様48:少なくとも1つのプロセッサが、1つまたは複数の前に復号された変換ブロックの各々から取得される、各第1の非0の復号された変換係数のバイナリコード長を決定するように構成された、態様47の装置。
【0311】
[0302]態様49:少なくとも1つのプロセッサが、履歴パラメータ値を、1つまたは複数の前に復号された変換ブロックの各々の第1の非0の復号された変換係数のために決定されるバイナリコード長の指数加重移動平均として決定するように構成された、態様48の装置。
【0312】
[0303]態様50:複数のサンプルのための1つまたは複数のパラメータが、1つまたは複数のライスパラメータを含み、履歴パラメータ値が、履歴ライスパラメータ値であり、現在のサンプルのために決定されるパラメータが、現在のサンプルのライスパラメータである、態様34~49のいずれかの装置。
【0313】
[0304]態様50:現在のサンプルの決定されたパラメータに基づいて現在のサンプルを復号することが、決定されたパラメータに基づいて現在のサンプルを示すシンタックス要素を復号することを備える、態様34~50のいずれかの装置。
【0314】
[0305]態様50:決定されたパラメータに基づいて現在のサンプルを復号することが、決定されたパラメータを使用してゴロムライスコードを復号することを備える、態様34~51のいずれかの装置。
【0315】
[0306]態様51:ビデオデータを復号するための装置であって、少なくとも1つのメモリと、少なくとも1つのメモリに結合された少なくとも1つのプロセッサとを備え、少なくとも1つのプロセッサは、変換ブロックを取得することと、変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0の復号された変換係数を決定することと、1つまたは複数の非0の復号された変換係数の少なくとも一部分に基づいて、変換ブロックの履歴更新値を決定することと、変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせることに少なくとも部分的によって既存の履歴パラメータ値を更新することと、既存の履歴パラメータ値が、一連の前に分析された変換ブロックから決定される、一連の非0の復号された変換係数に少なくとも部分的に基づく、を行うように構成された、装置。
【0316】
[0307]態様52:変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせるために、少なくとも1つのプロセッサが、変換ブロックの履歴更新値を既存の履歴パラメータ値で平均化するように構成された、態様51の装置。
【0317】
[0308]態様53:変換ブロックの履歴更新値を既存の履歴パラメータ値と組み合わせるために、少なくとも1つのプロセッサが、変換ブロックの履歴更新値と既存の履歴パラメータ値との間の指数加重移動平均を決定するように構成された、態様51または52のいずれかの装置。
【0318】
[0309]態様54:少なくとも1つのプロセッサが、変換ブロックの履歴更新値に第1の重みを、および既存の履歴パラメータ値に第2の重みを割り当てることと、第1の重みおよび第2の重みに少なくとも部分的に基づいて指数加重移動平均を決定することとを行うように構成された、態様53の装置。
【0319】
[0310]態様55:少なくとも1つのプロセッサが、変換ブロックの分析において決定される、第1の非0の復号された変換係数に基づいて、変換ブロックの履歴更新値を決定するように構成された、態様51~54のいずれかの装置。
【0320】
[0311]態様56:少なくとも1つのプロセッサが、逆方向の変換ブロックのラン走査順序に基づいて、第1の非0の復号された変換係数を決定するように構成された、態様55の装置。
【0321】
[0312]態様57:少なくとも1つのプロセッサが、第1の非0の復号された変換係数のバイナリコード長を決定することに少なくとも部分的によって、変換ブロックの履歴更新値を決定するように構成された、態様55または56のいずれかの装置。
【0322】
[0313]態様58:変換ブロックと、前に分析された変換ブロックとが、第1のスライスに関連付けられ、少なくとも1つのプロセッサが、同じスライスに関連付けられた連続的に分析される変換ブロックのために決定される連続的な履歴更新値に基づいて、既存の履歴パラメータ値を反復的に更新するように構成された、態様51~57のいずれかの装置。
【0323】
[0314]態様59:少なくとも1つのプロセッサが、既存の履歴パラメータ値を所定の値に初期化するように構成され、ここにおいて、初期化することが、第1のスライスの第1の変換ブロックを分析することと、第1の変換ブロックの履歴更新値を決定することとの前に実施される、態様58の装置。
【0324】
[0315]態様60:少なくとも1つのプロセッサが、変換ブロックの非0の復号された変換係数のすべてに基づいて変換ブロックの履歴更新値を決定するように構成された、態様51~59のいずれかの装置。
【0325】
[0316]態様61:少なくとも1つのプロセッサが、変換ブロックの非0の復号された変換係数のすべてを平均化することに少なくとも部分的によって履歴更新値を決定するように構成された、態様60の装置。
【0326】
[0317]態様62:既存の履歴パラメータ値が、既存の履歴ライスパラメータ値である、態様51~61のいずれかの装置。
【0327】
[0318]態様63:変換ブロックの少なくとも1つのサンプルを復号することが、既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいて、少なくとも1つのサンプルを示すシンタックス要素を復号することを備える、態様51~62のいずれかの装置。
【0328】
[0319]態様64:変換ブロックの少なくとも1つのサンプルを復号することが、既存の履歴パラメータ値または更新された既存の履歴パラメータ値を使用してゴロムライスコードを復号することを備える、態様51~63のいずれかの装置。
【0329】
[0320]態様65:1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに態様1~64の動作のいずれかを実施させる命令を記憶した非一時的コンピュータ可読記憶媒体。
【0330】
[0321]態様66:態様1~64の動作のいずれかを実施するための手段を備える装置。
【0331】
[0322]態様67:ビデオデータを処理する方法であって、方法が、ビデオデータのブロックに関連付けられた複数の係数を取得することと、係数のライスパラメータを導出するためのテンプレートベースの導出技法の推定された精度に基づいて、複数の係数のうちの係数の空間的位置の分類を決定することと、分類に基づいて係数のライスパラメータを決定することと、現在のサンプルの決定されたパラメータに基づいてビットストリームを生成することとを備える、方法。
【0332】
[0323]態様68:推定された精度が精度しきい値よりも大きいことに基づいて、テンプレートベースの導出技法を使用してライスパラメータを決定することをさらに備える、態様67の方法。
【0333】
[0324]態様69:推定された精度が精度しきい値よりも小さいことに基づいて、履歴ベースの導出技法を使用してライスパラメータを決定することをさらに備える、態様67の方法。
【0334】
[0325]態様70:推定された精度が精度しきい値よりも小さいことに基づいて、関数を使用してライスパラメータを決定することをさらに備え、関数が、テンプレートベースの導出技法と履歴ベースの導出技法とに基づく、態様67の方法。
【0335】
[0326]態様71:関数が、加重平均を含む、態様70の方法。
【0336】
[0327]態様72:関数が、テンプレートベースの導出技法に組み込まれる、態様70の方法。
【0337】
[0328]態様73:分類が、逆方向の走査順序のランに基づいて決定される、態様67~72のいずれか1つの方法。
【0338】
[0329]態様74:複数の係数を含む符号化ビデオビットストリームを生成することをさらに備える、態様67~73のいずれか1つの方法。
【0339】
[0330]態様75:符号化ビデオビットストリームから複数の係数を取得することをさらに備える、態様67~73のいずれか1つの方法。
【0340】
[0331]態様76:ビデオデータを記憶するように構成されたメモリと、プロセッサとを備える装置であって、プロセッサが、ビデオデータのブロックに関連付けられた複数の係数を取得することと、係数のライスパラメータを導出するためのテンプレートベースの導出技法の推定された精度に基づいて、複数の係数のうちの係数の空間的位置の分類を決定することと、分類に基づいて係数のライスパラメータを決定することと、現在のサンプルの決定されたパラメータに基づいてビットストリームを生成することとを行うように構成された、装置。
【0341】
[0332]態様77:推定された精度が精度しきい値よりも大きいことに基づいて、テンプレートベースの導出技法を使用してライスパラメータを決定することをさらに備える、態様76の装置。
【0342】
[0333]態様78:推定された精度が精度しきい値よりも小さいことに基づいて、履歴ベースの導出技法を使用してライスパラメータを決定することをさらに備える、態様76の装置。
【0343】
[0334]態様79:推定された精度が精度しきい値よりも小さいことに基づいて、関数を使用してライスパラメータを決定することをさらに備え、関数が、テンプレートベースの導出技法と履歴ベースの導出技法とに基づく、態様76の装置。
【0344】
[0335]態様80:関数が、加重平均を含む、態様79の装置。
【0345】
[0336]態様81:関数が、テンプレートベースの導出技法に組み込まれる、態様79の装置。
【0346】
[0337]態様82:分類が、逆方向の走査順序のランに基づいて決定される、態様76~81のいずれか1つの装置。
【0347】
[0338]態様83:複数の係数を含む符号化ビデオビットストリームを生成することをさらに備える、態様76~82のいずれか1つの装置。
【0348】
[0339]態様84:符号化ビデオビットストリームから複数の係数を取得することをさらに備える、態様76~82のいずれか1つの装置。
【0349】
[0340]態様85:装置が、エンコーダを含む、態様68の装置。
【0350】
[0341]態様86:装置が、デコーダを含む、態様68の装置。
【0351】
[0342]態様87:装置が、モバイルデバイスである、態様68~78のいずれか1つの装置。
【0352】
[0343]態様88:装置が、エクステンデッドリアリティデバイスである、態様68~79のいずれか1つの装置。
【0353】
[0344]態様89:ビデオデータを表示するように構成されたディスプレイをさらに備える、態様68~80のいずれか1つの装置。
【0354】
[0345]態様90:1つまたは複数のピクチャをキャプチャするように構成されたカメラをさらに備える、態様68~81のいずれか1つの装置。
【0355】
[0346]態様91:プロセッサによって実行されたとき、態様67~90のいずれかの方法を実施する命令を記憶したコンピュータ可読媒体。
【0356】
[0347]態様92:態様67~90のいずれかの動作を実施するための手段を備える装置。
【0357】
[0348]態様93:ビデオデータを符号化する方法であって、方法は、変換ブロックを取得することと、変換ブロックが、複数のサンプルを含む、複数のサンプルのうちの現在のサンプルの局所近傍を分析することに少なくとも部分的によって、複数のサンプルのための1つまたは複数のパラメータを決定することと、局所近傍の分析に少なくとも部分的に基づいて、現在のサンプルの近隣変換係数の数がしきい値量よりも小さいと決定することと、1つまたは複数の前に符号化された変換ブロックから決定される履歴パラメータ値を取得することと、履歴パラメータ値に少なくとも部分的に基づいて、現在のサンプルのパラメータを決定することと、既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいてビットストリームを生成することとを備える、方法。
【0358】
[0349]態様94:近隣変換係数の数が0であるという決定に少なくとも部分的に基づいて、履歴パラメータ値の第1の整数倍に基づいて現在のサンプルのパラメータを決定することをさらに備える、態様93の方法。
【0359】
[0350]態様95:現在のサンプルのパラメータを決定することが、入力とパラメータとの間でマッピングするルックアップテーブルへの入力として、履歴パラメータ値の第1の整数倍を提供することを備え、第1の整数倍としきい値量が、同じ値である、態様94の方法。
【0360】
[0351]態様96:近隣変換係数の数が0よりも大きいという決定に少なくとも部分的に基づいて、履歴パラメータ値の第2の整数倍と近隣変換係数の合計とに基づいて現在のサンプルのパラメータを決定することをさらに備え、ここにおいて、第2の整数倍が、第1の整数倍よりも小さい、態様94の方法。
【0361】
[0352]態様97:現在のサンプルのパラメータを決定することが、入力とパラメータとの間でマッピングするルックアップテーブルへの入力として、近隣変換係数の合計と合計された履歴パラメータ値の第2の整数倍を提供することを備える、態様96の方法。
【0362】
[0353]態様98:近隣変換係数の数がしきい値量よりも小さいと決定することが、現在のサンプルのための1つまたは複数の利用不可能な近隣変換係数を識別したことに少なくとも部分的に基づき、1つまたは複数の利用不可能な近隣変換係数が、変換ブロックの外部のロケーションに関連付けられる、態様93~97のいずれかの方法。
【0363】
[0354]態様99:変換ブロック内の現在のサンプルのロケーションを取得することと、現在のサンプルのロケーションを変換ブロックの幅および変換ブロックの高さのうちの1つまたは複数と比較することと、比較に少なくとも部分的に基づいて、1つまたは複数の利用不可能な近隣変換係数を識別することとをさらに備える、態様98の方法。
【0364】
[0355]態様100:近隣変換係数の数がしきい値量よりも小さいと決定することは、現在のサンプルのロケーションの水平成分が変換ブロックの幅の第1の距離内にあると決定することと、現在のサンプルのロケーションの垂直成分が変換ブロックの高さの第2の距離内にあると決定することとを備える、態様99の方法。
【0365】
[0356]態様101:複数のサンプルが、変換ブロックサンプルタイプに関連付けられ、変換ブロックサンプルタイプが、ルーマサンプルまたはクロマサンプルを含み、変換ブロックサンプルタイプは、履歴パラメータ値がそれから決定される、1つまたは複数の前に復号された変換ブロックに関連付けられたサンプルタイプと同じである、態様93~100のいずれかの方法。
【0366】
[0357]態様102:履歴パラメータ値が、1つまたは複数の前にコーディングされた変換ブロックの各々から取得される、第1の非0の復号された変換係数に少なくとも部分的に基づいて決定される、態様93~101のいずれかの方法。
【0367】
[0358]態様103:1つまたは複数の前にコーディングされた変換ブロックの各々から取得される、各第1の非0の復号された変換係数のバイナリコード長を決定することをさらに備え、ここにおいて、履歴パラメータ値が、1つまたは複数の前にコーディングされた変換ブロックの各々の第1の非0のコーディングされた変換係数のために決定されるバイナリコード長の指数加重移動平均として決定される、態様102の方法。
【0368】
[0359]態様104:複数のサンプルのための1つまたは複数のパラメータが、1つまたは複数のライスパラメータを含み、履歴パラメータ値が、履歴ライスパラメータ値であり、現在のサンプルのために決定されるパラメータが、現在のサンプルのライスパラメータである、態様93~103のいずれかの方法。
【0369】
[0360]態様105:ビデオデータを符号化するための装置であって、少なくとも1つのメモリと、少なくとも1つのメモリに結合された少なくとも1つのプロセッサとを備え、少なくとも1つのプロセッサは、変換ブロックを取得することと、変換ブロックの分析に少なくとも部分的に基づいて、1つまたは複数の非0のコーディングされた変換係数を決定することと、1つまたは複数の非0のコーディングされた変換係数の少なくとも一部分に基づいて、変換ブロックの履歴更新値を決定することと、変換ブロックの履歴更新値を既存の履歴パラメータ値で平均化することに少なくとも部分的によって既存の履歴パラメータ値を更新することと、既存の履歴パラメータ値が、一連の前に分析された変換ブロックから決定される、一連の非0のコーディングされた変換係数に少なくとも部分的に基づく、既存の履歴パラメータ値または更新された既存の履歴パラメータ値に基づいてビットストリームを生成することとを行うように構成された、装置。
【0370】
[0361]態様106:既存の履歴パラメータ値を更新するために、少なくとも1つのプロセッサが、変換ブロックの履歴更新値と既存の履歴パラメータ値との間の指数加重移動平均を決定するように構成された、態様105の装置。
【0371】
[0362]態様107:少なくとも1つのプロセッサが、変換ブロックの履歴更新値に第1の重みを、および既存の履歴パラメータ値に第2の重みを割り当てることと、第1の重みおよび第2の重みに少なくとも部分的に基づいて指数加重移動平均を決定することとを行うように構成された、態様106の装置。
【0372】
[0363]態様108:少なくとも1つのプロセッサが、変換ブロックの分析において決定される、第1の非0のコーディングされた変換係数に基づいて、変換ブロックの履歴更新値を決定するように構成された、態様105~107のいずれかの装置。
【0373】
[0364]態様109:少なくとも1つのプロセッサが、逆方向の変換ブロックのラン走査順序に基づいて、第1の非0のコーディングされた変換係数を決定するように構成された、態様108の装置。
【0374】
[0365]態様110:少なくとも1つのプロセッサが、第1の非0のコーディングされた変換係数のバイナリコード長を決定することに少なくとも部分的によって、変換ブロックの履歴更新値を決定するように構成された、態様108の装置。
【0375】
[0366]態様111:変換ブロックと、前に分析された変換ブロックとが、第1のスライスに関連付けられ、少なくとも1つのプロセッサが、同じスライスに関連付けられた連続的に分析される変換ブロックのために決定される連続的な履歴更新値に基づいて、既存の履歴パラメータ値を反復的に更新するように構成された、態様105~110のいずれかの装置。
【0376】
[0367]態様112:少なくとも1つのプロセッサが、既存の履歴パラメータ値を所定の値に初期化するように構成され、ここにおいて、初期化することが、第1のスライスの第1の変換ブロックを分析することと、第1の変換ブロックの履歴更新値を決定することとの前に実施される、態様111の装置。
【0377】
[0368]態様113:少なくとも1つのプロセッサが、変換ブロックの非0のコーディングされた変換係数のすべてに基づいて変換ブロックの履歴更新値を決定するように構成された、態様105~112のいずれかの装置。
【0378】
[0369]態様114:少なくとも1つのプロセッサが、変換ブロックの非0のコーディングされた変換係数のすべてを平均化することに少なくとも部分的によって履歴更新値を決定するように構成された、態様113の装置。
【0379】
[0370]態様115:既存の履歴パラメータ値が、既存の履歴ライスパラメータ値である、態様105~114のいずれかの装置。
【0380】
[0371]態様116:1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに態様93~115の動作のいずれかを実施させる命令を記憶した非一時的コンピュータ可読記憶媒体。
【0381】
[0372]態様117:態様93~115の動作のいずれかを実施するための手段を備える装置。
【国際調査報告】