本願の明細書、請求項、及び添付の図面では、用語「第1」、「第2」、等は、同様のオブジェクトを区別することを意図しており、必ずしも特定の順序又はシーケンスを示さない。理解されるべきことに、そのような方法で使用される用語は、適正な環境において交換可能であり、これは単に、同じ属性を有するオブジェクトが本願の実施形態で説明されるときに使用される区別の方法である。更に、用語「含む」、「有する」、及び任意の他の変形は非排他的包含をカバーすることを意味し、ユニットのシリーズを含む処理、方法、システム、プロダクト、又は装置は、それらのユニットに限定されず、明示的にリストされない又はそのような処理、方法、システム、プロダクト、又は装置に固有である他のユニットを含んでよい。
以下は、添付の図面を参照して、本願の実施形態を説明する。当業者は技術が進化し新しいシナリオが出現するとき、本願の実施形態において提供される技術的ソリューションが同様の技術的問題にも適用可能であることを理解し得る。
まず、人工知能システムの全体的な動作手順を説明する。図1Aは、人工知能の主な枠組みの構造の概略図である。以下では、人工知能の主な枠組みを「インテリジェント情報チェーン」(横軸)と「ITバリューチェーン」(縦軸)の2つの次元から説明する。「インテリジェント情報チェーン」には、データの取得から処理までの一連の処理が反映されている。例えば、処理は、インテリジェントな情報知覚、インテリジェントな情報の表現と形成、インテリジェントな推論、インテリジェントな意思決定、インテリジェントな実行と出力の一般的な処理である可能性がある。これらの処理では、データは「データ-情報-知識-インテリジェンス」の洗練処理を経る。「ITバリューチェーン」は、基盤となるインフラや人間の知覚の情報(実装を提供し処理する技術)からシステムの産業生態学的処理に至るまで、人工知能が情報技術産業にもたらした価値を反映している。
(1)インフラ
インフラは、人工知能システムのコンピューティング能力をサポートし、外部との通信を実装し、基本的なプラットフォームを使用してサポートを実装する。インフラは、センサを使用して外部と通信する。計算能力はスマートチップによって提供される。例えば、スマートチップには、中央処理装置(central processing unit, CPU)、ニューラルネットワーク処理装置(neural network processing unit, NPU)、グラフィックス処理装置(graphics processing unit, GPU)、特定用途向け集積回路(application-specific integrated circuit, ASIC)、又はフィールドプログラマブルゲートアレイ(field programmable gate array, FPGA)などのハードウェアアクセラレーションチップが含まれる。基本プラットフォームには、クラウドストレージとコンピューティング、相互接続ネットワークなどを含む保証とサポートのための関連プラットフォーム、例えば分散コンピューティングフレームワークとネットワークが含まれる。例えば、センサは外部と通信してデータを取得し、そのデータはコンピューティングのために基本プラットフォームによって提供される分散コンピューティングシステムのスマートチップに提供される。
(2)データ
インフラの上位層にあるデータは、人工知能分野のデータソースを示す。データは、グラフ、写真、音声、テキストに関連し、さらに従来のデバイスのIoT(Internet of things)データに関連し、既存システムのサービスデータと、力、変位、液面、温度、湿度などの知覚データを含む。
(3)データ処理
データ処理には通常、データトレーニング、機械学習、深層学習、検索、推論、又は意思決定などの方法が含まれる。
機械学習と深層学習は、データに対してシンボリックで形式化された知的情報モデリング、抽出、前処理、トレーニングなどを実行することを意味する場合がある。
推論は、人間の知的な推論方法をコンピュータやインテリジェントシステムでシミュレートし、推論制御ポリシに従って形式的な情報を用いて機械的な思考や問題解決を行う処理である。代表的な機能は検索とマッチングである。
意思決定は、知的な情報を推測した上で意思決定を行う処理であり、通常は分類、ランク付け、予測などの機能を提供する。
(4)一般的な能力
上記のデータ処理をデータに対して行った後、翻訳、テキスト解析、コンピュータビジョン処理、音声認識、画像認識など、アルゴリズムや一般的なシステムなどのデータ処理結果に基づいて、さらに幾つかの一般的な能力が形成されることがある。
(5)スマート製品及び産業用アプリケーション
スマート製品及び産業用アプリケーションは、様々な分野における人工知能システムの製品及びアプリケーションであり、人工知能の全体的なソリューションのパッケージであるため、知的情報の意思決定が製品化され、アプリケーションが実装される。アプリケーション分野には、主にスマート端末、スマート製造、スマート交通、スマートホーム、スマートヘルスケア、スマートセキュリティ保護、自動運転、スマートシティなどがある。
本願の実施形態は、主に、上記の様々なアプリケーション分野において、ビデオのビデオフレームに対して符号化/復号を行う必要があるシナリオに適用される。具体的には、ソリューションの適用シナリオをより直感的に理解するために、図1Bは、本願の実施形態によるビデオフレーム圧縮方法及びビデオフレーム伸長方法の適用シナリオの図である。図1Bを参照する。例えば、クライアントのアルバムに動画が格納されている場合、アルバム内のビデオをクラウドサーバに送信するための要件が格納される。次に、クライアント(すなわち、エンコーダ)がAI技術を用いてビデオフレームに圧縮符号化を行い、各ビデオフレームに対応する圧縮情報を取得する場合がある。各ビデオフレームに対応する圧縮情報はクラウドサーバに送信される。これに対応して、クラウドサーバ(すなわち、デコーダ)はAI技術を用いて伸長を行い、ビデオフレームの再構成フレームを得ることができる。図1Bの例は、単にソリューションを理解しやすくするためのものであり、ソリューションを限定するものではないことを理解すべきである。
別の例では、スマートシティ分野では、モニタは収集したビデオを管理センタに送信する必要がある。ビデオを管理センタに送信する前に、モニタ(すなわち、エンコーダ)はビデオのビデオフレームを圧縮する必要がある。これに対応して、管理センタ(すなわち、デコーダ)はビデオのビデオフレームを伸長して、ビデオフレームを取得する必要がある。
別の例として、ソリューションの適用シナリオをより直感的に理解するために、図1Cは、本願の実施形態によるビデオフレーム圧縮方法及びビデオフレーム伸長方法の別の適用シナリオの図である。図1Cは、本願の実施形態を生放送シナリオに適用する例を用いて説明される。アンカーはクライアントを使用してビデオを収集し、クライアントは収集したビデオをサーバに送信する必要があり、サーバはビデオをユーザに配信する。クライアント(すなわち、エンコーダ)がビデオをサーバに送信する前に、AI技術を使用してビデオのビデオフレームに対して圧縮符号化を実行する必要がある。これに対応して、クライアント(すなわち、デコーダ)はAI技術を用いて伸長を行い、ビデオフレームの再構成フレームを得ることができる、等である。図1Cの例は、単にソリューションを理解しやすくするためのものであり、ソリューションを限定するものではないことを理解すべきである。
なお、この例は、本願の実施形態の適用シナリオを理解しやすくするためのものであり、本願の実施形態の適用シナリオは列挙されていない。
本願の実施形態では、AI技術(すなわち、ニューラルネットワーク)を用いてビデオフレーム上で圧縮符号化及び伸長を行う。したがって、本願の実施形態には、ニューラルネットワークの推論フェーズとニューラルネットワークのトレーニングフェーズが含まれる。ニューラルネットワークの推論フェーズとニューラルネットワークのトレーニングフェーズの処理は異なる。以下では、推論フェーズとトレーニングフェーズについて個別に説明する。
1.推論フェーズ
上記の説明から、本願の実施形態で提供されている圧縮符号化方法及び伸長方法では、エンコーダが圧縮符号化を行い、デコーダが伸長を行うことが分かる。以下では、エンコーダとデコーダの動作を分けて説明する。また、エンコーダに複数のニューラルネットワークを構成する場合、現在のビデオに対応した目標圧縮情報をエンコーダが生成する処理について説明する。実装では、エンコーダは、まずネットワーク選択ポリシに従って複数のニューラルネットワークから目標ニューラルネットワークを決定し、目標ニューラルネットワークを使用して現在のビデオフレームに対応した目標圧縮情報を生成する。別の実装では、エンコーダは、複数のニューラルネットワークを使用して現在のビデオフレームの複数の圧縮情報を個別に生成し、生成された複数の圧縮情報に基づいて現在のビデオフレームに対応した目標圧縮情報を決定する。前述の2つの実装は実装手順が異なるため、以下では2つの実装について個別に説明する。
1.エンコーダは、先ず、複数のニューラルネットワークから目標ニューラルネットワークを選択する。
本願の幾つかの実施例では、エンコーダは、先ず、ネットワーク選択ポリシに従って複数のニューラルネットワークから、現在のビデオフレームを処理するために使用される目標ニューラルネットワークを選択する。このソリューションをより直感的に理解するために、図2は、本願の実施形態によるビデオフレーム圧縮方法の原理の概略図である。図2に示すように、エンコーダは、現在のビデオシーケンス内の任意のビデオフレーム(すなわち、図2の現在のビデオフレーム)について、ネットワーク選択ポリシに従って複数のニューラルネットワークから目標ニューラルネットワークを選択し、目標ニューラルネットワークを使用して現在のビデオフレームに対して圧縮符号化を実行し、現在のビデオフレームに対応する目標圧縮情報を取得する。図2の例は、単にソリューションを理解しやすくするためのものであり、ソリューションを限定するものではないことを理解すべきである。具体的に、図3は、本願の実施形態によるビデオフレーム圧縮方法の概略フローチャートである。本願の実施形態によるビデオフレーム圧縮方法は、以下のステップを含むことができる:
301:エンコーダがネットワーク選択ポリシに従って複数のニューラルネットワークから目標ニューラルネットワークを決定する。
本願の実施形態では、エンコーダ用に複数のニューラルネットワークを構成する。複数のニューラルネットワークは、少なくとも第1ニューラルネットワーク、第2ニューラルネットワーク、又は圧縮を実行するために使用される別のニューラルネットワークを含む。第1ニューラルネットワーク、第2ニューラルネットワーク、及び別の種類のニューラルネットワークは、すべてトレーニングされたニューラルネットワークである。エンコーダは、現在のビデオシーケンス内の任意のビデオフレームを処理するとき、ネットワーク選択ポリシに従って複数のニューラルネットワークから目標ニューラルネットワークを決定し、目標ニューラルネットワークを使用して現在のビデオフレームに対して圧縮符号化を実行し、現在のビデオフレームに対応する目標圧縮情報を取得することができる。目標圧縮情報は、エンコーダが最終的にデコーダに送信することを決定した圧縮情報である。つまり、目標圧縮情報は、複数のニューラルネットワークの中の1つの目標ニューラルネットワークによって生成される。
なお、本願の以降の実施形態では、複数のニューラルネットワークに第1ニューラルネットワークと第2ニューラルネットワークのみが含まれる例を用いて説明する。複数のニューラルネットワークに3つ以上のニューラルネットワークが含まれる場合については、本願の実施形態における複数のニューラルネットワークに第1ニューラルネットワークと第2ニューラルネットワークが含まれる場合の説明を参照のこと。詳細は、本願の本実施形態において再び説明されない。
ビデオ符号化は通常、ビデオ又はビデオシーケンスを形成するピクチャシーケンスを処理することを意味する。ビデオ符号化の分野では、「ピクチャ(picture)」、「ビデオフレーム(frame)」、又は「画像(image)」という用語が同義語として使用される場合がある。ビデオ符号化はソース側で行われ、通常は、ビデオフレームを表すために必要なデータ量を減らすために、元のビデオフレームの処理(例えば圧縮)が含まれる(したがって、記憶及び/又は送信の効率を向上する)。ビデオ復号は、宛先側で実行され、通常、ビデオフレームを再構成するために、エンコーダと比べたとき逆の処理を含む。符号化部及び復号部は、符号化/復号(encoding and decoding, CODEC)とも呼ばれる。
ネットワーク選択ポリシが、現在のビデオフレームの位置情報又は現在のビデオフレームで運ばれるデータ量のいずれか1つ以上に関連する。
具体的には、以下は、ネットワーク選択ポリシに従って複数のニューラルネットワークから目標ニューラルネットワークを選択する処理について説明する。実装では、ステップ301は以下を含むことができる:エンコーダは、現在のビデオシーケンス内の現在のビデオフレームの位置情報を取得することができ、位置情報は、現在のビデオフレームが現在のビデオシーケンス内の第Xフレームであることを示し、ネットワーク選択ポリシに従って、第1ニューラルネットワークと第2ニューラルネットワークを含む複数のニューラルネットワークから、現在のビデオシーケンスの位置情報に対応する目標ニューラルネットワークを選択することができる。
現在のビデオシーケンス内の現在のビデオフレームの位置情報は、インデックス番号として具体的に表される場合があり、インデックス番号は文字列として具体的に表される場合がある。例えば、現在のビデオフレームのインデックス番号は、具体的には00000223、00000368、又は別の文字列である場合があり、ここでは列挙されない。
ネットワーク選択ポリシは、特定のルールに従って、第1ニューラルネットワーク又は第2ニューラルネットワークを交互に選択する場合がある。つまり、エンコーダは、第1ニューラルネットワークを使用して現在のビデオフレームのn個のビデオフレームに対して圧縮符号化を実行し、次に、第2ニューラルネットワークを使用して現在のビデオフレームのm個のビデオフレームに対して圧縮符号化を実行する。代替として、第2ニューラルネットワークを使用して現在のビデオフレームのm個のビデオフレームに対して圧縮符号化を実行した後、エンコーダは、第1ニューラルネットワークを使用して現在のビデオフレームのn個のビデオフレームに対して圧縮符号化を実行する。nとmの両方の値は1以上の整数であってもよく、nとmの値は同じであっても異なっていてもよい。
例えば、nとmの値が1の場合、ネットワーク選択ポリシは、第1ニューラルネットワークを使用して現在のビデオシーケンスの奇数フレームに圧縮符号化を実行し、第2ニューラルネットワークを使用して現在のビデオシーケンスの偶数フレームに圧縮符号化を実行することができる。代替として、ネットワーク選択ポリシは、第2ニューラルネットワークを使用して現在のビデオシーケンスの奇数フレームに圧縮符号化を実行し、第1ニューラルネットワークを使用して現在のビデオシーケンスの偶数フレームに圧縮符号化を実行することができる。別の例では、例えばnの値は1で、mの値は3である。ネットワーク選択ポリシは、第1ニューラルネットワークを使用して現在のビデオシーケンスの1つのビデオフレームで圧縮符号化が実行された後、第2ニューラルネットワークを使用して現在のビデオシーケンスの3つの連続するビデオフレームで圧縮符号化が実行するなどである。これは、ここでは列挙されない。
より直感的にソリューションを理解するために、図4は、本願の実施形態によるビデオフレーム圧縮方法における現在のビデオフレームの位置と使用されている目標ニューラルネットワークとの対応の概略図である。図3は、nの値を1、mの値を3とした例を用いて説明される。図4に示すように、第1ニューラルネットワークを用いて第tビデオフレームで圧縮符号化を行った後、エンコーダは、第2ニューラルネットワークを用いて、第(t+1)ビデオフレーム、第(t+2)ビデオフレーム、及び第(t+3)ビデオフレームで別々に圧縮符号化を行い、別の時間に、第1ニューラルネットワークを用いて、第(t+4)ビデオフレームで圧縮符号化を行う。つまり、第1ニューラルネットワークを用いて1つの現在のビデオフレームで圧縮符号化を行った後、第2ニューラルネットワークを用いて3つの現在のビデオフレームで圧縮符号化を行う。図4の例は、単にソリューションを理解しやすくするためのものであり、ソリューションを限定するものではないことを理解すべきである。
別の実装では、ステップ301は以下を含むことができる:エンコーダは、現在のビデオフレームの属性を取得し、第1ニューラルネットワークと第2ニューラルネットワークから目標ニューラルネットワークを選択する。現在のビデオフレームの属性は、現在のビデオフレームで伝送されるデータ量を示し、現在のビデオフレームの属性には、現在のビデオフレームのエントロピー、コントラスト、彩度、及び別の種類の属性のいずれか又は任意の組み合わせが含まれる。これは、ここでは列挙されない。
さらに、現在のビデオフレームのエントロピーが大きいほど、現在のビデオフレームで運ばれるデータ量が大きいこと、及び目標ニューラルネットワークが第2ニューラルネットワークである確率が大きいことを示している。現在のビデオフレームのエントロピーが小さいほど、目標ニューラルネットワークが第2ニューラルネットワークである確率が小さいことを示している。現在のビデオフレームのコントラストが大きいほど、現在のビデオフレームで運ばれるデータ量が大きいこと、及び目標ニューラルネットワークが第2ニューラルネットワークである確率が大きいことを示している。現在のビデオフレームのコントラストが小さいほど、目標ニューラルネットワークが第2ニューラルネットワークである確率が小さいことを示している。
本願のこの実装では、現在のビデオシーケンスにおける現在のビデオフレームの位置情報に基づいて、複数のニューラルネットワークから目標ニューラルネットワークを選択する。代替として、現在のビデオの少なくとも1つの属性に基づいて、目標ニューラルネットワークを複数のニューラルネットワークから選択し、目標ニューラルネットワークを使用して現在のビデオフレームの圧縮情報を生成することもできる。これにより、簡易且つ操作が容易な複数の実装ソリューションが提供され、ソリューションの実装の柔軟性が向上する。
別の実装では、エンコーダは、目標ニューラルネットワークとして第1ニューラルネットワーク又は第2ニューラルネットワークのいずれかを選択し、目標ニューラルネットワークを使用して現在のビデオフレームの目標圧縮情報を生成することができる。任意的に、エンコーダは、第1ニューラルネットワークの第1選択確率と第2ニューラルネットワークの第2選択確率を別々に構成することができ、第2選択確率の値が第1選択確率の値以上であり、第1選択確率と第2選択確率に基づいて目標ニューラルネットワークを選択することができる。例えば、第1選択確率の値は0.2、第2選択確率の値は0.8である。別の例では、第1選択確率の値は0.3、第2選択確率の値は0.7である。第1選択確率と第2選択確率の値はここでは列挙しない。
302:エンコーダは、現在のビデオフレームに対して、目標ニューラルネットワークを使用して圧縮符号化を行い、現在のビデオフレームに対応する目標圧縮情報を取得する。
本願のこの実施形態では、目標ニューラルネットワークは、第1ニューラルネットワーク、第2ニューラルネットワーク、ビデオフレームの圧縮に使用される別のネットワークなどであってよい。第1ニューラルネットワークを用いて圧縮情報を取得した場合、目標圧縮情報には現在のビデオフレームの第1特徴の第1圧縮情報が含まれ、現在のビデオフレームの参照フレームが現在のビデオフレームの第1特徴の圧縮処理に使用され、現在のビデオフレームの参照フレームは現在のビデオフレームの第1特徴の生成処理に使用されない。
現在のビデオフレームの参照フレームと現在のビデオフレームの両方が、現在のビデオシーケンスからのものである。現在のビデオフレームは、現在のビデオシーケンスに含まれる元のビデオフレームである。実装では、現在のビデオフレームの参照フレームは、現在のビデオシーケンスの元のビデオフレームである場合があり、現在のビデオシーケンスの参照フレームのソート位置は、現在のビデオフレームの前又は後に位置する場合がある。つまり、現在のビデオシーケンスを再生すると、参照フレームは現在のビデオフレームよりも前に表示される場合もあれば、現在のビデオフレームよりも後に表示される場合もある。
別の実装では、現在のビデオフレームの参照フレームは、現在のビデオシーケンスの元のビデオフレームではない場合があり、現在のビデオシーケンスの中の、現在のビデオフレームの参照フレームに対応するの元の参照フレームのソート位置は、現在のビデオフレームの前又は後に位置する場合がある。現在のビデオフレームの参照フレームは、エンコーダが元の参照フレームで変換符号化及び逆変換復号を実行した後に取得されたビデオフレームである場合がある。代替として、現在のビデオフレームの参照フレームは、エンコーダが元の参照フレームに圧縮符号化と伸長を行った後に取得されたビデオフレームである。さらに、第1ニューラルネットワーク又は第2ニューラルネットワークを使用して圧縮を実施することもできる。
特許出願番号CN202011271217.8の記述を参照のこと。第1ニューラルネットワークは、少なくとも符号化(encoding)ネットワークとエントロピー符号化層を含み、符号化ネットワークを使用して現在のビデオフレームから現在のビデオフレームの第1特徴を取得し、エントロピー符号化層を使用して、現在のビデオフレームの参照フレームに基づき現在のビデオフレームの第1特徴の圧縮処理を実行し、現在のビデオフレームに対応する第1圧縮情報を出力する。
このソリューションをより直感的に理解するために、図5Aは、本願の実施形態による第1ニューラルネットワークの構造の概略図である。図5Aに示すように、符号化ネットワークは、現在のビデオフレームを符号化して量子化を実行し、現在のビデオフレームの第1特徴を得るために使用される。エントロピー符号化層は、現在のビデオフレームの参照フレームに基づいて現在のビデオフレームの第1特徴を圧縮し、現在のビデオフレームに対応する第1圧縮情報(すなわち、現在のビデオフレームに対応する目標圧縮情報の例)を出力するために使用される。図5Aの例は、単にソリューションを理解しやすくするためのものであり、ソリューションを限定するものではないことを理解すべきである。
具体的に、以下は、エンコーダが第1ニューラルネットワークを使用して、現在のビデオフレームに対応する第1圧縮情報を生成する処理について説明する。エンコーダは、第1符号化ネットワーク(encoding network)を使用して現在のビデオフレームに対して変換符号化を実行し、変換符号化が実行された後に量子化を実行して、現在のビデオフレームの第1特徴を得ることができる。つまり、現在のビデオフレームの第1特徴は現在のビデオフレームにのみ基づいて取得でき、現在のビデオフレームの参照フレームは第1特徴の生成処理では必要ない。
さらに、第1符号化ネットワークは、具体的には多層畳み込みネットワークとして表される場合がある。第1特徴は、M個のピクセルの特徴を含み、具体的には、1次元テンソル(すなわち、ベクトル)、2次元テンソル(すなわち、行列)、3次元テンソル、又はより高次元のテンソルなどのL次元テンソルとして表される場合がある。これは、ここでは列挙されない。
エンコーダは、現在のビデオフレームのN個の参照フレームに基づいて現在のビデオフレームの特徴を予測し、現在のビデオフレームの第1予測された特徴を生成し、現在のビデオフレームの第1予測された特徴に基づいて、現在のビデオフレームの第1特徴の確率分布を生成する。エンコーダは、現在のビデオフレームの第1特徴の確率分布に基づいて、現在のビデオフレームの第1特徴に対して、エントロピー符号化を実行し、第1圧縮情報を取得する。
現在のビデオフレームの第1予測された特徴は、現在のビデオフレームの第1特徴の予測結果であり、現在のビデオフレームの第1予測された特徴にはM個のピクセルの特徴も含まれ、現在のビデオフレームの第1予測された特徴は特にテンソルとして表される場合がある。現在のビデオフレームの第1予測された特徴のデータ形状は、現在のビデオフレームの第1特徴のデータ形状と同じであり、第1予測された特徴の形状が第1特徴の形状と同じであることは、第1予測された特徴と第1特徴の両方がL次元テンソルであり、第1予測された特徴のL次元のうちの第1次元のサイズは、第1特徴のL次元のうちの第2次元のサイズと同じであることを意味する。Lは1以上の整数であり、第1次元は第1予測された特徴のL個の次元のうちの任意の次元であり、第2次元は第1特徴のL個の次元のうちの次元であり、第1次元と同じ次元である。
現在のビデオフレームの第1特徴の確率分布には、現在のビデオフレームの第1特徴の平均と現在のビデオフレームの第1特徴の分散が含まれる。さらに、第1特徴の平均と第1特徴の方法の両方をL次元テンソルとして表すことができ、第1特徴の平均のデータ形状は第1特徴のデータ形状と同じであり、第1特徴の分散の形状は第1特徴のデータ形状と同じである。したがって、第1特徴の平均にはM個のピクセルの各々に対応する値が含まれ、第1特徴の分散にはM個のピクセルの各々に対応する値が含まれる。
エンコーダが、現在のビデオフレームのN個の参照フレームに基づいて現在のビデオフレームの特徴を予測し、現在のビデオフレームの第1予測された特徴を生成する特定の実装、及び、エンコーダが、現在のビデオフレームの第1予測された特徴に基づいて、現在のビデオフレームの第1特徴の確率分布を生成する特定の実装については、特許出願番号CN202011271217.8の説明を参照のこと。
特許出願番号CN202011271217.8では、N個の第2ビデオフレームに基づいて第1ビデオフレームの特徴を予測し、第1ビデオフレームの第1予測された特徴を生成し、第1ビデオフレームの第1特徴の確率分布を第1ビデオフレームの第1予測された特徴に基づいて生成するという違いがある。本願の実施形態では、現在のビデオフレームのN個の参照フレームに基づいて現在のビデオフレームを予測し、現在のビデオフレームの第1予測された特徴を生成し、現在のビデオフレームの第1特徴の確率分布を現在のビデオフレームの第1予測された特徴に基づいて生成する。つまり、本願の実施形態では、特許出願番号CN202011271217.8の「第1ビデオフレーム」を「現在のビデオフレーム」に置き換え、特許出願番号CN202011271217.8の「第2ビデオフレーム」を「現在のビデオフレームの参照フレーム」に置き換える特定の実装については特許出願番号CN202011271217.8の記述を参照のこと。詳細はここに説明されない。
本願のこの実装では、エンコーダは、現在のビデオフレームに対応する第1予測された特徴に基づいて、現在のビデオフレームの第1特徴の確率分布を生成し、次に、現在のビデオフレームの第1特徴の確率分布に基づいて、現在のビデオフレームの第1特徴に対して圧縮符号化を実行し、現在のビデオフレームの第1圧縮情報を取得する。第1予測された特徴と第1特徴の間の類似性が高いことは、第1特徴の圧縮率が大きく、最終的に取得される第1圧縮情報が小さいことを示す。現在のビデオフレームの第1予測された特徴は、現在のビデオフレームのN個の参照フレームに基づいて現在のビデオフレームの特徴を予測することによって得られ、現在のビデオフレームの第1予測された特徴と現在のビデオフレームの第1特徴の間の類似性を改善する。これにより、圧縮された第1圧縮情報のサイズが小さくなる。つまり、デコーダによって得られる再構成フレームの品質を確保し、エンコーダとデコーダ間で伝送されるデータ量を減らすことができる。
第2ニューラルネットワークを用いて目標圧縮情報を取得した場合、目標圧縮情報には現在のビデオフレームの第2特徴の第2圧縮情報が含まれ、現在のビデオフレームの参照フレームが現在のビデオフレームの第2特徴の生成処理に使用される。第2ニューラルネットワークは、畳み込みネットワークとエントロピー符号化層を含み、畳み込みネットワークは、複数の畳み込み層と活性化ReLU層を含み、畳み込みネットワークは、現在のビデオフレームの参照フレームに基づいて現在のビデオフレームの第2特徴の生成処理を実行するために使用され、エントロピー符号化層は、現在のビデオフレームの第2特徴を圧縮して、現在のビデオフレームに対応する第2圧縮情報を出力するために使用される。
本願のこの実施形態では、第1ニューラルネットワークと第2ニューラルネットワークの特定のネットワーク構造が提供される。これにより、ソリューションと特定の適用シナリオとの統合が改善される。
具体的には、現在のビデオフレームの参照フレームに対して元の現在のビデオフレームのオプティカルフローを生成した後、エンコーダはオプティカルフローに対して圧縮符号化を実行して、圧縮されたオプティカルフローを得ることができる。現在のビデオフレームの第2特徴には、現在のビデオフレームの参照フレームに対する元の現在のビデオフレームのオプティカルフローのみが含まれる。
任意で、エンコーダは、代替として、現在のビデオフレームの参照フレームと、現在のビデオフレームの参照フレームに対する元の現在のビデオフレームのオプティカルフローに基づいて、予測された現在のビデオフレームを生成し、元の現在のビデオフレームと予測された現在のビデオフレームの間の残差を計算し、現在のビデオフレームの参照フレームに対する元の現在のビデオフレームのオプティカルフローと、元の現在のビデオフレームと予測された現在のビデオフレームの間の残差に対して、圧縮符号化を実行し、現在のビデオフレームに対応する第2圧縮情報を出力することもできる。現在のビデオフレームの第2特徴には、現在のビデオフレームの参照フレームに対する元の現在のビデオフレームのオプティカルフロー、及び元の現在のビデオフレームと予測された現在のビデオフレームとの間の残差が含まれる。
さらに、エンコーダが現在のビデオフレームの第2特徴を取得した後、現在のビデオフレームの第2特徴のデータ量が少ないため、エンコーダは現在のビデオフレームの第2特徴を直接圧縮して、現在のビデオフレームに対応する第2圧縮情報を取得できる。圧縮は、ニューラルネットワークを使用して実装することも、非ニューラルネットワークの方法で実装することもできる。例えば、圧縮符号化はエントロピー符号化である場合がある。
このソリューションをより直感的に理解するために、図5Bは、本願の実施形態による第2ニューラルネットワークの構造の概略図である。図5Bに示すように、エンコーダは、現在のビデオフレームと現在のビデオフレームの参照フレームを畳み込みネットワークに入力し、畳み込みネットワークを使用してオプティカルフロー推定を行い、現在のビデオフレームの参照フレームに対する現在のビデオフレームのオプティカルフローを得る。エンコーダは、畳み込みネットワークを使用して、現在のビデオフレームの参照フレームと現在のビデオフレームの参照フレームに対する現在のビデオフレームのオプティカルフローに基づいて、現在のビデオフレームの再構成フレームを生成し、現在のビデオの再構成フレームと現在のビデオフレームの間の残差を取得する。エンコーダは、現在のビデオフレームの参照フレームに対する現在のビデオフレームのオプティカルフロー、及び現在のビデオの再構成フレームと現在のビデオフレームとの間の残差を、エントロピー符号化層を使用して圧縮し、現在のビデオフレームの第2圧縮情報を出力することができる。図5Bの例は、単にソリューションを理解しやすくするためのものであり、ソリューションを限定するものではないことを理解すべきである。
第1特徴と第2特徴の違いをより直感的に理解するために、図5Cは、本願の実施形態によるビデオフレーム圧縮方法における第1特徴と第2特徴の比較の概略図である。図5Cは、(a)と(b)の2つのサブグラフを含む。図5Cの(a)は、現在のビデオフレームの第1特徴を生成する概略図であり、図5Cの(b)は、現在のビデオフレームの第2特徴を生成する概略図である。図5Aの(a)を参照する。現在のビデオフレームが符号化ネットワークに入力され、符号化ネットワークを使用して変換符号化と量子化(quantization, Q)が行われ、現在のビデオフレームの第1特徴が得られる。変換符号化の後に量子化が行われる。
図5Cの(b)を参照する。図5Cの(b)の破線ボックスの内容は、現在のビデオフレームの第2特徴を示している。図5Cの(b)は、現在のビデオフレームの第2特徴には、現在のビデオフレームの参照フレームに対する元の現在のビデオフレームのオプティカルフロー、及び元の現在のビデオフレームと予測された現在のビデオフレームとの間の残差、の両方が含まれることを詳細に示している。ここでは、現在のビデオフレームの第2特徴の生成処理については説明しない。図5Cの(a)と図5Cの(b)を比較すると、現在のビデオフレームの参照フレームは、現在のビデオフレームの第1特徴の生成処理では必要ではないが、現在のビデオフレームの第2特徴の生成処理で必要であることが分かる。図5Cの例は、単に第1特徴と第2特徴の概念を理解しやすくするためのものであり、ソリューションを制限することを意図していないことを理解する必要がある。
なお、ビデオフレームに圧縮符号化を実行するために使用される別のニューラルネットワーク(説明を簡単にするために「第5ニューラルネットワーク」と呼ばれる)もエンコーダに構成することができるが、エンコーダは少なくとも第1ニューラルネットワークと第2ニューラルネットワークと共に構成される。第1ニューラルネットワークと第2ニューラルネットワークを使用して圧縮符号化を実行する詳細な処理については、以降の実施形態の説明を参照のこと。詳細はここに説明されない。例えば、第5ニューラルネットワークは、現在のビデオフレームを直接圧縮するニューラルネットワークである場合がある。つまり、エンコーダは、現在のビデオフレームを第5ニューラルネットワークに入力し、第5ニューラルネットワークを使用して現在のビデオフレームを直接圧縮して、第5ニューラルネットワークによって出力される、現在のビデオフレームに対応する第3圧縮情報を取得する場合がある。さらに、第5ニューラルネットワークは、具体的には畳み込みニューラルネットワークである場合がある。
303:エンコーダは、目標圧縮情報に対応する指示情報を生成し、この指示情報は、目標圧縮情報が第1ニューラルネットワーク又は第2ニューラルネットワークのいずれかである目標ニューラルネットワークを使用して得られたことを示す。
本願のこの実施形態では、エンコーダは、1つ以上の現在のビデオフレームの目標圧縮情報を取得した後、少なくとも1つの現在のビデオフレームの目標圧縮情報に1対1に対応する少なくとも1つの指示情報をさらに生成することができる。少なくとも1つの指示情報は、第1ニューラルネットワーク又は第2ニューラルネットワークのいずれかである目標ニューラルネットワークを使用して各々の目標圧縮情報が得られることを示す。つまり、指示情報は、第1ニューラルネットワーク又は第2ニューラルネットワークのいずれかを使用して目標圧縮情報が得られることを示す。
現在のビデオシーケンスにおける複数のビデオフレームの目標圧縮情報に対応する複数の指示情報は、具体的に文字列として又は別の形式で表すこともできる。例えば、現在のビデオシーケンスにおける複数のビデオフレームの目標圧縮情報に対応する複数の指示情報は、具体的に0010110101であってよい。文字列中の1文字は、1つの指示情報を示す。1つの指示情報が0の場合は、指示情報に対応する現在のビデオフレームが第1ニューラルネットワークを用いて圧縮されていることを示す。1つの指示情報が1の場合は、指示情報に対応する現在のビデオフレームが第2ニューラルネットワークを用いて圧縮されていることを示す。
具体的には、実装では、エンコーダが1つの現在のビデオフレームの目標圧縮情報を取得するたびに、エンコーダは現在のビデオフレームの目標圧縮情報に対応する1つの指示情報を生成する場合がある。つまり、エンコーダはステップ303とステップ301とステップ302を交互に実行する場合がある。
別の実装では、エンコーダは、代替として、ステップ301を使用して、予め設定された数の現在のビデオフレームの目標圧縮情報を生成し、次に、予め設定された数の現在のビデオフレームに対応する、予め設定された数の指示情報を生成することができ、予め設定された数が1より大きい整数、例えば、3、4、5、6、又は別の値である。これは、ここでは限定されない。
別の実装では、エンコーダは、代替として、ステップ301とステップ302を使用して、現在のビデオシーケンス全体に対応する複数の目標圧縮情報を生成し、次にステップ303を使用して、現在のビデオシーケンス全体に対応する複数の指示情報を生成してもよい。具体的な実装はここで限定されない。
304:エンコーダは、現在のビデオフレームの目標圧縮情報を送信する。
本願のこの実施形態では、エンコーダは、ファイル転送プロトコル(file transfer protocol, FTP)の制約下で、現在のビデオシーケンス内の少なくとも1つの現在のビデオフレームの目標圧縮情報をデコーダに送信することができる。
具体的には、幾つかの実装では、エンコーダは、少なくとも1つの目標圧縮情報をデコーダに直接送信することができる。別の実装では、エンコーダは、代替として、サーバや管理センタなどの中間装置に少なくとも1つの目標圧縮情報を送信することができ、中間装置は、デコーダに目標圧縮情報を送信する。
任意で、第1ニューラルネットワークを使用して目標圧縮情報を生成する場合は、特許出願番号CN202011271217.8の説明を参照する。現在のビデオフレームの第1圧縮情報をデコーダに送信するとき、エンコーダは、現在のビデオフレームの第1予測された特徴を生成する方法で、現在のビデオフレームに対応する1つ又は2つのタイプの第1インターサイド情報、第2インターサイド情報、第1イントラサイド情報、及び第2イントラサイド情報をさらにデコーダに送信することができる。対応して、デコーダは、現在のビデオフレームに対応する1つ又は2つのタイプの第1インターサイド情報、第2インターサイド情報、第1イントラサイド情報、及び第2イントラサイド情報を受信することができる。送信される特定のタイプの情報は、現在のビデオフレームの第1圧縮情報の伸長中に必要な情報のタイプに基づいて決定する必要がある。
また、第1インターサイド情報、第2インターサイド情報、第1イントラサイド情報、第2イントラサイド情報の意味と機能については、特許出願番号CN2011271217.8の記述を参照のこと。詳細はここに説明されない。
305:エンコーダは、現在のビデオフレームの目標圧縮情報に対応する指示情報を送信する。
本願の本実施形態では、ステップ305は任意的ステップである。ステップ303が実行されない場合、ステップ305は実行されない。ステップ303が実行される場合、ステップ305は実行される。ステップ305が実行された場合、ステップ305とステップ304が同時に実行される場合がある。つまり、エンコーダは、FTPプロトコル(ファイル転送プロトコルの略)の制約下で、デコーダに、現在のビデオシーケンス内の少なくとも1つの現在のビデオフレームの目標圧縮情報と、少なくとも1つの現在のビデオフレームの目標圧縮情報に1対1で対応する少なくとも1つの指示情報を送信する。代替として、ステップ304とステップ305を別々に実行してもよい。本願の実施形態では、ステップ304とステップ305の実行順序は制限されない。
したがって、デコーダは、複数の目標圧縮情報に対応する複数の指示情報を得ることができるため、デコーダは、現在のビデオシーケンスの各ビデオフレームを伸長するために、第1ニューラルネットワーク又は第2ニューラルネットワークのいずれかを使用することを知ることができる。これは、デコーダが圧縮情報を復号する時間を短縮するのに役立つ。つまり、これは、エンコーダとデコーダによって実行されるビデオフレーム送信全体の効率を向上させるのに役立つ。
本願のこの実装では、第1ニューラルネットワークを用いて圧縮情報を取得した場合、圧縮情報は現在のビデオフレームの第1特徴の圧縮情報を運び、現在のビデオフレームの参照フレームが現在のビデオフレームの第1特徴の圧縮処理にのみ使用され、現在のビデオフレームの第1特徴の生成処理に使用されない。したがって、デコーダが第1圧縮情報に基づいて伸長を実行した後、現在のビデオフレームの第1特徴を取得するために、現在のビデオフレームの参照フレームなしで現在のビデオフレームの再構成フレームを取得できる。したがって、第1ニューラルネットワークを用いて圧縮情報を得る場合、現在のビデオフレームの再構成フレームの品質は、現在のビデオフレームの参照フレームの再構成フレームの品質に依存しないため、フレームごとにエラーが蓄積されるのを防ぎ、ビデオフレームの再構成フレームの品質を向上させることができる。また、現在のビデオフレームの参照フレームに基づいて現在のビデオフレームの第2特徴が生成され、第2特徴の第2圧縮情報に対応するデータ量が第1特徴の第1圧縮情報に対応するデータ量よりも少ないため、エンコーダは、第1ニューラルネットワークと第2ニューラルネットワークを使用して現在のビデオシーケンスの異なるビデオフレームを処理し、送信する必要のあるデータ量を最小限に抑え、ビデオフレームの再構成フレームの品質を向上させるために、第1ニューラルネットワークと第2ニューラルネットワークの利点を組み合わせることができる。
2.エンコーダは、複数のニューラルネットワークを用いて個別に圧縮符号化を行い、目標圧縮情報を決定する。
本願の幾つかの実施形態では、エンコーダは、複数のニューラルネットワークを用いて現在のビデオフレームに対して個別に圧縮符号化を行い、次に現在のビデオフレームに対応する目標圧縮情報を決定する。このソリューションをより直感的に理解するために、図6は、本願の実施形態によるビデオフレーム圧縮方法の別の原理の概略図である。図6は、複数のニューラルネットワークに第1ニューラルネットワークと第2ニューラルネットワークのみが含まれる例を用いて説明される。エンコーダは、第1ニューラルネットワークを用いて現在のビデオフレームに圧縮符号化を行い、現在のビデオフレームの第1特徴の第1圧縮情報(すなわち、図6のrp)を取得し、第1圧縮情報に基づいて現在のビデオフレームの再構成フレーム(すなわち、図6のdp)を生成する。エンコーダは、第2ニューラルネットワークを用いて現在のビデオフレームに圧縮符号化を行い、現在のビデオフレームの第2特徴の第2圧縮情報(すなわち、図6のrr)を取得し、第2圧縮情報に基づいて現在のビデオフレームの再構成フレーム(すなわち、図6のdr)を生成する。エンコーダは、rp、dp、rr、dr、及びネットワーク選択ポリシに基づいて、第1圧縮情報と第2圧縮情報から現在のビデオフレームに対応する目標圧縮情報を決定する。図6の例は、単にソリューションを理解しやすくするためのものであり、ソリューションを限定するものではないことを理解すべきである。
具体的に、図7Aは本願の実施形態によるビデオフレーム圧縮方法の別の概略フローチャートである。本願の実施形態によるビデオフレーム圧縮方法は、以下のステップを含むことができる:
701:エンコーダは、第1ニューラルネットワークを使用して現在のビデオフレームに圧縮符号化を実行し、現在のビデオフレームの第1特徴の第1圧縮情報を取得する。ここで、現在のビデオフレームの参照フレームは、現在のビデオフレームの第1特徴の圧縮処理に使用される。
本願のこの実施形態では、現在のビデオフレームを取得した後、エンコーダは、複数のニューラルネットワークのうちの第1ニューラルネットワークを使用して現在のビデオフレームに圧縮符号化を実行し、現在のビデオフレームの第1特徴の第1圧縮情報を取得する。現在のビデオフレームの第1特徴の意味、現在のビデオフレームの第1特徴の第1圧縮情報の意味、及びステップ701の具体的な実装については、図3に対応する実施形態の説明を参照のこと。詳細はここで再び記載されない。
702:エンコーダは、第1ニューラルネットワークを使用して第1ビデオフレームを生成する。ここで、第1ビデオフレームは現在のビデオフレームの再構成フレームである。
本願の幾つかの実施形態では、第1ニューラルネットワークを使用して現在のビデオフレームの第1特徴の第1圧縮情報を生成した後、エンコーダは、第1ニューラルネットワークを使用してさらに伸長を実行して、第1ビデオフレームを生成し、ここで、第1ビデオフレームは現在のビデオフレームの再構成フレームである。
第1圧縮情報には現在のビデオフレームの第1特徴の圧縮情報が含まれ、現在のビデオフレームの参照フレームは、現在のビデオフレームの第1特徴を取得するために、第1圧縮情報の伸長処理に使用され、現在のビデオフレームの第1特徴は、現在のビデオフレームの再構成フレームの生成処理に使用される。つまり、エンコーダは、第1圧縮情報を伸長した後、現在のビデオフレームの参照フレームなしで、現在のビデオフレームの再構成フレームを取得できる。
第1ニューラルネットワークは、さらに、エントロピー復号層と復号(Decoding)ネットワークを含み、エントロピー復号層は、現在のビデオフレームの参照フレームに基づいて現在のビデオフレームの第1圧縮情報を伸長するために使用され、復号ネットワークは、現在のビデオフレームの第1特徴に基づいて現在のビデオフレームの再構成フレームを生成するために使用される。
具体的には、エンコーダは、エントロピー復号層を使用することによって、現在のビデオフレームのN個の参照フレームの再構成フレームに基づいて現在のビデオフレームの特徴を予測し、現在のビデオフレームの第1予測された特徴を得ることができ、エントロピー復号層を使用することによって、現在のビデオフレームの第1予測された特徴に基づいて、現在のビデオフレームの第1特徴の確率分布を生成することができる。エンコーダは、現在のビデオフレームの第1特徴の確率分布に基づいて、現在のビデオフレームの第1圧縮情報に対して、エントロピー復号層を使用してエントロピー復号を実行し、現在のビデオフレームの第1特徴を取得する。エンコーダは、さらに、現在のビデオフレームの第1特徴に対して、第1復号(decoding)ネットワークを使用して逆変換復号を実行し、現在のビデオフレームの再構成フレームを取得する。第1復号ネットワークは第1符号化ネットワークに対応し、第1復号ネットワークは多層畳み込みネットワークとして表すこともできる。
より具体的には、エンコーダが現在のビデオフレームのN個の参照フレームの再構成フレームに基づいて現在のビデオフレームの第1予測された特徴を生成する特定の実装は、エンコーダが現在のビデオフレームのN個の参照フレームの再構成フレームに基づいて現在のビデオフレームの第1予測された特徴を生成する特定の実装と似ている。エンコーダが現在のビデオフレームの第1予測された特徴に基づいて現在のビデオフレームの第1特徴の確率分布を生成する特定の実装は、エンコーダが現在のビデオフレームの第1予測された特徴に基づいて現在のビデオフレームの第1特徴の確率分布を生成する特定の実装と似ている。上記のステップの具体的な実装については、図3に対応する実施形態のステップ302の説明を参照のこと。詳細はここで再び記載されない。
703:エンコーダは、第2ニューラルネットワークを使用して現在のビデオフレームに圧縮符号化を実行し、現在のビデオフレームの第2特徴の第2圧縮情報を取得する。ここで、現在のビデオフレームの参照フレームは、現在のビデオフレームの第2特徴の生成処理に使用される。
本願のこの実施形態では、現在のビデオフレームを取得した後、エンコーダは、複数のニューラルネットワークのうちの第2ニューラルネットワークを使用して現在のビデオフレームに圧縮符号化を実行し、現在のビデオフレームの第2特徴の第2圧縮情報を取得する。現在のビデオフレームの第2特徴の意味、現在のビデオフレームの第2特徴の第2圧縮情報の意味、及びステップ701の具体的な実装については、図3に対応する実施形態の説明を参照のこと。詳細はここで再び記載されない。
704:エンコーダは、第2ニューラルネットワークを使用して第2ビデオフレームを生成する。ここで、第2ビデオフレームは現在のビデオフレームの再構成フレームである。
本願の幾つかの実施形態では、第2ニューラルネットワークを使用して現在のビデオフレームの第2特徴の第2圧縮情報を生成した後、エンコーダは、第2ニューラルネットワークを使用してさらに伸長を実行して、第2ビデオフレームを生成し、ここで、第2ビデオフレームは現在のビデオフレームの再構成フレームである。
第2ニューラルネットワークは、エントロピー復号層と畳み込みネットワークを更に含むことができ、エントロピー復号層は、第2圧縮情報に対してエントロピー復号を実行するために使用され、畳み込みネットワークは、現在のビデオフレームの参照フレームと現在のビデオフレームの第2特徴に基づいて、現在のビデオフレームの再構成フレームの生成処理を実行するために使用される。
具体的には、エンコーダは、エントロピー復号層を使用して第2圧縮情報に対してエントロピー復号を実行し、現在のビデオフレームの第2特徴、つまり、現在のビデオフレームの参照フレームに対する元の現在のビデオフレームのオプティカルフローを取得することができる。任意で、現在のビデオフレームの第2特徴には、元の現在のビデオフレームと予測された現在のビデオフレームの間の残差がさらに含まれる。
エンコーダは、現在のビデオフレームの参照フレームと、現在のビデオフレームの参照フレームに対する元の現在のビデオフレームのオプティカルフローに基づいて、現在のビデオフレームを予測して、予測された現在のビデオフレームを取得し、更に、予測された現在のビデオフレーム、及び元の現在のビデオフレームと予測された現在のビデオフレームとの間の残差に基づいて、第2ビデオフレーム(つまり、現在のビデオフレームの再構成フレーム)を生成する。
705:エンコーダは、第1圧縮情報、第1ビデオフレーム、第2圧縮情報、第2ビデオフレームに基づいて、現在のビデオフレームに対応する目標圧縮情報を決定し、決定された目標圧縮情報が第1ニューラルネットワークを使用して得られ、決定された目標圧縮情報が第1圧縮情報である、又は、決定された目標圧縮情報が第2ニューラルネットワークを使用して得られ、決定された目標圧縮情報が第2圧縮情報である。
本願のこの実施形態では、エンコーダは、第1圧縮情報と第1ビデオフレームに基づいて、第1圧縮情報に対応する第1スコア(すなわち、第1ニューラルネットワークに対応する第1スコア)を計算し、第2圧縮情報と第2ビデオフレームに基づいて、第2圧縮情報に対応する第2スコア(すなわち、第2ニューラルネットワークに対応する第2スコア)を計算し、第1スコアと第2スコアに基づいて、現在のビデオフレームに対応する目標圧縮情報を決定することができる。決定された目標圧縮情報が、第1ニューラルネットワークを使用して得られた第1圧縮情報である場合、目標ニューラルネットワークは第1ニューラルネットワークである。代替として、決定された目標圧縮情報が、第2ニューラルネットワークを使用して得られた第2圧縮情報である場合、目標ニューラルネットワークは第2ニューラルネットワークである。
第1スコアは第1ニューラルネットワークを用いて現在のビデオフレームを圧縮する性能を示し、第2スコアは第2ニューラルネットワークを用いて現在のビデオフレームを圧縮する性能を示す。さらに、第1スコアが小さいほど第1ニューラルネットワークを用いて現在のビデオフレームを処理する性能が良く、第1スコアが大きいほど第1ニューラルネットワークを用いて現在のビデオフレームを処理する性能が悪いことを示す。第2スコアが小さいほど第2ニューラルネットワークを用いて現在のビデオフレームを処理する性能が良く、第2スコアが大きいほど第2ニューラルネットワークを用いて現在のビデオフレームを処理する性能が悪いことを示す。
以下では、第1スコアと第2スコアの計算処理について説明する。具体的には、エンコーダは、第1圧縮情報と第1ビデオフレームを取得した後、第1圧縮情報のデータ量を取得し、現在のビデオフレームに対する第1圧縮情報の第1圧縮率を計算し、第1ビデオフレームの画質を計算し、現在のビデオフレームに対する第1圧縮情報の第1圧縮率と第1ビデオフレームの画質に基づいて第1スコアを生成することができる。第1圧縮情報のデータ量が多いほど第1スコアが大きく、第1圧縮情報のデータ量が少ないほど第1スコアが小さくなる。第1ビデオフレームの画質が低いほど第1スコアが大きく、第1ビデオフレームの画質が高いほど第1スコアが小さくなる。
また、現在のビデオフレームに対する第1圧縮情報の第1圧縮率は、第1圧縮情報のデータ量と現在のビデオフレームのデータ量との比であってもよい。
エンコーダは、現在のビデオフレームと第1ビデオフレームとの間の構造的類似性指標(structural similarity index, SSIM)を計算することがあり、ここで、「構造的類似性指標」は第1ビデオフレームの画質を示す。エンコーダは、別の指標を使用して、第1ビデオフレームの画質をさらに測定する場合があることに注意する。例えば、「構造的類似性指標」は、マルチスケール構造的類似性指標(multi-scale structural similarity index, MS-SSIM)、ピーク信号対雑音比(peak signal-to-noise ratio, PSNR)、別の指標などに置き換えることができる。ここでは指標は列挙されない。
現在のビデオフレームに対する第1圧縮情報の第1圧縮率と第1ビデオフレームの画質を取得した後、エンコーダは、第1圧縮率と第1ビデオフレームの画質に対して加重和を実行して、第1ニューラルネットワークに対応する第1スコアを生成することができる。なお、エンコーダは、第1圧縮率と第1ビデオフレームの画質を取得した後、代替として、第1圧縮率に第1ビデオフレームの画質を乗算するなど、別の方法で第1スコアを取得することもできる。第1圧縮率と第1ビデオフレームの画質に基づいて第1スコアを取得する具体的な方法は、実際の適用シナリオに基づいて柔軟に決定することができる。これは、ここでは列挙されない。
これに対応して、エンコーダは、第2圧縮情報と第2ビデオフレームを取得した後、第2圧縮情報のデータ量と第2ビデオフレームの画質を計算し、次に、第2圧縮情報のデータ量と第2ビデオフレームの画質に基づいて第2スコアを生成する場合がある。第2スコアの生成方法は、第1スコアの生成方法と同様である。詳細については、上述の説明を参照する。詳細はここで再び記載されない。
ここでは、第1スコアと第2スコアを基に、現在のビデオフレームに対応する目標圧縮情報を決定する処理について説明する。具体的には、実装において、エンコーダは、第1圧縮情報に対応する算出された第1スコアと、第2圧縮情報に対応する算出された第2スコアを取得した後、第1スコアと第2スコアのうち小さい方のスコアを目標スコアとして選択し、目標スコアに対応する圧縮情報を目標圧縮情報として決定する場合がある。エンコーダは、ビデオシーケンス内の各ビデオフレームに対して上記の操作を行い、各ビデオフレームに対応する目標圧縮情報を取得する。
当業者が研究中に得た知見については、図7Bを参照のこと。別の実装では、図7Bは本願の実施形態によるビデオフレーム圧縮方法における第1スコアと第2スコアの概略図である。図7Bにおいて、水平座標は現在のビデオシーケンスにおける1つのビデオフレームの位置情報を示し、垂直座標は各ビデオフレームに対応するスコアを示し、A1は現在のビデオシーケンスにおける複数のビデオフレームを圧縮する処理における第1スコアに対応する破線を示し、A2は現在のビデオシーケンスにおける複数のビデオフレームを圧縮する処理における第2スコアに対応する破線を示す。A3は第1ニューラルネットワークと第2ニューラルネットワークを用いてビデオフレーム1を別々に圧縮して得られる第1スコアと第2スコアを示す。図7Bから、第1ニューラルネットワークを用いてビデオフレーム1を処理して得られるスコアの方が小さいことが分かる。したがって、エンコーダは第1ニューラルネットワークを用いてビデオフレーム1を処理する。ビデオフレーム1が第1ニューラルネットワークを用いて処理された後、ビデオフレーム2(すなわち、現在のビデオシーケンス内のビデオフレーム1の次のビデオフレーム)に対応する第1スコアと第2スコアの両方が大きく減少する。つまり、第1ニューラルネットワークを用いて1つのビデオフレームを圧縮するたびに、新しい期間の開始がトリガされる。ある期間では、第1スコアの値は直線的に増加し、第2スコアの値も直線的に増加し、第2スコアの成長率は第1スコアの成長率よりも大きくなる。図7Bの例は、単にソリューションを理解しやすくするためのものであり、ソリューションを限定するものではないことを理解すべきである。
ソリューションをより直感的に理解するために、1つの期間で、複数の第1スコアを次の式に当てはめることができる:
Lpiは、1つの期間の複数の第1スコアに対応する直線の始点、すなわち、複数の第1スコアに対応する第1フィッティング式のオフセットを示し、kpiは、1つの期間の複数の第1スコアに対応する直線の傾き、すなわち、複数の第1スコアに対応する第1フィッティング式の係数を示し、tは、1つの期間の第1ビデオフレームとその期間の任意の現在のビデオフレームとの間のビデオフレームの数を示す。例えば、1つの期間の第2ビデオフレームに対応するtの値は1である。
1つの期間で、複数の第2スコアを次の式に当てはめることができる:
Lpiは、1つの期間の複数の第2スコアに対応する直線の始点、すなわち、複数の第2スコアに対応する第2フィッティング式のオフセットを示し、kpiは、1つの期間の複数の第2スコアに対応する直線の傾き、すなわち、複数の第2スコアに対応する第2フィッティング式の係数を示す。tの意味については、式(1)の説明を参照のこと。
1つの期間に対応する全体スコアは、次の式に当てはめることができる:
lossは、1つの期間の全スコアの合計を示し、Tは1つの期間のビデオフレームの総数を示す。第1ニューラルネットワークを使用して1つのビデオフレームを圧縮すると、新しい期間に入るようトリガされ、1つの期間の第1(T-1)個のビデオフレームが第2ニューラルネットワークを使用して圧縮され、最後のビデオフレームが第1ニューラルネットワークを使用して圧縮される。従って、次式は、1つの期間の第2ニューラルネットワークを使用して圧縮されたすべてのビデオフレームに対応する少なくとも第2スコアの合計を示し:
次式は1つの期間の最後のビデオフレームに対応する第1スコアを示す:
次に、エンコーダは1つの期間を計算単位として使用し、各期間の合計スコアの平均値を最小化することを目的とする。ソリューションをより直感的に理解するために、次の式を使用する。
T及びlossの意味については、式(3)の説明を参照のこと。詳細はここで再び記載されない。次式は、1つの期間の合計スコアの平均値を最小化することを目的としていることを示している:
当業者は研究中に以下を発見した:
そのため、以下の場合:
各期間の合計スコアの平均値が最も小さくなる。
数式に従って推論が行われる。具体的には、実装では、現在のビデオシーケンスに対応する複数の期間のいずれか1つについて、エンコーダは、先ず、1つの期間の第12つの現在のビデオフレームに対応する2つの第1スコアを取得し、その期間の第12つの現在のビデオフレームに対応する2つの第2スコアを取得する。現在のビデオフレームに対応する第1スコアと現在のビデオフレームに対応する第2スコアを取得する方法については、前述の説明を参照のこと。詳細はここで再び記載されない。
エンコーダは、期間内の第12つの現在のビデオフレームに対応する2つの第1スコアに基づいて、期間内の複数の第1スコアに対応する第1フィッティング式の係数とオフセット、すなわちlpiとkpiの値を生成することができる。エンコーダは、1つの期間内の第12つの現在のビデオフレームに対応する2つの第2スコアに基づいて、1つの期間内の複数の第2スコアに対応する第2フィッティング式の係数とオフセット、すなわちlprとkprの値を生成する。
以下は、第1フィッティング式の係数とオフセット、及び第2フィッティング式の係数とオフセットを取得した後、エンコーダが現在のビデオフレームの目標圧縮情報を決定する処理について説明する。実装では、tが0に等しい場合、エンコーダは、その期間の第1ビデオフレームに対応する第2圧縮情報を、現在のビデオフレーム(すなわち、その期間の第1ビデオフレーム)の目標圧縮情報として決定し、つまり、その期間の第1ビデオフレームに対応する目標ニューラルネットワークを、第2ニューラルネットワークとして決定し、そして、tが1に等しい場合の処理を続ける。
tが1に等しい場合、つまり、期間内の第12つの現在のビデオフレームに対応する2つの第1スコアを取得し、期間内の第12つの現在のビデオフレームに対応する2つの第2スコアを取得した後、エンコーダは式(5)に従ってTの値を計算できる。T<3の場合、エンコーダは、その期間の第2ビデオフレームに対応する第1圧縮情報を、現在のビデオフレーム(すなわち、その期間の第2ビデオフレーム)の目標圧縮情報として決定し、つまり、その期間の第2ビデオフレームに対応する目標ニューラルネットワークを、第1ニューラルネットワークとして決定する。次の期間に入るようトリガされる。
T≧3の場合、エンコーダは、その期間の第2ビデオフレームに対応する第2圧縮情報を、現在のビデオフレーム(すなわち、その期間の第2ビデオフレーム)の目標圧縮情報として決定し、つまり、その期間の第2ビデオフレームに対応する目標ニューラルネットワークを、第2ニューラルネットワークとして決定し、そして、tが2に等しい場合の処理を続ける。
tが2に等しい場合、エンコーダは、1つの期間で第3ビデオフレーム(すなわち、現在のビデオフレームの例)に対応する第1スコアと第2スコアを取得する。現在のビデオフレームに対応する第1スコアと第2スコアを生成する具体的な方法については、前述の説明を参照のこと。詳細はここで再び記載されない。エンコーダは、1つの期間の第13つのビデオフレームに対応する3つの第1スコアに基づいて、第1フィッティング式の係数とオフセットを再計算し(つまり、lpiとkpiの値を再計算する)、期間の第13つのビデオフレームに対応する3つの第2スコアに基づいて、第2フィッティング式の係数とオフセットを再計算し(つまり、lprとkprの値を再計算する)、第1フィッティング式の再計算された係数と再計算されたオフセット、及び第2フィッティング式の再計算された係数と再計算されたオフセットに基づいてTの値を再計算する。
T<t+2の場合、エンコーダは、その期間の第3ビデオフレームに対応する第1圧縮情報を、現在のビデオフレーム(すなわち、その期間の第3ビデオフレーム)の目標圧縮情報として決定し、つまり、その期間の第3ビデオフレームに対応する目標ニューラルネットワークを、第1ニューラルネットワークとして決定する。次の期間に入るようトリガされる。
T≧t+2の場合、エンコーダは、その期間の第3ビデオフレームに対応する第2圧縮情報を、現在のビデオフレーム(すなわち、その期間の第3ビデオフレーム)の目標圧縮情報として決定し、つまり、その期間の第3ビデオフレームに対応する目標ニューラルネットワークを、第2ニューラルネットワークとして決定し、そして、tが3に等しい場合の処理を続ける。
tの値が3、4、又はそれ以上の場合、エンコーダの処理方法はtが2に等しい場合の処理方法と同様である。詳細はここで再び記載されない。
別の実装では、tが0に等しい場合、エンコーダは、その期間の第1ビデオフレームに対応する第2圧縮情報を、現在のビデオフレーム(すなわち、その期間の第1ビデオフレーム)の目標圧縮情報として決定し、つまり、その期間の第1ビデオフレームに対応する目標ニューラルネットワークを、第2ニューラルネットワークとして決定し、そして、tが1に等しい場合の処理を続ける。
tが1に等しい場合、1つの期間内の第12つの現在のビデオフレームに対応する2つの第1スコアを取得し、期間内の第12つの現在のビデオフレームに対応する2つの第2スコアを取得した後、エンコーダは、第1フィッティング式の係数とオフセット(すなわち、lpiとkpiの値)、及び第2フィッティング式の係数とオフセット(すなわち、lprとkprの値)を計算し、式(5)に従って、期間内の第2ビデオフレーム(すなわち、現在のビデオフレームの例)を第1ニューラルネットワークを使用して圧縮して得られた、期間の合計スコアの第1平均値を計算し、期間内の第2ビデオフレーム(すなわち、現在のビデオフレームの例)を第2ニューラルネットワークを使用して圧縮し及び期間内の第3ビデオフレームを第1ニューラルネットワークを使用して圧縮して得られた、期間の合計スコアの第2平均値を計算することができる。
第1平均値が第2平均値より大きい場合、エンコーダは、期間内の第2ビデオフレームに対応する目標圧縮情報を現在のビデオフレームの第1圧縮情報として決定する、つまり、期間内の第2ビデオフレームに対応する目標圧縮情報を第1ニューラルネットワークとして決定する。新しい期間に入るようトリガされる。
第1平均値が第2平均値と等しい場合、エンコーダは、期間内の第2ビデオフレームに対応する第1圧縮情報を現在のビデオフレームの目標圧縮情報として決定する、つまり、期間内の第2ビデオフレームに対応する目標ニューラルネットワークを第1ニューラルネットワークとして決定する。新しい期間に入るようトリガされる。代替として、エンコーダは、期間内の第2ビデオフレームに対応する第2圧縮情報を現在のビデオフレームの目標圧縮情報として決定する、つまり、期間内の第2ビデオフレームに対応する目標ニューラルネットワークを第2ニューラルネットワークとして決定し、tが2に等しい場合の処理を続行することができる。
第1平均値が第2平均値より小さい場合、エンコーダは、その期間の第2ビデオフレームに対応する第2圧縮情報を現在のビデオフレームの目標圧縮情報として決定し、つまり、その期間の第2ビデオフレームに対応する目標ニューラルネットワークを第2ニューラルネットワークとして決定し、tが2に等しい場合の処理を続行することができる。
tが2に等しい場合、エンコーダは、期間内の第3ビデオフレームに対応する第1スコアを取得し、期間内の第12つの現在のビデオフレームに対応する第2スコアを取得できる。現在のビデオフレームに対応する第1スコアと第2スコアを生成する具体的な方法は、ここで再び説明されない。エンコーダは、1つの期間の第13つのビデオフレームに対応する3つの第1スコアに基づいて、第1フィッティング式の係数とオフセットを再計算し(つまり、lpiとkpiの値を再計算する)、期間の第13つのビデオフレームに対応する3つの第2スコアに基づいて、第2フィッティング式の係数とオフセットを再計算し(つまり、lprとkprの値を再計算する)、第1フィッティング式の再計算された係数と再計算されたオフセット、及び第2フィッティング式の再計算された係数と再計算されたオフセットに基づいて、更新された第1平均値と更新された第2平均値を計算する。更新された第1平均値は、期間の第3ビデオフレーム(すなわち、現在のビデオフレームの例)を第1ニューラルネットワークを使用して圧縮して得られた期間の合計スコアの平均値であり、更新された第2平均値は、期間の第3ビデオフレーム(すなわち、現在のビデオフレームの例)を第2ニューラルネットワークを使用して圧縮し、及び期間の第4ビデオフレームを第1ニューラルネットワークを使用して圧縮して得られた期間の合計スコアの平均値である。
更新された第1平均値が更新された第2平均値より大きい場合、エンコーダは、期間内の第3ビデオフレームに対応する目標圧縮情報を現在のビデオフレームの第1圧縮情報として決定する、つまり、期間内の第3ビデオフレームに対応する目標圧縮情報を第1ニューラルネットワークとして決定する。新しい期間に入るようトリガされる。
更新された第1平均値が更新された第2平均値と等しい場合、エンコーダは、期間内の第3ビデオフレームに対応する第1圧縮情報を現在のビデオフレームの目標圧縮情報として決定する、つまり、期間内の第3ビデオフレームに対応する目標ニューラルネットワークを第1ニューラルネットワークとして決定する。新しい期間に入るようトリガされる。代替として、エンコーダは、期間内の第3ビデオフレームに対応する第2圧縮情報を現在のビデオフレームの目標圧縮情報として決定する、つまり、期間内の第3ビデオフレームに対応する目標ニューラルネットワークを第2ニューラルネットワークとして決定し、tが3に等しい場合の処理を続行することができる。
更新された第1平均値が更新された第2平均値より小さい場合、エンコーダは、その期間の第3ビデオフレームに対応する第2圧縮情報を現在のビデオフレームの目標圧縮情報として決定し、つまり、その期間の第3ビデオフレームに対応する目標ニューラルネットワークを第2ニューラルネットワークとして決定し、tが3に等しい場合の処理を続行することができる。
tの値が3、4、又はそれ以上の場合、エンコーダの処理方法はtが2に等しい場合の処理方法と同様である。詳細はここで再び記載されない。
本願の実施例では、当業者は、研究中に1つの期間内の第1スコアと第2スコアの変更ルールを発見し、1つの期間内の全てのスコアの最小平均値を最適化の目的として使用する。つまり、現在の各ビデオフレームに対応する目標圧縮情報を決定する場合、現在のビデオフレームのスコアと全期間のスコアの平均値の両方を考慮して、現在のビデオシーケンス全体のすべてのビデオフレームに対応するスコアをさらに削減する必要がある。これにより、現在のビデオシーケンス全体に対応する圧縮情報のパフォーマンスが更に向上する。さらに、ソリューションの実装の柔軟性を向上させるために、2つの異なる実装が提供されている。
別の実装では、エンコーダは、代替として、1つの期間を計算単位として使用でき、各期間の合計スコアの平均値を最小化することを目的とする。tが0に等しい場合の特定の実装とtが1に等しい場合の特定の実装については、Bの場合の第1実装の説明を参照のこと。詳細はここで再び記載されない。
t=2の場合、エンコーダは、期間内の第3ビデオフレーム(すなわち、現在のビデオフレームの例)に対応する第1スコアと第2スコアを取得せず、第1フィッティング式の係数とオフセット、及び第2フィッティング式の係数とオフセットを再計算しない。ただし、t=1の場合、エンコーダは計算によって得られたTの値を直接取得する。T<t+2の場合、エンコーダは、その期間の第3ビデオフレームに対応する第1圧縮情報を、現在のビデオフレーム(すなわち、その期間の第3ビデオフレーム)の目標圧縮情報として決定し、つまり、その期間の第3ビデオフレームに対応する目標ニューラルネットワークを、第1ニューラルネットワークとして決定する。次の期間に入るようトリガされる。
T≧t+2の場合、エンコーダは、その期間の第3ビデオフレームに対応する第2圧縮情報を、現在のビデオフレーム(すなわち、その期間の第3ビデオフレーム)の目標圧縮情報として決定し、つまり、その期間の第3ビデオフレームに対応する目標ニューラルネットワークを、第2ニューラルネットワークとして決定し、そして、tが3に等しい場合の処理を続ける。
tの値が3、4、又はそれ以上の場合、エンコーダの処理方法はtが2に等しい場合の処理方法と同様である。詳細はここで再び記載されない。
より直感的にソリューションを理解するために、図7Cは、本願の実施形態によるビデオフレーム圧縮方法の第1フィッティング式の係数とオフセット及び第2フィッティング式の係数とオフセットの計算の概略図である。図7cに示すように、1つの期間のビデオフレームを垂直方向の2本の破線の間で処理する。期間中、第2ニューラルネットワークを用いて複数のビデオフレームに対して圧縮符号化を行い、第1ニューラルネットワークを用いて期間中の最後のビデオフレームに対して圧縮符号化を行う。まず、エンコーダは、1つの期間内の第12つの現在のビデオフレーム(すなわち、第1ビデオフレームと第2ビデオフレーム)に対応する2つの第1スコアを取得し、期間内の第12つの現在のビデオフレームに対応する2つの第2スコアを取得し、エンコーダは、第1フィッティング式の係数とオフセット(すなわち、lpiとkpiの値)、及び第2フィッティング式の係数とオフセット(すなわち、lprとkprの値)を計算し、式(5)に従って、期間内のTの最適値を計算することができる。t=2の場合、エンコーダは、期間内の第3ビデオフレームに対応する第1スコアと第2スコアを取得せず、第1フィッティング式の係数とオフセット、及び第2フィッティング式の係数とオフセットを再計算しない。図7Cの例は、単にソリューションを理解しやすくするためのものであり、ソリューションを限定するものではないことを理解すべきである。
本願のこの実施形態では、1つの期間において、第1フィッティング式の係数とオフセット、及び第2フィッティング式の係数とオフセットは、期間内の第12つのビデオフレームに対応する2つの第1スコアと2つの第2スコアのみに基づいて計算によって得られる。次に、期間内の合計スコアの最小平均値を最適化の目的として使用し、現在の期間内の最適なビデオフレームの数を得る。期間内の合計スコアの最小平均値は、引き続き最適化の目的として使用されるため、現在のビデオシーケンス内のすべてのビデオフレームに対応するスコアをさらに減らすことができる。また、tが2以上の場合、第1フィッティング式の係数とオフセット、及び第2フィッティング式の係数とオフセットは更新されない。これにより、第1フィッティング式と第2フィッティング式のパラメータを計算する時間が節約され、現在のビデオシーケンスの圧縮情報の生成効率がさらに向上する。
別の実装では、エンコーダは、代替として、1つの期間を計算単位として使用でき、各期間の合計スコアの平均値を最小化することを目的とする。tが0に等しい場合の特定の実装と、tが1に等しい場合の特定の実装については、Bの場合の第1実装の説明を参照のこと。詳細は、ここでは再度説明しない。
t=2の場合、エンコーダは、期間内の第3ビデオフレーム(すなわち、現在のビデオフレームの例)に対応する第2スコアのみを取得し、期間内の第3ビデオフレーム(すなわち、現在のビデオフレームの例)に対応する第1スコアは取得しない。また、エンコーダは、第2フィッティング式の係数とオフセットのみを再計算し、第1フィッティング式の係数とオフセットは再計算しない。エンコーダは、更新されていない第1フィッティング式と更新された第2フィッティング式に従って、t=2のときのTの値を計算する。T<t+2の場合、エンコーダは、その期間の第3ビデオフレームに対応する第1圧縮情報を、現在のビデオフレーム(すなわち、その期間の第3ビデオフレーム)の目標圧縮情報として決定し、つまり、その期間の第3ビデオフレームに対応する目標ニューラルネットワークを、第1ニューラルネットワークとして決定する。次の期間に入るようトリガされる。
T≧t+2の場合、エンコーダは、その期間の第3ビデオフレームに対応する第2圧縮情報を、現在のビデオフレーム(すなわち、その期間の第3ビデオフレーム)の目標圧縮情報として決定し、つまり、その期間の第3ビデオフレームに対応する目標ニューラルネットワークを、第2ニューラルネットワークとして決定し、そして、tが3に等しい場合の処理を続ける。
tの値が3、4、又はそれ以上の場合、エンコーダの処理方法はtが2に等しい場合の処理方法と同様である。詳細は、ここでは再度説明しない。
この実装では、最終的に送信する必要がある圧縮情報は、少なくとも1つの現在のビデオフレームの第1圧縮情報、第1ビデオフレーム、現在のビデオフレームの第2圧縮情報、及び第2ビデオフレームに基づいて、選択される。この実装では、予め設定されたネットワーク選択ポリシに従って、第1ニューラルネットワークと第2ニューラルネットワークから目標ニューラルネットワークを決定し、次に目標ニューラルネットワークを使用して目標圧縮情報を生成する方法と比較して、現在のビデオシーケンス全体に対応する圧縮情報のパフォーマンスを可能な限り向上させることができる。
706:エンコーダは、目標圧縮情報に対応する指示情報を生成し、この指示情報は、目標圧縮情報が第1ニューラルネットワーク又は第2ニューラルネットワークのいずれかである目標ニューラルネットワークを使用して得られたことを示す。
707:エンコーダは、現在のビデオフレームの目標圧縮情報を送信する。
708:エンコーダは、現在のビデオフレームの目標圧縮情報に対応する指示情報を送信する。
本願のこの実施形態では、ステップ706及びステップ708は必須のステップである。ステップ706~ステップ708を具体的な実装については、図3に対応する実施形態におけるステップ303~ステップ305の説明を参照する。詳細は、ここでは再度説明しない。本願の実施形態では、ステップ707とステップ708の実行順序は制限されないことに留意すべきである。ステップ707とステップ708は同時に実行してもよく、ステップ707はステップ708の前に実行してもよく、ステップ708はステップ707の前に実行してもよい。
本願のこの実施形態では、最終的に送信する必要がある圧縮情報は、少なくとも1つの現在のビデオフレームの第1圧縮情報、第1ビデオフレーム、現在のビデオフレームの第2圧縮情報、及び第2ビデオフレームに基づいて、第1圧縮情報と第2圧縮情報から選択される。この実装では、ネットワーク選択ポリシに従って複数のニューラルネットワークから目標ニューラルネットワークを決定し、次に目標ニューラルネットワークを使用して目標圧縮情報を生成する方法と比較して、現在のビデオシーケンス全体に対応する圧縮情報のパフォーマンスを可能な限り向上させることができる。
本願の実施形態では、図8は本願の実施形態によるビデオフレーム圧縮方法の別の概略フローチャートである。本願の実施形態によるビデオフレーム圧縮方法は、以下のステップを含むことができる:
801:エンコーダは、第1ニューラルネットワークを用いて第3ビデオフレームに圧縮符号化を行い、第3ビデオフレームに対応する第1圧縮情報を取得し、第1圧縮情報には第3ビデオフレームの第1特徴の圧縮情報が含まれ、第3ビデオフレームの参照フレームは第3ビデオフレームの第1特徴の圧縮処理に使用される。
本願のこの実施形態では、現在のビデオフレームの第3ビデオフレームを処理するとき、エンコーダは、第3ビデオフレームの目標圧縮情報が、第1ニューラルネットワークによって生成された、第3ビデオフレームに対応する第1圧縮情報であると決定する。第3ビデオフレームは現在のビデオシーケンスのビデオフレームであり、第3ビデオフレームの概念は現在のビデオフレームの概念と同様である。第3ビデオフレームの第1特徴の意味については、図3に対応する実施形態の「現在のビデオフレームの第1特徴」の意味の説明を参照のこと。「第3ビデオフレームの参照フレーム」の意味、第3ビデオフレームに対応する第1圧縮情報をエンコーダが生成する特定の実装、及び最終的にデコーダに送信する必要がある第3ビデオフレームの圧縮情報をエンコーダが決定する特定の実装については、図3に対応する実施形態の説明を参照のこと。詳細は、ここでは再度説明しない。
802:エンコーダは、第2ニューラルネットワークを使用して第4ビデオフレームに圧縮符号化を実行して、第4ビデオフレームに対応する第2圧縮情報を得る。第2圧縮情報は、第4ビデオフレームの第2特徴の圧縮情報を含み、第4ビデオフレームの参照フレームが第4ビデオフレームの第2特徴の生成処理に使用され、第3ビデオフレームと第4ビデオフレームが同じビデオシーケンスの異なるビデオフレームである。
本願のこの実施形態では、現在のビデオフレームの第4ビデオフレームを処理するとき、エンコーダは、第4ビデオフレームの目標圧縮情報が、第4ビデオフレームに対応する第2ニューラルネットワークによって生成された第2圧縮情報であると決定する。第4ビデオフレームは現在のビデオシーケンスのビデオフレームであり、第4ビデオフレームの概念は現在のビデオフレームの概念と同様であり、第3ビデオフレームと第4ビデオフレームは同じ現在のビデオシーケンスの異なるビデオフレームである。
第4ビデオフレームの第2特徴の意味については、図3に対応する実施形態の「現在のビデオフレームの第2特徴」の意味の説明を参照のこと。「第4ビデオフレームの参照フレーム」の意味、第4ビデオフレームに対応する第2圧縮情報をエンコーダが生成する特定の実装、及び最終的にデコーダに送信する必要がある第4ビデオフレームの圧縮情報をエンコーダが決定する特定の実装については、図3に対応する実施形態の説明を参照のこと。詳細は、ここでは再度説明しない。
本願のこの実施形態では、ステップ801とステップ802の特定の実施順序は制限されないことに留意すべきである。ステップ802の前にステップ801を実行してもよいし、ステップ801の前にステップ802を実行してもよい。具体的な順序は、実際の適用シナリオに基づいて決定する必要があり、ここでは制限されない。
803:エンコーダは指示情報を生成する。指示情報は、第1圧縮情報が第1ニューラルネットワークを用いて得られたものであり、第2圧縮情報が第2ニューラルネットワークを用いて得られたものであることを示す。
本願のこの実施形態では、ステップ803は、図3に対応する実施形態のステップ303と同様である。現在のビデオシーケンス内の1つ以上の現在のビデオフレームの目標圧縮情報を生成した後、エンコーダは、1つ以上の目標圧縮情報に1対1に対応する指示情報を生成する場合がある。目標圧縮情報は、具体的には第1圧縮情報又は第2圧縮情報である。目標圧縮情報及び指示情報の意味については、図3に対応する実施形態のステップ303の説明を参照のこと。詳細は、ここでは再度説明しない。
具体的には、エンコーダは、まずステップ801とステップ802を複数回実行し、次にステップ803を使用して、現在のビデオシーケンスの各ビデオフレームの目標圧縮情報に1対1に対応する指示情報を生成する。代替として、エンコーダは、ステップ801が実行されるか又はステップ802が実行されるたびに、ステップ803を実行することもできる。代替として、エンコーダは、ステップ801及び/又はステップ802が事前に設定された回数実行された後に、ステップ803を1回実行することもできる。事前に設定された回数は、1より大きい整数、例えば、3、4、5、6、又は別の値である。これは、ここでは限定されない。
なお、ステップ801又はステップ802において、エンコーダが図7Aに対応する実施形態に示す方法で現在のビデオフレーム(すなわち、第3ビデオフレーム又は第4ビデオフレーム)の目標圧縮情報を決定する場合、ステップ803は必須のステップである。、ステップ801又はステップ802において、エンコーダが図3に対応する実施形態に示す方法で現在のビデオフレーム(すなわち、第3ビデオフレーム又は第4ビデオフレーム)の目標圧縮情報を取得する場合、ステップ803は任意的なステップである。ステップ803の具体的な実装については、図3に対応する実施形態のステップ303の説明を参照のこと。詳細は、ここでは再度説明しない。
804:エンコーダは、現在のビデオフレームに対応する目標圧縮情報を送信する。目標圧縮情報は第1圧縮情報又は第2圧縮情報である。
本願のこの実施形態では、少なくとも1つの第3ビデオフレームに1対1に対応する少なくとも1つの第1圧縮情報を生成した後、及び/又は少なくとも1つの第4ビデオフレームに1対1に対応する少なくとも1つの第2圧縮情報を生成した後、エンコーダは、FTPプロトコルの制約下でデコーダに、少なくとも1つの現在のビデオフレーム(すなわち、第3ビデオフレーム及び/又は第4ビデオフレーム)に1対1に対応する少なくとも1つの目標圧縮情報(すなわち、第1圧縮情報及び/又は第2圧縮情報)を送信することができる。ステップ804の具体的な実装については、図3に対応する実施形態のステップ304の説明を参照のこと。詳細は、ここでは再度説明しない。
このソリューションをより直感的に理解するために、図9は、本願の実施形態によるビデオフレーム圧縮方法の概略図である。図9に示すように、エンコーダは、第3ニューラルネットワークを使用して現在のビデオシーケンスの一部のビデオフレームに圧縮符号化を実行し、第4ニューラルネットワークを使用して現在のビデオシーケンスの他のビデオフレームに圧縮符号化を実行し、次に、現在のビデオシーケンスのすべての現在のビデオフレームに対応する目標圧縮情報を送信する。目標圧縮情報は、第1圧縮情報又は第2圧縮情報である。図9の例は、単にソリューションを理解しやすくするためのものであり、ソリューションを限定するものではないことを理解すべきである。
805:エンコーダは、現在のビデオフレームに対応する指示情報を送信する。
本願の本実施形態では、ステップ805は任意的ステップである。ステップ803が実行されない場合、ステップ805は実行されない。ステップ803が実行される場合、ステップ805は実行される。ステップ805が実行された場合、ステップ805とステップ804が同時に実行される場合がある。ステップ805の具体的な実装については、図3に対応する実施形態のステップ305の説明を参照のこと。詳細は、ここでは再度説明しない。
本願のこの実施形態では、第1ニューラルネットワークを使用して現在のビデオシーケンスの第3ビデオフレームに圧縮符号化を実行する場合、第1圧縮情報は現在のビデオフレームの第1特徴の圧縮情報を伝達し、現在のビデオフレームの参照フレームは現在のビデオフレームの第1特徴の圧縮処理にのみ使用され、現在のビデオフレームの第1特徴の生成処理には使用されない。したがって、デコーダが第1圧縮情報に基づいて伸長を実行した後、現在のビデオフレームの第1特徴を取得するために、現在のビデオフレームの参照フレームなしで現在のビデオフレームの再構成フレームを取得できる。したがって、第1ニューラルネットワークを用いて目標圧縮情報を得る場合、現在のビデオフレームの再構成フレームの品質は、現在のビデオフレームの参照フレームの再構成フレームの品質に依存しないため、フレームごとにエラーが蓄積されるのを防ぎ、ビデオフレームの再構成フレームの品質を向上させることができる。第2ニューラルネットワークを使用して第4ビデオフレームに対して圧縮符号化を実行する場合、第4ビデオフレームの参照フレームに基づいて第4ビデオフレームの第2特徴が生成されるため、第2圧縮情報に対応するデータ量は、第1圧縮情報に対応するデータ量よりも少なくなる。また、第1ニューラルネットワークと第2ニューラルネットワークの両方を使用して、現在のビデオシーケンスの異なるビデオフレームを処理し、第1ニューラルネットワークと第2ニューラルネットワークの利点を組み合わせて、送信する必要のあるデータ量を最小限に抑え、ビデオフレームの再構成フレームの品質を向上させる。
次に、図10Aから図12を参照して、デコーダによって実行されるステップを詳細に説明する。図10Aは、本願の実施形態によるビデオフレーム伸長方法の概略フローチャートである。本願のこの実施形態によるビデオフレーム伸長方法は、以下のステップを含むことができる:
1001:デコーダは、少なくとも1つの現在のビデオフレームに対応する目標圧縮情報を受信する。
本願のこの実施形態では、エンコーダは、FTPプロトコルの制約下でデコーダに、現在のビデオフレームの少なくとも1つの現在のビデオフレームに対応する少なくとも1つの目標圧縮情報を送信することができる。対応して、デコーダは、現在のビデオフレームの少なくとも1つの現在のビデオフレームに対応する少なくとも1つの目標圧縮情報を受信することができる。
具体的には、実装では、デコーダは、エンコーダから、少なくとも1つの現在のビデオフレームに対応する目標圧縮情報を直接受信することができる。別の実装では、デコーダは、代替として、サーバや管理センタなどの中間装置から、少なくとも1つの現在のビデオフレームに対応する目標圧縮情報を受信することができる。
1002:デコーダは、目標圧縮情報に対応する指示情報を受信する。
本願の幾つかの実施形態では、エンコーダは、少なくとも1つの目標圧縮情報に1対1に対応する少なくとも1つの指示情報を送信する。対応して、デコーダは、少なくとも1つの目標圧縮情報に1対1に対応する少なくとも1つの指示情報を受信できる。指示情報の意味については、図3に対応する実施形態の説明を参照のこと。詳細は、ここでは再度説明しない。
なお、ステップ1002は任意のステップである。ステップ1002を実行する場合、本願のこの実施形態ではステップ1001とステップ1002の実行順序は限定されず、ステップ1001とステップ1002を同時に実行してもよい。
1003:デコーダは、複数のニューラルネットワークから、現在のビデオフレームに対応する目標ニューラルネットワークを選択し、複数のニューラルネットワークには第3ニューラルネットワークと第4ニューラルネットワークが含まれる。
本願のこの実施形態では、デコーダは、少なくとも1つの現在のビデオフレームに対応する少なくとも1つの目標圧縮情報を取得した後、複数のニューラルネットワークから目標ニューラルネットワークを選択して伸長を行い、各現在のビデオフレームの再構成フレームを取得する必要がある。複数のニューラルネットワークは、第3ニューラルネットワークと第4ニューラルネットワークを含み、第3ニューラルネットワークと第4ニューラルネットワークは両方とも伸長を行うために使用されるニューラルネットワークである。
また、第3ニューラルネットワークは第1ニューラルネットワークに相当する。つまり、現在のビデオフレームの目標圧縮情報が、第1ニューラルネットワークを用いて得られた現在のビデオフレームの第1圧縮情報である場合、デコーダは、現在のビデオフレームの再構成フレームを得るために、第3ニューラルネットワークを用いて現在のビデオフレームの第1圧縮情報を伸長する必要がある。
第4ニューラルネットワークは第2ニューラルネットワークに相当する。つまり、現在のビデオフレームの目標圧縮情報が、第2ニューラルネットワークを用いて得られた現在のビデオフレームの第2圧縮情報である場合、デコーダは、現在のビデオフレームの再構成フレームを得るために、第4ューラルネットワークを用いて現在のビデオフレームの第2圧縮情報を伸長する必要がある。
なお、デコーダが第3ニューラルネットワーク又は第4ニューラルネットワークを用いて目標圧縮情報を伸長する具体的な実装については、以降の実施形態で説明し、詳細についてはここでは説明しない。
以下では、デコーダが目標ニューラルネットワークを決定する処理について説明する。具体的には、実装において、ステップ1002を実行する場合、デコーダは、複数の目標圧縮情報に1対1で対応する複数の指示情報に基づいて、各目標圧縮情報に対応する目標ニューラルネットワークが第1ニューラルネットワーク又は第2ニューラルネットワークであることを直接決定することができる。
より直感的にソリューションを理解するために、図10Bは、本願の実施形態によるビデオフレーム伸長方法の別の概略フローチャートである。図10Bに示すように、デコーダは、現在のビデオフレームに対応する目標圧縮情報と目標圧縮情報に対応する指示情報を取得した後、目標圧縮情報に対応する指示情報に基づいて、第3ニューラルネットワークと第4ニューラルネットワークから目標ニューラルネットワークを決定し、目標ニューラルネットワークを使用して、現在のビデオフレームに対応する目標圧縮情報を伸長し、現在のビデオフレームの再構成フレームを取得することができる。図10Bの例は、単にソリューションを理解しやすくするためのものであり、ソリューションを限定するものではないことを理解すべきである。
別の実装では、ステップ1002が実行されなかった場合、デコーダは、現在のビデオシーケンスで、各目標圧縮情報に1対1に対応する現在のビデオフレームの位置情報を取得し、位置情報は、各目標圧縮情報に1対1に対応する現在のビデオフレームが、現在のビデオシーケンスの中の第Xフレームであることを示し、事前に設定されたルールに従って、第3ニューラルネットワークと第4ニューラルネットワークから、現在のビデオシーケンスの位置情報に対応する目標ニューラルネットワークを選択することができる。
位置情報の意味については、図3に対応する実施形態の説明を参照のこと。詳細は、ここでは再度説明しない。事前に設定されたルールは、特定のルールに従って、第3ニューラルネットワーク又は第4ニューラルネットワークを交互に選択する場合がある。つまり、デコーダは、第3ニューラルネットワークを使用して現在のビデオフレームのn個のビデオフレームに対して圧縮符号化を実行し、次に、第4ニューラルネットワークを使用して現在のビデオフレームのm個のビデオフレームに対して圧縮符号化を実行する。代替として、第4ニューラルネットワークを使用して現在のビデオフレームのm個のビデオフレームに対して圧縮符号化を実行した後、エンコーダは、第3ニューラルネットワークを使用して現在のビデオフレームのn個のビデオフレームに対して圧縮符号化を実行する。nとmの両方の値は1以上の整数であってもよく、nとmの値は同じであっても異なっていてもよい。
デコーダが、事前に設定されたルールに従って、第3ニューラルネットワークと第4ニューラルネットワークを含む複数のニューラルネットワークから現在のビデオシーケンスの位置情報に対応する目標ニューラルネットワークを選択する特定の実装は、エンコーダが、ネットワーク選択ポリシに従って、第1ニューラルネットワークと第2ニューラルネットワークを含む複数のニューラルネットワークから現在のビデオシーケンスの位置情報に対応する目標ニューラルネットワークを選択する特定の実装と同様である。相違点は、図3に対応する実施形態の「第1ニューラルネットワーク」が本実施形態では「第3ニューラルネットワーク」に置き換えられ、図3に対応する実施形態の「第2ニューラルネットワーク」が本実施形態では「第4ニューラルネットワーク」に置き換えられていることである。詳細については、図3に対応する実施形態における説明を参照のこと。詳細は、ここでは再度説明しない。
1004:デコーダは、目標圧縮情報に基づいて、目標ニューラルネットワークを使用して伸長を実行し、現在のビデオフレームの再構成フレームを取得する。目標ニューラルネットワークが第3ニューラルネットワークである場合、目標圧縮情報には、現在のビデオフレームの第1特徴の第1圧縮情報が含まれる。現在のビデオフレームの参照フレームは、現在のビデオフレームの第1特徴を得るために、第1圧縮情報の伸長処理に使用される。現在のビデオフレームの第1特徴は、現在のビデオフレームの再構成フレームの生成処理に使用される。目標ニューラルネットワークが第4ニューラルネットワークである場合、目標圧縮情報には現在のビデオフレームの第2特徴の第2圧縮情報が含まれ、第2圧縮情報はデコーダによって伸長を実行するために使用され、現在のビデオフレームの第2特徴を取得する。現在のビデオフレームの参照フレームと現在のビデオフレームの第2特徴は、現在のビデオフレームの再構成フレームの生成処理に使用される。
本願のこの実施形態では、目標ニューラルネットワークが第3ニューラルネットワークである場合、目標圧縮情報には現在のビデオフレームの第1特徴の第1圧縮情報が含まれ、第3ニューラルネットワークにはエントロピー復号層と復号ネットワークが含まれる。エントロピー復号層は、現在のビデオフレームの参照フレームに基づいて現在のビデオフレームの第1圧縮情報を伸長するために使用され、復号ネットワークは、現在のビデオフレームの第1特徴に基づいて現在のビデオフレームの再構成フレームを生成するために使用される。
具体的には、目標ニューラルネットワークが第3ニューラルネットワークである場合、デコーダがステップ1004を実行する特定の実装については、図7Aに対応する実施形態のステップ702の説明を参照のこと。違いは、ステップ702で、エンコーダが現在のビデオフレームに対応する第1圧縮情報に基づいて、第1ニューラルネットワークを使用して伸長を実行し、現在のビデオフレームの再構成フレームを取得することである。しかし、ステップ1004で、デコーダは、現在のビデオフレームに対応する第1圧縮情報に基づいて、第3ニューラルネットワークを使用して伸長を実行し、現在のビデオフレームの再構成フレームを取得する。
目標ニューラルネットワークが第4ニューラルネットワークである場合、目標圧縮情報には現在のビデオフレームの第2特徴の第2圧縮情報が含まれ、第4ニューラルネットワークにはエントロピー復号層と畳み込みネットワークが含まれる。エントロピー復号層は、第2圧縮情報に対してエントロピー復号を実行するために使用され、畳み込みネットワークは、現在のビデオフレームの参照フレームと現在のビデオフレームの第2特徴に基づいて、現在のビデオフレームの再構成フレームの生成処理を実行するために使用される。
具体的には、目標ニューラルネットワークが第4ニューラルネットワークである場合、デコーダがステップ1004を実行する特定の実装については、図7Aに対応する実施形態のステップ704の説明を参照のこと。違いは、ステップ704で、エンコーダが現在のビデオフレームに対応する第2圧縮情報に基づいて、第2ニューラルネットワークを使用して伸長を実行し、現在のビデオフレームの再構成フレームを取得することである。しかし、ステップ1004で、デコーダは、現在のビデオフレームに対応する第2圧縮情報に基づいて、第4ニューラルネットワークを使用して伸長を実行し、現在のビデオフレームの再構成フレームを取得する。
本願の実施形態は、ビデオフレーム伸長方法をさらに提供する。図11は、本願の実施形態によるビデオフレーム伸長方法の別の概略フローチャートである。本願のこの実施形態によるビデオフレーム伸長方法は、以下のステップを含むことができる:
1101:デコーダは、現在のビデオフレームに対応する目標圧縮情報を受信する。目標圧縮情報は第1圧縮情報又は第2圧縮情報である。
1102:デコーダは、現在のビデオフレームに対応する指示情報を受信する。指示情報は、第1圧縮情報が第3ニューラルネットワークを使用した伸長によって得られ、第2圧縮情報は第4ニューラルネットワークを使用した伸長によって得られたことを示す。
本願のこの実施形態のステップ1101とステップ1102の具体的な実装については、図10Aに対応する実施形態におけるステップ1001とステップ1002の説明を参照する。詳細は、ここでは再度説明しない。
1103:デコーダは、第3ニューラルネットワークを使用して第3ビデオフレームの第1圧縮情報を伸長し、第3ビデオフレームの再構成フレームを取得する。
本願のこの実施形態では、デコーダは、複数のニューラルネットワークから第3ニューラルネットワークを選択し、第3ビデオフレームの第1圧縮情報を伸長する。「複数のニューラルネットワークから第3ビデオフレームに対応する第3ニューラルネットワークを選択する」具体的な実装処理については、図10Aに対応する実施形態のステップ1003の説明を参照のこと。詳細は、ここでは再度説明しない。
、第3ニューラルネットワークは、エントロピー復号層と復号ネットワークを含み、エントロピー復号層は、現在のビデオフレームの参照フレームに基づいて現在のビデオフレームの第1圧縮情報に対してエントロピー復号を実行するために使用され、復号ネットワークは、現在のビデオフレームの第1特徴に基づいて現在のビデオフレームの再構成フレームを生成するために使用される。デコーダが第3ニューラルネットワークを使用して第3ビデオフレームの第1圧縮情報を伸長する具体的な実装については、図7Aに対応する実施形態のステップ702の説明を参照のこと。詳細は、ここでは再度説明しない。
第1圧縮情報には第3ビデオフレームの第1特徴の圧縮情報が含まれ、第3ビデオフレームの参照フレームは、第3ビデオフレームの第1特徴を得るために、第1圧縮処理の伸長処理に使用され、第3ビデオフレームの第1特徴は第3ビデオフレームの再構成フレームの生成処理に使用される。現在のビデオシーケンスは、第3ビデオフレームの再構成フレームと第3ビデオフレームの参照フレームの両方を含む。つまり、デコーダは、第1圧縮情報を伸長した後、第3ビデオフレームの参照フレームなしで、第3ビデオフレームの再構成フレームを取得できる。
更に、「第3ビデオフレームの第1特徴」の意味については、「現在のビデオフレームの第1特徴」の意味の説明を参照のこと。「第3ビデオフレームの参照フレーム」の意味については、「現在のビデオフレームの参照フレーム」の意味の説明を参照のこと。詳細は、ここでは再度説明しない。第3ビデオフレームの再構成フレームは、第1圧縮情報を伸長して得られる、第3ビデオフレームに対応するビデオフレームである。
1104:デコーダは、第4ニューラルネットワークを使用して第4ビデオフレームの第2圧縮情報を伸長し、第4ビデオフレームの再構成フレームを取得する。
本願のこの実施形態では、デコーダは、複数のニューラルネットワークから第4ニューラルネットワークを選択し、第4ビデオフレームの第1圧縮情報を伸長する。「複数のニューラルネットワークから第4ビデオフレームに対応する第4ニューラルネットワークを選択する」具体的な実装処理については、図10Aに対応する実施形態のステップ1003の説明を参照のこと。詳細は、ここでは再度説明しない。
第4ニューラルネットワークは、エントロピー復号層と畳み込みネットワークを更に含み、エントロピー復号層は、第2圧縮情報に対してエントロピー復号を実行するために使用され、畳み込みネットワークは、現在のビデオフレームの参照フレームと現在のビデオフレームの第2特徴に基づいて、現在のビデオフレームの再構成フレームの生成処理を実行するために使用される。デコーダが第4ニューラルネットワークを使用して第4ビデオフレームの第2圧縮情報を伸長する具体的な実装については、図7Aに対応する実施形態のステップ704の説明を参照のこと。詳細は、ここでは再度説明しない。
第2圧縮情報には、第4ビデオフレームの第2特徴の圧縮情報が含まれ、第2圧縮情報はデコーダによって伸長を実行して第4ビデオフレームの第2特徴を取得するために使用され、第4ビデオフレームの参照フレームと第4ビデオフレームの第2特徴は、第4ビデオフレームの再構成フレームの生成処理に使用される。現在のビデオシーケンスは、第4ビデオフレームの再構成フレームと第4ビデオフレームの参照フレームの両方を含む。
更に、「第4ビデオフレームの第2特徴」の意味については、「現在のビデオフレームの第2特徴」の意味の説明を参照のこと。「第4ビデオフレームの参照フレーム」の意味については、「現在のビデオフレームの参照フレーム」の意味の説明を参照のこと。詳細は、ここでは再度説明しない。第4ビデオフレームの再構成フレームは、第2圧縮情報を伸長して得られる、第4ビデオフレームに対応するビデオフレームである。
2.トレーニングフェーズ
図12は、実施形態によるビデオフレーム圧縮及び伸長システムのトレーニング方法の概略フローチャートである。本願のこの実施形態によるビデオフレーム圧縮及び伸長システムをトレーニングする方法は、以下のステップを含むことができる:
1201:トレーニング装置は、現在のビデオフレームに対して、第1ニューラルネットワークを使用して第1トレーニングビデオフレームに圧縮符号化を行い、第1トレーニングフレームに対応する第1圧縮情報を取得する。
本願のこの実施形態では、トレーニング装置はトレーニングデータセットを事前に保存し、トレーニングデータセットは複数の第1トレーニングビデオフレームを含む。ステップ1201の具体的な実装については、図8に対応する実施形態のステップ801の説明を参照のこと。詳細は、ここでは再度説明しない。違いは、ステップ801の「第3ビデオフレーム」が、この実施形態では「第1トレーニングビデオフレーム」に置き換えられ、ステップ1201では、トレーニング装置が第1ニューラルネットワークと第2ニューラルネットワークから目標ニューラルネットワークを選択する必要がないことである。つまり、ステップ1201では、トレーニング装置は、第1圧縮情報と第2圧縮情報から目標圧縮情報を選択する必要がない。
1202:トレーニング装置は、第3ニューラルネットワークを使用して第1トレーニングビデオフレームの第1圧縮情報を伸長し、第1トレーニング再構成フレームを取得する。
本願のこの実施形態でトレーニング装置がステップ1202を実行する具体的な実装については、図11に対応する実施形態のステップ1103の説明を参照のこと。詳細は、ここでは再度説明しない。違いは、ステップ1103の「第3ビデオフレーム」が、この実施形態では「第1トレーニングビデオフレーム」に置き換えられ、ステップ1202では、トレーニング装置が第3ニューラルネットワークと第4ニューラルネットワークから目標ニューラルネットワークを選択する必要がないことである。
1203:トレーニング装置は、事前設定された条件が満たされるまで、第1トレーニングビデオフレーム、第1トレーニング再構成フレーム、第1圧縮情報、及び第1損失関数に基づいて、第1ニューラルネットワークと第3ニューラルネットワークをトレーニングする。
本願のこの実施形態では、トレーニング装置は、第1損失関数の収束条件が満たされるまで、第1トレーニングビデオフレーム、第1トレーニング再構成フレーム、第1トレーニングビデオフレームに対応する第1圧縮情報、及び第1損失関数に基づいて、第1ニューラルネットワークと第3ニューラルネットワークに対して反復トレーニングを実行できる。
第1損失関数は、第1トレーニングビデオフレームと第1トレーニング再構成フレームとの類似性の損失項と、第1トレーニングビデオフレームの第1圧縮情報のデータサイズの損失項を含み、第1トレーニング再構成フレームは、第1トレーニングビデオフレームの再構成フレームである。第1損失関数のトレーニング目的は、第1トレーニングビデオフレームと第1トレーニング再構成フレームの類似性を高めることを含む。第1損失関数のトレーニング目的は、さらに、第1トレーニングビデオフレームの第1圧縮情報のサイズを小さくすることを含む。第1ニューラルネットワークは、ビデオフレーム上で圧縮符号化を実行するために使用されるニューラルネットワークである。第1ニューラルネットワークは、、圧縮情報に基づいて伸長を実行するために使用されるニューラルネットワークである。
具体的には、トレーニング装置は、第1トレーニングビデオフレーム、第1トレーニング再構成フレーム、及び第1トレーニングビデオフレームに対応する第1圧縮情報に基づいて、第1損失関数の関数値を計算し、第1損失関数の関数値に基づいて勾配値を生成し、第1ニューラルネットワークと第3ニューラルネットワークの重みパラメータに対して逆更新を行い、第1ニューラルネットワークと第3ニューラルネットワークの1回のトレーニングを完了することができる。トレーニング装置は、ステップ1201からステップ1203を繰り返し実行して、第1ニューラルネットワークと第3ニューラルネットワークの反復トレーニングを実装する。
1204:トレーニング装置は、第2ニューラルネットワークを使用して、第2トレーニングビデオフレームの参照フレームに基づいて、第2トレーニングビデオフレームに圧縮符号化を実行し、第2トレーニングビデオフレームに対応する第2圧縮情報を取得する。ここで、第2トレーニングビデオフレームの参照フレームは、トレーニングされた第1ニューラルネットワークによって処理されたビデオフレームである。
本願のこの実施形態でトレーニング装置がステップ1202を実行する具体的な実装については、図8に対応する実施形態のステップ802の説明を参照のこと。詳細は、ここでは再度説明しない。違いは、ステップ802の「第4ビデオフレーム」が、この実施形態では「第2トレーニングビデオフレーム」に置き換えられ、ステップ1204では、トレーニング装置が第1ニューラルネットワークと第2ニューラルネットワークから目標ニューラルネットワークを選択する必要がないことである。つまり、ステップ1204では、トレーニング装置は、第1圧縮情報と第2圧縮情報から目標圧縮情報を選択する必要がない。
第2トレーニングビデオフレームの参照フレームは、トレーニングデータセット内の元のビデオフレームである場合もあれば、成熟した第1ニューラルネットワーク(すなわち、トレーニングされた第1ニューラルネットワーク)によって処理されるビデオフレームである場合もある。
具体的には、実装では、第1ニューラルネットワークには第1符号化ネットワークが含まれ、第3ニューラルネットワークには第1復号ネットワークが含まれるため、トレーニング装置は、第2トレーニングビデオフレームの元の参照フレームを成熟した第1ニューラルネットワーク(すなわち、トレーニングされた第1ニューラルネットワーク)内の第1符号化ネットワークに入力して、第2トレーニングビデオフレームを符号化し、符号化結果を得ることができ、符号化結果を成熟した第3ニューラルネットワーク(すなわち、トレーニングされた第3ニューラルネットワーク)内の第1復号ネットワークに入力して、符号化結果を復号し、第2トレーニングビデオフレームの処理済み参照フレームを得ることができる。さらに、トレーニング装置は、第2トレーニングビデオフレームと第2トレーニングビデオフレームの処理済み参照フレームを第2ニューラルネットワークに入力し、第2ニューラルネットワークを使用して、第2トレーニングビデオフレームに対応する第2圧縮情報を生成する。
別の実装では、トレーニング装置は、第2トレーニングビデオフレームの元の参照フレームを成熟した第1ニューラルネットワークに入力し、成熟した第1ニューラルネットワークを使用して、第2トレーニングビデオフレームの元の参照フレームに対応する第1圧縮情報を生成し、成熟した第3ニューラルネットワークを使用して、第2トレーニングビデオフレームの元の参照フレームに対応する第1圧縮情報に基づいて伸長を実行し、第2トレーニングビデオフレームの処理された参照フレームを取得できる。さらに、トレーニング装置は、第2トレーニングビデオフレームと第2トレーニングビデオフレームの処理済み参照フレームを第2ニューラルネットワークに入力し、第2ニューラルネットワークを使用して、第2トレーニングビデオフレームに対応する第2圧縮情報を生成する。
本願のこの実装では、実行フェーズで、第2ニューラルネットワークによって使用される参照フレームが第1ニューラルネットワークによって処理される可能性があるため、第1ニューラルネットワークによって処理された参照フレームが第2ニューラルネットワークのトレーニングに使用される。これは、トレーニングフェーズと実行フェーズの間の一貫性を維持し、実行フェーズの精度を向上させるのに役立つ。
1205:トレーニング装置は、第4ニューラルネットワークを使用して第2トレーニングビデオフレームの第2圧縮情報を伸長し、第2トレーニング再構成フレームを取得する。
本願のこの実施形態でトレーニング装置がステップ1202を実行する具体的な実装については、図11に対応する実施形態のステップ1104の説明を参照のこと。詳細は、ここでは再度説明しない。違いは、この実施形態ではステップ1104の「第4ビデオフレーム」が「第2トレーニングビデオフレーム」に置き換えられ、ステップ1205では、トレーニング装置が第3ニューラルネットワークと第4ニューラルネットワークから目標ニューラルネットワークを選択する必要がないことである。
1206:トレーニング装置は、事前設定された条件が満たされるまで、第2トレーニングビデオフレーム、第2トレーニング再構成フレーム、第2圧縮情報、及び第2損失関数に基づいて、第2ニューラルネットワークと第4ニューラルネットワークをトレーニングする。
本願のこの実施形態では、トレーニング装置は、第2損失関数の収束条件が満たされるまで、第2トレーニングビデオフレーム、第2トレーニング再構成フレーム、第2トレーニングビデオフレームに対応する第2圧縮情報、及び第2損失関数に基づいて、第2ニューラルネットワークと第4ニューラルネットワークに対して反復トレーニングを実行できる。
第2損失関数は、第2トレーニングビデオフレームと第2トレーニング再構成フレームとの類似性の損失項と、第2トレーニングビデオフレームの第2圧縮情報のデータサイズの損失項を含み、第2トレーニング再構成フレームは、第2トレーニングビデオフレームの再構成フレームである。第2損失関数のトレーニング目的は、第2トレーニングビデオフレームと第2トレーニング再構成フレームの類似性を高めることを含む。第2損失関数のトレーニング目的は、さらに、第2トレーニングビデオフレームの第2圧縮情報のサイズを小さくすることを含む。第2ニューラルネットワークは、ビデオフレーム上で圧縮符号化を実行するために使用されるニューラルネットワークである。第4ニューラルネットワークは、、圧縮情報に基づいて伸長を実行するために使用されるニューラルネットワークである。
具体的には、トレーニング装置は、第2トレーニングビデオフレーム、第2トレーニング再構成フレーム、及び第2トレーニングビデオフレームに対応する第2圧縮情報に基づいて、第2損失関数の関数値を計算し、第2損失関数の関数値に基づいて勾配値を生成し、第2ニューラルネットワークと第4ニューラルネットワークの重みパラメータに対して逆更新を行い、第2ニューラルネットワークと第4ニューラルネットワークの1回のトレーニングを完了することができる。トレーニング装置は、ステップ1204からステップ1206を繰り返し実行して、第2ニューラルネットワークと第4ニューラルネットワークの反復トレーニングを実装する。
第1ニューラルネットワークと第3ニューラルネットワークの両方が複数の独立したニューラルネットワークモジュールを含むため、対応して、第2ニューラルネットワークと第4ニューラルネットワークも複数の独立したニューラルネットワークモジュールを含む。独立したニューラルネットワークモジュールは、独立した機能を持つニューラルネットワークモジュールである。例えば、第1ニューラルネットワークにおける第1符号化ネットワークは、独立したニューラルネットワークモジュールである。別の例として、第2ニューラルネットワークにおける第1復号ネットワークは、独立したニューラルネットワークモジュールである。
任意で、第2ニューラルネットワークと第4ニューラルネットワークが第1ニューラルネットワークと第3ニューラルネットワークと同じニューラルネットワークモジュールを持つ場合、第2ニューラルネットワークと第4ニューラルネットワークのパラメータは、トレーニングされた第1ニューラルネットワークとトレーニングされた第3ニューラルネットワークに基づいて最初に初期化される場合がある。つまり、トレーニングされた第1ニューラルネットワークとトレーニングされた第3ニューラルネットワークのパラメータは同じニューラルネットワークモジュールに割り当てられ、第2ニューラルネットワークと第4ニューラルネットワークのトレーニング処理において同じニューラルネットワークモジュールのパラメータは変化しない。第2ニューラルネットワークと第4ニューラルネットワークのトレーニング処理の合計時間を短縮し、第2ニューラルネットワークと第4ニューラルネットワークのトレーニング効率を向上させるために、第2ニューラルネットワークと第4ニューラルネットワークの残りのニューラルネットワークモジュールのパラメータが調整される。
本願の実施形態には、ニューラルネットワークの実行処理とニューラルネットワークのトレーニング処理の両方を提供する。これは、ソリューションの適用シナリオを拡張し、ソリューションの包括性を向上させる。
本願の実施形態によってもたらされる有益な効果をより直感的に理解するために、以下では、本願の実施形態によってもたらされる有益な効果について、添付の図面を参照してさらに説明する。本実験では、例えば、第1ニューラルネットワークを使用してビデオフレームを圧縮するたびに、第2ニューラルネットワークを使用してビデオフレームを圧縮する。表1に実験データを示す。
表1
表1を参照する。解像度の異なるビデオシーケンスの3つのグループでは、本願の実施形態のソリューションを使用して圧縮されたビデオシーケンスのビデオフレームは、第2ニューラルネットワークのみを使用して圧縮されたビデオシーケンスのビデオフレームよりも高画質であることを学習できる。
この実験では、例えば、第1フィッティング式のオフセットと傾きを生成し、第2フィッティング式のオフセットと傾きを生成し、第1フィッティング式のオフセットと傾き及び第2フィッティング式のオフセットと傾きを継続的に更新する。表2に実験データを示す。
表2
表2を参照する。解像度の異なるビデオシーケンスの2つのグループでは、本願の実施形態のソリューションを使用して圧縮されたビデオシーケンスのビデオフレームは、第2ニューラルネットワークのみを使用して圧縮されたビデオシーケンスのビデオフレームよりも高画質であることを学習できる。
本願の実施形態は、ビデオ符号化/復号システムを更に提供する。図13は、本願の実施形態によるビデオ符号化/復号システムのシステムアーキテクチャの図である。図13は、ビデオ符号化/復号システム10の例の概略ブロック図である。ビデオ符号化/復号システム10のビデオエンコーダ20(又は、略してエンコーダ20)とビデオデコーダ30(又は、略してデコーダ30)は、本願に記述された様々な例に基づいて様々な技術を実行するために使用できる装置を表す。
図13に示すように、ビデオ符号化/復号システム10は、ソース装置12を含む。ソース装置12は、符号化されたピクチャなどの符号化ピクチャデータ21を、符号化ピクチャデータ21を復号するように構成された宛先装置14に提供するように構成される。
ソース装置12は、エンコーダ20を含み、任意で、ピクチャソース16、ピクチャプリプロセッサなどのプリプロセッサ(又は前処理ユニット)18、及び通信インタフェース(又は通信ユニット)22を含むことができる。
ピクチャソース16は、実世界でピクチャをキャプチャするように構成された任意のタイプのピクチャキャプチャ装置、及び/又は任意のタイプのピクチャ生成装置、例えば、コンピュータアニメーションピクチャを生成するように構成されたコンピュータグラフィックスプロセッサ、又は実世界のピクチャ、コンピュータ生成ピクチャ(例えば、スクリーン上のコンテンツ、仮想現実(virtual reality, VR)のピクチャ、及び/又はそれらの組み合わせ(例えば、拡張現実(augmented reality, AR)ピクチャ)を取得する及び/又は提供するように構成された任意のタイプの装置を含むことができる。ピクチャソースは、前述のピクチャのうちのいずれかを格納する任意のタイプのメモリ又は記憶装置であってよい。
プリプロセッサ(又は前処理ユニット)18によって行われる処理を区別するために、ピクチャ(又はピクチャデータ17)を元のピクチャ(又は元のピクチャデータ)17と呼ぶこともある。
プリプロセッサ18は、(元の)ピクチャデータ17を受信し、ピクチャデータ17を前処理して、前処理済みピクチャ(又は前処理済みピクチャデータ)19を取得するよう構成される。例えば、プリプロセッサ18により実行される前処理は、トリミング、色形式変換(例えば、RGBからYCbCrへの変換)、色補正、又はノイズ除去を含んでよい。前処理ユニット18は光コンポーネントであってよいことが理解できる。
ビデオエンコーダ(又はエンコーダ)20は、前処理済みピクチャデータ19を受信し、符号化ピクチャデータ21を提供するよう構成される。
ソース装置12の通信インタフェース22は、符号化ピクチャデータ21を受信し、符号化ピクチャデータ21(又はその他の処理されたバージョン)を、記憶又は直接再構成のために通信チャネル13を介して宛先装置14又はその他の装置などの別の装置に送信するように構成されてもよい。
宛先装置14は、デコーダ30を含み、任意で、通信インタフェース(又は通信ユニット)28、ポストプロセッサ(又は後処理ユニット)32、及びディスプレイ装置34を含んでよい。
宛先装置14の通信インタフェース28は、符号化ピクチャデータ21(又はその他の処理されたバージョン)を、例えばソース装置12から又は任意の他の装置装置、例えば記憶装置から直接受信するよう構成される。例えば、記憶装置は、符号化ピクチャデータを格納する装置であり、符号化ピクチャデータ21をデコーダ30に提供する。
通信インタフェース22及び通信インタフェース28は、符号化ピクチャデータ(又は符号化データ)21を、ソース装置12と宛先装置14の間の直接通信リンク、例えば有線又は無線接続、又は有線ネットワーク、無線ネットワーク、又は有線ネットワークと無線ネットワークの任意の組み合わせ、任意のタイプのプライベートネットワーク、任意のタイプのパブリックネットワーク、又はプライベートネットワークとパブリックネットワークの任意の組み合わせを介して送信又は受信するように構成することができる。
例えば、通信インタフェース22は、例えば、符号化ピクチャデータ21を適切な形式、例えばパケットにカプセルし、及び/又は通信リンク又は通信ネットワークを介して送信するために、任意のタイプの送信符号化若しくは処理を用いて符号化ピクチャデータを処理するよう構成されてよい。
通信インタフェース28は、通信インタフェース22に対応し、例えば、送信データを受信し、任意のタイプの対応する伝送復号又は処理及び/又はカプセル化解除を通じて送信データを処理し、符号化ピクチャデータ21を取得するように構成される。
通信インタフェース22及び通信インタフェース28の両方は、図13でソース装置12から宛先装置14を指す通信チャネル13の矢印により示されるように、単方向通信インタフェース、又は、双方向通信インタフェースとして構成されてよく、例えば接続を確立するため、通信リンク及び/又はデータ送信、例えば符号化ピクチャデータ送信に関連する任意の他の情報に確認応答し及び交換するために、例えばメッセージを送信及び受信するよう構成されてよい。
ビデオデコーダ(又はデコーダ)30は、符号化ピクチャデータ21を受信し、復号ピクチャデータ(又は復号されたピクチャデータ)31を提供するよう構成される。復号ピクチャデータは、再構成ピクチャデータ、ビデオフレームの再構成フレーム、又は別名で呼ばれることもあり、符号化ピクチャデータ21に基づいて伸長が行われた後に得られるピクチャデータである。
ポストプロセッサ32は、復号されたピクチャなどの復号ピクチャデータ31に対して後処理を行い、後処理されたピクチャなどの後処理済みピクチャデータ33を得るように構成されている。ポストプロセッサ32により実行される後処理は、例えば色形式変換(例えば、YCbCrからRGBへの変換)、色補正、トリミング、又は再サンプリング又は、例えばディスプレイ装置34により表示される復号ピクチャデータ31を生成するための任意の他の処理、を含んでよい。
ディスプレイ装置34は、ユーザ、ビューア、等にピクチャを表示するために、後処理ピクチャデータ33を受信するよう構成される。ディスプレイ装置34は、再構成ピクチャを表示するように構成された、例えば、統合又は外部ディスプレイ画面やディスプレイなど、任意のタイプのディスプレイであってもよく、またそれを含んでもよい。例えば、ディスプレイ画面は、液晶ディスプレイ(liquid crystal display, LCD)、有機発光ダイオード(organic light emitting diode, OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、シリコン上の液晶(liquid crystal on silicon, LCoS)、デジタル光プロセッサ(digital light processor, DLP)、又は任意のタイプの別のディスプレイ画面、を含んで画面よい。
ビデオ符号化/復号システム10は、トレーニングエンジン25も含んでよい。トレーニングエンジン25は、ニューラルネットワーク、すなわち、方法の実施形態に示された第1ニューラルネットワーク、第2ニューラルネットワーク、第3ニューラルネットワーク、及び第4ニューラルネットワークを、エンコーダ20又はデコーダ30においてトレーニングするように構成される。トレーニングデータはデータベース(示されていない)に格納することができ、トレーニングエンジン25はトレーニングデータに基づいてトレーニングを実行し、ニューラルネットワークを取得する。なお、本願のこの実施形態では、トレーニングデータのソースは限定されない。例えば、ニューラルネットワークをトレーニングするために、クラウドや他の場所からトレーニングデータを取得することができる。
トレーニングエンジン25によるトレーニングによって得られたニューラルネットワークは、例えば、図13に示すソース装置12(例えば、エンコーダ20)又は宛先装置14(例えば、デコーダ30)に適用されるビデオ符号化/復号システム10及びビデオ符号化/復号システム40に適用することができる。トレーニングエンジン25は、クラウド上でトレーニングを実行してニューラルネットワークを取得し、その後、ビデオ符号化/復号システム10はクラウドからニューラルネットワークをダウンロードし、ニューラルネットワークを使用することができる。
図13は、ソース装置12と宛先装置14を独立した装置として示しているが、装置の実施形態は、代わりにソース装置12と宛先装置14の両方を含むことも、ソース装置12と宛先装置14の両方の機能、つまり、ソース装置12又は対応する機能と宛先装置14又は対応する機能の両方を含むこともできる。これらの実施形態では、ソース装置12又は対応する機能及び宛先装置14又は対応する機能は、同じハードウェア及び/又はソフトウェア使用し別個のハードウェア及び/又はソフトウェアを用いて又はそれらの任意の組み合わせを用いて実装されてよい。
説明に基づくと、図13に示すソース装置12及び/又は宛先装置14の異なるユニット又は機能の存在及び(正確な)分割は、実際の装置及びアプリケーションによって異なる場合がある。これは、当業者には明らかである。
図14は、本願の実施形態によるビデオ符号化/復号システムの別のシステムアーキテクチャの図である。以下は、図13を参照して記載される。エンコーダ20(例えば、ビデオエンコーダ20)、デコーダ30(例えば、ビデオデコーダ30)、又はエンコーダとデコーダの両方は、例えば、図14に示す処理回路、例えば、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processor, DSP)、特定用途向け集積回路(application-specific integrated circuit, ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array, FPGA)、個別ロジック、ハードウェア、ビデオ符号化専用プロセッサ、又はそれらの任意の組み合わせを使用して実装することができる。エンコーダ20は、処理回路46を使用して、図14のエンコーダ20を参照して記述された様々なモジュール及び/又は本明細書に記述された他のデコーダシステム又はサブシステムを含むように実装することができる。デコーダ30は、処理回路46を使用して、図15のデコーダ30を参照して記述された様々なモジュール及び/又は本明細書に記述された他のデコーダシステム又はサブシステムを含むように実装することができる。処理回路46は、以下の種々の動作を実行するよう構成されてよい。図16に示すように、ソフトウェアを使用して幾つかの技術を実装する場合、装置は、ソフトウェアの命令を適切な非一時的コンピュータ可読記憶媒体に格納し、その命令を1つ以上のプロセッサを使用してハードウェアで実行して、本願の技術を実行することができる。図14に示すように、ビデオエンコーダ20とビデオデコーダ30のいずれかを、結合されたエンコーダ/デコーダ(encoder/decoder, CODEC)の一部として単一の装置に統合することができる。
ソース装置12及び宛先装置14は、任意のタイプのハンドヘルド又は固定装置、例えばノートブック又はラップトップコンピュータ、移動電話機、スマートフォン、タブレット又はタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビジョン、ディスプレイ装置、デジタルメディアプレイヤ、ビデオゲーム端末、(コンテンツサービスサーバ、又はコンテンツ配信サーバのような)ビデオストリーミング装置、ブロードキャスト受信装置、ブロードキャスト送信装置、を含む、種々の装置のうちのいずれかを含んでよく、任意のタイプのオペレーティングシステムを使用してよく又は使用しなくてよい。幾つかの場合には、ソース装置12及び宛先装置14は、無線通信のコンポーネントを装備されてよい。従って、ソース装置12及び宛先装置14は、無線通信装置であってよい。
場合によっては、図13に示すビデオ符号化/復号システム10は単なる例である。本願で提供する技術は、ビデオ符号化設定(例えば、ビデオ符号化又はビデオ復号)にも適用可能であり、設定は必ずしも符号化装置と復号装置との間のデータ通信を含まない。また、ローカルメモリからデータを取得し、ネットワークを利用して送信する例もある。ビデオ符号化装置は、データを符号化し、データをメモリに格納してよく、及び/又はビデオ復号装置は、メモリからデータを読み出し、データを復号してよい。幾つかの例では、符号化及び復号は、互いに通信しないがデータをメモリへと符号化し及び/又はメモリからデータを読み出しデータを復号する装置により実行される。
図14は、例示的な実施形態による、ビデオエンコーダ20及び/又はビデオデコーダ30を含むビデオ符号化/復号システム40の例の図である。ビデオ符号化/復号システム40は、画像装置41、ビデオエンコーダ20、ビデオデコーダ30(及び/又は処理回路46を使用して実装されるビデオエンコーダ/デコーダ)、アンテナ42、1つ以上のプロセッサ43、1つ以上のメモリ44、及び/又はディスプレイ装置45を含んでよい。
図14示されるように、画像装置41、アンテナ42、処理回路46、ビデオエンコーダ20、ビデオデコーダ30、プロセッサ43、メモリ44、及び/又はディスプレイ装置45は、互いに通信できる。異なる例では、ビデオ符号化/復号システム40は、ビデオエンコーダ20のみを含むことも、ビデオデコーダ30のみを含むこともできる。
幾つかの例では、アンテナ42は、ビデオデータの符号化ビットストリームを送信又は受信するよう構成されてよい。更に、幾つかの例では、ディスプレイ装置45は、ビデオデータを提示するよう構成されてよい。処理回路46は、特定用途向け集積回路(application-specific integrated circuit, ASIC)ロジック、グラフィックプロセッサ、汎用プロセッサ、等を含んでよい。ビデオ符号化/復号システム40は、任意的なプロセッサ43も含んでよい。同様に、任意的なプロセッサ43は、特定用途向け集積回路(application-specific integrated circuit, ASIC)ロジック、グラフィックプロセッサ、汎用プロセッサ、等を含んでよい。更に、メモリ44は、任意のタイプのメモリ、例えば、性(不揮発性性メモリ(例えば、静的ランダムアクセスメモリ(Static Random Access Memory, SRAM)、又は動的ランダムアクセスメモリ(Dynamic Random Access Memory, DRAM)又は不揮発性メモリ(例えば、フラッシュメモリ)であってよい。非限定的な例では、メモリ44はキャッシュメモリにより実装されてよい。別の例では、処理回路46は、ピクチャバッファを実装するよう構成されるメモリ(例えば、キャッシュ)を含んでよい。
幾つかの例では、論理回路を用いて実装されるビデオエンコーダ20は、(例えば、処理回路46又はメモリ44により実装される)ピクチャバッファ、及び(例えば、処理回路46により実装される)グラフィック処理ユニットを含んでよい。グラフィック処理ユニットは、ピクチャバッファに通信可能に接続されてよい。グラフィックス処理ユニットは、処理回路46を使用して実装されたビデオエンコーダ20を含み、図14に示すビデオデコーダ20及び/又は本明細書に記述された他のエンコーダシステム又はサブシステムを参照して記述された各種モジュールを実装してもよい。論理回路は、本明細書における種々の動作を実行するよう構成されてよい。
幾つかの例では、ビデオデコーダ30は、同様に処理回路46を使用して実装され、図14に示すビデオデコーダ30及び/又は本明細書に記述された他のデコーダシステム又はサブシステムを参照して記述された各種モジュールを実装してもよい。幾つかの例では、論理回路を用いて実装されるビデオデコーダ30は、(例えば、処理回路46又はメモリ44により実装される)ピクチャバッファ、及び(例えば、処理回路46により実装される)グラフィック処理ユニットを含んでよい。グラフィック処理ユニットは、ピクチャバッファに通信可能に接続されてよい。グラフィック処理ユニットは、処理回路46により実装されるビデオデコーダ30を含んでよい。
幾つかの例では、アンテナ42は、ビデオデータの符号化ビットストリームを受信するよう構成されてよい。前述のように、符号化ビットストリームには、データ、指標、インデックス値、モード選択データなどが含まれることがあり、例えば、符号化パーティションに関連するデータ(例えば、変換係数又は量子化済み変換係数、(記述された)任意的な指標、及び/又は符号化パーティションを定義するデータ)は、ビデオフレームの符号化に関連している。ビデオ符号化/復号システム40は、アンテナ42に結合され符号化ビットビットストリームを復号するよう構成されるビデオデコーダ30を更に含んでよい。ディスプレイ装置45は、ビデオフレームを提示するよう構成される。
理解されるべきことに、本願のこの実施形態におけるビデオエンコーダ20を参照して説明した例に対して、ビデオデコーダ30は、逆の処理を実行するよう構成されてよい。シグナリングシンタックス要素に関して、ビデオデコーダ30は、これらのシンタックス要素を受信しパースし、相応して関連するビデオデータを復号するよう構成できる。幾つかの例では、ビデオエンコーダ20は、シンタックス要素にエントロピー符号化して、符号化ビデオビットビットストリームを取得してよい。例では、ビデオデコーダ30は、シンタックス要素をパースし、相応して関連関連られたビデオデータを復号してよい。
本願で説明されている符号化/復号処理は、H.263、H.264、MPEG-2、MPEG-4、VP8、VP9、及びAIに基づくエンドツーエンドピクチャ符号化など、ほとんどのビデオエンコーダ/デコーダに存在することに注意する必要がある。
図15は、本開示の実施形態によるビデオコーディング装置400の概略図である。ビデオコーディング装置400は、本明細書で説明した開示された実施形態を実装するのに適する。実施形態では、ビデオ符号化装置400は、ビデオデコーダ、例えば図14のビデオデコーダ30であってよく、又はエンコーダ、例えば、図14のビデオエンコーダ20であってよい。
ビデオ符号化装置400は、データを受信するよう構成されるイングレスポート410(又は入力ポート410)及び受信機ユニット(receiver unit, Rx)420と、データを処理するよう構成されるプロセッサ、論理ユニット、又は中央処理ユニット(central processing unit, CPU)430と、データを送信するよう構成される送信機ユニット(transmitter unit, Tx)440及びイグレスポート(又は出力ポート450)と、データを格納するよう構成されるメモリ460と、を含む。例えば、処理ユニット430はニューラルネットワーク処理ユニット430であってよい。ビデオコーディング装置400は、イングレスポート410、受信機ユニット420、送信機ユニット440、及びイグレスポート450に結合され、光信号又は電気信号の出口又は入口として使用される、光-電気(optical-to-electrical, OE)コンポーネント及び電気-光(electrical-to-optical, EO)コンポーネントを含むこともできる。
処理ユニット430は、ハードウェア及びソフトウェアを使用して実装される。処理ユニット430は、1つ以上のプロセッサチップ、コア(例えば、マルチコアプロセッサ)、FPGA、ASIC、及びDSPとして実装されてよい。処理ユニット430は、イングレスポート410、受信機ユニット420、送信機ユニット440、イグレスポート450、及びメモリ460と通信する。処理ユニット430は、コーディングモジュール470(例えば、ニューラルネットワークNNに基づくコーディングモジュール470)を含む。コーディングモジュール470は、上述の実施形態を実装する。例えば、コーディングモジュール470は、種々の符号化動作を実行し、処理し、準備し、又は提供する。そのため、ビデオコーディング装置400の機能にコーディングモジュール470を使用することで大幅な改善がもたらされ、ビデオコーディング装置400の異なる状態への切り換えが影響を受ける。代替として、コーディングモジュール470は、メモリ460に格納され処理ユニット430により実行される命令として実装される。
メモリ460は、1つ以上のディスク、テープドライブ、及び固体ドライブを含み、オーバーフローデータ記憶装置として使用することができ、プログラムが実行されるときプログラムを格納し、プログラムが実行されるとき読み取られる命令とデータを格納するように構成される。メモリ460は、不揮発性性及び/又は不揮発性であってよく、読み出し専用メモリ(read-only memory, ROM)、ランダムアクセスメモリ(random access memory, RAM)、三値連想メモリ(ternary content-addressable memory, TCAM)、及び/又は静的ランダムアクセスメモリ(static random access memory, SRAM)であってよい。
図16は、例示的な実施形態による機器500の簡略ブロック図である。機器500は、図13のソース装置12と宛先装置14のいずれか1つ又は2つとして使用されてよい。
機器500のプロセッサ502は、中央処理ユニットであってよい。代替として、プロセッサ502は、現在存在する又は将来開発される情報を操作し又は処理できる任意の他の種類の装置又はの複数の装置であり得る。開示されている実装は、図に示されているプロセッサ502のような単一のプロセッサを使用して実装することができるが、複数のプロセッサを使用する方が高速で効率的である。
実装では、機器500内のメモリ504は、読み出し専用メモリ(read -only memory(ROM))装置又はランダムアクセスメモリ(random access memory(RAM))装置であり得る。任意の他の適切なタイプの記憶装置が、メモリ504として使用できる。メモリ504は、バス512を用いてプロセッサ502によりアクセスされるコード及びデータ506を含み得る。メモリ504は、オペレーティングシステム508及びアプリケーションプログラム510を更に含んでよい。アプリケーションプログラム510は、プロセッサ502が本明細書に記載の方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、アプリケーション1~Nを含んでよく、アプリケーション1~Nは、本明細書に記載の方法を実行するビデオコーディングアプリケーションを更に含む。
機器500は、ディスプレイ518のような1つ以上の出力装置も含み得る。更なる例では、ディスプレイ518は、タッチ入力を感知するよう動作するタッチ-感応要素とディスプレイを結合するタッチ-感応ディスプレイであってよい。ディスプレイ518は、バス512を用いてプロセッサ502に結合され得る。
機器500のバス512は、ここでは単一のバスとして示されるが、バス512は、複数のバスを含む場合がある。また、補助メモリは、装置500内の他のコンポーネントに直接結合されていても、ネットワークを介してアクセスされていてもよく、メモリカードのような単一の統合ユニットを含むことも、複数のメモリカードのような複数のユニットを含むこともできる。したがって、機器500は様々な構成を有することができる。