(57)【要約】スケーラブルな高スループットビデオエンコーダが本明細書で説明される。複数の専用のハードウェアビデオエンコーダは、各ビデオエンコーダがビデオフレームを符号化し、スタガーまたは遅延がプログラム可能な数のマクロブロック行である、スタガー状の並列アーキテクチャで実行する。方法の一例では、第１のビデオエンコーダは、フレームの第１のｘマクロブロック行の符号化を終了した後に、次の未処理フレームのマクロブロック行の符号化を開始するように、第２のビデオエンコーダに信号で知らせる。両方のビデオエンコーダは、同期してスタガー状に並列に符号化を続行する。フレームの最後に、第１のビデオエンコーダは、別の未処理フレームのｘマクロブロック行の符号化を開始する。【選択図】図２
2016506662.tif 000002
【特許請求の範囲】
【請求項１】
第１のエンコーダを使用してフレームを符号化することと、
前記第１のエンコーダが前記フレームの所定数のマクロブロック行の符号化を完了した後に、第２のエンコーダを使用して次のフレームを符号化することであって、前記第１のエンコーダ及び前記第２のエンコーダは、同期してスタガー状に並列に動作する、ことと、
を含む、符号化の方法。
【請求項２】
前記所定数は、前記フレームのマクロブロック行の数に満たない、請求項１に記載の方法。
【請求項３】
前記所定数のマクロブロック行は、１〜１０のマクロブロック行である、請求項１に記載の方法。
【請求項４】
前記第１のエンコーダは、前記次のフレームの符号化をいつ開始するのかを、前記第２のエンコーダに信号で知らせる、請求項１に記載の方法。
【請求項５】
前記エンコーダは、前記別のエンコーダのための基準データを生成し、前記別のエンコーダによる使用のために前記基準データをメモリに記憶する、請求項１に記載の方法。
【請求項６】
第１のエンコーダを使用してフレームを符号化することと、
第２のエンコーダを使用して次のフレームを符号化することであって、前記第１のエンコーダ及び前記第２のエンコーダは、同期してスタガー状に並列に動作する、ことと、
を含み、
前記スタガーは所定数のマクロブロック行である、
符号化の方法。
【請求項７】
前記所定数は、前記フレームのマクロブロック行の数に満たない、請求項６に記載の方法。
【請求項８】
前記所定数のマクロブロック行は、１〜１０のマクロブロック行である、請求項６に記載の方法。
【請求項９】
前記第１のエンコーダは、前記次のフレームの符号化をいつ開始するのかを、前記第２のエンコーダに信号で知らせる、請求項６に記載の方法。
【請求項１０】
前記第１のエンコーダは、前記第２のエンコーダのための基準データを生成し、前記第２のエンコーダによる使用のために前記基準データをメモリに記憶する、請求項６に記載の方法。
【請求項１１】
メモリと、
少なくとも２つのエンコーダと、
フレームを符号化するように構成された、前記少なくとも２つのエンコーダのうち１つのエンコーダと、
前記１つのエンコーダが前記フレームの所定数のマクロブロック行の符号化を完了した後に、次のフレームを符号化するように構成された、前記少なくとも２つのエンコーダのうち別のエンコーダであって、前記１つのエンコーダと前記別のエンコーダとが、同期してスタガー状に並列に動作する、別のエンコーダと、を備える、
デバイス。
【請求項１２】
前記所定数は、前記フレームのマクロブロック行の数に満たない、請求項１１に記載のデバイス。
【請求項１３】
前記所定数のマクロブロック行は、１〜１０のマクロブロック行である、請求項１１に記載のデバイス。
【請求項１４】
前記１つのエンコーダは、前記次のフレームの符号化をいつ開始するのかを、前記別のエンコーダに信号で知らせる、請求項１１に記載のデバイス。
【請求項１５】
前記１つのエンコーダは、前記別のエンコーダのための基準データを生成し、前記別のエンコーダによる使用のために前記基準データを前記メモリに記憶する、請求項１１に記載のデバイス。
【請求項１６】
メモリと、
複数のエンコーダと、
前記複数のエンコーダのうち、フレームを符号化するように構成されたエンコーダと、
前記複数のエンコーダのうち、次のフレームを符号化するように構成された別のエンコーダであって、前記エンコーダと前記別のエンコーダとが、同期してスタガー状に並列に動作し、前記スタガーが所定数のマクロブロック行である、別のエンコーダと、を備える、
デバイス。
【請求項１７】
前記所定数は、前記フレームのマクロブロック行の数に満たない、請求項１６に記載のデバイス。
【請求項１８】
前記所定数のマクロブロック行は、１〜１０のマクロブロック行である、請求項１６に記載のデバイス。
【請求項１９】
前記エンコーダは、前記次のフレームの符号化をいつ開始するのかを、前記別のエンコーダに信号で知らせる、請求項１６に記載のデバイス。
【請求項２０】
前記エンコーダは、前記別のエンコーダのための基準データを生成し、前記別のエンコーダによる使用のために前記基準データを前記メモリに記憶する、請求項１６に記載のデバイス。
【請求項２１】
ソースデバイスから宛先デバイスにデータを送信するためのシステムであって、
メモリと、
少なくとも２つのエンコーダと、
前記ソースデバイスから受信したフレームを符号化するように構成された、前記少なくとも２つのエンコーダのうち１つのエンコーダと、
前記１つのエンコーダが前記フレームの所定数のマクロブロック行の符号化を完了した後に、前記ソースデバイスから受信した次のフレームを符号化するように構成された、前記少なくとも２つのエンコーダのうち別のエンコーダであって、前記１つのエンコーダと前記別のエンコーダとが、同期してスタガー状に並列に動作する、別のエンコーダと、を備える、
システム。
【請求項２２】
前記所定数は、前記フレームのマクロブロック行の数に満たない、請求項２１に記載のシステム。
【請求項２３】
前記所定数のマクロブロック行は、１〜１０のマクロブロック行である、請求項２１に記載のシステム。
【請求項２４】
前記１つのエンコーダは、前記次のフレームの符号化をいつ開始するのかを、前記別のエンコーダに信号で知らせる、請求項２１に記載のシステム。
【請求項２５】
前記１つのエンコーダは、前記別のエンコーダのための基準データを生成し、前記別のエンコーダによる使用のために前記基準データを前記メモリに記憶する、請求項２１に記載のシステム。
【請求項２６】
ソースデバイスから宛先デバイスにデータを送信するためのシステムであって、
メモリと、
複数のエンコーダと、
前記複数のエンコーダのうち、前記ソースデバイスから受信したフレームを符号化するように構成されたエンコーダと、
前記複数のエンコーダのうち、前記ソースデバイスから受信した次のフレームを符号化するように構成された別のエンコーダであって、前記エンコーダと前記別のエンコーダとが、同期してスタガー状に並列に動作し、前記スタガーが所定数のマクロブロック行である、別のエンコーダと、を備える、
システム。
【請求項２７】
前記所定数は、前記フレームのマクロブロック行の数に満たない、請求項２６に記載のシステム。
【請求項２８】
前記所定数のマクロブロック行は、１〜１０のマクロブロック行である、請求項２６に記載のシステム。
【請求項２９】
前記エンコーダは、前記次のフレームの符号化をいつ開始するのかを、前記別のエンコーダに信号で知らせる、請求項２６に記載のシステム。
【請求項３０】
前記エンコーダは、前記別のエンコーダのための基準データを生成し、前記別のエンコーダによる使用のために前記基準データを前記メモリに記憶する、請求項２６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、参照することによって内容が本明細書に組み込まれる、２０１２年１２月１９日に出願された米国出願第１３／７２０，５４６号の利益を主張する。
【０００２】
本開示は、概して、符号化に関するものであり、特に、ビデオ符号化に関するものである。
【背景技術】
【０００３】
多様な媒体を介したビデオデータの送信及び受信が増え続けている。通常、ビデオエンコーダは、ビデオデータを圧縮し、媒体上で送信されるビデオデータの量を削減するために使用される。ワイヤレスディスプレイ又は高精細ビデオ会議等のビデオ符号化の従来の用途は、１秒あたり３０フレーム（ｆｐｓ）で１０８０ｐ、又は、６０ｆｐｓで１０８０ｐ等の少量のスループットしか必要としない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
高スループットのビデオ符号化は、高性能なビデオコード変換又はクラウドゲーミングアプリケーションにおいて重要である。ビデオコード変換アプリケーションでは、多くの場合、数分以内、又は、少なくとも数十分以内に、２時間の映画をコード変換する必要がある。クラウドゲーミングアプリケーションでは、ゲームレンダリングの複数のセッションがネットワーク（例えばインターネット又はイントラネット）を介して送信される前に、ゲームレンダリングの複数のセッションを符号化する必要がある。高性能なビデオコード変換及びクラウドゲーミングアプリケーションでは、３０ｆｐｓで１０８０ｐの数倍、又は、６０ｆｐｓで１０８０ｐの数倍を必要とする。このことは、ハードウェアビデオエンコーダが高スループットをサポートするためのスケーラビリティの課題を提供する。いくつかの実装では、ビデオフレームの符号化の部分を（中央演算処理装置又はグラフィックスプロセッシングユニットを使用する）３Ｄシェーダーで完全に行い、一方でフレームの符号化の残りを固定関数ハードウェアで行うハイブリッド手法を用いてきた。
【課題を解決するための手段】
【０００５】
スケーラブルな高スループットビデオエンコーダが本明細書で説明される。複数の専用のハードウェアビデオエンコーダは、スタガー配列の並列アーキテクチャで実行する。このアーキテクチャでは、各ビデオエンコーダがビデオフレームを符号化し、スタガー又は遅延がマクロブロック行のプログラム可能な数である。一例の方法では、第１のビデオエンコーダは、フレームの第１のｘマクロブロック行の符号化を終了した後に、次の未処理のフレームのマクロブロック行の符号化を開始するように第２のビデオエンコーダに信号を送る。両ビデオエンコーダは、同期してスタガー状（ｓｙｎｃｈｒｏｎｉｚｅｄ  ｓｔａｇｇｅｒｅｄ  ｍａｎｎｅｒ）に並列に符号化を続行する。第１のビデオエンコーダは、フレームの最後に、別の未処理のフレームのｘマクロブロック行の符号化を開始する。
【０００６】
より詳細な理解は、添付図面と併せて例として示される以下の説明から得られる。
【図面の簡単な説明】
【０００７】
【図１】いくつかの実施形態に係る、高スループットビデオエンコーダを使用する一例のシステムアーキテクチャを示す図である。
【図２】いくつかの実施形態に係る、一例の高スループットビデオエンコーダを示す図である。
【図３】フレーム及びマクロブロック行の一例の図である。
【図４】いくつかの実施形態に係る、高スループットビデオエンコーダを使用してビデオデータを符号化するための一例のフローチャートである。
【図５】いくつかの実施形態に係る、高スループットビデオエンコーダを使用してビデオデータを符号化するための別の例のフローチャートである。
【図６】いくつかの実施形態に係る、高スループットビデオエンコーダの実施形態とともに使用するための一例のソースデバイス又は宛先デバイスのブロック図である。
【発明を実施するための形態】
【０００８】
図１は、いくつかの実施形態に係る、本明細書で以下に説明される高スループットビデオエンコーダを使用して、符号化されたビデオデータを、ネットワーク１０５を介してソース側１１０から宛先側１１５に送信する一例のシステム１００である。ソース側１１０は、宛先側１１５に送信され得るビデオデータを記憶、取り込み又は生成し得る任意のデバイスを含む。デバイスは、ソースデバイス１２０、携帯電話１２２、オンラインゲーミングデバイス１２４、カメラ１２６又はマルチメディアサーバ１２８を含んでよいが、これらに限定されるものではない。これらのデバイスからのビデオデータは、エンコーダ１３０に供給され、エンコーダ１３０は、本明細書で以下に説明されるように、ビデオデータを次々に符号化する。符号化されたビデオデータは、デコーダ１４０によって処理され、デコーダ１４０は、次に、復号化されたビデオデータを、宛先デバイス（宛先デバイス１４２、オンラインゲーミングデバイス１４４及びディスプレイモニタ１４６を含んでよいが、これらに限定されるものではない）に送信する。エンコーダ１３０は、個別のデバイスとして示されているが、外部デバイスとして実装されてもよいし、ビデオデータを記憶、取り込み、生成又は送信する際に使用され得る任意のデバイスに統合されてもよい。
【０００９】
図２は、いくつかの実施形態に係る、一例の高スループットビデオエンコーダ２００のブロック図である。高スループットビデオエンコーダ２００は、ビデオデータを受信し、符号化されたビデオデータを出力するための複数のビデオエンコーダを含んでもよい。複数のビデオエンコーダの各々は、完全な固定機能（ｆｉｘｅｄ  ｆｕｎｃｔｉｏｎ）のハードウェアビデオエンコーダである。説明のためだけに、高スループットビデオビデオエンコーダ２００は、ビデオエンコーダ１  ２０５と、ビデオエンコーダ２  ２１０と、ビデオエンコーダ３  ２１５と、・・・、ビデオエンコーダＮ  ２２０と、を含んでもよい。この場合、ビデオエンコーダ１  ２０５はエンコーダ２  ２１０に接続されており、ビデオエンコーダ２  ２１０はビデオエンコーダ３  ２１５に接続されており、・・・、ビデオエンコーダ１  ２０５に接続されるビデオエンコーダＮ  ２２０まで同様である。ビデオエンコーダ１  ２０５と、ビデオエンコーダ２  ２１０と、ビデオエンコーダ３  ２１５と、ビデオエンコーダＮ  ２２０と、の各々は、ソースビデオデータ２２５を受信し、符号化されたビデオデータ２３０を出力する。複数のビデオエンコーダの各々は、本明細書に説明される基準データを記憶し、読み取るための共通メモリに接続されている。例えば、ビデオエンコーダ１  ２０５と、ビデオエンコーダ２  ２１０と、ビデオエンコーダ３  ２１５と、ビデオエンコーダＮ  ２２０と、はメモリ２３５に接続されている。
【００１０】
本明細書に説明されるように、高スループットビデオエンコーダは、２〜Ｎ個のビデオエンコーダインスタンスまたは回路を含んでよい。各ビデオエンコーダインスタンスは、ビデオフレームを符号化し、ビデオデータは、複数のビデオフレームを含む。図３は、フレーム１  ３００及びフレーム２  ３０５の一例の図である。フレーム３００及び３０５の各々は、マクロブロック行１・・・ｍを含み、各マクロブロック行は、使用されているビデオ符号化規格又はビデオ符号化方式に応じて、例えば８ラスタ行から１６ラスタ行を有してもよい。
【００１１】
標準的な符号化方式では、現在のフレームを符号化する場合には、以前のフレームに対する依存性が存在する。例えば、現在のフレームを符号化する場合に、ビデオエンコーダは、以前のビデオフレームによって生成された基準を使用する。ビデオ符号化スループットを最大化するために、全てのビデオエンコーダは、他のビデオエンコーダがビデオフレームの符号化を完全に終了するのを待機することなく、並列で機能する必要がある。このことは、各ビデオエンコーダに、プログラム可能な数または所定数のマクロブロック行を待機させることによって達成される。一実施形態では、所定数のマクロブロック行は、フレームのマクロブロック行の総数に満たない。別の実施形態では、所定数のマクロブロック行は、フレームのマクロブロック行の総数よりも小さい。別の実施形態では、所定数のマクロブロック行は、約１〜１０のマクロブロック行であってよい。この数は、事前に設定され得るが、以前のフレームを符号化するビデオエンコーダによって信号で送信することができる。この方法では、以前のフレーム（フレームＮ−１）を符号化するビデオエンコーダが、使用する必要のある現在のフレーム（フレームＮ）を符号化するビデオエンコーダのための基準の生成を終了するのを保証する。このようにして、全てのビデオエンコーダは、いくつかのマクロブロック行によってスタガー配列されるが、最大スループットのために並列で機能している。
【００１２】
図４は、いくつかの実施形態に係る、高スループットビデオエンコーダを使用するビデオデータの一例の高レベルのフローチャート４００である。ビデオエンコーダは、フレームの第１のｘマクロブロック行を符号化する（４０５）。ビデオエンコーダは、第１のｘマクロブロック行が完了した後、次の未処理フレームのマクロブロック行の符号化を開始するように、別のビデオエンコーダに信号を送信する（４１０）。両方（又は全ての）ビデオエンコーダは、同期してスタガー状に並列に符号化を続行する（４１５）。フレームが完了すると、ビデオエンコーダは、別の未処理フレームのｘマクロブロック行の符号化を開始する（４２０）。フレームの符号化が完了していない場合、ビデオエンコーダは、フレームの符号化を続行する（４２５）。
【００１３】
図５は、いくつかの実施形態に係る、高スループットビデオエンコーダを使用してビデオデータを符号化するための一例のフローチャート５００であり、図２及び図３に関して説明される。説明のためだけに、フローチャート５００は、２つのビデオエンコーダ（つまり、エンコーダ１  ２０５及びエンコーダ２  ２１０）に関して説明されており、ここでは、マクロブロック行の数が５マクロブロック行であると想定する。これは、図３にマクロブロック行３５０として示されている。
【００１４】
最初に、エンコーダ１  ２０５は、ソースビデオデータ２２５からフレーム１  ３００を受信し、フレーム１  ３００の符号化を開始する（５０５）。エンコーダ２  ２１０は、プログラミングされた数または所定数のマクロブロック行（例えばマクロブロック行３５０）の符号化をエンコーダ１  ２０５が終了するまで、待機する。これが初期の遅延を構成する。エンコーダ１  ２０５がマクロブロック行３５０の符号化を完了すると、エンコーダ１  ２０５は、マクロブロック行３５０と関連付けられた基準データを生成し、基準データを記憶装置（例えばメモリ２３５）に記憶する（５１０）。エンコーダ１  ２０５は、フレーム２  ３０５のマクロブロック行１の符号化を開始するように、エンコーダ２  ２１０に信号を送信する（５１５）。
【００１５】
エンコーダ２  ２１０は、フレーム２  ３０５のマクロブロック行１の符号化を開始し、これと並行して、エンコーダ１  ２０５は、次のマクロブロック行（つまり、フレーム１  ３００のマクロブロック行６）の符号化を続行する（５２０）。エンコーダ１  ２０５がマクロブロック行６の符号化を終了した場合には、エンコーダ１  ２０５は、フレーム２  ３０５のマクロブロック行２の符号化を開始するように、エンコーダ２  ２１０に信号を送信する（５２５）。エンコーダ１  ２０５とエンコーダ２  ２１０との間の依存性の関係（つまり、エンコーダ２  ２１０がエンコーダ１  ２０５から基準データを必要とする関係）のために、エンコーダ２  ２１０は、常に、所定数のマクロブロック行分遅れているが、エンコーダ１  ２０５と揃っている。この結果、エンコーダ１  ２０５及びエンコーダ２  ２１０は、同期してスタガー状に並列に動作する。説明のために、フレームが１９２０×１０８８のフレーム解像度を有し、各マクロブロックが１６×１６ピクセルを有すると仮定すると、エンコーダ１  ２０５が、フレーム１  ３００のマクロブロック行６７の符号化を終了した場合には、エンコーダ１  ２０５は、フレーム２  ３０５のマクロブロック行６３を符号化するように、エンコーダ２  ２１０に信号を送信する。
【００１６】
エンコーダ１  ２０５が、フレーム１  ３０５のマクロブロック行６８の符号化を終了すると、エンコーダ１  ２０５は、フレーム１  ３００の全ての基準の生成を終了したので、エンコーダ２  ２１０がフレーム２  ３０５のマクロブロック行６４〜６８を符号化できることを、エンコーダ２  ２１０に信号で知らせる（５３０）。エンコーダ１  ２０５は、フレーム１  ３００のマクロブロック行６８が完了すると、フレーム３の符号化を開始する（５３５）。ただし、エンコーダ２  ２１０は、エンコーダ２  ２１０が次のフレーム（つまり、フレーム４）の符号化を開始できるようになる前に、フレーム３の第１のプログラミングされた数または所定数のマクロブロック行の符号化をエンコーダ１  ２０５が終了するまで、待機しなければならない。
【００１７】
この方法は、最大スループットのために多数のビデオエンコーダに拡張できる。例えばＮ台のビデオエンコーダがある場合には、初期化遅延後、長期スループットはＮである。初期化遅延は、ビデオエンコーダごとに固定量のスタガーまたは遅延を導入する。例えば、所定数またはプログラミングされた数のマクロブロック行としてｘが与えられたＮ番目のビデオエンコーダの場合、スタガーまたは遅延は、Ｎｘとなる。
【００１８】
図６は、いくつかの実施形態に係る、本明細書に説明される高スループットビデオエンコーダが実装され得るデバイス６００のブロック図である。デバイス６００は、例えば、コンピュータ、ゲーミングデバイス、ハンドヘルドデバイス、セットトップボックス、テレビ、携帯電話又はタブレットコンピュータを含んでよい。デバイス１００は、プロセッサ６０２と、メモリ６０４と、記憶装置６０６と、１つ以上の入力装置６０８と、１つ以上の出力装置６１０と、を含む。また、デバイス６００は、任意に、入力ドライバ６１２と出力ドライバ６１４とを含んでもよい。デバイス１００は、図６に示されていない追加の構成要素を含んでもよいことが理解されよう。
【００１９】
プロセッサ６０２は、中央演算処理装置（ＣＰＵ）、グラフィックスプロセッシングユニット（ＧＰＵ）、同一のダイに位置するＣＰＵ及びＧＰＵ、又は、１つ以上のプロセッサコアを含んでもよく、各プロセッサコアはＣＰＵ又はＧＰＵであってもよい。メモリ６０４は、プロセッサ６０２と同一のダイ上に位置してもよいし、プロセッサ６０２とは別個に位置してもよい。メモリ６０４は、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭもしくはキャッシュ等の揮発性メモリ、又は、不揮発性メモリを含んでもよい。いくつかの実施形態では、高スループットビデオエンコーダは、プロセッサ６０２に実装されている。
【００２０】
記憶装置６０６は、例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスクもしくはフラッシュドライブ等の固定記憶装置、又は、リムーバブル記憶装置を含んでもよい。入力装置６０８は、キーボード、キーパッド、タッチスクリーン、タッチパッド、検出器、マイク、加速度計、ジャイロスコープ、生体認証スキャナー、又は、ネットワーク接続（例えば、無線ＩＥＥＥ８０２信号の送信及び／又は受信用の無線ローカルエリアネットワークカード）を含んでもよい。出力装置６１０は、ディスプレイ、スピーカ、プリンタ、触覚フィードバック装置、１つ以上のライト、アンテナ、又は、ネットワーク接続（例えば、無線ＩＥＥＥ８０２信号の送信及び／又は受信用の無線ローカルエリアネットワークカード）を含んでもよい。
【００２１】
入力ドライバ６１２は、プロセッサ６０２及び入力装置６０８と通信し、プロセッサ６０２が、入力装置６０８から入力を受け取ることができるようにする。出力ドライバ６１４は、プロセッサ６０２及び出力装置６１０と通信し、プロセッサ６０２が出力装置６１０へ出力を送信できるようにする。入力ドライバ６１２及び出力ドライバ６１４は、任意の構成部品であること、及び、デバイス６００は、入力ドライバ６１２及び出力ドライバ６１４が存在しない場合には各ドライバ６１２，６１４と同様に動作することに留意されたい。
【００２２】
本明細書で説明されたビデオエンコーダは、ムービングピクチャーエクスパーツグループ（ＭＰＥＧ）のＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、ＭＰＥＧ−４第１０部、Ｗｉｎｄｏｗｓ（登録商標）のａｖｉフォーマット、Ｑｕｉｃｋｔｉｍｅ（登録商標）のｍｏｖフォーマット、Ｈ．２６４符号化方式、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）符号化方式及びストリーミングビデオフォーマットを含むが、これらに限定されない様々な符号化方式を使用してもよい。
【００２３】
概して、いくつかの実施形態に従よる符号化方法は、エンコーダを使用してフレームを符号化することと、エンコーダがフレームの所定数のマクロブロック行の符号化を完了した後に、別のエンコーダを使用して次のフレームを符号化することと、を含む。エンコーダ及び別のエンコーダは、同期してスタガー状に並列に動作する。いくつかの実施形態では、所定数のマクロブロック行は、フレームのマクロブロック行の数に満たない。いくつかの実施形態では、所定数のマクロブロック行は、約１〜１０のマクロブロック行である。
【００２４】
本明細書の開示に基づいて多くの変形形態が可能であることが理解されるべきである。特徴及び要素が特定の組合せで上述されているが、各々の特徴又は要素は、他の特徴及び要素なしに単独で、他の特徴及び要素とともに、又は、他の特徴及び要素なしに多様な組合せで、使用され得る。
【００２５】
適用可能な範囲まで提供される方法は、汎用コンピュータ、プロセッサ又はプロセッサコアに実装されてもよい。適切なプロセッサは、例として、汎用プロセッサ、特殊目的プロセッサ、従来のプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、複数のマイクロプロセッサ、ＤＳＰコアと関連する１つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）回路、任意の他のタイプの集積回路（ＩＣ）、及び／又は、状態機械を含む。係るプロセッサは、処理されたハードウェア記述言語（ＨＤＬ）命令及びネットリストを含む他の仲介データ（コンピュータ可読媒体に記憶可能な命令）の結果を使用して製造プロセスを構成することによって製造されてよい。係る処理の結果は、実施形態の態様を実装するプロセッサを製造するために、半導体製造プロセスで使用されるマスクワークであってよい。
【００２６】
適用可能な範囲まで本明細書に提供される方法又はフローチャートは、汎用コンピュータ又はプロセッサによる実行のために、コンピュータ可読記憶媒体に組み込まれるコンピュータプログラム、ソフトウェアもしくはファームウェアに実装されてよい。コンピュータ可読記憶媒体の例は、読取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスク及びリムーバブルディスク等の磁気媒体、光磁気媒体、並びに、ＣＤ−ＲＯＭディスク及びデジタル多用途ディスク（ＤＶＤ）等の光媒体を含む。
【図１】
2016506662.tif 000003
【図２】
2016506662.tif 000004
【図３】
2016506662.tif 000005
【図４】
2016506662.tif 000006
【図５】
2016506662.tif 000007
【図６】
2016506662.tif 000008
【手続補正書】
【提出日】平成27年8月25日(2015.8.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のエンコーダを使用してフレームを符号化することと、
前記第１のエンコーダが前記フレームの所定数のマクロブロック行の符号化を完了した後に、第２のエンコーダを使用して次のフレームを符号化することであって、前記第１のエンコーダ及び前記第２のエンコーダは、同期してスタガー状に並列に動作する、ことと、
を含む、符号化の方法。
【請求項２】
前記所定数は、前記フレームのマクロブロック行の数に満たない、請求項１に記載の方法。
【請求項３】
前記所定数のマクロブロック行は、１〜１０のマクロブロック行である、請求項１に記載の方法。
【請求項４】
前記第１のエンコーダは、前記次のフレームの符号化をいつ開始するのかを、前記第２のエンコーダに信号で知らせる、請求項１に記載の方法。
【請求項５】
前記エンコーダは、前記別のエンコーダのための基準データを生成し、前記別のエンコーダによる使用のために前記基準データをメモリに記憶する、請求項１に記載の方法。
【請求項６】
第１のエンコーダを使用してフレームを符号化することと、
第２のエンコーダを使用して次のフレームを符号化することであって、前記第１のエンコーダ及び前記第２のエンコーダは、同期してスタガー状に並列に動作する、ことと、
を含み、
前記スタガーは所定数のマクロブロック行である、
符号化の方法。
【請求項７】
前記所定数は、前記フレームのマクロブロック行の数に満たない、請求項６に記載の方法。
【請求項８】
前記所定数のマクロブロック行は、１〜１０のマクロブロック行である、請求項６に記載の方法。
【請求項９】
メモリと、
少なくとも２つのエンコーダと、
フレームを符号化するように構成された、前記少なくとも２つのエンコーダのうち１つのエンコーダと、
前記１つのエンコーダが前記フレームの所定数のマクロブロック行の符号化を完了した後に、次のフレームを符号化するように構成された、前記少なくとも２つのエンコーダのうち別のエンコーダであって、前記１つのエンコーダと前記別のエンコーダとが、同期してスタガー状に並列に動作する、別のエンコーダと、を備える、
デバイス。
【請求項１０】
前記所定数は、前記フレームのマクロブロック行の数に満たない、請求項９に記載のデバイス。
【請求項１１】
前記所定数のマクロブロック行は、１〜１０のマクロブロック行である、請求項９に記載のデバイス。
【請求項１２】
前記１つのエンコーダは、前記次のフレームの符号化をいつ開始するのかを、前記別のエンコーダに信号で知らせる、請求項９に記載のデバイス。
【請求項１３】
前記１つのエンコーダは、前記別のエンコーダのための基準データを生成し、前記別のエンコーダによる使用のために前記基準データを前記メモリに記憶する、請求項９に記載のデバイス。
【請求項１４】
ソースデバイスから宛先デバイスにデータを送信するためのシステムであって、
メモリと、
複数のエンコーダと、
前記複数のエンコーダのうち、前記ソースデバイスから受信したフレームを符号化するように構成されたエンコーダと、
前記複数のエンコーダのうち、前記ソースデバイスから受信した次のフレームを符号化するように構成された別のエンコーダであって、前記エンコーダと前記別のエンコーダとが、同期してスタガー状に並列に動作し、前記スタガーが所定数のマクロブロック行である、別のエンコーダと、を備える、
システム。
【請求項１５】
前記所定数は、前記フレームのマクロブロック行の数に満たない、請求項１４に記載のシステム。
【国際調査報告】
2016506662.tif 000009
2016506662.tif 000010