(57)【要約】【課題】コストの増大や信号品質の低下を招かずに、画像エンコード処理を更に高速化または簡略化する。【解決手段】画像エンコード・システムは、プロセッサと、このプロセッサに結合されたメモリ・デバイスとを含む。プロセッサは、画像情報を収容する入力データを受信し、入力データの周波数ドメイン変換に基づいてエンコード・データ（４１０）を生成し、入力データの周波数ドメイン変換に基づいてエンコード基準を選択的に生成する。また、システムは、プロセッサに結合されたメモリ・デバイスも含む。プロセッサは、更に、メモリ・デバイスにおいてエンコード基準が入手可能でない場合、生成したエンコード基準をメモリ・デバイス（９１０）に格納し、エンコード基準がメモリ・デバイスにおいて入手可能である場合、エンコード・データと格納したエンコード基準との間の差を表す残差データ（４３０）を生成する。【選択図】図３
2007529921.tif 000002
【特許請求の範囲】
【請求項１】
ＭＰＥＧ−２エンコード方法であって、
画像情報を収容する入力データを受信するステップと、
前記入力データの周波数ドメイン変換に基づいてエンコード・データを生成するステップと、
エンコード基準が使用のために入手可能か否か判定を行うステップと、
前記エンコード基準が入手可能である場合、前記エンコード・データと前記エンコード基準との間の差を表す残差データを生成するステップと、
エンコード基準が入手可能でない場合、前記エンコード・データをエンコード基準として格納するステップと、
を備えた方法。
【請求項２】
請求項１記載の方法であって、更に、
出力データに組み込むために、前記エンコード・データおよび前記残差データの一方を選択するステップと、
前記エンコード・データを選択した場合、前記エンコード・データを前記エンコード基準として格納するステップと、
を備えた、方法。
【請求項３】
請求項２記載の方法において、前記エンコード・データおよび前記残差データの一方を選択するステップは、前記エンコード・データと前記残差データの内小さい方を選択することを含む、方法。
【請求項４】
請求項２記載の方法であって、更に、前記選択したデータからパック・コードを生成し、該パック・コードを出力データとして供給するステップを備えた、方法。
【請求項５】
請求項４記載の方法であって、前記パック・コードを、前記出力データとして、ＭＰＥＧフォーマットで供給するステップを備えた、方法。
【請求項６】
請求項１記載の方法において、前記周波数ドメイン変換は、離散コサイン変換を含む、方法。
【請求項７】
プロセッサであって、
画像情報を収容する入力データを受信し、
前記入力データの周波数ドメイン変換に基づいてエンコード・データを生成し、
前記入力データの周波数ドメイン変換に基づいてエンコード基準を選択的に生成するように構成されたプロセッサと、
前記プロセッサに結合されたメモリ・デバイスと、
を備えており、前記プロセッサが、更に、
前記メモリ・デバイスにおいてエンコード基準が入手可能でない場合、前記生成したエンコード基準を前記メモリ・デバイスに格納し、
前記エンコード基準が前記メモリ・デバイスにおいて入手可能である場合、前記エンコード・データと前記格納したエンコード基準との間の差を表す残差データを生成するように構成された、システム。
【請求項８】
請求項７記載のシステムにおいて、前記プロセッサは、
出力データに組み込むために、前記エンコード・データおよび前記残差データの内一方を選択し、
前記エンコード・データを選択した場合、該エンコード・データを前記メモリ・デバイスに前記エンコード基準として格納する、
ように構成された、システム。
【請求項９】
請求項８記載のシステムにおいて、前記プロセッサは、前記エンコード・データおよび前記残差データの内小さい方を、前記出力データとして選択するように構成された、システム。
【請求項１０】
請求項８記載のシステムにおいて、前記プロセッサは、前記選択したデータからパック・コードを生成するように構成された、システム。
【請求項１１】
請求項１０記載のシステムにおいて、前記プロセッサは、前記パック・コードをＭＰＥＧフォーマットで生成するように構成された、システム。
【請求項１２】
請求項７記載のシステムにおいて、前記周波数ドメイン変換は、離散コサイン変換を含む、システム。
【請求項１３】
請求項７記載のシステムにおいて、前記プロセッサは、
前記入力データをＩ、Ｐ、またはＢフレームの形態で受信し、
前記受信した入力データがＩまたはＰフレームの形態である場合にのみ、前記入力データの周波数ドメイン変換に基づいてエンコード基準を生成するように構成された、システム。
【請求項１４】
請求項１３記載のシステムにおいて、前記プロセッサは、前記エンコード・データから量子化データを生成するように構成された、システム。
【請求項１５】
請求項１４記載のシステムにおいて、前記プロセッサは、ＭＰＥＧ−２フォーマットに準拠した前記量子化データを生成するように構成された、システム。
【請求項１６】
コンピュータが画像情報をエンコードするための命令を収容するコンピュータ読み取り可能媒体であって、該コンピュータ読み取り可能媒体は、前記コンピュータに、
画像情報を収容する入力データを受信し、
前記入力データの周波数ドメイン変換に基づいてエンコード・データを生成し、
エンコード基準が使用のために入手可能か否か判定を行い、
前記エンコード基準が入手可能である場合、前記エンコード・データと前記エンコード基準との間の差を表す残差データを生成し、
エンコード基準が入手可能でない場合、前記エンコード・データをエンコード基準として格納する、
ように命令するコンピュータ読み取り可能媒体。
【請求項１７】
請求項１６記載のコンピュータ読み取り可能媒体であって、更に、前記コンピュータに、
出力データに組み込むために、前記エンコード・データおよび前記残差データの一方を選択し、
前記エンコード・データを選択した場合、前記エンコード・データを前記エンコード基準として格納する、
ように命令するコンピュータ読み取り可能媒体。
【請求項１８】
請求項１７記載のコンピュータ読み取り可能媒体において、前記エンコード・データおよび前記残差データの一方を選択することは、前記エンコード・データと前記残差データの内小さい方を選択することを含む、コンピュータ読み取り可能媒体。
【請求項１９】
請求項１７記載コンピュータ読み取り可能媒体であって、前記コンピュータ読み取り可能媒体は、更に、前記コンピュータに、前記選択したデータからパック・コードを生成し、該パック・コードを出力データとして供給するように命令する、コンピュータ読み取り可能媒体。
【請求項２０】
請求項１９記載のコンピュータ読み取り可能媒体であって、前記コンピュータ読み取り可能媒体は、更に、前記コンピュータに、前記パック・コードを、ＭＰＥＧフォーマットで供給するように命令する、コンピュータ読み取り可能媒体。
【請求項２１】
請求項１６記載のコンピュータ読み取り可能媒体において、前記周波数ドメイン変換は、離散コサイン変換を含む、コンピュータ読み取り可能媒体。
【請求項２２】
請求項１６記載のコンピュータ読み取り可能媒体において、前記コンピュータは、プロセッサと、該プロセッサと結合されたメモリ・デバイスとを備えた、コンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像のエンコード処理に関し、更に特定すれば、ビデオ・エンコード処理に適用可能な画像エンコード・システムおよび方法に関する。
【背景技術】
【０００２】
エンコード処理とは、一方のフォーマットから他方のフォーマットへというように、データを変換するプロセスである。例えば、別のシステムまたはフォーマットと互換性のあるデータを生成するため、データをパック即ち圧縮するため、データを別のデータと比較するため、および／またはセキュリティ向上のために、データをエンコードすることができる。例えば、従前よりアナログ・フォーマットで表されている画像情報は、今ではディジタル・フォーマットで格納、処理、または送信することが多い。画像情報は、電子静止写真、文書、またはビデオ・データのような画像群といった１つまたは多数の画像の画像情報を含む場合がある。
【０００３】
「ディジタル・ビデオ」という用語は、一般に、ディジタル・フォーマットで表されたビデオ信号のことを言う。ディジタル・ビデオは、従前のアナログ・ビデオ、即ち、アナログ・フォーマットで現れたビデオ信号に対して様々な利点を提供する。例えば、ディジタル・ビデオの記録は、画質の著しい損失を伴うことなく、際限なくコピーし、更に再コピーすることができる。また、ディジタル・ビデオは圧縮することができ、このため、同一のまたは画質が劣るアナログ記録よりも、必要な記憶空間が少なくて済む。
【０００４】
データをディジタル処理するには、まずアナログ・ビデオ・データをディジタル・フォーマットのデータに変換しなければならない。生憎、高いフレーム・レート、多くの色、および高い解像度を有するアナログ・ビデオを直接変換すると、大量のディジタル・ビデオ・データができてしまい、記憶および送信に困難が生ずる。したがって、多くのディジタル・ビデオ・システムは、個々の用途に最適化したデータ圧縮技法によって、変換したディジタル・ビデオのサイズを縮小する。エンコーダは、ディジタル・データをエンコードした、即ち、圧縮した形態に変換するために用いることができる。対照的に、デコーダは、逆に、圧縮したディジタル・データを変換することによって、エンコード・ディジタル・ビデオを伸張するために用いることができる。エンコーダおよびデコーダは、その設計によっては、前述の用途に限定されず、データ圧縮および伸張以外のデータ処理機能も実行することができる。
【０００５】
ディジタル・ビデオをエンコードしてその量を減少するための公知のフォーマットに、「ＭＰＥＧ」(Moving Pictures Experts Group)フォーマットがある。ＭＰＥＧフォーマットは、ＭＰＥＧ−１、ＭＰＥＧ−２、およびＭＰＥＧ−４フォーマットを含み、業界標準に基づいて、ディジタル・オーディオおよびディジタル・ビデオを圧縮して、地上ディジタルＴＶ放送、衛星ＴＶ放送、およびテレビ会議の用途に用いている。用途に応じて、異なるＰＭＥＧフォーマットまたはそれらの変形は異なるデータ・レートを有し、異なるデータ処理技法を用いる場合もある。
【０００６】
しかしながら、ビデオ信号を処理してＭＰＥＧフォーマット信号を作成する際、一般に、複雑な手順を伴い、大量の処理能力およびメモリ空間を必要とする。このため、ＭＰＥＧフォーマットで圧縮ディジタル・ビデオを供給するためのリアルタイム・エンコード処理には、強力で高価なエンコード装置が必要となる。したがって、カムコーダ、ディジタル・カメラ、ワイヤレス電話機、またはその他の携帯デバイスは、それらの処理能力およびメモリが制限されているために、リアルタイム・エンコード機能を備えることができない。
【０００７】
画像エンコード・プロセスを高速化するために、種々の計算アルゴリズムが提案されている。しかしながら、相変わらず、画像エンコード処理の技術分野には、エンコード・デバイスのコストを著しく高めることやエンコードした信号の品質に影響を及ぼすことなく、画像エンコード処理を更に高速化すること、または簡略化することが求められている。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、本発明と密接に結び付いた実施形態は、関連技術において存在していた制約または欠点の１つ以上を未然に防ぐことができるエンコード・システムおよび方法に関するものとすることができる。
【課題を解決するための手段】
【０００９】
本発明と密接に結び付いた実施形態は、ＭＰＥＧ−２画像エンコード方法を提供する。この方法は、画像情報を収容する入力データを受信するステップと、入力データの周波数ドメイン変換に基づいてエンコード・データを生成するステップと、エンコード基準が使用のために入手可能か否か判定を行うステップと、エンコード基準が入手可能である場合、エンコード・データとエンコード基準との間の差を表す残差データを生成するステップと、エンコード基準が入手可能でない場合、エンコード・データをエンコード基準として格納するステップとを備えている。
【００１０】
また、本発明と密接に結び付いた実施形態は、画像エンコード・システムを提供する。このシステムは、画像情報を収容する入力データを受信し、入力データの周波数ドメイン変換に基づいてエンコード・データを生成し、入力データの周波数ドメイン変換に基づいてエンコード基準を選択的に生成するように構成されているプロセッサを含む。また、このシステムは、プロセッサに結合されているメモリ・デバイスも含む。更に、プロセッサは、メモリ・デバイスにおいてエンコード基準が入手可能でない場合、生成したエンコード基準をメモリ・デバイスに格納し、エンコード基準がメモリ・デバイスにおいて入手可能である場合、エンコード・データと格納したエンコード基準との間の差を表す残差データを生成するように構成されている。
【００１１】
更に、本発明と密接に結び付いた実施形態は、コンピュータ読み取り可能媒体を提供する。このコンピュータ読み取り可能媒体は、コンピュータが画像情報をエンコードするための命令を収容する。即ち、コンピュータ読み取り可能媒体は、コンピュータに、画像情報を収容する入力データを受信し、入力データの周波数ドメイン変換に基づいてエンコード・データを生成し、エンコード基準が使用のために入手可能か否か判定を行い、エンコード基準が入手可能である場合、エンコード・データとエンコード基準との間の差を表す残差データを生成し、エンコード基準が入手可能でない場合、エンコード・データをエンコード基準として格納するように命令する。
【００１２】
添付図面は、本願に組み込まれその一部をなしており、本発明と密接に結び付いた様々な実施形態を、その説明と共に示し、本発明の原理を説明するために用いられる。
【発明を実施するための最良の形態】
【００１３】
これより、本発明の実施形態について詳細に参照する。その例を添付図面を参照しながら例示する。可能な場合はいつでも、同じ参照番号は、図面全体を通じて、同一または同様の部分を示すために用いられるものとする。
【００１４】
本発明と密接に結び付いた方法またはシステムは、ディジタル・ビデオ・データを含む画像データをエンコードすることができる。周波数ドメイン変換を用いると、画像情報を収容した入力信号からエンコード・データを作成することができる。エンコード・データは、エンコード基準とするか、または既存のエンコード基準と比較することができる。本発明と密接に結び付いた方法またはシステムは、画像エンコード・プロセスの複雑度を軽減し、画像のエンコード処理を迅速に処理し、あるいはリアルタイムの画像エンコード処理を可能にすることができる。更に、本発明と密接に結び付いた方法またはシステムは、エンコード・データの画質に著しい影響を及ぼすことなく、その特性の１つ以上を達成することができる。
【００１５】
本発明の範囲を限定することなく、ＭＰＥＧ−２フォーマットのエンコード・プロセスの一例について以下に説明する。ビデオ・フレームの形態とした画像は、多数の映像要素即ち「画素」からなる。フレーム全体を形成する画素のグループは、各々１６×１６画素の正方形からなる「マクロブロック」に分割することができる。一方、マクロブロックは、各々８×８画素の正方形からなる「ブロック」に分割することができる。
【００１６】
各画素は、個々の画素の明るさおよび色を指定する信号値によって表すことができる。ＭＰＥＧ−２フォーマットでは、これらの信号値は、明るさ、または輝度成分Ｙ、および２つの色、即ち、クロミナンス成分ＵおよびＶを含む。Ｙ、Ｕ、およびＶ成分は、周知のＲ、Ｇ、およびＢ成分と概念が同様であるが、圧縮し易い。
【００１７】
最大の解像度では、フレーム全体を表す信号値は、フレームにおける画素毎に、１組の別個のＹ、Ｕ、およびＶ成分値からなる。しかしながら、人の目は明るさよりも色に対する感度が低いので、ＭＰＥＧ−２規格でフレームを表すために用いる１組の信号では、Ｙ成分値の数を当該フレームにおける画素数と等しく、ＵおよびＶ成分値の数をフレームにおける画素数よりも少なくすることができる。具体的には、ＭＰＥＧ−２は、色の解像度が輝度解像度の５０％である４：２：２フォーマット、および色の解像度が輝度解像度の２５％である４：２：０フォーマットを備えている。
【００１８】
一実施形態では、画素のマクロブロックは、クロミナンス解像度に応じて、マクロブロックのＹ成分を表す４組の８×８個の値からなる数値グループ、あるいはマクロブロックのＵおよびＶ成分の各々を表す１組の８×８個の値によって表すことができる。このように、フレームにおける画素の各マクロブロックは、合計で１２、８、または６組の８×８の成分値で表すことができる。
【００１９】
画像エンコード処理の間、一連の画像を有するビデオ・シーケンスは、各々複数のフレームを有する、多数の区間に分割することができる。この区間は、映像グループ（「ＧＯＰ」）としても知られている。ＧＯＰは、３つの異なる種類のフレームＩ、ＰまたはＢとしてエンコードされる。Ｉ−フレームは、当該フレーム自体に収容されているデータのみを用いて独立してコード化される。Ｐ−およびＢ−フレームは、当該フレームにおけるデータと１つ以上の他のフレームのデータとの間の差をコード化することによって生成する。即ち、Ｐ−フレームは直前のフレームを参照し、シーケンスにおいて時間的に前にあるＩ−またはＰ−フレームからの予測値を収容する。Ｂ−フレーム（「双方向的予測コード化フレーム」）は、現フレームの直前のフレームおよび直後のフレームを参照することができる。言い換えると、Ｂ−フレームは、最も近い直前および直後のＩ−またはＰ−フレームから予測値を得ることができる。
【００２０】
フレーム種別は、ビデオ・シーケンスにおけるフレームの相対位置によって予め規定することができる。典型的なＧＯＰは、ｐ×ｑフレームからなることができ、ｐおよびｑは定数であり、（ｐ，ｑ）−ＧＯＰというように記述する。例えば、ＧＯＰはＩ−フレーム、それに続いてｑ−１個のＢ−フレーム、更にこれらに続いて、各々Ｐ−フレームに率いられるｑ−１個のＢ−フレームのｐ−１回の繰り返しで構成することができる。したがって、１５フレームの（３，５）−ＧＯＰは、以下のフレーム・シーケンスを有することができる。
［表１］
Ｉ，Ｂ，Ｂ，Ｐ，Ｂ，Ｂ，Ｐ，Ｂ，Ｂ，Ｐ，Ｂ，Ｂ，Ｐ，Ｂ，およびＢ
要約すると、ビデオ・シーケンスは、各々フレーム・グループを有する多数のＧＯＰに分割することができる。各フレームは、マクロブロックの組み合わせからなり、マクロブロックは、ブロックの組み合わせからなる。各マクロブロックまたはブロックは、ブロック内コードまたはブロック間コードのいずれかからなる値によって表すことができる。ブロック内コードとは、他のマクロブロックまたはブロックを参照しないコードである。対照的に、ブロック間コードは、１つのマクロブロックまたはブロックが、別のマクロブロックまたはブロック、特に隣接するフレームにおける近隣マクロブロックまたはブロックとはどのように異なるかを表すことができ、したがって他のマクロブロックまたはブロックのコードを参照することができる。
【００２１】
例えば、１組の８×８成分値は、８×８ブロックの画像データから導出することができる。次いで、これらの値を離散コサイン変換（「ＤＣＴ」）係数に変換し、量子化し、次いでハフマン・コード化して、ブロック内コードを形成する。対照的に、１組の８×８ブロック間コードは、現フレームの前にある最後のＩ−またはＰ−フレーム（逆方向）から、または現フレームの後にある最も近いＩ−またはＰ−フレーム（順方向）から、あるいは双方（双方向）から予測することができる。次いで、ブロック間コードをＤＣＴ係数に変換し、（任意に）ハフマン・コード化する。その結果、Ｉ−フレームのマクロブロックをブロック内コードにコード化することができる。Ｐ−フレームのマクロブロックは、順方向または逆方向ブロック間コードにコード化することができる。そして、Ｂ−フレームのマクロブロックは、双方向ブロック間コードにコード化することができる。
【００２２】
画像データをエンコードするには、画像エンコード・システムを用いればよい。図１は、本発明と密接に結び付いた画像エンコード・システム１００の一実施形態を示す機能ブロック図を表す。図１に示すように、システム１００は、プロセッサ１１０と、プロセッサ１１０と動作的に結合されているメモリ１２０とを備えている。システム１００は、コンピュータ、携帯計算機、ワイヤレス電話機、カムコーダ、またはディジタル・カメラというような、いずれかの画像エンコードまたは処理システムの一部であってもよい。例えば、システム１００は、埋め込みチップと、命令が内部にコード化されているメモリ、あるいは画像をエンコードするソフトウェアによって命令される処理システムを内蔵することができる。
【００２３】
システム１００の内部では、プロセッサ１１０は、本発明と密接に結び付いた様式で命令を実行し画像をエンコードするように構成されている処理デバイスとすることができる。メモリ１２０は、データ、およびソフトウェア・コード、制御コード、または双方を格納する１つ以上のメモリ・デバイスとすることができる。したがって、プロセッサ１１０は、データにアクセスし、メモリ１２０に格納されている制御コードを実行することができる。図１は、１つのメモリのみを示すが、メモリ１２０は、あらゆる数そしてあらゆる組み合わせのメモリでも備えることができる。例えば、メモリ１２０は、１つ以上のＲＡＭ（ランダム・アクセス・メモリ）、ＲＯＭ（リード・オンリ・メモリ）、磁気ストレージ、光ストレージ、および有機ストレージを備えることができる。
【００２４】
以下に、ＭＰＥＧ−２フォーマットを用いることができ、図１のシステム１００のような処理システムによって実施することができるエンコード方法の一例について説明する。図２は、エンコード方法を表すフロー・チャートを示す。図２に示すように、エンコード・プロセス２００は、２つのループ、第１ループ２００Ａおよび第２ループ２００Ｂを備えることができる。更に、エンコード・プロセス２００またはそのいずれの部分であっても、多数のマクロブロックまたは多数のフレームを処理するために繰り返すことができる。即ち、第１ループ２００Ａは、ビデオ・フレーム８００のような画像データを入力として受信することから開始することができる。ビデオ・フレーム８００の入力は、ディジタルＹＵＶフォーマットとするとよい。
【００２５】
ビデオ・フレーム８００を受信した後、ステップ２１０においてモーション推定を行う。モーション推定では、フレーム内におけるある画像エリアが２つのフレーム間で移動したか否か判定を行う。例えば、ブロック照合技法を用いると、フレームのあるエリアが同一であるが、基準フレームの対応するエリアから変位しているか否か判定を行うことができる。変位の探索の後、ステップ２１０において、エリアの変位を推定し、そのエリアの移動の方向および量を記述する近似モーション・ベクトルを計算する。一用途では、変位探索のエリアをマクロブロックとすることができる。加えて、ステップ２１０において、モーション変位のコード化のビット・コストおよび精度を計算することもできる。
【００２６】
ステップ２２０において、フレームをコード化するために、ブロック内コードまたはブロック間コードのどちらを用いるか決定する。先に記したように、ブロック内コードは、他のマクロブロックまたはブロックを参照しないコードであり、ブロック間コードは、他のマクロブロックまたはブロックのコードを参照するコードである。例えば、一実施形態では、ブロック間コードを用いてフレームを表すとブロック内コードを用いるよりも少ないデータ・ビットで済むことを、モーション推定の結果が示す場合、ブロック間コードを用いることにする。それ以外の場合、ブロック内コードを用いることにする。ブロック内コードを用いることにする場合、ステップ２２０の後にステップ２３０を実行する。
【００２７】
ステップ２３０において、元マクロブロック内における８×８個の値集合全てに対するＤＣＴ（離散コサイン変換）係数を計算する。一用途では、ＤＣＴは、データ集合を空間周波数の加重和に分解する方法であり、空間周波数の各々は対応する係数を有する。空間周波数は、ブロックにおけるデータがどのくらい速く映像要素間で変化するかを示す。一実施形態では、デコード・プロセスにおいて、各空間周波数パターンにその係数を乗算し、得られたアレイを加算して、元の８×８ブロックの画像を再現する。
【００２８】
更にステップ２３０において、計算したＤＣＴ係数の量子化も行うことができる。一用途では、量子化は、ある空間周波数を表す正確さを低下させることにより、ブロック・データを表すために必要なデータ・ビットを削減するプロセスである。例えば、高い空間周波数、特に人の目では知覚することができない空間周波数に対する係数は、正確さを落として表すことが望ましい場合がある。一用途では、ＤＣＴ係数を量子化する際に、それを非ゼロの正の整数で除算し、商を最も近い整数に四捨五入する。非ゼロの正の整数は、量子化値としても知られている。量子化値が大きい程、量子化されたＤＣＴ係数の正確さは低下し、少ないビット数で送信することが可能となる。
【００２９】
ステップ２３０に続いて、ステップ２８０において「アンパック」コードを構成するＤＣＴ係数を格納し、後に、デコードしてフレームを基準フレームとして用いる。一実施形態では、アンパック・コードを、ＤＲＡＭのようなメモリ・デバイスに格納する。コード化の効率を高めるために、ステップ２９０においてハフマン・コード化によってＤＣＴ係数を「パック」することもできる。一用途では、ハフマン・コード化技法を用いて可変長コードの表を生成し、高いコード化効率を達成する。例えば、頻繁に起こるイベントを表すために短いコードを用いる場合、コードの全長を短縮すればコード化効率を高めることができる。ハフマン・コード化によってパックしたコードを出力し、記憶媒体に格納することができる。一用途では、これらパックしたコードは、コード化プロセス２００の結果を表し、後にデコーダによって処理して、元のフレーム８００が表す画像を再現することができる。
【００３０】
ステップ２２０において、ブロック間コードを用いることにすると決定した場合、ステップ２２０の後にステップ２４０〜２７０を実行する。ステップ２４０において、近似マクロブロック・モーション・ベクトルを精細化し仕上げることができる。一用途では、ステップ２４０をモーション推定ステップ２１０の精細化プロセスとすることができ、あるエリアの変位を推定する。例えば、ステップ２１０と比較して、ステップ２４０は、より多くまたは全ての可能なモーション変位を探索する、または一層精度が高い探索アルゴリズムを用いるというような、総合力を高めた探索を伴うこともできる。したがって、モーション・ベクトルを精細化して仕上げるステップ２４０は、マクロブロックのモーションの方向および量を一層精度高く記述するモーション・ベクトルを生成することができる。即ち、Ｐ−フレーム・マクロブロックに順方向または逆方向モーション・ベクトルを用いることができ、順方向および逆方向モーション・ベクトルを含む２種類のモーション・ベクトルの組み合わせをＢ−フレーム・マクロブロックに用いることができる。一用途では、ステップ２４０をモーション推定ステップ２１０と組み合わせてもよく、任意のステップとしてもよい。
【００３１】
ステップ２４０に続いて、ステップ２５０において予測マクロブロックを計算することができる。一用途では、予測マクロブロックは、基準マクロブロックからの予測に基づいて生成したマクロブロックであり、したがって、現在エンコードしている最中のマクロブロックを表す。例えば、基準マクロブロックからの予測は、ステップ２１０におけるモーション推定の結果、またはステップ２４０におけるベクトル仕上げの結果とすることができる。次いで、予測マクロブロックを現マクロブロックから減算することによって、現在処理中の元のマクロブロックと予測マクロブロックとの間の差を示す残差マクロブロック(residue macroblock)を生成することができる。
【００３２】
残差マクロブロックを生成した後、ブロック２６０において、残差マクロブロックの８×８の集合全てについてのＤＣＴ係数を計算し量子化する。一用途では、ステップ２３０に関して先に説明したＤＣＴ係数計算および量子化プロセス、またはその変形は、量子化ＤＣＴ係数を生成するために用いることもできる。
【００３３】
ステップ２６０に続いて、ステップ２７０において、マクロブロック・レベルでは現フレームがＩ−フレームかまたはＰ−フレームか判定を行う。現フレームがＩ−またはＰ−フレームである場合、ステップ２８０においてＤＣＴ係数を格納し、後にデコードして基準フレームを形成する。先に記したように、一実施形態では、アンパック・コードを、ＤＲＡＭのようなメモリ・デバイスに格納する。また、先に記したように、ＤＣＴ係数は、ステップ２９０においてハフマン・コード化によってパックして、コード化効率を高めることができる。ハフマン・コード化によってパックしたコードは、記憶媒体に格納するために出力することができ、エンコード・プロセス２００の結果を表すことができる。
【００３４】
前述のエンコード・プロセスにおいて、コード種別判定ステップ２２０は、代わりに、ＤＣＴ係数を得た後に実行してもよい。したがって、ブロック内コードまたはブロック間コードのどちらを用いるかについての判定は、代わりに、ステップ２３０、２８０、または２９０の後に行うことができる。
【００３５】
先に記したように、第１ループ２００Ａはステップ２９０にて終了する。第１ループ２００Ａを繰り返せば、フレームの多数のマクロブロック、または１つ以上の画像の多数の画像データ集合を処理することができる。
【００３６】
第２ループ２００Ｂは、ステップ３００および３１０を含み、ステップ２７０において決定した現フレームがＩ−またはＰ−フレームである場合、ステップ２１０の前に実行することができる。第２ループによって１つ以上の基準を更新することができるので、現在のＩ−またはＰ−フレームは、他のフレームの基準として機能することができる。一用途では、２つの基準、逆方向基準フレームおよび順方向基準フレームを、ＹＵＶディジタル・フォーマットにおける基準フレームとして格納する。これら２つの基準フレームは、双方共、第２ループ２００Ｂによって経時的に更新することができる。例えば、これら２つの基準フレームを更新するためには、ステップ３００において、以前の順方向基準フレームを形成するコードの集合をコピーして、更新逆方向基準フレームとなるようにする。ステップ２８０から得られた現フレームのコード（ＤＣＴ係数）の集合を、ステップ３１０においてデコードし、更新順方向基準フレームとする。
【００３７】
第２ループ２００Ｂによって順方向および逆方向基準フレームを更新した後、エンコード・プロセス２００の第１ループ２００Ａを繰り返して、別のマクロブロックを処理することができる。順方向基準８１０、逆方向基準８２０、または双方を、モーション推定ステップ２１０において用いることができる。一実施形態では、図２に示すエンコード・プロセスは、ＹＵＶフォーマットとした入力フレーム８００、順方向基準８１０、および逆方向基準８２０、ステップ２８０で格納したアンパック・コード、ならびにステップ２９０において生成したパック・コードを含む５組のデータ集合を保持するために、５つ以上のメモリ・バッファを必要とする場合もある。
【００３８】
図３は、本発明と密接に結び付いたエンコード方法を表すフロー・チャートを示す。実施形態によっては、エンコード方法は、エンコードの複雑度を低下させ、エンコード効率を高め、および／またはリアルタイム・エンコードを達成することもできる。更に、本発明と密接に結び付いたエンコード方法は、従来のエンコード方法よりも必要な処理やメモリ・リソースが少なくて済む。即ち、本発明と密接に結び付いたエンコード方法は、入力データの周波数ドメイン変換を実行し、その後に更に別の画像コード化または処理を行うことができる。更に、本発明と密接に結び付いた実施形態では、ＭＰＥＧフォーマットまたは、特に、ＭＰＥＧフォーマットのような、種々のディジタル・ビデオ・フォーマットのディジタル・ビデオをエンコードすることができる。
【００３９】
図３に示すように、エンコード・プロセス４００は、ビデオ・フレームのような画像情報を収容した入力データ９００を受信することから開始することができる。エンコード・プロセス４００を動作させる規格によっては、入力データ９００はディジタルＹＵＶフォーマットとすることができる。一実施形態では、入力データ９００は、１６×１６マクロブロックの中にある１つ以上の８×８ブロックのような、マクロブロックまたはマクロブロックの一部の画像データを収容することができる。
【００４０】
入力データ９００を受信した後、ステップ４１０において、入力データ９００の周波数ドメイン変換に基づいて、エンコード・データを生成する。周波数ドメイン変換は、入力データ９００内部において重要度が低いデータを除去するための変換とすることができる。一実施形態では、この変換は、人の目によって知覚できない周波数または重要度が低い周波数を除去するか、または特定の用途にとって関連が低い画像情報を除去することができる。例えば、この変換は、無視できる振幅の周波数を除去すること、周波数係数を標準値に四捨五入すること、またはその双方を行うことができる。加えて、ステップ４１０において１つ以上の変換を用いることもできる。
【００４１】
一実施形態では、ＤＣＴ（離散コサイン変換）またはその同等物のような、線形変換または線形変換を近似する変換を、周波数ドメイン変換として用いることができる。例えば、ステップ４１０は、現マクロブロック内にある１つ以上の８×８ブロックについてＤＣＴ係数を計算し、ＤＣＴ係数を量子化することを含めるとよい。
【００４２】
先に図２のステップ２１０を説明する際に記したように、ＤＣＴは、データのブロックを空間周波数の加重和に分解する方法である。ＤＣＴ係数を更に量子化することによって、データのブロックを表すために必要なデータ・ビットを削減することができる。したがって、入力データ９００の量子化したＤＣＴ係数を、ステップ４１０においてエンコード・データとして生成すればよい。
【００４３】
エンコード・データを生成した後、ステップ４２０において、処理しているフレームがＩ−フレーム（または画像グループの内最初の画像）、あるいは以前に生成したエンコード処理用の基準フレームを用いるＰ−またはＢ−フレームのどちらかを判定する。例えば、Ｉ−フレーム即ち画像グループの内最初の画像を処理しているとき、エンコード基準を入手して用いることはできない。エンコード基準が入手できない場合、ステップ４１０において生成したエンコード・データを、今後の基準のために、ステップ４６０において更新したエンコード基準として格納する。言い換えると、このエンコード・データは、最初のデータまたは他のマクロブロックを参照しないブロック内コードであり、次のマクロブロックを処理する際に基準として機能することができる。一実施形態では、エンコード・データは、ステップ４１０において生成した量子化ＤＣＴ係数からなり、エンコード・データはＤＲＡＭのようなメモリ・デバイスに格納することができる。
【００４４】
ステップ４６０に続いて、ステップ４７０において、エンコード・データをパックして、コード化効率を高めることができる。例えば、ステップ４１０からの量子化ＤＣＴＴ係数をステップ４７０においてハフマン・コード化によってパックすることができる。一実施形態では、１６×１６マクロブロックの内８×８個の値の各集合は、量子化ＤＣＴ係数のハフマン・コード化によってコード化することができる。先に記したように、ハフマン・コード化技法は、可変長コードの表を生成し、高いコード化効率を達成するために用いられる。例えば、短いコードを用いて、頻繁に生ずるイベントを表す場合、総コード長を短縮し、コード化効率を高めることができる。ハフマン・コード化によってパックしたコードは、記憶媒体に格納するために出力することができる。一実施形態では、パックしたコードは、ＭＰＥＧ−２フォーマットのような、ＭＰＥＧフォーマットとすることができる。更に、これらのパックしたデータは、コード化プロセス４００の結果を表し、コード化プロセス４００の出力データとして供給することができる。したがって、出力データは、後に、デコーダによって処理して、コード化したフレームまたは画像を再現することができる。
【００４５】
ステップ４２０において、処理しているフレームがＩ−フレームでない、即ち画像グループの内の最初の画像ではないと識別した場合、既存の（格納されている）エンコード基準を継続してコード化プロセスにおいて用いればよい。先に記したように、エンコード基準は、基準画像の周波数ドメイン変換とすることができる。ディジタル・ビデオをエンコードする実施形態では、エンコード基準は、現フレームの前または直前のフレームの一部とすることもできる。実施形態によっては、エンコード基準は経時的に変化する場合や、数フレームの処理の間というように、ある時間期間同一のままである場合もあり得る。
【００４６】
現在処理しているフレームがＢ−フレームまたはＰ−フレームである場合、ステップ４３０において残差データを生成する。残差データは、現在処理しているフレームのエンコード・データとエンコード基準との間の差を表す。例えば、残差データは、以前の（基準）フレームに基づいて、現フレームの予測を用いて生成することができる。残差データは、処理しているフレームのエンコード・データまたは予測から、エンコード基準を減算することによって生成することができる。即ち、残差データを生成するには、入力データ９００の量子化ＤＣＴ係数と基準画像の量子化ＤＣＴ係数との間の差を計算すればよい。更に、残差データは、マクロブロックのモーションの方向および量を記述するというような、あるエリアの変位を記述するモーション・ベクトルを含むことができる。
【００４７】
一実施形態では、ステップ４３０において生成した残差データは、逆方向エンコード基準、順方向エンコード基準、または双方に基づくことができる。逆方向エンコード基準は、現フレームの前のある時点における画像を表すフレームに基づくエンコード基準であり、順方向エンコード基準は、現フレームの後のある時点における画像を表すフレームに基づくエンコード基準である。一実施形態では、順方向、逆方向、および双方向を含む３組の残差データ即ちモーション・ベクトル・コードを生成することができる。例えば、逆方向残差データは、以前のフレームからの現フレームの予測であり、順方向残差データは、後のフレームからの現フレームの予測であり、双方向残差データは、以前のフレームおよび後のフレームからの現フレームの予測である。３組の残差データ即ちモーション・ベクトル・コードの内、収容するデータが最も少ない組、またはコード長が最も短い組を用いるとよい。
【００４８】
ステップ４３０に続いて、ステップ４４０においてコード種別を判定する。即ち、出力データに組み込むためにどのデータを選択するかを決定する。つまり、エンコード・データまたは残差データのどちらを出力データに組み込むかを決定する。先に記したように、残差データはエンコード基準からの現フレームの予測であり、エンコード・データは、量子化ＤＣＴ係数の形態というような、出力データ９００の周波数ドメイン変換の結果とすることができる。入力データ９００の画像を格納するために必要なデータ・ビットを削減するために、ステップ４４０においては、用いるデータ・ビットが少ないコード種別、またはコード長が短いコード種別を選択するとよい。一実施形態では、入力データ９００の量子化ＤＣＴ係数を、残差データの量子化ＤＣＴ係数と比較することができ、コード長が短い方を選択すればよい。
【００４９】
ステップ４４０においてコード種別を選択した後、ステップ４５０では、処理しているフレームがマクロブロック・レベルではＩ−またはＰ−フレームであるか検査する。フレームがマクロブロック・レベルにおいてＩ−またはＰ−フレームである場合、今後の基準のためにステップ４６０においてエンコード基準とするために、選択したデータを格納する。その結果、選択したデータは、次のマクロブロックを処理する際に、基準として機能することができる。一実施形態では、選択したデータは、量子化ＤＣＴ係数からなり、ＤＲＡＭのようなメモリ・デバイスに格納することができる。
【００５０】
ステップ４４０においてコード種別を選択し、ステップ４６０において基準を更新した後、ステップ４７０において選択したデータをパックし、パックしたコードを出力データとして供給することができる。一実施形態では、出力データは量子化ＤＣＴ係数の形態となっており、量子化ＤＣＴ係数は、ハフマン・コード化によってパックして、コード化の効率を高めることができる。先に記したように、ハフマン・コード化技法は、可変長コードの表を生成し、高いコード化効率を達成するために用いられる。例えば、短いコードを用いて、頻繁に生ずるイベントを表す場合、総コード長を短縮し、コード化効率を高めることができる。ステップ４７０において生成したパック・コードは、記憶媒体に格納することができる。一実施形態では、パックしたコードは、ＭＰＥＧ−２フォーマットのような、ＭＰＥＧフォーマットとすることができる。更に、これらのパックしたデータは、コード化プロセス４００の結果を表し、後に、デコーダによって処理して、コード化したフレームまたは画像を再現することができる。
【００５１】
ステップ４５０において、選択したデータはマクロブロック・レベルではＩ−またはＰ−フレームではないと判定した場合、選択したデータをエンコード基準として格納するステップ４６０を省略すればよい。しかしながら、前述のように、ステップ４７０において、選択したデータをパックし、パック・コードとして供給してもよい。
【００５２】
以上説明し図３に示したエンコード・プロセス４００によれば、本発明と密接に結び付く実施形態は、入力データ９００の周波数ドメイン変換に基づいて、エンコード・データを生成することができる。一実施形態では、他の画像コード化または処理の前にエンコード・データを生成することによって、モーション予測および残差データを生成するためのモーション探索に伴う計算の複雑度を低下させることができる。また、モーション予測のために基準を用いる前に基準をデコードする必要性も回避することができる。一実施形態では、エンコード・プロセスは、必要とするメモリ空間の削減、処理能力の削減、または双方を可能にする。例えば、図３に示すエンコード・プロセス４００と密接に結び付く実施形態では、システムは、入力データ、エンコード基準、およびパック・コードを丁寧に(respectfully)保持するためには、３つのメモリ・バッファだけがあればよい。
【００５３】
本発明と密接に結び付くエンコード方法は、種々の形式のデバイスを用い、ハードウェアまたはソフトウェアのいずれの実施態様を拠り所とし、１つ以上のディジタル・ビデオ規格の下で作成されたデータが表す画像もエンコードすることができる。例えば、エンコード命令をソフトウェア即ち制御コードで書くこともできる。コンピュータは、ソフトウェア即ち制御コードにアクセスし、本発明と密接に結び付くエンコード方法を具体化するステップを実行することができる。磁気、光、光磁気ディスク、ハード・ドライブ、および種々の形式のメモリのようなコンピュータ読み取り可能媒体は、これらの計算システムまたはデバイスのためにソフトウェア即ち制御コードを格納することができる。したがって、コンピュータ読み取り可能媒体は、前述のステップの１つ以上を実行するようにコンピュータに命令する命令を収容するように構成することができる。具体的には、コンピュータは、プロセッサまたはマイクロプロセッサと、当該プロセッサまたはマイクロプロセッサと結合されているメモリ・デバイスとを含む計算機のような、いずれの形式の計算機でもよい。以下に明記する表１は、図３の方法を表す疑似コードである。例示の一例として、以下の疑似コードは、エンコード・プロセスの２つの主要ループを含む。一方のループは、マクロブロックを一巡することによって一度に１フレームずつ圧縮する他方のループをコールすることによって、フレーム毎にビデオ・シーケンスをエンコードする。
【００５４】
【表２−１】
2007529921.tif 000003
【００５５】
【表２−２】
2007529921.tif 000004
【００５６】
【表２−３】
2007529921.tif 000005
【００５７】
例えば、図１に示すようなシステムは、先に記し図３に示したエンコード・プロセス４００と密接に結び付く方法で動作することができる。以下に、エンコード・プロセス４００と密接に結び付くステップを実施する処理システムを用いた実施形態について説明する。
【００５８】
図１に示すように、ディジタル・ビデオの画像またはフレームを表すデータをエンコードするために、プロセッサ１１０は、画像情報を収容する入力データを受信することができる。また、プロセッサ１１０は、図３の方法を実行し、入力データの周波数ドメイン変換に基づいてエンコード・データを生成するように構成することもできる。エンコード基準がメモリ１２０において入手可能である場合、プロセッサ１１０は、エンコード・データとエンコード基準との間の差を表す残差データを生成する。エンコード基準がメモリ１２０において入手可能でない場合、プロセッサ１１０はエンコード・データをメモリ１２０に更新エンコード基準として格納することができる。プロセッサ１１０は、マクロブロックを比較するためまたは後に処理するために、更新したエンコード基準を用いることができる。
【００５９】
残差データを生成した後、プロセッサ１１０は、出力データに組み込むために、エンコード・データおよび残差データの一方を選択することができる。例えば、プロセッサ１１０は、エンコード・データおよび残差データの内小さい方を、出力データに組み込むために選択することができる。エンコード・データを選択した場合、プロセッサ１１０は、エンコード・データをメモリ１２０にエンコード基準として格納することができる。プロセッサ１１０が組み込むためのデータを選択した後、プロセッサ１１０は、ハフマン・コード化による等で、選択したデータからパック・コードを生成し、出力データとして供給することができる。
【００６０】
以上のように、本発明と密接に結び付く実施形態は、ＤＣＴエンコード・ドメインのような、変換ドメインにおいて作動し、品質のぶれを制御するためのデコーダを有することを回避できるエンコード・システムおよび方法を提供することができる。また、本発明と密接に結び付く実施形態は、メモリ空間の使用、処理電力、または双方を削減することにより、高速、低複雑度、低メモリ使用量、および／または低ＣＰＵ使用量のエンコード・メソッドまたはシステムを提供することができる。例えば、ワイヤレス・デバイス、携帯デバイス、およびその他の消費者用電子製品は、本発明と密接に結び付く方法またはシステムを採用すれば、リアルタイムまたはほぼリアルタイムのエンコード処理を達成すること、ハードウェア・コストを削減すること、または双方の目標を達成することができる。
【００６１】
以上、入力としてＭＰＥＧ−２またはＭＰＥＧフォーマットを用いたエンコード処理に関して、いくつかの実施形態を説明したが、本発明と密接に結び付く実施形態は、種々のディジタル・ビデオ・フォーマットを用いることができる。更に、先に記したように、本発明と密接に結び付く実施形態は、ハードウェアまたはソフトウェアいずれの実施態様を拠り所とすることもできる。例えば、カムコーダ、ディジタル・カメラ、またはその他のディジタル画像処理デバイスというような、本発明と密接に結び付くデバイスは、前述のエンコード・システムまたは方法を用いたビデオまたは画像エンコード・チップを組む込むことができる。
【００６２】
ここに開示した発明の明細書の検討および実施により、当業者には本発明の他の実施形態も明白となろう。明細書および例は一例として見なすに過ぎず、本発明の真の範囲および主旨は添付した特許請求の範囲によって示されるものとする。
【図面の簡単な説明】
【００６３】
【図１】図１は、本発明の原理と密接に結びつく画像エンコード・システムの機能ブロック図である。
【図２】図２は、画像エンコード方法の一例を示すフロー・チャートである。
【図３】図３は、本発明の原理と密接に結びつく画像エンコード方法の別の例を示すフロー・チャートである。
【図１】
2007529921.tif 000006
【図２】
2007529921.tif 000007
【図３】
2007529921.tif 000008
【国際調査報告】
2007529921.tif 000009
2007529921.tif 000010
2007529921.tif 000011