(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-28
(45)【発行日】2024-11-06
(54)【発明の名称】マシン向けビデオコーディングのための特徴圧縮
(51)【国際特許分類】
H04N 19/85 20140101AFI20241029BHJP
【FI】
H04N19/85
(21)【出願番号】P 2023528039
(86)(22)【出願日】2022-09-09
(86)【国際出願番号】 US2022043030
(87)【国際公開番号】W WO2023043665
(87)【国際公開日】2023-03-23
【審査請求日】2023-05-10
(32)【優先日】2021-09-20
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-09-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ガオ,ウェン
(72)【発明者】
【氏名】シュー,シャオジョン
(72)【発明者】
【氏名】リウ,シャン
【審査官】田中 純一
(56)【参考文献】
【文献】国際公開第2021/095245(WO,A1)
【文献】特表2023-542876(JP,A)
【文献】国際公開第2022/086376(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
特徴圧縮を実行する方法であって、当該方法は少なくとも1つのプロセッサにより実行され、
入力ビデオを取得するステップと、
前記入力ビデオに対応する特徴マップを取得するステップであり、前記特徴マップは複数の特徴チャネルを含む、ステップと、
前記複数の特徴チャネルの少なくとも1つの特性に基づいて前記複数の特徴チャネルを再順序付けするステップと、
前記再順序付けされた複数の特徴チャネルを圧縮するステップと、
前記再順序付けされ
、かつ圧縮された複数の特徴チャネルに基づいて、符号化されたビットストリームを生成するステップと、
を含
み、
前記少なくとも1つの特性は、前記複数の特徴チャネルの類似度を含み、
前記類似度は、前記複数の特徴チャネルのうちの2つの特徴チャネル間の相関係数に基づいて決定され、
前記相関係数は、前記2つの特徴チャネルの共分散と前記2つの特徴チャネルの標準偏差の積との間の比率に対応する、方法。
【請求項2】
前記2つの特徴チャネルは、前記複数の特徴チャネルのうちの第iの特徴チャネル及び第jの特徴チャネルを含み、
前記相関係数は、以下の式:
【数1】
に従って算出され、ρは、前記相関係数を表し、Fは、前記特徴マップを示す3次元配列を表し、Wは、前記特徴マップの幅を表し、wは、幅インデックスを表し、Hは、前記特徴マップの高さを表し、hは、高さインデックスを表し、μ
iは、前記第iの特徴チャネルの平均を表し、μ
jは、前記第jの特徴チャネルの平均を表し、σ
iは、前記第iの特徴チャネルの標準偏差を表し、σ
jは、前記第jの特徴チャネルの標準偏差を表す、請求項
1に記載の方法。
【請求項3】
前記複数の特徴チャネルは、少なくとも1つのピクチャグループにソートされ、前記符号化されたビットストリームを生成するために使用される少なくとも1つの参照ピクチャは、前記相関係数に基づいて選択される、請求項
1に記載の方法。
【請求項4】
前記再順序付けすることは、前記複数の特徴チャネルの中から少なくとも1つのアンカー特徴チャネルを選択することと、前記少なくとも1つのアンカー特徴チャネルに基づいて、前記複数の特徴チャネルの中からの残りの特徴チャネルを少なくとも1つのクラスタにクラスタリングすることを含む、請求項
1に記載の方法。
【請求項5】
前記再順序付けすることは、前記少なくとも1つのクラスタ内の前記残りの特徴チャネルを、前記残りの特徴チャネルの平均、前記残りの特徴チャネルの分散、及び前記残りの特徴チャネルの類似度の中からの少なくとも1つに基づいて順序付けすることをさらに含む、請求項
4に記載の方法。
【請求項6】
前記再順序付けすることは、前記複数の特徴チャネルの各特徴チャネルの合計相関係数を計算することと、前記合計相関係数に基づいて前記複数の特徴チャネルを順序付けすることを含む、請求項
1に記載の方法。
【請求項7】
前記符号化されたビットストリームにおいて前記再順序付けされた複数の特徴チャネルの順序をシグナリングするステップ、をさらに含む請求項1に記載の方法。
【請求項8】
前記順序は、前記再順序付けされた複数の特徴チャネル内で位置を変更した特徴チャネルを示すことによりシグナリングされる、請求項
7に記載の方法。
【請求項9】
前記順序は、暗黙的にシグナリングされ、
前記順序を暗黙的にシグナリングすることは、前記特徴マップ内の前記複数の特徴チャネルをソートするためにチャネル平均が使用される場合、前記符号化されたビットストリームにおいて各特徴チャネルの平均値を元の順序でシグナリングすることを含む、
請求項
7に記載の方法。
【請求項10】
特徴圧縮を実行するデバイスであって、
プログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記プログラムコードを読み取り、前記プログラムコードを実行して請求項1乃至
9のうちいずれか1項に記載の方法を実行するように構成された少なくとも1つのプロセッサと、
を含むデバイス。
【請求項11】
1つ以上のプロセッサに、請求項1乃至
9のうちいずれか1項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本出願は、2021年9月20日に米国特許商標庁に出願された米国仮出願第63/246,217号からの優先権を主張しており、その開示は全体を参照により本明細書に組み込まれている。
【0002】
技術分野
本開示の実施形態は、ビデオコーディングを対象とし、より具体的には、マシン向けビデオコーディング(VCM)と整合性のある特徴圧縮を対象とする。
【背景技術】
【0003】
ビデオや画像は、例えば娯楽、教育など、様々な目的で人間のユーザにより消費されることがある。したがって、ビデオコーディングや画像コーディングはしばしば、良好な主観的品質を維持しながらのより良好な圧縮効率のために、人間の視覚系の特性を利用することがある。
【0004】
近年、センサの豊富さを伴った機械学習アプリケーションの台頭により、多くのインテリジェントプラットフォームは、オブジェクト検出、セグメンテーション、又はトラッキングなどのマシンビジョンタスクにビデオを利用している。結果として、マシンタスクによる消費のためにビデオや画像を符号化することが、興味深くチャレンジングな問題となっている。これは、マシン向けビデオコーディング(Video Coding for Machine、VCM)研究の導入につながった。この目標を達成するために、国際標準グループMPEGは、異なるデバイス間のより良好な相互運用性のために関連する手法を標準化するためのアドホックグループ「マシン向けビデオコーディング(Video coding for machines、VCM)」を創設した。
【発明の概要】
【0005】
1つ以上の実施形態によれば、特徴圧縮を実行する方法は、少なくとも1つのプロセッサにより実行され、入力ビデオを取得するステップと、入力ビデオに対応する特徴マップを取得するステップであり、特徴マップは複数の特徴チャネルを含む、ステップと、複数の特徴チャネルの少なくとも1つの特性に基づいて複数の特徴チャネルを再順序付けするステップと、再順序付けされた複数の特徴チャネルを圧縮するステップと、圧縮され及び再順序付けされた複数の特徴チャネルに基づいて符号化されたビットストリームを生成するステップを含む。
【0006】
1つ以上の実施形態によれば、特徴圧縮を実行するデバイスは、プログラムコードを記憶するように構成された少なくとも1つのメモリと、プログラムコードを読み取り、プログラムコードにより指示されるとおり動作するように構成された少なくとも1つのプロセッサと、を含み、プログラムコードは、少なくとも1つのプロセッサに、入力ビデオを取得させるように構成された第1の取得コードと、少なくとも1つのプロセッサに、入力ビデオに対応する特徴マップを取得させるように構成された第2の取得コードであり、特徴マップは複数の特徴チャネルを含む、第2の取得コードと、少なくとも1つのプロセッサに、複数の特徴チャネルの少なくとも1つの特性に基づいて複数の特徴チャネルを再順序付けさせるように構成された再順序付けコードと、少なくとも1つのプロセッサに、再順序付けされた複数の特徴チャネルを圧縮させるように構成された圧縮コードと、少なくとも1つのプロセッサに、圧縮され及び再順序付けされた複数の特徴チャネルに基づいて符号化されたビットストリームを生成させるように構成された生成コードを含む。
【0007】
1つ以上の実施形態によれば、非一時的コンピュータ読取可能媒体は命令を記憶し、命令は、特徴圧縮を実行するデバイスの1つ以上のプロセッサにより実行されたときに、1つ以上のプロセッサに、入力ビデオを取得し;入力ビデオに対応する特徴マップを取得し、特徴マップは複数の特徴チャネルを含み;複数の特徴チャネルの少なくとも1つの特性に基づいて複数の特徴チャネルを再順序付けし;再順序付けされた複数の特徴チャネルを圧縮し;圧縮され及び再順序付けされた複数の特徴チャネルに基づいて符号化されたビットストリームを生成する;ことをさせる1つ以上の命令を含む。
【図面の簡単な説明】
【0008】
開示される対象事項のさらなる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう。
【
図1】実施形態による、本明細書に記載される方法、装置、及びシステムが実施され得る環境の図である。
【
図2】
図1の1つ以上のデバイスの例示的なコンポーネントのブロック図である。
【
図3】実施形態による、ビデオコーディングを実行するための例示的なアーキテクチャのブロック図である。
【
図4】実施形態による、例示的な特徴マップのブロック図である。
【
図5】実施形態による、特徴圧縮を実行するための例示的なプロセスのフローチャートである。
【発明を実施するための形態】
【0009】
図1は、実施形態による、本明細書に記載される方法、装置、及びシステムが実施され得る環境100の図である。
図1に示すように、環境100は、ユーザデバイス110、プラットフォーム120、及びネットワーク130を含むことができる。環境100のデバイスは、有線接続、無線接続、又は有線接続と無線接続の組み合わせを介して相互接続することができる。
【0010】
ユーザデバイス110は、プラットフォーム120に関連づけられた情報を受信、生成、記憶、処理、及び/又は提供することができる1つ以上のデバイスを含む。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカー、サーバ等)、携帯電話(例えば、スマートフォン、無線電話等)、ウェアラブルデバイス(例えば、スマートグラス、又はスマートウォッチ)、又は同様のデバイスを含んでもよい。いくつかの実装において、ユーザデバイス110は、プラットフォーム120から情報を受信し、かつ/あるいはプラットフォーム120に情報を送信することができる。
【0011】
プラットフォーム120は、本明細書において他の箇所で説明されるように、1つ以上のデバイスを含む。いくつかの実装において、プラットフォーム120は、クラウドサーバ、又はクラウドサーバのグループを含んでもよい。いくつかの実装において、プラットフォーム120は、ソフトウェアコンポーネントが特定のニーズに応じてスワップイン又はスワップアウトされ得るように、モジュール式であるように設計されてもよい。そのため、プラットフォーム120は、異なる使用法に対して容易かつ/あるいは迅速に再構成することができる。
【0012】
いくつかの実装において、図示のように、プラットフォーム120は、クラウドコンピューティング環境122でホストされる場合がある。とりわけ、本明細書に記載される実装は、プラットフォーム120をクラウドコンピューティング環境122でホストされるものとして説明するが、いくつかの実装において、プラットフォーム120は、クラウドベースでなくてもよく(すなわち、クラウドコンピューティング環境の外部で実装される場合がある)、あるいは部分的にクラウドベースでもよい。
【0013】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステム及び/又はデバイスの物理的な場所及び構成のエンドユーザ(例えば、ユーザデバイス110)の知識を必要としない計算、ソフトウェア、データアクセス、ストレージ等のサービスを提供することができる。図示のように、クラウドコンピューティング環境122は、計算リソース124のグループ(集合的に「複数の計算リソース124」と呼ばれ、個々に「計算リソース124」と呼ばれる)を含むことができる。
【0014】
計算リソース124は、1つ以上のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、又は他のタイプの計算及び/又は通信デバイスを含む。いくつかの実装において、計算リソース124は、プラットフォーム120をホストすることができる。クラウドリソースは、計算リソース124で実行される計算インスタンス、計算リソース124で提供されるストレージデバイス、計算リソース124で提供されるデータ転送デバイスなどを含んでもよい。いくつかの実装において、計算リソース124は、有線接続、無線接続、又は有線接続と無線接続の組み合わせを介して他の計算リソース124と通信することができる。
【0015】
図1にさらに示すように、計算リソース124は、1つ以上のアプリケーション(「APP」)124-1、1つ以上の仮想マシン(「VM」)124-2、仮想化ストレージ(「VS」)124-3、1つ以上のハイパーバイザ(「HYP」)124-4などのクラウドリソースのグループを含む。
【0016】
アプリケーション124-1は、ユーザデバイス110及び/又はプラットフォーム120に提供され、あるいはユーザデバイス110及び/又はプラットフォーム120によりアクセスされ得る1つ以上のソフトウェアアプリケーションを含む。アプリケーション124-1は、ユーザデバイス110上でソフトウェアアプリケーションをインストール及び実行する必要を排除し得る。例えば、アプリケーション124-1は、プラットフォーム120に関連づけられたソフトウェア、及び/又はクラウドコンピューティング環境122を介して提供することができる任意の他のソフトウェアを含んでもよい。いくつかの実装において、1つのアプリケーション124-1が、仮想マシン124-2を介して、1つ以上の他のアプリケーション124-1に/から、情報を送信/受信することができる。
【0017】
仮想マシン124-2は、物理マシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装を含む。仮想マシン124-2は、仮想マシン124-2による任意の実マシンへの対応の使用法及び度合いに応じて、システム仮想マシン又はプロセス仮想マシンのいずれかでもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供することができる。プロセス仮想マシンは、単一のプログラムを実行することができ、単一のプロセスをサポートすることができる。いくつかの実装において、仮想マシン124-2は、ユーザ(例えば、ユーザデバイス110)のために実行することができ、データ管理、同期、長時間のデータ転送などの、クラウドコンピューティング環境122のインフラストラクチャを管理することができる。
【0018】
仮想化ストレージ124-3は、計算リソース124のストレージシステム又はデバイス内で仮想化技術を使用する1つ以上のストレージシステム及び/又は1つ以上のデバイスを含む。いくつかの実装において、ストレージシステムの文脈内で、仮想化のタイプは、ブロック仮想化とファイル仮想化を含む場合がある。ブロック仮想化は、論理ストレージの、物理ストレージからの抽象化(又は、分離)を指すことができ、それにより、ストレージシステムは、物理ストレージ又は異種の構造に関係なくにアクセスされ得る。この分離は、ストレージシステムの管理者に、管理者が如何にしてエンドユーザに対するストレージを管理するかの柔軟性を許容する場合がある。ファイル仮想化は、ファイルレベルでアクセスされるデータとファイルが物理的に記憶されている位置との間の依存関係を排除することができる。これは、ストレージ使用の最適化、サーバ統合、及び/又は無停止のファイル移行の実行を可能にする場合がある。
【0019】
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)を計算リソース124などのホストコンピュータ上で同時に実行することを可能にするハードウェア仮想化技術を提供することができる。ハイパーバイザ124-4は、ゲストオペレーティングシステムに仮想オペレーティングシステムプラットフォームを提示することができ、ゲストオペレーティングシステムの実行を管理することができる。様々なオペレーティングシステムの複数のインスタンスが、仮想化されたハードウェアリソースを共有する場合がある。
【0020】
ネットワーク130は、1つ以上の有線及び/又は無線ネットワークを含む。例えば、ネットワーク130は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(long-term evolution、LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(code division multiple access、CDMA)ネットワークなど)、公衆陸上移動体通信網(public land mobile network、PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話ネットワーク(例えば、公衆交換電話網(Public Switched Telephone Network、PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバーベースのネットワークなど、及び/又はこれら又は他のタイプのネットワークの組み合わせを含んでもよい。
【0021】
図1に示すデバイス及びネットワークの数及び配置は一例として提供されている。実際には、
図1に示すものに対してさらなるデバイス及び/又はネットワーク、より少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、あるいは別様に配置されたデバイス及び/又はネットワークが存在してもよい。さらに、
図1に示す2つ以上のデバイスが単一のデバイス内に実装されてもよく、あるいは、
図1に示す単一のデバイスが複数の分散されたデバイスとして実装されてもよい。さらに又は代わりに、環境100のデバイスのセット(例えば、1つ以上のデバイス)が、環境100の別のデバイスのセットにより実行されると説明されている1つ以上の機能を実行してもよい。
【0022】
図2は、
図1の1つ以上のデバイスの例示的なコンポーネントのブロック図である。デバイス200は、ユーザデバイス110及び/又はプラットフォーム120に対応することができる。
図2に示すように、デバイス200は、バス210、プロセッサ220、メモリ230、記憶コンポーネント240、入力コンポーネント250、出力コンポーネント260、及び通信インターフェース270を含むことができる。
【0023】
バス210は、デバイス200のコンポーネント間の通信を可能にするコンポーネントを含む。プロセッサ220は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせで実装される。プロセッサ220は、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、アクセラレーテッド処理ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は別のタイプの処理コンポーネントである。いくつかの実装において、プロセッサ220は、機能を実行するようにプログラムすることができる1つ以上のプロセッサを含む。メモリ230は、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、及び/又はプロセッサ220による使用のための情報及び/又は命令を記憶する別のタイプの動的又は静的ストレージデバイス(例えば、フラッシュメモリ、磁気メモリ、及び/又は光学メモリ)を含む。
【0024】
記憶コンポーネント240は、デバイス200の動作及び使用に関連する情報及び/又はソフトウェアを記憶する。例えば、記憶コンポーネント240は、ハードディスク(例えば、磁気ディスク、光ディスク、磁気光ディスク、及び/又はソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、及び/又は別のタイプの非一時的コンピュータ読取可能媒体を、対応するドライブとともに含んでもよい。
【0025】
入力コンポーネント250は、デバイス200がユーザ入力を介してなどで情報を受け取ることができるようにするコンポーネント(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、及び/又はマイクロフォン)を含む。さらに又は代わりに、入力コンポーネント250は、情報を感知するセンサ(例えば、全地球測位システム(GPS)コンポーネント、加速度計、ジャイロスコープ、及び/又はアクチュエータ)を含んでもよい。出力コンポーネント260は、デバイス200からの出力情報を提供するコンポーネント(例えば、ディスプレイ、スピーカー、及び/又は1つ以上の発光ダイオード(LED))を含む。
【0026】
通信インターフェース270は、デバイス200が有線接続、無線接続、又は有線接続と無線接続の組み合わせを介してなどで他のデバイスと通信することを可能にするトランシーバ様のコンポーネント(例えば、トランシーバ、及び/又は別個の受信機及び送信機)を含む。通信インターフェース270は、デバイス200が別のデバイスから情報を受信し、かつ/あるいは別のデバイスに情報を提供することができるようにする場合がある。例えば、通信インターフェース270は、イーサネットインターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波数(RF)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、Wi-Fiインターフェース、セルラーネットワークインターフェース等を含んでもよい。
【0027】
デバイス200は、本明細書に記載される1つ以上の処理を実行することができる。デバイス200は、プロセッサ220がメモリ230及び/又は記憶コンポーネント240などの非一時的コンピュータ読取可能媒体により記憶されたソフトウェア命令を実行することに応じて、これらの処理を実行してもよい。コンピュータ読取可能媒体は、本明細書において非一時的メモリデバイスとして定義される。メモリデバイスは、単一の物理ストレージデバイス内のメモリ空間、又は複数の物理ストレージデバイスにわたり広がるメモリ空間を含む。
【0028】
ソフトウェア命令は、通信インターフェース270を介して別のコンピュータが読取可能媒体から、又は別のデバイスから、メモリ230及び/又は記憶コンポーネント240に読み取ることができる。実行されたとき、メモリ230及び/又は記憶コンポーネント240に記憶されたソフトウェア命令は、プロセッサ220に、本明細書に記載される1つ以上の処理を実行させることができる。さらに又は代わりに、本明細書に記載される1つ以上の処理を実行するために、ソフトウェア命令の代わりに、又はソフトウェア命令と組み合わせて、ハードワイヤード回路が使用されてもよい。したがって、本明細書に記載される実装は、ハードウェア回路とソフトウェアの特定の組み合わせに限定されない。
【0029】
図2に示すコンポーネントの数及び配置は一例として提供されている。実際には、デバイス200は、
図2に示すものに対してさらなるコンポーネント、より少ないコンポーネント、異なるコンポーネント、又は別様に配置されたコンポーネントを含んでもよい。さらに又は代わりに、デバイス200のコンポーネントのセット(例えば、1つ以上のコンポーネント)が、デバイス200の別のコンポーネントのセットにより実行されると説明されている1つ以上の機能を実行してもよい。
【0030】
図3は、実施形態による、ビデオコーディングを実行するための例示的なアーキテクチャ300のブロック図である。実施形態において、アーキテクチャ300は、マシン向けビデオコーディング(VCM)アーキテクチャ、又は、その他の方法でVCMコーディングと互換性があり、若しくはVCMコーディングを実行するように構成されているアーキテクチャでもよい。例えば、アーキテクチャ300は、「Use cases and requirements for Video Coding for Machines」((ISO/IEC JTC 1/SC 29/WG 2 N18)、「Draft of Evaluation Framework for Video Coding for Machines」(ISO/IEC JTC 1/SC 29/WG 2 N19)、及び「Call for Evidence for Video Coding for Machines」((ISO/IEC JTC 1/SC 29/WG 2 N20)と互換性があってもよく、これらの開示は全体を参照により本明細書に組み込まれている。
【0031】
実施形態において、
図3に示される要素の1つ以上は、
図1~
図2に関して上記で論じた要素の1つ以上、例えば、ユーザデバイス110、プラットフォーム120、デバイス200、又はそこに含まれる要素のいずれかの1つ以上に対応し、あるいはそれらにより実現されてもよい。
【0032】
図3に見られるように、アーキテクチャ300は、VCMエンコーダ310及びVCMデコーダ320を含むことができる。実施形態において、VCMエンコーダは、センサ入力301を受信することができ、センサ入力301は、例えば、1つ以上の入力画像、又は入力ビデオを含んでもよい。センサ入力301は、センサ入力から特徴を抽出することができる特徴抽出モジュール311に提供することができ、抽出された特徴は、特徴変換モジュール312を使用して変換し、特徴符号化モジュール313を使用して符号化することができる。実施形態において、用語「符号化」は、用語「圧縮」を含む場合があり、これに対応する場合があり、あるいはこれと言い換え可能で用いられる場合がある。アーキテクチャ300は、インターフェース302を含むことができ、インターフェース302は、特徴抽出モジュール311が、特徴抽出の実行を支援し得るニューラルネットワーク(NN)とインターフェースすることを可能にし得る。
【0033】
センサ入力301は、ビデオ符号化モジュール314に提供することができ、ビデオ符号化モジュール314は、符号化されたビデオを生成することができる。実施形態において、特徴が抽出され、変換され、符号化された後、符号化された特徴は、ビデオ符号化モジュール314に提供することができ、ビデオ符号化モジュール314は、符号化されたビデオの生成を支援するために、符号化された特徴を使用することができる。実施形態において、ビデオ符号化モジュール314は、符号化されたビデオを、符号化されたビデオビットストリームとして出力することができ、特徴符号化モジュール313は、符号化された特徴を、符号化された特徴ビットストリームとして出力することができる。実施形態において、VCMエンコーダ310は、符号化されたビデオビットストリームと符号化された特徴ビットストリームの双方をビットストリームマルチプレクサ315に提供することができ、ビットストリームマルチプレクサ315は、符号化されたビデオビットストリームと符号化された特徴ビットストリームを組み合わせることにより、符号化されたビットストリームを生成することができる。
【0034】
実施形態において、符号化されたビットストリームは、ビットストリームデマルチプレクサ(demux)により受信される場合があり、ビットストリームデマルチプレクサは、符号化されたビットストリームを、符号化されたビデオビットストリーム及び符号化された特徴ビットストリームに分離することができ、これらは、VCMデコーダ320に提供することができる。符号化された特徴ビットストリームは、特徴復号モジュール322に提供することができ、特徴復号モジュール322は、復号された特徴を生成することができ、符号化されたビデオビットストリームは、ビデオ復号モジュールに提供することができ、ビデオ復号モジュールは、復号されたビデオを生成することができる。実施形態において、復号された特徴は、ビデオ復号モジュール323にさらに提供することができ、ビデオ復号モジュール323は、復号されたビデオの生成を支援するために、復号された特徴を使用することができる。
【0035】
実施形態において、ビデオ復号モジュール323と特徴復号モジュール322の出力は、主に、マシンの消費、例えば、マシンビジョンモジュール332に使用されてもよい。実施形態において、出力は、人間の消費にも使用することができ、
図3において人間の視覚331として示されている。クライアントエンドから、例えばVCMデコーダ320の側からの、VCMシステム、例えばアーキテクチャ300は、ビデオ復号を実行して、サンプルドメインのビデオを最初に取得することができる。次いで、ビデオコンテンツを理解するための1つ以上のマシンタスクを、例えば、マシンビジョンモジュール332により実行することができる。実施形態において、アーキテクチャ300は、インターフェース303を含むことができ、インターフェース303は、マシンビジョンモジュール332が、1つ以上のマシンタスクの実行を支援し得るNNとインターフェースすることを可能にし得る。
【0036】
図3に見られるように、ビデオ符号化モジュール314及びビデオ復号モジュール323を含むビデオ符号化及び復号パスの他に、アーキテクチャ300に含まれる別のパスは、特徴抽出、特徴符号化、及び特徴復号パスであり、これは、特徴抽出モジュール311、特徴変換モジュール312、特徴符号化モジュール313、及び特徴復号モジュール322を含む。これらのパスに関連する例を以下でより詳細に論じる。
【0037】
実施形態において、VCMエンコーダ310において、ソース画像又はソースビデオ、例えばセンサ入力301から抽出された特徴は、VCMデコーダ320において、又はマシンビジョンモジュール332において、マシンビジョンネットワークにより直接利用することができる。この場合、VCMデコーダ320において特徴抽出の必要がない場合がある。したがって、VCMエンコーダ310において、特に、特徴を複数のマシンビジョンタスクに対して使用することができる場合に、電力節減を達成することができる。
【0038】
入力画像又は入力ビデオから抽出された、特徴マップ、又は特徴マップ信号は、3次元配列として表すことができ、これはF
n,h,wで示されてもよく、ここで、n、h、wは非負の整数であり、0≦n<N、0≦h<H、0≦w<Wであり、Nは特徴チャネルの数を表し、Hは各特徴チャネルの高さを表し、Wは各特徴チャネルの幅を表す。
図4は、実施形態による例示的な特徴マップ400のブロック図である。
図4に見られるように、特徴マップ400は、n=0、n=1、n=2、...、n=N-1にそれぞれ対応するN個のチャネル400-1、400-2、400-3、...、400-nを含むことができる。
【0039】
実施形態において、Fn,h,wが浮動小数点数として表現されている場合、それらは、平均減算、スケーリング、及び量子化処理を通じて整数に変換されてもよい。ソース画像又はビデオと同様に、特徴マップは、VCMエンコーダ310で、例えば特徴符号化モジュール313を使用して、VCMデコーダ320に送信される前に、大きいデータボリュームに起因して圧縮されてもよい。したがって、特徴圧縮もVCMにおいて重要なトピックである。
【0040】
しかしながら、特徴マップFn,h,wでは、異なる特徴チャネルは異なる特性を示す場合がある。隣接する特徴チャネルは、必ずしも類似又は高度に相関しているわけではない。したがって、類似の又は相関した特徴チャネルが、より良好な圧縮効率のために互いに隣接して配置されるように、特徴マップ内の特徴チャネルを再順序付けする(reorder)ことが望ましい場合がある。したがって、本開示の実施形態は、特徴圧縮のために特徴チャネルを再順序付けする方法及び対応するシグナリング方法に関連し得る。
【0041】
実施形態において、特徴マップ内の特徴チャネルは、各特徴チャネルの特性に基づいて再順序付けすることができる。例えば、特徴マップ内の各特徴チャネルの平均又は分散が計算されてもよく、特徴チャネルは、計算された特徴チャネル平均又は特徴チャネル分散に基づいて、例えば、特徴チャネル平均又は特徴チャネル分散の増加又は減少順、又は任意の他の統計ベースの基準に基づいて再順序付けされてもよい。平均は、特徴チャネルの1次モーメントと見なされてもよく、分散は、特徴チャネルの2次モーメントと見なされてもよい。実施形態において、より高次のモーメント、例えば3次モーメントが、特徴チャネルを再順序付けするためにさらに使用されてもよい。
【0042】
実施形態において、特徴マップ内の特徴チャネルは、特徴チャネル間の類似度を測定するメトリックに基づいて再順序付けされてもよい。例えば、第iの特徴チャネルと第jの特徴チャネルなどの特徴チャネルのペア間で、相関係数を計算することができる。実施形態において、相関係数は、特徴チャネルのペアの共分散と特徴チャネルのペアの標準偏差の積との間の比率に対応することができる。
【0043】
実施形態において、相関係数は、以下の式1に示すように算出されてもよい。
【数1】
【0044】
式1において、ρi,jは、第iの特徴チャネルと第jの特徴チャネルとの間の相関係数を表すことができ、μiは、第iの特徴チャネルの平均を表すことができ、μjは、第jの特徴チャネルの平均を表すことができ、σiは、第iの特徴チャネルの標準偏差を表すことができ、σjは、第jの特徴チャネルの標準偏差を表すことができる。
【0045】
ペアワイズ(pair-wise)特徴チャネル相関係数を計算した後、1つ以上のアンカー特徴チャネル、例えばK個のアンカー特徴チャネルを選択することができ、特徴チャネルの残りは、K個のアンカー特徴チャネルとの間のそれらの相関係数に基づいてクラスタリングすることができる。例えば、K個のアンカー特徴チャネルは、a(k)、k=0,...,K-1で示されてもよく、ここで、a(k)は、第kのアンカー特徴チャネルの特徴チャネルインデックスを表す。mが集合{a(0),a(1),...,a(K-1)}の中にない場合の、第mの特徴チャネルが、a(1)、...、a(k-1)、a(k+1)、...、a(K-1)との間のその相関係数と比較して、a(k)との間で最大の相関係数を有する場合、第mの特徴チャネルは、a(k)のクラスタの一部として分類することができる。各クラスタ内で、特徴チャネルは、特徴チャネル平均又は分散などの特徴チャネル特性に基づいてソートすることができる。クラスタは、クラスタ平均又は分散に基づいてソートされてもよく、あるいはa(k)、k=1,...,K-1とa(0)との間の相関係数に基づいてソートされてもよく、ここで、a(0)のクラスタは、一般性を失うことなく、始めに配置されている。
【0046】
実施形態において、K個のアンカー特徴チャネルを選択するために、様々な方法を使用することができる。例えば、N個の特徴チャネルが平均又は分散などの特徴チャネル特性に基づいてソートされている場合、K個の特徴チャネルとして、N/K番目ごとの特徴チャネルが選択されてもよい。実施形態において、上記のクラスタリング方法とは別に、他のクラスタリング方法、例えば、相関距離に基づく階層的クラスタリング方法が使用されてもよい。
【0047】
実施形態において、各特徴チャネルについて、特徴チャネルの、他の特徴チャネルの全てとの間の相関係数を合算して、合計相関係数を得ることができる。次いで、全ての特徴チャネルは、合計相関係数に基づいて、例えば減少順又は増加順に再順序付けすることができる。
【0048】
実施形態において、特徴チャネルを再順序付けするために、ルビーン検定(Levene Test)又はKLダイバージェンス(KL divergence)などの他の特徴チャネル類似度メトリックが使用されてもよい。
【0049】
VCMエンコーダ310において、特徴チャネルは上記で論じたように再順序付けすることができ、再順序付けされた特徴チャネルは、ビデオコーディング手法、例えば、高効率ビデオコーディング(high efficiency video coding、HEVC)、汎用ビデオコーディング(versatile video coding、VVC)、又は所望される任意の他のビデオコーディング手法を使用して圧縮することができる。コーディングされたビットストリームの他に、特徴マップにおける特徴チャネルの順序に関する情報をシグナリングして、VCMデコーダ320が、特徴チャネルの全てが復号された後に特徴チャネルの元の順序を回復することを可能にすることができる。
【0050】
実施形態において、再順序付けされた特徴チャネルの順序に関する情報は、{P(0),P(1),...,P(N-1)}として示される、N個の特徴チャネルに対応する数字{0,1,...,N-1}の順列シーケンス(permutation sequence)を使用して明示的にシグナリングすることができ、ここで、k=0,1,...,N-1に対するP(k)は、再順序付けする前の特徴マップにおけるその元の順序を示す。
【0051】
実施形態において、元の位置に対してそれらの位置を変更する特徴チャネルのみに関する情報がシグナリングされてもよい。例えば、再順序付けされた特徴マップにおける第kの特徴チャネルは、その元の順序において第P(k)の特徴チャネルであり得る。この場合、ペア(k,P(k))を示す情報をビットストリームにおいてシグナリングすることができる。位置を変更する特徴チャネルの部分が大きくないとき、位置を変更する特徴チャネルの値のペアに関する情報のシグナリングは、ビット節約の観点からより効率的である場合がある。
【0052】
実施形態において、再順序付けされた特徴チャネルについて、元の位置と新しい位置との間の差値がシグナリングされてもよい。例えば、k=0,1,...,N-1に対する{k-P(k)}を示す情報が、ビットストリーム内でシグナリングされてもよい。特徴チャネルの大部分が位置を変更しない場合、対応するk-P(k)=0であり、これは、より少ないビットを使用してビットストリーム内で再順序付け関係をシグナリングする場合がある。
【0053】
実施形態において、再順序付けされた特徴チャネルの順序は、暗黙的にシグナリングされてもよい。例えば、特徴マップ内のソース特徴チャネルをソートするために特徴チャネル平均が使用される場合、各特徴チャネルの平均値をビットストリームにおいて元の順序でシグナリングすることができる。次いで、VCMデコーダ320は、平均値をソートして、特徴チャネルが如何にして再順序付けされたかを判断することができる。実施形態において、特徴チャネルをソートするために分散又は別のメトリックが使用される場合、同様の方法を適用することができる。
【0054】
上記で論じたように、特徴マップ内の特徴チャネルは、ソートされ、エンコーダ、例えば特徴符号化モジュール313に供給され、このエンコーダは次いで、そのアルゴリズムに基づいて所与の特徴チャネルに対する参照特徴チャネルを決定することができる。実施形態において、特徴チャネルは、HEVC、VVCなどの2次元ビデオコーデックによりコーディングされるとき、ピクチャとして扱うことができる。例えば、特徴符号化モジュール313は、最初に特徴チャネルを1つ以上のピクチャグループ(group of pictures、GOP)構造に分割し、階層的参照ピクチャリストなどの、GOP内の1つ以上の参照ピクチャリストを構築することができる。
【0055】
実施形態において、特徴符号化モジュール313は、上述した特徴チャネル類似度メトリックに基づいて、所与の特徴チャネルに対する1つ以上の参照特徴チャネルを決定してもよい。例えば、符号化する前、全ての特徴チャネルは、元の順序にあり、あるいは平均又は分散などの特徴チャネル特性に基づいて再順序付けされている場合がある。符号化処理の間、特徴符号化モジュール313は、依然として特徴チャネルをGOPに分割し、あるいは全ての特徴チャネルを1つのGOPとして扱うことができる。GOP内では、より大きい合計特徴チャネル係数を有する特徴チャネルが最初に符号化されてもよい。コーディングされる特徴チャネルに対する参照特徴チャネルを選択するとき、比較的大きい類似度メトリックを有する特徴チャネルのみが選ばれてもよい。選択されたコーデックは、その独自の標準準拠の方法を使用して、参照ピクチャリストの再順序付け結果をシグナリングすることができる。
【0056】
実施形態において、エンコーダは、上述したK個のクラスタをK個のGOPとして扱い、それらを独立して符号化することができ、なぜならば、異なるクラスタ内の特徴チャネルはより類似しない可能性があり、他のクラスタ内の特徴チャネルを参照する利点はより少ない可能性があるためである。
【0057】
図5は、特徴圧縮を実行するための例示的なプロセス500のフローチャートである。いくつかの実装において、
図5の1つ以上の処理ブロックは、上記で論じた要素のいずれか、例えば、VCMエンコーダ310、又はその中に含まれる要素、例えば特徴抽出モジュール311、特徴変換モジュール312、又は特徴符号化モジュール313などにより実行することができる。
【0058】
図5に示すように、プロセス500は、入力ビデオを取得すること(ブロック502)を含むことができる。
【0059】
さらに
図5に示すように、プロセス500は、入力ビデオに対応する特徴マップを取得すること(ブロック504)を含んでもよい。実施形態において、特徴マップは、複数の特徴チャネルを含むことができる。
【0060】
図5にさらに示すように、プロセス500は、複数の特徴チャネルの少なくとも1つの特性に基づいて複数の特徴チャネルを再順序付けすることを含んでもよい(ブロック506)。
【0061】
図5にさらに示すように、プロセス500は、再順序付けされた複数の特徴チャネルを圧縮すること(ブロック508)を含んでもよい。実施形態において、再順序付けされた複数の特徴チャネルの圧縮は、複数の特徴チャネルを符号化することを含み、あるいはそれに対応することができる。
【0062】
図5にさらに示すように、プロセス500は、再順序付けされ及び圧縮された複数の特徴チャネルに基づいて符号化されたビットストリームを生成すること(ブロック510)を含んでもよい。
【0063】
実施形態において、少なくとも1つの特性は、複数の特徴チャネルの平均、複数の特徴チャネルの分散、及び複数の特徴チャネルの類似度のうちの少なくとも1つを含むことができる。実施形態において、類似度は、複数の特徴チャネルのうちの2つの特徴チャネル間の相関係数に基づいて決定されてもよく、相関係数は、2つの特徴チャネルの共分散と2つの特徴チャネルの標準偏差の積との間の比率に対応することができる。
【0064】
実施形態において、2つの特徴チャネルは、複数の特徴チャネルのうちの第iの特徴チャネルと第jの特徴チャネルを含むことができ、相関係数は、上記の式1に従って算出されてもよい。
【0065】
実施形態において、複数の特徴チャネルは、少なくとも1つのピクチャグループにソートされてもよく、符号化されたビットストリームを生成するために使用される少なくとも1つの参照ピクチャは、相関係数に基づいて選択されてもよい。
【0066】
実施形態において、再順序付けは、複数の特徴チャネルの中から少なくとも1つのアンカー特徴チャネルを選択することと、少なくとも1つのアンカー特徴チャネルに基づいて、複数の特徴チャネルの中からの残りの特徴チャネルを少なくとも1つのクラスタにクラスタリングすることを含むことができる。
【0067】
実施形態において、再順序付けは、少なくとも1つのクラスタ内の残りの特徴チャネルを、残りの特徴チャネルの平均、残りの特徴チャネルの分散、及び残りの特徴チャネルの類似度の中からの少なくとも1つに基づいて順序付けすることをさらに含んでもよい。
【0068】
実施形態において、再順序付けは、複数の特徴チャネルの各特徴チャネルの合計相関係数を計算することと、合計相関係数に基づいて複数の特徴チャネルを順序付けすることを含んでもよい。
【0069】
実施形態において、プロセス500は、符号化されたビットストリームにおいて再順序付けされた複数の特徴チャネルの順序をシグナリングすることをさらに含むことができる。
【0070】
実施形態において、順序は、再順序付けされた複数の特徴チャネル内で位置を変更した特徴チャネルを示すことによりシグナリングされてもよい。
【0071】
実施形態において、順序は、暗黙的にシグナリングされてもよい。
【0072】
図5はプロセス500の例示的なブロックを示しているが、いくつかの実装において、プロセス500は、
図5に示すものに対してさらなるブロック、より少ないブロック、異なるブロック、又は別様に配置されたブロックを含んでもよい。さらに又は代わりに、プロセス500のブロックの2つ以上が並列に実行されてもよい。
【0073】
さらに、提案された方法は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)により実施されてもよい。一例において、1つ以上のプロセッサは、提案された方法の1つ以上を実行するために、非一時的コンピュータ読取可能媒体に記憶されているプログラムを実行する。
【0074】
上述した手法は、コンピュータ読取可能命令を使用してコンピュータソフトウェアとして実施され、1つ以上のコンピュータ読取可能媒体に物理的に記憶されてもよい。
【0075】
本開示の実施形態は、別個に使用されてもよく、あるいは任意の順序で組み合わせられてもよい。さらに、実施形態(及び、その方法)の各々は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)により実施されてもよい。一例において、1つ以上のプロセッサは、非一時的コンピュータ読取可能媒体に記憶されているプログラムを実行する。
【0076】
前述の開示は例示及び説明を提供しているが、網羅的であること、又は実装を開示された正確な形式に限定することを意図するものではない。修正及び変形が上記の開示を考慮して可能であり、あるいは実装の実践から得られる可能性がある。
【0077】
本明細書で用いられるとき、用語のコンポーネントは、ハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせとして広く解釈されることを意図している。
【0078】
特徴の組み合わせが特許請求の範囲に記載され、かつ/あるいは明細書に開示されているとしても、これらの組み合わせは、可能な実装の開示を限定することを意図するものではない。実際、これらの特徴の多くは、具体的に特許請求の範囲に記載されていない方法、及び/又は明細書に開示されていない方法で組み合わせることができる。以下に列挙されている各従属請求項は、1つの請求項のみに直接従属している場合があるが、可能な実装の開示は、各従属請求項をクレームセット内のあらゆる他の請求項と組み合わせたものを含む。
【0079】
本明細書で用いられている要素、動作、又は命令は、そのように明示的に記述されていない限り、クリティカル又は必須であると解釈されるべきではない。また、本明細書で用いられるとき、冠詞「一の」(「a」及び「an」)は、1つ以上の項目を含むことを意図しており、「1つ以上」と言い換え可能で用いられる場合がある。さらに、本明細書で用いられるとき、用語「セット」は、1つ以上の項目(例えば、関連する項目、無関係な項目、関連する項目と無関係な項目の組み合わせなど)を含むことを意図しており、「1つ以上」と言い換え可能で用いられる場合がある。1つの項目のみが意図されている場合、用語「1つの」又は類似の言語が用いられる。また、本明細書で用いられるとき、用語「有する(has)」、「有する(have)」、「有している(having)」などは、無制限の用語であることを意図している。さらに、フレーズ「に基づく」は、別段明示的に示されない限り、「に少なくとも部分的に基づく」を意味することを意図している。