JP6593445B2 - 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 - Google Patents

符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 Download PDF

Info

Publication number
JP6593445B2
JP6593445B2 JP2017542666A JP2017542666A JP6593445B2 JP 6593445 B2 JP6593445 B2 JP 6593445B2 JP 2017542666 A JP2017542666 A JP 2017542666A JP 2017542666 A JP2017542666 A JP 2017542666A JP 6593445 B2 JP6593445 B2 JP 6593445B2
Authority
JP
Japan
Prior art keywords
code
digits
encoding
numerical
representation
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.)
Active
Application number
JP2017542666A
Other languages
English (en)
Other versions
JPWO2017056327A1 (ja
Inventor
正弘 片岡
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2017056327A1 publication Critical patent/JPWO2017056327A1/ja
Application granted granted Critical
Publication of JP6593445B2 publication Critical patent/JP6593445B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/02Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
    • H03M7/12Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word having two radices, e.g. binary-coded-decimal code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4043Adaptive prefix coding
    • H03M7/4068Parameterized codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置に関する。
例えば、可変長のビット表現で数値を表す技術がある。可変長のビット表現で数値を表す場合、数値の大きさと有効桁数に応じて、数値を表すデータの符号長が決まる。例えば、数値のビット表現の単位をnビット単位とし、数値を表すデータの先頭mビットを有効桁数とした場合、2進数による2−1桁で数値を表すことができる。例えば、数値のビット表現の単位を3ビット単位(8進数)とし、数値を表すデータの先頭3ビットを有効桁数として、数値を表す場合を考える。0〜7の数値は、8進数の1桁で表現できる。よって、0〜7の数値は、数値を表すデータの符号長が、有効桁数を1桁とした先頭の3ビット(001)と数値部分の3ビットの合計6ビットになる。一方、有効桁数を7桁とした場合、8進数で7桁の数値を表現できる。8進数で7桁の数値は、数値を表すデータの符号長が、有効桁数を7桁とした先頭の3ビット(111)と、数値部分の21ビットの合計24ビットになる。
特開平7−273661号公報 特開昭63−269623号公報
ところで、一般的に、数値は、文書等に出現する出現頻度が数値の大きさに反比例する傾向がある。例えば、数値は、「1」などの1桁の数値の出現頻度が高く、数値の桁数が大きくなるほど出現頻度が低くなる。このため、小さい数値を短い符号長で表現できると、データを小さく圧縮できる。
しかしながら、上述した従来技術では、数値を圧縮したデータに有効桁数を表すmビットが付加されるため、小さい数値の符号長が長くなり、データを高い圧縮率で圧縮できない場合がある。
一つの側面では、データを高い圧縮率で圧縮できる符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置を提供することを目的とする。
第1の案では、符号化プログラムは、コンピュータに、符号化対象の数値を、2進数表現(nは1以上の自然数)の数値符号に符号化すると共に、符号化対象の数値を2進数表現した際の桁数を示した瞬時符号を付加した符号データを生成する。
本発明の1実施態様によれば、データを高い圧縮率で圧縮できるという効果を奏する。
図1は、数値の符号化の流れを概略的に示した図である。 図2は、数値の復号化の流れを概略的に示した図である。 図3は、実施例1に係る符号化・復号化装置の構成の一例を示す図である。 図4Aは、本実施例の符号化の手法により数値を8進数表現で符号化した一例を示す図である。 図4Bは、従来技術の可変長のビット表現により数値を符号化した一例を示す図である。 図5は、数値の出現頻度の変化を概略的に示した図である。 図6は、瞬時符号の判定に用いるハフマン木の一例を示す図である。 図7は、瞬時符号の判定に用いるハフマン木の一例を示す図である。 図8Aは、実施例1に係る符号化処理の手順の一例を示すフローチャートである。 図8Bは、実施例1に係る復号化処理の手順の一例を示すフローチャートである。 図9は、実施例2に係る符号化・復号化装置の構成の一例を示す図である。 図10は、瞬時符号の判定に用いるハフマン木の一例を示す図である。 図11Aは、実施例2に係る符号化処理の手順の一例を示すフローチャートである。 図11Bは、実施例2に係る復号化処理の手順の一例を示すフローチャートである。 図12は、本実施例の符号化の手法により数値を4進数表現で符号化した一例を示す図である。 図13は、本実施例の符号化の手法により数値を16進数表現で符号化した一例を示す図である。 図14は、符号化プログラムを実行するコンピュータの一例を示す図である。 図15は、復号化プログラムを実行するコンピュータの一例を示す図である。
以下に、本願の開示する符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの権利範囲が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[符号化処理]
最初に、図1を用いて、実施例1に係る符号化・復号化装置10が実施する数値の符号化処理の概要について説明する。図1は、数値の符号化の流れを概略的に示した図である。対象ファイル30は、複数の数値のデータが含まれている。例えば、対象ファイル30は、所定の区切り文字により区切られて複数の数値のデータが記憶されている。図1の例では、符号化・復号化装置10が、圧縮処理の対象である対象ファイル30に含まれる「・・・,1,7,4096,・・・」を符号化する場合を例に説明する。図1の例では、対象ファイル30に記憶された数値を10進数表記で示している。対象ファイル30には、区切り文字「,」(カンマ)により「1」、「7」、「4096」の数値が区切られて記憶されている。なお、図1に示した対象ファイル30は、一例であり、これに限定されるものではない。
符号化・復号化装置10の符号化部40は、対象ファイル30から数値を順に読み出す(図1(1))。図1の例では、「1」、「7」、「4096」の数値をそれぞれ順に読み出す。符号化部40は、読み出した数値をそれぞれ符号に変換する(図1(2))。例えば、符号化部40は、数値のビット表現の単位を3ビット単位とした8進数表現の数値符号に数値を符号化すると共に、数値を8進数表現した際の桁数を示した瞬時符号を付加した符号データに変換する。例えば、符号化部40は、10進数の数値を8進数の数値に変換する。図1の例では、10進数の数値「1」は、8進数で数値「1」となる。10進数の数値「7」は、8進数で数値「7」となる。10進数の数値「4096」は、8進数で数値「10000」となる。10進数の数値「1」、「7」は、8進数でも1桁となる。一方、10進数の数値「4096」は、8進数で5桁となる。符号化部40は、8進数の数値をビットに符号化する。例えば、符号化部40は、8進数の数値のそれぞれの桁の値を3ビットに符号化する。図1の例では、8進数の数値「1」は、「001」となる。8進数の数値「7」は、「111」となる。8進数の数値「10000」は、「001000000000000」となる。符号化部40は、数値を符号化した数値符号の先頭に、8進数での数値の桁数を示した瞬時符号を付加する。本実施例では、瞬時符号には、桁数の順に、先頭のビットから各ビットに桁数を対応付ける。瞬時符号は、8進数での数値の桁数分のビット数とされ、数値の桁数に対応したビットに「0」がセットされ、数値の桁数に対応しないビットに「1」がセットされる。これにより、瞬時符号は、先頭ビットから順に「0」が出現するまでのビット数をカウントすることにより、「0」が出現したタイミングで桁数を識別できる。例えば、図1では、10進数の数値「1」、「7」は、8進数で1桁であるため、瞬時符号が「0」とされている。一方、10進数の数値「4096」は、8進数で5桁であるため、瞬時符号が「11110」とされている。瞬時符号は、先頭からビットの値を判別し、「0」が出現したビット数から桁数を識別できる。例えば、1ビット目に「0」が出現した場合、数値が1桁であると識別できる。また、先頭から5ビット目に「0」が出現した場合、数値が5桁であると識別できる。符号化部40は、数値を符号化した数値符号の前に、当該数値の瞬時符号を付加する。図1の例では、10進数の数値「1」は、「001」の前に、瞬時符号「0」が付加されて「0001」と符号化される。10進数の数値「7」は、「111」の前に、瞬時符号「0」が付加されて「0111」と符号化される。10進数の数値「4096」は、「001000000000000」の前に、瞬時符号「11110」が付加されて「11110001000000000000」と符号化される。このように、10進数の数値「1」や「7」は、瞬時符号の1ビットと数値部分の3ビットの合計4ビットに符号化される。また、10進数の数値「4096」は、瞬時符号の5ビットと数値部分の15ビットの合計20ビットに符号化される。符号化部40は、8進数の数値を符号化した数値符号の前に、瞬時符号を付加した符号データを出力する(図1(3))。図1の例では、符号化部40は、それぞれの符号データを符号化ファイル31に格納する。このように、符号化部40は、小さい数値を短い符号長の符号に圧縮できる。これにより、符号化部40は、データを高い圧縮率で圧縮できる。
[復号化処理]
次に、図2を用いて、実施例1に係る符号化・復号化装置10が実施する数値の復号化処理の概要について説明する。図2は、数値の復号化の流れを概略的に示した図である。符号化・復号化装置10の復号化部50は、符号化ファイル31から数値の符号データを順に読み出す(図2(1))。図2の例では、図1にて符号化された「0001」、「0111」、「11110001000000000000」をそれぞれ読み出す。復号化部50は、読み出した各符号データを復号化する(図2(2))。例えば、復号化部50は、読み出した各符号データをそれぞれ先頭のビットから順に「0」が出現するまでのビット数をカウントして、瞬時符号の桁数を識別する。図2の例では、「0001」は、先頭の1ビット目が「0」であることから1桁と識別される。「0111」も、先頭の1ビット目が「0」であることから1桁と識別される。「11110001000000000000」は、先頭から5ビット目が「0」であることから5桁と識別される。復号化部50は、符号データから瞬時符号を分離して数値部分の符号を抽出し、瞬時符号から識別した桁数に応じたビット単位で数値部分の符号を数値に復号化する。図2の例では、「0001」は、先頭の瞬時符号「0」を除いて数値部分の符号「001」が分離され、8進数の数値「1」や10進数の数値「1」に復号化される。「0111」は、先頭の瞬時符号「0」を除いて数値部分の符号「111」が分離され、8進数の数値「7」や10進数の数値「7」に復号化される。「11110001000000000000」は、先頭の瞬時符号「11110」を除いて数値部分の符号「001000000000000」が分離され、8進数の数値「10000」や10進数の数値「4096」に復号化される。このように、復号化部50は、短い符号長に符号化された符号データを元の数値に復元できる。
[装置構成]
次に、符号化・復号化装置10の構成について説明する。図3は、実施例1に係る符号化・復号化装置の構成の一例を示す図である。符号化・復号化装置10は、対象ファイル30の圧縮などの符号化、および、圧縮されたデータの復号化を行う装置である。符号化・復号化装置10は、例えば、パーソナルコンピュータ、サーバコンピュータなどのコンピュータや、タブレット端末、スマートフォンなどの情報処理装置である。符号化・復号化装置10は、1台のコンピュータとして実装してもよく、また、複数台のコンピュータによるクラウドとして実装することもできる。なお、本実施例では、符号化・復号化装置10を1台のコンピュータとした場合を例として説明する。図3に示すように、符号化・復号化装置10は、記憶部20と、制御部21とを有する。なお、符号化・復号化装置10は、コンピュータや情報処理装置が有する上記の機器以外の他の機器を有してもよい。
記憶部20は、ハードディスク、SSD(Solid State Drive)、光ディスクなどの記憶装置である。なお、記憶部20は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)などのデータを書き換え可能な半導体メモリであってもよい。
記憶部20は、制御部21で実行されるOS(Operating System)や各種プログラムを記憶する。例えば、記憶部20は、後述する圧縮処理を行うプログラムを記憶する。さらに、記憶部20は、制御部21で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部20は、対象ファイル30と、符号化ファイル31とを記憶する。
対象ファイル30は、符号化対象の数値が記憶されたファイルである。符号化ファイル31は、対象ファイル30の数値を符号化処理したデータである。
制御部21は、符号化・復号化装置10を制御するデバイスである。制御部21としては、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路を採用できる。制御部21は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部21は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部21は、符号化部40と、復号化部50とを有する。
符号化部40は、対象ファイル30から数値を抽出し、抽出した数値単位に、数値を符号化した符号化ファイル31を生成する。符号化部40は、抽出部41と、生成部42と、出力部43とを有する。
抽出部41は、対象ファイル30の数値の抽出を行う。例えば、抽出部41は、対象ファイル30からデータを読み出し、読み出したデータから数値を抽出する。
生成部42は、抽出部41により抽出された各数値に対応した符号データを生成する。例えば、生成部42は、抽出された数値を8進数表現の数値符号に数値を符号化すると共に、数値を8進数表現した際の桁数を示した瞬時符号を付加した符号データを生成する。例えば、生成部42は、抽出された数値を8進数の数値に変換する。生成部42は、8進数の数値のそれぞれの桁の値を3ビットに符号化する。生成部42は、8進数の数値を符号化した数値符号の先頭に、8進数での数値の桁数を示した瞬時符号を付加して符号データを生成する。
出力部43は、生成部42により生成された符号データを出力する。例えば、出力部43は、抽出部41により抽出された各数値に対応して、生成部42により生成された符号データを符号化ファイル31に出力して格納する。
復号化部50は、符号化ファイル31の復号化を行う。復号化部50は、識別部51と、復号部52とを有する。
識別部51は、符号化ファイル31に格納された符号データを順に読み出す。識別部51は、読み出した各符号データをそれぞれ先頭のビットから順に「0」が出現するまでのビット数をカウントして、瞬時符号の桁数を識別する。このように瞬時符号の桁数を識別することにより、識別部51は、「0」が出現したタイミングで以降のビットを確認することなく、桁数を識別できる。
復号部52は、符号化ファイル31から読み出した各符号データの数値を復元する。例えば、復号部52は、符号データから瞬時符号を分離して数値部分の符号を抽出する。そして、復号部52は、瞬時符号から識別した桁数に応じて、数値部分の符号を3ビット単位で数値に復号化する。
ここで、数値を記憶領域に記憶する形式には、整数型などのデータ型がある。例えば、数値に対してデータ型を定義してメモリなどの記憶領域に記憶させる場合、記憶領域には、データ型に応じたサイズの領域が確保される。例えば、32ビットの整数型で数値「1」を記憶させる場合、数値ごとに32ビットの記憶領域が使用される。また、数値に対してデータ型を定義する場合、データ型に対応した範囲の数値しか記憶できない。例えば、符号なしの32ビットの整数型では、0〜4294967295の範囲の数値しか記憶できない。32ビットの整数型の範囲より大きい数値を記憶する場合、よりビット数の多い整数型で数値を記憶させることになり、数値ごとにより多くの記憶領域が使用される。一般的に、数値は、文書等に出現する出現頻度が数値の大きさに反比例する傾向がある。しかし、最大の数値に合わせて数値のデータ型を定めた場合、数値で使用される記憶領域が無駄に大きくなってしまう。例えば、複数出現する数値の1つの数値が32ビットの整数型の範囲に入らないため、数値を64ビットの整数型とした場合、数値ごとに64ビットの領域が確保されるため、数値用に確保される記憶領域のサイズが無駄に大きくなる。
一方、本実施例の符号化の手法では、小さい数値を短い符号に符号化でき、データサイズを圧縮できる。図1の例では、10進数の数値「1」〜「7」を4ビットで記憶できる。また、本実施例の符号化の手法では、瞬時符号により桁数を変えることができる。このため、数値は、数値の大きさに応じた符号長の符号に変換される。すなわち、本実施例の符号化の手法では、小さい数値が短い符号長の符号に変換され、大きい数値ほど長い符号長の符号に変換される。よって、本実施例の符号化の手法では、数値用に確保される記憶領域のサイズが無駄に大きくなることを抑制できる。さらに、本実施例の符号化の手法では、瞬時符号で表現できる桁数に上限が無い。よって、本実施例の符号化の手法では、符号化可能な数値に上限がない。すなわち、どのように大きい数値でも符号化して記憶できる。
次に、本実施例の符号化の手法と、従来技術の可変長のビット表現で数値を符号化する場合を比較する。図4Aは、本実施例の符号化の手法により数値を8進数表現で符号化した一例を示す図である。図4Aの例は、数値のビット表現の単位を3ビット単位とした8進数表現の数値符号に数値を符号化し、数値を8進数表現した際の桁数を示した瞬時符号を付加して符号化した符号が示されている。図4Aの例は、8進数で1桁の数値は、4ビットに符号化される。例えば、8進数の数値「7」は、瞬時符号「0」と数値部分の符号「111」の合計4ビットに符号化される。8進数で2桁の数値は、8ビットに符号化される。例えば、8進数の数値「77」は、瞬時符号「10」と数値部分の符号「111111」の合計8ビットに符号化される。8進数で3桁の数値は、12ビットに符号化される。例えば、8進数の数値「777」は、瞬時符号「110」と数値部分の符号「111111111」の合計12ビットに符号化される。8進数で4桁の数値は、16ビットに符号化される。例えば、8進数の数値「7777」は、瞬時符号「1110」と数値部分の符号「111111111111」の合計16ビットに符号化される。8進数で5桁の数値は、20ビットに符号化される。例えば、8進数の数値「77777」は、瞬時符号「11110」と数値部分の符号「111111111111111」の合計20ビットに符号化される。8進数で6桁の数値は、24ビットに符号化される。例えば、8進数の数値「777777」は、瞬時符号「111110」と数値部分の符号「111111111111111111」の合計24ビットに符号化される。8進数で7桁の数値は、28ビットに符号化される。例えば、8進数の数値「7777777」は、瞬時符号「1111110」と数値部分の符号「111111111111111111111」の合計28ビットに符号化される。
一方、図4Bは、従来技術の可変長のビット表現により数値を符号化した一例を示す図である。図4Bの例は、先頭3ビットを有効桁数として、8進数表現の数値符号に数値を符号化した符号が示されている。図4Bの例は、8進数で1桁の数値は、6ビットに符号化される。例えば、8進数の数値「7」は、有効桁数が1桁であることを示した先頭の3ビット「001」と数値部分の符号「111」の合計6ビットに符号化される。8進数で2桁の数値は、9ビットに符号化される。例えば、8進数の数値「77」は、有効桁数が2桁であることを示した先頭の3ビット「010」と数値部分の符号「111111」の合計9ビットに符号化される。8進数で3桁の数値は、12ビットに符号化される。例えば、8進数の数値「777」は、有効桁数が3桁であることを示した先頭の3ビット「011」と数値部分の符号「111111111」の合計12ビットに符号化される。8進数で4桁の数値は、15ビットに符号化される。例えば、8進数の数値「7777」は、有効桁数が3桁であることを示した先頭の3ビット「100」と数値部分の符号「111111111111」の合計15ビットに符号化される。8進数で5桁の数値は、18ビットに符号化される。例えば、8進数の数値「77777」は、有効桁数が3桁であることを示した先頭の3ビット「101」と数値部分の符号「111111111111111」の合計18ビットに符号化される。8進数で6桁の数値は、21ビットに符号化される。例えば、8進数の数値「777777」は、有効桁数が3桁であることを示した先頭の3ビット「110」と数値部分の符号「111111111111111111」の合計21ビットに符号化される。8進数で7桁の数値は、24ビットに符号化される。例えば、8進数の数値「7777777」は、有効桁数が3桁であることを示した先頭の3ビット「111」と数値部分の符号「111111111111111111111」の合計24ビットに符号化される。
図4A、4Bに示すように、本実施例の符号化の手法は、8進数で数値の有効桁数1桁、2桁の場合、従来技術の符号化の手法よりも符号が短くなる。一方、本実施例の符号化の手法は、8進数で数値の有効桁数4桁以上の場合、従来技術の符号化の手法よりも符号が長くなる。
ところで、一般的に、数値は、文書等に出現する出現頻度が数値の大きさに反比例する傾向がある。図5は、数値の出現頻度の変化を概略的に示した図である。図5に示すように、数値は、「1」などの1桁の数値の出現頻度が高く、数値の桁数が大きくなるほど出現頻度が低くなる。データの圧縮では、出現頻度の高いデータに短い符号を割当てると、圧縮率が高くなる。よって、本実施例の符号化の手法により、出現頻度の高い、小さい数値を短い符号に変換することにより、全体としてデータを小さく圧縮できる。
なお、本実施例では、瞬時符号の各ビットについて、数値の桁数に対応したビットに「0」をセットし、数値の桁数に対応しないビットに「1」をセットする場合について説明したが、瞬時符号はこれに限定されるものではない。例えば、特定のビット数において、数値の桁数に対応したビットに「1」をセットし、数値の桁数に対応しないビットに「0」をセットしてもよい。図6は、瞬時符号の判定に用いるハフマン木の一例を示す図である。図6に示すハフマン木に従って、瞬時符号の先頭ビットから順に各ビットの値を判定して桁数を判定する。例えば、瞬時符号の1ビット目が「0」の場合、ハフマン木では、最初の葉に到達するため、桁数が1桁と判定される。瞬時符号の1ビット目が「1」の場合、ハフマン木では、最初の節に到達し、1ビット目が「0」であるか「1」であるかを判定する。瞬時符号の2ビット目が「0」の場合、ハフマン木では、2番目の葉に到達して、桁数が2桁と判定される。このハフマン木において、特定のビット数において、数値の桁数に対応したビットを「1」とし、数値の桁数に対応しないビットに「0」として判定を行うことにより、桁数を判別できる。
また、瞬時符号は、表現可能な桁数に上限を設け、最上位のビットに2桁を対応付けてもよい。図7は、瞬時符号の判定に用いるハフマン木の一例を示す図である。図7の例は、表現可能な桁数の上限を7桁とした場合を示している。瞬時符号は、数値の桁数が6桁の場合、上位から6ビット目を「0」とし、数値の桁数が7桁の場合、上位から6ビット目を「1」とすることで、6ビットで7桁までを表すことができる。このように、瞬時符号に表現可能な桁数に上限を設け、瞬時符号の上限桁数−1番目のビットに、上限桁数−1桁と、上限桁数とを対応付けることにより、上限桁数に対応する瞬時符号を1ビット短くできる。
[処理の流れ]
実施例1に係る符号化・復号化装置10が対象ファイル30を符号化して圧縮する符号化処理の流れについて説明する。図8Aは、実施例1に係る符号化処理の手順の一例を示すフローチャートである。この符号化処理は、所定のタイミング、例えば、対象ファイル30を指定して符号化開始を指示する所定操作が行われたタイミングで実行される。
図8Aに示すように、抽出部41は、対象ファイル30からデータを読み出し、読み出したデータから数値を抽出する(S10)。生成部42は、抽出した数値に対応した符号データを生成する(S11)。例えば、生成部42は、抽出した数値を8進数表現の数値符号に符号化すると共に、数値を8進数表現した際の桁数を示した瞬時符号を付加した符号データを生成する。出力部43は、生成した符号データを出力する(S12)。例えば、出力部43は、数値に対応して生成された符号データを符号化ファイル31に出力して格納する。
抽出部41は、対象ファイル30から全データの読み出しが完了したか否かを判定する(S13)。読み出しが完了していない場合(S13否定)、上述のS10へ移行する。
一方、読み出しが完了した場合(S13肯定)、処理を終了する。
次に、実施例1に係る符号化・復号化装置10が符号化ファイル31に記憶された符号データを復号化する復号化処理の流れについて説明する。図8Bは、実施例1に係る復号化処理の手順の一例を示すフローチャートである。この復号化処理は、所定のタイミング、例えば、符号化ファイル31を指定して復号化開始を指示する所定操作が行われたタイミングで実行される。
図8Bに示すように、識別部51は、符号化ファイル31に格納された符号データを読み出す(S30)。識別部51は、読み出した符号データをそれぞれ先頭のビットから順に「0」が出現するまでのビット数をカウントして、瞬時符号の桁数を識別する(S31)。
復号部52は、符号データから瞬時符号を分離し、分離した数値部分の符号を識別した桁数に応じて3ビット単位で数値に復号化する(S32)。
識別部51は、符号化ファイル31から全データの読み出しが完了したか否かを判定する(S33)。読み出しが完了していない場合(S33否定)、上述のS30へ移行する。
一方、読み出しが完了した場合(S33肯定)、処理を終了する。
[効果]
上述してきたように、本実施例に係る符号化・復号化装置10は、符号化対象の数値を、8進数表現の数値符号に符号化すると共に、符号化対象の数値を8進数表現した際の桁数を示した瞬時符号を付加した符号データを生成する。これにより、符号化・復号化装置10は、小さい数値を短い符号長の符号に圧縮できる。これにより、符号化・復号化装置10は、データを高い圧縮率で圧縮できる。
また、本実施例に係る符号化・復号化装置10は、桁数の順に、先頭のビットから各ビットに桁数が対応付けられ、符号化対象の数値を8進数表現した際の桁数を示した瞬時符号を付加した符号データを生成する。これにより、符号化・復号化装置10は、8進数表現で桁数の小さい数値に対して、短い符号長の瞬時符号を生成できる。
また、本実施例に係る符号化・復号化装置10は、符号データの瞬時符号から8進数表現での桁数を識別する。符号化・復号化装置10は、識別した桁数に応じて、符号データの数値符号を3ビット単位で数値に復号化する。これにより、符号化・復号化装置10は、符号データとして符号化された数値を復元できる。
次に、実施例2ついて説明する。図9は、実施例2に係る符号化・復号化装置の構成の一例を示す図である。なお、上述の実施例1に係る符号化・復号化装置10と同一の部分については、同一の符号を付して、主に異なる部分について説明する。
符号化部40は、算出部44をさらに有する。算出部44は、対象ファイル30に含まれる数値をそれぞれ8進数表現した桁数ごとに出現頻度を算出する。例えば、算出部44は、抽出部41により抽出された各数値を8進数表現に変換して、8進数での数値の桁数ごとに、出現回数をカウントする。例えば、算出部44は、対象ファイル30に、8進数表現で1桁の数値が100個、8進数表現で2桁の数値が1000個含まれる場合、1桁の数値の出現回数を100回、2桁の数値の出現回数を1000回とカウントする。
生成部42は、抽出部41により抽出された数値を8進数表現の数値符号に符号化する。また、生成部42は、算出部44により算出された出現頻度の多い桁数の順に、先頭のビットから桁数が対応付けられ、符号化対象の数値を8進数表現した際の桁数を示した瞬時符号を付加した符号データを生成する。例えば、1桁の数値の出現回数が100回、2桁の数値の出現回数が1000回の場合、生成部42は、2桁に対して瞬時符号を「0」とし、1桁に対して瞬時符号を「10」として符号データを生成する。これにより、例えば、8進数で2桁の数値は、瞬時符号の1ビットと数値部分の6ビットの合計7ビットに符号化される。また、8進数で1桁の数値は、瞬時符号の2ビットと数値部分の3ビットの合計5ビットに符号化される。
このように、出現頻度の多い桁数に短い瞬時符号を割当てると、圧縮率が高くなる。よって、本実施例の符号化の手法により、出現頻度の高い桁数を短い瞬時符号で表すことにより、全体としてデータを小さく圧縮できる。
生成部42は、瞬時符号の各ビットと桁数との対応を示した桁数情報を生成する。例えば、生成部42は、瞬時符号の判定に用いるハフマン木の情報を桁数情報として生成する。図10は、瞬時符号の判定に用いるハフマン木の一例を示す図である。図10の例では、瞬時符号の1ビット目が「0」の場合、桁数が2桁と判定され、瞬時符号の1ビット目が「1」で、2ビット目が「0」の場合、桁数が1桁と判定される。
出力部43は、抽出部41により抽出された各数値に対応して、生成部42により生成された符号データを符号化ファイル31に出力して格納する。また、出力部43は、生成部42により生成された桁数情報を符号化ファイル31に出力して格納する。例えば、出力部43は、桁数情報を符号化ファイル31のヘッダやフッダに格納する。
符号化ファイル31を復元する場合、桁数情報に基づいて、瞬時符号から桁数が識別される。例えば、復号化部50の識別部51は、符号化ファイル31の桁数情報から生成される図10に示すハフマン木に従い、瞬時符号の桁数を識別する。
[処理の流れ]
次に、実施例2に係る符号化・復号化装置10が対象ファイル30を符号化して圧縮する符号化処理の流れについて説明する。図11Aは、実施例2に係る符号化処理の手順の一例を示すフローチャートである。この符号化処理は、所定のタイミング、例えば、対象ファイル30を指定して符号化開始を指示する所定操作が行われたタイミングで実行される。
図11Aに示すように、抽出部41は、対象ファイル30からデータを読み出し、読み出したデータから数値を抽出する(S50)。算出部44は、抽出部41により抽出された各数値を8進数表現に変換して、8進数での数値の桁数ごとに、出現回数をカウントする(S51)。抽出部41は、対象ファイル30から全データの読み出しが完了したか否かを判定する(S52)。読み出しが完了していない場合(S52否定)、上述のS50へ移行する。
一方、読み出しが完了した場合(S52肯定)、抽出部41は、対象ファイル30から再度データを読み出し、読み出したデータから数値を抽出する(S53)。生成部42は、抽出した数値を8進数表現の数値符号に符号化する(S54)。生成部42は、算出部44により算出された出現頻度の多い桁数の順に、先頭のビットから桁数が対応付けられ、符号化対象の数値を8進数表現した際の桁数を示した瞬時符号を生成する(S55)。そして、生成部42は、符号化した数値の符号の前に、瞬時符号を付加した符号データを生成する(S56)。
出力部43は、生成した符号データを出力する(S57)。例えば、出力部43は、数値に対応して生成された符号データを符号化ファイル31に出力して格納する。
抽出部41は、対象ファイル30から全データの読み出しが完了したか否かを判定する(S58)。読み出しが完了していない場合(S58否定)、上述のS53へ移行する。
一方、読み出しが完了した場合(S58肯定)、出力部43は、桁数情報を符号化ファイル31に格納して、処理を終了する。
次に、実施例2に係る符号化・復号化装置10が符号化ファイル31に記憶された符号データを復号化する復号化処理の流れについて説明する。図11Bは、実施例2に係る復号化処理の手順の一例を示すフローチャートである。この復号化処理は、所定のタイミング、例えば、符号化ファイル31を指定して復号化開始を指示する所定操作が行われたタイミングで実行される。
図11Bに示すように、識別部51は、符号化ファイル31に格納された桁数情報を読み出す(S80)。識別部51は、符号化ファイル31から符号データを読み出す(S81)。識別部51は、読み出した符号データをそれぞれ先頭のビットから順に「0」が出現するまでのビット数をカウントし、桁数情報に基づき、瞬時符号の桁数を識別する(S82)。
復号部52は、符号データから瞬時符号を分離し、分離した数値部分の符号を識別した桁数に応じて3ビット単位で数値に復号化する(S83)。
識別部51は、符号化ファイル31から全データの読み出しが完了したか否かを判定する(S84)。読み出しが完了していない場合(S84否定)、上述のS81へ移行する。
一方、読み出しが完了した場合(S84肯定)、処理を終了する。
[効果]
上述してきたように、本実施例に係る符号化・復号化装置10は、複数の前記符号化対象の数値をそれぞれ8進数表現した桁数ごとに出現頻度を算出する。符号化・復号化装置10は、算出された出現頻度の多い桁数の順に、先頭のビットから桁数が対応付けられ、符号化対象の数値を8進数表現した際の桁数を示した瞬時符号を付加した符号データを生成する。これにより、符号化・復号化装置10は、8進数表現した際の出現頻度の多い桁数の数値の瞬時符号を短くでき、短い符号長の符号に圧縮できる。これにより、符号化・復号化装置10は、データをより高い圧縮率で圧縮できる。
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
例えば、上記の実施例では、符号化対象の数値を、8(=2)進数表現の数値符号に符号化する場合について説明したが、これに限定されない。符号化対象の数値を、2進数表現(nは1以上の自然数)の何れの数値符号に符号化してもよい。例えば、符号化対象の数値を、4(=2)進数表現の数値符号に符号化してもよい。図12は、本実施例の符号化の手法により数値を4進数表現で符号化した一例を示す図である。図12に示すように、4進数で1桁の数値は、3ビットに符号化される。例えば、4進数の数値「3」は、瞬時符号「0」と数値部分の符号「11」の合計3ビットに符号化される。4進数で2桁の数値は、6ビットに符号化される。例えば、4進数の数値「33」は、瞬時符号「10」と数値部分の符号「1111」の合計6ビットに符号化される。対象ファイル30に10進数で「1」〜「3」の数値が多く出現する場合は、4進数表現で符号化をすることにより、データを小さく圧縮できる。また、例えば、符号化対象の数値を、16(=2)進数表現の数値符号に符号化してもよい。図13は、本実施例の符号化の手法により数値を16進数表現で符号化した一例を示す図である。図13に示すように、16進数で1桁の数値は、5ビットに符号化される。例えば、16進数の数値「F」は、瞬時符号「0」と数値部分の符号「1111」の合計5ビットに符号化される。16進数で2桁の数値は、10ビットに符号化される。例えば、16進数の数値「AA」は、瞬時符号「10」と数値部分の符号「11111111」の合計10ビットに符号化される。対象ファイル30に10進数で「1」〜「15」の数値が多く出現する場合は、16進数表現で符号化をすることにより、データを小さく圧縮できる。
また、符号化・復号化装置10は、符号化対象の数値ごとの出現頻度を求め、データがトータルで小さくなるように2進数表現のnを求めて、データを圧縮してもよい。例えば、算出部44は、符号化対象の数値ごとの出現頻度を算出する。そして、算出部44は、nを1から順に、例えば、1〜5など、所定の変更範囲で変えて2進数表現で、対象ファイル30の各数値を圧縮した場合の数値の符号長の合計をそれぞれ算出する。例えば、算出部44は、数値ごとに、数値を2進数表現したビット数に出現頻度を乗算して、各数値を圧縮した場合の数値の符号長を求める。そして、算出部44は、各数値を圧縮した場合の数値の符号長を合計して全数値の符号長を求める。生成部42は、合計が最も小さい2進数表現で圧縮してもよい。これにより、生成部42は、対象ファイル30をより小さく圧縮できる。この場合、符号化ファイル31には、使用した2進数表現のnを記録する。
符号化ファイル31を復元する場合、復号化部50の復号部52は、符号化ファイル31からnの値に基づいて、nビット単位に数値部分の符号を数値に復号化する。例えば、復号化部50の復号部52は、n=2の場合、4進数表現として、2ビット単位に数値部分の符号を復元する。
例えば、上記の実施例では、符号化・復号化装置10によりデータの符号化およびデータの復号化を行う場合について説明するが、データの符号化とデータの復号化は、別な装置で行ってもよい。例えば、符号化・復号化装置10は、符号化部40を有し、データの符号化を行う符号化装置と、復号化部50を有し、データの復号化を行う復号化装置に分けてもよい。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、符号化・復号化装置10の符号化部40(抽出部41、生成部42、出力部43、算出部44)や、復号化部50(識別部51、復号部52)の各処理部が適宜統合されてもよい。また、符号化・復号化装置10の上記各処理部の処理が適宜複数の処理部の処理に分離されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[符号化プログラム]
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。最初に、圧縮処理を行う符号化プログラムについて説明する。図14は、符号化プログラムを実行するコンピュータの一例を示す図である。
図14に示すように、コンピュータ400は、CPU(Central Processing Unit)410、HDD(Hard Disk Drive)420、RAM(Random Access Memory)440を有する。これら400〜440の各部は、バス500を介して接続される。
HDD420には上記の抽出部41、生成部42、出力部43および算出部44と同様の機能を発揮する符号化プログラム420aが予め記憶される。尚、符号化プログラム420aについては、適宜分離しても良い。
また、HDD420は、各種情報を記憶する。例えば、HDD420は、OSや圧縮に用いる各種データを記憶する。
そして、CPU410が、符号化プログラム420aをHDD420から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、符号化プログラム420aは、抽出部41、生成部42、出力部43および算出部44と同様の動作を実行する。
尚、上記した符号化プログラム420aについては、必ずしも最初からHDD420に記憶させることを要しない。
[復号化プログラム]
次に、復号化を行う復号化プログラムについて説明する。図15は、復号化プログラムを実行するコンピュータの一例を示す図である。なお、図14と同一の部分については同一の符号を付して、説明を省略する。
図15に示すように、HDD420には上記の識別部51および復号部52と同様の機能を発揮する復号化プログラム420bが予め記憶される。尚、復号化プログラム420bについては、適宜分離しても良い。
また、HDD420は、各種情報を記憶する。例えば、HDD420は、OSや復号化に用いる各種データを記憶する。
そして、CPU410が、復号化プログラム420bをHDD420から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、復号化プログラム420bは、識別部51および復号部52と同様の動作を実行する。
尚、上記した復号化プログラム420bについても、必ずしも最初からHDD420に記憶させることを要しない。
また、例えば、圧縮プログラム420aおよび復号化プログラム420bは、コンピュータ400に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に記憶させても良い。そして、コンピュータ400がこれらからプログラムを読み出して実行するようにしても良い。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ400に接続される「他のコンピュータ(又はサーバ)」などにプログラムを記憶させておく。そして、コンピュータ400がこれらからプログラムを読み出して実行するようにしても良い。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ400に接続される「他のコンピュータ(又はサーバ)」などにプログラムを記憶させておく。そして、コンピュータ400がこれらからプログラムを読み出して実行するようにしても良い。
10 符号化・復号化装置
20 記憶部
21 制御部
30 対象ファイル
31 符号化ファイル
40 符号化部
41 抽出部
42 生成部
43 出力部
44 算出部
50 復号化部
51 識別部
52 復号部

Claims (8)

  1. コンピュータに、
    符号化対象の数値を2 進数表現(nは2以上の自然数)した2 進数表現の数値を数値符号に符号化すると共に、前記 進数表現の数値の桁数を示した瞬時符号を前記数値符号に付加した符号データを生成する
    処理を実行させることを特徴とする符号化プログラム。
  2. 前記生成する処理は、前記2 進数表現の数値の桁数分のビット数のビット列とされた前記瞬時符号であって、前記瞬時符号の先頭のビットから順に各ビットに前記2 進数表現の数値の1桁目から昇順に各桁が対応づけられ、前記2 進数表現の数値の桁数に対応したビットに0または1の一方がセットされ、数値の桁数に対応しないビットに0または1の他方がセットされた前記瞬時符号を前記数値符号に付加した符号データを生成する
    ことを特徴とする請求項1に記載の符号化プログラム。
  3. 前記コンピュータに、
    複数の前記符号化対象の数値をそれぞれ 進数表現の数値の桁数ごとに出現頻度を算出する処理をさらに実行させ、
    前記生成する処理は、前記2 進数表現の数値の桁数に対応したビット数のビット列とされた前記瞬時符号であって、前記瞬時符号の先頭のビットから順に各ビットに前記算出された出現頻度の多い順に前記2 進数表現の数値の各桁が対応付けられ、前記2 進数表現の数値の桁数に対応したビットに0または1の一方がセットされ、数値の桁数に対応しないビットに0または1の他方がセットされた前記瞬時符号を前記数値符号に付加した符号データを生成する
    ことを特徴とする請求項1に記載の符号化プログラム。
  4. コンピュータが、
    符号化対象の数値を2 進数表現(nは2以上の自然数)した2 進数表現の数値を数値符号に符号化すると共に、前記 進数表現の数値の桁数を示した瞬時符号を前記数値符号に付加した符号データを生成する
    処理を実行することを特徴とする符号化方法。
  5. 符号化対象の数値を2 進数表現(nは2以上の自然数)した2 進数表現の数値を数値符号に符号化すると共に、前記 進数表現の数値の桁数を示した瞬時符号を付加した符号データを生成する生成部
    を有することを特徴とする符号化装置。
  6. コンピュータに、
    符号化対象の数値を2 進数表現(nは2以上の自然数)した2 進数表現の数値を符号化した数値符号に、前記 進数表現の数値の桁数を示した瞬時符号が付加された符号データの前記瞬時符号から2進数表現での桁数を識別し、
    識別した桁数に応じて、前記数値符号をnビット単位で数値に復号化する
    処理を実行させることを特徴とする復号化プログラム。
  7. コンピュータが、
    符号化対象の数値を2 進数表現(nは2以上の自然数)した2 進数表現の数値を符号化した数値符号に、前記 進数表現の数値の桁数を示した瞬時符号が付加された符号データの前記瞬時符号から2進数表現での桁数を識別し、
    識別した桁数に応じて、前記数値符号をnビット単位で数値に復号化する
    処理を実行ることを特徴とする復号化方法。
  8. 符号化対象の数値を2 進数表現(nは2以上の自然数)した2 進数表現の数値を符号化した数値符号に、前記 進数表現の数値の桁数を示した瞬時符号が付加された符号データの前記瞬時符号から2進数表現での桁数を識別する識別部と、
    前記識別部により識別された桁数に応じて、前記数値符号をnビット単位で数値に復号化する復号部と、
    を有することを特徴とする復号化装置。
JP2017542666A 2015-10-02 2015-10-02 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 Active JP6593445B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/078120 WO2017056327A1 (ja) 2015-10-02 2015-10-02 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置

Publications (2)

Publication Number Publication Date
JPWO2017056327A1 JPWO2017056327A1 (ja) 2018-07-19
JP6593445B2 true JP6593445B2 (ja) 2019-10-23

Family

ID=58422984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017542666A Active JP6593445B2 (ja) 2015-10-02 2015-10-02 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置

Country Status (4)

Country Link
US (1) US10447295B2 (ja)
EP (1) EP3358748B1 (ja)
JP (1) JP6593445B2 (ja)
WO (1) WO2017056327A1 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2389278A1 (fr) * 1977-04-29 1978-11-24 Thomson Csf Systeme de stockage magnetique d'informations numeriques codees avec transcodage reversible en code bipolaire a haute densite d'ordre n
JPS54156446A (en) * 1978-05-30 1979-12-10 Ricoh Co Ltd Code conversion system
US5548110A (en) * 1986-04-18 1996-08-20 Cias, Inc. Optical error-detecting, error-correcting and other coding and processing, particularly for bar codes, and applications therefor such as counterfeit detection
JPS62298280A (ja) * 1986-06-18 1987-12-25 Ricoh Co Ltd 画像符号化方法
JPS63269623A (ja) 1987-04-28 1988-11-07 Fujitsu Ltd 圧縮デ−タデコ−ド装置
US5287490A (en) * 1991-03-07 1994-02-15 Digital Equipment Corporation Identifying plausible variable length machine code of selecting address in numerical sequence, decoding code strings, and following execution transfer paths
JPH07273661A (ja) 1994-03-28 1995-10-20 Toshiba Corp 圧縮符号化復号化装置
US6959412B2 (en) * 2002-03-04 2005-10-25 Seagate Technology Llc Error correction coding utilizing numerical base conversion for modulation coding

Also Published As

Publication number Publication date
EP3358748B1 (en) 2022-05-11
EP3358748A1 (en) 2018-08-08
EP3358748A4 (en) 2018-09-26
WO2017056327A1 (ja) 2017-04-06
JPWO2017056327A1 (ja) 2018-07-19
US10447295B2 (en) 2019-10-15
US20180226986A1 (en) 2018-08-09

Similar Documents

Publication Publication Date Title
JP6616877B2 (ja) Vlsiでの効率的なハフマン符号化を行う装置および方法
US9077368B2 (en) Efficient techniques for aligned fixed-length compression
WO2019153700A1 (zh) 编解码方法、装置及编解码设备
JP3778087B2 (ja) データ符号化装置及びデータ復号装置
JP6681313B2 (ja) データを符号化するための方法、コンピュータ・プログラムおよびシステム
KR20150092585A (ko) 이진 영상에 기반한 유전체 데이터 압축 방법 및 장치
KR20170040343A (ko) 적응형 레이트 압축 해시 프로세싱 디바이스
JP2019036810A (ja) データ圧縮装置、データ復元装置、データ圧縮プログラム、データ復元プログラム、データ圧縮方法、およびデータ復元方法
JP6609404B2 (ja) 圧縮プログラム、圧縮方法および圧縮装置
JP5472610B2 (ja) 数値データ列の符号化/復号化の方法および装置
JP6593445B2 (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
US9479195B2 (en) Non-transitory computer-readable recording medium, compression method, decompression method, compression device, and decompression device
WO2007108395A1 (ja) 可変長符号の復号装置および復号方法
CN103312338B (zh) 用于解码的设备和方法
JP2016170750A (ja) データ管理プログラム、情報処理装置およびデータ管理方法
JP2016052046A (ja) 圧縮装置、伸長装置およびストレージ装置
JP5626440B2 (ja) 数値データ列の符号化/復号化の方法および装置
JP2010258532A (ja) ビット長を符号に変換する回路及び方法
JP6512294B2 (ja) 圧縮プログラム、圧縮方法および圧縮装置
Nguyen et al. A proposed approach to compound file fragment identification
CN109698704B (zh) 比对型基因测序数据解压方法、系统及计算机可读介质
JP6903892B2 (ja) 検証プログラム、検証装置、検証方法、符号化プログラム、符号化装置および符号化方法
JP2003273746A (ja) 可変長符号復号装置
JP2016139958A (ja) 情報処理装置及びプログラム
KR102355585B1 (ko) 플래시 메모리 산술 인코딩과 디코딩을 위한 방법과 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190815

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: 20190827

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190909

R150 Certificate of patent or registration of utility model

Ref document number: 6593445

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150