(57)【要約】  信号サンプルを圧縮するための方法及び装置は、ブロック浮動小数点表示を用いるものであり、グループ内の最大絶対値のサンプルによって仮数毎のビット数が決定される。圧縮器は、グループ毎に固定数のサンプルを有する信号サンプルのグループを定義する。グループ内の最大絶対値のサンプルが、最大サンプル値を表わすためのビット数に対応する指数値を定める。指数値は、コード化されて指数トークンを形成する。連続する指数値間の指数差分を、個々に又は合同でコード化することができる。グループ内のサンプルは、対応する仮数に対してマッピングされ、各仮数は、指数値に基づくビット数を有する。指数値に応じたＬＳＢを除去することにより、より少ないビットを有する仮数が生成される。フィードバック制御は、圧縮ビットレート及び／又は品質要求基準を監視する。この要約書は、特許請求の範囲に記載された本発明の範囲を限定するものではない。【選択図】図１
2013508867.tif 000002
【特許請求の範囲】
【請求項１】
複数の信号サンプルを圧縮するための方法であって、前記信号サンプルは、サンプル毎に、あるビット数からなり、前記方法は、
前記複数の信号サンプルを、コード化対象グループのシーケンスにグループ化するステップと、
前記コード化対象グループのシーケンス内のコード化対象グループについて、前記コード化対象グループのブロック指数値を決定し、かつ、該コード化対象グループ内の各信号サンプルの仮数を決定し、前記仮数が、該コード化対象グループの前記指数値に基づくビット数を有するものである、ステップと、
前記コード化対象グループのシーケンスについて、該コード化対象グループの前記ブロック指数値をコード化して、前記シーケンス内の１つ又はそれ以上のコード化対象グループについての１つ又はそれ以上のブロック指数値を表わす、前記シーケンス内の前記コード化対象グループの指数トークンを決定する、ステップと、
前記指数トークン及び前記仮数を用いて、前記複数の信号サンプルを格納又は伝送のためにコード化して、圧縮データを形成するステップと、
を含むことを特徴とする方法。
【請求項２】
個々のコード化対象グループの前記指数トークンを、前記個々のコード化対象グループ内の前記信号サンプルの連続して配列された前記仮数に隣接して配列することにより圧縮データセットを形成するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記シーケンス内の複数のコード化対象グループの前記指数トークンを連続して配列し、かつ前記複数のコード化対象グループ内の前記信号サンプルの前記仮数を連続して配列することにより圧縮データセットを形成するステップを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記ブロック指数値が、前記コード化対象グループ内の最大絶対値を有する信号サンプル内の最上位の非ゼロビットの桁数値に基づくものであることを特徴とする請求項１に記載の方法。
【請求項５】
前記ブロック指数値をコード化するステップが、
前記シーケンス内の連続したコード化グループのブロック指数値間の差分を決定するステップと、
前記決定された差分をコード化して、前記連続したコード化対象グループの少なくとも一部についての前記指数トークンを生成するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記ブロック指数値をコード化するステップが、
指数トークン・コードの所定の組を準備し、前記所定の組の中の前記指数トークン・コードは、２つの連続したコード化対象グループ内のブロック指数値間のそれぞれの差分をコード化するものである、ステップと、
前記シーケンス内の２つの連続したコード化対象グループの前記ブロック指数値間の前記決定された差分が、前記所定の組の中の前記指数トークン・コードのうちの１つと適合した場合に、前記指数トークン・コードのうちの前記の１つを用いて、前記２つの連続したコード化対象グループのうちの１つのコード化対象グループの前記ブロック指数値を表わすステップと、
を含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記ブロック指数値をコード化するステップが、
指数トークン・コードの所定の組を準備し、前記所定の組の中の前記指数トークン・コードが、２つより多い連続したコード化対象グループ内のブロック指数値間のそれぞれの差分をコード化するものである、ステップと、
前記シーケンス内の２つより多い連続したコード化対象グループの前記ブロック指数値間の前記決定された差分が、前記所定の組の中の前記指数トークン・コードのうちの１つと適合した場合に、前記指数トークン・コードのうちの前記１つを用いて、前記連続したコード化対象グループのうちの１つより多いコード化対象グループの前記ブロック指数値を表わすステップと、
を含むことを特徴とする請求項５に記載の方法。
【請求項８】
前記仮数を決定するステップが、前記コード化対象グループ内の信号サンプルから除去するための最下位ビット（ＬＳＢ）数を指定するステップを含み、前記コード化対象グループ内の信号サンプルの前記仮数が、前記コード化対象グループの前記ブロック指数値から前記指定された最下位ビット数を減じたものと等しいビット数を含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記ＬＳＢ数を指定するステップが、前記コード化対象グループの前記ブロック指数値に基づいて指定されることを特徴とする請求項８に記載の方法。
【請求項１０】
前記最下位ビット数を指定するステップが、前記圧縮データのための所望のビットレートに基づいて指定されることを特徴とする請求項８に記載の方法。
【請求項１１】
前記最下位ビット数を指定するステップが、前記圧縮データのための所望の品質要求基準に基づいて指定されることを特徴とする請求項８に記載の方法。
【請求項１２】
前記各信号サンプルが符号ビットを含み、前記仮数を決定するステップが、各信号サンプルの前記符号ビットを前記決定された仮数に付加するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記グループ化するステップ、前記決定するステップ及び前記コード化するステップを行うために信号処理システムを用いるステップを含み、前記信号処理システムは、アナログ信号を受信するアナログ−デジタル変換器を含み、前記方法はさらに、
前記アナログ信号を、前記グループ化するステップに提供される前記複数の信号サンプルに変換するステップ
を含むことを特徴とする請求項１に記載の方法。
【請求項１４】
前記グループ化するステップ、前記決定するステップ及び前記コード化するステップを行うためにデータ・プロセッサ及びデータ格納システムを用いるステップを含むことを特徴とする請求項１に記載の方法。
【請求項１５】
前記複数の信号サンプルを、データ通信チャネル内の受信機を用いて受信するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１６】
前記複数の信号サンプルが、データ格納システム内に格納されており、前記データ格納システムから前記複数の信号サンプルを読み出すステップを含むことを特徴とする請求項１に記載の方法。
【請求項１７】
複数のコード化された元の信号サンプルを表わす圧縮データを運ぶ入力信号を復元するための方法であって、
圧縮データを逆アセンブルして、複数の指数トークンと複数の圧縮された仮数のグループとを取得し、前記複数のコード化された元の信号サンプルは、前記指数トークンと前記仮数とによって表わされる、ステップと、
前記複数の指数トークンをデコードして、各ブロック指数値が前記複数の圧縮グループのうちの１つに関連付けられる複数のブロック指数値を形成する、ステップと、
前記圧縮グループの各々について、前記関連付けられた指数値を用いて、前記圧縮グループ内の前記仮数の各々を表わすビット数を決定し、各仮数の前記ビット数を対応する復元サンプルにマッピングして、復元サンプルのグループを形成する、ステップと、
前記決定するステップ及び前記マッピングするステップを前記複数の圧縮グループに適用して、複数の復元サンプルを生成する、ステップと、
を含むことを特徴とする方法。
【請求項１８】
前記複数の指数トークンの一部が、連続した圧縮グループに関連付けられたブロック指数値間の差分をコード化したものであり、前記複数の指数トークンをデコードするステップが、さらに、
指数トークン・コードの所定の組を準備し、前記所定の組の中の前記指数トークン・コードは、連続した圧縮グループに関連付けられたブロック指数値間のそれぞれの差分をコード化するものである、ステップと、
所与の指数トークンについて、前記所定の組を用いて、前記所与の指数トークンによって表わされる１つ又はそれ以上の差分をデコードするステップと、
デコードされた各差分について、前記デコードされた差分をその前のブロック指数値に加算して、前記連続した圧縮グループのうちの対応する１つに関連付けられた前記ブロック指数値を決定する、ステップと、
を含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記仮数のビット数を決定するステップが、
前記関連付けられたブロック指数値に基づいて最下位ビット（ＬＳＢ）数を決定するステップをさらに含み、前記マッピングするステップが、前記対応する復元サンプルの前記ＬＳＢ数に、ビット値ゼロ又はディザ・ビット値を挿入するステップを含むことを特徴とする請求項１７に記載の方法。
【請求項２０】
前記入力信号が、圧縮制御パラメータを含み、前記ＬＳＢ数を決定するステップがさらに、
前記入力信号から前記圧縮制御パラメータを受信するステップと、
ローカル・メモリ内に格納された、各量子化プロファイルがそれぞれのブロック指数値をそれぞれのＬＳＢ数に関係づけるルックアップ表又は式を含む、複数の量子化プロファイルから、前記圧縮制御パラメータに従って量子化プロファイルを選択するステップと、
前記選択された量子化プロファイルを用いて、前記関連付けられたブロック指数値に基づいて前記ＬＳＢ数を決定する、ステップと
をさらに含むことを特徴とする請求項１９に記載の方法。
【請求項２１】
前記逆アセンブルするステップ、前記デコードするステップ、前記決定するステップ、前記マッピングするステップ及び前記適用するステップを行うために、データ・プロセッサを用いるステップを含む請求項１７に記載の方法。
【請求項２２】
前記入力信号を、データ通信チャネル内の受信機を用いて受信するステップを含むことを特徴とする請求項１７に記載の方法。
【請求項２３】
前記入力信号を、データ格納システムから取得するステップを含む請求項１７に記載の方法。
【請求項２４】
複数の信号サンプルを圧縮するための装置であって、前記信号サンプルは、サンプル毎に、あるビット数からなり、前記装置は、
コード化対象グループのシーケンスを形成するために、前記信号サンプルをコード化対象グループのシーケンスにグループ化するための論理と、
各コード化対象グループについてブロック指数値を決定する論理と、
各コード化対象グループ内の前記信号サンプルを受信し、各信号サンプルについて仮数を形成し、特定のコード化対象グループの各仮数が、該特定のコード化対象グループの前記ブロック指数値に基づくビット数を有するものである、仮数エンコーダと、
前記コード化対象グループのシーケンスについて前記ブロック指数値をコード化して、１つ又はそれ以上のコード化対象グループについての１つ又はそれ以上のブロック指数値を表わす指数トークンを生成する、指数エンコーダと
前記コード化対象グループのシーケンスの前記指数トークンと前記仮数とを配列して、格納又は伝送のための圧縮データを形成する、ビット・パッカと、
を含むことを特徴とする装置。
【請求項２５】
前記ビット・パッカが、
個々のコード化対象グループの前記指数トークンを、前記個々のコード化対象グループ内の前記信号サンプルの連続して配列された前記仮数に隣接して配列して、圧縮データセットを形成する、マルチプレクサ
をさらに含むことを特徴とする請求項２４に記載の装置。
【請求項２６】
前記ビット・パッカが、
前記シーケンス内の複数のコード化対象グループの前記指数トークンを連続して配列し、かつ前記複数のコード化対象グループ内の前記信号サンプルの前記仮数を連続して配列して、圧縮データセットを形成する、マルチプレクサ
をさらに含むことを特徴とする請求項２４に記載の装置。
【請求項２７】
前記ブロック指数値が、前記コード化対象グループ内の最大絶対値を有する信号サンプル内の最上位の非ゼロビットの桁数値に基づくものであることを特徴とする請求項２４に記載の装置。
【請求項２８】
前記指数エンコーダが、連続した圧縮グループに関連付けられたブロック指数値間の差分を決定する差分計算器をさらに含み、前記指数エンコーダは、前記決定された差分をコード化して、対応する指数トークンを生成することを特徴とする請求項２４に記載の装置。
【請求項２９】
前記指数エンコーダが、
メモリ内に格納された指数トークン・コードの所定の組をさらに含み、前記所定の組の中の前記指数トークン・コードは、２つの連続したコード化対象グループ内のブロック指数値間のそれぞれの差分をコード化するものであり、
前記指数エンコーダは、
前記シーケンス内の２つの連続したコード化対象グループの前記ブロック指数値間の前記決定された差分が、前記所定の組の中の前記指数トークン・コードのうちの１つと適合するかどうか判定し、適合した場合には、前記２つの連続したコード化対象グループのうちの１つのコード化対象グループの前記ブロック指数値を表わすために、前記指数トークン・コードのうちの前記の１つを選択する、論理
をさらに含むことを特徴とする請求項２８に記載の装置。
【請求項３０】
前記指数エンコーダが、
メモリ内に格納された指数トークン・コードの所定の組をさらに含み、前記所定の組の中の前記指数トークン・コードは、２つより多い連続したコード化対象グループ内のブロック指数値間のそれぞれの差分をコード化するものであり、
前記指数エンコーダは、
前記シーケンス内の２つより多い連続したコード化対象グループの前記ブロック指数値間の前記決定された差分が、前記所定の組の中の前記指数トークン・コードのうちの１つと適合するかどうか判定し、適合した場合には、前記連続したコード化対象グループのうちの１つのコード化対象グループの前記ブロック指数値を表わすために、前記指数トークン・コードのうちの前記１つを選択する、論理
をさらに含むことを特徴とする請求項２８に記載の装置。
【請求項３１】
前記仮数エンコーダが、各コード化対象グループ内の信号サンプルから除去するための最下位ビット（ＬＳＢ）数を指定し、特定のコード化対象グループの各仮数が、前記ブロック指数値から前記指定された最下位ビット数を減じたものと等しいビット数を有することを特徴とする請求項２４に記載の装置。
【請求項３２】
前記仮数エンコーダが、メモリ内に格納された量子化プロファイルをさらに含み、前記量子化プロファイルは、それぞれのブロック指数値をそれぞれのＬＳＢ数に関係づけるルックアップ表又は式を含んでおり、前記仮数エンコーダが、前記量子化プロファイルを用いて、前記コード化対象グループの前記ブロック指数値に基づいて前記ＬＳＢ数を指定することを特徴とする請求項３１に記載の装置。
【請求項３３】
圧縮制御パラメータを前記仮数エンコーダに提供する圧縮コントローラをさらに含み、前記メモリ内に複数の量子化プロファイルが格納されており、前記仮数エンコーダが、前記圧縮制御パラメータに従って前記量子化プロファイルのうちの１つを選択することを特徴とする請求項３２に記載の装置。
【請求項３４】
前記圧縮コントローラが、前記圧縮データのための所望のビットレートに基づいて前記圧縮制御パラメータを決定することを特徴とする請求項３３に記載の装置。
【請求項３５】
前記圧縮コントローラが、前記圧縮データのための所望の品質要求基準に基づいて前記圧縮制御パラメータを決定することを特徴とする請求項３３に記載の装置。
【請求項３６】
アナログ信号を受信するように結合された、前記アナログ信号を前記複数の信号サンプルに変換するアナログ−デジタル変換器をさらに含むことを特徴とする請求項２４に記載の装置。
【請求項３７】
複数のコード化された元の信号サンプルを表わす圧縮データを運ぶ入力信号を復元するための装置であって、
前記複数のコード化された元の信号サンプルが複数の指数トークンと複数の圧縮された仮数のグループとによって表わされる、前記圧縮データを受信するバッファと、
前記複数の指数トークンと前記複数の圧縮された仮数のグループとを取得するために前記圧縮データを逆アセンブルするための、前記バッファに結合された論理と、
前記複数の指数トークンを受信して、各ブロック指数値が前記圧縮された仮数のグループのうちの１つに関連付けられる複数のブロック指数値を決定する、指数デコーダと、
各々の圧縮された仮数のグループと、前記関連付けられたブロック指数値とを受信し、前記圧縮グループ内の前記仮数の各々を表わすビット数は、前記関連付けられたブロック指数値に基づくものであり、各仮数の前記ビット数を対応する復元サンプルにマッピングして復元サンプルのグループを形成し、前記複数の圧縮グループをデコードして複数の復元サンプルを生成する、仮数デコーダと
を含むことを特徴とする装置。
【請求項３８】
前記複数の指数トークンの一部が、連続した圧縮グループに関連付けられたブロック指数値間の差分をコード化したものであり、前記指数デコーダが、
メモリ内に格納された指数トークン・コードの所定の組をさらに含み、前記所定の組の中の前記指数トークン・コードは、連続した圧縮グループのブロック指数値間のそれぞれの差分をコード化するものであり、前記指数デコーダは、前記所定の組を用いて、受信された指数トークンにより表わされる１つ又はそれ以上の差分をデコードして、１つ又はそれ以上のデコードされた差分を取得し、前記指数デコーダは、
各々のデコードされた差分と、それぞれのその前のブロック指数値とを受け取り、かつ前記連続した圧縮グループのうちの対応する１つについての前記ブロック指数値を生成する、加算器
をさらに含むことを特徴とする請求項３７に記載の装置。
【請求項３９】
前記仮数デコーダが、前記関連付けられたブロック指数値に基づいて最下位ビット（ＬＳＢ）数を決定し、前記対応する復元サンプルの前記ＬＳＢ数に対して、ビット値ゼロ又はディザ・ビット値を挿入することを特徴とする請求項３７に記載の装置。
【請求項４０】
前記入力信号が、圧縮制御パラメータを含み、前記装置が、
前記入力信号から前記圧縮制御パラメータを受信し、該圧縮制御パラメータを前記仮数デコーダに提供する圧縮制御コントローラと、
前記仮数デコーダに結合されたメモリ内に格納された、各量子化プロファイルがそれぞれのブロック指数値をそれぞれのＬＳＢ数に関係づけるルックアップ表又は式を含む、複数の量子化プロファイルとをさらに含み、前記仮数デコーダが、前記圧縮制御パラメータに従って前記量子化プロファイルのうちの１つを選択し、該仮数デコーダは、前記選択された量子化プロファイルを用いて、前記関連付けられたブロック指数値に基づいて前記ＬＳＢ数を決定することを特徴とする請求項３９に記載の装置。
【請求項４１】
データ通信チャネルから前記入力信号を受信するように結合された、前記圧縮データを前記バッファに提供する受信機をさらに含むことを特徴とする請求項３７に記載の装置。
【請求項４２】
前記入力信号を格納する、前記バッファに前記圧縮データを提供するように結合されたデータ格納システムをさらに含むことを特徴とする請求項３７に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロック浮動小数点表示の効率的なコード化を用いた信号データの圧縮及び復元に関し、より具体的には、信号サンプルを表現するビット数を減らして、所望の出力データ転送率又は所望の品質要求基準を実現するためのブロック浮動小数点コード化に関する。
【背景技術】
【０００２】
信号データの圧縮は、信号データ量を減らしながらも正確な情報を維持することが望ましい信号又は画像処理アプリケーションにおいて、リソースをより効率的に用いることを可能にする。信号データを圧縮することにより、システム内のメモリ又はその他の記憶装置のデータ記憶容量の要求仕様が低減される。信号データを圧縮することにより、システム内のデータ転送インターフェースに求められる帯域幅の要求仕様が低減される。コンピュータ処理的に効率的な圧縮及び復元のための操作は、システムのコンピューティング・リソース及び待ち時間に与える影響を小さくする。
【０００３】
信号処理におけるブロック浮動小数点表示は、限られたビット数で表わすことができるダイナミックレンジを拡げるという利点がある。ブロック浮動小数点表示は、信号データの精度を維持しながら、広いダイナミックレンジをカバーすることができる。典型的なブロック浮動小数点表示においては、あるサンプルのグループに対して、そのグループ内の最大絶対値のサンプルに基づいて共通指数が決定される。グループ内の各サンプルの仮数は、最大サンプルの仮数を収容するビット数により表わされる。グループの共通指数及び仮数を連続的にパッキングして、そのグループについての圧縮サンプルを表わすことができる。ブロック浮動小数点表示は、振幅が経時的に変動するとはいえ特定のグループ内の隣接するサンプルは同様の振幅を有するような信号ダイナミクスの場合に有用である。幾つかの信号タイプは、このようなダイナミクスを有する。例として、レーダ、ソナー及び超音波信号のような、次第に減衰するパルス信号が挙げられる。
【０００４】
以下の特許は、種々のアプリケーションにおけるブロック浮動小数点データ表現を用いた圧縮を記載する。
【０００５】
１９９８年５月１２日に発行された「Ｗａｖｅｆｏｒｍ  Ｄａｔａ  Ｃｏｍｐｒｅｓｓｉｏｎ  Ａｐｐａｒａｔｕｓ  ａｎｄ  Ｗａｖｅｆｏｒｍ  Ｄａｔａ  Ｅｘｐａｎｓｉｏｎ  Ａｐｐａｒａｔｕｓ」と題する特許文献１において、Ｋａｔｓｕｍａｔａ他は、ブロック浮動小数点表示を用いてサンプル値信号をブロック毎に圧縮することを記載する。信号サンプルの各ブロックについて、あるパターンの非隣接サンプル対の間で多数の相加平均が計算される。サンプル対の相加平均は、そのサンプル対の中間にある中間サンプルの推定値を表わす。サンプル対の間の距離は、そのブロックについて計算される相加平均の分だけ、あるパターンに従って、即ち、ブロックの両端のサンプル対、ブロックの一端のサンプルと中央のサンプルとの対、などのように、減少する。相加平均が、対応する中間サンプル値から減算され、差分サンプルが形成される。差分サンプルの仮数は、ブロック内でのそれらのインデックス（アドレス）に基づくコード化のために割り当てられたビット数であり、そのため、１つのブロックについてのコード化された仮数は、異なる長さを有する。ブロック内の最後のサンプルの仮数は、固定ビット数を用いて線形コード化される。ブロックの指数は、上位２ビットが「０１」又は「１０」となるような左シフトの最大数に基づく式を用いて決定され、これは、いかなる符号拡張ビットも有効に除去する。差分サンプル及び最後のサンプルの仮数は、そのブロックの仮数に割り当てられたビット数に適合するように最下位ビット（ＬＳＢ）を除去するために、左シフトされ、丸められる。圧縮データのブロックは、コード化された指数及びコード化された仮数を含む。他の実施形態において、差分サンプルをコード化する代わりに、最後のサンプルに加えて他のサンプルを線形コード化することができる。他の実施形態は、同じブロック内のサンプルについて、より複雑な仮数長のパターン、及び線形対差分コード化を含む。これらの実施形態は、ブロック内のサンプルのインデックスに基づいた、仮数長のパターン、指数、及び線形対差分コード化を指示する、そのブロックのパターン・コードを含む。
【０００６】
２０００年２月１日に発行された「Ｃｏｄｉｎｇ  Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｍｕｌｔｉｐｌｅ  Ｃｈａｎｎｅｌｓ  ｏｆ  Ａｕｄｉｏ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｒｅｐｒｅｓｅｎｔｉｎｇ  Ｔｈｒｅｅ−Ｄｅｍｅｎｓｉｏｎａｌ  Ｓｏｕｎｄ  Ｆｉｅｌｄｓ」と題する特許文献２において、Ｄａｖｉｓ他は、音声信号の変換係数のブロック浮動小数点コード化を記載する。サンプリングされた音声信号に適用される離散フーリエ変換（ＤＦＴ）のような離散変換は、変換係数を生成する。変換係数は、連続的な変換係数のサブバンド又はブロックにグループ化される。ブロックの共通指数は、サブバンド内の最大スペクトル成分に基づいて決定される。一実施形態において、ブロック浮動小数点表示のダイナミックレンジを拡げるために、サブバンドのグループに主指数が割り当てられる。主指数は、サブバンドのグループ内の全ての指数の最小指数値を表わし、サブバンド指数は、主指数と、サブバンド内の最大変換係数の指数との間の差分を表わす。量子化器は、仮数をサブバンドのビット割り当てに対応するビット長で表わすために、サブバンド指数及び主指数に従ってサブバンドの仮数を左シフトし、ＬＳＢを切り捨てる。適応ビット・アロケータは、各サブバンドにビット数を割り当てる。好ましい実施形態において、ビット割付けは、サブバンド内のスペクトル成分の振幅に基づく。
【０００７】
Ｃｈｒｉｓｔｅｎｓｅｎは、非特許文献１の論文において、合成開口レーダ（ＳＡＲ）のデータのブロック浮動小数点表示を記載する。この論文は、ブロックサイズ、量子化ステップサイズ及びブロック指数を表わすビット数といったコード化パラメータに対する、信号対雑音比（ＳＮＲ）の観点から、ブロック浮動小数点表示の性能の理論的分析を提示する。ブロック毎の固定ビット数を用いたＳＡＲデータに対するブロック浮動小数点のＳＮＲ性能も提示される。
【０００８】
Ｈｕｎｅｙｃｕｔｔは、非特許文献２の論文において、イメージングレーダのデータの浮動小数点表示を記載する。このシステムは、サンプル毎の最上位の４つのビットとそれに続くサンプルの各ブロックの共通指数とを用いて８ビットのデータ・サンプルをコード化する、ブロック浮動小数点量子化器（ＢＦＰＱ）を含む。
【０００９】
以下の特許及び論文は、種々のアプリケーションにおいて、（上述のブロック毎の方式とは対照的に）サンプル毎の方式で浮動小数点表示を用いて信号データを圧縮することを記載する。
【００１０】
１９９９年８月に発行された「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｉｇｎａｌ  Ｃｏｍｐｒｅｓｓｉｏｎ  ａｎｄ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｓｉｎｇ  Ｌｏｇａｒｉｔｈｍｉｃ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｃｏｍｐｒｅｓｓｉｏｎ」と題する特許文献３において、Ｌａｒｓｏｎは、より少ないサンプル毎のビット数を用いる浮動小数点形式でサンプル値信号を表わすための、対数微分圧縮（ＬＤＣ）を記載する。フィルタリングのような信号処理計算は、復元前に、圧縮サンプルに適用される。対数微分圧縮は、アナログ−デジタル変換前又は後に信号の一次微分を計算して微分サンプルを生成することを含む。微分サンプルの絶対値は小さくなるので、より少ないビットでこれを表わすことが可能になる。各微分サンプルは、符号ビットと、指数フィールドと、仮数フィールドとを有する浮動小数点形式で表わされ、圧縮信号のサンプルを形成する。浮動小数点表示内の仮数フィールド及び指数フィールドの長さは、全ての微分サンプルについて同一であり、音声及び映像信号のような特定のアプリケーションに適するように選択することができる。ＬＤＣアルゴリズムは、線形であり、時間的に連続的であり、サンプル毎にサンプルに適用されるので、フィルタリング及び変換のような信号処理操作は、復元前に、圧縮データに直接適用することができる。ＬＤＣサンプルの浮動小数点表示は、対数（底２）を近似するので、圧縮データに対する信号処理操作のためのハードウェア又はソフトウェア実装の複雑さを低減することができる。例えば、対数領域における乗法は、ＬＤＣサンプルを加算することにより行うことができる。ＬＤＣデータは、ランレングスコード化、ハフマン法、ＬＺＷ（Ｌｅｍｐｌｅ−Ｚｉｖ−Ｗｅｌｃｈ）などのその他の圧縮技術を適用することにより、さらに圧縮することができる。ＬＤＣ法は、全てのサンプルについて同じ浮動小数点形式を用いるものであり、即ち、この形式は、データのブロック全体にわたって変更されない。各ＬＤＣサンプルは、指数フィールド及び仮数フィールドを含み、即ち、コード化されたデータの１つのブロック内で、指数が仮数間で共有されることはない。
【００１１】
本発明者は、幾つかのアプリケーションのための、サンプル値信号の圧縮についてのブロック浮動小数点表示の適応を記載する。同一出願人による、１９９８年１１月１７日に発行された「Ｌｏｓｓｌｅｓｓ  ａｎｄ  Ｌｏｓｓ−Ｌｉｍｉｔｅｄ  Ｃｏｍｐｒｅｓｓｉｏｎ  ｏｆ  Ｓａｍｐｌｅｄ  Ｄａｔａ  Ｓｉｇｎａｌｓ」と題する特許文献４において、本発明者は、サンプル値信号の微分サンプルに適用されるブロック浮動小数点エンコーダを記載する。微分サンプルは、サンプル値信号の連続するサンプル間の一次又は高次微分である。一実施形態において、ブロック浮動小数点エンコーダは、最大微分サンプルに基づいて、各ブロックの指数を決定する。ハフマン・エンコーダは、指数値の発生頻度に基づいて、ブロックの指数にコードを割り当てる。ブロックのシーケンスについてのコード化された指数は、指数配列内にパッキングされる。仮数生成器は、所与のブロック仮数を、そのブロックの指数値によって指定されるビット数を用いてコード化する。コード化された仮数は、仮数配列内にパッキングされる。
【００１２】
同一出願人による幾つかの米国特許出願は、様々なタイプの信号及びシステムのための、ブロック浮動小数点コード化の適応を含む。これらは、２００８年５月２１日に出願された「Ｃｏｍｐｒｅｓｓｉｏｎ  ｏｆ  Ｂａｓｅｂａｎｄ  Ｓｉｇｎａｌｓ  ｉｎ  Ｂａｓｅ  Ｔｒａｎｓｃｅｉｖｅｒ  Ｓｙｓｔｅｍｓ」と題する米国特許出願番号第１２／１２４，３１２号、２００８年５月２１日に出願された「Ｃｏｍｐｒｅｓｓｉｏｎ  ｏｆ  Ｓｉｇｎａｌｓ  ｉｎ  Ｂａｓｅ  Ｔｒａｎｓｃｅｉｖｅｒ  Ｓｙｓｔｅｍｓ」と題する米国特許出願番号第１２／１２４，５４１号、２００８年９月１１日に出願された「Ａｄａｐｔｉｖｅ  Ｃｏｍｐｒｅｓｓｉｏｎ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｔｏｍｏｇｒａｐｈｙ  Ｐｒｏｊｅｃｔｉｏｎ  Ｄａｔａ」と題する米国特許出願番号第１２／２０８，８３９号、２００８年９月１１日に出願された「Ｅｄｇｅ  Ｄｅｔｅｃｔｉｏｎ  ｆｏｒ  Ｃｏｍｐｕｔｅｄ  Ｔｏｍｏｇｒａｐｈｙ  Ｐｒｏｊｅｃｔｉｏｎ  Ｄａｔａ  Ｃｏｍｐｒｅｓｓｉｏｎ」と題する米国特許出願番号第１２／２０８，８３５号、「Ｃｏｍｐｒｅｓｓｉｏｎ  ａｎｄ  Ｓｔｏｒａｇｅ  ｏｆ  Ｐｒｏｊｅｃｔｉｏｎ  Ｄａｔａ  ｉｎ  ａ  Ｃｏｍｐｕｔｅｄ  Ｔｏｍｏｇｒａｐｈｙ  Ｓｙｓｔｅｍ」と題する米国特許出願番号第１２／３５２，１１６号、２００８年１月１２日に出願された「Ｃｏｍｐｒｅｓｓｉｏｎ  ａｎｄ  Ｓｔｏｒａｇｅ  ｏｆ  Ｐｒｏｊｅｃｔｉｏｎ  Ｄａｔａ  ｉｎ  ａ  Ｒｏｔａｔａｂｌｅ  Ｐａｒｔ  ｏｆ  ａ  Ｃｏｍｐｕｔｅｒｄ  Ｔｏｍｏｇｒａｐｈｙ  Ｓｙｓｔｅｍ」と題する米国特許出願番号第１２／３５２，２２２号、２００９年６月２日に出願された「Ｕｌｔｒａｓｏｕｎｄ  Ｓｉｇｎａｌ  Ｃｏｍｐｒｅｓｓｉｏｎ」と題する米国特許出願番号第１２／４７７，０６２号、及び２００９年６月２９日に出願された「Ｐｏｓｔ−Ｂｅａｍｆｏｒｍｉｎｇ  Ｃｏｍｐｒｅｓｓｉｏｎ  ｉｎ  Ｕｌｔｒａｓｏｕｎｄ  Ｓｙｓｔｅｍｓ」と題する米国特許出願番号第１２／４９４，１８４号を含む。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】米国特許第５，７５１，７７１号明細書
【特許文献２】米国特許第６，０２１，３８６号明細書
【特許文献３】米国特許第５，９３３，３６０号明細書
【特許文献４】米国特許第５，８３９，１００号明細書
【非特許文献】
【００１４】
【非特許文献１】Ｃｈｒｉｓｔｅｎｓｅｎ、「Ｂｌｏｃｋ  Ｆｌｏａｔｉｎｇ  ｐｏｉｎｔ  ｆｏｒ  Ｒａｄａｒ  Ｄａｔａ」  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ａｒｏｓｐａｃｅ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃ  Ｓｙｓｔｅｍｓ、１９９９年１月、第３５巻、第１号、３０８−１８頁、
【非特許文献２】Ｈｕｎｅｙｃｕｔｔ、「Ｓｐａｃｅｂｏｒｎｅ  Ｉｍａｇｉｎｇ  Ｒａｄａｒ−Ｃ  Ｉｎｓｔｒｕｍｅｎｔ」ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｇｅｏｓｃｉｅｎｃｅ  ａｎｄ  Ｒｅｍｏｔｅ  Ｓｅｎｓｉｎｇ、１９８９年３月、第２７巻、第２号、１６４−９頁
【発明の概要】
【課題を解決するための手段】
【００１５】
本発明の実施形態は、圧縮サンプルの一定した出力データ転送率又は一定した品質要求基準を可能にする制御特徴を備えた、強化された、サンプル値信号データのブロック浮動小数点圧縮を提供する。本発明の目的は、複数の信号サンプルを圧縮するための方法を提供することであり、信号サンプルは、サンプル毎に、あるビット数からなる。この方法は、
複数の信号サンプルを、コード化対象グループ（ｅｎｃｏｄｉｎｇ  ｇｒｏｕｐ）のシーケンスにグループ化するステップと、
コード化対象グループのシーケンス内のコード化対象グループについて、コード化対象グループのブロック指数値を決定し、かつ、該コード化対象グループ内の各信号サンプルの仮数を決定し、該仮数は、コード化対象グループの指数値に基づくビット数を有するものである、ステップと、
コード化対象グループのシーケンスについて、コード化対象グループのブロック指数値をコード化して、シーケンス内の１つ又はそれ以上のコード化対象グループについての１つ又はそれ以上のブロック指数値を表わす、シーケンス内のコード化対象グループの指数トークンを決定する、ステップと、
指数トークン及び仮数を用いて、複数の信号サンプルを格納又は伝送のためにコード化して、圧縮データを形成するステップと、
を含む。
【００１６】
本発明の別の目的は、複数のコード化された元の信号サンプルを表わす圧縮データを運ぶ入力信号を復元するための方法を提供することである。この方法は、
圧縮データを逆アセンブルして、複数の指数トークンと複数の圧縮された仮数のグループとを取得し、複数のコード化された元の信号サンプルは、指数トークンと仮数とにより表わされる、ステップと、
複数の指数トークンをデコードして、各ブロック指数値が複数の圧縮グループのうちの１つに関連付けられる複数のブロック指数値を形成する、ステップと、
圧縮グループの各々について、関連付けられた指数値を用いて、圧縮グループ内の仮数の各々を表わすビット数を決定し、各仮数の前記ビット数を対応する復サンプルにマッピングして、復元サンプルのグループを形成する、ステップと、
上記決定するステップ及び上記マッピングするステップを複数の圧縮グループに適用して、複数の復元サンプルを生成する、ステップと、
を含む。
【００１７】
本発明の別の目的は、複数の信号サンプルを圧縮するための装置を提供することである。この装置は、
コード化対象グループのシーケンスを形成するために、信号サンプルをコード化対象グループのシーケンスにグループ化するための論理と、
各コード化対象グループについてブロック指数値を決定する論理と、
各コード化対象グループ内の信号サンプルを受信し、各信号サンプルについて仮数を形成し、特定のコード化対象グループの各仮数が、該特定のコード化対象グループのブロック指数値に基づくビット数を有するものである、仮数エンコーダと、
コード化対象グループのシーケンスについてブロック指数値をコード化して、１つ又はそれ以上のコード化対象グループについての１つ又はそれ以上のブロック指数値を表わす指数トークンを生成する、指数エンコーダと、
コード化対象グループのシーケンスの指数トークンと仮数とを配列して、格納又は伝送のための圧縮データを形成する、ビット・パッカと、
を含む。
【００１８】
本発明の別の目的は、複数のコード化された元の信号サンプルを表わす圧縮データを運ぶ入力信号を復元するための装置を提供することである。この装置は、
複数のコード化された元の信号サンプルが複数の指数トークンと複数の圧縮された仮数のグループとにより表わされる、圧縮データを受信するバッファと
複数の指数トークンと複数の圧縮された仮数のグループとを取得するために圧縮データを逆アセンブルするための、バッファに結合された論理と、
複数の指数トークンを受信し、各ブロック指数値が圧縮された仮数のグループのうちの１つに関連付けられる複数のブロック指数値を決定する、指数デコーダと、
各々の圧縮された仮数のグループと、関連付けられたブロック指数値とを受信し、圧縮グループ内の仮数の各々を表わすビット数は、関連付けられたブロック指数値に基づくものであり、各仮数のビット数を対応する復元サンプルにマッピングして復元サンプルのグループを形成し、複数の圧縮グループをデコードして複数の復元サンプルを生成する、仮数デコーダと、
を含む。
【図面の簡単な説明】
【００１９】
【図１】ブロック小数点コード化を用いて信号サンプルを圧縮する信号処理システムのブロック図である。
【図２】ブロック浮動小数点エンコーダのブロック図である。
【図３ａ】コード化仮数のためのｎ＿ｅｘｐビットの選択の例を示す。
【図３ｂ】同じブロック内の２つのサンプルを圧縮する例を示す。
【図４】指数トークンとして４又は８ビットを用いるコード化スキームの表である。
【図５】Ｎ＿ＧＲＯＵＰサンプルのブロックの指数コード化のブロック図である
【図６】信号サンプルの８つのブロックの指数をコード化して、単一の圧縮パケットを形成する例を示す。
【図７】図６の例の圧縮ブロックの圧縮パケットのデータ部分の図である。
【図８ａ】低減仮数のためにＬＳＢを除去することを含むビット選択を示す。
【図８ｂ】低減仮数がｍ＿ｅｘｐビットを有する、同じブロック内の２つのサンプルを圧縮する例を示す。
【図９】例示的なｎ＿ｅｘｐ、ｎ＿ＬＳＢ及びｍ＿ｅｘｐの値の表である。
【図１０】ＬＳＢを除去することを含むブロック浮動小数点エンコーダのブロック図である。
【図１１ａ】量子化プロファイル関数ｆ（ｎ＿ｅｘｐ）の例を表わす、図９に示された表に対応するグラフである。
【図１１ｂ】量子化プロファイル関数ｆ（ｎ＿ｅｘｐ）のグラフ表示の別の例である。
【図１１ｃ】量子化プロファイル関数ｆ（ｎ＿ｅｘｐ）のグラフ表示の別の例である。
【図１１ｄ】量子化プロファイル関数ｆ（ｎ＿ｅｘｐ）のグラフ表示の別の例である。
【図１２】圧縮データの一定したビットレートのための、ＢＦＰエンコーダに対するフィードバック制御のブロック図である。
【図１３】圧縮データの一定した品質要求基準のための、ＢＦＰエンコーダに対するフィードバック制御のブロック図である。
【図１４】ブロック浮動小数点デコードを用いて圧縮パケットを復元する、信号処理システムのブロック図である。
【図１５】コード化された仮数毎にｎ＿ｅｘｐビットを有する圧縮グループを復元する、ブロック浮動小数点デコーダの操作のブロック図である。
【図１６】コード化された仮数毎にｍ＿ｅｘｐビットを有する圧縮グループを復元する、ブロック浮動小数点デコーダの操作のブロック図である。
【図１７】図４のコード表に従った指数デコーダのブロック図である。
【図１８】図３ｂに関して説明された圧縮されたサンプルを復元する例である。
【図１９】図８ｂに関して説明された圧縮されたサンプルを復元する例である。
【図２０】本技術の実施形態と共に用いるのに適したコンピュータ・システム２１０の単純化されたブロック図である。
【図２１】様々なアプリケーションにおいて用いられる信号データを捕捉して処理するためのデータ処理システムの一般化されたブロック図である。
【図２２】圧縮を含むデータ収集システム１２０のブロック図である。
【発明を実施するための形態】
【００２０】
図１は、ブロック小数点コード化を用いて信号サンプルを圧縮する、信号処理システムのブロック図である。アナログ−デジタル変換器（ＡＤＣ）２００は、入力アナログ信号１００を、あるサンプリング率及びサンプル毎のビット数で、サンプル値信号（ｓａｍｐｌｅｄ  ｓｉｇｎａｌ）２０１に変換する。圧縮器１１０がサンプル値信号２０１に適用され、圧縮サンプルを生成する。随意のプリプロセッサ３００は、特定のアプリケーションのために、又は圧縮性能を向上させるために、サンプル値信号２０１に対して種々の操作を実行することができる。随意のプリプロセッサ３００は、信号のコンディショニング、フィルタリング、時間的又は空間的ウィンドウ処理及びスケーリングのような操作を提供することができる。いくつかのアプリケーションにおける圧縮性能を向上させるために、プリプロセッサ３００は、特許文献４に記載されているように、微分演算器を含むことができる。微分は、信号がベースバンド（ＤＣ）又はその近くにある限りは、サンプルの絶対値を小さくする。微分は、実際に、信号の中心周波数がサンプリング率の６分の１を越える場合には、サンプルの絶対値を大きくする。ブロック浮動小数点（ＢＦＰ）エンコーダ４００は、さらに後述するように、信号サンプルのグループ又はブロックを定義し、各グループについて、指数を決定し、かつ仮数をコード化して、圧縮グループを形成する。ビット・パッカ５００は、圧縮グループのシーケンスから圧縮パケットを形成する。ビット・パッカは、圧縮ブロック又は圧縮パケットのサイズについての情報を圧縮コントローラ６００に提供する。圧縮コントローラ６００は、所望の出力データ転送率又は品質要求基準を満たすように、ＢＦＰエンコーダ４００のパラメータを調整して、圧縮を増減する。ユーザは、ＢＦＰエンコーダの圧縮制御パラメータを圧縮コントローラ６００に入力することができる。ユーザ入力は、所望の出力データ転送率又は品質要求基準を圧縮コントローラ６００に提供することができる。さらに、圧縮コントローラ６００は、制御パラメータをプリプロセッサ３３０に提供することができる。
【００２１】
図２は、ブロック浮動小数点エンコーダ４００の実施形態のブロック図である。ブロック生成器４０５は、共にコード化されるＮ＿ＧＲＯＵＰサンプル４０１ｉのブロックを定義する。Ｎ＿ＧＲＯＵＰサンプル４０１ｉについて、以下のステップに従って、最大指数がコード化され、かつＮ＿ＧＲＯＵＰ仮数がコード化される。
Ｎ＿ＧＲＯＵＰサンプル４０１ｉの第１番目のグループについて：
１）最大絶対値を有するサンプルの指数（底２）を、例えば、Ｎ＿ＧＲＯＵＰサンプルの各グループ内の最大絶対値のｌｏｇ2を計算することによって、求める。これは、コード化サンプル毎のビット数、即ちｎ＿ｅｘｐ（０）を示す。
２）Ｓビットを用いて第１番目のグループの指数ｎ＿ｅｘｐ（０）を絶対コード化し、ここで、Ｓは、サンプル毎の元のビット数である。
３）サンプル毎のｎ＿ｅｘｐ（０）ビットを用いて、Ｎ＿ＧＲＯＵＰサンプルをコード化する。
Ｎ＿ＧＲＯＵＰサンプル４０１ｉのｉ番目のグループ（ｉ＞０）について：
４）最大絶対値を有するサンプルのｉ番目の指数（底２）を求め、これは、ｉ番目のグループ内のコード化サンプル毎のビット数、即ちｎ＿ｅｘｐ（ｉ）を示す。
５）ｎ＿ｅｘｐ（ｉ−１）からｎ＿ｅｘｐ（ｉ）を減算することによりｉ番目の指数を差分コード化し、ｉ番目の差分値を求める。対応するトークンを用いて、ｉ番目の差分値をコード化し、ここで、短いトークンほど、より共通の差分値を表わし、長いトークンほど、共通が少ない差分値を表わす。
６）サンプル毎のｎ＿ｅｘｐ（ｉ）ビットを用いて、Ｎ＿ＧＲＯＵＰサンプルのｉ番目のグループをコード化する。
【００２２】
サンプルの第１番目のグループの場合、指数ｎ＿ｅｘｐ（０）は直接コード化される。例えば、指数ｎ＿ｅｘｐ（０）は、以下のようにコード化することが可能であり、ここで、Ｓは、サンプル毎の元のビット数である。
ａ．０：            ｎ＿ｅｘｐ（０）＝０（４つのサンプル値は全てゼロである）
ｂ．１：            ｎ＿ｅｘｐ（０）＝２（サンプル毎に２ビット）
ｃ．２：            ｎ＿ｅｘｐ（０）＝３（サンプル毎に３ビット）
ｄ．など  Ｓ−１まで：ｎ＿ｅｘｐ（０）＝Ｓ（サンプル毎にＳビット）
【００２３】
ｉ番目のグループの場合、指数ｎ＿ｅｘｐ（ｉ）は、接頭コードを用いて差分コード化することが可能であり、ここで、どのコード語も別のコード語の接頭部とはならない。差分コード化の例は、以下の通りである。
１．差分を計算する：ｅ＿ｄｉｆｆ＝ｎ＿ｅｘｐ（ｉ）−ｎ＿ｅｘｐ（ｉ−１）
２．以下のようにｅ＿ｄｉｆｆをコード化する
ａ．０：        ｅ＿ｄｉｆｆ＝ｅ（ｉ）−ｅ（ｉ−１）
ｂ．１０１：    ｅ＿ｄｉｆｆ＝＋１
ｃ．１１０：    ｅ＿ｄｉｆｆ＝−１
ｄ．１００１：  ｅ＿ｄｉｆｆ＝＋２
ｅ．１１１０：  ｅ＿ｄｉｆｆ＝−２
ｆ．など
【００２４】
指数差分のハフマン・コード化は、発生頻度に基づいて、異なる長さのトークンを指数差分に割り当てる。より短いハフマン・トークンを、より高頻度の指数差分値に割り当てることができる。指数ｎ＿ｅｓｐ（ｉ）は、差分コード化の代わりに、例えばハフマン・コード化によって直接コード化することができる。ブロック指数のコード化の代替的手法は以下で説明される。
【００２５】
図２は、Ｎ＿ＧＲＯＵＰ＝４のサンプルの場合のブロック浮動小数点エンコーダ４００の例である。指数計算器４０２は、ステップ１及びステップ４に示すように、Ｎ＿ＧＲＯＵＰサンプルについて、最大指数であるｎ＿ｅｘｐを決定する。最大指数は、最大絶対値を有するサンプルの底２の対数に対応する。指数トークン生成器４０４は、ステップ２及びステップ５に示すように、ｎ＿ｅｘｐ値をコード化する。仮数パッカ４０６は、ステップ３及びステップ６に示すように、Ｎ＿ＧＲＯＵＰサンプルの仮数をコード化し、ｎ＿ｅｘｐビットを有する仮数を生成する。図３ａは、コード化仮数のためのｎ＿ｅｘｐビットの選択の例を示す。入力サンプル４２０は、Ｋビットで表わされる。サンプル４２０のｎ＿ｅｘｐ個の下位ビットがコード化のために選択される。選択されたビットにそのサンプルの符号ビットが付加され、得られたビットのシーケンスが、コード化サンプルを表わす。図３ｂは、同じブロック内の２つのサンプルを圧縮する例を示す。この例の場合、サンプルは、符号−絶対値形式で表わされる。ブロック内のＮ＿ＧＲＯＵＰサンプルの最大絶対値サンプル４２１は、「Ｘ」で示されるｎ＿ｅｘｐ仮数ビットを占める。サンプル毎の元のビット数はＫであり、０からＫ−１までのインデックスが付けられ、ビットＫ−１は、符号ビット「Ｓ」を表わす。圧縮サンプル４２２は、符号ビット「Ｓ」と共に、ステップ３及びステップ６に従って、ｎ＿ｅｘｐ仮数ビット「Ｘ」を表わす。サンプル４２３は、「Ｙ」で示されるビットを占める、Ｎ＿ＧＲＯＵＰサンプルのブロック内の別のサンプルを表わす。圧縮サンプル４２４は、符号ビット「Ｓ」と共に、ステップ３及びステップ６に従って、ｎ＿ｅｘｐビットを用いて仮数ビット「Ｙ」を表わす。圧縮サンプル４２２及び４２４の仮数は、非圧縮サンプル４２１及び４２３の対応する仮数と同一の整数値を有するが、各仮数のビット幅は減らされている。図２に戻ると、マルチプレクサ４０８は、コード化された指数トークン４１１と、これに続いて符号ビットを伴うＮ＿ＧＲＯＵＰのコード化された仮数の組とをパッキングして、Ｎ＿ＧＲＯＵＰ圧縮サンプルを表わす圧縮グループを形成する。この例では、圧縮グループ４１０は、指数トークン４１１と、これに続いて４つのパッキングされた仮数（付加された符号ビットを伴う）４１２−０、４１２−１、４１２−２及び４１２−３のシーケンスとを含む。ビット・パッカ５００は、連続する圧縮グループ４１０を連結して、圧縮パケットのデータ部分を形成することができる。代替的に、ビット・パッカ５００は、グループのシーケンスに対応する指数トークンのシーケンスと、これに続いて対応する仮数の組とを配列することができる。Ｎ＿ＧＲＯＵＰとして好ましいサイズは、１グループ当たり３又は４サンプルである。しかしながら、可変のグループ・サイズを用いることもできる。
【００２６】
仮数と指数とを別々にコード化することにより、更なる圧縮を提供することができ、かつ圧縮誤差を緩和することができる。指数コード化のための好ましい実施形態においては、２又はそれ以上の指数差分値が合同でコード化される。超音波、レーダ及びコンピュータ断層撮影法の生データを含む種々のアプリケーションに由来する信号データについてのブロック指数値の統計的解析は、連続する指数の９０％が｛−１，０、＋１｝の範囲内の差分を有し、連続する指数の９８％が｛−２，−１，０，＋１，及び＋２｝の範囲内の差分を有することを示した。２又はそれ以上の連続的な指数の差分を合同でコード化することで、コード化された指数毎のビット数を減らすことができる。指数トークンとして４又は８ビットを用いるコード化スキームが、図４に示される。固定された指数ビット数を用いることで、任意のビット長を有する指数トークンを許容する指数コード化と比べて、圧縮及び復元の両方の複雑さが低減される。図４の表は、３つのコード化のオプション、即ち（Ａ）２つの連続する指数差分の合同コード化、（Ｂ）１つの指数差分のコード化、及び（Ｃ）１つの指数値の絶対（又は線形）コード化、についての指数トークン値の一覧を示す。合同コード化オプション（Ａ）についての、３列目に示された連続する指数差分｛ｄｉｆｆ（ｉ），ｄｉｆｆ（ｉ−１）｝は、第１及び第２のコード化指数差分が両方とも３つの可能な値｛−１，０，＋１｝のうちの１つを有する、９つの異なる差分値の組み合わせを有する。表中の１６個の組み合わせのうちのこれらの９つは、各々４ビットを有する指数トークンを用いてコード化することができる。１つのトークンが２つのブロックの指数をコード化するので、指数差分の合同コード化は、ブロック指数毎に２ビットを用いる。オプション（Ｂ）について、範囲｛−２，−１，０，＋１，＋２｝内の単一の指数差分のコード化と、関連付けられた指数トークンとが、一覧で示される。このオプションは、表中の１６個の組み合わせのうちの５つを用いる。最後に、オプション（Ｃ）について一覧に示された指数値自体であるｎ＿ｅｘｐ（ｉ）の絶対コード化は、指数トークン毎に８ビットを用いる。本実施形態において、上位３ビットは１に設定され、下位５ビットが指数をコード化する。１に設定された上位３ビットは、その指数が絶対コード化されたことを示す。下位５ビットは、範囲｛０，２，３，．．．，３２｝内の１つの絶対指数を示し、この場合、指数値１は許容されない。ニブルの整数（４ビット単位）を用いることにより、指数のコード化とその後のデコードが簡素化される。図４の指数コード化を上記のアプリケーションに由来する信号データに適用すると、指数コード化オプションについて以下の割合を示した。
（Ａ）合同コード化オプション（２ビット／指数）  −  指数の８０％
（Ｂ）差分コード化オプション（４ビット／指数）  −  指数の１８％
（Ｃ）線形コード化オプション（８ビット／指数）  −  指数の２％
【００２７】
オプションの各々についてのビット／指数の加重平均は、コード化指数当たりの平均ビット数が約２．４８ビットであることを示す。コード化指数毎にＮ＿ＧＲＯＵＰの個々のサンプルが存在するので、この指数コード化スキームは、代替的な指数コード化技術、特に仮数毎に１つの指数を用いる技術と比べて、かなりの効率を提供する。
【００２８】
パケットの効率的なコード化及びデコードのために、そのパケットにより表わされる全てのサンプルの圧縮データが、パケット内に収容される。パケットの第１番目のブロックの指数を絶対コード化することで、第１番目の指数トークンはその前のパケットから独立したものとなる。パケットの最後のブロック指数は、パケットの最後から２番目のブロックと共に差分コード化することができる。最後のブロックの指数及びその前のブロックの指数に対応する指数差分は、同じパケット内のその前の指数差分と共に合同でコード化することはできるが、後続のパケットの第１番目の指数差分と共に合同でコード化することはできない。
【００２９】
図５は、Ｎ＿ＧＲＯＵＰサンプル４０１ｉのブロックの指数コード化のブロック図である。このブロック図は、上述の、パケット内の最初と最後のブロック指数をコード化するための追加条件は含まない。減算器４３０は、現在のブロックのブロック指数ｎ＿ｅｘｐ（ｉ）をその前のブロック指数ｎ＿ｅｘｐ（ｉ−１）から減算して、指数差分ｄｉｆｆ（ｉ）を形成する。決定ブロック４３２は、差分の絶対値が１より大きいかどうか試験する。ｄｉｆｆ（ｉ）及び前回の反復由来の指数差分ｄｉｆｆ（ｉ−１）の両方が１未満又は１に等しい場合には、合同エンコーダ４４０は、図４のオプション（Ａ）で示されるようにｄｉｆｆ（ｉ）及びｄｉｆｆ（ｉ−１）の両方を合同コード化し、両方の指数差分を表わす４ビットのトークンを形成する。ｄｉｆｆ（ｉ）が１より大きい場合には、決定ブロック４３６が、差分の絶対値が２より大きいかどうか試験する。ｄｉｆｆ（ｉ）の絶対値が２より大きい場合には、絶対コード化ブロック４３４が、図４のオプション（Ｃ）で示されるように指数ｎ＿ｅｘｐ（ｉ）をコード化して、ｎ＿ｅｘｐ（ｉ）を表わす８ビットのトークンを形成する。そうでない場合には、差分コード化ブロック４３８が、図４のオプション（Ｂ）で示されるようにｄｉｆｆ（ｉ）をコード化し、指数差分ｄｉｆｆ（ｉ）を表わす４ビットのトークンを形成する。指数トークンは、ビット・パッカ５００に与えられる。
【００３０】
図６は、信号サンプルの８つのブロックの指数をコード化して、単一の圧縮パケットを形成する例を示す。この例において、最初の２つのブロックの指数は、絶対コード化（オプションＣ）され、トークン毎に８ビットを有する。ブロック３から６までの指数差分は、合同コード化（オプション（Ａ））され、ブロック３及び４について４ビット指数トークンを形成し、ブロック５及び６について４ビット指数トークンを形成する。ブロック７及び８の指数差分は、各々が差分コード化され、各ブロックにつき１つの４ビット指数トークンを生成する。ブロック７の指数差ｄｉｆｆ（７）＝＋１は、合同指数コード化の範囲内に入るが、ブロック８の指数差ｄｉｆｆ（ｄｉｆｆ８）＝−２は、範囲に入らない。従って、ｄｉｆｆ（７）及びｄｉｆｆ（８）には各々、４ビット指数トークン１１００及び１００１がそれぞれ割り当てられる。
【００３１】
図７は、図６の例の圧縮ブロックの圧縮パケットのデータ部分の図である。この圧縮パケットは、ヘッダも含んでいるはずだが、図示はされていない。各ブロックの、符号ビットを含む４つの仮数がパッキングされたビットは、「４Ｍ」で示されており、縮尺通りに示されてはいない。圧縮ブロック１は、８ビット指数トークンと、４つの１４ビット仮数がパッキングされたビットとを含む。圧縮ブロック２は、８ビット指数トークンと、４つの７ビット仮数がパッキングされたビットとを含む。ブロック３及び４の指数差分は合同コード化されているので、圧縮ブロック３は、４ビット指数トークンと、４つの７ビット仮数とを含む。圧縮ブロック４は、４つの８ビット仮数を含み、指数トークンを含まない。ブロック５及び６の指数差分は合同コード化されているので、圧縮ブロック５は、４ビット指数トークンと４つの７ビット仮数とを含む。圧縮ブロック６は、４つの７ビット仮数を含み、指数トークンを含まない。圧縮ブロック７は、ブロック６及びブロック７に対応する指数間の差分を表わす指数トークンと、４つの８ビット仮数とを含む。圧縮ブロック８は、ブロック７及び８に対応する指数間の差分を表わす指数トークンと、４つの６ビット仮数とを含む。この例の場合、８つのブロックは、５つの指数トークンを用いてコード化される。
【００３２】
指数コード化のための代替的な実施形態においては、連続する指数の差分値が計算され、コード化される。指数は、ゆるやかに変化するため、ゼロ値の文字列により隔てられた非ゼロ値は比較的わずかしかない。指数差分値は、非ゼロの差分値及びそれらの対応するポジションだけを表すことにより、効率的にコード化することができる。ポジションは、対応するインデックス値によって、又は最後の非ゼロの差分値のポジションに対して相対的に、表現することができる。指数差分値のコード化は無損失であり、これにより比較的大きい誤差が防止される。指数をデコードする場合には、指数差分値を積分し、対応するポジション位置をデコードすることにより、指数値が再構成される。仮数をデコードする場合には、再構成された各仮数値は、デコードされたサンプルの対応する指数値を変化させないように制限される。ｎ＿ｅｘｐのデコードされた指数の場合、再構成された仮数は、２n_exp−１の最大値を有することができる。このことにより、仮数の圧縮誤差が指数の値を変化させることが防止される。
【００３３】
別の代替的なブロック小数点コード化方法は、上述の指数の差分コード化に加えて、仮数を表わすビット数のさらなる低減を提供する。Ｎ＿ＧＲＯＵＰサンプルの仮数を表わすビット数は、最下位ビット（ＬＳＢ）の数、即ちｎ＿ＬＳＢを各仮数から選択的に除去することによりさらに減らされる。ｎ＿ＬＳＢの値は、以下で説明するように、サンプルのブロックのｎ＿ｅｘｐの値に依存する。図８ａは、ＬＳＢを除去することを含む、低減仮数（ｒｅｄｕｃｅｄ  ｍａｎｔｉｓｓａ）のためのビット選択を示す。ｎ＿ｅｘｐは、上述のステップ１及びステップ４の場合のように決定される。仮数のｎ＿ｅｘｐ個の下位ビット全てをコード化する代わりに、最下位ビットから始めてｎ＿ＬＳＢの数のビットが除去される。残りのｍ＿ｅｘｐビット（ｍ＿ｅｘｐ＝ｎ＿ｅｘｐ−ｎ＿ＬＳＢ）がコード化のために選択される。図８ｂは、低減仮数がｍ＿ｅｘｐビットを有する、同じブロック内の２つのサンプルを圧縮する例を示す。この例は、図３ｂに関して説明された例と同じ入力サンプル４２１及び４２３を用いる。ブロック内のＮ＿ＧＲＯＵＰサンプルの最大絶対値サンプル４２１は、「Ｘ」により示されるｎ＿ｅｘｐビットを占める。ｎ＿ＬＳＢビットが除去されたことにより、圧縮サンプル４２５は、より少ないＭＳＢ及びＬＳＢを有する低減仮数においてｍ＿ｅｘｐビットの「Ｘ」を表わす。サンプル４２３は、ビット「Ｙ」により表わされる、Ｎ＿ＧＲＯＵＰサンプルのブロック内の別のサンプルを表わす。ｎ＿ＬＳＢサンプルが除去されることにより、圧縮サンプル４２６は、ｍ＿ｅｓｐビットを用いて、ｍ＿ｅｘｐビットを有する低減仮数においてビット「Ｙ」を表わす。圧縮サンプル４２５及び４２６の仮数は、非圧縮サンプル４２１及び４２３の対応する仮数とは異なる整数値を有する。ｎ＿ＬＳＢが丸められて除去されると、圧縮サンプル４２５及び４２６の低減仮数の整数値は、それぞれの非圧縮サンプル４２１及び４２３より高い場合もあり、低い場合もある。ｎ＿ＬＳＢが切り捨てにより除去された場合は、圧縮サンプル４２５及び４２６の低減仮数の整数値は、それぞれの非圧縮サンプル４２１及び４２３より低くなり得る。
【００３４】
ｎ＿ＬＳＢの値は、式又は表に従い、ｎ＿ｅｘｐの値に依存する。図９は、例示的なｎ＿ｅｘｐ、ｎ＿ＬＳＢ及びｍ＿ｅｘｐの値の表である。ｎ＿ｅｘｐ値が大きいほど、より多くのＬＳＢが切り捨て又は丸めにより除去され、ｍ＿ｅｘｐビットを有する低減仮数が形成される。例えば、ｎ＿ｅｘｐが１２である場合、３ＬＳＢが除去され、その結果、Ｎ＿ＧＲＯＵＰの低減仮数をパッキングするために９仮数ビットが保持される。ブロック浮動小数点エンコーダ４００は、ｎ＿ｅｘｐ、ｎ＿ＬＳＢ及びｍ＿ｅｘｐの値のルックアップ表を格納することができる。代替的に、ブロック浮動小数点エンコーダ４００は、ｎ＿ｅｘｐの関数としてｎ＿ＬＳＢ及びｍ＿ｅｘｐを表わすことができ、必要に応じてこれらの値を計算することができる。
【００３５】
図１０は、ＬＳＢを除去することを含むブロック浮動小数点エンコーダ４００のブロック図である。Ｎ＿ＧＲＯＵＰサンプルの各グループについて、指数計算器４０２は、上述のように最大指数ｎ＿ｅｘｐを決定する。仮数ビット計算器４１４は、低減仮数におけるビット数ｍ＿ｅｘｐを、ここでは量子化プロファイルと呼ばれる、ｎ＿ＬＳＢ、ｍ＿ｅｘｐ及びｎ＿ｅｘｐを関係づけるルックアップ表又は式を用いて決定する。低減仮数パッカ４１６は、Ｎ＿ＧＲＯＵＰサンプルの各々についてｍ＿ｅｘｐビットを選択する。次いで、マルチプレクサ４０８が、指数トークン４１１と、これに続いて低減仮数（付加された符号ビットを伴う）４１９−０、４１９−１、４１９−２、４１９−３とをパッキングして、圧縮グループ４１８を形成する。幾つかの条件においては、Ｎ＿ＧＲＯＵＰサンプルのグループからＬＳＢは除去されない。例えば、Ｎ＿ＧＲＯＵＰサンプル内の１つ又はそれ以上のサンプルの絶対値が、許容最小値より小さい場合は、元のＬＳＢを含むＮ＿ＧＲＯＵＰ仮数がパッキングされる。ビット・パッカ５００は、連続する圧縮グループ４１８を連結し、圧縮パケットのデータ部分を形成することができる。代替的に、ビット・パッカ５００は、グループのシーケンスに対応する指数トークンのシーケンスと、これに続いて対応する仮数の組とを配列することができる。ｍ＿ｅｘｐではなく、ｎ＿ｅｘｐが、指数トークン生成器４０４への入力として用いられることに留意されたい。圧縮器１１０及び復元器７００の両方が、ｎ＿ｅｘｐ、ｎ＿ＬＳＢ及びｍ＿ｅｘｐを関係づける同じ量子化プロファイル（例えば図９の例示的な表）を用いる。好ましい実施形態は、各圧縮パケットのヘッダ内に表セレクタ値を含み、従って、現在アクティブな量子化プロファイルをパケット毎に変更することが可能である。
【００３６】
圧縮コントローラ６００は、圧縮制御パラメータをブロック浮動小数点エンコーダ４００に与える。圧縮制御パラメータは、ｎ＿ＬＳＢ、ｍ＿ｅｘｐ及びｎ＿ｅｘｐを関係づけるルックアップ表又は式により表わされる、代替的な量子化プロファイルを含むことができる。圧縮制御パラメータは、ブロックサイズ・パラメータＮ＿ＧＲＯＵＰと、量子化プロファイルの選択パラメータとを含むことができる。圧縮コントローラ６００は、ユーザ入力に応答して、圧縮制御パラメータを選択することができる。ユーザは、圧縮データの一定したビットレート又はその圧縮データの一定した品質要求基準若しくは歪みレベルをもたらす圧縮制御パラメータを選択することができる。
【００３７】
ｎ＿ＬＳＢ及びｍ＿ｅｘｐをｎ＿ｅｘｐに関係づける量子化プロファイルは、以下の関数により表わすことができる。
（ｎ＿ＬＳＢ，ｍ＿ｅｘｐ）＝ｆ（ｎ＿ｅｘｐ）          （１）
【００３８】
図１１ａから図１１ｄは、例示的な関数ｆ（ｎ＿ｅｘｐ）のグラフ表示である。実線はｎ＿ＬＳＢの値を示し、破線はｍ＿ｅｘｐの値を示す。図１１ａは、図９で示される表のグラフ図である。図１１ｂ、図１１ｃ及び図１１ｄは、他の例を示す。量子化プロファイルは、定義されたｎ＿ｅｘｐの範囲にわたって圧縮サンプルの誤差を最小化するように設計することができる。サンプルに適用される特定の量子化プロファイルは、その結果として、対応するビットレート及び誤差レベルを有する圧縮サンプルをもたらす。
【００３９】
一定品質の圧縮データのために、圧縮コントローラ６００は、特定の信号品質要求基準又は歪みレベルをもたらす量子化プロファイルを選択することができる。品質要求基準は、低減仮数の切り捨て又は丸めに起因する、圧縮サンプルにおける誤差に基づくものとすることができる。低減仮数を用いるブロック浮動小数点表示の場合、これらの誤差は、サンプル内での指数値の発生確率又は確率密度関数（ＰＤＦ）を用いて計算することができる。図９を参照すると、ブロック内で仮数から除去されるＬＳＢの数であるｎ＿ＬＳＢは、そのブロックの最大指数値であるｎ＿ｅｘｐに依存する。仮数から除去されるＬＳＢが、丸め又は切り捨て誤差の源である。信号データのＰＤＦは、ガウス又はポワソン密度関数を用いてモデル化することができる。この手法の場合、平均、分散又は標準偏差のようなＰＤＦのパラメータは、従来の統計技術を用いて計算することができる。代替的に、ＰＤＦ自体を、サンプルについての指数値のヒストグラムを計算することにより推定することができる。ヒストグラムは、可能な指数値の各々を有するサンプルの数を求める従来の統計技術を用いて計算することができる。統計計算に用いられるサンプルは、実データ又は特定の信号タイプについてシミュレートされたデータに適用された、プリプロセッサ３００から出力されたサンプルに対応するものとすることができる。
【００４０】
低減仮数の切り捨て又は丸め誤差は、ここでは量子化誤差又はＱＥと呼ばれる。ｊ番目のサンプルｓ（ｊ）の量子化誤差は、
ＱＥ（ｊ）＝ｓ（ｊ）−Ｑ［ｓ（ｊ）］          （２）
により計算され、式中、Ｑ［ｓ（ｊ）］は、ｓ（ｊ）を丸めるか又は切り捨ててｍ＿ｅｘｐビットにすることにより得られた、ｓ（ｊ）の量子化された値である。この誤差計算は、元のビット数を有する復元サンプルを生成するために、復元により、量子化された仮数にｎ＿ＬＳＢ個のゼロが付加される場合に適用可能である。ｍ＿ｅｘｐは、ｊ番目のサンプルを収容するブロックのｎ＿ｅｘｐに依存するので、量子化誤差ＱＥ（ｊ）もまた、ｎ＿ｅｘｐに依存する。
【００４１】
指数値ｎ＿ｅｘｐの関数としての量子化誤差は、量子化プロファイルｆ（ｎ＿ｅｘｐ）に基づいて推定することができる。代替的に、量子化誤差は、多数の試験サンプルを有する試験信号に量子化プロファイルを適用し、式（２）を用いてＱＥ（ｊ）を計算することにより測定することができる。多数の試験サンプルについてのＱＥ（ｊ）の平均は、特定の量子化プロファイルに対応する期待誤差を表わすことができる。
【００４２】
代替的に、期待誤差は、信号のＰＤＦに基づいて計算することができる。ＰＤＦに基づく期待誤差Ｅは、
Ｅ＝ΣＱＥ（ｅｘｐ）ＰＤＦ（ｅｘｐ）          （３）
により与えられ、式中、ＰＤＦ（ｅｘｐ）は、指数値ｅｘｐの確率密度関数である。総和演算Σは、ｎ＿ＬＳＢ≠０、即ちＱＥ（ｎ＿ｅｘｐ）≠０となるような最小ｎ＿ｅｘｐから最大ｎ＿ｅｘｐまでの指数値ｅｘｐにわたって、総和を取る。例えば、図９を参照すると、最小ｎ＿ｅｘｐは４であり、最大ｎ＿ｅｘｐは１４である。ｎ＿ｅｘｐの関数としての低減仮数の量子化誤差は、
ＱＥ（ｎ＿ｅｘｐ）＝仮数（ｎ＿ｅｘｐ）−仮数（ｍ＿ｅｘｐ）          （４）
により与えられる。
【００４３】
仮数（ｎ＿ｅｘｐ）は完全精度の仮数を表わし、仮数（ｍ＿ｅｘｐ）はｍ＿ｅｘｐビットを有する低減仮数を表わし、ここで、量子化関数ｆ（ｎ＿ｅｘｐ）に従って、ｍ＿ｅｘｐ＝ｎ＿ｅｘｐ−ｎ＿ＬＳＢである。期待誤差は、ここで、式（３）を用いて計算することができる。ユーザが、所望の品質、対応する量子化の式を選択すると、圧縮コントローラ６００は、表又は式により表わされる対応する量子化プロファイルｆ（ｎ＿ｅｘｐ）を選択する。
【００４４】
圧縮データの一定したビットレート又は圧縮率のために、圧縮コントローラ６００は、所望のビットレートを最小の圧縮データの歪みで与える量子化プロファイルを選択することができる。特定の量子化プロファイルに関連付けられるビットレートは、ＰＤＦ（ｅｘｐ）に基づいて推定することができる。量子化プロファイルは、仮数をコード化するためのビット数ｍ＿ｅｘｐを、式（１）に従って、ｎ＿ｅｘｐの関数として指示するので、Ｎ＿ＳＡＭＰサンプルの仮数をコード化するためのビット数は、以下のように推定される。
Ｎ＿ＭＡＮＴ＿ＢＩＴＳ＝Ｎ＿ＳＡＭＰ＊Σｍ＿ｅｘｐ（ｅｘｐ）ＰＤＦ（ｅｘｐ）                                                                            （５）
式中、ＰＤＦ（ｅｘｐ）は、指数値の確率密度関数であり、ｍ＿ｅｘｐ（ｅｘｐ）は、量子化プロファイルに従って特定のｎ＿ｅｘｐに関連付けられた仮数毎のビット数ｍ＿ｅｘｐを示す。総和演算Σは、式（３）に関して上で説明したように、最小ｎ＿ｅｘｐから最大ｎ＿ｅｘｐまでの指数値にわたって総和を取る。図４に関して上で説明されたようにブロック指数をコード化するためのビット数Ｎ＿ＥＸＰ＿ＢＩＴＳは、以下のように推定される。
Ｎ＿ＥＸＰ＿ＢＩＴＳ＝２．４８＊Ｎ＿ＳＡＭＰ／Ｎ＿ＧＲＯＵＰ          （６）
【００４５】
実験的因子２．４８は、図４の指数コード化を上述の種々のアプリケーション由来の信号データに適用することにより決定された、コード化指数当たりの平均ビット数である。この因子は、他のアプリケーションについても、上述の指数コード化を目的のアプリケーションの信号データに適用することによって測定することができる。Ｎ＿ＧＲＯＵＰサンプル毎に１つの指数がコード化されるので、数Ｎ＿ＥＸＰ＿ＢＩＴＳは、通常は、Ｎ＿ＭＡＮＴ＿ＢＩＴＳと比べて相対的に小さい。Ｎ＿ＳＡＭＰサンプルについての圧縮データビット数Ｎ＿ＣＯＭＰ＿ＢＩＴＳは、これらの合計、
Ｎ＿ＣＯＭＰ＿ＢＩＴＳ＝Ｎ＿ＭＡＮＴ＿ＢＩＴＳ＋Ｎ＿ＥＸＰ＿ＢＩＴＳ    （７）
である。圧縮率ＣＲは、
ＣＲ＝ＢＩＴＳ＿ＳＡＭＰＬＥ＊Ｎ＿ＳＡＭＰ／Ｎ＿ＣＯＭＰ＿ＢＩＴＳ      （８）
により与えられ、ここで、ＢＩＴＳ＿ＳＡＭＰＬＥは、ＢＦＰエンコーダ４００に入力されたサンプル毎のビット数である。
【００４６】
上記の誤差及び圧縮ビットレートの近似は、最大指数がｎ＿ｅｘｐであるＮ＿ＧＲＯＵＰサンプルの所与のブロック内に異なる指数値が存在し得る場合のブロック指数の影響をモデル化していない。ブロック指数又はｎ＿ｅｘｐが、ブロックからブロックへとゆるやかに変化することを示す実験的測定に基づく、以前の結果は、上記の近似が有用であることを示す。代替的なブロック指数モデルは、最大指数値ｎ＿ｅｘｐを有するブロック内の指数値ＥＸＰについての条件付き確率Ｐ（ＥＸＰ／ｎ＿ｅｘｐ）を組み込むことができる。
【００４７】
一定したビットレート又は一定した品質のために、量子化プロファイルの組が、対応する品質要求基準（誤差、歪みレベル、信号対雑音比などに基づく）及び各量子化プロファイルに対応するビットレートと共に、圧縮コントローラ６００に与えられる。量子化プロファイル及び対応する品質要求基準は、信号モデルを用いて、及び／又はＢＦＰコード化を実信号データ又はシミュレートされた信号データに適用して結果を測定することで、特定のアプリケーションについて定めることができる。量子化プロファイルの１つ又はそれ以上の組を、例えば、試験信号を用いたシステム較正中に定めることができる。量子化プロファイルの組は、圧縮コントローラ６００のメモリにダウンロードすることができる。ユーザは、信号サンプルの圧縮に際して用いるための特定の量子化プロファイルの組を選択することができる。圧縮コントローラ６００は、その組から、パケット毎に異なる一連の量子化プロファイルを適応的に選択することができる。
【００４８】
圧縮コントローラ６００は、ＢＦＰエンコーダ４００及び随意的にプリプロセッサ３００に対して、フィードバック制御を提供することができる。図１２は、圧縮データの一定したビットレートのための、ＢＦＰエンコーダ４００に対するフィードバック制御のブロック図である。圧縮コントローラ６００は、ビット・パッカ５００から、圧縮サンプルのパケット毎のビット計数のようなビットレート情報を受信する。ビットレート計算器６１０は、フィードバック制御の目的で、圧縮パケットのビットレート又はパケット・サイズを計算する。ビットレート計算器６１０は、ビットレートを計算するために、幾つかの圧縮パケットにわたってビット計数を平均することができる。比較器６２０は、測定されたビットレートが、所望のビットレートの許容差範囲内にあるかどうか判定する。測定されたビットレートが許容差範囲外である場合には、選択器６３０は、量子化プロファイルの組６３２から新たな量子化プロファイルを選択して、より低い又はより高いビットレートをもたらす。許容差範囲は、ユーザが定義することができる。比較器６２０は、測定されたビットレートと所望のビットレートとの間の差分を計算することができる。差分の許容差範囲は、ゼロとすることもでき、又はある範囲の差分値内に収まるものとすることもできる。許容差範囲は、圧縮ビットレートが高過ぎるとき又は低過ぎるときに調整することができるように、正の端点及び負の端点を含むことができる。圧縮コントローラ６００は、量子化プロファイルの組６３２を格納するためのメモリを含むことができる。ＢＦＰパラメータ生成器６４０は、ｎ＿ｅｘｐをｎ＿ＬＳＢ及びｍ＿ｅｘｐに関係づける、対応する圧縮制御パラメータを、仮数ビット計算器４１４（図１０参照）のためにＢＰＦエンコーダ４００に与える。量子化プロファイルがメモリ内に格納された式により表わされる実施形態においては、ＢＦＰパラメータ生成器６４０は、ｎ＿ｅｘｐをｎ＿ＬＳＢ及びｍ＿ｅｘｐに関係づけるルックアップ表（ＬＵＴ）のためのエントリを計算する。量子化プロファイルがＬＵＴとして表わされる実施形態においては、ＢＦＰパラメータ生成器６４０は、選択されたＬＵＴを指示する圧縮制御パラメータを与える。代替的な実施形態において、ＢＦＰエンコーダ４００は、量子化プロファイル（式又は表）をローカル・メモリ内に格納することができる。この代替的手法の場合、ＢＦＰパラメータ生成器６４０は、新たな量子化プロファイルを選択するための圧縮制御パラメータを与えることができる。
【００４９】
図１３は、圧縮データの一定した品質要求基準のための、ＢＦＰエンコーダ４００に対するフィードバック制御のブロック図である。品質要求基準計算器６５０は、平均誤差、ＳＮＲ、又はその他の歪みの測定値のような品質要求基準を計算する。好ましい実施形態においては、量子化誤差ＱＥ（ｊ）が、式（２）に従って計算され、そして１つ又はそれ以上の圧縮パケットにわたって平均されて、平均誤差を生成する。品質要求基準計算器６５０は、対応する信号サンプルｓ（ｊ）の平均信号電力を計算し、測定ＳＮＲを生成する。品質比較器６６０は、ＳＮＲの平均誤差のような測定された品質要求基準を所望の品質と比較する。測定された品質要求基準が許容差範囲外である場合には、選択器６３０は、圧縮制御パラメータを決定するための新たな量子化プロファイルを選択する。品質要求基準の許容差範囲は、ユーザにより定義され、ゼロとすることもでき、又はある範囲の差分値内に収まるものとすることもできる。ＢＦＰパラメータ生成器６４０は、図１２に関して上で説明されたように、新たな圧縮制御パラメータをＢＦＰエンコーダ４００に与える。
【００５０】
ビット・パッカ５００は、ＢＦＰエンコーダ４００により生成される図２の圧縮グループ４１０又は図１０の圧縮グループ４１８のような圧縮グループから、圧縮パケットを形成する。ビット・パッカ５００は、多数の圧縮グループを連結し、圧縮パケットのデータ部分を形成する。圧縮パケットのデータ部分の例は、図７に関して上で説明される。ビット・パッカ５００は、圧縮パケットのデータ部分の前のヘッダを生成する。ヘッダは、同期、そのパケットによって表わされるサンプルの数、パケット内のバイト数、コード化された圧縮制御パラメータ、量子化プロファイル、及びその他の識別情報に関する情報を含むことができる。この情報は、ユーザ定義プロトコルに従って、ヘッダ内の固定ビット幅を有するフィールド内で表わされる。ＢＦＰコード化が、圧縮ブロックをコード化するためのある量子化プロファイルに依存する場合、ヘッダ内の圧縮制御パラメータは、その量子化プロファイルに対応するインデックス又は量子化プロファイル自体のパラメータを含むことができる。復元をサポートするために、パケット・ヘッダがデコードされて、データ部分の圧縮ブロックをデコードするためのパラメータを再生し、かつ復元されたサンプルを再順序付けする。
【００５１】
図１４は、ブロック浮動小数点デコードを用いて圧縮パケットを復元する、信号処理システムのブロック図である。復元器７００は、圧縮パケットを含む入力信号を受信し、復元されたサンプルを、アプリケーション特有の信号処理操作のためのアプリケーション・プロセッサ７２２に与える。パケット・プリプロセッサ７０２は、各圧縮パケットのヘッダとデータ部分とを分離し、圧縮データを収容するデータ部分をＢＦＰデコーダ７１０に与える。パケット・プリプロセッサ７０２は、ヘッダ内のコード化されたパラメータをデコードし、それらを復元コントローラ７３０に与える。ＢＦＰデコーダは、デコードされた圧縮制御パラメータに従って、圧縮パケットのグループを復元し、各圧縮グループに対応するＮ＿ＧＲＯＵＰのデコードされたサンプルを形成する。ポストプロセッサ７２０は、デコードされたサンプルのグループを再順序付けし、対応する信号サンプルを再構成するためのその他の操作を行うことができる。例えば、プリプロセッサ３００が、ブロック浮動小数点コード化の前にサンプル値信号２０１の一次又は高次微分を計算した場合には、ポストプロセッサ７２０は、デコードされたサンプルの一次又は高次積分を計算する。
【００５２】
図１５は、コード化仮数毎にｎ＿ｅｘｐビットを有する圧縮グループを復元する、ブロック浮動小数点デコーダ７１０の操作のブロック図である。圧縮グループ・バッファ７４０は、図２の圧縮グループ４１０に対応するＮ＿ＧＲＯＵＰ圧縮サンプルの指数トークン及び仮数を受け取る。指数デコーダ７５０は、以下で説明されるように、図４のコード表を用いて指数トークンをデコードし、指数値ｎ＿ｅｘｐを与える。指数値ｎ＿ｅｘｐは、Ｎ＿ＧＲＯＵＰの仮数の各々を表わすビット数を示す。仮数デコーダ７７０は、適切な数の高次ビット（典型的には、符号拡張ビット）及び下位ビット（ｎ＿ＬＳＢビット）を有するサンプルに対して各仮数をマッピングし、サンプル表現を、元のビット数又は宛先プロセッサのデータ形式に応じたその他のビット数にレストアする。仮数デコーダ７７０は、復元されたグループ７８０を生成し、復元されたサンプルＳ０からＳ３は、図２のパッキングされた仮数４１２−０から４１２−３に対応する。
【００５３】
図１６は、コード化仮数毎にｍ＿ｅｘｐビットを有する圧縮グループを復元する、ブロック浮動小数点デコーダ７１０の操作のブロック図である。圧縮グループ・バッファ７４０は、図１０の圧縮グループ４１８に対応する圧縮グループを受け取る。指数デコーダ７５０は、以下で説明されるように、図４のコード表を用いて指数トークンをデコードし、指数値ｎ＿ｅｘｐを与える。仮数デコーダ７７０は、指数値ｎ＿ｅｘｐ及び量子化プロファイルを用いて、低減仮数４１９−０から４１９−３毎のビット数を示すパラメータｍ＿ｅｘｐを求める。仮数デコーダ７７０は、適切な数の高次ビットを有するサンプルに対して仮数をマッピングする。仮数シフト計算器７７２は、指数値ｎ＿ｅｘｐを用いて、量子化プロファイルに基づいてｎ＿ＬＳＢパラメータを決定する。好ましい実施形態において、左シフト器７７４は、仮数をｎ＿ＬＳＢビットだけシフトし、ＬＳＢポジション内にゼロを付加して、対応する復元サンプルを生成する。左シフト器７７４の代替的な実施形態は、ｎ＿ＬＳＢビットを、固定値（例えば、予測可能な平均値を有する量子化誤差を生じさせる、「１」とそれに続くｎ＿ＬＳＢ−１個のゼロ）又はランダムなビットで埋める。得られた復元グループ７９０は、図１０のパッキングされた仮数４１９−０から４１９−３に対応する、Ｎ＿ＧＲＯＵＰの復元サンプルＳ０−Ｓ３を含む。復元コントローラ７３０は、パケット・ヘッダから回復された量子化プロファイルに対応するパラメータを、仮数デコーダ７７０及び仮数シフト計算器７７２に与える。
【００５４】
図１７は、図４のコード表に従った指数デコーダ７５０のブロック図である。この実施形態において、指数デコーダ７５０は、指数トークンが、合同コード化された指数差分（オプションＡ）、単一コード化された指数差分（オプションＢ）、又は絶対コード化された指数（オプションＣ）のどれを表わすかを判定するために、図５に関して説明されたようにコード化された指数トークンに対して試験を行う。指数デコーダ７５０は、指数トークン５０１の下位４ビットを試験する。決定ブロック７５２は、指数トークンの下位４ビット７５１の値が９より小さいかどうか試験する。小さい場合は、指数トークン５０１は、オプションＡに従って合同コード化された指数差分を表わす。デコード・ブロック７６０は、指数トークン７５１の４ビットをデコードし、連続する差分値ｄｉｆｆ（ｉ）及びｄｉｆｆ（ｉ＋１）を求める。これらを用いて、連続する指数値ｎ＿ｅｘｐ（ｉ）及びｎ＿ｅｘｐ（ｉ＋１）を計算する。加算器７６２は、ｄｉｆｆ（ｉ）を、その前に計算された指数値ｎ＿ｅｘｐ（ｉ−１）に加算し、ｉ番目の指数値ｎ＿ｅｘｐ（ｉ）を算出する。加算器７６４は、差分値ｄｉｆｆ（ｉ＋１）をｉ番目の指数値ｎ＿ｅｘｐ（ｉ）に加算して、ｎ＿ｅｘｐ（ｉ＋１）を算出する。決定ブロック７５４は、指数トークンの下位４ビット７５１が、１４より小さいかどうか判定する。小さい場合は、指数トークン５０１は、オプションＢに従ってコード化された指数差分を表わす。デコード・ブロック７６６は、この４ビットをデコードし、差分値ｄｉｆｆ（ｉ）を求める。加算器７６８は、差分値ｄｉｆｆ（ｉ）をその前に計算された指数値ｎ＿ｅｘｐ（ｉ−１）に加算し、ｉ番目の指数値ｎ＿ｅｘｐ（ｉ）を求める。決定ブロック７５２及び７５４の結果が、その指数トークン７５１の下位４ビットについて否定であった場合には、指数トークンは、さらに４つのビットを有し、合計８ビットであり、オプションＣに従って絶対コード化された指数を表わす。デコード・ブロック７５６は、８ビットの指数トークンをデコードし、指数値ｎ＿ｅｘｐ（ｉ）を求める。
【００５５】
図１８は、図３ｂに関して説明された圧縮サンプルを復元する例である。仮数デコーダ７７０は、指数値ｎ＿ｅｘｐを用いて、圧縮サンプル４２２及び４２４の各々の仮数ビット及び符号ビットを識別する。仮数デコーダ７７０は、ｎ＿ｅｘｐ仮数ビット及び符号ビットを、各々が元のビット数Ｋを有する復元サンプル４２１ａ及び４２３ａのそれぞれにマッピングする。代替的に、仮数デコーダ７７０は、仮数を、元の信号サンプルのビット幅とは異なるビット幅に対してマッピングして、各々が拡張されたビット数Ｋextを有する復元サンプル４２１ｂ及び４２３ｂをそれぞれ形成することができる。この例においては、復元サンプル４２１ａ、４２１ｂ、４２３ａ及び４２３ｂ内の高位ビットは、符号−絶対値表現に対応して、ゼロである。代替的に、宛先プロセッサの所望のデータ表現に応じて、高位ビットの１つ又はそれ以上を、符号拡張ビットとすることができる。
【００５６】
図１９は、図８ｂに関して説明された圧縮サンプルを復元する例である。仮数デコーダ７７０は、パラメータｍ＿ｅｘｐを用いて、圧縮サンプル４２５及び４２６の仮数ビット及び符号ビットを識別する。仮数デコーダ７７０は、ｍ＿ｅｘｐ仮数ビット及び符号ビットを、Ｋビット・サンプルに対してマッピングする。左シフト器７７４は、ビットを左にｎ＿ＬＳＢだけシフトし、復元サンプル４２１ｃ及び４２３ｃをそれぞれ生成する。代替的に、仮数デコーダ７７０及び左シフト器７７４は、各々が拡張されたビット数Ｋextを有する復元サンプル４２１ｄ及び４２３ｄをそれぞれ形成することができる。代替的に、宛先プロセッサの所望のデータ表現に応じて、高位ビットの１つ又はそれ以上を、符号拡張ビットとすることができる。
【００５７】
本発明の圧縮器１１０及び復元器７００は、サンプルの特定のデータ表現形式によって制限されるものではない。データ表現形式は、符号−絶対値、符号拡張、２の補数及び符号なし整数を含むことができる。データ表現形式は、ＩＥＥＥ−７５４−１９８５又はＩＥＥＥ＿７５４−２００８標準に記載されているような、標準的な浮動小数点形式の３２ビット、６４ビット又は１２８ビットの値の仮数又は指数（又は両方）を含むこともできる。浮動小数点エンコーダ４００又はプリプロセッサ３００に入力されるサンプルは、ブロック浮動小数点デコーダ７１０又はポストプロセッサ７２０から出力される復元サンプルとは異なるデータ表現形式を有することができる。ユーザは、特定のアプリケーションのためのデータプロセッサ・システムの要求を満たすデータ表現形式を定めることができる。
【００５８】
圧縮器１１０は、ＡＤＣ２００から出力される信号サンプルに対して単純な操作を適用する。ブロック浮動小数点コード化は、比較器、減算器、及びルックアップ表を用いる。復元器は、圧縮パケットを復元するために、単純な操作を適用する。ブロック浮動小数点デコードの復元器は、ルックアップ表、加算器及びシフト器を含む。操作が単純なので、圧縮器１１０及び復元器７００は、無線通信、レーダ、超音波、コンピュータ断層撮影の生データ及びその他のイメージング・モダリティのその他の生データを含む信号処理アプリケーションにおいて、実時間で動作するように、又は、少なくともＡＤＣ２００のサンプリング率と同じほど高速で動作するように、実装することができる。
【００５９】
圧縮器１１０の実施形態は、ＡＤＣ２００及び圧縮器１１０を統合して、単一の特定用途向け集積回路（ＡＳＩＣ）デバイスにすることを含む。圧縮器１１０の実装は、少なくとも、ＢＦＰエンコーダ４００及びビット・パッカ６００を含む。圧縮コントローラ６００は、そのＡＳＩＣ内に実装することも、又はマイクロコントローラ内に実装することもできる。アプリケーションに応じて、圧縮器１１０は、プリプロセッサ３００を含むこともできる。代替的なアーキテクチャは、圧縮器１１０をＡＤＣ２００とは別個のデバイス内に実装することができる。圧縮器１１０は、ＡＳＩＣ、ＦＰＧＡ、又はデジタル信号プロセッサ（ＤＳＰ）、マイクロプロセッサ、マイクロコントローラ、マルチコアＣＰＵ（例えばＩＢＭ  Ｃｅｌｌ）若しくはグラフィック処理装置（ＧＰＵ、例えばＮｖｉｄｉａ  ＧｅＦｏｒｃｅ）のようなプログラム可能プロセッサにより実装することができる。
【００６０】
復元器７００は、アプリケーション・プロセッサ７２２と同じデバイスに組み込むことも、アプリケーション・プロセッサ７２２とは異なるデバイスに組み込むこともできる。復元操作は、ＡＳＩＣ又はＦＰＧＡに実装することができる。復元器７００は、デジタル−アナログ変換器（ＤＡＣ）内に組み込むことができ、この場合、ＤＡＣは、図１４のアプリケーション・プロセッサ７２２を置き換える。代替的に、復元操作は、ＤＳＰ、マイクロプロセッサ、マイクロコントローラ、ＣＰＵ又はＧＰＵのようなプログラム可能プロセッサにより実行可能な、ソフトウェア又はファームウェア・プログラムとして実装することができる。復元器７００の好ましい実装形態は、ＧＰＵにより実行可能な復元操作のための命令を有するソフトウェア・プログラムである。ＧＰＵは、アプリケーション・プロセッサ７２２の操作の少なくとも一部を実装するようにプログラムすることもできる。代替的に、復元されたサンプルを、そのアプリケーションのための更なる信号処理操作のために、ＣＰＵのような別のプログラム可能プロセッサに転送することができる。
【００６１】
図２０は、本技術の実施形態と共に用いるのに適したコンピュータ・システム２１０の単純化されたブロック図である。コンピュータ・システム２１０は、典型的には、バス・サブシステム２１２を介して多数の周辺デバイスと通信する少なくとも１つのプロセッサ２１４を含む。これらの周辺デバイスは、メモリ・サブシステム２２６及びファイル格納サブシステム２２８を含む格納サブシステム２２４と、ユーザ・インターフェース入力デバイス２２２と、ユーザ・インターフェース出力デバイス２２０と、通信インターフェース・サブシステム２１６とを含むことができる。入力及び出力デバイスは、コンピュータ・システム２１０とのユーザ対話を可能にする。通信インターフェース・サブシステム２１６は、単一チャネル、又は複数のチャネルを有する通信ネットワークであり得る通信チャネル又はネットワーク２１８に対するインターフェースを提供する。通信チャネル又はネットワーク２１８は、他のコンピュータ・システム内のインターフェース・デバイス、送受信デバイス、又は外部ネットワークに結合される。通信チャネル又はネットワーク２１８は、有線リンク、光リンク、無線リンク、又は情報を通信するためのその他のいずれかの機構を含むことができる。通信ネットワーク２１８は、多数の相互接続されたコンピュータ・システム及び通信リンクを含むことができる。一実施形態において、通信ネットワーク２１８は、インターネットであるが、他の実施形態において、通信ネットワーク２１８は、いずれかの適切なコンピュータ・ネットワークとすることができる。
【００６２】
ユーザ・インターフェース入力デバイス２２２は、キーボード、ポインティング・デバイス、例えばマウス、トラックボール、タッチパッド又はグラフィックス・タブレット、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声入力デバイス、例えば音声認識システム、マイクロフォン、及びその他のタイプの入力デバイスを含むことができる。一般に、「入力デバイス」という用語の使用は、情報をコンピュータ・システム２１０に入力するための全ての可能なタイプのデバイス及び方法を含むことが意図される。
【００６３】
ユーザ・インターフェース出力デバイス２２０は、ディスプレイ・サブシステム、プリンタ、ファックス機、又は音声出力デバイスのような非視覚的ディスプレイを含むことができる。ディスプレイ・サブシステムは、陰極線管（ＣＲＴ）、フラットパネルデバイス、例えば液晶ディスプレイ（ＬＣＤ）、投影デバイス、又は可視画像を生成するためのその他の機構を含むことができる。ディスプレイ・サブシステムは、音声出力デバイスによるもののような非視覚的ディスプレイを備えることもできる。通常、「出力デバイス」という用語の使用は、コンピュータ・システム２１０からの情報をユーザ又は別のマシン若しくはコンピュータ・システムに出力するための、全ての可能なタイプのデバイス及び方法を含むことが意図される。
【００６４】
格納サブシステム２２４は、ここで説明された圧縮器１１０及び／又は復元器７００の幾つか又は全ての機能を提供することができる基本的なプログラミング及びデータ構造を格納する。これらのソフトウェア・モジュールは、一般にプロセッサ２１４によって実行される。プロセッサ２１４は、ＤＳＰ、マイクロプロセッサ、マイクロコントローラ、ＣＰＵ又はＧＰＵのうちの１つ又はそれ以上を含むことができる。プロセッサ２１４は、圧縮器１１０又は復元器７００の機能の幾つか又は全てを実装する、上述のような専用ＡＳＩＣ又はＦＰＧＡ論理を含むこともできる。
【００６５】
メモリ・サブシステム２２６は、典型的には、プログラム実行中に命令及びデータを格納するための主ランダム・アクセス・メモリ（ＲＡＭ）と、固定の命令が格納される読み出し専用メモリ（ＲＯＭ）２３２とを含む多数のメモリを含む。ファイル格納サブシステム２２８は、プログラム及びデータ・ファイルのための永続的な格納部を提供し、ハードディスク・ドライブ、関連付けられた取り外し可能媒体と併せたフロッピーディスク・ドライブ、ＣＤ−ＲＯＭドライブ、光学ドライブ、又は取り外し可能媒体カートリッジを含むことができる。特定の実施形態の機能を実装するデータベース及びモジュールを、ファイル格納サブシステム２２８により格納することができる。
【００６６】
バス・サブシステム２１２は、コンピュータ・システム２１０の種々のコンポーネント及びサブシステムを意図したとおりに互いに通信させる機構を提供する。バス・サブシステム２１２は、略図的に単一バスとして示されているが、バス・サブシステムの代替的な実施形態は、多重のバスを用いることができる。
【００６７】
コンピュータ可読媒体２４０は、ファイル格納サブシステム２２８及び／又は通信インターフェース・サブシステム２１６に関連付けられた、媒体とすることができる。コンピュータ可読媒体２４０は、ハードディスク、フロッピーディスク、ＣＤ−ＲＯＭ、光媒体、取り外し可能媒体カートリッジ、又は電磁波とすることができる。コンピュータ可読媒体２４０は、圧縮データ・ファイル２８０を格納するものとして図示されている。コンピュータ可読媒体は、圧縮器１１０及び／又は復元器７００の機能を実装するプログラムを格納することもできる。
【００６８】
コンピュータ・システム２１０自体は、パーソナル・コンピュータ、ポータブル・コンピュータ、ワークステーション、コンピュータ端末、ネットワーク・コンピュータ、テレビ、メインフレーム、又はその他のいずれかのデータ処理システム若しくはユーザ・デバイスを含む種々のタイプのものとすることができる。コンピュータ及びネットワークは絶えず変化する性質であるため、図２０に描かれたコンピュータ・システム２１０の説明は、好ましい実施形態を例証する目的のための特定の例に過ぎないことが意図される。図２０に描かれたコンピュータ・システムより多くのコンポーネント又は少ないコンポーネントを有するその他の多くのコンピュータ・システム２１０の構成が可能である。
【００６９】
本発明の実施形態は、通信、超音波、レーダ及びセンサを含む様々な信号タイプ及びアプリケーションの信号サンプルを圧縮することができる。本発明の圧縮は、コンピュータ断層撮影法（ＣＴ）及び磁気共鳴イメージング（ＭＲＩ）の生データを含む、イメージングのためのデータ収集システムにより生成される信号に適用することができる。これらのタイプのアプリケーションのためのデータ処理システムは、一般に、データ収集システム（ＤＡＳ）とも呼ばれる、信号データを捕捉するための信号収集及び処理システムを含む。捕捉された信号データは、格納及びアプリケーション処理のためにコンピュータ・システム２１０に転送される。図２１は、様々なアプリケーションにおいて用いられる信号データを捕捉して処理するためのデータ処理システムの一般化されたブロック図である。データ収集システム１２０は、特定のアプリケーションのためのセンサ及び処理要素を含む。例えば、超音波及びソナーの場合は、データ収集システム１２０は、受信した音響信号をアナログ電気信号に変換するための超音波トランスデューサ要素を含む。ＣＴ  ＤＡＳを含むＸ線イメージングの実装形態の場合は、データ収集システム１２０は、検出されたＸ線照射から電気信号を生成するためのＸ線センサを含む。通信、レーダ又はＭＲＩ  ＤＡＳの場合は、データ収集システム１２０は、収集された電磁波をアナログ信号に変換するためのアンテナ及び受信機システムを含む。収集されたデータのデジタル処理のために、データ収集システム１２０は、アナログ信号をサンプリングするためのＡＤＣ２００を含む。信号サンプルは、アプリケーション・システムのアーキテクチャに応じて、インターフェース２２２又は２１８を介して、コンピュータ・システム２１０に転送することができる。コンピュータ・システム２１０は、受信した信号サンプルの特定用途アプリケーション向けの処理及び／又は格納、及び／又は処理された結果の格納を行う。超音波、ソナー、レーダ、ＣＴ及びＭＲＩのようなアプリケーションの場合は、プロセッサ２１４は、ディスプレイ・サブシステム２２０のための二次元又は三次元画像を形成するために、イメージング計算を適用する。通信アプリケーションの場合は、プロセッサ２１４は、ユーザ・インターフェース出力デバイス２２０のための出力を形成するために、信号サンプルに復調操作を適用し、及び／又は、通信ネットワーク２１８を介して別の宛先に転送するために、信号サンプルを処理する。これらのアプリケーション及び図２１の一般的なアーキテクチャを用いるその他のアプリケーションの場合、圧縮器１１０をデータ収集及び処理システム１２０内に統合することにより、インターフェース２２２又は２２８に求められる帯域幅の要件が低減され、コンピュータ・システム２１０の格納サブシステムのリソース２２４が節約される。プロセッサ２１４は、アプリケーションの処理の前に圧縮データを復元するために、復元器７００を実装するための専用プロセッサを含むことができる。
【００７０】
図２２は、圧縮を含むデータ収集システム１２０のブロック図である。センサ・サブシステム１３０は、受信した特定のモダリティの波形をアナログ信号１００に変換するようアプリケーションのために動作する、検出器、トランスデューサ及び／又は受信機を含む。図１に関して説明されたように、ＡＤＣ２００は、アナログ信号１００をサンプリングし、圧縮器１１０は、信号サンプルを圧縮する。デバイス・インターフェース１３０は、圧縮データを、コンピュータ・システム２１０に転送するためにインターフェース２１８又は２２２に与える。プロセッサ２１４は、図１４に関して説明されたように、受信した圧縮データを復元し、アプリケーション特有の処理を行う。コンピュータ・システム２１０は、受信した圧縮データを、後で復元及びアプリケーション処理を行うためにファイル格納サブシステム２２８内に格納することができる。
【００７１】
幾つかのアプリケーションの場合、コンピュータ・システム２１０は、信号サンプルを、格納サブシステム２２４、通信チャネル２１８又はユーザ・インターフェース出力デバイス２２０への転送前に、圧縮することができる。例えば、画像データを、出力ディスプレイ・デバイス又はプリンタのようなユーザ・インターフェース出力デバイスへと転送することは、出力デバイス２２０に埋め込まれた帯域幅及びメモリを消費することがある。多くの場合、プリンタは、オフィス又は家庭内のコンピュータ・ネットワークの共有リソースであるため、走査された又はラスタ化された画像サンプルは、ネットワーク２１８を介してプリンタに転送される。ディスプレイ・デバイス又はプリンタ向けの画像データを処理することは、二次元画像データを走査又はラスタ化して、走査された画像サンプルの一次元シーケンスにすることを含むことができる。プロセッサ２１４は、出力ディスプレイ・デバイス２２０への転送又は通信ネットワーク２１８を介した共有プリンタへの転送の前に、圧縮器１１０を適用することができる。この場合、ラスタ化された画像サンプルが、圧縮器１１０に入力される信号サンプルである。出力ディスプレイ・デバイス２２０に埋め込まれた復元器７００が、二次元画像を表示又は印刷するための操作の前に、圧縮された走査サンプルを復元する。
【００７２】
本発明の好ましい実施形態を図示して説明したが、本発明は、これらの実施形態だけに限定されるものではないことが明らかであろう。当業者には、特許請求の範囲に記載された本発明の思想及び範囲から逸脱することのない幾多の修正、変更、バリエーション、置換、及び均等物が明らかであろう。
【符号の説明】
【００７３】
１００：入力アナログ信号
２０１：サンプル値信号
２１０：コンピュータ・システム
４０８：マルチプレクサ
４１０、４１８：圧縮グループ
４２０：入力サンプル
４２１、４２３：非圧縮サンプル
４２２、４２４、４２５、４２６：圧縮サンプル
４２１ａ、４２３ａ、４２１ｃ、４２３ｃ：元のビット数を有する復元サンプル
４２１ｂ、４２３ｂ、４２１ｄ、４２３ｄ：拡張されたビット数を有する復元サンプル
６００：圧縮コントローラ
７００：復元器
７５１：指数トークンの下位４ビット
７８０、７９０：復元されたグループ
【図１】
2013508867.tif 000003
【図２】
2013508867.tif 000004
【図３ａ】
2013508867.tif 000005
【図３ｂ】
2013508867.tif 000006
【図４】
2013508867.tif 000007
【図５】
2013508867.tif 000008
【図６】
2013508867.tif 000009
【図７】
2013508867.tif 000010
【図８ａ】
2013508867.tif 000011
【図８ｂ】
2013508867.tif 000012
【図９】
2013508867.tif 000013
【図１０】
2013508867.tif 000014
【図１１ａ】
2013508867.tif 000015
【図１１ｂ】
2013508867.tif 000016
【図１１ｃ】
2013508867.tif 000017
【図１１ｄ】
2013508867.tif 000018
【図１２】
2013508867.tif 000019
【図１３】
2013508867.tif 000020
【図１４】
2013508867.tif 000021
【図１５】
2013508867.tif 000022
【図１６】
2013508867.tif 000023
【図１７】
2013508867.tif 000024
【図１８】
2013508867.tif 000025
【図１９】
2013508867.tif 000026
【図２０】
2013508867.tif 000027
【図２１】
2013508867.tif 000028
【図２２】
2013508867.tif 000029
【国際調査報告】
2013508867.tif 000030
2013508867.tif 000031