(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-10
(54)【発明の名称】映像のダウンサンプリングのための機械学習技術
(51)【国際特許分類】
H04N 19/117 20140101AFI20231227BHJP
H04N 19/59 20140101ALI20231227BHJP
H04N 19/90 20140101ALI20231227BHJP
【FI】
H04N19/117
H04N19/59
H04N19/90
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023537277
(86)(22)【出願日】2021-12-16
(85)【翻訳文提出日】2023-08-21
(86)【国際出願番号】 US2021063687
(87)【国際公開番号】W WO2022140138
(87)【国際公開日】2022-06-30
(32)【優先日】2020-12-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】506267178
【氏名又は名称】ネットフリックス・インコーポレイテッド
【氏名又は名称原語表記】NETFLIX, INC.
【住所又は居所原語表記】121 Albright Way Los Gatos, California 95032 UNITED STATES OF AMERICA
(74)【代理人】
【識別番号】100073184
【氏名又は名称】柳田 征史
(74)【代理人】
【識別番号】100175042
【氏名又は名称】高橋 秀明
(74)【代理人】
【識別番号】100163050
【氏名又は名称】小栗 眞由美
(74)【代理人】
【識別番号】100224775
【氏名又は名称】南 毅
(72)【発明者】
【氏名】チェン,リー-ホン
(72)【発明者】
【氏名】バンピス,クリストス ジー
(72)【発明者】
【氏名】リー,ジー
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LB05
5C159TA69
5C159TB04
5C159TC03
5C159TD17
5C159UA02
(57)【要約】
種々の実施形態において、訓練アプリケーションは、映像符号化パイプラインにおいて画像をダウンサンプリングするように畳み込みニューラルネットワークを訓練する。畳み込みニューラルネットワークは、少なくとも2つの残差ブロックを備えるとともに、ダウンサンプリング倍率に関連付けられている。訓練アプリケーションは、元画像に対して畳み込みニューラルネットワークを実行して、ダウンサンプル画像を生成する。次に、訓練アプリケーションは、ダウンサンプル画像に対してアップサンプリングアルゴリズムを実行して、元画像と等しい解像度を有する再構成画像を生成する。訓練アプリケーションは、再構成画像と元画像とに基づいて再構成誤差を計算する。訓練アプリケーションは、再構成誤差に基づいて、畳み込みニューラルネットワークの少なくとも1つのパラメータを更新して、訓練済み畳み込みニューラルネットワークを生成する。有利なことに、訓練済み畳み込みニューラルネットワークを映像符号化パイプラインに実装することにより、従来のダウンサンプリング技術を実装した従来の映像符号化パイプラインで通常体験されていた画質の低下を緩和することができる。
【特許請求の範囲】
【請求項1】
映像符号化パイプラインにおいて画像をダウンサンプリングするようにニューラルネットワークを訓練するための、コンピュータで実装される方法であって、
少なくとも2つの残差ブロックを備えるとともに、第1のダウンサンプリング倍率に関連付けられた第1の畳み込みニューラルネットワークを、第1の解像度を有する第1の元画像に対して実行して、第1のダウンサンプル画像を生成するステップと、
前記第1のダウンサンプル画像に対してアップサンプリングアルゴリズムを実行して、前記第1の解像度を有する第1の再構成画像を生成するステップと、
前記第1の再構成画像と前記第1の元画像とに基づいて第1の再構成誤差を計算するステップと、
前記第1の再構成誤差に基づいて、前記第1の畳み込みニューラルネットワークの少なくとも1つのパラメータを更新して、訓練済み畳み込みニューラルネットワークを生成するステップと、
を含むコンピュータで実装される方法。
【請求項2】
前記第1のダウンサンプリング倍率が非整数で構成され、
前記コンピュータで実装される方法が、
前記第1のダウンサンプリング倍率に基づいて、リサンプリング倍率分子とリサンプリング倍率分母とを求めるステップと、
前記リサンプリング倍率分子に基づいてアップサンプリング残差ブロックを生成するステップと、
前記リサンプリング倍率分母に基づいてダウンサンプリング残差ブロックを生成するステップと、
前記ダウンサンプリング残差ブロックを前記アップサンプリング残差ブロックにつなげて、前記第1の畳み込みニューラルネットワークを生成するステップと、
をさらに含む、請求項1に記載のコンピュータで実装される方法。
【請求項3】
前記アップサンプリング残差ブロックが、前記リサンプリング倍率分子に等しい出力ストライドを有する逆畳み込み層と、前記リサンプリング倍率分子に等しいアップサンプリング倍率を実装する第2のアップサンプリングアルゴリズムとを備える、請求項2に記載のコンピュータで実装される方法。
【請求項4】
前記第1のダウンサンプリング倍率が整数で構成され、
前記コンピュータで実装される方法が、
前記第1のダウンサンプリング倍率に基づいてダウンサンプリング残差ブロックを生成するステップと、
前記ダウンサンプリング残差ブロックを恒等残差ブロックにつなげて、前記第1の畳み込みニューラルネットワークを生成するステップと、
をさらに含む、請求項1に記載のコンピュータで実装される方法。
【請求項5】
前記アップサンプリングアルゴリズムが微分可能である、請求項1に記載のコンピュータで実装される方法。
【請求項6】
前記アップサンプリングアルゴリズムを、前記第1のダウンサンプリング倍率に等しいアップサンプリング倍率を実装するように構成するステップをさらに含む、請求項1に記載のコンピュータで実装される方法。
【請求項7】
前記第1の再構成誤差を計算するステップが、前記第1の元画像に対する前記第1の再構成画像の平均二乗誤差を計算するステップを含む、請求項1に記載のコンピュータで実装される方法。
【請求項8】
前記第1の畳み込みニューラルネットワークの少なくとも1つのパラメータを更新するステップが、
前記第1の再構成誤差と少なくとも第2の再構成誤差とに基づいてイテレーション誤差を計算するステップであって、前記第2の再構成誤差は、前記第1の解像度と等しくない第2の解像度を有する第2の元画像に関連付けられている、イテレーション誤差を計算するステップと、
前記イテレーション誤差に基づいて、前記第1の畳み込みニューラルネットワークに対して逆伝播処理又は勾配降下処理の少なくとも一方を実行して、前記少なくとも1つのパラメータを更新するステップと、
を含む、請求項1に記載のコンピュータで実装される方法。
【請求項9】
前記訓練済み畳み込みニューラルネットワークが、元画像からダウンサンプル画像への写像を行い、
前記ダウンサンプル画像はそれぞれ、対応する元画像の解像度より前記第1のダウンサンプリング倍率だけ低い解像度を有している、請求項1に記載のコンピュータで実装される方法。
【請求項10】
前記第1の元画像が、訓練用映像に含まれるコマの少なくとも一部を含んでいる、請求項1に記載のコンピュータで実装される方法。
【請求項11】
1つ以上のプロセッサによって実行された場合に、画像をダウンサンプリングするようにニューラルネットワークを訓練する命令を含む1つ以上の非一時的なコンピュータ可読媒体であって、前記命令は、前記1つ以上のプロセッサに、
少なくとも2つの残差ブロックを備えるとともに、第1のダウンサンプリング倍率に関連付けられた第1の畳み込みニューラルネットワークを、第1の解像度を有する第1の元画像に対して実行して、第1のダウンサンプル画像を生成するステップと、
前記第1のダウンサンプル画像をアップサンプリングして、前記第1の解像度を有する第1の再構成画像を生成するステップと、
前記第1の再構成画像と前記第1の元画像とに基づいて第1の再構成誤差を計算するステップと、
前記第1の再構成誤差に基づいて、前記第1の畳み込みニューラルネットワークに対して1つ以上の訓練処理を実行して、訓練済み畳み込みニューラルネットワークを生成するステップと、
を実行させることにより前記訓練を行う、1つ以上の非一時的なコンピュータ可読媒体。
【請求項12】
前記第1のダウンサンプリング倍率が非整数で構成され、
前記命令が前記1つ以上のプロセッサに、
前記第1のダウンサンプリング倍率に基づいて、リサンプリング倍率分子とリサンプリング倍率分母とを求めるステップと、
前記リサンプリング倍率分子に基づいてアップサンプリング残差ブロックを生成するステップと、
前記リサンプリング倍率分母に基づいてダウンサンプリング残差ブロックを生成するステップと、
前記ダウンサンプリング残差ブロックを前記アップサンプリング残差ブロックにつなげて、前記第1の畳み込みニューラルネットワークを生成するステップと、
をさらに実行させる、請求項11に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項13】
前記アップサンプリング残差ブロックが、前記リサンプリング倍率分子に等しい出力ストライドを有する逆畳み込み層と、前記リサンプリング倍率分子に等しいアップサンプリング倍率を実装するアップサンプリングアルゴリズムとを備える、請求項12に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項14】
前記第1のダウンサンプリング倍率が整数で構成され、
前記命令が前記1つ以上のプロセッサに、
前記第1のダウンサンプリング倍率に基づいてダウンサンプリング残差ブロックを生成するステップと、
前記ダウンサンプリング残差ブロックを恒等残差ブロックにつなげて、前記第1の畳み込みニューラルネットワークを生成するステップと、
をさらに実行させる、請求項11に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項15】
前記第1のダウンサンプル画像をアップサンプリングするステップが、前記第1のダウンサンプル画像に対して双三次アップサンプリングアルゴリズム又は双一次アップサンプリングアルゴリズムを実行するステップを含む、請求項11に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項16】
前記第1のダウンサンプル画像をアップサンプリングするステップが、前記第1のダウンサンプル画像に対して前記第1のダウンサンプリング倍率に等しいアップサンプリング倍率を実装するアップサンプリングアルゴリズムを実行するステップを含む、請求項11に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項17】
前記第1の再構成誤差を計算するステップが、前記第1の元画像に対する前記第1の再構成画像の平均二乗誤差を計算するステップを含む、請求項11に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項18】
前記1つ以上の訓練処理を実行するステップが、前記第1の再構成誤差に基づいて、前記第1の畳み込みニューラルネットワークに対して逆伝播処理又は勾配降下処理の少なくとも一方を実行して、前記第1の畳み込みニューラルネットワークの少なくとも1つのパラメータを更新するステップを含む、請求項11に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項19】
前記命令が前記1つ以上のプロセッサに、
第2の解像度を有する元映像の各コマに対して前記訓練済み畳み込みニューラルネットワークを実行して、前記第2の解像度より前記第1のダウンサンプリング倍率だけ低い解像度を有するダウンサンプル映像を生成するステップ
をさらに実行させる、請求項11に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項20】
元画像から、ダウンサンプリング倍率に関連付けられたリサンプリング倍率分子だけ前記元画像の解像度より高い解像度を有するアップサンプル画像への写像を行う第1の残差ブロックと、
前記第1の残差ブロックに連結される第2の残差ブロックであって、前記アップサンプル画像から、前記元画像の前記解像度より前記ダウンサンプリング倍率だけ低い解像度を有するダウンサンプル画像への写像を行う第2の残差ブロックと、
を備える、畳み込みニューラルネットワーク。
【請求項21】
画像をダウンサンプリングするための、コンピュータで実装される方法であって、
少なくとも2つの残差ブロックを備えるとともに、第1のダウンサンプリング倍率に関連付けられた第1の訓練済み畳み込みニューラルネットワークを、第1の解像度を有する第1の元画像に対して実行して、前記第1の解像度よりも低い第2の解像度を有する第1のダウンサンプル画像を生成するステップ
を含むコンピュータで実装される方法。
【請求項22】
前記少なくとも2つの残差ブロックが、リサンプリング分数の分子に関連付けられたアップサンプリング残差ブロックと、前記リサンプリング分数の分母に関連付けられたダウンサンプリング残差ブロックと、を含む、請求項21に記載のコンピュータで実装される方法。
【請求項23】
前記アップサンプリング残差ブロックが、前記リサンプリング分数の前記分子に等しい出力ストライドを有する逆畳み込み層を備えている、請求項22に記載のコンピュータで実装される方法。
【請求項24】
前記アップサンプリング残差ブロックが、前記リサンプリング分数の前記分子に等しいアップサンプリング倍率を実装するアップサンプリングアルゴリズムを含んでいる、請求項22に記載のコンピュータで実装される方法。
【請求項25】
前記第1のダウンサンプリング倍率が整数で構成され、
前記少なくとも2つの残差ブロックが、恒等残差ブロックとダウンサンプリング残差ブロックとを備える、請求項21に記載のコンピュータで実装される方法。
【請求項26】
前記第1の元画像が、元映像のコマを含み、
前記第1のダウンサンプル画像が、ダウンサンプル映像のコマを含む、請求項21に記載のコンピュータで実装される方法。
【請求項27】
前記第1のダウンサンプル画像に対して1つ以上の符号化処理を実行して符号化画像を生成するステップをさらに含む、請求項21に記載のコンピュータで実装される方法。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、2020年12月23日を出願日とする米国特許出願第17/133206号の利益を主張するものであり、その内容は引用することによって本明細書に組み入れられるものとする。
【技術分野】
【0002】
本開示の種々の実施形態は、概して、コンピュータサイエンス及び映像符号化技術に関し、具体的には、映像をダウンサンプリングするための機械学習技術に関する。
【背景技術】
【0003】
一般的な映像ストリーミングサービスでは、様々なクライアントデバイスで視聴可能なメディアタイトルのライブラリへのアクセス権がユーザに提供される。動作時には、所与のクライアントデバイスは、接続状態が様々に変化する条件下で映像ストリーミングサービスへの接続を行うことになるため、利用可能なネットワーク帯域幅の変化の影響を受けやすい。そこで、利用可能なネットワーク帯域幅の如何を問わず、再生を途切れさせることなく、メディアタイトルをクライアントデバイスにストリーミングできるように、1つのメディアタイトルについて様々に異なる符号列をクライアントデバイスに対して提供している。そして、利用可能なネットワーク帯域幅が比較的低いときには、通常、「低画質(lower-quality)」の符号列をクライアントデバイスにストリーミングし、利用可能なネットワーク帯域幅が比較的高いときには、通常、「高画質(higher-quality)」の符号列をクライアントデバイスにストリーミングしている。
【0004】
所定のメディアタイトルについて様々に異なる符号列を生成するため、映像ストリーミングサービスでは通常、映像符号化パイプラインにより当該メディアタイトルの符号化を何度も行っている。映像符号化パイプラインでは、所定のメディアタイトルに関連付けられた元映像から、様々に異なる量の情報を削除することにより、異なるビットレートにそれぞれ関連付けられた複数の符号化映像を生成している。実際には、通常の符号化パイプラインの場合、元映像を複数の低解像度にダウンサンプリングした後、元映像と各ダウンサンプル低解像度映像とを異なる圧縮度で圧縮して、様々に異なる符号化映像を生成している。そして、或る符号化映像に関連付けられたビットレートが、利用可能なネットワーク帯域幅を上回っているかこれに等しい場合に、当該符号化映像を、再生を途切れさせることなくクライアントデバイスにストリーミングすることが可能となる。
【0005】
クライアントデバイス上で所定のメディアタイトルを再生するために、クライアントデバイスにエンドポイントアプリケーションを実装することができる。このエンドポイントアプリケーションは、当該メディアタイトルに対して生成された様々に異なる符号化映像を、利用可能なネットワーク帯域幅に基づいて選択するように構成されている。エンドポイントアプリケーションにより所定の符号化映像が選択されると、選択された符号化映像の1つ以上の不連続な断片(すなわち、「チャンク(chunk)」)が、クライアントデバイスに対して再生用にストリーミングされる。選択された符号化映像のチャンクを受信すると、エンドポイントアプリケーションが、当該チャンクを復号し、その後、任意選択的に、この復号されたチャンクをアップサンプリングして、これに対応する再構成映像のチャンクを生成する。この再構成映像は、クライアントデバイスのディスプレイと等しい解像度を有している。そして、クライアントデバイス上で擬似的にメディアタイトルの再生を行うべく、エンドポイントアプリケーションは、再構成映像の様々なチャンクを再生するのである。
【0006】
多くの映像符号化パイプラインでは、メディアタイトルの様々な符号化映像を生成する際にメディアタイトルの元映像から情報の削除を行う「不可逆な(lossy)」符号化が実装されている。従って、一般的には、或る再構成映像チャンクの画質は、通常、その再構成映像チャンクに対応する元映像チャンクの画質よりも低く、再構成映像チャンクの方が多くの画質損失やアーチファクトを含んでいる。さらにまた、一般に、符号化映像チャンクに関連付けられているビットレートの低下に従い、通常、これに対応する再構成映像チャンクの画質も低下する。
【0007】
従来の映像符号化パイプラインの欠点の1つに、パイプラインに含まれるダウンサンプラに通常実装されるサンプリングアルゴリズムが、多種多様な種類のデジタル信号に対してロバストに動作するように設計されており、特定の種類のデジタル信号用に特別設計されたものではなかったことが挙げられる。例えば、元映像の解像度低下に起因して再構成映像に生じる画質低下を最小限に抑えるように、ダウンサンプラが設計されていることはほとんどなかった。そのため、所定の符号化ビットレートに関連付けられた再構成映像の画質が全体として低下し、最適な画質とはならない恐れがあった。逆に言えば、再構成映像を所定の目標画質レベルにしようとすると、元映像を符号化する際に使用するビット総数が不必要に増えてしまう可能性があった。
【発明の概要】
【発明が解決しようとする課題】
【0008】
以上の説明から明らかなように、当技術分野では、映像符号化パイプラインにおいて元映像をダウンサンプリングするための、より効果的な技術が必要とされている。
【課題を解決するための手段】
【0009】
一実施形態では、映像符号化パイプラインにおいて画像をダウンサンプリングするようにニューラルネットワークを訓練するための方法が規定される。本方法は、少なくとも2つの残差ブロックを備えるとともに、第1のダウンサンプリング倍率に関連付けられた第1の畳み込みニューラルネットワークを、第1の解像度を有する第1の元画像に対して実行して、第1のダウンサンプル画像を生成するステップと、第1のダウンサンプル画像に対してアップサンプリングアルゴリズムを実行して、第1の解像度を有する第1の再構成画像を生成するステップと、第1の再構成画像と第1の元画像とに基づいて第1の再構成誤差を計算するステップと、第1の再構成誤差に基づいて、第1の畳み込みニューラルネットワークの少なくとも1つのパラメータを更新して、訓練済み畳み込みニューラルネットワークを生成するステップと、を含む。
【0010】
本開示の技術が先行技術に対して有している技術的利点のうちの少なくとも1つとして、本開示の技術を映像符号化パイプラインに実装することにより、従来の映像符号化パイプラインで通常体験されていた画質の低下を緩和できることが挙げられる。このために、映像符号化パイプラインに実装されたダウンサンプリング畳み込みニューラルネットワークが、映像符号化プロセスにおいて元画像のダウンサンプル画像表現を生成する際に、再構成誤差を低減するように学習している。再構成誤差は、これに対応する元映像のコマの解像度低下に起因して再構成映像のコマに生じる画質低下を近似するものである。従って、本開示の技術により、所定のビットレートに対する再構成映像の画質を、先行技術を使用した場合に比べて向上させることができる。逆に言えば、本開示の技術により、所定の目標画質を実現するに当たり、元映像を符号化する際に使用するビット数を、従来技術に比べて低く抑えることができる。これらの技術的利点により、先行技術の手法に対する1つ以上の技術的改良が得られる。
【0011】
以上、本発明の概念を簡単に要約したが、上記の種々の実施形態の各特徴を詳細に理解することができるように、本発明の概念を、種々の実施形態を参照して、より具体的に説明する。また、それら実施形態の一部は、添付の図面にも図示している。しかしながら、添付の図面は、本発明の概念の代表的な実施形態を例示するものに過ぎず、従って、本開示の範囲をいかなる意味においても限定するものと見なされるべきものではなく、同様の効果を有する他の実施形態も存在することに留意されたい。
【図面の簡単な説明】
【0012】
【
図1】種々の実施形態のうちの1つ以上の態様を実施するように構成されたシステムの概念図
【
図2】種々の実施形態に係る、
図1に示す複数の訓練アプリケーションのうちの1つをより詳細に示した図
【
図3】種々の実施形態に係る、
図1に示す複数の訓練済みダウンサンプリング畳み込みニューラルネットワークのうちの1つにより、非整数倍率でダウンサンプリングを行う様子をより詳細に示した図
【
図4】種々の実施形態に係る、
図1に示す複数の訓練済みダウンサンプリング畳み込みニューラルネットワークのうちの1つにより、整数倍率でダウンサンプリングを行う様子をより詳細に示した図
【
図5】種々の実施形態に係る、訓練済みダウンサンプリング畳み込みニューラルネットワークを生成するための方法ステップを示すフロー図
【
図6】種々の実施形態に係る、元映像を符号化するための方法ステップを示すフロー図
【発明を実施するための形態】
【0013】
以下の説明では、種々の実施形態をより詳細に理解できるよう、具体的な詳細を数多く示している。しかし、当業者であれば、これらの具体的な詳細の1つ以上を欠いても、本発明の概念を実施できることは明らかであろう。
【0014】
一般的な映像ストリーミングサービスでは、再生を途切れさせることなく、メディアタイトルを任意の数のクライアントデバイスにストリーミング可能とするため、メディアタイトルに関連付けられた元映像に基づいて、複数の異なる符号化映像を事前に生成している。そして、元映像を表現する符号化映像が使用するビット数を抑えるため、映像ストリーミングサービスでは、通常、符号化映像を事前生成する際に、元映像から選択された情報を削除する映像符号化パイプラインを利用している。符号化映像を生成する際に削除する情報の量が増えると、通常、元映像を近似するように符号化映像から生成され得る再構成映像の画質が低下する。従って、ビットレートと符号化映像に対応する再構成映像の画質とのバランスは、符号化映像ごとに異なっている。
【0015】
一般的には、利用可能なネットワーク帯域幅が比較的低いときには、通常、低ビットレートで低画質の符号化映像がクライアントデバイスにストリーミングされ、一方、利用可能なネットワーク帯域幅が比較的高いときには、通常、高ビットレートで高画質の符号化映像がクライアントデバイスにストリーミングされる。動作時には、クライアントデバイスに符号化映像がストリーミングされると、クライアントデバイスは符号化映像に基づいて再構成映像を生成しておき、その後、再構成映像を再生することにより擬似的にメディアタイトルの再生を行う。
【0016】
様々なビットレートを有する符号化映像を生成するために、映像符号化パイプラインは通常、ダウンサンプラとエンコーダとを実装している。ダウンサンプラは通常、元画像に対して動作するものである。従って、映像符号化パイプラインでは、ダウンサンプラは、元映像の個々のコマに対してダウンサンプリング処理を実行し、各コマごとに、複数の低解像度を有する低解像度映像のコマを生成するように構成される。そして次に、エンコーダが、元映像と各低解像度映像とを異なる圧縮度で圧縮して、様々に異なる符号化映像を生成する。
【0017】
従来の映像符号化パイプラインの欠点の1つに、パイプラインに含まれるダウンサンプラの設計が、元映像の解像度低下に起因してこれに対応する再構成映像に生じる画質低下を最小限に抑えるものとなっていることがほとんどなかったことが挙げられる。そのため、所定のビットレートに対して、これに関連付けられた再構成映像の画質が全体として低下し、最適な画質とはならない恐れがあった。逆に言えば、再構成映像を所定の目標画質レベルにしようとすると、元映像を符号化する際に使用するビット数が不必要に増えてしまう可能性があった。
【0018】
一方、本開示の技術では、訓練アプリケーションが機械学習技術を使用して、訓練済みダウンサンプリング畳み込みニューラルネットワーク(convolutional neural network:「CNN」)を生成し、訓練済みダウンサンプリングCNNにより、元画像をダウンサンプリングする際に再構成誤差を低減している。各再構成誤差は、元画像とこれに対応する再構成画像との間にある画質のエンドツーエンド損失に相関している。いくつかの実施形態では、訓練済みダウンサンプリングCNNのそれぞれが、異なるダウンサンプリング倍率に関連付けられている。各訓練済みダウンサンプリングCNNは、元画像からダウンサンプル画像表現への写像を行うが、このダウンサンプル画像表現の解像度は、元画像に比べて、当該訓練済みダウンサンプリングCNNに関連付けられたダウンサンプリング倍率だけ低くなるのである。
【0019】
訓練アプリケーションは、所定の1つのダウンサンプリング倍率に対応する訓練済みダウンサンプリングCNNを生成するために、まず、当該ダウンサンプリング倍率に基づいて、未訓練版のダウンサンプリングCNNを生成する。当業者であれば認識するように、通常、CNNでは、ダウンサンプリング処理の実行に用いられる処理の種類が、整数倍率に基づいた処理に制限されている。そのため、CNNによって非整数倍率に基づいて元画像をダウンサンプリングしようとすると問題が生じる場合があった。例えば、従来のCNN技術では、1920×1080の元映像のコマを1/1.5倍ダウンサンプリングして、これに対応する1280×720の低解像度映像のコマを生成することは難しかった。
【0020】
上記の問題に対処するため、訓練アプリケーションは、2つの残差ブロックを備える(ただし、これらに限定されない)ダウンサンプリングCNNを生成する。本明細書において、「残差ブロック(residual block)」とは、残差ブロックへの入力を残差に写像し、得られた残差を残差ブロックの入力の関数に加算することにより、残差ブロックの出力を生成するCNNの一部である。各残差ブロックは、残差ブロックへの入力を残差に写像するように訓練することができ、これにより残差ブロックの出力を調整するように訓練することができる。
【0021】
ダウンサンプリング倍率が非整数である場合、訓練アプリケーションは、リサンプリング倍率分子とリサンプリング倍率分母を、それぞれ、ダウンサンプリング倍率を表す既約分数の分子と分母に等しくなるように設定する。次に、訓練アプリケーションは、アップサンプリング残差ブロックとこれに続くダウンサンプリング残差ブロックとを備える(がこれらに限定されるものではない)ダウンサンプリングCNNを生成する。アップサンプリングブロックは、元画像をリサンプリング倍率分子でアップサンプリングして、アップサンプル画像を生成する。その後、ダウンサンプリングブロックは、アップサンプル画像をダウンサンプリングし、元画像よりもダウンサンプリング倍率だけ低い解像度を有するダウンサンプル画像表現を生成する。例えば、ダウンサンプリング倍率「1.5」に関連付けられたダウンサンプリングCNNは、1920×1080の元画像を、整数の倍率「2」に基づいてアップサンプリングし、3840×2160のアップサンプル画像を生成する。そして次に、このダウンサンプリングCNNが、3840×2160のアップサンプル画像を、整数の倍率「3」に基づいてダウンサンプリングし、1280×720のダウンサンプル画像表現を生成する。
【0022】
一方、ダウンサンプリング倍率が整数である場合、訓練アプリケーションは、恒等残差ブロックとこれに続くダウンサンプリング残差ブロックとを備える(がこれらに限定されるものではない)ダウンサンプリングCNNを生成する。恒等残差ブロックは、アップサンプリング残差ブロックの退化版であり、リサンプリング処理は行わない。訓練アプリケーションは、ダウンサンプリング残差ブロックを設定する際に、ダウンサンプリング倍率をリサンプリング倍率の分母として用いる。
【0023】
次に、訓練アプリケーションは、訓練用画像データベースに基づいて当該ダウンサンプリングCNNを訓練し、訓練済みダウンサンプリングCNNを生成する。訓練用画像データベースは、限定されるものではないが、任意の数及び/又は種類の訓練用画像(例えば、訓練用映像のコマ)を含むことができる。動作時には、訓練アプリケーションは、各訓練用画像を複数の部分に分割する。なお、本明細書では、かかる複数の部分を「画像パッチ(image patch)」と呼んでいる。次に、訓練アプリケーションは、この画像パッチに基づいて、ダウンサンプリングCNNに対して任意の数及び/又は種類の訓練処理を実行して、訓練済みのダウンサンプリングCNNを生成する。
【0024】
いくつかの実施形態では、訓練アプリケーションは、画像パッチに関連付けられた再構成誤差を低減するように、ダウンサンプリングCNNを繰り返し訓練する。与えられた画像パッチの再構成誤差を計算するため、まず、訓練アプリケーションは当該画像パッチをダウンサンプリングCNNに入力する。そして、これに応答して、ダウンサンプリングCNNは選択した画像パッチのダウンサンプル画像表現を出力する。その後、訓練アプリケーションは、ダウンサンプル画像表現をダウンサンプリング倍率でアップサンプリングすることにより、画像パッチに対応する再構成画像を生成する。訓練アプリケーションは、画像パッチの再構成誤差を、画像パッチに対する再構成画像の平均二乗誤差に等しくなるように設定する。そして、訓練アプリケーションは、更新後のダウンサンプリングCNNで生成した残差によって再構成誤差を緩和することができるように、ダウンサンプリングCNNのパラメータを更新する。
【0025】
訓練アプリケーションが、或るダウンサンプリング倍率に関連付けられたダウンサンプリングCNNの訓練を終了すると、訓練アプリケーションは、このダウンサンプリングCNNを、当該ダウンサンプリング倍率に対応する訓練済みダウンサンプリングCNNとして保存する。訓練アプリケーションは、訓練済みダウンサンプリングCNNを、任意の数の他のソフトウェアアプリケーションに送信することができる。いくつかの実施形態では、従来のダウンサンプラに代えて訓練済みダウンサンプリングCNNを映像符号化パイプラインにおいて使用することができるように、訓練アプリケーションが、異なるダウンサンプリング倍率にそれぞれ対応する複数の訓練済みダウンサンプリングCNNを生成するように構成されることに留意されたい。
【0026】
本開示の技術が先行技術に対して有している技術的利点のうちの少なくとも1つとして、本開示の技術を映像符号化パイプラインに実装することにより、従来の映像符号化パイプラインで通常体験されていた画質の低下を緩和できることが挙げられる。特に、映像符号化パイプラインに訓練済みダウンサンプリングCNNを実装することによって、元映像のコマの解像度低下に起因してこれに対応する再構成映像のコマに生じる画質の低下を抑制することができる。その結果、所定のビットレートに対する再構成映像の画質を、従来の映像符号化パイプラインを使用した場合に比べて向上させることができる。逆に言えば、従来の符号化パイプラインに比べて、所定の目標画質を実現するに当たり、映像符号化パイプラインで元映像を符号化する際に使用するビット数を低く抑えることができる。例えば、従来のダウンサンプラに代えて訓練済みダウンサンプリングCNNを映像符号化パイプラインに使用することで、所定の目標画質を実現するに当たり、与えられた元映像を符号化する際に使用するビット数を25%近く削減できることが実証結果で示されている。また、本開示の技術の他の技術的利点として、CNNにおけるダウンサンプリング処理の実行に関する制約にもかかわらず、訓練済みダウンサンプリングCNNのうちの任意の数の訓練済みダウンサンプリングCNNが、元画像、ひいては元映像を、非整数のダウンサンプリング倍率でダウンサンプリングすることができる点も挙げられる。これらの技術的利点により、先行技術の手法に対する1つ以上の技術的改良が得られる。
【0027】
システムの概要
図1は、種々の実施形態のうちの1つ以上の態様を実施するように構成されたシステム100の概念図である。説明の便宜上、同様のオブジェクトの複数のインスタンス又は版には、オブジェクトを識別する参照番号と、必要に応じてインスタンス又は版を識別する括弧付きの英数字とを付す。図示の通り、いくつかの実施形態では、システム100は、限定されるものではないが、コンピュートインスタンス110(1)と、コンピュートインスタンス110(2)と、訓練用画像データベース122と、ビットレートラダー162と、クライアントデバイス180と、コンテンツ配信ネットワーク(content delivery network:「CDN」)170とを備える。
【0028】
いくつかの他の実施形態では、システム100は、コンピュートインスタンス110(2)~110(3)、ビットレートラダー162、クライアントデバイス180、CDN170のうちの任意の数のいずれか、又はそれらの任意の組み合わせを省略することができる。いくつかの実施形態では、システム100は、限定されるものではないが、コンピュートインスタンス110の任意の数のインスタンスと、訓練用画像データベース122の任意の数のインスタンスと、ビットレートラダー162の(ゼロを含む)任意の数のインスタンスと、クライアントデバイス180の(ゼロを含む)任意の数のインスタンスと、CDN170の任意の数のインスタンスと、を任意の組み合わせで備えることができる。これらのシステム100のコンポーネントは、任意の数の共通の地理的場所及び/又は任意の数の異なる地理的場所に分散することができ、及び/又は任意の組み合わせで1つ以上のクラウドコンピューティング環境(すなわち、カプセル化された共有リソース、ソフトウェア、データなど)に実装することができる。
【0029】
図示の通り、コンピュートインスタンス110(1)が、限定されるものではないが、プロセッサ112(1)とメモリ116(1)とを備え、また、コンピュートインスタンス110(2)が、限定されるものではないが、プロセッサ112(2)とメモリ116(2)とを備える。本明細書では、コンピュートインスタンス110(1)及びコンピュートインスタンス110(2)を、個々に「コンピュートインスタンス(compute instance)110」と呼ぶ場合や、集合的に「コンピュートインスタンス(compute instances)110」と呼ぶ場合がある。また、本明細書では、プロセッサ112(1)及びプロセッサ112(2)を、個々に「プロセッサ(processor)112」と呼ぶ場合や、集合的に「プロセッサ(processors)112」と呼ぶ場合がある。また、本明細書では、メモリ116(1)及びメモリ116(2)を、個々に「メモリ(memory)116」と呼ぶ場合や、集合的に「メモリ(memories)116」と呼ぶ場合がある。各コンピュートインスタンス110は、クラウドコンピューティング環境で実装することができるほか、他の分散コンピューティング環境の一部として実装することもでき、又はスタンドアロンで実装することもできる。
【0030】
プロセッサ112は、命令を実行することが可能な任意の命令実行システム、装置、又はデバイスとすることができる。例えば、プロセッサ112は、中央処理装置、画像処理装置(graphics processing unit)、コントローラ、マイクロコントローラ、ステートマシン、又はそれらの任意の組み合わせを備えることができる。コンピュートインスタンス110のメモリ116は、コンピュートインスタンス110のプロセッサ112が使用するソフトウェアアプリケーションやデータなどのコンテンツを格納する。メモリ116は、1つ以上のローカル又はリモートのデジタル記憶装置とすることができ、容易に入手可能なメモリ(例えば、ランダムアクセスメモリ、読み取り専用メモリ、フロッピーディスク、ハードディスク)などの形態をとることができる。
【0031】
いくつかの他の実施形態では、任意の数のコンピュートインスタンス110のそれぞれが、任意の数のプロセッサ112と任意の数のメモリ116を任意の組み合わせで備えることができる。特定的には、(1を含む)任意の数のコンピュートインスタンス110により、技術的に実現可能な任意の方法でマルチプロセッシング環境を提供することができる。
【0032】
いくつかの実施形態では、記憶装置(図示せず)により、コンピュートインスタンス110のメモリ116の補完や代替を行うこともできる。記憶装置は、コンピュートインスタンス110のプロセッサ112がアクセス可能な任意の数及び種類の外部メモリを備えることができる。例えば、限定されるものではないが、記憶装置として、セキュアデジタルカード、外部フラッシュメモリ、ポータブルコンパクトディスク読み取り専用メモリ、光学記憶デバイス、磁気記憶デバイス、又はこれらの任意の適切な組み合わせを挙げることができる。
【0033】
一般に、各コンピュートインスタンス110は、1つ以上のソフトウェアアプリケーションを実装するように構成される。なお、説明の便宜上、各ソフトウェアアプリケーションが、複数のコンピュートインスタンス110のうちの1つのコンピュートインスタンス110のメモリ116に常駐して、当該1つのコンピュートインスタンス110のプロセッサ112上で実行されるものとして説明する。ただし、いくつかの実施形態では、各ソフトウェアアプリケーションの機能を、任意の数の他のソフトウェアアプリケーションに分散させて、これら他のソフトウェアアプリケーションが、任意の数のコンピュートインスタンス110のメモリ116に常駐して、任意の数のコンピュートインスタンス110のプロセッサ112上で実行されるように任意の組み合わせで構成することもできる。また、任意の数のソフトウェアアプリケーションの機能を、1つのソフトウェアアプリケーションに統合することもできる。
【0034】
特定的には、いくつかの実施形態では、ダウンサンプリング/符号化アプリケーション150とラダーアプリケーション160が、コンピュートインスタンス110(2)のメモリ116(2)に常駐し、コンピュートインスタンス110(2)のプロセッサ112(2)上で実行される。なお、いくつかの実施形態では、ダウンサンプリング/符号化アプリケーション150とラダーアプリケーション160をまとめて、「映像符号化パイプライン」と呼ぶ。同一又は他の実施形態において、ラダーアプリケーション160は、元映像152に基づいて符号化映像148(1)~148(V)を生成するように、ダウンサンプリング/符号化アプリケーション150を設定する。なお、Vは任意の正の整数とすることができる。なお、説明の便宜上、本明細書では、符号化映像148(1)~148(V)を、個々に「符号化映像148」と呼ぶ場合や、集合的に「符号化映像148」と呼ぶ場合がある。
【0035】
元映像152は、限定されるものではないが、任意の量及び/又は種類の映像コンテンツを含む。映像コンテンツのほんの数例を挙げれば、限定されるものではないが、長編映画や、テレビ番組の各回(複数回)、ミュージックビデオのうちの任意の部分(全編も含む)などがある。そして符号化映像148のそれぞれが、限定されるものではないが、元映像152に含まれる映像コンテンツから、異なる符号化点(図示せず)に基づいて導出される符号化映像コンテンツを含む。
【0036】
いくつかの実施形態では、各符号化点は、限定されるものではないが、解像度(図示せず)と量子化パラメータ(quantization parameter:「QP」)値(図示せず)とを有している。同一又は他の実施形態において、所与の符号化点の解像度により、元映像152の解像度又はそれより低い解像度が指定される。QP値とは、映像コンテンツを符号化する際に、ビットレートと画質に関して単調性を有する動作を可能にする符号化パラメータの値である。QP値が高いほど、ビットレートは低下するが、その代償として画質も低下する。いくつかの他の実施形態では、各符号化点は、QP値に代えて又は加えて、任意の数及び種類の符号化パラメータをそれぞれ含む、任意の数の符号化パラメータセット(図示せず)を含むことができる。
【0037】
いくつかの実施形態では、符号化映像148を生成するため、ダウンサンプリング/符号化アプリケーション150は、複数の符号化点で指定された複数の低解像度のそれぞれに合わせて元映像152をダウンサンプリングして、解像度の異なる複数の低解像度映像(図示せず)を生成する。当業者であれば認識するように、元映像152を所定の解像度にダウンサンプリングするステップは、元映像152の各コマ(
図1には図示せず)を所定の解像度にダウンサンプリングするステップを含む。ダウンサンプリング/符号化アプリケーション150は、各符号化点で指定された符号化パラメータセット(例えば、QP値)に基づいて、元映像152の符号化、又は当該符号化点で指定された解像度を有する低解像度映像の符号化を行い、各符号化点に対応する符号化映像148を生成する。いくつかの実施形態では、ダウンサンプリング/符号化アプリケーション150は、符号化映像148を、少なくとも1つの他のソフトウェアアプリケーションからアクセス可能なメモリに格納する。また、同一又は他の実施形態において、ダウンサンプリング/符号化アプリケーション150は、符号化映像148を、少なくとも1つの他のソフトウェアアプリケーション(例えば、ビットレートラダー)に送信する。
【0038】
いくつかの実施形態では、ラダーアプリケーション160は、符号化映像148に基づいてビットレートラダー162を生成する。ビットレートラダー162は、利用可能なネットワーク帯域幅に基づいて、クライアントデバイス180の任意のインスタンスで、メディアタイトルの再生時に目標画質を実現できるように設計されている。いくつかの実施形態では、ラダーアプリケーション160は、画質とビットレートとのバランスが最も優れた符号化映像148の符号化映像サブセット164を選択し、この符号化映像サブセット164に基づいてビットレートラダー162を生成する。
【0039】
同一又は他の実施形態において、ビットレートラダー162は、限定されるものではないが、任意の数の異なるビットレート-解像度対(図示せず)を含む。なお、ビットレート-解像度対のそれぞれが、符号化映像サブセット164に含まれる複数の符号化映像148のうちの異なる1つの符号化映像148に対応する。1つの符号化映像148に対応するビットレート-解像度対により、当該符号化映像148のビットレートと、ダウンサンプリング/符号化アプリケーション150が当該符号化映像148を生成するために符号化処理を行った元映像又は低解像度映像の解像度とが指定される。
【0040】
いくつかの実施形態では、ラダーアプリケーション160によって、符号化映像サブセット164がCDN170に提供されるとともに、ビットレートラダー162がクライアントデバイス180(
図1に示すクライアントデバイス180を含む)の任意の数のインスタンスに提供される。いくつかの実施形態では、CDN170は、符号化映像サブセット164の任意の数のコピーなどの任意の量及び/又は種類のデジタルコンテンツを、任意の数の異なる地理的地域にある任意の数のサーバに格納する。同一又は他の実施形態において、CDN170は、クライアント要求(図示せず)に応答して、クライアントデバイス180の任意の数のインスタンスにデジタルコンテンツを送信する。
【0041】
クライアントデバイス180は、エンドポイントアプリケーション190を実行することができるとともに、画像などの任意の種類の視覚コンテンツを任意の種類のディスプレイデバイス182で表示することが可能な任意の種類のデバイスとすることができる。例えば、クライアントデバイス180は、限定されるものではないが、スマートテレビ、ゲーム機、デスクトップコンピュータ、ノートパソコン、スマートフォン、タブレット端末などとすることができる。また、ディスプレイデバイス182は、限定されるものではないが、液晶ディスプレイ、発光ダイオードディスプレイ、投射型ディスプレイ、プラズマディスプレイパネルなどとすることができる。
【0042】
いくつかの実施形態では、元映像152に関連付けられたメディアタイトルをクライアントデバイス180上で再生する際には、まずクライアントデバイス180上で実行されるエンドポイントアプリケーション190が、クライアントデバイス180とCDN170との間の接続における利用可能なネットワーク帯域幅に基づいて、ビットレートラダー162に含まれるビットレート-解像度対のうちの1つを選択する。そして、エンドポイントアプリケーション190は、CDN170に対し、当該ビットレート-解像度対に対応する符号化映像148の少なくとも一部をクライアントデバイス180にストリーミングするよう求める要求を、クライアント要求としてCDN170に送信する。これに応答して、CDN170はクライアントデバイス180に対して、当該符号化映像148の不連続な断片を再生用にストリーミングする。本明細書では、かかる不連続な断片を「チャンク」と呼んでいる。
【0043】
なお、説明の便宜上、
図1には、複数の符号化映像148のうち、或る特定の時点で選択及びクライアントデバイス180へのストリーミングが行われた1つの符号化映像148のチャンクである符号化映像チャンク172を示している。通常、クライアントデバイス180は、時間をかけて、符号化映像148の複数のチャンクからなるチャンクシーケンスを受信するため、符号化映像チャンク172が表している符号化映像148の特定のチャンクは時間と共に変わっていく。なお、説明の便宜上、符号化映像148の様々に異なるチャンクを、符号化映像チャンク172の様々に異なるインスタンスとする。本明細書では、符号化映像チャンク172の異なるインスタンスを、個々に「符号化チャンク(encoded chunk)172」と呼ぶ場合や、集合的に「符号化映像チャンク(encoded video chunks)172」と呼ぶ場合がある。
【0044】
いくつかの実施形態では、符号化映像チャンク172を受信すると、エンドポイントアプリケーション190は、符号化映像チャンク172を復号して、復号映像チャンク(図示せず)を生成する。そして、エンドポイントアプリケーション190は、復号映像チャンクに対して、(ゼロを含む)任意の数及び/又は種類のサンプリング処理(例えば、アップサンプリング処理又はダウンサンプリング処理)を行い、ディスプレイデバイス182と等しい解像度を有する再構成映像チャンク192を生成する。そして、クライアントデバイス180上で擬似的にメディアタイトルの再生を行うべく、エンドポイントアプリケーション190は、元映像152の異なるチャンクに対応する再構成映像チャンク192の異なるインスタンスからなるシーケンスを再生する。なお、説明の便宜上、再構成映像の様々に異なるチャンク(図示せず)を、再構成映像チャンク192の様々に異なるインスタンスとする。本明細書では、再構成映像チャンク192の異なるインスタンスを、個々に「再構成映像チャンク(reconstructed video chunk)192」と呼ぶ場合や、集合的に「再構成映像チャンク(reconstructed video chunks)192」と呼ぶ場合がある。
【0045】
上述したように、通常、従来の映像符号化パイプラインは、従来のサンプリングアルゴリズムを実行して元映像を低解像度映像にダウンサンプリングする従来のダウンサンプラを備えるものであった。しかし、従来のサンプリングアルゴリズムの場合、元映像の解像度低下に起因してこれに対応する再構成映像に生じる画質低下を最小限に抑えるように設計がなされていることは、ほとんどない。このため、従来の映像符号化パイプラインで符号化映像を生成する場合には、所与の符号化ビットレートに対して、符号化映像から得られる、当該ビットレートに関連付けられた再構成映像の画質が全体として低下し、最適な画質とはならない恐れがあった。さらに、従来の映像符号化パイプラインで元映像を符号化する場合、再構成映像を所定の目標画質レベルにしようとすると、符号化に使用するビット総数が不必要に増えてしまう可能性もあった。
【0046】
機械学習技術を利用した元映像のダウンサンプリング
上記の問題に対処するため、システム100は、限定されるものではないが、訓練アプリケーション130(1)~130(N)を含む。なお、Nは任意の正の整数とすることができる。訓練アプリケーション130(1)~130(N)は、機械学習技術を使用して、訓練済みダウンサンプリング畳み込みニューラルネットワーク(「CNN」)140(1)~140(N)をそれぞれ生成する。訓練済みダウンサンプリングCNN140(1)~140(N)は、元画像(
図1には図示せず)をダウンサンプリングする際に再構成誤差(
図1には図示せず)を低減するものである。各元画像は、任意の種類の画像(例えば、元映像152の1コマ)の任意の部分(画像全体も含む)とすることができる。
【0047】
いくつかの実施形態では、再構成誤差は、元画像と当該元画像を元に再構成した画像との間にある画質のエンドツーエンド損失に相関する任意の種類の指標値である。例えば、いくつかの実施形態では、訓練アプリケーション130(1)~130(N)は、元画像をアップサンプリングする際に、元画像に対する再構成画像の平均二乗誤差を低減するように、訓練済みダウンサンプリングCNN140(1)~140(N)を最適化する。
【0048】
訓練アプリケーション130(1)~130(N)は、訓練アプリケーション130(明示的には図示せず)の異なるインスタンスである。なお、説明の便宜上、本明細書では、訓練アプリケーション130(1)~130(N)を、個々に「訓練アプリケーション(training application)130」と呼ぶ場合や、集合的に「訓練アプリケーション(training applications)130」と呼ぶ場合がある。図示の通り、いくつかの実施形態では、訓練アプリケーション130は、コンピュートインスタンス110(1)のメモリ116(1)に常駐し、コンピュートインスタンス110(1)のプロセッサ112(1)上で実行される。また、いくつかの他の実施形態では、各訓練アプリケーション130は、任意の数のコンピュートインスタンス110のメモリ116のいずれかに常駐して、任意の数のコンピュートインスタンス110のプロセッサ112のいずれかの上で実行されるように任意の組み合わせで構成することもできる。
【0049】
いくつかの実施形態では、訓練アプリケーション130(1)~130(N)は、対応するダウンサンプリング倍率124(1)~124(N)と訓練用画像データベース122とに基づいて、訓練済みダウンサンプリングCNN140(1)~140(N)をそれぞれ生成する。なお、説明の便宜上、本明細書では、訓練済みダウンサンプリングCNN140(1)~140(N)を、個々に「訓練済みダウンサンプリングCNN(trained downsampling CNN)140」と呼ぶ場合や、集合的に「訓練済みダウンサンプリングCNN(trained downsampling CNN)140」と呼ぶ場合がある。また、本明細書では、ダウンサンプリング倍率124(1)~124(N)を、個々に「ダウンサンプリング倍率(downsampling factor)124」と呼ぶ場合や、集合的に「ダウンサンプリング倍率(downsampling factors)124」と呼ぶ場合がある。
【0050】
各ダウンサンプリング倍率124は、任意の整数又は任意の非整数とすることができる。xを1からNまでの整数とすると、ダウンサンプリング倍率124(x)により、所定の元画像をダウンサンプリング倍率124(x)でダウンサンプリングして、元画像のダウンサンプル画像表現(
図1には図示せず)を生成する訓練済みダウンサンプリングCNN140(x)を生成するように、訓練アプリケーション130(x)が設定される。なお、本明細書では、訓練済みダウンサンプリングCNN140(x)を「ダウンサンプリング倍率124(x)に対応する訓練済みダウンサンプリングCNN140」と呼ぶ場合もある。ダウンサンプル画像表現は、元画像を表現する、ダウンサンプリングされた画像である。
【0051】
以下の
図2に関する説明で詳述するように、いくつかの実施形態では、訓練アプリケーション130は、複数のダウンサンプリング倍率124のうちの所与の1つの倍率に対応する訓練済みダウンサンプリングCNN140を生成するために、まず、当該ダウンサンプリング倍率124に基づいて、未訓練ダウンサンプリングCNN(
図1には図示せず)を生成する。そして、訓練アプリケーション130は、訓練用画像データベース122に基づいてこのダウンサンプリングCNNを訓練して、当該ダウンサンプリング倍率124に対応する訓練済みダウンサンプリングCNN140を生成する。
【0052】
いくつかの実施形態では、ダウンサンプリング倍率124が非整数である場合には、訓練アプリケーション130は、元画像をアップサンプリングしてアップサンプル画像(
図1には図示せず)を生成した後に、当該アップサンプル画像をダウンサンプリングしてダウンサンプル画像表現を生成するダウンサンプリングCNNを生成する。より正確には、ダウンサンプリングCNNは、リサンプリング倍率分子(
図1には図示せず)と等しいアップサンプリング倍率で元画像をアップサンプリングし、リサンプリング倍率分母(
図1には図示せず)と等しい倍率で当該アップサンプル画像をダウンサンプリングする。リサンプリング倍率分子とリサンプリング倍率分母は、それぞれ、ダウンサンプリング倍率124を表す既約分数の分子と分母に等しい。従って、ダウンサンプリングCNNは、元画像から、元画像の解像度よりダウンサンプリング倍率124だけ低いダウンサンプル画像解像度を有するダウンサンプル画像表現への写像を行う。
【0053】
一方、ダウンサンプリング倍率124が整数である場合には、訓練アプリケーション130は、元画像から緩和処理済み元画像(
図1には図示せず)への写像を行った後に、当該緩和処理済み元画像からダウンサンプル画像表現への写像を行うダウンサンプリングCNNを生成する。緩和処理済み元画像は、元画像と等しい解像度を有しており、ダウンサンプル画像表現は、元画像の解像度よりダウンサンプリング倍率124だけ低い解像度を有している。
【0054】
いくつかの実施形態では、訓練アプリケーション130は、訓練用画像データベース122に基づいて当該ダウンサンプリングCNNを訓練し、訓練済みダウンサンプリングCNN140を生成する。図示の通り、いくつかの実施形態では、訓練用画像データベース122は、限定されるものではないが、訓練用画像102(1)~102(T)を含んでいる。なお、Tは任意の正の整数とすることができる。本明細書では、訓練用画像102(1)~102(T)を、個々に「訓練用画像(training image)102」と呼ぶ場合や、集合的に「訓練用画像(training images)102」と呼ぶ場合がある。
【0055】
各訓練用画像102は、任意の種類の画像とすることができるとともに、それぞれ異なる解像度に関連付けることができる。いくつかの実施形態では、任意の数の訓練用画像102が、映像(例えば、元映像152)のコマである。同一又は他の実施形態において、任意の数の訓練用画像102が、訓練済みダウンサンプリングCNN140を調整する際の適合対象となる1つ以上の画像及び/又は映像の特性(例えば、解像度やジャンルなど)を示す画像となるように選択される。
【0056】
以下の
図2に関する説明で詳述するように、いくつかの実施形態では、訓練アプリケーション130は、訓練用画像102の不連続な断片(いわゆる「画像パッチ」)をダウンサンプリングする際に再構成誤差を低減するように、ダウンサンプリングCNNを繰り返し訓練する。与えられた画像パッチの再構成誤差を計算するため、まず、訓練アプリケーション130は当該画像パッチをダウンサンプリングCNNに入力する。そして、これに応答して、ダウンサンプリングCNNは画像パッチのダウンサンプル画像表現を生成する。訓練アプリケーション130は、当該ダウンサンプル画像表現をダウンサンプリング倍率124でアップサンプリングすることにより再構成画像を生成するように、微分可能なアップサンプリングアルゴリズム(図示せず)を設定する。次に、訓練アプリケーション130は、画像パッチ及び再構成画像に基づいて、技術的に実現可能な任意の方法で再構成誤差を計算する。例えば、いくつかの実施形態では、訓練アプリケーション130は、再構成誤差を、画像パッチに対する再構成画像の平均二乗誤差に等しくなるように設定する。
【0057】
訓練アプリケーション130がダウンサンプリングCNNの訓練を終了すると、訓練アプリケーション130は、このダウンサンプリングCNNを、ダウンサンプリング倍率124に対応する訓練済みダウンサンプリングCNN140として保存する。なお、説明の便宜上、
図1では、訓練済みダウンサンプリングCNN140(1)及び訓練済みダウンサンプリングCNN140(2)に関連するいくつかの例示的な値をイタリック体で示している。図示の通り、いくつかの実施形態では、ダウンサンプリング倍率124(1)は「1.5」である。従って、訓練アプリケーション130(1)は、元画像を2倍(図中「↑2」で示す)アップサンプリングしてアップサンプル画像を生成した後に、アップサンプル画像を1/3倍(図中「↓3」で示す)ダウンサンプリングしてダウンサンプル画像表現を生成する訓練済みダウンサンプリングCNN140(1)を生成する。また、同一又は他の実施形態において、ダウンサンプリング倍率124(2)は「2」である。従って、訓練アプリケーション130(2)は、元画像から緩和処理済み元画像への写像(図中「↑1」で示す)を行った後に、当該緩和処理済み元画像を1/2倍(図中「↓2」で示す)ダウンサンプリングしてダウンサンプル画像表現を生成する訓練済みダウンサンプリングCNN140(2)を生成する。
【0058】
いくつかの実施形態では、訓練アプリケーション130は、訓練済みダウンサンプリングCNN140を、少なくとも1つの他のソフトウェアアプリケーションからアクセス可能な任意のメモリに格納する。また、同一又は他の実施形態において、訓練アプリケーション130は、訓練済みダウンサンプリングCNN140を、任意の数及び/又は種類の他のソフトウェアアプリケーションに送信する。例えば、いくつかの実施形態では、訓練アプリケーション130(1)~130(N)はそれぞれ、訓練済みダウンサンプリングCNN140(1)~140(N)をダウンサンプリング/符号化アプリケーション150に送信する。
【0059】
いくつかの実施形態では、訓練済みダウンサンプリングCNN140を使用して符号化映像148を生成するために、ダウンサンプリング/符号化アプリケーション150は、元映像152の解像度と複数の符号化点で指定された複数の解像度とに基づいて、複数のダウンサンプリング倍率124からなるサブセット(図示せず)を求める。そして、ダウンサンプリング/符号化アプリケーション150は、ダウンサンプリング倍率124のサブセットに含まれる複数のダウンサンプリング倍率124それぞれについて、各ダウンサンプリング倍率124に対応する訓練済みダウンサンプリングCNN140を元映像152に対して実行して、各ダウンサンプリング倍率124に対応する低解像度映像を生成する。そして、ダウンサンプリング/符号化アプリケーション150は、各符号化点で指定された符号化パラメータセット(例えば、QP値)に基づいて、元映像152の符号化、又は当該符号化点で指定された解像度を有する低解像度映像の符号化を行い、各符号化点に対応する符号化映像148を生成する。そして、いくつかの実施形態では、ラダーアプリケーション160が、符号化映像148に基づいてビットレートラダー162を生成する。
【0060】
同一又は他の実施形態において、エンドポイントアプリケーションは、上述したように、クライアントデバイス180上で実行される。元映像152に関連付けられたメディアタイトルの少なくとも一部をクライアントデバイス180で再生するために、エンドポイントアプリケーション190は、元映像152から得られた符号化映像148のうちの1つを選択する。エンドポイントアプリケーション190は、技術的に実現可能な任意の方法で符号化映像148を選択することができる。例えば、いくつかの実施形態では、エンドポイントアプリケーション190は、ビットレートラダー162に含まれるビットレート-解像度対と、クライアントデバイス180に関連付けられた利用可能なネットワーク帯域幅とに基づいて、符号化映像148の選択を行う。符号化映像148のうちの1つがエンドポイントアプリケーション190により選択されると、符号化映像148の任意の数の符号化映像チャンク172がクライアントデバイス180に対して再生用にストリーミングされる。
【0061】
上述したように、各符号化映像チャンク172を受信すると、エンドポイントアプリケーション190は、符号化映像チャンク172を復号して、復号映像チャンク(図示せず)を生成する。そして、エンドポイントアプリケーション190は、復号映像チャンクに対して、(ゼロを含む)任意の数及び/又は種類のサンプリング処理(例えば、アップサンプリング処理又はダウンサンプリング処理)を行い、ディスプレイデバイス182と等しい解像度を有する再構成映像チャンク192を生成する。例えば、いくつかの実施形態では、エンドポイントアプリケーション190は、復号映像チャンクをアップサンプリングする。いくつかの他の実施形態では、エンドポイントアプリケーション190は、訓練済みダウンサンプリングCNN140(1)~140(N)のうちの1つを使用して、復号映像チャンクをダウンサンプリングする。そして、クライアントデバイス180上で擬似的にメディアタイトルの再生を行うべく、エンドポイントアプリケーション190は、再構成映像チャンク192を順番に再生する。
【0062】
なお、訓練済みダウンサンプリングCNN140の最適化に用いられる再構成誤差は、これに対応する元映像152のコマの解像度低下に起因して再構成映像チャンク192のコマに生じる画質低下を近似するものであることに留意されたい。そのため、映像符号化パイプラインにおいて、従来のダウンサンプラに代えて訓練済みダウンサンプリングCNN140を使用して、符号化映像148を生成することにより、従来の映像符号化パイプラインで通常体験されていた画質の低下を緩和することができる。
【0063】
いくつかの実施形態では、ダウンサンプリング/符号化アプリケーション150は、従来のダウンサンプラに代えて訓練済みダウンサンプリングCNN140を使用して低解像度映像を生成することにより、所定のビットレートに対する再構成映像チャンク192の画質を向上させることができる。逆に言えば、ダウンサンプリング/符号化アプリケーション150が元映像152を符号化して目標画質を実現するために使用するビット数を減らすことができる。
【0064】
なお、本明細書に記載の技術は、例示的なものであり、限定を意図するものではなく、広く捉えた本発明の精神及び範囲から逸脱しない限りにおいて変更可能であることに留意されたい。訓練アプリケーション130及び訓練済みダウンサンプリングCNN140により提供される機能については、本明細書に記載の実施形態の範囲及び精神から逸脱しない多くの変更及び変形が、当業者には明らかであろう。
【0065】
本明細書に示すシステム100は例示的なものであり、変形や変更が可能であることが理解されよう。例えば、
図1に示す各種コンポーネント間の接続トポロジは、必要に応じて変更することができる。例えば、いくつかの実施形態では、訓練アプリケーション130は、映像符号化パイプラインに統合される。同一又は他の実施形態では、映像符号化パイプラインにおいてラダーアプリケーション160が省略される。
【0066】
訓練済みダウンサンプリングCNNの生成
図2は、種々の実施形態に係る、
図1に示す複数の訓練アプリケーション130のうちの1つをより詳細に示した図である。具体的には、
図2は、ダウンサンプリング倍率124(1)及び訓練用画像データベース122に基づいて、訓練済みダウンサンプリングCNN140(1)を生成する訓練アプリケーション130(1)を示している。ダウンサンプリング倍率124(1)は、任意の整数又は任意の非整数とすることができる。上述の
図1に関する説明で述べたように、Tを任意の正の整数とすると、訓練用画像データベース122は、限定されるものではないが、訓練用画像102(1)~102(T)を含んでいる。いくつかの実施形態では、任意の数の訓練用画像102が、任意の数及び/又は種類の訓練用映像(図示せず)のコマである。
【0067】
図示の通り、いくつかの実施形態では、訓練アプリケーション130(1)は、限定されるものではないが、設定エンジン210と、再構成誤差エンジン232(1)~232(P)と、イテレーションエンジン220とを備えている。なお、Pは任意の正の整数とすることができる。再構成誤差エンジン232(1)~232(P)はそれぞれ、同じ版の再構成誤差エンジン232(明示的には図示せず)の異なるインスタンスである。なお、説明の便宜上、本明細書では、再構成誤差エンジン232のインスタンスを、版に関係なく、個々に「再構成誤差エンジン(reconstruction error engine)232」と呼ぶ場合や、集合的に「再構成誤差エンジン(reconstruction error engines)232」と呼ぶ場合がある。
【0068】
いくつかの実施形態では、設定エンジン210は、ダウンサンプリング倍率124(1)に基づいてダウンサンプリングCNN240(1)を生成する。ダウンサンプリングCNN240(1)は、ダウンサンプリングCNN240(明示的には図示せず)の最初の版である。ダウンサンプリングCNN240(1)は、元画像(
図2には図示せず)から、元画像よりもダウンサンプリング倍率124(1)だけ低い解像度を有する元画像のダウンサンプル画像表現248への写像を行う。元画像は、任意の種類の画像の任意の部分(画像全体も含む)とすることができる。設定エンジン210は、技術的に実現可能な任意の方法でダウンサンプリングCNN240(1)を生成することができる。
【0069】
図示の通り、いくつかの実施形態では、設定エンジン210は、限定されるものではないが、設定可能な非整数倍率CNN202と、設定可能な整数倍率CNN204と、リサンプリング倍率分子212(1)と、リサンプリング倍率分母214(1)とを含む。当業者であれば認識するように、通常、CNNでは、整数倍率に基づいたプーリング処理やストライド処理しかできないため、非整数倍率に基づいた元画像のサイズ変更(例えば、ダウンサンプリングやアップサンプリングなど)をCNNにより実行することには問題がある恐れがある。しかし、有利なことに、設定可能な非整数倍率CNN202は、任意の整数に等しくなるように設定することが可能な2つの設定可能倍率によって、任意の非整数倍率に基づいて元画像のサイズ変更を実行するように構成することができる。
【0070】
具体的には、設定可能な非整数倍率CNN202は、与えられた元画像からアップサンプル画像(
図2には図示せず)への写像を行った後に、アップサンプル画像からダウンサンプル画像表現248への写像を行う。アップサンプル画像は、元画像よりも第1の設定可能倍率だけ高い解像度を有しており、ダウンサンプル画像表現248は、アップサンプル画像よりも第2の設定可能倍率だけ低い解像度を有している。
【0071】
設定可能な整数倍率CNN204は、設定可能な非整数倍率CNN202の退化版であり、第1の設定可能倍率の値が「1」であることに基づいて、設定可能な非整数倍率CNN202を簡素化して事前設定したものである。よって、設定可能な整数倍率CNN204の設定可能倍率は1つとなる。設定可能な整数倍率CNN204は、元画像から緩和処理済み元画像(
図2には図示せず)への写像を行った後に、緩和処理済み元画像からダウンサンプル画像表現248への写像を行う。緩和処理済み元画像は、元画像と等しい解像度を有しており、ダウンサンプル画像表現248は、元画像よりもこの1つの設定可能倍率だけ低い解像度を有している。
【0072】
いくつかの実施形態では、ダウンサンプリング倍率124(1)が非整数である場合、設定エンジン210は、リサンプリング倍率分子212(1)とリサンプリング倍率分母214(1)を、それぞれ、ダウンサンプリング倍率124(1)を表す既約分数の分子と分母に等しくなるように設定する。次に、ダウンサンプリングCNN240(1)を生成するため、設定エンジン210は、設定可能な非整数倍率CNN202の第1の設定可能倍率と第2の設定可能倍率を、それぞれ、リサンプリング倍率分子212(1)とリサンプリング倍率分母214(1)に等しくなるように設定する。これに対し、ダウンサンプリング倍率124(1)が整数である場合には、設定エンジン210は、設定可能な整数倍率CNN204の唯一の設定可能倍率を、ダウンサンプリング倍率124(1)に等しくなるように設定して、ダウンサンプリングCNN240(1)を生成する。
【0073】
いくつかの実施形態では、設定可能な非整数倍率CNN202は、限定されるものではないが、元画像からアップサンプル画像への写像を補正するように訓練可能な1組のパラメータ(例えば、重みやバイアス)セットと、アップサンプル画像からダウンサンプル画像表現248への写像を補正するように訓練可能な他の1組のパラメータセットとを含んでいる。同様に、設定可能な整数倍率CNN204は、限定されるものではないが、元画像から緩和処理済み元画像への写像を補正するように訓練可能な1組のパラメータセットと、緩和処理済み元画像からダウンサンプル画像表現248への写像を補正するように訓練可能な他の1組のパラメータセットとを含んでいる。よって、ダウンサンプリング倍率124(1)が整数であるか否かにかかわらず、ダウンサンプリングCNN240(1)は、限定されるものではないが、共にダウンサンプル画像表現248に影響を与える2組の訓練可能なパラメータセットを含む。
【0074】
なお、説明の便宜上、「ダウンサンプリングCNN240」は、複数のダウンサンプリング倍率124のうちの1つで画像をダウンサンプリングするように訓練アプリケーション130によって訓練される任意のCNNを指す。また、かかる訓練の結果得られる訓練済みCNNを、本明細書では「訓練済みダウンサンプリングCNN140」と呼ぶ場合がある。訓練アプリケーション130(1)は、技術的に実現可能な任意の方法でダウンサンプリングCNN240を訓練することができる。
【0075】
いくつかの実施形態では、イテレーションエンジン220によりダウンサンプリングCNN240を効果的に訓練できるようにするため、設定エンジン210は、画像パッチ(明示的には図示せず)とダウンサンプリングCNN240(1)に基づいて再構成誤差260(明示的には図示せず)を計算するように、最初の版の再構成誤差エンジン232を設定する。画像パッチ228は、任意の種類の画像の任意の部分(画像全体も含む)とすることができる。なお、説明の便宜上、本明細書では、画像パッチ228のインスタンスを、個々に「画像パッチ(image patch)228」と呼ぶ場合や、集合的に「画像パッチ(image patches)228」と呼ぶ場合がある。画像パッチ228は、それぞれ異なる元画像である。
【0076】
以下でさらに詳述するように、再構成誤差260は、ダウンサンプリングCNN240に起因して画像パッチ228のうちの1つから得られる再構成画像258に生じる画質低下と相関している。特に、最初の版の再構成誤差エンジン232において、再構成誤差260は、最初の版のダウンサンプリングCNN240に起因して画像パッチ228のうちの1つから得られる再構成画像258に生じる画質低下と相関している。
【0077】
図示の再構成誤差エンジン232(1)に示すように、最初の版の再構成誤差エンジン232は、限定されるものではないが、ダウンサンプリングCNN240(1)とアップサンプリングエンジン250とを備えている。アップサンプリングエンジン250は、技術的に実現可能な任意の方法で、任意の微分可能なアップサンプリングアルゴリズムを実装することができる。限定されるものではないが、微分可能なアップサンプリングアルゴリズムのいくつかの例として、双三次アップサンプリングアルゴリズムや双一次アップサンプリングアルゴリズムが挙げられる。設定エンジン210は、ダウンサンプリング倍率124(1)でアップサンプリングを行うようにアップサンプリングエンジン250を設定する。設定エンジン210は、技術的に実現可能な任意の方法でアップサンプリングエンジン250を設定することができる。例えば、いくつかの実施形態では、設定エンジン210は、アップサンプリングエンジン250によって実装されるアップサンプリングアルゴリズムに関連付けられた変更可能な設定項目(図示せず)により、アップサンプリングエンジン250の設定を行う。
【0078】
なお、説明の便宜上、いくつかの実施形態において設定エンジン210に関連付けられたいくつかの例示的な値をイタリック体で示している。イタリック体で示しているように、いくつかの実施形態では、ダウンサンプリング倍率124(1)は「1.5」に等しい。そして、このダウンサンプリング倍率124(1)の非整数値「1.5」に基づいて、設定エンジン210は、リサンプリング倍率分子212(1)を「2」に等しくなるように設定し、リサンプリング倍率分母214(1)を「3」に等しくなるように設定する。そして、イタリック体で示しているように、設定エンジン210は、リサンプリング倍率分子212(1)が「2」であり、リサンプリング倍率分母214(1)が「3」であることに基づいて、設定可能な非整数倍率CNN202を設定することにより、ダウンサンプリングCNN240(1)を生成する。また、設定エンジン210は、ダウンサンプリング倍率124(1)である「1.5」(イタリック体で示す)倍でアップサンプリングを行うようにアップサンプリングエンジン250内の双三次アルゴリズムを設定する。
【0079】
再構成誤差エンジン232は、複数の画像パッチ228のうちの1つの入力を受けると、当該画像パッチ228をダウンサンプリングCNN240(1)に入力する。これに応答して、ダウンサンプリングCNN240(1)は画像パッチ228のダウンサンプル画像表現248を出力する。そして、再構成誤差エンジン232は、ダウンサンプル画像表現248をアップサンプリングエンジン250に入力する。これに応答して、アップサンプリングエンジン250は、画像パッチ228を近似する再構成画像258を生成する。そして、再構成誤差エンジン232は、画像パッチ228と再構成画像258とに基づいて、画像パッチ228の再構成誤差260を計算して出力する。
【0080】
再構成誤差エンジン232は、技術的に実現可能な任意の方法で再構成誤差260を計算することができる。いくつかの実施形態では、再構成誤差エンジン232は、任意の数及び/又は種類の画質指標及び/又は任意の数及び/又は種類の画質モデルに基づいて、再構成誤差260を計算する。例えば、いくつかの実施形態では、再構成誤差エンジン232は、再構成誤差260を、画像パッチ228に対する再構成画像258の平均二乗誤差に等しくなるように設定する。いくつかの他の実施形態では、再構成誤差エンジン232は、再構成誤差260を、再構成画像258と画像パッチ228との間のピーク信号対雑音比に等しくなるように設定する。
【0081】
いくつかの実施形態では、イテレーションエンジン220は、訓練用画像データベース122に基づいて、再構成誤差エンジン232を使用して、ダウンサンプリングCNN240(1)に対して任意の数及び/又は種類の訓練処理を実行する。本明細書において、「訓練処理(training operation)」とは、CNN(例えば、ダウンサンプリングCNN240(1))のパラメータ(例えば、重みやバイアス)の新しい値を求めるために用いられる任意の数及び/又は種類の処理、並びにCNNのパラメータをこれらの新しい値に更新するために用いられる任意の数及び/又は種類の処理を指す。
【0082】
具体的には、いくつかの実施形態では、イテレーションエンジン220は、訓練用画像102から得られた任意の数の画像パッチ228に基づいて再構成誤差エンジン232が計算した再構成誤差260のインスタンスを使用して、ダウンサンプリングCNN240(1)に含まれるパラメータを繰り返し補正する。なお、説明の便宜上、本明細書では、再構成誤差260のインスタンスを、個々に「再構成誤差260」と呼ぶ場合や、集合的に「再構成誤差260」と呼ぶ場合がある。
【0083】
いくつかの実施形態では、イテレーションエンジン220は、訓練用画像データベース122に含まれる各訓練用画像102に対して、画像パッチ228のインスタンスを少なくとも1つ生成する。イテレーションエンジン220は、技術的に実現可能な任意の方法で、各訓練用画像102の画像パッチ228を生成することができる。いくつかの実施形態では、各訓練用画像102に関連付けられた画像パッチサブセットの画像パッチ228に重複はない。
【0084】
同一又は他の実施形態において、イテレーションエンジン220は、訓練用画像102から導出した画像パッチ228をバッチ222(1)~222(B)に分ける。なお、Bは任意の正の整数とすることができる。なお、説明の便宜上、本明細書では、バッチ222(1)~222(B)を、個々に「バッチ(batch)222」と呼ぶ場合や、集合的に「バッチ(batches)222」と呼ぶ場合がある。イテレーションエンジン220は、技術的に実現可能な任意の方法で、バッチ222を何個生成するかを決定して、その個数のバッチ222に画像パッチ228を分配することができる。
【0085】
例えば、いくつかの実施形態では、イテレーションエンジン220は、1より大きいが画像パッチ228の総数より少ないバッチ総数でバッチ222を生成して、画像パッチ228をそれらのバッチ222にほぼ均等に分ける。また、他のいくつかの実施形態では、イテレーションエンジン220は、バッチ222のインスタンスを1つ生成して、すべての画像パッチ228を当該1つのバッチ222に割り当てる。さらに他の実施形態では、イテレーションエンジン220は、画像パッチ228の総数と等しいバッチ総数のバッチ222を生成して、生成したバッチ222のそれぞれに画像パッチ228を1つずつ割り当てる。
【0086】
図示の通り、いくつかの実施形態では、イテレーションエンジン220は、バッチイテレーション230(1)~230(Z)により、ダウンサンプリングCNN240(1)を繰り返し訓練する。なお、Zは、エポック総数(図示せず)とバッチ222の総数との積に等しい。説明の便宜上、本明細書では、バッチイテレーション230(1)~230(Z)を、個々に「バッチイテレーション(batch iteration)230」と呼ぶ場合や、集合的に「バッチイテレーション(batch iterations)230」と呼ぶ場合がある。イテレーションエンジン220は、技術的に実現可能な任意の方法でエポック総数を決定することができる。例えば、いくつかの実施形態では、イテレーションエンジン220は、グラフィカルユーザインタフェース(図示せず)を介して受信した入力に少なくとも一部基づいて、エポック総数を決定する。また、同一又は他の実施形態において、イテレーションエンジン220は、任意の数及び/又は種類の収束基準に基づいてエポック総数を決定する。
【0087】
いくつかの実施形態では、イテレーションエンジン220はエポックを順番に実行する。また、各エポックの実行に当たっては、イテレーションエンジン220は、複数のバッチ222それぞれに対してバッチイテレーション230を1回ずつ順番に実行する。従って、イテレーションエンジン220はバッチイテレーション230(1)~230(Z)を順番に実行する。同一又は他の実施形態において、各バッチイテレーション230において、イテレーションエンジン220は、当該バッチ222に含まれる画像パッチ228を、任意の数の再構成誤差エンジン232に入力する。かかる入力は、逐次入力、同時入力、又は逐次入力と同時入力の任意の組み合わせで行われる。これに応答して、再構成誤差エンジン232は、当該バッチ222に含まれる複数の画像パッチ228のそれぞれについて、再構成誤差260を計算して出力する。かかる処理は、逐次的処理、同時処理、又は逐次的処理と同時処理の任意の組み合わせで行われる。
【0088】
同一又は他の実施形態において、イテレーションエンジン220は、バッチイテレーション230において再構成誤差エンジン232が計算した複数の再構成誤差260に基づいて、バッチイテレーション230のイテレーション誤差270を計算する。イテレーション誤差270は、任意の種類の全目的関数(例えば、全損失関数)の任意の値とすることができ、イテレーションエンジン220は、技術的に実現可能な任意の方法でイテレーション誤差270を計算することができる。例えば、いくつかの実施形態では、イテレーションエンジン220は、バッチイテレーション230において再構成誤差エンジン232が計算した再構成誤差260の平均に等しくなるように、イテレーション誤差270を設定する。
【0089】
そして、いくつかの実施形態では、イテレーションエンジン220は、イテレーション誤差270を低減するという目標に従ってパラメータ更新処理280を実行して、このバッチイテレーション230を完了する。パラメータ更新処理280において、イテレーションエンジン220は、ダウンサンプリングCNN240のパラメータのうちの任意の数のパラメータを更新して、イテレーション誤差270を低減するという目標に対してより良好に最適化された、新しい版のダウンサンプリングCNN240を生成する。イテレーションエンジン220は、任意の数及び/又は種類の機械学習処理を実行して、パラメータ更新処理280を実行することができる。例えば、いくつかの実施形態では、イテレーションエンジン220は、任意の数及び/又は種類の逆伝播処理と、任意の数及び/又は種類の勾配降下処理とを実行して、現在の版のダウンサンプリングCNN240のパラメータを更新し、これにより、新しい版のダウンサンプリングCNN240を生成する。
【0090】
説明の便宜上、
図2では、いくつかの実施形態に係るバッチイテレーション230(1)の一例を詳細に示している。図示の通り、いくつかの実施形態では、バッチ222(1)は、限定されるものではないが、画像パッチ228(1)~228(P)を含む。なお、Pは任意の整数とすることができる。イテレーションエンジン220は、画像パッチ228(1)~228(P)を再構成誤差エンジン232(1)~232(P)に同時入力する。なお、再構成誤差エンジン232(1)~232(P)のそれぞれが、いずれもダウンサンプリングCNN240(1)を含むことに留意されたい。これに応答して、再構成誤差エンジン232(1)~232(P)は、再構成誤差260(1)~260(P)を同時に計算して出力する。イテレーションエンジン220は、再構成誤差260(1)~260(P)に基づいてイテレーション誤差270を計算する。次に、イテレーションエンジン220は、イテレーション誤差270に基づいてダウンサンプリングCNN240(1)に対してパラメータ更新処理280を実行して、ダウンサンプリングCNN240の新しい版(
図2では、ダウンサンプリングCNN「240(2)」と記載)を生成する。
【0091】
いくつかの実施形態では、各バッチイテレーション230が完了する度に、イテレーションエンジン220は、新しく生成した版のダウンサンプリングCNN240が次回のバッチイテレーション230で使用されるように再構成誤差エンジン232の設定を行う。なお、説明の便宜上、本明細書では、ダウンサンプリングCNN240を異なる版ごとに、ダウンサンプリングCNN240(1)~240(Z+1)と記載している。なお、Zはバッチイテレーション230の総数である。従って、xを1~Zの整数とすると、バッチイテレーション230(x)において、イテレーションエンジン220はダウンサンプリングCNN240(x)に基づいてイテレーション誤差270を計算して、ダウンサンプリングCNN240(x+1)を生成する。
【0092】
図示の通り、バッチイテレーション230(Z)の実行を終えると、イテレーションエンジン220は、訓練済みダウンサンプリングCNN140(1)を、ダウンサンプリングCNN240(Z+1)に等しくなるように設定する。いくつかの実施形態では、イテレーションエンジン220は、訓練済みダウンサンプリングCNN140(1)を、任意の数の他のソフトウェアアプリケーションからアクセス可能なメモリに格納する。また、同一又は他の実施形態において、イテレーションエンジン220は、訓練済みダウンサンプリングCNN140(1)を、任意の数の他のソフトウェアアプリケーションに送信する。例えば、いくつかの実施形態では、イテレーションエンジン220は、訓練済みダウンサンプリングCNN140(1)をダウンサンプリング/符号化アプリケーション150に送信する。
【0093】
訓練済みダウンサンプリングCNN
図3は、種々の実施形態に係る、
図1に示す複数の訓練済みダウンサンプリングCNN140のうちの1つにより、非整数倍率でダウンサンプリングを行う様子をより詳細に示した図である。具体的には、
図3は、任意の非整数とすることができるダウンサンプリング倍率124(1)に関連付けられた、
図1の訓練済みダウンサンプリングCNN140(1)を示している。上述の
図2に関する説明で述べたように、訓練済みダウンサンプリングCNN140(1)は、リサンプリング倍率分子212(1)とリサンプリング倍率分母214(1)にも関連付けられている。リサンプリング倍率分子212(1)とリサンプリング倍率分母214(1)は、それぞれ、ダウンサンプリング倍率124(1)の逆数に等しい分数(図示せず)の分子と分母に等しい。
【0094】
図示の通り、いくつかの実施形態では、訓練済みダウンサンプリングCNN140(1)は、元画像308から、元画像308よりダウンサンプリング倍率124(1)だけ低い解像度を有するダウンサンプル画像表現248への写像を行う。元画像308は、任意の解像度を有する任意の画像の任意の部分(画像全体も含む)とすることができる。いくつかの実施形態では、元画像308は、元映像152の1コマの少なくとも一部である。
【0095】
図示は省略するが、同一又は他の実施形態において、ダウンサンプリング/符号化アプリケーション150は、元映像152に含まれる各コマを、ダウンサンプリングCNN240(1)の任意の数のインスタンスに入力する。かかる入力は、逐次入力、同時入力、又は逐次入力と同時入力の任意の組み合わせで行われる。これに応答して、訓練済みダウンサンプリングCNN140(1)の(1つ以上の)インスタンスは、元映像152の解像度よりもダウンサンプリング倍率124(1)だけ低い解像度を有する低解像度映像に含まれる各コマを出力する。本明細書では、この低解像度映像を「ダウンサンプル映像(downsampled video)」とも呼ぶ場合もある。
【0096】
いくつかの実施形態では、訓練済みダウンサンプリングCNN140(1)は、限定されるものではないが、アップサンプリング残差ブロック310とダウンサンプリング残差ブロック360とを備えている。本明細書において、「残差ブロック」とは、残差ブロックへの入力を残差に写像し、得られた残差を残差ブロックの入力の関数に加算することにより、残差ブロックの出力を生成するCNNの一部である。なお、説明の便宜上、各残差ブロックには、限定されるものではないが、残差ブロックへの入力を残差に写像する「主(primary)」経路と、残差ブロックの入力の関数を計算する「ショートカット(shortcut)」経路が含まれる。
【0097】
いくつかの実施形態では、訓練アプリケーション130(1)がダウンサンプリングCNN240(1)に対して訓練処理を実行して訓練済みダウンサンプリングCNN140(1)を生成すると、アップサンプリング残差ブロック310とダウンサンプリング残差ブロック360の両方で、再構成誤差260を共同で低減する残差写像の学習を行う。その結果、アップサンプリング残差ブロック310が学習したパラメータとダウンサンプリング残差ブロック360が学習したパラメータにより、ダウンサンプリング関数380に内在するデータ損失に伴う画質の低下が緩和される。
【0098】
図示の通り、いくつかの実施形態では、アップサンプリング残差ブロック310への入力は元画像308であり、アップサンプリング残差ブロック310からの出力はアップサンプル画像318である。アップサンプル画像318の解像度は、元画像308の解像度とリサンプリング倍率分子212(1)の積に等しい。なお、説明の便宜上、本明細書では、元画像308の解像度とリサンプリング倍率分子212(1)の積を、「アップサンプル解像度(upsampled resolution)」と呼ぶ場合がある。
【0099】
いくつかの実施形態では、アップサンプリング残差ブロック310は、限定されるものではないが、アップサンプリング関数350と高解像度層スタック312とを備える。図示の通り、いくつかの実施形態では、第1の分岐接続(参照符号なし)で、元画像308を、アップサンプリング関数350への入力と高解像度層スタック312への入力とに振り向ける。アップサンプリング関数350の出力は、アップサンプル解像度を有するアルゴリズム生成アップサンプル画像358となる。高解像度層スタック312の出力は、アップサンプル解像度を有するアップサンプリング残差348となる。そして、丸囲みの「+」記号で示すように、いくつかの実施形態では、第1の合流接続で、アップサンプリング残差348とアルゴリズム生成アップサンプル画像358との和をサンプル単位で計算して、アップサンプル画像318を生成する。
【0100】
いくつかの実施形態では、アップサンプリング関数350は、任意の微分可能なアップサンプリングアルゴリズムを技術的に実現可能な任意の方法で実装することにより、元画像308に基づいてアルゴリズム生成アップサンプル画像358を生成することができる。限定されるものではないが、微分可能なアップサンプリングアルゴリズムのいくつかの例として、双三次アップサンプリングアルゴリズムや双一次アップサンプリングアルゴリズムが挙げられる。同一又は他の実施形態において、アップサンプリング関数350と訓練アプリケーション130(1)に含まれるアップサンプリングエンジン250とが、同一のアップサンプリングアルゴリズムを実装している。いくつかの実施形態では、アップサンプリング関数350は、訓練可能なパラメータを含んでいない。従って、ダウンサンプリングCNN240(1)に含まれるアップサンプリング関数350は、訓練済みダウンサンプリングCNN140(1)に含まれるアップサンプリング関数350と同一の機能を有している。
【0101】
高解像度層スタック312は、限定されるものではないが、元画像308からアップサンプリング残差348への写像を行うように訓練された任意の数及び/又は種類の層を含む。図示の通り、いくつかの実施形態では、高解像度層スタック312は、限定されるものではないが、高解像度層セット320と、畳み込み整流線形ユニット(Rectified Linear Unit:「ReLU」)層対330(1)~330(K)と、畳み込み層340(1)とを含む。なお、Kは任意の正の整数とすることができる。
【0102】
高解像度層セット320は、限定されるものではないが、技術的に実現可能な任意の方法で、任意の数及び/又は種類のアップサンプリング処理を実行する任意の数及び/又は種類の層を含み、任意選択的に、任意の数及び/又は種類の他の層を含むことができる。例えば、いくつかの実施形態では、高解像度層セット320は、限定されるものではないが、アップサンプリング層(図示せず)を含み、任意選択的に、これに続いて活性化層(図示せず)を含むことができる。アップサンプリング層への入力は元画像308であり、アップサンプリング層の出力はアップサンプル解像度を有している。
【0103】
いくつかの実施形態では、アップサンプリング層は、リサンプリング倍率分子212(1)に等しい出力ストライドを有する逆畳み込み層である。動作時には、逆畳み込み層は、元画像308をリサンプリング倍率分子212(1)に等しい倍率でアップサンプリングするストライド逆畳み込み処理を元画像308に対して実行する。いくつかの他の実施形態では、アップサンプリング層は逆プーリング(unpooling)層である。逆プーリング層は、元画像308に対して、任意の種類の逆プーリング処理(例えば、最近傍逆プーリング処理、最大値逆プーリング処理など)を実行することができる。同一又は他の実施形態において、アップサンプリング層の出力が活性化層への入力とされ、活性化層の出力が高解像度層セット320の出力とされる。例えば、いくつかの実施形態では、活性化層は、アップサンプリング層の出力に含まれる各サンプルに整流線形活性化関数を適用して、高解像度層セット320の出力を生成するReLU層である。
【0104】
畳み込みReLU層対330(1)~330(K)は、畳み込みReLU層対330(明示的には図示せず)のインスタンスである。なお、説明の便宜上、本明細書では、畳み込みReLU層対330のインスタンス(畳み込みReLU層対330(1)~330(K)を含む)を、個々に「畳み込みReLU層対(convolution ReLU layer pair)330」と呼ぶ場合や、集合的に「畳み込みReLU層対(convolution ReLU layer pairs)330」と呼ぶ場合がある。各畳み込みReLU層対330は、限定されるものではないが、畳み込み層と、これに続くReLU層とを含む。高解像度層セット320の出力が、畳み込みReLU層対330(1)への入力とされる。また、xを2からKまでの整数とすると、畳み込みReLU層対330(x-1)の出力が、畳み込みReLU層対330(x)への入力とされる。図示の通り、いくつかの実施形態では、畳み込みReLU層対330(K)の出力が、畳み込み層340(1)への入力とされ、畳み込み層340(1)の出力が、アップサンプリング残差348となる。
【0105】
図示の通り、いくつかの実施形態では、ダウンサンプリング残差ブロック360への入力はアップサンプル画像318であり、ダウンサンプリング残差ブロック360の出力はダウンサンプル画像表現248である。ダウンサンプル画像表現248の解像度は、アップサンプル画像318の解像度をリサンプリング倍率分母214(1)で除したものに等しい。従って、ダウンサンプル画像表現248の解像度は、元画像308の解像度をダウンサンプリング倍率124(1)で除したものとも等しくなる。なお、説明の便宜上、本明細書では、ダウンサンプル画像表現248の解像度を、「ダウンサンプル解像度(downsampled resolution)」と呼ぶ場合がある。
【0106】
いくつかの実施形態では、ダウンサンプリング残差ブロック360は、限定されるものではないが、ダウンサンプリング関数380と低解像度層スタック362とを備える。同一又は他の実施形態において、第2の分岐接続(参照符号なし)で、アップサンプル画像318を、ダウンサンプリング関数380への入力と低解像度層スタック362への入力とに振り向ける。ダウンサンプリング関数380の出力は、ダウンサンプル解像度を有するアルゴリズム生成ダウンサンプル画像388となる。低解像度層スタック362の出力は、ダウンサンプル解像度を有するダウンサンプリング残差378となる。そして、丸囲みの「+」記号で示すように、いくつかの実施形態では、第2の合流接続で、ダウンサンプリング残差378とアルゴリズム生成ダウンサンプル画像388との和をサンプル単位で計算して、ダウンサンプル画像表現248を生成する。
【0107】
いくつかの実施形態では、ダウンサンプリング関数380は、任意の微分可能なダウンサンプリングアルゴリズムを技術的に実現可能な任意の方法で実装することにより、アップサンプル画像318に基づいてアルゴリズム生成ダウンサンプル画像388を生成することができる。限定されるものではないが、微分可能なダウンサンプリングアルゴリズムのいくつかの例として、双三次ダウンサンプリングアルゴリズムや双一次ダウンサンプリングアルゴリズムが挙げられる。いくつかの実施形態では、ダウンサンプリング関数380は、訓練可能なパラメータを含んでいない。従って、ダウンサンプリングCNN240(1)に含まれるダウンサンプリング関数380は、訓練済みダウンサンプリングCNN140(1)に含まれるダウンサンプリング関数380と同一の機能を有している。
【0108】
低解像度層スタック362は、限定されるものではないが、アップサンプル画像318からダウンサンプリング残差378への写像を行うように訓練された任意の数及び/又は種類の層を含む。図示の通り、いくつかの実施形態では、低解像度層スタック362は、限定されるものではないが、低解像度層セット370と、畳み込みReLU層対330(K+1)~330(L)と、畳み込み層340(2)とを含む。なお、Kは任意のゼロ以外の整数とすることができ、Lは(K+1)より大きい任意の整数とすることができる。
【0109】
低解像度層セット370は、アップサンプル画像318を、リサンプリング倍率分母214(1)に等しい倍率でダウンサンプリングする。低解像度層セット370は、技術的に実現可能な任意の方法で、任意の数及び/又は種類のダウンサンプリング処理を実行する任意の数及び/又は種類の層を含み、任意選択的に、任意の数及び/又は種類の他の層を含むことができる。例えば、いくつかの実施形態では、低解像度層セット370は、限定されるものではないが、ダウンサンプリング層(図示せず)を含み、任意選択的に、これに続いて活性化層(図示せず)を含むことができる。ダウンサンプリング層への入力はアップサンプル画像318であり、ダウンサンプリング層からの出力はダウンサンプル解像度を有している。
【0110】
いくつかの実施形態では、ダウンサンプリング層は、リサンプリング倍率分母214(1)に等しい入力ストライドを有する畳み込み層である。動作時には、畳み込み層は、アップサンプル画像318をリサンプリング倍率分母214(1)に等しい倍率でダウンサンプリングするストライド畳み込み処理をアップサンプル画像318に対して実行する。いくつかの他の実施形態では、ダウンサンプリング層はプーリング(pooling)層である。プーリング層は、アップサンプル画像318に対して、任意の種類のプーリング処理(例えば、最大値プーリング処理、平均値プーリング処理など)を実行することができる。同一又は他の実施形態において、ダウンサンプリング層の出力が活性化層への入力とされ、活性化層の出力が低解像度層セット370の出力とされる。例えば、いくつかの実施形態では、活性化層は、ダウンサンプリング層の出力に含まれる各サンプルに整流線形活性化関数を適用して、低解像度層セット370の出力を生成するReLU層である。
【0111】
畳み込みReLU層対330(K+1)~330(L)は、上述のアップサンプリング残差ブロック310に関する説明で述べた畳み込みReLU層対330のインスタンスである。低解像度層セット370の出力が、畳み込みReLU層対330(K+1)への入力とされる。また、xを(K+2)からLまでの整数とすると、畳み込みReLU層対330(x-1)の出力が、畳み込みReLU層対330(x)への入力とされる。図示の通り、いくつかの実施形態では、畳み込みReLU層対330(L)の出力が、畳み込み層340(2)への入力とされ、畳み込み層340(2)の出力が、ダウンサンプリング残差378となる。
【0112】
なお、説明の便宜上、
図3では、訓練済みダウンサンプリングCNN140(1)の例示的な実施形態に関連付けられた例示的な値をイタリック体で示している。例示的な実施形態では、ダウンサンプリング倍率124(1)が「1.5」、リサンプリング倍率分子212(1)が「2」、リサンプリング倍率分母214(1)が「3」であり、元画像308は、1920×1080の解像度を有する元映像152の1コマである。
【0113】
図示の通り、例示的な実施形態では、アップサンプリング関数350は、倍率「2」に関連付けられた双三次アップサンプリングアルゴリズムを実装する。動作時には、アップサンプリング関数350は、元画像308に対して双三次アップサンプリングアルゴリズムを実行して、3840×2160の解像度を有するアルゴリズム生成アップサンプル画像358を生成する。高解像度層セット320は、限定されるものではないが、出力ストライドが「2」である逆畳み込み層と、これに続くReLU層とを含む。従って、高解像度層スタック312の出力は、3840×2160の解像度を有するアップサンプリング残差348となる。そして、アップサンプリング残差ブロック310は、アルゴリズム生成アップサンプル画像358とアップサンプリング残差348との和をサンプル単位で計算し、3840×2160の解像度を有するアップサンプル画像318を生成する。
【0114】
図3に示す例示的な実施形態では、ダウンサンプリング関数380は、倍率「3」に関連付けられた双三次ダウンサンプリングアルゴリズムを実装する。動作時には、ダウンサンプリング関数380は、アップサンプル画像318に対して双三次ダウンサンプリングアルゴリズムを実行して、1280×720の解像度を有するアルゴリズム生成ダウンサンプル画像388を生成する。低解像度層セット370は、限定されるものではないが、入力ストライド「3」に関連付けられた畳み込み層と、これに続くReLU層とを含む。従って、低解像度層スタック362の出力は、1280×720の解像度を有するダウンサンプリング残差378となる。そして、ダウンサンプリング残差ブロック360は、アルゴリズム生成ダウンサンプル画像388とダウンサンプリング残差378との和をサンプル単位で計算し、1280×720の解像度を有するダウンサンプル画像表現248を生成する。
【0115】
例示的な実施形態について図示しているように、いくつかの実施形態では、アップサンプリング残差348及びダウンサンプリング残差378は、限定されるものではないが、元画像308に描かれる被写体の縁におけるサンプル値を含んでおり、これにより、ダウンサンプリング関数380に起因して生じる再構成画像のぼやけ(blur)アーチファクトを低減している。その結果、ダウンサンプル画像表現248から得られる再構成画像258の画質を、従来のダウンサンプラで生成した従来のダウンサンプル画像から得られる従来の再構成画像に比べて高くすることができる。
【0116】
いくつかの実施形態では、アップサンプリング残差348及びダウンサンプリング残差378は、従来の再構成画像及び/又は従来の再構成映像に通常現れる、任意の数及び/又は種類の画質損失を緩和することができる。さらに、高解像度層スタック312から低解像度層スタック362に進むため、高解像度層スタック312において学習したパラメータにより、元画像308に含まれるすべてのサンプルに基づく再構成誤差260が低減される。その結果、訓練済みダウンサンプリングCNN140(1)の有効性を高めることができる。
【0117】
また、重要なことに、訓練済みダウンサンプリングCNN140(1)が、アップサンプリング残差ブロック310とダウンサンプリング残差ブロック360の両方を備えているため、訓練済みダウンサンプリングCNN140(1)が、元画像308の非整数倍の解像度を有するダウンサンプル画像表現248を生成することができる。
【0118】
図4は、種々の実施形態に係る、
図1に示す複数の訓練済みダウンサンプリングCNN140のうちの1つにより、整数倍率でダウンサンプリングを行う様子をより詳細に示した図である。具体的には、
図4は、任意の整数とすることができるダウンサンプリング倍率124(2)に関連付けられた、
図1の訓練済みダウンサンプリングCNN140(2)を示している。上述の
図2に関する説明で述べたように、いくつかの実施形態では、訓練済みダウンサンプリングCNN140(2)のアーキテクチャは、上述の
図3に関する説明で述べた訓練済みダウンサンプリングCNN140(1)のアーキテクチャの退化版である。
【0119】
図示の通り、いくつかの実施形態では、訓練済みダウンサンプリングCNN140(2)は、元画像308から、元画像308よりダウンサンプリング倍率124(2)だけ低い解像度を有するダウンサンプル画像表現248への写像を行う。同一又は他の実施形態において、訓練済みダウンサンプリングCNN140(2)は、限定されるものではないが、恒等(identity)残差ブロック410とダウンサンプリング残差ブロック360とを含む。
【0120】
恒等残差ブロック410は、ショートカット経路に恒等関数を含む残差ブロックである。いくつかの実施形態では、訓練アプリケーション130(2)が訓練済みダウンサンプリングCNN140(2)を生成すると、恒等残差ブロック410とダウンサンプリング残差ブロック360の両方で、再構成誤差260を共同で低減する残差写像の学習を行う。その結果、恒等残差ブロック410が学習したパラメータとダウンサンプリング残差ブロック360が学習したパラメータにより、ダウンサンプリング関数380に内在するデータ損失に伴う画質の低下が緩和される。
【0121】
図示の通り、いくつかの実施形態では、恒等残差ブロック410への入力は元画像308であり、恒等残差ブロック410の出力は緩和処理済み元画像418である。緩和処理済み元画像418の解像度は、元画像308の解像度と等しい。いくつかの実施形態では、恒等残差ブロック410は、限定されるものではないが、予備層スタック412を備える。同一又は他の実施形態において、第1の分岐接続で、元画像308を、予備層スタック412への入力と、第1の合流接続(丸囲みの「+」記号で示す)に直接渡すルートとに振り向ける。予備層スタック412の出力は、元画像308と等しい解像度を有する予備残差448となる。そして、丸囲みの「+」記号で示すように、いくつかの実施形態では、第1の合流接続で、元画像308と予備残差448との和をサンプル単位で計算して、緩和処理済み元画像418を生成する。
【0122】
いくつかの実施形態では、予備層スタック412は、限定されるものではないが、元画像308から予備残差448への写像を行うように訓練された任意の数及び/又は種類の層を含む。従って、予備層スタック412への入力の解像度は、予備層スタック412の出力と同一となる。図示の通り、いくつかの実施形態では、予備層スタック412は、限定されるものではないが、畳み込みReLU層対330(1)~330(K)と、畳み込み層340(1)とを含む。なお、Kは任意の正の整数とすることができる。畳み込みReLU層対330(1)~330(K)及び畳み込み層340(1)については、上述の
図3に関する説明で既に述べた通りである。
【0123】
図示の通り、いくつかの実施形態では、ダウンサンプリング残差ブロック360への入力は緩和処理済み元画像418であり、ダウンサンプリング残差ブロック360の出力はダウンサンプル画像表現248である。ダウンサンプル画像表現248の解像度は、緩和処理済み元画像418の解像度をダウンサンプリング倍率124(2)で除したものに等しい。従って、ダウンサンプル画像表現248の解像度は、元画像308の解像度をダウンサンプリング倍率124(2)で除したものと等しくなる。リサンプリング倍率分母214(1)をダウンサンプリング倍率124(2)に置き換えた後の訓練済みダウンサンプリングCNN140(2)に含まれる低解像度層スタック362の機能は、上述の
図3に関する説明で述べた訓練済みダウンサンプリングCNN140(1)に含まれる低解像度層スタック362の機能と同様となる。
【0124】
なお、説明の便宜上、
図4では、訓練済みダウンサンプリングCNN140(2)の例示的な実施形態に関連付けられた例示的な値をイタリック体で示している。例示的な実施形態では、ダウンサンプリング倍率124(2)が2であり、元画像308は、1920×1080の解像度を有する元映像152の1コマである。図示の通り、例示的な実施形態では、予備層スタック412の出力は、1920×1080の解像度を有する予備残差448となる。そして、恒等残差ブロック410は、元画像308と予備残差448との和をサンプル単位で計算し、1920×1080の解像度を有する緩和処理済み元画像418を生成する。
【0125】
図4に示す例示的な実施形態では、ダウンサンプリング関数380は、倍率「2」に関連付けられた双三次ダウンサンプリングアルゴリズムを実装する。動作時には、ダウンサンプリング関数380は、緩和処理済み元画像418に対して双三次ダウンサンプリングアルゴリズムを実行して、960×540の解像度を有するアルゴリズム生成ダウンサンプル画像388を生成する。低解像度層セット370は、限定されるものではないが、入力ストライド「2」に関連付けられた畳み込み層と、これに続くReLU層とを含む。従って、低解像度層スタック362の出力は、960×540の解像度を有するダウンサンプリング残差378となる。そして、ダウンサンプリング残差ブロック360は、アルゴリズム生成ダウンサンプル画像388とダウンサンプリング残差378との和をサンプル単位で計算し、960×540の解像度を有するダウンサンプル画像表現248を生成する。
【0126】
図5は、種々の実施形態に係る、訓練済みダウンサンプリングCNNを生成するための方法ステップを示すフロー図である。なお、本方法ステップの説明を、
図1~
図4に示すシステムを参照して行うが、当業者であれば、本実施形態の範囲には、本方法ステップを任意の順序で実施するように構成された任意のシステムが含まれることを理解するであろう。
【0127】
図示の通り、方法500は、設定エンジン210が、ダウンサンプリング倍率124に基づいてダウンサンプリングCNN240を生成するステップ502から始まる。ダウンサンプリングCNN240は、限定されるものではないが、2つの残差ブロックを備える。そして、ステップ504で、イテレーションエンジン220が、訓練用画像データベース122に基づいて任意の数の画像パッチ228を生成し、生成した画像パッチ228を任意の数のバッチ222に分け、これらのバッチ222のうちの第1のバッチを選択する。
【0128】
そして、ステップ506で、任意の数のバッチ222から選択した1つのバッチ222に含まれる画像パッチ228のそれぞれについて、再構成誤差エンジン232が、ダウンサンプリングCNN240を使用して、画像パッチ228のダウンサンプル画像表現248を生成する。ステップ508で、選択した1つのバッチ222に含まれる画像パッチ228のそれぞれについて、アップサンプリングエンジン250が、画像パッチ228のダウンサンプル画像表現248をダウンサンプリング倍率124でアップサンプリングして、画像パッチ228に対応する再構成画像258を生成する。
【0129】
そして、ステップ510で、選択した1つのバッチ222に含まれる画像パッチ228のそれぞれについて、再構成誤差エンジン232が、画像パッチ228と、画像パッチ228に対応する再構成画像258とに基づいて、再構成誤差260を計算する。ステップ512で、イテレーションエンジン220が、選択した1つのバッチ222の複数の再構成誤差260に基づいてイテレーション誤差270を計算し、イテレーション誤差270に基づいてダウンサンプリングCNN240のパラメータを更新する。
【0130】
そして、ステップ514で、イテレーションエンジン220は、選択した1つのバッチ222が最後のバッチ222であるか否かを判定する。ステップ514で、イテレーションエンジン220が、選択した1つのバッチ222が最後のバッチ222ではないと判定した場合、方法500はステップ516に進む。そして、ステップ516で、イテレーションエンジン220が任意の数のバッチ222のうちの次のバッチ222を選択して、方法500はステップ506に戻り、ステップ506で、再構成誤差エンジン232が、ダウンサンプリングCNN240を使用して、新たに選択した1つのバッチ222に含まれる画像パッチ228のダウンサンプル画像表現248を生成する。
【0131】
一方、ステップ514で、イテレーションエンジン220が、選択した1つのバッチ222が最後のバッチ222であると判定した場合、方法500はそのままステップ518に進む。そして、ステップ518で、イテレーションエンジン220は、現在のエポックが最後のエポックであるか否かを判定する。ステップ518で、イテレーションエンジン220が、現在のエポックが最後のエポックではないと判定した場合、方法500はステップ520に進む。そして、ステップ520で、イテレーションエンジン220が任意の数のバッチ222のうちの第1のバッチ222を選択して、方法500はステップ506に戻り、ステップ506で、再構成誤差エンジン232が、ダウンサンプリングCNN240を使用して、第1のバッチ222に含まれる画像パッチ228のダウンサンプル画像表現248を生成する。
【0132】
一方、ステップ518で、イテレーションエンジン220が、現在のエポックが最後のエポックであると判定した場合、方法500はそのままステップ522に進む。そして、ステップ522で、イテレーションエンジン220は、ダウンサンプリングCNN240をダウンサンプリング倍率124に対応する訓練済みダウンサンプリングCNN140として保存し、さらに、任意選択的に、訓練済みダウンサンプリングCNN140を任意の数の他のソフトウェアアプリケーションに送信する。その後、方法500は終了する。
【0133】
図6は、種々の実施形態に係る、元映像を符号化するための方法ステップを示すフロー図である。なお、本方法ステップの説明を、
図1~
図4に示すシステムを参照して行うが、当業者であれば、本実施形態の範囲には、本方法ステップを任意の順序で実施するように構成された任意のシステムが含まれることを理解するであろう。
【0134】
図示の通り、方法600は、ダウンサンプリング/符号化アプリケーション150が、ダウンサンプリング倍率124(1)~124(N)にそれぞれ関連付けられた、訓練済みダウンサンプリングCNN140(1)~140(N)を取得する(例えば、受信する、メモリから読み出す、など)ステップ602から始まる。そして、ステップ604で、ダウンサンプリング/符号化アプリケーション150は、任意の数の符号化点で符号化するために元映像152を受信する。ステップ606で、ダウンサンプリング/符号化アプリケーション150は、複数の符号化点で指定された複数の解像度と元映像152の解像度とに基づいて、複数のダウンサンプリング倍率124からなるサブセットを求める。
【0135】
そして、ステップ608で、ダウンサンプリング/符号化アプリケーション150は、ダウンサンプリング倍率124のサブセットに含まれる複数のダウンサンプリング倍率124それぞれについて、各ダウンサンプリング倍率124に対応する訓練済みダウンサンプリングCNN140を元映像152に対して実行して、各ダウンサンプリング倍率124に対応する低解像度映像を生成する。
【0136】
そして、ステップ610で、ダウンサンプリング/符号化アプリケーション150は、各符号化点で指定された符号化パラメータセットに基づいて、元映像152の符号化、又は当該符号化点で指定された解像度を有する低解像度映像の符号化を行い、各符号化点に対応する符号化映像148を生成する。そして、ステップ612で、ダウンサンプリング/符号化アプリケーション150は、符号化映像148を、少なくとも1つの他のソフトウェアアプリケーションからアクセス可能なメモリに格納するか、又は、符号化映像148を、任意の数の他のソフトウェアアプリケーション(例えば、ラダーアプリケーション160)に送信する。その後、方法600は終了する。
【0137】
つまり、本開示の技術を用いることにより、メディアタイトルをストリーミングする際に生じがちな画質の全体的な低下を低減することができる。いくつかの実施形態では、訓練アプリケーションは、ダウンサンプリング倍率と訓練用画像データベースとに基づいて、訓練済みダウンサンプリングCNNを生成する。ダウンサンプリング倍率は、任意の整数又は任意の非整数とすることができる。訓練用画像データベースは、任意の数及び/又は種類の訓練用画像を含むことができる。訓練アプリケーションは、限定されるものではないが、設定エンジンと、再構成誤差エンジンと、イテレーションエンジンとを備えている。
【0138】
ダウンサンプリング倍率が非整数である場合、設定エンジンは、リサンプリング倍率分子とリサンプリング倍率分母を、それぞれ、ダウンサンプリング倍率を表す既約分数の分子と分母に等しくなるように設定する。次に、設定エンジンは、アップサンプリング残差ブロックとこれに続くダウンサンプリング残差ブロックとを備える(がこれらに限定されるものではない)最初の版のダウンサンプリングCNNを生成する。
【0139】
アップサンプリング残差ブロックは、限定されるものではないが、主経路に訓練可能な高解像度層スタックを備え、ショートカット経路に微分可能且つ設定変更可能なアップサンプリング関数を備える。訓練可能なアップサンプリング層に含まれる第1の層は、リサンプリング倍率分子に等しい出力ストライドを有する逆畳み込み層である。そして、相補的に、アップサンプリング関数は、リサンプリング倍率分子に等しいアップサンプリング倍率でアップサンプリングを行う。
【0140】
ダウンサンプリング残差ブロックは、限定されるものではないが、主経路に訓練可能な低解像度層スタックを備え、ショートカット経路に微分可能且つ設定変更可能なダウンサンプリング関数を備える。訓練可能なダウンサンプリング層に含まれる第1の層は、リサンプリング倍率分母に等しい入力ストライドを有する畳み込み層である。そして、相補的に、ダウンサンプリング関数は、リサンプリング倍率分母に等しい倍率でダウンサンプリングを行う。
【0141】
一方、ダウンサンプリング倍率が整数である場合、設定エンジンは、恒等残差ブロックとこれに続くダウンサンプリング残差ブロックとを備える(がこれらに限定されるものではない)最初の版のダウンサンプリングCNNを生成する。恒等残差ブロックは、アップサンプリング残差ブロックの退化版であり、限定されるものではないが、主経路に訓練可能な予備層スタックを備え、ショートカット経路に恒等関数を備える。設定エンジンは、ダウンサンプリング残差ブロックを設定する際に、ダウンサンプリング倍率をリサンプリング倍率の分母として用いる。
【0142】
訓練用画像データベースに含まれる訓練用画像ごとに、イテレーションエンジンは複数の画像パッチを生成する。次に、イテレーションエンジンは、これらの画像パッチを任意の数のバッチに分け、任意のエポック数でバッチイテレーションを実行する。与えられたバッチに対するバッチイテレーションを実行するため、まず、イテレーションエンジンが当該バッチに含まれる画像パッチを選択する。そして、イテレーションエンジンは、選択した画像パッチを最新版のダウンサンプリングCNNに入力する。これに応答して、ダウンサンプリングCNNは選択した画像パッチのダウンサンプル画像表現を出力する。
【0143】
その後、イテレーションエンジンは、各ダウンサンプル画像表現に対して微分可能なアップサンプリングアルゴリズムを実行する。微分可能なアップサンプリングアルゴリズムは、各ダウンサンプル画像表現をダウンサンプリング倍率でアップサンプリングすることにより、選択した画像パッチに対応する再構成画像を生成する。そして、イテレーションエンジンは、選択した画像パッチそれぞれについて、これに関連付ける再構成誤差を設定する。この再構成誤差は、各選択画像パッチに対応する再構成画像の当該選択画像パッチに対する平均二乗誤差に等しい。そして、イテレーションエンジンはイテレーション誤差を設定する。このイテレーション誤差は、選択画像パッチの再構成誤差の平均に等しい。そして、イテレーションエンジンは任意の数の逆伝播処理と任意の数の勾配降下処理を実行し、イテレーション誤差に基づいてダウンサンプリングCNNのパラメータを更新して、当該イテレーションを完了する。
【0144】
イテレーションエンジンが最後のエポックの実行を終えた後、イテレーションエンジンは、訓練済みダウンサンプリングCNNをメモリに保存し、及び/又は、訓練済みダウンサンプリングCNNを任意の数の他のソフトウェアアプリケーションに送信する。いくつかの実施形態では、訓練アプリケーションは、異なるダウンサンプリング倍率にそれぞれ対応する複数の訓練済みダウンサンプリングCNNを生成するように構成される。同一又は他の実施形態において、任意の数の訓練済みダウンサンプリングCNNが、任意の数の映像符号化パイプラインにおける従来のダウンサンプラに置き換えられる。
【0145】
本開示の技術が先行技術に対して有している技術的利点のうちの少なくとも1つとして、訓練済みダウンサンプリングCNNを使用することにより、従来のダウンサンプラで通常体験されていた画質の低下を緩和できることが挙げられる。このために、訓練アプリケーションにより、再構成誤差を低減するようにダウンサンプリングCNNを訓練している。この再構成誤差は、これに対応する元映像のコマの解像度低下に起因して再構成映像のコマに生じる画質低下を近似するものである。その結果、訓練済みダウンサンプリングCNNを映像符号化パイプラインに実装することにより、所定のビットレートに対する再構成映像の画質を、従来の映像符号化パイプラインを使用した場合に比べて向上させることができる。さらに、所定の目標画質を実現するに当たり、この映像符号化パイプラインで元映像を符号化する際に使用するビット数を、従来の映像符号化パイプラインで使用されるビット数よりも低く抑えることができる。また、本開示の技術の他の技術的利点として、CNNにおけるプーリング処理やストライド処理の実行に関する制約にもかかわらず、訓練済みダウンサンプリングCNNのうちの任意の数の訓練済みダウンサンプリングCNNが、元画像、ひいては元映像を、非整数のダウンサンプリング倍率でダウンサンプリングすることができる点も挙げられる。これらの技術的利点により、先行技術の手法に対する1つ以上の技術的改良が得られる。
【0146】
第1項
いくつかの実施形態では、映像符号化パイプラインにおいて画像をダウンサンプリングするようにニューラルネットワークを訓練するための、コンピュータで実装される方法は、少なくとも2つの残差ブロックを備えるとともに、第1のダウンサンプリング倍率に関連付けられた第1の畳み込みニューラルネットワークを、第1の解像度を有する第1の元画像に対して実行して、第1のダウンサンプル画像を生成するステップと、第1のダウンサンプル画像に対してアップサンプリングアルゴリズムを実行して、第1の解像度を有する第1の再構成画像を生成するステップと、第1の再構成画像と第1の元画像とに基づいて第1の再構成誤差を計算するステップと、第1の再構成誤差に基づいて、第1の畳み込みニューラルネットワークの少なくとも1つのパラメータを更新して、訓練済み畳み込みニューラルネットワークを生成するステップと、を含む。
【0147】
第2項
第1のダウンサンプリング倍率が非整数で構成され、当該方法が、第1のダウンサンプリング倍率に基づいて、リサンプリング倍率分子とリサンプリング倍率分母とを求めるステップと、リサンプリング倍率分子に基づいてアップサンプリング残差ブロックを生成するステップと、リサンプリング倍率分母に基づいてダウンサンプリング残差ブロックを生成するステップと、ダウンサンプリング残差ブロックをアップサンプリング残差ブロックにつなげて、第1の畳み込みニューラルネットワークを生成するステップと、をさらに含む、第1項に記載のコンピュータで実装される方法。
【0148】
第3項
アップサンプリング残差ブロックが、リサンプリング倍率分子に等しい出力ストライドを有する逆畳み込み層と、リサンプリング倍率分子に等しいアップサンプリング倍率を実装する第2のアップサンプリングアルゴリズムとを備える、第1項又は第2項に記載のコンピュータで実装される方法。
【0149】
第4項
第1のダウンサンプリング倍率が整数で構成され、当該方法が、第1のダウンサンプリング倍率に基づいてダウンサンプリング残差ブロックを生成するステップと、ダウンサンプリング残差ブロックを恒等残差ブロックにつなげて、第1の畳み込みニューラルネットワークを生成するステップと、をさらに含む、第1項~第3項のいずれかに記載のコンピュータで実装される方法。
【0150】
第5項
アップサンプリングアルゴリズムが微分可能である、第1項~第4項のいずれかに記載のコンピュータで実装される方法。
【0151】
第6項
アップサンプリングアルゴリズムを、第1のダウンサンプリング倍率に等しいアップサンプリング倍率を実装するように構成するステップをさらに含む、第1項~第5項のいずれかに記載のコンピュータで実装される方法。
【0152】
第7項
第1の再構成誤差を計算するステップが、第1の元画像に対する第1の再構成画像の平均二乗誤差を計算するステップを含む、第1項~第6項のいずれかに記載のコンピュータで実装される方法。
【0153】
第8項
第1の畳み込みニューラルネットワークの少なくとも1つのパラメータを更新するステップが、第1の再構成誤差と少なくとも第2の再構成誤差とに基づいてイテレーション誤差を計算するステップであって、第2の再構成誤差は、第1の解像度と等しくない第2の解像度を有する第2の元画像に関連付けられている、イテレーション誤差を計算するステップと、イテレーション誤差に基づいて、第1の畳み込みニューラルネットワークに対して逆伝播処理又は勾配降下処理の少なくとも一方を実行して、少なくとも1つのパラメータを更新するステップと、を含む、第1項~第7項のいずれかに記載のコンピュータで実装される方法。
【0154】
第9項
訓練済み畳み込みニューラルネットワークが、元画像からダウンサンプル画像への写像を行い、ダウンサンプル画像はそれぞれ、対応する元画像の解像度より第1のダウンサンプリング倍率だけ低い解像度を有している、第1項~第8項のいずれかに記載のコンピュータで実装される方法。
【0155】
第10項
第1の元画像が、訓練用映像に含まれるコマの少なくとも一部を含んでいる、第1項~第9項のいずれかに記載のコンピュータで実装される方法。
【0156】
第11項
いくつかの実施形態では、1つ以上の非一時的なコンピュータ可読媒体は、1つ以上のプロセッサによって実行された場合に、画像をダウンサンプリングするようにニューラルネットワークを訓練する命令を含み、当該命令は、1つ以上のプロセッサに、少なくとも2つの残差ブロックを備えるとともに、第1のダウンサンプリング倍率に関連付けられた第1の畳み込みニューラルネットワークを、第1の解像度を有する第1の元画像に対して実行して、第1のダウンサンプル画像を生成するステップと、第1のダウンサンプル画像をアップサンプリングして、第1の解像度を有する第1の再構成画像を生成するステップと、第1の再構成画像と第1の元画像とに基づいて第1の再構成誤差を計算するステップと、第1の再構成誤差に基づいて、第1の畳み込みニューラルネットワークに対して1つ以上の訓練処理を実行して、訓練済み畳み込みニューラルネットワークを生成するステップと、を実行させることにより前記訓練を行う。
【0157】
第12項
第1のダウンサンプリング倍率が非整数で構成され、命令が1つ以上のプロセッサに、第1のダウンサンプリング倍率に基づいて、リサンプリング倍率分子とリサンプリング倍率分母とを求めるステップと、リサンプリング倍率分子に基づいてアップサンプリング残差ブロックを生成するステップと、リサンプリング倍率分母に基づいてダウンサンプリング残差ブロックを生成するステップと、ダウンサンプリング残差ブロックをアップサンプリング残差ブロックにつなげて、第1の畳み込みニューラルネットワークを生成するステップと、をさらに実行させる、第11項に記載の1つ以上の非一時的なコンピュータ可読媒体。
【0158】
第13項
アップサンプリング残差ブロックが、リサンプリング倍率分子に等しい出力ストライドを有する逆畳み込み層と、リサンプリング倍率分子に等しいアップサンプリング倍率を実装するアップサンプリングアルゴリズムとを備える、第11項又は第12項に記載の1つ以上の非一時的なコンピュータ可読媒体。
【0159】
第14項
第1のダウンサンプリング倍率が整数で構成され、命令が1つ以上のプロセッサに、第1のダウンサンプリング倍率に基づいてダウンサンプリング残差ブロックを生成するステップと、ダウンサンプリング残差ブロックを恒等残差ブロックにつなげて、第1の畳み込みニューラルネットワークを生成するステップと、をさらに実行させる、第11項~第13項のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【0160】
第15項
第1のダウンサンプル画像をアップサンプリングするステップが、第1のダウンサンプル画像に対して双三次アップサンプリングアルゴリズム又は双一次アップサンプリングアルゴリズムを実行するステップを含む、第11項~第14項のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【0161】
第16項
第1のダウンサンプル画像をアップサンプリングするステップが、第1のダウンサンプル画像に対して第1のダウンサンプリング倍率に等しいアップサンプリング倍率を実装するアップサンプリングアルゴリズムを実行するステップを含む、第11項~第15項のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【0162】
第17項
第1の再構成誤差を計算するステップが、第1の元画像に対する第1の再構成画像の平均二乗誤差を計算するステップを含む、第11項~第16項のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【0163】
第18項
1つ以上の訓練処理を実行するステップが、第1の再構成誤差に基づいて、第1の畳み込みニューラルネットワークに対して逆伝播処理又は勾配降下処理の少なくとも一方を実行して、第1の畳み込みニューラルネットワークの少なくとも1つのパラメータを更新するステップを含む、第11項~第17項のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【0164】
第19項
命令が1つ以上のプロセッサに、第2の解像度を有する元映像の各コマに対して訓練済み畳み込みニューラルネットワークを実行して、第2の解像度より第1のダウンサンプリング倍率だけ低い解像度を有するダウンサンプル映像を生成するステップをさらに実行させる、第11項~第18項のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【0165】
第20項
いくつかの実施形態では、畳み込みニューラルネットワークは、元画像から、ダウンサンプリング倍率に関連付けられたリサンプリング倍率分子だけ元画像の解像度より高い解像度を有するアップサンプル画像への写像を行う第1の残差ブロックと、第1の残差ブロックに連結される第2の残差ブロックであって、アップサンプル画像から、元画像の解像度よりダウンサンプリング倍率だけ低い解像度を有するダウンサンプル画像への写像を行う第2の残差ブロックと、を備える。
【0166】
第21項
いくつかの実施形態では、画像をダウンサンプリングするための、コンピュータで実装される方法は、少なくとも2つの残差ブロックを備えるとともに、第1のダウンサンプリング倍率に関連付けられた第1の訓練済み畳み込みニューラルネットワークを、第1の解像度を有する第1の元画像に対して実行して、第1の解像度よりも低い第2の解像度を有する第1のダウンサンプル画像を生成するステップを含む。
【0167】
第22項
少なくとも2つの残差ブロックが、リサンプリング分数の分子に関連付けられたアップサンプリング残差ブロックと、リサンプリング分数の分母に関連付けられたダウンサンプリング残差ブロックと、を含む、第21項に記載のコンピュータで実装される方法。
【0168】
第23項
アップサンプリング残差ブロックが、リサンプリング分数の分子に等しい出力ストライドを有する逆畳み込み層を備えている、第21項又は第22項に記載のコンピュータで実装される方法。
【0169】
第24項
アップサンプリング残差ブロックが、リサンプリング分数の分子に等しいアップサンプリング倍率を実装するアップサンプリングアルゴリズムを含んでいる、第21項~第23項のいずれかに記載のコンピュータで実装される方法。
【0170】
第25項
第1のダウンサンプリング倍率が整数で構成され、少なくとも2つの残差ブロックが、恒等残差ブロックとダウンサンプリング残差ブロックとを備える、第21項~第24項のいずれかに記載のコンピュータで実装される方法。
【0171】
第26項
第1の元画像が、元映像のコマを含み、第1のダウンサンプル画像が、ダウンサンプル映像のコマを含む、第21項~第25項のいずれかに記載のコンピュータで実装される方法。
【0172】
第27項
第1のダウンサンプル画像に対して1つ以上の符号化処理を実行して符号化画像を生成するステップをさらに含む、第21項~第26項のいずれかに記載のコンピュータで実装される方法。
【0173】
特許請求の範囲の任意の請求項に記載の任意の構成要素及び/又は本願明細書に記載の任意の要素の組み合わせは、どのような形の組み合わせであれ、ありとあらゆる組み合わせが企図される実施形態及び保護の範囲に含まれるものとする。
【0174】
種々の実施形態を説明しているが、これは例示を示す目的で提示したものに過ぎず、提示した実施形態は、本開示の実施形態を全て網羅することや、限定することを意図したものではない。当業者には、本明細書に記載の実施形態の範囲及び精神から逸脱しない多くの変更及び変形が明らかであろう。
【0175】
本実施形態の態様は、システム、方法又はコンピュータプログラム製品として具現化することができる。従って、本開示の態様は、完全にハードウェアのみの実施形態、完全にソフトウェアのみの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、又はソフトウェアの側面とハードウェアの側面とを組み合わせた実施形態の形態をとることができ、本明細書では、これらすべてを総称して、「モジュール」、「システム」、又は「コンピュータ」と呼ぶ場合がある。また、本開示に記載のいかなるハードウェア及び/又はソフトウェア技術、プロセス、機能、コンポーネント、エンジン、モジュール、又はシステムも、単独の回路又は一組の回路として実装することができる。さらに、本開示の態様は、コンピュータプログラム製品の形態をとることもでき、1つ以上のコンピュータ可読媒体上のコンピュータ可読プログラムコーデックとして具現化することもできる。
【0176】
1つ以上のコンピュータ可読媒体を任意の組み合わせで利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、電子式、磁気式、光学式、電磁式、赤外線式、半導体式のシステム、装置、デバイス、又はこれらの任意の適切な組み合わせとすることができるが、これらに限定されるものではない。コンピュータ可読記憶媒体のより具体的な例(ただし、網羅的に列挙するものではない)としては、1本以上の配線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ、読み取り専用メモリ、消去可能プログラマブル読み取り専用メモリ、フラッシュメモリ、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ、光学記憶デバイス、磁気記憶デバイス、又はこれらの任意の適切な組み合わせが挙げられる。本稿の文脈では、コンピュータ可読記憶媒体は、命令を実行するシステム、装置、又はデバイスが利用する、又はこれらに関連付けて利用するためのプログラムを格納(記憶)することができる任意の有形媒体とすることができる。
【0177】
上記では、本開示の実施形態に係る方法、装置(システム)、及びコンピュータプログラム製品を示すフローチャート図及び/又はブロック図を参照しながら、本開示の態様を説明している。フローチャート図及び/又はブロック図の各ブロック、及びフローチャート図及び/又はブロック図のブロックの組み合わせは、コンピュータプログラム命令により実施できることが理解されるであろう。そして、これらのコンピュータプログラム命令を、汎用コンピュータ又は専用コンピュータなどのプログラム可能なデータ処理装置のプロセッサに提供することにより、マシンを製造することができる。命令は、コンピュータなどのプログラム可能なデータ処理装置のプロセッサにより実行されることにより、フローチャート及び/又はブロック図の1つ以上のブロックで指定された機能/動作の実施を実現するものである。かかるプロセッサとしては、汎用プロセッサ、専用プロセッサ、特定用途プロセッサ、又はフィールドプログラマブルゲートアレイを挙げることができるが、これらに限定されるものではない。
【0178】
図面に示すフローチャート及びブロック図は、本開示の種々の実施形態に係るシステム、方法、及びコンピュータプログラム製品の実施態様となり得るアーキテクチャ、機能性、及び動作を示すものである。この意味では、フローチャート又はブロック図の各ブロックが、そこに特定されている(1つ以上の)論理機能を実装するための1つ以上の実行可能命令を含む、コードのモジュール、セグメント、又は一部を表すと考えることができる。また、いくつかの代替的な実施態様では、ブロックに記載した機能を、図面に記載した順序とは異なる順序で実行できることにも留意されたい。例えば、連続ブロックとして図示されている2つのブロックを、実際には実質的に同時に実行することができるほか、あるいは、場合によっては、関連する機能に応じて、これらのブロックを逆の順序で実行することもできる。また、ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図のブロックの組み合わせを、そこに特定されている機能又は動作を実行する専用ハードウェアベースのシステムにより実装することができるほか、あるいは専用ハードウェアとコンピュータ命令の組み合わせにより実装することもできることにも留意されたい。
【0179】
なお、上述の説明は、本開示の実施形態に向けられたものであるが、本開示の基本的な範囲から逸脱しない範囲で、本開示の他の実施形態及びさらなる実施形態を考案することも可能であり、かかる範囲は、以下の特許請求の範囲により規定される。
【符号の説明】
【0180】
100 システム
102 訓練用画像
110 コンピュートインスタンス
112 プロセッサ
116 メモリ
122 訓練用画像データベース
124 ダウンサンプリング倍率
130 訓練アプリケーション
140 訓練済みダウンサンプリングCNN
148 符号化映像
150 ダウンサンプリング/符号化アプリケーション
152 元映像
160 ラダーアプリケーション
162 ビットレートラダー
164 符号化映像サブセット
170 コンテンツ配信ネットワーク(CDN)
172 符号化映像チャンク
180 クライアントデバイス
182 ディスプレイデバイス
190 エンドポイントアプリケーション
192 再構成映像チャンク
202 設定可能な非整数倍率CNN
204 設定可能な整数倍率CNN
210 設定エンジン
212 リサンプリング倍率分子
214 リサンプリング倍率分母
220 イテレーションエンジン
222 バッチ
228 画像パッチ
230 バッチイテレーション
232 再構成誤差エンジン
240 ダウンサンプリングCNN
248 ダウンサンプル画像表現
250 アップサンプリングエンジン
258 再構成画像
260 再構成誤差
270 イテレーション誤差
280 パラメータ更新処理
308 元画像
310 アップサンプリング残差ブロック
312 高解像度層スタック
318 アップサンプル画像
320 高解像度層セット
330 畳み込みReLU層対
340 畳み込み層
348 アップサンプリング残差
350 アップサンプリング関数
358 アルゴリズム生成アップサンプル画像
360 ダウンサンプリング残差ブロック
362 低解像度層スタック
370 低解像度層セット
378 ダウンサンプリング残差
380 ダウンサンプリング関数
388 アルゴリズム生成ダウンサンプル画像
410 恒等残差ブロック
412 予備層スタック
418 緩和処理済み元画像
448 予備残差
【手続補正書】
【提出日】2023-08-31
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
映像符号化パイプラインにおいて画像をダウンサンプリングするようにニューラルネットワークを訓練するための、コンピュータで実装される方法であって、
少なくとも2つの残差ブロックを備えるとともに、第1のダウンサンプリング倍率に関連付けられた第1の畳み込みニューラルネットワークを、第1の解像度を有する第1の元画像に対して実行して、第1のダウンサンプル画像を生成するステップと、
前記第1のダウンサンプル画像に対してアップサンプリングアルゴリズムを実行して、前記第1の解像度を有する第1の再構成画像を生成するステップと、
前記第1の再構成画像と前記第1の元画像とに基づいて第1の再構成誤差を計算するステップと、
前記第1の再構成誤差に基づいて、前記第1の畳み込みニューラルネットワークの少なくとも1つのパラメータを更新して、訓練済み畳み込みニューラルネットワークを生成するステップと、
を含むコンピュータで実装される方法。
【請求項2】
前記第1のダウンサンプリング倍率が非整数で構成され、
前記コンピュータで実装される方法が、
前記第1のダウンサンプリング倍率に基づいて、リサンプリング倍率分子とリサンプリング倍率分母とを求めるステップと、
前記リサンプリング倍率分子に基づいてアップサンプリング残差ブロックを生成するステップと、
前記リサンプリング倍率分母に基づいてダウンサンプリング残差ブロックを生成するステップと、
前記ダウンサンプリング残差ブロックを前記アップサンプリング残差ブロックにつなげて、前記第1の畳み込みニューラルネットワークを生成するステップと、
をさらに含む、請求項1に記載のコンピュータで実装される方法。
【請求項3】
前記アップサンプリング残差ブロックが、前記リサンプリング倍率分子に等しい出力ストライドを有する逆畳み込み層と、前記リサンプリング倍率分子に等しいアップサンプリング倍率を実装する第2のアップサンプリングアルゴリズムとを備える、請求項2に記載のコンピュータで実装される方法。
【請求項4】
前記第1のダウンサンプリング倍率が整数で構成され、
前記コンピュータで実装される方法が、
前記第1のダウンサンプリング倍率に基づいてダウンサンプリング残差ブロックを生成するステップと、
前記ダウンサンプリング残差ブロックを恒等残差ブロックにつなげて、前記第1の畳み込みニューラルネットワークを生成するステップと、
をさらに含む、請求項1に記載のコンピュータで実装される方法。
【請求項5】
前記アップサンプリングアルゴリズムが微分可能である、請求項1に記載のコンピュータで実装される方法。
【請求項6】
前記アップサンプリングアルゴリズムを、前記第1のダウンサンプリング倍率に等しいアップサンプリング倍率を実装するように構成するステップをさらに含む、請求項1に記載のコンピュータで実装される方法。
【請求項7】
前記第1の再構成誤差を計算するステップが、前記第1の元画像に対する前記第1の再構成画像の平均二乗誤差を計算するステップを含む、請求項1に記載のコンピュータで実装される方法。
【請求項8】
前記第1の畳み込みニューラルネットワークの少なくとも1つのパラメータを更新するステップが、
前記第1の再構成誤差と少なくとも第2の再構成誤差とに基づいてイテレーション誤差を計算するステップであって、前記第2の再構成誤差は、前記第1の解像度と等しくない第2の解像度を有する第2の元画像に関連付けられている、イテレーション誤差を計算するステップと、
前記イテレーション誤差に基づいて、前記第1の畳み込みニューラルネットワークに対して逆伝播処理又は勾配降下処理の少なくとも一方を実行して、前記少なくとも1つのパラメータを更新するステップと、
を含む、請求項1に記載のコンピュータで実装される方法。
【請求項9】
前記訓練済み畳み込みニューラルネットワークが、元画像からダウンサンプル画像への写像を行い、
前記ダウンサンプル画像はそれぞれ、対応する元画像の解像度より前記第1のダウンサンプリング倍率だけ低い解像度を有している、請求項1に記載のコンピュータで実装される方法。
【請求項10】
1つ以上のプロセッサによって実行された場合に、画像をダウンサンプリングするようにニューラルネットワークを訓練する命令を含む1つ以上の非一時的なコンピュータ可読媒体であって、前記命令は、前記1つ以上のプロセッサに、
少なくとも2つの残差ブロックを備えるとともに、第1のダウンサンプリング倍率に関連付けられた第1の畳み込みニューラルネットワークを、第1の解像度を有する第1の元画像に対して実行して、第1のダウンサンプル画像を生成するステップと、
前記第1のダウンサンプル画像をアップサンプリングして、前記第1の解像度を有する第1の再構成画像を生成するステップと、
前記第1の再構成画像と前記第1の元画像とに基づいて第1の再構成誤差を計算するステップと、
前記第1の再構成誤差に基づいて、前記第1の畳み込みニューラルネットワークに対して1つ以上の訓練処理を実行して、訓練済み畳み込みニューラルネットワークを生成するステップと、
を実行させることにより前記訓練を行う、1つ以上の非一時的なコンピュータ可読媒体。
【請求項11】
画像をダウンサンプリングするための、コンピュータで実装される方法であって、
少なくとも2つの残差ブロックを備えるとともに、第1のダウンサンプリング倍率に関連付けられた第1の訓練済み畳み込みニューラルネットワークを、第1の解像度を有する第1の元画像に対して実行して、前記第1の解像度よりも低い第2の解像度を有する第1のダウンサンプル画像を生成するステップ
を含むコンピュータで実装される方法。
【請求項12】
前記少なくとも2つの残差ブロックが、リサンプリング分数の分子に関連付けられたアップサンプリング残差ブロックと、前記リサンプリング分数の分母に関連付けられたダウンサンプリング残差ブロックと、を含む、
請求項11に記載のコンピュータで実装される方法。
【請求項13】
前記アップサンプリング残差ブロックが、前記リサンプリング分数の前記分子に等しい出力ストライドを有する逆畳み込み層を備えている、
請求項12に記載のコンピュータで実装される方法。
【請求項14】
前記アップサンプリング残差ブロックが、前記リサンプリング分数の前記分子に等しいアップサンプリング倍率を実装するアップサンプリングアルゴリズムを含んでいる、
請求項12に記載のコンピュータで実装される方法。
【請求項15】
前記第1のダウンサンプリング倍率が整数で構成され、
前記少なくとも2つの残差ブロックが、恒等残差ブロックとダウンサンプリング残差ブロックとを備える、
請求項11に記載のコンピュータで実装される方法。
【請求項16】
前記第1の元画像が、元映像のコマを含み、
前記第1のダウンサンプル画像が、ダウンサンプル映像のコマを含む、
請求項11に記載のコンピュータで実装される方法。
【請求項17】
前記第1のダウンサンプル画像に対して1つ以上の符号化処理を実行して符号化画像を生成するステップをさらに含む、
請求項11に記載のコンピュータで実装される方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0179
【補正方法】変更
【補正の内容】
【0179】
なお、上述の説明は、本開示の実施形態に向けられたものであるが、本開示の基本的な範囲から逸脱しない範囲で、本開示の他の実施形態及びさらなる実施形態を考案することも可能であり、かかる範囲は、以下の特許請求の範囲により規定される。
以下、本発明の好ましい実施形態を項分け記載する。
実施形態1
映像符号化パイプラインにおいて画像をダウンサンプリングするようにニューラルネットワークを訓練するための、コンピュータで実装される方法であって、
少なくとも2つの残差ブロックを備えるとともに、第1のダウンサンプリング倍率に関連付けられた第1の畳み込みニューラルネットワークを、第1の解像度を有する第1の元画像に対して実行して、第1のダウンサンプル画像を生成するステップと、
前記第1のダウンサンプル画像に対してアップサンプリングアルゴリズムを実行して、前記第1の解像度を有する第1の再構成画像を生成するステップと、
前記第1の再構成画像と前記第1の元画像とに基づいて第1の再構成誤差を計算するステップと、
前記第1の再構成誤差に基づいて、前記第1の畳み込みニューラルネットワークの少なくとも1つのパラメータを更新して、訓練済み畳み込みニューラルネットワークを生成するステップと、
を含むコンピュータで実装される方法。
実施形態2
前記第1のダウンサンプリング倍率が非整数で構成され、
前記コンピュータで実装される方法が、
前記第1のダウンサンプリング倍率に基づいて、リサンプリング倍率分子とリサンプリング倍率分母とを求めるステップと、
前記リサンプリング倍率分子に基づいてアップサンプリング残差ブロックを生成するステップと、
前記リサンプリング倍率分母に基づいてダウンサンプリング残差ブロックを生成するステップと、
前記ダウンサンプリング残差ブロックを前記アップサンプリング残差ブロックにつなげて、前記第1の畳み込みニューラルネットワークを生成するステップと、
をさらに含む、実施形態1に記載のコンピュータで実装される方法。
実施形態3
前記アップサンプリング残差ブロックが、前記リサンプリング倍率分子に等しい出力ストライドを有する逆畳み込み層と、前記リサンプリング倍率分子に等しいアップサンプリング倍率を実装する第2のアップサンプリングアルゴリズムとを備える、実施形態2に記載のコンピュータで実装される方法。
実施形態4
前記第1のダウンサンプリング倍率が整数で構成され、
前記コンピュータで実装される方法が、
前記第1のダウンサンプリング倍率に基づいてダウンサンプリング残差ブロックを生成するステップと、
前記ダウンサンプリング残差ブロックを恒等残差ブロックにつなげて、前記第1の畳み込みニューラルネットワークを生成するステップと、
をさらに含む、実施形態1に記載のコンピュータで実装される方法。
実施形態5
前記アップサンプリングアルゴリズムが微分可能である、実施形態1に記載のコンピュータで実装される方法。
実施形態6
前記アップサンプリングアルゴリズムを、前記第1のダウンサンプリング倍率に等しいアップサンプリング倍率を実装するように構成するステップをさらに含む、実施形態1に記載のコンピュータで実装される方法。
実施形態7
前記第1の再構成誤差を計算するステップが、前記第1の元画像に対する前記第1の再構成画像の平均二乗誤差を計算するステップを含む、実施形態1に記載のコンピュータで実装される方法。
実施形態8
前記第1の畳み込みニューラルネットワークの少なくとも1つのパラメータを更新するステップが、
前記第1の再構成誤差と少なくとも第2の再構成誤差とに基づいてイテレーション誤差を計算するステップであって、前記第2の再構成誤差は、前記第1の解像度と等しくない第2の解像度を有する第2の元画像に関連付けられている、イテレーション誤差を計算するステップと、
前記イテレーション誤差に基づいて、前記第1の畳み込みニューラルネットワークに対して逆伝播処理又は勾配降下処理の少なくとも一方を実行して、前記少なくとも1つのパラメータを更新するステップと、
を含む、実施形態1に記載のコンピュータで実装される方法。
実施形態9
前記訓練済み畳み込みニューラルネットワークが、元画像からダウンサンプル画像への写像を行い、
前記ダウンサンプル画像はそれぞれ、対応する元画像の解像度より前記第1のダウンサンプリング倍率だけ低い解像度を有している、実施形態1に記載のコンピュータで実装される方法。
実施形態10
前記第1の元画像が、訓練用映像に含まれるコマの少なくとも一部を含んでいる、実施形態1に記載のコンピュータで実装される方法。
実施形態11
1つ以上のプロセッサによって実行された場合に、画像をダウンサンプリングするようにニューラルネットワークを訓練する命令を含む1つ以上の非一時的なコンピュータ可読媒体であって、前記命令は、前記1つ以上のプロセッサに、
少なくとも2つの残差ブロックを備えるとともに、第1のダウンサンプリング倍率に関連付けられた第1の畳み込みニューラルネットワークを、第1の解像度を有する第1の元画像に対して実行して、第1のダウンサンプル画像を生成するステップと、
前記第1のダウンサンプル画像をアップサンプリングして、前記第1の解像度を有する第1の再構成画像を生成するステップと、
前記第1の再構成画像と前記第1の元画像とに基づいて第1の再構成誤差を計算するステップと、
前記第1の再構成誤差に基づいて、前記第1の畳み込みニューラルネットワークに対して1つ以上の訓練処理を実行して、訓練済み畳み込みニューラルネットワークを生成するステップと、
を実行させることにより前記訓練を行う、1つ以上の非一時的なコンピュータ可読媒体。
実施形態12
前記第1のダウンサンプリング倍率が非整数で構成され、
前記命令が前記1つ以上のプロセッサに、
前記第1のダウンサンプリング倍率に基づいて、リサンプリング倍率分子とリサンプリング倍率分母とを求めるステップと、
前記リサンプリング倍率分子に基づいてアップサンプリング残差ブロックを生成するステップと、
前記リサンプリング倍率分母に基づいてダウンサンプリング残差ブロックを生成するステップと、
前記ダウンサンプリング残差ブロックを前記アップサンプリング残差ブロックにつなげて、前記第1の畳み込みニューラルネットワークを生成するステップと、
をさらに実行させる、実施形態11に記載の1つ以上の非一時的なコンピュータ可読媒体。
実施形態13
前記アップサンプリング残差ブロックが、前記リサンプリング倍率分子に等しい出力ストライドを有する逆畳み込み層と、前記リサンプリング倍率分子に等しいアップサンプリング倍率を実装するアップサンプリングアルゴリズムとを備える、実施形態12に記載の1つ以上の非一時的なコンピュータ可読媒体。
実施形態14
前記第1のダウンサンプリング倍率が整数で構成され、
前記命令が前記1つ以上のプロセッサに、
前記第1のダウンサンプリング倍率に基づいてダウンサンプリング残差ブロックを生成するステップと、
前記ダウンサンプリング残差ブロックを恒等残差ブロックにつなげて、前記第1の畳み込みニューラルネットワークを生成するステップと、
をさらに実行させる、実施形態11に記載の1つ以上の非一時的なコンピュータ可読媒体。
実施形態15
前記第1のダウンサンプル画像をアップサンプリングするステップが、前記第1のダウンサンプル画像に対して双三次アップサンプリングアルゴリズム又は双一次アップサンプリングアルゴリズムを実行するステップを含む、実施形態11に記載の1つ以上の非一時的なコンピュータ可読媒体。
実施形態16
前記第1のダウンサンプル画像をアップサンプリングするステップが、前記第1のダウンサンプル画像に対して前記第1のダウンサンプリング倍率に等しいアップサンプリング倍率を実装するアップサンプリングアルゴリズムを実行するステップを含む、実施形態11に記載の1つ以上の非一時的なコンピュータ可読媒体。
実施形態17
前記第1の再構成誤差を計算するステップが、前記第1の元画像に対する前記第1の再構成画像の平均二乗誤差を計算するステップを含む、実施形態11に記載の1つ以上の非一時的なコンピュータ可読媒体。
実施形態18
前記1つ以上の訓練処理を実行するステップが、前記第1の再構成誤差に基づいて、前記第1の畳み込みニューラルネットワークに対して逆伝播処理又は勾配降下処理の少なくとも一方を実行して、前記第1の畳み込みニューラルネットワークの少なくとも1つのパラメータを更新するステップを含む、実施形態11に記載の1つ以上の非一時的なコンピュータ可読媒体。
実施形態19
前記命令が前記1つ以上のプロセッサに、
第2の解像度を有する元映像の各コマに対して前記訓練済み畳み込みニューラルネットワークを実行して、前記第2の解像度より前記第1のダウンサンプリング倍率だけ低い解像度を有するダウンサンプル映像を生成するステップ
をさらに実行させる、実施形態11に記載の1つ以上の非一時的なコンピュータ可読媒体。
実施形態20
元画像から、ダウンサンプリング倍率に関連付けられたリサンプリング倍率分子だけ前記元画像の解像度より高い解像度を有するアップサンプル画像への写像を行う第1の残差ブロックと、
前記第1の残差ブロックに連結される第2の残差ブロックであって、前記アップサンプル画像から、前記元画像の前記解像度より前記ダウンサンプリング倍率だけ低い解像度を有するダウンサンプル画像への写像を行う第2の残差ブロックと、
を備える、畳み込みニューラルネットワーク。
実施形態21
画像をダウンサンプリングするための、コンピュータで実装される方法であって、
少なくとも2つの残差ブロックを備えるとともに、第1のダウンサンプリング倍率に関連付けられた第1の訓練済み畳み込みニューラルネットワークを、第1の解像度を有する第1の元画像に対して実行して、前記第1の解像度よりも低い第2の解像度を有する第1のダウンサンプル画像を生成するステップ
を含むコンピュータで実装される方法。
実施形態22
前記少なくとも2つの残差ブロックが、リサンプリング分数の分子に関連付けられたアップサンプリング残差ブロックと、前記リサンプリング分数の分母に関連付けられたダウンサンプリング残差ブロックと、を含む、実施形態21に記載のコンピュータで実装される方法。
実施形態23
前記アップサンプリング残差ブロックが、前記リサンプリング分数の前記分子に等しい出力ストライドを有する逆畳み込み層を備えている、実施形態22に記載のコンピュータで実装される方法。
実施形態24
前記アップサンプリング残差ブロックが、前記リサンプリング分数の前記分子に等しいアップサンプリング倍率を実装するアップサンプリングアルゴリズムを含んでいる、実施形態22に記載のコンピュータで実装される方法。
実施形態25
前記第1のダウンサンプリング倍率が整数で構成され、
前記少なくとも2つの残差ブロックが、恒等残差ブロックとダウンサンプリング残差ブロックとを備える、実施形態21に記載のコンピュータで実装される方法。
実施形態26
前記第1の元画像が、元映像のコマを含み、
前記第1のダウンサンプル画像が、ダウンサンプル映像のコマを含む、実施形態21に記載のコンピュータで実装される方法。
実施形態27
前記第1のダウンサンプル画像に対して1つ以上の符号化処理を実行して符号化画像を生成するステップをさらに含む、実施形態21に記載のコンピュータで実装される方法。
【国際調査報告】