(57)【要約】【解決手段】ビデオデコーダシステムの訓練方法。有効である少なくとも２セットのビデオ符号化パラメータを生成する。少なくとも２セットの符号化パラメータのセットを無効値でマスクして、ビデオ符号化パラメータの無効セットを生成する。少なくとも２セットのビデオ符号化パラメータのセットをニューラルネットワークに提供する。反復訓練アルゴリズムを使用して、無効セットに対する有効なビデオ符号化パラメータ値を予測するように、ニューラルネットワークを訓練する。訓練された再帰型ニューラルネットワークの予測誤差の分析に基づいて、符号化される必要のある符号化パラメータを判定する。訓練された再帰型ニューラルネットワークによって正確に予測されると判定された符号化されたデータから符号化パラメータを削除する。削除した符号化パラメータを使用せずに新しいビデオストリームを符号化する。【選択図】図６
2021522756.tif 000002
【特許請求の範囲】
【請求項１】
ビデオエンコーダ／デコーダシステムを訓練する方法であって、
ａ）少なくとも２セットのビデオエンコードパラメータを生成することであって、前記少なくとも２セットのビデオエンコードパラメータが有効である、前記少なくとも２セットのビデオエンコードパラメータを生成することと、
ｂ）前記少なくとも２セットのエンコードパラメータのセットを無効値でマスクして、ビデオエンコードパラメータの無効セットを生成することと、
ｃ）前記少なくとも２セットのビデオエンコードパラメータを、１つ以上のニューラルネットワークに提供することと、
ｄ）反復訓練アルゴリズムを使用して、前記無効セットの値に対応する有効値を予測するように、前記１つ以上のニューラルネットワークを訓練することと、
ｅ）前記１つ以上のニューラルネットワークの予測誤差の分析に基づいて、エンコードされる必要のあるエンコードパラメータを判定することと、
ｆ）前記１つ以上のニューラルネットワークによって正確に予測されると判定された前記エンコードされたデータから、前記エンコードパラメータを削除することと、
ｇ）前記削除したエンコードパラメータを使用せずに新しいビデオストリームをエンコードすることと
を含む、方法。
【請求項２】
前記１つ以上のニューラルネットワークが、双予測ニューラルネットワーク及び予測ニューラルネットワークを含み、ｃ）は、予測すべき現在のパラメータの前の１つ以上のパラメータを、前記予測ニューラルネットワークに提供することと、予測すべき前記現在のパラメータの前の１つ以上のパラメータと、予測すべき前記現在のパラメータの後の１つ以上のパラメータとを、前記双予測ニューラルネットワークに提供することとを含み、予測すべき前記現在のパラメータの後の前記１つ以上のパラメータが、前記予測ニューラルネットワークによって予測された１つ以上のパラメータを含む、請求項１に記載の方法。
【請求項３】
ビデオエンコードパラメータの前記無効セットが、現在のセクションのものであり、ｄ）は、予測すべき前記現在のパラメータの前と予測すべき前記現在のパラメータの後のパラメータを使用して、前記現在のセクションのエンコードパラメータを予測するように、前記双予測ニューラルネットワークを繰り返し訓練することを含む、請求項２に記載の方法。
【請求項４】
ビデオエンコードパラメータの前記無効セットが、現在のセクションのものであり、ｄ）は、前記現在のセクションの前及び後のセクションのパラメータを使用して、前記現在のセクションのエンコードパラメータを予測するように、前記双予測ニューラルネットワークを繰り返し訓練することと、前記現在のセクションの前のセクションのパラメータを使用して、前記現在のセクションのパラメータを予測するように、前記予測ニューラルネットワークを訓練することとを含む、請求項２に記載の方法。
【請求項５】
エンコードパラメータの前記無効セットは、単一タイプのエンコードパラメータであり、前記少なくとも２セットのビデオエンコードパラメータの内の別のセットは、少なくとも別の異なるエンコードパラメータタイプであり、前記１つ以上のニューラルネットワークは、反復訓練を使用して、ビデオエンコードパラメータの前記別のセットから、エンコードパラメータの正しいセットを予測するように訓練される、請求項１に記載の方法。
【請求項６】
予測誤差成分が、ｅ）で前記ビデオストリームに追加される、請求項１に記載の方法。
【請求項７】
前記マスクされたエンコードパラメータのセットは、全ての前記有効なエンコードパラメータの後に、前記ニューラルネットワークに提供される、請求項１に記載の方法。
【請求項８】
ビデオエンコードの方法であって、
ａ）ビデオエンコーダで、エンコードされていないビデオストリームから、セクションのビデオエンコードパラメータを判定することと、
ｂ）１つ以上の訓練されたニューラルネットワークに、前記セクションの前記ビデオエンコードパラメータを提供することであって、前記１つ以上の訓練されたニューラルネットワークは、他のビデオエンコードパラメータを予測するように訓練されている、前記セクションの前記ビデオエンコードパラメータを提供することと、
ｃ）前記１つ以上の訓練されたニューラルネットワークで、前記提供されたビデオエンコードパラメータから他のビデオエンコードパラメータを予測することと、
ｄ）前記１つ以上のニューラルネットワークからの前記予測された他のビデオエンコードパラメータと、前記ビデオエンコーダからの実際のエンコードパラメータとの予測誤差を判定することと、
ｅ）予測誤差のないセクションのエンコードパラメータを使用せずに、前記エンコードされていないビデオストリームをエンコードすることと
を含む、方法。
【請求項９】
ｄ）は、予測に誤差がある前記ビデオストリームのセクションの前記予測誤差をエンコードすることをさらに含む、請求項８に記載の方法。
【請求項１０】
ｄ）は、予測に誤差がある前記ビデオストリームのセクションの正しいエンコードパラメータをエンコードすることをさらに含む、請求項８に記載の方法。
【請求項１１】
前記１つ以上の訓練されたニューラルネットワークは、予測ニューラルネットワーク及び双予測ニューラルネットワークを含む、請求項８に記載の方法。
【請求項１２】
ｃ）は、前記予測ニューラルネットワークによって予測されたエンコードパラメータを、入力として、前記双予測ニューラルネットワークに提供することを含む、請求項１１に記載の方法。
【請求項１３】
前記ビデオストリームの初期のセクションのエンコードパラメータが常にエンコードされる、請求項８に記載の方法。
【請求項１４】
ｂ）で提供される前記ビデオエンコードパラメータ及びｃ）で行われる予測は、スライス間の依存関係を取り除くために、スライス境界内に制限される、請求項８に記載の方法。
【請求項１５】
ニューラルネットワークでビデオストリームをデコードする方法であって、
ａ）エンコードされたビデオストリームを受け取ることであって、前記エンコードされたビデオストリームは、前記エンコードされたビデオストリームの少なくともセクションのビデオエンコードパラメータを有する、前記エンコードされたビデオストリームを受け取ることと、
ｂ）前記エンコードされたビデオストリームから、前記少なくともセクションの前記ビデオエンコードパラメータを抽出することと、
ｃ）他のビデオエンコードパラメータを予測するように訓練された１つ以上のニューラルネットワークに、前記少なくともセクションのビデオエンコードパラメータを提供することと、
ｄ）前記１つ以上のニューラルネットワークで、前記提供されたビデオエンコードパラメータから前記他のビデオエンコードパラメータを予測することと、
ｅ）前記予測されたビデオエンコードパラメータ及び前記エンコードされたビデオストリームを使用して、前記ビデオストリームをデコードすることと、
ｆ）前記デコードされたビデオストリームをディスプレイに表示することと
を含む、方法。
【請求項１６】
前記１つ以上のニューラルネットワークは、予測ニューラルネットワーク及び双予測ニューラルネットワークを含む、請求項１５に記載の方法。
【請求項１７】
ｄ）は、前記予測ニューラルネットワークによって予測されたエンコードパラメータを、入力として、前記双予測ニューラルネットワークに提供することを含む、請求項１６に記載の方法。
【請求項１８】
ｂ）は、前記エンコードされたビデオストリームから予測誤差を抽出することをさらに含む、請求項１５に記載の方法。
【請求項１９】
ｄ）は、前記予測されたビデオエンコードパラメータを前記予測誤差で修正することをさらに含む、請求項１８に記載の方法。
【請求項２０】
ｃ）で提供される前記ビデオエンコードパラメータ及びｄ）で行われる予測は、スライス間の依存関係を取り除くために、スライス境界内に制限される、請求項１５に記載の方法。
【請求項２１】
プロセッサと、
パラメータ値を予測するように訓練されたニューラルネットワークと、
前記プロセッサに動作可能に結合されたメモリであって、
前記メモリは、ビデオエンコードの命令を実施しており、前記メモリは、改善されたビデオエンコードの方法を実行するための命令をさらに含み、前記方法は、
ａ）ビデオエンコーダで、エンコードされていないビデオストリームから、セクションのビデオエンコードパラメータを判定することと、
ｂ）１つ以上の訓練されたニューラルネットワークに、前記ビデオエンコードパラメータを提供することであって、前記ニューラルネットワークは、他のビデオエンコードパラメータを予測するように訓練されている、前記ビデオエンコードパラメータを提供することと、
ｃ）前記訓練されたニューラルネットワークで、前記他のビデオエンコードパラメータを予測することと、
ｄ）前記ニューラルネットワークからの前記予測されたエンコードパラメータと、前記ビデオエンコーダからの実際のエンコードパラメータとの予測誤差を判定することと、
ｅ）予測誤差のないセクションのエンコードパラメータを使用せずに、前記エンコードされていないビデオストリームをエンコードすることと
を含む、前記メモリと
を備える、システム。
【請求項２２】
前記１つ以上の訓練されたニューラルネットワークは、予測ニューラルネットワーク及び双予測ニューラルネットワークを含む、請求項２１に記載のシステム。
【請求項２３】
ｃ）は、前記予測ニューラルネットワークによって予測されたエンコードパラメータを、入力として、前記双予測ニューラルネットワークに提供することを含む、請求項２２に記載のシステム。
【請求項２４】
プロセッサと、
エンコードパラメータ値を予測するように訓練されたニューラルネットワークと、
前記プロセッサに動作可能に結合されたメモリであって、
前記メモリは、ビデオデコードの命令を実施しており、前記メモリは、改善されたビデオデコードの方法を実行するための命令をさらに含み、前記方法は、
ａ）エンコードされたビデオストリームを受け取ることであって、前記エンコードされたビデオストリームは、前記エンコードされたビデオストリームの少なくともセクションのビデオエンコードパラメータを有する、前記エンコードされたビデオストリームを受け取ることと、
ｂ）前記エンコードされたビデオストリームから、前記少なくともセクションの前記ビデオエンコードパラメータを抽出することと、
ｃ）１つ以上のニューラルネットワークに、前記少なくともセクションの前記ビデオエンコードパラメータを提供することであって、前記ニューラルネットワークは、他のビデオエンコードパラメータを予測するように訓練されている、前記ビデオエンコードパラメータを提供することと、
ｄ）前記訓練されたニューラルネットワークで、前記少なくともセクションのビデオエンコードパラメータから他のビデオエンコードパラメータを予測することと、
ｅ）前記予測されたビデオエンコードパラメータ及び前記エンコードされたビデオストリームを使用して、前記ビデオストリームをデコードすることと、
ｆ）前記デコードされたビデオストリームをディスプレイに表示することと
を含む、前記メモリと
を備える、システム。
【請求項２５】
前記１つ以上のニューラルネットワークは、予測ニューラルネットワーク及び双予測ニューラルネットワークを含む、請求項２４に記載のシステム。
【請求項２６】
ｄ）は、前記予測ニューラルネットワークによって予測されたエンコードパラメータを、入力として、前記双予測ニューラルネットワークに提供することを含む、請求項２５に記載のシステム。
【請求項２７】
ｂ）は、前記エンコードされたビデオストリームから予測誤差を抽出することをさらに含み、ｄ）は、前記予測された次のセクションのビデオエンコードパラメータを前記予測誤差で修正することをさらに含む、請求項２４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオストリームのエンコード及びデコードに関する。より詳細には、本開示は、ニューラルネットワークを用いたビデオストリームのエンコード及びデコードに関する。
【背景技術】
【０００２】
デジタル信号圧縮は、多くのマルチメディアアプリケーション及びデバイスで広く使用されている。コーダ／デコーダ（コーデック）を用いたデジタル信号圧縮により、音声信号または映像信号などのストリーミングメディアを、インターネットを介して伝送すること、またはコンパクトディスクに保存することができるようになる。Ｈ．２６１、Ｈ．２６３；ＤＶ；ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、ＶＣ１；及びＡＶＣ（Ｈ．２６４）を含めて、多数の異なるデジタルビデオ圧縮の規格が登場している。これらの規格は、他のビデオ圧縮技術と同様に、所与のピクチャ内及び／または連続するピクチャ間の空間的及び時間的冗長性を無くすこと、または低減することにより、ビデオフレームピクチャを効率的に表現することを目指している。このような圧縮規格を用いることにより、ビデオコンテンツを、高度に圧縮されたビデオビットストリームで搬送することができ、結果として、ディスクに効率的に保存すること、またはネットワークを介して効率的に伝送することが可能である。
【０００３】
多くのコーデックは、様々な種類のフレームの符号化を利用する。様々なフレーム符号化形式の例としては、イントラ符号化フレーム（Ｉフレーム）、予測符号化フレーム（Ｐフレーム）、及び双予測符号化フレーム（Ｂフレーム）が挙げられる。一般的には、Ｉフレームは、他のフレームと全く無関係に符号化される。Ｉフレームは、他のいずれのフレームのデコードからも独立してデコードされ得る。Ｉフレームは、デコーダが、そのＩフレームのその位置で適切にデコードを開始することを可能にする、ランダムアクセスポイントを作成するように、エンコーダによって生成され得る。Ｉフレームは、一般に、ＰフレームまたはＢフレームに比べてエンコードに多くのビットを必要とする。
【０００４】
Ｐフレームは、Ｉフレームまたは別のＰフレームなどの１つ以上の他のフレームを参照して符号化される。Ｐフレームは、１つ以上の前のフレームからの画像の変化分を含む。Ｐフレームをデコードするには、１つ以上の他のフレームを事前にデコードする必要がある。Ｐフレームは、Ｉフレームよりもエンコードに必要なビットが少なくて済む。ＢフレームはＰフレームに似ているが、前のフレームと後のフレームとの両方についての差分画像を含む。Ｂフレームは、事前にデコードされる２つの異なる参照領域を用いて得られた予測を平均化することにより、フレーム内の動き領域の予測を形成するいくつかの予測モードで符号化され得る。Ｂフレームは、ＩフレームまたはＰフレームよりもエンコードに必要なビットが少なくて済む。
【０００５】
インターネットを介した伝送のために、Ｉフレームを含むビットストリームへビデオストリームを符号化するには、ある種の問題が生じる。１つの問題は、圧縮の遅延である。Ｉフレームは、一般に、ＰフレームまたはＢフレームよりも多くのビットを必要とするが、ビデオ画像をＰフレームまたはＢフレームとして圧縮し、エンコードするには、Ｉフレームとしてよりも多くの時間がかかる。もう１つの問題は、ビットレートジッタと呼ばれるものである。Ｉフレームは、ＰフレームまたはＢフレームよりもはるかに多くのビット数を消費するので、エンコードされたピクチャを生成するためのビットレートは不均一である。さらに、セクションごとに、適切なデコードを可能にするために、いくつかの異なるパラメータがビデオストリーム内にエンコードされなければならない。これらのパラメータは、エンコードされたビデオストリームに設けられなければならない付加的なビットであり、この結果として、エンコードされたビットストリームのサイズを増加させる。ビットストリームを小さくし、したがってビットレートを平滑化させることがより望ましい。
【０００６】
他の幅広い分野にも影響を与えている最近の発展分野の一つに、ニューラルネットワーク（ＮＮ）がある。ニューラルネットワークは、画像認識、音声認識、及び手書き認識、ならびに株式市場の予測を含む無数の分野にうまく応用されている。最も単純なレベルのニューラルネットワークは、遷移重み及び内部バイアスを有する一連のノードである。ニューラルネットには、特徴と呼ばれる入力が与えられる。ニューラルネットワークが訓練されているとき、その入力はラベルと呼ばれる所望の結果をもたらすようになる。特徴に対して正しいラベルを生成するようにニューラルネットワークを訓練するために、特定の特徴に対してラベルが正しく与えられるまで、何度もの試行にわたりコスト関数を用いて重みを調節する。画像認識及び株式市場予測などの用途に用いられる一般的なタイプのニューラルネットワークは、再帰型ニューラルネットワーク（ＲＮＮ）である。ＲＮＮは、典型的なノードネットワーク設計に、第２の出力を付け加える。そして、この第２の出力は、単にそのノード自体の繰り返しであってもよい。第２の出力は、ネットワークが、特徴及び関連ラベルに関する無限の履歴情報を維持することを可能にする、追加されたメモリ構成要素を表す。この繰り返しは、前の層と同じ遷移重み及びバイアスを有する付加的な隠れノード層と考えられ得る。
【０００７】
こうした文脈の中で、本開示の態様が生じる。
【図面の簡単な説明】
【０００８】
本発明の教示は、添付の図面と併せて以下の詳細な説明を検討することにより、容易に理解することができる。
【０００９】
【図１Ａ】本発明の実施形態の文脈内でのストリーミングデータピクチャの１つの可能な分割を説明する概略図である。
【図１Ｂ】本開示の態様による再帰型ニューラルネットワークの１つの可能なノードレイアウトを説明する概略図である。
【図１Ｃ】本開示の態様による展開された再帰型ニューラルネットワークを説明する概略図である。
【図２】本開示の態様による双予測ニューラルネットワークを訓練するための方法を示すブロック図である。
【図３】本開示の態様による予測ニューラルネットワークを訓練するための方法を示すブロック図である。
【図４】本発明の実施形態と関連して用い得るニューラルネットワーク強化デジタルピクチャエンコードを説明するフロー図である。
【図５】本発明の実施形態と関連して用い得るストリーミングニューラルネットワーク強化データデコードにおける概略プロセスフローを説明するフロー図である。
【図６】本発明の実施形態による、デジタルピクチャをニューラルネットワークエンコード及び／またはデコードするための装置を説明するブロック図である。
【発明を実施するための形態】
【００１０】
以下の詳細な説明は、例示を目的として多くの具体的な詳細を含むが、当業者の誰でも、以下の詳細に対する多くの変形及び改変が本発明の範囲内にあることを認識する。したがって、以下に説明する本発明の例示的な実施形態は、特許請求される発明に対する一般性を一切損なうことなく、かつ特許請求される発明に制限を課すことなく述べられる。
【００１１】
序論
本発明の実施形態は、エンコードされたビットストリーム内に含まれる情報量を減らすために、１つ以上の訓練されたニューラルネットワークを使用することを含む新しいエンコードプロトコルを実施する。訓練されたニューラルネットワークにより、コーデックが、前のエンコードパラメータからエンコードパラメータを予測することが可能になり得る。したがって、本開示の態様によれば、ニューラルネットワークによって正確に予測されたエンコードパラメータがエンコードされない場合があり、誤って予測されたパラメータは、ビットストリーム内にエンコードされたエンコード誤差ストリームによって修正され得る。
【００１２】
提案するプロトコルは、第１のニューラルネットワーク及び第２のニューラルネットワークを使用する。第１のニューラルネットワーク及び第２のニューラルネットワークはいずれも、他のエンコードパラメータを入力として用いてエンコードパラメータを予測することができる。ただし、第１のニューラルネットワーク（ＮＮ）の入力は、第２のＮＮの入力とは異なる。
【００１３】
本開示の特定の態様をより良く理解するために、第１のＮＮ及び第２のＮＮの入力について説明する前に、いくつかの用語を明確にすることが有用である。従来のビデオエンコーダは、ビデオシーケンスを、符号化されたストリームに圧縮することができる。符号化されたストリームでは、元の入力ビデオピクセルは、ＭＢタイプ、イントラ予測タイプ、動きベクトル、及びＤＣＴ係数などのエンコードされたパラメータのシーケンスによって表される。パラメータ間の順序を記述するのには、時間概念が用いられ得る。具体的には、パラメータＡがパラメータＢよりもビデオシーケンスの先頭近くに配置されている場合、パラメータＡはパラメータＢの前にあると言われる。それ以外の場合、パラメータＡはパラメータＢの後にあると言われる。
【００１４】
第１のＮＮの場合、入力は、予測すべき現在のパラメータの前及び後の両方のパラメータを含む。第２のＮＮの場合、入力は、予測すべき現在のパラメータの前のパラメータのみを有する。これは、符号化されたビデオストリームの予測（Ｐ）ピクチャ及び双予測（Ｂ）ピクチャに類似している。Ｐピクチャは、現在のピクチャの前の参照ピクチャのみを使用する。Ｂピクチャは、現在のピクチャの前及び後の両方の参照ピクチャを使用する。第１のＮＮは、予測すべき現在のパラメータの前及び後の両方から入力を受け取るので、第１のＮＮの予測結果は、第２のＮＮの予測結果よりも優れている。ただし、Ｂピクチャ予測と同様に、第１のＮＮは入力として未来のパラメータに依存するので、第１のＮＮの使用は、未来のパラメータの利用可能性によって制限される。
【００１５】
第１のＮＮ及び第２のＮＮの両方を使用して、符号化されるパラメータを予測することにより、ビデオの符号化効率を向上させることができる。以前のパラメータのみが入力として期待されるので、元の符号化済みビデオストリームを並べ替えることなく、入力は常に第２のＮＮに利用可能である。ただし、第１のＮＮ予測を有効にするには、第１のＮＮが予測を開始する前に、いくつかの未来のパラメータが利用可能でなければならない。ＰピクチャがＢピクチャの参照として利用可能でなければならないのと全く同じように、第２のＮＮの予測結果を第１のＮＮの入力として使用することができる。しかし、第１のＮＮの出力を第２のＮＮの入力として使用することはできない。便宜上、本明細書では、第１のＮＮのようなニューラルネットワークを「双予測」であると呼び、第２のＮＮのようなニューラルネットワークを「予測」であると呼ぶことが便利である。
【００１６】
第１のＮＮ及び第２のＮＮの両方が共に使用される場合、一部のパラメータは第１のＮＮによって予測され得、一部のパラメータは第２のＮＮによって予測され得る。両方から予測されるパラメータはない。同様に、一部のピクチャはＰピクチャとして符号化され、一部のピクチャはＢピクチャとして符号化されるが、Ｐ及びＢの両方として符号化されるピクチャはない。
【００１７】
一般に、第２のＮＮ予測が多すぎると、予測精度が低下する。第１のＮＮ予測が多すぎると、第１のＮＮ及び第２のＮＮの両方の利用可能な入力パラメータの個数が減り、予測精度が低下する可能性もある。全体で最高の予測精度を達成するには、第１のＮＮと第２のＮＮの最適な組み合わせを探し当てることが重要である。例えば、第２のＮＮはＤＣＴ係数を予測することができる。その結果、前及び後のＤＣＴ係数の両方が、他のパラメータ予測のために第１のＮＮにとって利用可能になる。第１のＮＮでは、利用可能なパラメータのみを入力として使用できることに留意されたい。全てのＤＣＴ係数が利用可能であったとしても、未来のパラメータ全てが必ずしも利用可能であるとは限らない。例えば、ＭＢ１のＭＢ符号化タイプが第１のＮＮの予測対象である場合、ＭＢ０のＭＢ符号化タイプは利用可能であるが、ＭＢ２のＭＢ符号化タイプは利用可能ではない。ただし、ＭＢ２のＤＣＴ係数は利用可能である。一実施態様では、同じデータセットフォーマットが第１のＮＮ及び第２のＮＮの両方に対応できるよう用意される。パラメータの利用可能性に従って、利用可能でないパラメータは、特別な無効値でマスクされる。予測後に、予測誤差は、最終的なエンコード結果としてエントロピー圧縮される。デコードプロセスを円滑化するために、予測誤差は、保存または伝送される前に並べ替えられてもよい。各ピクチャを１単位として、最初に第２のＮＮの予測誤差が保存または伝送され得、次に第１のＮＮの予測誤差が保存または伝送され得る。デコーダ側では、第２のＮＮが第１のＮＮの前に実行される。
【００１８】
既存のビデオエンコード方法に照らして理解を容易にするために、最終的なエンコード済みストリームの順序が従来のエンコーダ出力順序と異なっていても、本開示では、エンコードパラメータ間の「前」及び「後」の関係を指定するのに、従来のエンコーダ出力順序を引き続き使用する。
【００１９】
ピクチャエンコードに関する用語をより良く理解するために、画面空間のセグメンテーションについて、図１Ａに関して説明する。図１Ａは、単一のピクチャ１００（例えば、デジタルビデオフレーム）が、１つ以上のセクションに分解され得ることを示す。本明細書で使用するとき、用語「セクション」は、ピクチャ１００内の１つ以上のピクセルのグループを指し得る。セクションは、ピクチャ内の単一のピクセルから、ピクチャ全体にまで及び得る。セクションの非限定的な例には、スライス１０２、マクロブロック１０４、サブマクロブロック１０６、ブロック１０８、及び個々のピクセル１１０が含まれる。図１Ａに示すように、各スライス１０２は、マクロブロック１０４の１つ以上の行、または１つ以上のそのような行の一部分を含む。一行のマクロブロックの個数は、マクロブロックのサイズと、ピクチャ１００のサイズ及び解像度によって決まる。例えば、各マクロブロックが１６×１６ピクセルを含む場合、各行のマクロブロックの個数は、ピクチャ１００の幅（ピクセル単位）を１６で割ることによって算出され得る。各マクロブロック１０４は、いくつかのサブマクロブロック１０６に分解され得る。各サブマクロブロック１０６は、いくつかのブロック１０８に分解され得、各ブロックは、いくつかのピクセル１１０を含み得る。一例として、本発明を限定することなく、一般的なビデオ符号化方式では、各マクロブロック１０４は、４つのサブマクロブロック１０６に分解され得る。各サブマクロブロックは、４つのブロック１０８に分割され得、各ブロックは、１６個のピクセル１１０の４×４の配列を含み得る。
【００２０】
ニューラルネットワーク強化エンコード
本開示の態様によれば、エンコードパラメータ、例えば、動きベクトル、イントラ予測モード動きベクトル、及び変換係数を含めることは、現在のフレーム及び／または前のフレームのエンコードパラメータから次のフレームのエンコードパラメータを予測するように訓練されたニューラルネットワークの使用によって低減させることが可能であり、及び／または現在のフレームのエンコードパラメータを、現在のフレームの他のエンコードパラメータから予測することができる。本エンコードシステムでは、以下に詳述する標準的な手段によりエンコードパラメータを導出するエンコード方式が、現在のセクションに対して実行され得、次に、このエンコードパラメータが、現在のエンコードパラメータのセットから次のエンコードパラメータのセットを予測するように訓練されたニューラルネットワーク（以下、第２のＮＮと呼ばれる）に提供され得る。その後、本システムでは、エンコードされていないビデオストリームの次のセクションのためのエンコードパラメータが導出され得、ＮＮによって行われた次のセクションのためのエンコードパラメータの予測結果が点検され得る。予測が正確であった場合、本システムは、符号化されたビットストリームにそのエンコードパラメータを含めない。予測が正確でなかった場合、本システムは、ビットストリームにエンコードパラメータを含め得る。いくつかの実施形態では、予測が正確でない場合、ニューラルネットワークによって予測されたエンコードパラメータと、標準のエンコードプロセスによって導出される実際のエンコードパラメータとの差（以下、エンコード誤差と呼ぶ）が、符号化されたビットストリームに含められる。このようにして、符号化されたビットストリーム内にエンコードパラメータの削減されたセットが含められ得、したがってビデオストリームのメモリフットプリントが削減され得る。
【００２１】
本開示のさらなる態様によれば、前のセクション及び次のセクションのパラメータ値から現在のセクションのエンコードパラメータを予測するように訓練された別のニューラルネットワーク（以下では、このニューラルネットワークが、訓練プロセスにおいて最初に訓練され得るので、第１のＮＮと呼ぶ）が、追加の精度のために提供され得る。第１のＮＮの入力として使用される前及び次のセクションのエンコードパラメータは、エンコード誤差を加えた第２のＮＮの結果から生成され得る。次に、第１のニューラルネットワークが、第２のＮＮによって生成された前及び次のセクションのパラメータ値のセットから、欠落している現在のセクションのパラメータ値を予測し得る。第２のＮＮに関して上記で説明したように、この予測結果は、エンコードプロセスから導出される次のセクションの実際のエンコードパラメータと比較され得る。第１のＮＮによって予測されたエンコードパラメータが正しい場合、それらは符号化されたビットストリームから削除され得、すでに述べたように、予測されたパラメータ値が正しくない場合、実際のエンコードパラメータが、符号化されたビットストリームに含められ、またはその代わりにエンコード誤差が含められるようになる。
【００２２】
ニューラルネットワークは、当技術分野で知られている任意のタイプであってよいが、好ましくは、ニューラルネットワークは、再帰型ニューラルネットワーク（ＲＮＮ）である。ＲＮＮは、畳み込みＲＮＮ（ＣＲＮＮ）であってもよい。代替実施形態では、ＲＮＮは、任意のタイプの長・短期記憶（ＬＳＴＭ）ＲＮＮである。
【００２３】
図１Ｂは、ＲＮＮの基本形態が、活性化関数Ｓ、１つの入力重みＵ、再帰型隠れノード遷移重みＷ、及び出力遷移重みＶを有するノード１２０の層であることを示す。活性化関数は、当技術分野で知られている任意の非線形関数であってもよく、ｔａｎｈ関数に限定されず、例えば、活性化関数Ｓは、シグモイド関数またはＲｅＬｕ関数であってもよいことに留意されたい。他のタイプのニューラルネットワークとは異なり、ＲＮＮは、層全体に対して１セットの活性化関数及び重みを有する。図１Ｃに示すように、ＲＮＮは、時間Ｔ及びＴ＋１を経て移行する同じ活性化関数を有した一連のノード１２０と見なされ得る。すなわち、ＲＮＮは、前の時刻Ｔの結果を現在の時刻Ｔ＋１に反映させることによって履歴情報を維持する。いくつかの実施形態では、畳み込みＲＮＮが使用され得る。畳み込みＲＮＮでは、いくつかの異なるノード層が接続され、第１のノード層の出力が第２のノード層の入力に接続されるなどして、階層構造が形成される。使用され得る別のタイプのＲＮＮは、入力ゲート活性化関数、出力ゲート活性化関数、及び忘却ゲート活性化関数を有するＲＮＮノードにメモリブロックを追加して、Ｈｏｃｈｒｅｉｔｅｒ＆Ｓｃｈｍｉｄｈｕｂｅｒ「Ｌｏｎｇ  Ｓｈｏｒｔ−ｔｅｒｍ  ｍｅｍｏｒｙ」Ｎｅｕｒａｌ  Ｃｏｍｐｕｔａｔｉｏｎ  ９（８）：１７３５−１７８０（１９９７）によって説明されているように、ネットワークがいくつかの情報をより長期間保持することを可能にするゲーティングメモリをもたらすＬＳＴＭニューラルネットワークである。
【００２４】
ニューラルネットワークの訓練
図２は、エンコードパラメータを認識して正しく予測するように新しいニューラルネットワークを訓練するための方法２００を示す。ニューラルネットワーク（ＮＮ）の訓練は、ＮＮ２１０の重みの初期化から始める。初期の重みは、活性化関数のタイプ及びノードへの入力の数によって決まる。ＮＮの初期の重みは、隠れ層での非対称の計算を招くために、これを０にすることはできない。一般に、初期の重みはランダムに分散させる必要がある。例えば、ｔａｎｈ活性化関数を用いるＮＮは、−１／√ｎから１／√ｎの間に分布する乱数値を有するべきである。ただし、ｎはノードへの入力の数である。
【００２５】
ＮＮは、任意数の状態を有し得る。一般的なＮＮでは、各隠れ状態はその入力として全ての特徴を提供され、ラベル空間と同じ大きさの出力を生成する。ＣＲＮＮでは、前の層と比較してノード数を減らした余分のノード層を追加することにより、ラベル空間が削減される。いくつかの実施形態では、パラメータ値をエンコードするためのラベル空間は、４ビットの小さい符号なし整数に符号ビットを加えたものである。４ビットよりも大きいパラメータ値の場合、パラメータは、予測を行わずに直接ストリームにエンコードされ得る。
【００２６】
ＮＮは、乱数値で初期化されると、特徴データを使用して訓練され得る。両方のニューラルネットタイプ用の訓練データの形式は、システムが実際にエンコード／デコード機能を実行しているときに送出及び受領が行われるデータの形式と厳密に一致している必要があることに留意されたい。同じＮＮがエンコーダとデコーダとによって使用される場合では特にそうである。このような場合、デコーダ側ＮＮは、エンコーダ側ＮＮと同じ結果を出力することが期待される。本開示の態様によれば、第１のＮＮが、前のセクション及び次のセクションのエンコードパラメータから正しいエンコードパラメータを予測するように訓練され得る。
【００２７】
第１のＮＮを、前及び次のセクションから現在のセクションのエンコードパラメータを予測するように訓練するには、ビデオエンコードパラメータの配列が作成されなければならない（２２０）。各配列は、前のセクションから未来のセクションまでのタイムスタンプ順に並べられたビデオストリームの各セクションのエンコードパラメータを含む。これらの配列は、上記のエンコードパラメータ生成方法によって生成され得る。第１のＮＮの特徴データは、次のセクションまでのビデオストリームの各セクションのラベルを含むため、現在のセクションの少なくとも１つのタイプのエンコードパラメータが無効値でマスクされなければならない（２３０）。いくつかの例では、ビットストリームのエンコードパラメータの全てが利用可能であるわけではない可能性がある。この場合、次のセクション以降の全ての未来のエンコードパラメータは、無効値でマスクされる。その後、第１のＮＮには、マスクされたエンコードパラメータを特徴データとして含むエンコードパラメータ配列が提供される。マスクされた配列に対するＮＮによって予測されたラベルは、実際のエンコードパラメータと比較され、ＮＮは、確率的勾配降下法を用いた標準的な誤差逆伝播アルゴリズムで訓練される（２４０）。
【００２８】
訓練２４０の各繰り返しの後に、異なるエンコードパラメータタイプがマスクされ得、以前にマスクされたパラメータはマスクが解除され得る。このようにして、第１のＮＮは、前及び次のセクションのパラメータから、現在のセクションの全てのタイプのエンコードパラメータを認識し、予測するように訓練され得る。同様に、第１のＮＮは、現在のセクション並びに／または前及び次のセクションの他のパラメータ値から現在のセクションの欠落しているパラメータ値を予測するように訓練され得る。訓練の過程において、現在のセクションの複数のエンコードパラメータがマスクされ得、または現在のセクションの全てのパラメータがマスクされ得ることを理解されたい。さらに、いくつかの実施形態では、訓練時に次のセクションは、予測し、マスクすべきタイプのエンコードパラメータを有し得る。第１のＮＮの訓練は、予測の誤差率に改善が見られなくなった後に終了する。いくつかの実施形態では、出力トークンが実際のパラメータ値に取って代わってもよい。
【００２９】
第１のＮＮのノード入力、出力、及び遷移重みの検討から、他のエンコードパラメータを使用して、どのエンコードパラメータを正確に予測できるかを判定することができる。さらに、ＮＮの重み及びバイアスのメタ分析を使用して、他のエンコードパラメータタイプの予測におけるエンコードパラメータタイプの重要性を判定することができる。
【００３０】
図３は、第２のＮＮを訓練するための方法を示す。第１のＮＮと同様に、第２のＮＮは、方法３００に従って、確率的勾配降下法を用いた誤差逆伝播を使用して、次のセクションのエンコードパラメータを予測するように訓練され得る。第２のニューラルネットワークは、上記で図２を用いて説明したのと同じように、最初に乱数値で初期化される（３１０）。第２のニューラルネットワークには、現在のセクションまでのセクションごとに各タイプのエンコードパラメータを含む配列が提供される（３２０）。エンコードパラメータの配列の次のセクションは無効値でマスクされ得（３３０）、ニューラルネットワークには無効値の配列が提供され得る。正しいラベルは、以下に説明するエンコードパラメータ生成方法から知られる次のセクションのエンコードパラメータである。確率的勾配降下法を用いた通時的誤差逆伝播を使用して、第２のニューラルネットワークの正しい重み及びバイアスを生じさせる（３４０）。予測の誤差率が低下しなくなるまで、訓練を数回繰り返す。訓練後に、ＮＮは、次のセクションのための有効なエンコードパラメータを生成する。
【００３１】
ニューラルネットワークエンコード方法
デジタルピクチャは、図４に説明される一般化された方法４００に従ってエンコードされ得る。エンコーダは、複数のデジタル画像４０１を受け取り、各画像をエンコードする。デジタルピクチャ４０１のエンコードは、セクション単位で進行し得る。セクションごとのエンコードプロセスは、任意選択で、パディング４０２、画像圧縮４０４、及びピクセル再構成４０６を含み得る。イントラ符号化ピクチャ及びインター符号化ピクチャの両方に共通のプロセスフローを促進するために、現在処理中のピクチャ４０１のうちのデコードされていない全てのピクセルは、仮ピクセル値でパディングされて、４０２において示すようにパディングされたピクチャが生成される。パディングされたピクチャは、バッファに格納された参照ピクチャのリスト４０３に追加される。ピクチャを４０２でパディングすることにより、現在処理中のピクチャを、画像圧縮４０４時及びピクセル再構成４０６時の後続処理において参照ピクチャとして使用することが容易になる。そのようなパディングは、参照により本明細書に組み込まれる、本発明の譲受人に譲渡された米国特許第８，２１８，６４１号に詳細に記載されている。
【００３２】
本明細書で使用するとき、画像圧縮とは、データ圧縮のデジタル画像への適用を意味する。画像圧縮４０４の目的は、与えられた画像４０１の画像データの冗長性を低減して、その画像のデータを圧縮データという効率的な形で保存または伝送できるようにすることである。画像圧縮４０４は、非可逆または可逆であってよい。可逆圧縮は、製図、アイコン、または漫画などの人工画像には好ましい場合がある。これは、非可逆圧縮方法が、特に低ビットレートで使用される場合には、圧縮アーティファクトを発生させるためである。可逆圧縮方法はまた、医療画像または保存を目的として行われる画像スキャンなど、高い値のコンテンツについて好ましい場合がある。非可逆方法は、ビットレートの大幅な減少を達成するために、忠実度のわずかな（場合によっては感知できない）損失が許容可能な用途で写真などの自然画像に特に適している。
【００３３】
可逆画像圧縮の方法の例には、ＰＣＸではデフォルトの方法として使用され、ＢＭＰ、ＴＧＡ、ＴＩＦＦで可能な方法として使用されるランレングス符号化、エントロピー符号化、ＧＩＦ及びＴＩＦＦで使用されるＬＺＷなどの適応辞書アルゴリズム、ＰＮＧ、ＭＮＧ、及びＴＩＦＦで使用されるデフレートが含まれるが、これらに限定されない。非可逆圧縮の方法の例には、ピクチャ４０１の色空間を画像内の最も共通した色に縮小すること、クロマサブサンプリング、変換符号化、及びフラクタル圧縮が含まれる。
【００３４】
色空間縮小においては、選択した色は圧縮画像のヘッダ内のカラーパレットで指定され得る。各ピクセルは、カラーパレットの色のインデックスを参照しているにすぎない。この方法は、ポスタリゼーションを回避するためにディザリングと組み合わされてもよい。クロマサブサンプリングは、目が色よりも明るさをより強く知覚するという事実を、画像内のクロミナンス情報の半分以上を削除することによって利用する。変換符号化は、おそらく最も一般的に使用される画像圧縮方法である。変換符号化は、通常、離散コサイン変換（ＤＣＴ）またはウェーブレット変換などのフーリエ関連変換に続いて、量子化及びエントロピー符号化を適用する。フラクタル圧縮は、特定の画像では、画像の一部が同じ画像の他の部分に似ているという事実に依拠する。フラクタルアルゴリズムは、これらの部分、またはより正確には幾何学的形状を、エンコードされた画像を再現させるために使用される「フラクタルコード」と呼ばれる数学的データに変換する。
【００３５】
画像圧縮４０４は、画像４０１の特定の部分が他の部分よりも高品質でエンコードされる関心領域符号化を含み得る。これは、画像の特定の部分を最初にエンコードし、他の部分を後からエンコードすることを含むスケーラビリティと組み合わされ得る。圧縮データは、画像の分類、検索、または閲覧に使用できる、画像に関する情報（メタ情報またはメタデータと呼ばれることもある）を含むことができる。このような情報には、色及びテクスチャの統計量、小さなプレビュー画像、ならびに作成者／著作権情報が含まれ得る。
【００３６】
限定としてではなく、一例として、４０４での画像圧縮中に、エンコーダは、ピクセルのブロックを圧縮するための最良の方法を検索してもよい。エンコーダは、現在パディングされているピクチャを含む、参照ピクチャリスト４０３内の全ての参照ピクチャを検索して、良好に一致させることができる。現在のピクチャがイントラピクチャとして符号化される場合、参照リスト内ではパディングされたピクチャのみが利用可能である。４０４での画像圧縮では、後で、２０６でのピクセル再構成時に、１つ以上の参照ピクチャ（パディングされたピクチャを含む）と共に使用される動きベクトルＭＶ及び変換係数４０７を生成する。
【００３７】
画像圧縮４０４は、一般に、最良のインター予測一致のための動き探索ＭＳ、最良のイントラ予測一致のためのイントラ探索ＩＳ、現在のマクロブロックがインター符号化されているか、またはイントラ符号化されているかを決定するためのインター／イントラ比較Ｃ、可逆残差ピクセル４０５を計算するために最も一致する予測ピクセルで符号化されているセクションからの元の入力ピクセルの減算Ｓを含む。次に、残差ピクセルは、変換及び量子化ＸＱを受けて、変換係数４０７を生成する。変換は通常、離散コサイン変換（ＤＣＴ）などのフーリエ変換に基づいている。既存のビデオ規格では、イントラピクチャを符号化する場合、動き探索ＭＳ及びインター／イントラ比較Ｃはオフにされる。しかしながら、本発明のいくつかの実施形態では、パディングされたピクチャが参照として利用可能である場合、これらの関数はオフにされない。その結果、画像圧縮２０４は、イントラ符号化ピクチャ及びインター符号化ピクチャに対し同じであり得る。
【００３８】
動き検索ＭＳでは、インター符号化ピクチャに対して通常行われるように、動き補償のための最も一致するブロックまたはマクロブロックを求めてピクチャ４０１を探索することにより、動きベクトルＭＶを生成し得る。現在のピクチャ４０１がイントラ符号化されたピクチャである場合、コーデックは通常、ピクチャにわたる予測を許可しない。その代わりに、通常、イントラピクチャと、変換係数を生成してピクセル予測を行うことによって符号化されたピクチャとに対して、全ての動き補償がオフにされる。また一方、いくつかの代替の実施態様では、イントラピクチャを使用して、現在のピクチャ内のセクションをその同じピクチャ内の別のオフセットセクションと照合することにより、インター予測を行い得る。２つのセクション間のオフセットは、４０６でのピクセル再構成に使用できる動きベクトルＭＶ'として符号化され得る。一例として、エンコーダは、イントラピクチャ内のブロックまたはマクロブロックを同じピクチャ内の他のいくつかのオフセットセクションと照合し、次に２つの間のオフセットを動きベクトルとして符号化しようと試み得る。次に、「インター」ピクチャに対するコーデックの通常の動きベクトル補償を使用して、「イントラ」ピクチャに対する動きベクトル補償を行い得る。特定の既存のコーデックは、２つのブロックまたはマクロブロックの間のオフセットを動きベクトルに変換できる関数を有し、これに従って、４０６でピクセル再構成を行い得る。ただし、これらの関数は、従来、イントラピクチャのエンコードではオフにされている。いくつかの代替の実施態様では、コーデックは、イントラピクチャのエンコードのために、そのような「インター」ピクチャ関数をオフにしないように指示されてもよい。
【００３９】
本明細書で使用するとき、ピクセル再構成は、参照画像から現在処理中の画像への変換に関して、ピクチャを描写するための技法を指す。ピクセル再構成４０６の出力は、「デコードされたピクセル」と呼ばれることもある。一般に、ピクセル再構成４０６は、エンコードプロセス４００を実装するエンコーダ内のローカルデコーダとして機能する。具体的には、ピクセル再構成４０６は、画像圧縮４０４からの動きベクトルＭＶまたはＭＶ'と、参照リスト内のピクチャからの参照ピクセルとを使用して予測ピクセルＰＰを得るために、インター予測ＩＰ１及び（任意選択で）イントラ予測ＩＰ２を含む。画像圧縮４０４からの変換係数４０７を使用する逆量子化及び逆変換ＩＱＸは、非可逆の残差ピクセル４０５Ｌを生成し、これらは予測ピクセルＰＰに加えられて、デコードされたピクセル４０９を生成する。デコードされたピクセル４０９は、参照ピクチャに挿入され、現在処理中のピクチャ４０１の後続のセクションのための画像圧縮４０４及びピクセル再構成４０６での使用に利用可能である。デコードされたピクセルが挿入された後に、参照ピクチャ内のデコードされていないピクセルはパディング４０２を受けてもよい。
【００４０】
限定としてではなく、一例として、ブロック動き補償（ＢＭＣ）として知られる動き補償の一タイプにおいては、各画像は、ピクセルのブロック（例えば、１６×１６ピクセルのマクロブロック）に分割され得る。各ブロックは、参照フレーム内の同じサイズのブロックから予測される。ブロックは、予測されたブロックの位置にシフトされること以外は、どのような方法でも変換されない。このシフトは、動きベクトルＭＶによって表される。隣接するブロックベクトルの間の冗長性を活用するために（例えば、複数のブロックでカバーされる単一の移動物体の場合）、ビットストリーム内の現在の動きベクトルと前の動きベクトルとの差分のみをエンコードするのが一般的である。この差分プロセスの結果は、パンニングが可能な全体的な動き補償と数学的に同等である。エンコードパイプラインのさらに下流では、方法４００は、ゼロベクトルの周りの動きベクトルの結果として生じる統計的分布を利用して、出力サイズを低減するために、任意選択で、エントロピー符号化４０８を使用してもよい。
【００４１】
ブロック動き補償は、現在エンコードしている画像を重なり合わないブロックに分割し、それらのブロックが参照画像のどこから生じるかを示す動き補償ベクトルを計算する。参照ブロックは通常、ソースフレーム内で重なり合う。いくつかのビデオ圧縮アルゴリズムは、参照画像リスト４０３内のいくつかの異なる参照画像の断片から現在の画像を組み立てる。符号化及びデコード方法に関するより多くの情報は、参照により本明細書に組み込まれる所有者が共通の米国特許第８，７１１，９３３号に見出すことができる。
【００４２】
本開示の態様によれば、本明細書で集合的にエンコードパラメータと呼ばれる、動きベクトルＭＶ、（及び／またはイントラ予測モード動きベクトルＭＶ'）及び変換係数４０７は、第２のニューラルネットワーク４２０に提供され得る。第２のニューラルネットワークは、上記のように、現在のセクションから次のセクションのエンコードパラメータを予測するように訓練される。予測が行われると、ニューラルネットワーク４２０によって提供される予測されたエンコードパラメータを、次のセクションの実際のエンコードパラメータと比較することにより、予測誤差を含む予測されたエンコードパラメータが４２１で決定される。限定ではなく一例として、予測誤差は、次のセクションの実際のエンコードパラメータから、予測されたエンコードパラメータを減算したものであり得る。減算の結果がゼロであれば、エンコードパラメータは正確に予測されたことになる。正確に予測されたエンコードパラメータは、エンコードから削除され得、符号化されたピクチャ４１１には含められず、またはエントロピーエンコーダ４０８に渡されない。エンコード誤差決定の結果がゼロ以外の数である場合、エンコード誤差は、（任意選択で）エントロピーエンコード４０８を使用してエンコードされ得、符号化されたピクチャ４１１に含められ得る。本開示の代替の態様によれば、エンコード誤差の結果がゼロ以外の数である場合、正しいエンコードパラメータは、（任意選択で）エントロピーエンコード４０８でエンコードされ得、符号化されたピクチャ４１１に含められ得る。限定ではなく一例として、予測誤差は、スライスデータ、または符号化されたピクチャ４１１のヘッダまたはヘッダの一部に含まれ得る。
【００４３】
第１のセクションまたはいくつかのセクションについては、実際のエンコードパラメータは、符号化されたピクチャ４１１内に含まれ得ることに留意されたい。予測誤差４２１の決定は、セクションが初期のセクションであるか、またはピクチャのグループのセクションであるかを決定することを含み得、セクションが初期のセクションであるか、またはピクチャのグループのセクションであるかが決定された場合、セクションのエンコードパラメータは、（任意選択で）エントロピーエンコードされ、変更されることなく、符号化されたピクチャ４１１内に含められ得る。これにより、デコードシステムに含まれるニューラルネットワークは、エンコードパラメータを予測するための正しい開始点を持つことができるようになる。さらに、初期のエンコードパラメータは、エンコードパラメータが、変更されていない初期エンコードパラメータであるか、または予測誤差であるかを知らせるフラグをヘッダに含み得る。
【００４４】
本開示の代替の実施形態では、第１のニューラルネットワークは、第２のニューラルネットワークの結果及び（任意選択で）予測誤差を提供される。第１のニューラルネットワークは、現在のセクション並びに／または前の及び次のセクションのエンコードパラメータから欠落しているエンコードパラメータを予測するように訓練される。第１のニューラルネットワークは、第２のニューラルネットワークからの予測されたエンコードパラメータ及び（任意選択で）予測誤差を使用して、エンコードパラメータのより正確な予測を生成し得る。いくつかの実施形態では、このプロセスを支援するために、第１のニューラルネットワークはまた、上記のように、「前」及び「後」のパラメータの両方を含む実際のエンコードパラメータ（上記のプロセスを通じて決定される）を提供され得る。第２のニューラルネットワークの結果と同様に、予測誤差が決定されて、符号化されたピクチャに含められ得る。代替の実施形態では、エンコードされたピクチャのセクションは、第１のＮＮを使用して、予測のためにフラグを立てられ得る。他の代替の実施形態では、どのセクションのどのエンコードパラメータが、第１のＮＮを使用して予測されるべきかを判定するためにアルゴリズムが使用され得る。限定ではなく一例として、１つのエンコードパラメータタイプが第１のＮＮによって決定され得、一方、他のエンコードパラメータが第２のＮＮによって決定され、または他の全てのセクションが第１のＮＮを使用して予測され得る。いくつかの代替の実施形態では、特定のセクションの実際のエンコードパラメータを符号化ピクチャに含めて、第１のＮＮを使用した予測を可能にすることができる。他の代替の実施態様では、双予測の第１のＮＮが階層的に使用され得る。例えば、セクション０、４、８・・・が、第２の（予測）ＮＮによって予測され得る。次に、セクション０及び４の両方は、セクション２を予測するために、第１のＮＮへの入力として使用され得る。次に、セクション０及び２は、セクション１を予測するために、別の双予測ニューラルネットワークの入力として使用される。セクション２及び４には、セクション３を予測するために、さらに別の双予測ＮＮが使用される。
【００４５】
パディング４０２、画像圧縮４０４及びピクセル再構成４０６、予測誤差決定４２１及び（任意選択の）エントロピー符号化４０８の結果は、符号化されたピクチャ４１１である。
【００４６】
ニューラルネットワーク強化デコーダシステム
本デコーダシステムは、第２の訓練されたＮＮを使用して、上記のようにエンコードされたビットストリームから正しいエンコードパラメータを予測する。最初に、エンコードされたビットストリームは、パラメータ値をビットストリームから抽出できるようにするエントロピーデコーダでデコードされ得る。ビデオストリームのまさしく最初のセクションまたはいくつかのセクションのパラメータ値には、ビットストリームに含まれる全てのビデオエンコードパラメータを有している場合があることに留意されたい。これにより、ＮＮは次のセクションの次のパラメータ値を正確に予測できるようになる。エンコードパラメータは、限定としてではなく一例として、符号化されたスライスデータ、またはビットストリーム内のビデオの各フレームのフレームヘッダ、またはビットストリーム内の他の任意の適切な位置に含まれ得る。エンコードされたビットストリームはまた、次のセクションのためのエンコードパラメータの修正されたセットを生成するためにＮＮによって行われた予測と組み合わされ得る予測誤差ストリームを含み得る。予測誤差は、例えば、ピクチャのヘッダ情報にエンコードされ得る。
【００４７】
代替の実施形態では、第２のＮＮが生成した予測結果に予測誤差を加えたものが、第１のＮＮの入力として使用される。第１のＮＮは、第２のＮＮによって予測されたパラメータを使用して、パラメータのより正確な予測を生成し得る。一般に、第２のＮＮによる予測が多すぎると、予測精度が低下する。同様に、第１のＮＮによって行われる予測が多すぎると、第１のＮＮ及び第２のＮＮ両方の利用可能な入力パラメータの個数が減少し、予測精度が低下する可能性もある。全体で最高の予測精度を達成するには、第１のＮＮと第２のＮＮとの最適な組み合わせを探し当てることが重要である。限定ではなく一例として、第２のＮＮを使用して、ＤＣＴ係数を予測することができる。その結果、ＤＣＴ係数の前及び後の両方が、第１のＮＮを使用した他のパラメータ予測に利用可能になる。第１のＮＮは、利用可能なパラメータのみを入力として使用できることに留意されたい。全てのＤＣＴ係数が利用可能であったとしても、未来の全てのパラメータを予測時に使用できるわけではない。例を続けると、ＭＢ１のＭＢ符号化タイプが第１のＮＮの予測対象である場合、ＭＢ０のＭＢ符号化タイプは利用可能であるが、ＭＢ２のＭＢ符号化タイプは利用可能ではない。しかし、第２のＮＮによって予測されたＭＢ２のＤＣＴ係数が利用可能であるため、第１のＮＮは、ＭＢ０のＭＢ符号化タイプ及びＭＢ２のＤＣＴ係数を使用して、ＭＢ１のＭＢ符号化タイプを予測するようになる。他の代替の実施形態では、本デコーダは、次のセクションの実際のエンコードパラメータを受け取り、この受け取った次のセクションの実際のエンコードパラメータと、前のセクションの決定されたパラメータと共に、現在のセクションの予測に第１のＮＮを使用することができる。上記のように、第１のＮＮは「双予測」であり、第２のＮＮは「予測」である。したがって、第２のＮＮ予測結果は、第１のＮＮの入力として使用することができる。しかし、第１のＮＮの結果を第２のＮＮの入力として使用することはできない。
【００４８】
次に、本開示の態様によれば、修正されたエンコードパラメータのセットがデコードプロセスで使用され得る。
【００４９】
デコード方法
図５は、本発明の実施形態と併せて使用し得るストリーミングデータ５０１のデコードのための方法５００における可能なプロセスフローの例を説明する。この特定の例は、例えば、ＡＶＣ（Ｈ．２６４）規格を使用したビデオデコードのプロセスフローを示す。符号化されたストリーミングデータ５０１は、最初はバッファに格納され得る。符号化されたストリーミングデータ５０１（例えば、ビデオデータビットストリーム）がネットワーク、例えばインターネットを介して転送された場合、データ５０１は、最初に、５０２で示されるネットワーク抽象化層（ＮＡＬ）デコードと呼ばれるプロセスを受け得る。ＮＡＬデコードは、データの伝送を補助するために追加された情報をデータ５０１から取り除き得る。「ネットワークラッパー」と呼ばれるそのような情報は、データ５０１をビデオデータとして識別し、またはビットストリームの開始または終了、データの整列のためのビット、及び／またはビデオデータ自体に関するメタデータを示し得る。そのようなメタデータは、パッチフレームを形成するために使用できるイントラ符号化サブセクションを含む２つ以上の連続する継続的なフレームのシーケンスにおける最初の符号化フレームとして特定の符号化フレームを識別するビットをヘッダ内に含み得る。メタデータはまた、エンコードパラメータが変更されていない初期エンコードパラメータであるか、または予測誤差であるかを伝える上記のフラグをヘッダ内に含み得る。
【００５０】
さらに、一例として、ネットワークラッパーは、例えば、解像度、ピクチャ表示形式、データを表示するためのカラーパレット変換行列、各ピクチャのビット数に関する情報、スライスまたはマクロブロック、及び低レベルのデコードで使用される情報、例えば、スライスの開始または終了を示すデータを含む、データ５０１に関する情報を含み得る。この情報は、単一のセクション内のタスクグループのそれぞれに渡すマクロブロックの個数を決定するために使用され得る。
【００５１】
その複雑さのために、ＮＡＬデコードは通常、ピクチャ及びスライスのレベルで行われる。ＮＡＬデコードに使用される最小のＮＡＬバッファは、通常、スライスサイズである。幸いなことに、ＮＡＬデコードプロセス５０２は、比較的少ないサイクル数を伴う。その結果、ＮＡＬデコードプロセス５０２は、単一のプロセッサ上で行われ得る。
【００５２】
いくつかの実施形態では、５０２でのＮＡＬデコードの後、図５で説明される残りのデコードは、本明細書で、ビデオ符号化層（ＶＣＬ）デコード５０４、動きベクトル（ＭＶ）再構成５１０及びピクチャ再構成５１４と呼ばれる３つの異なるスレッドグループまたはタスクグループに実装され得る。ピクチャ再構成タスクグループ５１４は、ピクセル予測・再構成５１６及び後処理５２０を含み得る。これらのタスクグループは、各タスクグループが、後続の処理のためにマクロブロックが次のタスクグループに送られる前に、ピクチャ（例えば、フレームまたはフィールド）またはセクション内の全てのマクロブロックの処理を完了できるように、データの依存関係に基づいて選択され得る。
【００５３】
特定のコーデックは、空間領域から周波数領域へのピクセル情報の変換を含むデータ圧縮の形式を使用する場合がある。特に、そのような変換の１つは、離散コサイン変換（ＤＣＴ）として知られている。このような圧縮データのデコードプロセスには、周波数領域から空間領域へ戻す逆変換を伴う。ＤＣＴを使用して圧縮されたデータの場合は、その逆プロセスは逆離散コサイン変換（ＩＤＣＴ）として知られている。変換されたデータは、離散変換されたデータの数値を表すのに使用されるビット数を減らすために量子化されることがある。例えば、数１、２、３が全て２にマップされ得、数４、５、６が全て５にマップされ得る。データを解凍するには、周波数領域から空間領域への逆変換を実行する前に、逆量子化（ＩＱ）として知られるプロセスが使用される。ＶＣＬ  ＩＱ／ＩＤＣＴデコードプロセス５０４のデータ依存関係は、通常は、同じスライス内のマクロブロックのマクロブロックレベルにある。その結果、ＶＣＬデコードプロセス５０４によって生成された結果は、マクロブロックレベルでバッファリングされ得る。
【００５４】
ＶＣＬデコード５０４は、多くの場合、ＶＣＬ構文をデコードするのに使用されるエントロピーデコード５０６と呼ばれるプロセスを含む。ＡＶＣ（Ｈ．２６４）などの多くのコーデックは、エントロピーエンコードと呼ばれるエンコードの層を使用する。エントロピーエンコードは、符号の長さと信号の確率を一致させるように信号に符号を割り当てる符号化方式である。一般に、エントロピーエンコーダは、等しい長さの符号で表される記号を、確率の負の対数に比例する符号で表される記号に置き換えることによってデータを圧縮するのに使用される。ＡＶＣ（Ｈ．２６４）は、コンテキスト適応型可変長符号化（ＣＡＶＬＣ）及びコンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）の２つのエントロピーエンコード方式をサポートする。ＣＡＢＡＣはＣＡＶＬＣよりも約１０％以上高い圧縮を提供する傾向があるため、ＣＡＢＡＣはＡＶＣ（Ｈ．２６４）ビットストリームの生成において多くのビデオエンコーダに支持されている。ＡＶＣ（Ｈ．２６４）符号化されたデータストリームのエントロピー層のデコードは、計算量が多くなり得、ＡＶＣ（Ｈ．２６４）符号化されたビットストリームを汎用マイクロプロセッサを使用してデコードするデバイスに課題をもたらす可能性がある。ブルーレイまたはＨＤ−ＤＶＤ規格の対象となる高ビットレートのストリームをデコードするには、ハードウェアが非常に高速で複雑なものである必要があり、システム全体のコストが非常に高くなる可能性がある。この問題の一般的な解決策の１つは、ＣＡＢＡＣデコード用の特別なハードウェアを設計することである。あるいは、エントロピーデコードをソフトウェアで実装することもできる。エントロピーデコードのソフトウェア実装の例は、参照により本明細書に組み込まれる、２００６年８月２５日出願の「ＥＮＴＲＯＰＹ  ＤＥＣＯＤＩＮＧ  ＭＥＴＨＯＤＳ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ」（代理人案件番号ＳＣＥＡ０６０５４ＵＳ００）と題されたＸｕｎＸｕに対する所有者が共通の米国特許第８，７４９４，０９号に見出され得る。
【００５５】
エントロピーデコード５０６に加えて、ＶＣＬデコードプロセス５０４は、５０８で示されるように、逆量子化（ＩＱ）及び／または逆離散コサイン変換（ＩＤＣＴ）を含み得る。これらのプロセスは、マクロブロックからヘッダ５０９及びデータをデコードし得る。デコードされたヘッダ５０９は、隣接するマクロブロックのＶＣＬデコードを支援するのに使用され得る。
【００５６】
本発明の態様によれば、最初にデコードされたヘッダまたはビデオメタデータの一部（例えば、スライスデータ）は、後続のヘッダまたはビデオメタデータの一部を予測し得るニューラルネットワーク５０５に提供され得る。次いで、ビデオメタデータの一部は、デコードプロセスで使用するためにヘッダ５０９に挿入されてもよい。さらに、本発明によれば、ＶＣＬデコードプロセスは、エンコードされたヘッダから後続の各セクションのエンコード誤差をデコードし得、このエンコード誤差は、ニューラルネットワーク５０５によって行われた誤った予測を修正するために、ビデオメタデータと結合され得る。ビデオメタデータは、エンコードパラメータが変更されていない初期エンコードパラメータであるか、または予測誤差であるかを伝える上記のフラグをヘッダ内に含み得る。いくつかの実施態様では、ニューラルネットワークからの予測が、ヘッダ５０９に挿入され得る。
【００５７】
ＶＣＬデコード５０４及びニューラルネットワーク予測５０５は、マクロブロックレベルのデータ依存頻度で実施され得る。具体的には、同じスライス内の異なるマクロブロックは、ニューラルネットワーク予測の間に並行してＶＣＬデコードを受けることができ、その結果は、さらなる処理のために、動きベクトル再構成タスクグループ５１０に送られ得る。
【００５８】
続いて、ピクチャまたはセクションの内の全てのマクロブロックが、動きベクトル再構成５１０を受けることができる。ＭＶ再構成プロセス５１０は、所与のマクロブロック５１１からのヘッダ及び／または同じ場所に配置されたマクロブロックヘッダ５１３を使用する動きベクトル再構成５１２を含み得る。動きベクトルは、ピクチャ内の見かけの動きを表す。そのような動きベクトルは、先行するピクチャのピクセルの知識と、ピクチャからピクチャへのそれらのピクセルの相対的な動きとに基づいて、ピクチャ（またはその一部）の再構成を可能にする。動きベクトルが回復されると、ピクセルは、ＶＣＬデコードプロセス５０４からの残差ピクセルとＭＶ再構成プロセス５１０からの動きベクトルとに基づくプロセスを使用して、５１６で再構成され得る。ＭＶのデータ依存頻度（及び並列性のレベル）は、ＭＶ再構成プロセス５１０が他のピクチャからの同じ場所に配置されたマクロブロックを含むかどうかに依存する。他のピクチャからの同じ場所に配置されたＭＢヘッダを含まないＭＶ再構成の場合、ＭＶ再構成プロセス５１０は、スライスレベルまたはピクチャレベルで並行して実施され得る。同じ場所に配置されたＭＢヘッダを含むＭＶ再構成の場合、データ依存頻度はピクチャレベルであり、ＭＶ再構成プロセス５１０は、スライスレベルでの並列性をもって実施され得る。
【００５９】
動きベクトル再構成５１０の結果は、ピクチャ再構成タスクグループ５１４に送られ、このピクチャ再構成タスクグループ５１４は、ピクチャ周波数レベルで並列化され得る。ピクチャ再構成タスクグループ５１４内で、ピクチャまたはセクションの内の全てのマクロブロックは、デブロッキング５２０と併せて、ピクセル予測・再構成５１６を受け得る。ピクセル予測・再構成タスク５１６及びデブロッキングタスク５２０は、デコードの効率を高めるために並列化され得る。これらのタスクは、データの依存関係に基づいて、マクロブロックレベルで、ピクチャ再構成タスクグループ５１４内で並列化され得る。例えば、ピクセル予測・再構成５１６が１つのマクロブロックに対して実行され得、デブロッキング５２０がその後に続く。デブロッキング５２０によって得られたデコード済みピクチャからの参照ピクセルは、後続のマクロブロックでのピクセル予測・再構成５１６において使用され得る。ピクセル予測・再構成５１８は、後続のマクロブロックのためのピクセル予測・再構成プロセス５１８への入力として使用され得る隣接ピクセルを含むデコード済みセクション５１９（例えば、デコードされたブロックまたはマクロブロック）を生成する。ピクセル予測・再構成５１６のデータの依存関係により、同じスライス内のマクロブロックに対して、マクロブロックレベルでのある程度の並列処理が可能となる。
【００６０】
ピクセル予測は、すでにデコードされたピクチャからのピクセルの代わりに、デコードされている現在のピクチャ内からのピクセルを参照ピクセルとして使用し得る。デコードされていない参照ピクセルは、パディングピクセルに置き換えられ得、このパディングピクセルは、すでにデコードされている現在のピクチャ内のピクセルから決定され得る。ピクセルがデコードされていない場合、パディングピクセルの値は上記のように任意に決定してもよい。
【００６１】
後処理タスクグループ５２０は、ブロック符号化技法が使用される際にブロック間に形成され得る鋭いエッジを平滑化することにより視覚品質及び予測性能を改善するために、デコード済みセクション５１９内のブロックに適用されるデブロッキングフィルタ５２２を含み得る。デブロッキングフィルタ５２２は、結果として生じるデブロックされたセクション５２４の外観を改善するために使用され得る。
【００６２】
デコード済みセクション５１９またはデブロックされたセクション５２４は、隣接するマクロブロックをデブロッキングする際に使用するために、隣接するピクセルを提供し得る。さらに、現在デコードしているピクチャからのセクションを含むデコード済みセクション５１９は、後続のマクロブロックのためのピクセル予測・再構成５１８用に参照ピクセルを提供し得る。ピクチャ（またはそのサブセクション）がインター符号化されたか、またはイントラ符号化されたかに関係なく、現在のピクチャ内からのピクセルを、上記と同じ現在のピクチャ内のピクセル予測に任意選択で使用できるのは、この段階の間である。デブロッキング５２０は、同じピクチャ内のマクロブロックに対してマクロブロックレベルで並列化され得る。
【００６３】
後処理５２０の前に生成されたデコード済みセクション５１９と、後処理セクション５２４とは、関係する特定のコーデックに応じて、同じバッファ、例えば、出力ピクチャバッファに格納され得る。Ｈ．２６４では、デブロッキングは後処理フィルタであることに留意されたい。Ｈ．２６４は、隣接するマクロブロックのイントラ予測の参照としてデブロッキング前のマクロブロックを使用し、未来のピクチャマクロブロックのインター予測のためにデブロッキング後のマクロブロックを使用するためである。デブロッキング前のピクセル及びデブロッキング後のピクセルの両方が予測に使用されるので、デコーダまたはエンコーダは、デブロッキング前のマクロブロック及びデブロッキング後のマクロブロックの両方をバッファに格納する必要がある。ほとんどの低コストの消費者向けアプリケーションでは、デブロッキング前のピクチャ及びデブロッキング後のピクチャは、メモリ使用量を削減するために、同じバッファを共有している。ＭＰＥＧ２またはＭＰＥＧ４（ＭＰＥＧ４パート１０を除く）（注：Ｈ．２６４はＭＰＥＧ４パート１０とも呼ばれる）など、Ｈ．２６４より前の規格の場合、他のマクロブロック予測の参照として、後処理前のマクロブロック（例えば、デブロッキング前のマクロブロック）のみが使用される。そのようなコーデックでは、事前にフィルタリングされたピクチャは、事後にフィルタリングされたピクチャと同じバッファを共有しない場合がある。
【００６４】
したがって、Ｈ．２６４の場合、ピクセルデコード後に、デコード済みセクション５１９は、出力ピクチャバッファに保存される。後に、後処理セクション５２４は、出力ピクチャバッファ内のデコード済みセクション５１９を置き換える。非Ｈ．２６４の場合、デコーダは、デコード済みセクション５１９のみを出力ピクチャバッファに保存する。後処理は表示時に行われるため、後処理出力はデコーダ出力ピクチャバッファと同じバッファを共有していない場合がある。
【００６５】
ほとんどのマルチプロセッサハードウェアプラットフォームでは、プロセッサ間のデータアクセス遅延は、ビデオピクチャ間の時間間隔よりも短くなっている。ただし、マクロブロックの処理速度よりも高速にプロセッサ間データ転送を行い得る並列処理エンジンは数少ない。２つのタスクがピクチャの頻度でデータを交換することは許容される。図３に関して上記で説明したピクチャ頻度の依存関係に基づいて、デコードプロセス５００を５つの別個のタスクに分割することが可能である。これらのタスクは、Ａ）ＮＡＬデコード５０２及びデコーダ内部管理、Ｂ）ＶＣＬ構文デコード及びＩＱ／ＩＤＣＴ５０４、Ｃ）動きベクトル再構成５１０、ならびにＤ）ピクセル予測・再構成５１６、及びＥ）デブロッキング５２０である。
【００６６】
一般に、ＮＡＬデコードは、ピクチャまたはスライスレベルのデータ依存頻度で行われ得る。ＡＶＣ（Ｈ．２６４）などのコーデックの場合、ＮＡＬデコード３０２に関与するデータ依存関係は、かなり複雑であり得るが、全体的なＮＡＬデコードプロセス５０２は、比較的低いサイクル数を要し得る。したがって、このプロセスを並列化しようとするよりも、単一のプロセッサ上に全てのＮＡＬデコード５０２を実装する方が効率的である可能性がある。動きベクトル再構成タスク５１０は、通常、ＶＣＬ構文デコード及びＩＱ／ＩＤＣＴ５０４、ピクセル予測・再構成５１６、ならびにデブロッキング５２０の場合の約１０分の１のプロセッササイクルを要する。後者の３つのタスクの計算の複雑さは、かなり似ている。ただし、これら３つの大きなサイクルタスクの間の実行サイクルの割り当ては、符号化されたビデオストリームごとに異なる。
【００６７】
いくつかのコーデックでは、ＶＣＬ構文デコード及びＩＱ／ＩＤＣＴ５０４内で、各スライス内にマクロブロックレベルのデータ依存関係のみがあるが、ニューラルネットワーク予測の性質上、スライス間にはより大きな依存関係がある。いくつかの実施形態では、この依存関係は、スライス境界内で第２のＮＮ予測及び第１のＮＮ予測を実行することによって制限される。このアプローチは、入力パラメータの個数を大幅に制限して、予測精度を低下させるが、誤差回復力を向上させる。動きベクトル再構成タスク５１０は、入力のためのＶＣＬ構文デコード及びＩＱ／ＩＤＣＴ５０４の出力に依存する。ピクセル予測・再構成タスク５１６は、ＶＣＬ構文デコード及びＩＱ／ＩＤＣＴタスク５０４と動きベクトル再構成タスク５１０との出力を入力として受け取る。動きベクトル再構成タスク５１０及びピクセル予測・再構成タスク５１８内には、マクロブロックレベルのデータ依存関係があるが、１つのピクチャ内のスライスは互いに独立している。
【００６８】
ピクセル予測・再構成タスク５１６は、動き補償を含み得る。ピクセル予測・再構成タスク５１６におけるピクチャ依存関係は、そのような動き補償に起因し得る。動き補償とは、動きベクトルによって取得された参照ピクセルに残差ピクセルを追加することである。動き補償の入力は、動きベクトル及び残差ピクセルである。動き補償の出力はデコードされたピクセルである。上記で説明したように、動き補償は通常、先にデコードされたピクチャを使用して現在のピクチャを予測するプロセスである。動き補償プロセスでは、動きベクトルと呼ばれる２次元ベクトルが使用されて、先にデコードされたピクチャのピクセルが参照される。動きベクトル再構成タスク５１０におけるピクチャレベルの依存関係は、直接予測によってもたらされる。直接予測では、先にデコードされたマクロブロックの動きベクトルが使用されて、現在のマクロブロックの動きベクトルが計算される。ＡＶＣデコーダでは、先にデコードされた参照ピクチャは、デブロッキングタスク５２０の出力である。符号化規格で定義されている動きベクトルの範囲に制限があるため、前のピクチャの全てのピクセルが、現在のピクチャの特定のマクロブロックを予測するのに利用可能であるとは限らない。例えば、ＡＶＣレベル４．１ストリームの動きベクトルの範囲は、垂直方向に−５１２〜５１１．７５ピクセル、水平方向に−１０２４〜１０２３．７５ピクセルである。ピクチャサイズが１９２０×１０８８ピクセルの場合、参照ピクチャの約４分の１のピクセルがコーナーマクロブロックの予測に使用することができる。対照的に、参照ピクチャのほとんど全てのピクセルは、中央のマクロブロックの予測に使用することができる。
【００６９】
図５に示される例では、ＶＣＬデコード及びＩＱ／ＩＤＣＴタスク５０８と他の何らかのタスクとの間に依存関係ループがないことに留意されたい。そのため、このタスクは、ＶＣＬデコードタスク５０４、動きベクトル再構成タスク５１０、またはピクセル予測・再構成タスク５１６のいずれかまたは全てにマージされて、利用可能なプロセッサの間でタスク負荷のバランスをとることができる。ブロックによってはＤＣＴ係数を持たない場合があるので、ＩＱ／ＩＤＣＴタスク５０８をブロック構文デコードループにマージすることにより、デコーダが、符号化されたブロックに対してのみＩＱ／ＩＤＣＴを実行し、分岐の数を減らすことができるようになる。全てのパラメータがＮＮによって再構成された後でも、従来のデコードプロセスは、複数のプロセッサで並列に実行することができる。いくつかの実施態様では、ＮＮベースのパラメータ予測は、パイプライン化を使用する別のデコードプロセスと並行して実行され得る。
【００７０】
図３に関して上記で説明したデコード方法は、単一のスレッドで実施し得る。あるいは、図３のデコード方法は、並列処理を実施することができる処理モジュールを用いて複数のスレッドで実施し得る。特に、ピクチャの異なるセクションを並行して処理し得る。本明細書で使用するとき、並列処理とは、ある程度、２つ以上の異なるタスクの処理が時間的に重複することを意味する。
【００７１】
コンピューティングデバイス
図６は、本開示の態様によるシステムを示す。本システムは、ユーザ入力デバイス６０２に結合されたコンピューティングデバイス６００を含み得る。ユーザ入力デバイス６０２は、コントローラ、タッチスクリーン、マイクロフォン、キーボード、マウス、ライトペン、またはユーザがシステムに制御データを入力することを可能にする他のデバイスであり得る。
【００７２】
コンピューティングデバイス６００は、例えば、シングルコア、デュアルコア、クアッドコア、マルチコア、プロセッサ−コプロセッサ、セルプロセッサなどの周知のアーキテクチャに従って構成され得る１つ以上のプロセッサユニット６０３を含み得る。コンピューティングデバイスはまた、１つ以上のメモリユニット６０４（例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、リードオンリーメモリ（ＲＯＭ）など）を含み得る。
【００７３】
プロセッサユニット６０３は、１つ以上のプログラムを実行することができ、その一部は、メモリ６０４に格納されてもよく、プロセッサ６０３は、例えば、データバス６０５を介してメモリにアクセスすることによって、メモリに動作可能に結合され得る。プログラムは、第１のＮＮ６１０の訓練を実施するように構成され得る。さらに、メモリ６０４は、第２のＮＮ６２１の訓練を実施するプログラムを含み得る。メモリ６０４はまた、ビデオをエンコード６０８及び／またはデコード６２２するためのプログラムを含み得る。メモリ６０４はまた、第１のＮＮモジュール６１０及び第２のＮＮモジュール６２１などのソフトウェアモジュールを含み得る。ＮＮの全体的な構造及び確率はまた、データ６１８として大容量記憶装置６１５に格納され得る。プロセッサユニット６０３は、大容量記憶装置６１５またはメモリ６０４に格納された１つ以上のプログラム６１７であって、プロセッサに、特徴データから第１のＮＮ６１０を訓練する方法２００及び／または第２のＮＮを訓練する方法３００を実行させる、１つ以上のプログラム６１７を実行するようにさらに構成される。本システムは、ＮＮ訓練プロセスの一部としてニューラルネットワークを生成し得る。これらのニューラルネットワークは、第１のＮＮモジュール６２１または第２のＮＮモジュール６１０の一部としてメモリ６０４に格納され得る。完成したＮＮは、メモリ６０４に格納され得、または大容量記憶装置６１５にデータ６１８として格納され得る。プログラム６１７（またはその一部）はまた、例えば、適切なプログラミングによって、図４及び図５の方法に従い、エンコードされていないビデオをエンコードし、またはエンコードされたビデオをデコードするように構成され得る。
【００７４】
コンピューティングデバイス６００はまた、入力／出力（Ｉ／Ｏ）６０７、回路、電源（Ｐ／Ｓ）６１１、クロック（ＣＬＫ）６１２、及びキャッシュ６１３などの周知のサポート回路を含み得る。これらは、例えばバス６０５を介して、システムの他の構成要素と通信することができる。コンピューティングデバイスは、ネットワークインタフェース６１４を含み得る。プロセッサユニット６０３及びネットワークインタフェース６１４は、適切なネットワークプロトコル、例えば、ＰＡＮのためのブルートゥース（登録商標）を介して、ローカルエリアネットワーク（ＬＡＮ）またはパーソナルエリアネットワーク（ＰＡＮ）を実装するように構成され得る。コンピューティングデバイスは、任意選択で、ディスクドライブ、ＣＤ−ＲＯＭドライブ、テープドライブ、フラッシュメモリなどの大容量記憶装置６１５を含み得、大容量記憶装置は、プログラム及び／またはデータを記憶し得る。コンピューティングデバイスはまた、システムとユーザとの間のインタラクションを容易にするためのユーザインタフェース６１６を含み得る。ユーザインタフェースは、ディスプレイモニタ、ヘッドマウントディスプレイ、７セグメントディスプレイまたは他のデバイスを含み得る。
【００７５】
コンピューティングデバイス６００は、電子通信ネットワーク６２０を介した通信を容易にするために、ネットワークインタフェース６１４を含んでもよい。ネットワークインタフェース６１４は、ローカルエリアネットワーク及びインターネットなどのワイドエリアネットワークを介して、有線通信または無線通信を実装するように構成され得る。デバイス６００は、ネットワーク６２０を介して、１つ以上のメッセージパケットによって、データ及び／またはファイルに対する要求の送信及び受信を行い得る。ネットワーク６２０を介して送信されるメッセージパケットは、メモリ６０４のバッファ６０９に一時的に格納され得る。
【００７６】
上記は、本発明の好ましい実施形態の完全な説明であるが、様々な代替、修正、及び均等物を使用することが可能である。したがって、本発明の範囲は、上述の説明を参照して決定されるべきでなく、代わりに、均等物のそれらの全範囲とともに添付の特許請求の範囲を参照して決定されるべきである。好ましいかどうかに関わらず、本明細書に説明された任意の特徴は、好ましいかどうかに関わらず、本明細書に説明された任意の他の特徴と組み合わされてよい。続く特許請求の範囲では、不定冠詞「Ａ」または「Ａｎ」は、明示的に特別の定めがない限り、冠詞に続く品目の１つ以上の数量を指す。添付の特許請求の範囲は、ミーンズプラスファンクションの限定が語句「するための手段（ｍｅａｎｓ  ｆｏｒ）」を使用し、所与の請求項に明示的に記載されない限り、係る限定を含むとして解釈されるべきではない。
【図１Ａ】
2021522756.tif 000003
【図１Ｂ】
2021522756.tif 000004
【図１Ｃ】
2021522756.tif 000005
【図２】
2021522756.tif 000006
【図３】
2021522756.tif 000007
【図４】
2021522756.tif 000008
【図５】
2021522756.tif 000009
【図６】
2021522756.tif 000010
【国際調査報告】
2021522756.tif 000011