JP6381546B2 - 多バイト・フレームのパイプライン化圧縮のための方法、符号化データ・ストリームへの高帯域圧縮のための装置、およびコンピュータ・プログラム製品 - Google Patents
多バイト・フレームのパイプライン化圧縮のための方法、符号化データ・ストリームへの高帯域圧縮のための装置、およびコンピュータ・プログラム製品 Download PDFInfo
- Publication number
- JP6381546B2 JP6381546B2 JP2015551229A JP2015551229A JP6381546B2 JP 6381546 B2 JP6381546 B2 JP 6381546B2 JP 2015551229 A JP2015551229 A JP 2015551229A JP 2015551229 A JP2015551229 A JP 2015551229A JP 6381546 B2 JP6381546 B2 JP 6381546B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- matches
- dictionary
- match
- substring
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- 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/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
- H03M7/6029—Pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
Claims (32)
- データ処理システム中の、多バイト・フレームのパイプライン化圧縮のための方法であって、
データのフレームを形成するように、入力データ・ストリーム中の現在のサイクルのデータに、前記入力データ・ストリーム中の次のサイクルのデータの少なくとも一部を組み合わせることと、
複数の辞書メモリ中の複数の一致を識別することであって、各一致が、データの前記フレーム内の所与の下位文字列の一部と対応する辞書メモリのデータが一致する、前記識別することと、
前記現在のサイクルのデータの最良のカバレージを提供する、前記複数の一致からの一致のサブセットを識別することと、
データの前記フレームを符号化出力データ・ストリームに符号化することと
を含む方法。 - 前記現在のサイクルのデータに前記次のサイクルのデータの少なくとも前記一部を組み合わせることが、複数の下位文字列を形成することであって、各下位文字列が、前記現在のサイクルのデータのそれぞれのバイトで開始し、前記現在のサイクルのデータと等しい長さを有する、前記形成することを含む、請求項1に記載の方法。
- 一致の前記サブセットが、第1のサイクルのデータと前記次のサイクルのデータの間のサイクル境界を横切る、請求項1または2に記載の方法。
- データの前記フレームを前記符号化出力データ・ストリームに符号化することが、
一致符号化データを形成するように、一致の前記サブセットの各々を長さおよび距離情報で符号化することと、
圧縮符号化データを形成するように、前記入力データ・ストリーム中の前記現在のサイクルのデータ中の不一致データを、無損失圧縮を使用して符号化することと、
出力データ・ストリーム中で、前記一致符号化データと前記圧縮符号化データを整合することと
を含む、請求項1ないし3のいずれか一項に記載の方法。 - 複数のアドレスを形成するように、複数の下位文字列中の各所与の下位文字列に基づいてアドレスを生成することをさらに含む、請求項1ないし4のいずれか一項に記載の方法。
- 前記アドレスを生成することが、前記所与の下位文字列にハッシュを実施することを含む、請求項5に記載の方法。
- 各所与の下位文字列および対応する位置の値を、前記所与の下位文字列から生成される前記アドレスを使用して、前記複数の辞書メモリ内の対応する辞書メモリに書き込むことをさらに含む、請求項5または6に記載の方法。
- 前記複数の一致を識別することが、前記複数のアドレスを使用して、前記複数の辞書メモリ内の各所与の辞書メモリから読み取り、各辞書メモリについてのゼロまたは1つ以上の有効エントリを受け取ることを含む、請求項5ないし7のいずれか一項に記載の方法。
- 前記複数の一致を識別することが、
少なくとも1つの有効エントリを有する各辞書メモリについて、前記少なくとも1つの有効エントリを対応する下位文字列と比較することと、
少なくとも1つの有効エントリを有する各辞書メモリについて、前記対応する下位文字列の最初から始まる連続一致バイトの数に基づいて最長一致を選択し、前記複数の一致を形成することと
をさらに含む、請求項8に記載の方法。 - 前記複数の一致の各々が一致長さの値および位置の値を有し、前記長さの値が前記一致データの長さを示し、前記位置の値が、前記入力データ・ストリーム中の前記一致データの以前の発生を参照する、請求項9に記載の方法。
- 符号化データ・ストリームへの高帯域圧縮のための装置であって、
複数の辞書メモリおよび関連するロジックを備える辞書ルックアップ/アップデート・ステージと、
複数の比較回路および関連するロジックを備える一致選択ステージと、
符号化ステージと
を備え、
前記辞書ルックアップ/アップデート・ステージが、入力データ・ストリーム中の現在のサイクルのデータに前記入力データ・ストリーム中の次のサイクルのデータの少なくとも一部を組み合わせて含むデータのフレームを受け取り、前記複数の辞書メモリ中の複数の一致を識別し、各一致が、データの前記フレーム内の所与の下位文字列の一部と対応する辞書メモリのデータが一致し、
前記一致選択ステージが、前記複数の比較回路を使用して、前記現在のサイクルのデータの、最良のカバレージを提供する、前記複数の一致からの一致のサブセットを識別し、
前記符号化ステージが、データの前記フレームを符号化出力データ・ストリームに符号化する、装置。 - 前記現在のサイクルのデータに前記次のサイクルのデータの少なくとも前記一部を組み合わせることが、複数の下位文字列を形成することであって、各下位文字列が、前記現在のサイクルのデータのそれぞれのバイトで開始し、前記現在のサイクルのデータと等しい長さを有する、前記形成することを含む、請求項11に記載の装置。
- 一致の前記サブセットが、第1のサイクルのデータと前記次のサイクルのデータの間のサイクル境界を横切る、請求項11または12に記載の装置。
- 前記符号化ステージが、一致符号化データを形成するように、一致の前記サブセットの各々を長さおよび距離情報で符号化し、圧縮符号化データを形成するように、前記入力データ・ストリーム中の前記現在のサイクルのデータ中の不一致データを、無損失圧縮を使用して符号化する、請求項11ないし13のいずれか一項に記載の装置。
- 前記符号化ステージが、ハフマン・コーディング回路を備え、前記符号化ステージが、前記ハフマン・コーディング回路を使用して不一致データを符号化する、請求項14に記載の装置。
- ビット/バイト整合ステージをさらに備え、前記ビット/バイト整合ステージが、出力データ・ストリーム中で、前記一致符号化データと前記圧縮符号化データを整合する、請求項11ないし15のいずれか一項に記載の装置。
- 前記辞書ルックアップ/アップデート・ステージが、複数のアドレスを形成するように、複数の下位文字列中の各所与の下位文字列に基づいてアドレスを生成する、請求項11ないし16のいずれか一項に記載の装置。
- 前記辞書ルックアップ/アップデート・ステージが、前記所与の下位文字列にハッシュを実施することによりアドレスを生成する、請求項17に記載の装置。
- 前記辞書ルックアップ/アップデート・ステージが、各所与の下位文字列および対応する位置の値を、前記所与の下位文字列から生成される前記アドレスを使用して、前記複数の辞書メモリ内の対応する辞書メモリに書き込む、請求項17または18に記載の装置。
- 前記辞書ルックアップ/アップデート・ステージが、前記複数のアドレスを使用して、前記複数の辞書メモリ内の各所与の辞書メモリから読み取り、各辞書メモリについてのゼロまたは1つ以上の有効エントリを受け取ることにより、前記複数の一致を識別する、請求項17ないし19のいずれか一項に記載の装置。
- 前記一致選択ステージが、少なくとも1つの有効エントリを有する各辞書メモリについて、前記少なくとも1つの有効エントリを対応する下位文字列と比較し、少なくとも1つの有効エントリを有する各辞書メモリについて、前記対応する下位文字列の最初から始まる連続一致バイトの数に基づいて最長一致を選択し、前記複数の一致を形成することにより、一致のサブセットを識別する、請求項20に記載の装置。
- 前記複数の一致の各々が一致長さの値および位置の値を有し、前記長さの値が前記一致データの長さを示し、前記位置の値が、前記入力データ・ストリーム中の前記一致データの以前の発生を参照する、請求項21に記載の装置。
- コンピュータ可読プログラムが記憶されたコンピュータ可読記憶媒体のコンピュータ・プログラム製品であって、コンピューティング・デバイス上で実行されると、前記コンピュータ可読プログラムが前記コンピューティング・デバイスに、
データのフレームを形成するように、入力データ・ストリーム中の現在のサイクルのデータに、前記入力データ・ストリーム中の次のサイクルのデータの少なくとも一部を組み合わせること、
複数の辞書メモリ中の複数の一致を識別することであって、各一致が、データの前記フレーム内の所与の下位文字列の一部と対応する辞書メモリのデータが一致する、前記識別すること、
前記現在のサイクルのデータの最良のカバレージを提供する、前記複数の一致からの一致のサブセットを識別すること、および
データの前記フレームを符号化出力データ・ストリームに符号化すること
を実行させる、コンピュータ・プログラム製品。 - 前記現在のサイクルのデータに前記次のサイクルのデータの少なくとも前記一部を組み合わせることが、複数の下位文字列を形成することであって、各下位文字列が、前記現在のサイクルのデータのそれぞれのバイトで開始し、前記現在のサイクルのデータと等しい長さを有する、前記形成することを含む、請求項23に記載のコンピュータ・プログラム製品。
- 一致の前記サブセットが、第1のサイクルのデータと前記次のサイクルのデータの間のサイクル境界を横切る、請求項23または24に記載のコンピュータ・プログラム製品。
- データの前記フレームを前記符号化出力データ・ストリームに符号化することが、
一致符号化データを形成するように、一致の前記サブセットの各々を長さおよび距離情報で符号化すること、
圧縮符号化データを形成するように、前記入力データ・ストリーム中の前記現在のサイクルのデータ中の不一致データを、無損失圧縮を使用して符号化すること、ならびに
出力データ・ストリーム中で、前記一致符号化データと前記圧縮符号化データを整合すること
を含む、請求項23ないし25のいずれか一項に記載のコンピュータ・プログラム製品。 - 前記コンピュータ可読プログラムが前記コンピューティング・デバイスに、複数のアドレスを形成するように、複数の下位文字列中の各所与の下位文字列に基づいてアドレスを生成することをさらに実行させる、請求項23ないし26のいずれか一項に記載のコンピュータ・プログラム製品。
- 前記アドレスを生成することが、前記所与の下位文字列にハッシュを実施することを含む、請求項27に記載のコンピュータ・プログラム製品。
- 前記コンピュータ可読プログラムが前記コンピューティング・デバイスに、各所与の下位文字列および対応する位置の値を、前記所与の下位文字列から生成される前記アドレスを使用して、前記複数の辞書メモリ内の対応する辞書メモリに書き込むことをさらに実行させる、請求項27または28に記載のコンピュータ・プログラム製品。
- 前記複数の一致を識別することが、前記複数のアドレスを使用して、前記複数の辞書メモリ内の各所与の辞書メモリから読み取り、各辞書メモリについてのゼロまたは1つ以上の有効エントリを受け取ることを含む、請求項27ないし29のいずれか一項に記載のコンピュータ・プログラム製品。
- 前記複数の一致を識別することが、
少なくとも1つの有効エントリを有する各辞書メモリについて、前記少なくとも1つの有効エントリを対応する下位文字列と比較すること、および
少なくとも1つの有効エントリを有する各辞書メモリについて、前記対応する下位文字列の最初から始まる連続一致バイトの数に基づいて最長一致を選択し、前記複数の一致を形成すること
をさらに含む、請求項30に記載のコンピュータ・プログラム製品。 - 前記複数の一致の各々が一致長さの値および位置の値を有し、前記長さの値が前記一致データの長さを示し、前記位置の値が、前記入力データ・ストリーム中の前記一致データの以前の発生を参照する、請求項31に記載のコンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/733,354 | 2013-01-03 | ||
US13/733,354 US8704686B1 (en) | 2013-01-03 | 2013-01-03 | High bandwidth compression to encoded data streams |
PCT/IB2013/060559 WO2014106782A1 (en) | 2013-01-03 | 2013-12-02 | High bandwidth compression to encoded data streams |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016506197A JP2016506197A (ja) | 2016-02-25 |
JP6381546B2 true JP6381546B2 (ja) | 2018-08-29 |
Family
ID=50481835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015551229A Active JP6381546B2 (ja) | 2013-01-03 | 2013-12-02 | 多バイト・フレームのパイプライン化圧縮のための方法、符号化データ・ストリームへの高帯域圧縮のための装置、およびコンピュータ・プログラム製品 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8704686B1 (ja) |
JP (1) | JP6381546B2 (ja) |
CN (1) | CN104904123B (ja) |
DE (1) | DE112013006339B4 (ja) |
GB (1) | GB2521082A (ja) |
WO (1) | WO2014106782A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2524515A (en) | 2014-03-25 | 2015-09-30 | Ibm | Method to improve compression ratio for a compression engine |
GB2524516A (en) | 2014-03-25 | 2015-09-30 | Ibm | Hardware compression method finding backward references with multi-level hashes |
US9160362B1 (en) * | 2014-05-08 | 2015-10-13 | Qualcomm Incorporated | Lempel-Ziv (LZ)-based data compression employing implicit variable-length distance coding |
US9590655B2 (en) | 2015-03-27 | 2017-03-07 | Microsoft Technology Licensing, Llc | Scalable high-bandwidth architecture for lossless compression |
US9628111B2 (en) | 2015-05-11 | 2017-04-18 | Via Alliance Semiconductor Co., Ltd. | Hardware data compressor with multiple string match search hash tables each based on different hash size |
US9509337B1 (en) | 2015-05-11 | 2016-11-29 | Via Alliance Semiconductor Co., Ltd. | Hardware data compressor using dynamic hash algorithm based on input block type |
US9503122B1 (en) | 2015-05-11 | 2016-11-22 | Via Alliance Semiconductor Co., Ltd. | Hardware data compressor that sorts hash chains based on node string match probabilities |
US9515678B1 (en) * | 2015-05-11 | 2016-12-06 | Via Alliance Semiconductor Co., Ltd. | Hardware data compressor that directly huffman encodes output tokens from LZ77 engine |
US10027346B2 (en) | 2015-05-11 | 2018-07-17 | Via Alliance Semiconductor Co., Ltd. | Hardware data compressor that maintains sorted symbol list concurrently with input block scanning |
US9509336B1 (en) | 2015-05-11 | 2016-11-29 | Via Alliance Semiconductor Co., Ltd. | Hardware data compressor that pre-huffman encodes to decide whether to huffman encode a matched string or a back pointer thereto |
US9509335B1 (en) | 2015-05-11 | 2016-11-29 | Via Alliance Semiconductor Co., Ltd. | Hardware data compressor that constructs and uses dynamic-prime huffman code tables |
JP2023039698A (ja) | 2021-09-09 | 2023-03-22 | キオクシア株式会社 | データ圧縮装置およびメモリシステム |
JP2023043618A (ja) | 2021-09-16 | 2023-03-29 | キオクシア株式会社 | 圧縮回路、圧縮方法、及びストレージシステム |
JP2023131392A (ja) | 2022-03-09 | 2023-09-22 | キオクシア株式会社 | 辞書式圧縮装置及びメモリシステム |
US11914862B2 (en) | 2022-03-22 | 2024-02-27 | Western Digital Technologies, Inc. | Data compression with entropy encoding |
CN116567097B (zh) * | 2023-07-04 | 2023-09-01 | 广东慧航天唯科技有限公司 | 基于数据监控的废机油调度数据安全管理系统 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3038234B2 (ja) * | 1990-09-20 | 2000-05-08 | 富士通株式会社 | データ圧縮装置の辞書検索方式 |
US5140321A (en) | 1991-09-04 | 1992-08-18 | Prime Computer, Inc. | Data compression/decompression method and apparatus |
US5406278A (en) | 1992-02-28 | 1995-04-11 | Intersecting Concepts, Inc. | Method and apparatus for data compression having an improved matching algorithm which utilizes a parallel hashing technique |
US5406279A (en) * | 1992-09-02 | 1995-04-11 | Cirrus Logic, Inc. | General purpose, hash-based technique for single-pass lossless data compression |
US5467087A (en) * | 1992-12-18 | 1995-11-14 | Apple Computer, Inc. | High speed lossless data compression system |
US5572206A (en) * | 1994-07-06 | 1996-11-05 | Microsoft Corporation | Data compression method and system |
US5771010A (en) * | 1995-03-22 | 1998-06-23 | Ibm Corporation | Apparatus for compressing data using a Lempel-Ziv-type algorithm |
US5861827A (en) * | 1996-07-24 | 1999-01-19 | Unisys Corporation | Data compression and decompression system with immediate dictionary updating interleaved with string search |
US6624762B1 (en) | 2002-04-11 | 2003-09-23 | Unisys Corporation | Hardware-based, LZW data compression co-processor |
US20040022312A1 (en) * | 2002-07-31 | 2004-02-05 | Jones Simon R. | Lossless data compression |
US6667700B1 (en) | 2002-10-30 | 2003-12-23 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US7051126B1 (en) | 2003-08-19 | 2006-05-23 | F5 Networks, Inc. | Hardware accelerated compression |
JP4556766B2 (ja) | 2005-05-23 | 2010-10-06 | ソニー株式会社 | 文字列検索回路及び文字列検索方法 |
US7307552B2 (en) | 2005-11-16 | 2007-12-11 | Cisco Technology, Inc. | Method and apparatus for efficient hardware based deflate |
US7538695B2 (en) | 2007-06-29 | 2009-05-26 | Rmi Corporation | System and method for deflate processing within a compression engine |
US9772936B2 (en) * | 2008-07-10 | 2017-09-26 | Micron Technology, Inc. | Data collection and compression in a solid state storage device |
-
2013
- 2013-01-03 US US13/733,354 patent/US8704686B1/en active Active
- 2013-12-02 GB GB1506285.4A patent/GB2521082A/en not_active Withdrawn
- 2013-12-02 CN CN201380069224.1A patent/CN104904123B/zh active Active
- 2013-12-02 WO PCT/IB2013/060559 patent/WO2014106782A1/en active Application Filing
- 2013-12-02 DE DE112013006339.5T patent/DE112013006339B4/de active Active
- 2013-12-02 JP JP2015551229A patent/JP6381546B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
US8704686B1 (en) | 2014-04-22 |
CN104904123B (zh) | 2018-04-27 |
WO2014106782A1 (en) | 2014-07-10 |
GB2521082A (en) | 2015-06-10 |
DE112013006339B4 (de) | 2022-12-22 |
JP2016506197A (ja) | 2016-02-25 |
CN104904123A (zh) | 2015-09-09 |
GB201506285D0 (en) | 2015-05-27 |
DE112013006339T5 (de) | 2015-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6381546B2 (ja) | 多バイト・フレームのパイプライン化圧縮のための方法、符号化データ・ストリームへの高帯域圧縮のための装置、およびコンピュータ・プログラム製品 | |
JP5878644B2 (ja) | データ処理システムにおいて、可変長符号化データ・ストリームを復号するための方法、コンピュータ・プログラム、および、装置 | |
US20170038978A1 (en) | Delta Compression Engine for Similarity Based Data Deduplication | |
KR101841103B1 (ko) | Vlsi 효율적인 허프만 인코딩 장치 및 방법 | |
JP6425709B2 (ja) | 復元中に予備拡張辞書を利用するデータ復元 | |
US9813079B2 (en) | High-throughput compression of data | |
CN106664101B (zh) | 自适应速率压缩散列处理装置 | |
US20230041067A1 (en) | Systems and methods of data compression | |
JP2021527376A (ja) | データ圧縮 | |
US20180041224A1 (en) | Data value suffix bit level compression | |
Funasaka et al. | Adaptive loss‐less data compression method optimized for GPU decompression | |
Li et al. | Implementation of LZMA compression algorithm on FPGA | |
US9287893B1 (en) | ASIC block for high bandwidth LZ77 decompression | |
US20240028563A1 (en) | System and method for securing high-speed intrachip communications | |
CN109690957B (zh) | 熵编码的系统级测试 | |
US10873836B2 (en) | Efficient short message compression | |
US11868616B2 (en) | System and method for low-distortion compaction of floating-point numbers | |
US11734231B2 (en) | System and methods for bandwidth-efficient encoding of genomic data | |
JP2016052046A (ja) | 圧縮装置、伸長装置およびストレージ装置 | |
US10585626B2 (en) | Management of non-universal and universal encoders | |
Ni et al. | Research on incremental updating |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180214 |
|
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: 20180710 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180731 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6381546 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |