Facebookが開発した高速データ圧縮アルゴリズムZstdの使い方

Facebookが開発した高速データ圧縮アルゴリズムZstdの使い方

[51CTO.com クイック翻訳] Zstandard (Zstd とも呼ばれる) は、Facebook が開発した、圧縮率の高い無料のオープンソースの高速リアルタイム データ圧縮プログラムです。これは C で記述されたロスレス圧縮アルゴリズムなので、ネイティブの Linux プログラムです。

必要に応じて、圧縮速度を犠牲にしてより高い圧縮率を得ることもできます (圧縮速度と圧縮率の組み合わせは段階的に設定できます)。また、その逆も可能です。辞書圧縮と呼ばれる小さなデータ圧縮用の特別なモードがあり、提供された任意のサンプル セットから辞書を構築できます。 .zst、.gz、.xz、.lz4 ファイルなどを作成およびデコードするためのコマンド ライン ユーティリティが付属しています。

重要なのは、Zstandard には、Python、Java、JavaScript、Nodejs、Perl、Ruby、C#、Go、Rust、PHP、Swift など、ほぼすべての一般的なプログラミング言語をサポートする豊富な API セットがあることです。

Facebook では、Amazon の Redshift データ ウェアハウス、Hadoop や Redis などのデータベース、Tor ネットワーク、ゲームなどの他の多くのアプリケーションなどのさまざまなユース ケースで、大量のデータを複数の形式で圧縮するために積極的に使用されています。

オープンソースのメモリベンチマークツールである lzbench を使用して、Linux Debian を実行しているサーバー上でいくつかの簡単な圧縮アルゴリズムテストを実行しました。結果は次のとおりです。

Z標準圧縮テスト

Linux に Zstandard 圧縮ツールをインストールするにはどうすればいいですか?

Linux ディストリビューションに Zstandard をインストールするには、ソース コードからコンパイルする必要があります。ただし、その前に、次のように、ディストリビューションのパッケージ マネージャーを使用して、システムに必要な開発ツールをインストールする必要があります。

  1. $ sudo apt update && sudo apt install build-essential #Ubuntu/Debian  
  2. # yumグループインストール「開発ツール」 #CentOS/REHL  
  3. # dnf groupinstall "C 開発ツールとライブラリ" #Fedora 22+

必要な開発ツールがすべてインストールされたら、ソース コード パッケージをダウンロードし、ローカル リポジトリ ディレクトリに移動して、バイナリ ファイルをビルドし、次のようにインストールします。

  1. $ cd ~/ダウンロード 
  2. $ gitクローン https://github.com/facebook/zstd.git  
  3. $ cd zstd  
  4. $ 作る 
  5. $ sudo インストール

Zstandard がインストールされたら、次のセクションで Zstd コマンド例の基本的な使用方法を学習していきます。

Linux での Zstd コマンドの使用例 10 個を学ぶ

zstd のコマンドライン構文は、gzip ツールや xz ツールの構文と一般的に似ていますが、いくつかの違いがあります。

1. .zst 圧縮ファイルを作成するには、圧縮ファイル名を指定するか、デフォルトの操作である圧縮を意味する -z フラグを使用します。

  1. $ zstd エッチャー-1.3.1-x86_64.AppImage

または

  1. $ zstd -z etcher-1.3.1-x86_64.AppImage

2. .zst 圧縮ファイルを解凍するには、次に示すように -d フラグまたは unzstd ユーティリティを使用します。

  1. $ zstd -d エッチャー-1.3.1-x86_64.AppImage

または

  1. $ unzstd etcher-1.3.1-x86_64.AppImage

3. 圧縮操作後にソース ファイルを削除する場合、デフォルトでは、圧縮または解凍が成功した後もソース ファイルは削除されません。削除する場合は、--rm オプションを使用します。

  1. $ ls etcher-1.3.1-x86_64.AppImage  
  2. $ zstd --rm etcher-1.3.1-x86_64.AppImage    
  3. $ ls etcher-1.3.1-x86_64.AppImage

4. 圧縮レベルを設定するために、Zstd には多くの操作修飾子があります。たとえば、次に示すように、圧縮レベルを -6 (値 1 ~ 19、デフォルト値は 3) に指定できます。

  1. $ zstd -6 --rm etcher-1.3.1-x86_64.AppImage  

5. 圧縮速度を設定する場合、Zstd の圧縮速度比は 1 ~ 10 で、デフォルトの圧縮速度は 1 です。 --fast オプションを使用すると、圧縮率を犠牲にして圧縮速度を上げることができます。値が大きいほど、圧縮速度が速くなります。

  1. $ zstd --fast=10 etcher-1.3.1-x86_64.AppImage  

6. 圧縮ファイルに関する情報を表示するには、-l フラグを使用します。これを使用して、圧縮ファイルに関する情報を表示できます。

  1. $ zstd -l エッチャー-1.3.1-x86_64.AppImage.zst

7. 圧縮ファイルの整合性をテストするには、次に示すように -t フラグを使用します。

  1. $ zstd -t エッチャー-1.3.1-x86_64.AppImage.zst

8. 詳細モードを有効にするには、-v オプションを使用します。

  1. $ zstd -v -5 etcher-1.3.1-x86_64.AppImage

9. gzip、xz、lzma、lz4 などの他のファイル圧縮または解凍形式を使用するには、以下に示すように --format=FORMAT を使用します。

  1. $ zstd -v --format=gzip etcher-1.3.1-x86_64.AppImage    
  2. $ zstd -v --format=xz etcher-1.3.1-x86_64.AppImage  

10. Zstd プロセスの優先度をリアルタイムに設定するには、次に示すようにオプション -priority=rt を使用します。

  1. $zstd --priority=rt etcher-1.3.1-x86_64.AppImage  

-r フラグは、Zstd に辞書に対して再帰操作を実行するように指示します。 Zstd リファレンス ページを参照すると、多くの便利な高度なオプションや、辞書の読み取り方法や作成方法がわかります。

  1. $ 男 zstd  
  2. Zstandard Githubリポジトリ: https://github.com/facebook/zstd

Zstandard は、高い圧縮率を実現する高速リアルタイムロスレス データ圧縮アルゴリズムおよび圧縮ツールです。ぜひお試しいただき、ご意見をお聞かせください。また、下のフィードバック フォームからご質問ください。

原題: zstd – Facebook が使用する高速データ圧縮アルゴリズム、著者: Aaron Kili

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください]

<<:  人工知能は耳の画像だけで年齢と性別を正確に判別できる

>>:  シティグループは5年以内に1万人の雇用を人工知能で置き換える計画

ブログ    
ブログ    

推薦する

C++開発におけるデータ構造とアルゴリズムの分離についての簡単な説明

Windows でプログラムを書いたことがある人なら、誰でも多かれ少なかれビットマップを使ったことが...

「初の常温常圧超伝導体」に対する共同研究者の反応:内容に欠陥あり

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

企業が募集している最も需要の高いAI関連職種トップ11

生成 AI は、ほぼすべての業界で急速に導入され、ビジネス界の状況を急速に変えつつあります。企業は、...

他の人たちが赤い封筒を掴んでいる間、プログラマーたちは赤い封筒のアルゴリズムを研究している

羊年春節期間中のWeChat紅包の人気は明らかで、広告主は現金紅包に5億円を投入し、CCTVの羊年春...

最も強力なモザイク除去AIが登場。数分でモザイクのない世界に戻り、ピクセルスタイルの「Minecraft」キャラクターも復元できます。

AI の作成は複雑なプロセスかもしれませんが、AI を破壊するには 1 つのステップだけが必要です...

ビジュアル Transformer アーキテクチャの進歩を整理した記事: CNN と比較して、ViT が勝っているのはどこでしょうか?

注意ベースのエンコーダー/デコーダー アーキテクチャである Transformer は、自然言語処理...

2021年にはAI機能を導入する企業がますます増える

[[360047]]今年、ほとんどの企業は、新型コロナウイルス感染症による混乱に対処し、リモートワー...

...

一般的なスマートカーの7つの技術についてお話ししましょう

ハイテク業界は常に進化しており、毎週新たな革命的な変化が起こっています。当然のことながら、関連するニ...

ディープラーニングの面接で知っておくべきこと

[[208646]]この記事は、「ディープラーニングの面接で知っておくべきことは何ですか」という質問...

AIがビジネスにどのように役立つか

[[353997]]人工知能は誕生以来、成功と失敗の時期を経験し、技術の進歩も限界と放棄に直面してき...

国際ビデオ品質評価アルゴリズムコンテスト:Volcano Engine が優勝

7月26日、マルチメディア分野の世界最高峰の学術会議であるICME 2021で開催された「圧縮UGC...

女性の労働はAIに置き換えられやすいのか?

最近の多くの研究では、主に人工知能や自動化における技術の進歩が、男性よりも女性の雇用に大きな影響を与...

PaddlePaddle を使い始める: 対話システムにおける感情分析から始める

1. 背景人工知能の時代では、さまざまなディープラーニングフレームワークが普及しており、フレームワー...

人工知能の本質的な「差別」を排除する方法

[[246531]]情報イラスト。出典:新華網ハリウッド映画「アベンジャーズ3」では、悪役サノスが「...