回答編集履歴

5

概念説明を追記

2015/02/18 08:28

投稿

yohhoy
yohhoy

スコア6191

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

2015/02/18 08:28

投稿

yohhoy
yohhoy

スコア6191

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)/ユニバーサル符号(Universal coding)に区分されます。
15
+ 古典かつ簡単なところでは「ランレングス圧縮(Run-Length encoding)」や、「ハフマン符号(Huffman coding)」「算術符号(Arithmetic coding)」から調べるのがよいと思います。また、本質的な方法論が異なる「LZ77, LZ78アルゴリズム」あたりが入門向けでしょうか。前者はエントロピー符号(Entropy coding)に、後者は辞書式符号(Dictionary coding)に区分されます。
16
16
 
17
17
 
18
18
 

3

いろいろついき

2015/02/18 08:16

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -12,18 +12,16 @@
12
12
 
13
13
 
14
14
 
15
- 古典かつ簡単なところでは「ランレングス(run length)」「ハフマン符号(Huffman coding)」「算術符号(Arithmetic coding)」から調べるのがよいと思います。
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

2015/02/18 08:14

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -16,7 +16,7 @@
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
20
 
21
21
 
22
22
 

1

参考リンク追加

2015/02/18 07:51

投稿

yohhoy
yohhoy

スコア6191

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