(57)【要約】      （修正有）【課題】インターレイヤ転送の帯域幅及び必要メモリを低減する空間スケーラブル符号化システムを提供する。【解決手段】基本レイヤのより小さい解像度のビデオデータが基本レイヤエンコーダ２０２によって符号化されると、残差データ２０４、復元データ２０６、及び動きデータ２０８を含むインターレイヤデータが拡張レイヤエンコーダ２１０用に同時に生成される。インターレイヤデータは、拡張レイヤエンコーダ２１０に到達する前にアップサンプラエンジン２１２によって拡張レイヤ解像度にアップサンプリングされる。拡張レイヤは、アップサンプリングされたインターレイヤデータ情報を用いて符号化される。【選択図】図２
2019092179.tif 000002
【特許請求の範囲】
【請求項１】
スケーラブルビデオ符号化を実行するように構成されたシステムであって、
メモリと、
プロセッシングユニットと、を備え、
前記プロセッシングユニットは、
１つ以上のフレームを含むビデオデータを受信することと、
少なくとも１つのフレームを基本レイヤに符号化することと、
残差データ、復元データ及び動きデータの何れか又はこれらの組み合わせと、残差データを含むか否かを示すビットと、を含むインターレイヤデータを前記少なくとも１つのフレームに基づいて生成することと、
前記インターレイヤデータをアップサンプリングすることと、
前記少なくとも１つのフレームを、前記基本レイヤのブロックタイプに基づいて、アップサンプリングされた前記インターレイヤデータを用いて拡張レイヤに符号化することであって、前記基本レイヤのブロックタイプは、前記インターレイヤデータが前記残差データ又は前記復元データの何れを含むかを示す、ことと、
を行うように構成されており、
前記拡張レイヤの解像度は前記基本レイヤの解像度よりも高い、
システム。
【請求項２】
前記プロセッシングユニットは１つのエンコーダを含む、
請求項１のシステム。
【請求項３】
前記プロセッシングユニットは、基本レイヤエンコーダと、拡張レイヤエンコーダと、を含む、
請求項１のシステム。
【請求項４】
前記基本レイヤエンコーダは、前記少なくとも１つのフレームに基づいて前記インターレイヤデータを生成し、前記インターレイヤデータを前記拡張レイヤエンコーダに送信するように構成されている、
請求項３のシステム。
【請求項５】
前記インターレイヤデータは、複数のデータチャネルを介して前記拡張レイヤエンコーダに送信される、
請求項３のシステム。
【請求項６】
前記インターレイヤデータに含まれる前記残差データ又は前記復元データを送信するために、同じビット数の前記複数のデータチャネルが用いられる、
請求項５のシステム。
【請求項７】
前記拡張レイヤエンコーダは、前記インターレイヤデータをアップサンプリングし、前記少なくとも１つのフレームを、前記基本レイヤのブロックタイプに基づいて、アップサンプリングされた前記インターレイヤデータを用いて拡張レイヤに符号化するように構成されている、
請求項３のシステム。
【請求項８】
スケーラブルビデオ符号化を実行する処理システムにおいて用いられる方法であって、
１つ以上のフレームを含むビデオデータを受信することと、
少なくとも１つのフレームを基本レイヤに符号化することと、
残差データ、復元データ及び動きデータの何れか又はこれらの組み合わせと、残差データを含むか否かを示すビットと、を含むインターレイヤデータを前記少なくとも１つのフレームに基づいて生成することと、
前記インターレイヤデータをアップサンプリングすることと、
前記少なくとも１つのフレームを、前記基本レイヤのブロックタイプに基づいて、アップサンプリングされた前記インターレイヤデータを用いて拡張レイヤに符号化することであって、前記基本レイヤのブロックタイプは、前記インターレイヤデータが前記残差データ又は前記復元データの何れを含むかを示す、ことと、を含み、
前記拡張レイヤの解像度は前記基本レイヤの解像度よりも高い、
方法。
【請求項９】
前記処理システムは１つのエンコーダを含む、
請求項８の方法。
【請求項１０】
前記処理システムは、基本レイヤエンコーダと、拡張レイヤエンコーダと、を含む、
請求項８の方法。
【請求項１１】
前記基本レイヤエンコーダが、前記少なくとも１つのフレームに基づいて前記インターレイヤデータを生成し、前記インターレイヤデータを前記拡張レイヤエンコーダに送信することをさらに含む、
請求項１０の方法。
【請求項１２】
前記インターレイヤデータは、複数のデータチャネルを介して前記拡張レイヤエンコーダに送信される、
請求項１０の方法。
【請求項１３】
前記インターレイヤデータに含まれる前記残差データ又は前記復元データを送信するために、同じビット数の前記複数のデータチャネルが用いられる、
請求項１２の方法。
【請求項１４】
前記拡張レイヤエンコーダが、前記インターレイヤデータをアップサンプリングし、前記少なくとも１つのフレームを、前記基本レイヤのブロックタイプに基づいて、アップサンプリングされた前記インターレイヤデータを用いて拡張レイヤに符号化することをさらに含む、
請求項１０の方法。
【請求項１５】
命令を記憶するコンピュータ可読記憶媒体であって、
前記命令は、処理システムにおいて実行されると、スケーラブルビデオ符号化を実行する方法を処理システムに実行させ、
前記方法は、
１つ以上のフレームを含むビデオデータを受信することと、
少なくとも１つのフレームを基本レイヤに符号化することと、
残差データ、復元データ及び動きデータの何れか又はこれらの組み合わせと、残差データを含むか否かを示すビットと、を含むインターレイヤデータを前記少なくとも１つのフレームに基づいて生成することと、
前記インターレイヤデータをアップサンプリングすることと、
前記少なくとも１つのフレームを、前記基本レイヤのブロックタイプに基づいて、アップサンプリングされた前記インターレイヤデータを用いて拡張レイヤに符号化することであって、前記基本レイヤのブロックタイプは、前記インターレイヤデータが前記残差データ又は前記復元データの何れを含むかを示す、ことと、を含み、
前記拡張レイヤの解像度は前記基本レイヤの解像度よりも高い、
コンピュータ可読記憶媒体。
【請求項１６】
前記処理システムは１つのエンコーダを含む、
請求項１５のコンピュータ可読記憶媒体。
【請求項１７】
前記処理システムは、基本レイヤエンコーダと、拡張レイヤエンコーダと、を含む、
請求項１５のコンピュータ可読記憶媒体。
【請求項１８】
前記方法は、
前記基本レイヤエンコーダが、前記少なくとも１つのフレームに基づいて前記インターレイヤデータを生成し、前記インターレイヤデータを前記拡張レイヤエンコーダに送信することをさらに含む、
請求項１７のコンピュータ可読記憶媒体。
【請求項１９】
前記インターレイヤデータは、複数のデータチャネルを介して前記拡張レイヤエンコーダに送信される、
請求項１７のコンピュータ可読記憶媒体。
【請求項２０】
前記インターレイヤデータに含まれる前記残差データ又は前記復元データを送信するために、同じビット数の前記複数のデータチャネルが用いられる、
請求項１９のコンピュータ可読記憶媒体。
【請求項２１】
前記方法は、
前記拡張レイヤエンコーダが、前記インターレイヤデータをアップサンプリングし、前記少なくとも１つのフレームを、前記基本レイヤのブロックタイプに基づいて、アップサンプリングされた前記インターレイヤデータを用いて拡張レイヤに符号化することをさらに含む、
請求項１７のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スケーラブルなビデオアプリケーションに関連し、より具体的には、スケーラブルなビデオアプリケーションにおいて帯域幅を最小化することに関連する。
【背景技術】
【０００２】
現在、民生用電子機器を使用したビデオデータのリモート転送および表示は、重要な開発分野となっている。一般的に、異なる表示性能を有する機器間でかかるストリーミングを可能にすることが望ましい。解像度のより高いビデオの到来に伴い、転送可能なデータ量を増やすためにビデオストリームを圧縮することが望ましいが、これと同様に、解像度のより低いビデオストリームしか許容できない機器や、解像度のより高い信号の表示が不可能なスループットまたは遅い処理性能を有する機器を用いて、解像度のより高いビデオストリームを視聴可能にすることも望ましい。このため、スケーラブルなビデオストリームの人気が高まっている。一般に、結果として生じるサブストリームが、いくつかのターゲットデコーダのためにもう１つの有効なビットストリームを形成し、当該サブストリームが、完全なオリジナルビットストリームの品質以下であるが、残りのデータのより少ない量を考慮すれば高い復元品質でソースコンテンツを表すような方法で、ビデオビットストリームの一部を取り除くことができる場合には、このビデオビットストリームは、スケーラブルと呼ばれる。
【０００３】
スケーラビリティの通常モードは、時間、空間および品質のスケーラビリティである。空間スケーラビリティ（また、空間解像度と呼ばれる）は、ビットストリームのサブセットが、ソースコンテンツを、減少した画像サイズで表す場合を言う。時間スケーラビリティ（また、時間解像度と呼ばれる）は、ビットストリームのサブセットが、ソースコンテンツを、減少したフレームレートで表す場合を言う。品質スケーラビリティでは、サブストリームは、完全なビットストリームと同じ空間−時間解像度を、より低い忠実度（ｆｉｄｅｌｉｔｙ）で提供する。ここで、忠実度とは、よく非公式に信号対雑音比（ＳＮＲ）と呼ばれる。また、品質スケーラビリティは、忠実度スケーラビリティまたはＳＮＲスケーラビリティとよく呼ばれる。
【０００４】
空間、品質および時間スケーラビリティをリアルタイムでサポートするシステムにおいて、メモリ帯域幅は、全体的なシステム性能における制限因子となる場合がある。したがって、メモリ帯域幅の問題を増大させる可能性のある読み出し／書き込み動作の影響を低減または除去する方法の必要性が存在する。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書に記載された実施形態のいくつかでは、フレームを、前記フレームのデータを用いて、最適よりも小さい第１のレイヤ解像度に符号化する第１の符号化エンジンを含む、スケーラブルビデオ符号化のシステムおよび方法が提示される。第１の符号化エンジンは、最適なレイヤ解像度へのフレームの符号化を予測するデータを生成する。第２の符号化エンジンは、フレームを、第１の解像度レイヤよりも大きい第２のレイヤ解像度に符号化する。第２の符号化エンジンは、ビデオ圧縮率を改善するために、第１の符号化エンジンで生成された予測データを使用する。かかる実施形態のシステムおよび方法は、第１の符号化エンジンと第２の符号化エンジンとの間で転送されるより少ない予測データを使用することを含む。これにより、より少ないフレームデータの使用によって、消費電力を低減することができる。
【０００６】
いくつかの実施形態では、システムおよび方法は、フレームおよび予測データを記憶し取り出すための、エンコーダ内のメモリをさらに含む。第２のエンコーダは、標準的なＡＶＣと比較して、予測データのためにより多くのメモリを利用するが、追加されるメモリは、第２のレイヤ解像度におけるデータの１フレームよりも少ない。
【０００７】
本発明の他の態様、利点および新たな特徴は、本明細書に添付した図面と共に考慮される場合に、以下の本発明の詳細な説明によってより明白になるであろう。
【図面の簡単な説明】
【０００８】
【図１】本発明によるコンピューティングシステムのブロック図である。
【図２】本発明による空間符号化エンジンのブロック図である。
【図３】本発明による空間エンコーダのブロック図である。
【図４】本発明による図３の空間エンコーダの論理図である。
【図５】本発明による拡張および基本レイヤの線図である。
【図６】本発明による処理フレームのブロック図である。
【発明を実施するための形態】
【０００９】
本発明の実施形態は、本明細書に記載されるように、従来の方法の問題に対する解決手段を提供する。以下の説明では、様々な実施例が示されているが、何れの実施例も限定することを意図していない。実施形態は、標準的であって、カスタマイズされていないコーデックを用いて、リモートビデオ会議システム（有線または無線の何れも）を実装することを含む。これらの実施形態の利点は、２つ以上の異なる解像度のディスプレイが、同一ユーザのビデオソースから対応するビデオ信号を受け取るように、異なる接続帯域幅および／または異なる受信装置を有する３人以上のユーザ間のコミュニケーションに関連する。例示的なビデオ解像度ストリームは、スケーラビリティのモードごとの高解像度および低解像度を表す以下の表１に示す例を含むことができるが、これに限定されない。
【表１】
2019092179.tif 000003
モードごとの高解像度および低解像度の例は、高ビデオストリームおよび低ビデオストリームの各々において示されることは、当業者によって理解されよう。スケーラビリティのモードは、高スケーラビリティオプションおよび低スケーラビリティオプションの全ての組み合わせが可能であるように混合され得る。
【００１０】
本発明のいくつかの実施形態において、本発明を具体化するスケーラブルビデオ符号化（ＳＶＣ：Ｓｃａｌａｂｌｅ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）は、２人よりも多いユーザが関係しているネット会議を目的としている。１つのビデオソースが異なるディスプレイ解像度を２人以上のクライアントに提供する場合において、本発明は、これらの異なった時間解像度および／または空間解像度をサポートしてビデオストリームを送る環境で機能する。また、ＳＶＣは、サーバがビデオをＳＶＣフォーマットで格納するような、ユーザとサーバとの間のポイント・ツー・ポイントのストリーミングアプリケーションで役立つ。ユーザは、利用可能な帯域幅および受信装置に従って、利用可能な解像度の中から解像度を選択することができる。
【００１１】
説明目的のために、「Ｈ．２６４」は、ＭＰＥＧ−４  Ｐａｒｔ  １０またはＭＰＥＧ−４  ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）としても知られるビデオ圧縮の規格を参照する。Ｈ．２６４は、ＩＳＯ／ＩＥＣのＭｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）と共にＩＴＵ−ＴのＶｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）によって開発された、ブロック指向の動き推定に基づくコーデックの１つである。
【００１２】
ビデオ会議タイプのアプリケーションで人気を集めているスケーラブルビデオ符号化（ＳＶＣ）は、Ｈ．２６４の機能に含まれている。多くの業界大手企業が、ビデオ会議のために、ＵＣＩＦ（Ｕｉｖｅｒｓａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｉｎｔｅｒｏｐ  Ｆｏｒｕｍ）のＳＶＣを使用して規格化した（または、規格をサポートした）。
【００１３】
ＳＶＣベースのビデオ会議が広く採用されることが予想される。しかしながら、ＳＶＣ、特にＳＶＣの空間モード（すなわち、ＳＶＣ空間）は、非常に多くのメモリ帯域幅を要する。例えばＡＳＩＣ（特定用途向け集積回路）などの集積回路、特にローエンドのノートブック／タブレットのチップにおいてＳＶＣ空間モードを実装するためには、メモリ読み書き（Ｒ／Ｗ）帯域幅とメモリ読み書きに関連する電力消費とを低減させることが望ましい。好都合なことに、本発明の実施形態は、以下の４つの革新的な機能を単独または共に実装することによって、これらの問題を解決する。
【００１４】
１．拡張レイヤエンコーダでアップサンプリングを実行する。これにより、タスクを分離する従来の手法と比較して、書き込み帯域幅を最大で７５％節約することができる。
【００１５】
２．ハードウェアアーキテクチャが内部バッファを含む場合には、メモリとのデータ交換を排除するために内部バッファを使用する。このようにして、上記のポイント１を、内部バッファサイズを劇的に低減するためにも用いることができる。
【００１６】
３．非トップ（最適よりも低い、または最高ではないことを意味する）の解像度のレイヤの１６×１６画素のマクロブロック（ＭＢ）を符号化する場合には、現在のＭＢタイプに従って、インターレイヤ（Ｉｎｔｅｒ−ｌａｙｅｒ）イントラ復元（Ｉｎｔｒａ−ｒｅｃｏｎｓｔｒｕｃｔｅｄ）データ、または、インターレイヤインター残差（Ｉｎｔｅｒ−ｒｅｓｉｄｕａｌ）データを１つのバッファに書き出す。このバッファの各エントリは１６ビットであるため、拡張レイヤによるこのバッファのダイレクト・メモリ・アドレッシング（ＤＭＡ）読み出しが単純化される。これは、ＳＶＣ規格に従って、復元データのデータサイズが８ビットであるのに対し、残差データが９ビットであるためである。この方法で、読み出し／書き込み帯域幅は、従来の方法で実現される帯域幅から最大で３分の１節約される。
【００１７】
４．記憶装置と転送効率とを改善するために、符号ビットが残差データから分離され、１６ビットの代わりに８ビットが残差データのために使用され得る。
【００１８】
５．メモリ帯域幅をさらに節約するために、書き出されるインターレイヤデータは、例えばＺＩＰファイルフォーマット圧縮などではあるがこれに限定されない従来のデータ圧縮アルゴリズムを使用して、任意に圧縮される。
【００１９】
以下の説明では、低レイテンシのアプリケーションを実装する実施形態を説明を可能にするとともにこの実施形態を完全に理解するために、いくつかの具体的な詳細が紹介される。しかしながら、当業者は、これらの実施形態を、１つ以上の具体的な詳細を要することなく実施することができ、または、他の構成要素、システムなどと共に実施することができることを認識するであろう。他の事例では、開示された実施形態の態様が不明瞭になるのを避けるために、周知の構成または動作については示さず、または詳細に説明しない。
【００２０】
コンピュータおよび他のこのようなデータ処理装置は、制御処理装置（ＣＰＵ）として一般的に知られる少なくとも１つの制御プロセッサを有する。かかるコンピュータおよび処理装置は、一般的に、メモリ、記憶装置、入力装置および出力装置を有し得る環境で動作する。かかるコンピュータおよび処理装置は、様々なタイプの専門的な処理に使用され、処理装置と共に配置され、または例えば出力装置に含まれるなどのように外部に配置され得る、グラフィックス・プロセッシング・ユニット（ＧＰＵ）などの他のプロセッサを有してもよい。例えば、ＧＰＵは、画像処理演算に特に適するように設計されている。ＧＰＵは、一般的に、例えばデータ並列処理において、並列データストリーム上で同じ命令を実行することに理想的に適している多重処理要素を備える。一般的に、ＣＰＵは、ホストまたは制御プロセッサとして機能し、画像処理などの専門的な機能をＧＰＵなどの他のプロセッサに引き渡す。
【００２１】
各ＣＰＵが多重処理コアを有するマルチコアＣＰＵの可用性をもって、各ＣＰＵでは、専門的な機能に使用され得る実質的な処理能力を利用可能である。マルチコアＣＰＵまたはＧＰＵの計算コアの１つ以上は、同一ダイの一部（例えば、ＡＭＤのＦｕｓｉｏｎ（商標））、または異なるダイ（例えば、ＮＶＩＤＩＡ  ＧＰＵを有するＩｎｔｅｌのＸｅｏｎ（商標））に存在し得る。最近、ＣＰＵおよびＧＰＵの両方の特性を有するハイブリッドコア（例えば、ＣｅｌｌＳＰＥ（商標）、Ｉｎｔｅｌ  Ｌａｒｒａｂｅｅ（商標））が、汎用ＧＰＵ（ＧＰＧＰＵ）スタイルの計算に対して一般に提案されている。ＧＰＧＰＵスタイルの計算は、主に制御コードを実行し、処理能力のクリティカルなデータ並列コードをＧＰＵに移動させるようにＣＰＵを使用することを提唱している。ＧＰＵは、主にアクセラレータとして使用される。マルチコアＣＰＵとＧＰＧＰＵ計算モデルとの組み合わせは、アクセラレータターゲットとしてＣＰＵコアおよびＧＰＵコアの両方をカバーする。マルチコアＣＰＵコアの多くは、多くの分野でＧＰＵに相当する性能を有する。例えば、多くのＣＰＵコアの１秒当たりの浮動小数点演算（ＦＬＯＰＳ）は、現在では、いくつかのＧＰＵコアのＦＬＯＰＳに相当する。
【００２２】
ＣＰＵおよびＧＰＵプロセッサで同一または類似のコードベースの使用を可能にすることによって、および、かかるコードベースのデバッグを容易にすることによって、本発明の実施形態は、実質的な利点をもたらすことができる。本発明は、特定のアプリケーションに対する実例となる実施形態を用いて本明細書で説明されるが、これに限定されないことが理解されるべきである。本明細書に提供された教示にアクセスする当業者であれば、さらなる修正、応用、本発明の範囲内の実施形態、および、本発明が著しく有用であるさらなる分野の実施形態を認識するであろう。
【００２３】
本発明の実施形態は、任意の計算機システム、計算装置、エンターテイメントシステム、メディアシステム、ゲームシステム、通信装置、携帯情報端末、または、１つ以上のプロセッサを使用する任意のシステムで使用され得る。本発明は、特に、ヘテロジニアス・コンピューティング・システムを備えるシステムにおいて有用である。本明細書で使用される「ヘテロジニアス・コンピューティング・システム」という用語は、複数種類のプロセッサが利用可能なコンピューティングシステムを意味する。
【００２４】
本発明の実施形態は、例えばＧＰＵとＣＰＵなどの異なるプロセッサ上で同一のコードベースが実行されることを可能にする。１つのタイプのプロセッサ用に開発されたコードは、ほぼまたは全く追加の労力無しに他のタイプのプロセッサに配置され得るので、本発明の実施形態は、例えば、マルチコアＣＰＵおよび／またはＧＰＵを有する処理システムで特に有利となり得る。例えば、ＧＰＵカーネルとして知られる、ＧＰＵでの実行用に開発されたコードは、本発明の実施形態を使用して、ＣＰＵで実行されるように配置され得る。
【００２５】
本発明の実施形態によるヘテロジニアス・コンピューティング・システム１００の一例が図１に示されている。ヘテロジニアス・コンピューティング・システム１００は、例えばプロセッサ１０２などの１つ以上の処理装置を含み得る。ヘテロジニアス・コンピューティング・システム１００は、少なくとも１つのシステムメモリ１０４と、少なくとも１つの永続的記憶装置１０６と、少なくとも１つのシステムバス１０８と、少なくとも１つの入力装置１１０および出力装置１１２と、を含み得る。
【００２６】
図２に示すように、本発明の実施形態によれば、ヘテロジニアスコンピューティングに適したタイプの処理装置は、カリフォルニア州Ｓａｎ  ＪｏｓｅのＡＭＤによってＦｕｓｉｏｎというブランド名で販売されているアクセラレーテッド・プロセッシング・ユニット（ＡＰＵ）である。ヘテロジニアス処理装置は、１つ以上のＣＰＵと、ワイドＳＩＭＤ（Ｓｉｎｇｌｅ  ｉｎｓｔｒｕｃｔｉｏｎ  ｍｕｌｔｉｐｌｅ  ｄａｔａ）プロセッサ、および、以前は別々のＧＰＵによって処理されていた機能を実行するユニファイド・ビデオ・デコーダなどの１つ以上のＧＰＵを含む。ＧＰＵの構造および機能を参照する場合、かかる機能はＳＩＭＤによって実行されることが理解されるであろう。ヘテロジニアス処理装置は、システムメモリにアクセスする少なくとも１つのメモリコントローラを含んでもよく、ＧＰＵとＣＰＵとの間でシェアされるメモリと、例えばコントローラハブを通して入力装置および出力装置の通信を処理するプラットフォームインタフェースと、を提供する。
【００２７】
本発明によるヘテロジニアスＧＰＵ能力を提供するために、画像処理命令を実行するワイドＳＩＭＤプロセッサを含んでもよく、本発明を実装するために、ＣＰＵから分離した個別のＧＰＵを含んでもよい。しかしながら、当業者によって理解されるように、個別のＧＰＵを用いた本発明の実装では、さらなる遅延を経験するであろう。
【００２８】
好都合なことに、このタイプのアーキテクチャは、ＳＶＣ（スケーラブルビデオ符号化）において空間スケール符号化および／または復号化を実装するソリューションを提供するのによく適している。Ｈ．２６４規格によれば、ＳＶＣのＨ．２６４実装は、空間、品質および時間のスケーラビリティをサポートする。
【００２９】
本発明は、エンコーダおよびデコーダの両方に対するＳＶＣ実装の改良として、外部メモリアクセスを低減するために空間スケーラビリティをサポートすることに関して以下に説明される。
【００３０】
図２は、空間スケール符号化２００のハードウェア実装に関するデータフローのブロック図である。最初に、基本レイヤのより小さい解像度が基本レイヤエンコーダ２０２によって符号化されると、残差データ２０４、復元データ２０６および動きデータ２０８を含むインターレイヤデータが、拡張レイヤエンコーダ２１０用に同時に生成される。本発明の実施形態では、エンコーダ２０２は、拡張レイヤエンコーダ２１０の機能を実行する。インターレイヤデータは、拡張レイヤエンコーダ２１０に到達する前に、アップサンプラエンジン２１２によって拡張レイヤ解像度にアップサンプリングされる。最終的に、拡張レイヤは、拡張レイヤエンコーダ２１０によって推定され、アップサンプリングされたインターレイヤデータ情報を用いて符号化される。基本レイヤエンコーダ２０２および拡張レイヤエンコーダ２１０の出力は、最終的なビットストリーム２１４に統合される。その後、エンコーダ２０２，２１０は、時分割多重化により統合される。
【００３１】
本発明の実施形態は、メモリ帯域幅のスループットを改善する。Ｈ．２６４仕様のように、エンコーダは、基本レイヤのマクロブロック（ＭＢ）タイプに基づいて、拡張レイヤ予測のための残差または復元データを選択する。これらの２種類のデータは、一般に、相互に排他的であるため、同じＭＢに使用されない。ＭＢ＿ＴＹＰＥに基づいて残差または復元データを出力できることが発見されている。ＭＢ＿ＴＹＰＥがイントラの場合には復元データが選択され、そうでない場合には残差データが選択される。
【００３２】
さらに、例えばＹＵＶ４２０ソースフォーマットなどではあるがこれに限定されない従来のソースフォーマットが使用される場合には、生成される残差データは９ビットであり、復元データは８ビットであることが理解されるであろう。一方、９ビットのデータは、メモリの８ビットチャネルを使用してデータを記憶および転送するのには適していない。さらに、９番目のビットは、残差データとしてマークする符号ビットフラグであることと、符号ビットが残差データから分離される場合には、残差データに対して１６ビットの代わりに８ビットを使用できることが理解される。符号ビットは、このタスクを処理するのに十分な４８バイト／ＭＢのリザーブでもう１つの場所に保存される。図３を参照すると、空間エンコーダ３００の実施形態は、出力マルチプレクサ３０２を、ＭＢ＿ＴＹＰＥに基づいて残差データまたは復元データの何れかを選択的に送る基本レイヤエンコーダ３０４の出力部に含む。出力マルチプレクサは、基本レイヤエンコーダ３０４とは別に加えられ得るが、出力マルチプレクサ３０２の性能は、基本レイヤエンコーダ３０４と共に含まれる場合に最適となることが当業者によって理解されるであろう。このように、１つの８ビットチャネル３０６が、残差データおよび復元データを、動きデータ３０８および残差の符号ビットチャネル３１０と共に送るので、インターレイヤは、１つのより小さい８ビットチャネルで伝送される。これらのより効率的なチャネルは、データを、アップサンプラ３１４を介して拡張レイヤエンコーダ３１２に送る。帯域幅をさらに低減するために、実施形態のアップサンプラエンジン（以下ＵＰＳと記す）３１４は、拡張レイヤエンコーダ３１２内に配置されている。
【００３３】
図４を参照すると、ＳＶＣ空間スケーラビリティエンジン４００のデータフローがよりよく理解される。データフローは、計算要件と、様々な要素間のデータフロー効率との理解に到達する。Ｈ．２６４エンコーダにおける様々な機能要素の計算要件は、インターレイヤデータ４０２と現在の画像４０４とを受け取ることを含む。アップサンプラ（ＵＰＳ）４０６は、インターレイヤデータ４０２をアップサンプリングし、導線４１０で残差データを出力し、導線４０８で復元データを出力する。ＵＰＳエンジン４０６は、現在のＭＢに対して基本レイヤの対応する残差データをアップサンプリングするために双線形フィルタを使用し、復元イントラデータをアップサンプリングするために４タップフィルタを使用する。また、ＵＰＳは、動き推定４２２のために、動きベクトル（ＭＶ）４２０をアップサンプリングする。
【００３４】
ＳＶＣは、ＵＰＳの出力を使用して、空間スケールのために、３つのインターレイヤ予測ツールを提供する。インターレイヤイントラ予測はイントラモード用であり、インターレイヤ残差予測およびインターレイヤ動き予測は、インターモード用である。基本レイヤのＭＢタイプに依存して、以下が適用される。
【００３５】
基本レイヤのＭＢタイプがイントラと等しい場合には、符号化のフローは、以下の方法で定義される。
【００３６】
ベース・モード・フラグが真に設定される場合には、インターレイヤイントラ予測ツールが有効である。このモードでは、残差は、アップサンプリングされた基本レイヤ復元データから現在のＭＢを差し引くことによって生成される。ここで、導線４１８のデータは有効ではなく、ゼロデータ４１２が用いられる。
【００３７】
ベース・モード・フラグが偽に設定される場合には、標準的なＨ．２６４イントラのフローが呼び出される。
【００３８】
基本レイヤのＭＢタイプがインターと等しい場合には、異なるステップが次のように規定される。
【００３９】
ベース・モード・フラグが１に設定される場合には、インターレイヤ動き予測が有効である。基本レイヤＭＶ（図示されない）は予測値として使用され、現在のＭＢに対するＭＶはＭＶ予測値と等しく設定される。
【００４０】
ベース・モード・フラグが０に設定され、且つ、動き予測フラグが１である場合には、基本レイヤＭＶは、予測値として使用されるが、現在のＭＶとＭＶ予測値との間の差（ＭＶＤ）を設定し得る。
【００４１】
ベース・モード・フラグおよび動き予測フラグがともに０である場合には、標準的なＨ．２６４ＭＶ予測が適用され、基本レイヤＭＶは使用されない。
【００４２】
残差予測フラグが１である場合には、インターレイヤ残差予測が有効である。最終的な残差は、ＭＣ出力と、アップサンプリングされた基本レイヤ残差４１８との両方を差し引く現在のＭＢとして計算される。残差予測の効果を推定するために、インターレイヤ残差は、ＭＥに導線４２０を供給する。
【００４３】
残差予測フラグが０である場合には、基本レイヤ残差は使用されず、当該残差は、ＭＣ出力から現在のＭＢを差し引くことによって単に生成される。
【００４４】
その後、残差データは、整数／逆整数変換エンジン４２８，４３０（Ｔ／ＩＴ）および量子化／逆量子化エンジン４３２，４３４（Ｑ／ＩＱ）によって処理されることにより、符号化される。エンコーダの出力は、出力マルチプレクサ４３６およびデブロッキングフィルタ（ＤＢＦ）４３８に送られる。復元された画像４４０は、参照画像４２６となる。出力マルチプレクサ４３６は、インターレイヤデータを上位レイヤ４４２に送る。
【００４５】
当業者は、図４がＳＶＣ空間スケールの全ての詳細を示したわけではなく、さらなる詳細については上記のＨ．２６４仕様書を参照することができるのを理解するであろう。
【００４６】
図５を参照すると、アップサンプリングに対する２倍スケールの実施例５００が示されている。しかしながら、拡張レイヤ５１０の１６×１６のＭＢ５０８を予測するためには、基本レイヤ５０６の８×８領域５０４よりもむしろ１２×１２領域５０２が必要とされることは理解されるであろう。
【００４７】
フレーム上でのＳＶＣ実装６００を示す図６を参照すると、ＳＶＣ実装は、時間スケール、品質スケールおよび空間スケールを含む。一方、本明細書に説明された実施形態は、空間スケールにのみフォーカスする。実際には、時分割多重化を用いて空間スケールを実装するために、２つのセッションを使用することが当業者によって理解されるであろう。
【００４８】
セッション０の第１のタイムスロットの間、より低い解像度レイヤが符号化される。そして、インターレイヤデータはメモリに格納される。
【００４９】
セッション１の次のタイムスロットの間、同一のハードウェアエンコーダは、メモリからインターレイヤデータを取り出し、より高い解像度レイヤの符号化を開始する。
【００５０】
空間スケール残差／復元バッファは、２つの部分（すなわち、インターレイヤ残差／復元バッファと、インターレイヤ残差に対する符号バッファと）に分類される。
【００５１】
インターレイヤ残差／復元バッファは、図５を参照して説明したように、拡張レイヤで１６×１６のＭＢを補間するために、１２×１２の領域が必要とされる。このことは、基本レイヤの８×８ブロックに対して上／下／右／左の全ての方向に２つのさらなる画素が必要とされていることを理解し得る。
【００５２】
エンコーダ実施形態において、メモリ内のデータは８×８グラニュールで保存されるので、実際には、実装で必要とされる領域は２４×２４であることが理解されるであろう。
【００５３】
インターレイヤ残差の符号バッファに関して、符号バッファは、上述したように同一の８×８の格納グラニュールに従う。
【００５４】
これらの２つのバッファに関して、ドライブは、エンコーダステータスをチェックする。拡張レイヤは、対応する基本レイヤが行われた後でのみ符号化され得る。
【００５５】
帯域幅に対する結果は、本発明の実施形態による残差および復元データに対する帯域幅節約を示すための実施例として、５４０ｐ＠３０ｆｐｓから１０８０ｐ＠３０ｆｐｓへのスケーリングをとる例から見られる。
【００５６】
この実施例では、次の変数を有する。
【表２】
2019092179.tif 000004
【００５７】
最適化無しでの帯域幅（基本レイヤでアップスケーリングし、残差および復元データの両方がメモリに送られる）。
【００５８】
書き込み：（１９２０＊１０８８＊１．５＊１＊３０＋１９２０＊１０８８＊１．５＊２＊３０）／１００００００＝２８２メガバイト／秒
【００５９】
読み出し：（１９２０＊１０８８＊１．５＊１＊３０＋１９２０＊１０８８＊１．５＊２＊３０）／１００００００＝２８２メガバイト／秒
【００６０】
最適化後の帯域幅は次のようになる。
【００６１】
書き込み：（９６０＊５４４＊１．５＊１＊３０＋（９６０／１６）＊（５４４／１６）＊（３８４／８）＊３０）／１００００００＝２６メガバイト／秒
【００６２】
読み出し：（９６０＊５４４＊１．５＊１＊３０＋（９６０／１６）＊（５４４／１６）＊（３８４／８）＊３０）＊３／１００００００＝７９メガバイト／秒
【００６３】
結果として、書き込み帯域幅の９０％の節約を達成し、読み出し帯域幅の７０％の節約を達成する。
【００６４】
さらにメモリを節約するために、ＺＩＰまたは他の実行レベルの圧縮ツールを使用して、出力データを圧縮する追加のオプションを用いてもよいことが理解される。
【００６５】
最終的に、最高の性能のために、メモリとのデータ交換を除去するための内部バッファが追加されてもよい。ハードウェアが、高速のプロセッサまたは上記のヘテロジニアス・コンピューティング・プラットフォームとして構成される場合には、上記と同様に達成可能である。
【００６６】
本発明の実施形態において、上記のハードウェアは、非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）記憶媒体に記憶された命令を実行するプロセッサを使用して実装され得る。当業者は、回路を記述するためのコードであるハードウェア記述言語（ＨＤＬ）を用いて、命令が作成され得ることを理解し得る。ＨＤＬの代表的な用途は、設計者が製造に引き渡す前の設計のシミュレーションである。最も人気が高い２つのＨＤＬは、ＶＨＳＩＣハードウェア記述言語（ＶＨＤＬ）およびＶＥＲＩＬＯＧである。ＶＨＤＬは、米国国防総省によって開発され、オープンスタンダードである。ＶＥＲＩＬＯＧは、Ｏｐｅｎ  ＶＥＲＩＬＯＧ  Ｉｎｔｅｒｎａｔｉｏｎａｌ（ＯＶＩ）と呼ばれ、民間団体によって開発された工業規格であって、現在ではＩＥＥＥ規格１３６４として参照されるオープンスタンダードである。Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｃｅｓｓ  Ｇｒｏｕｐ（ＪＴＡＧ）準拠機器を記述するＶＥＲＩＬＯＧコードで書かれたファイルは、ＶＥＲＩＬＯＧネットリストと呼ばれる。ＶＨＤＬは、ＩＥＥＥ規格１０７６．１によって規定されたＨＤＬである。バウンダリスキャン記述言語（ＢＳＤＬ）は、ＶＨＤＬのサブセットであって、ＩＥＥＥ規格１１４９．１バウンダリ・スキャン・アーキテクチャが機器内でどのように実装され動作するかを記述するために、標準的な機械および人が可読なデータフォーマットを提供する。記述されたあらゆるタイプのＨＤＬは、ハードウェア記述を表す命令を作成するために使用され得る。
【００６７】
本発明は、代表的な実施形態に関して記述されているが、これに限定されない。むしろ、添付された特許請求の範囲は、本発明と均等な範囲および限界から外れることなく当業者によってなされ得る本発明の他の変形および実施形態を、総括的に含むと解釈されるべきである。
【図１】
2019092179.tif 000005
【図２】
2019092179.tif 000006
【図３】
2019092179.tif 000007
【図４】
2019092179.tif 000008
【図５】
2019092179.tif 000009
【図６】
2019092179.tif 000010