信号データのブロック浮動小数点圧縮
信号サンプルを圧縮するための方法及び装置は、ブロック浮動小数点表示を用いるものであり、グループ内の最大絶対値のサンプルによって仮数毎のビット数が決定される。圧縮器は、グループ毎に固定数のサンプルを有する信号サンプルのグループを定義する。グループ内の最大絶対値のサンプルが、最大サンプル値を表わすためのビット数に対応する指数値を定める。指数値は、コード化されて指数トークンを形成する。連続する指数値間の指数差分を、個々に又は合同でコード化することができる。グループ内のサンプルは、対応する仮数に対してマッピングされ、各仮数は、指数値に基づくビット数を有する。指数値に応じたLSBを除去することにより、より少ないビットを有する仮数が生成される。フィードバック制御は、圧縮ビットレート及び/又は品質要求基準を監視する。この要約書は、特許請求の範囲に記載された本発明の範囲を限定するものではない。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブロック浮動小数点表示の効率的なコード化を用いた信号データの圧縮及び復元に関し、より具体的には、信号サンプルを表現するビット数を減らして、所望の出力データ転送率又は所望の品質要求基準を実現するためのブロック浮動小数点コード化に関する。
【背景技術】
【0002】
信号データの圧縮は、信号データ量を減らしながらも正確な情報を維持することが望ましい信号又は画像処理アプリケーションにおいて、リソースをより効率的に用いることを可能にする。信号データを圧縮することにより、システム内のメモリ又はその他の記憶装置のデータ記憶容量の要求仕様が低減される。信号データを圧縮することにより、システム内のデータ転送インターフェースに求められる帯域幅の要求仕様が低減される。コンピュータ処理的に効率的な圧縮及び復元のための操作は、システムのコンピューティング・リソース及び待ち時間に与える影響を小さくする。
【0003】
信号処理におけるブロック浮動小数点表示は、限られたビット数で表わすことができるダイナミックレンジを拡げるという利点がある。ブロック浮動小数点表示は、信号データの精度を維持しながら、広いダイナミックレンジをカバーすることができる。典型的なブロック浮動小数点表示においては、あるサンプルのグループに対して、そのグループ内の最大絶対値のサンプルに基づいて共通指数が決定される。グループ内の各サンプルの仮数は、最大サンプルの仮数を収容するビット数により表わされる。グループの共通指数及び仮数を連続的にパッキングして、そのグループについての圧縮サンプルを表わすことができる。ブロック浮動小数点表示は、振幅が経時的に変動するとはいえ特定のグループ内の隣接するサンプルは同様の振幅を有するような信号ダイナミクスの場合に有用である。幾つかの信号タイプは、このようなダイナミクスを有する。例として、レーダ、ソナー及び超音波信号のような、次第に減衰するパルス信号が挙げられる。
【0004】
以下の特許は、種々のアプリケーションにおけるブロック浮動小数点データ表現を用いた圧縮を記載する。
【0005】
1998年5月12日に発行された「Waveform Data Compression Apparatus and Waveform Data Expansion Apparatus」と題する特許文献1において、Katsumata他は、ブロック浮動小数点表示を用いてサンプル値信号をブロック毎に圧縮することを記載する。信号サンプルの各ブロックについて、あるパターンの非隣接サンプル対の間で多数の相加平均が計算される。サンプル対の相加平均は、そのサンプル対の中間にある中間サンプルの推定値を表わす。サンプル対の間の距離は、そのブロックについて計算される相加平均の分だけ、あるパターンに従って、即ち、ブロックの両端のサンプル対、ブロックの一端のサンプルと中央のサンプルとの対、などのように、減少する。相加平均が、対応する中間サンプル値から減算され、差分サンプルが形成される。差分サンプルの仮数は、ブロック内でのそれらのインデックス(アドレス)に基づくコード化のために割り当てられたビット数であり、そのため、1つのブロックについてのコード化された仮数は、異なる長さを有する。ブロック内の最後のサンプルの仮数は、固定ビット数を用いて線形コード化される。ブロックの指数は、上位2ビットが「01」又は「10」となるような左シフトの最大数に基づく式を用いて決定され、これは、いかなる符号拡張ビットも有効に除去する。差分サンプル及び最後のサンプルの仮数は、そのブロックの仮数に割り当てられたビット数に適合するように最下位ビット(LSB)を除去するために、左シフトされ、丸められる。圧縮データのブロックは、コード化された指数及びコード化された仮数を含む。他の実施形態において、差分サンプルをコード化する代わりに、最後のサンプルに加えて他のサンプルを線形コード化することができる。他の実施形態は、同じブロック内のサンプルについて、より複雑な仮数長のパターン、及び線形対差分コード化を含む。これらの実施形態は、ブロック内のサンプルのインデックスに基づいた、仮数長のパターン、指数、及び線形対差分コード化を指示する、そのブロックのパターン・コードを含む。
【0006】
2000年2月1日に発行された「Coding Method and Apparatus for Multiple Channels of Audio Information Representing Three−Demensional Sound Fields」と題する特許文献2において、Davis他は、音声信号の変換係数のブロック浮動小数点コード化を記載する。サンプリングされた音声信号に適用される離散フーリエ変換(DFT)のような離散変換は、変換係数を生成する。変換係数は、連続的な変換係数のサブバンド又はブロックにグループ化される。ブロックの共通指数は、サブバンド内の最大スペクトル成分に基づいて決定される。一実施形態において、ブロック浮動小数点表示のダイナミックレンジを拡げるために、サブバンドのグループに主指数が割り当てられる。主指数は、サブバンドのグループ内の全ての指数の最小指数値を表わし、サブバンド指数は、主指数と、サブバンド内の最大変換係数の指数との間の差分を表わす。量子化器は、仮数をサブバンドのビット割り当てに対応するビット長で表わすために、サブバンド指数及び主指数に従ってサブバンドの仮数を左シフトし、LSBを切り捨てる。適応ビット・アロケータは、各サブバンドにビット数を割り当てる。好ましい実施形態において、ビット割付けは、サブバンド内のスペクトル成分の振幅に基づく。
【0007】
Christensenは、非特許文献1の論文において、合成開口レーダ(SAR)のデータのブロック浮動小数点表示を記載する。この論文は、ブロックサイズ、量子化ステップサイズ及びブロック指数を表わすビット数といったコード化パラメータに対する、信号対雑音比(SNR)の観点から、ブロック浮動小数点表示の性能の理論的分析を提示する。ブロック毎の固定ビット数を用いたSARデータに対するブロック浮動小数点のSNR性能も提示される。
【0008】
Huneycuttは、非特許文献2の論文において、イメージングレーダのデータの浮動小数点表示を記載する。このシステムは、サンプル毎の最上位の4つのビットとそれに続くサンプルの各ブロックの共通指数とを用いて8ビットのデータ・サンプルをコード化する、ブロック浮動小数点量子化器(BFPQ)を含む。
【0009】
以下の特許及び論文は、種々のアプリケーションにおいて、(上述のブロック毎の方式とは対照的に)サンプル毎の方式で浮動小数点表示を用いて信号データを圧縮することを記載する。
【0010】
1999年8月に発行された「Method and Apparatus for Signal Compression and Processing Using Logarithmic Differential Compression」と題する特許文献3において、Larsonは、より少ないサンプル毎のビット数を用いる浮動小数点形式でサンプル値信号を表わすための、対数微分圧縮(LDC)を記載する。フィルタリングのような信号処理計算は、復元前に、圧縮サンプルに適用される。対数微分圧縮は、アナログ−デジタル変換前又は後に信号の一次微分を計算して微分サンプルを生成することを含む。微分サンプルの絶対値は小さくなるので、より少ないビットでこれを表わすことが可能になる。各微分サンプルは、符号ビットと、指数フィールドと、仮数フィールドとを有する浮動小数点形式で表わされ、圧縮信号のサンプルを形成する。浮動小数点表示内の仮数フィールド及び指数フィールドの長さは、全ての微分サンプルについて同一であり、音声及び映像信号のような特定のアプリケーションに適するように選択することができる。LDCアルゴリズムは、線形であり、時間的に連続的であり、サンプル毎にサンプルに適用されるので、フィルタリング及び変換のような信号処理操作は、復元前に、圧縮データに直接適用することができる。LDCサンプルの浮動小数点表示は、対数(底2)を近似するので、圧縮データに対する信号処理操作のためのハードウェア又はソフトウェア実装の複雑さを低減することができる。例えば、対数領域における乗法は、LDCサンプルを加算することにより行うことができる。LDCデータは、ランレングスコード化、ハフマン法、LZW(Lemple−Ziv−Welch)などのその他の圧縮技術を適用することにより、さらに圧縮することができる。LDC法は、全てのサンプルについて同じ浮動小数点形式を用いるものであり、即ち、この形式は、データのブロック全体にわたって変更されない。各LDCサンプルは、指数フィールド及び仮数フィールドを含み、即ち、コード化されたデータの1つのブロック内で、指数が仮数間で共有されることはない。
【0011】
本発明者は、幾つかのアプリケーションのための、サンプル値信号の圧縮についてのブロック浮動小数点表示の適応を記載する。同一出願人による、1998年11月17日に発行された「Lossless and Loss−Limited Compression of Sampled Data Signals」と題する特許文献4において、本発明者は、サンプル値信号の微分サンプルに適用されるブロック浮動小数点エンコーダを記載する。微分サンプルは、サンプル値信号の連続するサンプル間の一次又は高次微分である。一実施形態において、ブロック浮動小数点エンコーダは、最大微分サンプルに基づいて、各ブロックの指数を決定する。ハフマン・エンコーダは、指数値の発生頻度に基づいて、ブロックの指数にコードを割り当てる。ブロックのシーケンスについてのコード化された指数は、指数配列内にパッキングされる。仮数生成器は、所与のブロック仮数を、そのブロックの指数値によって指定されるビット数を用いてコード化する。コード化された仮数は、仮数配列内にパッキングされる。
【0012】
同一出願人による幾つかの米国特許出願は、様々なタイプの信号及びシステムのための、ブロック浮動小数点コード化の適応を含む。これらは、2008年5月21日に出願された「Compression of Baseband Signals in Base Transceiver Systems」と題する米国特許出願番号第12/124,312号、2008年5月21日に出願された「Compression of Signals in Base Transceiver Systems」と題する米国特許出願番号第12/124,541号、2008年9月11日に出願された「Adaptive Compression of Computer Tomography Projection Data」と題する米国特許出願番号第12/208,839号、2008年9月11日に出願された「Edge Detection for Computed Tomography Projection Data Compression」と題する米国特許出願番号第12/208,835号、「Compression and Storage of Projection Data in a Computed Tomography System」と題する米国特許出願番号第12/352,116号、2008年1月12日に出願された「Compression and Storage of Projection Data in a Rotatable Part of a Computerd Tomography System」と題する米国特許出願番号第12/352,222号、2009年6月2日に出願された「Ultrasound Signal Compression」と題する米国特許出願番号第12/477,062号、及び2009年6月29日に出願された「Post−Beamforming Compression in Ultrasound Systems」と題する米国特許出願番号第12/494,184号を含む。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】米国特許第5,751,771号明細書
【特許文献2】米国特許第6,021,386号明細書
【特許文献3】米国特許第5,933,360号明細書
【特許文献4】米国特許第5,839,100号明細書
【非特許文献】
【0014】
【非特許文献1】Christensen、「Block Floating point for Radar Data」 IEEE Transactions on Arospace and Electronic Systems、1999年1月、第35巻、第1号、308−18頁、
【非特許文献2】Huneycutt、「Spaceborne Imaging Radar−C Instrument」IEEE Transactions on Geoscience and Remote Sensing、1989年3月、第27巻、第2号、164−9頁
【発明の概要】
【課題を解決するための手段】
【0015】
本発明の実施形態は、圧縮サンプルの一定した出力データ転送率又は一定した品質要求基準を可能にする制御特徴を備えた、強化された、サンプル値信号データのブロック浮動小数点圧縮を提供する。本発明の目的は、複数の信号サンプルを圧縮するための方法を提供することであり、信号サンプルは、サンプル毎に、あるビット数からなる。この方法は、
複数の信号サンプルを、コード化対象グループ(encoding group)のシーケンスにグループ化するステップと、
コード化対象グループのシーケンス内のコード化対象グループについて、コード化対象グループのブロック指数値を決定し、かつ、該コード化対象グループ内の各信号サンプルの仮数を決定し、該仮数は、コード化対象グループの指数値に基づくビット数を有するものである、ステップと、
コード化対象グループのシーケンスについて、コード化対象グループのブロック指数値をコード化して、シーケンス内の1つ又はそれ以上のコード化対象グループについての1つ又はそれ以上のブロック指数値を表わす、シーケンス内のコード化対象グループの指数トークンを決定する、ステップと、
指数トークン及び仮数を用いて、複数の信号サンプルを格納又は伝送のためにコード化して、圧縮データを形成するステップと、
を含む。
【0016】
本発明の別の目的は、複数のコード化された元の信号サンプルを表わす圧縮データを運ぶ入力信号を復元するための方法を提供することである。この方法は、
圧縮データを逆アセンブルして、複数の指数トークンと複数の圧縮された仮数のグループとを取得し、複数のコード化された元の信号サンプルは、指数トークンと仮数とにより表わされる、ステップと、
複数の指数トークンをデコードして、各ブロック指数値が複数の圧縮グループのうちの1つに関連付けられる複数のブロック指数値を形成する、ステップと、
圧縮グループの各々について、関連付けられた指数値を用いて、圧縮グループ内の仮数の各々を表わすビット数を決定し、各仮数の前記ビット数を対応する復サンプルにマッピングして、復元サンプルのグループを形成する、ステップと、
上記決定するステップ及び上記マッピングするステップを複数の圧縮グループに適用して、複数の復元サンプルを生成する、ステップと、
を含む。
【0017】
本発明の別の目的は、複数の信号サンプルを圧縮するための装置を提供することである。この装置は、
コード化対象グループのシーケンスを形成するために、信号サンプルをコード化対象グループのシーケンスにグループ化するための論理と、
各コード化対象グループについてブロック指数値を決定する論理と、
各コード化対象グループ内の信号サンプルを受信し、各信号サンプルについて仮数を形成し、特定のコード化対象グループの各仮数が、該特定のコード化対象グループのブロック指数値に基づくビット数を有するものである、仮数エンコーダと、
コード化対象グループのシーケンスについてブロック指数値をコード化して、1つ又はそれ以上のコード化対象グループについての1つ又はそれ以上のブロック指数値を表わす指数トークンを生成する、指数エンコーダと、
コード化対象グループのシーケンスの指数トークンと仮数とを配列して、格納又は伝送のための圧縮データを形成する、ビット・パッカと、
を含む。
【0018】
本発明の別の目的は、複数のコード化された元の信号サンプルを表わす圧縮データを運ぶ入力信号を復元するための装置を提供することである。この装置は、
複数のコード化された元の信号サンプルが複数の指数トークンと複数の圧縮された仮数のグループとにより表わされる、圧縮データを受信するバッファと
複数の指数トークンと複数の圧縮された仮数のグループとを取得するために圧縮データを逆アセンブルするための、バッファに結合された論理と、
複数の指数トークンを受信し、各ブロック指数値が圧縮された仮数のグループのうちの1つに関連付けられる複数のブロック指数値を決定する、指数デコーダと、
各々の圧縮された仮数のグループと、関連付けられたブロック指数値とを受信し、圧縮グループ内の仮数の各々を表わすビット数は、関連付けられたブロック指数値に基づくものであり、各仮数のビット数を対応する復元サンプルにマッピングして復元サンプルのグループを形成し、複数の圧縮グループをデコードして複数の復元サンプルを生成する、仮数デコーダと、
を含む。
【図面の簡単な説明】
【0019】
【図1】ブロック小数点コード化を用いて信号サンプルを圧縮する信号処理システムのブロック図である。
【図2】ブロック浮動小数点エンコーダのブロック図である。
【図3a】コード化仮数のためのn_expビットの選択の例を示す。
【図3b】同じブロック内の2つのサンプルを圧縮する例を示す。
【図4】指数トークンとして4又は8ビットを用いるコード化スキームの表である。
【図5】N_GROUPサンプルのブロックの指数コード化のブロック図である
【図6】信号サンプルの8つのブロックの指数をコード化して、単一の圧縮パケットを形成する例を示す。
【図7】図6の例の圧縮ブロックの圧縮パケットのデータ部分の図である。
【図8a】低減仮数のためにLSBを除去することを含むビット選択を示す。
【図8b】低減仮数がm_expビットを有する、同じブロック内の2つのサンプルを圧縮する例を示す。
【図9】例示的なn_exp、n_LSB及びm_expの値の表である。
【図10】LSBを除去することを含むブロック浮動小数点エンコーダのブロック図である。
【図11a】量子化プロファイル関数f(n_exp)の例を表わす、図9に示された表に対応するグラフである。
【図11b】量子化プロファイル関数f(n_exp)のグラフ表示の別の例である。
【図11c】量子化プロファイル関数f(n_exp)のグラフ表示の別の例である。
【図11d】量子化プロファイル関数f(n_exp)のグラフ表示の別の例である。
【図12】圧縮データの一定したビットレートのための、BFPエンコーダに対するフィードバック制御のブロック図である。
【図13】圧縮データの一定した品質要求基準のための、BFPエンコーダに対するフィードバック制御のブロック図である。
【図14】ブロック浮動小数点デコードを用いて圧縮パケットを復元する、信号処理システムのブロック図である。
【図15】コード化された仮数毎にn_expビットを有する圧縮グループを復元する、ブロック浮動小数点デコーダの操作のブロック図である。
【図16】コード化された仮数毎にm_expビットを有する圧縮グループを復元する、ブロック浮動小数点デコーダの操作のブロック図である。
【図17】図4のコード表に従った指数デコーダのブロック図である。
【図18】図3bに関して説明された圧縮されたサンプルを復元する例である。
【図19】図8bに関して説明された圧縮されたサンプルを復元する例である。
【図20】本技術の実施形態と共に用いるのに適したコンピュータ・システム210の単純化されたブロック図である。
【図21】様々なアプリケーションにおいて用いられる信号データを捕捉して処理するためのデータ処理システムの一般化されたブロック図である。
【図22】圧縮を含むデータ収集システム120のブロック図である。
【発明を実施するための形態】
【0020】
図1は、ブロック小数点コード化を用いて信号サンプルを圧縮する、信号処理システムのブロック図である。アナログ−デジタル変換器(ADC)200は、入力アナログ信号100を、あるサンプリング率及びサンプル毎のビット数で、サンプル値信号(sampled signal)201に変換する。圧縮器110がサンプル値信号201に適用され、圧縮サンプルを生成する。随意のプリプロセッサ300は、特定のアプリケーションのために、又は圧縮性能を向上させるために、サンプル値信号201に対して種々の操作を実行することができる。随意のプリプロセッサ300は、信号のコンディショニング、フィルタリング、時間的又は空間的ウィンドウ処理及びスケーリングのような操作を提供することができる。いくつかのアプリケーションにおける圧縮性能を向上させるために、プリプロセッサ300は、特許文献4に記載されているように、微分演算器を含むことができる。微分は、信号がベースバンド(DC)又はその近くにある限りは、サンプルの絶対値を小さくする。微分は、実際に、信号の中心周波数がサンプリング率の6分の1を越える場合には、サンプルの絶対値を大きくする。ブロック浮動小数点(BFP)エンコーダ400は、さらに後述するように、信号サンプルのグループ又はブロックを定義し、各グループについて、指数を決定し、かつ仮数をコード化して、圧縮グループを形成する。ビット・パッカ500は、圧縮グループのシーケンスから圧縮パケットを形成する。ビット・パッカは、圧縮ブロック又は圧縮パケットのサイズについての情報を圧縮コントローラ600に提供する。圧縮コントローラ600は、所望の出力データ転送率又は品質要求基準を満たすように、BFPエンコーダ400のパラメータを調整して、圧縮を増減する。ユーザは、BFPエンコーダの圧縮制御パラメータを圧縮コントローラ600に入力することができる。ユーザ入力は、所望の出力データ転送率又は品質要求基準を圧縮コントローラ600に提供することができる。さらに、圧縮コントローラ600は、制御パラメータをプリプロセッサ330に提供することができる。
【0021】
図2は、ブロック浮動小数点エンコーダ400の実施形態のブロック図である。ブロック生成器405は、共にコード化されるN_GROUPサンプル401iのブロックを定義する。N_GROUPサンプル401iについて、以下のステップに従って、最大指数がコード化され、かつN_GROUP仮数がコード化される。
N_GROUPサンプル401iの第1番目のグループについて:
1)最大絶対値を有するサンプルの指数(底2)を、例えば、N_GROUPサンプルの各グループ内の最大絶対値のlog2を計算することによって、求める。これは、コード化サンプル毎のビット数、即ちn_exp(0)を示す。
2)Sビットを用いて第1番目のグループの指数n_exp(0)を絶対コード化し、ここで、Sは、サンプル毎の元のビット数である。
3)サンプル毎のn_exp(0)ビットを用いて、N_GROUPサンプルをコード化する。
N_GROUPサンプル401iのi番目のグループ(i>0)について:
4)最大絶対値を有するサンプルのi番目の指数(底2)を求め、これは、i番目のグループ内のコード化サンプル毎のビット数、即ちn_exp(i)を示す。
5)n_exp(i−1)からn_exp(i)を減算することによりi番目の指数を差分コード化し、i番目の差分値を求める。対応するトークンを用いて、i番目の差分値をコード化し、ここで、短いトークンほど、より共通の差分値を表わし、長いトークンほど、共通が少ない差分値を表わす。
6)サンプル毎のn_exp(i)ビットを用いて、N_GROUPサンプルのi番目のグループをコード化する。
【0022】
サンプルの第1番目のグループの場合、指数n_exp(0)は直接コード化される。例えば、指数n_exp(0)は、以下のようにコード化することが可能であり、ここで、Sは、サンプル毎の元のビット数である。
a.0: n_exp(0)=0(4つのサンプル値は全てゼロである)
b.1: n_exp(0)=2(サンプル毎に2ビット)
c.2: n_exp(0)=3(サンプル毎に3ビット)
d.など S−1まで:n_exp(0)=S(サンプル毎にSビット)
【0023】
i番目のグループの場合、指数n_exp(i)は、接頭コードを用いて差分コード化することが可能であり、ここで、どのコード語も別のコード語の接頭部とはならない。差分コード化の例は、以下の通りである。
1.差分を計算する:e_diff=n_exp(i)−n_exp(i−1)
2.以下のようにe_diffをコード化する
a.0: e_diff=e(i)−e(i−1)
b.101: e_diff=+1
c.110: e_diff=−1
d.1001: e_diff=+2
e.1110: e_diff=−2
f.など
【0024】
指数差分のハフマン・コード化は、発生頻度に基づいて、異なる長さのトークンを指数差分に割り当てる。より短いハフマン・トークンを、より高頻度の指数差分値に割り当てることができる。指数n_esp(i)は、差分コード化の代わりに、例えばハフマン・コード化によって直接コード化することができる。ブロック指数のコード化の代替的手法は以下で説明される。
【0025】
図2は、N_GROUP=4のサンプルの場合のブロック浮動小数点エンコーダ400の例である。指数計算器402は、ステップ1及びステップ4に示すように、N_GROUPサンプルについて、最大指数であるn_expを決定する。最大指数は、最大絶対値を有するサンプルの底2の対数に対応する。指数トークン生成器404は、ステップ2及びステップ5に示すように、n_exp値をコード化する。仮数パッカ406は、ステップ3及びステップ6に示すように、N_GROUPサンプルの仮数をコード化し、n_expビットを有する仮数を生成する。図3aは、コード化仮数のためのn_expビットの選択の例を示す。入力サンプル420は、Kビットで表わされる。サンプル420のn_exp個の下位ビットがコード化のために選択される。選択されたビットにそのサンプルの符号ビットが付加され、得られたビットのシーケンスが、コード化サンプルを表わす。図3bは、同じブロック内の2つのサンプルを圧縮する例を示す。この例の場合、サンプルは、符号−絶対値形式で表わされる。ブロック内のN_GROUPサンプルの最大絶対値サンプル421は、「X」で示されるn_exp仮数ビットを占める。サンプル毎の元のビット数はKであり、0からK−1までのインデックスが付けられ、ビットK−1は、符号ビット「S」を表わす。圧縮サンプル422は、符号ビット「S」と共に、ステップ3及びステップ6に従って、n_exp仮数ビット「X」を表わす。サンプル423は、「Y」で示されるビットを占める、N_GROUPサンプルのブロック内の別のサンプルを表わす。圧縮サンプル424は、符号ビット「S」と共に、ステップ3及びステップ6に従って、n_expビットを用いて仮数ビット「Y」を表わす。圧縮サンプル422及び424の仮数は、非圧縮サンプル421及び423の対応する仮数と同一の整数値を有するが、各仮数のビット幅は減らされている。図2に戻ると、マルチプレクサ408は、コード化された指数トークン411と、これに続いて符号ビットを伴うN_GROUPのコード化された仮数の組とをパッキングして、N_GROUP圧縮サンプルを表わす圧縮グループを形成する。この例では、圧縮グループ410は、指数トークン411と、これに続いて4つのパッキングされた仮数(付加された符号ビットを伴う)412−0、412−1、412−2及び412−3のシーケンスとを含む。ビット・パッカ500は、連続する圧縮グループ410を連結して、圧縮パケットのデータ部分を形成することができる。代替的に、ビット・パッカ500は、グループのシーケンスに対応する指数トークンのシーケンスと、これに続いて対応する仮数の組とを配列することができる。N_GROUPとして好ましいサイズは、1グループ当たり3又は4サンプルである。しかしながら、可変のグループ・サイズを用いることもできる。
【0026】
仮数と指数とを別々にコード化することにより、更なる圧縮を提供することができ、かつ圧縮誤差を緩和することができる。指数コード化のための好ましい実施形態においては、2又はそれ以上の指数差分値が合同でコード化される。超音波、レーダ及びコンピュータ断層撮影法の生データを含む種々のアプリケーションに由来する信号データについてのブロック指数値の統計的解析は、連続する指数の90%が{−1,0、+1}の範囲内の差分を有し、連続する指数の98%が{−2,−1,0,+1,及び+2}の範囲内の差分を有することを示した。2又はそれ以上の連続的な指数の差分を合同でコード化することで、コード化された指数毎のビット数を減らすことができる。指数トークンとして4又は8ビットを用いるコード化スキームが、図4に示される。固定された指数ビット数を用いることで、任意のビット長を有する指数トークンを許容する指数コード化と比べて、圧縮及び復元の両方の複雑さが低減される。図4の表は、3つのコード化のオプション、即ち(A)2つの連続する指数差分の合同コード化、(B)1つの指数差分のコード化、及び(C)1つの指数値の絶対(又は線形)コード化、についての指数トークン値の一覧を示す。合同コード化オプション(A)についての、3列目に示された連続する指数差分{diff(i),diff(i−1)}は、第1及び第2のコード化指数差分が両方とも3つの可能な値{−1,0,+1}のうちの1つを有する、9つの異なる差分値の組み合わせを有する。表中の16個の組み合わせのうちのこれらの9つは、各々4ビットを有する指数トークンを用いてコード化することができる。1つのトークンが2つのブロックの指数をコード化するので、指数差分の合同コード化は、ブロック指数毎に2ビットを用いる。オプション(B)について、範囲{−2,−1,0,+1,+2}内の単一の指数差分のコード化と、関連付けられた指数トークンとが、一覧で示される。このオプションは、表中の16個の組み合わせのうちの5つを用いる。最後に、オプション(C)について一覧に示された指数値自体であるn_exp(i)の絶対コード化は、指数トークン毎に8ビットを用いる。本実施形態において、上位3ビットは1に設定され、下位5ビットが指数をコード化する。1に設定された上位3ビットは、その指数が絶対コード化されたことを示す。下位5ビットは、範囲{0,2,3,...,32}内の1つの絶対指数を示し、この場合、指数値1は許容されない。ニブルの整数(4ビット単位)を用いることにより、指数のコード化とその後のデコードが簡素化される。図4の指数コード化を上記のアプリケーションに由来する信号データに適用すると、指数コード化オプションについて以下の割合を示した。
(A)合同コード化オプション(2ビット/指数) − 指数の80%
(B)差分コード化オプション(4ビット/指数) − 指数の18%
(C)線形コード化オプション(8ビット/指数) − 指数の2%
【0027】
オプションの各々についてのビット/指数の加重平均は、コード化指数当たりの平均ビット数が約2.48ビットであることを示す。コード化指数毎にN_GROUPの個々のサンプルが存在するので、この指数コード化スキームは、代替的な指数コード化技術、特に仮数毎に1つの指数を用いる技術と比べて、かなりの効率を提供する。
【0028】
パケットの効率的なコード化及びデコードのために、そのパケットにより表わされる全てのサンプルの圧縮データが、パケット内に収容される。パケットの第1番目のブロックの指数を絶対コード化することで、第1番目の指数トークンはその前のパケットから独立したものとなる。パケットの最後のブロック指数は、パケットの最後から2番目のブロックと共に差分コード化することができる。最後のブロックの指数及びその前のブロックの指数に対応する指数差分は、同じパケット内のその前の指数差分と共に合同でコード化することはできるが、後続のパケットの第1番目の指数差分と共に合同でコード化することはできない。
【0029】
図5は、N_GROUPサンプル401iのブロックの指数コード化のブロック図である。このブロック図は、上述の、パケット内の最初と最後のブロック指数をコード化するための追加条件は含まない。減算器430は、現在のブロックのブロック指数n_exp(i)をその前のブロック指数n_exp(i−1)から減算して、指数差分diff(i)を形成する。決定ブロック432は、差分の絶対値が1より大きいかどうか試験する。diff(i)及び前回の反復由来の指数差分diff(i−1)の両方が1未満又は1に等しい場合には、合同エンコーダ440は、図4のオプション(A)で示されるようにdiff(i)及びdiff(i−1)の両方を合同コード化し、両方の指数差分を表わす4ビットのトークンを形成する。diff(i)が1より大きい場合には、決定ブロック436が、差分の絶対値が2より大きいかどうか試験する。diff(i)の絶対値が2より大きい場合には、絶対コード化ブロック434が、図4のオプション(C)で示されるように指数n_exp(i)をコード化して、n_exp(i)を表わす8ビットのトークンを形成する。そうでない場合には、差分コード化ブロック438が、図4のオプション(B)で示されるようにdiff(i)をコード化し、指数差分diff(i)を表わす4ビットのトークンを形成する。指数トークンは、ビット・パッカ500に与えられる。
【0030】
図6は、信号サンプルの8つのブロックの指数をコード化して、単一の圧縮パケットを形成する例を示す。この例において、最初の2つのブロックの指数は、絶対コード化(オプションC)され、トークン毎に8ビットを有する。ブロック3から6までの指数差分は、合同コード化(オプション(A))され、ブロック3及び4について4ビット指数トークンを形成し、ブロック5及び6について4ビット指数トークンを形成する。ブロック7及び8の指数差分は、各々が差分コード化され、各ブロックにつき1つの4ビット指数トークンを生成する。ブロック7の指数差diff(7)=+1は、合同指数コード化の範囲内に入るが、ブロック8の指数差diff(diff8)=−2は、範囲に入らない。従って、diff(7)及びdiff(8)には各々、4ビット指数トークン1100及び1001がそれぞれ割り当てられる。
【0031】
図7は、図6の例の圧縮ブロックの圧縮パケットのデータ部分の図である。この圧縮パケットは、ヘッダも含んでいるはずだが、図示はされていない。各ブロックの、符号ビットを含む4つの仮数がパッキングされたビットは、「4M」で示されており、縮尺通りに示されてはいない。圧縮ブロック1は、8ビット指数トークンと、4つの14ビット仮数がパッキングされたビットとを含む。圧縮ブロック2は、8ビット指数トークンと、4つの7ビット仮数がパッキングされたビットとを含む。ブロック3及び4の指数差分は合同コード化されているので、圧縮ブロック3は、4ビット指数トークンと、4つの7ビット仮数とを含む。圧縮ブロック4は、4つの8ビット仮数を含み、指数トークンを含まない。ブロック5及び6の指数差分は合同コード化されているので、圧縮ブロック5は、4ビット指数トークンと4つの7ビット仮数とを含む。圧縮ブロック6は、4つの7ビット仮数を含み、指数トークンを含まない。圧縮ブロック7は、ブロック6及びブロック7に対応する指数間の差分を表わす指数トークンと、4つの8ビット仮数とを含む。圧縮ブロック8は、ブロック7及び8に対応する指数間の差分を表わす指数トークンと、4つの6ビット仮数とを含む。この例の場合、8つのブロックは、5つの指数トークンを用いてコード化される。
【0032】
指数コード化のための代替的な実施形態においては、連続する指数の差分値が計算され、コード化される。指数は、ゆるやかに変化するため、ゼロ値の文字列により隔てられた非ゼロ値は比較的わずかしかない。指数差分値は、非ゼロの差分値及びそれらの対応するポジションだけを表すことにより、効率的にコード化することができる。ポジションは、対応するインデックス値によって、又は最後の非ゼロの差分値のポジションに対して相対的に、表現することができる。指数差分値のコード化は無損失であり、これにより比較的大きい誤差が防止される。指数をデコードする場合には、指数差分値を積分し、対応するポジション位置をデコードすることにより、指数値が再構成される。仮数をデコードする場合には、再構成された各仮数値は、デコードされたサンプルの対応する指数値を変化させないように制限される。n_expのデコードされた指数の場合、再構成された仮数は、2n_exp−1の最大値を有することができる。このことにより、仮数の圧縮誤差が指数の値を変化させることが防止される。
【0033】
別の代替的なブロック小数点コード化方法は、上述の指数の差分コード化に加えて、仮数を表わすビット数のさらなる低減を提供する。N_GROUPサンプルの仮数を表わすビット数は、最下位ビット(LSB)の数、即ちn_LSBを各仮数から選択的に除去することによりさらに減らされる。n_LSBの値は、以下で説明するように、サンプルのブロックのn_expの値に依存する。図8aは、LSBを除去することを含む、低減仮数(reduced mantissa)のためのビット選択を示す。n_expは、上述のステップ1及びステップ4の場合のように決定される。仮数のn_exp個の下位ビット全てをコード化する代わりに、最下位ビットから始めてn_LSBの数のビットが除去される。残りのm_expビット(m_exp=n_exp−n_LSB)がコード化のために選択される。図8bは、低減仮数がm_expビットを有する、同じブロック内の2つのサンプルを圧縮する例を示す。この例は、図3bに関して説明された例と同じ入力サンプル421及び423を用いる。ブロック内のN_GROUPサンプルの最大絶対値サンプル421は、「X」により示されるn_expビットを占める。n_LSBビットが除去されたことにより、圧縮サンプル425は、より少ないMSB及びLSBを有する低減仮数においてm_expビットの「X」を表わす。サンプル423は、ビット「Y」により表わされる、N_GROUPサンプルのブロック内の別のサンプルを表わす。n_LSBサンプルが除去されることにより、圧縮サンプル426は、m_espビットを用いて、m_expビットを有する低減仮数においてビット「Y」を表わす。圧縮サンプル425及び426の仮数は、非圧縮サンプル421及び423の対応する仮数とは異なる整数値を有する。n_LSBが丸められて除去されると、圧縮サンプル425及び426の低減仮数の整数値は、それぞれの非圧縮サンプル421及び423より高い場合もあり、低い場合もある。n_LSBが切り捨てにより除去された場合は、圧縮サンプル425及び426の低減仮数の整数値は、それぞれの非圧縮サンプル421及び423より低くなり得る。
【0034】
n_LSBの値は、式又は表に従い、n_expの値に依存する。図9は、例示的なn_exp、n_LSB及びm_expの値の表である。n_exp値が大きいほど、より多くのLSBが切り捨て又は丸めにより除去され、m_expビットを有する低減仮数が形成される。例えば、n_expが12である場合、3LSBが除去され、その結果、N_GROUPの低減仮数をパッキングするために9仮数ビットが保持される。ブロック浮動小数点エンコーダ400は、n_exp、n_LSB及びm_expの値のルックアップ表を格納することができる。代替的に、ブロック浮動小数点エンコーダ400は、n_expの関数としてn_LSB及びm_expを表わすことができ、必要に応じてこれらの値を計算することができる。
【0035】
図10は、LSBを除去することを含むブロック浮動小数点エンコーダ400のブロック図である。N_GROUPサンプルの各グループについて、指数計算器402は、上述のように最大指数n_expを決定する。仮数ビット計算器414は、低減仮数におけるビット数m_expを、ここでは量子化プロファイルと呼ばれる、n_LSB、m_exp及びn_expを関係づけるルックアップ表又は式を用いて決定する。低減仮数パッカ416は、N_GROUPサンプルの各々についてm_expビットを選択する。次いで、マルチプレクサ408が、指数トークン411と、これに続いて低減仮数(付加された符号ビットを伴う)419−0、419−1、419−2、419−3とをパッキングして、圧縮グループ418を形成する。幾つかの条件においては、N_GROUPサンプルのグループからLSBは除去されない。例えば、N_GROUPサンプル内の1つ又はそれ以上のサンプルの絶対値が、許容最小値より小さい場合は、元のLSBを含むN_GROUP仮数がパッキングされる。ビット・パッカ500は、連続する圧縮グループ418を連結し、圧縮パケットのデータ部分を形成することができる。代替的に、ビット・パッカ500は、グループのシーケンスに対応する指数トークンのシーケンスと、これに続いて対応する仮数の組とを配列することができる。m_expではなく、n_expが、指数トークン生成器404への入力として用いられることに留意されたい。圧縮器110及び復元器700の両方が、n_exp、n_LSB及びm_expを関係づける同じ量子化プロファイル(例えば図9の例示的な表)を用いる。好ましい実施形態は、各圧縮パケットのヘッダ内に表セレクタ値を含み、従って、現在アクティブな量子化プロファイルをパケット毎に変更することが可能である。
【0036】
圧縮コントローラ600は、圧縮制御パラメータをブロック浮動小数点エンコーダ400に与える。圧縮制御パラメータは、n_LSB、m_exp及びn_expを関係づけるルックアップ表又は式により表わされる、代替的な量子化プロファイルを含むことができる。圧縮制御パラメータは、ブロックサイズ・パラメータN_GROUPと、量子化プロファイルの選択パラメータとを含むことができる。圧縮コントローラ600は、ユーザ入力に応答して、圧縮制御パラメータを選択することができる。ユーザは、圧縮データの一定したビットレート又はその圧縮データの一定した品質要求基準若しくは歪みレベルをもたらす圧縮制御パラメータを選択することができる。
【0037】
n_LSB及びm_expをn_expに関係づける量子化プロファイルは、以下の関数により表わすことができる。
(n_LSB,m_exp)=f(n_exp) (1)
【0038】
図11aから図11dは、例示的な関数f(n_exp)のグラフ表示である。実線はn_LSBの値を示し、破線はm_expの値を示す。図11aは、図9で示される表のグラフ図である。図11b、図11c及び図11dは、他の例を示す。量子化プロファイルは、定義されたn_expの範囲にわたって圧縮サンプルの誤差を最小化するように設計することができる。サンプルに適用される特定の量子化プロファイルは、その結果として、対応するビットレート及び誤差レベルを有する圧縮サンプルをもたらす。
【0039】
一定品質の圧縮データのために、圧縮コントローラ600は、特定の信号品質要求基準又は歪みレベルをもたらす量子化プロファイルを選択することができる。品質要求基準は、低減仮数の切り捨て又は丸めに起因する、圧縮サンプルにおける誤差に基づくものとすることができる。低減仮数を用いるブロック浮動小数点表示の場合、これらの誤差は、サンプル内での指数値の発生確率又は確率密度関数(PDF)を用いて計算することができる。図9を参照すると、ブロック内で仮数から除去されるLSBの数であるn_LSBは、そのブロックの最大指数値であるn_expに依存する。仮数から除去されるLSBが、丸め又は切り捨て誤差の源である。信号データのPDFは、ガウス又はポワソン密度関数を用いてモデル化することができる。この手法の場合、平均、分散又は標準偏差のようなPDFのパラメータは、従来の統計技術を用いて計算することができる。代替的に、PDF自体を、サンプルについての指数値のヒストグラムを計算することにより推定することができる。ヒストグラムは、可能な指数値の各々を有するサンプルの数を求める従来の統計技術を用いて計算することができる。統計計算に用いられるサンプルは、実データ又は特定の信号タイプについてシミュレートされたデータに適用された、プリプロセッサ300から出力されたサンプルに対応するものとすることができる。
【0040】
低減仮数の切り捨て又は丸め誤差は、ここでは量子化誤差又はQEと呼ばれる。j番目のサンプルs(j)の量子化誤差は、
QE(j)=s(j)−Q[s(j)] (2)
により計算され、式中、Q[s(j)]は、s(j)を丸めるか又は切り捨ててm_expビットにすることにより得られた、s(j)の量子化された値である。この誤差計算は、元のビット数を有する復元サンプルを生成するために、復元により、量子化された仮数にn_LSB個のゼロが付加される場合に適用可能である。m_expは、j番目のサンプルを収容するブロックのn_expに依存するので、量子化誤差QE(j)もまた、n_expに依存する。
【0041】
指数値n_expの関数としての量子化誤差は、量子化プロファイルf(n_exp)に基づいて推定することができる。代替的に、量子化誤差は、多数の試験サンプルを有する試験信号に量子化プロファイルを適用し、式(2)を用いてQE(j)を計算することにより測定することができる。多数の試験サンプルについてのQE(j)の平均は、特定の量子化プロファイルに対応する期待誤差を表わすことができる。
【0042】
代替的に、期待誤差は、信号のPDFに基づいて計算することができる。PDFに基づく期待誤差Eは、
E=ΣQE(exp)PDF(exp) (3)
により与えられ、式中、PDF(exp)は、指数値expの確率密度関数である。総和演算Σは、n_LSB≠0、即ちQE(n_exp)≠0となるような最小n_expから最大n_expまでの指数値expにわたって、総和を取る。例えば、図9を参照すると、最小n_expは4であり、最大n_expは14である。n_expの関数としての低減仮数の量子化誤差は、
QE(n_exp)=仮数(n_exp)−仮数(m_exp) (4)
により与えられる。
【0043】
仮数(n_exp)は完全精度の仮数を表わし、仮数(m_exp)はm_expビットを有する低減仮数を表わし、ここで、量子化関数f(n_exp)に従って、m_exp=n_exp−n_LSBである。期待誤差は、ここで、式(3)を用いて計算することができる。ユーザが、所望の品質、対応する量子化の式を選択すると、圧縮コントローラ600は、表又は式により表わされる対応する量子化プロファイルf(n_exp)を選択する。
【0044】
圧縮データの一定したビットレート又は圧縮率のために、圧縮コントローラ600は、所望のビットレートを最小の圧縮データの歪みで与える量子化プロファイルを選択することができる。特定の量子化プロファイルに関連付けられるビットレートは、PDF(exp)に基づいて推定することができる。量子化プロファイルは、仮数をコード化するためのビット数m_expを、式(1)に従って、n_expの関数として指示するので、N_SAMPサンプルの仮数をコード化するためのビット数は、以下のように推定される。
N_MANT_BITS=N_SAMP*Σm_exp(exp)PDF(exp) (5)
式中、PDF(exp)は、指数値の確率密度関数であり、m_exp(exp)は、量子化プロファイルに従って特定のn_expに関連付けられた仮数毎のビット数m_expを示す。総和演算Σは、式(3)に関して上で説明したように、最小n_expから最大n_expまでの指数値にわたって総和を取る。図4に関して上で説明されたようにブロック指数をコード化するためのビット数N_EXP_BITSは、以下のように推定される。
N_EXP_BITS=2.48*N_SAMP/N_GROUP (6)
【0045】
実験的因子2.48は、図4の指数コード化を上述の種々のアプリケーション由来の信号データに適用することにより決定された、コード化指数当たりの平均ビット数である。この因子は、他のアプリケーションについても、上述の指数コード化を目的のアプリケーションの信号データに適用することによって測定することができる。N_GROUPサンプル毎に1つの指数がコード化されるので、数N_EXP_BITSは、通常は、N_MANT_BITSと比べて相対的に小さい。N_SAMPサンプルについての圧縮データビット数N_COMP_BITSは、これらの合計、
N_COMP_BITS=N_MANT_BITS+N_EXP_BITS (7)
である。圧縮率CRは、
CR=BITS_SAMPLE*N_SAMP/N_COMP_BITS (8)
により与えられ、ここで、BITS_SAMPLEは、BFPエンコーダ400に入力されたサンプル毎のビット数である。
【0046】
上記の誤差及び圧縮ビットレートの近似は、最大指数がn_expであるN_GROUPサンプルの所与のブロック内に異なる指数値が存在し得る場合のブロック指数の影響をモデル化していない。ブロック指数又はn_expが、ブロックからブロックへとゆるやかに変化することを示す実験的測定に基づく、以前の結果は、上記の近似が有用であることを示す。代替的なブロック指数モデルは、最大指数値n_expを有するブロック内の指数値EXPについての条件付き確率P(EXP/n_exp)を組み込むことができる。
【0047】
一定したビットレート又は一定した品質のために、量子化プロファイルの組が、対応する品質要求基準(誤差、歪みレベル、信号対雑音比などに基づく)及び各量子化プロファイルに対応するビットレートと共に、圧縮コントローラ600に与えられる。量子化プロファイル及び対応する品質要求基準は、信号モデルを用いて、及び/又はBFPコード化を実信号データ又はシミュレートされた信号データに適用して結果を測定することで、特定のアプリケーションについて定めることができる。量子化プロファイルの1つ又はそれ以上の組を、例えば、試験信号を用いたシステム較正中に定めることができる。量子化プロファイルの組は、圧縮コントローラ600のメモリにダウンロードすることができる。ユーザは、信号サンプルの圧縮に際して用いるための特定の量子化プロファイルの組を選択することができる。圧縮コントローラ600は、その組から、パケット毎に異なる一連の量子化プロファイルを適応的に選択することができる。
【0048】
圧縮コントローラ600は、BFPエンコーダ400及び随意的にプリプロセッサ300に対して、フィードバック制御を提供することができる。図12は、圧縮データの一定したビットレートのための、BFPエンコーダ400に対するフィードバック制御のブロック図である。圧縮コントローラ600は、ビット・パッカ500から、圧縮サンプルのパケット毎のビット計数のようなビットレート情報を受信する。ビットレート計算器610は、フィードバック制御の目的で、圧縮パケットのビットレート又はパケット・サイズを計算する。ビットレート計算器610は、ビットレートを計算するために、幾つかの圧縮パケットにわたってビット計数を平均することができる。比較器620は、測定されたビットレートが、所望のビットレートの許容差範囲内にあるかどうか判定する。測定されたビットレートが許容差範囲外である場合には、選択器630は、量子化プロファイルの組632から新たな量子化プロファイルを選択して、より低い又はより高いビットレートをもたらす。許容差範囲は、ユーザが定義することができる。比較器620は、測定されたビットレートと所望のビットレートとの間の差分を計算することができる。差分の許容差範囲は、ゼロとすることもでき、又はある範囲の差分値内に収まるものとすることもできる。許容差範囲は、圧縮ビットレートが高過ぎるとき又は低過ぎるときに調整することができるように、正の端点及び負の端点を含むことができる。圧縮コントローラ600は、量子化プロファイルの組632を格納するためのメモリを含むことができる。BFPパラメータ生成器640は、n_expをn_LSB及びm_expに関係づける、対応する圧縮制御パラメータを、仮数ビット計算器414(図10参照)のためにBPFエンコーダ400に与える。量子化プロファイルがメモリ内に格納された式により表わされる実施形態においては、BFPパラメータ生成器640は、n_expをn_LSB及びm_expに関係づけるルックアップ表(LUT)のためのエントリを計算する。量子化プロファイルがLUTとして表わされる実施形態においては、BFPパラメータ生成器640は、選択されたLUTを指示する圧縮制御パラメータを与える。代替的な実施形態において、BFPエンコーダ400は、量子化プロファイル(式又は表)をローカル・メモリ内に格納することができる。この代替的手法の場合、BFPパラメータ生成器640は、新たな量子化プロファイルを選択するための圧縮制御パラメータを与えることができる。
【0049】
図13は、圧縮データの一定した品質要求基準のための、BFPエンコーダ400に対するフィードバック制御のブロック図である。品質要求基準計算器650は、平均誤差、SNR、又はその他の歪みの測定値のような品質要求基準を計算する。好ましい実施形態においては、量子化誤差QE(j)が、式(2)に従って計算され、そして1つ又はそれ以上の圧縮パケットにわたって平均されて、平均誤差を生成する。品質要求基準計算器650は、対応する信号サンプルs(j)の平均信号電力を計算し、測定SNRを生成する。品質比較器660は、SNRの平均誤差のような測定された品質要求基準を所望の品質と比較する。測定された品質要求基準が許容差範囲外である場合には、選択器630は、圧縮制御パラメータを決定するための新たな量子化プロファイルを選択する。品質要求基準の許容差範囲は、ユーザにより定義され、ゼロとすることもでき、又はある範囲の差分値内に収まるものとすることもできる。BFPパラメータ生成器640は、図12に関して上で説明されたように、新たな圧縮制御パラメータをBFPエンコーダ400に与える。
【0050】
ビット・パッカ500は、BFPエンコーダ400により生成される図2の圧縮グループ410又は図10の圧縮グループ418のような圧縮グループから、圧縮パケットを形成する。ビット・パッカ500は、多数の圧縮グループを連結し、圧縮パケットのデータ部分を形成する。圧縮パケットのデータ部分の例は、図7に関して上で説明される。ビット・パッカ500は、圧縮パケットのデータ部分の前のヘッダを生成する。ヘッダは、同期、そのパケットによって表わされるサンプルの数、パケット内のバイト数、コード化された圧縮制御パラメータ、量子化プロファイル、及びその他の識別情報に関する情報を含むことができる。この情報は、ユーザ定義プロトコルに従って、ヘッダ内の固定ビット幅を有するフィールド内で表わされる。BFPコード化が、圧縮ブロックをコード化するためのある量子化プロファイルに依存する場合、ヘッダ内の圧縮制御パラメータは、その量子化プロファイルに対応するインデックス又は量子化プロファイル自体のパラメータを含むことができる。復元をサポートするために、パケット・ヘッダがデコードされて、データ部分の圧縮ブロックをデコードするためのパラメータを再生し、かつ復元されたサンプルを再順序付けする。
【0051】
図14は、ブロック浮動小数点デコードを用いて圧縮パケットを復元する、信号処理システムのブロック図である。復元器700は、圧縮パケットを含む入力信号を受信し、復元されたサンプルを、アプリケーション特有の信号処理操作のためのアプリケーション・プロセッサ722に与える。パケット・プリプロセッサ702は、各圧縮パケットのヘッダとデータ部分とを分離し、圧縮データを収容するデータ部分をBFPデコーダ710に与える。パケット・プリプロセッサ702は、ヘッダ内のコード化されたパラメータをデコードし、それらを復元コントローラ730に与える。BFPデコーダは、デコードされた圧縮制御パラメータに従って、圧縮パケットのグループを復元し、各圧縮グループに対応するN_GROUPのデコードされたサンプルを形成する。ポストプロセッサ720は、デコードされたサンプルのグループを再順序付けし、対応する信号サンプルを再構成するためのその他の操作を行うことができる。例えば、プリプロセッサ300が、ブロック浮動小数点コード化の前にサンプル値信号201の一次又は高次微分を計算した場合には、ポストプロセッサ720は、デコードされたサンプルの一次又は高次積分を計算する。
【0052】
図15は、コード化仮数毎にn_expビットを有する圧縮グループを復元する、ブロック浮動小数点デコーダ710の操作のブロック図である。圧縮グループ・バッファ740は、図2の圧縮グループ410に対応するN_GROUP圧縮サンプルの指数トークン及び仮数を受け取る。指数デコーダ750は、以下で説明されるように、図4のコード表を用いて指数トークンをデコードし、指数値n_expを与える。指数値n_expは、N_GROUPの仮数の各々を表わすビット数を示す。仮数デコーダ770は、適切な数の高次ビット(典型的には、符号拡張ビット)及び下位ビット(n_LSBビット)を有するサンプルに対して各仮数をマッピングし、サンプル表現を、元のビット数又は宛先プロセッサのデータ形式に応じたその他のビット数にレストアする。仮数デコーダ770は、復元されたグループ780を生成し、復元されたサンプルS0からS3は、図2のパッキングされた仮数412−0から412−3に対応する。
【0053】
図16は、コード化仮数毎にm_expビットを有する圧縮グループを復元する、ブロック浮動小数点デコーダ710の操作のブロック図である。圧縮グループ・バッファ740は、図10の圧縮グループ418に対応する圧縮グループを受け取る。指数デコーダ750は、以下で説明されるように、図4のコード表を用いて指数トークンをデコードし、指数値n_expを与える。仮数デコーダ770は、指数値n_exp及び量子化プロファイルを用いて、低減仮数419−0から419−3毎のビット数を示すパラメータm_expを求める。仮数デコーダ770は、適切な数の高次ビットを有するサンプルに対して仮数をマッピングする。仮数シフト計算器772は、指数値n_expを用いて、量子化プロファイルに基づいてn_LSBパラメータを決定する。好ましい実施形態において、左シフト器774は、仮数をn_LSBビットだけシフトし、LSBポジション内にゼロを付加して、対応する復元サンプルを生成する。左シフト器774の代替的な実施形態は、n_LSBビットを、固定値(例えば、予測可能な平均値を有する量子化誤差を生じさせる、「1」とそれに続くn_LSB−1個のゼロ)又はランダムなビットで埋める。得られた復元グループ790は、図10のパッキングされた仮数419−0から419−3に対応する、N_GROUPの復元サンプルS0−S3を含む。復元コントローラ730は、パケット・ヘッダから回復された量子化プロファイルに対応するパラメータを、仮数デコーダ770及び仮数シフト計算器772に与える。
【0054】
図17は、図4のコード表に従った指数デコーダ750のブロック図である。この実施形態において、指数デコーダ750は、指数トークンが、合同コード化された指数差分(オプションA)、単一コード化された指数差分(オプションB)、又は絶対コード化された指数(オプションC)のどれを表わすかを判定するために、図5に関して説明されたようにコード化された指数トークンに対して試験を行う。指数デコーダ750は、指数トークン501の下位4ビットを試験する。決定ブロック752は、指数トークンの下位4ビット751の値が9より小さいかどうか試験する。小さい場合は、指数トークン501は、オプションAに従って合同コード化された指数差分を表わす。デコード・ブロック760は、指数トークン751の4ビットをデコードし、連続する差分値diff(i)及びdiff(i+1)を求める。これらを用いて、連続する指数値n_exp(i)及びn_exp(i+1)を計算する。加算器762は、diff(i)を、その前に計算された指数値n_exp(i−1)に加算し、i番目の指数値n_exp(i)を算出する。加算器764は、差分値diff(i+1)をi番目の指数値n_exp(i)に加算して、n_exp(i+1)を算出する。決定ブロック754は、指数トークンの下位4ビット751が、14より小さいかどうか判定する。小さい場合は、指数トークン501は、オプションBに従ってコード化された指数差分を表わす。デコード・ブロック766は、この4ビットをデコードし、差分値diff(i)を求める。加算器768は、差分値diff(i)をその前に計算された指数値n_exp(i−1)に加算し、i番目の指数値n_exp(i)を求める。決定ブロック752及び754の結果が、その指数トークン751の下位4ビットについて否定であった場合には、指数トークンは、さらに4つのビットを有し、合計8ビットであり、オプションCに従って絶対コード化された指数を表わす。デコード・ブロック756は、8ビットの指数トークンをデコードし、指数値n_exp(i)を求める。
【0055】
図18は、図3bに関して説明された圧縮サンプルを復元する例である。仮数デコーダ770は、指数値n_expを用いて、圧縮サンプル422及び424の各々の仮数ビット及び符号ビットを識別する。仮数デコーダ770は、n_exp仮数ビット及び符号ビットを、各々が元のビット数Kを有する復元サンプル421a及び423aのそれぞれにマッピングする。代替的に、仮数デコーダ770は、仮数を、元の信号サンプルのビット幅とは異なるビット幅に対してマッピングして、各々が拡張されたビット数Kextを有する復元サンプル421b及び423bをそれぞれ形成することができる。この例においては、復元サンプル421a、421b、423a及び423b内の高位ビットは、符号−絶対値表現に対応して、ゼロである。代替的に、宛先プロセッサの所望のデータ表現に応じて、高位ビットの1つ又はそれ以上を、符号拡張ビットとすることができる。
【0056】
図19は、図8bに関して説明された圧縮サンプルを復元する例である。仮数デコーダ770は、パラメータm_expを用いて、圧縮サンプル425及び426の仮数ビット及び符号ビットを識別する。仮数デコーダ770は、m_exp仮数ビット及び符号ビットを、Kビット・サンプルに対してマッピングする。左シフト器774は、ビットを左にn_LSBだけシフトし、復元サンプル421c及び423cをそれぞれ生成する。代替的に、仮数デコーダ770及び左シフト器774は、各々が拡張されたビット数Kextを有する復元サンプル421d及び423dをそれぞれ形成することができる。代替的に、宛先プロセッサの所望のデータ表現に応じて、高位ビットの1つ又はそれ以上を、符号拡張ビットとすることができる。
【0057】
本発明の圧縮器110及び復元器700は、サンプルの特定のデータ表現形式によって制限されるものではない。データ表現形式は、符号−絶対値、符号拡張、2の補数及び符号なし整数を含むことができる。データ表現形式は、IEEE−754−1985又はIEEE_754−2008標準に記載されているような、標準的な浮動小数点形式の32ビット、64ビット又は128ビットの値の仮数又は指数(又は両方)を含むこともできる。浮動小数点エンコーダ400又はプリプロセッサ300に入力されるサンプルは、ブロック浮動小数点デコーダ710又はポストプロセッサ720から出力される復元サンプルとは異なるデータ表現形式を有することができる。ユーザは、特定のアプリケーションのためのデータプロセッサ・システムの要求を満たすデータ表現形式を定めることができる。
【0058】
圧縮器110は、ADC200から出力される信号サンプルに対して単純な操作を適用する。ブロック浮動小数点コード化は、比較器、減算器、及びルックアップ表を用いる。復元器は、圧縮パケットを復元するために、単純な操作を適用する。ブロック浮動小数点デコードの復元器は、ルックアップ表、加算器及びシフト器を含む。操作が単純なので、圧縮器110及び復元器700は、無線通信、レーダ、超音波、コンピュータ断層撮影の生データ及びその他のイメージング・モダリティのその他の生データを含む信号処理アプリケーションにおいて、実時間で動作するように、又は、少なくともADC200のサンプリング率と同じほど高速で動作するように、実装することができる。
【0059】
圧縮器110の実施形態は、ADC200及び圧縮器110を統合して、単一の特定用途向け集積回路(ASIC)デバイスにすることを含む。圧縮器110の実装は、少なくとも、BFPエンコーダ400及びビット・パッカ600を含む。圧縮コントローラ600は、そのASIC内に実装することも、又はマイクロコントローラ内に実装することもできる。アプリケーションに応じて、圧縮器110は、プリプロセッサ300を含むこともできる。代替的なアーキテクチャは、圧縮器110をADC200とは別個のデバイス内に実装することができる。圧縮器110は、ASIC、FPGA、又はデジタル信号プロセッサ(DSP)、マイクロプロセッサ、マイクロコントローラ、マルチコアCPU(例えばIBM Cell)若しくはグラフィック処理装置(GPU、例えばNvidia GeForce)のようなプログラム可能プロセッサにより実装することができる。
【0060】
復元器700は、アプリケーション・プロセッサ722と同じデバイスに組み込むことも、アプリケーション・プロセッサ722とは異なるデバイスに組み込むこともできる。復元操作は、ASIC又はFPGAに実装することができる。復元器700は、デジタル−アナログ変換器(DAC)内に組み込むことができ、この場合、DACは、図14のアプリケーション・プロセッサ722を置き換える。代替的に、復元操作は、DSP、マイクロプロセッサ、マイクロコントローラ、CPU又はGPUのようなプログラム可能プロセッサにより実行可能な、ソフトウェア又はファームウェア・プログラムとして実装することができる。復元器700の好ましい実装形態は、GPUにより実行可能な復元操作のための命令を有するソフトウェア・プログラムである。GPUは、アプリケーション・プロセッサ722の操作の少なくとも一部を実装するようにプログラムすることもできる。代替的に、復元されたサンプルを、そのアプリケーションのための更なる信号処理操作のために、CPUのような別のプログラム可能プロセッサに転送することができる。
【0061】
図20は、本技術の実施形態と共に用いるのに適したコンピュータ・システム210の単純化されたブロック図である。コンピュータ・システム210は、典型的には、バス・サブシステム212を介して多数の周辺デバイスと通信する少なくとも1つのプロセッサ214を含む。これらの周辺デバイスは、メモリ・サブシステム226及びファイル格納サブシステム228を含む格納サブシステム224と、ユーザ・インターフェース入力デバイス222と、ユーザ・インターフェース出力デバイス220と、通信インターフェース・サブシステム216とを含むことができる。入力及び出力デバイスは、コンピュータ・システム210とのユーザ対話を可能にする。通信インターフェース・サブシステム216は、単一チャネル、又は複数のチャネルを有する通信ネットワークであり得る通信チャネル又はネットワーク218に対するインターフェースを提供する。通信チャネル又はネットワーク218は、他のコンピュータ・システム内のインターフェース・デバイス、送受信デバイス、又は外部ネットワークに結合される。通信チャネル又はネットワーク218は、有線リンク、光リンク、無線リンク、又は情報を通信するためのその他のいずれかの機構を含むことができる。通信ネットワーク218は、多数の相互接続されたコンピュータ・システム及び通信リンクを含むことができる。一実施形態において、通信ネットワーク218は、インターネットであるが、他の実施形態において、通信ネットワーク218は、いずれかの適切なコンピュータ・ネットワークとすることができる。
【0062】
ユーザ・インターフェース入力デバイス222は、キーボード、ポインティング・デバイス、例えばマウス、トラックボール、タッチパッド又はグラフィックス・タブレット、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声入力デバイス、例えば音声認識システム、マイクロフォン、及びその他のタイプの入力デバイスを含むことができる。一般に、「入力デバイス」という用語の使用は、情報をコンピュータ・システム210に入力するための全ての可能なタイプのデバイス及び方法を含むことが意図される。
【0063】
ユーザ・インターフェース出力デバイス220は、ディスプレイ・サブシステム、プリンタ、ファックス機、又は音声出力デバイスのような非視覚的ディスプレイを含むことができる。ディスプレイ・サブシステムは、陰極線管(CRT)、フラットパネルデバイス、例えば液晶ディスプレイ(LCD)、投影デバイス、又は可視画像を生成するためのその他の機構を含むことができる。ディスプレイ・サブシステムは、音声出力デバイスによるもののような非視覚的ディスプレイを備えることもできる。通常、「出力デバイス」という用語の使用は、コンピュータ・システム210からの情報をユーザ又は別のマシン若しくはコンピュータ・システムに出力するための、全ての可能なタイプのデバイス及び方法を含むことが意図される。
【0064】
格納サブシステム224は、ここで説明された圧縮器110及び/又は復元器700の幾つか又は全ての機能を提供することができる基本的なプログラミング及びデータ構造を格納する。これらのソフトウェア・モジュールは、一般にプロセッサ214によって実行される。プロセッサ214は、DSP、マイクロプロセッサ、マイクロコントローラ、CPU又はGPUのうちの1つ又はそれ以上を含むことができる。プロセッサ214は、圧縮器110又は復元器700の機能の幾つか又は全てを実装する、上述のような専用ASIC又はFPGA論理を含むこともできる。
【0065】
メモリ・サブシステム226は、典型的には、プログラム実行中に命令及びデータを格納するための主ランダム・アクセス・メモリ(RAM)と、固定の命令が格納される読み出し専用メモリ(ROM)232とを含む多数のメモリを含む。ファイル格納サブシステム228は、プログラム及びデータ・ファイルのための永続的な格納部を提供し、ハードディスク・ドライブ、関連付けられた取り外し可能媒体と併せたフロッピーディスク・ドライブ、CD−ROMドライブ、光学ドライブ、又は取り外し可能媒体カートリッジを含むことができる。特定の実施形態の機能を実装するデータベース及びモジュールを、ファイル格納サブシステム228により格納することができる。
【0066】
バス・サブシステム212は、コンピュータ・システム210の種々のコンポーネント及びサブシステムを意図したとおりに互いに通信させる機構を提供する。バス・サブシステム212は、略図的に単一バスとして示されているが、バス・サブシステムの代替的な実施形態は、多重のバスを用いることができる。
【0067】
コンピュータ可読媒体240は、ファイル格納サブシステム228及び/又は通信インターフェース・サブシステム216に関連付けられた、媒体とすることができる。コンピュータ可読媒体240は、ハードディスク、フロッピーディスク、CD−ROM、光媒体、取り外し可能媒体カートリッジ、又は電磁波とすることができる。コンピュータ可読媒体240は、圧縮データ・ファイル280を格納するものとして図示されている。コンピュータ可読媒体は、圧縮器110及び/又は復元器700の機能を実装するプログラムを格納することもできる。
【0068】
コンピュータ・システム210自体は、パーソナル・コンピュータ、ポータブル・コンピュータ、ワークステーション、コンピュータ端末、ネットワーク・コンピュータ、テレビ、メインフレーム、又はその他のいずれかのデータ処理システム若しくはユーザ・デバイスを含む種々のタイプのものとすることができる。コンピュータ及びネットワークは絶えず変化する性質であるため、図20に描かれたコンピュータ・システム210の説明は、好ましい実施形態を例証する目的のための特定の例に過ぎないことが意図される。図20に描かれたコンピュータ・システムより多くのコンポーネント又は少ないコンポーネントを有するその他の多くのコンピュータ・システム210の構成が可能である。
【0069】
本発明の実施形態は、通信、超音波、レーダ及びセンサを含む様々な信号タイプ及びアプリケーションの信号サンプルを圧縮することができる。本発明の圧縮は、コンピュータ断層撮影法(CT)及び磁気共鳴イメージング(MRI)の生データを含む、イメージングのためのデータ収集システムにより生成される信号に適用することができる。これらのタイプのアプリケーションのためのデータ処理システムは、一般に、データ収集システム(DAS)とも呼ばれる、信号データを捕捉するための信号収集及び処理システムを含む。捕捉された信号データは、格納及びアプリケーション処理のためにコンピュータ・システム210に転送される。図21は、様々なアプリケーションにおいて用いられる信号データを捕捉して処理するためのデータ処理システムの一般化されたブロック図である。データ収集システム120は、特定のアプリケーションのためのセンサ及び処理要素を含む。例えば、超音波及びソナーの場合は、データ収集システム120は、受信した音響信号をアナログ電気信号に変換するための超音波トランスデューサ要素を含む。CT DASを含むX線イメージングの実装形態の場合は、データ収集システム120は、検出されたX線照射から電気信号を生成するためのX線センサを含む。通信、レーダ又はMRI DASの場合は、データ収集システム120は、収集された電磁波をアナログ信号に変換するためのアンテナ及び受信機システムを含む。収集されたデータのデジタル処理のために、データ収集システム120は、アナログ信号をサンプリングするためのADC200を含む。信号サンプルは、アプリケーション・システムのアーキテクチャに応じて、インターフェース222又は218を介して、コンピュータ・システム210に転送することができる。コンピュータ・システム210は、受信した信号サンプルの特定用途アプリケーション向けの処理及び/又は格納、及び/又は処理された結果の格納を行う。超音波、ソナー、レーダ、CT及びMRIのようなアプリケーションの場合は、プロセッサ214は、ディスプレイ・サブシステム220のための二次元又は三次元画像を形成するために、イメージング計算を適用する。通信アプリケーションの場合は、プロセッサ214は、ユーザ・インターフェース出力デバイス220のための出力を形成するために、信号サンプルに復調操作を適用し、及び/又は、通信ネットワーク218を介して別の宛先に転送するために、信号サンプルを処理する。これらのアプリケーション及び図21の一般的なアーキテクチャを用いるその他のアプリケーションの場合、圧縮器110をデータ収集及び処理システム120内に統合することにより、インターフェース222又は228に求められる帯域幅の要件が低減され、コンピュータ・システム210の格納サブシステムのリソース224が節約される。プロセッサ214は、アプリケーションの処理の前に圧縮データを復元するために、復元器700を実装するための専用プロセッサを含むことができる。
【0070】
図22は、圧縮を含むデータ収集システム120のブロック図である。センサ・サブシステム130は、受信した特定のモダリティの波形をアナログ信号100に変換するようアプリケーションのために動作する、検出器、トランスデューサ及び/又は受信機を含む。図1に関して説明されたように、ADC200は、アナログ信号100をサンプリングし、圧縮器110は、信号サンプルを圧縮する。デバイス・インターフェース130は、圧縮データを、コンピュータ・システム210に転送するためにインターフェース218又は222に与える。プロセッサ214は、図14に関して説明されたように、受信した圧縮データを復元し、アプリケーション特有の処理を行う。コンピュータ・システム210は、受信した圧縮データを、後で復元及びアプリケーション処理を行うためにファイル格納サブシステム228内に格納することができる。
【0071】
幾つかのアプリケーションの場合、コンピュータ・システム210は、信号サンプルを、格納サブシステム224、通信チャネル218又はユーザ・インターフェース出力デバイス220への転送前に、圧縮することができる。例えば、画像データを、出力ディスプレイ・デバイス又はプリンタのようなユーザ・インターフェース出力デバイスへと転送することは、出力デバイス220に埋め込まれた帯域幅及びメモリを消費することがある。多くの場合、プリンタは、オフィス又は家庭内のコンピュータ・ネットワークの共有リソースであるため、走査された又はラスタ化された画像サンプルは、ネットワーク218を介してプリンタに転送される。ディスプレイ・デバイス又はプリンタ向けの画像データを処理することは、二次元画像データを走査又はラスタ化して、走査された画像サンプルの一次元シーケンスにすることを含むことができる。プロセッサ214は、出力ディスプレイ・デバイス220への転送又は通信ネットワーク218を介した共有プリンタへの転送の前に、圧縮器110を適用することができる。この場合、ラスタ化された画像サンプルが、圧縮器110に入力される信号サンプルである。出力ディスプレイ・デバイス220に埋め込まれた復元器700が、二次元画像を表示又は印刷するための操作の前に、圧縮された走査サンプルを復元する。
【0072】
本発明の好ましい実施形態を図示して説明したが、本発明は、これらの実施形態だけに限定されるものではないことが明らかであろう。当業者には、特許請求の範囲に記載された本発明の思想及び範囲から逸脱することのない幾多の修正、変更、バリエーション、置換、及び均等物が明らかであろう。
【符号の説明】
【0073】
100:入力アナログ信号
201:サンプル値信号
210:コンピュータ・システム
408:マルチプレクサ
410、418:圧縮グループ
420:入力サンプル
421、423:非圧縮サンプル
422、424、425、426:圧縮サンプル
421a、423a、421c、423c:元のビット数を有する復元サンプル
421b、423b、421d、423d:拡張されたビット数を有する復元サンプル
600:圧縮コントローラ
700:復元器
751:指数トークンの下位4ビット
780、790:復元されたグループ
【技術分野】
【0001】
本発明は、ブロック浮動小数点表示の効率的なコード化を用いた信号データの圧縮及び復元に関し、より具体的には、信号サンプルを表現するビット数を減らして、所望の出力データ転送率又は所望の品質要求基準を実現するためのブロック浮動小数点コード化に関する。
【背景技術】
【0002】
信号データの圧縮は、信号データ量を減らしながらも正確な情報を維持することが望ましい信号又は画像処理アプリケーションにおいて、リソースをより効率的に用いることを可能にする。信号データを圧縮することにより、システム内のメモリ又はその他の記憶装置のデータ記憶容量の要求仕様が低減される。信号データを圧縮することにより、システム内のデータ転送インターフェースに求められる帯域幅の要求仕様が低減される。コンピュータ処理的に効率的な圧縮及び復元のための操作は、システムのコンピューティング・リソース及び待ち時間に与える影響を小さくする。
【0003】
信号処理におけるブロック浮動小数点表示は、限られたビット数で表わすことができるダイナミックレンジを拡げるという利点がある。ブロック浮動小数点表示は、信号データの精度を維持しながら、広いダイナミックレンジをカバーすることができる。典型的なブロック浮動小数点表示においては、あるサンプルのグループに対して、そのグループ内の最大絶対値のサンプルに基づいて共通指数が決定される。グループ内の各サンプルの仮数は、最大サンプルの仮数を収容するビット数により表わされる。グループの共通指数及び仮数を連続的にパッキングして、そのグループについての圧縮サンプルを表わすことができる。ブロック浮動小数点表示は、振幅が経時的に変動するとはいえ特定のグループ内の隣接するサンプルは同様の振幅を有するような信号ダイナミクスの場合に有用である。幾つかの信号タイプは、このようなダイナミクスを有する。例として、レーダ、ソナー及び超音波信号のような、次第に減衰するパルス信号が挙げられる。
【0004】
以下の特許は、種々のアプリケーションにおけるブロック浮動小数点データ表現を用いた圧縮を記載する。
【0005】
1998年5月12日に発行された「Waveform Data Compression Apparatus and Waveform Data Expansion Apparatus」と題する特許文献1において、Katsumata他は、ブロック浮動小数点表示を用いてサンプル値信号をブロック毎に圧縮することを記載する。信号サンプルの各ブロックについて、あるパターンの非隣接サンプル対の間で多数の相加平均が計算される。サンプル対の相加平均は、そのサンプル対の中間にある中間サンプルの推定値を表わす。サンプル対の間の距離は、そのブロックについて計算される相加平均の分だけ、あるパターンに従って、即ち、ブロックの両端のサンプル対、ブロックの一端のサンプルと中央のサンプルとの対、などのように、減少する。相加平均が、対応する中間サンプル値から減算され、差分サンプルが形成される。差分サンプルの仮数は、ブロック内でのそれらのインデックス(アドレス)に基づくコード化のために割り当てられたビット数であり、そのため、1つのブロックについてのコード化された仮数は、異なる長さを有する。ブロック内の最後のサンプルの仮数は、固定ビット数を用いて線形コード化される。ブロックの指数は、上位2ビットが「01」又は「10」となるような左シフトの最大数に基づく式を用いて決定され、これは、いかなる符号拡張ビットも有効に除去する。差分サンプル及び最後のサンプルの仮数は、そのブロックの仮数に割り当てられたビット数に適合するように最下位ビット(LSB)を除去するために、左シフトされ、丸められる。圧縮データのブロックは、コード化された指数及びコード化された仮数を含む。他の実施形態において、差分サンプルをコード化する代わりに、最後のサンプルに加えて他のサンプルを線形コード化することができる。他の実施形態は、同じブロック内のサンプルについて、より複雑な仮数長のパターン、及び線形対差分コード化を含む。これらの実施形態は、ブロック内のサンプルのインデックスに基づいた、仮数長のパターン、指数、及び線形対差分コード化を指示する、そのブロックのパターン・コードを含む。
【0006】
2000年2月1日に発行された「Coding Method and Apparatus for Multiple Channels of Audio Information Representing Three−Demensional Sound Fields」と題する特許文献2において、Davis他は、音声信号の変換係数のブロック浮動小数点コード化を記載する。サンプリングされた音声信号に適用される離散フーリエ変換(DFT)のような離散変換は、変換係数を生成する。変換係数は、連続的な変換係数のサブバンド又はブロックにグループ化される。ブロックの共通指数は、サブバンド内の最大スペクトル成分に基づいて決定される。一実施形態において、ブロック浮動小数点表示のダイナミックレンジを拡げるために、サブバンドのグループに主指数が割り当てられる。主指数は、サブバンドのグループ内の全ての指数の最小指数値を表わし、サブバンド指数は、主指数と、サブバンド内の最大変換係数の指数との間の差分を表わす。量子化器は、仮数をサブバンドのビット割り当てに対応するビット長で表わすために、サブバンド指数及び主指数に従ってサブバンドの仮数を左シフトし、LSBを切り捨てる。適応ビット・アロケータは、各サブバンドにビット数を割り当てる。好ましい実施形態において、ビット割付けは、サブバンド内のスペクトル成分の振幅に基づく。
【0007】
Christensenは、非特許文献1の論文において、合成開口レーダ(SAR)のデータのブロック浮動小数点表示を記載する。この論文は、ブロックサイズ、量子化ステップサイズ及びブロック指数を表わすビット数といったコード化パラメータに対する、信号対雑音比(SNR)の観点から、ブロック浮動小数点表示の性能の理論的分析を提示する。ブロック毎の固定ビット数を用いたSARデータに対するブロック浮動小数点のSNR性能も提示される。
【0008】
Huneycuttは、非特許文献2の論文において、イメージングレーダのデータの浮動小数点表示を記載する。このシステムは、サンプル毎の最上位の4つのビットとそれに続くサンプルの各ブロックの共通指数とを用いて8ビットのデータ・サンプルをコード化する、ブロック浮動小数点量子化器(BFPQ)を含む。
【0009】
以下の特許及び論文は、種々のアプリケーションにおいて、(上述のブロック毎の方式とは対照的に)サンプル毎の方式で浮動小数点表示を用いて信号データを圧縮することを記載する。
【0010】
1999年8月に発行された「Method and Apparatus for Signal Compression and Processing Using Logarithmic Differential Compression」と題する特許文献3において、Larsonは、より少ないサンプル毎のビット数を用いる浮動小数点形式でサンプル値信号を表わすための、対数微分圧縮(LDC)を記載する。フィルタリングのような信号処理計算は、復元前に、圧縮サンプルに適用される。対数微分圧縮は、アナログ−デジタル変換前又は後に信号の一次微分を計算して微分サンプルを生成することを含む。微分サンプルの絶対値は小さくなるので、より少ないビットでこれを表わすことが可能になる。各微分サンプルは、符号ビットと、指数フィールドと、仮数フィールドとを有する浮動小数点形式で表わされ、圧縮信号のサンプルを形成する。浮動小数点表示内の仮数フィールド及び指数フィールドの長さは、全ての微分サンプルについて同一であり、音声及び映像信号のような特定のアプリケーションに適するように選択することができる。LDCアルゴリズムは、線形であり、時間的に連続的であり、サンプル毎にサンプルに適用されるので、フィルタリング及び変換のような信号処理操作は、復元前に、圧縮データに直接適用することができる。LDCサンプルの浮動小数点表示は、対数(底2)を近似するので、圧縮データに対する信号処理操作のためのハードウェア又はソフトウェア実装の複雑さを低減することができる。例えば、対数領域における乗法は、LDCサンプルを加算することにより行うことができる。LDCデータは、ランレングスコード化、ハフマン法、LZW(Lemple−Ziv−Welch)などのその他の圧縮技術を適用することにより、さらに圧縮することができる。LDC法は、全てのサンプルについて同じ浮動小数点形式を用いるものであり、即ち、この形式は、データのブロック全体にわたって変更されない。各LDCサンプルは、指数フィールド及び仮数フィールドを含み、即ち、コード化されたデータの1つのブロック内で、指数が仮数間で共有されることはない。
【0011】
本発明者は、幾つかのアプリケーションのための、サンプル値信号の圧縮についてのブロック浮動小数点表示の適応を記載する。同一出願人による、1998年11月17日に発行された「Lossless and Loss−Limited Compression of Sampled Data Signals」と題する特許文献4において、本発明者は、サンプル値信号の微分サンプルに適用されるブロック浮動小数点エンコーダを記載する。微分サンプルは、サンプル値信号の連続するサンプル間の一次又は高次微分である。一実施形態において、ブロック浮動小数点エンコーダは、最大微分サンプルに基づいて、各ブロックの指数を決定する。ハフマン・エンコーダは、指数値の発生頻度に基づいて、ブロックの指数にコードを割り当てる。ブロックのシーケンスについてのコード化された指数は、指数配列内にパッキングされる。仮数生成器は、所与のブロック仮数を、そのブロックの指数値によって指定されるビット数を用いてコード化する。コード化された仮数は、仮数配列内にパッキングされる。
【0012】
同一出願人による幾つかの米国特許出願は、様々なタイプの信号及びシステムのための、ブロック浮動小数点コード化の適応を含む。これらは、2008年5月21日に出願された「Compression of Baseband Signals in Base Transceiver Systems」と題する米国特許出願番号第12/124,312号、2008年5月21日に出願された「Compression of Signals in Base Transceiver Systems」と題する米国特許出願番号第12/124,541号、2008年9月11日に出願された「Adaptive Compression of Computer Tomography Projection Data」と題する米国特許出願番号第12/208,839号、2008年9月11日に出願された「Edge Detection for Computed Tomography Projection Data Compression」と題する米国特許出願番号第12/208,835号、「Compression and Storage of Projection Data in a Computed Tomography System」と題する米国特許出願番号第12/352,116号、2008年1月12日に出願された「Compression and Storage of Projection Data in a Rotatable Part of a Computerd Tomography System」と題する米国特許出願番号第12/352,222号、2009年6月2日に出願された「Ultrasound Signal Compression」と題する米国特許出願番号第12/477,062号、及び2009年6月29日に出願された「Post−Beamforming Compression in Ultrasound Systems」と題する米国特許出願番号第12/494,184号を含む。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】米国特許第5,751,771号明細書
【特許文献2】米国特許第6,021,386号明細書
【特許文献3】米国特許第5,933,360号明細書
【特許文献4】米国特許第5,839,100号明細書
【非特許文献】
【0014】
【非特許文献1】Christensen、「Block Floating point for Radar Data」 IEEE Transactions on Arospace and Electronic Systems、1999年1月、第35巻、第1号、308−18頁、
【非特許文献2】Huneycutt、「Spaceborne Imaging Radar−C Instrument」IEEE Transactions on Geoscience and Remote Sensing、1989年3月、第27巻、第2号、164−9頁
【発明の概要】
【課題を解決するための手段】
【0015】
本発明の実施形態は、圧縮サンプルの一定した出力データ転送率又は一定した品質要求基準を可能にする制御特徴を備えた、強化された、サンプル値信号データのブロック浮動小数点圧縮を提供する。本発明の目的は、複数の信号サンプルを圧縮するための方法を提供することであり、信号サンプルは、サンプル毎に、あるビット数からなる。この方法は、
複数の信号サンプルを、コード化対象グループ(encoding group)のシーケンスにグループ化するステップと、
コード化対象グループのシーケンス内のコード化対象グループについて、コード化対象グループのブロック指数値を決定し、かつ、該コード化対象グループ内の各信号サンプルの仮数を決定し、該仮数は、コード化対象グループの指数値に基づくビット数を有するものである、ステップと、
コード化対象グループのシーケンスについて、コード化対象グループのブロック指数値をコード化して、シーケンス内の1つ又はそれ以上のコード化対象グループについての1つ又はそれ以上のブロック指数値を表わす、シーケンス内のコード化対象グループの指数トークンを決定する、ステップと、
指数トークン及び仮数を用いて、複数の信号サンプルを格納又は伝送のためにコード化して、圧縮データを形成するステップと、
を含む。
【0016】
本発明の別の目的は、複数のコード化された元の信号サンプルを表わす圧縮データを運ぶ入力信号を復元するための方法を提供することである。この方法は、
圧縮データを逆アセンブルして、複数の指数トークンと複数の圧縮された仮数のグループとを取得し、複数のコード化された元の信号サンプルは、指数トークンと仮数とにより表わされる、ステップと、
複数の指数トークンをデコードして、各ブロック指数値が複数の圧縮グループのうちの1つに関連付けられる複数のブロック指数値を形成する、ステップと、
圧縮グループの各々について、関連付けられた指数値を用いて、圧縮グループ内の仮数の各々を表わすビット数を決定し、各仮数の前記ビット数を対応する復サンプルにマッピングして、復元サンプルのグループを形成する、ステップと、
上記決定するステップ及び上記マッピングするステップを複数の圧縮グループに適用して、複数の復元サンプルを生成する、ステップと、
を含む。
【0017】
本発明の別の目的は、複数の信号サンプルを圧縮するための装置を提供することである。この装置は、
コード化対象グループのシーケンスを形成するために、信号サンプルをコード化対象グループのシーケンスにグループ化するための論理と、
各コード化対象グループについてブロック指数値を決定する論理と、
各コード化対象グループ内の信号サンプルを受信し、各信号サンプルについて仮数を形成し、特定のコード化対象グループの各仮数が、該特定のコード化対象グループのブロック指数値に基づくビット数を有するものである、仮数エンコーダと、
コード化対象グループのシーケンスについてブロック指数値をコード化して、1つ又はそれ以上のコード化対象グループについての1つ又はそれ以上のブロック指数値を表わす指数トークンを生成する、指数エンコーダと、
コード化対象グループのシーケンスの指数トークンと仮数とを配列して、格納又は伝送のための圧縮データを形成する、ビット・パッカと、
を含む。
【0018】
本発明の別の目的は、複数のコード化された元の信号サンプルを表わす圧縮データを運ぶ入力信号を復元するための装置を提供することである。この装置は、
複数のコード化された元の信号サンプルが複数の指数トークンと複数の圧縮された仮数のグループとにより表わされる、圧縮データを受信するバッファと
複数の指数トークンと複数の圧縮された仮数のグループとを取得するために圧縮データを逆アセンブルするための、バッファに結合された論理と、
複数の指数トークンを受信し、各ブロック指数値が圧縮された仮数のグループのうちの1つに関連付けられる複数のブロック指数値を決定する、指数デコーダと、
各々の圧縮された仮数のグループと、関連付けられたブロック指数値とを受信し、圧縮グループ内の仮数の各々を表わすビット数は、関連付けられたブロック指数値に基づくものであり、各仮数のビット数を対応する復元サンプルにマッピングして復元サンプルのグループを形成し、複数の圧縮グループをデコードして複数の復元サンプルを生成する、仮数デコーダと、
を含む。
【図面の簡単な説明】
【0019】
【図1】ブロック小数点コード化を用いて信号サンプルを圧縮する信号処理システムのブロック図である。
【図2】ブロック浮動小数点エンコーダのブロック図である。
【図3a】コード化仮数のためのn_expビットの選択の例を示す。
【図3b】同じブロック内の2つのサンプルを圧縮する例を示す。
【図4】指数トークンとして4又は8ビットを用いるコード化スキームの表である。
【図5】N_GROUPサンプルのブロックの指数コード化のブロック図である
【図6】信号サンプルの8つのブロックの指数をコード化して、単一の圧縮パケットを形成する例を示す。
【図7】図6の例の圧縮ブロックの圧縮パケットのデータ部分の図である。
【図8a】低減仮数のためにLSBを除去することを含むビット選択を示す。
【図8b】低減仮数がm_expビットを有する、同じブロック内の2つのサンプルを圧縮する例を示す。
【図9】例示的なn_exp、n_LSB及びm_expの値の表である。
【図10】LSBを除去することを含むブロック浮動小数点エンコーダのブロック図である。
【図11a】量子化プロファイル関数f(n_exp)の例を表わす、図9に示された表に対応するグラフである。
【図11b】量子化プロファイル関数f(n_exp)のグラフ表示の別の例である。
【図11c】量子化プロファイル関数f(n_exp)のグラフ表示の別の例である。
【図11d】量子化プロファイル関数f(n_exp)のグラフ表示の別の例である。
【図12】圧縮データの一定したビットレートのための、BFPエンコーダに対するフィードバック制御のブロック図である。
【図13】圧縮データの一定した品質要求基準のための、BFPエンコーダに対するフィードバック制御のブロック図である。
【図14】ブロック浮動小数点デコードを用いて圧縮パケットを復元する、信号処理システムのブロック図である。
【図15】コード化された仮数毎にn_expビットを有する圧縮グループを復元する、ブロック浮動小数点デコーダの操作のブロック図である。
【図16】コード化された仮数毎にm_expビットを有する圧縮グループを復元する、ブロック浮動小数点デコーダの操作のブロック図である。
【図17】図4のコード表に従った指数デコーダのブロック図である。
【図18】図3bに関して説明された圧縮されたサンプルを復元する例である。
【図19】図8bに関して説明された圧縮されたサンプルを復元する例である。
【図20】本技術の実施形態と共に用いるのに適したコンピュータ・システム210の単純化されたブロック図である。
【図21】様々なアプリケーションにおいて用いられる信号データを捕捉して処理するためのデータ処理システムの一般化されたブロック図である。
【図22】圧縮を含むデータ収集システム120のブロック図である。
【発明を実施するための形態】
【0020】
図1は、ブロック小数点コード化を用いて信号サンプルを圧縮する、信号処理システムのブロック図である。アナログ−デジタル変換器(ADC)200は、入力アナログ信号100を、あるサンプリング率及びサンプル毎のビット数で、サンプル値信号(sampled signal)201に変換する。圧縮器110がサンプル値信号201に適用され、圧縮サンプルを生成する。随意のプリプロセッサ300は、特定のアプリケーションのために、又は圧縮性能を向上させるために、サンプル値信号201に対して種々の操作を実行することができる。随意のプリプロセッサ300は、信号のコンディショニング、フィルタリング、時間的又は空間的ウィンドウ処理及びスケーリングのような操作を提供することができる。いくつかのアプリケーションにおける圧縮性能を向上させるために、プリプロセッサ300は、特許文献4に記載されているように、微分演算器を含むことができる。微分は、信号がベースバンド(DC)又はその近くにある限りは、サンプルの絶対値を小さくする。微分は、実際に、信号の中心周波数がサンプリング率の6分の1を越える場合には、サンプルの絶対値を大きくする。ブロック浮動小数点(BFP)エンコーダ400は、さらに後述するように、信号サンプルのグループ又はブロックを定義し、各グループについて、指数を決定し、かつ仮数をコード化して、圧縮グループを形成する。ビット・パッカ500は、圧縮グループのシーケンスから圧縮パケットを形成する。ビット・パッカは、圧縮ブロック又は圧縮パケットのサイズについての情報を圧縮コントローラ600に提供する。圧縮コントローラ600は、所望の出力データ転送率又は品質要求基準を満たすように、BFPエンコーダ400のパラメータを調整して、圧縮を増減する。ユーザは、BFPエンコーダの圧縮制御パラメータを圧縮コントローラ600に入力することができる。ユーザ入力は、所望の出力データ転送率又は品質要求基準を圧縮コントローラ600に提供することができる。さらに、圧縮コントローラ600は、制御パラメータをプリプロセッサ330に提供することができる。
【0021】
図2は、ブロック浮動小数点エンコーダ400の実施形態のブロック図である。ブロック生成器405は、共にコード化されるN_GROUPサンプル401iのブロックを定義する。N_GROUPサンプル401iについて、以下のステップに従って、最大指数がコード化され、かつN_GROUP仮数がコード化される。
N_GROUPサンプル401iの第1番目のグループについて:
1)最大絶対値を有するサンプルの指数(底2)を、例えば、N_GROUPサンプルの各グループ内の最大絶対値のlog2を計算することによって、求める。これは、コード化サンプル毎のビット数、即ちn_exp(0)を示す。
2)Sビットを用いて第1番目のグループの指数n_exp(0)を絶対コード化し、ここで、Sは、サンプル毎の元のビット数である。
3)サンプル毎のn_exp(0)ビットを用いて、N_GROUPサンプルをコード化する。
N_GROUPサンプル401iのi番目のグループ(i>0)について:
4)最大絶対値を有するサンプルのi番目の指数(底2)を求め、これは、i番目のグループ内のコード化サンプル毎のビット数、即ちn_exp(i)を示す。
5)n_exp(i−1)からn_exp(i)を減算することによりi番目の指数を差分コード化し、i番目の差分値を求める。対応するトークンを用いて、i番目の差分値をコード化し、ここで、短いトークンほど、より共通の差分値を表わし、長いトークンほど、共通が少ない差分値を表わす。
6)サンプル毎のn_exp(i)ビットを用いて、N_GROUPサンプルのi番目のグループをコード化する。
【0022】
サンプルの第1番目のグループの場合、指数n_exp(0)は直接コード化される。例えば、指数n_exp(0)は、以下のようにコード化することが可能であり、ここで、Sは、サンプル毎の元のビット数である。
a.0: n_exp(0)=0(4つのサンプル値は全てゼロである)
b.1: n_exp(0)=2(サンプル毎に2ビット)
c.2: n_exp(0)=3(サンプル毎に3ビット)
d.など S−1まで:n_exp(0)=S(サンプル毎にSビット)
【0023】
i番目のグループの場合、指数n_exp(i)は、接頭コードを用いて差分コード化することが可能であり、ここで、どのコード語も別のコード語の接頭部とはならない。差分コード化の例は、以下の通りである。
1.差分を計算する:e_diff=n_exp(i)−n_exp(i−1)
2.以下のようにe_diffをコード化する
a.0: e_diff=e(i)−e(i−1)
b.101: e_diff=+1
c.110: e_diff=−1
d.1001: e_diff=+2
e.1110: e_diff=−2
f.など
【0024】
指数差分のハフマン・コード化は、発生頻度に基づいて、異なる長さのトークンを指数差分に割り当てる。より短いハフマン・トークンを、より高頻度の指数差分値に割り当てることができる。指数n_esp(i)は、差分コード化の代わりに、例えばハフマン・コード化によって直接コード化することができる。ブロック指数のコード化の代替的手法は以下で説明される。
【0025】
図2は、N_GROUP=4のサンプルの場合のブロック浮動小数点エンコーダ400の例である。指数計算器402は、ステップ1及びステップ4に示すように、N_GROUPサンプルについて、最大指数であるn_expを決定する。最大指数は、最大絶対値を有するサンプルの底2の対数に対応する。指数トークン生成器404は、ステップ2及びステップ5に示すように、n_exp値をコード化する。仮数パッカ406は、ステップ3及びステップ6に示すように、N_GROUPサンプルの仮数をコード化し、n_expビットを有する仮数を生成する。図3aは、コード化仮数のためのn_expビットの選択の例を示す。入力サンプル420は、Kビットで表わされる。サンプル420のn_exp個の下位ビットがコード化のために選択される。選択されたビットにそのサンプルの符号ビットが付加され、得られたビットのシーケンスが、コード化サンプルを表わす。図3bは、同じブロック内の2つのサンプルを圧縮する例を示す。この例の場合、サンプルは、符号−絶対値形式で表わされる。ブロック内のN_GROUPサンプルの最大絶対値サンプル421は、「X」で示されるn_exp仮数ビットを占める。サンプル毎の元のビット数はKであり、0からK−1までのインデックスが付けられ、ビットK−1は、符号ビット「S」を表わす。圧縮サンプル422は、符号ビット「S」と共に、ステップ3及びステップ6に従って、n_exp仮数ビット「X」を表わす。サンプル423は、「Y」で示されるビットを占める、N_GROUPサンプルのブロック内の別のサンプルを表わす。圧縮サンプル424は、符号ビット「S」と共に、ステップ3及びステップ6に従って、n_expビットを用いて仮数ビット「Y」を表わす。圧縮サンプル422及び424の仮数は、非圧縮サンプル421及び423の対応する仮数と同一の整数値を有するが、各仮数のビット幅は減らされている。図2に戻ると、マルチプレクサ408は、コード化された指数トークン411と、これに続いて符号ビットを伴うN_GROUPのコード化された仮数の組とをパッキングして、N_GROUP圧縮サンプルを表わす圧縮グループを形成する。この例では、圧縮グループ410は、指数トークン411と、これに続いて4つのパッキングされた仮数(付加された符号ビットを伴う)412−0、412−1、412−2及び412−3のシーケンスとを含む。ビット・パッカ500は、連続する圧縮グループ410を連結して、圧縮パケットのデータ部分を形成することができる。代替的に、ビット・パッカ500は、グループのシーケンスに対応する指数トークンのシーケンスと、これに続いて対応する仮数の組とを配列することができる。N_GROUPとして好ましいサイズは、1グループ当たり3又は4サンプルである。しかしながら、可変のグループ・サイズを用いることもできる。
【0026】
仮数と指数とを別々にコード化することにより、更なる圧縮を提供することができ、かつ圧縮誤差を緩和することができる。指数コード化のための好ましい実施形態においては、2又はそれ以上の指数差分値が合同でコード化される。超音波、レーダ及びコンピュータ断層撮影法の生データを含む種々のアプリケーションに由来する信号データについてのブロック指数値の統計的解析は、連続する指数の90%が{−1,0、+1}の範囲内の差分を有し、連続する指数の98%が{−2,−1,0,+1,及び+2}の範囲内の差分を有することを示した。2又はそれ以上の連続的な指数の差分を合同でコード化することで、コード化された指数毎のビット数を減らすことができる。指数トークンとして4又は8ビットを用いるコード化スキームが、図4に示される。固定された指数ビット数を用いることで、任意のビット長を有する指数トークンを許容する指数コード化と比べて、圧縮及び復元の両方の複雑さが低減される。図4の表は、3つのコード化のオプション、即ち(A)2つの連続する指数差分の合同コード化、(B)1つの指数差分のコード化、及び(C)1つの指数値の絶対(又は線形)コード化、についての指数トークン値の一覧を示す。合同コード化オプション(A)についての、3列目に示された連続する指数差分{diff(i),diff(i−1)}は、第1及び第2のコード化指数差分が両方とも3つの可能な値{−1,0,+1}のうちの1つを有する、9つの異なる差分値の組み合わせを有する。表中の16個の組み合わせのうちのこれらの9つは、各々4ビットを有する指数トークンを用いてコード化することができる。1つのトークンが2つのブロックの指数をコード化するので、指数差分の合同コード化は、ブロック指数毎に2ビットを用いる。オプション(B)について、範囲{−2,−1,0,+1,+2}内の単一の指数差分のコード化と、関連付けられた指数トークンとが、一覧で示される。このオプションは、表中の16個の組み合わせのうちの5つを用いる。最後に、オプション(C)について一覧に示された指数値自体であるn_exp(i)の絶対コード化は、指数トークン毎に8ビットを用いる。本実施形態において、上位3ビットは1に設定され、下位5ビットが指数をコード化する。1に設定された上位3ビットは、その指数が絶対コード化されたことを示す。下位5ビットは、範囲{0,2,3,...,32}内の1つの絶対指数を示し、この場合、指数値1は許容されない。ニブルの整数(4ビット単位)を用いることにより、指数のコード化とその後のデコードが簡素化される。図4の指数コード化を上記のアプリケーションに由来する信号データに適用すると、指数コード化オプションについて以下の割合を示した。
(A)合同コード化オプション(2ビット/指数) − 指数の80%
(B)差分コード化オプション(4ビット/指数) − 指数の18%
(C)線形コード化オプション(8ビット/指数) − 指数の2%
【0027】
オプションの各々についてのビット/指数の加重平均は、コード化指数当たりの平均ビット数が約2.48ビットであることを示す。コード化指数毎にN_GROUPの個々のサンプルが存在するので、この指数コード化スキームは、代替的な指数コード化技術、特に仮数毎に1つの指数を用いる技術と比べて、かなりの効率を提供する。
【0028】
パケットの効率的なコード化及びデコードのために、そのパケットにより表わされる全てのサンプルの圧縮データが、パケット内に収容される。パケットの第1番目のブロックの指数を絶対コード化することで、第1番目の指数トークンはその前のパケットから独立したものとなる。パケットの最後のブロック指数は、パケットの最後から2番目のブロックと共に差分コード化することができる。最後のブロックの指数及びその前のブロックの指数に対応する指数差分は、同じパケット内のその前の指数差分と共に合同でコード化することはできるが、後続のパケットの第1番目の指数差分と共に合同でコード化することはできない。
【0029】
図5は、N_GROUPサンプル401iのブロックの指数コード化のブロック図である。このブロック図は、上述の、パケット内の最初と最後のブロック指数をコード化するための追加条件は含まない。減算器430は、現在のブロックのブロック指数n_exp(i)をその前のブロック指数n_exp(i−1)から減算して、指数差分diff(i)を形成する。決定ブロック432は、差分の絶対値が1より大きいかどうか試験する。diff(i)及び前回の反復由来の指数差分diff(i−1)の両方が1未満又は1に等しい場合には、合同エンコーダ440は、図4のオプション(A)で示されるようにdiff(i)及びdiff(i−1)の両方を合同コード化し、両方の指数差分を表わす4ビットのトークンを形成する。diff(i)が1より大きい場合には、決定ブロック436が、差分の絶対値が2より大きいかどうか試験する。diff(i)の絶対値が2より大きい場合には、絶対コード化ブロック434が、図4のオプション(C)で示されるように指数n_exp(i)をコード化して、n_exp(i)を表わす8ビットのトークンを形成する。そうでない場合には、差分コード化ブロック438が、図4のオプション(B)で示されるようにdiff(i)をコード化し、指数差分diff(i)を表わす4ビットのトークンを形成する。指数トークンは、ビット・パッカ500に与えられる。
【0030】
図6は、信号サンプルの8つのブロックの指数をコード化して、単一の圧縮パケットを形成する例を示す。この例において、最初の2つのブロックの指数は、絶対コード化(オプションC)され、トークン毎に8ビットを有する。ブロック3から6までの指数差分は、合同コード化(オプション(A))され、ブロック3及び4について4ビット指数トークンを形成し、ブロック5及び6について4ビット指数トークンを形成する。ブロック7及び8の指数差分は、各々が差分コード化され、各ブロックにつき1つの4ビット指数トークンを生成する。ブロック7の指数差diff(7)=+1は、合同指数コード化の範囲内に入るが、ブロック8の指数差diff(diff8)=−2は、範囲に入らない。従って、diff(7)及びdiff(8)には各々、4ビット指数トークン1100及び1001がそれぞれ割り当てられる。
【0031】
図7は、図6の例の圧縮ブロックの圧縮パケットのデータ部分の図である。この圧縮パケットは、ヘッダも含んでいるはずだが、図示はされていない。各ブロックの、符号ビットを含む4つの仮数がパッキングされたビットは、「4M」で示されており、縮尺通りに示されてはいない。圧縮ブロック1は、8ビット指数トークンと、4つの14ビット仮数がパッキングされたビットとを含む。圧縮ブロック2は、8ビット指数トークンと、4つの7ビット仮数がパッキングされたビットとを含む。ブロック3及び4の指数差分は合同コード化されているので、圧縮ブロック3は、4ビット指数トークンと、4つの7ビット仮数とを含む。圧縮ブロック4は、4つの8ビット仮数を含み、指数トークンを含まない。ブロック5及び6の指数差分は合同コード化されているので、圧縮ブロック5は、4ビット指数トークンと4つの7ビット仮数とを含む。圧縮ブロック6は、4つの7ビット仮数を含み、指数トークンを含まない。圧縮ブロック7は、ブロック6及びブロック7に対応する指数間の差分を表わす指数トークンと、4つの8ビット仮数とを含む。圧縮ブロック8は、ブロック7及び8に対応する指数間の差分を表わす指数トークンと、4つの6ビット仮数とを含む。この例の場合、8つのブロックは、5つの指数トークンを用いてコード化される。
【0032】
指数コード化のための代替的な実施形態においては、連続する指数の差分値が計算され、コード化される。指数は、ゆるやかに変化するため、ゼロ値の文字列により隔てられた非ゼロ値は比較的わずかしかない。指数差分値は、非ゼロの差分値及びそれらの対応するポジションだけを表すことにより、効率的にコード化することができる。ポジションは、対応するインデックス値によって、又は最後の非ゼロの差分値のポジションに対して相対的に、表現することができる。指数差分値のコード化は無損失であり、これにより比較的大きい誤差が防止される。指数をデコードする場合には、指数差分値を積分し、対応するポジション位置をデコードすることにより、指数値が再構成される。仮数をデコードする場合には、再構成された各仮数値は、デコードされたサンプルの対応する指数値を変化させないように制限される。n_expのデコードされた指数の場合、再構成された仮数は、2n_exp−1の最大値を有することができる。このことにより、仮数の圧縮誤差が指数の値を変化させることが防止される。
【0033】
別の代替的なブロック小数点コード化方法は、上述の指数の差分コード化に加えて、仮数を表わすビット数のさらなる低減を提供する。N_GROUPサンプルの仮数を表わすビット数は、最下位ビット(LSB)の数、即ちn_LSBを各仮数から選択的に除去することによりさらに減らされる。n_LSBの値は、以下で説明するように、サンプルのブロックのn_expの値に依存する。図8aは、LSBを除去することを含む、低減仮数(reduced mantissa)のためのビット選択を示す。n_expは、上述のステップ1及びステップ4の場合のように決定される。仮数のn_exp個の下位ビット全てをコード化する代わりに、最下位ビットから始めてn_LSBの数のビットが除去される。残りのm_expビット(m_exp=n_exp−n_LSB)がコード化のために選択される。図8bは、低減仮数がm_expビットを有する、同じブロック内の2つのサンプルを圧縮する例を示す。この例は、図3bに関して説明された例と同じ入力サンプル421及び423を用いる。ブロック内のN_GROUPサンプルの最大絶対値サンプル421は、「X」により示されるn_expビットを占める。n_LSBビットが除去されたことにより、圧縮サンプル425は、より少ないMSB及びLSBを有する低減仮数においてm_expビットの「X」を表わす。サンプル423は、ビット「Y」により表わされる、N_GROUPサンプルのブロック内の別のサンプルを表わす。n_LSBサンプルが除去されることにより、圧縮サンプル426は、m_espビットを用いて、m_expビットを有する低減仮数においてビット「Y」を表わす。圧縮サンプル425及び426の仮数は、非圧縮サンプル421及び423の対応する仮数とは異なる整数値を有する。n_LSBが丸められて除去されると、圧縮サンプル425及び426の低減仮数の整数値は、それぞれの非圧縮サンプル421及び423より高い場合もあり、低い場合もある。n_LSBが切り捨てにより除去された場合は、圧縮サンプル425及び426の低減仮数の整数値は、それぞれの非圧縮サンプル421及び423より低くなり得る。
【0034】
n_LSBの値は、式又は表に従い、n_expの値に依存する。図9は、例示的なn_exp、n_LSB及びm_expの値の表である。n_exp値が大きいほど、より多くのLSBが切り捨て又は丸めにより除去され、m_expビットを有する低減仮数が形成される。例えば、n_expが12である場合、3LSBが除去され、その結果、N_GROUPの低減仮数をパッキングするために9仮数ビットが保持される。ブロック浮動小数点エンコーダ400は、n_exp、n_LSB及びm_expの値のルックアップ表を格納することができる。代替的に、ブロック浮動小数点エンコーダ400は、n_expの関数としてn_LSB及びm_expを表わすことができ、必要に応じてこれらの値を計算することができる。
【0035】
図10は、LSBを除去することを含むブロック浮動小数点エンコーダ400のブロック図である。N_GROUPサンプルの各グループについて、指数計算器402は、上述のように最大指数n_expを決定する。仮数ビット計算器414は、低減仮数におけるビット数m_expを、ここでは量子化プロファイルと呼ばれる、n_LSB、m_exp及びn_expを関係づけるルックアップ表又は式を用いて決定する。低減仮数パッカ416は、N_GROUPサンプルの各々についてm_expビットを選択する。次いで、マルチプレクサ408が、指数トークン411と、これに続いて低減仮数(付加された符号ビットを伴う)419−0、419−1、419−2、419−3とをパッキングして、圧縮グループ418を形成する。幾つかの条件においては、N_GROUPサンプルのグループからLSBは除去されない。例えば、N_GROUPサンプル内の1つ又はそれ以上のサンプルの絶対値が、許容最小値より小さい場合は、元のLSBを含むN_GROUP仮数がパッキングされる。ビット・パッカ500は、連続する圧縮グループ418を連結し、圧縮パケットのデータ部分を形成することができる。代替的に、ビット・パッカ500は、グループのシーケンスに対応する指数トークンのシーケンスと、これに続いて対応する仮数の組とを配列することができる。m_expではなく、n_expが、指数トークン生成器404への入力として用いられることに留意されたい。圧縮器110及び復元器700の両方が、n_exp、n_LSB及びm_expを関係づける同じ量子化プロファイル(例えば図9の例示的な表)を用いる。好ましい実施形態は、各圧縮パケットのヘッダ内に表セレクタ値を含み、従って、現在アクティブな量子化プロファイルをパケット毎に変更することが可能である。
【0036】
圧縮コントローラ600は、圧縮制御パラメータをブロック浮動小数点エンコーダ400に与える。圧縮制御パラメータは、n_LSB、m_exp及びn_expを関係づけるルックアップ表又は式により表わされる、代替的な量子化プロファイルを含むことができる。圧縮制御パラメータは、ブロックサイズ・パラメータN_GROUPと、量子化プロファイルの選択パラメータとを含むことができる。圧縮コントローラ600は、ユーザ入力に応答して、圧縮制御パラメータを選択することができる。ユーザは、圧縮データの一定したビットレート又はその圧縮データの一定した品質要求基準若しくは歪みレベルをもたらす圧縮制御パラメータを選択することができる。
【0037】
n_LSB及びm_expをn_expに関係づける量子化プロファイルは、以下の関数により表わすことができる。
(n_LSB,m_exp)=f(n_exp) (1)
【0038】
図11aから図11dは、例示的な関数f(n_exp)のグラフ表示である。実線はn_LSBの値を示し、破線はm_expの値を示す。図11aは、図9で示される表のグラフ図である。図11b、図11c及び図11dは、他の例を示す。量子化プロファイルは、定義されたn_expの範囲にわたって圧縮サンプルの誤差を最小化するように設計することができる。サンプルに適用される特定の量子化プロファイルは、その結果として、対応するビットレート及び誤差レベルを有する圧縮サンプルをもたらす。
【0039】
一定品質の圧縮データのために、圧縮コントローラ600は、特定の信号品質要求基準又は歪みレベルをもたらす量子化プロファイルを選択することができる。品質要求基準は、低減仮数の切り捨て又は丸めに起因する、圧縮サンプルにおける誤差に基づくものとすることができる。低減仮数を用いるブロック浮動小数点表示の場合、これらの誤差は、サンプル内での指数値の発生確率又は確率密度関数(PDF)を用いて計算することができる。図9を参照すると、ブロック内で仮数から除去されるLSBの数であるn_LSBは、そのブロックの最大指数値であるn_expに依存する。仮数から除去されるLSBが、丸め又は切り捨て誤差の源である。信号データのPDFは、ガウス又はポワソン密度関数を用いてモデル化することができる。この手法の場合、平均、分散又は標準偏差のようなPDFのパラメータは、従来の統計技術を用いて計算することができる。代替的に、PDF自体を、サンプルについての指数値のヒストグラムを計算することにより推定することができる。ヒストグラムは、可能な指数値の各々を有するサンプルの数を求める従来の統計技術を用いて計算することができる。統計計算に用いられるサンプルは、実データ又は特定の信号タイプについてシミュレートされたデータに適用された、プリプロセッサ300から出力されたサンプルに対応するものとすることができる。
【0040】
低減仮数の切り捨て又は丸め誤差は、ここでは量子化誤差又はQEと呼ばれる。j番目のサンプルs(j)の量子化誤差は、
QE(j)=s(j)−Q[s(j)] (2)
により計算され、式中、Q[s(j)]は、s(j)を丸めるか又は切り捨ててm_expビットにすることにより得られた、s(j)の量子化された値である。この誤差計算は、元のビット数を有する復元サンプルを生成するために、復元により、量子化された仮数にn_LSB個のゼロが付加される場合に適用可能である。m_expは、j番目のサンプルを収容するブロックのn_expに依存するので、量子化誤差QE(j)もまた、n_expに依存する。
【0041】
指数値n_expの関数としての量子化誤差は、量子化プロファイルf(n_exp)に基づいて推定することができる。代替的に、量子化誤差は、多数の試験サンプルを有する試験信号に量子化プロファイルを適用し、式(2)を用いてQE(j)を計算することにより測定することができる。多数の試験サンプルについてのQE(j)の平均は、特定の量子化プロファイルに対応する期待誤差を表わすことができる。
【0042】
代替的に、期待誤差は、信号のPDFに基づいて計算することができる。PDFに基づく期待誤差Eは、
E=ΣQE(exp)PDF(exp) (3)
により与えられ、式中、PDF(exp)は、指数値expの確率密度関数である。総和演算Σは、n_LSB≠0、即ちQE(n_exp)≠0となるような最小n_expから最大n_expまでの指数値expにわたって、総和を取る。例えば、図9を参照すると、最小n_expは4であり、最大n_expは14である。n_expの関数としての低減仮数の量子化誤差は、
QE(n_exp)=仮数(n_exp)−仮数(m_exp) (4)
により与えられる。
【0043】
仮数(n_exp)は完全精度の仮数を表わし、仮数(m_exp)はm_expビットを有する低減仮数を表わし、ここで、量子化関数f(n_exp)に従って、m_exp=n_exp−n_LSBである。期待誤差は、ここで、式(3)を用いて計算することができる。ユーザが、所望の品質、対応する量子化の式を選択すると、圧縮コントローラ600は、表又は式により表わされる対応する量子化プロファイルf(n_exp)を選択する。
【0044】
圧縮データの一定したビットレート又は圧縮率のために、圧縮コントローラ600は、所望のビットレートを最小の圧縮データの歪みで与える量子化プロファイルを選択することができる。特定の量子化プロファイルに関連付けられるビットレートは、PDF(exp)に基づいて推定することができる。量子化プロファイルは、仮数をコード化するためのビット数m_expを、式(1)に従って、n_expの関数として指示するので、N_SAMPサンプルの仮数をコード化するためのビット数は、以下のように推定される。
N_MANT_BITS=N_SAMP*Σm_exp(exp)PDF(exp) (5)
式中、PDF(exp)は、指数値の確率密度関数であり、m_exp(exp)は、量子化プロファイルに従って特定のn_expに関連付けられた仮数毎のビット数m_expを示す。総和演算Σは、式(3)に関して上で説明したように、最小n_expから最大n_expまでの指数値にわたって総和を取る。図4に関して上で説明されたようにブロック指数をコード化するためのビット数N_EXP_BITSは、以下のように推定される。
N_EXP_BITS=2.48*N_SAMP/N_GROUP (6)
【0045】
実験的因子2.48は、図4の指数コード化を上述の種々のアプリケーション由来の信号データに適用することにより決定された、コード化指数当たりの平均ビット数である。この因子は、他のアプリケーションについても、上述の指数コード化を目的のアプリケーションの信号データに適用することによって測定することができる。N_GROUPサンプル毎に1つの指数がコード化されるので、数N_EXP_BITSは、通常は、N_MANT_BITSと比べて相対的に小さい。N_SAMPサンプルについての圧縮データビット数N_COMP_BITSは、これらの合計、
N_COMP_BITS=N_MANT_BITS+N_EXP_BITS (7)
である。圧縮率CRは、
CR=BITS_SAMPLE*N_SAMP/N_COMP_BITS (8)
により与えられ、ここで、BITS_SAMPLEは、BFPエンコーダ400に入力されたサンプル毎のビット数である。
【0046】
上記の誤差及び圧縮ビットレートの近似は、最大指数がn_expであるN_GROUPサンプルの所与のブロック内に異なる指数値が存在し得る場合のブロック指数の影響をモデル化していない。ブロック指数又はn_expが、ブロックからブロックへとゆるやかに変化することを示す実験的測定に基づく、以前の結果は、上記の近似が有用であることを示す。代替的なブロック指数モデルは、最大指数値n_expを有するブロック内の指数値EXPについての条件付き確率P(EXP/n_exp)を組み込むことができる。
【0047】
一定したビットレート又は一定した品質のために、量子化プロファイルの組が、対応する品質要求基準(誤差、歪みレベル、信号対雑音比などに基づく)及び各量子化プロファイルに対応するビットレートと共に、圧縮コントローラ600に与えられる。量子化プロファイル及び対応する品質要求基準は、信号モデルを用いて、及び/又はBFPコード化を実信号データ又はシミュレートされた信号データに適用して結果を測定することで、特定のアプリケーションについて定めることができる。量子化プロファイルの1つ又はそれ以上の組を、例えば、試験信号を用いたシステム較正中に定めることができる。量子化プロファイルの組は、圧縮コントローラ600のメモリにダウンロードすることができる。ユーザは、信号サンプルの圧縮に際して用いるための特定の量子化プロファイルの組を選択することができる。圧縮コントローラ600は、その組から、パケット毎に異なる一連の量子化プロファイルを適応的に選択することができる。
【0048】
圧縮コントローラ600は、BFPエンコーダ400及び随意的にプリプロセッサ300に対して、フィードバック制御を提供することができる。図12は、圧縮データの一定したビットレートのための、BFPエンコーダ400に対するフィードバック制御のブロック図である。圧縮コントローラ600は、ビット・パッカ500から、圧縮サンプルのパケット毎のビット計数のようなビットレート情報を受信する。ビットレート計算器610は、フィードバック制御の目的で、圧縮パケットのビットレート又はパケット・サイズを計算する。ビットレート計算器610は、ビットレートを計算するために、幾つかの圧縮パケットにわたってビット計数を平均することができる。比較器620は、測定されたビットレートが、所望のビットレートの許容差範囲内にあるかどうか判定する。測定されたビットレートが許容差範囲外である場合には、選択器630は、量子化プロファイルの組632から新たな量子化プロファイルを選択して、より低い又はより高いビットレートをもたらす。許容差範囲は、ユーザが定義することができる。比較器620は、測定されたビットレートと所望のビットレートとの間の差分を計算することができる。差分の許容差範囲は、ゼロとすることもでき、又はある範囲の差分値内に収まるものとすることもできる。許容差範囲は、圧縮ビットレートが高過ぎるとき又は低過ぎるときに調整することができるように、正の端点及び負の端点を含むことができる。圧縮コントローラ600は、量子化プロファイルの組632を格納するためのメモリを含むことができる。BFPパラメータ生成器640は、n_expをn_LSB及びm_expに関係づける、対応する圧縮制御パラメータを、仮数ビット計算器414(図10参照)のためにBPFエンコーダ400に与える。量子化プロファイルがメモリ内に格納された式により表わされる実施形態においては、BFPパラメータ生成器640は、n_expをn_LSB及びm_expに関係づけるルックアップ表(LUT)のためのエントリを計算する。量子化プロファイルがLUTとして表わされる実施形態においては、BFPパラメータ生成器640は、選択されたLUTを指示する圧縮制御パラメータを与える。代替的な実施形態において、BFPエンコーダ400は、量子化プロファイル(式又は表)をローカル・メモリ内に格納することができる。この代替的手法の場合、BFPパラメータ生成器640は、新たな量子化プロファイルを選択するための圧縮制御パラメータを与えることができる。
【0049】
図13は、圧縮データの一定した品質要求基準のための、BFPエンコーダ400に対するフィードバック制御のブロック図である。品質要求基準計算器650は、平均誤差、SNR、又はその他の歪みの測定値のような品質要求基準を計算する。好ましい実施形態においては、量子化誤差QE(j)が、式(2)に従って計算され、そして1つ又はそれ以上の圧縮パケットにわたって平均されて、平均誤差を生成する。品質要求基準計算器650は、対応する信号サンプルs(j)の平均信号電力を計算し、測定SNRを生成する。品質比較器660は、SNRの平均誤差のような測定された品質要求基準を所望の品質と比較する。測定された品質要求基準が許容差範囲外である場合には、選択器630は、圧縮制御パラメータを決定するための新たな量子化プロファイルを選択する。品質要求基準の許容差範囲は、ユーザにより定義され、ゼロとすることもでき、又はある範囲の差分値内に収まるものとすることもできる。BFPパラメータ生成器640は、図12に関して上で説明されたように、新たな圧縮制御パラメータをBFPエンコーダ400に与える。
【0050】
ビット・パッカ500は、BFPエンコーダ400により生成される図2の圧縮グループ410又は図10の圧縮グループ418のような圧縮グループから、圧縮パケットを形成する。ビット・パッカ500は、多数の圧縮グループを連結し、圧縮パケットのデータ部分を形成する。圧縮パケットのデータ部分の例は、図7に関して上で説明される。ビット・パッカ500は、圧縮パケットのデータ部分の前のヘッダを生成する。ヘッダは、同期、そのパケットによって表わされるサンプルの数、パケット内のバイト数、コード化された圧縮制御パラメータ、量子化プロファイル、及びその他の識別情報に関する情報を含むことができる。この情報は、ユーザ定義プロトコルに従って、ヘッダ内の固定ビット幅を有するフィールド内で表わされる。BFPコード化が、圧縮ブロックをコード化するためのある量子化プロファイルに依存する場合、ヘッダ内の圧縮制御パラメータは、その量子化プロファイルに対応するインデックス又は量子化プロファイル自体のパラメータを含むことができる。復元をサポートするために、パケット・ヘッダがデコードされて、データ部分の圧縮ブロックをデコードするためのパラメータを再生し、かつ復元されたサンプルを再順序付けする。
【0051】
図14は、ブロック浮動小数点デコードを用いて圧縮パケットを復元する、信号処理システムのブロック図である。復元器700は、圧縮パケットを含む入力信号を受信し、復元されたサンプルを、アプリケーション特有の信号処理操作のためのアプリケーション・プロセッサ722に与える。パケット・プリプロセッサ702は、各圧縮パケットのヘッダとデータ部分とを分離し、圧縮データを収容するデータ部分をBFPデコーダ710に与える。パケット・プリプロセッサ702は、ヘッダ内のコード化されたパラメータをデコードし、それらを復元コントローラ730に与える。BFPデコーダは、デコードされた圧縮制御パラメータに従って、圧縮パケットのグループを復元し、各圧縮グループに対応するN_GROUPのデコードされたサンプルを形成する。ポストプロセッサ720は、デコードされたサンプルのグループを再順序付けし、対応する信号サンプルを再構成するためのその他の操作を行うことができる。例えば、プリプロセッサ300が、ブロック浮動小数点コード化の前にサンプル値信号201の一次又は高次微分を計算した場合には、ポストプロセッサ720は、デコードされたサンプルの一次又は高次積分を計算する。
【0052】
図15は、コード化仮数毎にn_expビットを有する圧縮グループを復元する、ブロック浮動小数点デコーダ710の操作のブロック図である。圧縮グループ・バッファ740は、図2の圧縮グループ410に対応するN_GROUP圧縮サンプルの指数トークン及び仮数を受け取る。指数デコーダ750は、以下で説明されるように、図4のコード表を用いて指数トークンをデコードし、指数値n_expを与える。指数値n_expは、N_GROUPの仮数の各々を表わすビット数を示す。仮数デコーダ770は、適切な数の高次ビット(典型的には、符号拡張ビット)及び下位ビット(n_LSBビット)を有するサンプルに対して各仮数をマッピングし、サンプル表現を、元のビット数又は宛先プロセッサのデータ形式に応じたその他のビット数にレストアする。仮数デコーダ770は、復元されたグループ780を生成し、復元されたサンプルS0からS3は、図2のパッキングされた仮数412−0から412−3に対応する。
【0053】
図16は、コード化仮数毎にm_expビットを有する圧縮グループを復元する、ブロック浮動小数点デコーダ710の操作のブロック図である。圧縮グループ・バッファ740は、図10の圧縮グループ418に対応する圧縮グループを受け取る。指数デコーダ750は、以下で説明されるように、図4のコード表を用いて指数トークンをデコードし、指数値n_expを与える。仮数デコーダ770は、指数値n_exp及び量子化プロファイルを用いて、低減仮数419−0から419−3毎のビット数を示すパラメータm_expを求める。仮数デコーダ770は、適切な数の高次ビットを有するサンプルに対して仮数をマッピングする。仮数シフト計算器772は、指数値n_expを用いて、量子化プロファイルに基づいてn_LSBパラメータを決定する。好ましい実施形態において、左シフト器774は、仮数をn_LSBビットだけシフトし、LSBポジション内にゼロを付加して、対応する復元サンプルを生成する。左シフト器774の代替的な実施形態は、n_LSBビットを、固定値(例えば、予測可能な平均値を有する量子化誤差を生じさせる、「1」とそれに続くn_LSB−1個のゼロ)又はランダムなビットで埋める。得られた復元グループ790は、図10のパッキングされた仮数419−0から419−3に対応する、N_GROUPの復元サンプルS0−S3を含む。復元コントローラ730は、パケット・ヘッダから回復された量子化プロファイルに対応するパラメータを、仮数デコーダ770及び仮数シフト計算器772に与える。
【0054】
図17は、図4のコード表に従った指数デコーダ750のブロック図である。この実施形態において、指数デコーダ750は、指数トークンが、合同コード化された指数差分(オプションA)、単一コード化された指数差分(オプションB)、又は絶対コード化された指数(オプションC)のどれを表わすかを判定するために、図5に関して説明されたようにコード化された指数トークンに対して試験を行う。指数デコーダ750は、指数トークン501の下位4ビットを試験する。決定ブロック752は、指数トークンの下位4ビット751の値が9より小さいかどうか試験する。小さい場合は、指数トークン501は、オプションAに従って合同コード化された指数差分を表わす。デコード・ブロック760は、指数トークン751の4ビットをデコードし、連続する差分値diff(i)及びdiff(i+1)を求める。これらを用いて、連続する指数値n_exp(i)及びn_exp(i+1)を計算する。加算器762は、diff(i)を、その前に計算された指数値n_exp(i−1)に加算し、i番目の指数値n_exp(i)を算出する。加算器764は、差分値diff(i+1)をi番目の指数値n_exp(i)に加算して、n_exp(i+1)を算出する。決定ブロック754は、指数トークンの下位4ビット751が、14より小さいかどうか判定する。小さい場合は、指数トークン501は、オプションBに従ってコード化された指数差分を表わす。デコード・ブロック766は、この4ビットをデコードし、差分値diff(i)を求める。加算器768は、差分値diff(i)をその前に計算された指数値n_exp(i−1)に加算し、i番目の指数値n_exp(i)を求める。決定ブロック752及び754の結果が、その指数トークン751の下位4ビットについて否定であった場合には、指数トークンは、さらに4つのビットを有し、合計8ビットであり、オプションCに従って絶対コード化された指数を表わす。デコード・ブロック756は、8ビットの指数トークンをデコードし、指数値n_exp(i)を求める。
【0055】
図18は、図3bに関して説明された圧縮サンプルを復元する例である。仮数デコーダ770は、指数値n_expを用いて、圧縮サンプル422及び424の各々の仮数ビット及び符号ビットを識別する。仮数デコーダ770は、n_exp仮数ビット及び符号ビットを、各々が元のビット数Kを有する復元サンプル421a及び423aのそれぞれにマッピングする。代替的に、仮数デコーダ770は、仮数を、元の信号サンプルのビット幅とは異なるビット幅に対してマッピングして、各々が拡張されたビット数Kextを有する復元サンプル421b及び423bをそれぞれ形成することができる。この例においては、復元サンプル421a、421b、423a及び423b内の高位ビットは、符号−絶対値表現に対応して、ゼロである。代替的に、宛先プロセッサの所望のデータ表現に応じて、高位ビットの1つ又はそれ以上を、符号拡張ビットとすることができる。
【0056】
図19は、図8bに関して説明された圧縮サンプルを復元する例である。仮数デコーダ770は、パラメータm_expを用いて、圧縮サンプル425及び426の仮数ビット及び符号ビットを識別する。仮数デコーダ770は、m_exp仮数ビット及び符号ビットを、Kビット・サンプルに対してマッピングする。左シフト器774は、ビットを左にn_LSBだけシフトし、復元サンプル421c及び423cをそれぞれ生成する。代替的に、仮数デコーダ770及び左シフト器774は、各々が拡張されたビット数Kextを有する復元サンプル421d及び423dをそれぞれ形成することができる。代替的に、宛先プロセッサの所望のデータ表現に応じて、高位ビットの1つ又はそれ以上を、符号拡張ビットとすることができる。
【0057】
本発明の圧縮器110及び復元器700は、サンプルの特定のデータ表現形式によって制限されるものではない。データ表現形式は、符号−絶対値、符号拡張、2の補数及び符号なし整数を含むことができる。データ表現形式は、IEEE−754−1985又はIEEE_754−2008標準に記載されているような、標準的な浮動小数点形式の32ビット、64ビット又は128ビットの値の仮数又は指数(又は両方)を含むこともできる。浮動小数点エンコーダ400又はプリプロセッサ300に入力されるサンプルは、ブロック浮動小数点デコーダ710又はポストプロセッサ720から出力される復元サンプルとは異なるデータ表現形式を有することができる。ユーザは、特定のアプリケーションのためのデータプロセッサ・システムの要求を満たすデータ表現形式を定めることができる。
【0058】
圧縮器110は、ADC200から出力される信号サンプルに対して単純な操作を適用する。ブロック浮動小数点コード化は、比較器、減算器、及びルックアップ表を用いる。復元器は、圧縮パケットを復元するために、単純な操作を適用する。ブロック浮動小数点デコードの復元器は、ルックアップ表、加算器及びシフト器を含む。操作が単純なので、圧縮器110及び復元器700は、無線通信、レーダ、超音波、コンピュータ断層撮影の生データ及びその他のイメージング・モダリティのその他の生データを含む信号処理アプリケーションにおいて、実時間で動作するように、又は、少なくともADC200のサンプリング率と同じほど高速で動作するように、実装することができる。
【0059】
圧縮器110の実施形態は、ADC200及び圧縮器110を統合して、単一の特定用途向け集積回路(ASIC)デバイスにすることを含む。圧縮器110の実装は、少なくとも、BFPエンコーダ400及びビット・パッカ600を含む。圧縮コントローラ600は、そのASIC内に実装することも、又はマイクロコントローラ内に実装することもできる。アプリケーションに応じて、圧縮器110は、プリプロセッサ300を含むこともできる。代替的なアーキテクチャは、圧縮器110をADC200とは別個のデバイス内に実装することができる。圧縮器110は、ASIC、FPGA、又はデジタル信号プロセッサ(DSP)、マイクロプロセッサ、マイクロコントローラ、マルチコアCPU(例えばIBM Cell)若しくはグラフィック処理装置(GPU、例えばNvidia GeForce)のようなプログラム可能プロセッサにより実装することができる。
【0060】
復元器700は、アプリケーション・プロセッサ722と同じデバイスに組み込むことも、アプリケーション・プロセッサ722とは異なるデバイスに組み込むこともできる。復元操作は、ASIC又はFPGAに実装することができる。復元器700は、デジタル−アナログ変換器(DAC)内に組み込むことができ、この場合、DACは、図14のアプリケーション・プロセッサ722を置き換える。代替的に、復元操作は、DSP、マイクロプロセッサ、マイクロコントローラ、CPU又はGPUのようなプログラム可能プロセッサにより実行可能な、ソフトウェア又はファームウェア・プログラムとして実装することができる。復元器700の好ましい実装形態は、GPUにより実行可能な復元操作のための命令を有するソフトウェア・プログラムである。GPUは、アプリケーション・プロセッサ722の操作の少なくとも一部を実装するようにプログラムすることもできる。代替的に、復元されたサンプルを、そのアプリケーションのための更なる信号処理操作のために、CPUのような別のプログラム可能プロセッサに転送することができる。
【0061】
図20は、本技術の実施形態と共に用いるのに適したコンピュータ・システム210の単純化されたブロック図である。コンピュータ・システム210は、典型的には、バス・サブシステム212を介して多数の周辺デバイスと通信する少なくとも1つのプロセッサ214を含む。これらの周辺デバイスは、メモリ・サブシステム226及びファイル格納サブシステム228を含む格納サブシステム224と、ユーザ・インターフェース入力デバイス222と、ユーザ・インターフェース出力デバイス220と、通信インターフェース・サブシステム216とを含むことができる。入力及び出力デバイスは、コンピュータ・システム210とのユーザ対話を可能にする。通信インターフェース・サブシステム216は、単一チャネル、又は複数のチャネルを有する通信ネットワークであり得る通信チャネル又はネットワーク218に対するインターフェースを提供する。通信チャネル又はネットワーク218は、他のコンピュータ・システム内のインターフェース・デバイス、送受信デバイス、又は外部ネットワークに結合される。通信チャネル又はネットワーク218は、有線リンク、光リンク、無線リンク、又は情報を通信するためのその他のいずれかの機構を含むことができる。通信ネットワーク218は、多数の相互接続されたコンピュータ・システム及び通信リンクを含むことができる。一実施形態において、通信ネットワーク218は、インターネットであるが、他の実施形態において、通信ネットワーク218は、いずれかの適切なコンピュータ・ネットワークとすることができる。
【0062】
ユーザ・インターフェース入力デバイス222は、キーボード、ポインティング・デバイス、例えばマウス、トラックボール、タッチパッド又はグラフィックス・タブレット、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声入力デバイス、例えば音声認識システム、マイクロフォン、及びその他のタイプの入力デバイスを含むことができる。一般に、「入力デバイス」という用語の使用は、情報をコンピュータ・システム210に入力するための全ての可能なタイプのデバイス及び方法を含むことが意図される。
【0063】
ユーザ・インターフェース出力デバイス220は、ディスプレイ・サブシステム、プリンタ、ファックス機、又は音声出力デバイスのような非視覚的ディスプレイを含むことができる。ディスプレイ・サブシステムは、陰極線管(CRT)、フラットパネルデバイス、例えば液晶ディスプレイ(LCD)、投影デバイス、又は可視画像を生成するためのその他の機構を含むことができる。ディスプレイ・サブシステムは、音声出力デバイスによるもののような非視覚的ディスプレイを備えることもできる。通常、「出力デバイス」という用語の使用は、コンピュータ・システム210からの情報をユーザ又は別のマシン若しくはコンピュータ・システムに出力するための、全ての可能なタイプのデバイス及び方法を含むことが意図される。
【0064】
格納サブシステム224は、ここで説明された圧縮器110及び/又は復元器700の幾つか又は全ての機能を提供することができる基本的なプログラミング及びデータ構造を格納する。これらのソフトウェア・モジュールは、一般にプロセッサ214によって実行される。プロセッサ214は、DSP、マイクロプロセッサ、マイクロコントローラ、CPU又はGPUのうちの1つ又はそれ以上を含むことができる。プロセッサ214は、圧縮器110又は復元器700の機能の幾つか又は全てを実装する、上述のような専用ASIC又はFPGA論理を含むこともできる。
【0065】
メモリ・サブシステム226は、典型的には、プログラム実行中に命令及びデータを格納するための主ランダム・アクセス・メモリ(RAM)と、固定の命令が格納される読み出し専用メモリ(ROM)232とを含む多数のメモリを含む。ファイル格納サブシステム228は、プログラム及びデータ・ファイルのための永続的な格納部を提供し、ハードディスク・ドライブ、関連付けられた取り外し可能媒体と併せたフロッピーディスク・ドライブ、CD−ROMドライブ、光学ドライブ、又は取り外し可能媒体カートリッジを含むことができる。特定の実施形態の機能を実装するデータベース及びモジュールを、ファイル格納サブシステム228により格納することができる。
【0066】
バス・サブシステム212は、コンピュータ・システム210の種々のコンポーネント及びサブシステムを意図したとおりに互いに通信させる機構を提供する。バス・サブシステム212は、略図的に単一バスとして示されているが、バス・サブシステムの代替的な実施形態は、多重のバスを用いることができる。
【0067】
コンピュータ可読媒体240は、ファイル格納サブシステム228及び/又は通信インターフェース・サブシステム216に関連付けられた、媒体とすることができる。コンピュータ可読媒体240は、ハードディスク、フロッピーディスク、CD−ROM、光媒体、取り外し可能媒体カートリッジ、又は電磁波とすることができる。コンピュータ可読媒体240は、圧縮データ・ファイル280を格納するものとして図示されている。コンピュータ可読媒体は、圧縮器110及び/又は復元器700の機能を実装するプログラムを格納することもできる。
【0068】
コンピュータ・システム210自体は、パーソナル・コンピュータ、ポータブル・コンピュータ、ワークステーション、コンピュータ端末、ネットワーク・コンピュータ、テレビ、メインフレーム、又はその他のいずれかのデータ処理システム若しくはユーザ・デバイスを含む種々のタイプのものとすることができる。コンピュータ及びネットワークは絶えず変化する性質であるため、図20に描かれたコンピュータ・システム210の説明は、好ましい実施形態を例証する目的のための特定の例に過ぎないことが意図される。図20に描かれたコンピュータ・システムより多くのコンポーネント又は少ないコンポーネントを有するその他の多くのコンピュータ・システム210の構成が可能である。
【0069】
本発明の実施形態は、通信、超音波、レーダ及びセンサを含む様々な信号タイプ及びアプリケーションの信号サンプルを圧縮することができる。本発明の圧縮は、コンピュータ断層撮影法(CT)及び磁気共鳴イメージング(MRI)の生データを含む、イメージングのためのデータ収集システムにより生成される信号に適用することができる。これらのタイプのアプリケーションのためのデータ処理システムは、一般に、データ収集システム(DAS)とも呼ばれる、信号データを捕捉するための信号収集及び処理システムを含む。捕捉された信号データは、格納及びアプリケーション処理のためにコンピュータ・システム210に転送される。図21は、様々なアプリケーションにおいて用いられる信号データを捕捉して処理するためのデータ処理システムの一般化されたブロック図である。データ収集システム120は、特定のアプリケーションのためのセンサ及び処理要素を含む。例えば、超音波及びソナーの場合は、データ収集システム120は、受信した音響信号をアナログ電気信号に変換するための超音波トランスデューサ要素を含む。CT DASを含むX線イメージングの実装形態の場合は、データ収集システム120は、検出されたX線照射から電気信号を生成するためのX線センサを含む。通信、レーダ又はMRI DASの場合は、データ収集システム120は、収集された電磁波をアナログ信号に変換するためのアンテナ及び受信機システムを含む。収集されたデータのデジタル処理のために、データ収集システム120は、アナログ信号をサンプリングするためのADC200を含む。信号サンプルは、アプリケーション・システムのアーキテクチャに応じて、インターフェース222又は218を介して、コンピュータ・システム210に転送することができる。コンピュータ・システム210は、受信した信号サンプルの特定用途アプリケーション向けの処理及び/又は格納、及び/又は処理された結果の格納を行う。超音波、ソナー、レーダ、CT及びMRIのようなアプリケーションの場合は、プロセッサ214は、ディスプレイ・サブシステム220のための二次元又は三次元画像を形成するために、イメージング計算を適用する。通信アプリケーションの場合は、プロセッサ214は、ユーザ・インターフェース出力デバイス220のための出力を形成するために、信号サンプルに復調操作を適用し、及び/又は、通信ネットワーク218を介して別の宛先に転送するために、信号サンプルを処理する。これらのアプリケーション及び図21の一般的なアーキテクチャを用いるその他のアプリケーションの場合、圧縮器110をデータ収集及び処理システム120内に統合することにより、インターフェース222又は228に求められる帯域幅の要件が低減され、コンピュータ・システム210の格納サブシステムのリソース224が節約される。プロセッサ214は、アプリケーションの処理の前に圧縮データを復元するために、復元器700を実装するための専用プロセッサを含むことができる。
【0070】
図22は、圧縮を含むデータ収集システム120のブロック図である。センサ・サブシステム130は、受信した特定のモダリティの波形をアナログ信号100に変換するようアプリケーションのために動作する、検出器、トランスデューサ及び/又は受信機を含む。図1に関して説明されたように、ADC200は、アナログ信号100をサンプリングし、圧縮器110は、信号サンプルを圧縮する。デバイス・インターフェース130は、圧縮データを、コンピュータ・システム210に転送するためにインターフェース218又は222に与える。プロセッサ214は、図14に関して説明されたように、受信した圧縮データを復元し、アプリケーション特有の処理を行う。コンピュータ・システム210は、受信した圧縮データを、後で復元及びアプリケーション処理を行うためにファイル格納サブシステム228内に格納することができる。
【0071】
幾つかのアプリケーションの場合、コンピュータ・システム210は、信号サンプルを、格納サブシステム224、通信チャネル218又はユーザ・インターフェース出力デバイス220への転送前に、圧縮することができる。例えば、画像データを、出力ディスプレイ・デバイス又はプリンタのようなユーザ・インターフェース出力デバイスへと転送することは、出力デバイス220に埋め込まれた帯域幅及びメモリを消費することがある。多くの場合、プリンタは、オフィス又は家庭内のコンピュータ・ネットワークの共有リソースであるため、走査された又はラスタ化された画像サンプルは、ネットワーク218を介してプリンタに転送される。ディスプレイ・デバイス又はプリンタ向けの画像データを処理することは、二次元画像データを走査又はラスタ化して、走査された画像サンプルの一次元シーケンスにすることを含むことができる。プロセッサ214は、出力ディスプレイ・デバイス220への転送又は通信ネットワーク218を介した共有プリンタへの転送の前に、圧縮器110を適用することができる。この場合、ラスタ化された画像サンプルが、圧縮器110に入力される信号サンプルである。出力ディスプレイ・デバイス220に埋め込まれた復元器700が、二次元画像を表示又は印刷するための操作の前に、圧縮された走査サンプルを復元する。
【0072】
本発明の好ましい実施形態を図示して説明したが、本発明は、これらの実施形態だけに限定されるものではないことが明らかであろう。当業者には、特許請求の範囲に記載された本発明の思想及び範囲から逸脱することのない幾多の修正、変更、バリエーション、置換、及び均等物が明らかであろう。
【符号の説明】
【0073】
100:入力アナログ信号
201:サンプル値信号
210:コンピュータ・システム
408:マルチプレクサ
410、418:圧縮グループ
420:入力サンプル
421、423:非圧縮サンプル
422、424、425、426:圧縮サンプル
421a、423a、421c、423c:元のビット数を有する復元サンプル
421b、423b、421d、423d:拡張されたビット数を有する復元サンプル
600:圧縮コントローラ
700:復元器
751:指数トークンの下位4ビット
780、790:復元されたグループ
【特許請求の範囲】
【請求項1】
複数の信号サンプルを圧縮するための方法であって、前記信号サンプルは、サンプル毎に、あるビット数からなり、前記方法は、
前記複数の信号サンプルを、コード化対象グループのシーケンスにグループ化するステップと、
前記コード化対象グループのシーケンス内のコード化対象グループについて、前記コード化対象グループのブロック指数値を決定し、かつ、該コード化対象グループ内の各信号サンプルの仮数を決定し、前記仮数が、該コード化対象グループの前記指数値に基づくビット数を有するものである、ステップと、
前記コード化対象グループのシーケンスについて、該コード化対象グループの前記ブロック指数値をコード化して、前記シーケンス内の1つ又はそれ以上のコード化対象グループについての1つ又はそれ以上のブロック指数値を表わす、前記シーケンス内の前記コード化対象グループの指数トークンを決定する、ステップと、
前記指数トークン及び前記仮数を用いて、前記複数の信号サンプルを格納又は伝送のためにコード化して、圧縮データを形成するステップと、
を含むことを特徴とする方法。
【請求項2】
個々のコード化対象グループの前記指数トークンを、前記個々のコード化対象グループ内の前記信号サンプルの連続して配列された前記仮数に隣接して配列することにより圧縮データセットを形成するステップを含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記シーケンス内の複数のコード化対象グループの前記指数トークンを連続して配列し、かつ前記複数のコード化対象グループ内の前記信号サンプルの前記仮数を連続して配列することにより圧縮データセットを形成するステップを含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記ブロック指数値が、前記コード化対象グループ内の最大絶対値を有する信号サンプル内の最上位の非ゼロビットの桁数値に基づくものであることを特徴とする請求項1に記載の方法。
【請求項5】
前記ブロック指数値をコード化するステップが、
前記シーケンス内の連続したコード化グループのブロック指数値間の差分を決定するステップと、
前記決定された差分をコード化して、前記連続したコード化対象グループの少なくとも一部についての前記指数トークンを生成するステップと、
を含むことを特徴とする請求項1に記載の方法。
【請求項6】
前記ブロック指数値をコード化するステップが、
指数トークン・コードの所定の組を準備し、前記所定の組の中の前記指数トークン・コードは、2つの連続したコード化対象グループ内のブロック指数値間のそれぞれの差分をコード化するものである、ステップと、
前記シーケンス内の2つの連続したコード化対象グループの前記ブロック指数値間の前記決定された差分が、前記所定の組の中の前記指数トークン・コードのうちの1つと適合した場合に、前記指数トークン・コードのうちの前記の1つを用いて、前記2つの連続したコード化対象グループのうちの1つのコード化対象グループの前記ブロック指数値を表わすステップと、
を含むことを特徴とする請求項5に記載の方法。
【請求項7】
前記ブロック指数値をコード化するステップが、
指数トークン・コードの所定の組を準備し、前記所定の組の中の前記指数トークン・コードが、2つより多い連続したコード化対象グループ内のブロック指数値間のそれぞれの差分をコード化するものである、ステップと、
前記シーケンス内の2つより多い連続したコード化対象グループの前記ブロック指数値間の前記決定された差分が、前記所定の組の中の前記指数トークン・コードのうちの1つと適合した場合に、前記指数トークン・コードのうちの前記1つを用いて、前記連続したコード化対象グループのうちの1つより多いコード化対象グループの前記ブロック指数値を表わすステップと、
を含むことを特徴とする請求項5に記載の方法。
【請求項8】
前記仮数を決定するステップが、前記コード化対象グループ内の信号サンプルから除去するための最下位ビット(LSB)数を指定するステップを含み、前記コード化対象グループ内の信号サンプルの前記仮数が、前記コード化対象グループの前記ブロック指数値から前記指定された最下位ビット数を減じたものと等しいビット数を含むことを特徴とする請求項1に記載の方法。
【請求項9】
前記LSB数を指定するステップが、前記コード化対象グループの前記ブロック指数値に基づいて指定されることを特徴とする請求項8に記載の方法。
【請求項10】
前記最下位ビット数を指定するステップが、前記圧縮データのための所望のビットレートに基づいて指定されることを特徴とする請求項8に記載の方法。
【請求項11】
前記最下位ビット数を指定するステップが、前記圧縮データのための所望の品質要求基準に基づいて指定されることを特徴とする請求項8に記載の方法。
【請求項12】
前記各信号サンプルが符号ビットを含み、前記仮数を決定するステップが、各信号サンプルの前記符号ビットを前記決定された仮数に付加するステップを含むことを特徴とする請求項1に記載の方法。
【請求項13】
前記グループ化するステップ、前記決定するステップ及び前記コード化するステップを行うために信号処理システムを用いるステップを含み、前記信号処理システムは、アナログ信号を受信するアナログ−デジタル変換器を含み、前記方法はさらに、
前記アナログ信号を、前記グループ化するステップに提供される前記複数の信号サンプルに変換するステップ
を含むことを特徴とする請求項1に記載の方法。
【請求項14】
前記グループ化するステップ、前記決定するステップ及び前記コード化するステップを行うためにデータ・プロセッサ及びデータ格納システムを用いるステップを含むことを特徴とする請求項1に記載の方法。
【請求項15】
前記複数の信号サンプルを、データ通信チャネル内の受信機を用いて受信するステップを含むことを特徴とする請求項1に記載の方法。
【請求項16】
前記複数の信号サンプルが、データ格納システム内に格納されており、前記データ格納システムから前記複数の信号サンプルを読み出すステップを含むことを特徴とする請求項1に記載の方法。
【請求項17】
複数のコード化された元の信号サンプルを表わす圧縮データを運ぶ入力信号を復元するための方法であって、
圧縮データを逆アセンブルして、複数の指数トークンと複数の圧縮された仮数のグループとを取得し、前記複数のコード化された元の信号サンプルは、前記指数トークンと前記仮数とによって表わされる、ステップと、
前記複数の指数トークンをデコードして、各ブロック指数値が前記複数の圧縮グループのうちの1つに関連付けられる複数のブロック指数値を形成する、ステップと、
前記圧縮グループの各々について、前記関連付けられた指数値を用いて、前記圧縮グループ内の前記仮数の各々を表わすビット数を決定し、各仮数の前記ビット数を対応する復元サンプルにマッピングして、復元サンプルのグループを形成する、ステップと、
前記決定するステップ及び前記マッピングするステップを前記複数の圧縮グループに適用して、複数の復元サンプルを生成する、ステップと、
を含むことを特徴とする方法。
【請求項18】
前記複数の指数トークンの一部が、連続した圧縮グループに関連付けられたブロック指数値間の差分をコード化したものであり、前記複数の指数トークンをデコードするステップが、さらに、
指数トークン・コードの所定の組を準備し、前記所定の組の中の前記指数トークン・コードは、連続した圧縮グループに関連付けられたブロック指数値間のそれぞれの差分をコード化するものである、ステップと、
所与の指数トークンについて、前記所定の組を用いて、前記所与の指数トークンによって表わされる1つ又はそれ以上の差分をデコードするステップと、
デコードされた各差分について、前記デコードされた差分をその前のブロック指数値に加算して、前記連続した圧縮グループのうちの対応する1つに関連付けられた前記ブロック指数値を決定する、ステップと、
を含むことを特徴とする請求項17に記載の方法。
【請求項19】
前記仮数のビット数を決定するステップが、
前記関連付けられたブロック指数値に基づいて最下位ビット(LSB)数を決定するステップをさらに含み、前記マッピングするステップが、前記対応する復元サンプルの前記LSB数に、ビット値ゼロ又はディザ・ビット値を挿入するステップを含むことを特徴とする請求項17に記載の方法。
【請求項20】
前記入力信号が、圧縮制御パラメータを含み、前記LSB数を決定するステップがさらに、
前記入力信号から前記圧縮制御パラメータを受信するステップと、
ローカル・メモリ内に格納された、各量子化プロファイルがそれぞれのブロック指数値をそれぞれのLSB数に関係づけるルックアップ表又は式を含む、複数の量子化プロファイルから、前記圧縮制御パラメータに従って量子化プロファイルを選択するステップと、
前記選択された量子化プロファイルを用いて、前記関連付けられたブロック指数値に基づいて前記LSB数を決定する、ステップと
をさらに含むことを特徴とする請求項19に記載の方法。
【請求項21】
前記逆アセンブルするステップ、前記デコードするステップ、前記決定するステップ、前記マッピングするステップ及び前記適用するステップを行うために、データ・プロセッサを用いるステップを含む請求項17に記載の方法。
【請求項22】
前記入力信号を、データ通信チャネル内の受信機を用いて受信するステップを含むことを特徴とする請求項17に記載の方法。
【請求項23】
前記入力信号を、データ格納システムから取得するステップを含む請求項17に記載の方法。
【請求項24】
複数の信号サンプルを圧縮するための装置であって、前記信号サンプルは、サンプル毎に、あるビット数からなり、前記装置は、
コード化対象グループのシーケンスを形成するために、前記信号サンプルをコード化対象グループのシーケンスにグループ化するための論理と、
各コード化対象グループについてブロック指数値を決定する論理と、
各コード化対象グループ内の前記信号サンプルを受信し、各信号サンプルについて仮数を形成し、特定のコード化対象グループの各仮数が、該特定のコード化対象グループの前記ブロック指数値に基づくビット数を有するものである、仮数エンコーダと、
前記コード化対象グループのシーケンスについて前記ブロック指数値をコード化して、1つ又はそれ以上のコード化対象グループについての1つ又はそれ以上のブロック指数値を表わす指数トークンを生成する、指数エンコーダと
前記コード化対象グループのシーケンスの前記指数トークンと前記仮数とを配列して、格納又は伝送のための圧縮データを形成する、ビット・パッカと、
を含むことを特徴とする装置。
【請求項25】
前記ビット・パッカが、
個々のコード化対象グループの前記指数トークンを、前記個々のコード化対象グループ内の前記信号サンプルの連続して配列された前記仮数に隣接して配列して、圧縮データセットを形成する、マルチプレクサ
をさらに含むことを特徴とする請求項24に記載の装置。
【請求項26】
前記ビット・パッカが、
前記シーケンス内の複数のコード化対象グループの前記指数トークンを連続して配列し、かつ前記複数のコード化対象グループ内の前記信号サンプルの前記仮数を連続して配列して、圧縮データセットを形成する、マルチプレクサ
をさらに含むことを特徴とする請求項24に記載の装置。
【請求項27】
前記ブロック指数値が、前記コード化対象グループ内の最大絶対値を有する信号サンプル内の最上位の非ゼロビットの桁数値に基づくものであることを特徴とする請求項24に記載の装置。
【請求項28】
前記指数エンコーダが、連続した圧縮グループに関連付けられたブロック指数値間の差分を決定する差分計算器をさらに含み、前記指数エンコーダは、前記決定された差分をコード化して、対応する指数トークンを生成することを特徴とする請求項24に記載の装置。
【請求項29】
前記指数エンコーダが、
メモリ内に格納された指数トークン・コードの所定の組をさらに含み、前記所定の組の中の前記指数トークン・コードは、2つの連続したコード化対象グループ内のブロック指数値間のそれぞれの差分をコード化するものであり、
前記指数エンコーダは、
前記シーケンス内の2つの連続したコード化対象グループの前記ブロック指数値間の前記決定された差分が、前記所定の組の中の前記指数トークン・コードのうちの1つと適合するかどうか判定し、適合した場合には、前記2つの連続したコード化対象グループのうちの1つのコード化対象グループの前記ブロック指数値を表わすために、前記指数トークン・コードのうちの前記の1つを選択する、論理
をさらに含むことを特徴とする請求項28に記載の装置。
【請求項30】
前記指数エンコーダが、
メモリ内に格納された指数トークン・コードの所定の組をさらに含み、前記所定の組の中の前記指数トークン・コードは、2つより多い連続したコード化対象グループ内のブロック指数値間のそれぞれの差分をコード化するものであり、
前記指数エンコーダは、
前記シーケンス内の2つより多い連続したコード化対象グループの前記ブロック指数値間の前記決定された差分が、前記所定の組の中の前記指数トークン・コードのうちの1つと適合するかどうか判定し、適合した場合には、前記連続したコード化対象グループのうちの1つのコード化対象グループの前記ブロック指数値を表わすために、前記指数トークン・コードのうちの前記1つを選択する、論理
をさらに含むことを特徴とする請求項28に記載の装置。
【請求項31】
前記仮数エンコーダが、各コード化対象グループ内の信号サンプルから除去するための最下位ビット(LSB)数を指定し、特定のコード化対象グループの各仮数が、前記ブロック指数値から前記指定された最下位ビット数を減じたものと等しいビット数を有することを特徴とする請求項24に記載の装置。
【請求項32】
前記仮数エンコーダが、メモリ内に格納された量子化プロファイルをさらに含み、前記量子化プロファイルは、それぞれのブロック指数値をそれぞれのLSB数に関係づけるルックアップ表又は式を含んでおり、前記仮数エンコーダが、前記量子化プロファイルを用いて、前記コード化対象グループの前記ブロック指数値に基づいて前記LSB数を指定することを特徴とする請求項31に記載の装置。
【請求項33】
圧縮制御パラメータを前記仮数エンコーダに提供する圧縮コントローラをさらに含み、前記メモリ内に複数の量子化プロファイルが格納されており、前記仮数エンコーダが、前記圧縮制御パラメータに従って前記量子化プロファイルのうちの1つを選択することを特徴とする請求項32に記載の装置。
【請求項34】
前記圧縮コントローラが、前記圧縮データのための所望のビットレートに基づいて前記圧縮制御パラメータを決定することを特徴とする請求項33に記載の装置。
【請求項35】
前記圧縮コントローラが、前記圧縮データのための所望の品質要求基準に基づいて前記圧縮制御パラメータを決定することを特徴とする請求項33に記載の装置。
【請求項36】
アナログ信号を受信するように結合された、前記アナログ信号を前記複数の信号サンプルに変換するアナログ−デジタル変換器をさらに含むことを特徴とする請求項24に記載の装置。
【請求項37】
複数のコード化された元の信号サンプルを表わす圧縮データを運ぶ入力信号を復元するための装置であって、
前記複数のコード化された元の信号サンプルが複数の指数トークンと複数の圧縮された仮数のグループとによって表わされる、前記圧縮データを受信するバッファと、
前記複数の指数トークンと前記複数の圧縮された仮数のグループとを取得するために前記圧縮データを逆アセンブルするための、前記バッファに結合された論理と、
前記複数の指数トークンを受信して、各ブロック指数値が前記圧縮された仮数のグループのうちの1つに関連付けられる複数のブロック指数値を決定する、指数デコーダと、
各々の圧縮された仮数のグループと、前記関連付けられたブロック指数値とを受信し、前記圧縮グループ内の前記仮数の各々を表わすビット数は、前記関連付けられたブロック指数値に基づくものであり、各仮数の前記ビット数を対応する復元サンプルにマッピングして復元サンプルのグループを形成し、前記複数の圧縮グループをデコードして複数の復元サンプルを生成する、仮数デコーダと
を含むことを特徴とする装置。
【請求項38】
前記複数の指数トークンの一部が、連続した圧縮グループに関連付けられたブロック指数値間の差分をコード化したものであり、前記指数デコーダが、
メモリ内に格納された指数トークン・コードの所定の組をさらに含み、前記所定の組の中の前記指数トークン・コードは、連続した圧縮グループのブロック指数値間のそれぞれの差分をコード化するものであり、前記指数デコーダは、前記所定の組を用いて、受信された指数トークンにより表わされる1つ又はそれ以上の差分をデコードして、1つ又はそれ以上のデコードされた差分を取得し、前記指数デコーダは、
各々のデコードされた差分と、それぞれのその前のブロック指数値とを受け取り、かつ前記連続した圧縮グループのうちの対応する1つについての前記ブロック指数値を生成する、加算器
をさらに含むことを特徴とする請求項37に記載の装置。
【請求項39】
前記仮数デコーダが、前記関連付けられたブロック指数値に基づいて最下位ビット(LSB)数を決定し、前記対応する復元サンプルの前記LSB数に対して、ビット値ゼロ又はディザ・ビット値を挿入することを特徴とする請求項37に記載の装置。
【請求項40】
前記入力信号が、圧縮制御パラメータを含み、前記装置が、
前記入力信号から前記圧縮制御パラメータを受信し、該圧縮制御パラメータを前記仮数デコーダに提供する圧縮制御コントローラと、
前記仮数デコーダに結合されたメモリ内に格納された、各量子化プロファイルがそれぞれのブロック指数値をそれぞれのLSB数に関係づけるルックアップ表又は式を含む、複数の量子化プロファイルとをさらに含み、前記仮数デコーダが、前記圧縮制御パラメータに従って前記量子化プロファイルのうちの1つを選択し、該仮数デコーダは、前記選択された量子化プロファイルを用いて、前記関連付けられたブロック指数値に基づいて前記LSB数を決定することを特徴とする請求項39に記載の装置。
【請求項41】
データ通信チャネルから前記入力信号を受信するように結合された、前記圧縮データを前記バッファに提供する受信機をさらに含むことを特徴とする請求項37に記載の装置。
【請求項42】
前記入力信号を格納する、前記バッファに前記圧縮データを提供するように結合されたデータ格納システムをさらに含むことを特徴とする請求項37に記載の装置。
【請求項1】
複数の信号サンプルを圧縮するための方法であって、前記信号サンプルは、サンプル毎に、あるビット数からなり、前記方法は、
前記複数の信号サンプルを、コード化対象グループのシーケンスにグループ化するステップと、
前記コード化対象グループのシーケンス内のコード化対象グループについて、前記コード化対象グループのブロック指数値を決定し、かつ、該コード化対象グループ内の各信号サンプルの仮数を決定し、前記仮数が、該コード化対象グループの前記指数値に基づくビット数を有するものである、ステップと、
前記コード化対象グループのシーケンスについて、該コード化対象グループの前記ブロック指数値をコード化して、前記シーケンス内の1つ又はそれ以上のコード化対象グループについての1つ又はそれ以上のブロック指数値を表わす、前記シーケンス内の前記コード化対象グループの指数トークンを決定する、ステップと、
前記指数トークン及び前記仮数を用いて、前記複数の信号サンプルを格納又は伝送のためにコード化して、圧縮データを形成するステップと、
を含むことを特徴とする方法。
【請求項2】
個々のコード化対象グループの前記指数トークンを、前記個々のコード化対象グループ内の前記信号サンプルの連続して配列された前記仮数に隣接して配列することにより圧縮データセットを形成するステップを含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記シーケンス内の複数のコード化対象グループの前記指数トークンを連続して配列し、かつ前記複数のコード化対象グループ内の前記信号サンプルの前記仮数を連続して配列することにより圧縮データセットを形成するステップを含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記ブロック指数値が、前記コード化対象グループ内の最大絶対値を有する信号サンプル内の最上位の非ゼロビットの桁数値に基づくものであることを特徴とする請求項1に記載の方法。
【請求項5】
前記ブロック指数値をコード化するステップが、
前記シーケンス内の連続したコード化グループのブロック指数値間の差分を決定するステップと、
前記決定された差分をコード化して、前記連続したコード化対象グループの少なくとも一部についての前記指数トークンを生成するステップと、
を含むことを特徴とする請求項1に記載の方法。
【請求項6】
前記ブロック指数値をコード化するステップが、
指数トークン・コードの所定の組を準備し、前記所定の組の中の前記指数トークン・コードは、2つの連続したコード化対象グループ内のブロック指数値間のそれぞれの差分をコード化するものである、ステップと、
前記シーケンス内の2つの連続したコード化対象グループの前記ブロック指数値間の前記決定された差分が、前記所定の組の中の前記指数トークン・コードのうちの1つと適合した場合に、前記指数トークン・コードのうちの前記の1つを用いて、前記2つの連続したコード化対象グループのうちの1つのコード化対象グループの前記ブロック指数値を表わすステップと、
を含むことを特徴とする請求項5に記載の方法。
【請求項7】
前記ブロック指数値をコード化するステップが、
指数トークン・コードの所定の組を準備し、前記所定の組の中の前記指数トークン・コードが、2つより多い連続したコード化対象グループ内のブロック指数値間のそれぞれの差分をコード化するものである、ステップと、
前記シーケンス内の2つより多い連続したコード化対象グループの前記ブロック指数値間の前記決定された差分が、前記所定の組の中の前記指数トークン・コードのうちの1つと適合した場合に、前記指数トークン・コードのうちの前記1つを用いて、前記連続したコード化対象グループのうちの1つより多いコード化対象グループの前記ブロック指数値を表わすステップと、
を含むことを特徴とする請求項5に記載の方法。
【請求項8】
前記仮数を決定するステップが、前記コード化対象グループ内の信号サンプルから除去するための最下位ビット(LSB)数を指定するステップを含み、前記コード化対象グループ内の信号サンプルの前記仮数が、前記コード化対象グループの前記ブロック指数値から前記指定された最下位ビット数を減じたものと等しいビット数を含むことを特徴とする請求項1に記載の方法。
【請求項9】
前記LSB数を指定するステップが、前記コード化対象グループの前記ブロック指数値に基づいて指定されることを特徴とする請求項8に記載の方法。
【請求項10】
前記最下位ビット数を指定するステップが、前記圧縮データのための所望のビットレートに基づいて指定されることを特徴とする請求項8に記載の方法。
【請求項11】
前記最下位ビット数を指定するステップが、前記圧縮データのための所望の品質要求基準に基づいて指定されることを特徴とする請求項8に記載の方法。
【請求項12】
前記各信号サンプルが符号ビットを含み、前記仮数を決定するステップが、各信号サンプルの前記符号ビットを前記決定された仮数に付加するステップを含むことを特徴とする請求項1に記載の方法。
【請求項13】
前記グループ化するステップ、前記決定するステップ及び前記コード化するステップを行うために信号処理システムを用いるステップを含み、前記信号処理システムは、アナログ信号を受信するアナログ−デジタル変換器を含み、前記方法はさらに、
前記アナログ信号を、前記グループ化するステップに提供される前記複数の信号サンプルに変換するステップ
を含むことを特徴とする請求項1に記載の方法。
【請求項14】
前記グループ化するステップ、前記決定するステップ及び前記コード化するステップを行うためにデータ・プロセッサ及びデータ格納システムを用いるステップを含むことを特徴とする請求項1に記載の方法。
【請求項15】
前記複数の信号サンプルを、データ通信チャネル内の受信機を用いて受信するステップを含むことを特徴とする請求項1に記載の方法。
【請求項16】
前記複数の信号サンプルが、データ格納システム内に格納されており、前記データ格納システムから前記複数の信号サンプルを読み出すステップを含むことを特徴とする請求項1に記載の方法。
【請求項17】
複数のコード化された元の信号サンプルを表わす圧縮データを運ぶ入力信号を復元するための方法であって、
圧縮データを逆アセンブルして、複数の指数トークンと複数の圧縮された仮数のグループとを取得し、前記複数のコード化された元の信号サンプルは、前記指数トークンと前記仮数とによって表わされる、ステップと、
前記複数の指数トークンをデコードして、各ブロック指数値が前記複数の圧縮グループのうちの1つに関連付けられる複数のブロック指数値を形成する、ステップと、
前記圧縮グループの各々について、前記関連付けられた指数値を用いて、前記圧縮グループ内の前記仮数の各々を表わすビット数を決定し、各仮数の前記ビット数を対応する復元サンプルにマッピングして、復元サンプルのグループを形成する、ステップと、
前記決定するステップ及び前記マッピングするステップを前記複数の圧縮グループに適用して、複数の復元サンプルを生成する、ステップと、
を含むことを特徴とする方法。
【請求項18】
前記複数の指数トークンの一部が、連続した圧縮グループに関連付けられたブロック指数値間の差分をコード化したものであり、前記複数の指数トークンをデコードするステップが、さらに、
指数トークン・コードの所定の組を準備し、前記所定の組の中の前記指数トークン・コードは、連続した圧縮グループに関連付けられたブロック指数値間のそれぞれの差分をコード化するものである、ステップと、
所与の指数トークンについて、前記所定の組を用いて、前記所与の指数トークンによって表わされる1つ又はそれ以上の差分をデコードするステップと、
デコードされた各差分について、前記デコードされた差分をその前のブロック指数値に加算して、前記連続した圧縮グループのうちの対応する1つに関連付けられた前記ブロック指数値を決定する、ステップと、
を含むことを特徴とする請求項17に記載の方法。
【請求項19】
前記仮数のビット数を決定するステップが、
前記関連付けられたブロック指数値に基づいて最下位ビット(LSB)数を決定するステップをさらに含み、前記マッピングするステップが、前記対応する復元サンプルの前記LSB数に、ビット値ゼロ又はディザ・ビット値を挿入するステップを含むことを特徴とする請求項17に記載の方法。
【請求項20】
前記入力信号が、圧縮制御パラメータを含み、前記LSB数を決定するステップがさらに、
前記入力信号から前記圧縮制御パラメータを受信するステップと、
ローカル・メモリ内に格納された、各量子化プロファイルがそれぞれのブロック指数値をそれぞれのLSB数に関係づけるルックアップ表又は式を含む、複数の量子化プロファイルから、前記圧縮制御パラメータに従って量子化プロファイルを選択するステップと、
前記選択された量子化プロファイルを用いて、前記関連付けられたブロック指数値に基づいて前記LSB数を決定する、ステップと
をさらに含むことを特徴とする請求項19に記載の方法。
【請求項21】
前記逆アセンブルするステップ、前記デコードするステップ、前記決定するステップ、前記マッピングするステップ及び前記適用するステップを行うために、データ・プロセッサを用いるステップを含む請求項17に記載の方法。
【請求項22】
前記入力信号を、データ通信チャネル内の受信機を用いて受信するステップを含むことを特徴とする請求項17に記載の方法。
【請求項23】
前記入力信号を、データ格納システムから取得するステップを含む請求項17に記載の方法。
【請求項24】
複数の信号サンプルを圧縮するための装置であって、前記信号サンプルは、サンプル毎に、あるビット数からなり、前記装置は、
コード化対象グループのシーケンスを形成するために、前記信号サンプルをコード化対象グループのシーケンスにグループ化するための論理と、
各コード化対象グループについてブロック指数値を決定する論理と、
各コード化対象グループ内の前記信号サンプルを受信し、各信号サンプルについて仮数を形成し、特定のコード化対象グループの各仮数が、該特定のコード化対象グループの前記ブロック指数値に基づくビット数を有するものである、仮数エンコーダと、
前記コード化対象グループのシーケンスについて前記ブロック指数値をコード化して、1つ又はそれ以上のコード化対象グループについての1つ又はそれ以上のブロック指数値を表わす指数トークンを生成する、指数エンコーダと
前記コード化対象グループのシーケンスの前記指数トークンと前記仮数とを配列して、格納又は伝送のための圧縮データを形成する、ビット・パッカと、
を含むことを特徴とする装置。
【請求項25】
前記ビット・パッカが、
個々のコード化対象グループの前記指数トークンを、前記個々のコード化対象グループ内の前記信号サンプルの連続して配列された前記仮数に隣接して配列して、圧縮データセットを形成する、マルチプレクサ
をさらに含むことを特徴とする請求項24に記載の装置。
【請求項26】
前記ビット・パッカが、
前記シーケンス内の複数のコード化対象グループの前記指数トークンを連続して配列し、かつ前記複数のコード化対象グループ内の前記信号サンプルの前記仮数を連続して配列して、圧縮データセットを形成する、マルチプレクサ
をさらに含むことを特徴とする請求項24に記載の装置。
【請求項27】
前記ブロック指数値が、前記コード化対象グループ内の最大絶対値を有する信号サンプル内の最上位の非ゼロビットの桁数値に基づくものであることを特徴とする請求項24に記載の装置。
【請求項28】
前記指数エンコーダが、連続した圧縮グループに関連付けられたブロック指数値間の差分を決定する差分計算器をさらに含み、前記指数エンコーダは、前記決定された差分をコード化して、対応する指数トークンを生成することを特徴とする請求項24に記載の装置。
【請求項29】
前記指数エンコーダが、
メモリ内に格納された指数トークン・コードの所定の組をさらに含み、前記所定の組の中の前記指数トークン・コードは、2つの連続したコード化対象グループ内のブロック指数値間のそれぞれの差分をコード化するものであり、
前記指数エンコーダは、
前記シーケンス内の2つの連続したコード化対象グループの前記ブロック指数値間の前記決定された差分が、前記所定の組の中の前記指数トークン・コードのうちの1つと適合するかどうか判定し、適合した場合には、前記2つの連続したコード化対象グループのうちの1つのコード化対象グループの前記ブロック指数値を表わすために、前記指数トークン・コードのうちの前記の1つを選択する、論理
をさらに含むことを特徴とする請求項28に記載の装置。
【請求項30】
前記指数エンコーダが、
メモリ内に格納された指数トークン・コードの所定の組をさらに含み、前記所定の組の中の前記指数トークン・コードは、2つより多い連続したコード化対象グループ内のブロック指数値間のそれぞれの差分をコード化するものであり、
前記指数エンコーダは、
前記シーケンス内の2つより多い連続したコード化対象グループの前記ブロック指数値間の前記決定された差分が、前記所定の組の中の前記指数トークン・コードのうちの1つと適合するかどうか判定し、適合した場合には、前記連続したコード化対象グループのうちの1つのコード化対象グループの前記ブロック指数値を表わすために、前記指数トークン・コードのうちの前記1つを選択する、論理
をさらに含むことを特徴とする請求項28に記載の装置。
【請求項31】
前記仮数エンコーダが、各コード化対象グループ内の信号サンプルから除去するための最下位ビット(LSB)数を指定し、特定のコード化対象グループの各仮数が、前記ブロック指数値から前記指定された最下位ビット数を減じたものと等しいビット数を有することを特徴とする請求項24に記載の装置。
【請求項32】
前記仮数エンコーダが、メモリ内に格納された量子化プロファイルをさらに含み、前記量子化プロファイルは、それぞれのブロック指数値をそれぞれのLSB数に関係づけるルックアップ表又は式を含んでおり、前記仮数エンコーダが、前記量子化プロファイルを用いて、前記コード化対象グループの前記ブロック指数値に基づいて前記LSB数を指定することを特徴とする請求項31に記載の装置。
【請求項33】
圧縮制御パラメータを前記仮数エンコーダに提供する圧縮コントローラをさらに含み、前記メモリ内に複数の量子化プロファイルが格納されており、前記仮数エンコーダが、前記圧縮制御パラメータに従って前記量子化プロファイルのうちの1つを選択することを特徴とする請求項32に記載の装置。
【請求項34】
前記圧縮コントローラが、前記圧縮データのための所望のビットレートに基づいて前記圧縮制御パラメータを決定することを特徴とする請求項33に記載の装置。
【請求項35】
前記圧縮コントローラが、前記圧縮データのための所望の品質要求基準に基づいて前記圧縮制御パラメータを決定することを特徴とする請求項33に記載の装置。
【請求項36】
アナログ信号を受信するように結合された、前記アナログ信号を前記複数の信号サンプルに変換するアナログ−デジタル変換器をさらに含むことを特徴とする請求項24に記載の装置。
【請求項37】
複数のコード化された元の信号サンプルを表わす圧縮データを運ぶ入力信号を復元するための装置であって、
前記複数のコード化された元の信号サンプルが複数の指数トークンと複数の圧縮された仮数のグループとによって表わされる、前記圧縮データを受信するバッファと、
前記複数の指数トークンと前記複数の圧縮された仮数のグループとを取得するために前記圧縮データを逆アセンブルするための、前記バッファに結合された論理と、
前記複数の指数トークンを受信して、各ブロック指数値が前記圧縮された仮数のグループのうちの1つに関連付けられる複数のブロック指数値を決定する、指数デコーダと、
各々の圧縮された仮数のグループと、前記関連付けられたブロック指数値とを受信し、前記圧縮グループ内の前記仮数の各々を表わすビット数は、前記関連付けられたブロック指数値に基づくものであり、各仮数の前記ビット数を対応する復元サンプルにマッピングして復元サンプルのグループを形成し、前記複数の圧縮グループをデコードして複数の復元サンプルを生成する、仮数デコーダと
を含むことを特徴とする装置。
【請求項38】
前記複数の指数トークンの一部が、連続した圧縮グループに関連付けられたブロック指数値間の差分をコード化したものであり、前記指数デコーダが、
メモリ内に格納された指数トークン・コードの所定の組をさらに含み、前記所定の組の中の前記指数トークン・コードは、連続した圧縮グループのブロック指数値間のそれぞれの差分をコード化するものであり、前記指数デコーダは、前記所定の組を用いて、受信された指数トークンにより表わされる1つ又はそれ以上の差分をデコードして、1つ又はそれ以上のデコードされた差分を取得し、前記指数デコーダは、
各々のデコードされた差分と、それぞれのその前のブロック指数値とを受け取り、かつ前記連続した圧縮グループのうちの対応する1つについての前記ブロック指数値を生成する、加算器
をさらに含むことを特徴とする請求項37に記載の装置。
【請求項39】
前記仮数デコーダが、前記関連付けられたブロック指数値に基づいて最下位ビット(LSB)数を決定し、前記対応する復元サンプルの前記LSB数に対して、ビット値ゼロ又はディザ・ビット値を挿入することを特徴とする請求項37に記載の装置。
【請求項40】
前記入力信号が、圧縮制御パラメータを含み、前記装置が、
前記入力信号から前記圧縮制御パラメータを受信し、該圧縮制御パラメータを前記仮数デコーダに提供する圧縮制御コントローラと、
前記仮数デコーダに結合されたメモリ内に格納された、各量子化プロファイルがそれぞれのブロック指数値をそれぞれのLSB数に関係づけるルックアップ表又は式を含む、複数の量子化プロファイルとをさらに含み、前記仮数デコーダが、前記圧縮制御パラメータに従って前記量子化プロファイルのうちの1つを選択し、該仮数デコーダは、前記選択された量子化プロファイルを用いて、前記関連付けられたブロック指数値に基づいて前記LSB数を決定することを特徴とする請求項39に記載の装置。
【請求項41】
データ通信チャネルから前記入力信号を受信するように結合された、前記圧縮データを前記バッファに提供する受信機をさらに含むことを特徴とする請求項37に記載の装置。
【請求項42】
前記入力信号を格納する、前記バッファに前記圧縮データを提供するように結合されたデータ格納システムをさらに含むことを特徴とする請求項37に記載の装置。
【図1】
【図2】
【図3a】
【図3b】
【図4】
【図5】
【図6】
【図7】
【図8a】
【図8b】
【図9】
【図10】
【図11a】
【図11b】
【図11c】
【図11d】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3a】
【図3b】
【図4】
【図5】
【図6】
【図7】
【図8a】
【図8b】
【図9】
【図10】
【図11a】
【図11b】
【図11c】
【図11d】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公表番号】特表2013−508867(P2013−508867A)
【公表日】平成25年3月7日(2013.3.7)
【国際特許分類】
【出願番号】特願2012−535423(P2012−535423)
【出願日】平成22年10月22日(2010.10.22)
【国際出願番号】PCT/US2010/053809
【国際公開番号】WO2011/050293
【国際公開日】平成23年4月28日(2011.4.28)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(510153951)サンプリファイ システムズ インコーポレイテッド (9)
【公表日】平成25年3月7日(2013.3.7)
【国際特許分類】
【出願日】平成22年10月22日(2010.10.22)
【国際出願番号】PCT/US2010/053809
【国際公開番号】WO2011/050293
【国際公開日】平成23年4月28日(2011.4.28)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(510153951)サンプリファイ システムズ インコーポレイテッド (9)
[ Back to top ]