(57)【特許請求の範囲】
【請求項１】
ビデオ・エンコード方法であって、
スキップされたビデオ・フレームの動きを、並進動きと、スケーリング、シャーリング、回転、パン、およびチルトを含む動きパラメータのうちの少なくとも１つとに基づいて示す動き情報を、アファイン動きモデルを用いて生成することと、
少なくとも１つのビデオ・フレーム内で前記動き情報をエンコードすることとを備え、
前記動き情報を生成することは、
前記スキップされたビデオ・フレーム内のオブジェクトを、並進動き以外の動きを用いて識別するために、動き細分化を実行することと、
前記識別されたオブジェクトについて、前記並進動きと、前記動きパラメータのうちの少なくとも１つとに基づいて、前記動き情報を生成することとを備える、
方法。
【請求項２】
前記動き情報を生成することは、前記スキップされたビデオ・フレームの一部の動きを示す動き情報を生成することを備え、
前記方法は更に、
前記動き情報に関連付けられた前記スキップされたビデオ・フレームの一部を記載する位置情報を生成することと、
前記ビデオ・フレーム内で前記位置情報をエンコードすることと
を備える請求項１に記載の方法。
【請求項３】
前記少なくとも１つのビデオ・フレーム内で動き情報をエンコードすることは、スキップされていないビデオ・フレーム内で前記動き情報をエンコードすることを備える請求項１に記載の方法。
【請求項４】
前記スキップされたビデオ・フレームをビデオ・デコーダが補間するのを支援するために、前記ビデオ・デコーダへ前記ビデオ・フレームを送ることを更に備える請求項１に記載の方法。
【請求項５】
デジタル・ビデオ・データをエンコードする装置であって、
スキップされたビデオ・フレームの動きを、並進動きと、スケーリング、シャーリング、回転、パン、およびチルトを含む動きパラメータのうちの少なくとも１つとに基づいて示す動き情報を、アファイン動きモデルを用いて生成する手段と、
フレームをアセンブルし、少なくとも１つのビデオ・フレーム内で前記動き情報をエンコードする手段とを備え、
前記生成する手段は、
前記スキップされたビデオ・フレーム内のオブジェクトを、並進動き以外の動きを用いて識別するために、動き細分化を実行することと、
前記識別されたオブジェクトについて、前記並進動きと、前記動きパラメータのうちの少なくとも１つとに基づいて、前記動き情報を生成する、
装置。
【請求項６】
前記生成する手段は、前記スキップされたビデオ・フレームの一部の動きを示す動き情報を生成し、前記動き情報に関連付けられた前記スキップされたビデオ・フレームの一部を記載する位置情報を生成し、前記ビデオ・フレーム内で前記位置情報をエンコードする請求項５に記載の装置。
【請求項７】
前記生成する手段は、前記スキップされたビデオ・フレームを分析するように更に構成された分析モジュールであり、前記エンコードする手段は、アセンブリ・モジュールである請求項５に記載の装置。
【請求項８】
前記スキップされたビデオ・フレームをビデオ・デコーダが補間するのを支援するために、前記ビデオ・デコーダへ前記ビデオ・フレームを送信する送信機を更に備える請求項７に記載の装置。
【請求項９】
前記生成する手段および前記エンコードする手段は、プロセッサである請求項５に記載の装置。
【請求項１０】
前記プロセッサは、スキップされていないビデオ・フレーム内で前記動き情報をエンコードするように構成された請求項９に記載の装置。
【請求項１１】
実行されると、コンピュータに対して、
請求項１乃至４の何れかに記載の方法を実施させる手順
を実行させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本出願は、その全体が参照によって本明細書に組み込まれている２００５年９月２７日出願の米国仮出願６０／７２１，３４６号の優先権を主張する。
【技術分野】
【０００２】
本願は、マルチメディア・エンコードおよびデコードに関し、更に詳しくは、マルチメディア・アプリケーションのため、スキップされたフレームを補間する技術に関する。
【背景技術】
【０００３】
多くの異なるビデオ・エンコード規格が、デジタル・マルチメディア・シーケンスのコーディングのために確立された。ＭＰＥＧ（Moving Picture Experts Group）は、例えば、ＭＰＥＧ−１、ＭＰＥＧ−２およびＭＰＥＧ−４を含む多くの規格を開発した。その他の例は、国際電気通信連合（ＩＴＵ）Ｈ．２６３規格、および、"Advanced Audio Coding"と題され、ＭＰＥＧ−４でも記載されている新たなＨ．２６４規格を含む。これらのビデオ・コーディング規格は、一般に、データを圧縮方式でコーディングすることによって、マルチメディア・シーケンスの改善された送信効率をサポートする。圧縮は、マルチメディア・フレームの有効な送信のために送信される必要のある全体データ量を低減する。ビデオ・コーディングは、有線送信媒体および無線送信媒体の両方によって、ビデオ・ストリーミング・アプリケーション、ビデオ・カムコーダ・アプリケーション、ビデオ・テレフォニー（ＶＴ）・アプリケーション、およびビデオ・ブロードキャスト・アプリケーションを含む多くの状況において用いられる。
【０００４】
ＭＰＥＧ−４規格、ＩＴＵ  Ｈ．２６３規格、およびＩＴＵ  Ｈ．２６４規格は、例えば、フレーム間圧縮を提供するために、時間相関またはインター・フレーム相関と称される連続的なマルチメディア・フレーム間の類似点を利用するビデオ・コーディング技術をサポートする。インター・フレーム圧縮技術は、マルチメディア・フレームのピクセル・ベースの表示を動き表示に変換することによって、複数のフレームにまたがるデータ冗長性を利用する。インター・フレーム技術を用いてエンコードされたフレームは、予測（「Ｐ」）フレームあるいは双方向（「Ｂ」）フレームと称される。イントラ（「Ｉ」）・フレームと称される幾つかのフレームは、空間圧縮を用いてコード化される。これは、非予測的である。更に、幾つかのフレームは、イントラ・コード化ブロックとインター・コード化ブロックとの両方の組み合わせを含みうる。
【０００５】
低帯域幅要求を満たすために、例えばビデオ・テレフォニーまたはビデオ・ストリーミングのような幾つかのマルチメディア・アプリケーションは、フレーム・スキップを用いて、低フレーム・レートでビデオをコーディングすることによって、ビット・レートを下げる。スキップされたフレームは、「Ｓ」フレームと称される。あいにく、低フレーム・レート・ビデオは、動きジャーキネス（jerkiness）の形態でアーティファクト（artifacts）を生成する。従って、例えばフレーム・レート・アップ変換（ＦＲＵＣ）のようなフレーム補間は、一般に、スキップされたフレームの内容を補間するために、デコーダにおいて用いられる。
【０００６】
様々なＦＲＵＣ技術が開発されており、２つのカテゴリに分類することができる。第１のＦＲＵＣカテゴリは、フレーム反復（ＦＲ）およびフレーム平均化（ＦＡ）を含む。これらは共に、動きを考慮しないビデオ・フレームの組み合わせを用いる。これらアルゴリズムは、動きがない状態で、許容可能な結果をもたらす。しかしながら、フレーム間で顕著な動きがある場合、ＦＲは、動きジャーキネスを生成する傾向にあり、ＦＡは、物体のぶれを生成する。第２のＦＲＵＣカテゴリは、動きを利用する高度な変換技術に依存する。このカテゴリでは、補間されたフレームの品質は、推定された動きと真の物体動きとの間の相違に依存する。
【発明の概要】
【０００７】
一般に、本明細書は、スキップされたビデオ・フレームのより正確な補間を容易にするビデオ・エンコード技術およびビデオ・デコード技術について記載する。特に、スキップされたビデオ・フレームを補間するために、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他のパラメータとに基づいて示す動き情報を適用する技術が記載される。動き情報は、例えば、従来の２パラメータ並進動きベクトル・モデルとは対照的に、３またはそれ以上の動きパラメータに基づく動きモデルに基づいて動きを示すことができる。より多くの動きパラメータをモデル化する動き情報を用いることによって、ビデオ・デコーダは、スキップされたフレームをより正確に補間できるようになる。その結果、補間されたビデオ情報において目に見えるアーティファクトが低減され、より効率的なＦＲＵＣ処理がサポートされる。
【０００８】
従来のビデオ・デコーダでは、デコーダは、スキップされたフレームの動きを、並進動きのみに基づいて示す動き情報を取得し、スキップされたフレームを補間するために、並進動きベクトルを適用する。しかしながら、スキップされたフレームの動きベクトルは、一般に、スキップされたフレームに隣接したビデオ・フレームの動きベクトルから取得されるので、補間されたフレームにおいて、様々なアーティファクトをもたらす可能性がある。更に、動きベクトルは、並進動き情報のみを与えるので、並進動き以外のカメラ動きによって、補間されたフレームにおいて、その他様々なアーティファクトがもたらされる。
【０００９】
しかしながら、本明細書の技術に従って、フレーム補間を実行するビデオ・デコーダは、スキップされたビデオ情報を補間するために、より正確な動き情報を適用することによって、補間されたフレームにおける目に見えるアーティファクトの量を低減することができる。特に、幾つかの実施形態では、デコーダは、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を取得し、スキップされたビデオ・フレームを補間するために、この動き情報を適用する。
【００１０】
１つの実施形態では、デジタル・ビデオ・データを処理する方法は、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を取得することと、スキップされたビデオ・フレームを補間するために、この動き情報を適用することとを備える。
【００１１】
別の実施形態では、デジタル・ビデオ・データを処理する装置は、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を取得し、スキップされたビデオ・フレームを補間するために、この動き情報を適用する補間モジュールを備える。
【００１２】
別の実施形態では、デジタル・ビデオ・データを処理するプロセッサは、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を取得し、スキップされたビデオ・フレームを補間するために、この動き情報を適用するように構成されている。
【００１３】
別の実施形態では、デジタル・ビデオ・データを処理するデバイスは、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を取得し、スキップされたビデオ・フレームを補間するために、この動き情報を適用するように構成されたプロセッサを備える。
【００１４】
更なる実施形態では、デジタル・ビデオ・データを処理する装置は、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を取得する手段と、この動き情報を適用することによって、スキップされたビデオ・フレームを補間する手段とを備える。
【００１５】
別の実施形態では、機械読取可能媒体は、実行されると、機械に対して、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を取得させ、スキップされたビデオ・フレームを補間するために、この動き情報を適用させる命令を備えている。
【００１６】
また別の実施形態では、ビデオ・エンコード方法は、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を生成することと、少なくとも１つのビデオ・フレーム内の動き情報をエンコードすることとを備える。
【００１７】
別の実施形態では、デジタル・ビデオ・データをエンコードする装置は、スキップされたビデオ・フレームを分析し、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を生成する分析モジュールと、少なくとも１つのビデオ・フレーム内の動き情報をエンコードするアセンブリ・モジュールとを備える。
【００１８】
更なる実施形態では、デジタル・ビデオ・データをエンコードする装置は、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を生成する手段と、少なくとも１つのビデオ・フレーム内の動き情報をエンコードする手段とを備える。
【００１９】
別の実施形態では、デジタル・ビデオ・データを処理するプロセッサは、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を生成し、少なくとも１つのビデオ・フレーム内の動き情報をエンコードするように構成される。
【００２０】
別の実施形態では、機械読取可能媒体は、実行されると、機械に対して、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を生成させ、少なくとも１つのビデオ・フレーム内の動き情報をエンコードさせる命令を備えている。
【００２１】
本明細書に記載された技術は、ハードウェア、ソフトウェア、ファームウェア、またはこれら任意の組み合わせで実現される。ソフトウェアで実現される場合、本技術は、実行された場合に、本明細書に記載された方法のうち１または複数を実行する命令を含むプログラム・コードを備える機械読取可能媒体によって部分的に実現されうる。本明細書に記載の技術は、無線通信デバイス（ＷＣＤ）またはその他のデバイス内に組み込まれるのに適切なチップセットまたはチップによって組み込まれうる処理回路内で実現されうる。幾つかの実施形態では、本開示は、そのような回路を組み込むデバイスに関する。
【００２２】
１または複数の実施形態の詳細が、添付図面および以下の記載において述べられる。本開示のその他の特徴、目的、および利点は、詳細説明と図面から、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００２３】
【図１】図１は、スキップされたビデオ・フレームを補間するために、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を適用するように構成されたビデオ・エンコードおよびデコード・システムを例示するブロック図である。
【図２】図２は、ビデオ・デコーダで使用される典型的な補間デコーダ・モジュールを図示するブロック図である。
【図３】図３は、ビデオ・デコーダで使用される別の典型的な補間デコーダ・モジュールを図示するブロック図である。
【図４】図４は、ビデオ・エンコーダで使用されるフレーム処理モジュールを図示するブロック図である。
【図５】図５は、スキップされたフレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を用いて、スキップされたビデオ・フレームを補間するデコーダの典型的な動きを例示するフロー図である。
【図６】図６は、スキップされたフレームの一部の動き情報を、アファイン動きモデルに基づいて生成するエンコーダの典型的な動きを例示するフロー図である。
【図７】図７は、スキップされたフレームのための動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を、並進動きのみに基づく動き情報へ変換するデコーダの典型的動きを例示するフロー図である。
【図８】図８は、スキップされたビデオ・フレームを補間するために、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を適用するように構成されたビデオ・エンコードおよびデコード・システムを例示するブロック図である。
【発明を実施するための形態】
【００２４】
本開示は、スキップされた（「Ｓ」）ビデオ・フレームのより正確な補間を容易にするエンコード技術およびデコード技術を説明する。特に、スキップされたビデオ・フレームを補間するために、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を適用する技術が説明される。この動き情報は、例えば、従来の２パラメータの並進動きベクトル・モデルとは対照的に、３またはそれ以上の動きパラメータに基づく動きモデルに基づく動きを示すことができる。より多くの動きパラメータをモデル化する動き情報を用いることによって、デコーダは、スキップされたフレームをより正確に補間できるようになる。その結果、補間されたビデオ情報において目に見えるアーティファクトが低減される。
【００２５】
従来のデコーダでは、デコーダは、スキップされたフレームの動きを、並進動きのみに基づいて示す動き情報を取得し、スキップされたフレームを補間するために、並進動きベクトルを適用している。しかしながら、スキップされたフレームの動きベクトルは、一般に、スキップされたフレームに隣接したビデオ・フレームの動きベクトルから取得されるので、補間されたフレームにおいて、様々なアーティファクトをもたらす可能性がある。更に、動きベクトルは、並進動き情報のみを与えるので、並進動き以外のカメラ動きによって、補間されたフレームにおいて、その他様々なアーティファクトがもたらされる。
【００２６】
しかしながら、本明細書の技術に従ってフレーム補間を実行するデコーダは、スキップされたビデオ・フレームを補間するために、より正確な動き情報を適用することによって、補間されたフレームにおける目に見えるアーティファクトの量を低減することができる。特に、デコーダは、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を取得し、スキップされたビデオ・フレームを補間するために、この動き情報を適用する。
【００２７】
デコーダは、スキップされたビデオ・フレームのより正確な動き情報を、１または複数の隣接するビデオ・フレームに関連付けられた動き情報を用いて生成することができる。あるいは、デコーダは、１または複数の送信されるビデオ・フレームに動き情報を埋め込むエンコーダから、スキップされたビデオ・フレームのより正確な動き情報を受け取る。このように、エンコーダは、スキップされたビデオ・フレームを補間するデコーダを支援するために、スキップされたビデオ・フレームに関連付けられた動き情報を送信する。何れの場合も、デコーダは、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を適用することによって、スキップされたフレームをより正確に補間する。
【００２８】
１つの実施形態では、エンコーダとデコーダとの両方が、スキップされたフレームの動きを、並進動きと、例えばアファイン動きモデルに基づいた動き情報のような少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を用いることをサポートするように構成されうる。この場合、エンコーダは、アファイン・モデルに基づいて動き情報を生成し、この動き情報を、デコーダに送信し、スキップされたフレームをデコーダが補間することを支援する。エンコーダは、例えばスキップされたフレームに先行または後続するＰフレーム内のような１または複数のエンコード済みフレーム内、または、スキップされたフレーム動き情報専用であり、エンコード済みフレームとは独立して送信されるビデオ・フレーム内で、スキップされたフレームの動き情報を送信する。
【００２９】
別の実施形態では、エンコーダは、スキップされたフレームの動きを、並進動きおよび少なくとも１つのその他の動きパラメータに基づいて示す動き情報を生成するように構成される。しかしながら、デコーダは、そのような動き情報を使用するようには構成されないかもしれない。この場合、エンコーダは、スキップされたフレームの動き情報を、並進動きと少なくとも１つの他の動きパラメータとに基づいて生成し送信する。デコーダは、受け取った動き情報を、並進動きのみに基づいて動きを示す動きベクトルへ変換し、スキップされたビデオ・フレームを、この並進動きベクトルを用いて補間する。
【００３０】
更なる実施形態では、デコーダのみが、スキップされたフレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を用いるように構成される。したがって、このデコーダは、スキップされたフレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を、エンコーダから受け取らない。その代わり、デコーダは、スキップされたフレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を、スキップされたビデオ・フレームに隣接した１または複数のビデオ・フレームに関連付けられた動き情報から生成する。
【００３１】
図１は、スキップされたビデオ・フレームを補間するために、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を適用するように構成されたビデオ・エンコードおよびデコード・システム１０を例示するブロック図である。図１に示すように、システム１０は、送信チャネル１５によって接続されたビデオ・エンコーダ１２とビデオ・デコーダ１４とを含む。ビデオ・シーケンスのようなエンコードされたマルチメディア・シーケンスは、ビデオ・エンコーダ１２から、伝送チャネル１５によってビデオ・デコーダ１４に送信されうる。伝送チャネル１５は、有線媒体または無線媒体でありうる。この目的のために、ビデオ・エンコーダ１２およびビデオ・デコーダ１４は、そのような通信を容易にする送信機および受信機（図示せず）を含みうる。システム１０はまた、例えばビデオ・テレフォニーのために、双方向ビデオ送信をサポートしうる。伝送チャネル１５の反対端では、相対するエンコード要素、デコード要素、多重化（ＭＵＸ）要素、および逆多重化（ＤＥＭＵＸ）要素が備えられうる。幾つかの実施形態では、ビデオ・エンコーダ１２とビデオ・デコーダ１４とが、例えばビデオ・ストリーミング、ビデオ・テレフォニーまたはそれら両方のために備えられた無線通信デバイスのようなビデオ通信デバイス内に組み込まれうる。
【００３２】
システム１０は、ＳＩＰ（Session Initiated Protocol）、ＩＴＵ  Ｈ．３２３規格、ＩＴＵ  Ｈ．３２４規格、またはその他の規格に従ってビデオ・テレフォニーをサポートすることができる。ビデオ・エンコーダ１２は、例えばＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ  Ｈ．２６３、あるいは"Advanced Audio Coding"と題され、ＭＰＥＧ−４  パート１０にも述べられているＩＴＵ  Ｈ．２６４のようなビデオ圧縮規格に従ってエンコードされたビデオ・データを生成する。図１には示されていないが、ビデオ・エンコーダ１２およびビデオ・デコーダ１４は、オーディオ・エンコーダおよびオーディオ・デコーダとそれぞれ統合され、データ・ストリームのオーディオ部分およびビデオ部分を取り扱うための適切なＭＵＸ−ＤＥＭＵＸモジュールを含む。このＭＵＸ−ＤＥＭＵＸモジュールは、ＩＴＵ  Ｈ．２２３マルチプレク・サプロトコル、または、例えばユーザ・データグラム・プロトコル（ＵＤＰのようなその他のプロトコルに従いうる。あるいは、システム１０は、ＳＩＰプロトコルを使用しうる。
【００３３】
ビデオ・エンコーダ１２およびビデオ・デコーダ１４は、１または複数のプロセッサ、デジタル・シグナル・プロセッサ、特定用途向けＩＣ（ＡＳＩＣ）、フィールド・プログラム可能ゲートアレー（ＦＰＧＡ）、離散的ロジック、ソフトウェア、ハードウェア、ファームウェア、あるいはそれらの任意の組合せとして実施されるかもしれない。ビデオ・エンコーダ１２およびビデオ・デコーダ１４の例示する構成要素は、１または複数のエンコーダまたはデコーダに含まれうる。そして、それらのうち何れかは、エンコーダ／デコーダ（コーデック）の一部として統合されうる。
【００３４】
エンコーダ１２は、フレーム・スキップを用いて、短縮されたフレーム・レートにおいてビデオ情報をエンコードする。更に詳しくは、エンコーダ１２は、複数のビデオ・フレームをエンコードして、デコーダ１４へ送信する。複数のビデオ・フレームは、１または複数のイントラ（「Ｉ」）フレーム、予測（「Ｐ」）フレーム、あるいは双方向（「Ｂ」）フレームを含みうる。ビデオ・エンコーダ１２は、図１において、Ｐフレーム１６を生成し、送信するように例示されているが、エンコーダ１２は更に、その他のＰフレームや、１または複数のＩフレームおよびＢフレームをも生成し送信する。Ｐフレーム１６は、ビデオ・デコーダ１４が、ビデオ情報のフレームをデコードし、表すことができるための十分な情報を含む予測フレームである。特に、１または複数の動きベクトルおよび量子化された予測誤差が、Ｐフレーム１６のためにエンコードされる。短縮されたフレーム・レートにおいてビデオ情報をエンコードするために、エンコーダ１２は、伝送チャネル１５を介した帯域幅維持のため、エンコードされた情報の全体量を低減するために設計されたフレーム・スキップ機能に従って、特定のフレーム（スキップされたフレームまたはＳフレームと称される）をスキップしうる。言い換えれば、エンコーダ１２は実際には、Ｓフレームをエンコードも送信もしない。その代わり、デコーダ１４は、スキップされたフレームを補間して、ビデオ情報のフレームを生成する。
【００３５】
図１の例では、ビデオ・エンコーダ１２は、例えばフレームＦ１、Ｆ２、およびＦ３のような到来するビデオ情報のフレームを処理するように構成されたフレーム処理モジュール２０を含む。到来するフレームＦ１、Ｆ２、およびＦ３の分析に基づいて、フレーム処理モジュール２０は、到来するフレームをＰフレームとしてエンコードするか、これらフレームをスキップするかを判定する。Ｆ２は、スキップされるフレームを示す一方、フレームＦ１およびＦ３は、Ｐフレームの先行および後続する各フレームを示す。
【００３６】
ビデオ・デコーダ１４は、エンコード済みのビデオ・フレームをエンコーダ１２から受け取り、このビデオ・フレームをデコードする。Ｐフレームの復号と、Ｓフレームの補間とを取り扱うために、ビデオ・デコーダ１４は、標準的デコーダ・モジュール２２と、補間デコーダ・モジュール２４とを含む。標準的デコーダ・モジュール２２は、標準的デコーダ技術を適用して、例えばＰフレーム１６のように、エンコーダ１２によって送られた各Ｐフレームをデコードする。上述したように、各Ｐフレームでエンコードされた情報は、標準的デコーダ・モジュール２２がビデオ情報のフレームをデコードし表すことができるのに十分である。標準的デコーダ・モジュール２２は更に、例えばＩフレームまたはＢフレームのようなその他の符合化フレームをもデコードすることができる。
【００３７】
補間デコーダ・モジュール２４は、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を適用することによって、例えばフレームＦ２のようなスキップされたビデオ・フレームを補間する。スキップされたフレームは、デコーダ１４に送信されないが、動き情報は、スキップされたフレームのコンテンツの補間をサポートする。スキップされたフレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を適用することによって、補間デコーダ・モジュール２４は、補間されたフレームにおける目に見えるアーティファクトを減らし、もって、ビデオ出力における改善された視覚品質を達成することができる。
【００３８】
例として、補間デコーダ・モジュール２４は、スキップされたビデオ・フレームの動きを、アファイン動きモデルに基づいて示す動き情報を取得し、スキップされたビデオ・フレームを補間するために、この動き情報を適用する。アファイン動きモデルは、並進動きのみならず、回転、シャーリング、およびスケーリングをも近似する。アファイン動きモデルは、下記式によって表されうる。  
【数１】
0005619692.tif 000002
【００３９】
ここで（ｘ’，ｙ’）および（ｘ，ｙ）は、変位前および変位後の点の画像座標をそれぞれ示し、ａ１〜ａ６は、アファイン変換の係数を示す。アファイン動きモデルに基づく動き情報は、従来の並進動きベクトルの２パラメータ近似とは異なり、スキップされたフレームの動きの６パラメータ近似を提供する。
【００４０】
動き情報は、スキップされたフレームの動きを、アファイン動きモデル以外の動きモデルに基づいて示すことができる。例えば、この動き情報は、並進動きと、スケーリング、シャーリング、回転、パン、およびチルトのうちの少なくとも１つとを考慮する動きモデルに基づいて動きを示すことができる。例えば、この動き情報は、厳密なモデル（３パラメータ）、厳密かつスケールモデル（４パラメータ）、双一次（bilinear）モデル（８パラメータ）、または、並進動きと、例えば平面ホモグラフィのような少なくとも１つのその他の動きパラメータとに基づいて動きを示すその他の動きモデルに基づいて動きを示すことができる。更に、この動き情報は、例えば物体変形モデルまたはピクセル・ベース動きモデルのような非剛体動きモデルに基づいて動きを示すことができる。
【００４１】
１つの実施形態では、補間デコーダ・モジュール２４は、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を生成する。以下に詳細に説明するように、補間デコーダ・モジュール２４は、スキップされたフレームの動き情報を、スキップされたビデオ・フレームに隣接した１または複数のビデオ・フレームに関連付けられた動き情報を用いて生成する。例として、補間デコーダ・モジュール２４は、先行基準フレームおよび後続基準フレームに関連付けられた並進動きベクトルを用いて、並進動きおよび少なくとも１つのその他の動きパラメータに基づいて、スキップされたフレームの動きを示す動き情報を生成しうる。あるいは、補間デコーダ・モジュール２４は、並進動きと、先行基準フレームおよび後続基準フレームに関連付けられた少なくとも１つのその他の動きパラメータとに基づく動き情報を用いて、スキップされたフレームの動きを示す動き情報を並進動きと少なくとも１つのその他の動きパラメータとに基づいて生成することができる。このように、補間技術は、もっぱらデコーダ内で実施される。
【００４２】
あるいは、補間デコーダ・モジュール２４は、ビデオ・エンコーダ１２からの支援に依存して、スキップされたフレームの補間を行う。特に、エンコーダ１２は、補間デコーダ・モジュール２４が、スキップされたフレームを補間することを支援するために、例えばＳフレーム動き情報１８のようなスキップされたフレームの動き情報を生成し、エンコードし、送信することができる。エンコーダ１２は、専用フレーム、あるいは例えばＰフレーム１６のような１または複数の送信されたビデオ・フレームで、Ｓフレーム動き情報１８をデコーダ１４へ送信する。このように、補間デコーダ・モジュール２４は、エンコーダ１２の支援を受けて、スキップされたフレームを補間する。Ｓフレーム動き情報１８は、スキップされたフレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す。ビデオ・エンコーダ１２は、スキップされたフレームと、先行フレーム、後続フレーム、先行フレームおよび後続フレームの両方、あるいは任意の数の隣接フレームとの間の動きを分析することによって、スキップされたフレームの動き情報を推定することができる。このようにして、ビデオ・エンコーダ１２は、スキップされたフレームに関連付けられた情報を生成し、送信する。あるいは、ビデオ・エンコーダ１２は、先行フレームと後続フレームとの間の動きを分析することによって、スキップされたフレームの動き情報を推定することができる。
【００４３】
エンコーダ１２は、通常グローバル動き情報と称される、スキップされた全ビデオ・フレームを示すＳフレーム動き情報１８を生成し送信する。しかしながら、帯域幅要求を低減するために、エンコーダ１２は、オブジェクトベース情報またはローカル動き情報と称されるスキップされたフレームの一部のみについて、Ｓフレーム動き情報１８を生成し、送信する。特に、エンコーダ１２は、スキップされたフレーム内の選択されたビデオ・ブロックの動きを示すＳフレーム動き情報１８を生成しうる。この場合、エンコーダ１２はまた、動き情報に関連付けられたスキップされたビデオ・フレームの、例えばビデオ・ブロックのような部分を記述する位置情報をも生成することができる。従って、動き情報は、アファイン・モデル近似自身のみならず、オブジェクトまたはビデオ・ブロック記述をも含みうる。スキップされたフレームの他のビデオ・ブロックは、特定の動き情報を必要とすることなく、正確に補間されうる。しばしばマクロブロック（ＭＢ）と称されるビデオ・ブロックは一般に、スキップされたフレーム内のピクセルからなる４×４ブロック、８×８ブロック、または１６×１６ブロックである。
【００４４】
更に、エンコーダ１２は、スキップされたフレームをデコーダ１４が補間するのを支援するために、スキップされたフレームに関連付けられたその他の情報を生成し、送信することができる。動き情報に加え、エンコーダ１２は例えば、スキップされたフレーム内で、スキップされたフレームを補間する際に、ビデオ・デコーダ１４によって使用される特定の補間式、または、例えばマクロブロック（ＭＢ）やより小さなブロックのように、選択されたビデオ・ブロックのために使用される特定の補間式を指定する情報を生成し送信することができる。
【００４５】
ビデオ・デコーダ１４は、特に、ビデオ・エンコーダ１２によって送信されたＳフレーム動き情報を認識し利用するように構成されうる。しかしながら、ビデオ・デコーダ１４が、Ｓフレーム動き情報１８を認識するために備えられていないのであれば、この情報は無視され、ビデオ・デコーダ１４によって適用される補間技術に従って補間が進められる。例えば、受け取ったビデオ・フレーム内に埋め込まれたスキップされたフレーム情報を認識するためにビデオ・デコーダ１４が備えられていない場合、ビデオ・デコーダ１４は、スキップされたフレームについて、より正確な動き情報を生成することができる。
【００４６】
その他多くの構成要素もまた、エンコードおよびデコード・システム１０に含まれうるが、簡略化のため、および例示の簡素化のために図１には特に示していない。本明細書に記載の技術は、その他様々なアーキテクチャに従って実施されうるので、図１に例示したアーキテクチャは、単なる典型例である。更に、図１に例示する機能は、ハードウェア構成要素および／またはソフトウェア構成要素の任意の適切な組み合わせによって実現されうる。
【００４７】
図２は、図１のビデオ・デコーダ１４のようなビデオ・デコーダで使用される典型的な補間デコーダ・モジュール３０を図示するブロック図である。補間デコーダ・モジュール３０は、補間フレームを生成するように動きする補間モジュール３２および動き推定モジュール３４を含んでいる。補間モジュール３２は、スキップされたビデオ・フレームを補間するために、スキップされたフレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を適用する。
【００４８】
補間モジュール３２は、ビデオ・エンコーダ１２（図１）から動き情報を取得することができる。上述したように、ビデオ・エンコーダ１２は、スキップされたフレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を生成し、１または複数のビデオ・フレーム内の動き情報をエンコードして、スキップされたビデオ・フレームを補間する補間デコーダ・モジュール３０を支援する。この場合、補間モジュール３２は、スキップされたフレームを補間するために、スキップされたフレームの受け取られた動き情報を適用する。
【００４９】
しかしながら、補間デコーダ・モジュール３０は、スキップされたフレームの動きを示す動き情報を生成する必要があるかもしれない。例えば、ビデオ・エンコーダ１２は、スキップされたフレームの動き情報を送信するか、あるいは、スキップされたフレームの動き情報の一部のみを送信するようには構成されていないかもしれない。あるいは、補間デコーダ・モジュール３０は、送信されたビデオ・フレーム内で、スキップされたフレームの動き情報を認識するように構成されていないかもしれない。何れの場合であれ、動き推定モジュール３４は、スキップされたビデオ・フレームに隣接する１または複数のビデオ・フレームに関連付けられた動き情報を用いて、スキップされたフレームの動き情報の少なくとも一部を生成する。例えば、動き推定モジュール３４は、スキップされたフレームの動き情報を、例えば先行フレーム、先行および後続のフレーム、または２より多い隣接したビデオ・フレームのような１または複数の基準フレームに関連付けられた１または複数の並進動きベクトルに基づいて生成しうる。更に、動き推定モジュール３４は、スキップされたビデオ・フレームに隣接したビデオ・フレームの並進動きと少なくとも１つのその他の動きパラメータとに基づいて、動き情報を生成しうる。例えば、動き推定モジュール３４は、Ｐフレーム１６の動き情報を生成しうる。
【００５０】
例として、デコーダ１４によって受け取られた先行および後続の基準フレームが、Ｎ個のマクロブロックに細分化され、マクロブロックの各々に関連付けられた並進動きベクトルを有することができる。動き推定モジュール３４は、基準フレームのマクロブロックに関連付けられた並進動きベクトルに基づいて、スキップされたビデオ・フレームの並進動きベクトルを推定する。動き推定モジュール３４は、複数の並進動きベクトルを用いて、アファイン・モデルのパラメータを推定する。並進動きベクトルはそれぞれ、２パラメータ方程式（つまり、ｘ１＝ｘ２＋ａ、ｙ１＝ｙ２＋ｃ））に相当する。１つの実施形態では、動き推定モジュール３４は、３つほどの並進動きベクトルを用いて、アファイン動きモジュールに基づいて、動き情報を生成しうる。しかしながら、動き推定モジュール３４は、一般に、３を越える並進動きベクトルを持つだろう。複数の並進動きベクトルからアファイン動きパラメータを導出するために、様々な数学的モデルが適用されうる。動き推定モジュール３４は、例えば、最小二乗推定を用いて、アファイン動きパラメータを導出することができる。動き推定モジュール３４は、例えば、ピースワイズ・プラナ（piecewise planar）動きベクトルフィールド近似の性能が最も低いことに基づいて、アファイン・モデルを推定することができる。
【００５１】
あるいは、動き推定モジュール３４は、スキップされたフレーム内の特定のオブジェクトまたはマクロブロックのように、スキップされたフレームの一部のみについて動きを推定することができる。この場合、動き推定モジュール３４は、スキップされたフレームの全てのマクロブロックのための並進動きベクトルを生成する。動き推定モジュール３４は、上述したような並進動きベクトルから、アファイン動きモデル・パラメータを近似する。各マクロブロックは、生成されたアファイン動きモデルを用いて、ピクセル毎ピクセル・ベースで再構築される。更に、各マクロブロックは、アファイン動きパラメータを近似するために使用される並進動きベクトルを用いて再構築される。アファイン動きモデル・パラメータを用いて再構築されたマクロブロックの歪みは、並進動きベクトルを用いて再構築された対応するマクロブロックと比較される。この歪みが、予め定めたしきい値より上にある場合、このアファイン動きモデルは、大きな歪みに関連付けられたマクロブロックを正確に近似していないと判定され、このマクロブロックが、オブジェクトから取り除かれる。言い換えれば、アファイン・モデル推定は、特定のマクロブロックには当てはまらないと認められる。再構築された全てのマクロブロック間の歪みを分析した後、アファイン動きモデル・パラメータは、しきい値よりも下の歪み値を持っている、フレーム内のマクロブロックにのみ当てはまると判定される。
【００５２】
図３は、ビデオ・デコーダで使用される他の典型的な補間デコーダ・モジュール３６を図示するブロック図である。補間デコーダ・モジュール３６は、図２の補間デコーダ・モジュール３０に実質的に一致するが、この補間デコーダ・モジュール３６は、並進動きと少なくとも１つのその他の動きパラメータとに基づく動き情報を、並進動きのみに基づく動き情報へ変換する動き情報変換モジュール３８を含む。並進動きと少なくとも１つのその他の動きパラメータとに基づく動き情報を、並進動きベクトルへ変換することによって、並進動きベクトルのみを用いて動き補償を行うハードウェア・コンフィグレーションおよび／またはソフトウェア・コンフィグレーションを構成するビデオ・デコーダにおいて、より正確な動き情報を用いることが可能となる。
【００５３】
動き情報変換モジュール３８は、動き推定モジュール３４から、または、エンコーダ１２によって送信されたスキップされたビデオ・フレームに隣接した１または複数のフレームから、スキップされたフレームの動きを示す動き情報を得る。並進動きと少なくとも１つのその他の動きパラメータとに基づいた動き情報を、並進動きのみに基づいた動き情報に変換するために、動き情報変換モジュール３８は、スキップされたフレームの動き情報に基づいて、興味のあるブロック内の１または複数のピクセルについて、並進動きベクトルを生成する。動き情報変換モジュール３８は、例えば、動きのアファイン・モデル近似に、ピクセルの座標を入力することによって、ピクセルの各々について、並進動きベクトルを生成しうる。言い換えれば、アファイン・モデル近似の出力は、特定のピクセルに関連付けられた動きベクトルである。
【００５４】
動き情報変換モジュール３８は、興味のあるブロックについて、単一の動きベクトルを生成するために、ピクセルに関連付けられた並進動きベクトルをマージする。動き情報変換モジュール３８は、例えば、平均化演算、メジアン演算、またはその他の類似の数学的演算を用いて、ピクセルの並進動きベクトルをマージすることができる。動き情報変換モジュール３８は、幾つかのより小さなサイズ・ブロックについて動きベクトルを反復的に生成することによって、より大きなサイズのブロックについての並進動きベクトルを生成することができる。動き情報変換モジュール３８は、例えば、幾つかの２×２ブロックについて並進動きベクトルを反復的に生成し、次に、２×２ブロックからなる動きベクトルをマージすることによって、８×８ブロックの動きベクトルを生成する。
【００５５】
この変換技術は、一般的のみの目的用である。動き情報変換モジュール３８は、並進動きと少なくとも１つのその他の動きパラメータとに基づく動き情報を、並進動きベクトルへ変換するその他の変換技術を利用することもできる。例えば、動き情報変換モジュール３８は、アファイン・モデル動き情報に基づいて、興味のあるブロック内の１または複数のピクセルについて、並進動きベクトルを生成することができる。動き情報変換モジュール３８は、ピクセル変換動きベクトルを選択し、選択されたピクセル変換動きベクトルを、興味のあるブロックの並進動きベクトルを出力する動き推定モジュールのためのシード動きベクトルとして用いる。例えば、興味のあるマクロブロックの中心ピクセルの並進動きベクトルは、マクロブロックのためにシードされた動きベクトルとして使用することができる。動き予測は、マクロブロックの中心ピクセルに関連付けられた動きベクトルから始まる。従って、シード動きベクトルは、ある探索範囲内の初期探索点の役割をする。アファイン・モデルは、周囲の動きベクトルと同様に、中心ピクセルの動きベクトルを用いて、最小２乗フィッティング・アルゴリズムによって推定されうる。
【００５６】
動き情報を並進動きベクトルに変換することによって、並進動きベクトルのみを用いて動き補償を実施するハードウェア・コンフィグレーションおよび／またはソフトウェア・コンフィグレーションを適用するビデオ・デコーダにおいて本開示の技術を実現することが可能となる。並進動きと少なくとも１つのその他の動きパラメータとに基づいて動きを示す動き情報は使用されないが、適用される並進動きベクトルはより正確である。なぜなら、それらは、例えばアファイン動きモデル近似のようなより正確な動き情報に基づいて生成されるからである。
【００５７】
図４は、例えば図１のビデオ・エンコーダ１２のようなビデオ・エンコーダで使用されるフレーム処理モジュール４０を例示するブロック図である。フレーム処理モジュール４０は、フレーム・タイプ判定モジュール４２、スキップ・フレーム分析モジュール４４、およびフレーム・アセンブリ・モジュール４６を含んでいる。スキップ・フレーム分析モジュール４４は更に、動き推定モジュール４８および位置推定モジュール５０を含んでいる。一般に、スキップ・フレーム分析モジュール４４は、スキップされるフレームを分析し、スキップされるフレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を生成する。この生成された動き情報は、１または複数のビデオ・フレーム内で送信され、デコーダ１４が、スキップされたフレームを、改善された精度で補間することを支援する。
【００５８】
フレーム・タイプ判定モジュール４２は、到来するビデオ情報が、例えばＩフレーム、Ｐフレーム、Ｂフレームのようなフレームでエンコードされるべきか、あるいはスキップされるべきかを判定する。フレーム・タイプ判定モジュール４２は、伝送チャネル１５（図１）を介した帯域幅維持のため、符号化される全情報量を低減するように設計された一様または非一様のフレーム・スキップ機能に部分的に基づいて、フレームをスキップすることを判定することができる。例えば、フレーム・タイプ判定モジュール４２は、ｎフレーム毎にスキップしたり、１または複数の動的スキップ基準に基づいてフレームをスキップすることができる。フレーム・タイプ判定モジュール４２は、フレーム・アセンブリ・モジュール４６にフレーム判定を伝える。
【００５９】
スキップ・フレーム分析モジュール４４は、スキップされたフレームの動きを示す動き情報を生成する。スキップ・フレーム分析モジュール４４は、動き推定情報および／または位置情報を生成しうる。これら各々は、スキップされたフレームの補間を行うデコーダを支援するために、デコーダによって提供されるスキップ・フレーム動き情報の一部を形成しうる。特に、動き推定モジュール４８は、例えばアファイン動きモデルに基づく動き情報のように、スキップされたフレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を生成する。動き推定モジュール４８は、例えば、図１の先行フレームＦ１および後続フレームＦ３のようなスキップされたフレームに隣接する１または複数のビデオ・フレームと、スキップされたフレームとの間の動きに基づいて、動き情報を生成しうる。あるいは、動き推定モジュール４８は、先行フレームＦ１と後続フレームＦ３との間の動きに基づいて、動き情報を生成しうる。
【００６０】
動き推定モジュール４８は、スキップされたフレーム全体の動きを示す動き情報を生成しうる。例えば、スキップされるフレームと、先行基準フレームとが、Ｎ個のマクロブロックへ細分化されうる。動き推定モジュール４８は、先行フレーム、およびスキップされるフレームのマクロブロックの各々の間の並進動きを計算しうる。並進動きベクトルはそれぞれ、２つのパラメータ方程式（つまりｘ１＝ｘ２＋ａ、ｙ１＝ｙ２＋ｃ）に相当する。動き推定モジュール４８は、先行するフレームおよびスキップされたフレームを用いて計算された並進動きベクトルに基づいて、スキップされたビデオ・フレーム全体のアファイン動き情報を生成する。動き推定モジュール４８は、３つほどの並進動きベクトルを用いて、アファイン動きモジュールに基づいて動き情報を生成しうる。例えば最小２乗推定のような複数の並進動きベクトルからアファイン動きパラメータを導出するために、様々な数学的モデルを適用することができる。この場合、生成された動き情報は、スキップされたフレーム全体に適用されるので、位置推定モジュール５０は、位置情報を生成する必要はないかもしれない。
【００６１】
あるいは、動き推定モジュール４８は、スキップされたフレーム内の特定のオブジェクトまたはビデオ・ブロックのための動きを示す動き情報を生成することができる。言い換えれば、動き推定モジュール４８によって生成された動き情報は、フレーム内のマクロブロックの各々に適用することができないが、フレームの一部にのみ適用することができる。この場合、位置推定モジュール５０は、生成された動き情報に関連付けられたスキップされたビデオ・フレームのビデオ・ブロックまたはオブジェクトのような部分を記述する位置情報を生成する。位置推定モジュール５０は、例えば、ローカルな動き情報があてはまるオブジェクトまたは特定のビデオ・ブロックの境界を示すバイナリ・ビットマップを生成しうる。位置推定モジュール５０は、生成されたアファイン動きモデルを用いて、ピクセル毎ベースでマクロブロックの各々を再構築する。位置推定モジュール５０は、同時に、アファイン動きパラメータを近似するために使用される並進動きベクトルを用いて、マクロブロックの各々を再構築する。位置推定モジュール５０は、アファイン動きモデル・パラメータを用いて再構築されたマクロブロックまたはピクセルと、並進動きベクトルを用いて再構築された対応するマクロブロックまたはピクセルとの間の歪みを比較する。歪みが予め定めたしきい値よりも上にある場合、アファイン動きモデルは、大きな歪みに関連付けられたマクロブロックを正確に近似しないものと判定され、オブジェクトからマクロブロックが取り除かれる。言い換えれば、アファイン変換モデル推定は、特定のマクロブロックまたはピクセルには当てはまらないことが認められる。再構築された全てのマクロブロック間の歪みを分析した後、しきい値よりも低い歪み値を有するフレーム内にマクロブロックを適用することのみのために、アファイン動きモデル・パラメータが決定される。位置推定モジュール５０は、ローカル動き情報が当てはまるピクセルまたはブロックの境界を示すバイナリ・ビットマップを生成しうる。位置情報で識別されないビデオ・ブロックまたはオブジェクトは、特定の動き情報のための潜在的な必要性無しで補間されうる。
【００６２】
別の実施形態では、動き推定モジュール４８は、スキップされたフレームの動きを示す動き推定情報を生成できない。しかしながら、位置推定モジュール５０は、動き情報が動き推定モジュール４８によって生成されたのであれば当てはまるスキップされたフレームの部分を識別する位置情報を生成することができる。このように、デコーダ１４は、スキップされたフレームの動きを示す動き情報を生成するが、エンコーダは、デコーダが、生成された動き情報を適用するオブジェクトまたはマクロブロックを示す動き情報を提供することによって、スキップされたフレームを補間することを支援する。
【００６３】
フレーム・アセンブリ・モジュール４６は、動き情報、ブロック・モード、係数、および、ビデオ・デコーダ１４（図１）が、ビデオ情報のフレームをデコードし表すことを可能にするのに十分なその他の情報を用いてエンコードされたフレームとして指定されたビデオ情報をエンコードする。フレーム・アセンブリ・モジュール４６は、実際には、スキップされたフレームとしてフレーム・タイプ判定モジュール４２によって指定された到来ビデオ情報をエンコードも送信もしない。代わりに、フレーム・アセンブリ・モジュール４６は、スキップされたフレームをビデオ・デコーダが補間するのを支援するために、ビデオ・デコーダへ送信される１または複数のビデオ・フレームにおいて、スキップ・フレーム分析モジュール４４から受け取った動き情報をエンコードする。フレーム・アセンブリ・モジュール４６は、スキップされたフレームに先行または後続するＰフレーム１６（図１）内のように、１または複数のエンコードされたフレーム内に、スキップされたフレームの動き情報を埋め込むことができる。言い換えれば、フレーム・アセンブリ・モジュール４６は、スキップされていないビデオ・フレーム内に、スキップされたフレームのための動き情報を埋め込むことができる。あるいは、フレーム・アセンブリ・モジュール４６は、スキップされたフレーム動き情報に専用であって、Ｐフレームとは独立して送信されるビデオ・フレーム内に、スキップされたフレームの動き情報を埋め込むことができる。
【００６４】
図５は、スキップされたビデオ・フレームの動きを、例えばビデオ・デコーダ１４のように、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を用いて、スキップされたビデオ・フレームを補間するデコーダの典型的な動きを例示するフローチャートである。デコーダ１４は、ビデオ・エンコーダから、複数のデジタル・ビデオ・フレームを受け取る（５２）。デコーダ１４は、例えば、エンコーダから１または複数のＩフレーム、ＰフレームおよびＢフレームを受け取ることができる。
【００６５】
デコーダ１４は、スキップされたビデオ・フレームの動きを示す動き情報の受け取られたフレームを分析する（５４）。デコーダ１４は、スキップされたフレームの動き情報を含むフレームを示すフレーム内で、特定のタイプのフレームまたはヘッダ情報を識別するように構成されうる。
【００６６】
デコーダ１４が、受け取られたフレーム内のスキップされたフレームについて動き情報を識別しないか、または、スキップされたフレームの不完全な動き情報を識別するのであれば、デコーダ１４は、スキップされたフレームの動き情報を生成する（５６）。デコーダ１４は、受け取られたフレーム内に埋め込まれたスキップされたフレームの動き情報を識別するように構成されないかもしれない。あるいは、エンコーダは、スキップされたフレームのどの動き情報も送信しないかもしれないし、または、上述したような位置情報のみを送信するかもしれない。デコーダ１４は、例えば、先行するフレーム、先行するフレームおよび後続するフレーム、または２を超える隣接するビデオ・フレームのようなスキップされたビデオ・フレームに隣接した１または複数のビデオ・フレームに関連付けられた動き情報を用いて、スキップされたフレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を生成する。例えば、デコーダ１４は、先行する基準フレームのマクロブロックに関連付けられた並進動きベクトルを用いて、アファイン・モデルの係数を近似することができる。
【００６７】
次に、デコーダは、並進動きと少なくとも１つのその他の動きパラメータとに基づいて動きを示す動き情報を、並進動きベクトルへ変換するかを判定する（５８）。デコーダ１４が、アファイン動きモデルに基づいて動きを示す動き情報を適用するように構成されているのであれば、デコーダ１４は、スキップされたフレームの動き情報を変換せず、代わりに、並進動きと少なくとも１つのその他の動きパラメータとに基づいて動きを示す動き情報を適用して、スキップされたフレームを補間する（６０）。
【００６８】
デコーダ１４が、アファイン動きモデルと少なくとも１つのその他の動きパラメータとに基づいて動きを示す動き情報を適用するように構成されていないのであれば、デコーダ１４は、動き情報を、並進動きベクトルへ変換する（６２）。デコーダ１４は、例えば、並進動き補償のみを実行するように構成される。この場合、デコーダ１４は、スキップされたフレームの動き情報を、並進動きのみに基づく動き情報に変換する。デコーダ１４は、例えば、アファイン動き情報に基づいて、興味のあるブロック内の１または複数のピクセルの並進動きベクトルを生成し、生成されたピクセルの並進動きベクトルをマージして、興味のあるブロックの動きベクトルを生成する。デコーダ１４は、スキップされたフレームの１または複数のマクロブロックまたはスキップされたフレームを補間するために、並進動きを適用する（６４）。このように、本開示の技術は、１または複数の正確な動き情報に基づいて生成される動きベクトルを用いることによって、補間精度を改善しながら、並進動き補償のみを実行するビデオ・デコーダで利用されうる。
【００６９】
図６は、エンコーダ１２のように、スキップされたフレームの一部の動き情報をアファイン動きモデルに基づいて生成するエンコーダの典型的動きを例示するフロー図である。先ず、エンコーダ１２は、スキップされたフレームを、固定サイズのブロックへ分割し、固定サイズのブロックにおける並進動き推定を実行する（７０）。並進動き推定は、ブロックの各々に関連付けられた１または複数の動きベクトルを提供する。エンコーダ１２は、例えば、フレームをＮ個のマクロブロックへ分割し、これらマクロブロックと、１または複数の隣接フレームのマクロブロックとの間の並進動きを示す動きベクトルを計算する。
【００７０】
エンコーダ１２は、並進動きベクトルに対する動きベクトル処理を実行する（７２）。動きベクトル処理によって、例えば、異常なベクトルを取り除くことができる。もしもＮ個の並進動きベクトルのうちの１つが、その他のＮ−１個の並進動きベクトルの逆の方向を示すのであれば、著しく異なる動きベクトルを取り除くことができる。エンコーダ１２は、動きベクトルをマージする（７４）。エンコーダ１２は、動きベクトルを平均化し、メジアン動きベクトルの計算またはその他の算術演算を行うことによって、動きベクトルをマージすることができる。このように、エンコーダ１２は、マクロブロック全体について単一の動きベクトルを生成することができる。例えば、エンコーダ１２が、マクロブロックについて１６の４×４の動きベクトルを生成する場合、エンコーダ１２は、それらを平均化して、１６×１６のマクロブロックについて単一の動きベクトルを生成する。このように、最小２乗フィッティングされる動きベクトルが少なくなり、アファイン推定処理が単純化される。更に、動きベクトルをマージすることはまた、動きベクトルへ平滑化し、マクロブロック内の不規則な動きベクトルを取り除く。
【００７１】
エンコーダ１２は、並進動きベクトルに基づいて、スキップされたフレームのためのアファイン動きモデル・パラメータを推定する（７６）。上述したように、エンコーダ１２は、３またはそれ以上の並進動きベクトルの最小２乗推定を見つけることによって、複数の並進動きベクトルから、アファイン動きパラメータを導出する。
【００７２】
エンコーダ１２は、推定されたアファイン動きモデルが当てはまる特定のオブジェクト、マクロブロック、またはピクセルを識別するために、動きベースのオブジェクト細分化を実行する（７８）。上記に詳述したように、エンコーダ１２は、生成されたアファイン動きモデルを用いて、ピクセル毎ベースで各マクロブロックを再構築し、アファイン動きパラメータを近似するために使用される並進動きベクトルを用いて、マクロブロックの各々を同時に再構築し、アファイン動きモデル・パラメータを用いて再構築されたピクセルまたはマクロブロックと、並進動きベクトルを用いて再構築されたピクセルまたはマクロブロックとの間の歪みを比較する。この歪みが、予め定めたしきい値より高いのであれば、アファイン動きモデルは、マクロブロックまたはピクセルを正確に近似しないものと判定され、マクロブロックがオブジェクトから取り除かれる。大きな歪みを持つ全てのマクロブロックまたはピクセルを取り除いた後の、残りのオブジェクト、マクロブロックまたはピクセルは、動き情報が当てはまるピクセルである。エンコーダ１２は、これら残りのオブジェクト、マクロブロックまたはピクセルを記述する位置情報を生成することができる。
【００７３】
エンコーダ１２は、エロージョンおよびダイレーション（dilation）を行なう（８０）。エロージョンおよびダイレーションは、オブジェクトの輪郭を滑らかにし、小さなホールを充填し、小さな突出部／オブジェクトを除去する。特に、ダイレーションによって、オブジェクトは拡大され、これによって、小さなホールが充填され、ばらばらなオブジェクトが結合される。一方、エロージョンは、それらの境界をエッチングすることにより、オブジェクトを小さくする。
【００７４】
エンコーダ１２は、識別されたオブジェクトに属するマクロブロックからの並進動き情報に基づいてアファイン動きモデルを更新する（８２）。そして、エンコーダ１２は、より正確なアファイン動き推定を得るために、もう一度反復を行なうべきかを判定する（８４）。エンコーダ１２は、例えば、特定回数の反復を実行することができる。この場合、エンコーダは、反復回数を追跡し、指定された数の反復が実行されるまで、反復の実行を継続することができる。しかしながら、一般に、２回あるいは３回の反復の後では、顕著なアファイン・モデル推定の改善は得られない。
【００７５】
例えば、エンコーダが、特定回数の反復を実行した後のように、エンコーダ１２が、アファイン動きモデルに基づいて動き情報を生成した後、エンコーダ１２は、オブジェクト記述子を生成する（８６）。オブジェクト記述子は、動き情報に関連付けられたフレーム内のオブジェクトの位置を識別する位置情報を記述する。上述したように、エンコーダ１２は、動き情報が当てはまる特定のビデオ・ブロックまたはオブジェクトの境界を示すバイナリ・ビットマップを生成しうる。デコーダ１４は、この動き情報を、オブジェクト記述子で識別されたマクロブロックまたはオブジェクトに適用する。オブジェクト記述子で識別されたビデオ・ブロックまたはオブジェクトは、特定の動き情報に対する潜在的な必要性なく補間されうる。
【００７６】
図７は、スキップされたフレームのための動きを並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を、並進動きのみに基づく動き情報へ変換するデコーダの典型的動きを例示するフロー図である。例えば、デコーダは、アファイン動きモデルに基づいて動きを示す動き情報を、並進動きベクトルへ変換することができる。例えば、デコーダ１４の動き情報変換モジュール３８（図２）のような動き情報変換モジュールは、アファイン動きモデルに基づいて動きを示す動き情報を受け取る（９０）。動き情報変換モジュール３８は、例えば、動き予測モジュール７２から、あるいは、エンコーダ１２によって送信された１または複数のフレームから、スキップされたフレームの動き情報を受け取ることができる。
【００７７】
動き情報変換モジュール３８は、アファイン動きモデルに基づいて、興味のあるブロック内の１または複数のピクセルの並進動きベクトルを生成する（９２）。動き情報変換モジュール３８は、例えば、ピクセルの座標を、アファイン・モデル近似に入力することによって、および、アファイン・モデル近似の出力を、特定のピクセルに関連付けられた動きベクトルとして用いることによって、ピクセルの各々の並進動きベクトルを生成することができる。
【００７８】
動き情報変換モジュール３８は、ブロック全体について単一の動きベクトルを生成するために、興味のあるブロック内の複数のピクセルの生成された並進動きベクトルをマージする（９４）。動き情報変換モジュール３８は、例えば、平均化演算、メジアン演算、またはその他の類似の数学的演算を用いて、ピクセルの並進動きベクトルをマージすることができる。動き情報変換モジュール３８は、生成されたブロック動きベクトルについて１または複数の後処理演算を実行することができる（９６）。動き情報変換モジュール３８は、動きベクトル分類、動きベクトル・レイバリング（laboring）、異常選択、および、ウィンドウ・ベースの動きベクトル平滑化を実行しうる。例えば、動き情報変換モジュール３８は、他の並進動きベクトルと極めて異なる動きベクトルを除去することによって、異常な動きベクトルを取り除くことができる。
【００７９】
動き情報変換モジュール３８は、ブロック動きベクトルを補間モジュール６８（図３）へ出力し、スキップされたフレームの特定のマクロブロックまたはスキップされたビデオ・フレームの補間を支援する（９８）。動き情報を並進運動ベクトルに変換することによって、並進動き補償のみを実施するハードウェア構成および／またはソフトウェア構成を構成するビデオ・デコーダにおいて、本開示の技術を実施することが可能となる。並進運動と少なくとも１つのその他の動きパラメータとに基づいて動きを示す動き情報が使用されないが、適用される並進運動ベクトルはより正確である。なぜなら、それは、アファイン動きモデルを用いて推定された動き情報に基づいて生成されるからである。
【００８０】
上述したように、動き情報変換モジュール３８は、幾つかのより小さなサイズのブロックの並進動きベクトルを反復的に生成し、より大きなサイズのブロックの動きベクトルを生成するために、これら動きベクトルを合成することができる。動き情報変換モジュール３８は、例えば、幾つかの２×２ブロックについて、並進動きベクトルを反復的に生成し、その後、２×２ブロックの動きベクトルをマージすることによって、８×８ブロックの動きベクトルを生成することができる。
【００８１】
図８は、スキップされたビデオ・フレームを補間するために、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータに基づいて示す動き情報を適用するように構成されたビデオ・エンコードおよびデコード・システム１００を例示するブロック図である。システム１００は、伝送チャネル１０６によって接続されたエンコード・モジュール１０２とデコード・モジュール１０４とを含む。例えばビデオ・シーケンスのようなエンコードされたマルチメディア・シーケンスは、通信チャネル１０６を介してエンコード・モジュール１０２からデコード・モジュール１０４へと送られうる。エンコード・モジュール１０２は、エンコーダを備えることができ、マルチメディア・データをエンコードおよび送信することができるデジタル・ビデオ・デバイスの一部を形成することができる。同様に、デコード・モジュール１０４は、デコーダを備えることができ、マルチメディア・データをデコードおよび受け取ることができるデジタル・ビデオ・デバイスの一部を形成することができる。
【００８２】
エンコード・モジュール１０２は、スキップされたフレームの動き情報を生成する動き情報生成モジュール１０８と、１または複数のフレームにおいて生成された動き情報を、デコード・モジュール１０４へ送るためにエンコードするフレーム・アセンブル・モジュール１１０とを含み、デコード・モジュール１０４が、スキップされたフレームを補間することを支援する。特に、動き情報生成モジュール１０８は、スキップされたフレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を推定する。更に、動き情報生成モジュール１０８は、動き推定処理の一部として位置情報を生成することができる。位置情報は、動き情報が当てはまるスキップされたフレームの特定のオブジェクトまたはマクロブロックを記述することができる。動き情報生成モジュール１０８は、動き推定モジュールと位置識別モジュールとを含みうる。
【００８３】
デコード・モジュール１０４は、エンコード・モジュール１０２から１または複数のフレームを受け取る受取モジュール１１８を含む。エンコード・モジュール１０２から受け取られたフレームは、動き情報を含みうる。このように、受取モジュール１１８は、１または複数の隣接するビデオ・フレームに関連付けられた動き情報を受け取る。補間モジュール１１６は、スキップされたビデオ・フレームを補間するために、スキップされたビデオ・フレーム動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を適用する。補間モジュール１１６は、受取モジュール１１８を経由して、エンコード・モジュール１０２から、スキップされたビデオ・フレームの動き情報を受け取ることができる。あるいは、補間モジュール１１６は、動き情報生成モジュール１１４からのスキップされたフレームから、動き情報の一部または全てを取得することができる。このように、補間モジュール１１６は、動き情報を取得する手段を備えることができる。
【００８４】
動き情報生成モジュール１１４は、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を生成する。動き情報生成モジュール１１４は、スキップされたビデオ・フレームに隣接した１または複数のビデオ・フレームに関連付けられた動き情報に基づいて、スキップされたビデオ・フレームの動き情報を生成することができる。
【００８５】
１つの実施形態では、補間モジュール１１６は、並進動きベクトルのみを用いて補間を実行する。この場合、デコード・モジュール１０４は、スキップされたフレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を、並進動きのみに基づいて動きを示す動き情報へと変換する変換モジュール１１２を含む。言い換えれば、変換モジュール１１２は、スキップされたフレームの動き情報を、並進動きベクトルへと変換する。１つの実施形態では、変換モジュール１１２は、エンコード・モジュール１０２から動き情報を受け取ることができるので、動き情報を受け取る手段を備えることができる。補間モジュール１１６は、スキップされたビデオ・フレームを補間するために、並進動きベクトルを適用する。
【００８６】
この開示に従い、スキップされたビデオ・フレームの動きを、並進動きと少なくとも１つのその他の動きパラメータとに基づいて示す動き情報を生成する手段は、フレーム処理モジュール２０（図１）、動き推定モジュール３４（図２または図３）、動き推定モジュール４８（図４）、位置推定モジュール５０（図４）、スキップ・フレーム分析モジュール４４（図４）、動き情報生成モジュール１０８（図８）、動き情報生成モジュール１１４（図８）を備えることができる。同様に、少なくとも１つのビデオ・フレーム内で動き情報をエンコードするフレーム・アセンブリ手段は、フレーム処理モジュール２０（図１）、フレーム・アセンブリ・モジュール（図４）、または、フレーム・アセンブリ・モジュール１１０（図８）を備えることができる。変換手段は、動き情報変換モジュール３８（図３）または変換モジュール１１２（図８）を備えることができる。補間手段は、補間デコーダ・モジュール２４（図１）、補間モジュール３２（図２および図３）、または、補間モジュール１１６（図８）を備えることができる。上記例は例示目的で提供されているが、本開示は、それぞれの手段に相当する構造のその他の事例を含むことができる。
【００８７】
前記した式（１）によって示されるアファイン動きモデルは、並進動きのみならず、回転、シャーリング、およびスケーリングをも近似する。アファイン動きモデルに基づく動き情報は、従来式の並進動きベクトルの２パラメータ近似ではなく、スキップされたフレームの動きの６パラメータ近似を与える。上述されたように、本開示の技術は、アファイン近似よりも多いまたは少ないパラメータに基づく動きを近似する動きモデルを用いて動き情報を近似することができる。
【００８８】
本明細書に記述された技術は、ハードウェア、ソフトウェア、ファームウェア、あるいはそれらの任意の組み合わせで実施されうる。ソフトウェアで実施される場合、本技術は、実行されると上述した方法のうちの１または複数の実行する命令を含むプログラム・コードを備えるコンピュータ読取可能媒体（または機械読取可能媒体）によって部分的に実現される。この場合、コンピュータ読取可能媒体は、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）のようなランダム・アクセス・メモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、ＦＬＡＳＨメモリ、磁気式または光学式のデータ記憶媒体等を備えることができる。
【００８９】
プログラム・コードは、例えば１または複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向けＩＣ（ＡＳＩＣ）、フィールド・プログラマブル・ロジック・アレイ（ＦＰＧＡ）、またはその他の等化な統合または離散論理回路のような１または複数のプロセッサによって実行されうる。幾つかの実施形態では、本明細書に記載された機能は、エンコードまたはデコードするように構成された専用のソフトウェア・モジュールまたはハードウェア・モジュール内に提供されるか、あるいは、統合式ビデオ・エンコーダ−デコーダ（ＣＯＤＥＣ）内に組み込まれうる。
【００９０】
しかしながら、特許請求の範囲のスコープから逸脱することなく、記述した技術に対して種々の変形例がなされうる。従って、上述した具体的実施形態およびその他の実施形態は、特許請求の範囲のスコープ内である。
【図１】
0005619692.tif 000003
【図２】
0005619692.tif 000004
【図３】
0005619692.tif 000005
【図４】
0005619692.tif 000006
【図５】
0005619692.tif 000007
【図６】
0005619692.tif 000008
【図７】
0005619692.tif 000009
【図８】
0005619692.tif 000010