この開示は、デジタルビデオ符号化および復号化に関し、さらに詳細には、ビデオフレームの補間のための技術に関する。
デジタルビデオ能力は、デジタル・テレビ、デジタル直接放送システム、無線通信装置、携帯情報端末(PDA)、ラップトップ・コンピュータ、デスクトップ・コンピュータ、ビデオゲーム・コンソール、デジタル・カメラ、デジタル・レコーディング装置、セルラー又は衛星ラジオ電話、などを含む広範囲の装置に組み入れることができる。デジタルビデオ装置は、ビデオシーケンスを処理又は送信する場合に従来のアナログビデオシステムに対して著しい改良を提供することができる。
異なるビデオ符号化基準は、デジタルビデオ・シーケンスの符号化のために確立された。例えば、ムービング・ピクチャ・エキスパーツ・グループ(MPEG)は、MPEG-1、MPEG2およびMPEG-4を含む多くの標準を開発した。他の例は、国際電気通信連合(ITU)―T H.263標準、及びITU-T H.264標準およびそれのカウンターパート、ISO/IEC MPEG-4、パート10(すなわちアドバンスドビデオコーディング)(AVC)を含む。これらのビデオ符号化標準は、圧縮したやり方でデータを符号化することによりビデオシーケンスの改善された伝達効率をサポートする。
様々なビデオ符号化標準は、フレーム間圧縮を提供するためにテンポラル又はインターフレーム相関関係(temporal or Inter-frame correlation)と呼ばれる、連続のビデオフレーム間の類似点を利用するビデオ符号化技術をサポートする。インターフレーム圧縮技術は、ビデオフレームのピクセルベースの表現を動き表現に変換することにより、フレームにわたるデータ冗長性を有効に使う(exploit)。インターフレーム技術を使用して符号化されたフレームは、P(「予測的」)フレームあるいはB(「双方向」)フレームと呼ばれる。I(「intra」)フレームと呼ばれるいくつかのフレームは、非予測的である空間的圧縮を使用して符号化される。
低帯域幅要件を満たすために、テレフォニ又はビデオ・ストリーミングのようないくつかのビデオアプリケーションは、フレーム・スキッピング(frame skipping)を用いて、より低いフレームレートでビデオを符号化することにより、ビット・レートを低減する。不都合なことには、低減されたフレームレート・ビデオは、動きのぎくしゃく性の形のアーチファクト(artifacts in the form of motion jerkiness)を生ずる可能性がある。したがって、へフレームレート・アップ・変換(FRUC)を上として知られているフレーム補間は、スキップされたフレームの内容を補間し、かつそれによって復号器側で増加したフレームレートの影響を提供するために復号器で使用することができる。
一般に、この開示は、ビデオフレームを補間するための復号技術に関する。特に、この開示の技術は、1つ又は複数のビデオフレームに関連した情報の分析に基づいたフレーム補間動作を動的に調節するために特に使用されてもよい。この開示に記述された動的なフレーム補間調節技術は、フレームのより効率的でより効果的な復号を生ずることができる。
1つの態様においては、デジタルビデオ・データを処理するための方法は、少なくとも1つのビデオフレームに関連した情報を分析すること、および情報の分析に基づいたフレーム補間動作を動的に調節することを備える。
別の態様では、デジタルビデオ・データを処理するための装置は、少なくとも1つのビデオフレームに関連した情報を分析する分析モジュール、および情報の分析に基づいてフレーム補間動作を動的に調節する調節モジュールを備える。
さらなる態様では、デジタル・ビデオ・データを処理するための装置は、ビデオフレームに関連した情報を分析するための手段、および情報の分析に基づいてフレーム補間動作を動的に調節するための手段を備える。
さらに他の態様では、デジタルビデオ・データを処理するためのコンピュータ・プログラム製品、少なくとも1台のコンピュータに少なくとも1つのビデオフレームに関連した情報を分析させ、そして、情報の分析に基づいてフレーム補間動作を調節させるための符号を備えたコンピュータ読取り可能な媒体を備える。
他の態様では、デジタルビデオ・データを処理するためのプロセッサは、少なくとも1つのビデオフレームに関連した情報を分析し、かつ情報の分析に基づいたフレーム補間動作を動的に調節するのに適合している。
この開示に記述された技術は、ハードウェア、ソフトウェア、ファームウェアあるいはそれらの任意の組合せで実装されてもよい。ソフトウェアで実装される場合には、そのソフトウェアはコンピュータで実行されてもよい。ソフトウェアは、命令、プログラム・コード、等として初期的にに記憶されてもよい。従って、この開示はまた、コンピュータ読取り可能媒体を含むデジタルビデオ符号化のためのコンピュータ・プログラム製品を意図する。この場合、コンピュータ読取り可能媒体は、この開示に従ってコンピュータに技術及び機能を実行させるためにコードを備える。
この開示の1つ又は複数の態様の詳細は、添付の図面及び下記の説明で提示される。この開示の他の特徴、目的および利点は、説明および図面、および請求項から明白になる。
この開示に従って適応フレーム補間技術を使用する、ビデオ符号化および復号化システムを例証するブロック図である。
ビデオ復号器で使用される例示的な補間復号器モジュールを例証するブロック図である。
1つ又は複数のビデオフレームの内容、1つ又は複数のビデオフレームの間の運動フィールドの規則性、1つ又は複数のビデオフレームに関連した符号化複雑性、あるいはそれらの組合せの分析に基づいてフレーム補間動作を動的に調節する補間復号器モジュールの例示的な動作を例証する流れ図である。
フレーム情報テーブル(FIT)の分析に基づいてフレーム補間動作を動的に調節する補間復号器モジュールの例示的な動作を例証する流れ図である。
1つ又は複数のビデオフレーム内の移動オブジェクトの分析に基づいてフレーム補間動作を調節する補間復号器モジュールの例示的な動作を例証する流れ図である。
フレームの移動オブジェクトを検出するためにフレームのピクセルのブロックに関連したブロック情報を分析する移動オブジェクト検出モジュールの例示的な動作を例証する流れ図である。
補間を制御するための例示的なモジュールを例証するブロック図である。
詳細な説明
開示の種々の態様が下記に述べられる。
ここでの教示は種々様々の形式で具体化されうるものであり、そして、ここに開示された特定の構成または機能は単に典型例にすぎないことが明らかであろう。ここでの教示に基づいて、当業者は、ここに開示された態様が他の態様と無関係に実装されこと、およびこれらの態様の2つ以上が様々な方法で組み合わせられてもよいことを認識するべきである。例えば、ここに述べられた態様のうちの任意の個数を用いて、装置は実装されてよく、あるいは、方法は実施されてよい。さらに、ここに述べられた態様の1つ以上に加えてまたはそれに代えて他の構成または機能性を用いて、そのような装置は実装されてよく、あるいはそのような方法は実施されてよい。したがって、フレームをより効率的にかつ効果的に復号するために、ここに開示された動的フレーム補間調節技術の1つまたはそれより多くを利用する装置が実装されてよく、あるいは方法が実施されてよい。
一般に、この開示はビデオフレームの補間のために復号技術に関する。特に、この開示の技術は、1つ又は複数のビデオフレームに関連した情報の分析に基づいてフレーム補間動作を動的に調節するために使用されてもよい。この開示に記述された動的フレーム補間調節技術は、フレームのより効率的でより効果的な復号をもたらす。
補間復号器モジュールは、例えば、1つ又は複数の基準ビデオフレームに基づいたビデオフレームであってよい。補間復号器モジュールは、符号器からの当初の意図したフレームレートをアップコンバート(up-convert)するためにビデオフレームを補間してもよい。あるいは、補間復号器モジュールは、低減されたフレームレートでビデオ情報を符号化するためにビデオ符号器によってスキップされた1つ又は複数のビデオフレームを挿入するためにビデオフレームを補間してもよい。補間復号器モジュールは、多くの補間技術のうちのどれでも使用して、例えば、動き補償されたフレーム補間、フレーム・リピート(frame repeat)、またはフレーム平均化を用いて、ビデオフレームを補間してもよい。この開示の技術によれば、補間復号器モジュールは、1つ又は複数のビデオフレームに関連した情報を分析し、そして、その分析に基づいてフレーム補間動作を動的に調節する。
補間復号器モジュールは、例えば、1つ又は複数のビデオフレームの内容、2つ以上のビデオフレーム間の動き場(motion field)の規則性、あるいはそれらの組合せを分析してもよい。1つの実例では、補間復号器モジュールは、1つ又は複数の基準フレームに関連した情報を分析してもよい。あるいは、又はさらに、補間復号器モジュールは、スキップされるフレームのように補間されるべきフレームに関連した情報を分析してもよい。補間復号器モジュールは、1つの期間において受信される複数のフレーム、例えば、1秒の期間において受信されるフレームに対する情報を分析してもよい。
補間復号器モジュールは、1つ又は複数のビデオフレームに関連した情報の分析に基づいてフレーム補間動作を動的に調節する。
補間復号器モジュールは、複数の異なる方法でフレーム補間動作を調節してもよい。1つの例として、補間復号器モジュールは、動き補償フレーム補間を可能にするべきか不能にするべきかどうかを選択してもよい。動き補償フレーム補間が無効にされると、補間復号器モジュールは、フレームリピートまたはフレーム平均動作のような異なるフレーム補間動作を選択してもよい。他の例として、補間復号器モジュールは、分析に基づいた動き補償フレーム補間で使用されるビデオフレーム予測モードを選択してもよい。さらに次の例では、補間復号器モジュールは、分析に基づいたフレーム補間のために異なる閾値を割り当ててもよい。
図1は、この開示に従って適応フレーム補間技術を使用するビデオ符号化および復号化システム10を例証するブロック図である。図1に示されるように、システム10は、送信チャネル15によって接続しているビデオ符号器12およびビデオ復号器14を含んでいる。ビデオシーケンスのような符号化されたマルチメディア・シーケンスは、送信チャネル15によって符号器12から復号器14に送信されてもよい。送信チャネル15は、有線または無線の媒体であってよい。システム10は、例えば、ビデオ・テレフォニのための双方向ビデオ送信をサポートしてもよい。従って、チャネル15の両端部に、相互符号化および復号化コンポーネントが設けられてもよい。あるいは、システム10は、放送をサポートしてもよい。また、ビデオ符号器12は、有線または無線媒体によって1または複数の加入者にビデオを放送する又は流す(streams)ビデオ放送装置の一部を形成してもよい。種々の態様において、ビデオ符号器12およびビデオ復号器14は、デジタル・テレビのようなビデオ通信装置、無線通信装置、ゲーミング装置、携帯情報端末(PDA)、ラップトップ・コンピュータ又はデスクトップ・コンピュータ、iPod(登録商標)で販売されているもののようなデジタル音楽およびビデオ装置、あるいは無線電話のようなビデオ通信装置内に具体化されてもよい、のように、セルラー、衛星あるいは地上ベースの無線電話のような無線電話、あるいはビデオ・ストリーミング、ビデオ・テレフォニあるいは両方のために装備された他の無線モバイル端末内で具現されてもよい。
いくつかの態様では、双方向通信については、システム10は、プロトコル(SIP)、ITU-T H.323標準、ITU-T H.324標準あるいは他の標準に従って、ビデオ・テレフォニ又はビデオ・ストリーミングをサポートしてもよい。ビデオ符号器12は、MPEG2、MPEG-4、ITU-T H.263又はITU-T H.264のような画像圧縮標準に従って、符号化されたビデオ・データを生成する。図1に示されていないが、ビデオ符号器12およびビデオ復号器14は、オーディオ符号器および復号器とそれぞれ統合されてよく、また、共通のデータ・ストリーム又は個別のデータ・ストリームにおいてオーディオおよびビデオの両方の符号化を扱うために、適切なマルチプレクサ・デマルチプレクサ(MUX-DEMUX)ユニット、あるいは他のハードウェアおよびソフトウェアを含んでいてもよい。適用可能な場合には、MUX-DEMUXユニットは、ITU H.223マルチプレクサ・プロトコル、あるいはユーザー・データグラム・プロトコル(UDP)のような他のプロトコルに一致してもよい。いくつかの態様では、この開示は、フォワード・リンク・オンリ(FLO)エア・インタフェース仕様書、技術的な標準TIA-1099(「FLO明細書」)として公表されるべき「地上モバイル・マルチメデイア・マルチブロードキャストのためのフォワード・リンク・オンリ・エア・インタフェース仕様書("Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast")を使用して、地上モバイル・マチメデイア・マルチキャスト(TM3)システムにおいてリアルタイム・ビデオサービスを配信するためのエンハンスドH.264ビデオ符号化に対する適用を意図する。しかし、この開示に記述されるフレーム補間技術は、任意特定のタイプの放送、マルチキャストシステムあるいはポイント・ツー・ポイント方式に制限されない。
ビデオ符号器12およびビデオ復号器14は、1または複数のプロセッサ、デジタル信号プロセサ(DSPs)、特定用途向け集積回路(ASICs)、フィールドプログラム可能ゲートアレイ(FPGAs)、デイスクリート・ロジック(discrete logic)、ソフトウェア、ハードウェア、ファームウェアあるいはそれらの任意の組合せとして実装されてもよい。ビデオ符号器12およびビデオ復号器14の例示コンポーネントは、1つ又は複数の符号器あるいは復号器に含まれていてもよく、そのどちらも、各加入者装置、放送装置、サーバ等における組合せ符号器/復号器(CODEC)の一部として統合されてもよい。さらに、ビデオ符号器12およびビデオ復号器14は、適用可能なものとして、高周波(RF)無線コンポーネントおよびアンテナを含む、符号化されたビデオの送信および受信のための、適切な変調、復調、周波数変換、フィルタリング、増幅器コンポーネントを含んでもよい。しかし、図示を容易にするために、そのようなコンポーネントは図1に示されない。
符号器12は、インプット・マルチメディア・シーケンス17を受け取り、そしてマルチメディア・シーケンス17を選択的に符号化する。マルチメディア・シーケンス17は、ビデオ・ソース(図示なし)によってキャプチャされるライブのリアルタイム・ビデオあるいはビデオ・オーディオ・シーケンスであってもよい。あるいは、マルチメディア・シーケンスは、あらかじめ記録され格納されたビデオあるいはビデオ・オーディオ・シーケンスであってもよい。いずれの場合も、符号器12は、複数のビデオフレームを符号化しそして復号器14へ送信する。複数のビデオフレームは、他のフレームに関しないで符号化される1つ又は複数のイントラ(「I」)フレーム、一時的に先行するフレームに関して符号化される予測(「P」)フレーム、一時的に先行する及び将来のフレームに関して符号化される双方向(「B」)フレーム、あるいはそれらの組合せ含んでもよい。符号化されたフレームは、ビデオ復号器14がビデオ情報のフレームを復号しかつ表示することを可能にするために十分な情報を含む。符号器12は、1つ又は複数の動きベクトル、ピクセルの各ブロックを符号化するために用いられる符号化モード、ピクセルの各ブロックのサブパーテイション(sub-partitions)、ピクセルの各ブロック内の係数、ピクセルの各ブロック内の非ゼロ(non-zero)係数の数、スキップ又は直接ブロック数、等を含むようにフレームを符号化してもよい。
この開示のいくつかの態様では、ビデオ符号器12は、送信チャネル15を横切って帯域幅を保存するためにフレーム・スキッピングを使用して、低減されたフレームレートでビデオシーケンス14に含まれるビデオ情報を符号化してもよい。低減されたフレームレートでビデオ情報を符号化するために、符号器12は、送信チャネル15を横切って帯域幅節約のための符号化された情報の全体量を低減するように設計されたフレーム・スキッピング機能に従って特定のフレーム(スキップされた(「S」)フレームと呼ばれる)をスキップしてもよい。言いかえれば、符号器12は実際にはSフレームを符号化せず送信しない。代わりに、ビデオ復号器14は、ビデオ情報のフレームを生成するために、ここでは基準フレームと呼ばれる、送信されたフレームの1つ又はそれより多くを使用して、スキップされたフレームを補間する。この補間プロセスは、復号器15によって復号されたビデオの見かけのフレームレートを増加させる効果があり、しばしばフレームレート・アップコンバーション(FRUC)と呼ばれる。
図1の例では、ビデオ符号器12は、フレーム処理モジュール20、標準符号器モジュール16および補間符号化モジュール18を含む。フレーム処理モジュール20は、フレームF1、F2およびF3のようなビデオ情報の入来フレームを処理するように構成される。入来フレームF1、F2およびF3の分析に基づいて、フレーム処理モジュール20は、入来フレームを符号化するべきかスキップするべきかどうか決定する。図1の例では、F2はスキップされるフレームを表わし、一方、フレームF1およびF3は、符号化されてビデオ復号器14に送信される先行及び後続のフレームを表わしている。図1に例示された例では、フレーム処理モジュール20は、1フレームおきにスキップするが、フレーム処理モジュール20は、スキップするように構成されてもよい、n番目のフレーム毎にスキップするように、あるいはスキップされるフレームを動的に選択するために適用される動的スキップ基準を含むように構成されてもよい。符号化される入来フレームについては、フレーム処理モジュール20はまた、Iフレーム、PフレームあるいはBフレームとしてフレームを符号化するべきかどうか決定するように構成されてもよい。
フレーム処理モジュール20は、1つのフレームをピクセルのN個のブロックに分割し、かつピクセルのブロックのそれぞれを別々に符号化するようにさらに構成されてもよい。一例として、フレーム処理装置20は、フレームをピクセルの複数の16x16ブロックに分割してもよい。「マクロブロック」(”macroblocks”)と呼ばれることが多いピクセルのいくつかのブロックは、ピクセルのサブブロックのグループ化を含む。一例として、16x16マクロブロックは4つの8x8サブブロックを含んでもよい。サブブロックは別々に符号化されてもよい。例えば、H.264標準は、様々な異なるサイズ、例えば、16x16、16x8、8x16、8x8、4x4、8x4、及び4x8を有するブロックの符号化を許容する。このようにして、フレーム処理モジュール20は、フレームをピクセルのいくつかのブロックに分割し、そして、それらのブロックのそれぞれをI-フレーム、P-フレームあるいはBフレームとして符号化すべきかどうかを決定するように構成されてもよい。
標準符号化モジュール16は、例えば、フレームF1及びF3を符号化するためのフレーム処理モジュール20によって選択されたフレーム又はそのフレーム中のピクセルのブロックを符号化するために、動き予測および動き補償のような標準符号化技術を適用する。標準符号化モジュール16はまた、フレーム又はピクセルのブロックのうちのいくつかに対する空間的評価及びイントラ予測のような非動き符号化技術(non-motion coding techniques)を適用してもよい。標準予測ベース技術によれば、標準符号化モジュール16は、エントロピー符号化、スキャン、量子化、変換及びたぶんデブロック・フィルタリング(deblock filtering)のための様々なユニットを含んでもよい。
いくつかの態様では、ビデオ符号器12はさらに補間符号器モジュール18を含んでいてもよい。補間符号器モジュール18は、復号器14がスキップされたフレームを補間するのを支援するためにスキップされたフレームに関連した情報を生成し符号化してもよい。補間符号器モジュール18は、例えば、1つ又は複数のスキップされたフレーム又はそのスキップされたフレームにおけるピクセルの1つ又は複数のブロックに対する動き情報、スキップされたフレームにおけるブロックを符号化するために使用される予測モードを識別する情報、等を生成し、送信してもよい。補間符号器モジュール18は、専用フレームで、あるいはフレームF1あるいはF3のような1つ又は複数の送信されたビデオフレームに埋め込まれていた情報としてスキップされたフレームに関連した符号化された情報をビデオ復号器14へ送信してもよい。このようにして、ビデオ符号器12は、ビデオ復号器14がスキップされたフレームを補間するのを支援するためにスキップされたフレームに関連した情報を生成するおよび送信するたるように、いくつかの態様では構成されてもよい。しかし、この開示に記述された技術は、ビデオ符号器12からの援助を必要としなくてもよい。したがって、いくつかの態様では、ビデオ符号器12は補間符号器モジュール18を含んでいなくてもよい。この場合、ビデオ復号器14は、ビデオ符号器12の援助なしに補間を行なう。
ビデオ復号器14は、ビデオ符号器12から符号化されたビデオフレームを受け取り、ビデオフレームを復号する。ビデオ復号器14は、標準復号器モジュール22および補間復号器モジュール24を含んでいる。標準復号器モジュール22および補間復号器モジュール24は、個別のコンポーネントである必要がなく、その代り、共有ベースで、複数のコンポーネントを利用して、共通のCODECの内の個別のプロセスとして統合されてもよい。標準復号器モジュール22は、符号器12によって送信される、フレームF1およびF3のような各符号化されたフレームを復号するために標準復号技術を適用する。上に記述されたように、各フレームにおいて符号化された情報は、標準復号器モジュール22がビデオ情報のフレームを復号しかつ表示することを可能にするのに十分である。
補間復号器モジュール24は、ビデオ・データの1つ又は複数の基準フレームに基づいてビデオフレームを補間する。言いかえれば、補間復号器モジュール24は、ビデオフレームを補間するために、フレームF1、F3あるいは両方のような1つ又は複数の基準ビデオフレームに関連した符号化された情報を使用してもよい。上述のように、補間復号器モジュール24は、帯域幅を節約するために符号器12によってスキップされた、フレームF2のようなビデオフレームを補間してもよい。あるいは、補間復号器モジュール24は、ビデオ情報のフレームレートをアップコンバード(up-convert)するために1つ又は複数のビデオフレームを挿入するようにビデオフレームを補間してもよい。補間復号器モジュール24は、多くの補間技術のうちのどれでも使用して、ビデオフレームを補間してもよい。例えば、補間復号器モジュール24は、フレームリピート動作、フレーム平均化動作、動き補償フレーム補間動作または他のフレーム補間動作を用いてビデオフレームを補間してもよい。
この開示の技術によれば、補間復号器モジュール24は、少なくとも1つのビデオフレームに関連した情報を分析し、そしてその分析に基づいてフレーム補間を動的に調節する。補間復号器モジュール24は、例えば、1つ又は複数のビデオフレームの内容、2つ以上のビデオフレーム間の動き場の規則性、1つ又は複数のビデオフレームに関連した符号化複雑性、あるいはそれらの組合せを分析してもよい。1つの例では、補間復号器モジュール24は、ビデオフレームを補間するために使用される1つ又は複数の基準フレーム(例えば、F1、F3あるいは両方)に関連した情報を分析してもよい。あるいは又はさらに、補間復号器モジュール24は、スキップされたビデオフレームのような補間されるべきフレームに関連した情報を分析してもよい。補間復号器モジュール24はまた、1つの期間にわたって受信される複数のフレーム、例えば1秒の間隔にわたって受信されるフレームに対する情報を分析してもよい。1つ又は複数のビデオフレームに関連した情報は、符号器12から受け取られたビデオフレーム内で符号化されてもよい。あるいは、補間復号器モジュール24は、ビデオフレームに関連した情報の少なくとも1つの部分を生成してもよい。
補間復号器モジュール24は、1つ又は複数のビデオフレームに関連した情報の分析に基づいてフレーム補間動作を動的に調節する。補間復号器モジュール24は、複数の異なる方法でフレーム補間動作を調節してもよい。一例として、補間復号器モジュール24は、動き補償フレーム補間を有効にすべきか又は無効にすべきかを可能にするべきか選択してもよい。動き補償フレーム補間が無効にされると、補間復号器モジュール24は、フレーム・リピート又はフレーム平均化動作のような異なるフレーム補間動作を追加的に選択してもよい。他の例として、補間復号器モジュール24は、分析に基づいてフレーム補間に使用されるビデオフレーム予測モードを選択してもよい。さらに他の例では、補間復号器モジュール24は、分析に基づいてフレーム補間のために異なる閾値を割り当ててもよい。
上記の技術は個々に実装されてもよく、あるいは、そのような技術の2つ以上、またはその技術の全てが補間復号器モジュール24において一緒に実装されてもよい。多くの他のエレメントが符号化および復号化システム10に含まれてもよいが、図示の簡単かつ容易のために、図1には具体的には示されていない。図1に例示されたアーキテクチャーは、ここに記述された技術が様々な他のアーキテクチャーで実装されてもよいから、単に例示である。さらに、図1に例証された特徴は、ハードウェア、ソフトウェア・コンポーネント、あるいはそれらの組合せの任意適当な組合せによって実現されてもよい。スキップされたビデオフレームを補間する文脈に記述されたが、この開示の技術はより高品質のビデオフレームを生成するために低減された品質で符号化されたビデオフレームを補間するために利用されてもよい。
図2は、図1のビデオ復号器14のようなビデオ復号器で使用される例示的な補間復号器モジュール24を例示するブロック図である。補間復号器モジュール24は、補間されたフレームを生成するために一緒に動作する補間モジュール32、補間制御モジュール34、フレーム情報テーブル(FIT)モジュール36およびフレーム情報生成モジュール37(図2において「フレーム情報生成モジュール」と表示された)を含む。上述のように、補間復号器モジュール24は、少なくとも1つのビデオフレームに関連した情報を分析し、そして、この開示に記述された技術の1つ以上に従って情報の分析に基づいてフレーム補間動作を動的に調節する。
補間モジュール32は、もう1つの基準フレームに基づいてビデオフレームを補間する。例えば、補間モジュール32は、先行基準フレーム、後続の基準フレーム、先行及び後続の基準フレームの両方、又は2つの基準フレームより多くに関連したフレーム情報に基づいてビデオフレームを補間してもよい。補間モジュール32は、フレーム・リピート動作、フレーム平均化動作、動き補償フレーム補間動作、又はそれらの組合せのような多数の補間技術のうちの任意のものを用いてフレームを補間してもよい。動き補償フレーム補間動作は、バイリニア補間、バイキュービック補間、最近傍補間あるいは他の技術のような様々な補間技術のうちの何かを含んでいてもよい。上述のように、補間モジュール32は、ブロック・ベース・モードでフレームを補間するように構成されてもよい。言いかえれば、補間モジュール32は、フレームをピクセルの複数のブロックに分割し、1つ又は複数の基準フレームにおけるピクセルの対応するブロックに関連した情報に基づいてピクセルのブロックのそれぞれを別々に補間してもよい。ブロック内のピクセルは、ピクセル・ドメインの中で表わされていているが、ブロックは変換ドメインの中で表わされてもよい。
この開示の技術によれば、補間制御モジュール34は、少なくとも1つのビデオフレームに関連した情報を分析し、そして、その分析に基づいて補間モジュール32のフレーム補間動作を調節する。図2に示された例では、補間制御モジュール34は、少なくとも1つのビデオフレームに関連した情報を分析する分析モジュール42、およびその分析に基づいて補間モジュール32のフレーム補間動作を動的に調節する調節モジュール44を含んでいる。補間制御モジュール34は、1つ又は複数の基準フレームに関連した情報を分析してもよい。あるいは又はさらに、補間制御モジュール34は、スキップされたフレームのような補間されるべきフレームに関連した情報を分析してもよい。補間制御モジュール34はまた、特定の期間にわたって受信される複数のフレーム、例えば、1秒の間隔にわたって受信されるフレームに対する情報を分析してもよい。
1つ又は複数のビデオフレームに関連した情報は、符号器12から受け取られたビデオフレーム内で符号化されてもよい。あるいは、フレーム情報生成モジュール37は、フレームに関連した情報の少なくとも1つの部分を生成してもよい。1つの例として、フレーム情報生成モジュールは、従来の動き推定技法を使用して、1つ又は複数の基準フレームに対する動きを推定してもよい。他の例として、フレーム情報生成モジュール37は、補間されるビデオフレームに隣接した1つ又は複数の基準フレームに関連した動き情報を用いて、補間されるべきフレーム対する動き情報、例えば、動きベクトル(MV)を生成してもよい。
フレーム情報生成モジュール37は、フレーム内の1つ又は複数の移動オブジェクトに関連した情報を生成する移動オブジェクト検出モジュール40を含んでいてもよい。特に、移動オブジェクト検出モジュール40を移動させることは、フレーム内の1つ又は複数の移動オブジェクトを検出するためにフレームの中でピクセルの複数のブロックに関連した動きベクトルを特に分析する。オブジェクト検出モジュール40を移動させることは、例えば、フレーム中の1つ又は複数の移動オブジェクトを識別するために実質的に並進行ベクトルを持っている、地域内のピクセルのブロックをグループ化してもよい。さらに、オブジェクト検出モジュール40を移動させることは、検出された移動オブジェクトの各々に関連した情報を生成してもよい。例えば、移動オブジェクト検出モジュール40は、フレーム内の移動オブジェクトのサイズについて記述する情報、フレーム内の移動オブジェクトの数、検出された移動オブジェクトに関連した動き情報、等を生成してもよい。
この開示の1つの態様では、補間制御モジュール34は、1つ又は複数のビデオフレームの内容、1つ又は複数のビデオフレーム間の動き場の規則性、1つ又は複数のビデオフレームに関連した符号化複雑性、あるいはそれらの組合せを分析する。補間制御モジュール34は、例えば、フレームの内容を決定するために、フレーム内の動き、フレーム内のオブジェクトのテクスチャ、フレームにおけるビデオのタイプ、等を分析してもよい。特に、補間制御モジュール34は、フレームの内容を決定するために、フレームに関連した、1つ又は複数の動きベクトルのような動きメトリック(motion metric)を分析してもよい。さらに、補間制御モジュール34は、フレームの内容を決定するために、フレーム内の1つ又は複数の移動オブジェクトに関連した情報、例えば、移動オブジェクト検出モジュール40により生成された情報分析してもよい。補間制御モジュール34は、例えば、フレームの内容を決定するために、1つ又は複数のフレーム内における移動オブジェクトの数、1つ又は複数のフレーム内における移動オブジェクトのサイズ、及び識別された移動オブジェクトに関連した動きベクトルを分析してもよい。
さらに、補間制御モジュール34は、フレームの内容を決定するために、コントラスト比値のようなテクスチャ・メトリック(texture metric)をさらに分析してもよい。さらに、補間制御モジュール34は、フレームの内容が自然なビデオか合成ビデオかどうかを決定するために入力フレームレートを分析してもよい。例えば、合成ビデオを有する漫画チャネルのようなビデオチャネルは毎秒13個のフレームの入力フレームレートを有してもよい。そのようなフレームレートは、自然なビデオ送信では通常は見られない。いくつかの態様では、補間制御モジュール34は、動き、テクスチャ、ビデオタイプおよび他の内容特性の分析に基づいてフレームの内容を分類してもよい。1つの例として、補間制御モジュール34は、レート歪(R-D)曲線のような分類メトリックを使用してフレームの内容を分類してもよい。
あるいは、又はさらに、補間制御モジュール34は、2つ以上のフレーム間の動き場の規則性を分析してもよい。補間制御モジュール34は、例えば、1つ又は複数のレームの間の動き規則性を決定するために、二乗差の和(SSD)あるいは絶対差の和(SAD)のような差メトリック(difference metric)を分析してもよい。補間制御モジュール34はまた、移動オブジェクトに関連した情報、例えば、2つ以上のインターフレーム間の動き場の規則性を決定するために、移動オブジェクト検出モジュール40により生成された情報に関連した情報を分析してもよい。例えば、補間制御モジュール34は、2つ以上のフレーム間の動き場の規則性を決定するために、1つ又は複数のフレームにおける移動オブジェクトの数、移動オブジェクトのサイズあるいは両方を比較してもよい。
さらに、補間復号器モジュール24はまた、1つ又は複数のフレームに関連した符号化複雑性を分析してもよい。補間制御モジュール34は、例えば、フレームに関連した符号化複雑性を決定するために、フレームに関連した情報で提供される符号化係数又はフレームに関連した情報における非ゼロ係数の数を分析してもよい。非ゼロ係数の数が大きく、大量の残留情報の符号化を示してもよい場合には、補間制御モジュール34は、符号化複雑性が高いと決定してもよい。補間制御モジュール34は、例えば、補間のためにより複雑性が低いフレームを用いる予測モードを選択してもよい。
補間復号器モジュール24は、分析に基づいたフレーム補間動作、1つ又は複数のビデオフレームの内容、1つ又は複数のビデオフレーム間の動き場の規則性、1つ又は複数のビデオフレームに関連した符号化複雑性、あるいはそれらの組合せを動的に調節する。1つの例として、補間制御モジュール34は、内容、動き場の規則性、1つ又は複数のフレームに関連した符号化複雑性、あるいはそれらの組合せの分析に基づいて、補間モジュール32によって使用される閾値パラメータを動的に調節してもよい。補間制御モジュール34は、複数の閾値フレーム補間パラメータを維持し、そして、フレームの内容に対応する閾値パラメータの組を選択してもよい。例えば、補間制御モジュール34は、フレームが高い動き又は高いテクスチャを有する場合には、閾値パラメータの第1の組を選択し、低い動き又は低いテクスチャを有するフレームの場合には、閾値パラメータの第2の組を選択する。
他の例として、補間制御モジュール34は、内容、動き場の規則性、1つ又は複数のフレームに関連した符号化複雑性、あるいはそれらの組合せの分析に基づいて、動き補償フレーム補間を有効にするべきか無効にするべきかどうかを選択してもよい。補間制御モジュール34は、2つの基準フレーム間の差メトリック、例えば、SAD値が閾値を超える場合には、動き補償フレーム補間を無効にすることを決定してもよい。同様に、補間制御モジュール34は、2つのフレームにおける移動オブジェクトの数あるいは移動オブジェクトのサイズが実質的にに異なる場合には、動き補償フレーム補間を無効にしてもよい。さらに、補間制御モジュール34は、フレーム・リピート動作又はフレーム平均化動作を用いてフレーム補間を行なうように補間モジュール32に表示してもよい。
さらに他の例として、補間制御モジュール34は、内容、運動フィールドの規則性、1つ又は複数のフレームに関連した符号化複雑性(coding complexity)あるいはそれれの組合せの分析に基づいた補間に使用するフレーム予測モードを選択してもよい。例えば、先行および後続フレームにおける移動オブジェクトに関連した動きベクトルが実質的に整列してお、かつ移動オブジェクト間の非ゼロ残余(non-zero residue)の差が、閾値より小さい場合には、補間制御モジュール34は双方向予測モードを選択してもよい。
この開示の他の態様では、補間制御モジュール24は、1つの期間にわたって受信された複数のビデオフレーム、例えば、1秒の間隔にわたって受信されたフレームに対する情報を分析する。特に、FITモジュール36は、複数のビデオフレームに関連した情報を含んでいるFITテーブル38を生成する。FITテーブル38は、例えば、スーパーフレームを形成する複数のフレームに関連した情報を含んでいてもよい。ここに使用されるように、用語「スーパーフレーム」は1つの期間にわたるフレームのブループ化を指す。1つの例では、スーパーフレームは、1秒の周期にわたるフレームのグループ化であってもよい。FITモジュール36は、各フレームのフレームタイプ、各フレームのフレーム・サイズ、各フレームのエラー・パターン、各フレームのエラー分布のような情報、ならびにスーパーフレームのフレームのそれぞれに関連した他の情報を含むためのFITテーブル38を生成してもよい。
補間制御モジュール24は、FITテーブル38を分析し、そして、その分析に基づいてフレーム補間動作を調節してもよい。補間制御モジュール24は、例えば、スーパーフレームの複数のフレームのフレームタイプ、スパーフレームの複数のフレームにフレーム・サイズ、又はスーパーフレームの複数のフレームに関連したエラー分布を分析し、そして、その分析に基づいてフレーム補間動作の調節を行ってもよい。FITテーブル38の分析は、動き補償フレーム補間を有効にすべきかどうかを決定するのに特に有用であってもよい。例えば、連続するBフレームの数が閾値を超える場合には、補間制御モジュール24は、動き補償フレーム補間を有効にしてもよい。他の例として、基準フレームが大きなエラー分布を有することをFITテーブル38が示す場合には、補間制御モジュール24は、動き補償フレーム補間を無効にしてもよい。このようにして、補間制御モジュール24は、ビデオ・データのフレームを補間する際に使用する補間のタイプを選択するためにFITテーブル38を使用する。
上述のように、補間復号器モジュール24は、1つ又は複数のフレームに関連した多くの異なるタイプの情報のうちのいずれかの分析に基づいてフレーム補間動作を調節する。したがって、上述の技術は、個々に実行されてもよく、あるいは、そのような技術の2つまたはそれより多くが、補間復号器モジュール24において一緒に実行されてもよい。補間復号器モジュール24が上記技術の2つ又はそれより多くを一緒に実行する場合には、補間復号器モジュール24は、特定のタイプのフレーム情報を優先させるために分析される異なるタイプのフレーム情報に重みを割当ててもよい。このようにして、フレーム補間復号器モジュール24は、補間調節を行うことで最も重要なものであると考えられたフレーム情報を使用して、フレーム補間動作を調節してもよい。
補間制御モジュール34は、フレームに関連した情報を分析し、そして、様々なレベルあるいは粒度にフレーム補間動作を調節してもよい。1つの例として、補間制御モジュール34は、1つ又は複数のフレームに関連した情報を分析し、フレーム・レベルでフレーム補間動作を調節してもよい。この場合、補間復号器モジュール24は、情報を分析し、ビデオフレーム全体のためのフレーム補間動作を調節する。あるいは、情報復号器モジュール24は、フレームに関連した情報を分析し、ブロック・レベルにおいてフレーム補間動作を調節してもよい。したがって、補間復号器モジュール24は、情報を分析し、その情報に関連した特定のブロックのためののみフレーム補間動作を調節する。他の例として、情報復号器モジュール24は、1つ又は複数のフレームに関連した情報を分析し、領域ベース・レベルにおいてフレーム補間動作を調節してもよい。補間調節モジュール24は、領域を形成するためにピクセスの複数のブロックをグル−プ化し、そして、その領域におけるプクセルのすべてのブロックに関連した情報を分析してもよい。1つの態様では、フレームの領域の各々は、フレーム内の移動オブジェクトに対応してもよい。この場合、補間復号器モジュール24は、情報を分析し、そして、領域内にあるすべてのブロックに対するフレーム補間動作を調節する。
多くの他の要素が補間復号器モジュール24に含まれてもよいが、図示を簡単かつ容易にするために、図2には具体的には例示されていない。図2に例示された様々なコンポーネントは、ハードウェア、ソフトウェア、ファームウェア、あるいはそれらの任意の組合せで実現されてもよい。いくつかのコンポーネントは、1つ又は複数のマイクロプロセッサー又はデジタル信号プロセサ(DSP)、1つ又は複数の特定用途向け集積回路(ASIC)、1つ又は複数のフィールドプログラム可能ゲートアレイ(FPGA)あるいは他の同等の集積又はデイスクリート論理回路によって実行されるプロセス又はモジュールとして実現されてもよい。異なる特徴についてモジュールとしての記述は、補間復号器モジュール24の異なる機能的な局面を強調することを意図されたものであり、個別のハードウェア又はソフトウェア・コンポーネントによってそのようなモジュールを実現しなければならないことを必ずしも意味しない。むしろ、1つ又は複数のモジュールに関連した機能性は、共通の又は個別のハードウェアあるいはソフトウェア・コンポーネント内に統合されてもよい。したがって、この開示は補間復号器モジュール24の例に制限されるべきでない。
ソフトウエアで実装される場合には、この開示で記述されるシステム及び装置に帰する機能性は、例えば、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、不揮発性のランダム・アクセス・メモリ(NVRAM)、電気的に消去可能プログラム可能読み出し専用メモリ (EEPROM)、フラッシュメモリ、磁気的又は光学的データ記憶媒体、等を備えてもよいメモリ(図示なし)内のようなコンピュータ読取り可能媒体上の命令として具現されてもよい。その命令は、この開示に記述された機能性の1つ又は複数の態様をサポートするために実行される。
図3は、1つ又は複数のビデオフレームの内容、1つ又は複数のビデオフレーム間の動き場の規則性、1つ又は複数のビデオフレームに関連した符号化複雑性あるいはそれらの組合せの分析に基づいてフレーム補間動作を動的に調節する図1および2の、補間復号器モジュール24のような補間復号器モジュールの例示的な動作を例証する流れ図である。最初に、補間復号器モジュール24は、符号器12から複数のビデオフレームを受け取る(50)。1つの例として、補間復号器モジュール24は、複数のフレームに関連した情報を搬送するビットストリームを受け取ってもよい。受信ビットストリームにより搬送される情報は、例えば、フレームのピクセルの1つ又は複数のブロックに関連した動きベクトル、ブロック予測モード、ブロック・サブパーティション(block sub-partitions)、ブロック内の係数又は非ゼロ係数(non-zero coefficients)の数、スキップ又は直接ブロック数、等を含んでもよい。
この開示のいくつかの態様では、補間復号器モジュール24は、1つ又は複数のフレームに関連した情報を生成してもよい(52)。フレーム情報生成モジュール37は、例えば、送信されたフレームの1つ又は複数に関連した情報を生成してもよい。あるいは、又はさらに、フレーム情報生成モジュール37は、補間されるべき1つ又は複数のフレーム1に関連した情報を生成してもよい。フレーム情報生成モジュール37は、例えば、動きベクトル、動きベクトルに関連した信頼性情報、フレーム又はそのフレーム内のピクセルのブロックに関連した予測モード、等を生成してもよい。さらに、上述のように、補間復号器モジュール24は、フレーム内の1つ又は複数の移動オブジェクトを識別し、そして、移動オブジェクトに関連した情報を生成してもよい。
補間制御モジュール34は、1つ又は複数のビデオフレームの内容、1つ又は複数のビデオフレーム間の動き場の規則性、1つ又は複数のビデオフレームに関連した符号化複雑性あるいはそれらの組合せを分析する(54)。補間制御モジュール34は、例えば、フレームの内容を決定するために、フレーム内の動き、フレーム内のオブジェクトのテクスチャ、フレームにおけるビデオのタイプ、等を分析してもよい。特に、補間制御モジュール34は、動きメトリック(例えば1つ又は複数の動きベクトル及びテクスチャ・メトリック(texture metric) (例えばコントラスト比値)を分析してもよい。さらに、補間制御モジュール34は、フレームの内容を決定するために、フレーム内の1つ又は複数の移動オブジェクトに関連した情報、例えば、1つ又は複数のフレーム内の移動オブジェクトの数、1つ又は複数のフレーム内の移動オブジェクトのサイズ、識別された移動オブジェクトに関連した動きベクトルを分析してもよい。
あるいは、又はさらに、補間制御モジュール34は、2つの又はそれより多いフレーム間の動き場の規則性を分析してもよい。補間制御モジュール34は、例えば、1つ又は複数のインターフレームの運動規則性を決定するために、正方形差(SSD)の和あるいは絶対差(SAD)の和のような差メトリックを分析してもよい。補間制御モジュール34はまた、2つの又はそれよい多いフレーム間の動き場の規則性を決定するために、1つ又は複数のフレームにおける移動オブジェクトの数又は移動オブジェクトのサイズを比較してもよい。さらに、補間復号器モジュール24はまた、1つ又は複数のフレームに関連した符号化複雑性を分析してもよい。補間制御モジュール34は、例えば、フレームに関連した符号化複雑性を決定するために、フレームに関連した情報で提供される係数又はフレームに関連した情報で提供される非ゼロ係数の数を分析してもよい。
補間制御モジュール34は、1つ又は複数のビデオフレームの内容、1つ又は複数のビデオフレーム間の動き場の規則性、1つ又は複数のビデオフレームに関連した符号化複雑性あるいはそれらの組合せの分析に基づいて補間モジュール32のフレーム補間動作を動的に調節する(56)。上述のように、補間制御モジュール34は、動き補償フレーム補間を有効にすべきか無効にするべきを選択すること、異なるタイプの補間を選択すること、フレーム補間のために使用されるべきビデオフレーム予測モードを選択すること、分析に基づいてフレーム補間に対して異なる閾値を割当てること、及び補間がさらに難しくなりそうであると表示された場合には、よりコンピュータ集約型の技術を含む多くの異なる方法でフレーム補間動作を調節してもよい。
補間モジュール32は、動的に調整されたフレーム補間動作に従ってビデオフレームを補間する(58)。例えば、補間モジュール32は、補間制御モジュール34によって選択された予測モードを使用してビデオフレームを補間してもよい。他の例として、補間モジュール32は、動き補償補間を無効にし、そして、代わりにフレーム平均化又はフレーム・ルピート動作を用いてビデオフレームを補間してもよい。上述のように、補間復号器モジュール24は、ビデオ情報のフレームレートをアップ変換するために、スキップされたビデオフレームを補間してもよく又は1つ又は複数のスキップされないビデオフレームを挿入してもよい。
上述のように、補間復号器モジュール24は、ビデオフレームを補間し、そして、様々なレベルあるいは粒度に補間動作を調節する。特に、補間復号器モジュール24は、ビデオのフレームを補間し、フレーム・レベル、ブロック・レベルあるいは領域レベルで補間動作を調節してもよい。
図4は、FITテーブル38の分析に基づいてフレーム補間動作を動的に調節する図1および2の補間復号器モジュール24のような補間復号器モジュールの例示的な動作を例証する流れ図である。最初に、補間復号器モジュール24は、符号器12から複数のビデオフレームを受け取る(60)。1つの例として、補間復号器モジュール24は、複数のフレームに関連した情報を搬送するビットストリームを受け取ってもよい。
FITモジュール36はFITテーブル38を生成する(62)。FITモジュール36は、例えば、複数のフレームに関連した情報の部分を分析し、そして、FITテーブル38を生成するために情報の特定の部分集合(subsets)を抽出してもよい。FITモジュール36は、各フレームのフレームタイプ、各フレームのフレーム・サイズ、各フレームのエラー・パターン、各フレームのエラー分布のような情報、ならびにスーパーフレームのフレームのそれぞれに関連した情報を含むようにFITテーブル38を生成してもよい、上述のように、FITモジュール36は、1つの期間にわたって受信される受け取られる複数のビデオフレーム、例えば、1秒の間隔にわたって受け取られたフレームに対する情報を含むようにFITテーブル38を生成してもよい。例えば、FITモジュール36は、ビデオ・データの各受信スーパーフレームに対するFITテーブル38を生成してもよい。用語「スーパーフレーム」は、1つの期間にわたる複数のフレームのグループ化を意味する。
補間制御モジュール34は、FITテーブル38に含まれていた情報を分析し、そして、その分析に基づいてフレーム補間動作を調節する(64、66)。補間制御モジュール24は、例えば、複数のフレームに関連したフレームタイプを分析し、そして、ある数の連続したBフレームが閾値を超える場合(それはスムーズな動き場を示してよい)には、動き補償フレーム補間を有効にしてもよい。
他の例として、補間制御モジュール34は、複数のフレームのフレーム・サイズを分析し、そして、フレーム・サイズに基づいてフレーム補間動作を調節してもよい。フレーム・サイズは、動き複雑性およびテクスチャ複雑性の両方の点からフレームの複雑さの表示であってもよい。補間制御モジュール34は、例えば、フレーム・サイズに基づいて補間を行うべきかどうかに基づいて動き補償フレーム補間を有効にするか無効にするかを決定してもよい。特に、補間制御モジュール34は、複数のフレームのフレーム・サイズが著しく変化する(例えば、閾値を超える)場合には、動き補償フレーム補間を無効にしてもよい。
他の例として、補間制御モジュール34は、1つ又は複数のフレームのエラー分布に基づいてフレーム補間動作を分析しかつ調節してもよい。動き補償フレーム補間は、基準フレームの正しい復号化に大きく依存してもよく、従って、補間制御モジュール34は、1つ又は複数の基準フレームに関連したエラー分布が閾エラー分布値をより高い場合には動き補償フレーム補間を無効にしてもよい。
いくつかの態様では、補間制御モジュール34は、に基づき、復号器14の復号化複雑性及び他の計算上のリソースに基づいてフレーム補間を可能にフレーム補間を可能にするべきかどうか適応的に決定してもよい。例えば、復号器14の計算上のリソースが遅れている(running behind)場合には、補間制御モジュール34はフレーム補間を有効にしてもよい。補間制御モジュール34は、復号器14の復号化複雑性及び他の計算資源を決定するために、フレーム・サイズ(動き情報および残留情報の両方)ならびにフレームタイプ分析してもよい。例えば、Bフレームは、その双方向動き補償特徴に基因してより多くの計算資源を要求するので、Bフレームは、同じフレーム・サイズのP-フレームよりも複雑であると考えられてもよい。補間制御モジュール34は、復号器14の計算資源が遅れている場合、通常のBフレーム復号を行なう代わりにフレームを補間してもよい。いくつかの実装では、フレーム補間動作が移動局モデム(MSM)プラットフォームのデジタル信号プロセサ(DSP)部分に専用である場合には、通常のBフレーム復号と比較して、ビデオフレームの補間はそれほど計算上高価ではないかもしれない。
補間モジュール32は、動的に調整されたフレーム補間動作に従ってビデオフレームを補間する(68)。例えば、補間モジュール32は、動き補償補間を無効にし、そして、代わりにフレーム平均化又はフレーム・リピート動作を用いてビデオフレームを補間してもよい。他の例として、補間モジュール32は、補間制御モジュール34によって選択された予測モードを使用して、ビデオフレームを補間してもよい。
図5は、1つ又は複数のビデオフレーム内の移動オブジェクトの分析に基づいてフレーム補間動作を調節する補間復号器モジュール24の例示的な動作を例証する流れ図である。最初に、補間復号器モジュール24はビデオフレームを選択する(70)。補間復号器モジュール24は、基準ビデオフレーム、例えば、先行又は後続のビデオフレームを選択するか、あるいは補間されるべき1つのフレームを選択してもよい。
補間復号器モジュール24は、フレームの内の1つ又は複数の移動オブジェクトに関連した情報を生成するために、選択されたビデオフレームにおけるピクセルの1つ又は複数のブロックに関連した動きベクトルを分析する(72)。上述のように、補間復号器モジュール24は、フレームに関連した動きベクトル(MVs)を分析しかつフレーム内の1つ又は複数の移動オブジェクトを識別する移動オブジェクト検出モジュール40を含んでいてもよい。特に、移動オブジェクト検出モジュール40は、ここに記述された技術に従って移動オブジェクトを検出するために実質的に相似の動きベクトルを有する領域内のピクセルのブロックをグループ化してもよい。例えば、移動オブジェクト検出モジュール40は、フレーム内のピクセルの第1のブロックを選択し、ピクセルの第1ノブロックに関連した動きベクトルをピクセルの選択されたブロックを囲む1つ又は複数の近隣のピクセルに関連した動き情報と比較し、そして実質的に相似の動き情報を有するピクセルの近隣のブロックでピクセルの第1のブロックをグループ化してもよい。
その後、移動オブジェクト検出モジュール40は、実質的に相似の動きベクトルを有するその領域におけるピクセルのすべてのブロックが移動オブジェクトを形成するためにグループ化されるまで、そのオブジェクトに属するピクセルの近隣のブロックのそれぞれに対する同様の分析を行なってもよい。その後、移動オブジェクト検出モジュール40は、同様のやり方でフレームの他の移動オブジェクトを検出するために、異なる動きベクトルを有するピクセルの他のブロックを分析し始めてもよい。さらに、移動オブジェクト検出モジュール40は、移動オブジェクトに対応する単一の動きベクトルを生成するために、オブジェクトを形成するピクセルのブロックの動きベクトルを合併してもよい。このようにして、移動オブジェクト検出モジュール40は、フレーム内の移動オブジェクトの数、移動オブジェクトのサイズ(例えば、移動オブジェクト中のブロックの数に関しての)、移動オブジェクトの1つ又は複数に関連した動き情報、等を識別する情報を生成する。
上述のように、移動オブジェクト検出モジュール40は、基準フレームにおける又は補間されるべきフレームにおける移動オブジェクトに関連した情報を生成してもよい。移動オブジェクト検出モジュール40がスキップされるフレームに対する移動オブジェクトに関連した情報を生成する場合には、例えば、その情報は、動きベクトルがスキップされたフレームに割当てられる。さらに、いくつかの態様では、移動オブジェクト検出モジュール40は、1つより多い組の動きベクトルを説明しなければならなくてもよい。例えば、移動オブジェクト検出モジュール40は、前方および後方への動きベクトルの両方を説明しなければならなくてもよい。
補間制御モジュール34は、1又は複数のフレームに関連した生成された移動オブジェクト情報を分析する(74)。補間復号器モジュール34は、例えば、フレームのそれぞれにおける移動オブジェクトの数、フレームのそれぞれにおける移動オブジェクトのサイズ、フレームのそれぞれにおける移動オブジェクトに関連した動き情報、等を比較してもよい。補間制御モジュール34は、例えば、1つ又は複数の基準フレームに関連した移動オブジェクト情報を比較してもよい。あるいは、又はさらに、補間制御モジュール34は、スキップされたフレームに関連した移動オブジェクト情報を分析してもよい。さらに、補間制御モジュール34は、全フレームに関連した(例えば、すべての移動オブジェクトに関連した)に関連した移動オブジェクト情報を分析してもよい。あるいは、補間制御モジュール34は、フレーム内の個々の移動オブジェクトに関連した移動オブジェクト情報を分析してもよい。
補間制御モジュール34は、フレームの1つ又は複数の内の移動オブジェクトの分析に基づいてフレーム補間動作を調節する(76)。1つの例として、補間制御モジュール34は、予測モード、例えば前方予測、後方予測モード、又は最良の補間動作となるであろう双方向予測モードを選択してもよい。補間制御モジュール34は、フレーム・レベル(例えば、フレームのすべてのブロックのための)に関して、あるいは移動オブジェクト・レベル(例えば、1つのグループのブロックのための)に関してフレーム補間動作を調節してもよい。例えば、補間制御モジュール34は、1つ又は複数の基準フレームにおける移動オブジェクトに関連した情報の分析に基づいてフレーム全体に対して予測モードを調節してもよい。特に、補間制御モジュール34は、先行及び後続の基準フレームにおける移動オブジェクトの数を比較し、そして、最小量の移動オブジェクトを有する基準フレームを使用する全フレームに対する予測モードを選択してもよい。このようにして、予測モード決定は、各基準フレームに関連した移動オブジェクト番号間の比較に従って調節される。
他の例として、補間制御モジュール34は、フレーム予測モードを選択するために先行及び後続の基準フレーム間における移動オブジェクトの規格化非ゼロ係数を比較する。移動オブジェクトの規格化非ゼロ係数は、移動オブジェクトの信頼性を決定するために使用される。より小さな非ゼロ係数は、より信頼できる移動オブジェクトを示す。したがって、両方の基準フレームが同数の移動オブジェクトを有しており、かつ移動オブジェクトのサイズがほぼ同じである場合には、補間制御モジュールは、全体的により小さな規格化された非ゼロ係数を有する基準フレームを使用する予測モードを選択してもよい。
他の例では、補間制御モジュール34は、移動オブジェクトに関連した情報に基づいて、移動オブジェクトに関連したピクセルのブロックに対する予測モードを選んでもよい。補間制御モジュール34は、例えば、先行及び後続の基準フレームにおける対応する移動オブジェクトに関連した動きベクトルが整列した場合には、移動オブジェクトに関連した移動オブジェクトに関連したピクセルのブロックの補間に対して双方向予測モードを選んでもよく、基準フレームの移動オブジェクト間の非ゼロ残余の差は閾値より小さい。補間制御モジュール34は、動きベクトルが互いの方向を指しておりかつ移動オブジェクトのオーバーラップする部分が予め定められた閾値を超える場合には、基準フレームにおけるで移動オブジェクトに関連した動きベクトルが整列することを決定してもよい。先行及び後続の基準フレームにおける対応する移動オブジェクトと関連した動きベクトルが整列されていない場合、あるいは、基準フレームの移動オブジェクト間の非ゼロ残余の差が閾値より大きい場合には、補間制御モジュール34は、補間されるべきフレームの移動オブジェクトの大部分を含む基準フレームの1つを使用する、移動オブジェクトに対する予測モードを選択する。間制御モジュール34は、補間されるべきフレームにおける1つ又は複数の移動オブジェクトに関連した情報の分析に基づいて、同様のフレーム・レベルおよび移動オブジェクト・レベル予測モード決定を行ってもよい。
補間モジュール32は、動的に調整されたフレーム補間動作に従ってビデオフレームを補間する(78)。例えば、補間モジュール32は、動き補償補間を無効にし、そして、代わりにフレーム平均化又はフレーム・リピート動作を用いてビデオフレームを補間する。他の例として、補間モジュール32は、補間制御モジュール34によって選択された予測モードを使用して、フレームを補間してもよい。
図6は、フレームにおける移動オブジェクトを検出するために、フレームのピクセルのブロックに関連したブロック情報を分析する移動オブジェクト検出モジュール40の例示的な動作を例証する流れ図である。上述のように、ここに記述された移動オブジェクト検出技術は、1つ又は複数の基準フレームにおける又は補間されるべきフレームにおける移動オブジェクトを検出するために使用されてもよい。最初に、移動オブジェクト検出モジュール40は、フレームにおけるピクセルのブロックのそれぞれに関連したステータスを「手つかずの」("untouched")として初期化する(80)。「手つかず」のステータスは、移動オブジェクト検出モジュール40がピクセルのブロックを移動オブジェクトに関連させていないことを意味する。移動オブジェクト検出モジュール40は、オブジェクト番号を1に等しく設定する(82)。このオブジェクト番号は、移動オブジェクト検出モジュール40が現在検出している移動オブジェクトに対応する。
移動オブジェクト検出モジュール40は、フレームにおけるピクセルのブロックを選択する(84)。ピクセルの選択されたブロックは、移動オブジェクト分析の出発点である。移動オブジェクト検出モジュール40は、ブロックに関連したステータスが「手つかず」であるかどうかを決定するために、ピクセルの選択されたブロックに関連したステースをチェックする(86)。ピクセルの選択されたブロックに関連したステータスが「手つかず」でない場合には、移動オブジェクト検出モジュール40は、分析するべきピクセルの次のブロックを選択する。ピクセルの選択されたブロックと関連したステータスが「手つかず」である場合には、移動するオブジェクト検出モジュール40は、ピクセルの選択されたブロックと関連した動きベクトルがゼロに等しいかどうかを決定する(88)。ピクセルの選択されたブロックに関連した動きベクトルがゼロに等しい場合には、ピクセルのブロックはどの移動オブジェクトとも関連していない。したがって、移動オブジェクト検出モジュール40は、分析べきピクセルの次のブロックを選択する。さらに、移動オブジェクト検出モジュール40は、ゼロのような、どんな移動オブジェクトにも対応しない番号にブロックのステータスをセットしてもよい。ブロックのステータスをゼロにセットすることによって、移動オブジェクト検出モジュール40は再びブロックを分析する必要はない。
ピクセルの選択されたブロックと関連した動きベクトルがゼロに等しくない場合には、移動オブジェクト検出モジュール40は、ピクセルの選択されたブロックに関連したステータスを現在のオブジェクト番号と等しくセットする(90)。この場合、ピクセルの選択されたブロックに関連したステータスは1に等しくセットされるであろう。オブジェクト検出モジュール40が1つ又は複数の移動オブジェクトを既に検出していた場合には、ステータスは、現在検出されている移動オブジェクト番号にセットされるだろう。
移動オブジェクト検出モジュール40は、ここでピクセルの近隣のブロックと呼ばれている、ピクセルの選択されたブロックを取り囲むピクセルのブロックに関連した動き情報を分析し始める。移動オブジェクト検出モジュール40は、例えば、選択されたブロックを取り囲む3ブロック×3フレーム区域に関連した動き情報を分析してもよい。これらの技術は3ブロック×3ブロック・ウィンドウに関連して記述されるが、これらの技術は、異なるサイズの近隣ブロック・ウィンドウを分析するために利用されてもよい。
特に、移動オブジェクト検出モジュール40は、ピクセルの近隣ブロックの最初の1つを選択する(92)。移動オブジェクト検出モジュール40は、ブロックに関連したステータスが「手つかず」であるかどうかを決定するために、ピクセルの近隣ブロックに関連したステータスをチェックする(94)。ピクセルの選択されたブロックに関連したステータスが「手つかず」でない場合には、オブ移動ジェクト検出モジュール40は、まだ分析されていないピクセルの他の近隣ブロックがブロック×3ブロック・ウィンドウにあるかどうかどうかを決定する(96)。ウィンドウ内により多くの近隣ピクセルがある場合に、移動オブジェクト検出モジュールは、ピクセルの他の1つを選択する(92)。
ピクセルの選択されたブロックに関連したステータスが「手つかず」である場合には、移動オブジェクト検出モジュール40は、動きベクトルが本質的に同様のかどうか決定するために、ピクセルの選択されたブロックに関連した動きベクトルをピクセルの近隣ブロックに関連した動きベクトルと比較する(98)。移動オブジェクト検出モジュール40は、大きさ、方向あるいは大きさと方向の両方について、選択されたブロックとピクセルの近隣ブロックの動きベクトルを比較してもよい。移動オブジェクト検出モジュール40は、例えば、大きさと方向の差を計算し、そして、その計算された差を閾値と比較してもよい。選択されたブロック及び近隣のブロックに関連した動きベクトルが実質的に相似でない場合には、移動オブジェクト検出モジュール40は、まだ分析されていないピクセルの他の近隣ブロックが3ブロック×3ブロック・ウインドウにあるかどうかを決定する(96)。ウィンドウ内に、より多い近隣ピクセルがある場合には、移動オブジェクト検出モジュールはピクセルの他の1つを選択する(92)。
選択されたブロックおよび近隣ブロックの動きベクトルが本質的に同様である場合には、移動オブジェクト検出モジュール40は、ピクセルの選択された近隣のブロックに関連したステータスを現在のオブジェクト番号にセットする(100)。このようにして、移動オブジェクト検出モジュール40は、ブロックとそれの近隣ブロックが両方とも同じ移動オブジェクトに属すると識別する。移動オブジェクト検出モジュール40はまた、同じオブジェクト番号を有するピクセルのブロックに関連した動きベクトルを平均してもよい(102)。移動オブジェクト検出モジュール40は、3ブロック×3ブロック・ウィンドウにおける近隣のブロックがすべて分析されるまで、同様の方法で近隣のブロックを分析し続ける。
移動オブジェクト検出モジュール40が3ブロック×3ブロック・ウインドウにおける近隣のブロックをすべて分析すると、移動オブジェクト検出モジュール40は、現在のオブジェクトに属する近隣ブロックがあるかどうかを識別する(104)。移動オブジェクト検出モジュール40は、例えば、現在のオブジェクト番号と等しいステータスを有する近隣のブロックを識別してもよい。現在のオブジェクトに属する何らかの近隣のブロックがある場合には、移動オブジェクト検出モジュール40は、識別されたブロックのうちの1つを選択し、そして、ピクセルの選択されたブロックに近隣するピクセルのブロックを上述したのと同じ方法で分析する。移動オブジェクト検出モジュール40は、現在のオブジェクトに関連したピクセルのすべてのブロック分析されるまで、現在のオブジェクトに属するピクセルのブロックのそれぞれを分析し続ける。このようにして、移動オブジェクト検出モジュール40は、ビデオフレーム内の移動オブジェクトを生成しかつ検出するために、実質的に相似の動きベクトルを有するピクセルの隣接ブロックをグループ化する。
移動オブジェクト検出モジュール40が現在のオブジェクトに属するピクセルのすべてのブロックを分析すると、移動オブジェクト検出モジュール40は、オブジェクト番号を増大させ、そして、フレームのピクセルの残りのブロックを上述したのと同じ方法で分析し始める(82)。言いかえれば、移動オブジェクト検出モジュール40は、ピクセルの最初に選択されたブロックに実質的に類似していない動きベクトルを有するピクセルのブロックを分析し始める。
このようにして、移動オブジェクト検出モジュール40は、フレーム内の1つ又は複数の移動オブジェクトを検出するために、フレームにおけるピクセルの複数のブロックに関連した動きベクトルを分析してもよい。この分析に基づいて、移動オブジェクト検出モジュール40を移動は、フレーム内における移動オブジェクトの数、フレームにおける移動オブジェクトのサイズ(すなわち、移動オブジェクトに関連したピクセルのブロックの数)、及び移動オブジェクトのそれぞれに関連した動き情報を識別してもよい。移動オブジェクト検出モジュール40は、フレーム補間動作への調節を行うために、分析すべき補間制御モジュール34にこの情報を提供してもよい。
移動オブジェクト検出技術は、フレーム補間調節を行うために分析するために移動オブジェクトを検出することに関連して説明されるが、のために、移動オブジェクト検出技術は、他の符号化及び復号化目的のためにも使用されてよい。
図7は、補間を制御するための例示的なモジュール110を例証するブロック図である。補間を制御するためのモジュール110は、分析するためのモジュール112および調節するためのモジュール114を含んでいる。図8に例証されたモジュールは、フレーム補間動作を動的に調節するために一緒に動作する。より具体的には、分析するためのモジュール112は、少なくとも1つのビデオフレームに関連した情報を分析し、そして、その分析に基づいてフレーム補間を動的に調節する。分析するためのモジュール112は、例えば、1つ又は複数のビデオフレームの内容、2つの又はそれより多いビデオフレーム間の動き場の規則性、1つ又は複数のビデオフレームに関連した符号化複雑性、あるいはそれらの組合せを分析してもよい。1つの例では、112を分析するためのモジュールは、ビデオフレームを補間するために使用される1つ又は複数の基準フレームに関連した情報を分析してもよい。あるいは、又はさらに、分析するためのモジュール112は、スキップされたビデオフレームのような補間されるべきフレームに関連した情報を分析してもよい。分析するためのモジュール112はまた、1つの期間にわたって受け取られる複数のフレーム、例えば、1秒の間隔にわたって受け取られたフレームに対する情報を分析してもよい。
調節するためのモジュール114は、1つ又は複数のビデオフレームに関連した情報の分析に基づいてフレーム補間動作を動的に調節する。調節するためのモジュール114は、多数の異なる方法でフレーム補間動作を調節してもよい。1つの例として、調節するためのモジュール114は、動き補償フレーム補間を有効にすべきか無効にすべきかどうかを選択してもよい。動き補償フレーム補間が無効にされる場合には、調節するためのモジュール114は、フレーム・リピート又はフレーム平均化動作のような異なるフレーム補間動作をさらに選択する。他の例として、調節するためのモジュール114は、その分析に基づいてフレーム補間のために使用されるべきビデオフレーム予測モードを選択してもよい。他の例では、調節するためのモジュール114は、その分析に基づいてフレーム補間のために異なる閾値を割り当ててもよい。
この開示によれば、ビデオフレームに関連した情報を分析するための手段は、補間復号器モジュール24(図1)、補間制御モジュール34(図2)、補間を制御するためのモジュール110(図8)あるいは分析するためのモジュール112(図7)を備えてもよい。同様に、情報の分析に基づいてフレーム補間動作を動的に調節するための手段は、補間復号器モジュール24(図1)、補間制御モジュール34(図2)、補間を制御するためのモジュール110(図8)あるいは調節するためのモジュール114(図7)を備えてもよい。上記の例は例証の目的で提供されるが、開示はそれぞれの手段に対応する構成の他の実例を含んでいてもよい。
ここに記述された技術は、ハードウェア、ソフトウェア、ファームウェアあるいはそれらの任意の組合せの中で実装されてもよい。ハードウェアで実装される場合には、技術はデジタル・ハードウェア、アナログ・ハードウェアあるいはそれらの組合せを使用して実現されてもよい。ソフトウェアで実装される場合には、技術は、コンピュータ読取り可能媒体上の1つ又は複数の格納され又は送信された命令又は符号によって少なくとも部分的に実現されてもよい。コンピュータ読取り可能媒体は、コンピュータ記憶媒体、通信媒体あるいは両方を含んでもよく、また、ある場所から別の場所へコンピュータ・プログラムの転送を促進する任意の媒体を含んでもよい。記憶媒体は、コンピュータによってアクセスすることができる任意の利用可能な媒体であってもよい。
例示であって限定ではないが、そのようなコンピュータ読取り可能媒体は、非同期ダイナミック・ランダム・アクセス・メモリ(SDRAM)、読み出し専用メモリ(ROM)、不揮発性のランダム・アクセス・メモリ(NVRAM)、ROM、電気的に消去可能・プログラム可能読み出し専用メモリ (EEPROM)、EEPROM、FLASHメモリ(登録商標)、CD-ROMまたは他の光ディスク記憶装置、磁気ディスク記憶装置あるいは他の磁気記憶装置のようなRAM、あるいは希望のプログラム・コードを命令又はデータ構成の形式で搬送又は格納するために使用することができかつコンピュータによってアクセスできる他の任意の媒体を含むことができる。
また、任意の接続がコンピュータ読取り可能媒体と適切に称せられる。例えば、同軸ケーブル、光ファイバケーブル、撚り対線、デジタル加入者線(DSL)あるいは赤外線、ラジオおよびマイクロ波のような無線技術を使用して、ソフトウェアがウェブサイト、サーバあるいは他の遠隔ソースから送信される場合には、その同軸ケーブル、光ファイバケーブル、撚り対線、DSLあるいは赤外線、ラジオおよびマイクロ波のような無線技術は、媒体の定義に含まれる。ここで使用されるディスクは、ディスクがデータを光学的に、例えば、レーザで再生する間にディスクが通常磁気的にデータを再生するコンパクト・ディスク(CD)、レーザーディスク(登録商標)、光ディスク、ディジタル・バーサタイル・ディスク(DVD)、フロッピー(登録商標)ディスクおよびブルーレイ・ディスク(登録商標)を含む。上記のものの組合せもコンピュータ読取り可能媒体の範囲内で含まれるべきである。
ここに開示されたコンピュータ・プログラム製品は、コンピュータ読取り可能媒体、ならびにコンピュータ読取り可能媒体がパッケージ化される包装材料を含むコンピュータが読めるメディアに関連した任意の材料含む。コンピュータ・プログラム製品のコンピュータ読取り可能媒体に関連したコードは、コンピュータによって、例えば、1つ又は複数のデジタル信号プロセサ(DSPs)のような1つ又は複数のプロセッサ、汎用マイクロプロセッサー、特定用途向け集積回路(ASICs)、フィールド・プログラマブル・ロジック・アレイ(FPGAs)あるいは他の同等の集積またはデイスクリート論理回路によって実行されてもよい。いくつかの態様では、ここに記述された機能性は、符号化と復号のために構成された、または組合せビデオ符号器復号器(CODEC)に組み入れられた専用ソフトウェア・モジュールかハードウェア・モジュール内に提供されてもよい。
種々の態様が記述された。これらおよび他の態様は下記の請求項の範囲内である。
本出願は、2006年7月25日に申請された米国仮出願第60/833,437号(ドケットNo.060955P1)の利益を請求するものであり、その全内容は参照によってここに取り込まれる。