(57)【要約】【課題】エンコーダにおける予測イントラモード選択。【解決手段】使用するレート・ひずみ費用計算数を減らして、データを符号化するための予測モードを選択する。このレート・ひずみ費用計算数の減少は２つの判定基準に基づいてポテンシャルイントラ予測モードの数をフィルタリングすることによって発生する。第１に、符号化手順時に行なわれる量子化手順の少なくとも一つの特性に基づいてポテンシャル予測モード数を減らす。第２は、ポテンシャル予測モードごとに計算された誤差値に基づいてポテンシャル予測モード数を減らす。【選択図】図４
2006203909.tif 000002
【特許請求の範囲】
【請求項１】
マクロブロックをイントラ符号化するための予測モードを選択する方法であって、
マクロブロックをイントラ符号化するための複数の予測モードを識別するステップと、
イントラ符号化プロセスにおける量子化ステップの少なくとも一つの特性に基づいて複数の予測モードの数を減らすステップと、
マクロブロックをイントラ符号化するための減少した数のポテンシャル予測モードから予測モードを一つ選択するステップとを含む方法。
【請求項２】
量子化ステップの少なくとも一つの特性は量子化パラメータである、請求項１に記載の方法。
【請求項３】
予測モードの数を減らすステップは、少なくとも一つの予測されたデータブロックに基づいて符号化誤差値を解析するステップを含む、請求項１に記載の方法。
【請求項４】
符号化誤差値を生成するのに二乗差分合計計算を用いる、請求項３に記載の方法。
【請求項５】
複数の予測モードはある標準規格に基づいて識別される、請求項１に記載の方法。
【請求項６】
標準規格はH.264ビデオ符号化標準規格である、請求項５に記載の方法。
【請求項７】
ビデオデータのマクロブロックに対して少なくとも一つの予測モードを選択するための方法であって、
マクロブロックから分割されたルーマブロックから少なくとも一つの予測されたルーマブロックを生成するステップと、
ルーマブロックと少なくとも一つの予測ルーマブロックとに基づいてルーマ誤差値を識別するステップと、
量子化パラメータに基づいてより大きなポテンシャル予測モード集合をより小さなポテンシャル予測モード集合に減少させるステップと、
より小さなポテンシャル予測モード集合からルーマブロックの第１予測モードを選択するステップとを含む方法。
【請求項８】
ルーマ誤差値は、ルーマブロックと少なくとも一つの予測ブロックとの絶対差分合計計算によって識別される、請求項７に記載の方法。
【請求項９】
第１予測モードは、より小さなポテンシャル予測モード集合内の少なくとも一つの予測モードに関係した少なくとも一つのレート・ひずみ計算に従って選択される、請求項７に記載の方法。
【請求項１０】
ルーマブロックはH.264標準規格によって定義された４×４のルーマブロックである、請求項７に記載の方法。
【請求項１１】
マクロブロックから分割されたクロマブロックから少なくとも一つの予測されたクロマブロックを生成するステップと、
クロマブロックと少なくとも一つの予測クロマブロックとに基づいてクロマ誤差値を識別するステップと、
クロマブロックの第２予測モードを選択するステップとをさらに含む、請求項７に記載の方法。
【請求項１２】
クロマ誤差値は、クロマブロックと少なくとも一つの予測クロマブロックとの絶対差分合計計算によって識別される、請求項１１に記載の方法。
【請求項１３】
第２予測モードは識別されたクロマ誤差値に基づいて選択される、請求項１１に記載の方法。
【請求項１４】
予測モードの選択を可能にするためにコンピュータ可読媒体に実装されたコンピュータプログラム製品であって、
マクロブロックをイントラ符号化するための複数の予測モードを識別するためのコンピュータ命令と、
イントラ符号化プロセスにおける量子化ステップの少なくとも一つの特性に基づいて複数の予測モードの数を減らすためのコンピュータ命令と、
減少した数のポテンシャル予測モードからマクロブロックをイントラ符号化するための予測モードを選択するためのコンピュータ命令とを含むコンピュータプログラム製品。
【請求項１５】
量子化ステップの少なくとも一つの特性は量子化パラメータである、請求項１４に記載のコンピュータプログラム製品。
【請求項１６】
予測モードの数を減らすステップは、少なくとも一つの予測されたデータブロックに基づいて符号化誤差値を解析することを含む、請求項１４に記載のコンピュータプログラム製品。
【請求項１７】
符号化誤差値を生成するのに二乗差分合計計算を用いる、請求項１６に記載のコンピュータプログラム製品。
【請求項１８】
複数の予測モードでデータを符号化するためのエンコーダであって、
ある特定の予測モードで符号化および復号化されたデータブロックを生成する予測ブロック生成器と、
予測ブロック内の誤差値を推定する誤差値モジュールと、
誤差値モジュールからの少なくとも一つの誤差値と量子化手順の少なくとも一つの特性とに基づいて使用可能な予測モードの数を減らす予測モードフィルタと、
減少した数の使用可能な予測モードから予測モードを選択する予測モードセレクタとを含むエンコーダ。
【請求項１９】
誤差値は、絶対差分合計計算を用いて推定される、請求項１８に記載のエンコーダ。
【請求項２０】
量子化手順の少なくとも一つの特性は量子化パラメータを含む、請求項１８に記載のエンコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には通信リンクで伝送するためのデータの符号化に関し、より具体的には、伝送前にデータを符号化する際のモードの選択に関する発明である。
【背景技術】
【０００２】
音声や映像など、高バンド幅アプリケーションがネットワークにかける負担が増え続けている。こうしたバンド幅を食うアプリケーションに対応し易くするために、こうしたアプリケーションがネットワークを通じてクライアントともっと効果的に通信できるように圧縮技術や標準規格は進化している。そうした標準規格の２つは、ビデオ信号の符号化にかかわるH.264とMPEG-4である。これらの標準規格は概してデータを符号化する方法を向上させるけれども、エンコーダ自体の処理資源に大きな負担をかけることがある。ビデオデータの送受信は本来時間に敏感な作業だから、エンコーダは限られた時間でビデオフレームに適した符号化方法を選択し、ビデオフレームを符号化して、そのフレームをネットワーク上に送信しなければならない。エンコーダが所要時間内にビデオ信号を符号化して送信するのに要する必要な符号化の計算を全て完了できない場合、ビデオ信号の品質が危険にさらされることがある。
【０００３】
図１に、符号化されたビデオ信号を通信できる典型的な通信リンク（１２０）を示している。図示されているように、ビデオカメラ（１１０）はエンコーダ（１１５）に送られるビデオ信号を生成する。このエンコーダ（１１５）は、通信リンク（１２０）に接続されたコンピュータまたはサーバ上にあるソフトウェアで構わない。エンコーダ（１１５）はビデオフレームを受け取り、そのビデオフレームはマクロブロックに分割されていて構わない。こうしたマクロブロックはさらにluma成分（例えば、４×４のブロックおよび１６×１６のブロック）とクロマ（chroma）成分（例えば、８×８のブロック）とに分割されて構わない。これらのブロックはエンコーダ１１５が選択するインターモードまたはイントラモードのどちらかで符号化することができる。イントラモード符号化とは、同じデータフレーム内のデータに関して符号化が発生するという意味である。インターモード符号化とは、現行のビデオフレームの外にある一つ以上の基準フレームに関して符号化が発生するという意味である。ブロックは符号化された後、通信リンク（１２０）を介して、受信側デコーダ（１２５）に伝送される。デコーダ（１２５）はビデオ信号を再構築して表示装置（１３０）に供給する。
【０００４】
図２に、ビデオ信号を符号化できる典型的な方法を示す。離散コサイン変換（DCT）を用いてビデオフレーム（２０５）が空間周波数係数の集合（２１２）に変換される（２１０）。このDCTは時間領域信号から周波数領域信号への変換と類似している。周波数係数は次に量子化され（２１５）、その結果、スケーリングされた信号（２２０）が生じる。事実上、量子化プロセスは、整数倍率（integer scaling factor）で周波数係数を分割し、その後信号を切り捨てる。フレーム（２０５）を変換および量子化するこのプロセスはビデオ信号にデータロスなどの誤差を導入する。
【０００５】
符号化プロセスによってビデオ信号に導入された誤差の量は符号化されたフレームを再構築することによって判定することができる。再構築はビデオ信号を逆量子化（reverse quantizing）する（２２５）ことによって発生し、その結果、再スケーリングされた信号（２３０）が生じる。この再スケーリングされた信号（２３０）は次に、再構築されたフレーム（２４５）を生成するために逆離散コサイン変換によって逆変換される（２３５）。この再構築されたフレーム（２４５）は、符号化プロセスによって導入された誤差を識別するために、もともとのビデオフレーム（２０５）と比較されて構わない。ビデオフレーム（２０５）は複数のいろいろ異なる予測モードのうちの一つで符号化されて構わない。モードはそれぞれ他とは誤差レベルが異なるのが一般的である。
【０００６】
各マクロブロックは、スライス符号化のタイプいかんによって、いくつかある符号化モード、つまり、インターモードでの動き補償のための７つの異なるブロックモード、およびイントラモードでの様々な空間的方向予測モード、のうちの一つで符号化されて構わない。全てのスライス符号化タイプにおいて、２クラスのイントラ符号化モードがサポートされており、それらを下記の説明ではIntra4x4およびIntra16x16と示している。Intra4x4モードを使用する際には、輝度成分の４×４の各ブロックは９つの予測モードのうちの一つを用いる。Intra16x16モードを使用する際には、４つの予測モードがサポートされる。マクロブロックの彩度（chrominance）サンプルは、輝度に対してどのイントラ符号化モードを使用するかにかかわりなく、必ず一意のDC予測法を用いて予測され、スライス境界を越えるイントラ予測は許されない。
【０００７】
図３Aに、H.264標準規格に従って４×４のルーマビデオブロック（luma video block）の模式的な３つの予測モード図を示す。これらの標準規格は、モード０からモード８まで合計９つの異なる予測モードを定義しており、４×４のルーマブロックを予測することができる。モード０（３０５）は、ブロック内で画素データが上方のサンプルから補外される垂直モードである。モード１（３１０）は、ブロック内で画素データが左側のサンプルから補外される水平モードである。モード８（３１５）は、ブロック内で画素データが左下のサンプルから補外される水平上向き（horizontal-up）モードである。モード２からモード７は表示されていないけれども、４×４のルーマブロックの全てのモードについて詳細な説明がH.264規格にある。
【０００８】
図３Bに、H.264標準規格に従って１６×１６のルーマビデオブロックまたは８×８のクロマビデオブロックの模式的な３つのモード図を示す。この標準規格は、モード０からモード３まで合計４つの異なる予測モードを定義しており、１６×１６のルーマブロックまたは８×８のクロマブロックを符号化することができる。モード０（３３０）は、画素データがブロック内で上方のサンプルから補外される垂直モードである。モード１（３３５）は、画素データがブロック内で左側サンプルから補外される水平モードである。モード３（３４０）は、線形の平面関数（linear plane function）がブロック内の上左側のサンプルに当てはまる「平面」モードである。モード２は未表示だけれども、１６×１６のルーマブロックおよび８×８のクロマの全てのモードについて詳細な説明がH.264規格にある。
【０００９】
ビデオ信号の時間に敏感な特性のために、ある特定のブロックの予測モードの選択は有意な処理資源を要することがある。特に、エンコーダは、限定された時間量内で、予測モードを選び、その予測モードにしたがってブロックを符号化し、そのブロックをネットワーク上に伝送しなければならない。予測モードの選択が多数のプロセッサ計算を要する場合には、エンコーダがビデオ信号をタイミングよく符号化および伝送する処理が困難になることがある。
【００１０】
予測モードの選択にはポテンシャル（potential）予測モードごとのレート・ひずみ計算が含まれる。各モードのレート・ひずみ値の解析によって、ある特定のブロックに対して最適な予測モードの選択が可能になる。しかし、こうしたレート・ひずみ計算はプロセッサ集約型で、ビデオ信号をタイミングよく符号化するにはエンコーダに負担がかかる。レート・ひずみ値は次式ように定義される。
【００１１】
【数１】
2006203909.tif 000003
【００１２】
ここで、QPはマクロブロック量子化パラメータ、λmはモード決定のためのラグランジェ（Lagrange）の乗法因子（multiplier）、SSDはもともとのブロックと再構築されたブロックとの平方差の合計、Rはモードと関連付けられたビット数を表わす。
【００１３】
【特許文献１】米国特許出願公開第2004/0131121号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１４】
レート・ひずみ計算の複雑性と計算を行なう回数とが、ブロックの予測モードを識別するのに要する時間および資源に直接影響を及ぼす。エンコーダおよびエンコーダが動作するシステムしだいで、これらの計算がエンコーダをオーバーロードすることがあり、その結果、エンコーダが生成する符号化されたビデオ信号の劣化になる。
【００１５】
そこで、上記の問題に対処するデバイスおよび方法を提供することが望ましい。
【課題を解決するための手段】
【００１６】
先行技術と関連した上述の問題および不都合を本発明により克服する。
【００１７】
本発明の一つの実施例によれば、ある特定のデータブロックを符号化するのに使用できる複数の予測モードが識別される。複数の予測モード内の予測モードごとに誤差値を計算する。複数の予測モードを、モードごとに算定された誤差値および符号化プロセス時に使用した量子化パラメータに基づいて、もっと小さなポテンシャル予測モード集合に変換する。特定のデータブロックを符号化するのに使用する予測モードを決めるために、そのより小さなポテンシャル予測モード集合を解析する。予測モードを選択した後、その特定の予測モードにしたがってデータを符号化して通信リンク上に伝送する。
【００１８】
このより小さなポテンシャル予測モード集合への予測モードの初期減少によって、ある特定のデータブロックの予測モードを選択するのに要する処理資源および時間が有意に減ることがある。
【００１９】
また別の実施例において、H.264規格に定義されているビデオマクロブロックのルーマ成分およびクロマ成分に対して予測モードが選択される。標準規格で定義された９つの予測モードをより小さな予測モード部分集合に先ず最初に減らすことによって４×４のルーマブロックに対して予測モードが選択される。この減少は、９つの予測モードの各モードごとに算定された誤差値およびデータブロックの符号化時に採用される量子化パラメータに基づいている。そのより小さな予測モード部分集合を識別した後、単一の予測モードを選択するためにこのより小さな部分集合の中の各モードが解析される。この解析が発生することがある一つの方法は、減少した予測モード数のレート・ひずみ費用を計算することによる方法である。より小さな部分集合内で、最も最適なレート・ひずみ費用をもつ予測モードが選ばれ、それに応じて４×４のルーマブロックが符号化される。
【００２０】
８×８のクロマブロックおよび１６×１６のルーマブロックの予測モードは、これらのブロックを符号化するのに使用可能なH.264およびMPEG-4規格が定義している４つのモード各々に対して誤差値を計算することによって識別されても構わない。発明の一つの実施例によれば、この誤差計算は、ある特定の予測モードでのブロックの符号化時に失われたデータの量を推定するために絶対差分合計計算（a sum of absolute difference computation）を用いる。その後、符号化プロセス時に失ったデータ量が最も少ないモードを識別することによってこのブロックに適した予測モードを選ぶことができる。その後、その選んだ予測モードにしたがって、特定の８×８のクロマブロックまたは１６×１６のルーマブロックが符号化される。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施形態を図面に基づいて説明する。
【実施例１】
【００２２】
ルーマ成分およびクロマ成分を中に含んだビデオ信号を符号化するためのモードを選択するための装置および方法を説明する。本発明の一つの実施例においては、レート・ひずみ値を計算する前に、符号化時に適用された量子化パラメータに相対して、使用可能な予測モードの数がフィルタリングされる。このフィルタリングプロセスによってレート・ひずみ値を計算しなければならないモードの数を減らし、それによってビデオ信号を符号化するのに要する資源および時間を減らす。
【００２３】
以下に述べる説明においては、発明を理解できるように説明を目的として具体的な詳細を述べている。しかし、当業者ならば、こうした詳細を知らなくても発明を実施できることが明白であろう。当業者ならば、以下にいくつか述べる本発明の実施例をパーソナルコンピュータおよびネットワークサーバなど多数のいろいろなデバイスに組み込めることが分かるだろう。本発明の実施例はソフトウェア、ハードウェア、またはファームウェアであっても構わない。以下にブロック図に示す構造およびデバイスは発明の模式的な実施例の例証であって、発明を不明瞭にしないことを意図している。
【００２４】
明細書において「一つの実施例」または「実施例」とは、実施例に関して説明しているある特定の特徴、構造、特性、または機能が発明の少なくとも一つの実施例に含まれていることを意味する。明細書の中のいろいろなところに出てくる「一つの実施例において」という表現は必ずしも全て同じ実施例を指しているわけではない。
【００２５】
A.概要
本発明は、ビデオ信号のマクロブロックを符号化するのに使用される予測モードを選択する。このマクロブロックは、ビデオイメージの明度（intensity）に関係する輝度ブロック（ルーマブロック）およびビデオイメージの色に関係するクロマブロックに分割されることがある。これらのルーマブロックおよびクロマブロックは数あるいろいろな方法を用いてマクロブロックから分割されて構わない。H.264規格に定義されているそうした一つの方法は、ルーマ成分を４×４のブロックおよび１６×１６のブロックに分割する。さらに、H.264規格に定義されているように、マクロブロックのクロマ成分を８×８のブロックに分けてもかまわない。
【００２６】
エンコーダは、マクロブロックを符号化してネットワーク上に伝送する前に、マクロブロック内において、ルーマブロックおよびクロマブロックのイントラ予測モードを選択する。これらの選択されたイントラ予測モードは各々、ビデオ信号を正確に再構築して表示できるように、信号を受け取るクライアントに送られる。
【００２７】
B.予測モード選択の一般的な方法
図４は、本発明の一つの実施例によるデータブロックを符号化するための予測モードを選択するための方法を示している。データを符号化するのに使用できる複数の予測モードが識別される（４０５）。この複数の予測モードは一つ以上の標準規格によって定義されるか、または特定の符号化プロセスのために生成されても構わない。複数の予測モードの各々に対して、符号化および復号化のプロセスによって導入されたデータロスの量を推定する予測ブロック（predicted block）を生成しても構わない。
【００２８】
生成された予測ブロックごとに誤差値が計算される（４１０）。複数の予測モードをより小さな予測モード部分集合にフィルタリングするのにこれらの誤差値を使用していい。その小さくなった部分集合の予測モードは後から解析されても構わない。本発明の一つの実施例において、この誤差値は、もともとのブロックを複数の予測モードから生成された各予測ブロックと比較する絶対差分合計計算を用いることによって生成されて構わない。特に、この絶対差分合計計算はもともとのデータブロックと予測データブロックとの間の誤差の量を識別する。当業者ならば、これらの予測モードごとに誤差値を計算するのに多数のいろいろな方法を使用できることが分かるだろう。
【００２９】
予測モードごとに計算された誤差値と符号化プロセス時に採用された量子化手順の少なくとも一つの特性とに基づいて複数の予測モードをより小さなポテンシャル予測モードの集合に減らして構わない。発明の一つの実施例において、複数の予測モードは、予め定義された量、つまり、K値のポテンシャル予測モードまで減らされる。このK値は、符号化の手順時の量子化プロセスのある特定の特性に基づいて定義されて構わない。例えば、変換プロセスから生じた周波数係数をスケーリングするのに使用される量子化パラメータに基づいてK値を定義して構わない。K値の決定について以下に詳細に説明する。
【００３０】
特定のブロックを符号化するのに使用する予測モードを決めるために、小さくなったポテンシャル予測モード集合をさらに解析することができる。一つの実施例において、予測モードは、最小の算定誤差をもつのはどの予測モードかに基づいて選択される。別の実施例では、小さくなった集合内のこれらの予測モードごとにレート・ひずみ値が計算される。一番最適なレート・ひずみ値をもつモードが選択され、それに応じてブロックが符号化される。どちらの実施例においても、複数の予測モード全てを解析するのと比べて、小さくなった予測モード部分集合を解析すると、予測モードを選択するのにエンコーダが実行するレート・ひずみ計算の数が減る。当業者ならば、小さくなった予測モード集合から一つの予測モードを選択するのに多数のいろいろな方法を使用できることが分かるだろう。
【００３１】
C. H.264標準規格の基づく予測モード選択
図５および７は、H.264標準規格によるビデオフレーム符号化のための予測モードを選択する発明の一つの実施例を説明しているフローチャートである。図６は、発明の実施例による予測モードの選択において使用できる模式的なKテーブルである。
【００３２】
a)４×４のルーマブロックの予測モード選択
図５に、本発明の一つの実施例による、４×４のルーマブロックの予測モードを選択する際に実行されるレート・ひずみ計算の数を減らすための方法を示す。H.264標準規格に定義されている９つのポテンシャル予測モードの各々に対して４×４のルーマブロックから予測ブロックが生成される（５０５）。この予測ブロックは、ある特定のモードで符号化並びに復号化が行なわれたデータブロックを表わしている。
【００３３】
９つの予測モードの各々に対して、特定の予測モードでの符号化および復号化のプロセスと関連したロスに関する誤差値を計算することができる。この実施例において、誤差値は絶対差分合計方程式を用いることによって計算される（５１０）。この計算は、もともとの４×４のルーマブロックを予測されたブロックと比較してその両ブロック間の誤差を量子化する。こうした計算の結果、４×４のルーマブロックの９つの予測モードと関連した９つの誤差値が得られる。
【００３４】
９つのモード全てに対してレート・ひずみ計算を計算しないように、９つのポテンシャル予測モードを減らすことができる。予め定義された９未満の予測モード数をもつ予測モード部分集合が２つの要因に従って選ばれる（５１５）。その１は、予測モード部分集合、つまり、９つのモードから低下させようとしている目標のモード数が符号化プロセス時に使用された量子化パラメータに基づいて決められる。したがって、予測モード部分集合のサイズは、符号化の量子化フェーズ時に行なわれたスケーリングの大きさに相対して変動する。その２は、最も低い算定誤差値をもつ予測モードを選択することによって９つの予測モードは減らされる。したがって、より小さな部分集合は５つの予測モードを含んでいると定義されている場合には、最低の算定誤差値をもつ５つの予測モードが選され、その後、予測モードを一つだけ識別するために解析される。
【００３５】
４×４のルーマブロックを符号化するための予測モードを一つだけ選択するために、その少なくなった数の予測モードを解析する。この解析はそのより小さな部分集合に残っている予測モード各々のレート・ひずみ値を計算する（５２０）ことによって行なうことができる。これらのレート・ひずみ値を計算した後、一番最適な予測モードを選択する。
【００３６】
図６に、４×４のルーマ予測モードを９つから低下させられる予め定義された目標の予測モード数を識別するのに使用できる模式的テーブルを示す。最初のコラム６０５には、４×４のルーマブロックを符号化するのに使用しようとしている量子化パラメータ値の範囲、つまり、倍率の範囲が入っている。二番目のコラム６１０は、Iスライスに対して、４×４のルーマ予測モードを９つから減らせるより小さな集合内の予測モードの目標数を識別している予め定義された数またはK値である。三番目のコラム６１５は、ビデオPまたはBスライスに対して、より小さな集合内の予測モード数を識別している予め定義された数またはK値である。
【００３７】
当業者ならば、量子化パラメータ値が増えると、符号化プロセス時のデータロスの量が増えることがわかるだろう。したがって、この相関的なデータロスの増加を補償しようとして、K値が増えると、それによりレート・ひずみ計算を実行する予測モードの量が増える。
【００３８】
図７に、本発明の一つの実施例による、８×８のクロマブロックおよび／または１６×１６のルーマブロックの予測モードを少なくとも一つ選択するための方法を示す。
【００３９】
b)１６×１６のルーマブロックの予測モード選択
H.264標準規格に定義されている４つのポテンシャル予測モード各々に対して、１６×１６のルーマブロックから予測ブロックが生成される（７０５）。４×４のルーマブロックの場合と同じく、この予測ブロックはある特定のモードで符号化ならびに復号化がなされたデータブロックを表わしている。
【００４０】
４つの予測ブロック各々に対して、ある特定の予測モードでの符号化および復号化プロセスと関連したロスに関係する絶対差分合計式を用いて誤差値を計算することができる（７１０）。絶対差分合計計算はもともとのルーマブロックと予測ブロックとの間の誤差を測る多種多様な計算の一つである。この計算の結果、４つの誤差値が生じ、その各々がある特定の予測モードと関連している。
【００４１】
４つの予測モード各々に対して、誤差計算に基づいて予測モードを選択して構わない（７１５）。この予測モード選択は、一般的に処理資源にもっと負担がかかり且つもっと時間がかかるレート・ひずみ計算を使わずに発生して構わない。
【００４２】
c)８×８のクロマブロックの予測モード選択
H.264標準規格に定義されている４つのポテンシャル予測モード各々に対して、８×８のクロマブロックから予測ブロックが生成される（７２５）。４×４および１６×１６のルーマブロックの場合と同じく、この予測ブロックはある特定のモードで符号化ならびに復号化がなされたデータブロックを表わしている。
【００４３】
４つの予測ブロック各々に対して、ある特定の予測モードでの符号化および復号化プロセスと関連したロスに関する絶対差分合計計算を用いて誤差値を計算することができる（７３０）。１６×１６のルーマブロックの場合と同じく、予測ブロックの誤差を推定するのに多種多様な計算を用いることができる。この計算の結果として４つの誤差値が生じ、その各々がクロマブロックのある特定の予測モードと関連している。
【００４４】
１６×１６のルーマブロックの予測モード選択と同じように、どの予測モードが最低の算定誤差値をもつかに基づいて８×８のクロマブロックの予測モードを選択することができる（７４０）。この予測モードの選択は、上述のとおり、一般的に処理資源にもっと負担がかかり且つもっと時間を要するレート・ひずみ計算を一切使わずに発生して構わない。
【００４５】
d)予測モード選択の計算の削減
ビデオマクロブロックのルーマ成分およびクロマ成分の予測モードを識別した後、これらの選択した予測モードに従ってビデオマクロブロックが符号化される（７５０）。上述の発明の実施例は、符号化の予測モード選択のフェーズで実行されるレート・ひずみ値の計算の数を減らすことによって、エンコーダにかかる処理および時間の要件を軽減する。レート・ひずみ値の計算の数は次の方程式で識別することができる：
レート・ひずみ計算総数＝N8 x (N4 x 16 + N16)、ここで、
N8は８×８のクロマブロックの算定モード数、
N4は４×４のルーマブロックの算定モード数、
N16は１６×１６のルーマブロックの算定モード数である。
【００４６】
H.264マクロブロックは、この計算に含まれている予測モードでフィルタリングまたは削減を一切行なわなくても、レート・ひずみ計算総数が５９２となる。しかし、上述の発明の実施例によれば、K値はレート・ひずみ値を計算すべき４×４のルーマブロックに関する小さくなった部分集合における予め定義された予測モード数であるとすれば、計算の総数を合計16K+1に減らせる。このレート・ひずみ計算の減少は、レート・ひずみ計算をせずに１６×１６のルーマブロックおよび８×８のクロマブロックの予測モードを選択し、４×４のルーマブロックのレート・ひずみ計算の数をKに減らした結果である。Kが３であるとすれば、レート・ひずみ計算の数は合計４９になる。Kが５であるとすれば、レート・ひずみ計算の数は合計８１になる。
【００４７】
結果としてレート・ひずみ計算の総数が減ると、エンコーダにかかる資源および時間の要件を有意に減らすことがある。さらに、レート・ひずみ計算の減少量は量子化時に用いた倍率に左右されるから、発明の実施例は実行される符号化の特性に対する適応性をもっている。したがって、相対的に大量のロスを導入する大きな量子化パラメータを使用すると、このロスを補償しようとしてレート・ひずみ計算の量が増える。しかし、相対的に少量のロスを導入する小さめの量子化パラメータを使用すると、レート・ひずみ計算の量が減る。
【００４８】
D.４×４のルーマブロックの予測モード選択の構造的表現
図８は、本発明の一つの実施例による、４×４のルーマブロックを符号化することになっているモードを選ぶ４×４のルーマブロック予測モードセレクタを示している。この図に図示されているように、予測ブロック生成器（８１０、８２０、８３０、８４０）の配列は、９つの可能性のあるモード（モード０からモード８）各々に対して４×４のルーマブロック（８０５）の予測ブロックを生成する。一つの実施例によれば、９つの予測モード各々に対して一つずつ予測ブロック生成器があって構わない。また別の実施例においては、この予測ブロック生成器（８１０、８２０、８３０、８４０）の配列を単一モジュールに集積してもいいし、または複数のモジュールに組み合わせてもいい。９つの予測ブロックは各々、ある特定の予測モードに従って４×４のルーマブロック（８０５）を変換および量子化することによって生成されて構わない。この変換および量子化の後に、その同じ特定の予測モードに従ってブロックを逆量子化および逆変換することによってブロックが再構築される。この再構築されたブロックは、特定の予測モードで符号化されたいくらかの関連した誤差をもつ４×４のルーマブロック（８０５）の予測ブロックを表わしている。
【００４９】
誤差計算モジュール（８１５、８２５，８３５、８４５）の配列は、９つの予測モードに従って４×４のルーマブロック（８０５）に対して生成された９つの予測ブロックを受け取る。これらの誤差計算モジュールは単一モジュールまたは複数のモジュールに集積されて構わない。発明の一つの実施例によれば、予測ブロックとルーマブロック（８０５）との間の誤差を識別するのに絶対差分合計計算を用いる。したがって、９つの予測モード各々に対して生成された９つの予測ブロックに対応して９つの絶対差分合計計算が行なわれる。当業者ならば、ある特定の予測モードで生成された予測ブロックに関係した誤差値を量子化するために他の計算を実行できることが分かるだろう。
【００５０】
予測モードフィルタ（８５０）は、レート・ひずみ値を計算するモードの数を減らす。発明の一つの実施例によれば、予測モードフィルタ（８５０）は、一例を上に説明したKテーブルを使用することができる。このKテーブルは、予測モードを９つから減らせる小さくなった部分集合内で９以下の予め定義された予測モードの目標数を識別している。Kテーブルは、符号化プロセス時に周波数係数の量子化時に使用される量子化パラメータに基づいていて構わない。
【００５１】
一旦予め定義された数が識別されたら、ある特定の予測モードがそれらの誤差値に基づいて除外され、それによりレート・ひずみ計算を行なう対象となる予測モードの数を減らす。本発明の一つの実施例によれば、算定誤差値が高い方から順番に予測モードが除外される。したがって、K値が５と識別された場合には、最大誤差値をもつ４つの予測モードが除外される。
【００５２】
予測モードはフィルタリングされた予測モードから予測モードセレクタ（８５５）によって選択される。発明の一つの実施例によれば、予測モードセレクタ（８５５）はフィルタリングされた残りの予測モードごとにレート・ひずみ値を計算する。その後、予測モードセレクタ（８５５）はフィルタリングされた予測モードに最良の予測モードを選択する。当業者ならば、フィルタリング後の予測モード集合から単一の予測モードを選択するのに他の方法を使用できることが分かるだろう。
【００５３】
E.１６×１６のルーマブロック／８×８のクロマブロックの予測モードセレクタの構造的表現
図９は、本発明の一つの実施例による、対応するブロックが符号化されることになっているモードを選択する１６×１６のルーマブロック／８×８のクロマブロックの予測モードセレクタを図示したものである。上述のごとく、H.264標準規格はこれら２つのタイプのブロックに対して４つの可能性のある（possible）予測モードを定義している。この実施例のために、両タイプのブロックの予測モードの選択を類似したやり方で識別していい。
【００５４】
この図に図示されているように、予測ブロック生成器（９１０、９２０、９３０、９４０）の配列が、４つの可能性のあるモード（モード０からモード３）各々に対して、１６×１６のルーマブロックまたは８×８のクロマブロック（９０５）の予測ブロックを生成する。一つの実施例によれば、（この図に表示されているように）４つの予測モードそれぞれと関連した単一の予測ブロック生成器があっていい。また別の実施例においては、この予測ブロック生成器（９１０、９２０、９３０、９４０）の配列を単一モジュールに集積または複数のモジュールに結合されていてもいい。４つの予測ブロックは各々、ある特定の予測モードに従って、１６×１６のルーマブロックまたは８×８のクロマブロック９０５を変換および量子化することによって生成されて構わない。この変換および量子化後に、同じ特定の予測モードに従って逆量子化および逆変換することによってブロックが再構築される。この再構築されたブロックは、特定の予測モードで符号化された１６×１６のルーマブロックまたは８×８のクロマブロック９０５のいくらか誤差を有する予測ブロックを表わしている。
【００５５】
誤差計算モジュール（９１５、９２５、９３５、９４５）の配列は、４つの予測モードに従って生成された１６×１６のルーマブロックまたは８×８のクロマブロック９０５の４つの予測ブロックを受け取る。これらの誤差計算モジュールは単一のまたは複数のモジュールに集積されても構わない。発明の一つの実施例によれば、予測ブロックとルーマまたはクロマブロック（９０５）との間の誤差を識別するのに絶対差分合計計算を使用する。４つの予測モード各々に対して生成された４つの異なる予測ブロックに対応して４つの異なる絶対差分合計計算が行なわれる。当業者ならば、ある特定の予測モードで生成された予測ブロックに関係した誤差値を量子化するのに他の計算を実行して構わないことが分かるだろう。
【００５６】
予測モードセレクタ（９５０）は、ある特定の１６×１６のルーマブロックまたは８×８のクロマブロックに対する４つの異なる予測モードから一つ選択する。発明の一つの実施例によれば、予測モードセレクタ（９５０）は、前に行なわれた誤差計算に基づいてモードを選択する。したがって、前の誤差計算に基づいて、失われたデータ量が最低の予測モードが選択される。また別の実施例では、予測モードセレクタ（９５０）は１６×１６のルーマブロックまたは８×８のクロマブロックに使用可能な４つの予測モードのうち少なくとも一つのレート・ひずみ値を計算する。レート・ひずみ計算の解析に基づいて次に予測モードが選択されて構わない。当業者ならば、１６×１６のルーマブロックまたは８×８のクロマブロックに対応して使用可能な４つの予測モードの集合から予測モードを選択するのに多数のいろいろな方法を使用できることが分かるだろう。
【００５７】
一旦４×４のルーマブロック、８×８のクロマブロック、または１６×１６のルーマブロックに対して予測モードが選択されたら、マクロブロックを符号化して通信リンク上に伝送して構わない。これらのモードは、復号化して表示できるように、マクロブロックを受け取るクライアントに提供される。
【００５８】
上記の説明は、好適な実施例の動作を例証するためであって、発明の範囲を限定するつもりではない。上記の説明から、当業者ならば、発明の精神ならびに範囲内において多くの変形例が明白になるだろう。したがって、発明の範囲は下記の特許請求の範囲によってのみ限定されるものである。
【図面の簡単な説明】
【００５９】
【図１】データを符号化および復号化できる通信リンクの図。
【図２】エンコーダの大まかなブロック図。
【図３】Ａはデータの４×４のルーマブロックの代表的な予測モードの図、Ｂはデータの１６×１６のルーマブロックまたは８×８のクロマブロックの代表的な予測モードの図。
【図４】本発明の実施例による、データのブロックの予測モードを選択するための方法を説明するフローチャート。
【図５】本発明の実施例による、データの４×４のルーマブロックの予測モードを選択するための方法を説明するフローチャート。
【図６】本発明の実施例による模式的Kテーブル。
【図７】本発明の一つの実施例による８×８のクロマブロックおよび１６×１６のルーマブロックの予測モードを選択するための方法を説明するフローチャート。
【図８】本発明の一つの実施例による４×４のルーマブロックの予測モード選択デバイスのブロック図。
【図９】本発明の一つの実施例による１６×１６のルーマブロックまたは８×８のクロマブロックの予測モード選択デバイスのブロック図。
【符号の説明】
【００６０】
110  ビデオカメラ
115  エンコーダ
120  通信リンク
125  デコーダ
130  ディスプレイ
205  フレームN
210  変換
212  周波数領域
215  量子化
220  スケーリング後
225  量子化-1
230  再スケーリング後
235  変換-1
245  フレーム（予測または再構築後）
305  モード0（垂直）
310  モード1（水平）
315  モード8（水平上向き）
330  モード0（垂直）
335  モード1（水平）
340  モード3（平面）
405  データブロックを符号化するのに使用できる複数の予測モードを識別
410  複数の予測モードそれぞれと関連した誤差値を計算
415  量子化手順の少なくとも一つの特性および少なくとも2つの算定誤差値に基づいて、複数の予測モードをより小さなポテンシャル予測モード部分集合に減少
420  より小さな予測モード部分集合の解析に基づいて、より小さなポテンシャル予測モード集合から予測モードを一つ選択
425  選択された予測モードに従ってデータを符号化
505  もともとの4x4のルーマブロックを用いて、使用可能なモードごとに予測した4x4ブロックを生成
510  もともとの4x4ブロックと予測した4x4の各ブロックとの間の絶対差分の合計を計算
515  算定絶対差分合計値に応じて、予め定義されたモード数を選択
520  選択したモードごとに、関連したレート・ひずみ値（例えば、RD_Cost）を計算
525  A
705  もともとの16x16ルーマブロックを用いて、4つの使用可能なモードに対して予測した16x16ブロックを生成
710  もともとの16x16ブロックと予測した16x16の各ブロックとの間の絶対差分合計を計算
715  算定差分値合計に基づいてモードを選択
525  A
725  もともとの8x8クロマブロックを用いて、4つの使用可能なモードに対して予測した8x8ブロックを生成
730  もともとの8x8ルーマブロックと予測した4つの8x8ブロックとの間の絶対差分合計を計算
740  算定差分値合計に基づいてモードを選択
750  ルーマブロックおよびクロマブロックに対して選択したモードに基づいて、マクロブロックを符号化
805  4x4ルーマブロック
810  予測ブロック生成器（モード0）
815  絶対差分合計計算器（モード0）
820  予測ブロック生成器（モード1）
825  絶対差分合計計算器（モード1）
830  予測ブロック生成器（モード2）
835  絶対差分合計計算器（モード2）
840  予測ブロック生成器（モード8）
845  絶対差分合計計算器（モード8）
850  予測モードフィルタ
855  予測モードセレクタ
905  16x16ルーマブロックまたは8x8クロマブロック
910  予測画素生成器（モード0）
915  絶対差分合計計算器（モード0）
920  予測画素生成器（モード1）
925  絶対差分合計計算器（モード1）
930  予測画素生成器（モード2）
935  絶対差分合計計算器（モード2）
940  予測画素生成器（モード3）
945  絶対差分合計計算器（モード3）
950  モードセレクタ
【図４】
2006203909.tif 000004
【図５】
2006203909.tif 000005
【図７】
2006203909.tif 000006
【図１】
2006203909.tif 000007
【図２】
2006203909.tif 000008
【図３】
2006203909.tif 000009
【図６】
2006203909.tif 000010
【図８】
2006203909.tif 000011
【図９】
2006203909.tif 000012