ホームページ >よくある問題 >一般的に使用される可逆圧縮アルゴリズムは何ですか?

一般的に使用される可逆圧縮アルゴリズムは何ですか?

藏色散人
藏色散人オリジナル
2020-11-04 13:51:2419831ブラウズ

一般的に使用される可逆圧縮アルゴリズムは次のとおりです: 1. 他の多くの可逆圧縮アルゴリズムの基礎となる LZ77 アルゴリズム; 2. LZ77 を改良するために設計されたアルゴリズムである LZR アルゴリズム; 3. LZSS アルゴリズム目標は、LZ77 の線形時間置換アルゴリズムになることです; 4. DEFLATE アルゴリズム; 5. LZMA アルゴリズムなど。

一般的に使用される可逆圧縮アルゴリズムは何ですか?

#データ圧縮は、同じまたはほとんどのデータを保持しながらファイル サイズを削減するプロセスです。不要なデータを削除したり、より効率的な形式に再編成したりすることで機能します。データを圧縮する場合、非可逆方式と可逆方式のどちらを使用するかを選択できます。非可逆方式では一部のデータが永久に消去されますが、可逆方式ではすべてのデータが確実に保持されます。どの方法を使用するかは、ファイルをどの程度正確にしたいかによって異なります。

この記事では、ディープ ラーニングに基づく 6 つの異なる可逆データ圧縮アルゴリズムと 4 つの画像/ビデオ圧縮アルゴリズムを紹介します。

6 可逆データ圧縮アルゴリズム

可逆圧縮アルゴリズムは、通常、アーカイブやその他の高忠実度の目的で使用されます。これらのアルゴリズムを使用すると、ファイルが完全に回復可能であることを保証しながら、ファイル サイズを削減できます。可逆圧縮アルゴリズムは数多くあり、そこから選択できます。以下に、一般的に使用される 6 つのアルゴリズムを紹介します:

1. LZ77

LZ77 アルゴリズムは 1977 年にリリースされました。他の多くの可逆圧縮アルゴリズムの基礎として、「スライディング ウィンドウ」の概念が使用されています。この概念では、LZ77 は辞書を管理します。辞書では次のトリプルが使用されます。 オフセット: フレーズの先頭とファイルの先頭の間の距離

ランレングス: フレーズを構成する文字数

偏差文字:新しいフレーズのマーカー。一致が完了すると、フォワード バッファーの最初のシンボル

ファイルが解析されると、辞書はリアルタイムで更新され、最新の圧縮データとサイズが反映されます。たとえば、ファイルに文字列「abbadabba」が含まれている場合、辞書に圧縮される項目は「abb(0,1,'d')(0,3,'a')」になります。次の表で逆アセンブリ プロセスを確認できます。

一般的に使用される可逆圧縮アルゴリズムは何ですか?この例では、圧縮されたデータは初期データよりもそれほど小さくありません。ただし、一般に、この圧縮効果はファイルが非常に長い場合に現れます。

2. LZR

LZR は 1981 年に Michael Rodeh によって提案され、LZ77 に基づいて開発されました。このアルゴリズムの目標は、LZ77 の線形時間置換アルゴリズムになることですが、エンコード後、Udell ポインターがファイルの任意のオフセットを指す可能性があるため、かなりのメモリ消費が必要となるため、パフォーマンスは LZ77 ほど良くありません。 。

3. LZSS

LZSS (フルネーム Lempel-Ziv-Storer-Szymanski) は 1982 年に提案されました。これは、LZ77 を改善するために設計されたアルゴリズムでもあります。実際にファイルサイズが削減されたかどうかを検出する方法を紹介します。圧縮効果が得られない場合は、元の入力形式が維持されます。 LZSS では、オフセット文字の使用も削除され、 ペアのみが使用されます。この圧縮アルゴリズムは、RAR などのアーカイブ形式やネットワーク データの圧縮で広く使用されています。

4. DEFLATE

DEFLATE アルゴリズムは 1993 年に提案されました。著者はフィル・カッツです。このアルゴリズムは、LZ77 または LZSS プリプロセッサとハフマン コーディングを組み合わせたものです。ハフマン符号化は 1952 年に提案された法律です。主に文字の出現頻度に基づいてコードを割り当てるエントロピーコーディングです。

5. LZMA

LZMA アルゴリズム、正式名は Lempel-Ziv Markov Chain Algorithm (LZMA) で、1998 年に提案されました。 ZIP ファイルのアーカイブ。これは、修正された LZ77 アルゴリズムをバイト レベルではなくビット レベルで適用するチェーン圧縮方式を使用します。この圧縮アルゴリズムの出力は、その後のさらなる圧縮のために算術符号化によって処理されます。特定の実装によっては、追加の圧縮ステップが導入される場合があります。

6. LZMA2

LZMA2 アルゴリズムは 2009 年に提案され、LZMA の改良版です。マルチスレッド機能の点で LZMA のパフォーマンスが向上し、非圧縮型データの処理パフォーマンスが向上します。

4 ディープ ラーニング ベースの画像/ビデオ圧縮アルゴリズム

上で紹介した静的圧縮アルゴリズムに加えて、ディープ ラーニング ベースの圧縮アルゴリズムも選択できます。 。

1. 多層パーセプトロンに基づく圧縮アルゴリズム

多層パーセプトロン (MLP) テクノロジーは、複数のニューロン層を使用してデータを取得、処理、出力します。データの次元削減タスクやデータ圧縮に適用できます。最初の MLP ベースのアルゴリズムは 1988 年に提案され、以下に適用されています。

バイナリ エンコード - 標準の 2 シンボル エンコード

量子化 - 連続セットから離散セットへの制限 入力

特定のドメイン内での変換 - ピクセルレベルのデータ変更

##MLP アルゴリズムは、分解されたニューラル ネットワークの前のステップの出力を使用して、バイナリ コードの最適な組み合わせを決定します。その後、予測技術を使用してこの方法を最適化します。予測技術では、バックプロパゲーションを通じて隣接するデータに基づいてデータの精度を向上させることができます。

2. DeepCoder -- ビデオ圧縮に基づくディープ ニューラル ネットワーク

DeepCoder は、従来のビデオ圧縮テクノロジーに代わる畳み込みニューラル ネットワーク (CNN) に基づくフレームワークです。このモデルは、予測信号と残差信号に個別の CNN を使用します。スカラー量子化技術と従来のファイル圧縮アルゴリズム (ハフマン コーディング) を使用して、エンコード機能をバイナリ ストリームにマッピングします。一般に、このモデルのパフォーマンスは有名な H.264/AVC ビデオ コーディング仕様よりも優れていると考えられています。

3. CNN ベースの圧縮アルゴリズム

CNN は層状のニューラル ネットワークであり、通常は画像認識と特徴検出に使用されます。圧縮に適用される場合、これらのニューラル ネットワークは畳み込み演算を使用して、隣接するピクセル間の相関を計算します。 CNN は、MLP ベースのアルゴリズムよりも優れた圧縮結果を示し、超解像度でのパフォーマンスを向上させ、アーティファクトを軽減します。さらに、CNN ベースの圧縮により、ピーク信号対雑音比 (PSNR) と構造類似性 (SSIM) が低減されるため、JPEG 画像の品質も向上します。 CNN ベースの圧縮では、エントロピー推定手法を使用して HEVC パフォーマンスも実現します。

4.敵対的生成ネットワーク (GAN) に基づく圧縮アルゴリズム

GAN は、2 つのニューラル ネットワークを使用して相互に競合し、より正確な分析と予測を生成するニューラル ネットワークの一種です。最も初期の GAN ベースの圧縮アルゴリズムは 2017 年に提案されました。これらのアルゴリズムのファイル圧縮率は、他の一般的な方法 (JPEG、WebP など) の 2.5 倍です。 GAN ベースのメソッドを使用して、処理を並列化することでリアルタイム圧縮を実現できます。主な原則は、最も関連性の高い特徴に基づいて画像を圧縮することです。デコード時に、アルゴリズムはこれらの特徴に基づいて画像を再構築します。 CNN ベースのアルゴリズムと比較して、GAN ベースの圧縮アルゴリズムは敵対的損失を排除することで高品質の画像を生成できます。

概要

圧縮アルゴリズムは、ファイル サイズの最適化に役立ちます。アルゴリズムが異なれば結果も異なります。この記事では、6 つの静的可逆圧縮アルゴリズムと 4 つの深層学習ベースの圧縮アルゴリズムについて簡単に説明します。もちろん、これらのアルゴリズムがいずれも自分のシナリオに当てはまらない場合は、この記事を参照して、自分のシナリオに合ったアルゴリズムを見つけることができます。アルゴリズムはたくさんありますが、あなたに合ったアルゴリズムが必ず見つかります。

以上が一般的に使用される可逆圧縮アルゴリズムは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。