(57)【要約】【課題】デコーダがレート制御ブロックを独立してデコードすることを可能にし、各レート制御ブロックのためのエンコードされたデータサイズが配分されることを保証する。【解決手段】ビデオ伝送システム内のエンコーダは、サブフレームレベルにおいてビット配分を制御する。フレームは、レート制御ブロックとして知られるより小さいブロックに分割される。レート制御ブロックは、ビット配分のための基本単位として使用される。このビット配分は、システムによって所望される標的ビットレートを達成し、待ち時間制約を満たす。エンコーダは、画像フレームの１つ以上のスライスを使用して、レート制御ブロックを生成するためのスライスパーティショニング能力を使用する。【選択図】図４
2016119708.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ伝送システム内の画像フレームをエンコードするための方法であって、該方法は、
該画像フレームのレート制御ブロックを選択することであって、該レート制御ブロックは、複数のマクロブロックを含む、選択することと、
レート制御ブロックのビットレートを決定することと、
前記レート制御ブロックのサイズに対応するようにバッファサイズを指定することと、
該ビットレートに従って、該レート制御ブロックの該複数のマクロブロックをエンコードすることと、
該レート制御ブロックのインターフレームの選択されたマクロブロックのエンコードを選択的にスキップすることにより、前記バッファのオーバーフローを回避し、かつ、該レート制御ブロックのイントラフレームから予測残余を除去することと
を含む、方法。
【請求項２】
前記決定することは、前記レート制御ブロックのサイズに対応するようにビットレートを設定することを含む、請求項１に記載の方法。
【請求項３】
前記画像フレームを複数のレート制御ブロックにパーティショニングすることをさらに含む、請求項１に記載の方法。
【請求項４】
マクロブロックレベルレート制御を行うことをさらに含む、請求項１に記載の方法。
【請求項５】
前記バッファが、前記エンコードされた複数のマクロブロックのサイズに起因してオーバーフロー状態にあるか否かを決定することをさらに含む、請求項４に記載の方法。
【請求項６】
前記マクロブロックレベルレート制御を行うことは、前記レート制御ブロックを埋めるために先行フレームのマクロブロックを使用することを含む、請求項４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上でビデオ信号を転送することに関する。より具体的には、本発明は、小さい待ち時間制約を有するネットワーク上で複雑なビデオ信号を送信および受信することに関する。
【背景技術】
【０００２】
公知のビデオ伝送／受信システムでは、デジタルメディアサーバからのデータコンテンツは、エンコードおよび送信され、デジタルメディアレンダラ上での再生のためにデコードされる。しかしながら、ビデオコンテンツは、経時的に変化するので、非常に複雑であり得る。複雑さが変化するにつれて、コンテンツの高品質伝送のために必要とされるビットレートも変化する。所与の圧縮品質レベルに対して、ビデオデータの複雑さは、データをエンコードするための、より高いビットレートをもたらす。しかしながら、ネットワークの容量は、経時的に一定のままであり得、ビデオデータの複雑さもビットレートの増加によっては変化しない。
【０００３】
ビデオエンコーダにおけるこのビットレート変動に対応するために、常に、レート制御がネットワーク上の一定ビットレートを作成するために使用される。一定ビットレートは、場面が変化するとき、あるいはビデオが多くの動きまたは微細な特徴を捕捉するとき等、ビデオの複雑さが劇的に変化するときでも、データの伝送に対して引き続き有効である。レート制御は、ビデオ再生品質を可能な限り安定状態に維持しようとする。レート制御は、品質安定性と一定ビットレート要件との間の妥協を試みる。
【０００４】
公知のシステムは、レート制御の限界に起因して、伝送に先立ってデータをバッファし、ネットワークの容量によって適用される制約を満たす。エンコードされたデータは、瞬間ビデオエンコーダビットレートが、ネットワークの容量よりも高いかまたは低い可能性があるが、ネットワークへ送信されるバッファされたデータの速度が、常にネットワーク容量以下であるようにバッファされる。ビットレートは、実質的にネットワーク容量を超えて増加するので、公知のシステムは、より大きなバッファを実装し、それらの可能性として考えられる大幅な増加に対応する。しかしながら、より大きなバッファは、データの伝送に待ち時間を導入し、その結果、遅延が生じる。
【０００５】
例えば、公知のシステムは、ネットワークを横断してデータを伝送する前に、エンコーディング後、複数のフレームをバッファし得る。大バッファサイズは、システム内に大きい待ち時間をもたらす。いくつかの用途では、この待ち時間は、容認不可能である。リアルタイムビデオ再生および双方向用途は、大きい待ち時間を被ることはできず、したがって、複雑なビデオ伝送に対処するために、バッファサイズを単に増加させることはできない。実際、いくつかの用途は、ネットワーク内でいかなる顕著な待ち時間も可能にできない。したがって、バッファサイズは、待ち時間を低減させるように最小化され得るが、システムは、複雑なデータによるビットレート変動増加に対処することが不可能であり得る。
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明の実施形態は、ネットワーク内の単一フレームの持続時間を下回る伝送待ち時間を要求するシナリオに対して、ビデオエンコーダ出力ビットストリームレートを制御する。本発明の実施形態は、複雑なビデオデータエンコーディングによるビットレート増加に対処するために、大きなバッファを実装せず、代わりに、エンコーディングを小さい待ち時間で生じさせるプロセスを行う。１フレーム以下が、開示される実施形態に従って、バッファされ得る。提案されるレート制御はまた、より大きい待ち時間を用いて動作することにより、小さい待ち時間を必要としないシステムもカバーし得る。
【０００７】
開示される実施形態は、フレーム内で必要ビットを配分し、特定の最大ビットレートを達成する。ネットワーク容量を下回る状態のままにすることによって、ビデオ伝送／受信システムは、リアルタイムビデオ再生に対して所望される小さい待ち時間をもたらす。
【０００８】
開示される実施形態は、サブフレームレベルでビット配分を制御する。フレームは、レート制御ブロックとして知られるより小さいブロックに分割される。レート制御ブロックは、ビット配分のための基本単位として使用される。このビット配分は、システムによって所望される標的ビットレートを達成し、待ち時間制約を満たす。開示される実施形態は、ビデオエンコーダのスライスパーティショニング能力を使用してもよい。この特徴は、デコーダがレート制御ブロックを独立してデコードすることを可能にする。各レート制御ブロックのためのエンコードされたデータサイズが、レート制御によって配分されたビットレートを下回るときは、常に、各レート制御ブロックに対するエンドツーエンド待ち時間は、特定の最大待ち時間程度となるであろう。
【０００９】
小さいネットワーク待ち時間を達成するために、開示される実施形態は、満足のゆく結果につながるはずである推定値および予測値を使用する。それでもなお、レート制御ブロックに対して配分されたビットが達成されない事例につながり得る誤った推定を生み出す確率が存在する。言い換えると、ビットレートが標的ビットレートよりも高くなり、バッファ容量を超え、それによって、待ち時間要件を危険に曝し得る。バッファオーバーフローのこの問題を回避するために、開示される実施形態は、レート制御ブロックの「非コード化」部分に基づく、バッファ保護機構を実装してもよい。他の保護機構もまた、使用されてもよい。
【００１０】
好ましい実施形態によると、ビデオ伝送システム内の画像フレームをエンコードするための方法が開示される。本方法は、画像フレームのレート制御ブロックを選択するステップを含む。レート制御ブロックは、複数のマクロブロックを含む。本方法はまた、ビットレートに従って、レート制御ブロックの複数のマクロブロックをエンコードするステップを含む。
【００１１】
さらに好ましい実施形態によると、ビデオ伝送エンコーディングシステムが開示される。ビデオ伝送エンコーディングシステムは、画像フレームからのレート制御ブロックが、整数個のスライスを有するであろうことを保証するスライスパーティショナを含む。この特徴は、レート制御ブロックが独立してデコードされることを可能にする。レート制御ブロックは、複数のマクロブロックを含む。ビデオ伝送エンコーディングシステムはまた、レート制御ブロックのための複数のマクロブロックをエンコードするためのエンコーダを含む。ビデオ伝送エンコーディングシステムはまた、各レート制御ブロックのためにエンコードされたデータを記憶するためのバッファを含む。ビデオ伝送システムのためのビットレートおよびバッファのサイズは、レート制御ブロックのためのセットのパラメータに従って設定される。
【００１２】
さらに好ましい実施形態によると、ビデオ伝送における画像フレームをエンコードするための方法が開示される。本方法は、フレームおよびレート制御ブロック初期設定の両方の一部として使用される統計を収集するステップを含む。本方法はまた、レート制御のエンコードされたデータを受信するためのバッファのサイズを設定するステップを含む。本方法はまた、バッファのサイズに対応するビットレートに従って、レート制御ブロック内の複数のマクロブロックをエンコードするステップを含む。
【００１３】
添付の図面は、本発明のさらなる理解を提供し、本明細書の一部を構成するために含まれる。以下に列挙される図面は、本発明の実施形態を図示し、説明とともに、請求項およびその均等物によって開示されるような本発明の原理を説明する役割を果たす。
【図面の簡単な説明】
【００１４】
【図１】図１は、開示される実施形態による、ビデオ信号データを伝送および受信するためのシステムを図示する。
【図２】図２Ａは、開示される実施形態による、システム内のエンコーディング、伝送、およびデコーディング時間を示すグラフを図示する。図２Ｂは、開示される実施形態による、経時的、システム内のビットレート変動を示すグラフを図示する。
【図３】図３は、開示される実施形態による、レート制御ブロックを有するビデオフレームを図示する。
【図４】図４は、開示される実施形態による、レート制御を使用して、ビデオ伝送エンコーダ内のビットレートを制御するための流れ図を図示する。
【図５】図５は、開示される実施形態による、マクロブロックレベルレート制御を行うための流れ図を図示する。
【発明を実施するための形態】
【００１５】
本発明の側面は、付随の説明に開示される。本発明の代替実施形態およびその均等物も、本発明の精神または範囲から逸脱することなく考案される。以下に開示される類似要素は、図面中、類似の参照番号によって示されることに留意されたい。
【００１６】
図１は、開示される実施形態による、ビデオ信号データを伝送および受信するためのシステム１００を図示する。システム１００は、ネットワーク上で接続して情報を共有する任意のシステムまたはデバイス集合であってもよい。ビデオ信号内の画像フレームが、ネットワーク上で送信されるために受信される。画像フレーム内のデータは、種々のエンコーディング技法を使用して、伝送のためにエンコードされる。
【００１７】
システム１００は、例えば、ビデオコンテンツが、ゲームコンソール内で生成され、次いで、フラットスクリーンテレビ等の高解像度デジタルメディアレンダラに伝送されるゲームシステムであってもよい。代替として、システム１００は、高解像度（ＨＤ）ビデオを使用するセキュリティ監視システムであってもよい。この実践は、益々多くのセキュリティカメラの製造業者が、現在、監視を高品質ビデオとともにリアルタイムで生じさせるＨＤカメラの売り出しを主張しているように、監視産業における標準となりつつある。
【００１８】
デジタルメディアサーバ１０２は、伝送されるべきビデオコンテンツを生成する。デジタルメディアサーバ１０２は、任意のデバイス、コンソール、カメラ、およびビデオデータを捕捉する同等物であってもよい。例えば、デジタルメディアサーバ１０２は、ディスクまたは他のメディア上に記憶されたビデオゲームを再生するゲームコンソールである。ゲームの再生から生成されるコンテンツは、ユーザがリアルタイムで視聴および相互作用するために表示される。代替として、デジタルメディアサーバ１０２は、コンピュータ、ビデオレコーダ、デジタルカメラ、スキャナ、データを捕捉する同等物である。
【００１９】
非圧縮データ信号１０４が、デジタルメディアサーバ１０２からエンコーダ１０６に出力される。エンコーダ１０６は、システム１００内での伝送のために、信号１０４をエンコードまたは圧縮してもよい。エンコーダ１０６は、不可逆圧縮技法を使用して、信号１０４をエンコードしてもよい。そのような技法の強度は、信号１０４内のデータの複雑さに基づいて変化してもよい。
【００２０】
例えば、敵に対して剣を振るゲームの中の登場人物のビデオデータは、単に立っている登場人物のビデオよりも複雑または非常に煩雑であって、同様の品質を維持するために、異なるエンコーディングプロセスを要求し得る。エンコーダ１０６は、以下により詳細に開示されるスライスパーティショナ１３４を含む。
【００２１】
エンコーダ１０６は、圧縮された信号１０８をバッファ１１０に出力する。バッファ１１０は、システム１００を通して伝送されることができるまで、信号１０８からのデータを記憶する。ネットワークビットレートが、信号１０８の伝送を可能にしない場合、バッファ１１０は、送受信機１１４によって伝送されることができる時間まで、データを保持する。
【００２２】
バッファ１１０は、バッファサイズ値を有してもよい。その標的（待ち時間およびビットレート）を達成するために、レート制御によって使用されるバッファサイズ値は、許容される最大伝送待ち時間に直接的に関連するであろう。バッファ１１０は、信号１１２を送受信機１１４に出力する。
【００２３】
送受信機１１４は、ネットワーク１１８上で信号１１６を伝送する。前述のゲームの実施例を使用すると、ネットワーク１１８は、ルータが信号１１６をデジタルメディアサーバ１０２から受信し、それを表示のためにデジタルメディアレンダラ１３２に自動転送する場所のための無線ネットワークであってもよい。代替として、ネットワーク１１８は、リアルタイムビデオを示す、遠隔カメラから信号１１６を受信するコンピュータのネットワークであってもよい。
【００２４】
送受信機１２０は、信号１１６を受信し、信号１２２をバッファ１２４に出力する。バッファ１２４は、バッファ１１０に類似するバッファサイズ値を有してもよい。信号１２６は、バッファ１１０からデコーダ１２８にストリームする。デコーダ１２８は、信号１２６をデコードまたは解凍し、非圧縮信号１３０を生成する。非圧縮信号１３０は、好ましくは、コード化プロセスに起因して若干変化する非圧縮信号１０４の高品質コピーである。
【００２５】
デジタルメディアレンダラ１３２は、非圧縮信号１３０を受信し、ビデオデータコンテンツをユーザに表示する。デジタルメディアレンダラ１３２は、表示解像度１，２８０×７２０画素（７２０ｐ）または１，９２０×１，０８０画素（１０８０Ｉ／１０８０Ｐ）を有する高解像度テレビであってもよい。したがって、システム１００内でエンコードおよびデコードされるデータの量は、デジタルメディアサーバ１０２およびデジタルメディアレンダラ１３２によってそれに課される要求に起因して複雑となり得る。
【００２６】
システム１００は、種々の制約およびパラメータに従う。システム１００は、ネットワーク１１８上で一定ビットレートで伝送してもよい。このビットレートは、経時的に同一のままであるが、しかしながら、ある状況下において変化してもよい。遅延または積分時間は、バッファ１１０が埋まる際に生じ、データがネットワーク１１８上で送信される際に、システム１００内に待ち時間を生じさせ得る。
【００２７】
図２Ａは、開示される実施形態による、システム内のエンコーディング、伝送、およびデコーディング時間を示すグラフ２００を図示する。グラフ２００は、エンコーディング時間２０４、伝送時間２０６、およびデコーディング時間２０８を示す時間線２０２を含む。エンコーディング時間２０４は、エンコーダ１０６によってエンコードまたは圧縮されるべき最小デコード可能単位に対する時間に、コード化プロセスを開始する前に必要とされるビデオ線の数の時間を加えたものを表し得る。
【００２８】
開示される実施形態に対する最小デコード可能単位は、１つのスライスであってもよい。この時間の後に、エンコーダ１０６は、この第１のスライスの伝送を開始することができる。従来の方式は、エンコーディングを開始する前に、最大１フレームだけ待機し、フレーム全体がエンコードされた後に、ビットストリームの伝送を開始する。これは、２フレームのエンコーディング時間を含み得る。システム１００は、エンコーディングを開始する前の待機を最小にし、最小デコード可能単位をより小さくすることによってエンコーディング時間を最小にする。
【００２９】
エンコーディング時間２０４は、好ましくは、最小デコード可能単位に対するタイムラップ以下である。例えば、最小デコード可能単位がフレームであり、フレーム２１０に対する時間の長さが、１／６０秒である場合、エンコーディング時間２０４は、システム１００内のものよりも小さい。
【００３０】
伝送時間２０６は、ネットワーク１１８上でデータを伝送するための時間を表す。伝送時間２０６もまた、予期される容量（レート制御のための構成されるビットレート以下）において、ネットワークを介して、ビットのバッファサイズ数を送信するために必要とされる時間期間以下である。したがって、データは、いかなる相当な時間長に対しても、バッファされなくてもよく、またはシステム１００は、伝送に関するこれらの要件を満たさなくてもよい。デコーディング時間２０８は、デコーディングまたは解凍され、ビデオ信号を再構築されるべきビデオデータの最小デコード可能単位に対する時間を表す。デコーディング時間２０８もまた、最小デコード可能単位に対する時間期間以下である。最小デコード可能単位が、フレームである場合、この時間は、１フレーム未満であろう。
【００３１】
したがって、システム１００内での待ち時間は、エンコーディング時間２０４、伝送時間２０６、およびデコーディング時間２０８が、フレーム２１０に対する時間期間を下回って維持されるので、減少させられる。公知のシステムは、反対アプローチを組み込み得、これにおいては、これらの時間は、フレームの持続時間を超える。これらの遅延は、プロセス内の各ステップにおいて累積して、大きい待ち時間をもたらす。より大きなバッファは、これらの時間を同様に増加させる。図２Ａは、待ち時間が、リアルタイムビデオレンダリングのために必要とされる十分な限界内において、どのように、システム１００を通してフレームを移動させるレベルまで減少されるかを示す。
【００３２】
図２Ｂは、開示される実施形態による、経時的なシステム内でのビットレート変動を示すグラフ２２０を図示する。グラフ２２０は、時間線２２２およびビデオデータビットレート線２２４を示す。ビデオデータビットレート線２２４は、時間線２２２が延在するにつれて変動する。ビデオデータビットレート線２２４は、ビデオエンコーディングの複雑さが変動するにつれて変動する。例えば、ビデオデータビットレート線２２４は、複雑さが増加するにつれて上昇する。
【００３３】
図２Ｂはまた、ビデオデータを記憶するバッファ２２６を含んでいる。バッファ２２６は、図１のバッファ１１０および１２４に対応してもよい。示されるように、ビデオデータビットレート線２２４に対するデータは全て、バッファ２２６内に収まっている。ビデオデータビットレート線２２４は、線２２４が変動する量にかかわらず、バッファ２２６の限界を超えない。バッファ２２６はまた、バッファサイズを有してもよい。バッファサイズは、開示される実施形態による、１フレーム未満の予期される最小伝送待ち時間に依存してもよい。このサイズは、待ち時間が最小にされることを保証する。
【００３４】
値は、図２Ａおよび２Ｂに示される関係に適合するように、システム１００内で設定されてもよい。ネットワーク１１８のための一定ビットレートは、ビデオコンテンツを伝送および受信するための特定の最大ビットレート値を設定してもよい。言い換えると、ビデオコンテンツのフレームをエンコードするための必要ビットに対する値が、決定される。フレームビット値および予期される待ち時間は、バッファ２２６のバッファサイズを設定してもよい。例えば、ビットレートが１０００ビットである場合において、フレームに対して予期されるサイズおよび予期される伝送待ち時間がフレームの半分であるとき、バッファサイズは、５００ビットであろう。バッファ２２６（または、バッファ１１０および１２４）内に記憶されるデータの量は、この値を超え得ない。したがって、システム１００内のいかなる遅延または待ち時間も、図２Ａに示されるように、ほぼフレームの時間以下である（着信ビデオのフレームレートが、１秒あたり６０フレームである場合、１／６０秒）。
【００３５】
図３は、開示される実施形態による、レート制御ブロック３１０を有するビデオフレーム３００を図示する。好ましくは、各ビデオフレーム３００は、同一の数のビット数を有する。ビデオフレーム３００に対するビットレートは、ピクチャが非常に煩雑であって、全アクションを捕捉するために複雑なエンコーディングを要求する場合に、増加し得る。
【００３６】
ビデオフレーム３００は、マクロブロック３０２を形成するようにグループ化された画素から構成され得る。各マクロブロック３０２は、２つ以上の画素を含む。好ましくは、マクロブロック３０２は、１６画素×１６画素である。マクロブロック３０２は、エンコーダ１０６によってエンコードされ、圧縮方式または他のアルゴリズムを使用して、デコーダ１２８に送信される。送信される情報は、ビデオフレーム３００内のマクロブロックのアドレス、輝度情報、クロミナンスまたは色情報、圧縮レベル値および動きベクトル情報を含んでもよい。
【００３７】
したがって、ビデオフレーム３００は、複数のマクロブロック３０２にパーティショニングされてもよい。従来のビデオ伝送および受信システムでは、ビデオフレーム３００のマクロブロック３０２は全て、エンコードされ、バッファされ、次いで、ネットワーク１１８を通して送信される。開示される実施形態は、ビデオフレーム３００をレート制御ブロック３１０にパーティショニングし、エンコーディング、伝送、およびデコーディングビデオデータのための基本として、これらのレート制御ブロックを使用する。
【００３８】
エンコーダ１０６のスライスパーティショナ１３４は、各レート制御ブロックが、整数個のスライスを有することを保証する。レート制御ブロック３１０はまた、サブフレームとしても知られ得る。レート制御ブロック３１０は、システム１００内のビット配分のための基本単位として使用され、複数のマクロブロック３０２を含んでもよい。好ましくは、各レート制御ブロック３１０内のマクロブロック３０２の数は、５から１５である。レート制御ブロック３１０は、フレーム３００の１つ以上のスライスを含んでもよい。
【００３９】
代替として、マクロブロックの数は、予期または要求される最大伝送待ち時間に依存するであろう。レート制御ブロック３１０のサイズが大きいほど、達成可能な最小待ち時間が大きくなる。反対もまた、当てはまり、要求される待ち時間が大きいほど、要求されるレート制御ブロックは、小さくなることに留意されたい。
【００４０】
マクロブロック３０２の数に基づいて、レート制御ブロック３１０は、レート制御ブロック３１０の持続時間に対応する標的ビットレートを有し得る。言い換えると、レート制御ブロック３１０のための標的ビットレートは、エンコードする情報が遥かに少ないので、ビデオフレーム３００のためのものより小さいはずである。この特徴は、ビットレート変動を単一ビデオフレーム３００のためのバッファサイズを大きく下回って維持する。
【００４１】
バッファ１１０は、少なくとも、レート制御ブロック３１０に等しいバッファサイズを含む。エンコーダ１０６は、その中の最後のマクロブロック３０２が、エンコードされた後に、各レート制御ブロック３１０を自動転送してもよい。デコーダ１２８は、各レート制御ブロック３１０のデコーディングプロセスを独立して開始してもよい。したがって、情報は、増加したレートおよび低減された待ち時間において、システム１００を通して送信される。ビットレートは、ビデオフレーム３００の「煩雑」部分に対応するために、レート制御ブロック３１０間で変動し得るが、レート制御のために構成されるビットレートより高くはならない。
【００４２】
図４は、開示される実施形態による、レート制御ブロック３１０を使用して、ビデオ伝送エンコーダ１０６内のビットレートを制御するための流れ図４００を図示する。ステップ４０２は、ビデオフレーム３００のためのフレームレベル初期設定を決定することによって実行される。これらの設定は、フレームあたりのビットの数、フレームあたりのマクロブロック３０２の数、レート制御ブロック３１０上のマクロブロック３０２の数、標的ビットレート、および同等物を含んでもよい。ステップ４０４は、ビデオフレーム３００内でレート制御ブロック３１０を生成することによって実行される。前述のように、ビデオフレーム３００は、マクロブロック３０２を備えるいくつかのレート制御ブロック３１０を含んでもよい。
【００４３】
ステップ４０６は、エンコーディングおよび伝送のためのレート制御ブロック３１０を選択することによって実行される。例えば、ビデオフレーム３００を参照すると、上部レート制御ブロック３１０が最初に選択され、下部レート制御ブロック３１０がエンコードされるまで続いてもよい。ステップ４０８は、レート制御ブロック初期設定を決定することによって実行される。標的ビットレートが選択され、レート制御ブロック３１０の持続時間に対応するバッファが設定される。
【００４４】
エンコーダ１０６は、選択されたレート制御ブロック３１０のサイズに基づいて、ビットの数を配分してもよい。設定に基づいて、ステップ４１０は、レート制御ブロック３１０のサイズに基づいて、標的ビットレートを使用して、マクロブロックレベルレート制御を行うことによって実行される。ステップ４１０は、図５によって、より詳細に開示される。
【００４５】
ステップ４１２は、レート制御ブロック３１０内のマクロブロック３０２のうちの１つをエンコードすることによって実行される。ステップ４１４は、エンコードされたマクロブロック３０２が、レート制御ブロック３１０内の最後のマクロブロックかどうかを決定することによって実行される。該当しない場合、流れ図４００は、ステップ４１０に戻り、残りのマクロブロック３０２をエンコードする。該当する場合、ステップ４１６は、仮想バッファ管理を行うことによって実行される。バッファ１１０内のエンコードされたデータは、ネットワーク１１８を通して、伝送のために送受信機１１４に自動転送される。バッファ１１０は、レート制御ブロック３１０のサイズに対応するので、上側レート制御ブロック３１０からのデータは、後続レート制御ブロック３１０をエンコードする間、遅延されない。
【００４６】
ステップ４１８は、ビデオフレーム３００内の最後のマクロブロック３０２が、エンコードされるかどうかを決定することによって実行される。該当しない場合、流れ図４００は、ステップ４０６に戻り、次のレート制御ブロック３１０を選択する。該当する場合、ビデオフレーム３００は全て、エンコードされており、新しいビデオフレームが受信されるはずである。したがって、流れ図４００は、ステップ４０２に戻る。
【００４７】
図５は、開示される実施形態による、マクロブロックレベルレート制御を行うための流れ図５００を図示する。流れ図５００はさらに、図４のステップ４１０を開示する。小さい待ち時間を達成するために、開示される実施形態は、マクロブロック３０２のための推定および予測エンコーディング値を使用してもよい。これらのプロセスは、エンコーディング時間を低減させるためのエンコーディングの間、マクロブロック３１０に対する値を「予測」する。しかしながら、そのような予測は、誤った推定をもたらす危険がある。この誤りは、特に、先行フレームから多くの移動および変化を有する煩雑ビデオフレーム内において生じる可能性が高くあり得る。
【００４８】
例えば、ビデオフレーム３００が、いくつかの雲を伴う青空を図示する場合、エンコーダ１０６は、レート制御ブロック３１０内のマクロブロック３０２に対する値が、青色背景に対して同一であると予測し得る。誤りは、マクロブロック３０２がマクロブロック内を飛行する飛行機に対する開始データを有するときに、マクロブロック３０２が青空に対する値を有するとエンコーダ１０６が予測するときに生じ得る。飛行機は、マクロブロック３０２が、青空に対するものと異なる値を有するような白色であり得るが、それでもやはり、エンコーダ１０６は、予測された値をとにかく使用する。そのような誤りは、値の複雑な変化に対処するために、高ビットレートをもたらし得る。
【００４９】
システム１００に関する小さい待ち時間制約のために、これらのような誤りは、回避されなければならない。図５によって示される開示される実施形態は、いくつかの動作を行うことにより、バッファオーバーフローおよび結果として生じる待ち時間を防止してもよい。１つのそのような動作は、レート制御ブロック３１０に対するバッファサイズ限界への接近を回避するためのものであってもよい。複雑な変化に起因するビットレート内での任意の突然の急上昇に対処するために、スペースがバッファ１１０内に残されるべきである。しかしながら、スペースにもかかわらず、バッファオーバーフローは、依然として生じ得、適宜、対処される必要がある。
【００５０】
ステップ５０２は、選択されたレート制御ブロック３１０に対する現在のビットレートが、バッファオーバーフローに近似するか否かを決定することによって実行される。該当しない場合、ステップ５０４は、次のマクロブロック予測のための圧縮レベル決定を行うことによって実行される。圧縮レベル結果を使用して、開示される実施形態は、以前にエンコードされたビデオフレーム３００に関してエンコードしているものに類似するマクロブロック３０２を予測してもよい。ステップ５０６は、流れ図４００に戻ることによって実行される。
【００５１】
ステップ５０２が該当する場合、ステップ５０８は、マクロブロック３０２が、全体的スペース予測フレーム（イントラフレーム、またはＩ−フレーム）または全体的時間予測フレーム（インターフレーム）ビデオ設定内にあるか否かを決定することによって実行される。該当しない場合、ステップ５１０は、レート制御ブロック３１０内のマクロブロック３０２の残りに対して、エンコーディングプロセスをスキップすることによって実行される。代わりに、エスケープマクロブロックが使用されてもよい。エンコーダ１０６は、デコーダ１２８に、現在のフレームが先行フレームに類似することを通知し、それらのマクロブロックは、レート制御ブロック３１０を埋めるために使用されてもよい。したがって、バッファオーバーフローは、ビットレートがバッファ１１０の容量を超えないので、回避される。
【００５２】
ステップ５０８が該当する場合、ステップ５１２は、レート制御ブロック３１０内の残りのマクロブロック３０２に特殊動作を行うことによって実行される。Ｉ−フレーム環境では、エンコーダ１０６は、ビデオデータが、先行ビデオフレームに関連しないので、エスケープマクロブロックを使用しなくてもよい。
【００５３】
イントラフレームコード化は、種々の可逆および不可逆の圧縮技法が、ビデオシーケンス内の任意の他のフレームに対してではなく、現在のフレーム内のみに含有される情報に対して行われるという事実を指す。言い換えると、時間的処理は、現在のピクチャまたはフレームの外側においては行われない。
【００５４】
したがって、予測シナリオは、Ｉ−フレームビデオフレームに対しては作用し得ない。ステップ５１２は、最小情報が送信されるように、部分的または全体的に、予測残余を除去する。エンコーダ１０６は、Ｉ−フレームマクロブロック３０２を使用し続けるが、残りのマクロブロック３０２は、使用されるビットの数を減少させるために、予測残余の大部分を０（ゼロ）にするであろう。その結果、ビットレートは、バッファ１１０に対して配分されたビットレート内に適合するように低減される。流れ図５００は、次いで、ステップ５０６を介して、流れ図４００に戻る。
【００５５】
本発明の精神または範囲から逸脱することなく、開示されるプライバシーカードカバーの実施形態において、種々の修正および変形例が行われてもよいことは、当業者に明白となるであろう。したがって、本発明は、修正および変形例が、任意の請求項およびその均等物の範囲内であることを条件として、前述で開示された実施形態の修正および変形例を網羅することが意図される。
なお、本発明は、実施の態様として以下の内容を含む。
〔態様１〕
ビデオ伝送システム内の画像フレームをエンコードするための方法であって、該方法は、
該画像フレームのレート制御ブロックを選択することであって、該レート制御ブロックは、複数のマクロブロックを含む、選択することと、
レート制御ブロック設定を決定することであって、それにより、ビットレートを配分する、決定することと、
該ビットレートに従って、該レート制御ブロックの該複数のマクロブロックをエンコードすることと、
を含む、方法。
〔態様２〕
前記決定するステップは、前記レート制御ブロックのサイズに対応する前記レート制御ブロック設定を含む、態様１に記載の方法。
〔態様３〕
前記ビットレートに従って、前記ビデオ伝送システム内のバッファのサイズを設定することをさらに含む、態様１に記載の方法。
〔態様４〕
前記画像フレームを複数のレート制御ブロックにパーティショニングすることをさらに含む、態様１に記載の方法。
〔態様５〕
マクロブロックレベルレート制御を行うことをさらに含む、態様１に記載の方法。
〔態様６〕
バッファが、前記エンコードされた複数のマクロブロックのサイズに起因してオーバーフロー状態にあるか否かを決定することをさらに含む、態様５に記載の方法。
〔態様７〕
前記マクロブロックレベルレート制御を行うことは、先行フレームのマクロブロックを複製することを含む、態様５に記載の方法。
〔態様８〕
前記マクロブロックレベルレート制御を行うことは、マクロブロック残余の部分をイントラフレームマクロブロックから除去することを含む、態様５に記載の方法。
〔態様９〕
ビデオ伝送エンコーディングシステムであって、該システムは、
画像フレーム内のレート制御ブロックが該画像フレームからの整数個のスライスから構成されることを保証するスライスパーティショナであって、該レート制御ブロックは、複数のマクロブロックを含む、スライスパーティショナと、
該レート制御ブロックのための該複数のマクロブロックをエンコードするエンコーダと
各レート制御ブロックのためのエンコードされたデータを記憶するバッファと
を備え、
該ビデオ伝送システムのためのビットレートおよび該バッファのサイズは、該レート制御ブロックのためのパラメータに従って設定される、システム。
〔態様１０〕
前記ビットレートおよび前記バッファのサイズを設定するパラメータは、前記レート制御ブロックのサイズに関連する、態様９に記載のビデオ伝送エンコーディングシステム。
〔態様１１〕
前記スライスパーティショナは、前記画像フレームから複数のレート制御ブロックを生成する、態様９に記載のビデオ伝送エンコーディングシステム。
〔態様１２〕
前記エンコーダは、前記バッファがオーバーフロー状態にあるとき、マクロブロックレベルレート制御を行うように構成される、態様９に記載のビデオ伝送エンコーディングシステム。
〔態様１３〕
前記ビットレートを使用して、前記レート制御ブロックの前記複数のマクロブロックをデコードするデコーダをさらに備える、態様９に記載のビデオ伝送エンコーディングシステム。
〔態様１４〕
ビデオ伝送内の画像フレームをエンコードするための方法であって、該方法は、
１つのレート制御ブロックを複数のレート制御ブロックから選択することと、
該レート制御ブロックの初期設定を決定することと、
該レート制御のエンコードされたデータを受信するバッファに対するサイズを設定することと、
該バッファのサイズに対応するビットレートに従って、該レート制御ブロック内の複数のマクロブロックをエンコードすることと
を含む、方法。
〔態様１５〕
前記画像フレームを前記複数のレート制御ブロックにパーティショニングすることをさらに含む、態様１４に記載の方法。
〔態様１６〕
前記バッファに対するオーバーフロー条件を決定することと、前記画像フレームがイントラフレームであるか否かに基づいて該オーバーフロー条件を回避する動作を行うこととをさらに含む、態様１４に記載の方法。
〔態様１７〕
前記レート制御ブロックの最後のマクロブロックがエンコードされるとき、新しいレート制御ブロックを選択することをさらに含む、態様１４に記載の方法。
〔態様１８〕
前記新しいレート制御ブロックの初期設定に従って、前記バッファのサイズおよび前記ビットレートを設定することをさらに含む、態様１７に記載の方法。
〔態様１９〕
前記レート制御ブロックは、前記画像フレームの１つ以上のスライスを含む、態様１に記載の方法。
〔態様２０〕
前記レート制御ブロックは、前記画像フレームの１つ以上のスライスを含む、態様１４に記載の方法。
【図１】
2016119708.tif 000003
【図２】
2016119708.tif 000004
【図３】
2016119708.tif 000005
【図４】
2016119708.tif 000006
【図５】
2016119708.tif 000007
【手続補正書】
【提出日】平成28年2月19日(2016.2.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオ伝送システム内の画像フレームをエンコードするための方法であって、該方法は、
該画像フレームのレート制御ブロックを選択することであって、該レート制御ブロックは、複数のマクロブロックを含む、選択することと、
レート制御ブロックのビットレートを決定することと、
前記レート制御ブロックのサイズに対応するようにバッファサイズを指定することと、
該ビットレートに従って、該レート制御ブロックの該複数のマクロブロックを１つずつエンコードすることであって、このエンコードすることが、
前記選択したレート制御ブロックについて、前記ビットレートでは前記バッファがオーバーフローしそうか否かを決定し、
オーバーフローしそうな場合、前記複数のマクロブロックのうちのエンコード対象のマクロブロックがインターフレーム内にあるかイントラフレーム内にあるかを決定し、
前記複数のマクロブロックのうちのエンコード対象のマクロブロックがインターフレーム内にあれば、前記レート制御ブロック内のマクロブロックの残りに対するエンコーディングプロセスをスキップすることにより、前記バッファのオーバーフローを回避し、
前記複数のマクロブロックのうちのエンコード対象のマクロブロックがイントラフレーム内にあれば、そのイントラフレームから予測残余を除去することにより、前記バッファのオーバーフローを回避する、ことと
を含む、方法。
【請求項２】
前記決定することは、前記レート制御ブロックのサイズに対応するようにビットレートを設定することを含む、請求項１に記載の方法。
【請求項３】
前記画像フレームを複数のレート制御ブロックにパーティショニングすることをさらに含む、請求項１に記載の方法。
【請求項４】
マクロブロックレベルレート制御を行うことをさらに含む、請求項１に記載の方法。
【請求項５】
前記バッファが、前記エンコードされた複数のマクロブロックのサイズに起因してオーバーフロー状態にあるか否かを決定することをさらに含む、請求項４に記載の方法。
【請求項６】
前記マクロブロックレベルレート制御を行うことは、前記レート制御ブロックを埋めるために先行フレームのマクロブロックを使用することを含む、請求項４に記載の方法。