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

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

▶ クゥアルコム・インコーポレイテッドの特許一覧

特表2023-553369ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ
<>
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図1
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図2A
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図2B
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図2C
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図2D
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図3
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図4
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図5
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図6A
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図6B
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図6C
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図6D
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図6E
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図6F
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図7
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図8
  • 特表-ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-21
(54)【発明の名称】ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ
(51)【国際特許分類】
   H04N 19/186 20140101AFI20231214BHJP
【FI】
H04N19/186
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023532549
(86)(22)【出願日】2021-12-09
(85)【翻訳文提出日】2023-05-29
(86)【国際出願番号】 US2021072824
(87)【国際公開番号】W WO2022126120
(87)【国際公開日】2022-06-16
(31)【優先権主張番号】63/124,016
(32)【優先日】2020-12-10
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/131,802
(32)【優先日】2020-12-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/643,383
(32)【優先日】2021-12-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】エギルメス、ヒルミ・エネス
(72)【発明者】
【氏名】シン、アンキテシュ・クマー
(72)【発明者】
【氏名】コバン、ムハンメド・ゼイド
(72)【発明者】
【氏名】カルチェビチ、マルタ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MC11
5C159ME01
5C159PP16
5C159TD17
5C159UA02
5C159UA05
5C159UA31
(57)【要約】
ニューラルネットワークシステムを使用してビデオデータを処理するための技法が本明細書に記載される。たとえば、プロセスは、ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値を生成することを含むことができる。プロセスは、エンコーダサブネットワークの第2の畳み込みレイヤにより、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成することを含むことができる。プロセスは、第3の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値およびフレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値に基づいて、フレームの結合表現を生成することを含むことができる。プロセスは、フレームの結合表現に基づいて符号化ビデオデータを生成することをさらに含むことができる。
【選択図】図6B
【特許請求の範囲】
【請求項1】
ビデオデータを処理する方法であって、
ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値を生成することと、
前記エンコーダサブネットワークの第2の畳み込みレイヤにより、前記フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成することと、
第3の畳み込みレイヤにより、前記フレームの前記ルミナンスチャネルに関連付けられた前記出力値および前記フレームの前記少なくとも1つのクロミナンスチャネルに関連付けられた前記出力値に基づいて、前記フレームの結合表現を生成することと、
前記フレームの前記結合表現に基づいて符号化ビデオデータを生成することと、
を備える、方法。
【請求項2】
前記第3の畳み込みレイヤは1×1畳み込みレイヤを含み、前記1×1畳み込みレイヤは1つまたは複数の1×1畳み込みフィルタを含む、請求項1に記載の方法。
【請求項3】
前記エンコーダサブネットワークの第1の非線形レイヤを使用して、前記フレームの前記ルミナンスチャネルに関連付けられた前記出力値を処理することと、
前記エンコーダサブネットワークの第2の非線形レイヤを使用して、前記フレームの前記少なくとも1つのクロミナンスチャネルに関連付けられた前記出力値を処理することと、
をさらに備え、
前記結合表現は、前記第1の非線形レイヤの出力および前記第2の非線形レイヤの出力に基づいて生成される、
請求項1に記載の方法。
【請求項4】
前記フレームの前記結合表現は、入力として前記第1の非線形レイヤの前記出力と前記第2の非線形レイヤの前記出力とを使用して、前記第3の畳み込みレイヤによって生成される、請求項3に記載の方法。
【請求項5】
前記符号化ビデオデータを量子化すること、
をさらに備える、請求項1に記載の方法。
【請求項6】
前記符号化ビデオデータをエントロピーコーディングすること、
をさらに備える、請求項1に記載の方法。
【請求項7】
前記符号化ビデオデータをメモリに記憶すること、
をさらに備える、請求項1に記載の方法。
【請求項8】
少なくとも1つのデバイスに、伝送媒体を介して前記符号化ビデオデータを送信すること、
をさらに備える、請求項1に記載の方法。
【請求項9】
符号化フレームを取得することと、
前記ニューラルネットワークシステムのデコーダサブネットワークの第1の畳み込みレイヤにより、前記符号化フレームのルミナンスチャネルに関連付けられた復元出力値を生成することと、
前記デコーダサブネットワークの第2の畳み込みレイヤにより、前記符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成することと、
をさらに備える、請求項1に記載の方法。
【請求項10】
前記デコーダサブネットワークの第3の畳み込みレイヤを使用して、前記符号化フレームの前記少なくとも1つのクロミナンスチャネルから前記符号化フレームの前記ルミナンスチャネルを分離すること、
をさらに備える、請求項9に記載の方法。
【請求項11】
前記デコーダサブネットワークの前記第3の畳み込みレイヤは1×1畳み込みレイヤを含み、前記1×1畳み込みレイヤは1つまたは複数の1×1畳み込みフィルタを含む、請求項10に記載の方法。
【請求項12】
前記フレームはビデオフレームを含む、請求項1に記載の方法。
【請求項13】
前記少なくとも1つのクロミナンスチャネルは、クロミナンス青チャネルとクロミナンス赤チャネルとを含む、請求項1に記載の方法。
【請求項14】
前記フレームは、ルミナンス-クロミナンス(YUV)フォーマットを有する、請求項1に記載の方法。
【請求項15】
ビデオデータを処理するための装置であって、
メモリと、
前記メモリに結合されたプロセッサと、を備え、前記プロセッサは、
ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値を生成することと、
前記エンコーダサブネットワークの第2の畳み込みレイヤを使用して、前記フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成することと、
第3の畳み込みレイヤを使用して、前記フレームの前記ルミナンスチャネルに関連付けられた前記出力値および前記フレームの前記少なくとも1つのクロミナンスチャネルに関連付けられた前記出力値に基づいて、前記フレームの結合表現を生成することと、
前記フレームの前記結合表現に基づいて符号化ビデオデータを生成することと、
を行うように構成された、装置。
【請求項16】
前記第3の畳み込みレイヤは1×1畳み込みレイヤを含み、前記1×1畳み込みレイヤは1つまたは複数の1×1畳み込みフィルタを含む、請求項15に記載の装置。
【請求項17】
前記プロセッサは、
前記エンコーダサブネットワークの第1の非線形レイヤを使用して、前記フレームの前記ルミナンスチャネルに関連付けられた前記出力値を処理することと、
前記エンコーダサブネットワークの第2の非線形レイヤを使用して、前記フレームの前記少なくとも1つのクロミナンスチャネルに関連付けられた前記出力値を処理することと、
を行うように構成され、
前記結合表現は、前記第1の非線形レイヤの出力および前記第2の非線形レイヤの出力に基づいて生成される、
請求項15に記載の装置。
【請求項18】
前記フレームの前記結合表現は、入力として前記第1の非線形レイヤの前記出力と前記第2の非線形レイヤの前記出力とを使用して、前記第3の畳み込みレイヤによって生成される、請求項17に記載の装置。
【請求項19】
前記プロセッサは、
前記符号化ビデオデータを量子化するように構成される、請求項15に記載の装置。
【請求項20】
前記プロセッサは、
前記符号化ビデオデータをエントロピーコーディングするように構成される、請求項15に記載の装置。
【請求項21】
前記プロセッサは、
前記符号化ビデオデータをメモリに記憶するように構成される、請求項15に記載の装置。
【請求項22】
前記プロセッサは、
少なくとも1つのデバイスに、伝送媒体を介して前記符号化ビデオデータを送信するように構成される、請求項15に記載の装置。
【請求項23】
前記プロセッサは、
符号化フレームを取得することと、
前記ニューラルネットワークシステムのデコーダサブネットワークの第1の畳み込みレイヤを使用して、前記符号化フレームのルミナンスチャネルに関連付けられた復元出力値を生成することと、
前記デコーダサブネットワークの第2の畳み込みレイヤを使用して、前記符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成することと、
を行うように構成される、請求項15に記載の装置。
【請求項24】
前記プロセッサは、
前記デコーダサブネットワークの第3の畳み込みレイヤを使用して、前記符号化フレームの前記少なくとも1つのクロミナンスチャネルから前記符号化フレームの前記ルミナンスチャネルを分離するように構成される、請求項23に記載の装置。
【請求項25】
前記デコーダサブネットワークの前記第3の畳み込みレイヤは1×1畳み込みレイヤを含み、前記1×1畳み込みレイヤが1つまたは複数の1×1畳み込みフィルタを含む、請求項24に記載の装置。
【請求項26】
前記フレームはビデオフレームを含む、請求項15に記載の装置。
【請求項27】
前記少なくとも1つのクロミナンスチャネルは、クロミナンス青チャネルとクロミナンス赤チャネルとを含む、請求項15に記載の装置。
【請求項28】
前記フレームは、ルミナンス-クロミナンス(YUV)フォーマットを有する、請求項15に記載の装置。
【請求項29】
前記プロセッサは、ニューラル処理装置(NPU)を含む、請求項15に記載の装置。
【請求項30】
前記装置はモバイルデバイスを備える、請求項15に記載の装置。
【請求項31】
ディスプレイと、1つまたは複数のフレームをキャプチャするように構成されたカメラとのうちの少なくとも1つをさらに備える、請求項15に記載の装置。
【請求項32】
ビデオデータを処理する方法であって、
符号化フレームを取得することと、
デコーダサブネットワークの第1の畳み込みレイヤにより、前記符号化フレームの少なくとも1つのクロミナンスチャネルから前記符号化フレームのルミナンスチャネルを分離することと、
ニューラルネットワークシステムの前記デコーダサブネットワークの第2の畳み込みレイヤにより、前記符号化フレームの前記ルミナンスチャネルに関連付けられた復元出力値を生成することと、
前記デコーダサブネットワークの第3の畳み込みレイヤにより、前記符号化フレームの前記少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成することと、
前記ルミナンスチャネルに関連付けられた前記復元出力値と前記少なくとも1つのクロミナンスチャネルに関連付けられた前記復元出力値とを含む出力フレームを生成することと、
を備える、方法。
【請求項33】
前記デコーダサブネットワークの前記第1の畳み込みレイヤは1×1畳み込みレイヤを含み、前記1×1畳み込みレイヤは1つまたは複数の1×1畳み込みフィルタを含む、請求項32に記載の方法。
【請求項34】
前記デコーダサブネットワークの第1の非線形レイヤを使用して、前記符号化フレームの前記ルミナンスチャネルに関連付けられた値を処理することと、ここにおいて、前記ルミナンスチャネルに関連付けられた前記復元出力値は、前記第1の非線形レイヤの出力に基づいて生成される、
前記デコーダサブネットワークの第2の非線形レイヤを使用して、前記符号化フレームの前記少なくとも1つのクロミナンスチャネルに関連付けられた値を処理することと、ここにおいて、前記少なくとも1つのクロミナンスチャネルに関連付けられた前記復元出力値は、前記第2の非線形レイヤの出力に基づいて生成される、
をさらに備える、請求項32に記載の方法。
【請求項35】
前記符号化フレームのサンプルを逆量子化すること、
をさらに備える、請求項32に記載の方法。
【請求項36】
前記符号化フレームのサンプルをエントロピー復号すること、
をさらに備える、請求項32に記載の方法。
【請求項37】
前記出力フレームをメモリに記憶すること、
をさらに備える、請求項32に記載の方法。
【請求項38】
前記出力フレームを表示すること、
をさらに備える、請求項32に記載の方法。
【請求項39】
前記ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値を生成することと、
前記エンコーダサブネットワークの第2の畳み込みレイヤにより、前記フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成することと、
前記エンコーダサブネットワークの第3の畳み込みレイヤにより、前記フレームの前記ルミナンスチャネルに関連付けられた前記出力値および前記フレームの前記少なくとも1つのクロミナンスチャネルに関連付けられた前記出力値に基づいて、前記フレームの結合表現を生成することと、
前記フレームの前記結合表現に基づいて前記符号化フレームを生成することと、
をさらに備える、請求項32に記載の方法。
【請求項40】
前記エンコーダサブネットワークの前記第3の畳み込みレイヤは1×1畳み込みレイヤを含み、前記1×1畳み込みレイヤは1つまたは複数の1×1畳み込みフィルタを含む、請求項39に記載の方法。
【請求項41】
前記エンコーダサブネットワークの第1の非線形レイヤを使用して、前記フレームの前記ルミナンスチャネルに関連付けられた前記出力値を処理することと、
前記エンコーダサブネットワークの第2の非線形レイヤを使用して、前記フレームの前記少なくとも1つのクロミナンスチャネルに関連付けられた前記出力値を処理することと、
をさらに備え、
前記結合表現は、前記第1の非線形レイヤの出力および前記第2の非線形レイヤの出力に基づいて生成される、
請求項39に記載の方法。
【請求項42】
前記フレームの前記結合表現は、入力として前記第1の非線形レイヤの前記出力と前記第2の非線形レイヤの前記出力とを使用して、前記エンコーダサブネットワークの前記第3の畳み込みレイヤによって生成される、請求項41に記載の方法。
【請求項43】
前記符号化フレームは符号化ビデオフレームを含む、請求項32に記載の方法。
【請求項44】
前記少なくとも1つのクロミナンスチャネルは、クロミナンス青チャネルとクロミナンス赤チャネルとを含む、請求項32に記載の方法。
【請求項45】
前記符号化フレームは、ルミナンス-クロミナンス(YUV)フォーマットを有する、請求項32に記載の方法。
【請求項46】
ビデオデータを処理するための装置であって、
メモリと、
前記メモリに結合されたプロセッサと、を備え、前記プロセッサは、
符号化フレームを取得することと、
デコーダサブネットワークの第1の畳み込みレイヤを使用して、前記符号化フレームの少なくとも1つのクロミナンスチャネルから前記符号化フレームのルミナンスチャネルを分離することと、
ニューラルネットワークシステムの前記デコーダサブネットワークの第2の畳み込みレイヤを使用して、前記符号化フレームの前記ルミナンスチャネルに関連付けられた復元出力値を生成することと、
前記デコーダサブネットワークの第3の畳み込みレイヤを使用して、前記符号化フレームの前記少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成することと、
前記ルミナンスチャネルに関連付けられた前記復元出力値と前記少なくとも1つのクロミナンスチャネルに関連付けられた前記復元出力値とを含む出力フレームを生成することと、
を行うように構成された、装置。
【請求項47】
前記デコーダサブネットワークの前記第1の畳み込みレイヤは1×1畳み込みレイヤを含み、前記1×1畳み込みレイヤは1つまたは複数の1×1畳み込みフィルタを含む、請求項46に記載の装置。
【請求項48】
前記プロセッサは、
前記デコーダサブネットワークの第1の非線形レイヤを使用して、前記符号化フレームの前記ルミナンスチャネルに関連付けられた値を処理することと、ここにおいて、前記ルミナンスチャネルに関連付けられた前記復元出力値は、前記第1の非線形レイヤの出力に基づいて生成される、
前記デコーダサブネットワークの第2の非線形レイヤを使用して、前記符号化フレームの前記少なくとも1つのクロミナンスチャネルに関連付けられた値を処理することと、ここにおいて、前記少なくとも1つのクロミナンスチャネルに関連付けられた前記復元出力値は、前記第2の非線形レイヤの出力に基づいて生成される、
を行うように構成される、請求項46に記載の装置。
【請求項49】
前記プロセッサは、
前記符号化フレームのサンプルを逆量子化するように構成される、請求項46に記載の装置。
【請求項50】
前記プロセッサは、
前記符号化フレームのサンプルをエントロピー復号するように構成される、請求項46に記載の装置。
【請求項51】
前記プロセッサは、
前記出力フレームをメモリに記憶するように構成される、請求項46に記載の装置。
【請求項52】
前記プロセッサは、
前記出力フレームを表示するように構成される、請求項46に記載の装置。
【請求項53】
前記プロセッサは、
前記ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値を生成することと、
前記エンコーダサブネットワークの第2の畳み込みレイヤにより、前記フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成することと、
前記エンコーダサブネットワークの第3の畳み込みレイヤにより、前記フレームの前記ルミナンスチャネルに関連付けられた前記出力値および前記フレームの前記少なくとも1つのクロミナンスチャネルに関連付けられた前記出力値に基づいて、前記フレームの結合表現を生成することと、
前記フレームの前記結合表現に基づいて前記符号化フレームを生成することと、
を行うように構成される、請求項46に記載の装置。
【請求項54】
前記エンコーダサブネットワークの前記第3の畳み込みレイヤは1×1畳み込みレイヤを含み、前記1×1畳み込みレイヤは1つまたは複数の1×1畳み込みフィルタを含む、請求項53に記載の装置。
【請求項55】
前記プロセッサは、
前記エンコーダサブネットワークの第1の非線形レイヤを使用して、前記フレームの前記ルミナンスチャネルに関連付けられた前記出力値を処理することと、
前記エンコーダサブネットワークの第2の非線形レイヤを使用して、前記フレームの前記少なくとも1つのクロミナンスチャネルに関連付けられた前記出力値を処理することと、
を行うように構成され、
前記結合表現は、前記第1の非線形レイヤの出力および前記第2の非線形レイヤの出力に基づいて生成される、
請求項53に記載の装置。
【請求項56】
前記フレームの前記結合表現は、入力として前記第1の非線形レイヤの前記出力と前記第2の非線形レイヤの前記出力とを使用して、前記エンコーダサブネットワークの前記第3の畳み込みレイヤによって生成される、請求項55に記載の装置。
【請求項57】
前記符号化フレームは符号化ビデオフレームを含む、請求項46に記載の装置。
【請求項58】
前記少なくとも1つのクロミナンスチャネルは、クロミナンス青チャネルとクロミナンス赤チャネルとを含む、請求項57に記載の装置。
【請求項59】
前記符号化フレームは、ルミナンス-クロミナンス(YUV)フォーマットを有する、請求項46に記載の装置。
【請求項60】
ディスプレイと、1つまたは複数のビデオフレームをキャプチャするように構成されたカメラとのうちの少なくとも1つをさらに備える、請求項46に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本開示は、概して、画像および/またはビデオの符号化(または圧縮)と復号(解凍)とを含む、画像およびビデオのコーディングに関する。たとえば、本開示の態様は、エンドツーエンド機械学習(たとえば、ニューラルネットワーク)ベースの画像およびビデオコーディングシステムを使用して、ルミナンス-クロミナンス(YUV)入力フォーマット(たとえば、4:2:0 YUV入力フォーマット、4:4:4 YUV入力フォーマット、4:2:2 YUV入力フォーマットなど)および/または他の入力フォーマットを処理するための技法に関する。
【背景技術】
【0002】
[0002]多くのデバイスおよびシステムは、ビデオデータが消費のために処理および出力されることを可能にする。デジタルビデオデータは、消費者およびビデオプロバイダの需要を満たすための大量のデータを含む。たとえば、ビデオデータの消費者は、高い忠実度、解像度、フレームレートなどを含む高い品質のビデオを望む。その結果、これらの需要を満たすために必要とされる大量のビデオデータは、ビデオデータを処理および記憶する通信ネットワークおよびデバイスに負担をかける。
【0003】
[0003]ビデオコーディング技法は、ビデオデータを圧縮するために使用され得る。ビデオコーディングの目標は、ビデオ品質に対する劣化を回避または最小化しながら、より低いビットレートを使用する形式にビデオデータを圧縮することである。常に発展しつつあるビデオサービスが利用可能になるとともに、より良いコーディング効率を有する符号化技法が必要とされる。
【発明の概要】
【0004】
[0004]1つまたは複数の機械学習システムを使用して画像および/またはビデオのコンテンツをコーディング(たとえば、符号化および/または復号)するためのシステムおよび技法が記載される。たとえば、YUV(デジタルドメインYCbCr)入力フォーマット(および場合によっては他の入力フォーマット)、場合によっては、具体的に4:2:0 YUV入力フォーマットを処理することができるエンドツーエンド機械学習(たとえば、ニューラルネットワーク)ベースの画像およびビデオコーディング(E2E-NNVC)システムが提供される。E2E-NNVCシステムは、(画像もしくはピクチャとも呼ばれる)スタンドアロンフレームおよび/または複数のフレームを含むビデオデータを処理することができる。YUVフォーマットは、1つのルミナンスチャネル(Y)と、一対のクロミナンスチャネル(UおよびV)とを含む。UチャネルおよびVチャネルは、視覚的品質に重要で顕著な影響を与えることなく、Yチャネルに対してサブサンプリングされ得る。チャネル間の相関関係はYUVフォーマットでは低減され、それは他の色フォーマット(たとえば、赤緑青(RGB)フォーマット)には当てはまらない場合がある。本明細書に記載されたシステムおよび技法の態様は、RGB入力フォーマット用に設計されたE2E-NNVC(および場合によっては他の入力フォーマット用に設計されたE2E-NNVC)においてYUV4:2:0入力フォーマットに適応するために、フロントエンドアーキテクチャ(たとえば、新しいサブネットワーク)を提供する。フロントエンドアーキテクチャは、多くのE2E-NNVCアーキテクチャに適用可能である。
【0005】
[0005]1つの例示的な例では、ビデオデータを処理する方法が提供される。方法は、ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値を生成することと、エンコーダサブネットワークの第2の畳み込みレイヤにより、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成することと、第3の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値およびフレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値に基づいて、フレームの結合表現(a combined representation)を生成することと、フレームの結合表現に基づいて符号化ビデオデータを生成することとを含む。
【0006】
[0006]別の例では、メモリと、メモリに結合された(たとえば、回路内に実装された)プロセッサとを含む、ビデオデータを処理するための装置が提供される。いくつかの例では、2つ以上のプロセッサがメモリに結合され得、動作のうちの1つまたは複数を実行するために使用され得る。プロセッサは、ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値を生成し、エンコーダサブネットワークの第2の畳み込みレイヤを使用して、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成し、第3の畳み込みレイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値およびフレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値に基づいて、フレームの結合表現を生成し、フレームの結合表現に基づいて符号化ビデオデータを生成するように構成される。
【0007】
[0007]別の例では、1つまたは複数のプロセッサによって実行されると、ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値を生成することと、エンコーダサブネットワークの第2の畳み込みレイヤを使用して、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成することと、第3の畳み込みレイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値およびフレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値に基づいて、フレームの結合表現を生成することと、フレームの結合表現に基づいて符号化ビデオデータを生成することとを1つまたは複数のプロセッサに行わせる命令を記憶している、ビデオデータを符号化するための非一時的コンピュータ可読媒体が提供される。
【0008】
[0008]別の例では、ビデオデータを処理するための装置が提供される。装置は、ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値を生成するための手段と、エンコーダサブネットワークの第2の畳み込みレイヤにより、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成するための手段と、第3の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値およびフレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値に基づいて、フレームの結合表現を生成するための手段と、フレームの結合表現に基づいて符号化ビデオデータを生成するための手段とを含む。
【0009】
[0009]いくつかの態様では、第3の畳み込みレイヤは1×1畳み込みレイヤを含む。1×1畳み込みレイヤは、1つまたは複数の1×1畳み込みフィルタを含む。
【0010】
[0010]いくつかの態様では、ビデオデータを処理するための上述された方法、装置、およびコンピュータ可読媒体は、エンコーダサブネットワークの第1の非線形レイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値を処理することと、エンコーダサブネットワークの第2の非線形レイヤを使用して、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を処理することとをさらに備える。そのような態様では、結合表現は、第1の非線形レイヤの出力および第2の非線形レイヤの出力に基づいて生成される。
【0011】
[0011]いくつかの態様では、結合表現は、入力として第1の非線形レイヤの出力と第2の非線形レイヤの出力とを使用して、第3の畳み込みレイヤによって生成される。
【0012】
[0012]いくつかの態様では、ビデオデータを処理するための上述された方法、装置、およびコンピュータ可読媒体は、符号化ビデオデータを量子化することをさらに備える。
【0013】
[0013]いくつかの態様では、ビデオデータを処理するための上述された方法、装置、およびコンピュータ可読媒体は、符号化ビデオデータをエントロピーコーディングすることをさらに備える。
【0014】
[0014]いくつかの態様では、ビデオデータを処理するための上述された方法、装置、およびコンピュータ可読媒体は、符号化ビデオデータをメモリに記憶することをさらに備える。
【0015】
[0015]いくつかの態様では、ビデオデータを処理するための上述された方法、装置、およびコンピュータ可読媒体は、少なくとも1つのデバイスに伝送媒体を介して符号化ビデオデータを送信することをさらに備える。
【0016】
[0016]いくつかの態様では、ビデオデータを処理するための上述された方法、装置、およびコンピュータ可読媒体は、符号化フレームを取得することと、ニューラルネットワークシステムのデコーダサブネットワークの第1の畳み込みレイヤにより、符号化フレームのルミナンスチャネルに関連付けられた復元出力値を生成することと、デコーダサブネットワークの第2の畳み込みレイヤにより、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成することとをさらに備える。
【0017】
[0017]いくつかの態様では、ビデオデータを処理するための上述された方法、装置、およびコンピュータ可読媒体は、デコーダサブネットワークの第3の畳み込みレイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルから符号化フレームのルミナンスチャネルを分離することをさらに備える。
【0018】
[0018]いくつかの態様では、デコーダサブネットワークの第3の畳み込みレイヤは、1×1畳み込みレイヤを含む。1×1畳み込みレイヤは、1つまたは複数の1×1畳み込みフィルタを含む。
【0019】
[0019]いくつかの態様では、フレームはビデオフレームを含む。いくつかの態様では、少なくとも1つのクロミナンスチャネルは、クロミナンス青チャネルとクロミナンス赤チャネルとを含む。いくつかの態様では、フレームはルミナンス-クロミナンス(YUV)フォーマットを有する。
【0020】
[0020]1つの例示的な例では、ビデオデータを処理する方法が提供される。方法は、符号化フレームを取得することと、デコーダサブネットワークの第1の畳み込みレイヤにより、符号化フレームの少なくとも1つのクロミナンスチャネルから符号化フレームのルミナンスチャネルを分離することと、ニューラルネットワークシステムのデコーダサブネットワークの第2の畳み込みレイヤにより、符号化フレームのルミナンスチャネルに関連付けられた復元出力値を生成することと、デコーダサブネットワークの第3の畳み込みレイヤにより、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成することと、ルミナンスチャネルに関連付けられた復元出力値と少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値とを含む出力フレームを生成することとを含む。
【0021】
[0021]別の例では、メモリと、メモリに結合された(たとえば、回路内に実装された)プロセッサとを含む、ビデオデータを処理するための装置が提供される。いくつかの例では、2つ以上のプロセッサがメモリに結合され得、動作のうちの1つまたは複数を実行するように使用され得る。プロセッサは、符号化フレームを取得し、デコーダサブネットワークの第1の畳み込みレイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルから符号化フレームのルミナンスチャネルを分離し、ニューラルネットワークシステムのデコーダサブネットワークの第2の畳み込みレイヤを使用して、符号化フレームのルミナンスチャネルに関連付けられた復元出力値を生成し、デコーダサブネットワークの第3の畳み込みレイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成し、ルミナンスチャネルに関連付けられた復元出力値と少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値とを含む出力フレームを生成するように構成される。
【0022】
[0022]別の例では、1つまたは複数のプロセッサによって実行されると、符号化フレームを取得することと、デコーダサブネットワークの第1の畳み込みレイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルから符号化フレームのルミナンスチャネルを分離することと、ニューラルネットワークシステムのデコーダサブネットワークの第2の畳み込みレイヤを使用して、符号化フレームのルミナンスチャネルに関連付けられた復元出力値を生成することと、デコーダサブネットワークの第3の畳み込みレイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成することと、ルミナンスチャネルに関連付けられた復元出力値と少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値とを含む出力フレームを生成することとを1つまたは複数のプロセッサに行わせる命令を記憶している、ビデオデータを符号化するための非一時的コンピュータ可読媒体が提供される。
【0023】
[0023]別の例では、ビデオデータを処理するための装置が提供される。装置は、符号化フレームを取得するための手段と、デコーダサブネットワークの第1の畳み込みレイヤにより、符号化フレームの少なくとも1つのクロミナンスチャネルから符号化フレームのルミナンスチャネルを分離するための手段と、ニューラルネットワークシステムのデコーダサブネットワークの第2の畳み込みレイヤにより、符号化フレームのルミナンスチャネルに関連付けられた復元出力値を生成するための手段と、デコーダサブネットワークの第3の畳み込みレイヤにより、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成するための手段と、ルミナンスチャネルに関連付けられた復元出力値と少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値とを含む出力フレームを生成するための手段とを含む。
【0024】
[0024]いくつかの態様では、デコーダサブネットワークの第1の畳み込みレイヤは、1×1畳み込みレイヤを含む。1×1畳み込みレイヤは、1つまたは複数の1×1畳み込みフィルタを含む。
【0025】
[0025]いくつかの態様では、ビデオデータを処理するための上述された方法、装置、およびコンピュータ可読媒体は、デコーダサブネットワークの第1の非線形レイヤを使用して、符号化フレームのルミナンスチャネルに関連付けられた値を処理することと、ここにおいて、ルミナンスチャネルに関連付けられた復元出力値が第1の非線形レイヤの出力に基づいて生成される;デコーダサブネットワークの第2の非線形レイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた値を処理することと、ここにおいて、少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値が第2の非線形レイヤの出力に基づいて生成される、をさらに備える。
【0026】
[0026]いくつかの態様では、ビデオデータを処理するための上述された方法、装置、およびコンピュータ可読媒体は、符号化フレームのサンプルを逆量子化することをさらに備える。
【0027】
[0027]いくつかの態様では、ビデオデータを処理するための上述された方法、装置、およびコンピュータ可読媒体は、符号化フレームのサンプルをエントロピー復号することをさらに備える。
【0028】
[0028]いくつかの態様では、ビデオデータを処理するための上述された方法、装置、およびコンピュータ可読媒体は、出力フレームをメモリに記憶することをさらに備える。
【0029】
[0029]いくつかの態様では、ビデオデータを処理するための上述された方法、装置、およびコンピュータ可読媒体は、出力フレームを表示することをさらに備える。
【0030】
[0030]いくつかの態様では、ビデオデータを処理するための上述された方法、装置、およびコンピュータ可読媒体は、ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値を生成することと、エンコーダサブネットワークの第2の畳み込みレイヤにより、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成することと、エンコーダサブネットワークの第3の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値およびフレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値に基づいて、フレームの結合表現を生成することと、フレームの結合表現に基づいて符号化フレームを生成することとをさらに備える。
【0031】
[0031]いくつかの態様では、エンコーダサブネットワークの第3の畳み込みレイヤは、1×1畳み込みレイヤを含む。1×1畳み込みレイヤは、1つまたは複数の1×1畳み込みフィルタを含む。
【0032】
[0032]いくつかの態様では、ビデオデータを処理するための上述された方法、装置、およびコンピュータ可読媒体は、エンコーダサブネットワークの第1の非線形レイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値を処理することと、エンコーダサブネットワークの第2の非線形レイヤを使用して、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を処理することとをさらに備え、結合表現は、第1の非線形レイヤの出力および第2の非線形レイヤの出力に基づいて生成される。
【0033】
[0033]いくつかの態様では、フレームの結合表現は、入力として第1の非線形レイヤの出力と第2の非線形レイヤの出力とを使用して、エンコーダサブネットワークの第3の畳み込みレイヤによって生成される。
【0034】
[0034]いくつかの態様では、符号化フレームは符号化ビデオフレームを含む。
【0035】
[0035]いくつかの態様では、少なくとも1つのクロミナンスチャネルは、クロミナンス青チャネルとクロミナンス赤チャネルとを含む。
【0036】
[0036]いくつかの態様では、符号化フレームはルミナンス-クロミナンス(YUV)フォーマットを有する。
【0037】
[0037]いくつかの態様では、装置は、モバイルデバイス(たとえば、携帯電話もしくはいわゆる「スマートフォン」、タブレットコンピュータ、もしくは他のタイプのモバイルデバイス)、ネットワーク接続されたウェアラブルデバイス、エクステンデッドリアリティデバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、もしくは複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、サーバコンピュータ(たとえば、ビデオサーバもしくは他のサーバデバイス)、テレビジョン、車両(もしくは車両のコンピューティングデバイスもしくはシステム)、カメラ(たとえば、デジタルカメラ、インターネットプロトコル(IP)カメラなど)、マルチカメラシステム、ロボティックスデバイスもしくはシステム、航空デバイスもしくはシステム、または他のデバイスであり得るか、またはその一部であり得る。いくつかの態様では、装置は、1つまたは複数の画像またはビデオフレーム(またはピクチャ)をキャプチャするための少なくとも1つのカメラを含む。たとえば、装置は、1つもしくは複数の画像および/またはビデオフレームを含む1つもしくは複数のビデオをキャプチャするためのカメラ(たとえば、RGBカメラ)または複数のカメラを含むことができる。いくつかの態様では、装置は、1つまたは複数の画像、ビデオ、通知、または他の表示可能なデータを表示するためのディスプレイを含む。いくつかの態様では、装置は、少なくとも1つのデバイスに伝送媒体を介して1つまたは複数のビデオフレームおよび/またはシンタックスデータを送信するように構成された送信機を含む。いくつかの態様では、上述された装置は1つまたは複数のセンサを含むことができる。いくつかの態様では、プロセッサには、ニューラル処理装置(NPU)、中央処理装置(CPU)、グラフィックス処理装置(GPU)、または他の処理デバイスもしくは構成要素が含まれる。
【0038】
[0038]本概要は、請求される主題の主要または本質的な特徴を識別するものではなく、請求される主題の範囲を決定するために切り離して使用されるものでもない。本主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分を参照して理解されるべきである。
【0039】
[0039]上記は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照すると、より明らかになるであろう。
【0040】
[0040]本出願の例示的な実施形態は、以下の図を参照して以下で詳細に記載される。
【図面の簡単な説明】
【0041】
図1】[0041]システムオンチップ(SOC)の例示的な実装形態を示す図。
図2A】[0042]全結合ニューラルネットワークの一例を示す図。
図2B】[0043]局所結合ニューラルネットワークの一例を示す図。
図2C】[0044]畳み込みニューラルネットワークの一例を示す図。
図2D】[0045]画像から視覚特徴を認識するように設計された深層畳み込みネットワーク(DCN)の詳細な一例を示す図。
図3】[0046]深層畳み込みネットワーク(DCN)を示すブロック図。
図4】[0047]いくつかの例による、ニューラルネットワークベースのシステムを使用して画像および/またはビデオのコーディング(符号化および復号)を実行するように動作可能なデバイスを含むシステムの一例を示す図。
図5】[0048]いくつかの例による、赤緑青(RGB)フォーマットを有する入力用のエンドツーエンドニューラルネットワークベースの画像およびビデオのコーディングシステムの一例を示す図。
図6A】[0049]いくつかの例による、エンドツーエンドニューラルネットワークベースの画像およびビデオのコーディングシステムの一部であり得るフロントエンドニューラルネットワークアーキテクチャの一例を示す図。
図6B】[0050]いくつかの例による、1×1畳み込みレイヤの例示的な動作を示す図。
図6C】[0051]いくつかの例による、エンドツーエンドニューラルネットワークベースの画像およびビデオのコーディングシステムの一部であり得るフロントエンドニューラルネットワークアーキテクチャの別の例を示す図。
図6D】[0052]いくつかの例による、エンドツーエンドニューラルネットワークベースの画像およびビデオのコーディングシステムの一部であり得るフロントエンドニューラルネットワークアーキテクチャの別の例を示す図。
図6E】[0053]いくつかの例による、エンドツーエンドニューラルネットワークベースの画像およびビデオのコーディングシステムの一部であり得るフロントエンドニューラルネットワークアーキテクチャの別の例を示す図。
図6F】[0054]いくつかの例による、エンドツーエンドニューラルネットワークベースの画像およびビデオのコーディングシステムの一部であり得るフロントエンドニューラルネットワークアーキテクチャの別の例を示す図。
図7】[0055]いくつかの例による、ビデオデータを処理するためのプロセスの一例を示すフローチャート。
図8】[0056]いくつかの例による、ビデオデータを処理するためのプロセスの別の例を示すフローチャート。
図9】[0057]本明細書に記載された様々な技法を実装することができる例示的なコンピューティングデバイスの例示的なコンピューティングデバイスアーキテクチャを示す図。
【発明を実施するための形態】
【0042】
[0058]本開示のいくつかの態様および実施形態が以下に提供される。当業者に明らかであるように、これらの態様および実施形態のうちのいくつかは独立して適用されてもよく、それらのうちのいくつかは組み合わせて適用されてもよい。以下の記載では、説明の目的で、本出願の実施形態の完全な理解を提供するために具体的な詳細が記載される。しかしながら、様々な実施形態は、これらの具体的な詳細なしに実践され得ることが明らかであろう。図および説明は限定するものではない。
【0043】
[0059]その後の説明は、例示的な実施形態を提供するにすぎず、本開示の範囲、適用性、または構成を限定するものではない。むしろ、例示的な実施形態のその後の説明は、例示的な実施形態を実装することを可能にする説明を当業者に提供するであろう。添付の特許請求の範囲に記載されるように、本出願の趣旨および範囲から逸脱することなく、要素の機能および構成において様々な変更が行われ得ることを理解されたい。
【0044】
[0060]デジタルビデオデータは、特に、高品質のビデオデータに対する需要が成長し続けるにつれて大量のデータを含むことができる。たとえば、ビデオデータの消費者は、通常、高い忠実度、解像度、フレームレートなどを有するますます高い品質のビデオを望む。しかしながら、そのような需要を満たすために必要とされる大量のビデオデータは、通信ネットワーク、ならびにビデオデータを処理し記憶するデバイスに著しい負担をかける可能性がある。
【0045】
[0061]ビデオデータをコーディングするために、様々な技法が使用され得る。ビデオコーディングは、特定のビデオコーディング規格に従って実行され得る。例示的なビデオコーディング規格には、高効率ビデオコーディング(HEVC)、アドバンストビデオコーディング(AVC)、ムービングピクチャエキスパートグループ(MPEG)コーディング、および多用途ビデオコーディング(VVC)が含まれる。ビデオコーディングは、しばしば、ビデオ画像またはシーケンス内に存在する冗長構成を利用するインター予測またはイントラ予測などの予測方法を使用する。ビデオコーディング技法の共通の目標は、ビデオ品質の劣化を回避または最小化しながら、より低いビットレートを使用する形式にビデオデータを圧縮することである。ビデオサービスに対する需要が高まり、新しいビデオサービスが利用可能になるにつれて、より良いコーディング効率、性能、およびレート制御を有するコーディング技法が必要とされる。
【0046】
[0062]1つまたは複数の機械学習(ML)システムを使用して画像および/またはビデオのコーディングを実行するための(「システムおよび技法」と総称される)システム、装置、(方法とも呼ばれる)プロセス、およびコンピュータ可読媒体が本明細書に記載される。一般に、MLは人工知能(AI)のサブセットである。MLシステムは、明示的な命令を使用せずにパターンおよび推測に依存することによって様々なタスクを実行するためにコンピュータシステムが使用することができるアルゴリズムと統計モデルとを含むことができる。MLシステムの一例は、人工ニューロン(たとえば、ニューロンモデル)の相互接続されたグループを含む場合がある、(人工ニューラルネットワークとも呼ばれる)ニューラルネットワークである。ニューラルネットワークは、とりわけ、画像および/またはビデオのコーディング、画像解析および/またはコンピュータビジョンアプリケーション、インターネットプロトコル(IP)カメラ、モノのインターネット(IoT)デバイス、自律車両、サービスロボットなどの様々なアプリケーションおよび/またはデバイスに使用される場合がある。
【0047】
[0063]ニューラルネットワーク内の個々のノードは、入力データを取得し、データに対して単純な演算を実行することにより、生体ニューロンをエミュレートすることができる。入力データに対して実行された単純な演算の結果は、他のニューロンに選択的に渡される。重み値がネットワーク内の各々のベクトルおよびノードに関連付けられ、これらの値は、入力データがどのように出力データに関係するかを制約する。たとえば、各ノードの入力データは、対応する重み値によって乗算される場合があり、積は合計される場合がある。積の合計は任意選択のバイアスによって調整される場合があり、活性化関数が結果に適用され、ノードの出力信号または(活性化マップもしくは特徴マップと呼ばれることがある)「出力活性化」をもたらす。重み値は、最初に、ネットワークを介して訓練データの反復フローによって決定される場合がある(たとえば、重み値は、ネットワークが特定のクラスの典型的な入力データ特性によってそれらのクラスをどのように識別するべきかを学習する訓練フェーズ中に確立される)。
【0048】
[0064]とりわけ、畳み込みニューラルネットワーク(CNN)、再帰型ニューラルネットワーク(RNN)、敵対的生成ネットワーク(GAN)、多層パーセプトロン(MLP)ニューラルネットワークなどの、異なるタイプのニューラルネットワークが存在する。たとえば、畳み込みニューラルネットワーク(CNN)は、フィードフォワード人工ニューラルネットワークのタイプである。畳み込みニューラルネットワークは、各々が受容野(たとえば、入力空間の空間的に局所化された領域)を有し、入力空間を集合的にタイリングする人工ニューロンの集合を含む場合がある。RNNは、レイヤの出力を節約し、この出力を、レイヤの結果を予測するのに役立つために入力にフィードバックするという原理で動作する。GANは、ニューラルネットワークモデルが合理的に元のデータセットからである可能性がある新しい合成出力を生成することができるように、入力データ内のパターンを学習することができる生成ニューラルネットワークの一形態である。GANは、合成された出力を生成する生成ニューラルネットワークと、信頼性について出力を評価する識別ニューラルネットワークとを含む、一緒に動作する2つのニューラルネットワークを含むことができる。MLPニューラルネットワークでは、データは入力レイヤに供給される場合があり、1つまたは複数の隠れレイヤがデータに抽象化レベルを提供する。次いで、抽象化されたデータに基づいて出力レイヤ上で予測が行われる場合がある。
【0049】
[0065](複数の隠れレイヤが存在するときに深層ニューラルネットワークと呼ばれる)階層型ニューラルネットワークアーキテクチャでは、人工ニューロンの第1のレイヤの出力は人工ニューロンの第2のレイヤへの入力になり、人工ニューロンの第2のレイヤの出力は人工ニューロンの第3のレイヤの入力になり、以下同様である。CNNは、たとえば、特徴の階層を認識するように訓練される場合がある。CNNアーキテクチャにおける計算は、1つまたは複数の計算チェーンにおいて構成され得る処理ノードの集団にわたって分散される場合がある。これらの多層化アーキテクチャは、一度に1つのレイヤを訓練される場合があり、逆伝搬を使用して微調整される場合がある。
【0050】
[0066]いくつかの態様では、本明細書に記載されたシステムおよび技法は、ルミナンス-クロミナンス(YUV)入力フォーマットを有する入力データを処理するために設計された、(たとえば、ニューラルネットワークアーキテクチャを使用する)エンドツーエンドMLベースの画像およびビデオのコーディング(E2E-NNVC)システムを含む。YUVフォーマットは、1つのルミナンスチャネル(Y)と、一対のクロミナンスチャネル(UおよびV)とを含む。Uチャネルは、クロミナンス(またはクロマ)青チャネルと呼ぶことができ、Vチャネルは、クロミナンス(またはクロマ)赤チャネルと呼ぶことができる。場合によっては、ルミナンス(Y)チャネルまたは成分は、ルーマチャネルまたは成分と呼ぶこともできる。場合によっては、クロミナンス(UおよびV)チャネルまたは成分は、クロマチャネルまたは成分と呼ぶこともできる。YUV入力フォーマットは、とりわけ、YUV4:2:0、YUV4:4:4、YUV4:2:2を含むことができる。場合によっては、本明細書に記載されたシステムおよび技法は、Y-クロマ青(Cb)-クロマ赤(Cr)(YCbCr)フォーマット、赤緑青(RGB)フォーマット、および/または他のフォーマットなどの他の入力フォーマットを処理するように設計され得る。本明細書に記載されたE2E-NNVCシステムは、(画像もしくはピクチャとも呼ばれる)スタンドアロンフレームおよび/または複数のフレームを含むビデオデータを符号化および/または復号することができる。
【0051】
[0067]多くの場合、E2E-NNVCシステムは、オートエンコーダサブネットワーク(エンコーダサブネットワーク)、およびエントロピーコーディングに使用される量子化ラテント上で確率モデルを学習することに関与する(場合によってはハイパープライアネットワークとも呼ばれる)第2のサブネットワーク(デコーダサブネットワーク)の組合せとして設計される。場合によっては、デコーダの他のサブネットワークが存在する可能性がある。そのようなE2E-NNVCシステムアーキテクチャは、変換プラス量子化モジュール(またはエンコーダサブネットワーク)およびエントロピーモデリングサブネットワークモジュールの組合せとして見ることができる。
【0052】
[0068]ほとんどのE2E-NNVCシステムアーキテクチャは、RGB、YUV4:4:4、または他の非サブサンプル入力フォーマットなどの、非サブサンプル入力フォーマットで動作するように設計される。しかしながら、HEVCおよびVVCなどのビデオコーディング規格は、それらそれぞれのメインプロファイル内でYUV4:2:0色フォーマットをサポートするように設計される。4:2:0 YUVフォーマットをサポートするために、非サブサンプル入力フォーマットで動作するように設計されたE2E-NNVCアーキテクチャは、修正される必要がある。
【0053】
[0069]本明細書に記載されたシステムおよび技法は、既存のE2E-NNVCアーキテクチャに適用可能な1つまたは複数の特定の色フォーマット(たとえば、YUV4:2:0色フォーマット)を処理するためのフロントエンドアーキテクチャ(たとえば、サブネットワーク)を提供する。システムおよび技法は、YチャネルおよびUVチャネルの異なる特性、ならびに解像度の違いを考慮する。たとえば、フレームまたはフレームの部分のYチャネルおよびUVチャネルは、ニューラルネットワークシステムのエンコーダサブネットワークの2つの別々のニューラルネットワークレイヤに入力され得る。いくつかの例では、2つのニューラルネットワークレイヤは畳み込みレイヤを含む。いくつかの態様では、2つの別々のニューラルネットワークレイヤの出力は、エンコーダサブネットワークの一対の非線形レイヤまたは演算子によって処理される。一対の非線形レイヤまたは演算子は、一般化神経活動正規化(GDN)レイヤもしくは演算子、パラメトリック整流線形ユニット(PReLU)レイヤもしくは演算子、および/または他の非線形レイヤもしくは演算子を含むことができる。2つの別々のニューラルネットワークレイヤの出力(または非線形レイヤもしくは演算子の出力)は、エンコーダサブネットワークの追加のニューラルネットワークレイヤを使用して結合される。
【0054】
[0070]いくつかの例では、追加のニューラルネットワークレイヤは、1×1畳み込みレイヤである。1×1畳み込みレイヤは、Y成分およびUV成分の(たとえば、線形結合を生成することによる)ピクセル当たりまたは値当たりのクロスチャネル混合を実行し、コーディング性能を向上させるクロス成分(たとえば、クロス-ルミナンスおよびクロミナンス成分)の予測をもたらす。たとえば、Y成分およびUV成分のクロスチャネル混合は、U成分およびV成分からY成分を非相関化し、それにより、コーディング性能が向上する(たとえば、コーディング効率が改善される)。場合によっては、1×1畳み込みレイヤは、N個の1×1畳み込みフィルタを含むことができる(ここで、Nは1×1畳み込みレイヤに入力されるチャネルの数に対応する整数値に等しい)。各1×1畳み込みフィルタは、Y成分の対応するN番目のチャネルおよびUV成分の対応するN番目のチャネルに適用されるそれぞれのスケーリングファクタを有する。
【0055】
[0071]追加のニューラルネットワークレイヤ(たとえば、1×1畳み込みレイヤ)の出力は、エンコーダサブネットワークの1つもしくは複数の非線形レイヤおよび/または1つもしくは複数のさらなるニューラルネットワークレイヤ(たとえば、畳み込みレイヤ)によって処理され得る。量子化エンジンは、量子化出力を生成するために、エンコーダサブネットワークの最後のニューラルネットワークレイヤによって出力された特徴に対して量子化を実行することができる。エントロピー符号化エンジンは、ビットストリームを生成するために、量子化エンジンからの量子化出力をエントロピー符号化することができる。ニューラルネットワークシステムは、格納のため、別のデバイス、サーバデバイス、またはサーバシステムへの送信のためなどにビットストリームを出力することができる。
【0056】
[0072]ニューラルネットワークシステムのデコーダサブネットワークまたは(別のデバイスの)別のニューラルネットワークシステムのデコーダサブネットワークは、ビットストリームを復号することができる。たとえば、デコーダサブネットワークのエントロピー復号エンジンは、ビットストリームをエントロピー復号し、エントロピー復号データを逆量子化エンジンに出力することができる。逆量子化エンジンは、データを逆量子化することができる。逆量子化データは、デコーダサブネットワークの1つもしくは複数のニューラルネットワークレイヤ(たとえば、畳み込みレイヤ)および/または1つもしくは複数の逆非線形レイヤによって処理され得る。たとえば、1つもしくは複数の畳み込みレイヤおよび1つもしくは複数の逆非線形レイヤによって処理された後、1×1畳み込みレイヤがデータを処理することができる。1×1畳み込みレイヤは、データをYチャネル特徴および結合UVチャネル特徴に分割することができる。Yチャネル特徴および結合UVチャネル特徴は、2つの最後のニューラルネットワークレイヤ(たとえば、2つの畳み込みレイヤ)および場合によっては2つの最後の逆非線形レイヤによって処理され得る。たとえば、第1の最後のニューラルネットワークレイヤは、Yチャネル特徴を処理し、復元フレームのピクセルまたはサンプル毎の復元Yチャネル(たとえば、ルミナンスサンプルもしくはピクセル)を出力することができる。第2の最後のニューラルネットワークレイヤは、結合UVチャネル特徴を処理し、復元フレームのピクセルまたはサンプル毎の復元Uチャネル(たとえば、クロミナンス青サンプルもしくはピクセル)と、復元フレームのピクセルまたはサンプル毎の復元Vチャネル(たとえば、クロミナンス赤サンプルもしくはピクセル)とを出力することができる。
【0057】
[0073]システムおよび技法に関するさらなる詳細が図を参照して記載される。
【0058】
[0074]図1は、本明細書に記載された機能のうちの1つまたは複数を実行するように構成された中央処理装置(CPU)102またはマルチコアCPUを含む場合があるシステムオンチップ(SOC)100の例示的な実装形態を示す。いくつかある情報の中で特に、パラメータまたは変数(たとえば、ニューラル信号およびシナプス荷重)、算出デバイスに関連付けられたシステムパラメータ(たとえば、重みを有するニューラルネットワーク)、遅延、周波数ビン情報、タスク情報は、ニューラル処理装置(NPU)108に関連付けられたメモリブロック、CPU102に関連付けられたメモリブロック、グラフィックス処理装置(GPU)104に関連付けられたメモリブロック、デジタル信号プロセッサ(DSP)106に関連付けられたメモリブロック、メモリブロック118に記憶される場合があり、および/または複数のブロックにわたって分散される場合がある。CPU102において実行される命令は、CPU102に関連付けられたプログラムメモリからロードされてもよく、メモリブロック118からロードされてもよい。
【0059】
[0075]SOC100はまた、GPU104、DSP106などの特定の機能に適合された追加の処理ブロックと、第5世代(5G)接続、第4世代ロングタームエボリューション(4G LTE(登録商標))接続、Wi-Fi(登録商標)接続、USB接続、Bluetooth(登録商標)接続などを含む場合がある接続ブロック110と、たとえば、ジェスチャを検出および認識することができるマルチメディアプロセッサ112とを含む場合がある。一実装形態では、NPUは、CPU102、DSP106、および/またはGPU104内に実装される。SOC100はまた、センサプロセッサ114、画像信号プロセッサ(ISP)116、および/または全地球測位システムを含む場合があるナビゲーションモジュール120を含む場合がある。
【0060】
[0076]SOC100はARM命令セットに基づく場合がある。本開示の一態様では、CPU102にロードされる命令は、入力値とフィルタ重みの乗算積に対応するルックアップテーブル(LUT)内の記憶された乗算結果を探索するためのコードを備えることができる。CPU102にロードされる命令はまた、乗算積のルックアップテーブルヒットが検出されたとき、乗算積の乗算演算中に乗算器を無効にするためのコードを備えることができる。さらに、CPU102にロードされる命令は、乗算積のルックアップテーブルミスが検出されたとき、入力値とフィルタ重みの算出された乗算積を記憶するためのコードを備えることができる。
【0061】
[0077]SOC100および/またはその構成要素は、本明細書で説明された本開示の態様に従って機械学習技法を使用して、(ビデオ符号化および/または復号とも呼ばれ、ビデオコーディングと総称される)ビデオ圧縮および/または解凍を実行するように構成される場合がある。ビデオ圧縮および/または解凍を実行するために深層学習アーキテクチャを使用することにより、本開示の態様は、デバイス上でのビデオ圧縮および/または解凍の効率を増大させることができる。たとえば、記載されたビデオコーディング技法を使用するデバイスは、機械学習ベースの技法を使用してより効率的にビデオを圧縮することができ、別のデバイスに圧縮されたビデオを送信することができ、他のデバイスは、本明細書に記載された機械学習ベースの技法を使用してより効率的に圧縮されたビデオを解凍することができる。
【0062】
[0078]上述されたように、ニューラルネットワークは機械学習システムの一例であり、入力レイヤと、1つまたは複数の隠れレイヤと、出力レイヤとを含むことができる。データは入力レイヤの入力ノードから提供され、処理は1つまたは複数の隠れレイヤの隠れノードによって実行され、出力は出力レイヤの出力ノードを介して生成される。深層学習ネットワークは、通常、複数の隠れレイヤを含む。ニューラルネットワークの各レイヤは、人工ニューロン(またはノード)を含むことができる特徴マップまたは活性化マップを含むことができる。特徴マップは、フィルタ、カーネルなどを含むことができる。ノードは、レイヤのうちの1つまたは複数のノードの重要度を示すために使用される1つまたは複数の重みを含むことができる。場合によっては、深層学習ネットワークは、一連の多くの隠れレイヤを有することができ、初期のレイヤは、入力の単純で低レベルの特性を決定するために使用され、後のレイヤは、より複雑で抽象的な特性の階層を構築する。
【0063】
[0079]深層学習アーキテクチャは特徴の階層を学習することができる。たとえば、視覚データが提示された場合、第1のレイヤは、入力ストリーム内のエッジなどの比較的単純な特徴を認識するように学習することができる。別の例では、聴覚データが提示された場合、第1のレイヤは、特定の周波数のスペクトル電力を認識するように学習することができる。第1のレイヤの出力を入力として取得する第2のレイヤは、視覚データの場合の単純な形状、または聴覚データの場合の音の組合せなどの特徴の組合せを認識するように学習することができる。たとえば、上位レイヤは、視覚データ内の複雑な形状、または聴覚データ内の単語を表すように学習することができる。さらに上位のレイヤは、共通の視覚オブジェクトまたは発話フレーズを認識するように学習することができる。
【0064】
[0080]深層学習アーキテクチャは、自然階層構造を有する問題に適用されたときに特にうまく実行することができる。たとえば、原動機付き車両の分類は、ホイール、フロントガラス、および他の特徴を認識するための最初の学習から恩恵を受けることができる。これらの特徴は、車、トラック、および飛行機を認識するために、異なる方法で上位レイヤにおいて組み合わされる場合がある。
【0065】
[0081]ニューラルネットワークは、様々な接続パターンを用いて設計される場合がある。フィードフォワードネットワークでは、情報が下位レイヤから上位レイヤに渡され、所与のレイヤにおける各ニューロンは、上位レイヤにおけるニューロンに伝える。上述されたように、フィードフォワードネットワークの連続するレイヤにおいて、階層表現が構築される場合がある。ニューラルネットワークはまた、再帰型接続または(トップダウンとも呼ばれる)フィードバック接続を有する場合がある。再帰型接続では、所与のレイヤにおけるニューロンからの出力は、同じレイヤにおける別のニューロンに伝えられる場合がある。再帰型アーキテクチャは、ニューラルネットワークに順次配信される入力データチャンクのうちの2つ以上にわたるパターンを認識する際に役立つ場合がある。所与のレイヤにおけるニューロンから下位レイヤにおけるニューロンへの接続は、フィードバック(またはトップダウン)接続と呼ばれる。高レベルの概念の認識が、入力の特定の低レベルの特徴を区別するのに役立つ場合があるとき、多くのフィードバック接続を有するネットワークが役立つ場合がある。
【0066】
[0082]ニューラルネットワークのレイヤ間の接続は、全結合または局所結合であり得る。図2Aは、全結合ニューラルネットワーク202の一例を示す。全結合ニューラルネットワーク202では、第2のレイヤにおける各ニューロンが第1のレイヤにおけるあらゆるニューロンから入力を受け取るように、第1のレイヤにおけるニューロンはその出力を第2のレイヤにおけるあらゆるニューロンに通信することができる。図2Bは、局所結合ニューラルネットワーク204の一例を示す。局所結合ニューラルネットワーク204では、第1のレイヤにおけるニューロンは、第2のレイヤにおける限られた数のニューロンに接続される場合がある。より一般的には、局所結合ニューラルネットワーク204の局所結合レイヤは、レイヤにおける各ニューロンが同じまたは同様の接続パターンを有するように構成される場合があるが、異なる値を有する場合がある接続強度で構成される場合がある(たとえば、210、212、214、および216)。局所結合の接続パターンは、所与の領域内の上位レイヤニューロンが、ネットワークへの総入力のうちの制限された部分のプロパティに訓練を介して調節された入力を受け取るので、上位レイヤにおいて空間的に別個の受容野を生じる場合がある。
【0067】
[0083]局所結合ニューラルネットワークの一例は、畳み込みニューラルネットワークである。図2Cは、畳み込みニューラルネットワーク206の一例を示す。畳み込みニューラルネットワーク206は、第2のレイヤにおける各ニューロンのための入力に関連付けられた接続強度が共有されるように構成される場合がある(たとえば、208)。畳み込みニューラルネットワークは、入力の空間位置が有意味である問題に好適であり得る。畳み込みニューラルネットワーク206は、本開示の態様による、ビデオ圧縮および/または解凍の1つまたは複数の態様を実行するために使用される場合がある。
【0068】
[0084]1つのタイプの畳み込みニューラルネットワークは、深層畳み込みネットワーク(DCN)である。図2Dは、車載カメラなどの画像キャプチャデバイス230から入力された画像226から視覚特徴を認識するように設計されたDCN200の詳細な例を示す。本例のDCN200は、交通標識および交通標識上に提供された数字を識別するように訓練される場合がある。当然、DCN200は、車線マーキングを識別すること、または交通信号を識別することなどの他のタスクのために訓練される場合がある。
【0069】
[0085]DCN200は、教師あり学習を用いて訓練される場合がある。訓練中に、DCN200は、速度制限標識の画像226などの画像を提示される場合があり、次いで、出力222を生成するために、フォワードパスが算出される場合がある。DCN200は、特徴抽出セクションと分類セクションとを含む場合がある。画像226を受信すると、畳み込みレイヤ232は、特徴マップの第1のセット218を生成するために、畳み込みカーネル(図示せず)を画像226に適用することができる。一例として、畳み込みレイヤ232用の畳み込みカーネルは、28×28特徴マップを生成する5×5カーネルであり得る。本例では、4つの異なる特徴マップが特徴マップの第1のセット218において生成されるので、4つの異なる畳み込みカーネルが、畳み込みレイヤ232において画像226に適用された。畳み込みカーネルは、フィルタまたは畳み込みフィルタと呼ばれる場合もある。
【0070】
[0086]特徴マップの第1のセット218は、特徴マップの第2のセット220を生成するために、最大プーリングレイヤ(図示せず)によってサブサンプリングされる場合がある。最大プーリングレイヤは、特徴マップの第1のセット218のサイズを削減する。すなわち、14×14などの特徴マップの第2のセット220のサイズは、28×28などの特徴マップの第1のセット218のサイズよりも小さい。削減されたサイズは、メモリ消費を削減しながら、後続のレイヤに同様の情報を提供する。特徴マップの第2のセット220は、特徴マップの1つまたは複数の後続のセット(図示せず)を生成するために、1つまたは複数の後続の畳み込みレイヤ(図示せず)を介してさらに畳み込まれる場合がある。
【0071】
[0087]図2Dの例では、特徴マップの第2のセット220は、第1の特徴ベクトル224を生成するために畳み込まれる。さらに、第1の特徴ベクトル224は、第2の特徴ベクトル228を生成するためにさらに畳み込まれる。第2の特徴ベクトル228の各特徴は、「標識」、「60」、および「100」などの画像226の可能な特徴に対応する数を含む場合がある。ソフトマックス関数(図示せず)が、第2の特徴ベクトル228内の数を確率に変換することができる。したがって、DCN200の出力222は、画像226が1つまたは複数の特徴を含む確率である。
【0072】
[0088]本例では、「標識」および「60」についての出力222における確率は、「30」、「40」、「50」、「70」、「80」、「90」、および「100」などの出力222の他のものの確率よりも高い。訓練の前に、DCN200によって生成される出力222は、不正確である可能性がある。したがって、出力222とターゲット出力との間で誤差が計算される場合がある。ターゲット出力は、画像226(たとえば、「標識」および「60」)のグランドトゥルース(ground truth)である。次いで、DCN200の重みは、DCN200の出力222がターゲット出力とより密接に整合されるように調整される場合がある。
【0073】
[0089]重みを調整するために、学習アルゴリズムは、重みのための勾配ベクトルを算出することができる。勾配は、重みが調整された場合に誤差が増加または減少する量を示すことができる。最上レイヤにおいて、勾配は、最後から2番目のレイヤにおける活性化ニューロンと出力レイヤにおけるニューロンとを接続する重みの値に直接対応することができる。下位レイヤでは、勾配は、重みの値、および上位レイヤの算出された誤差勾配に依存する場合がある。次いで、重みは、誤差を低減するために調整される場合がある。重みを調整するこの方式は、それがニューラルネットワークを介する「バックワードパス」を伴うので、「逆伝搬」と呼ばれる場合がある。
【0074】
[0090]実際には、重みの誤差勾配(error gradient)は、計算された勾配が真の誤差勾配を近似するように、少数の例にわたって計算される場合がある。この近似方法は、確率的勾配降下法と呼ばれる場合がある。確率的勾配降下法は、システム全体の達成可能な誤差レートが減少しなくなるまで、または誤差レートがターゲットレベルに達するまで繰り返される場合がある。学習の後に、DCNは新しい画像を提示される場合があり、ネットワークを介するフォワードパスは、DCNの推論または予測と見なされ得る出力222をもたらすことができる。
【0075】
[0091]深層信念ネットワーク(DBN)は、隠れノードの複数のレイヤを備える確率モデルである。DBNは、訓練データセットの階層表現を抽出するために使用される場合がある。DBNは、制限ボルツマンマシン(RBM)のレイヤを積層することによって取得される場合がある。RBMは、入力のセットにわたる確率分布を学習することができる人工ニューラルネットワークのタイプである。RBMは、各入力がそれに分類されるべきクラスに関する情報の不在下で確率分布を学習することができるので、RBMは教師なし学習においてしばしば使用される。ハイブリッド教師なしおよび教師ありパラダイムを使用して、DBNの下部RBMは、教師なし方式で訓練される場合があり、特徴抽出器として機能することができ、上部RBMは、(前のレイヤからの入力およびターゲットクラスの同時分布上で)教師あり方式で訓練される場合があり、分類器として機能することができる。
【0076】
[0092]深層畳み込みネットワーク(DCN)は、追加のプーリングレイヤおよび非線形(たとえば、正規化)レイヤで構成された畳み込みネットワークのネットワークである。DCNは、多くのタスクに関して最先端の性能を実現している。DCNは、入力ターゲットと出力ターゲットの両方が、多くの標本について知られており、勾配降下法の使用によってネットワークの重みを修正するために使用される教師あり学習を使用して訓練され得る。
【0077】
[0093]DCNは、フィードフォワードネットワークであり得る。加えて、上述されたように、DCNの第1のレイヤにおけるニューロンから次の上位レイヤにおけるニューロンのグループへの接続は、第1のレイヤにおけるニューロンにわたって共有される。DCNのフィードフォワード接続および共有接続は、高速処理のために活用される場合がある。DCNの計算負担は、たとえば、再帰型接続またはフィードバック接続を備える同様のサイズのニューラルネットワークのそれよりもはるかに少ない場合がある。
【0078】
[0094]畳み込みネットワークの各レイヤの処理は、空間的に不変のテンプレートまたは基底投影と見なされる場合がある。入力が、カラー画像の赤色、緑色、および青色のチャネルなどの複数のチャネルに最初に分解された場合、その入力に関して訓練された畳み込みネットワークは、画像の軸に沿った2つの空間次元と、色情報をキャプチャする第3の次元とを有する3次元であると見なされる場合がある。畳み込み接続の出力は、後続のレイヤにおいて特徴マップを形成すると見なされる場合があり、特徴マップ(たとえば、220)の各要素が、前のレイヤ(たとえば、特徴マップ218)における様々なニューロンから、および複数のチャネルの各々から入力を受信する。特徴マップにおける値は、整流、max(0,x)などの非線形性を用いてさらに処理される場合がある。隣接するニューロンからの値はさらにプールされる場合があり、これはダウンサンプリングに対応し、さらなる局所不変性および次元削減を提供することができる。
【0079】
[0095]図3は、深層畳み込みネットワーク350の一例を示すブロック図である。深層畳み込みネットワーク350は、接続および重みの共有に基づく複数の異なるタイプのレイヤを含む場合がある。図3に示されたように、深層畳み込みネットワーク350は、畳み込みブロック354A、354Bを含む。畳み込みブロック354A、354Bの各々は、畳み込みレイヤ(CONV)356、正規化レイヤ(LNorm)358、および最大プーリングレイヤ(MAX POOL)360で構成される場合がある。
【0080】
[0096]畳み込みレイヤ356は、1つまたは複数の畳み込みフィルタを含む場合があり、それらは、特徴マップを生成するために入力データ352に適用される場合がある。2つの畳み込みブロック354A、354Bのみが示されているが、本開示はそのように限定しておらず、代わりに、設計上の選好に応じて、任意の数の畳み込みブロック(たとえば、ブロック354A、354B)が深層畳み込みネットワーク350に含まれてもよい。正規化レイヤ358は、畳み込みフィルタの出力を正規化することができる。たとえば、正規化レイヤ358は、白色化または側方抑制を提供することができる。最大プーリングレイヤ360は、局所不変性および次元削減のために、空間にわたってダウンサンプリングアグリゲーションを提供することができる。
【0081】
[0097]たとえば、深層畳み込みネットワークの並列フィルタバンクは、高性能および低電力消費を実現するために、SOC100のCPU102またはGPU104にロードされる場合がある。代替実施形態では、並列フィルタバンクは、SOC100のDSP106またはISP116にロードされてもよい。加えて、深層畳み込みネットワーク350は、それぞれ、センサおよびナビゲーションに専用のセンサプロセッサ114およびナビゲーションモジュール120などの、SOC100上に存在する場合がある他の処理ブロックにアクセスすることができる。
【0082】
[0098]深層畳み込みネットワーク350はまた、(「FC1」とラベル付けされた)レイヤ362Aおよび(「FC2」とラベル付けされた)レイヤ362Bなどの1つまたは複数の全結合レイヤを含む場合がある。深層畳み込みネットワーク350は、ロジスティック回帰(LR)レイヤ364をさらに含む場合がある。深層畳み込みネットワーク350の各レイヤ356、358、360、362A、362B、364の間には、更新されるべき重み(図示せず)がある。レイヤ(たとえば、356、358、360、362A、362B、364)の各々の出力は、最初の畳み込みブロック354Aにおいて供給された入力データ352(たとえば、画像、オーディオ、ビデオ、センサデータ、および/または他の入力データ)から階層特徴表現を学習するために、深層畳み込みネットワーク350内のレイヤ(たとえば、356、358、360、362A、362B、364)のうちの後続の1つの入力として機能することができる。深層畳み込みネットワーク350の出力は、入力データ352についての分類スコア366である。分類スコア366は、確率のセットであり得、ここで、各確率は、入力データが特徴のセットからの特徴を含む確率である。
【0083】
[0099]上述されたように、デジタルビデオデータは大量のデータを含むことができ、それは、通信ネットワークならびにビデオデータを処理し記憶するデバイスにかなりの負担をかける可能性がある。たとえば、圧縮されていないビデオコンテンツを記録することは、概して、記録されるビデオコンテンツの解像度が増大するにつれて大幅に増加する大きいファイルサイズをもたらす。1つの例示的な例では、1080p/24(たとえば、24フレーム毎秒でキャプチャされた幅が1920ピクセルで高さが1080ピクセルの解像度)で記録された圧縮されていないチャネル当たり16ビットのビデオは、フレーム当たり12.4メガバイトまたは毎秒297.6メガバイトを占有する場合がある。24フレーム毎秒において4K解像度で記録された圧縮されていないチャネル当たり16ビットのビデオは、フレーム当たり49.8メガバイトまたは毎秒1195.2メガバイトを占有する場合がある。
【0084】
[0100]ネットワーク帯域幅は、大きいビデオファイルが問題になる可能性がある別の制約である。たとえば、ビデオコンテンツは、しばしば、ワイヤレスネットワークを介して(たとえば、LTE、LTEアドバンスト、新無線(NR)、WiFi(登録商標)、Bluetooth、または他のワイヤレスネットワークを介して)配信され、消費者のインターネットトラフィックの大部分を構成する可能性がある。ワイヤレスネットワークにおける利用可能な帯域幅の量の進歩にもかかわらず、これらのネットワークにおいてビデオコンテンツを配信するために使用される帯域幅の量を削減することが依然として望ましい場合がある。
【0085】
[0101]圧縮されていないビデオコンテンツは、物理記憶用のかなりのメモリと送信用のかなりの帯域幅とを要する場合がある大きいファイルをもたらす可能性があるので、そのようなビデオコンテンツを圧縮し、次いで解凍するためにビデオコーディング技法が利用され得る。
【0086】
[0102]ビデオコンテンツのサイズ、したがってビデオコンテンツを記憶するために要するストレージの量、およびビデオコンテンツを配信する際に要する帯域幅の量を削減するために、とりわけ、HEVC、AVC、MPEG、VVCなどの特定のビデオコーディング規格に従って、様々なビデオコーディング技法が実行され得る。ビデオコーディングは、しばしば、ビデオ画像またはシーケンス内に存在する冗長構成を利用するインター予測またはイントラ予測などの予測方法を使用する。ビデオコーディング技法の共通の目標は、ビデオ品質の劣化を回避または最小化しながら、より低いビットレートを使用する形式にビデオデータを圧縮することである。ビデオサービスに対する需要が高まり、新しいビデオサービスが利用可能になるにつれて、より良いコーディング効率、性能、およびレート制御を有するコーディング技法が必要とされる。
【0087】
[0103]概して、符号化デバイスは、符号化ビデオビットストリームを生成するためにビデオコーディング規格に従ってビデオデータを符号化する。いくつかの例では、符号化ビデオビットストリーム(または「ビデオビットストリーム」または「ビットストリーム」)は、一連の1つまたは複数のコード化ビデオシーケンスである。符号化デバイスは、各ピクチャを複数のスライスに区分化することによってピクチャのコード化表現を生成することができる。スライスは、スライス内の情報が、同じピクチャ内の他のスライスからのデータへの依存関係なしにコード化されるように、他のスライスから独立している。スライスは、独立しているスライスセグメントを含む1つまたは複数のスライスセグメントと、存在する場合、前のスライスセグメントに依存する1つまたは複数の依存しているスライスセグメントとを含む。HEVCでは、スライスは、ルーマサンプルおよびクロマサンプルのコーディングツリーブロック(CTB)に区分化される。ルーマサンプルのCTBおよびクロマサンプルの1つまたは複数のCTBは、サンプル用のシンタックスとともに、コーディングツリーユニット(CTU)と呼ばれる。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)と呼ばれる場合もある。CTUは、HEVC符号化のための基本処理単位である。CTUは、様々なサイズの複数のコーディングユニット(CU)に分割され得る。CUは、コーディングブロック(CB)と呼ばれるルーマおよびクロマのサンプル配列を含んでいる。
【0088】
[0104]ルーマCBおよびクロマCBは、予測ブロック(PB)にさらに分割され得る。PBは、(利用可能なとき、または使用のために有効にされたとき)インター予測またはイントラブロックコピー(IBC)予測のために同じ動きパラメータを使用するルーマ成分またはクロマ成分のサンプルのブロックである。ルーマPBおよび1つまたは複数のクロマPBは、関連するシンタックスとともに、予測ユニット(PU)を形成する。インター予測の場合、動きパラメータのセット(たとえば、1つまたは複数の動きベクトル、参照インデックスなど)は、PUごとにビットストリーム内でシグナリングされ、ルーマPBおよび1つまたは複数のクロマPBのインター予測のために使用される。動きパラメータは動き情報と呼ばれる場合もある。CBはまた、1つまたは複数の変換ブロック(TB)に区分化され得る。TBは、予測残差信号をコーディングするために残差変換(たとえば、場合によっては、同じ2次元変換)が適用される色成分のサンプルの正方形ブロックを表す。変換ユニット(TU)は、ルーマサンプルおよびクロマサンプルのTBと、対応するシンタックス要素とを表す。変換コーディングが以下でより詳細に記載される。
【0089】
[0105]HEVC規格によれば、変換はTUを使用して実行される場合がある。TUは、所与のCU内のPUのサイズに基づいてサイズ決定される場合がある。TUは、PUと同じサイズであるか、またはPUよりも小さい場合がある。いくつかの例では、CUに対応する残差サンプルは、残差4分木(RQT)として知られる4分木構造を使用して、より小さいユニットに再分割される場合がある。RQTのリーフノードはTUに対応することができる。TUに関連付けられたピクセル差分値は、変換係数を生成するために変換される場合がある。変換係数は、次いで、符号化デバイスによって量子化される場合がある。
【0090】
[0106]ビデオデータのピクチャがCUに区分化されると、符号化デバイスは予測モードを使用して各PUを予測する。予測ユニットまたは予測ブロックは、次いで、(以下に記載される)残差を得るために元のビデオデータから減算される。CUごとに、シンタックスデータを使用してビットストリーム内で予測モードがシグナリングされる場合がある。予測モードは、イントラ予測(もしくはイントラピクチャ予測)またはインター予測(もしくはインターピクチャ予測)を含む場合がある。イントラ予測は、ピクチャ内の空間的に隣接するサンプル間の相関関係を利用する。たとえば、イントラ予測を使用して、各PUは、たとえば、PUに関する平均値を見つけるためのDC予測、平坦面をPUに適合させるための平面予測、隣接データから外挿するための方向予測、または任意の他の適切なタイプの予測を使用して、同じピクチャ内の隣接する画像データから予測される。インター予測は、画像サンプルのブロックについての動き補償予測を導出するためにピクチャ間の時間的な相関関係を使用する。たとえば、インター予測を使用して、各PUは、(出力順序で現在ピクチャの前または後の)1つまたは複数の参照ピクチャ内の画像データからの動き補償予測を使用して予測される。インターピクチャ予測を使用してピクチャエリアをコード化するべきか、イントラピクチャ予測を使用してピクチャエリアをコード化するべきかの決定は、たとえば、CUレベルにおいて行われる場合がある。
【0091】
[0107]イントラ予測および/またはインター予測を使用して予測を実行した後に、符号化デバイスは、変換と量子化とを実行することができる。たとえば、予測の後に、符号化デバイスは、PUに対応する残差値を計算することができる。残差値は、コーディングされているピクセルの現在ブロック(PU)と、現在ブロックを予測するために使用される予測ブロック(たとえば、現在ブロックの予測されたバージョン)との間のピクセル差分値を備えることができる。たとえば、予測ブロックを生成した(たとえば、インター予測またはイントラ予測を発行した)後に、符号化デバイスは、現在ブロックから予測ユニットによって生成された予測ブロックを減算することによって残差ブロックを生成することができる。残差ブロックは、現在ブロックのピクセル値と予測ブロックのピクセル値との間の差分を定量化するピクセル差分値のセットを含む。いくつかの例では、残差ブロックは、2次元ブロックフォーマット(たとえば、ピクセル値の2次元行列または2次元配列)で表される場合がある。そのような例では、残差ブロックはピクセル値の2次元表現である。
【0092】
[0108]予測が実行された後に残存している場合があるいずれの残差データも、離散コサイン変換、離散サイン変換、整数変換、ウェーブレット変換、他の適切な変換関数、またはそれらの任意の組合せに基づく場合があるブロック変換を使用して変換される。場合によっては、1つまたは複数のブロック変換(たとえば、サイズ32×32、16×16、8×8、4×4、または他の適切なサイズ)が各CUにおける残差データに適用される場合がある。いくつかの実施形態では、TUは、符号化デバイスによって実装される変換プロセスおよび量子化プロセスに使用される場合がある。1つまたは複数のPUを有する所与のCUはまた、1つまたは複数のTUを含む場合がある。以下でさらに詳細に記載されるように、残差値は、ブロック変換を使用して変換係数に変換される場合があり、次いで、エントロピーコーディング用のシリアル化変換係数を生成するために、TUを使用して量子化および走査される場合がある。
【0093】
[0109]符号化デバイスは変換係数の量子化を実行することができる。量子化は、係数を表すために使用されるデータの量を低減するために変換係数を量子化することによってさらなる圧縮を提供する。たとえば、量子化は、係数の一部または全部に関連付けられたビット深度を低減することができる。一例では、nビット値を有する係数は、量子化中にmビット値に切り捨てられる場合があり、nはmよりも大きい。
【0094】
[0110]量子化が実行されると、コード化ビデオビットストリームは、量子化変換係数と、予測情報(たとえば、予測モード、動きベクトル、ブロックベクトルなど)と、区分化情報と、他のシンタックスデータなどの任意の他の適切なデータとを含む。コード化ビデオビットストリームの異なる要素は、次いで、符号化デバイスによってエントロピー符号化される場合がある。いくつかの例では、符号化デバイスは、量子化変換係数を走査してエントロピー符号化され得るシリアル化ベクトルを生成するために、あらかじめ定義された走査順序を利用することができる。いくつかの例では、符号化デバイスは適応型走査を実行することができる。ベクトル(たとえば、1次元ベクトル)を形成するために量子化変換係数を走査した後に、符号化デバイスは、ベクトルをエントロピー符号化することができる。たとえば、符号化デバイスは、コンテキスト適応型可変長コーディング、コンテキスト適応型バイナリ算術コーディング、シンタックスベースコンテキスト適応型バイナリ算術コーディング、確率間隔区分化エントロピーコーディング、または別の適切なエントロピー符号化技法を使用することができる。
【0095】
[0111]符号化デバイスは、符号化ビデオビットストリームを記憶することができ、および/または復号デバイスを含むことができる受信デバイスに通信リンクを介して符号化ビデオビットストリームデータを送ることができる。符号化デバイスは、(たとえば、エントロピーデコーダを使用して)エントロピー復号し、符号化ビデオデータを構成する1つまたは複数のコード化ビデオシーケンスの要素を抽出することにより、符号化ビデオビットストリームデータを復号することができる。復号デバイスは、次いで、符号化ビデオビットストリームデータを再スケーリングし、符号化ビデオビットストリームデータに対して逆変換を実行することができる。次いで、残差データが復号デバイスの予測段階に渡される。復号デバイスは、次いで、イントラ予測、インター予測、IBC、および/または他のタイプの予測を使用してピクセルのブロック(たとえば、PU)を予測する。いくつかの例では、予測は逆変換の出力(残差データ)に加算される。復号デバイスは、ビデオ宛先デバイスに復号ビデオを出力することができ、ビデオ宛先デバイスは、コンテンツの消費者に復号ビデオデータを表示するためのディスプレイまたは他の出力デバイスを含む場合がある。
【0096】
[0112]様々なビデオコーディング規格(たとえば、上述されたHEVCビデオコーディング技法)によって定義されたビデオコーディングのシステムおよび技法は、未加工のビデオコンテンツ内の情報の大部分を保持することができる場合があり、信号処理および情報理論の概念に基づいてアプリオリに定義される場合がある。しかしながら、場合によっては、機械学習(ML)ベースの画像および/またはビデオシステムは、エンドツーエンドニューラルネットワークベースの画像およびビデオコーディング(E2E-NNVC)システムなどの、非MLベースの画像およびビデオコーディングシステムと比べて利益を提供することができる。上述されたように、多くのE2E-NNVCシステムは、オートエンコーダサブネットワーク(エンコーダサブネットワーク)、およびエントロピーコーディングに使用される量子化ラテント上で確率モデルを学習することに関与する第2のサブネットワークの組合せとして設計される。そのようなアーキテクチャは、変換プラス量子化モジュール(エンコーダサブネットワーク)およびエントロピーモデリングサブネットワークモジュールの組合せとして見ることができる。
【0097】
[0113]図4は、E2E-NNVCシステム410を使用してビデオの符号化および復号を実行するように構成されたデバイス402を含むシステム400を描写する。デバイス402は、カメラ407および記憶媒体414(たとえば、データストレージデバイス)に結合される。いくつかの実装形態では、カメラ407は、E2E-NNVCシステム410によって符号化するためにプロセッサ404に画像データ408(たとえば、ビデオデータストリーム)を提供するように構成される。いくつかの実装形態では、デバイス402は、複数のカメラ(たとえば、デュアルカメラシステム、3つのカメラ、または他の数のカメラ)に結合され得、および/またはそれらを含むことができる。場合によっては、デバイス402は、マイクロフォンならびに/または他の入力デバイス(たとえば、キーボード、マウス、タッチスクリーンおよび/もしくはタッチパッドなどのタッチ入力デバイス、ならびに/または他の入力デバイス)に結合され得る。いくつかの例では、カメラ407、記憶媒体414、マイクロフォン、および/または他の入力デバイスは、デバイス402の一部であり得る。
【0098】
[0114]デバイス402はまた、1つもしくは複数のワイヤレスネットワーク、1つもしくは複数の有線ネットワーク、またはそれらの組合せなどの伝送媒体418を介して、第2のデバイス490に結合される。たとえば、伝送媒体418は、ワイヤレスネットワーク、有線ネットワーク、または有線ネットワークとワイヤレスネットワークの組合せによって提供されるチャネルを含むことができる。伝送媒体418は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成することができる。伝送媒体418は、ルータ、スイッチ、基地局、またはソースデバイスから受信デバイスへの通信を容易にするために有用であり得る任意の他の機器を含む場合がある。ワイヤレスネットワークは、任意のワイヤレスインターフェースまたはワイヤレスインターフェースの組合せを含む場合があり、任意の適切なワイヤレスネットワーク(たとえば、インターネットまたは他のワイドエリアネットワーク、パケットベースネットワーク、WiFi、無線周波数(RF)、UWB、WiFi-Direct、セルラー、ロングタームエボリューション(LTE)、WiMax(登録商標)など)を含む場合がある。有線ネットワークは、任意の有線インターフェース(たとえば、ファイバ、イーサネット(登録商標)、電力線イーサネット、同軸ケーブルを介したイーサネット、デジタル信号線(DSL)など)を含む場合がある。有線および/またはワイヤレスのネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチなどの様々な機器を使用して実装される場合がある。符号化ビデオビットストリームデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、受信デバイスに送信される場合がある。
【0099】
[0115]デバイス402は、メモリ406、第1のインターフェース(「I/F1」)412、および第2のインターフェース(「I/F2」)416に結合された(本明細書では「プロセッサ」と呼ばれる)1つまたは複数のプロセッサ404を含む。プロセッサ404は、カメラ407から、メモリ406から、および/または記憶媒体414から画像データ408を受け取るように構成される。プロセッサ404は、第1のインターフェース412を介して(たとえば、メモリバスを介して)記憶媒体414に結合され、第2のインターフェース416(たとえば、ネットワークインターフェースデバイス、ワイヤレストランシーバおよびアンテナ、1つもしくは複数の他のネットワークインターフェースデバイス、またはそれらの組合せ)を介して伝送媒体418に結合される。
【0100】
[0116]プロセッサ404はE2E-NNVCシステム410を含む。E2E-NNVCシステム410は、エンコーダ部分462とデコーダ部分466とを含む。いくつかの実装形態では、E2E-NNVCシステム410は、1つまたは複数のオートエンコーダを含むことができる。エンコーダ部分462は、入力データ470を受け取り、入力データ470に少なくとも部分的に基づいて出力データ474を生成するために入力データ470を処理するように構成される。
【0101】
[0117]いくつかの実装形態では、E2E-NNVCシステム410のエンコーダ部分462は、出力データ474を生成するために入力データ470の不可逆圧縮を実行するように構成され、その結果、出力データ474は入力データ470よりも少ないビットを有する。エンコーダ部分462は、任意の前の表現(たとえば、1つまたは複数の前に復元されたフレーム)に基づいて、動き補償を使用せずに入力データ470(たとえば、画像またはビデオフレーム)を圧縮するように訓練され得る。たとえば、エンコーダ部分462は、ビデオフレームを、そのビデオフレームからのビデオデータのみを使用し、前に復元されたフレームのいかなるデータも使用せずに圧縮することができる。エンコーダ部分462によって処理されるビデオフレームは、本明細書ではイントラ予測フレーム(Iフレーム)と呼ばれ得る。いくつかの例では、Iフレームは、旧来のビデオコーディング技法を使用して(たとえば、HEVC、VVC、MPEG-4、または他のビデオコーディング規格に従って)生成され得る。そのような例では、プロセッサ404は、HEVC規格に関して上述されたものなどの、ブロックベースのイントラ予測を実行するように構成されたビデオコーディングデバイス(たとえば、符号化デバイス)を含むか、またはそれと結合される場合がある。そのような例では、E2E-NNVCシステム410は、プロセッサ404から除外される場合がある。
【0102】
[0118]いくつかの実装形態では、E2E-NNVCシステム410のエンコーダ部分462は、前の表現(たとえば、1つまたは複数の前に復元されたフレーム)に基づいて、動き補償を使用して入力データ470(たとえば、ビデオフレーム)を圧縮するように訓練され得る。たとえば、エンコーダ部分462は、ビデオフレームを、そのビデオフレームからのビデオデータを使用し、前に復元されたフレームのデータを使用して圧縮することができる。エンコーダ部分462によって処理されるビデオフレームは、本明細書ではイントラ予測フレーム(Pフレーム)と呼ばれ得る。動き補償は、前に復元されたフレームからのピクセルが残差情報とともに現在フレーム内の新しい位置にどのように移動するかを記述することにより、現在フレームのデータを決定するために使用され得る。
【0103】
[0119]図示されたように、E2E-NNVCシステム410のエンコーダ部分462は、ニューラルネットワーク463と量子化器464とを含むことができる。ニューラルネットワーク463は、1つもしくは複数の畳み込みニューラルネットワーク(CNN)、1つもしくは複数の全結合ニューラルネットワーク、1つもしくは複数のゲート付き再帰型ユニット(GRU)、1つもしくは複数の長短期記憶(LSTM)ネットワーク、1つもしくは複数のConvRNN、1つもしくは複数のConvGRU、1つもしくは複数のConvLSTM、1つもしくは複数のGAN、それらの任意の組合せ、および/または中間データ472を生成する他のタイプのニューラルネットワークアーキテクチャを含むことができる。中間データ472は量子化器464への入力である。エンコーダ部分462に含まれ得る構成要素の例が、図6A図6Eに示されている。
【0104】
[0120]量子化器464は、出力データ474を生成するために中間データ472の量子化と、場合によってはエントロピーコーディングとを実行するように構成される。出力データ474は、量子化(および場合によってはエントロピーコード化)データを含むことができる。量子化器464によって実行される量子化演算は、中間データ472から、量子化コード(またはE2E-NNVCシステム410によって生成された量子化コードを表すデータ)の生成をもたらすことができる。量子化コード(または量子化コードを表すデータ)はまた、(zと表記された)ラテントコード(latent code)またはラテントと呼ばれ得る。ラテントに適用されるエントロピーモデルは、本明細書では「プライア(prior)」と呼ばれ得る。いくつかの例では、量子化および/またはエントロピーコーディング演算は、既存のビデオコーディング規格に従ってビデオデータを符号化および/または復号するときに実行される既存の量子化およびエントロピーコーディング演算を使用して実行され得る。いくつかの例では、量子化および/またはエントロピーコーディング演算は、E2E-NNVCコーディングシステム410によって行われ得る。1つの例示的な例では、E2E-NNVCシステム410は、教師あり訓練を使用して訓練され得、訓練中に残差データが入力として使用され、量子化コードおよびエントロピーコードが既知の出力(ラベル)として使用される。
【0105】
[0121]E2E-NNVCシステム410のデコーダ部分466は、(たとえば、量子化器464から直接、および/または記憶媒体414から)出力データ474を受け取るように構成される。デコーダ部分466は、出力データ474に少なくとも部分的に基づいて入力データ470の表現476を生成するために、出力データ474を処理することができる。いくつかの例では、E2E-NNVCシステム410のデコーダ部分466は、1つもしくは複数のCNN、1つもしくは複数の全結合ニューラルネットワーク、1つもしくは複数のGRU、1つもしくは複数の長短期記憶(LSTM)ネットワーク、1つもしくは複数のConvRNN、1つもしくは複数のConvGRU、1つもしくは複数のConvLSTM、1つもしくは複数のGAN、それらの任意の組合せ、および/または他のタイプのニューラルネットワークアーキテクチャを含む場合があるニューラルネットワーク468を含む。デコーダ部分466に含まれ得る構成要素の例が、図6A図6Eに示されている。
【0106】
[0122]プロセッサ404は、伝送媒体418または記憶媒体414のうちの少なくとも1つに出力データ474を送るように構成される。たとえば、出力データ474は、復元データとして入力データ470の表現476を生成するためにデコーダ部分466による後の検索および復号(または復元)のために記憶媒体414において記憶される場合がある。復元データは、出力データ474を生成するために符号化/圧縮されたビデオデータの再生用などの様々な目的に使用され得る。いくつかの実装形態では、出力データ474は、復元データとして入力データ470の表現476を生成するために、(たとえば、デバイス402内の、第2のデバイス490内の、または別のデバイス内の)デコーダ部分466に一致する別のデコーダデバイスにおいて復号される場合がある。たとえば、第2のデバイス490は、デコーダ部分466に一致する(または実質的に一致する)デコーダを含む場合があり、出力データ474は、伝送媒体418を介して第2のデバイス490に送信される場合がある。第2のデバイス490は、復元データとして入力データ470の表現476を生成するために、出力データ474を処理することができる。
【0107】
[0123]システム400の構成要素は、本明細書に記載された様々な動作を実行するために、1つもしくは複数のプログラマブル電子回路(たとえば、マイクロプロセッサ、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、中央処理装置(CPU)、および/または他の適切な電子回路)を含むことができる、電子回路もしくは他の電子ハードウェアを含むことができ、および/またはそれらを使用して実装され得、ならびに/あるいは、コンピュータソフトウェア、ファームウェア、もしくはそれらの任意の組合せを含むことができ、および/またはそれらを使用して実装され得る。
【0108】
[0124]システム400はいくつかの構成要素を含むように示されているが、システム400が図4に示された構成要素よりも多いかまたは少ない構成要素を含むことができることを当業者は諒解されよう。たとえば、システム400はまた、入力デバイスと出力デバイス(図示せず)とを含むコンピューティングデバイスを含むことができるか、またはその一部であり得る。いくつかの実装形態では、システム400はまた、1つもしくは複数のメモリデバイス(たとえば、1つもしくは複数のランダムアクセスメモリ(RAM)構成要素、読取り専用メモリ(ROM)構成要素、キャッシュメモリ構成要素、バッファ構成要素、データベース構成要素、および/もしくは他のメモリデバイス)、1つもしくは複数のメモリデバイスと通信している、および/またはそれらに電気的に接続された1つもしくは複数の処理デバイス(たとえば、1つもしくは複数のCPU、GPU、および/もしくは他の処理デバイス)、ワイヤレス通信を実行するための(たとえば、ワイヤレスインターフェースごとに1つもしくは複数のトランシーバとベースバンドプロセッサとを含む)1つもしくは複数のワイヤレスインターフェース、1つもしくは複数のハードウェア接続を介した通信を実行するための1つもしくは複数の有線インターフェース(たとえば、ユニバーサルシリアルバス(USB)入力などのシリアルインターフェース、ライトニングコネクタ、および/もしくは他の有線インターフェース)、ならびに/または図4に示されていない他の構成要素を含むコンピューティングデバイスを含む場合があるか、もしくはその一部であり得る。
【0109】
[0125]いくつかの実装形態では、システム400は、コンピューティングデバイスによって局所的に実装され、および/またはコンピューティングデバイスに含まれ得る。たとえば、コンピューティングデバイスは、モバイルデバイス、パーソナルコンピュータ、タブレットコンピュータ、仮想現実(VR)デバイス(たとえば、ヘッドマウントディスプレイ(HMD)もしくは他のVRデバイス)、拡張現実(AR)デバイス(たとえば、HMD、ARグラス、もしくは他のARデバイス)、ウェアラブルデバイス、(たとえば、サービスとしてのソフトウェア(SaaS)システムもしくは他のサーバベースシステム内の)サーバ、テレビジョン、および/または本明細書に記載された技法を実行するリソース能力を有する任意の他のコンピューティングデバイスを含むことができる。
【0110】
[0126]一例では、E2E-NNVCシステム410は、プロセッサ404に結合され、プロセッサ404によって実行可能な命令を記憶するように構成されたメモリ406と、アンテナおよびプロセッサ404に結合され、リモートデバイスに出力データ474を送信するように動作可能なワイヤレストランシーバとを含むポータブル電子デバイスに組み込まれ得る。
【0111】
[0127]E2E-NNVCシステムは、通常、RGB入力を処理するように設計される。RGB入力を対象にする画像およびビデオのコーディング方式の例は、(「J.Balle Paper」と呼ばれる)J.Balle、D.Minnen、S.Singh、S.J.Hwang、N.Johnston、「Variational image compression with a scale hyperprior」、ICLR、2018年、および(「D.Minnen Paper」と呼ばれる)D.Minnen、J.Balle、G.Toderici、「Joint Autoregressive and Hierarchical Priors for Learned Image Compression」、CVPR、2018年に記載されており、それらの全体がすべての目的のために参照により本明細書に組み込まれている。
【0112】
[0128]図5は、J.Balle Paperに記載されたE2E-NNVCシステムの一例を示す図である。図5のE2E-NNVCシステム内のgaサブネットワークおよびgsサブネットワークは、それぞれ、エンコーダサブネットワーク(たとえば、エンコーダ部分462)およびデコーダサブネットワーク(たとえば、デコーダ部分466)に対応する。図5のgaサブネットワークおよびgsサブネットワークは、3チャネルRGB入力向けに設計され、すべての3つのR入力チャネル、G入力チャネル、およびB入力チャネルは、同じニューラルネットワークレイヤ(畳み込みレイヤおよび一般化神経活動正規化(GDN)レイヤ)を通過し、それらによって処理される。ニューラルネットワークレイヤは、畳み込み演算を実行する畳み込みレイヤと、局所神経活動正規化を実装する逆GDN(IGDN)非線形レイヤとを含むことができる。局所神経活動正規化は、特に画像の密度モデリングおよび圧縮に適切であるように示された変換のタイプである。(図5に示されたものなどの)E2E-NNVCシステムは、RGBデータなどの同様の統計特性を有する入力チャネルを対象とする(ここで、異なるRチャネル、Gチャネル、およびBチャネルの統計特性は同様である)。
【0113】
[0129]E2E-NNVCシステムは、通常、RGB入力を処理するように設計されるが、ほとんどの画像およびビデオのコーディングシステムは、YUV入力フォーマット(たとえば、多くの場合YUV420フォーマット)を使用する。YUVフォーマットにおけるクロミナンス(UおよびV)チャネルは、ルミナンス(Y)チャネルに対してサブサンプリングされ得る。サブサンプリングは視覚的品質に対して最小の影響しかもたらさない(たとえば、視覚的品質に対して重要または顕著な影響がない)。サブサンプリングフォーマットには、YUV420フォーマット、YUV422フォーマット、および/または他のYUVフォーマットが含まれる。チャネル間の相関関係はYUVフォーマットでは低減され、それは他の色フォーマット(たとえば、RGBフォーマット)には当てはまらない場合がある。さらに、ルミナンス(Y)チャネルならびにクロミナンス(UおよびV)チャネルの統計値は異なる。たとえば、UチャネルおよびVチャネルはルミナンスチャネルと比較してばらつきが少ないが、たとえば、RGBフォーマットは、Rチャネル、Gチャネル、およびBチャネルの統計特性はよく似ている。ビデオコーダ-デコーダ(またはコーデック)は、データの入力特性に応じて設計される(たとえば、コーデックはデータの入力フォーマットに従ってデータを符号化および/または復号することができる)。たとえば、フレームのクロミナンスチャネルがサブサンプリングされる場合(たとえば、クロミナンスチャネルはルミナンスチャネルと比較して半分の解像度である)、コーデックが動き補償のためにフレームのブロックを予測するとき、ルミナンスブロックは、クロミナンスブロックと比較して幅と高さの両方で2倍の大きさである。別の例では、コーデックは、とりわけ、クロミナンスおよびルミナンスに対してどのくらいのピクセルが符号化または復号されようとするかを決定することができる。
【0114】
[0130](上述されたように、ほとんどのE2E-NNVCシステムが処理するように設計される)RGB入力データが(すべてのチャネルが同じ次元を有する)YUV4:4:4入力データと置き換えられた場合、入力データを処理するE2E-NNVCシステムの性能は、ルミナンス(Y)チャネルならびにクロミナンス(UおよびV)チャネルの異なる統計特性に起因して低下する。上述されたように、クロミナンス(UおよびV)チャネルは、YUV420の場合などのいくつかのYUVフォーマットでサブサンプリングされる。たとえば、YUV4:2:0フォーマットを有するコンテンツの場合、UチャネルおよびVチャネルの解像度は、Yチャネルの解像度の半分である(UチャネルおよびVチャネルは、幅および高さが半分であることに起因して、Yチャネルの4分の1のサイズを有する)。そのようなサブサンプリングは、入力データをE2E-NNVCシステムの入力と互換性がないようにする可能性がある。入力データは、E2E-NNVCシステムが符号化および/または復号しようと試みている情報(たとえば、ルミナンス(Y)チャネルとクロミナンス(UおよびV)チャネルとを含む3つのチャネルを含むYUVフレーム)である。多くのニューラルネットワークベースのシステムは、入力データのすべてのチャネル次元が同じであると想定し、したがって入力チャネルのすべてを同じネットワークに供給する。そのような場合、いくつかの演算の出力が(たとえば、行列加算を使用して)加算され得、その場合、チャネルの次元は同じである必要がある。
【0115】
[0131]いくつかの例では、そのような問題に対処するために、Yチャネルは、4つの半分の解像度のYチャネルにサブサンプリングされ得る。4つの半分の解像度のYチャネルは、2つのクロミナンスチャネルと結合され得、6つの入力チャネルをもたらす。6つの入力チャネルは、RGB入力向けに設計されたE2E-NNVCシステムに入力または供給され得る。そのような手法は、ルミナンス(Y)チャネルならびにクロミナンス(UおよびV)チャネルの解像度の違いに関する問題に対処することができる。しかしながら、ルミナンス(Y)チャネルとクロミナンス(UおよびV)チャネルとの間の固有の違いが依然として存在し、不十分なコーディング(たとえば、符号化および/または復号)性能をもたらす。
【0116】
[0132]上述されたように、1つまたは複数のMLベースのシステムを使用して画像および/またはビデオのコーディングを実行するためのシステムおよび技法が本明細書に記載されている。本明細書に記載されたシステムおよび技法は、ルミナンス-クロミナンス(YUV)入力フォーマット(たとえば、とりわけ、YUV420、YUV444、YUV422)を有する入力データを処理するために設計されたフロントエンドアーキテクチャ(たとえば、エンドツーエンドニューラルネットワークベース画像およびビデオコーディング(E2E-NNVC)システムなどの新しいサブネットワーク)を提供する。いくつかの例では、フロントエンドアーキテクチャは、RGB入力フォーマット向けに設計されたE2E-NNVCにおいてYUV4:2:0入力フォーマットに適応するように構成される。上述されたように、フロントエンドアーキテクチャは、(たとえば、J.Balle PaperおよびD.Minnen Paperに記載されたアーキテクチャを含む)多くのE2E-NNVCアーキテクチャに適用可能である。本明細書に記載されたシステムおよび技法は、ルミナンス(Y)チャネルとクロミナンス(UおよびV)チャネルの異なる特性、ならびにルミナンス(Y)チャネルとクロミナンス(UおよびV)チャネルの解像度における違いを考慮する。E2E-NNVCシステムは、スタンドアロンフレーム(もしくは画像)および/または複数のフレームを含むビデオデータを符号化および/または復号することができる。
【0117】
[0133]いくつかの例では、本明細書に記載されたシステムおよび技法は、最初に、YチャネルとUVチャネルとを2つの分離されたレイヤに入力または供給することができる。E2E-NNVCシステムは、次いで、一定数のレイヤの後に(たとえば、以下に記載される図6A図6Eに示されたように、畳み込みレイヤと非線形レイヤの第1のペアまたは他のレイヤの後に)、YチャネルおよびUVチャネルに関連付けられたデータを結合することができる。UおよびVのクロマ成分はルミナンス(Y)チャネルに対してサブサンプリングされるので、第1の畳み込みレイヤにおけるサブサンプリングはスキップされ得、(たとえば、(N/2+1)×(N/2+1)のサイズを有する)特定のサイズの畳み込み(たとえば、CNN)カーネルは、クロミナンス(UおよびV)チャネルへのサブサンプリングされた入力に使用され得る。次いで、クロミナンス(UおよびV)チャネルに使用されるカーネルと比較して異なるサイズを有するCNNカーネル(たとえば、N×NのCNNカーネル)がルミナンス(Y)チャネルに使用され得る。フロントエンドアーキテクチャの(ルーマチャネルおよびクロマチャネルまたは成分情報を別々に搬送する)2つの分岐は、チャネルにわたって値を結合する畳み込みレイヤ(たとえば、1×1畳み込みレイヤ)を使用して結合され得る。1×1畳み込みレイヤの使用は、コーディング効率の向上を含む本明細書に記載された様々な恩恵を提供することができる。
【0118】
[0134]図6A図6Fは、ニューラルネットワークシステムのフロントエンドアーキテクチャの例示的な例を示す。いくつかの例では、図6A図6Fのフロントエンドアーキテクチャは、YUV4:2:0フォーマットを有するデータを処理(符号化および/または復号)するために設計されたE2E-NNVCシステムの一部であり得る。たとえば、フロントエンドアーキテクチャは、YUV4:2:0フォーマットを有する入力データを処理するために構成され得る。図6A図6C図6D、および図6Eのフロントエンドアーキテクチャは、1×1畳み込みレイヤの後に適用される2つの異なる非線形演算子を有する。たとえば、一般化神経活動正規化(GDN)演算子は、図6Aのアーキテクチャにおいて使用され、パラメトリック整流線形ユニット(PReLU)非線形演算子は、図6C図6Eのアーキテクチャにおいて適用される。いくつかの例では、図6Aおよび図6C図6Fに示されたものと同様のニューラルネットワークアーキテクチャが、他のタイプのYUVコンテンツ(たとえば、YUV4:4:4フォーマット、YUV4:2:2フォーマットなどを有するコンテンツ)および/または他の入力フォーマットを有するコンテンツを符号化および/または復号するために使用され得る。
【0119】
[0135]たとえば、図6Aは、4:2:0入力(Y、U、およびV)データと直接連携するように構成され得るフロントエンドニューラルネットワークシステムまたはアーキテクチャの一例を示す図である。図6Aに示されたように、ニューラルネットワークシステムのエンコーダサブネットワークにおいて、分岐されたルーマチャネルおよびクロマチャネル(ルーマ(Y)チャネル602ならびにクロマ(UおよびV)チャネル604)は、1×1畳み込みレイヤ606を使用して結合され、次いで、GDN非線形演算子608が適用される。ニューラルネットワークシステムのデコーダサブネットワーク上で同様の演算が実行されるが、逆の順序である。たとえば、図6Aに示されたように、逆GDN(IGDN)演算子609が適用され、YチャネルおよびU、Vチャネルが1×1畳み込みレイヤ613を使用して分離され、別々のYチャネルおよびU、Vチャネルが、それぞれのIGDN615、616および畳み込みレイヤ617、618を使用して処理される。
【0120】
[0136]たとえば、図6Aのニューラルネットワークシステムのエンコーダサブネットワーク内の最初の2つのニューラルネットワークレイヤは、(Nconv|3×3|↓1と表記された)第1の畳み込みレイヤ611と、(Nconv|5×5|↓2と表記された)第2の畳み込みレイヤ610と、第1のGDNレイヤ614と、第2のGDNレイヤ612とを含む。図6Aのフロントエンドニューラルネットワークアーキテクチャのデコーダサブネットワーク内の最後の2つのニューラルネットワークレイヤは、フレームの復元クロミナンス(UおよびV)成分を生成するための第1の逆GDN(IGDN)レイヤ616と、第2の逆GDN(IGDN)レイヤ615と、(2conv|3×3|↑1と表記された)第1の畳み込みレイヤ618と、フレームの復元ルミナンス(Y)成分を生成するための(1conv|5×5|↑2と表記された)第2の畳み込みレイヤ617とを含む。「Nconv」という表記法は、(出力チャネルの数を定義するNの値を有する)所与の畳み込みレイヤの(出力特徴の数に対応する)出力チャネルの数(N)を指す。3×3および5×5という表記法は、それぞれの畳み込みカーネル(たとえば、3×3カーネルおよび5×5カーネル)のサイズを示す。「↓1」および「↓2」という表記法はストライド値を指し、ここで↓1は(「↓」によって示されたダウンサンプリング用の)1のストライドを指し、↓2は(ダウンサンプリング用の)1のストライドを指す。「↑1」および「↑2」という表記法はストライド値を指し、ここで↑1は(「↑」によって示されたアップサンプリング用の)1のストライドを指し、↑2は(アップサンプリング用の)1のストライドを指す。
【0121】
[0137]たとえば、畳み込みレイヤ610は、2のストライド値によって水平次元および垂直次元の5×5畳み込みフィルタを適用することにより、入力ルーマチャネルを4倍にダウンサンプリングする。畳み込みレイヤ610の結果として得られた出力は、特徴値の(N個のチャネルに対応する)N個の配列である。畳み込みレイヤ611は、1のストライド値によって水平次元および垂直次元の3×3畳み込みフィルタを適用することにより、入力クロマ(UおよびV)チャネル604を処理する。畳み込みレイヤ611の結果として得られた出力は、特徴値の(N個のチャネルに対応する)N個の配列である。畳み込みレイヤ610によって出力された特徴値の配列は、畳み込みレイヤ611によって出力された特徴値の配列と同じ次元を有する。次いで、GDNレイヤ612は、畳み込みレイヤ610によって出力された特徴値を処理することができ、GDNレイヤ614は、畳み込みレイヤ611によって出力された特徴値を処理することができる。
【0122】
[0138]次いで、1×1畳み込みレイヤ606は、GDNレイヤ612、614によって出力された特徴値を処理することができる。1×1畳み込みレイヤ606は、ルーマチャネル602およびクロマチャネル604に関連付けられた特徴の線形結合を生成することができる。線形結合演算は、Y成分およびUV成分の値当たりのクロスチャネル混合として動作し、コーディング性能を向上させるクロス成分(たとえば、クロス-ルミナンスおよびクロミナンス成分)の予測をもたらす。1×1畳み込みレイヤ606の各1×1畳み込みフィルタは、ルーマチャネル602の対応するN番目のチャネルおよびクロマチャネル604の対応するN番目のチャネルに適用されるそれぞれのスケーリングファクタを含むことができる。
【0123】
[0139]図6Bは、1×1畳み込みレイヤ638の例示的な動作を示す図である。上述されたように、Nは出力チャネルの数を表す。図6Bに示されたように、N個のチャネルクロマ(結合されたUおよびV)出力632とN個のチャネルルーマ(Y)出力634とを含む、2N個のチャネルが1×1畳み込みレイヤ638への入力として提供される。図6Bの例では、Nの値は2に等しく、N個のチャネルクロマ出力632用の値の2つのチャネルと、N個のチャネルルーマ出力634用の値の2つのチャネルとを示す。図6Aを参照すると、N個のチャネルクロマ出力632はGDNレイヤ614からの出力であり得、N個のチャネルルーマ出力634はGDNレイヤ612からの出力であり得る。しかしながら、他の例では、N個のチャネルクロマ出力632およびN個のチャネルルーマ出力634は、他の非線形レイヤから(たとえば、図6DのそれぞれpReLUレイヤ652および654から、図6EのそれぞれpReLUレイヤ662および664から)の出力、または直接畳み込みレイヤからの出力(たとえば、図6Fのそれぞれ畳み込みレイヤ670および671からの出力)であり得る。
【0124】
[0140]1×1畳み込みレイヤ638は、2N個のチャネルを処理し、2N個のチャネルの特徴別線形結合を実行し、次いで、特徴または係数のN個のチャネルセットを出力する。1×1畳み込みレイヤ638は、(N=2に基づいて)2つの1×1畳み込みフィルタを含む。第1の1×1畳み込みフィルタはS1の値で示され、第2の1×1畳み込みフィルタはS2の値で示されている。S1の値は第1のスケーリングファクタを表し、S2の値は第2のスケーリングファクタを表す。1つの例示的な例では、S1の値は3に等しく、S2の値は4に等しい。1×1畳み込みレイヤ638の1×1畳み込みフィルタの各々は1のストライド値を有し、スケーリングファクタS1およびS2がUV出力632およびY出力634における各値に適用されることを示す。
【0125】
[0141]たとえば、第1の1×1畳み込みフィルタのスケーリングファクタS1は、UV出力632の第1のチャネル(C1)内の各値およびY出力634の第1のチャネル(C1)内の各値に適用される。UV出力632の第1のチャネル(C1)の各値およびY出力634の第1のチャネル(C1)の各値が第1の1×1畳み込みフィルタのスケーリングファクタS1によってスケーリングされると、スケーリング値は出力値639の第1のチャネル(C1)に結合される。第2の1×1畳み込みフィルタのスケーリングファクタS2は、UV出力632の第2のチャネル(C2)内の各値およびY出力634の第2のチャネル(C2)内の各値に適用される。UV出力632の第2のチャネル(C2)の各値およびY出力634の第2のチャネル(C2)の各値が第2の1×1畳み込みフィルタのスケーリングファクタS2によってスケーリングされた後、スケーリング値は出力値639の第2のチャネル(C2)に結合される。結果として、4つのYおよびUVチャネル(2つのYチャネルおよび2つの結合UVチャネル)は混合され、2つの出力チャネルC1およびC2に結合される。
【0126】
[0142]図6Aに戻ると、1×1畳み込みレイヤ606の出力は、エンコーダサブネットワークの追加のGDNレイヤおよび追加の畳み込みレイヤによって処理される。量子化エンジン620は、量子化出力を生成するために、エンコーダサブネットワークの最後のニューラルネットワークレイヤ619によって出力された特徴に対して量子化を実行することができる。エントロピー符号化エンジン621は、ビットストリームを生成するために、量子化エンジン620からの量子化出力をエントロピー符号化することができる。図6Aに示されたように、エントロピー符号化エンジン621は、エントロピー符号化を実行するためにハイパープライアネットワークによって生成されたプライアを使用することができる。ニューラルネットワークシステムは、格納のため、別のデバイス、サーバデバイス、もしくはサーバシステムへの送信のためにビットストリームを出力し、および/またはそうでない場合、ビットストリームを出力することができる。
【0127】
[0143]ニューラルネットワークシステムのデコーダサブネットワークまたは(別のデバイスの)別のニューラルネットワークシステムのデコーダサブネットワークは、ビットストリームを復号することができる。たとえば、図6Aに示されたように、デコーダサブネットワークのエントロピー復号エンジン622は、ビットストリームをエントロピー復号し、エントロピー復号データを逆量子化エンジン623に出力することができる。エントロピー復号エンジン622は、図6Aに示されたように、エントロピー復号を実行するためにハイパープライアネットワークによって生成されたプライアを使用することができる。逆量子化エンジン623は、データを逆量子化することができる。逆量子化データは、デコーダサブネットワークのいくつかの畳み込みレイヤおよびいくつかの逆GDN(IGDN)によって処理され得る。
【0128】
[0144]IGDNレイヤ609によって処理された後、1×1畳み込みレイヤ613がデータを処理することができる。1×1畳み込みレイヤ613は、データをYチャネル特徴および結合UVチャネル特徴に分割することができる2N個の畳み込みフィルタを含むことができる。たとえば、IGDNレイヤ609によって出力されたN個のチャネルの各々は、1×1畳み込みレイヤ613の(スケーリングをもたらす)2N個の1×1畳み込みを使用して処理され得る。N個の入力チャネルに適用される(合計2N個の出力チャネルからの)出力チャネルに対応するスケーリングファクタniごとに、デコーダサブネットワークは、N個の入力チャネルにわたって合計を実行することができ、2N個の出力をもたらす。1つの例示的な例では、スケーリングファクタn1の場合、デコーダサブネットワークは、N個の入力チャネルにスケーリングファクタn1を適用することができ、結果を合計することができ、それにより、1つの出力チャネルがもたらされる。デコーダサブネットワークは、2N個の異なるスケーリングファクタ(たとえば、スケーリングファクタn1、スケーリングファクタn2、スケーリングファクタn2Nまで)についてこの演算を実行することができる。
【0129】
[0145]1×1畳み込みレイヤ613によって出力されたYチャネル特徴は、IGDN615によって処理され得る。1×1畳み込みレイヤ613によって出力された結合UVチャネル特徴は、IGDN616によって処理され得る。畳み込みレイヤ617は、Yチャネル特徴を処理し、復元Y成分624として示された、ピクセル当たりの復元Yチャネルまたは復元フレームのサンプル(たとえば、ルミナンスサンプルもしくはピクセル)を出力することができる。畳み込みレイヤ618は、結合UVチャネル特徴を処理し、復元UおよびV成分625として示された、ピクセル当たりの復元Uチャネルまたは復元フレームのサンプル(たとえば、クロミナンス青サンプルもしくはピクセル)およびピクセル当たりの復元Vチャネルまたは復元フレームのサンプル(たとえば、クロミナンス赤サンプルもしくはピクセル)を出力することができる。
【0130】
[0146]図6Cは、4:2:0入力(Y、U、およびV)入力データと直接動作するように構成され得るフロントエンドニューラルネットワークシステムまたはアーキテクチャの別の例を示す図である。図6Cに示されたように、ニューラルネットワークシステムのエンコーダサブネットワークにおいて、分岐されたルーマチャネルおよびクロマチャネル(ルーマチャネル642およびクロマチャネル644)は、(図6Aの1×1畳み込みレイヤ606に関して上述されたのと同様に)1×1畳み込みレイヤ648を使用して結合され、次いで、pReLU非線形演算子649が適用される。他の例では、pReLU非線形演算子以外の演算子が適用され得る。(図6Aに関して上述されたのと同様に)図6Cのニューラルネットワークシステムのデコーダサブネットワークによって同様の演算が実行されるが、逆の順序である(たとえば、pReLU演算子が適用され、1×1畳み込みレイヤを使用してYチャネルおよびU、Vチャネルが分離され、それぞれ逆IGDNレイヤおよび畳み込みレイヤを使用して別々のYチャネルおよびU、Vチャネルが処理される)。
【0131】
[0147]図5に記載されたE2E-NNVCシステム(ニューラルネットワークベースのコーデック)と比較して、図6Aおよび図6Cのフロントエンドアーキテクチャの入力処理は、(エンコーダ側の)gaおよび(デコーダ側の)対応するgsにおける最初の2つのネットワークレイヤ内のYチャネルおよびUVチャネルの別個の処理によって修正される。Y成分を処理するために使用される、Nconv|5x5|↓2と表記された最初の畳み込みレイヤ(たとえば、図6Aの畳み込みレイヤ610および図6Cの畳み込みレイヤ646)は、図5の最初の畳み込みレイヤ510と同じかまたは同様であり得る。同様に、復元ルミナンス(Y)成分を生成するために使用される、図6Aおよび図6Cのデコーダサブネットワークの(1conv|5x5|↑2と表記された)2番目の畳み込みレイヤは、図5のシステム内のデコーダサブネットワークgsの最後の畳み込みレイヤと同じかまたは同様であり得る。図5のシステムとは異なり、UおよびVクロマチャネルは、その後に特定のGDNレイヤ(ルミナンスY用の1つのGDNレイヤならびにクロミナンスUおよびV用の1つのGDNレイヤ)が続く、図6AのNconv|5x5|↓2畳み込みレイヤ610または図6CのNconv|5x5|↓2畳み込みレイヤ646のYカーネルの半分のサイズを有する(1に等しいストライドに対応するダウンサンプリングがない)カーネルを有する、Nconv|3x3|↓1と表記された別個の畳み込みレイヤ(たとえば、図6Aの畳み込みレイヤ611または図6Cの畳み込みレイヤ647などの別個のCNN)を使用して、図6Aおよび図6Cのアーキテクチャによって処理される。
【0132】
[0148]図6Aおよび図6Cの畳み込みレイヤ(CNNの第1のペアNconv|5x5|↓2レイヤおよびNconv|3x3|↓1レイヤ)ならびにGDNレイヤの後に、ルミナンス(Y)チャネルならびにクロミナンス(UおよびV)チャネル(たとえば、入力チャネルの変換バージョンまたはフィルタリングバージョン)の表現および特徴は、同じ次元を有し、次いで、図6Aの1×畳み込みレイヤ606または図6Cの1×畳み込みレイヤ648を使用して結合される。たとえば、ルミナンス(Y)チャネルは、YUV4:2:0フォーマットにおいて、各次元でクロミナンス(UおよびV)チャネルの2倍のサイズである。クロミナンス(UおよびV)チャネルが2によってサブサンプリングされると、それらのチャネルを処理することに基づいて生成された出力は、(ルミナンスチャネルはサブサンプリングされないので)ルミナンスチャネルのconv2d出力と同じ次元になる。チャネルの別個の正規化は、ルミナンスチャネルとクロミナンスチャネルのばらつきにおける違いに対処する。上述されたように、次いで、量子化ステップに到達するまで3つ以上の畳み込みレイヤを使用する前に(たとえば、GDN608またはpReLU649を使用して)非線形演算子が適用される。
【0133】
[0149]図6Aおよび図6Cのアーキテクチャのデコーダサブネットワークでは、復元ルミナンス(Y)成分と復元クロミナンス(UおよびV)成分とを別々に生成するために、別個のIGDNレイヤおよび畳み込みレイヤが使用される。たとえば、復元クロミナンス(UおよびV)成分625を生成するために使用される図6Aの畳み込みレイヤ618(デコーダサブネットワークの2conv|3x3|↑1レイヤ)は、復元ルミナンス(Y)成分624を生成するために使用される畳み込みレイヤ617(デコーダサブネットワークの1conv|5x5|↑2レイヤ)内で使用されるカーネルの約半分のサイズである(1に等しいストライドに対応するアップサンプリングがない)カーネルサイズを有する。
【0134】
[0150]図6Dは、4:2:0入力(Y、U、およびV)入力データと直接動作するように構成され得るフロントエンドニューラルネットワークアーキテクチャの別の例を示す図である。図6Dに示されたように、エンコーダ側において、分岐されたルーマチャネルおよびクロマチャネルは、1×1畳み込みレイヤを使用して結合され、次いで、pReLU非線形演算子が適用される。図6Aおよび図6Cに示されたアーキテクチャと比較して、ルーマ分岐およびクロマ分岐におけるGDNレイヤは、pReLU演算子と置き換えられている。
【0135】
[0151]図6Eは、4:2:0入力(Y、U、およびV)入力データと直接動作するように構成され得るフロントエンドニューラルネットワークアーキテクチャの別の例を示す図である。図6Eに示されたように、エンコーダ側において、分岐されたルーマチャネルおよびクロマチャネルは、1×1畳み込みレイヤを使用して結合され、次いで、pReLU非線形演算子が適用される。図6A図6C、および図6Dに示されたアーキテクチャと比較して、図6EのアーキテクチャのすべてのGDNレイヤは、pReLU演算子と置き換えられている
[0152]図6Fは、4:2:0入力(Y、U、およびV)入力データと直接動作するように構成され得るフロントエンドニューラルネットワークアーキテクチャの別の例を示す図である。図6Fに示されたように、エンコーダ側において、分岐されたルーマチャネルおよびクロマチャネルは、1×1畳み込みレイヤを使用して結合される。図6A図6Eに示されたアーキテクチャと比較して、すべてのGDNレイヤは完全に取り除かれ、畳み込みレイヤ間で非線形活性化演算子は使用されない。
【0136】
[0153]図6C図6Fに示されたニューラルネットワークアーキテクチャ設計は、(たとえば、図6Cのアーキテクチャに示されたように)GDNレイヤを減らすか、または(たとえば、図6Eおよび図6Fのアーキテクチャに示されたように)GDNレイヤを完全に取り除くために使用され得る。
【0137】
[0154]いくつかの例では、本明細書に記載されたシステムおよび技法は、畳み込み(たとえば、CNN)を使用する他のエンコーダ-デコーダサブネットワーク、およびニューラルネットワークベースのコーディングシステムの入力における正規化段階の結合に使用され得る。
【0138】
[0155]図7は、本明細書に記載された機械学習技法のうちの1つまたは複数を使用してビデオを処理するプロセス700の一例を示すフローチャートである。ブロック702において、プロセス700は、ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値を生成することを含む。
【0139】
[0156]ブロック704において、プロセス700は、エンコーダサブネットワークの第2の畳み込みレイヤにより、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成することを含む。ブロック706において、プロセス700は、第3の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値およびフレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値に基づいて、フレームの結合表現を生成することを含む。場合によっては、第3の畳み込みレイヤは、1つまたは複数の1×1畳み込みフィルタを含む1×1畳み込みレイヤ(たとえば、図6A図6Fのエンコーダサブネットワークの1×1畳み込みレイヤ)を含む。ブロック708において、プロセス700は、フレームの結合表現に基づいて符号化ビデオデータを生成することを含む。
【0140】
[0157]いくつかの例では、プロセス700は、エンコーダサブネットワークの第1の非線形レイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値を処理することを含む。プロセス700は、エンコーダサブネットワークの第2の非線形レイヤを使用して、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を処理することを含むことができる。そのような例では、結合表現は、第1の非線形レイヤの出力および第2の非線形レイヤの出力に基づいて生成される。場合によっては、フレームの結合表現は、入力として第1の非線形レイヤの出力と第2の非線形レイヤの出力とを使用して、第3の畳み込みレイヤ(たとえば、図6A図6Fのエンコーダサブネットワークの1×1畳み込みレイヤ)によって生成される。
【0141】
[0158]いくつかの例では、プロセス700は、(たとえば、量子化エンジン620を使用して)符号化ビデオデータを量子化することを含む。いくつかの例では、プロセス700は、(たとえば、エントロピー符号化エンジン621を使用して)符号化ビデオデータをエントロピーコーディングすることを含む。いくつかの例では、プロセス700は、符号化ビデオデータをメモリに記憶することを含む。いくつかの例では、プロセス700は、少なくとも1つのデバイスに伝送媒体を介して符号化ビデオデータを送信することを含む。
【0142】
[0159]いくつかの例では、プロセス700は、符号化フレームを取得することを含む。プロセス700は、ニューラルネットワークシステムのデコーダサブネットワークの第1の畳み込みレイヤにより、符号化フレームのルミナンスチャネルに関連付けられた復元出力値を生成することを含むことができる。プロセス700は、デコーダサブネットワークの第2の畳み込みレイヤにより、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成することをさらに含むことができる。いくつかの例では、プロセス700は、デコーダサブネットワークの第3の畳み込みレイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルから符号化フレームのルミナンスチャネルを分離することを含む。場合によっては、デコーダサブネットワークの第3の畳み込みレイヤは、1つまたは複数の1×1畳み込みフィルタを含む1×1畳み込みレイヤ(たとえば、図6A図6Fのデコーダサブネットワークの1×1畳み込みレイヤ)を含む。
【0143】
[0160]いくつかの例では、フレームはビデオフレームを含む。いくつかの例では、少なくとも1つのクロミナンスチャネルは、クロミナンス青チャネルとクロミナンス赤チャネルとを含む。いくつかの例では、フレームはルミナンス-クロミナンス(YUV)フォーマットを有する。
【0144】
[0161]図8は、本明細書に記載された機械学習技法のうちの1つまたは複数を使用してビデオを処理するプロセス800の一例を示すフローチャートである。ブロック802において、プロセス800は、符号化フレームを取得することを含む。ブロック804において、プロセス800は、デコーダサブネットワークの第1の畳み込みレイヤにより、符号化フレームの少なくとも1つのクロミナンスチャネルから符号化フレームのルミナンスチャネルを分離することを含む。場合によっては、デコーダサブネットワークの第1の畳み込みレイヤは、1つまたは複数の1×1畳み込みフィルタを含む1×1畳み込みレイヤ(たとえば、図6A図6Fのデコーダサブネットワークの1×1畳み込みレイヤ)を含む。ブロック806において、プロセス800は、ニューラルネットワークシステムのデコーダサブネットワークの第2の畳み込みレイヤにより、符号化フレームのルミナンスチャネルに関連付けられた復元出力値を生成することを含む。ブロック808において、プロセス800は、デコーダサブネットワークの第3の畳み込みレイヤにより、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成することを含む。ブロック810において、プロセス800は、ルミナンスチャネルに関連付けられた復元出力値と少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値とを含む出力フレームを生成することを含む。
【0145】
[0162]いくつかの例では、プロセス800は、デコーダサブネットワークの第1の非線形レイヤを使用して、符号化フレームのルミナンスチャネルに関連付けられた値を処理することを含む。ルミナンスチャネルに関連付けられた復元出力値は、第1の非線形レイヤの出力に基づいて生成される。プロセス800は、デコーダサブネットワークの第2の非線形レイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた値を処理することを含むことができる。少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値は、第2の非線形レイヤの出力に基づいて生成される。
【0146】
[0163]いくつかの例では、プロセス800は、(たとえば、逆量子化エンジン623によって)符号化フレームのサンプルを逆量子化することを含む。いくつかの例では、プロセス800は、(たとえば、エントロピー復号エンジン622によって)符号化フレームのサンプルをエントロピー復号することを含む。いくつかの例では、プロセス800は、出力フレームをメモリに記憶することを含む。いくつかの例では、プロセス800は、出力フレームを表示することを含む。
【0147】
[0164]いくつかの例では、プロセス800は、ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値を生成することを含む。プロセス800は、エンコーダサブネットワークの第2の畳み込みレイヤにより、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成することを含むことができる。プロセス800は、エンコーダサブネットワークの第3の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値およびフレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値に基づいて、フレームの結合表現を生成することをさらに含むことができる。プロセス800は、フレームの結合表現に基づいて符号化フレームを生成することを含むことができる。場合によっては、エンコーダサブネットワークの第3の畳み込みレイヤは、1つまたは複数の1×1畳み込みフィルタを含む1×1畳み込みレイヤ(たとえば、図6A図6Fのエンコーダサブネットワークの1×1畳み込みレイヤ)を含む。
【0148】
[0165]いくつかの例では、プロセス800は、エンコーダサブネットワークの第1の非線形レイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値を処理することと、エンコーダサブネットワークの第2の非線形レイヤを使用して、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を処理することとを含む。そのような例では、結合表現は、第1の非線形レイヤの出力および第2の非線形レイヤの出力に基づいて生成される。いくつかの例では、フレームの結合表現は、入力として第1の非線形レイヤの出力と第2の非線形レイヤの出力とを使用して、エンコーダサブネットワークの第3の畳み込みレイヤによって生成される。
【0149】
[0166]いくつかの例では、符号化フレームは符号化ビデオフレームを含む。いくつかの例では、少なくとも1つのクロミナンスチャネルは、クロミナンス青チャネルとクロミナンス赤チャネルとを含む。いくつかの例では、符号化フレームはルミナンス-クロミナンス(YUV)フォーマットを有する。
【0150】
[0167]いくつかの例では、本明細書に記載されたプロセス(たとえば、プロセス700、プロセス800、および/または本明細書に記載された他のプロセス)は、図9に示されたコンピューティングデバイスアーキテクチャ900を有するコンピューティングデバイスなどの、コンピューティングデバイスまたは装置によって実行される場合がある。一例では、プロセス700および/またはプロセス800は、図6A図6Fに示されたニューラルネットワークアーキテクチャのうちの1つを実装するコンピューティングデバイスアーキテクチャ900を有するコンピューティングデバイスによって実行され得る。いくつかの例では、コンピューティングデバイスは、モバイルデバイス(たとえば、携帯電話、タブレットコンピューティングデバイスなど)、ウェアラブルデバイス、エクステンデッドリアリティデバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、もしくは複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、ビデオサーバ、テレビジョン、車両(もしくは車両のコンピューティングデバイス)、ロボティックデバイス、ならびに/または、プロセス700および/もしくはプロセス800を含む、本明細書に記載されたプロセスを実行するリソース能力を有する任意の他のコンピューティングデバイスを含むことができる。
【0151】
[0168]場合によっては、コンピューティングデバイスまたは装置は、1つもしくは複数の入力デバイス、1つもしくは複数の出力デバイス、1つもしくは複数のプロセッサ、1つもしくは複数のマイクロプロセッサ、1つもしくは複数のマイクロコンピュータ、1つもしくは複数の送信機、受信機、もしくは(たとえば、トランシーバと呼ばれる)組み合わされた送信機-受信機、1つもしくは複数のカメラ、1つもしくは複数のセンサ、および/または本明細書に記載されたプロセスのステップを実行するように構成された他の構成要素などの様々な構成要素を含む場合がある。いくつかの例では、コンピューティングデバイスは、ディスプレイ、データを通信および/もしくは受信するように構成されたネットワークインターフェース、それらの任意の組合せ、ならびに/または他の構成要素を含む場合がある。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータまたは他のタイプのデータを通信および/または受信するように構成される場合がある。
【0152】
[0169]コンピューティングデバイスの構成要素は、回路内に実装され得る。たとえば、構成要素は、本明細書に記載された様々な動作を実行するために、1つまたは複数のプログラマブル電子回路(たとえば、マイクロプロセッサ、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、中央処理装置(CPU)、ニューラル処理装置(NPU)、および/または他の適切な電子回路)を含むことができる、電子回路もしくは他の電子ハードウェアを含むことができ、および/またはそれらを使用して実装され得、ならびに/あるいは、コンピュータソフトウェア、ファームウェア、もしくはそれらの任意の組合せを含むことができ、および/またはそれらを使用して実装され得る。
【0153】
[0170]プロセス700および800は論理流れ図として示され、それらの動作は、ハードウェア、コンピュータ命令、またはそれらの組合せにおいて実施され得る動作のシーケンスを表す。コンピュータ命令のコンテキストでは、動作は、1つまたは複数のプロセッサによって実行されたとき、列挙された動作を実行する、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実行するか、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が記載される順序は限定として解釈されるものではなく、任意の数の記載された動作は、プロセスを実装するために任意の順序で、および/または並行して組み合わされ得る。
【0154】
[0171]さらに、(プロセス700、プロセス800、および/または本明細書に記載された他のプロセスを含む)本明細書に記載されたプロセスは、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行される場合があり、1つまたは複数のプロセッサ上で、ハードウェアによって、またはそれらの組合せで一括して実行するコード(たとえば、実行可能命令、1つもしくは複数のコンピュータプログラム、または1つもしくは複数のアプリケーション)として実装される場合がある。上述されたように、コードは、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読記憶媒体または機械可読記憶媒体に記憶される場合がある。コンピュータ可読記憶媒体または機械可読記憶媒体は、非一時的であり得る。
【0155】
[0172]図9は、本明細書に記載された様々な技法を実装することができる例示的なコンピューティングデバイスの例示的なコンピューティングデバイスアーキテクチャ900を示す。いくつかの例では、コンピューティングデバイスは、モバイルデバイス、ウェアラブルデバイス、エクステンデッドリアリティデバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、もしくは複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、ビデオサーバ、車両(もしくは車両のコンピューティングデバイス)、または他のデバイスを含むことができる。たとえば、コンピューティングデバイスアーキテクチャ900は、図6のシステムを実装することができる。コンピューティングデバイスアーキテクチャ900の構成要素は、バスなどの接続905を使用して互いに電気通信しているように図示されている。例示的なコンピューティングデバイスアーキテクチャ900は、処理ユニット(CPUまたはプロセッサ)910と、読取り専用メモリ(ROM)920およびランダムアクセスメモリ(RAM)925などのコンピューティングデバイスメモリ915を含む様々なコンピューティングデバイス構成要素をプロセッサ910に結合するコンピューティングデバイス接続905とを含む。
【0156】
[0173]コンピューティングデバイスアーキテクチャ900は、プロセッサ910と直接接続された、プロセッサ910に極めて近接した、またはプロセッサ910の一部として統合された高速メモリのキャッシュを含むことができる。コンピューティングデバイスアーキテクチャ900は、プロセッサ910による迅速なアクセスのために、メモリ915および/またはストレージデバイス930からキャッシュ912にデータをコピーすることができる。このようにして、キャッシュは、データを待つ間のプロセッサ910の遅延を回避する性能の向上を提供することができる。これらおよび他のモジュールは、様々なアクションを実行するためにプロセッサ910を制御することができるか、またはプロセッサ910を制御するように構成され得る。他のコンピューティングデバイスメモリ915も、使用のために利用可能であり得る。メモリ915は、異なる性能特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ910は、任意の汎用プロセッサ、プロセッサ910を制御するように構成された、ストレージデバイス930に記憶されたサービス1 932、サービス2 934、およびサービス3 936などのハードウェアまたはソフトウェアサービス、ならびにソフトウェア命令がプロセッサ設計に組み込まれる専用プロセッサを含むことができる。プロセッサ910は、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含んでいる自給式システムであり得る。マルチコアプロセッサは、対称であっても、非対称であってもよい。
【0157】
[0174]コンピューティングデバイスアーキテクチャ900とのユーザ対話を可能にするために、入力デバイス945は、音声用のマイクロフォン、ジェスチャまたはグラフィカル入力用のタッチ式スクリーン、キーボード、マウス、動き入力、音声などの、任意の数の入力機構を表すことができる。出力デバイス935も、ディスプレイ、プロジェクタ、テレビジョン、スピーカデバイスなどの、当業者に知られたいくつかの出力機構のうちの1つまたは複数であり得る。いくつかの事例では、マルチモーダルコンピューティングデバイスは、ユーザがコンピューティングデバイスアーキテクチャ900と通信するために複数のタイプの入力を提供することを可能にすることができる。通信インターフェース940は、概して、ユーザ入力とコンピューティングデバイス出力とを統制および管理することができる。任意の特定のハードウェア構成上で動作することに対する制限はなく、したがって、本明細書での基本的な特徴は、改善されたハードウェア構成またはファームウェア構成が開発されるにつれて、それらで容易に代用されてもよい。
【0158】
[0175]ストレージデバイス930は不揮発性メモリであり、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)925、読取り専用メモリ(ROM)920、およびそれらのハイブリッドなどの、コンピュータによってアクセス可能なデータを記憶することができる、ハードディスクまたは他のタイプのコンピュータ可読媒体であり得る。ストレージデバイス930は、プロセッサ910を制御するためのサービス932、934、936を含むことができる。他のハードウェアモジュールまたはソフトウェアモジュールが考えられる。ストレージデバイス930は、コンピューティングデバイス接続905に接続され得る。一態様では、特定の機能を実行するハードウェアモジュールは、その機能を実行するために、プロセッサ910、接続905、出力デバイス935などの必要なハードウェア構成要素とともに、コンピュータ可読媒体に記憶されたソフトウェア構成要素を含むことができる。
【0159】
[0176]本開示の態様は、1つまたは複数のアクティブ深度検知システムを含むか、またはそれに結合された(セキュリティシステム、スマートフォン、タブレット、ラップトップコンピュータ、車両、ドローン、または他のデバイスなどの)任意の適切な電子デバイスに適用可能である。1つの光プロジェクタを有するか、またはそれに結合されたデバイスに関して以下に記載されるが、本開示の態様は、任意の数の光プロジェクタを有するデバイスに適用可能であり、したがって、特定のデバイスに限定されない。
【0160】
[0177]「デバイス」という用語は、(1つのスマートフォン、1つのコントローラ、1つの処理システムなどの)1つまたは特定の数の物理オブジェクトに限定されない。本明細書で使用されるデバイスは、本開示の少なくともいくつかの部分を実装することができる1つまたは複数の部分を有する任意の電子デバイスであり得る。以下の説明および例は、本開示の様々な態様を記載するために「デバイス」という用語を使用するが、「デバイス」という用語は、特定の構成、タイプ、またはオブジェクトの数に限定されない。さらに、「システム」という用語は、複数の構成要素または特定の実施形態に限定されない。たとえば、システムは、1つまたは複数のプリント回路基板または他の基板上に実装される場合があり、可動または静的な構成要素を有する場合がある。以下の説明および例は、本開示の様々な態様を記載するために「システム」という用語を使用するが、「システム」という用語は、特定の構成、タイプ、またはオブジェクトの数に限定されない。
【0161】
[0178]本明細書で提供される実施形態および例の完全な理解を提供するために、上記の説明で具体的な詳細が提供されている。しかしながら、実施形態はこれらの具体的な詳細なしに実践され得ることが当業者によって理解されよう。説明を明確にするために、いくつかの事例では、本技術は、デバイス、デバイス構成要素、ソフトウェアで具現された方法におけるステップもしくはルーチン、またはハードウェアとソフトウェアの組合せを備える機能ブロックを含む、個々の機能ブロックを含むものとして提示される場合がある。図に示された、および/または本明細書に記載された構成要素以外のさらなる構成要素が使用されてもよい。たとえば、回路、システム、ネットワーク、プロセス、および他の構成要素は、不要な詳細で実施形態を不明瞭にしないためにブロック図の形態で構成要素として示される場合がある。他の事例では、実施形態を不明瞭にすることを回避するために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は、不要な詳細なしに示される場合がある。
【0162】
[0179]個々の実施形態は、フローチャート、流れ図、データフロー図、構造図、またはブロック図として描写されたプロセスまたは方法として上述されている場合がある。フローチャートは動作を逐次プロセスとして記載する場合があるが、動作の多くは並行してまたは同時に実行され得る。加えて、動作の順序は並べ替えられてもよい。プロセスの動作が完了したときにプロセスは終了するが、図に含まれない追加のステップを有する可能性がある。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。プロセスが関数に対応するとき、その終了は、呼出し関数またはメイン関数への関数のリターンに対応することができる。
【0163】
[0180]上述された例によるプロセスおよび方法は、記憶されるかまたはさもなければコンピュータ可読媒体から利用可能であるコンピュータ実行可能命令を使用して実装され得る。そのような命令は、たとえば、汎用コンピュータ、専用コンピュータ、または処理デバイスにある機能または機能のグループを実行させるか、またはさもなければそれらを実行するように構成する、命令とデータとを含むことができる。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、たとえば、バイナリ、アセンブリ言語などの中間フォーマット命令、ファームウェア、ソースコードなどであり得る。
【0164】
[0181]「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブルのストレージデバイス、光ストレージデバイス、ならびに命令および/またはデータを記憶、含有、または搬送することが可能な様々な他の媒体を含む。コンピュータ可読媒体は、データがそこに記憶され得、ワイヤレスに、または有線接続を介して伝搬する搬送波および/または一時的電子信号を含まない非一時的媒体を含む場合がある。非一時的媒体の例には、限定はしないが、とりわけ、磁気ディスクまたは磁気テープ、フラッシュメモリなどの光記憶媒体、メモリまたはメモリデバイス、磁気ディスクまたは光学ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク接続されたストレージデバイス、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)、それらの任意の適切な組合せが含まれ得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表すことができるコードおよび/または機械実行可能命令をその上に記憶している場合がある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリコンテンツをパスおよび/または受信することにより、別のコードセグメントまたはハードウェア回路に結合される場合がある。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介してパス、転送、または送信される場合がある。
【0165】
[0182]いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含んでいるケーブルまたはワイヤレス信号を含むことができる。しかしながら、述べられるとき、非一時的コンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、および信号自体などの媒体を明確に除外する。
【0166】
[0183]これらの開示によるプロセスおよび方法を実装するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せを含むことができ、様々なフォームファクタのいずれかをとることができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードに実装されると、必要なタスクを実行するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読媒体または機械可読媒体に記憶される場合がある。プロセッサが必要なタスクを実行することができる。フォームファクタの典型的な例には、ラップトップ、スマートフォン、携帯電話、タブレットデバイス、または他のスモールフォームファクタパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどが含まれる。本明細書に記載された機能はまた、周辺機器またはアドインカード内で具現化され得る。そのような機能はまた、さらなる例として、単一のデバイス内で実行する異なるチップまたは異なるプロセスの間の回路基板上に実装され得る。
【0167】
[0184]命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、本開示に記載された機能を提供するための例示的な手段である。
【0168】
[0185]上記の説明では、本出願の態様がその特定の実施形態を参照して記載されているが、本出願はそれに限定されないことを当業者は認識されよう。したがって、本出願の例示的な実施形態が本明細書で詳細に記載されているが、従来技術によって限定される場合を除き、本発明の概念は、場合によっては様々に具現化および採用される場合があり、添付の特許請求の範囲は、そのような変形形態を含むように解釈されるものであることを理解されたい。上述された適用例の様々な特徴および態様は、個々にまたは一緒に使用されてもよい。さらに、実施形態は、本明細書のより広い趣旨および範囲から逸脱することなく、本明細書に記載されたもの以外に、任意の数の環境および適用例において利用され得る。したがって、本明細書および図面は、限定的ではなく例示的と見なされるべきである。説明の目的で、方法は特定の順序で記載された。代替の実施形態では、方法は、記載された順序とは異なる順序で実行されてもよいことを諒解されたい。
【0169】
[0186]本明細書で使用される、より小さい(「<」)およびより大きい(「>」)というシンボルまたは用語は、本明細書の範囲から逸脱することなく、それぞれ、より小さいかまたはそれに等しい(「≦」)およびより大きいかまたはそれに等しい(「≧」)というシンボルと置き換えられ得ることを当業者は諒解されよう。
【0170】
[0187]構成要素が特定の動作を実行する「ように構成される」ものとして記載される場合、そのような構成は、たとえば、その動作を実行するように電子回路もしくは他のハードウェアを設計することにより、その動作を実行するようにプログラム可能な電子回路(たとえば、マイクロプロセッサ、もしくは他の適切な電子回路)をプログラムすることにより、またはそれらの任意の組合せで達成され得る。
【0171】
[0188]「に結合された」という句は、直接的または間接的のいずれかで別の構成要素に物理的に接続された任意の構成要素、ならびに/あるいは直接的または間接的のいずれかで別の構成要素と通信している(たとえば、有線もしくはワイヤレス接続、および/または他の適切な通信インターフェースを介して他の構成要素に接続された)任意の構成要素を指す。
【0172】
[0189]セット「のうちの少なくとも1つ」、および/またはセットのうちの「1つもしくは複数」を列挙するクレームの文言または他の文言は、(任意の組合せの)セットのうちの1つのメンバーまたはセットのうちの複数のメンバーがクレームを満たすことを示す。たとえば、「AおよびBのうちの少なくとも1つ」または「AもしくはBのうちの少なくとも1つ」を列挙するクレームの文言は、A、B、またはAおよびBを意味する。別の例では、「A、B、およびCのうちの少なくとも1つ」または「A、B、もしくはCのうちの少なくとも1つ」を列挙するクレームの文言は、A、B、C、またはAおよびB、またはAおよびC、またはBおよびC、またはAおよびBおよびCを意味する。セットの「うちの少なくとも1つ」および/またはセットのうちの「1つもしくは複数」という文言は、セット内に列挙された項目にそのセットを限定しない。たとえば、「AおよびBのうちの少なくとも1つ」または「AもしくはBのうちの少なくとも1つ」を列挙するクレームの文言は、A、B、またはAおよびBを意味することができ、さらに、AおよびBのセット内に列挙されていない項目を含むことができる。
【0173】
[0190]本明細書に開示された実施形態に関して記載された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装される場合がある。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能に関して上述されている。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、記載された機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本出願の範囲からの逸脱を生じるものと解釈されるべきではない。
【0174】
[0191]本明細書に記載された技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せで実装される場合がある。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイス内のアプリケーションを含む複数の用途を有する集積回路デバイスなどの様々なデバイスのいずれかに実装される場合がある。モジュールまたは構成要素として記載された任意の特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別個に実装される場合がある。ソフトウェアに実装された場合、技法は、実行されると、上述された方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって少なくとも部分的に実現される場合がある。コンピュータ可読データ記憶媒体は、パッケージング材料を含む場合があるコンピュータプログラム製品の一部を形成することができる。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、FLASH(登録商標)メモリ、磁気または光学データ記憶媒体などのメモリまたはデータ記憶媒体を備えることができる。技法は、追加または代替として、伝搬信号または電波などの、命令またはデータ構造の形式でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって少なくとも部分的に実現される場合がある。
【0175】
[0192]プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサを含む場合があるプロセッサによって実行される場合がある。そのようなプロセッサは、本開示に記載された技法のうちのいずれかを実行するように構成される場合がある。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装される場合がある。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書に記載された技法の実装に適切な任意の他の構造もしくは装置のいずれかを指すことができる。
【0176】
[0193]本開示の例示的な例は、以下を含む。
【0177】
[0194]態様1:ビデオデータを処理する方法であって、ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値を生成することと、エンコーダサブネットワークの第2の畳み込みレイヤにより、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成することと、第3の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値およびフレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値に基づいて、フレームの結合表現を生成することと、フレームの結合表現に基づいて符号化ビデオデータを生成することとを備える、方法。
【0178】
[0195]態様2:第3の畳み込みレイヤが1×1畳み込みレイヤを含み、1×1畳み込みレイヤが1つまたは複数の1×1畳み込みフィルタを含む、態様1に記載の方法。
【0179】
[0196]態様3:エンコーダサブネットワークの第1の非線形レイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値を処理することと、エンコーダサブネットワークの第2の非線形レイヤを使用して、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を処理することとをさらに備え、結合表現が、第1の非線形レイヤの出力および第2の非線形レイヤの出力に基づいて生成される、態様1または2のいずれか1つに記載の方法。
【0180】
[0197]態様4:フレームの結合表現が、入力として第1の非線形レイヤの出力と第2の非線形レイヤの出力とを使用して、第3の畳み込みレイヤによって生成される、態様3に記載の方法。
【0181】
[0198]態様5:符号化ビデオデータを量子化することをさらに備える、態様1から4のいずれか1つに記載の方法。
【0182】
[0199]態様6:符号化ビデオデータをエントロピーコーディングすることをさらに備える、態様1から5のいずれか1つに記載の方法。
【0183】
[0200]態様7:符号化ビデオデータをメモリに記憶することをさらに備える、態様1から6のいずれか1つに記載の方法。
【0184】
[0201]態様8:少なくとも1つのデバイスに伝送媒体を介して符号化ビデオデータを送信することをさらに備える、態様1から7のいずれか1つに記載の方法。
【0185】
[0202]態様9:符号化フレームを取得することと、ニューラルネットワークシステムのデコーダサブネットワークの第1の畳み込みレイヤにより、符号化フレームのルミナンスチャネルに関連付けられた復元出力値を生成することと、デコーダサブネットワークの第2の畳み込みレイヤにより、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成することとをさらに備える、態様1から8のいずれか1つに記載の方法。
【0186】
[0203]態様10:デコーダサブネットワークの第3の畳み込みレイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルから符号化フレームのルミナンスチャネルを分離することをさらに備える、態様9に記載の方法。
【0187】
[0204]態様11:デコーダサブネットワークの第3の畳み込みレイヤが1×1畳み込みレイヤを含み、1×1畳み込みレイヤが1つまたは複数の1×1畳み込みフィルタを含む、態様10に記載の方法。
【0188】
[0205]態様12:フレームがビデオフレームを含む、態様1から11のいずれか1つに記載の方法。
【0189】
[0206]態様13:少なくとも1つのクロミナンスチャネルが、クロミナンス青チャネルとクロミナンス赤チャネルとを含む、態様1から12のいずれか1つに記載の方法。
【0190】
[0207]態様14:フレームがルミナンス-クロミナンス(YUV)フォーマットを有する、態様1から13のいずれか1つに記載の方法。
【0191】
[0208]態様15:ビデオデータを処理するための装置。装置は、メモリと、メモリに結合され、ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値を生成し、エンコーダサブネットワークの第2の畳み込みレイヤを使用して、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成し、第3の畳み込みレイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値およびフレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値に基づいて、フレームの結合表現を生成し、フレームの結合表現に基づいて符号化ビデオデータを生成するように構成されたプロセッサとを備える。
【0192】
[0209]態様16:第3の畳み込みレイヤが1×1畳み込みレイヤを含み、1×1畳み込みレイヤが1つまたは複数の1×1畳み込みフィルタを含む、態様15に記載の装置。
【0193】
[0210]態様17:プロセッサが、エンコーダサブネットワークの第1の非線形レイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値を処理し、エンコーダサブネットワークの第2の非線形レイヤを使用して、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を処理するように構成され、結合表現が、第1の非線形レイヤの出力および第2の非線形レイヤの出力に基づいて生成される、態様15または16のいずれか1つに記載の装置。
【0194】
[0211]態様18:フレームの結合表現が、入力として第1の非線形レイヤの出力と第2の非線形レイヤの出力とを使用して、第3の畳み込みレイヤによって生成される、態様17に記載の装置。
【0195】
[0212]態様19:プロセッサが、符号化ビデオデータを量子化するように構成される、態様15から18のいずれか1つに記載の装置。
【0196】
[0213]態様20:プロセッサが、符号化ビデオデータをエントロピーコーディングするように構成される、態様15から19のいずれか1つに記載の装置。
【0197】
[0214]態様21:プロセッサが、符号化ビデオデータをメモリに記憶するように構成される、態様15から20のいずれか1つに記載の装置。
【0198】
[0215]態様22:プロセッサが、少なくとも1つのデバイスに伝送媒体を介して符号化ビデオデータを送信するように構成される、態様15から21のいずれか1つに記載の装置。
【0199】
[0216]態様23:プロセッサが、符号化フレームを取得し、ニューラルネットワークシステムのデコーダサブネットワークの第1の畳み込みレイヤを使用して、符号化フレームのルミナンスチャネルに関連付けられた復元出力値を生成し、デコーダサブネットワークの第2の畳み込みレイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成するように構成される、態様15から22のいずれか1つに記載の装置。
【0200】
[0217]態様24:プロセッサが、
デコーダサブネットワークの第3の畳み込みレイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルから符号化フレームのルミナンスチャネルを分離する
ように構成される、態様23に記載の装置。
【0201】
[0218]態様25:デコーダサブネットワークの第3の畳み込みレイヤが1×1畳み込みレイヤを含み、1×1畳み込みレイヤが1つまたは複数の1×1畳み込みフィルタを含む、態様24に記載の装置。
【0202】
[0219]態様26:フレームがビデオフレームを含む、態様15から25のいずれか1つに記載の装置。
【0203】
[0220]態様27:少なくとも1つのクロミナンスチャネルが、クロミナンス青チャネルとクロミナンス赤チャネルとを含む、態様15から26のいずれか1つに記載の装置。
【0204】
[0221]態様28:フレームがルミナンス-クロミナンス(YUV)フォーマットを有する、態様15から27のいずれか1つに記載の装置。
【0205】
[0222]態様29:プロセッサがニューラル処理装置(NPU)を含む、態様15から28のいずれか1つに記載の装置。
【0206】
[0223]態様30:装置がモバイルデバイスを備える、態様15から29のいずれか1つに記載の装置。
【0207】
[0224]態様31:装置がエクステンデッドリアリティデバイスを備える、態様15から30のいずれか1つに記載の装置。
【0208】
[0225]態様32:ディスプレイをさらに備える、態様15から31のいずれか1つに記載の装置。
【0209】
[0226]態様33:装置がテレビジョンを備える、態様15から29のいずれか1つに記載の装置。
【0210】
[0227]態様34:装置が、1つまたは複数のビデオフレームをキャプチャするように構成されたカメラを備える、態様15から33のいずれか1つに記載の装置。
【0211】
[0228]態様35:実行されると、1つまたは複数のプロセッサに、態様1から14に記載の動作のいずれかを実行させる命令を記憶する、コンピュータ可読記憶媒体。
【0212】
[0229]態様36:態様1から14に記載の動作のいずれかを実行するための手段を備える、装置。
【0213】
[0230]態様37:ビデオデータを処理する方法であって、符号化フレームを取得することと、デコーダサブネットワークの第1の畳み込みレイヤにより、符号化フレームの少なくとも1つのクロミナンスチャネルから符号化フレームのルミナンスチャネルを分離することと、ニューラルネットワークシステムのデコーダサブネットワークの第2の畳み込みレイヤにより、符号化フレームのルミナンスチャネルに関連付けられた復元出力値を生成することと、デコーダサブネットワークの第3の畳み込みレイヤにより、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成することと、
ルミナンスチャネルに関連付けられた復元出力値と少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値とを含む出力フレームを生成することとを備える、方法。
【0214】
[0231]態様38:デコーダサブネットワークの第1の畳み込みレイヤが1×1畳み込みレイヤを含み、1×1畳み込みレイヤが1つまたは複数の1×1畳み込みフィルタを含む、態様37に記載の方法。
【0215】
[0232]態様39:デコーダサブネットワークの第1の非線形レイヤを使用して、符号化フレームのルミナンスチャネルに関連付けられた値を処理することと、ここにおいて、ルミナンスチャネルに関連付けられた復元出力値が第1の非線形レイヤの出力に基づいて生成される、デコーダサブネットワークの第2の非線形レイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた値を処理することと、ここにおいて、少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値が第2の非線形レイヤの出力に基づいて生成される、をさらに備える、態様37または38のいずれか1つに記載の方法。
【0216】
[0233]態様40:符号化フレームのサンプルを逆量子化することをさらに備える、態様37から39のいずれか1つに記載の方法。
【0217】
[0234]態様41:符号化フレームのサンプルをエントロピー復号することをさらに備える、態様37から40のいずれか1つに記載の方法。
【0218】
[0235]態様42:出力フレームをメモリに記憶することをさらに備える、態様37から41のいずれか1つに記載の方法。
【0219】
[0236]態様43:出力フレームを表示することをさらに備える、態様37から42のいずれか1つに記載の方法。
【0220】
[0237]態様44:ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値を生成することと、エンコーダサブネットワークの第2の畳み込みレイヤにより、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成することと、エンコーダサブネットワークの第3の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値およびフレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値に基づいて、フレームの結合表現を生成することと、フレームの結合表現に基づいて符号化フレームを生成することとをさらに備える、態様37から43のいずれか1つに記載の方法。
【0221】
[0238]態様45:エンコーダサブネットワークの第3の畳み込みレイヤが1×1畳み込みレイヤを含み、1×1畳み込みレイヤが1つまたは複数の1×1畳み込みフィルタを含む、態様44に記載の方法。
【0222】
[0239]態様46:エンコーダサブネットワークの第1の非線形レイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値を処理することと、エンコーダサブネットワークの第2の非線形レイヤを使用して、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を処理することとをさらに備え、結合表現が、第1の非線形レイヤの出力および第2の非線形レイヤの出力に基づいて生成される、態様44または45のいずれか1つに記載の方法。
【0223】
[0240]態様47:フレームの結合表現が、入力として第1の非線形レイヤの出力と第2の非線形レイヤの出力とを使用して、エンコーダサブネットワークの第3の畳み込みレイヤによって生成される、態様46に記載の方法。
【0224】
[0241]態様48:符号化フレームが符号化ビデオフレームを含む、態様37から47のいずれか1つに記載の方法。
【0225】
[0242]態様49:少なくとも1つのクロミナンスチャネルが、クロミナンス青チャネルとクロミナンス赤チャネルとを含む、態様37から48のいずれか1つに記載の方法。
【0226】
[0243]態様50:符号化フレームがルミナンス-クロミナンス(YUV)フォーマットを有する、態様37から49のいずれか1つに記載の方法。
【0227】
[0244]態様49:ビデオデータを処理するための装置。装置は、メモリと、メモリに結合され、符号化フレームを取得し、デコーダサブネットワークの第1の畳み込みレイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルから符号化フレームのルミナンスチャネルを分離し、ニューラルネットワークシステムのデコーダサブネットワークの第2の畳み込みレイヤを使用して、符号化フレームのルミナンスチャネルに関連付けられた復元出力値を生成し、デコーダサブネットワークの第3の畳み込みレイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値を生成し、ルミナンスチャネルに関連付けられた復元出力値と少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値とを含む出力フレームを生成するように構成されたプロセッサとを備える。
【0228】
[0245]態様50:デコーダサブネットワークの第1の畳み込みレイヤが1×1畳み込みレイヤを含み、1×1畳み込みレイヤが1つまたは複数の1×1畳み込みフィルタを含む、態様49に記載の装置。
【0229】
[0246]態様51:プロセッサが、デコーダサブネットワークの第1の非線形レイヤを使用して、符号化フレームのルミナンスチャネルに関連付けられた値を処理することと、ここにおいて、ルミナンスチャネルに関連付けられた復元出力値が第1の非線形レイヤの出力に基づいて生成される、デコーダサブネットワークの第2の非線形レイヤを使用して、符号化フレームの少なくとも1つのクロミナンスチャネルに関連付けられた値を処理することと、ここにおいて、少なくとも1つのクロミナンスチャネルに関連付けられた復元出力値が第2の非線形レイヤの出力に基づいて生成される、を行うように構成される、態様49または50のいずれか1つに記載の装置。
【0230】
[0247]態様52:プロセッサが、符号化フレームのサンプルを逆量子化するように構成される、態様49から51のいずれか1つに記載の装置。
【0231】
[0248]態様53:プロセッサが、符号化フレームのサンプルをエントロピー復号するように構成される、態様49から52のいずれか1つに記載の装置。
【0232】
[0249]態様54:プロセッサが、出力フレームをメモリに記憶するように構成される、態様49から53のいずれか1つに記載の装置。
【0233】
[0250]態様55:プロセッサが、出力フレームを表示するように構成される、態様49から54のいずれか1つに記載の装置。
【0234】
[0251]態様56:プロセッサが、ニューラルネットワークシステムのエンコーダサブネットワークの第1の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値を生成し、エンコーダサブネットワークの第2の畳み込みレイヤにより、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を生成し、エンコーダサブネットワークの第3の畳み込みレイヤにより、フレームのルミナンスチャネルに関連付けられた出力値およびフレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値に基づいて、フレームの結合表現を生成し、フレームの結合表現に基づいて符号化フレームを生成するように構成される、態様49から55のいずれか1つに記載の装置。
【0235】
[0252]態様57:エンコーダサブネットワークの第3の畳み込みレイヤが1×1畳み込みレイヤを含み、1×1畳み込みレイヤが1つまたは複数の1×1畳み込みフィルタを含む、態様56に記載の装置。
【0236】
[0253]態様58:プロセッサが、エンコーダサブネットワークの第1の非線形レイヤを使用して、フレームのルミナンスチャネルに関連付けられた出力値を処理し、エンコーダサブネットワークの第2の非線形レイヤを使用して、フレームの少なくとも1つのクロミナンスチャネルに関連付けられた出力値を処理するように構成され、結合表現が、第1の非線形レイヤの出力および第2の非線形レイヤの出力に基づいて生成される、態様44または57のいずれか1つに記載の装置。
【0237】
[0254]態様59:フレームの結合表現が、入力として第1の非線形レイヤの出力と第2の非線形レイヤの出力とを使用して、エンコーダサブネットワークの第3の畳み込みレイヤによって生成される、態様58に記載の装置。
【0238】
[0255]態様60:符号化フレームが符号化ビデオフレームを含む、態様49から59のいずれか1つに記載の装置。
【0239】
[0256]態様61:少なくとも1つのクロミナンスチャネルが、クロミナンス青チャネルとクロミナンス赤チャネルとを含む、態様49から60のいずれか1つに記載の装置。
【0240】
[0257]態様62:符号化フレームがルミナンス-クロミナンス(YUV)フォーマットを有する、態様49から61のいずれか1つに記載の装置。
【0241】
[0258]態様63:プロセッサがニューラル処理装置(NPU)を含む、態様49から62のいずれか1つに記載の装置。
【0242】
[0259]態様64:装置がモバイルデバイスを備える、態様49から63のいずれか1つに記載の装置。
【0243】
[0260]態様65:装置がエクステンデッドリアリティデバイスを備える、態様49から64のいずれか1つに記載の装置。
【0244】
[0261]態様66:ディスプレイをさらに備える、態様49から65のいずれか1つに記載の装置。
【0245】
[0262]態様67:装置がテレビジョンを備える、態様49から63のいずれか1つに記載の装置。
【0246】
[0263]態様68:装置が、1つまたは複数のビデオフレームをキャプチャするように構成されたカメラを備える、態様49から67のいずれか1つに記載の装置。
【0247】
[0264]態様69:実行されると、1つまたは複数のプロセッサに、態様37から48に記載の動作のいずれかを実行させる命令を記憶する、コンピュータ可読記憶媒体。
【0248】
[0265]態様70:態様37から48に記載の動作のいずれかを実行するための手段を備える、装置。
図1
図2A
図2B
図2C
図2D
図3
図4
図5
図6A
図6B
図6C
図6D
図6E
図6F
図7
図8
図9
【国際調査報告】