(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-21
(54)【発明の名称】マシンビジョンのためのビデオ符号化のための方法および装置
(51)【国際特許分類】
H04N 19/50 20140101AFI20240313BHJP
H04N 19/42 20140101ALI20240313BHJP
【FI】
H04N19/50
H04N19/42
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023554897
(86)(22)【出願日】2022-09-28
(85)【翻訳文提出日】2023-09-07
(86)【国際出願番号】 US2022045004
(87)【国際公開番号】W WO2023086164
(87)【国際公開日】2023-05-19
(32)【優先日】2021-11-09
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-09-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】ウェン・ガオ
(72)【発明者】
【氏名】シャオジョン・シュ
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA17
(57)【要約】
マシンビジョンおよび人間/マシンハイブリッドビジョンのためのビデオを符号化するための技術であって、ハイブリッドコーデックで、ビデオまたは画像データのうちの少なくとも1つを含む入力を受信するステップであって、ハイブリッドコーデックは第1および第2のコーデックを含み、第1のコーデックは、人間が消費するために設計された従来のコーデックであり、第2のコーデックは、マシンビジョンのために設計された学習ベースのコーデックである、ステップと、第1のコーデックを使用して入力を圧縮するステップであって、圧縮するステップは、ダウンサンプリングモジュールを使用して入力をダウンサンプリングし、残差信号を生成するアップサンプリングモジュールを使用して圧縮された入力をアップサンプリングするステップを含む、ステップと、入力の量子化表現を取得するために残差信号を量子化するステップと、1つまたは複数の畳み込みフィルタモジュールを使用して入力の量子化表現をエントロピー符号化するステップと、エントロピー符号化された量子化表現を使用して1つまたは複数のネットワークを訓練するステップとを含む。
【特許請求の範囲】
【請求項1】
マシンビジョンおよび人間/マシンハイブリッドビジョンのためのビデオを符号化するための方法であって、前記方法は1つまたは複数のプロセッサによって実行され、前記方法は、
ハイブリッドコーデックで、ビデオまたは画像データのうちの少なくとも1つを含む入力を受信するステップであって、前記ハイブリッドコーデックは第1および第2のコーデックを含み、前記第1のコーデックは、人間が消費するために設計された従来のコーデックであり、前記第2のコーデックは、マシンビジョンのために設計された学習ベースのコーデックである、ステップと、
前記第1のコーデックを使用して前記入力を圧縮するステップであって、圧縮する前記ステップは、ダウンサンプリングモジュールを使用して前記入力をダウンサンプリングし、残差信号を生成するアップサンプリングモジュールを使用して前記圧縮された入力をアップサンプリングするステップを含む、ステップと、
前記入力の量子化表現を取得するために前記残差信号を量子化するステップと、
1つまたは複数の畳み込みフィルタモジュールを使用して前記入力の前記量子化表現をエントロピー符号化するステップと、
前記エントロピー符号化された量子化表現を使用して1つまたは複数のネットワークを訓練するステップと
を含む、方法。
【請求項2】
前記従来のコーデックが、VVC、HEVC、H264、JPEG、またはJPEG2000コーデックのいずれかを含む、請求項1に記載の方法。
【請求項3】
前記学習用コーデックが、画像コーデックを含み、前記残差信号が、時間的冗長性を考慮せずにフレームごとに圧縮される、請求項1に記載の方法。
【請求項4】
前記ダウンサンプリングモジュールが、古典的な画像ダウンサンプラおよび学習ベースの画像ダウンサンプラのうちの1つである、請求項1に記載の方法。
【請求項5】
前記ダウンサンプリングモジュールが、固定されており、エンコーダおよびデコーダの両方で知られている、またはユーザ定義のダウンサンプリング比Nを使用する、請求項4に記載の方法。
【請求項6】
前記アップサンプリングモジュールが、古典的な画像アップサンプラおよび学習ベースの画像アップサンプラのうちの1つである、請求項1に記載の方法。
【請求項7】
前記アップサンプリングされた圧縮入力が前記入力から減算されて第2の残差信号を生成し、前記第2の残差信号が前記学習ベースのコーデックに提供される、請求項1に記載の方法。
【請求項8】
前記第2のコーデックの前記出力が、前記アップサンプリングされた圧縮入力の上に追加されて、マシンビジョンタスクに適した前記再構築されたビデオを形成する、請求項7に記載の方法。
【請求項9】
前記ハイブリッドコーデックへの前記入力がグランドトゥルースである、請求項1に記載の方法。
【請求項10】
前記マシンビジョンネットワークが固定され、前記第2のコーデックの残差コーダ、エントロピーコーダ、およびエントロピーモデルのパラメータが訓練される、請求項1に記載の方法。
【請求項11】
マシンビジョンおよび人間/マシンハイブリッドビジョンのためのビデオを符号化するための装置であって、前記装置は、
コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって命令されるように動作するよう構成された少なくとも1つのプロセッサであって、前記コンピュータプログラムコードは、
前記少なくとも1つのプロセッサに、ビデオまたは画像データのうちの少なくとも1つを含む入力を、ハイブリッドコーデックで受信させるように構成された設定コードであって、前記ハイブリッドコーデックは第1および第2のコーデックを含み、前記第1のコーデックは人間が消費するために設計された従来のコーデックであり、前記第2のコーデックはマシンビジョンのために設計された学習ベースのコーデックである、設定コードと、
前記少なくとも1つのプロセッサに、前記第1のコーデックを使用して前記入力を圧縮させるように構成された圧縮コードであって、前記圧縮コードは、前記少なくとも1つのプロセッサに、ダウンサンプリングモジュールを使用して前記入力をダウンサンプリングさせるように構成されたダウンサンプリングコードを含み、前記圧縮コードは、前記少なくとも1つのプロセッサに、残差信号を生成するアップサンプリングモジュールを使用して前記圧縮された入力をアップサンプリングさせるように構成されたアップサンプリングコードを含む、圧縮コードと、
前記少なくとも1つのプロセッサに、前記入力の量子化表現を取得するために前記残差信号を量子化させるように構成された量子化コードと、
前記少なくとも1つのプロセッサに、1つまたは複数の畳み込みフィルタモジュールを使用して前記入力の前記量子化表現を符号化させるように構成されたエントロピー符号化コードと、
前記エントロピー符号化された量子化表現を使用して前記1つまたは複数のネットワークを引き起こすように構成された訓練コードと
を含む、少なくとも1つのプロセッサと
を備える、装置。
【請求項12】
前記従来のコーデックが、VVCコーデック、HEVCコーデック、H264コーデック、JPEGコーデック、またはJPEG2000コーデックのうちの少なくとも1つを含む、請求項11に記載の装置。
【請求項13】
前記学習用コーデックが、画像コーデックを含み、前記残差信号が、時間的冗長性を考慮せずにフレームごとに圧縮される、請求項11に記載の装置。
【請求項14】
前記ダウンサンプリングモジュールが、古典的な画像ダウンサンプラおよび学習ベースの画像ダウンサンプラのうちの1つである、請求項11に記載の装置。
【請求項15】
前記ダウンサンプリングモジュールが、固定されており、エンコーダおよびデコーダの両方で知られている、またはユーザ定義のダウンサンプリング比Nを使用する、請求項14に記載の装置。
【請求項16】
前記アップサンプリングモジュールが、古典的な画像アップサンプラおよび学習ベースの画像アップサンプラのうちの1つである、請求項11に記載の装置。
【請求項17】
前記アップサンプリングされた圧縮入力が前記入力から減算されて第2の残差信号を生成し、前記第2の残差信号が前記学習ベースのコーデックに提供される、請求項11に記載の装置。
【請求項18】
前記第2のコーデックの前記出力が、前記アップサンプリングされた圧縮入力の上に追加されて、マシンビジョンタスクのために構成された前記再構築されたビデオを形成する、請求項17に記載の装置。
【請求項19】
前記ハイブリッドコーデックへの前記入力がグランドトゥルースである、請求項11に記載の装置。
【請求項20】
コンピュータ命令を記憶している非一時的コンピュータ可読媒体であって、少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
ハイブリッドコーデックで、ビデオまたは画像データのうちの少なくとも1つを含む入力を受信させ、前記ハイブリッドコーデックは第1および第2のコーデックを含み、前記第1のコーデックは、人間が消費するために設計された従来のコーデックであり、前記第2のコーデックは、マシンビジョンのために設計された学習ベースのコーデックであり、
前記第1のコーデックを使用して前記入力を圧縮させ、前記圧縮させることは、ダウンサンプリングモジュールを使用して前記入力をダウンサンプリングし、残差信号を生成するアップサンプリングモジュールを使用して前記圧縮された入力をアップサンプリングすることを含み、
前記入力の量子化表現を取得するために前記残差信号を量子化させ、
1つまたは複数の畳み込みフィルタモジュールを使用して前記入力の前記量子化表現をエントロピー符号化し、
前記エントロピー符号化された量子化表現を使用して1つまたは複数のネットワークを訓練させる、
非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年11月9日に出願された米国仮特許出願第63/277,517号および2022年9月22日に出願された米国特許出願第17/950,564号に基づく優先権を米国特許法第119条の下に主張し、それらの開示内容はそれらの全体が参照により本明細書に組み込まれる。
【0002】
本開示は、マシンビジョンのためのビデオ符号化に関する。具体的には、マシンビジョンおよび人間/マシンハイブリッドビジョンのためのビデオを符号化するための手法が開示される。
【背景技術】
【0003】
従来、ビデオまたは画像は、娯楽、教育などの様々な用途のために人間によって消費される。したがって、ビデオ符号化または画像符号化は、良好な主観的品質を維持しながら、より良好な圧縮効率のために人間の視覚システムの特性を利用することが多い。
【0004】
近年、機械学習の適用の増加に伴い、多くのインテリジェントプラットホームでは多数のセンサに加えて、オブジェクト検出、セグメンテーションやトラッキングなどのマシンビジョンのタスクに用いるビデオを利用している。マシンタスクによる消費のためにビデオまたは画像を符号化する方法は、興味深い困難な問題となり、マシン用ビデオ符号化(VCM)研究の導入につながっている。この目的を達成するために、国際標準グループMPEGは、差分デバイス間のより良好な相互運用性のための関連技術を標準化するために、Ad-Hocグループ、「マシン用ビデオ符号化(VCM)」を生成した。
【0005】
既存のビデオコーデックは、主に人間が消費するためのものである。しかしながら、オブジェクト検出、インスタンスセグメンテーション、オブジェクト追跡などのマシンビジョンタスクのために、ますます多くのビデオがマシンによって消費されている。マシンビジョンまたはハイブリッドマシン/人間ビジョンのためにビデオを効率的に符号化するビデオコーデックを開発することが重要である。
【発明の概要】
【課題を解決するための手段】
【0006】
以下は、そのような実施形態の基本的な理解を提供するために、本開示の1つまたは複数の実施形態の簡略化された概要を提示する。この概要は、考えられるすべての実施形態の広範な概要ではなく、すべての実施形態の主要または重要な要素を識別することも、いずれかまたはすべての実施形態の範囲を描写することも意図されていない。その唯一の目的は、後に提示されるより詳細な説明の前置きとして、本開示の1つまたは複数の実施形態のいくつかの概念を簡略化された形態で提示することである。
【0007】
マシンビジョンおよび人間/マシンハイブリッドビジョンのためのビデオを符号化する、方法、装置、および非一時的コンピュータ可読媒体。
【0008】
一例示的な実施形態によれば、1つまたは複数のプロセッサによって実行される、マシンビジョンおよび人間/マシンハイブリッドビジョンのためのビデオを符号化するための方法。方法は、ビデオまたは画像データのうちの少なくとも1つを含む入力をハイブリッドコーデックで受信するステップを含み、ハイブリッドコーデックは、第1および第2のコーデックを含み、第1のコーデックは、人間が消費するために設計された従来のコーデックであり、第2のコーデックは、マシンビジョンのために設計された学習ベースのコーデックである。方法は、第1のコーデックを使用して入力を圧縮するステップをさらに含み、圧縮するステップは、ダウンサンプリングモジュールを使用して入力をダウンサンプリングし、残差信号を生成するアップサンプリングモジュールを使用して圧縮された入力をアップサンプリングするステップを含む。方法は、入力の量子化表現を取得するために残差信号を量子化するステップをさらに含む。方法は、1つまたは複数の畳み込みフィルタモジュールを使用して入力の量子化表現をエントロピー符号化するステップ、およびエントロピー符号化された量子化表現を使用して1つまたは複数のネットワークを訓練するステップをさらに含む。
一例示的な実施形態によれば、マシンビジョンおよび人間/マシンハイブリッドビジョンのためのビデオを符号化するための装置は、コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリ、およびコンピュータプログラムコードにアクセスし、コンピュータプログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサを備える。コンピュータプログラムコードは、少なくとも1つのプロセッサに、ビデオまたは画像データのうちの少なくとも1つを含む入力をハイブリッドコーデックで受信させるように構成された設定コードを含み、ハイブリッドコーデックは、第1および第2のコーデックを含み、第1のコーデックは、人間が消費するために設計された従来のコーデックであり、第2のコーデックは、マシンビジョンのために設計された学習ベースのコーデックである。コンピュータプログラムコードは、第1のコーデックを使用して少なくとも1つのプロセッサに入力を圧縮させるように構成された圧縮コードをさらに含み、圧縮コードは、ダウンサンプリングモジュールを使用して少なくとも1つのプロセッサに入力をダウンサンプリングさせるように構成されたダウンサンプリングコードを含み、圧縮コードは、残差信号を生成するアップサンプリングモジュールを使用して少なくとも1つのプロセッサに圧縮された入力をアップサンプリングさせるように構成されたアップサンプリングコードを含む。コンピュータプログラムコードは、少なくとも1つのプロセッサに残差信号を量子化させて入力の量子化表現を取得させるように構成された量子化コードをさらに含む。コンピュータプログラムコードは、少なくとも1つのプロセッサに、1つまたは複数の畳み込みフィルタモジュールを使用して入力の量子化表現を符号化させるように構成されたエントロピー符号化コードをさらに含む。コンピュータプログラムコードは、エントロピー符号化された量子化表現を使用して1つまたは複数のネットワークを引き起こすように構成された訓練コードをさらに含む。
一例示的な実施形態によれば、プロセッサによって実行されると、プロセッサに、マシンビジョンおよび人間/マシンハイブリッドビジョンのためのビデオを符号化するための方法を実行させる、命令がそこに格納された非一時的コンピュータ可読媒体。方法は、ビデオまたは画像データのうちの少なくとも1つを含む入力をハイブリッドコーデックで受信するステップを含み、ハイブリッドコーデックは、第1および第2のコーデックを含み、第1のコーデックは、人間が消費するために設計された従来のコーデックであり、第2のコーデックは、マシンビジョンのために設計された学習ベースのコーデックである。方法は、第1のコーデックを使用して入力を圧縮するステップをさらに含み、圧縮するステップは、ダウンサンプリングモジュールを使用して入力をダウンサンプリングし、残差信号を生成するアップサンプリングモジュールを使用して圧縮された入力をアップサンプリングするステップを含む。方法は、入力の量子化表現を取得するために残差信号を量子化するステップをさらに含む。方法は、1つまたは複数の畳み込みフィルタモジュールを使用して入力の量子化表現をエントロピー符号化するステップ、およびエントロピー符号化された量子化表現を使用して1つまたは複数のネットワークを訓練するステップをさらに含む。
【0009】
さらなる実施形態は、以下の説明に記載され、部分的には、説明から明らかになるか、および/または本開示の提示された実施形態の実践によって習得されてもよい。
【0010】
本開示の実施形態の上記および他の特徴および態様は、添付図面と併せて以下の説明から明らかになるであろう。
【図面の簡単な説明】
【0011】
【
図1】本開示の様々な実施形態による、一例示的なネットワークデバイスの図である。
【
図2】本開示の一実施形態による、開示されたハイブリッドビデオコーデックのアーキテクチャを示す図である。
【
図3】本開示の様々な実施形態による、マシンシステムのためのビデオ符号化を示す図である。
【
図4】本開示の様々な実施形態による、学習ベースの画像コーデックのアーキテクチャを示す図である。
【
図5】本開示の様々な実施形態による、学習ベースの画像コーデックのアーキテクチャを示す図である。
【
図6】本開示の様々な実施形態による、ハイブリッドビデオコーデックの1つまたは複数のネットワークを訓練するための一例示的なプロセスのフローチャートである。
【
図7】本開示の様々な実施形態による、学習ベースのビデオコーデックの一例を示す図である。
【発明を実施するための形態】
【0012】
例示的な実施形態の以下の詳細な説明は、添付の図面を参照する。異なる図面における同じ参照番号は、同じまたは類似の要素を識別し得る。
【0013】
前述の開示は、例示および説明を提供しているが、網羅的であることも、実装形態を厳密に開示の実装形態に限定することも意図されていない。修正形態および変形形態が上記の開示に照らして可能であり、または実装形態の実践から取得されてもよい。さらに、いくつかの実施形態の1つまたは複数の特徴または構成要素は、いくつかの実施形態(またはいくつかの実施形態の1つまたは複数の特徴)に組み込まれても、または組み合わされてもよい。追加的に、以下に提供されるフローチャートおよび動作の説明では、1つまたは複数の動作が省略されてもよく、1つまたは複数の動作が追加されてもよく、1つまたは複数の動作が同時に(少なくとも部分的に)実行されてもよく、1つまたは複数の動作の順序が切り替えられてもよいことが理解される。
【0014】
本明細書に記載のシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組み合わせの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実装形態を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づいてシステムおよび/または方法を実装するように設計され得ることが理解される。
【0015】
特定の特徴の組合せが、特許請求の範囲に記載され、および/または本明細書に開示されていても、これらの組合せは、可能な実装形態の開示を限定することを意図されたものではない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されておらず、および/または本明細書に開示されていない方法で組み合わされ得る。以下に列挙されている各従属請求項は1つの請求項のみに直接従属し得るが、可能な実装形態の開示は、請求項セット内の他のすべての請求項との組み合わせにおいて各従属請求項を含む。
【0016】
本明細書で使用される要素、動作、または命令は、そのようなものとして明示的に記載されていない限り、重要または必須であると解釈されてはならない。また、本明細書で使用される場合、冠詞「a」および「an」は、1つまたは複数の項目を含むことを意図されており、「1つまたは複数」と交換可能に使用されてもよい。1つの項目のみが対象とされる場合、「1つ」という用語または同様の言葉が使用される。また、本明細書で使用される「有する(has)」、「有する(have)」、「有する(having)」、「含む(include)」、「含む(including)」などの用語は、オープンエンド用語であることが意図されている。さらに、「に基づいて」という語句は、特に明記されない限り、「に少なくとも部分的に基づいて」を意味することが意図されている。さらに、「[A]および[B]の少なくとも1つ」または「[A]または[B]の少なくとも1つ」などの表現は、Aのみ、Bのみ、またはAとBの両方を含むと理解されるべきである。
【0017】
本明細書を通して、「いくつかの実施形態」、「一実施形態」、または同様の言語への参照は、示された実施形態に関連して説明された特定の特徴、構造、または特性が、本解決策のいくつかの実施形態に含まれることを意味する。したがって、本明細書全体を通して「いくつかの実施形態では」、「一実施形態では」という語句、および同様の文言は、必ずしもそうとは限らないが、同じ実施形態をすべて指し得る。
【0018】
さらに、本開示の記載された特徴、利点、および特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせられ得る。当業者であれば、本明細書の説明に照らして、特定の実施形態の特定の特徴または利点の1つまたは複数なしで本開示が実施され得ることを認識するであろう。他の例では、本開示のすべての実施形態には存在しない可能性がある特定の実施形態において、追加の特徴および利点が認識され得る。
【0019】
開示した方法は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つもしくは複数のプロセッサ、または1つもしくは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0020】
本開示の実施形態は、機械のためのビデオ符号化に関する。具体的には、マシンビジョンおよび人間/マシンハイブリッドビジョンのためのビデオを符号化する方法が開示される。従来のビデオコーデックは、人間が消費するために設計されている。いくつかの実施形態では、従来のビデオコーデックを学習ベースのコーデックと組み合わせてハイブリッドコーデックを形成することができ、その結果、ビデオをマシンビジョンおよびハイブリッドヒューマンとマシンビジョンのために効率的に符号化し得る。
【0021】
図1は、翻訳サービスを実行するための一例示的なデバイスの図である。デバイス100は、任意のタイプの既知のコンピュータ、サーバ、またはデータ処理デバイスに対応し得る。例えば、デバイス100は、プロセッサ、パーソナルコンピュータ(PC)、コンピューティングデバイスを備えるプリント回路基板(PCB)、ミニコンピュータ、メインフレームコンピュータ、マイクロコンピュータ、電話コンピューティングデバイス、有線/無線コンピューティングデバイス(例えば、スマートフォン、携帯情報端末(PDA))、ラップトップ、タブレット、スマートデバイス、または任意の他の同様の動作デバイスを備え得る。
【0022】
いくつかの実施形態では、
図1に示されるように、デバイス100は、プロセッサ120、メモリ130と、記憶構成要素140、入力構成要素150と、出力構成要素160、および通信インターフェース170などの構成要素のセットを備えてもよい。
【0023】
バス110は、デバイス100の構成要素のセット間の通信を可能にする1つまたは複数の構成要素を備え得る。例えば、バス110は、通信バス、クロスオーバーバー、ネットワークなどであってもよい。
図1ではバス110は単一の線として示されているが、バス110は、デバイス100の構成要素のセット間の複数の(2つ以上の)接続を使用して実装されてもよい。本開示はこれに限定されない。
【0024】
デバイス100は、プロセッサ120などの1つまたは複数のプロセッサを備えてもよい。プロセッサ120は、ハードウェア、ファームウェア、および/またはハードウェアとソフトウェアの組み合わせに実装されてもよい。例えば、プロセッサ120は、中央処理装置(CPU)、グラフィック処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、汎用シングルチップもしくはマルチチッププロセッサ、または他のプログラマブルロジックデバイス、ディスクリートゲートもしくはトランジスタロジック、ディスクリートハードウェア構成要素、または本明細書に記載の動作を実行するように設計されたそれらの任意の組み合わせを含み得る。汎用プロセッサは、マイクロプロセッサ、または任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサ120はまた、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成などのコンピューティングデバイスの組み合わせとして実装されてもよい。いくつかの実施形態では、特定のプロセスおよび方法は、所与の動作に固有の回路によって実行されてもよい。
【0025】
プロセッサ120は、デバイス100および/またはデバイス100の構成要素(例えば、メモリ130、記憶構成要素140、入力構成要素150、出力構成要素160、および通信インターフェース170)のセットの全体的な動作を制御し得る。
【0026】
デバイス100は、メモリ130をさらに備えてもよい。いくつかの実施形態では、メモリ130は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ、磁気メモリ、光メモリ、および/または別のタイプの動的または静的記憶デバイスを含み得る。メモリ130は、プロセッサ120による使用(例えば、実行)のための情報および/または命令を記憶し得る。
【0027】
デバイス100の記憶構成要素140は、デバイス100の動作および使用に関連する情報および/またはコンピュータ可読命令および/またはコードを記憶し得る。例えば、記憶構成要素140は、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、および/またはソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ユニバーサルシリアルバス(USB)フラッシュドライブ、パーソナルコンピュータメモリカード国際協会(PCMCIA)カード、フロッピーディスク、カートリッジ、磁気テープ、および/または別のタイプの非一時的コンピュータ可読媒体を、対応するドライブと共に含み得る。
【0028】
デバイス100は、入力構成要素150をさらに備えてもよい。入力構成要素150は、デバイス100がユーザ入力(例えば、タッチスクリーン、キーボード、キーパッド、マウス、スタイラス、ボタン、スイッチ、マイクロフォン、カメラなど)などを介して情報を受信することを可能にする1つまたは複数の構成要素を含み得る。代替的または追加的に、入力構成要素150は、情報を感知するためのセンサ(例えば、全地球測位システム(GPS)構成要素、加速度計、ジャイロスコープ、アクチュエータなど)を含んでもよい。
【0029】
デバイス100の出力構成要素160は、デバイス100からの出力情報(例えば、ディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、有機発光ダイオード(OLED)、触覚フィードバックデバイス、スピーカなど)を提供し得る1つまたは複数の構成要素を含み得る。
【0030】
デバイス100は、通信インターフェース170をさらに備え得る。通信インターフェース170は、受信機構成要素、送信機構成要素、および/または送受信機構成要素を含み得る。通信インターフェース170は、デバイス100が他のデバイス(例えば、サーバ、別のデバイス)との接続を確立し、および/または通信を転送することを可能にし得る。通信は、有線接続、無線接続、または有線接続と無線接続との組み合わせを介して行われ得る。通信インターフェース170は、デバイス100が別のデバイスから情報を受信し、および/または別のデバイスに情報を提供することを可能にし得る。いくつかの実施形態では、通信インターフェース170は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワーク、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動網(PLMN)、電話網(例えば、公衆交換電話網(PSTN))など、および/またはこれらもしくは他のタイプのネットワークの組み合わせなどのネットワークを介して別のデバイスとの通信を提供し得る。代替的または追加的に、通信インターフェース170は、FlashLinQ、WiMedia、Bluetooth、ZigBee、Wi-Fi、LTE、5Gなどのデバイスツーデバイス(D2D)通信リンクを介して別のデバイスとの通信を提供し得る。他の実施形態では、通信インターフェース170は、イーサネットインターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波数(RF)インターフェースなどを含み得る。
【0031】
デバイス100は、コアネットワーク240に含まれ、本明細書に記載の1つまたは複数のプロセスを実行し得る。デバイス100は、メモリ130および/または記憶構成要素140などの非一時的コンピュータ可読媒体によって記憶され得るコンピュータ可読命令および/またはコードを実行するプロセッサ120に基づいて動作を実行し得る。コンピュータ可読媒体は、非一時的メモリデバイスを指し得る。メモリデバイスは、単一の物理記憶デバイス内のメモリ空間を、および/または複数の物理記憶デバイスに散在するメモリ空間を含み得る。
【0032】
コンピュータ可読命令および/またはコードは、別のコンピュータ可読媒体から、または通信インターフェース170を介して別のデバイスからメモリ130および/または記憶構成要素140に読み込まれてもよい。メモリ130および/または記憶構成要素140に記憶されたコンピュータ可読命令および/またはコードは、プロセッサ120によって実行された場合、または実行されたとき、デバイス100に本明細書に記載の1つまたは複数のプロセスを実行させ得る。
【0033】
代替的または追加的に、本明細書に記載された1つまたは複数のプロセスを実行するために、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて、ハードワイヤード回路が使用されてもよい。したがって、本明細書に記載された実施形態は、ハードウェア回路とソフトウェアのいかなる特定の組み合わせにも限定されない。
【0034】
図1に示す構成要素の数および配置は、一例として提供されている。実際には、
図1に示されたものに比べ、追加の構成要素、より少ない構成要素、異なる構成要素、または異なる配置の構成要素があり得る。さらに、
図1に示す2つ以上の構成要素は、単一の構成要素内に実装されてもよく、または
図1に示す単一の構成要素は、複数の分散型構成要素として実装されてもよい。追加的または代替的に、
図1に示す(1つまたは複数の)構成要素のセットは、
図1に示す構成要素の別のセットによって実行されるものとして説明される1つまたは複数の動作を実行し得る。
【0035】
図2は、ハイブリッドビデオコーデック200の一実施形態を表示するブロック図である。ハイブリッドビデオコード200は、従来のコーデック220および学習ベースのコーデック230を含み得る。ハイブリッドコーデックへの入力201は、画像が特別なタイプのビデオ(例えば、1つの画像を伴うビデオ)として扱われ得るので、ビデオまたは画像であり得る。
図2では、従来のビデオコーデック220を使用して異なるスケール(例えば、元の解像度またはダウンサンプリング)の入力ビデオ201を圧縮し得、ダウンサンプリングモジュール210のダウンサンプリング比は固定され、エンコーダ221とデコーダ223の両方で知られていてもよく、またはダウンサンプリング比はユーザ定義、例えば100%(例えば、ダウンサンプリングは行われない)、50%、25%などであってもよく、デコーダ222に通知するためにビットストリーム224におけるメタデータとして送信されてもよい。従来のビデオコーデックは、VVC、HEVC、H264、またはJPEG、JPEG 2000などの画像コーデックであってもよい。ダウンサンプリングモジュール210は、古典的な画像ダウンサンプラまたは学習ベースの画像ダウンサンプラであってもよい。復号されダウンサンプリングされたビデオ203(例えば、
図2の「低解像度ビデオ203」)は、アップサンプリングモジュール250を使用して、人間の視覚に使用され得る、ビデオの元の解像度(例えば、「高解像度ビデオ204」)にアップサンプリングされ得る。アップサンプリングモジュール250は、古典的な画像アップサンプラまたは学習ベースの超解像モジュールなどの学習ベースの画像アップサンプラであってもよい。
【0036】
いくつかの実施形態では、ハイブリッドビデオコーデック200はまた、ダウンサンプリングされたビデオ202を圧縮するために学習ベースのビデオコーデック230を採用し得る。
【0037】
エンコーダでは、再構築されたビデオ203を生成し、元の入力解像度にアップサンプリングし得る。アップサンプリングされ再構築されたビデオ205は、次に、入力ビデオから減算されて、
図2の学習ベースのコーデック230に供給され得る残差ビデオ信号202を生成し得る。ハイブリッドビデオコーデック200のアップサンプリングモジュール240は、(低解像度後の)アップサンプリングモジュール250と同じであり得る。ビデオ203は、デコーダにおいて復号され得る。残差デコーダ238の出力は、マシンビジョンタスクに使用され得る、再構築されたビデオ205を形成するために高解像度ビデオ204の上に追加され得る。
【0038】
以下でさらに詳細に説明する、
図4および
図5のネットワークは、画像を使用して訓練され得る。
図6のネットワークなどの開示されたネットワークは、
図2に示すように残差信号202を使用して再訓練される必要がある。
【0039】
訓練中、学習ベースのコーデック230への入力は、グランドトゥルースでもある、残差信号/画像202であってもよい。損失関数は、以下のようにレート歪み損失を利用し得る。
Loverall=R+λmseLmse (1)
【0040】
式1において、Rはビットストリームコストを表し、これは画素当たりの推定ビット(BPP)値であってもよく、λ
mseは、
図2に示すように、残差画像202と対応する再構築された残差画像205の間の平均二乗誤差である。λ
mseは、ビットレートコストを圧縮性能とトレードオフするために使用される正の重み係数である。
いくつかの実施形態では、レート歪み損失は、以下のように修正し得る。
L
overall=R+λ
ms-ssimL
ms-ssim (2)
ここで、L
ms-ssimは、残差画像202および対応する再構築された残差画像205を使用して計算されたMS-SSIMメトリックであり、λ
ms-ssimは重み係数である。
【0041】
いくつかの実施形態では、タスクネットワークが、共同訓練プロセスで使用されてもよい。オブジェクト検出ネットワークYOLOv3またはFaster R-CNNなどのマシンビジョンタスクネットワークは、共同訓練のために追加され得る。
図2の高解像度ビデオ204は、アップサンプリングされ復号されたビデオであり得る。L
detectは、オブジェクト検出ネットワークにおいて計算された検出損失である。全損失関数は、式3または4のように表し得る。
L
overall=R+λ
mseL
mse+λ
detectL
detect (3)
L
overall=R+λ
ms-ssimL
ms-ssim+λ
detectL
detect (4)
ここで、λ
detectは正の重み係数である。訓練中、マシンビジョンネットワークのためのモデルパラメータは固定されてもよく、残差エンコーダ231/デコーダ238、エントロピーエンコーダ233/デコーダ236、およびエントロピーモデル235のパラメータのみが訓練される。いくつかの実施形態では、マシンビジョンネットワークのパラメータは、
図2のネットワークの残りと共に訓練されてもよい。
【0042】
図3は、ハイブリッドビデオコーデック200などのビデオ符号化マシン(VCM)のためのアーキテクチャの実施形態を示す。センサ出力300は、VCMエンコーダ310を通ってVCMデコーダ320までビデオ符号化経路311を進み、そこでビデオ復号321を受ける。別の経路は、特徴抽出312、特徴変換313、特徴符号化314、および特徴復号322のためのものである。VCMデコーダ320の出力は、主にマシン消費、すなわちマシンビジョン305のためのものである。場合によっては、人間の視覚306のためにも使用することができる。次に、ビデオコンテンツを理解するための1つまたは複数のマシンタスクが実行される。
【0043】
図4および
図5は、いくつかの実施形態における学習ベースの画像コーデック230のアーキテクチャを示す。学習ベースのコーデック230は、画像コーデックであり得るので、フレーム間の時間的冗長性を考慮せずに、上記セクションの残差ビデオ信号をフレーム単位で圧縮するようにしてもよい。例えば、学習ベースの画像コーデック230は、
図4および
図5に示すようなオートエンコーダアーキテクチャに従うことができる。いくつかの例では、量子化動作401Aおよび401Bが丸め動作(例えば、浮動小数点数をその隣接する整数に丸める)であるため、逆量子化モジュールが除去され得る。対応する逆量子化モジュール237は、識別モジュールであってもよく、アーキテクチャから除去されてもよい。したがって、量子化モジュール232の動作に応じて、
図2の逆量子化モジュール237は除去され得る。
【0044】
図4および
図5の2つのアーキテクチャは、同様のオートエンコーダアーキテクチャである。
図4は、分析ネットワーク410、合成ネットワーク420、量子化401A、401B、算術コーダ402A、402Bおよびデコーダ403A、403B、ならびにエントロピーモデル430を含む一例示的なアーキテクチャを示す。違いは、分析ネットワーク410、合成ネットワーク420、およびエントロピーモデル430の詳細にある。
【0045】
加えて、ネットワークは、通常の画像の圧縮のために設計されてもよい。したがって、各畳み込みモジュールにおけるフィルタの数は、より多くてもよい。例えば、
図2では、N=128およびM=192または320である。同様に、
図3では、N=192である。
図2では、学習ベースの画像コーデック230を使用して残差信号202を圧縮し得るため、畳み込みフィルタモジュールにおけるフィルタの数は、性能の低下を最小限に抑えて複雑さを低減するために大幅に低減され得、GDN(一般化除算正規化)モジュール511およびIGDN(逆一般化除算正規化)モジュール521は、
図5のReLU 531(正規化線形ユニット)に置き換えられ得、複雑さを低減するために、
図4のアテンションモジュールは除去され得、ガウス混合エントロピーモデルは、
図2に示すスケールハイパープリオリモジュールで置き換えられ得る。
【0046】
本開示では、
図4および
図5のアーキテクチャが一例として使用され、
図4または
図5の趣旨に従う任意のオートエンコーダ、またはそれらの複雑さ低減バージョンが利用されてもよい。例えば、そのようなアーキテクチャの一例が
図2に示されている。いくつかの実施形態では、学習ベースのコーデック230はビデオコーデックであってもよく、その結果、残差信号202におけるフレーム間の時間的冗長性が利用され得る。学習ベースのビデオコーデック230の一例を
図7に示す。
【0047】
図6は、1つまたは複数のネットワークを訓練するためのプロセスの一実施形態を開示するフローチャートを示す。プロセスは、少なくとも1つのビデオまたは画像を含む入力がハイブリッドコーデックで受信される動作S610で開始し得る。ハイブリッドコーデックは、第1および第2のコーデックを含み得、第1のコーデックは、人間が消費するために設計された従来のコーデックであり、第2のコーデックは、マシンビジョンのために設計された学習ベースのコーデックである。一例として、ハイブリッドコーデックは、第1および第2のコーデックを含むハイブリッドビデオコーデック200であってもよい。第1のコーデックは、従来のコーデック220であってもよく、第2のコーデックは、
図2に見られるように入力201を受信する学習ベースのコーデック230であってもよい。プロセスは動作S620に進み、入力が第1のコーデックを使用して圧縮される。例えば、入力201は、第1のコード220によって圧縮されてもよい。圧縮するステップは、ダウンサンプリングモジュール210を使用して入力をダウンサンプリングし、残差信号202を生成するアップサンプリングモジュール240を使用して圧縮された入力をアップサンプリングするステップを含み得る。プロセスは動作S630に進み、量子化器232などの量子化器を使用して入力の量子化表現が取得するために、残差信号(例えば、残差信号202)が量子化される。プロセスは動作S640に進み、入力の量子化表現は、エントロピーモデル235などのエントロピーモデルの1つまたは複数の畳み込みフィルタモジュールを使用してエントロピー符号化される。プロセスは動作S650に進み、入力のエントロピー符号化された量子化表現および再構築されたビデオ205などの再構築されたビデオを使用して、1つまたは複数のネットワークが訓練される。
【0048】
ハイブリッドビデオコーデック200を指定するために、シーケンスパラメータセット、ピクチャパラメータセット、ピクチャヘッダなどのいくつかのパラメータを、高レベル構文を通して指定する必要がある。または、そのような情報は、システムレベルを通して、またはSEIメッセージを使用してメタデータを介して配信され得る。
【0049】
ダウンサンプリング比:ダウンサンプリング比のセット、例えば{r
0,r
1,…,r
N-1}が定義されてもよく、Nは数ダウンサンプリング比である。入力画像解像度の高さおよび幅をW、Hとし、ダウンサンプリング比をr
nとすると、ダウンサンプリングされた画像の高さおよび幅は、それぞれr
nWおよびr
nHである。インデックスn∈{0,1,…N-1}は、ハイブリッドビデオコーデックにおいて使用されるサンプリングレートr
pを示すために指定される。デコーダは、高解像度画像/ビデオを得るために復号された低解像度画像/ビデオをアップサンプリングするためにアップサンプリング比
【数1】
を使用する必要がある。インデックスnは、固定長コードまたはp次指数ゴロムコードを使用して2値化され、バイパス符号化を用いてビットストリームで送信され得る。いくつかの実施形態では、p=0または1である。
【0050】
アップサンプリングモジュール(アップサンプラ):ハイブリッドビデオコーデックにおいて1つのタイプのアップサンプラのみが使用される場合、ビットストリームにおいてアップサンプラを指定する必要はない。しかしながら、各々が異なる複雑さおよび性能を伴う、複数のタイプのアップサンプラがコーデックにおいて採用され得る場合、アップサンプラのタイプに関する情報がビットストリームにおいて指定される必要がある。例えば、M個のタイプのアップサンプラが存在する場合、どのタイプのアップサンプラが使用されるかを指定するためにインデックスm∈{0,1,…M-1}が使用される。インデックスmは、固定長コードまたはp次指数ゴロムコードを使用して2値化され、バイパス符号化を用いてビットストリームで送信され得る。いくつかの実施形態では、p=0または1である。
【0051】
ダウンサンプリングされた画像/ビデオを符号化するためのコーデック:ダウンサンプリングされた画像/ビデオを符号化するためのハイブリッドビデオ符号において1つのタイプのコーデックのみが使用される場合、ビットストリームにおいてコーデックを指定する必要はない。しかしながら、例えばVVC、HEVC、H264など、複数のタイプのコーデックがシステムで採用され得る場合、デコーダでの適切な復号を可能にするために、コーデックのタイプに関する情報をビットストリームにおいて指定する必要がある。例えば、Q個のタイプのアップサンプラが存在する場合、どのタイプのコーデックが使用されるかを指定するためにインデックスq∈{0,1,…Q-1}が使用される。インデックスqは、固定長コードまたはp次指数ゴロムコードを使用して2値化され、バイパス符号化を用いてビットストリームで送信され得る。いくつかの実施形態では、p=0または1である。
【0052】
残差画像/ビデオを符号化するためのコーデック:同様に、残差画像/ビデオを符号化するためのハイブリッドビデオコーデックにおいて1つのタイプの学習ベースのコーデックのみが使用される場合、ビットストリームにおいてコーデックを指定する必要はない。しかしながら、例えば
図2~
図4に示すコーデックなど、複数のタイプのコーデックがシステムで採用され得る場合、デコーダでの適切な復号を可能にするために、コーデックのタイプに関する情報をビットストリームにおいて指定する必要がある。例えば、L個のタイプのコーデックが存在する場合、どのタイプのコーデックが使用されるかを指定するためにインデックスl∈{0,1,…L-1}が使用され得る。インデックスlは、固定長コードまたはp次指数ゴロムコードを使用して2値化され、バイパス符号化を用いてビットストリームで送信され得る。いくつかの実施形態では、p=0または1である。異なるタイプのコーデックは、エンコーダとデコーダの両方によって知られるべきである。
【0053】
いくつかの実施形態では、インデックスを使用する代わりに、学習ベースのコーデックのネットワーク構造に関する記述を、高レベルの構文またはメタデータにおいて指定することができる。例えば、N個の出力フィルタを伴う3×3の畳み込みモジュール、2xのアップサンプリングを伴うN個の出力フィルタを伴う3×3の畳み込みモジュールなど、デコーダネットワークにおいて個々のモジュールを指定することができる。ネットワーク構造に加えて、対応するデコーダモデルパラメータをビットストリームで送信して、デコーダがビットストリームを復号し、再構築された残差画像/ビデオを生成することを可能にし得る。デコーダネットワークは、エンコーダネットワークと対称である必要がある。残差画像/ビデオの部分的な再構築が可能である。加えて、学習ベースのコーデックの浮動小数点実装の代わりに、固定小数点実装が指定されてもよい。
【0054】
異なるマシンタスクのためのパラメータセット選択:いくつかの実施形態では、残差ビデオ信号コーディングブランチについて、同じネットワークアーキテクチャが異なるタスクによって共有されている間に、異なるマシンビジョンタスクについて異なるパラメータセットを訓練し得る。1つの特定のビデオ入力に対して残差符号化を実行するために、このフレームワークがサポートするタスクが2つ以上ある場合、ターゲットマシンタスクが指定されるべきである。例えば、T個のタイプのマシンビジョンタスクがある場合、インデックスt∈{0,1,…T-1}を使用して、どのタイプのマシンタスクをターゲットとするかを指定し得る。したがって、残差信号コーディングブランチは、そのタスクのために訓練された対応するパラメータセットに切り替わる。
【0055】
量子化:量子化とは、一般に、連続的に変化するデータを有限の分割レベルに分割し、各レベルに特定の値を割り当てることを指す。量子化の最も基本的な形態は、均一量子化である。均一量子化は、一定の範囲内で同じサイズの量子化間隔を有する方法である。例えば、特定の入力データに対する最小値と最大値を量子化したい量子化ビットで除算することで、量子化間隔のサイズを設定する方法がある。
【0056】
前述の開示は、例示および説明を提供しているが、網羅的であることも、実装形態を厳密に開示の実装形態に限定することも意図されていない。修正形態および変形形態が上記の開示に照らして可能であり、または実装形態の実践から取得されてもよい。
【0057】
本明細書に開示されるプロセス/フローチャートにおけるブロックの特定の順序または階層は、例示的な手法の例示であることが理解される。設計上の選好に基づいて、プロセス/フローチャートにおけるブロックの特定の順序または階層を再配置し得ることが理解される。また、いくつかのブロックを組み合わせたり、省略したりしてもよい。添付の方法請求項は、サンプルの順序で様々なブロックの要素を提示し、提示された特定の順序または階層に限定されることを意味しない。
【0058】
いくつかの実施形態は、任意の可能な技術的詳細の統合レベルでシステム、方法、および/またはコンピュータ可読媒体に関することができる。さらに、上記の上の構成要素のうちの1つまたは複数は、コンピュータ可読媒体に記憶され、少なくとも1つのプロセッサによって実行可能な命令として実装されてもよい(および/または少なくとも1つのプロセッサを含んでもよい)。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読非一時的記憶媒体を含むことができる。
【0059】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶することができる有形デバイスとし得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上記の任意の適切な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下を、すなわち、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、命令が記録されたパンチカードまたは溝内の隆起構造などの機械的に符号化されたデバイス、および上記の任意の適切な組み合わせを含む。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または電線を介して伝送される電気信号などの一時的な信号自体であると解釈されるべきではない。
【0060】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードし得、またはネットワーク、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/もしくは無線ネットワークを介して外部コンピュータもしくは外部記憶デバイスにダウンロードし得る。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含むことができる。各コンピューティング/処理デバイスのネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0061】
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、またはSmalltalkもしくはC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよいし、または(例えば、インターネットサービスプロバイダを使用したインターネットを介して)外部コンピュータへの接続がなされてもよい。いくつかの実施形態では、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路が、態様または動作を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行し得る。
【0062】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行される命令が、フローチャートおよび/またはブロック図のブロックで指定された動作を実装するための手段を作成するようにマシンを生成するために、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供することができる。これらのコンピュータ可読プログラム命令はまた、記憶された命令を有するコンピュータ可読記憶媒体が、フローチャートおよび/またはブロック図のブロックで指定された動作の態様を実装する命令を含む製品を含むように、コンピュータ、プログラマブルデータ処理装置、および/または他のデバイスに特定の方法で動作するように指示し得るコンピュータ可読記憶媒体に記憶することができる。
【0063】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令がフローチャートおよび/またはブロック図のブロックで指定された動作を実装するように、コンピュータ実装プロセスを生成するために一連の動作がコンピュータ、他のプログラマブル装置、または他のデバイス上で実行されるよう、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイス上にロードすることができる。
【0064】
図のフローチャートおよびブロック図は、様々な実施形態によるシステム、方法、およびコンピュータ可読媒体の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理動作を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部を表すことができる。方法、コンピュータシステム、およびコンピュータ可読媒体は、図に示されているものと比べて、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。いくつかの代替の実装形態では、ブロックの動作は、図とは異なる順序で実行されてもよい。例えば、連続して示されている2つのブロックは、関連する機能に応じて、実際には同時にもしくは実質的に同時に実行されてもよいし、または場合によっては逆の順序で実行されてもよい。ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装されてもよい。
【0065】
本明細書に記載のシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組み合わせの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実装形態を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づいてシステムおよび/または方法を実装するように設計され得ることが理解される。
【0066】
上記の開示はまた、以下に列挙される実施形態を包含する。
【0067】
(1)マシンビジョンおよび人間/マシンハイブリッドビジョンのためのビデオを符号化するための方法であって、方法は1つまたは複数のプロセッサによって実行され、方法は、ハイブリッドコーデックで、ビデオまたは画像データのうちの少なくとも1つを含む入力を受信するステップであって、ハイブリッドコーデックは第1および第2のコーデックを含み、第1のコーデックは、人間が消費するために設計された従来のコーデックであり、第2のコーデックは、マシンビジョンのために設計された学習ベースのコーデックである、ステップと、第1のコーデックを使用して入力を圧縮するステップであって、圧縮するステップは、ダウンサンプリングモジュールを使用して入力をダウンサンプリングし、残差信号を生成するアップサンプリングモジュールを使用して圧縮された入力をアップサンプリングするステップを含む、ステップと、入力の量子化表現を取得するために残差信号を量子化するステップと、1つまたは複数の畳み込みフィルタモジュールを使用して入力の量子化表現をエントロピー符号化するステップと、エントロピー符号化された量子化表現を使用して1つまたは複数のネットワークを訓練するステップとを含む、方法。
【0068】
(2)従来のコーデックが、VVC、HEVC、H264、JPEG、またはJPEG2000コーデックのいずれかを含む、特徴(1)に記載の方法。
【0069】
(3)学習用コーデックが、画像コーデックを含み、残差信号が、時間的冗長性を考慮せずにフレームごとに圧縮される、特徴(1)または(2)に記載の方法。
【0070】
(4)ダウンサンプリングモジュールが、古典的な画像ダウンサンプラおよび学習ベースの画像ダウンサンプラのうちの1つである、特徴(1)から(3)のいずれか1つに記載の方法。
【0071】
(5)ダウンサンプリングモジュールが、固定されており、エンコーダおよびデコーダの両方で知られている、またはユーザ定義のダウンサンプリング比Nを使用する、特徴(1)から(4)のいずれか1つに記載の方法。
【0072】
(6)アップサンプリングモジュールが、古典的な画像アップサンプラおよび学習ベースの画像アップサンプラのうちの1つである、特徴(1)から(5)のいずれか1つに記載の方法。
【0073】
(7)アップサンプリングされた圧縮入力が入力から減算されて第2の残差信号を生成し、第2の残差信号が学習ベースのコーデックに提供される、特徴(1)から(6)のいずれか1つに記載の方法。
【0074】
(8)第2のコーデックの出力が、アップサンプリングされた圧縮入力の上に追加されて、マシンビジョンタスクに適した再構築されたビデオを形成する、特徴(7)に記載の方法。
【0075】
(9)ハイブリッドコーデックへの入力がグランドトゥルースである、特徴(1)から(8)のいずれか1つに記載の方法。
【0076】
(10)マシンビジョンネットワークが固定され、第2のコーデックの残差コーダ、エントロピーコーダ、およびエントロピーモデルのパラメータが訓練される、特徴(1)から(9)のいずれか1つに記載の方法。
【0077】
(11)マシンビジョンおよび人間/マシンハイブリッドビジョンのためのビデオを符号化するための装置であって、コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、コンピュータプログラムコードにアクセスし、コンピュータプログラムコードによって命令されるように動作するよう構成された少なくとも1つのプロセッサであって、コンピュータプログラムコードは、少なくとも1つのプロセッサに、ビデオまたは画像データのうちの少なくとも1つを含む入力を、ハイブリッドコーデックで受信させるように構成された設定コードであって、ハイブリッドコーデックは第1および第2のコーデックを含み、第1のコーデックは人間が消費するために設計された従来のコーデックであり、第2のコーデックはマシンビジョンのために設計された学習ベースのコーデックである、設定コードと、少なくとも1つのプロセッサに、第1のコーデックを使用して入力を圧縮させるように構成された圧縮コードであって、圧縮コードは、少なくとも1つのプロセッサに、ダウンサンプリングモジュールを使用して入力をダウンサンプリングさせるように構成されたダウンサンプリングコードを含み、圧縮コードは、少なくとも1つのプロセッサに、残差信号を生成するアップサンプリングモジュールを使用して圧縮された入力をアップサンプリングさせるように構成されたアップサンプリングコードを含む、圧縮コードと、少なくとも1つのプロセッサに、入力の量子化表現を取得するために残差信号を量子化させるように構成された量子化コードと、少なくとも1つのプロセッサに、1つまたは複数の畳み込みフィルタモジュールを使用して入力の量子化表現を符号化させるように構成されたエントロピー符号化コードと、エントロピー符号化された量子化表現を使用して1つまたは複数のネットワークを引き起こすように構成された訓練コードとを含む、少なくとも1つのプロセッサとを備える、装置。
【0078】
(12)従来のコーデックが、VVCコーデック、HEVCコーデック、H264コーデック、JPEGコーデック、またはJPEG2000コーデックのうちの少なくとも1つを含む、特徴(11)に記載の装置。
【0079】
(13)学習用コーデックが、画像コーデックを含み、残差信号が、時間的冗長性を考慮せずにフレームごとに圧縮される、特徴(11)または(12)に記載の装置。
【0080】
(14)ダウンサンプリングモジュールが、古典的な画像ダウンサンプラおよび学習ベースの画像ダウンサンプラのうちの1つである、請求項11に記載の装置で、(11)から(13)に記載の装置。
【0081】
(15)ダウンサンプリングモジュールが、固定されており、エンコーダおよびデコーダの両方で知られている、またはユーザ定義のダウンサンプリング比Nを使用する、特徴(11)から(14)のいずれか1つに記載の装置。
【0082】
(16)アップサンプリングモジュールが、古典的な画像アップサンプラおよび学習ベースの画像アップサンプラのうちの1つである、特徴(11)から(15)のいずれか1つによる装置。
【0083】
(17)アップサンプリングされた圧縮入力が入力から減算されて第2の残差信号を生成し、第2の残差信号が学習ベースのコーデックに提供される、特徴(11)から(16)のいずれか1つに記載の装置。
【0084】
(18)第2のコーデックの出力が、アップサンプリングされた圧縮入力の上に追加されて、マシンビジョンタスクのために構成された再構築されたビデオを形成する、特徴(17)に記載の装置。
【0085】
(19)ハイブリッドコーデックへの入力がグランドトゥルースである、特徴(11)から(18)のいずれか1つに記載の装置。
【0086】
(20)命令が記憶された非一時的コンピュータ可読媒体であって、プロセッサによって実行されると、プロセッサに、マシンビジョンおよび人間/マシンハイブリッドビジョンのためのビデオを符号化するための方法を実行させ、方法は、ハイブリッドコーデックで、ビデオまたは画像データのうちの少なくとも1つを含む入力を受信するステップであって、ハイブリッドコーデックは第1および第2のコーデックを含み、第1のコーデックは、人間が消費するために設計された従来のコーデックであり、第2のコーデックは、マシンビジョンのために設計された学習ベースのコーデックである、ステップと、第1のコーデックを使用して入力を圧縮するステップであって、圧縮するステップは、ダウンサンプリングモジュールを使用して入力をダウンサンプリングし、残差信号を生成するアップサンプリングモジュールを使用して圧縮された入力をアップサンプリングするステップを含む、ステップと、入力の量子化表現を取得するために残差信号を量子化するステップと、1つまたは複数の畳み込みフィルタモジュールを使用して入力の量子化表現をエントロピー符号化するステップと、エントロピー符号化された量子化表現を使用して1つまたは複数のネットワークを訓練するステップとを含む、非一時的コンピュータ可読媒体。
【符号の説明】
【0087】
100 デバイス
110 バス
120 プロセッサ
130 メモリ
140 記憶構成要素
150 入力構成要素
160 出力構成要素
170 通信インターフェース
200 ハイブリッドビデオコーデック
201 入力ビデオ
202 ダウンサンプリングされたビデオ
203 復号されダウンサンプリングされたビデオ、低解像度ビデオ
204 高解像度ビデオ
205 再構築されたビデオ
210 ダウンサンプリングモジュール
220 従来のビデオコーデック
221 エンコーダ
222 デコーダ
223 デコーダ
224 ビットストリーム
230 学習ベースのビデオまたは画像コーデック
231 残差エンコーダ
232 量子化器、量子化モジュール
233 エントロピーエンコーダ
235 エントロピーモデル
236 エントロピーデコーダ
237 逆量子化モジュール
238 残差デコーダ
240 コアネットワーク、アップサンプリングモジュール
250 アップサンプリングモジュール
300 センサ出力
305 マシンビジョン
306 人間の視覚
310 マシン用ビデオ符号化(VCM)エンコーダ
311 ビデオ符号化経路
312 特徴抽出
313 特徴変換
314 特徴符号化
320 VCMデコーダ
321 ビデオ復号
322 特徴復号
401A 量子化
401B 量子化
402A 算術コーダ
402B 算術コーダ
403A 算術デコーダ
403B 算術デコーダ
410 分析ネットワーク
420 合成ネットワーク
430 エントロピーモデル
511 一般化除算正規化(GDN)モジュール
521 逆一般化除算正規化(IGDN)モジュール
【手続補正書】
【提出日】2023-09-07
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0035
【補正方法】変更
【補正の内容】
【0035】
図2は、ハイブリッドビデオコーデック200の一実施形態を表示するブロック図である。ハイブリッドビデオ
コーデック200は、従来のコーデック220および学習ベースのコーデック230を含み得る。ハイブリッドコーデックへの入力201は、画像が特別なタイプのビデオ(例えば、1つの画像を伴うビデオ)として扱われ得るので、ビデオまたは画像であり得る。
図2では、従来のビデオコーデック220を使用して異なるスケール(例えば、元の解像度またはダウンサンプリング)の入力ビデオ201を圧縮し得、ダウンサンプリングモジュール210のダウンサンプリング比は固定され、エンコーダ221とデコーダ223の両方で知られていてもよく、またはダウンサンプリング比はユーザ定義、例えば100%(例えば、ダウンサンプリングは行われない)、50%、25%などであってもよく、デコーダ222に通知するためにビットストリーム224におけるメタデータとして送信されてもよい。従来のビデオコーデックは、VVC、HEVC、H264、またはJPEG、JPEG 2000などの画像コーデックであってもよい。ダウンサンプリングモジュール210は、古典的な画像ダウンサンプラまたは学習ベースの画像ダウンサンプラであってもよい。復号されダウンサンプリングされたビデオ203(例えば、
図2の「低解像度ビデオ203」)は、アップサンプリングモジュール250を使用して、人間の視覚に使用され得る、ビデオの元の解像度(例えば、「高解像度ビデオ204」)にアップサンプリングされ得る。アップサンプリングモジュール250は、古典的な画像アップサンプラまたは学習ベースの超解像モジュールなどの学習ベースの画像アップサンプラであってもよい。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0047
【補正方法】変更
【補正の内容】
【0047】
図6は、1つまたは複数のネットワークを訓練するためのプロセスの一実施形態を開示するフローチャートを示す。プロセスは、少なくとも1つのビデオまたは画像を含む入力がハイブリッドコーデックで受信される動作S610で開始し得る。ハイブリッドコーデックは、第1および第2のコーデックを含み得、第1のコーデックは、人間が消費するために設計された従来のコーデックであり、第2のコーデックは、マシンビジョンのために設計された学習ベースのコーデックである。一例として、ハイブリッドコーデックは、第1および第2のコーデックを含むハイブリッドビデオコーデック200であってもよい。第1のコーデックは、従来のコーデック220であってもよく、第2のコーデックは、
図2に見られるように入力201を受信する学習ベースのコーデック230であってもよい。プロセスは動作S620に進み、入力が第1のコーデックを使用して圧縮される。例えば、入力201は、第1の
コーデック220によって圧縮されてもよい。圧縮するステップは、ダウンサンプリングモジュール210を使用して入力をダウンサンプリングし、残差信号202を生成するアップサンプリングモジュール240を使用して圧縮された入力をアップサンプリングするステップを含み得る。プロセスは動作S630に進み、量子化器232などの量子化器を使用して入力の量子化表現が取得するために、残差信号(例えば、残差信号202)が量子化される。プロセスは動作S640に進み、入力の量子化表現は、エントロピーモデル235などのエントロピーモデルの1つまたは複数の畳み込みフィルタモジュールを使用してエントロピー符号化される。プロセスは動作S650に進み、入力のエントロピー符号化された量子化表現および再構築されたビデオ205などの再構築されたビデオを使用して、1つまたは複数のネットワークが訓練される。
【手続補正3】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
マシンビジョンおよび人間/マシンハイブリッドビジョンのためのビデオを符号化するための方法であって、前記方法は1つまたは複数のプロセッサによって実行され、前記方法は、
ハイブリッドコーデックで、ビデオまたは画像データのうちの少なくとも1つを含む入力を受信するステップであって、前記ハイブリッドコーデックは第1および第2のコーデックを含み、前記第1のコーデックは、人間が消費するために設計された従来のコーデックであり、前記第2のコーデックは、マシンビジョンのために設計された学習ベースのコーデックである、ステップと、
前記第1のコーデックを使用して前記入力を圧縮するステップであって、圧縮する前記ステップは、ダウンサンプリングモジュールを使用して前記入力をダウンサンプリングし、残差信号を生成するアップサンプリングモジュールを使用して前記圧縮された入力をアップサンプリングするステップを含む、ステップと、
前記入力の量子化表現を取得するために前記残差信号を量子化するステップと、
1つまたは複数の畳み込みフィルタモジュールを使用して前記入力の前記量子化表現をエントロピー符号化するステップと、
前記エントロピー符号化された量子化表現を使用して1つまたは複数のネットワークを訓練するステップと
を含む、方法。
【請求項2】
前記従来のコーデックが、VVC、HEVC、H264、JPEG、またはJPEG2000コーデックのいずれかを含む、請求項1に記載の方法。
【請求項3】
前記学習
ベースのコーデックが、画像コーデックを含み、前記残差信号が、時間的冗長性を考慮せずにフレームごとに圧縮される、請求項1に記載の方法。
【請求項4】
前記ダウンサンプリングモジュールが、古典的な画像ダウンサンプラおよび学習ベースの画像ダウンサンプラのうちの1つである、請求項1に記載の方法。
【請求項5】
前記ダウンサンプリングモジュールが、固定されており、エンコーダおよびデコーダの両方で知られている、またはユーザ定義のダウンサンプリング比Nを使用する、請求項4に記載の方法。
【請求項6】
前記アップサンプリングモジュールが、古典的な画像アップサンプラおよび学習ベースの画像アップサンプラのうちの1つである、請求項1に記載の方法。
【請求項7】
前記アップサンプリングされた圧縮入力が前記入力から減算されて第2の残差信号を生成し、前記第2の残差信号が前記学習ベースのコーデックに提供される、請求項1に記載の方法。
【請求項8】
前記第2のコーデック
の出力が、前記アップサンプリングされた圧縮入力の上に追加されて、マシンビジョンタスクに適し
た再構築されたビデオを形成する、請求項7に記載の方法。
【請求項9】
前記ハイブリッドコーデックへの前記入力がグランドトゥルースである、請求項1に記載の方法。
【請求項10】
マシンビジョンネットワークが固定され、前記第2のコーデックの残差コーダ、エントロピーコーダ、およびエントロピーモデルのパラメータが訓練される、請求項1に記載の方法。
【請求項11】
請求項1~10のいずれか一項に記載の方法を行うように構成された装置。
【請求項12】
少なくとも1つのプロセッサに、請求項1~10のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【国際調査報告】