IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7595789改善された複合インターイントラ予測モード
<>
  • 特許-改善された複合インターイントラ予測モード 図1
  • 特許-改善された複合インターイントラ予測モード 図2
  • 特許-改善された複合インターイントラ予測モード 図3
  • 特許-改善された複合インターイントラ予測モード 図4
  • 特許-改善された複合インターイントラ予測モード 図5
  • 特許-改善された複合インターイントラ予測モード 図6
  • 特許-改善された複合インターイントラ予測モード 図7
  • 特許-改善された複合インターイントラ予測モード 図8
  • 特許-改善された複合インターイントラ予測モード 図9
  • 特許-改善された複合インターイントラ予測モード 図10
  • 特許-改善された複合インターイントラ予測モード 図11
  • 特許-改善された複合インターイントラ予測モード 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-28
(45)【発行日】2024-12-06
(54)【発明の名称】改善された複合インターイントラ予測モード
(51)【国際特許分類】
   H04N 19/105 20140101AFI20241129BHJP
   H04N 19/154 20140101ALI20241129BHJP
【FI】
H04N19/105
H04N19/154
【請求項の数】 14
(21)【出願番号】P 2023566698
(86)(22)【出願日】2022-11-14
(65)【公表番号】
(43)【公表日】2024-04-16
(86)【国際出願番号】 US2022049784
(87)【国際公開番号】W WO2023167716
(87)【国際公開日】2023-09-07
【審査請求日】2023-10-27
(31)【優先権主張番号】63/316,819
(32)【優先日】2022-03-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/983,041
(32)【優先日】2022-11-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】マドゥー・ペリンガーサリー・クリシュナン
(72)【発明者】
【氏名】リャン・ジャオ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】松元 伸次
(56)【参考文献】
【文献】特開2021-197734(JP,A)
【文献】米国特許出願公開第2020/0162737(US,A1)
【文献】国際公開第2020/186119(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
ビデオデコーダ内の1つまたは複数のプロセッサ実行る方法であって、前記方法は、
現在のピクチャと、前記現在のピクチャが複合インターイントラ予測(CIIP)モードで予測されるべきことを示すシンタックス要素とを含むコーディングされたビデオビットストリームを受信するステップと、
前記現在のピクチャに含まれる現在のブロックについて、前記現在のブロックに対する近傍ブロックの予測サンプルを含むテンプレート領域を決定するステップと、
1つまたは複数の予測サンプルを生成するために、1つまたは複数の重み付けを前記テンプレート領域に適用するステップと、
各それぞれの重み付けに関連付けられたコスト値に基づいて、前記1つまたは複数の重み付けから重み付けを、前記CIIPモードで前記現在のブロックを予測するために使用される前記重み付けとして選択するステップと、
前記選択された重み付けおよび前記生成された1つまたは複数の予測サンプルに基づいて前記ブロックをデコードするステップとを含む、方法。
【請求項2】
前記1つまたは複数の重み付けの各々について前記コスト値を計算するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記近傍ブロックの1つまたは複数の予測サンプルに基づいて前記1つまたは複数の重み付けを導出するステップをさらに含む、請求項1に記載の方法。
【請求項4】
前記近傍ブロックの前記1つまたは複数の予測サンプルに基づいて前記1つまたは複数の重み付けをランク付けするステップをさらに含む、請求項3に記載の方法。
【請求項5】
前記近傍ブロックの前記1つまたは複数の予測サンプルに基づいて前記1つまたは複数の重み付けをシグナリングするステップをさらに含む、請求項3に記載の方法。
【請求項6】
前記テンプレート領域は、前記近傍ブロックの予測サンプルの上M行および左N列を含み、MおよびNは正の整数である、請求項1に記載の方法。
【請求項7】
前記テンプレート領域の前記近傍ブロックの前記予測サンプルは、前記近傍ブロックの上、左、および左上の予測サンプルの1つまたは複数の組合せと、前記近傍ブロックの右上および左下の予測サンプルの組合せとを含む、請求項3に記載の方法。
【請求項8】
前記コスト値は、前記テンプレート領域内の前記近傍ブロックの前記予測サンプル間の予測誤差として定義され、
前記テンプレート領域内の前記予測サンプルは、前記選択された重み付けを使用して重み付けされたイントラおよびインター予測によって生成される、請求項3に記載の方法。
【請求項9】
前記1つまたは複数の重み付けは{a/N,(N-a)/Nを含み、a/Nはイントラ予測ブロック上で適用される前記重み付けであり、(N-a)/Nはインター予測ブロック上で適用される前記重み付けである、請求項1に記載の方法。
【請求項10】
前記コスト値は、前記1つまたは複数の重み付けのランク付けされたインデックスを計算するために使用され、前記ランク付けされたインデックスは、どの重み付けがエンコードのために適用されるかを識別するためにビットストリームでシグナリングされる、請求項1に記載の方法。
【請求項11】
前記1つまたは複数の重み付けは、前記複合インターイントラ予測モードにおける定数重み付けとともに適用される、請求項1に記載の方法。
【請求項12】
前記1つまたは複数の重み付けは、ルックアップテーブルを使用して導出される、請求項8に記載の方法。
【請求項13】
コンピュータプログラムコードを記憶するよう構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって命令されるように動作するよう構成された少なくとも1つのプロセッサと
を備える装置であって、前記コンピュータプログラムコードは、
前記少なくとも1つのプロセッサに、請求項1~12のうちいずれか一項に記載の方法を行わせるよう構成された、装置。
【請求項14】
コンピュータに、請求項1~12のうちいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2022年3月4日に出願された米国仮特許出願第63/316,819号および2022年11月8日に出願された米国特許出願第17/983,041号に基づいており、それらの優先権を主張し、それらの開示はその全体が参照により本明細書に組み込まれる。
【0002】
本開示は、ビデオデータの効率的な圧縮のために設計された高度なビデオコーディング技術のセットを提供する。より具体的には、複合インターイントラ予測モードのイントラ予測サンプルとインター予測サンプルとの間の重み付けを導出するための方法が開示される。
【背景技術】
【0003】
AOMedia Video1(AV1)は、VP9の後継として、2015年に設立されたAlliance for Open Media(AOMedia)コンソーシアムによって開発され、これは、半導体会社、ビデオオンデマンドプロバイダ、ビデオコンテンツプロデューサ、ソフトウェア開発会社、およびウェブブラウザベンダーを含む。AV1プロジェクトのコンポーネントの多くは、アライアンスのメンバによるこれまでの研究努力を元としている。個々の貢献者は、数年前に実験的な技術プラットフォームを開始しており、すなわちXiphの/MozillaのDaalaは2010年にコードを既に公開しており、Googleの実験的なVP9進化プロジェクトVP10は2014年9月12日に発表され、CiscoのThorは2015年8月11日に公開された。VP9のコードベースに基づいて、AV1は追加の技法を組み込んでおり、そのうちのいくつかはこれらの実験フォーマットにおいて開発された。AV1基準コーデックの第1のバージョン0.1.0は、2016年4月7日に公開された。アライアンスは、参照用のソフトウェアベースのエンコーダおよびデコーダと共に、2018年3月28日にAV1ビットストリーム仕様のリリースを発表した。2018年6月25日に、仕様の有効なバージョン1.0.0がリリースされた。2019年1月8日に、本仕様のErrata 1を伴う有効なバージョン1.0.0がリリースされた。AV1ビットストリーム仕様は、リファレンスビデオコーデックを含む。
【0004】
AOMedia Video 2(AV2)は現在開発中であり、提案されている8ビット/10ビット変換コアはそのために設計されている。
【発明の概要】
【課題を解決するための手段】
【0005】
以下、本開示の1つまたは複数の実施形態の基本的な理解を提供するために、そのような実施形態の簡略化された概要を提示する。本概要は、すべての企図された実施形態の広範な概要ではなく、すべての実施形態の主要なまたは重要な要素を特定することも、いずれかまたはすべての実施形態の範囲を線引きすることも意図されていない。その唯一の目的は、後で提示されるより詳細な説明の前置きとして、本開示の1つまたは複数の実施形態の一部の概念を簡略化された形で提示することである。
【0006】
本開示は、複合インターイントラ予測モードのイントラ予測サンプルとインター予測サンプルとの間の重み付けを導出するための方法を提供する。
【0007】
例示的な実施形態によれば、ビデオデコーダ内の1つまたは複数のプロセッサによって実行される方法が提供される。方法は、現在のピクチャを含むコーディングされたビデオビットストリームを受信するステップを含む。方法は、現在のピクチャに含まれるブロックについて、ブロックの近傍の再構成サンプルまたは予測サンプルのテンプレート領域を定義するステップをさらに含む。方法は、複合インターイントラ予測モードを使用して1つまたは複数の予測サンプルを生成するために、1つまたは複数の適応重み付け候補をテンプレート領域に適用するステップをさらに含む。方法は、1つまたは複数の適応重み付け候補の各々についてコスト値を計算するステップをさらに含む。方法は、ブロックをデコードするために使用される重み付けとして最も低いコストを提供する1つまたは複数の適応重み付け候補から適応重み付け候補を選択するステップをさらに含む。方法は、選択された適応重み付けおよび生成された1つまたは複数の予測サンプルに基づいてブロックをデコードするステップをさらに含む。
【0008】
例示的な実施形態によれば、装置は、コンピュータプログラムコードを記憶するよう構成された少なくとも1つのメモリと、コンピュータプログラムコードにアクセスし、コンピュータプログラムコードによって命令されるように動作するよう構成された少なくとも1つのプロセッサとを備える。コンピュータプログラムコードは、少なくとも1つのプロセッサに、現在のピクチャを含むコーディングされたビデオビットストリームを受信させるよう構成された受信コードを含む。コンピュータプログラムコードは、少なくとも1つのプロセッサに、現在のピクチャに含まれるブロックについて、ブロックの近傍の再構成サンプルまたは予測サンプルのテンプレート領域を定義させるよう構成された定義コードをさらに含む。コンピュータプログラムコードは、少なくとも1つのプロセッサに、複合インターイントラ予測モードを使用して1つまたは複数の予測サンプルを生成するために、1つまたは複数の適応重み付け候補をテンプレート領域に適用させるよう構成された適用コードをさらに含む。コンピュータプログラムコードは、少なくとも1つのプロセッサに、1つまたは複数の適応重み付け候補の各々についてコスト値を計算させるよう構成された計算コードをさらに含む。コンピュータプログラムコードは、少なくとも1つのプロセッサに、ブロックをデコードするために使用される重み付けとして最も低いコストを提供する1つまたは複数の適応重み付け候補から適応重み付け候補を選択させるよう構成された選択コードをさらに含む。コンピュータプログラムコードは、少なくとも1つのプロセッサに、選択された適応重み付けおよび生成された1つまたは複数の予測サンプルに基づいてブロックをデコードさせるよう構成されたデコーディングコードをさらに含む。
【0009】
例示的な実施形態によれば、非一時的コンピュータ可読媒体は、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに方法を実行させるコンピュータ命令が記憶される。方法は、現在のピクチャを含むコーディングされたビデオビットストリームを受信するステップを含む。方法は、現在のピクチャに含まれるブロックについて、ブロックの近傍の再構成サンプルまたは予測サンプルのテンプレート領域を定義するステップをさらに含む。方法は、複合インターイントラ予測モードを使用して1つまたは複数の予測サンプルを生成するために、1つまたは複数の適応重み付け候補をテンプレート領域に適用するステップをさらに含む。方法は、1つまたは複数の適応重み付け候補の各々についてコスト値を計算するステップをさらに含む。方法は、ブロックをデコードするために使用される重み付けとして最も低いコストを提供する1つまたは複数の適応重み付け候補から適応重み付け候補を選択するステップをさらに含む。方法は、選択された適応重み付けおよび生成された1つまたは複数の予測サンプルに基づいてブロックをデコードするステップをさらに含む。
【0010】
追加の実施形態は、以下の説明に記載され、部分的には、説明から明らかになり、および/または本開示の提示された実施形態の実施によって知られ得る。
【0011】
本開示の実施形態の上記および他の特徴ならびに態様は、添付の図面と併せて以下の説明から明らかになるであろう。
【図面の簡単な説明】
【0012】
図1】本開示の様々な実施形態による、通信システムのブロック図の概略図である。
図2】本開示の様々な実施形態による、通信システムのブロック図の概略図である。
図3】本開示の様々な実施形態による、デコーダのブロック図の概略図である。
図4】本開示の様々な実施形態による、エンコーダのブロック図である。
図5】本開示の様々な実施形態による、AV1における公称角度の図である。
図6】本開示の様々な実施形態による、近傍のサンプルの場所の図である。
図7】本開示の様々な実施形態による、パッチの図である。
図8】本開示の様々な実施形態による、CIIPモードのテーブルである。
図9】本開示の様々な実施形態による、CIIPモードで使用されるルックアップテーブルである。
図10】本開示の様々な実施形態による、テンプレート領域の図である。
図11】本開示の様々な実施形態による、複合インターイントラ予測モードのための重み付けを導出するためのプロセスの一実施形態のフローチャートである。
図12】本開示の様々な実施形態による、例示的なコンピュータシステムの図である。
【発明を実施するための形態】
【0013】
例示的な実施形態の以下の詳細な説明は、添付の図面を参照する。異なる図面における同じ参照番号は、同じまたは類似の要素を識別し得る。
【0014】
前述の開示は、例示および説明を提供しているが、網羅的であることも、実装形態を厳密に開示の形態に限定することも意図されていない。修正形態および変形形態が上記の開示に照らして可能であり、または実装形態の実践から取得されてもよい。さらに、一実施形態の1つまたは複数の特徴または構成要素は、他の実施形態(または他の実施形態の1つまたは複数の特徴)に組み込まれるか、または組み合わされてもよい。さらに、以下に提供されるフローチャートおよび動作の説明では、1つまたは複数の動作が省略されてもよく、1つまたは複数の動作が追加されてもよく、1つまたは複数の動作が同時に(少なくとも部分的に)行われてもよく、1つまたは複数の動作の順序が切り替えられてもよいことが理解される。
【0015】
本明細書に記載されるシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組合せの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実施態様を限定するものではない。よって、本明細書ではシステムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく説明されている。ソフトウェアおよびハードウェアは、本明細書の説明に基づいてシステムおよび/または方法を実装するように設計され得ることが理解される。
【0016】
特定の特徴の組合せが、特許請求の範囲に記載され、かつ/または本明細書に開示されていても、これらの組合せは、可能な実装形態の開示を限定することを意図されたものではない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されておらず、かつ/または本明細書に開示されていない方法で組み合わされてもよい。以下に列挙されている各従属請求項は1つの請求項のみに直接従属し得るが、可能な実装形態の開示は、請求項セット内の他のすべての請求項との組合せにおいて各従属請求項を含む。
【0017】
本明細書で使用される要素、動作、または命令は、そのように明示的に記載されていない限り、重要または必須であると解釈されるべきではない。また、本明細書で使用される場合、冠詞「a」および「an」は、1つまたは複数の項目を含むことを意図されており、「1つまたは複数」と交換可能に使用されてもよい。1つの項目のみが意図される場合、「1つ」という用語または同様の言葉が使用される。また、本明細書で使用される「有する(has)」、「有する(have)」、「有する(having)」、「含む(include)」、「含む(including)」などの用語は、オープンエンド用語であることが意図されている。さらに、「に基づいて」という語句は、特に明記されない限り、「に少なくとも部分的に基づいて」を意味することが意図されている。さらに、「[A]および[B]の少なくとも一方」または「[A]または[B]の少なくとも一方」などの表現は、Aのみ、Bのみ、またはAとBの両方を含むと理解されるべきである。
【0018】
図1は、本開示の一実施形態による通信システム(100)の簡略化されたブロック図を示す。システム(100)は、ネットワーク(150)を介して相互接続された少なくとも2つの端末(110、120)を含み得る。データの単方向伝送の場合、第1の端末(110)は、ネットワーク(150)を介して相手の端末(120)に送信するためにローカルの場所でビデオデータをコーディングし得る。第2の端末(120)は、ネットワーク(150)から相手の端末のコーディングされたビデオデータを受信し、コーディングされたデータをデコードし、復元されたビデオデータを表示し得る。単方向データ送信は、メディアサービングアプリケーションなどにおいて一般的であり得る。
【0019】
図1は、例えばビデオ会議中に発生し得るコーディング済ビデオの双方向伝送をサポートするために設けられた端末(130、140)の第2のペアを示している。データの双方向伝送の場合、各端末(130、140)は、ネットワーク(150)を介して相手の端末に送信するために、ローカルの場所でキャプチャされたビデオデータをコーディングし得る。各端末(130、140)はまた、相手の端末によって送信されたコーディングされたビデオデータを受信してもよく、コーディングされたデータをデコードしてもよく、復元されたビデオデータをローカル表示デバイスに表示してもよい。
【0020】
図1では、端末(110~140)は、サーバ、パーソナルコンピュータ、およびスマートフォン、ならびに/または任意の他のタイプの端末として示されてもよい。例えば、端末(110~140)は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用ビデオ会議機器であってもよい。ネットワーク(150)は、例えば有線および/または無線通信ネットワークを含む、端末(110~140)間デコードされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(150)は、回線交換チャネルおよび/またはパケット交換チャネルでデータを交換し得る。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットを含む。本議論の目的では、ネットワーク(150)のアーキテクチャおよびトポロジーは、以下で説明されない限り、本開示の動作にとって重要ではない場合がある。
【0021】
図2は、開示された主題の用途の一例として、ストリーミング環境におけるビデオエンコーダおよびデコーダの配置を示す。本開示の主題は、例えば、ビデオ会議、デジタルテレビ、CD、DVD、メモリスティック、などを含むデジタルメディアへの圧縮ビデオの格納、など、他のビデオ対応の用途に等しく適用可能であり得る。
【0022】
図2に示されるように、ストリーミングシステム(200)は、ビデオソース(201)およびエンコーダ(203)を含むことができるキャプチャサブシステム(213)を含み得る。ビデオソース(201)は、例えば、デジタルカメラであってもよく、非圧縮ビデオサンプルストリーム(202)を作成するよう構成されてもよい。非圧縮ビデオサンプルストリーム(202)は、エンコードされたビデオビットストリームと比較して高いデータ量を提供する場合があり、カメラ(201)に結合されたエンコーダ(203)によって処理され得る。エンコーダ(203)は、以下でより詳細に説明されるように、開示される主題の態様を可能にするかまたは実装するためのハードウェア、ソフトウェア、またはそれらの組合せを含むことができる。エンコードされたビデオビットストリーム(204)は、サンプルストリームと比較して低いデータ量を含む場合があり、将来の使用のためにストリーミングサーバ(205)に記憶され得る。1つまたは複数のストリーミングクライアント(206)は、エンコードされたビデオビットストリーム(204)のコピーであり得るビデオビットストリーム(209)を取得するために、ストリーミングサーバ(205)にアクセスすることができる。
【0023】
実施形態では、ストリーミングサーバ(205)は、メディア対応ネットワーク要素(Media-Aware Network Element(MANE))としても機能し得る。例えば、ストリーミングサーバ(205)は、潜在的に異なるビットストリームをストリーミングクライアント(206)のうちの1つまたは複数に合わせるために、エンコードされたビデオビットストリーム(204)をプルーニングするよう構成され得る。実施形態では、MANEは、ストリーミングシステム(200)においてストリーミングサーバ(205)から別個に提供されてもよい。
【0024】
ストリーミングクライアント(206)は、ビデオデコーダ(210)およびディスプレイ(212)を含むことができる。ビデオデコーダ(210)は、例えば、エンコードされたビデオビットストリーム(204)の着信コピーである、ビデオビットストリーム(209)をデコードし、ディスプレイ(212)または他のレンダリングデバイス(図示せず)上にレンダリングされ得る発信ビデオサンプルストリーム(211)を作成することができる。一部のストリーミングシステムでは、ビデオビットストリーム(204、209)は、いくつかのビデオコーディング/圧縮規格に従ってエンコードされ得る。そのような規格の例は、ITU-T勧告H.265を含むが、これに限定されない。多用途ビデオコーディング(VVC)として非公式に知られているビデオコーディング規格が開発中である。本開示の実施形態は、VVCの文脈で使用され得る。
【0025】
図3は、本開示の一実施形態による、ディスプレイ(212)に取り付けられたビデオデコーダ(210)の例示的な機能ブロック図を示す。ビデオデコーダ(210)は、チャネル(312)、受信器(310)、バッファメモリ(315)、エントロピーデコーダ/パーサ(320)、スケーラ/逆変換ユニット(351)、イントラ予測ユニット(352)、動き補償予測ユニット(353)、アグリゲータ(355)、ループフィルタユニット(356)、参照ピクチャメモリ(357)、および現在のピクチャメモリ(358)を含み得る。少なくとも1つの実施形態では、ビデオデコーダ(210)は、集積回路、一連の集積回路、および/または他の電子回路を含み得る。ビデオデコーダ(210)はまた、関連付けられたメモリを有する1つまたは複数のCPU上で動作するソフトウェアにおいて部分的または全体的に具現化されてもよい。
【0026】
この実施形態および他の実施形態では、受信器(310)は、デコーダ(210)によってデコードされるべき1つまたは複数のコーディングされたビデオシーケンスを、一度に1つのコーディングされたビデオシーケンスずつ受信してもよく、各コーディングされたビデオシーケンスのデコードは他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、エンコードされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得るチャネル(312)から受信され得る。受信器(310)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリームとともに、エンコードされたビデオデータを受信し得る。受信器(310)は、コーディングされたビデオシーケンスを、その他のデータから分離し得る。ネットワークジッタに対抗するために、バッファメモリ(315)は、受信器(310)とエントロピーデコーダ/パーサ(320)(以降「パーサ」)との間に結合され得る。受信器(310)が十分な帯域幅および可制御性の記憶/転送デバイスから、またはアイソシンクロナス(isosynchronous)ネットワークからデータを受信しているときには、バッファ(315)は使用されなくてもよいか、または小さくてもよい。インターネットなどのベストエフォートパケットネットワークで使用する場合には、バッファ(315)が必要とされる場合があり、比較的大きくてもよく、適応サイズのものであってもよい。
【0027】
ビデオデコーダ(210)は、エントロピーコーディングされたビデオシーケンスからシンボル(321)を再構成するためのパーサ(320)を含み得る。これらのシンボルのカテゴリは、例えば、デコーダ(210)の動作を管理するために使用される情報、および潜在的に、図2に示されるようにデコーダに結合され得るディスプレイ(212)などのレンダリングデバイスを制御するための情報を含む。(1つまたは複数の)レンダリングデバイスのための制御情報は、補足拡張情報(Supplementary Enhancement Information(SEI))メッセージまたはビデオユーザビリティ情報(Video Usability Information(VUI))パラメータセットフラグメント(図示せず)の形態であり得る。パーサ(320)は、受信されたコーディングされたビデオシーケンスをパース/エントロピーデコードし得る。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従ってもよく、可変長コーディング、ハフマンコーディング、文脈依存性を伴うまたは伴わない算術コーディングなどを含む、当業者に周知の原理に従うことができる。パーサ(320)は、コーディングされたビデオシーケンスから、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内の画素のサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出し得る。サブグループは、Group of Pictures(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(320)はまた、コーディングされたビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトルなどの情報も抽出し得る。
【0028】
パーサ(320)は、シンボル(321)を作成するために、バッファ(315)から受信されたビデオシーケンスに対してエントロピーデコード/パース操作を行い得る。シンボル(321)の再構成は、コーディングされたビデオピクチャまたはその部分(インターおよびイントラピクチャ、インターおよびイントラブロックなど)のタイプ、ならびに他の要因に応じて、複数の異なるユニットを関与させることができる。どのユニットが関与し、どのように関与するかは、パーサ(320)によってコーディングされたビデオシーケンスからパースされたサブグループ制御情報によって制御され得る。パーサ(320)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために図示されていない。
【0029】
既に言及された機能ブロックの他に、デコーダ(210)は、以下で説明されるように、いくつかの機能ユニットに概念的に細分化され得る。商業的制約の下で動作する実際の実装形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示された主題を説明するために、以下の機能ユニットへの概念的な細分化が適切である。
【0030】
1つのユニットは、スケーラ/逆変換ユニット(351)であり得る。スケーラ/逆変換ユニット(351)は、量子化変換係数、ならびにどの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサ(320)から(1つまたは複数の)シンボル(321)として受信し得る。スケーラ/逆変換ユニット(351)は、アグリゲータ(355)に入力され得るサンプル値を含むブロックを出力することができる。
【0031】
場合によっては、スケーラ/逆変換(351)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができるブロックに関係することができる。そのような予測情報は、イントラピクチャ予測ユニット(352)によって提供され得る。場合によっては、イントラピクチャ予測ユニット(352)は、現在のピクチャメモリ(358)からの現在の(部分的に再構成された)ピクチャからフェッチされた周囲の既に再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成する。アグリゲータ(355)は、場合によっては、サンプルごとに、イントラ予測ユニット(352)が生成した予測情報を、スケーラ/逆変換ユニット(351)によって提供される出力サンプル情報に追加する。
【0032】
他の場合には、スケーラ/逆変換ユニット(351)の出力サンプルは、インターコーディングされた、潜在的に動き補償されたブロックに関係することができる。そのような場合、動き補償予測ユニット(353)は、予測に使用されるサンプルをフェッチするために、参照ピクチャメモリ(357)にアクセスすることができる。ブロックに関連するシンボル(321)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(355)によってスケーラ/逆変換ユニット(351)の出力に追加され得る(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(353)が予測サンプルをフェッチする参照ピクチャメモリ(357)内のアドレスは、動きベクトルによって制御され得る。動きベクトルは、例えば、X、Y、および参照ピクチャ成分を有することができるシンボル(321)の形態で、動き補償予測ユニット(353)にとって利用可能であり得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(357)からフェッチされたサンプル値の補間、動きベクトル予測機構なども含むことができる。
【0033】
アグリゲータ(355)の出力サンプルは、ループフィルタユニット(356)において様々なループフィルタリング技法を受け得る。ビデオ圧縮技術は、コーディングされたビデオビットストリームに含まれるパラメータによって制御され、パーサ(320)からのシンボル(321)としてループフィルタユニット(356)にとって利用可能とされるインループフィルタ技術を含むことができるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの(デコード順で)前の部分のデコード中に取得されたメタ情報に応答することもでき、以前に再構成およびループフィルタリングされたサンプル値に応答することもできる。
【0034】
ループフィルタユニット(356)の出力は、ディスプレイ(212)などのレンダリングデバイスに出力されてもよいとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(357)に記憶されてもよいサンプルストリームであってもよい。
【0035】
完全に再構成されると、特定のコーディングされたピクチャは、将来の予測のための参照ピクチャとして使用され得る。コーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(320)によって)参照ピクチャとして識別されると、現在の参照ピクチャは参照ピクチャメモリ(357)の一部になってもよく、次のコーディングされたピクチャの再構成を開始する前に、新しい現在のピクチャメモリが再割り振りされてもよい。
【0036】
ビデオデコーダ(210)は、ITU-T Rec.H.265などの規格に文書化され得る所定のビデオ圧縮技術に従ってデコード動作を行い得る。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスがビデオ圧縮技術文書または規格、特にその中のプロファイル文書に指定されているように、ビデオ圧縮技術または規格のシンタックスに準拠しているという意味で、使用されているビデオ圧縮技術または規格で指定されたシンタックスに準拠し得る。また、いくつかのビデオ圧縮技術または規格に準拠するために、コーディングされたビデオシーケンスの複雑さは、ビデオ圧縮技術または規格のレベルによって規定される範囲内でもあり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば毎秒メガサンプル単位で測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)の仕様、およびコーディングされたビデオシーケンス内でシグナリングされるHRDバッファ管理用のメタデータによってさらに制限されることができる。
【0037】
一実施形態では、受信器(310)は、エンコードされたビデオとともに追加の(冗長な)データを受信し得る。追加のデータは、(1つまたは複数の)コーディングされたビデオシーケンスの一部として含まれ得る。追加のデータは、データを適切にデコードするため、および/または元のビデオデータをより正確に再構成するために、ビデオデコーダ(210)によって使用され得る。追加のデータは、例えば、時間層、空間層、またはSNR強化層、冗長スライス、冗長ピクチャ、前方誤り訂正コードなどの形式であり得る。
【0038】
図4は、本開示の一実施形態による、ビデオソース(201)に関連付けられたビデオエンコーダ(203)の例示的な機能ブロック図を示す。ビデオエンコーダ(203)は、例えば、ソースコーダ(430)であるエンコーダ、コーディングエンジン(432)、(ローカル)デコーダ(433)、参照ピクチャメモリ(434)、予測器(435)、送信器(440)、エントロピーコーダ(445)、コントローラ(450)、およびチャネル(460)を含み得る。
【0039】
エンコーダ(203)は、エンコーダ(203)によってコーディングされるべき(1つまたは複数の)ビデオ画像をキャプチャし得る(エンコーダの一部ではない)ビデオソース(201)からビデオサンプルを受信し得る。ビデオソース(201)は、エンコーダ(203)によってコーディングされるべきソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCB、RGB、...)および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形式で提供し得る。メディアサービングシステムでは、ビデオソース(201)は、以前に準備されたビデオを記憶する記憶デバイスであり得る。ビデオ会議システムでは、ビデオソース(203)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、順番に見られるときに動きを与える複数の個別のピクチャとして提供され得る。ピクチャ自体は、画素の空間配列として編成されてもよく、各画素は、使用されるサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
【0040】
一実施形態によれば、エンコーダ(203)は、リアルタイムで、または用途によって必要とされる他の任意の時間制約の下で、ソースビデオシーケンスのピクチャをコーディングされたビデオシーケンス(443)にコーディングおよび圧縮し得る。適切なコーディング速度を強制することが、コントローラ(450)の1つの機能である。コントローラ(450)はまた、後述されるように他の機能ユニットを制御してもよく、これらのユニットに機能的に結合されてもよい。結合は、明確にするために図示されていない。コントローラ(450)によって設定されるパラメータは、レート制御関連のパラメータ(ピクチャスキップ、量子化器、レート歪み最適化技法のラムダ値など)、ピクチャサイズ、Group of Pictures(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。当業者は、コントローラ(450)の他の機能を、それらが特定のシステム設計用に最適化されたビデオエンコーダ(203)に関係し得るので、容易に識別することができる。
【0041】
一部のビデオエンコーダは、当業者が「コーディングループ」として容易に認識するもので動作する。過度に簡略化された説明として、コーディングループは、ソースコーダ(430)のエンコード部分(コーディングされるべき入力ピクチャおよび(1つまたは複数の)参照ピクチャに基づいてシンボルの作成を担う)と、特定のビデオ圧縮技術においてシンボルとコーディングされたビデオビットストリームとの間の圧縮が可逆であるときに(リモート)デコーダもまた作成することになるサンプルデータを作成するためにシンボルを再構成するエンコーダ(203)に組み込まれた(ローカル)デコーダ(433)とからなることができる。再構成されたサンプルストリームは、参照ピクチャメモリ(434)に入力され得る。シンボルストリームのデコードにより、デコーダの場所(ローカルまたはリモート)に関係なくビットイグザクトな結果が得られるため、参照ピクチャメモリの内容もまたローカルエンコーダとリモートエンコーダとの間でビットイグザクトになる。言い換えると、エンコーダの予測部分は、デコード中に予測を使用するときにデコーダが「見る」ことになるのとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えばチャネル誤差が原因で同期性を維持することができない場合には、結果として生じるドリフト)のこの基本原理は、当業者に知られている。
【0042】
「ローカル」デコーダ(433)の動作は、「リモート」デコーダ(210)の動作と同じであってもよく、これは、図3に関連して上記で既に詳細に説明されている。しかしながら、シンボルが利用可能であり、エントロピーコーダ(445)およびパーサ(320)によるコーディングされたビデオシーケンスへのシンボルのエンコード/デコードが可逆であり得るため、チャネル(312)、受信器(310)、バッファ(315)、およびパーサ(320)を含むデコーダ(210)のエントロピーデコード部分は、ローカルデコーダ(433)において完全に実装されない場合がある。
【0043】
この時点でなされ得る観察は、デコーダ内に存在するパース/エントロピーデコードを除く任意のデコーダ技術が、対応するエンコーダ内において、実質的に同一の機能形態で存在する必要があり得るということである。このため、開示される主題は、デコーダの動作に焦点を当てる。エンコーダ技術の説明は、それらが包括的に説明されたデコーダ技術の逆であり得るので、省略され得る。特定のエリアにおいてのみ、より詳細な説明が必要とされ、以下で提供される。
【0044】
その動作の一部として、ソースコーダ(430)は、「参照フレーム」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディングされたフレームを参照して入力フレームを予測的にコーディングする、動き補償予測コーディングを行い得る。このようにして、コーディングエンジン(432)は、入力フレームの画素ブロックと、入力フレームへの(1つまたは複数の)予測参照として選択され得る(1つまたは複数の)参照フレームの画素ブロックとの差をコーディングする。
【0045】
ローカルビデオデコーダ(433)は、ソースコーダ(430)によって作成されたシンボルに基づいて、参照フレームとして指定され得るフレームのコーディングされたビデオデータをデコードし得る。コーディングエンジン(432)の動作は、有利には、非可逆プロセスであり得る。コーディングされたビデオデータがビデオデコーダ(図4には示されていない)でデコードされ得るとき、再構築されたビデオシーケンスは、通常、多少の誤差を伴うソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ(433)は、参照フレームに対してビデオデコーダによって行われ得るデコードプロセスを再現し、再構築された参照フレームを参照ピクチャメモリ(434)に記憶させ得る。このようにして、エンコーダ(203)は、遠端ビデオデコーダによって(送信誤差なしで)取得される再構成された参照フレームと共通の内容を有する再構成された参照フレームのコピーをローカルに記憶し得る。
【0046】
予測器(435)は、コーディングエンジン(432)のための予測探索を行い得る。すなわち、コーディングされるべき新しいフレームに対して、予測器(435)は、サンプルデータ(候補参照画素ブロックとして)または新しいピクチャの適切な予測参照として役立ち得る参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて、参照ピクチャメモリ(434)を探索し得る。予測器(435)は、適切な予測参照を見つけるために、画素ブロックごとに1つのサンプルブロックで動作し得る。場合によっては、予測器(435)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(434)に記憶された複数の参照ピクチャから引き出された予測参照を有し得る。
【0047】
コントローラ(450)は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ビデオコーダ(430)のコーディング動作を管理し得る。前述のすべての機能ユニットの出力は、エントロピーコーダ(445)でエントロピーコーディングされ得る。エントロピーコーダは、例えば、ハフマンコーディング、可変長コーディング、算術コーディングなどのような当業者に既知の技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0048】
送信器(440)は、エントロピーコーダ(445)によって作成された(1つまたは複数の)コーディングされたビデオシーケンスを、エンコードされたビデオデータを記憶することになる記憶デバイスへのハードウェア/ソフトウェアリンクであり得る、通信チャネル(460)を介した送信に備えてバッファし得る。送信器(440)は、ビデオコーダ(430)からのコーディングされたビデオデータを、送信される他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージし得る。コントローラ(450)は、エンコーダ(203)の動作を管理し得る。コーディング中に、コントローラ(450)は、コーディングされた各ピクチャに特定のコーディングされたピクチャタイプを割り当ててもよく、これは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼし得る。例えば、ピクチャは多くの場合、イントラピクチャ(Iピクチャ)、予測ピクチャ(Pピクチャ)、または双方向予測ピクチャ(Bピクチャ)として割り当てられ得る。
【0049】
イントラピクチャ(Iピクチャ)は、シーケンス内の任意の他のフレームを予測のソースとして使用せずにコーディングおよびデコードされ得るピクチャであり得る。いくつかのビデオコーデックは、例えば独立デコーダリフレッシュ(IDR)ピクチャなどを含む、様々なタイプのイントラピクチャを可能にする。当業者は、Iピクチャのこれらの変形、ならびにそれらのそれぞれの用途および特徴を認識している。
【0050】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコードされ得るピクチャであり得る。
【0051】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコードされ得るものであり得る。同様に、複数予測ピクチャは、単一のブロックの再構築のために3つ以上の参照ピクチャおよび関連するメタデータを使用することができる。
【0052】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、各々4×4、8×8、4×8、または16×16のサンプルのブロック)に空間的に細分され、ブロックごとにコーディングされ得る。ブロックは、ブロックそれぞれのピクチャに適用されたコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよく、または同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、空間予測を介して、または以前にコーディングされた1つの参照ピクチャを参照する時間予測を介して、非予測的にコーディングされ得る。Bピクチャの画素ブロックは、空間予測を介して、または以前にコーディングされた1つまたは2つの参照ピクチャを参照する時間予測を介して、非予測的にコーディングされ得る。
【0053】
ビデオコーダ(203)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を行い得る。その動作において、ビデオコーダ(203)は、入力ビデオシーケンスにおける時間的および空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を行い得る。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または規格によって指定されたシンタックスに準拠し得る。
【0054】
一実施形態では、送信器(440)は、エンコードされたビデオとともに追加のデータを送信し得る。ビデオコーダ(430)は、コーディングされたビデオシーケンスの一部としてそのようなデータを含め得る。追加のデータは、時間層/空間層/SNR強化層、冗長なピクチャおよびスライスなどの他の形式の冗長データ、補足拡張情報(SEI)メッセージ、視覚ユーザビリティ情報(VUI)パラメータセットフラグメントなどを含み得る。
【0055】
本開示の実施形態の特定の態様をより詳細に説明する前に、本明細書の残りの部分で参照されるいくつかの用語が以下で導入される。
【0056】
「サブピクチャ」は、以降、場合によっては、意味的にグループ化され、変更された解像度で独立してコーディングされ得るサンプル、ブロック、マクロブロック、コーディングユニット、または同様のエンティティの矩形の配置を指す。1つまたは複数のサブピクチャがピクチャを形成し得る。1つまたは複数のコーディングされたサブピクチャは、コーディングされたピクチャを形成し得る。1つまたは複数のサブピクチャがピクチャにアセンブルされてもよく、1つまたは複数のサブピクチャがピクチャから抽出されてもよい。ある特定の環境では、1つまたは複数のコーディングされたサブピクチャは、サンプルレベルへのコーディングされたピクチャへのトランスコーディングを行わずに、圧縮された領域においてアセンブルされてもよく、同一またはある特定の他のケースでは、1つまたは複数のコーディングされたサブピクチャが、圧縮された領域におけるコーディングされたピクチャから抽出されてもよい。
【0057】
「適応解像度変更(Adaptive Resolution Change)」(ARC)は、以降、例えば参照ピクチャのリサンプリングによって、コーディングされたビデオシーケンス内のピクチャまたはサブピクチャの解像度の変更を可能にするメカニズムを指す。「ARCパラメータ」は、以降、適応解像度変更を行うために必要な制御情報を指し、例えば、フィルタパラメータ、スケーリングファクタ、出力および/または参照ピクチャの解像度、様々な制御フラグなどを含み得る。
【0058】
VP9は、45度から207度までの角度に対応する8つの方向性モードをサポートする。方向性テクスチャにおけるより多様な空間的冗長性を活用するために、AV1では、方向性イントラモードは、図5に示されるように、より細かい粒度で設定された角度に拡張される。元の8つの角度はわずかに変更され、公称角度とされ、これらの8つの公称角度は、V_PRED(501)、H_PRED(502)、D45_PRED(503)、D135_PRED(504)、D113_PRED(505)、D157_PRED(506)、D203_PRED(507)、およびD67_PRED(508)と名付けられる。公称角度ごとに、それは7つのより細かい角度を有するので、AV1は合計56の方向角度を有する。予測角度は、公称イントラ角度に角度デルタを加えたもので提示されてもよく、これは3度のステップサイズの-3~3倍である。AV1では、5つの非角度平滑モードとともに8つの公称モードが最初にシグナリングされてもよく、次いで、現在のモードが角度モードである場合、対応する公称角度に対する角度デルタを示すためにインデックスがさらにシグナリングされてもよい。一般的な方法によってAV1における方向性予測モードを実装するために、AV1の56の方向性イントラ予測モードはすべて、各画素を参照サブ画素位置に投影し、2タップ双線形フィルタによって参照画素を補間する統一された方向予測子を用いて実装される。
【0059】
AV1には、DC、PAETH、SMOOTH、SMOOTH_V、およびSMOOTH_Hの5つの非方向性平滑イントラ予測モードがある。DC予測では、左および上の隣接サンプルの平均値が予測対象のブロックの予測子として使用される。PAETH予測子の場合、最初に上、左、および左上の参照サンプルがフェッチされ、次いで(上+左-左上)に最も近い値が予測対象の画素の予測子として設定される。図6は、現在のブロックにおける1つの画素(600)の上(601)、左(602)、および左上(603)サンプルの位置を示す。SMOOTHモード、SMOOTH_Vモード、およびSMOOTH_Hモードの場合、これらは、垂直方向もしくは水平方向の二次補間、または両方向の平均値を使用してブロックを予測する。
【0060】
エッジ上の参照との減衰する空間的相関を捉えるために、FILTER INTRAモードはルマブロックのために設計されている。AV1に対して、5つのフィルタイントラモードが事前に設計され、各々が、4×2パッチ内の画素とそれに隣接する7つの近傍との相関を反映する8つの7タップフィルタのセットで表される。言い換えれば、7タップフィルタの重み付け係数は、位置に依存する。例えば、8×8ブロックを取り、それは8つの4×2パッチに分けられ、これは図7に示されている。これらのパッチは、図7において、B0(700)、B1(701)、B2 may(702)、B3(703)、B4(704)、B5(705)、B6(706)、B7(707)で示されている。各パッチについて、R0~R6で示される対応する7つの近傍は、現在のパッチ内の画素を予測するために使用され得る。パッチB0(700)について、すべての近傍は既に再構築されていてもよい。しかしながら、他のパッチについては、近傍のうちのいくつかが再構築されていなくてもよく、その場合、直近の近傍の予測値が参照値として使用される。例えば、パッチB7(707)のすべての近傍が再構築されていないので、代わりに近傍の予測サンプルが使用される。
【0061】
いくつかの実施形態では、ルマからのクロマ(CfL:chroma from luma)は、一致する再構築されたルマ画素の線形関数としてクロマ画素をモデル化するクロマのみのイントラ予測子である。CfL予測は、以下のように表される:
CfL(α)=α×LAC+DC 式(1)
ただし、LACはルマ成分のAC寄与を表し、αは線形モデルのパラメータを表し、DCはクロマ成分のDC寄与を表す。これに関して、再構成されたルマ画素がクロマ解像度にサブサンプリングされ、次いで平均値が減算されてAC寄与を形成する。AC寄与からクロマAC成分を近似するために、いくつかの従来技術にあるようにデコーダがスケーリングパラメータを計算することを必要とするのではなく、AV1 CfLは、元のクロマ画素に基づいてパラメータαを決定し、それらをビットストリーム内でシグナリングする。これは、デコーダの複雑さを低減し、より正確な予測を得る。クロマ成分のDC寄与に関して、それは、ほとんどのクロマコンテンツに十分であり、成熟した高速の実施態様を有するイントラDCモードを使用して計算される。
【0062】
AV1では、CIIPモードは、イントラ予測とインター予測とを組み合わせて最終的な予測ブロックに到達する。イントラ予測は、DC、V_PRED、H_PRED、およびSMOOTHモードを使用してなされ得る。イントラおよびインター予測は、ブロックを様々な角度で2つのセクションに分けるウェッジマスクを使用して組み合わされ得る。一方のセクションはイントラ予測されたサンプルで満たされてもよく、他方のセクションはインター予測されたサンプルで満たされてもよく、予め定義された重みセットは、イントラ予測重みをその予測方向に沿って徐々に減少させる。CIIPモードは、図8に列挙され得る。複合イントラ予測モードでは、イントラ予測とインター予測との組合せとして予測ブロックが導出される。イントラ予測ブロックは、DC_PRED、V_PRED、H_PRED、SMOOTHのいずれかのモードを予測モードとするイントラ予測を使用して導出され、インター予測ブロックは、並進運動を用いた単一参照インター予測を使用して導出される。イントラ予測サンプルおよびインター予測サンプルに対して重み付けがどのように導出されるかに応じて、規則的なイントラ予測モードおよびウェッジベースのイントラ予測モードを含む2つの複合イントラ予測モードが適用され得る。
【0063】
異なるイントラ予測モードについて、重み付けは異なって導出されてもよく、重み付け値は予測方向に沿って減少する。より具体的には、イントラ予測サンプルP0(x,y)に適用される重みは、以下のように記述される。
【数1】
ただし、sizeScaleは、ブロック幅(W)およびブロック高さ(H)を用いて以下のように導出され、
sizeScale=128/max(W,H) 式(3)
WeightLUTは、図9で説明されるハードコーディングされたルックアップテーブルである。
【0064】
いくつかの実施形態では、複合インターおよびイントラ予測はまた、ウェッジベースの重み付け方式を使用して適用され得る。より具体的には、予測ブロックはイントラ予測ブロックとインター予測ブロックとの組合せであってもよく、重み付けは、0から15までの範囲のウェッジパーティションパターンのインデックスを指定するシグナリングされたシンタックスwedge_indexによって指定されるウェッジパーティションパターンを使用して指定されてもよい。通常のウェッジベースの動き予測モードとは異なり、ウェッジベースのイントラ動き予測モードでは、支配的な重み付けを有するパーティションを指定するwedge_signの値はシグナリングされず、導出される。
【0065】
複合ウェッジベース予測モードでは、各ブロックサイズについて、16個の事前定義された2次元重み付け配列のセットがハードコーディングされ得る。各配列において、重みは、事前定義されたウェッジパーティションパターンをサポートするように配置され得る。各ウェッジパーティションパターンでは、2つのウェッジパーティションが特定のエッジ方向および位置に沿って指定され得る。2つのウェッジパーティションのうちの一方に位置するサンプルの場合、重みはほとんどが64に設定され得る。2つのウェッジパーティションのうちの他方に位置するサンプルの場合、重みは0に設定され得る。ウェッジパーティション境界に沿って、重みは、事前定義されたルックアップテーブルに従って0と64との間の値に設定され得る。
【0066】
ウェッジベース予測モードでは、ウェッジパーティションパターンインデックス(0から15までの範囲)を指定するwedge_indexと、2つのパーティションのうちのどちらがどの予測に割り当てられるべきかを指定するwedge_signという2つのシンタックス要素が定義され得る。
【0067】
AV1の通常のCIIPモードでは、各サンプルのイントラ予測およびインター予測に適用される重み付けは固定値である。しかしながら、異なるコーディングブロックについて、より柔軟な重み付けは、統計をより良好に適合させ、潜在的により良好なコーディング性能を達成し得る。
【0068】
本開示の実施形態は、別々に使用され、または任意の順序で組み合わされることに向けられる。より具体的には、本開示の実施形態は、VP9、AV1、AV2、AVS3、HEVCおよびVVCなどの異なるビデオコーディング規格に適用され得る方法に向けられる。
【0069】
ブロックという用語は、コーディングブロック、予測ブロック、または変換ブロックとして解釈され得る。ブロックサイズは、ブロックの幅もしくは高さ、または幅および高さの最大値、または幅および高さの最小値、またはブロックの領域サイズ(幅*高さ)、またはアスペクト比(幅:高さ、または高さ:幅)のいずれかを指し得る。
【0070】
クロマチャネルという用語は、いくつかの実施形態では、Cb色成分とCr色成分の両方、またはU色成分とV色成分の両方を含む。ルマチャネルという用語は、いくつかの実施形態では、ルマ色成分またはY色成分を含む。
【0071】
いくつかの実施形態では、適応重み付けは、CIIPモードにおいてイントラ予測部およびインター予測部に適用されてもよく、重み付けは、近傍の再構成/予測サンプルを使用して導出またはランク付けまたはシグナリングされてもよい。いくつかの実施形態では、近傍の再構成/予測サンプルのテンプレート領域が、図10に示されるように定義され得る。複数の重み付け候補が、CIIPを使用して予測サンプルを生成するためにこのテンプレート領域に適用されてもよく、次いで、各重み付け候補に対してコスト値が計算されてもよく、最小コストを提供する重み付けは、CIIPモードで現在のブロックをエンコードするために使用される重み付けとして選択されてもよい。
【0072】
いくつかの実施形態では、テンプレート領域は、再構成サンプルの上M行および左N列を含む。MおよびNの例示的な値は、1、2、3、4、5、6、7、8...を含むが、これらに限定されない。一例では、上記の図10に示されるように、テンプレート領域は、上、左および左上の近傍の再構成サンプルの組合せを含んでもよく、またはテンプレート領域は、右上および左下の近傍の再構成サンプルの組合せをさらに含んでもよい。
【0073】
いくつかの実施形態では、コスト値は、重み付け候補を使用して重み付きイントラおよびインター予測によって生成されたテンプレート領域内の再構成サンプルとテンプレート領域内の予測サンプルとの間の予測誤差(例えば、二乗誤差の和、絶対差の和)として定義され得る。一例では、重み付け候補は、{a/N、(N-a)/Nを含み、ここで、a/Nはイントラ予測部に適用される重み付けであり、(N-a)/Nはインター予測部に適用される重み付けであってもよい。パラメータaの例示的な値は、1、2、...、N-1を含む。Nの例示的な値は、2、4、8、16、32、64、128を含むが、これらに限定されない。
【0074】
いくつかの実施形態では、近傍の再構成サンプルのテンプレート領域が定義されてもよく、次いで、CIIPを使用して予測サンプルを生成するためにこのテンプレート領域に複数の重み付け候補が適用され、次いで、コスト値が計算されてもよく、コスト値は、それらの重み付け候補をランク付けするために使用されてもよい。重み付け候補のランク付けされたインデックスは、エンコードのためにどの重み付けが適用されるかを識別するためにビットストリーム内でシグナリングされ得る。
【0075】
いくつかの実施形態では、適応重み付け候補と定数重み付けの両方がCIIPモードで適用され得る。適応重み付けは、イントラ予測値とインター予測値との間の重み付けがサンプル位置に応じて変化することができることを意味する。定数重み付けは、重み付けが、予測ブロック内のサンプル位置に関係なく同じ値であり得ることを意味する。
【0076】
いくつかの実施形態では、サンプル適応型重み付けと定数重み付けとの間の選択は、明示的にシグナリングされ得る。適応重み付けは、AV1の通常のCIIPモードと同じ方法で導出され得る。適応重み付けは、ルックアップテーブル(LUT)を使用して導出され得る。例えば、複数のブロックサイズおよびモード依存LUTが定義されてもよい。サンプル位置は、LUTで定義された重み付けに対するインデックスを導出するために使用され得る。
【0077】
いくつかの実施形態では、定数重み付けの場合、重み付けは、事前定義されるか、または選択された重み付けを指定するインデックスで明示的にシグナリングされるか、または近傍の再構成サンプル、近傍のブロックがイントラもしくはインター予測モードまたはCIIPモードによってコーディングされているかどうか、近傍のCIIP重み付けを含むがこれらに限定されない近傍のコーディングされた情報に基づいて暗黙的に導出され得る。
【0078】
図11は、複合インターイントラ予測モードのイントラ予測サンプルとインター予測サンプルとの間の重み付けを導出するためのプロセス1100の一実施形態のフローチャートを示す。プロセス(1100)は、デコーダ(210)などのデコーダによって行われ得る。プロセスは、近傍の再構成または予測サンプルのテンプレート領域が定義される動作(1101)で開始し得る。プロセスは、動作(1102)に進み、1つまたは複数の適応重み付け候補がテンプレート領域に適用される。適応重み付け候補は、CIIPを使用して1つまたは複数の予測サンプルを生成するために使用される。
【0079】
プロセスは、動作(1103)に進み、1つまたは複数の適応重み付け候補の各々に対するコスト値が計算される。プロセスは、動作(1104)に進み、最も低いコストを提供する適応重み付け候補が、CIIPを用いてブロックをデコードするために使用される重み付けとして選択される。プロセスは、動作(1105)に進み、選択された重み付けに基づくブロックがデコードされる。
【0080】
上述した本開示の実施形態の技法は、コンピュータ可読命令を使用し、1つまたは複数のコンピュータ可読メディアに物理的に記憶されたコンピュータソフトウェアとして実装されることができる。例えば、図12は、開示された主題の実施形態を実装するのに適したコンピュータシステム(1200)を示す。
【0081】
コンピュータソフトウェアは、任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされることができ、これは、コンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって、直接に、または解釈、マイクロコードの実行などを介して実行されることができる命令を含むコードを作成するために、アセンブリ、コンパイル、リンクなどの機構に従ってもよい。
【0082】
命令は、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネットデバイスなどを含む、様々な種類のコンピュータまたはその構成要素で実行されることができる。
【0083】
コンピュータシステム(1200)に関して図12に示される構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関するいかなる限定を示唆することも意図されない。また、構成要素の構成について、コンピュータシステム(1200)の例示的な実施形態で示される構成要素のいずれか1つまたはその組合せに関するいかなる依拠または要件を有するとも解釈されるべきでない。
【0084】
コンピュータシステム(1200)は特定のヒューマンインターフェース入力デバイスを含んでもよい。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(音声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を通じて1人または複数の人間のユーザによる入力に応答してもよい。ヒューマンインターフェースデバイスは、音声(発話、音楽、周囲音など)、画像(走査画像、静止画カメラで取得される写真画像など)、ビデオ(二次元ビデオ、立体ビデオを含む三次元ビデオなど)などの人による意識的な入力に必ずしも直接関与しない、いくつかの媒体の捕捉にさらに使用されることができる。
【0085】
入力ヒューマンインターフェースデバイスは、キーボード(1201)、マウス(1202)、トラックパッド(1203)、タッチスクリーン(1210)、データグローブ、ジョイスティック(1205)、マイクロフォン(1206)、スキャナ(1207)、およびカメラ(1208)のうちの1つまたは複数(各々のただ1つが図示される)を含み得る。
【0086】
コンピュータシステム(1200)はなんらかのヒューマンインターフェース出力デバイスも含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および臭い/味を介して、1人または複数の人間ユーザの感覚を刺激している場合がある。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1210)、データグローブ、またはジョイスティック(1205)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスも存在することができる)を含み得る。例えば、そのようなデバイスは、音声出力デバイス(スピーカ(1209)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1210)など、それぞれタッチスクリーン入力機能の有無にかかわらず、それぞれ触覚フィードバック機能の有無にかかわらず、そのいくつかはステレオグラフィック出力などの手段を通して、2次元視覚出力または3次元を超える出力を出力できるものもある、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ、およびスモークタンク(図示せず))、およびプリンタ(図示せず)であり得る。
【0087】
コンピュータシステム(1200)は、CD/DVDまたはそれに類する媒体(1221)を伴うCD/DVD ROM/RW(1220)を含む光媒体、サムドライブ(1222)、リムーバブルハードドライブやソリッドステートドライブ(1223)、テープやフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用のROM/ASIC/PLDベースのデバイスなど、人間による取扱いが可能な記憶デバイスおよびその関連媒体を含むこともできる。
【0088】
ここで開示される主題に関して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波その他の一時的な信号は含まないことを当業者にはさらに理解されたい。
【0089】
コンピュータシステム(1200)はまた、1つまたは複数の通信ネットワークへのインターフェースを含むことができる。ネットワークは、例えば、無線、有線、光とすることができる。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両および産業用、リアルタイム、遅延耐性、などとすることができる。ネットワークの例は、Ethernetなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルテレビ、衛星テレビおよび地上波テレビを含むテレビの有線または無線ワイドエリアデジタルネットワーク、CANBusを含む車両用および産業用などを含む。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(1249)(例えば、コンピュータシステム(1200)のUSBポートなど)に接続された外部ネットワークインターフェースアダプタを必要とし、他のものは一般に、以下に記載されるようにシステムバスへの接続によってコンピュータシステム(1200)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラネットワークインターフェース)。これらのネットワークのいずれを用いても、コンピュータシステム(1200)は相手方と通信することができる。そのような通信は、例えば、ローカルまたはワイドエリアデジタルネットワークを使用して、他のコンピュータシステムに対して、単方向、受信のみ(例えば、放送テレビ)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向であることができる。そのような通信は、クラウドコンピューティング環境(1255)への通信を含むことができる。特定のプロトコルおよびプロトコルスタックは、上述したように、それらのネットワークおよびネットワークインターフェースの各々で使用されることができる。
【0090】
前述のヒューマンインターフェースデバイス、ヒューマンアクセス可能な記憶デバイス、およびネットワークインターフェース(1254)は、コンピュータシステム(1200)のコア(1240)に接続され得る。
【0091】
コア(1240)は、1つまたは複数の中央処理装置(CPU)(1241)、グラフィックス処理装置(GPU)(1242)、フィールドプログラマブルゲートエリア(FPGA)(1243)の形態の特殊なプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(1244)などを含むことができる。これらのデバイスは、読取り専用メモリ(ROM)(1245)、ランダムアクセスメモリ(1246)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量ストレージ(1247)とともに、システムバス(1248)を通じて接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1248)は1つまたは複数の物理プラグの形でアクセス可能であることができ、追加のCPU、GPUなどによる拡張を可能にする。周辺デバイスは、コアのシステムバス(1248)に直接に、または周辺バス(1249)を通じて、取り付けられることができる。周辺バス用のアーキテクチャは、PCI、USBなどを含む。グラフィックスアダプタ(1250)が、コア(1240)に含まれてもよい。
【0092】
CPU(1241)、GPU(1242)、FPGA(1243)およびアクセラレータ(1244)は、組み合わさって上記のコンピュータコードを形成することができるいくつかの命令を実行することができる。そのコンピュータコードは、ROM(1245)またはRAM(1246)に記憶されることができる。過渡的なデータもRAM(1246)に記憶されることができる一方で、永続的なデータが例えば内部大容量ストレージ(1247)に記憶されることができる。1つまたは複数のCPU(1241)、GPU(1242)、大容量ストレージ(1247)、ROM(1245)、RAM(1246)などに密接に関連付けられことができるキャッシュメモリを用いることにより、メモリデバイスのいずれにも高速記憶および読み出しを行うことが可能にされることができる。
【0093】
コンピュータ可読媒体は、様々なコンピュータ実装動作を行うためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計され構築されたものであることができ、またはコンピュータソフトウェアの技術分野の当業者によく知られ、当業者が使用可能な種類のものであることができる。
【0094】
限定としてではなく一例として、アーキテクチャを有するコンピュータシステム(1200)、特にコア(1240)は、プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が1つまたは複数の有形のコンピュータ可読媒体中で実施されるソフトウェアを実行する結果として機能を発揮することができる。このようなコンピュータ可読媒体は上記で紹介されたユーザがアクセス可能な大容量ストレージに関連付けられた媒体であることができるだけでなく、コア内部大容量ストレージ(1247)やROM(1245)など、非一時的な特性を持つコア(1240)の特定のストレージであることもできる。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶されてコア(1240)によって実行されることができる。コンピュータ可読媒体は個々の要求に応じて1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1240)、特にコア(1240)内のプロセッサ(CPU、GPU、FPGAなどを含む)に、本明細書に記載されている特定のプロセスまたは特定のプロセスの特定の部分を実行させることができ、これは、RAM(1246)に記憶されるデータ構造を決めることと、ソフトウェアによって定められたプロセスに従ってこのようなデータ構造を修正することとを含む。これに加えて、またはこれに代わるものとして、コンピュータシステムは結線によるロジックの結果として機能を発揮したり、回路(例えばアクセラレータ(1244))において他の仕方で実施して機能を発揮したりすることができ、これは、本出願で説明されている特定のプロセスまたは特定のプロセスの特定の部分を実行するのに、ソフトウェアの代わりに動作したり、ソフトウェアと協働したりすることができる。必要に応じて、「ソフトウェア」と記載されている場合にはロジックを包含すること、およびその逆ができる。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアおよびソフトウェアの任意の適切な組合せを包含する。
【0095】
前述の開示は、例示および説明を提供しているが、網羅的であることも、実装形態を厳密に開示の形態に限定することも意図されていない。修正形態および変形形態が上記の開示に照らして可能であり、または実装形態の実践から取得されてもよい。
【0096】
本明細書に開示されるプロセス/フローチャート内のブロックの特定の順序または階層は、例示的な手法の例示であることが理解される。設計上の選好に基づいて、プロセス/フローチャート内のブロックの特定の順序または階層が再配置され得ることが理解される。また、いくつかのブロックが組み合わされ、または省略されてもよい。添付の方法請求項は、サンプルの順序で様々なブロックの要素を提示し、提示された特定の順序または階層に限定されることを意味しない。
【0097】
いくつかの実施形態は、任意の可能な技術的詳細の統合レベルでシステム、方法、および/またはコンピュータ可読媒体に関してもよい。さらに、上述した構成要素のうちの1つまたは複数は、コンピュータ可読媒体上に記憶され、少なくとも1つのプロセッサによって実行可能な命令として実装され得る(および/または少なくとも1つのプロセッサを含み得る)。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読非一時的記憶媒体を含み得る。
【0098】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶し得る有形デバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上記の任意の適切な組合せであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下を、すなわち、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM:random access memory)、読み出し専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み出し専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、命令が記録されたパンチカードまたは溝内の隆起構造などの機械的にエンコードされたデバイス、および上記の任意の適切な組合せを含む。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または電線を介して伝送される電気信号などの一時的な信号自体であると解釈されるべきではない。
【0099】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされることができ、またはネットワーク、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/もしくは無線ネットワークを介して外部コンピュータもしくは外部記憶デバイスにダウンロードされることができる。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含み得る。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0100】
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、またはSmalltalkもしくはC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソースコードもしくはオブジェクトコードのいずれかであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータもしくはサーバ上で実行し得る。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよいし、または(例えば、インターネットサービスプロバイダを使用したインターネットを介して)外部コンピュータへの接続がなされてもよい。いくつかの実施形態では、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA:programmable logic array)を含む電子回路が、態様または動作を行うために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行し得る。
【0101】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行される命令が、フローチャートおよび/またはブロック図のブロックで指定された機能/動作を実装するための手段を作成するようにマシンを生成するために、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供され得る。これらのコンピュータ可読プログラム命令はまた、記憶された命令を有するコンピュータ可読記憶媒体が、フローチャートおよび/またはブロック図のブロックで指定された機能/動作の態様を実装する命令を含む製品を含むように、コンピュータ、プログラマブルデータ処理装置、および/または他のデバイスに特定の方法で機能するように指示し得るコンピュータ可読記憶媒体に記憶され得る。
【0102】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令がフローチャートおよび/またはブロック図のブロックで指定された機能/動作を実装するように、コンピュータ実装プロセスを生成するために一連の動作ステップがコンピュータ、他のプログラマブル装置、または他のデバイス上で行われるよう、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイス上にロードされ得る。
【0103】
図面のフローチャートおよびブロック図は、様々な実施形態によるシステム、方法、およびコンピュータ可読媒体の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部を表し得る。方法、コンピュータシステム、およびコンピュータ可読媒体は、図に示されているものと比べて、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。一部の代替の実装形態では、ブロックに記載された機能は、図に記載されているのとは異なる順序で実行されてもよい。例えば、連続して示されている2つのブロックは、実際には、同時にまたは実質的に同時に実行されてもよく、またはブロックは、関連する機能に応じて、場合によっては逆の順序で実行されてもよい。ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組合せは、指定された機能もしくは動作を行う、または専用ハードウェアとコンピュータ命令との組合せを実現する、専用ハードウェアベースのシステムによって実装されることができることにも留意されたい。
【0104】
本明細書に記載されるシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組合せの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実施態様を限定するものではない。したがって、システムおよび/または方法の動作ならびに挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づいてシステムおよび/または方法を実装するように設計され得ることが理解される。
【0105】
略語:
AOMedia Video 1
HEVC:高効率ビデオコーディング(High Efficiency Video Coding)
VVC:多用途ビデオコーディング(Versatile Video Coding)
CfL:ルマからのクロマ(Chroma from Luma)
SDT:半分離ツリー(Semi Decoupled Tree)
SDP:半分離分割(Semi Decoupled Partitioning)
SB:スーパーブロック(Super Block)
MRLS:多重参照線選択(Multiple Reference Line Selection)
MRLP:多重参照線予測(Multiple Reference Line Prediction)
CDF:累積密度関数(Cumulative Density Function)
【0106】
上記の開示は、以下に列挙される実施形態も包含する。
【0107】
(1)ビデオデコーダ内の1つまたは複数のプロセッサによって実行される方法であって、現在のピクチャを含むコーディングされたビデオビットストリームを受信するステップと、現在のピクチャに含まれるブロックについて、ブロックの近傍の再構成サンプルまたは予測サンプルのテンプレート領域を定義するステップと、複合インターイントラ予測モードを使用して1つまたは複数の予測サンプルを生成するために、1つまたは複数の適応重み付け候補をテンプレート領域に適用するステップと、1つまたは複数の適応重み付け候補の各々についてコスト値を計算するステップと、ブロックをデコードするために使用される重み付けとして最も低いコストを提供する1つまたは複数の適応重み付け候補から適応重み付け候補を選択するステップと、選択された適応重み付けおよび生成された1つまたは複数の予測サンプルに基づいてブロックをデコードするステップとを含む、方法。
【0108】
(2)1つまたは複数の適応重み付け候補は、1つまたは複数の近傍の再構築または予測サンプルを使用して導出、ランク付けまたはシグナリングされる、特徴(1)に記載の方法。
【0109】
(3)テンプレート領域は、再構成サンプルの上M行および左N列を含む、特徴(1)または(2)に記載の方法。
【0110】
(4)テンプレート領域の再構成サンプルは、上、左、および左上に近傍の再構成サンプルの1つまたは複数の組合せと、右上および左下に近傍の再構成サンプルの組合せとを含む、特徴(3)に記載の方法。
【0111】
(5)コスト値は、テンプレート領域内の再構成サンプル間の予測誤差として定義され、テンプレート領域内の予測サンプルは、選択された適応重み付け候補を使用して重み付きイントラおよびインター予測によって生成される、特徴(3)に記載の方法。
【0112】
(6)1つまたは複数の適応重み付け候補は{a/N,(N-a)/Nを含み、a/Nはイントラ予測ブロックに適用される重み付けであり、(N-a)/Nはインター予測ブロックに適用される重み付けである、特徴(1)~(5)のいずれか1つに記載の方法。
【0113】
(7)コスト値は、1つまたは複数の適応重み付け候補のランク付けされたインデックスを計算するために使用され、ランク付けされたインデックスは、どの重み付けがエンコードのために適用されるかを識別するためにビットストリームでシグナリングされる、特徴(1)~(6)のいずれか1つに記載の方法。
【0114】
(8)1つまたは複数の適応重み付け候補は、複合インターイントラ予測モードにおける定数重み付けとともに適用される、特徴(1)~(7)のいずれか1つに記載の方法。
【0115】
(9)1つまたは複数の適応重み付け候補は、ルックアップテーブルを使用して導出される、特徴(8)に記載の方法。
【0116】
(10)コンピュータプログラムコードを記憶するよう構成された少なくとも1つのメモリと、コンピュータプログラムコードにアクセスし、コンピュータプログラムコードによって命令されるように動作するよう構成された少なくとも1つのプロセッサとを備える装置であって、コンピュータプログラムコードは、少なくとも1つのプロセッサに、現在のピクチャを含むコーディングされたビデオビットストリームを受信させるよう構成された受信コードと、少なくとも1つのプロセッサに、現在のピクチャに含まれるブロックについて、ブロックの近傍の再構成サンプルまたは予測サンプルのテンプレート領域を定義させるよう構成された定義コードと、少なくとも1つのプロセッサに、複合インターイントラ予測モードを使用して1つまたは複数の予測サンプルを生成するために、1つまたは複数の適応重み付け候補をテンプレート領域に適用させるよう構成された適用コードと、少なくとも1つのプロセッサに、1つまたは複数の適応重み付け候補の各々についてコスト値を計算させるよう構成された計算コードと、少なくとも1つのプロセッサに、ブロックをデコードするために使用される重み付けとして最も低いコストを提供する1つまたは複数の適応重み付け候補から適応重み付け候補を選択させるよう構成された選択コードと、少なくとも1つのプロセッサに、選択された適応重み付けおよび生成された1つまたは複数の予測サンプルに基づいてブロックをデコードさせるよう構成されたデコーディングコードとを含む、装置。
【0117】
(11)1つまたは複数の適応重み付け候補は、1つまたは複数の近傍の再構築または予測サンプルを使用して導出、ランク付けまたはシグナリングされる、特徴(10)に記載の装置。
【0118】
(12)テンプレート領域は、再構成サンプルの上M行および左N列を含む、特徴(10)または(11)に記載の装置。
【0119】
(13)テンプレート領域の再構成サンプルは、上、左、および左上に近傍の再構成サンプルの組合せと、右上および左下に近傍の再構成サンプルの組合せとを含む、特徴(12)に記載の装置。
【0120】
(14)コスト値は、テンプレート領域内の再構成サンプル間の予測誤差として定義され、テンプレート領域内の予測サンプルは、選択された適応重み付け候補を使用して重み付きイントラおよびインター予測によって生成される、特徴(12)に記載の装置。
【0121】
(15)1つまたは複数の適応重み付け候補は{a/N,(N-a)/Nを含み、a/Nはイントラ予測ブロックに適用される重み付けであり、(N-a)/Nはインター予測ブロックに適用される重み付けである、特徴(10)~(14)のいずれか1つに記載の装置。
【0122】
(16)コスト値は、1つまたは複数の適応重み付け候補のランク付けされたインデックスを計算するために使用され、ランク付けされたインデックスは、どの重み付けがエンコードのために適用されるかを識別するためにビットストリームでシグナリングされる、特徴(10)~(15)のいずれか1つに記載の装置。
【0123】
(17)1つまたは複数の適応重み付け候補は、複合インターイントラ予測モードにおける定数重み付けとともに適用される、特徴(10)~(16)のいずれか1つに記載の装置。
【0124】
(18)1つまたは複数の適応重み付け候補は、ルックアップテーブルを使用して導出される、特徴(17)に記載の方法。
【0125】
(19)少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、現在のピクチャを含むコーディングされたビデオビットストリームを受信させ、現在のピクチャに含まれるブロックについて、ブロックの近傍の再構成サンプルまたは予測サンプルのテンプレート領域を定義させ、複合インターイントラ予測モードを使用して1つまたは複数の予測サンプルを生成するために、1つまたは複数の適応重み付け候補をテンプレート領域に適用させ、1つまたは複数の適応重み付け候補の各々についてコスト値を計算させ、ブロックをデコードするために使用される重み付けとして最も低いコストを提供する1つまたは複数の適応重み付け候補から適応重み付け候補を選択させ、選択された適応重み付けおよび生成された1つまたは複数の予測サンプルに基づいてブロックをデコードさせる、コンピュータ命令が記憶された非一時的コンピュータ可読媒体。
【0126】
(20)1つまたは複数の適応重み付け候補は、1つまたは複数の近傍の再構築または予測サンプルを使用して導出、ランク付けまたはシグナリングされる、特徴(19)に記載の非一時的コンピュータ可読媒体。
【符号の説明】
【0127】
100 通信システム、110 第1の端末、120 第2の端末、130 端末、140 端末、150 ネットワーク、200 ストリーミングシステム、201 ビデオソース、202 非圧縮ビデオサンプルストリーム、203 エンコーダ、204 エンコードされたビデオビットストリーム、205 ストリーミングサーバ、206 ストリーミングクライアント、209 ビデオビットストリーム、210 ビデオデコーダ、211 発信ビデオサンプルストリーム、212 ディスプレイ、213 キャプチャサブシステム、310 受信器、312 チャネル、315 バッファメモリ、320 エントロピーデコーダ/パーサ、321 シンボル、351 スケーラ/逆変換ユニット、352 イントラ予測ユニット、353 動き補償予測ユニット、355 アグリゲータ、356 ループフィルタユニット、357 参照ピクチャメモリ、358 現在のピクチャメモリ、430 ソースコーダ、432 コーディングエンジン、433 (ローカル)デコーダ、434 参照ピクチャメモリ、435 予測器、440 送信器、443 コーディングされたビデオシーケンス、445 エントロピーコーダ、450 コントローラ、460 チャネル、501 V_PRED、502 H_PRED、503 D45_PRED、504 D135_PRED、505 D113_PRED、506 D157_PRED、507 D203_PRED、508 D67_PRED、1200 コンピュータシステム、1201 キーボード、1202 マウス、1203 トラックパッド、1205 ジョイスティック、1206 マイクロフォン、1207 スキャナ、1208 カメラ、1210 タッチスクリーン、1220 CD/DVD ROM/RW、1221 媒体、1222 サムドライブ、1223 ソリッドステートドライブ、1240 コア、1241 中央処理装置(CPU)、1242 グラフィックス処理装置(GPU)、1243 フィールドプログラマブルゲートエリア(FPGA)、1244 ハードウェアアクセラレータ、1245 読取り専用メモリ(ROM)、1246 ランダムアクセスメモリ、1247 内部大容量ストレージ、1248 システムバス、1249 周辺バス、1250 グラフィックスアダプタ、1254 ネットワークインターフェース、1255 クラウドコンピューティング環境
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12