JPH11163733A - 符号化方法および装置 - Google Patents
符号化方法および装置Info
- Publication number
- JPH11163733A JPH11163733A JP10274697A JP27469798A JPH11163733A JP H11163733 A JPH11163733 A JP H11163733A JP 10274697 A JP10274697 A JP 10274697A JP 27469798 A JP27469798 A JP 27469798A JP H11163733 A JPH11163733 A JP H11163733A
- Authority
- JP
- Japan
- Prior art keywords
- coefficient
- coefficients
- bit
- encoding
- tree
- 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
Links
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
- 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
- H04N19/647—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 using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
-
- 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)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
(57)【要約】
一連の所定サイズの係数を、係数のコンパクト表現へ符
号化する装置を開示する。この装置は係数値を示す端ノ
ード、端ノード、および現在の内部ノードの子ノードを
表現するのに必要なビット数を示す内部ノードを表現す
るツリー表現を構築するためのツリー構築手段で構成さ
れる。ツリー構築手段はツリーバッファにツリー型の表
現を記憶する。ツリーバッファ手段はツリー型の表現を
記憶する。ツリー符号化手段はツリーバッファ手段と相
互接続されて現在のツリー型の表現からその符号化を出
力する。ツリーバッファ手段は、ツリー構築手段によっ
てあらかじめ生成された少なくとも2つのツリー型の表
現を記憶するための手段を備えることができ、ツリー符
号化手段があらかじめツリー構築手段によって生成され
た第2のツリー型の表現を読み出している間に、ツリー
構築手段は第1の表現を構築することができる。
号化する装置を開示する。この装置は係数値を示す端ノ
ード、端ノード、および現在の内部ノードの子ノードを
表現するのに必要なビット数を示す内部ノードを表現す
るツリー表現を構築するためのツリー構築手段で構成さ
れる。ツリー構築手段はツリーバッファにツリー型の表
現を記憶する。ツリーバッファ手段はツリー型の表現を
記憶する。ツリー符号化手段はツリーバッファ手段と相
互接続されて現在のツリー型の表現からその符号化を出
力する。ツリーバッファ手段は、ツリー構築手段によっ
てあらかじめ生成された少なくとも2つのツリー型の表
現を記憶するための手段を備えることができ、ツリー符
号化手段があらかじめツリー構築手段によって生成され
た第2のツリー型の表現を読み出している間に、ツリー
構築手段は第1の表現を構築することができる。
Description
【0001】
【発明の属する技術分野】本発明はデータ圧縮の分野に
関連したものであり、特に、圧縮処理の結果として生成
される係数の符号化の構成を開示するものである。
関連したものであり、特に、圧縮処理の結果として生成
される係数の符号化の構成を開示するものである。
【従来の技術】ディジタルデータ圧縮、特にディジタル
画像圧縮の分野はここしばらく大きな興味を引いてい
る。
画像圧縮の分野はここしばらく大きな興味を引いてい
る。
【0002】ディジタル画像圧縮の分野では、多くの異
なる技術が利用されてきた。特に有名な技術はJPEG
標準であり、これは標準サイズのイメージのブロックを
対応するコサイン成分に変換するために離散コサイン変
換を用いている。JPEG標準においては、高周波のコ
サイン成分が、圧縮率の取得のために過度に量子化され
る。過度の量子化は画像圧縮における”非可逆な”技術
の一例である。尚、JPEG標準では可逆圧縮の方式も
存在する。近年、データ圧縮の別の形式としてウェーブ
レット変換の分野が大いに注目されている。ウェーブレ
ット変換は急峻なエッジのような不連続点を持つデータ
の表現に非常に適していることがわかっている。そのよ
うな不連続点は画像データのようなものにしばしば現れ
る。
なる技術が利用されてきた。特に有名な技術はJPEG
標準であり、これは標準サイズのイメージのブロックを
対応するコサイン成分に変換するために離散コサイン変
換を用いている。JPEG標準においては、高周波のコ
サイン成分が、圧縮率の取得のために過度に量子化され
る。過度の量子化は画像圧縮における”非可逆な”技術
の一例である。尚、JPEG標準では可逆圧縮の方式も
存在する。近年、データ圧縮の別の形式としてウェーブ
レット変換の分野が大いに注目されている。ウェーブレ
ット変換は急峻なエッジのような不連続点を持つデータ
の表現に非常に適していることがわかっている。そのよ
うな不連続点は画像データのようなものにしばしば現れ
る。
【0003】本発明の好適な実施の形態では、画像デー
タの圧縮を対象として説明されるが、画像データの圧縮
に限るものではない。信号へのウェーブレット解析の多
くの応用事例の参考文献として、IEEE Spectrum誌の199
6年10月号の26ページから35ページに、Bruceらによる"W
avelet Analysis"と題される解説記事がある。コンピュ
ータグラフィクスにおけるウェーブレット変換の各種応
用の議論については、1996年にMorgan Kaufmann Publis
hers, Inc.から出版されているI. Stollinitzらによる"
Wavelets for Computer Graphics"がある。
タの圧縮を対象として説明されるが、画像データの圧縮
に限るものではない。信号へのウェーブレット解析の多
くの応用事例の参考文献として、IEEE Spectrum誌の199
6年10月号の26ページから35ページに、Bruceらによる"W
avelet Analysis"と題される解説記事がある。コンピュ
ータグラフィクスにおけるウェーブレット変換の各種応
用の議論については、1996年にMorgan Kaufmann Publis
hers, Inc.から出版されているI. Stollinitzらによる"
Wavelets for Computer Graphics"がある。
【0004】一連のウェーブレット係数の効率的かつ効
果的な符号化を行い、符号化スピードを十分向上させる
ためには、方法及び符号化器のハードウェア化を行うこ
とが望まれる。
果的な符号化を行い、符号化スピードを十分向上させる
ためには、方法及び符号化器のハードウェア化を行うこ
とが望まれる。
【発明が解決しようとする課題】本発明の目的は1つあ
るいはそれ以上の従来技術の不利益を改良することにあ
る。
るいはそれ以上の従来技術の不利益を改良することにあ
る。
【0005】本発明の態様に従えば、所定サイズの係数
列をその係数のコンパクト表現に符号化する装置は、係
数値を表す端ノード、および現在の内部ノードの端ノー
ドと子ノードとを符号化するために必要なビット数を表
す内部ノードを持つ係数のツリー表現を構築するツリー
構築手段と、前記係数の前記コンパクト表現を含むデー
タストリームを生成するために前記構築されたツリー表
現を符号化するツリー符号化手段とを備える。
列をその係数のコンパクト表現に符号化する装置は、係
数値を表す端ノード、および現在の内部ノードの端ノー
ドと子ノードとを符号化するために必要なビット数を表
す内部ノードを持つ係数のツリー表現を構築するツリー
構築手段と、前記係数の前記コンパクト表現を含むデー
タストリームを生成するために前記構築されたツリー表
現を符号化するツリー符号化手段とを備える。
【0006】本発明の他の態様は、所定サイズの係数列
をその係数のコンパクト表現に符号化する方法であっ
て、この方法では、係数値を表す端ノード、および現在
の内部ノードの端ノードと子ノードとを符号化するため
に必要なビット数を表す内部ノードを持つ係数のツリー
表現を構築し、前記係数の前記コンパクト表現を含むデ
ータストリームを生成するために前記構築されたツリー
表現を符号化する。
をその係数のコンパクト表現に符号化する方法であっ
て、この方法では、係数値を表す端ノード、および現在
の内部ノードの端ノードと子ノードとを符号化するため
に必要なビット数を表す内部ノードを持つ係数のツリー
表現を構築し、前記係数の前記コンパクト表現を含むデ
ータストリームを生成するために前記構築されたツリー
表現を符号化する。
【0007】本発明の更に他の態様によれば、係数列か
ら符号化されたビットストリームを生成する方法であっ
て、この方法は前記係数列を入力し、前記係数データを
所定数のビットプレーンへグループ化し、それぞれのグ
ループ内の前記係数を上位ゼロ部分と上位ゼロビットで
はない部分へグループ化し、ビットプレーンのグループ
内の前記係数列を出力し、各グループ内の前記係数の前
記グループ化を示すデータ有効ビットを出力し、前記符
号化済ビットストリームを生成するために前記データ有
効ビットを用いて係数列をパックする。
ら符号化されたビットストリームを生成する方法であっ
て、この方法は前記係数列を入力し、前記係数データを
所定数のビットプレーンへグループ化し、それぞれのグ
ループ内の前記係数を上位ゼロ部分と上位ゼロビットで
はない部分へグループ化し、ビットプレーンのグループ
内の前記係数列を出力し、各グループ内の前記係数の前
記グループ化を示すデータ有効ビットを出力し、前記符
号化済ビットストリームを生成するために前記データ有
効ビットを用いて係数列をパックする。
【0008】本発明の他の態様によれば、係数列から符
号化されたビットストリームを生成するためのコンピュ
ータプログラムが記録されたコンピュータで読みとり可
能なメディアを含むコンピュータプログラム製品であっ
て、前記係数列を入力する入力手段と、前記係数データ
を所定数のビットプレーンへグループ化する第1グルー
プ手段と、それぞれのグループ内の前記係数を上位ゼロ
部分と上位ゼロビットではない部分へグループ化する第
2グループ手段と、ビットプレーンのグループ内の前記
係数列を出力する出力手段と、各グループ内の前記係数
の前記グループ化を示すデータ有効ビットを出力する出
力手段と、前記符号化済ビットストリームを生成するた
めに前記データ有効ビットを用いて係数列をパックする
パッキング手段とを含む。
号化されたビットストリームを生成するためのコンピュ
ータプログラムが記録されたコンピュータで読みとり可
能なメディアを含むコンピュータプログラム製品であっ
て、前記係数列を入力する入力手段と、前記係数データ
を所定数のビットプレーンへグループ化する第1グルー
プ手段と、それぞれのグループ内の前記係数を上位ゼロ
部分と上位ゼロビットではない部分へグループ化する第
2グループ手段と、ビットプレーンのグループ内の前記
係数列を出力する出力手段と、各グループ内の前記係数
の前記グループ化を示すデータ有効ビットを出力する出
力手段と、前記符号化済ビットストリームを生成するた
めに前記データ有効ビットを用いて係数列をパックする
パッキング手段とを含む。
【0009】さらに他の本発明の態様によれば、各係数
が所定のビット数で表現される係数ストリームを含む係
数列から符号化されたビットストリームを生成するため
の方法であって、前記係数であるビットプレーンを一度
に入力し、前記ビットプレーンからそれぞれの前記係数
の最上位ビット決定し、最上位ビットよりも小さな前記
係数の部分を記憶し、前記最上位ビットの決定および前
記係数の前記部分を利用して、インターリーブされた係
数の大きさの部分と係数部分とのストリームを含む、復
号可能なインターリーブされたコンパクトな形式の前記
係数ストリームを符号化する符号化する。
が所定のビット数で表現される係数ストリームを含む係
数列から符号化されたビットストリームを生成するため
の方法であって、前記係数であるビットプレーンを一度
に入力し、前記ビットプレーンからそれぞれの前記係数
の最上位ビット決定し、最上位ビットよりも小さな前記
係数の部分を記憶し、前記最上位ビットの決定および前
記係数の前記部分を利用して、インターリーブされた係
数の大きさの部分と係数部分とのストリームを含む、復
号可能なインターリーブされたコンパクトな形式の前記
係数ストリームを符号化する符号化する。
【0010】更に本発明の態様によれば、係数列を符号
化するための符号化装置であって、前記係数列であるビ
ットプレーンを一度に入力する入力手段と、前記入力手
段に相互接続され、前記係数それぞれの最上位ビットを
決定して記憶するビットプレーンの大きさ決定する手段
と、入力手段に相互接続され、前記係数のより下位の係
数を記憶するための係数記憶手段と、前記係数記憶手段
及び前記ビットプレーンの大きさ決定手段に相互接続さ
れて、値を読み込んでインターリーブされた係数の大き
さを示す部分及び係数部分のストリームを含む復号可能
なインターリーブされたコンパクトな形式の前記係数ス
トリームを生成するピクセルパッキング手段とを備え
る。
化するための符号化装置であって、前記係数列であるビ
ットプレーンを一度に入力する入力手段と、前記入力手
段に相互接続され、前記係数それぞれの最上位ビットを
決定して記憶するビットプレーンの大きさ決定する手段
と、入力手段に相互接続され、前記係数のより下位の係
数を記憶するための係数記憶手段と、前記係数記憶手段
及び前記ビットプレーンの大きさ決定手段に相互接続さ
れて、値を読み込んでインターリーブされた係数の大き
さを示す部分及び係数部分のストリームを含む復号可能
なインターリーブされたコンパクトな形式の前記係数ス
トリームを生成するピクセルパッキング手段とを備え
る。
【0011】さらに本発明の他の態様によれば、各係数
が所定のビット数で表されている係数ストリームを含む
係数群を符号化するための、コンピュータで読みとり可
能なメディアに記録されたプログラムを含む、コンピュ
ータプログラム製品であって、前記係数であるビットプ
レーンを一度に入力する入力手段と、前記ビットプレー
ンからそれぞれの前記係数の最上位ビット決定する決定
手段と、最上位ビットよりも小さな前記係数の部分を記
憶する記憶手段と、前記最上位ビットの決定および前記
係数の前記部分を利用して、インターリーブされた係数
の大きさの部分と係数部分とのストリームを含む、復号
可能なインターリーブされたコンパクトな形式の前記係
数ストリームを符号化する符号化手段とを含む。
が所定のビット数で表されている係数ストリームを含む
係数群を符号化するための、コンピュータで読みとり可
能なメディアに記録されたプログラムを含む、コンピュ
ータプログラム製品であって、前記係数であるビットプ
レーンを一度に入力する入力手段と、前記ビットプレー
ンからそれぞれの前記係数の最上位ビット決定する決定
手段と、最上位ビットよりも小さな前記係数の部分を記
憶する記憶手段と、前記最上位ビットの決定および前記
係数の前記部分を利用して、インターリーブされた係数
の大きさの部分と係数部分とのストリームを含む、復号
可能なインターリーブされたコンパクトな形式の前記係
数ストリームを符号化する符号化手段とを含む。
【発明の詳細な説明】単なる好適な実施の形態として幾
つかの実施の形態を図面を参照しながら説明する。おな
じの参照番号を持つステップおよび構成があり、特段の
意図がない限り、これらのステップおよび構成は同様な
構成と目的を有するものとする。好適な実施の形態を説
明する前に、"Canon Information System Research Aus
tralian Pty. Ltd.により1997年1月22日に提出された"A
method for Digital Image Compression"と題されたAu
stralian Provisional Patent Application No.PO4728
の画像の圧縮および伸長方法について解説する。この画
像の圧縮および伸長方法は以下、"1.0 SWEET画像圧縮
方法"の概観"、"1.1 第1のSWEET画像圧縮方法の符号
化処理"、"1.2 第1のSWEET画像圧縮方法の復号化処
理"、"1.3 2次元の例"、"1.4 第2のSWEET画像圧縮
方法の符号化処理"と題して説明する。
つかの実施の形態を図面を参照しながら説明する。おな
じの参照番号を持つステップおよび構成があり、特段の
意図がない限り、これらのステップおよび構成は同様な
構成と目的を有するものとする。好適な実施の形態を説
明する前に、"Canon Information System Research Aus
tralian Pty. Ltd.により1997年1月22日に提出された"A
method for Digital Image Compression"と題されたAu
stralian Provisional Patent Application No.PO4728
の画像の圧縮および伸長方法について解説する。この画
像の圧縮および伸長方法は以下、"1.0 SWEET画像圧縮
方法"の概観"、"1.1 第1のSWEET画像圧縮方法の符号
化処理"、"1.2 第1のSWEET画像圧縮方法の復号化処
理"、"1.3 2次元の例"、"1.4 第2のSWEET画像圧縮
方法の符号化処理"と題して説明する。
【0012】1.0 SWEET画像圧縮方法の概説図1に符号
化方法の概観である高レベルのブロック図を示す。入力
画像102は、対応する変換係数112を生成するために、望
ましくは線形変換を行う変換ブロック110に供給され
る。ここでは離散ウェーブレット変換(DWT)が用いら
れる。
化方法の概観である高レベルのブロック図を示す。入力
画像102は、対応する変換係数112を生成するために、望
ましくは線形変換を行う変換ブロック110に供給され
る。ここでは離散ウェーブレット変換(DWT)が用いら
れる。
【0013】画像の2次元DWTは、低周波で近似した画像
及び3つの詳細な高周波のコンポーネントを用いて画像
を表現する変換である。通常、これらのコンポーネント
はサブバンドと呼ばれる。DWTによって形成される4つの
サブイメージのそれぞれは元画像の1/4のサイズであ
る。低周波の画像は元画像に関してもっとも多くの情報
を含んでいる。画像圧縮に用いられる離散ウェーブレッ
ト変換のサブバンド画像は、エネルギーの圧縮という特
徴をもつ。
及び3つの詳細な高周波のコンポーネントを用いて画像
を表現する変換である。通常、これらのコンポーネント
はサブバンドと呼ばれる。DWTによって形成される4つの
サブイメージのそれぞれは元画像の1/4のサイズであ
る。低周波の画像は元画像に関してもっとも多くの情報
を含んでいる。画像圧縮に用いられる離散ウェーブレッ
ト変換のサブバンド画像は、エネルギーの圧縮という特
徴をもつ。
【0014】単一レベルDWTは任意の回数で、低周波画
像あるいはサブバンドに対して逐次的に適用することが
できる。たとえば、画像の3レベルDWTは、画像にDWTを
適用し、その結果として得られる低周波サブバンドにさ
らにDWTを施すことによって得られる。その結果9つの
細かいサブバンドと1つの非常に低周波のサブバンドが
得られる。3レベルのDWTを行った場合、低周波サブバ
ンドは元画像の1/64(1/4×1/4×1/4)の大きさになっ
ているが、元画像に関して重要な情報を持っており、従
って64の圧縮率が得られる。
像あるいはサブバンドに対して逐次的に適用することが
できる。たとえば、画像の3レベルDWTは、画像にDWTを
適用し、その結果として得られる低周波サブバンドにさ
らにDWTを施すことによって得られる。その結果9つの
細かいサブバンドと1つの非常に低周波のサブバンドが
得られる。3レベルのDWTを行った場合、低周波サブバ
ンドは元画像の1/64(1/4×1/4×1/4)の大きさになっ
ているが、元画像に関して重要な情報を持っており、従
って64の圧縮率が得られる。
【0015】これに対し、たとえば離散コサイン変換
(DCT)のような画像データを非相関化する線型変換を
用いることも可能である。図1において変換係数112、
すなわち変換係数値を示すビット列は、符号化表現122
を効率的に出力するようなビット再編ブロック120に
よって符号化される復号化処理は、単に符号化処理の逆
である。符号化された係数は変換係数112に復号され
る。(変換領域の)画像はその後、元画像の形式、ある
いは元画像の何らかの近似形に逆変換される。本実施の
形態の説明を行う前に、以下で使用する用語の解説をし
ておく。まず整数の2進表現については、「ビットn」
あるいは「ビット番号n」は最下位ビットの左に位置す
るn個目の2進数を示すものとする。たとえば、8ビット
の2進表現では10進数の9は00001001であらわされる。
このとき、ビット3は1であり、ビット2、ビット1、
ビット0はそれぞれ、0,0,1である。さらに、変換
は、行成分、列成分の係数値がビット列で表現された行
列で表現されることもある。尚、概念的にこの行列は、
行方向、列方向、そしてビット列方向の3次元としてと
らえることもできる。また、同じビット番号を持つビッ
ト列から構成される3次元空間中の平面をビットプレー
ンと呼ぶ。
(DCT)のような画像データを非相関化する線型変換を
用いることも可能である。図1において変換係数112、
すなわち変換係数値を示すビット列は、符号化表現122
を効率的に出力するようなビット再編ブロック120に
よって符号化される復号化処理は、単に符号化処理の逆
である。符号化された係数は変換係数112に復号され
る。(変換領域の)画像はその後、元画像の形式、ある
いは元画像の何らかの近似形に逆変換される。本実施の
形態の説明を行う前に、以下で使用する用語の解説をし
ておく。まず整数の2進表現については、「ビットn」
あるいは「ビット番号n」は最下位ビットの左に位置す
るn個目の2進数を示すものとする。たとえば、8ビット
の2進表現では10進数の9は00001001であらわされる。
このとき、ビット3は1であり、ビット2、ビット1、
ビット0はそれぞれ、0,0,1である。さらに、変換
は、行成分、列成分の係数値がビット列で表現された行
列で表現されることもある。尚、概念的にこの行列は、
行方向、列方向、そしてビット列方向の3次元としてと
らえることもできる。また、同じビット番号を持つビッ
ト列から構成される3次元空間中の平面をビットプレー
ンと呼ぶ。
【0016】変換符号化の応用では、係数の範囲を表現
するのに必要な係数当たりのビット数は入力画像のそれ
ぞれのピクセル解像度(ビット/ピクセル)と線型変換
によって決定される。このピクセルの値の範囲は通常、
ほとんどの変換係数より相対的に大きな値である。した
がって係数のビット表現では多数の0が上位ビットに存
在する。たとえば、9は8ビット表現では4つのゼロ上位
ビットを持ち、16ビット表現では12のゼロ上位ビットを
持つことになる。圧縮方法および装置は効率的な手順に
よって、これらのゼロ上位ビットを表現(符号化)す
る。そして残りのビットおよび符号は修正なしで直接的
に符号化される。簡単のために、変換係数はこれ以降、
符号なしの2進整数に1ビットの符号がついた形で表現す
ることとする。すなわち、10進数の−9と+9において
は両者は同一のビット列1001で表現され、前者には負を
示す符号ビット1、後者には正を示す符号ビット0が付
加される。また、ゼロ上位ビットの数は変換係数の範囲
によって決定される。整数表現を用いれば、係数は一番
近い整数値に暗黙的に量子化されているが、整数表現は
必ずしも必要ではない。尚、圧縮の目的では浮動小数点
ビットに含まれる情報は、通常、無視される。
するのに必要な係数当たりのビット数は入力画像のそれ
ぞれのピクセル解像度(ビット/ピクセル)と線型変換
によって決定される。このピクセルの値の範囲は通常、
ほとんどの変換係数より相対的に大きな値である。した
がって係数のビット表現では多数の0が上位ビットに存
在する。たとえば、9は8ビット表現では4つのゼロ上位
ビットを持ち、16ビット表現では12のゼロ上位ビットを
持つことになる。圧縮方法および装置は効率的な手順に
よって、これらのゼロ上位ビットを表現(符号化)す
る。そして残りのビットおよび符号は修正なしで直接的
に符号化される。簡単のために、変換係数はこれ以降、
符号なしの2進整数に1ビットの符号がついた形で表現す
ることとする。すなわち、10進数の−9と+9において
は両者は同一のビット列1001で表現され、前者には負を
示す符号ビット1、後者には正を示す符号ビット0が付
加される。また、ゼロ上位ビットの数は変換係数の範囲
によって決定される。整数表現を用いれば、係数は一番
近い整数値に暗黙的に量子化されているが、整数表現は
必ずしも必要ではない。尚、圧縮の目的では浮動小数点
ビットに含まれる情報は、通常、無視される。
【0017】変換を行う領域は、連続する画像の係数の
組から成っている。以下では、係数という用語はピクセ
ルという用語と同じ意味で用いられるが、専門家によく
知られている様に、変換の領域(たとえばDWTの領域)
では、係数はピクセルを参照するために用いることが多
い。
組から成っている。以下では、係数という用語はピクセ
ルという用語と同じ意味で用いられるが、専門家によく
知られている様に、変換の領域(たとえばDWTの領域)
では、係数はピクセルを参照するために用いることが多
い。
【0018】1.1 第1のSWEET画像圧縮方法の符号化処
理第1の画像圧縮方法の更に詳細な説明は、図3および
図4を参照して行うことにする。
理第1の画像圧縮方法の更に詳細な説明は、図3および
図4を参照して行うことにする。
【0019】図3は第1の画像符号化方法のフローチャ
ートである。ステップ302では、入力画像を用いて処
理が始まる。ステップ304では、入力画像は線型変
換、通常はウェーブレット変換、を用いて変換される。
変換を行う初期領域は画像全体として定義される。たと
えば、入力画像の3レベルDWTでは、結果として得られ
る10のサブバンドからなる係数を、初期領域として指
定する。また、代わりに、初期領域のそれぞれを、注目
するサブバンド全体にセットして、それぞれのサブバン
ドを個別に処理することもできる。
ートである。ステップ302では、入力画像を用いて処
理が始まる。ステップ304では、入力画像は線型変
換、通常はウェーブレット変換、を用いて変換される。
変換を行う初期領域は画像全体として定義される。たと
えば、入力画像の3レベルDWTでは、結果として得られ
る10のサブバンドからなる係数を、初期領域として指
定する。また、代わりに、初期領域のそれぞれを、注目
するサブバンド全体にセットして、それぞれのサブバン
ドを個別に処理することもできる。
【0020】ステップ306では、変換係数における最
大絶対値の最上位ビット(MSB)が決定され、パラメー
タmaxBitNumberがその値に設定される。たとえば、最大
の変換係数が2進数で00001001(10進数では9)である
とすると、maxBitNumberは3にセットされる。なぜな
ら、MSBのビット番号は3だからである。あるいは代わ
りに、変換係数における最大絶対値の最上位ビットより
も大きな任意の値をパラメータmaxBitNumberにセットし
てもよい。
大絶対値の最上位ビット(MSB)が決定され、パラメー
タmaxBitNumberがその値に設定される。たとえば、最大
の変換係数が2進数で00001001(10進数では9)である
とすると、maxBitNumberは3にセットされる。なぜな
ら、MSBのビット番号は3だからである。あるいは代わ
りに、変換係数における最大絶対値の最上位ビットより
も大きな任意の値をパラメータmaxBitNumberにセットし
てもよい。
【0021】更に、ステップ306では、符号化パラメ
ータminBitNumberが、符号化する画像の品質を決定する
ために設定される。この符号化パラメータは、変換され
た画像の、すべての係数の精度を決定し、所望の値に変
えることができる。たとえば、minBitNumberが3である
場合には、再生される元画像はminBitNumberが1である
場合よりも粗くなる。
ータminBitNumberが、符号化する画像の品質を決定する
ために設定される。この符号化パラメータは、変換され
た画像の、すべての係数の精度を決定し、所望の値に変
えることができる。たとえば、minBitNumberが3である
場合には、再生される元画像はminBitNumberが1である
場合よりも粗くなる。
【0022】オプションとして、本方法は入力画像の符
号化表現にヘッダを追加するステップ308を備える。
実際には、ヘッダ情報は、符号化表現の一部として出力
される。たとえば、ヘッダには元画像について、画像の
高さと幅、DWTのレベル数、DCサブバンドの平均値、max
BitNumber、minBitNumberなどの情報が含まれる。
号化表現にヘッダを追加するステップ308を備える。
実際には、ヘッダ情報は、符号化表現の一部として出力
される。たとえば、ヘッダには元画像について、画像の
高さと幅、DWTのレベル数、DCサブバンドの平均値、max
BitNumber、minBitNumberなどの情報が含まれる。
【0023】ステップ310では、変換された画像のそ
れぞれのサブバンドはステップ312および314によ
って、個別に符号化される。それぞれのサブバンドは、
低周波から高周波へといった順番で独立に符号化され
る。DCサブバンドにおける平均値は符号化される前に取
り除かれ、ステップ308のヘッダ情報として符号化さ
れる。ステップ312ではそれぞれのサブバンドは、サ
ブバンド全体を初期領域にセットすることにより符号化
される。ステップ314では、領域はmaxBitNumberとmi
nBitNumberをパラメータとして符号化される。このよう
な符号化によれば、低解像度画像が高解像度画像の前に
ビットストリームへと符号化されるので、階層的符号を
出力される。そして、処理はステップ316で終了す
る。
れぞれのサブバンドはステップ312および314によ
って、個別に符号化される。それぞれのサブバンドは、
低周波から高周波へといった順番で独立に符号化され
る。DCサブバンドにおける平均値は符号化される前に取
り除かれ、ステップ308のヘッダ情報として符号化さ
れる。ステップ312ではそれぞれのサブバンドは、サ
ブバンド全体を初期領域にセットすることにより符号化
される。ステップ314では、領域はmaxBitNumberとmi
nBitNumberをパラメータとして符号化される。このよう
な符号化によれば、低解像度画像が高解像度画像の前に
ビットストリームへと符号化されるので、階層的符号を
出力される。そして、処理はステップ316で終了す
る。
【0024】図4は、図3のステップ314でCode reg
ion”(currentBitNumber,minBitNumber)”と呼ばれて
いた、各領域を符号化する部分の詳細なフローチャート
であり、ここでは、maxBitNumberはcurrentBitNumberと
して与えられる。ステップ402で処理が開始する。図
4における領域符号化処理への入力にはcurrentBitNumb
er,minBitNumberが含まれている。通常、この方法は再
帰的な方法として実装され、処理は選択された領域ある
いはサブ領域を伴って自分自身を呼び出すことができる
が、必ずしも再帰的な方法で実装されなくてもよい。
ion”(currentBitNumber,minBitNumber)”と呼ばれて
いた、各領域を符号化する部分の詳細なフローチャート
であり、ここでは、maxBitNumberはcurrentBitNumberと
して与えられる。ステップ402で処理が開始する。図
4における領域符号化処理への入力にはcurrentBitNumb
er,minBitNumberが含まれている。通常、この方法は再
帰的な方法として実装され、処理は選択された領域ある
いはサブ領域を伴って自分自身を呼び出すことができる
が、必ずしも再帰的な方法で実装されなくてもよい。
【0025】判定ブロック404では、currentBitNumb
erがminBitNumberよりも小さいかどうかがチェックされ
る。判定ブロック404が真を返す場合には何も行わ
ず、ステップ406で呼び出し元の処理へ戻る。これ
は、選択された領域のすべての係数はminBitNumberより
も小さな値のMSB番号であることを示す。判定ブロック
404が偽を返した場合には、処理は判定ブロック40
8へと進む。
erがminBitNumberよりも小さいかどうかがチェックされ
る。判定ブロック404が真を返す場合には何も行わ
ず、ステップ406で呼び出し元の処理へ戻る。これ
は、選択された領域のすべての係数はminBitNumberより
も小さな値のMSB番号であることを示す。判定ブロック
404が偽を返した場合には、処理は判定ブロック40
8へと進む。
【0026】判定ブロック408では、選択された領域
が1×1のピクセルであるかどうかがチェックされる。判
定ブロック408が真を返す場合には、この処理は41
0へと進む。ステップ410では1×1のピクセルが符号
化される。通常、この処理は符号化表現においてminBit
Number以上の残余のビットを直接出力する処理である。
また、判定ブロック408が偽を返した場合には、領域
は1つ以上の係数を含むこととなり、処理は判定ブロッ
ク414へと進む。
が1×1のピクセルであるかどうかがチェックされる。判
定ブロック408が真を返す場合には、この処理は41
0へと進む。ステップ410では1×1のピクセルが符号
化される。通常、この処理は符号化表現においてminBit
Number以上の残余のビットを直接出力する処理である。
また、判定ブロック408が偽を返した場合には、領域
は1つ以上の係数を含むこととなり、処理は判定ブロッ
ク414へと進む。
【0027】判定ブロック414では、選択された領域
が重要かどうかがチェックされる。すなわち、領域の重
要性が判定される。領域が重要であるかどうかは、その
領域に含まれるすべての係数のMSB番号とcurrentBit
Numberにより決定され、その判断は式(1)に基づいて
なされる。与えられたビット番号、たとえばcurrentBit
Number=nのとき、その領域が重要でないとは 式(1) が成立するときである。ここで、Rは領域を示し、Cij
はこの領域の(i,j)番目の係数を示す。
が重要かどうかがチェックされる。すなわち、領域の重
要性が判定される。領域が重要であるかどうかは、その
領域に含まれるすべての係数のMSB番号とcurrentBit
Numberにより決定され、その判断は式(1)に基づいて
なされる。与えられたビット番号、たとえばcurrentBit
Number=nのとき、その領域が重要でないとは 式(1) が成立するときである。ここで、Rは領域を示し、Cij
はこの領域の(i,j)番目の係数を示す。
【0028】判定ブロック414が偽を返す場合には、
処理はステップ416へと進む。ステップ416では符
号化表現のストリーム中に0(第1トークン)が出力さ
れ、currentBitNumberは1だけ減算される。処理はその
後判定ブロック404へと継続し、領域は再度currentb
itNumber-1とminBitNumberを用いて処理される。判定ブ
ロック414が真を返す場合には、その領域は重要であ
ると判定され、処理はステップ418へと移る。
処理はステップ416へと進む。ステップ416では符
号化表現のストリーム中に0(第1トークン)が出力さ
れ、currentBitNumberは1だけ減算される。処理はその
後判定ブロック404へと継続し、領域は再度currentb
itNumber-1とminBitNumberを用いて処理される。判定ブ
ロック414が真を返す場合には、その領域は重要であ
ると判定され、処理はステップ418へと移る。
【0029】ステップ418では符号化表現のストリー
ム中に1(第2トークン)が出力される。ステップ42
0では、選択された領域は定められた分割アルゴリズム
によってあらかじめ決められた数(通常は4)の領域に
分割される。尚、用いられる分割アルゴリズムは復号化
器には既知である。
ム中に1(第2トークン)が出力される。ステップ42
0では、選択された領域は定められた分割アルゴリズム
によってあらかじめ決められた数(通常は4)の領域に
分割される。尚、用いられる分割アルゴリズムは復号化
器には既知である。
【0030】分割方法においては正方形の領域が用いら
れる。領域は通常4つの同じ大きさのサブ領域に分割さ
れる。図2に示されるように、選択された領域(R)2
00はM×Mの係数をもつが、これは4つの同じ大きさ
のサブ領域210、212、214、216に分割され
る。それぞれのサブ領域の大きさはN×Nであり、Nは
M/2に等しい。しかし、この分割は初期領域の大きさ
及び形によるので、常に可能なわけではない。分割不可
能な場合でも、初期領域はいくつかの2の累乗の次元を
持つ正方形の領域に分割することができるので、これら
の領域に対して個別に符号化を行う。いずれの場合で
も、この初期化は、インテリジェントな方法で行えば、
全体の結果に対して最小の影響しか及ぼさない。
れる。領域は通常4つの同じ大きさのサブ領域に分割さ
れる。図2に示されるように、選択された領域(R)2
00はM×Mの係数をもつが、これは4つの同じ大きさ
のサブ領域210、212、214、216に分割され
る。それぞれのサブ領域の大きさはN×Nであり、Nは
M/2に等しい。しかし、この分割は初期領域の大きさ
及び形によるので、常に可能なわけではない。分割不可
能な場合でも、初期領域はいくつかの2の累乗の次元を
持つ正方形の領域に分割することができるので、これら
の領域に対して個別に符号化を行う。いずれの場合で
も、この初期化は、インテリジェントな方法で行えば、
全体の結果に対して最小の影響しか及ぼさない。
【0031】ステップ422では、それぞれのサブ領域
が同じcurrentBitNumberおよびminBitNumberを用いて符
号化される。これは図4に示されている”Code Region
(currentBitNumber,minBitNumber)”の再帰的な呼び出
しにより実行される。このサブ領域の符号化は並列実行
あるいは順次実行のいずれの方法でも実装できる。後者
の場合には、処理は低周波のサブバンドから高周波のサ
ブバンドへと順次実行される。
が同じcurrentBitNumberおよびminBitNumberを用いて符
号化される。これは図4に示されている”Code Region
(currentBitNumber,minBitNumber)”の再帰的な呼び出
しにより実行される。このサブ領域の符号化は並列実行
あるいは順次実行のいずれの方法でも実装できる。後者
の場合には、処理は低周波のサブバンドから高周波のサ
ブバンドへと順次実行される。
【0032】符号化表現では、変換係数はcurrentBitNu
mberからminBitNumberへとピクセルビットを単に出力す
ることで符号化される。通常は、係数ビットのいずれか
が非零である場合にかぎって符号は出力される。たとえ
ば、currentBitNumber=3, minBitNumber=1である場合に
は、−9(00001001)が符号ビット1に続いて100と符
号化される。
mberからminBitNumberへとピクセルビットを単に出力す
ることで符号化される。通常は、係数ビットのいずれか
が非零である場合にかぎって符号は出力される。たとえ
ば、currentBitNumber=3, minBitNumber=1である場合に
は、−9(00001001)が符号ビット1に続いて100と符
号化される。
【0033】1.2 第1のSWEET画像圧縮方法の復号化処
理図5は図3及び図4の処理により得られた、符号化さ
れた画像の復号化方法を示すフローチャートである。ス
テップ502では符号化表現を用いて処理が行われる。
ステップ504では、元画像の大きさ、すなわち初期領
域の大きさを決定するために、ヘッダ情報が符号化表現
で読み込まれる。また、maxBitNumber(符号化処理にお
ける初期のcurrentBitNumberに等しい)やminBitnumber
といった情報も同様に入力される。さらに、DCサブバ
ンドの平均値も情報に含まれる。
理図5は図3及び図4の処理により得られた、符号化さ
れた画像の復号化方法を示すフローチャートである。ス
テップ502では符号化表現を用いて処理が行われる。
ステップ504では、元画像の大きさ、すなわち初期領
域の大きさを決定するために、ヘッダ情報が符号化表現
で読み込まれる。また、maxBitNumber(符号化処理にお
ける初期のcurrentBitNumberに等しい)やminBitnumber
といった情報も同様に入力される。さらに、DCサブバ
ンドの平均値も情報に含まれる。
【0034】ステップ506では、サブバンドそれぞれ
の復号化は、対応するそれぞれのサブバンドに順次、領
域を設定することで行われる。ステップ508では、選
択された領域はmaxBitNumberやminBitNumberを用いて復
号化される。ステップ510では、逆DWTが復号化さ
れた選択済みの領域に対して行われる。そして、処理は
ステップ512で終了する。
の復号化は、対応するそれぞれのサブバンドに順次、領
域を設定することで行われる。ステップ508では、選
択された領域はmaxBitNumberやminBitNumberを用いて復
号化される。ステップ510では、逆DWTが復号化さ
れた選択済みの領域に対して行われる。そして、処理は
ステップ512で終了する。
【0035】図6は図5におけるステップ508の詳細
なフローチャートであり、508ではそれぞれの領域を
処理"Decode region(currentBitNumber,minBitNumber)"
を用いて復号化する。ここで、maxBitNumberはcurrentB
itNumberとして与えられる。ステップ602で処理は開
始される。図6における領域の復号化処理の入力パラメ
ータはcurrentBitNumberおよびminBitNumberである。こ
こでも復号化方法は通常、再帰的方法を用いて実装する
が、非再帰的方法によっても実装できる。
なフローチャートであり、508ではそれぞれの領域を
処理"Decode region(currentBitNumber,minBitNumber)"
を用いて復号化する。ここで、maxBitNumberはcurrentB
itNumberとして与えられる。ステップ602で処理は開
始される。図6における領域の復号化処理の入力パラメ
ータはcurrentBitNumberおよびminBitNumberである。こ
こでも復号化方法は通常、再帰的方法を用いて実装する
が、非再帰的方法によっても実装できる。
【0036】判定ブロック604ではcurrentBitNumber
がminBitNumberよりも小さいことをチェックする。判定
ブロック604が真を返す場合には、処理はステップ6
06へと処理を進め、呼び出し元の処理にもどる。ま
た、判定ブロック604が偽を返す場合には、処理は判
定ブロック608へと進む。
がminBitNumberよりも小さいことをチェックする。判定
ブロック604が真を返す場合には、処理はステップ6
06へと処理を進め、呼び出し元の処理にもどる。ま
た、判定ブロック604が偽を返す場合には、処理は判
定ブロック608へと進む。
【0037】判定ブロック608では選択された領域が
1×1のピクセルであることをチェックする。判定ブロ
ック608が真を返す場合には、処理はステップ610
へと進む。ステップ610では1×1のピクセルが復号
化される。その後、処理はステップ612において呼び
出し元の処理にもどる。また、判定ブロック608が偽
を返す場合には、処理はステップ614へと進む。ステ
ップ614では符号化表現からあるビットが入力され
る。
1×1のピクセルであることをチェックする。判定ブロ
ック608が真を返す場合には、処理はステップ610
へと進む。ステップ610では1×1のピクセルが復号
化される。その後、処理はステップ612において呼び
出し元の処理にもどる。また、判定ブロック608が偽
を返す場合には、処理はステップ614へと進む。ステ
ップ614では符号化表現からあるビットが入力され
る。
【0038】判定ブロック616では、入力ビットが1
であることがチェックされ、その領域が重要であるかが
判定される。判定ブロック616が偽を返す場合には、
処理はステップ618へと進む。ステップ618ではcu
rrentBitNumbwerが1だけ減算され、処理は判定ブロッ
ク604へと進む。また判定ブロック616が真を返す
場合には、処理はステップ620へと進む。ステップ6
20では、あらかじめ決められた数(通常は4)のサブ
領域に分割される。ステップ622ではサブ領域のそれ
ぞれはcurrentBitNumber及びminBitNumberを用いて復号
化される。これは図6に示される処理の再帰的呼び出し
によって実行される。そしてステップ624で、処理は
呼び出し元の処理に戻る。
であることがチェックされ、その領域が重要であるかが
判定される。判定ブロック616が偽を返す場合には、
処理はステップ618へと進む。ステップ618ではcu
rrentBitNumbwerが1だけ減算され、処理は判定ブロッ
ク604へと進む。また判定ブロック616が真を返す
場合には、処理はステップ620へと進む。ステップ6
20では、あらかじめ決められた数(通常は4)のサブ
領域に分割される。ステップ622ではサブ領域のそれ
ぞれはcurrentBitNumber及びminBitNumberを用いて復号
化される。これは図6に示される処理の再帰的呼び出し
によって実行される。そしてステップ624で、処理は
呼び出し元の処理に戻る。
【0039】このように、符号化器内の重要性判定から
出力されるビットは、復号化器内でどの処理を行うかを
指示している。すなわち、これは符号化器の模倣である
といえよう。尚、ピクセル及び符号は単に適切な番号の
ビットを読み込むことにより復号化される(currentBit
Number,minBitNumber等は非零の符号ビットである)。
出力されるビットは、復号化器内でどの処理を行うかを
指示している。すなわち、これは符号化器の模倣である
といえよう。尚、ピクセル及び符号は単に適切な番号の
ビットを読み込むことにより復号化される(currentBit
Number,minBitNumber等は非零の符号ビットである)。
【0040】1.3 2次元での例この方法においては、変
換係数の大部分を占めるゼロ上位ビットが効果的に符号
化され、最上位ビットからminBitNumberにより決定され
る最下位ビットおよび符号も符号化される。すなわち本
圧縮方法がゼロ上位ビットを効率的に表現していること
を示している。また、この方法は、一般的に大きなダイ
ナミックレンジをとる離散ウェーブレット変換において
は、非常に効果的である。つまり、いくつかの係数は非
常に大きな値をとり、ほとんどの係数が非常に小さな値
をとる場合に非常に効果がある。
換係数の大部分を占めるゼロ上位ビットが効果的に符号
化され、最上位ビットからminBitNumberにより決定され
る最下位ビットおよび符号も符号化される。すなわち本
圧縮方法がゼロ上位ビットを効率的に表現していること
を示している。また、この方法は、一般的に大きなダイ
ナミックレンジをとる離散ウェーブレット変換において
は、非常に効果的である。つまり、いくつかの係数は非
常に大きな値をとり、ほとんどの係数が非常に小さな値
をとる場合に非常に効果がある。
【0041】4x4の係数をもつ2次元領域の符号化の
例を、図7Aから図7Dを用いて説明する。図7Aの4
x4領域700の処理はmaxBiNumberを7にセットする
ことで行われる。これは、以下の行列において、7がす
べての係数のうちで最大のビット番号となるからであ
る: 行列 minBitNumberを説明のため、3にセットする。ヘッダは
適切に符号化表現で、maxBitNumberおよびminBitNumber
を含む形で出力される。領域700の符号化の処理はし
たがって以下のようになる。
例を、図7Aから図7Dを用いて説明する。図7Aの4
x4領域700の処理はmaxBiNumberを7にセットする
ことで行われる。これは、以下の行列において、7がす
べての係数のうちで最大のビット番号となるからであ
る: 行列 minBitNumberを説明のため、3にセットする。ヘッダは
適切に符号化表現で、maxBitNumberおよびminBitNumber
を含む形で出力される。領域700の符号化の処理はし
たがって以下のようになる。
【0042】currentBitNumberが7である時、領域70
0はビット番号7に関して重要であるので(図4の判定
ブロック404、408、414及びステップ418を
参照)1が出力される。その後、領域700は図7Aに
おける左上の領域710、右上の領域712、左下の領
域714、および右下の領域716の4つのサブ領域に
分割される(図4のステップ420参照)。この時に
は、それぞれのサブ領域は2x2の係数から構成されて
いる。
0はビット番号7に関して重要であるので(図4の判定
ブロック404、408、414及びステップ418を
参照)1が出力される。その後、領域700は図7Aに
おける左上の領域710、右上の領域712、左下の領
域714、および右下の領域716の4つのサブ領域に
分割される(図4のステップ420参照)。この時に
は、それぞれのサブ領域は2x2の係数から構成されて
いる。
【0043】図7Aのサブ領域710、712、71
4、715は、この順で図7Bに示される所定の手順に
よって符号化される。ここで、領域750は4つのサブ
領域750Aから750Dにより構成されるとする。図
に示されている3つの矢印は処理の順序を示しており、
左上の領域750A、右上の領域750B、左下の領域
750C、右下の領域750Dの順である。
4、715は、この順で図7Bに示される所定の手順に
よって符号化される。ここで、領域750は4つのサブ
領域750Aから750Dにより構成されるとする。図
に示されている3つの矢印は処理の順序を示しており、
左上の領域750A、右上の領域750B、左下の領域
750C、右下の領域750Dの順である。
【0044】まず、図7Aのサブ領域710が最初に符
号化される(図4のステップ422参照)。ここで、cu
rrentBitNumberが7であるので、1が符号化表現で出力
される。サブ領域710はその後、十進数で200,1
3,−13,3の値をそれぞれ持つ、4つの1x1のピ
クセルに分割される。これらの係数のそれぞれはcurren
tBitNumber=7からminBitNumber=3の係数のビットを出力
することによって符号化される(図4の判定ブロック4
08およびステップ410参照)。また、必要であれば
符号ビットも出力される。つまり、十進数の係数値20
0は符号ビット0をともなって、11001に符号化さ
れる。係数値13は符号ビット0を伴って00001に
符号化される。係数値−13は符号ビット1を伴って0
0001に符号化される。最後に係数値3が00000
(符号ビットなし)に符号化される。それぞれの係数の
符号化表現はcurrentBitNumberおよびminBitNumberとの
間で係数200よりも前に2つの「1」のビットを含
む。このようにして一番左上のサブ領域710の符号化
は完了する。この結果、符号化表現は次のようになる: この表現ではヘッダ情報は含まれていない 次に、右上のサブ領域712が符号化される(図7
B)。このときビット番号7,6,5,4に対応したcu
rrentBitNumberとして0が出力される。なぜなら領域7
12はこれらのビット番号に関して重要ではないからで
ある。そしてcurrentBitNumber=3に対して1が出力さ
れる。なぜなら、このビットプレーンはビット番号3に
関して重要となるからである。サブ領域712は−1
1,−8,−4,−3の値を持つ4つの1x1ピクセル
に分割される。これらの10進数はそれぞれ、符号ビッ
ト1を伴った1、符号ビット1を伴った1、符号ビット
なしの0、0に符号化される。従って、この段階で符号
化表現は次のようになる: 左下のサブ領域714が次に符号化される。このときビ
ットプレーン7,6,5,4に対応したcurrentBitNumb
erとして0が出力される。なぜなら領域714はこれら
のビット数に関して重要ではないからである。その後cu
rrentBitNumber=3に対して1が出力される。これは、
対象とするビットプレーンはビット番号3に関して重要
となるからである。サブ領域714は8,1,2,1の
値を持つ4つの1x1ピクセルに分割される。これらの
10進数はそれぞれ、符号ビット0を伴った2進数1、
符号ビットなしの2進数0、0、0に符号化される。従
って、この段階で符号化表現は次のようになる: 図7Cに示される様に、復号化器は符号化表現から領域
を再構築するために、単に符号化処理と同じ様な動作を
するだけである。
号化される(図4のステップ422参照)。ここで、cu
rrentBitNumberが7であるので、1が符号化表現で出力
される。サブ領域710はその後、十進数で200,1
3,−13,3の値をそれぞれ持つ、4つの1x1のピ
クセルに分割される。これらの係数のそれぞれはcurren
tBitNumber=7からminBitNumber=3の係数のビットを出力
することによって符号化される(図4の判定ブロック4
08およびステップ410参照)。また、必要であれば
符号ビットも出力される。つまり、十進数の係数値20
0は符号ビット0をともなって、11001に符号化さ
れる。係数値13は符号ビット0を伴って00001に
符号化される。係数値−13は符号ビット1を伴って0
0001に符号化される。最後に係数値3が00000
(符号ビットなし)に符号化される。それぞれの係数の
符号化表現はcurrentBitNumberおよびminBitNumberとの
間で係数200よりも前に2つの「1」のビットを含
む。このようにして一番左上のサブ領域710の符号化
は完了する。この結果、符号化表現は次のようになる: この表現ではヘッダ情報は含まれていない 次に、右上のサブ領域712が符号化される(図7
B)。このときビット番号7,6,5,4に対応したcu
rrentBitNumberとして0が出力される。なぜなら領域7
12はこれらのビット番号に関して重要ではないからで
ある。そしてcurrentBitNumber=3に対して1が出力さ
れる。なぜなら、このビットプレーンはビット番号3に
関して重要となるからである。サブ領域712は−1
1,−8,−4,−3の値を持つ4つの1x1ピクセル
に分割される。これらの10進数はそれぞれ、符号ビッ
ト1を伴った1、符号ビット1を伴った1、符号ビット
なしの0、0に符号化される。従って、この段階で符号
化表現は次のようになる: 左下のサブ領域714が次に符号化される。このときビ
ットプレーン7,6,5,4に対応したcurrentBitNumb
erとして0が出力される。なぜなら領域714はこれら
のビット数に関して重要ではないからである。その後cu
rrentBitNumber=3に対して1が出力される。これは、
対象とするビットプレーンはビット番号3に関して重要
となるからである。サブ領域714は8,1,2,1の
値を持つ4つの1x1ピクセルに分割される。これらの
10進数はそれぞれ、符号ビット0を伴った2進数1、
符号ビットなしの2進数0、0、0に符号化される。従
って、この段階で符号化表現は次のようになる: 図7Cに示される様に、復号化器は符号化表現から領域
を再構築するために、単に符号化処理と同じ様な動作を
するだけである。
【0045】尚、復号化処理は多くの方法で、より「ス
マート」にすることができる。図7Dに、そのような
「スマート」な例を示す。この例は、非零の各係数の大
きさを、2のminBitNumber乗の半分づつ増加させるもの
である(図7D)。この方法によって、「スマート」な
復号化処理では一般に、復号化された係数と元の係数間
の平均二乗誤差を減らすことができる。尚、この方法の
代わりに復号化器は図7Cのもっとも簡単な方法によっ
て、この種の演算を行うこともできる。
マート」にすることができる。図7Dに、そのような
「スマート」な例を示す。この例は、非零の各係数の大
きさを、2のminBitNumber乗の半分づつ増加させるもの
である(図7D)。この方法によって、「スマート」な
復号化処理では一般に、復号化された係数と元の係数間
の平均二乗誤差を減らすことができる。尚、この方法の
代わりに復号化器は図7Cのもっとも簡単な方法によっ
て、この種の演算を行うこともできる。
【0046】1.4 第2のSWEET画像圧縮の符号化処理第
2の方法による符号化処理は図9から図12を参照して
説明を行う。
2の方法による符号化処理は図9から図12を参照して
説明を行う。
【0047】ディジタル画像全体の離散ウェーブレット
変換はブロック単位を基本として行うことができる。各
ブロック上の変換結果は、画像全体の離散ウェーブレッ
ト変換において、空間的に対応する係数の組と本質的に
等価である係数の組である。たとえば廻h像全体のDW
Tにおける所定の係数の組から、ディジタル画像の1部
分あるいはブロックを特定の解像度で生成することがで
きる。つまり、周波数領域から所定の係数の組を選べ
ば、空間領域におけるディジタル画像(ブロック)の対
応する部分を十分に表現できる。画像のブロックベース
DWTは複数のブロックに画像を分解し、それぞれのブ
ロックに独立に変換を適用し、本質的に現在の空間に関
係するDWT係数を評価することで行える。ブロックベ
ースの変換を用いる利点は、あるブロックを、画像のほ
かのブロックとの最小の干渉で、本質的に独立に符号化
できる点である。ブロックベースの技術は、本質的にメ
モリの局所利用であるので、コンピュータシステムを用
いて実装する場合には、一般に効率がよい。
変換はブロック単位を基本として行うことができる。各
ブロック上の変換結果は、画像全体の離散ウェーブレッ
ト変換において、空間的に対応する係数の組と本質的に
等価である係数の組である。たとえば廻h像全体のDW
Tにおける所定の係数の組から、ディジタル画像の1部
分あるいはブロックを特定の解像度で生成することがで
きる。つまり、周波数領域から所定の係数の組を選べ
ば、空間領域におけるディジタル画像(ブロック)の対
応する部分を十分に表現できる。画像のブロックベース
DWTは複数のブロックに画像を分解し、それぞれのブ
ロックに独立に変換を適用し、本質的に現在の空間に関
係するDWT係数を評価することで行える。ブロックベ
ースの変換を用いる利点は、あるブロックを、画像のほ
かのブロックとの最小の干渉で、本質的に独立に符号化
できる点である。ブロックベースの技術は、本質的にメ
モリの局所利用であるので、コンピュータシステムを用
いて実装する場合には、一般に効率がよい。
【0048】図9は第2の符号化方法よるブロックベー
スの符号化処理を示すフローチャートである。処理はス
テップ902から始まり、ステップ904でヘッダが出
力される。通常、ヘッダ情報には画像の高さ及び幅、ブ
ロックサイズ、DWTのレベル数、そして2つの符号化
のバラメータであるmaxBitNumberおよびminBitNumerが
含まれる。尚、オプションとして、アプリケーションに
依存する形で、より多くあるいは少ないヘッダ情報が用
いられることもある。
スの符号化処理を示すフローチャートである。処理はス
テップ902から始まり、ステップ904でヘッダが出
力される。通常、ヘッダ情報には画像の高さ及び幅、ブ
ロックサイズ、DWTのレベル数、そして2つの符号化
のバラメータであるmaxBitNumberおよびminBitNumerが
含まれる。尚、オプションとして、アプリケーションに
依存する形で、より多くあるいは少ないヘッダ情報が用
いられることもある。
【0049】符号化のパラメータであるmaxBitNumberは
様々な方法で選ぶことができる。ブロックDWTが画像
ブロックの符号化処理の前に、すべての画像ブロックに
対して行われる場合には、maxBitNumberはすべてのDW
Tブロックを通じて最大である係数のMSB番号に選ば
れる。たとえば、最大の係数が10000001(10
進数で129)である場合には、MSBが7であるの
で、maxBitNumberは7にセットされる。また、変換方法
及び画像の解像度によって決定される決定論的境界を用
いることもできる。たとえば、8ビットの入力画像(7
ビット+符号ビットにレベルシフトされたもの)とHarr
変換を用いる場合には、最大のMSBはJ+7となる。
ここでJはDWTのレベル数を示すパラメータである。
ブロックが小さい場合には、このパラメータの選択は圧
縮に対して大き影響を持つことになる。また、場合によ
っては、maxBitNumberを選択するより洗練された方法が
使用されることもある。しかしながら、これは特定のア
プリケーションに依存するものである。
様々な方法で選ぶことができる。ブロックDWTが画像
ブロックの符号化処理の前に、すべての画像ブロックに
対して行われる場合には、maxBitNumberはすべてのDW
Tブロックを通じて最大である係数のMSB番号に選ば
れる。たとえば、最大の係数が10000001(10
進数で129)である場合には、MSBが7であるの
で、maxBitNumberは7にセットされる。また、変換方法
及び画像の解像度によって決定される決定論的境界を用
いることもできる。たとえば、8ビットの入力画像(7
ビット+符号ビットにレベルシフトされたもの)とHarr
変換を用いる場合には、最大のMSBはJ+7となる。
ここでJはDWTのレベル数を示すパラメータである。
ブロックが小さい場合には、このパラメータの選択は圧
縮に対して大き影響を持つことになる。また、場合によ
っては、maxBitNumberを選択するより洗練された方法が
使用されることもある。しかしながら、これは特定のア
プリケーションに依存するものである。
【0050】パラメータminBitNumberは圧縮率と品質と
のトレードオフを決定し、あらゆる値をとり得る。ちな
みに、ほぼ直行変換である場合には値3を用いて8ビッ
トグレースケールあるいは24ビットRGB画像に対し
て適切な画像品質を得ることができる。
のトレードオフを決定し、あらゆる値をとり得る。ちな
みに、ほぼ直行変換である場合には値3を用いて8ビッ
トグレースケールあるいは24ビットRGB画像に対し
て適切な画像品質を得ることができる。
【0051】ステップ906において、画像はブロック
へと分解される。画像はなるべくには、オーバーラップ
したブロックへと分解される。しかし、オーバーラップ
していないブロックであってもよい。尚、ブロック係数
は元画像全体と同程度の大きさ、あるいは8x8の係数
のブロック(3レベル変換)と同程度の小ささにもなり
得る。従って、メモリの少ないアプリケーションでは、
可能な限り小さなブロックを用いることができる。一般
的に、ブロックサイズが16の係数は、3あるいは4レ
ベルのDWTを用いる高レベル圧縮には十分である。
尚、3レベルのDWTを用いるブロックサイズ8x8の
係数は、それぞれのブロックのDC係数に差分パルス符
号変調(DPCM)を用いることにより、優れた符号化
効率を維持することができる。
へと分解される。画像はなるべくには、オーバーラップ
したブロックへと分解される。しかし、オーバーラップ
していないブロックであってもよい。尚、ブロック係数
は元画像全体と同程度の大きさ、あるいは8x8の係数
のブロック(3レベル変換)と同程度の小ささにもなり
得る。従って、メモリの少ないアプリケーションでは、
可能な限り小さなブロックを用いることができる。一般
的に、ブロックサイズが16の係数は、3あるいは4レ
ベルのDWTを用いる高レベル圧縮には十分である。
尚、3レベルのDWTを用いるブロックサイズ8x8の
係数は、それぞれのブロックのDC係数に差分パルス符
号変調(DPCM)を用いることにより、優れた符号化
効率を維持することができる。
【0052】ステップ908では、それぞれのブロック
はレベルシフトされ、変換が行われる。このとき、理想
的には、DWTが用いられる。画像の値はあらゆる過度
の平均バイアスを取り除くためにレベル変換(たとえば
8ビット画像に対しては128)され、画像におけるそ
れぞれの空間的なブロックが変換される。尚、DWTで
は通常、対象とするブロックの周辺ブロックに関するい
くらかの情報が必要となるが、これは絶対的に必要なも
のではない。
はレベルシフトされ、変換が行われる。このとき、理想
的には、DWTが用いられる。画像の値はあらゆる過度
の平均バイアスを取り除くためにレベル変換(たとえば
8ビット画像に対しては128)され、画像におけるそ
れぞれの空間的なブロックが変換される。尚、DWTで
は通常、対象とするブロックの周辺ブロックに関するい
くらかの情報が必要となるが、これは絶対的に必要なも
のではない。
【0053】ステップ910において、ブロックはmaxB
itNumberおよびminBitNumberを用いて符号化され、処理
はステップ912で終了する。
itNumberおよびminBitNumberを用いて符号化され、処理
はステップ912で終了する。
【0054】符号化を行うステップ910の詳細を、図
10のフローチャートに示す。図10におけるブロック
の符号化処理への入力には、currentBitNUmberとminBit
Numberが含まれる。尚、図9のステップ910では、ma
xBitNumberがcurrentBitNumberとしての入力になってい
る。処理はステップ1002で開始する。判定ブロック
1004では、currentBitNumberがminBitNumberよりも
小さいことがチェックされる。判定ブロック1004が
真を返す場合には、処理はステップ1006へと進む。
ステップ1006で、処理は呼び出し元へ戻る。従っ
て、ブロック中のすべての係数はminBitNumberよりも小
さなMSBを持つことがわかる。これに対し、判定ブロ
ック1004が偽を返す場合には、処理は判定ブロック
1008へと進む。
10のフローチャートに示す。図10におけるブロック
の符号化処理への入力には、currentBitNUmberとminBit
Numberが含まれる。尚、図9のステップ910では、ma
xBitNumberがcurrentBitNumberとしての入力になってい
る。処理はステップ1002で開始する。判定ブロック
1004では、currentBitNumberがminBitNumberよりも
小さいことがチェックされる。判定ブロック1004が
真を返す場合には、処理はステップ1006へと進む。
ステップ1006で、処理は呼び出し元へ戻る。従っ
て、ブロック中のすべての係数はminBitNumberよりも小
さなMSBを持つことがわかる。これに対し、判定ブロ
ック1004が偽を返す場合には、処理は判定ブロック
1008へと進む。
【0055】判定ブロック1008では現在のブロック
が重要であるかが判定される。判定ブロック1008が
偽を返す場合には、処理はステップ1010へと進む。
ステップ1010では符号化表現で0が出力され、curr
entBitNumberが1だけ減算される。すなわち、次に小い
ビットプレーンが選択される。処理はその後、判定ブロ
ック1004へと進む。判定ブロック1008が真を返
す場合には、処理はステップ1012へと進む。
が重要であるかが判定される。判定ブロック1008が
偽を返す場合には、処理はステップ1010へと進む。
ステップ1010では符号化表現で0が出力され、curr
entBitNumberが1だけ減算される。すなわち、次に小い
ビットプレーンが選択される。処理はその後、判定ブロ
ック1004へと進む。判定ブロック1008が真を返
す場合には、処理はステップ1012へと進む。
【0056】ブロック1010と判定ブロック100
4、1008によりブロック中の最大係数のMSBを抽
出することができる。ブロック中の、すべての係数のM
SB番号がcurrentBitNumberよりも小さい場合には、ブ
ロックはcurrentBitNumberに関して重要ではないという
ことである。尚、この処理は、ブロックのビットプレー
ンが重要であるか、あるいはcurrentBitNumberがminbit
Numberよりも小さくなるまで繰り返される。
4、1008によりブロック中の最大係数のMSBを抽
出することができる。ブロック中の、すべての係数のM
SB番号がcurrentBitNumberよりも小さい場合には、ブ
ロックはcurrentBitNumberに関して重要ではないという
ことである。尚、この処理は、ブロックのビットプレー
ンが重要であるか、あるいはcurrentBitNumberがminbit
Numberよりも小さくなるまで繰り返される。
【0057】ステップ1012では、ビットプレーンが
重要であることを示すため、1が符号化表現で出力され
る。ステップ1014では、DCサブバンドが符号化さ
れる。ステップ1016ではパラメータJ、currentBit
Number、minBitNumberを用いて、そのブロックの詳細が
符号化される。ステップ1018で、処理は呼び出し元
の処理にもどる。このように、ブロックが重要である場
合には、ステップ1012、1014、1016が、mi
nBitNumberより大きなMSB番号をもつすべての係数を
見つけるための一般的な4分木の分割を行うために実行
される。ブロックが重要である場合には、そのブロック
は2つのサブブロックに分割される。2つのブロックと
は、DCサブバンド係数と、残りの係数群である。残り
の係数群は、より低レベルな部分において、レベルJの
ブロックに関しての高周波の情報を保持しているために
レベルJに関して「ブロックの詳細」呼ばれる。
重要であることを示すため、1が符号化表現で出力され
る。ステップ1014では、DCサブバンドが符号化さ
れる。ステップ1016ではパラメータJ、currentBit
Number、minBitNumberを用いて、そのブロックの詳細が
符号化される。ステップ1018で、処理は呼び出し元
の処理にもどる。このように、ブロックが重要である場
合には、ステップ1012、1014、1016が、mi
nBitNumberより大きなMSB番号をもつすべての係数を
見つけるための一般的な4分木の分割を行うために実行
される。ブロックが重要である場合には、そのブロック
は2つのサブブロックに分割される。2つのブロックと
は、DCサブバンド係数と、残りの係数群である。残り
の係数群は、より低レベルな部分において、レベルJの
ブロックに関しての高周波の情報を保持しているために
レベルJに関して「ブロックの詳細」呼ばれる。
【0058】DCサブバンドを符号化する図10のステ
ップ1014の詳細を図12のフローチャートに示す。
図12はcurrentBitNumber及びminBitNumberのパラメー
タを用いて、サブバンドあるいはサブブロックを符号化
する処理を示している。ステップ1202で処理は開始
する。判定ブロック1204では、currentBitNumberが
minBitNumberよりも小さいことがチェックされる。判定
ブロック1204が真を返す場合には、処理はステップ
1206へと進む。ステップ1206において、処理は
呼び出し元の処理へと戻る。判定ブロック1204が偽
を返す場合には、処理は判定ブロック1208へと進
む。
ップ1014の詳細を図12のフローチャートに示す。
図12はcurrentBitNumber及びminBitNumberのパラメー
タを用いて、サブバンドあるいはサブブロックを符号化
する処理を示している。ステップ1202で処理は開始
する。判定ブロック1204では、currentBitNumberが
minBitNumberよりも小さいことがチェックされる。判定
ブロック1204が真を返す場合には、処理はステップ
1206へと進む。ステップ1206において、処理は
呼び出し元の処理へと戻る。判定ブロック1204が偽
を返す場合には、処理は判定ブロック1208へと進
む。
【0059】判定ブロック1208では、サブバンドブ
ロックの大きさが1x1ピクセルであることがチェック
される。判定ブロック1208が真を返す場合には、処
理はステップ1210へと進む。ステップ1210では
1x1ピクセルが符号化される。これには、currentbit
numberとminBitNumber間のすべてのビットと、必要であ
れば符号ビットが含まれる。処理はステップ1212に
おいて呼び出し元の処理に戻る。判定ブロック1208
が偽を返す場合には、処理は判定ブロック1214へと
進む。
ロックの大きさが1x1ピクセルであることがチェック
される。判定ブロック1208が真を返す場合には、処
理はステップ1210へと進む。ステップ1210では
1x1ピクセルが符号化される。これには、currentbit
numberとminBitNumber間のすべてのビットと、必要であ
れば符号ビットが含まれる。処理はステップ1212に
おいて呼び出し元の処理に戻る。判定ブロック1208
が偽を返す場合には、処理は判定ブロック1214へと
進む。
【0060】判定ブロック1214では(サブバンド)ブ
ロックが重要であることがチェックされる。判定ブロッ
クが偽を返す場合には、処理はステップ1216へと進
む。ステップ1216では0が符号化表現で出力され、
currentBitNumberが1だけ減算される。処理はその後判
定ブロック1204へと進む。判定ブロック1214が
真を返す場合には、処理はステップ1218へと進む。
ロックが重要であることがチェックされる。判定ブロッ
クが偽を返す場合には、処理はステップ1216へと進
む。ステップ1216では0が符号化表現で出力され、
currentBitNumberが1だけ減算される。処理はその後判
定ブロック1204へと進む。判定ブロック1214が
真を返す場合には、処理はステップ1218へと進む。
【0061】ステップ1218ではサブバンドブロック
が重要であることを示す1が、符号化表現で出力され
る。ステップ1220では、サブバンドブロックは4つ
のサブブロックに分割される。ステップ1222で、図
12に示される処理を再帰的に呼び出し、currentBitNu
mber及びminBitNumberのパラメータを用いてそれぞれの
サブブロックが符号化される。ステップ1224で処理
は呼び出し元の処理に戻る。
が重要であることを示す1が、符号化表現で出力され
る。ステップ1220では、サブバンドブロックは4つ
のサブブロックに分割される。ステップ1222で、図
12に示される処理を再帰的に呼び出し、currentBitNu
mber及びminBitNumberのパラメータを用いてそれぞれの
サブブロックが符号化される。ステップ1224で処理
は呼び出し元の処理に戻る。
【0062】このように、図12の処理では、サブバン
ドあるいはそのサブブロックが符号化される。そして最
大のMSB番号が前と同じように分離される。サブブロ
ックが単一ピクセルからなる場合には、それは単一の係
数として符号化される。また、currentBitNumberはcurr
entBitNumberがminBitNumberよりも小さくなるか、その
サブバンド(サブブロック)が重要となるまで1づつ減
算される。サブバンド(サブブロック)が重要である場
合には、4つ(できるだけこれに近い数)のサブブロッ
クに分割され、順に符号化される。たとえば、DC係数
のような単一の係数はcurrentBitNumbeとminBitNumber
の間のビットを出力することで符号化される。ここで
も、係数ビットのいくつかが非零である場合にのみ、符
号が出力される。
ドあるいはそのサブブロックが符号化される。そして最
大のMSB番号が前と同じように分離される。サブブロ
ックが単一ピクセルからなる場合には、それは単一の係
数として符号化される。また、currentBitNumberはcurr
entBitNumberがminBitNumberよりも小さくなるか、その
サブバンド(サブブロック)が重要となるまで1づつ減
算される。サブバンド(サブブロック)が重要である場
合には、4つ(できるだけこれに近い数)のサブブロッ
クに分割され、順に符号化される。たとえば、DC係数
のような単一の係数はcurrentBitNumbeとminBitNumber
の間のビットを出力することで符号化される。ここで
も、係数ビットのいくつかが非零である場合にのみ、符
号が出力される。
【0063】図10のステップ1016に示されてい
る、符号化を行うブロックの詳細を図11のフローチャ
ートに示す。ステップ1102で処理は開始する。判定
ブロック1104ではcurrentBitNumberがminBitNumber
よりも小さいことがチェックされる。判定ブロック11
04が真を返す場合には、処理はステップ1106にお
いて呼び出し元の処理に戻る。判定ブロック1104が
偽を返す場合には、処理は判定ブロック1108へと進
む。
る、符号化を行うブロックの詳細を図11のフローチャ
ートに示す。ステップ1102で処理は開始する。判定
ブロック1104ではcurrentBitNumberがminBitNumber
よりも小さいことがチェックされる。判定ブロック11
04が真を返す場合には、処理はステップ1106にお
いて呼び出し元の処理に戻る。判定ブロック1104が
偽を返す場合には、処理は判定ブロック1108へと進
む。
【0064】判定ブロック1108では、ブロックが重
要であることがチェックされる。判定ブロック1108
が偽を返す場合には、処理はステップ1110へと進
む。ステップ1110では0が符号化表現で出力され、
currentBitNumberは1だけ減算される。処理はその後、
判定ブロック1104へと進む。判定ブロック1108
が真を返す場合には、処理はステップ1112へと進
む。ステップ1112ではブロック(の詳細)が重要で
あることを示すために1が、符号化表現で出力される。
ステップ1114では、高周波部の低周波成分(H
L)、低周波部の高周波成分(LH)、高周波部の高周
波成分(HH)がそれぞれ符号化される。それぞれの解
像度におけるHL、LH、HHサブバンドはACサブバ
ンドである。これらそれぞれのサブバンドは図12の処
理を用いて符号化される。ステップ1116ではブロッ
クの詳細はパラメータJ−1、currentBitNumber、minB
itNumberを用いて、図11に示される処理の再帰的実行
により符号化される(ブロックの詳細が存在する場
合)。処理はステップ1118において呼び出し元の処
理に戻る。
要であることがチェックされる。判定ブロック1108
が偽を返す場合には、処理はステップ1110へと進
む。ステップ1110では0が符号化表現で出力され、
currentBitNumberは1だけ減算される。処理はその後、
判定ブロック1104へと進む。判定ブロック1108
が真を返す場合には、処理はステップ1112へと進
む。ステップ1112ではブロック(の詳細)が重要で
あることを示すために1が、符号化表現で出力される。
ステップ1114では、高周波部の低周波成分(H
L)、低周波部の高周波成分(LH)、高周波部の高周
波成分(HH)がそれぞれ符号化される。それぞれの解
像度におけるHL、LH、HHサブバンドはACサブバ
ンドである。これらそれぞれのサブバンドは図12の処
理を用いて符号化される。ステップ1116ではブロッ
クの詳細はパラメータJ−1、currentBitNumber、minB
itNumberを用いて、図11に示される処理の再帰的実行
により符号化される(ブロックの詳細が存在する場
合)。処理はステップ1118において呼び出し元の処
理に戻る。
【0065】このように、レベルJにおけるブロックの
詳細は、まず、最大係数のMSB番号を抽出することに
よって処理される。これは、ブロックが重要となるまで
currentBitNubmerを1だけ減算し、0を出力することで
行われる。その後、ブロックはレベルJの3つの高周波
ブロックとレベルJ−1のブロックの詳細に分割される
(J−1が0より大きい場合)。尚、この分割はいわゆ
る1/f型のスペクトルモデルによって決定される。
詳細は、まず、最大係数のMSB番号を抽出することに
よって処理される。これは、ブロックが重要となるまで
currentBitNubmerを1だけ減算し、0を出力することで
行われる。その後、ブロックはレベルJの3つの高周波
ブロックとレベルJ−1のブロックの詳細に分割される
(J−1が0より大きい場合)。尚、この分割はいわゆ
る1/f型のスペクトルモデルによって決定される。
【0066】第2の方法の復号化処理は、図9から図1
2を用いて説明した符号化処理と同様にして実現でき
る。
2を用いて説明した符号化処理と同様にして実現でき
る。
【0067】符号化/復号化方法及び装置は、効果的か
つ柔軟な方法でディジタル画像データを表現できるの
で、画像の記録や伝送に適している。この符号化技術は
一般的には変換係数の配列表現を用いて行うことが可能
であり、また、離散ウェーブレット変換領域において効
率的な画像の表現を行うことが可能である。特に、この
方法及び装置では、入力画像から得られる変換係数のゼ
ロ上位ビットのブロックを符号化している。この方法
は、与えられた大きさの符号における好ましい再生画像
の提供、及び、高速な符号化処理の実現に関して効果的
である。さらにこの方法は、エントロピー符号化を用い
ずに、線形変換から得られた係数を独立に符号化できる
という点で、柔軟性があるといえる。また、この方法の
利点には、符号化の特徴である下位優先の考え方が含ま
れている。さらにサブバンドの符号化においては、それ
ぞれのサブバンドを独立に階層的符号化ができるという
点が利点に含まれる。
つ柔軟な方法でディジタル画像データを表現できるの
で、画像の記録や伝送に適している。この符号化技術は
一般的には変換係数の配列表現を用いて行うことが可能
であり、また、離散ウェーブレット変換領域において効
率的な画像の表現を行うことが可能である。特に、この
方法及び装置では、入力画像から得られる変換係数のゼ
ロ上位ビットのブロックを符号化している。この方法
は、与えられた大きさの符号における好ましい再生画像
の提供、及び、高速な符号化処理の実現に関して効果的
である。さらにこの方法は、エントロピー符号化を用い
ずに、線形変換から得られた係数を独立に符号化できる
という点で、柔軟性があるといえる。また、この方法の
利点には、符号化の特徴である下位優先の考え方が含ま
れている。さらにサブバンドの符号化においては、それ
ぞれのサブバンドを独立に階層的符号化ができるという
点が利点に含まれる。
【0068】2.装置及び方法の好適な実施の形態 装置及び方法の好適な実施の形態は、前述の画像圧縮方
法における符号化出力を得るための、効果的かつ効率的
な符号化を提供する。
法における符号化出力を得るための、効果的かつ効率的
な符号化を提供する。
【0069】2.1 装置及び方法の好適な実施の形態 図13に装置の好適な実施の形態である装置の図を示
す。装置1301では、入力データはピクセルデータの
形で入力されると仮定し、係数1304を出力するため
に、離散ウェーブレット変換1303が施される。その
後、係数は符号化された係数1306を出力するため
に、係数符号化器1305に送られ、その出力は特定の
アプリケーションに応じて順次、記録あるいは伝送され
る。
す。装置1301では、入力データはピクセルデータの
形で入力されると仮定し、係数1304を出力するため
に、離散ウェーブレット変換1303が施される。その
後、係数は符号化された係数1306を出力するため
に、係数符号化器1305に送られ、その出力は特定の
アプリケーションに応じて順次、記録あるいは伝送され
る。
【0070】発明に関する好適な実施の形態は係数符号
化器1305の部分に示されるが、ウェーブレット変換
を意味する1303自体はすでに標準的であり、また様
々な形式をとるため、区別を明確にする目的で分離して
記述してある。
化器1305の部分に示されるが、ウェーブレット変換
を意味する1303自体はすでに標準的であり、また様
々な形式をとるため、区別を明確にする目的で分離して
記述してある。
【0071】ウェーブレット変換に関する記述は多くの
文献、特に前出のStollnitzらの本に記されている。好
適な実施の形態における演算の理解を促すため、ここ
で、ウェーブレット変換に関する復習を、図を用いて行
うことにする。
文献、特に前出のStollnitzらの本に記されている。好
適な実施の形態における演算の理解を促すため、ここ
で、ウェーブレット変換に関する復習を、図を用いて行
うことにする。
【0072】図14では、元画像1401は離散ウェー
ブレット変換(DWT)を用いて4つのサブ画像140
3−1406に変換される。サブ画像あるいはサブバン
ドは通常LL1、HL1、LH1、HH1として記述さ
れる。ここで、サブバンド名における末尾の1はレベル
1を示すものとする。LL1サブバンドは元画像の低周
波成分の大半を占めている。
ブレット変換(DWT)を用いて4つのサブ画像140
3−1406に変換される。サブ画像あるいはサブバン
ドは通常LL1、HL1、LH1、HH1として記述さ
れる。ここで、サブバンド名における末尾の1はレベル
1を示すものとする。LL1サブバンドは元画像の低周
波成分の大半を占めている。
【0073】使用するウェーブレット変換は様々であ
り、たとえばHaar基底関数、Daubechies基底関数などを
包含することができる。
り、たとえばHaar基底関数、Daubechies基底関数などを
包含することができる。
【0074】そしてLL1サブバンドに対して、図15
に示されるような2回目の離散ウェーブレット変換が適
用され、サブバンドLL2(1408)、HL2(14
09)、LH2(1410)、HH2(1411)が得
られる。この処理はたとえば図16に示されるような形
へと進む。図16においては、LL4サブバンドが示さ
れており、LL4サブバンドはDCサブバンドであると
考えてよい。また、LLサブバンド分解処理はオクター
ブ・バンドフィルタバンクであるともいえる。図16の
状態は、明らかに、さらに高レベルの分解を入力画像の
大きさに応じて行うことができることを示している。
に示されるような2回目の離散ウェーブレット変換が適
用され、サブバンドLL2(1408)、HL2(14
09)、LH2(1410)、HH2(1411)が得
られる。この処理はたとえば図16に示されるような形
へと進む。図16においては、LL4サブバンドが示さ
れており、LL4サブバンドはDCサブバンドであると
考えてよい。また、LLサブバンド分解処理はオクター
ブ・バンドフィルタバンクであるともいえる。図16の
状態は、明らかに、さらに高レベルの分解を入力画像の
大きさに応じて行うことができることを示している。
【0075】それぞれの単一レベルDWTは元画像を得
るために順に逆変換することができる。従って、Jレベ
ルDWTはJ回の単一レベル逆DWTとして逆変換でき
る。
るために順に逆変換することができる。従って、Jレベ
ルDWTはJ回の単一レベル逆DWTとして逆変換でき
る。
【0076】符号化された画像は階層的にDCサブバン
ドを符号化することによって得られる。そして残りのサ
ブバンドは、低レベルのものへと順に符号化される。す
なわち、4レベルDWTにおいては、レベル4のサブバ
ンドはDCサブバンド(LL4)の後に符号化される。
レベル4のサブバンドとは、HL4、LH4、HH4で
ある。その後、レベル3のサブバンド(HL3、LH
3、HH3)が符号化され、レベル2(HL2、LH
2、HH2)が符号化され、レベル1(HL1、LH
1、HH1)が符号化される。標準的な画像では、符号
化されたサブバンドは通常、その画像に関する「詳細
な」情報あるいはエネルギー情報を含んでいる。従って
それらのサブバンドは、値がまばらな配列から構成され
ることが多く、圧縮の本質はサブバンドを量子化してサ
ブバンドの疎行列の効率的な符号化を行うことによって
実現される。
ドを符号化することによって得られる。そして残りのサ
ブバンドは、低レベルのものへと順に符号化される。す
なわち、4レベルDWTにおいては、レベル4のサブバ
ンドはDCサブバンド(LL4)の後に符号化される。
レベル4のサブバンドとは、HL4、LH4、HH4で
ある。その後、レベル3のサブバンド(HL3、LH
3、HH3)が符号化され、レベル2(HL2、LH
2、HH2)が符号化され、レベル1(HL1、LH
1、HH1)が符号化される。標準的な画像では、符号
化されたサブバンドは通常、その画像に関する「詳細
な」情報あるいはエネルギー情報を含んでいる。従って
それらのサブバンドは、値がまばらな配列から構成され
ることが多く、圧縮の本質はサブバンドを量子化してサ
ブバンドの疎行列の効率的な符号化を行うことによって
実現される。
【0077】発明の好適な実施の形態においては、係数
符号化器1305はウェーブレット変換部から出力され
る係数データ1304を受け取っている。本発明はあら
ゆる大きさの画像ブロックへの応用が可能であるが、簡
単のため、図17に示される4x4のピクセルブロック
1704に分解されている例1700を仮定する。尚、
一般には、本発明は4x4よりも大きな画像ブロックN
xNへの適用が行われるであろう。さて、4x4ブロッ
クはその後、図17aに示されるブロック1704とし
て、ウェーブレット変換を施すために、独立にウェーブ
レット変換部3へ入力される。ほとんどでの通常画像で
は、ウェーブレット変換処理は最大のエネルギーあるい
は重要性が低周波成分に現れることが知られている。
符号化器1305はウェーブレット変換部から出力され
る係数データ1304を受け取っている。本発明はあら
ゆる大きさの画像ブロックへの応用が可能であるが、簡
単のため、図17に示される4x4のピクセルブロック
1704に分解されている例1700を仮定する。尚、
一般には、本発明は4x4よりも大きな画像ブロックN
xNへの適用が行われるであろう。さて、4x4ブロッ
クはその後、図17aに示されるブロック1704とし
て、ウェーブレット変換を施すために、独立にウェーブ
レット変換部3へ入力される。ほとんどでの通常画像で
は、ウェーブレット変換処理は最大のエネルギーあるい
は重要性が低周波成分に現れることが知られている。
【0078】図18には、標準的なウェーブレット処理
の出力例が10進と2進の形の係数1802をもちいて
示されている。図13に示される係数符号化器1305
は、前述の節「1.4 第2のSWEET画像圧縮方法の
符号化処理」に示されているような第2の画像圧縮方法
に従って4x4ブロックそれぞれのの係数1800を符
号化する。係数符号化器1305はまた、同様な効率的
な方法で、前述の節「1.1 第1のSWEET画像圧縮
方法の符号化処理」に示されるような第1の画像圧縮方
法に従って、専門家に理解されるように、画像の係数の
符号化を調整することができる。しかしながら、説明の
目的で、好適な実施の形態においては、第2の画像圧縮
方法を実装するための望ましい装置及び方法のみに関し
て説明を行うこととする。図15に、第2の画像圧縮方
法の動作が示されている。ここでは係数LL2が最も重
要であるとし、次にHL2、LH2、HH2、続いてレ
ベル1の係数であるHL1,LH1,HH1の順で重要
であるとする。
の出力例が10進と2進の形の係数1802をもちいて
示されている。図13に示される係数符号化器1305
は、前述の節「1.4 第2のSWEET画像圧縮方法の
符号化処理」に示されているような第2の画像圧縮方法
に従って4x4ブロックそれぞれのの係数1800を符
号化する。係数符号化器1305はまた、同様な効率的
な方法で、前述の節「1.1 第1のSWEET画像圧縮
方法の符号化処理」に示されるような第1の画像圧縮方
法に従って、専門家に理解されるように、画像の係数の
符号化を調整することができる。しかしながら、説明の
目的で、好適な実施の形態においては、第2の画像圧縮
方法を実装するための望ましい装置及び方法のみに関し
て説明を行うこととする。図15に、第2の画像圧縮方
法の動作が示されている。ここでは係数LL2が最も重
要であるとし、次にHL2、LH2、HH2、続いてレ
ベル1の係数であるHL1,LH1,HH1の順で重要
であるとする。
【0079】元画像の行列表現を図19の1900に示
す。第2の画像圧縮方法では、図18の例に従って8ビ
ットの値をとるものとする。好適な実施の形態では、係
数の大きさによって係数を検索し、最上位の値を持つ係
数のゼロ上位ビットそれぞれに対して0を出力する。い
ったん2進数係数内の1の値が求まれば、LL2の係数
1902は、それが常に最上位の係数であると仮定して
符号化が行われる。次に残りの係数1904は大きい順
に検索され、0が残らなくなるまで、各レベルのゼロ上
位ビットに対して0が出力されていく。一旦これが終了
すれば、HL2,LH2,HH2が分離されて1906
へと符号化され、残りの係数は1908として分離され
る。残りの係数1908はその後、大きさによって検索
され、1の値が出力されるまで、残りのゼロ上位ビット
それぞれに0が出力される。一旦、これが終了すれば、
残りの係数1910が符号化される。低周波成分を抽出
するこの処理は、入力配列の大きさに依存してすべての
係数が符号化されてヌル行列1912のみが残るまで継
続する。
す。第2の画像圧縮方法では、図18の例に従って8ビ
ットの値をとるものとする。好適な実施の形態では、係
数の大きさによって係数を検索し、最上位の値を持つ係
数のゼロ上位ビットそれぞれに対して0を出力する。い
ったん2進数係数内の1の値が求まれば、LL2の係数
1902は、それが常に最上位の係数であると仮定して
符号化が行われる。次に残りの係数1904は大きい順
に検索され、0が残らなくなるまで、各レベルのゼロ上
位ビットに対して0が出力されていく。一旦これが終了
すれば、HL2,LH2,HH2が分離されて1906
へと符号化され、残りの係数は1908として分離され
る。残りの係数1908はその後、大きさによって検索
され、1の値が出力されるまで、残りのゼロ上位ビット
それぞれに0が出力される。一旦、これが終了すれば、
残りの係数1910が符号化される。低周波成分を抽出
するこの処理は、入力配列の大きさに依存してすべての
係数が符号化されてヌル行列1912のみが残るまで継
続する。
【0080】図20では、図13の4x4行列1302
を符号化する際の、第2の圧縮方法における動作の例が
示されている。この例を詳しくみると、10進数の33
を持つ係数が、初めに2つのゼロ上位ビットを持つ最上
位の係数である。従って2つの0、2002および20
04がビットプレーンレベル8及び7として出力され
る。次に10進数の係数値33は係数出力2006を導
き、2進値1の後、2006が出力される。続いて、そ
の他の係数が重要な2進ビットを持たない場合には、0
が2008としてビットプレーンレベルを下げるために
出力される。1レベル下がったビットプレーンでは、1
0進で17の値を持つビットプレーンがセットされ、そ
れが順に一連の係数列2010(図19における係数1
906に対応)を出力するきっかけとなる。そして、図
19の係数1908に対応するものが分離される。続い
て、次の最上位係数値は4であるので、0の列がステッ
プ2012,2014でビットプレーンレベル3を示す
1(2016)の前に出力され、続いて図19のHL1
の係数に対応するもの(2018)が出力される。ここ
で、ブロックが単一ピクセルの係数よりも大きい場合に
はアルゴリズムがHL1の係数、LH1の係数HH1の
係数に逐次的に適用される。この場合には、これらの係
数を符号化するためのプッシュダウンスタックが必要と
なる。このような場合でないときは、1及び2022に
示される係数列の前に、0が2020として出力され
る。続いて、HL1の係数がビットプレーンレベル3か
ら独立に繰り返され、ビットプレーン1が渡されるまで
連続した0が2024,2026として出力され、続い
て1が出力され、さらに対応する係数2028が出力さ
れる。
を符号化する際の、第2の圧縮方法における動作の例が
示されている。この例を詳しくみると、10進数の33
を持つ係数が、初めに2つのゼロ上位ビットを持つ最上
位の係数である。従って2つの0、2002および20
04がビットプレーンレベル8及び7として出力され
る。次に10進数の係数値33は係数出力2006を導
き、2進値1の後、2006が出力される。続いて、そ
の他の係数が重要な2進ビットを持たない場合には、0
が2008としてビットプレーンレベルを下げるために
出力される。1レベル下がったビットプレーンでは、1
0進で17の値を持つビットプレーンがセットされ、そ
れが順に一連の係数列2010(図19における係数1
906に対応)を出力するきっかけとなる。そして、図
19の係数1908に対応するものが分離される。続い
て、次の最上位係数値は4であるので、0の列がステッ
プ2012,2014でビットプレーンレベル3を示す
1(2016)の前に出力され、続いて図19のHL1
の係数に対応するもの(2018)が出力される。ここ
で、ブロックが単一ピクセルの係数よりも大きい場合に
はアルゴリズムがHL1の係数、LH1の係数HH1の
係数に逐次的に適用される。この場合には、これらの係
数を符号化するためのプッシュダウンスタックが必要と
なる。このような場合でないときは、1及び2022に
示される係数列の前に、0が2020として出力され
る。続いて、HL1の係数がビットプレーンレベル3か
ら独立に繰り返され、ビットプレーン1が渡されるまで
連続した0が2024,2026として出力され、続い
て1が出力され、さらに対応する係数2028が出力さ
れる。
【0081】ここまでで説明した符号化システムは、前
述の特許出願においてされに詳しく記述され、その詳細
な動作は「1.4 第2のSWEET画像圧縮方法の符号
化処理」のセクションに見いだすことができる。
述の特許出願においてされに詳しく記述され、その詳細
な動作は「1.4 第2のSWEET画像圧縮方法の符号
化処理」のセクションに見いだすことができる。
【0082】これは、前述の画像圧縮方法の符号化され
た出力および係数出力の生成における本発明の好適な実
施の形態の対象である。好適な実施の形態に関する議論
は、図20の出力構造例が分割ツリー構造を持つという
ことを認識することによって進めることができる。図1
8及び図20の例に対応する分割ツリー構造の例を図2
1に示す。この例においては、丸印で示される内部ノー
ドが示されている。内部ノードは後に続くサブツリー内
のピクセルを表現するのに必要な最大ビット数を保持し
ている。また、たとえば端ノード2102はピクセルデ
ータの値を保有しており、下位のサブツリーノード例2
104はさらに、サブツリー内のピクセルを表すのに必
要なビット数を符号化している。
た出力および係数出力の生成における本発明の好適な実
施の形態の対象である。好適な実施の形態に関する議論
は、図20の出力構造例が分割ツリー構造を持つという
ことを認識することによって進めることができる。図1
8及び図20の例に対応する分割ツリー構造の例を図2
1に示す。この例においては、丸印で示される内部ノー
ドが示されている。内部ノードは後に続くサブツリー内
のピクセルを表現するのに必要な最大ビット数を保持し
ている。また、たとえば端ノード2102はピクセルデ
ータの値を保有しており、下位のサブツリーノード例2
104はさらに、サブツリー内のピクセルを表すのに必
要なビット数を符号化している。
【0083】図21のツリー構造をみると、左の大部分
の枝を保有しているルート2100を始点として、必要
最小限のビット数でピクセルデータを符号化する事が可
能である。従って、次の疑似プログラムリストは分割ツ
リーにおける再帰的処理に利用することができる。
の枝を保有しているルート2100を始点として、必要
最小限のビット数でピクセルデータを符号化する事が可
能である。従って、次の疑似プログラムリストは分割ツ
リーにおける再帰的処理に利用することができる。
【0084】ProcessNodeのプログラムリスト:係数の
配列が与えられれば、一番右下のツリー2106から開
始することによって、図21に示されるような対応する
ツリーを構成することが可能である。すべての端ノード
2108−2114はフェッチされ、端ノードを表現す
るのに必要な最小限のビット数が内部ノード2106に
入力される。一旦、あるレベルのすべて内部ノードに値
が入力されれば、現在のレベルにおけるすべてのノード
(ノード2106、2120、2118)が検査されて
最大のノードが決定し、親ノード2116の値になる。
さらに処理は、前のノード2116及びノード212
2、2124、2126を表現するのに必要なビット数
により決定されるノード2104の値を伴って継続す
る。この処理はすべての内部ノードに対して行われ、ル
ートノードまで継続する。
配列が与えられれば、一番右下のツリー2106から開
始することによって、図21に示されるような対応する
ツリーを構成することが可能である。すべての端ノード
2108−2114はフェッチされ、端ノードを表現す
るのに必要な最小限のビット数が内部ノード2106に
入力される。一旦、あるレベルのすべて内部ノードに値
が入力されれば、現在のレベルにおけるすべてのノード
(ノード2106、2120、2118)が検査されて
最大のノードが決定し、親ノード2116の値になる。
さらに処理は、前のノード2116及びノード212
2、2124、2126を表現するのに必要なビット数
により決定されるノード2104の値を伴って継続す
る。この処理はすべての内部ノードに対して行われ、ル
ートノードまで継続する。
【0085】2.2 第1の好適な実施の形態図22に
は、前述の割付方法を実装する 、図13における係数符号化器1305の好適な実施の
形態がさらに詳しく示されている。係数符号化器130
5は対応するデータ1304を取り込んで、符号化され
たデータ1306を出力するように設計される。符号化
器1305は2つの主要な論理ブロックであるツリー構
築部2200とツリー符号化器2204から構成され
る。ツリー構築部2200は係数データ1304を逆順
に読み込んで、係数値をツリー上の対応する場所に記録
しつつ、内部ノード2106,2120,2118,2
116,2104,2100の値を計算する。このデー
タはツリーテーブル2202に記録される。望ましく
は、ツリーテーブル2202はテーブルを同時に記録す
る能力をもち、ピンポンバッファとして機能する。ピン
ポンバッファとは、前もって構成されたツリーがツリー
テーブル2202から、ツリー符号化器2204によっ
て読み出されている間に、バッファの片側がツリーを組
み立てるために利用できるようなバッファである。バッ
ファはツリー構成処理が終了するとスワップされる。
は、前述の割付方法を実装する 、図13における係数符号化器1305の好適な実施の
形態がさらに詳しく示されている。係数符号化器130
5は対応するデータ1304を取り込んで、符号化され
たデータ1306を出力するように設計される。符号化
器1305は2つの主要な論理ブロックであるツリー構
築部2200とツリー符号化器2204から構成され
る。ツリー構築部2200は係数データ1304を逆順
に読み込んで、係数値をツリー上の対応する場所に記録
しつつ、内部ノード2106,2120,2118,2
116,2104,2100の値を計算する。このデー
タはツリーテーブル2202に記録される。望ましく
は、ツリーテーブル2202はテーブルを同時に記録す
る能力をもち、ピンポンバッファとして機能する。ピン
ポンバッファとは、前もって構成されたツリーがツリー
テーブル2202から、ツリー符号化器2204によっ
て読み出されている間に、バッファの片側がツリーを組
み立てるために利用できるようなバッファである。バッ
ファはツリー構成処理が終了するとスワップされる。
【0086】ツリー符号化器2204は構成されたツリ
ーテーブルをルートノードから下へと読み込んで、内部
ノード内の値の組に従って、ピクセルを符号化する機能
を受け持つ。ツリー符号化器2204は通常、1サイク
ルに最大4つの出力を出す。
ーテーブルをルートノードから下へと読み込んで、内部
ノード内の値の組に従って、ピクセルを符号化する機能
を受け持つ。ツリー符号化器2204は通常、1サイク
ルに最大4つの出力を出す。
【0087】図23ではツリー構築部2200の構成形
式の一例が示されている。この装置は有限ステートマシ
ンにより構成することができるコントロール部2300
の制御により動作する。ツリー構築部2200は230
1を適切に出力するためのツリー(図21)を構築する
役割を受け持っている。
式の一例が示されている。この装置は有限ステートマシ
ンにより構成することができるコントロール部2300
の制御により動作する。ツリー構築部2200は230
1を適切に出力するためのツリー(図21)を構築する
役割を受け持っている。
【0088】入力係数値1304は端ノード符号化器2
302及び内部ノード符号化器2304に入力される。
端ノード符号化器は、内部ノード出力2308を生成す
る役割をもつ内部ノード符号化器2304とともに、係
数データ2306を出力する役割を担っている。これら
の値は、コントロール部2300により、2310によ
る積算がなされて出力される。
302及び内部ノード符号化器2304に入力される。
端ノード符号化器は、内部ノード出力2308を生成す
る役割をもつ内部ノード符号化器2304とともに、係
数データ2306を出力する役割を担っている。これら
の値は、コントロール部2300により、2310によ
る積算がなされて出力される。
【0089】図24では図23の端ノード符号化器の詳
細が示されている。端ノード符号化器は図24に示され
るような形で構成される。図21に示される128−2
136の各レベルにおいて、係数値は最初にレジスタセ
ット2400に記録される。ゼロ上位ビットの判定器2
402は、現在の出力ノードにおける下位ノードの情報
を持つ入力値2312を用いて、レジスタアレイ240
0内に記録された入力係数を表現するのに必要なビット
数を決定する役割を担っている。2組の入力の最大値は
判定されて、内部ノード符号化器(図23)にフィート
バックされる2314として出力される。図25にはゼ
ロ上位ビットの判定器の一形態が示されている。この判
定機は、すべての入力係数値の最上位ビットを判定する
ための比較器群と最大入力ノード値を判定するための比
較器群を備えている。比較器2504は現在の内部ノー
ド出力値2314を生成するために、部2500及び2
502における2つの出力の最大値を判定する。ここ
で、各レベルにおいて、多数のの入力信号が必要となら
ない場合が考えられる。この場合にはゼロ上位ビットの
判定器2402に影響を与えない0値を入力として利用
することができる。
細が示されている。端ノード符号化器は図24に示され
るような形で構成される。図21に示される128−2
136の各レベルにおいて、係数値は最初にレジスタセ
ット2400に記録される。ゼロ上位ビットの判定器2
402は、現在の出力ノードにおける下位ノードの情報
を持つ入力値2312を用いて、レジスタアレイ240
0内に記録された入力係数を表現するのに必要なビット
数を決定する役割を担っている。2組の入力の最大値は
判定されて、内部ノード符号化器(図23)にフィート
バックされる2314として出力される。図25にはゼ
ロ上位ビットの判定器の一形態が示されている。この判
定機は、すべての入力係数値の最上位ビットを判定する
ための比較器群と最大入力ノード値を判定するための比
較器群を備えている。比較器2504は現在の内部ノー
ド出力値2314を生成するために、部2500及び2
502における2つの出力の最大値を判定する。ここ
で、各レベルにおいて、多数のの入力信号が必要となら
ない場合が考えられる。この場合にはゼロ上位ビットの
判定器2402に影響を与えない0値を入力として利用
することができる。
【0090】図23において、内部ノード符号化器23
04は、ステートマシン2300の制御下で必要なとき
に内部ノード出力2308を再出力する役割と、必要な
ときに2312を端ノード符号化器にフィードバックす
るための端ノード符号化器出力値2314を記録する役
割を担っている。
04は、ステートマシン2300の制御下で必要なとき
に内部ノード出力2308を再出力する役割と、必要な
ときに2312を端ノード符号化器にフィードバックす
るための端ノード符号化器出力値2314を記録する役
割を担っている。
【0091】従って、図23のツリー構築部2200は
入力として係数を受け取り、出力として図21のツリー
構造を出力するということが明確になろう。
入力として係数を受け取り、出力として図21のツリー
構造を出力するということが明確になろう。
【0092】図22においては、ツリー符号化器はツリ
ーテーブル2202から図21の分割ツリー構造を読み
出し、符号化されたデータ1306を出力する役割を担
っている。ツリー符号化器2204は以前に示した、Pr
ocessNodeと呼ばれるアルゴリズムを実装する。またツ
リー符号化器はステートマシンと関連する記憶装置を備
え、前述のアルゴリズムを実装する回路の制御を行うこ
とが可能である。
ーテーブル2202から図21の分割ツリー構造を読み
出し、符号化されたデータ1306を出力する役割を担
っている。ツリー符号化器2204は以前に示した、Pr
ocessNodeと呼ばれるアルゴリズムを実装する。またツ
リー符号化器はステートマシンと関連する記憶装置を備
え、前述のアルゴリズムを実装する回路の制御を行うこ
とが可能である。
【0093】図26では、ツリー符号化器の一例が示さ
れている。4つの端ノードを伴った内部ノードが中間符
号化器に入力されると、内部ノード符号化器は要求され
たレベルの下位の重要なビットプレーンへ、0の個数と
1個の1を出力する。また、係数蓄積器2602に必要
なビット数も出力する。係数蓄積器は、4つの係数を受
け取り、それぞれ要求するビットを取り出し、それらを
ひとまとめにする。データストリーム結合器2604は
内部ノード符号化器2602から重要性の情報を受け取
り、係数蓄積器2602からの係数を圧縮してひとまと
めにする。尚、中間の子ノードを持つすべての内部ノー
ドに遭遇した場合には、重要性について情報を出力され
る。ツリー符号化器2204の制御は分割ツリーの構成
に従うステートマシンで構成することができる。
れている。4つの端ノードを伴った内部ノードが中間符
号化器に入力されると、内部ノード符号化器は要求され
たレベルの下位の重要なビットプレーンへ、0の個数と
1個の1を出力する。また、係数蓄積器2602に必要
なビット数も出力する。係数蓄積器は、4つの係数を受
け取り、それぞれ要求するビットを取り出し、それらを
ひとまとめにする。データストリーム結合器2604は
内部ノード符号化器2602から重要性の情報を受け取
り、係数蓄積器2602からの係数を圧縮してひとまと
めにする。尚、中間の子ノードを持つすべての内部ノー
ドに遭遇した場合には、重要性について情報を出力され
る。ツリー符号化器2204の制御は分割ツリーの構成
に従うステートマシンで構成することができる。
【0094】図35では第1の好適な実施の形態に関し
て、一連の係数の符号化方法が示されている。ステップ
3500ではすべての必要なパラメータが初期化され、
伝送された画像における一連の係数が入力される。次の
ステップ3502ではこれら一連の係数のツリー表現が
構成される。このツリーの構成は入力係数データを逆順
で読み込み、内部ノードすなわち2106,2150,
2118,2116,2104,2100の値を計算し
ていくことで始まり、ツリーの場所に対応して係数の値
を蓄積する。なるべくには、このデータは、すでに構築
されているツリーをバッファから読み出しているときに
もう片方のバッファをツリー構成のために使用できるよ
うな2重バッファに蓄積される。次のステップ3504
では構成済みのツリー表現が符号化される。この符号化
は以前に示されたProcessNodeのアルゴリズムを用い
る。処理はステップ3506で終了する。
て、一連の係数の符号化方法が示されている。ステップ
3500ではすべての必要なパラメータが初期化され、
伝送された画像における一連の係数が入力される。次の
ステップ3502ではこれら一連の係数のツリー表現が
構成される。このツリーの構成は入力係数データを逆順
で読み込み、内部ノードすなわち2106,2150,
2118,2116,2104,2100の値を計算し
ていくことで始まり、ツリーの場所に対応して係数の値
を蓄積する。なるべくには、このデータは、すでに構築
されているツリーをバッファから読み出しているときに
もう片方のバッファをツリー構成のために使用できるよ
うな2重バッファに蓄積される。次のステップ3504
では構成済みのツリー表現が符号化される。この符号化
は以前に示されたProcessNodeのアルゴリズムを用い
る。処理はステップ3506で終了する。
【0095】以上より、第1の好適な実施の形態が、係
数データの高速符号化用の効率的なデータ形式を生成
し、高速係数データ符号化を提供するハードウェアとし
て容易に実装できることが明確となろう。
数データの高速符号化用の効率的なデータ形式を生成
し、高速係数データ符号化を提供するハードウェアとし
て容易に実装できることが明確となろう。
【0096】2.3 第2の好適な実施の形態図27に、
符号化の各分割レベルにおける係数の組に分かれたウェ
ーブレット係数行列を示す。レベル2136(図21)
におけるA係数は符号化すべき最初の係数である。レベ
ル2134(図21)においてはB1、B2,B3のB
係数が符 号化され、C1−C4からなるC係数がレベル2132
(図21)において符号化され、以下、レベル2130
においてD係数、レベル2128においてE係数が符号
化される。このようなフォーマットは、第2の好適な実
施の形態における符号化器で用いられる。
符号化の各分割レベルにおける係数の組に分かれたウェ
ーブレット係数行列を示す。レベル2136(図21)
におけるA係数は符号化すべき最初の係数である。レベ
ル2134(図21)においてはB1、B2,B3のB
係数が符 号化され、C1−C4からなるC係数がレベル2132
(図21)において符号化され、以下、レベル2130
においてD係数、レベル2128においてE係数が符号
化される。このようなフォーマットは、第2の好適な実
施の形態における符号化器で用いられる。
【0097】図28では高速符号化器の一形態である2
800が示されており、これは最下位ビットプレーン2
804から最上位ビットプレーン2812のビットプレ
ーンに分割された係数行列を入力とする。各ビットプレ
ーンは、2814−2822の同一なビットプレーン部
へ転送される。ビットプレーン部の出力は統合化ロジッ
ク2824へ転送され、このロジックは係数データの符
号化された形を出力する。また出力は隣接したビットプ
レーン部に転送される。
800が示されており、これは最下位ビットプレーン2
804から最上位ビットプレーン2812のビットプレ
ーンに分割された係数行列を入力とする。各ビットプレ
ーンは、2814−2822の同一なビットプレーン部
へ転送される。ビットプレーン部の出力は統合化ロジッ
ク2824へ転送され、このロジックは係数データの符
号化された形を出力する。また出力は隣接したビットプ
レーン部に転送される。
【0098】図29においてはビットプレーン部281
4の一形態が示される。ビットプレーン部2814は、
入力として2902及び2904をとる。入力2902
は対応するビットプレーンの16ビット値であり、29
04は一つ前のビットプレーン部からのデータ有効ビッ
トA−Eである。ビットプレーン部はデータ有効ビット
A−Eからなる2906を次のビットプレーン部に転送
する。同様に、統合化ロジックへの出力は16の入力デ
ータビット2908及び5のデータ有効ビット2910
である。ビットプレーン部は次の論理方程式を実装す
る。尚、+は論理OR演算を示すものとする。
4の一形態が示される。ビットプレーン部2814は、
入力として2902及び2904をとる。入力2902
は対応するビットプレーンの16ビット値であり、29
04は一つ前のビットプレーン部からのデータ有効ビッ
トA−Eである。ビットプレーン部はデータ有効ビット
A−Eからなる2906を次のビットプレーン部に転送
する。同様に、統合化ロジックへの出力は16の入力デ
ータビット2908及び5のデータ有効ビット2910
である。ビットプレーン部は次の論理方程式を実装す
る。尚、+は論理OR演算を示すものとする。
【0099】 A=A’+BitA B=B’+(BitB1+BitB2+BitB3) C=C’+(BitC1+BitC2+BitC3) D=D’+(BitD1+BitD2+BitD3+BitD4) E=E’+(BitE1+BitE2+BitE3+BitE4) すなわち、ビットプレーン部は各組の係数A−Eが有効
である場合を判定している。
である場合を判定している。
【0100】図30においては図28の統合化ロジック
の一実装形態が示されている。統合化ロジックは入力デ
ータ有効ビットの組から開始アドレスを抽出する役割を
担っている、ABCD開始アドレス抽出器3000を備
える。また、あらかじめ決まった大きさの係数を保持す
る隣接部へ係数データを統合するために、一連のデータ
統合器3002−3010が提供されている。開始アド
レス3011及びデータ統合器3002−3010から
出力されたデータは、あらかじめ決まった出力サイズ3
016で正しくフォーマットされた係数ストリーム30
14の形でデータを結合する結合器3012に転送され
る。その後、係数ストリームデータは要求に応じて30
18を出力するため、出力記憶部3016へと転送され
る。
の一実装形態が示されている。統合化ロジックは入力デ
ータ有効ビットの組から開始アドレスを抽出する役割を
担っている、ABCD開始アドレス抽出器3000を備
える。また、あらかじめ決まった大きさの係数を保持す
る隣接部へ係数データを統合するために、一連のデータ
統合器3002−3010が提供されている。開始アド
レス3011及びデータ統合器3002−3010から
出力されたデータは、あらかじめ決まった出力サイズ3
016で正しくフォーマットされた係数ストリーム30
14の形でデータを結合する結合器3012に転送され
る。その後、係数ストリームデータは要求に応じて30
18を出力するため、出力記憶部3016へと転送され
る。
【0101】データ有効ビットが与えられれば、それぞ
れの係数の組A,B,C,D,Eの開始点を決定するこ
とができる。A,B,C,D,E開始点抽出器3000
の構造は図31に示されるような構成にすることができ
る。各係数構成要素A−Eのデータ有効ビットは対応す
る大きさを出力する装置3102に転送される。装置3
102は対応する最上位ビットを出力する。この処理は
各出力データ構成要素に対し繰り返し適用され、その出
力はルックアップテーブル3104で利用される。尚、
係数データの全体サイズ3108に加えて係数開始値A
開始点−E開始点を出力するように、ルックアップテー
ブル3104はあらかじめ計算しておくことができる。
れの係数の組A,B,C,D,Eの開始点を決定するこ
とができる。A,B,C,D,E開始点抽出器3000
の構造は図31に示されるような構成にすることができ
る。各係数構成要素A−Eのデータ有効ビットは対応す
る大きさを出力する装置3102に転送される。装置3
102は対応する最上位ビットを出力する。この処理は
各出力データ構成要素に対し繰り返し適用され、その出
力はルックアップテーブル3104で利用される。尚、
係数データの全体サイズ3108に加えて係数開始値A
開始点−E開始点を出力するように、ルックアップテー
ブル3104はあらかじめ計算しておくことができる。
【0102】図30においては、A,B,C,D,E開
始点抽出器からの出力は、データ統合器からの出力とと
もに、結合部3012に転送されている。
始点抽出器からの出力は、データ統合器からの出力とと
もに、結合部3012に転送されている。
【0103】図32には、図30における結合部301
2の詳細が示されている。結合部は一連の同一のベーグ
ルシフタ3200から構成されており、ベーグルシフタ
3200は対応する統合化器からの入力データ、たとえ
ば「A圧縮済データ」をラッチすることができる。入力
は、対応する開始入力(A開始点)に従って、正しい位
置に配置されるようにベーグルシフトされる。ベーグル
シフタ3200などの出力は、出力データとなる最終出
力形3018へと、一括して論理和演算される。加え
て、ルックアップテーブルからの全体サイズの値310
8はサイズデータ3204として出力される。
2の詳細が示されている。結合部は一連の同一のベーグ
ルシフタ3200から構成されており、ベーグルシフタ
3200は対応する統合化器からの入力データ、たとえ
ば「A圧縮済データ」をラッチすることができる。入力
は、対応する開始入力(A開始点)に従って、正しい位
置に配置されるようにベーグルシフトされる。ベーグル
シフタ3200などの出力は、出力データとなる最終出
力形3018へと、一括して論理和演算される。加え
て、ルックアップテーブルからの全体サイズの値310
8はサイズデータ3204として出力される。
【0104】図30では、出力データはその後、出力記
憶部3016に転送され、また、図32の全体サイズ値
3204に従ってベーグルシフトされ、要求に応じて最
終出力データ3018として出力記憶部3016(図3
0)から出力される。
憶部3016に転送され、また、図32の全体サイズ値
3204に従ってベーグルシフトされ、要求に応じて最
終出力データ3018として出力記憶部3016(図3
0)から出力される。
【0105】以上より、図28の装置は係数の出力符号
化を行う高速システムを提供しているといえる。係数プ
レーンは効果的に並列化して扱われ、並列処理中に統合
化も同時に行われる。さらに装置は、スループットを向
上させるために容易にパイプライン化できるような、構
造化されたパイプライン形式を実装している。
化を行う高速システムを提供しているといえる。係数プ
レーンは効果的に並列化して扱われ、並列処理中に統合
化も同時に行われる。さらに装置は、スループットを向
上させるために容易にパイプライン化できるような、構
造化されたパイプライン形式を実装している。
【0106】図36は、第2の実施の形態に基づいて、
一連の係数から符号化されたビットストリームを生成す
るための方法を示したフローチャートである。ステップ
3600では、すべての必要なパラメータが初期化され
る。次のステップ3602では、係数のブロックが入力
される。ここでは、この係数のブロックは、それぞれの
係数が8ビットである4x4係数配列のウェーブレット
変換係数であるとする。次のステップ3604では、係
数データはビットプレーンにグループ化される。図28
に示される高速符号化器の好適な実施の形態において
は、係数データはビットプレーンとしてグループ化さ
れ、ビットプレーン部2804および2812に入力さ
れる。次のステップ3606では、係数データは図27
に示されるような,B,C,D,Eそれぞれのグループ
内で、0及び非0の部分にグループ化される。たとえば
B内の係数データはは00011111の様にグループ
化される。はじめの3つの0は、すべて0であるB内の
第7、第6、第5のビットプレーンを示している。それ
に続く5つの1は少なくとも1つ非零の値を持つ、第
4,第3,第2,第1,第0のビットプレーンそれぞれ
を示している。次のステップ3608では、係数を含む
ビットプレーンが出力される。次のステップ3610で
はそれぞれのグループA,B,C,D,E内の0及び非
0のグループ化を指定するデータ有効ビットが出力され
る。グループA,B,C,D,Eに対応して、それぞれ
の出力されたビットプレーンに、5つのデータ有効ビッ
トが存在する。データ有効ビットは0/非0のグループ
化を示している。たとえば、前述の例では、第7のビッ
トプレーンのデータ有効ビットは1となる。次のステッ
プ3612では、符号化されたビットストリームを生成
するために、係数を含むビットプレーンはデータ有効ビ
ットを用いて統合化される。処理はステップ3614で
終了する。
一連の係数から符号化されたビットストリームを生成す
るための方法を示したフローチャートである。ステップ
3600では、すべての必要なパラメータが初期化され
る。次のステップ3602では、係数のブロックが入力
される。ここでは、この係数のブロックは、それぞれの
係数が8ビットである4x4係数配列のウェーブレット
変換係数であるとする。次のステップ3604では、係
数データはビットプレーンにグループ化される。図28
に示される高速符号化器の好適な実施の形態において
は、係数データはビットプレーンとしてグループ化さ
れ、ビットプレーン部2804および2812に入力さ
れる。次のステップ3606では、係数データは図27
に示されるような,B,C,D,Eそれぞれのグループ
内で、0及び非0の部分にグループ化される。たとえば
B内の係数データはは00011111の様にグループ
化される。はじめの3つの0は、すべて0であるB内の
第7、第6、第5のビットプレーンを示している。それ
に続く5つの1は少なくとも1つ非零の値を持つ、第
4,第3,第2,第1,第0のビットプレーンそれぞれ
を示している。次のステップ3608では、係数を含む
ビットプレーンが出力される。次のステップ3610で
はそれぞれのグループA,B,C,D,E内の0及び非
0のグループ化を指定するデータ有効ビットが出力され
る。グループA,B,C,D,Eに対応して、それぞれ
の出力されたビットプレーンに、5つのデータ有効ビッ
トが存在する。データ有効ビットは0/非0のグループ
化を示している。たとえば、前述の例では、第7のビッ
トプレーンのデータ有効ビットは1となる。次のステッ
プ3612では、符号化されたビットストリームを生成
するために、係数を含むビットプレーンはデータ有効ビ
ットを用いて統合化される。処理はステップ3614で
終了する。
【0107】2.4 第3の好適な実施の形態図33では
係数符号化器1305にお ける第3の好適な実施の形態の動作が示されている。第
3の好適な実施の形態では、入力データ1304はそれ
ぞれの係数が8ビットである4x4配列ブロックをもつ
と仮定する。第3の好適な実施の形態では、ピクセルデ
ータは係数符号化器に転送される。その後、最上位プレ
ーンから順に、一度に1つのビットプレーンが係数符号
化器に供給される。係数符号化器の主要な要素は、一連
のnumbitレジスタ3302、一連の最小ピクセルレジス
タ3304、及び1ピクセル統合器3306からなる。
numbitレジスタ3302は、係数符号化器1305へ新
しいブロックが転送されると、すべてリセットされる。
numbitレジスタは各係数用の16の1ビットレジスタ3
306を含み、ビットプレーン入力1304から最初の
データがセットされる。ビットプレーン番号カウンタ3
308は入力ビットプレーンをカウントダウンするため
に装備されている。また1ビットのレジスタがセットさ
れたときに対応するビットプレーン番号を記録する16
個の3ビットレジスタ群3310も装備されている。従
って1ビットのレジスタ3306は入力から1ビットを
受け取り、そのビットに対応するレベルが3ビットのレ
ジスタ3310でラッチされている時に1にラッチされ
る。一旦、1ビットレジスタ3306がセットされる
と、ラッチはこれ以上行われない。16個の3ビットの
番号3310は、現在のビットプレーン番号3308を
用いて出力値を比較する比較器群3312に出力され
る。ビットプレーン番号3308の内容が、numbitレジ
スタ3310内での対応する値か、それ以下の場合には
プレーンデータの値は対応する最小ピクセルレジスタ3
304の一つにラッチされる。従って、最小ピクセルレ
ジスタは出力される係数を記憶し、numbitレジスタはそ
れぞれの係数の有効ビット数を記憶する。ピクセル統合
化器3314は最小ピクセルレジスタ3304及びnumb
itレジスタ3302にアクセスする。ピクセル統合化器
3314はどのようにピクセルを統合するかを決定する
ために、numbitレジスタ及び最小ピクセルレジスタ両方
の値を読みとる。そしてピクセル統合化器の出力が所望
のビットストリームとなる。ピクセル統合化器3314
は「1.4 第2のSWEET画像圧縮方法の符号化処
理」に記述されている手順に従って、係数のそれぞれの
最上位ビットを決定するため、numbitレジスタ3302
から値を読み込む。また、最小係数値を出力するために
最小ピクセルレジスタから最小係数値および、有効ビッ
トの番号を示す0を読み込む。図34はそのようなピク
セル統合化器の例である。ピクセル統合化器3314
は、所定の方法で分割の構造を知り、numbitレジスタ3
302と最小ピクセルレジスタ3304から適切なピク
セルにアクセスする有限ステートマシン3400を備え
ている。たとえばDCピクセル値は、通常、最初に有限
ステートマシン3400によりアクセスされる。有限ス
テートマシン3400は、関連するnumbit値と最小ピク
セル値の検索を行う最小ピクセルレジスタ読み出し器3
402とnumbitレジスタ読み出し器3404に適切な場
所を指示する。有限ステートマシン3400はその後、
現在のビットレベルをnumbit値と比較する。初期状態で
は、現在のビットレベルは、ビットの最大値にセットさ
れる。numbit値が現在のビットレベルよりも小さい場合
には、有限ステートマシン3400は最初に現在のビッ
ト数とnumbit数の違いに対応する0を出力シフトレジス
タ3406に出力する。有限ステートマシン3400は
続いて、出力レジスタ3406に最小ピクセルビット値
を出力する。最後に有限ステートマシン3400は現在
のビットレベルをnumbitレベルに設定して、ヒープ34
08に格納する。しかしながら、numbit値が現在のビッ
ト値と等しい場合には、有限ステートマシン3400は
単に最小ピクセル値を出力するだけである。このように
して、ゼロ上位ビットの部分が係数を伴ってインターリ
ーブされる。 ここで、ブロックの次元がNxMであり、
これらは1ピクセルあたりKビットであるとする。ピク
セル統合化器が1回に4ピクセル統合できるとすると、
numbitレジスタ及び最小ピクセルレジスタをを満たすに
はKサイクル必要であり、ビットストリームを出力する
のにはNxM/4サイクルが必要である。 もちろん、ほか
にも多くのことなった装置が可能である。たとえば装置
は、最小ピクセルレジスタ及びnumbitレジスタが次の符
号化ブロックのデータによって満たされている間に、ピ
クセル統合化器3314が1つの符号化されたブロック
を出力するように、最小ピクセルレジスタ及びnumbitレ
ジスタの複写を行う形で修正を加えることができる。ま
たこの他にも、最小ピクセルレジスタ3304におい
て、高周波の係数を記録する記憶素子を減らすこともで
きる。この場合、もっとも右下のピクセルの大きさが、
記録できる限界を超えると、オーバーフローが生じてし
まう。この時のエラーは、次の方法によって消去あるい
は減らすことができる:1.ピクセルの大きさを決定す
るためにnumbitレジスタを使用し、出力ピクセルが同じ
大きさを持つように適切な場所に1を挿入する。2.ビ
ットプレーンを再検査する。ただし、このときに古いnu
mbitレジスタは再編され、右下のピクセルが通常より多
くの記憶素子を使うことができるようにピクセルを最小
ピクセルレジスタに記憶させる。尚、ピクセル統合化器
はピクセルの場所が変更されたことを認識するため、再
調整の必要がある。3.すべてのピクセル内のビットが
記憶できるように最小ピクセルレジスタの代わりにフル
ピクセルレジスタを用いる。これより、第3の好適な実
施の形態が係数データの高速符号化における効率的な形
式であり、高速係数符号化を提供するようにハードウェ
アによって簡単に実装できることが明らかとなった。
図37において、第3の好適な実施の形態に関する係数
ストリームを含む一連の係数の符号化方法に関するフロ
ーチャートが示される。簡単のためにこの方法を、8ビ
ット値の4x4配列を用いて解説する。ステップ370
0で処理は開始され、あらゆるパラメータが初期化され
る。次のステップ3702で、係数は一度に入力され、
処理は3704へと進む。ステップ3704で、最上位
ビット値は、現在符号化された領域内の各係数により決
定される。次のステップ3706で、最上位ビットより
も小さい値を持つ、領域内における係数のすべての部分
が記憶される。処理はつぎのステップ3706へと続
き、ここで一連の0と係数部が、図34を用いて説明し
た方法に従って出力される。処理はステップ3710で
終了する。
係数符号化器1305にお ける第3の好適な実施の形態の動作が示されている。第
3の好適な実施の形態では、入力データ1304はそれ
ぞれの係数が8ビットである4x4配列ブロックをもつ
と仮定する。第3の好適な実施の形態では、ピクセルデ
ータは係数符号化器に転送される。その後、最上位プレ
ーンから順に、一度に1つのビットプレーンが係数符号
化器に供給される。係数符号化器の主要な要素は、一連
のnumbitレジスタ3302、一連の最小ピクセルレジス
タ3304、及び1ピクセル統合器3306からなる。
numbitレジスタ3302は、係数符号化器1305へ新
しいブロックが転送されると、すべてリセットされる。
numbitレジスタは各係数用の16の1ビットレジスタ3
306を含み、ビットプレーン入力1304から最初の
データがセットされる。ビットプレーン番号カウンタ3
308は入力ビットプレーンをカウントダウンするため
に装備されている。また1ビットのレジスタがセットさ
れたときに対応するビットプレーン番号を記録する16
個の3ビットレジスタ群3310も装備されている。従
って1ビットのレジスタ3306は入力から1ビットを
受け取り、そのビットに対応するレベルが3ビットのレ
ジスタ3310でラッチされている時に1にラッチされ
る。一旦、1ビットレジスタ3306がセットされる
と、ラッチはこれ以上行われない。16個の3ビットの
番号3310は、現在のビットプレーン番号3308を
用いて出力値を比較する比較器群3312に出力され
る。ビットプレーン番号3308の内容が、numbitレジ
スタ3310内での対応する値か、それ以下の場合には
プレーンデータの値は対応する最小ピクセルレジスタ3
304の一つにラッチされる。従って、最小ピクセルレ
ジスタは出力される係数を記憶し、numbitレジスタはそ
れぞれの係数の有効ビット数を記憶する。ピクセル統合
化器3314は最小ピクセルレジスタ3304及びnumb
itレジスタ3302にアクセスする。ピクセル統合化器
3314はどのようにピクセルを統合するかを決定する
ために、numbitレジスタ及び最小ピクセルレジスタ両方
の値を読みとる。そしてピクセル統合化器の出力が所望
のビットストリームとなる。ピクセル統合化器3314
は「1.4 第2のSWEET画像圧縮方法の符号化処
理」に記述されている手順に従って、係数のそれぞれの
最上位ビットを決定するため、numbitレジスタ3302
から値を読み込む。また、最小係数値を出力するために
最小ピクセルレジスタから最小係数値および、有効ビッ
トの番号を示す0を読み込む。図34はそのようなピク
セル統合化器の例である。ピクセル統合化器3314
は、所定の方法で分割の構造を知り、numbitレジスタ3
302と最小ピクセルレジスタ3304から適切なピク
セルにアクセスする有限ステートマシン3400を備え
ている。たとえばDCピクセル値は、通常、最初に有限
ステートマシン3400によりアクセスされる。有限ス
テートマシン3400は、関連するnumbit値と最小ピク
セル値の検索を行う最小ピクセルレジスタ読み出し器3
402とnumbitレジスタ読み出し器3404に適切な場
所を指示する。有限ステートマシン3400はその後、
現在のビットレベルをnumbit値と比較する。初期状態で
は、現在のビットレベルは、ビットの最大値にセットさ
れる。numbit値が現在のビットレベルよりも小さい場合
には、有限ステートマシン3400は最初に現在のビッ
ト数とnumbit数の違いに対応する0を出力シフトレジス
タ3406に出力する。有限ステートマシン3400は
続いて、出力レジスタ3406に最小ピクセルビット値
を出力する。最後に有限ステートマシン3400は現在
のビットレベルをnumbitレベルに設定して、ヒープ34
08に格納する。しかしながら、numbit値が現在のビッ
ト値と等しい場合には、有限ステートマシン3400は
単に最小ピクセル値を出力するだけである。このように
して、ゼロ上位ビットの部分が係数を伴ってインターリ
ーブされる。 ここで、ブロックの次元がNxMであり、
これらは1ピクセルあたりKビットであるとする。ピク
セル統合化器が1回に4ピクセル統合できるとすると、
numbitレジスタ及び最小ピクセルレジスタをを満たすに
はKサイクル必要であり、ビットストリームを出力する
のにはNxM/4サイクルが必要である。 もちろん、ほか
にも多くのことなった装置が可能である。たとえば装置
は、最小ピクセルレジスタ及びnumbitレジスタが次の符
号化ブロックのデータによって満たされている間に、ピ
クセル統合化器3314が1つの符号化されたブロック
を出力するように、最小ピクセルレジスタ及びnumbitレ
ジスタの複写を行う形で修正を加えることができる。ま
たこの他にも、最小ピクセルレジスタ3304におい
て、高周波の係数を記録する記憶素子を減らすこともで
きる。この場合、もっとも右下のピクセルの大きさが、
記録できる限界を超えると、オーバーフローが生じてし
まう。この時のエラーは、次の方法によって消去あるい
は減らすことができる:1.ピクセルの大きさを決定す
るためにnumbitレジスタを使用し、出力ピクセルが同じ
大きさを持つように適切な場所に1を挿入する。2.ビ
ットプレーンを再検査する。ただし、このときに古いnu
mbitレジスタは再編され、右下のピクセルが通常より多
くの記憶素子を使うことができるようにピクセルを最小
ピクセルレジスタに記憶させる。尚、ピクセル統合化器
はピクセルの場所が変更されたことを認識するため、再
調整の必要がある。3.すべてのピクセル内のビットが
記憶できるように最小ピクセルレジスタの代わりにフル
ピクセルレジスタを用いる。これより、第3の好適な実
施の形態が係数データの高速符号化における効率的な形
式であり、高速係数符号化を提供するようにハードウェ
アによって簡単に実装できることが明らかとなった。
図37において、第3の好適な実施の形態に関する係数
ストリームを含む一連の係数の符号化方法に関するフロ
ーチャートが示される。簡単のためにこの方法を、8ビ
ット値の4x4配列を用いて解説する。ステップ370
0で処理は開始され、あらゆるパラメータが初期化され
る。次のステップ3702で、係数は一度に入力され、
処理は3704へと進む。ステップ3704で、最上位
ビット値は、現在符号化された領域内の各係数により決
定される。次のステップ3706で、最上位ビットより
も小さい値を持つ、領域内における係数のすべての部分
が記憶される。処理はつぎのステップ3706へと続
き、ここで一連の0と係数部が、図34を用いて説明し
た方法に従って出力される。処理はステップ3710で
終了する。
【0108】2.5 装置の代替的実施の形態本発明によ
る望ましい符号化器が、専用 のハードウェアに実装されるのに対して、符号化処理
は、図8に示されるような従来型の汎用コンピュータを
使用して行うことができ、図34,35,36の処理が
コンピュータ上のソフトウェアの形で実装できる。特
に、符号化方法のステップはコンピュータ上で実行され
るソフトウェアの命令により実現される。ソフトウェア
は、符号化方法を実行する部分とユーザインタフェース
を提供する部分の2つに分けられる。また、ソフトウェ
アは、たとえば以下に示されるようなストレージデバイ
スを含むコンピュータ用メディアに記録される。ソフト
ウェアはメディアからコンピュータ内に読み込まれて実
行される。このようなソフトウェアあるいはコンピュー
タプログラムが記録されたコンピュータ用メディアは、
コンピュータプログラム製品である。コンピュータで適
切にコンピュータプログラムを使用することは、発明の
実施の形態に従ってディジタル画像の符号化表現を符号
化するのに有効である。
る望ましい符号化器が、専用 のハードウェアに実装されるのに対して、符号化処理
は、図8に示されるような従来型の汎用コンピュータを
使用して行うことができ、図34,35,36の処理が
コンピュータ上のソフトウェアの形で実装できる。特
に、符号化方法のステップはコンピュータ上で実行され
るソフトウェアの命令により実現される。ソフトウェア
は、符号化方法を実行する部分とユーザインタフェース
を提供する部分の2つに分けられる。また、ソフトウェ
アは、たとえば以下に示されるようなストレージデバイ
スを含むコンピュータ用メディアに記録される。ソフト
ウェアはメディアからコンピュータ内に読み込まれて実
行される。このようなソフトウェアあるいはコンピュー
タプログラムが記録されたコンピュータ用メディアは、
コンピュータプログラム製品である。コンピュータで適
切にコンピュータプログラムを使用することは、発明の
実施の形態に従ってディジタル画像の符号化表現を符号
化するのに有効である。
【0109】コンピュータシステム800はコンピュー
タ802、ビデオディスプレイ816及び入力装置81
8,820から構成されている。さらに、コンピュータ
システム800はラインプリンタ、レーザプリンタ、プ
ロッタ等、多くのほかの機器を接続することができ、こ
れ以外の出力装置もコンピュータ802に接続できる。
コンピュータシステム800は、現代的な通信路やコン
ピュータネットワークのような、適切な通信チャネル8
30を使用する通信インターフェース808cによりほ
かのコンピュータに接続することができる。コンピュー
タネットワークにはインターネット、広域ネットワーク
(WAN)、狭域ネットワーク(LAN)などが含まれ
る。
タ802、ビデオディスプレイ816及び入力装置81
8,820から構成されている。さらに、コンピュータ
システム800はラインプリンタ、レーザプリンタ、プ
ロッタ等、多くのほかの機器を接続することができ、こ
れ以外の出力装置もコンピュータ802に接続できる。
コンピュータシステム800は、現代的な通信路やコン
ピュータネットワークのような、適切な通信チャネル8
30を使用する通信インターフェース808cによりほ
かのコンピュータに接続することができる。コンピュー
タネットワークにはインターネット、広域ネットワーク
(WAN)、狭域ネットワーク(LAN)などが含まれ
る。
【0110】コンピュータ802自体は、中央演算プロ
セッサ(今後は単にプロセッサと呼ぶ)804、ランダ
ムアクセスメモリ(RAM)及び読み出し専用メモリ
(ROM)を含むメモリ806、入力/出力(IO)イ
ンターフェース808a,808b、808c、ビデオ
インターフェース810、及び図8のブロック812に
一般的な形で示されている1つ以上の記録装置から構成
される。記録装置812は専門家によく知られている、
フロッピーディスク、ハードディスク、光磁気ディス
ク、CD−ROM、磁気テープなど多くの不揮発性記録
装置により構成することができる。804から812の
それぞれの構成要素は、通常、1つ以上の装置に、デー
タバス、アドレスバス、制御バスから構成される、バス
814を使用して接続される。
セッサ(今後は単にプロセッサと呼ぶ)804、ランダ
ムアクセスメモリ(RAM)及び読み出し専用メモリ
(ROM)を含むメモリ806、入力/出力(IO)イ
ンターフェース808a,808b、808c、ビデオ
インターフェース810、及び図8のブロック812に
一般的な形で示されている1つ以上の記録装置から構成
される。記録装置812は専門家によく知られている、
フロッピーディスク、ハードディスク、光磁気ディス
ク、CD−ROM、磁気テープなど多くの不揮発性記録
装置により構成することができる。804から812の
それぞれの構成要素は、通常、1つ以上の装置に、デー
タバス、アドレスバス、制御バスから構成される、バス
814を使用して接続される。
【0111】ビデオインターフェース810はビデオデ
ィスプレイ816に接続されており、表示するビデオ信
号をコンピュータ802からビデオディスプレイ816
に出力する。コンピュータを操作するためのユーザの入
力は1つ以上の入力装置808bにより入力される。操
作者はたとえばキーボード、あるいはマウスのようなポ
インティングデバイスを入力装置として使用可能であ
る。
ィスプレイ816に接続されており、表示するビデオ信
号をコンピュータ802からビデオディスプレイ816
に出力する。コンピュータを操作するためのユーザの入
力は1つ以上の入力装置808bにより入力される。操
作者はたとえばキーボード、あるいはマウスのようなポ
インティングデバイスを入力装置として使用可能であ
る。
【0112】システム800は単に説明の目的で用いら
れるものであり、これ以外のシステム構成もこの発明の
精神及び範囲から逸脱せずに用いることができる。この
実施の形態が実行される典型的なコンピュータとして
は、IBM−PC/ATおよび互換機、マッキントッシ
ュ・ファミリーのPCや、SUNのSparc Station相当
のものがある。これらのコンピュータは発明の実施の形
態が実行されるであろうコンピュータの例にすぎない。
通常、今後記述される実施の形態における処理はコンピ
ュータ用メディアとして(一般的な形で図8の812に
示されるような)ハードディスク、に記録されたソフト
ウェアあるいはプログラムであり、プロセッサ804に
より制御されたり、読み込まれたりする。プログラム、
ピクセルデータおよびネットワークから取り込まれたデ
ータの中間記憶は、おそらくハードディスク812に接
続されているであろう半導体メモリ806によって実現
される。
れるものであり、これ以外のシステム構成もこの発明の
精神及び範囲から逸脱せずに用いることができる。この
実施の形態が実行される典型的なコンピュータとして
は、IBM−PC/ATおよび互換機、マッキントッシ
ュ・ファミリーのPCや、SUNのSparc Station相当
のものがある。これらのコンピュータは発明の実施の形
態が実行されるであろうコンピュータの例にすぎない。
通常、今後記述される実施の形態における処理はコンピ
ュータ用メディアとして(一般的な形で図8の812に
示されるような)ハードディスク、に記録されたソフト
ウェアあるいはプログラムであり、プロセッサ804に
より制御されたり、読み込まれたりする。プログラム、
ピクセルデータおよびネットワークから取り込まれたデ
ータの中間記憶は、おそらくハードディスク812に接
続されているであろう半導体メモリ806によって実現
される。
【0113】ある場合には、プログラムはCD−ROM
あるいはフロッピーディスク(いずれもブロック812
に一般的な形で示されている)に符号化されたものとし
てユーザが与えることもできるし、また代わりに、たと
えばコンピュータに接続されたモデムによって、ネット
ワークから読み出すこともできる。さらに、ソフトウェ
アは磁気テープ、ROMあるいは集積回路、光磁気ディ
スク、コンピュータとほかの装置間の無線あるいは赤外
線伝送チャネル、PCMICAのようなコンピュータ用
カード、ウェブサイトや電子メール等を含むインターネ
ット及びイントラネットのような読み出し可能な各種メ
ディアからコンピュータシステム800にロードするこ
とも可能である。尚、これらは単にコンピュータで読み
とり可能なメディアの例にすぎず、コンピュータで読み
出し可能なほかのメディアも発明の範囲及び精神から逸
脱しない範囲で利用が可能である。
あるいはフロッピーディスク(いずれもブロック812
に一般的な形で示されている)に符号化されたものとし
てユーザが与えることもできるし、また代わりに、たと
えばコンピュータに接続されたモデムによって、ネット
ワークから読み出すこともできる。さらに、ソフトウェ
アは磁気テープ、ROMあるいは集積回路、光磁気ディ
スク、コンピュータとほかの装置間の無線あるいは赤外
線伝送チャネル、PCMICAのようなコンピュータ用
カード、ウェブサイトや電子メール等を含むインターネ
ット及びイントラネットのような読み出し可能な各種メ
ディアからコンピュータシステム800にロードするこ
とも可能である。尚、これらは単にコンピュータで読み
とり可能なメディアの例にすぎず、コンピュータで読み
出し可能なほかのメディアも発明の範囲及び精神から逸
脱しない範囲で利用が可能である。
【0114】以上は、本発明におけるいくつかの実施の
形態を示したにすぎず、発明の範囲と精神から逸脱しな
い範囲で当業者は修正や変更を加えることも可能であ
る。従って、上述した実施の形態はあらゆる面で説明の
ためのものであり、これに制限されるものでない。
形態を示したにすぎず、発明の範囲と精神から逸脱しな
い範囲で当業者は修正や変更を加えることも可能であ
る。従って、上述した実施の形態はあらゆる面で説明の
ためのものであり、これに制限されるものでない。
【図1】図1は、本特許出願で説明する画像の表現技術
を示す高レベルのブロック図である。
を示す高レベルのブロック図である。
【図2】図2は、本特許出願で説明する分割を示す図で
ある。
ある。
【図3】図3は、本特許出願で説明する画像の表現、す
なわち符号化の方法の示すフローチャートである。
なわち符号化の方法の示すフローチャートである。
【図4】図4は、図3における一領域の符号化ステップ
を示す詳細なフローチャートである。
を示す詳細なフローチャートである。
【図5】図5は、図3の方法に従って生成される画像の
符号化表現の復号化の方法を示すフローチャートであ
る。
符号化表現の復号化の方法を示すフローチャートであ
る。
【図6】図6は、図5における一領域の復号化の段階を
示す詳細なフローチャートである。
示す詳細なフローチャートである。
【図7】図7は、図3の符号化および復号化方法におけ
る、2次元8係数の領域の処理を示す図である。
る、2次元8係数の領域の処理を示す図である。
【図8】図8は、汎用コンピュータのブロック図であ
る。
る。
【図9】図9は、本特許の応用で述べられている画像の
表現方法、すなわち符号化の別の方法を示すフローチャ
ートである。
表現方法、すなわち符号化の別の方法を示すフローチャ
ートである。
【図10】図10は、本特許の応用で述べられている画
像の表現方法、すなわち符号化の別の方法を示すフロー
チャートである。
像の表現方法、すなわち符号化の別の方法を示すフロー
チャートである。
【図11】図11は、本特許の応用で述べられている画
像の表現方法、すなわち符号化の別の方法を示すフロー
チャートである。
像の表現方法、すなわち符号化の別の方法を示すフロー
チャートである。
【図12】図12は、本特許の応用で述べられている画
像の表現方法、すなわち符号化の別の方法を示すフロー
チャートである。
像の表現方法、すなわち符号化の別の方法を示すフロー
チャートである。
【図13】図13は、ウェーブレット変換係数符号化器
の構成を示す図である。
の構成を示す図である。
【図14】図14は、第1レベルの離散ウェーブレット
変換処理を示す図である。
変換処理を示す図である。
【図15】図15は、第2レベルの離散ウェーブレット
変換処理を示す図である。
変換処理を示す図である。
【図16】図16は、フルレベルの離散ウェーブレット
変換処理を示す図である。
変換処理を示す図である。
【図17】図17は、ブロック符号化処理を示す図であ
る。
る。
【図18】図18は、4×4ブロックの符号化方法の一
例を示す図である。
例を示す図である。
【図19】図19は、符号化の方法論を示す図である。
【図20】図20は、係数の出力処理を示す図である。
【図21】図21は、第1、第2、第3の好適な実施の
形態において用いられている分割ツリーを示す図であ
る。
形態において用いられている分割ツリーを示す図であ
る。
【図22】図22は、第1の好適な実施の形態における
係数符号化器の構造を示す図である。
係数符号化器の構造を示す図である。
【図23】図23は、第1の好適な実施の形態における
ツリー構築部の構造を示す図である。
ツリー構築部の構造を示す図である。
【図24】図24は、第1の好適な実施の形態における
端ノード符号化器の構造を示す図である。
端ノード符号化器の構造を示す図である。
【図25】図25は、第1の好適な実施の形態における
ゼロ上位ビットの判定部の構造を示す図である。
ゼロ上位ビットの判定部の構造を示す図である。
【図26】図26は、第1の好適な実施の形態における
ツリー符号化器の構造を示す図である。
ツリー符号化器の構造を示す図である。
【図27】図27は、第2の好適な実施の形態において
用いられる、係数をグループ化する分割を示す図であ
る。
用いられる、係数をグループ化する分割を示す図であ
る。
【図28】図28は、第2の好適な実施の形態における
符号化器の構造を示す図である。
符号化器の構造を示す図である。
【図29】図29は、単一のビットプレーン部の構造を
示す図である。
示す図である。
【図30】図30は、第2の好適な実施の形態におけ
る、符号化器の統合化ロジックの構造を示す図である。
る、符号化器の統合化ロジックの構造を示す図である。
【図31】図31は、図30のA,B,C,D,E開始
点抽出器の構造を示す図である。
点抽出器の構造を示す図である。
【図32】図32は、図30の結合部の構造を示す図で
ある。
ある。
【図33】図33は、第3の好適な実施の形態における
係数符号化器の構造を示す図である。
係数符号化器の構造を示す図である。
【図34】図34は、図33の係数符号化器で用いられ
るピクセル統合化器を示す図である。
るピクセル統合化器を示す図である。
【図35】図35は、第1の好適な実施の形態における
一連の係数を符号化するフローチャートである。
一連の係数を符号化するフローチャートである。
【図36】図36は、第2の好適な実施の形態における
一連の係数から符号化されたビットストリームを生成す
るフローチャートである。
一連の係数から符号化されたビットストリームを生成す
るフローチャートである。
【図37】図37は、第3の好適な実施の形態における
一連の係数から符号化されたビットストリームを生成す
るフローチャートである。
一連の係数から符号化されたビットストリームを生成す
るフローチャートである。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 000001007 キヤノン株式会社 東京都大田区下丸子3丁目30番2号 (72)発明者 ドミニック ウィップ オーストラリア国 2113 ニュー サウス ウェールズ州,ノース ライド,トーマ ス ホルト ドライブ 1 キヤノン イ ンフォメーション システムズ リサーチ オーストラリア プロプライエタリー リミテツド内 (72)発明者 テレバー ロバート エルボーン オーストラリア国 2113 ニュー サウス ウェールズ州,ノース ライド,トーマ ス ホルト ドライブ 1 キヤノン イ ンフォメーション システムズ リサーチ オーストラリア プロプライエタリー リミテツド内 (72)発明者 ハイレン パテル オーストラリア国 2113 ニュー サウス ウェールズ州,ノース ライド,トーマ ス ホルト ドライブ 1 キヤノン イ ンフォメーション システムズ リサーチ オーストラリア プロプライエタリー リミテツド内
Claims (24)
- 【請求項1】 所定サイズの係数列をその係数のコンパ
クト表現に符号化する装置であって、 係数値を表す端ノード、および現在の内部ノードの端ノ
ードと子ノードとを符号化するために必要なビット数を
表す内部ノードを持つ係数のツリー表現を構築するツリ
ー構築手段と、 前記係数の前記コンパクト表現を含むデータストリーム
を生成するために前記構築されたツリー表現を符号化す
るツリー符号化手段とを備えることを特徴とする符号化
装置。 - 【請求項2】 前記ツリー表現を記憶するための前記ツ
リー構築手段と前記ツリー符号化手段とを相互結合して
いるツリーバッファ手段をさらに具備することを特徴と
する請求項第1項記載の符号化装置。 - 【請求項3】 前記ツリーバッファ手段は少なくとも2
つのツリー表現を記憶する手段を具備するとともに、そ
のツリーバッファ手段は、前記ツリー構築手段によって
前もって生成された前記ツリー表現の第2番目を読み出
す間に、前記ツリー表現の第1番目を作成することを特
徴とする請求項第2項記載の装置。 - 【請求項4】 前記係数はウェーブレット係数を含むこ
とを特徴とする請求項第1項記載の装置。 - 【請求項5】 所定サイズの係数列をその係数のコンパ
クト表現に符号化する方法であって、係数値を表す端ノ
ード、および現在の内部ノードの端ノードと子ノードと
を符号化するために必要なビット数を表す内部ノードを
持つ係数のツリー表現を構築し、 前記係数の前記コンパクト表現を含むデータストリーム
を生成するために前記構築されたツリー表現を符号化す
る符号方法。 - 【請求項6】 当該構築ステップは最下位の端ノードか
ら下位優先の順で当該ツリーを構築することを特徴とす
る請求項第5項記載の方法。 - 【請求項7】 前記符号化ステップが前記データストリ
ームを生成するために広がり優先の順で前記ツリー表現
を符号化することを特徴とする請求項第5項記載の方
法。 - 【請求項8】 前記係数列を複数の係数グループに分割
し、 前記構築ステップは前記複数の係数グループを順に走査
し、1つの端ノードにおけるグループの係数値をそれぞ
れのグループ毎に記憶し、 グループの係数の最上位ビットをそれぞれのグループに
対して決定し、前記内部ノードにそれを記憶するステッ
プを有する請求項第5項記載の符号化方法。 - 【請求項9】 所定サイズの係数列をその係数のコンパ
クト表現に符号化するためのコンピュータプログラムを
記憶するコンピュータ読み取り可能な媒体を含むコンピ
ュータプログラム製品であって、 係数値を表す端ノード、および現在の内部ノードの端ノ
ードと子ノードとを符号化するために必要なビット数を
表す内部ノードを持つ係数のツリー表現を構築するツリ
ー構築手段と、 前記係数の前記コンパクト表現を含むデータストリーム
を生成するために前記構築されたツリー表現を符号化す
るツリー符号化手段とを備えることを特徴とするコンピ
ュータプログラム製品。 - 【請求項10】 前記構築手段は最下位の端ノードから
下位優先の順で当該ツリーを構築することを特徴とする
請求項第9項記載のコンピュータプログラム製品。 - 【請求項11】 前記符号化手段が前記データストリー
ムを生成するために広がり優先の順で前記ツリー表現を
符号化することを特徴とする請求項第9項記載のコンピ
ュータプログラム製品。 - 【請求項12】 前記係数列を複数の係数グループに分
割し、 前記構築手段は前記複数の係数グループを順に走査する
手段と、 1つの端ノードにおけるグループの係数値をそれぞれの
グループ毎に記憶する手段と、 グループの係数の最上位ビットをそれぞれのグループに
対して決定し、前記内部ノードにそれを記憶する手段と
を有する請求項第9項記載のコンピュータプログラム製
品。 - 【請求項13】 係数から符号化済ビットストリームを
生成するための装置であって、 前記係数列を入力するためのビットプレーン入力手段
と、 前記ビットプレーン入力手段と相互接続されると共に互
いに相互接続され、あらかじめ決まったグループ数に前
記係数データを分離し、さらにそれぞれのグループ内の
係数を上位ゼロの部分と上位ゼロでない部分に分離し、
ビットプレーンごとに前記ビットデータをビットプレー
ンに出力し、さらに、前記グループ化を示す信号を出力
する、複数のビットデータ有効部と、 前記符号化されたビットストリームを前記ビットデータ
有効部の出力からの連続したストリームへパックするパ
ッキングロジック手段とを具備することを特徴とする符
号化装置。 - 【請求項14】 前記係数はデータのウェーブレット分
解を含み、前記グループは前記のウェーブレット分解の
サブバンドを含むことを特徴とする請求項第13項記載
の符号化装置。 - 【請求項15】 前記パッキングロジックはさらに、前
記グループをパックしてパックされたグループを生成す
るパッキング手段と、前記各グループ内で開始アドレス
を抽出するための開始アドレス抽出手段と、前記パッキ
ング手段と前記開始アドレス抽出手段に相互接続され、
前記パックされたグループを連続的な符号化されたビッ
トストリームにパックする結合手段とを備える請求項第
13項記載の符号化装置。 - 【請求項16】 係数列から符号化されたビットストリ
ームを生成する方法であって、前記係数列を入力し、前
記係数データを所定数のビットプレーンへグループ化
し、それぞれのグループ内の前記係数を上位ゼロ部分と
上位ゼロビットではない部分へグループ化し、ビットプ
レーンのグループ内の前記係数列を出力し、各グループ
内の前記係数の前記グループ化を示すデータ有効ビット
を出力し、前記符号化済ビットストリームを生成するた
めに前記データ有効ビットを用いて係数列をパックする
符号化方法。 - 【請求項17】 前記係数はデータのウェーブレット分
解を含み、前記グループは前記のウェーブレット分解の
サブバンドを含むことを特徴とする請求項第16項記載
の符号化方法。 - 【請求項18】 前記パッキングステップはさらに、前
記グループをパックしてパックされたグループを生成
し、前記各グループ内で開始アドレスを抽出し、前記パ
ックされたグループを結合し、前記符号化されたビット
ストリームを生成する第16項記載の符号化方法。 - 【請求項19】 係数列から符号化されたビットストリ
ームを生成するためのコンピュータプログラムが記録さ
れたコンピュータで読みとり可能なメディアを含むコン
ピュータプログラム製品であって、前記係数列を入力す
る入力手段と、前記係数データを所定数のビットプレー
ンへグループ化する第1グループ手段と、それぞれのグ
ループ内の前記係数を上位ゼロ部分と上位ゼロビットで
はない部分へグループ化する第2グループ手段と、ビッ
トプレーンのグループ内の前記係数列を出力する出力手
段と、各グループ内の前記係数の前記グループ化を示す
データ有効ビットを出力する出力手段と、前記符号化済
ビットストリームを生成するために前記データ有効ビッ
トを用いて係数列をパックするパッキング手段とを含
む、コンピュータプログラム製品。 - 【請求項20】 前記係数はデータのウェーブレット分
解を含み、前記グループは前記のウェーブレット分解の
サブバンドを含むことを特徴とする請求項第19項記載
のコンピュータプログラム製品。 - 【請求項21】 前記パッキング手段はさらに、前記グ
ループをパックしてパックされたグループを生成するパ
ッキング手段と、前記各グループ内で開始アドレスを抽
出する抽出手段と、前記パックされたグループを結合
し、前記符号化されたビットストリームを生成する結合
手段とを含む請求項第19項記載のコンピュータプログ
ラム製品。 - 【請求項22】 各係数が所定のビット数で表現される
係数ストリームを含む係数列から符号化されたビットス
トリームを生成するための方法であって、前記係数であ
るビットプレーンを一度に入力し、前記ビットプレーン
からそれぞれの前記係数の最上位ビット決定し、最上位
ビットよりも小さな前記係数の部分を記憶し、前記最上
位ビットの決定および前記係数の前記部分を利用して、
インターリーブされた係数の大きさの部分と係数部分と
のストリームを含む、復号可能なインターリーブされた
コンパクトな形式の前記係数ストリームを符号化する符
号化する方法。 - 【請求項23】 係数列を符号化するための符号化装置
であって、前記係数列であるビットプレーンを一度に入
力する入力手段と、当該入力手段に相互接続され、前記
係数それぞれの最上位ビットを決定して記憶するビット
プレーンの大きさ決定する手段と、当該入力手段に相互
接続され、前記係数のより下位の係数を記憶するための
係数記憶手段と、前記係数記憶手段及び前記ビットプレ
ーンの大きさ決定手段に相互接続されて、値を読み込ん
でインターリーブされた係数の大きさを示す部分及び係
数部分のストリームを含む復号可能なインターリーブさ
れたコンパクトな形式の前記係数ストリームを生成する
ピクセルパッキング手段とを備える符号化装置。 - 【請求項24】各係数が所定のビット数で表されている
係数ストリームを含む係数群を符号化するための、コン
ピュータで読みとり可能なメディアに記録されたプログ
ラムを含む、コンピュータプログラム製品であって、前
記係数であるビットプレーンを一度に入力する入力手段
と、前記ビットプレーンからそれぞれの前記係数の最上
位ビット決定する決定手段と、最上位ビットよりも小さ
な前記係数の部分を記憶する記憶手段と、前記最上位ビ
ットの決定および前記係数の前記部分を利用して、イン
ターリーブされた係数の大きさの部分と係数部分とのス
トリームを含む、復号可能なインターリーブされたコン
パクトな形式の前記係数ストリームを符号化する符号化
手段とを含むコンピュータプログラム製品。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU9518 | 1990-04-09 | ||
AU9517 | 1997-09-29 | ||
AU9516 | 1997-09-29 | ||
AUPO9517A AUPO951797A0 (en) | 1997-09-29 | 1997-09-29 | An encoder method and architecture |
AUPO9518A AUPO951897A0 (en) | 1997-09-29 | 1997-09-29 | An encoder method and architecture |
AUPO9516A AUPO951697A0 (en) | 1997-09-29 | 1997-09-29 | An encoder method and architecture |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11163733A true JPH11163733A (ja) | 1999-06-18 |
Family
ID=27158044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10274697A Withdrawn JPH11163733A (ja) | 1997-09-29 | 1998-09-29 | 符号化方法および装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6266450B1 (ja) |
EP (1) | EP0905978A3 (ja) |
JP (1) | JPH11163733A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6839003B2 (en) | 2000-05-02 | 2005-01-04 | Michael Soliman | Method and device for compressing and/or decompressing data as well as for analyzing and representing data |
DE10021282B4 (de) * | 2000-05-02 | 2007-04-26 | Michael Soliman | Verfahren und Vorrichtung zur Kompression und/oder Dekompression von Daten |
US8164492B2 (en) | 2009-05-04 | 2012-04-24 | Touch Technologies, Inc. | Apparatus and method for fast data encoding and decoding |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6873734B1 (en) * | 1994-09-21 | 2005-03-29 | Ricoh Company Ltd | Method and apparatus for compression using reversible wavelet transforms and an embedded codestream |
US6549666B1 (en) * | 1994-09-21 | 2003-04-15 | Ricoh Company, Ltd | Reversible embedded wavelet system implementation |
US6778709B1 (en) * | 1999-03-12 | 2004-08-17 | Hewlett-Packard Development Company, L.P. | Embedded block coding with optimized truncation |
US6678419B1 (en) * | 1999-03-26 | 2004-01-13 | Microsoft Corporation | Reordering wavelet coefficients for improved encoding |
US6370197B1 (en) * | 1999-07-23 | 2002-04-09 | Memorylink Corporation | Video compression scheme using wavelets |
US7065253B2 (en) * | 1999-09-03 | 2006-06-20 | Intel Corporation | Wavelet zerotree coding of ordered bits |
US6834123B2 (en) | 2001-05-29 | 2004-12-21 | Intel Corporation | Method and apparatus for coding of wavelet transformed coefficients |
US6956903B2 (en) | 2001-05-29 | 2005-10-18 | Intel Corporation | Method and apparatus for three-dimensional wavelet transform |
US6671413B1 (en) * | 2000-01-24 | 2003-12-30 | William A. Pearlman | Embedded and efficient low-complexity hierarchical image coder and corresponding methods therefor |
AUPQ630200A0 (en) * | 2000-03-16 | 2000-04-15 | Canon Kabushiki Kaisha | Wavelet filtering |
JP4386224B2 (ja) * | 2000-06-09 | 2009-12-16 | キヤノン株式会社 | データ転送装置及びその方法 |
GB0019121D0 (en) * | 2000-08-03 | 2000-09-27 | Wave Limited M | Signal compression and decompression |
AUPQ982400A0 (en) | 2000-09-01 | 2000-09-28 | Canon Kabushiki Kaisha | Entropy encoding and decoding |
AUPR192700A0 (en) * | 2000-12-06 | 2001-01-04 | Canon Kabushiki Kaisha | Storing coding image data in storage of fixed memory size |
US6898323B2 (en) * | 2001-02-15 | 2005-05-24 | Ricoh Company, Ltd. | Memory usage scheme for performing wavelet processing |
US7062101B2 (en) * | 2001-03-30 | 2006-06-13 | Ricoh Co., Ltd. | Method and apparatus for storing bitplanes of coefficients in a reduced size memory |
US7190840B2 (en) * | 2002-01-07 | 2007-03-13 | Hewlett-Packard Development Company, L.P. | Transform coefficient compression using multiple scans |
AU2003900531A0 (en) * | 2003-01-30 | 2003-02-20 | Canon Kabushiki Kaisha | Compression into a fixed buffer |
JP4105577B2 (ja) | 2003-03-28 | 2008-06-25 | 株式会社リコー | 画像処理装置 |
US20050058358A1 (en) * | 2003-07-02 | 2005-03-17 | Zbiciak Joseph R. | Method for planar processing of wavelet zero-tree data |
US7352903B2 (en) * | 2004-08-17 | 2008-04-01 | Pegasus Imaging Corporation | Methods and apparatus for implementing JPEG 2000 encoding operations |
GB2429593A (en) | 2005-08-26 | 2007-02-28 | Electrosonic Ltd | Data compressing using a wavelet compression scheme |
KR102445274B1 (ko) | 2012-10-01 | 2022-09-20 | 지이 비디오 컴프레션, 엘엘씨 | 향상 레이어에서 변환 계수 블록들의 서브블록-기반 코딩을 이용한 스케일러블 비디오 코딩 |
US9992252B2 (en) | 2015-09-29 | 2018-06-05 | Rgb Systems, Inc. | Method and apparatus for adaptively compressing streaming video |
GB2545503B (en) | 2015-12-18 | 2020-04-08 | Imagination Tech Ltd | Lossy data compression |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4464650A (en) * | 1981-08-10 | 1984-08-07 | Sperry Corporation | Apparatus and method for compressing data signals and restoring the compressed data signals |
US5343554A (en) * | 1988-05-20 | 1994-08-30 | John R. Koza | Non-linear genetic process for data encoding and for solving problems using automatically defined functions |
US5087913A (en) * | 1990-08-27 | 1992-02-11 | Unisys Corporation | Short-record data compression and decompression system |
EP0567668A1 (en) * | 1992-04-27 | 1993-11-03 | International Business Machines Corporation | A computer system for retrieval of information |
US5412741A (en) * | 1993-01-22 | 1995-05-02 | David Sarnoff Research Center, Inc. | Apparatus and method for compressing information |
US5867602A (en) * | 1994-09-21 | 1999-02-02 | Ricoh Corporation | Reversible wavelet transform and embedded codestream manipulation |
DE69633129T2 (de) * | 1995-10-25 | 2005-08-04 | Sarnoff Corp. | Waveletbaum-bildcoder mit überlappenden bildblöcken |
US5734833A (en) * | 1996-03-12 | 1998-03-31 | Hewlett-Packard Company | Shared communications channel with enhanced reservation and collision resolution protocols allows any subset of stations to transmit data after collision occured in contention slot |
AUPO472897A0 (en) * | 1997-01-22 | 1997-02-20 | Canon Information Systems Research Australia Pty Ltd | A method for digital image compression |
US6041053A (en) * | 1997-09-18 | 2000-03-21 | Microsfot Corporation | Technique for efficiently classifying packets using a trie-indexed hierarchy forest that accommodates wildcards |
-
1998
- 1998-09-28 EP EP98307836A patent/EP0905978A3/en not_active Withdrawn
- 1998-09-29 JP JP10274697A patent/JPH11163733A/ja not_active Withdrawn
- 1998-09-29 US US09/161,769 patent/US6266450B1/en not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6839003B2 (en) | 2000-05-02 | 2005-01-04 | Michael Soliman | Method and device for compressing and/or decompressing data as well as for analyzing and representing data |
DE10021282B4 (de) * | 2000-05-02 | 2007-04-26 | Michael Soliman | Verfahren und Vorrichtung zur Kompression und/oder Dekompression von Daten |
US8164492B2 (en) | 2009-05-04 | 2012-04-24 | Touch Technologies, Inc. | Apparatus and method for fast data encoding and decoding |
Also Published As
Publication number | Publication date |
---|---|
EP0905978A3 (en) | 2000-04-12 |
EP0905978A2 (en) | 1999-03-31 |
US6266450B1 (en) | 2001-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH11163733A (ja) | 符号化方法および装置 | |
Schwartz et al. | Implementation of compression with reversible embedded wavelets | |
US7227999B2 (en) | Printing system application using J2K | |
JP3792789B2 (ja) | 符号化装置 | |
US5881176A (en) | Compression and decompression with wavelet style and binary style including quantization by device-dependent parser | |
JP3693988B2 (ja) | 通信管理システム及び通信管理方法 | |
US5966465A (en) | Compression/decompression using reversible embedded wavelets | |
JP3853758B2 (ja) | 画像符号化装置 | |
US7016545B1 (en) | Reversible embedded wavelet system implementation | |
US6671413B1 (en) | Embedded and efficient low-complexity hierarchical image coder and corresponding methods therefor | |
JP2000174632A (ja) | 埋め込み符号化/復号化方法及びシステム | |
Siddeq et al. | A novel image compression algorithm for high resolution 3D reconstruction | |
JPH11225076A (ja) | データ圧縮方法 | |
US7346218B2 (en) | Method and apparatus for encoding and decoding subband decompositions of signals | |
KR100733949B1 (ko) | 유한 알파벳 데이터의 비손실 적응 인코딩 | |
US6606416B1 (en) | Encoding method and apparatus for representing a digital image | |
WO2005057937A1 (en) | Compressing image data | |
JPH11225075A (ja) | 符号化方法及び装置 | |
Sandhu et al. | Matlab Based Image Compression Using Various Algorithms | |
Wagh et al. | Design & implementation of JPEG2000 encoder using VHDL | |
AU727894B2 (en) | An encoding method and apparatus | |
Negi et al. | Performance Analysis of Recent Algorithms for Compression of Various Medical Images | |
US20110091119A1 (en) | Coding apparatus and coding method | |
Bilgin et al. | JPEG2000: Highly scalable image compression | |
Deng | An interpolative subband coding algorithm for lossless image compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060110 |