(57)【要約】【課題】浮動小数点数表現のデータを符号化する場合に、必要な精度の仮数値とそれ以上の精度の仮数値に分けて符号化するようにした情報処理装置を提供する。【解決手段】情報処理装置の分離手段は、浮動小数点数表現のデータを指数値と仮数値に分離し、差分手段は、予め定められた指数値と各データの指数値との差分を抽出し、分割手段は、前記差分にしたがって、各データの仮数値を上位の第１の仮数値と下位の第２の仮数値に分割し、第１の符号化手段は、前記予め定められた指数値と第１の仮数値を符号化し、第２の符号化手段は、各データの前記差分と第２の仮数値を符号化する。【選択図】図１
2018019138.tif 000002
【特許請求の範囲】
【請求項１】
浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、
予め定められた指数値と各データの指数値との差分を抽出する差分手段と、
前記差分にしたがって、各データの仮数値を上位の第１の仮数値と下位の第２の仮数値に分割する分割手段と、
前記予め定められた指数値と第１の仮数値を符号化する第１の符号化手段と、
各データの前記差分と第２の仮数値を符号化する第２の符号化手段
を有する情報処理装置。
【請求項２】
予め定められた指数値として、対象とする複数の浮動小数点数のデータ内の最大の指数値とする、
請求項１に記載の情報処理装置。
【請求項３】
前記分割手段は、第２の仮数値として、浮動小数点数のデータの仮数値の下位の差分の桁数の値とし、第１の仮数値として、残りの上位の桁数の値とする、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記第１の仮数値を分割する第２の分割手段と、
前記第２の分割手段によって分割された最上位の仮数値以外の仮数値を符号化する第３の符号化手段
をさらに有し、
前記第１の符号化手段は、前記予め定められた指数値と前記第２の分割手段によって分割された最上位の仮数値を符号化する、
請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記第１の仮数値又は前記第２の仮数値と予測値との誤差を算出する予測誤差算出手段
をさらに有し、
前記第１の符号化手段又は第２の符号化手段は、前記誤差を符号化する、
請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
請求項１に記載の情報処理装置の第１の符号化手段によって符号化された予め定められた指数値と第１の仮数値を復号する第１の復号手段と、
請求項１に記載の情報処理装置の第２の符号化手段によって符号化された差分と第２の仮数値を復号する第２の復号手段と、
前記第１の復号手段と前記第２の復号手段から復号したデータにしたがって、第１の仮数値と第２の仮数値を加算する加算手段と、
前記加算手段による処理結果を浮動小数点数表現に変換する変換手段
を有し、
復号したデータに必要とされる精度にしたがって、前記第２の復号手段又は前記加算手段による処理を行わせない、
情報処理装置。
【請求項７】
浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、
予め定められた指数値と各データの指数値との差分を抽出する差分手段と、
前記差分にしたがって、各データの仮数値を上位の第１の仮数値と下位の第２の仮数値に分割する分割手段と、
前記予め定められた指数値と第１の仮数値を符号化する第１の符号化手段と、
各データの前記差分と第２の仮数値を符号化する第２の符号化手段
を有する符号化装置と、
前記第１の符号化手段によって符号化された予め定められた指数値と第１の仮数値を復号する第１の復号手段と、
前記第２の符号化手段によって符号化された差分と第２の仮数値を復号する第２の復号手段と、
前記第１の復号手段と前記第２の復号手段から復号したデータにしたがって、第１の仮数値と第２の仮数値を加算する加算手段と、
前記加算手段による処理結果を浮動小数点数表現に変換する変換手段
を有し、
復号したデータに必要とされる精度にしたがって、前記第２の復号手段又は前記加算手段による処理を行わせない、
復号装置
を有する情報処理システム。
【請求項８】
コンピュータを、
浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、
予め定められた指数値と各データの指数値との差分を抽出する差分手段と、
前記差分にしたがって、各データの仮数値を上位の第１の仮数値と下位の第２の仮数値に分割する分割手段と、
前記予め定められた指数値と第１の仮数値を符号化する第１の符号化手段と、
各データの前記差分と第２の仮数値を符号化する第２の符号化手段
として機能させるための情報処理プログラム。
【請求項９】
コンピュータを、
請求項８に記載の情報処理プログラムが実行されるコンピュータの第１の符号化手段によって符号化された予め定められた指数値と第１の仮数値を復号する第１の復号手段と、
請求項８に記載の情報処理プログラムが実行されるコンピュータの第２の符号化手段によって符号化された差分と第２の仮数値を復号する第２の復号手段と、
前記第１の復号手段と前記第２の復号手段から復号したデータにしたがって、第１の仮数値と第２の仮数値を加算する加算手段と、
前記加算手段による処理結果を浮動小数点数表現に変換する変換手段
として機能させ、
復号したデータに必要とされる精度にしたがって、前記第２の復号手段又は前記加算手段による処理を行わせない、
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム及び情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、各サンプルが極性、８ビットの指数部、２３ビットの仮数部よりなる浮動小数点形式デジタル信号サンプルＸを、整数化部で丸めて整数形式のデジタル信号サンプルＹに変換し、デジタル信号サンプルＹの系列を圧縮部で可逆圧縮符号化して符号列Ｃａを出力し、デジタル信号サンプルＹを浮動小数点形式のデジタル信号サンプルＸ′に浮動小数点化部で変換し、デジタル信号サンプルＸ′とデジタル信号サンプルＸとの差分信号を減算部で求め、差分信号を可逆符号化して符号列Ｃｂを出力することが開示されている。
【０００３】
特許文献２には、浮動小数点数のデータ値（可逆圧縮する目的のデータ値）の指数値と符号化に用いる予測値の指数値とが異なる場合であっても、圧縮率を低下させずにデータ値を可逆圧縮（符号化）できるようにすることを目的とし、符号化装置は、指数値と仮数値とを用いて表される浮動小数点数の値であって符号化する目的の値であるデータ値を記憶するデータ値記憶部と、前記データ値記憶部に記憶される前記データ値を符号化するために用いる浮動小数点数の値であるデータ関連値を記憶するデータ関連値記憶部と、前記データ関連値記憶部に記憶された前記データ関連値の指数値と前記データ値記憶部に記憶された前記データ値の指数値との差に基づいて前記データ関連値の仮数値を調整して調整仮数値を生成する調整仮数値生成部と、前記データ値記憶部に記憶された前記データ値の前記指数値に基づいて特定の指数値を生成し、前記データ値の仮数値と前記調整仮数値生成部によって生成された前記調整仮数値とに基づいて特定の仮数値を生成し、前記特定の指数値と前記特定の仮数値とに基づいて浮動小数点数の値であって符号化する値である符号化対象値を生成する符号化対象値生成部と、前記符号化対象値生成部によって生成された前記符号化対象値を符号化してデータ符号化値を生成するデータ符号化値生成部とを備えることが開示されている。
【０００４】
特許文献３には、信号サンプルを圧縮するための方法及び装置は、ブロック浮動小数点表示を用いるものであり、グループ内の最大絶対値のサンプルによって仮数毎のビット数が決定され、圧縮器は、グループ毎に固定数のサンプルを有する信号サンプルのグループを定義し、グループ内の最大絶対値のサンプルが、最大サンプル値を表すためのビット数に対応する指数値を定め、指数値は、コード化されて指数トークンを形成し、連続する指数値間の指数差分を、個々に又は合同でコード化することができ、グループ内のサンプルは、対応する仮数に対してマッピングされ、各仮数は、指数値に基づくビット数を有し、指数値に応じたＬＳＢを除去することにより、より少ないビットを有する仮数が生成され、フィードバック制御は、圧縮ビットレート及び／又は品質要求基準を監視することが開示されている。
【０００５】
特許文献４には、データの圧縮及び圧縮解除に関し、より具体的に言えば、信号データを圧縮及び圧縮解除するための方法及び装置を提供することを課題とし、信号データを取得すること、信号データが分割される複数のデータ・ブロックのブロック長さを決定し、データ・ブロックの指数を決定すること、データ・ブロックに含まれる信号データを圧縮するために、データ・ブロックの指数を使用することによってデータ・ブロックの仮数シーケンスを形成すること、及び、データ・ブロックのブロック長さ、指数、及び仮数シーケンスを使用することによって圧縮データ・ブロックを形成することを含む、信号データを圧縮するための方法が開示され、信号データの動的特徴に適合された可変長データ・ブロックを構築することによって、信号データを圧縮するための方法は、信号データの圧縮比を増加させることが開示されている。
【０００６】
特許文献５には、復号化器で復号するにあたり定数を必要としない符号化を符号化器で行い、効率よく圧縮符号化すると共に、データ量を容易に制御できる情報伝送装置を提供することを目的とし、情報伝送装置は、入力信号を周波数軸上で複数帯域に分割したのち一定時間記憶し、記憶された信号を指数部と仮数部に分離し、これらをそれぞれ符号化して符号化信号を出力する帯域分割符号化装置と、帯域分割符号化装置の出力信号を入力し、これをそれぞれ復号化したのち元の信号に復号する帯域分割復号化装置とを備え、帯域分割符号化装置は、入力信号を周波数軸上で複数帯域に分割する周波数帯域分割器と、周波数帯域分割器の出力信号を一定時間記憶する記憶器と、一定時間記憶された信号の最大値を検出し、最大値の有効上位桁を検出する有効上位桁検出器と、帯域毎に予め定められた定数を記憶している定数記憶器と、予め定められた定数と有効上位桁検出器の出力を用いて帯域毎の指数部を決定する指数部決定器と、一定時間記憶された信号を指数部を用いて仮数部を計算し、仮数部を符号化し符号化信号を出力する第１符号化器と、第１の符号化器で発生するビット量を帯域単位で計算し、予め定められたビット量を超えるかもしくは一定時間記憶された信号を全て符号化しても予め定められたビット量に満たない場合は、符号化打ち切り信号を出力するビット量制御器と、指数部を符号化し符号化信号を、符号化打ち切り信号を受信するまで出力し、符号化打ち切り信号を受信すると特定の符号語を出力する第２の符号化器と、第１の符号化器の出力と第２の符号化器の出力とを時間軸多重する多重化器とを備え、第１の符号化器は、瞬時に復号可能な非等長符号を出力し、符号化打ち切り信号が入力されると符号化を打ち切ることが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２００４／０９８０６６号
【特許文献２】特許第５６１９３２６号公報
【特許文献３】特表２０１３−５０８８６７号公報
【特許文献４】特開２０１３−２５１８９５号公報
【特許文献５】特開平０３−１５４４４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
数値計算等の処理結果として、浮動小数点数表現のデータがある。例えば、この処理結果に対して、可視化（ビジュアライゼーション）とさらなる数値計算を行う場合がある。この可視化と数値計算とでは、必要な精度が異なる場合がある。具体的には、可視化では低い（量子化した）精度を用い、数値計算では高い精度を用いる場合である。前述の特許文献に記載の技術では、任意の精度で圧縮伸長するため、圧縮時に指定した精度でしか伸長時にデータを復号できない。
本発明は、浮動小数点数表現のデータを符号化する場合に、必要な精度の仮数値とそれ以上の精度の仮数値に分けて符号化するようにした情報処理装置、情報処理システム及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、予め定められた指数値と各データの指数値との差分を抽出する差分手段と、前記差分にしたがって、各データの仮数値を上位の第１の仮数値と下位の第２の仮数値に分割する分割手段と、前記予め定められた指数値と第１の仮数値を符号化する第１の符号化手段と、各データの前記差分と第２の仮数値を符号化する第２の符号化手段を有する情報処理装置である。
【００１０】
請求項２の発明は、予め定められた指数値として、対象とする複数の浮動小数点数のデータ内の最大の指数値とする、請求項１に記載の情報処理装置である。
【００１１】
請求項３の発明は、前記分割手段は、第２の仮数値として、浮動小数点数のデータの仮数値の下位の差分の桁数の値とし、第１の仮数値として、残りの上位の桁数の値とする、請求項１又は２に記載の情報処理装置である。
【００１２】
請求項４の発明は、前記第１の仮数値を分割する第２の分割手段と、前記第２の分割手段によって分割された最上位の仮数値以外の仮数値を符号化する第３の符号化手段をさらに有し、前記第１の符号化手段は、前記予め定められた指数値と前記第２の分割手段によって分割された最上位の仮数値を符号化する、請求項１から３のいずれか一項に記載の情報処理装置である。
【００１３】
請求項５の発明は、前記第１の仮数値又は前記第２の仮数値と予測値との誤差を算出する予測誤差算出手段をさらに有し、前記第１の符号化手段又は第２の符号化手段は、前記誤差を符号化する、請求項１から４のいずれか一項に記載の情報処理装置である。
【００１４】
請求項６の発明は、請求項１に記載の情報処理装置の第１の符号化手段によって符号化された予め定められた指数値と第１の仮数値を復号する第１の復号手段と、請求項１に記載の情報処理装置の第２の符号化手段によって符号化された差分と第２の仮数値を復号する第２の復号手段と、前記第１の復号手段と前記第２の復号手段から復号したデータにしたがって、第１の仮数値と第２の仮数値を加算する加算手段と、前記加算手段による処理結果を浮動小数点数表現に変換する変換手段を有し、復号したデータに必要とされる精度にしたがって、前記第２の復号手段又は前記加算手段による処理を行わせない、情報処理装置である。
【００１５】
請求項７の発明は、浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、予め定められた指数値と各データの指数値との差分を抽出する差分手段と、前記差分にしたがって、各データの仮数値を上位の第１の仮数値と下位の第２の仮数値に分割する分割手段と、前記予め定められた指数値と第１の仮数値を符号化する第１の符号化手段と、各データの前記差分と第２の仮数値を符号化する第２の符号化手段を有する符号化装置と、前記第１の符号化手段によって符号化された予め定められた指数値と第１の仮数値を復号する第１の復号手段と、前記第２の符号化手段によって符号化された差分と第２の仮数値を復号する第２の復号手段と、前記第１の復号手段と前記第２の復号手段から復号したデータにしたがって、第１の仮数値と第２の仮数値を加算する加算手段と、前記加算手段による処理結果を浮動小数点数表現に変換する変換手段を有し、復号したデータに必要とされる精度にしたがって、前記第２の復号手段又は前記加算手段による処理を行わせない、復号装置を有する情報処理システムである。
【００１６】
請求項８の発明は、コンピュータを、浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、予め定められた指数値と各データの指数値との差分を抽出する差分手段と、前記差分にしたがって、各データの仮数値を上位の第１の仮数値と下位の第２の仮数値に分割する分割手段と、前記予め定められた指数値と第１の仮数値を符号化する第１の符号化手段と、各データの前記差分と第２の仮数値を符号化する第２の符号化手段として機能させるための情報処理プログラムである。
【００１７】
請求項９の発明は、コンピュータを、請求項８に記載の情報処理プログラムが実行されるコンピュータの第１の符号化手段によって符号化された予め定められた指数値と第１の仮数値を復号する第１の復号手段と、請求項８に記載の情報処理プログラムが実行されるコンピュータの第２の符号化手段によって符号化された差分と第２の仮数値を復号する第２の復号手段と、前記第１の復号手段と前記第２の復号手段から復号したデータにしたがって、第１の仮数値と第２の仮数値を加算する加算手段と、前記加算手段による処理結果を浮動小数点数表現に変換する変換手段として機能させ、復号したデータに必要とされる精度にしたがって、前記第２の復号手段又は前記加算手段による処理を行わせない、情報処理プログラムである。
【発明の効果】
【００１８】
請求項１の情報処理装置によれば、浮動小数点数表現のデータを符号化する場合に、必要な精度の仮数値とそれ以上の精度の仮数値に分けて符号化される。
【００１９】
請求項２の情報処理装置によれば、予め定められた指数値として、対象とする複数の浮動小数点数のデータ内の最大の指数値とすることができる。
【００２０】
請求項３の情報処理装置によれば、第２の仮数値として、浮動小数点数のデータの仮数値の下位の差分の桁数の値とし、第１の仮数値として、残りの上位の桁数の値とすることができる。
【００２１】
請求項４の情報処理装置によれば、第１の仮数値を分割して符号化することができる。
【００２２】
請求項５の情報処理装置によれば、予測値との誤差を符号化することができる。
【００２３】
請求項６の情報処理装置によれば、復号したデータに必要とする精度によっては、第２の復号手段又は加算手段による処理を行わせないことができる。
【００２４】
請求項７の情報処理システムによれば、浮動小数点数表現のデータを符号化する場合に、必要な精度の仮数値とそれ以上の精度の仮数値に分けて符号化される。
【００２５】
請求項８の情報処理プログラムによれば、浮動小数点数表現のデータを符号化する場合に、必要な精度の仮数値とそれ以上の精度の仮数値に分けて符号化される。
【００２６】
請求項９の情報処理プログラムによれば、復号したデータに必要とする精度によっては、第２の復号手段又は加算手段による処理を行わせないことができる。
【図面の簡単な説明】
【００２７】
【図１】第１の実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態を利用したシステム構成例を示す説明図である。
【図３】第１の実施の形態による処理例を示すフローチャートである。
【図４】第１の実施の形態による処理例を示すフローチャートである。
【図５】第１の実施の形態による処理例を示すフローチャートである。
【図６】数値計算結果の例を示す説明図である。
【図７】処理結果テーブルのデータ構造例を示す説明図である。
【図８】処理結果テーブルのデータ構造例を示す説明図である。
【図９】処理結果テーブル（ブロック）のデータ構造例を示す説明図である。
【図１０】指数値テーブルのデータ構造例を示す説明図である。
【図１１】仮数値テーブルのデータ構造例を示す説明図である。
【図１２】差分指数値テーブルのデータ構造例を示す説明図である。
【図１３】有効精度の仮数値テーブルのデータ構造例を示す説明図である。
【図１４】無効精度の仮数値テーブルのデータ構造例を示す説明図である。
【図１５】予測誤差テーブルのデータ構造例を示す説明図である。
【図１６】基本符号の符号化データのデータ構造例を示す説明図である。
【図１７】差分符号の符号化データのデータ構造例を示す説明図である。
【図１８】基本符号の符号化データのデータ構造例を示す説明図である。
【図１９】指数値テーブルのデータ構造例を示す説明図である。
【図２０】有効精度の仮数値テーブルのデータ構造例を示す説明図である。
【図２１】有効精度データテーブルのデータ構造例を示す説明図である。
【図２２】有効精度データテーブルのデータ構造例を示す説明図である。
【図２３】指数値テーブルのデータ構造例を示す説明図である。
【図２４】有効精度の仮数値テーブルのデータ構造例を示す説明図である。
【図２５】有効精度データテーブルのデータ構造例を示す説明図である。
【図２６】有効精度データテーブルのデータ構造例を示す説明図である。
【図２７】第２の実施の形態の構成例についての概念的なモジュール構成図である。
【図２８】第２の実施の形態による処理例を示す説明図である。
【図２９】基本符号１の符号化データのデータ構造例を示す説明図である。
【図３０】基本符号ｍ（ｍ≧２）の符号化データのデータ構造例を示す説明図である。
【図３１】第３の実施の形態の構成例についての概念的なモジュール構成図である。
【図３２】第３の実施の形態による処理例を示す説明図である。
【図３３】第４の実施の形態の構成例についての概念的なモジュール構成図である。
【図３４】第４の実施の形態による処理例を示すフローチャートである。
【図３５】第４の実施の形態による処理例を示すフローチャートである。
【図３６】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００２８】
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（もちろんのことながら、全ての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００２９】
本実施の形態である情報処理システムは、符号化装置１００と復号装置１５０によって構成されており、符号化装置１００は、浮動小数点数データ群１０５を符号化（圧縮ともいわれる）するものであり、復号装置１５０は、その符号を復号（伸長ともいわれる）し、浮動小数点数データ群１９５を生成するものである。
【００３０】
説明にあたって、用語の定義を行う。
精度とは、浮動小数点数において、仮数部の最下位の値が示す桁である。例えば１．２３４５ｅ−０５は、１．２３４５ｅ−０５＝１２３４５ｅ−０９となり、精度はｅ−０９となる。
仮数値とは、仮数部からなる整数値である。
指数値とは、指数部からなる整数値である。
有効精度とは、ユーザーが指定する任意の精度である。本実施の形態では、ブロック内の最低精度（浮動小数点のデータのブロック内の最大の指数値）を有効精度として用いている。
無効精度とは、有効精度より高い精度である。
ブロック内最大指数値とは、ブロック内で最大の指数値である。
差分指数値とは、ブロック内最大指数値と指数値との差分である。
差分有効精度の仮数値とは、有効精度の仮数値と予測値との差分である。
基本符号とは、ブロック内最大指数値と有効精度の仮数値を符号化したデータである。
基本符号１とは、ブロック内最大指数値と分割された有効精度の仮数値の中で最低精度の仮数値を符号化したデータである。
基本符号ｍ（ｍ≧２）とは、ブロック内最大指数値と分割された有効精度の仮数値の中で最低精度以外の仮数値を符号化したデータである。
基本符号ａとは、ブロック内最大指数値と有効精度の仮数値の予測誤差を符号化したデータである。
差分符号とは、差分指数値と無効精度の仮数値を符号化したデータである。
【００３１】
符号化装置１００は、図１の例に示すように、ブロック分割モジュール１１０、浮動小数点数分離モジュール１１５、ブロック内最大指数値算出モジュール１２０、差分指数値算出モジュール１２５、仮数値分割モジュール１３０、第１の符号化モジュール１３５、第２の符号化モジュール１４０を有している。
ブロック分割モジュール１１０は、浮動小数点数分離モジュール１１５と接続されている。ブロック分割モジュール１１０は、浮動小数点数データ群１０５を受け付け、その浮動小数点数データ群１０５をブロックに分割する。なお、ここで、ブロックとは、予め定められた数のデータの集合である。
浮動小数点数分離モジュール１１５は、ブロック分割モジュール１１０、ブロック内最大指数値算出モジュール１２０、仮数値分割モジュール１３０と接続されている。浮動小数点数分離モジュール１１５は、浮動小数点数表現のデータを指数値と仮数値に分離する。第１の実施の形態では、ブロック分割モジュール１１０によってブロックに分割された浮動小数点数データ群１０５を指数値と仮数値に分離する。
【００３２】
ブロック内最大指数値算出モジュール１２０は、浮動小数点数分離モジュール１１５、差分指数値算出モジュール１２５と接続されている。ブロック内最大指数値算出モジュール１２０は、対象とする複数の浮動小数点数のデータから最大の指数値を抽出する。第１の実施の形態では、ブロック分割モジュール１１０によってブロックに分割された浮動小数点数データ群１０５内で、最大の指数値（ブロック内最大指数値）を抽出する。
差分指数値算出モジュール１２５は、ブロック内最大指数値算出モジュール１２０、仮数値分割モジュール１３０と接続されている。差分指数値算出モジュール１２５は、予め定められた指数値と各データの指数値との差分を抽出する。
なお、ここで「予め定められた指数値」として、対象とする複数の浮動小数点数のデータ内の最大の指数値（ブロック内最大指数値算出モジュール１２０による処理結果である最大の指数値）としてもよい。この場合、ブロック内最大指数値とブロック内の各データの指数値との差分（差分指数値）を算出することになる。
【００３３】
仮数値分割モジュール１３０は、浮動小数点数分離モジュール１１５、差分指数値算出モジュール１２５、第１の符号化モジュール１３５、第２の符号化モジュール１４０と接続されている。仮数値分割モジュール１３０は、差分指数値算出モジュール１２５による処理結果である差分にしたがって、各データの仮数値を上位の第１の仮数値と下位の第２の仮数値に分割する。つまり、仮数値を有効精度と無効精度に分割する。仮数値を有効精度と無効精度に分割するため、復号時にデータの精度を制御できるようになる。
また、仮数値分割モジュール１３０は、第２の仮数値として、浮動小数点数のデータの仮数値の下位の差分の桁数の値とし、第１の仮数値として、残りの上位の桁数の値としてもよい。
【００３４】
第１の符号化モジュール１３５は、仮数値分割モジュール１３０と接続されており、基本符号１４２を出力する。第１の符号化モジュール１３５は、前述の予め定められた指数値と第１の仮数値を符号化する。具体的には、第１の符号化モジュール１３５は、ブロックのブロック内最大指数値と有効精度の仮数値を符号化する。
なお、第１の符号化モジュール１３５は、差分指数値算出モジュール１２５による処理結果である差分が０でない場合は、予め定められた指数値と差分と第１の仮数値を符号化するようにしてもよい。
第２の符号化モジュール１４０は、仮数値分割モジュール１３０と接続されており、差分符号１４４を出力する。第２の符号化モジュール１４０は、各データの差分と第２の仮数値を符号化する。具体的には、第２の符号化モジュール１４０は、ブロックの差分指数値と無効精度の仮数値を符号化する。
【００３５】
復号装置１５０は、図１の例に示すように、第１の復号モジュール１５５、第２の復号モジュール１６０、加算モジュール１６５、変換モジュール１７０、ブロック統合モジュール１７５を有している。復号装置１５０は、復号したデータに必要とされる精度にしたがって、第２の復号モジュール１６０又は加算モジュール１６５による処理を行わせない。つまり、第１の復号モジュール１５５によって復号されたデータだけを用いる場合は、第２の復号モジュール１６０、加算モジュール１６５による処理は不要である。
【００３６】
第１の復号モジュール１５５は、加算モジュール１６５と接続されており、基本符号１４２を受け付ける。第１の復号モジュール１５５は、符号化装置１００の第１の符号化モジュール１３５によって符号化された予め定められた指数値と第１の仮数値を復号する。具体的には、第１の復号モジュール１５５は、基本符号１４２からブロック内最大指数値と有効精度の仮数値を復号する。
第２の復号モジュール１６０は、加算モジュール１６５と接続されており、差分符号１４４を受け付ける。第２の復号モジュール１６０は、符号化装置１００の第２の符号化モジュール１４０によって符号化された差分と第２の仮数値を復号する。具体的には、第２の復号モジュール１６０は、差分符号１４４から差分指数値と無効精度の仮数値を復号する。
【００３７】
加算モジュール１６５は、第１の復号モジュール１５５、第２の復号モジュール１６０、変換モジュール１７０と接続されている。加算モジュール１６５は、第１の復号モジュール１５５と第２の復号モジュール１６０によって復号されたデータにしたがって、第１の仮数値と第２の仮数値を加算する。つまり、基本符号１４２の復号結果に差分符号１４４の復号結果を加算する。
変換モジュール１７０は、加算モジュール１６５、ブロック統合モジュール１７５と接続されている。変換モジュール１７０は、加算モジュール１６５による処理結果を浮動小数点数表現に変換する。
ブロック統合モジュール１７５は、変換モジュール１７０と接続されており、浮動小数点数データ群１９５を出力する。ブロック統合モジュール１７５は、ブロックを統合して、浮動小数点数データ群１９５を生成する。つまり、ブロック分割モジュール１１０の逆処理を行う。なお、基本符号１４２と差分符号１４４の両方を復号した場合は、浮動小数点数データ群１０５と浮動小数点数データ群１９５は同じになる（いわゆる可逆圧縮伸長）。基本符号１４２だけを復号した場合は、浮動小数点数データ群１９５の精度は浮動小数点数データ群１０５の精度以下である（いわゆる非可逆圧縮伸長）。
【００３８】
符号化装置１００は、入力されたデータを任意のブロックに分割する。そして、ブロック内のデータを有効精度と無効精度に分離し、有効精度のデータを基本符号、無効精度のデータを差分符号として、それぞれ符号化する。復号時に、復号装置１５０は、ユーザーの用途により基本符号のみを復号して有効精度のデータを得ること（非可逆圧縮伸長）も、基本符号と差分符号をあわせて復号して無効精度のデータを得ること（可逆圧縮伸長）も可能である。
【００３９】
図２は、本実施の形態を利用したシステム構成例を示す説明図である。
スーパーコンピュータ２１０Ａ、スーパーコンピュータ２１０Ｂ内の符号化装置１００Ｂ、情報処理装置２２０内の符号化装置１００Ａ、情報処理装置２３０Ｄ内の復号装置１５０Ｄ、情報処理装置２３０Ｅ内の復号装置１５０Ｅは、通信回線２９０を介してそれぞれ接続されている。通信回線２９０は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。また、スーパーコンピュータ２１０による機能は、クラウドサービスとして実現してもよい。
情報処理装置２２０、情報処理装置２３０Ａ、情報処理装置２３０Ｂ、情報処理装置２３０Ｃは、それぞれ接続されている。
スーパーコンピュータ２１０Ｂは、符号化装置１００Ｂを有している。情報処理装置２２０は、符号化装置１００Ａを有している。情報処理装置２３０Ａは、復号装置１５０Ａを有している。情報処理装置２３０Ｂは、復号装置１５０Ｂを有している。情報処理装置２３０Ｃは、復号装置１５０Ｃを有している。情報処理装置２３０Ｄは、復号装置１５０Ｄを有している。情報処理装置２３０Ｅは、復号装置１５０Ｅを有している。
【００４０】
スーパーコンピュータ２１０は、例えば、数値計算を行い、浮動小数点数表現のデータを出力する。このデータとして、例えば、特定の環境下における原子運動をシミュレーションして得られたデータがある。このデータの活用方法として、例えばデータの可視化と別の数値計算への入力の２つの用途がある。このとき、可視化と数値計算とで、必要な精度が異なる場合がある。具体的には、可視化では低い（量子化した）精度を用い、数値計算では高い精度を用いる場合である。
スーパーコンピュータ２１０Ａは処理結果である浮動小数点数データ群１０５を、情報処理装置２２０に送信する。情報処理装置２２０の符号化装置１００Ａでは符号化を行って、基本符号１４２、差分符号１４４を、情報処理装置２３０Ａ、情報処理装置２３０Ｂ、情報処理装置２３０Ｃに送信する。情報処理装置２３０Ａは、原子運動の可視化処理を行うので、復号装置１５０Ａは基本符号１４２だけを復号して、浮動小数点数データ群１９５の可視化処理を行う。可視化処理に差分符号１４４までの精度は必要ないからである。情報処理装置２３０Ｂは、解析処理によりさらに数値計算を行うので、復号装置１５０Ｂは基本符号１４２、差分符号１４４を復号して、浮動小数点数データ群１９５（浮動小数点数データ群１０５と同じ精度のデータ）を用いた数値計算を行う。情報処理装置２３０Ｃは、可視化処理とともに解析処理によりさらに数値計算を行うので、可視化処理を行う場合は、復号装置１５０Ｃは基本符号１４２だけを復号して、浮動小数点数データ群１９５の可視化処理を行う。解析処理を行う場合は、基本符号１４２、差分符号１４４を復号して、浮動小数点数データ群１９５を用いた数値計算を行う。
スーパーコンピュータ２１０Ｂは、そのスーパーコンピュータ２１０Ｂによる処理結果を符号化装置１００Ｂで符号化して、情報処理装置２３０Ｄ、情報処理装置２３０Ｅに送信する。情報処理装置２３０Ｄは、原子運動の可視化処理を行うので、復号装置１５０Ｄは基本符号１４２だけを復号して、浮動小数点数データ群１９５の可視化処理を行う。情報処理装置２３０Ｅは、解析処理によりさらに数値計算を行うので、復号装置１５０Ｅは基本符号１４２、差分符号１４４を復号して、浮動小数点数データ群１９５を用いた数値計算を行う。
【００４１】
図３は、第１の実施の形態（符号化装置１００）による処理例を示すフローチャートである。
ステップＳ３０２では、ブロック分割モジュール１１０は、ブロックに分割する。
ステップＳ３０４では、浮動小数点数分離モジュール１１５は、指数値ｅと仮数値ｍを分離する。
ステップＳ３０６では、ブロック内最大指数値算出モジュール１２０は、ブロック内最大指数値ｆを算出する。
ステップＳ３０８では、差分指数値算出モジュール１２５は、差分指数値△ｅを算出する。
ステップＳ３１０では、仮数値分割モジュール１３０は、仮数値ｍを分割する。ステップＳ３１０の詳細な処理内容については、図４の例に示すフローチャートを用いて後述する。
ステップＳ３１２では、第１の符号化モジュール１３５は、圧縮Ａによる基本データの符号化を行う。
ステップＳ３１４では、第２の符号化モジュール１４０は、圧縮Ｂによる差分データの符号化を行う。
【００４２】
図４は、第１の実施の形態（仮数値分割モジュール１３０）による処理例を示すフローチャートである。
ステップＳ４０２では、仮数値分割モジュール１３０は、有効精度の仮数値ｍ１を算出する。具体的には、ｍ１＝［ｍ／１０∧△ｅ］によって、仮数値ｍ１を算出する。
ステップＳ４０４では、仮数値分割モジュール１３０は、無効精度の仮数値ｍ２を算出する。具体的には、ｍ２＝ｍ−ｍ１＊１０∧△ｅによって、仮数値ｍ２を算出する。
【００４３】
図５は、第１の実施の形態（復号装置１５０）による処理例を示すフローチャートである。
ステップＳ５０２では、第１の復号モジュール１５５は、伸長Ａによる基本データの復号を行う。
ステップＳ５０４では、第２の復号モジュール１６０は、伸長Ｂによる符号データの復号を行う。
ステップＳ５０６では、加算モジュール１６５は、データを加算する。
ステップＳ５０８では、変換モジュール１７０は、浮動小数点数を生成する。
ステップＳ５１０では、ブロック統合モジュール１７５は、ブロックを統合する。
【００４４】
以下に、具体例を示して、各モジュールによる処理を説明する。ただし、説明を簡潔にするために、データ数は少なく、単純な数値を用いている。
図６は、数値計算結果の例を示す説明図である。図６は、特定の環境下における１つの粒子がＸ軸上を動いていく様子を表している。横軸に時間［ｓｅｃ］、縦軸にＸ座標値を示している。図７は、図６の粒子のＸ座標値を有効数字５桁の浮動小数点数形式で時系列順に並べたデータである。図７は、処理結果テーブル７００のデータ構造例を示す説明図である。処理結果テーブル７００は、時間［ｓｅｃ］欄７１０、Ｘ座標値［ｍｍ］欄７２０を有している。時間［ｓｅｃ］欄７１０は、時間［ｓｅｃ］を記憶している。Ｘ座標値［ｍｍ］欄７２０は、Ｘ座標値［ｍｍ］を記憶している。
本例では、図７のＸ座標値を入力データ（浮動小数点数データ群１０５）とする。以降では各時間対する粒子のＸ座標値を要素と呼ぶことにする。
【００４５】
符号化装置１００による処理を説明する。
ブロック分割モジュール１１０は、入力データ（浮動小数点数データ群１０５）を、ブロックに分割する。本例では、図８の例に示すように、時間軸を基準にして５つの要素毎（ブロック８１０、ブロック８２０）に分割する。以降では、ブロック８１０に注目して説明する。
【００４６】
浮動小数点数分離モジュール１１５は、ブロック８１０のＸ座標値の浮動小数点数を仮数値と指数値とに分離する。時間ｔ、有効数字Ｎ桁とする。時間ｔの浮動小数点数データをＦ（ｔ）とすると、Ｆ（ｔ）は指数値ｅ（ｔ）及び仮数値ｍ（ｔ）により式（１）のように表す。
【数１】
2018019138.tif 000003
例えば、Ｆ（ｔ）＝１．１１１１ｅ＋０２のとき、ｅ（ｔ）＝２及びｍ（ｔ）＝１１１１１となる。式（１）より、図９の例に示す注目ブロックの浮動小数点数は、図１０の例に示す指数値と図１１の例に示す仮数値に分離される。
図９は、処理結果テーブル（ブロック）９００のデータ構造例を示す説明図である。処理結果テーブル（ブロック）９００は、時間［ｓｅｃ］欄９１０、Ｘ座標値［ｍｍ］欄９２０を有している。時間［ｓｅｃ］欄９１０は、時間［ｓｅｃ］を記憶している。Ｘ座標値［ｍｍ］欄９２０は、Ｘ座標値［ｍｍ］を記憶している。
図１０は、指数値テーブル１０００のデータ構造例を示す説明図である。指数値テーブル１０００は、時間［ｓｅｃ］欄１０１０、指数値欄１０２０を有している。時間［ｓｅｃ］欄１０１０は、時間［ｓｅｃ］を記憶している。指数値欄１０２０は、指数値を記憶している。
図１１は、仮数値テーブル１１００のデータ構造例を示す説明図である。仮数値テーブル１１００は、時間［ｓｅｃ］欄１１１０、仮数値欄１１２０を有している。時間［ｓｅｃ］欄１１１０は、時間［ｓｅｃ］を記憶している。仮数値欄１１２０は、仮数値を記憶している。
【００４７】
ブロック内最大指数値算出モジュール１２０は、注目ブロック内の指数値の中から最大値を計算し、それをブロック内最大指数値とする。ブロック内最大指数値ｆは式（２）で定義する。
【数２】
2018019138.tif 000004
図１０の例では、ブロック最大指数値は、ｔ＝４のときでｆ＝３となる。
【００４８】
差分指数値算出モジュール１２５は、ブロック内最大指数値と当該ブロックの各指数値から差分指数値を計算する。時間ｔにおける差分指数値△ｅ（ｔ）を、式（３）で定義する。
【数３】
2018019138.tif 000005
式（３）より、注目ブロックの差分指数値△ｅ（ｔ）を図１２に示す。図１２は、差分指数値テーブル１２００のデータ構造例を示す説明図である。差分指数値テーブル１２００は、時間［ｓｅｃ］欄１２１０、差分指数値欄１２２０を有している。時間［ｓｅｃ］欄１２１０は、時間［ｓｅｃ］を記憶している。差分指数値欄１２２０は、差分指数値を記憶している。差分指数値欄１２２０内の値は、ブロック内最大指数値（３）から、図１０の例に示した指数値テーブル１０００の指数値欄１０２０内の値を減算したものである。
【００４９】
仮数値分割モジュール１３０は、仮数値を、有効精度の仮数値と無効精度の仮数値とに分割する。時間ｔにおける有効精度の仮数値ｍ１（ｔ）と無効精度の仮数値ｍ２（ｔ）は、それぞれ式（４）と式（５）で定義する。
【数４】
2018019138.tif 000006
【数５】
2018019138.tif 000007
よって、図１１の例に示す注目ブロックの仮数値ｍ（ｔ）は、有効精度の仮数値ｍ１（ｔ）（図１３）、無効精度の仮数値ｍ２（ｔ）（図１４）に分割される。
図１３は、有効精度の仮数値テーブル１３００のデータ構造例を示す説明図である。有効精度の仮数値テーブル１３００は、時間［ｓｅｃ］欄１３１０、有効精度の仮数値欄１３２０を有している。時間［ｓｅｃ］欄１３１０は、時間［ｓｅｃ］を記憶している。有効精度の仮数値欄１３２０は、有効精度の仮数値（上位の仮数値）を記憶している。図１４は、無効精度の仮数値テーブル１４００のデータ構造例を示す説明図である。無効精度の仮数値テーブル１４００は、時間［ｓｅｃ］欄１４１０、無効精度の仮数値欄１４２０を有している。時間［ｓｅｃ］欄１４１０は、時間［ｓｅｃ］を記憶している。無効精度の仮数値欄１４２０は、無効精度の仮数値（下位の仮数値）を記憶している。
【００５０】
なお、仮数値分割モジュール１３０（後述する第３の実施の形態における予測誤差算出モジュール３１３５）は、有効精度の仮数値の予測値を生成し予測誤差を算出するようにしてもよい。この処理によって、時間経過で同じ仮数値が連続する場合に、基本符号の符号量を削減できる。ここでは時間ｔにおける有効精度の仮数値の予測値ｐ（ｔ）を、式（６）で定義する。なお、予測値ｐ（ｔ）はある複数の有効精度の仮数値との誤差二乗和を最小にする値で定義するなど、別の算出方法を用いてもよい。
【数６】
2018019138.tif 000008
有効精度の仮数値ｍ１（ｔ）と予測した有効精度の仮数値ｐ（ｔ）の時間ｔにおける予測誤差△ｍ１（ｔ）は式（７）で定義する。
【数７】
2018019138.tif 000009
【００５１】
式（７）より、予測誤差△ｍ１（ｔ）を図１５の例に示す。この構成では、仮数値ｍ１（ｔ）の代わりに予測誤差△ｍ１（ｔ）を符号化する。
図１５は、予測誤差テーブル１５００のデータ構造例を示す説明図である。
予測誤差テーブル１５００は、時間［ｓｅｃ］欄１５１０、有効精度の仮数値の予測誤差欄１５２０を有している。時間［ｓｅｃ］欄１５１０は、時間［ｓｅｃ］を記憶している。有効精度の仮数値の予測誤差欄１５２０は、有効精度の仮数値の予測誤差を記憶している。
【００５２】
第１の符号化モジュール１３５、第２の符号化モジュール１４０の処理、符号化データ（基本符号１４２、差分符号１４４）について説明する。第１の符号化モジュール１３５は、ブロック内最大指数値及び有効精度の仮数値を符号化した符号化データを基本符号１４２（図１６）として出力する。第２の符号化モジュール１４０は、無効精度の仮数値及び指数値残差を符号化した符号化データを差分符号１４４（図１７）として出力する。なお、有効精度の仮数値の予測を行う場合、基本符号はブロック内最大指数値及び有効精度の仮数値の予測誤差を符号化する（図１８）。基本符号及び差分符号は、それぞれハフマン符号や算術符号などの従来手法を用いて可逆で符号化する。
図１６は、基本符号の符号化データ１６００のデータ構造例（基本符号の符号化データの構造例（有効精度の仮数値の予測を行わない場合））を示す説明図である。基本符号の符号化データ１６００は、ブロック内最大指数値１６１０と有効精度の仮数値１６２０により構成されている。
図１７は、差分符号の符号化データ１７００のデータ構造例（差分符号の符号化データの構造例）を示す説明図である。差分符号の符号化データ１７００は、差分指数値１７１０と無効精度の仮数値１７２０により構成されている。
図１８は、基本符号の符号化データ１８００のデータ構造例（基本符号の符号化データの構造例（有効精度の仮数値の予測を行う場合））を示す説明図である。基本符号の符号化データ１８００は、ブロック内最大指数値１８１０と有効精度の仮数値の予測誤差１８２０により構成されている。
【００５３】
復号装置１５０による処理を説明する。
まず、有効精度のデータを取得する方法を説明する。第１の復号モジュール１５５は、時間ｔにおける基本符号を復号して、注目ブロックのブロック内最大指数値ｆ’及び有効精度の仮数値ｍ１’（ｔ）を得る。時間ｔにおける指数値ｅ’（ｔ）及び仮数値ｍ’（ｔ）は、式（８）及び式（９）で定義される。
【数８】
2018019138.tif 000010
【数９】
2018019138.tif 000011
【００５４】
有効精度の仮数値の予測誤差を符号化している場合は、時間ｔにおける予測値ｐ’（ｔ）及び基本符号を復号して得られる有効精度の仮数値の予測誤差△ｍ１’（ｔ）から仮数値ｍ’（ｔ）を計算する。予測値ｐ’（ｔ）及び仮数値ｍ’（ｔ）は式（１０）及び式（１１）で定義される。
【数１０】
2018019138.tif 000012
【数１１】
2018019138.tif 000013
式（１０）及び式（１１）より、注目ブロックの指数値ｅ’（ｔ）及び仮数値ｍ’（ｔ）を図１９の例、図２０の例に示す。
図１９は、指数値テーブル１９００のデータ構造例を示す説明図である。指数値テーブル１９００は、時間［ｓｅｃ］欄１９１０、指数値欄１９２０を有している。時間［ｓｅｃ］欄１９１０は、時間［ｓｅｃ］を記憶している。指数値欄１９２０は、指数値を記憶している。
図２０は、有効精度の仮数値テーブル２０００のデータ構造例を示す説明図である。有効精度の仮数値テーブル２０００は、時間［ｓｅｃ］欄２０１０、有効精度の仮数値欄２０２０を有している。時間［ｓｅｃ］欄２０１０は、時間［ｓｅｃ］を記憶している。有効精度の仮数値欄２０２０は、有効精度の仮数値を記憶している。
【００５５】
第２の復号モジュール１６０、加算モジュール１６５による処理が不要である場合について説明する。
変換モジュール１７０は、ブロック内最大指数値及び有効精度の仮数値を浮動小数点数に変換する。時間ｔ、有効数字Ｎ桁とする。時間ｔの浮動小数点数データをＦ’（ｔ）とすると、 Ｆ’（ｔ）は式（１２）のように表す。
【数１２】
2018019138.tif 000014
式（１２）より、有効精度のデータを図２１の例に示す。
図２１は、有効精度データテーブル２１００のデータ構造例を示す説明図である。有効精度データテーブル２１００は、時間［ｓｅｃ］欄２１１０、Ｘ座標値［ｍｍ］欄２１２０を有している。時間［ｓｅｃ］欄２１１０は、時間［ｓｅｃ］を記憶している。Ｘ座標値［ｍｍ］欄２１２０は、Ｘ座標値［ｍｍ］を記憶している。
【００５６】
ブロック統合モジュール１７５は、分割されたブロックを統合し、有効精度のデータを得る。入力データの有効精度の浮動小数点数データの伸長結果を図２２の例に示す。各ブロックの精度はｅ＋０３で統一されている。
図２２は、有効精度データテーブル２２００のデータ構造例を示す説明図である。有効精度データテーブル２２００は、時間［ｓｅｃ］欄２２１０、Ｘ座標値［ｍｍ］欄２２２０を有している。時間［ｓｅｃ］欄２２１０は、時間［ｓｅｃ］を記憶している。Ｘ座標値［ｍｍ］欄２２２０は、Ｘ座標値［ｍｍ］を記憶している。
【００５７】
次に、無効精度のデータを伸長する方法を説明する。前提として、第１の復号モジュール１５５によって基本符号を復号して有効精度のデータが得られているとする。
時間ｔにおける差分指数値を△ｅ’’（ｔ）及び無効精度の仮数値をｍ２’’（ｔ）とする。第２の復号モジュール１６０は、差分符号１４４から差分指数値△ｅ’’（ｔ）及び無効精度の仮数値ｍ２’’（ｔ）を復元する。そして、加算モジュール１６５は、有効精度のデータに無効精度の差分指数値△ｅ’’（ｔ）及び無効精度の仮数値ｍ２’’（ｔ）を、加算モジュール１６５が加算することで、有効精度のデータの指数値ｅ（ｔ）’’と有効精度の仮数値ｍ’’（ｔ）を、式（１３）と式（１４）から復元する。
【数１３】
2018019138.tif 000015
【数１４】
2018019138.tif 000016
【００５８】
式（１３）及び式（１４）より、注目ブロックの指数値ｅ’’（ｔ）及び仮数値ｍ’’（ｔ）を図２３の例、図２４の例に示す。
図２３は、指数値テーブル２３００のデータ構造例を示す説明図である。指数値テーブル２３００は、時間［ｓｅｃ］欄２３１０、指数値欄２３２０を有している。時間［ｓｅｃ］欄２３１０は、時間［ｓｅｃ］を記憶している。指数値欄２３２０は、指数値を記憶している。
図２４は、有効精度の仮数値テーブル２４００のデータ構造例を示す説明図である。有効精度の仮数値テーブル２４００は、時間［ｓｅｃ］欄２４１０、有効精度の仮数値欄２４２０を有している。時間［ｓｅｃ］欄２４１０は、時間［ｓｅｃ］を記憶している。有効精度の仮数値欄２４２０は、有効精度の仮数値を記憶している。
【００５９】
変換モジュール１７０は、ブロック内最大指数値及び有効精度の仮数値を浮動小数点数に変換する。時間ｔの浮動小数点数データをＦ’’（ｔ）とすると、Ｆ’’（ｔ）は式（１５）のように表す。式（１５）より、無効精度のデータとして図２５の例が得られる。
【数１５】
2018019138.tif 000017
図２５は、有効精度データテーブル２５００（復号されたデータ）のデータ構造例を示す説明図である。有効精度データテーブル２５００は、時間［ｓｅｃ］欄２５１０、Ｘ座標値［ｍｍ］欄２５２０を有している。時間［ｓｅｃ］欄２５１０は、時間［ｓｅｃ］を記憶している。Ｘ座標値［ｍｍ］欄２５２０は、Ｘ座標値［ｍｍ］を記憶している。
【００６０】
ブロック統合モジュール１７５は、分割されたブロックを統合し、無効精度のデータを得る。入力データの無効精度の浮動小数点数データの復号結果を図２６の例に示す。
図２６は、有効精度データテーブル２６００（復号されたデータ）のデータ構造例を示す説明図である。有効精度データテーブル２６００は、時間［ｓｅｃ］欄２６１０、Ｘ座標値［ｍｍ］欄２６２０を有している。時間［ｓｅｃ］欄２６１０は、時間［ｓｅｃ］を記憶している。Ｘ座標値［ｍｍ］欄２６２０は、Ｘ座標値［ｍｍ］を記憶している。
【００６１】
本実施の形態と従来手法における圧縮伸長の違いを説明する。例えば、図７のデータを可視化する場合と別の数値計算への入力を行う場合を考える。このとき、可視化にはｅ＋０３の精度までのデータが必要であり、数値計算には元データの精度まで必要であるとする。従来手法は入力データを可視化用にｅ＋０３の精度で圧縮伸長し、さらに数値計算用に元データの精度で圧縮伸長する必要がある。本実施の形態は、入力データを一度だけ圧縮すれば、再び圧縮を行うことなくｅ＋０３の精度も元データの精度のデータも伸長することができる。
【００６２】
本実施の形態と従来手法の符号量の違いを説明する。例えば、入力データのブロック分割数を１とする。従来手法を用いた場合の符号化データの総符号量は、「有効精度の符号」の符号量と「無効精度の符号」の符号量との加算となり、本実施の形態を用いた場合の符号化データの総符号量は「基本符号１４２」の符号量と「差分符号１４４」の符号量との加算となる。ここで、「有効精度の符号」の符号量と「基本符号１４２」の符号量は、原理的に同じになる。一方で、「無効精度の符号」の符号量は入力データを全て符号化した符号化データであり、「差分符号１４４」の符号量は入力データの一部を符号化した符号化データである。そのため、「差分符号１４４」の符号量は「無効精度の符号」の符号量よりも小さくなる。よって、複数の精度でデータを圧縮伸長する場合、本実施の形態の符号化データの総符号量は、従来手法の符号化データの総符号量よりも小さくなる。
【００６３】
＜第２の実施の形態＞
図２７は、第２の実施の形態の構成例についての概念的なモジュール構成図である。
なお、前述の実施の形態と同種の部位には同一符号を付し重複した説明を省略する（以下、同様）。
符号化装置２７００は、ブロック分割モジュール１１０、浮動小数点数分離モジュール１１５、ブロック内最大指数値算出モジュール１２０、差分指数値算出モジュール１２５、仮数値分割モジュール１３０、有効精度分割モジュール２７３５、第１−１の符号化モジュール２７４０、第１−２の符号化モジュール２７４５、第２の符号化モジュール１４０を有している。符号化装置２７００は、符号化装置１００に、有効精度分割モジュール２７３５、第１−２の符号化モジュール２７４５等を付加したものである。
【００６４】
ブロック分割モジュール１１０は、浮動小数点数分離モジュール１１５と接続されており、浮動小数点数データ群１０５を受け付ける。
浮動小数点数分離モジュール１１５は、ブロック分割モジュール１１０、ブロック内最大指数値算出モジュール１２０、仮数値分割モジュール１３０と接続されている。
ブロック内最大指数値算出モジュール１２０は、浮動小数点数分離モジュール１１５、差分指数値算出モジュール１２５と接続されている。
差分指数値算出モジュール１２５は、ブロック内最大指数値算出モジュール１２０、仮数値分割モジュール１３０と接続されている。
仮数値分割モジュール１３０は、浮動小数点数分離モジュール１１５、差分指数値算出モジュール１２５、有効精度分割モジュール２７３５と接続されている。
有効精度分割モジュール２７３５は、仮数値分割モジュール１３０、第１−１の符号化モジュール２７４０、第１−２の符号化モジュール２７４５、第２の符号化モジュール１４０と接続されている。有効精度分割モジュール２７３５は、第１の仮数値を分割する。具体的には、有効精度分割モジュール２７３５は、有効精度を任意の精度に分割する。これによって、有効精度を複数の精度に分割することができるようになる。
第１−１の符号化モジュール２７４０は、有効精度分割モジュール２７３５と接続されており、基本符号１：２７４２を出力する。第１−１の符号化モジュール２７４０は、前述の予め定められた指数値と有効精度分割モジュール２７３５によって分割された最上位の仮数値を符号化する。具体的には、第１−１の符号化モジュール２７４０は、ブロック内最大指数値と分割された最低精度の有効精度の仮数値を符号化する。
第１−２の符号化モジュール２７４５は、有効精度分割モジュール２７３５と接続されており、基本符号ｍ：２７４２−ｍを出力する。第１−２の符号化モジュール２７４５は、有効精度分割モジュール２７３５によって分割された最上位の仮数値以外の仮数値を符号化する。具体的には、第１−２の符号化モジュール２７４５は、有効精度の仮数値を符号化する。
第２の符号化モジュール１４０は、有効精度分割モジュール２７３５と接続されており、差分符号１４４を出力する。
【００６５】
復号装置２７５０は、第１−１の復号モジュール２７５５、第１−２の復号モジュール２７６０、第２の復号モジュール１６０、加算モジュール１６５、変換モジュール１７０、ブロック統合モジュール１７５を有している。
第１−１の復号モジュール２７５５は、加算モジュール１６５と接続されており、基本符号１：２７４２を受け付ける。第１−１の復号モジュール２７５５は、符号化装置２７００の第１−１の符号化モジュール２７４０によって符号化された予め定められた指数値と有効精度分割モジュール２７３５によって分割された最上位の仮数値を復号する。具体的には、第１−１の復号モジュール２７５５は、基本符号１：２７４２からブロック内最大指数値と分割された有効精度の仮数値の中で最低精度の仮数値を復号する。
第１−２の復号モジュール２７６０は、加算モジュール１６５と接続されており、基本符号ｍ：２７４２−ｍを受け付ける。第１−２の復号モジュール２７６０は、符号化装置２７００の第１−２の符号化モジュール２７４５によって符号化された有効精度分割モジュール２７３５によって分割された最上位の仮数値以外の仮数値を符号化する。具体的には、第１−２の復号モジュール２７６０は、基本符号ｍ：２７４２−ｍから分割された有効精度の仮数値の中で最低精度以外の仮数値を復号する。
第２の復号モジュール１６０は、加算モジュール１６５と接続されており、差分符号１４４を受け付ける。
加算モジュール１６５は、第１−１の復号モジュール２７５５、第１−２の復号モジュール２７６０、第２の復号モジュール１６０、変換モジュール１７０と接続されている。
変換モジュール１７０は、加算モジュール１６５、ブロック統合モジュール１７５と接続されている。
ブロック統合モジュール１７５は、変換モジュール１７０と接続されており、浮動小数点数データ群１９５を出力する。
【００６６】
図２８は、第２の実施の形態による処理例を示す説明図である。
有効精度分割モジュール２７３５は、有効精度の仮数値分割モジュール２８３５を有している。
有効精度の仮数値分割モジュール２８３５は、第１−１の符号化モジュール２７４０、第１−２の符号化モジュール２７４５と接続されている。有効精度の仮数値分割モジュール２８３５は、Ｎ桁の有効精度の仮数値２８１０を受け付け、そのＮ桁の有効精度の仮数値２８１０をｋ（２≦ｋ≦Ｍ）個に分割し、第１の仮数値２８３７を第１−１の符号化モジュール２７４０に渡し、第ｍ（ｍ＝１…ｋ）の仮数値２８３９を第１−２の符号化モジュール２７４５に渡す。
第１−１の符号化モジュール２７４０は、有効精度分割モジュール２７３５の有効精度の仮数値分割モジュール２８３５と接続されており、有効精度の仮数値分割モジュール２８３５から第１の仮数値２８３７を受け取り、基本符号１：２７４２を出力する。
第１−２の符号化モジュール２７４５は、有効精度分割モジュール２７３５の有効精度の仮数値分割モジュール２８３５と接続されており、有効精度の仮数値分割モジュール２８３５から第ｍ（ｍ＝１…ｋ）の仮数値２８３９を受け取り、基本符号２：２８４２−２、基本符号３：２８４２−３、基本符号ｋ−１：２８４２−ｋ−１、基本符号ｋ：２８４２−ｋを出力する。
【００６７】
符号化装置２７００は、符号化装置１００に、有効精度を任意の精度に分割する有効精度分割モジュール２７３５を加えたものである。有効精度を複数の精度に分割して符号化することで、ユーザーは用途に応じて必要な精度を取得することができる。有効精度の仮数値の有効桁数をＭとする。有効精度の仮数値を任意の精度でｋ（２≦ｋ≦Ｍ）個に分割し、基本符号ｍ（ｍ＝１…ｋ）を生成する。ここで、分割された有効精度の仮数値を精度が低い方から順番に第ｍの仮数値と呼ぶことにする。基本符号１：２７４２は、ブロック内最大指数値と第１の仮数値の符号化データで構成される。例えば、図２９に示す基本符号１の符号化データ２９００は、基本符号１：２７４２のデータ構造を示しており、ブロック内最大指数値２９１０と第１番目の仮数値２９２０により構成されている。基本符号ｍ：２７４２−ｍ（ｍ≧２）は、第ｍの仮数値の符号化データで構成される。例えば、図３０に示す基本符号ｍ（ｍ≧２）の符号化データ３０００は、基本符号ｍ：２７４２−ｍのデータ構造を示している。基本符号ｍは、ハフマン符号や算術符号などの従来手法を用いて可逆で符号化する。これにより、復号装置２７５０は、基本符号１：２７４２で復号した有効精度のデータを伸長した後に、基本符号ｍ：２７４２−ｍ（ｍ≧２）を加算することで、再符号化せずにより高い精度のデータを段階的に伸長することができる。
【００６８】
＜第３の実施の形態＞
図３１は、第３の実施の形態の構成例についての概念的なモジュール構成図である。
符号化装置３１００は、ブロック分割モジュール１１０、浮動小数点数分離モジュール１１５、ブロック内最大指数値算出モジュール１２０、差分指数値算出モジュール１２５、仮数値分割モジュール１３０、予測誤差算出モジュール３１３５、第１−ａの符号化モジュール３１４０、第２の符号化モジュール１４０を有している。符号化装置３１００は、符号化装置１００に予測誤差算出モジュール３１３５を付加したものである。第１の実施の形態の説明で、式（６）、式（７）、図１５、図１８の例を用いて説明した処理を行うものである。
ブロック分割モジュール１１０は、浮動小数点数分離モジュール１１５と接続されており、浮動小数点数データ群１０５を受け付ける。
浮動小数点数分離モジュール１１５は、ブロック分割モジュール１１０、ブロック内最大指数値算出モジュール１２０、仮数値分割モジュール１３０と接続されている。
ブロック内最大指数値算出モジュール１２０は、浮動小数点数分離モジュール１１５、差分指数値算出モジュール１２５と接続されている。
差分指数値算出モジュール１２５は、ブロック内最大指数値算出モジュール１２０、仮数値分割モジュール１３０と接続されている。
仮数値分割モジュール１３０は、浮動小数点数分離モジュール１１５、差分指数値算出モジュール１２５、予測誤差算出モジュール３１３５と接続されている。
予測誤差算出モジュール３１３５は、仮数値分割モジュール１３０、第１−ａの符号化モジュール３１４０、第２の符号化モジュール１４０と接続されている。予測誤差算出モジュール３１３５は、第１の仮数値又は第２の仮数値と予測値との誤差を算出する。具体的には、予測誤差算出モジュール３１３５は、有効精度の仮数値と予測値との予測誤差を算出する。これによって、データ列で同じ仮数値が連続する場合に圧縮率を高くすることができる。
第１−ａの符号化モジュール３１４０は、予測誤差算出モジュール３１３５と接続されており、基本符号ａ３１４２を出力する。第１−ａの符号化モジュール３１４０は、予め定められた指数値と予測誤差算出モジュール３１３５によって算出された誤差を符号化する。具体的には、第１−ａの符号化モジュール３１４０は、ブロック内最大指数値と予測誤差を符号化する。
第２の符号化モジュール１４０は、予測誤差算出モジュール３１３５と接続されており、差分符号１４４を出力する。第２の符号化モジュール１４０は、予測誤差算出モジュール３１３５によって算出された誤差を符号化する。
【００６９】
復号装置３１５０は、第１−ａの復号モジュール３１５５、第２の復号モジュール１６０、有効精度の仮数値復元モジュール３１６０、加算モジュール１６５、変換モジュール１７０、ブロック統合モジュール１７５を有している。
第１−ａの復号モジュール３１５５は、有効精度の仮数値復元モジュール３１６０と接続されており、基本符号ａ３１４２を受け付ける。第１−ａの復号モジュール３１５５は、符号化装置３１００の第１−ａの符号化モジュール３１４０によって符号化された予め定められた指数値と予測誤差算出モジュール３１３５によって算出された誤差を復号する。具体的には、第１−ａの復号モジュール３１５５は、基本符号ａ：３１４２からブロック内最大指数値と予測誤差を復号する。
有効精度の仮数値復元モジュール３１６０は、第１−ａの復号モジュール３１５５、加算モジュール１６５と接続されている。有効精度の仮数値復元モジュール３１６０は、予測誤差から有効精度の仮数値を復元する。
第２の復号モジュール１６０は、加算モジュール１６５と接続されており、差分符号１４４を受け付ける。
加算モジュール１６５は、有効精度の仮数値復元モジュール３１６０、第２の復号モジュール１６０、変換モジュール１７０と接続されている。
変換モジュール１７０は、加算モジュール１６５、ブロック統合モジュール１７５と接続されている。
ブロック統合モジュール１７５は、変換モジュール１７０と接続されており、浮動小数点数データ群１９５を出力する。
【００７０】
図３２は、第３の実施の形態による処理例を示す説明図である。
予測誤差算出モジュール３１３５は、第１−ａの符号化モジュール３１４０と接続されており、有効精度の仮数値３２１０を受け付ける。
第１−ａの符号化モジュール３１４０は、予測誤差算出モジュール３１３５と接続されており、基本符号ａ３１４２を出力する。
予測誤差算出モジュール３１３５は、有効精度の仮数値と予測値との予測誤差を算出する。予測値の生成方法としては、例えば符号化済みの有効精度の仮数値を予測値として用いる方法や、複数の符号化済みの有効精度の仮数値との誤差二乗和を最小にする値を予測値として用いる方法等を用いればよい。予測誤差は、ハフマン符号や算術符号などの従来手法を用いて可逆で符号化する。データの特徴に応じて適切な予測方法を用いれば、圧縮率を高くすることができる。
【００７１】
＜第４の実施の形態＞
図３３は、第４の実施の形態の構成例についての概念的なモジュール構成図である。
前述の実施の形態では、ブロック分割モジュール１１０によって浮動小数点数データ群１０５を分割したが、必ずしもブロックに分割する必要はない。対象とする浮動小数点数データ群１０５内で、予め定められた指数値（例えば、最大の指数値等）を抽出できればよい。
【００７２】
符号化装置３３００は、浮動小数点数分離モジュール１１５、最大指数値算出モジュール３３２０、差分指数値算出モジュール１２５、仮数値分割モジュール１３０、第１の符号化モジュール１３５、第２の符号化モジュール１４０を有している。
浮動小数点数分離モジュール１１５は、最大指数値算出モジュール３３２０、仮数値分割モジュール１３０と接続されおり、浮動小数点数データ群１０５を受け付ける。
最大指数値算出モジュール３３２０は、浮動小数点数分離モジュール１１５、差分指数値算出モジュール１２５と接続されている。最大指数値算出モジュール３３２０は、対象とする浮動小数点数データ群１０５内で、最大の指数値を抽出する。
差分指数値算出モジュール１２５は、最大指数値算出モジュール３３２０、仮数値分割モジュール１３０と接続されている。
仮数値分割モジュール１３０は、浮動小数点数分離モジュール１１５、差分指数値算出モジュール１２５、第１の符号化モジュール１３５、第２の符号化モジュール１４０と接続されている。
第１の符号化モジュール１３５は、仮数値分割モジュール１３０と接続されており、基本符号１４２を出力する。
第２の符号化モジュール１４０は、仮数値分割モジュール１３０と接続されており、差分符号１４４を出力する。
【００７３】
復号装置３３５０は、第１の復号モジュール１５５、第２の復号モジュール１６０、加算モジュール１６５、変換モジュール１７０を有している。
第１の復号モジュール１５５は、加算モジュール１６５と接続されており、基本符号１４２を受け付ける。
第２の復号モジュール１６０は、加算モジュール１６５と接続されており、差分符号１４４を受け付ける。
加算モジュール１６５は、第１の復号モジュール１５５、第２の復号モジュール１６０、変換モジュール１７０と接続されている。
変換モジュール１７０は、加算モジュール１６５と接続されており、浮動小数点数データ群１９５を出力する。
【００７４】
図３４は、第４の実施の形態（符号化装置３３００）による処理例を示すフローチャートである。
ステップＳ３４０２では、浮動小数点数分離モジュール１１５は、指数値ｅと仮数値ｍを分離する。
ステップＳ３４０４では、最大指数値算出モジュール３３２０は、最大指数値ｆを算出する。
ステップＳ３４０６では、差分指数値算出モジュール１２５は、差分指数値△ｅを算出する。
ステップＳ３４０８では、仮数値分割モジュール１３０は、仮数値ｍを分割する。ステップＳ３４０８の詳細な処理内容については、図４の例に示すフローチャートを用いて前述した。
ステップＳ３４１０では、第１の符号化モジュール１３５は、圧縮Ａによる基本データの符号化を行う。
ステップＳ３４１２では、第２の符号化モジュール１４０は、圧縮Ｂによる差分データの符号化を行う。
図３４の例に示すフローチャートは、図３の例に示すフローチャートのステップＳ３０２を削除し、ステップＳ３０６をステップＳ３４０４に修正したものである。
【００７５】
図３５は、第４の実施の形態（復号装置３３５０）による処理例を示すフローチャートである。
ステップＳ３５０２では、第１の復号モジュール１５５は、伸長Ａによる基本データの復号を行う。
ステップＳ３５０４では、第２の復号モジュール１６０は、伸長Ｂによる符号データの復号を行う。
ステップＳ３５０６では、加算モジュール１６５は、データを加算する。
ステップＳ３５０８では、変換モジュール１７０は、浮動小数点数を生成する。
図３５の例に示すフローチャートは、図５の例に示すフローチャートのステップＳ５１０を削除したものである。
【００７６】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図３６に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。つまり、具体例として、処理部（演算部）としてＣＰＵ３６０１を用い、記憶装置としてＲＡＭ３６０２、ＲＯＭ３６０３、ＨＤ３６０４を用いている。ＨＤ３６０４として、例えばハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を用いてもよい。ブロック分割モジュール１１０、浮動小数点数分離モジュール１１５、ブロック内最大指数値算出モジュール１２０、差分指数値算出モジュール１２５、仮数値分割モジュール１３０、第１の符号化モジュール１３５、第２の符号化モジュール１４０、第１の復号モジュール１５５、第２の復号モジュール１６０、加算モジュール１６５、変換モジュール１７０、ブロック統合モジュール１７５、有効精度分割モジュール２７３５、第１−１の符号化モジュール２７４０、第１−２の符号化モジュール２７４５、第１−２の復号モジュール２７６０、有効精度の仮数値分割モジュール２８３５、予測誤差算出モジュール３１３５、第１−ａの符号化モジュール３１４０、第１−ａの復号モジュール３１５５、有効精度の仮数値復元モジュール３１６０等のプログラムを実行するＣＰＵ３６０１と、そのプログラムやデータを記憶するＲＡＭ３６０２と、本コンピュータを起動するためのプログラム等が格納されているＲＯＭ３６０３と、符号化対象である浮動小数点数データ群１０５、基本符号１４２、差分符号１４４、復号された浮動小数点数データ群１９５を記憶する補助記憶装置（フラッシュ・メモリ等であってもよい）であるＨＤ３６０４と、キーボード、マウス、タッチスクリーン、マイク等に対する利用者の操作に基づいてデータを受け付ける受付装置３６０６と、ＣＲＴ、液晶ディスプレイ、スピーカー等の出力装置３６０５と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース３６０７、そして、それらをつないでデータのやりとりをするためのバス３６０８により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【００７７】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、図３６に示すハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図３６に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図３６に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器（携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む）、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００７８】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分又は全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００７９】
１００…符号化装置
１１０…ブロック分割モジュール
１１５…浮動小数点数分離モジュール
１２０…ブロック内最大指数値算出モジュール
１２５…差分指数値算出モジュール
１３０…仮数値分割モジュール
１３５…第１の符号化モジュール
１４０…第２の符号化モジュール
１５０…復号装置
１５５…第１の復号モジュール
１６０…第２の復号モジュール
１６５…加算モジュール
１７０…変換モジュール
１７５…ブロック統合モジュール
２１０…スーパーコンピュータ
２２０…情報処理装置
２３０…情報処理装置
２９０…通信回線
２７００…符号化装置
２７３５…有効精度分割モジュール
２７４０…第１−１の符号化モジュール
２７４５…第１−２の符号化モジュール
２７５０…復号装置
２７５５…第１−１の復号モジュール
２７６０…第１−２の復号モジュール
２８３５…有効精度の仮数値分割モジュール
３１００…符号化装置
３１３５…予測誤差算出モジュール
３１４０…第１−ａの符号化モジュール
３１５０…復号装置
３１５５…第１−ａの復号モジュール
３１６０…有効精度の仮数値復元モジュール
３３００…符号化装置
３３２０…最大指数値算出モジュール
３３５０…復号装置
【図１】
2018019138.tif 000018
【図２】
2018019138.tif 000019
【図３】
2018019138.tif 000020
【図４】
2018019138.tif 000021
【図５】
2018019138.tif 000022
【図６】
2018019138.tif 000023
【図７】
2018019138.tif 000024
【図８】
2018019138.tif 000025
【図９】
2018019138.tif 000026
【図１０】
2018019138.tif 000027
【図１１】
2018019138.tif 000028
【図１２】
2018019138.tif 000029
【図１３】
2018019138.tif 000030
【図１４】
2018019138.tif 000031
【図１５】
2018019138.tif 000032
【図１６】
2018019138.tif 000033
【図１７】
2018019138.tif 000034
【図１８】
2018019138.tif 000035
【図１９】
2018019138.tif 000036
【図２０】
2018019138.tif 000037
【図２１】
2018019138.tif 000038
【図２２】
2018019138.tif 000039
【図２３】
2018019138.tif 000040
【図２４】
2018019138.tif 000041
【図２５】
2018019138.tif 000042
【図２６】
2018019138.tif 000043
【図２７】
2018019138.tif 000044
【図２８】
2018019138.tif 000045
【図２９】
2018019138.tif 000046
【図３０】
2018019138.tif 000047
【図３１】
2018019138.tif 000048
【図３２】
2018019138.tif 000049
【図３３】
2018019138.tif 000050
【図３４】
2018019138.tif 000051
【図３５】
2018019138.tif 000052
【図３６】
2018019138.tif 000053