JP2007529184A - 動き予測を使用してデジタル・イメージ・データを圧縮するための方法および装置 - Google Patents

動き予測を使用してデジタル・イメージ・データを圧縮するための方法および装置 Download PDF

Info

Publication number
JP2007529184A
JP2007529184A JP2007503104A JP2007503104A JP2007529184A JP 2007529184 A JP2007529184 A JP 2007529184A JP 2007503104 A JP2007503104 A JP 2007503104A JP 2007503104 A JP2007503104 A JP 2007503104A JP 2007529184 A JP2007529184 A JP 2007529184A
Authority
JP
Japan
Prior art keywords
frame
motion
bit stream
coefficients
subband
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2007503104A
Other languages
English (en)
Inventor
ラマサストリー,ジャヤラム
チョウドフリー,パルト
プラサド,ラメッシュ
Original Assignee
シンドハラ・スーパーメディア・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/077,106 external-priority patent/US7522774B2/en
Priority claimed from US11/076,746 external-priority patent/US20050207495A1/en
Application filed by シンドハラ・スーパーメディア・インコーポレーテッド filed Critical シンドハラ・スーパーメディア・インコーポレーテッド
Publication of JP2007529184A publication Critical patent/JP2007529184A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • H04N19/619Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding the transform being operated outside the prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/647Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/87Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving scene cut or scene change detection in combination with video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

動き予測を使用してデジタル・イメージ・データを圧縮するための方法および装置を本明細書で説明する。一実施形態では、イメージ・シーケンスの各2つの連続するフレームに対して、それらの連続するフレーム間の動き予測が、フレームの輝度マップ上の動きを追跡して、輝度成分に関する動き予測情報を生成することによって実行される。輝度成分の動き予測情報は、次に、クロミナンス・マップに適用される。動き予測に応答して、各フレームのウェーブレット係数と動き予測情報が、目標伝送速度に基づいてビット・ストリームに符号化され、ただし、符号化されたウェーブレット係数が所定のアルゴリズムにしたがって予め決めたしきい値を満たす。また、他の方法および装置も説明する。

Description

本出願は、2004年3月10日に出願した米国特許仮出願第60/552,153号、2004年3月10日に出願した米国特許仮出願第60/552,356号、および2004年3月10日に出願した米国特許仮出願第60/552,270号の優先権を主張する。以上に識別された出願は、引用より本明細書に組み込まれる。
本発明は、一般に、マルチメディア・アプリケーションに関する。より詳細には、本発明は、動き予測を使用してデジタル・イメージ・データを圧縮することに関する。
過去十年にわたり、様々なシステムが、有線通信システムおよび/または無線通信システムを介して伝送するためのオーディオ/ビデオ・データの符号化と復号化に対して開発されてきた。そのカテゴリのほとんどのシステムは、例えば、ITU−Rec.H.264(H.264とも呼ばれる)標準やISO/IEC Rec.14496−10AVC(MPEG−4とも呼ばれる)標準などの、標準の圧縮/伝送技術を使用する。しかし、それらの技術の本来備わった一般性に起因して、それらの技術は、雑音のある低いビット伝送速度の無線チャネルを介した低電力の、あまり複雑ではないシステム(パーソナル・デジタル・アシスタントやスマートホンを含むが、それらには限定されないハンドヘルド・デバイスなどの)におけるシームレスな実施に必要とされる特定の品質を欠いている。
消費者が被る費用が、伝送されたデータの実際の量に正比例する、無線マーケットで急速に出現しつつある有望なビジネス・モデルに起因して、また、限られた帯域幅、処理能力、格納容量、バッテリ電力にも起因して、伝送されるべきオーディオ/ビデオ・データの圧縮の効率と速度は、そのようないずれのマルチメディア・コンテンツ配信システムの最終的な成功においても、大きな要因である。今日、使用されているほとんどのシステムは、よりハイエンドのデスクトップ・ワークステーション上で使用されている同一のシステムの追加設置されたバージョンである。ケーブルLAN/WANデータ伝送の本来備わった信頼性のために、エラー制御がクリティカルな問題ではなく、帯域幅がほとんど無限であると見なされることが可能なデスクトップ・システムとは異なり、限られた容量の無線ネットワークを介する伝送は、適切な処理技術およびエラー制御技術を活用して、商業的に成り立つマルチメディア圧縮−伝送システムに求められる忠実度レベルを実現することができるようなシステムの統合を要する。
従来のビデオ圧縮エンジン、つまり、コーデックは、2つの広いカテゴリに大きく分類される。ダウンロード・アンド・プレイ(D&P)プロファイルとして知られる1つのクラスの符号化戦略は、ファイル全体が、再生より前にローカル・メモリ上にダウンロードされることを要し、長い待ち時間につながるだけでなく(利用可能な帯域幅と実際のファイル・サイズに依存して)、ダウンロードされるペイロードのために用意されるべきバッファ・メモリの量も厳しく要求する。より高度なストリーミング・プロファイルを使用しても、物理レイヤにおける現世代の伝送機器の現在の物理的限界により、サービス・プロバイダは、初期待ち時間を要する(伝送の始めに)擬似ストリーミング能力と、ハンドヘルド・プロセッサの限られた処理能力に負担をかける、以降の継続的バッファリングとを組み込むことを余儀なくされる。今日、市場に出ているほとんどの市販の圧縮ソリューションは、プログレッシブ伝送能力を有しておらず、このことは、帯域幅が、最小しきい値を下回って低下する前の最後の完全なフレーム、パケット、またはビットまでしか、伝送できないことを意味する。ビデオ・コーデックのケースでは、現在のフレームの伝送より前に接続が切れた場合、そのフレームは永久に失われる。
従来のビデオ圧縮コードの別の欠点は、ほとんどのコーデックにおいて使用されるブロック・ベースの符号化スキームに起因して、ブロック・アーチファクトが生じることである。主観的な視覚的品質の低下は別にして、そのようなシステムは、追加のブロック除去フィルタによって生じさせられるボトルネックに起因して、劣悪なパフォーマンスに悩まされる。さらに別の欠点は、コンピューティング・プラットフォームの語長の限界に起因して、符号化された係数が、おおよその値にまで切り捨てられることである。このことは、ギブズ現象が、モスキート・ノイズとして知られる視覚的現象が生じることをもたらすオブジェクト境界に沿って、特に顕著である。このことに起因して、オブジェクト境界に沿ったぼけが、より顕著になって、全体的なフレーム品質の低下につながる。
さらに、一部のコーデックにおける動き予測の局所的性質は、動きによって誘起されるアーチファクトを生じさせ、それらのアーチファクトは、単純なフィルタリング・オペレーションによっては容易に平滑することができない。そのような問題は、特に、高速なモーション・クリップのケースや、フレーム・レートが自然なビデオ(例えば、25fpsまたは30fpsの非インタレース・ビデオ)のフレーム・レートを下回るシステムのケースにおいて生じる。いずれのケースでも、2つの連続するフレーム間の時間的冗長性は極めて低く(動きの多くは、フレーム自体の間に失われるので)、フレームにまたがる動きの追跡がより劣悪になる。以上の効果の性質は、特に長いフレーム・グループ(GoF)の場合、累積的である。
さらに、移動エンドユーザ・デバイスは低い処理能力や記憶容量によって制約される。シリコン・フットプリントの限界に起因して、市場に出ているほとんどの移動システムとハンドヘルド・システムは、システムのあらゆるDSPタスク、制御タスク、通信タスクを実行するのに中央処理装置(マイクロコントローラまたはRISC/CISCプロセッサ)のリソースをタイムシェアリングしなければならず、中央プロセッサにかかるビデオ/オーディオ処理負荷を軽減する専用プロセッサの備えを、ほとんど、または全く有さない。さらに、ほとんどの汎用の中央プロセッサは、最適なDSPパフォーマンスのために必要とされる独特のアーキテクチャを欠いている。したがって、移動ビデオ・コーデック設計は、効率および堅牢性の面において一貫性を維持しながら、クライアント・エンドの複雑さが、最小限でなければならない。
動き予測を使用してデジタル・イメージ・データを圧縮するための方法および装置を本明細書で説明する。一実施態様では、イメージ・シーケンスの各2つの連続するフレームに対して、それらの連続するフレーム間における動き予測が、フレームの輝度マップ上の動きを追跡して、輝度成分に関する動き予測情報を生成することによって実行される。輝度成分の動き予測情報は、次に、クロミナンス・マップに適用される。動き予測に応答して、各フレームのウェーブレット係数と動き予測情報が、目標伝送速度に基づいてビット・ストリームに符号化される。その際、符号化されたウェーブレット係数が所定のアルゴリズムにしたがって予め決めたしきい値を満たす。
本発明のその他の特徴は、添付の図面、および以下の詳細な説明から明白となろう。
本発明は、例として、限定としてではなく、同様の符号が同様の要素を指し示す添付の図面の図に示される。
動き予測を使用してデジタル・イメージ・データを圧縮するための方法および装置を本明細書で説明する。本出願における諸実施形態が対処する問題はデータを処理する速度、すなわち、限られた処理能力、記憶メモリ容量、および/またはバッテリ寿命を有するプロセッサを使用して、高忠実度のマルチメディア・データ(例えば、オーディオ/ビデオ)を再現するような伝送データ速度を実現するため、チャネル容量によって指定された目標伝送速度を実現するべくペイロード・データの中に存在するいずれの形態の冗長性(例えば、空間的、時間的、またはランレングス)も活用することにより、ペイロード・データの最適な圧縮を実現するため、さらには、チャネルを介する最適なプログレッシブ伝送のためのデータの独特なパケット化を実現するためのデータを処理する速度である。
システムの諸実施形態は、チャネル帯域幅の突然の不足が生じた場合におけるビデオ品質のグレースフル・デグラデーションに役立つ、シームレスなプログレッシブ伝送能力(例えば、様々な帯域幅)のために、無線ストリーミング・ソリューションに適している。さらに、シームレスなプログレッシブ伝送能力は、フレーム内レート制御とともに、フレーム間レート制御も可能にして、各フレームに対するビットの最適な割り当て、および輝度マップとクロマ・マップの間におけるフレーム・ビット予算の最適な配分を可能にする。その結果、以上のことは、ビデオ・クリップ内の均一なテクスチャおよび/または遅い動きのシーケンスのピクチャ品質に関して最小のしきい値を保ちながら、比較的高いレベルの詳細または動きを有する、フレームのパースペクティブ品質を向上させるのに役立つ。
以下の説明では、本発明のより完全な説明を与える多数の詳細を示す。しかし、本発明は、それらの特定の詳細なしに実施されることも可能であることが、当業者には明白となろう。その他、周知の構造およびデバイスは、本発明を不明瞭にするのを回避するため、詳細にではなく、ブロック図の形態で示している。
本明細書において「一実施形態」または「実施形態」について述べていることは、その実施形態に関連して説明される特定のフィーチャ、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な箇所における「一実施形態では」という句の出現は、必ずしもすべて、同一の実施形態を指していない。
(概要)
本明細書で示される諸実施形態は、ソフトウェア・プラットフォームおよび/またはハードウェア・プラットフォーム上で実施されるデジタル・オーディオ/ビデオ・データの圧縮と伸長を行う安定したシステムを含む。本発明の様々な実施形態のいくつかの利点には、商用のオーディオ/ビデオ圧縮/伸張−伝送システムをより効率的な実現に導く、低いバッテリ電力消費、低い複雑度、低い処理負荷が含まれるが、以上には限定されない。
一部の実施形態によれば、他のいくつかの利点には、システムのソース/算術エンコーダ/デコーダにおいて使用される独特なデータ構造の中の冗長性を活用するローバストな誤り検出−誤り訂正ルーチンを含み、かつより効率的で、より高速な動き予測ルーチンのために、2つの連続するフレーム間の動きを予測するためのサーチスペースがより小さいことを含むが、以上には限定されない。
図1は、例示的なマルチメディア・ストリーミング・システムの一実施形態のブロック図である。図1を参照すると、例示的なシステム100が、有線ネットワーク、無線ネットワーク、またはその両方の組み合わせであることが可能なネットワーク102を介してクライアント・コンポーネント103〜104(本明細書でクライアント・スーツとも呼ばれる)と通信するように結合された、サーバ・コンポーネント101(本明細書でサーバ・スーツとも呼ばれる)を含む。サーバ・スーツは、ダウンロード・アンド・プレイバック(D&P)、ストリーミング・ブロードキャスト、および/またはピアツーピア通信サービスを提供するいくつかのサービスの融合体である。このサーバ・スーツは、任意のサードパーティ・ネットワーク・プロトコル・スタック(図3に示される)とも通信するように設計される。一実施形態では、エンコーダの軽量バージョンが、ピアツーピア・テレビ会議アプリケーションのためにハンドヘルド・プラットフォームに組み込まれてもよいが、システムのそれらのコンポーネントは、中央サーバ内部に実装されてもよい。デコーダは、クライアント側メモリ内に実装される。サーバ・コンポーネント101は、Webサーバなどのサーバ内部のプラグイン・アプリケーションとして実装される。同様に、クライアント・コンポーネント103〜104のそれぞれも、無線局(例えば、セルラー電話機、パーソナル・デジタル・アシスタントすなわちPDA)などのクライアント内部のプラグインとして実装される。
一実施形態では、サーバ・コンポーネント101は、データ獲得モジュール105、エンコーダ106、デコーダ107を含む。データ獲得モジュール105は、ビデオ/オーディオ・リポジトリ、ビデオをリアルタイムでキャプチャするイメージング・デバイス、および/またはビデオ/オーディオ・クリップのリポジトリを含む。一実施形態では、エンコーダ106は、データを読み取り、データをエントロピ/算術符号化してバイト・ストリームにする。エンコーダ106はサーバ・スーツ内部に実装される。
一実施形態では、ビデオ/オーディオ・サービスが、クライアント・エンジン(例えば、クライアント103〜104)に提供され、クライアント・エンジンは、ネットワーク・スタック実装(図3に示される)と独自のデコーダ(例えば、108〜109)をカプセル化した製品スーツである。このスーツは、様々なデータ転送速度とフットプリント・フォーマットでデジタル・ペイロードを受け入れ、オーディオ・ストリームとビデオ・ストリームを分離し、各バイト・ストリームを独立に復号化し、データを整合性のとれた実際の形で表示することができる。
一実施形態では、エンコーダ・モジュール106は、様々なデータ・フォーマット(文字記号が、サブサンプリング比を表すRGB x:y:z、YUV x’:y’:z’、YCrCb x”:y”:z”などを含むが、以上には限定されない)の生のデータを読み取り、それらのデータを標準化するため、および単純にするために、単一の標準のフォーマットに変換する。一実施形態によれば、データ獲得のモードに関わらず、デジタル情報は、フレーム単位で非インタリーブ・ラスタ・フォーマットで読み取られる。事前記録ビデオ圧縮のケースでは、エンコーダ・ユニット106は、実際の処理に先立ってオーディオ・ストリームとビデオ・ストリームを分離させる。これは、オーディオ用とビデオ用では、使用される符号化機構と復号化機構が異なるので、有用である。
一実施形態では、フレーム・データは、次に、一時バッファに送り込まれて、一群の独特なウェーブレット・フィルタリング・オペレーションを使用して、空間周波数ドメインに変換される。このウェーブレット変換の巧妙さは、余計なバッファリングを排除すること、および計算上、複雑なフィルタリング・オペレーションを単純な加算/減算オペレーションに変換することにある。これにより、そのコーデック・メモリ内のウェーブレット・モジュールがより効率的になる。
一実施形態では、ソース・エンコーダ/デコーダは、先行するオペレーションから獲得されたフレームのすべてのサブバンドのウェーブレット係数を、モートン・スキャンとして知られる独特なジグザグの形(図7に示されるものと同様な)で読み取ることにより、データの圧縮を実行する。これにより、システムが、データを、ウェーブレット係数の有意性に基づく順序で並べ、データをその順序で符号化することが可能になる。符号化の英字は、当技術分野(例えば、JPEG2000、その他)で周知の形で、有意性クラス、符号クラス、リファインメント・クラスに分類される。
サブバンド・マップの中で符号化されているピクセル係数の位置に基づき、ピクセルの有意性情報、符号情報、ビットプレーン情報が符号化され、バイト・ストリームの中に送り込まれる。このように符号化される第1の係数セットは、サブバンド・マップの左上隅の最も粗いサブバンドである。最も粗いサブバンドが、このようにして尽きると、より細かいサブバンドの中の係数が、空間的に相同(homologous)のサブバンドの中の係数間における独特なツリー構造関係に基づき、同様の形で符号化される。
ビット・ストリームの冗長性をさらに活用するため、ビット・ストリームは、サブバンド・ツリー・マップの中のビットのソースとそのソースが表す情報のタイプ(例えば、有意性、符号、またはリファインメント)に基づき、独立した論理ビット・グループに分けられ、さらなる圧縮のために算術符号化される。結果を実現するこのプロセスは、H.264標準およびMPEG4標準の中で指定されているコンテキスト・ベースの適応バイナリ算術符号化(CABAC)技術に類似するが、その技術よりも優れている。
ビデオ・ストリームの中の連続するフレーム間の時間的冗長性が、動き予測スキームを使用することによって活用されて、ビット・カウントがさらにいっそう低減される。一実施形態では、動きは、最も粗い4つのサブバンドにわたり、ある種のアフィン変換を使用することによって予測され、残りのより細かいサブバンドにおいて、より低いエントロピのリファインメント・サーチを使用して予測される。より細かいサブバンドにおける動きを予測するための有効サーチ範囲は、より粗いサブバンドにおいてよりも小さく、システムの全体的パフォーマンスのスピードアップにつながるとともに、現在、使用されている類似のビデオ圧縮システムと比べて、より低いビットレートをもたらす。
一実施形態では、ビデオ・デコーダ(例えば、デコーダ108〜109)は、動き予測フィードバック・ループを有さないことを除き、エンコーダと同様の形で機能する。データの中の空間的冗長性と時間的冗長性を補償するのに、デコーダは、エンコーダにおける場合と、相対的に逆のオペレーションを実行する。一実施形態では、バイト・ストリームは、ビットごとに読み取られ、係数は、コンテキスト判定に基づき、非線形の量子化スキームを使用して更新される。同様の論理が、ウェーブレット変換ブロックと算術符号化ブロックに適用される。
ビット予算が使い果たされると、一実施形態によれば、更新された係数マップが、エンコーダにおいて順方向ウェーブレット変換ブロックで行われるオペレーションの逆であることが可能な一群の算術持上げオペレーションを使用して、逆ウェーブレット変換されて、再構築されたフレームが作成される。再構築されたフレームは、次に、デコーダ・クライアントにおける一群のネイティブAPI(アプリケーション・プログラミング・インタフェース)呼び出しによってレンダリングされる。
本明細書で説明する諸技術は、任意のサードパーティ・コンテンツ・プロバイダまたはサービス・プロバイダから入手可能なピアツーピア・ビデオ/オーディオ・ソリューション、テキスト/マルチメディア・メッセージング・ソリューション、ダウンロード・アンド・プレイ・ソリューション、およびストリーミング・ブロードキャスト・ソリューションに適合する。その目的で、一実施形態によれば、コーデック・スーツは、普及しているいくつかのサードパーティ・マルチメディア・ネットワーク・プロトコル・スーツに適合させられる。
一実施形態では、例示的なシステムは、ハンドヘルド・ドメインとPCドメインの両方における、様々なオペレーティング・システム上、および動作環境上で展開される。それらのオペレーティング・システムと動作環境には、Microsoft(登録商標)Windows(登録商標)9x/Me/XP/NT4.x/2000、Microsoft(登録商標)Windows(登録商標)CE、PocketLinux(商標)(およびPocketLinux(商標)の様々なサードパーティ変種)、SymbianOS(商標)、PalmOS(商標)が含まれるが、以上には限定されない。それらは、一連のサードパーティ開発プラットフォーム上で入手可能である。それらのプラットフォームには、Microsoft(登録商標)PocketPC(商標)200X、Sun Microsystems(登録商標)J2ME(商標)MIDP(登録商標)X.0/CLDC(登録商標)X.0、Texas Instruments(登録商標)OMAP(商標)、Qualcomm(登録商標)BREW(商標)が含まれるが、以上には限定されない。ハードウェア面では、本発明の諸実施形態は、フィールド・プログラマブル・ゲート・アレイ(FPGA)実装、特定用途向け集積回路(ASIC)実装、システム・オン・チップ(SoC)実装を含むが、以上には限定されない多様なプラットフォーム上のソリューションとして提供される。
(例示的なシステム)
低帯域幅の無線ネットワークを介したオーディオ・マルチメディア・データとビデオ・マルチメディア・データの配信を強化する技術を、本明細書で説明する。以降の段落は、単一の統合されたプラットフォームからサービスをユーザに提供する統合システムの構造を説明する。このシステムは、トランスコーディング問題やスケーラビリティ問題だけでなく、異なるサードパーティ・ネットワーク・プロトコル実装間における統合にも対処する。
図2は、一実施形態による例示的なマルチメディア・ストリーミング・システムを示すブロック図である。図2を参照すると、例示的なシステム200が、同一のネットワークであってもよい、無線ネットワーク204および/または有線ネットワーク205〜206などの、様々なタイプのネットワークを介して、1つまたは複数のクライアント202〜203と通信するように結合されたサーバまたはサーバ群201を含む。例えば、サーバ201は、図1のサーバ101として実施されてもよい。クライアント202〜203は、図1のクライアント103〜104として実施されてもよい。一実施形態では、サーバ・プラットフォーム201は、A、B、Cというラベルが付けられた3つのユニットを含むが、以上には限定されない。しかし、プラットフォーム201は、そのように限定されない。それらのユニットは、単一のユニット、または単一のモジュールとして実施されてもよい。それらのユニットは、互いに通信するとともに、外部ユニットとも通信して、すべての妥当な通信能力およびビデオ/オーディオ処理能力を有する。
ユニットCは、デコーダ/エンコーダAPIなどのクライアント側コンポーネントにダウンロード・サービスを提供して、サードパーティ・サポート、ブラウザ・プラグイン、ドライバ、およびプラグ・アンド・プレイ・コンポーネントを円滑にするアプリケーション・サーバである。ユニットBは、Webサービス・プラットフォームである。ユニットBは、COM(商標)サービス、COM+(商標)サービス、EJB(商標)サービス、CORBA(商標)サービス、XMLサービス、その他の関連するWebサービスおよび/またはMMS関連サービスを提供することにより、コンポーネント再利用性問題やコンポーネント・スケーラビリティ問題に対処する。以上のコンポーネントは、個別であり、データをカプセル化する。以上のコンポーネントは、システム依存性を最小限に抑え、対話を一群の入力と所望の出力にまで減らす。コンポーネントを使用するのに、開発者は、そのコンポーネントのインタフェースを呼び出すことができる。機能は、開発されると、様々なアプリケーションにおいて使用されることが可能であり、そのため、コンポーネントが再利用可能になる。コンポーネントは、互いに切り離され、そのため、異なる部分は、アプリケーション全体を変更する必要なしに、スケーリングされる。以上の諸特徴のため、アプリケーションは、差別化サービスを提供するようにカスタマイズされることも可能であり、需要が増加するにつれ、より多くの顧客を扱うようにスケーリングされることも可能である。ユニットAは、実際のネットワーク・サービス・プラットフォームであってもよい。ユニットAは、D&P(ダウンロード・アンド・プレイ)プロファイルまたはストリーミング・プロファイルで、無線ネットワークを介して符号化されたデータを伝送することを要求されるネットワーク・サービスを提供する。また、ユニットAは、移動テレビ会議アプリケーションにおけるピアツーピア(P2P)通信のためのサポートを提供するとともに、無線サービス・プロバイダと通信して、料金請求問題、その他の付随的な問題を迅速に処理する。
一実施形態によれば、例示のため、主要な3つのタイプのシナリオを本明細書で説明する。しかし、他のタイプのシナリオが適用されてもよい。1つの実例では、無制限の移動性を有するユーザ203(ダウンタウンへ自動車を運転している個人などの)が、ユーザが加入しているサービス・プロバイダの最寄りの無線基地局(BS)209を使用して、ユーザの無線マルチメディア・サービスにアクセスすることができる。接続は、WCDMA[UMTS]、IS−95、A/B−CDMA 1.X/EVDO/EVDV、IS−2000−CDMA2000、GSM−GPRS−EDGE、AMPS、iDEN/WiDEN、Wi−MAXを含むが、以上には限定されない多様な技術を使用して確立される。BS209は、無線WAN204上のTCP/IP接続またはUDP/IP接続を介して、サービス・プロバイダの中継局(MTSO)210と通信する。MTSO210は、ハンドオフ問題、コール・ドロップ問題、ローミング問題、その他のユーザ・プロファイル問題を扱う。ペイロードとプロファイル・データは、処理のために無線ISPサーバに送られる。
別のタイプのシナリオでは、ユーザ202は、例えば、自宅またはオフィス・ビル(例えば、アクセス・ポイント/ゲートウェイ211によって制御されるLAN)内部で、限られた移動性を有する。そのようなユーザが、アクセス・ポイント(AP)と企業ゲートウェイ211を介して、Bluetooth(商標)接続、Wi−Fi(商標)(IEEE(商標)802.11x)接続、HomeRF接続、HiperLAN/1接続、またはHiperLan/2接続を含むが、以上には限定されない短距離無線接続を介して、特定のサービスを求める要求を、ユーザのサービス・プロバイダのWebゲートウェイに送信する。ISPは、MTSO210と通信して、要求をサーバ・スーツ201に転送する。すべての通信は、TCP/IP接続またはUDP/IP接続206を介して行われる。要求されたサービスが、サーバ201によって処理されると、ペイロードは、実質的に同一の経路を逆方向に、ユーザに戻るように伝送される。
第3のタイプのシナリオでは、ピアツーピア(P2P)通信が、サーバ201を完全に迂回することによって行われる。このケースでは、すべての通信、ペイロード転送、オーディオ/ビデオ処理は、制御、割り当て、監視の諸機能を実行すること以外は、サーバに有意な負荷を全くかけずに、無線ISPサーバ(例えば、サーバ207)を介してルーティングまたは委任が行われる。
システム能力は、サービスの性質や、ペイロード転送のモードに基づいて分類される。D&Pサービスでは、ユーザは、ペイロード全体(例えば、ビデオ/オーディオ・クリップ)が、ユーザの無線移動ユニットまたはハンドセットにダウンロードされるのを待ってから、そのペイロードを再生する。そのようなサービスは、長い待ち時間を有するが、セキュリティで保護され、信頼できるTCP/IP接続を介してトランスポートされる。
ストリーミング・サービスでは、ペイロード・ルーティングは、前の場合と同一であるが、ペイロードは、この場合、UDP/IPネットワーク(例えば、ネットワーク205〜206)上でストリーミング・プロトコル・スタック(例えば、RTSP/RTP、RTCP、SDP)を介してトランスポートされることだけが異なる。これにより、ペイロード・パケットが、確実に迅速に伝送されるが、UDP接続の信頼できない性質に起因して、データ破損(例えば、パケット損失)の可能性が存在する。P2Pサービスでは、ペイロードは、UDP/IP接続を介してルーティングされて、テレビ会議アプリケーションに必要とされるライブ・ビデオ/オーディオ品質が保証される。
デコーダとエンコーダは、ハードウェアで、ソフトウェアで、またはその両方の組み合わせで利用可能である。ダウンロード・アンド・プレイ・サービスとストリーミング・サービスに関して、エンコーダは、適切な接続を介して要求されるサービスを提供するリモート・サーバ上に格納されるのに対して、軽量ソフトウェア・デコーダは、無線ハンドヘルド端末装置のメモリの中に格納される。デコーダAPIは、HTTP/FTP−over−TCP/IP接続を介してアプリケーション・サーバ(例えば、ユニットA)からダウンロードされる。MMSサービスやP2Pテレビ会議サービスなどの、より多くの対話を要するサービスに関して、エンコーダ(例えば、ハンドヘルド・チップセット上に直接搭載されたスタンドアロンのハードウェア・プラットフォーム上の)とデコーダ(例えば、アプリケーション・レイヤ・ソフトウェア)はともに、例えば、図3に示されたネットワーク・プロトコル・スタックに組み込まれたハンドヘルド端末装置にインストールされる。
(例示的なデータ圧縮プロセス)
図4A、図4Bは、本発明の一部の実施形態による、符号化システムと復号化システムをそれぞれ介した例示的な符号化プロセスと復号化プロセスを示すデータ流れ図である。図5は、一実施形態によるデジタル・イメージ・データを符号化するための例示的なプロセスを示す流れ図である。例示的なプロセス500は、ハードウェア(例えば、回路、専用論理、その他)、ソフトウェア(汎用コンピュータ・システム上、サーバ上、または専用マシン上で実行されるような)、またはその両方の組み合わせを含む処理論理によって実行される。例えば、例示的なプロセス500は、例えば、図1のサーバ101、または図2のサーバ201のような、サーバ・コンポーネント(例えば、サーバ・スーツ)によって実行されてもよい。
図4Aと図5を参照すると、コーデックは、高品位テレビ(HDTV)、標準品位テレビ(SDTV)、拡張ビデオ・グラフィックス・アレイ(XVGA)、標準ビデオ・グラフィックス・アレイ(SVGA)、ビデオ・グラフィックス・アレイ(VGA)、コモン・インタチェンジ・フォーマット(CIF)、クォータ・コモン・インタチェンジ・フォーマット(QCIF)、サブクォータ・インタチェンジ・フォーマット(S−QCIF)を含むが、以上には限定されない、いくつかの標準のファイル・フォーマットとフレーム・フォーマットのいずれかによって指定される生のYUVカラー・フレーム・データを有する生のファイル・フォーマット401を扱う。一実施形態では、ピクセル・データは、バイト・フォーマットで格納され、このデータは、順次の形で読み取られ、1次元アレイの中に格納される。
一実施形態では、以降、「フレーム」と呼ばれる各イメージは、3つのマップを含む。それらのマップのそれぞれは、1つの原色成分を格納するように指定され、あるいは、より非対称のスキームでは、1つのマップが、輝度情報(輝度マップまたはYマップとも呼ばれる)を格納する一方で、その他の2つのマップは、クロミナンス情報(クロマ・マップまたはCb/Crマップとも呼ばれる)を格納する。Yマップは、フレームの輝度情報を格納するのに対して、クロマ情報は2つの直交成分の中に格納される。システムは、多種多様なクロミナンス・サブサンプリング・フォーマット(4:1:1カラー・フォーマットを含むが、そのフォーマットには限定されない)を扱うように設計される。その場合、クロマ・マップの大きさは、両方の基本的な方向に沿って、輝度マップの大きさの整数分の1である。ピクセル・データは、バイト・フォーマットで生のペイロード・ファイルの中に格納され、そのデータは、順次の形で読み取られ、各マップにつき1つの、3つの1次元アレイのセットの中に格納される。
フレームの大きさがあらかじめ分かっているので、イメージ・マップの中の各ピクセルの2次元座標が、現在のカラー・マップを表す1次元アレイのインデックス・システム上にマップされる。実際の1次元インデックスをフレームの幅で割って、「行番号」が得られる。1次元インデックスに対するモジュロ・オペレーションにより、対応するピクセルの「列番号」である剰余が与えられる。
一実施形態では、より重要な前処理オペレーションの1つとして、ピクセル係数値が、各ピクセル係数の絶対値を所定の倍数(例えば、64倍)だけシフトさせることによってスケールアップされる。これにより、ピクセル係数値のダイナミックレンジが大きくなり、復号化中に、再構築されるフレームのより細かい近似が可能になる。
符号化プロセスにおける次のオペレーションは、ペイロードを空間ドメインから多重解像度ドメインに変換することである。一実施形態では、整数のタップを有する一組の順方向ウェーブレット・フィルタ402係数と逆方向ウェーブレット・フィルタ402係数が、低域通過フィルタリング・オペレーションと高域通過フィルタリング・オペレーション(例えば、オペレーション501)に対して使用される。一実施形態では、フィルタ係数は、すべてのオペレーションが、メモリ内の別個の領域の中にピクセル値をバッファリングする必要なしに、定位置で行われるように変更される。これにより、貴重な揮発性メモリ・スペースと処理時間が節約される。
(例示的なウェーブレット・フィルタリング・オペレーション)
一実施形態では、各イメージ・ピクセルに対するウェーブレット・フィルタリング・オペレーションが定位置で実行され、結果の係数は、サブバンド・マップの中でそれらの相対的位置を保持する。一実施形態では、ウェーブレット分解プロセス全体が、フィルタリングの基本的な向きが選択される順序に特定の選好は全く与えられない水平成分と垂直成分に分割される。フィルタリング・プロセスの独特な持上げの性質のため、フィルタリング・プロセスにかかわる複雑な数学的計算が、一組の高速な低い複雑度の加算オペレーションおよび/または減算オペレーションに変えられる。
毎回のパスで、一実施形態によれば、行または列(行ベクトルまたは列ベクトルとも呼ばれる)が、現在のフィルタリング・プロセスの方向に依存して選択される。特定の実施形態では、低域通過フィルタリング・オペレーションが、現在のベクトル内の第1のピクセルに対して偶数インデックスを有するすべてのピクセルに対して実行され、高域通過フィルタリング・オペレーションが、同一のベクトルの第1のピクセルに対して奇数インデックスを有するすべてのピクセルに対して実行される。各フィルタリング・オペレーションに関して、ウェーブレット係数が算出されるべきピクセルが、現在のベクトル内で、フィルタリングの現在の方向に沿ったそのピクセルの近傍で、そのピクセルの周囲に対称的に並んだ一組のピクセルと一緒に、選択される。
4つの消失モーメントを有するウェーブレット・フィルタが、ピクセルに適用される。一実施形態では、4タップの高域通過フィルタと低域通過フィルタが、変換のために使用される。高域通過フィルタは、奇数ピクセルを濾波して除くために、以下に示されるとおり、重み付けされ、正規化された4つの近傍の偶数ピクセルを結合する。
[9*(Xk-1+Xk+1)−(Xk-3+Xk+3)+16]/32
低域通過フィルタは、偶数ピクセルを濾波して除くために、以下に示されるとおり、重み付けされ、正規化された4つの近傍の奇数ピクセルを結合する。
[9*(Xk-1+Xk+1)−(Xk-3+Xk+3)+8]/16
ただし、Xkは、位置kにおけるピクセルである。
異なる正規化された重みが各ピクセルに適用され(変換された値が算出されるべき(中心)ピクセルに、1.0という重みが適用される)、一連の加算オペレーション、減算オペレーション、乗算オペレーションによって、現在のベクトルの始めに対して同一のピクセル位置におけるウェーブレット係数が生成される。特定のベクトル(行または列)内の偶数インデックス(0、2、4、...)を有するすべてのピクセル位置は、低域通過係数を表すのに対して、特定のベクトル(行または列)内の奇数インデックス(1、3、5、...)を有するすべてのピクセル位置は、高域通過係数を表すものと推定することができる。それぞれのそのような実行またはパスは、サブバンドまたはサブイメージをそれぞれが構成する、4つの係数セットを生じさせる。
それら4つのサブバンドは、互いに密接にかみ合わされる。例えば、初回のパスで、同一のサブイメージに属する係数は、互いから1ピクセル位置のオフセットに位置する。次のパスで、すべての低域通過係数(LLkサブイメージを構成する)が選択され、プロセス全体が繰り返される。このオペレーションも同様に、4つのサブイメージとなり、各サブイメージは、互いから2ピクセル位置のオフセットに位置するピクセルを有する。繰り返しのデシメーションのため、毎回のパスには、前回のパスと比べて、正確に1/4のピクセル数に対する計算がかかわり、同一レベルにおける同一のサブイメージ内のピクセル間のオフセットは、1回の実行ごとに2倍になる。
(代替のウェーブレット・フィルタリング・オペレーション)
別の実施形態では、ウェーブレット・フィルタリング・オペレーションは、2項階層フィルタリング・プロセスと見なされ、2項階層フィルタリング・プロセスとは、イメージに対するフィルタリング・プロセスの単一回の実行の最終結果が、そのイメージを、両方向において、元のイメージの半分の大きさをそれぞれが有する4つのサブバンド、つまり、サブイメージにまでデシメートすることを意味する。4つのサブバンド、つまり、サブイメージには、元のイメージに対するそれらのサブイメージの空間的向きに依存して、HHk、HLk、LHk、LLk(ただし、kは、最も細かいレベルに関する分解から始まる分解のレベルである)というラベルが付けられる。次回の実行で、フィルタリング・プロセス全体が、前回のパスにおいて獲得されたLLkサブイメージだけに対して繰り返されて、前述したとおり、LLkの半分の大きさを有するHHk-1、LHk-1、HLk-1、LLk-1と呼ばれる4つのサブイメージが獲得される。このプロセスは、所望されるだけの数の分解レベルに関して、またはLLサブバンドが、さらなるデシメーションがもはや可能でない、差し渡し1ピクセルであるブロックにまで縮小されるまで繰り返される。
一実施形態では、フィルタリングは、水平フィルタリング・オペレーションと垂直フィルタリング・オペレーションに分割される。垂直フィルタリング・モードの場合、3つのマップの中の各列(例えば、垂直ベクトル)が一度に処理される。最初、列の中のすべてのピクセルが、一時ベクトルの中にコピーされ、このベクトルでは、ベクトルの中に存在するピクセル数と同じ数のロケーションが確保されている。実際のフィルタリング・オペレーションの場合、一時ベクトルは2等分される。一時ベクトルの偶数番のメモリ・ロケーション(0、2、4、...などの)に位置するピクセルには、低域通過フィルタ(LPF)係数を使用して低域通過フィルタリングが行われるのに対して、一時ベクトルの奇数番のメモリ・ロケーション(1、3、5、...などの)におけるピクセルには、高域通過フィルタ(HPF)係数を使用して高域通過フィルタリングが行われる。
各フィルタリング・オペレーション(高域または低域)の結果は、現在のベクトルの中に格納されて、低域通過フィルタリング・オペレーションのすべての結果が、ベクトルの上半分(例えば、フィルタリングの現在の向きに依存して、垂直ベクトルの上半分、または水平ベクトルの左半分)に格納されるのに対して、高域通過フィルタリング・オペレーションの結果は、列の下半分(例えば、垂直ベクトルの下半分、または水平ベクトルの右半分)に格納される。このようにして、ピクセル・データは、単一回の実行でデシメートされる。プロセス全体が、現在のマップとフレームの中のすべての列と行に対して繰り返される。プロセス全体が、現在のフレームに関する3つすべてのマップに対して繰り返されて、ウェーブレット変換されたイメージが獲得される。
図4Aを再び参照すると、ウェーブレット・マップのブートストラップ・ソース・エントロピと算術符号化プロセス403がチャネル符号化(例えば、オペレーション502)と呼ばれる。算術符号化は、前述したとおり、ウェーブレット変換402において生成されたサブバンド・ツリー構造内の空間的に相同のブロック間の密接な関係を活用する。ウェーブレット・マップの中のデータは、単一のビットの英字を使用して、ピクセルの有意性(例えば、可変サイズの量子化しきい値に関する)情報、符号情報、ビットプレーン情報を表すことによって符号化される。ビット・ストリームは、埋め込まれた形態で符号化される。埋め込まれた形態とは、特定の量子化しきい値における単一のピクセルのすべての関係のある情報が、連続的なビット・ストリームとして伝送されることを意味する。量子化しきい値は、ウェーブレット係数を表すのに使用されるビット数に依存する。この実施形態では、それらの係数を表すために16ビットが使用される。このため、初回のパスの場合、量子化しきい値は、例えば、0x8000に設定される。単一回のパスの後、しきい値が下げられ、ピクセルは、実質的にすべてのピクセルが処理されるまで、同一の順序、または同様の順序で符号化される。以上により、すべてのピクセルが、確実に、ビット・ストリームの中でプログレッシブに符号化され、伝送される。
一実施形態によれば、エントロピ符号化されたビット・ストリームは、オペレーション503として示されるとおり、コンテキスト・ベースの適応算術エンコーダ404の中を出力されたビットを通すことにより、さらに圧縮される。このコンテキスト・ベースの適応バイナリ算術コーダ(CABAC)は、現在のビットの直前に所定のビット・セットが出現する確率に依存して、ビット情報を符号化する。現在のビットが符号化されるコンテキストは、そのビットによって表される情報の性質(有意性情報、符号情報、またはビットプレーン情報)と、階層ツリー構造における符号化される係数の位置に依存する。CABACの概念は、原理的に、ITU−T SG16 WP3 Q.6(VCEG)Rec.H.264およびISO/IEC JTC 1/SC 29/WG 11(MPEG)Rec.14496−10(MPEG4 part 10)において指定される概念と同様である。違いは、確率のコンテキスト・モデル化、推定、適応にある。この実施形態の変換−ソース符号化技術は、ITU−T SG16 WP3 Q.6(VCEG)Rec.H.264およびISO/IEC JTC 1/SC 29/WG 11(MPEG)Rec.14496−10(MPEG4 part 10)とは異なるので、この実施形態の係数は、異なる統計特性を有する。この実施形態で指定されるCABACタイプのエントロピ・コーダは、それらの特性を最大限に活用するように設計される。
一実施形態では、コンテキストは、0ないし2nのダイナミックレンジを有するnビットのデータ構造である。新たなビットが符号化されるごとに、現在のビットに割り当てられたコンテキスト変数は、確率推定テーブル(PET)に基づいて更新される。nビットが符号化されると、コンテキスト変数の内容が圧縮ファイル405としてコンパクトなデータ構造にパックされ、先に送られ、変数は、次のバッチのnビットに対してリフレッシュされる(例えば、オペレーション504)。一実施形態では、システムは、各フレームに対して、つまり、3つの空間配向ツリーにわたる3つのビットクラス、m個の分解レベルにわたるすべてのサブバンドに対して、(9×m)個のコンテキスト変数を使用する。
一実施形態によれば、クライアントに存在することが可能なデコーダは、図4Aの例示的なエンコーダ400と同様に、ただし、図4Bに示されるとおり、逆の順序で実施される。
(例示的な符号化階層)
空間的に相同のピクセルとそれらのピクセルの子孫を関係付ける階層ツリー構造は、親−子階層を使用して説明することができる。図6は、一実施形態による符号化処理のための例示的なピクセル・マップを示す図である。図6を参照すると、一実施形態では、ツリー構造のルートは、最も粗いサブバンド、LLkの中のすべてのピクセルのセット、およびHというラベルが付けられたセットから成る。一実施形態では、セットHの中のピクセルは、2×2のセットに、つまり、カッドにグループ化される。図6を参照すると、セットH(例えば、ブロック601)の中の各カッドは4ピクセルを有し、すべてのカッドの左上のメンバ602を除くすべてのメンバは、空間的に相同の次のより細かい分解レベルにおいて4つの子孫(例えば、ブロック603〜605)を有している。このため、例えば、カッドの中の右上のピクセルは、同一の空間的向きを有する次のより細かいサブバンド(この場合は、HLk-1)の中で4つの子孫ピクセル604(2×2フォーマットで)を有する。また、子孫の相対的位置も、ツリー・ルートの空間的向きに関係している。セットHの左上のカッドにおける右上のピクセルの係数の第1世代の子孫(以降、子供というラベルを付ける)は、HLk-1(例えば、ブロック604)の中の左上の2×2カッドである。同様に、セットHの任意のカッドにおける右下のピクセルの子供は、HHk-1サブバンドの中で空間的に相同の位置にあるのに対して、セットHの任意のカッドにおける左下のピクセルの子孫は、LHk-1サブバンドの中の空間的に相同の位置にある(例えば、ブロック603)。第1世代のピクセル以降の子孫と、それらの子孫のセット(カッドを含む)には、孫係数として、例えば、図6に示されるブロック606〜611として一般にラベルが付けられる。
符号化プロセスに対して、一実施形態では、独特なデータ構造が、係数が符号化される順序を記録する。意味のないピクセル・キュー(IPQ)、意味のないセット・キュー(ISQ)、有意なピクセル・キュー(SPQ)としてラベルが付けられる3つの動的にリンクされたデータ構造すなわちキューが、その目的で保持される。一実施形態では、各キューは、動的データ構造として実施され、そのデータ構造には、各ノードが、ピクセルが有意になった際の座標、ビットプレーン番号、ISQリストのタイプなどの、ピクセルについての情報を格納する2重にリンクされたリスト、またはスタック・アレイ構造が含まれるがそれに限定されない。
一実施形態では、3つのタイプの変換係数セットは、ピクセルとそのピクセルの子孫のツリーを分割するように定義される。しかし、より多くのセット、またはより少ないセットが実施されてもよい。セットD(T)は、ピクセルのすべての子孫のセット、またはそれらの子孫の任意のセット、Tである。セットD(T)には、直接の子孫(例えば、ブロック603〜605などの子供)、孫係数(例えば、ブロック606〜608)などが含まれる。セットO(T)は、ピクセルのすべての第1世代の、つまり、直接の子孫のセットとして、またはそれらの子孫の任意のセット、T(例えば、ブロック603〜605)として定義される。最後に、セットL(T)は、ピクセルの子供以外の子孫のセット、またはそれらの子孫の任意のセット、Tとして定義され、すなわち、L(T)=D(T)−O(T)(例えば、ブロック609〜611)である。一実施形態では、2つのタイプのISQエントリが定義される。タイプαのISQエントリは、セットD(T)を表す。タイプβのISQエントリは、セットL(T)を表す。
一実施形態では、符号化プロセスにおいて広範に使用されるバイナリ・メトリックが、有意性関数、Sn(T)である。一実施形態では、有意性関数は、セットτの中の最大のウェーブレット係数が、現在の量子化しきい値レベル(例えば、現在の実行における量子化しきい値)より大きい場合、1という出力を与え、それ以外の場合、0という出力を与える。一実施形態では、有意性関数は、以下のとおり定義される。すなわち、
Figure 2007529184
ただし、Sn(T)は、有意性が、現在のしきい値、n1に照らして測定されるべきピクセル・セット、Tである。
図8は、一実施形態による例示的な符号化プロセスを示す流れ図である。例示的なプロセス500は、ハードウェア(例えば、回路、専用論理、その他)、ソフトウェア(汎用コンピュータ・システム上、サーバ上、または専用マシン上で実行されているような)、またはその両方の組み合わせを含む処理論理によって実行される。例えば、例示的なプロセス500は、例えば、図1のサーバ101、または図2のサーバ201のような、サーバ・コンポーネント(例えば、サーバ・スーツ)によって実行されてもよい。
図8を参照すると、エンコーダの符号化プロセスにおける第1の段階(初期設定パスとも呼ばれる)は、エンコーダが、実行を繰り返さなければならないパスの回数を算出し、伝送する(バイナリ・フォーマットの8ビットのシーケンスとして)ことである(ブロック801)。一実施形態による実行の回数は、現在のマップの中の最大のウェーブレット係数のビットプレーン数以下である。単一のマップの中のすべてのビットを符号化する実行の回数は、量子化レベルの数によって決定する。一実施形態では、実行の回数は、以下のとおり定義されることが可能な数式を使用して算出される。すなわち、
1=ceil(log2|wmax|)
ただし、wmaxは、現在のマップの中の最大ウェーブレット係数である。この数が、バイト・ストリームの中に送られる(コンテキストなしに)。次いで、符号化プロセスが、マップ全体にわたってn1回、繰り返される。
最初、ブロック802で、一実施形態では、すべてのピクセルに、現在のしきい値レベルに照らして、意味がないというマークが付けられる。そのレベルはT=2n1と決められる。このため、IPQは、セットHの中のすべてのピクセルでポピュレートされ、他方、ISQは、子孫を有するセットHの中のすべてのピクセル(すなわち、セットHの中で、左上のカッドを除くすべてのカッドの中のすべてのピクセル)でポピュレートされる。SPQは、空のままにされ、ピクセルが、現在の量子化しきい値に照らして有意になるにつれ、徐々に埋められる。
次の段階として、並べ替えパスとも呼ばれるブロック803で、一実施形態では、IPQの中のすべてのピクセルが並べ替えられて、現在の量子化しきい値を基準してどのピクセルが有意になったかが判定される。IPQの中のすべてのエントリに対して、現在のピクセル(またはIPQの中のエントリ)に関する有意性関数の値が算出され、その値が、単一のビットの形態で出力として送られる。一実施形態では、次のオペレーションとして、前回のオペレーションにおける有意性関数の値が、1であった場合、ピクセル・エントリの符号ビットが、単一のビットの形態で出力として送られる。符号の出力は、エントリが正である場合、1であり、エントリが負である場合、0である。セットHの中のすべての有意なピクセルが、意味のないピクセルから分離されると、同一の並べ替えパスのより複雑なバージョンが、ISQのエントリに対して実行される。
一実施形態では、ブロック804で、ISQの現在のエントリが、タイプα(例えば、すべての世代にわたるピクセルのすべての子孫を表すクラスのエントリ)である場合、セットD(T)の有意性は、単一のビットとして送られる。その出力ビットが、1である(例えば、エントリが、1つまたは複数の有意な子孫を有する)場合、そのエントリの直接の(例えば、第1世代の)子孫、つまり、子供に対して、同様の試験が実行される。エントリの4つすべての子供(セットO(T)によって定義される)に対して、一実施形態によれば、2つのオペレーションが実行される。最初に、子供ピクセルの有意性が判定され、伝送される。第2のオペレーションとして、子供ピクセルが有意である場合、ISQエントリの符号が伝送される。つまり、エントリが正である場合、1という値が伝送され、エントリが負である場合、0という値が伝送される。次に、エントリは、ISQから削除され、SQPに追加される。しかし、子供ピクセルが意味がない場合、その子供ピクセルはISQから除去され、IPQに追加される。
すべての子供ピクセルが試験されると、現在のISQエントリが子孫階層の深度に依存して保持される。エントリが、直接の子供を超えた子孫を全く有さない(L(T)≠(φ)場合、そのエントリはISQからパージされる。しかし、現在のセットに関する子孫が、第1世代を超えて存在する場合、そのエントリはISQの中の現在の位置から除去されて、タイプβのエントリとしてISQの末尾に追加される(ブロック805)。
一実施形態では、ISQの中の現在のエントリが、タイプβであった場合、セットL(T)に対して有意性試験が実行される。ISQの中のタイプβのすべてのエントリに対して、セットL(T)の有意性が試験され(例えば、有意性関数を使用して)、単一のビットとして伝送される。セットL(T)の中に1つまたは複数の有意なピクセルが存在する場合、現在のISQエントリの4つすべての子供が、将来のパスにおいて処理されるように、ブロック806で、タイプαエントリとしてISQに追加される。次に、ISQの中の現在のエントリは、ブロック807で、キューからパージされる。
一実施形態では、符号化プロセスにおける最終段階は、リファインメントパスと呼ばれる。並べ替えパスの終りで、現在の反復までに現在の量子化しきい値レベルに照らして有意になったすべてのピクセル(またはそれらのピクセルのセット)がIPQから除去されて、SPQに追加される。そのようなすべてのエントリに対して、エントリがキューに追加された(さらに、対応する係数が、現在の量子化しきい値レベルに照らして有意になった)際の実行番号「n」が、座標情報とともに記録される。それまでの反復(n1、n1−1...n1−n)においてSPQに追加されたSPQの中のすべてのエントリに対して、第n番の最も有意性のあるビットが伝送される。最終パスとして、一実施形態では、nの値が1だけ減分されて、量子化しきい値、Tが半減されて、プロセス全体が、3つのキューの中で現在、リストアップされているすべてのエントリに対して繰り返される。
一実施形態では、さらなる圧縮を実現するのに、エントロピ・コーダの出力を、CABACタイプのプロセッサの中を通す。エントロピ・コーダの埋め込まれた出力ストリームは、特定のビットが符号化されているコンテキストに基づいてビット・ストリームを分離することにより、圧縮が最適化されるような形で設計されている。ビット・ストリームは、符号化中に行われたバイナリ判定を表すビットを含む。同一の判定に対応するビットは分離され、別々に符号化される。ウェーブレット変換された係数は、同一の特性を有する係数が、一緒にグループ化されるように並べられるので、あるグループの中の係数に関する判定は、同様または同一であるものと見込まれる。このため、結果として生成されるビット・ストリームは同一ビットのより長い連続を有し、ストリームが圧縮により適するようになり、より最適な圧縮レベルが達せられる。
ウェーブレット係数「w」は、その係数が属するサブバンドとツリーに依存して、互いに独特の空間的相関を有することに留意されたい。特に、そのような密接な相関は、特定のレベルにおける単一のサブバンドのピクセル間に存在するが、相関のレベルは、同一の、または異なるツリーとレベルにおける異なるサブバンドのピクセル間で弱まる。また、同様の構文関係を有するビット間におけるランレングス・ベースの相関が存在することにも留意されたい。例えば、埋め込まれたストリーム内のビットの一部は、特定のピクセルに関する符号情報を表すのに対して、他のビットは有意性情報を表す。例えば、この場合、1という値は、現在、処理されているピクセルが、現在の量子化しきい値を基準にして有意であるのに対して、0の値は、そうではないことを表す。第3の、最後のクラスのビットは、実際の量子化誤り情報を符号化するリファインメント・ビットを表す。
一実施形態では、出力ストリームの中の各ビットは、そのビットが表す情報の性質(3つのタイプ)、またはサブバンド・ツリー・マップの中の位置(3n1+1の可能な位置、ただし、n1は、分解レベルの数である)に基づいて分類される。これにより、ビットが存在することが可能な3×(3n1+1)個の可能なコンテキストが生じ、任意のビットを符号化するのに独特のコンテキストが使用される。
コンテキストに基づいてストリームの分割を実施するために、3×(3n1+1)個のコンテキスト変数が、エントロピ・コーダの出力とバイナリ算術コーダの間のインタフェースとして作用する。各コンテキスト変数は、8ビットのメモリ・ロケーションであり、このロケーションは、追加の符号化されたビットが出力されるにつれ、一度に1ビット、値を更新する。8ビットが出力されると、問題のコンテキスト変数によって表されるメモリ・ロケーションの内容は、確率推定テーブル(PET)を使用して処理される。算術符号化されたビットを伝送した後、コンテキスト変数の内容は、次のバッチの8ビットのためにフラッシュされる。
(代替のソース符号化スキーム)
本明細書で算術符号化IIと呼ばれる別の実施形態では、ウェーブレット・マップは、32×32サイズ(ピクセル単位で)のブロックに分割され、それぞれのそのようなブロックは、ウェーブレット・マップの中の他のすべてのブロックとは独立にソース符号化される。各ウェーブレット・マップに対して、マップの大きさが、いずれかの方向で32の倍数ではない場合、列および/または行のセットに、0が埋められて、マップの新たな大きさが、両方向で32の倍数であるようにされる。一実施形態では、それぞれのそのようなブロックの中の係数は、階層マラー・フォーマットで並べられる。分解レベルの数は任意である。一実施形態では、その数は、各ブロックのマラー・フォーマットの最も粗いサブバンドが1ピクセルであるように、5である。そのようなスキームの下では、バンドとも呼ばれる10の区画が存在し、マラー表現において最も細かい10のサブバンドが、9つの最も細かいバンドと一致する。最も粗いバンドは、マラー・フォーマットにおける6つの最も粗いサブバンドを合併することによって構築される。
一実施形態では、バンドには、図7に示される順序と同様に、ジグザグの形で番号が付けられる。最も粗いバンドには、バンド0というラベルが付けられるのに対して、次の3つのバンド(順にHLの向き、LHの向き、HHの向き)には、それぞれバンド1、バンド2、バンド3というラベルが付けられるといった具合である。ストライプとして知られる、さらなるデータ構造が、4×4の係数のセットを表すのに使用される。このため、バンド0、1、2、3のそれぞれが、1つのそのようなストライプから構成される。第2の分解レベルと第3の分解レベルにおけるバンドは、それぞれ4つのストライプと16のストライプから構成される。
最初、一実施形態によれば、量子化しきい値が、すべてのより細かいバンドの他にバンド0(最も粗い)中のすべての係数に割り当てられる。ウェーブレット・マップの中の様々な係数とバンドに割り当てられたしきい値の間で、線形のプログレッシブな関係が存在する。しきい値の値は任意であり、推測と厳密な実験の問題である。一実施形態では、5レベル分解に対して、左上の(最も粗い)サブバンド(バンド0の一部である)に、特定のしきい値(xというラベルが付けられた)が割り当てられるのに対して、同一の分解レベルの右上のサブバンドと左下のサブバンド(やはり、バンド0の一部である)には、2×というしきい値が割り当てられ、右下のサブバンドに対するしきい値は4×である。
分解ツリーの次の(より細かい)レベルに進むと、右上のサブバンドと左下のサブバンドに関するしきい値は、前の(より粗い)レベルの右下のサブバンドのしきい値と同一であるのに対して、現在の(より細かい)レベルの右下のサブバンドは、その値の2倍のしきい値を有する。このプロセスが、現在のブロックの中の0ないし9の番号が付けられたすべての連続するバンドに関するしきい値の割り当てに適用される。例えば、バンド0の左上隅にある最も粗い4つのピクセルに関する初期しきい値は、4000h、8000h、8000h、10000hに設定される(hは、16進法の数を表す)。同様に、バンド0の右上隅における4つのピクセル・カルテットには、10000hが割り当てられるのに対して、バンド0の左下隅と右下隅におけるカルテットには、10000hと20000hというしきい値がそれぞれ割り当てられる。ソース符号化スキームの相次ぐ各回の反復とともに、前述した各サブバンドと各バンドに関するしきい値は半減される。
一実施形態では、符号化スキームは、0ないし3というラベルが付けられた4回のパスを含む。パス0で、一実施形態では、現在のバンドの有意性の判定が考慮される。一実施形態では、最も粗いバンド(バンド0)は、そのバンドの中のすべての係数が現在のしきい値を超えている可能性が高いので、常に有意であると想定される。他のすべてのバンドの場合、いずれか1つの係数がその特定のバンド/サブバンドに関する現在のしきい値を超えた場合、現在のバンドに有意であるというマークが付けられる。有意なバンドを表す追加のビット(例えば、1)が出力ストリームに伝送される。有意であるというマークが現在のバンドに既に付けられている場合、さらなるアクションは全く必要ない。
パス1で、一実施形態では、ストライプの有意性の判定が考慮される。各ストライプは4×4ピクセルのセットであり、ストライプの中の2×2ピクセルの各セットは、同一の向きを有する前のより粗いサブバンドの中の相同のピクセルに対して階層親−子関係を有する。このため、各ストライプは、前のより粗いサブバンドの中の、空間的な向きが相同である2×2カッドに対して親−子階層関係を有する(図11参照)。
ストライプは、そのストライプの2×2カッド親(前述した)も有意である場合、またはストライプが存在するバンドに有意であるというマークが付けられている場合(パス0で)、有意であるとして指定される。親カッドには、そのカッドの中の係数の1つまたは複数が、そのカッドが存在するバンドに関する現在のしきい値レベルを超えている場合、有意であるというマークが付けられる。
パス2で、一実施形態では、現在のストライプの中の個々のピクセルの有意性情報と、それらのピクセルの符号情報が考慮される。初期オペレーションとして、現在のストライプの中の、有意であるピクセルの数が記録される。この情報は、現在のストライプの中のピクセルの有意性情報を符号化するのに、いずれのコンテキスト変数が使用されるべきかを判定するのに使用される(前段のCABACについての説明を参照)。絶対値が、現在のバンドとストライプの現在のしきい値を超えているピクセルごとに、バイナリ1が伝送され、その後、その係数の符号を表す単一のビット(正の係数を表す1、または負の係数を表す0)が伝送される。現在の係数が意味がない場合、0が伝送され、その係数の符号は、調べられなくてもよい。以上の試験が、現在のストライプの中の16のすべてのピクセルに対して実行され、現在のバンドの中のすべてのストライプにわたり、さらに、ウェーブレット・マップの現在のブロックの中のすべてのバンドに対して繰り返される。
パス3で、一実施形態では、現在のブロックの中の各ピクセルに関するリファインメント情報が伝送される。すべてのバンドに対して、各ピクセルが、その特定のバンドまたはストライプに関するしきい値レベルと比較される。係数の絶対値が、現在のバンドとストライプのためのしきい値レベルを超えている場合、1(ビット)が伝送され、それ以外の場合、0が伝送される。
一実施形態では、最初の3回のパス(パス0ないし2)は、現在のブロック、バンド、ストライプに対して互いの中に入れ子にされる。このため、パス0は、現在のブロックの中のすべてのバンドに対して実行され、バンドには、ジグザクの形で順次に番号が付けられ、その順序で試験される。各バンドに対して、パス1が、そのバンドの中のすべてのストライプに対して、ラスタ走査の形で実行される。ストライプ内で、パス2が、やはりラスタ走査モードで、現在のストライプのすべての係数に対して実行される。パス3が、バンド内のストライプのバンドの順序を考慮せずに、ブロックのすべての係数に対して実行される。
前述した4つのパスルーチンの各回の実行の終りに、プロセスは、ウェーブレット・マップの中のすべてのブロックに対して繰り返される。ウェーブレット・マップの中のすべてのブロックがこのように試験されると、プロセスは、最初のブロック以降に対して繰り返され、そのブロックの中のすべてのバンドのしきい値レベルは、前の値の半分に低減される。以上が、最下位ビットプレーンまでの、すべてのピクセルが符号化されるまで、またはビット予算が完全に使い果たされるまで続けられる。
(例示的な動き予測スキーム)
一実施形態では、高速で効率的な動き予測スキームに、ビデオ・ストリームに本来備わった時間的冗長性を最適に活用させる。そのスキームの一実施形態では、ウェーブレット係数の位置の空間的移動が、ビデオ・クリップの中の連続するフレームの中の相同のサブバンドのウェーブレット係数間における時間的冗長性を活用するため、革新的な、高速で正確な動き予測ルーチンを使用して追跡される。
多重解像度表現では、ビデオ・クリップの中の各フレームのためのウェーブレット・マップ全体の中のすべてのサブバンド、つまり、サブイメージは、元のイメージの、サブサンプリングされ、デシメートされたバージョンを表すことがよく知られている。連続するフレーム間の動きを追跡するのに、フィードバック・ループが直線信号フロー・パスに導入される。
図9A〜図9Bと図10A〜図10Bは、本発明の一部の実施形態による例示的な符号化プロセスと復号化プロセスを示すブロック図である。元のイメージの中の全体的動きが、連続するフレームのすべてのサブバンドの中におけるピクセルの相同のブロックの動きを追うことによって追跡される。プロセスをスピードアップするため、一実施形態によれば、動きが、輝度(Y)マップの中でだけ追跡される一方で、同一の動き予測情報が2つのクロマ(CrとCb)マップの中で使用される。これは、比較的うまく機能する。というのは、クロマ情報は輝度マップの変化をかなり丹念に追うからである。輝度(Y)マップ内で、一実施形態では、サーチ空間全体の本格的なサーチが、図6に示されるとおり、最も粗い4つのサブバンドの中だけで実行される一方で、その情報が、例えば、6つのより細かいサブバンドの中で、一組のアフィン変換を使用して、スケーリングされ、改良される。以上により、忠実度の大きな損失なしに、動き情報を表すように符号化され、伝送される必要があるビット数がより少ないために、相当な量の帯域幅が節約される。
一実施形態では、3つのフレーム・カテゴリが、ラベル付けの目的で、本明細書で概要を述べる動き予測ルーチンのいずれかを使用して、本来備わった時間的冗長性を除去するのにフレームが受けるべき予測のタイプに依存して、判定され、時間的冗長性に対して予測符号化される必要のない現在のフレームには、イントラ符号化フレーム(Iフレーム)というラベルが付けられる。それまでに符号化されたフレームからの情報を使用して符号化されるフレームは、予測フレーム(Pフレーム)と呼ばれる。それまでに符号化されたフレームとともに、現在のフレームの後に来るフレームも必要とするフレームは、双方向フレーム(Bフレーム)と呼ばれる。
一実施形態では、図9A、図9Bを参照すると、現在のフレームの輝度(Y)マップが、目標ビットレートで算術符号化I/IIスキームを使用して符号化される。ビット予算が使い尽くされる(例えば、目標ビットレートによって決定する、ある時間内に伝送される符号化されたビットの数)と、またはすべてのビットプレーンが符号化されると、符号化が停止され、同様の逆手続き(逆算術符号化I/IIと呼ばれる)が実行されて、現在のフレームのウェーブレット・マップの輝度(Y)成分の(損失のある)バージョンが回復される。この場合に使用されるべき算術符号化のバージョンは、前述した順方向エントロピ・コーダにおいて使用されるバージョンと同様または同一である。
図11は、一実施形態による動き予測のための例示的なプロセスを示す流れ図である。この例示的なプロセス1100は、ハードウェア(例えば、回路、専用論理、その他)、ソフトウェア(汎用コンピュータ・システム上、サーバ上、または専用マシン上で実行されるような)、またはその両方の組み合わせを含むことがある処理論理によって実行される。例えば、例示的なプロセス1100は、例えば、図1のサーバ101、または図2のサーバ201のような、サーバ・コンポーネント(例えば、サーバ・スーツ)によって実行されてもよい。
図11を参照すると、第1のフレーム(および、ビデオ・シーケンスの中のIフレームとして分類されている、あらゆる続くフレーム)に対して、回復されたウェーブレット・マップが、シーケンスの中の次のフレームに関する基準として使用するために、基準フレームとしてバッファリングされる(ブロック1101)。一実施形態では、第2のフレームが、nレベル・ウェーブレット分解フィルタ・バンクを使用して読み取られ、分解されて、新たな現在のフレームが生成される。独特のサーチ−マッチ・アルゴリズムが、ウェーブレット・マップに実行されて、ビデオ・シーケンスの中の全体的な動きに起因して位置が変わったピクセルと、ピクセルのセットが追跡される。一実施形態では、サーチ・アルゴリズムは、動き推定(ME)と呼ばれるのに対し、マッチ・アルゴリズムは、動き補償(MC)と呼ばれる。
ME/MCルーチンに対する第1のオペレーションとして、一実施形態では、より低いしきい値が設定されて、動きに対して追跡される必要があり、最終的に補償される必要がある係数は、どの係数かが判定される。予測フレーム(PまたはB、あるいはそれ以外)の中で、細かいサブバンドの中のほとんどの係数は、自動的に0に量子化されるのに対して、最も粗いサブバンドの中の係数は、通常、0に量子化されない。このため、損失のある再構成プロセス中に0にまで量子化される中間(レベル2)サブバンドの中の最大の係数を、符号化プロセス中に決定し、その係数を低い方のしきい値(loThresとも呼ばれる)として使用することが、理にかなっている。
(例示的な粗い動き予測)
次のオペレーションとして、従来のサーチ−マッチが、基準フレームと現在のフレームのウェーブレット・マップの最も粗い4つのサブバンドに対して実行される(ブロック1102)。それらのサブバンドに対して実行される動き予測ルーチンには、相同のピクセル・ブロックに対する単純なブロックサーチ−マッチ・アルゴリズムがかかわる。このオペレーションにより、動きが生じたブロックが識別される。動きの量が算出され、補償される。これにより、伝送されることが要求される情報の量が減り、より良好な圧縮につながる。
現在のウェーブレット・マップと基準ウェーブレット・マップの間におけるピクセル・ブロックの動きを推定するのに、ブロック1103で、図12に示されるとおり、動きが推定されるべき、基準マップの中のピクセル・ブロック(基準ブロックと呼ばれる)の周囲で、ブロック近傍が定義される。
最も粗い4つのサブバンドに対して、サブバンドの大きさは、k=(w/2n)、l=(h/2n)に等しく、ただし、wとhは、nレベルの分解を伴う元のイメージの幅と高さである。ピクセル・ブロックの周囲の近傍の深度は、普通、それぞれkとlに等しいように設定されるが、わずかにより低い値(例えば、k−1およびl−1)も同様に良好に作用する。
サブバンドの端部に沿ったピクセル・ブロックに対して、近傍の領域が、サブバンドの外側にあふれ出る。一実施形態では、そのブロックに対して、端部拡張ゾーンを使用してブロック近傍が作成される。信号の輪郭を平滑化し、イメージ端部に沿ったウェーブレット係数のダイナミックレンジを小さくするため、一実施形態では、ミラーリング・スキームを使用して、端部拡張ゾーンが作成される。ブロックの水平端部に沿って、近傍ゾーン内のピクセルの列が、ブロックの水平端部に沿った同一の列の中のピクセルで、逆の順序で埋められる。このため、端部に最も近い近傍ゾーンの中のピクセルは、同一の列の中でそのピクセルにすぐに隣接している、ブロック内のピクセルの値で埋められる。このプロセスは、ブロックの近傍ゾーンの現在の列の中のすべてのピクセルが埋められるまで、ブロック境界から等距離のピクセルに対して続けられる。このプロセスは、ブロックの両方の水平端部に隣接するすべての列に対して繰り返される。同様のプロセスが、ブロックの垂直境界に沿った隣接する行に対しても繰り返される。ブロックの隅に隣接するピクセルに対して、基準ブロックのそれぞれの隅におけるピクセルの値が複製される。
ブロック近傍が、基準ブロックの周囲に決められ、対応する端部拡張ゾーンに、以上に概要を述べたスキームを使用してポピュレートが行われると、実際のサーチルーチンが実行される。
相同のサブバンドの中で同一の相対的位置にある、現在のフレームと基準フレームの中のピクセル・ブロックが、MEルーチンのために使用される。マッチングされるべき現在のフレームの中のピクセル・ブロックは、現在のブロックと呼ばれる。基準ブロックの周囲のブロック近傍によって包含される領域は、基準(または現在の)ブロックと同一の大きさを有するいくつかのブロックで構成されていると見なされる。
現在のブロックと基準ブロックの近傍内の同一サイズの任意のブロックの間の客観的な数値上の差を測定するのに使用されるメトリックは、一般的なL1メトリック、つまり、平均絶対誤差(MAE)メトリックである。メトリックを測定するのに、一実施形態によれば、現在のブロックと同一の大きさを有するピクセル・ブロックが、近傍ゾーン内で識別される。それら2つのブロックの中の対応するピクセルの絶対値の間の差が計算され、合計される。このプロセスが、基準ブロック自体を含む、近傍領域内のすべてのそのような可能なピクセル・ブロックに対して繰り返される(ブロック1104)。
サーチ技術の1つの重要な態様は、サーチが行われる順序である。従来のラスタ走査を使用するのではなく、一実施形態によれば、革新的な外向きコイル技術が使用される。この変更形態では、現在のブロック(現在のフレームの中の相同のサブバンドの)とマッチングされるべき、基準フレームの現在のサブバンドの中の現在の近傍内の第1のブロックは基準ブロック自体である。基準ブロックが試験されると、基準ブロックのすべての側部で1ピクセルのオフセットに位置するすべてのブロックが試験される。初回の実行の後、基準フレームから2ピクセルのオフセットに位置するすべてのブロックが試験される。このようにして、サーチ空間は、現在の近傍内のすべてのブロックが試験されるまで、プログレッシブに外向きに移動する。
最小のMAEを有する近傍領域内の特定のブロックが、現在のシステムに特に関心の対象となる(マッチするブロックとも呼ばれる)。そのブロックは、現在のフレームの中の現在のピクセル・ブロックに対する絶対差分方向で最も近い、基準(前の)フレームの中のピクセル・ブロックである。
現在の(または基準)ブロックからの、マッチするブロックの相対的ずれを記録するのに、一実施形態では、動きベクトル(MV)と呼ばれる独特なデータ構造が利用される。試験されているブロックのMVは、基準フレーム(例えば、前のフレーム、または将来のフレームのブロック)とマッチするブロック(現在のフレームの中の)の間の相対的ずれに関する情報を含む。各ブロックの左上隅が、マッチするブロックを追跡する基準点として選択される。基準ブロックの左上隅の座標と、マッチするブロックの座標との間の相対的ずれが、動きベクトル・データ構造の中に格納される。図12に示されるとおり、LLkサブバンドの中の動きベクトルには、V1 oというラベルが付けられるのに対して、他の3つの最も粗いサブバンドの中の動きベクトルには、V2 oというラベルが付けられ、ただし、oは、向き(HL、LH、およびHH)である。
動きベクトルを計算した後、データは、ベースライン・バイナリ算術圧縮アルゴリズム(本明細書で「パススルー・モード」とも呼ばれる)を介して、コンテキストなしに伝送される。一実施形態では、動き情報、特に動きベクトル・データ構造を伝送する間、階層順序に従う。動きベクトル情報は、絶対的動きベクトル情報(より粗いレベルからの)も改良された動きベクトル情報(より細かいレベルからの)もともに、一実施形態によれば、階層構造を有する。同一の空間配向ツリーに沿った親−子関係を共有するブロックに対応する動きベクトルは、ある程度の相関を有し、そのため、同一のコンテキスト変数を使用して伝送される。
動き予測プロセスが、前述したとおりに実行された後、一実施形態によれば、基準フレームの中のマッチするブロックのピクセル値が、現在のフレームの中の相同のブロックから減算されて、各オペレーションの結果を使用して、現在のブロックの中の対応するピクセルが上書きされる。補償ブロックとも呼ばれる、この差分ブロックが、現在のフレームの中の現在のブロックに取って代わる。このプロセスは動き補償(MC)と呼ばれる。
補償プロセスが、デコーダにおける最終的な再構築されたイメージに実質的に寄与する係数だけに適用されることを確実にするため、一実施形態によれば、前段で定義された低い方のしきい値(loThres)を使用して、そのような係数に対してだけ動き補償が実行される。補償された係数値は、loThres値よりも低く、一実施形態によれば、補償された係数は、0にまで量子化されることが確認されている。これにより、再構築されたフレームの全体的忠実度にいくらかの大きな寄与をする係数だけが、最終ビットレートに寄与することを許されることが確実になる。以上のME/MCプロセスが、現在と基準のウェーブレット・マップの最も粗い4つのサブバンドの中の、すべての2×2ブロックに対して繰り返される。
(例示的な改良された動き予測)
プロセスは、現在のマップと基準マップのウェーブレット・マップの中の、残りのすべてのより細かいサブバンドに対して、わずかに変更される。最も粗い4つのサブバンドを除く、すべてのサブバンドに対して、一実施形態では、最も粗いサブバンドの中の相同のブロックに対応する動きベクトルに対してアフィン変換を使用して、図12に示されるとおり、移動された基準ブロックの周囲の領域内の限られた区域にわたって通常のサーチルーチンを適用して、リファインメント動き予測スキームが実施される。
次々により細かくなるサブバンドのピクセル間の親−子階層のため、より細かいサブバンドの中の基準ブロックの相対位置は、最も粗いサブバンドの中の基準ブロックに密接に関係している。例えば、HL3サブバンドの中の左上の2×2ピクセル・ブロックの子孫には、図6に示されるとおり、HL2の左上隅における4×4ピクセル・ブロックと、HL1の左上隅における8×8ピクセル・ブロックが含まれる。両方のディメンションに沿った基準ブロックのサイズが、前のより粗いサブバンドの中の相同の基準ブロックのサイズの2倍であることに留意されたい。直観的に、より細かいサブバンドの中の動きベクトルのサイズは、相同のより粗いサブバンドの中の動きベクトルの2倍であると想定することができる。これにより、サブバンドの中の基準ブロックの中におけるピクセルの空間的移動の非常に粗い近似を得ることができる。この近似をさらに改良し、より細かいサブバンドの中のピクセルの動きをより正確に追跡するのに、一実施形態によれば、改良されたサーチ−マッチ・ルーチンが、より細かいサブバンドの中の基準ブロックに対して実行される。
改良された動き予測ルーチンにおける第1のオペレーションとして、一実施形態では、基準ブロックの大きさが、基準ブロックが存在するサブバンドのレベルに依存する。例えば、レベル2における基準ブロックが4×4のサイズであるのに対して、レベル3における基準ブロックは8×8のサイズであるといった具合である。つまり、両方向に沿った基準ブロックのサイズは直前の(より粗い)サブバンドの中の基準ブロックの2倍である。一実施形態では、特定のレベルにおける、基準ブロックと同一の、または同様の大きさを有し、両方の基本的な方向に沿ってある量だけずれているブロックが識別される。
ずれの量は、図12に示されるとおり、基準ブロックが存在するレベルに依存する。例えば、図12を参照すると、レベル2のサブバンドの中で、おおよそのずれは、2*k oであり、ただし、Vk oは、最も粗い(レベル1)サブバンドの中の相同の基準ブロックに関する動きベクトルである。このため、新たな基準ブロックは、元の基準ブロックから2*k oだけずれている。新たな基準ブロックがサブバンド端部に隣接している場合、前段で定義された、基準ブロックの周囲の近傍ゾーンと同一であるサーチ区域が、端部拡張とともに、そのブロックの周囲に定義される。近傍ゾーンの深度は分解レベルに依存する。一実施形態では、深度は、レベル2のサブバンドに対して、4ピクセルに設定されており、レベル3のサブバンドに監視介して、8に設定されているといった具合である。
あらゆる中間レベルにおけるサブバンドに対して、改良されたサーチ−マッチ・ルーチンは、前述したレベル1(最も粗い)サブバンドに関するサーチ−マッチ・ルーチンと同様の、または同一の形で実施される。k=2n−lであり、n=合計分解レベルであり、l=現在の分解レベルである、Δk oというラベルが付けられた、改良された動きベクトルが、より粗いサブバンドの動きベクトルと同様の形で伝送される(図12参照)。マッチするブロックの正味のずれをポイントする(結果の)補正された動きベクトルVkoが、概算の(スケーリングされた)動きベクトル、2*k/2 oとリファインメント・ベクトル、Δk oとを足すことによって与えられる。
最も細かいレベルのサブバンドに対して、概算の動きベクトル(基準ブロックのディメンションを2倍にすることを見込む)は、Vk o+(2*k/2 o)によって与えられる。元の基準ブロックから概算の動きベクトル分だけずれたブロックが、次に新しい基準ブロックとして使用される。そのブロックの周囲の近傍ゾーンの深度は、すぐ前のより粗いレベルにおいて設定されたサイズの2倍に設定される。このようにして獲得された、新たな改良された動きベクトル、V2*k oは、より粗いレベルの動きベクトルと同様の形で伝送される(図12参照)。
より細かいサブバンドに対して実行される、改良された動き予測アルゴリズムのための動き補償(MC)ルーチンは、最も粗いサブバンドに対して概要を述べたプロセスと同じか、同一である。改良された動きベクトルがポイントする、マッチするブロックが、現在のブロック(現在のフレームの中の相同の位置における)からピクセルごとに減算され、差分が、現在のブロックによって占められるロケーションに上書きされる。そのブロックが、この時点で、補償ブロック(より粗いサブバンドに対して前述した)と呼ばれる。
現在のフレームの中のすべての現在のブロックが補償された後、新たなフレームが補償フレームと呼ばれる。この補償(差分)フレーム(予測フレームとも呼ばれる)が、次に、ソース・エントロピ/算術コーダを使用してソース−算術符号化され、ビット・ストリームが、伝送チャネルを介して伝送される(例えば、図4Aのブロック403〜405)。
予測フレームに関するソース符号化−動き補償フィードバック・ループは、いくつかの軽微な変更を伴って、イントラ・フレームに対して使用されるプロセスと同様である。予測フレームにおける係数値の統計分布は、イントラ符号化フレームにおいて見られる分布とは異なることがよく知られている。イントラ符号化フレームのケースでは、ウェーブレット・フィルタのエネルギー圧縮により、より優れたエネルギー圧縮が確実にされるものと想定される。これにより、エネルギーの大部分が、確実に、最も粗い4つのサブバンドの中に集中するようになる。しかし、セットアップ全体の間に、データは、ビデオ・シーケンスなどの、リアルタイムのビジュアル信号の非決定論的な統計特性を有する。しかし、予測フレームのケースで、ピクセルの空間的に異なる差分値だけが格納され、それらの係数は、現実のビデオ・クリップのエントロピを欠く。このため、予測ウェーブレット・マップの、より優れたエネルギー圧縮を当然視することはできない。
一実施形態では、イントラ符号化マップに対して、特定の配向ツリーに沿って進むと、最も粗いサブバンドは、係数値の最大の平均と分散を有し、それらの統計値は、より細かいレベルに向かって対数曲線に沿って減少する。そのような「下り坂の」輪郭により、ウェーブレット・マップの中で高いレベルのエネルギー圧縮が保たれる。この「頭でっかちの」分布は、ソース・コーダの高い符号化効率と利得に役立つ。しかし、それらのサブバンドの第1の統計モーメントと第2の統計モーメントは、予測ウェーブレット・マップの中で、それほど密接に関係していない。予測マップの中で「ほぼ対数曲線」関係をシミュレートするのに、一実施形態によれば、予測マップの中のより細かいサブバンドのウェーブレット係数が、それらの係数の元の値からスケールダウンされる。これにより、輪郭プロットが、より「対数的な」フィットになるように強制されて、イントラ符号化ウェーブレット・マップの圧縮を非常に効果的にするウェーブレット係数の同様の統計分布がシミュレートされる。一実施形態によれば、このスケーリング・プロセスは、復号化プロセスにおいて逆にされる。一実施形態によれば、3レベル分解に関する特定のツリーの向きに沿って、最も細かいサブバンド(LLkサブバンド以外の)に対して、スケーリング率は8、16、32である。
一実施形態では、フレーム・グループ(GOF)が、イントラ符号化フレームから始まり、その後に、予測(BまたはP、あるいはそれ以外の)フレームが続く、時間的に隣接したフレーム・セットとして定義される。GOFの終りで、イントラ符号化フレームは、新たなGOFの始まりを知らせる。
レート制御の重要な側面は、イントラ符号化フレームが、それらのフレームの本来備わったより高い符号化レートのために、必要とされる場合にだけ、導入されることを保証することである。一実施形態では、イントラ符号化フレームの導入の理由となる2つのイベントは、許容できるレベルを下回る平均フレームPSNRの低下、および/またはビデオ・クリップにおけるシーンの変化である。システムによって使用される正確な動き予測ルーチンのため、フレームの平均PSNRは、それまでに受け入れられたしきい値を下回って低下する可能性の方が低い(そのため、ビデオ・シーケンス全体を通して良好な主観的品質が確実にされる)。
ほとんどのデータ処理とヒューリスティックな判定は、多重解像度ドメインにおいて行われるので、シーンの変化も、最も粗い(LLk)サブバンドの中のピクセル値の分布に基づいて、検出される。動き予測とソース/エントロピ符号化の前の前処理オペレーションとして、動き予測ルーチンが実行されるべき2つのフレームの最も粗いサブバンドが比較される。
一実施形態では、LLkサブバンドにおける相同のピクセルの絶対差が計算されて、しきい値に対して比較される。このしきい値は、多様なビデオ・クリップに対する実験で決定される。特定の実施形態では、500という値が、ほとんどの目的に適している。この絶対差分オペレーションが、最も粗いサブバンドのすべての係数に対して実行されて、カウンタが、絶対差の値がしきい値を超えるケースの数の追跡を記録する。絶対差がしきい値を超えるピクセルの数が、所定のレベル以上である場合、ビデオ・フレームにおけるシーンの激しい変化があったものと考えることができ、したがって、イントラ符号化フレームの導入の理由となり、現在のGOFの終りと新たなGOFの始まりが印される。シーン変化を判定する、本明細書で、シーン変化ファクタ(SCF)というラベルが付けられる数値レベルは実験の問題である。一実施形態では、50という値が、ほとんどのケースに適している。
一実施形態では、ある最小しきい値要件とある最大しきい値要件を満たす、マッチするブロック(サブバンド内の)だけが補償され、符号化されることを確実にする技術が、使用される。その技術は、適応しきい値と呼ばれる。一実施形態では、実際のブロック・マッチング・ルーチン中に、現在のブロックと比較されるべき最初のブロックは、基準ブロックである。近隣ゾーン内の他のすべてのブロックに対して、そのブロックのMAEが、しきい値と照らして基準ブロックのMAEと比較される。それら2つのブロックのMAEの値の差がしきい値未満である場合、そのマッチは、破棄され、基準ブロックが、引き続き最良のマッチと見なされる。
しきい値は、実験によって決定され、ウェーブレット・ツリー構造の異なるレベルに対して異なる。より粗いレベル(より高いサブバンド)において、係数は平均値であるのに対して、より細かいレベル(より低いサブバンド)において、係数は差分値である。平均値は差分値より大きい。このため、LLkサブバンドに対して、しきい値は他のサブバンドより高い。所与の分解レベルにおけるすべてのサブバンドが同一の量子化値を有し、値は、分解レベルを下に行くにつれて小さくなる。マッチが見つかると、一実施形態によれば、現在のブロック(現在のフレームの中の)のエネルギーが、補償ブロック(現在のフレームの中の現在のブロックと、基準フレームの中のマッチするブロックの相同のピクセル間の差分を計算することによって得られる)のエネルギーと比較される。このケースにおけるエネルギーは、特定の補償ブロックの係数値を合計することによって得られる単純な1次メトリックである。そのエネルギー値が、現在のブロックの対応するエネルギー値より大きい場合、その補償ブロックは、破棄され、現在のブロックが、補償(残余の)フレームの中で代わりに使用される。前のしきい値のケースと同様に、一実施形態によれば、現在のしきい値レベルの値は、広範な実験を介して決定されることが可能であり、ウェーブレット・ピラミッドの様々なレベルに対して異なる。
(例示的な動き予測モード)
一部の実施形態で使用される動き予測ルーチンは、本明細書で、双方向多重解像度動き予測(B−MRMP)と呼ばれる。一実施形態では、動きは、先行するフレームと後続のフレームから推定される。動き予測のために使用される過去のフレーム、現在のフレーム、将来のフレームの間の時間的オフセットは推測の問題である。一実施形態では、1という時間的オフセットが、最良の結果のために適用される。一実施形態では、フレームはペアで読み取られ、ウェーブレット変換される。そのようなシナリオでは、3つの一般的なシーケンス・モードが可能である。
BPモードとも呼ばれる第1のモードでは、ペアの中の第1のフレームは、動き予測ルーチンを受ける、そのフレームの各サブバンドの中の各ブロックが、前に符号化された(基準)フレームと、将来の(P、またはそれ以外の)フレームの両方の中の相同のブロックに照らして試験される双方向予測フレームである。一実施形態では、フレーム・データは、自然な順序で読み取られ、ウェーブレット変換される。しかし、(後続の)Pフレームは、Bフレームより前に動きが予測される。Pフレームは、最後のフレーム・ペア(例えば、基準フレーム)の第2のフレームを使用して動き予測ルーチンを適用することにより、予測される。次に、フレームは、フレームの損失のあるバージョンを回復するように、動き予測技術を使用して再構築され、補償される。Bフレームの中の各ブロックが、次に、(過去の)基準フレームと(将来の)Pフレームの両方からの相同のブロックを使用して、動き予測される。基準フレームからの基準ブロックを使用した推定/補償が、より低いエネルギーの補償ブロックとなる場合、その特定のブロックは、(過去の)基準フレームの基準ブロックを使用して補償され、さもなければ、補償は、(将来の)Pフレームの基準ブロックを使用して実行される。
Bフレームのより細かいサブバンドでは、補償のために2つのフレーム(過去の基準フレーム、または将来のPフレーム)のいずれかを使用する決定は、最も粗い4つのサブバンドの中の親ブロックにおいてその目的で使用されたフレームに基づく。
Bフレームの動き情報を記録し、伝送する間、アレイは、補償プロセスにおいて使用され、2ビットの英字を使用している、フレーム(過去の基準フレーム、または将来のPフレーム)のIDを格納する。フレームの中のすべてのブロックに関するその情報は、他の動き情報に先立って、チャネルを介してコンテキストとともに伝送される。Bフレームを使用する利点は、Bフレームが、将来のフレームを予測する基準フレームとして使用される可能性がそれほど高くないため、動き予測フィードバック・ループにおいて補償と再構築を必要としないことである。このため、このルーチンは、符号化プロセスにおいて、他のシステムにおける場合と比べて、非イントラ符号化フレームに対して半分でフィードバック再構築ループを通過し、相当な量の処理時間が節約される。
PIモードとも呼ばれる第2のモードでは、ペアの中の第1のフレームは、先行するフレーム・ペアの第2のフレームを基準として使用して予測符号化される。そのペアの後半部分におけるイントラ符号化フレームは、次のフレーム・ペアに関する基準として使用される。
PIモードでは、第1のフレームは、イントラ符号化フレームであり、ペアの中の第2のフレームの(単方向)動き予測のための基準として使用される。第2の(P)フレームが、補償されると、そのフレームは、次のフレーム・ペアのために新たな基準フレームとして再割り当てされる。
別の実施形態では、動き予測は、単方向多重解像度動き予測(U−MRMPモード)とも呼ばれる単一の予測フレームを使用して実行される。このスキームでは、B−MRMPに対して前段で概要を述べたすべてのオペレーションが、単にPフレームとして知られる単一の(先行する)予測フレームを使用して実行される。一度に1つのフレームだけが読み取られればよいので、この技術は、動き予測の正確さが劣るものの、要する待ち時間はより短くてすむ。すべての非イントラ符号化フレームは、先行する(IまたはP)フレームから予測されるので、前述したとおり、モード・ビットのストリームを送信する必要がない。
別の実施形態では、動き補償(MC)スキームは、動きブロック重ね合わせ(MBS)で置き換えられることが可能である。MBSスキームでは、動き推定は、前述したとおり、実行される。しかし、算術符号化スキームは、符号化予測された(誤り)マップ(BおよびP)において非常に非効率である。BフレームとPフレームの中の係数の偏った確率分布のために、それらの係数は、算術符号化のケースで行われる頭でっかちのツリー構造の想定を満たさない。これにより、大きい係数のいくつかが、より細かいサブバンドの中で散在することになり、それらの孤立した係数が、より高い忠実度のために符号化される前に、算術符号化の反復機構が、いくつかのビットプレーンを通ってループさせられる。
一実施形態では、以上の問題を解決する1つのやり方は、誤りマップを扱うことを完全に回避することである。そのスキームでは、任意のGOFサイズが、固定サイズのGOFによって置き換えられる。一部の実施形態では、GOFの中のフレームの数は、毎秒のフレーム数に等しい(例えば、毎秒、新たなGOF)。2つのイントラ符号化GOFエンドマーカ(新たなシーンの始まりにマークを付ける)間の1秒の時間内にイントラ符号化フレームが挿入される可能性がある、急速なシーン変化のケースでは、新たなGOFが、その新たなIフレームから定義される。動き推定ルーチンが、基準ブロックを基準として、マッチするブロックの空間的位置を決定した後、一実施形態によれば、現在のブロック(現在のフレーム)の係数値が、基準フレームの中のマッチするブロックの相同のピクセルで置き換えられる。これは、2つのブロックの差分を計算しないことによって時間を節約し、イントラ符号化フレームの全体的な統計も維持する。実際、これにより、現在のGOFの中の第1のイントラ符号化フレームのブロックが、ジグソーパズルのように、限られた領域内であちこちに移動されることになり、動きは、対応する動きベクトルだけを使用して表される。このスキームでは、動きベクトルだけが伝送される必要があり、予測符号化マップは、もはやソース符号化されない。というのは、各予測符号化フレームの中のブロックは、基本的に、現在のGOFの第1のイントラ符号化フレームから並進され、持ち上げられたブロックから成るからである。以上のオペレーションが、各Bフレーム、または各Pフレームの3つすべてのマップに対して実行される。
基準から現在のフレームへの重ね合わせが完了すると(前述した補償フレームの代わりに、重ね合わせフレームを作成する)、そのフレームが、将来のフレームのための基準フレームの役割をする。現在のGOFの第1のIフレームの中の実際のピクセル値は、プロセス全体を通じて、単にそれらの値の周囲で並進されるので、算術符号化を使用して重ね合わせフレームを符号化し、ビットをデコーダに伝送することは必要としない。このため、新たなシステムは、重ね合わせフレームからのビットを符号化せず、伝送しないことにより、時間と帯域幅を節約する。
BMSの別の実施形態では、前に符号化されたフレームの輝度(および/またはクロマ)マップの最も粗い4つのサブバンドだけが、算術符号化を使用してソース符号化される。これは、それら4つのサブバンドをnレベル・サブバンド・マップ(通常のマップと同様の)の中で複製し、他のすべてのサブバンドを0で埋めることによって行われる。動き推定(ME)と動き補償(MC-/MC+)が、前述したとおり、実行され、補償フレームは、算術符号化を使用して符号化される。これにより、前の実施形態と比べて、動きを追跡する際により高い信頼性が確実になるが、より高いビットレートという犠牲を払う。
前述したとおり、動き予測のモードの選択は、確定していない推測といくらかの入念な実験の問題である。一実施形態では、動き情報ファクタ(MIF)とも呼ばれるしきい値が、現在のフレームと将来のフレームが時間符号化されるべきモードを決定するのに使用される。
一実施形態によれば、MIFを計算するのに2つの独立したしきい値が使用される。ウェーブレット・マップの中のサブバンドの中の係数がその目的で使用される。動きの平均量に基づいてブロックを分類するデシジョン・ツリーは、係数を3つのカテゴリに分離することに基づく。補償の後の合計エネルギーが、元の現在のブロック自体のエネルギーより大きいブロックに対して、対応する動きベクトル座標は、例えば、127という値などの、所定の値に設定される。他の2つのカテゴリのブロックは、両方の座標が、所定の値以外の値と等しい動きベクトルを有する。便宜上、それらのブロックには、それぞれ、NC(非補償)、Z(ゼロ)、NZ(非ゼロ)というラベルが付けられる。
第1のしきい値は、ウェーブレット・マップの中の4つの最も粗いサブバンドに対して設定される。NCブロックの総数をファクタαで表し、NCブロックとZブロックの総数をファクタβで表す。一実施形態では、αがβの値の10%未満である場合、その特定のフレームは繰り返される。それ以外の場合、動き予測(B−MRMP)が実行される。
同じ試験パラメータ(αまたはβ)を用いる同様の試験が、残りのより細いサブバンドに対して実行される。一実施形態では、αがβの10%未満である場合、動きブロック置換(MBS)が実行される。そうでない場合は動き予測(B−MRMP)が実行される。
いずれかの試験において使用されるしきい値ファクタとサブバンドの数は、推測と入念な実験の問題である。一実施形態では、4つの(可能な10からの)サブバンドが、第1の試験のために使用され、残りの6つは、第2の試験のために使用され、いずれのケースにおいても、10%というしきい値ファクタが使用される。
(代替の動き予測スキーム)
別の実施形態では、ピクセル(空間)マップの完全サーチルーチンが、空間ドメインにおける動きを予測し、追跡して、ビデオ・シーケンスの中の連続するフレーム間の時間的冗長性を活用するために、図9B、図10Bに示すとおり、ウェーブレット変換ブロックに先立って導入される。一実施形態では、16×16ブロック・サイズが、現実世界の大域的動きと局所的動きを追跡するのに最もよく適している。これには、回転の動き、並進の動き、カメラ・パンの動き、ズームの動きが含まれるが、以上には限定されない。このため、このサイズのブロックは標準マクロブロックと呼ばれる。
一実施形態では、単方向動き予測(U−MP)が、完全サーチ技術を使用して、連続するフレーム間の動きを予測するのに使用される。その実施形態では、フレームは、標準マクロブロック・サイズ(16×16)の高さと幅を有するブロックに分割される。フレーム境界に沿った不整合を防止するのに、フレームの大きさは、16の倍数となるように端部拡張される。そのように作成された端部拡張されたゾーンの中のピクセルを満たすのに、すべてのフレームにわたって標準の一様な技術が適用される。エッジ拡張されたゾーンには、例えば、実際のイメージの端部に沿ったピクセル値が埋められても、あるいは、全体にわたって0で埋められてもよい。様々な技術が、特定の構成に依存して利用される。
フレームが、16×16のサイズのブロックに分割されると、U−MPルーチンが、すべてのそのようなブロックにラスタ走査シーケンスで適用される。各ブロックに対して、近傍ゾーンが、図13に示されるとおり、マクロブロックの端部の周囲に定義される。近傍ゾーンの深度は、すべての方向で、15ピクセルに等しくなるように選択される。このため、U−MPを使用して処理されるべき各マクロブロックは、すべての方向で、そのマクロブロックの周囲の15ピクセルの近傍ゾーンで埋められる。
イメージ・マップの端部に沿ったマクロブロックに対して、近隣ゾーンは、イメージ・マップの外の領域に及ぶまで広がることが可能である。そのようなケースでは、マクロブロックに関する近傍ゾーンは、端部拡張されたゾーンからのピクセルを使用する。
U−MPルーチンは、5つの基本的なオペレーションに分割される。選択的動き予測として知られる第1のオペレーションにおいて、一実施形態では、いずれのピクセルが、またはいずれのピクセル・セットが、U−MPプロセスにおいて補償される必要があるかを判定するしきい値が設定される。一実施形態では、基準フレームの中の各ピクセルが、現在のフレームの中の相同のピクセルから減算されて、差分マップが生成される。差分マップの中の各ピクセルが、次に、予め決めたしきい値と比較される。しきい値の値は、推定と厳密な実験の問題である。現在のピクセル位置における差分値が、しきい値を超えている場合、そのピクセルには、アクティブであるというマークが付けられ、超えていない場合、そのピクセルには、非アクティブであるというマークが付けられる。基準フレームの中のすべてのピクセルが検査された後、基準フレームの中のそれぞれの16×16ピクセルの中のそのようなアクティブなピクセルの数のカウントが記録される。マクロブロックの中のアクティブなピクセルの数が予め決めたしきい値を超えている場合、そのマクロブロックには、アクティブであるというマークが付けられ、超えていない場合、そのマクロブロックには、非アクティブであるというマークが付けられる。しきい値の値は、推定と厳密な実験の問題である。
U−MPプロセスにおける第2のオペレーションは、単方向動き予測(U−MP)オペレーションである。一実施形態では、従来のハーフペル動き予測アルゴリズムの変更形態が実行される。その変更形態では、各フレームは、2倍に補間されて、元のイメージ・マップの4倍のサーチ区域となる。前の実施形態で前述したとおり、基準フレームとして知られる先行するフレームが、動きを予測し、追跡するための基準として使用される。現在のフレーム(単に現在のフレームとして知られる)が比較の他の基礎として使用される。比較されるそれら2つのフレームの中の相同のブロックが、図13に示されるとおり、それぞれ、基準ブロック、現在のブロックと呼ばれる。
動き予測ルーチンの別の実施形態では、非整数ペル動き補間スキームは、図14に示されるとおり、ある形態のクォータペル動き予測を実行するようにさらに変更される。この変更形態では、現在のフレームと基準フレームの輝度マップが、両方の基本的な方向に沿って4倍に補間されて、サーチ−マッチ・ルーチンにおける有効サーチ区域が、16倍に増加する。前述した両方の補間スキームの形態において、双1次補間スキーム、2次補間スキーム、3次スプライン補間スキームを含むが、以上には限定されない補間機構の選択は、推定と厳密な実験の問題である。補完された係数の正確な予測と計算の速度の間のトレードオフが、スキームの選択に関する重要な決定的要因である。
第2のオペレーションで、現在のフレームの中の特定のピクセル・ブロックの中の動きの最適な方向を判定する3つの試験が実行される。最初、ノンディスプレース動き予測オペレーションにおいて、一実施形態では、現在のフレームの中の各マクロブロックが、基準フレームの中の相同のマクロブロックからピクセルごとに減算される。これにより、ノンディスプレース補償ブロックが生成される。次のオペレーションで、整数サーチ(図13、図14参照)が、現在のフレームのすべての16×16マクロブロックに対して実行される。このルーチンにおいて、現在のマクロブロックのピクセルが、基準ブロックの周囲の近傍ゾーン内の現在のブロックと同一サイズのすべてのピクセル・セット上に重ねられる。それら2つのピクセル・セットを比較するために使用されるメトリックは、前の実施形態の場合と同様に、L1(絶対差の合計、つまり、SAD)メトリックである。基準ブロックから開始して、SADは、基準ブロックの近傍ゾーン内の16×16のすべてのブロックに対して計算されて、SADの最低の値を有するブロックの位置には、マッチするブロックというラベルが付けられる。
マッチするブロックと基準ブロックの間の相対位置が、現在の基準ブロックに関する動きベクトルとして知られる独特のデータ構造を使用して記録される。次のオペレーションで、ハーフペルサーチが、現在のフレームのすべての16×16マクロブロックに対して実行される(図13参照)。このモードでは、整数サーチモードにおいて特定のマクロブロックに対して獲得された動きベクトルが2倍にされ、改良されたサーチが実行される。改良されたサーチ区域の深度は、すべての方向で1ピクセルである。このオペレーションは、すべての方向において、1/2ピクセル以下の動きを検出するのに役立つ。結果の動きベクトルは、整数サーチモードと改良されたサーチモードにおいて獲得された、スケーリングされた動きベクトルを合計することによって得られる。その動きベクトルと対応するSAD値とが、将来のモード選択のために記録される(図13参照)。
現在のフレームの中の対応するマクロブロックのための動きベクトルとSADの値を記録した後、各マクロブロックは、8×8のサイズの4つのブロックに分割され、ハーフペルサーチが、4つのブロックのそれぞれに対して実行される(図14参照)。前段で概要を述べたとおり獲得された動きベクトルの対応する成分に等しい、両方の基本的な方向に沿った距離だけ、現在のブロック(動き予測のために試験されている)からオフセットされたブロック(8×8の大きさの)が、改良されたサーチルーチンのための基礎として使用され、そのブロックの周囲に1ピクセルのサーチ区域が存在する。これは、前述したとおり、1ピクセルの改良されたサーチ区域を伴う、改良されたサーチ技術の変更形態である。整数サーチモードと改良されたサーチモードにおいて獲得された、スケーリングされた動きベクトルを合計することによって獲得された結果の4つの動きベクトルのセット、および対応するSAD値が後のモード選択のために記録される(図14参照)。
別の実施形態では、より改良されたスキームが、大域的な動きフィールドの中の、より小さい動くオブジェクトに対して実施される。このスキームでは、現在のマクロブロック内の8×8の各ブロックが、4×4の4つのブロックにさらに分割され、前段で概要を述べた、スケーリングの前述の技術と概要を述べた改良されたサーチの技術が、4×4ピクセル、4×8ピクセル、8×4ピクセルの大きさの、可能なすべてのサーチ区域に対して繰り返される。前段で概要を述べた改良された動き推定ルーチンから獲得されたSAD値も、将来のモード選択のために表にされる。
一実施形態によるU−MPにおける第3のオペレーションでは、前述した異なる3つのモードから獲得されたSAD値に、異なる重みが適用される。ノンディスプレース動き予測オペレーションからのSAD(および対応する動きベクトル)は、累積的伝送速度に対する追加への寄与が最も少ないので、このモードに対応する動きベクトルには、最低の重み(値ゼロの)が与えられ、そのため、最高の優先順位が与えられ、ブロックのモードには、0MVというラベルが付けられる。同様に、より大きくなる重み(およびより低い優先順位)が、16×16整数ペル/ハーフペルサーチモードと8×8ハーフペル・モードからそれぞれ獲得されたSAD値と動きベクトルに与えられる。それらのブロックには、それぞれ、1MV(図13参照)、4MV(図14参照)というラベルが付けられる。重みは、SAD値を何らかの予め決めたしきい値と比較することによって課せられる。前段で概要を述べた3つのケースのそれぞれにおけるしきい値の値は、推定と厳密な実験の問題である。これは、特定のマクロブロックに対してより高いレートを有するモードが選択されることが、そのようにして得られる利点が、より高い忠実度(およびより低いSAD)の点で、相当に大きい場合にだけ行われることを確実にするように行われる。
U−MPの第4のオペレーションで、一実施形態によれば、図15に示されるとおり、オーバラップ・ブロック・マッチング/補償(OBMC)が、図15に示された基準フレームの各16×16マクロブロックに対して実行される。このオペレーションでは、ディスプレース・フレーム差分(DFD)アルゴリズムが、前述した諸技術を使用して実施される。しかし、一実施形態では、マッチするブロックの選択は、図15に示されるとおり、現在、試験されている基準ブロックと、隣接する近隣ブロックの動きベクトルの関数である。
現在、試験されている基準ブロックが、1MVモードであり、そのブロックのすぐ上と左に隣接しているブロックが、それぞれ、1MVモードである実例を考慮されたい。そのような実例では、一実施形態によれば、3つすべてのブロックからの動きベクトルが、試験されている基準ブロックの任意の1つの隅に並進され(いずれの特定の隅も優先されないが、その選択は、そのブロックに関する補償手続き全体にわたって一貫していなければならない)、対応するマッチするブロックが決定される。3つすべてのマッチするブロックの大きさは、基準ブロックの大きさと等しくなければならない(図15参照)。現在の実施形態では、そのように決定された、すべてのマッチするブロックからの相同のピクセルが、異なる重みを使用して合計され、次に、現在のブロック(現在のフレームの中の)の中の相同のピクセルとの間で差分が計算される。差分値は、現在のブロックの中の対応するピクセル位置上に上書きされる。その差分ブロックに、補償ブロックというラベルが付けられる。
現在、試験されている基準ブロックが、4MVモードである実例では、一実施形態によれば、マッチするブロックは8×8のサイズである。その実例では、元の16×16基準ブロックから切り出された4つの8×8ブロックのそれぞれが、OBMCを実行するのに使用される。8×8ブロックのいずれか1つに直に接触するブロックが1MVモードである場合、そのブロックの単一の動きベクトルがOBMCプロセスにおいて使用される。隣接するブロックが4MVモードである場合、問題の8×8ブロック(試験されている基準ブロックの中の)とピクセルのライン全体を境界として共有する、そのような隣接するブロックの8×8ブロックだけが、使用される(図15参照)。
現在、試験されている基準ブロックの中のピクセルまたはピクセル・セットに適用される重み付け関数と、基準ブロックに隣接するブロックの中のピクセルまたはピクセル・セットに適用される関数は、厳密な実験のプロセスを使用して決定される。
U−MPにおける最終オペレーションとして、残余のフレームが、前述したOBMCオペレーションの直接の結果として生成される。DFDルーチンを使用して、各ブロック(8×8または16×16)の間の差分が計算され、ピクセル値が、現在のブロックの中の対応するピクセル位置の上に上書きされて、残余のブロックが生成される。現在のフレームの中のすべてのブロックが試験されると、結果のフレームに、残余のフレームというラベルが付けられる。
0のサイズの動きベクトルを有するすべてのマクロブロック(16×16のサイズの)に対して、SADが予め決めたしきい値と比較される。SADが、予め決めたしきい値を下回っている場合、その特定のマクロブロックには、非補償マクロブロック(NCMB)というマークが付けられる。4つのそのようなNCMBが、2×2グリッド・アレイ構成で互いに隣接して見つかった場合、4つのブロックのそのセットには、非符号化ブロック(NCB)というラベルが合同で付けられる。
デコーダは、符号化されたビット・ストリームを復号化し、エンコーダと逆の信号フローを有する。様々な信号処理オペレーションの相対的順序は逆にされる(例えば、ウェーブレット再構築ブロック、またはI−DWTが、ソース/エントロピ・デコーダ、逆算術符号化の後に来る)。各ブロック内で、入力データの流れは、エンコーダに対して逆にされ、実際の論理オペレーションと数学オペレーションも逆にされる。
しかし、デコーダは、デコーダにおける動き補償(MC+)ルーチンが、比較的単純な加算プロセスであり、動き推定/補償(ME/MC-)オペレーションの計算リソースを多用するサーチ−差分ルーチンがかかわらないという点で、エンコーダの複雑さを欠く。図9Bおよび図10Bに示されるとおり、特定のピクセル・ブロック(任意の解像度レベルにおける任意のサブバンドの)に関する動きベクトル情報が、考慮されている現在のブロックにマークを付けるのに使用され、残余のフレームは、残余のブロックからの相同のピクセルの値を、現在のブロックに単に加算することによって更新される(つまり、「補償される」)。
以上、動き予測を使用してデジタル・イメージ・データを補償するための方法および装置を本明細書で説明した。以上の詳細な説明のいくつかの部分は、コンピュータ・メモリ内部のデータ・ビットに対するオペレーションのアルゴリズムと記号表現の点で提示してきた。それらのアルゴリズム記述とアルゴリズム表現は、データ処理技術の当業者が、自らの作業の内容を他の当業者に最も効果的に伝えるのに利用するやり方である。本明細書で、また一般的にも、アルゴリズムは、所望される結果をもたらす自己矛盾のないオペレーション・シーケンスであると考えられている。オペレーションは、物理量の物理的操作を要するオペレーションである。普通、ただし、必然的にではなく、それらの量は、格納、転送、合成、比較、およびそれ以外の形の操作が行われることが可能な電気信号または磁気信号の形態をとる。ときとして、主に一般的な用法の理由で、それらの信号をビット、値、要素、記号、文字、項、数値などと呼ぶことが好都合であることが分かっている。
しかし、それらの用語、および類似の用語は、適切な物理量に関連付けられるべきであり、単に、それらの量に付けられた便利なラベルに過ぎないことに留意しなければならない。特に明記しない限り、以上の説明から明らかなように、説明の全体を通して、「処理する」、または「演算する」、または「計算する」、または「判定する」、または「表示する」などの用語を利用する説明は、コンピュータ・システムのレジスタとメモリの内部の物理(電子)量として表されるデータを操作して、コンピュータ・システム・メモリまたはコンピュータ・システム・レジスタ、あるいは他のそのような情報格納デバイス、情報伝送デバイス、または情報表示デバイスの内部の物理量として同様に表される他のデータに変換する、コンピュータ・システム、または類似した電子コンピューティング・デバイスのアクションおよびプロセスを指すものと理解される。
また、本発明の諸実施形態は、本明細書のオペレーションを実行するための装置にも関する。この装置は、要求される目的のために特別に構築されても、コンピュータに格納されたコンピュータ・プログラムによって選択的にアクティブにされる、または再構成される汎用コンピュータを含んでもよい。そのようなコンピュータ・プログラムは、フロッピー(登録商標)・ディスク、光ディスク、CD−ROM、および光磁気ディスクを含む任意のタイプのディスク、読取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、消去可能なプログラマブルROM(EPROM)、電気的に消去可能なプログラマブルROM(EEPROM)、磁気カードもしくは光カード、あるいは電子命令を格納するのに適した任意のタイプの媒体などの、ただし、以上には限定されない、それぞれがコンピュータ・システム・バスに結合された、コンピュータ可読記憶媒体の中に格納される。
本明細書で提示されるアルゴリズムおよび表示は、いずれの特定のコンピュータ、または他の装置にも本来的に関連していない。様々な汎用システムが、本明細書の教示によるプログラムとともに使用されることが可能であり、あるいは要求される方法オペレーションを実行する、より特化された装置を構築するのが好都合であると判明する可能性がある。様々なそれらのシステムに関する要求される構造は、以下の説明から明らかとなろう。さらに、本発明は、いずれの特定のプログラミング言語に関連しても説明されていない。様々なプログラミング言語が、本明細書で説明される本発明の教示を実施するのに使用されることが理解されよう。
マシン可読媒体には、マシン(例えば、コンピュータ)によって読み取られることが可能な形態の情報を格納するため、または伝送するための任意の機構が含まれることが可能である。例えば、マシン可読媒体には、読取り専用メモリ(「ROM」)、ランダム・アクセス・メモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ・デバイス、電気形態、光形態、音響形態、または他の形態の伝搬される信号(例えば、搬送波、赤外線信号、デジタル信号、その他)、その他が含まれる。
以上の明細において、本発明を、本発明の特定の例示的な諸実施形態に関連して説明してきた。添付の特許請求の範囲に記載される本発明のより広い趣旨および範囲を逸脱することなく、それらの実施形態に様々な変更が加えられることが可能であることが、明白であろう。したがって、本明細書および図面は、限定的ではなく、例示的な意味であると見なされるべきである。
一実施形態による例示的なマルチメディア・ストリーミング・システムを示すブロック図。 一実施形態による例示的なマルチメディア・ストリーミング・システムを示すブロック図。 一実施形態による例示的なネットワーク・スタックを示すブロック図。 一部の実施形態による例示的な符号化システムと復号化システムを示すブロック図。 一部の実施形態による例示的な符号化システムと復号化システムを示すブロック図。 一実施形態による例示的な符号化プロセスを示す流れ図。 一部の実施形態による例示的なピクセル・マップを示すブロック図。 一部の実施形態による例示的なピクセル・マップを示すブロック図。 代替の実施形態による例示的な符号化プロセスを示す流れ図。 一部の実施形態による動き予測を使用する例示的な符号化システムと復号化システムを示すブロック図。 一部の実施形態による動き予測を使用する例示的な符号化システムと復号化システムを示すブロック図。 一部の実施形態による動き予測を使用する例示的な符号化システムと復号化システムを示すブロック図。 一部の実施形態による動き予測を使用する例示的な符号化システムと復号化システムを示すブロック図。 一実施形態による動き予測を使用する例示的な符号化プロセスを示す流れ図。 一部の実施形態による例示的なピクセル・マップを示すブロック図。 一部の実施形態による例示的なピクセル・マップを示すブロック図。 一部の実施形態による例示的なピクセル・マップを示すブロック図。 一部の実施形態による例示的なピクセル・マップを示すブロック図。

Claims (62)

  1. イメージ・シーケンスの各2つの連続するフレームに対して、輝度成分に関する動き予測情報を生成するために、前記フレームの輝度マップ上の動きを追跡して前記連続するフレーム間における動き予測を実行し、かつ前記輝度マップの前記動き予測情報をクロミナンス・マップに適用すること、および
    前記動き予測に応答して、各フレームのウェーブレット係数と前記動き予測情報を、目標伝送速度に基づいてビット・ストリームに符号化することを含み、前記符号化されたウェーブレット係数が所定のアルゴリズムにしたがって予め決めたしきい値を満たす、コンピュータによって実施される方法。
  2. 2つのフレーム間における動き予測を実行することは、
    各フレームの1つまたは複数のサブバンドの中の相同のピクセルの動きにタグを付けて、前記相同のピクセルの1つまたは複数の動きベクトルを決定すること、および
    前記決定された1つまたは複数の動きベクトルを最小絶対差分方向で符号化することを含む請求項1に記載の方法。
  3. 前記動き予測は、前記輝度マップの最も粗いサブバンドに対して実行されて、前記最も粗いサブバンドのそれぞれに関する動きベクトルが生成され、前記最も粗いサブバンドの前記動きベクトルは、前記フレームのより細かいサブバンドの動きベクトルを決定する親動きベクトルとして使用される請求項1に記載の方法。
  4. 前記対応する親サブバンドの前記動きベクトルを使用して子サブバンドのピクセルの空間的移動を推定して子サブバンドのサーチ区域を特定すること、および
    決定されたサーチ区域内の前記子サブバンドに関する動き予測を実行して、前記子サブバンドの前記動きベクトルを決定することをさらに含む請求項3に記載の方法。
  5. 対応する親ブロック、前記シーケンスの第1のフレーム、Iフレームの1つから基準ブロックを決めること、
    分解レベルに基づいて決定された近傍ゾーンを有する、前記基準ブロックを囲むサーチ区域を決めること、および
    前記定義されたサーチ区域内でサーチ−マッチ・オペレーションを実行して、マッチするブロックを識別する改良された動きベクトルを得ることをさらに含む請求項4に記載の方法。
  6. 前記サーチ−マッチ・オペレーションは、現在の分解レベルと分解レベルの総数に基づいて実行される請求項5に記載の方法。
  7. 前記マッチするブロックを現在のブロックから減算して補償ブロックを生成することにより、前記改良された動きベクトルを使用して動き補償を実行することをさらに含み、前記補償ブロックの少なくとも一部分が、前記ビット・ストリームの中に符号化される請求項5に記載の方法。
  8. ウェーブレット係数を符号化することは、目標伝送速度に基づき、ビット・ストリームに入る前回の実行の親サブバンドから得られたフレームのサブバンドに対して繰り返し実行され、前記予め決めたしきい値を満たさない前記ウェーブレット係数は、各回の実行において無視される請求項1に記載の方法。
  9. 前記目標伝送速度に従ってネットワークを介して、前記ビット・ストリームの少なくとも一部分を受信側に伝送することをさらに含み、前記伝送されたビット・ストリームは、前記受信側によって復号化されると、前記フレームのイメージを表すのに十分である請求項8に記載の方法。
  10. 反復符号化は、前記ウェーブレット係数の有意性を表す順序に従って実行される請求項9に記載の方法。
  11. 前記順序は、前記フレーム全体をわたるジグザグの順序であり、したがって、有意な係数が、それほど有意でない係数に先立って前記ビット・ストリームの中で符号化され、前記ビット・ストリームの一部分が前記目標伝送速度によって伝送されると、前記有意な係数を表すビットの少なくとも一部分は伝送されるのに対して、前記それほど有意でない係数を表すビットの少なくとも一部分は無視される請求項10に記載の方法。
  12. イメージ・シーケンスの各2つの連続するフレームに対して、輝度成分に関する動き予測情報を生成するために、前記フレームの輝度マップ上の動きを追跡して前記連続するフレーム間における動き予測を実行し、かつ前記輝度マップの前記動き予測情報をクロミナンス・マップに適用すること、および
    前記動き予測に応答して、各フレームのウェーブレット係数と前記動き予測情報を、目標伝送速度に基づいてビット・ストリームに符号化することを含み、前記符号化されたウェーブレット係数が所定のアルゴリズムにしたがって予め決めたしきい値を満たす方法をマシンに実行させる実行可能コードを有するマシン可読媒体。
  13. 2つのフレーム間における動き予測を実行することは、
    各フレームの1つまたは複数のサブバンドの中の相同のピクセルの動きにタグを付けて、前記相同のピクセルの1つまたは複数の動きベクトルを決定すること、および
    前記決定された1つまたは複数の動きベクトルを最小絶対差分方向で符号化することを含む請求項12に記載のマシン可読媒体。
  14. 前記動き予測は、前記輝度マップの最も粗いサブバンドに対して実行されて、前記最も粗いサブバンドのそれぞれに関する動きベクトルが生成され、前記最も粗いサブバンドの前記動きベクトルは、前記フレームのより細かいサブバンドの動きベクトルを決定する親動きベクトルとして使用される請求項12に記載のマシン可読媒体。
  15. 前記方法は、
    前記対応する親サブバンドの前記動きベクトルを使用して子サブバンドのピクセルの空間的移動を推定して子サブバンドのサーチ区域を特定すること、および
    決定されたサーチ区域内の前記子サブバンドに関する動き予測を実行して、前記子サブバンドの前記動きベクトルを決定することをさらに含む請求項14に記載のマシン可読媒体。
  16. 前記方法は、
    対応する親ブロック、前記シーケンスの第1のフレーム、Iフレームの1つから基準ブロックを決めること、
    分解レベルに基づいて決定された近傍ゾーンを有する、前記基準ブロックを囲むサーチ区域を決めること、および
    前記定義されたサーチ区域内でサーチ−マッチ・オペレーションを実行して、マッチするブロックを識別する改良された動きベクトルを得ることをさらに含む請求項15に記載のマシン可読媒体。
  17. 前記サーチ−マッチ・オペレーションは、現在の分解レベルと分解レベルの総数に基づいて実行される請求項16に記載のマシン可読媒体。
  18. 前記方法は、前記マッチするブロックを現在のブロックから減算して補償ブロックを生成することにより、前記改良された動きベクトルを使用して動き補償を実行することをさらに含み、前記補償ブロックの少なくとも一部分が、前記ビット・ストリームの中に符号化される請求項16に記載のマシン可読媒体。
  19. ウェーブレット係数を符号化することが、目標伝送速度に基づき、ビット・ストリームに入る前回の実行の親サブバンドから得られたフレームのサブバンドに対して繰り返し実行され、前記予め決めたしきい値を満たさない前記ウェーブレット係数が各回の実行において無視される請求項12に記載のマシン可読媒体。
  20. イメージ・シーケンスの1つまたは複数のフレームをキャプチャするキャプチャ・デバイスと、
    前記キャプチャ・デバイスに前記各フレームごとに結合されたエンコーダとを有し、そのエンコーダが、
    輝度成分に関する動き予測情報を生成するために、イメージ・シーケンスの各2つの連続するフレームに対して、前記フレームの輝度マップ上の動きを追跡して、前記連続するフレーム間における動き予測を実行し、かつ前記輝度マップの前記動き予測情報をクロミナンス・マップに適用し、かつ
    前記動き予測に応答して、各フレームのウェーブレット係数と前記動き予測情報を、目標伝送速度に基づいてビット・ストリームに符号化するように構成され、
    前記符号化されたウェーブレット係数が所定のアルゴリズムにしたがって予め決めたしきい値を満たすデータ処理システム。
  21. ポケットPCベースのPDAとスマートホン、PalmベースのPDAとスマートホン、Symbianベースの電話機、PDA、J2MEとBREWの少なくともいずれかをサポートする電話機の1つを含む移動デバイスにおいて、少なくとも1つのフレームを有するビット・ストリームの少なくとも一部分を受信すること、および
    前記受信されたビットを繰り返し復号化して、フレームのイメージを再構成することを含む、コンピュータによって実施される方法。
  22. 繰り返し復号化することは、前記符号化された係数に関連する有意性情報、符号情報、ビットプレーン情報を、それぞれのサブバンド内における符号化された係数の位置に基づいて生成することを含む請求項21に記載の方法。
  23. 異なる分解レベルに対して前記有意性情報、前記符号情報、前記ビットプレーン情報を表す別々のコンテキストを保持することをさらに含み、前記コンテキストの内容は、前記受信されたビット・ストリームから更新される請求項22に記載の方法。
  24. 反復復号化は、前記ウェーブレット係数の有意性を表す順序に従って実行される請求項22に記載の方法。
  25. 現在の実行の予め決めたしきい値を所定のオフセットだけ減分して、次回の実行のための新たなしきい値を生成することをさらに含む請求項22に記載の方法。
  26. 前記所定のオフセットは、前記現在の実行の前記予め決めたしきい値の半分までを含む請求項25に記載の方法。
  27. 前記次回の実行に関する復号化区域は、前記所定のオフセットに基づいて決定される率だけ、前記現在の実行の前記復号化区域より大きい請求項25に記載の方法。
  28. 前記ビット・ストリームから復号化されるデータの量は、再構築されるイメージの要求される品質に基づいて決定される請求項22に記載の方法。
  29. 前記順序は前記フレーム全体にわたるジグザグの順序であり、したがって、有意な係数が、前記ビット・ストリームの中のそれほど有意でない係数に先立って復号化され、前記ビット・ストリームの一部分が受信されると、前記再構築されるフレームの前記要求される品質に応じて、前記有意な係数を表すビットの少なくとも一部分は復号化されるのに対して、前記それほど有意でない係数を表すビットの少なくとも一部分は無視される請求項24に記載の方法。
  30. それぞれの再構築された係数に対して逆ウェーブレット変換が実行されて、前記フレームのイメージを表す複数のピクセルが生成される請求項21に記載の方法。
  31. イメージ・シーケンスの各2つの連続する復号化されたフレームに対して、前記ビット・ストリームの中に存在する動きベクトルを輝度マップとクロミナンス・マップのために使用することにより、前記連続するフレームの間における動き補償を実行する請求項21に記載の方法。
  32. 前記より細かいサブバンドに関する前記動きベクトルは、前記ビット・ストリームの中に存在する増分の差分値を加算することによって前記最も粗いサブバンドの前記動きベクトルから構築される請求項21に記載の方法。
  33. フレームの各ピクセルに対してウェーブレット変換を実行して、周波数ドメインにおける各ピクセルを表す複数のウェーブレット係数を生成すること、
    目標伝送速度に基づき、ビット・ストリームに入る前回の実行の親サブバンドから得られたフレームのサブバンドのウェーブレット係数を繰り返し符号化することを含み、前記符号化されるウェーブレット係数が所定のアルゴリズムに基づく予め決めたしきい値を満たすのに対して、前記予め決めたしきい値を満たさない前記ウェーブレット係数は、各回の実行において無視される、コンピュータによって実施される方法。
  34. 前記目標伝送速度に従ってネットワークを介して、前記ビット・ストリームの少なくとも一部分を受信側に伝送することをさらに含み、前記伝送されたビット・ストリームは、前記受信側によって復号化されると、前記フレームのイメージを表すのに十分である請求項33に記載の方法。
  35. 反復符号化は、前記ウェーブレット係数の有意性を表す順序に従って実行される請求項34に記載の方法。
  36. 前記順序は前記フレーム全体をわたるジグザグの順序であり、したがって、有意な係数が、それほど有意でない係数に先立って、前記ビット・ストリームの中で符号化され、前記ビット・ストリームの一部分が前記目標伝送速度によって伝送されると、前記有意な係数を表すビットの少なくとも一部分は伝送されるのに対して、前記それほど有意でない係数を表すビットの少なくとも一部分は無視される請求項35に記載の方法。
  37. 前記ビット・ストリームの中のデータの量は、前記ネットワーク上の受信側に関連する通信帯域幅に基づいて決定される、前記目標伝送速度に基づいて決定される請求項35に記載の方法。
  38. 前記ビット・ストリームは、それぞれのサブバンド内における符号化された係数の位置に基づいて前記符号化された係数に関連する有意性情報、符号情報、ビットプレーン情報を含む請求項37に記載の方法。
  39. 異なる分解レベルに対して、前記有意性情報、前記符号情報、前記ビットプレーン情報をそれぞれ表す別々のコンテキストを保持することをさらに含み、前記コンテキストの内容が、伝送のために前記ビット・ストリームに圧縮される請求項38に記載の方法。
  40. 現在の実行の予め決めたしきい値を所定のオフセットだけ減分して、次回の実行のための新たなしきい値を生成することをさらに含む請求項35に記載の方法。
  41. 前記所定のオフセットは、前記現在の実行の前記予め決めたしきい値の半分までを含む請求項40に記載の方法。
  42. 前記次回の実行に関する符号化区域は、前記所定のオフセットに基づいて決定される率だけ、前記現在の実行の前記符号化区域より大きい請求項40に記載の方法。
  43. フレームの各ピクセルに対してウェーブレット変換を実行して、周波数ドメインにおける各ピクセルを表す複数のウェーブレット係数を生成すること、
    目標伝送速度に基づき、ビット・ストリームに入る前回の実行の親サブバンドから得られたフレームのサブバンドのウェーブレット係数を繰り返し符号化することを含み、前記符号化されるウェーブレット係数が所定のアルゴリズムに基づく予め決めたしきい値を満たすのに対して、前記予め決めたしきい値を満たさない前記ウェーブレット係数は、各回の実行において無視される方法をマシンに実行させる実行可能コードを有するマシン可読媒体。
  44. 前記方法は、前記目標伝送速度に従ってネットワークを介して、前記ビット・ストリームの少なくとも一部分を受信側に伝送することをさらに含み、前記伝送されたビット・ストリームは、前記受信側によって復号化されると、前記フレームのイメージを表すのに十分である請求項43に記載のマシン可読媒体。
  45. 反復符号化は、前記ウェーブレット係数の有意性を表す順序に従って実行される請求項44に記載のマシン可読媒体。
  46. 前記順序は前記フレーム全体をわたるジグザグの順序であり、したがって、有意な係数が、それほど有意でない係数に先立って、前記ビット・ストリームの中に符号化され、前記ビット・ストリームの一部分が前記目標伝送速度によって伝送されると、前記有意な係数を表すビットの少なくとも一部分は伝送されるのに対して、前記それほど有意でない係数を表すビットの少なくとも一部分は無視される請求項45に記載のマシン可読媒体。
  47. 前記ビット・ストリームの中のデータの量は、前記ネットワーク上の受信側に関連する通信帯域幅に基づいて決定される、前記目標伝送速度に基づいて決定される請求項45に記載のマシン可読媒体。
  48. 前記ビット・ストリームは、それぞれのサブバンド内における符号化された係数の位置に基づいて前記符号化された係数に関連する有意性情報、符号情報、ビットプレーン情報を含む請求項47に記載のマシン可読媒体。
  49. 前記方法は、現在の実行の予め決めたしきい値を所定のオフセットだけ減分して、次回の実行のための新たなしきい値を生成することをさらに含む請求項45に記載のマシン可読媒体。
  50. 前記所定のオフセットは、前記現在の実行の前記予め決めたしきい値の半分までを含む請求項49に記載のマシン可読媒体。
  51. 前記次回の実行に関する符号化区域は、前記所定のオフセットに基づいて決定される率だけ、前記現在の実行の前記符号化区域より大きい請求項49に記載のマシン可読媒体。
  52. イメージ・シーケンスの1つまたは複数のフレームをキャプチャするキャプチャ・デバイスと、
    前記キャプチャ・デバイスに前記各フレームごとに結合されたエンコーダとを有し、前記エンコーダが、
    周波数ドメインにおける各ピクセルを表す複数のウェーブレット係数を生成するために、フレームの各ピクセルに対してウェーブレット変換を実行し、かつ目標伝送速度に基づき、ビット・ストリームに入る前回の実行の親サブバンドから得られた前記フレームのサブバンドのウェーブレット係数を繰り返し符号化するように構成され、
    前記符号化されるウェーブレット係数が所定のアルゴリズムに基づく予め決めたしきい値を満たすのに対して、前記予め決めたしきい値を満たさない前記ウェーブレット係数は各回の実行において無視されるエンコーダとを含むデータ処理システム。
  53. ポケットPCベースのPDAとスマートホン、PalmベースのPDAとスマートホン、Symbianベースの電話機、PDA、J2MEとBREWの少なくともいずれかをサポートする電話機の1つを含む移動デバイスにおいて、少なくとも1つのフレームを有するビット・ストリームの少なくとも一部分を受信すること、および
    ビット・ストリームの少なくとも一部分を繰り返し復号化して、前記少なくとも1つのフレームのイメージを再構築することを含む、コンピュータによって実施される方法。
  54. 繰り返し復号化することは、符号化された係数に関連する有意性情報、符号情報、ビットプレーン情報を、それぞれのサブバンド内における符号化された係数の位置に基づいて生成することを含む請求項53に記載の方法。
  55. 異なる分解レベルに対して前記有意性情報、前記符号情報、前記ビットプレーン情報のそれぞれを表す別々のコンテキストを保持することをさらに含み、前記コンテキストの内容が前記受信されたビット・ストリームから更新される請求項54に記載の方法。
  56. 反復復号化は、前記ウェーブレット係数の有意性を表す順序に従って実行される請求項54に記載の方法。
  57. 現在の実行の予め決めたしきい値を所定のオフセットだけ減分して、次回の実行のための新たなしきい値を生成することをさらに含む請求項54に記載の方法。
  58. 前記所定のオフセットは、前記現在の実行の前記予め決めたしきい値の半分までを含む請求項57に記載の方法。
  59. 前記次回の実行に関する復号化区域は、前記所定のオフセットに基づいて決定される率だけ、前記現在の実行の前記復号化区域より大きい請求項57に記載の方法。
  60. 前記ビット・ストリームから復号化されるデータの量は、再構築されるフレームの要求される品質に基づいて決定される請求項54に記載の方法。
  61. 前記順序は前記フレーム全体にわたるジグザグの順序であり、したがって、有意な係数が、前記ビット・ストリームの中のそれほど有意でない係数に先立って復号化され、前記ビット・ストリームの一部分が受信されると、前記再構築されるフレームの前記要求される品質に応じて、前記有意な係数を表すビットの少なくとも第1の部分は復号化されるのに対して、前記それほど有意でない係数を表すビットの少なくとも第2の部分は無視される請求項56に記載の方法。
  62. それぞれの再構築された係数に対して逆ウェーブレット変換が実行されて、前記フレームのイメージを表す複数のピクセルが生成される請求項53に記載の方法。
JP2007503104A 2004-03-10 2005-03-10 動き予測を使用してデジタル・イメージ・データを圧縮するための方法および装置 Withdrawn JP2007529184A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US55235604P 2004-03-10 2004-03-10
US55215304P 2004-03-10 2004-03-10
US11/077,106 US7522774B2 (en) 2004-03-10 2005-03-09 Methods and apparatuses for compressing digital image data
US11/076,746 US20050207495A1 (en) 2004-03-10 2005-03-09 Methods and apparatuses for compressing digital image data with motion prediction
PCT/US2005/008391 WO2005086981A2 (en) 2004-03-10 2005-03-10 Methods and apparatuses for compressing digital image data with motion prediction

Publications (1)

Publication Number Publication Date
JP2007529184A true JP2007529184A (ja) 2007-10-18

Family

ID=34976280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007503104A Withdrawn JP2007529184A (ja) 2004-03-10 2005-03-10 動き予測を使用してデジタル・イメージ・データを圧縮するための方法および装置

Country Status (4)

Country Link
EP (1) EP1730846A4 (ja)
JP (1) JP2007529184A (ja)
KR (1) KR20070026451A (ja)
WO (1) WO2005086981A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007143137A (ja) * 2005-11-11 2007-06-07 Alcatel 中継を実施するための方法および装置
KR101423466B1 (ko) 2008-05-06 2014-08-18 삼성전자주식회사 비트 플레인 영상의 변환 방법 및 장치, 역변환 방법 및장치

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7583844B2 (en) * 2005-03-11 2009-09-01 Nokia Corporation Method, device, and system for processing of still images in the compressed domain
US8654833B2 (en) 2007-09-26 2014-02-18 Qualcomm Incorporated Efficient transformation techniques for video coding
KR100950417B1 (ko) * 2008-01-16 2010-03-29 에스케이 텔레콤주식회사 방향성 필터링 기반 웨이블렛 변환에서 문맥 모델링 방법및 웨이블렛 코딩 장치와 이를 위한 기록 매체
KR101634228B1 (ko) * 2009-03-17 2016-06-28 삼성전자주식회사 디지털 이미지 처리장치, 추적방법, 추적방법을 실행시키기위한 프로그램을 저장한 기록매체 및 추적방법을 채용한 디지털 이미지 처리장치
US9232230B2 (en) * 2012-03-21 2016-01-05 Vixs Systems, Inc. Method and device to identify motion vector candidates using a scaled motion search
CN113630391B (zh) * 2015-06-02 2023-07-11 杜比实验室特许公司 具有智能重传和插值的服务中质量监视系统
WO2020207497A1 (en) 2019-04-12 2020-10-15 Beijing Bytedance Network Technology Co., Ltd. Applicability of matrix-based intra prediction
KR20220013939A (ko) * 2019-05-31 2022-02-04 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 행렬 기반 인트라 예측에서의 제한된 업샘플링 프로세스
EP3963885A4 (en) 2019-06-05 2022-12-14 Beijing Bytedance Network Technology Co., Ltd. DETERMINING CONTEXT FOR MATRIX-BASED INTRAPREDICTION
CN117041597B (zh) * 2023-10-09 2024-01-19 中信建投证券股份有限公司 一种视频编码、解码方法、装置、电子设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321776A (en) * 1992-02-26 1994-06-14 General Electric Company Data compression system including successive approximation quantizer
US5477272A (en) * 1993-07-22 1995-12-19 Gte Laboratories Incorporated Variable-block size multi-resolution motion estimation scheme for pyramid coding
US5495292A (en) * 1993-09-03 1996-02-27 Gte Laboratories Incorporated Inter-frame wavelet transform coder for color video compression
JP2000511366A (ja) * 1995-10-25 2000-08-29 サーノフ コーポレイション 4分割ツリーベースの可変ブロックサイズ動き推定装置および方法
JP2002507339A (ja) * 1997-05-30 2002-03-05 サーノフ コーポレイション 非線形ピラミッドを用いた階層的な運動推定実行方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007143137A (ja) * 2005-11-11 2007-06-07 Alcatel 中継を実施するための方法および装置
KR101423466B1 (ko) 2008-05-06 2014-08-18 삼성전자주식회사 비트 플레인 영상의 변환 방법 및 장치, 역변환 방법 및장치

Also Published As

Publication number Publication date
WO2005086981A3 (en) 2006-05-26
EP1730846A2 (en) 2006-12-13
EP1730846A4 (en) 2010-02-24
WO2005086981A2 (en) 2005-09-22
KR20070026451A (ko) 2007-03-08

Similar Documents

Publication Publication Date Title
US7522774B2 (en) Methods and apparatuses for compressing digital image data
US20050207495A1 (en) Methods and apparatuses for compressing digital image data with motion prediction
JP2007529184A (ja) 動き予測を使用してデジタル・イメージ・データを圧縮するための方法および装置
KR102400078B1 (ko) 비디오 코딩에서 모션 보상 예측을 위한 광흐름 추정
KR100772873B1 (ko) 스무딩 예측을 이용한 다계층 기반의 비디오 인코딩 방법,디코딩 방법, 비디오 인코더 및 비디오 디코더
JP5480775B2 (ja) ビデオ圧縮方法
WO2019242491A1 (zh) 视频编码、解码方法、装置、计算机设备和存储介质
US11284107B2 (en) Co-located reference frame interpolation using optical flow estimation
US20070086520A1 (en) Intra-base-layer prediction method satisfying single loop decoding condition, and video coding method and apparatus using the prediction method
Zhang et al. An overview of emerging video coding standards
CN113923455B (zh) 一种双向帧间预测方法及装置
EP2951998A1 (en) Content adaptive predictive and functionally predictive pictures with modified references for next generation video coding
CA2729287A1 (en) Video encoding by filter selection
EP1383339A1 (en) Memory management method for video sequence motion estimation and compensation
US11876974B2 (en) Block-based optical flow estimation for motion compensated prediction in video coding
US20190158873A1 (en) Motion field-based reference frame rendering for motion compensated prediction in video coding
KR100926752B1 (ko) 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치
US20080317133A1 (en) Mpeg video decoding method and mpeg video decoder
US8218639B2 (en) Method for pixel prediction with low complexity
US20060133499A1 (en) Method and apparatus for encoding video signal using previous picture already converted into H picture as reference picture of current picture and method and apparatus for decoding such encoded video signal
JP2007235299A (ja) 画像符号化方法
Bhojani et al. Introduction to video compression
Igarta A study of MPEG-2 and H. 264 video coding
JP2021103829A (ja) 画像符号化方法および画像復号方法
Koumaras et al. Principles of Digital Video Coding

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080310

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100319