(57)【特許請求の範囲】
【請求項１】
実行時に１つ以上のプロセッサに処理を実行させる命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記命令は、
画像を複数の領域に分割する工程と、
確率表に基づき前記複数の領域の各領域に対し複数のパーティション・タイプを適用する工程と、
前記複数の領域の各領域に対し適用された前記複数のパーティション・タイプに基づき、前記複数の領域の各領域に対するレート歪みコストを決定する歪みコスト決定工程と、
前記複数の領域の各領域に対し適用された前記複数のパーティション・タイプに基づき、前記複数の領域の各領域に対する符号化方式を決定する符号化方式決定工程と、
前記複数の領域の各領域に対し決定された前記レート歪みコストと前記符号化方式とに基づき、前記複数の領域の各領域を別個に符号化する符号化工程と、
を行うように構成された命令を含み、
決定された前記符号化方式は、前記複数の領域の各領域に対する符号化方式を決定するとき、各領域のサイズと、各領域の上の第１の近隣領域に対し適用されるパーティション・タイプと、各領域の左の第２の近隣領域に対し適用されるパーティション・タイプとに基づく条件付きの確率表を用いるコンテキスト・ベース・エントロピー符号化方式を含む、コンピュータ可読記憶媒体。
【請求項２】
前記画像はビデオ・フレームを含み、前記複数の領域は前記複数の領域のグリッドを含む、請求項１に記載のコンピュータ可読記憶媒体。
【請求項３】
前記複数の領域の各領域は、ｎ×ｎピクセルのブロックを含む、請求項１または２に記載のコンピュータ可読記憶媒体。
【請求項４】
ｎ×ｎピクセルの前記ブロックは、６４×６４ピクセルのブロック、３２×３２ピクセルのブロック、１６×１６ピクセルのブロック、８×８ピクセルのブロック、４×４ピクセルのブロック、および２×２ピクセルのブロックのうちの１つ以上を含む、請求項３に記載のコンピュータ可読記憶媒体。
【請求項５】
前記確率表は、前記複数のパーティション・タイプにおける第１のパーティション・タイプに関連付けられている確率値と、前記複数のパーティション・タイプにおける第２のパーティション・タイプに関連付けられている確率値とを含む、請求項１〜４のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項６】
前記複数のパーティション・タイプは、
同様の寸法の４つのサブブロックを有するスプリット・パーティション・タイプを含む第１のパーティション・タイプ、
水平方向に並べられた同様の寸法の２つのサブブロックを有するホライゾンタル・パーティション・タイプを含む第２のパーティション・タイプ、
垂直方向に並べられた同様の寸法の２つのサブブロックを有するバーティカル・パーティション・タイプを含む第３のパーティション・タイプ、および
単一のブロックを有する無パーティション・タイプを含む第４のパーティション・タイプを含む、請求項１〜５のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項７】
前記複数の領域の各領域に対し適用された前記複数のパーティション・タイプのうちの第１のパーティション・タイプについて、前記命令は、
前記複数の領域の各領域を複数のサブ領域に分割する工程と、
前記複数のサブ領域の各サブ領域に対し前記複数のパーティション・タイプを再適用する工程と、
前記複数のサブ領域の各サブ領域に対し適用された前記複数のパーティション・タイプに基づき、前記複数のサブ領域の各サブ領域に対するレート歪みコストを決定する工程と、
前記複数のサブ領域の各サブ領域に対し適用された前記複数のパーティション・タイプに基づき、前記複数のサブ領域の各サブ領域に対する符号化方式を決定する工程と、
を行うように構成された命令を含む、請求項１〜６のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項８】
前記符号化工程を行うように構成された命令は、
前記複数のサブ領域の各サブ領域に対し決定された前記レート歪みコストと前記符号化方式とに基づき、前記複数のサブ領域の各サブ領域を別個に符号化する工程を行うように構成された命令を含む、請求項７に記載のコンピュータ可読記憶媒体。
【請求項９】
前記歪みコスト決定工程を行うように構成された命令は、
前記複数の領域の各領域に対し適用された前記複数のパーティション・タイプに基づき、前記複数の領域の各領域に対する複数のレート歪みコストを評価する工程と、
前記複数の領域の各領域に対するレート歪みコストを決定する工程であって、前記レート歪みコストは、前記複数の領域の各領域に対し評価された前記複数のレート歪みコストから選択される、工程と、
を行うように構成された命令を含む、請求項１〜８のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項１０】
前記符号化工程を行うように構成された命令は、
前記複数の領域の各領域に対し決定された最適なレート歪みコストに基づき、前記複数の領域の各領域を別個に符号化する工程を行うように構成された命令を含む、請求項１〜９のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項１１】
前記符号化方式決定工程を行うように構成された命令は、
前記複数の領域の各領域に対し適用された前記複数のパーティション・タイプに基づき、前記複数の領域の各領域に対する複数の符号化方式を評価する工程と、
前記複数の領域の各領域に対する最適な符号化方式を決定する工程であって、前記最適な符号化方式は、前記複数の領域の各領域に対し評価された前記複数の符号化方式から選択される、工程と、
を行うように構成された命令を含む、請求項１〜１０のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項１２】
前記符号化工程を行うように構成された命令は、
前記複数の領域の各領域に対し決定された前記最適な符号化方式に基づき、前記複数の領域の各領域を別個に符号化する工程を行うように構成された命令を含む、請求項１〜１１のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項１３】
前記符号化工程を行うように構成された命令は、
前記複数の領域の各領域に対し決定された前記レート歪みコストと前記符号化方式とに基づき、ラスタ順に各領域をビットストリームへと別個に符号化する工程を行うように構成された命令を含む、請求項１〜１２のいずれか一項に記載のコンピュータ可読記憶媒体。
【請求項１４】
実行時に１つ以上のプロセッサに処理を実行させる命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記命令は、
ビデオ・フレームを複数のピクセル・ブロックに分割する工程と、
確率表に基づき前記複数のピクセル・ブロックの各ピクセル・ブロックに対し複数のパーティション・タイプを適用する工程と、
前記複数のピクセル・ブロックの各ピクセル・ブロックに対し適用された前記複数のパーティション・タイプのうちの第１のパーティション・タイプについて、前記第１のパーティション・タイプの各ピクセル・ブロックを複数のピクセル・サブブロックに分割し、前記複数のピクセル・サブブロックの各ピクセル・サブブロックに対し前記複数のパーティション・タイプを再適用する工程と、
各ピクセル・ブロックおよび各ピクセル・サブブロックに対しそれぞれ適用および再適用された前記複数のパーティション・タイプに基づき、各ピクセル・ブロックおよび各ピクセル・サブブロックに対するレート歪みコストを決定する工程と、
各ピクセル・ブロックおよび各ピクセル・サブブロックに対しそれぞれ適用および再適用された前記複数のパーティション・タイプに基づき、各ピクセル・ブロックおよび各ピクセル・サブブロックに対する符号化方式を決定する工程と、
各ピクセル・ブロックおよび各ピクセル・サブブロックに対し決定された前記レート歪みコストと前記符号化方式とに基づき、各ピクセル・ブロックおよび各ピクセル・サブブロックを別個に符号化する工程と、
を行うように構成された命令を含み、
決定された前記符号化方式は、前記複数のピクセル・ブロックの各ピクセル・ブロックに対する符号化方式を決定するとき、各ピクセル・ブロックのサイズと、各ピクセル・ブロックの上の第１の近隣ピクセル・ブロックに対し適用されるパーティション・タイプと、各ピクセル・ブロックの左の第２の近隣ピクセル・ブロックに対し適用されるパーティション・タイプとに基づく条件付きの確率表を用いるコンテキスト・ベース・エントロピー符号化方式を含む、コンピュータ可読記憶媒体。
【請求項１５】
各ピクセル・ブロックは、ｎ×ｎピクセルのブロックを含み、ｎ×ｎピクセルの各ブロックは、６４×６４ピクセルのブロック、３２×３２ピクセルのブロック、１６×１６ピクセルのブロック、８×８ピクセルのブロック、４×４ピクセルのブロック、および２×２ピクセルのブロックのうちの１つ以上を含む、請求項１４に記載のコンピュータ可読記憶媒体。
【請求項１６】
前記複数のパーティション・タイプのうちの前記第１のパーティション・タイプは、同様の寸法の４つのサブブロックを有するスプリット・パーティション・タイプを含み、
第２のパーティション・タイプは、水平方向に並べられた同様の寸法の２つのサブブロックを有するホライゾンタル・パーティション・タイプを含み、
第３のパーティション・タイプは、垂直方向に並べられた同様の寸法の２つのサブブロックを有するバーティカル・パーティション・タイプを含み、
第４のパーティション・タイプは、単一のブロックを有する無パーティション・タイプを含む、請求項１４または１５に記載のコンピュータ可読記憶媒体。
【請求項１７】
システムであって、
１つ以上のプロセッサとメモリとを備え、
１つ以上のプロセッサは、
フレームを複数の領域に分割する工程と、
前記複数の領域の各領域に対し複数のパーティション・タイプを適用する工程と、
前記複数の領域の各領域に対し適用された前記複数のパーティション・タイプのうちの１つ以上のパーティション・タイプについて、前記１つ以上のパーティション・タイプの各領域を確率表に基づき複数のサブ領域に分割し、前記複数のサブ領域の各サブ領域に対し前記複数のパーティション・タイプを再適用する工程と、
各領域および各サブ領域に対しそれぞれ適用および再適用された前記複数のパーティション・タイプに基づき、各領域および各サブ領域に対するレート歪みコストを決定する工程と、
各領域および各サブ領域に対しそれぞれ適用および再適用された前記複数のパーティション・タイプに基づき、各領域および各サブ領域に対する符号化方式を決定する工程と、
各領域および各サブ領域に対し決定された前記レート歪みコストと前記符号化方式とに基づき、各領域および各サブ領域を別個に符号化する工程と、
を行うように構成され、
決定された前記符号化方式は、前記複数の領域の各領域に対する符号化方式を決定するとき、各領域のサイズと、各領域の上の第１の近隣領域に対し適用されるパーティション・タイプと、各領域の左の第２の近隣領域に対し適用されるパーティション・タイプとに基づく条件付きの確率表を用いるコンテキスト・ベース・エントロピー符号化方式を含む、システム。
【請求項１８】
前記フレームは第１のフレームであり、前記確率表は、前記１つ以上のパーティション・タイプに関連付けられている確率値を含み、前記１つ以上のプロセッサは、前記第１のフレームに関連付けられている処理に基づく第２のフレームの処理のために前記確率値を更新するように構成されている、請求項１７に記載のシステム。
【請求項１９】
前記フレームは、ビデオ・フレームのシーケンスにおける第１のフレームであり、前記確率表は、前記１つ以上のパーティション・タイプに関連付けられているデフォルト確率値を含む、請求項１７または１８に記載のシステム。
【請求項２０】
実行時に１つ以上のプロセッサに処理を実行させる命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記命令は、
ビデオ・フレームのシーケンスにおける第１のフレームを識別する工程と、
メモリに記憶されている確率表に基づき、ビデオ・フレームの前記シーケンスにおける前記第１のフレームを符号化する工程であって、前記確率表はパーティション・タイプに関連付けられている確率値を含む、工程と、
ビデオ・フレームの前記シーケンスにおける前記第１のフレームの前記符号化に基づき、前記パーティション・タイプに関連付けられている前記確率値を更新された確率値に修正する工程と、
前記確率表に含まれている前記更新された確率値に基づき、ビデオ・フレームのシーケンスにおける第２のフレームを符号化する工程と、
を行うように構成された命令を含み、
前記第１のフレームを符号化するための符号化方式は、前記第１のフレームにおける複数の領域の各領域に対する符号化方式を決定するとき、前記第１のフレームにおける各領域のサイズと、前記第１のフレームにおける各領域の上の第１の近隣領域に対し適用されるパーティション・タイプと、前記第１のフレームにおける各領域の左の第２の近隣領域に対し適用されるパーティション・タイプとに基づく条件付きの確率表を用いるコンテキスト・ベース・エントロピー符号化方式を含む、コンピュータ可読記憶媒体。
【請求項２１】
前記命令は、
前記第１のフレームに関連付けられている前記パーティション・タイプの確率分布を算出し、前記パーティション・タイプの確率分布に基づき前記確率値を修正する工程を行うように構成された命令をさらに含む、請求項２０に記載のコンピュータ可読記憶媒体。
【請求項２２】
エントロピー・エンコーダに関連付けられているビット・レートは、前記確率値に基づき割り当てられる、請求項２０または２１に記載のコンピュータ可読記憶媒体。
【請求項２３】
前記確率表は、第１のブロック・サイズから第２のブロック・サイズへのパーティショニングに関連付けられている第１のブロック部分を含み、前記確率表は、第２のブロック・サイズから第３のブロック・サイズへのパーティショニングに関連付けられている第２のブロック部分を含む、請求項２０〜２２のいずれか一項に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本記載は、動画圧縮における再帰的なブロック・パーティショニングとそのエントロピー符号化とのための様々なコンピュータ・ベース技術に関する。
【背景技術】
【０００２】
一般に、ビデオ・コーデックは、デジタルビデオの圧縮／伸張を可能にする。通常、ビデオ品質と、ビデオを表現するために必要なデータの量（すなわち、ビット・レート）と、符号化／復号アルゴリズムの複雑性と、複数の他の因子との間には、複雑なバランスが存在する。ビデオ・コーデックでは、通常、ブロック符号化が用いられる。ブロック・サイズが大きいほど符号化に関する平均オーバヘッド・コストは少なくなる一方、ブロック・サイズが小さいほど、予測をより柔軟として、残差のエネルギーを減少させることが可能となる。レート歪みコストを最適化するようにブロック・サイズ選択を取り扱う場合、従来のビデオ・コーデックは不十分であるものの、比較的単純かつ簡潔なコーデック構造が維持される。最近では、平均オーバヘッド・コストと予測品質との間のトレードオフを最適化する共通戦略は、所与の領域について、エンコーダがすべての可能なブロック・サイズをテストし、レート歪みコストを最小とするものを選択することである。この共通戦略では、選択されたブロック・サイズをビットストリームへと明示的に符号化する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
残念ながら、従来の符号化では、そうしたすべてのブロック・サイズを通じた大規模な検索によって、極めて複雑なビデオ・コーデック実装が生じる。さらに、ブロック・サイズ情報を明示的に符号化すると空間的相関が十分に利用されず、圧縮効率が低くなる場合がある。このように、ビデオ・コーデックを実装する処理の最適化および／または改良を行う必要が存在する。
【課題を解決するための手段】
【０００４】
本開示の態様により、実行時に１つ以上のプロセッサに処理を実行させる命令を記憶するための非一時的なコンピュータ可読記憶媒体を提供する。この命令は、画像を複数の領域に分割する工程と、前記複数の領域の各領域に対し複数のパーティション・タイプを適用する工程と、を行うように構成されている命令を含んでよい。この命令は、前記複数の領域の各領域に対し適用された前記複数のパーティション・タイプに基づき、前記複数の領域の各領域に対するレート歪み（例えば、レート歪みコスト）を決定する工程を行うように構成されている命令を含んでよい。この命令は、前記複数の領域の各領域に対し適用された前記複数のパーティション・タイプに基づき、前記複数の領域の各領域に対する符号化方式を決定する工程を行うように構成されている命令を含んでよい。この命令は、前記複数の領域の各領域に対し決定された前記レート歪みコストと前記符号化方式とに基づき、前記複数の領域の各領域を別個に符号化する工程を行うように構成されている命令を含んでよい。
【０００５】
本開示の態様により、実行時に１つ以上のプロセッサに処理を実行させる命令を記憶するための非一時的なコンピュータ可読記憶媒体を提供する。この命令は、ビデオ・フレームを複数のピクセル・ブロックに分割する工程と、前記複数のピクセル・ブロックの各ピクセル・ブロックに対し複数のパーティション・タイプを適用する工程と、を行うように構成されている命令を含んでよい。この命令は、前記複数のピクセル・ブロックの各ピクセル・ブロックに対し適用された前記複数のパーティション・タイプのうちの第１のパーティション・タイプについて、前記第１のパーティション・タイプの各ピクセル・ブロックを複数のピクセル・サブブロックに分割し、前記複数のピクセル・サブブロックの各ピクセル・サブブロックに対し前記複数のパーティション・タイプを再適用する工程を行うように構成されている命令を含んでよい。この命令は、各ピクセル・ブロックおよび各ピクセル・サブブロックに対しそれぞれ適用および再適用された前記複数のパーティション・タイプに基づき、各ピクセル・ブロックおよび各ピクセル・サブブロックに対するレート歪みコストを決定する工程を行うように構成されている命令を含んでよい。この命令は、各ピクセル・ブロックおよび各ピクセル・サブブロックに対しそれぞれ適用および再適用された前記複数のパーティション・タイプに基づき、各ピクセル・ブロックおよび各ピクセル・サブブロックに対する符号化方式を決定する工程を行うように構成されている命令を含んでよい。この命令は、各ピクセル・ブロックおよび各ピクセル・サブブロックに対し決定された前記レート歪みコストと前記符号化方式とに基づき、各ピクセル・ブロックおよび各ピクセル・サブブロックを別個に符号化する工程を行うように構成されている命令を含んでよい。
【０００６】
本開示の態様により、システムは１つ以上のプロセッサおよびメモリを備えてもよい。このシステムは、前記１つ以上のプロセッサに、画像を複数の領域に分割する工程と、前記複数の領域の各領域に対し複数のパーティション・タイプを適用する工程と、を行わせるように構成されているエンコーダを備えてよい。このエンコーダは、前記１つ以上のプロセッサに、前記複数の領域の各領域に対し適用された前記複数のパーティション・タイプのうちの１つ以上のパーティション・タイプについて、前記１つ以上のパーティション・タイプの各領域を複数のサブ領域に分割し、前記複数のサブ領域の各サブ領域に対し前記複数のパーティション・タイプを再適用する工程を行わせるように構成されてよい。このエンコーダは、前記１つ以上のプロセッサに、各領域および各サブ領域に対しそれぞれ適用および再適用された前記複数のパーティション・タイプに基づき、各領域および各サブ領域に対するレート歪みコストを決定する工程を行わせるように構成されてよい。このエンコーダは、前記１つ以上のプロセッサに、各領域および各サブ領域に対しそれぞれ適用および再適用された前記複数のパーティション・タイプに基づき、各領域および各サブ領域に対する符号化方式を決定する工程を行わせるように構成されてよい。このエンコーダは、前記１つ以上のプロセッサに、各領域および各サブ領域に対し決定された前記レート歪みコストと前記符号化方式とに基づき、各領域および各サブ領域を別個に符号化する工程を行わせるように構成されてよい。
【０００７】
１つ以上の実装の詳細について、添付の図面および以下の記載において述べる。他のフィーチャは、この記載および図面、および特許請求の範囲から明らかである。
【図面の簡単な説明】
【０００８】
【図１Ａ】本開示の態様による、動画圧縮における再帰的なブロック・パーティショニングおよびそのエントロピー符号化のための様々なコンピュータ・ベースの技術を実装するための一例のシステムを示すブロック図。
【図１Ｂ】本開示の態様による図１Ａに示すブロックの一部に関連付けられているコンポーネント例を示すブロック図。
【図２】本開示の態様による一例のエンコーダを示すブロック図。
【図３】本開示の態様による一例のデコーダを示す別のブロック図。
【図４】本開示の態様による再帰的なブロック・パーティショニング用の一例の技術を示すブロック図。
【図５】本開示の態様によるコンテキスト・ベース・エントロピー符号化用の一例の技術を示すブロック図。
【図６Ａ】本開示の態様による、エンコーダにおいて表を生成するための方法を示す処理フロー。
【図６Ｂ】本開示の態様による、再帰的なブロック・パーティショニングのための方法例を示す処理フロー。
【図６Ｃ】本開示の態様による、再帰的なブロック・パーティショニングのための方法例を示す処理フロー。
【図７】一実装による確率表の一例を示す図。
【図８】本開示の態様による、再帰的なブロック・パーティショニング用の別の方法例を示す処理フロー。
【発明を実施するための形態】
【０００９】
図１Ａは、本開示の態様による、動画圧縮における再帰的なブロック・パーティショニングおよびそのエントロピー符号化のための様々な技術を実装するための一例のシステム１００を示す図である。一部の実装では、画像は、複数の領域（各々が、例えば、６４×６４ピクセルなど、ｎ×ｎピクセルのサイズを有する領域）に分割されてもよい。さらに、各領域は、最適な符号化解を発見するためにレート歪みループを通じてテストされてもよく（画像が領域またはピクセル・ブロック・サイズに分割されるまたはパーティショニングされる方式、ブロック毎予測モード、各ブロックに対し適用される変換タイプを含む）、次いで、各領域がラスタ順にビットストリームへと符号化すなわちエンコードされてもよい。一部の実装では、画像は、６４×３２ピクセルなど、ｎ×ｍピクセルのサイズを有する領域に分割されてもよい。
【００１０】
レート歪みループは、動画圧縮におけるビデオ品質を向上させるために用いられてもよく、ビデオを符号化するために用いられるデータの量（データレート）に対する歪み（ビデオ品質の損失）の量を比較し決定することを含んでもよい。一部の実装では、レート歪みループは、符号化（符号化されたビデオのファイル・サイズと質とが解による影響を同時に受ける）を改良するために用いられてもよい。
【００１１】
図１Ａの例では、システム１００は、再帰的なブロック・パーティショニングを実装するためのコンピュータ・システムを備える。図１Ａの例では、エンコーダ１２０は、入力ビデオ・ストリームを用いて、符号化または圧縮されたビットストリームを提供するフォワードパスにおいて様々な機能を実行するための１つ以上のステージを備える。本明細書にさらに記載するように、入力ビデオ・ストリームの画像またはビデオ・フレームは複数の領域に分割されてもよい。ここで、各領域は最適な符号化解を発見するためにレート歪みループを通じてテストまたは評価されてよく、次いで、各領域はラスタ順にビットストリームへ符号化されてよい。
【００１２】
図１Ａの例では、デコーダ１２４は、符号化または圧縮されたビットストリームから出力ビデオ・ストリームを提供する様々な機能を実行するための１つ以上のステージを備える。本明細書にさらに記載するように、符号化または圧縮されたビットストリームは、出力ビデオ・ストリームを提供するように復号するためのデコーダに対し提供されてよい。一部の実装では、デコーダ１２４は、エンコーダ１２０の補体（ｃｏｍｐｌｅｍｅｎｔ）であり、したがって、デコーダ１２４によって用いられる復号処理は、エンコーダ１２０によって用いられる符号化処理の補体である。エンコーダ１２０およびデコーダ１２４の動作に関するさらなる詳細について、例えば、図２〜図５に関連して以下に記載する。
【００１３】
図１Ａの例では、コンピューティング・デバイス１０４は、ビデオ・ソース１１４およびネットワーク１１８と通信するサーバまたはユーザデバイスを含む。一部の実装では、コンピューティング・デバイス１０４はビデオ・インタフェース１３０を介してビデオ・ソース１１４からビデオ・データ・ストリームを受信し、このビデオ・データ・ストリームをエンコーダ１２０を介して符号化し、符号化されたビデオ・データ・ストリームを、ネットワーク・インタフェース１３４を介してネットワーク１１８を通じて送信するように構成されてもよい。エンコーダ１２０は、ビデオ・ソース１１４のブロック・パーティショニングおよびそのエントロピー符号化に基づき最適化される符号化処理を用いてもよい。それによって最適化が生じる１または複数の符号化処理の例について、さらに本明細書に記載する。
【００１４】
一部の実装では、コンピューティング・デバイス１０４は、ネットワーク・インタフェース１３４を介してネットワーク１１８からビデオ・データ・ストリームを受信し、このビデオ・データ・ストリームをデコーダ１２４を介して復号し、復号されたビデオ・データ・ストリームを、ビデオ・インタフェース１３０を介してディスプレイ・デバイス１５０上に表示するように構成されてもよい。デコーダ１２４は、ビデオ・データ・ストリームのブロック・パーティショニングおよびそのエントロピー復号に基づき最適化される復号処理を用いてもよい。１または複数の復号処理の例について、さらに本明細書に記載する。
【００１５】
ビデオ・ソース１１４は、静止画像、ビデオ・フレームなどを含むビデオ画像の提供、キャプチャ、および／または送信を行うことが可能な任意のデバイスであってよい。例えば、ビデオ・ソース１１４は、コンピュータ・サーバ、ラップトップ・コンピュータ、ノート型コンピュータ、タブレット・コンピュータ、モバイルフォン、携帯情報端末、デジタル・カメラ、デジタル・カムコーダ、ウェブカメラ、またはビデオ画像を含む画像の提供、キャプチャ、および／または送信を行うことの可能な任意の他のデバイスを含んでよい。一部の実装では、コンピューティング・デバイス１０４は、複数のビデオ・ソース１１４からオーディオおよび／またはビデオを受信し、それらのソースを１つのビデオ・データ・ストリームへと組み合わせてよい。
【００１６】
一部の実装では、コンピューティング・デバイス１０４は、ネットワーク１１８の１つのノードにあってよく、ネットワーク１１８の１つ以上の他のノードと直接的また間接的に通信を行うように動作可能であってよい。例えば、コンピューティング・デバイス１０４は、コンピューティング・デバイス１０４がネットワーク１１８を用いてユーザに対する情報を送信しディスプレイ・デバイス１５２上に表示するように、ネットワーク１１８を介して１つ以上のクライアント・デバイスと通信を行うように動作可能なウェブ・サーバを含んでよい。本明細書に記載の概念および技術について一般にコンピューティング・デバイス１０４を参照して記載しているが、開示の様々な態様は、符号化／復号動作を実装可能な実行することができる任意のデバイスおよび／またはコンピューティング・ノードに対し適用されてよい。
【００１７】
一部の実装では、システム１００は、例えば、個人識別可能な情報の匿名化、データのアグリゲーション、機密情報のフィルタリング、暗号化、個人属性を除去するための機密情報のハッシュ化またはフィルタリング、情報の記憶の期間制限、および／またはデータ利用または共有の制限を含む、データのプライバシー保護を提供するように構成されてもよい。このように、個々のユーザデータが明かされないようにデータが匿名化され、集約されてよい。
【００１８】
図１Ａの例では、ビデオ・インタフェース１３０は、コンピューティング・デバイス、周辺機器、および様々なタイプの電気器具の間の接続用に指定される物理的特性とパラメータとのタイプを定義する多くの異なるオーディオおよびビデオ規格に関係する入力用のハードウェアおよび／またはソフトウェア・インタフェースを提供するように構成されてよい。これらのオーディオおよびビデオ規格は、信号の転送を成功させるためのアナログおよびデジタルのビデオ・データ転送プロトコルを定義してもよい。例えば、デジタル・インタフェースは、入力ビデオ・ストリームなどのデジタル・ビデオ・コンテンツの転送の目的で、コンピュータなどのコンピューティング・デバイスにビデオ・ソースを接続するために用いられてもよい。一部の例では、ビデオ・インタフェース１３０は、ビデオ・ソース１１４から入力ビデオ・ストリームを受信し、それをエンコーダ１２０に符号化のために提供するように設計されてよい。
【００１９】
図１Ａの例では、ネットワーク・インタフェース１３４は、エンコーダ１２０によって符号化されるような送信ビデオ・データ・ストリームを管理するように構成されてよい。さらに、ネットワーク・インタフェース１３４は、デコーダ１２４によって復号されるような受信ビデオ・データ・ストリームを管理するように構成されてよい。ネットワーク・インタフェース１３４は、ビデオ・データ・ストリームを送受信するためのネットワーク・パラメータおよびネットワーク・プロトコルを構成すべく１つ以上のプロセッサ１１０から命令を受信するように構成されてよい。
【００２０】
ネットワーク１１８は、様々な構成を含んでよく、インターネット、ワールド・ワイド・ウェブ、イントラネット、仮想プライベート・ネットワーク、ローカル・イーサネット（登録商標）・ネットワーク、１つ以上の企業に対してプロプライエタリな通信プロトコルを用いるプライベート・ネットワーク、セルラー・ネットワークおよびワイヤレス・ネットワーク（例えば、Ｗｉ−Ｆｉ）、インスタント・メッセージング、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）、簡易メール転送プロトコル（「ＳＭＴＰ」）、ならびにそれらの様々な組み合わせを含む、様々なプロトコルを用いてよい。さらに、システム１００は、ネットワーク１１８を介して通信する接続された複数のコンピュータからなる、より大きなシステムの一部であってよい。
【００２１】
上述の通り、情報が送信または受信される場合に一定の利点が得られるが、しかしながら、本明細書に記載のシステムおよび方法の他の態様は情報の伝送の任意の特定の方式に限定されない。例えば、一部の実装では、情報は光ディスクまたはポータブル・ドライブなどの媒体を介して送られてもよい。他の実装では、情報は電子的でないフォーマットにより送信されてもよく、手動でシステムに入力されてもよい。
【００２２】
図１Ａの例では、システム１００は、再帰的なブロック・パーティショニングを実装するためのコンピュータ・システムを備える。このコンピュータ・システムは、本明細書に記載されるものなど、動画圧縮における再帰的なブロック・パーティショニングとそのエントロピー符号化とのための様々なコンピュータ・ベース技術を実装するように設計されている専用機械として構成され得るコンピューティング・デバイス１０４に関連付けられていてもよい。この意味において、コンピューティング・デバイス１０４は、１つ以上のプロセッサ１１０、１つ以上のメモリ１１２（例えば、非一時的なコンピュータ可読記憶媒体）、１つ以上のデータベース１４０、電源、周辺機器、および様々な他のコンピューティング要素および／またはコンポーネント（図１Ａに具体的に示されていない場合もある）を含む、任意の規格要素および／またはコンポーネントを備えてよい。さらに、システム１００は、ユーザ・インタフェース（ＵＩ）１５２（例えば、グラフィカル・ユーザ・インタフェース（ＧＵＩ）など）を提供するために用いられ得るディスプレイ・デバイス１５０（例えば、モニタまたは他のディスプレイ）に関連付けられてもよい。ＵＩ１５２は、システム１００を利用するユーザから入力を受け取るために用いられてもよい。
【００２３】
このように、システム１００を実装するのに有用であり得るシステム１００の様々な他の要素および／またはコンポーネントが追加されてもよく、含められてもよい。さらに、様々な実装では、コンピューティング・デバイス１０４は、コンピュータ・サーバ、ラップトップ・コンピュータ、ノート型コンピュータ、タブレット・コンピュータ、モバイルフォン、携帯情報端末または、画像（静止画像およびビデオ画像を含む）の処理（例えば、符号化、復号など）および／または送信を行うことの可能な任意の他のデバイスなど、任意のタイプのデバイスを含んでよい。
【００２４】
図１Ａには単一の機能ブロック内における１つ以上のプロセッサ１１０および１つ以上のメモリ１１２を機能的に示しているが、しかしながら、この１つ以上のプロセッサ１１０およびこの１つ以上のメモリ１１２は、同じ物理的なハウジング内に置かれてもよく置かれなくてもよい複数のプロセッサおよびメモリを備えてよいことが理解される。このように、プロセッサ、コンピュータ、および／またはメモリに対する参照は、プロセッサ、コンピュータ、および／または並列に動作してもよく動作しなくてもよいメモリの集合に対する参照を含んでもよい。
【００２５】
図１Ａの例では、システム１００は、コンピューティング・デバイス１０４と、コンピュータ可読媒体１１２上に記録されており１つ以上のプロセッサ１１０によって実行可能な命令を含んでよい。さらに、一実装では、システム１００は、ユーザに出力を提供するためのディスプレイ・デバイス１５０を備えてよく、ディスプレイ・デバイス１５０は、ユーザから入力を受け取るためのＵＩ１５２を備えてもよい。
【００２６】
図１Ａの例では、システム１００は、幾つかの分離した機能を表す様々な機能ブロックまたはモジュールを用いて示されていることが認められる。しかしながら、そうした図示は明確さおよび簡便さを目的として提供されており、したがって、様々な機能が記載のブロックまたはモジュール内において重なったり組み合わされたりしてもよいこと、および／または図１Ａの例に具体的に示されていない１つ以上のブロックまたはモジュールによって実装されてもよいことが認められる。このように、図１Ａのシステム１００に有用であると考えられ得る従来の機能は、そうした従来の要素が明確さおよび簡便さの目的のため明示的に示されていない場合であっても、含まれてよいことが認められる。
【００２７】
図１Ｂは、本開示の態様による図１Ａに示すブロックの一部に関連付けられているコンポーネント例を示すブロック図である。特に、図１Ｂには、図１Ａに示したメモリ１１２およびエンコーダ１２０に関連付けられているコンポーネント例を示す。
【００２８】
図１Ｂの例では、メモリ１１２は、確率表１６０を含んでよい。各確率表１６０は、１つ以上の確率値（例えば、ＣＮ１、ＣＮ２、ＣＮ３、ＣＮ４）に関連付けられているか、１つ以上の確率値で満たされているか、その両方である。様々な実装では、メモリ１１２は、任意の数の確率表（確率表１６０など）と、任意の数の関連付けられている確率値とを含んでよい。一部の実装では、確率値のうちの１つ以上は、１つ以上の他の確率表（図示せず）に関係してもよい。確率表１６０に含まれる確率値のうちの１つ以上は、１組のビデオ・フレームを含むビデオ・シーケンスにおける各フレームに対し修正／更新されてよい。確率値ＣＮ１、ＣＮ２、ＣＮ３、ＣＮ４は、ビデオ・フレーム内のブロックの符号化に関連して特定のパーティション・タイプが用いられる確率に各々関連付けられることが可能である。
【００２９】
さらに、図１Ｂの例では、エンコーダ１２０は、ビデオ・シーケンス検出器１６２、確率計算器１６４、およびパーティション・モジュール１６５を含む、１つ以上のコンポーネント（例えば、処理コンポーネント）を備えてよい。一部の実装では、ビデオ・シーケンスの各ビデオ・フレームは小さな領域のグリッドに分割されてよい。ここで、すべての領域が最適な符号化解を発見するべくレート歪み最適化ループを通じてテストされて、次いで、ラスタ順にビットストリームへと符号化されてよい。
【００３０】
ビデオ・シーケンス検出器１６２は、ビデオ・フレームのシーケンスにおける第１のフレームを識別するように構成されてよい。例えば、ビデオ・シーケンス検出器１６２は、新たなビデオ・シーケンスを検出し、確率計算をリセット／再始動し、確率表を更新／修正するように構成されてよい（例えば、ビデオ・シーケンスの始め（第１のフレーム）にて確率表をデフォルトリセットすることを含む）。一部の実装では、ビデオ・シーケンス検出器１６２は、ビデオ・シーケンスの第１のフレームを検出するとき、確率分布番号および／または値を変化させるように構成されてよい。
【００３１】
確率計算器１６４は、ビデオ・フレームのシーケンスにおける第１のフレーム（または続くフレーム）の符号化に基づき、パーティション・タイプに関連付けられている確率値（例えば、確率値ＣＮ１）を更新された確率値に修正／更新するように構成されてよい。一部の実装では、各確率表１６０の確率値は、ビデオ・シーケンスにおける各フレームに対する符号化解を最適化するように修正／更新されてよい。
【００３２】
パーティション・モジュール１６５は、メモリ１１２に記憶されている確率表１６０に基づき、ビデオ・フレームのシーケンスにおける第１のフレームを符号化するように構成されてよい。一部の実装では、確率表１６０は、１つ以上のパーティション・タイプに関連付けられている１つ以上の確率値を含んでよい。さらに、パーティション・モジュール１６５は、確率表１６０に含まれている更新された確率値に基づき、ビデオ・フレームのシーケンスにおける第２のフレームを符号化するように構成されてよい。一部の実装では、各フレームは、各フレームがより小さなブロック・サイズへ分割される方式、ブロック毎予測モード、各ブロックに対し適用される変換タイプなどを含め、最適な符号化解を決定するように再帰的に符号化されてよい。
【００３３】
パーティション・モジュール１６５は、近隣ブロック・アナライザ１６６およびパーティション・セレクタ１６７を含む、１つ以上のコンポーネントを含んでよい。一部の実装では、近隣ブロック・アナライザ１６６は、左の近隣ブロックおよび上の近隣ブロック（および／または異なる近隣）を含む近隣のブロックを識別するように構成されてよく、パーティション・セレクタ１６７は、近隣ブロックのパーティショニングに関連して現在のブロックの最適なパーティショニングを識別することを含むさらなる解析のために１つ以上の近隣ブロックに様々なパーティション・タイプを適用するように構成されてよい。
【００３４】
本開示の態様では、エンコーダ１２０は、近隣ブロックを解析するためにコンテキスト・ベース・エントロピー符号化アプローチを利用し、符号化解を最適化するためにパーティション・タイプを選択するように構成されてよい。例えば、パーティション・タイプ符号化に対する確率モデルは、次の因子のうちの１つ以上に基づく条件付きであってもよい：現在のブロック・サイズ（例えば、６４×６４、３２×３２、１６×１６、８×８、４×４、２×２など）、上の近隣ブロックのパーティション・タイプ、および左の近隣ブロックのパーティション・タイプ。各条件付き確率モデルはバックワード適応型であってもよく、フレーム毎ベースで更新されてもよい。このコンテキスト・ベース・エントロピー符号化技術は、空間的相関性（連続する領域においてパーティション・タイプが一貫する傾向）を効率的に利用するために用いられてよく、様々な性能向上を達成するために用いられてよい。
【００３５】
全ての可能なブロック・サイズを通じた従来の大規模な検索アプローチと異なり、本開示のコンテキスト・ベース・エントロピー符号化技術は、最適なレート歪み検索ならびに最適な符号化および復号する処理のために再帰的なブロック・パーティショニングを用いるように構成されている。レート歪み最適化フェーズ中、すべての領域／ブロックは、例えば、垂直（ｖｅｒｔ）パーティション、水平（ｈｏｒｚ）パーティション、無パーティション（ｎｏｎｅ）、およびより小さな領域／ブロックへの分割（ｓｐｌｉｔ）パーティションなど、複数のパーティション・タイプを通じてテストされてよい。さらに、得られるサブブロックの各々は、次いで、それらの（ローカルな）最適符号化解を見出すべく、様々な可能な予測モード、フィルタ・タイプ、変換サイズなどを通じて独立にテストされる。本開示のこれらのおよび様々な他の態様について、本明細書においてより詳細に記載する。
【００３６】
図２は、本開示の態様による一例のエンコーダ２００を示すブロック図である。エンコーダ２００は、メモリ（例えば、メモリ１１２（図１Ａに示す））に記憶されているコンピュータ・ソフトウェア・プログラムを提供することによってなど、コンピューティング・デバイス、サーバ、送信局などにより実装されてよい。エンコーダ２００は、入力ビデオ・ストリーム２１０を用いて、符号化または圧縮されたビットストリーム２３０を提供するフォワードパス２０８（例えば、点線のフローによって示されるように）により様々な機能を実行するための１つ以上のステージを含んでよい。様々な実装では、フォワードパス２０８は、エンコーダ２００に対する入力など入力ビデオ・ストリーム２１０、それに続く、イントラ／インター予測ステージ２１４（例えば、予測信号は次のステージのための残差を生成するように元のビデオ信号から減じられ得る）、変換ステージ２１８、量子化ステージ２２２、およびエントロピー符号化ステージ２２６を含む。
【００３７】
エンコーダ２００は、将来のブロックの符号化のためにフレームを再構築するための再構築経路２３２（例えば、点線の接続によって示すような）を含んでよい。一部の実装では、これによって、エンコーダ２００およびデコーダ３００（例えば、図３に示すような）の両方がエンコーダ２００によって提供される、符号化または圧縮されたビットストリーム２３０を復号するために同じ参照を用いることが保証される。図２に示すように、エンコーダ２００は、再構築経路２３２において様々な機能を実行するための１つ以上の追加のステージを含んでよい。様々な実装では、再構築経路２３２は、逆量子化ステージ２３４、逆変換ステージ２３８、再構築ステージ２４２、およびループ・フィルタリング・ステージ２４６を含んでよい。他の実装では、エンコーダ２００の構造のバリエーションが、入力ビデオ・ストリーム２１０を符号化するために用いられてよい。
【００３８】
入力ビデオ・ストリーム２１０が符号化のためにエンコーダ２００に対し送られる場合、入力ビデオ・ストリーム２１０の各フレームはブロックのユニットにより処理されてよい。一部の実装では、イントラ／インター予測ステージ２１４にて、各ブロックはフレーム内予測（イントラ予測とも呼ばれる）またはフレーム間予測（インター予測とも呼ばれる）を用いて符号化されてよい。いずれの場合も、予測ブロックが形成（例えば、定義）されてよい。イントラ予測の場合、予測ブロックは、以前に符号化され再構築された現在のフレーム中のサンプルから形成されてよい。インター予測の場合、予測ブロックは、１つ以上の以前に構築された基準フレーム中のサンプルから形成されてよい。予測ブロックは、残差ブロック（残差とも呼ばれる）を提供するように、イントラ／インター予測ステージ２１４にて現在のブロックから減じられてよい。変換ステージ２１８は、変換係数（例えば、周波数領域の）へと残差を変換するように構成されてよい。
【００３９】
さらに、一部の実装では、量子化ステージ２２２は、量子化器の値または量子化レベルを用いて変換係数を離散的な量子値（量子化された変換係数とも呼ばれる）へと変換するように構成されてよい。量子化された変換係数は、次いで、エントロピー符号化ステージ２２６によってエントロピー符号化されてよい。エントロピー符号化された係数は、ブロックを復号するために用いられる他の情報（例えば、用いられる予測のタイプ、運動ベクトル、および量子化器の値を含む）と一緒に、次いで、符号化または圧縮されたビットストリーム２３０に出力される。様々な実装では、圧縮されたビットストリーム２３０は、例えば、可変長符号（ＶＬＣ）、算術符号化など、様々な技術を用いてフォーマットされてよい。圧縮されたビットストリーム２３０は、符号化されたビデオ・ストリームまたは符号化された出力ビデオ・ストリームとも呼ばれる。エントロピー符号化ステージ２２６は、本明細書に記載の方式により、１つ以上の確率表を生成するとともに、この確率表を満たすための１つ以上の確率値を生成するように構成されてよい。
【００４０】
一部の実装では、ビデオ・コーデックは、ブロック・ベースの符号化を用いてよい。ここで、各フレームはブロックのグリッドへと分割され、各ブロックは、次いで、インター／イントラ・フレーム予測とそれに続く空間変換およびまた量子化を用いて、独立に符号化される。大きなブロック・サイズでは、予測モード、基準フレーム・インデックス、運動ベクトルなどの符号化時により少ない平均オーバヘッド・コストが得られる一方、小さなブロック・サイズでは、予測がより柔軟となるので残差のエネルギーが低減される。開示の態様は、比較的単純かつ簡潔なコーデック構造を維持しつつ、総レート歪みコストのトレードオフを最適化するべくブロック・サイズ選択を効率的に取り扱う方法および装置を提供するように構成されてよい。さらに、符号化性能向上のために空間的相関性を完全に利用するべく各選択されたブロック・サイズを符号化／エンコードするための補体のエントロピー符号化技術がエンコーダ２００において提供される。これについて本明細書にさらに記載する。
【００４１】
平均オーバヘッド・コストと予測品質との間のトレードオフを最適化するまたはバランスさせる１つの戦略は、所与の領域について、エンコーダがあらゆる可能なブロック・サイズをテストし、レート歪みコストを最小とする１つ以上のブロック・サイズを選択することである。さらに、エンコーダは、次いで、選択されたブロック・サイズをビットストリームへと明示的に符号化してよい。そうしたあらゆるブロック・サイズを通じた大規模な検索によって、極めて複雑なコーデック実装がなされる。さらに、ブロック・サイズ情報を明示的に符号化すると空間的相関が十分に利用されず、圧縮効率を減少させる場合がある。
【００４２】
しかしながら、開示の態様では、ブロック・サイズを最適化する際により大きな柔軟性を可能とするとともに、比較的単純かつ簡潔なコーデック実装を維持する、再帰的なブロック・パーティショニングが用いられる。一部の実装では、再帰的なブロック・パーティショニングによって、実際のブロック・サイズの符号化がパーティション・タイプの符号化に翻訳され（さらに本明細書に記載する）、これによってコンテキスト・ベース・エントロピー符号化と一緒に、改良された性能向上が提供される。可能なブロック・サイズに関する柔軟性は、単純かつ簡潔なコーデック構造を維持することによって、圧縮効率を向上させることができる。さらに、一部の実装では、パーティション・タイプのコンテキスト・ベース・エントロピー符号化によって、符号化性能を向上させることができる。開示の態様は、ビデオ・コーデックおよび／または様々な動画圧縮技術（例えば、コーデック設計）の研究開発に適用されてもよい。またさらに、開示の態様は、ビデオ・ストリーミングおよび／または静止画像の符号化に関連する技術に対し適用されるか、適用可能であるか、またはその両方であってよい。
【００４３】
図３は、本開示の態様による一例のデコーダ３００を示すブロック図である。一部の実装では、デコーダ３００は、エンコーダ２００の再構築経路２３２と同様であってよい。デコーダ３００は、符号化または圧縮されたビットストリーム３１０から出力ビデオ・ストリーム３４２を提供する様々な機能を実行するための１つ以上のステージを備えてよい。デコーダ３００は、エントロピー復号ステージ３１４、逆量子化ステージ３１８、逆変換ステージ３２２、再構築ステージ３２６、ループ・フィルタリング・ステージ３３０、イントラ／インター予測ステージ３３４、およびデブロッキング・フィルタリング・ステージ３３８を備えてよい。他の実装では、デコーダ３００の構造のバリエーションが、圧縮されたビットストリーム３１０を復号するために用いられてよい。
【００４４】
圧縮されたビットストリーム３１０が復号のためにデコーダ３００に提供される場合、圧縮されたビットストリーム３１０内のデータ要素は、１組の量子化された変換係数を生成するように、エントロピー復号ステージ３１４によって復号されてよい（例えば、ＶＬＣ、算術符号化などを用いて）。逆量子化ステージ３１８は、量子化された変換係数を逆量子化するように構成されてよく、逆変換ステージ３２２は、逆量子化された変換係数を逆変換して微分残差を提供するように構成されてよい（エンコーダ２００の逆変換ステージ２３８によって生成されるものと同一であってよい）。一部の実装では、圧縮されたビットストリーム３１０から復号されるヘッダ情報を用いて、デコーダ３００は、イントラ／インター予測ステージ３３４を用いて、エンコーダ２００においてイントラ／インター予測ステージ２１４によって生成されるのと同じ予測ブロックを生成するように構成されてよい。再構築ステージ３２６では、予測ブロックは、再構築されたブロックを生成するために微分残差に追加されてよい。ループ・フィルタリング・ステージ３３０は、ブロック化アーチファクトを減少させるべく、再構築されたブロックに適用されてよい。一部の実装では、様々な他のフィルタリングが、再構築されたブロックに対し適用されてよい。例えば、デブロッキング・フィルタリング・ステージ３３８が、出力を与える（例えば、出力ビデオ・ストリーム３４２として）ブロック化ひずみを減少させるべく、再構築されたブロックに対し適用されてよい。出力ビデオ・ストリーム３４２は、復号されたビデオ・ストリームまたは復号された出力ビデオ・ストリームとも呼ばれる。
【００４５】
図４は、本開示の態様による再帰的なブロック・パーティショニング４００用の一例の技術を示すブロック図である。図４において、一部の実装では、画像４１０（例えば、ビデオフレーム）は領域のグリッドなど複数の領域４１４に分割されてよく、ここで、各領域４１８は少なくともその画像自体より小さい（例えば、サイズ６４×６４ピクセルの各領域）。この例では、各領域４１８は最適な符号化解を評価および発見するためにレート歪みループによってテストされ（画像４１０をより小さなブロック・サイズに分割またはパーティショニングする方式、ブロック毎予測モード、各ブロックに対し適用される変換タイプなどを含む）、次いで、ラスタ順にビットストリームへと符号化されてよい。
【００４６】
最適な符号化方式に関して、所与の領域について、エンコーダは、１つの、幾つかの、または全てのパーティション（分割）タイプをテストするように構成されてよく、各パーティション（分割）タイプは、互いに排反であり、かつ、一緒に全領域をカバーする１組のサブブロックを生じる。エンコーダは、次いで、各サブブロックに対し、予測モード、参照ソース、フィルタ・タイプ、変換タイプ、およびサイズなどを含む、様々な可能な符号化モードをテストして、このサブブロックのレート歪みコストを最小化する符号化モードまたは閾値条件（例えば、閾値）を満たすレート歪みコストを有する符号化モードを得てよい。所与の領域の各パーティション・タイプは、ここで、レート歪みコスト値（各サブブロックの最低レート歪みコストの合計として算出され得る）に関連付けられてもよい。したがって、エンコーダは、最小の総コストを与えるパーティション・タイプを選んで、すなわち、選択してよい。
【００４７】
全ての可能なブロック・サイズを通じた従来の大規模な検索と異なり、本開示の態様は、本明細書に記載のように、レート歪み検索ならびに符号化および復号する処理のために再帰的なブロック・パーティショニングのアプローチ用に構成されてよい。様々な実装では、レート歪み最適化フェーズ中、各領域４１８は、例えば、無パーティション（ｎｏｎｅ）パーティション・タイプ４３０、水平（ｈｏｒｚ）パーティション・タイプ４３２、垂直（ｖｅｒｔ）パーティション・タイプ４３４、および各領域４３８を４つのより小さな領域すなわちサブ領域４３８（サブブロックとも呼ばれる）に分割する（ｓｐｌｉｔ）スプリット・パーティション・タイプ４３６を含む４つのパーティション・タイプのうちの少なくとも１つなど、複数のパーティション・タイプ４２６を通じてテストされてよい。図４に示すように、得られるサブ領域４３８は、次いで、それらの（ローカルな）最適符号化解を見出すべく、１つ以上の可能な予測モード、フィルタ・タイプ、変換サイズなどを通じて独立にテストされてよい。これは、画像４１０の再帰的なパーティショニングを意味する。
【００４８】
一部の実装では、パーティション演算は正方形ブロックに適用されてよい。例えば、１つの領域は、サイズＮ×Ｎを含んでよく、ここでＮは偶数（例えば、２の累乗）である。４つのパーティション・タイプは、次のサブブロック・サイズを与えてよい：
ＮＯＮＥ  −＞  １つのＮ×Ｎサブブロック
ＳＰＬＩＴ  −＞  ４つの（Ｎ／２）×（Ｎ／２）サブブロック
ＶＥＲＴＩＣＡＬ  −＞  ２つの（Ｎ／２）×Ｎサブブロック
ＨＯＲＩＺＯＮＴＡＬ  −＞  ２つのＮ×（Ｎ／２）サブブロック。
【００４９】
一部の実装では、第１のパーティション・タイプは、同様の寸法の４つのサブブロックを有するスプリット・パーティション・タイプ４３６を含み、第２のパーティション・タイプは、水平方向に並べられた同様の寸法の２つのサブブロックを有するホライゾンタル・パーティション・タイプ４３２を含み、第３のパーティション・タイプは、垂直方向に並べられた同様の寸法の２つのサブブロックを有するバーティカル・パーティション・タイプ４３４を含み、第４のパーティション・タイプは、単一のブロックを有する無パーティション・タイプ４３０を含んでよい。
【００５０】
一部の実装では、ｎｏｎｅ４３０、ｈｏｒｚ４３２、およびｖｅｒｔ４３４を含むパーティション・タイプ４２６は、終点ノード（すなわち、サブブロック内にさらなるパーティショニングが適用されない）と考えられてよい。スプリット・パーティション・タイプ４３６の各サブ領域４３８は、次いで、ｎｏｎｅ４３０、ｈｏｒｚ４３２、ｖｅｒｔ４３４、およびｓｐｌｉｔ４５６を含む４つのパーティション・タイプ４４６の各々を通じて再帰的にテストされる出発点と考えられてよい。この例では、第１の区分４１４の各領域４１８は、４つの領域からなるグリッドなど、第２の区分４４６における複数のサブ領域４３８に分割されてよい。この再帰的なパーティショニングは、スプリット・パーティション・タイプの各反復について、任意の回数繰り返されてよい。一部の実装では、この再帰的なパーティショニングは６４×６４ピクセル・ブロックで開始し、続く各再帰的パーティショニングでは、３２×３２ピクセル・ブロック、１６×１６ピクセル・ブロック、８×８ピクセル・ブロック、および４×４ピクセル・ブロックが続く。一部の実装では、この再帰的なパーティショニングにおいて、４×４ピクセル・ブロックから２×２ピクセル・ブロックに続いてよい。他の実装では、再帰的なパーティショニングは、任意のｎ×ｎピクセル・ブロックで開始し、任意のｎ×ｎピクセル・ブロックで終了してよい。符号化モード情報（例えば、基準フレーム・インデックス、フィルタ・タイプなど）は、随意で、一定のブロック・サイズ・レベルを超えて割り当てられるように制約されてよいことが理解される。
【００５１】
最適な符号化モードが選択されると、それをビットストリームに書き込むようにエンコーダ２００が構成されてよい。所与の領域内の実際のブロック・サイズを明示的に符号化することに代えて、この再帰的なパーティショニング・アプローチは再帰的な方式によりパーティション・タイプを符号化する。例えば、この再帰的なパーティショニング・アプローチは、６４×６４ブロックで開始し、パーティション・タイプを書き込む。このタイプが、ｖｅｒｔ、ｈｏｒｚ、またはｎｏｎｅである場合、サブブロック・サイズは既にパースされているので、さらなるパーティション情報は送られない。このタイプがスプリット・パーティション・タイプである場合、エンコーダ２００は、別の４つのパーティション・タイプを書き込んでよい（各サブブロックに対して１つ）。例えば、一部の実装では、エンコーダ２００は、ｖｅｒｔ／ｈｏｒｚ／ｎｏｎｅのパーティション・タイプに達するまで、または一部の例では、例えば、８×８ブロック・サイズより小さくなるまで、パーティション・タイプ情報の送信を繰り返す。デコーダ３００は、６４×６４ブロックで開始し、パーティション・タイプを読み取り、それにしたがってサブブロック・サイズをパースするように構成されてよい。
【００５２】
さらに、開示の態様は、パーティション情報に対するコンテキスト・ベース・エントロピー符号化アプローチを実装するように構成される。例えば、パーティション・タイプ符号化に対する確率モデルは、図５を参照して記載するように、次の因子の３つの因子に基づく条件付きであってもよい：現在のブロック・サイズ（例えば、６４×６４、３２×３２、１６×１６など）、その上の近隣ブロックのパーティション・タイプ、その左の近隣ブロックのパーティション・タイプ。一部の実装では、これらの条件付き確率モデルはバックワード適応型として構成されてよく、フレーム毎に更新されてよい。そうしたコンテキスト・ベース・エントロピー符号化アプローチは、空間的相関性（すなわち、連続する領域においてパーティション・タイプが一貫する傾向）を効率的に利用し、このコンテキスト・ベース・エントロピー符号化アプローチによって一定の性能向上が達成されることができる。
【００５３】
一部の実装では、未処理のビデオ信号は、静的ランダム過程として観察（モデル化）されてよい。ブロックは、ピクセル値、動き情報などを含む、１以上の近くのブロックに対し、一定の類似を有し得る。例えば、フレームが明るい背景の前を水平方向に移動する暗い色のオブジェクトを含む場合、そのオブジェクトと背景とを含むサブブロックがそれぞれ別個に符号化され、それによって各符号化モードを最適化する際により多くの柔軟性を可能とするように、そのオブジェクトのエッジを含むブロック（領域）は垂直方向に分割される傾向を有してよい。
【００５４】
図４の実装では、開示のシステムおよび方法は、画像４１０（例えば、ビデオフレーム）を複数の領域４１４に分割し、この複数の領域の各領域４１８に対し複数のパーティション・タイプ４２６を適用し、各領域４１８に対し適用された複数のパーティション・タイプ４２６に基づき各領域４１８に対するレート歪みコストを決定するように構成されてよい。さらに、開示のシステムおよび方法は、各領域４１８に対し適用された複数のパーティション・タイプ４２６に基づき、各領域４１８に対する符号化方式を決定し、各領域４１８に対し決定されたレート歪みコストおよび符号化方式に基づき、各領域４１８を別個に符号化するように構成されてよい。一部の実装では、このパーティショニング方法は、最適なレート歪みコストを達成するための繰返方式において、パーティション・タイプ４２６のうちの１つ以上（分割パーティション・タイプ４３６など）の１つ以上のサブ領域４３８に再帰的に適用されてよい。レート歪みループは、動画圧縮におけるビデオ品質を向上させるために用いられてもよく、ビデオを符号化するために用いられるデータの量（データレート）に対する歪み（ビデオ品質の損失）の量を比較し決定することを含んでもよい。一部の例では、レート歪みループは、符号化（符号化されたビデオのファイル・サイズと質とが解による影響を同時に受ける）を改良するために用いられてもよい。
【００５５】
図５は、本開示の態様による、パーティション・タイプのコンテキスト・ベース・エントロピー符号化用の一例の技術を示すブロック図である。一部の実装では、本明細書に記載のように、パーティション・タイプの標本空間は、無パーティション（ＮＯＮＥ）、水平パーティション（ＨＯＲＺ）、垂直パーティション（ＶＥＲＴ）、および４つのサブブロックへの分割（ＳＰＬＩＴ）を含む、少なくとも４つのエントリを含んでよい。例えば、８×８から６４×６４の範囲のサイズの各平方ブロックが、１つ以上のパーティション・タイプに割り当てられてよい。このシンボルは、圧縮を達成するように標本空間を通じる確率分布を採用するエントロピー符号化を用いて符号化されてよい。
【００５６】
例えば、図５に示すように、ブロックＡ，Ｂは、以前に符号化されたブロックを表し、ブロックＣは符号化されるブロックを表してよい。未処理のビデオ／画像信号の空間一貫性に関して、Ａが垂直に分割される場合（すなわち、ＶＥＲＴまたはＳＰＬＩＴである場合）、Ｃも垂直に分割される可能性が高くてよい。同様に、Ｂが水平に分割される場合（すなわち、ＨＯＲＺまたはＳＰＬＩＴである場合）、Ｃも水平に分割されることが非常に起こり得る。したがって、開示の態様は、図５においてその上の符号化された近隣（すなわち、Ａ）および左の符号化された近隣（すなわち、Ｂ）のパーティション・タイプに依存するエントロピー符号化器によって用いられる確率分布を提供する。さらに、開示の態様では、同じ上および／または左のブロックのパーティション・タイプが与えられた場合、ブロックＣのブロック・サイズ（例えば、６４×６４ブロック）に対する確率モデル（分布）の潜在的な依存性は、８×８ブロックよりもＳＰＬＩＴを選ぶ可能性が高いことが認識され得る。
【００５７】
したがって、図５に示すように、この作業では、上述の依存性を捕捉するために複数の確率モデルの配列を使用する。さらに、この作業では、近隣の上／左ブロック（ＡおよびＢ）のパーティション・タイプおよび現在のブロック・サイズからインデックス数を計算し、対応する確率モデルを配列から取り出し、取り出しモデルをＣのパーティション・タイプのエントロピー符号化に用いる。
【００５８】
以下はパーティション・タイプのコンテキスト・ベース・エントロピー符号化のサンプルコードである：
【００５９】
【表１】
0006342500.tif 000002
【００６０】
一部の実装では、動画圧縮における再帰的なブロック・パーティショニング・アプローチとそのエントロピー符号化とに関して、図４〜図５に関して記載するように、許容されるブロック・サイズは、８×８、１６×１６、３２×３２、６４×６４など様々なｎ×ｎピクセル・ブロックを含んでよく、本明細書に記載のように、ここで、各ブロック・サイズは、４つのパーティション・タイプ、｛ＮＯＮＥ、ＨＯＲＺ、ＶＥＲＴ、ＳＰＬＩＴ｝のうちの１つとして符号化されてよい。
【００６１】
この点において、一部の実装では、起こり得る結果は、正方形または長方形のブロックであってよい。１以上のパーティション・タイプを省略することも可能である。例えば、３２×３２ブロックについて、最適化処理または技術では、１つの３２×３２ブロックと２つの３２×１６サブブロックとのいずれかとしての符号化を選び、したがって、最適化処理を高速化するために他のパーティション・タイプのテストを省略してよい。
【００６２】
一部の実装では、図５に関して、パーティション・タイプＡおよびＢの組合せは、次の規則により、０〜３の範囲の整数に翻訳される：
Ａのパーティション・タイプがＶＥＲＴまたはＳＰＬＩＴである場合、ａ＝２；それ以外の場合、ａ＝０；
Ｂのパーティション・タイプがＨＯＲＺまたはＳＰＬＩＴである場合、ｂ＝１；それ以外の場合、ｂ＝０；
これらの２つの因子を結合してｃ＝（ａ＋ｂ）を与える。
【００６３】
この数ｃは、ブロック・サイズにしたがってさらにオフセットされる：
ブロック・サイズが８×８である場合、オフセット＝０；
ブロック・サイズが１６×１６である場合、オフセット＝４；
ブロック・サイズが３２×３２である場合、オフセット＝８；
ブロック・サイズが６４×６４である場合、オフセット＝１２。
【００６４】
配列から確率モデルを取り出すために用いられ得る総合的なインデックスは、（ｃ＋オフセット）として算出される。
本明細書に記載のように、コンテキスト・ベース・エントロピー符号化はパーティション情報に対し適用されてよく、ここで、パーティション・タイプ符号化に対する確率モデルは、現在のブロック・サイズ（例えば、６４×６４、３２×３２、１６×１６など）と、その上のブロックのパーティション・タイプと、その左のブロックのパーティション・タイプとを含む因子のうちの１つ以上に基づく条件付きである。これらの各条件付き確率モデルはバックワード適応型と考えられてよく、フレーム毎ベースで更新されてよい。このコンテキスト・ベース・エントロピー符号化の技術は、空間的相関性（幾つかの例では、連続する領域においてパーティション・タイプが一貫する傾向）を効率的に利用するために用いられてよく、一定の性能向上を達成するために用いられてよい。
【００６５】
例えば、図５を参照すると、一部の実装では、確率分布は、その上（ａ）の符号化された近隣（例えば、Ａ）およびその左（ｌ）の符号化された近隣（例えば、Ｂ）のパーティション・タイプに依存すると考えられる。さらに、一部の例では、同じ上および／または左のブロックのパーティション・タイプが与えられた場合、ブロックＣのブロック・サイズ（例えば、６４×６４ブロック）に対する確率モデル（分布）の潜在的な依存性は、８×８ブロックよりもＳＰＬＩＴを選ぶ可能性が高い。したがって、図５に示すように、それらの潜在的な依存性をキャプチャするために、確率モデルの配列を用いてもよい。
【００６６】
一部の実装では、１以上の確率表は、その上および左の近隣ブロックのパーティション・タイプに基づき、現在のブロックに対する確率分布を識別するように生成されてよい。そのようにして、開示の態様では、近隣ブロック（例えば、上および左の近隣ブロック）のパーティション・タイプに基づき、現在のブロックのコンテキスト・ベース・エントロピー符号化のためのビルディング・テーブル（例えば、確率表（確率分布表とも呼ばれることがある））を提供する。
【００６７】
一部の実装では、デフォルト確率表は、ビデオ・シーケンス（ビデオ・フレームのシーケンスとも呼ばれ得る）における第１のフレームに対し用いられてよく、第１のフレームのパーティション・タイプの確率分布に基づき、確率表の更新は次のフレーム（続くフレームとも呼ばれ得る）に適用されてもよい。一部の例では、図１Ａおよび／または図１Ｂのエンコーダ１２０は、確率分布表を生成するために用いられてよい。
【００６８】
図１Ｂは、図１Ａに示したコンピューティング・デバイス１０４に関連付けられているコンポーネント例を示す図である。図１Ｂに示すように、メモリ１１２は、確率表１６０を記憶するように構成されてよく、エンコーダ１２０は、確率表１６０に記憶されている確率値に基づき、ビデオ・フレームの各ブロックを最適に符号化するように構成されてよい。
【００６９】
例えば、図１Ｂおよび図４の例に関して、エンコーダ１２０は、１つの画像（例えば、ビデオフレーム）を複数の領域に分割し、この複数の領域の各領域に対し複数のパーティション・タイプ（例えば、垂直、水平、無、分割）を適用し、各領域に対し適用された複数のパーティション・タイプに基づき各領域に対する最適なレート歪みコストを決定するように構成されてよい。さらに、エンコーダ１２０は、各領域に対し適用された複数のパーティション・タイプに基づき、各領域に対する符号化方式を決定し、各領域に対し決定されたレート歪みコストおよび符号化方式に基づき、各領域を別個に符号化するように構成されてよい。
【００７０】
一部の実装では、このパーティショニング技術は、最適なレート歪みコストを達成するための繰返方式において、各パーティション・タイプの各領域およびサブ領域に再帰的に適用されてよい。レート歪みループは、動画圧縮におけるビデオ品質を向上させるために用いられてもよく、ビデオを符号化するために用いられるデータの量（データレート）に対する歪み（ビデオ品質の損失）の量を比較し決定することを含んでもよい。一部の例では、レート歪みループは、符号化（符号化されたビデオのファイル・サイズと質とが解による影響を同時に受ける）を改良するために用いられてもよい。
【００７１】
図６Ａは、本開示の態様による、エンコーダ１２０において確率表を生成するための方法６００を示すフローチャートである。エンコーダ１２０は、コンピューティング・デバイス１０４のメモリ１１２にデフォルト確率表を記憶することを含め、メモリ１１２に１以上の確率表１６０を記憶するように構成されてよい。
【００７２】
図６Ａの例では、動作６０２〜６０８は、順次生じる分離した動作として示される。しかしながら、他の実装では、動作６０２〜６０８のうちの２以上が、部分的にまたは完全にオーバーラップして生じてもよいこと、並列に生じてもよいこと、入れ子またはループで生じてもよいこと、あるいは示されているのとは異なる順序で生じてもよいことが認められる。さらに、一部の実装例では、図６Ａの例では具体的に示されていない追加の動作も含まれる場合があり、他の実装では、動作６０２〜６０８のうちの１つ以上が省略される場合もある。一部の実装では、方法６００は、図１Ａのシステム１００における再帰的なブロック・パーティショニングのためのコンピュータに実装された方法に対する処理フローを含んでもよい。さらに、本明細書に記載のように、動作６０２〜６０８は、図１Ａに関して記載されるフィーチャおよび機能を提供するべくコンピューティング・デバイス１０４によって実行され得る、簡略化された動作処理フローを提供してもよい。
【００７３】
図６Ａの例では、６０２にて、方法６００は、ビデオ・フレームのシーケンスにおける第１のフレームを識別することを含んでよい。例えば、エンコーダ１２０は、新たなビデオ・シーケンスを検出し、確率計算をリセット／再始動し、確率表を更新／修正するように構成されてよい（例えば、ビデオ・シーケンスの始め（第１のフレーム）にて確率表をデフォルトリセットすることを含む）。一部の実装では、エンコーダ１２０は、ビデオ・シーケンスの第１のフレームを検出するとき、確率分布番号および／または値を変化させるように構成されてよい。
【００７４】
６０４にて、方法６００は、メモリに記憶されている確率表に基づきビデオ・フレームのシーケンスにおける第１のフレームを符号化することを含んでよい。この確率表は、パーティション・タイプに関連付けられている確率値を含む。例えば、エンコーダ１２０は、メモリに記憶されている確率表のうちの１つ以上に基づき、ビデオ・フレームのシーケンスにおける第１のフレームを符号化するように構成されてよい。一部の実装では、各確率表は、１つ以上のパーティション・タイプに関連付けられている１つ以上の確率値を含んでよい。一部の実装では、各フレームは、各フレームがより小さなブロック・サイズへ分割される方式、ブロック毎予測モード、各ブロックに対し適用される変換タイプなどを含め、最適な符号化解を決定するように再帰的に符号化されてよい。
【００７５】
６０６にて、方法６００は、ビデオ・フレームのシーケンスにおける第１のフレームの符号化に基づき、パーティション・タイプに関連付けられている確率値を更新された確率値に修正する工程を含んでよい。例えば、エンコーダ１２０は、ビデオ・フレームのシーケンスにおける第１のフレームの符号化に基づき、パーティション・タイプに関連付けられている確率値を更新された確率値に修正／更新するように構成されてよい。一部の実装では、各確率表の確率値は、ビデオ・シーケンスにおける各フレームに対する符号化解を最適化するように修正／更新されてよい。
【００７６】
６０８にて、方法６００は、確率表に含まれている更新された確率値に基づき、ビデオ・フレームのシーケンスにおける第２のフレームを符号化する工程を含んでよい。例えば、エンコーダ１２０は、確率表に含まれている修正／更新された確率値に基づき、ビデオ・フレームのシーケンスにおける第２のフレームを符号化するように構成されてよい。本明細書に記載のように、メモリ１１２は確率表１６０を含んでよく、確率表１６０は１以上の確率値を含む。
【００７７】
本開示の態様では、エンコーダ１２０は、近隣ブロックを解析するためにコンテキスト・ベース・エントロピー符号化アプローチを利用し、符号化解を最適化するためにパーティション・タイプを選択するように構成されてよい。例えば、パーティション・タイプ符号化に対する確率モデルは、次の因子のうちの１つ以上に基づく条件付きであってもよい：現在のブロック・サイズ（例えば、６４×６４、３２×３２、１６×１６、８×８、４×４、２×２など）、上の近隣ブロックのパーティション・タイプ、および左の近隣ブロックのパーティション・タイプ。各条件付き確率モデルはバックワード適応型であってもよく、フレーム毎ベースで更新されてもよい。このコンテキスト・ベース・エントロピー符号化技術は、空間的相関性（連続する領域においてパーティション・タイプが一貫する傾向）を効率的に利用するために用いられてよく、様々な性能向上を達成するために用いられてよい。
【００７８】
図１Ａの例に関して、デコーダ１２４は、符号化または圧縮されたビットストリームから復号された出力ビデオ・ストリームを提供する様々な機能を実行するための１つ以上のステージを備えてよい。本明細書に記載のように、本開示の態様では、符号化されたビットストリームは、復号された出力ビデオ・ストリームを提供するように復号するためのデコーダに対し提供されてよい。一部の実装では、デコーダ１２４は、エンコーダ１２０の補体であり、したがって、デコーダ１２４によって用いられる復号処理は、エンコーダ１２０によって用いられる符号化処理の補体である。ここで、デコーダ１２４は、エンコーダ１２０によって実行される符号化処理の逆の復号処理を実行するように構成される。
【００７９】
図７は、一実装による確率表の一例を示す図である。図７に示すように、確率表７００は、２つの異なるブロック部分、すなわち、ブロック部分Ｂおよびブロック部分Ａを含む。それらのブロック部分の各々は、処理されている現在のブロック・サイズに関連付けられる。例えば、確率表７００のブロック部分Ａは、ブロック・サイズＡを有するブロックをブロック・サイズＢに分割（例えば、６４×６４を３２×３２に）することに関する決定を行うために用いられる。ブロック・サイズＡは、処理されている現在のブロック・サイズとして参照されることが可能であり、ブロック・サイズＢは、目標ブロック・サイズとして参照されることが可能である。確率表７００のブロック部分Ｂは、ブロック・サイズＢを有するブロックを、例えば、ブロック・サイズＣに分割（例えば、３２×３２を１６×１６に）することに関する決定を行うために用いられる。示していないが、追加のブロック部分および／またはサイズ（正方形でないサイズを含む）が含まれることが可能である。
【００８０】
この例では、ブロック部分Ａは、４行３列で確率値を含む。４つの行は、文字Ｐ〜Ｓによって記述され、列は数字１〜３によって記述される。したがって、確率値Ｑ２は、第２行第２列に含まれる。
【００８１】
行Ｐ〜Ｓの各々は、様々なタイプの近隣解析に関連付けられる。具体的な一例として、行Ｐは、いずれも分割されていない上および左（解析されている現ブロックに対して）の近隣の解析用の確率値を含むことが可能であり、行Ｑは、分割されている上の近隣と分割されていない左の近隣との解析用の確率値を含むことが可能である。したがって、エンコーダ（例えば、図１Ａに示すエンコーダ１２０）は、ブロックの近隣の（例えば、隣接する）ブロックの分割（または非分割）に対応する現在のブロックの解析中、確率表７００の１つの行の確率値を選択するように構成されることが可能である。
【００８２】
確率値は、エントロピー符号化器によって用いることの可能である値を表すことが可能である。符号化中、エントロピー符号化器は、確率表７００に含まれる確率値に基づきビット・レートを割り当てるように構成されることが可能である。確率値によって表される比較的高い結果（例えば、比較的、起こり易い結果、より可能性の高い結果）に対しては、エントロピー符号化器がより少ないビットしか割り当てないことが可能であり、確率値によって表される比較的可能性の低い結果に対しては、エントロピー符号化器がより多くのビットを割り当てることが可能である。
【００８３】
確率表７００における列の各々は、様々なタイプのパーティションに関連付けられる。例えば、確率値Ｐ１（行Ｐにおける）は、無パーティショニングの確率を表すことが可能であり、確率値Ｐ２は、垂直分割の確率を表すことが可能であり、確率値Ｐ３は、水平分割の確率を表すことが可能である。確率値Ｐ１〜Ｐ３に関連付けられている分割のための条件が満たされない場合、パーティション解析の結果は別の分割（例えば、完全な十字の分割）である。一部の実装では、確率表７００は、確率値の最初の３つのカラム（例えば、Ｐ１〜Ｐ３）に関連付けられている条件が満たされない場合、１００％の確率を有し最終の結果に関連付けられている第４列を含むことが可能である。
【００８４】
一部の実装では、確率値は、例えば０〜２５５の範囲を有することが可能である。より高い確率値は、その確率値に関連付けられている結果の確率であることが可能である。例えば、確率値Ｐ２は垂直分割の確率を表すことが可能であり、確率値Ｐ２は０〜２５５のスケールにおいて２４５であることが可能である。したがって、確率値Ｐ２に基づく垂直分割の確率は、非常に高い。
【００８５】
一部の実装では、確率表７００に含まれる確率値は、フレームのシーケンスにおけるフレームの処理中に更新されることが可能である。例えば、確率表７００は、ビデオ・シーケンスすなわちフレームのシーケンスにおける最初のフレーム（例えば、第１のフレーム）に対し用いられることの可能なデフォルト確率表であることが可能である。最初のフレームにおけるブロックの分割の結果に応じて、確率表７００に含まれる確率値は、続くフレーム（例えば、第２の）の符号化用に修正されることが可能である。具体的な一例として、確率値Ｐ２は、ブロック・サイズＡのブロック内におけるブロック・サイズＢへの垂直分割に関連付けられている確率を表すことが可能である。ブロック・サイズＡからブロック・サイズＢへの第１のフレーム内の垂直分割の分布が比較的大きい場合、確率値Ｐ２は、第２のフレームに対するブロックの処理について増大されることが可能である。他方、ブロック・サイズＡからブロック・サイズＢへの第１のフレーム内の垂直分割の分布が比較的小さい場合、確率値Ｐ２は、第２のフレームに対するブロックの処理について減少されることが可能である。
【００８６】
一部の実装では、確率表７００に含まれる確率値のうちの１つ以上に対する確率表７００に含まれるデフォルト確率値からの変化は、差（すなわち、残差）として記憶されることが可能である。この差は記憶されることが可能であり、処理されているブロックまたはフレームに関連付けられることが可能である。したがって、この差は復号中にデフォルト確率値に関連してデコーダ（例えば、図１Ａに示すデコーダ１２４）によって用いられることが可能である。
【００８７】
この確率値の修正は、各フレーム（またはブロックのグループ）の処理によって実行されることが可能である。一部の実装では、デフォルト確率値は、ビデオ・フレームのシーケンスにおける第１のフレームに対し最初に用いられることが可能である。例えば、デフォルト確率値はＩフレームに対し用いられることが可能であり、確率値はＩフレームの後に処理される各続くＰフレームまたはＢフレームについて修正される（デフォルト確率値から）ことが可能である。新たなＩフレーム（ビデオ・フレーム（例えば、Ｐフレーム、Ｂフレーム）のシーケンスに関連付けられている）に達すると、  デフォルト確率値が再設定され、この新たなＩフレームに関連付けられているフレームに対し再び用いられることが可能である。
【００８８】
以下は、現在のブロックの上および左の近隣ブロックのパーティション・タイプに基づき、現在のブロックに対する確率分布を識別するように生成され得る確率表（デフォルト確率表であることが可能である）の具体的な一例である。処理されているブロック・サイズおよび目標ブロック・サイズ（例えば、／／８×８−＞４×４）は、テーブル（各々４行３列を含む）のブロック部分の上に記す。この例では、確率値の範囲は０〜２５５の間である。一部の実装では、この範囲は異なることが可能である。
【００８９】
【表２】
0006342500.tif 000003
【００９０】
この例では、確率は０〜２５５の値の間に分布してよく、ここで、より大きな数は、現在のブロックの現在のブロック・サイズ（例えば、６４×６４、３２×３２、１６×１６など）と、その上の近隣ブロックのパーティション・タイプと、その左の近隣ブロックのパーティション・タイプとに基づき現在のブロックに対してあり得るパーティション・タイプのより高い確率を示してよい。様々な例では、より少ないビットは可能性の高い候補に対し割り当てられてよく、より多いビットは可能性の高くない候補に割り当てられてよい。さらに、一部の例では、生成されるテーブルが、フレーム全体に適用されてよい。
【００９１】
本開示の態様では、再帰的なブロック・パーティショニングは、コンテキスト・ベース・エントロピー符号化とともに、効率的なビデオ・コーデック実装を維持しつつ、ブロック・サイズを最適化する際の改良された柔軟性を可能とする。様々な例では、この再帰的なブロック・パーティショニング技術によって、実際のブロック・サイズの符号化がブロック・パーティション・タイプの符号化に翻訳され、コンテキスト・ベース・エントロピー符号化と一緒に、この技術は改良された符号化性能の向上を提供する。
【００９２】
図６Ｂ〜図６Ｃは、本開示の態様による、再帰的なブロック・パーティショニングのための方法例を示す処理フローである。特に、図６Ｂは、本開示の態様による、再帰的なブロック・パーティショニング用の一例の方法６２０を示す処理フローである。
【００９３】
図６Ｂの例では、動作６２２〜６２８は、順次生じる分離した動作として示される。しかしながら、他の実装では、動作６２２〜６２８のうちの２以上が、部分的にまたは完全にオーバーラップして生じてもよいこと、並列に生じてもよいこと、入れ子またはループで生じてもよいこと、あるいは示されているのとは異なる順序で生じてもよいことが認められる。さらに、一部の実装例では、図６Ｂの例では具体的に示されていない追加の動作も含まれる場合があり、他の実装では、動作６２２〜６２８のうちの１つ以上が省略される場合もある。さらに、一部の実装では、方法６２０は、図１のシステム１００における再帰的なブロック・パーティショニングのためのコンピュータに実装された方法に対する処理フローを含んでもよい。さらに、本明細書に記載のように、動作６２２〜６２８は、図１Ａに関して記載されるフィーチャおよび機能を提供するべくコンピューティング・デバイス１０４によって実行され得る、簡略化された動作処理フローを提供してもよい。
【００９４】
図６Ｂの例では、６２２にて、方法６２０は、画像を複数の領域に分割する工程を含んでよい。６２４にて、方法６２０は、複数の領域の各領域に対し複数のパーティション・タイプを適用する工程を含んでよい。６２６にて、方法６２０は、複数の領域の各領域に対し適用された複数のパーティション・タイプに基づき、複数の領域の各領域に対するレート歪み（例えば、レート歪みコスト）を決定する工程を含んでよい。
【００９５】
６２８にて、方法６２０は、複数の領域の各領域に対し適用された複数のパーティション・タイプに基づき、複数の領域の各領域に対する符号化方式を決定する工程を含んでよい。６３０にて、方法６２０は、複数の領域の各領域に対し決定されたレート歪みコストと符号化方式とに基づき、複数の領域の各領域を別個に符号化する工程を含んでよい。
【００９６】
一部の実装では、第１のパーティション・タイプは、同様の寸法の４つのサブブロックを有するスプリット・パーティション・タイプを含み、第２のパーティション・タイプは、水平方向に並べられた同様の寸法の２つのサブブロックを有するホライゾンタル・パーティション・タイプを含み、第３のパーティション・タイプは、垂直方向に並べられた同様の寸法の２つのサブブロックを有するバーティカル・パーティション・タイプを含み、第４のパーティション・タイプは、単一のブロックを有する無パーティション・タイプを含んでよい。
【００９７】
図６Ｃは、本開示の態様による、再帰的なブロック・パーティショニングの別例の方法６４０を示す処理フローである。
図６Ｃの例では、動作６４２〜６４８は、順次生じる分離した動作として示される。しかしながら、他の実装では、動作６４２〜６４８のうちの２以上が、部分的にまたは完全にオーバーラップして生じてもよいこと、並列に生じてもよいこと、入れ子またはループで生じてもよいこと、あるいは示されているのとは異なる順序で生じてもよいことが認められる。さらに、一部の実装例では、図６Ｃの例では具体的に示されていない追加の動作も含まれる場合があり、他の実装では、動作６４２〜６４８のうちの１つ以上が省略される場合もある。さらに、一部の実装では、方法６４０は、図１のシステム１００における再帰的なブロック・パーティショニングのためのコンピュータに実装された方法に対する処理フローを含んでもよい。さらに、本明細書に記載のように、動作６４２〜６４８は、図１Ａに関して記載されるフィーチャおよび機能を提供するべくコンピューティング・デバイス１０４によって実行され得る、簡略化された動作処理フローを提供してもよい。またさらに、動作６４２〜６４８は、図６Ｂの動作６２２〜６３０に続いて、図１Ａに関して記載されるフィーチャおよび機能を提供するべくコンピューティング・デバイス１０４によって実行され得る、簡略化された動作処理フローを提供してもよい。
【００９８】
図６Ｂの例では、６４２にて、方法６４０は、複数の領域の各領域に対し適用された複数のパーティション・タイプのうちの第１のパーティション・タイプについて、複数の領域の各領域を複数のサブ領域に分割する工程を含んでよい。６４４にて、方法６４０は、複数のサブ領域の各サブ領域に対し複数のパーティション・タイプを再適用する工程を含んでよい。
【００９９】
６４６にて、方法６４０は、複数のサブ領域の各サブ領域に対し適用された複数のパーティション・タイプに基づき、複数のサブ領域の各サブ領域に対するレート歪みコストを決定する工程を含んでよい。６４８にて、方法６４０は、複数のサブ領域の各サブ領域に対し適用された複数のパーティション・タイプに基づき、複数のサブ領域の各サブ領域に対する符号化方式を決定する工程を含んでよい。
【０１００】
一部の実装では、第１のパーティション・タイプは、同様の寸法の４つのサブブロックを有するスプリット・パーティション・タイプを含み、第２のパーティション・タイプは、水平方向に並べられた同様の寸法の２つのサブブロックを有するホライゾンタル・パーティション・タイプを含み、第３のパーティション・タイプは、垂直方向に並べられた同様の寸法の２つのサブブロックを有するバーティカル・パーティション・タイプを含み、第４のパーティション・タイプは、単一のブロックを有する無パーティション・タイプを含んでよい。
【０１０１】
一部の実装では、複数の領域の各領域に対し決定されたレート歪みコストと符号化方式とに基づき、複数の領域の各領域を別個に符号化する工程は、複数のサブ領域の各サブ領域に対し決定されたレート歪みコストと符号化方式とに基づき、複数のサブ領域の各サブ領域を別個に符号化する工程を含んでよい。
【０１０２】
一部の実装では、複数の領域の各領域に対するレート歪みコストを決定する工程は、複数の領域の各領域に対し適用された複数のパーティション・タイプに基づき、複数の領域の各領域に対する複数のレート歪みコストを評価する工程と、複数の領域の各領域に対する最適なレート歪みコストを決定する工程であって、最適なレート歪みコストは、複数の領域の各領域に対し評価された複数のレート歪みコストから選択される、工程と、を含んでよい。
【０１０３】
一部の実装では、複数の領域の各領域に対する符号化方式を決定する工程は、複数の領域の各領域に対し適用された複数のパーティション・タイプに基づき、複数の領域の各領域に対する複数の符号化方式を評価する工程と、複数の領域の各領域に対する最適な符号化方式を決定する工程であって、最適な符号化方式は、複数の領域の各領域に対し評価された複数の符号化方式から選択される、工程と、を含んでよい。
【０１０４】
図８は、本開示の態様による、再帰的なブロック・パーティショニング用の別の方法例８００を示す処理フローである。
図８の例では、動作８０２〜８０８は、順次生じる分離した動作として示される。しかしながら、他の実装では、動作８０２〜８０８のうちの２以上が、部分的にまたは完全にオーバーラップして生じてもよいこと、並列に生じてもよいこと、入れ子またはループで生じてもよいこと、あるいは示されているのとは異なる順序で生じてもよいことが認められる。さらに、一部の実装例では、図８の例では具体的に示されていない追加の動作も含まれる場合があり、他の実装では、動作８０２〜８０８のうちの１つ以上が省略される場合もある。さらに、一部の実装では、方法８００は、図１のシステム１００における再帰的なブロック・パーティショニングのためのコンピュータに実装された方法に対する処理フローを含んでもよい。さらに、本明細書に記載のように、動作８０２〜８０８は、図１Ａに関して記載されるフィーチャおよび機能を提供するべくコンピューティング・デバイス１０４によって実行され得る、簡略化された動作処理フローを提供してもよい。
【０１０５】
図８の例では、８０２にて、方法８００は、ビデオ・フレームを複数のピクセル・ブロックに分割する工程を含んでよい。８０４にて、方法８００は、複数のピクセル・ブロックの各ピクセル・ブロックに対し複数のパーティション・タイプを適用する工程を含んでよい。
【０１０６】
８０６にて、方法８００は、複数のピクセル・ブロックの各ピクセル・ブロックに対し適用された複数のパーティション・タイプのうちの第１のパーティション・タイプについて、第１のパーティション・タイプの各ピクセル・ブロックを複数のピクセル・サブブロックに分割し、複数のピクセル・サブブロックの各ピクセル・サブブロックに対し複数のパーティション・タイプを再適用する工程を含んでよい。８０８にて、方法８００は、各ピクセル・ブロックおよび各ピクセル・サブブロックに対しそれぞれ適用および再適用された複数のパーティション・タイプに基づき、各ピクセル・ブロックおよび各ピクセル・サブブロックに対するレート歪みコストを決定する工程を含んでよい。
【０１０７】
８１０にて、方法８００は、各ピクセル・ブロックおよび各ピクセル・サブブロックに対しそれぞれ適用および再適用された複数のパーティション・タイプに基づき、各ピクセル・ブロックおよび各ピクセル・サブブロックに対する符号化方式を決定する工程を含んでよい。８１２にて、方法８００は、各ピクセル・ブロックおよび各ピクセル・サブブロックに対し決定されたレート歪みコストと符号化方式とに基づき、各ピクセル・ブロックおよび各ピクセル・サブブロックを別個に符号化する工程を含んでよい。
【０１０８】
本明細書に記載の様々な技術の実装は、デジタル電子回路類により実装されてもよく、コンピュータ・ハードウェア、ファームウェア、ソフトウェアにより実装されてもよく、それらの組み合わせにより実装されてもよい。実装は、データ処理装置（例えば、プログラム可能なプロセッサ、コンピュータ、または複数のコンピュータ）による実行用またはデータ処理装置の動作を制御するために、コンピュータ・プログラム製品、すなわち、情報キャリア（例えば、機械可読記憶デバイスまたは伝搬信号）により有形に具体化されるコンピュータ・プログラムとして実装されてよい。上述のコンピュータ・プログラムなどコンピュータ・プログラムは、コンパイル型またはインタプリタ型言語を含む任意の形態のプログラミング言語により書かれてよく、スタンドアロン・プログラムとして、またはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境における使用に適切な他のユニットとしてを含め、任意の形態によりデプロイされてよい。コンピュータ・プログラムは、１つのコンピュータ、または複数のコンピュータ（１つのサイトにおけるまたは複数のサイトを通じて分散され通信ネットワークによって相互接続される）上で実行されるようにデプロイされてよい。
【０１０９】
方法の工程は、入力データに対して動作し出力を生成することによって機能を実行するコンピュータ・プログラムを実行する、１以上のプログラム可能なプロセッサによって実行されてよい。また、方法の工程は、専用の論理回路（例えば、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）またはＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ））によって実行されてもよく、装置が専用の論理回路として実装されてもよい。
【０１１０】
コンピュータ・プログラムの実行に適切なプロセッサは、例として、汎用および専用のマイクロプロセッサの両方と、任意の種類のデジタル・コンピュータの任意の１以上のプロセッサとを含む。一般に、プロセッサは、読出専用メモリ、ランダム・アクセス・メモリ、またはその両方から、命令およびデータを受信する。コンピュータの要素は、命令を実行するための１つ以上のプロセッサと、命令およびデータを記憶するための１つ以上のメモリ・デバイスとを含んでよい。また、一般に、コンピュータは、データを記憶するための１つ以上の大容量記憶デバイス（例えば、磁気、光磁気ディスク、または光ディスク）を備えてもよく、この大容量記憶デバイスについてデータの受信、送信、またはその両方を行うように動作可能に結合されてもよい。コンピュータ・プログラム命令およびデータを具体化するのに適切な情報キャリアは、全ての形態の不揮発性メモリ（例として、半導体メモリ・デバイス（例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ・デバイス）、磁気ディスク（例えば、内部ハードディスクまたはリムーバブル・ディスク）、光磁気ディスク、ならびにＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含む）を含む。プロセッサおよびメモリは、専用の論理回路によって補助されたり、専用の論理回路に組み込まれたりしてよい。
【０１１１】
ユーザ対話を提供するために、実装は、ユーザに情報を表示するためのディスプレイ・デバイス（例えば、陰極線管（ＣＲＴ）または液晶ディスプレイ（ＬＣＤ）モニタ）と、ユーザがコンピュータに入力を提供可能なキーボードおよびポインティング・デバイス（例えば、マウスまたはトラックボール）とを有するコンピュータ上に実装されてよい。他のタイプのデバイスも、ユーザとの対話用に同様に用いられてよい。例えば、ユーザに対し提供されるフィードバックは任意の形態の知覚フィードバック（例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック）であってよく、ユーザからの入力は、音響、音声、または触覚の入力を含む任意の形態により受信されてよい。
【０１１２】
実装は、バックエンド・コンポーネントを備える（例えば、データ・サーバとして）か、ミドルウェア・コンポーネント（例えば、アプリケーションサーバ）を備えるか、またはフロントエンド・コンポーネント（例えば、実装とユーザが対話可能なグラフィカル・ユーザ・インタフェースまたはウェブブラウザを有するクライアント・コンピュータ）を備えるコンピューティング・システム、またはそうしたバックエンド、ミドルウェア、またはフロントエンド・コンポーネントの任意の組み合わせにより実装されることが可能である。コンポーネントは、任意の形態または媒体のデジタル・データ通信（例えば、通信ネットワーク）によって相互接続されてよい。通信ネットワークなどネットワークの例には、ローカル・エリア・ネットワーク（ＬＡＮ）およびワイド・エリア・ネットワーク（ＷＡＮ）（例えば、インターネット）が含まれてよい。
【０１１３】
記載の実装の一定のフィーチャは本明細書に記載されるように示されているが、ここで多くの修正、置換、変更、および均等が当業者に生じるであろう。したがって、添付の特許請求の範囲は、実施形態の範囲内にあるそうした修正および変更を全てカバーすることが意図されるものである。
【図１Ａ】
0006342500.tif 000004
【図１Ｂ】
0006342500.tif 000005
【図２】
0006342500.tif 000006
【図３】
0006342500.tif 000007
【図４】
0006342500.tif 000008
【図５】
0006342500.tif 000009
【図６Ａ】
0006342500.tif 000010
【図６Ｂ】
0006342500.tif 000011
【図６Ｃ】
0006342500.tif 000012
【図７】
0006342500.tif 000013
【図８】
0006342500.tif 000014