(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-30
(45)【発行日】2024-05-10
(54)【発明の名称】変換行列選択の係数依存コーディング
(51)【国際特許分類】
H04N 19/12 20140101AFI20240501BHJP
H04N 19/157 20140101ALI20240501BHJP
H04N 19/176 20140101ALI20240501BHJP
H04N 19/70 20140101ALI20240501BHJP
【FI】
H04N19/12
H04N19/157
H04N19/176
H04N19/70
【外国語出願】
(21)【出願番号】P 2023077942
(22)【出願日】2023-05-10
(62)【分割の表示】P 2021506751の分割
【原出願日】2019-08-16
【審査請求日】2023-06-07
(31)【優先権主張番号】PCT/CN2018/100795
(32)【優先日】2018-08-16
(33)【優先権主張国・地域又は機関】CN
【早期審査対象出願】
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ザン,リー
(72)【発明者】
【氏名】リュウ,ホンビン
(72)【発明者】
【氏名】ザン,カイ
(72)【発明者】
【氏名】ワン,ユエ
【審査官】田中 純一
(56)【参考文献】
【文献】特表2018-506905(JP,A)
【文献】米国特許出願公開第2016/0219290(US,A1)
【文献】国際公開第2019/188466(WO,A1)
【文献】米国特許出願公開第2021/0021870(US,A1)
【文献】特表2014-535247(JP,A)
【文献】米国特許出願公開第2013/0114730(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ビデオデータを処理する方法であって、
ビデオの現在のビデオブロックと前記ビデオのビットストリームとの間の転換中に、前記現在のビデオブロックの最後の非ゼロ係数の位置をチェックすることであって、前記位置は、前記現在のビデオブロックの左上位置に対して相対的である、チェックすることと、
前記位置に基づいて、多重変換選択
変換のための変換情報を識別する構文要素が前記ビットストリームに含まれるか否かの決定を実行することと、を含み、
前記位置は、座標(LastX,LastY)によって表され、前記構文要素は、LastX≦Th1及びLastY≦Th2であることの故に、前記ビットストリームに含まれることからスキップされ、ここで、Th1及びTh2は、数字である、
方法。
【請求項2】
当該方法は、前記
多重変換選択変換を用いないで前記転換を実行することを更に含む、請求項1に記載の方法。
【請求項3】
前記ビットストリームにおいて明示的に識別されないデフォルト変換を用いて前記
転換を実行することを更に含む、請求項2に記載の方法。
【請求項4】
前記デフォルト変換は、離散コサイン変換II(DCT‐II)である、請求項3に記載の方法。
【請求項5】
Th1及びTh2は予め定義され、前記ビットストリームにおいて信号化されない、請求項1に記載の方法。
【請求項6】
前記決定を実行することは、前記現在のビデオブロックのために使用されるコーディングモードが
サブブロックベースの予測であることの故に、前記構文要素が前記ビットストリームに含まれることからスキップされることを決定することを更に含み、
当該方法は、前記
多重変換選択変換を用いないで前記
転換を実行することを更に含む、
請求項1に記載の方法。
【請求項7】
前記現在のビデオブロックの前記最後の非ゼロ係数の前記位置は、前記現在のビデオブロックの係数の順走査順序にある、請求項1に記載の方法。
【請求項8】
前記変換は、順変換または逆変換のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項9】
前記決定を実行することは、前記位置及び
変換指数が隣接ブロックから継承されないことを示すフラグに起因して、前記構文要素が前記ビットストリームに含まれることを決定することを含み、
当該方法は、前記ビットストリーム中の前記構文要素によって識別される前記変換情報を用いて前記転換を実行することを更に含む、
請求項1に記載の方法。
【請求項10】
前記転換は、前記構文要素に従った前記
多重変換選択変換を前記現在のビデオブロックの脱量子化された残差係数値の結果に適用することを含む、請求項
9に記載の方法。
【請求項11】
前記変換情報は、一次変換を示す、請求項
9記載の方法。
【請求項12】
前記決定に従って前記ビットストリームから前記現在のビデオブロックを復号化することによって前記転換を実行することを更に含む、請求項1に記載の方法。
【請求項13】
前記決定に従って前記現在のビデオブロックを前記ビットストリームに符号化することによって前記転換を実行することを更に含む、請求項1に記載の方法。
【請求項14】
プロセッサと、命令をその上に有する非一時的なメモリとを含む、ビデオデータを処理するための装置であって、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
ビデオの現在のビデオブロックと前記ビデオのビットストリームとの間の転換中に、前記現在のビデオブロックの最後の非ゼロ係数の位置をチェックさせ、前記位置は、前記現在のビデオブロックの左上位置に対して相対的であり、
前記位置に基づいて、多重変換選択
変換のための変換情報を識別する構文要素が前記ビットストリームに含まれるか否かの決定を実行させ、
前記位置は、座標(LastX,LastY)によって表され、前記構文要素は、LastX≦Th1及びLastY≦Th2であることの故に、前記ビットストリームに含まれることからスキップされ、ここで、Th1及びTh2は、数字である、
装置。
【請求項15】
命令を格納する非一時的なコンピュータ読取可能な記憶媒体であって、
前記命令は、プロセッサに、
ビデオの現在のビデオブロックと前記ビデオのビットストリームとの間の転換中に、前記現在のビデオブロックの最後の非ゼロ係数の位置をチェックさせ、前記位置は、前記現在のビデオブロックの左上位置に対して相対的であり、
前記位置に基づいて、多重変換選択
変換のための変換情報を識別する構文要素が前記ビットストリームに含まれるか否かの決定を実行させ、
前記位置は、座標(LastX,LastY)によって表され、前記構文要素は、LastX≦Th1及びLastY≦Th2であることの故に、前記ビットストリームに含まれることからスキップされ、ここで、Th1及びTh2は、数字である、
非一時的なコンピュータ読取可能な記憶媒体。
【請求項16】
ビデオ
のビットストリームを格納する
方法であって
、
現在のビデオブロックの最後の非ゼロ係数の位置をチェックすることであって、前記位置は、前記現在のビデオブロックの左上位置に対して相対的である、チェックすることと、
前記位置に基づいて、多重変換選択
変換のための変換情報を識別する構文要素が前記ビットストリームに含まれるか否かの決定を実行することと、
前記決定に基づいて前記ビットストリームを生成することと、
非一時的なコンピュータ読取可能な媒体内に前記ビットストリームを格納することと、を含み、
前記位置は、座標(LastX,LastY)によって表され、前記構文要素は、LastX≦Th1及びLastY≦Th2であることの故に、前記ビットストリームに含まれることからスキップされ、ここで、Th1及びTh2は、数字である、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の参照)
パリ条約に準拠した適用可能な特許法及び/又は規則に基づいて、この出願は、2018年8月16日に出願された国際特許出願第PCT/CN2018/100795号の優先権及び利益を適時に主張するために行われる。米国法の下での全ての目的のために、国際特許出願第PCT/CN2018/100795号の開示全体が、この出願の開示の一部として参照により援用される。
【0002】
(技術分野)
この特許文書は、ビデオ符号化(video encoding)及び復号化(decoding)技術、デバイス及びシステムに関する。
【背景技術】
【0003】
ビデオ圧縮の進歩にもかかわらず、デジタルビデオは、依然として、インターネット及び他のデジタル通信ネットワークにおける最大の帯域幅使用を占めている。ビデオの受信及び表示が可能な接続ユーザデバイスの数が増加するにつれて、デジタルビデオ使用についての帯域幅需要は増加し続けることが予想される。
【発明の概要】
【0004】
デジタルビデオコーディング及び復号化に関するデバイス、システム及び方法、特に、ビデオコーディングされた動作における多重変換選択(MTS:multiple transform selection)が記載される。記載される方法は、既存のビデオコーディング規格(例えば、高効率ビデオコーディング(HEVC:High Efficiency Video Coding))及び将来のビデオコーディング規格(例えば、汎用ビデオコーディング(VVC:Versatile Video Coding))又はコーデック(codecs)の両方に適用されることがある。
【0005】
1つの例示的な態様において、ビデオ処理の方法が開示される。この方法は、ビデオブロックへのコーディングされた表現の転換(conversion)のための第1の変換(first transform)の適用性の第1の決定のためにビデオのコーディングされた表現中の第1のフィールドを構文解析することと、第1の決定に基づいて第1の変換を選択的に使用することによって転換を実行することと、を含む。転換中に、第1の変換は、ビデオブロックの脱量子化された残差係数値の結果に適用される。
【0006】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の転換のために、現在のビデオブロックのために使用されるコーディングモードが特定のタイプであるという決定を実行することと、コーディングモードが特定のタイプである結果として、現在のビデオブロックを処理するための第1の変換又は第2の変換(second transform)の適用性を示すフィールドがコーディングされた表現に存在しないことを決定することと、フィールドが存在しない場合にコーディングされた表現を構文解析することと、決定の故に、現在のビデオブロックの脱量子化された残差係数を変換する(transforming)ための第1の変換又は第2の変換の使用を無効にすることによって、現在のビデオブロックを生成することと、を含む。
【0007】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、ビデオブロックのコーディングされた表現と隣接するビデオブロックからのビデオブロックとの間の転換のための第1の変換に関する変換情報(transform information)を継承することであって、転換中に、第1の変換は、ビデオブロックの脱量子化された残差係数値の結果に適用される、継承することと、第1に継承することに基づいて第1の変換を選択的に使用することによって転換を実行することと、を含む。
【0008】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、現在のビデオブロックのコーディング条件に基づいて、現在のビデオブロックへのコーディングされた表現の転換のために使用される第1の変換がデフォルト変換であることを決定することであって、転換中に、第1の変換は、現在のビデオブロックの脱量子化された残差係数値の結果に適用される、決定することと、第1の決定に基づいて第1の変換を選択的に使用することによって転換を実行することと、を含む。
【0009】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、ビデオの複数のビデオブロックのコーディングされた表現を含むビットストリームを構文解析することであって、ビットストリームは、現在のビデオブロックのために、隣接するブロックの変換情報が現在のビデオブロックのための変換情報として継承されるかどうかに関する第1のインジケータを含む、構文解析することと、現在のビデオブロックを生成するために、第1のインジケータを構文解析することから得られる変換情報に基づいてコーディングされた表現を復号化することであって、転換中に、変換情報によって識別される変換が現在のビデオブロックの脱量子化された残差係数値の結果に適用される、復号化することと、を含む。
【0010】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、ビデオブロックへのコーディングされた表現の転換のための第1の変換の適用性の第1の決定のためにビデオのコーディングされた表現に第1のフィールドを含めることであって、転換中に、第1の変換は、ビデオブロックの脱量子化された残差係数値の結果に適用される、含めることと、ビデオブロックを符号化することによってコーディングされた表現を生成することと、を含む。
【0011】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の転換のために、現在のビデオブロックのために使用されるコーディングモードが特定のタイプであるという決定を実行することと、コーディングモードが特定のタイプである結果として、現在のビデオブロックを処理するための第1の変換又は第2の変換の適用性を示すフィールドがコーディングされた表現に含められるべきでないという決定を実行することと、フィールドを含まないコーディングされた表現を生成することであって、現在のビデオブロックは、決定の故に、現在のビデオブロックの脱量子化された残差係数を変換するための第1の変換及び/又は第2の変換の使用を無効にすることによって復号化可能である、生成することと、を含む。
【0012】
別の例示的な態様では、ビデオ処理の方法が開示される。本方法は、ビデオブロックのコーディングされた表現とビデオブロックとの間の転換のために第1の変換に関する変換情報が隣接するビデオブロックから継承されるべきことを決定することであって、転換中に、第1の変換は、ビデオブロックの脱量子化された残差係数値の結果に適用される、決定することと、この決定に基づいてコーディングされた表現を生成することと、を含む。
【0013】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、現在のビデオブロックのコーディング条件に基づいて、現在のビデオブロックへのコーディングされた表現の転換のために使用されるべき第1の変換がデフォルト変換であることを決定することあって、転換中に、第1の変換が現在のビデオブロックの脱量子化された残差係数値の結果に適用される、決定することと、第1の決定に基づいて現在のビデオブロックのコーディングされた表現を生成することと、を含む。
【0014】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、ビデオの複数のビデオブロックのコーディングされた表現を含むビットストリームに、現在のビデオブロックについて、隣接するブロックの変換情報が現在のビデオブロックのための変換情報として継承されるかどうかに関する第1のインジケータを含めることを決定することと、変換情報に基づいて、現在のビデオブロックのコーディングされた表現を生成することであって、復号化中に、変換情報によって識別される変換が現在のビデオブロックの脱量子化された残差係数値の結果に適用されるべきである、生成することと、を含む。
【0015】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、ビデオの複数のビデオブロックのコーディングされた表現を含むビットストリームに、マージモードを使用してコーディングされる現在のビデオブロックについて、変換としてデフォルト変換を使用する第1の表示と、コーディングされた表現に含められる変換を識別する指数を使用するための第2の表示とを示す1ビットフィールドを含めることと、変換が1ビットフィールドによって識別されるコーディングされた表現を生成することを含む。
【0016】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、現在のビデオブロックのコーディングされた表現から現在のビデオブロックへの転換中に、現在のビデオブロックの最後の非ゼロ係数の位置をチェックすることであって、この位置は、現在のビデオブロックの左上位置に対して相対的である、チェックすることと、その位置に基づいて、コーディングされた表現において変換情報を信号化する構文要素を解析するかどうかの決定を実行することと、を含む。
【0017】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、現在のビデオブロックのコーディングされた表現から現在のビデオブロックへの転換中に、現在のビデオブロックの最後の非ゼロ係数の位置をチェックすることであって、この位置は、現在のビデオブロックの左上位置に対して相対的である、チェックすることと、その位置及び少なくとも1つの他のコーディング基準がある条件を満たすことの故に、変換情報を信号化する構文要素が存在し且つコーディングされた表現に含まれることを決定することと、コーディングされた表現において構文要素によって識別される変換情報を使用して転換を実行することと、を含む。
【0018】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、現在のビデオブロックのコーディングされた表現から現在のビデオブロックへの転換中に、現在のビデオブロックの最後の非ゼロ係数の位置をチェックすることであって、この位置は、現在のビデオブロックの左上位置に対して相対的である、チェックすることと、その位置及び/又は少なくとも1つの他のコーディング基準がある条件を満たさないことの故に、変換情報を信号化する構文要素がコーディングされた表現に含まれることからスキップされることを決定することと、コーディングされた表現において明示的に識別されないデフォルト変換を使用して変換を実行することと、を含む。
【0019】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、現在のビデオブロックから現在のビデオブロックのコーディングされた表現への転換中に、現在のビデオブロックの最後の非ゼロ係数の位置をチェックすることであって、この位置は、現在のビデオブロックの左上位置に対して相対的である、チェックすることと、その位置に基づいて、コーディングされた表現における変換情報を信号化する構文要素をコーディングするかどうか決定することと、を含む。
【0020】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、現在のビデオブロックのコーディングされた表現から現在のビデオブロックへの転換中に、現在のビデオブロックの最後の非ゼロ係数の位置をチェックすることであって、この位置は、現在のビデオブロックの左上位置に対して相対的である、チェックすることと、その位置及び少なくとも1つの他のコーディング基準がある条件を満たすことの故に、変換情報を信号化する構文要素がコーディングされた表現に含まれるべきであることを決定することと、変換情報を識別する構文要素をコーディングされた表現に含めることによって転換を実行することと、を含む。
【0021】
別の例示的な態様では、ビデオ処理の方法が開示される。この方法は、現在のビデオブロックのコーディングされた表現から現在のビデオブロックへの転換中に、現在のビデオブロックの最後の非ゼロ係数の位置をチェックすることであって、この位置は、現在のビデオブロックの左上位置に対して相対的である、チェックすることと、その位置及び/又は少なくとも1つの他のコーディング基準がある条件を満たさないことの故に、変換情報を信号化する構文要素がコーディングされた表現に含まれないことを決定することと、構文要素をスキップすることによってコーディングされた表現を生成し、それによって、デフォルト変換の使用を黙示的に信号化することと、を含む。
【0022】
更に別の代表的な態様において、上述の方法は、プロセッサ実行可能なコードの形態で具現され、コンピュータ可読プログラム媒体に格納される。
【0023】
更に別の代表的な態様では、上述の方法を実行するように構成される或いは動作可能なデバイスが開示される。デバイスは、この方法を実施するようにプログラムされたプロセッサを含んでよい。
【0024】
更に別の代表的な態様において、ビデオデコーダ装置は、本明細書に記載する方法を実装することがある。
【0025】
開示される技術の上記の及び他の態様及び構成は、図面、本記述及び特許請求の範囲により詳細に記載される。
【図面の簡単な説明】
【0026】
【
図1】マージ候補リストを構築する例を示している。
【0027】
【0028】
【
図3】空間的マージ候補の冗長チェックを受ける候補ペアの例を示している。
【0029】
【
図4A】現在のブロックのサイズ及び形状に基づく第2の予測ユニット(PU)の位置の例を示している。
【
図4B】現在のブロックのサイズ及び形状に基づく第2の予測ユニット(PU)の位置の例を示している。
【0030】
【
図5】時間的マージ候補のための運動ベクトルスケーリングの例を示している。
【0031】
【
図6】時間的マージ候補のための候補位置の例を示している。
【0032】
【
図7】組み合わされた双予測マージ候補を生成する例を示している。
【0033】
【
図8】運動ベクトル予測候補を構築する例を示している。
【0034】
【
図9】空間的運動ベクトル候補のための運動ベクトルスケーリングの例を示している。
【0035】
【
図10】コーディングユニット(CU)のための代替的な時間的運動ベクトル予測(ATMVP)アルゴリズムを使用する運動予測の例を示している。
【0036】
【
図11】空間的-時間的運動ベクトル予測(STMVP)アルゴリズムによって使用されるサブブロック及び隣接ブロックを有するコーディングニット(CU)の例を示している。
【0037】
【
図12A】ビデオ処理方法の例についてのフローチャートを示している。
【
図12B】ビデオ処理方法の例についてのフローチャートを示している。
【0038】
【
図13A】ビデオ処理方法の例についてのフローチャートを示している。
【
図13B】ビデオ処理方法の例についてのフローチャートを示している。
【0039】
【
図14A】ビデオ処理方法の例についてのフローチャートを示している。
【
図14B】ビデオ処理方法の例についてのフローチャートを示している。
【0040】
【
図15A】ビデオ処理方法の例についてのフローチャートを示している。
【
図15B】ビデオ処理方法の例についてのフローチャートを示している。
【0041】
【
図16A】ビデオ処理方法の例についてのフローチャートを示している。
【
図16B】ビデオ処理方法の例についてのフローチャートを示している。
【0042】
【
図17A】ビデオ処理方法の例についてのフローチャートを示している。
【
図17B】ビデオ処理方法の例についてのフローチャートを示している。
【0043】
【
図18A】ビデオ処理方法の例についてのフローチャートを示している。
【
図18B】ビデオ処理方法の例についてのフローチャートを示している。
【0044】
【
図19A】ビデオ処理方法の例についてのフローチャートを示している。
【
図19B】ビデオ処理方法の例についてのフローチャートを示している。
【0045】
【
図20A】ビデオ処理方法の例についてのフローチャートを示している。
【
図20B】ビデオ処理方法の例についてのフローチャートを示している。
【0046】
【
図21A】高速アルゴリズムを伴わない適応多重コア変換(多重変換選択(MTS)としても知られるAMT)を使用するCU符号化プロセスについての例示的なフローチャートを示している。
【
図21B】高速アルゴリズムを伴う適応多重コア変換(多重変換選択(MTS)としても知られるAMT)を使用するCU符号化プロセスについての例示的なフローチャートを示している。
【0047】
【
図22】ギブンズ回転のグラフ表現の例を示している。
【0048】
【
図23】16要素についてのハイパーキューブ-ギブンズ変換(HyGT)の「蝶」形状フローチャートの例を示している。
【0049】
【
図24】HyGTのRラウンドと任意的な順列パスとからなる完全な分離不能な二次変換の例を示している。
【0050】
【
図25】本開示の技術に従ったビデオコーディングについての例示的な方法のフローチャートを示している。
【0051】
【
図26】本開示の技術に従ったビデオコーディングについての別の例示的な方法のフローチャートを示している。
【0052】
【
図27】本開示の技術に従ったビデオコーディングについての更に別の例示的な方法のフローチャートを示している。
【0053】
【
図28】本開示の技術に従ったビデオコーディングについての更に別の例示的な方法のフローチャートを示している。
【0054】
【
図29】本開示の技術に従ったビデオコーディングについての更に別の例示的な方法のフローチャートを示している。
【0055】
【
図30】本文書に記載する視覚的メディア復号化又は視覚的メディア符号化技術を実装するハードウェアプラットフォームの例のブロック図である。
【0056】
【
図31】セットを変換するためのイントラ予測モード間のマッピングの例を示している。
【0057】
【
図32】開示の技術が実装されることがある例示的なビデオ処理システムのブロック図である。
【発明を実施するための形態】
【0058】
より高解像度のビデオについての要求の増大の故に、ビデオコーディング(video coding)方法及び技術が、現代の技術では至るところに存在している。ビデオコーデック(video codecs)は、典型的には、デジタルビデオを圧縮又は解凍する電子回路又はソフトウェアを含み、より高いコーディング効率を提供するために絶えず改良されている。ビデオコーデックは、圧縮されていないビデオを圧縮されたフォーマットに転換し(converts)、逆もまた同じである。ビデオ品質、(ビットレートによって決定される)ビデオを表現するために使用されるデータの量、符号化及び復号化アルゴリズムの複雑さ、データ損失及びエラーに対する感受性、編集の容易さ、ランダムアクセス、及びエンド・ツー・エンド遅延(待ち時間)の間には、複雑な関係がある。圧縮フォーマットは、通常、標準的なビデオ圧縮仕様、例えば、(H.265又はMPEG-H Part 2としても知られる)高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格、最終化されるべき汎用ビデオコーディング(VVC:Versatile Video Coding)規格、又は他の現在及び/又は将来のビデオコーディング規格に準拠している。
【0059】
開示される技術の実施形態は、圧縮性能を向上させるために、既存のビデオコーディング規格(例えば、HEVC、H.265)及び将来の規格に適用されてよい。本文書では、セクション見出しが、記述の可読性を向上させるために使用されるが、議論又は実施形態(及び/又は実装)をそれぞれのセクションのみに如何様にも限定しない。
【0060】
1.HEVC/H.265における相互予測の例
ビデオコーディング規格は、長年に亘って有意に改良されており、今や、部分的には、高いコーディング効率及びより高解像度のためのサポートを提供している。HEVC及びH.265のような最近の規格は、変換コーディング(transform coding)に加えて時間的予測が利用されるハイブリッドビデオコーディング構造に基づいている。
【0061】
1.1 予測モードの例
各々の相互予測される(インター予測される)(inter-predicted)PU(予測ユニット(prediction unit))は、1つ又は2つの参照画像リスト(reference picture lists)のための運動パラメータ(motion parameters)を有する。幾つかの実施形態において、運動パラメータは、運動ベクトル(motion vector)と、参照画像指数(参照画像インデックス)(reference picture index)とを含む。他の実施形態において、2つの参照画像リストのうちの1つの参照画像の使用は、inter_pred_idcを使用して信号化されて(signaled)よい。更に他の実施形態において、運動ベクトルは、予測子(predictors)に対するデルタ(deltas)として明示的にコーディングされてよい。
【0062】
コーディングユニット(CU)がスキップモード(skip mode)でコーディングされるときに、1つのPUがCUと関連付けられ、有意な残差係数(residual coefficients)がなく、コーディングされた運動ベクトルデルタ又は参照画像指数がない。マージモード(merge mode)が、現在のPUのための運動パラメータが、空間的候補及び時間的候補を含む隣接するPUから取得されるように、指定される。マージモードは、スキップモードだけでなく、任意の相互予測PUに適用されることができる。マージモードの代替は、運動ベクトル、各参照画像リストについての対応する参照画像指数、及び参照画像リスト使用が各々のPU毎に明示的に信号化される、運動パラメータの明示的な伝送である。
【0063】
信号化(signaling)が、2つの参照画像リストのうちの1つが使用されるべきであることを示すときに、PUは、サンプルの1つのブロックから生成される。これは「単一予測(uni-prediction)」と呼ばれる。P-スライス(P-slices)及びB-スライス(B-slices)の両方について単一予測が可能である。
【0064】
信号化が、参照画像リストの両方が使用されるべきであることを示すときに、PUは、サンプルの2つのブロックから生成される。これを「双予測(bi-prediction)」を称する。双予測は、B-スライスのみについて利用可能である。
【0065】
1.1.1 マージモードのための候補を構築する実施形態
PUがマージモードを使用して予測されるときに、マージ候補リスト内のエントリを指す指数(インデックス)がビットストリームから構文解析され(parsed)、運動情報を検索するために使用される。このリストの構造は、以下の一連のステップに従って要約されることができる
【0066】
ステップ1:初期候補の導出
【0067】
ステップ1.1:空間的候補導出
【0068】
ステップ1.2:空間的候補についての冗長性チェック
【0069】
ステップ1.3:時間的候補導出
【0070】
ステップ2:追加的候補挿入
【0071】
ステップ2.1:双予測候補作成
【0072】
ステップ2.2:ゼロ運動候補挿入
【0073】
図1は、上記で要約した一連のステップに基づいてマージ候補リストを構築する例を示している。空間的マージ候補導出のために、最大4つのマージ候補が5つの異なる位置に配置される候補の中から選択される。時間的マージ候補導出のために、最大1つのマージ候補が2つの候補の中から選択される。各PUについて一定数の候補がデコーダ(復号器)で推定されるので、候補の数がスライスヘッダ(slice header)で信号化される最大数のマージ候補(MaxNumMergeCand)に達しないときに、追加的な候補が生成される。候補の数は一定であるので、最良のマージ候補の指数は、切り捨てられた単項(TU:truncated unary)二値化を用いて符号化される。CUのサイズが8に等しいならば、現在のCUの全てのPUは、2N×2N予測ユニットのマージ候補リストと同一である単一のマージ候補リストを共有する。
【0074】
1.1.2 空間的マージ候補の構築
空間マージ候補の導出では、最大4つのマージ候補が
図2に示す位置に配置される候補の中から選択される。導出の順序は、A
1、B
1、B
0、A
0、及びB
2である。位置B2は、位置A
1、B
1、B
0、A
0の任意のPUが(例えば、それが別のスライス又はタイルに属する故に)利用可能でないか或いはイントラコーディングされている(intra-coded)ときにのみ考慮される。位置A1で候補が追加された後に、残りの候補の追加は、冗長性チェックの対象となり、冗長性チェックは、同じ運動情報を有する候補がリストから除外されることを保証するので、コーディング効率が向上させられる。
【0075】
計算の複雑さを低減するために、全ての可能な候補ペアが前述の冗長性チェックにおいて考慮されるわけではない。むしろ、
図3において矢印でリンクされたペアのみが考慮され、冗長性チェックのために使用される対応する候補が同じ運動情報を持たない場合にのみ候補がリストに追加される。重複運動情報の別のソースは、2N×2Nとは異なる仕切り(パーティション)と関連付けられた「第2のPU(second PUS)」である。一例として、
図4A及び
図4Bは、それぞれ、N×2N及び2N×Nの場合についての第2のPUを示している。現在のPUがN×2Nに仕切られるとき、位置A
1にある候補は、リスト構築のために考慮されない。幾つかの実施形態において、この候補を追加することは、同じ運動情報を有する2つの予測ユニットをもたらすことがあり、それはコーディングユニット内に1つのPUだけを有するように冗長である。同様に、現在のPUが2N×Nとして仕切られるとき、位置B
1は考慮されない。
【0076】
1.1.3 時間的マージ候補の構築
このステップでは、1つの候補のみがリストに追加される。特に、この時間的マージ候補の導出では、スケーリングされた運動ベクトルが、所与の参照画像リスト内の現在の画像との最小のPOC差を有する画像に属する同じ位置に配置されるPUに基づいて導出される。同じ位置に配置されるPUの導出のために使用されるべき参照画像リストは、スライスヘッダ内で明示的に信号化される。
【0077】
図5は、(点線として)時間的マージ候補についてのスケーリングされた運動ベクトルの導出の例を示してより、運動ベクトルは、POC距離、tb及びtdを用いて、同じ場所に配置されるPUの運動ベクトルからスケーリングされ、ここで、tbは、現在の画像の参照画像と現在の画像との間のPOC差であると定義され、tdは、同じ場所に配置される画像の参照画像と同じ場所に配置される画像との間のPOC差であると定義される。時間的マージ候補の参照画像指数は、ゼロに設定される。B-スライスについて、2つの運動ベクトル、一方は参照画像リスト0のための運動ベクトル、他方は参照画像リスト1のための運動ベクトルが取得されて組み合わされて、双予測マージ候補を作成する。
【0078】
参照フレームに属する同じ場所に配置されるPU(Y)において、時間的候補のための位置は、
図6に示すように、候補C
0と候補C
1との間で選択される。C
0の位置にあるPUが利用可能でないならば、イントラコーディングされているならば、或いは現在のCTUの外側にあるならば、位置C
1が使用される。さもなければ、位置C
0は、時間的マージ候補の導出において使用される。
【0079】
1.1.4 追加的なタイプのマージ候補の構築
空間的‐時間的マージ候補の他に、2つの追加的なタイプのマージ候補、すなわち、組み合わされた双予測マージ候補及びゼロマージ候補がある。組み合わされた双予測マージ候補は、空間的-時間的マージ候補を利用することによって生成される。組み合わされた双予測マージ候補は、B-スライスのみのために使用される。組み合わされた双予測候補は、初期候補の第1の参照画像リスト運動パラメータを別の候補の第2の参照画像リスト運動パラメータと組み合わされることによって生成される。これらの2つのタプルが異なる運動仮説を提供するならば、それらは新しい双予測候補を形成する。
【0080】
図7は、このプロセスの例を示しており、そこでは、mvL0及びrefIdxL0又はmvL1及びrefIdxL1を有する、元のリスト(左側にある710)中の2つの候補が、最終リスト(右側にある720)に追加された組み合わされた双予測マージ候補を作成するために使用される。
【0081】
マージ候補リストの残余のエントリを満たし、従って、MaxNumMergeCand容量に達するために、ゼロモーション候補が挿入される。これらの候補は、ゼロ空間的変位と、ゼロから始まり、新しいゼロ運動候補がリストに追加される毎に増加する、参照画像指数とを有する。これらの候補によって使用される基準フレームの数は、1方向予測及び2方向予測のために、それぞれ、1及び2である。幾つかの実施形態において、冗長性チェックは、これらの候補に対して行われない。
【0082】
1.1.5 並列処理のための運動推定領域の例
符号化プロセスを高速化するために、運動推定を並列に実行することができ、それによって、所与の領域内の全ての予測ユニットについての運動ベクトルが同時に導出される。空間的な近傍からのマージ候補の導出は、並列処理と干渉することがある。何故ならば、1つの予測ユニットは、その関連する運動推定が完了するまで、隣接するPUから運動パラメータを導出し得ないからである。コーディング効率と処理待ち時間との間のトレードオフを緩和するために、運動推定領域(MER)が定義されることがある。MERのサイズは、「log2_paralle_merge_level_minus2」構文要素(syntax element)を使用して、画像パラメータセット(PPS)において信号化されてよい。MERが定義されるとき、同じ領域に入るマージ候補は、利用可能でないとして印され、従って、リスト構成において考慮されない。
【0083】
1.2 先進運動ベクトル予測(AMVP)の実施形態
AMVPコーディングモードは、運動パラメータの明示的な伝送のために使用される、隣接するPUとの運動ベクトルの空間的-時間的相関を利用する。それは、先ず、左及び上の時間的に隣接するPU位置の利用可能性をチェックし、冗長候補を除去し、そして、ゼロベクトルを加えて、候補リストを一定の長さにすることによって、運動ベクトル候補リストを構築する。次に、エンコーダは、候補リストから最良の予測子を選択し、選択された候補を示す対応する指数を送信することができる。同様に、マージ指数信号化で、最良の運動ベクトル候補の指数が、切り捨てられた単項を用いて符号化される。この場合に符号化されるべき最大値は2である(
図8を参照)。次節では、運動ベクトル予測候補の導出プロセスについての詳細を示す。
【0084】
1.2.1 運動ベクトル予測候補の構築の例
図8は、運動ベクトル予測候補のための導出プロセスを要約しており、入力としてrefidxを用いて各参照画像リストについて実装されてよい。
【0085】
運動ベクトル予測では、2つのタイプの運動ベクトル候補、すなわち、空間的運動ベクトル候補及び時間的運動ベクトル候補が考察される。空間的運動ベクトル候補導出のために、2つの運動ベクトル候補が、最終的に、
図2に先に示したように、5つの異なる位置に配置される各PUの運動ベクトルに基づいて導出される。
【0086】
時間的運動ベクトル候補導出のために、1つの運動ベクトル候補が2つの候補から選択され、2つの候補は、2つの異なる同じ場所に配置される位置に基づいて導出される。空間的-時間的候補の第1のリストが作成された後に、リスト中の重複した運動ベクトル候補が削除される。潜在的な候補の数が2よりも多いならば、関連する参照画像リスト内のその参照画像指数が1よりも大きい運動ベクトル候補がリストから削除される。空間的-時間的な運動ベクトル候補の数が2より少ないならば、追加的なゼロ運動ベクトル候補がリストに追加される。
【0087】
1.2.2 空間的な運動ベクトル候補の構築
空間的な運動ベクトル候補の導出では、最大2つの候補が5つの潜在的な候補の中で考慮され、それらの5つの潜在的な候補は、先に
図2に示したような位置に配置されるPUから導出され、それらの位置は、運動マージの位置と同じである。現在のPUの左側についての導出の順序は、A0、A1、及びスケーリングされたA0、スケーリングされたA1として定義される。現在のPUの上側についての導出の順序は、B0、B1、B2、及びスケーリングされたB0、スケーリングされたB1、スケーリングされたB2として定義される。従って、各側について、運動ベクトル候補として使用できる4つのケース、すなわち、空間スケーリングを使用することを必要としない2つのケース及び空間的スケーリングが使用される2つのケースがある。4つの異なるケースは、以下のように要約される。
【0088】
--空間的スケーリングなし
【0089】
(1)同じ参照画像リスト及び同じ参照画像指数(同じPOC)
【0090】
(2)異なる参照画像リストであるが、同じ参照画像(同じPOC)
【0091】
--空間的スケーリング
【0092】
(3)同じ参照画像リストであるが、異なる参照画像(異なるPOC)
【0093】
(4)異なる参照画像リスト及び異なる参照画像(異なるPOC)
【0094】
空間的スケーリングのないケースが先ずチェックされ、次に、空間的スケーリングを可能にするケースがチェックされる。空間的スケーリングは、POCが、参照画像リストにかかわらず、隣接するPUの参照画像と現在のPUの参照画像との間で異なるときに考慮される。左候補の全てのPUが利用可能でないか或いはイントラコーディングされているならば、左及び上のMV候補の並列導出を助けるために、上記運動ベクトルについてのスケーリングが許容される。さもなければ、空間的スケーリングは、上記運動ベクトルについて許容されない。
【0095】
図9の例に示すように、空間的スケーリングの場合について、隣接するPUの運動ベクトルは、時間的スケーリングと同様にスケーリングされる。1つの相違は、現在のPUの参照画像リスト及び指数が入力として与えられることであり、実際のスケーリングプロセスは、時間的スケーリングと同じである。
【0096】
1.2.3 時間的運動ベクトル候補の構築
参照画像指数導出とは別に、時間的マージ候補の導出のための全てのプロセスは、(
図6の例に示されるような)空間的運動ベクトル候補の導出のためのプロセスと同じである。幾つかの実施形態において、参照画像指数は、デコーダに信号伝達される。
【0097】
2. 共同調査モデル(JEM)における相互予測方法の例
幾つかの実施態様では、共同調査モデル(JEM:Joint Exploration Model)として知られる参照ソフトウェアを用いて、将来のビデオコーディング技術が調査される(explored)。JEMでは、サブブロックベースの予測が、アフィン予測(affine prediction)、代替時間的運動ベクトル予測(ATMVP:alternative temporal motion vector prediction)、空間的-時間的運動ベクトル予測(STMVP:spatial-temporal motion vector prediction)、双方向光学フロー(BIO:bi-directional optical flow)、フレームレートアップ転換(FRUC:Frame-Rate Up Conversion)、局所適応運動ベクトル解像度(LAMVR:Locally Adaptive Motion Vector Resolution)、重複ブロック運動補償(OBMC:Overlapped Block Motion Compensation)、局所照明補償(LIC:Local Illumination Compensation)、デコーダ側運動ベクトル精緻化(DMVR:Decoder-side Motion Vector Refinement)のような、幾つかのコーディングツールにおいて採用される。
【0098】
2,1 サブCUベースの運動ベクトル予測の例
四進木及び二進木(QTBT)を有するJEMでは、各CUが、各予測方向について最大1セットの運動パラメータを有し得る。幾つかの実施形態では、2つのサブCUレベルの運動ベクトル予測方法が、大きなCUをサブCUに分割して、大きいCUの全てのサブCUについての運動情報を導出することによって、エンコーダにおいて考慮される。代替時間的運動ベクトル予測(ATMVP)法は、各CUが、同じ場所に配置される参照画像における現在のCUよりも小さい複数のブロックから複数のセットの運動情報をフェッチする(取り出す)(fetch)ことを可能にする。空間的‐時間的運動ベクトル予測(STMVP)法において、サブCUの運動ベクトルは、時間的運動ベクトル予測子及び空間的隣接運動ベクトルを用いることによって再帰的に導出される。幾つかの実施形態では、サブCU運動予測のためにより正確な運動場を保存するために、基準フレームについての運動圧縮が無効にされてよい。
【0099】
2.1.1 代替時間的運動ベクトル予測(ATMVP)の例
ATMVP法において、時間的運動ベクトル予測(TMVP)法は、現在のCUより小さいブロックから複数のセットの(運動ベクトル及び基準指数を含む)運動情報をフェッチすることによって修正される。
【0100】
図10は、現在の画像1000におけるCUについてのATMVP運動予測処理の例を示している。ATMVP法は、CU1002内のサブCU1001の運動ベクトルを2つのステップで予測する。第1のステップは、時間的ベクトルを有する参照画像1050内の対応するブロック1051を識別することである。参照画像1050を運動ソース画像とも称する。第2のステップは、現在のCU1002をサブCU1001に分割し、各サブCUに対応するブロックから各サブCUの運動ベクトル及び参照指数を取得することである。
【0101】
第1のステップでは、参照画像1050及び対応するブロックは、現在のCU 1002の空間的に隣接するブロックの運動情報によって決定される。隣接ブロックの繰り返し走査処理を回避するために、現在のCU1000のマージ候補リスト中の第1のマージ候補が使用される。第1の利用可能な運動ベクトル及びその関連する参照指数は、時間的ベクトル及び運動ソース画像への指数であるように設定される。このようにして、対応するブロックは、TMVPと比較されて、より正確に識別されることがあり、ここで、(同じ場所に配置されたブロックと称することもある)対応するブロックは、常に、現在のCUに対して右下又は中央の位置にある。
【0102】
第2のステップでは、サブCU1051の対応するブロックが、現在のCUの座標に時間的ベクトルを加えることによって、運動ソース画像1050内の時間的ベクトルによって識別される。各サブCUについて、対応するブロックの運動情報(例えば、中心サンプルをカバーする最小の運動グリッド)は、サブCUについての運動情報を導出するために使用される。対応するN×Nブロックの運動情報が識別された後に、それは、運動スケーリング及びその他の手順が適用されるHEVCのTMVPと同じ方法において、現在のサブCUの運動ベクトル及び参照指数に変換される。例えば、デコーダは、低遅延条件(例えば、現在の画像の全ての参照画像のPOCが現在の画像のPOCよりも小さい)が満たされているかどうかをチェックし、各サブCUについて(例えば、Xが0又は1に等しく、Yが1-Xに等しい)運動ベクトルMVyを予測するために、場合によっては、運動ベクトルMVx(例えば、参照画像リストXに対応する運動ベクトル)を使用する。
【0103】
2.1.2 空間的-時間的運動ベクトル予測(STMVP)の例
STMVP法において、サブCUの運動ベクトルは、ラスタ走査順序に従って再帰的に導出される。
図11は、4つのサブブロック及び隣接するブロックを有する1つのCUの例を示している。4つの4×4のサブCU、すなわち、サブCU A(1101)、サブCU B(1102)、サブCU C(1103)、及びサブCU D(1104)を含む、8×8のCU1100を考える。現在のフレーム内の隣接する4×4ブロックは、a(1111)、b(1112)、c(1113)、及びd(1114)としてラベル付けされている。
【0104】
サブCU Aについての運動導出は、その2つの空間的隣接物を識別することによって開始する。第1の隣接物は、サブCU A 1101より上のN×Nブロック(ブロックc 1113)である。このブロックc(1113)が利用可能でないか或いはイントラコーディングされているならば、サブCU A(1101)より上の他のN×Nブロックが(ブロックc 1113で開始して左から右に)チェックされる。第2の隣接物は、サブCU A 1101の左側のブロック(ブロックb 1112)である。ブロックb(1112)が利用可能でないか或いはイントラコーディングされているならば、サブCU A 1101の左側の他のブロックが(ブロックb 1112で開始して上から下に)チェックされる。各リストについて隣接ブロックから取得される運動情報は、所与のリストについて第1の基準フレームにスケーリングされる。次に、サブブロックA 1101の時間的運動ベクトル予測子(TMVP)は、HEVCで規定されるのと同じTMVP導出手順に従うことによって導出される。ブロックD 1104における同じ場所に配置されたブロックの運動情報は、相応してフェッチされ、スケーリングされる。最後に、運動情報を検索し、スケーリングした後に、全ての利用可能な運動ベクトルは、各参照リストについて別個に平均化される。平均化された運動ベクトルは、現在のサブCUの運動ベクトルとして割り当てられる。
【0105】
2.1.3 サブCU予測モードスケーリングの例
幾つかの実施形態において、サブCUモードは、追加的なマージ候補として有効にされ(enabled)、モードを信号化するのに必要とされる追加的な構文要素はない。ATMVPモード及びSTMVPモードを表すために、2つの追加マージ候補が各CUのマージ候補リストに追加される。他の実施形態では、シーケンスパラメータセットがATMVP及びSTMVPが有効にされていることを示すならば、最大7つのマージ候補が使用されてよい。追加のマージ候補の符号化論理は、HM内のマージ候補の場合と同じであり、それは、Pスライス又はBスライス内の各CUについて、2つのRDチェックが2つの追加のマージ候補について必要とされる場合があることを意味する。幾つかの実施形態、例えば、JEMにおいて、マージ指数の全てのビンは、CABAC(コンテキストベースの適応バイナリ算術コーディング)によってコンテキストコーディングされる。他の実施形態、例えば、HEVCでは、第1のビンのみがコンテキストコーディングされ、残余のビンはコンテキストバイパスコーディングされる。
【0106】
2.2 適応運動ベクトル差分解能の例
幾つかの実施形態では、use_integer_mv_flagがスライスヘッダにおいて0に等しいとき、(PUSの運動ベクトルと予測される運動ベクトルとの間の)運動ベクトル差(MVD)は、4分の1輝度サンプル(quarter luma samples)の単位で信号化される。JEMでは、局所適応運動ベクトル分解能(LAMVR:locally adaptive motion vector resolution)が導入される。JEMにおいて、MVDは、4分の1輝度サンプル、整数輝度サンプル(integer luma samples)、又は4輝度サンプル(four luma samples)の単位でコーディングされることができる。MVD分解能は、コーディングユニット(CU)レベルで制御され、MVD分解能フラグは、少なくとも1つのゼロでないMVD成分を有する各CUについて条件付きで信号化される。
【0107】
少なくとも1つのゼロでないMVDコンポーネントを有するCUについて、第1のフラグが、4分の1輝度サンプルMV精度がCUにおいて使用されているかどうかを示すために信号化される。(1に等しい)第1のフラグが、4分の1輝度サンプルMV精度が使用されていないことを示すときには、別のフラグが、整数輝度サンプルMV精度又は4輝度サンプルMV精度が使用されているかどうかを示すために信号化される。
【0108】
CUの第1のMVD分解能フラグがゼロであるか或いはCUについてコーディングされていない(CU内の全てのMVDがゼロであることを意味する)とき、4分の1輝度サンプルMV分解能はCUについて使用される。CUが整数輝度サンプルMV精度又は4輝度サンプルMV精度を使用するとき、CUについてのAMVP候補リスト中のMVPは、対応する精度に丸められる。
【0109】
エンコーダ内で、どのMVD分解能がCUについて使用されるべきかを決定するために、CUレベルRDチェックが使用される。すなわち、CUレベルRDチェックは、各MVD分解能について3回行われる。エンコーダ速度を加速するために、以下の符号化スキームがJEMにおいて適用される。
【0110】
--通常の4分の1輝度サンプルMVD分解能を持つCUのRDチェック中に、現在のCUの運動情報(整数輝度サンプル精度)が格納される。格納された運動情報は(丸み付け後に)、整数輝度サンプル及び4輝度サンプルMVD分解能を持つ同じCUについてのRDチェック中に、更に小さな範囲の運動ベクトル精緻化のための出発点として使用されるので、時間のかかる運動推定プロセスが3回重複しない。
【0111】
--4輝度サンプルMVD分解能を持つCUのRDチェックは、条件付きで呼び出される(invoked)。CUについて、RDコスト整数輝度サンプルMVD分解能は、4分の1輝度サンプルMVD分解能よりも遙かに大きいときに、CUについての4輝度サンプルMVD分解能のRDチェックはスキップされる。
【0112】
2.3 より高い運動ベクトル格納精度の例
HEVCにおいて、運動ベクトルの精度は、4分の1ピクセル(pel)(4:2:0ビデオについて4分の1輝度サンプル及び8分の1彩度サンプル)である。JEMにおいて、内部運動ベクトル格納及びマージ候補についての精度は、1/16ピクセルに増加する。より高い運動ベクトル精度(1/16ピクセル)が、スキップ/マージモードでコーディングされたCUについての運動補償相互予測において使用される。通常のAMVPモードでコーディングされたCUについて、整数ピクセル運動又は4分の1ピクセル運動のいずれかが使用される。
【0113】
HEVC運動補償補間フィルタと同じフィルタ長と正規化係数とを有するSHVCアップサンプリング(upsampling)補間フィルタが、追加的な分数ピクセル位置についての運動補償補間フィルタとして使用される。彩度成分運動ベクトル精度は、JEM内の1/32サンプルであり、1/32ピクセル分数位置の追加的な補間フィルタが、2つの隣接する1/16ピクセル分数位置のフィルタの平均を用いて導出される。
【0114】
3.JEMにおける変換設計の例
JEMには2つの異なる種類の変換がある。1つは、一次変換としても扱われる適応多重コア変換(AMT:adaptive multiple core transform、多重変換選択(MTS:Multiple Transform Selection)としても知られる)と称され、他の1つは、分離不能二次変換(NSST(non-separable secondary transform)、低周波分離不能変換(Low Frequency Non-Separable Transform)としても知られる)と称される。
【0115】
3.1 適応多重コア変換(AMT)の例
HEVCで用いられてきた(離散コサイン変換)DCT‐II及び4×4(離散サイン変換)DST‐VIIに加えて、適応多重(コア)変換(AMT)スキームが、相互コーディングされたブロック及びイントラコーディングされたブロックの両方についての残差コーディング(residual coding)のために用いられる。それはHEVC内の現在の変換以外のDCT/DSTファミリから選択された複数の変換を使用する。新しく導入された変換行列(transform matrices)は、DST-VII、DCT-VIII、DST-I及びDCT-Vである。表1は、選択されたDST/DCTの基本関数を示している。
【表1】
【0116】
変換行列の直交性を維持するために、変換行列は、HEVCにおける変換行列よりも正確に量子化される。変換された係数の中間値を16ビットの範囲内に維持するために、水平変換後及び垂直変換後に、全ての係数は、現在のHEVC変換で使用されている右シフトと比較して、2ビットだけ右シフトされる。
【0117】
AMTは、64以下の幅及び高さの両方を有するCUに適用され、AMTが適用されるかどうかは、CUレベルフラグによって制御される。CUレベルフラグ(すなわち、AMTフラグ)が0に等しいときには、剰余(residue)を符号化するために、DCT-IIがCUにおいて適用される。AMTが有効にされたCU内の輝度コーディングブロックについては、使用されるべき水平変換及び垂直変換を識別するために、2つの追加フラグ(例えば、AMT指数)が信号化される。HEVCにおけると同様に、ブロックの剰余は、JEMにおける変換スキップモードでコーディングされることができる。構文コーディングの冗長性を避けるために、CUレベルAMTフラグがゼロに等しくないときには、変換スキップフラグは信号化されない。
【0118】
イントラ剰余コーディングについては、異なるイントラ予測モードの異なる剰余統計の故に、モード依存変換候補選択プロセスが使用される。3つの変換サブセットが表2に示すように定義され、変換サブセットは、表3に指定されるように、イントラ予測モードに基づいて選択される。
【表2】
【0119】
サブセット概念を用いて、1に等しいCUレベルAMTフラグを持つCUのイントラ予測モードを用いる表2に基づいて、変換サブセットが先ず識別される。その後、水平変換及び垂直変換の各々について、表3に従った、識別された変換サブセット中の2つの変換候補のうちの1つが、明示的に信号化されたフラグに基づいて選択される。
【表3】
【0120】
しかしながら、相互予測剰余については、DST‐VII及びDCT‐VIIIから成る1つの変換セットみが、全ての相互モードのために並びに水平変換及び垂直変換の両方のために使用される。
【0121】
AMTの複雑性は、エンコーダ側で比較的高い。何故ならば、力ずくの(brute-force)探索が用いられるときに、総計5つ(DCT‐II候補及び4つの多重変換候補)の異なる変換候補が、各剰余ブロックについてのレート歪みコストで評価される必要があるからである。エンコーダにおけるこの複雑性の問題を緩和するために、幾つかの最適化方法がJEMにおけるアルゴリズム加速のために設計される。
【0122】
デコーダでは、各CUレベルコーディングモードのために、2パスコーディングが適用される。
図21Aに示すように、第1のパスは、CUについてDCT-IIのみを適用することのR-Dコストを検討する一方で(CUレベルフラグは0である)、第2のパスは、CUについて複数の変換を適用することのR-Dコストを更に検討する(CUレベルフラグは1である)。加えて、CUレベルコーディングモードは、どのパスが実際に適用されるとしても、比較的一貫していることが観察される。従って、CUのための多重変換パスをチェックするときに、DCT‐IIのみを適用することの統計が収集され、第2の多重変換パスにおいて不必要なR‐D計算をスキップするために使用される。
図21Bに示すように、AMT CUレベルフラグ0を有する特定のCUコーディングモードのR-Dコストが、
図21Bにおいて強調表示された条件によって示されるように、特定の閾値の最小R-Dコストを超えるときに、第2のパスは、すなわち、AMT CUレベルフラグ1を有する現在のCUコーディングモードでCUを符号化するパスは、スキップされる。
【0123】
3.2 モード依存分離不能二次変換(NSST)
JEMでは、モード依存分離不能二次変換(MDNSST)が、(エンコーダでの)量子化と順方向コア変換との間に、並びに(デコーダでの)逆コア変換と脱量子化との間に適用される。低い複雑性を維持するために、MDNSSTは、一次変換後の低周波数係数に適用されるだけである。変換係数ブロックの幅(W)及び高さ(H)の両方が8以上であるならば、8×8分離不能二次変換が、変換係数ブロックの左上の8×8領域に適用される。さもなければ、変換係数ブロックのW又はHのいずれかが4に等しいならば、4×4の分離不能二次変換が適用され、4×4の分離不能変換は、変換係数ブロックの左上のmin(8,W)×min(8,H)領域に対して実行される。上記の変換選択ルールは、輝度成分及び彩度成分の両方のために適用される。
【0124】
分離不能変換の行列乗算実装は、4×4入力ブロックを例として使用して以下のように記載される。分離不能変換を適用するために、4×4入力ブロックXが使用される。
【0125】
【0126】
【0127】
【0128】
分離不能変換は、
【数3】
として計算され、ここで、
(外2)
は、変換係数ベクトルを表し、
(外3)
は、16×16変換行列である。引き続き、16×1係数ベクトル
(外4)
が、そのブロックについての走査順(水平、垂直、又は対角)を用いて、4×4ブロックとして再編成される。4×4係数ブロックでは、より小さい指数を有する係数が、より小さい走査指数と共に配置される。JEMでは、分離不能変換の複雑さを低減するために、行列乗算の代わりに、蝶実装を伴うハイパーキューブ‐ギブンズ変換(HyGT)が使用される。
【0129】
3.2.1 モード依存変換コア選択
4×4及び8×8ブロックサイズの両方について、全部で35×3の分離不能二次変換があり、ここで、35は、セット(集合)(set)として示されるイントラ予測モードによって指定される変換セットの数であり、3は、各イントラ予測モードのためのNSST候補の数である。イントラ予測モードから変換セットへのマッピングは、
図31に示す表4に定義される。輝度/彩度変換係数に適用される変換セットは、表4に従って、対応する輝度/彩度イントラ予測モードによって指定される。34より大きいイントラ予測モード(対角予測方向)について、変換係数ブロックは、エンコーダ/デコーダにおける二次変換の前後に転置される。
【0130】
各変換セットについて、選択される分離不能二次変換候補は、明示的に信号化されたCUレベルMDNSST指数によって更に指定される。指数は、変換係数及び切り捨てられた単項二値化が使用された後に、内部CU毎に一度ビットストリームにおいて信号化される。切り捨てられた値は、平面モード又はDCモードの場合には2であり、角度イントラ予測モードについては3である。このMDNSST指数は、CU内に1つよりも多くのゼロ係数があるときにのみ信号化される。デフォルト値は、それが信号化されないときにはゼロである。この構文要素のゼロ値は、二次変換が現在のCUに適用されないことを示し、値1-3は、セットからの二次変換が適用されるべきであることを示す。
【0131】
JEMにおいて、MDNSSTは、変換スキップモードでコーディングされたブロックについて適用されない。MDNSST指数がCUのために信号化され、ゼロに等しくないとき、MDNSSTは、CUにおいて変換スキップモードでコーディングされる成分のブロックについて使用されない。全ての成分のブロックを有するCUが変換スキップモードでコーディングされるか、或いは非変換スキップモードCBの非ゼロ係数の数が2未満であるとき、MDNSST指数は、CUのために信号化されない。
【0132】
JEMにおいて、MDNSSTは、イントラ予測が生成されるときに、モード依存参照サンプルイントラ平滑化(MDIS)がどのように適用されるかに対する影響も有する。ブロックのMDNSST指数がゼロのとき、MDISは、そのブロックについ無効にされる(すなわち、参照サンプル平滑化はない)。ブロックのMDNSSTインデックスがゼロに等しくないとき、HEVCスタイルMDISは、そのブロックについて適用される。このルールは、PDPCプロセスが適用される平面モードを除く全てのイントラ予測モードについて適用される。JEMにおいて,HEVCにおいて32×32イントラブロックサイズについて適用される強いイントラ平滑化は、無効にされる。
【0133】
エンコーダ側で、CUのためのNSST指数を選択するために、CUレベルRDチェックが使用される。すなわち、イントラコーディングされるCUについて、CUレベルRDチェックは、ループ指数としてNSST指数値を使用することによって4回ループされる。エンコーダ速度を加速するために、次の高速方法が使用される。
【0134】
- ループの早期停止が適用される。より大きな値を持つNSST指数RDチェックは、より小さい値を持つNSST指数についての現在のCUに非ゼロ変換係数がないときに、スキップされる。
【0135】
- 参照ソフトウェア内のNSST指数の各々についてのイントラモード決定は、ラフモード決定(RMD)段階と、RDO段階とを含む。RMD段階では、67のイントラ予測モードのうち3つが、SATDコストに基づいて選択される。このプロセスは、4回ではなく、2回(ゼロに等しいNSST指数のために1回及び非ゼロに等しいNSST指数のために1回)適用される。全ての非ゼロNSST指数について、イントラ予測モードについての異なるNSST指数のSATDコストは、同じでなければならない。従って、RMDプロセスは、全ての非ゼロNSST指数について(NSST指数=1として)1回適用されれば十分であり、結果は、他の非ゼロNSST指数について再使用される。
【0136】
3.2.2 HyGTに基づく分離不能変換
ハイパーキューブ‐ギブンズ変換(HyGT)が分離不能二次変換の計算において使用される。この直交変換の基本成分は、以下によって定義される要素を有する、直交行列G(m,n,θ)によって定義される、ギブンズ回転である。
【0137】
【0138】
これらの変換は、
図22に示すように、グラフで表されることができる。
【0139】
HyGTは、ハイパーキューブ配置においてギブンズ回転のセットを組み合わせることによって実装される。
図23は、16要素(4×4分離不能変換)についてのHyGTの「蝶」形状フローチャートを示している。Nが2の冪乗であると仮定すると、HyGTラウンドは、log2(N)パスのシーケンスとして定義され、各パスにおいて、ベクトルm及びnの指数は、各方向において順次的に、次元log2(N)を有するハイパーキューブのエッジによって定義される。
【0140】
良好な圧縮を得るために、1つよりも多くのHyGTラウンドが使用される。
図24に示すように、完全な分離不能二次変換は、RがHyGTを丸めることで構成され、任意の置換パスを含んで、それらの分散(variance)に従って変換係数を分類してよい。JEMにおいて、2ラウンドHyGTは、4×4二次変換のために適用され、4ラウンドHyGTは、8×8二次変換のために適用される。
【0141】
4.VVCテストモデル(VTM)におけるAMTの例
VTMバージョン2.0を含む幾つかの実施形態では、AMTの簡易バージョンが以下の構成(features)を含むことがある
【0142】
● 各々がSPSフラグによって制御されるイントラ(intra)及び相互(インター)(inter)の両方について有効化されるAMT。
【0143】
● 64長のDST-VII及びDCT-VIIIがない(いずれかの次元が32より大きいときに送られるAMT構文がない)。
【0144】
● 128長のDCT-IIがない。
【0145】
● DCT-II、DST-VII及びDCT-VIIIのみ
【0146】
● 全ての変換が10ビット係数を有するべきである。
【0147】
● 非ゼロ係数の数が2より大きいときにオンであるように条件付けられる。
【0148】
○ 両方向におけるDCT2のためのフラグ、もしそうでなければ、
【0149】
・ 水平のためのフラグがDST-VII対DCT-VIII。
【0150】
・ 垂直のためのフラグがDST-VII対DCT-VIII。
【0151】
5.既存の実装における欠点の例
1つの既存のAMT実装において、相互AMTは、171%の符号化時間で追加的な~1%の利得を提供できる。別の実装において、AMTマージのみ(マージモードについてAMTを有効にするのみ)は、150%の符号化時間で~0.5%の利得を提供でき、AMT AMVPのみ(AMVPモードについてAMTを有効にするのみ)は、110%の符号化時間で~0.5%の利得を提供できる。これらの実装は、AMTマージのみの複雑性とコーディング性能との間のトレードオフが、将来のビデオコーディング要求を満たさない場合があることを示す。
【0152】
6.変換行列選択についての明示的なコーディングのための方法の例
本開示の技術の実施形態は、既存の実施形態の欠点を克服し、それによって、より高いコーディング効率を有するが、より低い計算の複雑さを伴う、ビデオコーディングを提供する。開示の技術に基づく変換行列選択のための暗示的なコーディングは、既存及び将来のビデオコーディング規格の両方を高めることがあり、様々な実装について記載される以下の例において解明される。以下に提供される開示の技術の例は、一般的概念を説明しており、限定的なものとして解釈されることを意図しない。ある例において、MTSは、JEM又はVVCにおける複数変換選択の設計に限定されず、変換のセットがブロックを符号化/復号化することのためのものから選択されることを可能にする、任意の他のコーディング技術を参照することができる。ある例において、NSSTは、JEM又はVVCにおける分離不能二次変換の設計に限定されず、二次変換のセットが一次変換を適用した後にブロックを符号化/復号化するためのものから選択されることを可能にする、任意の他のコーディング技術を参照することができる。ある例において、明示的に反対のことが示されない限り、これらの例に記載された様々な構成は組み合わせられてよい。
【0153】
例1.1つの例において、MTS(又はNSST)の使用を示すために、1つ又は複数のフラグが、画像パラメータセット/スライスヘッダ/画像ヘッダなどにおいて信号化されてよい。
【0154】
(a)1つの例では、MTS(又はNSST)がこのモードのために有効化されているかどうかを示すために、特定のコーディングされたモードについてのフラグが信号化されてよい。
【0155】
(b)1つの例では、MTS(又はNSST)がイントラコーディングされたブロックについて有効化されているかどうかを示すために、1つのフラグが信号化されてよい。
【0156】
(c)1つの例では、MTS(又はNSST)が相互コーディングされたブロックについて有効化されているかどうかを示すために、1つのフラグが信号化されてよい。
【0157】
(d)1つの例では、MTS(又はNSST)が(アフィン相互モードを含むことがある或いは除外することがある)AMVPコーディングされたブロックについて有効化されているかどうかを示すために、1つのフラグが信号化されてよい。
【0158】
(e)1つの例では、MTS(又はNSST)が(アフィンマージモードを含むことがある或いは除外することがある)マージされたブロックについて有効化されているどうかを示すために、1つのフラグが信号化されてよい。
【0159】
(f)1つの例では、MTS(又はNSST)がアフィンモード又はATMVPモードのようなサブブロックベースの予測について有効化されているかどうかを示すために、1つのフラグが信号化されてよい。
【0160】
例2.1つの例において、MTS(又はNSST)は、信号化されることなく特定のモードについて常に無効にされてよい。
【0161】
(a)1つの例において、MTSは、(アフィン相互モードを含むことがある或いは除外することがある)AMVPコーディングされたブロックについて無効にされる。
【0162】
(b)1つの例において、MTSは、アフィンモード又はATMVPモードのようなサブブロックベースの予測について無効にされる。
【0163】
例3.1つの例において、NSST又はMTSを有効/無効にすることは、CU/CTU/CTB/スライスヘッダ/画像ヘッダのグループにおいて信号化されてよい。
【0164】
例4.1つの例において、変換行列情報は、現在のブロックの隣接するブロックから継承されてよい。
【0165】
(a)1つの例において、隣接するブロックは、隣り合う空間的に隣接するブロック、隣り合わない隣接するブロック、又は時間的に隣接するブロックであるように定義されてよい。
【0166】
(b)1つの例において、変換行列情報は、一次変換が非DCT-II変換フラグ(例えば、AMT CUフラグ)及び/又は一次行列指数であることを含んでよい。
【0167】
(c)1つの例において、変換行列情報は、二次変換行列指数を含んでよい。
【0168】
(d)1つの例において、変換行列情報は、運動情報と共に格納されてよい。1つの例では、後続の画像によって参照されるべき各画像について、変換行列情報が格納される必要がある。
【0169】
(e)1つの例では、更に、マージ/AMVP候補間のプルーニングは、関連する変換行列情報が同一であるかどうかに更に依存してよい。2つの候補の変換行列情報が異なるならば、そのような2つの候補は、両方とも最終候補リストに加えられてよい。
【0170】
(f)1つの例では、N個のマージ/AMVP候補のみが隣接するブロックから変換行列情報を継承する一方で、他のマージ/AMVP候補はデフォルト変換を使用し、ここで、Nは、正の整数である。
【0171】
(g)1つの例では、ブロックがスキップモードでコーディングされていても、変換情報は、運動情報が継承される隣接物から継承されることが必要とされてよい。
【0172】
(h)1つの例において、そのような方法は、マージモード及び/又はAMVPモード、及び/又はサブブロックベースのコーディングモードに適用されてよい。
【0173】
(i)代替的に、隣接するブロックの変換行列情報は、現在のブロックの変換行列情報のための予測として使用されることができる。
【0174】
例5.1つの例において、デフォルト変換は、CU/PU/TU内の特定のモード/特定のタイプのAMVP/マージ/アフィン運動候補、又は特定の数の非ゼロ係数に割り当てられてよい。
【0175】
(a)組み合わせ二重マージ候補について、デフォルト変換が信号化されないで使用されてよい。
【0176】
(b)ゼロマージ候補について、デフォルト変換が信号化されないで使用されてよい。
【0177】
(c)時間ブロック(例えば、TMVP、ATMVP、STMVP)からの運動情報を含むマージ候補について、デフォルト変換は、信号化されないで使用されてよい。
【0178】
(d)サブブロックマージ候補(例えば、ATMVP、STMVP、平面運動モード)について、デフォルト変換は、信号伝達されないで使用されてよい。
【0179】
(e)ブロックが全てのゼロ係数でコーディングされるとき(すなわち、非ゼロ係数の数が0に等しいとき)、デフォルト変換指数がブロックに割り当てられる。
【0180】
(f)代替的に、ブロックが全てのゼロ係数でコーディングされ(すなわち、非ゼロ係数の数が0に等しく)、そのブロックがAMVPモードでコーディングされるときには、デフォルト変換指数がそのブロックのために割り当てられる。
【0181】
(g)アフィンモード又はATMVPモードのようなサブブロックベースの予測のために、デフォルト変換が信号化されないで使用されてよい。
【0182】
例6.1つの例では、ブロック内の非ゼロ係数がどれぐらいあるかカウントする代わりに、(例えば、順走査順序における)最後の非ゼロ係数の位置がチェックされて、AMT CUフラグがスキップされているかどうかが決定される。ブロックの左上位置に対する座標(LastX、LastY)によって位置を示す。左上位置の座標は、(0,0)として定義される。
【0183】
(a)LastX≦Th0及びLastY≦Th1のとき、AMT CUフラグは信号化されない。
【0184】
(b)LastX≦Th0又はLastY≦Th1のとき、AMT CUフラグは信号化されない。
【0185】
(c)変数Th0及び/又はTh1は、SPS、PPS、スライスヘッダ、画像ヘッダ、CUのグループ、CTU、CTBなどにおいて予め定義されてよく、或いは信号化されてよい。
【0186】
(d)変数Th0及び/又はTh1は、ブロック形状又はサイズに更に依存してよい
【0187】
(e)Th0及びTh1は、量子化パラメータ(QP)に依存してよい。
【0188】
(f)Th0及びTh1は、コーディングモードに依存してよい。
【0189】
(g)Th0=Th1
【0190】
(h)W=Hであるならば、Th0=Th1であり、W>Hであるならば、TH0>Th1であり、W<Hであるならば、TH<TH1であり、ここで、W及びHは、それぞれ、現在のブロックの幅及び高さである。
【0191】
(i)Th0及びTh1は、両方とも1又は0に設定される。
【0192】
(j)同様に、上記の方法は、NSST指数信号化に適用されてもよい、すなわち、ある場合には、NSST指数は、スキップされる。
【0193】
例7.1つの例において、変換行列情報(例えば、AMT CUフラグ及び/又はAMT指数)の信号化は、以下によって修正されてよい。
【0194】
(a)変換指数が、運動情報が継承される隣接するブロックから継承されるかどうかを示す1つのフラグが、先ず信号化される。継承されないならば、AMT CUフラグ及び/又はAMT指数は、更に信号化されてよい。
【0195】
(b)AMT CUフラグは、マージモードのために先ず信号化されてよい。CUフラグが0に設定されるならば、デフォルト変換が利用される。さもなければ(CUフラグが1に等しいならば)、AMT指数は継承されてよい。
【0196】
例8.1つの例において、変換情報は、運動ベクトルに依存することがあり、且つ/或いは参照画像及び現在の画像の運動ベクトル差及び/又は画像順序カウント(POC)距離に依存することがある。
【0197】
(a)1つの例において、変換情報は、abs(MVx)+abs(MVy)、又は(MVx)*(MVx)+(MVy)*(MVy)に依存することがある。
【0198】
(b)1つの例において、変換情報は、abs(MVDx)+abs(MVDy)、又は(MVDx)*(MVDx)+(MVDy)*(MVDy)に依存することがある。
【0199】
上述の例は、以下に記載する方法、例えば、ビデオデコーダで実装されることがある方法2500、2600、2700、2800及び2900の脈絡に組み込まれてよい。
【0200】
図25は、ビデオコーディングのための例示的方法のフローチャートを示している。方法2500は、ステップ2510において、ビデオデータの現在のブロックのビットストリーム表現を受信することを含む。
【0201】
方法2500は、ステップ2520において、ビットストリーム表現に基づく信号化情報を導出するステップを含む。
【0202】
方法2500は、ステップ2530において、信号化情報に基づいて、少なくとも1つの変換行列を可能にすることを含む。幾つかの実施態様において、少なくとも1つの変換行列を可能にすることは、現在のブロックのコーディングモードを示すフラグに基づく。他の実施形態において、少なくとも1つの変換行列を可能にすることは、イントラコーディングされた現在のブロックに基づく。更に他の実施形態において、少なくとも1つの変換行列を可能にすることは、相互コーディングされた現在のブロックに基づく。更に他の実施形態において、少なくとも1つの変換行列を可能にすることは、先進運動ベクトル予測(AMVP)コーディングされたブロックである現在のブロックに基づく。
【0203】
方法2500は、ステップ2540において、少なくとも1つの変換行列を使用して、有効にされるならば、ビットストリーム表現を処理して、現在のブロックを生成することを含む。
【0204】
幾つかの実施形態において、現在のブロックを生成することは、現在のブロックを解凍すること、又は現在のブロックの非圧縮バージョンを生成することを含む。他の実施形態において、現在のブロックを生成することは、ブロックを再構築することを含む。
【0205】
幾つかの実施態様において、少なくとも1つの変換行列を可能にすることは、現在のブロックのコーディングモードを示すフラグに基づく。
【0206】
幾つかの実施態様において、少なくとも1つの変換行列を可能にすることは、イントラコーディングされている現在のブロックに基づく。
【0207】
幾つかの実施態様において、少なくとも1つの変換行列を可能にすることは、相互コーディングされている現在のブロックに基づく。
【0208】
幾つかの実施形態において、少なくとも1つの変換行列を可能にすることは、先進運動ベクトル予測(AMVP)コーディングブロックである現在のブロックに基づく。
【0209】
図26は、ビデオコーディングのための別の例示的な方法のフローチャートを示している。この例は、
図25に示し且つ上述したものに類似する幾つかの構成及び/又はステップを含む。これらの構成及び/又は構成要素の少なくとも一部は、このセクションでは別個に記載されないことがある。方法2600は、ステップ2610において、ビデオデータの現在のブロックのビットストリーム表現を受信することを含む。
【0210】
方法2600は、ステップ2620において、隣接するブロックの変換行列情報に基づいて現在のブロックの変換行列情報を選択することを含む。幾つかの実施態様において、隣接するブロックは、隣り合う空間的に隣接するブロック、隣り合わない隣接するブロック、又は時間的に隣接するブロックである。
【0211】
方法2600は、ステップ2630において、現在のブロックの変換行列情報を使用して、ビットストリーム表現を処理して、現在のブロックを生成することを含む。
【0212】
幾つかの実施形態において、変換行列情報は、非離散コサイン変換(DCT)-IIフラグ又は一次行列指数を含む。他の実施形態において、変換行列情報は、二次変換行列指数を含む。
【0213】
幾つかの実施形態において、隣接するブロックの変換行列情報は、現在のブロックの変換行列情報の予測子として使用されてよい。
【0214】
幾つかの実施形態において、マージ候補リスト内の2つのマージ候補をプルーニングすることは、2つのマージ候補の変換行列情報に基づいてよい。
【0215】
図27は、ビデオコーディングのための更に別の例示的な方法のフローチャートを示している。この例は、
図25及び26に示し且つ上述したものに類似する幾つかの構成及び/又はステップを含む。これらの構成及び/又は構成要素の少なくとも一部は、このセクションでは別個に記載されないことがある。方法2700は、ステップ2710において、ビデオデータの現在のブロックのビットストリーム表現を受信することを含む。幾つかの実施態様において、現在のブロックは、全てのゼロ係数でコーディングされる。
【0216】
方法2700は、ステップ2720において、ビットストリーム表現に基づく信号情報を導出するステップを含む。
【0217】
方法2700は、ステップ2730において、デフォルト変換行列を選択することを含み、選択の指標は、信号化情報に存在しない。
【0218】
方法2700は、ステップ2740において、デフォルト変換行列を使用して、ビットストリーム表現を処理して、現在のブロックを生成することを含む。幾つかの実施形態において、処理は、組み合わされた二重マージ候補又はゼロ候補に基づく。
【0219】
図28は、ビデオコーディングのための更に別の例示的な方法のフローチャートを示している。この例は、
図25~
図27に示し且つ上述したものと類似する幾つかの構成及び/又はステップを含む。これらの構成及び/又は構成要素の少なくとも一部は、このセクションでは別個に記載されないことがある。方法2800は、ステップ2810において、ビデオデータの現在のブロックのビットストリーム表現を受信することを含む。
【0220】
方法2800は、ステップ2820において、ビットストリーム表現に基づく信号情報を導出することを含む。
【0221】
方法2800は、ステップ2830において、係数のブロックの最後の非ゼロ係数の位置に基づいて、信号化情報が変換行列情報に対応する指数を含むかどうかを決定することを含み、係数のブロックは、現在のブロックと関連付けられる。
【0222】
幾つかの実施形態において、係数のブロック内の最後の非ゼロ係数の位置は、(Xlast ,Ylast)であり、ここで、Xlast≦τ1(第1の閾値)及びYlast≦τ2(第2の閾値)であり、ここで、信号化情報は、指数を含まない。ある例において、第1の閾値又は第2の閾値は、シーケンスパラメータセット(SPS)、画像パラメータセット(PPS)、スライスヘッダ、画像ヘッダ、コーディングツリーユニット(CTU)、コーディングユニット(CU)、又はコーディングツリーブロック(CTB)において信号化される。別の例において、第1の閾値又は第2の閾値は、現在のブロックの寸法に基づく。更に別の例において、第1の閾値又は第2の閾値は、現在のブロックのコーディングモードに基づく。更に別の例において、第1の閾値又は第2の閾値は、量子化パラメータ(QP)に基づく。
【0223】
方法2800は、ステップ2840において、変換行列情報を使用して、ビットストリーム表現を処理して、現在のブロックを生成することを含む。幾つかの実施形態において、処理は、信号化情報が指数を含まないときにデフォルト変換行列を使用する。
【0224】
図29は、ビデオコーディングのための更に別の例示的な方法のフローチャートを示している。この例は、
図25~
図28に示し且つ上述したものに類似する幾つかの構成及び/又はステップを含む。これらの構成及び/又は構成要素の少なくとも一部は、このセクションでは別個に記載されないことがある。方法2900は、ステップ2910において、ビデオデータの現在のブロックのビットストリーム表現を受信することを含む。
【0225】
方法2900は、ステップ2920において、ビデオデータの現在のブロックに対応する運動情報又は画像順序カウント(POC)距離に基づいて変換行列を選択することを含む。
【0226】
方法2900は、ステップ2930において、変換行列を使用して、ビットストリーム表現を処理して、現在のブロックを生成することを含む。
【0227】
幾つかの実施態様において、POC距離は、現在のブロックと関連する参照画像に対応する。他の実施形態において、運動情報は、運動ベクトル又は運動ベクトル差を含む。
【0228】
技術的解決策の以下のリストは、幾つかの実施形態において好ましい実施形態であることがある。
【0229】
1.ビデオブロックへのコーディングされた表現の転換(conversion)のための第1の変換(first transform)の適用性の第1の決定のためにビデオのコーディングされた表現における第1のフィールドを構文解析すること(1202)を含む、ビデオ処理の方法(例えば、
図12Aに示す方法1200)。転換中に、第1変換は、ビデオブロックの脱量子化残差係数値の結果に適用される。方法1200は、第1の決定に基づいて第1の変換を選択的に使用することによって転換を行うこと(1204)ことを更に含む。
【0230】
2.転換(conversion)のための第2の変換(second transform)の適用性の第2の決定のためにビデオのコーディングされた表現における第2のフィールドを構文解析することを更に含み、第2の変換は、転換中に第1の変換とともにカスケードで適用され、転換を行うことは、第2の決定に基づいて第2の変換を選択的に使用すること更に含む、解決策1の方法。
【0231】
3.第1の変換は、脱量子化された残差係数値を第1の変換された表現に変換するために使用され、第2の変換は、第1の変換された表現の少なくとも一部を第2の変換された表現に変換するために使用される、解決策2の方法。
【0232】
4.第1の変換が適応マルチコア変換(AMT)である、解決策3の方法。
【0233】
5.第2の変換が二次変換である、解決策3~4のうちのいずれかの方法。
【0234】
6.前記第1のフィールドは、コーディングされた表現における画像パラメータセットレベルのフラグに対応する、解決策1~3のうちのいずれかの方法。
【0235】
7.第1のフィールドは、コーディングされた表現におけるスライスヘッダレベルのフラグに対応する、解決策1~3のうちのいずれかの方法。
【0236】
8.第1のフィールドは、コーディングされた表現における画像レベルのフラグに対応する、解決策1~3のうちのいずれかの方法。
【0237】
9.第1の決定又は第2の決定は、コーディングされた表現におけるビデオブロックを表すために使用されるコーディングモードに基づいている、解決策1~3及び6~8のうちのいずれかの方法。
【0238】
10.第1のフィールドは、ビデオ領域レベルでコーディングされる表現に含まれ、ビデオ領域は、少なくともビデオブロックを含み、第1のフィールドは、ビデオブロックのコーディングモードが特定のコーディングモードであることを成功裏に決定した後に、第1の変換が転換の間に適用されることを示す、解決策1~3のうちのいずれかの方法。
【0239】
11.特定のコーディングモードは、イントラコーディングモードである、解決策10に記載の方法。
【0240】
12.特定のコーディングモードは、相互コーディングモードである、解決策10に記載の方法。
【0241】
13.特定のコーディングモードは、先進運動ベクトル予測コーディングモードである、解決策10に記載の方法。
【0242】
14.特定のコーディングモードは、アフィンコーディングを含むマージコーディングモードである、解決策10に記載の方法。
【0243】
15,特定のコーディングモードは、アフィンコーディングを排除するマージコーディングモードである、解決策10に記載の方法。
【0244】
16.特定のコーディングモードは、サブブロックベースのコーディングモードである、解決策10に記載の方法。
【0245】
17.フィールドは、コーディング単位群レベル、コーディングツリー単位レベル、コーディングツリーブロックレベル、スライスヘッダレベル、又は画像ヘッダレベルにある、解決策1~16のうちのいずれかの方法。
【0246】
18.第1の変換は、適応マルチコア変換(AMT)である、解決策6~17のうちのいずれかの方法。
【0247】
19.第2の変換は、二次変換である、解決策6~17のうちのいずれかの方法。
【0248】
20.ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の転換のために、現在のビデオブロックのために使用されるコーディングモードが特定のタイプのものであるという決定を実行すること(1302)と、コーディングモードが特定のタイプのものであるという結果として、現在のビデオブロックを処理するための第1の変換又は第2の変換の適用性を示すフィールドがコーディングされた表現に存在しないという決定を実行すること(1304)と、フィールドが存在しない場合にコーディングされた表現を構文解析すること(1306)と、決定に起因して現在のビデオブロックの脱量子化された残差係数を変換するために第1の変換又は第2の変換の使用を無効にすることによって、現在のビデオブロックを生成すること(1308)と、を含む、ビデオ処理の方法(例えば、
図13Aに示す方法1300)。
【0249】
21.特定のタイプは、先進運動ベクトル予測コーディングモードを含む、解決策20の方法。
【0250】
22.特定のタイプは、サブブロックベースの予測モードを含む、解決策20の方法。
【0251】
23.サブブロックベースの予測モードは、代替的な時間的運動ベクトル予測モードを含む、解決策22に記載の方法。
【0252】
24.第1の変換は、適応マルチコア変換(AMT)を含む、解決策20-23のうちのいずれかの方法。
【0253】
25.第1の変換は、二次変換を含む、解決策20~23のうちのいずれかの方法。
【0254】
前のセクションは、上記解決策(例えば、項目1及び項目3)の追加的な構成を提供する。
【0255】
26.ビデオブロックのコーディングされた表現と隣接するビデオブロックからのビデオブロックとの間の転換のために第1の変換に関する変換情報を継承することであって、転換の間に、第1の変換は、ビデオブロックの脱量子化された残差係数値の結果に適用される、継承すること(1402)と、第1の継承に基づいて第1の変換を選択的に使用することによって、転換を実行すること(1404)と、を含む、ビデオ処理の方法(例えば、
図14Aに示す方法1400)。
【0256】
27.隣接するブロックは、空間的に隣接するブロックである、解決策26の方法。
【0257】
28.隣接するブロックは、ビデオブロックを含むビデオ画像内の空間的に隣接しないブロックである、解決策26の方法。
【0258】
29. 隣接するブロックは、時間的に隣接するブロックである、解決策26の方法。
【0259】
30.第1の変換に関する変換情報は、第1の変換が離散コサイン変換であるかどうかの第1の表示、又は前記第1の変換の一次行列指数の第2の表示を含む、解決策26~29のうちのいずれかの方法。
【0260】
31.脱量子化された残差係数値の結果が、脱量子化された残差係数値に別の変換を適用することによって計算される、解決策26~30のうちのいずれかの方法。
【0261】
32.第1の変換に関する変換情報は、別の変換を識別する指数を更に含む、解決策31に記載の方法。
【0262】
33.第1の変換は、脱量子化された残差係数値の変換された表現の少なくとも一部分を変換するために使用される、解決策26~30のうちのいずれかの方法。
【0263】
34.継承することは、隣接するビデオブロックの運動情報と共に格納される変換情報を継承することを含む、解決策26~33のうちのいずれかの方法。
【0264】
35.第1の変換に関する変換情報は、ビデオ画像レベルで格納される、解決策34に記載の方法。
【0265】
36.第1の変換に関する変換情報は、画像が参照画像であることの故に画像レベルで格納される、解決策15に記載の方法。
【0266】
37.転換は、プルーニングされる候補に関連する第1の変換に関する変換情報に依存するプルーニング演算を使用して候補リストを生成することを含む、解決策26~36のうちのいずれかの方法。
【0267】
38.継承することは、ビデオブロックが隣接するビデオブロックから第1のN個の候補のうちの1つを継承することの故に実行される、解決策26~37のうちのいずれかの方法。
【0268】
39.第1のN個の候補のうちの1つは、マージ候補を含む、解決策38に記載の方法。
【0269】
40.第1のN個の候補のうちの1つは、先進運動ベクトル予測候補を含む、解決策39の方法。
【0270】
41.第1のビデオブロックがスキップされたブロックとしてコーディングされることを決定することを更に含み、第1の変換に関する変換情報を継承することは、第1の変換に関する変換情報を、運動情報が継承される隣接するビデオブロックから継承することを含む、解決策26~37のうちのいずれかの方法。
【0271】
42.第1のビデオブロックは、マージモードを使用して複合化される、解決策26~41のうちのいずれかの方法。
【0272】
43.第1のビデオブロックは、先進運動ベクトル予測モードを使用して複合化される、解決策26~33のうちのいずれかの方法。
【0273】
44.継承することは、隣接するビデオブロックに関する変換情報に基づいて現在のビデオブロックのための第1の変換に関する変換情報を予測的に決定することを含む、解決策26~43のうちのいずれかの方法。
【0274】
前のセクションは、上記解決策(例えば、項目4)の追加的な構成を提供する。
【0275】
45.現在のビデオブロックのコーディング条件に基づいて、現在のビデオブロックへのコーディングされた表現の転換のために使用される第1の変換がデフォルト変換であることを決定することであって、転換の間に、第1の変換は、現在のビデオブロックの脱量子化された残差係数値の結果に適用される、決定すること(1502)と、第1の決定に基づいて第1の変換を選択的に使用することによって、転換を実行すること(1504)と、を含む、ビデオ処理の方法(例えば、
図15Aに示す方法1500)。
【0276】
46.現在のビデオブロックのコーディング条件は、第1のビデオブロックのコーディングモードを含む、解決策45の方法。
【0277】
47.コーディング条件は、現在のビデオブロックに関連するコーディングユニット、予測ユニット、又は変換ユニットでコーディングされる非ゼロ係数のカウントを含む、解決策45の方法。
【0278】
48.コーディング条件は、現在のビデオブロックのための組み合わされたマージ候補の使用を含み、デフォルト変換は、コーディングされた表現における如何なる信号伝達も伴わずに使用される、解決策45~46のうちのいずれかの方法。
【0279】
49.コーディング条件は、現在のビデオブロックのためのゼロマージ候補の使用を含み、デフォルト変換は、コーディングされた表現における如何なる信号化も伴わずに使用される、解決策45~46のうちのいずれかの方法。
【0280】
50.コーディング条件は、現在のビデオブロックの時間的に隣接するブロックの運動情報を使用することを含み、デフォルト変換は、コーディングされた表現における如何なる信号伝達も伴わずに使用される、解決策45~46のうちのいずれかの方法。
【0281】
51.時間的に隣接するブロックは、時間的運動ベクトル予測のために使用される、解決策50の方法。
【0282】
52.時間的に隣接するブロックは、代替的な時間的運動ベクトル予測のために使用される、解決策50の方法。
【0283】
53.時間的に隣接するブロックは、空間的-時間的運動ベクトル予測のために使用される、解決策50の方法。
【0284】
54.コーディング条件は、現在のビデオブロックの転換のためにサブブロックマージ候補を使用することを含む、解決策45~46のうちのいずれかの方法。
【0285】
55.サブブロックマージ候補は、先進時間的運動ベクトル予測子を含む、解決策54の方法。
【0286】
56.サブブロックマージ候補は、空間的-時間的運動ベクトル予測肢を含む、解決策54の方法。
【0287】
57.サブブロックマージ候補は、平面運動モード予測子を含む、解決策54の方法。
【0288】
58.コーディング条件は、全てのゼロ係数でコーディングされた現在のビデオブロックに対応し、決定することは、デフォルト変換指数が転換のために使用されることを決定することを含む、解決策45の方法。
【0289】
59.コーディング条件は、現在のビデオブロックのためにサブブロックベースの予測を使用することを含み、変換情報は、コーディングされた表現において信号化されずに決定される、解決策45~46のうちのいずれかの方法。
【0290】
60.サブブロックベースの予測は、アフィン予測を含み、変換情報は、コーディングされた表現において信号化なしに決定される、解決策59の方法。
【0291】
61.サブブロックベースの予測は、先進時間的運動ベクトル予測を含み、変換情報は、コーディングされた表現において信号化なしに決定される、解決策59の方法。
【0292】
62.コーディング条件は、現在のビデオブロックについての運動ベクトル値の関数を含む、解決策45の方法。
【0293】
63.運動ベクトル値の関数は、abs(MVx)+abs(MVy)、又は(MVx)*(MVx)+(MVy)*(MVy)を含み、ここで、MVx及びMVyは、運動ベクトル値であり、abs()は、絶対値関数を表す、解決策63の方法。
【0294】
64.コーディング条件は、現在のビデオブロックについての運動ベクトル差分値の関数を含む、解決策45の方法。
【0295】
65.運動ベクトル差分値の関数は、abs(MVDx)+abs(MVDy)、又は(MVDx)*(MVDx)+(MVDy)*(MVDy)を含み、ここで、MVDx及びMVDyは、運動ベクトル差分値であり、abs()は、絶対値関数を表す、解決策64の方法。
【0296】
前のセクションは、上記解決策(例えば、項目5及び項目8)の追加的な構成を提供する。
【0297】
66.ビデオの複数のビデオブロックのコーディングされた表現を含むビットストリームを構文解析することであって、ビットストリームは、現在のビデオブロックについて、隣接するブロックの変換情報が現在のビデオブロックのための変換情報として継承されるかどうかに関する第1のインジケータを含む、構文解析すること(1602)と、現在のビデオブロックを生成するために、第1のインジケータを構文解析することから得られる変換情報に基づいて、コーディングされた表現を復号化すること(1604)であって、転換の間に、変換情報によって識別された変換は、現在のビデオブロックの脱量子化された残差係数値の結果に適用される、復号化することと、を含む、ビデオ処理方法(例えば、
図16Aに示す方法1600)。
【0298】
67.変換情報が隣接するブロックから継承されないことを示す第1のインジケータの故に、転換中に使用される変換情報を識別する第2のインジケータを構文解析することを含む、解決策66の方法。
【0299】
68.変換は、適応マルチコア変換(AMT)を含む、解決策66の方法。
【0300】
69.第2のインジケータは、ビットストリーム内のコーディングユニットレベルのフラグを含む、解決策66~67のうちのいずれかの方法。
【0301】
70.第2のインジケータは、変換への指数を含む、解決策66~67のうちのいずれかの方法。
【0302】
71.ビデオの複数のビデオブロックのコーディングされた表現を含むビットストリームを構文解析することであって、ビットストリームは、マージモードを使用してコーディングされた現在のビデオブロックについて、変換としてデフォルト変換を使用するための第1の表示と、コーディングされた表現に含まれる隣接するブロックから変換情報を継承するための第2の表示とを示す、1ビットフィールドを含む、構文解析すること(1702)と、1ビットフィールドに基づいて変換を識別すること(1704)と、コーディングされた表現と現在のビデオブロックとの間の転換を実行すること(1706)であって、転換の間に、変換は、現在のビデオブロックの脱量子化された残差係数値の結果に適用される、実行することと、を含む、ビデオ処理の方法(例えば、
図17Aに示す方法1700)。
【0303】
72.第1の表示は、1ビットフィールドとして「0」ビットを含み、第2の表示は、1ビットフィールドとして「1」ビットを含む、解決策71の方法。
【0304】
73.第1の表示は、1ビットフィールドとして「1」ビットを含み、第2の表示は、1ビットフィールドとして「0」ビットを含む、解決策71の方法。
【0305】
74.変換は、適応マルチコア変換(AMT)を含む、解決策71~73のうちのいずれかの方法。
【0306】
75.隣接するブロックは、現在のビデオブロックに隣接していることを含む、解決策66~74の方法。
【0307】
76.隣接するブロックは、現在のビデオブロックに隣接していないことを含む、解決策66~74の方法。
【0308】
前のセクションは、上記解決策(例えば、項目7)の追加的な構成を提供する。
【0309】
77.ビデオブロックへのコーディングされた表現の転換のための第1の変換の適用性の第1の判断のためのビデオのコーディングされた表現に第1のフィールドを含めることであって、転換の間に、第1の変換は、ビデオブロックの脱量子化された残差係数値の結果に適用される、含めること(1252)と、ビデオブロックを符号化することによってコーディングされた表現を生成すること(1254)とを含む、ビデオ処理方法(例えば、
図12Bに示す方法1250)。
【0310】
78.転換のための第2の変換の適用性の第2の決定のためにビデオのコーディングされた表現に第2のフィールドを含めることを更に含み、第2の変換は、転換の間に第1の変換と共にカスケードで適用されるべきであり、転換を実行することは、第2の決定に基づいて第2の変換を選択的に使用することを更に含む、解決策77の方法。
【0311】
79.第1の変換は、脱量子化された残差係数値を第1の変換された表現に変換するために使用され、第2の変換は、第1の変換された表現のうちの少なくとも一部分を第2の変換された表現に変換するために使用される、解決策78の方法。
【0312】
80.第1の変換は、適応マルチコア変換(AMT)である、解決策79の方法。
【0313】
81.第2の変換は、二次変換である、解決策79~80のうちのいずれかの方法。
【0314】
82.第1のフィールドは、コーディングされた表現における画像パラメータセットレベルのフラグに対応する、解決策77~79のうちのいずれかの方法。
【0315】
83.第1のフィールドは、コーディングされた表現におけるスライスヘッダレベルのフラグに対応する、解決策77~79のうちのいずれかの方法。
【0316】
84.第1のフィールドは、コーディングされた表現における画像レベルのフラグに対応する、解決策77~79のうちのいずれかの方法。
【0317】
85.第1の決定又は第2の決定は、コーディングされた表現においてデオブロックを表現するために使用されるコーディングモードに更に基づいている、解決策77~79及び82~84のうちのいずれかの方法。
【0318】
86.第1のフィールドは、ビデオ領域レベルでコーディングされた表現に含められ、ビデオ領域は、少なくともビデオブロックを含み、第1のフィールドは、ビデオブロックのコーディングモードが特定のコーディングモードであることを成功裏に決定した後に、第1の変換が転換の間に適用されるべきことを示す、解決策77~79のうちのいずれかの方法。
【0319】
87.特定のコーディングモードは、イントラコーディングモードである、解決策86の方法。
【0320】
88.特定のコーディングモードは、相互コーディングモードである、解決策86の方法。
【0321】
89.特定のコーディングモードは、先進運動ベクトル予測コーディングモードである、解決策86の方法。
【0322】
90.特定のコーディングモードは、アフィンコーディングを含むマージコーディングモードである、解決策86の方法。
【0323】
91.特定のコーディングモードは、アフィンコーディングを排除するマージコーディングモードである、解決策86の方法。
【0324】
92.特定のコーディングモードは、サブブロックベースのコーディングモードである、解決策86の方法。
【0325】
93.フィールドは、コーディング単位群レベル、コーディングツリー単位レベル、コーディングツリーブロックレベル、スライスヘッダレベル、又は画像ヘッダレベルにある、解決策77~92のうちのいずれかの方法。
【0326】
94.第1の変換は、適応マルチコア変換(AMT)である、解決策82~93のうちのいずれかの方法。
【0327】
95.第2の変換は、二次変換である、解決策82~93のうちのいずれかの方法。
【0328】
前のセクションは、上記解決策(例えば、項目1及び項目3)の追加的な構成を提供する。
【0329】
96.ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の転換のために、現在のビデオブロックのために使用されるコーディングモードが特定のタイプのものであるという決定を実行すること(1352)と、コーディングモードが特定のタイプのものであることの結果として、現在のビデオブロックを処理するための第1の変換又は第2の変換の適用性を示すフィールドがコーディングされた表現に含まれていないという決定を実行すること(1354)と、フィールドを含まないコーディングされた表現を生成することであって、現在のビデオブロックは、前記決定の故に、現在のビデオブロックの脱量子化された残差係数を変換するために第1の変換及び/又は第2の変換の使用を無効にすることによって復号化可能である、生成すること(1356)と、を含む、ビデオ処理の方法(例えば、
図13Bに示す方法1350)。
【0330】
97.特定のタイプは、先進運動ベクトル予測コーディングモードを含む、解決策96の方法。
【0331】
98.特定のタイプは、サブブロックベースの予測モードを含む、解決策96の方法。
【0332】
99.サブブロックベースの予測モードは、代替的な時間的運動ベクトル予測モードを含む、解決策98の方法。
【0333】
100.第1の変換は、適応マルチコア変換(AMT)を含む、解決策96~99のうちのいずれかの方法。
【0334】
記載なし。
【0335】
101.第1の変換は、二次変換を含む、解決策96~99のうちのいずれかの方法。
【0336】
前のセクションは、上記解決策(例えば、項目2)の追加的な構成を提供する。
【0337】
102.ビデオブロックのコーディングされた表現とビデオブロックとの間の転換のための第1の変換に関する変換情報が隣接するビデオブロックから継承されるべきことを決定することであって、転換の間に、第1の変換は、ビデオブロックの脱量子化された残差係数値の結果に適用されること(1452)と、前記決定に基づいてコーディングされた表現を生成すること(1454)と、を含む、ビデオ処理方法(例えば、
図14Bに示す方法1450)。
【0338】
103.隣接するブロックは、空間的に隣接するブロックである、解決策102の方法。
【0339】
104.隣接するブロックは、ビデオブロックを含むビデオ画像内の空間的に隣接しないブロックである、解決策102の方法。
【0340】
105.隣接するブロックは、時間的に隣接するブロックである、解決策102の方法。
【0341】
106.第1の変換に関する変換情報は、第1の変換が離散コサイン変換であるかどうかの第1の表示又は第1の変換の一次行列指数の第2の表示を含む、解決策102~105のうちのいずれかの方法。
【0342】
107.脱量子化された残差係数値の結果は、脱量子化された残差係数値に別の変換を適用することによって計算される、解決策102~106のうちのいずれかの方法。
【0343】
108.第1の変換に関する変換情報は、別の変換を識別する指数を更に含む、解決策107の方法。
【0344】
109.第1変換は、脱量子化された残差係数値の変換された表現の少なくとも一部分を変換するために使用される、解決策102~106のうちのいずれかの方法。
【0345】
110.継承することは、隣接するビデオブロックのための運動情報と共に格納される変換情報を継承することを含む、解決策102~109のうちのいずれかの方法。
【0346】
111.第1の変換に関する変換情報は、ビデオ画像レベルで格納される、解決策110の方法。
【0347】
112.第1の変換に関する変換情報は、参照画像である画像の故に、画像レベルで格納される、解決策111の方法。
【0348】
113.転換は、プルーニングされる候補に関連する第1の変換に関する変換情報に依存するプルーニング演算を使用して候補リストを生成することを含む、解決策102~112のうちのいずれかの方法。
【0349】
114.継承することは、ビデオブロックが隣接するビデオブロックから第1のN個の候補のうちの1つを継承することの故に実行されるものである、解決策102~113の方法。
【0350】
115.第1のN個の候補のうちの1つは、マージ候補を含む、解決策114の方法。
【0351】
116.第1のN個の候補のうちの1つは、先進運動ベクトル予測候補を含む、解決策114の方法。
【0352】
117.第1のビデオブロックがスキップされるブロックとしてコーディングされるべきであることを決定するステップを更に含み、第1の変換に関する変換情報を継承することは、運動情報が継承される隣接するビデオブロックから第1の変換に関する変換情報を継承することを含む、解決策102~113のうちのいずれかの方法。
【0353】
118.第1のビデオブロックは、マージモードを使用して符号化される、解決策1~117のうちのいずれかの方法。
【0354】
119.第1のビデオブロックは、先進運動ベクトル予測モードを使用して符号化される、解決策102~108のうちのいずれかの方法。
【0355】
120.継承することは、隣接するビデオブロックに関する変換情報に基づいて現在のビデオブロックのための第1の変換に関する変換情報を予測的に決定することを含む、解決策102~119のうちのいずれかの方法。
【0356】
前のセクションは、上記解決策(例えば、項目4)の追加的な構成を提供する。
【0357】
121.現在のビデオブロックのコーディング条件に基づいて、現在のビデオブロックへのコーディングされた表現の転換のために使用されるものである第1の変換がデフォルト変換であることを決定することであって、転換の間に、第1の変換は、現在のビデオブロックの脱量子化された残差係数値の結果に適用されること(1552)と、第1の決定に基づいて現在のビデオブロックのコーディングされた表現を生成すること(1554)と、を含む、ビデオ処理の方法(例えば、
図15Bに示す方法1550)。
【0358】
122.現在のビデオブロックのコーディング条件は、第1のビデオブロックのコーディングモードを含む、解決策121の方法。
【0359】
123.コーディング条件は、現在のビデオブロックに関連するコーディングユニット、予測ユニット、又は変換ユニットにおいてコーディングされる非ゼロ係数のカウントを含む、解決策121の方法。
【0360】
124.コーディング条件は、現在のビデオブロックのための組み合わせられたマージ候補の使用を含み、デフォルト変換は、コーディングされた表現における如何なる信号化も伴わずに使用される、解決策121~122のうちのいずれかの方法。
【0361】
125.コーディング条件は、現在のビデオブロックについてのゼロマージ候補の使用を含み、デフォルト変換は、コーディングされた表現において黙示的に信号化される、解決策121~122のうちのいずれかの方法。
【0362】
126.コーディング条件は、現在のビデオブロックの時間的に隣接するブロックの運動情報を使用することを含み、デフォルト変換は、コーディングされた表現において黙示的に信号化される、解決策121~122のうちのいずれかの方法。
【0363】
127.時間的に隣接するブロックは、時間的運動ベクトル予測のために使用される、解決策126の方法。
【0364】
128.時間的に隣接するブロックは、代替的な時間的運動ベクトル予測のために使用される、解決策126の方法。
【0365】
129.時間的に隣接するブロックは、空間的-時間的運動ベクトル予測のために使用される、解決策126の方法。
【0366】
130.コーディング条件は、現在のビデオブロックの転換のためにサブブロックマージ候補を使用することを含む、解決策121~122のうちのいずれかの方法。
【0367】
131.サブブロックマージ候補は、先進時間的運動ベクトル予測子を含む、解決策130の方法。
【0368】
132.サブブロックマージ候補は、空間的-時間的運動ベクトル予測子を含む、解決策130に記載の方法。
【0369】
133.サブブロックマージ候補は、平面運動モード予測子を含む、解決策130の方法。
【0370】
134.コーディング条件は、全てのゼロ係数でコーディングされた現在のビデオブロックに対応し、前記決定することは、デフォルト変換指数が転換に使用されるべきことを決定することを含む、解決策121の方法。
【0371】
135.コーディング条件は、現在のビデオブロックのためにサブブロックベースの予測を使用することを含み、変換情報は、コーディングされた表現に黙示的に信号化される、解決策121~122のうちのいずれかの方法。
【0372】
136.サブブロックベースの予測は、アフィン予測を含み、変換情報は、コーディングされた表現中に黙示的に信号化される、解決策135の方法。
【0373】
137.サブブロックベースの予測は、先進時間的運動ベクトル予測を含み、変換情報は、コーディングされた表現中に黙示的に信号化される、解決策135の方法。
【0374】
138.コーディング条件は、現在のビデオブロックについての運動ベクトル値の関数を含む、解決策121の方法。
【0375】
139.運動ベクトル値の関数は、abs(MVx)+abs(MVy)、又は(MVx)*(MVx)+(MVy)*(MVy)を含み、ここで、MVx及びMVyは、運動ベクトル値であり、abs()は、絶対値関数を表す、解決策138の方法。
【0376】
140.コーディング条件は、現在のビデオブロックについての運動ベクトル差分値の関数を含む、解決策121の方法。
【0377】
141.運動ベクトル差分値の関数は、abs(MVDx)+abs(MVDy)、又は(MVDx)*(MVDx)+(MVDy)*(MVDy)を含み、ここで、MVDx及びMVDyは、運動ベクトル差分値であり、abs()は、絶対値関数を表す、解決策140の方法。
【0378】
前のセクションは、上記解決策(例えば、項目5及び項目8)の追加的な構成を提供する。
【0379】
142.現在のビデオブロックについて、ビデオの複数のビデオブロックのコーディングされた表現を含むビットストリームに、隣接するブロックの変換情報が現在のビデオブロックのための変換情報として継承されるかどうかに関する第1のインジケータを含めることを決定すること(1652)と、変換情報に基づいて、現在のビデオブロックのコーディングされた表現を生成することであって、復号化の間に、変換情報によって識別される変換が、現在のビデオブロックの脱量子化された残差係数値の結果に適用される、決定すること(1654)とを含む、ビデオ処理の方法(例えば、
図16Bに示す方法(1650)。
【0380】
143.コーディングされた表現と現在のビデオブロックとの間の転換の間に使用される変換情報を識別する第2のインジケータを更に含む、或いは、前記第1のインジケータが存在しない場合に前記第2のインジケータを含む、解決策142の方法
【0381】
144.変換は、適応マルチコア変換(AMT)を含む、解決策142の方法。
【0382】
145.第2のインジケータは、ビットストリーム内のコーディングユニットレベルのフラグを含む、解決策142~143のうちのいずれかの方法。
【0383】
146.第2のインジケータは、変換に対する指数を含む、解決策142~143のうちのいずれかの方法。
【0384】
147.マージモードを使用してコーディングされた現在のビデオブロックについて、ビデオの複数のビデオブロックのコーディングされた表現を含むビットストリーム内に、変換としてデフォルト変換を使用するための第1の表示と、コーディングされた表現に含まれる変換を識別する指数を使用するための第2の表示とを示す、1ビットフィールドを含むことを決定すること(1752)と、変換が1ビットフィールドによって識別されるコーディングされた表現を生成すること(1754)とを含む、ビデオ処理の方法(例えば、
図17Bに示す方法1750)。
【0385】
148.第1の表示は、1ビットフィールドとして「0」ビットを含み、第2の表示は、1ビットフィールドとして「1」ビットを含む、解決策147の方法。
【0386】
149.第1の表示は、1ビットフィールドとして「1」ビットを含み、第2の表示は、1ビットフィールドとして「0」ビットを含む、解決策147の方法。
【0387】
150.変換は、適応マルチコア変換(AMT)を含む、解決策147~149のうちのいずれかの方法。
【0388】
151.変換は、順変換又は逆変換のうちの少なくとも1つを含む、解決策1~150のうちのいずれかの方法。
【0389】
前のセクションは、上記解決策(例えば、項目7)の追加的な構成を提供する。
【0390】
152.解決策1~151のうちの1つ以上に記載の方法を実装するように構成されるプロセッサを含む、ビデオエンコーダ装置。
【0391】
153.コードを格納したコンピュータプログラム(製品)であって、コードは、実行後に、プロセッサに解決策1~151のうちの1つ以上に記載の方法を実行させる、コンピュータプログラム(製品)。
【0392】
154.本文書に記載の方法、装置又はシステム。
【0393】
以下の条項は、復号化、符号化、又は変換コーディング(transcording)側で実装されることがある解決策の追加的な例を列挙している。
【0394】
1.現在のビデオブロックのコーディングされた表現から現在のビデオブロックへの転換中に、現在のビデオブロックの最後の非ゼロ係数の位置をチェックすることであって、前記位置は、現在のビデオブロックの左上位置に対して相対的である、チェックすること(1802)と、前記位置に基づいて、コーディングされた表現における変換情報を信号化する構文要素を構文解析するかどうかを決定すること(1804)とを含む、ビデオ処理の方法(例えば、
図18Aに示す方法1800)。
【0395】
2.前記決定に従ってコーディングされた表現を構文解析することによって転換を実行することを更に含む、条項1の方法。
【0396】
3.現在のビデオブロックのコーディングされた表現から現在のビデオブロックへの転換中に、現在のビデオブロックの最後の非ゼロ係数の位置をチェックすることであって、前記位置は、現在のビデオブロックの左上位置に対して相対的である、チェックすること(1902)と、前記位置及び少なくとも1つの他のコーディング基準がある条件を満たすことの故に、変換情報を信号化する構文要素が存在し且つコーディングされた表現に含まれることを決定すること(1904)と、コーディングされた表現において構文要素によって識別される変換情報を使用して転換を実行すること(1904)とを含む、ビデオ処理の方法(例えば、
図19Aに示す方法1900)。
【0397】
4.現在のビデオブロックのコーディングされた表現から現在のビデオブロックへの転換中に、現在のビデオブロックの最後の非ゼロ係数の位置をチェックすることであって、前記位置は、現在のビデオブロックの左上位置に対して相対的である、チェックすること(2002)と、前記位置及び/又は少なくとも1つの他のコーディング基準がある条件を満たさないことの故に、変換情報を信号化する構文要素がコーディングされた表現に含められることからスキップされることを決定すること(2004)と、コーディングされた表現において明示的に識別されないデフォルト変換を使用して転換を実行すること(2006)とを含む、ビデオ処理の方法(例えば、
図20Aに示す方法2000)。
【0398】
5.転換は、構文要素に従った変換を現在のビデオブロックの脱量子化された残差係数値の結果に適用することを含む、条項2~4のうちのいずれかの方法。
【0399】
6.前記位置は、座標(LastX、LastY)によって表され、コーディングされた表現は、LastX≦Th0及びLastY≦Th1の故に、変換情報を信号化する構文要素を含まず、ここで、Th0及びTh1は、数字である、条項1の方法。
【0400】
7.コーディングされた表現は、LastX≦Th0又はLastY≦Th1の故に、変換情報を信号化する構文要素を含まず、ここで、Th0及びTh1は、数字である、条項1の方法。
【0401】
8.Th0及びTh1は、予め定義されており、コーディングされた表現において信号化されない、条項6~7のうちのいずれかの方法。
【0402】
9.Th0及びTh1は、コーディングされた表現において信号化される、条項6~7のうちのいずれかの方法。
【0403】
10.Th0及びTh1は、シーケンスパラメータセットレベル、画像パラメータセットレベル、スライスヘッダレベル、画像ヘッダレベル、コーディングユニットレベルのグループ、コーディングツリーユニットレベル、又はコーディングツリーブロックレベルで信号化される、条項6項の方法。
【0404】
11.Th0及びTh1は、現在のビデオブロックの形状又はサイズに依存する、条項6~7のうちのいずれかの方法。
【0405】
12.Th0及びTh1は、現在のビデオブロックのために使用される量子化パラメータに依存する、条項6~7のうちのいずれかの方法。
【0406】
13.Th0及びTh1は、現在のビデオブロックのために使用されるコーディングモードに依存する、条項6~7のうちのいずれかの方法。
【0407】
14.Th0及びThは等しい、条項6~13のうちのいずれかの方法。
【0408】
15.Th0=Th1=1である、条項13の方法。
【0409】
16.Th0=Th1=0である、条項13の方法。
【0410】
17.現在のビデオブロックが正方形ブロックであるならば、Th0及びTh1は等しいと決定され、現在のビデオブロックの幅が現在のビデオブロックの高さよりも大きいならば、Th0>Th1を有すると決定され、他の場合には、Th0がTh1よりも小さいと決定される、条項6~7のうちのいずれかの方法。
【0411】
18.変換情報は、二次変換を示す、条項1~16のうちのいずれかの方法。
【0412】
19.変換情報は、分離不能な二次変換を示す、条項1~16のうちのいずれかの方法。
【0413】
20.変換情報がコーディングされた表現において信号化されていないとき、前記転換は、二次変換を使用しないで前記転換を実行することを含む、条項1~19のうちのいずれかの方法。
【0414】
21.変換情報は、一次変換情報を示す、条項1~17のうちのいずれかの方法。
【0415】
22.LastX≦Th0及びLastY≦Th1の故に、コーディングされた表現は、転換中に離散コサイン変換(DCT-II)の適用を信号化する構文要素を有さない、条項6~19項のうちのいずれかの方法。
【0416】
23.LastX≦Th0又はLastY≦Th1の故に、コーディングされた表現は、転換中に離散コサイン変換(DCT-II)の適用を信号化する構文要素を有さない、条項6~19のうちのいずれかの方法。
【0417】
24.転換は、一次変換情報が信号化されない場合に、離散コサイン変換(DCT-II)を現在のビデオブロックの脱量子化された係数に適用することを含む、条項18~20のうちのいずれかの方法。
【0418】
25.現在のビデオブロックを現在のビデオブロックのコーディングされた表現に転換する間に、現在のビデオブロックの最後の非ゼロ係数の位置をチェックすることであって、前記位置は、現在のビデオブロックの左上位置に対して相対的である、チェックすること(1852)と、前記位置に基づいて、コーディングされた表現において変換情報を信号化する構文要素をコーディングするかどうかを決定すること(1854)とを含む、ビデオ処理の方法(例えば、
図18Bに示す方法1850)。
【0419】
26.現在のビデオブロックのコーディングされた表現から現在のビデオブロックへの転換の間に、現在のビデオブロックの最後の非ゼロ係数の位置をチェックすることであって、前記位置は、現在のビデオブロックの左上位置に対して相対的である、チェックすること(1952)と、前記位置及び少なくとも1つの他のコーディング基準がある条件を満たすことの故に、変換情報を信号化する構文要素がコーディングされた表現に含められるべきことを決定すること(1954)と、コーディングされた表現に変換情報を識別する構文要素を含めることによって転換を実行すること(1956)とを含む、ビデオ処理の方法(例えば、
図19Bに示す方法1950)。
【0420】
27.現在のビデオブロックのコーディングされた表現から現在のビデオブロックへの転換の間に、現在のビデオブロックの最後の非ゼロ係数の位置をチェックすることであって、前記位置は、現在のビデオブロックの左上位置に対して相対的である、チェックすること(2052)と、前記位置及び/又は少なくとも1つの他のコーディング基準がある条件を満たさないことの故に、変換情報を信号化する構文要素がコーディングされた表現に含められることからスキップされることを決定すること(2054)と、構文要素をスキップすることによってコーディングされた表現を生成し、それによって、デフォルト変換の使用を黙示的に信号化すること(2056)とを含む、ビデオ処理の方法(例えば、
図20Bに示す方法2050)。
【0421】
28.変換情報によって示される変換が、転換中の結果として得られる変換された残差係数値を量子化する前に、残差係数値に適用される、条項25~27のうちのいずれかの方法。
【0422】
29.前記位置は、座標(LastX,LastY)によって表され、コーディングされた表現は、LastX≦Th0及びLastY≦Th1の故に、変換情報を信号化する構文要素を有さず、ここで、Th0及びTh1は、数字である、条項25の方法。
【0423】
30.コーディングされた表現は、LastX≦Th0又はLastY≦Th1の故に、前記変換情報を信号化する構文要素を有さず、ここで、Th0及びTh1は、数字である、条項25の方法。
【0424】
31.Th0及びTh1は、予め定義されており、コーディングされた表現において信号化されない、条項29~30のうちのいずれかの方法。
【0425】
32.Th0及びTh1は、コーディングされた表現において信号化される、条項29~30のうちのいずれかの方法。
【0426】
33.Th0及びTh1は、シーケンスパラメータセットレベル、画像パラメータセットレベル、スライスヘッダレベル、画像ヘッダレベル、コーディングユニットレベルのグループ、コーディングツリーユニットレベル、又はコーディングツリーブロックレベルで信号化される、条項32の方法。
【0427】
34.Th0及びTh1は、現在のビデオブロックの形状又はサイズに依存する、条項29~30のうちのいずれかの方法。
【0428】
35.Th0及びTh1は、現在のビデオブロックのために使用される量子化パラメータに依存する、条項29~30のうちのいずれかの方法。
【0429】
36.Th0及びTh1は、現在のビデオブロックのために使用されるコーディングモードに依存する、条項29~30のうちのいずれかの方法。
【0430】
37.Th0及びTh1は等しい、条項29~36のうちのいずれかの方法。
【0431】
38.Th0=Th1=1である、条項37の方法。
【0432】
39.Th0=Th1=0である、条項37の方法。
【0433】
40.現在のビデオブロックが正方形のブロックであるならば、Th0及びTh1は等しいと決定され、現在のビデオブロックの幅が現在のビデオブロックの高さよりも大きいならば、Th0>Th1を有すると決定され、そうでない場合には、Th0がTh1よりも小さいと決定される、条項29~30のうちのいずれかの方法。
【0434】
41.変換情報は、二次変換を示す、条項25~40のうちのいずれかの方法。
【0435】
42.変換情報は、分離可能な二次変換を示す、条項25~40のうちのいずれかの方法。
【0436】
43.変換情報は、分離不能な二次変換を示す、条項25~40のうちのいずれかの方法。
【0437】
44.変換情報がコーディングされた表現において信号化されないとき、転換は、二次変換を使用しないで転換を実行することを含む、条項25~43のうちのいずれかの方法。
【0438】
45.変換情報は、一次変換情報を示す、条項25~44のうちのいずれかの方法。
【0439】
46.現在のビデオブロックの最後の非ゼロ係数の位置は、現在のビデオブロックの係数の順走査順序における位置であり、順走査順序は、例えば、VVC仕様で定義されるようにされてよい。条項1~45のうちのいずれかの方法。
【0440】
47.変換は、順変換又は逆変換の少なくとも1つを含む、条項1~46のうちのいずれかの方法。
【0441】
前のセクションは、上記解決策(例えば、項目6)の追加的な構成提供する。
【0442】
48.条項1~47のうちの1つ以上に記載の方法を実装するように構成されたプロセッサを含む、ビデオエンコーダ装置。
【0443】
49.条項1~48のうちの1つ以上に記載の方法を実装するように構成されたプロセッサを含む、ビデオデコーダ装置。
【0444】
50.コードを格納したコンピュータプログラム(製品)であって、コードは、実行後に、プロセッサに条項1~47のうちの1つ以上に記載の方法を実装させる、コンピュータプログラム(製品)。
【0445】
51.本文書に記載の方法、装置又はシステム。
【0446】
7.開示の技術の例示的な実装
図30は、ビデオ処理装置3000のブロック図である。装置3000は、本明細書に記載する方法のうちの1つ以上を実装するために使用されてよい。装置3000は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT:Internet of Things)受信機などにおいて具現されてよい。装置3000は、1つ以上のプロセッサ3002と、1つ以上のメモリ3004と、ビデオ処理ハードウェア3006とを含んでよい。(複数の)プロセッサ3002は、本文書に記載する1つ以上の方法(本明細書に記載する様々な方法を含むが、これらに限定されない)を実装するように構成されてよい。(複数の)メモリ3004は、本明細書に記載する方法及び技術を実施するために使用されるデータ及びコードを格納するために使用されてよい。ビデオ処理ハードウェア3006は、ハードウェア回路構成において、本文書に記載するつかの技術を実装するために使用されてよい。
【0447】
幾つかの実施形態において、ビデオコーディング方法は、
図30に関して記載するようにハードウェアプラットフォーム上に実装される装置を使用して実装されてよい。
【0448】
図32は、本明細書に開示する様々な技術が実装されることがある例示的なビデオ処理システム3200を示すブロック図である。様々な実装は、システム3200の構成要素の一部又は全部を含んでよい。システム3200は、ビデオコンテンツを受信するための入力3202を含んでよい。ビデオコンテンツは、未加工又は非圧縮フォーマット、例えば、8又は10ビットの多成分画素値で受信されてよく、或いは圧縮又は符号化されたフォーマットで受信されてよい。入力3202は、ネットワークインターフェース、周辺バスインターフェース、又は記憶装置インターフェースを表すことがある。ネットワークインターフェースの例は、イーサネット、受動光ネットワーク(PON)などのような有線インターフェースと、Wi-Fi又はセルラーインターフェースのような無線インターフェースを含む。
【0449】
システム3200は、本文書に記載する様々なコーディング方法又は符号化方法を実装することがあるコーディング構成要素3204を含んでよい。コーディング構成要素3204は、コーディング構成要素3204の入力3202から出力へのビデオの平均ビットレートを低減させて、ビデオのコーディングされた表現を生成してよい。従って、コーディング技術は、ビデオ圧縮又はビデオ変換コーディング(トランスコーディング)技術と称されることがある。コーディング構成要素3204の出力は、格納されてよく、或いは構成要素3206によって表されるような接続された通信を介して送信されてよい。入力3202で受信されるビデオの格納された又は通信されたビットストリーム(又はコーディングされた)表現は、ディスプレイインターフェース3210に送信される画素値又は表示可能なビデオを生成するために、構成要素3208によって使用されてよい。ビットストリーム表現からユーザが視認することができるビデオを生成するプロセスは、ビデオ解凍と称されることがある。更に、特定のビデオ処理操作が「コーディング」操作又はツールと称されるが、コーディングツール又は操作はエンコーダで使用され、コーディングの結果を反転する対応する復号化ツール又は操作はデコーダによって実行されることが理解されるであろう。
【0450】
周辺バスインターフェース又はディスプレイインターフェースの例は、ユニバーサルシリアルバス又は高精細度マルチメディアインターフェース(HDMI(登録商標))又はディスプレイポートなどを含む。記憶装置インターフェースの例は、SATA(serial advanced technology attachment)、PCI、IDEインターフェース及び同等物を含む。本文書に記載する技術は、携帯電話、ラップトップ、スマートフォン、又はデジタルデータ処理及び/又はビデオ表示を実行することができる他のデバイスのような、様々な電子デバイスにおいて具現されてよい。
【0451】
以上から、本開示の技術の特定の実施形態が、例示の目的のために本明細書に記載されているが、本発明の範囲を逸脱することなく、様々な修正が行われてよいことが理解されるであろう。従って、本開示の技術は、添付の特許請求の範囲による場合を除き、限定されない。
【0452】
この特許文書に記載する主題の実装及び機能的な動作は、この明細書に開示する構造及びそれらの構造的均等物を含む、様々なシステム、デジタル電子回路構成、又はコンピュータソフトウェア、ファームウェア、若しくはハードウェアにおいて、或いはそれらの1つ以上の組み合わせにおいて実装されることができる。この明細書に記載する主題の実装は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置による、又はデータ処理装置の動作を制御するための、有形で非一時的なコンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装されることができる。コンピュータ可読媒体は、機械可読格納デバイス、機械可読記憶装置基板、メモリデバイス、機械可読伝搬信号に影響を与える物質の組成、又はそれらの1つ以上の組み合わせであることができる。「データ処理ユニット」又は「データ処理装置」という用語は、一例として、プログラマブルプロセッサ、コンピュータ、又は複数のプロセッサ又はコンピュータを含む、データを処理するための全ての装置、デバイス、及び機械を包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらの1つ以上の組み合わせを構成するコードを含むことができる。
【0453】
(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)コンピュータプログラムは、コンパイルされた又は解釈された言語を含む、任意の形態のプログラミング言語において書かれることができ、それは、スタンドアロンプログラムとして、又はコンピューティング環境における使用に適したモジュール、コンポーネント、サブルーチン、又は他のユニット含む、任意の形態で展開されることができる。コンピュータプログラムは、ファイルシステム内のファイルに必ずしも対応しない。プログラムは、他のプログラム又はデータ(例えば、マークアップ言語文書に格納される1つ以上のスクリプト)を保持するファイルの一部分、問題のプログラム専用の単一ファイル、又は複数の調整されたファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの一部分を格納するファイル)に格納されることができる。コンピュータプログラムは、1つのコンピュータ上で又は1つのサイトに配置されるか或いは複数のサイトに分散されて通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように配置されることができる。
【0454】
本明細書に記載するプロセス及び論理フローは、入力データ上で操作して出力を生成することによって機能を実行するために1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行されることができる。プロセス及び論理フローは、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)のような特殊目的の論理回路構成として実装されることもでき、装置もそのようなものとして実装されることができる。
【0455】
コンピュータプログラムの実行に適したプロセッサは、一例として、汎用マイクロプロセッサ及び専用マイクロプロセッサの両方、及び任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般的に、プロセッサは、読み出し専用メモリ又はランダムアクセスメモリ又はそれらの両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令及びデータを格納するための1つ以上のメモリデバイスである。一般的に、コンピュータは、データを格納するための1つ以上の大容量記憶装置、例えば、磁気光ディスク、磁気光ディスク又は光ディスクを含み、或いはそれらからデータを受信するか或いはそれらにデータを転送するためにそれらに動作的に連結される。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令及びデータを格納するのに適したコンピュータ可読媒体は、一例として、半導体メモリデバイス、例えば、EPROM、EEPROM、及びフラッシュメモリデバイスを含む、全ての形態の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、特殊目的論理回路構成によって補足されるか或いは組み込まれることもができる。
【0456】
本明細書は、図面と共に、単に例示的であると考えられ、例示とは、例を意味することが意図される。本明細書中で使用されるとき、単数形の表現は、文脈が他に明確に示さない限り、複数形も含むことが意図される。加えて、「又は」の使用は、文脈が他に明確に示さない限り、「及び/又は」を含むことが意図される。
【0457】
この特許文書は多くの詳細を含むが、これらはいずれかの発明又は特許請求することがあるものの範囲に対する限定として解釈されてはならず、むしろ特定の発明の特定の実施形態に特有であることがある構成の記述として解釈されるべきである。別個の実施形態の文脈でこの特許文書に記載される特定の構成は、単一の実施形態において組み合わせにおいて実施されることもできる。逆に、単一の実施形態の文脈において記載される様々な構成は、別個に複数の実施形態において或いは任意の適切なサブコンビネーションにおいて実施されることもできる。その上、構成は、特定の組み合わせにおいて作用するものとして上記で記載されることがあり、最初にそのように特許請求されることさえあるが、特許請求される組み合わせからの1つ以上の構成は、場合によっては、組み合わせから削除されることができ、特許請求される組み合わせは、サブコンビネーション又はサブコンビネーションの変形に向けられてよい。
【0458】
同様に、動作が特定の順序で図面に示されているが、これは所望の結果を達成するためにそのような動作が図示の特定の順序で或いは順次的な順序で実行されること又は全ての例示の動作が実行されることを要求するものとして理解されるべきではない。その上、この特許文書に記載する実施形態における様々なシステム構成要素の分離は、全ての実施形態においてそのような分を必要とするものとして理解されるべきではない。
【0459】
少数の実装及び例のみが記載されており、他の実装、拡張及び変形がこの特許文書に記載され且つ例示されるものに基づいて行われることができる。