(57)【要約】      （修正有）【課題】適応係数スキャン順序付けを提供する。【解決手段】デジタルメディアコーデックは、デジタルメディアのローカル統計情報に従って変換係数の係数スキャン順序を適応的に並べ替えて、エントロピー符号化によって係数がより効率的に符号化されるようにする。圧縮デジタルメディアストリーム内でスキャン順序を復号器に明示的に伝達しなくて済むように、符号化および復号において、適応スキャン順序付けを因果的に適用する。適応スキャン順序付けでは、計算が効率的になるように統計分析情報が更新されるたびにスキャン順序を１回トラバースし、隣接する順番の係数の場所に対して条件付き交換操作を適用することによってスキャン順序を並べ替える。【選択図】図６
2011125038.tif 000002
【特許請求の範囲】
【請求項１】
デジタルメディアデータを含む圧縮されたビットストリームを復号するブロック変換ベースの方法であって、複数のエントロピー符号化係数値をもち、前記圧縮されたビットストリーム内に順々に連続して符号化された複数のブロックの各々に対して、以下のステップを繰り返す方法。
−前記圧縮されたビットストリーム内の複数の連続した符号化されたブロックのうちの現在のブロックの係数値をエントロピー復号するステップ
−スキャン順序にしたがって、前記現在のブロックに対する復号された係数値を、複数の場所を備えたブロック構造体に配列するステップ
−前記ブロック構造体全体にわたって前記各場所における非ゼロ値係数値の統計的発生率を分析するステップ
−前記各場所における非ゼロ値係数値の発生率の累積統計のセットを更新するステップであって、前記累積統計は、前記連続した符号化されたブロックの従前までに繰り返した全てのものから、前記各場所における非ゼロ値係数値の発生率を計上する、ステップ
−更新された前記累積統計にしたがって前記スキャン順序を適応化するステップであって、
前記各場所における非ゼロ値係数値の前記統計的発生率にしたがって前記各場所をソートするステップと、
前記ソート結果にしたがって前記スキャン順序を調整するステップと、
を含むステップ
【請求項２】
前記デジタルメディアデータのブロックを復号する間に、前記各場所における非ゼロ値係数値の統計的発生率を定期的にリセットするステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記スキャン順序を初期順序に初期化するステップと、
前記スキャン順序を定期的に再初期化するステップと、
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
デジタルメディアデータを含む圧縮されたビットストリーム復号するブロック変換ベースの方法を実施するための、コンピュータで実行可能なデジタルメディア処理プログラムを保持する、少なくとも１つのコンピュータ読取り可能記録媒体であって、前記方法が、
複数のエントロピー符号化係数値をもち、前記圧縮されたビットストリーム内の複数の連続した符号化されたブロックの各々に対して、前記圧縮されたビットストリーム内の前記ブロックの順序で、以下のステップを繰り返す方法であることを特徴とする、少なくとも１つのコンピュータ読取り可能記録媒体。
−前記圧縮されたビットストリーム内の複数の連続した符号化されたブロックのうちの現在のブロックの係数値をエントロピー復号するステップ
−スキャン順序にしたがって、前記現在のブロックに対する復号された係数値を、複数の場所を備えたブロック構造体に配列するステップ
−前記ブロック構造体全体にわたって前記各場所における非ゼロ値係数値の統計的発生率を分析するステップ
−前記各場所における非ゼロ値係数値の発生率の累積統計のセットを更新するステップであって、前記累積統計は、前記分析に基づいて、前記連続した符号化されたブロックの従前までに繰り返した全てのものから、前記各場所における係数値の発生率を計上する、ステップ
−更新された前記累積統計にしたがって前記スキャン順序を適応化するステップであって、
前記各場所における非ゼロ値係数値の前記統計的発生率にしたがって前記各場所をソートするステップと、
前記ソート結果にしたがって前記スキャン順序を調整するステップと、
を含むステップ
【請求項５】
前記方法が、
前記スキャン順序を初期順序に初期化するステップと、
前記デジタルメディアデータのブロックを復号する間に、前記各場所における非ゼロ値係数値の発生率の前記統計情報を定期的にリセットするステップと、
前記スキャン順序を定期的に前記初期順序に再初期化するステップと、
をさらに含むことを特徴とする請求項４に記載の少なくとも１つのコンピュータ読取り可能記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主に、ブロック変換ベースのデジタルメディア（たとえば、ビデオや画像）圧縮に関する。
【背景技術】
【０００２】
ブロック変換ベースの符号化の概要
変換符号化は、オーディオ、画像、およびビデオの多くの圧縮システムで用いられている圧縮手法である。非圧縮のデジタル画像やデジタルビデオは、一般に、２次元（２Ｄ）グリッドに並べられた、画像フレームまたはビデオフレーム内の各場所における画素または色のサンプルとして表されたり、キャプチャされたりする。これを、画像またはビデオの空間領域表現と呼ぶ。たとえば、一般的な画像フォーマットは、グリッドとして並べられた、２４ビットの色画素サンプルのストリームによって構成される。各サンプルは、グリッド内の画素の場所における色成分を表す色空間（特にＲＧＢやＹＩＱなど）内の数値である。画像やビデオの様々なシステムで、様々に異なる色解像度、空間解像度、および時間解像度のサンプリングを行うことが可能である。同様に、一般に、オーディオは時間サンプリングされたオーディオ信号ストリームによって表される。たとえば、一般的なオーディオフォーマットは、一定の時間間隔で取得されたオーディオ信号の１６ビット振幅サンプルのストリームによって構成される。
【０００３】
非圧縮デジタルのオーディオ、画像、およびビデオの各信号は、相当な記憶容量および伝送容量を消費し得る。変換符号化では、デジタルのオーディオ、画像、およびビデオのサイズを減らすために、信号の空間領域表現を周波数領域（または他の同様の変換領域）表現に変換し、その変換領域表現のうちの、一般に知覚されにくい特定の周波数成分の解像度を下げる。これによって発生するデジタル信号の知覚可能な劣化は、空間領域において画像またはビデオの色解像度または空間解像度を下げた場合や、時間領域においてオーディオの解像度を下げた場合と比較して、概して非常に小さい。
【０００４】
より具体的には、図１に示された一般的なブロック変換ベースのコーデック１００は、非圧縮デジタル画像の画素を、固定サイズの２次元ブロック（Ｘ１，．．．，Ｘｎ）に分割する（各ブロックは他のブロックと部分的に重なっている可能性がある）。各ブロックには、空間周波数分析を行う線形変換１２０−１２１が適用され、これによって、ブロック内の空間サンプルが、周波数（または変換）係数の集合に変換される。これらの係数は、そのブロック間隔にわたる、対応する周波数帯におけるデジタル信号の強度をおおまかに表したものである。圧縮に関しては、変換係数は選択的に量子化される（１３０）（すなわち、係数値の最下位ビットをドロップするか、あるいは、より高い解像度数の集合にある値をより低い解像度にマッピングするなどして、解像度を下げられる）ことが可能であり、さらに、エントロピー符号化または可変長符号化されて（１３０）圧縮データストリームになることが可能である。復号では、変換係数が逆変換１７０−１７１されて、元の色／空間サンプリングされた画像／ビデオ信号がほぼ再構築される（再構築されたブロック
【０００５】
【数１】
2011125038.tif 000003
【０００６】
になる）。
【０００７】
ブロック変換１２０−１２１は、サイズＮのベクトルｘに対する数学的演算として定義され得る。ほとんどの場合、この演算は線形乗算であり、変換領域出力ｙ＝Ｍｘが生成される（Ｍは変換行列である）。入力データが任意に長い場合はサイズＮのベクトルにセグメント化され、各セグメントにブロック変換が適用される。データ圧縮を行う場合は、可逆ブロック変換が選択される。言い換えると、行列Ｍは反転可能である。複数次元の場合（たとえば、画像やビデオの場合）、ブロック変換は、一般に、分離可能な（ｓｅｐａｒａｂｌｅ）演算として実装される。行列乗算は、データの各次元（すなわち、行と列の両方）に沿って別々に適用される。
【０００８】
圧縮に関しては、変換係数（ベクトルｙの成分）は選択的に量子化される（すなわち、係数値の最下位ビットをドロップするか、あるいは、より高い解像度数の集合にある値をより低い解像度にマッピングするなどして、解像度を下げられる）ことが可能であり、さらに、エントロピー符号化または可変長符号化されて圧縮データストリームになることが可能である。
【０００９】
復号器１５０における復号においては、図１に示すように、以上の演算の逆（逆量子化／エントロピー復号１６０および逆ブロック変換１７０−１７１）が、復号器１５０の側に適用される。データが再構築される間、逆行列Ｍ−１（逆変換１７０−１７１）が乗算子として、変換領域データに適用される。逆変換は、変換領域データに対して適用されると、元の時間領域または空間領域のデジタルメディアをほぼ再構築する。
【００１０】
用いられる変換としては、シンプルなＤＰＣＭタイプの予測子／修正子や、より複雑な構成のもの（ウェーブレットやＤＣＴ（離散コサイン変換）など）が可能である。一般に用いられている標準規格であるＪＰＥＧ／ＭＰＥＧ２／ＭＰＥＧ４、ＪＰＥＧ２０００、Ｗｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ Ｖｉｄｅｏ（ＷＭＶ）では、それぞれ、ＤＣＴ、ウェーブレット、整数化ＤＣＴ（ｉｎｔｅｇｅｒｉｚｅｄ−ＤＣＴ）を用いている。さらに、ＷＭＶでは、イントラブロックおよびイントラフレームの、見て分かる歪みやレート歪みに効果のある重複平滑化演算子（ｌａｐｐｅｄｓｍｏｏｔｈｉｎｇ ｏｐｅｒａｔｏｒ）を用いている。重複平滑化演算子は、ブロック変換との組み合わせで、非特許文献１において示されているタイプの重複変換を模擬しようとする。
【００１１】
係数のスキャンパターン
ＪＰＥＧ、ＭＰＥＧ２、ＭＰＥＧ４、およびＷＭＶを含む、多くのブロック変換ベースの符号器では、ランレングス符号化手法を用いて、特定ブロックに対応する量子化係数を符号化する（たとえば、特許文献２を参照）。ランレングス符号化は、所定のパターンに従って量子化変換係数のブロックをスキャンすることによって行われる。その一例が、図３に示した連続「ジグザグ」スキャンパターンである。スキャンパターンが連続であることについての本質的な要件はないが、同様の連続ジグザグスキャンパターンがＪＰＥＧやＭＰＥＧ２／４でも広く用いられている。
【００１２】
ランレングス符号化手法では、ベースとなる変換の統計情報を利用する。一般に、大きな係数ほど「ＤＣ」値寄りに発生し（ＤＣ値は慣例的に左上隅に表される）、頻出しない係数ほど、また、小さな係数ほど、ＤＣから距離をおいて発生する。たとえば、変換ブロックのほとんどの変換係数は、量子化後に値がゼロになるのが普通である。多くのスキャンパターンでは、値が非ゼロである可能性が高い係数ほど優先される。言い換えると、そのような係数は、スキャンパターンにおいて、より早くスキャンされる。このようにして、非ゼロの係数がひとかたまりになりやすく、その後に、値がゼロである係数の、１つまたは複数の長いグループが続く。このことは特に、より効率的なラン／レベル／ラスト符号化（ｒｕｎ／ｌｅｖｅｌ／ｌａｓｔｃｏｄｉｎｇ）につながるが、他の形式のエントロピー符号化でも、並べ替えの恩恵が得られる。
【００１３】
たとえば、ブロック次元や、画像の形式がインタレースかプログレッシブかに応じて、所定のスキャンパターンまたは静的なスキャンパターンの限定されたセットから選択するビデオ圧縮システムについて、特許文献１および特許文献２において説明されている。
【００１４】
【特許文献１】米国特許出願第１０／９８９８４４号明細書（Lin他、「Scan Patterns For Interlaced Video Content」、2004年11月15日出願）
【特許文献２】米国特許出願第１０／９８９５９４号明細書（Liang他、「Scan Patterns For Progressive Video Content」、2004年11月15日出願）
【特許文献３】Srinivasan他、「Improved Reversible Transform For Lossy And Lossless 2-D Data Compression」（米国特許出願明細書、2004年12月17日出願）
【特許文献４】Tu他、「Reversible Overlap Operator For Efficient Lossless Data Compression」（米国特許出願明細書、2004年12月17日出願）
【非特許文献１】H. S. Malvar, Signal Processing with Lapped Transforms, Artech House, Boston, MA, 1992
【非特許文献２】W. B. Pennebaker and J. L. Mitchell, JPEG: Still Image Compression Standard, Van Nostrand Reinhold, New York, 1993
【発明の開示】
【発明が解決しようとする課題】
【００１５】
既存のコーデックの所定の係数スキャンパターンの問題
しかしながら、本願発明者らの観察によれば、変換ブロック内の起こりうる係数のパターンには、ある種のローカルデータ依存性がある。たとえば、画像の水平次元と垂直次元のいくつかのブロックにまたがる場合もある、ざらつきのある領域においては、係数は予想どおりに発生する。一方、画像の垂直方向または水平方向に強い特徴がある領域では、その対応する軸に沿って係数が発生する可能性がより高い。したがって、ざらつきのある領域についての使用ビット数を減らすという意味で理想的なスキャンパターンが、直線的な特徴を有する領域についても理想的であるとは限らない。
【００１６】
また、重複変換を用いることが、スキャンパターンの最適性にさらに悪影響を及ぼす。ブロック変換の前のプリフィルタとして重複変換を実装した場合は、元の画像にある不連続部分がプリフィルタによって強調される。したがって、変換係数の分散がより大きくなり、さらに、最高周波数の強度がより高くなる。実際、（多くの変換の係数ブロックの右下にある変換係数である）最高２Ｄ周波数が、最も可能性が低いとは言えなくなることがしばしば観察されている。
【００１７】
一連の画像ブロックに対する所与のスキャン順序が最適でないことには、第３の理由がある。それは、「ＤＣＡＣ予測」の効率が変動することに基づいている。ＤＣＡＣ予測は、Ｘ次元またはＹ次元においてＤＣであって、その他においてＡＣである「ＤＣＡＣ」係数の発生および／または大きさを最小にするために用いられる符号化ツールである。これらは、軸に沿う係数である強く直線的である領域についてのＤＣＡＣ係数は、ランダムにざらつきのある領域についてのＤＣＡＣ係数より確実に予測可能である。したがって、最適なスキャン順序は、ベースとなるデータに依存するだけでなく、ベースとなるデータがそのＤＣＡＣ係数によっていかによく予測できるかにも影響される。
【課題を解決するための手段】
【００１８】
適応係数スキャン順序付け
上記の問題は、本明細書において説明する適応係数スキャン順序付け手法によって対処される。この手法では、ブロック係数のスキャン順序と画像のローカル統計情報とを効率的に照合する。説明するこの手法の実施態様は、計算が非常に効率的であり、遅延が最小限である。このことは、時間的条件がクリティカルな画像やビデオのコーデックにおいて重要な有利点である。さらに、説明する適応係数スキャン順序付けの実施態様では、符号器および復号器が因果的に遭遇する物事から統計情報を「学習」する。したがって、圧縮ビットストリーム内でシグナリングやビット使用を追加しなくても、付加情報が復号器に送信される。
【００１９】
本発明のその他の機能や有利点は、この後の添付図面を参照しながら、実施形態の詳細な説明から明らかになるであろう。
【発明を実施するための最良の形態】
【００２０】
以下の説明は、適応係数スキャン順序付け手法を利用するデジタルメディア圧縮システム（コーデック）に関する。例示のために、この適応係数スキャン順序付け手法を組み込んだ圧縮システムの実施形態を、画像またはビデオの圧縮システムとする。代わりに、他のデジタルメディアや２Ｄデータのための圧縮システム（コーデック）には、可逆オーバーラップ演算子を組み込むことも可能である。適応係数スキャン順序付け手法では、デジタルメディア圧縮システムが圧縮デジタルメディアデータを特定の符号化フォーマットによって符号化することは必須ではない。
【００２１】
１．符号器／復号器
図４および図５は、重複変換に基づき、後に詳述する適応係数スキャン順序付けを用いる代表的な２次元（２Ｄ）データ符号器４００および復号器５００で行われる処理を、一般化した図である。これらの図は、この適応係数スキャン順序付け手法の、２Ｄデータ符号器および復号器を組み込んだ圧縮システムでの使用および用途を一般化あるいは簡略化した図である。適応係数スキャン順序付け手法が組み込まれた別の符号器では、この代表的な符号器および復号器で示されているより多くの、あるいは少ない処理で２Ｄデータ圧縮を行うことも可能である。たとえば、符号器／復号器によっては、色変換、色フォーマット、スケーラブル符号化、可逆的符号化、マクロブロックモードなどを含むことも可能である。圧縮システム（符号器および復号器）は、可逆的から不可逆的までの幅がある量子化パラメータに基づくことが可能な量子化に応じて、２Ｄデータの可逆的圧縮および／または不可逆的圧縮を提供することが可能である。
【００２２】
２Ｄデータ符号器４００は、符号器への入力として提供された２Ｄデータ４１０の（標準的な入力に対して）よりコンパクトな表現である圧縮ビットストリーム４２０を生成する。たとえば、２Ｄデータ入力として、画像、ビデオシーケンスのうちの１フレーム、他の２次元データなどが可能である。２Ｄデータ符号器は、入力データを（この代表的符号器では１６×１６画素のサイズ）のマクロブロックに分割してタイリングする（４３０）。さらに、２Ｄデータ符号器は、各マクロブロックを４×４ブロックに分割してタイリングする（４３２）。ブロック間の各エッジに「順方向オーバーラップ」演算子４４０を適用し、その後に、各４×４ブロックをブロック変換４５０によって変換する。このブロック変換４５０は、特許文献３で説明されている可逆性スケールフリー２Ｄ変換であることが可能である。オーバーラップ演算子は、特許文献４で説明されている可逆性オーバーラップ演算子であることが可能である。代替として、離散コサイン変換または他のブロック変換、重複変換、およびオーバーラップ演算子を用いることが可能である。この変換に続き、各４×４変換ブロックのＤＣ係数４６０が、同様の処理連鎖（タイリング、順方向オーバーラップ、その後に４×４ブロック変換）の対象になる。結果として得られるＤＣ変換係数およびＡＣ変換係数を、量子化し（４７０）、エントロピー符号化し（４８０）、パケット化する（４９０）。
【００２３】
復号器は、逆の処理を実行する。復号器側では、各パケットから変換係数ビットを抽出し（５１０）、そこから係数自体を復号（５２０）および逆量子化（５３０）する。逆変換を適用してＤＣ係数５４０を再生成し、好適な平滑化演算子をＤＣブロックエッジ全体にわたって適用して、ＤＣ係数の平面を「逆オーバーラップ」する。続いて、ＤＣ係数に４×４逆変換５５０を適用してデータ全体を再生成し、ビットストリームからＡＣ係数５４２を復号する。最後に、得られた画素平面内のブロックエッジを逆方向オーバーラップフィルタリングする（５６０）。これによって、再構築された２Ｄデータ出力が生成される。
【００２４】
２．適応係数スキャン順序付け
例示的なデジタルメディア圧縮システムの符号器４００（図４）および復号器５００（図５）は、適応係数スキャン順序付け手法を利用して、変換係数をエントロピー符号化する際の圧縮効率をさらに高める。この適応係数スキャン順序付けでは、エントロピー符号化４８０（図４）によって、より効率的に係数を符号化できるように、デジタルメディアデータのローカル統計情報に従って、ブロック係数のスキャン順序を効率的に調整する。適応係数スキャン順序付け手法の例示的実施態様では、符号器側と復号器側とで同じ決定処理を行って、符号器および復号器でメディアデータが処理される際に因果的に発生する物事からローカル統計情報を学習することにより、復号器に付加情報を送信するためにシグナリングまたはビット使用が追加されないようにする。さらにこの手法の例示的実施態様は、デジタルメディアストリームの符号化／復号における遅延を最小限にするために、計算が非常に効率的である（この点は、ライブ通信や同様の用途において有利となりうる）。
【００２５】
この適応係数スキャン順序付け手法の例示的実施態様は、以下の特性を有する。
１．スキャン順序は、デジタルメディアデータ（たとえば、画像）全体にわたって変更可能である。ただし、スキャン順序の変更または更新は、１つのブロック内でそのスキャン順序を用いた後のみに限定される。
２．スキャン順序適応化のアルゴリズムは、連続する２つのスキャンインデックスが特定の条件下で反転する条件付きの交換ステップに基づいている。
【００２６】
図６は、符号器４００および復号器５００における適応係数スキャン順序付け手法の一実施態様による手順６００を示す。手順６００は、操作６１０から始まる。操作６１０では、係数スキャン順序（または、複数のスキャン順序が（たとえば、水平係数および垂直係数に対して）適応的に変化する場合の順序）を、標準的な範囲のデータ全体にわたって良好にスキャンすると予想される既知の順序付けに初期化する。適応係数スキャン順序付け手法の実施態様によっては、この初期順序付けは、（たとえば、マクロブロックの係数スキャン順序付けであれば、「垂直」方向性に対して優勢な「水平」方向性が示されるように）スキャン順序の状況が異なれば異なる可能性がある。適応係数スキャン順序付け手順の実施態様によっては、方向性またはスキャン状況が、符号器から復号器に明示的に伝達されることが可能である。他の実施態様では、この方向性は、ＡＣ係数に先立って送信されるＤＣサブバンドの方向から推論されることが可能である。たとえば、図７は、水平方向性を有する４×４ブロックの初期スキャン順序７００の例である。図８は、垂直方向性を有する４×４ブロックの初期スキャン順序８００の例である。この例では、水平方向性のスキャン順序７００は、特定の方向性を示さないブロックについても使用される初期スキャン順序である。
【００２７】
図９に示すように、例示的手順６００では、２つの１次元配列（Ｏｒｄｅｒ（順序）配列９１０とＴｏｔａｌｓ（総計）配列９２０）を用いてブロック係数のローカル統計情報を追跡する。各スキャン順序状況に対して別々の配列セットが保持される。例示的実施態様では、この配列（「Ｏｒｄｅｒ」とラベルづけされている）は、逆スキャン、すなわち、昇順のスキャン順序で係数のインデックスを、エントリとして含む。手順６００では、この配列を、初期化操作６１０で初期スキャン順序として初期化する。図９は、図８に示した初期垂直方向性スキャン順序の例８００の、初期化時にＯｒｄｅｒ配列９１０に記憶されている値を示す。この図では、ＤＣ係数がＡＣ係数の前に送信されるので、ＤＣ係数は配列には現れない。
【００２８】
各逆スキャンのＯｒｄｅｒ配列９１０について、手順６００では、（この図では）「Ｔｏｔａｌｓ」とラベルづけされた配列を保管する。手順６００では、この配列の中で、それぞれの係数の発生率を総計する。次の操作６２０で、Ｔｏｔａｌｓ配列を、任意の降順の値で初期化する。たとえば、ある値ｋに対して、この配列は値｛ｋ＊Ｎ，ｋ＊（Ｎ−１），ｋ＊（Ｎ−１），．．．，ｋ｝で埋められる。これを、図９の表の下側の行に示す。この例での値ｋは、小さな整数（一般に２と４の間）であるように選択される。適応係数スキャン順序付け手順の実施態様によっては、ｋの選択は、量子化４７０（図４）で用いられる量子化パラメータに基づくことが可能である。
【００２９】
符号化処理の間に、手順６００では、Ｏｒｄｅｒ配列９１０の要素に反映されたスキャン順序に従って現在のブロックの係数をトラバースする（「ｆｏｒ」ループ６３０、６８０で示されている）。このトラバースでは、Ｔｏｔａｌｓ配列９２０で反映されている、係数の発生率の統計情報を更新する。より具体的には、この例示的な実施態様の操作６１０で、それぞれの係数における非ゼロ値の発生率に従ってＴｏｔａｌｓ配列を更新する。スキャンのｎ番目の要素が非ゼロの場合（すなわち、インデックスがＯｒｄｅｒ［ｎ］である変換係数が非ゼロの場合）は、操作６４０および操作６５０で示されるように、Ｔｏｔａｌｓのｎ番目の要素を１だけ増加させる（すなわち、Ｔｏｔａｌｓ［ｎ］：＝Ｔｏｔａｌｓ［ｎ］＋１）。
【００３０】
増加の後にＴｏｔａｌｓ［ｎ］＞Ｔｏｔａｌｓ［ｎ−１］であることが判明した場合は、この時点で、前の非ゼロ値の係数より高い周波数の、現在の係数で非ゼロ値が発生したことになる。そのようなイベント（操作６６０）の場合は、交換操作６７０がスキャン順序に適用される。交換操作６７０では、以下の擬似コードに示すように、スキャン順序および対応するＴｏｔａｌｓのｎとｎ−１とを交換する。
【００３１】
【表１】
2011125038.tif 000004
【００３２】
交換操作６７０の結果として、交換前のインデックスがＯｒｄｅｒ［ｎ］であった係数が、交換前のインデックスがＯｒｄｅｒ［ｎ−１］であった係数より先にスキャンされるようになる。これは、実質的には、係数の非ゼロ値の発生率に基づく、係数のバブルソートである。
【００３３】
たとえば、図１０は、Ｔｏｔａｌｓ［ｎ］＞Ｔｏｔａｌｓ［ｎ−１］である状況を示している。矢印は、交換が必要な要素を示している。図１１は、交換後のＯｒｄｅｒ配列とＴｏｔａｌｓ配列とを示しており、図１２は、対応する、４×４ブロックに対するスキャン順序インデックスを示している。
【００３４】
例示的適応係数スキャン順序付け手順６００では、Ｔｏｔａｌｓ［ｎ−１］とＴｏｔａｌｓ［ｎ−２］などの条件付き交換をさらに行うことはない。これは、１つの非ゼロ係数についてのスキャン順序配列の移動がせいぜい１つしかないことを意味しており、したがって、例示的な手順６００は、非ゼロ係数の数の複雑さが線形順序になっている。ループ６３０〜６８０内では、１つのブロックトラバースに対し係数を移動できるのは、スキャン順序のせいぜい１つの場所だけである。
【００３５】
例示的な手順６００では、各段階での最適性は保証されないが、長期的には、スキャン配列が、順序付けアルゴリズムの論理に基づいて、定常分布のための全体的な最適性に近づくことが可能である。
【００３６】
適応化処理には、（ループ６３０〜６８０内の）現在の係数と、（非ゼロであったかどうかにかかわらず）前のスキャン要素だけが必要であることと、さらに、係数が変換行列から符号化されたときか、係数が変換行列に復号された後に条件付き切り換えが発生することから、適応化は因果的である。すなわち、現在のスキャン順序を用いてブロック全体を符号化することが可能である。その後で、符号化された非ゼロ係数とＴｏｔａｌｓ配列とに基づいてスキャン順序を変更することが可能である。したがって、符号化または復号の処理に新たに遅延が発生することはない。
【００３７】
現在のブロックのすべての係数をトラバースした後、操作６９０で、符号化／復号すべきブロックがデジタルメディアデータ（たとえば、符号化中の画像）にまだあるかどうかを確認する。すべてのブロックが処理されたら、手順６００が終了する。
【００３８】
手順６００では、定期的に、Ｔｏｔａｌｓ配列を初期化状態にリセットする。これは、計算のオーバーフローを防ぐためと、適応化を容易にするためである。画像圧縮符号における適応係数スキャン順序付け手順の一実施態様では、８マクロブロックの一塊りを開始するたびにＴｏｔａｌｓ配列をリセットする（マクロブロックは、輝度画素の１６×１６配列であり、対応するクロミナンス画素を含む）。Ｔｏｔａｌｓ配列の各要素の最大値は、８（マクロブロック数）×１６（マクロブロック内の特定周波数の係数の数）×３（マクロブロック内の色平面の数）＝３８４に最大初期化値（５１１未満であれば安全）を加えた数に制限されている。このケースでは、Ｔｏｔａｌｓ配列には９ビットあれば十分である。適応化をより早くしたり遅くしたりするために他のリセット間隔を選択することも可能であり、リセット間隔は、量子化パラメータに依存する可能性がある。したがって、手順６００では、操作６９２で示された、Ｔｏｔａｌｓ配列のリセット間隔において、次のブロックの係数の処理に進む前に、操作６２０にループバックしてＴｏｔａｌｓ配列を初期化することが可能である。
【００３９】
他の（より頻繁でない）周期的な間隔で、Ｔｏｔａｌｓ配列とＯｒｄｅｒ配列の両方を初期化状態にリセットして、それらの場所でのランダムアクセスを容易にする。操作６９３において、そのような間隔でＴｏｔａｌｓ配列およびＯｒｄｅｒ配列の初期化操作６１０にループバックする。たとえば、コーデックの実施態様に応じて、画像ビットストリームの独立に符号化された部分へのエントリポイントで初期化状態にリセットしたり、ビデオシーケンスの各画像の開始時に初期状態にリセットしたりすることが可能である。
【００４０】
３．バブルソートとの比較
バブルソートは、データの配列をソートするための、従来のコンピュータ手順である。バブルソート手順は、以下のように示すことができる。（一般性を失うことなく、数値であると仮定できる）Ｎ個の要素の配列をＸで表す。Ｘ［ｉ］はｉ番目の要素であり、インデックスｉは、１からＮまでの値をとる。
【００４１】
バブルソートは、配列をＮ−１回トラバースすることによって行われ、各トラバースは、Ｎ−１回の条件付き交換操作からなる。ソート順序が昇順の場合の条件付き交換操作は、以下のように定義される。
２とＮとの間のｉについては、Ｘ［ｉ−１］＞Ｘ［ｉ］の場合に配列要素のＸ［ｉ−１］とＸ［ｉ］とを交換する。
各トラバースの間に、２で始まり、Ｎまで順に続く各インデックスｉに対して条件付き交換操作を適用する。
【００４２】
Ｎ−１回のトラバースの最後に、配列Ｘがソートされる。降順またはアルファベット順にソートする場合や、ランク順序インデックスを生成する場合も、同じ手順を、わずかな変更で用いることが可能である。実際には、バブルソートは、実行時間がかかることから、あまり用いられない。
【００４３】
本明細書で説明した適応係数スキャン順序付け手順６００は、同様の条件付き交換操作（すなわち、条件付き交換操作６６０、６７０）に基づいている。適応係数スキャン順序付け手順６００の例示的な実施態様は、図示された手順６００がより緩やかな更新スケジュールに従う点でバブルソートと異なる。より具体的には、以下の２つの点がバブルソートと異なる。
１．符号化／復号されたブロックごとに、配列のトラバースは１回だけである。
２．各トラバースの間に、非ゼロ係数に対応する配列要素に対してのみ条件付き交換操作を適用する。
【００４４】
これらの違いは、手順６００の計算の複雑さを、任意の画像／ビデオコーデックの性能の範囲に収めて、その範囲で十分なものにするために役立つ。同時に、手順６００において条件付き交換操作６６０、６７０を行うことは、バブルソートの場合と同様に、（Ｔｏｔａｌｓ配列に反映される）統計情報が安定している場合に漸近的な意味で最適性が保持されるという恩恵がある。
【００４５】
例示的な適応係数スキャン順序付け手順６００は、固定スキャンテーブルを用いるエントロピー符号化方式と比較して、２％もビットレートを節約できることがわかっている。あるいは、この手法を他の高度な状況モデルと併用して、いくつかの適応テーブルのうちのいずれかを選択することや、さらに、Ｈｕｆｆｍａｎ符号化、ビットプレーン符号化、または算術符号化などの手法と併用して、データをランレングス符号化することが可能である。たとえば、ハイパスバンドとローパスバンドとで異なる適応スキャンモデルを用いることが可能である。
【００４６】
この適応係数スキャン順序付け手法を用いて、より大きな変換サイズを符号化したり、複数の変換形状で（たとえば、４ｘ８サイズブロックと８ｘ４サイズブロックとで）符号化したりすることが可能である。同様に、任意の所定の様式で、画面全体にわたってブロックまたはマクロブロックをスキャンすることが可能である。条件付き交換ステップは、性能的に有利になるように、あるいは、著作権管理のために性能を落としたり、不明瞭にしたりするために、ヒステリシスまたは別のルールを用いることが可能である。
【００４７】
４．コンピューティング環境
適応係数スキャン順序付け手法を利用する、前述のコーデックは、デジタルメディア信号処理を実施できる任意の様々な装置で実現されることが可能であり、様々な例の中でも特に、コンピュータ、画像およびビデオの記録／送信／受信装置、ポータブルビデオプレーヤ、ビデオ会議システムなどで実現されることが可能である。デジタルメディア符号化手法は、ハードウェア回路で実施可能であるほか、図１３に示すようなコンピュータまたは他のコンピューティング環境で実行されるデジタルメディア処理ソフトウェアでも実施可能である。
【００４８】
図１３は、本明細書に記載の実施形態の実施に好適なコンピューティング環境（１３００）の一般的な例を示す。本発明は、様々な汎用または専用コンピューティング環境で実施可能なので、コンピューティング環境（１３００）は、本発明の使用または機能性の範囲を何ら限定するものではない。
【００４９】
図１３に示すように、コンピューティング環境（１３００）は、少なくとも１つの処理ユニット（１３１０）とメモリ（１３２０）とを含む。図１３では、この最も基本的な構成（１３３０）を破線で囲んでいる。処理ユニット（１３１０）は、コンピュータで実行可能な命令を実行し、実際のプロセッサであっても仮想のプロセッサであってもよい。マルチプロセッサシステムでは、処理能力を高めるために、複数の処理ユニットが、コンピュータで実行可能な命令を実行する。メモリ（１３２０）は、揮発性メモリ（たとえば、レジスタ、キャッシュ、ＲＡＭなど）、不揮発性メモリ（たとえば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなど）、またはこれらの組み合わせであることが可能である。メモリ（１３２０）は、本明細書に記載の符号器／復号器および適応係数スキャン順序付け手法を実現するソフトウェア（１３８０）を格納する。
【００５０】
コンピューティング環境は、その他の機能を有することが可能である。たとえば、コンピューティング環境（１３００）は、記憶装置（１３４０）、１つまたは複数の入力装置（１３５０）、１つまたは複数の出力装置（１３６０）、および１つまたは複数の通信接続（１３７０）を含む。バス、コントローラ、ネットワークなどの相互接続メカニズム（図示せず）は、コンピューティング環境（１３００）のコンポーネント同士を相互接続する。一般に、オペレーティングシステムソフトウェア（図示せず）は、コンピューティング環境（１３００）内で実行される他のソフトウェアの動作環境を提供し、コンピューティング環境（１３００）の各コンポーネントのアクティビティをコーディネートする。
【００５１】
記憶装置（１３４０）は、リムーバブルであっても非リムーバブルであってもよく、磁気ディスク、磁気テープまたはカセット、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、または他の任意の情報を格納するために用いられることが可能であってコンピューティング環境（１３００）内でアクセスされることが可能な媒体を含む。記憶装置（１３４０）は、コーデックおよび適応係数スキャン順序付け手法を実現するソフトウェア（１３８０）のための命令を格納する。
【００５２】
入力装置（１３５０）は、キーボード、マウス、ペン、トラックボールなどのタッチ入力装置、音声入力装置、スキャン装置、または他の、コンピューティング環境（１３００）への入力を提供する装置であることが可能である。オーディオの場合、入力装置（１３５０）は、オーディオ入力をアナログまたはデジタル形式で受け入れるサウンドカードまたは同様の装置か、オーディオサンプルをコンピューティング環境に提供するＣＤ−ＲＯＭリーダであることが可能である。出力装置（１３６０）は、ディスプレイ、プリンタ、スピーカ、ＣＤライタ、または他の、コンピューティング環境（１３００）からの出力を提供する装置であることが可能である。
【００５３】
通信接続（１３７０）は、通信媒体を介しての、別のコンピューティングエンティティとの通信を可能にする。通信媒体は、コンピュータで実行可能な命令のような情報、圧縮されたオーディオまたはビデオの情報、または他のデータを、変調データ信号で搬送する。変調データ信号は、信号内の情報を符号化するように、その１つまたは複数の特性を設定したり変化させたりする信号である。限定ではなく例として、通信媒体は、電気、光、ＲＦ、赤外線、音響、またはその他の搬送波によって実施される、有線または無線の技術を含む。
【００５４】
本明細書で説明したデジタルメディア処理手法は、コンピュータ読取り可能媒体の一般的な文脈で記述されることが可能である。コンピュータ読取り可能媒体は、コンピュータ環境内でのアクセスが可能な、任意の市販媒体である。限定ではなく例として、コンピューティング環境（１３００）では、コンピュータ読取り可能媒体は、メモリ（１３２０）、記憶装置（１３４０）、通信媒体、およびこれらの任意の組み合わせを含む。
【００５５】
本明細書で説明したデジタルメディア処理手法は、たとえば、プログラムモジュールに含まれ、コンピューティング環境において、ターゲットの実際または仮想のプロセッサに対して実行される、コンピュータで実行可能な命令のように、コンピュータで実行可能な命令の一般的な文脈で記述されることが可能である。一般に、プログラムモジュールは、特定のタスクを実行したり、特定の抽象データ型を実装したりするルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造体などを含む。プログラムモジュールの機能性は、様々な実施形態において、必要に応じて、プログラムモジュール間で結合されたり、分割されたりすることが可能である。プログラムモジュールに対する、コンピュータで実行可能な命令は、ローカルコンピューティング環境または分散コンピューティング環境内で実行されることが可能である。
【００５６】
本明細書の詳細説明では、説明のために、「決定する（ｄｅｔｅｒｍｉｎｅ）」、「生成する（ｇｅｎｅｒａｔｅ）」、「調整する（ａｄｊｕｓｔ）」、「適用する（ａｐｐｌｙ）」などの用語を用いて、コンピューティング環境におけるコンピュータ動作を記述した。これらの用語は、コンピュータによって実行される動作の高レベル抽象化であって、人間が実施する行動と混同されてはならない。これらの用語に対応する実際のコンピュータ動作は、実施態様によって異なる。
【００５７】
本発明の原理を適用することが可能な実施形態が多く存在しうることに鑑み、添付の特許請求項およびその等価物の範囲および趣旨に入りうる、そのような実施形態のすべてを本発明として権利請求するものである。
【図面の簡単な説明】
【００５８】
【図１】従来のブロック変換ベースのコーデックのブロック図である。
【図２】同じく先行技術における、図１のブロック変換ベースのコーデックと併せて、前処理操作および後処理操作として実装される空間領域重複変換のブロック図である。
【図３】先行技術の、連続ジグザグスキャンパターンを用いる係数スキャン順序を示す図である。
【図４】可逆オーバーラップ演算子を利用する重複変換に基づく符号器のフロー図である。
【図５】重複変換に基づく復号器のフロー図である。
【図６】図４の符号器と図５の復号器とにおける係数スキャン順序の適応化手順のフロー図である。
【図７】図６の適応係数スキャン順序付け手順のための、水平方向係数の初期スキャン順序を示す図である。
【図８】図６の適応係数スキャン順序付け手順のための、垂直方向係数の初期スキャン順序を示す図である。
【図９】係数の非ゼロ値の発生頻度と、対応するスキャン順序とを追跡するために、図６の適応係数スキャン順序付け手順で用いられる、初期化された順序（Ｏｒｄｅｒ）の配列と総計（Ｔｏｔａｌｓ）の配列の例を示す図である。
【図１０】係数のスキャン順序を並べ替えるために、図６の手順によって図９の配列の要素を交換するケースの例を示す図である。
【図１１】図１０に示した要素交換操作の結果の、図９の配列の要素の並びを示す図である。
【図１２】図１０に示した要素交換操作の結果としての、図９の配列の要素の、図１１に示した並びに対応するスキャン順序を示す図である。
【図１３】図４および図５の、空間領域重複変換が改善されたブロック変換ベースのコーデックの実装に好適なコンピューティング環境のブロック図である。
【符号の説明】
【００５９】
１００ コーデック
１１０、４００ 符号器
１５０、５００ 復号器
【図１】
2011125038.tif 000005
【図２】
2011125038.tif 000006
【図３】
2011125038.tif 000007
【図４】
2011125038.tif 000008
【図５】
2011125038.tif 000009
【図６】
2011125038.tif 000010
【図７】
2011125038.tif 000011
【図８】
2011125038.tif 000012
【図９】
2011125038.tif 000013
【図１０】
2011125038.tif 000014
【図１１】
2011125038.tif 000015
【図１２】
2011125038.tif 000016
【図１３】
2011125038.tif 000017