(57)【要約】      （修正有）【課題】ビデオストリームのビットレートを低減するエンコード方法を提供する。【解決手段】方法は、エンコードされるビデオストリームのフレームを受信することと、定常領域を特定するためにフレーム内の動き検出を実施することと、時間的にフィルタリングされたピクセル値を提供するためにフレームを時間的にフィルタリングすることを含む。定常領域内のピクセルに関しては、そのピクセルのエンコード時には、そのピクセルがイントラ符号化されるであろうフレームのピクセルブロックに属していることを条件として、時間的にフィルタリングされたピクセル値が使用される。代わりに、そのピクセルがインター符号化されるであろうフレームのピクセルブロックに属していることを条件として、直近のフレームの相当するピクセルのエンコード時に使用された値が、そのピクセルのエンコード時に使用される。【選択図】図４
2018186493.tif 000002
【特許請求の範囲】
【請求項１】
ビデオストリームをエンコードする方法であって、
エンコードされるビデオストリームのフレームを受信すること（Ｓ０２）と、
何の動きも検出されない前記フレーム内の領域である定常領域を特定するために、前記フレーム内の動き検出を実施すること（Ｓ０４）と、
前記フレーム内の各ピクセルに関して時間的にフィルタリングされたピクセル値（３０４ａ−ｅ）を提供するために、前記フレームを時間的にフィルタリングすること（Ｓ０６）と、
前記フレームの前記定常領域内ではない各ピクセルに関して、
前記ピクセルのエンコード時に、前記時間的にフィルタリングされたピクセル値（３０４ａ−ｅ）を入力値として使用し（Ｓ１２）、
前記フレームの前記定常領域内の各ピクセルに関して、
前記ピクセルがイントラ符号化されるであろう前記フレームのピクセルブロックに属することを条件として、前記ピクセルのエンコード時に、前記時間的にフィルタリングされたピクセル値（３０４ａ−ｅ）を入力値として使用し（Ｓ１２）、
前記ピクセルがインター符号化されるであろう前記フレームのピクセルブロックに属することを条件として、前記ピクセルのエンコード時に、直前のフレームの相当するピクセルのエンコード時に使用された値（３０６ａ−ｅ）を入力値として使用すること（Ｓ１４）と、を含む方法。
【請求項２】
前記フレーム内のピクセルブロックがイントラ符号化されるかインター符号化されるかを表す情報を受信することをさらに含む、請求項１に記載の方法。
【請求項３】
前記情報が、ビデオストリーム内のどのフレームがイントラフレームとしてエンコードされるか、及び前記ビデオストリーム内のどのフレームがインターフレームとしてエンコードされるかを特定するピクチャグループ構造、即ちＧＯＰ構造を含み、イントラフレーム内の全てのピクセルブロックがイントラ符号化される、請求項２に記載の方法。
【請求項４】
前記情報が、前記ＧＯＰ構造内の前記インターフレームのどのピクセルブロックがイントラ符号化されるか、及び前記ＧＯＰ構造内の前記インターフレームのどのピクセルブロックがインター符号化されるかを特定するパターンをさらに含む、請求項３に記載の方法。
【請求項５】
前記情報が、前記フレームをイントラフレームとしてエンコードするという要求を含む、請求項２から４のいずれか一項に記載の方法。
【請求項６】
前記フレームの前記定常領域内の各ピクセルに関して、
前記時間的にフィルタリングされたピクセル値（３０４ａ−ｅ）を、前記直前のフレームの相当するピクセルのエンコード時に入力値として使用された前記値（３０６ａ−ｅ）と比較すること（Ｓ１３ａ）と、
前記時間的にフィルタリングされたピクセル値（３０４ａ−ｅ）が、前記直前のフレームの相当するピクセルのエンコード時に入力値として使用された前記値（３０６ａ−ｅ）から、閾値よりも大きく異なることを条件として、前記ピクセルがインター符号化されるであろう前記フレームのピクセルブロックに属していたとしても、前記ピクセルのエンコード時に前記時間的にフィルタリングされたピクセル値（３０４ａ−ｅ）を入力値として使用すること（Ｓ１２）
をさらに含む、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記時間的にフィルタリングされたピクセル値（３０４ａ−ｅ）及び、前記ピクセルのエンコード時に入力値として使用された前記値（３０６ａ−ｅ）を保存することをさらに含む、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記フレームを時間的にフィルタリングするステップ（Ｓ０６）は、前記フレーム内の各ピクセルに関して、前記直前のフレームについて計算された前記時間的にフィルタリングされたピクセル値（３０４ａ−ｅ）と前記フレームのピクセル値（３０２ａ−ｅ）との重み付け平均をとることによって、ビデオストリーム内の前記直前のフレームについて計算された時間的にフィルタリングされたピクセル値（３０４ａ−ｅ）を更新することとを含む、請求項１から７のいずれか一項に記載の方法。
【請求項９】
エンコードされるビデオストリームのフレームを受信するように構成された受信機（１１０）と、
何の動きも検出されない前記フレーム内の領域である定常領域を特定するために、前記フレーム内の動き検出を実施するように構成された動き検出器（１１２）と、
前記フレーム内の各ピクセルに関して時間的にフィルタリングされたピクセル値を提供するため、前記フレームを時間的にフィルタリングするように構成された時間的フィルタ（１１４）と、
エンコーダ（１１６）であって、
前記フレームの前記定常領域内ではない各ピクセルに関して、前記ピクセルのエンコード時に、前記時間的にフィルタリングされたピクセル値を入力値として使用し、
前記フレームの前記定常領域内の各ピクセルに関して、前記ピクセルが前記エンコーダによってイントラ符号化されるであろう前記フレームのピクセルブロックに属することを条件として、前記ピクセルのエンコード時に、前記時間的にフィルタリングされたピクセル値を入力値として使用し、前記ピクセルが前記エンコーダによってインター符号化されるであろう前記フレームのピクセルブロックに属する場合には、前記ピクセルのエンコード時に、直前のフレームの相当するピクセルのエンコード時に使用された値を入力値として使用するように構成された、エンコーダ（１１６）と
を備える、ビデオエンコーダ（１０８）。
【請求項１０】
請求項９に記載のビデオエンコーダ（１０８）を備える、ビデオカメラ（１００）。
【請求項１１】
処理能力を有するデバイスによって実行されたときに請求項１から８のいずれか一項に記載の方法を実施するように適合しているコンピュータコード命令を内部に保存して有する、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はビデオエンコーディングの分野に関する。具体的には、本発明は、ビデオストリームをエンコードするための方法、ビデオエンコーダ、及びビデオカメラに関する。
【背景技術】
【０００２】
ビデオカメラの利用は、日々ますます一般的になってきている。ビデオカメラの用途の１つは、監視用である。例えば、あるシーンを監視するために、ビデオカメラのネットワークが配設されてよい。典型的には、ビデオカメラによってキャプチャされたビデオストリームは、ネットワーク内のサーバまたはクライアントといった別のノードに送信されるのに先立って、ビデオカメラ内でエンコードされる。
【０００３】
ビデオコーディングは、通常、一方のエンコードされたビデオのストリームのビットレートと、他方のエンコードされたビデオの品質との間で、トレードオフの関係にある。上記のもののようなカメラシステム内では、ビデオカメラによってキャプチャされたビデオストリームは、通常、ノイズによって劣化する。ノイズをコーディングすると、ビデオの品質に貢献することなしにコストがかかるため、ビデオストリームにとっては、エンコーディングに先立ってノイズフィルタリングを行うことが好ましい。ｈ．２６４またはｈ．２６５規格を実装するコーデックといった現代のコーデックは空間的ノイズよりも時間的ノイズの影響を多く受けやすいため、ビデオストリームのエンコーディングの前に、時間的ノイズフィルタを適用するのが一般的な慣行である。
【０００４】
シーン内に何の動きも存在しないとき、時間的ノイズフィルタリングは、アーチファクトを招くことなくノイズを低減するのに非常に有効である。例えば、ビデオストリームの連続する２フレーム間に何の動きも存在しない状況を検討されたい。こうした状況では、時間的ノイズが最新のフレームと１つ前のフレームの同じピクセルの間の唯一の差分であり、アーチファクトを招くことなくノイズを低減するのに、時間的フィルタが効果的であろう。しかし、こうしたピクセルで時間的ノイズが低減されたとしても、ビデオストリーム内の連続するフレーム間で、依然としてピクセル値の変動が存在するであろう。これらの変動は、出力ビットレートに好ましくない形で寄与する。具体的には、ピクセル値の時間的変動は、インター符号化ブロックのエンコードにかかるコストに影響する。より具体的には、あるピクセルがインター符号化されるであろうフレームのピクセルブロックに属する場合、即ち、エンコーディングが１つ前のフレームからのピクセル値の予測に依存する場合、そのピクセル値が１つ前のフレームの値から変化している限り、ピクセル値のエンコーディングにはコストがかかるであろう。しかし、そうではなく、ピクセル値が１つ前のフレームに対して不変のままであれば、単に１つ前のフレームのピクセル値を参照することによって、そのピクセルはコストが一切かからずにエンコードされ得たであろう。したがって、改良の余地がある。
【発明の概要】
【０００５】
したがって、上記を踏まえて、エンコードされたビデオストリームのビットレートをさらに低減するエンコード方法を提供することが、本発明の目的である。
【０００６】
本発明の第１の態様によると、上記の目的は、
エンコードされるビデオストリームのフレームを受信することと、
何の動きも検出されないフレーム内の領域である定常領域を特定するために、フレーム内の動き検出を実施することと、
フレーム内の各ピクセルに関して時間的にフィルタリングされたピクセル値を提供するために、フレームを時間的にフィルタリングすることと、
フレームの定常領域内の各ピクセルに関して、
ピクセルがイントラ符号化されるであろうフレームのピクセルブロックに属することを条件として、ピクセルのエンコード時に、時間的にフィルタリングされたピクセル値を使用し、
ピクセルがインター符号化されるであろうフレームのピクセルブロックに属することを条件として、ピクセルのエンコード時に、直前のフレームの相当するピクセルのエンコード時に使用された値を使用することとを含む、
ビデオストリームのエンコード方法によって達成される。
【０００７】
提案されている方法は、動きが何も検知されていないピクセルについて、ノイズによって生じたピクセル値の時間的な変動を除去することによって、ビットレートが低減され得るという認識に基づいている。具体的には、あるピクセルがフレームの定常領域に属しており、そのピクセルがインター符号化されるであろうピクセルブロックに属している場合、そのピクセルのエンコード時には、１つ前のフレーム内の相当するピクセルのエンコード時に使用された値が使用されるであろう。その結果、そのピクセルは、単に１つ前のフレームの相当するピクセルに戻って参照することによって、コストを全くまたはほとんどかけずに、インター符号化され得る。したがって、あるピクセル内で動きがまったく発生しない限り、かつそのピクセルがインター符号化されるであろうブロックに属している限り、エンコーダによって使用されるピクセル値は「フリーズ」、即ち一定水準に保持される。この一定水準は、そのピクセルがイントラ符号化されるであろうブロックに属する都度、更新され、その時点の時間的にフィルタリングされたピクセル値に相当する。こうして、インター符号化ブロックは、はるかにより安価になる。なぜならば、フレーム間の時間的な変動が除去されるからである。イントラ符号化ブロックのコストは、同じままである。同時に、画質は大して損なわれない。
【０００８】
直前のフレームとは、別のフレームに直ぐに先行するフレームを意味しており、即ち、これらの２フレーム間には他のフレームは全く存在しない。以下では、簡潔にするため、１つ前のフレームという語と直前のフレームという語が、区別なしに使用される。
【０００９】
時間的にフィルタリングされたピクセル値とは、そのピクセル値が入力された時間的フィルタの出力値を意味する。
【００１０】
２つのピクセルは、ビデオストリーム内でフレームが異なっているにも関わらず同一のピクセル位置を占めている場合には、相当していると言われる。
【００１１】
ビデオフレームのシーケンスをエンコードするときには、使用されるコーディングの規格に従って、各ビデオフレームを１６×１６ピクセルのブロック、３２×３２ピクセルのブロック、６４×６４ピクセルのブロックといったピクセルブロックに分割して、ブロックごとにフレームをエンコードするのが一般的慣行である。これらのブロックは、ｈ．２６４／ＭＰＥＧ−４  ＡＶＣではマクロブロックとして、ｈ．２６５／ＨＥＶＣではコーディングユニットとして、知られている。このように、本書で使用されているフレームのピクセルのブロックとは、概して、ｈ．２６４／ＭＰＥＧ−４  ＡＶＣで知られているマクロブロック、ｈ．２６５／ＨＥＶＣで知られているコーディングユニットを意味している。
【００１２】
これらのブロックは、時にＩブロックと呼ばれるイントラブロックとして符号化されるか、または、時にＰブロックまたはＢブロックとし呼ばれるインターブロックとしてエンコードされてよい。ブロックがイントラ符号化される場合、ピクセル値は、同じフレーム内の近隣のブロックのエッジからの外挿によるなど、最新のフレームのみを参照して符号化される。これは、インター符号化ブロックとは対照的である。インター符号化ブロックは、動き補償を実行することによって、（ビデオストリーム内の直前のフレームに相当してよい）参照フレーム内のピクセルのブロックを参照してエンコードされる。
【００１３】
方法は、フレームの定常領域内に存在していないピクセルに関して、そのピクセルのエンコード時に、時間的にフィルタリングされたピクセル値を使用することをさらに含み得る。こうして、デフォルトで、ピクセルのエンコード時に、時間的にフィルタリングされたピクセル値が使用される。しかし、ピクセルが定常領域に属することを条件として、加えて、そのピクセルがインター符号化されるであろうブロックに属することを条件として、直前のフレームのエンコード時に使用された値が使用される。
【００１４】
上記の方法は、フレーム内のどのピクセルブロックがインター符号化され、どのピクセルブロックがイントラ符号化されるかがあらかじめ分かっている、即ちプレエンコードされる、ということを前提としている。この目的に関して、本方法は、フレーム内のあるピクセルブロックがイントラ符号化されるかインター符号化されるかを表す情報を受信することをさらに含む。受信した情報に基づいて、あるピクセルのエンコード時にどの値を使用するか、即ち時間的にフィルタリングされた値を使用するか、１つ前のフレームの相当するピクセルのエンコード時に使用された値を使用するかに関する決定がなされてよい。
【００１５】
ｈ．２５４及びｈ．２６５といった周知のビデオコーディング技術は、一連のフレーム間のビデオデータ量を低減するためにフレーム間予測を使用している。フレーム間予測には、ブロックベースの動き補償といった技術が関係している。この技術では、参照フレーム内のマッチするブロックを探すことによって、新しいフレームがブロックごとに予測され得る。インターフレーム予測では、各フレームが、イントラフレーム（時として、例えばＨ．２６４では、Ｉフレームと呼ばれる）またはインターフレーム（時として、例えばＨ．２６４では、ＰフレームまたはＢフレームと呼ばれる）といった、あるタイプのフレームとして分類される。イントラフレームは、他のいずれのフレームも参照することなく独立してデコードされ得る、自己完結型のフレームである。対照的に、インターフレームは、前にデコードされた１つ以上のフレームを参照する。イントラフレーム及びインターフレームは、ピクチャグループ（ＧＯＰ）構造によって規定されるビデオストリーム内の特定の順序で、配列されている。イントラフレームは、あるＧＯＰ構造の先頭を表しており、その後にいくつかのインターフレームが続く。
【００１６】
受信した情報は、ビデオストリーム内のどのフレームがイントラフレームとしてエンコードされるか、及びビデオストリーム内のどのフレームがインターフレームとしてエンコードされるかを特定するピクチャグループ構造、即ちＧＯＰ構造を含んでいてよく、イントラフレーム内の全てのピクセルブロックは、イントラ符号化される。こうして、受信したＧＯＰ構造は、最新のフレームがイントラフレームであるかインターフレームであるかを推論するのに使用されてよい。
【００１７】
上記のように、イントラフレームの全てのピクセルブロックがイントラ符号化される。ある実施形態では、あるインターフレームの全てのピクセルブロックがインター符号化される。しかし他の実施形態では、インターフレーム内のいくつかのピクセルブロックがイントラ符号化される一方、インターフレーム内の残りのピクセルブロックはインター符号化される。こうして、イントラフレーム間でも、イントラ符号化ブロックにとっての新たな参照ポイントが設定されてよい。これは、時として「イントラリフレッシュ」と呼ばれる。具体的には、イントラ符号化されるインターフレーム内のピクセルブロックを特定する、所定のパターンがあってよい。受信される情報は、こうしたパターンを含んでいてよい。さらに具体的には、この情報は、ＧＯＰ構造内のインターフレームのどのピクセルブロックがイントラ符号化されるか、及びＧＯＰ構造内のインターフレームのどのピクセルブロックがインター符号化されるかを特定するパターンを、さらに含んでいてよい。こうして、あるフレーム内のピクセルブロックは、受信したＧＯＰ構造及び受信したパターンから、インター符号化されるかイントラ符号化されるかが決定されてよい。
【００１８】
ＧＯＰ構造、及び上記のパターンは、あるフレームまたはピクセルブロックがイントラ符号化されるかインター符号化されるかを予測するのに使用され得る、所定の構造の例である。しかし、あるフレームをイントラフレームまたはインターフレームとしてエンコードするのには、他の理由もあってよい。例えば、エンコードされたビデオストリームがネットワーク経由でエンコーダから送信される際、いくつかのフレームが喪失される可能性がある。即ち、これらのフレームは受信者に決して到達しないであろう。もしこれが発生したら、ＧＯＰ構造がイントラフレームを予定しているか否かに関わらず、新たなイントラフレームをエンコードすることによって、エンコーディングを「再スタート」する必要があるかもしれない。新たなイントラフレームのエンコーディングは、要求を受けて、例えばネットワークインターフェースからの要求を受けて、行われ得る。このように、受信される情報は、フレームがイントラフレームとしてエンコードされるという要求を含んでいてよい。
【００１９】
ある実施形態では、１つ前のフレームのエンコード時に使用されたピクセル値を使用してピクセルをエンコードするのに先立って、さらなるチェックが実行されてよい。具体的には、時間的にフィルタリングされた値が、１つ前のフレームの相当するピクセルのエンコード時に使われたピクセル値からあまりにも大きく乖離している場合には、画質が損なわれ得る。上記が該当する場合は、ピクセルのエンコード時に、代わりに、時間的にフィルタリングされたピクセル値を使用するのが好適であり得る。詳細には、方法はさらに、
フレームの定常領域内の各ピクセルに関して、
時間的にフィルタリングされたピクセル値を、直前のフレームの相当するピクセルのエンコード時に使用された値と比較することと、
時間的にフィルタリングされたピクセル値が、直前のフレームの相当するピクセルのエンコード時に使用された値から、閾値よりも大きく異なることを条件として、そのピクセルがインター符号化されるであろうフレームのピクセルブロックに属していたとしても、ピクセルのエンコード時に時間的にフィルタリングされたピクセル値を使用することとを含み得る。
【００２０】
方法は、時間的にフィルタリングされたピクセル値及び、ピクセルのエンコード時に使用された値を保存することをさらに含み得る。こうして、時間的にフィルタリングされたピクセル値及びピクセルのエンコード時に使用された値は、次のフレームを処理するときに使用され得る。
【００２１】
フレームを時間的にフィルタリングするステップは、フレーム内の各ピクセルに関して、ビデオストリーム内の直前のフレームについて計算された時間的にフィルタリングされたピクセル値を更新することであって、直前のフレームについて計算された時間的にフィルタリングされたピクセル値は、この値とフレームのピクセル値とを組み合わせることによって更新される、更新することを含み得る。このように、時間的なフィルタリングを実行するために保存する必要があるのは、直前のフレームに関して時間的にフィルタリングされたピクセル値だけであり、そのピクセルの完全な時間的履歴は不要である。
【００２２】
直前のフレームについて計算された時間的にフィルタリングされたピクセル値は、直前のフレームについて計算された時間的にフィルタリングされたピクセル値と、このフレームのピクセル値との重み付け平均をとることによって更新され得る。
【００２３】
前に計算された時間的にフィルタリングされたピクセル値をこうやって更新することによって、時間的にフィルタリングされたピクセル値は、直前のフレームだけでなく、それよりも前のフレーム（複数）の集積とも一致するであろう。
【００２４】
重みは、動き検出ステップで決定される、そのピクセルが定常領域に属する確率に依存してよい。この確率が低ければ低いほど、時間的にフィルタリングされたピクセル値の相対的な重みは低くなり、フレームのピクセル値の相対的な重みは高くなる。
【００２５】
本発明の第２の態様によると、上記の目的は、
エンコードされるビデオストリームのフレームを受信するように構成された受信機と、
何の動きも検出されないフレーム内の領域である定常領域を特定するために、フレーム内の動き検出を実施するように構成された動き検出器と、
フレーム内の各ピクセルに関して時間的にフィルタリングされたピクセル値を提供するため、フレームを時間的にフィルタリングするように構成された時間的フィルタと、
フレームの定常領域内の各ピクセルに関して、
そのピクセルがエンコーダによってイントラ符号化されるであろうフレームのピクセルブロックに属することを条件として、ピクセルのエンコード時に、時間的にフィルタリングされたピクセル値を使用し、
そのピクセルがエンコーダによってインター符号化されるであろうフレームのピクセルブロックに属することを条件として、ピクセルのエンコード時に、直前のフレームの相当するピクセルのエンコード時に使用された値を使用するように構成されたエンコーダを備える、ビデオエンコーダによって達成される。
【００２６】
本発明の第３の態様によると、上記の目的は、第２の態様によるビデオエンコーダを備えるビデオカメラによって達成される。
【００２７】
本発明の第４の態様によると、上記の目的は、処理能力を有するデバイスによって実行されたときに第１の態様による方法を実施するように適合しているコンピュータコード命令を内部に保存して有している、非一時的コンピュータ可読媒体によって達成される。
【００２８】
第２、第３、及び第４の態様は、概して第１の態様と同じ特徴と利点を有していてよい。本発明はさらに、別様に明記されていない限り、特徴の可能なすべての組み合わせに関連することに留意されたい。
【００２９】
本発明の上記の及びさらなる目的、特徴、利点は、付随する図面を参照しつつ、本発明の好ましい実施形態の以下の例示的かつ非限定的な詳細説明を通して、よりよく理解されるであろう。図面では、類似の要素に対して同じ参照番号が使用されている。
【図面の簡単な説明】
【００３０】
【図１】実施形態によるビデオカメラを示す。
【図２】実施形態によるビデオエンコーダを示す。
【図３】ビデオストリームの特定のピクセル位置に関する、測定されたピクセル値、時間的にフィルタリングされたピクセル値、及びエンコードされたピクセル値を示す。
【図４】実施形態による方法のフロー図である。
【図５】さらなる実施形態による方法のフロー図である。
【発明を実施するための形態】
【００３１】
ここで、本発明の実施形態を示す添付図面を参照して、本発明をより網羅的に説明する。本書で開示されるシステム及びデバイスは、動作中のものについて記載する。
【００３２】
図１は、ビデオカメラ１００を示す。ビデオカメラ１００は、センサ１０１、画像パイプライン１０２、及びネットワークインターフェース１０４を備える。画像パイプライン１０２は、画像処理部１０６及び、画像処理部１０６の下流に配設されたビデオエンコーダ１０８を有する。このように、ビデオカメラ１００の全般的な構造は、従来型のものである。しかし、ビデオカメラ１００は、内部構造とビデオエンコーダ１０８の機能において、従来型のビデオカメラとは異なる。
【００３３】
ビデオカメラ１００は、センサ１０１を介して、連続するフレームのビデオストリームをキャプチャするように構成されている。これらのフレームは、画像パイプライン１０２を通過し、画像処理部１０６及びビデオエンコーダ１０８によって、画像パイプライン１０２内で処理される。ビデオエンコーダ１０８から出力された、エンコードされたビデオストリーム即ちエンコードされたフレームのシーケンスは、次に、ネットワークインターフェース１０４を介して、ネットワーク上、例えばビデオエンコーダに、ビットストリームとして送信されてよい。
【００３４】
図２は、ビデオエンコーダ１０８をより詳細に示している。ビデオエンコーダは、受信機１１０と、動き検出器１１２と、時間的フィルタ１１４と、エンコーダ１１６と、送信機１１８とを備える。
【００３５】
ビデオエンコーダ１０８と、具体的にはエンコーダ１１６は、一連のフレーム間のビデオデータ量を低減するため、通常、ｈ．２６４またはｈ．２６５で規定されているものといった、フレーム間予測を使用する。フレーム間予測では、各フレームが、イントラフレーム（時として、例えばｈ．２６４では、Ｉフレームと呼ばれる）またはインターフレーム（時として、例えばｈ．２６４では、ＰフレームまたはＢフレームと呼ばれる）といった、あるタイプのフレームとして分類される。イントラフレームは、他の画像を全く参照することなく独立してデコードされ得る、自己完結型のフレームである。具体的には、イントラフレームのエンコード時には、予測、変換、及びエントロピーコーディングを介して、単一のフレームの所与のチャネル内のピクセルの空間的な冗長性を利用することによって、輝度チャネル及び色度チャネルがエンコードされる。これは、フレームをコーディングするのに、より前のイントラフレーム及び／またはインターフレームの一部が参照されるインターフレームとは対照的である。インターフレームのエンコード時には、別々のフレーム間の時間的な冗長性が利用され、エンコーディングは、選択されたピクセルブロックに関して１つのフレームから別のフレームまでのピクセル内の動きをエンコードすることによって、１つ以上の前のフレームからフレームの一部を予測する、動き補償予測技術に依存する。
【００３６】
このように、ビデオエンコーダ１０８は、ビデオエンコーダ１０８の機能を実装するように構成された、様々な構成要素１１０、１１２、１１４、１１６、１１８を含んでいる。概して、ビデオエンコーダ１０８は、構成要素１１０、１１２、１１４、１１６、１１８、より具体的にはそれらの機能を実装するように構成された、回路を含んでいてよい。
【００３７】
ハードウェアの実装では、構成要素１１０、１１２、１１４、１１６、１１８のそれぞれは、その構成要素の機能を提供することに特化しそのために具体的に設計された、回路に対応していてよい。この回路は、１つ以上の特定回路向け集積回路といった、１つ以上の集積回路の形態であってよい。一例として、時間的フィルタ１１４は、使用されたときに、受信したビデオストリーム内でフレームを時間的にフィルタリングする、回路を含んでいてよい。
【００３８】
ソフトウェア実装では代わりに、回路は、非揮発性メモリといった（非一時的）コンピュータ可読媒体に保存されたコンピュータコード命令と関連して、本書で開示される任意の方法をビデオエンコーダ１０８に実行させる、マイクロプロセッサといった回路の形態であってよい。したがって、この場合、構成要素１１０、１１２、１１４、１１６、１１８は、それぞれ、プロセッサによって実行されたときにビデオエンコーダ１０８に各構成要素の機能を実行させる、コンピュータ可読媒体内に保存されたコンピュータコード命令の一部に対応していてよい。
【００３９】
ハードウェア実装とソフトウェア実装を組み合わせること、即ち、いくつかの構成要素１１０、１１２、１１４、１１６、１１８の機能はハードウェアで実装され、他のものはソフトウェアで実装される、ということもまた可能であることは、理解されるべきである。
【００４０】
これより、図２、図３、及び図４のフロー図を参照して、ビデオエンコーダ１０８の動作を解説する。
【００４１】
ステップＳ０２で、受信機１１０は、エンコードされるビデオストリームのフレームを受信する。
【００４２】
ステップＳ０４で、動き検出器１１２が、フレーム内の動き検出を実施する。動き検出の目的は、フレーム内の定常領域、即ちフレームの何の動きも生じていない領域を特定することである。任意の既知の動き検出アルゴリズムが、この目的のために使用されてよい。
【００４３】
単純な動き検出アルゴリズムは、最新のフレーム内で測定されたピクセル値と、１つ前のフレーム内の相当するピクセルの測定されたピクセル値との差分を計算し得る。この差分が閾値よりも大きい場合、ピクセル内に動きが存在すると判定される。そうでない場合には、ピクセル内に動きが存在しない、即ちこのピクセルは定常領域に属すると判定される。より高度な動き検出アルゴリズムは、そうではなく、一度に１群のピクセルを見て、より信頼性の高い結果を得るであろう。
【００４４】
ステップＳ０６では、フレームが、フレームを時間的にフィルタリングする時間的フィルタ１１４内に入力される。原理上、時間的フィルタ１１４は、あらゆる既知の時間的フィルタリング方法を実装してよい。しかし好ましくは、時間的フィルタ１１４は、最新フレームのピクセル値と、１つ前のフレームの時間的にフィルタリングされたピクセル値にのみアクセスする必要があるようにして、実装される。こうして、保存する必要があるデータの量が削減され得る。例えば、時間的フィルタ１１４は、各ピクセル位置に関して、例えば１つ前のフレームの時間的にフィルタリングされたピクセル値を最新フレームのピクセル値と組み合わせることによって、１つ前のフレームの時間的にフィルタリングされたピクセル値を最新フレームのピクセル値に基づいて更新し得る。更新された時間的にフィルタリングされたピクセル値は、次に、後続するフレームの処理時に使用されるために、保存され得る。これは、図３でさらに示される。
【００４５】
図３は、特に、ビデオストリーム内の特定のピクセル位置に関して、測定されたピクセル値３０２ａ−ｅ（三角形）と、時間的にフィルタリングされたピクセル値３０４ａ−ｅ（四角形）を、時間の関数として概略的に示す。ビデオストリームは、時点ｔ−２において開始されると仮定する。当初、時点ｔ−２における時間的にフィルタリングされたピクセル値３０４ａは、時点ｔ−２における測定されたピクセル値３０２ａと等しくなるように設定される。時点ｔ−１に相当する新しいフレームが受信されると、１つ前のフレームからの時間的にフィルタリングされたピクセル値３０４ａは、時点ｔ−１で測定されたピクセル値３０２ｂと組み合わされることによって更新される。こうして得られた、更新された時間的にフィルタリングされたピクセル値３０４ｂは、将来の使用のために保存される。例えば、１つ前のフレームからの時間的にフィルタリングされたピクセル値３０４ａと最新フレームのピクセル値３０２ｂとの重み付き和は、以下によって計算され得る。
Ｘｔ−１＝ａＸｔ−２＋（１−ａ）Ｙｔ−１
式中、Ｘｔ−１は、時点ｔ−１において更新された、時間的にフィルタリングされたピクセル値（即ち、アイテム３０４ｂ）を表し、Ｘｔ−２は、時点ｔ−２において計算された、時間的にフィルタリングされたピクセル値（即ち、アイテム３０４ａ）を表し、Ｙｔ−１は、時点ｔ−１において測定されたピクセル値（即ち、アイテム３０２ｂ）を表す。「ａ」は、測定されたピクセル値３０２ｂと、１つ前のフレームからの時間的にフィルタリングされたピクセル値３０４ａをどのように混合するかを決定するパラメータである。このパラメータ値は、時間的に一定であってよい。しかし、時間的に変化してもよい。具体的には、このパラメータ値は、ピクセル内に動きがあるという可能性を表す、動き検出器１１２からの情報に基づいていてよい。
【００４６】
時間的フィルタ１１４は、新たなフレームを受信する度に上記の手順を繰り返す。こうして、時点ｔで、時間的にフィルタリングされたピクセル値３０４ｃが、時間的にフィルタリングされたピクセル値３０４ｂと測定されたピクセル値３０２ｃとの組み合わせとして計算され、他も同様である。
【００４７】
本方法の次のステップは、エンコーダ１１６によってフレームをエンコードすることである。しかし、エンコーダ１１６は、フレーム内のあるピクセルに関して、ピクセル内に動きが検出されているかどうかに応じて、及びそのピクセルがイントラ符号化されるピクセルブロックに属しているかインター符号化されるピクセルブロックに属しているかに応じて、異なる入力値を使用するであろう。このことについて、以下で説明する。
【００４８】
ステップＳ０８で、エンコーダ１１６は、フレーム内の各ピクセルに関して、ステップＳ０４で動き検出器１１２によって、そのピクセル内で動き１１２が検出されたかどうかをチェックする。動きが検出されたピクセル、即ちフレーム内の定常領域内ではないピクセルに関しては、エンコーダ１１６はステップＳ１２で、ピクセルのエンコード時に、時間的にフィルタリングされたピクセル値を使用する。
【００４９】
代わりにステップＳ０８で、エンコーダ１１６が、ステップＳ０４で動き検出器１１２によってピクセル内の動きが何も検出されなかったと認定した場合、即ちそのピクセルが定常領域に属している場合には、エンコーダ１１６は、ステップＳ１０に進む。
【００５０】
エンコーダ１１６は、フレームの定常領域内の各ピクセルについて実行されるステップＳ１０で、そのピクセルがイントラ符号化されるであろうフレームのピクセルブロックに属しているかどうかをチェックする。このチェックを実行するために、エンコーダ１１６は、あるピクセルブロックがイントラ符号化されるかまたはインター符号化されるかを表す情報へのアクセスを有するか、この情報を受信してよい。この情報は、ビデオエンコーダ１１６のメモリに保存され得る。例えば、ビデオエンコーダ１０８は、ビデオストリーム内でイントラフレームとインターフレームが配列されている順序を規定する、ピクセルグループ構造、即ちＧＯＰ構造へのアクセスを有していてよい。イントラフレーム内の全てのピクセルブロックは、イントラ符号化される。即ち、別のフレームを参照することなく符号化される。しかし、このことはインターフレームには必ずしも該当しない。即ち、インターフレーム内の全てのピクセルブロックが、必ずしもインター符号化される訳ではない。あるケースでは、インターフレームのどのブロックがイントラ符号化されるかが、あらかじめ決定される。例えば、インターフレーム内のどのブロックがイントラ符号化されるかを特定するパターンがあってよい。これは時として、イントラリフレッシュパターンと呼ばれる。ビデオエンコーダ１０８と、より具体的にはエンコーダ１１６は、このパターンへのアクセスを有していてよいか、またはこのパターンを受信してよい。こうしてエンコーダ１１６は、このパターンに基づいて、フレーム内のどのブロックがイントラブロック及びインターブロックとしてエンコードされるかを推論してよい。
【００５１】
さらにまたは代わりに、ビデオエンコーダ１１６は、このフレームをイントラフレームとしてエンコードする要求をネットワークインターフェース１０４から受信してもよい。これは、例えば、仮にあるフレームが通信中に失われ、イントラフレームをエンコードすることによってエンコーディングを再スタートする必要がある、というケースであってよい。
【００５２】
ステップＳ１０の判定が、利用可能なプレエンコーディングがどれであるかという情報に基づいていることは、留意すべきである。こうして、もしあるブロックが、エンコード前に入手可能な情報によるとインター符号化される予定であり、かつエンコーダ１１６が何らかの理由で後のエンコード処理中にイントラ符号化すると決定した場合、ステップＳ１０の出力は依然として、インター符号化するというものである。
【００５３】
エンコーダ１１６がステップＳ１０で、あるピクセルがイントラ符号化される予定のブロックに属していると認定した場合、エンコーダ１１６は、ピクセルのエンコード時にステップＳ０６からの時間的にフィルタリングされたピクセル値を使用する。ステップＳ１２参照。
【００５４】
代わりに、エンコーダ１１６がステップＳ１０で、あるピクセルがインター符号化される予定のブロックに属していると認定した場合、エンコーダ１１６は、ピクセルのエンコード時に１つ前のフレームの相当するピクセルのエンコード時に使用された値を使用する。ステップＳ１４参照。どちらの場合にも、エンコード時にエンコーダ１１６が使用する値は、将来の使用のために保存される。
【００５５】
上記は、図３の例でさらに説明される。図３の例では、例示されているピクセル位置は、フレームの定常領域内にあると仮定されており、即ち、示されている時間間隔の間、ステップＳ０８で、動き検出器１１２によって、このピクセル内に何の動きも検出されない。円３０６ａ−ｅは、種々の時点においてピクセルのエンコード時にエンコーダ１１６によって使用される値を表す。これらの値は、図３で、Ｚｔ−２，…Ｚｔ＋２によっても表されている。
【００５６】
上記でさらに検討されたように、ビデオストリームは、時点ｔ−２において開始される。ビデオストリームの第１のフレームはイントラフレームとしてエンコードされる。即ち、このフレームの全てのブロックが、イントラ符号化される。したがって、このピクセルは、時点ｔ−２では、イントラ符号化されるブロックに属している。時点ｔ２における「Ｉブロック」の標示は、このブロックがイントラブロックであることを示す。Ｉブロックは、例えばｈ．２６４で、イントラ符号化されたブロックとして使われている用語である。ステップＳ１０及びＳ１２に進むと、時点ｔ−２でピクセルのエンコード時にエンコーダ１１６が使用する値３０６ａは、時間的にフィルタリングされたピクセル値３０４ａ、即ちＺｔ−２＝Ｘｔ−２に設定される。
【００５７】
時点ｔ−１では、このピクセルは、「Ｐブロック」という標示によって表される、インター符号化されるであろうブロックに属している。Ｐブロックとは、例えばｈ．２６４において、インター符号化されたブロックに使われる用語である。ステップＳ１０及びＳ１４に進むと、時点ｔ−１でピクセルのエンコード時にエンコーダ１１６が使用する値３０６ｂは、１つ前のフレーム内の同じピクセルのエンコード時に使用された値、即ち値３０６ａである。言い換えれば、Ｚｔ−１＝Ｚｔ−２である。こうして、エンコーダ１１６は、１つ前のフレームのエンコード時に使用された値をコピーするであろう。
【００５８】
時点ｔでも再び、このピクセルは、「Ｐブロック」という標示によって表される、インター符号化されるであろうブロックに属している。したがって、ステップＳ１０及びＳ１４に進むと、ピクセルのエンコード時にエンコーダ１１６が使用する値３０６ｃは、１つ前のフレーム内の同じピクセルのエンコード時に使用された値３０６ｂであり、即ちＺｔ＝Ｚｔ−１である。
【００５９】
時点ｔ＋１でも、同じ理由によって同じことが繰り返され、Ｚｔ＋１＝Ｚｔである。
【００６０】
次のフレーム、即ち時点ｔ＋２では、このピクセルは代わりに、「Ｉブロック」という標示によって表される、イントラ符号化されるであろうブロックに属している。ステップＳ１０及びＳ１２に進むと、時点ｔ＋２でピクセルのエンコード時にエンコーダ１１６が使用する値３０６ｅは、時点ｔ＋２で更新された時間的にフィルタリングされたピクセル値３０４ｅ、即ちＺｔ＋２＝Ｘｔ＋２に設定される。
【００６１】
時間的シーケンス全体を見てみると、ピクセルのエンコード時にエンコーダ１１６が使用する値は、時点ｔ−２、ｔ−１、ｔ、ｔ＋１において一定のままであり、時点ｔ−２からの時間的にフィルタリングされたピクセル値Ｘｔ−２と等しい。したがって、エンコーダ１１６が使用する値は、時点ｔ−２では、時間的フィルタ１１４からの出力水準でフリーズされている。この値は、次にこのピクセルがイントラ符号化されるブロックに含まれるまで、この場合には時点ｔ＋２まで、フリーズされる。この時点では、エンコーダ１１６が使用する値は、時点ｔ＋２における時間的フィルタ１１４からの出力に設定される。こうして、時点ｔ＋２でエンコーダ１１６が使用する値は、このピクセルがイントラ符号化されるブロックに属するまで、再びフリーズされる。この時点では、時点ｔ＋２における時間的フィルタ１１４の出力水準でフリーズされている。インター符号化中はピクセル値が不変のままなので、エンコーダ１１６は、単に１つ前のフレーム内の値を参照することによってこのピクセルをエンコードし得る。こうして、エンコーダ１１６の出力ビットレートは顕著に低減され得る。同時に、ビデオ画質は大して損なわれない。
【００６２】
時間の経過に伴って、時間的フィルタ１１４の最新の出力値が、ピクセルがフリーズする値の水準から、即ち時間的フィルタ１１４の古い出力値に相当する水準から、乖離し始めるということが起こり得る。乖離が大きくなりすぎる場合は、ビデオ画質が損なわれ得、デコードされた動画に視覚的アーチファクトが生じ得る。図５は、この潜在的な問題の克服を狙った一実施形態を示す。
【００６３】
図５の実施形態は、時間的フィルタ１１４の古い出力レベルに相当するフリーズされた値の、時間的フィルタ１１４の最新の出力値からの乖離が大きすぎないかどうかに関するさらなるチェックが実行されるという点で、図４に関連して記載された実施形態とは異なる。
【００６４】
より詳細には、フレームの定常領域に属するピクセルに関して、及びインター符号化されるであろうピクセルブロックに属するピクセルに関して、エンコーダ１１６はステップＳ１３ａで、時間的にフィルタリングされたピクセル値を、１つ前のフレームの相当するピクセルのエンコード時に使用された値と比較する。言い換えれば、エンコーダ１１６は、時間的フィルタ１１４の最新の出力を、１つ前のフレームのエンコード時に使用された値、即ち「フリーズされた」水準と比較する。図３を参照すると、こうしてエンコーダ１１６は時点ｔ−１において、時間的にフィルタリングされたピクセル値３０４ｂを、１つ前のフレーム内のピクセルのエンコード時に使用された値３０６ａと比較するのである。したがって、数式で表すと、エンコーダ１１６はＸｔ−１をＺｔ−２と比較するのである。構造としてＺｔ−２＝Ｘｔ−２であるため、実際には上記は、エンコーダ１１６はＸｔ−１をＸｔ−２と比較することを意味する。
【００６５】
ビデオエンコーダ１１６がステップＳ１３ｂで、時間的にフィルタリングされたピクセル値３０４ｂと１つ前のフレームのエンコード時に使用された値３０６ａとの差分が所定の閾値以下であると認定した場合、ビデオエンコーダ１１６は、１つ前のフレーム内の相当するピクセルのエンコード時に使用した値３０６ａを使用する。この場合、こうして図４の実施形態と同じ結果となる。
【００６６】
しかしビデオエンコーダ１１６がステップＳ１３ｂで、差分が閾値を上回ると認定した場合、エンコーダ１１６は、代わりに時間的にフィルタリングされたピクセル値３０４ｂを使用する。こうして、ピクセルのエンコード時に使用される値は、イントラ符号化されるブロックの間であっても、新しい水準でフリーズされ得る。
【００６７】
閾値は、テスト用ビデオストリームに対してエンコードを実行し、どの値の閾値が容認できるビデオ画質をもたらすかを確かめることによって、実証的に設定されてよい。閾値はまた、利用可能な帯域幅に応じた調整用パラメータとして使用されてもよい。帯域幅が非常に限定されている場合、閾値は高い値に設定されてよく（極限では、図４の実施形態を用いるのと等しい）、一方でより広い帯域幅が利用可能な場合、より低い値の閾値が選択されてよい。こうして、帯域幅とビデオ画質との間の所望のトレードオフが実現されてよい。
【００６８】
当業者が上記の実施形態を様々な形で変更した上で、なお上記の実施形態において示されている本発明の利点を利用することが可能であることは、理解されるであろう。例えば、本発明の実施形態は、ビデオ会議やスポーツ用デジタルビデオといった種々の用途で使用可能である。本発明が、イントラ符号化とインター符号化を伴うＧＯＰ構造を用いるあらゆるエンコードスキーム、例えばｈ．２６４、ｈ．２６５、及びＶＰＸで使用され得ることも、また理解される。従って、本発明は、示された実施形態に限定されるべきではなく、添付の特許請求の範囲によってのみ限定されるべきである。さらに、当業者が理解しているように、示された実施形態は、組み合わされてもよい。
【図１】
2018186493.tif 000003
【図２】
2018186493.tif 000004
【図３】
2018186493.tif 000005
【図４】
2018186493.tif 000006
【図５】
2018186493.tif 000007
【外国語明細書】
2018186493000001.pdf
2018186493000002.pdf
2018186493000003.pdf
2018186493000004.pdf