[go: up one dir, main page]

JP2006126810A - 後方適応規則を用いた整数データの無損失適応Golomb−Rice符号化および復号化 - Google Patents

後方適応規則を用いた整数データの無損失適応Golomb−Rice符号化および復号化 Download PDF

Info

Publication number
JP2006126810A
JP2006126810A JP2005277829A JP2005277829A JP2006126810A JP 2006126810 A JP2006126810 A JP 2006126810A JP 2005277829 A JP2005277829 A JP 2005277829A JP 2005277829 A JP2005277829 A JP 2005277829A JP 2006126810 A JP2006126810 A JP 2006126810A
Authority
JP
Japan
Prior art keywords
parameter
value
adaptive
adaptation
computer
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.)
Pending
Application number
JP2005277829A
Other languages
English (en)
Inventor
Henrique S Malvar
エス.マルバー エンリケ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006126810A publication Critical patent/JP2006126810A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】 整数データの無損失適応Golomb−Rice(G/R)符号化を新規な適応規則を有する新規な後方適応技法を用いて行う方法およびシステムを提供すること。
【解決手段】 この適応G/R符号化器および復号化器(コーデック)および方法では、G/Rパラメータkの調整をコードワードの生成が済むごとに行う適応規則を使用する。こうした適応規則は、適応値を定義することおよびG/Rパラメータを適応値に基づいて調整することを含む。適応値が0に等しい場合は、G/Rパラメータを整数定数だけ減らす。適応値が1に等しい場合は、G/Rパラメータを変えずにおく。適応値が1より大きい場合は、G/Rパラメータを適応値だけ増やす。さらに、適応G/R符号化器および方法は、分数適応を含み、これにより、スケーリングしたG/RパラメータをG/Rパラメータによって定義し、そのスケーリングしたG/Rパラメータを更新および改造して適応のレートを遅くする。
【選択図】 図4

Description

本発明は、一般には、デジタルデータの処理に関し、より詳細には、新規な後方適応規則(backward−adaptive rules)を有するGolomb−Rice符号化を用いた整数データの無損失(lossless)符号化および復号化の改善された方法およびシステムに関する。
データ圧縮は、(テキスト、オーディオ、ビデオ、画像、プログラムファイルなどの)コンピュータデータのサイズが増え続けるにつれて、ますます重要になってきている。データ圧縮は、デジタルデータを、元のデータよりも少ないビットを使用して符号化した表現へと符号化する一手法である。データをより少ないビットで表現すると、データの占めるストレージ空間はより小さくなり、必要な伝送バンド幅はより狭くなる。
一般に、データ圧縮では、最も頻繁に生起するデータを予測し、それをより小さな空間に格納することによってデータの圧縮を行う。具体的には、データ圧縮は、少なくとも異なる2つのタスクを含む。すなわち、(1)データモデルを定義して、入力データの確率を予測すること、および、(2)符号器(coder)を使用してそうした確率から符号を生成することである。さらに、一部のデータ圧縮技法では、データを数学的に変換し量子化してさらに高度な圧縮を達成している。
圧縮技法は、無損失であることもあれば、ロッシー(lossy)であることもある。無損失圧縮技法は、符号化前の元のデータと復号化後の伸張したデータが、ビット対ビットで同一になるような可逆性をもつ。ロッシー圧縮では、データには、品質での損失を大きくすると捨ててしまえる重複部分がかなりあるという事実を利用している。ロッシー圧縮では、元のデータの一部の損失を容認することによって、より高度な圧縮を達成している。
無損失圧縮は、通常、テキストまたはバイナリデータを圧縮するのに使用され、ロッシー圧縮は、通常、オーディオ、画像、およびビデオデータに使用される。しかし、ロッシー圧縮の技法でも、ときおり無損失圧縮の技法を使用することができる。例えば、一般に使用される種類の圧縮(またはコーディング)技法に、変換符号化および予測符号化がある。そのような種類の圧縮システムでは、元のデータを変換し、次いで量子化する(一番近い整数に丸める)か、または、(固定のまたは適応的な)信号モデルに基づいて予測し、次いで、予測誤差(元のデータと予測したデータの間の差)を量子化する。どちらの場合にも、量子化後のデータは整数の形である。こうした整数を得た後で、無損失圧縮技法を使用して量子化した値の符号化を、データを表現するのに必要なビット数を減らすために行う。
こうした整数値の組には、普通、それに結び付く確率分布関数(PDF、probability distribution function)がある。こうしたPDFには、予測符号化では、予測器(predictor)によってデータの特徴のモデル化がうまく行われた場合、予測誤差がほとんどの場合に0に近くなるような分布がある。同様に、変換符号化では、量子化した変換係数のほとんどが0となる。図1に、こうした整数値に関する典型的な確率分布を示している。0が最も尤度の高い値であり、0以外の値の確率は、大きさが増加するにつれてほとんど指数関数的な速さで減少する。データが図1に示す確率分布をもつ理由は、無損失圧縮技法を用いて符号化されているデータが元のデータではないためである。図1は、変換係数または予測誤差を量子化した結果できた整数データである。
数学的には、この問題は、N個の整数を含むベクトルxを符号化するための効率的な解を見出すことである。要素のそれぞれx(n)、n=0、1、...、N−1の値は、図1の確率分布に類似の確率分布に従い、その結果、最も確率の高い値は0であり、0から遠ざかるところの値の確率は急速に減少する。
図1の確率分布に似た確率分布に関する単純な数学的モデルは、パラメータθで特徴付けられる、ラプラス分布、または両側幾何(TSG、two−sided geometric)分布、すなわち
Figure 2006126810
である。パラメータθにより、確率で|x|が大きくなるときの減衰のレートが制御されることに注意されたい。θの値が大きいほど、減衰は速くなる。パラメータθは、x=0である確率と直接に関係づけることができる。すなわち、P(0,θ)=(1−θ)/(1+θ)である。また、情報源記号(source symbol)の大きさの期待値は、
Figure 2006126810
である。情報源のエントロピーは、記号あたりのビット数(bits/symbol)として
Figure 2006126810
によって与えられる。
したがって、よい符号化器であれば、xのN個の値からなるベクトルが、NH(x)という理論上の最小値よりも、あまり多くないビット数を含むビットストリームへと写像されるはずである。
ラプラス分布は、メディア圧縮システムでは、(たいていの無損失オーディオおよび画像符号化器のような)予測符号化器での予測誤差でも、(たいていのロッシーなオーディオ、画像、およびビデオ符号化器のような)量子化した変換係数でも、一般的なモデルである。
ラプラス/TSG分布をもつ情報源用に提案された符号化器は、数多くある。単純であるが効率的な符号化器は、Golomb−Rice符号化器である。まず、TSG情報源の値xの非負の値uへの写像を、単純な可逆写像
Figure 2006126810
によって行う。これは、uを並べ替えられたアルファベット{0,−1,+1,−2,+2,...}とみることと等価である。新しい情報源uは、幾何分布情報源の確率分布を近似する確率分布をもつが、これに対してGolomb符号は最適である。その理由は、Golomb符号は、Golombパラメータを適切に選ぶ限り、幾何分布情報源に対するハフマン符号となっているためである。
Golomb−Rice(G/R)符号の例を、表1に、パラメータmのいくつかの値に関して示している。mが2の累乗に等しいときには、mとm=2の関係にあるパラメータkが使用されていることに注意されたい。G/R符号のハフマン符号にまさる一番の利点は、2進コードワードの計算が、どのような入力値に対しても、単純な規則で行えることにある。このため、テーブルを格納しておく必要がない。これは、テーブルのエントリが格納してあるメモリロケーションからの読み出しに、命令をいくつか実行するよりも時間のかかる、最新型のプロセッサでは特に有用である。同じビット数をもつコードワードが何個連続するかが、パラメータmで決まっていることが、容易に理解されよう。このことは、コードワードを計算することは、uを入力値として、u/mを計算するものであることも示している。ほとんどのプロセッサでは、整数の除算には多くのサイクルがかかり、このためG/R符号は一般のmに対しては魅力的ではない。m=2を選ぶ場合、これはRice符号に対応しており、このとき除算u/mは、u/m=u>>kであるため、シフトで置き換えることができる(ここで、>>は右シフト演算子を表す)。したがって、G/R符号の計算をどのような入力uに対しても行うことは容易である。単に、p=u>>kおよびv=u−(p<<k)を計算すればよい。すると、符号が、p個の1をもつストリングを、vのkビットの2進表現と連結することによって作られる。
Figure 2006126810
表1から明らかなことは、G/Rパラメータkの選択は、情報源の統計に依存しなければならないということである。uが増加するにつれての確率の減衰が遅いほど、大きなkを選ぶべきである。そうでない場合、コードワード長があまりにも急速に大きくなる。kを選ぶための簡単なルールは、所与の入力値uに対するコードワード長は、およそその値の生起の確率の2を底とする対数とすべきだというものである。
G/R符号は、幾何分布の情報源に対しては最適であるが、ラプラス/TSG情報源からの記号を式4の写像によって符号化するのには最適ではない。これは、TSG分布をもつ入力変数xでは、式4からの変数uの確率分布が、幾何分布に近いが厳密に幾何分布であるわけではないためである。実際には、パフォーマンスは十分最適に近く(例えば、レートがエントロピーを通常5%未満しか上回らない)、このため、G/R符号は非常に人気がある。TSG情報源に対する最適な符号は、4つの符号バリアントからなる組を含み、これは実装するにはより複雑であり、圧縮の改善はほとんどの場合5%以下である。したがって、G/Rコーダはほとんどの場合、パフォーマンスと平易さに最良のトレードオフを提供する。
図1では、確率分布を、指数関数の減衰のレートである単一のパラメータで表している。減衰のレートが速いほど、0の値を確率が高くなる。これは、多くの場合に、0となる尤度が非常に高いため、0からなる連続の尤度が非常に高くなることを意味する。言い換えると、減衰の確率分布のレートが十分に速い場合には、連続を符号化するのはよい考えである。0の連続を符号化することは、ほんの数ビットを使用して入力データ中の多くのエントリを処理することになる。
予測誤差が0になる尤度がずっと高くなるのは、例えば、データが、予測符号化における予測器の使用するモデルに合う場合である。しかし、よいモデルがある場合でも、たまには大きな値がある可能性がある。これが起こり得るのは、ピクセルの値がバックグラウンドの値からフォアグラウンドの値に移るなど、境界に達した場合である。ときおり、大きな数は生じ得る。これが起きる場合に、ランレングス符号化よりも有用な符号化技法の1つのタイプが、「ランレングスGolomb−Rice(RLGR)」(Run−Length Golomb/Rice)符号化技法である。そのような1つの符号化技法が開示されている(例えば、特許文献1および特許文献2参照)。
現実には、データの情報源が変動しているので、確率は、一定のままではなく、時間とともに変動する。これは、例えば、画像およびオーディオに当てはまる。通常、こうした入力データにおける確率変動は、様々な異なる手法で取り扱われる。例えば、JPEGでは、符号化すべき異なる値に対して長さが異なるコードワードを使用するエントロピー符号器(ハフマン符号器)がある。ハフマンテーブルは、普通、あらかじめ設計されている。すなわち、典型的には、いくつもの画像を取得し、その確率を計測し、画像すべてに使用する平均のモデルを構築する。このアプローチの1つの問題点は、ある画像のどの部分でも必ず、符号化効率の点で損失があることであり、この理由は、エントロピー符号器で使用している確率モデルは、平均してよいが、その画像のその部分に関しては必ずしもよいわけではないためである。
表1から、Golomb−Rice符号に関して主な問題が2つあることが理解されよう。すなわち、(1)確率減衰パラメータθ、またはこれと等価な確率P(x=0)が、適切なkの値を決めることができるためには、知られていなければならないこと、および、(2)減衰パラメータが小さすぎる場合、エントロピーH(x)が1未満となり、このため、Golomb−Rice符号は、その平均のコードワード長が1ビット/記号を下回ることがあり得ない以上、準最適(suboptimal)となることである。
実際には、第1の問題(最適なGolomb−Riceパラメータの推定)は、普通、入力ベクトルを所定の長さのブロックへと分割することによって対処している。ブロックごとに、符号化器はデータ全体にわたって2回のパスを行う。第1のパスでは、入力値の平均の大きさを計算する。このために、パラメータθは式2から推定することができ、これに対応する最適なkを決定することができる。第2のパスでは、符号化器は、そのブロックに対するビットストリームを生成するのに、まずkの値を2進形式で、続いて、そのブロック内部のデータの値に対するGolomb−Rice符号からなる連接したストリングを出力する。これは、無損失画像圧縮用のJPEG−LSや無損失オーディオ圧縮用のSHORTENなど、本質的にすべてのGolomb−Rice符号を使用する無損失圧縮システムで使用しているアプローチである。これは、「ブロック指向適応」(blockwise adaptation)または「前方適応(forward adaptation)」モデルと呼ばれる。前方適応モデルは、符号化器が、符号化の前にまずデータを見て、統計的パラメータを計測し(普通、平均の大きさ)、次いで、そのパラメータに基づいて符号化し、データを符号化するのに使用したパラメータの値を、復号化器での使用のために、ヘッダ内に入れる、という意味で前方である。データを一度に符号にしようとするのではなく、データを小さな部分、すなわちブロックへと分割する。ブロックごとに、そのブロックの統計量を計測し、統計的パラメータを、バッファ内にあるものに合うデータのその部分に対して計測し、エントロピー符号器をそのパラメータに調整する。エンコードしたファイルには、データのそのブロックをエンコードするのに使用したパラメータの値を示すヘッダを挿入する。
実際上の第2の問題、すなわち、エントロピーが非常に低い情報源の符号化への取り組みは、普通、ブロック指向適応または前方適応のモデルを用いて行われ、そのブロック内の入力記号の平均の大きさの値が、推定したエントロピーH(x)が1より小さくなるだけ十分小さい場合、符号化器では、Golomb−Rice符号化ではなく、ランレングス符号化を使用する。
こうしたアプローチは、実際にはうまく働くが、大きな欠点が2つある。欠点の1つは、符号化器が各入力ブロックを2回読み取る必要があり、その結果データに対して2回パスが行われる。すなわち、1回目は平均の大きさを計算してGolomb−Riceパラメータを決定するためであり、2回目は実際の符号化を行うためである。このため、符号化器はよぶんな仕事を行う必要があり、複雑さが増す。一部の応用では符号化時間は問題とならないが、例えば、デジタルカメラでは、このために符号化プロセスが遅くなり、またはRAM(random−access memory)のコストが増大する。特に、前方適応モデルでは、まずデータを見て統計量を測定し、モデルのパラメータを求め、そして符号化する。これは、符号化器が、大きな処理パワーをもつパーソナルコンピュータ上で動作している場合には、問題とならない。しかし、写真を携帯電話で撮っている場合には、写真は携帯電話自体で符号化されるので、そこでは処理パワーはずっと限定される。
第2の、最も重要な欠点は、ブロックサイズを選ぶことの困難に関わっている。ブロックサイズが大きすぎる場合には、統計量がブロック内部で劇的に変化する可能性もある。他方、ブロックサイズが小さすぎる場合には、どのパラメータを使用してデータのそのブロックを符号化したかを復号化器に伝えなければならないというオーバーヘッドが負担となる。符号化器は、どのブロックについても必ず、どのようなパラメータを使用してそのブロックを符号化しているかを保存しておかなければならない。あるところでは、小さなブロックを符号化するのに必要なオーバーヘッドが、達成される圧縮に値しない。ここからトレードオフが生じる。一方で、小さいブロックを使用した場合には、そのブロックの統計量を合わせることができるが、この統計量の測定は、数字の数が少なく、符号化のオーバーヘッドが大きいために、困難となる。他方、大きなブロックを使用した場合には、問題は統計量がブロック内部で非常に変動する可能性があることである。実際には、この2つの矛盾する要因の間で妥協点を見出すことは難しく、その結果、ブロックサイズは、普通、128から2048サンプルの間で、符号化すべきデータのタイプに応じて選ばれている。
1つの解決策は、符号化器内で後方適応技法を使用することである。後方適応では、符号化は、復号化器と符号化器がブロックごとに初期状態について合意するところから始まる。言い換えると、各パラメータを所定の値に初期化し、それから符号化が始まる。符号化器では、出力記号を作り出するたびに、直ちにその記号を復号化器に送ることができるが、これは、復号化器では、それを符号化するのに使用したパラメータの値がわかっているためである。符号化器は、記号を出力した後、今度は符号化パラメータの新しい値の計算を、出力された記号に応じて、所定の適応規則に従って行う。復号化器では、パラメータ適応規則がわかっており、したがって、符号化パラメータの新しい値の計算も行うことができる。こうして、符号化パラメータの調整は、記号の符号化が済むたびに行われ、符号化器と復号化器は常に同期している、すなわち、復号化器は符号化パラメータの変化を追跡している。これは、符号化器から復号化器へは、どのようなパラメータの値を使用してデータを符号化したかに関してどのようなオーバーヘッド情報も送る必要がないことを意味している。
米国特許第6771828号明細書 米国特許第6477280号明細書
したがって、無損失Golomb−Rice(G/R)符号化器および復号化器(コーデック)、および、効率のよい圧縮を提供し、現れる可能性のあるどのような入力の整数の数字も取り扱い符号化する能力のある方法が必要とされている。しかも、適応G/Rコーデック、および、前方適応に関する前述の諸問題を、後方適応技法を使用することによって回避して、入力データの高速な追跡および効率のよい圧縮を提供する方法もまた必要とされている。
本明細書で開示する発明は、適応Golomb−Rice(G/R)符号化器および復号化器(コーデック)および整数データの無損失符号化および復号化のための方法を含む。適応G/Rコーデックおよび方法では、新規な適応規則を有する新規な後方適応技法を使用している。適応G/Rコーデックおよび方法では、後方適応を用いて、入力データの統計量のどのような変化も迅速に学習する。さらに、適応G/Rコーデックおよび方法は、どのような入力の整数値も符号化する能力をもつ。
また、適応G/Rコーデックおよび方法では、符号化パラメータの調整を、記号の符号化が済むたびに行う、新規な適応規則を使用している。確率テーブルまたはコードワードテーブルは必要なく、このため、適応G/Rコーデックおよび方法は、少ないメモリ領域(footprint)の範囲内に納めることが可能である。したがって、適応G/Rコーデックおよび方法は、普通、メモリアクセスに命令のフェッチおよび実行よりもずっとサイクルのかかる、最新型のプロセッサに好適である。また、適応G/Rコーデックおよび方法は、入力データをブロックでバッファリングする必要がなく、データの値をそれぞれ2度処理する必要がないため、メモリが限られ、処理パワーが限られた小さな装置に好適である。
適応G/Rコーデックおよび方法の大きな利点の1つは、G/Rパラメータ(k)の調整および更新が、コードワードの生成が済むたびに行われることである。これにより、入力データの統計量のどのような変化も、迅速に追跡することができるようになる。G/Rパラメータを復号化器に送信する際、その変化は復号化器が追跡しているため、オーバーヘッドが必要とならない。適応規則が単純であるため、後方適応を使用することの計算量(computational complexity)は低い。したがって、適応G/Rコーデックおよび方法は、多くの実際の適用例にとって魅力的である。
適応G/R方法は、符号化規則と適応規則を使用することを含む。符号化規則では、次の入力値xの符号化を、まずそれから非負の値uへの写像を単純な1対1写像規則(x>0の場合u=2x、x<0の場合u=−2x−1)によって行い、次いで、uの符号化を、パラメータkをもつGolomb−Rice符号化器を用いて行い、このため、出力のコードワードはGR(u,k)と表される。
ある記号を符号化した後、次いで、適応規則を適用する。適応G/R方法では、単純であるが新規な適応規則を使用している。kに関する適応規則は次の通りである。すなわち、入力値uから(G/R符号器は常にuの値に対して働くことを想起されたい)、一時的な値pを、p=u>>kによって計算する(ここで、>>は、右シフト演算子を表す)。p=0の場合は、スケーリングした形のk、すなわちKを第5の整数定数B3だけ減らす。p=1の場合は、Kを変えない。P>1の場合、Kをpだけ増やす。このようにして、パラメータkの更新を、G/R符号化器に対して、第1と第2のモードのどちらでも、各コードワードを生成した後で行う。次いで、次のコードワードを生成するのに使用することになるkの値をk=K/Lとして計算するが、ここで、Lは固定したパラメータである(Lによる除算は、Lを2の累乗として選んだ場合には単なるシフト演算子になることを想起されたい)。
上の適応規則の説明から、また、適応G/R方法は、「分数適応」(fractional adaptation)と呼ばれる特徴を含むことが理解されよう。分数適応により、適応のレートをより細かく制御することが可能になる。まず、スケーリングパラメータLを定義するが、Lの値は、通常、2の累乗に設定する。次に、スケーリングしたG/Rパラメータ、K=k*Lを定義する。kに関する適応規則を使用するときには、スケーリングしたパラメータの値Kのインクリメントまたはデクリメントを、整数定数だけ、生成したコードワードに応じて行う。Kの適応後、最終的なパラメータの値kをk=K/Lによって計算する。このようにして、Kに関する整数インクリメントは、kに関する分数インクリメントとみることができ、これにより、kの値のより滑らかな制御が可能となり、したがって入力の統計量の変化をよりよく追跡することになる。kの調整を、記号の符号化が済むたびに整数インクリメントで行った場合には、その値がかなり変動する(fluctuate)はずである。パラメータの値にそのようなノイズがあると、圧縮率(入力データをただの2進フォーマットで格納するのに必要なビット数の符号化したビットストリームを格納するのに必要なビット数の比)の低下をもたらすはずである。試験済みの一実施形態では、スケーリングパラメータは16に等しく、G/Rパラメータの値はデジタルデータの減衰パラメータに基づいている。
適応G/R符号化器は、上で説明した適応G/R方法を組み込むためのモジュールおよび手段を含む。
デジタル整数データは、値を有する整数ベクトルを含む。その値は、各値に対して最も確率の高い値を取るのは0のときであり、0以外の値は、その0以外の値が増加すると確率が減少するような値である。また、適応G/R方法は、データの符号化および復号化のためのプロセスを含む。このプロセスは、デジタル整数データの各値xの符号化を適応Golomb−Rice(G/R)符号化およびG/Rパラメータkを用いて行うこと、および、分数G/Rパラメータを、K=k*Lとして定義することを含み、ここで、Lはスケーリングパラメータである。また、このプロセスは、適応規則を有する後方適応技法を使用して、分数G/RパラメータKの更新を、デジタル整数データの各値xを符号化した後で行うこと、および、デジタル整数データの符号化した値をビットストリームに付加する(append)ことを含む。また、このプロセスは、ビットストリームの復号化をG/R復号化器を用いて行って、デジタル整数データの各値xを厳密に復元することを含む。
適応G/R復号化器および方法は、上記の符号化規則に対応する復号化規則を使用し、上で説明した同じ適応規則を使用することによって動作する。復号化器での復号化規則は、これまで説明した符号化器での符号化規則を反転させたものである。すなわち、復号化器では、入力ビットストリーム(またはファイル)から必要なだけのビットを、G/Rパラメータkの現在の値に応じて読み取る。このようにして、復号化器では、表1による有効なGolomb−Rice符号GR(u,k)に対応する完全なコードワードを読み取る。Golomb−Rice符号は、どのパラメータkでも必ず一意的に復号化可能である以上、今度は、復号化器がそのコードワードを復号化することができる。言い換えると、復号化器では、符号化器のところで存在していた記号uの値を決定することができる。復号化器は、uから、対応するデータの値xを、単に1対1の逆写像規則の使用によって決定することができる。特に、uが偶数の場合は、x=u/2であり、uが奇数の場合は、x=−(u+1)/2である。上で説明した復号化プロセスを行って、入力のコードワードを、符号化器のところで見られたものと厳密に一致する出力の値または値からなるストリングへと復号化する。したがって、復号化プロセスは無損失である。
コードワードの復号化を、入力のビットストリームまたはファイルから上で説明したように行った後、今度は、復号化器では、上で符号化器について説明したのと同じ適応規則を計算する。このようにして、復号化器は、パラメータkの値の調整を、符号化器が行うのと厳密におなじ形で行うことができる。したがって、このパラメータは、次のビットストリーム(またはファイル)のコードワードを復号化するための正しい値をもつことになる。
本発明のさらなる理解が、本発明の諸態様を例示する以下の説明および添付の図面を参照することによって可能である。他の特徴および利点は、本発明の諸原理を例として示す添付の説明と併せて解釈する、本発明の以下の詳細な説明から明らかであろう。
次に、同じ符号が一貫して対応する部分を表している、図面を参照する。
本発明の以下の説明では、添付の図面への参照を行うが、これは説明の一部をなしており、この中では例示として、本発明を実施することのできる特定のある例を示している。他の諸実施形態を利用することもでき、構成の変更を本発明の範囲から逸脱することなく行えることを理解されたい。
I.序論
本明細書で開示する適応Golomb−Rice(G/R)コーデックおよび方法は、非常に様々な圧縮の応用例で使用することができる。例えば、適応G/Rコーデックおよび方法は、データベースの応用例でインデックスの符号化に使用することができる。インデックスは、通常、正の整数であるが、確率分布は図1に類似しており、その理由は、インデックスでは小さな値が大きな値よりも尤度が高いためである。別の例は、適応G/Rコーデックおよび方法をハードディスクのヘッド位置を符号化するのに使用することである。ハードディスクが一杯になるまでは、データは、ハードディスクの末尾よりも先頭にある尤度が高い。したがって、小さなヘッドの値は大きなヘッドの値よりも尤度が高く、その結果、入力データの確率分布は図1に類似したものとなる。
本明細書で開示する適応G/Rコーデックおよび方法は、整数データの無損失圧縮のための改善された技法である。整数値を含むベクトルが、符号化器によってビットストリームへと写像され、後でこれが今度は復号化器によって厳密に再構成される。適応G/Rコーデックおよび方法は、後方適応をパフォーマンスの改善のために用いて、迅速に学習を行い、入力データの統計量の変化に適応する。
適応G/Rコーデックおよび方法では、G/Rパラメータの調整を符号化した記号それぞれに従って行う後方適応の方策を使用している。確率テーブルまたはコードワードテーブルは不必要であり、このため、適応G/Rコーデックおよび方法は、非常に小さなメモリ領域(footprint)に納めることができるようになっている。したがって、適応G/Rコーデックおよび方法は、普通、メモリアクセスに命令のフェッチおよび実行よりもずっとサイクルのかかる、最新型のプロセッサに特に好適である。
適応G/Rコーデックおよび方法の、従来の種類のエントロピー符号器にまさる1つの重要な利点は、その後方適応の方策により、データの統計量の変化の学習が迅速に行われることである。したがって、実際には、適応G/Rコーデックおよび方法は、ハフマン符号器、ブロック適応Golomb−Rice符号化器、文脈適応算術符号化器(context−adaptive arithmetic encoders)などの、他の種類の符号化器よりも、よいパフォーマンスを示してきた。後方適応方策を符号化パラメータに使用することの別の利点は、確率の推定器(probability estimator)が必要でないことである。適応G/Rコーデックおよび方法のまた別の利点は、適応が、記号の符号化が済むたびに、データにわたる単一のパスで行われることであり、このため、よりよい圧縮結果が得られ、符号化が、ブロック指向または前方適応を使用する符号化器よりも速く行われることになる。
II.全体に関する概要
図2AおよびBは、本明細書で開示する適応Golomb−Rice(G/R)コーデックおよび方法の例示的な実装形態を示す構成図である。図2Aに、適応G/Rコーデックおよび方法の符号化器部分に関する構成図を示している。図2Bには、適応G/Rコーデックおよび方法の復号化器部分に関する構成図を示している。図2AおよびBは、適応G/Rコーデックおよび方法を実装および使用できるいくつかの手法のうちの2つであるに過ぎないことに注意されたい。
図2Aを参照すると、適応G/R符号化器200が、第1のコンピューティング装置210上で動作している。適応G/R符号化器200は、整数データ220の入力および処理を行う。一般に、整数値を含むベクトルなどの整数データ220を与えると、適応G/R符号化器200では、整数データ220から符号化済みビットストリーム230への符号化または写像を行う。整数データ220が通常含む整数のベクトルは、最も確率の高い値を取るのは0のときであり、0以外の値はいずれも、その値が増加すると確率が減少するようなものである。このタイプの整数データは、通常、確率分布関数(PDF、probability distribution function)が図1に示すそれに類似している。整数データを符号化した後、符号化済みビットストリーム230は、格納または送信を行うことができる。
図2Bを参照すると、G/R復号化器240は、第2のコンピューティング装置250上に常駐している。第1のコンピューティング装置210と第2のコンピューティング装置250は、別々のコンピューティング装置として示しているが、同じコンピューティング装置であってもよいことに注意されたい。言い換えると、G/R符号化器200と復号化器240は、同じコンピューティング装置上に常駐していてもよい。一般に、G/R復号化器240では、符号化済みビットストリーム230を処理し、再構成した整数データ260を出力する。適応G/R符号化器200では、整数データ220の無損失符号化を行うため、G/R復号化器240は、符号化済みビットストリーム230を読み込み、整数データ220に含まれる元のデータベクトルを、厳密に再構成することができる。
実際の適用例では、装置または機器(equipment)は、G/R符号化器は組み込むがG/R復号化器は組み込まなくてもよいことに注意されたい(例えば、デジタルカメラ)。同様に、装置または機器は、G/R復号化器は組み込むがG/R符号化器は組み込まなくてもよい(例えば、デジタルオーディオプレイヤやデジタル写真ビューア)。
III.例示的な動作環境
適応Golomb−Rice(G/R)コーデックおよび方法は、図2に示す第1のコンピューティング装置210や第2のコンピューティング装置250などの、コンピューティング環境内、およびコンピューティング装置上で動作するように設計されている。適応G/Rコーデックおよび方法が動作するコンピューティング環境を次に論じる。以下の議論は、適応G/Rコーデックおよび方法を実装できる、適したコンピューティング環境の簡潔な、一般的説明を提供する。
図3は、図2に示す適応G/Rコーデックおよび方法を実装できる適切なコンピューティングシステム環境の一例を示す。コンピューティングシステム環境300は、適切なコンピューティング環境の1つの例に過ぎず、本発明の使用または機能の範囲に関してどのような制限も示唆するものではない。また、コンピューティング環境300は、例示的な動作環境300に示すコンポーネントのどの1つまたは組合せに関しても、何らの依存性または要件があると解釈すべきでもない。
適応G/Rコーデックおよび方法は、数多くの他の汎用または専用のコンピューティングシステム環境または構成とともに動作可能である。適応G/Rコーデックおよび方法とともに使用するのに適する可能性のあるよく知られているコンピューティングシステム、環境、および/または構成の例としては、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド、ラップトップ、またはモバイルコンピュータ、または携帯電話やPDAなどの通信装置、マルチプロセッサシステム、マイクロコンピュータベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のうちのどのようなものも含む分散コンピューティング環境などがあるが、これに限定されるものではない。
適応G/Rコーデックおよび方法の説明を、あるコンピュータによって実行中の、プログラムモジュールなどのコンピュータ実行可能命令の一般的な状況で行うことができる。一般に、プログラムモジュールは、特定のタスクを実行しまたは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また、適応G/Rコーデックおよび方法は、タスクの実行を通信ネットワークを通してリンクされているリモート処理装置が行う、分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールを、メモリストレージ装置を含むローカルとリモートのコンピュータストレージ媒体のどちらにも配置することができる。図3を参照すると、適応G/Rコーデックおよび方法を実装するための例示的なシステムは、コンピュータ310の形の汎用コンピューティング装置を含む。コンピュータ310は、図2に示した第1のコンピューティング装置210および第2のコンピューティング装置250の例である。
コンピュータ310のコンポーネントは、処理ユニット320、システムメモリ330、および、システムメモリを含む様々なシステムコンポーネントを処理ユニット320へと結合するシステムバス321を含むが、これに限定されるものではない。システムバス321は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちのどのようなものともすることができる。限定ではなく例として、そのようなアーキテクチャとしては、ISA(Industry Standard Architecture、業界標準アーキテクチャ)バス、MCA(Micro Channel Architecture、マイクロチャネルアーキテクチャ)バス、EISA(Enhanced ISA、拡張ISA)バス、VESA(Video Electronics Standards Association、ビデオ電子標準協会)ローカルバス、および、Mezzanineバスとしても知られるPCI(Peripheral Component Interconnect、周辺機器相互接続)バスがある。
コンピュータ310は、通常、様々なコンピュータ可読媒体を有する。コンピュータ可読媒体は、コンピュータ310のアクセスできるどのような利用可能な媒体とすることもでき、揮発性と不揮発性の媒体、リムーバブルと固定の媒体をどちらも含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータストレージ媒体および通信媒体を含む。コンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報の格納のためのどのような方法または技術でも実装される揮発性および不揮発性で、リムーバブルおよび固定の媒体を含む。
コンピュータストレージ媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、DVD(digital versatile disk、デジタル多用途ディスク)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージ装置、または所望の情報を格納するのに使用でき、コンピュータ310のアクセスできる他のどのような媒体も含むが、それに限定されるものではない。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを、搬送波などの変調されたデータ信号(modulated data signal)または他の通信機構(transport mechanism)で実施し、どのような情報配信媒体(information delivery media)も含む。
「変調されたデータ信号」という用語は、その特徴の1つまたは複数が情報をその信号の中にエンコードする形で設定または変更される信号を意味することに注意されたい。限定ではなく例として、通信媒体は、有線ネットワークや直接配線接続などの有線媒体、ならびに音響、赤外線などの無線媒体および他の無線媒体を含む。また、上記のどのようなものの組合せも、コンピュータ可読媒体の範囲内に含められる。
システムメモリ330は、コンピュータストレージ媒体を、ROM(read only memory、読み取り専用メモリ)331やRAM(random access memory、ランダムアクセスメモリ)332などの揮発性および/または不揮発性のメモリの形で含む。起動(start−up)時などにコンピュータ310内部の要素間で情報を転送するのに役立つ基本ルーチンを含む、BIOS(基本入出力システム)333は、通常、ROM331に格納されている。RAM332は、通常、処理ユニット320の直ちにアクセス可能なおよび/または目下動作対象としているデータおよび/またはプログラムモジュールを含む。限定ではなく例として、図3に、オペレーティングシステム334、アプリケーションプログラム335、他のプログラムモジュール336、およびプログラムデータ337を示している。
また、コンピュータ310は、他のリムーバブル/固定で揮発性/不揮発性のコンピュータストレージ媒体を含むこともできる。単に例として、図3に、固定で不揮発性の磁気媒体からの読み取りまたはそれへの書き込みを行うハードディスクドライブ341、リムーバブルで不揮発性の磁気ディスク352からの読み取りまたはそれへの書き込みを行う磁気ディスクドライブ351、および、CD−ROMや他の光学メディアなどのリムーバブルで不揮発性の光ディスク356からの読み取りまたはそれへの書き込みを行う光ディスクドライブ355を示している。
例示的な動作環境で使用できる他のリムーバブル/固定で揮発性/不揮発性のコンピュータストレージ媒体としては、磁気テープカセット、フラッシュメモリカード、DVD(デジタル多用途ディスク)、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどがあるが、これに限定されるものではない。ハードディスクドライブ341は、通常、システムバス321にインターフェース340などの固定メモリインターフェースを通して接続され、磁気ディスクドライブ351および光ディスクドライブ355は、通常、システムバス321にインターフェース350などのリムーバブルメモリインターフェースを通して接続される。
上で論じ、図3に示したドライブおよびその関連するコンピュータストレージ媒体により、コンピュータ310用のコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータのストレージが提供される。図3で、例えば、ハードディスクドライブ341は、オペレーティングシステム344、アプリケーションプログラム345、他のプログラムモジュール346、およびプログラムデータ347を格納するものとして示している。こうした構成要素は、オペレーティングシステム334、アプリケーションプログラム335、他のプログラムモジュール336、およびプログラムデータ337と同じでも異なっていてもよいことに注意されたい。オペレーティングシステム344、アプリケーションプログラム345、他のプログラムモジュール346、およびプログラムデータ347には、本明細書では異なる符号を与えて、最小限、これらが異なるコピーであることを示している。ユーザは、コマンドおよび情報のコンピュータ310への入力を、キーボード362や、一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティング装置361などの入力装置によって行うことができる。
他の入力装置(図示せず)としては、ジョイスティック、ゲームパッド、衛星放送受信アンテナ(satellite dish)、スキャナ、ラジオ受信機、あるいはテレビまたはブロードキャストビデオ受信機などがあり得る。こうしたおよび他の入力装置の処理ユニット320への接続は、しばしば、システムバス321に結合されるユーザ入力インターフェース360を通して行われるが、例えば、パラレルポート、ゲームポート、またはUSB(universal serial bus、ユニバーサルシリアルバス)など、他のインターフェースおよびバス構造によって行うことも可能である。また、モニタ391または他のタイプのディスプレイ装置のシステムバス321への接続も、ビデオインターフェース390などのインターフェースを介して行うことができる。また、コンピュータは、モニタの他に、スピーカ397やプリンタ396など他の周辺出力装置を含むことができ、その接続は出力周辺インターフェース395を通して行うことができる。
コンピュータ310は、リモートコンピュータ380など、1つまたは複数のリモートコンピュータへの論理接続を用いてネットワーク化環境で動作することができる。リモートコンピュータ380は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置(peer device)または他の一般的なネットワークノードとすることができ、通常、コンピュータ310に関して上で説明した要素の多くまたはすべてを含むが、図3にはメモリストレージ装置381だけが示されている。図3に示す論理接続は、LAN(local area network、構内通信網)371およびWAN(wide area network、広域通信網)373を含むが、また他のネットワークを含んでもよい。そのようなネットワーキング環境は、オフィス、全社規模のコンピュータネットワーク、イントラネット、およびインターネットでは普通のものである。
コンピュータ310は、LANネットワーキング環境で使用するときには、LAN371にネットワークインターフェースまたはアダプタ370を通して接続する。WANネットワーキング環境で使用するとき、コンピュータ310は通常モデム372、または、インターネットなどのWAN373を介して通信を確立するための他の手段を含む。モデム372は、内蔵でも外付けでもよいが、システムバス321にユーザ入力インターフェース360、または他の適当な機構を介して接続する。ネットワーク化環境では、コンピュータ310に関して示したプログラムモジュールまたはその部分は、リモートのメモリストレージ装置に格納することができる。限定ではなく例として、図3には、リモートのアプリケーションプログラム385を、メモリ装置381上にある(reside)ものとして示している。ここに示すネットワーク接続は例示的であり、コンピュータ間に通信リンクを確立する他の手段を使用してもよいことが理解されよう。
IV.システムコンポーネント
図4は、図2に示す適応G/R符号化器200のコンポーネントを示す一般的な構成図である。適応G/R符号化器では、入力として、入力値(または値からなるストリング)400を受け取る。Golomb−Rice(G/R)復号化モジュール410は、入力値(またはストリング)400を符号化して、コードワード420を得るのに使用する。入力値(またはストリング)400それぞれの符号化後に、符号化パラメータを適応させて入力データの統計量を追跡する。
Golomb−Rice(G/R)パラメータ適応モジュール430は、元のG/Rパラメータの更新を後方適応規則および新規な適応規則を用いて行うのに使用する。これから、更新済みG/Rパラメータ440が得られる。G/Rパラメータの適応については、下で詳細に論じることにする。パラメータの更新が済んだ後、次の入力値450をの処理を、適応G/R符号化器200が、更新済みG/Rパラメータ440を用いて行う。
V.動作に関する概要
図2および4に示す適応G/R符号化器200およびその中で使用する方法の動作を次に論じることにする。図5は、図2および4に示す適応G/R符号化器および方法の一般的な動作を示す一般的な流れ図である。方法は、符号化すべきデジタルデータを入力することによって始まる(囲み枠500)。ある試験済みの実施形態では、入力デジタルデータは、要素が整数値であるベクトルの形式をした整数データである。各入力デジタルデータ値は、どのような整数値とすることもでき、特定の範囲に制限されない(例えば、他のエントロピー符号器では普通であるように、2進または符号付き2進)ことに注意されたい。次に、このデジタルデータをG/Rパラメータを用いて符号化する(囲み枠510)。
デジタルデータの符号化は、特定の値に初期化されたG/Rパラメータを用いて行われる。しかし、入力デジタルデータの統計量が変わる可能性があるため、G/R符号化器200は適応的である。この適応により、適応G/R符号化器200は、入力デジタルデータの統計量を追跡し、そうした統計量に迅速に適応することができ、より高い符号化の効率が提供される。適応G/R符号化器200および方法では、G/Rパラメータの更新を、後方適応技法を用いて行う(囲み枠520)。このG/Rパラメータの更新は、入力デジタルデータの値または値からなるストリングの符号化が済むごとに行われる。しかも、この後方適応技法は、下で詳細に論じる、新規な適応規則を含む。次いで、符号化済みのデジタルデータを出力する(囲み枠530)。次に、入力デジタルデータの次の値またはストリングの処理を、先ほど説明した方法を用いて行う。この更新済みのG/Rパラメータの値は、その次の入力値またはストリングの符号化で使用する。このプロセスを、デジタルデータをすべて符号化して符号化済みのビットストリームにしてしまうまで繰り返す。
図6は、図5に示した適応G/R符号化器および方法のさらなる詳細を示す流れ図である。具体的には、デジタルデータの値またはストリングを入力として受け取る(囲み枠600)。次に、入力値またはストリングの符号化を、G/Rパラメータを用いて行う(囲み枠610)。入力値またはストリングの符号化が済んだ後、G/Rパラメータを更新する。この適応プロセスは、スケーリングしたG/Rパラメータを定義することによって始まる(囲み枠620)。このスケーリングしたG/Rパラメータは、G/Rパラメータの適応を遅くし、最適なパラメータの値の追跡をより細かく行えるようにするのに使用する。スケーリングしたG/Rパラメータについては、下でより詳細に論じる。次に、スケーリングしたG/Rパラメータの更新を、後方適応技法および新規な適応規則を用いて行う(囲み枠630)。符号化済みの入力値またはストリングを符号化済みビットストリームに付加し、符号化すべきデジタルデータからの次の値またはストリングの入力を行う(囲み枠640)。プロセスは再び始まって、次の値またはストリングの符号化が、更新されたスケーリングしたG/Rパラメータを用いて行われる。
VI.動作の詳細
上で論じた図4、5、および6の適応G/R符号化器200および方法の動作の詳細を、次に論じることにする。
Golomb−Rice(G/R)パラメータ適応モジュール
図7は、図4に示したG/R符号化器200および方法のGolomb−Rice(G/R)パラメータ適応モジュール430の動作の詳細な流れ図である。一般に、G/Rパラメータ適応モジュール430では、初期G/Rパラメータの更新を、新規な適応規則を有する後方適応技法を用いて行う。この更新は、デジタルデータの値またはストリングの符号化が済むごとに行う。
動作は、初期G/Rパラメータ(囲み枠705)および適応値(囲み枠710)を入力として受け取ることから始まり、後者の計算は後で説明することにする。次いで、この適応値が0に等しいかどうかに関して判断が行う(囲み枠715)。そうである場合、適応規則は、スケーリングしたG/Rパラメータをある整数定数だけ減らすというものである(囲み枠720)。
適応値が0に等しくない場合、適応値が1に等しいかどうかの判断を行う(囲み枠725)。そうである場合、適応規則は、スケーリングしたG/Rパラメータを変えずにおくというものである(囲み枠730)。そうでない場合、適応規則は、スケーリングしたG/Rパラメータを適応値だけ増やすというものである(囲み枠735)。
G/Rパラメータの適応が済んだ後、現在のG/Rパラメータを更新したG/Rパラメータで置き換える(囲み枠740)。後者は、スケーリングしたG/Rモードパラメータを固定のスケーリング因子で割り、その結果の整数部分を取ることによって得られる。適応では、スケーリングしたG/Rモードパラメータを整数のきざみで調整しているため、実際のG/Rパラメータは、それを分数のきざみで適応させているのと同様に振る舞う。ここでも、これは「分数適応」の一例となっており、これにより、適応の早さのより細かな制御ができるようになっている。もちろん、G/Rパラメータを変えずにおく場合には(囲み枠730)、更新を行う必要はなく、現在のG/Rパラメータは同じである。最後に、更新したG/Rパラメータを出力する(囲み枠745)。
図8は、図7に示したGolomb−Rice(G/R)パラメータ適応モジュール430で使用する適応値の計算の詳細な流れ図である。図7および9も参照すると、適応値計算モジュール800では、図7の流れ図への入力となる適応値を出力する(囲み枠710)。動作は、2つの入力、すなわち、現在のG/Rパラメータの値(囲み枠805)および入力値(囲み枠810)を受け取ることから始まる。次に、入力値を、G/Rパラメータの値の桁数だけ右へとシフトする(囲み枠820)。この結果の値が適応値であり、次いで、これを出力する(囲み枠830)。
VII.実施例
本明細書で開示する適応G/R符号化器および方法をより完全に理解するために、例示的な実施例(working example)の動作の詳細を提示する。この実施例は、適応G/R符号化器および方法を実施できる一手法に過ぎないことに注意されたい。
適応Golomb−Rice(G/R)コーデックおよび方法は、開示されているPTCエントロピー符号化器の拡張である(例えば、特許文献2参照)。しかし、このPTCエントロピー符号化器は、2進データ(通常、整数データのビットプレーン(bit−planes))の符号化に使用される。本明細書で開示する適応G/Rコーデックおよび方法では、入力値がどのような整数データであっても符号化することができる。言い換えると、本明細書で開示する適応G/Rコーデックおよび方法では、どのようなアルファベットからなるデータでも符号化することができる。
本明細書で開示する適応G/R符号化器および方法の1つの利点は、PTCエントロピー符号化器とは異なり、入力データの可能な最大値を知る必要がないことである。それどころか、適応G/R符号化器および方法では、どのような大きさの入力値も、どんなに大きくても取り扱うことができる。これは、適応G/R符号化器では、入力データが図1に示すようなラプラス分布をもつものと仮定しており、突然大きな数が入力データ中に現れた場合、適応G/R符号化器および方法では、その大きな数を符号化できることを意味する。その大きな数の符号化には、より小さな数よりは多くのビットが使用されることになるとはいえ、その大きな数は符号化される。しかし、より多くのビットを使用するために不利になるのは、その大きな数が現れたとき、その数に対してだけであり、他のあらゆる値に対してはそうならない。これは、下で述べる新しいモード選択および適応規則によるものである。
PTCエントロピー符号化器の場合は、入力データを受け取り、ビットプレーンへと分割し、次いで、各ビットプレーンをG/R符号化器で符号化している。本明細書で開示する適応G/Rコーデックおよび方法では、適応G/Rコーデックおよび方法を、ラプラス分布のデータを直接取り扱うように拡張する。これには、適応G/Rコーデックおよび方法では、PTCエントロピー符号化器よりも著しく速い、単一パスの符号化を使用するという利点がある。
PTCエントロピー符号化器の入力データは、小さな数の尤度がより高い、ラプラス分布となっていた。時には、小さな数の尤度がずっと高いために、0からなる連続を符号化することが、ビットストリームの特定の部分に関してはより効率がよいことがある。しかし、PTCエントロピー符号化器では、データを取り込み、最上位ビットプレーンに対してパスを1回行い、戻って次のビットプレーンでパスを1回行っていたはずである。例えば、データが16ビットであった場合、パスをまずビット番号16に対して行い、符号化していた。もちろん、そのビットは、非常に大きな数のところに散らばるだけで、あとはずっと0である(going down)ため、データのほとんどは0であろう。ビット番号5、4、3、2、および1まで来ると、これらのビットには0と1がたくさんあるが、これは、それを符号化してもまったく役に立たないところまできたということを意味している。普通、最下位ビットは非常にランダムであるため、そのビットの符号化には1ビット分使用される。すなわち、入力のビットはそれぞれ直接に出力へとコピーされるのである。PTCエントロピー符号化器の問題は、ビットプレーンにおける符号化に、データに対するいくつかのパスが必要になることである。特に、PTCエントロピー符号化器では、符号化を、最上位ビット、次のビット、次いで、次のビット、という形で行う必要がある。明らかに、これには著しく時間が長くかかり、場合によってはPTCエントロピー符号化器は、本明細書で開示する適応G/R符号化器および方法よりも1.5から3倍遅い。
符号化規則
適応G/Rコーデックおよび方法では、G/Rパラメータであるkに基づく新規な符号化規則を使用している。表2に、整数値xを2進ビットストリームに写像するための適応G/Rコーデックおよび方法のための符号化規則(coding rules)を示している。
Figure 2006126810
この実施例では、写像の値uを定義している。適応G/Rコーデックおよび方法の入力値xは、正でも負でもあり得る。入力値xは、uの値に写像されるが、uは正でしかない。したがって、符号付きの入力値xは、符号なしの同等な表現であるuへと変換される。式4では、xからuへの写像を述べている。特に、この写像では、0は0に写像され、1は1に写像され、−1は2に写像され、2は3に写像され、−2は4に写像され、など、uの値は常に正となるようなやり方で行うことを述べている。これは、G/Rテーブル(表1)を使用できるように行うが、その理由は、G/Rテーブルが非負の値専用であるためである。この写像により、適応G/Rコーデックおよび方法は、どのような入力アルファベットも取り扱えるようになる。言い換えると、G/Rテーブルを使用しているため(これはどのような入力の数も取り扱うことができる)、入力アルファベットを無限とすることができ、適応G/Rコーデックおよび方法は、どのような大きさの数の入力も取り扱うことができる。適応G/Rコーデックおよび方法は、オペレーティングシステムが取り扱える数の大きさによってのみ制限を受ける。実際には、G/R符号化である表1をメモリ内に格納する必要はないことに注意されたい。このテーブルのエントリは十分な構造をもっているため、コードワードの計算をuの任意の値および符号化パラメータkに対して容易に行えることが容易に理解されよう。
uのデータが与えられている状況で、表2が述べているのは、入力値xの写像の値uの符号化は、適応G/R符号化器、および、表1で例を示したG/R符号化規則を用いて行われるということである。したがって、xを符号化するのに使用するコードワードは、uおよびkの値に基づくことになる。G/Rパラメータkの更新は、後方適応技法および新規な符号化規則を用いて行い、これについては下で詳細に論じる通りである。表2の規則は、符号化器がどのように符号化を行うかを精確に定義しており、その意味は、復号化器が、表2にある同じ規則を使用して符号化されたデータを復元(すなわち復号化)できるということである。
分数適応
分数適応では、G/Rパラメータkの代わりに、スケーリングしたG/RパラメータKを使用する。分数適応は、適応を遅くする一手法である。適応G/Rコーデックおよび方法を、分数適応なしで使用することは可能である。しかし、分数適応なしでは、普通、適応があまりに速く変化しすぎ、通常、入力データに対する最適なパラメータを正しく追跡するのに失敗してしまう。
この実施例では、kパラメータの適応は、スケーリングしたKパラメータを用いて行う。したがって、kの代わりにKの更新を行う。kとKの間の関係は次のようである。すなわち、k=K/Lであり、ここでLは、上で説明したスケーリングパラメータである。したがって、適応を行う場合、Kの値を適応させ、KをLで割ってkの値を得る。値はすべて整数であり、このためk=K/Lによって、その結果の整数部分を意味していることに注意されたい。固定のスケーリングパラメータLは、2の累乗に等しい値に設定しておき(例えば、L=16)、そうするとLによる除算がシフト演算子によって効率よく行えることも想起されたい。
分数適応が好ましいのは、適応G/Rコーデックおよび方法では、生成した符号ごとにG/Rパラメータkの調整を行うためである。言い換えると、入力値またはストリングを符号化した後で、適応規則を実行する。kの適応を直接に整数値である変化量(changes)によって行うと、それは整数であるために、可能な結果は、同じままであるか、少なくとも1だけ増えるか減るかに限られてしまう。しかし、入力データが大きくなっていく状態を考えてみると、これは、パラメータを増加させるべきであることを意味する。
分数適応により、kの分数インクリメントが可能になる。例えば、kを1の代わりに0.5だけ増やすことができる。しかし、kが整数パラメータであるために、これはできない。このため、分数適応では、整数インクリメントをKにおいて行い、KをLで割って、kの分数インクリメントを与えるのである。これにより、パラメータkに振動が起きないことが保証される。
分数インクリメントを使用する代わりに、データに減少または増加が起きた場合には、パラメータを増加または減少させる前に、符号化サイクルをある回数進ませる(pass)ようなフラグを定義することが可能である。符号化サイクルの数を把握しておく新しいパラメータを1つ定義できるはずである。言い換えると、そのパラメータは、諸パラメータを変更する前に、その状況(入力データの増加または減少)が何回起きるべきかを把握しておくことになるはずである。しかし、この技法は試みたが、分数適応からより優れた結果が得られたことに注意されたい。
Golomb−Rice(k)パラメータ適応
G/Rパラメータkの適応は、入力値またはストリングの符号化が済むごとに行った。分数適応を使用する場合は、kを直接にではなく、実際にはスケーリングしたG/RパラメータKを適応させる。表3に、G/Rパラメータkに関する適応規則を述べている。値uの符号化の後、適応を制御するのはp=u>>kである適応値であり、これは、uを右にk桁シフトさせることを意味する。適応の後、kの値をk=K/Lに設定するが、ここでLは定数である。この実施例では、L=16である。
Figure 2006126810
表1からのG/R符号は、パラメータkに依存している。例えば、不完全な実行(run)の後の値が13である場合、13に対するG/R符号は「1111111111110」(k=0の場合)であり、k=1の場合は「11111101」である。kが大きいほど、13を表す数は小さくなることになる。kが小さいほど、13を表す数は大きくなることになる。したがって、パラメータkがわかっていなければならない。これは、適応G/Rコーデックおよび方法では、kに対して値をうまく選んだ場合には、よい仕事ができることを意味している。しかし、大きなkの値を使用すると、図1に示すように、入力データのより小さい値に対してより長いストリングを出力することになるため、これが常に有利なわけではない。言い換えると、kの値に関するよい選択は、入力データに依存するのである。値が13の場合、大きなkの値を使用するのはよい考えである。しかし、不完全な実行の後で値が「1」であるとする。今度は、より小さなkの値が望ましい。したがって、不完全な実行の後の小さな値に対しては、小さなkを使用するほうがよく、大きな値に対しては、大きなkを使用するほうがよい。したがって、kの選択は、値の確率に関連している。従来技術では、この効果に対する一連の理論的研究がある。すなわち、入力データに対する確率がわかっている場合には(例えば、入力データが、減衰を制御する単一のパラメータのあるラプラス分布となっている場合)、その減衰パラメータから使用すべきパラメータkの計算ができるよく知られた公式がある。これから、平均して、できるだけ少ないビット数を使用する写像が得られる。
したがって、kパラメータが適応的であることは重要である。そのため、入力データに大きな値が現れた場合には、大きな値に対しては大きなkのほうがよいため、kを増やすべきである。他方、小さな値が現れた場合には、kを減らすべきである。直観的に、大きな値に対してはkを増やすべきであり、小さな値に対してはkを減らすべきであることが理解されよう。すると、kの変更を(分数適応を使用している場合のように)十分に小さなペースで行っている限り、入力データに対する最適パラメータを、常に正しく追跡することになる。
表3に示したkに関する適応規則は、顕著に新しいものである。適応G/Rコーデックおよび方法では、どのような値も現れる可能性があり、そのため、その値を符号化しなければならない。符号化は、適応G/R符号化器およびG/Rパラメータkを用いて行う。表3を参照すると、入力データはxである。入力データxは、どのような整数値である可能性もあるが、小さなxの尤度がより高い(正でもあり得、負でもあり得る)。しかし、G/R符号化は、正の数専用である。xの簡単な写像を使用して(式4を参照されたい)xからuへの写像を行う。kの適応は、適応値pによって行い、これは、uを右にk桁だけシフトしたものとして定義する。したがって、適応値pはuをスケーリングして小さくした形になっている。あるいは、これと同等であるが、pパラメータは、u/2に対する整数の近似である。k桁だけ右にシフトすることは、その数を2で割ることと同等である。例えば、ある数を5ビット右にシフトさせた場合、これは、その数を32(すなわち2)で割ることと同じである。余りは捨て、商だけを使用する。
表3を参照すると、適応値pが0に等しい場合は、Kを更新し、整数定数B3だけ減らしたKで置き換える。適応値pが1に等しい場合は、Kを変えずにおく。適応パラメータpが1より大きい場合は、Kを更新し、適応値pだけ減らしたKで置き換える。
適応値であるpが1に等しい場合、これは、uの値が2に近かったことを意味するが、これらは、パラメータkが正しくなっているような値である。したがって、表3に示すように、変更を行わない。適応値pの値が0である場合は、これは、入力値が2よりも小さかったことを意味する。つまり、kを減らし始めるべき時だということである(入力値が2よりも小さいため)。適応値pが1より大きい場合は、尤度はずっと低いが、これは、入力値が非常に大きくことの尤度は高くないためである。しかし、その数が大きく、かつp>1である場合には、kパラメータを増やし始めるべき時である。
適応G/R符号化器
図9は、図2および4に示した、適応G/R符号化器200の符号化の詳細を、G/Rパラメータkの適応規則を含めて示す一実施例である。プロセスが始まる(囲み枠905)のは、入力値uを読み込むこと(囲み枠910)からである。適応G/R符号化器200の2つの主なプロセスは、G/R符号化(囲み枠915)およびG/Rパラメータ適応(囲み枠920)である。
G/R符号化915のプロセスは、適応値pおよびvを計算することから始まる(囲み枠925)。ビットストリームの末尾に、1に等しいビットp個を付加する(囲み枠930)。次いで、kビットの2進の値であるvをビットストリームに付加する(囲み枠935)。これらの動作は、表1に定義する適応Golomb−Rice符号化器を含む。
G/Rパラメータ適応920のプロセスは、適応値pが1に等しいかどうかを判断すること(囲み枠940)を含む。そうである場合、適応値pは変えずにおく(接点945)。そうである場合、適応値pが0に等しいかどうかという別の判断を行う(囲み枠950)。そうでない場合、Kを更新し、整数定数B3だけ減らしたKで置き換える(囲み枠955)。他の場合、Kを更新し、適応値pだけ増やしたKで置き換える(囲み枠960)。最後に、プロセスでは、kを、Lで割ったKに設定し(囲み枠965)、プロセスは終了する(囲み枠970)。
結果
この実施例の適応G/Rコーデックおよび方法を、画像、オーディオ、および地図情報の圧縮用のアプリケーション内に実装している。こうしたアプリケーション内で適応G/Rコーデックおよび方法を使用したところ、圧縮率は最も高度なエントロピー符号化器に匹敵するという結果が得られているが、実装はより単純に行われている。
特に、整数データに対する既存のエントロピー符号化器に関しては、適応G/Rコーデックおよび方法では、図1の確率分布のような、情報源記号の確率分布の大きなクラスに対して、理論上の最大値(情報源エントロピーによって決まる)に近い圧縮率が達成されている。例としては、よく知られているGolomb−Riceおよびハフマン符号化器が効率的であるのは、記号あたり1ビット以上の情報源エントロピーに対してに限られる。
VIII.復号化
また、適応G/Rコーデックおよび方法は、上の符号化器の説明に基づいて精確に実装することのできる復号化器を含む。図2Bを参照すると、コンピューティング装置(囲み枠250)が実装できるのは、G/R復号化器240だけである。適応G/R復号化器240および方法では、符号化済みビットストリームからコードワードを受け取る(囲み枠230)。次に、適応G/R復号化器240では、コードワードの復号化を、適応G/R符号化器200に関して上で述べた逆の規則を適用することによって行う。次に、G/Rパラメータの適応を、適応G/R符号化器に関する規則と厳密に同じ規則を用いて行う。最後に、復号化した(すなわち、再構成した)整数データを出力する(囲み枠260)。
符号化規則は、一意的に復号化可能であり、復号化器に関する適応規則は、符号化器のそれと同一である以上、符号化規則および適応規則のこれまでの説明は、復号化器の動作を精確に記述するものである。
本発明の以上の説明は、例示および説明の目的で提示している。これは、網羅的であること、または、本発明を開示した精確な形に限定するものではない。多くの修正および変形が上記の教示を考慮して可能である。本発明の範囲を限定するのは、本発明の詳細な説明ではなく、本明細書に添付の特許請求の範囲であるものとする。
本明細書で開示する適応ランレングスGolomb−Rice(RLGR)符号化器および方法とともにうまく動作する整数値に対する典型的な確率分布を示す図である。 本明細書で開示する適応Golomb−Rice(G/R)コーデックおよび方法の符号化器部分の例示的な実装形態を示す構成図である。 本明細書で開示する適応Golomb−Rice(G/R)コーデックおよび方法の復号化器部分の例示的な実装形態を示す構成図である。 図2に示す適応G/Rコーデックおよび方法を実装できる適切なコンピューティングシステム環境の一例を示す図である。 図2に示す適応G/R符号化器のコンポーネントを示す一般的な構成図である。 図2および4に示す適応G/R符号化器および方法の一般的な動作を示す一般的な流れ図である。 図5に示す適応G/R符号化器および方法のさらなる詳細を示す流れ図である。 図4に示す適応G/Rコーデックおよび方法のGolomb−Rice(G/R)パラメータ適応モジュールの動作の詳細な流れ図である。 図7に示すGolomb−Rice(G/R)パラメータ適応モジュールで使用する適応値の計算の詳細な流れ図である。 図2および4に示す適応G/R符号化器の符号化の詳細を、G/Rパラメータkの適応規則を含めて示す実施例である。
符号の説明
200 適応Golomb−Rice(G/R)符号化器
210 第1のコンピューティング装置
220 整数データ
230 符号化済みビットストリーム
230 符号化済みビットストリーム
240 Golomb−Rice(G/R)復号化器
250 第2のコンピューティング装置
260 再構成された整数データ
200 適応G/R符号化器
400 入力値
410 Golomb−Rice(G/R)符号化モジュール
420 コードワード
430 Golomb−Rice(G/R)パラメータ適応モジュール
440 更新したG/Rパラメータ
450 次の入力値

Claims (40)

  1. デジタルデータを処理する方法であって、
    前記デジタルデータの入力値の符号化をGolomb−Rice(G/R)パラメータを用いて行って、前記入力値に対するコードワードを生成すること、
    G/Rパラメータの更新を、適応規則を有する後方適応技法を用いて、前記コードワードを生成した後に行うこと、および
    前記符号化および更新を、前記デジタルデータの値ごとに繰り返すこと
    を備えることを特徴とする方法。
  2. 適応値を定義すること、および
    前記適応値が0に等しい場合、前記G/Rパラメータを減らすこと
    をさらに備えることを特徴とする請求項1に記載の方法。
  3. 前記適応値が0に等しい場合、前記G/Rパラメータを整数定数だけ減らすことをさらに備えることを特徴とする請求項2に記載の方法。
  4. 前記適応値が1に等しい場合、前記G/Rパラメータを変えずにおくことをさらに備えることを特徴とする請求項2に記載の方法。
  5. 前記適応値が1より大きい場合、前記G/Rパラメータを増やすことをさらに備えることを特徴とする請求項4に記載の方法。
  6. 前記適応値が1より大きい場合、前記G/Rパラメータを前記適応値だけ増やすことをさらに備えることを特徴とする請求項5に記載の方法。
  7. スケーリングパラメータを定義すること、および
    スケーリングしたG/Rパラメータを、前記G/Rパラメータに前記スケーリングパラメータを掛けたものと等しいと定義すること
    をさらに備えることを特徴とする請求項1に記載の方法。
  8. 前記G/Rパラメータの代わりにスケーリングしたG/Rパラメータの更新を、適応規則を有する後方適応技法を用いて、前記コードワードを生成した後に行うことをさらに備えることを特徴とする請求項7に記載の方法。
  9. 前記スケーリングパラメータを16に等しく設定すること、および
    前記G/Rパラメータの値を前記デジタルデータの減衰パラメータに基づいて決定すること
    をさらに備えることを特徴とする請求項8に記載の方法。
  10. 前記デジタルデータは、(a)各値に対する最も確率の高い値は0であり、(b)0以外の値の確率は、前記0以外の値が増加するにつれて減少するような値を有する整数ベクトルをさらに備えることを特徴とする請求項1に記載の方法。
  11. 請求項1に記載の方法を実行するためのコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
  12. 整数値を有するデジタル整数データを符号化するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記符号化することは、
    前記整数値のそれぞれの符号化を、適応Golomb−Rice(G/R)符号化およびG/Rパラメータkを用いて行って、前記整数値ごとにコードワードを生成すること、
    スケーリングしたG/RパラメータKを前記G/Rパラメータkを用いて定義すること、および
    前記スケーリングしたG/RパラメータKの更新を、後方適応規則を用いてコードワードの生成が済むごとに行うこと
    を備えることを特徴とするコンピュータ可読媒体。
  13. スケーリングパラメータLを定義すること、および
    前記スケーリングしたG/RパラメータKを、K=k掛けるLと定義すること
    をさらに備えることを特徴とする請求項12に記載のコンピュータ可読媒体。
  14. 前記スケーリングパラメータを2の累乗である値に等しく設定することをさらに備えることを特徴とする請求項13に記載のコンピュータ可読媒体。
  15. 前記デジタル整数データは、N個の整数を含むベクトルxをさらに備え、前記ベクトルxの各要素x(n)は、n=0からN−1として、確率分布が、最も確率の高い値は0であり、0からはるかに離れたところの値の確率が急速に減少するようなものであることを特徴とする請求項12に記載のコンピュータ可読媒体。
  16. 前記確率分布は、式
    Figure 2006126810
    で与えられ、パラメータθにより、xの絶対値が増加する際の確率の減衰のレートが制御されることを特徴とする請求項15に記載のコンピュータ可読媒体。
  17. 適応値pを定義すること、および
    p=0である場合、Kを(K−B3)で置き換えること
    をさらに備え、B3は整数定数であることを特徴とする請求項12に記載のコンピュータ可読媒体。
  18. p=1である場合、Kを変えずにおくことをさらに備えることを特徴とする請求項17に記載のコンピュータ可読媒体。
  19. p>1である場合、Kを(K+p)で置き換えることをさらに備えることを特徴とする請求項18に記載のコンピュータ可読媒体。
  20. x>0である場合、パラメータuを2xと定義すること、
    x<0である場合、uを−2x−1と定義すること、および
    p=u>>k、すなわちpは右にk桁シフトしたuに等しいと定義すること
    をさらに備えることを特徴とする請求項17に記載のコンピュータ可読媒体。
  21. デジタル整数データを符号化および復号化するためのコンピュータ実装プロセスであって、
    前記デジタル整数データの各値xの符号化を、適応Golomb−Rice(G/R)符号化およびG/Rパラメータkを用いて行うこと、
    スケーリングしたG/Rパラメータを、Lをスケーリングパラメータとして、K=k*Lと定義すること、
    適応規則を有する後方適応技法を使用して、前記スケーリングしたG/RパラメータKの更新を、前記デジタル整数データの値xの符号化が済むごとに行うこと、
    前記デジタル整数データの前記符号化済みの値をビットストリームに付加すること、および
    前記ビットストリームの復号化を、G/R復号化器を用いて行って、前記デジタル整数データの各値xを厳密に復元すること
    を備えることを特徴とするコンピュータ実装プロセス。
  22. x>0である場合、xを、写像パラメータu=2xで置き換えること、
    x<0である場合、xを、u=−2x−1で置き換えること、および
    適応パラメータpを、右にk桁シフトしたu、すなわちp=u>>kと定義すること
    をさらに備えることを特徴とする請求項21に記載のコンピュータ実装プロセス。
  23. 前記適応規則は、p=0の場合、Kを(K−B3)で置き換えることをさらに備え、B3は整数定数であることを特徴とする請求項22に記載のコンピュータ実装プロセス。
  24. 前記適応規則は、p=1の場合、Kを変えずにおくことをさらに備えることを特徴とする請求項23に記載のコンピュータ実装プロセス。
  25. 前記適応規則は、p>1の場合、Kを(K+p)で置き換えることをさらに備えることを特徴とする請求項24に記載のコンピュータ実装プロセス。
  26. 1つまたは複数のプロセッサによって実行されると、請求項21に記載のコンピュータ実装プロセスを実施させる、コンピュータ可読命令をその上に有することを特徴とする1つまたは複数のコンピュータ可読媒体。
  27. 整数値を含むデジタル整数データを符号化するための適応Golomb−Rice(G/R)符号化器であって、
    G/Rパラメータkを有する、前記整数値を符号化するためのGolomb−Rice(G/R)符号化器と、
    前記G/Rパラメータkの更新を、前記整数値を符号化するごとに、適応規則を有する後方適応技法を用いて行う手段と
    を備えることを特徴とする適応G/R符号化器。
  28. 前記適応規則は、前記G/Rパラメータkの更新を次のように行う手段をさらに備えることを特徴とする請求項27に記載の適応G/R符号化器:
    適応値pを定義すること、
    p=0である場合、kを、整数定数だけ減らすこと、
    p=1である場合、kを変えずにおくこと、および
    p>1である場合、kを、pだけ増やすこと。
  29. スケーリングしたG/RパラメータKを次のように定義する手段をさらに備えることを特徴とする請求項28に記載の適応G/R符号化器:
    スケーリングパラメータを定義すること、
    S=s*Lを定義すること、および
    K=k*Lを定義すること。
  30. kの代わりにKの更新を、前記適応規則を用いて行う手段をさらに備えることを特徴とする請求項29に記載の適応G/R符号化器。
  31. 符号化済みのビットストリームを復号化するための方法であって、
    コードワードを前記符号化済みのビットストリームから受け取ること、
    前記コードワードの復号化をGolomb−Rice(G/R)パラメータを用いて行うこと、
    前記G/Rパラメータの更新を、適応規則を有する後方適応技法を用いて、前記コードワードを復号化した後に行うこと、および
    前記復号化および更新を、前記符号化済みのビットストリームのコードワードごとに繰り返して、再構成されたデジタルデータを復元すること
    を備えることを特徴とする方法。
  32. 適応値を定義すること、
    前記適応値が0に等しい場合、前記G/Rパラメータを減らすこと、
    前記適応値が1に等しい場合、前記G/Rパラメータを変えずにおくこと、および
    前記適応値が1より大きい場合、前記G/Rパラメータを増やすこと
    をさらに備えることを特徴とする請求項31に記載の方法。
  33. 前記適応値が0に等しい場合、前記G/Rパラメータを整数定数だけ減らすことをさらに備えることを特徴とする請求項32に記載の方法。
  34. 前記適応値が1より大きい場合、前記G/Rパラメータを前記適応値だけ増やすことをさらに備えることを特徴とする請求項32に記載の方法。
  35. スケーリングパラメータを定義すること、および
    スケーリングしたG/Rパラメータを、前記G/Rパラメータ掛ける前記スケーリングパラメータに等しいと定義すること
    をさらに備えることを特徴とする請求項31に記載の方法。
  36. 請求項31に記載の方法を実行するためのコンピュータ実行命令を有することを特徴とするコンピュータ可読媒体。
  37. 符号化済みビットストリームへの符号化が、前記デジタル整数データの入力値の符号化をGolomb−Rice(G/R)パラメータを用いて行って前記入力値に対するコードワードを生成し、前記G/Rパラメータの更新を適応規則を有する後方適応技法を用いて、前記コードワードを生成した後に行い、前記符号化および更新を、前記デジタル整数データの入力値ごとに繰り返す符号化プロセスによって行われた前記デジタル整数データを復号化するためのプロセスであって、
    一連のコードワードを前記符号化済みビットストリームから受け取ること、
    前記コードワードのそれぞれの復号化を、適応G/R復号化器およびG/Rパラメータkを用いて行うこと、
    スケーリングしたG/RパラメータKの定義を、前記G/Rパラメータkを用いて行うこと、および
    前記スケーリングしたG/RパラメータKの更新を、コードワードの復号化が済むごとに、適応規則を有する前記後方適応技法を用いて行うこと
    を備えることを特徴とするプロセス。
  38. 適応値pを定義すること、および
    p=0である場合、前記スケーリングしたG/RパラメータKを、B3を整数定数として、(K−B3)で置き換えること
    をさらに備えることを特徴とする請求項37に記載のプロセス。
  39. p=1である場合、前記スケーリングしたG/RパラメータKを変えずにおくことをさらに備えることを特徴とする請求項37に記載のプロセス。
  40. p>1である場合、前記スケーリングしたG/RパラメータKを(K+p)で置き換えることをさらに備えることを特徴とする請求項37に記載のプロセス。
JP2005277829A 2004-10-29 2005-09-26 後方適応規則を用いた整数データの無損失適応Golomb−Rice符号化および復号化 Pending JP2006126810A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/977,701 US7580585B2 (en) 2004-10-29 2004-10-29 Lossless adaptive Golomb/Rice encoding and decoding of integer data using backward-adaptive rules

Publications (1)

Publication Number Publication Date
JP2006126810A true JP2006126810A (ja) 2006-05-18

Family

ID=35500928

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005277829A Pending JP2006126810A (ja) 2004-10-29 2005-09-26 後方適応規則を用いた整数データの無損失適応Golomb−Rice符号化および復号化

Country Status (5)

Country Link
US (1) US7580585B2 (ja)
EP (1) EP1653628B1 (ja)
JP (1) JP2006126810A (ja)
KR (1) KR20060051149A (ja)
CN (1) CN1783144A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008072562A (ja) * 2006-09-15 2008-03-27 Nec Corp 符号化装置とその方法、復号装置とその方法、および符号化ならびに復号プログラム
JP2009540670A (ja) * 2006-06-05 2009-11-19 エセックス パ エルエルシー データ符号化
WO2010084951A1 (ja) * 2009-01-23 2010-07-29 日本電信電話株式会社 パラメータ選択方法、パラメータ選択装置、プログラム及び記録媒体
JP2018078625A (ja) * 2012-04-13 2018-05-17 キヤノン株式会社 符号化ビデオデータの変換単位のサブブロックを符号化又は復号するための方法、装置、及び、プログラム

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7782233B2 (en) * 2004-10-13 2010-08-24 Electronics And Telecommunications Research Institute Method and apparatus for encoding/decoding point sequences on laser binary representation
US7930739B1 (en) * 2005-05-24 2011-04-19 Symantec Corporation Scaled scanning parameterization
US20070110151A1 (en) * 2005-11-14 2007-05-17 Ess Technology, Inc. System and method for video frame buffer compression
KR100754611B1 (ko) * 2006-01-24 2007-09-05 삼성전자주식회사 데이터 전송 장치 및 방법
BRPI0718239B1 (pt) 2006-11-14 2019-12-24 Nippon Telegraph & Telephone processo de codificação de fonte de informação, processo de decodificação de fonte de informação, aparelho e codificação de fonte de informação e aparelho de decodificação de fonte de informação
US7991622B2 (en) 2007-03-20 2011-08-02 Microsoft Corporation Audio compression and decompression using integer-reversible modulated lapped transforms
US8086465B2 (en) * 2007-03-20 2011-12-27 Microsoft Corporation Transform domain transcoding and decoding of audio data using integer-reversible modulated lapped transforms
US7728739B2 (en) * 2007-10-10 2010-06-01 Apple Inc. Entropy codec with variable divisor
JP4888335B2 (ja) * 2007-10-25 2012-02-29 ソニー株式会社 符号化方法及び装置、並びにプログラム
US8817882B2 (en) * 2010-07-30 2014-08-26 Qualcomm Incorporated Coding blocks of data using a generalized form of golomb codes
US8456333B1 (en) * 2010-10-22 2013-06-04 Smith Micro Software, Inc. Advanced solid block splitting for lossless data compression
US8537038B1 (en) * 2010-10-22 2013-09-17 Smith Micro Software, Inc. Efficient compression method for sorted data representations
CN102368385B (zh) * 2011-09-07 2013-08-14 中科开元信息技术(北京)有限公司 后向块自适应Golomb-Rice编解码方法及装置
EP2774360B1 (en) 2011-11-04 2017-08-02 Huawei Technologies Co., Ltd. Differential pulse code modulation intra prediction for high efficiency video coding
CN103931197B (zh) 2011-11-08 2018-01-23 谷歌技术控股有限责任公司 确定用于变换系数的二进制码字的方法
KR101672107B1 (ko) 2011-11-08 2016-11-02 구글 테크놀로지 홀딩스 엘엘씨 변환 계수들에 대한 이진 코드워드들을 결정하는 방법
US20130188729A1 (en) * 2012-01-21 2013-07-25 General Instrument Corporation Method of determining binary codewords for transform coefficients
CN105027560A (zh) 2012-01-21 2015-11-04 摩托罗拉移动有限责任公司 确定用于变换系数的二进制码字的方法
WO2013109993A1 (en) 2012-01-21 2013-07-25 General Instrument Corporation Method of determining binary codewords for transform coefficients
US9479780B2 (en) 2012-02-01 2016-10-25 Google Technology Holdings LLC Simplification of significance map coding
EP2810440A1 (en) 2012-02-04 2014-12-10 General Instrument Corporation Devices and methods for context reduction in last significant coefficient position coding
MY167815A (en) 2012-04-15 2018-09-26 Samsung Electronics Co Ltd Parameter update method for entropy coding and decoding of conversion coefficient level, and entropy coding device and entropy decoding device of conversion coefficient level using same
US9641854B2 (en) 2014-05-19 2017-05-02 Mediatek Inc. Count table maintenance apparatus for maintaining count table during processing of frame and related count table maintenance method
US10142636B2 (en) * 2014-06-09 2018-11-27 Sony Corporation Communication system with coding mechanism and method of operation thereof
CN104519402B (zh) * 2014-12-16 2018-05-01 深圳市九洲电器有限公司 节目信息提供方法及系统
US9781424B2 (en) 2015-01-19 2017-10-03 Google Inc. Efficient context handling in arithmetic coding
US9705526B1 (en) * 2016-03-17 2017-07-11 Intel Corporation Entropy encoding and decoding of media applications
CN105915227B (zh) * 2016-04-08 2019-03-15 苏州大学 自适应的混合的数据无损压缩系统
CN105915228B (zh) * 2016-04-08 2018-12-14 苏州大学 自适应的混合的数据无损压缩方法
CN109788290A (zh) * 2017-11-13 2019-05-21 慧荣科技股份有限公司 影像处理装置及利用帧内预测的无损影像压缩方法
US10802795B2 (en) 2018-08-21 2020-10-13 Semiconductor Components Industries, Llc Systems and methods for image data compression
EP3734973B1 (en) * 2019-05-02 2023-07-05 Sick IVP AB Method and encoder relating to encoding of pixel values to accomplish lossless compression of a digital image
CN110889893B (zh) * 2019-10-25 2021-10-08 中国科学院计算技术研究所 表达几何细节和复杂拓扑的三维模型表示方法和系统
US11908364B2 (en) 2020-09-23 2024-02-20 Samsung Electronics Co., Ltd. Low-power display driving circuit performing internal encoding and decoding and operating method thereof
US11997317B2 (en) * 2021-09-29 2024-05-28 Tencent America LLC Techniques for constraint flag signaling for range extension with persistent rice adaptation
CN117411947B (zh) * 2023-12-15 2024-02-23 安徽中科大国祯信息科技有限责任公司 基于云边协同的水务数据快速传输方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764374A (en) * 1996-02-05 1998-06-09 Hewlett-Packard Company System and method for lossless image compression having improved sequential determination of golomb parameter
EP0940994B1 (en) * 1998-03-06 2014-04-16 Canon Kabushiki Kaisha Image processing apparatus and method and storage medium storing steps realizing such method
JP3839974B2 (ja) * 1998-10-06 2006-11-01 キヤノン株式会社 符号化装置
US6477280B1 (en) * 1999-03-26 2002-11-05 Microsoft Corporation Lossless adaptive encoding of finite alphabet data
US6771828B1 (en) 2000-03-03 2004-08-03 Microsoft Corporation System and method for progessively transform coding digital data
US6735254B2 (en) 2001-06-29 2004-05-11 Qualcomm, Inc. DCT compression using Golomb-Rice coding
US6650784B2 (en) * 2001-07-02 2003-11-18 Qualcomm, Incorporated Lossless intraframe encoding using Golomb-Rice
US7015837B1 (en) * 2004-10-29 2006-03-21 Microsoft Corporation Lossless adaptive encoding and decoding of integer data
US6987468B1 (en) * 2004-10-29 2006-01-17 Microsoft Corporation Lossless adaptive encoding and decoding of integer data

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009540670A (ja) * 2006-06-05 2009-11-19 エセックス パ エルエルシー データ符号化
JP2008072562A (ja) * 2006-09-15 2008-03-27 Nec Corp 符号化装置とその方法、復号装置とその方法、および符号化ならびに復号プログラム
WO2010084951A1 (ja) * 2009-01-23 2010-07-29 日本電信電話株式会社 パラメータ選択方法、パラメータ選択装置、プログラム及び記録媒体
JP4866484B2 (ja) * 2009-01-23 2012-02-01 日本電信電話株式会社 パラメータ選択方法、パラメータ選択装置、プログラム及び記録媒体
US8576910B2 (en) 2009-01-23 2013-11-05 Nippon Telegraph And Telephone Corporation Parameter selection method, parameter selection apparatus, program, and recording medium
JP2018078625A (ja) * 2012-04-13 2018-05-17 キヤノン株式会社 符号化ビデオデータの変換単位のサブブロックを符号化又は復号するための方法、装置、及び、プログラム

Also Published As

Publication number Publication date
US7580585B2 (en) 2009-08-25
EP1653628A1 (en) 2006-05-03
CN1783144A (zh) 2006-06-07
EP1653628B1 (en) 2014-12-24
KR20060051149A (ko) 2006-05-19
US20060103556A1 (en) 2006-05-18

Similar Documents

Publication Publication Date Title
JP2006126810A (ja) 後方適応規則を用いた整数データの無損失適応Golomb−Rice符号化および復号化
US6987468B1 (en) Lossless adaptive encoding and decoding of integer data
US7015837B1 (en) Lossless adaptive encoding and decoding of integer data
Malvar Adaptive run-length/Golomb-Rice encoding of quantized generalized Gaussian sources with unknown statistics
JP5736032B2 (ja) 算術符号化のための適応型2値化
JP3367370B2 (ja) 適応符号化方法
EP3991303B1 (en) Features of range asymmetric number system encoding and decoding
CN118872279A (zh) 用于基于神经的媒体压缩的熵译码
CN100370828C (zh) 用于将参数值映像到码字索引的自适应方法和系统
JP2006129467A (ja) 整数データの無損失適応符号化・復号化
CN1878311B (zh) 用于编码和解码比特流和并列内插器的装置和方法
CN101002477A (zh) 用于压缩混合的图形和视频源的系统和方法
CN106537914B (zh) 通过限制的进位运算来执行算术编译的方法和设备
US7421138B2 (en) Data compression and expansion of a digital information signal
CN100414996C (zh) 用于编码和解码关键字数据的装置和方法
Mohamed Wireless communication systems: Compression and decompression algorithms
CN111225207B (zh) 用于对变换系数进行编码的方法和装置
CN111225205B (zh) 用于执行区块内预测的方法和装置
US7747093B2 (en) Method and apparatus for predicting the size of a compressed signal
CN118633290A (zh) 使用量化熵编解码分布参数的神经网络媒体压缩
Boyd Determining Optimal Compression Effort For JPEG-LS Images

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110610

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111108