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