(57)【要約】  記述されるのはデータを処理する方法及びシステムである。動き推定器は、第１の符号化方式に従い、映像データの入力フレームのブロックと映像データの参照フレームのブロックとを使って動きベクトルを生成する。動き補償器は、第１の符号化方式とは異なる第２の符号化方式に従って、動きベクトルから１／２画素単位の動きベクトルを生成する。【選択図】図１
2009526485.tif 000002
【特許請求の範囲】
【請求項１】
映像データを処理するシステムであって、
第１の符号化方式に従い、映像データの入力フレームのブロックと映像データの参照フレームのブロックとを使って動きベクトルを生成するように動作する動き推定器と、
前記第１の符号化方式に従い、前記動きベクトルを使って前記入力フレームのブロックの再構築第１バージョンを生成するように動作する、前記動き推定器に接続された第１の符号器と、
前記第１の符号化方式とは異なる第２の符号化方式に従い、前記動きベクトルを使って前記入力フレームのブロックの再構築第２バージョンを生成するように動作する、前記動き推定器に接続された第２の符号器と、
を備えるシステム。
【請求項２】
前記動きベクトルが２タップ有限インパルス応答（ＦＩＲ）フィルタを使って生成され、前記第２の符号器が、１／２画素単位の補間画素を生成する複数の６タップＦＩＲフィルタを備え、及び／又は、
前記第２の符号器が、前記参照フレームのブロックと前記入力フレームのブロックの再構築第２のバージョンとの両方を同時に格納するように動作する循環バッファを更に備え、及び／又は前記第２の符号器が、前記入力フレームの映像データのブロックと前記参照フレームの映像データのブロックとを交互に配置するように動作するデータパッカを更に備え、及び／又は、
前記第２の符号器が、前記入力フレームと前記参照フレームとの差を含む残差の変換及び量子化と、該残差の逆量子化及び逆変換とを含む符号化操作を実施する複数のソフトウェアベースの命令を実行するように動作するディジタル信号プロセッサを更に備える、請求項１に記載のシステム。
【請求項３】
前記第２の符号器が、前記映像データの輝度チャネルのｘ成分を処理する複数の輝度行フィルタを備え、及び／又は、
前記第２の符号器が、前記複数の輝度行フィルタに接続されたキャッシュであって、該キャッシュが使用可能となるクロックサイクル毎に、前記複数の輝度行フィルタからの結果が該キャッシュの第１行にロードされ、既に該第１行にある結果が該キャッシュの第２行にシフトされる、キャッシュを更に備え、及び／又は、
前記第２の符号器が、
前記映像データの彩度チャネルのｘ成分を処理する複数の彩度行フィルタと、
前記彩度チャネルのｙ成分を処理する複数の彩度列フィルタと、
前記輝度チャネルのｙ成分を処理する複数の輝度列フィルタと
を更に備え、
前記複数の彩度行フィルタ及び前記複数の彩度列フィルタの両方が前記キャッシュの前記第１行と前記第２行との両方に接続されており、前記複数の輝度列フィルタの各輝度列フィルタが前記キャッシュの各行に接続されている、請求項１に記載のシステム。
【請求項４】
前記第１の符号化方式が実質的にＭＰＥＧ−４に準拠した符号化方式を備え、前記第２の符号化方式が実質的にＨ．２６４に準拠した符号化方式を備える請求項１に記載のシステム。
【請求項５】
映像データを処理する方法であって、
第１の符号化方式に従い、映像データの入力フレームのブロックと映像データの参照フレームのブロックとを使って生成される動きベクトルを２タップ有限インパルス応答（ＦＩＲ）フィルタを使って選択するステップと、
前記第１の符号化方式とは異なる第２の符号化方式に従い、前記動きベクトルに６タップＦＩＲフィルタを適用して１／２画素単位の補間画素を算出するステップと、
を含む方法。
【請求項６】
前記参照フレームのブロックと前記入力フレームのブロックの再構築バージョンとの両方を循環バッファに同時に格納するステップを更に含み、及び／又は、
前記入力フレームの映像データのブロックと前記参照フレームの映像データのブロックとを交互に配置するステップを更に含む、請求項５に記載の方法。
【請求項７】
複数の輝度行６タップＦＩＲフィルタを使って前記映像データの輝度チャネルのｘ成分を処理するステップと、
前記複数の輝度行フィルタからの結果をキャッシュの第１行にロードするステップと、
既に前記第１行にある結果を前記キャッシュの第２行にシフトするステップと、を更に含み、及び／又は、
複数の彩度行６タップＦＩＲフィルタを使って前記映像データの彩度チャネルのｘ成分を処理するステップと、
複数の彩度列６タップＦＩＲフィルタを使って前記彩度チャネルのｙ成分を処理するステップと、
複数の輝度列６タップＦＩＲフィルタを使って前記輝度チャネルのｙ成分を処理するステップと
を更に含む、請求項５に記載の方法。
【請求項８】
前記第１の符号化方式が実質的にＭＰＥＧ−４に準拠した符号化方式を備え、前記第２の符号化方式が実質的にＨ．２６４に準拠した符号化方式を備える、請求項５に記載の方法。
【請求項９】
映像データを処理するシステムであって、
第１の符号化方式に従い、映像データの入力フレームのブロックと映像データの参照フレームのブロックとを使って動きベクトルを生成するように動作する動き推定器と、
前記第１の符号化方式とは異なる第２の符号化方式に従い、前記動きベクトルから１／２画素単位の補間画素を生成するように動作する、前記動き推定器に接続された動き補償器と、
前記入力フレームの映像データのブロックと前記参照フレームの映像データのブロックとを交互に配置するように動作する、動き補償器に接続されたデータパッカと、
を備えるシステム。
【請求項１０】
前記動きベクトルが２タップ有限インパルス応答（ＦＩＲ）フィルタを使って生成され、前記１／２画素単位の補間画素が複数の６タップＦＩＲフィルタを使って生成され、及び／又は、
前記動き補償器が、前記参照フレームのブロックと前記入力フレームのブロックの再構築バージョンとの両方を同時に格納するように動作する循環バッファを更に備え、及び／又は、
前記入力フレームと前記参照フレームとの差を含む残差の変換及び量子化と、前記残差の逆量子化及び逆変換とを含む符号化操作を実施する複数のソフトウェアベースの命令を実行するように動作する、前記データパッカに接続されたディジタル信号プロセッサを更に備える、請求項９に記載のシステム。
【請求項１１】
前記映像データの輝度チャネルのｘ成分を処理する複数の輝度行フィルタと、
前記複数の輝度行フィルタに接続されたキャッシュであって、該キャッシュが使用可能となるクロックサイクル毎に、前記複数の輝度行フィルタからの結果が該キャッシュの第１行にロードされ、既に該第１行にある結果が該キャッシュの第２行にシフトされる、キャッシュと、
前記映像データの彩度チャネルのｘ成分を処理する複数の彩度行フィルタと、
前記彩度チャネルのｙ成分を処理する複数の彩度列フィルタと、
前記輝度チャネルのｙ成分を処理する複数の輝度列フィルタと、を更に備え、
前記複数の彩度行フィルタ及び前記複数の彩度列フィルタの両方が前記キャッシュの前記第１行と前記第２行との両方に接続されており、前記複数の輝度列フィルタの各輝度列フィルタが前記キャッシュの各行に接続されている、請求項９に記載のシステム。
【発明の詳細な説明】
【関連米国出願】
【０００１】
[0001]本出願は、本出願の譲受人に譲渡されており、参照によりその全文が本明細書に組み込まれる、２００６年２月１０日に出願された、「Ａｄａｐｔｉｎｇ  Ｏｎｅ  Ｔｙｐｅ  ｏｆ  Ｅｎｃｏｄｅｒ  ｔｏ  Ａｎｏｔｈｅｒ  Ｔｙｐｅ  ｏｆ  Ｅｎｃｏｄｅｒ」という名称の、同時係属の仮特許出願第６０／７７２，４４０号（代理人整理番号ＮＶＩＤ−Ｐ００２１２９．ＰＲＯ）の優先権を主張するものである。
【技術分野】
【０００２】
[0002]本稿の実施形態は一般にデータ処理に関する。より詳細には、本稿の実施形態は、映像データなどのデータの符号化（圧縮）に関する。本稿は、少なくとも、ある種の符号器を別種の符号器に適合させることに関するものである。
【背景技術】
【０００３】
[0003]携帯型家電製品にますます多くのマルチメディア機能が組み込まれるのに伴い、映像ストリームの迅速且つ効率的な処理の重要さが増している。例えば、携帯電話機を使って、マルチメディアコンテンツを検索し、閲覧し、送信することができる。しかしながら、携帯型機器の機能は増え続けているが、パーソナルコンピュータなどのより強力なプラットフォームと比べると、かかる機器には依然として若干の限界がある。データ伝送及び検索の速度も一因となり得る。一般的に、（映像などの）画像データの量は音声データの量よりも考慮の対象となる。
【０００４】
[0004]多くの場合、データは格納及びストリーミングを円滑化するために符号化（圧縮）され、その後、再生（表示など）のために復号（解凍）される。映像データは、例えば、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅｓ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式などを使って圧縮され得る。動画像列を符号化することにより、その動画像列を表すのに必要なビット数を大幅に低減することができる。
【０００５】
[0005]典型的な動画像列では、あるフレームの内容又はそのフレームの少なくとも一部分が別のフレームの部分と非常によく似ていることがある。これを、一般に、「時間的冗長性」という。時間的冗長性を利用するために、一般に「動き補償」と呼ばれる圧縮技術が用いられる。あるフレームの内容が、別の（参照）フレームの内容と密接に関連する場合、参照フレームを使ってそのフレームの内容を正確に表し、又は予測することが可能である。
【０００６】
[0006]各フレームは、画素のブロック（１６×１６画素のマクロブロックなど）に分割される。異なる位置への移動は別として、通常は、参照フレーム内の対応するブロックから大きくは変形されないブロックの運動は、動きベクトルを使って表すことができる。例えば、（３，４）という動きベクトルは、ブロックが、参照フレーム内の対応するブロックの位置に対して左に３画素、上に４画素移動したことを意味し得る。動き補償とは、復号（解凍）ブロックに動きベクトルを適用して新しいブロック（又はフレーム又は画像）を構築することをいう。
【０００７】
[0007]圧縮規格は、再構築映像の品質を損なうことなく高い圧縮率を達成するために進化し続けている。より広範に使用されるようになってきている最近の圧縮規格はＨ．２６４又はＭＰＥＧ−４パート１０と呼ばれ、より正しくは、ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（高度映像符号化方式））と呼ばれるものである。ＭＰＥＧ−４（ＭＰＥＧ−４パート１０とは異なる）などの以前からの規格も引き続き使用されている。
【発明の開示】
【課題を解決するための手段】
【０００８】
[0008]ＭＰＥＧ−４などのように従来から依然として許容されている規格が引き続き使用され、Ｈ．２６４などのより新しい、又は改善された規格が導入されると、家電機器の製造者にとってのジレンマが生じ得る。ある圧縮方式のために設計された機器が異なる圧縮方式を実施できないこともある。これは、符号化がハードウェアで実現される機器において特に当てはまる。したがって、ある圧縮方式（ＭＰＥＧ−４など）の態様を別の圧縮方式（Ｈ．２６４など）に容易に適合させることのできるシステム及び／又は方法があれば有利となるはずである。本発明に係る実施形態は、このような利点及びその他の利点を提供するものである。
【０００９】
[0009]一実施形態では、通常はＭＰＥＧ−４符号器パイプラインであるものに、半画素（１／２画素単位の）フィルタ及びデータパッカモジュールを含むＨ．２６４補間器を付加することによって、Ｈ．２６４符号器が実施される。一実施形態では、Ｈ．２６４補間器はハードウェアにより実施される。ＭＰＥＧ−４パイプラインは動きベクトルを算出するのに使用され、Ｈ．２６４補間器は動き補償に使用される。データパッカモジュールは、動き補償器の出力を、変換、量子化、逆変換、逆量子化などといった他の符号化プロセスの実行を命令する下流側のメディアプロセッサユニット（ディジタル信号プロセッサなど）が使用するのに適したやり方で整える。
【００１０】
[0010]通常のＭＰＥＧ−４パイプラインにおけるハードウェアへのＨ．２６４補間器の実装はゲート数を増やすことなく実現され、電力消費が低減され得る。かかる特徴は、携帯型電話機、携帯情報端末（ＰＤＡ）、携帯ゲーム機器といった携帯型電子機器において特に有益である。
【００１１】
[0011]本発明の様々な実施形態の上記及びその他の目的及び利点は、様々な図面に示す実施形態の以下の詳細な説明を読めば、当分野の技術者には理解されるであろう。
【００１２】
[0012]本明細書に組み込まれ本明細書の一部を形成する添付の図面には本発明の実施形態が示されており、説明と相まって、本発明の原理を説明するのに使用されるものである。
【発明を実施するための最良の形態】
【００１３】
[0021]次に、添付の図面にその例が示されている本発明の様々な実施形態を詳細に説明する。本発明をこれらの実施形態との関連で説明するが、当然ながら、これらは本発明をこれらの実施形態だけに限定するためのものではない。それどころか、本発明は、添付の特許請求の範囲で定義される本発明の精神及び範囲に含まれ得る代替形態、変形例及び均等物を包含することを目的とするものである。更に、以下の本発明の詳細な説明では、本発明を十分に理解できるように多数の具体的詳細を示す。しかしながら、本発明はこれらの具体的詳細なしでも実施され得ることが理解されるであろう。場合によっては、本発明の態様を不必要に曖昧にしないよう、周知の方法、手順、構成要素、及び回路を詳細に説明しないこともある。
【００１４】
[0022]以下の詳細な説明の部分には、コンピュータメモリ内のデータビットに対する操作の手順、論理ブロック、処理、及びその他の記号表現として提示されるものもある。これらの記述及び表現は、データ処理分野の技術者が、当分野の他の技術者にその作業の内容を最も効果的に伝達するのに使用される手段である。本出願では、手順、論理ブロック、プロセスなどを、所望の結果に導く、自己矛盾のないステップ又は命令のシーケンスとみなす。これらのステップは、物理量の物理的操作を利用するものである。普通、必須ではないが、これらの量は、コンピュータシステムにおいて、格納し、転送し、合成し、比較し、その他のやり方で操作することのできる電気信号又は磁気信号の形を取る。時には、主に一般的用法として、これらの信号をトランザクション、ビット、値、要素、シンボル、文字、サンプル、画素などと呼ぶ方が好都合なこともある。
【００１５】
[0023]しかしながら、上記及び類似の用語はすべて、適切な物理量と関連付けられるべきものであり、単に、これらの量に適用される便宜的なラベルにすぎないことに留意すべきである。当然ながら、以下の考察から明らかなように特に明示しない限り、本発明全体を通して、「実行する（ｅｘｅｃｕｔｉｎｇ）」、「受け取る（ｒｅｃｅｉｖｉｎｇ）」、「アクセスする（ａｃｃｅｓｓｉｎｇ）」、「算出する（ｃｏｍｐｕｔｉｎｇ）」、「識別する（ｉｄｅｎｔｉｆｙｉｎｇ）」、「復号する（ｄｅｃｏｄｉｎｇ）」、「符号化する（ｅｎｃｏｄｉｎｇ）」、「ロードする（ｌｏａｄｉｎｇ）」、「適用する（ａｐｐｌｙｉｎｇ）」、「除去する（ｒｅｍｏｖｉｎｇ）」、「シフトする（ｓｈｉｆｔｉｎｇ）」、「格納する（ｓｔｏｒｉｎｇ）」、「選択する（ｓｅｌｅｃｔｉｎｇ）」、「配列する（ａｒｒａｎｇｉｎｇ）」、「向ける（ｄｉｒｅｃｔｉｎｇ）」、「生成する（ｇｅｎｅｒａｔｉｎｇ）」、「再構築する（ｒｅｃｏｎｓｔｒｕｃｔｉｎｇ）」、「比較する（ｃｏｍｐａｒｉｎｇ）」、「変換する（ｔｒａｎｓｆｏｒｍｉｎｇ）」、「量子化する（ｑｕａｎｔｉｚｉｎｇ）」、「取り出す（ｆｅｔｃｈｉｎｇ）」などといった語を使った考察は、コンピュータシステム、類似の電子計算処理装置又はプロセッサの動作及び処理を指すものである。コンピュータシステム又は類似の電子計算処理装置は、コンピュータシステムメモリ、レジスタ、又はその他のかかる情報記憶、伝送又は表示装置内の物理（電子）量として表されるデータを操作し変換する。
【００１６】
[0024]本明細書に示す説明及び例は、映像データの状況において論じられる。しかしながら、本発明は映像データだけに限定されるものではない。データはマルチメディアデータでもよく、例えば、映像データに関連付けられた音声データがあってもよい。
【００１７】
[0025]図１は、本発明に係る符号器が実装され得るシステム１０のブロック図である。図１の例では、システム１０は、バス１５を介してメディア（映像やグラフィックスなど）プロセッサユニット（ＭＰＵ）１２に接続されているホスト中央処理装置（ＣＰＵ）１１を含む。ＣＰＵ１１もＭＰＵ１２も、バス１５を介してメモリ１４に接続されている。システム１０の実施形態では、メモリ１４は、ＣＰＵ１１及びＭＰＵ１２双方に対する命令及びデータを格納するための共用メモリである。代替として、ＣＰＵ１１及びＭＰＵ１２それぞれに専用の別個のメモリがあってもよい。また、メモリ１４は、接続されたディスプレイ１３を駆動する画素データを格納する映像フレームバッファも含んでもよい。
【００１８】
[0026]図１に示すように、システム１０は、本発明の実施形態に係る機能を実施するコンピュータシステムプラットフォームの基本構成要素を含む。例えば、システム１０は、多くの異なる種類の携帯型電子機器として実施可能である。かかる機器には、例えば、携帯電話機、携帯情報端末（ＰＤＡ）、携帯型ゲーム機、あるいは、実質上、表示機能を備える他の任意の種類の機器が含まれ得る。かかる実施形態では、周辺バス、専用通信部品、専用入力／出力（入出力）装置のサポートなどを追加するように設計された構成要素が含まれ得る。
【００１９】
[0027]本発明の実施形態によれば、通常はＭＰＥＧ−４パイプラインであるものにＨ．２６４補間器を挿入することによって、Ｈ．２６４符号器が実施される。ＭＰＥＧ−４パイプラインは、動き補償のためにＨ．２６４補間器により使用される動きベクトルを算出する。一実施形態では、Ｈ．２６４補間器はＭＰＵ１２上に実装される。Ｈ．２６４補間器の出力は、例えば、一実施形態ではＭＰＵ１２の一部であるディジタル信号プロセッサ（ＤＳＰ）に提供される。以下に、図２、図３及び図４との関連で、Ｈ．２６４補間器に関して更に情報を提供する。
【００２０】
[0028]図２は、本発明の一実施形態に係る、映像データを符号化する処理２０の諸要素を通るデータの流れを示すブロック図である。図２の例には、データの符号化と関連するより重要な処理ブロックのいくつかが示されている。しかしながら、すべての処理ブロックが示されているとは限らず、各処理ブロックは、図示の順序と異なる順序で実行されてもよい。また、説明と図示を簡単にするために、処理ブロック間のすべてのデータフローパスが示されているものでもない。
【００２１】
[0029]特に、本発明の実施形態によれば、処理２０にはＭＰＥＧ−４及びＨ．２６４双方の処理ブロックが示されている。前述のように、Ｈ．２６４符号器の諸要素がＭＰＥＧ−４パイプラインに挿入されている。概して、ＭＰＥＧ−４パイプラインは、ＭＰＥＧ−４符号器又はＨ．２６４符号器のどちらかによって順々に使用される動きベクトルを生成するのに使用される。すなわち、動き推定ブロック２０６の下流では、ＭＰＥＧ−４に従って生成される動きベクトルがＭＰＥＧ−４符号化プロセス又はＨ．２６４符号化プロセスで使用され得る。
【００２２】
[0030]図２の例では、ＭＰＥＧ−４に従って実施される処理ブロックがＭＰＥＧ−４として識別され、Ｈ．２６４に従って実施される処理ブロックも同様に識別されている。処理は、おそらくはＭＰＥＧ−４モードからＨ．２６４モード、及びその逆方向へ切り換えることができるが、実際には処理２０はＭＰＥＧ−４符号器又はＨ．２６４符号器のどちらかを使って実施される。すなわち、システム１０には、ＭＰＥＧ−４符号化方式とＨ．２６４符号化方式を実施する機能が備わっている。しかしながら、家電機器で実施されるときには、製造元又は販売元は、可能な符号化方式のうちの１つだけを実施するよう選択してもよい。
【００２３】
[0031]本実施形態では、符号化のための入力（現在の）フレーム２０２が示されている。このフレームはマクロブロックの単位（１６×１６画素ブロックなど）で処理される。予測マクロブロックは１つ又は複数の参照フレーム２０４に基づいて形成される。（１つ又は複数の）参照フレーム２０４は、前に符号化されたフレーム（現在のフレーム２０２の直前に符号化されたフレーム。符号化の順序は、各フレームが表示されるべき順序と異なっていてもよいことに留意する）を含んでいてもよく、既に符号化され再構築されている他のフレーム（例えば、ＭＰＥＧ−４モードの再構築フレーム２１６や、Ｈ．２６４モードの再構築フレーム２２４など）の中から選択される。動き推定ブロック２０６では、入力フレーム２０２と（１つ又は複数の）参照フレーム２０４とを比較することにより動きベクトル２０８が導出される。
【００２４】
[0032]ＭＰＥＧ−４の実装では、動き補償ブロック２１０において、動きベクトル２０８を使って予測マクロブロックが形成される。この予測マクロブロックが現在のマクロブロック（入力フレーム２０２）から差し引かれて残差が生じ、この残差が変換（離散コサイン変換など）され量子化されて１組の係数が生じる（ブロック２１２）。この係数は、エントロピ符号化（ハフマン符号化など）され、復号に使用される本考察にとって重要ではない他の情報と共に、送信又は格納され得る圧縮ビットストリームに形成され得る。また、この係数は、他のフレームを符号化するのに使用され得るフレームを再構築するために復号される。ブロック２１４において、係数は逆量子化及び逆変換されて、（前述の残差とは異なる）別の残差が生じ、これが予測マクロブロックに加えられて再構築マクロブロックが形成され、最終的には再構築フレーム２１６が形成される。
【００２５】
[0033]Ｈ．２６４の実装では、１／２画素単位の動きベクトルのために、６つの隣接画素に対して６タップフィルタ（６タップ有限インパルス応答フィルタなど）を用いることにより、Ｈ．２６４動き補償ブロック２１８において、ＭＰＥＧ−４符号化方式に従って導出される動きベクトル２０８を使って予測ブロックが生成される。Ｈ．２６４動き補償ブロック２１８については、以下で図３及び４に関連して更に論じる。データパッキングブロック２２０では、動き補償ブロック２１８からのデータが、次の処理段階（下流データ処理ブロック２２２など）で容易に使用できるようなやり方でまとめられる（整えられる）。また、データパッキングブロック２２０は、ブロック２２２へのデータの流れを制御するように動作することもできる。ブロック２２２では、前述の変換、量子化、逆変換及び逆量子化処理が、ＭＰＵ１２の制御下でソフトウェアとハードウェアとの組み合わせを使って実行され、最終的には、他のフレームを符号化するのに使用され得る再構築フレーム２２４が生成される。
【００２６】
[0034]引き続き図２を参照すると、動き推定ブロック２０６では、動きベクトル２０８が半画素（１／２画素単位）の精度まで求められ得る。動きベクトルはｘ成分とｙ成分からなり、これらの成分のどちらか又は両方を１／２画素単位の精度とすることができる。例えば、５．５のｘ成分を有するベクトルは、（参照フレーム内の対応するブロックに対して測定される）ブロックの動きが、ｘ方向において５画素と６画素の間にあることを意味する。より具体的には、ベクトル成分は、２つの画素、すなわち、５画素の距離と関連付けられる画素と６画素の距離と関連付けられる画素との平均値を取ることによって求められる。これを、画素間の画素の測定値を得るのに２画素を処理することから２タップ有限インパルス応答（ＦＩＲ）フィルタという。よって、動きベクトル２０８は、２タップフィルタを使って求められ、最大で１／２画素単位までの精度を有する。１／２画素単位の精度が可能ではあるが、動きベクトル成分が１画素の値である場合があってもよい。更に、下流処理ブロック２２２を使って１／２画素単位の値を平均することにより１／４画素単位の動きベクトルを求めることもできる。
【００２７】
[0035]図３は、動き推定ブロック２０６から（図２のブロック２１８と２２０を表す）Ｈ．２６４補間器３２を通り、その後さらなる処理（前述した変換など）のための下流データ処理ブロック２２２に至る情報の流れを示すブロック図である。Ｈ．２６４補間器３２に入力される情報は、ＭＰＥＧ−４パイプラインから流れるデータ３４に対応する制御ビット及び有効ビット３３を含む。データ３４は、参照フレームと現在のフレームのマクロブロックデータを含む。制御ビットは、例えば、マクロブロック及びフレームの始めと終わりの印となる。有効ビットは、有効データを含むパイプラインをマークするために含めることができる。また、制御ビット及び有効ビット３３は、Ｈ．２６４補間器３２の動き補償器２１８において輝度及び彩度メモリ読取りエンジンを制御するためにも使用される。更に、制御ビット及び有効ビット３３は、データパッカ２２０がブロック２２２に送られる出力データをまとめるのにも使用される。
【００２８】
[0036]本実施形態では、Ｈ．２６４補間器３２はデータ種別（現在のフレームかそれとも参照フレームかなど）を表す信号３８も受信する。
【００２９】
[0037]Ｈ．２６４補間器３２から出力される情報は、帯域外信号３６及びデータ３７を含む。データ３７は、表示画面１３（図１）上の画素に対応する動き補償画素値のストリームを含む。また、データ３７は図２の動きベクトル２０８も含む。各画素値は、各画素のフィルタリングされた値を表す。動きベクトル２０８がゼロでない場合、データ３７は動きベクトルの関数である。動きベクトル２０８がゼロである場合、データはＨ．２６４補間器３２を通過する。
【００３０】
[0038]図３の帯域外信号３６は、例えば、ブロック及びマクロブロックの始めと終わり、フレームの始め、及びフレームの最後のマクロブロックを識別する。また、データ有効ビットを送ることもできる。図７に、帯域外信号３６の信号プロトコルの一実施形態を示す。
【００３１】
[0039]図４は、本発明の一実施形態に係るＨ．２６４補間器３２のブロック図である。本実施形態では、Ｈ．２６４補間器３２は、図２の動き補償ブロック２１８とデータパッキングブロック２２０とを含む。大まかにいうと、一実施形態では、Ｈ．２６４補間器３２は、データ複製論理を備える循環データキャッシュと、Ｈ．２６４補間器３２の動作を制御する状態機械５０と、システムメモリ１４（図１）からメモリワードを取り出すのに使用されるハードウェア制御構造と、データに補間フィルタを適用するのに使用されるデータパスと、データをまとめてその結果を次の装置（下流データ処理ブロック２２２)に書き込む出力装置（出力選択論理４５０）とを含む。出力選択論理４５０は、図２のデータパッカ２２０と類似のものである。以下で、状態機械５０を図５との関連で論じる。
【００３２】
[0040]以下の、図４のＨ．２６４補間器３２の考察では、バッファ、キャッシュなどに言及する。これらの記憶要素は、図１の記憶装置１４にあっても、Ｈ．２６４補間器３２に接続された別個のメモリユニットにあっても、補間器３２内にあってもよい。更に、説明を明確にするために図４では一部の詳細を省略している（例えば、マルチプレクサは示していない）。また、図４は、例えば、ビット数、フィルタ数、バッファ数などとの関連で考察されている。これら具体例との関連で考察してはいるが、本発明はそれらの例に限定されるものではない。
【００３３】
[0041]Ｈ．２６４補間器３２を通るデータパスは、データパイプライン及び制御パイプラインを含む。データパイプライン及び制御パイプラインは、データを、現在のパイプ段階（ｐｉｐｅ  ｓｔａｇｅ）から後続のパイプ段階に送るのに使用されるバイパスマルチプレクサを含む。すなわち、データはパイプ段階を飛び越すことができる。データパイプライン及び制御パイプラインを通る流れを制御するマルチプレクサは、同じマルチプレクサ選択信号によって制御される。マルチプレクサバイパス操作は、動きベクトル２０８（図２）とデータ種別３８（例えば現在のフレーム又は参照フレーム、図３参照）とによって制御される。
【００３４】
[0042]引き続き図４を参照すると、制御パイプラインを流れる制御ビット及び有効ビットは、データパイプライン内の同じパイプ段階を流れるデータに対応する。制御ビットは、マクロブロック及びフレームの始めと終わりの印となる。有効データを含むパイプラインをマークするために有効ビットが含まれる。制御ビット及び有効ビットは、輝度及び彩度メモリ読取りエンジン（入力選択論理４０３など）を制御し、下流データ処理ブロック２２２に送られるデータをまとめるのに使用される。
【００３５】
[0043]一実施形態では、参照フレーム２０４（図２）の各面がシステムメモリ１４（図１）内の循環バッファに格納される。１６×１６画素マクロブロックの各８×８象限ごとに、既に算出された動きベクトルが存在する。各象限ごとに、ブロックの左上座標と右下座標をその動きベクトルと合算し、その結果が、参照フレームの境界に合わせて切り抜かれる。次いで、結果として生じる座標が、システムメモリ１４（図１）内の循環バッファ上に投影される。座標がバッファを「折り返す」（ｗｒａｐ  ａｒｏｕｎｄ）場合には（図６参照）、１象限当たりの１カラーチャネル当たり２回のメモリフェッチが実行される。座標が折り返さない場合には、１回のメモリフェッチだけで済む。各フェッチのサイズは、例えばそのフェッチが輝度フェッチであるかそれとも彩度フェッチであるか、座標が循環バッファを折り返すか否か、動きベクトルが１／２画素単位であるか否かなどに応じて、１×１画素から１３×１３画素までの範囲に及ぶ。
【００３６】
[0044]図４のＨ．２６４補間器ブロック３２は、現在のデータキャッシュと参照データキャッシュとに接続されており、これらのデータキャッシュは１４ビット画素値を含む。Ｈ．２６４補間器３２は、有効データがあるときに知らせる上流側装置（動き推定ブロック２０６など）によって制御される。Ｈ．２６４補間器３２は入力選択論理４０３に従ってデータを読み取る。取り出されたデータは、メモリ１４から戻る際に複数のバッファにキャッシュされる。１チャネル当たり４つのバッファがある。輝度バッファはそれぞれ１３×１３画素（１画素当たり８ビット）であり、彩度バッファはそれぞれ５×５画素（１画素当たり８ビット）である。２回のフェッチを要した各象限ごとのデータは単一のバッファにまとめられる。更に、データは、フェッチの間に発生した切り落しを補償するために、自動的に境界拡張される（例えば、利用可能な画素の境界ミラーリングを使用し、基本的には境界外でエッジ部分の画素を反復するなど）。システムメモリ１４からのフェッチは、Ｈ．２６４補間器３２の補間処理を用いてパイプライン処理される。
【００３７】
[0045]Ｈ．２６４補間器３２はバッファから参照フレーム（図２の参照フレーム２０４など）のデータを読み取る。参照フレームの各８×８象限の輝度チャネルについて、Ｈ．２６４補間器３２はバッファから８又は１３の８ビット画素の８又は１３行を読み取る。参照フレームの各８×８象限の彩度チャネルについて、Ｈ．２６４補間器３２はバッファから４又は５の８ビット画素の４又は５行を読み取る。バッファに複数回のフェッチが読み込まれたかどうか、又は境界拡張が使用されたかどうかは、Ｈ．２６４補間器３２にとっては透過的である。
【００３８】
[0046]図４のＨ．２６４補間器３２はバッファから現在のフレーム（図２の入力フレーム２０２など）のデータを読み取る。現在のフレームの各８×８象限の輝度チャネルについて、Ｈ．２６４補間器３２はバッファから８つの８ビット画素の８行を読み取る。現在のフレームの各８×８象限の彩度チャネル毎に、Ｈ．２６４補間器３２はバッファから４つの８ビット画素の４行を読み取る。
【００３９】
[0047]データは、輝度行フィルタ４０４、４０５、４０６及び４０７、輝度列フィルタ４２１、４２２、４２３及び４２４、彩度行フィルタ４３１、４３２、４３３及び４３４、彩度列フィルタ４４１、４４２、４４３及び４４４を使って処理される。各段の４つのフィルタを用いて、一度に４画素を処理することができる。これらのフィルタはそれぞれ、カーネル［１  −５  ２０  ２０  −５  １］／３２を実施し８ビット出力を生成する６タップＦＩＲフィルタである。輝度フィルタ４０４〜４０７及び４２１〜４２４は、それぞれ６つの１４ビット入力を有する。彩度フィルタ４３１〜４３４と４４１〜４４４の各対は、それぞれ２×５の１４ビット入力を有する。すなわち、４つの彩度フィルタがあり、各彩度フィルタは１つの行フィルタと１つの個別列フィルタとを含む。よって、例えば、ある彩度フィルタは彩度行フィルタ４３１と彩度列フィルタ４４１とを含み、別のかかる対は彩度行フィルタ４３２と彩度列フィルタ４４２とを含み、以下同様である。
【００４０】
[0048]各輝度及び彩度操作は、マクロブロックデータと関連付けられた動きベクトル２０８（図２）によって制御される。動きベクトルがゼロである場合には、データをゼロで乗じるのではなく、フィルタ操作が回避される（データバイパス４６０）。
【００４１】
[0049]ｘ方向（行など）とｙ方向（列など）の操作を分離して、操作を、まず行に対して行い、次いで列に対して行うようにすることができる。輝度フィルタ操作は、キャッシュ４１１の前のｘ成分フィルタ操作と、キャッシュ４１１の後のｙ成分フィルタ操作とに分離される。動きベクトルのｘ成分がゼロである場合には、輝度データは、ゼロで乗じるのではなく、バイパスマルチプレクサ（経路制御論理４１０）を使って輝度行フィルタ４０４〜４０７を回避する（バイパス４１２）。動きベクトルのｘ成分が非ゼロ（１など）である場合には、データは輝度行フィルタ４０４〜４０７によってフィルタリングされる。その結果は経路制御論理４１０によって選択され輝度キャッシュ４１４に入れられる。
【００４２】
[0050]キャッシュ４１１は、輝度列フィルタ４２１〜４２４、彩度行フィルタ４３１〜４３４、及び彩度列フィルタ４４１〜４４４によって共用される６行を有する。最初の２行は５つの１４ビット画素ワードを有し、彩度行フィルタ４３１〜４３４と彩度列フィルタ４４１〜４４４とに接続された彩度キャッシュ４１２を構成する。次の４行は４つの１４ビット画素ワードを有し、輝度列フィルタ４２１〜４２４に接続された輝度キャッシュ４１４を構成する。
【００４３】
[0051]キャッシュ４１１の各行は次の行に接続されている。マクロブロックの始めではデータキャッシュ４１１は空であるが、輝度行フィルタ４０４〜４０７によってデータが取り込まれ処理されると満たされる。輝度行フィルタ操作の結果はキャッシュ４１１の第１行にロードされる。キャッシュ４１１が使用可能となる各クロックサイクルにおいて、データはキャッシュ４１１の次の行に写される。データは、輝度列フィルタ４２１〜４２４、彩度行フィルタ４３１〜４３４、及び彩度列フィルタ４４１〜４４４に送られる。
【００４４】
[0052]輝度列フィルタ４２１〜４２４は、動きベクトルのｙ成分を使ってデータをフィルタにかける。輝度列フィルタ４２１〜４２４の下流側には、図４に「Ｃ」で示す輝度クリッピングブロックがある。
【００４５】
[0053]彩度フィルタ４３１〜４３４及び４４１〜４４４は、動きベクトルのｘ成分を使って彩度フィルタ操作の第１段（行フィルタなど）を選択及び適用し、次いで、動きベクトルのｙ成分を使って彩度フィルタ操作の第２段（列フィルタなど）を選択及び適用する。各彩度フィルタは以下の式を実行する。
画素出力＝（ａ＊Ｅ）＋（ｂ＊Ｆ）＋（ｃ＊Ｇ）＋（ｄ＊Ｈ）
式中、フィルタの第１段では、ａ＝（４−ｘｆｒａｃ）、ｂ＝ｘｆｒａｃ、ｃ＝（４−ｘｆｒａｃ）、及びｄ＝ｘｆｒａｃであり、フィルタの第２段では、ａ＝（４−ｙｆｒａｃ）、ｂ＝（４−ｙｆｒａｃ）、ｃ＝ｙｆｒａｃ、及びｄ＝ｙｆｒａｃである。Ｅ、Ｆ、Ｇ及びＨは４つの入力画素を表し、ｘｆｒａｃとｙｆｒａｃは、それぞれ、動きベクトルのｘ成分とｙ成分の下位２ビットを表す。この関係式の結果は８を加えることによって切り上げられ、その結果は、図４に「Ａ」で示すブロックにおける右シフトされた４ビットである。
【００４６】
[0054]図２と図４を参照すると、出力ユニット（出力選択論理４５０、データパッカ２２０と類似のものである）は、輝度フィルタ及び彩度フィルタからのデータを、そのデータが次の段階（下流データ処理ブロック２２２など）で容易に使用できるようなやり方でまとめる。一実施形態では、参照フレーム（参照フレーム２０４など）の４×４画素データブロックの後に、現在のフレーム（入力フレーム２０２など）の４×４画素データブロックが続く。このように、参照フレームのデータと現在のフレームのデータとが交互に配置される。これは、下流データ処理ブロック２２２によるデータの処理を容易にし得る。というのは、これによりブロック２２２が、再構築フレーム２２４の対応する部分を生成するのに必要とされる２組のデータの少なくとも一部分を有することになるからである。言い換えると、参照フレーム全部の後に続けて現在のフレーム全部を出力するのではなく、それぞれの一部分が出力され、ブロック２２２にその部分を処理させることができる。
【００４７】
[0055]図５に、本発明の一実施形態に係る、Ｈ．２６４補間ブロック３２の操作を制御する状態機械５０を示す。本実施形態において、状態機械５０は、マスタ状態機械５２と、２つの下位状態機械、すなわち現在データ状態機械５４及び参照データ状態機械５６を含む。Ｈ．２６４補間器３２（図４）は、信号３８に従って現在のフレーム２０２又は参照フレーム２０４（図２）に作用し、マスタ状態機械５２によって適切な下位状態機械５４又は５６が利用可能（「ｅｎ」）となって、図４との関連で論じたシステムメモリフェッチ及びメモリバッファ読取りを制御及び実行する。状態機械５４及び５６は、それぞれ、マクロブロック内の８×８画素ブロック、及び各８×８ブロック内の４×４画素ブロックを「検証」する所定の論理を実施する。
【００４８】
[0056]図６に、本発明の一実施形態に係る、循環バッファ６０を使ったフレーム情報の格納を示す。この実施形態では、バッファ６０を使って、参照フレーム６１の一部分と、後で参照フレームとして使用できる再構築フレーム６２の一部分とが保持される。再構築フレーム６２は、バッファ６０に読み込まれる際に、前に取り出されている参照フレーム６１のデータと置き換わる。図６の例では、再構築フレーム６２はバッファ６０に読み込まれる際にバッファの末尾に到達し、その時点からデータがバッファの先頭に読み込まれ始める。その結果、続いて再構築フレーム６２が取り出されるときに、場合によっては（取り出されるべきデータがバッファ６０の末尾と先頭の両方に格納されているとき）、２回のフェッチが必要となり得る。バッファ６０は必要とされるメモリリソース量を低減する。しかしながら、本発明は循環バッファの使用だけに限られるものではない。
【００４９】
[0057]図７に、本発明の一実施形態に係る帯域外信号３６（図３）の信号プロトコルを示す。図７に示す信号には、フレームの始めを示す「ｆｒａｍｅ＿ｓｔａｒｔ」、マクロブロックが有効であることを示す「ｍｂ＿ｖ」、マクロブロックの始めを示す「ｍｂ＿ｓｔａｒｔ」、マクロブロックの終わりを示す「ｍｂ＿ｅｎｄ」、ブロックの始めを示す「ｂｌｋ＿ｓｔａｒｔ」、及びブロックの終わりを示す「ｂｌｋ＿ｅｎｄ」が含まれる。
【００５０】
[0058]図８は、本発明の一実施形態に係る、データを処理する方法の一例の流れ図８０である。流れ図８０には特定のステップが開示されているが、これらのステップは例示のためのものである。すなわち、本発明は、様々な他のステップ又は流れ図８０に示すステップの変形を行うのによく適するものである。当然ながら、流れ図８０の各ステップは提示するのと異なる順序で行われてもよく、流れ図８０の各ステップは必ずしも図示の順序で行われるとは限らない。一般に、流れ図８０の各ステップは図１のＭＰＵ１２によるものである。
【００５１】
[0059]図８のブロック８１で、２タップ有限インパルス応答（ＦＩＲ）フィルタを使って動きベクトルが選択される。動きベクトルは、第１の符号化方式に従い、映像データの入力フレームのブロックと、映像データの参照フレームのブロックとを使って生成される。一実施形態では、第１の符号化方式はＭＰＥＧ−４符号化方式である。
【００５２】
[0060]ブロック８２で、第１の符号化方式とは異なる第２の符号化方式に従い、動きベクトルに６タップＦＩＲフィルタを適用して、１／２画素単位の補間画素が算出される。一実施形態では、第２の符号化方式はＨ．２６４符号化方式である。
【００５３】
[0061]一実施形態では、映像データの輝度チャネルのｘ成分が複数の輝度行６タップＦＩＲフィルタを使って処理される。複数の輝度行フィルタからの結果はキャッシュの第１行にロードされる。既に第１行にある結果はキャッシュの第２行にシフトされる。
【００５４】
[0062]更に、一実施形態では、映像データの彩度チャネルのｘ成分が複数の彩度行６タップＦＩＲフィルタを使って処理され、彩度チャネルのｙ成分が複数の彩度列６タップＦＩＲフィルタを使って処理され、輝度チャネルのｙ成分が複数の輝度列６タップＦＩＲフィルタを使って処理される。
【００５５】
[0063]ブロック８３で、データパッカが入力フレームの映像データのブロックと参照フレームの映像データのブロックとを交互に配置する。
一般に、本稿はデータを処理する方法及びシステムを開示するものである。動き推定器は、第１の符号化方式に従い、映像データの入力フレームのブロックと映像データの参照フレームのブロックとを使って動きベクトルを生成する。動き補償器は、第１の符号化方式とは異なる第２の符号化方式に従い、動きベクトルから１／２画素単位の動きベクトルを生成する。
【００５６】
[0064]以上、本発明の実施形態を説明した。本発明を特定の実施形態において説明したが、当然ながら、本発明はかかる実施形態によって限定されると解釈すべきではない。
【図面の簡単な説明】
【００５７】
【図１】本発明に係るデータを符号化するシステムの一実施形態を示すブロック図である。
【図２】本発明の一実施形態に係る、データを符号化する処理の諸要素を通るデータの流れを示すブロック図である。
【図３】本発明の一実施形態に係るデータを符号化するシステムを示すブロック図である。
【図４】本発明の一実施形態に係る、図３のシステムのさらなる詳細を示すブロック図である。
【図５】本発明の一実施形態に係る状態図である。
【図６】本発明の一実施形態に係る、フレーム情報を格納する循環バッファを示す図である。
【図７】本発明の一実施形態に係る信号プロトコルを示す図である。
【図８】本発明の一実施形態に係る、コンピュータによるデータ処理方法を示す流れ図である。
【図１】
2009526485.tif 000003
【図２】
2009526485.tif 000004
【図３】
2009526485.tif 000005
【図４】
2009526485.tif 000006
【図５】
2009526485.tif 000007
【図６】
2009526485.tif 000008
【図７】
2009526485.tif 000009
【図８】
2009526485.tif 000010
【国際調査報告】
2009526485.tif 000011
2009526485.tif 000012