JP2019522940A - Simdエンジンを用いる汎用データ圧縮 - Google Patents
Simdエンジンを用いる汎用データ圧縮 Download PDFInfo
- Publication number
- JP2019522940A JP2019522940A JP2019501704A JP2019501704A JP2019522940A JP 2019522940 A JP2019522940 A JP 2019522940A JP 2019501704 A JP2019501704 A JP 2019501704A JP 2019501704 A JP2019501704 A JP 2019501704A JP 2019522940 A JP2019522940 A JP 2019522940A
- Authority
- JP
- Japan
- Prior art keywords
- subset
- hash
- processed
- data stream
- subsets
- 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
Links
- 238000013144 data compression Methods 0.000 title description 13
- 238000000034 method Methods 0.000 claims description 72
- 238000007906 compression Methods 0.000 claims description 58
- 238000012545 processing Methods 0.000 claims description 47
- 230000006835 compression Effects 0.000 claims description 42
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000006837 decompression Effects 0.000 claims description 10
- 230000006399 behavior Effects 0.000 claims description 4
- 238000005096 rolling process Methods 0.000 description 32
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 241001577299 Vindex Species 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 239000011800 void material Substances 0.000 description 4
- 150000001875 compounds Chemical class 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 239000013067 intermediate product Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3086—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3091—Data deduplication
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
- H03M7/6023—Parallelization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Advance Control (AREA)
- Storage Device Security (AREA)
Abstract
Description
以下の動作:
処理済みサブセットのうちのサブセット毎に前記ハッシュ値を計算し、
各計算したハッシュ値の一致について前記ハッシュテーブルを検索し、
前記一致の結果に従い、前記ハッシュテーブルを更新し、
を実行し、その間、前記動作のうちの少なくとも1つの動作は、単一命令多重データ処理、SIMD、エンジンに、前記複数のサブセットのうちの連続サブセットのグループの各被処理サブセットについて、前記少なくとも1つの動作を同時実行するよう指示することにより実行され、
前記一致の結果及び前記一致の結果に依存する比較の比較結果に従い、前記圧縮出力データストリームを更新し、
前記複数の関連サブセットについて、前記計算、検索、及び更新を繰り返して、前記圧縮出力データストリームを生成する、よう適応されるプロセッサと、
を含むシステムが提供される。
前記比較は、前記計算したハッシュ値を有する前記処理済みサブセットの前記データアイテムと、前記一致するハッシュエントリ内の前記ポインタにより指される前記関連サブセットの前記データアイテムとの間の比較を含む。
前記比較結果が、前記処理済みサブセット及び前記関連サブセットの前記データアイテムが同一でないと示す場合、前記処理済みサブセットは、前記圧縮出力データストリーム内で更新され、前記ハッシュテーブルは前記処理済みサブセットの新しいハッシュエントリにより更新される。
前記グループの前記処理済みサブセットを互いに離すこと、
処理済みサブセット毎に異なるシフト値を用いて前記処理済みサブセットをシフトすること、及び、前記処理済みサブセットを処理して前記処理済みサブセット毎にハッシュ値を生成すること、を含む。
以下の動作:
被処理サブセットのうちのサブセット毎に前記ハッシュ値を計算し、
各計算したハッシュ値の一致について前記ハッシュテーブルを検索し、
前記一致の結果に従い、前記ハッシュテーブルを更新する、
を実行するステップであって、前記動作のうちの少なくとも1つの動作は、プロセッサの単一命令多重データ処理、SIMD、エンジンに、前記複数の関連サブセットのうちの連続サブセットのグループの各被処理サブセットについて、前記少なくとも1つの動作を同時実行するよう指示することにより実行される、ステップと、
前記一致の結果及び前記一致の結果に依存する比較の比較結果に従い、前記圧縮出力データストリームを更新するステップと、
前記複数のサブセットを通じて、前記計算、検索、及び更新を繰り返して、前記圧縮出力データストリームを生成するステップと、を含む方法が提供される。
前記グループの前記被処理サブセットを互いに離すこと、
被処理サブセット毎に異なるシフト値を用いて前記被処理サブセットをシフトすること、及び、前記被処理サブセットを処理して前記被処理サブセット毎にハッシュ値を生成すること、を含む。
・レジスタ部分302Aに格納されたデータアイテムSK310A乃至SK+7310Hは、6ビット左にシフトされる。
・レジスタ部分302Bに格納されたデータアイテムSK+1310B乃至SK+8310Iは、4ビット左にシフトされる。
・レジスタ部分302Bに格納されたデータアイテムSK+2310C乃至SK+9310Jは、2ビット左にシフトされる。
・レジスタ部分302Dに格納されたデータアイテムSK+3310D乃至SK+10310Kは、全くシフトされない。
void__m512i_m512_132gather_epi32(__m512i vindex, void const* base_addr, int scale)
シノプシス:
void__m512i_m512_132gather_epi32(__m512i vindex, void const* base_addr, int scale)
#include “immintrin.h”
Instruction :Vpgatherdd zmm32z {k}, vm32z
CPUID Flags :AVX512F for AVX−512, KNCNI for KNC
説明:
32ビットインデックスを用いてメモリから32ビット整数を集める。32ビット要素は、base_addrで開始するアドレスからロードされ、vindex内の各32ビット要素によりオフセットされる(各インデックスはscale内の因子によりスケーリングされる)。scaleは1、2、4、又は8であるべきである。
動作:
FOR j:=0 to 15
i:=j*32
dst[i+31:i]:=MEM[base_addr+SignExtend(vindex[i+31:i])*scale]
ENDFOR
Dst[MAX:512]:=0
擬似コード抜粋1:
Result[i]=hashTable[hashes[i]] for i in 0…15
void__m512i_m512_132scatter_epi32(void* base_addr, __m512i vindex, __512i a, int scale)
シノプシス:
void__m512i_m512_132scatter_epi32(void* base_addr, __m512i vindex, __512ia, int scale)
#include “immintrin.h”
Instruction :vpscatterdd vm32{k}, zmm
CPUID Flags :AVX512F for AVX−512, KNCNI for KNC
説明:
32ビットインデックスを用いて、aからメモリに32ビット整数を散乱させる。32ビット要素は、base_addrで開始するアドレスに格納され、vindex内の各32ビット要素によりオフセットされる(各インデックスはscale内の因子によりスケーリングされる)。scaleは1、2、4、又は8であるべきである。
動作:
FOR j:=0 to 15
i:=j*32
MEM[base_addr+SignExtend(vindex[i+31:i])*scale]:=a[i+31:i]
ENDFOR
擬似コード抜粋2:
hashTable[hashes[i]]=position[i] for i in 0…15
ここで、以上の記載と一緒に本発明を非限定的に説明する以下の例を参照する。
Claims (15)
- 入力データストリームを圧縮して圧縮出力データストリームを生成するシステムであって、
ハッシュテーブルを格納するメモリであって、前記ハッシュテーブルは複数のハッシュエントリを含み、各ハッシュエントリは、入力データストリームの複数のデータアイテムのうちの続くデータアイテムの複数のサブセットのうちの関連サブセットのハッシュ値と、前記関連サブセットのメモリ位置へのポインタと、を含む、メモリと、
前記メモリに結合されるプロセッサであって、
以下の動作:
被処理サブセットのうちのサブセット毎に前記ハッシュ値を計算し、
各計算したハッシュ値の一致について前記ハッシュテーブルを検索し、
前記一致の結果に従い、前記ハッシュテーブルを更新する、
を実行し、その間、前記動作のうちの少なくとも1つの動作は、単一命令多重データ処理、SIMD、エンジンに、前記複数のサブセットのうちの連続サブセットのグループの各被処理サブセットについて、前記少なくとも1つの動作を同時実行するよう指示することにより実行され、
前記一致の結果及び前記一致の結果に依存する比較の比較結果に従い、前記圧縮出力データストリームを更新し、
前記複数の関連サブセットについて、前記計算、検索、及び更新を繰り返して、前記圧縮出力データストリームを生成する、よう適応されるプロセッサと、
を含むシステム。 - 前記複数の関連サブセットの各々は、前記SIMDエンジンのアーキテクチャに従い定義された所定数のデータアイテムを含む、請求項1に記載のシステム。
- 前記グループ内の被処理サブセットの数は、前記SIMDエンジンのアーキテクチャに従い設定される、請求項1又は2に記載のシステム。
- 前記一致の結果は、各計算したハッシュ値の前記ハッシュテーブル内に存在する既存ハッシュ値との一致を示す、請求項1乃至3のいずれかに記載のシステム。
- 前記比較は、前記一致の結果が前記計算したハッシュ値の前記ハッシュテーブル内の一致するハッシュ値との一致を示す場合に、前記比較結果を生成するよう行われ、
前記比較は、前記計算したハッシュ値を有する前記被処理サブセットの前記データアイテムと、前記一致するハッシュエントリ内の前記ポインタによりポイントされる前記関連サブセットの前記データアイテムとの間の比較を含む、
請求項1乃至4のいずれかに記載のシステム。 - 前記比較結果が、前記被処理サブセット及び前記関連サブセットの前記データアイテムが同一であると示す場合、前記被処理サブセットは、前記圧縮出力データストリーム内の前記関連サブセットへのポインタにより置き換えられ、
前記比較結果が、前記被処理サブセット及び前記関連サブセットの前記データアイテムが同一でないと示す場合、前記被処理サブセットは、前記圧縮出力データストリーム内で更新され、前記ハッシュテーブルは前記被処理サブセットの新しいハッシュエントリにより更新される、
請求項1乃至5のいずれかに記載のシステム。 - 前記の同時計算は、前記プロセッサが被処理サブセットの前記グループを前記SIMDエンジンの少なくとも1つのSIMDレジスタにロードすること、及び前記SIMDエンジンがサブセットの前記グループを同時処理すること、を含み、前記同時処理は、
前記グループの前記被処理サブセットを互いに離すこと、
被処理サブセット毎に異なるシフト値を用いて前記被処理サブセットをシフトすること、及び、前記被処理サブセットを処理して前記被処理サブセット毎にハッシュ値を生成すること、を含む、請求項1乃至6のいずれかに記載のシステム。 - 前記ハッシュテーブル内の前記被処理サブセットの各々の前記一致についての前記の同時検索は、前記プロセッサが、前記SIMDエンジンに、前記計算したハッシュ値の各々の前記ハッシュテーブルに格納されたハッシュ値との一致について同時検索するよう指示することを含む、請求項1乃至7のいずれかに記載のシステム。
- 少なくとも1つの被処理サブセットによる前記ハッシュテーブルの前記の同時更新は、前記プロセッサが、前記SIMDエンジンに、前記少なくとも1つの被処理サブセットに関連付けられたエントリにより、前記ハッシュテーブルを同時更新するよう指示することを含む、請求項1乃至8のいずれかに記載のシステム。
- 前記圧縮出力データストリームは、レガシ圧縮方法を用いて圧縮された標準的圧縮出力データストリームに準拠し、前記圧縮出力データストリームは、レガシ伸長方法を用いて伸長される、請求項1乃至9のいずれかに記載のシステム。
- 入力データストリームを圧縮して圧縮出力データストリームを生成する方法であって、
複数のハッシュエントリを含むハッシュテーブルを格納するステップであって、各ハッシュエントリは、入力データストリームの複数のデータアイテムのうちのデータアイテムの複数のサブセットのうちの関連サブセットのハッシュ値と、前記関連サブセットのメモリ位置へのポインタと、を含む、ステップと、
以下の動作:
被処理サブセットのうちのサブセット毎に前記ハッシュ値を計算し、
各計算したハッシュ値の一致について前記ハッシュテーブルを検索し、
前記一致の結果に従い、前記ハッシュテーブルを更新する、
を実行するステップであって、その間、前記動作のうちの少なくとも1つの動作は、プロセッサの単一命令多重データ処理、SIMD、エンジンに、前記複数の関連サブセットのうちの連続サブセットのグループの各被処理サブセットについて、前記少なくとも1つの動作を同時実行するよう指示することにより実行される、ステップと、
前記一致の結果及び前記一致の結果に依存する比較の比較結果に従い、前記圧縮出力データストリームを更新するステップと、
前記複数のサブセットを通じて、前記計算、検索、及び更新を繰り返して、前記圧縮出力データストリームを生成するステップと、
を含む方法。 - 前記の同時計算は、前記プロセッサが被処理サブセットの前記グループを前記SIMDエンジンの少なくとも1つのSIMDレジスタにロードすること、及び前記SIMDエンジンが被処理サブセットの前記グループを同時処理すること、を含み、前記同時処理は、
前記グループの前記被処理サブセットを互いに離すこと、
被処理サブセット毎に異なるシフト値を用いて前記被処理サブセットをシフトすること、及び、前記被処理サブセットを処理して前記被処理サブセット毎にハッシュ値を生成すること、を含む、請求項11に記載の方法。 - 前記ハッシュテーブル内の前記被処理サブセットの各々の前記一致についての前記の同時検索は、前記プロセッサが、前記SIMDエンジンに、前記計算したハッシュ値の各々の前記ハッシュテーブルに格納されたハッシュ値との一致について同時検索するよう指示することを含む、請求項11に記載の方法。
- 少なくとも1つの被処理サブセットによる前記ハッシュテーブルの前記の同時更新は、前記プロセッサが、前記SIMDエンジンに、前記少なくとも1つの被処理サブセットに関連付けられたエントリにより、前記ハッシュテーブルを同時更新するよう指示することを含む、請求項11に記載の方法。
- 前記圧縮出力データストリームは、レガシ圧縮方法を用いて圧縮された標準的圧縮出力データストリームに準拠し、前記圧縮出力データストリームは、レガシ伸長方法を用いて伸長される、請求項11乃至14のいずれか一項に記載の方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2016/066798 WO2018010800A1 (en) | 2016-07-14 | 2016-07-14 | General purpose data compression using simd engine |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019522940A true JP2019522940A (ja) | 2019-08-15 |
JP6921936B2 JP6921936B2 (ja) | 2021-08-18 |
Family
ID=56409635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019501704A Active JP6921936B2 (ja) | 2016-07-14 | 2016-07-14 | Simdエンジンを用いる汎用データ圧縮 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10489160B2 (ja) |
EP (1) | EP3476051A1 (ja) |
JP (1) | JP6921936B2 (ja) |
CN (1) | CN108141225B (ja) |
WO (1) | WO2018010800A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109361398B (zh) * | 2018-10-11 | 2022-12-30 | 南威软件股份有限公司 | 一种基于并行和流水线设计的lz过程硬件压缩方法及*** |
CN110572160A (zh) * | 2019-08-01 | 2019-12-13 | 浙江大学 | 一种指令集模拟器译码模块代码的压缩方法 |
CN110830938B (zh) * | 2019-08-27 | 2021-02-19 | 武汉大学 | 一种针对室内信号源部署方案筛选的指纹定位快速实现方法 |
CN111370064B (zh) * | 2020-03-19 | 2023-05-05 | 山东大学 | 基于simd的哈希函数的基因序列快速分类方法及*** |
CN113886652B (zh) * | 2021-10-09 | 2022-06-17 | 北京欧拉认知智能科技有限公司 | 一种内存优先的多模图数据存储与计算方法及*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3913004B2 (ja) * | 2001-05-28 | 2007-05-09 | キヤノン株式会社 | データ圧縮方法及び装置及びコンピュータプログラム及び記憶媒体 |
KR101956031B1 (ko) * | 2012-10-15 | 2019-03-11 | 삼성전자 주식회사 | 데이터 압축 장치 및 방법, 데이터 압축 장치를 포함하는 메모리 시스템 |
CN103023509A (zh) * | 2012-11-14 | 2013-04-03 | 无锡芯响电子科技有限公司 | 一种硬件lz77压缩实现***及其实现方法 |
US8766827B1 (en) * | 2013-03-15 | 2014-07-01 | Intel Corporation | Parallel apparatus for high-speed, highly compressed LZ77 tokenization and Huffman encoding for deflate compression |
JP6048251B2 (ja) * | 2013-03-21 | 2016-12-21 | 富士通株式会社 | データ圧縮装置、データ圧縮方法、およびデータ圧縮プログラム、並びにデータ復元装置、データ復元方法、およびデータ復元プログラム |
US9690488B2 (en) * | 2015-10-19 | 2017-06-27 | Intel Corporation | Data compression using accelerator with multiple search engines |
-
2016
- 2016-07-14 WO PCT/EP2016/066798 patent/WO2018010800A1/en unknown
- 2016-07-14 EP EP16738472.6A patent/EP3476051A1/en not_active Ceased
- 2016-07-14 CN CN201680058318.2A patent/CN108141225B/zh active Active
- 2016-07-14 JP JP2019501704A patent/JP6921936B2/ja active Active
-
2019
- 2019-01-11 US US16/246,179 patent/US10489160B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10489160B2 (en) | 2019-11-26 |
CN108141225A (zh) | 2018-06-08 |
CN108141225B (zh) | 2020-10-27 |
JP6921936B2 (ja) | 2021-08-18 |
US20190146801A1 (en) | 2019-05-16 |
EP3476051A1 (en) | 2019-05-01 |
WO2018010800A1 (en) | 2018-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6921936B2 (ja) | Simdエンジンを用いる汎用データ圧縮 | |
EP4012928B1 (en) | Methods, devices and systems for semantic-value data compression and decompression | |
Ratanaworabhan et al. | Fast lossless compression of scientific floating-point data | |
EP2788902B1 (en) | Techniques for more efficient usage of memory-to-cpu bandwidth | |
US9203887B2 (en) | Bitstream processing using coalesced buffers and delayed matching and enhanced memory writes | |
CN112514270B (zh) | 数据压缩 | |
Lenhardt et al. | Gipfeli-high speed compression algorithm | |
CN107534445B (zh) | 用于分割哈希值计算的向量处理 | |
Goel | A compression algorithm for DNA that uses ASCII values | |
Chłopkowski et al. | A general purpose lossless data compression method for GPU | |
WO2007108395A1 (ja) | 可変長符号の復号装置および復号方法 | |
GB2524515A (en) | Method to improve compression ratio for a compression engine | |
JP2016052046A (ja) | 圧縮装置、伸長装置およびストレージ装置 | |
Lu et al. | G-Match: a fast GPU-friendly data compression algorithm | |
Ouyang et al. | Fast compression of huge DNA sequence data | |
Zhou et al. | A high speed lossless compression algorithm based on cpu and gpu hybrid platform | |
US11748307B2 (en) | Selective data compression based on data similarity | |
Pungila et al. | Real-Time Hybrid Compression of Pattern Matching Automata for Heterogeneous Signature-Based Intrusion Detection | |
De Agostino | Compressing Large Size Files on the Web in MapReduce | |
Tu et al. | A novel classified multi-dictionary code compression for embedded systems | |
Zhang | Efficient Parallel Text Compression on GPUs | |
Deshpande et al. | Fast Burrows Wheeler Compression Using CPU and GPU | |
JP2018046518A (ja) | データ処理装置及びデータ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190215 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191223 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200204 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200501 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201027 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210125 |
|
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: 20210629 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210728 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6921936 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |