(57)【要約】  本明細書では、低複雑度符号化および背景検出のためのシステムおよび方法について説明する。本開示において説明する主題の一態様は、ビデオブロック図を記憶するように構成されたメモリを備えるビデオエンコーダを提供する。ビデオエンコーダは、メモリと通信するプロセッサをさらに備える。プロセッサは、ビデオブロックを前の時間フレーム内に位置する対応するブロックと比較することによって、ビデオブロックが背景であるかどうかを判定するように構成される。プロセッサは、ビデオブロックが背景ではないときに、ビデオブロックの1つまたは複数のサブブロックを前の時間フレーム内に位置する対応するサブブロックと比較することによって、ビデオブロックのサブブロックが背景であるかどうかを判定するようにさらに構成される。
2017513346.tif 000002
【特許請求の範囲】
【請求項１】
ビデオエンコーダであって、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信するプロセッサと
を備え、前記プロセッサは、
前記ビデオブロックを前の時間フレーム内に位置する対応するブロックと比較することによって、前記ビデオブロックが背景であるかどうかを判定することと、
前記ビデオブロックが背景ではないときに、前記ビデオブロックの1つまたは複数のサブブロックを前記前の時間フレーム内に位置する対応するサブブロックと比較することによって、前記ビデオブロックの前記サブブロックが背景であるかどうかを判定することとを行うように構成されるビデオエンコーダ。
【請求項２】
前記プロセッサは、距離メトリックを前記ビデオブロックと前記対応するブロックとの間の絶対差分和または2乗誤差和のうちの少なくとも一方として算出し、前記距離メトリックがしきい値よりも小さいかどうかを判定することによって前記ビデオブロックが背景であるかどうかを判定するようにさらに構成される、請求項1に記載のビデオエンコーダ。
【請求項３】
前記プロセッサは、前記前の時間フレームに関連する統計に応答して前記しきい値を適応可能に変更するようにさらに構成される、請求項2に記載のビデオエンコーダ。
【請求項４】
前記統計は、前記前の時間フレームのブロックに関連する動きベクトルが空間オフセット値と同じである前記前の時間フレームの前記ブロックに関連する前記距離メトリックの和を含み、前記空間オフセット値は、グローバル動きベクトル値またはゼロ動きベクトル値に等しい、請求項3に記載のビデオエンコーダ。
【請求項５】
前記対応するブロックは、前記ビデオブロックに対して空間的にコロケートされる、請求項1に記載のビデオエンコーダ。
【請求項６】
前記プロセッサは、ビデオブロックのコンテンツが前記前の時間フレームに対して所定の量よりも多く変化したかどうかを判定することによって前記ビデオブロックが背景であるかどうかを判定するようにさらに構成される、請求項1に記載のビデオエンコーダ。
【請求項７】
前記サブブロックは、前記ビデオブロックのサイズの4分の1である、請求項1に記載のビデオエンコーダ。
【請求項８】
プロセッサは、前記ビデオブロックの前記サブブロックのうちの1つが背景ではないときに、前記サブブロックの1つまたは複数のサブブロックを前記前の時間フレーム内に位置する対応するサブサブブロックと比較することによって、前記サブブロックの前記サブブロックが背景であるかどうかを判定するようにさらに構成される、請求項1に記載のビデオエンコーダ。
【請求項９】
前記プロセッサは、簡略化された動き決定プロセス、簡略化された動き推定プロセス、またはその両方を利用して、(1)前記ビデオブロックが背景であるときに前記ビデオブロックを符号化するか、(2)前記1つまたは複数のサブブロックが背景であるときに前記1つまたは複数のサブブロックを符号化するか、あるいは(3)(1)と(2)の両方を行うようにさらに構成される、請求項1に記載のビデオエンコーダ。
【請求項１０】
ビデオを符号化する方法であって、
ビデオブロックを記憶するステップと、
前記ビデオブロックを前の時間フレーム内に位置する対応するブロックと比較することによって、前記ビデオブロックが背景であるかどうかを判定するステップと、
前記ビデオブロックが背景ではないときに、前記ビデオブロックの1つまたは複数のサブブロックを前記前の時間フレーム内に位置する対応するサブブロックと比較することによって、前記ビデオブロックの前記サブブロックが背景であるかどうかを判定するステップとを含む方法。
【請求項１１】
距離メトリックを前記ビデオブロックと前記対応するブロックとの間の絶対差分和または2乗誤差和のうちの少なくとも一方として算出し、前記距離メトリックがしきい値よりも小さいかどうかを判定することによって前記ビデオブロックが背景であるかどうかを判定するステップをさらに含む、請求項10に記載の方法。
【請求項１２】
前記前の時間フレームに関連する統計に応答して前記しきい値を適応可能に変更するステップをさらに含む、請求項11に記載の方法。
【請求項１３】
前記統計は、前記前の時間フレームのブロックに関連する動きベクトルが空間オフセット値と同じである前記前の時間フレームの前記ブロックに関連する前記距離メトリックの和を含み、前記空間オフセット値は、グローバル動きベクトル値またはゼロ動きベクトル値に等しい、請求項12に記載の方法。
【請求項１４】
前記対応するブロックは、前記ビデオブロックに対して空間的にコロケートされる、請求項10に記載の方法。
【請求項１５】
ビデオブロックのコンテンツが前記前の時間フレームに対して所定の量よりも多く変化したかどうかを判定することによって前記ビデオブロックが背景であるかどうかを判定するステップをさらに含む、請求項10に記載の方法。
【請求項１６】
前記サブブロックは、前記ビデオブロックのサイズの4分の1である、請求項10に記載の方法。
【請求項１７】
前記ビデオブロックの前記サブブロックのうちの1つが背景ではないときに、前記サブブロックの1つまたは複数のサブブロックを前記前の時間フレーム内に位置する対応するサブサブブロックと比較することによって、前記サブブロックの前記サブブロックが背景であるかどうかを判定するステップをさらに含む、請求項10に記載の方法。
【請求項１８】
簡略化された動き決定プロセス、簡略化された動き推定プロセス、またはその両方を利用して、(1)前記ビデオブロックが背景であるときに前記ビデオブロックを符号化するか、(2)前記1つまたは複数のサブブロックが背景であるときに前記1つまたは複数のサブブロックを符号化するか、あるいは(3)(1)と(2)の両方を行うステップをさらに含む、請求項10に記載の方法。
【請求項１９】
コードを含む非一時的コンピュータ可読記憶媒体であって、前記コードは、実行されたときに、装置に、
ビデオブロックを記憶することと、
前記ビデオブロックを前の時間フレーム内に位置する対応するブロックと比較することによって、前記ビデオブロックが背景であるかどうかを判定することと、
前記ビデオブロックが背景ではないときに、前記ビデオブロックの1つまたは複数のサブブロックを前記前の時間フレーム内に位置する対応するサブブロックと比較することによって、前記ビデオブロックの前記サブブロックが背景であるかどうかを判定することとを行わせるコンピュータ可読媒体。
【請求項２０】
実行されたときに、前記装置に、距離メトリックを前記ビデオブロックと前記対応するブロックとの間の絶対差分和または2乗誤差和のうちの少なくとも一方として算出し、前記距離メトリックがしきい値よりも小さいかどうかを判定することによって前記ビデオブロックが背景であるかどうかを判定させるコードをさらに含む、請求項19に記載のコンピュータ可読媒体。
【請求項２１】
実行されたときに、前記装置に、前記前の時間フレームに関連する統計に応答して前記しきい値を適応可能に変更するコードをさらに含む、請求項20に記載のコンピュータ可読媒体。
【請求項２２】
前記統計は、前記前の時間フレームのブロックに関連する動きベクトルが空間オフセット値と同じである前記前の時間フレームの前記ブロックに関連する前記距離メトリックの和を含み、前記空間オフセット値は、グローバル動きベクトル値またはゼロ動きベクトル値に等しい、請求項21に記載のコンピュータ可読媒体。
【請求項２３】
実行されたときに、前記装置に、ビデオブロックのコンテンツが前記前の時間フレームに対して所定の量よりも多く変化したかどうかを判定することによって前記ビデオブロックが背景であるかどうかを判定させるコードをさらに含む、請求項19に記載のコンピュータ可読媒体。
【請求項２４】
実行されたときに、前記装置に、前記ビデオブロックの前記サブブロックのうちの1つが背景ではないときに、前記サブブロックの1つまたは複数のサブブロックを前記前の時間フレーム内に位置する対応するサブサブブロックと比較することによって、前記サブブロックの前記サブブロックが背景であるかどうかを判定させるコードをさらに含む、請求項19に記載のコンピュータ可読媒体。
【請求項２５】
ビデオを符号化するための装置であって、
ビデオブロックを記憶するための手段と、
前記ビデオブロックを前の時間フレーム内に位置する対応するブロックと比較することによって、前記ビデオブロックが背景であるかどうかを判定するための手段と、
前記ビデオブロックが背景ではないときに、前記ビデオブロックの1つまたは複数のサブブロックを前記前の時間フレーム内に位置する対応するサブブロックと比較することによって、前記ビデオブロックの前記サブブロックが背景であるかどうかを判定するための手段とを備える装置。
【請求項２６】
距離メトリックを前記ビデオブロックと前記対応するブロックとの間の絶対差分和または2乗誤差和のうちの少なくとも一方として算出し、前記距離メトリックがしきい値よりも小さいかどうかを判定することによって前記ビデオブロックが背景であるかどうかを判定するための手段をさらに備える、請求項25に記載の装置。
【請求項２７】
前記前の時間フレームに関連する統計に応答して前記しきい値を適応可能に変更するための手段をさらに備える、請求項26に記載の装置。
【請求項２８】
前記統計は、前記前の時間フレームのブロックに関連する動きベクトルが空間オフセット値と同じである前記前の時間フレームの前記ブロックに関連する前記距離メトリックの和を含み、前記空間オフセット値は、グローバル動きベクトル値またはゼロ動きベクトル値に等しい、請求項27に記載の装置。
【請求項２９】
ビデオブロックのコンテンツが前記前の時間フレームに対して所定の量よりも多く変化したかどうかを判定することによって前記ビデオブロックが背景であるかどうかを判定するための手段をさらに備える、請求項25に記載の装置。
【請求項３０】
前記ビデオブロックの前記サブブロックのうちの1つが背景ではないときに、前記サブブロックの1つまたは複数のサブブロックを前記前の時間フレーム内に位置する対応するサブサブブロックと比較することによって、前記サブブロックの前記サブブロックが背景であるかどうかを判定するための手段をさらに備える、請求項25に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオコーディングに関する。
【背景技術】
【０００２】
デジタルビデオ機能は、デジタルテレビ、デジタル直接放送システム、ワイヤレス放送システム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子書籍リーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、スマートフォン、ビデオ会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込むことが可能である。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、パート10、アドバンスドビデオコーディング(AVC:Advanced Video Coding)、高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格、およびそのような規格の拡張規格によって定義された規格に記載されるものなどのビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶することがある。
【０００３】
ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を実行する。ブロックベースのビデオコーディングのために、ビデオスライス(たとえば、ビデオフレーム、またはビデオフレームの一部)は、ビデオブロックに区分されてもよく、ビデオブロックはまた、ツリーブロック、コーディング単位(CU:coding unit)、および/またはコーディングノードと呼ばれることがある。CUは、CUに関する予測ビデオデータを求めるためにさらに1つまたは複数の予測ユニット(PU)として区分される場合がある。ビデオ圧縮技法でも、CUが、コーディングすべきビデオブロックと予測ビデオデータとの差分を表す残差ビデオブロックデータの1つまたは複数の変換ユニット(TU)に区分される場合がある。残差ビデオブロックデータをピクセル領域から周波数領域に変換してさらなる圧縮を実現するために2次元離散コサイン変換(DCT)などの線形変換がTUに適用されてもよい。ピクチャのイントラコーディングされた(I)スライス内のビデオブロックは、同じピクチャ内の隣接ブロック内の参照サンプルに対する空間予測を用いて符号化されてもよい。ピクチャのインターコーディングされた(PまたはB)スライス内のビデオブロックは、同じピクチャ内の隣接ブロック内の参照サンプルに対する空間予測、または他の参照ピクチャ内の参照サンプルに対する時間予測を使用してもよい。ピクチャは、フレームと呼ばれることがあり、参照ピクチャは、参照フレームと呼ばれることがある。
【０００４】
空間または時間予測は、コーディングされるべきブロックのための予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コーディングされたブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコーディングされたブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されてもよく、次いで量子化されてもよい残差変換係数をもたらす。最初に2次元アレイに配置される量子化された変換係数は、変換係数の1次元ベクトルを生成するために、走査されてもよく、エントロピー符号化が、さらに多くの圧縮を達成するために適用されてもよい。
【０００５】
ビデオエンコーダが特定のユニット(たとえば、モード決定および/または動き推定ユニット)を利用してビデオ情報を符号化してもよい。性能低下を最低限に抑えつつ処理を高速化するために、多くのエンコーダは前処理エンジンを使用してこれらのユニットの複雑度を低下させる。1つのそのような前処理エンジンは、ビデオフレーム内の静的(すなわち、「変化しない」)コンテンツ(たとえば、背景コンテンツ)を変化する(または「移動する」)コンテンツ(たとえば、前景コンテンツ)と区別するために使用される場合がある「背景検出」である。背景コンテンツが判定された後、背景フレームを符号化することは、前のフレームの適切なブロックのコンテンツを現在のフレームにコピーすることを行うのにすぎない場合があるので、エンコーダは、そのコンテンツを符号化する際により複雑度の低いプロセス(たとえば、より複雑度の低いモードの決定、より単純な動きベクトルの判定、より単純な割り込み追加チェック、より動き推定の少ないプロセスなど)を適用してもよい。場合によっては、動きベクトル探索の結果は、背景ブロックの符号化にのみ必要である場合がある。
【０００６】
現代のビデオエンコーダ(たとえば、HEVCエンコーダ)ではビデオ符号化ユニット(たとえば、モード決定ユニットおよび動き推定ユニット)はより複雑になりかつ計算量が多くなっている。特定の機能(たとえば、背景領域を検出すること)を実行するためにこれらのユニットに必要な時間および計算リソースが増大している。この1つの理由としては、より古いビデオ規格では利用されている変換サイズが最大で8x8にすぎないことが挙げられる。しかし、より新しいHEVC規格では、16×16および32×32までの順変換および逆変換サイズが利用される。より大規模な変換では、ブロックが分析され背景コンテンツのみを含むかどうかが検出されるとき、より高い複雑度およびより多くのサイクルが必要である。コーディング効率を目的として、現在の規格では、背景検出方法の複雑度を低下させるプロセスが有利である。本明細書において開示する技法のいくつかの利点は、ビデオ符号化の間、より複雑度の低いモード決定および動き推定を可能にする場合がある背景検出方法の複雑度の低減を実施することによって、コーディング効率を向上させ計算リソース要件を低減させることに関する。
【発明の概要】
【課題を解決するための手段】
【０００７】
概して、本開示は、ビデオエンコーダ(たとえば、HEVCビデオエンコーダ)用の全体的なモード決定プロセスおよび動き推定プロセスをさらに簡略化する場合がある、背景コンテンツを検出するうえでビデオエンコーダに必要な複雑度およびサイクルの低減に関する技法を説明する。これらの技法は、背景検出しきい値を適応可能に調整し、ビデオエンコーダがビデオ品質も維持しつつ計算リソースを節約するのを可能にすることに関する問題にさらに対処する場合がある。
【０００８】
1つまたは複数の例の詳細が、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【０００９】
本開示において説明する主題の一態様は、ビデオブロック図を記憶するように構成されたメモリを備えるビデオエンコーダを提供する。ビデオエンコーダは、メモリと通信するプロセッサをさらに備える。プロセッサは、ビデオブロックを前の時間フレーム内に位置する対応するブロックと比較することによって、ビデオブロックが背景であるかどうかを判定するように構成される。プロセッサは、ビデオブロックが背景ではないときに、ビデオブロックの1つまたは複数のサブブロックを前の時間フレーム内に位置する対応するサブブロックと比較することによって、ビデオブロックのサブブロックが背景であるかどうかを判定するようにさらに構成される。
【００１０】
本開示において説明する主題の別の態様は、ビデオを符号化する方法を提供する。この方法はビデオブロックを記憶するステップを含む。この方法は、ビデオブロックを前の時間フレーム内に位置する対応するブロックと比較することによって、ビデオブロックが背景であるかどうかを判定するステップをさらに含む。この方法は、ビデオブロックが背景ではないときに、ビデオブロックの1つまたは複数のサブブロックを前の時間フレーム内に位置する対応するサブブロックと比較することによって、ビデオブロックのサブブロックが背景であるかどうかを判定するようにさらに構成される。
【００１１】
本開示で説明される主題の別の態様は、非一時的コンピュータ可読記憶媒体を提供する。この媒体は、実行されたときに、装置に、ビデオブロックを記憶させるコードを含む。この媒体は、実行されたときに、装置に、ビデオブロックを前の時間フレーム内に位置する対応するブロックと比較することによって、ビデオブロックが背景であるかどうかを判定させるコードをさらに含む。この媒体は、実行されたときに、装置に、ビデオブロックが背景ではないときに、ビデオブロックの1つまたは複数のサブブロックを前の時間フレーム内に位置する対応するサブブロックと比較することによって、ビデオブロックのサブブロックが背景であるかどうかを判定させるコードをさらに含む。
【００１２】
本開示において説明する主題の別の態様は、ビデオを符号化するための装置を提供する。この装置は、ビデオブロックを記憶するための手段を備える。この装置は、ビデオブロックを前の時間フレーム内に位置する対応するブロックと比較することによって、ビデオブロックが背景であるかどうかを判定するための手段をさらに備える。この装置は、ビデオブロックが背景ではないときに、ビデオブロックの1つまたは複数のサブブロックを前の時間フレーム内に位置する対応するサブブロックと比較することによって、ビデオブロックのサブブロックが背景であるかどうかを判定するための手段をさらに備える。
【図面の簡単な説明】
【００１３】
【図１】本開示に記載の態様による技法を利用してもよい例示的なビデオ符号化および復号システムを示すブロック図である。
【図２】本開示に記載の態様による技法を実装してもよい例示的なビデオエンコーダの例を示すブロック図である。
【図３】本開示に記載の態様による技法を実装してもよい例示的なビデオデコーダの例を示すブロック図である。
【図４】ビデオブロックまたはそのサブブロックが背景コンテンツを含むかどうかを判定する方法のフローチャートである。
【図５】ブロックが背景ブロックであるかどうかを判定するために背景しきい値を適応可能に調整する1つの方法のフローチャートである。
【発明を実施するための形態】
【００１４】
図面に示された様々な特徴は、縮尺通りに描かれていないことがある。したがって、明確にするために、様々な特徴の寸法は任意に拡大または縮小されていることがある。加えて、図面のいくつかは、所与のシステム、方法、またはデバイスの構成要素のすべてを図示していないことがある。最後に、同様の参照番号が、明細書および図面全体を通じて同様の特徴を表すために使用される場合がある。
【００１５】
本開示において説明する技法は概して、ビデオ符号化時の順変換に関し、特に高効率ビデオコーディング(HEVC)規格およびその拡張規格に関する順変換に関する。
【００１６】
ビデオコーディング規格には、Scalable Video Coding (SVC)およびMultiview Video Coding (MVC)拡張規格を含む、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 VisualおよびITU-T H.264(ISO/IEC MPEG-4 AVCとも呼ばれる)が含まれる。さらに、新しいビデオコーディング規格、すなわち、ITU-Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECモーションエキスパート(MPEG)のビデオコーディング共同研究部会(JCT-VC)によって開発された高効率ビデオコーディング(HEVC)がある。
【００１７】
上述のように、HEVC規格では、32×32までのサイズの(たとえば、HEVCエンコーダにおける)順変換および逆変換を利用し、AVC規格では、8×8までの変換サイズしか利用しない。変換サイズを大きくするとHEVCにおける大きいコードブロックのコーディング効率が向上するが、より小さい変換サイズと比較して(たとえば、背景領域を検出する際に)複雑度も高くなり、計算サイクルが増え、処理時間が延びる。本開示において説明する方法は、背景コンテンツを検出するのに必要な増大した複雑度およびサイクルを低減させる場合がある。
【００１８】
いくつかの実装形態では、背景コンテンツを検出することによって、モード検出および動き推定の複雑度が全体的に低下することが可能になる場合がある。その理由は、ビデオエンコーダが、図4および図5に関して以下にさらに説明するように、前景領域ではなく背景領域を処理する際にモード検出および動き推定を簡略化するように構成される場合があるからである。ビデオエンコーダは、前のフレームの距離メトリック値を使用して背景検出に関するしきい値を適応可能に調整するようにさらに構成されてもよい。本開示において説明する方法では、背景領域を系統的に検出し、背景検出しきい値を適応可能に調整することによって、ビデオエンコーダが、ビデオ品質も維持しつつ計算リソースを節約するのを可能にする場合がある。
【００１９】
ブロックベースの処理(たとえば、ビデオフレームがビデオブロックまたはコーディングユニットに区分される場合があるHEVC)を使用するビデオコーデックでは、元のピクセルから(たとえば、インター予測またはイントラ予測から得られる)予測ブロックまたは予測ユニットを減算してもよい。上記において詳しく説明したように、そのような残差データは次いで、順変換(たとえば、離散コサイン変換)を使用して残差変換係数に変換され、量子化され、(たとえば、さらなる圧縮を実現するために)エントロピー符号化されてもよい。エントロピー符号化は、以下においてさらに説明する様々なエントロピー符号化エンジン(たとえば、CAVLC、CABACなど)を使用して実行されてもよい。その後、以下においてまたさらに説明するように、デコーダが係数をエントロピー復号し、逆量子化し、逆変換してもよい。最後に、係数は、再構成ピクセルを形成するように予測ブロックに追加されてもよい。
【００２０】
ビデオコーディングの一実施形態では、最初に、再構成された時間的および/または空間的に隣接するブロックにおけるピクセルを使用して画像ブロックが予測されてもよい。次いで、予測誤差(「残差」と呼ばれることもある)が変換され量子化されてもよい。たとえば、SがサイズN×Nの残差ブロックである場合、次のように行列乗算を使用して変換されたブロックKを導出することができる。
K=A*S*B
上式において、K、A、およびBもサイズN×Nを有する。Aは垂直変換行列で、Bは水平変換行列である。いくつかの実施形態では、AとBは互いの移項である(たとえば、B=A'、この場合、「'」は移項を意味する)。他の実施形態では、AとBは互いの移項ではない。AとBが互いの移項であるとき、上記の数式は次のようになる。
K=A*S*A'
【００２１】
各変換(AおよびB)は、様々な変換のうちのいずれかを含んでもよい。いくつかの実施形態では、変換は、離散コサイン変換(DCT)、離散サイン変換(DST)、アダマール変換、ハール変換などのうちの1つを含む。
【００２２】
SVC拡張規格では、ビデオ情報の複数のレイヤがある場合がある。最下層はベースレイヤ(BL)として働くことがあり、最上層は、拡張レイヤ(EL)または「エンハンスメントレイヤ」として働くことがある。最上層と最下層との間のすべてのレイヤが、ELまたはBLのいずれかあるいはELとBLの両方として働いてもよい。SVCは、品質スケーラビリティ(または信号対雑音比、SNR)、空間スケーラビリティ、および/または時間スケーラビリティを実現するために使用されてもよい。拡張レイヤはベースレイヤとは異なる空間解像度を有してもよい。現在のブロックの予測は、SVCに関して設けられる様々なレイヤを使用して実行されてもよい。そのような予測はレイヤ間予測と呼ばれることがある。レイヤ間冗長性を低減させるためにSVCにおいてレイヤ間予測法が使用されてもよい。レイヤ間予測のいくつかの例には、レイヤ間イントラ予測、レイヤ間動き予測、およびレイヤ間残差予測を含めてもよい。レイヤ間イントラ予測では、ベースレイヤにおけるコロケートされたブロックの再構成を使用してエンハンスメントレイヤにおける現在のブロックを予測する。レイヤ間動き予測では、ベースレイヤの動きを使用してエンハンスメントレイヤにおける動きを予測する。レイヤ間残差予測では、ベースレイヤの残差を使用してエンハンスメントレイヤの残差を予測する。「イントラBLモード」と呼ばれるエンハンスメントレイヤに関する1つの特定のコーディングモードは、ベースレイヤにおける対応する(「コロケートされた」と呼ばれることもあり、たとえば、同じ空間ロケーションに位置する)ブロックのテクスチャを使用して予測される場合があるテクスチャを含む。
【００２３】
レイヤ間残差予測では、ベースレイヤの残差を使用してエンハンスメントレイヤの現在のブロックを予測する。残差は、ビデオユニットに関する時間的予測とソースビデオユニットに関する時間的予測との間の差分として定義されてもよい。残差予測では、ベースレイヤの残差は、現在のブロックを予測する際にも検討される。たとえば、現在のブロックは、エンハンスメントレイヤからの残差、エンハンスメントレイヤからの時間的予測、およびベースレイヤからの残差を使用して再構成されてもよい。現在のブロックは、以下の数式に従って再構成されてもよい。
【００２４】
【数１】
2017513346.tif 000003
【００２５】
上式において、
【００２６】
【数２】
2017513346.tif 000004
【００２７】
は、現在のブロックの再構成を示し、reは、エンハンスメントレイヤからの残差分を示し、Peは、エンハンスメントレイヤからの時間的予測を示し、rbは、ベースレイヤからの残差予測を示す。
【００２８】
差分領域を使用するインターコーディングの場合、現在の予測ブロックは、エンハンスメントレイヤ参照ピクチャにおける対応する予測ブロックサンプルとスケーリングされたベースレイヤ参照ピクチャにおける対応する予測ブロックサンプルとの間の差分値に基づいて決定される。差分値は、差分予測ブロックと呼ばれることもある。エンハンスメントレイヤ予測サンプルを得るために、コロケートされたベースレイヤ再構成サンプルは差分予測ブロックに加算される。
【００２９】
レイヤ間残差予測をエンハンスメントレイヤにおけるマクロブロック(MB)に使用するには、ベースレイヤにおけるコロケートされたマクロブロックはインターMBであるべきであり、コロケートされたベースレイヤマクロブロックの残差は、エンハンスメントレイヤの空間解像度比に応じてアンサンプリングされてもよい。レイヤ間残差予測では、エンハンスメントレイヤの残差とアンサンプリングされたベースレイヤの残差との間の差分がビットストリームにおいてコーディングされてもよい。ベースレイヤの残差は、ベースレイヤおよびエンハンスメントレイヤの量子化ステップ間の比に基づいて正規化されてもよい。
【００３０】
一般に、動き補償は、現在のブロックに関する時間的予測および残差を次のように追加することによって行われる。
【００３１】
【数３】
2017513346.tif 000005
【００３２】
上式において、
【００３３】
【数４】
2017513346.tif 000006
【００３４】
は、現在のフレームを示し、rは残差を示し、Pは時間的予測を示す。単一ループ復号では、サポートされる各レイヤは単一の動き補償ループによって復号されてもよい。このことを実現するために、上位レイヤをレイヤ間イントラ予測するのに使用されるすべてのレイヤは、制約されたイントラ予測を使用してコーディングされる。制約されたイントラ予測では、隣接するインターコーディングされたMBのサンプルを参照せずにイントラコーディングされる。一方、HEVCは、複数の動き補償ループを使用してSVCレイヤが復号される場合があるSVCに関するマルチループ復号を可能にする。たとえば、ベースレイヤが最初に完全に復号されてもよく、次いでエンハンスメントレイヤが復号されてもよい。
【００３５】
上述のような残差予測は、H.264 SVC拡張規格における効率的な技法である場合がある。しかし、その性能は、HEVC SVC拡張規格において、特にマルチループ復号が使用されるときに、さらに改善される場合がある。
【００３６】
マルチループ復号の場合、差分ドメイン動き補償が残差予測の代わりに使用されてもよい。SVCでは、エンハンスメントレイヤがピクセルドメインコーディングまたは差分ドメインコーディングを使用してコーディングされてもよい。ピクセルドメインコーディングでは、エンハンスメントレイヤピクセルに関する入力ピクセルが、非SVC HEVCの場合と同様にコーディングされてもよい。一方、差分ドメインコーディングでは、エンハンスメントレイヤに関する差分値がコーディングされてもよい。差分値は、エンハンスメントレイヤに関する入力ピクセルと対応するスケーリングされたベースレイヤ再構成ピクセルとの間の差分であってもよい。そのような差分値は、差分ドメイン動き補償に関する動き補償において使用されてもよい。
【００３７】
差分ドメインを使用するインターコーディングでは、現在の予測されたブロックが、エンハンスメントレイヤ参照ピクチャにおける対応する予測されたブロックサンプルとスケーリングされたベースレイヤ参照ピクチャにおける対応する予測されたブロックサンプルとの間の差分値に基づいて求められる。差分値は、差分予測ブロックと呼ばれることもある。エンハンスメントレイヤ予測サンプルを取得するために、コロケートされたベースレイヤ再構成サンプルが差分予測ブロックに追加される。
【００３８】
しかし、レイヤ間予測における差分ドメイン動き補償を使用する場合、動き推定および動き補償はピクセルドメインと差分ドメインの両方に使用されることが多いので、動き推定および動き補償の2つのセットが導入される。動き推定および動き補償の2つのセットを導入すると、バッファおよび計算のコストが高くなることがあり、このことは、エンコーダまたはデコーダにとって実用的ではない場合がある。さらに、動きベクトルの2つのセットをコーディングすると、動きベクトルの2つのセットが異なる特性を有し、かつコーディングユニット(CU)レベルにおいてインターリーブされるときに動きフィールドが不規則になる場合があるのでコーディング効率が低下することがある。さらに、差分ドメインにおける動き推定では、ベースレイヤとエンハンスメントレイヤが同じ動きを共有する必要がある。さらに、2つのレイヤ間の差分ピクチャの微分は各レイヤの完全に再構成されたピクチャに基づくので、差分ドメイン動き補償は、単一ループ復号に作用しない。
【００３９】
本開示において説明する技法は、ビデオエンコーダの全体的なモード決定プロセスおよび動き推定プロセスをさらに簡略化する場合がある、背景コンテンツを検出するのに必要な複雑度およびサイクルの低減に関する問題に対処する場合がある。これらの技法は、背景検出しきい値を適応可能に調整し、ビデオエンコーダがビデオ品質も維持しつつ計算リソースを節約するのを可能にすることに関する問題にさらに対処する場合がある。
【００４０】
新規のシステム、装置、および方法の種々の態様について、添付の図面を参照しながら以下にさらに十分に説明する。しかしながら、本開示は、多くの異なる形態で具現化されることが可能であり、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるように与えられる。本明細書の教示に基づいて、本開示の範囲は、本発明の任意の他の態様とは無関係に実装されるにせよ、または本発明の任意の他の態様と組み合わされるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様をも包含するものであることを、当業者なら諒解されるべきである。たとえば、本明細書で述べられる任意の数の態様を使用して装置が実装されてよく、または方法が実施されてもよい。加えて、本発明の範囲は、本明細書で述べられる本発明の様々な態様に加えて、またはそれ以外の、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法を包含することを意図する。本明細書で開示する任意の態様は、特許請求の範囲の1つまたは複数の要素により具現化され得ることが理解されるべきである。
【００４１】
特定の態様について本明細書において説明するが、これらの態様の数多くの変形実施形態および置換実施形態が、本開示の範囲内に入る。好ましい態様のいくつかの利益および利点が述べられるが、本開示の範囲は、特定の利益、用途、または目的に限定されることは意図していない。むしろ、本開示の態様は、異なるワイヤレス技法、システム構成、ネットワーク、および伝送プロトコルに広く適用可能であることを意図しており、それらのうちのいくつかが例として図および好ましい態様の以下の説明において示される。発明を実施するための形態および図面は、限定的なものではなく、本開示を説明するものにすぎず、本開示の範囲は、添付の特許請求の範囲およびその均等物によって規定される。
【００４２】
図1は、本開示に記載の態様による技法を利用してもよい例示的なビデオ符号化および復号システムを示すブロック図である。図1に示すように、ビデオ符号化および複合システム10は、後で供給先デバイス14によって復号すべき符号化されたビデオデータを供給する供給元デバイス12を含む。特に、供給元デバイス12は、コンピュータ可読記憶媒体16を介してビデオデータを供給先デバイス14に供給する。供給元デバイス12および供給先デバイス14は、デスクトップコンピュータ、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、電話ハンドセット(たとえば、スマートフォン)、テレビジョン、カメラ、表示デバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、などを含む、広い範囲のデバイスのうちのいずれかを含んでもよい。場合によっては、供給元デバイス12および供給先デバイス14は、ワイヤレス通信が可能なように装備されてもよい。
【００４３】
上述のように、供給先デバイス14は、コンピュータ可読記憶媒体16を介して、復号すべき符号化されたビデオデータを受信してもよい。コンピュータ可読記憶媒体16は、供給元デバイス12から供給先デバイス14に符号化されたビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備えてもよい。一例では、コンピュータ可読記憶媒体16は、供給元デバイス12がリアルタイムで供給先デバイス14に直接符号化されたビデオデータを送信することを可能にする通信媒体(図示せず)を備えてもよい。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、供給先デバイス14に送信されてもよい。通信媒体は、無線周波数(RF)スペクトルなどの任意のワイヤレスもしくは有線通信媒体、または、1つもしくは複数の物理的伝送線を備えてもよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク(たとえば、インターネット)などの、パケットベースのネットワークの一部を形成してもよい。通信媒体は、ルータ、スイッチ、基地局、または、供給元デバイス12から供給先デバイス14の通信を容易にするうえで有用である場合がある任意の他の機器を含んでもよい。
【００４４】
いくつかの例では、符号化データは、出力インターフェース22から記憶デバイス(図示せず)に出力されてもよい。同様に、符号化データは、入力インターフェース28によって記憶デバイスからアクセスされてもよい。記憶デバイスは、ハードドライブ、Blu-ray（登録商標）ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または、符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散されたまたは局所的にアクセスされるデータ記憶媒体のうちのいずれかを含んでもよい。さらなる例では、記憶デバイスは、供給元デバイス12によって生成された符号化されたビデオを記憶する場合があるファイルサーバまたは別の中間記憶デバイスに対応してもよい。供給先デバイス14は、ストリーミングまたはダウンロードを介して記憶デバイスの記憶されたビデオデータにアクセスしてもよい。ファイルサーバは、符号化されたビデオデータを記憶し、供給先デバイス14にその符号化されたビデオデータを送信することが可能な任意のタイプのサーバであってもよい。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS:network attached storage)デバイス、またはローカルディスクドライブを含む。供給先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を介して符号化されたビデオデータにアクセスしてもよい。データ接続は、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含んでもよい。記憶デバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであってもよい。
【００４５】
本開示の技法は、必ずしもワイヤレス用途または設定に限定されない。本開示の技法は、空中テレビ放送、ケーブルテレビ送信、衛星テレビ送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体上に符号化されるデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の用途など、様々なマルチメディア用途のうちのいずれかをサポートするビデオコーディングに適用されてもよい。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの用途を支持するために、一方向または双方向ビデオ送信をサポートするように構成されてもよい。
【００４６】
図1の例では、供給元デバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。供給先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、表示デバイス32とを含む。本開示によれば、供給元デバイス12のビデオエンコーダ20は、複数の規格または拡張規格に適合するビデオデータを含むビットストリームをコーディングするための技法を適用するように構成されてもよい。他の例では、供給元デバイス12および供給先デバイス14は、他の構成要素または構成を含んでもよい。たとえば、供給元デバイス12は、外部カメラなどの外部ビデオソースからビデオデータを受信してもよい。同様に、供給先デバイス14は、集積ディスプレイデバイス32ではなく外部ディスプレイデバイスとインターフェースしてもよい。
【００４７】
本開示の技法は、一般にビデオ符号化デバイスによって実行されるが、通常「コーデック」と呼ばれるビデオエンコーダ/デコーダによって実行されてもよい。さらに、本開示の技法はビデオプリプロセッサによって実行されてもよい。供給元デバイス12および供給先デバイス14は、供給元デバイス12が供給先デバイス14に送信されるコーディングされたビデオデータを生成するそのようなコーディングデバイスの一例にすぎない。いくつかの例では、供給元デバイス12と供給先デバイス14は、各々がビデオ符号化構成要素およびビデオ復号構成要素を含むように実質的に対称的に動作してもよい。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、ビデオテレフォニーなどができるように、供給元デバイス12と供給先デバイス14との間の一方向伝送または双方向伝送をサポートしてもよい。
【００４８】
供給元デバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス(図示せず)、以前に取り込まれたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからデータを受信するためのビデオフィードインターフェースなどを含んでもよい。さらなる代替として、ビデオソース18は、コンピュータグラフィックスベースのデータまたはライブビデオ、アーカイブされたビデオ、およびコンピュータによって生成されたビデオの組合せを生成してもよい。場合によっては、ビデオソース18がビデオカメラである場合、供給元デバイス12および供給先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話であってもよい。別の実施形態では、本開示において説明する技法は、一般にビデオコーディングに適用可能であってもよく、ワイヤレス用途および/または有線用途に適用されてもよい。各場合において、キャプチャされたビデオ、事前にキャプチャされたビデオ、またはコンピュータによって生成されたビデオは、ビデオエンコーダ20によって符号化されてもよい。符号化されたビデオ情報は次いで、出力インターフェース22によってコンピュータ可読記憶媒体16上に出力されてもよい。
【００４９】
コンピュータ可読記憶媒体16は、ワイヤレスブロードキャストまたは有線ネットワーク伝送などの一時的記憶媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、または他のコンピュータ可読記憶媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含んでもよい。いくつかの例では、ネットワークサーバ(図示せず)は、供給元デバイス12から符号化されたビデオデータを受信し、たとえばネットワーク伝送、直接有線通信などを介して、符号化されたビデオデータを供給先デバイス14に供給してもよい。同様に、ディスクスタンピング施設などの媒体製造施設のコンピューティングデバイスは、供給元デバイス12から符号化されたビデオデータを受信し、符号化されたビデオデータを含むディスクを製造してもよい。したがって、コンピュータ可読記憶媒体16は、様々な形態の1つまたは複数のコンピュータ可読媒体を含んでもよい。
【００５０】
供給先デバイス14の入力インターフェース28は、コンピュータ可読記憶媒体16から情報を受信してもよい。コンピュータ可読記憶媒体16の情報は、ビデオエンコーダ20によって定義されるシンタックス情報を含んでもよい。シンタックス情報は、ビデオデコーダ30によって使用されてもよく、ブロックおよびその他のコーディング済み単位の特性および/または処理を記述するシンタックス要素を含んでもよい。ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示してもよく、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別の種類のディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを備えてもよい。
【００５１】
ビデオエンコーダ20およびビデオデコーダ30は、高効率ビデオコーディング(HEVC)規格またはその変形例(たとえば、HEVCテストモデル(HM))のいずれかなどのビデオコーディング規格に従って動作してもよい。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、ITU-T H.264規格(MPEG-4)、Part 10、アドバンストビデオコーディング(AVC)、ITU-T H.263、ITU-T H.262 (ISO/IEC MPEG-2ビジュアル)、ISO/IEC MPEG-1ビジュアル、ITU-T H.261、または任意のそのような規格の拡張規格などの、他の独自規格または業界規格に従って動作してもよい。いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、共通データストリームまたは別々のデータストリームにおけるオーディオとビデオの両方の符号化を処理するために、オーディオエンコーダ、オーディオデコーダ、MUX-DEMUXユニット(図示せず)、または他のハードウェアおよびソフトウェアと一体化されてもよい。
【００５２】
ビデオエンコーダ20およびビデオデコーダ30は、各々、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP:digital signal processor)、特定用途向け集積回路(ASIC:application specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路のうちのいずれかとして実装されてもよい。本開示の技法を実行するための必要に応じて、ビデオエンコーダ20および/またはビデオデコーダ30は、ソフトウェアに関する命令を適切な非一時的コンピュータ可読記憶媒体に記憶し、1つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行してもよい。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ内に含まれてもよく、そのいずれかは、それぞれのデバイス内に、組み合わされたエンコーダ/デコーダ(コーデック)の一部として組み込まれてもよい。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルフォンなどのワイヤレス通信デバイスを備えてもよい。
【００５３】
HEVC規格では、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディング単位(LCU)に分割されてもよいことを明示している。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大コーディングユニットであるLCUのサイズを定義してもよい。スライスは、コーディング順にいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分されてもよい。各ツリーブロックは、4分木に従ってコーディング単位(CU:coding unit)に分割されてもよい。概して、4分木データ構造は、CU当たり1つのノードを含み、ルートノードがツリーブロックに対応する。CUが4つのサブCUに分割される場合、CUに対応するノードは4つのリーフノードを含み、各リーフノードがサブCUのうちの1つに対応する。
【００５４】
4分木データ構造の各ノードは、対応するCUに関するシンタックスデータを生成してもよい。たとえば、4分木におけるノードは、ノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含んでもよい。CUに関するシンタックス要素は、再帰的に定義されてもよく、CUがサブCUに分割されるかどうかに依存してもよい。CUは、それ以上分割されない場合、リーフCUと呼ばれる。本開示では、元のリーフCUが明示的に分割されない場合でもリーフCUの4つのサブCUはリーフCUとも呼ばれる。たとえば、16×16サイズのCUがそれ以上分割されない場合、16×16CUが分割されることはなかったが、4つの8×8サブCUもリーフCUと呼ばれる。
【００５５】
CUは、サイズの区別を有さないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、4つの子ノード(サブCUとも呼ばれる)に分割されてもよく、各子ノードは、次に、親ノードになり、別の4つの子ノードに分割されてもよい。最後の、分割されていない子ノードは、4分木のリーフノードと呼ばれ、リーフCUとも呼ばれるコーディングノードを含む。コーディング済みビットストリームに関連付けられたシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割されてもよい最大回数を定義してもよく、また、コーディングノードの最小サイズを定義してもよい。したがって、ビットストリームが最小コーディングユニット(SCU)を定義してもよい。本開示は、HEVCのコンテキストにおけるCU、PU、またはTUのいずれか、あるいは他の規格のコンテキストにおける同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそのサブブロック)を指すのに「ブロック」という用語を使用する。
【００５６】
CUは、コーディングノードと、コーディングノードに関連付けられた予測単位(PU:prediction unit)および変換単位(TU:transform unit)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。CUのサイズは、8×8ピクセルから、最大64×64ピクセルまたは場合によってはそれよりも大きいツリーブロックのサイズまでの範囲であってもよい。各CUは、1つまたは複数のPUと1つまたは複数のTUとを含んでもよい。CUに関連付けられたシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述してもよい。分割モードは、CUがスキップもしくは直接モードで符号化されているのか、イントラ予測モード符号化されているのか、またはインター予測モードで符号化されているのかの間で異なってもよい。PUは、形状が非正方形であるように区分されてもよい。CUに関連付けられたシンタックスデータはまた、たとえば、4分木に従った1つまたは複数のTUへのCUの区分を記述してもよい。TUは、形状が正方形または非正方形(たとえば、矩形)であることが可能である。
【００５７】
HEVC規格は、TUに従う変換を可能にし、それは、異なるCUのために異なってもよい。TUは、典型的には、区分されたLCUのために定義された所与のCU内のPUのサイズに基づいてサイズが決められるが、これは、必ずしもそうでないことがある。TUは、典型的には、PUと同じサイズであり、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用して、より小さい単位に細分されてもよい。RQTのリーフノードは、変換単位(TU)と呼ばれることがある。TUに関連付けられたピクセル差分値は、量子化されてもよい変換係数を生成するために変換されてもよい。
【００５８】
リーフCUは、1つまたは複数の予測ユニット(PU)を含んでもよい。概して、PUは、対応するCUのすべてまたは一部に対応する空間領域を表し、PUに関する参照サンプルを取り込むためのデータを含んでもよい。さらに、PUは、予測に関連するデータを含む。たとえば、PUがイントラモード符号化されるときは、PUに関するデータが、PUに対応するTUに関するイントラ予測モードを記述するデータを含む場合がある残差4分木(RQT)に含まれてもよい。別の例として、PUがインターモード符号化されるとき、PUは、PUに関する1つまたは複数の動きベクトルを定義するデータを含んでもよい。PUに関する動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、4分の1ピクセル精度もしくは8分の1ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルのための参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)を記述してもよい。
【００５９】
1つまたは複数のPUを有するリーフCUはまた、1つまたは複数の変換単位(TU)を含んでもよい。変換ユニットは、上述のようにRQT(TU4分木構造とも呼ばれる)を使用して指定されてもよい。たとえば、分割フラグは、リーフCUが4つの変換単位に分割されるかどうかを示してもよい。次いで、各変換ユニットはさらなるサブTUに分割されてもよい。TUは、それ以上分割されない場合、リーフTUと呼ばれる。概して、イントラコーディングでは、リーフCUに属するすべてのリーフTUが同じイントラ予測モードを共有する。すなわち、概して、同じイントラ予測モードがリーフCUのすべてのTUについて予測値を算出するために適用される。イントラコーディングでは、ビデオエンコーダは、TUに対応するCUの部分と元のブロックとの間の差分として、イントラ予測モードを使用してリーフTUごとに残差値を算出してもよい。TUは、必ずしもPUのサイズに限定されるとは限らない。したがって、TUはPUよりも大きくてもあるいは小さくてもよい。イントラコーディングでは、PUは同じCUの対応するリーフTUとコロケートされてもよい。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応してもよい。
【００６０】
さらに、リーフCUのTUは、残差4分木(RQT)と呼ばれるそれぞれの4分木データ構造に関連付けられてもよい。すなわち、リーフCUは、リーフCUがどのようにTUとして区分されるかを示す4分木を示してもよい。TU4分木のルートノードは概して、リーフCUに対応し、一方、CU4分木のルートノードは概して、ツリーブロック(またはLCU)に対応する。分割されないRQTのTUは、リーフTUと呼ばれる。概して、本開示は、別段に記載されていない限り、CUおよびTUという用語を使用してそれぞれリーフCUおよびリーフTUを指す。
【００６１】
ビデオシーケンスは、典型的には、一連のビデオフレームまたはピクチャを含む。ピクチャのグループ(GOP:group of pictures)は、一般に、一連の1つまたは複数のビデオピクチャを備える。GOPは、GOPのヘッダ、1つまたは複数のピクチャのヘッダ、または他の場所に、GOP内に含まれるピクチャの数を記述するシンタックスデータを含んでもよい。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含んでもよい。図1のビデオエンコーダ20は、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用してもよい。ビデオブロックは、CU内のコーディングノードに対応してもよい。ビデオブロックは、固定サイズを有してもあるいは可変サイズを有してもよく、指定されたコーディング規格に応じてサイズが異なってもよい。
【００６２】
HEVCは、様々なPUサイズにおける予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HEVCは、2N×2NまたはN×NのPUサイズにおけるイントラ予測と、2N×2N、2N×N、N×2N、またはN×Nの対称PUサイズにおけるインター予測とをサポートする。HEVCはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズにおけるインター予測のための非対称区分をサポートする。非対称区分では、CUの1つの方向は、区分されず、他の方向は、25%および75%に区分される。25%区分に対応するCUの部分は、"n"とその後に続く「上」、「下」、「左」、または「右」の表示によって示される。したがって、たとえば、"2NxnU"は、上に2N×0.5NのPUおよび下に2N×1.5NのPUによって水平方向に区分された2N×2NのCUを指す。
【００６３】
本開示では、"NxN"および「N掛けるN」は、垂直方向および水平方向の寸法に関するビデオブロックのピクセルの寸法、たとえば、16×16ピクセル、または16掛ける16ピクセルを指すために、交換可能に使用されてもよい。一般に、16×16ブロックは、垂直方向に16ピクセル(y=16)と水平方向に16ピクセル(x=16)とを有することになる。同様に、N×Nブロックは、垂直方向にN個のピクセルを有するとともに水平方向にN個のピクセルとを有し、ここでNは、負ではない整数値を表す。ブロック内のピクセルは、行および列状に配置されてもよい。さらに、ブロックは、必ずしも水平方向において垂直方向と同じ数のピクセルを有さなくてもない。たとえば、ブロックは、N×Mピクセルを備えてもよく、ここでMは、Nと必ずしも等しくない。
【００６４】
ビデオエンコーダ20は、CUのPUを使用するイントラ予測またはインター予測コーディングに続いて、CUのTUに関する残差データを計算してもよい。PUは、空間領域(ピクセル領域とも呼ばれる)における予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを含んでもよく、TUは、変換、たとえば、離散コサイン変換(DCT:discrete cosine transform)、整数変換、ウェーブレット変換、または残差ビデオデータへの概念的に同様の変換を適用した後の変換領域における係数を含んでもよい。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応してもよい。ビデオエンコーダ20は、CUに関する残差データを含むTUを形成し、次いで、CUに関する変換係数を生成するためにTUを変換してもよい。
【００６５】
ビデオエンコーダ20は、変換係数を生成するための任意の変換に続いて、変換係数の量子化を実行してもよい。量子化は、最も広義の通常の意味を有することを目的とする広義の用語である。一実施形態では、量子化は、係数を表すために使用されるデータの量をできる限り少なくするために変換係数が量子化され、それによってさらなる圧縮を可能にするプロセスを指す。量子化プロセスでは、係数の一部またはすべてに関連するビット深度を小さくしてもよい。たとえば、nビット値は、量子化の間にmビット値に切り捨てられてもよく、ここでnは、mよりも大きい。
【００６６】
ビデオエンコーダは、量子化に続いて、変換係数を走査し、量子化された変換係数を含む2次元行列から1次元ベクトルを生成してもよい。この走査は、アレイの前部により高いエネルギー(したがって、より低い周波数)の係数を配置し、アレイの後部により低いエネルギー(したがって、より高い周波数)の係数を配置するように設計されてもよい。いくつかの例では、ビデオエンコーダ20は、エントロピー符号化することが可能なシリアル化ベクトルを生成するために、量子化された変換係数を走査するために事前定義された走査順を利用してもよい。他の例では、ビデオエンコーダ20は、適応走査を実行してもよい。ビデオエンコーダ20は、1次元ベクトルを形成するために、量子化された変換係数を走査した後、たとえば、コンテキスト適応可変長コーディング(CAVLC:context adaptive variable length coding)、コンテキスト適応2値算術コーディング(CABAC:context adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応2値算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング、または別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化してもよい。ビデオエンコーダ20はまた、ビデオデータを復号する上でビデオデコーダ30によって使用される符号化されたビデオデータに関連付けられたシンタックス要素をエントロピー符号化してもよい。
【００６７】
ビデオエンコーダ20は、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびGOPベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダにおいて、さらにビデオデコーダ30に送信してもよい。GOPシンタックスデータは、それぞれのGOPにおけるいくつかのフレームを表してもよく、フレームシンタックスデータは、対応するフレームを符号化するのに使用される符号化/予測モードを示してもよい。
【００６８】
図2は、以下の図4および図5において説明する方法を含む、以下に説明する技法のいずれかを実施する場合があるビデオエンコーダの一例を示すブロック図である。エンコーダ20のユニットのうちの1つまたは複数は、本開示の技法のうちのいずれかまたはすべてを実行するように構成されてもよい。一例として、変換処理ユニット52および逆変換ユニット60は、本開示において説明する変換技法のうちのいずれかまたはすべてを実行するように構成されてもよい。しかし、本開示の態様はそのように限定されない。いくつかの例では、本開示において説明する技法は、ビデオエンコーダ20の様々な構成要素間で共有されてもよい。いくつかの例では、プロセッサ(図示せず)は、本開示において説明する技法のいずれかまたはすべてを実行するように構成されてもよい。
【００６９】
ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行してもよい。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオにおける空間的冗長性を低減または除去するために空間的予測に依存する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオにおける時間的冗長性を低減または除去するために時間的予測に依存する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのうちのいずれを指してもよい。片方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのうちのいずれを指してもよい。
【００７０】
ビデオエンコーダ20は、符号化すべきビデオフレーム内の現在のビデオブロックを受信してもよい。図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照フレームメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。モード選択ユニット40は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測ユニット46と、区分ユニット48とを含む。ビデオブロック再構成では、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含んでもよい。ブロック境界をフィルタリングして再構成されたビデオからブロッキネスアーティファクトを除去するためにデブロッキングフィルタ(図示せず)を含めてもよい。必要に応じて、デブロッキングフィルタは、一般に加算器62の出力をフィルタ処理する。デブロッキングフィルタに加えて(ループ内またはループ後の)追加のフィルタが使用されてもよい。そのようなフィルタは、簡潔のために図示されていないが、必要に応じて、(インループフィルタとして)加算器50の出力をフィルタ処理してもよい。
【００７１】
ビデオエンコーダ20は、符号化プロセスの間に、コーディングすべきビデオフレームまたはスライスを受信してもよい。フレームまたはスライスは複数のビデオブロックに分割されてもよい。動き推定ユニット42および動き補償ユニット44は、時間的予測を実現するために、1つまたは複数の参照フレーム内の1つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行してもよい。イントラ予測ユニット46は、代替的に、空間的予測を実現するために、コーディングすべきブロックと同じフレームまたはスライス内の1つまたは複数の隣接ブロックに対する受信されたビデオブロックのイントラ予測コーディングを実行してもよい。ビデオエンコーダ20は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために複数のコーディングパスを実行してもよい。
【００７２】
さらに、区分ユニット48は、以前のコーディングパスにおける以前の区分方式の評価に基づいてビデオデータのブロックをサブブロックとして区分してもよい。たとえば、区分ユニット48は、最初にフレームまたはスライスをLCUとして区分し、レートひずみ分析(たとえば、レートひずみ最適化)に基づいてLCUの各々をサブCUに区分してもよい。モード選択ユニット40は、LCUのサブCUへの区分を示す4分木データ構造をさらに生成してもよい。4分木のリーフノードCUは、1つまたは複数のPUと1つまたは複数のTUとを含んでもよい。
【００７３】
モード選択ユニット40は、たとえば誤差結果に基づいて、コーディングモードの一方、すなわちイントラコーディングモードまたはインターコーディングモードを選択し、得られたイントラコーディングまたはインターコーディングされたブロックを加算器50に供給して残差ブロックデータを生成し、かつ加算器62に供給して参照フレームとして使用される符号化されたブロックを再構成してもよい。モード選択ユニット40は、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット56に供給してもよい。
【００７４】
動き推定ユニット42および動き補償ユニット44は、高集積されてもよいが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム(または他のコーディング済みユニット)内でコーディングされている現在のブロックに対する参照フレーム(または他のコーディング済みユニット)内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示してもよい。予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって求められてもよいピクセル差分に関して、コーディングすべきビデオブロックと厳密に一致することが判明したブロックである。いくつかの例では、ビデオエンコーダ20は、参照フレームメモリ64内に記憶された参照ピクチャのサブ整数ピクセル位置に関する値を計算してもよい。たとえば、ビデオエンコーダ20は、参照ピクチャの4分の1ピクセル位置の値、8分の1ピクセル位置の値、または他の分数ピクセル位置の値を補間してもよい。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力してもよい。
【００７５】
動き推定ユニット42は、参照ピクチャの予測ブロックの位置とPUの位置とを比較することによって、インターコーディングされたスライス内のビデオブロックのPUに関する動きベクトルを計算する。参照ピクチャは、各参照ピクチャリストが参照フレームメモリ64内に記憶された1つまたは複数の参照ピクチャを識別する第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されてもよい。動き推定ユニット42は、エントロピー符号化ユニット56および動き補償ユニット44に、算出された動きベクトルを送信する。
【００７６】
動き補償ユニット44によって実行される動き補償は、動き補償ユニット42によって求められた動きベクトルに基づいて予測ブロックをフェッチまたは生成することを伴ってもよい。この場合も、動き推定ユニット42および動き補償ユニット44は、いくつかの例では機能的に一体化されてもよい。動き補償ユニット44は、現在のビデオブロックのPUに関する動きベクトルを受信すると、参照ピクチャリストのうちの1つにおいて動きベクトルが指し示す予測ブロックの位置を特定してもよい。加算器50は、後述のように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成してもよい。動き推定ユニット42は、ルーマ成分に対して動き推定を実行してもよく、動き補償ユニット44は、ルーマ成分に基づいて算出された動きベクトルをクロマ成分とルーマ成分の両方に使用してもよい。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用されるビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成してもよい。シンタックス要素は、ビデオシーケンスレベル、ビデオフレームレベル、ビデオスライスレベル、ビデオCUレベル、またはビデオPUレベルのうちの1つまたは複数における予測情報を表してもよい。たとえば、動き補償ユニット44は、CU、PU、およびTUのサイズを含むビデオブロック情報、およびイントラモード予測に関する動きベクトル情報を示すシンタックス要素を生成してもよい。
【００７７】
上述のように、(たとえば、HEVCにおける)現在のビデオ符号化では、(たとえば、それぞれモード選択ユニット40および動き推定ユニット42によって実行されるような)モード決定モジュールおよび動き推定モジュールがより複雑になりかつ計算量が多くなっている。この問題の影響を軽減するために、変換処理ユニット52は、モード選択ユニット40および/または動き推定ユニット42によって実行されるプロセスをさらに簡略化する場合がある、背景コンテンツを検出するためにビデオエンコーダ20に必要な複雑度およびサイクルの低減に関する上記および下記において説明する方法のうちのいずれかを実行するようにさらに構成されてもよい。
【００７８】
以下にさらに説明するように、本開示において説明する背景を検出する方法は、限定はしないが、変換処理ユニット52を含む、エンコーダ20の任意のユニットによって実行されてもよい。一実施形態では、変換処理ユニット52は、図4に関して以下にさらに説明するように、現在のフレーム(またはピクチャ)における初期ブロック値と時間的に隣接するフレーム(またはピクチャ)におけるブロック値(たとえば、空間的にコロケートされたブロック)との間の距離メトリック値を求め利用する。
【００７９】
一例として、変換処理ユニット52は、64x64 CU内の8x8 CUのすべてのSADを合計することによって64x64 CUのSADを求めてもよい。変換処理ユニット52は次いで、64x64ブロックのSADをしきい値背景値と比較して64x64が背景であるかどうかを判定してもよい。別の実施形態では、変換処理ユニット52は、現在のブロックの距離メトリック値を前のブロックと比較することによってしきい値背景値を適応可能に調整するようにさらに構成されてもよい。変換処理ユニット52がCUが背景であると判定した場合、ビデオエンコーダ20は、そのCUに関するビデオエンコーダ20のモード決定および動き推定の複雑度を低減させる場合がある。このようにして、変換処理ユニット52、モード選択ユニット40、および/または動き推定ユニット42は、ビデオ品質も維持しつつ各ユニットの計算の時間を短縮し複雑度を低下させる場合がある。このプロセスについて、図4および図5においてさらに説明し例証する。
【００８０】
上述の例では、変換処理ユニット52は、64x64 CUが背景であると判定した後に64x64 CUのモード決定および動き推定複雑度を低減させるように構成される。他の場合には、変換処理ユニット52は、64x64 CUが背景ではないと判定した場合、64x64 CU内のサブブロック(たとえば、4つの32x32サブブロック)を特定し、各サブブロックが背景であるかどうかを判定するようにさらに構成されてもよい。さらに、場合によっては、変換処理ユニット52は、サブブロック内のさらなるサブブロック(たとえば、各32x32ブロック内の4つの16x16サブブロック、各16x16サブブロック内の4つの8x8サブブロックなど)を特定して背景サブブロックを特定するように構成されてもよく、この場合、背景サブブロックのうちのいくつかは、他のサブブロックとは異なるサイズを有してもよい。
【００８１】
イントラ予測ユニット46は、上述のように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、現在のブロックをイントラ予測または算出してもよい。具体的には、イントラ予測ユニット46は、現在のブロックを符号化するために使用するイントラ予測モードを決定してもよい。いくつかの例では、イントラ予測ユニット46は、たとえば、別々の符号化パスの間、様々なイントラ予測モードを使用して現在のブロックを符号化してもよく、イントラ予測ユニット46(または、いくつかの例ではモード選択ユニット40)は、試験されたモードから使用すべき適切なイントラ予測モードを選択してもよい。
【００８２】
たとえば、イントラ予測ユニット46は、様々な試験されたイントラ予測モードに関してレート-歪み分析を使用してレート-歪み値を算出し、試験されたモードの中から最良のレート-歪み特性を有するイントラ予測モードを選択してもよい。レート-歪み分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された符号化されていない元のブロックとの間の歪(または誤差)の量、ならびに、符号化されたブロックを生成するために使用されたビットレート(すなわち、ビット数)を求める。イントラ予測ユニット46は、どのイントラ予測モードがブロックに関する最良のレート-歪み値を示すのかを判定するために、様々な符号化ブロックに関する歪みおよびレートから比を算出してもよい。
【００８３】
イントラ予測ユニット46は、ブロックに関するイントラ予測モードを選択した後、ブロックに関する選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供してもよい。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化してもよい。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)を含んでもよい、送信されたビットストリーム構成データ内に、コンテキストの各々のために使用する、様々なブロックに関する符号化コンテキストの定義と、最もあり得るイントラ予測モードの指示と、イントラ予測モードインデックステーブルと、変更されたイントラ予測モードインデックステーブルとを含んでもよい。
【００８４】
ビデオエンコーダ20は、コーディング中の元のビデオブロックからモード選択ユニット40からの予測データを減算することによって残差ビデオブロックを形成する。加算器50は、この減算演算を実行してもよい。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用して、残差変換係数値を含むビデオブロックを生成してもよい。変換処理ユニット52は、DCTと概念的に同様の他の変換を実行してもよい。ウェーブレット変換、整数変換、サブバンド変換、または他の種類の変換が使用されてもよい。変換処理ユニット52は次いで、残差ブロックに変換を適用して、残差変換係数のブロックを生成してもよい。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換してもよい。より具体的には、TUは、変換を適用する前には、ピクセル領域の残差ビデオデータを含むことがあり、変換を適用した後は、周波数領域の残差ビデオデータを表す変換係数を含むことがある。
【００８５】
従来、ビデオエンコーダ20は、実施されるビデオ圧縮規格によってサポートされるTUの様々なサイズの各々について別々のコンテキストモデルを維持する。HEVC規格に関して、追加の変換ユニットサイズ、たとえば、32×32から128×128までを使用してビデオコーディング効率を改善してもよいが、TUサイズを追加すると、追加の変換ユニットサイズの各々についてコンテキストモデルを維持するためのメモリおよび計算要件も増大する。場合によっては、TUサイズが大きくなるにつれて使用するコンテキストが多くなる場合があり、それによって、より大きいTUサイズに関してより多くのコンテキストを維持するためにメモリおよび計算要件が増大する場合がある。
【００８６】
変換ユニット52は、得られた変換係数を量子化ユニット54に送信してもよい。量子化ユニット54は次いで、ビットレートをさらに低下させるために、変換係数を量子化する。量子化プロセスでは、係数の一部またはすべてに関連するビット深度を小さくしてもよい。量子化の程度は、量子化パラメータを調整することによって変更されてもよい。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実行してもよい。代替的には、エントロピー符号化ユニット56が走査を実行してもよい。
【００８７】
エントロピー符号化ユニット56は、量子化に続いて、量子化された変換係数をエントロピーコーディングしてもよい。たとえば、エントロピー符号化ユニット56は、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応2値算術コーディング(CABAC)、シンタックスベースコンテキスト適応2値算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法もしくは技法を実行してもよい。コンテキストベースのエントロピー符号化の場合、コンテキストは隣接するブロックに基づいてもよい。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化されたビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信されるか、あるいは後で送信するかまたは取り込むことができるようにアーカイブされてもよい。
【００８８】
逆量子化ユニット58および逆変換処理ユニット60は、ピクセル領域における残差ブロックを、たとえば参照ブロックとして後に使用できるように再構成するために、それぞれ、逆量子化および逆変換を適用してもよい。動き補償ユニット44は、参照フレームメモリ64のフレームのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを算出してもよい。動き補償ユニット44はまた、動き推定において使用されるサブ整数ピクセル値を算出するために、再構成された残差ブロックに1つまたは複数の補間フィルタを適用してもよい。加算器62は、参照フレームメモリ64内に記憶される再構成されたビデオブロックを生成するために、動き補償ユニット44によって生成された動き補償された予測ブロックに再構成された残差ブロックを加算してもよい。再構成されたビデオブロックは次いで、後続のビデオフレーム内のブロックをインターコーディングするために、参照ブロックとして動き推定ユニット42および動き補償ユニット44によって使用されてもよい。
【００８９】
図3は、本開示に記載の態様による技法を実装してもよい例示的なビデオデコーダの例を示すブロック図である。本開示において説明する技法は、ビデオデコーダ30の様々な構成要素を利用してもよい。いくつかの例では、プロセッサ(図示せず)は、技法のいずれかまたはすべてを実行するように構成されてもよい。
【００９０】
図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70を含み、動き補償ユニット72およびイントラ予測ユニット74をさらに含む予測ユニット81と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームメモリ82と、加算器80とを含む。ビデオデコーダ30は、ビデオエンコーダ20に関連して説明した符号化パス(たとえば、図1および図2参照)と概ね逆の復号パスを実行してもよい。動き補償ユニット72は、エントロピー復号ユニット70から受信される動きベクトルに基づいて予測データを生成してもよく、一方、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されるイントラ予測モードインジケータに基づいて予測データを生成してもよい。
【００９１】
従来、ビデオエンコーダ30は、実施されるビデオ圧縮規格によってサポートされるTUの様々なサイズの各々について別々のコンテキストモデルを維持する。HEVC規格に関して、追加の変換ユニットサイズ、たとえば、32×32から128×128までを使用してビデオコーディング効率を改善してもよいが、TUサイズを追加すると、追加の変換ユニットサイズの各々についてコンテキストモデルを維持するためのメモリおよび計算要件も増大する。
【００９２】
復号プロセスの間、ビデオデコーダ30は、ビデオエンコーダ20から、符号化されたビデオスライスのビデオブロックと関連するシンタックス要素とを表す符号化されたビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット70は次いで、動き補償ユニット72に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおけるシンタックス要素を受信してもよい。
【００９３】
ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの以前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックに関する予測データを生成してもよい。ビデオフレームがインターコーディングされた(すなわち、B、P、またはGPB)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックに関する予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生成されてもよい。ビデオデコーダ30は、参照フレームメモリ82内に記憶された参照ピクチャに基づいて、デフォルトの構成技術を使用して、参照フレームリスト、リスト0およびリスト1を構成してもよい。動き補償ユニット72は、動きベクトルと他のシンタックス要素とを構文解析することによって、現在のビデオスライスのビデオブロックに関する予測情報を決定し、予測情報を使用して、復号中の現在のビデオブロックに関する予測ブロックを生成する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用された予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスのための参照ピクチャリストのうちの1つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックに関する動きベクトルと、スライスの各インターコーディングされたビデオブロックに関するインター予測状態と、現在のビデオスライス内のビデオブロックを復号するための他の情報とを決定するために、受信したシンタックス要素の一部を使用してもよい。
【００９４】
動き補償ユニット72はまた、補間フィルタに基づいて補間を実行してもよい。動き補償ユニット72は、参照ブロックのサブ整数ピクセルに関する補間された値を算出するために、ビデオブロックの符号化の間にビデオエンコーダ20によって使用されるような補間フィルタを使用してもよい。この場合には、動き補償ユニット72は、受信したシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを判定し、この補間フィルタを使用して予測ブロックを生成してもよい。
【００９５】
逆量子化ユニット76は、ビットストリーム内で生成され、エントロピー復号ユニット70によって復号された量子化変換係数を逆量子化し(inverse quantize)、たとえば逆量子化し(de-quantize)てもよい。逆量子化プロセスは、ビデオデコーダ30によって算出された量子化パラメータQPYをビデオスライス内のビデオブロックごとに使用して、適用すべき量子化の程度を求め、同様に適用すべき逆量子化の程度を求めることを含んでもよい。
【００９６】
逆変換ユニット78は、ピクセル領域における残差ブロックを生成するために、変換係数に逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを適用する。動き補償ユニット72が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックに関する予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを、動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器80は、この加算演算を実行してもよい。ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタリングする非ブロック化フィルタが適用されてもよい。(コーディングループ内またはコーディングループ後のいずれかの)他のループフィルタを使用して、ピクセル遷移を円滑にするか、または他の点でビデオ品質を改善してもよい。所与のフレームまたはピクチャにおける復号されたビデオブロックは次いで、後で動き補償に使用される参照ピクチャを記憶する場合がある参照フレームメモリ82に記憶されてもよい。参照フレームメモリ82は、後で図1のディスプレイデバイス32などのディスプレイデバイス上に提示される復号されたビデオを記憶してもよい。
【００９７】
図4は、ビデオブロックまたはそのサブブロックが背景コンテンツを含むかどうかを判定する方法400のフローチャートを示す。方法400は、限定はしないが、図2に関して上記において説明したビデオエンコーダ20を含む、プロセッサまたはビデオエンコーダによって実行されてもよい。いくつかの実施形態では、方法400は、限定はしないが、図2の変換処理ユニット52などの変換処理ユニットによって実行される。さらに、方法400については、変換処理ユニットによって実行されるという文脈内で説明するが、これが、例示を目的としたものにすぎず、いかなる点でも本発明を制限するものではないことを理解されたい。
【００９８】
上述のように、変換処理ユニット52は、ビデオブロックまたはビデオブロックのサブブロックを背景領域として特定することによって、背景ブロックに関するモード決定プロセス(たとえば、図2のモード選択ユニット40によって実行されるモード決定プロセス)および/または動き推定プロセス(たとえば、図2の動き推定ユニット42によって実行される動き推定プロセス)の複雑度を低減させてもよい。
【００９９】
まず、ブロック405において、方法400が開始する。次いで、ブロック410において、変換処理ユニット52は、分析すべき最初のビデオブロックを特定する。一実装形態では、最初のビデオブロックは64x64 CU(または任意の他のサイズのブロック)であってもよい。
【０１００】
次いで、ブロック415において、変換処理ユニット52は、ビデオブロックが背景であるかどうかを判定する。このことを実現するために、図2に関して上記において説明したように、変換処理ユニット52は、ビデオブロックの距離メトリック値を求めて利用し、その距離メトリック値を背景しきい値と比較してもよい。距離メトリック値は、ビデオブロック内のビデオ情報が前のフレームから現在のフレームへと変化した程度を示してもよい。たとえば、ビデオ情報がまったくまたはほとんど変化していない場合、距離メトリック値はゼロまたはゼロに近くてもよい。一実施形態では、距離メトリック値は、あるフレームから次のフレームへのピクセル情報の変化を示す場合がある絶対差分和(SAD)であってもよい。一実施形態では、大きいCUのSADは、ブロックのより小さい個々のCU(たとえば、ブロックの8x8 CU)のSADを合計することによって求められてもよい。別の実施形態では、距離メトリック値は、あるフレームから次のフレームへのピクセル情報の変化をさらに示す場合がある2乗誤差和であってもよい。距離メトリック値は、あるフレームから次のフレームへのピクセル情報の変化の任意の他の表示に基づいてもよい。
【０１０１】
変換処理ユニット52は、コーディング効率を向上させるために、ビデオブロックのより小さい個々のコーディングユニット(CU)(たとえば、ビデオブロックの8x8 CU)に関連する距離メトリック値(たとえば、SAD)を合計し、次いでその和を背景しきい値と比較してもよい。距離メトリック値が背景しきい値よりも小さい場合、変換処理ユニット52はビデオブロックを背景として分類してもよい。距離メトリック値が背景しきい値以上である場合、変換処理ユニット52はビデオブロックを前景として分類してもよい(たとえば、ビデオブロックを背景として分類しなくてもよい)。
【０１０２】
一例では、変換処理ユニット52は、64x64 CU内の8x8 CUのすべてのSADを合計することによって64x64 CUのSADを求めてもよい。変換処理ユニット52は次いで、そのSADをしきい値背景値と比較して64x64 CUが背景であるかどうかを判定してもよい。一実装形態では、背景しきい値は所定の値であってもよい。別の実施形態では、変換処理ユニット52は、図5に関してさらに説明するように、現在のブロックの距離メトリック値を前のブロックと比較することによってしきい値背景値を適応可能に調整するようにさらに構成されてもよい。
【０１０３】
変換処理ユニット52がビデオブロックが背景であると判定した場合、ビデオエンコーダ20は、そのブロックに関するビデオエンコーダ20のモード決定および動き推定の複雑度を低減させる場合がある。たとえば、動き推定ユニット42は、背景ブロックに関する動き推定をいくつかの異なる方法で簡略化するように構成されてもよい。たとえば、動き推定ユニット42は、背景ブロックに関するより少ない数の参照ブロックを探索してもよい。動き推定ユニット42は、より少ない数の参照フレームを探索するために、以下の方法のうちの1つまたは複数を実施してもよい。すなわち、(1)参照フレーム0のみを探索するか、(2)前のフレームの各フレームの事前定義されたより小さい範囲(たとえば、より小さい半径)を探索するか、(3)予測子専用探索を使用するか、(4)ハーフペルおよび/またはクォーターペルの探索を条件付きでスキップするか、あるいは(5)より少ない数の参照フレームを探索する任意の他の方法を実施する。
【０１０４】
一実装形態では、動き推定ユニット42は、予測子専用探索を使用して背景ブロックに関する動き推定の複雑度を低減させるときに、第1の予測子(たとえば、空間予測子および/または時間予測子)を探索した後、探索の改善を停止してもよい。一方、前景ブロックの場合、動き推定ユニット42は、互いに隣接するブロック動きベクトルを探索し、それらのベクトルの予測子結果を分析して最もうまく一致するベクトルを求め、次いで十分な結果が得られるまで動き推定ユニット42の探索をこのようにさらに改善してもよい。
【０１０５】
一実施形態では、動き推定ユニット42は、ハーフペルおよび/またはクォーターペルの探索を条件付きでスキップして背景ブロックに関する動き推定の複雑度を低減させるときに、背景ブロックの現在のフレーム内の互いに隣接するブロックの動きベクトル予測子を生成してもよい。次いで、それらの予測子は、前のフレームのコロケートされたブロックにおいて使用されてもよい。各予測子は次いで、最も適切な試験ブロックを見つけ、かつコロケートされたブロックを現在のフレームを比較してどちらが近いかを判定するように適用されてもよい。一方、前景ブロックの場合、動き推定ユニット42は、まず動き推定ユニット42の焦点を整数ペル位置に合わせ、次いで、線形補間されたいくつかの(たとえば、9つの)ハーフペル位置を探索し、次いで、対応する線形補間されたいくつかのクォーターペルによって動き推定ユニット42の探索をさらに改善する。
【０１０６】
背景ブロックに関する符号化複雑度を低減させる別の例として、モード選択ユニット40は、変換処理ユニット52が、ビデオブロックが背景であると判定した場合に、モード決定をいくつかの異なる方法で簡略化するように構成されてもよい。たとえば、モード選択ユニット40は、イントラモード決定をスキップして先に進んでもよい。別の例として、モード選択ユニット40は、CUサイズをより高速に特定し、背景ブロック内のより小さいブロックに関するモード決定をスキップしてもよい。一例として、32x32ブロックが背景であると判定された場合、モード選択ユニット40は、ビデオエンコーダ20に、32x32よりも小さい32x32ブロック内の任意のブロックに関するモード決定をスキップするように指示してもよい。別の例として、モード選択ユニット40は、モード決定を簡略化するために、より少ない数のマージ候補を試験してもよい。マージ候補は、互いに隣接するブロックの動きベクトルを求めるためにフレームの様々なブロックが探索されるモード決定プロセスを指す場合がある。前景ビデオブロックの場合、この探索および判定は5回以上行われてもよい。背景ビデオブロックの場合、本開示において説明する方法は、探索および判定を1回または2回のみ実行してもよい。
【０１０７】
いずれの場合も、ブロック415において、変換処理ユニット52が、ビデオブロックが背景であると判定した場合、方法400はブロック490に進み終了する。しかし、ブロック416において、変換処理ユニット52が、ビデオブロックが背景ではないと判定した場合、方法400はブロック420に進む。ブロック420において、変換処理ユニット52は、ビデオブロック内のサブブロックを特定し、次いで、各サブブロックが背景であるかどうかを判定してもよい。
【０１０８】
たとえば、上述の64x64 CUの場合、変換処理ユニット52は、64x64 CU内のサブブロック(たとえば、4つの32x32サブブロック)を特定し、ブロック415に関して上記において説明したような方法を使用して、各サブブロックが背景であるかどうかを判定してもよい。この場合も、変換処理ユニット52は、効率を向上させるために、ビデオブロックのより小さい個々のコーディングユニット(CU)(たとえば、サブブロックの各々を構成する8x8 CU)を合計し、次いでコーディングユニットの和を背景しきい値と比較してもよい。各個々のサブブロックについて、距離メトリック値が背景しきい値よりも小さい場合、変換処理ユニット52はビデオブロックを背景として分類してもよい。距離メトリック値が背景しきい値以上である場合、変換処理ユニット52はビデオブロックを前景として分類してもよい。この場合も、ビデオエンコーダ20は次に、ブロック415に関して上記において説明したように、ビデオエンコーダ20が背景として特定したサブブロックの各々に関するビデオエンコーダ20のモード決定および動き推定の複雑度を低減させてもよい。
【０１０９】
変換処理ユニット52は、どのサブブロックが背景であるかを特定した後、ブロック425において、最小の所望のサブブロックが分析されたかどうかを判定してもよい。一例では、最小の所望のサブブロックサイズは8x8であってもよい。
【０１１０】
変換処理ユニット52が、最小の所望のサブブロックが分析されたと判定した場合、方法はブロック490において終了する。一方、変換処理ユニット52が、最小の所望のサブブロックが分析されていないと判定した場合、方法400はブロック420に戻って、事前に特定された前景サブブロック内のサブブロックをさらに特定し、次いで、ブロック415〜420に関して上記において説明したような方法を使用して新しいサブブロックの各々が背景であるかどうかを判定してもよい。
【０１１１】
上記の例を使用して説明すると、ビデオエンコーダ20が、ブロック420において、32x32サブブロックのうちの2つが背景であり、2つが前景であると判定した場合、およびブロック425において最小の所望のサブブロックが8x8である場合、方法はブロック420に戻る。その時点で、ビデオエンコーダ20は、2つの32x32前景サブブロック内のサブブロック(たとえば、各32x32前景サブブロック内の4つの16x16サブブロック)をさらに特定し、次いで、前進し上述の方法を使用して8つの新しいサブブロックのうちのどれが背景であるかを特定する。
【０１１２】
ブロック490においてこの方法の終了点に達すると、ビデオエンコーダ20は、図5に関して下記において説明する方法に従って以後のフレームを処理してもよい。
【０１１３】
図5は、ブロックが背景ブロックであるかどうかを判定するために背景しきい値(たとえば、図4に関して説明した背景しきい値)を適応可能に調整する1つの方法500のフローチャートを示す。方法500は、限定はしないが、図2に関して上記において説明したビデオエンコーダ20を含む、プロセッサまたはビデオエンコーダによって実行されてもよい。いくつかの実施形態では、方法500は、限定はしないが、図2の変換処理ユニット52などの変換処理ユニットによって実行される。さらに、方法500については、変換処理ユニットによって実行されるという文脈内で説明するが、これが、例示を目的としたものにすぎず、いかなる点でも本発明を制限するものではないことを理解されたい。
【０１１４】
前述のように、ビデオブロックが背景であるかどうかを判定するために背景しきい値がビデオブロックの距離メトリック値(たとえば、SAD)と比較されてもよい。場合によっては、前のブロックの(または「前のフレームの」)距離メトリック値を記憶して背景しきい値を以後のブロック(またはフレーム)分析において使用できるように適応可能に調整すると、コーディング効率を向上することがある。他の場合には、背景しきい値は、いくつかのブロックについては固定またはあらかじめ決定され、他のブロックについては適応可能であってもよい。固定されたしきい値を使用する場合と比較して、背景しきい値を適応可能に更新すると、様々なタイプのビデオコンテンツに関して背景領域と前景領域をよりうまく分類するのが可能になることがあり、それによって符号化複雑度が低下し、コーディング効率が高くなる場合がある。
【０１１５】
方法500はブロック505から開始する。ブロック510において、変換処理ユニット52は前のフレーム(または前のブロック)の背景ブロックを特定してもよい。一実装形態では、前のフレームは、変換処理ユニット52が背景コンテンツに関して分析したフレーム(またはブロック)であってもよく、背景ブロックは、変換処理ユニット52が図4に関して説明した方法の間に背景として特定したブロックであってもよい。
【０１１６】
次いで、ブロック515において、変換処理ユニット52は、特定された背景ブロックを使用して調整された背景しきい値(または現在のしきい値)を求めてもよい。前のフレームにおいて特定された背景ブロックがない(たとえば、すべてのブロックが前景として分類された)場合、変換処理ユニット52は、同じ背景しきい値を維持し、この方法をブロック590において終了してもよい。その場合、ビデオエンコーダ20は次に、元の背景しきい値を使用して、図4において説明した方法に従って現在のフレームを分析してもよい。
【０１１７】
1つまたは複数のブロックが背景として分類された場合、変換処理ユニット52は、前のフレーム内の動きベクトルの範疇を判定してもよい。動きベクトルが特定の範疇の動きベクトル(たとえば、グローバル動きベクトルまたはゼロ動きベクトル)である場合、変換処理ユニット52は、前のフレームのブロックの1つまたは複数の距離メトリック値に従って背景しきい値を調整してもよい。グローバル動きベクトルは、すべてが一緒に同じ方向に移動するが、他の点では変化しないブロックを有するビデオフレーム、たとえば、静的シーンを横切るカメラパニングを指すことがある。ゼロ動きベクトルは、厳密に前のフレームと同じであるかまたはほとんど同じであるビデオフレーム、たとえば、ビデオが静止しているビデオフレームを指すことがある。現在のフレームと前のフレームとの間の距離メトリック値を算出するには、動きベクトルの特定の範疇(たとえば、グローバル動きベクトルまたはゼロ動きベクトル)に基づく空間オフセット値が適用されてもよい。変換処理ユニット52は次に、調整された背景しきい値を使用して、図4において説明した方法に従って現在のフレームの分析を継続してもよい。
【０１１８】
一実施形態では、距離メトリック値は前のフレームを元のピクセルまたは参照ピクセルとして扱うことによって算出されてもよい。前のフレームが元のピクセルとして扱われる場合、メモリ要件が増大することがある。メモリ要件を低減させるには、前のフレームを、そうではなく参照ピクセルとして扱うと有利である場合がある。しかし、参照ピクセル手法では、システムが量子化パラメータ(QP)を考慮する必要がある。一実施形態では、ビデオエンコーダ20は、QPを設定してもよい。いくつかの距離メトリック値(たとえば、SAD)はQPに応じて大幅に変動する(たとえば、QPが高い場合、再構成されたフレームの品質が低くなることがある)ので、前のフレームの再構成されたピクセルを参照フレームバッファに記憶すると有利である場合がある。
【０１１９】
一実施形態では、背景しきい値を調整するのに使用される距離メトリック値は、前のフレームの正規化されたSADであってもよい。正規化された値は、前述のように任意のQP係数を補償してもよい。一例として、ビデオエンコーダ20は、2つの変数SummetricおよびSumscaleをそれぞれ、SAD値の和およびSAD値の正規化された和を表すように定義してもよい。SummetricおよびSumscaleは、フレームの開始点においてゼロとして初期設定されてもよい。上述のように、動きベクトルが前のフレームと現在のフレームとの間の空間オフセットに等しい動きベクトルとして特定の方法で分類された場合(たとえば、グローバル動きベクトルまたはゼロ動きベクトル)、前のフレームのメトリック値を使用して、数式の以下のセットに従ってSummetricおよびSumscaleを更新してもよい(たとえば、背景しきい値を適応可能に更新してもよい)。数式(1)〜(6)の各々は、64x64の例示的な元のNxNビデオブロックサイズを表すが、Nはより大きくてもまたは小さくてもよい。
New Summetric=Summetric+MetNxN、ここにおいて、MetNxNは、ビデオブロック(1)全体のメトリック値(たとえば、SAD)を表す。
【０１２０】
【数５】
2017513346.tif 000007
【０１２１】
、ここにおいて、NはNxNビデオブロック(2)の長さまたは幅を表す。
【０１２２】
SummetricおよびSumscaleは、数式の以下の代替セットに従って更新されてもよい。
【０１２３】
【数６】
2017513346.tif 000008
【０１２４】
New Sumscale=Sumscale+1 (4)
【０１２５】
フレームの終了点において、新しい背景しきい値(ThNxN)が数式の以下のセットに従って更新されてもよい。
【０１２６】
【数７】
2017513346.tif 000009
【０１２７】
、ここにおいて、Th64x64は、64x64ビデオブロック(5)に関する元の背景しきい値を表す。
【０１２８】
【数８】
2017513346.tif 000010
【０１２９】
一例として、変換処理ユニット52が、前のフレームが上述の動きベクトル範疇のうちの1つによるピクチャ間予測を使用して符号化されていると判定した場合、前のフレームの距離メトリック値(たとえば、前のフレームのSAD)が、上述のような数式に従って、フレームの終了点にブロック全体の
【０１３０】
【数９】
2017513346.tif 000011
【０１３１】
番目として記憶され正規化される。この値は次いで、次のフレームに関する背景しきい値になる。一実施形態では、このプロセスがフレームごとに行われ、連続する各フレームについてしきい値を更新してもよい。
【０１３２】
例に応じて、本明細書で説明される技法のいずれかのいくつかの行為またはイベントは異なる順序で実行されてもよく、一緒に追加され、統合され、または省略されてもよい(たとえば、説明される行為またはイベントのすべてが技法の実施のために必要とは限らない)ことを認識されたい。さらに、いくつかの例では、行為またはイベントは、順次的にではなく、たとえばマルチスレッド処理、割り込み処理またはマルチプロセッサを通じて同時に実行されてもよい。
【０１３３】
1つまたは複数の例において、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。ソフトウェアで実装される場合、機能は、1つもしくは複数の命令またはコードとしてコンピュータ可読媒体上に記憶され、またはコンピュータ可読媒体を介して送信されてもよく、かつハードウェアに基づく処理ユニットによって実行されてもよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含むことがあり、あるいは、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含むことがある。このようにして、コンピュータ可読媒体は、概して、(1)非一時的な有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応する場合がある。データ記憶媒体は、本開示で説明した技法を実装するための命令、コード、および/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であってもよい。コンピュータプログラム製品はコンピュータ可読媒体を含んでもよい。
【０１３４】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形式の所望のプログラムコードを記憶するために使用され、コンピュータによってアクセスされる場合がある任意の他の媒体を含んでもよい。また、任意の接続が、適切にコンピュータ可読媒体と呼ばれる。たとえば、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから命令が送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まず、代わりに非一時的な有形記憶媒体を指すことを理解されたい。ディスク(disk)およびディスク(disc)は、本明細書で使用される場合、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク、およびBlu-ray（登録商標）ディスクを含み、ディスク(disk)は通常、磁気的にデータを再生し、ディスク(disc)は、レーザを用いて光学的にデータを再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１３５】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価の集積論理回路もしくはディスクリート論理回路のような、1つまたは複数のプロセッサによって実行されてもよい。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に適した任意の他の構造のいずれかを指す場合がある。さらに、いくつかの態様では、本明細書で説明する機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/またはソフトウェアモジュール内に与えられてもよく、あるいは複合コーデックに組み込まれてもよい。また、技法は、1つまたは複数の回路または論理要素に完全に実装されてもよい。
【０１３６】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装されてもよい。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネント、モジュール、またはユニットが説明されたが、それらのコンポーネント、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。そうではなくて、上で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて結合されてもよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、前述のような1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって形成されてもよい。
【０１３７】
様々な例について説明してきた。これらおよび他の例は以下の特許請求の範囲内に入る。
【符号の説明】
【０１３８】
10  復号システム
12  供給元デバイス
14  供給先デバイス
16  コンピュータ可読記憶媒体
18  ビデオソース
20  ビデオエンコーダ
22  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ
32  集積ディスプレイデバイス
40  モード選択ユニット
42  動き推定ユニット
44  動き補償ユニット
46  イントラ予測ユニット
48  区分ユニット
50  加算器
52  変換処理ユニット
54  量子化ユニット
56  エントロピー符号化ユニット
58  逆量子化ユニット
60  逆変換ユニット
62  加算器
64  参照フレームメモリ
70  エントロピー復号ユニット
72  動き補償ユニット
74  イントラ予測ユニット
76  逆量子化ユニット
78  逆変換ユニット
80  加算器
81  予測ユニット
82  参照フレームメモリ
【図１】
2017513346.tif 000012
【図２】
2017513346.tif 000013
【図３】
2017513346.tif 000014
【図４】
2017513346.tif 000015
【図５】
2017513346.tif 000016
【手続補正書】
【提出日】平成28年9月21日(2016.9.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオエンコーダであって、
ビデオブロックを記憶するように構成されたメモリと、
前記メモリと通信するプロセッサとを備え、前記プロセッサは、
前記ビデオブロックと以前の時間フレーム内に位置する対応するブロックとの間の変化を比較して距離メトリックを求め、前記距離メトリックを背景しきい値と比較することによって、前記ビデオブロックが背景であるかどうかを判定し、
前記ビデオブロックが背景ではないときに、前記ビデオブロックの1つまたは複数のサブブロックを前記以前の時間フレーム内に位置する対応するサブブロックと比較して距離メトリックを求め、前記距離メトリックを背景しきい値と比較することによって、前記サブブロックが背景であるかどうかを判定し、
1つまたは複数のビデオブロックが複数の所定の様々な動きベクトル区分のうちの1つに対応する動きベクトル区分を有する場合に、以後の時間フレーム内のビデオブロックおよび/またはサブブロックが背景であるかどうかを判定する際に使用される前記1つまたは複数のビデオブロックに関して求められた前記距離メトリックに基づいて前記背景しきい値を更新するように構成されるビデオエンコーダ。
【請求項２】
前記プロセッサは、前記距離メトリックを、前記ビデオブロックと前記対応するブロックとの間の絶対差分和または2乗誤差和の少なくとも一方として求め、前記距離メトリックがしきい値よりも小さいかどうかを判定するようにさらに構成される、請求項1に記載のビデオエンコーダ。
【請求項３】
前記統計は、前記以前の時間フレームのブロックに関連する動きベクトルが空間オフセット値と同じである前記以前の時間フレームの前記ブロックに関連する前記距離メトリックの和を含み、前記空間オフセット値は、グローバル動き値または零動きベクトル値のいずれかに等しい、請求項1または請求項2に記載のビデオエンコーダ。
【請求項４】
前記対応するブロックは、前記ビデオブロックに対して空間的にコロケートされる、請求項1に記載のビデオエンコーダ。
【請求項５】
前記プロセッサは、ビデオブロックのコンテンツが前記以前の時間フレームに対して所定の量よりも多い量だけ変化したかどうかを判定することによって、前記ビデオブロックが背景であるかどうかを判定するようにさらに構成される、請求項1に記載のビデオエンコーダ。
【請求項６】
前記サブブロックは前記ビデオブロックのサイズの4分の1である、請求項1に記載のビデオエンコーダ。
【請求項７】
前記プロセッサは、前記ビデオブロックの前記サブブロックのうちの1つが背景ではないときに、前記サブブロックの前記複数のサブブロックを前記以前の時間フレーム内に位置する対応するサブサブブロックと比較することによって、前記サブブロックの前記1つまたは複数のサブブロックが背景であるかどうかを判定するようにさらに構成される、請求項1に記載のビデオエンコーダ。
【請求項８】
前記プロセッサは、動き決定プロセス、動き推定プロセス、またはその両方を利用して、(1)前記ビデオブロックが背景であるときに前記ビデオブロックを符号化するか、あるいは(2)前記1つまたは複数のサブブロックが背景であるときに前記1つまたは複数のサブブロックを符号化するか、あるいは(3) (1)と(2)の両方を行うようにさらに構成される、請求項1に記載のビデオエンコーダ。
【請求項９】
ビデオを符号化する方法であって、
ビデオブロックを記憶するステップと、
前記ビデオブロックと以前の時間フレーム内に位置する対応するブロックとの間の変化を比較して距離メトリックを求め、前記距離メトリックを背景しきい値と比較することによって、前記ビデオブロックが背景であるかどうかを判定するステップと、
前記ビデオブロックが背景ではないときに、前記ビデオブロックの1つまたは複数のサブブロックを前記以前の時間フレーム内に位置する対応するサブブロックと比較して距離メトリックを求め、前記距離メトリックを背景しきい値と比較することによって、前記サブブロックが背景であるかどうかを判定するステップと、
1つまたは複数のビデオブロックが複数の所定の様々な動きベクトル区分のうちの1つに対応する動きベクトル区分を有する場合に、以後の時間フレーム内のビデオブロックおよび/またはサブブロックが背景であるかどうかを判定する際に使用される前記1つまたは複数のビデオブロックに関して求められた前記距離メトリックに基づいて前記背景しきい値を更新するステップとを含む方法。
【請求項１０】
前記距離メトリックを、前記ビデオブロックと前記対応するブロックとの間の絶対差分和または2乗誤差和の少なくとも一方として求め、前記距離メトリックがしきい値よりも小さいかどうかを判定するステップをさらに含む、請求項9に記載の方法。
【請求項１１】
前記統計は、前記以前の時間フレームのブロックに関連する動きベクトルが空間オフセット値と同じである前記以前の時間フレームの前記ブロックに関連する前記距離メトリックの和を含み、前記空間オフセット値は、グローバル動き値または零動きベクトル値のいずれかに等しい、請求項9または請求項10に記載の方法。
【請求項１２】
前記対応するブロックは、前記ビデオブロックに対して空間的にコロケートされる、請求項9に記載の方法。
【請求項１３】
ビデオブロックのコンテンツが前記以前の時間フレームに対して所定の量よりも多い量だけ変化したかどうかを判定することによって、前記ビデオブロックが背景であるかどうかを判定するステップをさらに含む、請求項9に記載の方法。
【請求項１４】
前記サブブロックは前記ビデオブロックのサイズの4分の1である、請求項9に記載の方法。
【請求項１５】
前記ビデオブロックの前記サブブロックのうちの1つが背景ではないときに、前記サブブロックの前記複数のサブブロックを前記以前の時間フレーム内に位置する対応するサブサブブロックと比較することによって、前記サブブロックの前記1つまたは複数のサブブロックが背景であるかどうかを判定するステップをさらに含む、請求項9に記載の方法。
【請求項１６】
動き決定プロセス、動き推定プロセス、またはその両方を利用して、(1)前記ビデオブロックが背景であるときに前記ビデオブロックを符号化するか、あるいは(2)前記1つまたは複数のサブブロックが背景であるときに前記1つまたは複数のサブブロックを符号化するか、あるいは(3) (1)と(2)の両方を行うステップをさらに含む、請求項9に記載の方法。
【請求項１７】
コードを含む非一時的コンピュータ可読記憶媒体であって、前記コードは、実行されたときに、装置に、
ビデオブロックを記憶することと、
前記ビデオブロックと以前の時間フレーム内に位置する対応するブロックとの間の変化を比較して距離メトリックを求め、前記距離メトリックを背景しきい値と比較することによって、前記ビデオブロックが背景であるかどうかを判定することと、
前記ビデオブロックが背景ではないときに、前記ビデオブロックの1つまたは複数のサブブロックを前記以前の時間フレーム内に位置する対応するサブブロックと比較して距離メトリックを求め、前記距離メトリックを背景しきい値と比較することによって、前記サブブロックが背景であるかどうかを判定することと、
1つまたは複数のビデオブロックが複数の所定の様々な動きベクトル区分のうちの1つに対応する動きベクトル区分を有する場合に、以後の時間フレーム内のビデオブロックおよび/またはサブブロックが背景であるかどうかを判定する際に使用される前記1つまたは複数のビデオブロックに関して求められた前記距離メトリックに基づいて前記背景しきい値を更新することとを行わせる非一時的コンピュータ可読記憶媒体。
【請求項１８】
実行されたときに、前記装置に、前記距離メトリックを、前記ビデオブロックと前記対応するブロックとの間の絶対差分和または2乗誤差和の少なくとも一方として求めさせ、前記距離メトリックがしきい値よりも小さいかどうかを判定させるコードをさらに含む、請求項17に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記統計は、前記以前の時間フレームのブロックに関連する動きベクトルが空間オフセット値と同じである前記以前の時間フレームの前記ブロックに関連する前記距離メトリックの和を含み、前記空間オフセット値は、グローバル動き値または零動きベクトル値のいずれかに等しい、請求項17または請求項18に記載のコンピュータ可読記憶媒体。
【請求項２０】
実行されたときに、前記装置に、ビデオブロックのコンテンツが前記以前の時間フレームに対して所定の量よりも多い量だけ変化したかどうかを判定することによって、前記ビデオブロックが背景であるかどうかを判定させるコードをさらに含む、請求項17に記載のコンピュータ可読記憶媒体。
【請求項２１】
実行されたときに、前記装置に、前記ビデオブロックの前記サブブロックのうちの1つが背景ではないときに、前記サブブロックの前記複数のサブブロックを前記以前の時間フレーム内に位置する対応するサブサブブロックと比較することによって、前記サブブロックの前記1つまたは複数のサブブロックが背景であるかどうかを判定させるコードをさらに含む、請求項17に記載のコンピュータ可読記憶媒体。
【請求項２２】
ビデオを符号化するための装置であって、
ビデオブロックを記憶するための手段と、
前記ビデオブロックと以前の時間フレーム内に位置する対応するブロックとの間の変化を比較して距離メトリックを求め、前記距離メトリックを背景しきい値と比較することによって、前記ビデオブロックが背景であるかどうかを判定するための手段と、
前記ビデオブロックが背景ではないときに、前記ビデオブロックの1つまたは複数のサブブロックを前記以前の時間フレーム内に位置する対応するサブブロックと比較して距離メトリックを求め、前記距離メトリックを背景しきい値と比較することによって、前記サブブロックが背景であるかどうかを判定するための手段と、
1つまたは複数のビデオブロックが複数の所定の様々な動きベクトル区分のうちの1つに対応する動きベクトル区分を有する場合に、以後の時間フレーム内のビデオブロックおよび/またはサブブロックが背景であるかどうかを判定する際に使用される前記1つまたは複数のビデオブロックに関して求められた前記距離メトリックに基づいて前記背景しきい値を更新するための手段とを備える装置。
【請求項２３】
前記距離メトリックを、前記ビデオブロックと前記対応するブロックとの間の絶対差分和または2乗誤差和の少なくとも一方として求め、前記距離メトリックがしきい値よりも小さいかどうかを判定するための手段をさらに備える、請求項22に記載の装置。
【請求項２４】
前記統計は、前記以前の時間フレームのブロックに関連する動きベクトルが空間オフセット値と同じである前記以前の時間フレームの前記ブロックに関連する前記距離メトリックの和を含み、前記空間オフセット値は、グローバル動き値または零動きベクトル値のいずれかに等しい、請求項22または請求項23に記載の装置。
【請求項２５】
ビデオブロックのコンテンツが前記以前の時間フレームに対して所定の量よりも多い量だけ変化したかどうかを判定することによって、前記ビデオブロックが背景であるかどうかを判定するための手段をさらに備える、請求項22に記載の装置。
【請求項２６】
前記ビデオブロックの前記サブブロックのうちの1つが背景ではないときに、前記サブブロックの複数のサブブロックを前記以前の時間フレーム内に位置する対応するサブサブブロックと比較することによって、前記サブブロックの前記1つまたは複数のサブブロックが背景であるかどうかを判定するための手段をさらに備える、請求項22に記載の装置。
【国際調査報告】
2017513346.tif 000017
2017513346.tif 000018
2017513346.tif 000019