誰かがデータ圧縮アルゴリズムのリストを持っているかどうか疑問に思っていました. 私は基本的にデータ圧縮について何も知らないので、さまざまなアルゴリズムについてもっと学び、どのアルゴリズムが最新で、多くの ASIC でまだ開発されていないかを知りたいと思っていました。
入ってくるデータの種類 (オーディオ、ビデオ、画像など) に依存しないデータ圧縮 ASIC を実装したいと考えています。
私の質問がオープンエンドすぎる場合は、お知らせください。修正します。ありがとうございました
誰かがデータ圧縮アルゴリズムのリストを持っているかどうか疑問に思っていました. 私は基本的にデータ圧縮について何も知らないので、さまざまなアルゴリズムについてもっと学び、どのアルゴリズムが最新で、多くの ASIC でまだ開発されていないかを知りたいと思っていました。
入ってくるデータの種類 (オーディオ、ビデオ、画像など) に依存しないデータ圧縮 ASIC を実装したいと考えています。
私の質問がオープンエンドすぎる場合は、お知らせください。修正します。ありがとうございました
そこにはたくさんの圧縮アルゴリズムがあります。ここで必要なのは、可逆圧縮アルゴリズムです。無損失圧縮アルゴリズムは、データを圧縮して、圧縮前に与えられたものを正確に達成するために解凍できるようにします。反対は非可逆圧縮アルゴリズムです。非可逆圧縮では、ファイルからデータが削除される可能性があります。PNG 画像は可逆圧縮を使用しますが、JPEG 画像は非可逆圧縮を使用することができ、実際に使用することがよくあります。
最も広く知られている圧縮アルゴリズムには、次のものがあります。
ZIP アーカイブは、ハフマン コーディングと LZ77 の組み合わせを使用して、高速な圧縮および解凍時間と適度に優れた圧縮率を提供します。
LZ77 は、ほぼ RLE の一般化された形式であり、多くの場合、はるかに優れた結果が得られます。
ハフマンでは、最も繰り返しの多いバイトが最小のビット数を表すことができます。次のようなテキスト ファイルを想像してください。
aaaaaaaabbbbbcccdd
Huffman の典型的な実装は、次のマップになります。
Bits Character
0 a
10 b
110 c
1110 d
したがって、ファイルは次のように圧縮されます。
00000000 10101010 10110110 11011101 11000000
^^^^^
Padding bits required
18 バイトは 5 バイトになります。もちろん、テーブルをファイルに含める必要があります。このアルゴリズムは、データが多いほどうまく機能します:P
Alex Allain は、Wiki で十分でない場合に備えて、Huffman Compression Algorithm に関する素晴らしい記事を書いています。
詳細についてはお気軽にお問い合わせください。このトピックはかなり広いです。
LZW または Lempel Ziv アルゴリズムは、優れたロスレス アルゴリズムです。ここの疑似コード: http://oldwww.rasip.fer.hr/research/compress/algorithms/fund/lz/lzw.html