JP6759802B2 - 情報処理装置及び情報処理プログラム - Google Patents
情報処理装置及び情報処理プログラム Download PDFInfo
- Publication number
- JP6759802B2 JP6759802B2 JP2016145533A JP2016145533A JP6759802B2 JP 6759802 B2 JP6759802 B2 JP 6759802B2 JP 2016145533 A JP2016145533 A JP 2016145533A JP 2016145533 A JP2016145533 A JP 2016145533A JP 6759802 B2 JP6759802 B2 JP 6759802B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- formal
- module
- data
- difference
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000010365 information processing Effects 0.000 title claims description 56
- 238000000926 separation method Methods 0.000 claims description 33
- 238000004364 calculation method Methods 0.000 description 87
- 238000012545 processing Methods 0.000 description 51
- 238000010586 diagram Methods 0.000 description 32
- 238000000034 method Methods 0.000 description 27
- 238000006243 chemical reaction Methods 0.000 description 22
- 230000006835 compression Effects 0.000 description 22
- 238000007906 compression Methods 0.000 description 22
- 238000012800 visualization Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 15
- 230000010354 integration Effects 0.000 description 15
- 238000007796 conventional method Methods 0.000 description 8
- 230000006837 decompression Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 239000002245 particle Substances 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
本発明は、浮動小数点数表現のデータを符号化する場合に、必要な精度の仮数値とそれ以上の精度の仮数値に分けて符号化するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
請求項1の発明は、浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、予め定められた指数値と各データの指数値との差分を抽出する差分手段と、前記差分にしたがって、各データの仮数値を上位の第1の仮数値と下位の第2の仮数値に分割する分割手段と、前記予め定められた指数値と第1の仮数値を符号化する第1の符号化手段と、各データの前記差分と第2の仮数値を符号化する第2の符号化手段を有する情報処理装置である。
<第1の実施の形態>
図1は、第1の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
精度とは、浮動小数点数において、仮数部の最下位の値が示す桁である。例えば1.2345e−05は、1.2345e−05=12345e−09となり、精度はe−09となる。
仮数値とは、仮数部からなる整数値である。
指数値とは、指数部からなる整数値である。
有効精度とは、ユーザーが指定する任意の精度である。本実施の形態では、ブロック内の最低精度(浮動小数点のデータのブロック内の最大の指数値)を有効精度として用いている。
無効精度とは、有効精度より高い精度である。
ブロック内最大指数値とは、ブロック内で最大の指数値である。
差分指数値とは、ブロック内最大指数値と指数値との差分である。
差分有効精度の仮数値とは、有効精度の仮数値と予測値との差分である。
基本符号とは、ブロック内最大指数値と有効精度の仮数値を符号化したデータである。
基本符号1とは、ブロック内最大指数値と分割された有効精度の仮数値の中で最低精度の仮数値を符号化したデータである。
基本符号m(m≧2)とは、ブロック内最大指数値と分割された有効精度の仮数値の中で最低精度以外の仮数値を符号化したデータである。
基本符号aとは、ブロック内最大指数値と有効精度の仮数値の予測誤差を符号化したデータである。
差分符号とは、差分指数値と無効精度の仮数値を符号化したデータである。
ブロック分割モジュール110は、浮動小数点数分離モジュール115と接続されている。ブロック分割モジュール110は、浮動小数点数データ群105を受け付け、その浮動小数点数データ群105をブロックに分割する。なお、ここで、ブロックとは、予め定められた数のデータの集合である。
浮動小数点数分離モジュール115は、ブロック分割モジュール110、ブロック内最大指数値算出モジュール120、仮数値分割モジュール130と接続されている。浮動小数点数分離モジュール115は、浮動小数点数表現のデータを指数値と仮数値に分離する。第1の実施の形態では、ブロック分割モジュール110によってブロックに分割された浮動小数点数データ群105を指数値と仮数値に分離する。
差分指数値算出モジュール125は、ブロック内最大指数値算出モジュール120、仮数値分割モジュール130と接続されている。差分指数値算出モジュール125は、予め定められた指数値と各データの指数値との差分を抽出する。
なお、ここで「予め定められた指数値」として、対象とする複数の浮動小数点数のデータ内の最大の指数値(ブロック内最大指数値算出モジュール120による処理結果である最大の指数値)としてもよい。この場合、ブロック内最大指数値とブロック内の各データの指数値との差分(差分指数値)を算出することになる。
また、仮数値分割モジュール130は、第2の仮数値として、浮動小数点数のデータの仮数値の下位の差分の桁数の値とし、第1の仮数値として、残りの上位の桁数の値としてもよい。
なお、第1の符号化モジュール135は、差分指数値算出モジュール125による処理結果である差分が0でない場合は、予め定められた指数値と差分と第1の仮数値を符号化するようにしてもよい。
第2の符号化モジュール140は、仮数値分割モジュール130と接続されており、差分符号144を出力する。第2の符号化モジュール140は、各データの差分と第2の仮数値を符号化する。具体的には、第2の符号化モジュール140は、ブロックの差分指数値と無効精度の仮数値を符号化する。
第2の復号モジュール160は、加算モジュール165と接続されており、差分符号144を受け付ける。第2の復号モジュール160は、符号化装置100の第2の符号化モジュール140によって符号化された差分と第2の仮数値を復号する。具体的には、第2の復号モジュール160は、差分符号144から差分指数値と無効精度の仮数値を復号する。
変換モジュール170は、加算モジュール165、ブロック統合モジュール175と接続されている。変換モジュール170は、加算モジュール165による処理結果を浮動小数点数表現に変換する。
ブロック統合モジュール175は、変換モジュール170と接続されており、浮動小数点数データ群195を出力する。ブロック統合モジュール175は、ブロックを統合して、浮動小数点数データ群195を生成する。つまり、ブロック分割モジュール110の逆処理を行う。なお、基本符号142と差分符号144の両方を復号した場合は、浮動小数点数データ群105と浮動小数点数データ群195は同じになる(いわゆる可逆圧縮伸長)。基本符号142だけを復号した場合は、浮動小数点数データ群195の精度は浮動小数点数データ群105の精度以下である(いわゆる非可逆圧縮伸長)。
スーパーコンピュータ210A、スーパーコンピュータ210B内の符号化装置100B、情報処理装置220内の符号化装置100A、情報処理装置230D内の復号装置150D、情報処理装置230E内の復号装置150Eは、通信回線290を介してそれぞれ接続されている。通信回線290は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。また、スーパーコンピュータ210による機能は、クラウドサービスとして実現してもよい。
情報処理装置220、情報処理装置230A、情報処理装置230B、情報処理装置230Cは、それぞれ接続されている。
スーパーコンピュータ210Bは、符号化装置100Bを有している。情報処理装置220は、符号化装置100Aを有している。情報処理装置230Aは、復号装置150Aを有している。情報処理装置230Bは、復号装置150Bを有している。情報処理装置230Cは、復号装置150Cを有している。情報処理装置230Dは、復号装置150Dを有している。情報処理装置230Eは、復号装置150Eを有している。
スーパーコンピュータ210Aは処理結果である浮動小数点数データ群105を、情報処理装置220に送信する。情報処理装置220の符号化装置100Aでは符号化を行って、基本符号142、差分符号144を、情報処理装置230A、情報処理装置230B、情報処理装置230Cに送信する。情報処理装置230Aは、原子運動の可視化処理を行うので、復号装置150Aは基本符号142だけを復号して、浮動小数点数データ群195の可視化処理を行う。可視化処理に差分符号144までの精度は必要ないからである。情報処理装置230Bは、解析処理によりさらに数値計算を行うので、復号装置150Bは基本符号142、差分符号144を復号して、浮動小数点数データ群195(浮動小数点数データ群105と同じ精度のデータ)を用いた数値計算を行う。情報処理装置230Cは、可視化処理とともに解析処理によりさらに数値計算を行うので、可視化処理を行う場合は、復号装置150Cは基本符号142だけを復号して、浮動小数点数データ群195の可視化処理を行う。解析処理を行う場合は、基本符号142、差分符号144を復号して、浮動小数点数データ群195を用いた数値計算を行う。
スーパーコンピュータ210Bは、そのスーパーコンピュータ210Bによる処理結果を符号化装置100Bで符号化して、情報処理装置230D、情報処理装置230Eに送信する。情報処理装置230Dは、原子運動の可視化処理を行うので、復号装置150Dは基本符号142だけを復号して、浮動小数点数データ群195の可視化処理を行う。情報処理装置230Eは、解析処理によりさらに数値計算を行うので、復号装置150Eは基本符号142、差分符号144を復号して、浮動小数点数データ群195を用いた数値計算を行う。
ステップS302では、ブロック分割モジュール110は、ブロックに分割する。
ステップS304では、浮動小数点数分離モジュール115は、指数値eと仮数値mを分離する。
ステップS306では、ブロック内最大指数値算出モジュール120は、ブロック内最大指数値fを算出する。
ステップS308では、差分指数値算出モジュール125は、差分指数値△eを算出する。
ステップS310では、仮数値分割モジュール130は、仮数値mを分割する。ステップS310の詳細な処理内容については、図4の例に示すフローチャートを用いて後述する。
ステップS312では、第1の符号化モジュール135は、圧縮Aによる基本データの符号化を行う。
ステップS314では、第2の符号化モジュール140は、圧縮Bによる差分データの符号化を行う。
ステップS402では、仮数値分割モジュール130は、有効精度の仮数値m1を算出する。具体的には、m1=[m/10∧△e]によって、仮数値m1を算出する。
ステップS404では、仮数値分割モジュール130は、無効精度の仮数値m2を算出する。具体的には、m2=m−m1*10∧△eによって、仮数値m2を算出する。
ステップS502では、第1の復号モジュール155は、伸長Aによる基本データの復号を行う。
ステップS504では、第2の復号モジュール160は、伸長Bによる符号データの復号を行う。
ステップS506では、加算モジュール165は、データを加算する。
ステップS508では、変換モジュール170は、浮動小数点数を生成する。
ステップS510では、ブロック統合モジュール175は、ブロックを統合する。
図6は、数値計算結果の例を示す説明図である。図6は、特定の環境下における1つの粒子がX軸上を動いていく様子を表している。横軸に時間[sec]、縦軸にX座標値を示している。図7は、図6の粒子のX座標値を有効数字5桁の浮動小数点数形式で時系列順に並べたデータである。図7は、処理結果テーブル700のデータ構造例を示す説明図である。処理結果テーブル700は、時間[sec]欄710、X座標値[mm]欄720を有している。時間[sec]欄710は、時間[sec]を記憶している。X座標値[mm]欄720は、X座標値[mm]を記憶している。
本例では、図7のX座標値を入力データ(浮動小数点数データ群105)とする。以降では各時間対する粒子のX座標値を要素と呼ぶことにする。
ブロック分割モジュール110は、入力データ(浮動小数点数データ群105)を、ブロックに分割する。本例では、図8の例に示すように、時間軸を基準にして5つの要素毎(ブロック810、ブロック820)に分割する。以降では、ブロック810に注目して説明する。
図9は、処理結果テーブル(ブロック)900のデータ構造例を示す説明図である。処理結果テーブル(ブロック)900は、時間[sec]欄910、X座標値[mm]欄920を有している。時間[sec]欄910は、時間[sec]を記憶している。X座標値[mm]欄920は、X座標値[mm]を記憶している。
図10は、指数値テーブル1000のデータ構造例を示す説明図である。指数値テーブル1000は、時間[sec]欄1010、指数値欄1020を有している。時間[sec]欄1010は、時間[sec]を記憶している。指数値欄1020は、指数値を記憶している。
図11は、仮数値テーブル1100のデータ構造例を示す説明図である。仮数値テーブル1100は、時間[sec]欄1110、仮数値欄1120を有している。時間[sec]欄1110は、時間[sec]を記憶している。仮数値欄1120は、仮数値を記憶している。
図13は、有効精度の仮数値テーブル1300のデータ構造例を示す説明図である。有効精度の仮数値テーブル1300は、時間[sec]欄1310、有効精度の仮数値欄1320を有している。時間[sec]欄1310は、時間[sec]を記憶している。有効精度の仮数値欄1320は、有効精度の仮数値(上位の仮数値)を記憶している。図14は、無効精度の仮数値テーブル1400のデータ構造例を示す説明図である。無効精度の仮数値テーブル1400は、時間[sec]欄1410、無効精度の仮数値欄1420を有している。時間[sec]欄1410は、時間[sec]を記憶している。無効精度の仮数値欄1420は、無効精度の仮数値(下位の仮数値)を記憶している。
図15は、予測誤差テーブル1500のデータ構造例を示す説明図である。
予測誤差テーブル1500は、時間[sec]欄1510、有効精度の仮数値の予測誤差欄1520を有している。時間[sec]欄1510は、時間[sec]を記憶している。有効精度の仮数値の予測誤差欄1520は、有効精度の仮数値の予測誤差を記憶している。
図16は、基本符号の符号化データ1600のデータ構造例(基本符号の符号化データの構造例(有効精度の仮数値の予測を行わない場合))を示す説明図である。基本符号の符号化データ1600は、ブロック内最大指数値1610と有効精度の仮数値1620により構成されている。
図17は、差分符号の符号化データ1700のデータ構造例(差分符号の符号化データの構造例)を示す説明図である。差分符号の符号化データ1700は、差分指数値1710と無効精度の仮数値1720により構成されている。
図18は、基本符号の符号化データ1800のデータ構造例(基本符号の符号化データの構造例(有効精度の仮数値の予測を行う場合))を示す説明図である。基本符号の符号化データ1800は、ブロック内最大指数値1810と有効精度の仮数値の予測誤差1820により構成されている。
まず、有効精度のデータを取得する方法を説明する。第1の復号モジュール155は、時間tにおける基本符号を復号して、注目ブロックのブロック内最大指数値f’及び有効精度の仮数値m1’(t)を得る。時間tにおける指数値e’(t)及び仮数値m’(t)は、式(8)及び式(9)で定義される。
図19は、指数値テーブル1900のデータ構造例を示す説明図である。指数値テーブル1900は、時間[sec]欄1910、指数値欄1920を有している。時間[sec]欄1910は、時間[sec]を記憶している。指数値欄1920は、指数値を記憶している。
図20は、有効精度の仮数値テーブル2000のデータ構造例を示す説明図である。有効精度の仮数値テーブル2000は、時間[sec]欄2010、有効精度の仮数値欄2020を有している。時間[sec]欄2010は、時間[sec]を記憶している。有効精度の仮数値欄2020は、有効精度の仮数値を記憶している。
変換モジュール170は、ブロック内最大指数値及び有効精度の仮数値を浮動小数点数に変換する。時間t、有効数字N桁とする。時間tの浮動小数点数データをF’(t)とすると、 F’(t)は式(12)のように表す。
図21は、有効精度データテーブル2100のデータ構造例を示す説明図である。有効精度データテーブル2100は、時間[sec]欄2110、X座標値[mm]欄2120を有している。時間[sec]欄2110は、時間[sec]を記憶している。X座標値[mm]欄2120は、X座標値[mm]を記憶している。
図22は、有効精度データテーブル2200のデータ構造例を示す説明図である。有効精度データテーブル2200は、時間[sec]欄2210、X座標値[mm]欄2220を有している。時間[sec]欄2210は、時間[sec]を記憶している。X座標値[mm]欄2220は、X座標値[mm]を記憶している。
時間tにおける差分指数値を△e’’(t)及び無効精度の仮数値をm2’’(t)とする。第2の復号モジュール160は、差分符号144から差分指数値△e’’(t)及び無効精度の仮数値m2’’(t)を復元する。そして、加算モジュール165は、有効精度のデータに無効精度の差分指数値△e’’(t)及び無効精度の仮数値m2’’(t)を、加算モジュール165が加算することで、有効精度のデータの指数値e(t)’’と有効精度の仮数値m’’(t)を、式(13)と式(14)から復元する。
図23は、指数値テーブル2300のデータ構造例を示す説明図である。指数値テーブル2300は、時間[sec]欄2310、指数値欄2320を有している。時間[sec]欄2310は、時間[sec]を記憶している。指数値欄2320は、指数値を記憶している。
図24は、有効精度の仮数値テーブル2400のデータ構造例を示す説明図である。有効精度の仮数値テーブル2400は、時間[sec]欄2410、有効精度の仮数値欄2420を有している。時間[sec]欄2410は、時間[sec]を記憶している。有効精度の仮数値欄2420は、有効精度の仮数値を記憶している。
図26は、有効精度データテーブル2600(復号されたデータ)のデータ構造例を示す説明図である。有効精度データテーブル2600は、時間[sec]欄2610、X座標値[mm]欄2620を有している。時間[sec]欄2610は、時間[sec]を記憶している。X座標値[mm]欄2620は、X座標値[mm]を記憶している。
図27は、第2の実施の形態の構成例についての概念的なモジュール構成図である。
なお、前述の実施の形態と同種の部位には同一符号を付し重複した説明を省略する(以下、同様)。
符号化装置2700は、ブロック分割モジュール110、浮動小数点数分離モジュール115、ブロック内最大指数値算出モジュール120、差分指数値算出モジュール125、仮数値分割モジュール130、有効精度分割モジュール2735、第1−1の符号化モジュール2740、第1−2の符号化モジュール2745、第2の符号化モジュール140を有している。符号化装置2700は、符号化装置100に、有効精度分割モジュール2735、第1−2の符号化モジュール2745等を付加したものである。
浮動小数点数分離モジュール115は、ブロック分割モジュール110、ブロック内最大指数値算出モジュール120、仮数値分割モジュール130と接続されている。
ブロック内最大指数値算出モジュール120は、浮動小数点数分離モジュール115、差分指数値算出モジュール125と接続されている。
差分指数値算出モジュール125は、ブロック内最大指数値算出モジュール120、仮数値分割モジュール130と接続されている。
仮数値分割モジュール130は、浮動小数点数分離モジュール115、差分指数値算出モジュール125、有効精度分割モジュール2735と接続されている。
有効精度分割モジュール2735は、仮数値分割モジュール130、第1−1の符号化モジュール2740、第1−2の符号化モジュール2745、第2の符号化モジュール140と接続されている。有効精度分割モジュール2735は、第1の仮数値を分割する。具体的には、有効精度分割モジュール2735は、有効精度を任意の精度に分割する。これによって、有効精度を複数の精度に分割することができるようになる。
第1−1の符号化モジュール2740は、有効精度分割モジュール2735と接続されており、基本符号1:2742を出力する。第1−1の符号化モジュール2740は、前述の予め定められた指数値と有効精度分割モジュール2735によって分割された最上位の仮数値を符号化する。具体的には、第1−1の符号化モジュール2740は、ブロック内最大指数値と分割された最低精度の有効精度の仮数値を符号化する。
第1−2の符号化モジュール2745は、有効精度分割モジュール2735と接続されており、基本符号m:2742−mを出力する。第1−2の符号化モジュール2745は、有効精度分割モジュール2735によって分割された最上位の仮数値以外の仮数値を符号化する。具体的には、第1−2の符号化モジュール2745は、有効精度の仮数値を符号化する。
第2の符号化モジュール140は、有効精度分割モジュール2735と接続されており、差分符号144を出力する。
第1−1の復号モジュール2755は、加算モジュール165と接続されており、基本符号1:2742を受け付ける。第1−1の復号モジュール2755は、符号化装置2700の第1−1の符号化モジュール2740によって符号化された予め定められた指数値と有効精度分割モジュール2735によって分割された最上位の仮数値を復号する。具体的には、第1−1の復号モジュール2755は、基本符号1:2742からブロック内最大指数値と分割された有効精度の仮数値の中で最低精度の仮数値を復号する。
第1−2の復号モジュール2760は、加算モジュール165と接続されており、基本符号m:2742−mを受け付ける。第1−2の復号モジュール2760は、符号化装置2700の第1−2の符号化モジュール2745によって符号化された有効精度分割モジュール2735によって分割された最上位の仮数値以外の仮数値を符号化する。具体的には、第1−2の復号モジュール2760は、基本符号m:2742−mから分割された有効精度の仮数値の中で最低精度以外の仮数値を復号する。
第2の復号モジュール160は、加算モジュール165と接続されており、差分符号144を受け付ける。
加算モジュール165は、第1−1の復号モジュール2755、第1−2の復号モジュール2760、第2の復号モジュール160、変換モジュール170と接続されている。
変換モジュール170は、加算モジュール165、ブロック統合モジュール175と接続されている。
ブロック統合モジュール175は、変換モジュール170と接続されており、浮動小数点数データ群195を出力する。
有効精度分割モジュール2735は、有効精度の仮数値分割モジュール2835を有している。
有効精度の仮数値分割モジュール2835は、第1−1の符号化モジュール2740、第1−2の符号化モジュール2745と接続されている。有効精度の仮数値分割モジュール2835は、N桁の有効精度の仮数値2810を受け付け、そのN桁の有効精度の仮数値2810をk(2≦k≦M)個に分割し、第1の仮数値2837を第1−1の符号化モジュール2740に渡し、第m(m=1…k)の仮数値2839を第1−2の符号化モジュール2745に渡す。
第1−1の符号化モジュール2740は、有効精度分割モジュール2735の有効精度の仮数値分割モジュール2835と接続されており、有効精度の仮数値分割モジュール2835から第1の仮数値2837を受け取り、基本符号1:2742を出力する。
第1−2の符号化モジュール2745は、有効精度分割モジュール2735の有効精度の仮数値分割モジュール2835と接続されており、有効精度の仮数値分割モジュール2835から第m(m=1…k)の仮数値2839を受け取り、基本符号2:2842−2、基本符号3:2842−3、基本符号k−1:2842−k−1、基本符号k:2842−kを出力する。
図31は、第3の実施の形態の構成例についての概念的なモジュール構成図である。
符号化装置3100は、ブロック分割モジュール110、浮動小数点数分離モジュール115、ブロック内最大指数値算出モジュール120、差分指数値算出モジュール125、仮数値分割モジュール130、予測誤差算出モジュール3135、第1−aの符号化モジュール3140、第2の符号化モジュール140を有している。符号化装置3100は、符号化装置100に予測誤差算出モジュール3135を付加したものである。第1の実施の形態の説明で、式(6)、式(7)、図15、図18の例を用いて説明した処理を行うものである。
ブロック分割モジュール110は、浮動小数点数分離モジュール115と接続されており、浮動小数点数データ群105を受け付ける。
浮動小数点数分離モジュール115は、ブロック分割モジュール110、ブロック内最大指数値算出モジュール120、仮数値分割モジュール130と接続されている。
ブロック内最大指数値算出モジュール120は、浮動小数点数分離モジュール115、差分指数値算出モジュール125と接続されている。
差分指数値算出モジュール125は、ブロック内最大指数値算出モジュール120、仮数値分割モジュール130と接続されている。
仮数値分割モジュール130は、浮動小数点数分離モジュール115、差分指数値算出モジュール125、予測誤差算出モジュール3135と接続されている。
予測誤差算出モジュール3135は、仮数値分割モジュール130、第1−aの符号化モジュール3140、第2の符号化モジュール140と接続されている。予測誤差算出モジュール3135は、第1の仮数値又は第2の仮数値と予測値との誤差を算出する。具体的には、予測誤差算出モジュール3135は、有効精度の仮数値と予測値との予測誤差を算出する。これによって、データ列で同じ仮数値が連続する場合に圧縮率を高くすることができる。
第1−aの符号化モジュール3140は、予測誤差算出モジュール3135と接続されており、基本符号a3142を出力する。第1−aの符号化モジュール3140は、予め定められた指数値と予測誤差算出モジュール3135によって算出された誤差を符号化する。具体的には、第1−aの符号化モジュール3140は、ブロック内最大指数値と予測誤差を符号化する。
第2の符号化モジュール140は、予測誤差算出モジュール3135と接続されており、差分符号144を出力する。第2の符号化モジュール140は、予測誤差算出モジュール3135によって算出された誤差を符号化する。
第1−aの復号モジュール3155は、有効精度の仮数値復元モジュール3160と接続されており、基本符号a3142を受け付ける。第1−aの復号モジュール3155は、符号化装置3100の第1−aの符号化モジュール3140によって符号化された予め定められた指数値と予測誤差算出モジュール3135によって算出された誤差を復号する。具体的には、第1−aの復号モジュール3155は、基本符号a:3142からブロック内最大指数値と予測誤差を復号する。
有効精度の仮数値復元モジュール3160は、第1−aの復号モジュール3155、加算モジュール165と接続されている。有効精度の仮数値復元モジュール3160は、予測誤差から有効精度の仮数値を復元する。
第2の復号モジュール160は、加算モジュール165と接続されており、差分符号144を受け付ける。
加算モジュール165は、有効精度の仮数値復元モジュール3160、第2の復号モジュール160、変換モジュール170と接続されている。
変換モジュール170は、加算モジュール165、ブロック統合モジュール175と接続されている。
ブロック統合モジュール175は、変換モジュール170と接続されており、浮動小数点数データ群195を出力する。
予測誤差算出モジュール3135は、第1−aの符号化モジュール3140と接続されており、有効精度の仮数値3210を受け付ける。
第1−aの符号化モジュール3140は、予測誤差算出モジュール3135と接続されており、基本符号a3142を出力する。
予測誤差算出モジュール3135は、有効精度の仮数値と予測値との予測誤差を算出する。予測値の生成方法としては、例えば符号化済みの有効精度の仮数値を予測値として用いる方法や、複数の符号化済みの有効精度の仮数値との誤差二乗和を最小にする値を予測値として用いる方法等を用いればよい。予測誤差は、ハフマン符号や算術符号などの従来手法を用いて可逆で符号化する。データの特徴に応じて適切な予測方法を用いれば、圧縮率を高くすることができる。
図33は、第4の実施の形態の構成例についての概念的なモジュール構成図である。
前述の実施の形態では、ブロック分割モジュール110によって浮動小数点数データ群105を分割したが、必ずしもブロックに分割する必要はない。対象とする浮動小数点数データ群105内で、予め定められた指数値(例えば、最大の指数値等)を抽出できればよい。
浮動小数点数分離モジュール115は、最大指数値算出モジュール3320、仮数値分割モジュール130と接続されおり、浮動小数点数データ群105を受け付ける。
最大指数値算出モジュール3320は、浮動小数点数分離モジュール115、差分指数値算出モジュール125と接続されている。最大指数値算出モジュール3320は、対象とする浮動小数点数データ群105内で、最大の指数値を抽出する。
差分指数値算出モジュール125は、最大指数値算出モジュール3320、仮数値分割モジュール130と接続されている。
仮数値分割モジュール130は、浮動小数点数分離モジュール115、差分指数値算出モジュール125、第1の符号化モジュール135、第2の符号化モジュール140と接続されている。
第1の符号化モジュール135は、仮数値分割モジュール130と接続されており、基本符号142を出力する。
第2の符号化モジュール140は、仮数値分割モジュール130と接続されており、差分符号144を出力する。
第1の復号モジュール155は、加算モジュール165と接続されており、基本符号142を受け付ける。
第2の復号モジュール160は、加算モジュール165と接続されており、差分符号144を受け付ける。
加算モジュール165は、第1の復号モジュール155、第2の復号モジュール160、変換モジュール170と接続されている。
変換モジュール170は、加算モジュール165と接続されており、浮動小数点数データ群195を出力する。
ステップS3402では、浮動小数点数分離モジュール115は、指数値eと仮数値mを分離する。
ステップS3404では、最大指数値算出モジュール3320は、最大指数値fを算出する。
ステップS3406では、差分指数値算出モジュール125は、差分指数値△eを算出する。
ステップS3408では、仮数値分割モジュール130は、仮数値mを分割する。ステップS3408の詳細な処理内容については、図4の例に示すフローチャートを用いて前述した。
ステップS3410では、第1の符号化モジュール135は、圧縮Aによる基本データの符号化を行う。
ステップS3412では、第2の符号化モジュール140は、圧縮Bによる差分データの符号化を行う。
図34の例に示すフローチャートは、図3の例に示すフローチャートのステップS302を削除し、ステップS306をステップS3404に修正したものである。
ステップS3502では、第1の復号モジュール155は、伸長Aによる基本データの復号を行う。
ステップS3504では、第2の復号モジュール160は、伸長Bによる符号データの復号を行う。
ステップS3506では、加算モジュール165は、データを加算する。
ステップS3508では、変換モジュール170は、浮動小数点数を生成する。
図35の例に示すフローチャートは、図5の例に示すフローチャートのステップS510を削除したものである。
なお、図36に示すハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図36に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図36に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器(携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む)、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分又は全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
110…ブロック分割モジュール
115…浮動小数点数分離モジュール
120…ブロック内最大指数値算出モジュール
125…差分指数値算出モジュール
130…仮数値分割モジュール
135…第1の符号化モジュール
140…第2の符号化モジュール
150…復号装置
155…第1の復号モジュール
160…第2の復号モジュール
165…加算モジュール
170…変換モジュール
175…ブロック統合モジュール
210…スーパーコンピュータ
220…情報処理装置
230…情報処理装置
290…通信回線
2700…符号化装置
2735…有効精度分割モジュール
2740…第1−1の符号化モジュール
2745…第1−2の符号化モジュール
2750…復号装置
2755…第1−1の復号モジュール
2760…第1−2の復号モジュール
2835…有効精度の仮数値分割モジュール
3100…符号化装置
3135…予測誤差算出モジュール
3140…第1−aの符号化モジュール
3150…復号装置
3155…第1−aの復号モジュール
3160…有効精度の仮数値復元モジュール
3300…符号化装置
3320…最大指数値算出モジュール
3350…復号装置
Claims (7)
- 浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、
予め定められた指数値と各データの指数値との差分を抽出する差分手段と、
前記差分にしたがって、各データの仮数値を上位の第1の仮数値と下位の第2の仮数値に分割する分割手段と、
前記予め定められた指数値と第1の仮数値を符号化する第1の符号化手段と、
各データの前記差分と第2の仮数値を符号化する第2の符号化手段
を有する情報処理装置。 - 予め定められた指数値として、対象とする複数の浮動小数点数のデータ内の最大の指数値とする、
請求項1に記載の情報処理装置。 - 前記分割手段は、第2の仮数値として、浮動小数点数のデータの仮数値の下位の差分の桁数の値とし、第1の仮数値として、残りの上位の桁数の値とする、
請求項1又は2に記載の情報処理装置。 - 浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、
予め定められた指数値と各データの指数値との差分を抽出する差分手段と、
前記差分にしたがって、各データの仮数値を上位の第1の仮数値と下位の第2の仮数値に分割する分割手段と、
前記第1の仮数値を分割する第2の分割手段と、
前記予め定められた指数値と前記第2の分割手段によって分割された最上位の仮数値を符号化する第1の符号化手段と、
各データの前記差分と第2の仮数値を符号化する第2の符号化手段と、
前記第2の分割手段によって分割された最上位の仮数値以外の仮数値を符号化する第3の符号化手段
を有する情報処理装置。 - 前記第1の仮数値又は前記第2の仮数値と予測値との誤差を算出する予測誤差算出手段
をさらに有し、
前記第1の符号化手段又は第2の符号化手段は、前記誤差を符号化する、
請求項1から3のいずれか一項に記載の情報処理装置。 - コンピュータを、
浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、
予め定められた指数値と各データの指数値との差分を抽出する差分手段と、
前記差分にしたがって、各データの仮数値を上位の第1の仮数値と下位の第2の仮数値に分割する分割手段と、
前記予め定められた指数値と第1の仮数値を符号化する第1の符号化手段と、
各データの前記差分と第2の仮数値を符号化する第2の符号化手段
として機能させるための情報処理プログラム。 - コンピュータを、
浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、
予め定められた指数値と各データの指数値との差分を抽出する差分手段と、
前記差分にしたがって、各データの仮数値を上位の第1の仮数値と下位の第2の仮数値に分割する分割手段と、
前記第1の仮数値を分割する第2の分割手段と、
前記予め定められた指数値と前記第2の分割手段によって分割された最上位の仮数値を符号化する第1の符号化手段と、
各データの前記差分と第2の仮数値を符号化する第2の符号化手段と、
前記第2の分割手段によって分割された最上位の仮数値以外の仮数値を符号化する第3の符号化手段
として機能させるための情報処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016145533A JP6759802B2 (ja) | 2016-07-25 | 2016-07-25 | 情報処理装置及び情報処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016145533A JP6759802B2 (ja) | 2016-07-25 | 2016-07-25 | 情報処理装置及び情報処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018019138A JP2018019138A (ja) | 2018-02-01 |
JP6759802B2 true JP6759802B2 (ja) | 2020-09-23 |
Family
ID=61076488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016145533A Expired - Fee Related JP6759802B2 (ja) | 2016-07-25 | 2016-07-25 | 情報処理装置及び情報処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6759802B2 (ja) |
-
2016
- 2016-07-25 JP JP2016145533A patent/JP6759802B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2018019138A (ja) | 2018-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1638209B1 (en) | Lossless coding method for digital signal in floating-point, decoding method, apparatus therefor, and programs therefor | |
EP1622275B1 (en) | Floating point type digital signal reversible encoding method, decoding method, devices for them, and programs for them | |
JP6242074B2 (ja) | 信号データの圧縮および圧縮解除のための方法および装置(信号データの圧縮および圧縮解除) | |
RU2016105691A (ru) | Устройство и способ для эффективного кодирования метаданных объектов | |
KR20070090165A (ko) | 디지털 이미지의 무손실 압축을 위한 시스템 및 방법 | |
KR20150092585A (ko) | 이진 영상에 기반한 유전체 데이터 압축 방법 및 장치 | |
US20240185872A1 (en) | Method and apparatus for decoding a bitstream including encoded higher order ambisonics representations | |
US8947274B2 (en) | Encoding apparatus, decoding apparatus, encoding method, encoding program, decoding method, and decoding program | |
US8525706B2 (en) | Method and apparatus for encoding and decoding data | |
JP6759802B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP4179638B2 (ja) | デジタル情報信号の算術エンコーディング/デコーディング | |
WO2003081196A1 (en) | Hierarchical lossless encoding/decoding method, hierarchical lossless encoding method, hierarchical lossless decoding method, its apparatus, and program | |
CN100530977C (zh) | 对数据进行编码和译码的方法和装置 | |
JP5842357B2 (ja) | 画像処理装置及び画像処理プログラム | |
CN100459460C (zh) | 对数据进行编码和译码的方法和装置 | |
JP6729299B2 (ja) | ピッチ抽出装置及びピッチ抽出方法 | |
JP5057334B2 (ja) | 線形予測係数算出装置、線形予測係数算出方法、線形予測係数算出プログラム、および記憶媒体 | |
US9729880B2 (en) | Information processing apparatus, information processing method, and storage medium | |
KR102250835B1 (ko) | 수동 소나의 협대역 신호를 탐지하기 위한 lofar 또는 demon 그램의 압축 장치 | |
US20110026545A1 (en) | Method and apparatus for encoding and decoding data with altered bit sequence | |
JP2007336056A (ja) | 符号化装置、符号化方法及びプログラム | |
JP4139704B2 (ja) | 時系列信号の符号化装置および復号装置 | |
WO2019198383A1 (ja) | 符号化装置、復号装置、符号化方法、復号方法、プログラム、および記録媒体 | |
JP3889738B2 (ja) | 逆量子化装置、オーディオ復号化装置、画像復号化装置、逆量子化方法および逆量子化プログラム | |
JP2633683B2 (ja) | ベクトル量子化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190520 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200515 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200623 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200714 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200804 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200817 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6759802 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |