【誤訳訂正書】
【提出日】平成24年2月13日(2012.2.13)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【発明の詳細な説明】
【発明の名称】非標準化ビデオ量子化コーダを使用するビデオ規格に準拠した残差コーディング
【技術分野】
【０００１】
発明に関する本出願は、２００５年１月６日に出願された、米国特許仮出願番号第６０／６４２，０２３号、名称“非標準化ビデオ量子化エンコーダを使用する規格に基づいた残差エンコーディング（Standards-Based Residual Encoding Using A Non-Standardized Vector Quantization Encoder）”、に優先権を主張し、これは本出願の譲受人に譲渡され、これにより本明細書中に引用文献として特に取り込まれている。
【０００２】
本明細書は、ディジタル・ビデオ処理に係り、特に、規格に準拠して圧縮された残差（residual）ブロックを生成するエンコーディング技術に関する。
【背景技術】
【０００３】
ディジタル・ビデオの能力は、ディジタル・テレビ、ディジタル直接放送システム、ワイアレス通信装置、パーソナル・ディジタル・アシスタンツ（personal digital assistants）（ＰＤＡｓ）、ラップトップ・コンピュータ、デスクトップ・コンピュータ、ディジタル・カメラ、ディジタル記録装置、セルラ電話機又は衛星無線電話機、及びその他を含む、広範囲の装置に提供されることが可能である。ディジタル・ビデオ装置は、完全動画ビデオ・シーケンスを製作する際に、変更する際に、送信する際に、記憶する際に、記録する際に及び上演する際に従来型のアナログ・ビデオ・システムよりも著しい改善を提供することが可能である。
【０００４】
多数の異なるビデオ・コーディング規格が、ディジタル・ビデオ・シーケンスをコーディングするために制定されてきている。例えば、動画専門家グループ（Moving Picture Experts Group）（ＭＰＥＧ）は、ＭＰＥＧ−１、ＭＰＥＧ−２及びＭＰＥＧ−４を含む多数の規格を開発している。その他の規格は、国際電気通信連合データ送信（International Telecommunication Union Telecommunications）（ＩＴＵ−Ｔ）Ｈ．２６３規格、カリフォルニア州キューパティーノのアップル・コンピュータにより開発されたクイックタイム（QuickTime）（登録商標）技術、ワシントン州レドモンド市のマイクロソフト社により開発されたウィンドウズ（登録商標）のためのビデオ（Video for Windows（登録商標））、インテル社により開発されたインデオ（Indeo）（登録商標）、ワシントン州シアトル市のリアルネットワークス株式会社からのリアルビデオ（RealVideo）（登録商標）、及びスーパーマックス株式会社により開発されたシネパック（Cinepak）（登録商標）を含む。その上に、ＩＴＵ−Ｔ  Ｈ．２６４規格及び数多くの適正な規格類を含む、新たな規格類が現れ、展開され続けている。
【０００５】
複数のビデオ・コーディング規格は、圧縮された形式でデータをコーディングすることによりビデオ・シーケンスの改善された送信レートを可能にする。圧縮は、ビデオ・フレームの効率的な送信のためにこれから送信するために必要なデータの全体量を削減する。大部分のビデオ・コーディング規格は、例えば、圧縮なしで実現されるはずのバンド幅より狭いバンド幅でビデオ送信及び画像送信を容易にするように設計されたグラフィック圧縮技術及びビデオ圧縮技術を利用する。規格類は、一般的に、規格に準拠して圧縮された残差ブロック（residual block）を生成するために使用されるコーディング技術を述べるが、同様に、出力のビット・ストリームが規格に準拠する限り、他の技術が使用されることも可能にする。
【０００６】
ＭＰＥＧ規格類及びＩＴＵ−Ｔ  Ｈ．２６３とＩＴＵ−Ｔ  Ｈ．２６４規格のような、多くの規格類は、フレーム間圧縮を提供するために連続する複数のビデオ・フレーム間の類似性、一時的な相関又はフレーム間相関として呼ばれる、を利用するビデオ・コーディング技術をサポートする。フレーム間圧縮技術は、ビデオ・フレームの画素ベースの表示を動画表示に変換することにより複数のフレームにわたるデータ冗長性を活用する。その上に、複数のビデオ・コーディング技術は、空間相関又はフレーム内相関（intra-frame correlation）と呼ばれるフレーム内部の類似性を利用することができて、ビデオ・フレームをさらに圧縮する。
【０００７】
ビデオ・フレーム圧縮を実現するために、ディジタル・ビデオ装置は、一般的にディジタル・ビデオ・シーケンスを圧縮するためのエンコーダ、及びディジタル・ビデオ・シーケンスを逆圧縮するためのデコーダを含む。多くの場合に、エンコーダ及びデコーダは、ビデオ・シーケンスを規定するフレーム内の画素のブロック上で動作する統合された“ＣＯＤＥＣ”を形成する。本明細書中で使用されるように、用語“ＣＯＤＥＣ”は、エンコーダ、デコーダ又は統合されたエンコーダ／デコーダを呼ぶ。
【０００８】
ＭＰＥＧ−４規格では、ＣＯＤＥＣは、送信されようとしているビデオ・フレームを“マクロブロック”と呼ばれる複数のビデオ・ブロックに分割する。ＩＴＵ−Ｔ  Ｈ．２６４規格は、１６×１６ビデオ・ブロック、１６×８ビデオ・ブロック、８×１６ビデオ・ブロック、８×８ビデオ・ブロック、８×４ビデオ・ブロック、４×８ビデオ・ブロック、４×４ビデオ・ブロックをサポートする。その他の規格は、異なる大きさにされたビデオ・ブロックをサポートできる。ビデオ・フレーム中の各ビデオ・ブロックに対して、ＣＯＤＥＣは、１又はそれより多くの以前にエンコードされたビデオ・フレームの類似の大きさにされたビデオ・ブロックを検索して、“予測ブロック”と呼ばれる、類似のビデオ・ブロックを識別する。現在のビデオ・ブロックを他のフレームのビデオ・ブロックと比較する処理は、一般に動き推定（motion estimation）と呼ばれる。一旦“予測ブロック”が動き推定の間に現在のビデオ・ブロックに対して識別されると、ＣＯＤＥＣは、現在のビデオ・ブロックと予測ブロックとの間の差異をコード化することが可能である。
【０００９】
現在のビデオ・ブロックと予測ブロックとの間の差異をコーディングするこの処理は、動き圧縮と呼ばれる処理を含む。動き圧縮は、“残差（residual）”を生成することを包含する、残差は、コード化されようとしている現在のビデオ・ブロックと予測ブロックとの間の差異を表すデータのブロックである。特に、動き圧縮は、通常、動きベクトル（motion vector）を使用して予測ブロックを引き出し、そしてそれから残差を発生させるために入力ブロックから予測ブロックを引き算する動作に言及する。残差は、一般的に元々のビデオ・ブロックより実質的に少ないデータを含み、差異ブロックにより表される。“内部（intra）”エンコーディングは、同様に“残差”を生成するが、エンコードされようとしているビデオ・ブロックと同じフレームの異なるビデオ・ブロックとの間の差異に基づいて残差を生成する。内部エンコーディングにおいて残差を生成する処理は、しばしば“内部予測”と呼ばれる。
【００１０】
いずれの場合においても、残差が生成された後で、一連の追加のステップが、残差をさらにコード化するために、及びデータをさらに圧縮するために同様に実行されることが可能である。これらの追加のステップは、使用されているコーディング規格に依存することがあるが、一般に“残差コーディング”と呼ばれる。例えば、ＭＰＥＧ−４に準拠するＣＯＤＥＣでは、例えば、残差コーディングは、８×８離散コサイン変換、次にスカラ量子化が行われ、次に、ラスタからジグザグへの並べ替えが行われ、次に、ランレングス・エンコーディングが行われ、次に、ハフマン・エンコーディングが行われる。コード化された残差は、以前のフレーム（又は後続のフレーム）からのどのビデオ・ブロックがコーディングのために使用されたかを示す動きベクトルとともに送信されることが可能である。受信装置のＣＯＤＥＣは、動きベクトル及びコード化された残差を受信し、そしてビデオ・シーケンスを再構成するために受信された情報をデコードする。
【００１１】
残差コーディング・ステップは、しばしばビデオ・コーディングにおいてボトルネックになる。これは、テレビ電話（video telephony）（ＶＴ）アプリケーションおいて使用されるもののような、リアルタイム・ビデオに係わる問題になる可能性がある。その上に、限られた演算上のリソース及び限られた電池電力は、ＶＴアプリケーションに関するこれらの問題を複雑にする。残念ながら、ほとんどの規格の場合、残差コーディング・ステップは、後続の処理を行うことができる前に前の処理が処理される必要がある連続した処理である。
【発明の開示】
【００１２】
本明細書は、ベクトル量子化コーディングを使用する残差コーディング技術を記載し、ベクトル量子化コーディングはテンプレート・マッチングに依存する。本明細書中に記載された技術は、残差テンプレートをビデオ規格に準拠する事前に算出された圧縮された残差ブロックにマッピングする。例えば、残差テンプレートは、規格に準拠して圧縮された残差ブロックに直接マッピングされる、若しくは代わりに、残差テンプレートを表すベクトル量子化コードブックインデックスが規格に準拠して圧縮された残差ブロックにマッピングされることができる。どちらの場合でも、規格に準拠して圧縮された残差ブロックは、その後、規格に準拠する別の１つの装置に送信されることが可能である。本技術は、ビデオ・コーディング規格への準拠を維持したままで、より多くの並列処理を実行する能力のような、ベクトル量子化コーディングに関係する利点を活用することが可能である。
【００１３】
本明細書中に記載された技術は、残差テンプレートのセットに対する規格に準拠して圧縮された残差ブロックのセットを事前に算出することを含むことができる。コーディング装置は、残差テンプレートと規格に準拠して圧縮された残差ブロックのセットとの間のマッピングを記憶する。残差テンプレートは、変換された又は変換されていないテンプレートであり得る。記憶されたマッピングは、“コードブック”に具体的に表現されることができ、コードブックは、しかも、いずれかの冗長な残差テンプレート又は類似の残差テンプレートを削除することにより効率的に規定されることができる。残差コーディングを実行するために、コーディング装置は、テンプレート・マッチングに依存したベクトル量子化コーディングを利用することが可能であり、そしてベクトル量子化コーディングにおいて識別された最もぴったりと符合する残差テンプレートに関係する、規格に準拠して圧縮された残差ブロックを識別するためにコードブックをアクセスすることが可能である。従来のベクトル量子化エンコーディング技術を用いてなされるように、残差テンプレートを識別するベクトル量子化コードブックインデックスを送信することよりはむしろ、規格に準拠して圧縮された残差ブロックは、その後送信されることが可能である。
【００１４】
１つの実施形態では、本明細書は、残差テンプレートを規格に準拠して圧縮された残差ブロックにマッピングする情報を記憶するメモリ、及び残差を残差テンプレートと比較し、残差に最もぴったりと符合する残差テンプレートの１つを識別し、かつ規格に準拠して圧縮された残差ブロックの対応する１つを選択する残差コーダを具備する、ビデオ・コーディング装置を提供する。
【００１５】
別の１つの実施形態では、本明細書は、残差テンプレートを規格に準拠して圧縮された残差ブロックにマッピングする情報を記憶すること、残差に最もぴったりと符合する残差テンプレートの１つを識別するために残差を残差テンプレートと比較すること、及び規格に準拠して圧縮された残差ブロックの対応する１つを選択することを具備する、ビデオ・コーディング方法を提供する。
【００１６】
別の１つの実施形態では、本明細書は、プロセッサにおいて実行する際に、残差テンプレートを規格に準拠して圧縮された残差ブロックにマッピングする記憶された情報をアクセスすること、残差に最もぴったりと符合する残差テンプレートの１つを識別するために残差を残差テンプレートと比較すること、及び規格に準拠するビット・ストリームの対応する１つを選択することをプロセッサにさせる命令を具備する、コンピュータ読み取り可能な媒体を提供する。
【００１７】
別の１つの実施形態では、本明細書は、ビデオ・エンコーディング装置においてベクトル量子化エンコーディング処理を制御するために当該媒体上に記憶されたデータ体系を具備するコンピュータ読み取り可能な媒体を提供し、ここにおいて、データ体系は、ベクトル量子化エンコーディング処理の残差テンプレートをビデオ・エンコーディング規格に準拠して圧縮された残差ブロックにマッピングする。
【００１８】
別の１つの実施形態では、本明細書は、残差テンプレートのセットを識別すること、規格に準拠して圧縮された残差ブロックのセットを発生するために残差テンプレートのセットに規格に準拠するコーディング処理を実行すること、及び残差テンプレートのセットを規格に準拠して圧縮された残差ブロックのセットにマッピングする情報を記憶すること、を具備する方法を提供する。
【００１９】
本明細書中に記載されたこれらの技術及びその他の技術は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせでビデオ・コーディング装置に与えられることができる。ソフトウェアにおいて与えられるのであれば、ソフトウェアは、命令をサポートするプログラム可能なプロセッサのような、プロセッサにおいて実行されることができる。一例として、命令は、単一命令複数データ（ＳＩＭＤ）命令であることができる。この場合には、本技術は、ＳＩＭＤアーキテクチャを活用でき、残差コーディングの間に並列処理を可能にすることができる。本技術を実行するソフトウェアは、コンピュータ読み取り可能な媒体に初めに記憶され、そのような残差コーディングを実行するためにプロセッサにロードされ実行されることができる。
【００２０】
種々の実施形態のさらなる詳細は、添付された図面及び以下の明細書に説明される。その他の特徴、目的及び利点は、明細書及び図面から、並びに特許請求の範囲から明確になるであろう。
【００２１】
［詳細な説明］
本明細書は、ベクトル量子化コーディングを使用する残差（residual）コーディング技術を説明し、ベクトル量子化コーディングは、残差コーディング処理におけるテンプレート・マッチングに依存する。残差コーディングは、動き推定及び動き補償からの結果である“残差”、又は空間推定及び内部予測からの結果である“残差”のコーディングに言及する。動き推定及び動き補償は、フレーム間圧縮を提供するために一時的なデータ相関又はフレーム間データ相関を活用する複数のビデオ・コーディング規格において使用される周知の技術である。エンコードされようとしている現在のビデオ・ブロックを別の１つフレームの種々の他のビデオ・ブロックと比較する処理は、一般に動き推定と呼ばれる。現在のビデオ・ブロックと予測ブロックとの間の差異をコーディングするこの処理は、動き補償と呼ばれる処理を含む。動き補償は、通常、動きベクトルを使用して予測ブロックを取り出し、次に入力ブロックから予測ブロックを引き算する動作に言及する。動き補償の出力は、“残差”と呼ばれ、そして一般に、コード化されようとしている現在のビデオ・ブロックと動き推定により識別された予測ブロックとの間の差異を示すデータのブロックを具備する。空間推定技術及び内部予測技術は、同様に“残差”を生成し、フレーム内データ相関を活用するために使用される周知の技術に言及する。
【００２２】
動き補償（又は内部予測）が残差を生成した後で、一連の追加のステップが、残差をさらにコード化し、そしてデータをさらに圧縮するために、同様に実行されることが可能である。実行される追加のステップは、使用されるコーディング規格に依存するが、一般に “残差コーディング”と呼ばれる。本明細書は、ベクトル量子化エンコーディング技術にしたがった残差エンコーディング技術を意図し、これは、エンコーディング処理を改善しかつ加速することができ、そして可能性として残差エンコーディングの間に使用される並列処理技術を可能にする。
【００２３】
残差ベクトル量子化コーディングにおいて、残差は、残差テンプレートと比較される。従来は、一旦、最も良く符合する残差テンプレートが識別されると、最も良く符合する残差テンプレートを識別するベクトル量子化コードブックインデックスが、送信される。ベクトル量子化コードブックインデックスは、コードワードと時々呼ばれる。しかしながら、本明細書によれば、規格に準拠するＣＯＤＥＣに対して何の意味も持たないことがあるベクトル量子化コードブックインデックスを送信するよりはむしろ、残差テンプレートは、規格に準拠する事前に算出された圧縮された残差ブロックにマッピングされる。次に、規格に準拠して圧縮された残差ブロックは、送信されることが可能である。このようにして、本明細書中に説明された技術は、ビデオ・コーディング規格への準拠を維持したままで、並列処理を実行する能力のような、ベクトル量子化コーディングに関係する利点を活用できる。本明細書中で説明される技術は、変換された残差テンプレート又は変換されない残差テンプレートに関して適用されることができる。言い換えると、１又はそれより多くの残差エンコーディング・ステップは、テンプレート・マッチング技術に先立って適用されることができるが、いずれの場合でも、本明細書は、規格に準拠するような出力を可能にする。
【００２４】
本明細書の技術は、残差テンプレートのセットに関する規格に準拠して圧縮された残差ブロックのセットを事前に計算することを含むことができる。コーディング装置は、規格に準拠して圧縮された残差ブロックに対する残差テンプレートのマッピングを記憶する。マッピングは、コードブックを具備することができ、可能性として残差テンプレートを表現するためにベクトル量子化コードブックインデックスを使用することができる。残差コーディングを実行するために、コーディング装置は、テンプレート・マッチングを頼りにするベクトル量子化コーディングを利用することが可能であり、そしてベクトル量子化コーディングにおいて識別された最もぴったりと符合する残差テンプレートに関係する規格に準拠して圧縮された残差ブロックを識別するためにコードブックをアクセスすることが可能である。
【００２５】
図１は、具体例のビデオ・コーディング装置１０を説明するブロック図である。ビデオ・コーディング装置１０は、ビデオ・データをエンコーディングし、送信することができるディジタル・ビデオ装置の一部分を形成することができる。ビデオ・データは、ビデオ・カメラから取り込まれることができる、又はビデオ・アーカイブから取り出されることができる。コーディング装置１０に取り込まれることができるディジタル・ビデオ装置の例は、ディジタル・テレビ、ディジタル直接放送システム、ワイアレス通信装置、パーソナル・ディジタル・アシスタント（personal digital assistant）（ＰＤＡ）、ラップトップ・コンピュータ、デスクトップ・コンピュータ、ディジタル・カメラ、ディジタル記録装置、セルラ電話機又は衛星無線電話機、若しくはビデオ電話方式（video telephony）（ＶＴ）能力を有する任意の電気通信装置を含む。装置１０は、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４、又はフレーム間ビデオ・エンコーディングのための動き推定技術及び動き補償技術をサポートする別の１つのビデオ・エンコーディング規格に準拠することができる。
【００２６】
図１に示されたように、装置１０は、ビデオ・シーケンスをエンコードするビデオ・エンコーディング装置１２、およびエンコーディングの前又は後のビデオ・シーケンスを記憶するビデオ・メモリ４を含む。装置１０は、しかも、エンコードされたシーケンスを別の１つの装置に送信する送信機６、及び可能性としてビデオ・シーケンスを取り込みメモリ４に取り込まれたシーケンスを記憶する、ビデオ・カメラのような、ビデオ取り込み装置８も含むことができる。装置１０の種々の要素は、通信バス１５を介して通信的に接続されることができる。フレーム内エンコーダ要素、種々のフィルタ、又はその他の要素のような、種々のその他の要素は、同様に、装置１０に含まれることができるが、単純化のために具体的に図示されない。
【００２７】
ビデオ・メモリ４は、一般的に相対的に大きなメモリ空間を具備する。例えば、ビデオ・メモリ４は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、又はＦＬＡＳＨメモリを具備できる。他の例では、ビデオ・メモリ４は、不揮発性メモリ又は任意の他のデータ記憶装置を具備できる。
【００２８】
ビデオ・エンコーディング装置１２は、ハードウェア、ソフトウェア、ファームウェア、及び／又はプロセッサ又はディジタル・シグナル・プロセッサ（ＤＳＰ）の組み合わせを含む、移動体無線電話機のための、いわゆる“チップ・セット”を具備することができる。ビデオ・エンコーディング装置１２は、一般にローカル・メモリ１４に接続されたビデオ・エンコーダ１６を含む。ローカル・メモリ１４は、ビデオ・メモリ４と比較してより小さなかつより早いメモリ空間を具備できる。例として、ローカル・メモリ１４は、シンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）を具備できる。ローカル・メモリ１４は、ビデオ・エンコーディング装置１２のその他の構成要素とともに集積された“オンチップ”メモリを具備することができ、プロセッサに集中するエンコーディング処理の間にデータへの非常に早いアクセスを提供する。しかしながら、メモリ４及び１４は、同一のメモリ部品に統合されることができる。ビデオ・エンコーダ１６は、並列処理技術をサポートでき、これは、本明細書中に説明されるように残差エンコーディングの間に活用されることが可能である。
【００２９】
所与のビデオ・フレームのエンコーディングの間、エンコードされようとしている現在のビデオ・ブロックは、ビデオ・メモリ４からローカル・メモリ１４にロードされることができる。予測ビデオ・ブロックの場所を決める際に使用される検索空間は、同様に、ビデオ・メモリ４からローカル・メモリ１４にロードされることができる。検索空間は、１又はそれより多くの前のビデオ・フレーム（又は後続のフレーム）の画素の下位セットを具備できる。選択された下位セットは、エンコードされようとしている現在のビデオ・ブロックにぴったりと符合する予測ビデオ・ブロックの識別のために可能性の高い場所として事前に認識されることができる。
【００３０】
ローカル・メモリ１４は、エンコードされようとしている現在のビデオ・ブロック及び検索空間とともにロードされ、フレーム間エンコーディングにおいて使用される１又はそれより多くのビデオ・フレームのいくつか又は全てを具備する。動き推定器／空間推定器１３は、予測ビデオ・ブロックを識別するために検索空間中の種々のビデオ・ブロックと現在のビデオ・ブロックを比較する。動き推定器／空間推定器１３は、一般に、フレーム間エンコーディングのための動き推定を実行する動き推定器、フレーム内エンコーディングのための空間推定を実行する空間推定器、又は動き推定及び空間推定のどちらかを実行することが可能な組み合わせユニットを意味する。一般に、予測ビデオ・ブロックは、フレーム間相関（又はフレーム内相関）の目的のために現在のビデオ・ブロックとの適切な符合を与えるために見出された候補ビデオ・ブロックであり、これは、最もぴたりと符合している候補ビデオ・ブロックである。予測ビデオ・ブロックは、動き推定処理の間に評価された複数の候補ビデオ・ブロックの１つであって、現在のビデオ・ブロックに対して相対的に最小の差異値を有するビデオ・ブロックを識別する。
【００３１】
エンコードされようとしている現在のビデオ・ブロックとメモリ１４の検索空間中の候補ビデオ・ブロックとの間の比較を実行するために、動き推定器／空間推定器１３は、絶対差異の和（sum of absolute difference）（ＳＡＤ）技術、差異の二乗和（sum of squared difference）（ＳＳＤ）技術、又はその他の比較技術を実行できる。このようにして、動き推定器／空間推定器１３は、異なる候補ビデオ・ブロックに対する差異値を決定できる。より小さな差異値は、候補ビデオ・ブロックがより良く符合することを一般に示し、それゆえ、より大きな差異値を生じるその他の候補ビデオ・ブロックよりも動き推定エンコーディングにおける使用のためのより良い候補である。予測ビデオ・ブロックは、一旦ふさわしい符合が見出されると、識別されることができる。
【００３２】
一旦、予測ビデオ・ブロックがエンコードされようとしているビデオ・ブロックに対して動き推定器／空間推定器１３によって識別されると、動き補償器／内部予測ユニット１７は、残差を生成する。動き補償器／内部予測ユニット１７は、フレーム間エンコーディングのための動き補償を実行する動き補償器、フレーム内エンコーディングのための空間補償を実行する内部予測ユニット、若しくはどちらのモードが使用されようとしているかに応じて動き補償及び内部予測のいずれかを実行することが可能な複合ユニットを意味する。再び、残差は、コード化されようとしている現在のビデオ・ブロックとコーディングに使用される予測ビデオ・ブロックとの間の差異を表すデータのブロックを具備する。特に、動き補償器／内部予測ユニット１７は、動きベクトルを使用して予測ブロックを取り出し、それから入力ブロックから予測ブロックを引き算して残差を生成する。残差は、一般的に、元々のビデオ・ブロックより実質的に少ないデータを含み、差異ブロックにより表される。
【００３３】
動き補償器／内部予測ユニット１７が残差を生成した後で、残差コーダ１９は、本明細書中に説明されるように、残差にベクトル量子化エンコーディングを実行する。残差コーダ１９は、一般に、自動照合を実行する非標準化ビデオ量子化コーダであり、規格に準拠して圧縮された残差ブロックを識別する。このようにして、残差コーダ１９は、残差の非標準化ビデオ量子化エンコーディングの一部分として規格に準拠するビット・ストリームを識別することが可能である。例えば、残差コーダ１９は、残差テンプレートのセットが動き補償器／内部予測ユニット１７によって生成された残差に比較されるテンプレート・マッチング技術を呼び出すことができる。残差に最もぴったりと符合する残差テンプレートは、その後、エンコーディング処理において使用されることが可能である。テンプレート・マッチング処理に続いて、残差コーダ１９は、選択されたテンプレートに対する規格に準拠して圧縮された残差ブロックを識別するためにコードブック１８をアクセスする。ある複数の実施において、１又はそれより多くの変換は、テンプレート・マッチングに先立って実行されることができ、その場合には、テンプレート・マッチングに使用されるテンプレートは、変換されたテンプレートを具備することができる。いずれの場合でも、（変換された又は変換されていない）残差テンプレートは、コードブック１８を使用して規格に準拠して圧縮された残差ブロックにマッピングされることが可能である。
【００３４】
本明細書にしたがって、ビデオ・エンコーディング装置１０は、コードブック１８を事前にロードされる、例えば、コードブック１８は、（図示されたように）ローカル・メモリ１４又は可能性としてビデオ・メモリ４中にロードされることができる。多くの場合には、例えば、全体のコードブックは、非常に大きいことがあり、ビデオ・メモリ４中に記憶されることがある。この場合には、コードブック１８は、ビデオ・メモリ４中に記憶された完全なコードブックの一部分の記憶のためのキャッシュ・メモリであり得る。しかしながら、以下の説明における単純化のために、全体のコードブックがローカル・メモリ１４中にコードブック１８として記憶されると仮定される。いずれの場合でも、コードブック１８は、残差テンプレートのセット（又は、テンプレート識別する値）を対応する規格に準拠して圧縮された残差ブロックのセットにマッピングする。規格に準拠して圧縮された残差ブロックは、ビデオ・トレーニング・シーケンスを使用してテンプレートのセットに対して事前に計算されることができる。しがたって、一旦、残差テンプレートの一つが残差コーダ１９によって識別されると、コードブック１８は、識別された残差テンプレートを規格に準拠して圧縮された残差ブロックにマッピングするためにアクセスされることが可能である。
【００３５】
コードブック１８を生成するために、規格に準拠して圧縮された残差ブロックは、残差テンプレートのセットに対して事前に算出されることができる。コードブック１８は、残差自身を圧縮された残差ブロックに直接マッピングすることにより、若しくは残差テンプレートを表現するためにベクトル量子化コードブックインデックスを使用することのどちらかによって、このマッピングを記憶する。コードブック１８の事前算出は、サポートされている規格に準拠する残差テンプレートのそれぞれに対して実行された全ての残差エンコーディング・ステップを含むことができる。例えば、コードブック１８の事前算出は、変換（例えば、ＤＣＴ変換）、ジグ−ザグ・スキャニング、ラン・レングス・コーディング、可変長（ハフマン）コーディング、又は所与のコーディング規格において使用されるいずれかのその他の処理のような処理を含むことができる。１又はそれより多くのこれらの処理が残差のエンコーディングに先立って残差テンプレートに対して実行されるので、残差の実行時間エンコーディングは、加速されることが可能である。その上、テンプレート・マッチングを使用するベクトル量子化技術は、もし標準残差エンコーディング処理が残差に実行時間で実行されるのであれば不可能であるはずの並列処理技術を呼び出す。
【００３６】
図２は、本明細書の１実施形態にしたがった残差エンコーディング技術を説明する具体例のフロー図である。図２に示されたように、メモリ１４は、残差テンプレートのセットを規格に準拠して圧縮された残差ブロックのセットにマッピングする情報を記憶する（２１）。例えば、情報は、コードブック１８を具備することができ、そして残差テンプレートと対応する圧縮された残差ブロックとの間の直接１対１マッピングを含むことができる、若しくは対応する圧縮された残差ブロックにマッピングされたベクトル量子化コードブックインデックスを具備することができる。ここにおいて、ベクトル量子化コードブックインデックスは、残差テンプレートを識別するコード・ワードである。圧縮された残差ブロックは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４のようなビデオ・コーディング規格、又は動き推定、動き補償及び残差エンコーディングを説明する別の１つのビデオ・コーディング規格に準拠するように事前に算出されることができる。
【００３７】
動き補償器／内部予測ユニット１７により出力された各残差に対して、残差コーダ１９は、残差をメモリ１４中に記憶された残差テンプレートのセットに対して比較し、そして残差に最もぴったりと符合する残差テンプレートの１つを識別する（２２）。例えば、テンプレート・マッチングは、ＳＳＤ又はＳＡＤ技術を使用できる、若しくはエンコードされようとしている残差に対する残差テンプレートの比較を容易にするその他の比較技術を使用できる。再び、ある複数の場合には、残差テンプレートは、例えば、そこでは変換がテンプレート・マッチングに先立って実行されるインプリメンテーションのための、変換された残差テンプレートであることがある。いずれの場合でも、一旦、最もぴったり符合する残差テンプレートが識別されると、残差エンコーダ１９は、コードブック１８をアクセスして、対応する圧縮された残差ブロックを選択する（２３）。この圧縮された残差ブロックは、識別された残差テンプレートに対して事前に算出される。このようにして、送信機６は、残差エンコーダ１９がベクトル量子化エンコーディング処理を実行する場合でさえも、規格に準拠して圧縮された残差ブロックを送信できる。
【００３８】
再び、テンプレート・マッチングを使用するベクトル量子化技術は、もし標準残差エンコーディング技術が残差に実行時間において実行されるのであれば不可能なはずである並列処理技術を呼び出すことができる。例えば、残差エンコーダ１９は、単一命令複数データ（single instruction multiple data）（ＳＩＭＤ）ソフトウェア命令を具備できる。ＳＩＭＤソフトウェア命令は、並列処理をサポートするプロセッサ上で実行する。この場合には、テンプレート・マッチングは、並列方式で実行されることが可能である。残差エンコーダ１９は、並列処理技術を使用して所与の残差を残差テンプレートのセットと比較できる若しくは複数のコード化されたビデオ・ブロックに関係する複数の残差を残差テンプレートのセットと比較できる。どちらの場合でも、ベクトル量子化エンコーディングは、エンコーディングを加速でき、しかも同様に本明細書中で説明されるように、結果として規格に準拠して圧縮された残差ブロック出力になる使用されようとしている並列処理技術を可能にする。
【００３９】
図３は、本明細書にしたがったコードブックを事前に算出するための具体例のアーキテクチャを説明するブロック図である。図３に示されたように、オフライン・コードブック発生ユニット３０は、コードブック３８を事前に算出する。コードブック３８は、ビデオ・エンコーディング装置メモリ３５中にロードされる。メモリ３５は、装置１０のローカル・メモリ１４又はビデオ・メモリ４のどちらかに対応することができる、若しくは可能性として別のビデオ・コーディング装置において使用される別のタイプのメモリに対応することができる。コードブック３８は、ルックアップ・テーブル（lookup table）（ＬＵＴ）のようなデータ体系を備える。ＬＵＴは、残差テンプレートのセットを規格に準拠して圧縮された残差ブロックのセットにマッピングする。コードブック３８は、残差テンプレートを記憶することができる、若しくは残差テンプレートを表すベクトル量子化コードブックインデックスを記憶することができる。後者の場合には、残差テンプレートは、テンプレート・マッチング処理における使用のために異なる場所に記憶されることがある。
【００４０】
コードブック発生ユニット３０は、コードブック発生器３３、テンプレート発生器３１及び事前圧縮された残差発生器３２を含み、これらは統合されることができる。一般に、オフライン・コードブック発生ユニット３０は、１又はそれより多くのビデオ・トレーニング・シーケンスを使用して、コードブック３８の記載事項（entry）を生成する。特に、コードブック発生器３３は、従来のコードブック発生アルゴリズム、又はコードブック発生のための任意の技術を実行できる。テンプレート発生器３１は、残差テンプレートのセットを発生することが可能である。一例では、テンプレート発生器３１は、トレーニング・シーケンスからの入力残差に離散型余弦（ＤＣＴ）変換及び正量子化を実行することにより、そしてそれから逆量子化及び逆ＤＣＴ変換を実行することにより、残差テンプレートを発生する。より一般的に、テンプレート発生器３１は、サポートされようとしているエンコーディング規格に基づいて残差に量子化及び／又は変換を実行する、そしてその後、残差に対する残差テンプレートを生成するために逆量子化及び／又は逆変換を実行する。
【００４１】
事前圧縮された残差発生器３２は、量子化され変換された残差に残差エンコーディング・ステップを実行する。事前圧縮された残差発生器３２によって実行される実際の残差エンコーディング・ステップは、サポートされようとしている規格により決定される。一例では、例えば、ＭＰＥＧ−４にしたがって、事前圧縮された残差発生器３２は、ラスタからジグザグへの再配列、引き続いてラン−レングス・エンコーディング、引き続いてハフマン・エンコーディングを実行する。事前圧縮された残差発生器３２の出力は、残差に対する規格に準拠して圧縮された残差ブロックである。そのようにして、トレーニング・シーケンスの所与の残差に対して、テンプレート発生器３１は、残差テンプレートを発生し、そして事前圧縮された残差発生器３２は、サポートされているビデオ・エンコーディング規格に準拠して対応する圧縮された残差ブロックを発生する。これらの出力は、その後、コードブック３８に互いにマッピングされる。
【００４２】
コードブック発生器３３は、しかも、重複したテンプレートの生成を回避するように、若しくはビデオ・メモリ３５中に記憶される最終のコードブック３８からいずれかの重複したテンプレートを削除するように設計される。再び、コードブック発生器３３は、記載事項を規定でき、そしていずれかの公知のコードブック生成基準にしたがって、記載事項を可能性として削除できる。ある複数の場合には、コードブック発生器３３は、コードブック３８の記載事項を規定するためにエラー基準及び／又はエンコーディング品質因子を適用できる。このようにして、コードブック３８の大きさは、著しく削減されることができ、それによってコードブック３８を記憶するために必要とされる必要なメモリを削減する。その上に、コードブック３８は、しかも、変換された残差テンプレートを規格に準拠する出力にマッピングするように規定されることができる。その場合には、エンコーディング処理は、テンプレート・マッチングに先立って変換を適用するはずである。どのようにしてコードブックが生成されるかに拘わらず、コードブックは、ビデオ・エンコーディング装置メモリ３５に送信されることができ、ビデオ・エンコーディング装置メモリ３５は、本明細書中で説明されるように、規格に準拠して圧縮された残差ブロック出力を用いてベクトル量子化残差エンコーディング技術を容易にするために実行時間においてアクセスされることが可能である。
【００４３】
図４は、残差コーディングの間に活用されることが可能なコードブックを事前に算出するための１つの具体例の技術を説明するフロー図である。図４に示されたように、テンプレート発生器３１は、残差テンプレートのセットを識別する（４１）。事前圧縮された残差発生器３２は、規格に準拠したエンコーディング処理をテンプレートに実行して、規格に準拠して圧縮された残差ブロックのセットを生成する（４２）。オフライン・コードブック発生ユニット３０は、その後、残差テンプレートのセットと規格に準拠して圧縮された残差ブロックのセットとの間のマッピングを、例えば、ビデオ・エンコーディング装置メモリ３５中にコードブック３８として、記憶する（４３）。このようにして、コードブック３８は、事前に算出されることが可能であり、その結果、実効時間エンコーディングは、選択されたテンプレートに関係付けられた規格に準拠して圧縮された残差ブロックを識別するためにコードブック３８をアクセスすることが可能である。
【００４４】
図５は、残差テンプレート及び対応する規格に準拠して圧縮された残差ブロックを事前に算出するための具体例のアーキテクチャ５０を説明するより詳細なブロック図である。アーキテクチャ５０は、テンプレート発生器３１及び事前圧縮された残差発生器３２の統合された実施形態、並びにコードブック発生器３３に対応することがある。図５に示されたように、減算ユニット５２は、トレーニング・セットから入力画像を受信する。画像の各ビデオ・ブロック（例えば、各“マクロブロック”）に対して、減算ユニット５２は、ビデオ・ブロックから空間予測又は動き予測を引き算する。この意味で、減算ユニット５２は、動き補償器の単純化された表現、又は内部予測ユニットの単純化された表現を意味する。減算ユニット５２の出力は、残差を具備する。正変換ユニット５４は、正ＤＣＴ変換のような、残差への正変換を実行する。正量子化ユニット５６は、それから、選択された量子化パラメータ（quantization parameter）（ＱＰ）を適用することにより変換された残差を量子化する。ＱＰは、１又はそれより多くのエンコーディング・レート基準に基づいて選択される。
【００４５】
逆量子化ユニット５８は、ユニット５６の出力に逆量子化を実行し、そして逆変換ユニット６０は、例えば、ＤＣＴ変換を逆にして、逆変換を実行する。逆変換ユニット６０の出力は、残差テンプレートの形式のコードブック記載事項を具備する。この意味で、残差テンプレートは、残差に非常に類似しているはずであるが、正量子化ステップ及び逆量子化ステップにおいて適用された量子化のレベルに応じてわずかに異なることがある。
【００４６】
逆変換ユニット６０により出力された“コードブック記載事項”の中に表された残差テンプレートをマッピングするために、（正量子化ユニット５６により出力された）残差の正変換された版又は正量子化された版は、同様にジグザグ・スキャン・ユニット６２、ラン／レングス・エンコード・ユニット６４及び可変長コード（variable length code）（ＶＬＣ）ユニット６６を通して送られる。ユニット６２，６４及び６６は、一般にあるエンコーディング規格によって規定された一連の無損失残差エンコーディング・ユニットを表す。それゆえ、ＶＬＣユニット６６の出力は、規格に準拠して圧縮された残差ブロックであり、例えば、これは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４、又は別の１つの規格のような規格に準拠することができる。標識“事前圧縮された残差ブロック”は、規格に準拠して圧縮された残差ブロックを意味する。逆量子化ユニット５８により出力された“コードブック記載事項”は、ＶＬＣユニット６６により出力された“事前圧縮された残差ブロック”にマッピングされることが可能である。この処理は、その後、トレーニング・セットの複数の画像に対して繰り返されることが可能であり、残差テンプレートのセットを規格に準拠して圧縮された残差ブロックのセットにマッピングするデータ体系（すなわち、コードブック）を生成する。同様に、複数のコードブック発生技術は、データ体系に実行されることができて、コードブックを記憶するために必要なメモリを削減するために重複したテンプレート又は類似のテンプレートを削除し、そしてベクトル量子化エンコーディング処理のために必要なテンプレート・マッチング演算の数を削減する。
【００４７】
図６は、本明細書にしたがった残差コーダの１つの実施形態を説明する具体例のブロック図である。具体的に、図６のアーキテクチャは、図１の構成要素に実質的に対応し、残差コーダ１９、コードブック１８、及び図１のメモリ１４中に記憶された残差テンプレート・データベース（図示されず）を含む。図６のブロック図は、規格に準拠して圧縮された残差ブロックを出力するベクトル量子化テンプレート・マッチング技術を容易にするために実行時間において与えられることが可能な構成要素を図示する。
【００４８】
図６に示されたように、エンコードされようとしている入力ビデオ・ブロックは、減算ユニット８２を介して予測ブロックから引き算されて、残差ブロックを生成する。距離演算ユニット８４は、テンプレート・マッチングを実行して、残差の最もぴったりと符合する残差テンプレートを識別する。例えば、距離演算ユニット８４は、例えば、メモリ中に記憶されることがある、残差テンプレート・データベース８６をアクセスできる。残差テンプレート・データベース８６は、コードブックにおいて参照される全ての残差テンプレートの完全なデータベースである。距離演算ユニット８４は、最善の符合を識別するために残差を残差テンプレートと比較するＳＳＤ技術またはＳＡＤ技術のような、比較を実行できる。距離演算ユニット８４の出力、“最善符合インデックス”は、最善の符合を識別する。この点で、“最善符合インデックス”は、従来のベクトル量子化エンコーディングにおいて送信されるものに類似の、ベクトル量子化コードブックインデックス又はコードワードを具備する。しかしながら、そのような従来技術と異なって、図６のアーキテクチャは、“最善符合インデックス”を送信しない。その代わりに、“最善符合インデックス”は、コードブックルックアップ（ＬＵＴ）ユニット８８によって適用される。
【００４９】
コードブックＬＵＴユニット８８は、コードブック９０をアクセスする。コードブックは、事前に算出された規格に準拠して圧縮された残差ブロックへのベクトル量子化コードブックインデックス（すなわち、残差テンプレートに関するコードワード）のマッピングを記憶する。そのようにして、コードブックＬＵＴユニット８８は、“最善符合インデックス”にマッピングする規格に準拠して圧縮された残差ブロックの対応する１つを識別する。選択された規格に準拠して圧縮された残差ブロックは、図６に“事前圧縮された残差ブロック”として標識を付けられ、そしてマルチプレクサ９２に転送される。マルチプレクサ９２は、“事前圧縮された残差ブロック”を非残差ビット・ストリーム構成要素、例えば、残差に関係する動きベクトル及びサポートされている規格によって規定されることができる各種のヘッダ値、と統合する。ビット・ストリーム連結ユニット９４は、同様に、例えば、サポートされている規格に準拠して、事前圧縮されたビデオ・ブロックを非残差ビット・ストリーム構成要素と結びつけるために使用されることができる。規格に準拠する“出力ビット・ストリーム”は、その後、同様に規格に準拠するＣＯＤＥＣを含む別の装置に送信されることが可能である。
【００５０】
距離演算ユニット８４により識別された最善符合の残差テンプレートは、同様に加算器９６に転送されることが可能である。加算器９６は、例えば、次の画像の動き推定における使用のために、画像を再現するために予測ビデオ・ブロックを加算して戻す。後フィルタ９８は、同様に、例えば、再現された画像に逆ブロック・フィルタリング（de-block filtering）のような１又はそれより多くの後フィルタリング技術を実行するために呼び出されることができる。再現された画像は、圧縮後の入力画像のデコードされた版である。入力画像及び再現された画像は、例えば、いわゆる“マクロブロック”のようなビデオ・フレームの下位部分を具備することがある。
【００５１】
複数の実施形態が、説明されてきている。例えば、ベクトル量子化テンプレート・マッチングを使用するが、規格に準拠して圧縮された残差ブロックに帰結する残差コーディング技術が、説明されてきている。いくつかの具体例の規格が説明されてきているが、複数の技術は、残差コーディング処理を含む任意のビデオ・コーディング規格について適用されることができる。複数の技術は、変換されていない残差のテンプレート・マッチングの文脈において主に説明されてきている。しかしながら、説明された技術は、変換された残差に対して同等に適用可能であり、その場合には、変換は、本明細書中で説明されたテンプレート・マッチング技術に先立ってエンコーディング処理の中で実行されるはずである。“残差”は、変換された残差ブロック又は変換されていない残差ブロックを一般に呼ぶ。
【００５２】
本明細書中で説明された技術は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせにおいて実施されることができる。もし、ソフトウェアにおいて実施されるのであれば、技術は、ビデオ・シーケンスをコード化する装置において実行される場合に、本明細書中で説明された１又はそれより多くの残差コーディング技術を実行するプログラム・コードを具備するコンピュータ読み取り可能な媒体に向けられることができる。その場合には、コンピュータ読み取り可能な媒体は、シンクロナス・ランダム・アクセス・メモリ（synchronous random access memory）（ＳＲＡＭ）のようなランダム・アクセス・メモリ（random access memory）（ＲＡＭ）、リード・オンリ・メモリ（read-only memory）（ＲＯＭ）、不揮発性ランダム・アクセス・メモリ（non-volatile random access memory）（ＮＶＲＡＭ）、電気的消去可能プログラム可能なリード・オンリ・メモリ（electrically erasable programmable read-only memory）（ＥＥＰＲＯＭ）、ＦＬＡＳＨメモリ、その他を具備できる。
【００５３】
プログラム・コードは、コンピュータ読み取り可能な命令の形式でメモリ中に記憶されることができる。その場合には、ＤＳＰのような１又はそれより多くのプロセッサは、１又はそれより多くの残差コーディング技術を実行するためにメモリ中に記憶された命令を実行できる。ある場合には、技術は、コーディング処理を加速するために種々のハードウェア構成要素を呼び出すＤＳＰによって実行されることができる。その他の場合には、本明細書中で説明されたＣＯＤＥＣは、１以上のマイクロプロセッサ、１以上の用途特定集積回路（application specific integrated circuit）、１以上のフィールド・プログラマブル・ゲート・アレイ（field programmable gate array）（ＦＰＧＡ）、若しくはその他の同等な集積論理回路又は単体論理回路あるいはハードウェア−ソフトウェアの組み合わせとして与えられることができる。これらの実施形態及びその他の実施形態は、特許請求の範囲内である。
【図面の簡単な説明】
【００５４】
【図１】図１は、本明細書中で説明される１又はそれより多くの残差コーディング技術を実施できるビデオ・コーディング装置の具体例のブロック図である。
【図２】図２は、本明細書にしたがった残差コーディング技術の１実施形態を説明するフロー図である。
【図３】図３は、本明細書にしたがったコードブックを事前に計算するための具体例の構造を説明するブロック図である。
【図４】図４は、残差コーディングの間に活用されることができるコードブックを事前に計算するための具体例の技術を説明するフロー図である。
【図５】図５は、残差テンプレートを事前に計算するための具体例の構造及び対応する規格に準拠して圧縮された残差ブロックを説明するブロック図である。
【図６】図６は、本明細書にしたがった残差コーダの１実施形態を説明する具体例のブロック図である。