(57)【要約】【課題】  浮動小数点方式を用いたデータ圧縮／復元方法及び装置を提供する。【解決手段】  効率よいメモリ管理のために浮動小数点を用いてデータ(Ｆｉｘｅｄ Ｐｏｉｎｔ Ｄａｔａ)を圧縮／復元する技術であって、ログテーブルを用いてデータを圧縮／復元することにより、圧縮／復元時に発生する損失データを最小化することができるだけではなく、浮動小数点方式によって同じビットを用いて圧縮しても性能低下を防ぐことができる浮動小数点方式を用いたデータ圧縮／復元方法及び装置を提供する。【選択図】  図３
2015122048.tif 000002
【特許請求の範囲】
【請求項１】
固定小数点データ(Ｆｉｘｅｄ Ｐｏｉｎｔ Ｄａｔａ)ビット列を入力される入力部と、
前記固定小数点データビット列から符号ビット(Ｓｉｇｎ Ｂｉｔ)を取得する符号取得部と、
ログテーブル(Ｌｏｇ Ｔａｂｌｅ)に基づいて、前記固定小数点データビット列から前記符号ビットを除く残りのデータビット列が圧縮率による既に割り当てられたビット数を有する仮数部(Ｍａｎｔｉｓｓａ)と指数部(Ｅｘｐｏｎｅｎｔｉａｌ)になるように圧縮した浮動小数点データ(Ｆｌｏａｔｉｎｇ Ｐｏｉｎｔ Ｄａｔａ)ビット列に変換する圧縮部と、
を備えることを特徴とするデータ圧縮装置。
【請求項２】
前記圧縮部は、
前記残りのデータビット列に含まれている二進数から、前記符号ビット後に最初に「１」が存在する最初の位置を検出する抽出部と、
前記最初の位置が前記仮数部内に既に割り当てられたビット数以下であるか否かを確認する比較部と、
前記比較部における確認の結果、に基づいて、前記残りのデータビット列が前記仮数部と前記指数部になるように圧縮する浮動小数点変換部と、
を備えることを特徴とする請求項１に記載のデータ圧縮装置。
【請求項３】
前記浮動小数点変換部は、
前記比較部における確認の結果、前記最初の位置が前記仮数部のビット数以下である場合、前記残りのデータビット列における前記最初の位置を含む最初の位置以下のビットを同様に前記仮数部のビットに設定し、前記指数部のビットを全て０に設定することを特徴とする請求項２に記載のデータ圧縮装置。
【請求項４】
前記浮動小数点変換部は、
前記比較部における確認の結果、前記最初の位置が前記仮数部のビット数を超える場合、前記残りのデータビット列から前記最初の位置を除く最初の位置未満の入力ビットを抽出し、前記入力ビットのビット数を既に設定されたビット数に設定した後、前記ログテーブルを用いて前記入力ビットを入力値として有する出力ビットを抽出し、前記出力ビットを前記仮数部のビットに設定することを特徴とする請求項２に記載のデータ圧縮装置。
【請求項５】
前記浮動小数点変換部は、
前記比較部における確認の結果、前記最初の位置が前記仮数部のビット数を超える場合、前記最初の位置に相当する値を前記指数部のビットに設定することを特徴とする請求項２に記載のデータ圧縮装置。
【請求項６】
前記ログテーブルは、
凸関数(Ｃｏｎｖｅｘ Ｆｕｎｃｔｉｏｎ)を用いて既に設定されたビット数に応じて演算された値をテーブル形式で保存することを特徴とする請求項１に記載のデータ圧縮装置。
【請求項７】
浮動小数点データビット列に相当する仮数部、指数部及び符号ビットを入力される入力部と、
逆ログテーブル(Ｉｎｖｅｒｓｅ Ｌｏｇ Ｔａｂｌｅ)に基づいて前記仮数部のビットに相当する出力ビットを抽出し、前記指数部を用いて前記出力ビットの位置を決定した復元データビットを生成する復元部と、
前記復元データビットに前記符号ビットを適用して固定小数点データビット列に復元する符号適用部と、
を備えることを特徴とするデータ復元装置。
【請求項８】
前記逆ログテーブルは、
凹関数(Ｃｏｎｃａｖｅ Ｆｕｎｃｔｉｏｎ)を用いて既に設定されたビット数に応じて演算された値をテーブル形式で保存することを特徴とする請求項７に記載のデータ圧縮装置。
【請求項９】
固定小数点データビット列を入力される工程と、
前記固定小数点データビット列から符号ビットを取得する工程と、
前記固定小数点データビット列から前記符号ビットを除く残りのデータビット列を抽出する工程と、
ログテーブルに基づいて前記残りのデータビット列が圧縮率による既に割り当てられたビット数を有する仮数部と指数部になるように圧縮した浮動小数点データビット列に変換する工程と、
を含むことを特徴とするデータ圧縮方法。
【請求項１０】
前記変換する工程は、
前記残りのデータビット列に含まれている二進数から前記符号ビット後に最初に「１」が存在する最初の位置を検出する工程と、
前記最初の位置が前記仮数部に既に割り当てられたビット数以下であるか否かを確認する確認工程と、
前記確認工程の確認結果に基づいて、前記残りのデータビット列が前記仮数部と前記指数部になるように圧縮する工程と、
を含むことを特徴とする請求項９に記載のデータ圧縮方法。
【請求項１１】
前記圧縮する工程は、
前記確認工程の確認の結果、前記最初の位置が前記仮数部のビット数以下である場合、前記残りのデータビット列における前記最初の位置を含む最初の位置以下のビットを同様に前記仮数部のビットに設定する工程と、
前記指数部のビットを全て０に設定する工程と、
を含むことを特徴とする請求項１０に記載のデータ圧縮方法。
【請求項１２】
前記圧縮する工程は、
前記確認工程の確認の結果、前記最初の位置が前記仮数部のビット数を超える場合、前記残りのデータビット列から前記最初の位置を除く最初の位置未満の入力ビットを抽出する工程と、
前記入力ビットのビット数を既に設定されたビット数に設定する工程と、
前記ログテーブルを用いて前記入力ビットを入力値として有する出力ビットを抽出し、前記出力ビットを前記仮数部のビットに設定する工程と、
前記最初の位置に相当する値を前記指数部のビットに設定する工程と、
を含むことを特徴とする請求項１０に記載のデータ圧縮方法。
【請求項１３】
既に設定された範囲以内の類似値を有する異なる固定小数点データビット列を入力される入力部と、
前記異なる固定小数点データビット列のうちのいずれか一つのデータビットを第１指数部になるように圧縮した後、前記異なる固定小数点データビット列のうちの他の一つのデータビットを第２指数部に圧縮し、前記第１指数部の値と前記第２指数部の値との差分値を算出し、前記差分値と前記第２指数部の値のうち小さい方の値を前記第２指数部の値に設定した浮動小数点データビット列に変換する圧縮部と、
を備えることを特徴とするデータ圧縮装置。
【請求項１４】
前記圧縮部は、
前記いずれか一つのデータビットから第１符号ビットを取得し、前記いずれか一つのデータから前記第１符号ビットを除く残りのデータビット列から最初の位置を検出し、前記最初の位置に基づいて圧縮率による既に割り当てられたビット数を有する第１仮数部と前記第１指数部になるように圧縮する第１圧縮部と、
前記他の一つのデータビットから第２符号ビットを取得し、前記他の一つのデータから前記第２符号ビットを除く残りのデータビット列から最初の位置を検出し、前記最初の位置に基づいて圧縮率による既に割り当てられたビット数を有する第２仮数部と前記第２指数部になるように圧縮する第２圧縮部と、
を備えることを特徴とする請求項１３に記載のデータ圧縮装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、浮動小数点方式を用いたデータ圧縮方法及び装置（Ｍｅｔｈｏｄ Ａｎｄ Ａｐｐａｒａｔｕｓ Ｆｏｒ Ｃｏｍｐｒｅｓｓｉｎｇ/Ｄｅｃｏｍｐｒｅｓｓｉｎｇ Ｄａｔａ Ｂｙ Ｕｓｉｎｇ Ｆｌｏａｔｉｎｇ Ｐｏｉｎｔ）に関する。
【背景技術】
【０００２】
後述する内容は、単に本発明の実施形態と関連する背景情報のみを提供するだけであり、従来の技術を構成するものではない。
【０００３】
浮動小数点方式は、図１に示すように、符号、指数部及び仮数部に分けてデータを表現する。浮動小数点を用い、且つ、データを圧縮する方法を用いてデータ圧縮器を設計するときに、データの損失を最小化するために圧縮器入力の大きさを十分に表現可能な指数部のビット数がある必要があり、実際のデータの有効値を表現する仮数部に割り当てられたビット数で十分である必要がある。
【０００４】
もし、指数部のビットが十分ではない場合、圧縮工程（圧縮過程）においてビット飽和が発生してデータに深刻な歪みが発生するため、データの圧縮率を高めるためには仮数部のビット数を減らすことが一般的である。しかしながら、仮数部のビット数を減らす場合、有効数字をそれだけ不正確に表現せざるを得ないためデータの損失を防ぐことができないという問題がある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の実施形態は、効率よいメモリ管理のために浮動小数点を用いてデータを圧縮／復元する技術であって、ログテーブルを用いてデータを圧縮／復元することにより、圧縮／復元時に発生する損失データを最小化することができるだけではなく、浮動小数点方式によって同じビットを用いて圧縮しても性能低下を防ぐことのできる浮動小数点方式を用いたデータ圧縮／復元方法及び装置を提供するところにその目的がある。
【課題を解決するための手段】
【０００６】
本発明の実施形態の一側面によれば、固定小数点データ(Ｆｉｘｅｄ Ｐｏｉｎｔ Ｄａｔａ)ビット列を入力される入力部と、前記固定小数点データビット列から符号ビット(Ｓｉｇｎ Ｂｉｔ)を取得する符号取得部と、ログテーブル(Ｌｏｇ Ｔａｂｌｅ)に基づいて、前記固定小数点データビット列から前記符号ビットを除く残りのデータビット列が圧縮率による既に割り当てられたビット数を有する仮数部(Ｍａｎｔｉｓｓａ)と指数部(Ｅｘｐｏｎｅｎｔｉａｌ)になるように圧縮した浮動小数点データビット列に変換する圧縮部と、を備えることを特徴とするデータ圧縮装置を提供する。
【０００７】
また、本発明の他の実施形態によれば、浮動小数点データビット列に相当する仮数部、指数部及び符号ビットを入力される入力部と、逆ログテーブル（Ｉｎｖｅｒｓｅ  Ｌｏｇ  Ｔａｂｌｅ）に基づいて前記仮数部のビットに相当する出力ビットを抽出し、前記指数部を用いて前記出力ビットの位置を決定した復元データビットを生成する復元部と、前記復元データビットに前記符号ビットを適用して固定小数点データビット列に復元する符号適用部と、を備えることを特徴とするデータ復元装置を提供する。
【０００８】
さらに、本発明のさらに他の側面によれば、固定小数点データビット列を入力される工程（過程）と、前記固定小数点データビット列から符号ビットを取得する工程（過程）と、前記固定小数点データビット列から前記符号ビットを除く残りのデータビット列を抽出する工程（過程）と、ログテーブルに基づいて前記残りのデータビット列が圧縮率による既に割り当てられたビット数を有する仮数部と指数部になるように圧縮した浮動小数点データビット列に変換する工程（過程）と、を含むことを特徴とするデータ圧縮方法を提供する。
【０００９】
さらに、本発明のさらに他の側面によれば、既に設定された範囲以内の類似値を有する異なる固定小数点データビット列を入力される入力部と、前記異なる固定小数点データビット列のうちのいずれか一つのデータビットを第１指数部になるように圧縮した後、前記異なる固定小数点データビット列のうちの他の一つのデータビットを第２指数部に圧縮し、前記第１指数部の値と前記第２指数部の値との差分値を算出し、前記差分値と前記第２指数部の値のうち小さい方の値を前記第２指数部の値に設定した浮動小数点データビット列に変換する圧縮部と、を備えることを特徴とするデータ圧縮装置を提供する。
【発明の効果】
【００１０】
以上述べたように、本発明の実施形態によれば、効率よいメモリ管理のために浮動小数点を用いてデータを圧縮／復元する技術であって、ログテーブルを用いてデータを圧縮／復元することにより、圧縮／復元時に発生する損失データを最小化することができるだけではなく、浮動小数点方式によって同じビットを用いて圧縮しても性能低下を防ぐことができるという効果がある。
【００１１】
また、本発明の実施形態によれば、直交周波数分割（ＯＦＤＭ：Ｏｒｔｈｏｇｏｎａｌ Ｆｒｅｑｕｅｎｃｙ Ｄｉｖｉｓｉｏｎ Ｍｕｌｔｉｐｌｅｘ）方式の受信機を設計するときに、メモリ使用ブロックにおいてデータを圧縮することにより用いられるメモリの大きさを減らすことができるという効果がある。なお、固定小数点方式のデータにおける指数部のデータを決定するためにログ形式のテーブルを用いて浮動小数点データに変換することにより、原データの損失を防ぐことができるという効果がある。
【００１２】
さらに、複数のデータを同時に変換するときに、データ間の類似性を用いて、用いられるビット数を節約することができるという効果がある。
【図面の簡単な説明】
【００１３】
【図１】浮動小数点の表現方式において符号、指数部及び仮数部に分けてデータを表現した図である。
【図２】本発明の実施形態に係るデータ圧縮装置において、固定小数点のデータをより少ないビット数の浮動小数点のデータに圧縮する方式を示す図である。
【図３】本発明の実施形態に係る圧縮部において、ログテーブルを利用する場合の浮動小数点変換方式を示す図である。
【図４】本発明の実施形態に係るデータ復元装置において、浮動小数点形式に圧縮して変換したデータを元の固定小数点に戻す方式を示す図である。
【図５】本発明の実施形態に係る固定小数点データを浮動小数点データに変換する工程を説明するための図である。
【図６】本発明の実施形態に係る固定小数点データを浮動小数点データに変換する工程を説明するための図である。
【図７】本発明の実施形態に係る固定小数点データを浮動小数点データに変換する工程を説明するための図である。
【図８】本発明の実施形態の他の側面により、データの類似性を用いて固定小数点データを浮動小数点データに変換する工程を示す図である。
【発明を実施するための形態】
【００１４】
以下、添付図面に基づき、本発明の実施形態について詳細に説明する。
【００１５】
本発明の実施形態に係る浮動小数点方式を用いたデータ圧縮／復元方法は、直交周波数分割（ＯＦＤＭ）方式の受信機に適用されることが好ましい。換言すれば、直交周波数分割（ＯＦＤＭ）方式の受信機における効率よいメモリ管理のために浮動小数点方式を用いてデータを圧縮し且つ復元するのに利用可能である。
【００１６】
直交周波数分割（ＯＦＤＭ）方式の受信機を設計するに当たって、ほとんどの設計ブロックにおいてメモリが多用される。受信信号を加工するのに長時間がかかるため入出力間の遅延を考慮してメモリを用いる場合もあり、インターリーブ(Ｉｎｔｅｒｌｅａｖｅｒ)のように基本的にシステムが要求する場合もある。この場合、データを表現するビット数に応じてメモリの使用量が決定されるため、小容量のメモリを有するように設計するためにはデータビット数を減らすことが重要である。
【００１７】
浮動小数点によってデータを表現すれば、定められた仮数部に見合う分の有効数字を表現することができるため、データの大きさにバラツキがある場合に固定小数点によってデータを表現したときよりも有利である。このような浮動小数点による表現方式の利点を用いて固定小数点によって表現されたデータを圧縮するのに利用可能である。このような工程（過程）でデータに損失が発生するが、このような損失は、データの値が大きな場合には相対的に大きく、データの値が小さなときには小さいか、あるいは、発生しないこともある（固定小数点におけるデータ値が浮動小数点における仮数部に割り当てられたビットによって表現可能な場合には損失がない）。上述した特徴によって、データの絶対的な差分よりは周辺値との相対的な差分の方がさらに重要なデータの場合に浮動小数点を用いてデータを圧縮すれば大きな効果が得られる。
【００１８】
図２は、本発明の実施形態に係るデータ圧縮装置において、固定小数点のデータをより少ないビット数の浮動小数点のデータに圧縮する方式を示す図である。
【００１９】
本発明の実施形態に係る固定小数点のデータをより少ないビット数の浮動小数点のデータに圧縮する方式は、データ圧縮装置２００によって実現可能である。データ圧縮装置２００は、直交周波数分割（ＯＦＤＭ）方式の受信機のメモリ管理のために利用可能である。データ圧縮装置２００は、入力部２１０と、符号取得部２２０及び圧縮部２３０を備えていてもよい。データ圧縮装置２００に含まれている構成要素は必ずしもこれに限定されることはない。
【００２０】
以下、データ圧縮装置２００の構成要素について説明する。
【００２１】
入力部２１０は、固定小数点データビット列を入力される。例えば、固定小数点データを「１３ビット」とした場合、入力部２１０は、「１３ビット」の固定小数点データを入力されて符号取得部２２０に伝える。
【００２２】
符号取得部２２０は、固定小数点データビット列から符号ビットを取得する。例えば、符号取得部２２０は、入力部２１０から「１３ビット」の固定小数点データを受信する。次いで、符号取得部２２０は、「１３ビット」の固定小数点データから「１ビット」の符号ビットを取得する。
【００２３】
圧縮部２３０は、ログテーブル(Ｌｏｇ Ｔａｂｌｅ)３４０に基づいて固定小数点データビット列から符号ビットを除く残りのデータビット列が圧縮率による既に割り当てられたビット数を有する仮数部と指数部になるように圧縮した浮動小数点データビット列に変換する。例えば、既に設定された圧縮率に応じて仮数部に「５ビット」が割り当てられ、指数部に「３ビット」が割り当てられた場合を想定して説明する。換言すれば、圧縮部２３０は、「１３ビット」の固定小数点データビット列から「１ビット」の符号ビットを除く「１２ビット」の残りのデータビット列がログテーブル３４０に基づいて「５ビット」の仮数部と「３ビット」の指数部になるように圧縮した浮動小数点データビット列に変換することができる。このような圧縮部２３０の動作については、図３に基づいて具体的に説明する。
【００２４】
図２に示すように、固定小数点データをより少ないビット数の浮動小数点のデータに圧縮することができる。例えば、図２に示すように、入力部２１０に「１３ビット」の浮動小数点形式の入力を符号「１ビット」、仮数部「５ビット」、指数部「３ビット」の合計「９ビット」に圧縮して出力することができる。
【００２５】
図２に示す「ＦＬＴ Ｃｏｎｖｅｒｓｉｏｎ Ｃｏｒｅ」（すなわち、圧縮部２３０においては、入力される二進データから符号ビット後に最初に「１」が存在する最初の位置を検出し、最初の位置から指数部の値を決定し、仮数部データを出力する動作をする。仮数部データは、検出された最初の位置から仮数部のビット数に見合う分だけをそのまま出力することが一般的である。上述した方式によって仮数部データを決定する場合に、仮数部のビット数が小さければ出力される有効数字が少ないためデータの損失が発生するが、このような損失は、仮数部に含まれているビット値が小さいほど相対的に大きくなる。このため、本発明の実施形態においては、仮数部のデータを決定するためにログテーブル３４０を利用する。
【００２６】
浮動小数点を利用するデータ圧縮装置２００において圧縮率を高めるために仮数部のビット数を制限すれば、仮数部によって表現できなかったデータの損失を最小化することができる。上述したように、データ圧縮装置２００は、仮数部に含まれているビット値が小さいほど圧縮損失がさらに大きくなるため、小さな数をより上手に表現するための方法としてログテーブル３４０を用いることができる。
【００２７】
図３は、本発明の実施形態に係る圧縮部において、ログテーブルを利用する場合の浮動小数点変換方式を示す図である。
【００２８】
圧縮部２３０は、抽出部３１０と、比較部３２０と、浮動小数点変換部３３０及びログテーブル３４０を備える。
【００２９】
抽出部３１０は、残りのデータビット列に含まれている二進数から符号ビット後に最初に「１」が存在する最初の位置を検出する。抽出部３１０は、「１２ビット」の残りのデータビット列に含まれている二進数から符号ビット後に最初に「１」が存在する最初の位置を検出する。抽出部３１０は、図３に示すように、「１２ビット」を「１１、１０、９、８、７、６、５、４、３、１、０」に相当する位置に存在させることができる。ここで、最初の位置が存在する位置値を確認することができる。
【００３０】
比較部３２０は、抽出部３１０において検出された最初の位置が仮数部内に既に割り当てられたビット数以下であるか否かを確認する。例えば、仮数部内に割り当てられたビット数が「５ビット」であるため、比較部３２０は、「最初の位置＝５」であるか否かを確認することができる。もし、抽出部３１０において検出された最初の位置が「３」である場合、比較部３２０は、「３＝５」を確認することになり、最初の位置が「１０」である場合、比較部３２０は、「１０＝５」を確認する。
【００３１】
浮動小数点変換部３３０は、比較部３２０における確認結果に基づいて、残りのデータビット列が仮数部と指数部になるように圧縮する。換言すれば、浮動小数点変換部３３０は、比較部３２０における確認の結果、最初の位置が仮数部のビット数以下である場合、残りのデータビット列における最初の位置を含む最初の位置以下のビットを同様に（そのまま）仮数部のビットに設定する。浮動小数点変換部３３０は、指数部のビットを全て０に設定する。例えば、抽出部３１０において検出された最初の位置が「３」である場合、比較部３２０は、「３＝５」を確認し、比較部３２０における確認の結果、最初の位置が仮数部のビット数以下であると認識する。この場合、浮動小数点変換部３３０は、最初の位置が仮数部のビット数内に含まれていると認識して最初の位置を含む最初の位置以下のビットを同様に（そのまま）仮数部のビットに設定する。次いで、浮動小数点変換部３３０は、指数部のビットを全て０に設定する。
【００３２】
浮動小数点変換部３３０は、比較部３２０における確認の結果、最初の位置が仮数部のビット数を超える場合、残りのデータビット列から最初の位置を除く最初の位置未満の入力ビットを抽出する。例えば、抽出部３１０において検出された最初の位置が「１０」である場合、比較部３２０は、「１０＝５」を確認し、比較部３２０における確認の結果、最初の位置が仮数部のビット数を超えたと認識する。この場合、浮動小数点変換部３３０は、最初の位置を除く最初の位置以下のビットを入力ビットとして出力する。
【００３３】
浮動小数点変換部３３０は、入力ビットのビット数を既に設定されたビット数に設定した後、ログテーブルを用いて入力ビットを入力値として有する出力ビットを抽出する。浮動小数点変換部３３０は、出力ビットを仮数部のビットに設定する。例えば、浮動小数点変換部３３０は、最初の位置を除く最初の位置以下のビットが合計「１０ビット」である場合、ログテーブルを用いて「１０ビット」の入力ビットを入力値として有する出力ビットを抽出する。ここで、出力ビットは、仮数部に既に割り当てられたビット数である「５ビット」であってもよい。次いで、浮動小数点変換部３３０は、出力値に相当する「５ビット」の出力ビットを仮数部のビットに設定することができる。
【００３４】
もし、浮動小数点変換部３３０は、最初の位置を除く最初の位置以下のビットが合計「８ビット」である場合、既に設定されたビット数（例えば、１０ビット）に設定する。このとき、浮動小数点変換部３３０は、「８ビット」の最初の位置以下のビットの後ろに「０」を埋め込むようにして既に設定されたビット数である「１０ビット」に設定することができる。次いで、浮動小数点変換部３３０は、ログテーブルを用いて「１０ビット」の入力ビットを入力値として有する出力ビットを抽出する。ここで、出力ビットは、仮数部に既に割り当てられたビット数である「５ビット」であってもよい。次いで、浮動小数点変換部３３０は、出力値に相当する「５ビット」の出力ビットを仮数部のビットに設定することができる。
【００３５】
浮動小数点変換部３３０は、比較部３２０における確認の結果、最初の位置が仮数部のビット数を超える場合、最初の位置に相当する値を指数部のビットに設定する。換言すれば、浮動小数点変換部３３０は、最初の位置から任意の値を差し引いて指数部に割り当てられたビット数である「３ビット」にすることができる。例えば、最初の位置が「１０」に相当する場合、任意の値を「７」に設定して「１０−７」にして、指数部に割り当てられたビット数である「３ビット」にすることができる。ここで、指数部に割り当てられたビット数である「３ビット」である場合、「３ビット」は二進数において最大「７」で表現可能であるため、符号ビット後に位置するビットは順次に「７」、「６」、「５」、「４」、「３」、「２」、「１」、「０」に相当する値に設定可能である。例えば、符号ビット後に最初に位置するビットが「１」である場合、「７」に相当する値が設定可能であるため、指数部には「１１１」の二進数が設定可能であり、符号ビット後に最初に位置するビットが「０」であり、その次に位置するビットが「１」である場合、「６」に相当する値が設定可能であるため、指数部には「１１０」の二進数が設定可能である。指数部に割り当てられるビット数は既に設定された圧縮率に応じて変更可能であり、指数部に割り当てられるビット数に応じて設定される値もまた変更可能である。もし、指数部に割り当てられるビット数が「４ビット」である場合、「１５」〜「０」が設定可能であり、「２ビット」である場合、「３」〜「０」が設定可能である。
【００３６】
ログテーブル３４０は、凸関数(Ｃｏｎｖｅｘ Ｆｕｎｃｔｉｏｎ)を用いて既に設定されたビット数に応じて演算された値をテーブル形式で保存する。例えば、ログテーブル３４０は、入力値が「１０ビット」に対して「ｙ＝ｘ」関数よりも凸状の関数（例えば、凸関数）を適用して「５ビット」として演算された値をテーブル形式で保存する。ログテーブル３４０には、「ｙ＝ｘ」関数よりも凸状の関数（例えば、凸関数）のうち状況に応じて適切な関数が適用可能である。このとき、凸関数を利用する理由は、仮数部に含まれているビット値が小さいほどより詳細に値を表現して損失を減らすためである。
【００３７】
図３に基づき、上述した工程（過程）について全般的に説明すれば、抽出部３１０に符号ビットが除去された「１２ビット」が入力された場合、先ず、残りのデータビット列に含まれている二進数から符号ビット後に最初に「１」が存在する最初の位置を検出する。次いで、比較部３２０において最初の位置と仮数部のビット数を比較する。次いで、浮動小数点変換部３３０において、比較部３２０における比較の結果、最初の位置が仮数部のビット数（例えば、５）以下である場合、仮数部に入力された値をそのまま設定し、指数部に割り当てられたビットの値は０に設定する。もし、比較部３２０における比較の結果、最初の位置が仮数部のビット数を超える場合、浮動小数点変換部３３０は、最初の位置の次のビットから「１０ビット」をテーブルに入れて出力を仮数部に出力し、指数部の値は（最初の位置−７）に設定する。ログテーブル３４０には、「ｙ＝ｘ」関数よりも上方に凸状の関数のうち状況に応じて適切に選択して適用することができ、上方に凸状である理由は、仮数部に含まれているビット値が小さいほどより具体的に値を表現して損失を減らすためである。参考までに、図３は、底（底とは、ログ「ｙ＝ｌｏｇ×ａ×ｘ」や指数関数「ｙ＝ａｘ」における「ａ」をいう）が２であるログ関数の入力１から２までをテーブルにした場合の例示である。
【００３８】
図４は、本発明の実施形態に係るデータ復元装置において、浮動小数点形式に圧縮して変換したデータを元の固定小数点に戻す方式を示す図である。
【００３９】
本発明の実施形態に係る浮動小数点形式に圧縮して変換したデータを元の固定小数点に戻す方式は、データ復元装置４００によって実現可能である。データ復元装置４００は、直交周波数分割（ＯＦＤＭ）方式の受信機のメモリ管理のために利用可能である。データ復元装置４００は、入力部４１０と、復元部４２０及び符号適用部４３０を備えていてもよい。データ復元装置４００に含まれている構成要素は、必ずしもこれらに限定されることはない。
【００４０】
入力部４１０は、浮動小数点データビット列に相当する仮数部と、指数部及び符号ビットを入力される。例えば、入力部４１０は、「５ビット」の仮数部と、「３ビット」の指数部及び「１ビット」の符号からなる浮動小数点データビット列を入力される。
【００４１】
復元部４２０（ＦＸＤ Ｃｏｎｖｅｒｓｉｏｎ Ｃｏｒｅ）は、逆ログテーブルに基づいて仮数部のビットに相当する出力ビットを抽出し、指数部を用いて出力ビットの位置を決定した復元データビットを生成する。例えば、復元部４２０は、「３ビット」の指数部を用いて最初の位置を確認する。復元部４２０は、逆ログテーブルを用いて「５ビット」の仮数部に相当する「１０ビット」の出力ビットを抽出する。次いで、復元部４２０は、最初の位置後にビットとして「１０ビット」の出力ビットを埋め込んだ復元データビットを生成することができる。このとき、最初の位置に応じて全体ビットである「１２ビット」を復元データビットとして生成することができる。
【００４２】
逆ログテーブルは、凹関数(Ｃｏｎｃａｖｅ Ｆｕｎｃｔｉｏｎ)を用いて既に設定されたビット数に応じて演算された値をテーブル形式で保存する。例えば、逆ログテーブルは、入力値が「５ビット」に対して「ｙ＝ｘ」関数よりも凹状の関数（例えば、凹関数）を適用して「１０ビット」として演算された値をテーブル形式で保存する。ログテーブル３４０には、「ｙ＝ｘ」関数よりも凹状の関数（例えば、凹関数）のうち状況に応じて適切な関数が適用可能である。このとき、凹関数を利用する理由は、ログテーブル３４０において仮数部に含まれているビット値が小さいほどより詳細に値を表現して損失を減らすために凸関数を用いたため、凸関数に対する逆関数を用いて元の値に復元するためである。
【００４３】
符号適用部４３０は、復元データビットに符号ビットを適用して固定小数点データに復元する。例えば、符号適用部４３０は、「１２ビット」の復元データビットに「１ビット」の符号ビットを適用して合計「１３ビット」のビット列を有する固定小数点データを復元することができる。
【００４４】
図４に示すデータ復元方法は、図２及び図３に示すデータ圧縮方式の逆順に行われ得る。換言すれば、図４は、浮動小数点形式に圧縮して変換したデータを元の固定小数点に戻す実施形態である。本発明の実施形態において提案したテーブル方式によって変換した場合、逆ログテーブルを用いて元の値に戻すことができる。
【００４５】
図５から図７は、本発明の実施形態に係る固定小数点データを浮動小数点データに変換する工程（過程）を示す図である。
【００４６】
図５に示すように、「１３ビット」が割り当てられた固定小数点データビット列が入力される場合、通常のデータ圧縮によって浮動小数点データビット列に変換する場合を説明する。
【００４７】
「１３ビット」が割り当てられた固定小数点データビット列における「１ビット」を符号ビットとして割り当てる。次いで、「１３ビット」から符号ビットである「１ビット」を除く合計「１２ビット」における残りのデータビット列に含まれている二進数から符号ビット後に最初に「１」が存在する最初の位置（符号（ａ）の位置、図中ではａの丸囲み文字が示す位置として表示）を検出する。例えば、「１３ビット」である「Ｓ０１１１０１０１１０００」において「Ｓ」が符号ビットであるため、「Ｓ」を除く合計「１２ビット」である「０１１１０１０１１０００」における残りのデータビット列に含まれている二進数から符号ビット後に最初に「１」が存在する最初の位置（符号（ａ）の位置）を検出する。ここで、指数部には「３ビット」が割り当てられ、仮数部には「５ビット」が割り当てられた場合を想定したとき、「１２ビット」における最初の位置（符号（ａ）の位置）を基準として最初の位置（符号（ａ）の位置）直後のビットから「５ビット」を仮数部に設定する。例えば、仮数部に割り当てられたビットが「５ビット」であるため、「１２ビット」である「０１１１０１０１１０００」における最初の位置（符号（ａ）の位置）直後のビットから「５ビット」である「１１０１０」を仮数部に設定する。
【００４８】
また、「１２ビット」における最初の位置（符号（ａ）の位置）に相当する値を「３ビット」の指数部に設定する。指数部に割り当てられたビット数である「３ビット」であるため、二進数において最大「７」で表現可能である。このため、符号ビット後に位置するビットは順次に「７」、「６」、「５」、「４」、「３」、「２」、「１」、「０」に相当する値に設定可能である。例えば、符号ビット後に最初に位置するビットが「１」である場合、「７」に相当する値が設定可能であるため、３ビットの指数部には「１１１」の二進数が設定可能であり、符号ビット後に最初に位置するビットが「０」であり、その次に位置するビットが「１」である場合、「６」に相当する値が設定可能でるため、３ビットの指数部には「１１０」の二進数が設定可能である。
【００４９】
次いで、浮動小数点データビット列を再び固定小数点データビット列に変換する工程（過程）について説明する。指数部の「３ビット」である「１１０」に相当する値に基づいて最初の位置（符号（ａ）の位置）を決定する。次いで、仮数部に割り当てられた「５ビット」である「１１０１０」を最初の位置（符号（ａ）の位置）直後のビットに割り当て、次いで、ビットを全て０に設定する方式によって固定小数点データに変換する。このとき、最初の位置（符号（ａ）の位置）直後のビットに仮数部を割り当てた後、その次に存在するビットが全て０に設定されるため、損失が発生する。
【００５０】
図６に示す方式もまた、図５に基づく説明と同様に、損失が発生する。しかしながら、本発明の実施形態によれば、図７に示すように、「１３ビット」が割り当てられた固定小数点データビット列である「Ｓ０１１１０１０１１０００」が入力される。次いで、「１３ビット」である「Ｓ０１１１０１０１１０００」から符号ビットである「Ｓ」を取得する。「１３ビット」である「Ｓ０１１１０１０１１０００」から符号ビットである「Ｓ」を除く合計「１２ビット」である「０１１１０１０１１０００」から符号ビット後に最初に「１」が存在する最初の位置（符号（ａ）の位置）を検出する。ここで、指数部には「３ビット」が割り当てられ、仮数部には「５ビット」が割り当てられた場合を想定する。合計「１２ビット」である「０１１１０１０１１０００」における最初の位置（符号（ａ）の位置）直後のビットから「１０ビット」である「１１０１０１１０００」を入力ビットとして、ログテーブル３４０に入力する。次いで、「１０ビット」である「１１０１０１１０００」に相当する出力値である「５ビット」が割り当てられた「１０１０１」を仮数部に設定する。ログテーブルは、図７に示すように、凸関数を用いて既に設定されたビット数に応じて演算された値をテーブル形式にして保存可能である。
【００５１】
一方、「１２ビット」における最初の位置（符号（ａ）の位置）に相当する値が「３ビット」の指数部に設定される。例えば、指数部に割り当てられたビットが「３ビット」であるため、「１２ビット」である「０１１１０１０１１０００」における最初の位置（符号（ａ）の位置）直後のビットから「３ビット」である「１１０」を指数部に設定する。ここで、指数部に割り当てられたビット数である「３ビット」であるため、「７」で表現可能である。このため、符号ビット後に位置するビットは、順次に、「７」、「６」、「５」、「４」、「３」、「２」、「１」、「０」に相当する値に設定可能である。図７に示すように、符号ビット後に最初に位置するビットが「０」であり、その次に位置するビットが「１」である場合、「６」に相当する値が設定可能であるため、指数部には「１１０」が設定可能である。
【００５２】
次いで、浮動小数点データビット列を再び固定小数点データビット列に変換する工程（過程）について説明する。指数部の「３ビット」である「１１０」に相当する値に基づいて最初の位置（符号（ａ）の位置）を決定する。次いで、仮数部に割り当てられた「５ビット」である「１０１０１」を逆ログテーブルに入力する。次いで、「５ビット」である「１０１０１」に相当する出力値である「１０ビット」が割り当てられた「１１０１０１０１１０」を最初の位置（符号（ａ）の位置）直後のビットに割り当てる方式によって固定小数点データに変換する。このとき、最初の位置（符号（ａ）の位置）直後のビットに逆ログテーブルを用いた出力値が割り当てられるため、損失が発生し難くなる。このとき、逆ログテーブルは、図７に示すように、凹関数を用いて既に設定されたビット数に応じて演算された値をテーブル形式にして保存可能である。
【００５３】
図８は、本発明の実施形態に係るデータの類似性を用いて固定小数点データを浮動小数点データに変換する工程（過程）を示す図である。
【００５４】
本発明の実施形態の他の側面によれば、データの類似性を用いて固定小数点データを浮動小数点データに変換する方式は、データ圧縮装置８００によって実現可能である。データ圧縮装置８００は、直交周波数分割（ＯＦＤＭ）方式の受信機のメモリ管理のために利用可能である。データ圧縮装置８００は、第１圧縮部８１０及び第２圧縮部８２０を備えていてもよい。データ圧縮装置８００に含まれている構成要素は、必ずしもこれに限定されることはない。
【００５５】
データ圧縮装置８００は、入力部から既に設定された範囲以内の類似値を有する異なる固定小数点データビット列を入力される
【００５６】
第１圧縮部８１０は、異なる固定小数点データビット列のうちのいずれか一つのデータビットから第１符号ビットを取得する。第１圧縮部８１０は、一つのデータから第１符号ビットを除く残りのデータビット列に含まれている二進数から符号ビット後に最初に「１」が存在する最初の位置を検出する。第１圧縮部８１０は、最初の位置に基づいて圧縮率による既に割り当てられたビット数を有する第１仮数部と第１指数部になるように圧縮する。
【００５７】
第２圧縮部８２０は、異なる固定小数点データビット列のうち他の一つのデータビットから第２符号ビットを取得する。第２圧縮部８２０は、他の一つのデータから第２符号ビットを除く残りのデータビット列に含まれている二進数から符号ビット後に最初に「１」が存在する最初の位置を検出する。第２圧縮部８２０は、最初の位置に基づいて圧縮率による既に割り当てられたビット数を有する第２仮数部と第２指数部になるように圧縮する。次いで、第２圧縮部８２０は、第１指数部の値と第２指数部の値との差分値を算出し、算出された差分値と第２指数部の値のうちより小さな値を第２指数部の値に設定した浮動小数点データビット列に変換する。
【００５８】
このようなデータの類似性を用いてデータを圧縮方式を直交周波数分割（ＯＦＤＭ）方式の受信機に適用して指数部のビット数を減らすことができる。例えば、チャネル補償されたデータとチャネル値を一緒にメモリに保存する場合（両データ値が既に設定された範囲以内の類似値を有するため）、両データは値そのものは異なるが、両方ともチャネルが乗算されたデータであるため、大きさが互いにほとんど同様である。このように大きさがほとんど同様であるという特徴を用いて両データを浮動小数点に変換すれば、指数部のビット数を減らすことができる。換言すれば、変換するデータをＡ、Ｂとしたとき、Ａから得られた指数部に割り当てられたビットの値を基準としてＢの指数部に割り当てられたビットの値は大差ないため、互いの差分値をより少ないビットを用いて表現することにより、指数部のビット数を減らすことができる。
【００５９】
図８に示すように、異なるデータを同時に圧縮するとき、データの類似性を用いて一つの圧縮器からの結果をもう一つの圧縮器において利用する。換言すれば、両データＡ、Ｂは大きさがほとんど同様であるという点を用いて、第２指数部の値ｅ２をそのまま用いることなく、第１指数部の値ｅ１との差分として出力すれば、第２指数部のデータ表現ビット数を節約することができる。
【００６０】
以上の説明は、本発明の実施形態の技術思想を例示的に説明したものに過ぎず、本発明の実施形態が属する技術分野において通常の知識を有する者であれば、本発明の実施形態の本質的な特性から逸脱しない範囲内において種々の修正及び変形が可能である。よって、本発明の実施形態は本発明の実施形態の技術思想を限定するためのものではなく、単に説明するためのものであり、このような実施形態によって本発明の実施形態の技術思想の範囲が限定されることはない。本発明の実施形態の保護範囲は下記の請求範囲によって解釈さるべきであり、これと同様な範囲内にあるあらゆる技術思想は本発明の実施形態の権利範囲に含まれるものと解釈さるべきである。
【符号の説明】
【００６１】
２００：データ圧縮装置
２１０：入力部
２２０：符号取得部                             
２３０：圧縮部
【図１】
2015122048.tif 000003
【図２】
2015122048.tif 000004
【図３】
2015122048.tif 000005
【図４】
2015122048.tif 000006
【図５】
2015122048.tif 000007
【図６】
2015122048.tif 000008
【図７】
2015122048.tif 000009
【図８】
2015122048.tif 000010