[go: up one dir, main page]

JP2018019138A - Information processing apparatus, information processing system and information processing program - Google Patents

Information processing apparatus, information processing system and information processing program Download PDF

Info

Publication number
JP2018019138A
JP2018019138A JP2016145533A JP2016145533A JP2018019138A JP 2018019138 A JP2018019138 A JP 2018019138A JP 2016145533 A JP2016145533 A JP 2016145533A JP 2016145533 A JP2016145533 A JP 2016145533A JP 2018019138 A JP2018019138 A JP 2018019138A
Authority
JP
Japan
Prior art keywords
value
mantissa
data
module
encoding
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.)
Granted
Application number
JP2016145533A
Other languages
Japanese (ja)
Other versions
JP6759802B2 (en
Inventor
碧唯 加茂
Aoi Kamo
碧唯 加茂
横瀬 太郎
Taro Yokose
太郎 横瀬
圭悟 服部
Keigo Hattori
圭悟 服部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2016145533A priority Critical patent/JP6759802B2/en
Publication of JP2018019138A publication Critical patent/JP2018019138A/en
Application granted granted Critical
Publication of JP6759802B2 publication Critical patent/JP6759802B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】浮動小数点数表現のデータを符号化する場合に、必要な精度の仮数値とそれ以上の精度の仮数値に分けて符号化するようにした情報処理装置を提供する。【解決手段】情報処理装置の分離手段は、浮動小数点数表現のデータを指数値と仮数値に分離し、差分手段は、予め定められた指数値と各データの指数値との差分を抽出し、分割手段は、前記差分にしたがって、各データの仮数値を上位の第1の仮数値と下位の第2の仮数値に分割し、第1の符号化手段は、前記予め定められた指数値と第1の仮数値を符号化し、第2の符号化手段は、各データの前記差分と第2の仮数値を符号化する。【選択図】図1PROBLEM TO BE SOLVED: To provide an information processing apparatus for encoding data represented by a floating-point number by dividing it into a formal value having a required accuracy and a formal value having a higher accuracy. SOLUTION: A separation means of an information processing apparatus separates data in a floating point number representation into an exponential value and a formal value, and a difference means extracts a difference between a predetermined exponential value and an exponential value of each data. , The dividing means divides the formal value of each data into the upper first formal value and the lower second formal value according to the difference, and the first coding means is the predetermined exponential value. And the first formal value are encoded, and the second coding means encodes the difference of each data and the second formal value. [Selection diagram] Fig. 1

Description

本発明は、情報処理装置、情報処理システム及び情報処理プログラムに関する。   The present invention relates to an information processing apparatus, an information processing system, and an information processing program.

特許文献1には、各サンプルが極性、8ビットの指数部、23ビットの仮数部よりなる浮動小数点形式デジタル信号サンプルXを、整数化部で丸めて整数形式のデジタル信号サンプルYに変換し、デジタル信号サンプルYの系列を圧縮部で可逆圧縮符号化して符号列Caを出力し、デジタル信号サンプルYを浮動小数点形式のデジタル信号サンプルX′に浮動小数点化部で変換し、デジタル信号サンプルX′とデジタル信号サンプルXとの差分信号を減算部で求め、差分信号を可逆符号化して符号列Cbを出力することが開示されている。   In Patent Document 1, a floating-point format digital signal sample X in which each sample has a polarity, an 8-bit exponent part, and a 23-bit mantissa part is rounded by an integer conversion unit and converted into an integer-format digital signal sample Y. The sequence of the digital signal samples Y is losslessly encoded by the compression unit to output a code string Ca, the digital signal samples Y are converted into the digital signal samples X ′ in the floating point format by the floating point conversion unit, and the digital signal samples X ′ And a digital signal sample X are obtained by a subtracting unit, the difference signal is losslessly encoded, and a code string Cb is output.

特許文献2には、浮動小数点数のデータ値(可逆圧縮する目的のデータ値)の指数値と符号化に用いる予測値の指数値とが異なる場合であっても、圧縮率を低下させずにデータ値を可逆圧縮(符号化)できるようにすることを目的とし、符号化装置は、指数値と仮数値とを用いて表される浮動小数点数の値であって符号化する目的の値であるデータ値を記憶するデータ値記憶部と、前記データ値記憶部に記憶される前記データ値を符号化するために用いる浮動小数点数の値であるデータ関連値を記憶するデータ関連値記憶部と、前記データ関連値記憶部に記憶された前記データ関連値の指数値と前記データ値記憶部に記憶された前記データ値の指数値との差に基づいて前記データ関連値の仮数値を調整して調整仮数値を生成する調整仮数値生成部と、前記データ値記憶部に記憶された前記データ値の前記指数値に基づいて特定の指数値を生成し、前記データ値の仮数値と前記調整仮数値生成部によって生成された前記調整仮数値とに基づいて特定の仮数値を生成し、前記特定の指数値と前記特定の仮数値とに基づいて浮動小数点数の値であって符号化する値である符号化対象値を生成する符号化対象値生成部と、前記符号化対象値生成部によって生成された前記符号化対象値を符号化してデータ符号化値を生成するデータ符号化値生成部とを備えることが開示されている。   Patent Document 2 discloses that even when the exponent value of a floating-point data value (the data value intended for lossless compression) is different from the exponent value of a predicted value used for encoding, the compression rate is not reduced. The purpose is to enable lossless compression (encoding) of data values, and the encoding device is a floating-point number value represented by using an exponent value and a mantissa value and is a target value to be encoded. A data value storage unit for storing a certain data value, and a data related value storage unit for storing a data related value which is a floating point number value used for encoding the data value stored in the data value storage unit; Adjusting the mantissa value of the data related value based on the difference between the exponent value of the data related value stored in the data related value storage unit and the exponent value of the data value stored in the data value storage unit. Adjusted mantissa raw to generate adjusted mantissa A specific exponent value based on the exponent value of the data value stored in the data value storage unit, and the adjustment value generated by the mantissa value of the data value and the adjustment mantissa value generation unit A code that generates a specific mantissa value based on a numerical value, and generates an encoding target value that is a floating-point value and a value to be encoded based on the specific exponent value and the specific mantissa value An encoding target value generation unit and a data encoded value generation unit that generates a data encoded value by encoding the encoding target value generated by the encoding target value generation unit are disclosed.

特許文献3には、信号サンプルを圧縮するための方法及び装置は、ブロック浮動小数点表示を用いるものであり、グループ内の最大絶対値のサンプルによって仮数毎のビット数が決定され、圧縮器は、グループ毎に固定数のサンプルを有する信号サンプルのグループを定義し、グループ内の最大絶対値のサンプルが、最大サンプル値を表すためのビット数に対応する指数値を定め、指数値は、コード化されて指数トークンを形成し、連続する指数値間の指数差分を、個々に又は合同でコード化することができ、グループ内のサンプルは、対応する仮数に対してマッピングされ、各仮数は、指数値に基づくビット数を有し、指数値に応じたLSBを除去することにより、より少ないビットを有する仮数が生成され、フィードバック制御は、圧縮ビットレート及び/又は品質要求基準を監視することが開示されている。   In Patent Document 3, a method and apparatus for compressing signal samples uses block floating-point representation, and the number of bits per mantissa is determined by the sample of the maximum absolute value in the group. Define a group of signal samples with a fixed number of samples per group, where the largest absolute value sample in the group defines an exponent value that corresponds to the number of bits to represent the largest sample value, and the exponent value is coded Can form exponent tokens, and the exponent differences between successive exponent values can be coded individually or jointly, with the samples in the group mapped to corresponding mantissas, each mantissa being an exponent By having the number of bits based on the value and removing the LSB depending on the exponent value, a mantissa with fewer bits is generated and the feedback control is compressed It is disclosed that monitors the Bit Rate and / or quality requirements standards.

特許文献4には、データの圧縮及び圧縮解除に関し、より具体的に言えば、信号データを圧縮及び圧縮解除するための方法及び装置を提供することを課題とし、信号データを取得すること、信号データが分割される複数のデータ・ブロックのブロック長さを決定し、データ・ブロックの指数を決定すること、データ・ブロックに含まれる信号データを圧縮するために、データ・ブロックの指数を使用することによってデータ・ブロックの仮数シーケンスを形成すること、及び、データ・ブロックのブロック長さ、指数、及び仮数シーケンスを使用することによって圧縮データ・ブロックを形成することを含む、信号データを圧縮するための方法が開示され、信号データの動的特徴に適合された可変長データ・ブロックを構築することによって、信号データを圧縮するための方法は、信号データの圧縮比を増加させることが開示されている。   Patent Document 4 relates to data compression and decompression, and more specifically, to provide a method and apparatus for compressing and decompressing signal data, and obtaining signal data, Determine the block length of multiple data blocks into which data is divided, determine the index of the data block, use the index of the data block to compress the signal data contained in the data block For compressing signal data, including forming a mantissa sequence of data blocks and forming a compressed data block by using the block length, exponent, and mantissa sequence of the data block By constructing a variable length data block adapted to the dynamic characteristics of the signal data Method for compressing signal data to increase the compression ratio of the signal data is disclosed.

特許文献5には、復号化器で復号するにあたり定数を必要としない符号化を符号化器で行い、効率よく圧縮符号化すると共に、データ量を容易に制御できる情報伝送装置を提供することを目的とし、情報伝送装置は、入力信号を周波数軸上で複数帯域に分割したのち一定時間記憶し、記憶された信号を指数部と仮数部に分離し、これらをそれぞれ符号化して符号化信号を出力する帯域分割符号化装置と、帯域分割符号化装置の出力信号を入力し、これをそれぞれ復号化したのち元の信号に復号する帯域分割復号化装置とを備え、帯域分割符号化装置は、入力信号を周波数軸上で複数帯域に分割する周波数帯域分割器と、周波数帯域分割器の出力信号を一定時間記憶する記憶器と、一定時間記憶された信号の最大値を検出し、最大値の有効上位桁を検出する有効上位桁検出器と、帯域毎に予め定められた定数を記憶している定数記憶器と、予め定められた定数と有効上位桁検出器の出力を用いて帯域毎の指数部を決定する指数部決定器と、一定時間記憶された信号を指数部を用いて仮数部を計算し、仮数部を符号化し符号化信号を出力する第1符号化器と、第1の符号化器で発生するビット量を帯域単位で計算し、予め定められたビット量を超えるかもしくは一定時間記憶された信号を全て符号化しても予め定められたビット量に満たない場合は、符号化打ち切り信号を出力するビット量制御器と、指数部を符号化し符号化信号を、符号化打ち切り信号を受信するまで出力し、符号化打ち切り信号を受信すると特定の符号語を出力する第2の符号化器と、第1の符号化器の出力と第2の符号化器の出力とを時間軸多重する多重化器とを備え、第1の符号化器は、瞬時に復号可能な非等長符号を出力し、符号化打ち切り信号が入力されると符号化を打ち切ることが開示されている。   Patent Document 5 provides an information transmission apparatus that performs encoding that does not require a constant for decoding by a decoder, performs efficient compression encoding, and can easily control the amount of data. For the purpose, the information transmission apparatus divides the input signal into a plurality of bands on the frequency axis and stores it for a certain period of time, separates the stored signal into an exponent part and a mantissa part, and encodes each of them by encoding them. An output band division encoding device, and an output signal of the band division encoding device, and a band division decoding device for decoding the original signal and decoding the original signal, respectively, A frequency band divider that divides the input signal into multiple bands on the frequency axis, a memory that stores the output signal of the frequency band divider for a certain period of time, and a maximum value of the signal that is stored for a certain period of time is detected. Effective top An effective high-order digit detector for detecting the constant, a constant storage for storing a predetermined constant for each band, and an exponent part for each band using a predetermined constant and the output of the effective high-order digit detector. An exponent part determiner, a first encoder that calculates a mantissa part of the signal stored for a certain period of time using the exponent part, encodes the mantissa part, and outputs an encoded signal; and a first encoder If the bit amount generated in step 1 is calculated for each band and the predetermined bit amount is exceeded or even if all the signals stored for a certain period of time are not encoded, the encoded truncation signal And a second encoder that outputs a specific code word when the encoded truncation signal is received, and the encoded signal is output until the encoded truncation signal is received. And the output of the first encoder and the second The first encoder outputs a non-equal length code that can be instantaneously decoded, and encodes when an encoded truncation signal is input. Is disclosed.

国際公開第2004/098066号International Publication No. 2004/098066 特許第5619326号公報Japanese Patent No. 5619326 特表2013−508867号公報Special table 2013-508867 gazette 特開2013−251895号公報JP2013-251895A 特開平03−154443号公報Japanese Patent Laid-Open No. 03-154443

数値計算等の処理結果として、浮動小数点数表現のデータがある。例えば、この処理結果に対して、可視化(ビジュアライゼーション)とさらなる数値計算を行う場合がある。この可視化と数値計算とでは、必要な精度が異なる場合がある。具体的には、可視化では低い(量子化した)精度を用い、数値計算では高い精度を用いる場合である。前述の特許文献に記載の技術では、任意の精度で圧縮伸長するため、圧縮時に指定した精度でしか伸長時にデータを復号できない。
本発明は、浮動小数点数表現のデータを符号化する場合に、必要な精度の仮数値とそれ以上の精度の仮数値に分けて符号化するようにした情報処理装置、情報処理システム及び情報処理プログラムを提供することを目的としている。
As a result of processing such as numerical calculation, there is data of floating point number representation. For example, visualization (visualization) and further numerical calculation may be performed on the processing result. The required accuracy may differ between the visualization and the numerical calculation. Specifically, this is a case where low (quantized) accuracy is used for visualization and high accuracy is used for numerical calculation. In the technique described in the above-mentioned patent document, since compression and decompression are performed with an arbitrary accuracy, data can be decoded only when the decompression is performed with the accuracy specified at the time of compression.
The present invention relates to an information processing apparatus, an information processing system, and an information processing system, which are divided into a mantissa with a required accuracy and a mantissa with a higher accuracy when encoding data in a floating-point number representation. The purpose is to provide a program.

かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項1の発明は、浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、予め定められた指数値と各データの指数値との差分を抽出する差分手段と、前記差分にしたがって、各データの仮数値を上位の第1の仮数値と下位の第2の仮数値に分割する分割手段と、前記予め定められた指数値と第1の仮数値を符号化する第1の符号化手段と、各データの前記差分と第2の仮数値を符号化する第2の符号化手段を有する情報処理装置である。
The gist of the present invention for achieving the object lies in the inventions of the following items.
The invention according to claim 1 is a separating means for separating floating point expression data into an exponent value and a mantissa value, a difference means for extracting a difference between a predetermined exponent value and an exponent value of each data, and the difference And dividing means for dividing the mantissa of each data into an upper first mantissa and a lower second mantissa, and the first exponent value and the first mantissa are encoded. And a second encoding unit that encodes the difference of each data and the second mantissa.

請求項2の発明は、予め定められた指数値として、対象とする複数の浮動小数点数のデータ内の最大の指数値とする、請求項1に記載の情報処理装置である。   The invention according to claim 2 is the information processing apparatus according to claim 1, wherein a predetermined exponent value is the maximum exponent value in the data of a plurality of floating-point numbers to be processed.

請求項3の発明は、前記分割手段は、第2の仮数値として、浮動小数点数のデータの仮数値の下位の差分の桁数の値とし、第1の仮数値として、残りの上位の桁数の値とする、請求項1又は2に記載の情報処理装置である。   According to a third aspect of the present invention, the dividing means uses, as the second mantissa value, the value of the number of digits in the lower order of the mantissa value of the floating-point number data, and sets the remaining upper digits as the first mantissa value. The information processing apparatus according to claim 1, wherein the information processing apparatus is a numerical value.

請求項4の発明は、前記第1の仮数値を分割する第2の分割手段と、前記第2の分割手段によって分割された最上位の仮数値以外の仮数値を符号化する第3の符号化手段をさらに有し、前記第1の符号化手段は、前記予め定められた指数値と前記第2の分割手段によって分割された最上位の仮数値を符号化する、請求項1から3のいずれか一項に記載の情報処理装置である。   According to a fourth aspect of the present invention, there is provided a second dividing unit that divides the first mantissa value, and a third code that encodes a mantissa value other than the highest mantissa value divided by the second dividing unit. The first encoding means encodes the predetermined exponent value and the most significant mantissa divided by the second dividing means. It is an information processing apparatus as described in any one.

請求項5の発明は、前記第1の仮数値又は前記第2の仮数値と予測値との誤差を算出する予測誤差算出手段をさらに有し、前記第1の符号化手段又は第2の符号化手段は、前記誤差を符号化する、請求項1から4のいずれか一項に記載の情報処理装置である。   The invention of claim 5 further comprises prediction error calculation means for calculating an error between the first mantissa value or the second mantissa value and a prediction value, and the first encoding means or the second code. The information processing apparatus according to claim 1, wherein the converting unit encodes the error.

請求項6の発明は、請求項1に記載の情報処理装置の第1の符号化手段によって符号化された予め定められた指数値と第1の仮数値を復号する第1の復号手段と、請求項1に記載の情報処理装置の第2の符号化手段によって符号化された差分と第2の仮数値を復号する第2の復号手段と、前記第1の復号手段と前記第2の復号手段から復号したデータにしたがって、第1の仮数値と第2の仮数値を加算する加算手段と、前記加算手段による処理結果を浮動小数点数表現に変換する変換手段を有し、復号したデータに必要とされる精度にしたがって、前記第2の復号手段又は前記加算手段による処理を行わせない、情報処理装置である。   The invention according to claim 6 is a first decoding means for decoding a predetermined exponent value and a first mantissa value encoded by the first encoding means of the information processing apparatus according to claim 1, 2. The second decoding means for decoding the difference and the second mantissa encoded by the second encoding means of the information processing apparatus according to claim 1, the first decoding means and the second decoding Means for adding the first mantissa value and the second mantissa value in accordance with the data decoded from the means, and conversion means for converting the processing result by the adding means into a floating-point number representation. An information processing apparatus that does not perform processing by the second decoding unit or the adding unit in accordance with required accuracy.

請求項7の発明は、浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、予め定められた指数値と各データの指数値との差分を抽出する差分手段と、前記差分にしたがって、各データの仮数値を上位の第1の仮数値と下位の第2の仮数値に分割する分割手段と、前記予め定められた指数値と第1の仮数値を符号化する第1の符号化手段と、各データの前記差分と第2の仮数値を符号化する第2の符号化手段を有する符号化装置と、前記第1の符号化手段によって符号化された予め定められた指数値と第1の仮数値を復号する第1の復号手段と、前記第2の符号化手段によって符号化された差分と第2の仮数値を復号する第2の復号手段と、前記第1の復号手段と前記第2の復号手段から復号したデータにしたがって、第1の仮数値と第2の仮数値を加算する加算手段と、前記加算手段による処理結果を浮動小数点数表現に変換する変換手段を有し、復号したデータに必要とされる精度にしたがって、前記第2の復号手段又は前記加算手段による処理を行わせない、復号装置を有する情報処理システムである。   According to a seventh aspect of the present invention, there is provided a separating means for separating floating point number representation data into an exponent value and a mantissa value, a difference means for extracting a difference between a predetermined exponent value and an exponent value of each data, and the difference And dividing means for dividing the mantissa of each data into an upper first mantissa and a lower second mantissa, and the first exponent value and the first mantissa are encoded. Encoding means, an encoding device having second encoding means for encoding the difference between each data and a second mantissa, and a predetermined encoding encoded by the first encoding means A first decoding means for decoding the exponent value and the first mantissa value; a second decoding means for decoding the difference encoded by the second encoding means and a second mantissa value; In accordance with the data decoded from the second decoding means and the second decoding means. An adder for adding the value and the second mantissa, and a converter for converting the processing result of the adder into a floating-point number representation, according to the accuracy required for the decoded data, An information processing system having a decoding device that does not perform processing by the decoding unit or the adding unit.

請求項8の発明は、コンピュータを、浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、予め定められた指数値と各データの指数値との差分を抽出する差分手段と、前記差分にしたがって、各データの仮数値を上位の第1の仮数値と下位の第2の仮数値に分割する分割手段と、前記予め定められた指数値と第1の仮数値を符号化する第1の符号化手段と、各データの前記差分と第2の仮数値を符号化する第2の符号化手段として機能させるための情報処理プログラムである。   The invention according to claim 8 is a computer that separates floating point representation data into an exponent value and a mantissa value, and a difference unit that extracts a difference between a predetermined exponent value and an exponent value of each data; , Dividing means for dividing the mantissa of each data into an upper first mantissa and a lower second mantissa according to the difference, and encoding the predetermined exponent value and the first mantissa An information processing program for functioning as a first encoding unit that performs the above-described process and a second encoding unit that encodes the difference between each data and the second mantissa.

請求項9の発明は、コンピュータを、請求項8に記載の情報処理プログラムが実行されるコンピュータの第1の符号化手段によって符号化された予め定められた指数値と第1の仮数値を復号する第1の復号手段と、請求項8に記載の情報処理プログラムが実行されるコンピュータの第2の符号化手段によって符号化された差分と第2の仮数値を復号する第2の復号手段と、前記第1の復号手段と前記第2の復号手段から復号したデータにしたがって、第1の仮数値と第2の仮数値を加算する加算手段と、前記加算手段による処理結果を浮動小数点数表現に変換する変換手段として機能させ、復号したデータに必要とされる精度にしたがって、前記第2の復号手段又は前記加算手段による処理を行わせない、情報処理プログラムである。   According to a ninth aspect of the invention, the computer decodes a predetermined exponent value and a first mantissa value encoded by the first encoding means of the computer on which the information processing program according to the eighth aspect is executed. And a second decoding means for decoding the difference encoded by the second encoding means of the computer executing the information processing program according to claim 8 and the second mantissa value. , Adding means for adding a first mantissa value and a second mantissa value in accordance with data decoded from the first decoding means and the second decoding means, and a processing result by the adding means in a floating-point number representation This is an information processing program that functions as a conversion means for converting to, and does not allow the second decoding means or the adding means to perform processing according to the accuracy required for the decoded data.

請求項1の情報処理装置によれば、浮動小数点数表現のデータを符号化する場合に、必要な精度の仮数値とそれ以上の精度の仮数値に分けて符号化される。   According to the information processing apparatus of the first aspect, when encoding the data in the floating-point number representation, the encoding is performed by dividing the data into a mantissa with a required accuracy and a mantissa with a higher accuracy.

請求項2の情報処理装置によれば、予め定められた指数値として、対象とする複数の浮動小数点数のデータ内の最大の指数値とすることができる。   According to the information processing apparatus of the second aspect, the predetermined exponent value can be the maximum exponent value in the data of a plurality of floating point numbers to be processed.

請求項3の情報処理装置によれば、第2の仮数値として、浮動小数点数のデータの仮数値の下位の差分の桁数の値とし、第1の仮数値として、残りの上位の桁数の値とすることができる。   According to the information processing apparatus of claim 3, the second mantissa value is a value of the number of lower digits of the difference of the mantissa value of the floating-point data, and the remaining mantissa number is the first mantissa value. Value.

請求項4の情報処理装置によれば、第1の仮数値を分割して符号化することができる。   According to the information processing apparatus of the fourth aspect, the first mantissa value can be divided and encoded.

請求項5の情報処理装置によれば、予測値との誤差を符号化することができる。   According to the information processing apparatus of the fifth aspect, an error from the predicted value can be encoded.

請求項6の情報処理装置によれば、復号したデータに必要とする精度によっては、第2の復号手段又は加算手段による処理を行わせないことができる。   According to the information processing apparatus of the sixth aspect, depending on the accuracy required for the decoded data, the processing by the second decoding unit or the adding unit can be prevented.

請求項7の情報処理システムによれば、浮動小数点数表現のデータを符号化する場合に、必要な精度の仮数値とそれ以上の精度の仮数値に分けて符号化される。   According to the information processing system of the seventh aspect, when encoding the data of the floating point number representation, it is divided into a mantissa with a required accuracy and a mantissa with a higher accuracy.

請求項8の情報処理プログラムによれば、浮動小数点数表現のデータを符号化する場合に、必要な精度の仮数値とそれ以上の精度の仮数値に分けて符号化される。   According to the information processing program of the eighth aspect, when encoding the data of the floating point number representation, it is divided into a mantissa with a required accuracy and a mantissa with a higher accuracy.

請求項9の情報処理プログラムによれば、復号したデータに必要とする精度によっては、第2の復号手段又は加算手段による処理を行わせないことができる。   According to the information processing program of the ninth aspect, depending on the accuracy required for the decoded data, the processing by the second decoding unit or the adding unit can be prevented.

第1の実施の形態の構成例についての概念的なモジュール構成図である。It is a conceptual module block diagram about the structural example of 1st Embodiment. 本実施の形態を利用したシステム構成例を示す説明図である。It is explanatory drawing which shows the system configuration example using this Embodiment. 第1の実施の形態による処理例を示すフローチャートである。It is a flowchart which shows the process example by 1st Embodiment. 第1の実施の形態による処理例を示すフローチャートである。It is a flowchart which shows the process example by 1st Embodiment. 第1の実施の形態による処理例を示すフローチャートである。It is a flowchart which shows the process example by 1st Embodiment. 数値計算結果の例を示す説明図である。It is explanatory drawing which shows the example of a numerical calculation result. 処理結果テーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the data structure example of a process result table. 処理結果テーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the data structure example of a process result table. 処理結果テーブル(ブロック)のデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of a process result table (block). 指数値テーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of an exponent value table. 仮数値テーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of a mantissa table. 差分指数値テーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of a difference index value table. 有効精度の仮数値テーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of the mantissa table of effective precision. 無効精度の仮数値テーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of the mantissa table of invalid precision. 予測誤差テーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of a prediction error table. 基本符号の符号化データのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of the encoding data of a basic code. 差分符号の符号化データのデータ構造例を示す説明図である。It is explanatory drawing which shows the data structure example of the encoding data of a difference code. 基本符号の符号化データのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of the encoding data of a basic code. 指数値テーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of an exponent value table. 有効精度の仮数値テーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of the mantissa table of effective precision. 有効精度データテーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of an effective precision data table. 有効精度データテーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of an effective precision data table. 指数値テーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of an exponent value table. 有効精度の仮数値テーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of the mantissa table of effective precision. 有効精度データテーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of an effective precision data table. 有効精度データテーブルのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of an effective precision data table. 第2の実施の形態の構成例についての概念的なモジュール構成図である。It is a conceptual module block diagram about the structural example of 2nd Embodiment. 第2の実施の形態による処理例を示す説明図である。It is explanatory drawing which shows the process example by 2nd Embodiment. 基本符号1の符号化データのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of the encoding data of the basic code 1. FIG. 基本符号m(m≧2)の符号化データのデータ構造例を示す説明図である。It is explanatory drawing which shows the example of a data structure of the encoding data of the basic code m (m> = 2). 第3の実施の形態の構成例についての概念的なモジュール構成図である。It is a conceptual module block diagram about the structural example of 3rd Embodiment. 第3の実施の形態による処理例を示す説明図である。It is explanatory drawing which shows the process example by 3rd Embodiment. 第4の実施の形態の構成例についての概念的なモジュール構成図である。It is a notional module block diagram about the structural example of 4th Embodiment. 第4の実施の形態による処理例を示すフローチャートである。It is a flowchart which shows the process example by 4th Embodiment. 第4の実施の形態による処理例を示すフローチャートである。It is a flowchart which shows the process example by 4th Embodiment. 本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。It is a block diagram which shows the hardware structural example of the computer which implement | achieves this Embodiment.

以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
<第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)内のレジスタ等を含んでいてもよい。
Hereinafter, examples of various preferred embodiments for realizing the present invention will be described with reference to the drawings.
<First Embodiment>
FIG. 1 is a conceptual module configuration diagram of a configuration example according to the first embodiment.
The module generally refers to components such as software (computer program) and hardware that can be logically separated. Therefore, the module in the present embodiment indicates not only a module in a computer program but also a module in a hardware configuration. Therefore, the present embodiment is a computer program for causing these modules to function (a program for causing a computer to execute each procedure, a program for causing a computer to function as each means, and a function for each computer. This also serves as an explanation of the program and system and method for realizing the above. However, for the sake of explanation, the words “store”, “store”, and equivalents thereof are used. However, when the embodiment is a computer program, these words are stored in a storage device or stored in memory. This means that control is performed so as to be stored in the apparatus. Modules may correspond to functions one-to-one, but in mounting, one module may be configured by one program, or a plurality of modules may be configured by one program, and conversely, one module May be composed of a plurality of programs. The plurality of modules may be executed by one computer, or one module may be executed by a plurality of computers in a distributed or parallel environment. Note that one module may include other modules. Hereinafter, “connection” is used not only for physical connection but also for logical connection (data exchange, instruction, reference relationship between data, etc.). “Predetermined” means that the process is determined before the target process, and not only before the process according to this embodiment starts but also after the process according to this embodiment starts. Also, if it is before the target processing, it is used in accordance with the situation / status at that time or with the intention to be decided according to the status / status up to that point. When there are a plurality of “predetermined values”, they may be different values, or two or more values (of course, including all values) may be the same. In addition, the description of “do B when A” is used to mean “determine whether or not A and do B when A”. However, the case where it is not necessary to determine whether or not A is excluded.
In addition, the system or device is configured by connecting a plurality of computers, hardware, devices, and the like by communication means such as a network (including one-to-one correspondence communication connection), etc., and one computer, hardware, device. The case where it implement | achieves by etc. is included. “Apparatus” and “system” are used as synonymous terms. Of course, the “system” does not include a social “mechanism” (social system) that is an artificial arrangement.
In addition, when performing a plurality of processes in each module or in each module, the target information is read from the storage device for each process, and the processing result is written to the storage device after performing the processing. is there. Therefore, description of reading from the storage device before processing and writing to the storage device after processing may be omitted. Here, the storage device may include a hard disk, a RAM (Random Access Memory), an external storage medium, a storage device via a communication line, a register in a CPU (Central Processing Unit), and the like.

本実施の形態である情報処理システムは、符号化装置100と復号装置150によって構成されており、符号化装置100は、浮動小数点数データ群105を符号化(圧縮ともいわれる)するものであり、復号装置150は、その符号を復号(伸長ともいわれる)し、浮動小数点数データ群195を生成するものである。   The information processing system according to the present embodiment includes an encoding device 100 and a decoding device 150. The encoding device 100 encodes (also referred to as compression) the floating point number data group 105. The decoding device 150 decodes the code (also referred to as decompression) and generates a floating point number data group 195.

説明にあたって、用語の定義を行う。
精度とは、浮動小数点数において、仮数部の最下位の値が示す桁である。例えば1.2345e−05は、1.2345e−05=12345e−09となり、精度はe−09となる。
仮数値とは、仮数部からなる整数値である。
指数値とは、指数部からなる整数値である。
有効精度とは、ユーザーが指定する任意の精度である。本実施の形態では、ブロック内の最低精度(浮動小数点のデータのブロック内の最大の指数値)を有効精度として用いている。
無効精度とは、有効精度より高い精度である。
ブロック内最大指数値とは、ブロック内で最大の指数値である。
差分指数値とは、ブロック内最大指数値と指数値との差分である。
差分有効精度の仮数値とは、有効精度の仮数値と予測値との差分である。
基本符号とは、ブロック内最大指数値と有効精度の仮数値を符号化したデータである。
基本符号1とは、ブロック内最大指数値と分割された有効精度の仮数値の中で最低精度の仮数値を符号化したデータである。
基本符号m(m≧2)とは、ブロック内最大指数値と分割された有効精度の仮数値の中で最低精度以外の仮数値を符号化したデータである。
基本符号aとは、ブロック内最大指数値と有効精度の仮数値の予測誤差を符号化したデータである。
差分符号とは、差分指数値と無効精度の仮数値を符号化したデータである。
In the explanation, terms are defined.
The precision is a digit indicated by the lowest value of the mantissa part in the floating-point number. For example, 1.2345e-05 is 1.2345e-05 = 123445e-09, and the accuracy is e-09.
The mantissa value is an integer value composed of a mantissa part.
The exponent value is an integer value composed of an exponent part.
Effective precision is any precision specified by the user. In the present embodiment, the lowest precision in the block (the largest exponent value in the block of floating point data) is used as the effective precision.
Invalid accuracy is higher than effective accuracy.
The maximum exponent value in the block is the maximum exponent value in the block.
The difference index value is a difference between the maximum index value in the block and the index value.
The difference effective precision mantissa is a difference between the effective precision mantissa and the predicted value.
The basic code is data obtained by encoding a maximum exponent value in a block and a mantissa value of effective precision.
The basic code 1 is data obtained by encoding a mantissa value having the lowest precision among the maximum exponent value in the block and the mantissa values having effective precision divided.
The basic code m (m ≧ 2) is data obtained by encoding a mantissa value other than the lowest accuracy among the mantissa values with effective precision divided into the maximum exponent value in the block.
The basic code a is data obtained by encoding a prediction error between a maximum exponent value in a block and a mantissa value with effective precision.
The difference code is data obtained by encoding a difference exponent value and an invalid precision mantissa.

符号化装置100は、図1の例に示すように、ブロック分割モジュール110、浮動小数点数分離モジュール115、ブロック内最大指数値算出モジュール120、差分指数値算出モジュール125、仮数値分割モジュール130、第1の符号化モジュール135、第2の符号化モジュール140を有している。
ブロック分割モジュール110は、浮動小数点数分離モジュール115と接続されている。ブロック分割モジュール110は、浮動小数点数データ群105を受け付け、その浮動小数点数データ群105をブロックに分割する。なお、ここで、ブロックとは、予め定められた数のデータの集合である。
浮動小数点数分離モジュール115は、ブロック分割モジュール110、ブロック内最大指数値算出モジュール120、仮数値分割モジュール130と接続されている。浮動小数点数分離モジュール115は、浮動小数点数表現のデータを指数値と仮数値に分離する。第1の実施の形態では、ブロック分割モジュール110によってブロックに分割された浮動小数点数データ群105を指数値と仮数値に分離する。
As shown in the example of FIG. 1, the encoding apparatus 100 includes a block division module 110, a floating-point number separation module 115, an intra-block maximum exponent value calculation module 120, a difference exponent value calculation module 125, a mantissa division module 130, The first encoding module 135 and the second encoding module 140 are provided.
The block division module 110 is connected to the floating point number separation module 115. The block division module 110 receives the floating point number data group 105 and divides the floating point number data group 105 into blocks. Here, the block is a set of data of a predetermined number.
The floating point number separation module 115 is connected to the block division module 110, the intra-block maximum exponent value calculation module 120, and the mantissa division module 130. The floating-point number separation module 115 separates floating-point number representation data into an exponent value and a mantissa value. In the first embodiment, the floating point number data group 105 divided into blocks by the block dividing module 110 is separated into an exponent value and a mantissa value.

ブロック内最大指数値算出モジュール120は、浮動小数点数分離モジュール115、差分指数値算出モジュール125と接続されている。ブロック内最大指数値算出モジュール120は、対象とする複数の浮動小数点数のデータから最大の指数値を抽出する。第1の実施の形態では、ブロック分割モジュール110によってブロックに分割された浮動小数点数データ群105内で、最大の指数値(ブロック内最大指数値)を抽出する。
差分指数値算出モジュール125は、ブロック内最大指数値算出モジュール120、仮数値分割モジュール130と接続されている。差分指数値算出モジュール125は、予め定められた指数値と各データの指数値との差分を抽出する。
なお、ここで「予め定められた指数値」として、対象とする複数の浮動小数点数のデータ内の最大の指数値(ブロック内最大指数値算出モジュール120による処理結果である最大の指数値)としてもよい。この場合、ブロック内最大指数値とブロック内の各データの指数値との差分(差分指数値)を算出することになる。
The intra-block maximum exponent value calculation module 120 is connected to the floating point number separation module 115 and the difference exponent value calculation module 125. The intra-block maximum exponent value calculation module 120 extracts the maximum exponent value from a plurality of target floating-point data. In the first embodiment, the maximum exponent value (intra-block maximum exponent value) is extracted from the floating-point number data group 105 divided into blocks by the block division module 110.
The difference index value calculation module 125 is connected to the intra-block maximum index value calculation module 120 and the mantissa division module 130. The difference index value calculation module 125 extracts a difference between a predetermined index value and the index value of each data.
Here, as the “predetermined exponent value”, the maximum exponent value in the data of a plurality of target floating-point numbers (the maximum exponent value as a result of processing by the in-block maximum exponent value calculation module 120) Also good. In this case, the difference (difference index value) between the maximum index value in the block and the index value of each data in the block is calculated.

仮数値分割モジュール130は、浮動小数点数分離モジュール115、差分指数値算出モジュール125、第1の符号化モジュール135、第2の符号化モジュール140と接続されている。仮数値分割モジュール130は、差分指数値算出モジュール125による処理結果である差分にしたがって、各データの仮数値を上位の第1の仮数値と下位の第2の仮数値に分割する。つまり、仮数値を有効精度と無効精度に分割する。仮数値を有効精度と無効精度に分割するため、復号時にデータの精度を制御できるようになる。
また、仮数値分割モジュール130は、第2の仮数値として、浮動小数点数のデータの仮数値の下位の差分の桁数の値とし、第1の仮数値として、残りの上位の桁数の値としてもよい。
The mantissa division module 130 is connected to the floating point number separation module 115, the difference exponent value calculation module 125, the first encoding module 135, and the second encoding module 140. The mantissa division module 130 divides the mantissa of each data into a higher first mantissa and a lower second mantissa according to the difference that is the processing result of the difference index value calculation module 125. That is, the mantissa value is divided into effective precision and invalid precision. Since the mantissa value is divided into valid precision and invalid precision, the precision of data can be controlled at the time of decoding.
Further, the mantissa division module 130 uses the value of the number of lower-order differences of the mantissa value of the floating-point number data as the second mantissa value, and the value of the remaining upper digits as the first mantissa value. It is good.

第1の符号化モジュール135は、仮数値分割モジュール130と接続されており、基本符号142を出力する。第1の符号化モジュール135は、前述の予め定められた指数値と第1の仮数値を符号化する。具体的には、第1の符号化モジュール135は、ブロックのブロック内最大指数値と有効精度の仮数値を符号化する。
なお、第1の符号化モジュール135は、差分指数値算出モジュール125による処理結果である差分が0でない場合は、予め定められた指数値と差分と第1の仮数値を符号化するようにしてもよい。
第2の符号化モジュール140は、仮数値分割モジュール130と接続されており、差分符号144を出力する。第2の符号化モジュール140は、各データの差分と第2の仮数値を符号化する。具体的には、第2の符号化モジュール140は、ブロックの差分指数値と無効精度の仮数値を符号化する。
The first encoding module 135 is connected to the mantissa division module 130 and outputs a basic code 142. The first encoding module 135 encodes the above-described predetermined exponent value and the first mantissa value. Specifically, the first encoding module 135 encodes the intra-block maximum exponent value and effective significand value of the block.
The first encoding module 135 encodes the predetermined exponent value, the difference, and the first mantissa value when the difference as the processing result by the difference index value calculation module 125 is not 0. Also good.
The second encoding module 140 is connected to the mantissa division module 130 and outputs a difference code 144. The second encoding module 140 encodes the difference between each data and the second mantissa value. Specifically, the second encoding module 140 encodes the difference index value of the block and the invalid precision mantissa.

復号装置150は、図1の例に示すように、第1の復号モジュール155、第2の復号モジュール160、加算モジュール165、変換モジュール170、ブロック統合モジュール175を有している。復号装置150は、復号したデータに必要とされる精度にしたがって、第2の復号モジュール160又は加算モジュール165による処理を行わせない。つまり、第1の復号モジュール155によって復号されたデータだけを用いる場合は、第2の復号モジュール160、加算モジュール165による処理は不要である。   As illustrated in the example of FIG. 1, the decoding device 150 includes a first decoding module 155, a second decoding module 160, an addition module 165, a conversion module 170, and a block integration module 175. The decoding device 150 does not cause the second decoding module 160 or the addition module 165 to perform processing according to the accuracy required for the decoded data. That is, when only the data decoded by the first decoding module 155 is used, the processing by the second decoding module 160 and the addition module 165 is unnecessary.

第1の復号モジュール155は、加算モジュール165と接続されており、基本符号142を受け付ける。第1の復号モジュール155は、符号化装置100の第1の符号化モジュール135によって符号化された予め定められた指数値と第1の仮数値を復号する。具体的には、第1の復号モジュール155は、基本符号142からブロック内最大指数値と有効精度の仮数値を復号する。
第2の復号モジュール160は、加算モジュール165と接続されており、差分符号144を受け付ける。第2の復号モジュール160は、符号化装置100の第2の符号化モジュール140によって符号化された差分と第2の仮数値を復号する。具体的には、第2の復号モジュール160は、差分符号144から差分指数値と無効精度の仮数値を復号する。
The first decoding module 155 is connected to the addition module 165 and receives the basic code 142. The first decoding module 155 decodes the predetermined exponent value and the first mantissa value encoded by the first encoding module 135 of the encoding device 100. Specifically, the first decoding module 155 decodes the intra-block maximum exponent value and the effective precision mantissa value from the basic code 142.
The second decoding module 160 is connected to the addition module 165 and receives the difference code 144. The second decoding module 160 decodes the difference encoded by the second encoding module 140 of the encoding device 100 and the second mantissa. Specifically, the second decoding module 160 decodes the difference exponent value and the invalid precision mantissa from the difference code 144.

加算モジュール165は、第1の復号モジュール155、第2の復号モジュール160、変換モジュール170と接続されている。加算モジュール165は、第1の復号モジュール155と第2の復号モジュール160によって復号されたデータにしたがって、第1の仮数値と第2の仮数値を加算する。つまり、基本符号142の復号結果に差分符号144の復号結果を加算する。
変換モジュール170は、加算モジュール165、ブロック統合モジュール175と接続されている。変換モジュール170は、加算モジュール165による処理結果を浮動小数点数表現に変換する。
ブロック統合モジュール175は、変換モジュール170と接続されており、浮動小数点数データ群195を出力する。ブロック統合モジュール175は、ブロックを統合して、浮動小数点数データ群195を生成する。つまり、ブロック分割モジュール110の逆処理を行う。なお、基本符号142と差分符号144の両方を復号した場合は、浮動小数点数データ群105と浮動小数点数データ群195は同じになる(いわゆる可逆圧縮伸長)。基本符号142だけを復号した場合は、浮動小数点数データ群195の精度は浮動小数点数データ群105の精度以下である(いわゆる非可逆圧縮伸長)。
The addition module 165 is connected to the first decoding module 155, the second decoding module 160, and the conversion module 170. The addition module 165 adds the first mantissa value and the second mantissa value according to the data decoded by the first decoding module 155 and the second decoding module 160. That is, the decoding result of the difference code 144 is added to the decoding result of the basic code 142.
The conversion module 170 is connected to the addition module 165 and the block integration module 175. The conversion module 170 converts the processing result by the addition module 165 into a floating-point number representation.
The block integration module 175 is connected to the conversion module 170 and outputs a floating point number data group 195. The block integration module 175 integrates the blocks and generates a floating point number data group 195. That is, the reverse process of the block division module 110 is performed. When both the basic code 142 and the differential code 144 are decoded, the floating point number data group 105 and the floating point number data group 195 are the same (so-called lossless compression / decompression). When only the basic code 142 is decoded, the accuracy of the floating point number data group 195 is less than or equal to the accuracy of the floating point number data group 105 (so-called lossy compression / decompression).

符号化装置100は、入力されたデータを任意のブロックに分割する。そして、ブロック内のデータを有効精度と無効精度に分離し、有効精度のデータを基本符号、無効精度のデータを差分符号として、それぞれ符号化する。復号時に、復号装置150は、ユーザーの用途により基本符号のみを復号して有効精度のデータを得ること(非可逆圧縮伸長)も、基本符号と差分符号をあわせて復号して無効精度のデータを得ること(可逆圧縮伸長)も可能である。   The encoding apparatus 100 divides input data into arbitrary blocks. Then, the data in the block is separated into effective accuracy and invalid accuracy, and the effective accuracy data is encoded as a basic code, and the invalid accuracy data is encoded as a differential code. At the time of decoding, the decoding device 150 decodes only the basic code according to the user's application to obtain effective precision data (irreversible compression / decompression), or decodes the basic code and the difference code together to obtain invalid precision data. It is also possible to obtain (reversible compression / decompression).

図2は、本実施の形態を利用したシステム構成例を示す説明図である。
スーパーコンピュータ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を有している。
FIG. 2 is an explanatory diagram showing a system configuration example using the present embodiment.
The super computer 210A, the encoding device 100B in the super computer 210B, the encoding device 100A in the information processing device 220, the decoding device 150D in the information processing device 230D, and the decoding device 150E in the information processing device 230E connect the communication line 290. Are connected to each other. The communication line 290 may be wireless, wired, or a combination thereof, and may be, for example, the Internet or an intranet as a communication infrastructure. Further, the function by the super computer 210 may be realized as a cloud service.
The information processing device 220, the information processing device 230A, the information processing device 230B, and the information processing device 230C are connected to each other.
The super computer 210B has an encoding device 100B. The information processing apparatus 220 includes an encoding apparatus 100A. The information processing device 230A includes a decryption device 150A. The information processing device 230B includes a decryption device 150B. The information processing device 230C has a decryption device 150C. The information processing device 230D has a decryption device 150D. The information processing device 230E has a decryption device 150E.

スーパーコンピュータ210は、例えば、数値計算を行い、浮動小数点数表現のデータを出力する。このデータとして、例えば、特定の環境下における原子運動をシミュレーションして得られたデータがある。このデータの活用方法として、例えばデータの可視化と別の数値計算への入力の2つの用途がある。このとき、可視化と数値計算とで、必要な精度が異なる場合がある。具体的には、可視化では低い(量子化した)精度を用い、数値計算では高い精度を用いる場合である。
スーパーコンピュータ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を用いた数値計算を行う。
For example, the super computer 210 performs numerical calculation and outputs data in a floating-point number representation. As this data, for example, there is data obtained by simulating atomic motion in a specific environment. As a method of utilizing this data, there are two uses, for example, data visualization and input to another numerical calculation. At this time, the required accuracy may differ between visualization and numerical calculation. Specifically, this is a case where low (quantized) accuracy is used for visualization and high accuracy is used for numerical calculation.
The supercomputer 210 </ b> A transmits the floating-point number data group 105 as a processing result to the information processing apparatus 220. The encoding device 100A of the information processing device 220 performs encoding, and transmits the basic code 142 and the difference code 144 to the information processing device 230A, the information processing device 230B, and the information processing device 230C. Since the information processing device 230A performs the atomic motion visualization process, the decoding device 150A decodes only the basic code 142 and performs the floating point number data group 195 visualization process. This is because the accuracy up to the difference code 144 is not necessary for the visualization process. Since the information processing device 230B performs further numerical calculation by the analysis processing, the decoding device 150B decodes the basic code 142 and the differential code 144 to obtain the floating-point number data group 195 (data having the same accuracy as the floating-point number data group 105). ) Is used for numerical calculation. Since the information processing device 230C further performs numerical calculation by analysis processing together with the visualization processing, when performing the visualization processing, the decoding device 150C decodes only the basic code 142 and performs the visualization processing of the floating point number data group 195. . When analysis processing is performed, the basic code 142 and the differential code 144 are decoded, and numerical calculation using the floating-point number data group 195 is performed.
The super computer 210B encodes the processing result of the super computer 210B with the encoding device 100B and transmits the result to the information processing device 230D and the information processing device 230E. Since the information processing device 230D performs visualization processing of atomic motion, the decoding device 150D decodes only the basic code 142 and performs visualization processing of the floating point number data group 195. Since the information processing device 230E further performs numerical calculation by analysis processing, the decoding device 150E decodes the basic code 142 and the differential code 144 and performs numerical calculation using the floating point number data group 195.

図3は、第1の実施の形態(符号化装置100)による処理例を示すフローチャートである。
ステップ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による差分データの符号化を行う。
FIG. 3 is a flowchart illustrating a processing example according to the first exemplary embodiment (encoding device 100).
In step S302, the block division module 110 divides the block.
In step S304, the floating point number separation module 115 separates the exponent value e and the mantissa value m.
In step S306, the intra-block maximum exponent value calculation module 120 calculates the intra-block maximum exponent value f.
In step S308, the difference index value calculation module 125 calculates a difference index value Δe.
In step S310, the mantissa division module 130 divides the mantissa m. Details of the processing in step S310 will be described later using the flowchart shown in the example of FIG.
In step S312, the first encoding module 135 performs encoding of basic data by compression A.
In step S314, the second encoding module 140 encodes the difference data by compression B.

図4は、第1の実施の形態(仮数値分割モジュール130)による処理例を示すフローチャートである。
ステップS402では、仮数値分割モジュール130は、有効精度の仮数値m1を算出する。具体的には、m1=[m/10△e]によって、仮数値m1を算出する。
ステップS404では、仮数値分割モジュール130は、無効精度の仮数値m2を算出する。具体的には、m2=m−m1*10△eによって、仮数値m2を算出する。
FIG. 4 is a flowchart showing an example of processing by the first embodiment (the mantissa division module 130).
In step S402, the mantissa division module 130 calculates the mantissa value m1 with effective accuracy. Specifically, the mantissa value m1 is calculated by m1 = [m / 10 Δe].
In step S404, the mantissa division module 130 calculates an invalid precision mantissa m2. Specifically, the mantissa value m2 is calculated by m2 = m−m1 * 10 △ Δe .

図5は、第1の実施の形態(復号装置150)による処理例を示すフローチャートである。
ステップS502では、第1の復号モジュール155は、伸長Aによる基本データの復号を行う。
ステップS504では、第2の復号モジュール160は、伸長Bによる符号データの復号を行う。
ステップS506では、加算モジュール165は、データを加算する。
ステップS508では、変換モジュール170は、浮動小数点数を生成する。
ステップS510では、ブロック統合モジュール175は、ブロックを統合する。
FIG. 5 is a flowchart illustrating a processing example according to the first exemplary embodiment (decoding device 150).
In step S502, the first decryption module 155 decrypts the basic data by the decompression A.
In step S504, the second decoding module 160 decodes the code data by the expansion B.
In step S506, the addition module 165 adds data.
In step S508, the conversion module 170 generates a floating point number.
In step S510, the block integration module 175 integrates the blocks.

以下に、具体例を示して、各モジュールによる処理を説明する。ただし、説明を簡潔にするために、データ数は少なく、単純な数値を用いている。
図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座標値を要素と呼ぶことにする。
Hereinafter, the processing by each module will be described with a specific example. However, in order to simplify the explanation, the number of data is small and simple numerical values are used.
FIG. 6 is an explanatory diagram illustrating an example of numerical calculation results. FIG. 6 shows a state in which one particle in a specific environment moves on the X axis. The horizontal axis represents time [sec], and the vertical axis represents the X coordinate value. FIG. 7 is data in which the X-coordinate values of the particles in FIG. 6 are arranged in chronological order in a floating-point number format with five significant digits. FIG. 7 is an explanatory diagram showing an example of the data structure of the processing result table 700. The processing result table 700 has a time [sec] column 710 and an X coordinate value [mm] column 720. The time [sec] column 710 stores time [sec]. The X coordinate value [mm] column 720 stores the X coordinate value [mm].
In this example, the X coordinate value in FIG. 7 is used as input data (floating point number data group 105). Hereinafter, the X coordinate value of the particle for each time is referred to as an element.

符号化装置100による処理を説明する。
ブロック分割モジュール110は、入力データ(浮動小数点数データ群105)を、ブロックに分割する。本例では、図8の例に示すように、時間軸を基準にして5つの要素毎(ブロック810、ブロック820)に分割する。以降では、ブロック810に注目して説明する。
Processing performed by the encoding device 100 will be described.
The block division module 110 divides input data (floating point number data group 105) into blocks. In this example, as shown in the example of FIG. 8, the data is divided into five elements (block 810, block 820) with reference to the time axis. In the following, description will be given focusing on block 810.

浮動小数点数分離モジュール115は、ブロック810のX座標値の浮動小数点数を仮数値と指数値とに分離する。時間t、有効数字N桁とする。時間tの浮動小数点数データをF(t)とすると、F(t)は指数値e(t)及び仮数値m(t)により式(1)のように表す。

Figure 2018019138
例えば、F(t)=1.1111e+02のとき、e(t)=2及びm(t)=11111となる。式(1)より、図9の例に示す注目ブロックの浮動小数点数は、図10の例に示す指数値と図11の例に示す仮数値に分離される。
図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は、仮数値を記憶している。 The floating point number separation module 115 separates the floating point number of the X coordinate value of the block 810 into a mantissa value and an exponent value. The time t is assumed to be N significant digits. Assuming that the floating point number data at time t is F (t), F (t) is expressed by the exponent value e (t) and the mantissa value m (t) as shown in Expression (1).
Figure 2018019138
For example, when F (t) = 1.1111e + 02, e (t) = 2 and m (t) = 11111. From the expression (1), the floating point number of the target block shown in the example of FIG. 9 is separated into the exponent value shown in the example of FIG. 10 and the mantissa value shown in the example of FIG.
FIG. 9 is an explanatory diagram showing an example of the data structure of the processing result table (block) 900. The processing result table (block) 900 has a time [sec] column 910 and an X coordinate value [mm] column 920. The time [sec] column 910 stores time [sec]. The X coordinate value [mm] column 920 stores the X coordinate value [mm].
FIG. 10 is an explanatory diagram showing an example of the data structure of the exponent value table 1000. The exponent value table 1000 has a time [sec] column 1010 and an exponent value column 1020. The time [sec] column 1010 stores time [sec]. The exponent value column 1020 stores an exponent value.
FIG. 11 is an explanatory diagram showing an example of the data structure of the mantissa table 1100. The mantissa table 1100 has a time [sec] column 1110 and a mantissa column 1120. The time [sec] column 1110 stores time [sec]. The mantissa column 1120 stores mantissa values.

ブロック内最大指数値算出モジュール120は、注目ブロック内の指数値の中から最大値を計算し、それをブロック内最大指数値とする。ブロック内最大指数値fは式(2)で定義する。

Figure 2018019138
図10の例では、ブロック最大指数値は、t=4のときでf=3となる。 The intra-block maximum exponent value calculation module 120 calculates the maximum value from the exponent values in the block of interest and sets it as the intra-block maximum exponent value. The maximum exponent value f in the block is defined by the equation (2).
Figure 2018019138
In the example of FIG. 10, the block maximum exponent value is f = 3 when t = 4.

差分指数値算出モジュール125は、ブロック内最大指数値と当該ブロックの各指数値から差分指数値を計算する。時間tにおける差分指数値△e(t)を、式(3)で定義する。

Figure 2018019138
式(3)より、注目ブロックの差分指数値△e(t)を図12に示す。図12は、差分指数値テーブル1200のデータ構造例を示す説明図である。差分指数値テーブル1200は、時間[sec]欄1210、差分指数値欄1220を有している。時間[sec]欄1210は、時間[sec]を記憶している。差分指数値欄1220は、差分指数値を記憶している。差分指数値欄1220内の値は、ブロック内最大指数値(3)から、図10の例に示した指数値テーブル1000の指数値欄1020内の値を減算したものである。 The difference index value calculation module 125 calculates a difference index value from the maximum index value in the block and each index value of the block. The difference index value Δe (t) at time t is defined by equation (3).
Figure 2018019138
From equation (3), the difference index value Δe (t) of the block of interest is shown in FIG. FIG. 12 is an explanatory diagram showing an example of the data structure of the difference index value table 1200. The difference index value table 1200 has a time [sec] field 1210 and a difference index value field 1220. The time [sec] column 1210 stores time [sec]. The difference index value column 1220 stores a difference index value. The value in the difference index value column 1220 is obtained by subtracting the value in the index value column 1020 of the index value table 1000 shown in the example of FIG. 10 from the maximum index value (3) in the block.

仮数値分割モジュール130は、仮数値を、有効精度の仮数値と無効精度の仮数値とに分割する。時間tにおける有効精度の仮数値m1(t)と無効精度の仮数値m2(t)は、それぞれ式(4)と式(5)で定義する。

Figure 2018019138
Figure 2018019138
よって、図11の例に示す注目ブロックの仮数値m(t)は、有効精度の仮数値m1(t)(図13)、無効精度の仮数値m2(t)(図14)に分割される。
図13は、有効精度の仮数値テーブル1300のデータ構造例を示す説明図である。有効精度の仮数値テーブル1300は、時間[sec]欄1310、有効精度の仮数値欄1320を有している。時間[sec]欄1310は、時間[sec]を記憶している。有効精度の仮数値欄1320は、有効精度の仮数値(上位の仮数値)を記憶している。図14は、無効精度の仮数値テーブル1400のデータ構造例を示す説明図である。無効精度の仮数値テーブル1400は、時間[sec]欄1410、無効精度の仮数値欄1420を有している。時間[sec]欄1410は、時間[sec]を記憶している。無効精度の仮数値欄1420は、無効精度の仮数値(下位の仮数値)を記憶している。 The mantissa division module 130 divides the mantissa into a mantissa with effective precision and a mantissa with invalid precision. The effective precision mantissa value m1 (t) and the invalid precision mantissa value m2 (t) at time t are defined by equations (4) and (5), respectively.
Figure 2018019138
Figure 2018019138
Therefore, the mantissa value m (t) of the block of interest shown in the example of FIG. 11 is divided into the mantissa value m1 (t) (FIG. 13) with effective accuracy and the mantissa value m2 (t) (FIG. 14) with invalid accuracy. .
FIG. 13 is an explanatory diagram showing an example of the data structure of the significand value table 1300 of effective accuracy. The effective accuracy mantissa table 1300 includes a time [sec] column 1310 and an effective accuracy mantissa column 1320. The time [sec] column 1310 stores time [sec]. The effective precision mantissa column 1320 stores the effective precision mantissa (high order mantissa). FIG. 14 is an explanatory diagram showing an example of the data structure of the invalid precision mantissa table 1400. The invalid precision mantissa table 1400 includes a time [sec] field 1410 and an invalid precision mantissa field 1420. The time [sec] column 1410 stores time [sec]. The invalid precision mantissa field 1420 stores invalid precision mantissa values (lower mantissa values).

なお、仮数値分割モジュール130(後述する第3の実施の形態における予測誤差算出モジュール3135)は、有効精度の仮数値の予測値を生成し予測誤差を算出するようにしてもよい。この処理によって、時間経過で同じ仮数値が連続する場合に、基本符号の符号量を削減できる。ここでは時間tにおける有効精度の仮数値の予測値p(t)を、式(6)で定義する。なお、予測値p(t)はある複数の有効精度の仮数値との誤差二乗和を最小にする値で定義するなど、別の算出方法を用いてもよい。

Figure 2018019138
有効精度の仮数値m1(t)と予測した有効精度の仮数値p(t)の時間tにおける予測誤差△m1(t)は式(7)で定義する。
Figure 2018019138
Note that the mantissa division module 130 (prediction error calculation module 3135 in a third embodiment to be described later) may generate a prediction value of a significand with effective accuracy and calculate a prediction error. With this processing, the code amount of the basic code can be reduced when the same mantissa value continues over time. Here, the estimated value p (t) of the mantissa with effective accuracy at time t is defined by equation (6). Note that another calculation method may be used, such as defining the predicted value p (t) as a value that minimizes the sum of squared errors with a plurality of effective precision mantissa values.
Figure 2018019138
The prediction error Δm1 (t) at the time t between the effective precision mantissa value m1 (t) and the predicted effective precision mantissa value p (t) is defined by equation (7).
Figure 2018019138

式(7)より、予測誤差△m1(t)を図15の例に示す。この構成では、仮数値m1(t)の代わりに予測誤差△m1(t)を符号化する。
図15は、予測誤差テーブル1500のデータ構造例を示す説明図である。
予測誤差テーブル1500は、時間[sec]欄1510、有効精度の仮数値の予測誤差欄1520を有している。時間[sec]欄1510は、時間[sec]を記憶している。有効精度の仮数値の予測誤差欄1520は、有効精度の仮数値の予測誤差を記憶している。
From the equation (7), the prediction error Δm1 (t) is shown in the example of FIG. In this configuration, the prediction error Δm1 (t) is encoded instead of the mantissa value m1 (t).
FIG. 15 is an explanatory diagram showing an example of the data structure of the prediction error table 1500.
The prediction error table 1500 includes a time [sec] column 1510 and a prediction error column 1520 of a significand value of effective accuracy. The time [sec] column 1510 stores time [sec]. The effective accuracy mantissa prediction error column 1520 stores an effective accuracy mantissa prediction error.

第1の符号化モジュール135、第2の符号化モジュール140の処理、符号化データ(基本符号142、差分符号144)について説明する。第1の符号化モジュール135は、ブロック内最大指数値及び有効精度の仮数値を符号化した符号化データを基本符号142(図16)として出力する。第2の符号化モジュール140は、無効精度の仮数値及び指数値残差を符号化した符号化データを差分符号144(図17)として出力する。なお、有効精度の仮数値の予測を行う場合、基本符号はブロック内最大指数値及び有効精度の仮数値の予測誤差を符号化する(図18)。基本符号及び差分符号は、それぞれハフマン符号や算術符号などの従来手法を用いて可逆で符号化する。
図16は、基本符号の符号化データ1600のデータ構造例(基本符号の符号化データの構造例(有効精度の仮数値の予測を行わない場合))を示す説明図である。基本符号の符号化データ1600は、ブロック内最大指数値1610と有効精度の仮数値1620により構成されている。
図17は、差分符号の符号化データ1700のデータ構造例(差分符号の符号化データの構造例)を示す説明図である。差分符号の符号化データ1700は、差分指数値1710と無効精度の仮数値1720により構成されている。
図18は、基本符号の符号化データ1800のデータ構造例(基本符号の符号化データの構造例(有効精度の仮数値の予測を行う場合))を示す説明図である。基本符号の符号化データ1800は、ブロック内最大指数値1810と有効精度の仮数値の予測誤差1820により構成されている。
The processing of the first encoding module 135 and the second encoding module 140 and the encoded data (basic code 142 and differential code 144) will be described. The first encoding module 135 outputs encoded data obtained by encoding the intra-block maximum exponent value and the mantissa value of effective precision as the basic code 142 (FIG. 16). The second encoding module 140 outputs encoded data obtained by encoding the invalid precision mantissa value and the exponent value residual as a differential code 144 (FIG. 17). When predicting a mantissa value with effective accuracy, the basic code encodes the intra-block maximum exponent value and the prediction error of the mantissa value with effective accuracy (FIG. 18). The basic code and the difference code are encoded losslessly using conventional methods such as Huffman code and arithmetic code, respectively.
FIG. 16 is an explanatory diagram showing a data structure example of encoded data 1600 of a basic code (an example of a structure of encoded data of a basic code (when effective value mantissa is not predicted)). The encoded data 1600 of the basic code is composed of an intra-block maximum exponent value 1610 and an effective precision mantissa 1620.
FIG. 17 is an explanatory diagram illustrating a data structure example (difference code encoded data structure example) of differential code encoded data 1700. The encoded data 1700 of the differential code includes a differential exponent value 1710 and an invalid precision mantissa 1720.
FIG. 18 is an explanatory diagram showing an example of the data structure of encoded data 1800 of the basic code (example of the structure of encoded data of the basic code (when predicting a significand with effective precision)). The encoded data 1800 of the basic code is composed of an intra-block maximum exponent value 1810 and an effective precision mantissa prediction error 1820.

復号装置150による処理を説明する。
まず、有効精度のデータを取得する方法を説明する。第1の復号モジュール155は、時間tにおける基本符号を復号して、注目ブロックのブロック内最大指数値f’及び有効精度の仮数値m1’(t)を得る。時間tにおける指数値e’(t)及び仮数値m’(t)は、式(8)及び式(9)で定義される。

Figure 2018019138
Figure 2018019138
Processing performed by the decoding device 150 will be described.
First, a method for acquiring data with effective accuracy will be described. The first decoding module 155 decodes the basic code at time t to obtain the maximum exponent value f ′ within the block of interest and the mantissa value m1 ′ (t) of effective accuracy. The exponent value e ′ (t) and the mantissa value m ′ (t) at time t are defined by Equation (8) and Equation (9).
Figure 2018019138
Figure 2018019138

有効精度の仮数値の予測誤差を符号化している場合は、時間tにおける予測値p’(t)及び基本符号を復号して得られる有効精度の仮数値の予測誤差△m1’(t)から仮数値m’(t)を計算する。予測値p’(t)及び仮数値m’(t)は式(10)及び式(11)で定義される。

Figure 2018019138
Figure 2018019138
式(10)及び式(11)より、注目ブロックの指数値e’(t)及び仮数値m’(t)を図19の例、図20の例に示す。
図19は、指数値テーブル1900のデータ構造例を示す説明図である。指数値テーブル1900は、時間[sec]欄1910、指数値欄1920を有している。時間[sec]欄1910は、時間[sec]を記憶している。指数値欄1920は、指数値を記憶している。
図20は、有効精度の仮数値テーブル2000のデータ構造例を示す説明図である。有効精度の仮数値テーブル2000は、時間[sec]欄2010、有効精度の仮数値欄2020を有している。時間[sec]欄2010は、時間[sec]を記憶している。有効精度の仮数値欄2020は、有効精度の仮数値を記憶している。 When the prediction error of the mantissa value with effective precision is encoded, from the prediction value p ′ (t) at time t and the prediction error Δm1 ′ (t) of mantissa value with effective accuracy obtained by decoding the basic code. The mantissa value m ′ (t) is calculated. The predicted value p ′ (t) and the mantissa value m ′ (t) are defined by Expression (10) and Expression (11).
Figure 2018019138
Figure 2018019138
From the formula (10) and the formula (11), the index value e ′ (t) and the mantissa value m ′ (t) of the block of interest are shown in the example of FIG. 19 and the example of FIG.
FIG. 19 is an explanatory diagram showing an example of the data structure of the exponent value table 1900. The exponent value table 1900 has a time [sec] column 1910 and an exponent value column 1920. The time [sec] column 1910 stores time [sec]. The exponent value column 1920 stores an exponent value.
FIG. 20 is an explanatory diagram showing an example of the data structure of the significand value table 2000 of effective accuracy. The effective accuracy mantissa table 2000 has a time [sec] field 2010 and an effective accuracy mantissa field 2020. The time [sec] column 2010 stores time [sec]. The effective accuracy mantissa column 2020 stores effective accuracy mantissa values.

第2の復号モジュール160、加算モジュール165による処理が不要である場合について説明する。
変換モジュール170は、ブロック内最大指数値及び有効精度の仮数値を浮動小数点数に変換する。時間t、有効数字N桁とする。時間tの浮動小数点数データをF’(t)とすると、 F’(t)は式(12)のように表す。

Figure 2018019138
式(12)より、有効精度のデータを図21の例に示す。
図21は、有効精度データテーブル2100のデータ構造例を示す説明図である。有効精度データテーブル2100は、時間[sec]欄2110、X座標値[mm]欄2120を有している。時間[sec]欄2110は、時間[sec]を記憶している。X座標値[mm]欄2120は、X座標値[mm]を記憶している。 A case where the processing by the second decoding module 160 and the addition module 165 is not necessary will be described.
The conversion module 170 converts the maximum exponent value in the block and the mantissa value of effective precision into a floating point number. The time t is assumed to be N significant digits. Assuming that the floating point number data at time t is F ′ (t), F ′ (t) is expressed as shown in Expression (12).
Figure 2018019138
The data of effective accuracy is shown in the example of FIG.
FIG. 21 is an explanatory diagram showing an example of the data structure of the effective accuracy data table 2100. The effective accuracy data table 2100 has a time [sec] column 2110 and an X coordinate value [mm] column 2120. The time [sec] column 2110 stores time [sec]. The X coordinate value [mm] column 2120 stores the X coordinate value [mm].

ブロック統合モジュール175は、分割されたブロックを統合し、有効精度のデータを得る。入力データの有効精度の浮動小数点数データの伸長結果を図22の例に示す。各ブロックの精度はe+03で統一されている。
図22は、有効精度データテーブル2200のデータ構造例を示す説明図である。有効精度データテーブル2200は、時間[sec]欄2210、X座標値[mm]欄2220を有している。時間[sec]欄2210は、時間[sec]を記憶している。X座標値[mm]欄2220は、X座標値[mm]を記憶している。
The block integration module 175 integrates the divided blocks to obtain effective accuracy data. FIG. 22 shows an expansion result of floating-point number data with effective precision of input data. The accuracy of each block is unified as e + 03.
FIG. 22 is an explanatory diagram showing an example of the data structure of the effective accuracy data table 2200. The effective accuracy data table 2200 has a time [sec] column 2210 and an X coordinate value [mm] column 2220. The time [sec] column 2210 stores time [sec]. The X coordinate value [mm] column 2220 stores the X coordinate value [mm].

次に、無効精度のデータを伸長する方法を説明する。前提として、第1の復号モジュール155によって基本符号を復号して有効精度のデータが得られているとする。
時間tにおける差分指数値を△e’’(t)及び無効精度の仮数値をm2’’(t)とする。第2の復号モジュール160は、差分符号144から差分指数値△e’’(t)及び無効精度の仮数値m2’’(t)を復元する。そして、加算モジュール165は、有効精度のデータに無効精度の差分指数値△e’’(t)及び無効精度の仮数値m2’’(t)を、加算モジュール165が加算することで、有効精度のデータの指数値e(t)’’と有効精度の仮数値m’’(t)を、式(13)と式(14)から復元する。

Figure 2018019138
Figure 2018019138
Next, a method for decompressing invalid precision data will be described. As a premise, it is assumed that the basic code is decoded by the first decoding module 155 to obtain data of effective accuracy.
Let Δe ″ (t) be the difference index value at time t, and m2 ″ (t) be the invalid precision mantissa. The second decoding module 160 restores the difference exponent value Δe ″ (t) and the invalid precision mantissa m2 ″ (t) from the difference code 144. Then, the addition module 165 adds the invalid precision difference exponent value Δe ″ (t) and the invalid precision mantissa m2 ″ (t) to the effective precision data, and the addition module 165 adds the effective precision data. The exponent value e (t) '' and the effective precision mantissa value m '' (t) are restored from the equations (13) and (14).
Figure 2018019138
Figure 2018019138

式(13)及び式(14)より、注目ブロックの指数値e’’(t)及び仮数値m’’(t)を図23の例、図24の例に示す。
図23は、指数値テーブル2300のデータ構造例を示す説明図である。指数値テーブル2300は、時間[sec]欄2310、指数値欄2320を有している。時間[sec]欄2310は、時間[sec]を記憶している。指数値欄2320は、指数値を記憶している。
図24は、有効精度の仮数値テーブル2400のデータ構造例を示す説明図である。有効精度の仮数値テーブル2400は、時間[sec]欄2410、有効精度の仮数値欄2420を有している。時間[sec]欄2410は、時間[sec]を記憶している。有効精度の仮数値欄2420は、有効精度の仮数値を記憶している。
From the equations (13) and (14), the index value e ″ (t) and the mantissa value m ″ (t) of the block of interest are shown in the example of FIG. 23 and the example of FIG.
FIG. 23 is an explanatory diagram of an exemplary data structure of the exponent value table 2300. The exponent value table 2300 has a time [sec] column 2310 and an exponent value column 2320. The time [sec] column 2310 stores time [sec]. The exponent value column 2320 stores an exponent value.
FIG. 24 is an explanatory diagram showing an example of the data structure of the significand value table 2400 with effective accuracy. The effective accuracy mantissa table 2400 includes a time [sec] column 2410 and an effective accuracy mantissa column 2420. The time [sec] column 2410 stores time [sec]. The effective accuracy mantissa field 2420 stores effective accuracy mantissa values.

変換モジュール170は、ブロック内最大指数値及び有効精度の仮数値を浮動小数点数に変換する。時間tの浮動小数点数データをF’’(t)とすると、F’’(t)は式(15)のように表す。式(15)より、無効精度のデータとして図25の例が得られる。

Figure 2018019138
図25は、有効精度データテーブル2500(復号されたデータ)のデータ構造例を示す説明図である。有効精度データテーブル2500は、時間[sec]欄2510、X座標値[mm]欄2520を有している。時間[sec]欄2510は、時間[sec]を記憶している。X座標値[mm]欄2520は、X座標値[mm]を記憶している。 The conversion module 170 converts the maximum exponent value in the block and the mantissa value of effective precision into a floating point number. Assuming that the floating point number data at time t is F ″ (t), F ″ (t) is expressed as in Expression (15). From the equation (15), the example of FIG. 25 is obtained as invalid precision data.
Figure 2018019138
FIG. 25 is an explanatory diagram showing an example of the data structure of the effective accuracy data table 2500 (decoded data). The effective accuracy data table 2500 has a time [sec] column 2510 and an X coordinate value [mm] column 2520. The time [sec] column 2510 stores time [sec]. The X coordinate value [mm] column 2520 stores the X coordinate value [mm].

ブロック統合モジュール175は、分割されたブロックを統合し、無効精度のデータを得る。入力データの無効精度の浮動小数点数データの復号結果を図26の例に示す。
図26は、有効精度データテーブル2600(復号されたデータ)のデータ構造例を示す説明図である。有効精度データテーブル2600は、時間[sec]欄2610、X座標値[mm]欄2620を有している。時間[sec]欄2610は、時間[sec]を記憶している。X座標値[mm]欄2620は、X座標値[mm]を記憶している。
The block integration module 175 integrates the divided blocks and obtains invalid precision data. FIG. 26 shows an example of the decoding result of the invalid precision floating point number data of the input data.
FIG. 26 is an explanatory diagram showing an example of the data structure of the effective accuracy data table 2600 (decoded data). The effective accuracy data table 2600 has a time [sec] column 2610 and an X coordinate value [mm] column 2620. The time [sec] column 2610 stores time [sec]. The X coordinate value [mm] column 2620 stores the X coordinate value [mm].

本実施の形態と従来手法における圧縮伸長の違いを説明する。例えば、図7のデータを可視化する場合と別の数値計算への入力を行う場合を考える。このとき、可視化にはe+03の精度までのデータが必要であり、数値計算には元データの精度まで必要であるとする。従来手法は入力データを可視化用にe+03の精度で圧縮伸長し、さらに数値計算用に元データの精度で圧縮伸長する必要がある。本実施の形態は、入力データを一度だけ圧縮すれば、再び圧縮を行うことなくe+03の精度も元データの精度のデータも伸長することができる。   The difference in compression and expansion between the present embodiment and the conventional method will be described. For example, let us consider a case where the input of numerical calculation different from the case of visualizing the data in FIG. At this time, it is assumed that the data up to the accuracy of e + 03 is required for visualization, and the accuracy of the original data is required for the numerical calculation. The conventional method needs to compress and decompress the input data with the accuracy of e + 03 for visualization, and further compress and decompress with the accuracy of the original data for numerical calculation. In this embodiment, if the input data is compressed only once, the accuracy of e + 03 and the accuracy of the original data can be expanded without performing compression again.

本実施の形態と従来手法の符号量の違いを説明する。例えば、入力データのブロック分割数を1とする。従来手法を用いた場合の符号化データの総符号量は、「有効精度の符号」の符号量と「無効精度の符号」の符号量との加算となり、本実施の形態を用いた場合の符号化データの総符号量は「基本符号142」の符号量と「差分符号144」の符号量との加算となる。ここで、「有効精度の符号」の符号量と「基本符号142」の符号量は、原理的に同じになる。一方で、「無効精度の符号」の符号量は入力データを全て符号化した符号化データであり、「差分符号144」の符号量は入力データの一部を符号化した符号化データである。そのため、「差分符号144」の符号量は「無効精度の符号」の符号量よりも小さくなる。よって、複数の精度でデータを圧縮伸長する場合、本実施の形態の符号化データの総符号量は、従来手法の符号化データの総符号量よりも小さくなる。   A difference in code amount between the present embodiment and the conventional method will be described. For example, the number of block divisions of input data is set to 1. The total code amount of encoded data when the conventional method is used is the sum of the code amount of “effective precision code” and the code amount of “invalid precision code”, and the code amount when this embodiment is used. The total code amount of the digitized data is the sum of the code amount of “basic code 142” and the code amount of “difference code 144”. Here, the code amount of “effective precision code” and the code amount of “basic code 142” are the same in principle. On the other hand, the code amount of “invalid precision code” is encoded data obtained by encoding all input data, and the code amount of “differential code 144” is encoded data obtained by encoding a part of the input data. Therefore, the code amount of “difference code 144” is smaller than the code amount of “invalid precision code”. Therefore, when compressing and decompressing data with a plurality of precisions, the total code amount of the encoded data of the present embodiment is smaller than the total code amount of the encoded data of the conventional method.

<第2の実施の形態>
図27は、第2の実施の形態の構成例についての概念的なモジュール構成図である。
なお、前述の実施の形態と同種の部位には同一符号を付し重複した説明を省略する(以下、同様)。
符号化装置2700は、ブロック分割モジュール110、浮動小数点数分離モジュール115、ブロック内最大指数値算出モジュール120、差分指数値算出モジュール125、仮数値分割モジュール130、有効精度分割モジュール2735、第1−1の符号化モジュール2740、第1−2の符号化モジュール2745、第2の符号化モジュール140を有している。符号化装置2700は、符号化装置100に、有効精度分割モジュール2735、第1−2の符号化モジュール2745等を付加したものである。
<Second Embodiment>
FIG. 27 is a conceptual module configuration diagram of a configuration example according to the second embodiment.
In addition, the same code | symbol is attached | subjected to the site | part of the same kind as the above-mentioned embodiment, and the overlapping description is abbreviate | omitted (hereinafter the same).
The encoding apparatus 2700 includes a block division module 110, a floating-point number separation module 115, an intra-block maximum exponent value calculation module 120, a difference exponent value calculation module 125, a mantissa value division module 130, an effective precision division module 2735, and 1-1. Encoding module 2740, first-second encoding module 2745, and second encoding module 140. The encoding device 2700 is obtained by adding an effective accuracy division module 2735, a 1-2 encoding module 2745, and the like to the encoding device 100.

ブロック分割モジュール110は、浮動小数点数分離モジュール115と接続されており、浮動小数点数データ群105を受け付ける。
浮動小数点数分離モジュール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を出力する。
The block division module 110 is connected to the floating point number separation module 115 and receives the floating point number data group 105.
The floating point number separation module 115 is connected to the block division module 110, the intra-block maximum exponent value calculation module 120, and the mantissa division module 130.
The intra-block maximum exponent value calculation module 120 is connected to the floating point number separation module 115 and the difference exponent value calculation module 125.
The difference index value calculation module 125 is connected to the intra-block maximum index value calculation module 120 and the mantissa division module 130.
The mantissa division module 130 is connected to the floating point number separation module 115, the difference exponent value calculation module 125, and the effective precision division module 2735.
The effective precision division module 2735 is connected to the mantissa division module 130, the 1-1 encoding module 2740, the 1-2 encoding module 2745, and the second encoding module 140. The effective accuracy division module 2735 divides the first mantissa. Specifically, the effective accuracy division module 2735 divides the effective accuracy into arbitrary accuracy. Thereby, the effective accuracy can be divided into a plurality of accuracy.
The 1-1 encoding module 2740 is connected to the effective precision division module 2735 and outputs the basic code 1: 2742. The 1-1 encoding module 2740 encodes the above-described predetermined exponent value and the most significant mantissa divided by the effective precision dividing module 2735. Specifically, the 1-1 encoding module 2740 encodes the maximum exponent value in the block and the mantissa value having the lowest precision divided by the minimum precision.
The 1-2 encoding module 2745 is connected to the effective precision division module 2735 and outputs the basic code m: 2742-m. The 1-2 encoding module 2745 encodes a mantissa value other than the most significant mantissa divided by the effective precision division module 2735. Specifically, the 1-2 encoding module 2745 encodes an effective precision mantissa.
The second encoding module 140 is connected to the effective accuracy division module 2735 and outputs a difference code 144.

復号装置2750は、第1−1の復号モジュール2755、第1−2の復号モジュール2760、第2の復号モジュール160、加算モジュール165、変換モジュール170、ブロック統合モジュール175を有している。
第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を出力する。
The decoding device 2750 includes a 1-1 decoding module 2755, a 1-2 decoding module 2760, a second decoding module 160, an addition module 165, a conversion module 170, and a block integration module 175.
The 1-1st decoding module 2755 is connected to the addition module 165 and receives the basic code 1: 2742. The 1-1 decoding module 2755 is a predetermined exponent value encoded by the 1-1 encoding module 2740 of the encoding device 2700 and the most significant mantissa value divided by the effective precision dividing module 2735. Is decrypted. Specifically, the 1-1st decoding module 2755 decodes the mantissa having the lowest precision among the mantissas having effective precision divided from the maximum exponent value in the block from the basic code 1: 2742.
The 1-2 decoding module 2760 is connected to the addition module 165 and receives the basic code m: 2742-m. The 1-2 decoding module 2760 encodes a mantissa value other than the highest-order mantissa value divided by the effective precision division module 2735 encoded by the 1-2 encoding module 2745 of the encoding device 2700. To do. Specifically, the 1-2 decoding module 2760 decodes a mantissa value other than the lowest accuracy among the mantissa values of effective precision divided from the basic code m: 2742-m.
The second decoding module 160 is connected to the addition module 165 and receives the difference code 144.
The addition module 165 is connected to the 1-1 decoding module 2755, the 1-2 decoding module 2760, the second decoding module 160, and the conversion module 170.
The conversion module 170 is connected to the addition module 165 and the block integration module 175.
The block integration module 175 is connected to the conversion module 170 and outputs a floating point number data group 195.

図28は、第2の実施の形態による処理例を示す説明図である。
有効精度分割モジュール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を出力する。
FIG. 28 is an explanatory diagram illustrating a processing example according to the second exemplary embodiment.
The effective precision division module 2735 has a mantissa division module 2835 with effective precision.
The effective precision mantissa division module 2835 is connected to the 1-1 encoding module 2740 and the 1-2 encoding module 2745. The effective precision mantissa division module 2835 accepts an N-digit effective precision mantissa 2810, divides the N-digit effective accuracy mantissa 2810 into k (2 ≦ k ≦ M), and outputs the first mantissa 2810. The numerical value 2837 is passed to the 1-1 encoding module 2740 and the m-th (m = 1... K) mantissa 2839 is passed to the 1-2 encoding module 2745.
The 1-1 encoding module 2740 is connected to the effective precision mantissa division module 2835 of the effective accuracy division module 2735, receives the first mantissa value 2837 from the effective precision mantissa division module 2835, and The code 1: 2742 is output.
The 1-2 encoding module 2745 is connected to the effective precision mantissa division module 2835 of the effective accuracy division module 2735, and the mth (m = 1... K) mth (m = 1... K) from the effective accuracy mantissa division module 2835. The mantissa value 2839 is received, and the basic code 2: 2842-2, the basic code 3: 2842-3, the basic code k-1: 2842-k-1, and the basic code k: 2842-k are output.

符号化装置2700は、符号化装置100に、有効精度を任意の精度に分割する有効精度分割モジュール2735を加えたものである。有効精度を複数の精度に分割して符号化することで、ユーザーは用途に応じて必要な精度を取得することができる。有効精度の仮数値の有効桁数をMとする。有効精度の仮数値を任意の精度でk(2≦k≦M)個に分割し、基本符号m(m=1…k)を生成する。ここで、分割された有効精度の仮数値を精度が低い方から順番に第mの仮数値と呼ぶことにする。基本符号1:2742は、ブロック内最大指数値と第1の仮数値の符号化データで構成される。例えば、図29に示す基本符号1の符号化データ2900は、基本符号1:2742のデータ構造を示しており、ブロック内最大指数値2910と第1番目の仮数値2920により構成されている。基本符号m:2742−m(m≧2)は、第mの仮数値の符号化データで構成される。例えば、図30に示す基本符号m(m≧2)の符号化データ3000は、基本符号m:2742−mのデータ構造を示している。基本符号mは、ハフマン符号や算術符号などの従来手法を用いて可逆で符号化する。これにより、復号装置2750は、基本符号1:2742で復号した有効精度のデータを伸長した後に、基本符号m:2742−m(m≧2)を加算することで、再符号化せずにより高い精度のデータを段階的に伸長することができる。   The encoding device 2700 is obtained by adding an effective accuracy division module 2735 for dividing the effective accuracy to an arbitrary accuracy to the encoding device 100. By dividing the effective accuracy into a plurality of accuracy and encoding, the user can obtain the required accuracy according to the application. Let M be the number of significant digits of the significand of effective precision. A mantissa of effective accuracy is divided into k (2 ≦ k ≦ M) with arbitrary accuracy, and a basic code m (m = 1... K) is generated. Here, the divided mantissa values with effective accuracy are called m-th mantissa values in order from the lowest accuracy. The basic code 1: 2742 is composed of encoded data of the maximum exponent value in the block and the first mantissa value. For example, the encoded data 2900 of the basic code 1 shown in FIG. 29 shows the data structure of the basic code 1: 2742, and is composed of an intra-block maximum exponent value 2910 and a first mantissa value 2920. The basic code m: 2742-m (m ≧ 2) is composed of encoded data of the mth mantissa value. For example, the encoded data 3000 of the basic code m (m ≧ 2) shown in FIG. 30 shows the data structure of the basic code m: 2742-m. The basic code m is reversibly encoded using a conventional method such as a Huffman code or an arithmetic code. As a result, the decoding device 2750 adds the basic code m: 2742−m (m ≧ 2) after decompressing the data with effective precision decoded with the basic code 1: 2742, and thus is higher without re-encoding. Accurate data can be decompressed in stages.

<第3の実施の形態>
図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によって算出された誤差を符号化する。
<Third Embodiment>
FIG. 31 is a conceptual module configuration diagram of a configuration example according to the third embodiment.
The encoding device 3100 includes a block division module 110, a floating point number separation module 115, an intra-block maximum exponent value calculation module 120, a difference exponent value calculation module 125, a mantissa value division module 130, a prediction error calculation module 3135, a first 1-a. Encoding module 3140 and second encoding module 140. The encoding device 3100 is obtained by adding a prediction error calculation module 3135 to the encoding device 100. In the description of the first embodiment, the processing described by using the expressions (6), (7), FIG. 15 and FIG. 18 is performed.
The block division module 110 is connected to the floating point number separation module 115 and receives the floating point number data group 105.
The floating point number separation module 115 is connected to the block division module 110, the intra-block maximum exponent value calculation module 120, and the mantissa division module 130.
The intra-block maximum exponent value calculation module 120 is connected to the floating point number separation module 115 and the difference exponent value calculation module 125.
The difference index value calculation module 125 is connected to the intra-block maximum index value calculation module 120 and the mantissa division module 130.
The mantissa division module 130 is connected to the floating point number separation module 115, the difference index value calculation module 125, and the prediction error calculation module 3135.
The prediction error calculation module 3135 is connected to the mantissa division module 130, the 1-a encoding module 3140, and the second encoding module 140. The prediction error calculation module 3135 calculates an error between the first mantissa value or the second mantissa value and the prediction value. Specifically, the prediction error calculation module 3135 calculates a prediction error between the mantissa value of the effective accuracy and the prediction value. Thus, the compression rate can be increased when the same mantissa value continues in the data string.
The 1-a encoding module 3140 is connected to the prediction error calculation module 3135 and outputs a basic code a3142. The 1-a encoding module 3140 encodes the predetermined exponent value and the error calculated by the prediction error calculation module 3135. Specifically, the 1-a encoding module 3140 encodes the intra-block maximum exponent value and the prediction error.
The second encoding module 140 is connected to the prediction error calculation module 3135 and outputs a difference code 144. The second encoding module 140 encodes the error calculated by the prediction error calculation module 3135.

復号装置3150は、第1−aの復号モジュール3155、第2の復号モジュール160、有効精度の仮数値復元モジュール3160、加算モジュール165、変換モジュール170、ブロック統合モジュール175を有している。
第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を出力する。
The decoding device 3150 includes a 1-a decoding module 3155, a second decoding module 160, an effective precision mantissa restoration module 3160, an addition module 165, a conversion module 170, and a block integration module 175.
The 1-a decoding module 3155 is connected to an effective precision mantissa restoration module 3160 and receives a basic code a3142. The 1-a decoding module 3155 decodes the predetermined exponent value encoded by the 1-a encoding module 3140 of the encoding device 3100 and the error calculated by the prediction error calculation module 3135. Specifically, the 1-a decoding module 3155 decodes the intra-block maximum exponent value and the prediction error from the basic code a: 3142.
The effective precision mantissa restoration module 3160 is connected to the 1-a decoding module 3155 and the addition module 165. The effective precision mantissa restoration module 3160 restores the effective precision mantissa from the prediction error.
The second decoding module 160 is connected to the addition module 165 and receives the difference code 144.
The addition module 165 is connected to the mantissa restoration module 3160 with effective precision, the second decoding module 160, and the conversion module 170.
The conversion module 170 is connected to the addition module 165 and the block integration module 175.
The block integration module 175 is connected to the conversion module 170 and outputs a floating point number data group 195.

図32は、第3の実施の形態による処理例を示す説明図である。
予測誤差算出モジュール3135は、第1−aの符号化モジュール3140と接続されており、有効精度の仮数値3210を受け付ける。
第1−aの符号化モジュール3140は、予測誤差算出モジュール3135と接続されており、基本符号a3142を出力する。
予測誤差算出モジュール3135は、有効精度の仮数値と予測値との予測誤差を算出する。予測値の生成方法としては、例えば符号化済みの有効精度の仮数値を予測値として用いる方法や、複数の符号化済みの有効精度の仮数値との誤差二乗和を最小にする値を予測値として用いる方法等を用いればよい。予測誤差は、ハフマン符号や算術符号などの従来手法を用いて可逆で符号化する。データの特徴に応じて適切な予測方法を用いれば、圧縮率を高くすることができる。
FIG. 32 is an explanatory diagram illustrating a processing example according to the third exemplary embodiment.
The prediction error calculation module 3135 is connected to the 1-a-th encoding module 3140 and receives a significand value 3210 of effective accuracy.
The 1-a encoding module 3140 is connected to the prediction error calculation module 3135 and outputs a basic code a3142.
The prediction error calculation module 3135 calculates a prediction error between the effective precision mantissa value and the prediction value. As a method for generating a predicted value, for example, a method using an encoded effective precision mantissa value as a predicted value, or a value that minimizes the sum of squares of errors with a plurality of encoded effective accuracy mantissa values is used as a predicted value. A method used as the above may be used. The prediction error is losslessly encoded using a conventional method such as Huffman code or arithmetic code. If an appropriate prediction method is used according to the characteristics of data, the compression rate can be increased.

<第4の実施の形態>
図33は、第4の実施の形態の構成例についての概念的なモジュール構成図である。
前述の実施の形態では、ブロック分割モジュール110によって浮動小数点数データ群105を分割したが、必ずしもブロックに分割する必要はない。対象とする浮動小数点数データ群105内で、予め定められた指数値(例えば、最大の指数値等)を抽出できればよい。
<Fourth embodiment>
FIG. 33 is a conceptual module configuration diagram of a configuration example according to the fourth embodiment.
In the above-described embodiment, the floating-point number data group 105 is divided by the block division module 110, but it is not necessarily divided into blocks. It suffices if a predetermined exponent value (for example, the maximum exponent value) can be extracted from the target floating-point number data group 105.

符号化装置3300は、浮動小数点数分離モジュール115、最大指数値算出モジュール3320、差分指数値算出モジュール125、仮数値分割モジュール130、第1の符号化モジュール135、第2の符号化モジュール140を有している。
浮動小数点数分離モジュール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を出力する。
The encoding device 3300 includes a floating point number separation module 115, a maximum exponent value calculation module 3320, a difference exponent value calculation module 125, a mantissa division module 130, a first encoding module 135, and a second encoding module 140. doing.
The floating point number separation module 115 is connected to the maximum exponent value calculation module 3320 and the mantissa division module 130 and receives the floating point number data group 105.
The maximum exponent value calculation module 3320 is connected to the floating point number separation module 115 and the difference exponent value calculation module 125. The maximum exponent value calculation module 3320 extracts the maximum exponent value in the target floating point number data group 105.
The difference index value calculation module 125 is connected to the maximum index value calculation module 3320 and the mantissa division module 130.
The mantissa division module 130 is connected to the floating point number separation module 115, the difference exponent value calculation module 125, the first encoding module 135, and the second encoding module 140.
The first encoding module 135 is connected to the mantissa division module 130 and outputs a basic code 142.
The second encoding module 140 is connected to the mantissa division module 130 and outputs a difference code 144.

復号装置3350は、第1の復号モジュール155、第2の復号モジュール160、加算モジュール165、変換モジュール170を有している。
第1の復号モジュール155は、加算モジュール165と接続されており、基本符号142を受け付ける。
第2の復号モジュール160は、加算モジュール165と接続されており、差分符号144を受け付ける。
加算モジュール165は、第1の復号モジュール155、第2の復号モジュール160、変換モジュール170と接続されている。
変換モジュール170は、加算モジュール165と接続されており、浮動小数点数データ群195を出力する。
The decoding device 3350 includes a first decoding module 155, a second decoding module 160, an addition module 165, and a conversion module 170.
The first decoding module 155 is connected to the addition module 165 and receives the basic code 142.
The second decoding module 160 is connected to the addition module 165 and receives the difference code 144.
The addition module 165 is connected to the first decoding module 155, the second decoding module 160, and the conversion module 170.
The conversion module 170 is connected to the addition module 165 and outputs a floating point number data group 195.

図34は、第4の実施の形態(符号化装置3300)による処理例を示すフローチャートである。
ステップ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に修正したものである。
FIG. 34 is a flowchart illustrating a processing example according to the fourth exemplary embodiment (encoding device 3300).
In step S3402, the floating point number separation module 115 separates the exponent value e and the mantissa value m.
In step S3404, the maximum exponent value calculation module 3320 calculates the maximum exponent value f.
In step S3406, the difference index value calculation module 125 calculates a difference index value Δe.
In step S3408, the mantissa division module 130 divides the mantissa m. The detailed processing content of step S3408 has been described above with reference to the flowchart shown in the example of FIG.
In step S3410, the first encoding module 135 performs encoding of basic data using compression A.
In step S <b> 3412, the second encoding module 140 encodes difference data using compression B.
The flowchart shown in the example of FIG. 34 is obtained by deleting step S302 of the flowchart shown in the example of FIG. 3 and correcting step S306 to step S3404.

図35は、第4の実施の形態(復号装置3350)による処理例を示すフローチャートである。
ステップS3502では、第1の復号モジュール155は、伸長Aによる基本データの復号を行う。
ステップS3504では、第2の復号モジュール160は、伸長Bによる符号データの復号を行う。
ステップS3506では、加算モジュール165は、データを加算する。
ステップS3508では、変換モジュール170は、浮動小数点数を生成する。
図35の例に示すフローチャートは、図5の例に示すフローチャートのステップS510を削除したものである。
FIG. 35 is a flowchart illustrating a processing example according to the fourth exemplary embodiment (decoding device 3350).
In step S3502, the first decryption module 155 decrypts the basic data by the decompression A.
In step S3504, the second decoding module 160 decodes the code data by the expansion B.
In step S3506, the addition module 165 adds data.
In step S3508, the conversion module 170 generates a floating point number.
The flowchart shown in the example of FIG. 35 is obtained by deleting step S510 of the flowchart shown in the example of FIG.

なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図36に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。つまり、具体例として、処理部(演算部)としてCPU3601を用い、記憶装置としてRAM3602、ROM3603、HD3604を用いている。HD3604として、例えばハードディスク、SSD(Solid State Drive)を用いてもよい。ブロック分割モジュール110、浮動小数点数分離モジュール115、ブロック内最大指数値算出モジュール120、差分指数値算出モジュール125、仮数値分割モジュール130、第1の符号化モジュール135、第2の符号化モジュール140、第1の復号モジュール155、第2の復号モジュール160、加算モジュール165、変換モジュール170、ブロック統合モジュール175、有効精度分割モジュール2735、第1−1の符号化モジュール2740、第1−2の符号化モジュール2745、第1−2の復号モジュール2760、有効精度の仮数値分割モジュール2835、予測誤差算出モジュール3135、第1−aの符号化モジュール3140、第1−aの復号モジュール3155、有効精度の仮数値復元モジュール3160等のプログラムを実行するCPU3601と、そのプログラムやデータを記憶するRAM3602と、本コンピュータを起動するためのプログラム等が格納されているROM3603と、符号化対象である浮動小数点数データ群105、基本符号142、差分符号144、復号された浮動小数点数データ群195を記憶する補助記憶装置(フラッシュ・メモリ等であってもよい)であるHD3604と、キーボード、マウス、タッチスクリーン、マイク等に対する利用者の操作に基づいてデータを受け付ける受付装置3606と、CRT、液晶ディスプレイ、スピーカー等の出力装置3605と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース3607、そして、それらをつないでデータのやりとりをするためのバス3608により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。   Note that the hardware configuration of the computer on which the program according to the present embodiment is executed is a general computer as illustrated in FIG. 36, specifically, a personal computer, a computer that can be a server, or the like. That is, as a specific example, the CPU 3601 is used as a processing unit (calculation unit), and the RAM 3602, ROM 3603, and HD 3604 are used as storage devices. As the HD 3604, for example, a hard disk or an SSD (Solid State Drive) may be used. Block division module 110, floating point number separation module 115, intra-block maximum exponent value calculation module 120, difference exponent value calculation module 125, mantissa division module 130, first encoding module 135, second encoding module 140, 1st decoding module 155, 2nd decoding module 160, addition module 165, conversion module 170, block integration module 175, effective precision division module 2735, 1-1 encoding module 2740, 1-2 encoding Module 2745, 1-2 decoding module 2760, effective precision mantissa division module 2835, prediction error calculation module 3135, 1-a encoding module 3140, 1-a decoding module 3155, effective accuracy temporary Numerical restoration module CPU 3601 for executing a program such as 160, a RAM 3602 for storing the program and data, a ROM 3603 for storing a program for starting the computer, a floating-point number data group 105 to be encoded, a basic User for HD 3604, which is an auxiliary storage device (may be a flash memory or the like) that stores code 142, differential code 144, and decoded floating point number data group 195, and a keyboard, mouse, touch screen, microphone, etc. An accepting device 3606 that accepts data based on the operation, an output device 3605 such as a CRT, a liquid crystal display, and a speaker, a communication line interface 3607 for connecting to a communication network such as a network interface card, and the like. And a bus 3608 for exchanging data. A plurality of these computers may be connected to each other via a network.

前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、図36に示すハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図36に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図36に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器(携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む)、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
Among the above-described embodiments, the computer program is a computer program that reads the computer program, which is software, in the hardware configuration system, and the software and hardware resources cooperate with each other. Is realized.
Note that the hardware configuration shown in FIG. 36 shows one configuration example, and the present embodiment is not limited to the configuration shown in FIG. 36, and is a configuration capable of executing the modules described in this embodiment. I just need it. For example, some modules may be configured with dedicated hardware (for example, Application Specific Integrated Circuit (ASIC), etc.), and some modules are in an external system and connected via a communication line Alternatively, a plurality of systems shown in FIG. 36 may be connected to each other via a communication line and cooperate with each other. In particular, in addition to personal computers, portable information communication devices (including mobile phones, smartphones, mobile devices, wearable computers, etc.), information appliances, robots, copiers, fax machines, scanners, printers, multifunction devices (scanners, printers, An image processing apparatus having two or more functions such as a copying machine and a fax machine) may be incorporated.

なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(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)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分又は全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
The program described above may be provided by being stored in a recording medium, or the program may be provided by communication means. In that case, for example, the above-described program may be regarded as an invention of a “computer-readable recording medium recording the program”.
The “computer-readable recording medium on which a program is recorded” refers to a computer-readable recording medium on which a program is recorded, which is used for program installation, execution, program distribution, and the like.
The recording medium is, for example, a digital versatile disc (DVD), which is a standard established by the DVD Forum, such as “DVD-R, DVD-RW, DVD-RAM,” and DVD + RW. Standard “DVD + R, DVD + RW, etc.”, compact disc (CD), read-only memory (CD-ROM), CD recordable (CD-R), CD rewritable (CD-RW), Blu-ray disc ( Blu-ray (registered trademark) Disc), magneto-optical disk (MO), flexible disk (FD), magnetic tape, hard disk, read-only memory (ROM), electrically erasable and rewritable read-only memory (EEPROM (registered trademark)) )), Flash memory, Random access memory (RAM) SD (Secure Digital) memory card and the like.
Then, the whole or a part of the program may be recorded on the recording medium for storage or distribution. Also, by communication, for example, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wired network used for the Internet, an intranet, an extranet, or a wireless communication It may be transmitted using a transmission medium such as a network or a combination of these, or may be carried on a carrier wave.
Furthermore, the program may be a part or all of another program, or may be recorded on a recording medium together with a separate program. Moreover, it may be divided and recorded on a plurality of recording media. Further, it may be recorded in any manner as long as it can be restored, such as compression or encryption.

100…符号化装置
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…復号装置
DESCRIPTION OF SYMBOLS 100 ... Encoding apparatus 110 ... Block division | segmentation module 115 ... Floating-point number separation module 120 ... Intra-block maximum exponent value calculation module 125 ... Difference exponent value calculation module 130 ... Mantissa value division module 135 ... 1st encoding module 140 ... 1st 2. Coding module 150 ... Decoding device 155 ... First decoding module 160 ... Second decoding module 165 ... Addition module 170 ... Conversion module 175 ... Block integration module 210 ... Supercomputer 220 ... Information processing device 230 ... Information processing device 290 ... Communication line 2700 ... Encoding device 2735 ... Effective precision division module 2740 ... 1-1 encoding module 2745 ... 1-2 encoding module 2750 ... Decoding device 2755 ... 1-1 decoding module 760 ... 1-2 decoding module 2835 ... Effective precision mantissa division module 3100 ... Encoding device 3135 ... Prediction error calculation module 3140 ... 1-a encoding module 3150 ... Decoding device 3155 ... 1-a Decoding module 3160 ... Effective precision mantissa restoration module 3300 ... Encoding device 3320 ... Maximum exponent value calculation module 3350 ... Decoding device

Claims (9)

浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、
予め定められた指数値と各データの指数値との差分を抽出する差分手段と、
前記差分にしたがって、各データの仮数値を上位の第1の仮数値と下位の第2の仮数値に分割する分割手段と、
前記予め定められた指数値と第1の仮数値を符号化する第1の符号化手段と、
各データの前記差分と第2の仮数値を符号化する第2の符号化手段
を有する情報処理装置。
Separating means for separating floating point number representation data into an exponent value and a mantissa value;
A difference means for extracting a difference between a predetermined exponent value and an exponent value of each data;
A dividing means for dividing the mantissa value of each data into an upper first mantissa value and a lower second mantissa value according to the difference;
First encoding means for encoding the predetermined exponent value and the first mantissa value;
An information processing apparatus comprising: a second encoding unit that encodes the difference between each data and a second mantissa.
予め定められた指数値として、対象とする複数の浮動小数点数のデータ内の最大の指数値とする、
請求項1に記載の情報処理装置。
As a predetermined exponent value, the maximum exponent value in the data of a plurality of target floating-point numbers,
The information processing apparatus according to claim 1.
前記分割手段は、第2の仮数値として、浮動小数点数のデータの仮数値の下位の差分の桁数の値とし、第1の仮数値として、残りの上位の桁数の値とする、
請求項1又は2に記載の情報処理装置。
The dividing means sets the value of the number of lower digits of the mantissa value of the floating-point number data as the second mantissa value, and sets the value of the remaining upper digits as the first mantissa value.
The information processing apparatus according to claim 1 or 2.
前記第1の仮数値を分割する第2の分割手段と、
前記第2の分割手段によって分割された最上位の仮数値以外の仮数値を符号化する第3の符号化手段
をさらに有し、
前記第1の符号化手段は、前記予め定められた指数値と前記第2の分割手段によって分割された最上位の仮数値を符号化する、
請求項1から3のいずれか一項に記載の情報処理装置。
Second dividing means for dividing the first mantissa value;
A third encoding means for encoding a mantissa value other than the highest-order mantissa value divided by the second dividing means;
The first encoding means encodes the predetermined exponent value and the most significant mantissa divided by the second dividing means;
The information processing apparatus according to any one of claims 1 to 3.
前記第1の仮数値又は前記第2の仮数値と予測値との誤差を算出する予測誤差算出手段
をさらに有し、
前記第1の符号化手段又は第2の符号化手段は、前記誤差を符号化する、
請求項1から4のいずれか一項に記載の情報処理装置。
Prediction error calculation means for calculating an error between the first mantissa value or the second mantissa value and a prediction value;
The first encoding means or the second encoding means encodes the error;
The information processing apparatus according to any one of claims 1 to 4.
請求項1に記載の情報処理装置の第1の符号化手段によって符号化された予め定められた指数値と第1の仮数値を復号する第1の復号手段と、
請求項1に記載の情報処理装置の第2の符号化手段によって符号化された差分と第2の仮数値を復号する第2の復号手段と、
前記第1の復号手段と前記第2の復号手段から復号したデータにしたがって、第1の仮数値と第2の仮数値を加算する加算手段と、
前記加算手段による処理結果を浮動小数点数表現に変換する変換手段
を有し、
復号したデータに必要とされる精度にしたがって、前記第2の復号手段又は前記加算手段による処理を行わせない、
情報処理装置。
A first decoding means for decoding a predetermined exponent value and a first mantissa encoded by the first encoding means of the information processing apparatus according to claim 1;
A second decoding means for decoding the difference encoded by the second encoding means of the information processing apparatus according to claim 1 and a second mantissa;
Adding means for adding a first mantissa value and a second mantissa value according to the data decoded from the first decoding means and the second decoding means;
Conversion means for converting the processing result by the addition means into a floating-point number representation;
According to the accuracy required for the decoded data, do not perform the processing by the second decoding means or the adding means,
Information processing device.
浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、
予め定められた指数値と各データの指数値との差分を抽出する差分手段と、
前記差分にしたがって、各データの仮数値を上位の第1の仮数値と下位の第2の仮数値に分割する分割手段と、
前記予め定められた指数値と第1の仮数値を符号化する第1の符号化手段と、
各データの前記差分と第2の仮数値を符号化する第2の符号化手段
を有する符号化装置と、
前記第1の符号化手段によって符号化された予め定められた指数値と第1の仮数値を復号する第1の復号手段と、
前記第2の符号化手段によって符号化された差分と第2の仮数値を復号する第2の復号手段と、
前記第1の復号手段と前記第2の復号手段から復号したデータにしたがって、第1の仮数値と第2の仮数値を加算する加算手段と、
前記加算手段による処理結果を浮動小数点数表現に変換する変換手段
を有し、
復号したデータに必要とされる精度にしたがって、前記第2の復号手段又は前記加算手段による処理を行わせない、
復号装置
を有する情報処理システム。
Separating means for separating floating point number representation data into an exponent value and a mantissa value;
A difference means for extracting a difference between a predetermined exponent value and an exponent value of each data;
A dividing means for dividing the mantissa value of each data into an upper first mantissa value and a lower second mantissa value according to the difference;
First encoding means for encoding the predetermined exponent value and the first mantissa value;
An encoding device having second encoding means for encoding the difference of each data and a second mantissa;
First decoding means for decoding a predetermined exponent value and a first mantissa value encoded by the first encoding means;
Second decoding means for decoding the difference encoded by the second encoding means and the second mantissa;
Adding means for adding a first mantissa value and a second mantissa value according to the data decoded from the first decoding means and the second decoding means;
Conversion means for converting the processing result by the addition means into a floating-point number representation;
According to the accuracy required for the decoded data, do not perform the processing by the second decoding means or the adding means,
An information processing system having a decoding device.
コンピュータを、
浮動小数点数表現のデータを指数値と仮数値に分離する分離手段と、
予め定められた指数値と各データの指数値との差分を抽出する差分手段と、
前記差分にしたがって、各データの仮数値を上位の第1の仮数値と下位の第2の仮数値に分割する分割手段と、
前記予め定められた指数値と第1の仮数値を符号化する第1の符号化手段と、
各データの前記差分と第2の仮数値を符号化する第2の符号化手段
として機能させるための情報処理プログラム。
Computer
Separating means for separating floating point number representation data into an exponent value and a mantissa value;
A difference means for extracting a difference between a predetermined exponent value and an exponent value of each data;
A dividing means for dividing the mantissa value of each data into an upper first mantissa value and a lower second mantissa value according to the difference;
First encoding means for encoding the predetermined exponent value and the first mantissa value;
An information processing program for functioning as a second encoding means for encoding the difference between each data and a second mantissa.
コンピュータを、
請求項8に記載の情報処理プログラムが実行されるコンピュータの第1の符号化手段によって符号化された予め定められた指数値と第1の仮数値を復号する第1の復号手段と、
請求項8に記載の情報処理プログラムが実行されるコンピュータの第2の符号化手段によって符号化された差分と第2の仮数値を復号する第2の復号手段と、
前記第1の復号手段と前記第2の復号手段から復号したデータにしたがって、第1の仮数値と第2の仮数値を加算する加算手段と、
前記加算手段による処理結果を浮動小数点数表現に変換する変換手段
として機能させ、
復号したデータに必要とされる精度にしたがって、前記第2の復号手段又は前記加算手段による処理を行わせない、
情報処理プログラム。
Computer
First decoding means for decoding a predetermined exponent value and a first mantissa value encoded by a first encoding means of a computer on which the information processing program according to claim 8 is executed;
A second decoding means for decoding the difference encoded by the second encoding means of the computer executing the information processing program according to claim 8 and the second mantissa;
Adding means for adding a first mantissa value and a second mantissa value according to the data decoded from the first decoding means and the second decoding means;
Function as conversion means for converting the processing result by the addition means into a floating-point number representation;
According to the accuracy required for the decoded data, do not perform the processing by the second decoding means or the adding means,
Information processing program.
JP2016145533A 2016-07-25 2016-07-25 Information processing equipment and information processing programs Expired - Fee Related JP6759802B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016145533A JP6759802B2 (en) 2016-07-25 2016-07-25 Information processing equipment and information processing programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016145533A JP6759802B2 (en) 2016-07-25 2016-07-25 Information processing equipment and information processing programs

Publications (2)

Publication Number Publication Date
JP2018019138A true JP2018019138A (en) 2018-02-01
JP6759802B2 JP6759802B2 (en) 2020-09-23

Family

ID=61076488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016145533A Expired - Fee Related JP6759802B2 (en) 2016-07-25 2016-07-25 Information processing equipment and information processing programs

Country Status (1)

Country Link
JP (1) JP6759802B2 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08101919A (en) * 1994-09-30 1996-04-16 Sony Corp Numerical conversion device and coordinate value integer conversion device
JPH1173409A (en) * 1997-08-29 1999-03-16 Matsushita Electric Ind Co Ltd Product-sum operation device and product-sum operation method
WO2004098066A1 (en) * 2003-04-28 2004-11-11 Nippon Telegraph And Telephone Corporation Floating point type digital signal reversible encoding method, decoding method, devices for them, and programs for them
US20070258641A1 (en) * 2006-05-05 2007-11-08 Microsoft Corporation High dynamic range data format conversions for digital media
JP2009193095A (en) * 2008-02-12 2009-08-27 Akuseru:Kk Polygon data compression system, compression program, decompression system, and decompression program
JP2013508867A (en) * 2009-10-23 2013-03-07 サンプリファイ システムズ インコーポレイテッド Block floating point compression of signal data
JP5619326B2 (en) * 2012-06-21 2014-11-05 三菱電機株式会社 Encoding device, decoding device, encoding method, encoding program, decoding method, and decoding program

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08101919A (en) * 1994-09-30 1996-04-16 Sony Corp Numerical conversion device and coordinate value integer conversion device
JPH1173409A (en) * 1997-08-29 1999-03-16 Matsushita Electric Ind Co Ltd Product-sum operation device and product-sum operation method
WO2004098066A1 (en) * 2003-04-28 2004-11-11 Nippon Telegraph And Telephone Corporation Floating point type digital signal reversible encoding method, decoding method, devices for them, and programs for them
US20070258641A1 (en) * 2006-05-05 2007-11-08 Microsoft Corporation High dynamic range data format conversions for digital media
JP2009193095A (en) * 2008-02-12 2009-08-27 Akuseru:Kk Polygon data compression system, compression program, decompression system, and decompression program
JP2013508867A (en) * 2009-10-23 2013-03-07 サンプリファイ システムズ インコーポレイテッド Block floating point compression of signal data
JP5619326B2 (en) * 2012-06-21 2014-11-05 三菱電機株式会社 Encoding device, decoding device, encoding method, encoding program, decoding method, and decoding program

Also Published As

Publication number Publication date
JP6759802B2 (en) 2020-09-23

Similar Documents

Publication Publication Date Title
Liu et al. Exploring autoencoder-based error-bounded compression for scientific data
JP4049791B2 (en) Floating-point format digital signal lossless encoding method, decoding method, each apparatus, and each program
EP1638209B1 (en) Lossless coding method for digital signal in floating-point, decoding method, apparatus therefor, and programs therefor
JP6242074B2 (en) Method and apparatus for signal data compression and decompression (signal data compression and decompression)
RU2016105682A (en) DEVICE AND METHOD FOR CODING METADATA OF OBJECT WITH LOW DELAY
KR20070090165A (en) System and method for lossless compression of digital images
US8947274B2 (en) Encoding apparatus, decoding apparatus, encoding method, encoding program, decoding method, and decoding program
JP4728568B2 (en) Entropy coding to adapt coding between level mode and run length / level mode
WO2003081196A1 (en) Hierarchical lossless encoding/decoding method, hierarchical lossless encoding method, hierarchical lossless decoding method, its apparatus, and program
US8525706B2 (en) Method and apparatus for encoding and decoding data
JP4598877B2 (en) Encoding method, apparatus using the method, program, and recording medium
CN102082950A (en) Methods, devices and systems for compressing and decompressing images
JP6759802B2 (en) Information processing equipment and information processing programs
JP5057334B2 (en) Linear prediction coefficient calculation device, linear prediction coefficient calculation method, linear prediction coefficient calculation program, and storage medium
JP6729299B2 (en) PITCH EXTRACTION DEVICE AND PITCH EXTRACTION METHOD
JPWO2010067799A1 (en) ENCODING METHOD, ITS DEVICE, PROGRAM, AND RECORDING MEDIUM
CN101383967A (en) Encoding device, encoding method, decoding device, decoding method and program
JP5842357B2 (en) Image processing apparatus and image processing program
JP6417815B2 (en) Information processing apparatus and information processing program
JP4098679B2 (en) Floating-point format signal sequence linear prediction analysis method, apparatus, program, and recording medium
JPWO2015166734A1 (en) Encoding device, decoding device, method thereof, program, and recording medium
JP4415651B2 (en) Image encoding apparatus and image decoding apparatus
JP2924416B2 (en) High efficiency coding method
JP5006773B2 (en) Encoding method, decoding method, apparatus using these methods, program, and recording medium
JP6318904B2 (en) Audio encoding apparatus, audio encoding method, and audio encoding program

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