JP4426118B2 - 有限アルファベットデータのロスレス適応符号化 - Google Patents
有限アルファベットデータのロスレス適応符号化 Download PDFInfo
- Publication number
- JP4426118B2 JP4426118B2 JP2000608507A JP2000608507A JP4426118B2 JP 4426118 B2 JP4426118 B2 JP 4426118B2 JP 2000608507 A JP2000608507 A JP 2000608507A JP 2000608507 A JP2000608507 A JP 2000608507A JP 4426118 B2 JP4426118 B2 JP 4426118B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- parameter
- encoding
- character
- coefficients
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/64—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Dc Digital Transmission (AREA)
Description
(発明の分野)
本発明は、一般にイメージ圧縮の分野に関し、詳細には、デジタルビクチャの改善されたウェーブレット符号化および復号に関する。
【0002】
(著作権の注記/許諾)
本特許明細書の開示の一部は、著作権保護を受けるマテリアルを含む。著作権所有者は、特許商標局の特許ファイルまたは記録において現れるような、特許明細書または特許開示の、いかなる者によるファクシミリ複製にも異議を有するものでないが、そうでない場合はいかなるすべての著作権も留保するものである。以下の注記は、以下で、かつ、本明細書の図面において記載されたようなソフトウェアおよびデータに適用される。すなわち、Copyright(著作権)1999,Microsoft Corporation,All Rights Reserved。
【0003】
(背景)
デジタルピクチャは、Webページ、CD−ROM百科事典、デジタルカメラ、およびその他、多数の応用例において使用されている。たいていの場合、ピクチャを少量のストレージに適合させるため、あるいは短時間でダウンロードされるために、ピクチャを圧縮することが必要である。例えば、典型的なデジタルカメラでは、ピクチャが、1024×768画素(ピクセル)の解像度で、ピクセルにつき12〜24ビットの解像度で撮られる。したがって、各イメージにおける生データが、約1.2〜2.5メガバイトである。いくつかのピクチャをコンピュータディスケットに適合させるため、例えば、各ピクチャによって使用されたデータ量を減らすことが必要である。達成される圧縮率が大きいほど、より多くのピクチャがディスケットまたはメモリカードに適合し、より高速に、電話回線など、帯域幅が制限された伝送媒体を介して転送することができる。
【0004】
イメージ圧縮は、過去20年間に渡って広範に研究されてきた。JPEG規格は、ISO(International Standards Organization)のJPEG(joint photographic experts group)委員会によって定義されたものであり、1992年に定義され、最も普及した、デジタルピクチャを圧縮する方法である。JPEGでは、小型の正方形のブロックのピクセル(サイズ8×8)が周波数領域に、離散コサイン変換(DCT)によってマップされる。DCT係数が量子化され(スケールファクタによって除算され、最も近い整数に丸められる)、1次元のベクトルに、固定のジグザク走査パターンを介してマップされる。このベクトルが、ランレングスおよびハフマン符号化の組合せを介して符号化される。
【0005】
JPEGにおける小型の8×8ブロックの独立処理は、実施の視点から、特に低コストのハードウェアにおいて利点である。しかし、これは、JPEGの主な問題、すなわち、ブロッキングアーチファクト(blocking artifacts)にも通じる。隣接ブロックからの量子化エラーはブロック間では相関しないが、ブロック内で相関するので、8×8ブロックの境界が、復元されたイメージにおいて、隣接ブロック間の符号化における潜在的な差により可視となる。このようなアーチファクトは、タイリングまたはブロッキングアーチファクトと呼ばれ、これらはオーバーラップ基底関数による変換を使用することによって低減させることができる(が、完全に解消することはできない)。
【0006】
ブロッキングアーチファクトを除去するための効率的な方法は、ブロックDCTをウェーブレット分解によって置き替えることであり、これは効率的な時間周波数表現を提供する。大変よい圧縮性能を、ウェーブレット係数を量子化および符号化することによって、得ることができる。
【0007】
多数のウェーブレットベースのイメージ圧縮システムが、過去数年における技術論文において報告されている。ウェーブレットによれば、典型的にはJPEGより20%〜50%よい範囲の圧縮率を達成することが可能である。より重要には、ウェーブレット変換が、JPEGの妨げとなるブロッキングアーチファクトを有していないピクチャに通じる。したがって、ウェーブレットベースの変換が、ますます普及しつつある。実際に、JPEGの次の改訂はJPEG2000と称され、ここでは、考慮中のすべての提案がウェーブレットを使用する。
【0008】
いくつかの従来のウェーブレット変換は、イメージを、16サブバンドに対応する係数に分解する。これは、サブバンドの4×4の行列の結果となり、これが大きいブロックフォーマットと呼ばれ、スペクトル分解およびチャネルの順序付けを表す。文字LおよびHが使用されて、各サブバンドのためのローパスフィルタリングおよびハイパスフィルタリングがそれぞれ識別される。最初のサブバンドがLLおよびHL係数を含み、各集合(set)における最初の文字(letter)が水平フィルタリングに対応し、第2のものが垂直フィルタリングに対応する。2つの段階が、各サブバンドフィルタリングの結合において使用される。順序付けが、左から右へ、かつ、下から上へ増大する周波数に対応する。この順序付けが固定されて、符号化および復号が、固定された方法において機能することができる。次いで、係数の量子化が実行され、その後にある形式の係数の圧縮符号化が続き、さらにイメージを圧縮するために適応ハフマン符号化または算術符号化が含まれる。これらの形式の符号化は、データタイプに依存するゼロツリー構造を含んで、大変複雑になる可能性がある。これらの符号化器はかなり複雑であり、多数が、圧縮される異なるイメージに合わせて修正される必要があり、これらをハードウェアにおいて実施することを困難にする。
【0009】
ウェーブレット係数を順序付けするためのゼロツリーに基づく手法の複雑さに対する1つの解決策が、Ordentlich E.他の文献、「A low complexity modeling approach for embedded coding of wavelet compression coefficients」 Proceedings DCC ′98Data Compression Conference(CAT.No.98TB100225),Proceedings DCC ′98Data Compression Conference,Snowbird,UT,USA,30March−1 April 1998,page408−417,XP000925096 1998 LosAlamitos,CA,USA,IEEE Comput.Soc,USA ISBN 0−8186−8406−2により開示されている。Ordentlichは2段階のプロセスを開示しており、そこでは係数の一集合(a set of coefficiences)が、その集合の外にある、前もって符号化された情報に応じて複数の係数の集合に分解される。第2の段階では、選択される順序付け(ordering)によって制約される通常のコンテキストモデル化を使用して複数の係数の集合を分解する。この場合、結果として生じるキャラクタは、適応ランレングスGolomb−Rice符号化器を使用して符号化される。
ウェーブレット圧縮係数および同様の有限アルファベットデータに作用し、ハードウェアやソフトウェアでも実施されるような、簡素な符号化技術への要求がある。
【0010】
(発明の概要)
適応符号化が、より小さい絶対値の値がより大きい絶対値を有するものより発生する可能性が高い、符号付き整数データにおいて実行される。この符号化はビットプレーンにおいて実行され、これが、復元の精度における、ロスレス(エラーなし)から様々なレベルの近似復元までのスケーラビリティを可能にする。ハフマン符号化とは異なり、コードテーブルが必要ではなく、これは、簡素な規則がコードワードを入力ストリングから決定するためである。
【0011】
1つの形式では、各ビットプレーンについて、最短のコードワード(単一の0)が割り当てられ、最も可能性の高い入力、ゼロの、長さ2kを有するランが表現され、kは、コードワードにおいて使用されたビットの数を最小化することを求め、量子化された係数のストリングを表現するために使用されたコードワードを制御するパラメータである。kは、より長いランに遭遇するときに増加し、そうでない場合、たとえば、そのランにおけるものとは異なったシンボルに遭遇するときに減少するように適合される。ビットプレーンの符号化は、適応算術符号化器など、いかなる効率的なエントロピー符号化器によっても行うことができるが、一実施態様においては、新しい適応ランレングスおよびGolomb−Rice符号化器が使用される。
【0012】
ゼロツリーなど、データ依存型データ構造、または、ツリーにおける集合区画(set partitions)のための別々のリストの使用を必要としないことにより、ハードウェア実施をより構築しやすく、ソフトウェア実施はより高速で動作することができる。
【0013】
(詳細な説明)
本発明の例示的実施形態の以下の詳細な説明では、添付の図面への参照が行われ、これは本明細書の一部を形成し、例示として、本発明を実施することができる特定の例示的実施形態が図示される。これらの実施形態が、当業者が本発明を実施できるようにするために十分な詳細において記載され、他の実施形態を利用できること、および、論理的、機械的、電気的、かつ他の変更を、本発明の精神または範囲から逸れることなく行うことができることを理解されたい。したがって、以下の詳細な説明は、限定の意味において取られるものではなく、本発明の範囲は、付属の特許請求の範囲によってのみ定義される。
【0014】
詳細な説明は、多数のセクションに分割される。第1のセクションは、本発明を実施するコンピュータシステムの動作を記載する。この後に、量子化されたウェーブレット係数の固定並べ替え、および、それらの適応ランレングス符号化の高レベルの記載が続く。このような符号化されたデータのための復号器も記載される。次いで、高レベルの記載から選択されたブロックのさらなる詳細が、フローチャートの使用によって記載される。この後に、このような符号化器および復号器の、ソフトウェアアプリケーションのオフィス一式における使用の一般的な記載が続く。結論は、いくつかの潜在的な利点を記載し、さらなる代替実施形態を記載する。
【0015】
ハードウェアおよび動作環境
図1は、本発明を実施することができる適切なコンピューティング環境の、簡単で一般的な説明を提供する。本発明が以下で、一般に、パーソナルコンピュータ(PC)によって実行される命令を含む、コンピュータ実行可能プログラムモジュールに関連して記載される。プログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれ、これらが特定のタスクを実行し、あるいは特定の抽象データ型を実施する。本発明を他のコンピュータシステム構成により実施することができ、これらには、マルチメディア機能を有するハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサに基づくプログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどが含まれることは、当業者には理解されよう。本発明はまた、分散コンピューティング環境において実施することもでき、タスクがリモート処理デバイスによって実行され、これらが通信ネットワークを介してリンクされる。分散コンピューティング環境では、プログラムモジュールを、ローカルおよびリモートのメモリストレージ装置に位置付けることができる。
【0016】
図1は、汎用コンピューティングデバイスを従来のパーソナルコンピュータ20の形式において示し、これが、処理装置21、システムメモリ22、および、システムメモリおよび他のシステム構成要素を処理装置21に結合するシステムバス23を含む。システムバス23を、いくつかのタイプのいずれにすることもでき、これには、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスが含まれ、これは様々なバス構造のいずれを使用することもできる。システムメモリ22が読取り専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25を含む。基本入出力システム(BIOS)26は、ROM24に格納され、情報をパーソナルコンピュータ20の構成要素間で転送する基本ルーチンを含む。BIOS26は、システムのための起動ルーチンも含む。パーソナルコンピュータ20はさらに、ハードディスク(図示せず)から読み取りかつこれに書き込むためのハードディスクドライブ27、リムーバブル磁気ディスク29から読み取りかつこれに書き込むための磁気ディスクドライブ28、および、CD−ROMまたは他の光媒体など、リムーバブル光ディスク31から読み取りかつこれに書き込むための光ディスクドライブ30を含む。ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30が、システムバス23へ、それぞれハードディスクドライブインターフェース32、磁気ディスクドライブインターフェース33、および光ディスクドライブインターフェース34によって接続される。ドライブおよびそれらの関連付けられたコンピュータ読取り可能媒体が、パーソナルコンピュータ20用の、コンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの不揮発性ストレージを提供する。本明細書に記載された例示的環境は、ハードディスク、リムーバブル磁気ディスク29およびリムーバブル光ディスク31を使用するが、コンピュータによりアクセス可能なデータを格納することができる他のタイプのコンピュータ読取り可能媒体も例示的動作環境において使用できることは、当業者には理解されよう。このような媒体には、磁気カセット、フラッシュメモリカード、デジタル汎用ディスク、ベルヌーイカートリッジ、RAM、ROMなどが含まれる可能性がある。
【0017】
プログラムモジュールを、ハードディスク、磁気ディスク29、光ディスク31、ROM24およびRAM25において格納することができる。プログラムモジュールには、オペレーティングシステム35、1つまたは複数のアプリケーションプログラム36、他のプログラムモジュール37およびプログラムデータ38が含まれる可能性がある。ユーザが、コマンドおよび情報をパーソナルコンピュータ20へ、キーボード40およびポインティングデバイス42など、入力装置を介して入力することができる。他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが含まれる可能性がある。これらおよび他の入力装置が、しばしば処理装置21へ、システムバス23に結合されたシリアルポートインターフェース46を介して接続されるが、これらを、パラレルポート、ゲームポートまたはユニバーサルシリアルバス(USB)など、図1において図示されていない他のインターフェースを介して接続することもできる。モニタ47または他の表示装置も、システムバス23へ、ビデオアダプタ48などのインターフェースを介して接続する。モニタに加えて、パーソナルコンピュータは典型的には、スピーカおよびプリンタなど、他の周辺出力装置(図示せず)を含む。
【0018】
パーソナルコンピュータ20は、ネットワーク環境において、リモートコンピュータ49など、1つまたは複数のリモートコンピュータへの論理接続を使用して動作することができる。リモートコンピュータ49は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードにすることができる。これは典型的には、パーソナルコンピュータ20に関して上で記載された構成要素の多数またはすべてを含むが、ストレージ装置50のみが図1に例示されている。図1に示された論理接続は、ローカルエリアネットワーク(LAN)51およびワイドエリアネットワーク(WAN)52を含む。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。
【0019】
LANネットワーキング環境に配置されるとき、PC20がローカルネットワーク51へ、ネットワークインターフェースまたはアダプタ53を介して接続する。インターネットなど、WANネットワーキング環境において使用されるとき、PC20が典型的には、モデム54、または、ネットワーク52を介して通信を確立するための他の手段を含む。モデム54は、PC20の内部あるいは外部にすることができ、システムバス23へ、シリアルポートインターフェース46を介して接続する。ネットワーク環境では、20内に常駐するように示されるMicrosoft(登録商標)Wordを含むものなどのプログラムモジュール、またはその一部を、リモートストレージ装置50に格納することができる。もちろん、図示されたネットワーク接続は例示的であり、通信リンクをコンピュータ間で確立する他の手段で置換することができる。
【0020】
ソフトウェアは、オブジェクト指向プログラミング方法を含む、多数の異なる方法を使用して設計することができる。C++およびJava(登録商標)は、共通のオブジェクト指向コンピュータプログラミング言語の2つの例であり、これらはオブジェクト指向プログラミングに関連付けられた機能性を提供する。オブジェクト指向プログラミング方法は、データメンバ(変数)、および、このデータにおいて動作するメンバ関数(メソッド)を、クラスと呼ばれる単一のエンティティにカプセル化するための手段を提供する。オブジェクト指向プログラミング方法は、既存のクラスに基づいて新しいクラスを作成するための手段も提供する。
【0021】
オブジェクトは、クラスのインスタンスである。オブジェクトのデータメンバは、コンピュータメモリ内部に格納される属性であり、メソッドは、このデータ上で動作して潜在的に他のサービスを提供する実行可能コンピュータコードである。オブジェクトの概念が本発明において活用され、本発明のある態様が、一実施形態においてオブジェクトとして実施される。
【0022】
インターフェースは、関係する関数のグループであり、名前付きユニットに編成される。各インターフェースを、ある識別子によって一意に識別することができる。インターフェースはインスタンス化を有しておらず、つまり、インターフェースは定義でしかなく、インターフェースによって指定されるメソッドを実施するために必要とされた実行可能コードを有していない。オブジェクトは、インターフェースによって指定されたメソッドのための実行可能コードを提供することによって、インターフェースをサポートすることができる。オブジェクトによって供給された実行可能コードは、インターフェースによって指定された定義に従わなければならない。オブジェクトは、追加のメソッドを提供することもできる。インターフェースが、オブジェクト指向プログラミング環境における、あるいはそれによる使用に限定されないことは、当業者には理解されよう。
【0023】
高レベルの符号化器および復号器の説明
ウェーブレット変換に基づいたイメージピクセル符号化器の簡素化されたブロック図が、図2に示され、対応する復号器が図3に示される。符号化器および復号器が、イメージピクセルデータに関して各入力および出力として記載され、他のデータも望まれるように変換することができる。図示の実施形態では、イメージピクセルデータがウェーブレット変換ブロック210に提供され、これが周知の方法で動作して、ウェーブレット係数を量子化ブロック220へ提供する。ウェーブレット係数は、背景のセクションで記載されたような大きいブロックフォーマットである。量子化は、一様量子化器(uniform quantizer)によって実行され、これが、しきい値Tを定義する量子化ステップによって制御される。これは、各係数の表現が、ステップの中間における値によって、ステップの間に入る結果となる。Tが小さいほど、量子化において受ける損失が少ない。したがって、ブロック220の出力は一連の整数の数値であり、これらが、量子化されたウェーブレット係数である。多数の他の応用例におけるように、量子化器を、標準の丸めに基づくように、あるいは、ゼロに向かう丸めにおける(「不感帯(dead zone)」を有する量子化器としても知られる)ようにすることができる。
【0024】
並べ替えおよびブロッキング機能またはブロック230が、ウェーブレット係数を、同様の値のクラスタにグループ化する。これは、ゼロになる可能性が最も高い周波数係数のブロックの、クラスタ化または共にグループ化の結果となる。並べ替えは、データが単調に減衰する振幅の分布を有する傾向があるという意味において、類似データのグループ化の可能性を増大させる。最初のブロックが、より大振幅のデータを有する傾向があるが、後続のブロックでは、ウェーブレット係数の振幅が減衰する傾向がある。グループ化は、走査順序を固定することによって行われ、これはデータ独立である。このようなグループ化の1つの集合(set)が、図4において、64ブロックのウェーブレット係数を有する例について示される。図4では、低周波数の構成要素が、グループ化の左上隅に向かって配置され、各レベルの低高および高低サブバンドからの係数のブロックが交番させられる。並べ替えおよびブロッキングブロック230が、マクロブロックのシーケンスを、指示された走査順序で提供する。最初のブロック0は、ウェーブレットツリーのレベル0のすべての係数を含む。これは、最も粗い解像度に対応する。ブロック0〜3は、レベル1のすべての係数を含む。ブロック0〜15は、レベル2のすべての係数を含み、レベル3は、ブロック0〜63を含む。ブロックが、各レベルの低高および高低サブバンドから交互になり、低高がシーケンスの最上部であることに留意されたい。以下の数学的説明のセクションでは、この特定の順序付けの利点を論じる。他の順序付けは、当業者によって理解されるように可能であるが、上の順序付けが他のものよりよく動作すると思われる。次いで、ビットが、最上位のビットで開始して、順次に符号化される。
【0025】
適応符号化ブロック240がマクロブロックを受信し、これらを無損失な方法(lossless manner)で符号化する。ブロックのクラスタ化が、圧縮するデータを提供し、これが大きなゼロのクラスタを有する。ビットプレーンに基づいて符号化することによってさらにデータを並べ替えることが、大きなゼロのストリング(strings of zeros)を発見する可能性を増大させる。最初のビットプレーンについて最上位のビットで開始することが、ゼロの長いストリングのより高い可能性に通じる。さらに、これは、最も関連のあるデータが最初に符号化されることも保証する。第3または第4のビットプレーンが符号化されるときまで、確率は、1とは対照的にゼロについてほぼ等しく、直線的二進符号化を効果的に使用することができる。
【0026】
符号化器は、適応ランレングス修正を有するGolomb−Rice符号化器の適合である。簡素な項では、2k個のゼロのストリングが、ゼロに等しい単一のビットからなるコードワードによって表現される。ゼロコードワードによって表現されたゼロのストリングの長さは、パラメータkによって制御され、これはデータに遭遇したときに、観察されたゼロの頻度に基づいて変わる。ゼロ値が符号化されたとき、ゼロがより可能性が高いと仮定され、そのためパラメータkの値が増加される。ゼロでない値に遭遇したとき、kが減少される。このような増加および減少の量を適切に制御することによって、符号化器が、変化するゼロの確率を有するビットのストリングをよく追跡することができ、実際にこの確率を推定するオーバーヘッドの必要性がない。フィードバックループ245が使用されて、符号化器240のバックワード適応的な性質が表現される。この符号化は、効率的な圧縮、および、入力データの統計量における変化への高速な適合に備える。符号化器240がビットストリームを外部に提供し、これは、最も関連のある情報がビットストリームの最初で提供されることにおいて、効果的にプログレッシブである。最下位のビットが最後のビットプレーンで符号化されるので、より低解像度のビットストリームでは、解像度忠実性ブロック250で表現されたように、これらを効果的に廃棄するかあるいは符号化しないことができる。これは、データのより低い帯域幅伝送に有用である。
【0027】
図3においてブロック形式で図示されたような復号は、本質的に符号化およびデータ変換の逆である。図2の符号化器によって生成されたものなど、符号化されたデータのビットストリームが、ロスレス適応復号ブロック310で受信される。ビットストリームを直接、復号器から、ローカルのストレージから、あるいはリモートの復号器またはストレージから、衛星伝送、ケーブル伝送または他のネットワークによってなど、多数の実行可能伝送媒体の1つを介して受信することができる。復号ブロック310が、符号化中に開発された規則を、フィードフォワード線315を介して受信する。ブロック310が本質的に、使用されるストリング長を受信し、データを規則に従って復元する。再度、これはブロックレベルで動作するが、これは本発明の要件ではない。これは単に、より大量のメモリを必要とするか、あるいは、このようなメモリが使用可能でなかった場合はページングを必要とする、イメージまたは他のデータの表現全体を同時に処理することよりも、好都合にする。忠実性低減の1つの形式を、ブロック310で、ビットプレーンにおける最後のビットを復号しないことのみによって実行することができる。これは効果的に、パラメータTによって制御されたステップサイズを倍増する。これは、データの忠実性を低減するための簡素な方法である。
【0028】
ブロック310から出たデータは、ブロック230から来る整数データに等しくなるべきである。しかし、320のイメージのより高解像度の層を、このポイントで、ブロック320で示されたように除去することができ、これは、より高い周波数ウェーブレット係数を効果的に使用しないことのみによる。これは、イメージまたはイメージの集合を表示するために使用されたウィンドウが小型であった場合、有用となる。次いで、ブロック330が使用されて、ブロックが元の位置へ戻るようにアンシャッフルあるいは並べ替えされる。並べ替えブロック330の出力は、受信されたビットストリームにおけるヘッダによって提供されるステップサイズを使用することによって、ブロック340で戻すように再乗算される必要がある整数の数値である。これが、復元されたウェーブレット係数を提供する。ヘッダは、イメージサイズがどれほど大きいかについての情報、および、他の標準イメージフォーマットのデータも提供する。次いで、逆ウェーブレット変換が、周知の方法で350で実行される。選択された所望の忠実性または解像度低減以外の損失のみが、量子化ステップにおいて受けられ、これがTパラメータの修正によって制御可能であることに留意されたい。
【0029】
解像度低減オプションブロック320は、少数の異なる方法において動作することができる。データを除去するための1つの方法は、含まれた整数をゼロにすることによる。解像度を低減するためのさらなる方法は、アンシャッフルブロック330の動作を修正することであり、これに、値を所望のポイントでゼロにするように命令することができる。アンシャッフルブロック330および逆ウェーブレット変換ブロック350に、どこでゼロが開始するかを伝えることによって、このようなポイントでの実際のデータの不必要な処理をなくすように、これらを容易に修正することができる。
【0030】
本発明の適応符号化および復号は、変化する統計量と共に、クラスタ化されたゼロを有するデータにおいて、大変よく動作する。このタイプのデータを、ゼロのいずれの側においても確率の近い指数減衰を有するデータの高い確率を有するものとして特徴付けることもできる。静的イメージデータおよびビデオなど、マルチメディアデータがこの特性を有する。さらに、多数のタイプの物理データの変換も、このタイプの特性を有する。物理データを取り込むとき、情報は通常、少数の場所においてのみ起こり、これは、他のデータの大部分がゼロであることを意味する。データの対称性も、このタイプの符号化が最適に機能するために望まれる特性である。すなわち、負および正の値の指数的減少が、情報スパイクのいずれの側においても有益である。このような物理データの例には、ECGおよび他の生物測定(biometric)タイプのデータが含まれる。
【0031】
符号化の数学的説明
図2および図3を参照して上で論じられた変換および符号化および復号の数学的説明が、次に提供される。以下のステップが、符号化アルゴリズムを定義する。
【0032】
1.イメージアレイx(m,n)、m=0,1,...,M−1、n=0,1,...,N−1が与えられると、そのウェーブレット変換係数X(r,s)、r=0,1,...,M−1、s=0,1,...,N−1を計算する。
【0033】
2.各係数X(r,s)が、以下に従って量子化される。
【0034】
【数1】
【0035】
ただし、sgn(・)は通常のシグナム(signum)関数であり、Tは量子化しきい値である。このステップは、連続のウェーブレット係数X(r,s)を整数のシーケンスq(r,s)にマップする。これは、情報損失を導入する唯一のステップである。
【0036】
3.量子化された係数が並べ替えられ、以下に従ってブロックにグループ化される。
【0037】
【数2】
【0038】
l=0,1,...,L−1およびk=0,1,...,K−1では、L=MBNBがブロックサイズであれば、K=MN/Lがブロックの総数であり、MBおよびNBがMB=M/2JおよびNB=N/2Jによって定義される。パラメータJが、uk(l)にグループ化される量子化された係数の方形ブロックのサイズ、よってブロックサイズを制御する。
【0039】
各kでは、左上隅の指標(rk,sk)が、先に記載された走査順序に従って定義される。
【0040】
4.ブロックが、固定サイズLKBのマクロブロックUiに、Ui={uk(l)}の形式でグループ化され、k=iKB,iKB+1,...,iKB+KB−1である。各マクロブロックでは、そのビットプレーンが、適応ランレングス/Rice(RLR)符号化器に従って、連続して量子化される。UiのためのRLRコードによって使用されたビット数の二進符号化と、その後に続く実際のRLR出力ビットが、出力ビットストリームに追加される。
【0041】
次いで、以下のステップが使用されて、PWCビットストリームが復号される。
【0042】
1.マクロブロックUiにおけるRLR符号化ビットを、i=0,1,...,Imax−1について復号する。Imax<Kであった場合、ウェーブレット係数のより低解像度のバージョンが回復される。所望の復元精度が与えられると、各マクロブロック内で、最初の少数のビットプレーンのみが復号されることに留意されたい。復号しないように選択されるビットプレーンq(r,s)におけるすべてのビットが、ゼロに設定される。解像度のスケーラビリティが、Imax<Kを選択することによって達成されるが、忠実性のスケーラビリティは、各マクロブロックのためのビットプレーンの部分集合のみを復号することによって達成される。
【0043】
2.q(r,s)を回復した後、ウェーブレット係数が以下によって復元される。
【0044】
【数3】
【0045】
(3)における復元規則と結合された(2)における量子化規則が、原点の周囲に不感帯を有する一様量子化器を含み、これが、ラプラシアン(ダブルサイドエクスポーネンシャル)確率分布を有するランダム変数の最小エントロピースカラ量子化について最適であることに近いことに留意されたい。
【0046】
PWC符号化器のステップ3において記載されたように、ウェーブレット係数を並べ替えるため、左上隅の指標(rk,sk)のシーケンスが定義される。図4で示された走査順序が使用され、MB=M/2JおよびNB=N/2Jが各ブロックのサイズを制御する。パラメータJは、ブロックゼロが正確に、最も粗い解像度ですべてのウェーブレット係数、例えば、すべてのスケーリング関数の係数を含むように、選択されるべきである。したがって、Jは、ウェーブレット変換で使用された解像度レベルの数(ツリー深度)に等しくするべきである。これは、図4の、すべての左上隅の指標(rk,sk)のシーケンスから推断することが容易である。
【0047】
図4から、いかなる所望のレベルの解像度でも完全な係数の集合を復号するために、インデックス0からKmax−1までのすべてのブロックを使用することが望ましいことが明らかであり、Kmaxは4の累乗である。したがって、PWC復号器のステップ1では、Kmaxが4の累乗であるようにImax−1が選択される。
【0048】
同一解像度レベル内の低高(LH)および高低(HL)ウェーブレット係数の代替走査の理由は、簡素である。元のイメージが特定の特徴(または特徴なし)をある空間位置で有すると仮定すると、その位置に対応するLHおよびHLサブバンドのクラスタが、大きい(あるいは小さい)値を有する可能性が高い。したがって、同一空間位置に対応するLHおよびHLサブバンドからのこのペアのブロックが、マクロブロックにおいて連続して、あるいは、少なくとも近似して、あるいは、互いに接近して見えるようにすることによって、大小の値のクラスタを作成する可能性がより高い。これが、量子化された係数のビットプレーンにおける長いゼロのランの確率を増大させる。
【0049】
図7のフローチャートは、図4に示された順序において係数のブロックを書くために使用されたアルゴリズムを記載する。アルゴリズムは、コンピュータプログラム命令において、あるいは、ハードウェア、ファームウェア、または望まれるようなすべての組合せにおいて実施することができる。アルゴリズムが開始ブロック710で入力される。715で、M×Nの量子化されたウェーブレット係数を含む入力行列Qが読み取られる。係数は、量子化ブロック220によって提供されたものなどである。720で、ウェーブレットレベルの数が、周知の方法でJWとして定義される。ブロック725で、ブロックサイズがNH×NVとして定義され、NHはM/(2JW)に等しく、NVはN/(2JW)に等しい。次いで、730で、最初の出力ブロックが書き込まれ、IHおよびIVがそれぞれNHおよびNVとして初期化され、これは、サイズがより大きいさらなるブロックの書込みのためのループを定義することにおける使用のためである。簡素化された例では、図4において、行列Qが16×16であり、4レベルであり、ブロックサイズが1であると仮定する。これが、初期の1のIHおよびIVを提供する。さらなる例では、ブロックサイズがより大きく、8×8または16×16など、またはさらに高いものなどである。
【0050】
判断ブロック740が使用されて、係数の行列全体が書き込まれたかどうかが、IHがM未満であるかどうかを調べるために検査することによって決定される。IHがなおM未満であった場合、より多くの係数が書き込まれる必要がある。図4を見るとわかるように、最初の係数のブロックは1×1のサイズであり、次いで、これらが2×2および4×4などに増大する。次の集合のフローチャートのブロックが使用されて、続くブロックが書き込まれ、これは、1から、ブロック745でIH/NHとして設定されるブロックサイズパラメータNBLKへループすることによる。750でIを使用して、755でJを使用して定義された入れ子ループが使用されて、760で、出力ブロックLHおよびHLの書込みの順序が制御される。JがNEXT文762でインクリメントされ、IがNEXT文764でインクリメントされる。これは、このブロックの行が最初にこの特定の実施において書き込まれる結果となる。列も、望まれた場合は最初に書き込まれることが可能であり、あるいは、いかなる他の順序の書込みも使用することができる。初めてループを介して、16×16のサイズおよび4レベルの行列が与えられると、NBLKも1であり、そのためブロック430および440のみが書き込まれる。
【0051】
LHおよびHLブロックの書込みの後に続いて、770および775で、第2の入れ子ループの集合(set)が、再度IおよびJを使用してセットアップされて、780で出力ブロックを書き込むための位置が定義される。この出力ブロックは同一レベルのHHブロックに対応し、これは最初に通過するブロック450である。NEXT JおよびNEXT I文が入れ子ループを、それぞれ782および784で完了する。HHブロックが、上のLHおよびHLブロックと同時に書き込まれている可能性もあり、これは、入れ子ループが等しいためであることに留意されたい。このレベルのすべてのブロックが書き込まれた後、790で、IHおよびIVが2の指数としてインクリメントされ、次いで、740で比較されて、IHがなおM未満であるかどうかが調べられる。IHがM未満でなかった場合、795で、アルゴリズムが、本発明による完全な並べ替えられたウェーブレット係数の集合を提供した後、終了する。
【0052】
2回目に入れ子ループを介して、ブロック455、460および470が書き込まれ、その後に、3回目に入れ子ループを介してブロック480、475および490が続く。より高いレベルを有する、より大きい行列のサイズも企図される。
【0053】
復号のために元の順序を回復するため、単に、並べ替えアルゴリズムの出力を、それが書き込まれた方法と同一方法で読み取ることができる。必要とされるものは、元の行列のサイズ、および、書き込まれたレベルの数の知識だけである。次いで、書込み順序が単に逆にされて、係数が元の順序で提供される。直接マッピングも使用することができるが、著しい追加の帯域幅を設ける必要がある。
【0054】
ビットプレーン符号化の詳細
符号化ブロック240によって実行された処理は、表1の図の助けによってより容易に理解することができる。ビットプレーンは単に、入力の量子化されたウェーブレット係数または他のデータの二進表現(絶対値+符号)における、特定のインデックスのビットのシーケンスである。例えば、表1は、値のシーケンス{9,−6,1,0,−2,3,−4,−1,2}のためのビットプレーンを示す。この表では、ビットプレーン4がシーケンス{100000000}であり、ビットプレーン3がシーケンス{010000100}であり、ビットプレーン2がシーケンス{010011001}であり、ビットプレーン1がシーケンス{101001010}である。
【0055】
【表1】
【0056】
表1における入力データでは、より小さい絶対値の値が発生する可能性がより高いようであり、これは、量子化されたウェーブレットデータおよび有限アルファベットデータの典型でもある。上のパターンから、より高いビットプレーンが、より高いゼロの頻度を示す傾向があることがわかり、これは、より高い絶対値の入力値がより可能性が少ないためである。ビットプレーン1(最下位のビット)および符号ビットプレーン(sign bit plane)は典型的には、ほぼ等しい頻度のゼロおよび1を有する。
【0057】
図5のフローチャートは、ビットプレーンを介して入力データを効率的に符号化するためのアルゴリズムを記載し、505で開始する。510で、ビットプレーンが最初に、N個の数値を含む入力バッファxから読み取られる。515で、ビットプレーン数bmaxが計算され、520で、有効フラグベクトルsflgがすべてゼロに設定される。
【0058】
525で、ビットプレーンインデックス変数ビットがbmaxに等しく設定され、そのため符号化が最上位のビットプレーンで開始する。530で、インデックス「bit」によってポイントされたビットの値が、ビットプレーンベクトルbpを形成する。ブロック535および540で示されたように、各プレーンbpについて、ビットが2つの部分集合に分割される。x1は、「1」エントリがより高いプレーンにおいて見られていない位置に対応し、これらが有効ビットと呼ばれる。x2は、「1」が既により高いプレーンにおいて見られている位置に対応し、これらがリファインビット(refinement bits)と呼ばれる。
【0059】
ブロック545で、x1が、適応ランレングスGolomb−Rice(ARLGR)符号化器により符号化され、これは、x1におけるより高いゼロの頻度から利益を得る。x1において1に等しいあらゆるビットについて、符号ビットも符号化され、出力コードの最後に追加される。
【0060】
ブロック550で、x2が直線二進符号化により符号化される。これは、x2ビットを出力ストリームに追加することによって行われる。符号化効率における最小損失に遭遇し、これは、ゼロおよび1が、x2では通常、等しく可能性があるためである。
【0061】
符号ビットはビットプレーンとは呼ばれず、これは、これらがビットプレーンとして処理されないためであることに留意されたい。符号ビットは、各ビットプレーンのx1ベクトルを符号化する処理において送信される。したがって、ベクトルx1を、アルファベットから引き出されるもの{0,+1,−1}、すなわちビットおよび符号であると見なすこともできる。
【0062】
図5におけるフローチャートの重要な特性は、どれがx1に属するビットであるか、および、どれがx2に属するビットであるかについての情報が、明示的に符号化される必要がないことである。ベクトルsflgがビットの割振りをx1に制御し、sflgが最初にすべてゼロに初期化され、次いで、各ビットプレーンが符号化された後に555で更新される。したがって、復号器が容易にsflgへの変更を追跡することができる。次のビットプレーンに継続するため、560でbitがデクリメントされ、565で、最後のプレーンが復号されたかどうかを調べるために検査される。そうでなかった場合、制御が、次のビットプレーンの符号化のためにブロック530へ進む。bitがゼロに等しかったか、あるいは、より低解像度の符号化が望まれた場合はより高い数であった場合、570で、すべてのx1およびx2符号化の出力を含む出力バッファが書き込まれ、575で処理が終了する。
【0063】
適応ランレングス+Golomb−Rice(ARLGR)符号化器は、符号化利得が存在するところにある。これは、多数のゼロを有する長いベクトルx1を、より少ないゼロを有するより小さいコードにおいてマップする。ARLGR符号化器を、以下に示されたように、関連付けられた符号ビットを有するか、あるいは、有していない二進シーケンスを符号化することに使用することができる。ARGLR符号化器を理解するために、最初に、ランレングス符号化およびGolomb−Rice符号化の基礎を考察されたい。
【0064】
その一般的な形式では、ランレングス(RL)符号化の背景にある基本的な考えは、入力データベクトルにおける同一値の長いストリングを、繰り返される値およびその値が何回繰り返されるべきであるかを指定するコードによって、置き替えることである。このような反復ストリングが十分長く、十分多かった場合、RL符号化が、データベクトルを表現するために必要とされるビット数における著しい低減に通じる。
【0065】
RL符号化を、0または1のいずれかが現れる可能性が著しくより高い、二進データの符号化に適用することができる。一例は、グラフィックスファイルにおいて、例えば、白の背景においてデジタル化された黒の描画である。白い画素(ピクセル)が0に等しいビットによって表現され、黒の点が1に等しいビットによって表現された場合、ゼロの方が現れる可能性がはるかに高いことが明らかである。実際に、多数の標準のグラフィックスファイルフォーマットが、RL符号化を使用している。
【0066】
1966年、Golombが、正の数の表現のための簡素なコードを提案した。数が幾何学的確率分布を有するソースから引き出された場合、すなわち、Prob{x=n}=abnであり、aおよびbがパラメータであった場合、Golombコードが本当に最適(予想された最小の長さ)であることが、後に示された。数年後、Riceが無関係に、実際に実施することが大変容易であるGolombコードの部分集合を導出した。これらのコードが、Golomb−Riceコードとして知られるようになった。
【0067】
本発明では、二進数のソースのためのGolomb−Riceコードが、RLコードと結合される。結果として生じたランレングス=Golomb−Riceコードが、表2に示される。このコードは、パラメータkによって特徴付けられ、これがコードワード0に関連付けられたランの長さを制御し、この最大ランレングスは2kに等しい。
【0068】
【表2】
【0069】
以前に記載されたビットプレーン符号化器におけるx1ベクトルの符号化では、符号を、ゼロでない各ビットのコードワードに追加する必要がある。そのため、RLGRコードの簡素な拡張が、表3に示されたように使用される。
【0070】
【表3】
【0071】
入力ベクトルの所与のソースでは、{0,1}または{0,+1,−1}アルファベットのいずれかを使用して、パラメータkが、予想されたコード長を最小にするために選択されるべきである。ソースがメモリを有しておらず、経時的に一定の統計量を有し、P0=Prob{シンボル=0}によって特徴付けられた場合、kの最適値をP0の関数として計算することが容易である。
【0072】
しかし、実際には、二進(または二進+符号)ベクトルは定常ではない。典型的な例は、ピクチャまたは走査された文書の量子化されたウェーブレット係数など、物理的世界から得られたデータを含む。したがって、RLGRパラメータkを経時的に調整して、データのローカルな統計量に最適に合致させる必要がある。多数の戦略(strategies)が考察されており、たいていは入力データを適切な長さのブロックに分割することを含む。各ブロックについて、P0が推定され、次いで、kの最適値が計算される。次いで、追加のコードが各ブロックの始めで送信されてkの値が示され、これが復号器によって使用されるべきである。
【0073】
符号化器240は新しい手法を採る。バックワード適応戦略(backward adaptive strategy)が、RLGRパラメータkを変更するために使用される。バックワード適応によって、kにおける変化が、直接的に入力データではなく、符号化されたシンボルに基づいて計算されることを意味する。基本戦略は、次のシンボルを符号化することにおいて使用されるkの値が、先に符号化されたデータにのみ依存するべきであるということである。したがって、復号器が、変化するkの値を回復するために行う必要のあることは、符号化器と同一適合規則を適用することだけである。したがって、復号を簡素化するために、このような規則を、計算するために可能な限り簡素にすることが重要である。
【0074】
新しい適応ランレングス+Golomb−Rice(ARLGR)符号化器240は、パラメータkを変更するための以下の規則を使用する。ブロック604で、いくつかのパラメータが最初に定義される。スケールファクタLが最初に定義され、これが使用されて、kpがL*kとして定義される。kpは補助パラメータであり、その値が、それぞれ量UpまたはDnだけ上がるかあるいは下がり、kの小数の移動を、浮動小数点演算の使用なしに許可する。最後に、Uqが定義され、これが使用されて、出力コードがゼロであり、かつkがゼロに等しかった場合、kpが上に移動される。606で、入力バッファxが読み取られ、M個の数値を含む。608で、kがk0に設定され、kpがL*kに設定され、runが0に設定される。この処理は、入力データの長期の統計量のためによい選択であるkの値、例えば、k=2で開始される。610で、最初のシンボルxindex=1で開始して、シンボルがx(xindex)に設定され、runmaxが2kに設定される。
【0075】
符号化処理の概観として、ソースシンボルを符号化した後、kpが、送られた出力コードに基づいて調整される。出力コードが0であり、k≠0であった場合、kpが所定のインクリメントステップUpでインクリメントされ、すなわち、kp=kp+Upに設定される。出力コードが0であり、k=0であった場合、kpが所定のインクリメントステップUqでインクリメントされ、すなわち、kp=kp+Uqに設定される。出力コードが1で開始した場合(ゼロでない入力に対応する)、kpが所定のデクリメントステップDnでデクリメントされ、すなわち、kp=kp−Dnに設定される。次の入力シンボルを符号化するためのkの値が、k=[kp/L]に設定される(すなわち、kp/Lを最も近い整数に切り捨てる)。
【0076】
このアルゴリズムは簡素な戦略に基づいている。ゼロのランに遭遇した場合、kが増加されて、より長いシーケンスのゼロを、単一の出力ビット=0によって取り込むことができるようにする。ゼロでないシンボルに遭遇した場合、kが減少されて、過度に長い出力コードが回避される。上の補助パラメータkpおよびスケールファクタLの使用が、小数ステップにおけるkの調整を、上に示されたように浮動小数点演算を使用する必要なく、可能にする。
【0077】
ARLGR符号化器において試験されたデータの大部分では、性能が、以下のパラメータの典型的な選択、すなわち、L=4、Up=4、Dn=5およびUq=2について、きわめてよかった(符号化率がソースエントロピーに大変接近する)。いくつかの場合、これらのパラメータにおける調整が、さらにわずかに高性能に通じる可能性がある。
【0078】
図6におけるフローチャートの説明に戻ると、ブロック602、604、606、608、610および612を参照して、上に記載されたような、後に続くパラメータの初期化および定義が、614で最初に検査されて、それがゼロに等しいかどうかが調べられる。そうであった場合、かつ、symbolがゼロであった場合、618でUqがkpに加算される。620でゼロが出力バッファに追加され、622で、kpが範囲外、すなわちkpmaxを超えた場合、これがクリップされる。624で、kが、スケールファクタkp/L未満の最大整数に設定される。次いで、Xindexがインクリメントされ、628で決定されたときにM未満であった場合、612で次のsymbolが選択される。Mより大きかった場合、630で出力ビットバッファが書き込まれ、640で処理が終了する。
【0079】
判断ブロック616に戻って参照すると、symbolがゼロに等しくなかった場合、642で、1が出力ビットバッファに追加され、644で、データが符号ビットを有した場合、symbolの符号ビットが出力ビットバッファに追加され、処理が622に進んで、kpが範囲内であるかどうかを調べるために検査する。
【0080】
ブロック614で、kが1に等しくなかった場合、650で、symbolのさらなる検査が実行される。symbolがゼロに等しくなかった場合、652で、1が出力ビットバッファに追加され、654で、runのkビット値が出力ビットバッファに追加される。656で、Dnがkpから減算され、処理が644へ進み、任意選択の符号ビットが追加される。
【0081】
650で、symbolがゼロであると判明した場合、622でrunが検査されて、これがrunmaxに等しいかどうかが調べられる。そうでなかった場合、622で、kpがkpmaxを超えないようにクリップされる。662で、runがrunmaxに等しかった場合、664で、0が出力ビットバッファに追加され、666で、runがゼロに設定される。最後に、Upがkpに加算され、処理が再度、kpのクリップのためにブロック622へ戻り、624でkの設定、626でxindexをインクリメントし、628で、最後のシンボルが処理されたかどうかを調べるために検査する。そうであった場合、630で情報が出力ビットバッファに書き込まれ、640で処理が終了する。
【0082】
表4において、量子化されたウェーブレット係数におけるビットプレーン符号化器を使用した結果が示される。簡素なビットプレーン符号化器が、計算的により簡素であるにもかかわらず、適応算術符号化器(これらが最新式であると見なされている)よりもよく実行することに留意されたい。
【0083】
【表4】
【0084】
この符号化器の主な利点は、算術符号化器によって共有されていない、スケーラビリティである。記載されたビットプレーン符号化により、より低忠実性のバージョンの信号を、プレーン1より高いビットプレーンで復号処理を停止することによって、容易に得ることができる。これは、情報のプログレッシブ伝送および復元、および、インターネットなど、通信チャネルの重要な機能を可能にする。もう1つのスケーラビリティの応用例は、例えば、デジタルカメラにおけるものである。ユーザがより多数のピクチャを撮影することを望み、既に格納されたピクチャの品質を犠牲にすることをいとわなかった場合、既存のイメージのより低いビットプレーンを除去して、新しいピクチャのためにストレージを開放することができる。
【0085】
ARLGR符号化器を、ビットプレーン符号化器におけるその使用に関連して記載するが、これは、値0が値1よりもおそらくはるかに多い二進データのための汎用符号化器として、大変有用である可能性がある。これは特に、確率分布が絶えず変化している場合において真である。例えば、480×640ピクセルの解像度で走査された白黒の描画を符号化する問題を考察する。白=0および黒=1のマッピングを仮定すると、ARLGR符号化器を直接データへ適用することができる。しかし、符号化器240は、1のランをあまりよく処理せず、そのため、差分演算子が最初にピクセルのすべての行に渡って適用される。2番目の行で開始して下へ移動し、各ピクセル値が、上の行における同じピクセルと同一色を有した場合は0で、異なる色を有した場合は1で置き替えられる。これが、列に渡って繰り返される。結果として生じたビットが、ARLGR符号化器240により符号化される。
【0086】
これが、白または黒のランの、ゼロのランへのマッピングを提供し、情報のいかなる損失もない。これにより、データがARLGR符号化により適切となる。表5は、このような簡素な符号化器の性能の、他の手法との比較を示す。
【0087】
【表5】
【0088】
ARLGR符号化器240アルゴリズムは、標準のファックス符号化アルゴリズムより、性能がほぼ2倍すぐれている。これは、ファックスアルゴリズムによって使用されたバイトの55%のみを使用する。実際に、新しいARLGRに基づいた符号化器は、最新式の適応算術符号化器にすら、この特定のイメージでは小さい差で優った。加えて、これは最低の計算上の複雑性を有した。これは単なる一例であり、この結果が、使用されたイメージおよびパラメータの調整に応じて変わる可能性があることに留意されたい。
【0089】
図8において、一式のオフィスプログラムのブロック図が、810で概して図示される。1つの特定のオフィス(登録商標)一式は、812で示された複数の高レベルアプリケーションを含み、文書処理、Eメール、スプレッドシート、プレゼンテーションツール、写真操作プログラムおよびブラウザなどのアプリケーションを含む。これらのアプリケーションをサポートすることは、826および818の、少なくとも2レベル低いソフトウェア、ハードウェア、またはそれらの組合せの機能である。図示された機能は、ビデオイン/アウト機能826およびファックス/スキャナ機能818を含む。多数の他の機能もこのレベルで存在することができる。
【0090】
詳細には、ビデオ機能が、ビデオを表示し、ビデオおよびイメージデータを外部ソースから受信するための能力を提供する。ビデオおよびファックス/スキャナ機能が、本明細書に記載され、ブロック832に示された符号化器および復号器を利用して、先に記載されたような符号化および復号機能を提供する。生のイメージまたは他の適切なデータが、ピクセルまたは他の形式において取り込まれ、符号化器832が使用されてこれを符号化する。さらに、符号化されたデータが、本明細書に記載されたタイプの符号化を使用するいずれかのソースから得られた場合、832の復号器が、それを受信するアプリケーションによって呼び出されて、それを表示可能あるいは使用可能なフォーマットに変換あるいは復号する。
【0091】
Microsoft Office(登録商標)、または、より多数のアプリケーションも統合することができる後続の製品など、統合されたオフィス一式などを含むことができる多数のアプリケーションが、圧縮あるいは解凍(decompress)される必要のあるデータを処理する可能性がますます高いことに留意されたい。本発明は、他の形式の符号化の代替物を提供し、これはJPEGに存在するブロッキングアーチファクトを除去し、ソフトウェア、ハードウェア、または、望まれたような混成形式において、実施することがより複雑でない。832の符号化器/復号器も、このようなオフィス一式に統合することが容易である。
【0092】
結論
量子化されたウェーブレット係数の並べ替えが実行され、データ依存型データ構造を使用する必要なしに大小のウェーブレット係数が分離したグループにクラスタ化される。次いで、係数が適応的に、ランレングスコードに基づいて符号化され、これは、量子化された係数のストリングを表現するために使用されたコードワードを制御するパラメータを継続的に修正し、コードワードにおいて使用されたビット数を最小化することを求める。順序付けパターンが固定され、係数符号化が、各イメージについて修正されたテーブルを必要としないので、本発明は、より容易なハードウェアまたはソフトウェア実施に役立つ。さらなる利点には、ブロッキングアーチファクトの解消、および、イメージデータのためのいかなる所望の圧縮率のための単一パス符号化も含まれる。
【0093】
上の符号化およびブロッキングを逆の順序で適用する復号器が記載される。符号化された係数の復号が最初に実行され、その後に係数のアンシャッフルが続く。次いで、アンシャッフルされた係数が、逆ウェーブレット変換を受けて、イメージピクセルなど、変換され圧縮されたデータが回復される。適応算術符号化を、並べ替えに関連して使用して、類似の圧縮の利点を得ることもできるが、わずかに高い複雑さを伴う。
【0094】
ゼロツリーなど、データ依存型データ構造、または、ツリーにおける集合区画のための別々のリストの使用を必要としないことによって、ハードウェア実施がより構築しやすい。この応用例は、本発明のいかなる適合または変形形態をも包含することを意図されるものである。本発明が特許請求の範囲およびその均等物によってのみ限定されることが、明白に意図されるものである。
【図面の簡単な説明】
【図1】 本発明を実施することができるコンピュータシステムのブロック図である。
【図2】 ウェーブレット係数を並べ替え、次いで、ロスレス適応方法において符号化する符号化器のブロック図である。
【図3】 図2の符号化器によって生成された、符号化された係数を復号かつアンシャッフルする復号器のブロック図である。
【図4】 図2の符号化器によって生成された、並べ替えられたウェーブレット係数のブロック図である。
【図5】 係数をビットプレーンに分離する、図2の係数符号化器の高レベルの動作を示すフローチャートである。
【図6】 図2のランレングス適応符号化器の動作のさらなる詳細を示すフローチャートである。
【図7】 図4に示されたものに適合する、並べ替えられた方法における、係数の行列の書込みを示すフローチャートである。
【図8】 図2の符号化器および図3の復号器の、イメージデータを処理するソフトウェアアプリケーション一式における使用を示すブロック図である。
Claims (19)
- 有限アルファベットデータキャラクタを符号化する方法であって、
適応ランレングス符号化器に対するストリング長を初期化することと、
修正された符号化パラメータ(k)に基づいて前記ストリング長を修正することとを備え、前記修正された符号化パラメータは、
スケールファクタ(L)を現在の符号化パラメータに適用し、
既に符号化されたキャラクタに基づいて、前記スケールファクタが適用された前記符号化パラメータの値(kp)を調整し、
逆スケールファクタを、前記調整された符号化パラメータに適用することによって生成されることを特徴とする方法。 - 前記符号化パラメータは予想されたキャラクタに遭遇するたびに増加することを特徴とする請求項1に記載の方法。
- 前記予想されたキャラクタはゼロであることを特徴とする請求項2に記載の方法。
- 前記符号化パラメータは予想されたキャラクタに遭遇しないたびに減少することを特徴とする請求項1に記載の方法。
- 前記予想されたキャラクタはゼロであることを特徴とする請求項4に記載の方法。
- 前記キャラクタは、ビットプレーンに基づいて符号化されることを特徴とする請求項1に記載の方法。
- 前記符号化パラメータは2の累乗であることを特徴とする請求項1に記載の方法。
- 前記データはウェーブレット変換係数を含むことを特徴とする請求項1に記載の方法。
- 前記データは生物測定値を表すことを特徴とする請求項1に記載の方法。
- 前記データは、ファックスされるイメージの走査を表すことを特徴とする請求項1に記載の方法。
- 請求項1に記載の方法をコンピュータに実行させる命令が格納されていることを特徴とするコンピュータ読取り可能媒体。
- バックワード適応ランレングス符号化を使用して符号化された有限アルファベットデータキャラクタを復号する方法であって、
適応ランレングス復号器に対するストリング長を初期化することと、
修正された復号パラメータ(k)に基づいて前記ストリング長を修正することとを含み、前記修正された復号パラメータは、
スケールファクタ(L)を現在の復号パラメータに適用し、
前記スケールファクタが適用された復号パラメータの値(kp)の現在の値及び直前に受け取ったコードワードに基づいて、前記スケールファクタが適用された前記復号パラメータの値を調整し、
逆スケールファクタを前記調整された復号パラメータに適用することによって生成されることを特徴とする方法。 - 前記復号パラメータは、予想されたコードワードの値に遭遇するたびに増加されることを特徴とする請求項12に記載の方法。
- 前記予想されたコードワードの値はゼロであることを特徴とする請求項13に記載の方法。
- 前記復号パラメータは、予想されたコードワードの値に遭遇しないたびに減少されることを特徴とする請求項12に記載の方法。
- 前記予想されたコードワードの値はゼロであることを特徴とする請求項15に記載の方法。
- 前記キャラクタはビットプレーンに基づいて復号されることを特徴とする請求項12に記載の方法。
- 前記復号パラメータは2の累乗であることを特徴とする請求項12に記載の方法。
- 請求項12に記載の方法をコンピュータに実行させる命令が格納されていることを特徴とするコンピュータ読取り可能媒体。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/280,135 | 1999-03-26 | ||
US09/277,255 | 1999-03-26 | ||
US09/280,135 US6678419B1 (en) | 1999-03-26 | 1999-03-26 | Reordering wavelet coefficients for improved encoding |
US09/277,255 US6477280B1 (en) | 1999-03-26 | 1999-03-26 | Lossless adaptive encoding of finite alphabet data |
US09/276,954 | 1999-03-26 | ||
US09/276,954 US6850649B1 (en) | 1999-03-26 | 1999-03-26 | Image encoding using reordering and blocking of wavelet coefficients combined with adaptive encoding |
PCT/US2000/007955 WO2000059116A1 (en) | 1999-03-26 | 2000-03-24 | Lossless adaptive encoding of finite alphabet data |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002540711A JP2002540711A (ja) | 2002-11-26 |
JP4426118B2 true JP4426118B2 (ja) | 2010-03-03 |
Family
ID=27402856
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000608507A Expired - Fee Related JP4426118B2 (ja) | 1999-03-26 | 2000-03-24 | 有限アルファベットデータのロスレス適応符号化 |
JP2000608618A Expired - Fee Related JP4540855B2 (ja) | 1999-03-26 | 2000-03-24 | ウェーブレット係数の並べ替えを使用したイメージ符号化 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000608618A Expired - Fee Related JP4540855B2 (ja) | 1999-03-26 | 2000-03-24 | ウェーブレット係数の並べ替えを使用したイメージ符号化 |
Country Status (7)
Country | Link |
---|---|
EP (2) | EP1188244B1 (ja) |
JP (2) | JP4426118B2 (ja) |
KR (1) | KR100733949B1 (ja) |
AT (2) | ATE272925T1 (ja) |
AU (3) | AU3916900A (ja) |
DE (2) | DE60012717T2 (ja) |
WO (3) | WO2000059232A1 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU770148B2 (en) * | 2000-12-06 | 2004-02-12 | Canon Kabushiki Kaisha | Digital image compression and decompression |
AUPR192800A0 (en) | 2000-12-06 | 2001-01-04 | Canon Kabushiki Kaisha | Digital image compression and decompression |
US6798364B2 (en) | 2002-02-05 | 2004-09-28 | Intel Corporation | Method and apparatus for variable length coding |
US20060072834A1 (en) * | 2003-04-17 | 2006-04-06 | Lynch William C | Permutation procrastination |
ES2297083T3 (es) | 2002-09-04 | 2008-05-01 | Microsoft Corporation | Codificacion entropica por adaptacion de la codificacion entre modos por longitud de ejecucion y por nivel. |
US7274995B2 (en) * | 2003-11-19 | 2007-09-25 | Honeywell International Inc. | Apparatus and method for identifying possible defect indicators for a valve |
US7286945B2 (en) * | 2003-11-19 | 2007-10-23 | Honeywell International Inc. | Apparatus and method for identifying possible defect indicators for a valve |
US7689051B2 (en) * | 2004-04-15 | 2010-03-30 | Microsoft Corporation | Predictive lossless coding of images and video |
KR101155525B1 (ko) * | 2005-06-20 | 2012-06-19 | 삼성전자주식회사 | 기록/재생 장치 및 방법 |
US8208554B2 (en) | 2006-12-07 | 2012-06-26 | Qualcomm Incorporated | Line-based video compression |
US8179974B2 (en) | 2008-05-02 | 2012-05-15 | Microsoft Corporation | Multi-level representation of reordered transform coefficients |
FR2934103B1 (fr) * | 2008-07-16 | 2010-08-27 | Sagem Securite | Procede et systeme de transmission securisee d'une image entre deux points distants |
EP3350993A1 (en) * | 2015-09-18 | 2018-07-25 | Koninklijke Philips N.V. | Method and apparatus for fast and efficient image compression and decompression |
Family Cites Families (9)
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 |
US5381145A (en) * | 1993-02-10 | 1995-01-10 | Ricoh Corporation | Method and apparatus for parallel decoding and encoding of data |
US5717394A (en) * | 1993-02-10 | 1998-02-10 | Ricoh Company Ltd. | Method and apparatus for encoding and decoding data |
JP3943634B2 (ja) * | 1995-11-02 | 2007-07-11 | キヤノン株式会社 | 情報処理装置及び方法 |
US5818877A (en) * | 1996-03-14 | 1998-10-06 | The Regents Of The University Of California | Method for reducing storage requirements for grouped data values |
IL119523A0 (en) * | 1996-10-30 | 1997-01-10 | Algotec Systems Ltd | Data distribution system |
JP3213582B2 (ja) * | 1997-05-29 | 2001-10-02 | シャープ株式会社 | 画像符号化装置及び画像復号装置 |
JP2002501532A (ja) * | 1997-05-30 | 2002-01-15 | メルク エンド カンパニー インコーポレーテッド | 新規血管形成阻害薬 |
EP0940994B1 (en) * | 1998-03-06 | 2014-04-16 | Canon Kabushiki Kaisha | Image processing apparatus and method and storage medium storing steps realizing such method |
-
2000
- 2000-03-24 EP EP00918402A patent/EP1188244B1/en not_active Expired - Lifetime
- 2000-03-24 DE DE2000612717 patent/DE60012717T2/de not_active Expired - Lifetime
- 2000-03-24 DE DE60015755T patent/DE60015755T2/de not_active Expired - Lifetime
- 2000-03-24 AU AU39169/00A patent/AU3916900A/en not_active Abandoned
- 2000-03-24 AU AU39222/00A patent/AU3922200A/en not_active Abandoned
- 2000-03-24 AT AT00916649T patent/ATE272925T1/de not_active IP Right Cessation
- 2000-03-24 WO PCT/US2000/007832 patent/WO2000059232A1/en active IP Right Grant
- 2000-03-24 JP JP2000608507A patent/JP4426118B2/ja not_active Expired - Fee Related
- 2000-03-24 KR KR1020017012203A patent/KR100733949B1/ko active IP Right Grant
- 2000-03-24 EP EP00916649A patent/EP1166565B1/en not_active Expired - Lifetime
- 2000-03-24 JP JP2000608618A patent/JP4540855B2/ja not_active Expired - Fee Related
- 2000-03-24 WO PCT/US2000/007955 patent/WO2000059116A1/en active Search and Examination
- 2000-03-24 AU AU37723/00A patent/AU3772300A/en not_active Abandoned
- 2000-03-24 WO PCT/US2000/007831 patent/WO2000059231A1/en active Application Filing
- 2000-03-24 AT AT00918402T patent/ATE282260T1/de not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
DE60015755D1 (de) | 2004-12-16 |
WO2000059232A1 (en) | 2000-10-05 |
AU3772300A (en) | 2000-10-16 |
JP4540855B2 (ja) | 2010-09-08 |
AU3922200A (en) | 2000-10-16 |
ATE282260T1 (de) | 2004-11-15 |
WO2000059231A1 (en) | 2000-10-05 |
KR20020008133A (ko) | 2002-01-29 |
KR100733949B1 (ko) | 2007-07-02 |
DE60015755T2 (de) | 2005-04-07 |
DE60012717D1 (de) | 2004-09-09 |
JP2002540740A (ja) | 2002-11-26 |
EP1188244A1 (en) | 2002-03-20 |
WO2000059116A1 (en) | 2000-10-05 |
EP1166565B1 (en) | 2004-08-04 |
JP2002540711A (ja) | 2002-11-26 |
EP1188244B1 (en) | 2004-11-10 |
DE60012717T2 (de) | 2005-01-13 |
ATE272925T1 (de) | 2004-08-15 |
AU3916900A (en) | 2000-10-16 |
EP1166565A1 (en) | 2002-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6850649B1 (en) | Image encoding using reordering and blocking of wavelet coefficients combined with adaptive encoding | |
US6477280B1 (en) | Lossless adaptive encoding of finite alphabet data | |
US7110609B2 (en) | System and method for progressively transform coding digital data | |
US6678419B1 (en) | Reordering wavelet coefficients for improved encoding | |
US7031537B2 (en) | Method and apparatus for specifying quantization based upon the human visual system | |
JP4208900B2 (ja) | 復号方法及び復号装置 | |
AU719715B2 (en) | Data compression using adaptive bit allocation and hybrid lossless entropy encoding | |
US6847735B2 (en) | Image processing system, image processing apparatus, image input apparatus, image output apparatus and method, and storage medium | |
JP2001136526A (ja) | 画像処理方法及びその装置及び記憶媒体 | |
JP4426118B2 (ja) | 有限アルファベットデータのロスレス適応符号化 | |
US7551788B2 (en) | Digital image coding device and method for noise removal using wavelet transforms | |
Kanvel et al. | Performance measure of different wavelets for a shuffled image compression scheme | |
Bindulal et al. | Adaptive Scalable Wavelet Difference Reduction Method for Efficient Medical Image Transmission |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070202 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090519 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090819 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20091208 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091210 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4426118 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121218 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131218 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |