(57)【特許請求の範囲】
【請求項１】
複数のビデオフレームを符号化するように構成されたビデオ符号化システムであって、
フレームに含まれる複数のオブジェクトを特定するオブジェクトマスクを生成し、
前記フレームを複数のマクロブロックに分割させる区画化オプションを取得し、前記区画化オプションが区画化コスト関数に関連し、
前記複数のマクロブロックのうちのあるマクロブロックが前記複数のオブジェクトのうちの１つより多いオブジェクトを含む場合に、１つより多い前記オブジェクトをそれぞれマクロブロックに分離するために、前記マクロブロックを複数のマクロブロックに区画化することに関連する前記区画化コスト関数を減少させる
ように構成された１つ又は複数のプロセッサ
を備えるビデオ符号化システム。
【請求項２】
前記区画化コスト関数を減少させるために、前記１つ又は複数のプロセッサは、前記区画化コスト関数にスケーリング係数を適用するように構成される
請求項１に記載のビデオ符号化システム。
【請求項３】
前記スケーリング係数は、
前記１つより多いオブジェクトのうちの少なくとも１つのオブジェクトが動いているか、
前記１つより多いオブジェクトのうちの全てのオブジェクトが動いているか、及び、
前記１つより多いオブジェクトのうちの全てのオブジェクトが動いていないか、
の少なくとも１つに基づく
請求項２に記載のビデオ符号化システム。
【請求項４】
前記スケーリング係数は、学習された定数である
請求項２に記載のビデオ符号化システム。
【請求項５】
前記区画化コスト関数は、前記複数のマクロブロックを動き補償することからの誤差、及び、前記区画化コスト関数のための複数の動きベクトルの符号化に関するコストの少なくとも一方に基づく
請求項１に記載のビデオ符号化システム。
【請求項６】
前記オブジェクトマスクを生成するために、前記１つ又は複数のプロセッサは、前記フレームを複数のセグメントに分割するように構成されている
請求項１に記載のビデオ符号化システム。
【請求項７】
前記オブジェクトマスクを生成するために、前記１つ又は複数のプロセッサは、前記複数のセグメントの複数の運動特性を決定するように構成されている
請求項６に記載のビデオ符号化システム。
【請求項８】
前記オブジェクトマスクを生成するために、前記１つ又は複数のプロセッサは、動きの類似性、色の類似性、及び、前記複数のセグメントの共有される境界の割合の少なくとも１つに基づいて、前記複数のセグメントの１つ又は複数を組み合わせて複数のオブジェクトにするように構成されている
請求項７に記載のビデオ符号化システム。
【請求項９】
前記オブジェクトマスクを生成するために、前記１つ又は複数のプロセッサは、前記複数のオブジェクトを列挙するように構成されている
請求項８に記載のビデオ符号化システム。
【請求項１０】
配信用のビデオを符号化する方法であって、
フレームに含まれる複数のオブジェクトを決定する段階と、
フレームが分割される複数のマクロブロックを示すファイルにアクセスする段階と、
前記複数のマクロブロックのうちのあるマクロブロックが前記複数のオブジェクトのうちの１つより多いオブジェクトを含むか否かを判断する段階と、
１つより多い前記オブジェクトをそれぞれマクロブロックに分離するために、前記マクロブロックを複数のマクロブロックに区画化することに関連する区画化コスト関数を減少させる段階と
を備える方法。
【請求項１１】
前記マクロブロックを区画化することに関連する区画化コスト関数を減少させる段階は、前記区画化コスト関数にスケーリング係数を適用することを備える
請求項１０に記載の方法。
【請求項１２】
前記スケーリング係数は、
前記１つより多いオブジェクトのうちの少なくとも１つのオブジェクトが動いているか、
前記１つより多いオブジェクトのうちの全てのオブジェクトが動いているか、及び、
前記１つより多いオブジェクトのうちの全てのオブジェクトが動いていないか、
の少なくとも１つに基づく
請求項１１に記載の方法。
【請求項１３】
前記スケーリング係数は、学習された定数である
請求項１１に記載の方法。
【請求項１４】
前記区画化コスト関数は、前記マクロブロックを動き補償することからの誤差、及び、前記区画化コスト関数のための動きベクトルの符号化に関するコストの少なくとも一方に基づく
請求項１０に記載の方法。
【請求項１５】
フレームに含まれる前記複数のオブジェクトを決定する段階は、前記フレームを複数のセグメントに分割する段階を備える
請求項１０に記載の方法。
【請求項１６】
フレームに含まれる前記複数のオブジェクトを決定する段階は、前記複数のセグメントの複数の運動特性を決定する段階を備える
請求項１５に記載の方法。
【請求項１７】
フレームに含まれる前記複数のオブジェクトを決定する段階は、動きの類似性、色の類似性、及び、前記複数のセグメントの共有される境界の割合の少なくとも１つに基づいて、前記複数のセグメントの１つ又は複数を組み合わせて複数のオブジェクトにする段階を備える
請求項１６に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
本願は、米国仮出願番号６１／６３７，４４７（２０１２年４月２４日）及び６１／６４６，４７９（２０１２年５月１４日）に対する優先権を主張する非仮出願であり、これらの開示は、本明細書に明示的に組み込まれる。
【０００２】
ビデオは、インターネット上の至る所に存在する。実際に、多くの人々は、今日、もっぱらオンラインでビデオを見る。そして、最新の統計によれば、インターネットトラフィックのほぼ９０％が、ビデオに起因する。この全ては、一部分において、高性能なビデオ圧縮に起因していると考えられる。したがって、ビデオ圧縮は、現代の世界の通信インフラストラクチャにおいて重要な役割を果たす。例として、標準の解像度（すなわち、６４０×４８０）で圧縮されていないビデオは、送信するために、２４０Ｍｂｐｓの帯域幅を必要とする。この帯域幅の量は、標準のビデオのためだけで、今日のインフラストラクチャ、さらには、近い将来の広く利用可能なインフラストラクチャの能力を著しく超える。
【０００３】
現代のビデオ圧縮技術は、ビデオの中の情報内容が著しい冗長性を示すという事実を利用する。ビデオの新しいフレームにおいて、ほとんどの内容が前に存在しているので、ビデオは時間冗長性を有する。所与のフレームにおいて、複数のピクセルは、それらの隣と同様の複数の明度を有するので、ビデオは空間的冗長性も有する。最初に商業的に普及したビデオ符号化方法、ＭＰＥＧ１及びＭＰＥＧ２は、冗長性のこれらの形成を利用し、帯域幅の複数の要件を実質的に低減できた。
【０００４】
高品質の符号化のために、ＭＰＥＧ１は、一般的に、標準画質解像度のための帯域幅の要件を２４０Ｍｂｐｓから６Ｍｂｐｓまで削減する。ＭＰＥＧ２は、その要件をさらに４Ｍｂｐｓまで減少させる。ＭＰＥＧ２は、結果として、世界中でデジタルテレビ放送のために使用されている。ＭＰＥＧ１及びＭＰＥＧ２は、それぞれ、ブロックベースの動き補償を利用することによって時間冗長性を利用する。ブロックベースの動き補償を用いて圧縮するために、エンコーダによって符号化される新しいフレームは、固定サイズ１６×１６ピクセルの複数のブロック、ラベル付けされたマクロブロックに分割される。これらのマクロブロックは、重複せず、フレームの均一なタイル化を形成する。符号化するときに、エンコーダは、新しいフレームにおける各マクロブロックに対して、前に符号化されたフレームのうちの最も一致するマクロブロックを探索する。実際に、ＭＰＥＧ１及びＭＰＥＧ２において、２つまで前に符号化されたフレームが探索されることができる。最も一致するものが発見されると、エンコーダは、この場合において動きベクトルとして知られている、各マクロブロックを参照してそれによって近似する変位ベクトルを規定して送信する。
【０００５】
ＭＰＥＧ１及びＭＰＥＧ２は、国際標準として、動きベクトルの符号化のフォーマットを規定したが、動きベクトルの決定の手段をエンコーダのアルゴリズムの設計者に委ねた。最初は、実際のマクロブロックとその近似値との間の絶対誤差が、動きベクトルの探索において最小化されることが目標とされた。しかし、後に、複数の実装は、動きベクトルを符号化することのコストも考慮した。ＭＰＥＧ１及びＭＰＥＧ２は、ビデオ圧縮において著しい進歩をもたらしたが、それらの有効性は、現実のビデオの複数のシーンが動いている四角形の複数のブロックで構成されていないという事実に大きく起因して、限定された。現実的に、新しいフレームの中のいくつかのマクロブロックは、前フレームからのいずれかのマクロブロックによってうまく表されず、時間冗長性の恩恵を受けずに符号化されなければならない。ＭＰＥＧ１及びＭＰＥＧ２では、これらのマクロブロックは、うまく圧縮されることができず、全体のビットレートに対して偏って寄与した。
【０００６】
Ｈ．２６４及びグーグルのＶＰ８のようなより新しい世代のビデオ圧縮の標準は、１６×１６の複数のマクロブロックを、それぞれが別々に動き補償されることができるより小さい複数のブロックに区画化させることによって、この時間冗長性の問題に対処してきた。その選択肢は、潜在的に、４×４ピクセルのブロックの区画まで下げる。より細かい区画化は、潜在的に、前フレームの中のブロックに対する各区画のよりよい一致を可能にさせる。しかし、このアプローチは、追加の複数の動きベクトルの符号化のコストを招く。複数のエンコーダは、複数の標準の範囲内で動作しながら、複数のマクロブロックがどのように区画化され、各区画に対する複数の動きベクトルがどのように選択されるかを決定する柔軟性を有する。パスに関わらず、最終的に、その複数の結果物は、任意の標準に準拠したデコーダが復号化できる標準に準拠したビットストリームに符号化される。
【０００７】
各マクロブロックの区画化及び動き補償の方法を精密に決定することは複雑であり、最初のＨ．２６４のテストモジュールは、レート歪みの最適化に基づくアプローチを使用した。レート歪みの最適化において、いくらかの変位に対する誤差及び対応する動きベクトルの符号化のコストの両方を含む組み合わされたコスト関数は、最小化されることが目標とされる。特定のマクロブロックを区画化するために、合計のコスト関数が分析される。合計のコスト関数は、各区画を動き補償することによる誤差、及び特定の区画化に関連する全ての動きベクトルを符号化することのコストを含む。コストは、次の式によって与えられる。
【数１】
0006461209.tif 000002
ここで、αは、レート及び歪みに関するラグランジュの未定乗数であり、
0006461209.tif 000003
は、ソース及びターゲットの不一致に関連するコストであり、
0006461209.tif 000004
は、対応する複数の動きベクトルを符号化することに関連するコストである。
【０００８】
各可能な区画化のために、コスト関数Ｆは、複数の動きベクトルｖの関数として最小化される。最終的な決定のために、可能性がある各区画化の最適な複数のコスト関数が考慮され、最低の全体のコスト関数を有する区画化が選択される。複数のマクロブロックは、ラスタスキャンの順序で符号化され、この選択は、各マクロブロックに対してそれが符号化されるときになされる。現在のマクロブロックに対する複数の動きベクトルを差分的に予測することによって、前の複数のマクロブロックは、現在のマクロブロックに影響を与え、これにより、可能性がある候補の動きベクトルの符号化のコストに影響を与える。このアプローチは、今日、Ｈ．２６４及びＶＰ８のための複数のビデオ圧縮エンコーダにおいて事実上使用されている。
【０００９】
例となる限定されない実施形態において、本開示の複数の態様は、内在する複数のピクセルの複数の運動特性に少なくとも部分的に基づいて、フレーム内の複数のオブジェクトを決定する段階と、区画化の複数の選択肢を考慮することによって、フレームを複数のブロックに区画化する段階とを含むビデオを符号化する方法において具現化され、そのような区画化する段階は、異なる複数のオブジェクトが異なる複数のブロックに配置される結果をもたらす複数の選択肢を優先する。
【００１０】
他の例において、本開示の複数の態様は、区画化の複数の選択肢を考慮することによって、フレームを複数のブロックに区画化するように動作可能な区画化部において具現化され、そのような区画化は、異なる複数のオブジェクトが異なる複数のブロックに配置される結果をもたらす複数の選択肢を優先する。
【００１１】
さらに他の例において、本開示の複数の態様は、プロセッサによって解釈されたときに、プロセッサに、内在する複数のピクセルの複数の運動特性に少なくとも部分的に基づいて、フレーム内の複数のオブジェクトを決定させ、区画化の複数の選択肢を考慮することによって、フレームを複数のブロックに区画化させる複数の命令をそこに有するコンピュータ可読媒体において具現化され、そのような区画化は、異なる複数のオブジェクトが異なる複数のブロックに配置される結果をもたらす複数の選択肢を優先する。
【図面の簡単な説明】
【００１２】
【図１】ビデオ符号化システムの例を示す。
【００１３】
【図２】図１のシステムによって実行される動作の例を示す。
【００１４】
【図３】図１のシステムによって実行される動作の他の例を示す。
【００１５】
【図４】図１のシステムによって実行される動作の他の例を示す。
【００１６】
【図５】図１のシステムによって実行される動作の他の例を示す。
【００１７】
【図６ａ】符号化に適した複数のビデオフレームの例を示す。
【図６ｂ】符号化に適した複数のビデオフレームの例を示す。
【図６ｃ】符号化に適した複数のビデオフレームの例を示す。
【００１８】
【図７ａ】複数のセグメントをその中で生成するために処理された後の図６ａの複数のフレームを示す。
【図７ｂ】複数のセグメントをその中で生成するために処理された後の図６ｂの複数のフレームを示す。
【図７ｃ】複数のセグメントをその中で生成するために処理された後の図６ｃの複数のフレームを示す。
【００１９】
【図８ａ】図７ａ−ｃの複数のセグメントから形成された複数のオブジェクト及び複数のブロックの区画化を示す。
【図８ｂ】図７ａ−ｃの複数のセグメントから形成された複数のオブジェクト及び複数のブロックの区画化を示す。
【図８ｃ】図７ａ−ｃの複数のセグメントから形成された複数のオブジェクト及び複数のブロックの区画化を示す。
【発明を実施するための形態】
【００２０】
本明細書で説明される複数の方法及び複数のシステムは、ビデオのフレームの符号化のさらなる広範な見識を考慮することによって、現在普及している圧縮アプローチを改善する。従来のレート歪みの最適化アプローチを用いる場合、複数の区画の選択及びそれらの対応する複数の動きベクトルが後続の複数のマクロブロックに影響を与えるという事実が重要であると考えられていない。この結果として、全体の品質にマイナスの影響を与えながら、複数の動きベクトルを符号化するためのより高いコスト、及びデブロッキングフィルタのアクチベートの可能性がもたらされる。
【００２１】
図１を参照すると、ビデオ符号化コンピューティングシステム１００の例が表される。ビデオ符号化コンピューティングシステム１００は、コントローラ１２２、メモリ１２４、及び複数のインターフェース１４０を含む。示された実施形態において、ビデオ符号化コンピューティングシステム１００は、単一のシステムである。他の実施形態において、ビデオ符号化コンピューティングシステム１００は、互いに通信する２つ又はより多いシステムを含む。
【００２２】
コントローラ１２２は、例として、コンピュータプロセッサ又は複数のプロセッサである。コントローラ１２２は、マスク生成部１７０及びエンコーダ１６０を含む。マスク生成部１７０及びエンコーダ１６０のそれぞれは、例として、複数の命令を実行するコントローラ１２２として提供される。マスク生成部１７０は、分割部１７２及び動き予測部１７４を含む。エンコーダ１６０は、区画化部１６２を含む。区画化部１６２は、コスト調整部１６４を含む。コントローラ１２２は、メモリ１２４へのアクセス手段を有する。
【００２３】
メモリ１２４は、コントローラ１２２によって実行されたときにビデオ符号化コンピューティングシステム１００がネットワーク上で他の複数のコンピューティングデバイスと通信することを許可する複数の通信命令１３０を含む。ソフトウェアとして示されるが、複数の通信命令１３０は、ソフトウェア、（状態ロジックのような）ハードウェア、又はそれらの組み合わせとして実装されてよい。ビデオ符号化コンピューティングシステム１００は、クライアントコンピューティングシステムから受信されてメモリ１２４に格納される、符号化される少なくとも１つのビデオファイル１１０のようなデータをさらに含む。ビデオファイルは、符号化され、その後、処理されたビデオファイル１１２として格納される。例としてのビデオ符号化コンピューティングシステム１００は、複数のデスクトップコンピュータ、複数のラップトップコンピュータ、複数のタブレットコンピュータ、複数の携帯電話、複数のスマートフォン、及び他の適切な複数のコンピューティングデバイスを含む。例となる実施形態において、ビデオ符号化コンピューティングシステム１００は、コントローラ１２２によってアクセス可能な複数のメモリであってよいメモリ１２４を含む。
【００２４】
コントローラ１２２の１つ又は複数のプロセッサに関連するメモリ１２４は、ソフトウェアの実行に関連するメモリ及びデータの格納に関連するメモリを含んでよいが、これに限定されない。メモリ１２４は、コンピュータ可読媒体を含む。コンピュータ可読媒体は、コントローラ１２２の１つ又は複数のプロセッサによってアクセスされてよい任意の利用可能な媒体であってよく、揮発性の媒体及び不揮発性の媒体の両方を含む。さらに、コンピュータ可読媒体は、着脱可能な媒体及び着脱不可能な媒体の１つ又は両方であってよい。例として、コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、又は他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、又は他の光学ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、又は他の磁気ストレージデバイス、又は所望の情報を格納するために使用されてよく、コントローラ１２２によってアクセスされてよい任意の他の媒体を含んでよいが、これに限定されない。
【００２５】
メモリ１２４は、ビデオ符号化ソフトウェア１２０をさらに含む。ビデオ符号化ソフトウェア１２０は、ビデオファイル１１０の処理に関連する。ビデオ符号化ソフトウェアの例としての複数の処理シーケンスが以下で提供される。ソフトウェアとして示されたが、ビデオ符号化ソフトウェア１２０は、ソフトウェア、ハードウェア、又はそれらの組み合わせとして実装されてよい。
【００２６】
ビデオ符号化コンピューティングシステム１００は、ユーザインタフェース１４０をさらに含む。ユーザインタフェース１４０は、１つ又は複数の入力装置１４４及び１つ又は複数の出力装置、例として、ディスプレイ１４６を含む。例としての複数の入力装置は、キーボード、マウス、ポインタデバイス、トラックボール、ボタン、スイッチ、タッチスクリーン、及びオペレータにビデオ符号化コンピューティングシステム１００に入力を提供させる他の適切な複数のデバイスを含む。例としての複数の出力装置は、ディスプレイ、タッチスクリーン、プリンタ、及びビデオ符号化コンピューティングシステム１００のオペレータに情報を提供する他の適切な複数のデバイスを含む。
【００２７】
一実施形態において、２０１２年３月２３日に出願され、発明の名称がビデオ符号化システム及び方法である米国出願番号１３／４２８，７０７に開示されたコンピュータシステムは、参照によって本明細書に明示的に組み込まれ、複数のビデオファイルを符号化するために、本明細書に説明される複数のビデオ符号化処理シーケンスを利用する。
ビデオ符号化処理シーケンス
【００２８】
一実施形態において、ビデオにわたるツーパスアプローチが実装される。第１のパスにおいて、ビデオは、一貫して動いているオブジェクト及び動いていないオブジェクトの両方に対して分析される。ビデオの各フレームに関して、マスク生成部１７０は、マスクを生成する。マスク生成部１７０は、フレームの各ピクセルを動いているオブジェクト又は動いていないオブジェクトのいずれかに割り当てる。複数のオブジェクトは、決定され（ブロック２００）、マスクにおけるピクセル値に対応する各オブジェクトの数字とともに列挙される。さらに、動き予測部１７４を通って、関連するメタデータは、どのオブジェクトが動いているかを規定する。
【００２９】
より詳細には、第１のパスは、２つのステップを含む。第１のステップにおいて、分割部１７２は、フレーム６００を受信し、フレームを複数の画像セグメント７００に分割する（図７ａ−ｃ）（ブロック３００、５００）。
【００３０】
多数の異なる自動的な画像分割方法が、この分野における複数の実務家に知られている。一般的に、それらの技術は、画像を同様の色及びテクスチャを有する複数のセグメント領域に細分割するために、画像の色及び対応する複数の階調度を使う。画像分割技術の２つの例は、ピクセル連結性グラフの最適なカット区画化及び流域アルゴリズムを含む。特定の実施形態において、キャニーエッジ検出が、最適なカット区画化のために画像上で複数のエッジを検出するために使用される。そして、複数のセグメントは、ピクセル連結性グラフの最適なカット区画化を用いて生成される。
【００３１】
第２のステップは、セグメントベースの動き予測であり、複数のセグメントの動きが決定される。複数のセグメントが生成されると、動き予測部１７４は、ソースのフレームとしての役割を果たす時間的なシーケンスにおける現在のフレームと、ターゲットのフレームとしての役割を果たす時間的なシーケンスにおける後続のフレームとを有する複数のフレームの間でセグメントの動きを予測する。多数の動き予測技術が、この分野における複数の実務家に知られている。２つの例は、オプティカルピクセルフロー及び特徴追跡である。特定の実施形態において、私たちは特徴追跡を使う。高速化ロバスト特徴（ＳＵＲＦ：Ｓｐｅｅｄｅｄ  Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ）は、ソースの画像及びターゲットの画像の両方から抽出される。そして、２つの画像の個々の特徴は、対応を確立するために、ユークリッドメトリックを用いて比較される。これは、各特徴の動きベクトルを生成する。セグメントの動きベクトルは、セグメントの複数の特徴の全ての中央値である。したがって、各セグメントは、その複数の動き特性に基づいて分類される（ブロック３１０）。そのような分類は、各セグメントを動いているか動いていないかに分類することを含む（ブロック５１０）。
【００３２】
最終的に、隣接する複数のセグメントは、上述の２つのステップから理解されるように、複数のオブジェクトになるように組み合わせられる（ブロック３２０）。複数のセグメントが動いている場合、それらは、動きの類似性に基づいて組み合わせられる（ブロック５２０）。複数のセグメントが動いていない場合、それらは、色の類似性及び共有される複数の境界の割合に基づいて組み合わせられる（ブロック５３０）。複数のオブジェクトが列挙され、マスクが所与のフレームのために生成される。
【００３３】
第２のパスにおいて、実際の符号化は、エンコーダ１６０によって実行される。第１のパスによって生成されたオブジェクトのマスクは、エンコーダ１６０が利用可能である。区画化部１６２は、どのマクロブロックがひとまとめで維持されるか及びどのマクロブロックがより小さい複数の区画にさらに分割されるかを決定するように動作する。区画化部１６２は、オブジェクトマスク情報を考慮することによって、区画化を決定する。区画化部１６２は、例として、複数の区画化の選択肢の間で「決定」する。
【００３４】
区画化部１６２は、マクロブロックがマスクの複数のオブジェクトに重なるか否かを決定する（ブロック４００、５４０）。各区画化の選択肢に関連する複数のコストが決定される（ブロック４１０）。一例において、特定の区画化の決定のための動き補償の誤差に関連する複数のコストが決定される（ブロック５５０）。特定の区画化の決定のための複数の動きベクトルの符号化に関連する複数のコストも決定される（ブロック５６０）。
【００３５】
マクロブロックが２つのオブジェクトに重なる場合において、コスト調整部１６４は、１より小さい係数βをそれに掛けることでそのコスト関数を調整（減少）することによって２つのオブジェクトを分離する区画化の選択肢を選ぶ（ブロック４２０、５７０）。つまり、複数のマクロブロックの処理は、複数のオブジェクトを分離する区画化を促すようにバイアスがかけられる（ブロック２１０）。βは、学習された定数であり、特定の実施形態において、２つのオブジェクトのうちの１つが動いているか、両方のオブジェクトが動いているか、又は両方が動いていないかに依存する。２より多いオブジェクトを含むマクロブロックの場合、３つのオブジェクトを分離する区画のコスト関数は、β２でさらに調整される。このアプローチは、マクロブロック内の追加の複数のオブジェクトの不定の数に対して、潜在的に無制限に適用される。特定の実施形態において、β２とβとの和は１に等しい。スケーリング後の最良のコスト関数の値に対応する区画が、決定され（ブロック５８０）、選択され、処理される（ブロック５９０）。
【００３６】
特定の複数のコスト関数は、次のように与えられる。
【数２】
0006461209.tif 000005
【数３】
0006461209.tif 000006
【００３７】
１より小さいβがそのような区画化により低いコストを与えるので、複数のオブジェクトの分離を促す区画化が、これによって、より起こり得る。言い換えれば、追加の現在の実際のコストは、そのような現在のコストが後の節約を結果としてもたらすという予測において、引き受けられる。さらに、これは、続いて届けられる複数のマクロブロックが、考慮されたマクロブロックにおける複数のオブジェクトの１つの複数の部分を含むときに、それらの安上がりな符号化に潜在的に導く。特定の実施形態において、選択された誤差のメトリック（すなわち、第１の加数）は、複数の絶対値差分の合計である。複数の動きベクトルの符号化のコスト（すなわち、第２の加数）は、Binary Adaptive Arithmetic Codingを用いてベクトルに関連するビットレートを時間的に定量化することによって得られる。マクロブロックに対する最終的な選択が行われるまで、ビットストリームに何も書き込まれない。そのようなマクロブロックの選択が行われると、全ての他のマクロブロックに対する複数の決定とともに、フレームが、複数のマクロブロックに分割される（ブロック２２０）。
【００３８】
ハードウェア及びメモリ１２４の中に格納された複数の命令によって指示される処理を説明しながら、例としての処理が図６−８を参照してここに説明される。図６ａ−ｃは、サッカーの試合を描写するビデオ情報の３つの連続するフレーム６００を示す。図７ａ−ｃは、複数の色、複数のエッジ、及び複数のテクスチャに基づいて複数のセグメント７００に分割されたこれら３つのフレームを示す。
【００３９】
フレームからフレームへの複数のセグメントの動きの分析に基づいて、複数のセグメントは、複数のオブジェクトにグループ分けされる。図８ａは、そこに複数のオブジェクトを有する１つのそのようなフレームを示す。フレームの大部分は、フレームからフレームへ動かないフィールドの緑の草を描画していることがわかる。したがって、この動きがないこと及び色の一貫性があることは、草がすべて単一のオブジェクト（背景オブジェクト）としてグループ分けされるという結果をもたらす。背景でない複数のオブジェクトは、複数のプレイヤの複数の画像に対応する。図８ｂは、図８ａの拡大された領域である。図８ｃは、関心マクロブロック８１０を示す図８ｂの拡大された領域である。
【００４０】
現在の例において、複数のマクロブロックは、例として、１６ピクセル×１６ピクセルの大きさである。図８ａ−ｃは、１６×１６のマクロブロックの区画化８００を描写するオーバーレイを示す。エンコーダ１６０は、１６×１６のマクロブロック８１０を１つの完全な断片として動き補償するか、それをより小さい複数の断片に細分割するかを決定しなければならない。図８ｃは、マクロブロック８１０を４つの８ピクセル×８ピクセルのブロックに分割する第１の順位の細分割を示す。図８ｃは、また、２つの８×８のブロックの４つの４ピクセル×４ピクセルのブロックへのさらなる細分割を示す。
【００４１】
現在の例において、コスト計算は、複数のフレームの間の複数の変化が、４つの８×８のマクロブロックを与えるために、１６×１６のマクロブロック内の細分割を必要とすることを決定する。同様の複数のコスト計算が、それぞれの結果として生じる８×８のマクロブロックに対して実行される。２つの８×８のマクロブロック（左上及び右下）は、さらな分割を必要としない程度に十分に均一及び／又は十分に動いていないと見なされることが理解される。しかし、他の２つの８×８のマクロブロック（これらは複数のオブジェクトの複数のエッジの大部分を含む）は、さらなる分割のための基準（コスト計算）を満たしている。前述のとおり、コスト計算は、複数のオブジェクトの分割を促すようにバイアスされる。
【００４２】
上記の詳細な説明及びそこで説明された複数の例は、例示及び説明の目的のためだけに提示され、限定のためではない。例えば、説明された複数の動作は、任意の適切な手法でなされてよい。方法は、説明された動作及び複数の結果をなおも提供する任意の適切な順序でなされてよい。したがって、複数の実施形態は、上述された又は本明細書で請求された基本的な根本的な複数の原理の精神及び範囲の中にある任意の及び全ての修正、変化、又は等価をカバーするとみなされる。さらに、上記の説明は、コードを実行するプロセッサの形式のハードウェアを説明するが、ステートマシンの形式のハードウェア、又は同一の効果を奏することができる専用のロジックが考慮されてもよい。
【００４３】
本明細書で説明されたソフトウェアの複数の動作は、これらに限定されないが、複数のステートマシン、複数のフィールドプログラマブルゲートアレイ、複数の特定用途向け回路、又は他の適切なハードウェアを含む複数の別個のロジック固定機能回路のようなハードウェアに実装されることができる。ハードウェアは、これらに限定されないが、ＲＴＬ及びＶＨＤＬ又は任意の他の適切なフォーマットのようなハードウェア記述子言語で、ＲＡＭ、ＲＯＭ、又は他の適切なメモリのような持続性メモリに格納された実行可能なコードで表されてよい。実行可能なコードは、実行されるときに、本明細書で説明された複数の動作を有するＩＣを集積製造システムに製造させてよい。
【００４４】
また、複数の集積回路設計システム／集積製造システム（例えば、当技術分野で知られているように、１つ又は複数のプロセッサ、１つ又は複数のバスを介する通信における関連メモリ、又は他の適切なインターコネクトを含む複数のワークステーション、及び他の既知の複数の周辺機器）は、これらに限定されないが、ＣＤＲＯＭ、ＲＡＭ、他の形式のＲＯＭ、複数のハードドライブ、分散型メモリなどのようなコンピュータ可読媒体上に格納された実行可能な複数の命令に基づいて、複数の集積回路を有する複数のウェハを生成することが知られている。複数の命令は、これらに限定されないが、ハードウェア記述子言語（ＨＤＬ）、ベリログ、又は他の適切な言語のような任意の適切な言語によって表されてよい。そのように、本明細書で説明されたロジック、ソフトウェア、及び複数の回路は、そこに格納された複数の命令を有するコンピュータ可読媒体を用いるそのような複数のシステムによって複数の集積回路として製造されてよい。例えば、前述のソフトウェア、ロジック、及び構造を有する集積回路は、そのような複数の集積回路製造システムを用いて生成されてよい。そのようなシステムにおいて、コンピュータ可読媒体は、１つ又は複数の集積回路設計システムに集積回路を製造させる１つ又は複数の集積回路設計システムによって実行可能な複数の命令を格納する。
［項目１］
ビデオを符号化する方法であって、
内在する複数のピクセルの複数の運動特性に少なくとも部分的に基づいて、フレーム内の複数のオブジェクトを決定する段階と、
区画化の複数の選択肢を考慮することによって、上記フレームを複数のブロックに区画化する段階であって、異なる複数のオブジェクトが異なる複数のブロックに配置される結果をもたらす複数の選択肢を優先する区画化する段階と
を含む方法。
［項目２］
フレームを区画化する段階は、より大きい又はより小さいブロックを処理することによって、フレームに対する処理コストが最小化されるか否かを考慮する段階を含む項目１に記載の方法。
［項目３］
上記より大きいブロックは、１６ピクセル×１６ピクセルである項目２に記載の方法。
［項目４］
異なる複数のオブジェクトが異なる複数のブロックに配置される結果をもたらす複数の選択肢を優先することは、区画化されるフレームに関して、そうすることがよりコストがかかるにもかかわらず、第１のブロックを複数のより小さいブロックとして区画化する決定を結果としてもたらす項目２に記載の方法。
［項目５］
第２のブロックに関連する上記コストは、上記第２のブロックを動き補償することによる複数の誤差の上記コスト、及び上記第２のブロックに関連する全ての動きベクトルを符号化することの複数の上記コストの組み合わせである項目２から４のいずれか一項に記載の方法。
［項目６］
上記区画化が複数のオブジェクトを分離するときに、区画化に関連するコストに減少係数を適用する段階
をさらに含む項目２から５のいずれか一項に記載の方法。
［項目７］
上記フレームを複数のセグメントに分割する段階と、
複数のセグメントを動いているか又は動いていないかに分離する段階と、
動きの類似性に基づいて、隣接する動いている複数のセグメントを組み合わせて複数のオブジェクトにする段階と
をさらに含む項目１から６のいずれか一項に記載の方法。
［項目８］
色の類似性及び複数の境界に基づいて、隣接する動いていない複数のセグメントを組み合わせて複数のオブジェクトにする段階
をさらに含む項目７に記載の方法。
［項目９］
ブロックが１つより多いオブジェクトに重なるか否かを決定する段階
をさらに含む項目７又は８に記載の方法。
［項目１０］
区画化のコントローラであって、
区画化の複数の選択肢を考慮することによって、フレームを複数のブロックに区画化するように動作可能な区画化部
を含み、
上記区画化することは、異なる複数のオブジェクトが異なる複数のブロックに配置される結果をもたらす複数の選択肢を優先するコントローラ。
［項目１１］
異なる複数のオブジェクトが異なる複数のブロックに配置される結果をもたらす区画化の選択肢に関連するコストに減少を適用するコスト調整部
をさらに含む項目１０に記載のコントローラ。
［項目１２］
上記減少の上記適用は、上記区画化部に、上記減少の上記適用がない限り選択されない区画化の選択肢を選択させる項目１１に記載のコントローラ。
［項目１３］
フレーム内に存在する複数のオブジェクトを決定するように動作可能なマスク生成部
をさらに含む項目１０から１２のいずれか一項に記載のコントローラ。
［項目１４］
上記マスク生成部は、上記フレームを複数のセグメントに分割するように動作可能な分割部を含む項目１３に記載のコントローラ。
［項目１５］
上記複数のセグメントの複数の運動特性を決定するように動作可能な動き予測部
をさらに含む項目１４に記載のコントローラ。
［項目１６］
上記マスク生成部は、動き、色、及び共有される境界の割合のうちの少なくとも１つの類似性に基づいて、複数のセグメントを組み合わせて複数のオブジェクトにするようにさらに動作可能である項目１５に記載のコントローラ。
［項目１７］
コンピュータに、
内在する複数のピクセルの複数の運動特性に少なくとも部分的に基づいて、フレーム内の複数のオブジェクトを決定する段階と、
区画化の複数の選択肢を考慮することによって、上記フレームを複数のブロックに区画化する段階であって、異なる複数のオブジェクトが異なる複数のブロックに配置される結果をもたらす複数の選択肢を優先する区画化する段階と
を実行させるためのプログラム。
［項目１８］
フレームを区画化する段階は、より大きい又はより小さいブロックを処理することによって、フレームに対する処理コストが最小化されるか否かを考慮する段階を含む項目１７に記載のプログラム。
［項目１９］
異なる複数のオブジェクトが異なる複数のブロックに配置される結果をもたらす複数の選択肢を優先することは、区画化されるフレームに関して、そうすることがよりコストがかかるにもかかわらず、第１のブロックを複数のより小さいブロックとして区画化する決定を結果としてもたらす項目１８に記載のプログラム。
［項目２０］
第２のブロックに関連する上記コストは、上記第２のブロックを動き補償することによる複数の誤差の上記コスト、及び上記第２のブロックに関連する全ての動きベクトルを符号化することの複数の上記コストの組み合わせである項目１８又は１９に記載のプログラム。
【図１】
0006461209.tif 000007
【図２】
0006461209.tif 000008
【図３】
0006461209.tif 000009
【図４】
0006461209.tif 000010
【図５】
0006461209.tif 000011
【図６】
0006461209.tif 000012
【図７】
0006461209.tif 000013
【図８】
0006461209.tif 000014