(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-07
(45)【発行日】2025-01-16
(54)【発明の名称】深層強化学習によるエンドツーエンド依存量子化のための方法、装置及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/124 20140101AFI20250108BHJP
H04N 19/91 20140101ALI20250108BHJP
【FI】
H04N19/124
H04N19/91
(21)【出願番号】P 2022550905
(86)(22)【出願日】2021-09-30
(86)【国際出願番号】 US2021052806
(87)【国際公開番号】W WO2022115155
(87)【国際公開日】2022-06-02
【審査請求日】2022-10-24
(32)【優先日】2020-11-30
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-09-29
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(72)【発明者】
【氏名】ジャン,ウェイ
(72)【発明者】
【氏名】ワン,ウェイ
(72)【発明者】
【氏名】リウ,シャン
【審査官】間宮 嘉誉
(56)【参考文献】
【文献】国際公開第2019/162230(WO,A1)
【文献】国際公開第2020/007785(WO,A1)
【文献】HAASE, Paul et al.,Dependent Scalar Quantization for Neural Network Compression,Proc. IEEE International Conference on Image Processing 2020,AE,IEEE,2020年09月30日,pp.36-40,[online],[retrieved on 2023-11-28],Retrieved from the Internet: <URL: https://ieeexplore.ieee.org/document/9190955>,https://doi.org/10.1109/ICIP40778.2020.9190955
【文献】ALBRECHT, M. et al.,Description of SDR, HDR, and 360°Video Coding Technology Proposal by Fraunhofer HHI,JVET-J0014 (version 4),ITU,2018年04月12日,pp.31-33,[online],[retrieved on 2023-11-28],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/10_San%20Diego/wg11/JVET-J0014-v4.zip>,JVET-J0014-v4.docx
(58)【調査した分野】(Int.Cl.,DB名)
G10L 19/00-19/26
H03M 3/00- 9/00
H04N 7/12
H04N 19/00-19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサが実行するビデオコーディング方法であって、
ビデオデータの入力ストリームを取得するステップと、
前記入力ストリームにおける浮動小数点数に基づいてキーを計算するステップと、
状態予測器を用いて複数の以前のキーと複数の以前のDQ状態とに基づいて、現在の依存量子化(DQ)状態を予測するステップと、
前記キーおよび前記現在のDQ状態に基づいて、前記浮動小数点数を再構成するステップと、
前記再構成された浮動小数点数に基づいて、前記ビデオデータをコーディングするステップと、
を含み、
前記現在の依存量子化(DQ)状態を予測するステップの前に、複数の以前のキーと、複数の以前のDQ状態と、アクションと、前記アクションに関連付けられた出力Q値との間の関数関係を近似するように
、前記状態予測器の深層ニューラルネットワーク(DNN)を
Q学習で訓練することにより、最適な出力Q値をもたらすアクションに対応するDQ状態
を選択
することができるように前記状態予測器を構成するステップを更に含むことを特徴とする方法。
【請求項2】
前記入力ストリームにおける前記浮動小数点数を含む複数の浮動小数点数に基づいて、前記キーを含む複数のキーを計算するステップと、
前記複数のキーおよび少なくとも前記現在のDQ状態に基づいて、前記複数の浮動小数点数を再構成するステップと、をさらに含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記アクションは、前記DQ状態のうちの少なくとも1つに対応する、
ことを特徴とする請求項1に記載の方法。
【請求項4】
前記出力Q値は、前記アクションを含む一連のアクションに関連付けられたターゲット量子化性能の測定値を表す、
ことを特徴とする請求項1に記載の方法。
【請求項5】
前記状態予測器に基づいて前記現在のDQ状態を予測するステップは、アクションごとに、前記出力Q値を含むQ値を計算するステップ、を含む、
ことを特徴とする請求項4に記載の方法。
【請求項6】
前記出力Q値は、計算されたQ値から選択される、
ことを特徴とする請求項5に記載の方法。
【請求項7】
少なくとも1つのプロセッサが実行するビデオコーディングのための装置であって、
コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードを実行するように構成された少なくとも1つのプロセッサと、を含み、
前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに請求項1乃至6のうちいずれか1項に記載の方法を実行させる、
ことを特徴とする装置。
【請求項8】
コンピュータプログラムであって、
少なくとも1つのプロセッサに請求項1乃至6のうちいずれか1項に記載の方法を実行させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、2020年11月30日に出願された米国仮出願63/119,446および2021年9月29日に出願された米国出願17/488,438の優先権を主張しており、それらの全体は、参照により本願に明示的に組み込まれる。
【0002】
[技術分野]
本開示は、深層強化学習(DRL:Deep Reinforcement Learning)を用いた学習ベースのエンドツーエンド(E2E:End-to-End)依存量子化(DQ:Dependent Quantization)に関するものであり、任意の数のDQ状態をサポートし、ここで、異なるDQ状態間の遷移は、深層Q-ネットワーク(DQN:Deep Q-Network)アルゴリズムに基づいて自動的に決定され得る。
【背景技術】
【0003】
ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC 1/SC 29/WG 11)は、2013年(バージョン1)、2014年(バージョン2)、2015年(バージョン3)および2016年(バージョン4)で、H.265/HEVC(High Efficiency Video Coding、高効率ビデオコーディング)規格を公開した。2015年に、この2つの標準化組織は、HEVCを超える次のビデオコーディング標準を開発する可能性を探るために、共同ビデオ探索チーム(JVET:Joint Video Exploration Team)を共同で設立した。2017年10月に、HEVCを超える機能を有するビデオ圧縮に関する共同提案募集(CfP:Call for Proposal)を発表した。2018年2月15日までに、標準ダイナミックレンジ(SDR:standard dynamic range)に関するCfP応答22件、ハイダイナミックレンジ(HDR:high dynamic range)に関するCfP応答12件、360個のビデオカテゴリーに関するCfP応答12件がそれぞれ提出された。2018年4月に、第122回のMPEG/第10回のJVET会議で、受信されたすべてのCfP応答が評価された。この会議の結果として、JVETは、HEVCを超える次世代ビデオコーディングの標準化プロセスを正式に開始した。新しい規格は、汎用ビデオコーディング(VVC:Versatile Video Coding)と命名され、JVETは、共同ビデオ専門家チーム(Joint Video Expert Team)と改名された。
【0004】
量子化は、画像およびビデオ圧縮の標準および制作におけるコアプロセスであり、また圧縮品質損失の1つの主な源である。量子化効率を改善することは、すべての画像およびビデオ圧縮のタスクにおいて、大きなパフォーマンス利得をもたらすことができる。
【発明の概要】
【0005】
例示的な実施形態によれば、方法および装置が提供され、当該装置は、コンピュータプログラムコードを記憶するように構成されたメモリと、コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードの指示に従って動作するように構成された1つまたは複数のプロセッサと、を含む。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに、ビデオデータの入力ストリームを取得させるように構成された取得コードと、前記少なくとも1つのプロセッサに、前記入力ストリームにおける浮動小数点数に基づいてキーを計算させるように構成された計算コードと、前記少なくとも1つのプロセッサに、状態予測器と複数の以前のキーと複数の以前のDQ状態とに基づいて、現在の依存量子化(DQ)状態を予測させるように構成された予測コードと、前記少なくとも1つのプロセッサに、前記キーおよび前記現在のDQ状態に基づいて、前記浮動小数点数を再構成させるように構成された再構成コードと、前記少なくとも1つのプロセッサに、前記再構成された浮動小数点数に基づいて、前記ビデオをコーディングさせるように構成されたコーディングコードと、を含む。
【0006】
例示的な実施形態によれば、前記キーを計算するステップおよび前記浮動小数点数を再構成するステップは、1つまたは複数の深層ニューラルネットワーク(DNN)を実現するステップ、を含む。
【0007】
例示的な実施形態によれば、前記状態予測器は、アクションと、前記アクションに関連付けられた出力Q値との間のアクション-値マッピング関数を含む。
【0008】
例示的な実施形態によれば、前記計算コードは、さらに、前記少なくとも1つのプロセッサに、前記入力ストリームにおける前記浮動小数点数を含む複数の浮動小数点数に基づいて、前記キーを含む複数のキーを計算させるように構成され、前記再構成コードは、さらに、前記少なくとも1つのプロセッサに、前記複数のキーおよび少なくとも前記現在のDQ状態に基づいて、前記複数の浮動小数点数を再構成させるように構成される。
【0009】
例示的な実施形態によれば、前記アクションは、前記DQ状態のうちの少なくとも1つに対応する。
【0010】
例示的な実施形態によれば、前記状態予測器は、さらに、前記アクションを含む複数のアクションのうちの1つと、前記DQ状態のうちの少なくとも1つを含む前記DQ状態のうちの1つとの間のそれぞれの対応関係を含む。
【0011】
例示的な実施形態によれば、前記現在のDQ状態を予測するステップは、アクションと、前記アクションに関連付けられた出力Q値との間のアクション-値マッピング関数、前記以前のキー、および前記以前のDQ状態を実現するステップ、を含む。
【0012】
例示的な実施形態によれば、前記状態予測器は、アクションと、前記アクションに関連付けられた出力Q値との間のアクション-値マッピング関数を含み、前記出力Q値は、前記アクションを含む一連のアクションに関連付けられたターゲット量子化性能の測定値を表す。
【0013】
例示的な実施形態によれば、前記状態予測器に基づいて前記現在のDQ状態を予測するステップは、アクションごとに、前記出力Q値を含むQ値を計算するステップ、を含む。
【0014】
例示的な実施形態によれば、前記出力Q値は、計算されたQ値から選択される。
【図面の簡単な説明】
【0015】
開示された主題のさらなる特徴、性質および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
【
図1】実施形態に係る通信システム概略図の簡略図である。
【
図13】実施形態に係るフローチャートの簡略図である。
【
図15】実施形態に係るフローチャートの簡略図である。
【
図17】実施形態に係るフローチャートの簡略図である。
【
図19】実施形態に係るフローチャートの簡略図である。
【
図21】実施形態に係るフローチャートの簡略図である。
【発明を実施するための形態】
【0016】
以下で説明する提案される機能は、単独で使用されてもよく、任意の順序で組み合わせて使用されてもよい。さらに、実施形態は、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実現され得る。一例では、1つまたは複数のプロセッサは、非一時的なコンピュータ読み取り可能な媒体に記憶されているプログラムを実行する。
【0017】
図1は、本開示の実施形態による通信システム100の簡略化されたブロック図を示す。通信システム100は、ネットワーク105を介して相互接続された、少なくとも2つの端末102および103を含むことができる。データの単方向伝送について、第1端末103は、ネットワーク105を介して他の端末102に送信するために、ローカル位置でビデオデータを符号化することができる。第2端末102は、ネットワーク105から他の端末の符号化されたビデオデータを受信し、符号化されたデータを復号して、復元されたビデオデータを表示することができる。単方向データ伝送は、メディアサービングアプリケーションでは一般的である。
【0018】
図1は、例えば、ビデオ会議中に発生する可能性がある、符号化されたビデオの双方向伝送をサポートする第2ペアの端末101および104を示す。データの双方向伝送の場合、各端末101および104は、ネットワーク105を介して他の端末に送信するために、ローカルで捕捉されたビデオデータを符号化することができる。各端末101および104は、他の端末によって送信された、符号化されたビデオデータを受信することもでき、符号化されたデータを復号することができ、また復元されたビデオデータをローカルの表示デバイスに表示することもできる。
【0019】
図1において、端末101、102、103および104は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示されてもよいが、本開示の原理は、そのように限定されない場合がある。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤおよび/または専用のビデオ会議機器での適用が見い出される。ネットワーク105は、符号化されたビデオデータを端末101、102、103および104で送信する任意の数のネットワークを表し、例えば、有線および/または無線の通信ネットワークを含む。通信ネットワーク105は、回線交換および/またはパケット交換のチャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本議論の目的のために、ネットワーク105のアーキテクチャおよびトポロジは、以下に本明細書で説明されない限り、本開示の動作にとって重要ではない場合がある。
【0020】
図2は、開示された主題に対するアプリケーションの例として、ストリーミング環境におけるビデオエンコーダおよびデコーダの配置を示す。開示された主題は、例えば、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮されたビデオの記憶、ビデオ会議、デジタルTVなどを含む、他のビデオサポートアプリケーションにも同等に適用可能である。
【0021】
ストリーミングシステムは、捕捉サブシステム203を含むことができ、この捕捉サブシステムが、例えばデジタルカメラなどのビデオソース201を含むことができ、例えば圧縮されていないビデオサンプルストリーム213を作成する。サンプルストリーム213は、符号化されたビデオビットストリームと比較する際に高いデータボリュームとして強調され得ており、また、カメラ201に結合されたエンコーダ202によって処理され得る。エンコーダ202は、以下で詳細に説明するように、開示された主題の様々な態様を可能にするかまたは実現するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。サンプルストリームと比較する際により低いデータボリュームとして強調され得る符号化されたビデオビットストリーム204は、将来の使用のためにストリーミングサーバ205に記憶されることができる。1つ以上のストリーミングクライアント212および207は、ストリーミングサーバ205にアクセスして、符号化されたビデオビットストリーム204のコピー208および206を検索することができる。クライアント212は、ビデオデコーダ211を含むことができ、このビデオデコーダ211は、入ってくる、符号化されたビデオビットストリーム208のコピーを復号して、出ていく、ビデオサンプルストリーム210を作成することができ、このビデオサンプルストリーム210が、ディスプレイ209または他のレンダリングデバイス(図示せず)に表示されることができる。一部のストリーミングシステムでは、ビデオビットストリーム204、206および208は、特定のビデオコーディング/圧縮規格に従ってエンコードされることができる。それらの標準の例は、以上に記載されており、また本明細書でさらに説明されている。
【0022】
図3は、本発明の実施形態による、ビデオデコーダ300の機能ブロック図であり得る。
【0023】
図3に示すように、受信機302は、ビデオデコーダ300によって復号される1つ以上の符号化されたビデオシーケンスを受信することができ、同じまたは別の実施形態では、一度に1つの符号化されたビデオシーケンスを受信することができ、ここで、各符号化されたビデオシーケンスの復号が、他の符号化されたビデオシーケンスから独立している。符号化されたビデオシーケンスは、チャネル301から受信されることができ、このチャネルが、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアのリンクであってもよい。受信機302は、それぞれの使用エンティティ(図示せず)に転送されることができる、例えば符号化されたオーディオデータおよび/または補助のデータストリームなどの他のデータとともに、符号化されたビデオデータを受信することができる。受信機302は、符号化されたビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ303は、受信機302とエントロピーデコーダ/解析器(Parser)304(以後の「解析器」)との間に結合されることができる。受信機302が十分な帯域幅および制御可能性を有するストア/フォワードデバイスからまたは等時性同期ネットワークからデータを受信する場合、バッファメモリ303は、必要ではないかまたは小さくてもよい。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ303は、必要になる場合があり、比較的大きくすることができ、有利には適応性のサイズにすることができる。
【0024】
ビデオデコーダ300は、エントロピー符号化されたビデオシーケンスからシンボル313を再構築するための解析器304を含むことができる。これらのシンボルのカテゴリには、ビデオデコーダ300の動作を管理するために使用される情報と、デコーダの不可欠な部分ではないが、そのデコーダに結合されることができるディスプレイ312などのレンダリングデバイスを制御するための潜在的な情報とが含まれる。レンダリングデバイスの制御情報は、補助拡張情報(SEI:Supplementary Enhancement Information)メッセージまたはビデオユーザビリティ情報パラメータセットフラグメント(図示せず)の形であってもよい。解析器304は、受信された、符号化されたビデオシーケンスに対して解析/エントロピー復号を行うことができる。符号化されたビデオシーケンスの符号化は、ビデオ符号化技術または規格に従うことができて、当業者に知られている原理に従うことができ、可変長符号化、ハフマン符号化(Huffman coding)、コンテキスト感度を有するかまたは有しないかの算術符号化などを含む。解析器304は、グループに対応する少なくとも1つのパラメータに基づいて、符号化されたビデオシーケンスから、ビデオデコーダにおける画素のサブグループのうちの少なくとも1つのためのサブグループパラメータのセットを、抽出することができる。サブグループは、画像のグループ(GOP:Group of Pictures)、画像、タイル、スライス、マクロブロック、コーディングユニット(CU:Coding Unit)、ブロック、変換ユニット(TU:Transform Unit)、予測ユニット(PU:Prediction Unit)などを含むことができる。エントロピーデコーダ/解析器は、変換係数、量子化器パラメータ値、動きベクトルなどの情報を符号化されたビデオシーケンスから抽出することもできる。
【0025】
解析器304は、シンボル313を作成するために、バッファ303から受信されたビデオシーケンスに対してエントロピー復号/解析動作を実行することができる。解析器304は、符号化されたデータを受信し、特定のシンボル313を選択的に復号することができる。さらに、解析器304は、動き補償予測ユニット306、スケーラ/逆変換ユニット305、フレーム内予測ユニット307またはループフィルタ311に特定のシンボル313を提供するかどうかを、決定することができる。
【0026】
シンボル313の再構築は、符号化されたビデオ画像またはその一部(例えば、フレーム間画像およびフレーム内画像、フレーム間ブロックおよびフレーム内ブロック)のタイプ、および他の要因に応じて、複数の異なるユニットに関連することができる。どのようなユニットに関連するか、およびどのように関連するかは、解析器304によって、符号化されたビデオシーケンスから解析されたサブグループ制御情報によって制御されることができる。解析器304と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは明確にするために説明されていない。
【0027】
既に言及された機能ブロックに加えて、ビデオデコーダ300は、以下に説明するように、いくつかの機能ユニットに概念的に細分化されることができる。商業的制約で動作する実際の実施形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに統合されることができる。しかしながら、開示された主題を説明する目的のために、以下の機能ユニットへの概念的な細分が適切である。
【0028】
第1ユニットは、スケーラ/逆変換ユニット305である。スケーラ/逆変換ユニット305は、量子化された変換係数と、どのような変換を使用するか、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報とを、シンボル313として解析器304から受信する。スケーラ/逆変換ユニット305は、アグリゲータ310に入力できるサンプル値を含むブロックを出力することができる。
【0029】
いくつかの場合では、スケーラ/逆変換ユニット305の出力サンプルは、フレーム内符号化ブロックに属することができ、即ち、このフレーム内符号化ブロックは、以前に再構築された画像からの予測情報を使用していないが、現在の画像の以前に再構築された部分からの予測情報を使用できるブロックである。このような予測情報は、フレーム内画像予測ユニット307によって提供されてもよい。いくつかの場合では、フレーム内画像予測ユニット307は、現在の(部分的に再構築された)画像309から抽出された、周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。アグリゲータ310は、いくつかの場合では、サンプルごとに基づいて、フレーム内予測ユニット307によって生成された予測情報を、スケーラ/逆変換ユニット305によって提供される出力サンプル情報に追加する。
【0030】
他の場合では、スケーラ/逆変換ユニット305の出力サンプルは、フレーム間符号化されたブロックおよび潜在的に動き補償されたブロックに属することができる。このような場合、動き補償予測ユニット306は、参照画像メモリ308にアクセスして、予測に用いられるサンプルを抽出することができる。抽出されたサンプルが、ブロックに関連するシンボル313に従って動き補償された後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ310によってスケーラ/逆変換ユニットの出力(この場合、残差サンプルまたは残差信号と呼ばれる)に追加されることができる。動き補償ユニットが予測サンプルを抽出するときの参照画像メモリ内のアドレスは、例えば、X、Yおよび参照画像成分を有することができるシンボル310の形で、動き補償ユニットに利用可能な動きベクトルによって制御されることができる。動き補償は、サブサンプルの正確な動きベクトルが使用中であるときに、参照画像メモリから抽出されたサンプル値の補間、動きベクトル予測メカニズムなどを含むこともできる。
【0031】
アグリゲータ310の出力サンプルは、ループフィルタユニット311において様々なループフィルタリング技術によって採用されてもよい。ビデオ圧縮技術は、符号化されたビデオビットストリームに含まれ、解析器304からのシンボル313としてループフィルタユニット311に利用可能になるパラメータによって制御されるループ内フィルタ技術を含むことができ、また、符号化された画像または符号化されたビデオシーケンスの前の部分(復号順序で)を復号する期間で得られたメタ情報に応答し、および、以前に再構築されてループフィルタされたサンプル値に応答することもできる。
【0032】
ループフィルタユニット311の出力は、レンダリングデバイス312に出力することができ、および、将来のフレーム間画像予測で使用するために参照画像メモリ557に記憶することができるサンプルストリームとすることができる。
【0033】
特定の符号化された画像は、一旦完全に再構築されると、将来の予測のための参考画像として使用されることができる。例えば、符号化された画像が一旦完全に再構築され、かつ、符号化された画像が(例えば、解析器304によって)参照画像として識別されると、現在の画像309は、参照画像バッファ308の一部となることができ、また、後続の符号化された画像の再構築を開始する前に、新しい現在の画像メモリを再割り当てすることができる。
【0034】
ビデオデコーダ300は、例えばITU-T REC. H.265などの規格における所定のビデオ圧縮技術に従って復号動作を実行することができる。符号化されたビデオシーケンスは、ビデオ圧縮技術ドキュメントまたは規格において、特に、それらのプロファイルドキュメントにおいて指定されたビデオ圧縮技術または規格の構文に従うという意味で、使用されているビデオ圧縮技術または規格によって指定された構文に従うことができる。符号化されたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格の階層によって定義された範囲内にあることもコンプライアンスに必要である。いくつかの場合では、階層は、最大画像サイズ、最大フレームレート、(例えば、毎秒メガ(mega)個のサンプルを単位として測定された)最大再構築サンプルレート、最大参照画像サイズなどを制限する。階層によって設定された制限は、いくつかの場合では、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)仕様と、符号化されたビデオシーケンスにおいて信号で通知されたHRDバッファ管理のメタデータとによって、さらに限定されることができる。
【0035】
一実施形態では、受信機302は、符号化されたビデオとともに付加(冗長)的なデータを受信することができる。付加的なデータは、符号化されたビデオシーケンスの一部として含まれることができる。付加的なデータは、データを適切に復号し、および/または、元のビデオデータをより正確に再構築するために、ビデオデコーダ300によって使用されることができる。付加的なデータは、例えば、時間的、空間的、または信号雑音比(SNR:signal-to-noise ratio)拡張層、冗長スライス、冗長画像、前方誤り訂正符号などの形式にすることができる。
【0036】
図4は、本開示の一実施形態によるビデオエンコーダ400の機能ブロック図である。
【0037】
エンコーダ400は、エンコーダ400によって符号化されるビデオ画像を捕捉することができるビデオソース401(それはエンコーダの一部ではない)から、ビデオサンプルを受信することができる。
【0038】
ビデオソース401は、エンコーダ303によって符号化されるソースビデオシーケンスをデジタルビデオサンプルストリームの形で提供することができ、デジタルビデオサンプルストリームは、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)を有することができる。メディアサービスシステムでは、ビデオソース401は、以前に準備されたビデオを記憶する記憶デバイスであってもよい。ビデオ会議システムでは、ビデオソース401は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであり得る。ビデオデータは、順番に見られるときに動きを与える複数の個別の画像として提供されることができる。画像自体は、空間画素アレイとして構成されてもよく、ここで、各画素は、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
【0039】
一実施形態によれば、エンコーダ400は、リアルタイムで、またはアプリケーションによって要求される任意の他の時間制約の下で、ソースビデオシーケンスの画像を符号化して圧縮し、符号化されたビデオシーケンス410にすることができる。適切な符号化速度を実施することは、コントローラ402の1つの機能である。コントローラは、以下で説明するように他の機能ユニットを制御し、これらのユニットに機能的に結合される。結合は、明瞭にするために図示されていない。コントローラによって設定されたパラメータは、レート制御関連パラメータ(例えば、画像スキップ、量子化器、レート歪み最適化技術のλ(ラムダ)値)、画像サイズ、画像グループ(GOP:group of pictures)レイアウト、最大動きベクトル探索範囲などを含むことができる。当業者は、コントローラ402の他の機能を容易に識別することができ、これらの機能が、特定のシステム設計のために最適化されたビデオエンコーダ400に関係するからである。
【0040】
いくつかのビデオエンコーダは、当業者が容易に認識する「符号化ループ」で動作する。過度に簡単化された説明として、符号化ループは、エンコーダ402(以下、「ソースコーダ」)(符号化される入力画像と、参照画像とに基づいてシンボルを作成することを担当する)の符号化部分と、エンコーダ400に埋め込まれた(ローカル)デコーダ406とによって構成されることができ、前記デコーダ406は、(リモート)デコーダによってサンプルデータを作成するようにシンボルを再構築してサンプルデータを作成する(開示された主題で考慮されているビデオ圧縮技術では、シンボルと符号化されたビデオビットストリームとの間の任意の圧縮が無損失であるため)。再構築されたサンプルストリームは、参照画像メモリ405に入力される。シンボルストリームの復号により、デコーダの場所(ローカルまたはリモート)に関係なくビット正確な結果が得られるため、参照画像バッファのコンテンツは、ローカルエンコーダとリモートエンコーダとの間でもビットで正確に対応する。言い換えれば、エンコーダの予測部分が「見た」参照画像サンプルは、デコーダが復号期間に予測を使用する際に「見た」サンプル値と全く同じである。この参照画像の同期性の基本原理(および、例えばチャネル誤差の原因で同期性を維持できない場合に生じるドリフト)は、当業者によく知られている。
【0041】
「ローカル」デコーダ406の動作は、既に
図3に関連して以上で詳細に説明された、「リモート」デコーダ300の動作と同じであってもよい。しかし、
図4をさらに簡単に参照すると、シンボルが利用可能であり、かつ、エントロピーコーダ408および解析器304によって符号化されたビデオシーケンスへのシンボルの符号化/復号が無損失であることができるため、(チャネル301、受信機302、バッファメモリ303および解析器304を含む)デコーダ300のエントロピー復号部分は、ローカルデコーダ406で完全に実行されていない可能性がある。
【0042】
この時点で、デコーダに存在する解析/エントロピー復号以外のいかなるデコーダ技術も、対応するエンコーダにおいて、実質的に同一の機能形式で必ず存在する必要がある、ということが観察されている。エンコーダ技術の説明は、包括的に説明されているデコーダ技術の逆であるため、省略されることができる。特定の領域だけで、より詳細な説明が必要であり、以下で提供される。
【0043】
その動作の一部として、ソースコーダ403は、動き補償予測符号化を実行することができ、前記動き補償予測符号化は、ビデオシーケンスから「参照フレーム」として指定された1つ以上の以前に符号化されたフレームを参照して、入力フレームを予測的に符号化する。このようにして、コーディングエンジン407は、入力フレームの画素ブロックと、入力フレームに対する予測参照として選択されることができる参照フレームの画素ブロックとの間の差分を符号化する。
【0044】
ローカルビデオデコーダ406は、ソースコーダ403によって作成されたシンボルに基づいて、参照フレームとして指定されることができるフレームの符号化されたビデオデータを復号することができる。コーディングエンジン407の動作は、有利には損失性のプロセスであってもよい。符号化されたビデオデータがビデオデコーダ(
図4に示されない)で復号されることができる場合、再構築されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ406は、参照フレームに対してビデオデコーダによって実行されることができる復号プロセスを複製して、再構築された参照フレームを参照画像キャッシュ405に記憶させることができる。このようにして、エンコーダ400は、遠端ビデオデコーダによって得られる(伝送誤差が存在しない)再構築された参照フレームと共通のコンテンツを有する再構築された参照フレームのコピーを、ローカルに記憶することができる。
【0045】
予測器404は、コーディングエンジン407に対して予測検索を実行することができる。すなわち、符号化される新しいフレームについて、予測器404は、新しい画像の適切な予測参照として機能するサンプルデータ(候補参照画素ブロックとして)または特定のメタデータ、例えば参照画像動きベクトル、ブロック形状などについて、参照画像メモリ405を検索することができる。予測器404は、適切な予測参照を見つけるために、サンプルブロックに基づいて、画素ブロックごとに動作することができる。いくつかの場合では、予測器404によって得られた検索結果によって決定されるように、入力画像は、参照画像メモリ405に記憶された複数の参照画像から引き出された予測参照を有することができる。
【0046】
コントローラ402は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ビデオコーダ403の符号化動作を管理することができる。
【0047】
上述のすべての機能ユニットの出力は、エントロピーコーダ408においてエントロピー符号化されることができる。エントロピーコーダは、ハフマン符号化、可変長符号化、算術符号化などの、当業者に知られている技術に従って、シンボルを無損失で圧縮することにより、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
【0048】
送信機409は、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであることができる通信チャネル411を介した送信に備えるために、エントロピーコーダ408によって作成された、符号化されたビデオシーケンスをバッファリングすることができる。送信機409は、ビデオコーダ403からの符号化されたビデオデータを、送信される他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。
【0049】
コントローラ402は、ビデオエンコーダ400の動作を管理することができる。符号化する期間、コントローラ405は、各符号化された画像に、特定の符号化された画像タイプを割り当てることができ、これは、それぞれの画像に適用できる符号化技術に影響を与える可能性がある。例えば、画像は、以下のフレームタイプのいずれかとして割り当てられることがしばしばある。
【0050】
フレーム内画像(I画像)は、シーケンス内の任意の他のフレームを予測ソースとして使用せずに、符号化および復号されることができるものであってもよい。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(IDR:Independent Decoder Refresh)画像などの異なるタイプのフレーム内画像を許容する。当業者は、I画像の変種およびそれらのそれぞれのアプリケーションおよび特徴を理解している。
【0051】
予測画像(P画像)は、多くとも1つの動きベクトルおよび参照インデックスを使用して各データブロックのサンプル値を予測するフレーム内予測またはフレーム間予測を使用して、符号化および復号され得るものであってもよい。
【0052】
双方向予測画像(B画像)は、多くとも2つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するフレーム内予測またはフレーム間予測を使用して、符号化および復号され得るものであってもよい。同様に、複数の予測画像は、単一のブロックの再構築に2つ以上の参照画像および関連されたメタデータを使用することができる。
【0053】
ソース画像は、一般的に、複数のサンプルデータブロック(例えば、それぞれ4x4、8x8、4x8、または16x16個のサンプルのブロック)に空間的に細分化され、ブロックごとに符号化されることができる。ブロックは、当該ブロックのそれぞれの画像に適用される符号化割り当てによって決定されるように、他の(既に符号化された)ブロックを参照して予測的に符号化されることができる。例えば、I画像のブロックは、非予測的に符号化されてもよく、またはそれらが同じ画像の既に符号化されたブロックを参照して予測的に符号化されてもよい(空間予測またはフレーム内予測)。P画像の画素ブロックは、1つ前に符号化された参照画像を参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化されてもよい。B画像のブロックは、1つまたは2つ前に符号化された参照画像を参照して、空間予測または時間領域予測を介して予測的に符号化されてもよい。
【0054】
ビデオコーダ400は、例えばITU-T REC.H.265などの所定のビデオ符号化技術または規格に従って、符号化動作を実行することができる。その動作において、ビデオコーダ400は、入力ビデオシーケンスにおける時間的および空間的冗長性を利用する予測符号化動作を含む、さまざまな圧縮動作を実行することができる。したがって、符号化されたビデオデータは、使用されるビデオ符号化技術または規格によって指定された構文に従うことができる。
【0055】
一実施形態では、送信機409は、符号化されたビデオとともに、付加的なデータを送信することができる。ソースコーダ403は、そのようなデータを、符号化されたビデオシーケンスの一部として含むことができる。付加的なデータは、時間的/空間的/SNR拡張層、冗長画像やスライスなどの他の形式の冗長データ、補足拡張情報(SEI:Supplementary Enhancement Information)メッセージ、視覚ユーザビリティ情報(VUI:Visual Usability Information)パラメータセットフラグメントなどを含むことができる。
【0056】
図5は、HEVCおよびJEMで使用されるフレーム内予測モードを示す。自然なビデオで示される任意のエッジ方向を捕捉するために、方向性フレーム内モードの数は、HEVCで使用されている33から65に拡張された。
図9Bでは、HEVC上にあるJEMにおける追加の方向性モードは、点線矢印として描かれ、平面モードとDCモードは、そのままである。これらのより高密度の方向性フレーム内予測モードは、すべてのブロックサイズのために、かつ、輝度および色度の両方のフレーム内予測のために適用される。
図5に示すように、奇数フレーム内予測モードインデックスに関連付けられた、点線矢印によって識別される方向性フレーム内予測モードは、奇数フレーム内予測モードと呼ばれる。偶数フレーム内予測モードインデックスに関連付けられた、実線矢印によって識別される方向性フレーム内予測モードは、偶数フレーム内予測モードと呼ばれる。本明細書では、
図5の実線または点線の矢印で示されるような方向性フレーム内予測モードは、角度モードとも呼ばれる。
【0057】
JEMでは、合計67個のフレーム内予測モードが輝度フレーム内予測のために使用されている。フレーム内モードをコーディングするために、隣接するブロックのフレーム内モードに基づいて、サイズが6である最確モード(MPM:Most Probable Mode)リストが確立されている。フレーム内モードがMPMリストからでない場合、フラグは、フレーム内モードが選択されたモードに属するかどうかを示すために信号で通知される。JEM-3.0では、16個のモードが選択されており、これらのモードは、4つの角度モードごとに統一的に選択される。JVET-D0114およびJVET-G0060では、統一的に選択されたモードを置き換えるために、16個の2次MPMが導出された。
【0058】
図6は、フレーム内方向性モードに利用されるN個の参照層を示す。ブロックユニット611と、セグメントA 601と、セグメントB 602と、セグメントC 603と、セグメントD 604と、セグメントE 605と、セグメントF 606と、第1参照層610と、第2参照層609と、第3参照層608と、第4参照層607とがある。
【0059】
HEVCとJEMの両方、およびH.264/AVCなどの他のいくつかの標準では、現在のブロックを予測するために使用される参照サンプルは、最も近い参照線(行または列)に制限されている。マルチ参照線フレーム内予測の方法では、フレーム内方向性モードの場合、候補参照線(行または列)の数は、1(すなわち最も近い)からNに増加され、ここで、Nは、1以上の整数である。
図7は、4×4予測ユニット(PU)を例にして、マルチ線フレーム内方向性予測方法の概念を示す。フレーム内方向性モードは、N個の参照層のうちの1つを任意に選択して予測器を生成することができる。言い換えれば、予測器p(x,y)は、参照サンプルS1、S2、…、Snのうちの1つから生成される。フラグは、フレーム内方向性モードのためにどの参照層が選択されたかを示すために信号で通知される。Nを1に設定すると、フレーム内方向性予測方法は、JEM2.0における従来の方法と同様である。
図6では、参照線610、609、608および607は、左上の参照サンプルとともに、6つのセグメント601、602、603、604、605および606から構成される。本明細書では、参照層は、参照線とも呼ばれる。現在のブロックユニット内の左上の画素の座標は(0,0)であり、第1参照線における左上の画素の座標は(-1,-1)である。
【0060】
JEMでは、輝度成分について、フレーム内予測サンプルの生成のために使用される隣接サンプルは、生成処理の前にフィルタリングされる。フィルタリングは、所与のフレーム内予測モードおよび変換ブロックサイズによって制御される。フレーム内予測モードがDCである場合、または、変換ブロックサイズが4×4に等しい場合、隣接するサンプルはフィルタリングされない。所与のフレーム内予測モードと垂直モード(または水平モード)との間の距離が、事前定義された閾値よりも大きい場合、フィルタリング処理が可能になる。隣接するサンプルのフィルタリングには、[1,2,1]フィルタとバイリニアフィルタとが使用されている。
【0061】
位置依存フレーム内予測組み合わせ(PDPC:position dependent intra prediction combination)方法は、フィルタリングされていない境界参照サンプルと、フィルタリングされた境界参照サンプルを有するHEVCスタイルフレーム内予測との組み合わせを呼び出すフレーム内予測方法である。(x,y)に位置する各予測サンプルpred[x][y]は、以下のように計算される。
【数1】
ここで、R
x,-1、R
-1,Yは、それぞれ、現在のサンプル(x,y)の上部および左側にある、フィルタリングされていない参照サンプルを示し、また、R
-1,-1は、現在のブロックの左上隅にある、フィルタリングされていない参照サンプルを示す。重みは、以下のように計算される。
【数2】
【0062】
図7は、DCモードPDPCの重み(wL,wT,wTL)が1つの4×4ブロック内の(0,0)および(1,0)位置に使用される
図700を示す。PDPCがDC、平面、水平および垂直フレーム内モードに適用される場合、HEVC DCモード境界フィルタまたは水平/垂直モードエッジフィルタなどの、追加の境界フィルタは必要ではない。
図7は、右上の対角モードに適用されるPDPCのための参照サンプルR
x,-1、R
-1,yおよびR
-1,-1の定義を示す。予測サンプルpred(x’,y’)は、予測ブロック内の(x’,y’)に位置する。参照サンプルR
x,-1の座標xは、x=x’+y’+1によって与えられ、同様に、参照サンプルR
-1,yの座標yは、y=x’+y’+1によって与えられる。
【0063】
図8は、局所照明補償(LIC:Local Illumination Compensation)
図800を示しており、スケーリング係数aおよびオフセットbを使用した照明変化用線形モデルに基づいている。また、当該局所照明補償は、フレーム間モードコード化されたコーディングユニット(CU:Coding Unit)ごとに適応的に有効化または無効化される。
【0064】
LICがCUに適用される場合、パラメータaおよびbは、最小二乗法によって現在のCUの隣接サンプルとそれらに対応する参照サンプルとを使用して導出される。より具体的には、
図8に示すように、CUのサブサンプリングされた(2:1サブサンプリングされた)隣接サンプルと、参照画像における対応するサンプル(現在のCUまたはサブCUの動き情報により識別される)とが使用される。ICパラメータが導出され、各予測方向にそれぞれ適用される。
【0065】
CUがマージモードでコード化される場合、LICフラグは、マージモードでの動き情報のコピーと同様の方法で、隣接するブロックからコピーされ、そうではない場合、LICフラグは、LICが適用されるかどうかを示すために、信号でCUに通知される。
【0066】
図9Aは、HEVCで使用されるフレーム内予測モード900を示す。HEVCでは、合計35個のフレーム内予測モードがあり、そのうち、モード10は水平モードであり、モード26は垂直モードであり、また、モード2、モード18およびモード34は対角モードである。フレーム内予測モードは、3個の最確モード(MPM:Most Probable Modes)および32個の残りのモードによって信号で通知される。
【0067】
図9Bは、VVCの実施形態において合計87個のフレーム内予測モードがある、ということを示しており、ここで、モード18は水平モードであり、モード50は垂直モードであり、また、モード2、モード34およびモード66が対角モードである。モード-1~-10およびモード67~76は、広角フレーム内予測(WAIP:Wide-Angle Intra Prediction)モードと呼ばれる。
【0068】
位置(x,y)に位置する予測サンプルpred(x,y)は、フレーム内予測モード(DC、平面、角度)と、PDPC表現に従う参照サンプルの線形結合とを使用して予測される。
【数3】
ここで、R
x,-1、R
-1,yは、それぞれ、現在のサンプル(x,y)の上部および左側に位置する参照サンプルを表し、R
-1,-1は、現在のブロックの左上隅に位置する参照サンプルを表す。
【0069】
DCモードについて、重みは、幅と高さの寸法を有するブロックに対して、次のように計算される。
【数4】
ここで、wTは、同一水平座標を持つ上記参照線に位置する参照サンプルのための重み係数を示し、wLは、同一垂直座標を持つ左参照線に位置する参照サンプルのための重み係数を示し、wTLは、現在のブロックの左上の参照サンプルのための重み係数を示し、nScaleは、重み係数が軸に沿ってどれだけ速く減少されるか(wLは左から右に減少される、またはwTは上から下に減少される)、すなわち重み係数減少率を指定し、これは、現在の設計におけるx軸(左から右へ)とy軸(上から下へ)に沿うことと同じである。32は、隣接するサンプルのための初期重み係数を表し、また、初期重み係数は、現在のCBにおける左上のサンプルに割り当てられた最上(左または左上)の重みでもあり、PDPC処理での隣接サンプルの重み係数は、この初期重み係数以下である必要がある。
【0070】
平面モードの場合はwTL=0、水平モードの場合はwTL=wT、垂直モードの場合はwTL=wLである。PDPCの重みは、加算とシフトのみによって計算され得る。pred(x,y)の値は、式1を使用して1つのステップで計算され得る。
【0071】
ここで、提案された方法は、単独で使用されてもよく、任意の順序で組み合わせて使用されてもよい。さらに、各方法(または実施形態)、エンコーダおよびデコーダは、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実現され得る。一例では、1つまたは複数のプロセッサは、非一時的なコンピュータ読み取り可能な媒体に記憶されているプログラムを実行する。実施形態によれば、ブロックという用語は、予測ブロック、コーディングブロック、またはコーディングユニット、すなわちCuとして解釈され得る。
【0072】
依存量子化(DQ:Dependent Quantization)またはトレリスコード化(trellis-coded)された量子化は、2つの量子化器Q0およびQ1と、それらの間の切り替えのための手順とを含む。
図10は、DQ機構の例示的な説明
図1000を示す。
図3におけるデコーダ300などのデコーダ側では、再構成された数x’は、Q0またはQ1のいずれかのための量子化ステップサイズΔを整数キーkに乗算することによって決定され得る。Q
0とQ
1との間の切り替えは、M=2
K 個のDQ状態を有する状態マシンによって表すことができ、ここで、k≧2(したがってm≧4)であり、ここで、各DQ状態は、量子化器Q
0またはQ
1のうちの1つに関連付けられている。現在のDQ状態は、以前のDQ状態と現在の量子化キーの値とによって一意に決定される。入力ストリームx
1,x
2,…を符号化するために、Q
0とQ
1との間の潜在的な遷移は、2
K 個のDQ状態を有するトレリスによって示され得る。これによって、量子化キーk
1,k
2,…の最適なシーケンスを選択することは、最小のレート歪み(R-D)コストを有するトレリスパスを見つけることと同等であり、また、この問題は、Viterbiアルゴリズムによって解決され得る。
【0073】
しかしながら、このような手作業で設計された状態マシンがVVC標準では必要とされる場合でも、このような必要な状態マシンを手作業で設計することは、たとえ経験的にであっても、実際には実現され得ない。例えば、このようなDQ方法の主な制限は、少なくとも3つの態様にある。第1には、2つの量子化器のみが使用され、ビット消費は、例えば量子化器の数を増加させる本明細書の例示的な実施形態によれば、数を符号化する際に低減され得る。第2には、状態マシンを手作業で設計することは最適ではなく、大量のDQ状態を含めるためのコストは高すぎている。量子化器の数を増やすことは、DQ状態の数を増やす必要があり、これは、量子化効率を向上させることができるが、状態マシンが複雑すぎて手作業で設計することが困難になる。最後に、ヒューリスティックに設計されたキーの生成および数の再構成は、手設計であっても、最適ではないし実用的でもない場合がある。他のより優れた方法を探すには、分野の専門知識が必要であり、手動で設計するためのコストは、かかりすぎる場合がある。
【0074】
図10の
図1000に示すように、DQ設計でQ
0とQ
1を使用する例が示されており、ここで、再構成された数は、量子化ステップサイズΔを整数キーに乗算することによって表され得ており、円の上のラベルは、関連付けられた状態を表し、円の下のラベルは、関連付けられた量子化キーを表す。4つの状態を有するVVCにおける状態マシンの例として、
図11の例示的な
図1100を参照する。以下で説明するように、例示的な実施形態は、深層強化学習(DRL:Deep Reinforcement Learning)に基づく学習ベースのE2E DQ機構を含み、例えば、任意の数のDQ状態をサポートし、また、異なるDQ状態間の遷移をDQNアルゴリズムによって自動的に学習しながら、入力ストリームをE2E方式で量子化して再構成する。
【0075】
図12における
図1200、および
図13におけるそれに関連するフローチャート1300、ならびに
図14における
図1400およびそれに関連するフローチャート1400は、それぞれ、テスト段階のエンコーダおよびデコーダのワークフローの例示的な実施形態を示す。例えば、S1301において、入力ストリームX=x
1,x
2,…が与えられ、ここで、各x
iは、浮動小数点数であり、数x
iごとについて、キー計算モジュール1201は、S1302において、x
iに基づいてキー生成器1202を使用することによって、キーy
iを計算する。次に、状態予測モジュール1203は、S1303において、状態予測器1204を使用することによって、現在のDQ状態s
iを計算する。状態予測モジュール1203の入力は、m個の以前のキーy
i-(m-1)・・・y
i(m≧1)と、n個の以前のDQ状態s
i-n、・・・、S
i-l(n≧1)とを含み、ここで、mとnは、同一であってもよく、異なっていてもよい。モード間の選択は、S1305において、予め決定された基準または設定に基づいて行われてもよく、例えば、1つの好ましい実施形態では、S1306において、n=1およびm>1とし、状態s
i-1は、m個のキーの各々に結合されて、ペアを形成し、m個のペアは、一緒に積み重ねられて、サイズが(m,2)である入力行列を形成する。逆に、S1307において、別の好ましい実施形態では、m=nとし、各キーと対応する状態とは、ペア(y
l,s
l-1)を形成し、m個のペアは、一緒に積み重ねられて、サイズが(m,2)である入力行列を形成し、これにより、システムは、例えば
図1400のように、キーy
iをデコーダに送信し、次の数x
i+1の処理に進む。
【0076】
デコーダ側では、例えば
図1400において、S1501においてキーy
iを受信した後、状態予測モジュール1404は、エンコーダと同じ方法で、例えば
図1200において、入力されたm個の以前のキーy
i-(m-1)、…、y
iおよびn個の以前のDQ状態S
i-n・・・、S
i-1に基づいて、状態予測器1403を使用することによって、現在のDQ状態s
iを計算する。次に、S1503において、入力復元モジュール1406は、キーy
iおよびDQ状態s
iに基づいて、入力再構成器1405を使用することによって、再構成された数x
i^を計算する。例示的な実施形態によれば、状態予測器1204および1403のいずれか一方または両方は、入力された以前のキーy
i-(m-1)・・・、y
iおよび以前のDQ状態s
i-n,…,s
i-1が与えられた場合、アクションa
ijと前記アクションに関連付けられた出力Q値v
ijとの間のアクション-値マッピング関数f(a
ij,v
i|y
i-(m-1),…,y
i,s
i-n,…,s
i-1)であり、j=1、...、J(合計J個の可能なアクションがあると仮定する)である。ここで、各アクションa
ijは、システムが取ることができるDQ状態に対応し、したがって、合計でJ個のDQ状態を有する。i番目の数x
iについて、状態予測器は、全ての可能なアクションa
ijのQ値v
ijを計算し、最適なQ値v
i
*を持つ最適なアクションa
i
*を選択する。最適なアクションa
i
*に対応するDQ状態は、システムが選択した状態s
iである。Q値は、一連のアクションに関連付けられたターゲット量子化性能を測定するために設計される。したがって、最適なアクションを選択することは、最適なターゲット量子化性能を与える。さらに、このような深層Q学習機構、特にオフポリシーDRL方法であるDQNアルゴリズムは、例示的な実施形態による好ましい訓練方法として使用される。例えば、DQNは、任意の所与の有限マルコフ決定プロセス(finite Markov Decision Process)に対して、最適なアクション選択ポリシーを見出し、上記決定プロセスは、アクション-値マッピング関数を学習して、報酬Q値をアクションに割り当てる。ポリシーは、システムがアクションを選択する際に従う規則である。現在の状態を与えられると、学習エージェントは、1組の候補アクションから選択することができ、その結果、異なる報酬値が得られる。様々な状態を経験し、様々な状態で様々なアクションを試みることによって、学習エージェントは、タイムアウト学習を通じて報酬を最適化し、将来の任意の所定の状態で最適なパフォーマンスを発揮できるようにする。
【0077】
例示的な実施形態によれば、状態予測器1204、1403、および以下の状態予測器1604、1823、2004のうちの任意の1つまたは複数の状態予測器は、例えばDNNであり、当該DNNは、アクション-値マッピング関数f(aij,vi|yi-(m-1),…,yi, si-n,…,si-1)を推定するための関数近似器として機能する。このような状態予測器DNNは、一般に、1組の畳み込み層と、それに続く1つまたは複数の完全接続層を含み、また、キー生成器1202および以下のキー生成器1602および2002のうちの任意の1つまたは複数のキー生成器のようなキー生成器、および、入力再構成器1405および以下の入力再構成器1607、2022のうちの任意の1つまたは複数の入力再構成器のような入力再構成器は、両方ともDNN(例えば、いくつかの畳み込み層とそれに続く完全接続層)である。例示的な実施形態によれば、このような状態予測器、キー生成器、および入力再構成器は、エンドツーエンドの方式で連携して訓練され得る。
【0078】
例示的な実施形態によれば、
図16の
図1600は、以下に説明する
図17の例示的なフローチャート1700とともに、訓練段階の例示的なワークフローを表す。例えば、S1701において、State(t
s-1)は、現在の状態予測器、例えば状態予測器1604とされ、Key(t
k-1)は、現在のキー生成器、例えばキー生成器1602を表し、Recon(t
r-1)は、現在の入力再構成器、例えば入力再構成器1607とされ、ここで、tS、tKおよびtrは、異なってもよく、これにより、このような状態予測器、キー生成器、および入力再構成器は、異なる頻度で異なる時間に更新され得る。
【0079】
S1702において、訓練入力ストリームX=x
1,x
2,…が与えられ、数x
iごとに、キー計算モジュール1601は、S1703において、現在のキー生成器のKey(t
K-1)を使用して、x
iに基づいて、キーy
iを計算する。テスト段階と同様に、状態予測モジュール1603の入力は、m個の以前のキーy
i-(m-1),…,y
i(m≧1)と、n個の以前のDQ状態s
i-n,…,s
i-1(n≧1)とを含み、これに基づいて、状態予測モジュール1603は、現在の状態予測器State(t
S-1)を使用して、DQ状態s
iを計算する。そして、入力復元モジュール1606は、S1704において、現在の入力再構成器Recon(t
r-1)を使用して、キーy
iおよびDQ状態s
iに基づいて、再構成された数x
i’を計算する。S1706において、歪みD
iは、元の入力x
1,…,x
iと数x
iの前の再構成された数x
1’,…,x
i’との間の差を測定するために、歪み計算モジュール1608において計算され得て、ここで、例えば、D
iは、ストリームにおける対応する要素間の差のL
k-normの平均値であってもよく、例えば、L
1-normは、平均絶対誤差とし
、また、L
2-normは、平均二乗誤差とする。
【数5】
【0080】
同時に、S1705において、レート損失Riは、yiの前のキーy1,…,yiのビット消費量を測定するために、レート計算モジュール1609において計算され得て、ここで、例えば、y1,…,yiは、任意のエントロピーコーディング方法を使用して圧縮され得て、また、Riは、圧縮されたビットストリームのビットカウントである。その後、S1707において、システムは、次の数xi+1の処理に進む。
【0081】
例示的な実施形態によれば、
図18の例示的な
図1803、および
図19の関連するフローチャート1900は、
図16における状態予測モジュール1603、および同様に
図20の状態予測モジュール2003などの状態予測モジュールの詳細を表す。例えば、S1901において、m個のキーY
i=y
i-(m-1),…,y
i、および、n個の以前のDQ状態S
i-1=s
i-n,…,s
i-1が入力として与えられ、状態予測器DNNState(t
s-1)は、S1902において、状態値計算モジュール1821において全ての可能なアクションa
ij(j=1、…、J)のQ値v
ijを計算する。次に、S1903において、状態選択モジュール1822は、例えばε-貪欲法(ε-greedy)を使用してDQ状態s
iを選択し、ここで、εは、0と1の間の確率であり、確率εで、ランダムアクションa
ijを最適アクションa
i
*として選択し、確率(1-ε)で、最適アクションa
i
*を選択することができる。最適アクションa
i
*に対応するDQ状態はs
iである。例示的な実施形態によれば、歪みD
iおよびD
i+1、ならびに、レート損失R
iおよびR
i+1に基づいて、隣接する数x
iおよびx
i+1のペアについて、報酬Φ
i+1は、現在のQ入力(キーY
i=y
i-(m-1),…,y
iおよびDQ状態S
i-1=s
i-n,…,s
i-1)が与えられた場合に、状態予測器1823がアクションa
i
*を実行することによって取得できる報酬を測定するために計算され得る。
【数6】
ここで、λは、報酬におけるレート損失と歪みの間のバランスを取るために使用されるハイパーパラメータである。
【0082】
例示的な実施形態によれば、経験E(Φ
i+1,a
i
*,v
i
*,Y
i,S
i-1)、つまり、例えば報酬計算モジュール1610において、キーY
iと以前のDQ状態S
i-1とに基づいて、関連付けられたQ値v
i
*を持つアクションa
i
*を選択し、そして、報酬Φ
i+1を取得することは、
図16における再生メモリ1612および
図20における再生メモリ2012のいずれかのような再生メモリに追加される。このような再生メモリは、通常、最大記憶制限があり、この制限に達すると、最も古い経験が最新の経験に置き換えられる。
【0083】
状態予測器1823、キー生成器1602および入力再構成器1607を更新する際に、システムは、再生メモリ1612から一連の経験をサンプリングし、サンプリングされた経験を使用して、メモリ再生および重み更新モジュール1611において、モデルパラメータを更新する。
【0084】
図20の例示的な
図2000および
図21のそれに関連するフローチャート2100は、上述したメモリ再生および重み更新モジュール1611の例示的な詳細なワークフローを与える。例えば、訓練段階の期間で、ステップS2101において、状態予測器2004、キー生成器2002および入力再構成器2022とまったく同じDNNモデル構造を有するターゲット状態予測器State
T、ターゲットキー生成器Key
T、ターゲット入力再構成器Recon
Tをそれぞれ維持するための処理が実施され得る。唯一の相違点は、モデルパラメータ(すなわち、DNNの重み係数)にあり、これらのパラメータは、T
S、T
KおよびT
rパラメータの更新サイクルごとに、対応する状態予測器2004、キー生成器2002および入力再構成器2022からクローニングされる。
【0085】
具体的には、各パラメータの更新サイクルの期間で、システムは、S2102において、再生メモリ2012などの再生メモリから、1組の経験2021{E(Φ
l+1,a
l
*,v
l
*,Y
l,S
l-1)}をサンプリングする。経験2021の経験E(Φ
l+1,a
l
*,v
l
*,Y
l,S
l-1)ごとに、状態予測モジュール2003では、ターゲット状態予測器、ターゲット状態予測器2023、State
Tは、S2102において、経験における入力キーY
lおよびDQ状態S
l-1に基づいて、ターゲットDQ状態
【数7】
を予測する。ターゲットDQ状態
【数8】
に基づいて、ターゲットキー生成器、ターゲットキー生成器2024、Key
T、およびキー計算モジュール2001は、S2103において、ターゲットキー
【数9】
を計算する。ターゲットキー
【数10】
およびターゲットDQ状態
【数11】
に基づいて、ターゲット入力再構成器、ターゲット入力再構成器2028、Recon
Tは、S2104において、入力復元モジュール2006において、ターゲット再構成された
【数12】
を計算することができる。そして、歪み計算モジュール2025は、S2105において、
【数13】
および経験2021における元の
【数14】
に基づいて、ターゲット歪み
【数15】
を計算し、また、レート計算モジュール2009は、S2106において、
【数16】
に基づいて、ターゲット損失
【数17】
を計算する。例示的な実施形態によれば、ステップS2106およびS2107は、順次または並列に実行されてもよい。S2107において、ターゲット報酬
【数18】
は、報酬計算モジュール2010において、
【数19】
に基づいて計算され得る。その後、損失計算モジュール2026は、S2107において、ターゲット報酬T(a
l
*,Y
l,S
l-1)を計算することもできる。
【数20】
ここで、
【数21】
は、入力キー
【数22】
および状態
【数23】
が与えられた場合、アクションa
(l+1)jに対して、ターゲット状態予測器State
Tによって予測されたQ値である。ハイパーパラメータγは、0と1の間での割引率であり、この割引率は、システムが短期的な報酬に対して長期的な報酬をどの程度重要にするかを決定するものである。割引率が小さいほど、システムは長期的な報酬を重視しなく、短期的な報酬のみに関心を持つようになる。そして、ターゲット損失
【数24】
の計算は、ターゲット報酬T(a
l
*,Y
l,S
l-1)および経験からの元のv
l
*、例えば、これら2つの報酬の差のL
k-normに基づいて行われてもよい。
【数25】
【0086】
次に、S2109において、ターゲット損失の勾配が計算され、それが逆伝播され、これにより、重み更新モジュール2027によって、状態予測器2004のDNNの重みパラメータがState(ts)に、キー生成器、キー生成器2002のDNNの重みパラメータがKey(tK)に、および入力再構成器、入力再構成器2022のDNNの重みパラメータがRecon(tr)に更新される。前述したように、状態予測器2004、キー生成器2002、および入力再構成器2022は、ここで、異なるタイムスタンプで更新され得る。すなわち、S2110において、損失の勾配が逆伝播され得て、これにより、状態予測器2004、キー生成器2002、入力再構成器2022のそれぞれが個別に更新され得る。
【0087】
さらに、S2111において、例えばフローチャート2100のTS、TK、およびTrの反復ごとに、状態予測器2004、キー生成器2002、および入力再構成器2022の重みパラメータは、それぞれ、ターゲット状態予測器、ターゲット状態予測器2023、StateT、ターゲットキー生成器、ターゲットキー生成器2024、KeyT、およびターゲット入力再構成器、ターゲット入力再構成器2028、ReconTにクローニングされる。さらに、例示的な実施形態によれば、再生メモリ2012、およびターゲット状態予測器2023、ターゲットキー生成器2024、ターゲット入力再構成器2028を使用することは、訓練処理を安定化させることができる。さらに、例示的な実施形態によれば、再生メモリ2012は、1つの最新の経験だけを有することができ、これは、いくつかの状況において、再生メモリが存在しないことに相当する。そして、例示的な実施形態によれば、TS、TKおよびTrは、すべて1に等しくなるため、ターゲット状態予測器2023、ターゲットキー生成器2024およびターゲット入力再構成器2028が反復ごとに更新され、これは、ターゲット状態予測器2023、ターゲットキー生成器2024およびターゲット入力再構成器2028の別のセットが存在しないことに相当する。
【0088】
そこで、上記の開示を見ると、提供される実施形態は、DQNを有する学習ベースのE2E DQを含み、当該DQNは、任意の数のDQ状態をサポートすることができ、異なるDQ状態間の遷移を深層Qネットワーク(DQN:Deep Q-Network)アルゴリズムに基づいて自動的に決定され得ており、したがって、状態予測器、キー生成器、および入力再構成器の異なるDNN構造に有利に適応する柔軟で汎用的なフレームワークが開示される。
【0089】
上記の技術は、コンピュータ読み取り可能な命令を使用してコンピュータソフトウェアとして実現されて、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶され得るか、または特別に構成された1つまたは複数のハードウェアプロセッサによって実現され得る。例えば、
図22は、開示された主題のいくつかの実施形態を実現するのに適したコンピュータシステム2200を示す。
【0090】
コンピュータソフトウェアは、任意の適切なマシンコードまたはコンピュータ言語を使用して符号化されてもよく、アセンブリ、コンパイル、リンクなどのメカニズムによって命令を含むコードを作成してもよいし、この命令は、コンピュータ中央処理ユニット(CPU:central processing unit)、グラフィック処理ユニット(GPU:Graphics Processing Unit)などによって直接的に実行されてもよく、または解釈、マイクロコードなどによって実行されてもよい。
【0091】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットのデバイス(internet of things devices)などを含む、様々なタイプのコンピュータまたはそのコンポーネントで実行されてもよい。
【0092】
図22に示されるコンピュータシステム2200のコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータソフトウェアの使用範囲または機能に関するいかなる制限も示唆することが意図されていない。コンポーネントの構成は、コンピュータシステム2200の例示的な実施形態に示されているコンポーネントのいずれかまたは組み合わせに関連する任意の依存性または要件を有すると解釈されるべきではない。
【0093】
コンピュータシステム2200は、いくつかのヒューマンインターフェース入力デバイスを含むことができる。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、オーディオ入力(例えば、音声、拍手など)、視覚入力(例えば、ジェスチャーなど)、嗅覚入力(図示せず)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェース入力デバイスは、例えばオーディオ(例えば、音声、音楽、環境音など)、画像(例えば、スキャンされた画像、静止画像カメラから得られた写真画像など)、ビデオ(例えば、2次元ビデオ、立体映像を含む3次元ビデオなど)などの、人間による意識的な入力に必ずしも直接関連しているとは限らない、特定のメディアを捕捉するために使用されることもできる。
【0094】
ヒューマンインターフェース入力デバイスは、キーボード2201、マウス2202、トラックパッド2203、タッチスクリーン2210、ジョイスティック2205、マイクロホン2206、スキャナ2208、カメラ2207のうちの1つまたは複数を含むことができる(各々の1つだけが図示された)。
【0095】
コンピュータシステム2200はまた、いくつかのヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚によって、1人以上のユーザの感覚を刺激することができる。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン2210、ジョイスティック2205による触覚フィードバックであるが、入力デバイスとして作用しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(例えば、スピーカ2209、ヘッドホン(図示せず))、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン2210であり、各々は、タッチスクリーン入力機能を備えてもよく、あるいは備えていなくてもよく、各々は、触覚フィードバック機能を備えてもよく、あるいは備えていなくてもよいし、これらのいくつかは、ステレオグラフィック出力、仮想現実メガネ(図示せず)、ホログラフィックディスプレイとスモークタンク(図示せず)、およびプリンタ(図示せず)などによって、2次元の視覚出力または3次元以上の視覚出力を出力することができる。
【0096】
コンピュータシステム2200は、例えば、CD/DVD2221を有するCD/DVD ROM/RW 2200を含む光学媒体、または類似の媒体、サムドライブ2222、リムーバブルハードドライブまたはソリッドステートドライブ2223、テープおよびフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの特殊なROM/ASIC/PLDベースのデバイスなどの、人間がアクセス可能な記憶デバイスおよびそれらに関連する媒体を含むことができる。
【0097】
当業者はまた、ここで開示されている主題に関連して使用される「コンピュータ読み取り可能な媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
【0098】
コンピュータシステム2200はまた、1つ以上の通信ネットワーク2298へのインターフェース2299を含むことができる。ネットワーク2298は、例えば、無線、有線、光学的であってもよい。ネットワーク2298は、さらに、ローカルネットワーク、広域ネットワーク、大都市圏ネットワーク、車両用ネットワークおよび産業用ネットワーク、リアルタイムネットワーク、遅延耐性ネットワークなどであってもよい。ネットワーク2298の例は、イーサネット(登録商標)、無線LAN、セルラーネットワーク(GSM、3G、4G、5G、LTEなどを含む)などのローカルエリアネットワーク、テレビケーブルまたは無線広域デジタルネットワーク(有線テレビ、衛星テレビ、地上放送テレビを含む)、車両用ネットワークおよび産業用ネットワーク(CANBusを含む)などを含む。いくつかのネットワーク2298は、一般に、いくつかの汎用データポートまたは周辺バス(2250および2251)(例えば、コンピュータシステム2200のUSBポート)に接続された外部ネットワークインターフェースアダプタが必要であり、他のシステムは、通常、以下に説明するようにシステムバスに接続することによって、コンピュータシステム2200のコアに統合される(例えば、イーサネットインターフェースからPCコンピュータシステムへまたはセルラーネットワークインターフェースからスマートフォンコンピュータシステムへ)。これらのネットワーク2298のいずれかを使用して、コンピュータシステム2200は、他のエンティティと通信することができる。このような通信は、単方向の受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、CANバスから特定のCANバスデバイスへ)、あるいは、双方向の、例えばローカルまたは広域デジタルネットワークを使用して他のコンピュータシステムへの通信であってもよい。上記のように、特定のプロトコルおよびプロトコルスタックは、それらのネットワークおよびネットワークインターフェースのそれぞれで使用されることができる。
【0099】
上記のヒューマンインターフェースデバイス、ヒューマンアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム2200のコア2240に接続されることができる。
【0100】
コア2240は、1つ以上の中央処理ユニット(CPU)2241、画像処理ユニット(GPU)2242、グラフィックアダプタ2217、フィールドプログラマブルゲートエリア(FPGA)2243の形式の専用プログラマブル処理ユニット、特定のタスクのためのハードウェア加速器2244などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM:Read-only memory)2245、ランダムアクセスメモリ2246、例えば内部の非ユーザアクセスハードドライブ、SSDなどの内部大容量ストレージ2247などとともに、システムバス2248を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス2248は、付加的なCPU、GPUなどによって拡張を可能にするために、1つ以上の物理的プラグの形でアクセスすることができる。周辺デバイスは、コアのシステムバス2248に直接に接続されてもよく、または周辺バス2251を介して接続されてもよい。周辺バスのアーキテクチャは、周辺コンポーネント相互接続(PCI:peripheral component interconnect)、汎用シリアルバス(USB)などを含む。
【0101】
CPU 2241、GPU 2242、FPGA 2243、および加速器2244は、いくつかの命令を実行することができ、これらの命令を組み合わせて上記のコンピュータコードを構成することができる。そのコンピュータコードは、ROM 2245またはRAM 2246に記憶されることができる。また、一時的なデータは、RAM 2246に記憶されることができる一方、永久的なデータは、例えば内部大容量ストレージ2247に記憶されることができる。1つ以上のCPU 2241、GPU 2242、大容量ストレージ2247、ROM 2245、RAM 2246などと密接に関連することができる、高速ストレージを使用することにより、任意のメモリデバイスに対する高速記憶および検索が可能になる。
【0102】
コンピュータ読み取り可能な媒体は、様々なコンピュータ実行された動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであってもよく、またはコンピュータソフトウェア分野の技術者によって知られ、利用可能な媒体およびコードであってもよい。
【0103】
限定ではなく例として、アーキテクチャ2200、特にコア2240を有するコンピュータシステムは、1つ以上の有形な、コンピュータ読み取り可能な媒体に具体化されたソフトウェアを実行する、(CPU、GPU、FPGA、加速器などを含む)プロセッサの結果として機能を提供することができる。このようなコンピュータ読み取り可能な媒体は、上述したようにユーザがアクセス可能な大容量ストレージに関連する媒体であり、コア内部大容量ストレージ2247またはROM 2245などの、不揮発性コア2240を有する特定のストレージであってもよい。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア2240によって実行されてもよい。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリデバイスまたはチップを含むことができる。このソフトウェアは、コア2240、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM 2246に記憶されているデータ構造を定義することと、ソフトウェアによって定義されたプロセスに従ってこのようなデータ構造を変更することとを含む、ここで説明された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えてまたは代替として、コンピュータシステムは、ロジックハードワイヤまたは他の方式で回路(例えば、加速器2244)によって具体化された結果としての機能を提供することができ、この回路は、ソフトウェアの代わりに動作しまたはソフトウェアと一緒に動作して、ここで説明された特定のプロセスまたは特定のプロセスの特定の部分を実行してもよい。適切な場合には、ソフトウェアへの参照はロジックを含むことができ、逆もまた然りである。適切な場合には、コンピュータ読み取り可能な媒体への参照は、実行のソフトウェアを記憶する回路(例えば、集積回路(IC)など)、実行のロジックを具体化する回路、またはその両方を兼ね備えることができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0104】
本開示は、いくつかの例示的な実施形態について説明したが、本開示の範囲内にある変更、置換、および様々な均等置換が存在している。したがって、当業者は、本明細書では明示的に示されていないか、または説明されていないが、本開示の原則を具体化しているので、本開示の精神および範囲内ある、様々なシステムおよび方法を設計することができる、ということを理解されたい。
【0105】
上記の実施形態につき以下の付記を残しておく。
(付記1)
少なくとも1つのプロセッサが実行するビデオコーディング方法であって、
ビデオデータの入力ストリームを取得するステップと、
前記入力ストリームにおける浮動小数点数に基づいてキーを計算するステップと、
状態予測器と複数の以前のキーと複数の以前のDQ状態とに基づいて、現在の依存量子化(DQ)状態を予測するステップと、
前記キーおよび前記現在のDQ状態に基づいて、前記浮動小数点数を再構成するステップと、
前記再構成された浮動小数点数に基づいて、前記ビデオをコーディングするステップと、
を含むことを特徴とする方法。
(付記2)
前記キーを計算するステップおよび前記浮動小数点数を再構成するステップは、1つまたは複数の深層ニューラルネットワーク(DNN)を実現するステップ、を含む、
ことを特徴とする付記1に記載の方法。
(付記3)
前記状態予測器は、アクションと、前記アクションに関連付けられた出力Q値との間のアクション-値マッピング関数を含む、
ことを特徴とする付記1に記載の方法。
(付記4)
前記入力ストリームにおける前記浮動小数点数を含む複数の浮動小数点数に基づいて、前記キーを含む複数のキーを計算するステップと、
前記複数のキーおよび少なくとも前記現在のDQ状態に基づいて、前記複数の浮動小数点数を再構成するステップと、をさらに含む、
ことを特徴とする付記3に記載の方法。
(付記5)
前記アクションは、前記DQ状態のうちの少なくとも1つに対応する、
ことを特徴とする付記3に記載の方法。
(付記6)
前記状態予測器は、さらに、前記アクションを含む複数のアクションのうちの1つと、前記DQ状態のうちの少なくとも1つを含む前記DQ状態のうちの1つとの間のそれぞれの対応関係を含む、
ことを特徴とする付記5に記載の方法。
(付記7)
前記現在のDQ状態を予測するステップは、アクションと、前記アクションに関連付けられた出力Q値との間のアクション-値マッピング関数、前記以前のキー、および前記以前のDQ状態を実現するステップ、を含む、
ことを特徴とする付記1に記載の方法。
(付記8)
前記状態予測器は、アクションと、前記アクションに関連付けられた出力Q値との間のアクション-値マッピング関数を含み、
前記出力Q値は、前記アクションを含む一連のアクションに関連付けられたターゲット量子化性能の測定値を表す、
ことを特徴とする付記1に記載の方法。
(付記9)
前記状態予測器に基づいて前記現在のDQ状態を予測するステップは、アクションごとに、前記出力Q値を含むQ値を計算するステップ、を含む、
ことを特徴とする付記1に記載の方法。
(付記10)
前記出力Q値は、計算されたQ値から選択される、
ことを特徴とする付記1に記載の方法。
(付記11)
少なくとも1つのプロセッサが実行するビデオコーディングのための装置であって、
コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードの指示に従って動作するように構成された少なくとも1つのプロセッサと、を含み、
前記コンピュータプログラムコードは、
前記少なくとも1つのプロセッサに、ビデオデータの入力ストリームを取得させるように構成された取得コードと、
前記少なくとも1つのプロセッサに、前記入力ストリームにおける浮動小数点数に基づいてキーを計算させるように構成された計算コードと、
前記少なくとも1つのプロセッサに、状態予測器と複数の以前のキーと複数の以前のDQ状態とに基づいて、現在の依存量子化(DQ)状態を予測させるように構成された予測コードと、
前記少なくとも1つのプロセッサに、前記キーおよび前記現在のDQ状態に基づいて、前記浮動小数点数を再構成させるように構成された再構成コードと、
前記少なくとも1つのプロセッサに、前記再構成された浮動小数点数に基づいて、前記ビデオをコーディングさせるように構成されたコーディングコードと、を含む、
ことを特徴とする装置。
(付記12)
前記キーを計算するステップおよび前記浮動小数点数を再構成するステップは、1つまたは複数の深層ニューラルネットワーク(DNN)を実現するステップ、を含む、
ことを特徴とする付記11に記載の装置。
(付記13)
前記状態予測器は、アクションと、前記アクションに関連付けられた出力Q値との間のアクション-値マッピング関数を含む、
ことを特徴とする付記11に記載の装置。
(付記14)
前記計算コードは、さらに、前記少なくとも1つのプロセッサに、前記入力ストリームにおける前記浮動小数点数を含む複数の浮動小数点数に基づいて、前記キーを含む複数のキーを計算させるように構成され、
前記再構成コードは、さらに、前記少なくとも1つのプロセッサに、前記複数のキーおよび少なくとも前記現在のDQ状態に基づいて、前記複数の浮動小数点数を再構成させるように構成される、
ことを特徴とする付記13に記載の装置。
(付記15)
前記アクションは、前記DQ状態のうちの少なくとも1つに対応する、
ことを特徴とする付記14に記載の装置。
(付記16)
前記状態予測器は、さらに、前記アクションを含む複数のアクションのうちの1つと、前記DQ状態のうちの少なくとも1つを含む前記DQ状態のうちの1つとの間のそれぞれの対応関係を含む、
ことを特徴とする付記15に記載の装置。
(付記17)
前記現在のDQ状態を予測するステップは、アクションと、前記アクションに関連付けられた出力Q値との間のアクション-値マッピング関数、前記以前のキー、および前記以前のDQ状態を実現するステップ、を含む、
ことを特徴とする付記1に記載の装置。
(付記18)
前記状態予測器は、アクションと、前記アクションに関連付けられた出力Q値との間のアクション-値マッピング関数を含み、
前記出力Q値は、前記アクションを含む一連のアクションに関連付けられたターゲット量子化性能の測定値を表す、
ことを特徴とする付記1に記載の装置。
(付記19)
前記状態予測器に基づいて前記現在のDQ状態を予測するステップは、アクションごとに、前記出力Q値を含むQ値を計算するステップ、を含み、
前記出力Q値は、計算されたQ値から選択される、
ことを特徴とする付記1に記載の装置。
(付記20)
コンピュータに処理を実行させるためのプログラムが記憶されている非一時的なコンピュータ読み取り可能な媒体であって、前記処理は、
ビデオデータの入力ストリームを取得するステップと、
前記入力ストリームにおける浮動小数点数に基づいてキーを計算するステップと、
状態予測器と複数の以前のキーと複数の以前のDQ状態とに基づいて、現在の依存量子化(DQ)状態を予測するステップと、
前記キーおよび前記現在のDQ状態に基づいて、前記浮動小数点数を再構成するステップと、
前記再構成された浮動小数点数に基づいて、前記ビデオをコーディングするステップと、を含む、
ことを特徴とする非一時的なコンピュータ読み取り可能な媒体。