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

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

▶ ディズニー エンタープライゼス インコーポレイテッドの特許一覧 ▶ イーティーエイチ・チューリッヒの特許一覧

特許7419478コーデックレート歪み補償ダウンサンプラ
<>
  • 特許-コーデックレート歪み補償ダウンサンプラ 図1
  • 特許-コーデックレート歪み補償ダウンサンプラ 図2
  • 特許-コーデックレート歪み補償ダウンサンプラ 図3
  • 特許-コーデックレート歪み補償ダウンサンプラ 図4
  • 特許-コーデックレート歪み補償ダウンサンプラ 図5A
  • 特許-コーデックレート歪み補償ダウンサンプラ 図5B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-12
(45)【発行日】2024-01-22
(54)【発明の名称】コーデックレート歪み補償ダウンサンプラ
(51)【国際特許分類】
   H04N 19/59 20140101AFI20240115BHJP
   H04N 19/102 20140101ALI20240115BHJP
   H04N 19/136 20140101ALI20240115BHJP
   H04N 19/146 20140101ALI20240115BHJP
【FI】
H04N19/59
H04N19/102
H04N19/136
H04N19/146
【請求項の数】 16
【外国語出願】
(21)【出願番号】P 2022163871
(22)【出願日】2022-10-12
(65)【公開番号】P2023058466
(43)【公開日】2023-04-25
【審査請求日】2022-12-20
(31)【優先権主張番号】17/500,373
(32)【優先日】2021-10-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504399716
【氏名又は名称】ディズニー エンタープライゼス インコーポレイテッド
(73)【特許権者】
【識別番号】506110634
【氏名又は名称】イーティーエイチ・チューリッヒ
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【弁護士】
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100224683
【弁理士】
【氏名又は名称】齋藤 詩織
(72)【発明者】
【氏名】クリストファ リヒャルト シュロアーズ
(72)【発明者】
【氏名】ロベルト ジェルソン デ アルバカーキ アゼヴェード
(72)【発明者】
【氏名】ニコラス デイビッド グレゴリー
(72)【発明者】
【氏名】ユアンイ シュエ
(72)【発明者】
【氏名】スコット ラブロージー
(72)【発明者】
【氏名】アブデルアジズ デジェロフ
【審査官】岩井 健二
(56)【参考文献】
【文献】米国特許出願公開第2020/0162751(US,A1)
【文献】国際公開第2019/053436(WO,A1)
【文献】Hanbin Son, Taeoh Kim, Hyeongmin Lee, and Sangyoun Lee,Enhanced Standard Compatible Image Compression Framework based on Auxiliary Codec Networks,arXiv,2020年09月30日,arXiv:2009.14754v1,pp.1-13
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
(a)複数の入力画像を含み、第1の表示解像度を有する入力動画シーケンスを受信することと、
前記入力動画シーケンスを、複数の低解像度画像を含み、前記第1の表示解像度よりも低い第2の表示解像度を有する低解像度動画シーケンスに対応付けることと、
を実行するように構成された機械学習モデル(MLモデル)に基づく動画ダウンサンプラと、
(b)前記低解像度動画シーケンスを、復号されたプロキシビットストリームに変換するように構成されたニューラルネットワークに基づく(NNに基づく)プロキシ動画コーデックであって前記NNに基づくプロキシ動画コーデックは、区別可能な方法において、標準動画コーデックのレート歪み特性を複製するように事前訓練される、ニューラルネットワークに基づく(NNに基づく)プロキシ動画コーデックと、
(c)前記復号されたプロキシビットストリームを使用して、複数の出力画像を含む出力動画シーケンスを生成するように構成されたアップサンプラと、
を含む、システム。
【請求項2】
請求項1に記載のシステムにおいて、前記出力動画シーケンスを生成することは、
前記復号されたプロキシビットストリームを受信することと、
前記入力動画シーケンスに対応し、前記第2の表示解像度よりも高い表示解像度を有し、前記複数の出力画像を含む前記出力動画シーケンスを生成することと、
を含む、システム。
【請求項3】
請求項1に記載のシステムにおいて、前記MLモデルに基づく動画ダウンサンプラは、前記入力動画シーケンスと、前記出力動画シーケンスと、前記低解像度動画シーケンスの推定レート及び複数の知覚的損失関数に基づく目的関数と、を使用して、訓練される、システム。
【請求項4】
請求項3に記載のシステムにおいて、前記目的関数は、前記複数の知覚的損失関数の加重和と組み合わせる前記低解像度動画シーケンスの前記推定レートを含む、システム。
【請求項5】
請求項4に記載のシステムにおいて、前記MLモデルに基づく動画ダウンサンプラは、前記複数の知覚的損失関数の前記加重和に含まれる複数の重み付け係数を受信するようにさらに構成され、前記MLモデルに基づく動画ダウンサンプラは、前記複数の重み付け係数をさらに使用して訓練される、システム。
【請求項6】
請求項1に記載のシステムにおいて、前記アップサンプラは、MLモデルに基づくアップサンプラを含む、システム。
【請求項7】
請求項に記載のシステムにおいて、前記MLモデルに基づくアップサンプラと前記MLモデルに基づく動画ダウンサンプラとは、同時に訓練される、システム。
【請求項8】
機械学習モデル(MLモデル)に基づく動画ダウンサンプラを訓練するための方法であって、前記方法は、
前記MLモデルに基づく動画ダウンサンプラに、複数の入力画像を含み、第1の表示解像度を有する入力動画シーケンスを提供することと、
前記MLモデルに基づく動画ダウンサンプラを使用して、前記入力動画シーケンスを、複数の低解像度画像を含み、前記第1の表示解像度よりも低い第2の表示解像度を有する低解像度動画シーケンスに対応付けることと、
ニューラルネットワークに基づく(NNに基づく)プロキシ動画コーデックを使用して、前記低解像度動画シーケンスを、復号されたプロキシビットストリームに変換することであって前記NNに基づくプロキシ動画コーデックは、区別可能な方法において、標準動画コーデックのレート歪み特性を複製するように事前訓練される、ことと、
前記復号されたプロキシビットストリームを受信するアップサンプラを使用して、複数の出力画像を含み、前記入力動画シーケンスに対応し、前記第2の表示解像度よりも高い表示解像度を有する出力動画シーケンスを生成することと、
前記入力動画シーケンスと、前記出力動画シーケンスと、前記NNに基づくプロキシ動画コーデックによって実行された前記低解像度動画シーケンスの推定レート及び複数の知覚的損失関数に基づく目的関数と、を使用して、前記MLモデルに基づく動画ダウンサンプラを訓練することと、
を含む、方法。
【請求項9】
請求項に記載の方法において、前記NNに基づくプロキシ動画コーデックと前記アップサンプラとは、シミュレーションモジュールの一部である、方法。
【請求項10】
請求項に記載の方法において、前記アップサンプラは、MLモデルに基づくアップサンプラを含む、方法。
【請求項11】
請求項10に記載の方法において、前記MLモデルに基づくアップサンプラと前記MLモデルに基づく動画ダウンサンプラとを、同時に訓練することをさらに含む、方法。
【請求項12】
請求項に記載の方法において、前記目的関数は、前記複数の知覚的損失関数の加重和と組み合わせる前記低解像度動画シーケンスの前記推定レートを含む、方法。
【請求項13】
請求項12に記載の方法において、前記複数の知覚的損失関数の前記加重和に含まれる複数の重み付け係数を、前記MLモデルに基づく動画ダウンサンプラに提供することをさらに含み、前記MLモデルに基づく動画ダウンサンプラを訓練することは、前記複数の重み付け係数をさらに使用して実行される、方法。
【請求項14】
動画処理システムであって、
処理ハードウェアと、
動画コーデックと、ニューラルネットワークに基づく(NNに基づく)プロキシ動画コーデックを使用して訓練された、訓練されたMLモデルに基づく動画ダウンサンプラとを格納するシステム記憶部と、
を含み、前記処理ハードウェアは、
複数の入力画像を含み、第1の表示解像度を有する入力動画シーケンスを受信することと、
前記訓練されたMLモデルに基づく動画ダウンサンプラを使用して、前記入力動画シーケンスを、複数の低解像度画像を含み、前記第1の表示解像度よりも低い第2の表示解像度を有する低解像度動画シーケンスに対応付けることと、
前記動画コーデックを使用して、前記低解像度動画シーケンスを、復号されたビットストリームに変換することであって前記NNに基づくプロキシ動画コーデックは、区別可能な方法において、標準動画コーデックのレート歪み特性を複製するように事前訓練される、ことと、
前記復号されたビットストリームを出力することと、
を実行するように構成される、動画処理システム。
【請求項15】
請求項14に記載の動画処理システムにおいて、前記訓練されたMLモデルに基づく動画ダウンサンプラは、任意のスケーリング係数を扱うように構成される、動画処理システム。
【請求項16】
請求項14に記載の動画処理システムにおいて、前記NNに基づくプロキシ動画コーデックは、区別可能である、動画処理システム。
【発明の詳細な説明】
【背景技術】
【0001】
ダウンサンプリングは、コンテンツストリーミングシステムにおいて、異なる種類のクライアント装置が利用可能なビットレート及び解像度に関して異なる表示を生成するための動作である。最新のストリーミングシステムでは、ストリーミングサーバが、解像度及びビットレートに関して異なる符号化表現を提供し、その結果、クライアント装置は、再生コンテキスト(例えば、表示装置の大きさ及びネットワーク条件)に最も一致する表示を動的にダウンロードすることができる。そのような表示を提供するために、ストリーミングサーバは、符号化の前に、もとの動画を異なる解像度にダウンサンプリングする必要がある。そのダウンサンプリングは、知覚的に最適ではないフィルタを用いて実行される可能性がある。
【図面の簡単な説明】
【0002】
図1】一実施形態による、訓練された機械学習モデル(MLモデル)に基づくコーデックレート歪み補償ダウンサンプラを含む例示的な動画処理システムの図を示す。
図2】一実施形態による、図1に示されたMLモデルに基づくコーデックレート歪み補償ダウンサンプラを訓練するための訓練パイプラインシステムの図を示す。
図3】様々な実装形態による、図1に示されたMLモデルに基づくコーデックレート歪み補償ダウンサンプラについて、代替の例示的な構成を示す。
図4】一実施形態による、MLモデルに基づくコーデックレート歪み補償ダウンサンプラを訓練するための例示的な方法を概説するフローチャートを示す。
図5A】本概念の一態様による、図1の動画処理システムによって実装された例示的な条件付きダウンサンプリングネットワークを示す図を示す。
図5B】本概念の別の態様による、図1の動画処理システムによって実装された例示的な条件付きダウンサンプリングネットワークを示す図を示す。
【発明を実施するための形態】
【0003】
以下の説明は、本開示における実施形態に関する具体的な情報を含む。当業者は、本開示が、本明細書で具体的に論じられる方法とは異なる方法で実装され得ることを認識するであろう。本出願における図面及び添付の詳細な説明は、単に例示的な実施形態を対象とする。特に明記しない限り、図面間の同様の又は対応する要素は、同様の又は対応する符号によって示されることができる。さらに、本出願における図面及び図は、概して、縮尺通りではなく、実際の相対的寸法に対応することを意図しない。
【0004】
本出願は、機械学習モデル(MLモデル)に基づくコーデックレート歪み補償ダウンサンプラを訓練及び利用するためのシステム及び方法を開示し、これは、当技術分野における問題点及び欠点を克服する。バイリニア(bilinear)フィルタ、キュービック(cubic)フィルタ、又はランチョス(Lanczos)フィルタなどのフィルタは、知覚的に最適ではなく、ダウンサンプリング後に、もとのコンテンツが符号化されることを考慮に入れない。そのために、本出願は、ダウンサンプリングに対する知覚的に最適化された手法を開示し、これは、1)学習されたダウンサンプラと、2)標準-互換画像又は動画コーデックをエミュレートするプロキシ動画コーデックと、3)時間認識知覚的損失関数(temporally-aware perceptual loss function)と、4)異なる損失関数間の推論時間補間を可能にする条件付き機構と、5)任意のスケーリングのための機構と、を含む。本出願において開示されるダウンサンプリング解決策は、もとのコンテンツにのみ適用される。したがって、これらの解決策は、既存の画像又は動画コーディングパイプラインと互換性があり、クライアント側のいかなる変更も必要としない一方で、知覚的に認識する品質測定基準に関して改善されたレート歪み性能を提供する。さらに、ある実装形態では、本コーデックレート歪み補償ダウンサンプリング解決策は、自動化された処理として実装されることができる。
【0005】
本出願で定義されるように、用語「自動化」、「自動化された」、及び「自動化する」は、人間の編集者又はシステム管理者などの人間のユーザの参加を必要としないシステム及び処理を指すことに留意されたい。例えば、ある実装形態では人間のシステム管理者が本明細書で開示されるシステム及び方法の性能を検討することができるが、又は以下で論じられる条件付きダウンサンプリングの場合、人間の関与は任意であるという、ユーザ定義の知覚的損失関数の重みを提供することができる。したがって、ある実装形態では、本出願において説明される処理は、開示されたシステムのハードウェア処理構成要素の制御下で実行されることができる。
【0006】
さらに、本出願において定義されるように、表現「機械学習モデル」又は「MLモデル」は、データ又は「訓練データ」の標本から学習されたパターンに基づいて将来の予測を行うための数学的モデルを指すことができることに留意されたい。様々な学習アルゴリズムを使用して、入力データと出力データとの間の相関を対応付け(map)することができる。これらの相関は、新しい入力データに関する将来の予測を行うために使用されることができる数学的モデルを形成する。そのような予測モデルは、1つ以上のロジスティック回帰モデル、ベイズモデル、又はニューラルネットワーク(NN)を含むことができる。さらに、深層学習の文脈における「深層ニューラルネットワーク」は、入力層と出力層との間の複数の隠れ層を利用するNNを指すことができ、これは、生のデータにおいて明示的に定義されない特徴に基づく学習を可能にすることができる。様々な実装形態では、NNは、分類器として訓練されることができ、画像処理又は自然言語処理を実行するために利用されることができる。
【0007】
本出願において定義されるように、「プロキシ動画コーデック」の機能は、例えば、H.264又はAV1などの標準コーデックのレート歪み特性を複製するように事前訓練された、NNに基づく又は他のMLモデルに基づくソフトウェアモジュールを指すことにも留意されたい。対照的に、既存の深層学習に基づくコーデックは、標準コーデックの歪み特性を複製するように訓練されない。その結果、既存の深層学習に基づくコーデックによって導入されるダウンサンプリングの画像の乱れ(artifact)は、標準コーデックによって生成され、本明細書で開示されるプロキシ動画コーデックによって複製されるものとは非常に異なる。すなわち、従来の画像/動画コーデックの出力を再現することを目的とする、知識の蒸留に基づくプロキシ動画コーデックを導入することによって、本出願において開示される手法は、有利なことに、標準コーデックによって生成される実際の歪みについてダウンサンプラ性能の最適化を容易にする。
【0008】
図1は、一実施形態による、訓練されたMLモデルに基づくコーデックレート歪み補償動画ダウンサンプラ112(以下、「MLモデルに基づく動画ダウンサンプラ112」)を含む例示的な動画処理システム100の図を示す。図1に示されるように、動画処理システム100は、コンピューティングプラットフォーム102を含む。コンピューティングプラットフォーム102は、処理ハードウェア104と、コンピュータ可読非一時的記憶媒体として実装されるシステム記憶部106と、を有する。本例示的な実施形態によれば、システム記憶部106は、訓練されたMLモデルに基づく動画ダウンサンプラ112と、動画コーデック114と、シミュレーションモジュール120と、を格納する。
【0009】
図1にさらに示されるように、動画処理システム100は、動画シーケンス138(以下、「入力動画シーケンス138」)を提供する動画源134と、通信ネットワーク130と、表示装置148を含むクライアント装置140を利用する媒体コンテンツ消費者108と、を含む使用環境内で実装される。さらに、図1は、ネットワーク通信リンク132を示す。ネットワーク通信リンク132は、通信ネットワーク130を介して、動画源134とクライアント装置140とを、動画処理システム100と通信可能に結合する。また、図1には、低解像度動画シーケンス152と、入力動画シーケンス138に対応する復号されたビットストリーム146とが示される。
【0010】
動画処理システム100は、通信ネットワーク130とネットワーク通信リンク132とを介して動画源134から入力動画シーケンス138を受信することができるが、ある実装形態では、動画源134は、コンピューティングプラットフォーム102と統合されたコンテンツ源の形態をとることができる、又は破線の通信リンク136によって示されるように、動画処理システム100と直接通信することができる、ことに留意されたい。ある実装形態では、動画処理システム100は、シミュレーションモジュール120を省略し得ることにさらに留意されたい。したがって、ある実装形態では、システム記憶部106は、訓練されたMLモデルに基づく動画ダウンサンプラ112と、動画コーデック114とを格納することができるが、シミュレーションモジュール120を格納しない。
【0011】
入力動画シーケンス138は、例えば、ビデオゲーム、映画、又はストリーミングされたエピソードコンテンツ若しくは放送されたエピソードコンテンツを含むエピソード番組コンテンツ、の形態の音声-映像(AV)コンテンツを含むことができる。入力動画シーケンス138は、高解像度(HD)又は超HD(UHD)ベースバンド動画信号を含むことができる。これらは、埋め込まれた音声と、字幕と、時間コードと、評価及び父兄同伴指定映画などの他の補助メタデータと、を伴う。ある実装形態では、入力動画シーケンス138は、例えば、二次音声プログラム(SAP)又は記述的動画サービス(DVS)を利用する、TV放送ネットワーク又は他の媒体配信エンティティ(例えば、映画スタジオ、ストリーミングプラットフォームなど)などの動画源134によって提供されることができる。
【0012】
図1に示される動画処理システム100の提示に関して、訓練されたMLモデルに基づく動画ダウンサンプラ112と、動画コーデック114と、シミュレーションモジュール120とは、概念を明確にするためにシステム記憶部106内に格納されているものとして示されるが、より一般的には、システム記憶部106は、任意のコンピュータ可読非一時的記憶媒体の形態をとることができることに留意されたい。本出願において使用されるような表現「コンピュータ可読非一時的記憶媒体」は、搬送波、又はコンピューティングプラットフォーム102の処理ハードウェア104などのコンピューティングプラットフォームの処理ハードウェアに命令を提供する他の一時的信号、を除く、任意の媒体を指す。したがって、コンピュータ可読非一時的記憶媒体は、例えば、揮発性媒体及び不揮発性媒体などの様々な種類の媒体に対応することができる。揮発性媒体は、ダイナミックランダムアクセスメモリ(ダイナミックRAM)などのダイナミックメモリを含むことができ、一方、不揮発性メモリは、光学記憶装置、磁気記憶装置、又は静電記憶装置、を含むことができる。コンピュータ可読非一時的記憶媒体の一般的な形態は、例えば、光ディスクと、RAMと、プログラマブル読み取り専用メモリ(PROM)と、消去可能PROM(EPROM)と、フラッシュメモリと、を含む。
【0013】
図1は、訓練されたMLモデルに基づく動画ダウンサンプラ112と、動画コーデック114と、シミュレーションモジュール120とを、システム記憶部106内に相互に共同配置されているものとして示すが、その提示は、単に、概念を明確にするための補助として提供されることにさらに留意されたい。より一般的には、動画処理システム100は、共同設置され得る、例えばコンピュータサーバなどの1つ以上のコンピューティングプラットフォームを含むことができる、又は例えば、クラウドに基づくシステムなどの、リンクされるが分散された対話式システムを形成することができる。結果として、処理ハードウェア104とシステム記憶部106とは、動画処理システム100内の分散されたプロセッサと記憶部リソースとに対応することができる。したがって、訓練されたMLモデルに基づく動画ダウンサンプラ112と、動画コーデック114と、シミュレーションモジュール120とは、動画処理システム100の分散された記憶部リソース内に互いに遠隔に格納されることができることを理解されたい。さらに、上述のように、ある実装形態では、シミュレーションモジュール120は、システム記憶部106から省略されることができる。
【0014】
処理ハードウェア104は、例えば、1つ以上の中央処理ユニット、1つ以上のグラフィック処理ユニット、及び1つ以上のテンソル処理ユニットなどの複数のハードウェア処理ユニットと、1つ以上のフィールドプログラマブルゲートアレイ(FPGA)と、機械学習訓練又は推論のためのカスタムハードウェアと、アプリケーションプログラミングインタフェース(API)サーバと、を含むことができる。定義として、本出願において使用されるような、用語「中央処理ユニット」(CPU)、「グラフィック処理ユニット」(GPU)、及び「テンソル処理ユニット」(TPU)は、当技術分野での慣例的な意味を有する。すなわち、CPUは、コンピューティングプラットフォーム102の算術演算及び論理演算を実行するための算術論理ユニット(ALU)と、システム記憶部106からプログラムを検索するための制御ユニット(CU)と、を含み、一方で、GPUは、計算負荷の大きなグラフィック又は他の処理タスクを実行することによってCPUの処理オーバーヘッドを低減するように実装されることができる。TPUは、機械学習モデリングなどの人工知能(AI)アプリケーションのために特に構成された特定用途向け集積回路(ASIC)である。
【0015】
ある実装形態では、コンピューティングプラットフォーム102は、例えば、インターネットなどのパケット交換ネットワークを介してアクセス可能な1つ以上のウェブサーバに対応することができる。代替として、コンピューティングプラットフォーム102は、プライベート広域通信網(WAN)、構内通信網(LAN)を扱う、又は別の種類の限定された配信又はプライベート通信網に含まれる、1つ以上のコンピュータサーバに対応し得る。さらに別の代替として、ある実装形態では、動画処理システム100は、データセンタなどにおいて仮想的に実装されることができる。例えば、ある実装形態では、動画処理システム100は、ソフトウェアにおいて、又は仮想機械として、実装されることができる。
【0016】
クライアント装置140は、図1においてスマートTVとして示されるが、その提示は、単なる例として提供される。より一般的には、クライアント装置140は、ユーザインタフェースを提供し、通信ネットワーク130への接続に対応し、本明細書のクライアント装置140に帰属する機能を実装するのに十分なデータ処理能力を実装する、任意の適切な移動型又は設置型コンピューティング装置又はシステムとすることができる。例えば、ある実装形態では、クライアント装置140は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、デジタルメディアプレーヤ、ゲームプラットフォーム、又はスマートウォッチなどのスマートウェアラブル装置、の形態をとることができる。
【0017】
クライアント装置140の表示装置148に関して、表示装置148は、クライアント装置140と物理的に一体化されることができる、又はクライアント装置140に通信可能に結合されるが、物理的に分離されることができる。例えば、クライアント装置140が、スマートTV、スマートフォン、ラップトップコンピュータ、タブレットコンピュータ、又はスマートウォッチ、として実装される場合、表示装置148は、クライアント装置140と一体化されることができる。対照的に、クライアント装置140が、デスクトップコンピュータ又はゲームプラットフォームとして実装される場合、表示装置148は、それぞれコンピュータタワー又はゲームコンソールの形態で、クライアント装置140とは別個のモニタの形態をとることができる。さらに、表示装置148は、液晶表示装置(LCD)、発光ダイオード(LED)表示装置、有機発光ダイオード(OLED)表示装置、量子ドット(QD)表示装置、又は信号の光への物理的変換を実行する任意の他の適切な表示装置画面、として実装されることができる。
【0018】
動画処理システム100の実行時又は推論時の性能の概要として、コンピューティングプラットフォーム102の処理ハードウェア104は、第1の表示解像度を有する入力動画シーケンス138を受信することができ、訓練されたMLモデルに基づく動画ダウンサンプラ112を使用して、入力動画シーケンス138を、第1の表示解像度よりも低い第2の表示解像度を有する低解像度動画シーケンス152に対応付けることができることに留意されたい。訓練されたMLモデルに基づく動画ダウンサンプラ112は、標準動画コーデックの形態において、動画コーデック114のレート歪み特性を複製するように事前訓練されたNNに基づくプロキシ動画コーデック(図1には図示されない)を使用して訓練される。
【0019】
訓練されたMLモデルに基づく動画ダウンサンプラ112の訓練により、MLモデルに基づく動画ダウンサンプラ112によって実行される入力動画シーケンス138のダウンサンプリングは、動画コーデック114による処理のために実質的に最適化される低解像度動画シーケンス152をもたらす。処理ハードウェア140は、次に、動画コーデック114を使用して、低解像度動画シーケンス152を、復号されたビットストリーム146に変換することができ、復号されたビットストリーム146を出力することができる。例えば、図1に示されるように、ある実装形態では、動画処理システム100は、入力動画シーケンス138に対応する出力動画シーケンスとして表示装置148の媒体コンテンツ消費者108に表示するために、通信ネットワーク130及びネットワーク通信リンク132を介して、復号されたビットストリーム146をクライアント装置140に出力することができる。
【0020】
図2は、一実施形態による、図1の訓練されたMLモデルに基づく動画ダウンサンプラ112を訓練するための訓練パイプラインシステム210の図を示す。図2に示されるように、訓練パイプラインシステム210は、MLモデルに基づく動画ダウンサンプラ211と、NNに基づくプロキシ動画コーデック222を含むシミュレーションモジュール220と、アップサンプラ226と、最適化ブロック260と、を含む。また、図2には、訓練入力動画シーケンス227と、訓練入力動画シーケンス227からダウンサンプリングされた低解像度動画シーケンス250と、NNに基づくプロキシ動画コーデック222によって出力された、復号されたプロキシビットストリーム224と、訓練入力動画シーケンス227に対応する訓練出力動画シーケンス228と、が示される。
【0021】
MLモデルに基づく動画ダウンサンプラ211は、概して、訓練パイプラインシステム210を使用して、訓練されたMLモデルに基づく動画ダウンサンプラ112を訓練する前の図1の訓練されたMLモデルに基づく動画ダウンサンプラ112に対応する。したがって、MLモデルに基づく動画ダウンサンプラ211は、本開示によって、訓練されたMLモデルに基づく動画ダウンサンプラ112に帰属する任意の構造特性を共有することができ、逆もまた同様である。加えて、図2のシミュレーションモジュール220は、概して、図1のシミュレーションモジュール120に対応する。したがって、シミュレーションモジュール120は、本開示によって、シミュレーションモジュール220に帰属する任意の特性を共有することができ、逆もまた同様である。すなわち、シミュレーションモジュール120は、NNに基づくプロキシ動画コーデック222と、アップサンプラ226と、最適化ブロック260と、のうちの1つ以上にそれぞれ対応する特徴を含むことができる。
【0022】
したがって、訓練パイプラインシステム210は、MLモデルに基づく動画ダウンサンプラ211を含み、これは、第1の表示解像度を有する訓練入力動画シーケンス227を受信して、第1の表示解像度よりも低い第2の表示解像度を有する低解像度動画シーケンス252に訓練入力動画シーケンス227を対応付けるように構成される。また、加えて、訓練パイプラインシステム210は、NNに基づくプロキシコーデック222(これは、低解像度動画シーケンス250を、復号されたプロキシビットストリーム224に変換するように構成される)と、アップサンプラ226(これは、復号されたプロキシビットストリーム224を受信し、入力訓練動画シーケンス227に対応して第2の表示解像度よりも高い表示解像度を有する出力訓練動画シーケンス228を生成するように構成される)と、を含む。
【0023】
訓練パイプラインシステム210を参照すると、L個のフレームを有する高解像度入力動画シーケンスが与えられる。
【数1】
【0024】
目標(target)ダウンサンプリングスケールは0<s<1であり、訓練されたMLモデルに基づく動画ダウンサンプラ112(本明細書では「D」による記号で表される)は、ダウンサンプリングされたバージョンを生成する動作を実行する。
【数2】
【0025】
したがって、数3が得られる。
【数3】
【0026】
訓練されたMLデルに基づく動画ダウンサンプラDは、異なる学習戦略を使用して実装されることができる。例えば、Dの可能なインスタンス化は、特徴抽出モジュールと、次にダウンサンプリングモジュールと、最後に、ダウンサンプリングされた結果、決められたダウンサンプリングの残差、又は所望の低解像度の結果をサンプリングすることを可能にするカーネル、のいずれかを予測する別のフィルタリングモジュール又は改良(refinement)モジュールと、を含むことができる。この目的のために、図3は、MLモデルに基づく動画ダウンサンプラ211又は訓練されたMLモデルに基づく動画ダウンサンプラ112による採用に適したMLモデルに基づく動画ダウンサンプラ構造の4つの代替実装形態を示す。これらは、畳み込みニューラルネットワーク(CNN)を使用して、異なる方法で畳み込み層から抽出された特徴のダウンサンプリングを実現する。
【0027】
【0028】
動画に基づくダウンサンプリングについて、以下でより詳細に説明されるように、フレーム間の時間的相関も考慮され、知覚的に正しい損失関数が使用される。しかしながら、L=1のとき、訓練されたMLモデルに基づく動画ダウンサンプラ112は、単一フレーム入力上で動作する、画像のみのダウンサンプラの場合に低減することが容易に理解される。L>1では、ダウンサンプラの入力は、動画フレームシーケンスであり、図2の例示的な訓練パイプラインシステム210は、2次元(2D)又は3次元(3D)畳み込みを利用することができ、それによって、ダウンサンプリング中の時間フレームシーケンス情報を考慮する。
【0029】
NNに基づくプロキシ動画コーデック222
エンドツーエンドの訓練MLモデルに基づく動画ダウンサンプラ211の1つの課題として、現在の圧縮規格が、複雑な発見的決定に基づいており、したがって、区別不可能である場合がある。この制限に対処し、これを克服するために、本出願は、本明細書ではPによる記号で表される、NNに基づくプロキシ動画コーデック222に基づいて、新規かつ進歩的な知識の蒸留手法を開示する。NNに基づくプロキシ動画コーデック222は、特定の規格(例えば、H.264、HEVC/H.265、MPEG-4、又はAV1)の特定の動画コーデックから生成されたデータを用いて事前訓練され、区別可能な方法で、特定の標準動画コーデックのレート歪み特性を予測する。すなわち、NNに基づくプロキシ動画コーデック222は、その特定の標準動画コーデックに一意とすることができる、標準動画コーデックのレート歪み特性を複製するように事前訓練される。さらに、NNに基づくプロキシ動画コーデック222は、有利なことに、区別可能である。
【0030】
【0031】
損失関数
損失関数の選択は、特に、アップサンプリングが決められ、ダウンサンプリング動作のみが最適化される制約設定において、非常に重要である。特に、以下の実施例を考慮することが洞察的であり得る。図1において、クライアント装置140上の決められたアップスケーリングが、補間のための最近傍/ボックスフィルタ技術を使用して実行されると仮定する。この場合、使用されるダウンサンプリング技術とは無関係に、表示装置148上に生成される出力は、ピクセル化されて見え、L損失に関する最適なダウンスケールは、平均化/ボックスフィルタリングによって与えられる。特定のダウンサンプラ構造は、平均を計算することができる限り、問題はない一方で、改善は、損失関数によってのみ生み出されることができる。したがって、より知覚的に正しいダウンサンプリング結果を達成するために、人間の視覚をより良く表す損失関数に向けて最適化することが必要である。
【0032】
しかしながら、異なる損失は、人間の視覚系の異なる特徴を最もよく表す可能性があるので、本明細書に開示される解決策は、以下のようにレートも考慮しながら、複数の異なる知覚的損失関数を組み合わせる目的関数を採用する。
【数4】
【0033】
【0034】
したがって、訓練パイプラインシステム210の最適化ブロック260は、訓練入力動画シーケンス227と、訓練出力動画シーケンス228と、低解像度動画シーケンス250の推定レート及び複数の知覚的損失関数に基づく目的関数と、を使用して、MLモデルに基づく動画ダウンサンプラ211を訓練することができる。さらに、ある実装形態では、上記の数4によって具体的に示されるように、MLモデルに基づく動画ダウンサンプラ211を訓練して、訓練されたMLモデルに基づく動画ダウンサンプラ212を提供するために使用される目的関数は、複数の知覚的損失関数の加重和と組み合わせる低解像度動画シーケンス250の推定レートを含む。
【0035】
Uは、アップサンプラ226を記号で表し、アップサンプラ226は、低解像度動画シーケンス250よりも大きい表示解像度を有する訓練出力動画シーケンス228に対する低解像度動画シーケンス250をアップサンプリングし、これは、訓練入力動画シーケンス227の表示解像度に実質的に一致する表示解像度を有することができることに留意されたい。様々な実装形態では、アップサンプラ226は、決められたアップサンプラとして、又はMLモデルに基づく学習されたアップサンプラとして、実装されることができることにさらに留意されたい。さらに、アップサンプラ226がMLモデルに基づくアップサンプラの形態をとる実装形態では、MLモデルに基づくアップサンプラ226とMLモデルに基づく動画ダウンサンプラ211とは、同時に訓練されることができる。
【0036】
時間的干渉性
上述のように、L>1のとき、訓練されたMLモデルに基づく動画ダウンサンプラ112の入力/出力は、一連のフレームであり、これは、数4の目的関数において一緒に考慮されることができる。そのような手法は、有利なことに、MLモデルに基づく動画ダウンサンプラ112の出力として提供される低解像度動画シーケンス152に関する時間的安定性の実施を可能にする。一例として、フレームのシーケンスを一緒に考慮して、時間的プロファイルを最適化することができ、これは、時間的干渉性のダウンスケーリング結果に有利に働く。
【0037】
訓練パイプラインシステム210の機能は、図4を参照してさらに説明される。図4は、一実施形態による、MLモデルに基づく動画ダウンサンプラ211を訓練するために、動画処理システム100による使用のための例示的な方法を提示するフローチャート470を示す。図4に概説される方法に関して、本出願における発明の特徴の議論を不明瞭にしないために、特定の詳細及び特徴は、フローチャート470から除外されたことに留意されたい。
【0038】
ここで、図2と組み合わせて図4を参照すると、フローチャート470は、MLモデルに基づく動画ダウンサンプラ211に、第1の表示解像度を有する入力動画シーケンス(すなわち、訓練入力動画シーケンス227)を提供すること(動作471)から始めることができる。さらに図1を参照すると、訓練入力動画シーケンス227は、コンピューティングプラットフォーム102の処理ハードウェア104によって、動作471において、MLモデルに基づく動画ダウンサンプラ211に提供されることができる。
【0039】
また、フローチャート470は、MLモデルに基づく動画ダウンサンプラ211を使用して、訓練入力動画シーケンス227を、訓練入力動画シーケンス227の第1の表示解像度よりも低い第2の表示解像度を有する低解像度動画シーケンス250に対応付けること(動作472)を含む。動作472は、高解像度動画シーケンスを、低解像度動画シーケンスに効果的に対応付けて、コンピューティングプラットフォーム102の処理ハードウェア104の制御下で、MLモデルに基づく動画ダウンサンプラ211によって実行される。
【0040】
フローチャート470は、NNに基づくプロキシ動画コーデック222を使用して、低解像度動画シーケンス250を、復号されたプロキシビットストリーム224に変換すること(動作473)をさらに含む。上述のように、NNに基づくプロキシ動画コーデック224は、動画コーデック114のレート歪み特性を複製するように事前訓練される。動作473は、シミュレーションモジュール220のNNに基づくプロキシ動画コーデック222を使用して、コンピューティングプラットフォーム102の処理ハードウェア104によって実行されることができる。
【0041】
フローチャート470は、復号されたプロキシビットストリーム224を受信するアップサンプラ226を使用して、訓練入力動画シーケンス227に対応し、第2の表示解像度よりも高い、すなわち、低解像度動画シーケンス250の表示解像度よりも高い、表示解像度を有する出力動画シーケンス(すなわち、訓練出力動画シーケンス228)を生成すること(動作474)をさらに含む。ある実装形態では、訓練出力動画シーケンス228の表示解像度は、訓練入力動画シーケンス227の第1の表示解像度と実質的に同じ表示解像度とすることができる。しかしながら、他の実装形態では、訓練出力動画シーケンス228の表示解像度は、低解像度動画シーケンス240の第2の表示解像度よりも大きい一方で、訓練入力動画シーケンス227の第1の表示解像度より低くてもよい。動作474は、シミュレーションモジュール220のアップサンプラ226を使用して、コンピューティングプラットフォーム102の処理ハードウェア104によって実行されることができる。
【0042】
フローチャート470は、訓練入力動画シーケンス227と、訓練出力動画シーケンス228と、低解像度動画シーケンスの推定レート及び複数の知覚的損失関数に基づく目的関数と、を使用して、MLモデルに基づく動画ダウンサンプラ211を訓練すること(動作475)をさらに含む。動作475は、数4を参照して上述した方法で、コンピューティングプラットフォーム102の処理ハードウェア104の制御下で、シミュレーションモジュール220の最適化ブロック260を使用して実行されることができる。
【0043】
上述のように、数4として表される目的関数は、複数の知覚的損失関数の加重和と組み合わせる低解像度動画シーケンス250の推定レートを含む。ある実装形態では、MLモデルに基づく動画ダウンサンプラ211の訓練は、各知覚的損失関数に適用されるそれぞれの
にさらに基づくことができる。これらの重み付け係数は、数4によって表される目的関数の初期最適化に基づいて計算されることができる、訓練パイプラインシステム210の管理者によって選択されることができる、又は計算された重み付け係数と管理者が選択した重み付け係数との両方を含むことができる。ある実装形態では、フローチャート470によって概説される方法は、重み付け係数の入力をさらに使用して、MLモデルに基づく動画ダウンサンプラ211と訓練MLモデルに基づくダウンサンプラ211とに、重み付け係数を別の入力として提供することをさらに含むことができる。したがって、ある実装形態では、MLモデルに基づく動画ダウンサンプラ211は、数4に含まれる複数の知覚的損失関数の加重和に含まれる重み付け係数を受信するようにさらに構成される。
【0044】
フローチャート470によって概説され、上述された方法に関して、ある実装形態では、動作471、472、473、474、及び475は、人間の参加を省略することができる自動化された処理において実行され得ることに留意されたい。
【0045】
図5Aは、本概念の一態様による、図1の動画処理システム100によって実装される例示的な条件付きダウンサンプリングネットワークを示す図を示す。図5Aに示されるように、条件付きダウンサンプリングネットワーク500Aは、訓練されたMLモデルに基づく動画ダウンサンプラ512と、動画コーデック514と、アップサンプラ526及び最適化ブロック560を含むシミュレーションモジュール520Aと、を含む。また、図5Aには、動画処理システム100にとっての入力動画シーケンス138の標本540と、標本540からダウンサンプリングされた低解像度標本552と、動画コーデック514によって出力された、復号されたビットストリーム554Aと、入力標本540に対応する出力標本556Aと、重み付け係数558と、が示される。
【0046】
訓練されたMLモデルに基づく動画ダウンサンプラ512と、動画コーデック514と、シミュレーションモジュール520Aとは、概して、図1の訓練されたMLモデルに基づく動画ダウンサンプラ112と、動画コーデック114と、シミュレーションモジュール120と、にそれぞれ対応する。したがって、訓練されたMLモデルに基づく動画ダウンサンプラ512と、動画コーデック514と、シミュレーションモジュール520Aとは、それぞれ、本開示による訓練されたMLモデルに基づく動画ダウンサンプラ112と、動画コーデック114と、シミュレーションモジュール120とに帰属する任意の特性を共有することができ、逆もまた同様である。加えて、アップサンプラ526は、概して、図2のアップサンプラ226に対応し、上記の対応する特徴に帰属する任意の特性を共有することができる。すなわち、アップサンプラ526は、決められたアップサンプラとして、又はMLモデルに基づく学習されたアップサンプラとして、実装されることができる。さらに、重み付け係数558は、数4に含まれる知覚的損失関数の各々に適用される重み付け係数に対応し、これは、数4の目的関数の初期最適化に基づいて計算されることができる、動画処理システム100の管理者によって選択されることができる、又は計算された重み付け係数と管理者が選択した重み付け係数との両方を含むことができる。
【0047】
図5Bを参照すると、図5Bは、本概念の別の態様による、図1の動画処理システム100によって実装される例示的な条件付きダウンサンプリングネットワークを示す図を示す。図5Bに示されるように、条件付きダウンサンプリングネットワーク500Bは、訓練されたMLモデルに基づく動画ダウンサンプラ512と、NNに基づくプロキシ動画コーデック522、アップサンプラ526、及び最適化ブロック560を含むシミュレーションモジュール520Bと、を含む。また、図5Bには、動画処理システム100にとっての入力動画シーケンス138の標本540と、標本540からダウンサンプリングされた低解像度標本552と、プロキシ動画コーデック522によって出力された、復号されたビットストリーム554Bと、入力標本540に対応する出力標本556Bと、重み付け係数558と、が示される。
【0048】
図5Aで使用された符号と同一の符号によって図5Bで識別される任意の特性は、それぞれ、すでに識別された特性に対応し、上記のそれらに帰属する任意の特性を共有し得ることに留意されたい。したがって、訓練されたMLモデルに基づく動画ダウンサンプラ512と、動画コーデック514と、シミュレーションモジュール520Aとは、概して、図1の訓練されたMLモデルに基づく動画ダウンサンプラ112と、動画コーデック114と、シミュレーションモジュール120と、にそれぞれ対応する一方で、重み付け係数558は、数4に含まれる知覚的損失関数の各々に適用される重み係数に対応する。さらに、NNに基づくプロキシ動画コーデック522は、概して、図2のNNに基づくプロキシ動画コーデック222に対応し、上記の対応する特徴に帰属する任意の特性を共有することができる。すなわち、NNに基づくプロキシ動画コーデック522は、動画コーデック114/514のレート歪み特性を複製するように構成されることができる。
【0049】
図5Aおよび5Bによって示されるように、様々な実装形態では、シミュレーションモジュール120/520A又は120/520Bは、アップサンプラ526、又はNNに基づくプロキシ動画コーデック522とアップサンプラ526との両方、を含むことができる。
【0050】
条件付きダウンサンプリングネットワーク500A及び500Bに関して、これらのネットワークは損失関数間を補間するように訓練され、動画処理システム100の管理者がダウンサンプリングされた動画に含まれる細部の度合いを制御することを可能にすることに留意されたい。そのような事例では、図5A及び図5Bに示されるように、訓練されたMLモデルに基づく動画ダウンサンプラ512は、重み付け係数558も受信することができる。
【数5】
【0051】
この条件付き実施形態において適切に機能するために、訓練されたMLモデルに基づく動画ダウンサンプラ512は、訓練中に、広範囲の異なる損失重み付け係数、例えば、ランダムにサンプリングされた損失重み付け係数、を見るべきである。ランダム損失重み付け係数を用いて訓練された条件付きダウンサンプリングネットワークは、人間の管理者が制御するパラメータを介して推論中に知覚的損失関数間をうまく補間することができる。以下で説明されるいくつかの特定化を参照して論じられるように、同じパラメトリック手法を使用して、異なるアップサンプラ、異なる動画コーデック、異なる量子化パラメータなどについて訓練された単一のネットワークを有することもできる。
【0052】
ある実装形態では、動画処理システム100の訓練されたMLモデルに基づく動画ダウンサンプラ112/512が、入力動画シーケンス138に含まれるコンテンツの種類に適応して応答することが有利であり得又は望ましい場合がある。したがって、ある実装形態では、入力動画シーケンス138が、訓練されたMLモデルに基づく動画ダウンサンプラ112/512によって低解像度動画シーケンス152に対応付けられる前に、処理ハードウェア104は、入力動画シーケンス138の標本540を抽出することができ、訓練されたMLモデルに基づく動画ダウンサンプラ112/512を使用して、標本540を低解像度標本552に対応付けることができる。処理ハードウェア104は、さらに、図5Aに示される動画コーデック114/514を使用して、又は図5Bに示されるプロキシ動画コーデック522を使用して、低解像度標本552を、復号されたビットストリーム554A又は554Bに変換し、アップサンプラ526と復号された標本ビットストリーム554A又は554Bとを使用して、抽出された標本540に対応する出力標本556A又は556Bを予測することができる。次に、処理ハードウェア104は、予測された出力標本556A又は556Bに基づいて、訓練されたMLモデルに基づく動画ダウンサンプラ112/512の1つ以上のパラメータを修正し、それによって、有利なことに、訓練されたMLモデルに基づく動画ダウンサンプラ112/512のコンテンツを適応的にレンダリングすることができる。
【0053】
上述の知覚的に最適化されたダウンサンプリング構成に加えて、本発明の新規かつ進歩的な手法が対応するいくつかの特定化及び拡張が存在し、以下を含む。
【0054】
画像のみのダウンサンプリング:上述のように、特定の使用事例として、本解決策は、画像のみのプロキシコーデックを使用して、L=1であるとき、画像コーデックのための知覚的に最適化されたダウンサンプリングをさらに可能にする。
【0055】
単一画像/動画ダウンサンプリング:特定の使用事例として、訓練されたMLモデルに基づく動画ダウンサンプラ112/512は、異なる種類のコンテンツの各々について異なるネットワークを訓練することによって、コンテンツごとにさらに最適化されることができる。
【0056】
アイデンティティプロキシコーデック:アイデンティティプロキシを使用することによって、知覚的に最適化されたダウンサンプリングを、訓練パイプラインシステム210におけるコーデックを必要とすることなく扱うことができる。
【0057】
複数の出力解像度:本解決策は、例えば、ストリーミングサービスによって必要とされるものと一致し得る複数の出力解像度に対応するように容易に適応されることができる。
【0058】
学習された超解像度のための最適なダウンサンプリング:上述のように、図2を参照すると、ある実装形態では、アップサンプラ226は、学習された超解像度アップサンプラとすることができる。その場合、超解像度アップサンプラは、MLモデルに基づく動画ダウンサンプラ211を用いて訓練されたエンドツーエンドとすることもできる。
【0059】
複数の品質水準及びアップサンプラ:本解決策の構成は柔軟である。一方では、特定のコーデック設定及びアップサンプラについてダウンサンプリングを最適化することが可能である。代替的に、いくつかの異なるコーデック設定及びアップサンプリングアルゴリズムを訓練して、複数の異なる種類のアップサンプラ及びコーデック設定と互換性のある単一のダウンサンプリングを達成することも可能である。
【0060】
パラメトリックアップサンプリング:上述の条件付きダウンサンプリングと同様に、複数のアップサンプリングカーネルを扱うために、本出願に開示された手法を拡張することも可能である。
【0061】
パラメトリックコーデック:異なる標準コーデックで条件付けされる、単一のダウンサンプラと単一のプロキシコーデックネットワークとを訓練することも可能である。
【0062】
クロマサブサンプリング:不必要な変換及びオーバーヘッドを回避するために、本明細書に開示される動画処理解決策のネットワークは、直接クロマサブサンプリングを用いて、yuv420p又は他のコンテンツ上で動作することもできる。
【0063】
前処理:ダウンサンプリングの他に、最適化することが有益となる他の前処理タスクが存在する可能性がある。ダウンサンプリング係数=1のとき、本解決策は、圧縮アーチファクトを軽減するために最適化することに留意する。
【0064】
したがって、本出願は、機械学習モデルに基づくコーデックレート歪み補償ダウンサンプラを訓練及び利用するためのシステム及び方法を開示し、これは、当技術分野における問題点及び欠点を克服する。本解決策は、いくつかの方法で最新技術を進歩させる。例えば、非学習技術とは対照的に、本解決策は、複数の知覚的損失関数に基づいて最適なダウンサンプリングを識別するためにデータ駆動型手法を利用する。訓練中にコーデックを考慮しない既存の学習型手法とは対照的に、本解決策は、標準動画コーデックのレート歪み特性を複製するように事前訓練されたプロキシ動画コーデックを使用する。既存の学習型方法と比較して、本明細書に開示される知覚的に最適化されたダウンサンプラは、有利なことに、1)より多くの知覚的損失関数(例えば、LPIPS、DISTS、および時間損失)を扱い、2)サブピクセルの位置を認識する畳み込みを提供することができ、3)訓練ループ内にコーデックを統合し、4)コンテンツの種類に基づいて微粒状制御を可能にするシステム管理者が制御可能なパラメータを扱う。
【0065】
さらに、本解決策で利用される事前訓練されたプロキシコーデックは、標準コーデックによって生成される画像乱れとは非常に異なる画像乱れを生成する既存の深層学習に基づくコーデックとは著しく異なる。したがって、本解決策は、従来のコーデックの出力を再現するために事前訓練されたプロキシコーデックを利用するので、本明細書に開示された手法は、有利なことに、そのような標準コーデックによって生成される歪みをより良好に補償することができる。
【0066】
上記の説明から、様々な技術が、本出願で説明される概念を実装するために、それらの概念の範囲から逸脱することなく、使用され得ることが明白である。さらに、特定の実装形態を具体的に参照しながら概念を説明したが、当業者は、それらの概念の範囲から逸脱することなく、形態及び細部に変更を行うことができることを認識するであろう。したがって、説明された実装形態は、すべての点で例示的であり、限定的ではないと見なされるべきである。また、本出願は、本明細書に説明された特定の実施形態に限定されず、本開示の範囲から逸脱することなく、多くの再構成、修正、及び置換が可能であることを理解されたい。
図1
図2
図3
図4
図5A
図5B