(57)【要約】【解決手段】デジタルピクチャを符号化および復号するための方法において、エンコーダ側では出力から、デコーダ側では入力から、予測パラメータが省略される。デコーダエミュレータが、予測されたピクセルおよび同じか異なるピクチャからの１以上の以前に復号されたセクションの予測誤差値などの他の情報から予測パラメータ値を再生することができるかどうかを決定することによって、エンコーダは省略可能な予測パラメータ値を特定することができる。【選択図】図１Ａ
2013546267.tif 000002
【特許請求の範囲】
【請求項１】
デジタルピクチャの現在のセクションを符号化する方法であって、
ａ）エンコーダを用いてデジタルピクチャの現在のセクションに対する予測誤差の集合から変換係数の集合を生成するステップと、
ｂ）前記エンコーダを用いて前記デジタルピクチャの前記現在のセクションに対する１以上の予測パラメータの第１集合を決定するステップと、
ｃ）予測されたピクセルと１以上の以前に復号されたセクションの予測誤差値を用いてデコーダエミュレータにおいて前記デジタルピクチャの前記現在のセクションに対する１以上の予測パラメータの第２集合を決定するステップと、
ｄ）予測パラメータの前記第１集合を予測パラメータの前記第２集合と比較し、前記第２集合にはない前記第１集合からの１以上のパラメータ値を特定する情報を含む予測パラメータの第３集合を特定するステップと、
ｅ）前記変換係数の集合と予測パラメータ値の前記第３集合を送信し、予測パラメータ値の前記第１集合および前記第２集合の両方に共通する１以上のパラメータは送信を省略するステップとを含むことを特徴とする方法。
【請求項２】
前記第１集合、第２集合および第３集合における前記１以上の予測パラメータ値は３次元動きベクトルの１以上の成分を含む請求項１の方法。
【請求項３】
ステップｂ）はイントラ予測を用いて３次元動きベクトルを決定するステップを含む請求項２の方法。
【請求項４】
ステップｂ）はインター予測を用いて３次元動きベクトルを決定するステップを含む請求項２の方法。
【請求項５】
前記３次元動きベクトルは、前記現在のセクションの３次元並進運動を特徴づける３パラメータのベクトルを含む請求項２の方法。
【請求項６】
前記３次元動きベクトルは、前記現在のセクションの３次元回転運動を特徴づける３パラメータのベクトルを含む請求項２の方法。
【請求項７】
前記第１集合、第２集合および第３集合における前記１以上の予測パラメータ値は前記現在のセクションにおけるクロミナンスと輝度を特徴づける３パラメータのベクトルを含む請求項１の方法。
【請求項８】
前記第１集合、第２集合および第３集合における前記１以上の予測パラメータ値は前記現在のセクションにおける光拡散を特徴づける１つのパラメータを含む請求項１の方法。
【請求項９】
前記第１集合、第２集合および第３集合における前記１以上の予測パラメータ値は前記１以上の予測パラメータ値とともに使われる参照セクションを特定する１つのパラメータを含む請求項１の方法。
【請求項１０】
ステップｅ）はさらに、デコーダが前記第３集合から省略されたパラメータを探索することのできる値の範囲を送信するステップを含む請求項１の方法。
【請求項１１】
ステップｅ）はさらに、デコーダが前記第３集合から省略されたパラメータを探索することのできる範囲の近傍ピクセルのインデックスを送信するステップを含む請求項１の方法。
【請求項１２】
前記第３集合は、前記第１集合における１以上の値と前記第２集合における１以上の対応する値の差分の集合を含む請求項１の方法。
【請求項１３】
３次元動き補償を用いてデジタルピクチャの現在のセクションを符号化するための装置であって、
プロセッサと、
メモリと、
前記メモリに具体化され、前記プロセッサで実行可能なコンピュータコードのインストラクションとを含み、
前記コンピュータコードのインストラクションは、３次元動き補償を用いてデジタルピクチャの現在のセクションを符号化／復号するための方法を実装するように構成されており、前記方法は、
ａ）エンコーダを用いてデジタルピクチャの現在のセクションに対する予測誤差の集合から変換係数の集合を生成するステップと、
ｂ）前記エンコーダを用いて前記デジタルピクチャの前記現在のセクションに対する１以上の予測パラメータの第１集合を決定するステップと、
ｃ）予測されたピクセルと１以上の以前に復号されたセクションの予測誤差値を用いてデコーダエミュレータにおいて前記デジタルピクチャの前記現在のセクションに対する１以上の予測パラメータの第２集合を決定するステップと、
ｄ）予測パラメータの前記第１集合を予測パラメータの前記第２集合と比較し、前記第２集合にはない前記第１集合からの１以上のパラメータ値を特定する情報を含む予測パラメータの第３集合を特定するステップと、
ｅ）前記変換係数の集合と予測パラメータ値の前記第３集合を送信し、予測パラメータ値の前記第１集合および前記第２集合の両方に共通する１以上のパラメータは送信を省略するステップとを含むことを特徴とする装置。
【請求項１４】
前記第１集合、第２集合および第３集合における前記１以上の予測パラメータ値は３次元動きベクトルの１以上の成分を含む請求項１３の装置。
【請求項１５】
ステップｂ）はイントラ予測を用いて３次元動きベクトルを決定するステップを含む請求項１４の装置。
【請求項１６】
ステップｂ）はインター予測を用いて３次元動きベクトルを決定するステップを含む請求項１４の装置。
【請求項１７】
前記１以上の予測パラメータ値は、前記現在のセクションの３次元移動を特徴づけるベクトルを含む請求項１３の装置。
【請求項１８】
前記１以上の予測パラメータ値は、前記現在のセクションの３次元回転運動を特徴づけるベクトルを含む請求項１３の装置。
【請求項１９】
前記１以上の予測パラメータ値は、前記現在のセクションにおけるクロミナンスと輝度を特徴づけるベクトルを含む請求項１３の装置。
【請求項２０】
前記１以上の予測パラメータ値は前記現在のセクションにおける光拡散を特徴づける１つのパラメータを含む請求項１３の装置。
【請求項２１】
前記１以上の予測パラメータ値は前記３次元動きベクトルとともに使われる参照セクションを示す１つのパラメータを含む請求項１３の装置。
【請求項２２】
前記情報は、デコーダが省略されたパラメータを探索することのできる値の範囲を特定する請求項１３の装置。
【請求項２３】
ステップｅ）は、デコーダが省略されたパラメータを探索することのできる範囲の近傍ピクセルのインデックスを送信するステップを含む請求項１３の装置。
【請求項２４】
ステップｅ）は、前記第１集合における１以上の値と前記第２集合における１以上の対応する値の差分を送信するステップを含む請求項１３の装置。
【請求項２５】
コンピュータプログラム製品であって、
コンピュータ読み取り可能なプログラムコードが具体化された一過性でないコンピュータ読み取り可能な記録媒体を含み、
前記プログラムコードは、実行されたときに、３次元動き補償を用いてデジタルピクチャの現在のセクションを符号化／復号するための方法を実装するコンピュータ実行可能なインストラクションを含み、前記方法は、
ａ）エンコーダを用いてデジタルピクチャの現在のセクションに対する予測誤差の集合から変換係数の集合を生成するステップと、
ｂ）前記エンコーダを用いて前記デジタルピクチャの前記現在のセクションに対する１以上の予測パラメータの第１集合を決定するステップと、
ｃ）予測されたピクセルと１以上の以前に復号されたセクションの予測誤差値を用いてデコーダエミュレータにおいて前記デジタルピクチャの前記現在のセクションに対する１以上の予測パラメータの第２集合を決定するステップと、
ｄ）予測パラメータの前記第１集合を予測パラメータの前記第２集合と比較し、前記第２集合にはない前記第１集合からの１以上のパラメータ値を特定する情報を含む予測パラメータの第３集合を特定するステップと、
ｅ）前記変換係数の集合と予測パラメータ値の前記第３集合を送信し、予測パラメータ値の前記第１集合および前記第２集合の両方に共通する１以上のパラメータは送信を省略するステップとを含むことを特徴とするコンピュータプログラム製品。
【請求項２６】
１以上のデジタルピクチャの１以上の符号化されたセクションを表すデータを含む１以上のデータパケットを復号するピクチャ復号方法であって、前記１以上のデータパケットは変換係数の集合と予測パラメータの部分集合を含み、前記方法は、
ａ）デコーダを用いて前記変換係数に逆変換を適用して予測誤差値の集合を生成するステップと、
ｂ）予測されたピクセルの集合と前記１以上のデジタルピクチャの１以上の以前に復号されたセクションの予測誤差値とを用いて前記デコーダにおいて１以上の推定された予測パラメータを生成するステップと、
ｃ）予測パラメータの前記部分集合から１以上の対応する予測パラメータを用いて前記デコーダにおいて１以上の前記推定された予測パラメータ値を置換し、予測パラメータの出力集合を生成するステップと、
ｄ）予測誤差値の前記集合と予測パラメータの前記出力集合を用いて前記デコーダにおいて１以上の復号されたセクションを生成するステップとを含むことを特徴とする方法。
【請求項２７】
ディスプレイにおいて前記１以上の復号されたセクションが含まれる１以上の復号されたデジタルピクチャを表示するステップをさらに含む請求項２６の方法。
【請求項２８】
ステップａ）は、前記予測誤差値から最良の前方変換を決定するステップと、前記変換係数に対応する逆変換を適用するステップとを含む請求項２６の方法。
【請求項２９】
ステップａ）は、前記１以上のデジタルピクチャの第１セクションに対する変換係数にデフォルトの逆変換を適用するステップを含む請求項２６の方法。
【請求項３０】
予測パラメータの前記部分集合は３次元動きベクトルの１以上の成分を含む請求項２６の方法。
【請求項３１】
前記１以上のデータパケットは値の範囲を含み、ステップｄ）は、省略された予測パラメータを前記範囲内で探索するステップを含む請求項２６の方法。
【請求項３２】
予測パラメータの前記部分集合は近傍ピクセルのインデックスを含み、ステップｃ）は、前記インデックスを用いて前記部分集合から省略された予測パラメータを探索するステップを含む請求項２６の方法。
【請求項３３】
予測パラメータの前記部分集合は予測値の差分の集合を含み、ステップｃ）は、前記差分を前記推定された予測パラメータ値と結合するステップを含む請求項２６の方法。
【請求項３４】
３次元動き補償を用いてデジタルピクチャの現在のセクションを復号するための装置であって、
プロセッサと、
メモリと、
前記メモリに具体化され、前記プロセッサで実行可能なコンピュータコードのインストラクションとを含み、
前記コンピュータコードのインストラクションは、１以上のデジタルピクチャの１以上の符号化されたセクションを表すデータを含む１以上のデータパケットを復号する方法を実装するように構成されており、前記１以上のデータパケットは変換係数の集合と予測パラメータの部分集合を含み、前記方法は、
ａ）デコーダを用いて前記変換係数に逆変換を適用して予測誤差値の集合を生成するステップと、
ｂ）予測されたピクセルの集合と前記１以上のデジタルピクチャの１以上の以前に復号されたセクションの予測誤差値とを用いて前記デコーダにおいて１以上の推定された予測パラメータを生成するステップと、
ｃ）予測パラメータの前記部分集合から１以上の対応する予測パラメータを用いて前記デコーダにおいて１以上の前記推定された予測パラメータ値を置換し、予測パラメータの出力集合を生成するステップと、
ｄ）予測誤差値の前記集合と予測パラメータの前記出力集合を用いて前記デコーダにおいて１以上の復号されたセクションを生成するステップとを含むことを特徴とする装置。
【請求項３５】
コンピュータプログラム製品であって、
コンピュータ読み取り可能なプログラムコードが具体化された一過性でないコンピュータ読み取り可能な記録媒体を含み、
前記プログラムコードは、実行されたときに、１以上のデジタルピクチャの１以上の符号化されたセクションを表すデータを含む１以上のデータパケットを復号する方法を実装するコンピュータ実行可能なインストラクションを含み、前記１以上のデータパケットは変換係数の集合と予測パラメータの部分集合を含み、前記方法は、
ａ）デコーダを用いて前記変換係数に逆変換を適用して予測誤差値の集合を生成するステップと、
ｂ）予測されたピクセルの集合と前記１以上のデジタルピクチャの１以上の以前に復号されたセクションの予測誤差値とを用いて前記デコーダにおいて１以上の推定された予測パラメータを生成するステップと、
ｃ）予測パラメータの前記部分集合から１以上の対応する予測パラメータを用いて前記デコーダにおいて１以上の前記推定された予測パラメータ値を置換し、予測パラメータの出力集合を生成するステップと、
ｄ）予測誤差値の前記集合と予測パラメータの前記出力集合を用いて前記デコーダにおいて１以上の復号されたセクションを生成するステップとを含むことを特徴とするコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、デジタルビデオに関し、特にビデオ符号化規格を実装するための方法と装置に関する。
【背景技術】
【０００２】
デジタル信号圧縮が多くのマルチメディアアプリケーションおよびデバイスで広く使用されている。コーダ／デコーダ（コーデック）を使用したデジタル信号圧縮によって、オーディオまたはビデオ信号などのストリーミングメディアをインターネット上で送信したり、コンパクトディスク上に格納することが可能になる。Ｈ．２６１、Ｈ．２６３、ＤＶ、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、ＶＣＬ、およびＡＶＣ（Ｈ．２６４）を含めて、多数の異なるデジタルビデオ圧縮規格が登場している。これらの規格ならびに他のビデオ圧縮技術は、与えられたピクチャ及び／又は連続するピクチャ内の空間的及び時間的冗長性を除去するか低減することによって、ビデオフレームピクチャを効率的に表現することを追求している。このような圧縮規格を使用することによって、ビデオコンテンツが高度に圧縮されたビデオビットストリームとなって伝送され、従って、効率良くディスクに保存したり、ネットワークを介して送信することができるようになる。
【０００３】
Ｈ．２６４としても知られるＭＰＥＧ−４  ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）は、先行規格よりもはるかに高い圧縮率を提供するビデオ圧縮規格である。Ｈ．２６４規格は、以前のＭＰＥＧ−２規格の２倍までの圧縮を提供することが期待される。Ｈ．２６４規格はまた、知覚品質の向上を提供することが期待される。結果として、より多くのビデオコンテンツがＡＶＣ（Ｈ．２６４）で符号化されたストリームの形式で配信されている。２つのライバルＤＶＤフォーマットであるＨＤ−ＤＶＤフォーマットとブルーレイディスク（商標）フォーマットは、必須プレーヤー機能としてＨ．２６４／ＡＶＣハイプロファイルの復号をサポートする。ＡＶＣ（Ｈ．２６４）コーディングは、ISO/IEC 14496-10:2009, "Information technology -- Coding of audio-visual objects -- Part 10: Advanced Video Coding, Edition 5", 5/13/2009に詳細に記述されており、その内容は参照により本明細書に組み込まれる。当該文献はＵＲＬ：http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=52974からダウンロードできる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
Ｈ．２６４の前身（ＭＰＥＧ−２）は、参照ピクチャから現在のピクチャを予測した構造を有していた。この規格は、現在のピクチャと以前のピクチャ間のデータ依存性を削除するためのツールを提供した。具体的には、ＭＰＥＧ−２は、以前のピクチャと現在のピクチャとの間でピクセルグループを移動させるための２次元動きベクトルを算出した。Ｈ．２６４は、１６×１６ブロック内で多くの動きベクトルを見つける。現在のピクチャは以前のピクチャのピクセルに類似しているピクセルの束を持つ。アイデアとして、ピクセルの塊が以前のピクチャのある場所から現在のピクチャの別の場所に移動したと考える。各１６×１６ブロック内で動きがあるかもしれない。Ｈ．２６４は、各１６×１６ブロック内の多くの動きベクトルを符号化することができる。最終的に動きベクトルの数はピクセルの数を超えるため、ピクセル毎に動きベクトルを符号化することは現実的ではない。そのような場合は、動きベクトルの代わりにピクセルを伝送することが好ましいであろう。したがって、動きベクトルの数とピクセルの数との間にはトレードオフがある。Ｈ．２６４は、４×４ブロックのピクセルのような小さなピクセルグループに対して動きベクトルを符号化する。この規格はピクセルと動きベクトルの間でよくバランスが取られている。しかし、それ以外では、Ｈ．２６４は基本的にＭＰＥＧ−２と同じプロセスおよび同じデータフローを用いる。
【０００５】
本発明の実施の形態はこのような文脈の中で生じた。
【課題を解決するための手段】
【０００６】
本発明のある態様は、デジタルピクチャの現在のセクションを符号化する方法であって、ａ）エンコーダを用いてデジタルピクチャの現在のセクションに対する予測誤差の集合から変換係数の集合を生成するステップと、ｂ）前記エンコーダを用いて前記デジタルピクチャの前記現在のセクションに対する１以上の予測パラメータの第１集合を決定するステップと、ｃ）予測されたピクセルと１以上の以前に復号されたセクションの予測誤差値を用いてデコーダエミュレータにおいて前記デジタルピクチャの前記現在のセクションに対する１以上の予測パラメータの第２集合を決定するステップと、ｄ）予測パラメータの前記第１集合を予測パラメータの前記第２集合と比較し、前記第２集合にはない前記第１集合からの１以上のパラメータ値を特定する情報を含む予測パラメータの第３集合を特定するステップと、ｅ）前記変換係数の集合と予測パラメータ値の前記第３集合を送信し、予測パラメータ値の前記第１集合および前記第２集合の両方に共通する１以上のパラメータは送信を省略するステップとを含む。
【図面の簡単な説明】
【０００７】
本発明の実施の形態は、添付の図面と併せて、以下の詳細な説明を考慮すれば容易に理解できる。
【図１Ａ】本発明の実施の形態のコンテキストにおけるビデオピクチャの１つのありうる分割を説明する概略図である。
【図１Ｂ】本発明の実施の形態に係るデジタルピクチャの符号化を説明するフローダイアグラムである。
【図１Ｃ】本発明の実施の形態に係るデジタルピクチャの復号を説明するフローダイアグラムである。
【図２Ａ】本発明の実施の形態に係るデジタルピクチャ符号化を説明するフローダイアグラムである。
【図２Ｂ】本発明の実施の形態に係るデジタルピクチャ復号を説明するフローダイアグラムである。
【図３】ストリーミングデータ復号における一般的な処理を説明するフローダイアグラムである。
【図４】本発明の実施の形態に係る動きベクトルパラメータを決定する方法を説明するブロックダイアグラムである。
【図５】本発明の実施の形態に係るデジタルピクチャの符号化および／または復号のための装置を説明するブロックダイアグラムである。
【図６】本発明の実施の形態に係るデジタルピクチャの符号化および／または復号のための装置のセルプロセッサ実装の例を説明するブロックダイアグラムである。
【図７】ビデオ符号化または復号の過程での３次元動き補償を実装するためのインストラクションが含まれた持続的なコンピュータ読み取り可能な記録媒体を説明する。
【発明を実施するための形態】
【０００８】
以下の詳細な説明には、説明のための多くの具体的な詳細事項が含まれるが、それらに対する多くの変更や修正も本発明の技術範囲に含まれることは、当業者であれば誰でも理解するであろう。したがって、以下に説明する本発明の好適な実施形態は、クレームされた発明の普遍性をなんら損なうことなく、また限定も行うことなく記載されている。
【０００９】
はじめに
デジタルビデオの新たな符号化規格を開発する際、各デジタルビデオフレームのための情報を伝送するために必要なビット数を減少させることが望ましい。一般的に、ビデオフレームは、ピクセルの二次元配列で表される画像である。各画素は、強度（輝度）の値と１以上の色（色差）の値を有する。一例として、典型的なビデオ信号は、２つのクロミナンス値、Ｃｂ（青色差）およびＣｒ（赤色差）を有する。符号化および復号の目的のために、画像は、典型的には異なるサイズのピクセルグループに分解される。
【００１０】
一例として、限定するものではないが、図１に示すように、単一のデジタルビデオピクチャ１００（例えば、デジタルビデオフレーム）は１以上のセクションに分解してもよい。本明細書で使用される用語「セクション」は、ピクチャ１００内の１以上のピクセルのグループを指す。セクションはピクチャ内の単一のピクセルからピクチャ全体までの範囲とすることができる。セクションの限定しない例として、スライス１０２、マクロブロック１０４、サブマクロブロック１０６、ブロック１０８および個々のピクセル１１０がある。図１Ａに示すように、各スライス１０２は、マクロブロック１０４の１以上の行またはそのような１以上の行の部分を含む。ある行のマクロブロックの数は、マクロブロックのサイズとピクチャ１００のサイズおよび解像度に依存する。例えば、各マクロブロックに１６×１６ピクセルが含まれる場合、各行におけるマクロブロックの数は、ピクチャ１００の幅（ピクセル単位）を１６で割ることによって決定することができる。各マクロブロック１０４を一定数のサブマクロブロック１０６に分解してもよい。各サブマクロブロック１０６を一定数のブロック１０８に分解してもよく、各ブロックは一定数のピクセル１１０を含む。一例として、本発明を限定することなく、一般的なビデオ符号化方式では、各マクロブロック１０４は４つのサブマクロブロック１０６に分解される。各サブマクロブロックは４つのブロック１０８に分解され、各ブロックは、４×４配列の１６ピクセル１１０を含む。
【００１１】
従来、デジタルビデオ画像は、各ピクチャの復号又は各スライスの復号に対して単一のスレッドを使用して復号されている。従来のシングルスレッドのデコーダでは１つのマクロブロックのためのすべての復号タスクは次のマクロブロックの復号前に完了する。マルチスレッド化されたピクチャ復号、すなわち並列に複数のピクチャを復号することも行われている。ピクチャ内のマルチスレッド化された復号を容易にするために、各ピクチャ１００は、１以上のスライスを包含する２以上のサブユニット１１２に分解される。本発明の実施の形態では、スライス１０２が、隣接サブユニット１１２間の境界を「跨ぐ」ことがありうる。このように、スライスは、２つの異なるサブユニット間で共有されてもよい。
【００１２】
なお、各ピクチャは、フレームまたはフィールドのいずれかであることに留意されたい。フレームは、完全な画像を指す。フィールドは、あるタイプのディスプレイデバイス上での画像の表示を容易にするために使用される画像の部分である。一般に、画像内のピクセルは、行単位に配置されている。表示を容易にするために、時には、ピクセルの行を交互に２つの異なるフィールドに置くことによって画像を分割することができる。そして、二つのフィールドのピクセルの行は、完全な画像を形成するためにインタレースされる。例えば、陰極線管（ＣＲＴ）ディスプレイなどのいくつかのディスプレイ装置では、２つのフィールドは単に、急速に連続して次々と表示される。ＣＲＴ画面で使用される蛍光体の残光は映像結果の持続性と組み合わされた結果、２つのフィールドが連続した画像として認識される。液晶ディスプレイなどの他の表示装置については、表示する前に、単一のピクチャに２つのフィールドをインタレースする必要があるかもしれない。符号化された画像を表すストリーミングデータは、典型的にはピクチャがフィールドであるかフレームであるかを示す情報を含む。このような情報は、画像に対するヘッダに含まれてもよい。本発明の実施の形態は、ビデオコーデックが、ピクチャをフィールドに分割することなく、現在処理中のピクチャ内の冗長性を見つけることを可能にする。
【００１３】
ピクセル予測は、圧縮に対してビデオコンテンツの冗長性を活用するために使用される技術である。例えば、従来技術のビデオ符号化規格では、現在のピクセルブロックが２次元シフトを用いて以前に復号されたピクセルブロックによって予測することができれば、予測方法はインター予測（参照ブロックが異なる画像からである場合）又はイントラ予測（参照ブロックが同一の画像からである場合）と呼ばれ、予測パラメータは、そのシフトを定義するために使用される二次元ベクトル（動きベクトルとして知られる）である。予測の後、予測誤差ピクセル（時には残差ピクセルと呼ばれる）は、いくつかのタイプの量子化変換（例えば、離散コサイン変換等のウェーブレット変換）を用いて、圧縮されたビデオストリームに符号化される。一般に、より複雑な予測方法は、予測パラメータを送信し、良好な予測結果を得るために多くのビットを必要とする。そして、ある時点で、良好で複雑な予測を送信するために使われるビット数は、残留ピクセル値によって節約されたビット数を超えてしまう。この時点では、より良好でより複雑な予測はもはや正当化されなくなる。
【００１４】
Ｈ．２６１、Ｈ．２６３、ＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４、およびＨ．２６４／ＡＶＣのような多くの確立されたビデオ圧縮規格はピクセル予測を使用する。これらの従来技術のビデオ符号化規格のすべてにおいて、予測方法、ビットコスト、および予測結果の正確性の間の最良のバランスを探索するのはエンコーダの責任である。次に、エンコーダは、ピクセル再構成のためにデコーダに予測パラメータと残差ピクセルの両方を送信し、多数のビットを必要とする。このように、予測パラメータを送信する際の効率は非常に悪く、従来技術のビデオ規格で利用可能な最も複雑な予測方法は、単純な２次元シフトである。
【００１５】
より正確な予測方法を実現するためにデコーダにエンコーダの責任を移すことは、予測パラメータの探索における計算の複雑さが非常に高いため、過去に解決策として失敗した。そのようなタスクを処理するために低コストのハードウェア又は汎用ＣＰＵを使用することは現実的ではない。これは、ピクセル予測方法を単純な２次元シフトに制限することの決定的な理由である。このように、より複雑な予測方法を開発する動機はこれまで少なかった。
【００１６】
しかしながら、ＧＰＵが安価になり、より柔軟になるにつれ、３次元ベースの予測方法が近い将来に実現可能となるであろう。３次元ビデオ圧縮に対しては、３次元モーションベースの予測は、現在の２次元マルチビュー（多視点）解決よりもはるかに魅力的である。マルチビュー（多視点）ビデオストリーム内の各ビューは、２次元ピクチャシーケンスである。マルチビュービデオストリームは、３次元ビデオコンテンツを伝送するために使用することができる。マルチビューは、例えば、スポーツイベントを記録する複数のカメラからの出力を送信するためなど、他のビデオコンテンツを伝送するために使用することもできる。マルチビュービデオを３次元ビデオのために使用する場合、各ビューストリームは異なる視野角を代表する。したがって、最も単純な３次元ビデオマルチビューストリームは２つのビューをもつ。２つのビューが使用される場合、視聴者の左右の目が異なるビューを知覚して３次元を体験できるように、視聴者はシャッター眼鏡を使用しなければならない。あるいは、３次元ビデオシステムは、眼鏡なしで３次元を体験するために単一視点に固定された異なるビューの画像を提示することができる。しかし、眼鏡なしの３次元ビデオを実用的にするために、多くのビューが使用される傾向がある。ビデオストリームにおけるビューの数が増加するにつれて、マルチビュー符号化は、真の３次元ピクチャ符号化よりも非効率になっていく。従って、３次元運動パラメータを送信するために必要なビット数は、２次元の動きの場合に比べて１０倍以上となりうる。本発明の方法は、３次元予測パラメータを符号化するために必要なビット数を減らすように設計されている。
【００１７】
ピクセル予測と再構築の基礎は、以下の例によって説明することができる。カメラがビデオシーケンスを構成するとき、所定の時間期間ごとに一度、レンズを通して光子を収集する。これらの光子は、カメラの前の多数の物体の表面によって放出される。これらの物体表面の質感や形状の類似度は画像内の冗長性と呼ばれる。二つの時間インスタンス間の類似度は、画像間の冗長性と呼ばれる。イントラ類似性又はインター類似性を発見し、これらの類似度を用いてピクセル予測を行うために、重要なことは、２つの類似した物体表面間の関係を見出すことである。
【００１８】
現在、二次元動き補償を用いたピクセル予測及び再構築は、Ｈ．２６４と同じ基本的なプロセスを使用してさらに最適化することはできない。根本的な変更が必要である。基本的な変更の背後にある二つのありうる概念は、（Ａ）できるだけ多くのピクセルを符号化するために単一の動きベクトル（または他の予測パラメータ）を使用すること、および／または（Ｂ）動きベクトル（または他の予測パラメータ）を符号化するために必要なビット数を減らすことである。
【００１９】
できるだけ多くのピクセルを符号化するための単一の動きベクトルの使用方法を説明するために、次の例を考えてみる。一例として、限定するものではないが、画像に回転する車輪が含まれている状況を考える。車輪が回転すると、車輪の異なる部分が異なる速度で異なる方向に移動する。従来の符号化規格では、車輪は、多数の小グループのピクセルに分解されるであろうし、各グループは異なる２次元動きベクトルを必要とするであろう。これは、車輪の動きを表現するために、多数の動きベクトルを必要とし、それぞれの動きベクトルが個々の小グループのピクセルの二次元の動きを記述する必要がある。
【００２０】
車輪の動きを表現するために必要な２次元動きベクトルの数を減らすために、車輪は、２次元空間に投影された３次元オブジェクトとして扱うことができる。ここでは、ホイールが回転および並進運動のパラメータを含む３次元動きベクトルを用いて符号化することができる。このシナリオでは、３次元動きベクトルがより多くのピクセルを対象とすることから、車輪の動きを記述するために必要となる動きベクトルの数を削減することができる一方、追加のパラメータが各３次元動きベクトルに関係するために各３次元動きベクトルがより多くの送信ビット数を必要とすることになるというトレードオフがある。
【００２１】
多くのビデオデバイス上の既存のハードウェアサポート（例えば、グラフィックス処理ユニットすなわちＧＰＵ）は、非常に良好な３次元回転運動表現、３次元並進運動表現、および３次元スケーリングを有する。３次元動きベクトルを用いて画像間の動きを符号化することにより、より複雑な（例えば、より多くのパラメータをもつ）動きベクトルが得られるが、動きを表現するには全体的としてはるかに少ない動きベクトルが得られる。さらに、２次元画像に３次元情報を投影することにより、スケーリングと３次元ベクトルに関連付けられた回転パラメータとの間で冗長性が生まれる。したがって、これらのパラメータのいずれかを符号化処理過程でスキップすることにより、この予測方法の複雑さを軽減することができる。
【００２２】
３次元動きベクトルをパラメータ化するために３次元平行移動、回転、拡大縮小を使用することに加えて、動きベクトルは、色特性を符号化することができる。これには、光強度（すなわち、クロミナンスと輝度）を表すための３パラメータのベクトルと光拡散を表す１つのパラメータが含まれる。光強度パラメータは、画像全体にわたって安定している可能性が高い。例えば、ピクチャの照明がより赤みを帯びた場合、全ての画素の色差値を等しい（または確定可能な）量だけ赤方向にシフトすることができる。同様に、拡散（すなわち、画像中のぼけ）は画像全体で一定である可能性が高い。このように、エンコーダは、異なるセクションに対する動きベクトルから冗長な情報を除去することにより、この情報を符号化するために必要なビット数を大きく減らすことができる。
【００２３】
上記の例を踏まえ、同一画像内または独立した画像内のどちらかの２以上の場所に現れる表面は、照明条件の変化と相まって、３次元運動として表現してもよい。２次元画像圧縮にとっては、この移動は、３次元シフトに３次元回転を加えたものとして特徴付けることができる。照明条件は、光強度ベクトルによって特徴づけられる。３次元シフトは、３パラメータのベクトルとしてパラメータ化することができる。３つの回転軸に沿った３次元回転は、同様に、３パラメータのベクトルとしてパラメータ化することができる。光強度ベクトルは３パラメータのベクトルとしてパラメータ化することができる。２つのパラメータはクロミナンスを表す２つの色差成分（すなわち、青輝度と赤輝度）を表すために使用され、もう一つのパラメータは輝度を表す。また、３次元動きベクトルは、光拡散を記述するもう一つのパラメータと、最後に、３次元動きベクトルを構築するために使われる参照画像を指すパラメータ（このパラメータは、イントラ符号化には不要である）を有してもよい。３次元動きベクトルは、高精度なピクセル予測方法に役立つ１１のパラメータによって特徴付けられる。これら１１のパラメータは３次元面運動の２次元投影を定義するためにだけ使用されることに留意することが重要である。真の３次元の動きを表現するためにはより多くのパラメータが必要となる。
【００２４】
単一の複雑な３次元動きベクトルをもつ多数のピクセルを表現するには、きわめて多くのビットの伝送が必要になるため、ピクセル予測と再構築を根本的に変更することの背後にある第２の概念には、与えられたビデオストリームを符号化するのに必要な合計ビット数を減少させることが含まれる。ビット数を減らすために、エンコーダは、ビデオストリーム内のデジタル画像の特定のセクションの符号化過程で動きベクトルをスキップすることができるかどうかを判断するためにデコーダエミュレータを使用することができる。デコーダエミュレータは、以前に復号された画像を使用して処理中である現在のセクションに対する動きベクトルを独立に決定することのできるデコーダの能力をシミュレートする。
【００２５】
デコーダエミュレータが動きベクトルに関連付けられたパラメータの十分な部分を確立することができる場合、動きベクトル全体を符号化処理の過程でスキップすることができる。代わりに、必要なビット数が大幅に少ないガイドラインを動きベクトルの探索を容易にするためにデコーダに送信することができる。例として、限定するものではないが、これらのガイドラインには次の内容が含まれる。１）最も正確な動きベクトルを表すパラメータを配置するべき範囲の集合をデコーダに与えること；２）特定の隣接するピクセルにデコーダの動きベクトル探索を拘束すること；３）エンコーダの予測パラメータ値（例えば、動きベクトル）とデコーダエミュレータの対応する予測パラメータ値の間の差（Δ）を送信すること；または４）動きベクトルを探索するためにデコーダが使用するセクションのサイズを変更すること。なお、これらの同じ概念を、フィルタパラメータ、拡散、クロミナンス、および輝度値のような動きベクトル以外の予測パラメータに適用してもよいことに留意されたい。
【００２６】
デコーダエミュレータが、動きベクトルに関連付けられたすべてのパラメータを確立することができる場合、付加的な情報（および不必要なビット）をデコーダに送信する必要はなくなるであろう。
【００２７】
ピクセル予測は、多くのビデオ圧縮アルゴリズムの基礎である。本発明の方法では、デコーダが、以前に復号されたピクセルを探索することにより、これらのパラメータを取得することができるのであれば、エンコーダは、特定のピクセルの予測制御パラメータの送信をスキップすることができる。代わりに、予測パラメータの調整と予測誤差ピクセルだけが送信される。予測パラメータをスキップすることにより、本発明の実施の形態は、イントラ符号化ピクチャとインター符号化ピクチャの両方に対して非常に複雑で正確な３次元ピクセル予測が可能になり、非常に効果的に圧縮されたビデオストリームを得ることができる。この方法はまた、３次元ビデオ圧縮のための現在の多視点符号化方式よりもスケーラビリティがある。
【００２８】
本発明の実施の形態では、エンコーダは、予測されたピクセル値の集合を得るために、ピクチャのセクションに予測パラメータ値（例えば、動きベクトルの成分）の第１集合を適用する。当該セクションに対する元のピクセル値から、予測されたピクセル値を差し引くことにより、予測誤差（時には残差ピクセルとも呼ばれる）を生成することができる。前方（順方向）変換が予測誤差に適用され、変換係数の集合が生成される。通常は変換係数と予測パラメータが復号のために送信される。本発明の実施の形態では、エンコーダ側のデコーダエミュレータは、変換係数と、同じ画像か別の画像から以前に復号化されたセクションとを使用して、予測パラメータ（例えば、動きベクトルの成分）の第２集合を決定することができる。予測パラメータの２つの集合を互いに比較して、第２集合の任意のパラメータ値が第１集合の対応する値と一致するかどうかを決定することができる。なお、第２集合内の任意の一致する値は、予測誤差からデコーダによって生成されうることを想定することができる。第２集合において対応する一致する値を持たない第１集合の任意の値は、デコーダ側に予測パラメータ値の第３集合として送信される。一致する値は、デコーダ側に送信される予測パラメータ値の第３集合から省略することができ、それによってこれらのパラメータ値を送信するために必要なビット数を削減することができる。
【００２９】
デコーダ側は、変換係数及び符号化セクションに対応する予測パラメータ（空集合であってもよい）の部分集合を受信する。次いで、デコーダは、セクションに対する予測誤差値を生成するために変換係数に逆変換を適用する。デコーダは、予測誤差値、以前に復号されたセクション、および部分集合における任意の省略されていない予測パラメータ値を使用して、セクションに対するピクセル値を復号する。
【００３０】
一例として、これに限定しないが、図１Ｂは、予測パラメータをスキップしながらデジタルピクチャを符号化するための処理フロー１２０の例を示す。この例では、異なる前方変換をピクチャ内の各セクションに適用することができる。符号１２２に示すように、エンコーダ上のデコーダエミュレータ１２５は、オプションとして、ピクチャ内のセクション（たとえば左上のブロックまたはマクロブロック）に対する入力予測誤差１２８に前方変換を適用し、変換係数１２４の集合および変換パラメータ（たとえば動きベクトル）を生成することができる。ある実施の形態では、前述のように、エンコーダはピクチャ内の第１セクションにデフォルトの前方変換１２１を適用し、他のセクションに対して最良の変換を決定してもよい。現在のセクションが第１セクションでない場合、デフォルトの前方変換１２１は、以前のセクションに対するデコーダエミュレータの結果から決定してもよい。
【００３１】
いったん前方変換が適用されると、デコーダエミュレータ１２５は、符号１２６に示すように、結果として得られる変換係数に対応する逆変換を適用し、予測誤差１２８’（たとえば残差ピクセル値）を生成することができる。デコーダエミュレータ１２５によって生成された予測誤差１２８’は、チェックとして入力予測誤差１２８と比較される。デコーダエミュレータ１２５はその後、符号１３０に示すように、以前デコードされた参照セクション１２９を用いて、１以上の推定された予測パラメータ値１３１を生成する。デコーダエミュレータ１２５は、以前にデコードされた参照セクション１２９の予測ピクセル値および予測誤差値を用いて、現在のセクションに対する推定予測パラメータ値１３１を生成する。符号１３２に示すように、推定予測パラメータ値１３１を、符号化プロセスの別の部分においてエンコーダによって生成された入力予測パラメータ値１２３の集合と比較する。推定予測パラメータ値１３１を入力予測パラメータ値１２３と比較することで転送用の入力パラメータ値１３５を選択する。特に、対応する推定パラメータ値１３１と一致する入力パラメータ値１２３は転送する必要がない。対応する推定パラメータ値と一致しない入力パラメータ値は、変換係数１２４とともに転送用に選択される。選択された予測パラメータ１３５だけを転送することにより、転送ビット数を削減することができる。ある実装では、エンコーダエミュレータ１２５は、未来のセクション、たとえば、次のセクションに対する結果をチェックするために、現在のセクションに対する推定予測パラメータ１３１を用いてもよく、あるいは、現在のセクションに対する選択された推定予測パラメータ１３５を用いてもよい。
【００３２】
一例として、これに限定しないが、再構築されたピクセル値（予測ピクセル値に復号された予測誤差を足したもの）を、１以上の復号された参照セクション１２９からの参照ピクセル値と比較することで、動きベクトル（たとえば、３次元動きベクトル）を推定する。推定された動きベクトルの成分を、符号化プロセスの別の部分においてエンコーダによって生成された元の動きベクトルと比較する。デコーダエミュレータ１２５に生成された動きベクトルと一致しない元の動きベクトルの成分は、変換係数とともに転送用に選択される。
【００３３】
予測パラメータ値の全体集合（たとえば、全動きベクトル）は、ときどき、たとえば、以前に復号された適当なセクションがない場合、転送される。たとえば、まさに最初のピクチャパーティションに対しては、全動きベクトルを転送しなければならない。
【００３４】
与えられたピクチャの異なる部分に対して異なる変換がより良く作用することがあることに留意すべきである。最良の変換１２２を見つけるために、エンコーダは予測誤差に異なる前方変換を適用して異なる変換係数を生成してもよい。ある実施の形態では、最良の変換ループ１３６は、たとえばデコーダエミュレータ１２５内に実装される。最良の変換ループ１３６は、当該セクションに対して異なる前方変換を適用することによって取得された変換係数の異なる集合を比較し、未来のセクションに対して用いるべき最良の変換を決定する。一般的に、変換パラメータによって制御される変換候補のグループがある。デコーダエミュレータ１２５は、各特定のセクションに対する最良の変換パラメータを探索することができる。異なる変換パラメータを用いて出力係数のエントロピーを決定することができる。係数のエントロピーは、これらの係数を符号化するために必要なビット数に対応する。最低のエントロピーをもつ係数を生成する変換を、最良変換として選択することができる。転送コストの故に、以前のセクションに対する最良の変換パラメータだけを現在のセクションに対して用いる。すなわち、変換パラメータの転送をいつでもスキップすることができる。現在のセクションに対して最良変換ループ１３６によって決定される最良変換を、未来のセクションが存在するならその符号化に渡すことができる。ここでは「未来のセクション」という用語は次の意味をもつ。ある行の最初のセクション（たとえば、マクロブロックの行における最初のマクロブロック）に対して、未来のセクションには、同じ行における次のセクションと次の行における最初のセクション（もしあれば）が含まれる。行の最後のセクションに対しては未来のセクションはない。他のすべてのセクションについては、未来のセクションは同じ行の次のセクションである。
【００３５】
いったん最良の変換が選択されると、対応する変換パラメータを、推定予測パラメータ値の生成プロセスにおいて、未来のセクション（もしそれば存在すれば）に対する前方逆変換に適用することができる。符号１３８に示すように、選択された予測パラメータ１３５をデータパケット１３７に結合し、データパケット１３７を変換係数１２４とともに転送することができる。もっとも、最良の変換に対する変換パラメータは、データパケット１３７から省略することができる。処理はその後、次のセクションに対して繰り返される。
【００３６】
さらに、符号１３４において転送すべきパラメータを選択する際、デコーダエミュレータ１２５は、たとえば上述のような１以上の技術を用いて、転送されるパラメータデータのビット数をさらに減らしてもよい。特に、選択されたパラメータ値１３５は、特定のパラメータ値が設定される値の範囲の集合を含む。あるいは、動きベクトルの場合、選択されたパラメータ値は、デコーダによる動きベクトルの探索を参照セクション１２９内の特定のピクセルに制限する条件を含む。さらに、選択されたパラメータ値１３５は、エンコーダの予測パラメータ値（たとえば動きベクトル）とデコーダエミュレータの対応する予測パラメータ値の差分を含む。あるいは、予測パラメータ値は、デコーダが省略された予測パラメータを探索するために用いるセクションサイズを変更してもよい。たとえば、デコーダエミュレータ１２５は、より大きなあるいはより小さなセクションサイズが動きベクトル探索に用いられるならば、正しい動きベクトルが８×８ピクセルに対して正確に推定されうることを判定する。そのような場合、選択されたパラメータ値１３５は、デコーダが予測パラメータを探索するのに使うセクションサイズの指標を含んでもよい。
【００３７】
図１Ｃは、本発明の実施の形態にしたがってピクチャを復号するための処理フロー１４０の例を示す。デコーダは、ピクチャにおける符号化されたセクションに対する変換係数および選択されたパラメータを含む１以上のデータパケット１３７を受信する。その後、デコーダは、符号１４２に示すように変換係数に逆変換を施して、予測誤差１４３Ａを取得する。もしデコーダが、エンコーダ側のデコーダエミュレータ１２５と同じやり方で動作するなら、予測誤差１４３Ａは、エンコーダエミュレータ１２５によって生成された予測誤差１２８’に一致するはずである。
【００３８】
もしセクションがピクチャにおける第１セクションであるなら、デコーダは、オプションとして、変換係数に所定のデフォルト変換１４１を適用してもよい。さもなければ、後述のように、デコーダは、係数に異なる逆変換を施し、対応する異なる前方変換をその結果得られる予測誤差に適用し、その結果得られる推定係数を比較することにより最良の前方変換を決定する。最良の前方変換は、一般的に、最小ビット数の係数を与えるものである。
【００３９】
予測誤差１４３Ａを対応する予測ピクセル値１４３Ｂと結合することで再構築されたピクセル値を取得することができる。予測ピクセル値１４３Ｂは、（図示しない）復号処理の異なる部分における、以前に復号された参照セクション１２９に動きベクトルを適用することによって取得される。符号１４４に示すように、予測ピクセル１４３Ｂを用いて取得された以前に再構築されたピクセル値１４３Ｃと、予測誤差１４３Ａと、１以上の以前に復号された参照セクション１２９とを用いて予測パラメータ１４５を探索する。一例として、これに限定しないが、動きベクトル（たとえば３次元動きベクトル）を推定するために、再構築されたピクセル値１４３Ｃは、１以上の復号された参照セクション１２９からの参照ピクセル値と比較される。好ましくは、以前に復号された参照セクション１２９は、エンコーダ側におけるデコーダエミュレータによって使用されるものと同じである。これを容易にするために、データパケット１３７は、関連のある参照セクションを特定するデータを含む。デコーダは、符号１４６に示すように、選択された推定予測パラメータ１４５を、データパケット１３７に含まれる対応するパラメータの値で置き換えることによって、予測パラメータ１４７の出力集合を生成する。予測パラメータ１４７を用いて、未来のセクション（もし存在するなら）を復号してもよい。特に、予測パラメータ１４７を用いて未来のセクションに対する予測ピクセルを生成してもよい。
【００４０】
さらに、データパケット１３７における選択されたパラメータ値は情報を含み、その情報から省略された予測パラメータが推定されるか、または導出される。たとえば、データパケット１３７は、特定のパラメータ値が設定される値の範囲の集合を含む。あるいは、動きベクトルの場合、データパケットは、デコーダによる動きベクトルの探索を参照セクション１２９内の特定のピクセルに制限する条件を含む。さらに、データパケット１３７は、エンコーダの予測パラメータ値１２３（たとえば動きベクトル）と、デコーダエミュレータ１２５によって生成された対応する推定予測パラメータ値１３１との差分を含む。デコーダは、推定予測値パラメータ１４５に異なる値を結合させることによって（たとえば、各推定されたパラメータ値とその対応する差異値の足し算または引き算によって）予測パラメータ値１４７の出力集合を取得する。あるいは、予測パラメータ値は、デコーダが省略された予測パラメータを探索するために用いるセクションサイズを変更してもよい。たとえば、データパケット１３７は、デコーダが符号１４４において予測パラメータを推定するために用いるセクションサイズを含んでもよい。
【００４１】
上述したように、デコーダは、変換係数に異なる逆変換を適用し、ピクチャにおける未来のセクションに対して最良の変換を決定することができる。例えば、最良の変換ループ１４８は、上述のように、予測誤差１４３Ａに異なる前方変換を適用し、対応する変換係数を生成することができる。これは最良の変換ループ１４８は、図１Ｂに示すように、デコーダエミュレータ１２５上の最良の変換ループ１３６と本質的に同じ方法で動作することに留意されたい。各前方変換に対する結果は、最良の前方変換、例えば最小のビット数を有する変換係数を生成する前方変換を決定するために、相互に比較される。この処理は、正確な逆変換がデータパケットにおける入力係数に使用されたことを確認するために、変換パラメータ探索プロセス内で使用される。以前のピクチャセクションに対する最良の変換が、現在のピクチャに対しては最良のものではないこともあることに留意されたい。しかしながら、以前のセクションに対する最良の変換を現在のセクションに対して使用することができるならば、最良の変換パラメータを送信するビットコストを回避することができる。いったん最良の前方変換が見出されたなら、デコーダは、符号１５０で示すように、復号処理の異なる部分に対応する再構築されたピクセル１４３Ｃを出力し、通常の方法でそれらを使用することができる。後述するように、例えば、再構築されたピクセル１４３Ｃは、セクションの復号を完了するために用いることができる。その結果得られた復号されたセクションは、その後、復号ピクチャの一部として、ビデオディスプレイ、コンピュータモニタ、又はプリンタなどの表示装置により表示することができる。予測パラメータ１４７は、将来のセクション、例えば、次のセクションを復号するために使用することができる。
【００４２】
以上の説明から、以前のセクションに対して決定された最良の変換は、現在のセクションに対する変換係数を残差ピクセル（予測誤差）１４３Ａに変換するための逆変換を行うために使用することができることが理解される。このようにして、エンコーダが現在のピクチャに対する変換パラメータを送信する必要性を回避することができる。
【００４３】
本発明の実施の形態は、異なる符号化及び復号方法と組み合わせて使用することができる。本発明の実施の形態による一例として、イントラピクチャまたはインターピクチャは、図２Ａに示すように、方法２００に従って符号化される。エンコーダは、デジタル画像２０１を複数受信し、各画像を符号化する。デジタルピクチャ２０１の符号化は、セクションごとに進められる。各セクションの符号化処理は、必要に応じてパッディング２０２を含み、一般的に画像圧縮２０４及び動き補償２０６を含む。イントラ符号化ピクチャとインター符号化ピクチャの両方に共通の処理フローを容易にするために、符号２０２で示されているように、現在処理中のピクチャ２０１内の全ての未復号のピクセルは、オプションとして、一時的なピクセル値でパディングされ、パディングされたピクチャが生成されてもよい。パディングされたピクチャをバッファに格納された参照ピクチャ２０３のリストに追加する。符号２０２においてピクチャをパディングすることにより、画像圧縮２０４及び動き補償２０６の過程で後続の処理における参照画像として、現在処理中のピクチャを使用することが容易になる。ピクチャパディングについては、Jason N. Wang, "PICTURE ENCODING USING SAME-PICTURE REFERENCE FOR PIXEL RECONSTRUCTION"と題する米国特許出願１１／６２７，８６７号により詳細に説明されており、全体の内容は、参照により本明細書に組み込まれる。
【００４４】
本明細書で使用されるように、画像圧縮は、デジタル画像に対するデータ圧縮の適用を指す。画像圧縮２０４の目的は、圧縮データの効率的な形式でその画像のデータを格納又は送信できるようにするために、与えられた画像２０１に対する画像データの冗長性を低減することである。画像圧縮２０４は不可逆または可逆である。可逆圧縮は、しばしば、技術図面、アイコンや漫画のような人工画像に対して好ましい。これは、非可逆圧縮方法は、低ビットレートで使用される場合は特に、圧縮アーティファクトを生成するからである。可逆圧縮方法はまた、医療画像又は保管目的のために作られた画像スキャンなどの高価値コンテンツに対して好ましい。非可逆方法は、画像の忠実度の小さな（時にはごくわずかの）損失がビットレートの大幅な低減を達成するために許容されるアプリケーションにおける写真などの自然画像に特に適している。
【００４５】
可逆画像圧縮方法の例として、これらには限定されないが、ＰＣＸのデフォルトの方式として用いられ、ＢＭＰ、ＴＧＡ、ＴＩＦＦなどの１つの方法として用いられるランレングス符号化、エントロピー符号化、ＧＩＦやＴＩＦＦで用いられるＬＺＷなどの適応辞書アルゴリズム、ＰＮＧ、ＭＮＧおよびＴＩＦＦで使用されるデフレーションが含まれる。非可逆圧縮方法の例としては、ピクチャ２０１の色空間を画像における最も一般的な色に減らすこと、クロマサブサンプリング、変換符号化、およびフラクタル圧縮が含まれる。
【００４６】
色空間の削減の際、選択された色は、圧縮画像のヘッダにおいてカラーパレットで指定することができる。各ピクセルは、単にカラーパレットの色のインデックスを参照するだけである。この方法は、ポスタリゼーション（階調変更）を回避するためにディザリングと組み合わせることができる。クロマサブサンプリングは、画像内の色差情報の半分以上を落とすことにより、目が色よりも明るさをより鮮明に知覚するという事実を活用する。変換符号化は、おそらく最も一般的に使用される画像圧縮方法である。変換符号化は、典型的には、量子化とエントロピー符号化に続いて、離散コサイン変換（ＤＣＴ）やウェーブレット変換などのフーリエ関連変換を適用する。フラクタル圧縮は、特定の画像において、画像の一部が同じ画像の他の部分に似ているという事実に依存する。フラクタルアルゴリズムは、これらの部分、より正確には、幾何学的な形を、符号化画像を再生成するために使用される「フラクタル符号」と呼ばれる数学的データに変換する。
【００４７】
画像圧縮２０４は、画像２０１の特定の部分が他の部分よりも高品質で符号化された関心領域の符号化を含んでもよい。関心領域符号化は、画像２０１の特定部分が最初に符号化され、他の部分は後で符号化されることを可能にするスケーラビリティ機能と組み合わせることができる。圧縮データは、画像を分類、検索または閲覧するために使用することができる画像に関する情報（時にはメタ情報やメタデータとも呼ばれる）を含むこともある。このような情報は、色やテクスチャの統計、小さなプレビュー画像および著者／著作権情報を含むこともある。
【００４８】
例として、限定するものではないが、符号２０４における画像圧縮過程で、エンコーダは、ピクセルのブロックを圧縮するための最良の方法を探索してもよい。エンコーダは、良いマッチングを求めて、現在のパディングされたピクチャを含む参照ピクチャリスト２０３においてすべての参照ピクチャを探索することができる。現在の画像がイントラピクチャとして符号化されている場合、パディングされたピクチャだけが参照リストで利用可能である。符号２０４における画像圧縮は、符号２０６における動き補償の過程で１以上の参照ピクチャ（パディングされたピクチャを含む）とともに後で使われる三次元動きベクトルＭＶと変換係数２０７を生成する。
【００４９】
画像圧縮２０４は、一般的に最良のインター予測マッチングを求めるモーション探索ＭＳ、最良のイントラ予測マッチングを求めるイントラ探索ＩＳ、現在のマクロブロックがインター符号化であるかイントラ符号化であるかを決定するためのイントラ／インター比較Ｃ、および、可逆残差ピクセル２０５の形式において予測誤差を算出するために最もマッチングのとれた予測ピクセル値で符号化されたセクションから元の入力ピクセルの値を引く減算Ｓを含む。残差ピクセルはその後、変換係数２０７を生成するために、変換及び量子化ＸＱを受ける。この変換は、典型的には、離散コサイン変換（ＤＣＴ）などのフーリエ変換又はフーリエライクな変換に基づいている。イントラピクチャが符号化されるべきである場合は、既存のビデオ規格については、動き探索ＭＳ及びイントラ／インター比較Ｃはオフになる。しかし、本発明の実施の形態では、パディングされた画像が参照として利用可能であるから、これらの機能はオフにされない。これにより、画像圧縮２０４は、イントラ符号化ピクチャとインター符号化ピクチャに対して同じになる。
【００５０】
動き探索ＭＳは、通常、インター符号化ピクチャに対して行われているように、動き補償のための最良のマッチングセクションを求めてピクチャ２０１を探索することにより、三次元動きベクトルＭＶを生成することができる。現在のピクチャ２０１がイントラ符号化ピクチャである場合は、対照的に、既存のコーデックは通常、ピクチャ間を横切った予測を許さない。その代わり、すべての動き補償は、通常、イントラピクチャと、変換係数を生成して画素予測を行うことによって符号化されたピクチャとに対して、オフになる。しかしながら、本発明の実施の形態では、イントラピクチャは、現在のピクチャのセクションを同じピクチャ内の別のオフセットセクションと照合することによってインター予測を行うために使用することができる。二つのセクション間のオフセットは、符号２０６における動き補償のために使用することができる予測パラメータ、例えば動きベクトルＭＶ’（三次元動きベクトルであってもよい）として符号化することができる。一例として、次に、エンコーダは、イントラピクチャにおけるセクションを同じピクチャ内の他のオフセットセクションと照合して、三次元動きベクトルＭＶ’としてこれら二つのセクション間のオフセットの符号化を試みる。「インター」ピクチャに対するコーデックの通常の動きベクトル補償は、「イントラ」ピクチャに動きベクトル補償を行うために使用することができる。ある既存のコーデックは、２つのセクション間のオフセットを、符号２０６における動き補償を行うために追跡される動きベクトルに変換することができる機能を有している。しかしながら、これらの機能は、従来は、イントラピクチャの符号化に対してはオフにされる。本発明の実施の形態では、コーデックは、イントラピクチャの符号化のためのそのような「インター」ピクチャの機能をオフにしないように指示されてもよい。
【００５１】
本明細書で使用されるように、動き補償処理は、参照画像を現在処理中の画像に変換する観点でピクチャを説明するための技術を指す。一般的には、動き補償２０６は、符号化処理２００を実施するエンコーダ内のローカルデコーダとして作用する。具体的には、動き補償２０６は、画像圧縮２０４からの動きベクトルＭＶまたはＭＶ’と参照リストのピクチャからの参照ピクセルを使用して予測ピクセルＰＰを取得するためのインター予測ＩＰ１および（オプションで）イントラ予測ＩＰ２を含む。実際問題として、２つの予測ＩＰＩとＩＰ２のどちらか一方のみが予測ピクセルＰＰを生成するために選択されることから、イントラ予測はオプションであることに留意されたい。画像圧縮２０４からの変換係数２０７を用いた逆量子化及び逆変換ＩＱＸは、予測されたピクセルＰＰに追加される不可逆残差ピクセル２０５Ｌを生成し、復号された画素２０９を生成する。復号化されたピクセル２０９は、参照ピクチャ内に挿入され、現在処理中のピクチャ２０１の後続のセクションに対する画像圧縮２０４及び動き補償２０６で使用するために利用可能である。デコードされたピクセルが挿入された後、参照画像における未復号ピクセルはパディング２０２を受ける。
【００５２】
従来のエンコーダでは、現在のピクチャがイントラ符号化されている場合は、動き補償に使用することができる他の画像が存在しないため、動き補償２０６のインター予測の部分はオフにされる。しかしながら、本発明の実施の形態では、対照的に、動き補償は、特定のピクチャがインター符号化されるかイントラ符号化されるかには関係なく、任意のピクチャ２０１上で実行される。本発明の実施形態では、たとえ、現在処理中の画像がイントラ符号化されるべきものであっても、方法２００を実施するエンコーダは、参照ピクチャリスト２０３にパディングされたピクチャを追加するように修正され、動き補償２０６のインター予測の部分はオフにならない。その結果、インター符号化されるセクションとイントラ符号化されるセクションの両方に対する処理フローは、動き補償２０６の過程において同じである。唯一の大きな違いは、符号化に使用する参照ピクチャの選択である。
【００５３】
一例として、限定するものではないが、あるタイプの三次元動き補償では、各画像は、ピクセルのブロック（たとえば１６×１６画素のマクロブロック）に分割される。各ブロックは、参照フレーム内の同じ大きさのブロックから予測される。ブロックは、三次元運動（すなわち、３次元シフト、３次元回転）のパラメータ化を通して予測ブロックの位置に変換される。ブロックはまた、光の強度と光の拡散のパラメータ化を通じて予測ブロックの色特性を呈する。これらの三次元の動きや色特性の変化は三次元動きベクトルＭＶによって表される。周辺ブロックのベクトル間の冗長性を利用するためには、（例えば、複数のブロックで覆われた単一移動物体に対して）ビットストリーム内の現在の三次元動きベクトルと以前の三次元動きベクトルの間の差分だけを符号化することが一般的である。この差分処理の結果は、パン（ｐａｎ）することが可能なグローバル動き補償と数学的には等価である。さらに、符号化パイプラインの下流で、方法２００は、オプションとして、エントロピー符号化２０８を使用して、ゼロベクトル周りでの動きベクトルの統計的分布を利用することにより、出力サイズを減らすことができる。
【００５４】
ブロックを画素の非整数倍でシフトすることが可能であり、サブピクセル精度と呼ばれる。中間のピクセルは近隣のピクセルを補間することによって生成される。一般に、ハーフピクセル又はクォーターピクセル精度が使用される。サブピクセル精度の計算コストは、補間に必要な追加の処理のゆえに非常に高く、エンコーダ側では評価されるべき潜在的なソースブロックの数がはるかに大きい。
【００５５】
三次元動き補償は、現在符号化している画像を非重複ブロックに分割し、それらのブロックが参照画像内のどこから来たかを示す三次元動き補償ベクトルを算出する。参照ブロックは、典型的には、ソースフレームにおいて重複する。ビデオ圧縮アルゴリズムは、参照画像リスト２０３内の複数の異なる参照画像の部分から現在の画像を組み立てる。ソースフレームは、現在のフレームの元の入力ピクセルを含むフレームを指す。現在の入力フレームは、複数の参照画像によって予測することができる。入力画素ブロックは、ときには、複数の参照画像によって予測されることがある。
【００５６】
パディング２０２、画像圧縮２０４、動き補償２０６、（オプションで）エントロピー符号化部２０８の結果は、符号化画像２１１である。動きベクトルＭＶ（および／またはイントラ予測モード動きベクトルＭＶ’）と変換係数２０７は、符号化ピクチャ２１１に含まれる。各デジタル画像２０１は、パディング２０２、画像圧縮２０４、および動き補償２０６を受けるため、同時にデコーダエミュレータ２１３に供給される。デコーダエミュレータ２１３は、その特定のデジタルピクチャ２０２に関連付けられた三次元動きベクトルが利用可能でなくても、デジタルピクチャ２０２に関して復号処理をシミュレートする。代わりに、デコーダエミュレータ２１３は、単に、既に復号された画像およびピクセル（例えば、参照画像リスト２０３からのもの）を使用して、デジタルピクチャまたはそのセクションに対する三次元動きベクトルＭＶ’’を独立に決定する。デコーダエミュレータによって決定される三次元動きベクトルＭＶ’’は次に、エンコーダによって決定された三次元動きベクトルＭＶ、ＭＶ’と比較される。デコーダエミュレータによって決定された三次元動きベクトルＭＶ’’が、エンコーダによって導出された三次元動きベクトルＭＶ、ＭＶ’のそれと等価な１以上の予測パラメータを含むならば、エンコーダは、最終的な符号化ピクチャ２１５を送信する際、これらの予測パラメータをスキップすることができる。エンコーダはまた、デコーダエミュレータによって決定された三次元動きベクトルＭＶ’’を使用して最終的に符号化されたピクチャ２１５内の追加情報を符号化し、省略された予測パラメータを見つける際にデコーダを案内することができる。一例として、これに限定するものではないが、追加情報には、デコーダが探索すべき各予測パラメータの値の範囲、デコーダが動きベクトルＭＶ、ＭＶ’を決定するために探索すべき範囲の隣接ピクセルのインデックス、エンコーダの三次元動きベクトルＭＶ、ＭＶ’とデコーダエミュレータの三次元動きベクトルＭＶ’’との間の差、あるいはこれらの組み合わせを含む。デコーダに画素予測業務のある部分を委任することにより、かなりの数のビットが符号化処理で保存される。これにより、デジタル画像を符号化するためのより複雑な予測方法を使用して、より高い予測精度でより効率的なエンコード／デコードのスキームをもたらすことが可能になる。
【００５７】
いったんピクチャが図２Ａに示すように符号化されると、それは送信され、本発明の別の実施の形態に従って復号される。本発明の実施の形態によるピクチャ復号は、図２Ｂに示すように、方法２２０に従って進められる。符号２２２に示すように、ピクチャの未復号の部分は、パディングされたピクチャ２２１’を生成するためにパディングされる。図２Ａに関して上述したように現在のピクチャ２２１が符号化されている場合、三次元動きベクトルＭＶ（またはイントラモード三次元動きベクトルＭＶ’）のいくつかの構成要素は、現在のピクチャがインター符号化されているかイントラ符号化されているかに関係なく、符号２２４に示すように、現在のピクチャ２２１から抽出される。三次元動きベクトルＭＶ、ＭＶ’の抽出は、符号化ピクチャ２２１によって供給される三次元動きベクトルＭＶ、ＭＶ’（それが利用可能な場合）を単に用いることによってなされてもよい。しかし、三次元動きベクトルＭＶ、ＭＶ’または与えられたピクチャ２２１に対する三次元的動きベクトルＭＶ、ＭＶ’に関連づけられた特定の予測パラメータが利用できない場合は、デコーダは、参照ピクチャ２２１’から以前に復号されたセクションを用いることにより、動きベクトルＭＶまたは省略された予測パラメータを探索する。ピクチャ符号化のタイプに応じて、参照ピクチャは、符号化されたピクチャ２２１とは異なる画像を含んでもよい。あるいは、以前に復号されたセクションは、現在デコードされている符号化画像２２１から来たものであってもよい。探索は、図２Ａで説明したように、符号化されたピクチャ２２１において見つけられた追加情報（例えば、デコーダが探索すべき各予測パラメータの値の範囲）によって案内（ガイド）されてもよい。
【００５８】
従来技術では、インターピクチャは、インターモード及びイントラモードの両方の機能を使用して符号化されうることに留意されたい。対照的に、イントラピクチャは、イントラモードの機能のみを使用して符号化される。本発明のある実施の形態において、インターモード及びイントラモードの両方の機能は、イントラピクチャ内の各個別セクションに対して許可されてもよい。その結果、同一のデータフローがイントラピクチャとインターピクチャの両方に用いられる。ビデオ処理パイプラインにおける一段階としてビデオ符号化または復号を考慮するなら、この方法の利点を理解することができる。イントラ及びインターピクチャの符号化または復号が同じプロセスを使用して、同じサイクル数を消費する場合、パイプライン全体がスムーズになる。
【００５９】
いったん動きベクトルＭＶ（またはＭＶ’）が抽出されたら、それを現在のピクチャ２２１の未復号の部分のピクセル予測２２６のために用いて、予測された画素２２５を生成する。ピクセル予測２２６は、パディングされたピクチャ２２１’からの参照ピクセル２２３を参照画素２２３として使用する。参照ピクセル２２３は、パディングされた画像２２１’のまだパディングされていない部分から来るかもしれない。また、パディング処理２２２で得られたピクセルは、参照画素２２３として用いてもよい。ピクセル予測２２６には、インター符号化ピクチャとイントラ符号化ピクチャの両方に対するインター予測及びイントラ予測の両方が含まれる。特に、ピクセル予測２２６は、上述のように生成された、従来のインターモードの動きベクトルＭＶまたはイントラモードの動きベクトルＭＶ’を使用することができる。符号２２６におけるピクセル予測に関連して、復号方法２２０を実施するデコーダは、符号２２８で示されるように現在のピクチャ２２１から変換係数を抽出し、符号２３０で示されるように変換係数から残留ピクセル２２７を計算することができる。符号２３２で示すように、たとえば、単純な加算によって、予測されたピクセル２２５および残留画素２２７を結合して復号されたピクセル２２９を生成する。
【００６０】
符号２３４で、復号が終了していない場合、符号２３６で示すように、現在のピクチャ２２１の次の部分に対する復号に進む。一旦復号が完了すると、後処理が符号２３８に示すように復号されたピクセル２２９上で実行されてもよい。後処理の例としては、これに限定されないが、デブロッキング、自然なノイズ低減、符号化誤差ノイズリダクション、色強調、色空間変換、インターレースプログレッシブ変換、フレームレート変換、ピクチャサイズスケーリング、アルファブレンディングおよび３次元オブジェクトラッピングがある。あるセクションが現在処理しているセクションから十分に離れており、その結果、参照ピクセルのソースとして用いられることがないならば、当該セクションに対して後処理（ポスト処理）が典型的には行われる。あるセクションをピクセル予測のために使うかどうかを決定することは、符号２３４における決定の一部である。いったん後処理が全ての画素に対して終了すると、符号２４０に示すように、前述のプロセスを別のピクチャに対して繰り返してもよい。
【００６１】
なお、符号２３４における復号が終了したか否かの判定の性質は、現在のピクチャのピクセルが後処理の前か後に参照画素として使用されるかどうかに依存することに留意されたい。最良の予測を達成するためには、後処理の後に現在のピクチャのピクセルを用いることが好ましい。そのような場合、現在のセクションからのピクセルの後処理は、現在のセクションに対するピクセル予測の後であって、未来のセクションに対するピクセル予測の前に起こるかもしれない。しかしながら、最も単純な実装を実現するためには、参照ピクセルとして後処理をする前のピクセルを用いることが好ましい。さもなければ、後処理された現在のピクチャのピクセルを、次のマクロブロックを復号する前に各マクロブロックにフィードバックしなければならなくなるからである。そのような場合には、現在のセクションに対するピクセル予測が完了した後であるが、現在のセクションに対するピクセルの後処理の前に、未来のセクションの復号を開始することができる。
【００６２】
好ましい実施の形態では、後処理の前のピクセルは、同一ピクチャのマクロブロックのインター予測に対する参照画素として用いられる。このような場合には、デブロッキングのような後処理をまだ受けていない復号されたマクロブロックからパディングピクセルをコピーしてもよい。
【００６３】
いくつかのケースでは、例えば、コンピュータ生成された人工的なコンテンツを含み、参照ピクセルのソースとして現在のピクチャの部分を使用するイントラ符号化ピクチャ及びインター符号化ピクチャは、他の予測モードよりも良い予測をもたらす。しかし、すべての既存のビデオ符号化規格によると、イントラ符号化されたピクチャに対して参照として現在のピクチャを使用することは、許されていない。現在のピクチャから最良の予測を得る可能性は低いため、これは、カメラで撮影された自然のシーンや低解像度ピクチャのためには明白な解決策ではありません。しかしながら、それでも、インター符号化ピクチャおよびイントラ符号化ピクチャの両方に対する簡略化された処理フローの利点の恩恵を受けることができる。
【００６４】
図３は、ストリーミングデータ３０１を復号する方法３００におけるありうる処理フローの例を示す。この特定の例は、たとえばＡＶＣ（Ｈ．２６４）標準を使用したビデオ復号の処理フローを示す。符号化されたストリーミングデータ３０１は、最初にバッファに格納される。符号化されたストリーミングデータ３０１（例えば、ビデオデータビットストリーム）がネットワーク、例えば、インターネットで転送された場合、データ３０１は、符号３０２で示されように、最初はネットワーク抽象化レイヤ（ＮＡＬ）復号と呼ばれる処理を経る。ＮＡＬ復号は、データを送信する際に補助するために追加された情報をデータ３０１から除去する。「ネットワークラッパー」と呼ばれるこのような情報は、データ３０１をビデオデータとして特定したり、ビットストリームの先頭または末尾、データの配置のビット、及び／又はビデオデータ自体に関するメタデータを示す。また、例示的に、ネットワークラッパーは、例えば、解像度、画像表示形式、データを表示するためのカラーパレット変換行列、各ピクチャのビット数に関する情報、スライスやマクロブロックに関する情報を含むデータ３０１に関する情報、スライスの開始または終了を示すデータなど、低レベルの復号に使用される情報を含んでいてもよい。この情報は、単一のセクション内のタスクグループの各々に渡すべきマクロブロックの数を決定するために使用される。
【００６５】
その複雑さのゆえに、ＮＡＬ復号は、典型的にはピクチャとスライスのレベルで行われる。ＮＡＬ復号に対して使用される最小ＮＡＬバッファは、通常スライスのサイズのである。幸いなことに、ＮＡＬ復号処理３０２は、比較的低いサイクル数である。従って、ＮＡＬ復号処理３０２は、単一のプロセッサ上で実行されてもよい。
【００６６】
いくつかの実施の形態では、符号３０２におけるＮＡＬ復号後、図３で説明される残りの復号処理は、ここではビデオ符号化レイヤ（ＶＣＬ）復号３０４、動きベクトル（ＭＶ）再構築３１０及びピクチャ再構築３１４と呼ばれる３つの異なるスレッドグループまたはタスクグループにおいて実施される。ピクチャ再構築タスクグループ３１４は、ピクセル予測および再構築３１６と後処理３２０を含む。本発明のいくつかの実施の形態において、これらのタスクグループは、データ依存性に基づいて選択され、その結果、後続の処理のためにマクロブロックが次のタスクグループに送信される前に、各タスクグループがピクチャ（例えば、フレームまたはフィールド）またはセクション内のすべてのマクロブロックの処理を完了できるようになる。
【００６７】
特定のコーデックは、空間領域から周波数領域へのピクセル情報の変換を伴うデータ圧縮の形式を使用してもよい。そのような変換は、特に、離散コサイン変換（ＤＣＴ）として知られている。このような圧縮データの復号処理は、周波数領域から空間領域に戻す逆変換を伴う。ＤＣＴを使用して圧縮されたデータの場合、逆変換は逆離散コサイン変換（ＩＤＣＴ）として知られている。変換されたデータは、時々、離散変換されたデータの数値を表すのに使用されるビット数を減らすために量子化される。例えば、番号１、２、３を全て２にマッピングし、数字４，５，６を全て５にマッピングしてもよい。データを解凍するためには、周波数領域から空間領域への逆変換を行う前に逆量子化（ＩＱ）として知られる処理が用いられる。ＶＣＬ  ＩＱ／ＩＤＣＴ復号処理３０４のデータ依存関係は、典型的には、同じスライス内のマクロブロックに対するマクロブロックレベルにある。従ってＶＣＬ復号処理３０４によって生成される結果をマクロブロックレベルでバッファリングしてもよい。
【００６８】
ＶＣＬ復号３０４は、多くの場合、ＶＣＬ構文を復号するために使用されるエントロピー復号３０６と呼ばれる処理を含む。ＡＶＣ（Ｈ．２６４）のような多くのコーデックは、エントロピー符号化と呼ばれる符号化レイヤを使用する。エントロピー符号化は、符号長が信号の確率に一致するように、信号に符号を割り当てる符号化方式である。典型的には、エントロピーエンコーダは、等しい長さの符号で表されるシンボルを、確率の負の対数に比例した符号で表されるシンボルで置き換えることによってデータを圧縮するために使用される。ＡＶＣ（Ｈ．２６４）は、２つのエントロピー符号化方式、コンテキスト適応可変長符号化（ＣＡＶＬＣ）、およびコンテキスト適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートする。ＣＡＢＡＣはＣＡＶＬＣよりも約１０％以上の圧縮を提供する傾向があるため、ＣＡＢＡＣは、ＡＶＣ（Ｈ．２６４）ビットストリームを生成する際に多くのビデオエンコーダで好んで利用されている。ＡＶＣ（Ｈ．２６４）符号化されたデータストリームのエントロピーレイヤを復号することは計算量が大きくなるため、汎用マイクロプロセッサを使用してＡＶＣ（Ｈ．２６４）符号化されたビットストリームをデコードする装置に対しては困難な課題があるであろう。ブルーレイやＨＤ−ＤＶＤ規格の目標とされた高ビットレートストリームを復号するために、ハードウェアは非常に高速で複雑にする必要があり、システム全体のコストが本当に高いものとなるかもしれない。この問題に対する一つの一般的な解決策は、ＣＡＢＡＣ復号のための特別なハードウェアを設計することである。あるいは、エントロピー復号をソフトウェアで実装してもよい。エントロピー復号のソフトウェア実装の一例は、譲受人に譲渡された米国特許７５５４４６８号に見出すことができ、その内容は参照により本明細書に組み込まれる。
【００６９】
エントロピー復号３０６に加えて、ＶＣＬ復号処理３０４は、符号３０８で示すように逆量子化（ＩＱ）および／または逆離散コサイン変換（ＩＤＣＴ）を含む。これらの処理は、ヘッダ３０９とマクロブロックからのデータを復号する。復号されたヘッダ３０９は、隣接マクロブロックのＶＣＬ復号を補助するために用いられる。
【００７０】
ＶＣＬ復号３０４は、マクロブロックレベルのデータ依存頻度で実施される。具体的には、同じスライス内の異なるマクロブロックが並列にＶＣＬ復号を受け、その結果は、さらなる処理のために動きベクトル再構成タスクグループ３１０に送信される。
【００７１】
続いて、ピクチャまたはセクション内のすべてのマクロブロックは、動きベクトル再構築３１０を受ける。ＭＶ再構築処理３１０は、所与のマクロブロック３１１および／または同位置のマクロブロックヘッダ３１３からのヘッダを用いた動きベクトル再構築３１２を含む。また、動きベクトル再構築３１２は、図２Ａおよび図２Ｂで前述したように、デコーダによるガイド付き探索により実装されてもよい。３次元動きベクトルは見かけの運動（例えば、３次元シフトまたは回転）だけでなく、ピクチャ内の色特性（例えば、光の強さと拡散）を記述することができる。このような動きベクトルは、以前のピクチャのピクセルとピクチャからピクチャへのそれらのピクセルの相対運動の知識に基づいたピクチャ（またはその一部）の再構築を可能にする。いったん動きベクトルが回復されると、ピクセルは、符号３１６において、ＶＣＬ復号処理３０４からの残留ピクセルとＭＶ再構築処理３１０からの動きベクトルに基づいたプロセスを使用して再構築することができる。ＭＶに対するデータ依存頻度（および並列処理のレベル）は、ＭＶ再構築処理３１０が他のピクチャからの同じ位置のマクロブロックに関係するかどうかに依存する。他のピクチャからの同じ位置のＭＢヘッダに関係しないＭＶ再構築に対しては、ＭＶ再構築処理３１０は、スライスレベル又はピクチャレベルで並列に実装することができる。同じ位置のＭＢヘッダに関係するＭＶ再構築に対しては、データ依存頻度はピクチャレベルであり、ＭＶ再構築処理３１０はスライスレベルで並列処理を実現することができる。
【００７２】
動きベクトル再構築３１０の結果は、ピクチャの頻度レベルで並列化することができるピクチャ再構築タスクグループ３１４に送られる。ピクチャ再構築タスクグループ３１４内では、ピクチャまたはセクション内のすべてのマクロブロックは、デブロッキング３２０と併せてピクセル予測および再構築３１６を受ける。ピクセル予測および再構成タスク３１６とデブロッキングタスク３２０は復号効率を高めるために並列化することができる。これらのタスクは、データ依存関係に基づいて、マクロブロックレベルでピクチャ再構築タスクグループ３１４内で並列化される。例えば、ピクセル予測及び再構築３１６は１つのマクロブロックに対して行われ、デブロッキング３２０がその後に続く。デブロッキング３２０により得られた復号されたピクチャからの参照ピクセルは、後続のマクロブロック上のピクセル予測及び再構築３１６で使用される。ピクセル予測及び再構築３１８は復号されたセクション３１９（例えば、復号されたブロックまたはマクロブロック）を生成する。セクション３１９は、後続のマクロブロックに対するピクセル予測および再構築処理３１８への入力として使用される近傍ピクセルを含む。ピクセル予測と再構築３１６に対するデータ依存関係のゆえに、同じスライス内のマクロブロックに対するマクロレベルでの並列処理がある程度可能になる。
【００７３】
本発明の実施形態において、ピクセル予測は、既に復号されたピクチャからのピクセルの代わりに参照ピクセルとして復号化される現在のピクチャ内のピクセルを使用してもよい。復号されていない任意の参照ピクセルは、既に復号された現在のピクチャ内のピクセルから決定することができるパディングピクセルに置き換えられてもよい。まだピクセルが復号されていない場合、上述のように、パディングピクセルの値は任意に決定することができる。
【００７４】
ブロック符号化技術が使用されるブロック間で形成される鋭いエッジを平滑化することによって画質と予測性能を向上させるために、後処理タスクグループ３２０は、復号されたセクション３１９内のブロックに適用されるデブロッキングフィルタ３２２を含む。デブロッキングフィルタ３２２は、得られたデブロックされたセクション３２４の外観を改善するために使用することができる。
【００７５】
復号化されたセクション３１９またはデブロックされたセクション３２４は、隣接マクロブロックをデブロッキングする際に使用するための隣接画素を提供する。さらに、現在復号中の画像からのセクションを含む復号されたセクション３１９は、後続のマクロブロックに対するピクセル予測及び再構築３１８のための参照ピクセルを提供する。ピクチャがインター符号化であるかイントラ符号化であるかにかかわらず、現在のピクチャ内からのピクセルが上述したように同じ現在のピクチャ内のピクセル予測のために使用されるのは、この段階である。デブロッキング３２０は、同じピクチャ内のマクロブロックに対してマクロブロックレベルで並列化することができる。
【００７６】
復号されたセクション３１９は後処理３２０の前に生成され、後処理されたセクション３２４は、同じバッファ、たとえば、関係した特定のコーデックに応じた出力ピクチャバッファに格納される。なお、デブロッキングは、Ｈ．２６４における後処理フィルタであることに留意されたい。Ｈ．２６４は、デブロッキング前のマクロブロックを、隣接するマクロブロックのイントラ予測と、未来のピクチャマクロブロックのインター予測に対するデブロッキング後のマクロブロックの参照として、使用するからである。デブロッキング前とデブロッキング後の両方のピクセルが予測に用いられるため、デコーダまたはエンコーダは、デブロッキング前のマクロブロックとデブロッキング後のマクロブロックの両方をバッファリングする必要がある。最も低コストの民生用アプリケーションでは、メモリ使用量を減らすために、デブロッキング前のピクチャとデブロッキング後のピクチャは同じバッファは共有する。ＭＰＥＧ２やＭＰＥＧ４  ｐａｒｔ  １０（注：Ｈ．２６４もＭＰＥＧ４パート１０と呼ばれる）を除くＭＰＥＧ４などの以前のＨ．２６４規格に対しては、後処理の前のマクロブロック（例えば、デブロッキング前のマクロブロック）だけが、他のマクロブロックの予測のための参照として使用される。そのようなコーデックでは、フィルタ処理前のピクチャは、フィルタ処理後のピクチャと同じバッファを共有することはない。
【００７７】
したがって、Ｈ．２６４に対しては、ピクセル復号の後、復号化されたセクション３１９は、出力画像バッファに保存される。その後、後処理されたセクション３２４は、出力ピクチャバッファにある復号化されたセクション３１９を置き換える。非Ｈ．２６４の場合は、デコーダは出力ピクチャバッファに復号化されたセクション３１９を保存するだけである。後処理は、表示時に行われており、後処理の出力はデコーダ出力ピクチャバッファと同じバッファを共有することはない。
【００７８】
ほとんどのマルチプロセッサのハードウェアｏプラットフォームでは、プロセッサ間のデータアクセス遅延は、ビデオピクチャ間の時間間隔よりも短い。しかしながら、少数の並列処理エンジンだけが、マクロブロック処理速度よりも速くプロセッサ間のデータ転送を行うことができる。ピクチャ頻度で二つのタスクにデータ交換をさせることが無難である。図３に関して上述したピクチャ頻度依存性に基づいて、５つの独立したタスクにデコード処理３００を分割することが可能です。これらのタスクは、Ａ）ＮＡＬ復号３０２およびデコーダ内部管理、Ｂ）ＶＣＬ構文復号とＩＱ／ＩＤＣＴ３０４、Ｃ）動きベクトル再構築３１０、およびＤ）ピクセル予測と再構築３１６、およびＥ）デブロッキング３２０である。
【００７９】
一般に、ＮＡＬ復号はピクチャまたはスライスレベルのデータ依存頻度で行うことができる。ＡＶＣ（Ｈ．２６４）などのコーデックでは、ＮＡＬ復号３０２に関わるデータ依存関係がかなり複雑でありが、それでも全体のＮＡＬ復号処理３０２は比較的低いサイクル数になる。その結果、この処理を並列化するよりは、単一のプロセッサにおいてすべてのＮＡＬ復号３０２を実装する方が効率的である。動きベクトル構築タスク３１０は、典型的にはＶＣＬ構文復号とＩＱ／ＩＤＣＴ３０４、ピクセル予測と再構築３１６とデブロッキング３２０に比べて約１０分の１のプロセッササイクルになる。後者の３つのタスクの計算複雑さはかなり類似する。しかしながら、異なる符号化ビデオストリームに対して、これら３つのサイクル数の大きいタスク間の実行サイクルの割り当ては異なる。
【００８０】
ＶＣＬ構文復号とＩＱ／ＩＤＣＴ３０４内では、各スライス内のマクロブロックレベルのデータ依存関係だけがある。このタスクに対して、スライスは互いに独立であるとして処理される。動きベクトル再構築タスク３１０は、入力用のＶＣＬ構文復号およびＩＱ／ＩＤＣＴ３０４の出力に依存する。ピクセル予測および再構築タスク３１６は入力としてＶＣＬ構文復号とＩＱ／ＩＤＣＴタスク３０４と動きベクトル再構築タスク３１０の出力をとる。動きベクトル再構築タスク３１０とピクセル予測および再構築タスク３１８内では、マクロブロックレベルのデータ依存関係があるが、１ピクチャ内のスライスは互いに独立である。
【００８１】
ピクセル予測および再構築タスク３１６は、動き補償を含む。ピクセル予測および再構築タスク３１６におけるピクチャ依存性は、このような動き補償に起因する可能性がある。上述したように、動き補償は、通常、現在の画像を予測するために以前に復号されたピクチャを使用する処理である。動き補償処理では、３次元ベクトルは、動きベクトルと呼ばれ、以前に復号されたピクチャ内のピクセルを参照するために使用される。動きベクトル再構築タスク３１０におけるピクチャレベル依存性はダイレクト予測によって引き起こされる。ダイレクト予測では、以前に復号されたマクロブロックの動きベクトルを用いて現在のマクロブロックの動きベクトルを計算する。従来からではあるが、参照されるマクロブロックは、現在のマクロブロックの同じ位置で以前に復号された参照ピクチャである。本発明の実施の形態では、対照的に、現在のピクチャ内のセクション（たとえば、ブロックまたはマクロブロック）を参照として使用する。
【００８２】
ＡＶＣデコーダにおいて、以前に復号された参照ピクチャは、デブロッキングタスク３２０の出力である。符号化標準により定義された動きベクトル範囲の制限のゆえに、以前のピクチャのピクセルがすべて、現在のピクチャにおける特定のマクロブロックを予測するために利用可能であるわけではない。例えば、ＡＶＣレベル４．１ストリームの動きベクトルの範囲は垂直方向−５１２〜５１１．７５ピクセル、水平方向−１０２４〜１０２３．７５ピクセルである。ピクチャサイズが１９２０×１０８８ピクセルであれば、参照ピクチャ内のピクセルの約四分の一を角のマクロブロックの予測のために使用することができる。対照的に、参照画像内のほとんどすべてのピクセルを、中心のマクロブロックの予測のために使用することができる。
【００８３】
図３に示す例では、ＶＣＬ復号とＩＱ／ＩＤＣＴタスク３０８その他のタスクとの間には依存関係のループがないことに留意する。このように、ＶＣＬ復号タスク３０４、動きベクトル再構築タスク３１０、またはピクセル予測および再構築タスク３１６のいずれかまたはすべてにこのタスクをマージして、このタスクの負荷を使用可能なプロセッサ間で分散させることができる。ブロックにはＤＣＴ係数を持っていないものもあるため、ブロック構文復号ループにＩＱ／ＩＤＣＴタスク３０８をマージすることにより、デコーダが符号化ブロックのためだけにＩＱ／ＩＤＣＴを行い、分岐の数を減らすことができるようになる。
【００８４】
イントラ予測画像のコンテキストでは、動き探索に基づく予測は必ずしもエンコーダの助けを得ても正確な結果をもたらさないことがある。図４は、動き探索に基づく予測が満足な結果を提供することに失敗したときのイントラ画像予測の代替方法を説明する。
【００８５】
以前に復号された画像の参照面が制限された解像度を持つ限られた数のピクセルで表される場合、サブピクセル補間を用いて、欠落しているピクセル位置のピクセル値を計算することができる。典型的には、サブピクセル補間を行うために線形フィルタが使用される。例えば、ＡＶＣデコーダはサブピクセル補間を行うために３つのフィルタパラメータをもつ６タップフィルタを使用する。一般的には、フィルタタップの数を増やせば、より良い結果を生成するが、より多くのパラメータを使用することになる。フィルタを異なるビデオコンテンツと異なる方向で使用するために適応させる必要がある。デコーダが最良の補間フィルタを探索するために復号された隣接ピクセルを使用することができる場合、エンコーダは、ストリームにおいてフィルタパラメータの符号化をスキップすることができ、より複雑なフィルタを使用することで、画像圧縮が可能になる。
【００８６】
ほとんどのコンピュータ生成されたビデオシーケンスの場合、ＧＰＵは、ピクセル予測及び再構築を実行するために２×２のような小さなブロックサイズを使用する。２×２のブロック予測を許容する利点として、特に予測精度がより高い点がある。しかしながら、従来技術のビデオ符号化規格では、動きベクトルの非常に大きな符号化コストのゆえに、最小の予測ブロックサイズは４×４である。本発明の実施の形態では、デコーダが独立に生成することができるパラメータの送信を回避することによって、予測パラメータの符号化コストを大幅に低減することができる。その結果、より小さい予測ブロックサイズが可能となる。
【００８７】
一般に、所与のピクチャの最初のセクションは、デフォルトのフィルタパラメータを用いて符号化又は復号することができる。しかし、最初のセクションの後に、そのピクチャに対する未来のすべてのセクションは、再構築されたピクセルと以前のセクションからの参照ピクチャを用いてエンコーダ／デコーダで探索された最良のフィルタパラメータを使用することができる。最良のフィルタと次善のフィルタとの間の差が比較的小さくなる傾向があるため、フィルタパラメータを送信する必要はないかもしれない。エンコーダは、デコーダエミュレータが未来のセクションのサブピクセル補間のために見つけることができるフィルタがあればそれを使用することができる。
【００８８】
図４は、以前に復号されたセクションを使用して、デコーダ側で予測パラメータを確立する例を示す。図４において、画素ブロックＦ４０１は、復号化の過程にある。画素ブロックＡ〜Ｄ４０３、４０５、４０７、４０９はすでに復号された同じ画像内の各隣接するブロックである。画素ブロックＥは、画素ブロックＦと同じ位置をとる画素ブロックであるが、以前に復号化されたピクチャにある。各画素ブロックは復号されたピクセル行列で表される。本発明のある実施の形態では、エンコーダは、隣接ブロックの一部または全部を使用することによって、動きベクトルとフィルタパラメータを含む一部またはすべての予測パラメータを探索するようにデコーダに指示する。上述したように、予測を確立するために使用される特定の隣接ブロックは、デコーダエミュレータを介してエンコーダによって決定される。次いで、デコーダは、どの隣接画素ブロックを用いてエンコーダから予測とフィルタパラメータを確立するべきかを示すガイドラインを受信する。デコーダが予測パラメータの探索を支援するエンコーダから他の情報を代わりに受信することができることに留意することが重要である。
【００８９】
エンコーダまたはデコーダが先に復号されたセクションからフィルタまたは予測パラメータを探索することができる方法がいくつかある。例えば、デコーダ側、又はエンコーダ内部のデコーダエミュレータにおいて、フィルタの候補セットを、以前のピクチャセクション予測で使用された参照ピクセルのブロックに適用することができる。そして、これらのフィルタの各々の出力結果は、対応する予測誤差を生成するために、以前のセクションからの再構成ピクセルと比較することができる。最良のフィルタは最小の予測誤差を発生させるものである。この最良のフィルタは、未来のセクション（もし存在するなら）に対するピクセル予測を生成するために使用することができる。
【００９０】
本発明の実施の形態は、上述したタイプのエンコーダ／デコーダを実装するように構成されたコンピュータ装置を含む。一例として、限定するものではないが、図５は、本発明の実施の形態に係るビデオ符号化方式を実装するために用いられるコンピュータ装置５００のブロックダイアグラムを示す。装置５００は、一般に、プロセッサモジュール５０１とメモリ５０２を備える。プロセッサモジュール５０１は１以上のプロセッサコアを含む。複数のプロセッサモジュールを用いるプロセッシングシステムの例は、セルプロセッサであり、その例は、たとえば、http://www-306.ibm.com/chips/techlib/techlib.nsf/techdocs/1AEEE1270EA2776387257060006E61BA/$file/CBEA_01_pub.pdfにおいてオンラインで参照可能なセルブロードバンドエンジンアーキテクチャに詳しく記述されており、その内容を参照によりここに組み込む。
【００９１】
メモリ５０２は、例えば、ＲＡＭ、ＤＲＡＭ、ＲＯＭなどの集積回路の形態を取ってもよい。そのメモリはまた、すべてのプロセッサモジュール５０１によってアクセス可能なメインメモリであってもよい。ある実施の形態では、プロセッサモジュール５０１は、各コアに関連付けられたローカルメモリを含む。コーダ（符号化部）プログラム５０３は、プロセッサモジュール５０１上で実行することができるプロセッサ読み取り可能なインストラクションの形態でメインメモリ５０２に格納されてもよい。コーダプログラム５０３は、たとえば図１Ｂに関して上述したように、ピクチャを圧縮された信号データに符号化するように構成され、また、たとえば図１Ｃに関して上述したように、圧縮された信号データを復号するように構成される。コーダプログラム５０３は、任意の適切なプロセッサ読み取り可能な言語、たとえば、Ｃ、Ｃ＋＋、ＪＡＶＡ（登録商標）、アセンブリ、ＭＡＴＬＡＢ、フォートラン、および他の様々な言語で書かれる。コーダプログラム５０３は、図７に関して後述するように構成されたインストラクションを含む。特に、コーダプログラム５０３は、エンコーダ側インストラクション、デコーダ側インストラクション、またはエンコーダ側とデコーダ側両方のインストラクションを含む。
【００９２】
入力データ５０７はメモリ５０２に格納されてもよい。コーダプログラム５０３の実行中、プログラムコードおよび／またはデータ５０７の一部は、メモリ５０２またはプロセッサ５０１に対するプロセッサコアのローカルストアにロードされる。一例であり、限定しないが、入力データ５０７は、符号化／復号前または符号化／復号の中間段階におけるビデオピクチャまたはそのセクションを含む。符号化の場合、データ５０７は、バッファされたストリーミングデータの一部、たとえば、未符号化ビデオピクチャまたはそのセクションを含む。復号の場合、データ５０７は、未復号のセクション、復号されたが後処理がなされていないセクション、および復号され後処理がなされたセクションの形式の入力データを含む。そのような入力データは、１以上のデジタルピクチャの１以上の符号化されたセクションを表すデータを有するデータパケットを含んでもよい。一例として、限定するものではないが、そのようなデータパケットは、変換係数の集合および予測パラメータの部分集合を含んでもよい。これらの様々なセクションは１以上のバッファに格納されてもよい。特に、復号され、および／または、後処理されたセクションは、メモリ５０２に実装された出力ピクチャバッファに格納されてもよい。
【００９３】
装置５００はさらに、入出力（Ｉ／Ｏ）装置５１１、電源（Ｐ／Ｓ）５１２、クロック（ＣＬＫ）５１３およびキャッシュ５１４などの周知のサポート機能５１０を備えてもよい。装置５００はオプションとして、プログラムおよび／またはデータを格納するためのディスクドライブ、ＣＤ−ＲＯＭドライブ、テープドライブなどの大容量記憶装置５１５を備えてもよい。装置５００はまた、オプションとして、装置５００とユーザの相互作用を容易にするために、ディスプレイユニット５１６およびユーザインタフェースユニット５１８を備えてもよい。ディスプレイユニット５１６は、テキスト、数値、グラフィカルシンボルや画像を表示する陰極線管（ＣＲＴ）、またはフラットパネルスクリーンの形態であってもよい。ユーザインタフェース５１８は、キーボード、マウス、ジョイスティック、ライトペンや他の装置を備えてもよく、これらは、グラフィカルユーザインタフェース（ＧＵＩ）と併せて使われてもよい。装置５００はまた、ネットワークインタフェース５２０を含み、これにより、当該装置がインターネットのようなネットワーク上で他の装置と通信することが可能になる。これらの構成要素はハードウェア、ソフトウェア、ファームウェアまたはこれらの２以上の組み合わせによって実装される。装置５００の複数のプロセッサを用いて並列処理を効率化する付加的な方法が多数ある。たとえば、２以上のプロセッサコア上でコードを複製し、各プロセッサコアに異なるデータ部分を処理させることによって、処理ループを「アンロール（unroll）」することができる。そのような実装によって、ループ設定に関連するレイテンシを回避することができる。
【００９４】
３以上のプロセッサエレメント上で並列処理を実装することのできるプロセッシングシステムの中の一つの例は、セルプロセッサとして知られる。セルプロセッサとして分類される多数の異なるプロセッサアーキテクチャがある。一例であり、これに限られないが、図６は、本発明のある実施の形態とともに用いることができるあるタイプのセルプロセッサ６００を示す。セルプロセッサ６００は、メインメモリ６０２、ひとつのパワープロセッサエレメント（ＰＰＥ（power processor element））６０４、および８つのシナジスティックプロセッサエレメント（ＳＰＥ（synergistic processor element））６０６を備える。あるいは、セルプロセッサ６００は任意の数のＳＰＥで構成されてもよい。メモリ６０２、ＰＰＥ６０４およびＳＰＥ６０６は、リングタイプのエレメント相互結合バス６１０上で互いに通信したり、Ｉ／Ｏデバイス６０８と通信することができる。メモリ６０２は上述の入力データ６０７と共通の特徴をもつ入力データ６０３と上述のコーダプログラム６０３と共通の特徴をもつコーダプログラム６０９を含む。少なくとも一つのＳＰＥ６０６は、復号インストラクション６０５および／または上述のように並列に処理されるべきバッファされた入力データの一部をローカルストアに含む。ＰＰＥ６０４は、上述のコーダプログラム６０５と共通の特徴をもつコードインストラクション６０７をＬ１キャッシュに含む。インストラクション６０５およびデータ６０７は、ＳＰＥ６０６および必要であればＰＰＥ６０４によってアクセスできるようにメモリ６０２に格納してもよい。
【００９５】
一例として、ＰＰＥ６０４は、関連するキャッシュを持つ６４ビットパワーＰＣプロセッサユニット（ＰＰＵ）であってもよい。ＰＰＥ６０４はオプションとしてベクトルマルチメディア拡張ユニットを含んでもよい。各ＳＰＥ６０６は、シナジスティックプロセッサユニット（ＳＰＵ）とローカルストア（ＬＳ）とを備える。ある実装では、ローカルストアは、プログラムとデータのための約２５６キロバイトのメモリ容量を有する。ＳＰＵは、典型的にはシステム管理機能を実行しないという点で、ＰＰＵよりも単純な計算ユニットである。ＳＰＵは、ＳＩＭＤ（single instruction, multiple data）機能を有し、典型的にはデータ処理を行い、割り当てられたタスクを行うために（ＰＰＥにより設定されたアクセス特性にしたがって）要求されたデータ転送を開始する。ＳＰＵにより、システム６００は、より高い計算ユニット密度を要求するアプリケーションを実装し、提供された命令セットを効率良く利用することができるようになる。ＰＰＥ６０４によって管理されるシステム６００の相当数のＳＰＥによって、広範囲のアプリケーションにわたって費用対効果の高い処理が可能になる。一例として、セルプロセッサ６００は、セルブロードバンドエンジンアーキテクチャ（ＣＢＥＡ）によって特徴づけられる。ＣＢＥＡ準拠のアーキテクチャでは、複数のＰＰＥを一つのＰＰＥグループに結合してもよく、複数のＳＰＥを一つのＳＰＥグループに結合してもよい。例示のために、セルプロセッサ６００を単一のＳＰＥと単一のＰＰＥをもった単一のＳＰＥグループと単一のＰＰＥグループをもつものとして図示している。あるいは、セルプロセッサは複数のＰＰＥグループと複数のＳＰＥグループを含んでもよい。ＣＢＥＡ準拠のプロセッサはたとえば、http://www-306.ibm.com/chips/techlib/techlib.nsf/techdocs/1AEEE1270EA277638725706000E61BA/$file/CBEA_01_pub.pdfにおいてオンラインで利用可能な「セル・ブロードバンド・エンジン・アーキテクチャ」に詳細に記載されており、ここに参照により組み込む。
【００９６】
本発明の実施の形態は、符号化されたストリーミングビデオのようなストリーミングデータの並列符号化のためのシステムと方法を提供する。そのような実施の形態は、たいていのビデオデコーダ、特に、H.264/AVCデコーダや、より具体的には、ビデオデコーダをモジュールとしてもつ製品に適用可能である。そのような製品の例には、限定しないが、ビデオゲームコンソール、ＤＶＤプレイヤ、ソフトウェア（ＰＣ）ビデオデコーダ／プレイヤ、携帯電話のビデオなどが含まれる。
【００９７】
別の実施の形態によれば、デジタル画像の３次元動き補償のためのインストラクションをコンピュータ読み取り可能な記憶媒体に格納してもよい。一例として、これに限られないが、図７は、本発明の実施の形態に係る持続的なコンピュータ読み取り可能な記憶媒体７００の例を示す。記憶媒体７００には、コンピュータ・プロセッシング・デバイスが読み取って解釈することのできるフォーマットで格納されたコンピュータ読み取り可能な命令が含まれる。一例として、これに限られないが、コンピュータ読み取り可能な記憶媒７６００は、ＲＡＭまたはＲＯＭのようなコンピュータ読み取り可能なメモリ、固定ディスクドライブ（たとえば、ハードディスクドライブ）に対するコンピュータ読み取り可能なストレージディスク、またはリムーバブルディスクドライブであってもよい。さらに、コンピュータ読み取り可能な記憶媒体７００は、フラッシュメモリデバイス、コンピュータ読み取り可能なテープ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ブルーレイ（商標）、ＨＤ−ＤＶＤ、ＵＭＤ、あるいは他の光記憶媒体を含む。
【００９８】
記憶媒体７００は、デジタル画像の符号化を容易にするように構成された符号化インストラクション７０１を含む。このインストラクションは、コンピュータプロセッサによって実行できる適当なプログラミング言語で符号化される。記憶媒体はまた、符号化インストラクション７０１にしたがって符号化されたデジタル画像の復号を容易にするように構成された復号インストラクション７２１を含む。符号化インストラクションと復号インストラクションの両方が便宜上示されていることに留意する。しかしながら、これは、本発明の限定として解釈されるべきではない。別の方法として、記憶媒体７００は、符号化インストラクション７０１を含むが、復号インストラクション７２１を含まないものであってもよく、あるいは、符号化インストラクション７０１を含まないで復号インストラクション７２１だけを含むものであってもよい。記憶媒体７００はまた、オプションとして、符号化インストラクション７０１と復号インストラクション７２１から分離することのできるディスプレイインストラクション７３１を含んでもよい。
【００９９】
符号化インストラクション７０１は、たとえば図１Ａを参照して上述したようなデジタルピクチャ符号化処理の一部を実装するように構成される。特に、符号化インストラクション７０１は、係数生成インストラクション７０３を含み、実行されると、符号化されるデジタルピクチャのセクションに対する予測誤差の集合から変換係数の集合を生成する。符号化インストラクション７０１はさらに、第１予測パラメータ値集合決定インストラクション７０５を含み、現在符号化中のセクションおよび同じまたは異なるピクチャからの以前に復号された参照セクションにもとづいてエンコーダ側で予測パラメータ値（たとえば動きベクトル）の集合を生成する。符号化インストラクション７０１はさらに、第２予測パラメータ値集合決定インストラクション７０７を含み、予測されたピクセルおよび１以上の以前に復号されたセクションの予測誤差を用いてデコーダエミュレータによって予測パラメータ値（たとえば動きベクトル）の異なる集合を生成する。予測されたピクセルと予測誤差が再構成されたピクセルを計算するために使われる。符号化インストラクション７０１はさらに、比較予測パラメータ集合インストラクション７０９を含み、これが実行されると、第３予測パラメータ値集合を特定するために第１予測パラメータ値集合が第２予測パラメータ値集合と比較される。ここで、第３予測パラメータ値集合は、第２集合にはない第１集合からの１以上のパラメータ値を特定する情報を含む。符号化インストラクション７０１はさらに、送信インストラクション７１１を含む。これが実行されると、コンピュータプロセッサは変換係数集合と第３予測パラメータ値集合を送信するが、予測パラメータ値の第１および第２集合の両方に共通する１以上のパラメータは省略される。変換係数と第３予測パラメータ値は、さらなる処理のために異なるデバイスまたは符号化プログラムの異なる部分に送信されることに留意する。
【０１００】
復号インストラクション７２１が実行されたとき、コンピュータプロセッサは、１以上のデジタルピクチャの１以上の符号化されたセクションを表すデータが含まれた１以上のデータパケットを復号する。ここで、１以上のデータパケットは、変換係数の集合と予測パラメータの部分集合を含む。復号インストラクション７２１は、逆変換インストラクション７２３を含み、デコーダと一体となって変換係数に逆変換を適用して予測誤差値の集合を生成する。復号インストラクション７２１はまた、予測パラメータ生成インストラクション７２５を含み、実行されると、予測ピクセルの集合と１以上のデジタルピクチャの１以上の以前に復号されたセクションの予測誤差値を用いて、デコーダと一体となって１以上の推定された予測パラメータ値を生成する。復号インストラクション７２１はまた、予測置換インストラクション７２７を含み、実行されると、コンピュータプロセッサは、予測パラメータの部分集合から１以上の対応する予測パラメータを用いて１以上の推定された予測パラメータ値を置換し、予測パラメータの出力集合を生成する。復号インストラクション７２１はまた、復号セクション生成インストラクション７２９を含み、実行されると、予測誤差値の集合と予測パラメータの出力集合を用いてデコーダとともに１以上の復号されたセクションを生成する。
【０１０１】
本発明の実施の形態は、予測パラメータ値として格納されるか送信されるデータ量を減らすことによって、エンコーダ側で送信されるか、デコーダ側に格納されるデータ量を著しく減らすことができる改良されたビデオコーデックを提供する。
【０１０２】
本発明の好ましいバージョンを参照しながらかなり詳細に本発明を説明したが、他のバージョンも可能である。たとえば、予測パラメータが動きベクトルの成分である実施の形態を説明したが、本発明の実施の形態は、フィルタパラメータ、拡散値、光強度値、色差、輝度、その他の予測パラメータ値のような他の値が含まれる実装であってもよい。また、予測誤差に適用される変換が離散コサイン変換（ＤＣＴ）である特定の実施の形態が記載されているが、本発明の実施の形態はそのような実装に限定されるものではない。他のフーリエ型変換又はウェーブレット変換を用いてもよい。したがって、添付の請求項の趣旨および範囲は、ここに含まれる好ましいバージョンの説明に限定されるべきではない。むしろ、本発明の範囲は、添付の請求項をその均等物の全範囲とともに参照することで決定されるべきである。
【０１０３】
この明細書（添付の請求項、要約、図面を含めて）に開示したすべての特徴は、明示的に断らない限り、同じ目的または等価ないしは類似の目的を達する代替的な特徴で置き換えることができる。したがって、明示的に断らない限り、開示された各特徴は、等価または類似の特徴の包括的な体系のほんの一例である。いずれの特徴も、好ましいかどうかを問わず、他の特徴と組み合わせてもよい。請求項において、明示的に断らない限り、各項目は１またはそれ以上の数量である。請求項において「〜のための手段」のような語句を用いて明示的に記載する場合を除いて、請求項のいずれの構成も、３５ＵＳＣ§１１２第６パラグラフに規定された「手段」または「ステップ」として解釈されるものではない。特に請求項において「〜のステップ」を用いても３５ＵＳＣ§１１２第６パラグラフの規定を行使することを意図したものではない。
【０１０４】
この明細書と同時に提出され、この明細書とともに公衆の閲覧に付されたすべての書面に読者の注意は向けられるものであり、それらの書面の内容を参照によりここに組み込む。
【０１０５】
本発明の好ましい実施の形態を完全な形で説明してきたが、いろいろな代替物、変形、等価物を用いることができる。したがって、本発明の範囲は、上記の説明を参照して決められるものではなく、請求項により決められるべきであり、均等物の全範囲も含まれる。ここで述べた特徴はいずれも、好ましいかどうかを問わず、他の特徴と組み合わせてもよい。請求項において、明示的に断らない限り、各項目は１またはそれ以上の数量である。請求項において「〜のための手段」のような語句を用いて明示的に記載する場合を除いて、請求項がミーンズ・プラス・ファンクションの限定を含むものと解してはならない。
【図１Ａ】
2013546267.tif 000003
【図１Ｂ】
2013546267.tif 000004
【図１Ｃ】
2013546267.tif 000005
【図２Ａ】
2013546267.tif 000006
【図２Ｂ】
2013546267.tif 000007
【図３】
2013546267.tif 000008
【図４】
2013546267.tif 000009
【図５】
2013546267.tif 000010
【図６】
2013546267.tif 000011
【図７】
2013546267.tif 000012
【手続補正書】
【提出日】平成25年10月8日(2013.10.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
デジタルピクチャの現在のセクションを符号化する方法であって、
ａ）エンコーダを用いてデジタルピクチャの現在のセクションに対する予測誤差の集合から変換係数の集合を生成するステップと、
ｂ）前記エンコーダを用いて前記デジタルピクチャの前記現在のセクションに対する１以上の予測パラメータの第１集合を決定するステップと、
ｃ）予測されたピクセルと１以上の以前に復号されたセクションの予測誤差値を用いてデコーダエミュレータにおいて前記デジタルピクチャの前記現在のセクションに対する１以上の予測パラメータの第２集合を決定するステップと、
ｄ）予測パラメータの前記第１集合を予測パラメータの前記第２集合と比較し、前記第２集合にはない前記第１集合からの１以上のパラメータ値を特定する情報を含む予測パラメータの第３集合を特定するステップと、
ｅ）前記変換係数の集合と予測パラメータ値の前記第３集合を送信し、予測パラメータ値の前記第１集合および前記第２集合の両方に共通する１以上のパラメータは送信を省略するステップとを含むことを特徴とする方法。
【請求項２】
３次元動き補償を用いてデジタルピクチャの現在のセクションを符号化するための装置であって、
プロセッサと、
メモリと、
前記メモリに具体化され、前記プロセッサで実行可能なコンピュータコードのインストラクションとを含み、
前記コンピュータコードのインストラクションは、３次元動き補償を用いてデジタルピクチャの現在のセクションを符号化／復号するための方法を実装するように構成されており、前記方法は、
ａ）エンコーダを用いてデジタルピクチャの現在のセクションに対する予測誤差の集合から変換係数の集合を生成するステップと、
ｂ）前記エンコーダを用いて前記デジタルピクチャの前記現在のセクションに対する１以上の予測パラメータの第１集合を決定するステップと、
ｃ）予測されたピクセルと１以上の以前に復号されたセクションの予測誤差値を用いてデコーダエミュレータにおいて前記デジタルピクチャの前記現在のセクションに対する１以上の予測パラメータの第２集合を決定するステップと、
ｄ）予測パラメータの前記第１集合を予測パラメータの前記第２集合と比較し、前記第２集合にはない前記第１集合からの１以上のパラメータ値を特定する情報を含む予測パラメータの第３集合を特定するステップと、
ｅ）前記変換係数の集合と予測パラメータ値の前記第３集合を送信し、予測パラメータ値の前記第１集合および前記第２集合の両方に共通する１以上のパラメータは送信を省略するステップとを含むことを特徴とする装置。
【請求項３】
前記第１集合、第２集合および第３集合における前記１以上の予測パラメータ値は３次元動きベクトルの１以上の成分を含む請求項２の装置。
【請求項４】
ステップｂ）はイントラ予測を用いて３次元動きベクトルを決定するステップを含む請求項３の装置。
【請求項５】
ステップｂ）はインター予測を用いて３次元動きベクトルを決定するステップを含む請求項３の装置。
【請求項６】
前記１以上の予測パラメータ値は、前記現在のセクションの３次元移動を特徴づけるベクトルを含む請求項２の装置。
【請求項７】
前記１以上の予測パラメータ値は、前記現在のセクションの３次元回転運動を特徴づけるベクトルを含む請求項２の装置。
【請求項８】
前記１以上の予測パラメータ値は、前記現在のセクションにおけるクロミナンスと輝度を特徴づけるベクトルを含む請求項２の装置。
【請求項９】
前記１以上の予測パラメータ値は前記現在のセクションにおける光拡散を特徴づける１つのパラメータを含む請求項２の装置。
【請求項１０】
前記１以上の予測パラメータ値は前記３次元動きベクトルとともに使われる参照セクションを示す１つのパラメータを含む請求項３の装置。
【請求項１１】
前記情報は、デコーダが省略されたパラメータを探索することのできる値の範囲を特定する請求項２の装置。
【請求項１２】
ステップｅ）は、デコーダが省略されたパラメータを探索することのできる範囲の近傍ピクセルのインデックスを送信するステップを含む請求項２の装置。
【請求項１３】
ステップｅ）は、前記第１集合における１以上の値と前記第２集合における１以上の対応する値の差分を送信するステップを含む請求項２の装置。
【請求項１４】
コンピュータ読み取り可能なプログラムコードが具体化された一過性でないコンピュータ読み取り可能な記録媒体であって、
前記プログラムコードは、実行されたときに、３次元動き補償を用いてデジタルピクチャの現在のセクションを符号化／復号するための方法を実装するコンピュータ実行可能なインストラクションを含み、前記方法は、
ａ）エンコーダを用いてデジタルピクチャの現在のセクションに対する予測誤差の集合から変換係数の集合を生成するステップと、
ｂ）前記エンコーダを用いて前記デジタルピクチャの前記現在のセクションに対する１以上の予測パラメータの第１集合を決定するステップと、
ｃ）予測されたピクセルと１以上の以前に復号されたセクションの予測誤差値を用いてデコーダエミュレータにおいて前記デジタルピクチャの前記現在のセクションに対する１以上の予測パラメータの第２集合を決定するステップと、
ｄ）予測パラメータの前記第１集合を予測パラメータの前記第２集合と比較し、前記第２集合にはない前記第１集合からの１以上のパラメータ値を特定する情報を含む予測パラメータの第３集合を特定するステップと、
ｅ）前記変換係数の集合と予測パラメータ値の前記第３集合を送信し、予測パラメータ値の前記第１集合および前記第２集合の両方に共通する１以上のパラメータは送信を省略するステップとを含むことを特徴とする記録媒体。
【請求項１５】
１以上のデジタルピクチャの１以上の符号化されたセクションを表すデータを含む１以上のデータパケットを復号するピクチャ復号方法であって、前記１以上のデータパケットは変換係数の集合と予測パラメータの部分集合を含み、前記方法は、
ａ）デコーダを用いて前記変換係数に逆変換を適用して予測誤差値の集合を生成するステップと、
ｂ）予測されたピクセルの集合と前記１以上のデジタルピクチャの１以上の以前に復号されたセクションの予測誤差値とを用いて前記デコーダにおいて１以上の推定された予測パラメータを生成するステップと、
ｃ）予測パラメータの前記部分集合から１以上の対応する予測パラメータを用いて前記デコーダにおいて１以上の前記推定された予測パラメータ値を置換し、予測パラメータの出力集合を生成するステップと、
ｄ）予測誤差値の前記集合と予測パラメータの前記出力集合を用いて前記デコーダにおいて１以上の復号されたセクションを生成するステップとを含むことを特徴とする方法。
【請求項１６】
ディスプレイにおいて前記１以上の復号されたセクションが含まれる１以上の復号されたデジタルピクチャを表示するステップをさらに含む請求項１５の方法。
【請求項１７】
ステップａ）は、前記予測誤差値から最良の前方変換を決定するステップと、前記変換係数に対応する逆変換を適用するステップとを含む請求項１５の方法。
【請求項１８】
ステップａ）は、前記１以上のデジタルピクチャの第１セクションに対する変換係数にデフォルトの逆変換を適用するステップを含む請求項１５の方法。
【請求項１９】
予測パラメータの前記部分集合は３次元動きベクトルの１以上の成分を含む請求項１５の方法。
【請求項２０】
前記１以上のデータパケットは値の範囲を含み、ステップｄ）は、省略された予測パラメータを前記範囲内で探索するステップを含む請求項１５の方法。
【請求項２１】
予測パラメータの前記部分集合は近傍ピクセルのインデックスを含み、ステップｃ）は、前記インデックスを用いて前記部分集合から省略された予測パラメータを探索するステップを含む請求項１５の方法。
【請求項２２】
予測パラメータの前記部分集合は予測値の差分の集合を含み、ステップｃ）は、前記差分を前記推定された予測パラメータ値と結合するステップを含む請求項１５の方法。
【請求項２３】
３次元動き補償を用いてデジタルピクチャの現在のセクションを復号するための装置であって、
プロセッサと、
メモリと、
前記メモリに具体化され、前記プロセッサで実行可能なコンピュータコードのインストラクションとを含み、
前記コンピュータコードのインストラクションは、１以上のデジタルピクチャの１以上の符号化されたセクションを表すデータを含む１以上のデータパケットを復号する方法を実装するように構成されており、前記１以上のデータパケットは変換係数の集合と予測パラメータの部分集合を含み、前記方法は、
ａ）デコーダを用いて前記変換係数に逆変換を適用して予測誤差値の集合を生成するステップと、
ｂ）予測されたピクセルの集合と前記１以上のデジタルピクチャの１以上の以前に復号されたセクションの予測誤差値とを用いて前記デコーダにおいて１以上の推定された予測パラメータを生成するステップと、
ｃ）予測パラメータの前記部分集合から１以上の対応する予測パラメータを用いて前記デコーダにおいて１以上の前記推定された予測パラメータ値を置換し、予測パラメータの出力集合を生成するステップと、
ｄ）予測誤差値の前記集合と予測パラメータの前記出力集合を用いて前記デコーダにおいて１以上の復号されたセクションを生成するステップとを含むことを特徴とする装置。
【請求項２４】
コンピュータ読み取り可能なプログラムコードが具体化された一過性でないコンピュータ読み取り可能な記録媒体であって、
前記プログラムコードは、実行されたときに、１以上のデジタルピクチャの１以上の符号化されたセクションを表すデータを含む１以上のデータパケットを復号する方法を実装するコンピュータ実行可能なインストラクションを含み、前記１以上のデータパケットは変換係数の集合と予測パラメータの部分集合を含み、前記方法は、
ａ）デコーダを用いて前記変換係数に逆変換を適用して予測誤差値の集合を生成するステップと、
ｂ）予測されたピクセルの集合と前記１以上のデジタルピクチャの１以上の以前に復号されたセクションの予測誤差値とを用いて前記デコーダにおいて１以上の推定された予測パラメータを生成するステップと、
ｃ）予測パラメータの前記部分集合から１以上の対応する予測パラメータを用いて前記デコーダにおいて１以上の前記推定された予測パラメータ値を置換し、予測パラメータの出力集合を生成するステップと、
ｄ）予測誤差値の前記集合と予測パラメータの前記出力集合を用いて前記デコーダにおいて１以上の復号されたセクションを生成するステップとを含むことを特徴とする記録媒体。
【国際調査報告】
2013546267.tif 000013