回答編集履歴
5
概念説明を追記
test
CHANGED
@@ -20,6 +20,16 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
+
残念ながらいずれのアルゴリズムも”簡単”とは言えませんが、超概念的な説明だけしておきます。
|
24
|
+
|
25
|
+
- エントロピー符号系:データの統計的な偏りを調べて、何度も登場する値には短い符号長(=出力するビットの長さ)を、あまり出てこない値には長い符号長を割り当てる。
|
26
|
+
|
27
|
+
- 辞書式符号系:データ自身を”辞書”つまり値並びのカタログとみなして、既出の値並びと一致したらそれを指す短いインデクス値を、新出の値並びならばそのまま出力する。
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
|
23
33
|
いずれも数学的な考え方(情報理論)に基づいたアルゴリズムなので、既に実装されているコードだけ追いかけても、アルゴリズムの本質を理解するのは困難かと思います。結果的には、基礎的な理論から学習したほうが近道かもしれません。単に利用したいだけならば、既存ライブラリの活用を強くお勧めします。
|
24
34
|
|
25
35
|
|
4
refine
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
|
14
14
|
|
15
|
-
古典かつ簡単なところでは「ランレングス圧縮(Run-Length encoding)」や、「ハフマン符号(Huffman coding)」「算術符号(Arithmetic coding)」から調べるのがよいと思います。また、本質的な方法論が異なる「LZ77, LZ78アルゴリズム」あたりが入門向けでしょうか。前者はエントロピー符号(Entropy coding)に、後者は辞書式符号(Dictionary coding)
|
15
|
+
古典かつ簡単なところでは「ランレングス圧縮(Run-Length encoding)」や、「ハフマン符号(Huffman coding)」「算術符号(Arithmetic coding)」から調べるのがよいと思います。また、本質的な方法論が異なる「LZ77, LZ78アルゴリズム」あたりが入門向けでしょうか。前者はエントロピー符号(Entropy coding)に、後者は辞書式符号(Dictionary coding)に区分されます。
|
16
16
|
|
17
17
|
|
18
18
|
|
3
いろいろついき
test
CHANGED
@@ -12,18 +12,16 @@
|
|
12
12
|
|
13
13
|
|
14
14
|
|
15
|
-
古典かつ簡単なところでは
|
15
|
+
古典かつ簡単なところでは「ランレングス圧縮(Run-Length encoding)」や、「ハフマン符号(Huffman coding)」「算術符号(Arithmetic coding)」から調べるのがよいと思います。また、本質的な方法論が異なる「LZ77, LZ78アルゴリズム」あたりが入門向けでしょうか。前者はエントロピー符号(Entropy coding)に、後者は辞書式符号(Dictionary coding)/ユニバーサル符号(Universal coding)に区分されます。
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
[データ圧縮法概説](http://www.snap-tck.com/room03/c02/comp/comp.html)で、かなり丁寧にアルゴリズムを解説しています。
|
19
|
+
たとえば [データ圧縮法概説](http://www.snap-tck.com/room03/c02/comp/comp.html) では、かなり丁寧にアルゴリズムを解説しています。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
いずれも数学的な考え方(情報理論)に基づいたアルゴリズムなので、既に実装されているコードだけ追いかけても、アルゴリズムの本質を理解するのは困難かと思います。結果的には、基礎的な理論から学習したほうが近道かもしれません。単に利用したいだけならば、既存ライブラリの活用を強くお勧めします。
|
20
24
|
|
21
25
|
|
22
26
|
|
23
27
|
|
24
|
-
|
25
|
-
いずれも数学的な考え方(情報理論)に基づいたアルゴリズムなので、既に実装されているコードだけ追いかけても、アルゴリズムの本質を理解するのは困難かと思います。結果的には、基礎的な理論から学習したほうが近道かもしれません。(単に利用したいだけなら、既存ライブラリの活用を強くお勧めします)
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
2
fix link
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
|
19
|
+
[データ圧縮法概説](http://www.snap-tck.com/room03/c02/comp/comp.html)で、かなり丁寧にアルゴリズムを解説しています。
|
20
20
|
|
21
21
|
|
22
22
|
|
1
参考リンク追加
test
CHANGED
@@ -16,6 +16,12 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
+
こちら http://www.snap-tck.com/room03/c02/comp/comp.html のページでかなり丁寧に解説しています。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
|
19
25
|
いずれも数学的な考え方(情報理論)に基づいたアルゴリズムなので、既に実装されているコードだけ追いかけても、アルゴリズムの本質を理解するのは困難かと思います。結果的には、基礎的な理論から学習したほうが近道かもしれません。(単に利用したいだけなら、既存ライブラリの活用を強くお勧めします)
|
20
26
|
|
21
27
|
|