(57)【特許請求の範囲】
【請求項１】
デコーダに送信される一連の原動画フレームを符号化し、一連の復号動画フレームを表示のため生成する方法であって、
エンコーダを用いて構成参照フレームを生成することと、
前記構成参照フレームを前記デコーダに送信するためビットストリームに符号化することと、
後続する復号処理のための前記ビットストリームに含めるために、前記構成参照フレームを用いて、前記一連の原動画フレームを圧縮して、圧縮デジタル動画信号を取得することと、
後続する表示処理の間に、前記構成参照フレームが、前記一連の復号動画フレームから削除されることを示すことと
を含み、
前記一連の復号動画フレームは前記圧縮デジタル動画信号から得られ、
前記一連の原動画フレームを圧縮して、圧縮デジタル動画信号を取得することには、
前記一連の原動画フレームの各マクロブロックの予測マクロブロックを形成することであって、前記一連の原動画フレームの少なくともいくつかのマクロブロックの前記予測マクロブロックが、前記構成参照フレームを用いてインター予測によって形成されることと、
関連する前記予測マクロブロックを用いて、前記一連の原動画フレームの各マクロブロックの残差マクロブロックを生成することと、
前記一連の原動画フレームの各マクロブロックの前記残差マクロブロックを符号化して前記圧縮デジタル動画信号を取得することと、
を含むことを特徴とする方法。
【請求項２】
前記構成参照フレームは既存の原フレームのコピーであり、
前記構成参照フレームを符号化することは、前記既存の原フレームが連続してその順番で現れる前に、前記既存の原フレームのコピーを符号化することを含み、
前記一連の原動画フレームを圧縮することは、前記構成参照フレームを用いて、前記既存の原フレームを連続してその順番で符号化することを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記既存の原フレームを符号化することは、第１の品質レベルで、前記コピーを符号化することを含み、
ここで、前記既存の原フレームを連続してその順番で符号化することは、前記第１の品質レベルと異なる第２の品質レベルで、前記既存の原フレームを符号化することを含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記エンコーダを用いて、前記構成参照フレームを生成することは、
時間フィルタを用いて、いくつかの原フレームから動画ノイズを除去することと、
前記いくつかの原フレームの各マクロブロックのエラースコアを計算することと、
最低のエラースコアを有する各原フレームのマクロブロックを前記構成参照フレームにコピーすることを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記構成参照フレームは、背景であるいくつかの原フレームのマクロブロックを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記構成参照フレームを生成することは、
前記いくつかの原フレームにわたり、複数の画素を含む複数のマクロブロックの各々の動きベクトルを計算することと、
所定の制限値未満の動きベクトルを有するマクロブロックを前記構成参照フレームにコピーすることを含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記一連の原画像フレームは、所定のサイズを有し、
前記構成参照フレームは、画像超解像度を用いて現れた前記所定のサイズよりも大きいサイズを有することを特徴とする請求項１に記載の方法。
【請求項８】
前記構成参照フレームを用いて、前記一連の原動画フレームを圧縮することは、前記構成参照フレームを用いて、高品質の境界領域を提供することをさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記エンコーダを用いて、前記構成参照フレームを生成することは：
開始フレームＮを取得することと、
Ｘが正の整数である開始フレームＮからフレームＮ＋Ｘまでの各フレームＡに一致するグローバル動きベクトルを見つけることと、
前記グローバル動きベクトルを用いてお互いの上部に整列されたとき、前記一連の原動画フレームをカバーする境界領域を生成することと、
動き回ったとき、前記境界領域全体をカバーするのに十分な大きさの新しい画像を生成することと、
前記新しい画像中の前記複数の画素の各々のフレームシーケンスから複数の候補画素を生成することと、ここで前記複数の画素の各々はそれぞれの候補セットに関連付けられており、
前記各候補セットの各々の平均輝度値を計算することと、
前記構成参照フレーム中の画素として、前記新しい画像中の前記複数の画素に関連付けられる前記平均輝度値を記憶することとを含むことを特徴とする請求項７に記載の方法。
【請求項１０】
前記グローバル動きベクトルを見つけることは、全探索グローバル動きベクトル探索方法と、ダイヤモンドグローバル動きベクトル探索方法の少なくとも１つを用いることを含むことを特徴とする請求項９に記載の方法。
【請求項１１】
スコア付け基準に基づき、いくつかの原フレーム中の複数の画素を含む各マクロブロックにスコア付けすることと、
前記原フレームの各々の全スコアを計算することと、
前記全スコアに基づき、前記構成参照フレームを生成するために、前記原フレームの１つを選択することを含むことを特徴とする請求項１または２に記載の方法。
【請求項１２】
前記スコア付け基準は、イントラ予測をインター予測と比較した比率を含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記スコア付け基準は、動きベクトルを含むことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記スコア付け基準は、予測品質における減衰を含むことを特徴とする請求項１１に記載の方法。
【請求項１５】
前記スコア付け基準は、ズームインまたはズームアウトの結果を含むことを特徴とする請求項１１に記載の方法。
【請求項１６】
一連の原動画フレームを圧縮して取得した圧縮デジタル動画信号の表示のために復号化する方法であって、
前記圧縮デジタル動画信号を含むビットストリームから構成参照フレームを復号することと、
前記一連の原動画フレームを復号化して、前記一連の復号動画フレームを生成することと、
後続する表示処理の間に、前記一連の復号動画フレームから前記構成参照フレームが削除されることと、
を含み、
前記一連の原動画フレームを復号化して、前記一連の復号動画フレームを生成することすることには、
前記一連の原動画フレームの各マクロブロックの予測マクロブロックを生成することであって、前記一連の原動画フレームの少なくともいくつかのマクロブロックの前記予測マクロブロックが、前記構成参照フレームを用いてインター予測によって形成されたものであることと、
前記一連の原動画フレームの各マクロブロックの残差マクロブロックを復号化することであって、各残差マクロブロックが前記圧縮デジタル動画信号内で符号化されたものであることと、
前記予測マクロブロックと前記一連の原動画フレームの各マクロブロックに関連付けられた前記残差マクロブロックとを組み合わせることにより、前記一連の原動画フレームの各マクロブロックを再構成して、前記一連の復号化された動画フレームを生成することと、
を含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２００８年９月１１日に出願された米国仮特許出願第６１／０９６，１８９号の優先権を主張している、２００８年１２月５日に出願された米国特許出願第１２／３２９，０４１号の優先権を主張しており、ここで両出願の内容全体を本明細書に参照として組み入れる。
【０００２】
本発明は、一般に動画符号化と復号化に関する。
【背景技術】
【０００３】
今日の増加しつつある多数のアプリケーションでは、例えば、テレビ会議による遠隔会議、高精細動画エンターテイメント、動画広告、およびユーザー生成動画の共有を含む様々な目的のためにデジタル動画を利用している。技術の進歩につれて、たとえ限られた帯域幅の通信チャネルを介して送信されても、人々は動画品質と高解像度動画に大きな期待を抱いている。
【０００４】
帯域幅消費を制限しながら、高品質の動画送信を可能にするために、現在および将来のバージョンを含む、ＶＰｘ（ニューヨーク市、クリフトンパーク、Ｏｎ２  Ｔｅｃｈｎｏｌｏｇｉｅｓ社により普及された），ＩＴＵ−Ｔ  ＶＣＥＧ（Ｖｉｄｅｏ  Ｃｏｄｉｎｇ
Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ：ＩＴＵ−Ｔ動画符号化専門家グループ）およびＩＳＯ／ＩＥＣ  ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ：ＩＳＯ／ＩＥＣ動画像専門家グループによって普及された）標準であるＨ．２６４などの、独自仕様フォーマットを含む多数の動画圧縮方式が知られている。Ｈ．２６４は、ＭＰＥＧ−４  Ｐａｒｔ１０またはＭＰＥＧ−４  ＡＶＣ（正式には、ＩＳＯ／ＩＥＣ  １４４９６−１０）としても知られている。
【０００５】
これらの圧縮方式は、動画情報を送信するのに必要なデータ量を最小限に抑える予測技術を用いることができる。予測技術により、複数の過去に送信されたフレームおよびこれから送信するフレームを順不同に送信し、フレーム中のマクロブロックの潜在的参照フレーム予測子（potential reference frame predictors）として用いるのを考慮することができる。例えば、ＭＰＥＧ標準やＨ．２６４標準などの動画圧縮方式により、フレームを順不同に送信し、前方向予測または双方向予測を用いて、より良い予測子を生成することができる。また、例えば、Ｈ．２６４動画圧縮標準では、複数の過去の参照フレームを予測子として用いることができる。
【発明の概要】
【０００６】
本発明の実施形態は、後続フレームの予測に用いる参照バッファを満たすのに用いられるビットストリーム情報の範囲内で送信する能力を備えている。この情報は、その後表示されない構成参照フレーム（constructed reference frame）に対応する。
【０００７】
本発明の一実施形態は、一連の原動画フレームから取得される一連のデジタル動画フレームを表示する方法である。本実施形態によれば、この方法は、エンコーダを用いて構成参照フレームを生成することと、構成参照フレームを用いて一連の原動画フレームを圧縮して、後続する復号処理のための圧縮デジタル動画信号を含むビットストリームを取得することとを含む。構成参照フレームは復号されるが、後続する表示処理の間に、一連のデジタル動画フレームから除去される。
【０００８】
一連のデジタル動画フレームから構成参照フレームを抽出する方法を含む、本発明のこれらおよびその他の実施形態を以下にさらに詳しく説明する。
【図面の簡単な説明】
【０００９】
ここでは、添付図面を参照して説明を行い、複数の図面にわたり、同一参照符号は同一部位を示す。
【００１０】
【図１】動画圧縮ビットストリームのレイヤ階層を示す図である。
【００１１】
【図２】本発明の一実施形態による動画データの符号化と再構成を示すブロック図である。
【００１２】
【図３】本発明の一実施形態による動画復元システムのブロック図である。
【００１３】
【図４】本発明の一実施形態による構成参照フレームの図示的表現である。
【００１４】
【図５】本発明の一実施形態による構成参照フレームを組み立てる例示的方法を示すフローチャートである。
【００１５】
【図６】本発明の一実施形態による構成参照フレームを組み立てる例示的方法を示すフローチャートである。
【００１６】
【図７】構成参照フレームのブーストスコア（boost score）を計算する例示的方法を示すフローチャートである。
【００１７】
【図８】図７に示す例示的方法によるブレ−クアウト条件（breakout condition）を処理する一例を示すフローチャートループである。
【発明を実施するための形態】
【００１８】
図１について説明する。ＶＰ８やＨ．２６４などの動画符号化フォーマットは、動画ストリーム１１の一定のレイヤ階層を規定している。レイヤの最上位レベルは、動画シーケンス１３である。次のレベルにおいて、動画シーケンス１３は、単一のフレーム１７にさらに再分割可能な多数の隣接フレーム１５から構成されている。次のレベルにおいて、フレーム１７は、一連の固定サイズマクロブロックから構成され、例えば、フレーム１７の表示画素の１６×１６ブロックに対応する圧縮データを含んでいる。各マクロブロックは、対応する画素の輝度(luminance)データと色(chrominance)データを含んでいる。マクロブロック２０は、１６×８画素群または８×１６画素群などの任意の他の適切なサイズからも構成できる。マクロブロック２０は、ブロックにさらに再分割される。例えば、１ブロックは、４×４画素群であり、この画素群は、対応する画素の輝度データと色データをさらに記述できる。また、ブロックは、８×８、８×４、および４×８画素などの任意の他の適切なサイズからも構成できる。
【００１９】
図２について説明する。一実施形態によれば、入力動画ストリーム１６を符号化するには、エンコーダ１４が、前方向パス（実線で示す）の以下の機能、すなわち、イントラ／インター予測１８、変換１９、量子化２２、およびエントロピー符号化２４を実行して、符号化ビットストリーム２６を生成する。エンコーダ１４は、再構成パス（点線で示す）も有し、フレームを再構成して、さらなるマクロブロックを符号化する。エンコーダ１４は、再構成パスの以下の機能、すなわち、逆量子化２８、逆変換３０、再構成３２、およびループフィルタ処理３４を実行する。エンコーダ１４のその他の構造的変形を用いて、ビットストリーム２６を符号化できる。
【００２０】
入力動画ストリーム１６を符号化するとき、入力動画ストリーム１６中の各フレーム１７は、マクロブロック単位で処理される。イントラ／インター予測ステージ１８で、イントラ予測モードまたはインター予測モードのいずれかを用いて、各マクロブロックが符号化される。いずれにしても、再構成フレームに基づいて、予測マクロブロックを形成できる。イントラ予測の場合、予測マクロブロックは、予め符号化され、再構成されている現フレームのサンプルから予測マクロブロックが形成される。一方、インター予測の場合、ここでさらに詳述するように、予測マクロブロックは、１つ以上の構成参照フレームから形成される。
【００２１】
次に、図２についてさらに説明する。予測マクロブロックが、現マクロブロックから引かれ、残差(residual)マクロブロック（残差）を生成する。変換ステージ１９で、残差を変換符号化し、量子化ステージ２２で、残差を量子化して、一組の量子化変換係数を生成する。次いで、量子化変換係数は、エントロピー符号化ステージ２４で、エントロピー符号化される。エントロピー符号化係数は、用いた予測モードの種類、動きベクトル、および量子化値などの、マクロブロックを復号するのに必要な情報と一緒に、圧縮ビットストリーム２６に出力される。
【００２２】
図２の再構成パスは、エンコーダとデコーダ双方が、マクロブロックを復号するのに必要な同じ参照フレームを確実に用いるようにする。以下に詳述する、復号処理時に実行される処理に類似する再構成パスは、逆量子化ステージ２８で、変換された係数を逆量子化することと、逆変換ステージ３０で、この係数を逆変換して、微分残差マクロブロック(derivative residual macroblock)（微分残差）を生成することとを含む。再構成ステージ３２で、予測マクロブロックが微分残差に加えられ、再構成マクロブロックを生成する。ループフィルタ３４を再構成マクロブロックに適用して、ブロッキング歪を低減させる。
【００２３】
図３について説明する。一実施形態によれば、圧縮ビットストリーム２６を復号するには、デコーダ２１は、上述したエンコーダ１４の再構成パスと類似する、以下の処理、すなわち、エントロピー復号２５、逆量子化２７、逆変換２９、イントラ／インター予測２３、再構成３１、ループフィルタ３４、およびデブロッキングフィルタ処理３３を実行して、出力動画ストリーム３５を生成する。デコーダ２１のその他の構造上の変形を用いて、圧縮ビットストリーム２６を復号することができる。
【００２４】
圧縮ビットストリーム２６を復号するとき、エントロピー復号ステージ２５（例えば、コンテキスト適応型バイナリ算術符号化(Context Adaptive Binary Arithmetic Coding)
を用いて）で、データ要素をエントロピー復号して、一組の量子化係数(quantized coefficients)を生成できる。逆量子化ステージ２７で、この係数を逆量子化し、逆変換ステージ２９で、この係数を逆変換して、エンコーダ１４の再構成ステージで生成された微分残差と同一の微分残差を生成する。イントラ／インターステージ２３で、圧縮ビットストリーム２６から復号されたヘッダ情報を用いて、デコーダ２１は、エンコーダ１４で生成されたのと同じ予測マクロブロックを生成する。また、再構成ステージ３１で、予測マクロブロックが、微分残差に加えられて、再構成マクロブロックを生成する。ループフィルタ３４を再構成マクロブロックに適用して、ブロッキングアーチファクト(artifacts：画像の乱れ)をさらに低減できる。また、デブロッキングフィルタ３３を再構成マクロブロッ
クに適用して、ブロッキング歪を低減し、出力画像ストリーム３５として、その結果が出力される。
【００２５】
再度、エンコーダ１４について説明する。動画符号化方式は、ロスレスまたはロス圧縮アルゴリズムを用いて、動画信号を圧縮し、各フレーム、または一連のフレームの各フレームのブロックを圧縮する。上記の説明から理解できるように、イントラフレーム符号化
は、当該フレームからのデータを用いてフレームを符号化することを指し、一方、インター符号化は、他のいわゆる、「参照」フレームに基づいて、フレームを符号化することを含む方式などの予測符号化方式を指す。例えば、動画信号は、しばしば時間冗長性(temporal redundancy)を示し、ここにおいて、フレームの時間上の順序が互いに近いフレーム
が、お互いに一致または部分的に一致する部分を少なくとも有している。エンコーダは、この時間冗長性を利用して、現フレームと１つ以上の参照フレームとの間の差に関してフレームを符号化することで、符号化データのサイズを低減させることができる。
【００２６】
動画エンコーダは、符号化されているフレームのブロックを１つ以上の他のフレームの部分に一致させる、動き補償に基づくアルゴリズム(motion compensation based algorithms)を用いることができる。符号化フレームのブロックは、参照フレームの一致部分に対してフレーム中でシフトされてよい。このシフトは、動きベクトルにより特徴付けられる。ブロックと参照フレームの部分的一致部分との間の差は、残差(residual)に関して特徴付けられる。このため、エンコーダ１４は、１つ以上の動きベクトル(motion vector)と
フレームの特定分割(particular partitioning)の残差とを含むデータとしてのフレーム
を復号し得る。フレームを符号化するブロックの特定分割は、例えば、歪(distortion)がある符号化サイズを、符号化の結果として取得されたフレームの内容に対してバランスを取る費用関数(cost function)をほぼ最小化することで選択し得る。
【００２７】
上記に簡単に述べたように、多くの動画コーディングアルゴリズムでは、最初に、各画像をマクロブロックに分割する。そして、各マクロブロックは、例えば動き補償などの、ある形態の予測コーディング方式を用いてコード化される。いくつかの動画コーディング標準では、それらのコード化において、異なる種類の予測マクロブロックを用いる。１つのシナリオでは、マクロブロックは、以下の３種類のうちの１つである。１）そのコード化の際に、他の画像からの情報を用いないイントラ（Ｉ）マクロブロック、２）１つ先行する画像からの情報を用いる片方向予測（Ｐ）マクロブロック、３）１つ先行する画像と１つ将来の画像からの情報を用いる双方向予測（Ｂ）マクロブロック。
【００２８】
高品質の圧縮動画の生成を容易にするには、符号化差を最小にするため、ベストマッチング参照フレーム(best matching reference frame)が役立ち、これにより、通常、符号
化がよりコンパクトになる。現在、例えば、米国出願公開第２００５／０２８６６２９号に示すように、エンコーダが、予測処理で用いるベストマッチングブロックを見つけることができるように、参照フレームは、過去のフレーム、将来のフレーム、またはイントラフレームに基づいている。しかしながら、現在用いられている参照フレームは、エンドユーザに表示される実際のフレームに基づいている。
【００２９】
その結果、いくつかの問題が生じることになる。主要な問題は、上記の参照フレームが、最高品質の参照データを提供せず、低品質の動画圧縮になる可能性があることである。
【００３０】
対照的に、ここで説明したエンコーダ１４により生成され、用いられた参照フレームが、構成参照フレーム(constructed reference frame)であり、ビットストリームに符号化
され、その後に送信されたフレームの符号化を向上させる画像データフレームである。従来の参照フレームと異なり、構成参照フレームは、ユーザーに表示されない。ここで述べた技術の柔軟性により、構成参照フレームは、動画ストリームの生の画像フレームまたはユーザーに表示されるフレームと同じ大きささえ有し得ない。それどころか、構成参照フレームは、予測子(predictor)としての役割を果たし、過去に送信されたフレームが与え
るものよりもより良い予測選択の機会を後続のフレームに与える。構成参照フレームの生成は、ビットストリームにより定義されていない。それどころか、考えられる最良の構成参照フレームを生成することは、エンコーダに残された作業である。このように、参照フレームを構成する計算は、デコーダではなくエンコーダが行っている。
【００３１】
本発明の一実施形態では、数個の現フレームデータの予測子として、１つ以上の構成参照フレームバッファを用いている。これは、動き補償予測用と、非動き補償予測(non motion compensated prediction)用のこれらのフレームバッファの使用を含む。また、典型
的な双方向予測モードのように、構成参照フレームと実際の参照フレームとを組み合わせて予測する用法も扱っている。
【００３２】
一般に、構成参照フレームは、多数の方法により構築され、様々に用いて、符号化することができる。特殊な例を説明する前に、先ず、構成参照フレームを構築する方法を以下に全般的に説明する。
【００３３】
構成参照フレームを生成する第１の方法によれば、当該フレームが画像フレームシーケンスに通常現れるであろう前のいつかに、既存のフレームのコピーが、ビットストリームに符号化される。ここでの符号化の関連パラメータは、参照フレームの符号化品質または「ブースト(boost)」である。構成参照フレームの信頼性が高ければ高いほど、そのフレ
ームのより有用で正確な符号化ができる。逆に、限定された予測値を持つ参照フレームは、非常に高いレベルの精度に符号化する必要はない。この第１の方法において、このフレームのコピーは、通常平均品質よりもいくらか高い品質で符号化されるが、必ずしもそうとは限られない。
【００３４】
この構成参照フレームを用いて、従来の技術により他のフレームを符号化する。ビットストリーム中で、構成参照フレームの符号化に用いられる目標フレームに遭遇したとき、既存のフレームのコピー、すなわち、構成参照フレームを参照して符号化される。こうした符号化は、例えば、低品質レベルで、または構成参照フレームの符号化に用いられるより低いブーストによって行われる。
【００３５】
構成参照フレームを生成する別の方法は、上記のように、目標フレームを選択することと、時間フィルタ処理(temporal filtering)を用いて、目標フレームの中心にあるいくつかの原フレームからの動画ノイズを除去することを含む。こうした構成参照フレームを図４に示す。時間フィルタ処理は、例えば、ここで内容全体を本明細書に参照として組み入れる米国特許第６，１７８，２０５号に記載されているような、例えば、動き補償閾値ブラーフィルタ(motion-compensated threshold blur filter)を用いて、エンコーダにより適用できる。フレームごとに異なる動画ノイズを除去することで、構成参照フレームを複数フレーム用のより一層良い予測子にし、動画ストリームのデータ圧縮を向上させる。
【００３６】
図５を参照して、さらに可能な実施形態を示す。第１に、ステップ３６で、目標参照として、フレームが選択される。そして、当該フレームの各マクロブロックに対して、以下のステップが実行される。ステップ３８で、フレームのマクロブロックが選択され、当該フレームのベストマッチングマクロブロックが、いくつかの候補フレームから見付けられる。つまり、ステップ４０で、全ての他のフレームから選択したマクロブロックに動き探索を行うことで、いくつかの候補フレームから各候補マクロブロックがテストされる。すなわち、目標参照フレームで選択されたマクロブロックに最も類似するいくつかの候補フレームの各々から候補マクロブロックが特定される。例えば、目標参照フレーム中の選択したマクロブロックに突出(nose)が存在する場合、類似画像特性を含むマクロブロックが、候補フレームから選択されるだろう。ステップ４２で、各候補マクロブロックに対してエラースコアが計算される。エラースコアは、候補マクロブロックとその他の全候補マクロブロックとの間の差の全合計を測定する。ステップ４４で、全エラースコアが最低の候補マクロブロックが、マスターとして選択される。ステップ４６で、マスターが構成参照フレームにコピーされる。目標参照フレームの各マクロブロックに対してステップ３８〜４８が実行され、ステップ４８の後のステップ５０で、何等かの残りのマクロブロックが
存在するか否か問い合わせる。マクロブロックが存在しなければ、処理が終了する。そうでなければ、ステップ３８に処理が戻り、目標参照フレームの次のマクロブロックに対して、ステップ３８〜４８を繰り返し実行する。マクロブロックを参照して、この方法を説明したが、画素の任意のサイズのブロックを用いることができる。
【００３７】
構成参照フレームを生成する第３の方法は、背景抽出(background extraction)および
／または動き分割(motion segmentation)を用いて、符号化する高品質の背景フレームの
みを生成することである。背景からの抽出と動き分割の各種技術は、従来において公知である。一般に、大きな動きベクトル（つまり、高速で移動している）を有するブロックが、前景(foreground)であると考えられ、構成参照フレームにコピーされない。これに対して、（０．０）動きベクトルまたは他の小さな動きベクトル（つまり、低速で移動している）が、背景であると考えられ、構成参照フレームにコピーされる。
【００３８】
もちろん、この方法は、高品質の背景フレームのみを生成することを記述しているが、符号化された構成フレームの数について理論上は制限がない。従って、前景と背景を分離した構成参照フレームにセグメント化することも可能である。
【００３９】
上述しなかったが、記載したように参照フレームの使用を容易にするために、構成参照フレームで用いるアルファチャンネルの符号化が、望ましいかもしれない。
【００４０】
構成参照フレームを生成する別の方法は、画像の超解像度(image super resolution)を用いて、目標フレームと異なるサイズのフレームを生成することである。符号化されている実際の動画のサイズと寸法に参照フレームが正確に一致する必要性はない。例えば、ズームアウト(zoom out)、パン(pan)、または回転では、大きな領域が、いくつかのフレー
ムにわたり低速で現れる。原フレームよりも大きな構成参照フレームは、境界(border)領域のより高品質の予測を行うことができる。
【００４１】
上記の構成参照フレームを生成する１つの方法を、図６に例として示す。第１のステップ５２で、開始フレームＮが選択される。ステップ５４で、開始フレームＮからフレームＮ＋Ｘまで、各フレームＡに対し、いくつかのステップの実行が開始する。ここで、Ｘは整数である。具体的に言うと、ステップ５４で、フレームＡが、開始フレームＮに設定され、ステップ５６で、エンコーダ１４は、フレームＡの数がＮ＋Ｘ個のフレームの数より大きいか否かチェックする。フレーム数より大きくなければ、ステップ５８で、エンコーダ１４は、現フレームＡを開始フレームＮに一致させる最適グローバル動きベクトルを見つける。最適グローバル動きベクトルは、全探索またはダイヤモンド探索などのグローバル動きベクトル探索方法により見つけることができる。上記の方法は、例えば、Ｄａｎｅ
他「Ｅｆｆｉｃｉｅｎｔ  Ｍｏｔｉｏｎ  Ａｃｃｕｒａｃｙ  Ｓｅａｒｃｈ  ｆｏｒ  Ｇｌｏｂａｌ  Ｍｏｔｉｏｎ  Ｖｅｃｔｏｒ  Ｃｏｄｉｎｇ」，信号、システム、およびコンピュータに関する第１４回アシロマ会議，ＡＣＳＳＣ'０６，２００６年１０〜１１
月、１０７２〜１０７５ページ．に記載されている。
【００４２】
ステップ５８の後、ステップ６０でフレームがインクリメントされ、ステップ５４で、新しいフレームが現フレームＡになる。ステップ５６で示したように、現フレームＡの数が、Ｎ＋Ｘ個のフレームの数より大きくなるまで、ステップ５６，５８，６０が繰り返し実行される。次いで、ステップ６２に処理が進み、ここでグローバル動きベクトルを用いて、お互いの上部に整列したとき、フレームの全セットをカバーする境界領域(bounding region)が生成される。次のステップ６４で、原フレームよりも寸法が大きい新しい画像
が生成される。この新しい画像は、動き回る全領域(the entire region as it is moved about)をカバーする十分な大きさであるのが好ましい。
【００４３】
ステップ６４で、グローバル動きベクトルを見つけ、一組の動画フレームと完全に境が接する新しい画像を生成した後に、新しい画像の各画素に対して残りのステップが実行される。すなわち、ステップ６６で、新しい画像の画素が選択される。ステップ６８で、開始フレームＮ〜フレームＮ＋Ｘまで各フレームＡに対して以下のステップが実行されるように、フレームＡが開始フレームＮに再設定される。最初に、ステップ７０で、エンコーダ１４は、フレームＡの数が、Ｎ＋Ｘ個のフレームの数より大きいか否かチェックする。フレームの数より大きくなければ、エンコーダ１４は、ステップ７１で、選択した画素が現フレームＡにあるか否か問い合わせる。ステップ７１で、選択した画素が、現フレームＡにある場合は、ステップ７２に処理が進み、ここでエンコーダ１４は、候補セットに当該画素を加える。そして、ステップ７３に処理が進み、ここでフレームがインクリメントされる。ステップ７１で、選択した画素が、現フレームＡにない場合は、ステップ７３に直接処理が進み、フレームをインクリメントする。次に、ステップ６８で、インクリメントされたフレームが、現フレームＡとして設定され、ステップ７１で、新しいフレームセットに対して、選択した画素を探索する。フレームセットの各フレームに対してこの処理を終了して、候補セットを生成する。いったん、選択した画素に対して全フレームをチェックすると（ステップ７０で、問い合わせに対するＹｅｓ応答で示した）、ステップ７４に処理が進み、ここでいくつかのステップが、候補セットに対して実行される。
【００４４】
すなわち、ステップ７４で、候補セットから最新の画素が選択され、候補セットの残りの各画素が、その最新の画素と比較される。具体的に言うと、ステップ７５で、候補セットの画素が選択される。ステップ７６で、エンコーダ１４は、当該画素の輝度が、最新の画素の輝度から離れた所定の閾値より大きいか否か判断する。この所定の閾値は、実験で求められ、フレームの画素の輝度範囲に部分的に依存している。選択した画素の輝度が、最新の画素の輝度から離れた所定の閾値より大きいのであれば、ステップ７７で、その画素が候補セットから削除される。ステップ７８で、候補セットの全画素が、チェックされた場合（および、ステップ７６で問い合わせに対するｎｏ応答により候補セットに残った、あるいはステップ７６で、問い合わせへのＹｅｓ応答により、ステップ７７で、候補セットから削除されたのであれば）、ステップ７９に処理が進む。そうでなければ、ステップ７５で、候補セットから新しい画素が選択されて、ステップ７６で、最新の画素と比較される。  
【００４５】
ステップ７９で、候補セットに残っている画素の平均輝度が計算される。この平均輝度は、一例として、フレーム中の画素の位置に基づく、重み付け平均であってよい。次に、ステップ８０で、この平均輝度が、新しい画像から生成された構成参照フレームの現画素輝度値として格納される。すなわち、平均輝度値が、候補セットを生成するのに用いた新しい画像から選択された画素の画素位置に関連して格納される。ステップ８２で、エンコーダ１４は、新しい画像の全画素が、探索されたか否か問い合わせる。探索された場合には、処理を終了する。探索されていなければ、ステップ６６で、新しい画像の次の画素が選択される。その画素の候補セットが選択され、平均輝度値が割り当てられるように、ステップ７０〜８０の処理を繰り返し実行する。
【００４６】
構成参照フレームを生成する第５の方法は、各ブロックまたはフレーム中のマクロブロックにスコアを付けるスコア付け方法論を用いることと、全フレームの全スコアを計算することとを含む。このスコアは、既存のどのフレームが、参照フレームを構成するのに用いられたのか選択するのに用いることができる（つまり、適時測定されるどのオフセットが、現フレームと構成参照フレームの構築に用いられたフレームとの間に設定されるのか）。いくつかのスコア付け基準を用いることができる。例えば、このスコア付け基準(scoring criteria)は、イントラ予測対インター予測の誤り率を含むことができる。この場合、この誤り率が高ければ高いほど、使用可能な時間オフセットが大きくなり、適用可能なブーストも大きくなる。別の基準が動きベクトルである。動きが少なければ少ないほど、
時間オフセットとブーストを大きくなる。また、別の基準がズームイン対ズームアウトであり、また別の基準が、予測品質の減衰率である。
【００４７】
次に述べるのが、構成参照フレームに関するさらなる詳細、更新間隔、および適用すべきビットレートブーストである。
【００４８】
本発明の特定の一実施形態において、２パス符号化機構を用いて、構成参照フレームの用途、頻度、および品質を決定する。ある他の実施形態は、１パスエンコーダに実装され、異なる測定基準を用いるかもしれない。
【００４９】
第１のパスにおいて、ビデオクリップの特徴に関する情報、つまり、一連の原フレームまたは画像が収集される。各マクロブロックは、２つの方法のうちの１つ、すなわち単純ＤＣ予測イントラモード、または動きベクトルを用い、前のフレーム再構成バッファを参照するインター予測モードの２つの方法のうちの１つで符号化される。
【００５０】
両方の符号化方式に対して、再構成エラースコアが記録され、イントラモードのフレームと、イントラモードまたは動き補償インターモードのベストモードのいずれかのフレームの累積スコアのレコードが保持される。通例、ベストモードは、インターコーディングモードである。従って、以下の説明において、インターコーディングモードは、必ずしも各フレームに対するベストモードではないが、累積ベストスコアは、フレームのインターエラースコアと呼ばれる。
【００５１】
ベストモードがイントラではなくインターであるマクロブロックのパーセンテージ、ゼロ（ヌル）動きベクトルが選択されるインターコードッド(coded)マクロブロックのパー
センテージ、および用いた動きベクトルに関する要約情報のレコードも保持される。
【００５２】
ゼロ（ヌル）動きベクトルが選択される、インターコードッドマクロブロックのパーセンテージは、どれくらいの画像が静止画であるかを示す。
【００５３】
用いた動きベクトルに関する要約情報は、非ゼロベクトルが用いられるマクロブロックの数、合計値、および動きベクトル成分（ｘ、ｙ）の各々の絶対値の合計を含む。これらのことから、フレームの平均動きベクトル（ある正値と負値がある場合、それらは相殺し得る）と、フレームの平均動きベクトルの大きさを計算することができる。
【００５４】
第１のパスで収集された情報の用途の１つは、構成参照フレームを符号化すべきか否か、またはどれ位の頻度で構成参照フレームを符号化すべきか、およびどれ位多くのビットを構成参照フレームに使うべきか否か決定することであり、これは符号化機構の第２のパスを含む。ある実施形態では、平均品質よりも多少高い品質で（つまり、高いレベルのブースト）、構成参照フレームが符号化される。
【００５５】
「ブースト」された構成参照フレームを符号化して得た利益は、短いフレーム列中のあるフレームから他のフレームまでの予測品質に大部分依存していることである。こうした参照フレームを構成する、一実施形態に関して上記で簡単に述べたように、これを立証するために用いた測定法は、イントラ／インター比であってもよい。イントラ／インター比率は、フレームの累積インター（またはベスト）エラースコアで割ったフレームの合計イントラエラースコア比（第１のパスで測定）である。大きなイントラ／インター比（ＩＩＲａｔｉｏ）は、インターコーディングを用いることは、大きな利益があることを示しており、同様に、当該フレームが先行するフレームにより良好に予測されることを示している。
【００５６】
構成参照フレームが、関連し得るフレーム列に対して、以下に説明するように、また図７に関して示したように、一定の最大間隔（Ｍａｘ＿ｉｎｔｅｒｖａｌ）まで、ブーストスコアが計算される。最初に、ステップ８４で、開始フレームＮが選択される。次に、Ｎ〜Ｎ＋Ｍａｘ＿ｉｎｔｅｒｖａｌまでの各フレームＡに対して、いくつかのステップが実行される。すなわち、ステップ８６で、現フレームＡが、最初に開始フレームＮに設定され、後述するように、現フレームＡがインクリメントされる。ステップ８８に示すように、いったん現フレームＡの数が、Ｎ＋Ｍａｘ＿ｉｎｔｅｒｖａｌ個のフレームの数より大きくなると、処理が終了する。現フレームＡの数が、Ｎ＋Ｍａｘ＿ｉｎｔｅｒｖａｌ個のフレームの数を超えない限り、ステップ９０の処理が繰り返される。
【００５７】
テップ９０で、変数ＴｈｉｓＦｒａｍｅＤｅｃａｙＲａｔｅが、変数Ｎｅｘｔｆｒａｍｅ％ＩｎｔｅｒＣｏｄｅｄに等しくなるように設定される。変数ＴｈｉｓＦｒａｍｅＤｅｃａｙＲａｔｅは、フレームＡの減衰率を表す。また、変数Ｎｅｘｔｆｒａｍｅ％ＩｎｔｅｒＣｏｄｅｄは、上述したレコードであり、符号化のベストモードがイントラ符号化ではなくインター符号化であるマクロブロックのパーセンテージの次のフレームに対し保持される。Ｎｅｘｔｆｒａｍｅ％ＩｎｔｅｒＣｏｄｅｄの数が小さい場合、これは、現フレームにより次のフレームの多数のブロックも予測品質が低い（そのため、最後には、イントラ符号化されることになる）ことを示している。
【００５８】
ステップ９０の後のエンコーダ１４による処理は、ステップ９２に進み、ここで変数ＤｉｓｔａｎｃｅＦａｃｔｏｒが設定される。ステップ９２で計算されたＤｉｓｔａｎｃｅＦａｃｔｏｒは、一般に、フレームのブーストの望ましさと実行すべきブーストの相対量を示す。基本的に、以下にさらに詳述するように、これはＢｏｏｓｔＳｃｏｒｅの算定に用いられる乗数である。ブーストの最小化または削除のために動きが早いことが好適となるので、動き量が多ければ多いほど、ＤｉｓｔａｎｃｅＦａｃｔｏｒの値はより小さくなる。同様に、フレーム中の動きが遅いことを示している場合、高いレベルのブーストが望ましいので、これは、ＤｉｓｔａｎｃｅＦａｃｔｏｒのより大きな値により反映される。ステップ９２で、この場合、３００．０で割った変数ＴｈｉｓＦｒａｍｅＡｖｅｒａｇｅＭｏｔｉｏｎＶｅｃｔｏｒＬｅｎｇｔｈに等しくなるように、ＤｉｓｔａｎｃｅＦａｃｔｏｒが設定される。この除数は、変数ＴｈｉｓＦｒａｍｅＡｖｅｒａｇｅＭｏｔｉｏｎＶｅｃｔｏｒＬｅｎｇｔｈが指定される画素単位の数に部分的に基づいている。この場合、その変数ＴｈｉｓＦｒａｍｅＡｖｅｒａｇｅＭｏｔｉｏｎＶｅｃｔｏｒＬｅｎｇｔｈは、１／８画素単位で指定される。変数ＴｈｉｓＦｒａｍｅＡｖｅｒａｇｅＭｏｔｉｏｎＶｅｃｔｏｒＬｅｎｇｔｈは、上述した動きベクトルに関する要約情報から計算された現フレームの平均動きベクトルである。ここで、乗数３００は、約３００／８画素の平均動きベクトルを表し、実験により求めた。これはブーストをフレームに適用するのが望ましくないことを示す高レベルの動きである。上述したように、除数は、変数ＴｈｉｓＦｒａｍｅＡｖｅｒａｇｅＭｏｔｉｏｎＶｅｃｔｏｒＬｅｎｇｔｈが指定される画素単位の数に部分的に基づいている。また、フレームのサイズに基づくこともできる。例えば、正しいブーストが適用されるように、ＨＤは、おそらく大きな除数を必要とするだろう。
【００５９】
次のステップ９４で、変数ＤｉｓｔａｎｃｅＦａｃｔｏｒが、数１．０と比較される。ＤｉｓｔａｎｃｅＦａｃｔｏｒが、１．０以下である場合、ステップ９６で、ＤｉｓｔａｎｃｅＦａｃｔｏｒは、１．０ＤｉｓｔａｎｃｅＦａｃｔｏｒに設定される。そうでなければ、ステップ９８で、ＤｉｓｔａｎｃｅＦａｃｔｏｒはゼロに設定される。ＤｉｓｔａｎｃｅＦａｃｔｏｒの設定に関わらず、ステップ１００に処理が進み、ここでエンコーダ１４は、ＤｉｓｔａｎｃｅＦａｃｔｏｒを変数ＴｈｉｓＦｒａｍｅＤｅｃａｙＲａｔｅと比較する。ステップ１００で、ＤｉｓｔａｎｃｅＦａｃｔｏｒが、ＴｈｉｓＦｒａｍｅＤｅｃａｙＲａｔｅより小さい場合、ステップ１０２に処理が進み、ここで可変ＴｈｉｓＦｒａｍｅＤｅｃａｙＲａｔｅは、ＤｉｓｔａｎｃｅＦａｃｔｏｒ値を取る。次に、ステッ
プ１０４に処理が進む。ステップ１００で、ＤｉｓｔａｎｃｅＦａｃｔｏｒが、ＴｈｉｓＦｒａｍｅＤｅｃａｙＲａｔｅ以上である場合、ステップ１０４に処理が進む。
【００６０】
ステップ１０４で、変数ＤｉｓｔａｎｃｅＦａｃｔｏｒは、変数ＴｈｉｓＦｒａｍｅＤｅｃａｙＲａｔｅにより乗算されたＤｅｃａｙＦａｃｔｏｒの前の値に等しくなるように設定される。ＤｅｃａｙＦａｃｔｏｒは、１．０から始まる値であり、第１のパスでインターコード化された次のフレーム中のブロックの％に応じて、各フレームと共に減少する（変数ＴｈｉｓＦｒａｍｅＤｅｃａｙＲａｔｅにより示したように）。上述したように、Ｎｅｘｔｆｒａｍｅ％ＩｎｔｅｒＣｏｄｅｄ数が少ない場合、これは、現フレームによる次のフレームの多数のブロックの予測品質が低い（そのため、最後には、イントラコード化されることになる）ことを示している。従って、いったんマクロブロックが、シーケンスで一度イントラコード化されると、そのマクロブロックに対し、シーケンスの反対側のフレーム間の予測リンクが、壊れることが想定される。ＤｅｃａｙＦａｃｔｏｒは、どれほど良くこの予測リンクが維持されるのかについて比較的粗い測定基準(metric)を提供する。
【００６１】
一実施形態において、現フレーム中の動きレベルが大きかった場合（第１のパス(first
pass)で測定したように）、ＤｅｃａｙＦａｃｔｏｒも低減し得る。上述したように、ＴｈｉｓＦｒａｍｅＡｖｅｒａｇｅＭｏｔｉｏｎＶｅｃｔｏｒＬｅｎｇｔｈは、この例において、１／８画素単位で指定される。フレームのイントラコード化レベルが高い場合と同様に、非常に高速の動き（大きな動きベクトル）が、シーケンスの両端間の予測リンク品質を低減させることが想定される。
【００６２】
ステップ１０４の後、ステップ１０６に処理が進む。ステップ１０６で、変数ＢｏｏｓｔＳｃｏｒｅが、前のＢｏｏｓｔＳｃｏｒｅと、および、ＩＩＲａｔｉｏ，ＭｕｌｔｉｐｌｉｅｒＶａｌｕｅ，ＤｅｃａｙＦａｃｔｏｒおよびＺｏｏｍＦａｃｔｏｒの乗算結果との合計に更新される。ＩＩＲａｔｉｏとＤｅｃａｙＦａｃｔｏｒは上述したとおりである。ＭｕｌｔｉｐｌｉｅｒＶａｌｕｅは、エンコーダ１４で用いられ、特定のビデオクリップまたはアプリケーション種別のブーストレベルを調節する粗機構(coarse mechanism)を提供する。ＺｏｏｍＦａｃｔｏｒは、内側を向いている動きベクトルの数に対する外側を向いている現フレーム中の動きベクトルの数に基づく値である。ズームアウトしたとき、ブーストを大きくすることが望ましい。逆に、ズームインしたとき、ブーストを小さくすることが望ましい。ＺｏｏｍＦａｃｔｏｒの値を求める１つの方法は、外側を向いた各ベクトルをインクリメントし、内側を向いた各ベクトルをデクリメントするカウンタを設定することである。ベクトルの数で割ったとき、−１と＋１との間の値が結果として得られる。縮尺が０と＋２との間にシフトされるので、その結果、ＺｏｏｍＦａｃｔｏｒの値が０と＋２との間になる。ズームアウトしたとき、ＺｏｏｍＦａｃｔｏｒの値は大きくなり（つまり、この例では１．０より大きい）、逆に、ズームインしたとき、ＺｏｏｍＦａｃｔｏｒの値は小さくなる。ＢｏｏｓｔＳｃｏｒｅは、Ｎ〜Ｎ＋Ｍａｘ＿ｉｎｔｅｒｖａｌまでのフレームの符号化に用いられる構成参照フレームの望ましいブーストを表す。
【００６３】
ステップ１０８で、エンコーダ１４は、次のフレームに進み、処理ループは、最大間隔に達するまで、または一実施形態によれば、ブレークアウト条件セットが満たされるまで継続して実行される。ブレークアウト条件を用いることで、適切な場合、構成参照フレーム更新の間に、エンコーダ１４が、より短い間隔を選択できるようにする。
【００６４】
図８を参照して、ブレークアウト条件を用いる一実施形態を説明する。ブレークアウト条件の存在をチェックする図８のステップは、図７に示す方法の所定の間隔で定期的に実行される。このステップは、所定の時間間隔で、またはステップ１０８でフレームがインクリメントされるときなどの、図７の処理の特定の所定の時間間隔で実行することができ
る。
【００６５】
図８において、ステップ１１０で、フレーム数が、最初に変数Ｍａｘ＿ｉｎｔｅｒｖａｌと比較される。図７に関して説明したように、フレーム数は、現フレーム値Ａである。変数Ｍｉｎ＿ｉｎｔｅｒｖａｌは、連続構成参照フレーム間の予め定義された最小フレーム数である。フレーム数が、この最小値より上でなければ、エンコーダ１４は、ブレークアウトできない、つまりエンコーダ１４は、次の構成参照フレームのより短い間隔を選択することができない。
【００６６】
フレーム数が、Ｍｉｎ＿ｉｎｔｅｒｖａｌの値より大きければ、残りのブレークアウト条件がチェックされる。ブレークアウト条件が満たされ、ブレークアウトが起こらなければならない、つまり図７の処理が、現フレームＡで終了しなければならないことを示すために、ブレークアウト条件の１つだけが示されればよく、フレームのＭａｘ＿ｉｎｔｅｒｖａｌの数を超える構成参照フレームの使用間隔を短縮する。例えば、Ｍａｘ＿ｉｎｔｅｒｖａｌは、３０フレームで、Ｍｉｎ＿ｉｎｔｅｒｖａｌは、４フレームである。フレームレートが低くなればなるほど、Ｍａｘ＿ｉｎｔｅｒｖａｌの値は、小さくなければならない。これらのステップは、特定の順序で示されているが、解析の実際の順序には関係がない。
【００６７】
最初に、ステップ１１２で、変数ＭｙＲａｔｉｏＡｃｃｕｍｕｌａｔｏｒの値がチェックされる。ＭｙＲａｔｉｏＡｃｃｕｍｕｌａｔｏｒは、動きの特徴について第１のパスで収集された情報を用いて求められる値である。ＭｙＲａｔｉｏＡｃｃｕｍｕｌａｔｏｒは、各フレームの平均絶対動きベクトルを平均動きベクトルで割った結果を累積し、基本的に、フレーム中の動きのランダムさの測度である。大きな値は、ズームの場合にそうであるように、例えば、画像の反対側のベクトルが反対方向を向いている場合に、フレームの正と負のベクトルが互いに相殺されたことを示している。１．０に近づく値は、全ベクトルが大まかに同じ方向を向いていることを示している（例えば、パンのときのように）。そのような場合において、新しい構成参照フレームは必要でない。
【００６８】
ステップ１１２で、可変ＭｙＲａｔｉｏＡｃｃｕｍｕｌａｔｏｒが、６０より大きければ、ステップ１１４で、ブレークアウト条件が満たされる。値が６０であることは、この場合、構成参照フレームをより頻繁に生成させることの望ましさを示している。値６０は、ほんの一例であり、上述したような（例えば、フレームサイズと動きベクトルの長さ）などの原フレーム(source frame)の特徴に基づいて、他の値を用いることもできる。
【００６９】
ステップ１１２で、可変ＭｙＲａｔｉｏＡｃｃｕｍｕｌａｔｏｒが、６０以下であれば、残りのブレークアウト条件を解析するために、ステップ１１６に進み、ここで、変数ＡｂｓＭｙＩｎＯｕｔＡｃｃｕｍｕｌａｔｏｒがチェックされる。ＡｂｓＭｙＩｎＯｕｔＡｃｃｕｍｕｌａｔｏｒもまた、動きの特徴についての第１のパスで収集した情報を用いて求められた値である。より具体的に言うと、ＡｂｓＭｙＩｎＯｕｔＡｃｃｕｍｕｌａｔｏｒは、画像の中心方向を向いているベクトルと比較して、画像の中心から離れた方向を向いているベクトルのバランスを示しており、ＺｏｏｍＦａｃｔｏｒに関して説明したものと同様に計算できる。これは、ズームイン条件からズームアウト条件を区別するのに役立つ。ステップ１１６で、変数ＡｂｓＭｙＩｎＯｕｔＡｃｃｕｍｕｌａｔｏｒの値が２より大きければ、ステップ１１４で、ブレークアウト条件が満たされ、新たな構成参照フレームが望ましくなる。そうでなければ、ステップ１１８に処理が進み、最後のブレークアウト条件をチェックする。値２は、実験で求められた閾値であり、フレームサイズや動きベクトルの長さなどの特徴に基づいて変化する。
【００７０】
ステップ１１８で、ＢｏｏｓｔＳｃｏｒｅが、前のＢｏｏｓｔＳｃｏｒｅ（Ｐｒｅｖｉ
ｏｕｓＢｏｏｓｔＳｃｏｒｅ）と比較される。ＢｏｏｓｔＳｃｏｒｅが、ＰｒｅｖｉｏｕｓＢｏｏｓｔＳｃｏｒｅ＋２より小さければ、あるフレームから次のフレームまでのブーストスコアの増加率が、閾値量未満に低下する状況が起こる。そのため、ステップ１１８で、ＢｏｏｓｔＳｃｏｒｅが、ＰｒｅｖｉｏｕｓＢｏｏｓｔＳｃｏｒｅ＋２未満であれば、ステップ１１４で、ブレークアウト条件が満たされ、新たな構成参照フレームが望ましくなる。そうでなければ、全ブレークアウト条件がチェックされ、ブレークアウト条件処理が終了する。図７の処理が再開する。
【００７１】
ステップ１１８での値２．０は、図７で判断されたように、前の構成参照フレームと後続の参照フレームとの間の間隔が、非常に大きくなる（つまり、前の構成参照フレームを用いて、非常に多くのフレームが符号化されている）ように、シーケンスの両端の予測品質が、最小の容認可能なレベル以下に低下して、前の構成参照フレームと後続の参照フレームとの間の間隔が大きすぎる（すなわち、前の参照構成フレームを用いて符号化されたフレームが多すぎる）ことを示す指標である。値２．０は、現フレームの図７のステップ１１６で説明した、ＩＩＲａｔｉｏ＊ＭｕｌｔｉｐｌｉｅｒＶａｌｕｅ＊ＤｅｃａｙＦａｃｔｏｒ＊ＺｏｏｍＦａｃｔｏｒの計算に対応し、その計算の変数の所与の範囲の実験に基づいて求められる。
【００７２】
図７，８に関して説明したアルゴリズムは、Ｍｉｎ＿ｉｎｔｅｒｖａｌフレームとＭａｘ＿ｉｎｔｅｒｖａｌフレーム間の推奨更新間隔を示す。また、これは、今回の更新の推奨ビット割当て（または、ビットブースト）を示す。ここで述べた例において、推奨ビット割当ては、１００＊ＢｏｏｓｔＳｃｏｒｅ／１６であり、これは百分率ビット割当てへの正規化である。換言すれば、ＢｏｏｓｔＳｃｏｒｅは、利用可能なビットの割当てに用いられる構成参照フレームの各々に対する相対値であり、メモリ、構成参照フレーム数等に依存する。
【００７３】
ところが、図７，８において決定された結果に関わらず、上述したような、構成参照フレームの更新が適切でないかもしれない状況も相変わらず残っている。
【００７４】
一実施形態において、更新された構成参照フレームが、望ましいか否か判断するのに以下の基準が用いられる。シーケンスのＢｏｏｓｔＳｃｏｒｅが、閾値量を超えて（構成参照フレームがフレームシーケンスと良好な相関を示す）、シーケンス中のフレームのＤｅｃａｙＦａｃｔｏｒの平均値が閾値を超えて（シーケンスにわたり、良好な予測を示す）、かつ高速ズームが検出されなかった（特に、画像データに画像が残っているズーム条件）場合は、更新するのが望ましい。これらの基準は、実行されたとき、新しい構成参照フレームが、図８の解析に応じて示される各ループの後で、好適にチェックされる。これらの条件の１つが、満たされないと、次の構成参照フレームの処理を継続する。より具体的に言うと、前の構成参照フレームを用いて現フレームが符号化され、図７の計算が次のフレームで再開し、図８の条件が再度満たされて以前の間隔で新しい構成参照フレームの望ましさが示されない限り、Ｍａｘ＿ｉｎｔｅｒｖａｌまで処理が継続する。
【００７５】
妥当性、構成参照フレームの間隔とブースト、または類似するものを判断するために上記で定義したアルゴリズムは、双方向予測をサポートしているエンコーダ／デコーダにおいて、連続Ｐフフレーム間のＢフレームの最適数、およびＰフレームとＢフレーム間のビット分布を定義するのに用いることができることに注意されたい。
【００７６】
構成参照フレームは、エンドユーザに表示される必要がなく（つまり、最終的な復号動画出力に含む必要がない）、かつ実際の画像に対応させる必要もない。そうであるから、構成参照フレームのサイズと構成は任意であり、エンコーダ１４によりプログラムで決定して、符号化品質を最適化できる。
【００７７】
１つの利点が、構成参照フレームを生成するのに用いた計算を再実行する必要がないことである。よって、計算コストが高い処理は、エンコーダ１４を用いて、構成参照フレームを取得することができるが、この処理はデコーダ２１で実行する必要がないので、より高速、より軽量で、より効率的な復号化が可能になる。
【００７８】
本発明の理解を容易にするため、上記の実施形態を説明したが、本発明を限定するものではない。それどころか、本発明は、添付クレームの範囲内に含まれる様々な変更例と等価な構成を網羅することを意図している。ここで範囲とは、上記の全ての変更例と法により許されている等価な構成を包合するために、最も広い解釈に一致する。
【図１】
0005362831.tif 000002
【図２】
0005362831.tif 000003
【図３】
0005362831.tif 000004
【図４】
0005362831.tif 000005
【図５】
0005362831.tif 000006
【図６】
0005362831.tif 000007
【図７】
0005362831.tif 000008
【図８】
0005362831.tif 000009