(57)【要約】ビデオデータをデコードするデバイスは、ビデオデータを記憶するように構成されたメモリと、回路中で実現される１つ以上のプロセッサとを含み、１つ以上のプロセッサは、適応ループフィルタ（ＡＬＦ）パラメータのセットを、メモリ中の１次元アレイに記憶し、１次元アレイはＮ個のメモリ要素の予め定められたサイズを有し、Ｎは正の整数値であり、ここで、１つ以上のプロセッサは、アレイのメモリ要素のうちの１つ以上に、対応するＡＬＦパラメータと、対応するＡＬＦパラメータが推定される時間レイヤを示す時間レイヤ識別子（ＩＤ）値との両方を記憶するように構成され、ビデオデータの１つ以上のブロックをデコードし、１次元アレイのＡＬＦパラメータを使用して、１つ以上のブロックをフィルタリングするように構成される。デバイスは、１つ以上のブロックをデコードする前に、１つ以上のブロックをさらにエンコーディングし得る。【選択図】図７
2022500903.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータをデコードする方法であって、
適応ループフィルタ（ＡＬＦ）パラメータのセットを、Ｎ個のメモリ要素の予め定められたサイズを有する１次元アレイに記憶することと、Ｎは正の整数値であり、ここで、前記ＡＬＦパラメータのセットを記憶することは、アレイのメモリ要素のうちの１つ以上に、対応するＡＬＦパラメータと、前記対応するＡＬＦパラメータが推定される時間レイヤを示す時間レイヤ識別子（ＩＤ）値との両方を記憶することを備え、
ビデオデータの１つ以上のブロックをデコードすることと、
前記１次元アレイの前記ＡＬＦパラメータを使用して、前記１つ以上のブロックをフィルタリングすることとを備える、方法。
【請求項２】
前記ＡＬＦパラメータのセットを記憶することは、ＢスライスまたはＰスライスのうちの少なくとも１つから前記ＡＬＦパラメータを記憶することを備える、請求項１に記載の方法。
【請求項３】
前記ＡＬＦパラメータのセットを記憶することは、決定された順序（determined order）で前記ＡＬＦパラメータのセットを記憶することを備える、請求項１に記載の方法。
【請求項４】
前記決定された順序は、デコーディング順序を備える、請求項３に記載の方法。
【請求項５】
ＡＬＦパラメータの新しいセットが受信され、前記Ｎ個のメモリ要素のすべてが使用されるとき、前記方法は、
前記メモリ要素のうちの１つから１つのエントリを除去することと、
前記ＡＬＦパラメータの新しいセットを前記メモリ要素のうちの１つに記憶することとをさらに備える、請求項３に記載の方法。
【請求項６】
前記１つのエントリを除去することは、先入れ先出し（ＦＩＯ）順序に従って、前記メモリ要素のうちの１つを選択することを備える、請求項５に記載の方法。
【請求項７】
前記１つのエントリを除去することは、前記メモリ要素のうちの１つが前記ＡＬＦパラメータの新しいセットの時間ＩＤ値と共通の時間ＩＤ値を有するように、前記メモリ要素のうちの１つを選択することを備える、請求項５に記載の方法。
【請求項８】
前記ＡＬＦパラメータのセットのうちのどれが前記フィルタリングのために使用されるべきかを表す値を有する以前のインデックス変数（index variable）を維持することをさらに備える、請求項１に記載の方法。
【請求項９】
前記以前のインデックス変数は、単進符号フォーマット（unary code format）を有する、請求項８に記載の方法。
【請求項１０】
前記以前のインデックス変数の値は、０からＮ−１までの範囲である、請求項８に記載の方法。
【請求項１１】
前記１つ以上のブロックは、現在時間ＩＤ（current temporal ID）を有するピクチャに含まれ、フィルタリングすることは、前記現在時間ＩＤ以下の時間ＩＤを有する前記アレイに含まれる前記ＡＬＦパラメータを使用して、前記１つ以上のブロックをフィルタリングすることを備える、請求項８に記載の方法。
【請求項１２】
コード化されている現在ピクチャの時間ＩＤに従って、前記アレイのエントリを表す値をコーディングすることをさらに備える、請求項８に記載の方法。
【請求項１３】
前記ビデオデータを含むビットストリームからピクチャが失われたことを検出することと、
失われた前記ピクチャに対してＡＬＦパラメータの事前構成されたセットを追加することとをさらに備える、請求項１に記載の方法。
【請求項１４】
前記ビデオデータの後続のイントラ予測ピクチャ（Ｉピクチャ）をコード化した後まで、前記ＡＬＦパラメータのセットのうちの１つ以上の除去を防止することをさらに備える、請求項１に記載の方法。
【請求項１５】
前記１つ以上のブロックをデコードする前に、前記１つ以上のブロックをエンコードすることをさらに備える、請求項１に記載の方法。
【請求項１６】
ビデオデータをデコードするデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
回路中で実現される１つ以上のプロセッサとを備え、
前記１つ以上のプロセッサは、
適応ループフィルタ（ＡＬＦ）パラメータのセットを、前記メモリ中の１次元アレイに記憶し、前記１次元アレイはＮ個のメモリ要素の予め定められたサイズを有し、Ｎは正の整数値であり、ここで、前記１つ以上のプロセッサは、アレイのメモリ要素のうちの１つ以上に、対応するＡＬＦパラメータと、前記対応するＡＬＦパラメータが推定される時間レイヤを示す時間レイヤ識別子（ＩＤ）値との両方を記憶するように構成され、
前記ビデオデータの１つ以上のブロックをデコードし、
前記１次元アレイの前記ＡＬＦパラメータを使用して、前記１つ以上のブロックをフィルタリングするように構成される、デバイス。
【請求項１７】
前記１つ以上のプロセッサは、デコーディング順序で前記ＡＬＦパラメータのセットを記憶するように構成される、請求項１６に記載のデバイス。
【請求項１８】
ＡＬＦパラメータの新しいセットが受信され、前記Ｎ個のメモリ要素のすべてが使用されるとき、前記１つ以上のプロセッサは、
先入れ先出し（ＦＩＦＯ）順序に従って、前記メモリ要素のうちの１つを選択し、
選択された前記メモリ要素のうちの１つを除去し、
前記ＡＬＦパラメータの新しいセットを前記選択された前記メモリ要素のうちの１つに記憶するように構成される、請求項１７に記載のデバイス。
【請求項１９】
前記１つ以上のプロセッサは、前記ＡＬＦパラメータのセットのうちのどれが前記フィルタリングのために使用されるべきかを表す値を有する以前のインデックス変数を維持するように構成される、請求項１６に記載のデバイス。
【請求項２０】
前記１つ以上のブロックは、現在時間ＩＤを有するピクチャに含まれ、前記１つ以上のプロセッサは、前記現在時間ＩＤ以下の時間ＩＤを有する前記アレイに含まれる前記ＡＬＦパラメータを使用して、前記１つ以上のブロックをフィルタリングするように構成される、請求項１９に記載のデバイス。
【請求項２１】
前記１つ以上のプロセッサは、コード化されている現在ピクチャの時間ＩＤに従って、前記アレイのエントリを表す値をコード化するようにさらに構成される、請求項１９に記載のデバイス。
【請求項２２】
前記１つ以上のプロセッサは、前記１つ以上のブロックをデコードする前に、前記１つ以上のブロックをエンコードするようにさらに構成される、請求項１６に記載のデバイス。
【請求項２３】
前記ビデオデータを表示するように構成されたディスプレイをさらに備える、請求項１６に記載のデバイス。
【請求項２４】
前記デバイスは、カメラ、コンピュータ、移動体デバイス、ブロードキャスト受信機デバイス、または、セットトップボックスのうちの１つ以上を備える、請求項１６に記載のデバイス。
【請求項２５】
命令を記憶しているコンピュータ読取可能記憶媒体であって、
前記命令が実行されるとき、プロセッサに、
適応ループフィルタ（ＡＬＦ）パラメータのセットを、Ｎ個のメモリ要素の予め定められたサイズを有する１次元アレイに記憶させ、Ｎは正の整数値であり、ここで、前記ＡＬＦパラメータのセットを記憶させることは、アレイのメモリ要素のうちの１つ以上に、対応するＡＬＦパラメータと、前記対応するＡＬＦパラメータが推定される時間レイヤを示す時間レイヤ識別子（ＩＤ）値との両方を記憶させることを備え、
ビデオデータの１つ以上のブロックをデコードさせ、
前記１次元アレイの前記ＡＬＦパラメータを使用して、前記１つ以上のブロックをフィルタリングさせる、コンピュータ読取可能記憶媒体。
【請求項２６】
前記プロセッサに、デコーディング順序で前記ＡＬＦパラメータのセットを記憶させる命令をさらに備える、請求項２５に記載のコンピュータ読取可能記憶媒体。
【請求項２７】
前記プロセッサに、前記ＡＬＦパラメータのセットのうちのどれが前記フィルタリングのために使用されるべきかを表す値を有する以前のインデックス変数を維持させる命令をさらに備える、請求項２５に記載のコンピュータ読取可能記憶媒体。
【請求項２８】
前記プロセッサに、前記１つ以上のブロックをデコードする前に、前記１つ以上のブロックをエンコードさせる命令をさらに備える、請求項２５に記載のコンピュータ読取可能記憶媒体。
【請求項２９】
ビデオデータをデコードするデバイスであって、
適応ループフィルタ（ＡＬＦ）パラメータのセットを、Ｎ個のメモリ要素の予め定められたサイズを有する１次元アレイに記憶する手段と、Ｎは正の整数値であり、ここで、前記ＡＬＦパラメータのセットを記憶することは、アレイのメモリ要素のうちの１つ以上に、対応するＡＬＦパラメータと、前記対応するＡＬＦパラメータが推定される時間レイヤを示す時間レイヤ識別子（ＩＤ）値との両方を記憶することを備え、
ビデオデータの１つ以上のブロックをデコードする手段と、
前記１次元アレイの前記ＡＬＦパラメータを使用して、前記１つ以上のブロックをフィルタリングする手段とを備える、デバイス。
【請求項３０】
前記ビデオデータの１つ以上のブロックをデコードする前に、前記ビデオデータの１つ以上のブロックをエンコードする手段をさらに備える、請求項２９に記載のデバイス。
【発明の詳細な説明】
【優先権の主張】
【０００１】
[0001]  本願は、２０１９年９月１１日に出願された米国特許出願第１６／５６７，９６６号、２０１８年９月１２日に出願された米国仮特許出願第６２／７３０，５０４号の利益を主張し、それらの各々の内容全体は、参照によってここに組み込まれている。
【技術分野】
【０００２】
[0002]  本開示は、ビデオエンコーディング（video encoding）およびビデオデコーディング（video decoding）に関する。
【背景技術】
【０００３】
[0003]  デジタルビデオ能力は、デジタルテレビ、デジタルディレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、パーソナルデジタルアシスタント（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲーム機、セルまたは衛星無線電話、いわゆる「スマートフォン」、ビデオテレビ会議デバイス、ビデオストリーミングデバイス、およびこれらに類するものを含む、幅広い範囲のデバイス（device）に組み込まれることができる。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ Ｈ．２６３、ＩＴＵ−Ｔ Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコーディング（ＡＶＣ）、ＩＴＵ−Ｔ Ｈ．２６５／高効率ビデオコーディング（ＨＥＶＣ）、およびそのような規格の拡張によって定義された規格に説明されているもののような、ビデオコーディング技術を実現する。ビデオデバイスは、そのようなビデオコーディング技術を実現することによって、デジタルビデオ情報をより効率的に送信（transmit）、受信（receive）、エンコード（encode）、デコード（decode）、および／または記憶（store）し得る。
【０００４】
[0004]  ビデオコーディング技術は、ビデオシーケンスに内在する冗長性を低減または取り除くために、空間（イントラピクチャ）予測および／または時間（インターピクチャ）予測を含む。ブロックベースのビデオコーディングに対して、ビデオスライス（例えば、ビデオピクチャまたはビデオピクチャの一部分）は、コーディングツリーユニット（ＣＴＵ：coding tree unit）、コーディングユニット（ＣＵ：coding unit）、および／またはコーディングノードとも呼ばれ得る、ビデオブロックに区分され得る。ピクチャ（picture）のイントラコード化された（Ｉ）スライス中のビデオブロックは、同じピクチャ中の近隣するブロック（block）中の参照サンプルに対して空間予測を使用してエンコードされる。ピクチャのインターコードされた（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロックにおける参照サンプルに関する空間予測、または他の参照ピクチャ中の参照サンプルに関する時間予測を使用し得る。ピクチャは、フレームと呼ばれ得、参照ピクチャは、参照フレームと呼ばれ得る。
【発明の概要】
【０００５】
[0005]  概して、本開示は、適応ループフィルタリング（ＡＬＦ：adaptive loop filtering）における時間予測のメモリ使用量を低減し得る技術を説明する。ＪＥＭ７において採用される時間予測と比較して、説明する技術は、圧縮性能の損失がほとんどまたは全くなく、有意なメモリ低減（memory reduction）を提供し得る。本開示の技術は、Ｈ．２６５／ＨＥＶＣの拡張およびＨ．２６６／ＶＶＣを含む次世代ビデオコーディング規格など、アドバンストビデオコーデック（advanced video codecs）におけるＡＬＦのより実用的な実現を開発するために使用され得る。
【０００６】
[0006]  一例では、ビデオデータ（video data）をデコードする方法は、適応ループフィルタ（ＡＬＦ：adaptive loop filter）パラメータのセットを、Ｎ個のメモリ要素（memory element）の予め定められたサイズ（predefined size）を有する１次元アレイ（one-dimensional array）に記憶することと、Ｎは正の整数値（positive integer value）であり、ここで、ＡＬＦパラメータのセットを記憶することは、アレイ（array）のメモリ要素のうちの１つ以上に、対応するＡＬＦパラメータと、対応するＡＬＦパラメータが推定される時間レイヤ（temporal layer）を示す時間レイヤ識別子（ＩＤ：identifier）値との両方を記憶することを備え、ビデオデータの１つ以上のブロックをデコードすることと、１次元アレイのＡＬＦパラメータを使用して、１つ以上のブロックをフィルタリングする（filter）こととを含む。
【０００７】
[0007]  別の例では、ビデオデータをデコードするためのデバイスは、ビデオデータを記憶するように構成されたメモリ（memory）と、回路中で実現される１つ以上のプロセッサとを含み、１つ以上のプロセッサ（processor）は、適応ループフィルタ（ＡＬＦ）パラメータのセットを、メモリ中の１次元アレイに記憶し、１次元アレイはＮ個のメモリ要素の予め定められたサイズを有し、Ｎは正の整数値であり、ここで、１つ以上のプロセッサは、アレイのメモリ要素のうちの１つ以上に、対応するＡＬＦパラメータと、対応するＡＬＦパラメータが推定される時間レイヤを示す時間レイヤ識別子（ＩＤ）値との両方を記憶するように構成され、ビデオデータの１つ以上のブロックをデコードし、１次元アレイのＡＬＦパラメータを使用して、１つ以上のブロックをフィルタリングするように構成される。デバイスは、１つ以上のブロックをデコードする前に、１つ以上のブロックをさらにエンコードし得る。
【０００８】
[0008]  別の例では、命令（instruction）を記憶しているコンピュータ読取可能記憶媒体（computer-readable storage medium）は、命令が実行されるとき、プロセッサに、適応ループフィルタ（ＡＬＦ）パラメータのセットを、Ｎ個のメモリ要素の予め定められたサイズを有する１次元アレイに記憶させ、Ｎは正の整数値であり、ここで、ＡＬＦパラメータのセットを記憶させることは、アレイのメモリ要素のうちの１つ以上に、対応するＡＬＦパラメータと、対応するＡＬＦパラメータが推定される時間レイヤを示す時間レイヤ識別子（ＩＤ）値との両方を記憶させることを備え、ビデオデータの１つ以上のブロックをデコードさせ、１次元アレイのＡＬＦパラメータを使用して、１つ以上のブロックをフィルタリングさせる。
【０００９】
[0009]  別の例では、ビデオデータをデコードするデバイスは、適応ループフィルタ（ＡＬＦ）パラメータのセットを、Ｎ個のメモリ要素の予め定められたサイズを有する１次元アレイに記憶する手段と、Ｎは正の整数値であり、ここで、ＡＬＦパラメータのセットを記憶することは、アレイのメモリ要素のうちの１つ以上に、対応するＡＬＦパラメータと、対応するＡＬＦパラメータが推定される時間レイヤを示す時間レイヤ識別子（ＩＤ）値との両方を記憶することを備え、ビデオデータの１つ以上のブロックをデコードする手段と、１次元アレイのＡＬＦパラメータを使用して、１つ以上のブロックをフィルタリングする手段とを含む。
【００１０】
[0010]  １つ以上の例の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点が、説明、図面、および特許請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【００１１】
【図１】[0011]  図１は、例示的な適応ループフィルタ（ＡＬＦ）サポートを図示する概念図である。
【図２】[0012]  図２は、階層フレーム構造（hierarchical frame structure）における例示的な時間レイヤを図示する概念図である。
【図３】[0013]  図３は、本開示を実行し得る例示的なビデオエンコーディングおよびデコーディングシステムを図示するブロック図である。
【図４Ａ】[0014]  図４Ａは、例示的な四分木二分木（ＱＴＢＴ：quadtree binary tree）構造を図示する概念図である。
【図４Ｂ】図４Ｂは、対応するコーディングツリーユニット（ＣＴＵ：coding tree unit）を図示する概念図である。
【図５】[0015]  図５は、本開示の技術を実行し得る例示的なビデオエンコーダ（video encoder）を図示するブロック図である。
【図６】[0016]  図６は、本開示の技術を実行し得る例示的なビデオデコーダ（video decoder）を図示するブロック図である。
【図７】[0017]  図７は、この開示の技術にしたがった、ビデオデータをデコーディングおよびフィルタリングする例示的な方法を図示するフローチャートである。
【詳細な説明】
【００１２】
[0018]  ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、および（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４を含み、そのスケーラブルビデオコーディング（ＳＶＣ：Scalable Video Coding）およびマルチビュービデオコーディング（ＭＶＣ：Multi-view Video Coding）拡張を含む。
【００１３】
[0019]  加えて、新しいビデオコーディング規格、すなわち高効率ビデオコーディング（ＨＥＶＣ）が最近、ＩＴＵ−Ｔビデオコーディング専門家グループ（ＶＣＥＧ）およびＩＳＯ／ＩＥＣモーションピクチャ専門家グループ（ＭＰＥＧ）のビデオコーディングに関する共同コラボレーションチーム（ＪＣＴ−ＶＣ）によって開発された。以下においてＨＥＶＣ ＷＤと呼ばれるＨＥＶＣ仕様書は、phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zipから入手可能である。ＨＥＶＣ規格は、２０１３年１月にまとまった。
【００１４】
[0020]  ＩＴＵ−Ｔ ＶＣＥＧ（Ｑ６／１６）およびＩＳＯ／ＩＥＣ ＭＰＥＧ（ＪＴＣ １／ＳＣ ２９／ＷＧ １１）は現在、（スクリーンコンテンツコーディングおよびハイダイナミックレンジコーディングについてのその現在の拡張および近々の拡張を含む）現在のＨＥＶＣ規格のそれを有意に上回る圧縮能力を有する将来のビデオコーディングテクノロジーの標準化の潜在的な必要性を研究している。このグループは、このエリアの専門家によって提案された圧縮テクノロジー設計を評価するために、ジョイントビデオ調査チーム（ＪＶＥＴ）として知られている共同の試みでこの調査活動に関して協力し合っている。ＪＶＥＴが最初に集ったのは２０１５年１０月１９日−２１日の間である。参照ソフトウェア、すなわち、共同調査モデル７（ＪＥＭ７）は、jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-7.0から入手可能である。
【００１５】
[0021]  ビデオコーディングの分野では、デコードされたビデオ信号の品質を向上させるために、フィルタリングを適用することは一般的である。フィルタは、フィルタリングされたフレームが将来のフレームの予測のために使用されないポストフィルタ（post-filter）として、またはフィルタリングされたフレームが将来のフレームを予測するために使用されるインループフィルタ（in-loop filter）として適用されることができる。フィルタは、例えば、元の信号と、デコードされたフィルタリングされた信号との間の誤りを最小化することによって設計されることができる。変換係数にあるように、フィルタの係数ｈ（ｋ，ｌ），ｋ＝−Ｋ，．．．，Ｋ，ｌ＝−Ｋ，．．．Ｋは、
ｆ（ｋ，ｌ）＝ｒｏｕｎｄ（ｎｏｒｍＦａｃｔｏｒ・ｈ（ｋ，ｌ））
に従って量子化することができる。
【００１６】
[0022]  量子化変換係数（quantized transform coefficient）は、次いで、コード化され、デコーダに送られ得る。ｎｏｒｍＦａｃｔｏｒは、２ｎと等しくてよい。ｎｏｒｍＦａｃｔｏｒのより大きい値は、より正確な量子化につながり得る。結果として、量子化されたフィルタ係数ｆ（ｋ，ｌ）は、より良好な性能を提供することができる。しかしながら、ｎｏｒｍＦａｃｔｏｒの非常に大きな値は、一般に、送信するためにより多くのビットを必要とする係数ｆ（ｋ，ｌ）を生成する。
【００１７】
[0023]  デコーダでは、デコードされたフィルタ係数ｆ（ｋ，ｌ）は、以下の通りに、再構築された画像（reconstructed image）Ｒ（ｉ，ｊ）に適用される：
【数１】
2022500903.tif 000003
ここで、ｉおよびｊは、フレーム内のピクセルの座標である。
【００１８】
[0024]  図１は、例示的な適応ループフィルタ（ＡＬＦ）サポートを図示する概念図である。インループ適応フィルタ（in-loop adaptive filter）は、ＨＥＶＣステージにおいて評価されたが、最終バージョンには含まれていない。
【００１９】
[0025]  ＪＥＭにおいて採用されたインループ適応ループフィルタは、Ｊ．Ｃｈｅｎ，Ｙ．Ｃｈｅｎ，Ｍ．Ｋａｒｃｚｅｗｉｃｚ，Ｘ．Ｌｉ，Ｈ．Ｌｉｕ，Ｌ．Ｚｈａｎｇ，Ｘ．Ｚｈａｏ，「次世代ビデオコーディングのためのコーディングツール研究」ＳＧ１６−ジュネーブ−Ｃ８０６，２０１５年１月において最初に提案された。基本的な考え方は、ＨＭ−３［３]におけるブロックベースの適応を伴うＡＬＦと同じである。ルーマコンポーネントについては、１Ｄラプラシアン方向（最大３方向）および２Ｄラプラシアンアクティビティ（最大５アクティビティ値）に基づいて、ピクチャ全体における４×４ブロックが分類される。方向Ｄｉｒ＿ｂおよび量子化されていないアクティビティＡｃｔ＿ｂの計算は、式（２）から（５）に示され、ここで、Ｉ＾＿（ｉ，ｊ）は、４×４ブロックの左上への相対座標（ｉ，ｊ）を有する再構築されたピクセルを示す。Ａｃｔ＿ｂは、さらに、Ｔ．Ｗｉｅｇａｎｄ，Ｂ．Ｂｒｏｓｓ，Ｗ．−Ｊ．Ｈａｎ，Ｊ．−Ｒ．ＯｈｍおよびＧ．Ｊ．Ｓｕｌｌｉｖａｎ，「ＷＤ３：高効率ビデオコーディングの作業ドラフト３」ＩＴＵ−Ｔ  ＳＧ１６ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１，ＪＣＴＶＣ−Ｅ６０３のビデオコーディングに関する協同合作チーム（ＪＣＴ−ＶＣ）、第５回会議：２０１１年３月１６〜２３日、スイス、ジュネーブにおいて説明されているように０から４の範囲で包括的に量子化される。
【数２】
2022500903.tif 000004
【数３】
2022500903.tif 000005
【数４】
2022500903.tif 000006
【数５】
2022500903.tif 000007
【００２０】
[0026]  全体で、各ブロックは、１５（５×３）個のクラスのうちの１つにカテゴリ化され得、インデックス（index）が、ブロックのＤｉｒ_ｂおよびＡｃｔ_ｂの値に従って、各４×４ブロックに割り当てられる。したがって、最大１５セットまでのＡＬＦパラメータが、ピクチャのルーマコンポーネントのためにシグナリングされ得る。シグナリングコストを節約するために、これらグループは、グループインデックス値に沿ってマージされ得る。各マージされたグループについて、１セットのＡＬＦ係数がシグナリングされる。（図１に示すような）最大３つまでの円対称フィルタ形状（circular symmetric filter shape）がサポートされる。
【００２１】
[0027]  ピクチャ中の両方のクロマコンポーネントについて、ＡＬＦ係数の単一のセットが適用され、および５×５菱形形状フィルタ（diamond shape filter）が常に使用される。
【００２２】
[0028]  デコーダ側において、各ピクセルサンプル
【数６】
2022500903.tif 000008
がフィルタリングされ、式（６）に示されるように、結果としてピクセル値Ｉ′ｉ，ｊをもたらし、ここで、Ｌはフィルタ長を示し、ｆｍ，ｎはフィルタ係数を表し、ｏはフィルタオフセットを示す。
【数７】
2022500903.tif 000009
【００２３】
[0029]  ＪＥＭ２．０では、ＢＤＦによって示されるビット深度は、９に設定され、これは、フィルタ係数が、［−２５６，２５６]の範囲にあり得ることを意味する。
【００２４】
[0030]  以前にコード化されたピクチャのＡＬＦ係数は、記憶され、現在ピクチャ（current picture）のＡＬＦ係数として再利用されることが可能である。現在ピクチャは、参照ピクチャのために記憶されたＡＬＦ係数を使用することを選び、ＡＬＦ係数のシグナリングをバイパスし得る。このケースでは、参照ピクチャのうちの１つに対する１つのインデックスのみがシグナリングされ、示された参照ピクチャの記憶されたＡＬＦ係数は、現在ピクチャのために単純に引き継がれる。時間的予測の使用を示すために、インデックスを送る前に、１つのフラグが最初にコード化される。
【００２５】
[0031]  ＪＥＭ７の設計では、多くとも６つの以前のピクチャ／スライスからのＡＬＦパラメータは、各時間レイヤについて別個のアレイに記憶される。例えば、階層的Ｂ／Ｐコーディング構造内に５つの時間レイヤが存在する場合（現在のビデオエンコーディング標準化で使用されるランダムアクセス設定のケース）、エンコーダおよびデコーダの両方が５×６メモリアレイを使用し、その結果、合計で、以前に取得されたＡＬＦパラメータを記憶するための３０個のメモリ要素が存在する。
【００２６】
[0032]  ＪＥＭ７の従来の設計は、ＩＲＡＰピクチャ（Ｉフレーム）がエンコード／デコードされるとき、記憶されたＡＬＦパラメータを効果的に削除する。重複を避けるために、ＡＬＦパラメータは、デコーダ側でのシグナリングを通じて新たに取得された場合にのみメモリに記憶される（エンコーダ側では、推定／トレーニングを介して新たなパラメータが取得される）。パラメータを記憶することは、先入れ先出し（ＦＩＦＯ：first-in-first-out）順序（すなわち、ＦＩＦＯ方式）で動作し、したがって、アレイが満杯である場合、ＡＬＦパラメータ値の新しいセットが、デコーディング順序（decoding order）で最も古いパラメータを上書きする。
【００２７】
[0033]  図２は、階層フレーム構造における例示的な時間レイヤを図示する概念図である。
【００２８】
[0034]  ＡＬＦパラメータを記憶するために（メモリ中の）２次元（２Ｄ）アレイを使用することの１つの例示的な理由は、階層的Ｂ／Ｐフレームコーディング構造において時間スケーラビリティ（temporal scalability）を保つことである。図２に示すように、ｉ＜ｋの場合、レイヤＴｉにおけるフレームはレイヤＴｋにおけるフレームに依存することができない（たとえば、レイヤＴｋにおけるフレームから予測することができない）。言い換えれば、下位時間レイヤ（たとえば、Ｔ２）におけるフレーム／スライスは、上位レイヤ（たとえば、Ｔ３およびＴ４）におけるフレーム／スライスに依存することができない。米国特許出願公開第２０１８／０１９２０５０号として公開された、２０１８年１月３日に出願された米国出願第１５／８６１，１６５号でカバーされる、ＡＬＦにおける現在の時間予測は、異なる時間レイヤから取得されたＡＬＦパラメータを２Ｄアレイの異なる行に単に記憶し、それらのパラメータが階層Ｂ／Ｐフレームにおける依存構造を壊すことなく使用されることを確実にすることによって、時間スケーラビリティを保つ。
【００２９】
[0035]  時間予測の現在の設計は、大量のメモリを必要とし得る。具体的には、３０メモリ要素を有する５×６アレイは、ＡＬＦパラメータを記憶するために、エンコーダとデコーダの両方において必要とされ得る。本開示の技術は、１Ｄアレイを使用することによってメモリ要件を著しく低減し得る一方で、依然として時間的スケーラビリティを保つ。
【００３０】
[0036]  図３は、本開示の技術を実行し得る例示的なビデオエンコーディングおよびデコーディングシステム１００を図示するブロック図である。本開示の技術は、概して、ビデオデータをコーディング（エンコーディング（encoding）および／またはデコーディング（decoding））することに向けられている。一般に、ビデオデータは、ビデオを処理するための任意のデータを含む。したがって、ビデオデータは、生の、コード化されていないビデオ、エンコードされたビデオ、デコードされた（例えば、再構築された）ビデオ、およびシグナリングデータなどのビデオメタデータを含み得る。
【００３１】
[0037]  図３に示されているように、システム１００は、この例では、宛先デバイス１１６によってデコードおよび表示されることになるエンコードされたビデオデータを提供するソースデバイス１０２を含む。特に、ソースデバイス１０２は、コンピュータ読取可能媒体１１０を介して宛先デバイス１１６にビデオデータを提供する。ソースデバイス１０２および宛先デバイス１１６は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、またはこれらに類するものを含む、幅広い範囲のデバイスのうちのいずれかを備え得る。いくつかのケースでは、ソースデバイス１０２および宛先デバイス１１６は、ワイヤレス通信のために装備され得、このことから、ワイヤレス通信デバイスと呼ばれ得る。
【００３２】
[0038]  図３の例では、ソースデバイス１０２は、ビデオソース１０４、メモリ１０６、ビデオエンコーダ２００、および出力インターフェース１０８を含む。宛先デバイス１１６は、入力インターフェース１２２、ビデオデコーダ３００、メモリ１２０、およびディスプレイデバイス１１８を含む。本開示に従って、ソースデバイス１０２のビデオエンコーダ２００と宛先デバイス１１６のビデオデコーダ３００とは、メモリ消費（memory consumption）を低減し得る、適応ループフィルタパラメータの時間予測のための技術を適用するように構成され得る。このことから、ソースデバイス１０２は、ビデオエンコーディングデバイスの例を表す一方で、宛先デバイス１１６は、ビデオデコーディングデバイスの例を表す。他の例では、ソースデバイスおよび宛先デバイスは、他のコンポーネントまたは配置を含み得る。例えば、ソースデバイス１０２は、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス１１６は、統合されたディスプレイデバイスを含むよりもむしろ、外部ディスプレイデバイスとインターフェースし得る。
【００３３】
[0039]  図３に示されているシステム１０は単に、一例に過ぎない。一般に、任意のデジタルビデオエンコーディングおよび／またはデコーディングデバイスは、メモリ消費を低減し得る、適応ループフィルタパラメータの時間予測のための技術を実行し得る。ソースデバイス１０２および宛先デバイス１１６は単に、ソースデバイス１０２が、宛先デバイス１１６への送信のためのコード化されたビデオデータを生成するそのようなコーディングデバイスの例に過ぎない。本開示は、データのコーディング（エンコーディングおよび／またはデコーディング）を実行するデバイスとして「コーディング（coding）」デバイスに言及する。このことから、ビデオエンコーダ２００およびビデオデコーダ３００は、コーディングデバイスの例、特に、ビデオエンコーダおよびビデオデコーダをそれぞれ表す。いくつかの例では、ソースデバイス１０２および宛先デバイス１１６は、ソースデバイス１０２および宛先デバイス１１６の各々がビデオエンコーディングおよびデコーディングコンポーネントを含むような実質的に対称的な方法で動作し得る。したがって、システム１００は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のための、ソースデバイス１０２と宛先デバイス１１６との間の１方向または２方向ビデオ送信をサポートし得る。
【００３４】
[0040]  一般に、ビデオソース１０４は、ビデオデータのソース（即ち、生の、コード化されていないビデオデータ）を表し、ビデオデータの連続する一連のピクチャ（「フレーム（frame）」とも呼ばれる）をビデオエンコーダ２００に提供し、ビデオエンコーダ２００は、ピクチャについてのデータをエンコードする。ソースデバイス１０２のビデオソース１０４は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされた生のビデオを含むビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。更なる代替として、ビデオソース１０４は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、または、ライブビデオとアーカイブビデオとコンピュータが生成したビデオとの組み合わせを生成し得る。各ケースでは、ビデオエンコーダ２００が、キャプチャされた、予めキャプチャされた、またはコンピュータが生成したビデオデータをエンコードする。ビデオエンコーダ２００は、ピクチャを、受信した順序（ときには「表示順序（display order）」と呼ばれる）から、コーディングのためのコーディング順序（coding order）に再配列し得る。ビデオエンコーダ２００は、エンコードされたビデオデータを含むビットストリーム（bitstream）を生成し得る。ソースデバイス１０２は次いで、例えば、宛先デバイス１１６の入力インターフェース１２２による受信および／または取り出しのために、出力インターフェース１０８を介してコンピュータ読取可能媒体１１０上にエンコードされたビデオデータを出力し得る。
【００３５】
[0041]  ソースデバイス１０２のメモリ１０６および宛先デバイス１１６のメモリ１２０は、汎用メモリを表す。いくつかの例では、メモリ１０６、１２０は、生のビデオデータ、例えば、ビデオソース１０４からの生のビデオ、およびビデオデコーダ３００からの生のデコードされたビデオデータを記憶し得る。追加または代替として、メモリ１０６、１２０は、例えば、それぞれビデオエンコーダ２００およびビデオデコーダ３００によって実行可能なソフトウェア命令を記憶し得る。メモリ１０６および１２０は、この例ではビデオエンコーダ２００およびビデオデコーダ３００とは別個に示されているが、ビデオエンコーダ２００およびビデオデコーダ３００はまた、機能的に類似または同等の目的のために内部メモリを含み得ることが理解されるべきである。更に、メモリ１０６、１２０は、エンコードされたビデオデータ、例えば、ビデオエンコーダ２００からの出力およびビデオデコーダ３００への入力を記憶し得る。いくつかの例では、メモリ１０６、１２０の一部分は、例えば、生の、デコードされた、および／またはエンコードされたビデオデータを記憶するために、１つ以上のビデオバッファとして割り振られ得る。
【００３６】
[0042]  コンピュータ読取可能媒体１１０は、ソースデバイス102から宛先デバイス１１６にエンコードされたビデオデータを転送することが可能な任意のタイプの媒体またはデバイスを表し得る。一例では、コンピュータ読取可能媒体１１０は、ソースデバイス１０２が、例えば、無線周波数ネットワークまたはコンピュータベースのネットワークを介して、リアルタイムで宛先デバイス１１６にエンコードされたビデオデータを直接送信することを可能にするための通信媒体を表す。出力インターフェース１０８は、エンコードされたビデオデータを含む送信信号を変調し得、入力インターフェース１２２は、ワイヤレス通信プロトコルなどの通信規格に従って、受信された送信信号を復調し得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つ以上の物理的な送信ラインのような、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットといったグローバルネットワークのような、パケットベースのネットワークの一部を形成することができる。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１０２から宛先デバイス１１６への通信を容易にするのに有用であり得る他の何らかの機器を含み得る。
【００３７】
[0043]  いくつかの例では、ソースデバイス１０２は、出力インターフェース１０８から記憶デバイス１１２に、エンコードされたデータを出力し得る。同様に、宛先デバイス１１６は、入力インターフェース１２２を介して記憶デバイス１１２からのエンコードされたビデオデータにアクセスし得る。記憶デバイス１１２は、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいはエンコードされたビデオデータを記憶するための他の何らかの適したデジタル記憶媒体などの、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のうちのいずれかを含み得る。
【００３８】
[0044]  いくつかの例では、ソースデバイス１０２は、ソースデバイス１０２によって生成されたエンコードされたビデオを記憶し得るファイルサーバ１１４または別の中間記憶デバイスに、エンコードされたビデオデータを出力し得る。宛先デバイス１１６は、ストリーミングまたはダウンロードを介してファイルサーバ１１４からの記憶されたビデオデータにアクセスし得る。ファイルサーバ１１４は、エンコードされたビデオデータを記憶することと、宛先デバイス１１６にそのエンコードされたビデオデータを送信することとが可能な任意のタイプのサーバデバイスであり得る。ファイルサーバ１１４は、（例えば、ウェブサイトのための）ウェブサーバ、ファイル転送プロトコル（ＦＴＰ）サーバ、コンテンツ配信ネットワークデバイス、またはネットワーク接続ストレージ（ＮＡＳ）デバイスを表し得る。宛先デバイス１１６は、インターネット接続を含む、任意の標準データ接続を通じて、ファイルサーバ１１４からのエンコードされたビデオデータにアクセスし得る。これは、ファイルサーバ１１４上に記憶されているエンコードされたビデオデータにアクセスするのに適している、ワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（例えば、デジタル加入者回線（ＤＳＬ）、ケーブルモデム、等）、またはその両方の組み合わせを含み得る。ファイルサーバ１１４および入力インターフェース１２２は、ストリーミング送信プロトコル、ダウンロード送信プロトコル、またはそれらの組み合わせに従って動作するように構成され得る。
【００３９】
[0045]  出力インターフェース１０８および入力インターフェース１２２は、ワイヤレス送信機／受信機、モデム、ワイヤードネットワーキングコンポーネント（例えば、イーサネット（登録商標）カード）、様々なＩＥＥＥ８０２．１１規格のうちの任意のものに従って動作するワイヤレス通信コンポーネント、または他の物理的コンポーネントを表し得る。出力インターフェース１０８および入力インターフェース１２２がワイヤレスコンポーネントを備える例では、出力インターフェース１０８および入力インターフェース１２２は、４Ｇ、４Ｇ−ＬＴＥ（登録商標）（ロングタームエボリューション）、ＬＴＥアドバンスト、５Ｇ、またはこれらに類するもののようなセルラ通信規格にしたがって、エンコードされたビデオデータなどのデータを転送するように構成され得る。出力インターフェース１０８がワイヤレス送信機を備えるいくつかの例では、出力インターフェース１０８および入力インターフェース１２２は、ＩＥＥＥ８０２．１１仕様、ＩＥＥＥ８０２．１５仕様（例えば、ＺｉｇＢｅｅ（登録商標））、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格、またはこれらに類するもののような、他のワイヤレス規格にしたがって、エンコードされたビデオデータなどのデータを転送するように構成され得る。いくつかの例では、ソースデバイス１０２および／または宛先デバイス１１６は、それぞれのシステムオンチップ（ＳｏＣ）デバイスを含み得る。例えば、ソースデバイス１０２は、ビデオエンコーダ２００および／または出力インターフェース１０８に備わる機能性を実行するためのＳｏＣデバイスを含み得、宛先デバイス１１６は、ビデオデコーダ３００および／または入力インターフェース１２２に備わる機能性を実行するためのＳｏＣデバイスを含み得る。
【００４０】
[0046]  本開示の技術は、無線テレビ放送、ケーブルテレビ送信、衛星テレビ送信、ＨＴＴＰを通した動的適応型ストリーミング（ＤＡＳＨ：dynamic adaptive streaming over HTTP）などのインターネットストリーミングビデオ送信、データ記憶媒体上にエンコードされたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオのデコード、または他のアプリケーションなどの、様々なマルチメディアアプリケーションのうちのいずれかをサポートするビデオコーディングに適用され得る。
【００４１】
[0047]  宛先デバイス１１６の入力インターフェース１２２は、コンピュータ読取可能媒体１１０（例えば、通信媒体、記憶デバイス１１２、ファイルサーバ１１４、またはこれらに類するもの）からエンコードされたビデオビットストリームを受信する。コンピュータ読取可能媒体１１０からのエンコードされたビデオビットストリームは、ビデオブロックまたは他のコード化されたユニット（例えば、スライス、ピクチャ、ピクチャのグループ、シーケンス、またはこれらに類するもの）の特性および／または処理を記述する値を有するシンタックス要素などの、ビデオエンコーダ２００によって定義され、ビデオデコーダ３００によっても使用されるシグナリング情報を含み得る。ディスプレイデバイス１１８は、ユーザにデコードされたビデオデータのデコードされたピクチャを表示する。ディスプレイデバイス１１８は、ブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスのような、様々なディスプレイデバイスのうちのいずれかを表してもよい。
【００４２】
[0048]  図３には示されていないが、いくつかの態様では、ビデオエンコーダ２００およびビデオデコーダ３００は各々、オーディオエンコーダおよび／またはオーディオデコーダと一体化され得、共通のデータストリームにおけるオーディオとビデオとの両方を含む多重化されたストリームを取り扱うために、適切なＭＵＸ−ＤＥＭＵＸユニット、あるいは他のハードウェアおよび／またはソフトウェアを含み得る。適用可能である場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）のような他のプロトコルに準拠し得る。
【００４３】
[0049]  ビデオエンコーダ２００およびビデオデコーダ３００は各々、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせなどの、様々な適したエンコーダおよび／またはデコーダ回路のうちのいずれかとして実現され得る。本技術がソフトウェアにおいて部分的に実現されるとき、デバイスは、適した非一時的コンピュータ読取可能媒体中にソフトウェアのための命令を記憶し、本開示の技術を実行するために、１つ以上のプロセッサを使用してハードウェアにおいて命令を実行し得る。ビデオエンコーダ２００およびビデオデコーダ３００の各々は、１つ以上のエンコーダまたはデコーダに含まれ得、それらのうちのいずれも、それぞれのデバイスにおいて組み合わされたエンコーダ／デコーダ（ＣＯＤＥＣ）の一部として統合され得る。ビデオエンコーダ２００および／またはビデオデコーダ３００を含むデバイスは、集積回路、マイクロプロセッサ、および／またはセルラ電話機などのワイヤレス通信デバイスを備え得る。
【００４４】
[0050]  ビデオエンコーダ２００およびビデオデコーダ３００は、高効率ビデオコーディング（ＨＥＶＣ）とも呼ばれるＩＴＵ−Ｔ  Ｈ．２６５などのビデオコーディング規格に、あるいはマルチビューおよび／またはスケーラブルビデオコーディング拡張などの、高効率ビデオコーディング（ＨＥＶＣ）に対する拡張に従って動作し得る。代替的に、ビデオエンコーダ２００およびビデオデコーダ３００は、汎用ビデオコーディング（ＶＶＣ：Versatile Video Coding）とも呼ばれるＩＴＵ−Ｔ Ｈ．２６６または共同調査テストモデル（ＪＥＭ）などの、他のプロプライエタリまたは業界規格にしたがって動作し得る。ＶＶＣ規格の最近のドラフトは、Ｂｒｏｓｓ他「汎用ビデオコーディング（ドラフト６）」、ＩＴＵ−Ｔ  ＳＧ１６ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のジョイントビデオエキスパートチーム（ＪＶＥＴ）、第１５回会議：２０１９年７月３〜１２日スウェーデン、ヨーテボリ、ＪＶＥＴ−Ｏ２００１−ｖＥ（以下、「ＶＶＣドラフト６」）において説明されている。しかしながら本開示の技術は、何れの特定のコーディング規格にも限定されない。
【００４５】
[0051]  一般に、ビデオエンコーダ２００およびビデオデコーダ３００は、ピクチャのブロックベースのコーディングを実行し得る。「ブロック（block）」という用語は、一般に、処理される（例えば、エンコードされる、デコードされる、あるいはそうでなければ、エンコーディングおよび／またはデコーディングプロセスにおいて使用される）べきデータを含む構造を指す。例えば、ブロックは、ルミナンスデータおよび／またはクロミナンスデータのサンプルの２次元行列を含み得る。概して、ビデオエンコーダ２００およびビデオデコーダ３００は、ＹＵＶ（例えば、Ｙ、Ｃｂ、Ｃｒ）フォーマットで表されるビデオデータをコード化し得る。すなわち、ピクチャのサンプルのための赤、緑、および青（ＲＧＢ）データをコーディングするよりもむしろ、ビデオエンコーダ２００およびビデオデコーダ３００は、ルミナンスコンポーネントおよびクロミナンスコンポーネントをコード化し得、ここで、クロミナンスコンポーネントは、赤の色相と青の色相両方のクロミナンスコンポーネントを含み得る。いくつかの例では、ビデオエンコーダ２００は、エンコーディングの前に、受信したＲＧＢフォーマットされたデータをＹＵＶ表現に変換し、ビデオデコーダ３００は、ＹＵＶ表現をＲＧＢフォーマットに変換する。代替として、前処理ユニットおよび後処理ユニット（図示せず）が、これらの変換を実行し得る。
【００４６】
[0052]  本開示は、一般に、ピクチャのデータをエンコードまたはデコードするプロセスを含むように、ピクチャのコーディング（例えば、エンコーディングおよびデコーディング）に言及し得る。同様に、本開示は、ブロックについてのデータをエンコードまたはデコードするプロセス、例えば、予測および／または残差コーディングを含むように、ピクチャのブロックのコーディングに言及し得る。エンコードされたビデオビットストリームは、一般に、コーディング決定（例えば、コーディングモード）とブロックへのピクチャの区分とを表すシンタックス要素についての一連の値を含む。したがって、ピクチャまたはブロックをコーディングすることへの言及は、一般に、ピクチャまたはブロックを形成するシンタックス要素（syntax element）についてのコーディング値として理解されるべきである。
【００４７】
[0053]  ＨＥＶＣは、コーディングユニット（ＣＵ）と、予測ユニット（ＰＵ）と、変換ユニット（ＴＵ）とを含む様々なブロックを定義する。ＨＥＶＣによれば、ビデオコーダ（ビデオエンコーダ２００など）は、四分木構造にしたがってコーディングツリーユニット（ＣＴＵ）をＣＵに区分する。即ち、ビデオコーダは、ＣＴＵおよびＣＵを４つの等しい、重複しない正方形に区分し、四分木の各ノードは、０または４つの子ノードのうちのいずれかを有する。子ノードを有さないノードは、「リーフノード」と呼ばれ得、そのようなリーフノードのＣＵは、１つ以上のＰＵおよび／または１つ以上のＴＵを含み得る。ビデオコーダは、ＰＵとＴＵとを更に区分し得る。例えば、ＨＥＶＣでは、残差四分木（ＲＱＴ）は、ＴＵの区分を表す。ＨＥＶＣでは、ＰＵはインター予測データを表す一方で、ＴＵは残差データを表す。イントラ予測されるＣＵは、イントラモード表示などのイントラ予測情報を含む。
【００４８】
[0054]  別の例として、ビデオエンコーダ２００およびビデオデコーダ３００は、ＪＥＭまたはＶＶＣにしたがって動作するように構成され得る。ＪＥＭまたはＶＶＣによれば、ビデオコーダ（ビデオエンコーダ２００など）は、ピクチャを複数のコーディングツリーユニット（ＣＴＵ）に区分する。ビデオエンコーダ２００は、四分木二分木（ＱＴＢＴ）構造またはマルチタイプツリー（ＭＴＴ：multi-type tree）構造などのツリー構造に従ってＣＴＵを区分し得る。ＪＥＭのＱＴＢＴ構造は、ＨＥＶＣのＣＵ、ＰＵ、およびＴＵ間の分離など、複数の区分タイプの概念を取り除く。ＪＥＭのＱＴＢＴ構造は、四分木分割にしたがって区分された第１のレベルと、二分木分割にしたがって区分された第２のレベルとの２つのレベルを含む。ＱＴＢＴ構造のルートノードはＣＴＵに対応する。二分木のリーフノードは、コーディングユニット（ＣＵ）に対応する。
【００４９】
[0055]  ＭＴＴ区分構造では、ブロックは、四分木（ＱＴ）区分と、二分木（ＢＴ）区分と、１つ以上のタイプの三分木（ＴＴ：triple tree）（三分木（ＴＴ：ternary tree）とも呼ばれる）区分とを使用して区分され得る。三分木区分（triple tree partition）または三分木区分（ternary tree partition）は、ブロックが３つのサブブロックに分割される区分である。いくつかの例では、三分木区分（triple tree partition）または三分木区分（ternary tree partition）は、中心を通して元のブロックを分割することなく、ブロックを３つのサブブロックに分割する。ＭＴＴにおける区分タイプ（例えば、ＱＴ、ＢＴ、およびＴＴ）は、対称または非対称であり得る。
【００５０】
[0056]  いくつかの例では、ビデオエンコーダ２００およびビデオデコーダ３００は、ルミナンスコンポーネントおよびクロミナンスコンポーネントの各々を表すために単一のＱＴＢＴまたはＭＴＴ構造を使用し得るが、他の例では、ビデオエンコーダ２００およびビデオデコーダ３００は、ルミナンスコンポーネントのための１つのＱＴＢＴ／ＭＴＴ構造、および両方のクロミナンスコンポーネントのための別のＱＴＢＴまたはＭＴＴ構造（あるいはそれぞれのクロミナンスコンポーネントのための２つのＱＴＢＴまたはＭＴＴ構造）など、２つ以上のＱＴＢＴまたはＭＴＴ構造を使用し得る。
【００５１】
[0057]  ビデオエンコーダ２００およびビデオデコーダ３００は、ＨＥＶＣごとの四分木区分、ＪＥＭによるＱＴＢＴ区分、または他の区分構造を使用するように構成され得る。説明を目的として、本開示の技術の説明は、ＱＴＢＴ区分に関して提示される。しかしながら、本開示の技術はまた、四分木区分、または他のタイプの区分も使用するように構成されたビデオコーダに適用され得ることが理解されるべきである。
【００５２】
[0058]  ブロック（例えば、ＣＴＵまたはＣＵ）は、ピクチャ中で様々な方法でグループ化され得る。一例として、ブリック（brick）は、ピクチャ中の特定のタイル内のＣＴＵ行の矩形領域を指し得る。タイルは、ピクチャ中の特定のタイル列および特定のタイル行内のＣＴＵの矩形領域であり得る。タイル列は、ピクチャの高さに等しい高さと、（例えば、ピクチャパラメータセット中などの）シンタックス要素によって指定された幅とを有するＣＴＵの矩形領域を指す。タイル行は、（例えば、ピクチャパラメータセット中などの）シンタックス要素によって指定された高さと、ピクチャの幅に等しい幅とを有するＣＴＵの矩形領域を指す。
【００５３】
[0059]  いくつかの例では、タイルは、複数のブリックに区分され得、それらの各々は、タイル内に１つ以上のＣＴＵ行を含み得る。複数のブリックに区分されていないタイルもまた、ブリックと呼ばれ得る。しかしながら、タイルの真のサブセットであるブリックは、タイルと呼ばれないかもしれない。
【００５４】
[0060]  ピクチャ中のブリックはまた、スライス中に配置され得る。スライスは、単一のネットワーク抽象化レイヤ（ＮＡＬ：network abstraction layer）ユニット中に排他的に包含され得るピクチャの整数個のブリックであり得る。いくつかの例では、スライスは、多くの完全なタイル、または１つのタイルの完全なブリックの連続したシーケンスのみのうちのいずれかを含む。
【００５５】
[0061]  本開示は、垂直寸法および水平寸法に関する（ＣＵまたは他のビデオブロックなどの）ブロックのサンプル寸法、例えば、１６×１６サンプルまたは１６掛ける１６サンプルを指すために、「Ｎ×Ｎ」および「Ｎ掛けるＮ」を交換可能に使用し得る。一般に、１６×１６ＣＵは、垂直方向に１６個のサンプル（ｙ＝１６）を、および水平方向に１６個のサンプル（ｘ＝１６）を有するだろう。同様に、Ｎ×Ｎ  ＣＵは、一般に、垂直方向にＮ個のサンプルを、水平方向にＮ個のサンプルを有し、ここで、Ｎは、非負整数値を表す。ＣＵ中のサンプルは、行および列に配置され得る。その上、ＣＵは、水平方向に、垂直方向と同じ数のサンプルを必ずしも有する必要はない。例えば、ＣＵは、Ｎ×Ｍサンプルを備え得、ここで、Ｍは、必ずしもＮと等しいわけではない。
【００５６】
[0062]  ビデオエンコーダ２００は、予測および／または残差情報、並びに他の情報を表すＣＵについてのビデオデータをエンコードする。予測情報は、ＣＵのための予測ブロックを形成するために、どのようにＣＵが予測されるべきかを示す。残差情報は、一般に、エンコーディング前のＣＵのサンプルと予測ブロックとの間のサンプルごとの差分を表す。
【００５７】
[0063]  ＣＵを予測するために、ビデオエンコーダ２００は、一般に、インター予測またはイントラ予測を通じてＣＵについての予測ブロックを形成し得る。インター予測は、一般に、以前にコード化されたピクチャのデータからＣＵを予測することを指す一方で、イントラ予測は、一般に、同じピクチャの以前にコード化されたデータからＣＵを予測することを指す。インター予測を実行するために、ビデオエンコーダ２００は、１つ以上の動きベクトルを使用して予測ブロックを生成し得る。ビデオエンコーダ２００は、概して、例えば、ＣＵと参照ブロックとの間の差分に関して、ＣＵに密接に一致する参照ブロックを識別するために動きサーチを実行し得る。ビデオエンコーダ２００は、参照ブロックが現在ＣＵに密接に一致するかどうかを決定するために、絶対差分の和（ＳＡＤ）、二乗差分の和（ＳＳＤ）、平均絶対差分（ＭＡＤ）、平均二乗差分（ＭＳＤ）、または他のそのような差分計算を使用して差分メトリックを計算し得る。いくつかの例では、ビデオエンコーダ２００は、単方向予測または双方向予測を使用して現在ＣＵを予測し得る。
【００５８】
[0064]  ＪＥＭおよびＶＶＣのいくつかの例はまた、インター予測モードと見なされ得るアフィン動き補償モード（affine motion compensation mode）を提供する。アフィン動き補償モードでは、ビデオエンコーダ２００は、ズームインまたはズームアウト、回転、透視動き、または他の不規則な動きタイプなどの非並進動きを表す２つ以上の動きベクトルを決定し得る。
【００５９】
[0065]  イントラ予測を実行するために、ビデオエンコーダ２００は、予測ブロックを生成するためにイントラ予測モードを選択（select）し得る。ＪＥＭは、様々な方向性モードとともに、平面モードおよびＤＣモードを含む、６７個のイントラ予測モードを提供する。概して、ビデオエンコーダ２００は、現在ブロック（例えば、ＣＵのブロック）に対する隣接サンプルを記述するイントラ予測モードを選択して、そのサンプルから現在ブロックのサンプルを予測する。ビデオエンコーダ２００がラスタ走査順序（左から右、上から下）でＣＴＵおよびＣＵをコード化する（code）と仮定すると、そのようなサンプルは、一般に、現在ブロックと同じピクチャ中の現在ブロックの上、左上、または左にあり得る。
【００６０】
[0066]  ビデオエンコーダ２００は、現在ブロックについての予測モードを表すデータをエンコードする。例えば、インター予測モードに対して、ビデオエンコーダ２００は、様々な利用可能なインター予測モードのうちのどれが使用されるかを表すデータ、並びに対応するモードについての動き情報をエンコードし得る。単方向または双方向インター予測に対して、例えば、ビデオエンコーダ２００は、高度動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）またはマージモードを使用して動きベクトルをエンコードし得る。ビデオエンコーダ２００は、アフィン動き補償モードについての動きベクトルをエンコードするために、同様のモードを使用し得る。
【００６１】
[0067]  ブロックのイントラ予測またはインター予測などの予測に続いて、ビデオエンコーダ２００は、ブロックについての残差データを計算し得る。残差ブロックなどの残差データは、ブロックと、対応する予測モードを使用して形成された、ブロックについての予測ブロックとの間のサンプル毎の差分を表す。ビデオエンコーダ２００は、サンプルドメインの代わりに変換ドメイン中に変換されたデータを作り出すために、残差ブロックに１つ以上の変換を適用し得る。例えば、ビデオエンコーダ２００は、離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換を残差ビデオデータに適用し得る。さらに、ビデオエンコーダ２００は、モード依存分離不可能２次変換（ＭＤＮＳＳＴ：mode-dependent non-separable secondary transform）、信号依存変換、カルーネンレーベ変換（ＫＬＴ：Karhunen-Loeve transform）、または、これらに類するもののような、第１の変換に続く２次変換を適用し得る。ビデオエンコーダ２００は、１つ以上の変換の適用に続いて変換係数を生成する。
【００６２】
[0068]  上述されたように、変換係数を作り出すための任意の変換に続いて、ビデオエンコーダ２００は、変換係数の量子化を実行し得る。量子化は一般に、変換係数を表現するために使用されるデータの量を出来る限り減少させるために変換係数が量子化されるプロセスを指し、これは、さらなる圧縮を提供する。量子化プロセスを実行することによって、ビデオエンコーダ２００は、変換係数のうちのいくつかまたは全てに関連付けられたビット深度を低減し得る。例えば、ビデオエンコーダ２００は、量子化の間にｎ−ビット値をｍ−ビット値に切り捨ててもよく、ここで、ｎはｍよりも大きい。いくつかの例では、量子化を実行するために、ビデオエンコーダ２００は、量子化されるべき値のビット単位の右シフトを実行し得る。
【００６３】
[0069]  量子化に続いて、ビデオエンコーダ２００は、変換係数を走査し得、量子化変換係数を含む２次元行列から１次元ベクトルを作り出し得る。走査は、ベクトルの前方により高いエネルギー（従って、より低い周波数）の変換係数を配置し、ベクトルの後方により低いエネルギー（従って、より高い周波数）の変換係数を配置するように設計され得る。いくつかの例では、ビデオエンコーダ２００は、予め規定された走査順序を利用して、量子化変換係数を走査し、シリアル化ベクトルを生成させ、その後、ベクトルの量子化変換係数をエントロピーエンコードし得る。他の例では、ビデオエンコーダ２００は、適応走査を実行し得る。１次元ベクトルを形成するために、量子化変換係数を走査した後、ビデオエンコーダ２００は、例えば、コンテキスト適応２値算術コーディング（ＣＡＢＡＣ）に従って１次元ベクトルをエントロピーエンコーディングし得る。ビデオエンコーダ２００はまた、ビデオデータをデコードする際にビデオデコーダ３００によって使用するためのエンコードされたビデオデータに関連付けられたメタデータを記述するシンタックス要素についての値をエントロピーエンコードし得る。
【００６４】
[0070]  ＣＡＢＡＣを実行するために、ビデオエンコーダ２００は、送信されることになるシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、例えば、シンボルの近隣値が０値であるか否かに関連し得る。確率の決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００６５】
[0071]  ビデオエンコーダ２００は、例えば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、あるいはシーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）、またはビデオパラメータセット（ＶＰＳ）などの他のシンタックスデータ中で、ビデオデコーダ３００に、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびシーケンスベースのシンタックスデータなどのシンタックスデータを更に生成し得る。ビデオデコーダ３００は、同様に、対応するビデオデータをどのようにデコードするかを決定するために、そのようなシンタックスデータをデコードし得る。
【００６６】
[0072]  このように、ビデオエンコーダ２００は、エンコードされたビデオデータ、例えば、ブロック（例えば、ＣＵ）へのピクチャの区分、並びに、ブロックについての予測および／または残差情報を記述するシンタックス要素、を含むビットストリームを生成し得る。最終的に、ビデオデコーダ３００は、ビットストリームを受信し、エンコードされたビデオデータをデコードし得る。
【００６７】
[0073]  一般に、ビデオデコーダ３００は、ビットストリームのエンコードされたデータをデコードするために、ビデオエンコーダ２００によって実行されたものとは相反するプロセスを実行する。例えば、ビデオデコーダ３００は、ビデオエンコーダ２００のＣＡＢＡＣエンコーディングプロセスと逆ではあるが実質的に同様な方法でＣＡＢＡＣを使用して、ビットストリームのシンタックス要素についての値をデコードし得る。シンタックス要素は、ＣＴＵへのピクチャの区分情報と、ＣＴＵのＣＵを定義するための、ＱＴＢＴ構造などの対応する区分構造にしたがう各ＣＴＵの区分とを定義し得る。シンタックス要素は、ビデオデータのブロック（例えば、ＣＵ）についての予測および残差情報を更に定義し得る。
【００６８】
[0074]  残差情報は、例えば、量子化変換係数によって表され得る。ビデオデコーダ３００は、ブロックについての残差ブロックを再び作り出すために、ブロックの量子化変換係数を逆量子化および逆変換し得る。ビデオデコーダ３００は、ブロックについての予測ブロックを形成するために、シグナリングされた予測モード（イントラ予測またはインター予測）および関連する予測情報（例えば、インター予測のための動き情報）を使用する。ビデオデコーダ３００は次いで、元のブロックを再び作り出すために、（サンプル毎のベースで）予測ブロックと残差ブロックとを組み合わせ得る。ビデオデコーダ３００は、デブロッキングプロセスを実行することなど、追加の処理を実行して、ブロックの境界に沿った視覚的アーティファクトを低減させ得る。
【００６９】
[0075]  本開示の技術によれば、ビデオエンコーダ２００およびビデオデコーダ３００は、以下の表１に示すように、時間レイヤＩＤ値（ｔＩｄ）とともに、サイズＮの単一の１−Ｄアレイ（またはバッファ）にＡＬＦパラメータを記憶するように構成され得る。
【表１】
2022500903.tif 000010
【００７０】
[0076]  表１の例では、１−Ｄアレイの各メモリ要素は、（ｉ）ＡＬＦパラメータと、（ｉｉ）どのレイヤから対応するＡＬＦパラメータが推定されるかを示す時間レイヤＩＤ（ｔＩｄ）とを記憶する。時間レイヤ情報は、より高い時間レイヤ（たとえば、ｔＩｄ＝４）から取得されたＡＬＦパラメータが、より低い時間レイヤ（たとえば、ｔＩｄ＝３）におけるフレーム／スライスをエンコード／デコードするために使用されないことを確実にするために記憶され得る。
【００７１】
[0077]  ビデオエンコーダ２００およびビデオデコーダ３００は、時間予測のためのＡＬＦパラメータをロード、記憶、および／または使用するために、以下の技術のうちのいずれかを、単独でまたは任意の組合せで適用するように構成され得る：
１．ＡＬＦパラメータの時間予測において使用されるために、アレイは、ＢスライスまたはＰスライスのいずれかからのパラメータを記憶し得る。
２．アレイにおいて、ＡＬＦパラメータのエントリ（entry）は、ある順序で（たとえば、デコーディング順序に従うことによって）記憶され得る。Ｎ個のエントリすべてが記憶することに使用されるとき（すなわち、アレイが満杯であるとき）、１つのエントリを除去（remove）し、次いで新しいパラメータをアレイに追加することによって、新しく取得されたパラメータを記憶することができる。
ａ．一例として、これは、ＦＩＦＯ（先入れ先出し）方式で行うことができ、アレイが満杯になるとき、アレイ中の最後のエントリ（すなわち、パラメータの最も古いセット）が除去され、新しいパラメータがアレイの第１の要素に記憶される。
ｂ．別の例では、ＡＬＦパラメータは、同じ時間ＩＤ（temporal ID）を有するバッファ中のある記憶されたパラメータを置き換え、たとえば、あるパラメータは、バッファ中の最も古いパラメータであり得るか、あるいは、あまり使用されない、または他の何らかのルールが適用され得る。
３．ｐｒｅｖＩｄｘと呼ばれる非負のインデックス値は、ＡＬＦパラメータのどのセットがエンコーディング／デコーディングのためにバッファからロード／使用されるかを識別するためにシグナリングされ得る。
ａ．ｐｒｅｖＩｄｘをシグナリングするために、単進符号（unary code）などの可変長コード（variable length code）が使用され得る。ある時間的Ｉｄに対するパラメータの利用可能な総数は、記憶されたバッファ中でカウントすることができ、切り捨てられる２値化を使用して、フィルタの利用可能な総数から１を引いた数を有するｐｒｅｖＩｄｘを最大インデックスとしてシグナリングすることができる。しかしながら、切り捨てられるコーディングは、たとえば、いくつかのピクチャが送信中に失われたとき、エンコーダとデコーダとの間に不一致をもたらし得る。
ｂ．ｐｒｅｖＩｄｘは、０からＮ−１までの値をとることができる。コーディングに使用される階層フレーム構造のタイプに応じて、ｐｒｅｖＩｄｘの最大値はより小さくなり得る。
ｃ．スライス／ピクチャをコーディングするとき、時間的予測のための可能性のある候補は、アレイ中に含まれたセットをトラバース（traverse）することによって決められ得、および等しいまたはより小さいｔＩｄを有する全てまたはいくつかのパラメータセットが、有効な候補として扱われる。
ｄ．（コーディングのために使用されるＡＬＦパラメータを決定する）アレイエントリのシグナリングは、コード化されている現在のフレームの時間レイヤＩＤに依存し得る。特に、ｐｒｅｖＩｄｘは、エンコード／デコードされている現在のフレームの時間レイヤＩＤに依存して、アレイ中の異なるエントリに対応し得る。
ｉ．以下の表２に図示される例として、ｐｒｅｖＩｄｘ＝１は、コード化されている現在のフレームのｔＩｄに依存して、アレイ中の以下の２つの異なるエントリを指し得る。
１．ｐｒｅｖＩｄｘ＝１は、ｔＩｄ＝１でフレームをコーディングするときに、Ａｌｆ（Ｐ４，１）を記憶する、アレイ中の４番目のエントリに対応し、これは、時間スケーラビリティを保持するためにコーディングを可能にする第２の可能なオプションであるからであり、ここで、Ａｌｆ（Ｐ４，１）は、ｐｒｅｖＩｄｘ＝０でシグナリングされる第１の候補である。
２．ｐｒｅｖＩｄｘ＝１は、ｔＩｄ＝２でフレームをコーディングするときに、Ａｌｆ（Ｐ２，２）を記憶する、アレイ中の２番目エントリに対応し、これは、コーディングを可能にする第２の可能なオプションであるからであり、ここで、Ａｌｆ（Ｐ１，１）は、ｐｒｅｖＩｄｘ＝０に対応する第１のオプションである。
【表２】
2022500903.tif 000011
ｅ．フレーム損失（たとえば、ネットワークを通してビデオビットストリームを送るときのパケット損失による）のケースでは、デコーダは、アレイに任意のエントリを追加しないことを選んでよく、ダミー（すなわち、事前構成された）エントリを導入し得、したがって、ピクチャが失われたときでも、ダミーエントリがバッファに追加される。いずれのケースも、上述した方法が適用される限り、時間スケーラビリティは維持される。言い換えれば、より高いレベルのフレームが失われたとき（たとえば、Ｔ３）、より低いレイヤのフレームは依然としてデコード可能である（たとえば、Ｔ１およびＴ２）。
ｆ．別の例では、より低い時間ＩＤをもつピクチャまたはスライスは、より高い時間ＩＤのＡＬＦパラメータについての情報を搬送し得、このケースでは、より高い時間ＩＤをもつピクチャが失われる場合、パラメータは、より低い時間ＩＤをもつピクチャから取得されることができる。それらのパラメータはまた、より高い時間ＩＤピクチャがそのようなＡＬＦパラメータを搬送するかどうかを含み得、それらのパラメータまたはダミー（事前構成された）パラメータがバッファに追加され得る。
ｇ．別の例では、デコーダピクチャバッファ管理（ＤＰＢ）方法は、ＤＰＢ管理が失われたピクチャの処理を含むので、時間的ＡＬＦパラメータ処理に適用されることができる。
４．ＡＬＦパラメータの重要度に依存して（たとえば、重要度は、それらが使用される頻度に基づいて、またはそれらの時間レイヤ情報に基づいて測定できる）、それらの重要なＡＬＦパラメータのうちのいくつかは固定され、次のＩスライスがコード化されるまでバッファ中に保持されることができる。そのような重要度メトリックは、シグナリングｐｒｅｖＩｄｘ（たとえば、単項コーディング）のシグナリングオーバーヘッドを低減するためにエントリをランク付けし、並べ替えるために使用されることができる。
５．ＡＬＦパラメータのロードおよび記憶（バッファの管理）に関する追加の決定または制限は、（時間レイヤＩＤに加えて）他の何らかのサイド情報、またはＡＬＦパラメータとともに記憶されることができる重要度尺度に基づいて行われることができる。
６．別々のバッファは、ルーマチャネルおよびクロマチャネルを別々にコーディングするために使用されることができる。結果として、各ｓｂｕｆｆｅｒは、ルーマチャネルおよびクロマチャネルに対して別々に使用されるＡＬＦパラメータを決定するために、ｐｒｅｖＩｄｘの異なるシグナリングを有し得る。
【００７２】
[0078]  本開示は、一般に、シンタックス要素のようなある情報を「シグナリングすること」に言及し得る。「シグナリングすること（signaling）」という用語は、一般に、エンコードされたビデオデータをデコードするために使用されるシンタックス要素および／または他のデータについての値の通信を指し得る。即ち、ビデオエンコーダ２００は、ビットストリーム中でシンタックス要素についての値をシグナリングし得る。一般に、シグナリングは、ビットストリーム中で値を生成することを指す。上述されたように、ソースデバイス１０２は、実質的にリアルタイムで、または、宛先デバイス１１６による後の取り出しのために、シンタックス要素を記憶デバイス１１２に記憶させるときに起こるかもしれないような、リアルタイムではなく、ビットストリームを宛先デバイス１１６に転送してもよい。
【００７３】
[0079]  図４Ａおよび図４Ｂは、例示的な四分木二分木（ＱＴＢＴ）構造１３０と、対応するコーディングツリーユニット（ＣＴＵ）１３２とを図示する概念図である。実線は、四分木分割を表し、点線は、二分木分割を示す。二分木の各分割（すなわち、非リーフ）ノードでは、どの分割タイプ（すなわち、水平または垂直）が使用されるかを示すために１つのフラグがシグナリングされ、ここで、この例では、０が水平分割を示し、１が垂直分割を示す。四分木分割に対して、四分木ノードが等しいサイズを有する４つのサブブロックに水平および垂直にブロックを分割するので、分割タイプを示す必要はない。したがって、ＱＴＢＴ構造１３０の領域ツリーレベル（すなわち、実線）についてのシンタックス要素（分割情報など）と、ＱＴＢＴ構造１３０の予測ツリーレベル（すなわち、破線）についてのシンタックス要素（分割情報など）とを、ビデオエンコーダ２００がエンコーディングし得、ビデオデコーダ３００がデコードし得る。ＱＴＢＴ構造１３０の終端リーフノードによって表されるＣＵについての予測および変換データなどのビデオデータを、ビデオエンコーダ２００はエンコードし得、ビデオデコーダ３００はデコードし得る。
【００７４】
[0080]  概して、図４ＢのＣＴＵ１３２は、第１および第２のレベルにおけるＱＴＢＴ構造１３０のノードに対応するブロックのサイズを定義するパラメータに関連付けられ得る。これらのパラメータは、ＣＴＵサイズ（サンプル中のＣＴＵ１３２のサイズを表す）、最小四分木サイズ（ＭｉｎＱＴＳｉｚｅ、最小許容四分木リーフノードサイズを表す）、最大二分木サイズ（ＭａｘＢＴＳｉｚｅ、最大許容二分木ルートノードサイズを表す）、最大二分木深度（ＭａｘＢＴＤｅｐｔｈ、最大許容二分木深度を表す）、および最小二分木サイズ（ＭｉｎＢＴＳｉｚｅ、最小許容二分木リーフノードサイズを表す）を含み得る。
【００７５】
[0081]  ＣＴＵに対応するＱＴＢＴ構造のルートノードは、ＱＴＢＴ構造の第１のレベルで４つの子ノードを有し得、それらの各々は、四分木区分に従って区分され得る。即ち、第１のレベルのノードは、リーフノード（子ノードを有さない）であるか、または４つの子ノードを有するかのうちのいずれかである。ＱＴＢＴ構造１３０の例は、分岐のための実線を有する親ノードおよび子ノードを含むようなノードを表す。第１のレベルのノードが最大許容二分木ルートノードサイズ（ＭａｘＢＴＳｉｚｅ）よりも大きくない場合、それらノードは、それぞれの二分木によって更に区分されることができる。分割に起因するノードが、最小許容二分木リーフノードサイズ（ＭｉｎＢＴＳｉｚｅ）または最大許容二分木深度（ＭａｘＢＴＤｅｐｔｈ）に達するまで、１つのノードの二分木分割を繰り返すことができる。ＱＴＢＴ構造１３０の例は、分岐のための破線を有するノードを表す。二分木リーフノードは、コーディングユニット（ＣＵ）と呼ばれ、これは、さらなる分割なしに、予測（例えば、イントラピクチャ予測またはインターピクチャ予測）および変換のために使用される。上述されたように、ＣＵはまた、「ビデオブロック」または「ブロック」と呼ばれ得る。
【００７６】
[0082]  ＱＴＢＴ区分構造の一例では、ＣＴＵサイズは、１２８×１２８（ルーマサンプルおよび２つの対応する６４×６４クロマサンプル）として設定され、ＭｉｎＱＴＳｉｚｅは、１６×１６として設定され、ＭａｘＢＴＳｉｚｅは、６４×６４として設定され、（幅と高さとの両方についての）ＭｉｎＢＴＳｉｚｅは、４として設定され、ＭａｘＢＴＤｅｐｔｈは、４として設定される。四分木リーフノードを生成するために、最初に四分木分割がＣＴＵに適用される。四分木リーフノードは、１６×１６（即ち、ＭｉｎＱＴＳｉｚｅ）から１２８×１２８（即ち、ＣＴＵサイズ）までのサイズを有し得る。リーフ四分木ノードが１２８×１２８である場合、サイズがＭａｘＢＴＳｉｚｅ（即ち、この例では、６４×６４）を上回るので、二分木によって更に分割されないであろう。そうでない場合、リーフ四分木ノードは、二分木によって更に区分されるであろう。従って、四分木リーフノードはまた、二分木のためのルートノードであり、０の二分木深度を有する。二分木深度がＭａｘＢＴＤｅｐｔｈ（この例では、４）に達するとき、更なる分割は許可されない。二分木ノードの幅がＭｉｎＢＴＳｉｚｅ（この例では４）に等しいとき、それはさらなる水平分割が許可されないことを示唆する。同様に、ＭｉｎＢＴＳｉｚｅに高さが等しい二分木ノードは、その二分木ノードに対してさらなる垂直分割が許可されないことを示唆する。上述したように、二分木のリーフノードはＣＵと呼ばれ、さらなる区分なく予測および変換にしたがってさらに処理される。
【００７７】
[0083]  図５は、本開示の技術を実行し得る実例的なビデオエンコーダ２００を図示するブロック図である。図５は、説明の目的のために提供されており、本開示において広く例示および説明されているような技術の限定と見なすべきではない。説明を目的として、本開示は、ＨＥＶＣビデオコーディング規格、および開発中のＨ．２６６ビデオコーディング規格などのビデオコーディング規格のコンテキストでビデオエンコーダ２００を説明する。しかしながら、本開示の技術は、これらのビデオコーディング規格に限定されず、概してビデオエンコーディングおよびデコーディングに適用可能である。
【００７８】
[0084]  図５の例では、ビデオエンコーダ２００は、ビデオデータメモリ２３０、モード選択ユニット２０２、残差生成ユニット２０４、変換処理ユニット２０６、量子化ユニット２０８、逆量子化ユニット２１０、逆変換処理ユニット２１２、再構築ユニット２１４、フィルタユニット（filter unit）２１６、デコードされたピクチャバッファ（ＤＰＢ：decoded picture buffer）２１８、およびエントロピーエンコーディングユニット２２０を含む。ビデオデータメモリ２３０、モード選択ユニット２０２、残差生成ユニット２０４、変換処理ユニット２０６、量子化ユニット２０８、逆量子化ユニット２１０、逆変換処理ユニット２１２、再構築ユニット２１４、フィルタユニット２１６、ＤＰＢ２１８、およびエントロピーエンコーディングユニット２２０のうちのいずれかまたはすべては、１つ以上のプロセッサまたは処理回路において実現され得る。さらに、ビデオエンコーダ２００は、これらおよび他の機能を実行するための追加または代替のプロセッサまたは処理回路を含み得る。
【００７９】
[0085]  ビデオデータメモリ２３０は、ビデオエンコーダ２００のコンポーネントによってエンコードされることになるビデオデータを記憶し得る。ビデオエンコーダ２００は、例えば、ビデオソース１０４（図３）から、ビデオデータメモリ２３０中に記憶されたビデオデータを受信し得る。ＤＰＢ２１８は、ビデオエンコーダ２００による後続のビデオデータの予測において使用するための参照ビデオデータを記憶する参照ピクチャメモリとして機能し得る。ビデオデータメモリ２３０およびＤＰＢ２１８は、同期動的ランダムアクセスメモリ（ＳＤＲＡＭ）、磁気ＲＡＭ（ＭＲＡＭ）、抵抗性ＲＡＭ（ＲＲＡＭ（登録商標））を含む、ＤＲＡＭまたは他のタイプのメモリデバイスのような、様々なメモリデバイスのうちのいずれかによって形成され得る。ビデオデータメモリ２３０およびＤＰＢ２１８は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、図示されているように、ビデオデータメモリ２３０は、ビデオエンコーダ２００の他のコンポーネントと共にオンチップであり得るか、またはそれらのコンポーネントに対してオフチップであり得る。
【００８０】
[0086]  この開示では、ビデオデータメモリ２３０への言及は、そのように明記されていない限り、ビデオエンコーダ２００の内部にあるメモリに、またはそのように明記されていない限り、ビデオエンコーダ２００の外部にあるメモリに、限定されると解釈されるべきではない。むしろ、ビデオデータメモリ２３０への言及は、ビデオエンコーダ２００がエンコーディングのために受信するビデオデータ（例えば、エンコードされるべき現在ブロックについてのビデオデータ）を記憶するメモリへの言及として理解されるべきである。図３のメモリ１０６はまた、ビデオエンコーダ２００の様々なユニットからの出力の一時記憶を提供し得る。
【００８１】
[0087]  図５の様々なユニットは、ビデオエンコーダ２００によって実行される動作の理解を助けるために図示される。それらユニットは、固定機能回路、プログラマブル回路、またはそれらの組み合わせとして実現され得る。固定機能回路は、特定の機能性を提供する回路を指し、実行されることができる動作に予め設定される。プログラマブル回路は、様々なタスクを実行するようにプログラムされることができる回路（circuitry）を指し、実行されることができる動作において柔軟な機能性を提供する。例えば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義された方法でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、（例えば、パラメータを受け取るまたはパラメータを出力するために）ソフトウェア命令を実行し得るが、固定機能回路が実行する動作のタイプは、一般に不変である。いくつかの例では、ユニットの１つ以上は、別個の回路ブロック（固定機能またはプログラマブル）であり得、いくつかの例では、１つ以上のユニットは、集積回路であり得る。
【００８２】
[0088]  ビデオエンコーダ２００は、プログラマブル回路から形成された、算術論理ユニット（ＡＬＵ）、初等関数ユニット（ＥＦＵ）、デジタル回路、アナログ回路、および／またはプログラマブルコアを含み得る。ビデオエンコーダ２００の動作がプログラマブル回路によって実行されるソフトウェアを使用して実行される例では、メモリ１０６（図３）はビデオエンコーダ２００が受信し実行するソフトウェアのオブジェクトコードを記憶し得、またはビデオエンコーダ２００内の別のメモリ（図示せず）がそのような命令を記憶し得る。
【００８３】
[0089]  ビデオデータメモリ２３０は、受信されたビデオデータを記憶するように構成される。ビデオエンコーダ２００は、ビデオデータメモリ２３０からビデオデータのピクチャを取り出し、残差生成ユニット２０４およびモード選択ユニット２０２にビデオデータを提供し得る。ビデオデータメモリ２３０中のビデオデータは、エンコードされるべき生のビデオデータであり得る。
【００８４】
[0090]  モード選択ユニット２０２は、動き推定ユニット２２２、動き補償ユニット２２４、およびイントラ予測ユニット２２６を含む。モード選択ユニット２０２は、他の予測モードに従ってビデオ予測を実行するための追加の機能ユニットを含み得る。例として、モード選択ユニット２０２は、パレットユニット、（動き推定ユニット２２２および／または動き補償ユニット２２４の一部であり得る）イントラブロックコピーユニット、アフィンユニット、線形モデル（ＬＭ：linear model）ユニット、またはこれらに類するものを含み得る。
【００８５】
[0091]  モード選択ユニット２０２は、一般に、エンコーディングパラメータの組み合わせをテストするために複数のエンコーディングパスを調整し、結果として、そのような組み合わせのためのレート歪み値（rate-distortion value）をもたらす。エンコーディングパラメータは、ＣＵへのＣＴＵの区分、ＣＵについての予測モード、ＣＵの残差データについての変換タイプ、ＣＵの残差データについての量子化パラメータ、等を含み得る。モード選択ユニット２０２は、最終的に、他のテストされた組合せよりも良好なレート歪み値を有するエンコーディングパラメータの組合せを選択し得る。
【００８６】
[0092]  ビデオエンコーダ２００は、ビデオデータメモリ２３０から取り出されたピクチャを一連のＣＴＵに区分し、スライス内に１つ以上のＣＴＵをカプセル化し得る。モード選択ユニット２０２は、上述したＨＥＶＣの四分木構造またはＱＴＢＴ構造などのツリー構造にしたがって、ピクチャのＣＴＵを分割し得る。上述したように、ビデオエンコーダ２００は、ツリー構造にしたがってＣＴＵを分割することから１つ以上のＣＵを形成し得る。そのようなＣＵは、一般に「ビデオブロック」または「ブロック」とも呼ばれ得る。
【００８７】
[0093]  一般に、モード選択ユニット２０２はまた、現在ブロック（例えば、現在ＣＵ、またはＨＥＶＣでは、ＰＵとＴＵとの重複部分）についての予測ブロックを生成するために、そのコンポーネント（例えば、動き推定ユニット２２２、動き補償ユニット２２４、およびイントラ予測ユニット２２６）を制御する。現在ブロックのインター予測に対して、動き推定ユニット２２２は、１つ以上の参照ピクチャ（例えば、ＤＰＢ２１８中に記憶された１つ以上の以前にコード化されたピクチャ）中の１つ以上の密接に一致する参照ブロックを識別するために動きサーチを実行し得る。特に、動き推定ユニット２２２は、例えば、絶対差分の和（ＳＡＤ）、二乗差分の和（ＳＳＤ）、平均絶対差分（ＭＡＤ）、平均二乗差分（ＭＳＤ）、または、これらに類するものにしたがって、潜在的参照ブロックが現在ブロックにどれだけ類似しているかを表す値を計算し得る。動き推定ユニット２２２は、一般に、現在ブロックと考慮されている参照ブロックとの間のサンプル毎の差分を使用してこれらの計算を実行し得る。動き推定ユニット２２２は、現在ブロックに最も密接に一致する参照ブロックを示す、これらの計算の結果として生じる最低値を有する参照ブロックを識別し得る。
【００８８】
[0094]  動き推定ユニット２２２は、現在ピクチャ中の現在ブロックの位置に対する参照ピクチャ中の参照ブロックの位置を定義する１つ以上の動きベクトル（ＭＶ：motion vector）を形成し得る。動き推定ユニット２２２は次いで、動き補償ユニット２２４に動きベクトルを提供し得る。例えば、単方向インター予測に対して、動き推定ユニット２２２は、単一の動きベクトルを提供し得る一方で、双方向インター予測に対して、動き推定ユニット２２２は、２つの動きベクトルを提供し得る。動き補償ユニット２２４は次いで、動きベクトルを使用して予測ブロックを生成し得る。例えば、動き補償ユニット２２４は、動きベクトルを使用して参照ブロックのデータを取り出し得る。別の例として、動きベクトルがわずかなサンプル精度を有する場合、動き補償ユニット２２４は、１つ以上の補間フィルタにしたがって、予測ブロックに対する値を補間し得る。さらに、双方向インター予測に対して、動き補償ユニット２２４は、それぞれの動きベクトルによって識別された２つの参照ブロックに対するデータを取り出し、例えば、サンプル毎の平均化または重み付き平均化を通して、取り出されたデータを組み合わせ得る。
【００８９】
[0095]  別の例として、イントラ予測、またはイントラ予測コーディングに対して、イントラ予測ユニット２２６は、現在ブロックに近隣するサンプルから予測ブロックを生成し得る。例えば、方向性モードに対して、イントラ予測ユニット２２６は、一般的に、現在ブロックに渡る定義された方向で、隣接するサンプルの値を数学的に組み合わせ、これらの計算された値を格納して、予測ブロックを作り出すことができる。別の例として、ＤＣモードに対して、イントラ予測ユニット２２６は、現在ブロックに対する隣接サンプルの平均を計算し、予測ブロックの各サンプルについてこの結果として得られる平均を含むように予測ブロックを生成し得る。
【００９０】
[0096]  モード選択ユニット２０２は、予測ブロックを残差生成ユニット２０４に提供する。残差生成ユニット２０４は、ビデオデータメモリ２３０から現在ブロックの生のコード化されていないバージョンを受信し、モード選択ユニット２０２から予測ブロックを受信する。残差生成ユニット２０４は、現在ブロックと予測ブロックとの間のサンプル毎の差分を計算する。結果として生じるサンプル毎の差分は、現在ブロックについての残差ブロックを定義する。いくつかの例では、残差生成ユニット２０４はまた、残差ブロック中のサンプル値間の差分を決定し、残差差分パルスコード変調（ＲＤＰＣＭ：residual differential pulse code modulation）を使用して、残差ブロックを生成し得る。いくつかの例では、残差生成ユニット２０４は、バイナリ減算を実行する１つ以上の減算器回路を使用して形成され得る。
【００９１】
[0097]  モード選択ユニット２０２がＣＵをＰＵに区分する例では、各ＰＵは、ルーマ予測ユニットおよび対応するクロマ予測ユニットに関連付けられ得る。ビデオエンコーダ２００およびビデオデコーダ３００は、様々なサイズを有するＰＵをサポートし得る。上述のように、ＣＵのサイズは、ＣＵのルーマコーディングブロックのサイズを指し得、ＰＵのサイズは、ＰＵのルーマ予測ユニットのサイズを指し得る。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオエンコーダ２００は、イントラ予測に対して、２Ｎ×２ＮまたはＮ×ＮというＰＵサイズを、インター予測に対しては、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、または同様のものの対称ＰＵサイズをサポートし得る。ビデオエンコーダ２００およびビデオデコーダ３００はまた、インター予測に対して、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズについての非対称区分をサポートし得る。
【００９２】
[0098]  モード選択ユニット２０２がＣＵをＰＵに更に区分しない例では、各ＣＵは、ルーマコーディングブロックおよび対応するクロマコーディングブロックに関連付けられ得る。上記のように、ＣＵのサイズは、ＣＵのルーマコーディングブロックのサイズを指し得る。ビデオエンコーダ２００およびビデオデコーダ３００は、２Ｎ×２Ｎ、２Ｎ×Ｎ、またはＮ×２ＮのＣＵサイズをサポートし得る。
【００９３】
[0099]  イントラブロックコピーモードコーディング、アフィンモードコーディング、および線形モデル（ＬＭ）モードコーディングなどの他のビデオコーディング技術に対して、いくつかの例として、モード選択ユニット２０２は、コーディング技術に関連するそれぞれのユニットを介して、エンコードされている現在ブロックについての予測ブロックを生成する。パレットモードコーディングなどのいくつかの例では、モード選択ユニット２０２は、予測ブロックを生成せず、代わりに、選択されたパレットに基づいてブロックを再構築する方法を示すシンタックス要素を生成し得る。そのようなモードでは、モード選択ユニット２０２は、エンコードされるように、エントロピーエンコーディングユニット２２０にこれらのシンタックス要素を提供し得る。
【００９４】
[0100]  上述されたように、残差生成ユニット２０４は、現在ブロックと対応する予測ブロックとについてのビデオデータを受信する。残差生成ユニット２０４は次いで、現在ブロックについての残差ブロックを生成する。残差ブロックを生成するために、残差生成ユニット２０４は、予測ブロックと現在ブロックとの間のサンプル毎の差分を計算する。
【００９５】
[0101]  変換処理ユニット２０６は、変換係数のブロック（ここでは「変換係数ブロック（transform coefficient block）」と呼ばれる）を生成するために、残差ブロックに１つ以上の変換を適用する。変換処理ユニット２０６は、変換係数ブロックを形成するために、残差ブロックに様々な変換を適用し得る。例えば、変換処理ユニット２０６は、残差ブロックに、離散コサイン変換（ＤＣＴ）、方向性変換、カルーネンレーベ変換（ＫＬＴ）、または概念的に類似した変換を適用し得る。いくつかの例では、変換処理ユニット２０６は、残差ブロックに複数の変換、例えば、回転変換などの１次変換および２次変換を実行し得る。いくつかの例では、変換処理ユニット２０６は、残差ブロックに変換を適用しない。
【００９６】
[0102]  量子化ユニット２０８は、量子化変換係数ブロックを作り出すために、変換係数ブロック中の変換係数を量子化し得る。量子化ユニット２０８は、現在ブロックに関連付けられた量子化パラメータ（ＱＰ：quantization parameter）値にしたがって変換係数ブロックの変換係数を量子化し得る。ビデオエンコーダ２０２は（例えば、モード選択ユニット２０２を介して）、ＣＵに関連付けられたＱＰ値を調整することによって、現在ブロックに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。量子化は、情報の損失をもたらし得、このことから、量子化変換係数は、変換処理ユニット２０６によって作り出された元の変換係数よりも低い精度を有し得る。
【００９７】
[0103]  逆量子化ユニット２１０および逆変換処理ユニット２１２は、変換係数ブロックから残差ブロックを再構築するために、それぞれ、量子化変換係数ブロックに逆量子化および逆変換を適用し得る。再構築ユニット２１４は、再構築された残差ブロックと、モード選択ユニット２０２によって生成された予測ブロックとに基づいて、（潜在的にある程度の歪みを有するが）現在ブロックに対応する再構築されたブロックを作り出し得る。例えば、再構築ユニット２１４は、再構築されたブロックを作り出すために、モード選択ユニット２０２によって生成された予測ブロックからの対応するサンプルに再構築された残差ブロックのサンプルを追加し得る。
【００９８】
[0104]  フィルタユニット２１６は、再構築されたブロックに対して１つ以上のフィルタ動作を実行し得る。例えば、フィルタユニット２１６は、デブロッキング動作を実行して、ＣＵのエッジに沿ったブロッキネスアーティファクト（blockiness artifact）を低減させ得る。いくつかの例では、フィルタユニット２１６の動作は、スキップされ得る。本開示の技術によれば、フィルタユニット２１６は、適応ループフィルタ（ＡＬＦ）パラメータと、関連する時間レイヤ識別子（ＩＤ）値とを含むアレイを維持し得る。アレイは、Ｎ個の要素の予め定められたサイズを有することができ、Ｎは非負の整数値である。アレイは、上述の表１の例に準拠し得る。
【００９９】
[0105]  このようにして、現在時間レイヤ（current temporal layer）の現在ピクチャのビデオデータのデコードされたブロックのフィルタリングを実行するとき、フィルタユニット２１６は、同じまたはより低い時間レイヤからのものである、アレイからのＡＬＦパラメータを使用し得る。特に、フィルタユニット２１６は、アレイ要素の時間レイヤＩＤを現在ピクチャのための現在時間レイヤＩＤ値（current temporal layer ID value）と比較し、現在ピクチャのデコードされたブロックをフィルタリングするために使用されるべき現在時間レイヤＩＤ値以下である時間レイヤＩＤを有するＡＬＦパラメータのみを選択し得る。
【０１００】
[0106]  フィルタユニット２１６は、デコーディング順序または他の予め定められた順序でアレイにＡＬＦパラメータを記憶し得る。したがって、フィルタユニット２１６は、先入れ先出し（ＦＩＦＯ）方式でアレイ中の既存のＡＬＦパラメータを置き換えるか、またはアレイからの特定の時間レイヤにおけるＡＬＦパラメータの除去を優先させ得る。
【０１０１】
[0107]  フィルタユニット２１６は、現在ピクチャのために使用されるべきアレイ中のあるＡＬＦパラメータを決定し、現在ピクチャをフィルタリングするときにＡＬＦパラメータのうちのどれが使用されるかを表す値をシグナリングし得る。フィルタユニット２１６は、これらの値をエントロピーエンコーディングユニット２２０に提供することができ、エントロピーエンコーディングユニット２２０は、単進符号を使用して値をエンコーディングすることができる。
【０１０２】
[0108]  ビデオエンコーダ２００は、ＤＰＢ２１８中に再構築されたブロックを記憶する。例えば、フィルタユニット２１６の動作が必要とされない例では、再構築ユニット２１４は、再構築されたブロックをＤＰＢ２１８に記憶し得る。フィルタユニット２１６の動作が必要とされる例では、フィルタユニット２１６が、フィルタリングされた再構築されたブロックをＤＰＢ２１８に記憶し得る。動き推定ユニット２２２および動き補償ユニット２２４は、後にエンコードされるピクチャのブロックをインター予測するために、再構築された（および潜在的にフィルタリングされた）ブロックから形成された参照ピクチャをＤＰＢ２１８から取り出し得る。加えて、イントラ予測ユニット２２６は、現在ピクチャ中の他のブロックをイントラ予測するために、現在ピクチャのＤＰＢ２１８中の再構築されたブロックを使用し得る。
【０１０３】
[0109]  一般に、エントロピーエンコーディングユニット２２０は、ビデオエンコーダ２００の他の機能的コンポーネントから受信されたシンタックス要素をエントロピーエンコードし得る。例えば、エントロピーエンコーディングユニット２２０は、量子化ユニット２０８からの量子化変換係数ブロックをエントロピーエンコードし得る。別の例として、エントロピーエンコーディングユニット２２０は、モード選択ユニット２０２からの予測シンタックス要素（例えば、インター予測のための動き情報またはイントラ予測のためのイントラモード情報）をエントロピーエンコードし得る。エントロピーエンコーディングユニット２２０は、エントロピーエンコードされたデータを生成するために、ビデオデータの別の例であるシンタックス要素に対して１つ以上のエントロピーエンコーディング動作を実行し得る。例えば、エントロピーエンコーディングユニット２２０は、データに、コンテキスト適応可変長コーディング（ＣＡＶＬＣ）動作、ＣＡＢＡＣ動作、可変対可変（Ｖ２Ｖ）長コーディング動作、シンタックスベースのコンテキスト適応２値算術コードディング（ＳＢＡＣ）動作、確率区間区分化エントロピー（ＰＩＰＥ）コーディング動作、指数ゴロムエンコーディング動作、または、別のタイプのエントロピーエンコーディング動作を実行してもよい。
いくつかの例では、エントロピーエンコーディングユニット２２０は、シンタックス要素がエントロピーエンコードされないバイパスモードで動作し得る。
【０１０４】
[0110]  ビデオエンコーダ２００は、スライスまたはピクチャのブロックを再構築するために必要とされるエントロピーエンコードされたシンタックス要素を含むビットストリームを出力し得る。特に、エントロピーエンコーディングユニット２２０はビットストリームを出力し得る。
【０１０５】
[0111]    上述された動作は、ブロックに関して説明される。そのような説明は、ルーマコーディングブロックおよび／またはクロマコーディングブロックのための動作であると理解されるべきである。上述のように、いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、ＣＵのルーマコンポーネントおよびクロマコンポーネントである。いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、ＰＵのルーマコンポーネントおよびクロマコンポーネントである。
【０１０６】
[0112]  いくつかの例では、ルーマコーディングブロックに関して実行される動作は、クロマコーディングブロックのために繰り返される必要はない。１つの例として、ルーマコーディングブロックのための動きベクトル（ＭＶ）および参照ピクチャを識別するための動作は、クロマブロックのためのＭＶおよび参照ピクチャを識別するために繰り返される必要はない。むしろ、ルーマコーディングブロックのためのＭＶは、クロマブロックのためのＭＶを決定するためにスケーリングされ得、参照ピクチャは同じであり得る。別の例として、イントラ予測プロセスは、ルーマコーディングブロックおよびクロマコーディングブロックについて同じであり得る。
【０１０７】
[0113]  ビデオエンコーダ２００は、ビデオデータを記憶するように構成されたメモリと、回路内で実現される１つ以上の処理ユニットとを含む、ビデオデータをエンコードするように構成されたデバイスの一例を表し、１つ以上の処理ユニットは、適応ループフィルタ（ＡＬＦ）パラメータのセットを、Ｎ個のメモリ要素の予め定められたサイズを有する１次元アレイに記憶し、Ｎは正の整数値であり、アレイのメモリ要素のうちの１つ以上に、対応するＡＬＦパラメータと、対応するＡＬＦパラメータが推定される時間レイヤを示す時間レイヤ識別子（ＩＤ）値との両方を記憶することを備え、ビデオデータの１つ以上のブロックをデコードし、１次元アレイのＡＬＦパラメータを使用して、１つ以上のブロックをフィルタリングするように構成される。
【０１０８】
[0114]  図６は、本開示の技術を実行し得る例示的なビデオデコーダ３００を図示するブロック図である。図６は、説明を目的で提供されており、本開示で広く実証され、説明されているような技術に限定されない。説明を目的として、本開示は、ＪＥＭ、ＶＶＣ、およびＨＥＶＣの技術にしたがってビデオデコーダ３００を説明する。しかしながら、本開示の技術は、他のビデオコーディング規格に構成されたビデオコーディングデバイスによって実行され得る。
【０１０９】
[0115]  図６の例では、ビデオデコーダ３００は、コード化されたピクチャバッファ（ＣＰＢ：coded picture buffer）メモリ３２０、エントロピーデコーディングユニット３０２、予測処理ユニット３０４、逆量子化ユニット３０６、逆変換処理ユニット３０８、再構築ユニット３１０、フィルタユニット３１２、デコードされたピクチャバッファ（ＤＰＢ：decoded picture buffer）３１４を含む。予測処理ユニット３０４は、動き補償ユニット３１６およびイントラ予測ユニット３１８を含む。予測処理ユニット３０４は、他の予測モードに従って予測を実行するための追加のユニットを含み得る。例として、予測処理ユニット３０４は、パレットユニット、（動き補償ユニット３１６の一部を形成し得る）イントラブロックコピーユニット、アフィンユニット、線形モデル（ＬＭ）ユニット、またはこれらに類するものを含み得る。他の例では、ビデオデコーダ３００は、より多い、より少ない、または異なる機能的コンポーネントを含み得る。
【０１１０】
[0116]  ＣＰＢメモリ３２０は、ビデオデコーダ３００のコンポーネントによってデコードされることになる、エンコードされたビデオビットストリームなどのビデオデータを記憶し得る。ＣＰＢメモリ３２０に記憶されたビデオデータは、例えば、コンピュータ読取可能媒体１１０（図３）から取得され得る。ＣＰＢメモリ３２０は、エンコードされたビデオビットストリームからのエンコードされたビデオデータ（例えば、シンタックス要素）を記憶するＣＰＢを含み得る。また、ＣＰＢメモリ３２０は、ビデオデコーダ３００の様々なユニットからの出力を表す一時データなど、コード化されたピクチャのシンタックス要素以外のビデオデータを記憶し得る。ＤＰＢ３１４は、一般に、エンコードされたビデオビットストリームの後続のデータまたはピクチャをデコードするときに、ビデオデコーダ３００が参照ビデオデータとして出力および／または使用し得るデコードされたピクチャを記憶する。ＣＰＢメモリ３２０およびＤＰＢ３１４は、同期動的ランダムアクセスメモリ（ＳＤＲＡＭ）を含むＤＲＡＭ、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのうちのいずれかによって形成され得る。ＣＰＢメモリ３２０およびＤＰＢ３１４は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ＣＰＢメモリ３２０は、ビデオデコーダ３００の他のコンポーネントとともにオンチップであり得るか、これらのコンポーネント対してオフチップであり得る。
【０１１１】
[0117]  追加または代替として、いくつかの例では、ビデオデコーダ３００は、メモリ１２０（図３）からコード化されたビデオデータを取り出し得る。すなわち、メモリ１２０は、ＣＰＢメモリ３２０を用いて上述したようにデータを記憶し得る。同様に、メモリ１２０は、ビデオデコーダ３００の処理回路によって実行されることになるソフトウェアにおいてビデオデコーダ３００の機能性のうちのいくつかまたは全てが実現されるとき、ビデオデコーダ３００によって実行されることになる命令を記憶し得る。
【０１１２】
[0118]  図６に示された様々なユニットは、ビデオデコーダ３００によって実行される動作の理解を助けるために図示される。それらユニットは、固定機能回路、プログラマブル回路、またはそれらの組み合わせとして実現され得る。図５と同様に、固定機能回路は、特定の機能性を提供する回路を指し、実行されることができる動作に予め設定される。プログラマブル回路は、様々なタスクを実行するようにプログラムされることができる回路を指し、実行されることができる動作において柔軟な機能性を提供する。例えば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義された方法でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、（例えば、パラメータを受け取るまたはパラメータを出力するために）ソフトウェア命令を実行し得るが、固定機能回路が実行する動作のタイプは、一般に不変である。いくつかの例では、ユニットのうちの１つ以上は、別個の回路ブロック（固定機能またはプログラマブル）であり得、いくつかの例では、１つ以上のユニットは、集積回路であり得る。
【０１１３】
[0119]  ビデオデコーダ３００は、プログラマブル回路から形成された、ＡＬＵ、ＥＦＵ、デジタル回路、アナログ回路、および／またはプログラマブルコアを含み得る。ビデオデコーダ３００の動作がプログラマブル回路上で実行するソフトウェアによって実行される例では、オンチップまたはオフチップメモリが、ビデオデコーダ３００が受信および実行するソフトウェアの命令（例えば、オブジェクトコード）を記憶し得る。
【０１１４】
[0120]  エントロピーデコーディングユニット３０２は、ＣＰＢからエンコードされたビデオデータを受信し、シンタックス要素を再び作り出すためにビデオデータをエントロピーデコードし得る。予測処理ユニット３０４、逆量子化ユニット３０６、逆変換処理ユニット３０８、再構築ユニット３１０、およびフィルタユニット３１２は、ビットストリームから抽出されたシンタックス要素に基づいて、デコードされたビデオデータを生成し得る。
【０１１５】
[0121]  一般に、ビデオデコーダ３００は、ブロック毎のベースでピクチャを再構築する。ビデオデコーダ３００は、各ブロックに対して個々に再構築動作を実行し得る（ここで、現在再構築されている、即ち、デコードされているブロックは、「現在ブロック」と呼ばれ得る）。
【０１１６】
[0122]  エントロピーデコーディングユニット３０２は、量子化変換係数ブロックの量子化変換係数を定義するシンタックス要素、並びに量子化パラメータ（ＱＰ）および／または変換モード表示などの変換情報をエントロピーデコードし得る。逆量子化ユニット３０６は、量子化変換係数ブロックに関連付けられたＱＰを使用して、量子化の程度を、そして、同様に逆量子化ユニット３０６が適用する逆量子化の程度を決定し得る。逆量子化ユニット３０６は、例えば、ビット単位の左シフト演算を実行して、量子化変換係数を逆量子化し得る。逆量子化ユニット３０６は、それによって、変換係数を含む変換係数ブロックを形成し得る。
【０１１７】
[0123]  逆量子化ユニット３０６が変換係数ブロックを形成した後に、逆変換処理ユニット３０８は、現在ブロックに関連付けられた残差ブロックを生成するために、変換係数ブロックに１つ以上の逆変換を適用し得る。例えば、逆変換処理ユニット３０８は、変換係数ブロックに逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ）、逆回転変換、逆方向変換、または別の逆変換を適用し得る。
【０１１８】
[0124]  更に、予測処理ユニット３０４は、エントロピーデコーディングユニット３０２によってエントロピーデコードされた予測情報シンタックス要素に従って予測ブロックを生成する。例えば、現在ブロックがインター予測されることを予測情報シンタックス要素が示す場合、動き補償ユニット３１６は、予測ブロックを生成し得る。このケースでは、予測情報シンタックス要素は、参照ブロックを取り出すべきＤＰＢ３１４中の参照ピクチャとともに、現在ピクチャ中の現在ブロックのロケーションに対する、参照ピクチャ中の参照ブロックのロケーションを識別する動きベクトルを示し得る。動き補償ユニット３１６は、一般に、動き補償ユニット２２４（図５）に関して説明されたのと実質的に同様の方法でインター予測プロセスを実行し得る。
【０１１９】
[0125]  別の例として、現在ブロックがイントラ予測されることを予測情報シンタックス要素が示す場合、イントラ予測ユニット３１８は、予測情報シンタックス要素によって示されるイントラ予測モードに従って予測ブロックを生成し得る。この場合も、イントラ予測ユニット３１８は、一般に、イントラ予測ユニット２２６（図５）に関して説明されたのと実質的に同様の方法でイントラ予測プロセスを実行し得る。イントラ予測ユニット３１８は、ＤＰＢ３１４から現在ブロックに近隣するサンプルのデータを取り出し得る。
【０１２０】
[0126]  再構築ユニット３１０は、予測ブロックおよび残差ブロックを使用して現在ブロックを再構築し得る。例えば、再構築ユニット３１０は、現在ブロックを再構築するために、予測ブロックの対応するサンプルに残差ブロックのサンプルを追加し得る。
【０１２１】
[0127]  フィルタユニット３１２は、再構築されたブロックに対して１つ以上のフィルタ動作を実行し得る。例えば、フィルタユニット３１２は、デブロッキング動作を実行して、再構築されたブロックのエッジに沿ったブロッキネスアーティファクトを低減させ得る。フィルタユニット３１２の動作は、必ずしも全ての例において実行されるわけではない。本開示の技術によれば、フィルタユニット３１２は、適応ループフィルタ（ＡＬＦ）パラメータと、関連する時間レイヤ識別子（ＩＤ）値とを含むアレイを維持し得る。アレイは、Ｎ個の要素の予め定められたサイズを有することができ、Ｎは非負の整数値である。アレイは、上述の表１の例に準拠し得る。
【０１２２】
[0128]  このようにして、現在時間レイヤの現在ピクチャのビデオデータのデコードされたブロックのフィルタリングを実行するとき、フィルタユニット３１２は、同じまたはより低い時間レイヤからのものである、アレイからのＡＬＦパラメータを使用し得る。特に、フィルタユニット３１２は、アレイ要素の時間レイヤＩＤを現在ピクチャのための現在時間レイヤＩＤ値と比較し、現在ピクチャのデコードされたブロックをフィルタリングするために使用されるべき現在時間レイヤＩＤ値以下である時間レイヤＩＤを有するＡＬＦパラメータのみを選択し得る。
【０１２３】
[0129]  フィルタユニット３１２は、デコーディング順序または他の予め定められた順序でアレイにＡＬＦパラメータを記憶し得る。したがって、フィルタユニット３１２は、先入れ先出し（ＦＩＦＯ）方式でアレイ中の既存のＡＬＦパラメータを置き換えるか、またはアレイからの特定の時間レイヤにおけるＡＬＦパラメータの除去を優先させ得る。
【０１２４】
[0130]  いくつかの例では、エントロピーデコーディングユニット３０２は、現在ピクチャをフィルタリングするときにどのＡＬＦパラメータが使用されるべきかを表す値（たとえば、単進符号化値）をエントロピーデコードし得る。エントロピーデコーディングユニット３０２は、これらの値をフィルタユニット３１２に提供することができ、フィルタユニット２１０は、値から現在ピクチャに使用されるべきアレイ中のＡＬＦパラメータを決定することができる。
【０１２５】
[0131]  ビデオデコーダ３００は、ＤＰＢ３１４中にフィルタリングされた、再構築されたブロックを記憶し得る。上述されたように、ＤＰＢ３１４は、予測処理ユニット３０４に、イントラ予測のための現在ピクチャと後続の動き補償のための以前にデコードされたピクチャとのサンプルなどの参照情報を提供し得る。さらに、ビデオデコーダ３００は、図３のディスプレイデバイス１１８などのディスプレイデバイス上での後続の提示のために、デコードされたピクチャをＤＰＢから出力し得る。
【０１２６】
[0132]  このようにして、ビデオデコーダ３００は、ビデオデータを記憶するように構成されたメモリと、回路中で実現される１つ以上の処理ユニットとを含むビデオデコーディングデバイスの例を表し、１つ以上の処理ユニットは、適応ループフィルタ（ＡＬＦ）パラメータのセットを、Ｎ個のメモリ要素の予め定められたサイズを有する１次元アレイに記憶し、Ｎは正の整数値であり、アレイのメモリ要素のうちの１つ以上に、対応するＡＬＦパラメータと、対応するＡＬＦパラメータが推定される時間レイヤを示す時間レイヤ識別子（ＩＤ）値との両方を記憶することを備え、ビデオデータの１つ以上のブロックをデコードし、１次元アレイのＡＬＦパラメータを使用して、１つ以上のブロックをフィルタリングするように構成される。
【０１２７】
[0133]  図７は、この開示の技術にしたがった、ビデオデータをデコーディングおよびフィルタリングする例示的な方法を図示するフローチャートである。図７は、説明の目的のために、図６のビデオデコーダ３００に関連して説明される。しかしながら、他のビデオコーディングデバイスがこの方法または類似の方法を実行するように構成され得ることを理解すべきである。たとえば、ビデオエンコーダ２００は、ビデオデータのブロックをデコードする前に、ビデオデータのブロックをエンコードすることを含む同様の方法を実行し得、デコーディングおよびフィルタリングは、ビデオエンコーダ２００の動き補償ユニット２２４、イントラ予測ユニット２２６、逆量子化ユニット２１０、逆変換処理ユニット２１２、再構築ユニット２１４、およびフィルタユニット２１６によって実行される。
【０１２８】
[0134]  最初に、ビデオデコーダ３００は、Ｎ個の要素のアレイを例示し得（３５０）、ここで、Ｎは非負の整数値である。ビデオデコーダ３００は、たとえば、ＤＰＢ３１４を含むメモリ、フィルタユニット３１２のメモリ、またはビデオデコーダ３００内の他のメモリ中でアレイを例示し得る。一般に、「メモリ」への言及は、これらのメモリのうちのいずれかまたはすべて、あるいは図３のメモリ１２０などのビデオデコーダ３００の外部のメモリを含むものとして理解されるべきである。
【０１２９】
[0135]  ビデオデコーダ３００は、アレイの要素中に適応ループフィルタ（ＡＬＦ）パラメータを記憶し得る（３５２）。特に、上記の表１に示すように、ビデオデコーダ３００は、ＡＬＦパラメータとともにそれぞれの時間レイヤ識別子（ＩＤ）値を記憶することとあわせて、アレイの要素（すなわち、セル）中に実際のＡＬＦパラメータを記憶し得る（３５４）。すなわち、時間レイヤＩＤ値は、ＡＬＦパラメータが推定される、または推定されるべきピクチャの時間レイヤＩＤ値を示す。
【０１３０】
[0136]  ビデオデコーダ３００は、次いで、現在時間レイヤ中の現在ピクチャの１つ以上のブロックをデコードし得る（３５６）。たとえば、ビデオデコーダ３００は、動き補償ユニット３１６によって実行されるインター予測、および／またはイントラ予測ユニット３１８によって実行されるイントラ予測を使用してブロックを予測し、予測ブロックを形成し得る。ビデオデコーダ３００はまた、逆量子化ユニット３０６および逆変換処理ユニット３０８を使用して、量子化変換係数を逆量子化および逆変換し、残差サンプルを含む残差ブロックを形成し得る。再構築ユニット３１０は、次いで、現在ピクチャのためのデコードされたブロックを形成するために、サンプル毎のベースで残差ブロックを対応する予測ブロックと結合し得る。
【０１３１】
[0137]  フィルタユニット３１２は、次いで、現在ピクチャのデコードされたブロックの適応ループフィルタリングを実行し得る。特に、本開示の技術によれば、フィルタユニット３１２は、現在ピクチャのための現在時間レイヤＩＤを決定し、デコードされたブロックに実行されるフィルタリングプロセスに対して現在時間レイヤＩＤ以下の時間レイヤＩＤを有するアレイのＡＬＦパラメータを決定し得る。フィルタユニット３１２は次いで、決定されたＡＬＦパラメータを使用して、デコードされたブロックをフィルタリングする（３６０）。このようにして、ビデオデコーダ３００は、現在時間レイヤＩＤよりも高い時間レイヤＩＤを有するピクチャのＡＬＦパラメータを現在ピクチャのデコードされたブロックに適用することを回避し得る。
【０１３２】
[0138]  ビデオデコーダ３００は、フィルタリングされ、デコードされたブロックをＤＰＢ３１４中に記憶し得る（３６２）。ビデオデコーダ３００は、最終的に、フィルタリングされ、デコードされたブロックを含むデコードされたピクチャを出力し、また、デコードされたピクチャを、後にデコードされるべきピクチャのための参照ピクチャとして使用し得る。ビデオデコーダ３００は、デコードされたビデオデータ、たとえば、ビットストリームのデコードされたパラメータおよび／またはデコードされたピクチャ自体から決定されたデータを使用して、アレイ中のＡＬＦパラメータを更新し得る。
【０１３３】
[0139]  いくつかのケースでは、アレイにＡＬＦパラメータを追加することは、バッファのＮのサイズを超え得る。そのようなケースでは、ビデオデコーダ３００は、たとえば、先入れ先出し（ＦＩＦＯ）方式で、バッファから既存のパラメータを除去し得る。したがって、ビデオデコーダ３００は、アレイから最も古いＡＬＦパラメータを除去し、除去された最も古いＡＬＦパラメータの代わりに最新のＡＬＦパラメータを追加し得る。
【０１３４】
[0140]  このようにして、図７の方法は、適応ループフィルタ（ＡＬＦ）パラメータのセットを、Ｎ個のメモリ要素の予め定められたサイズを有する１次元アレイに記憶することを含む、ビデオデータをデコードする方法の一例を表し、Ｎは正の整数値であり、ここで、ＡＬＦパラメータのセットを記憶することは、アレイのメモリ要素のうちの１つ以上に、対応するＡＬＦパラメータと、対応するＡＬＦパラメータが推定される時間レイヤを示す時間レイヤ識別子（ＩＤ）値との両方を記憶することと、ビデオデータの１つ以上のブロックをデコードすることと、１次元アレイのＡＬＦパラメータを使用して、１つ以上のブロックをフィルタリングすることとを備える。
【０１３５】
[0141]  例に依存して、ここで説明された技術のうちのいずれかのある動作またはイベントは、異なるシーケンスで実行されることができ、追加、統合、または完全に省略され得る（例えば、全ての説明された動作またはイベントが、それら技術の実施のために必要なわけではない）ことが認識されるべきである。その上、ある例では、動作またはイベントは、連続によりもむしろ、例えば、マルチスレッド処理、割り込み処理、または複数のプロセッサを通じて、同時に実行され得る。
【０１３６】
[0142]  １つ以上の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいて実現され得る。ソフトウェアにおいて実現される場合、それら機能は、１つ以上の命令またはコードとして、コンピュータ読取可能媒体上に記憶され得るか、またはコンピュータ読取可能媒体を通して送信され得、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ読取可能媒体は、たとえば、通信プロトコルにしたがって、コンピュータプログラムの１つの場所から別の場所への転送を容易にするあらゆる媒体を含む通信媒体、またはデータ記憶媒体のような有体の媒体に対応するコンピュータ読取可能記憶媒体を含み得る。このように、コンピュータ読取可能媒体は、概して、（１）非一時的である有体のコンピュータ読取可能記憶媒体、または（２）信号または搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示に説明された技術のインプリメンテーションのための命令、コードおよび／またはデータ構造を取り出すために、１つ以上のコンピュータまたは１つ以上のプロセッサによってアクセスされることができる任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ読取可能媒体を含むことができる。
【０１３７】
[0143]  限定ではなく例として、このようなコンピュータ読取可能記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、磁気ディスク記憶装置、または他の磁気記憶デバイス、フラッシュメモリ、あるいは、データ構造または命令の形式で所望のプログラムコードを記憶するために使用でき、コンピュータによってアクセスされることができる他の何らかの媒体を備えることができる。また、任意の接続は、厳密にはコンピュータ読取可能媒体と称される。たとえば、命令が、ウェブサイトから、サーバから、あるいは同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、または赤外線、無線、およびマイクロ波のようなワイヤレステクノロジーを使用する他の遠隔ソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波のようなワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ読取可能記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象にすることが理解されるべきである。ここで使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（ＣＤ）（disc）、レーザーディスク（登録商標）（disc）、光学ディスク（disc）、デジタル多用途ディスク（ＤＶＤ）（disc）、フロッピー（登録商標）ディスク（disk）、ブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は通常はデータを磁気的に再生する一方で、ディスク（disc）は通常はデータをレーザで光学的に再生する。上記の組合せもまた、コンピュータ読取可能媒体の範囲内に含まれるべきである。
【０１３８】
[0144]  命令は、１つ以上のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または、他の同等な集積またはディスクリート論理回路、のような１つ以上のプロセッサによって実行されうる。したがって、ここで使用されるように、「プロセッサ」および「処理回路」という用語は、前述の構造、またはここで説明される技術のインプリメンテーションに適した他の何らかの構造のいずれかを指し得る。加えて、いくつかの態様では、ここで説明されている機能性は、エンコーディングおよびデコーディングのために構成された専用ハードウェアモジュールおよび／またはソフトウェアモジュール内で提供され得るか、あるいは組み合わせられたコーデックに組み込まれ得る。また、技術は、１つ以上の回路あるいは論理要素において十分に実現され得る。
【０１３９】
[0145]  本開示の技術は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（例えば、チップセット）を含む、幅広い種類のデバイスまたは装置において実行されうる。様々なコンポーネント、モジュール、またはユニットは、本開示では、開示された技術を実行するように構成されたデバイスの機能的な態様を強調するように説明されているが、必ずしも異なるハードウェアユニットによる実現を必要とするわけではない。むしろ、上で説明されたように、様々なユニットがコーデックハードウェアユニットで組み合わせられ得るか、あるいは適したソフトウェアおよび／またはファームウェアとともに、上で説明されたような１つ以上のプロセッサを含む、相互動作可能ハードウェアユニットの集合によって提供され得る。
【０１４０】
[0146]  様々な例を説明してきた。これらおよび他の例は、以下の特許請求の範囲の範囲内にある。
【図１】
2022500903.tif 000012
【図２】
2022500903.tif 000013
【図３】
2022500903.tif 000014
【図４Ａ】
2022500903.tif 000015
【図４Ｂ】
2022500903.tif 000016
【図５】
2022500903.tif 000017
【図６】
2022500903.tif 000018
【図７】
2022500903.tif 000019
【国際調査報告】
2022500903.tif 000020
2022500903.tif 000021
2022500903.tif 000022