(57)【要約】  データ圧縮方法が、マルチビットデータサンプルを備えるローを有するバイナリセンサデータ（２１０）を得ることを含む。ローは、各々が二つ又はそれ以上のサンプルを含むデータグループ（Ｇ１、Ｇ２、Ｇ３、Ｇ４）に分割される。先行値がローに対し選択され、又はそれぞれの先行値が各データグループに対し選択される。圧縮されたセンサデータ（２２０）の圧縮されたローが、データサンプルとその関連するデータグループのための先行値との間の差を計算することにより各ローから生成される。各データグループがストアされ圧縮されているかを示す圧縮された述部（２２５）と、ロー圧縮のために用いられるグループサイズをストアするマルチビット値であるデータグループサイズと、ロー圧縮のダイナミックレンジをストアする圧縮されたワードサイズとを含む、バイナリセンサデータを損失なく戻すための情報を含んで、圧縮情報パケット（ＣＩＰ）が各ローに対して生成される。圧縮されたローは、ＣＩＰと共に、ストアされ圧縮されたデータとしてストアされる。
2020501475.tif 000002
【特許請求の範囲】
【請求項１】
ロスレスデータ圧縮の方法であって、
複数のローを含むバイナリセンサデータを得ることであって、前記ローの各々が複数のマルチビットデータサンプルを含む、前記バイナリセンサデータを得ること、
各前記ローを、各々が前記マルチビットデータサンプルの二つ又はそれ以上を含む複数のデータグループに分割すること、
各前記ローに対する先行値、又は前記複数のデータグループの各々に対する前記先行値のそれぞれを選択すること、
前記データグループのその関連するデータグループに対して各前記データサンプルと前記先行値との間の差を計算することにより、各前記ローから、圧縮されたセンサデータの圧縮されたローを生成すること、
前記データグループの各々がストアされ圧縮されているか否かを示すデータ構造を含む圧縮された述部と、ロー圧縮のために用いられるグループサイズをストアするマルチビット値であるデータグループサイズと、前記ロー圧縮のダイナミックレンジをストアするマルチビット値である圧縮されたワードサイズとを含む、前記バイナリセンサデータを損失なく戻すための情報を有する各前記ローに対して圧縮情報パケット（ＣＩＰ（Compression Information Packet））を生成すること、及び
前記ＣＩＰと共に、ストアされ、圧縮されたデータとして前記圧縮されたローをストアすること、
を含む、方法。
【請求項２】
請求項１に記載の方法であって、前記方法が、前記複数のデータグループの全ての並列単一クロックサイクル処理を含む、方法。
【請求項３】
請求項１に記載の方法であって、更に、前記圧縮されたワードサイズを動的に選択するボーティング回路を用いることを含む、方法。
【請求項４】
請求項１に記載の方法であって、更に、前記データグループ内の電流データ値と前記先行値との間の差であるドリフト、前記圧縮されたワードサイズ、前記先行値、及び前記データグループサイズを含む構成により制御される圧縮パラメータを動的に選択することを含む、方法。
【請求項５】
請求項１に記載の方法であって、更に、固定時間にランダム位置にアクセスすることを含む前記バイナリセンサデータを回復するために、前記ストアされ、圧縮されたデータを伸張することを含む、方法。
【請求項６】
請求項５に記載の方法であって、前記伸張することが、前記バイナリセンサデータの前記回復のための単一サイクルを含む、方法。
【請求項７】
請求項１に記載の方法であって、更に、前記伸張のため、並列マップレデュース機能及び単一サイクルアドレスポインタ計算を用いることを含む、方法。
【請求項８】
請求項１に記載の方法であって、前記ＣＩＰが、少なくとも一つの誤り補正符号（ＥＣＣ）又は巡回冗長検査（ＣＲＣ）フィールドを含む、方法。
【請求項９】
ロスレスデータ圧縮を提供するためのシステムであって、
複数のローを含むバイナリセンサデータを受信するためのセンサインタフェースであって、前記ローの各々が、複数のマルチビットデータサンプルを含む、前記センサインタフェース、及び
前記センサインタフェースの出力に結合される入力を有するエンコーダを含むデータ処理サブシステム、
を含み、
前記データ処理サブシステムがハードウェア及びソフトウェアを含み、前記ハードウェア及びソフトウェアが、
各前記ローを、各々が前記マルチビットデータサンプルの二つ又はそれ以上を含む、複数のデータグループに分割し、
各前記ローに対する先行値、又は前記複数のデータグループの各々に対する前記先行値のそれぞれを選択し、
各前記データサンプルとその関連する前記データグループに対する前記先行値との間の差を計算することによって、各前記ローから、圧縮されたセンサデータの圧縮されたローを生成し、及び
前記データグループの各々がストアされ圧縮されているか否かを示すデータ構造を含む圧縮された述部と、ロー圧縮のために用いられるグループサイズをストアするマルチビット値であるデータグループサイズと、前記ロー圧縮のダイナミックレンジをストアするマルチビット値である圧縮されたワードサイズとを含む、前記バイナリセンサデータを損失なく戻すための情報を有する各前記ローに対して圧縮情報パケット（ＣＩＰ（Compression Information Packet））を生成するためである、
システム。
【請求項１０】
請求項９に記載のシステムであって、前記データ処理サブシステムが更に、前記ＣＩＰｓと共に、ストアされ圧縮されたデータとして前記圧縮されたローをストアすることを提供する、システム。
【請求項１１】
請求項９に記載のシステムであって、前記データ処理サブシステムが、前記複数のデータグループの並列処理のための回路要素を含む、システム。
【請求項１２】
請求項９に記載のシステムであって、前記エンコーダが半導体表面を有する基板を含む、システム。
【請求項１３】
請求項９に記載のシステムであって、更に、前記ロスレスデータ圧縮を実装するための単一クロックサイクル圧縮回路を含む、システム。
【請求項１４】
請求項１０に記載のシステムであって、更に、前記圧縮されたワードサイズを動的に選択するためのボーティング回路を含む、システム。
【請求項１５】
請求項１０に記載のシステムであって、更に、前記データグループ内の電流データ値及び前記先行値間の差の値であるドリフト、前記圧縮されたワードサイズ、前記先行値、及び前記データグループサイズを含む構成により制御される圧縮パラメータブロックを動的に選択することを含む、システム。
【請求項１６】
請求項１０に記載のシステムであって、更に、前記バイナリセンサデータを回復するために、前記ストアされ、圧縮されたデータを伸張するためのデコーダを含む、システム。
【請求項１７】
請求項１６に記載のシステムであって、前記デコーダが、前記バイナリセンサデータの前記回復のため単一サイクルにおいて動作する伸張回路を含む、システム。
【請求項１８】
請求項１６に記載のシステムであって、更に、前記伸張のための前記先行値の位置を識別するため、並列マップレデュース機能及び単一サイクルアドレスポインタ計算器を用いることを含む、システム。
【請求項１９】
請求項１０に記載のシステムであって、前記ＣＩＰが、少なくとも一つの誤り補正符号（ＥＣＣ）又は巡回冗長検査（ＣＲＣ）フィールドを含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、メモリ内の画素情報の組織化を含む、デジタルデータを損失なく圧縮及びストアするための方法に関連する。
【背景技術】
【０００２】
データを圧縮するための手法は、通信及びコンピュータの分野において一般的である。通信において、受信の際に、それらのオリジナル形態に再構築され得るデータの圧縮されたストリングを送信することが望ましいことがしばしばある。圧縮されたデータを送信すると、同じデータを圧縮されていないフォーマットで送信するよりもかかる時間が短い。コンピュータの場合、圧縮されたデータは、圧縮されていないデータに対して、ストレージの利点を提供する。そのため、固定ストレージ容量を有するストレージデバイスでは、圧縮される場合、より多くのファイルがそこにストアされ得る。
【０００３】
データ圧縮手法は、損失ありとロスレスとの２つの主要なカテゴリーに分けられ得る。ロスレスデータ圧縮手法は、圧縮／伸張プロセスにおいて情報が失われないことが要求されるときに用いられる。損失ありデータ手法は、ロスレス手法より正確性が低く、概してずっと速い。当然、ロスレス圧縮手法は、データが圧縮／伸張サイクルを介して渡された後のデータの正確な複製を補償する方法を用いる。ロスレス圧縮は、最も一般的には、コンピュータを使って用いられるデジタルデータのストレージに関連する。このような応用例は、データベース記録、スプレッドシート情報、及びワード処理ファイルのストレージを含む。その欠落が、データ内に符号化された情報を如何なる方式でも低減しないように、データメッセージにおける情報が冗長である場合、メッセージは、その中に符号化された情報のいかなるものも失うことなく短縮され得る。そのため、ロスレスデータ圧縮は、メッセージにより搬送される情報の完全性を脅かすことなくメッセージのサイズを低減する。
【０００４】
先進運転支援システム（ＡＤＡＳ）アルゴリズム及びゲーム、仮想現実、機械学習アルゴリズムはすべて、ダブルデータレート（ＤＤＲ）メモリ性能及び帯域幅により制限されてきている。データストリーム（レーダーデータ、画像データなど）は典型的に強い局地性を示すが、ビットは「ほぼ等しい」だけである。より一層効率的にＤＤＲメモリを用いるために、ラスターデータのためのオンラインデータ圧縮が必要とされる。
【０００５】
データの圧縮は、概して、解決しやすい課題である。解決がより困難な課題は、圧縮されたデータストリームのデータのサイズが、ランダムデータサンプルに対しても制限されることを確実にすることである。別の問題は、速いデータ読み出しの間に、伸張方式を提供することである。他の問題は、異なるデータタイプ、及びこのような異なったデータタイプのためのメモリアクセス方式を扱うことが可能であるという要件を含む。例えば、キャッシュライン充填とダイレクトメモリアクセス（ＤＭＡ）制御画像データアクセスとは、異なるアクセス方式を必要とし得る。最終的に、別の問題は、決定論的及び固定時間インタバル内で圧縮されたデータに対するランダムアクセスを提供することである。
【発明の概要】
【０００６】
記載される例は、決定論的及び固定時間内にランダムデータアクセスを提供する画像センサ又はレーダーセンサからのデータなど、ラスター化されたセンサデータの動的に構成可能なオンラインロスレス圧縮及び伸張ための方法及びシステムを提供する。記載される例は、単一クロックサイクル伸張を備えるロスレスデータ圧縮のための方法及びシステムを含む。
【０００７】
この方法は、複数のローを含むバイナリセンサデータを得ることを含み、各ローは、複数のマルチビットデータサンプルを含む。各ローは、各々が二つ又はそれ以上のサンプルを含む複数のデータグループに分割される。先行値（precedent value）が各ローに対して選択され、又はそれぞれの先行値がデータグループ（ＤＧｓ）の各々に対して選択される。圧縮されるセンサデータの圧縮されたローは、各データサンプルとその関連するＤＧに対する先行値との間の差を計算することにより各ローから生成される。センサデータを損失なく戻す（即ち、伸張する）ため、情報を含む各ローに対して圧縮情報パケット（ＣＩＰ（Compression Information Packet））が生成される。
【０００８】
ＣＩＰ情報は、ＤＧｓの各々がストアされ圧縮されるか否かを示すデータ構造、ロー圧縮のために用いられるグループサイズをストアするマルチビット値であるフレキシブルなＤＧサイズ、及びロー圧縮のダイナミックレンジをストアするマルチビット値である圧縮されるワードサイズを含む、圧縮された述部を含む。例えば、ＤＧサイズは、１６、３２、又は６４ビットであり得る。また、ＣＩＰ情報は、１２８ビットまでのマルチビット値である累積データサイズを含み得、これは、ストアされているフレームにおけるそのローまでのラスターデータの累積データサイズと、そのローに対するＣＩＰの誤り補正符号（ＥＣＣ）及び／又は巡回冗長検査（ＣＲＣ）符号化表現を捕捉するシグネチャとを示す。
【０００９】
圧縮されたローは、ＣＩＰと共に、ストアされ圧縮されたデータとしてストアされる。また、この方法は、任意のランダムメモリ位置からセンサデータを損失なく回復させるため、ストアされ圧縮されたデータを伸張すること、及び、単一クロックサイクルにおいてセンサデータの全てを回復することを含み得る。
【図面の簡単な説明】
【００１０】
【図１】例示の一実施例に従った、ロスレスデータ圧縮の例示の方法のための工程のフローチャートである。
【００１１】
【図２】２５６ビットのオリジナルデータを含むローが、１５７ビットの圧縮されたデータに変換される、記載される圧縮手法の一例を示す。ローにおける各ＤＧに対する先行値（precedents）が、例えば、ＤＧにおける第１のデータサンプル値として示されている。
【００１２】
【図３Ａ】最小圧縮比及び圧縮されたデータサイズを得るための圧縮パラメータを得るための単一クロックサイクル並列圧縮ブロック及びボーティング回路を有する例示のロスレスデータ圧縮を示す。
【００１３】
【図３Ｂ】先行選択回路及びサンプル処理回路のための例示の構成要素を示す。
【００１４】
【図４】各ローに対する圧縮されたデータを備えるＣＩＰの例示の形成を示す。
【００１５】
【図５Ａ】記載される圧縮されたデータを圧縮されていないオリジナルデータ出力に変換することによる伸張のための２／２アドレス計算変換エンジンμ−アーキテクチャを用いる例示の伸張方式を示す。
【００１６】
【図５Ｂ】図５Ａに示すアドレスポインタ計算機のための例示の回路実装を示す。
【００１７】
【図５Ｃ】付加又は複写のままの回路オペレーションの一例を示す。
【００１８】
【図６Ａ】インラインオプションを含むＤＤＲメモリにおけるデータストレージのための第１の例示のオプションを示す。
【００１９】
【図６Ｂ】デンス（dense）ストレージオプションを含むＤＤＲメモリにおけるデータストレージのための第２の例示のオプションを示す。
【００２０】
【図７Ａ】例示の一実施例に従った、感知されたデータストリーム（レーダーデータ又は画像データ）のロスレスデータ圧縮のための例示のシステムのブロック図である。
【００２１】
【図７Ｂ】データ信号のロスレスデータ圧縮及び伸張のための例示のシステムのブロック図である。
【００２２】
【図７Ｃ】例示のシステムにおいて記載される圧縮及び伸張を実装するために用いることができる４タイプの圧縮及び伸張ブロックを示す。
【００２３】
【図８Ａ】例示のイメージング応用例のための４のＤＧサイズについての実験的に決定された圧縮比対圧縮ワードサイズデータを示す。
【００２４】
【図８Ｂ】例示のイメージング応用例のための６のＤＧサイズについての実験的に決定された圧縮比対圧縮ワードサイズデータを示す。
【発明を実施するための形態】
【００２５】
図面は必ずしも一定の縮尺で描いてはいない。図面において、同様の参照数字は同様の又は等価の要素を示す。幾つかの図示した行為は、異なる順序で及び／又は他の行為／事象と同時に成されてもよい。また、幾つかの例示の行為又は事象は任意選択である。
【００２６】
「に結合する」又は「と結合する」という用語は、更なる限定なしに用いられる場合、間接的又は直接的電気接続を説明する。そのため、第１のデバイスが第２のデバイスに「結合する」場合、この接続は、その経路に寄生成分のみ存在する直接的電気的接続を介し得、又は他のデバイス又は接続を含む介在要素を介する間接的電気的接続を介し得る。間接的結合では、介在要素は、概して、信号の情報を変更しないが、その電流レベル、電圧レベル、及び／又はパワーレベルを調整し得る。
【００２７】
図１は、例示の一実施例に従って、感知されたデータストリームのロスレスデータ圧縮の例示の方法１００のための工程のフローチャートである。感知されたデータストリームは、周波数変調連続波（ＦＭＣＷ）レーダーなどのレーダー応用例のためのレーダーデータ、又は先進運転支援システム（ＡＤＡＳ）応用例のためのなど、イメージングのための画素データを含み得る。
【００２８】
工程１０１は、各ローが複数のマルチビット（例えば、１６）データサンプルを含む、複数のローを含む感知されたデータ源から生じるバイナリセンサデータを取得することを含む。各ローはフレームに対応するか、又はチャネルとして対応し、フレームは、イメージング用途の場合の同じ又は異なる露光時間（例えば、３）において捕捉された各画像に対応する２Ｄ平面データレーダー、又はレーダードウェル毎のセンサチャープ反射に対応する２Ｄ平面データを含み得る。感知されたデータ源は、データストリームとしてリアルタイムデータを提供するセンサであってもよく、又は、データ源は、センサから得られたセンサデータをストアするメモリであってもよい。
【００２９】
工程１０２は、各ローを、それぞれが二つ又はそれ以上のデータサンプルを含む複数のＤＧに分割することを含む。本明細書において用いられるように「データグループ」（ＤＧ）は、データ局所性を示し、そのため比較的容易に圧縮される、ラスターデータ値（例えば、サンプル又は画素）の連続するグループである。ラスター化されたデータの各ローは、２つ又はそれ以上のＤＧを有し得る。後述する図２の例示的な圧縮において示されるように、４つのＤＧｓの各々は、各ローに対して４つのサンプルを有する。
【００３０】
工程１０３は、各ローに対して先行値を選択すること、又はローにおけるＤＧｓの各々に対するそれぞれの先行値を選択することを含む。本明細書において用いられるように「先行値（precedent value）」は、「ドリフト」として本願において称されるものを最小化するように選択される値である。ドリフトは、現データ値と、圧縮されているＤＧ内の先行値との間の符号付き差分として定義される。一実施例において、図２に示すように、先行値は、ＤＧにおける第１のデータサンプル値である。
【００３１】
先行値を動的に選択するための種々の方法が存在する。１つの方法は、最小の圧縮データ（最高の圧縮比）をもたらす。また、先行値は、ＤＧにおけるすべてのサンプル（例えば画素）の予測される値に基づいて選択され得、その場合、予測される値の生成は、圧縮されているサンプルのより良好なに合致をもたらす、線形的、二次的、平均、中央値、又は任意の他の方法によって成され得る。先行値選択は、一般に専用ハードウェアで実施されるインテリジェントな方法である。先行値は、ローにおける任意のデータ値、すべてのデータ値の平均、データ値の中央値、又はユーザーにより構成される値とし得る。また、先行選択のための回路は、圧縮されているデータのための統計的ヒストグラム演算を含み得（後述する図３Ｂに示される統計的ヒストグラム演算ブロック（ＨＩＳＴ）３１１を参照）、先行値は、このブロックの出力、及びオフラインで事前演算された発見的規則に基づいて選択され得る。
【００３２】
工程１０４は、各データサンプルとその関連するＤＧに対する先行値との間の差を計算することによって、各ローから圧縮センサデータの圧縮されたローを生成することを含む。工程１０５は、センサデータをロスレスで返すための情報を有する各ローに対しＣＩＰを生成することを含む。上述したように、ＣＩＰは、各ＤＧが圧縮されてストアされているか否かを示すデータ構造を含む圧縮述部と、ロー圧縮に用いられるフレキシブルなデータグループサイズをストアするマルチビット値であるグループサイズと、ロー圧縮のダイナミックレンジをストアするマルチビット値である圧縮ワードサイズとを含む。（後述する図４に示される例示的なＣＩＰｓを参照のこと。）工程１０６は、圧縮されたローを、圧縮データとしてＣＩＰｓと共にストアされたストアすることを含む。例えば、図６Ａ及び図６Ｂに関連してこれ以降に記載されるストレージオプションを参照のこと。
【００３３】
方法１００は、ストアされた圧縮データを伸張することを更に含み得る。図１に示される工程１０７は、ストアされた圧縮データをメモリ（例えば、ＤＤＲ又はオンチップＲＡＭ）からリトリーブすることと、単一サイクル内でＣＩＰｓを用いてオリジナルの非圧縮データを回復するために伸張することとを含む。例えば、伸張については、図５Ａ、図５Ｂ、及び図５Ｃに記載されている伸張回路オプションを参照されたい。
【００３４】
また、この方法は、全ての複数のＤＧｓの並列単一クロックサイクル処理を含み得る。圧縮に必要とされる時間がＤＧグループ構成及び先行値選択等とは無関係であるように、後述する図３Ａなどに示されているように、ローにおける全てのＤＧｓに対して（線形にではなく）同時に圧縮された出力を計算するためのハードウェアが設けられている。また、この方法は、低圧縮比に反映される最良の圧縮出力を得るために、圧縮されたワードサイズを動的に選択することを含み得る。
【００３５】
圧縮パラメータは、ドリフト、圧縮ワードサイズ、先行値、及びＤＧサイズを含む構成による制御によって動的に選択され得る。この方法は、固定時間内にランダム位置にアクセスすることを含みオリジナルセンサデータをロスレスに回復するために、ストアされた圧縮データを伸張することを更に含み得る。固定時間内にランダム位置にアクセスすることは、一定時間内に任意のデータ値（例えば、画素値）にアクセスすることを意味する。これは、そのデータ値の前に来るすべてのＤＧが任意のサイズ上に圧縮され得るので、自明（non-trivial）ではない。すべての前のＤＧsのサイズを順次加算しなければならない代わりに、ＣＩＰが定義される。累積データサイズ、述部、圧縮ワードサイズ、及びＤＧサイズを用いて、データ値がメモリ内のどこにあるかを判定することができる。伸張は、センサデータを回復するための単一サイクルを含み得る。本方法は、伸張のため、並列マップ縮小（map-reduce）関数及び単一サイクルアドレスポインタ計算を用いることを更に含み得る。
【００３６】
図２は、説明される圧縮オペレーションの一例を示し、この例では、圧縮されていないオリジナルデータ２１０の２５６ビットを含むローが、４１ビットの圧縮述部を含んで示される圧縮述部２２５と共に１５７ビットを含むローを含む圧縮データ２２０に変換される。図示の圧縮された述部は、圧縮データ２２０内のＤＧが圧縮されているか否かを示す１ビットデータ構造である。
【００３７】
この例示のロー圧縮は、１６１／２５６＝５９％の圧縮比を提供する。４つのデータグループの各々に対する先行値が、ＤＧ内の第１のデータサンプル値として示されており、各サンプルは１６ビットを有し、従って、ＤＧｓは各々６４ビットを有する。第１のローでは、ＤＧｓがＧ１、Ｇ２、Ｇ３、及びＧ４として示されている。図示の圧縮方式では、各ＤＧは４サンプルを有し、各データサンプルはオリジナルデータ２１０内の１６ビットであり、用いられた圧縮ワードサイズは５ビットであった。本明細書において用いられる圧縮ワードサイズは、動的に選択可能な圧縮パラメータ（通常、１６ビットデータに対して４〜１０）であり、ＤＧ内で圧縮され得るデータのドリフトのダイナミックレンジを定義する。
【００３８】
この例ではＧ１、Ｇ２、及びＧ４は圧縮されるが、Ｇ３のデータのドリフトの範囲が５０（それぞれ、ＤＧにおける最小及び最大データ値である１００と１５０の間の差）であり、これは用いられる圧縮ワードサイズによって設定された５ビットで符号化され得る数より大きいので、Ｇ３は圧縮を有さない。Ｇ１では、２の先行値を用いて、先行値ではないオリジナルサンプルが、オリジナルデータサンプル値から２を減算することによって処理されて、圧縮データ値が提供される。第２のデータグループの第２のサンプルでは、この計算は１０−２＝８である。図示された圧縮データ述部は、圧縮を受けたＧ１、Ｇ２、及びＧ４のケースでは１が与えられ、圧縮を受けなかったＧ３については０が与えられる。記載される方法は、ＤＧに対してデータ圧縮が実装されないとき、ＤＧの処理の伸張を回避するために、０（又は１）の圧縮述部値を用いることによって、利点を達成する。
【００３９】
説明される圧縮の基本的な原理は、圧縮されたローのサイズに、オリジナルデータサイズにＷ／Ｎビットを加えたものによって決定される所定のサイズを超えてＣＩＰのサイズを加えたものとして定義される如何なるローにおいても、圧縮されたデータサイズを決して増大させないことであり、ここで、Ｗはオリジナルデータ長（ビット単位）であり、ＮはＤＧのサイズ（ビット単位）である。例えば、オリジナルデータ長（ロー）は図２では２５６ビットであり、最終データ長は１５７ビットである。
【００４０】
図３Ａは、入力データ３０５として示されているように受信されて示されるオリジナルの入力バイナリセンサデータの各ローに対して最小圧縮比を提供する、ラスターデータ幅にわたって分散された各ＤＧのための、単一クロックサイクル並列接続圧縮回路３１０１、３１０２、〜３１０ｎ（集合的に圧縮回路３１０）を用いる例示的のロスレスデータ圧縮を示す。圧縮回路３１０１、３１０２、〜３１０ｎは、それぞれ、図３Ａに示す先行選択信号を提供するための先行選択回路３１０ａとして、図３Ｂでこれ以降に説明する２つの構成要素と、先行選択回路３１０ａから受信したそれぞれの先行値を用いて圧縮データを生成するサンプル処理回路３１０ｂによって実装される差分によるサンプル処理とを含む。
【００４１】
圧縮回路３１０１、３１０２、〜３１０ｎからの圧縮データ出力は、ボーティング回路３２０に結合され、その後、ＤＤＲメモリ３３０に結合されて示されている。付加的な圧縮回路が、ＤＧサイズ及びドリフトの異なる構成値を用いてローを圧縮するために用いられ得る。これに、図示のボーティング回路３２０が続き得、これは、これら全ての演算から得られた圧縮比を比較し、最良の圧縮比に対応する圧縮データをＤＤＲ３３０に転送する。
【００４２】
図３Ｂは、先行選択回路３１０ａ及びサンプル処理回路３１０ｂのための例示的な構成要素を示す。図３Ｂに示される先行選択回路３１０ａは、例として、ＨＩＳＴブロック３１１によって計算された入力データの統計的分散に応じて、第１の画素３１２ａ、平均値（means）３１２ｂとして示される平均、及び中央値３１２ｃによって示される、複数の異なる先行選択オプションから選択し得る。ＨＩＳＴブロック３１１はＭＵＸ選択信号３１６をＭＵＸ３１７に出力し、ＭＵＸ３１７は、これに応答して先行値を出力する。
【００４３】
電気的に並列であるこれらの圧縮回路３１０１、３１０２、〜３１０ｎは、入力データ３０５を介して、ＤＧのサイズ、ドリフトのダイナミックレンジ、及び、提供されるリアルタイム計算に基づいて選択されるデータ先行値に対する種々の構成を用いて、単一クロックサイクルロスレス圧縮を実施する。これらの圧縮回路３１０１、３１０２、〜３１０ｎからの出力は、各々により達成される異なる構成及び圧縮比に対して生成される圧縮出力データである。圧縮回路３１０１、３１０２、〜３１０ｎの出力は、ボーティング回路３２０の入力に結合され、ボーティング回路３２０は、最良事例圧縮を実現した先行値、ＤＧサイズ、及びドリフトを選択するためのボーティングを実装し、その選択肢に対応する圧縮データ及びＣＩＰを、ＤＤＲメモリ３３０又はストレージのための別の内部メモリに転送する。
【００４４】
図４は、Ｒｏｗ１〜Ｒｏｗ４として示される４つのローの各々に対するＣＩＰの例示的な形成を示す。ＣＩＰｓは、圧縮されたデータと共にメモリにストアされる（後述する図６Ａ及び６Ｂを参照）。上述したように、ＣＩＰは、生成され、各ローと共にストアされるデータのパケットである。ＣＩＰのサイズは、概して、通常のローサイズのものより著しく小さいので、圧縮比を計算するときにはＣＩＰは一般に考慮されない。例えば、２Ｍ画素のカメラでは、圧縮されないローサイズは６ｋバイトであり、一方、ＣＩＰのサイズは１００バイト未満となり得る。ＣＩＰ情報は、データを圧縮する一方で圧縮回路によってつくられ、オリジナルデータパケットを抽出（伸張）するために伸張回路によって用いられる。図４に示される例示のＣＩＰのフィールドは、すべてのＤＧが圧縮されるか否かを示すように、１ビットである圧縮述部を含み（Ｗ／Ｎビットとして示されるが、回路は圧縮述部を固定ビットフィールド（例えば、５１２ビット）とし得、それにより、ＤＧｓの最大数に制限を設けることができ）、ここで、Ｗはラスターローサイズであり、Ｎがデータグループサイズである。
【００４５】
圧縮されたデータサイズは３２ビットとして示されており、ここで、トータルの圧縮されたデータサイズは、図２の例では１５７ビットであるラスターデータの１つのローに対するものであり、６４ビットとして示される累積データサイズは、そのローまでフレームのトータルの圧縮されたデータサイズである。また、ＣＩＰは、ローシグネチャのための圧縮方式のダイナミックレンジをストアする４ビット値である圧縮ワード（ＣＷ）サイズ、一つの特定のローを圧縮するために用いられるフレキシブルなＤＧサイズをストアする８ビット値であるＤＧサイズ、及び、圧縮の機能的安全及び正確さを保証するためにデータのローに順次対応するＣＩＰ毎に計算されたＥＣＣ及び／又はＣＲＣシグネチャを含む。また、シグネチャは、宇宙アルファ粒子、電磁干渉（ＥＭＩ）、クロック又は電力欠陥などによりＣＩＰが破損した場合でも、それがオンザフライで補正され得、したがって、全フレームのための伸張プロセスが正しく成されることを確実にする。
【００４６】
図５Ａは、圧縮データを圧縮されていないデータ出力（オリジナルデータ２１０）に変換するためにアドレス計算変換エンジンμ−アーキテクチャを用いる例示の伸張方式を示す。この例で示されている圧縮データは、それぞれのＤＧｓの圧縮述部と共に図２の圧縮データ２２０が、受信された圧縮述部２２５から、示されている変換述部５２０を生成する並列マップ及び縮小ブロック５１０によって処理される。
【００４７】
一般に、１つの変換された述部がＤＧ毎に計算される。シストリック（systolic）加算器に基づく並列マップ及び低減ブロック５１０の回路アーキテクチャの使用は、変換された述部値がデュアルデータ構造を表すことを確実にする。データ構造の第１の部分は、成功裏に圧縮されたＤＧの数についての情報を有し、これは、高速演算を確実にするためにｌｏｇ２ｎ複雑度を有する圧縮述部２２５入力から計算することができる。変換された述部５２０の第２の部分は、どのくらい多くのＤＧがローにおけるその点まで圧縮されずにストアされたかの累積情報を含み得る。この変換された述部５２０の後に、アドレスポインタ計算器５２５が続く。このアドレスポインタ計算器５２５は、ＤＧに対する変換述部５２０の第１の部分を圧縮ワードサイズ（この例では３１）で乗算し、変換述部５２０の第２の部分を圧縮ワードサイズ（この例では６４）で乗算する。その後、これらの２つの値を加算して、リトリーブされた圧縮データ内の圧縮された先行値の位置ポインタを計算する。
【００４８】
アドレスポインタ計算器５２５の出力は、先行値の位置をデコードするため、及び正しい非圧縮データ値を計算するためにデコーダ５３０に結合される。デコーダ５３０は、アドレスポインタ計算器５２５に基づいて、各データグループに対する圧縮されたローデータから先行値をフェッチする。また、デコーダ５３０は、圧縮されていないローに対する圧縮述部を別の入力として受け取る。デコーダ５３０の出力は、判定ブロック５３５にあるように、追加又は複写に結合される。ＤＧが、圧縮された述部によって示されるように圧縮されてストアされた場合、そのＤＧの先行値は、圧縮されていないデータ値を計算するために、圧縮されたデータにおける受信された他の値と加算される。そうでない場合、圧縮データ内の値は、これらを先行値と共に追加することなく、判定ブロック５３５にあるようにオリジナルデータとしてそのまま（変更なしに）追加又はコピーによってメモリにコピーされる。判定ブロック５３５にあるような追加又は複写によるこの処理の結果、図２に示すオリジナルデータ２１０のローの２５６ビットが返される。
【００４９】
図５Ｂは、ここでは並列マップ及び縮小ｌｏｇ２ｎ層５１０’として示される並列マップ及び縮小回路５１０と共に５２５’として示されている図５Ａに示されるアドレスポインタ計算器のための例示の回路実装を示す。アドレスポインタ計算器５２５’は、先行する２つの乗算器５２５ｂ及び５２５ｃの出力を加算する加算器５２５ａを含む。５２５ｂは、圧縮されたＤＧのサイズに等しい固定値を有する対応するＤＧに対する変換された述部５２０の第１の半分５２０ａを乗算する。５２５ｃは、圧縮されていないＤＧのサイズに等しい固定値を有する対応するＤＧの第２の半分５２０ｂを乗算する。
【００５０】
アドレスポインタ計算器５２５’の出力はデコーダ５３０に結合される。変換された述部５２０のデータ構造は、マップ縮小回路５１０１及び５１０２の組み合わせによって計算される。これらの回路の両方に対する入力は、圧縮されていないデータローのための圧縮された述部２２５である。５１０１は、圧縮されていないデータローに対するＤＧの前の成功裏の圧縮後にストアされたデータグループの数をカウントする。５１０２は、圧縮されていないデータローに対するＤＧの前に圧縮できなかったＤＧの数をカウントする。
【００５１】
図５Ｃは、ブロック５３５にあるような例示の付加又は複製のオペレーションの一例を示す。この回路への入力は、圧縮述部２２５、圧縮データ、及び、デコーダ５３０によってデコードされたアドレス位置からフェッチされた先行値である。圧縮された述部が、ＤＧが圧縮後にストアされたことを示す場合、受信された値は、加算器５３８ａ、ｂ、及びｃによって先行値に加算され、そうでない場合、これらの値は補償されていないデータ出力２１０ａとして示されるように、そのままコピーされる（変化なし）。
【００５２】
図６Ａは、ＤＤＲメモリにおける圧縮データのデータストレージのための第１の例示的なオプションを示す。これは、概して、ＤＤＲメモリ密度を最適化しない、シンプルなインラインオプションである。この方法は、圧縮データをメモリに書き込むためのＤＤＲ帯域幅を改善する。ＣＩＰは、実際の圧縮データパケットの先頭に付加される（ヘッダーとして添付される）。圧縮されたデータは、すべてのラスター化されたローのＣＩＰの第１のバイトが、それが圧縮されていなかった場合に実際のデータがあったであろう位置にあるように、メモリにストアされる。このデータストレージフォーマットにより、フレーム内のすべてのローからデータにアクセスするための一連のコマンドを発行し得るＤＭＡエンジンを構成することが一層容易になる。ＤＭＡ／ストリーミングエンジンは、ＣＩＰをプルインし、パケットを処理し、次いで、パケットを並列マップ及び縮小ブロック５１０、変換述部５２０、及びアドレスポインタ計算ブロック５２５に転送することができる。
【００５３】
図６Ｂは、ＤＤＲメモリにおけるデータストレージのための第２の例示のオプションを示す。これは、ＤＤＲメモリストレージ密度を改善するデンスストレージオプションであり、すなわち、図６Ａに示された第１の例示オプションと比較して、より多くのデータを同じＤＤＲメモリサイズにストアすることができる。この場合、ＣＩＰ構造は、次のＣＩＰのアドレスも含む。あるいは、ＣＩＰ構造の累積データサイズフィールドを用いて、データの次のローの開始アドレスを決定し得る。圧縮データフレームにアクセスするタスクを課されたＤＭＡエンジンが、データフレーム内の第１のＣＩＰを読み取り、それに続いて、圧縮されたローデータ及び次のローのＣＩＰをストアするために、ＣＩＰによって示されるような厳密なバイトをフェッチし、その後、データを伸張回路に転送する。このプロセスを通して、ＤＭＡエンジンのメモリアクセスロジックは、次のアクセスのアドレスを計算し続ける。
【００５４】
このように実施されるアドレス計算は、２つの固有のプロセスを介して、まず、次のＣＩＰのアドレスをストアする任意選択のＣＩＰフィールドを用いて、次に、圧縮されたデータサイズフィールドを用いてそれを現在のアドレスに付加することによって、行われる。このプロセスは、機能的に安全で信頼性の高いデータアクセスを確実にし、宇宙アルファ粒子、電磁波、クロック、又はランダム電圧ノイズによって引き起こされる故障から回路を守る。
【００５５】
また、説明される実施例は、適応性がありスケーラブルな圧縮方式アルゴリズムを含む。各データセットは異なる挙動を示し、最良の圧縮結果を保証するための圧縮パラメータの理想的なセットは存在しない。ＤＧサイズ及び圧縮ワードサイズの、それらがいずれも柔軟なパラメータであるような範囲のための「有効パラメータ」の制約された範囲を定義することができる。例えば、ＤＧサイズの有効値は、４、８、１２、及び１６であり得る。同様に、圧縮ワードサイズの有効値は、６〜１２とし得る。データのすべてのローについて、下記工程が実施され得る。
（ａ）並列に、Ｎ個のパラメータセット（Ｎ＝ＤＧサイズ値及び圧縮ワードサイズ値のすべての組み合わせ）を用いて全ローに対して圧縮を実行し、Ｎ個のＣＩＰを生成する。
（ｂ）関連するＣＩＰフィールド（総圧縮サイズ）を比較することによって（ａ）における実行の各々からの圧縮データ（圧縮データサイズ）のサイズを比較する。
（ｃ）全ての実施された構成オプションに対して達成された圧縮比のボーティング回路３２０比較に基づいて、最良の圧縮ワードサイズ及びＤＧチョイスを選択する。
【００５６】
この適応性がありスケーラブルな圧縮アルゴリズム及びロジックは、完全にスケーラブルであり、最適な圧縮データセットがデータの各ローに対してつくられることを保証する。圧縮方式の４倍の半導体（例えば、シリコン）エリアは、性能の４倍の改善を確実にする。いくらかのレイテンシーを犠牲にして、時間多重化方式で同じ回路要素を用いることによって、半導体エリアを制約することができる。
【００５７】
図７Ａを参照すると、データ信号を圧縮するためのシステム７００が、処理ユニット７０５を含んで示されている。処理ユニット７０５は、圧縮及び伸張回路の分散インスタンス化を備えるシステムオンチップ（ＳＯＣ）アーキテクチャとして実装され得る半導体表面（例えば、シリコン基板）を有する基板７０２上に形成されて示される。処理ユニット７０５は、マイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、又はマイクロコントローラユニットを含み得る。処理ユニット７０５は、感知されたデータ源７１０と電子的に通信している。データ源の例は、デジタルカメラ、カムコーダー、モバイルデバイス、又は、物理的な場面を示すビデオ信号を捕捉及び提供するデバイス、又はレーダーの場合、アナログフロントエンドと共にアンテナを含み得る。処理ユニット７０５は、外部メモリ７１５と電子的に通信する。外部メモリ７１５の一例には、ＤＤＲメモリがある。
【００５８】
処理ユニット７０５は、感知されたデータ信号を処理するための処理サブシステム７２０を含む。データ処理サブシステム７２０は、フロントエンド７２５と、バッファ７８０によって共に結合されるバックエンド７３０とを含む。フロントエンド７２５は、データ源７１０から、感知されたデータ信号を受信するセンサインタフェース７３５を含む。バックエンド７３０は、記載される圧縮方式に従ってデータ信号におけるフレームの圧縮バージョンを生成するためエンコーダ７４０を含む。幾つかの実施例において、エンコーダ７４０は、データ信号のフレームの圧縮バージョンを生成するための個別のユニットを含み得る。処理ユニット７０５は、ダイレクトメモリアクセス（ＤＭＡ）データ及び構成バス７４５を含む。ＤＭＡデータ及び構成バス７４５は、処理ユニット７０５における構成要素間でデータ及び制御信号を伝達する。
【００５９】
処理ユニット７０５は、中央処理装置として機能する縮小命令セット演算（ＲＩＳＣ）プロセッサ７５０を含む。ＲＩＳＣプロセッサ７５０は、入力又は出力機能、及びシステム制御機能を実施するように動作し得る。処理ユニット７０５は、デジタルシグナルプロセッサ（ＤＳＰ）７５５を含む。ＤＳＰ７５５は、リアルタイム信号処理ソフトウェアアルゴリズムを処理するように動作し得る。一実施例において、ＤＳＰ７５５は、コーデックを処理するように動作し得る。コーデックは、符号化又は復号ソフトウェアとして定義され得る。
【００６０】
処理ユニット７０５は、ダイレクトメモリアクセスのためのＤＭＡコントローラ７６０を含む。処理ユニット７０５は、データ信号のフレームをストアするオンチップメモリ７６５を含む。オンチップメモリ７６５の一例は、スタティックランダムアクセスメモリ（ＳＲＡＭ）である。処理ユニット７０５は、コーデックをストアするための他のメモリを含み得る。また、処理ユニット７０５は、外部メモリ７１５を制御するための外部メモリコントローラ７７０を含む。処理ユニット７０５は、データ信号の一つ又は複数のフレームを送信するための通信周辺機器など、一つ又は複数の周辺機器７７５を含む。通信周辺機器の例には、ポート及びソケットが含まれる。また、周辺機器７７５は、タイマーなどの周辺機器、及びＲＡＭなどの一時的ストレージをシステムを含み得る。
【００６１】
図７Ｂは、データ信号を圧縮及び伸張するための例示のシステム７００’を示す。システム７００’は、バッファ７８０とセンサインタフェース７３５を含むフロントエンドとの間、及びバッファ７８０とバックエンド７３０との間に、説明される圧縮回路７９１及び伸張回路７９２を含む。システム７００’の例示的なアーキテクチャは、種々のデータ処理の入力及び出力、及びシステムのデータ入力ブロックにおいて必要とされインスタンス化される、分散された圧縮及び伸張ブロックを保証する。
【００６２】
図７Ｃは、説明される圧縮及び伸張を実装するために用いられ得る圧縮及び伸張ブロックの例示の４タイプを示す。示されたモジュールは、モジュール７９４、７９５、７９６、及び７９７として示されるモジュール１〜４を含む。図示される各丸で囲まれた数字は、圧縮及び伸張のタイプに対応する。図示されたモジュール７９４によって処理され得る丸で囲まれた１は、ラスター線形（１Ｄ）データＹ平面画像又は線形レーダーデータに対応し、モジュール７９５によって処理され得る丸で囲まれた２は、ラスター線形データＵ、Ｖインターリーブされた平面画像データに対応して示され、モジュール７９６によって処理され得る丸で囲まれた３は、センサデータのためのブロック毎（２Ｄ）ランダムアクセスに対応して示され、モジュール７９７によって処理され得る丸で囲まれた４は、センサデータのためのブロック毎（２Ｄ）通常アクセスに対応して示される。また、示されたこの例は、線形レーダーデータを処理するための圧縮及び伸張ブロックをインスタンス化し得る。圧縮及び伸張のためのメカニズム、回路、及びのための方法は、固定及び決定論的時間での異なるデータトポロジー（１Ｄ、２Ｄ）及びアクセスパターン（規則的又はランダム）のためのデータ処理を可能にする。
【００６３】
説明される実施例の利点には、シンプルなロスレスの及びダイナミックな適応性データ圧縮方式が含まれる。説明される圧縮は、ランダムデータアクセスを可能にする。説明される実施例は、説明されるＣＩＰ構造を備える、安全性が重要な応用例に特に適している。機能的安全性は、部品表（ＢＯＭ：bill of materials）コストを潜在的に削減する。説明される実施例は、線形とブロック毎との両方で、種々の外部メモリストレージ方式を可能にする。また、説明される実施例は、固定密度、分離された制御及びデータパケット、ならびにレイテンシーを最小にするＤＧの並列処理を可能にする。
【００６４】
図８Ａ及び図８Ｂは、説明された圧縮及び伸張を用いる例示のイメージング用途に対し、それぞれ、４及び６のＤＧサイズのための、圧縮比対圧縮ワードサイズデータを示す。この例では、データは、図８ＡのＤＧサイズ４及び図８ＢのＤＧサイズ６を変化させることによって生成された。図８Ａ及び図８ＢのＸ軸は、圧縮のために用いられるＣＷサイズを記す。この特定の例において、最良の圧縮比は、ほぼ０．６に等しい、８のＣＷサイズ及び６のＤＧサイズに対して達成される。オリジナルデータサンプルは、１６ビット画像データ（画素）であった。各フレームは、約３００，０００画素を含んでいた。ポスト圧縮帯域幅は、圧縮されないデータの６０％まで低減されている。１２ビット画像データ（図示せず）では、達成可能な圧縮比は約７０％であることが分かった。
【００６５】
本発明の特許請求の範囲内で、説明した例示の実施例に改変が成され得、他の実施例が可能である。
【図１】
2020501475.tif 000003
【図２】
2020501475.tif 000004
【図３Ａ】
2020501475.tif 000005
【図３Ｂ】
2020501475.tif 000006
【図４】
2020501475.tif 000007
【図５Ａ】
2020501475.tif 000008
【図５Ｂ】
2020501475.tif 000009
【図５Ｃ】
2020501475.tif 000010
【図６Ａ】
2020501475.tif 000011
【図６Ｂ】
2020501475.tif 000012
【図７Ａ】
2020501475.tif 000013
【図７Ｂ】
2020501475.tif 000014
【図７Ｃ】
2020501475.tif 000015
【図８Ａ】
2020501475.tif 000016
【図８Ｂ】
2020501475.tif 000017
【国際調査報告】
2020501475.tif 000018