情 報 理 論 入 門 第 7 回
情 報 理 論 入 門 第 7 回
情 報 理 論 入 門 第 7 回
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>情</strong><strong>報</strong><strong>理</strong><strong>論</strong><strong>入</strong><strong>門</strong> <strong>第</strong>7<strong>回</strong><br />
<strong>情</strong><strong>報</strong>メデ <strong>情</strong><strong>報</strong>メディア学科 学科<br />
藤井 哲郎
• <strong>情</strong><strong>報</strong>源S<br />
S1 S2 S = 〔 1/3 2/3 〕<br />
演習<br />
• <strong>情</strong><strong>報</strong>源S、2次の拡大<strong>情</strong><strong>報</strong>源S2 、3次の拡大<strong>情</strong><br />
<strong>報</strong>源S3 <strong>報</strong>源S を作り、それらに対してハフマン符号<br />
化を求め、それぞれの平均符号長を求めよ。
演習<br />
• まず、<strong>情</strong><strong>報</strong>源Sをハフマン符号化。<br />
S1 S2 S = 〔 1/3 2/3 〕<br />
S 2 2/3<br />
S1 1/3<br />
0<br />
1<br />
1.0<br />
• 平均符号長Lは、<br />
L = 1/3 *1 + 2/3 *1 = 1
演習: 演習:(2 演習: 演習:(2 (2次の拡大<strong>情</strong><strong>報</strong>源<br />
次の拡大<strong>情</strong><strong>報</strong>源)<br />
• 2次の拡大<strong>情</strong><strong>報</strong>源S2 のハフマン符号化<br />
S2 (S1,S1) (S1,S2) (S2,S1) (S2,S2) S = 〔 1/9 2/9 2/9 4/9 〕 0<br />
5/9<br />
1.0<br />
S 2 S 2 4/9 0 1<br />
3/9<br />
S2 S1 2/9 1<br />
S 1 S 2 2/9<br />
0<br />
1<br />
01<br />
000<br />
S 1 S 1 1/9 1 001
演習: 演習:(2 演習: 演習:(2 (2次の拡大<strong>情</strong><strong>報</strong>源<br />
次の拡大<strong>情</strong><strong>報</strong>源)<br />
• 2次の拡大<strong>情</strong><strong>報</strong>源S2 のハフマン符号化<br />
S2 (S1,S1) (S1,S2) (S2,S1) (S2,S2) S = 〔 1/9 2/9 2/9 4/9 〕<br />
S 2 S 2 4/9 1 1<br />
2 2<br />
S 2 S 1 2/9 01 2<br />
S1 S2 2/9 000<br />
S 1 S 1 1/9 001<br />
3<br />
3<br />
平均符号長L = 17/9 = 1.888<br />
<strong>情</strong><strong>報</strong>源1記号あたり、0.944 < 1 (<strong>情</strong><strong>報</strong>源Sの平均符号長)
演習: 演習:(3 演習: 演習:(3 (3次の拡大<strong>情</strong><strong>報</strong>源<br />
次の拡大<strong>情</strong><strong>報</strong>源)<br />
• 3次の拡大<strong>情</strong><strong>報</strong>源S3 のハフマン符号化<br />
S3 (S1,S1,S1) (S1,S1,S2) (S1,S2,S1) (S1,S2,S2) (S2,S1,S1) (S2,S1,S2) (S2,S2,S1) (S2,S2,S2) S = 〔 1/27 2/27 2/27 4/27 2/27 4/27 4/27 8/27 〕<br />
10 S S2,S 2, S2,S 2, S 2 8/27<br />
01<br />
110<br />
111<br />
0000<br />
0001<br />
0010<br />
0011<br />
S2, S2, S1 4/27<br />
S S2, S S1, S S2 4/27<br />
S1, S2, S2 4/27<br />
S2, 2, S1, 1, S 1 2/27<br />
S1, S2, S1 S1, S1, S2 2/27<br />
2/27 0<br />
S S1, S S1, S S1 1/27<br />
1<br />
3/27<br />
0<br />
1<br />
0<br />
4/27<br />
1<br />
7/27<br />
0<br />
1<br />
8/27<br />
0<br />
1<br />
11/27 0<br />
16/27<br />
1<br />
0<br />
1<br />
1.0
演習: 演習:(3 演習: 演習:(3 (3次の拡大<strong>情</strong><strong>報</strong>源<br />
次の拡大<strong>情</strong><strong>報</strong>源)<br />
• 3次の拡大<strong>情</strong><strong>報</strong>源S3 のハフマン符号化<br />
S3 (S1,S1,S1) (S1,S1,S2) (S1,S2,S1) (S1,S2,S2) (S2,S1,S1) (S2,S1,S2) (S2,S2,S1) (S2,S2,S2) S = 〔 1/64 3/64 3/64 9/64 3/64 9/64 9/64 27/64 〕<br />
S2, S2, S2 S S2, S S2, S S1 S2, S1, S2 S1, S2, S2 8/27<br />
4/27<br />
4/27<br />
4/27<br />
10<br />
01<br />
110<br />
111<br />
2<br />
2<br />
3<br />
3<br />
10<br />
110<br />
111<br />
000<br />
2<br />
3<br />
3<br />
3<br />
S S2, S S1, S S1 S1, S2, S1 S1, S1, S2 S S1, S S1, S S1 2/27<br />
2/27<br />
2/27<br />
1/27<br />
0000<br />
0001<br />
0010<br />
0011<br />
4<br />
4<br />
4<br />
4<br />
010<br />
011<br />
0010<br />
0011<br />
3<br />
3<br />
4<br />
4<br />
平均符号長L = 76/27 = 2.814<br />
<strong>情</strong><strong>報</strong>源1記号あたり、0.938 < 0.944 (2次の拡大<strong>情</strong><strong>報</strong>源)
ブロック符号化<br />
• 拡大<strong>情</strong><strong>報</strong> 拡大<strong>情</strong><strong>報</strong>源からの<strong>情</strong><strong>報</strong>源記号(元の<strong>情</strong><strong>報</strong>源<br />
<strong>情</strong><strong>報</strong> <strong>情</strong><strong>報</strong><br />
からみれば<strong>情</strong><strong>報</strong>源系列)を符号化することを<br />
)<br />
ブロック符号化という。<br />
– <strong>情</strong><strong>報</strong>源記号を組み合わせると確率分布は多様に<br />
なり、<strong>理</strong>想的な確率分布に近づく<br />
なり、<strong>理</strong>想的な確率分布に近 く<br />
– 特にハフマン符号化を適用した時には<br />
ハフマンブロック符号化という<br />
ハフマンブロック符号化という。
非等長<strong>情</strong><strong>報</strong>源系列のブロック符号化<br />
• 大き 大きいものを2分割していけば、全体が等分<br />
も を 分割 ば 全体が等分<br />
割に近づく<br />
• 拡大<strong>情</strong><strong>報</strong>源に対してハフマン符号化<br />
– 1<strong>情</strong><strong>報</strong>当たりの平均符号長を下限に近づけられ<br />
る。但し、n次の拡大<strong>情</strong><strong>報</strong>源とすると、<strong>情</strong><strong>報</strong>源系列<br />
の数は2n。多すぎる!!<br />
小さい確率の節点は枝を伸ばさない (非等長<strong>情</strong><br />
– 小さい確率の節点は枝を伸ばさない。(非等長<strong>情</strong><br />
<strong>報</strong>源系列をハフマン符号化する)
非等長<strong>情</strong><strong>報</strong>源系列のブロック符号化<br />
S S<br />
S 1<br />
S 2<br />
S = 〔 1/3 2/3 〕<br />
2/3<br />
S 2<br />
S 1/3 1<br />
4/9<br />
2/9<br />
S 2S 2<br />
S 2S 1<br />
2次の拡大<strong>情</strong><strong>報</strong>源S 2 のハフマン符号化<br />
L=17/9 L 17/9<br />
S 2S 2 4/9<br />
S 1<br />
1/3<br />
5/9 1<br />
0 0<br />
0 10<br />
S 2S 1 2/9 1 11<br />
非等長<strong>情</strong><strong>報</strong>源系列のブロック符号化<br />
L=4/9 *1 + 1/3 *2 + 2/9 *2 = 14/9<br />
但し、実際に使う場合には工夫が必要!!
Run Run‐Length Length Coding Coding (RLC)<br />
(RLC)<br />
• Consider a binary source whose output is<br />
coded as the number of 0s between two<br />
successive 1s. The length of the runs of 0s are<br />
coded coded.<br />
– (1 0 0 0 1) should be coded into 3<br />
• Efficient whenever large runs of 0s are<br />
expected. p<br />
– Suitable for FAX<br />
(specially for text based documents )
ランレングス符号<br />
• <strong>情</strong><strong>報</strong>源系列において、同じ記号が連続する<br />
長さ(run ( length)を符号化する方式<br />
g )<br />
• FAXの符号化で採用されている<br />
– 白と黒の二値化で符号化 白と黒の二値化で符号化。一般に、白が発生す<br />
般に 白が発生す<br />
る確率が非常に高い。<br />
– <strong>情</strong><strong>報</strong>源の発生に大きな偏りがあるときに非常に<br />
有効な符号化。
ランレングス符号化<br />
• 黒を1、白を0とするとき<br />
を 白を する き<br />
– 黒の発生確率を0.1とすると<br />
黒 発 確率を する<br />
– 010000011000000000000000000000000000001<br />
• 0の長さが0、1、2、3の四つのパターンに分類<br />
の長さが の四 のパタ ンに分類<br />
– 01,000,001,1,000,000,000,000,000,000,000,000,0<br />
00,001<br />
• 長さの記号0 長さの記号0、1、2、3に置き換える<br />
1 2 3に置き換える<br />
– 1,3,2,0,3,3,3,3,3,3,3,3,3,2
ランレングス符号化<br />
– 1,3,2,0,3,3,3,3,3,3,3,3,3,2<br />
• 等長符号化! 0を00 0を00、1を01、2を10、3を11<br />
1を01 2を10 3を11<br />
– 01,11,10,11,11,11,11,11,11,11,11,11,10<br />
• 最初の系列と比較<br />
– 010000011000000000000000000000000000001<br />
– 01111011111111111111111110<br />
• 65%の符号長に簡単に圧縮!!
ランレングスハフマン符号化<br />
• さらに効率的に符号化する為にはハフマン符<br />
号化を導<strong>入</strong>すれば良い。<br />
• 1、0の発生確率を0.1、0.9とすると<br />
s0 s1 s2 s3 <strong>情</strong><strong>報</strong>源の系列 1 01 001 000<br />
ランの長さ 0 1 2 3<br />
確率 0.1 0.9x0.1 0.9x0.9x0.1 0.9x0.9x0.9
ランレングスハフマン符号化<br />
• 生起確率がわかっているので、ハフマン符号<br />
化を行うと!<br />
000<br />
1<br />
S 3<br />
S0 0.729<br />
0.1<br />
00.171 171 0<br />
1<br />
0<br />
0.271 10 1.0<br />
1<br />
0<br />
11<br />
01 S1 0.09 0<br />
100<br />
001 S 2 0.081 1 101<br />
平均符号長L = 0.729 + 2x0.1 + 3x0.09 + 3x0.081<br />
= 1.442 < 2.0(等長符号)
ランレングスハフマン符号化<br />
• 元の<strong>情</strong><strong>報</strong>源を符号化してみると<br />
<strong>情</strong><strong>報</strong> を符 る<br />
000 S S3 00.729 729 0<br />
S0 0.1 11<br />
1 0<br />
01 S1 0.09 100<br />
001 S S2 00.081 081 101<br />
• 010000011000000000000000000000000000001<br />
• 100,0,101,11,0,0,0,0,0,0,0,0,0,101<br />
• 100010111000000000101 40個を21個に圧縮
ランレングスハフマン符号化<br />
• 元の<strong>情</strong><strong>報</strong>源からの圧縮率を計算してみよう<br />
<strong>情</strong><strong>報</strong> 縮率を計算 う<br />
000 S S3 00.729 729<br />
S0 0.1<br />
1 0<br />
01 S1 0.09<br />
001 S S2 00.081 081<br />
• 元の<strong>情</strong><strong>報</strong>源の平均系列長<br />
3x0.729+1x0.1+2x0.09+3x0.081=2.71<br />
• 圧縮率:1 圧縮率:1.442/2.71 442/2 71 = 00.5321(<strong>情</strong><strong>報</strong>源記号 5321(<strong>情</strong><strong>報</strong>源記号一個あたり) 個あたり)
拡大<strong>情</strong><strong>報</strong>源のハフマン符号化では?<br />
• 2次の拡大<strong>情</strong><strong>報</strong>源S2 のハフマン符号化<br />
S2 (S1,S1) (S1,S2) (S2,S1) (S2,S2) S = 〔 001 0.01 009 0.09 009 0.09 081 0.81 〕<br />
S 2 S 2 0.81 0<br />
010 0.10 10 1.0<br />
S2 S1 0.09<br />
0.19 1<br />
1<br />
S 1 S 2 0.09<br />
0<br />
0<br />
0<br />
11<br />
100<br />
S 1 S 1 0.01 1 101<br />
平均符号長L = 0.81+2x0.09+3x0.09+3x0.01= 1.29<br />
<strong>情</strong><strong>報</strong>源 <strong>情</strong><strong>報</strong>源1記号あたり、0.645 記号あたり >0.5321(ランレングスハフマン符号)
ラン長をさらに延ばしてみると<br />
• さらに効率的に符号化する為にはラン長を長<br />
くすれば良い。ランの長さを4に拡張<br />
<strong>情</strong><strong>報</strong>源の<br />
系列<br />
ランの<br />
長さ<br />
s0 s1 s2 s3 s4 1 01 001 0001 0000<br />
0 1 2 3 4<br />
確率 0.1 0.9x0.1 0.9x0.9x<br />
0.1<br />
0.9x0.9x<br />
0.9x0.1<br />
0.9x0.9x<br />
0.9x0.9
ラン長をさらに延ばしてみると<br />
• 生起確率がわかっているので、ハフマン符号<br />
化を行うと!<br />
S 4<br />
S0 S1 S2 S 3
<strong>情</strong><strong>報</strong>源符号化のさらなる展開<br />
• ハフマン符号の計算量の問題<br />
符 計算量<br />
– 1、0の発生確率が0.01、0.99の場合、<strong>情</strong><strong>報</strong>源のエ<br />
、 発 確率 、 場合、<strong>情</strong><strong>報</strong>源<br />
ントロピーは0.081ビット。平均符号長をエントロピーの1<br />
割り増しにするには、20次の拡大<strong>情</strong><strong>報</strong>源が必須<br />
割り増 する 、 次 拡大<strong>情</strong><strong>報</strong>源 必須<br />
→計算量が膨大になり、現実的で無い<br />
– ランレングスハフマン符号 ランレングスハフマン符号、算術符号等が提案さ<br />
算術符号等が提案さ<br />
れ、それぞれの特性に応じて使われている。<br />
• 生起確率が未知の場合<br />
– Ziv‐Lempel符号のような、辞書を使う方式などが<br />
開発され、データの圧縮で活用されている。
算術符号の補足<br />
• 静 静止画の画像符号化方式である 像符 方式 ある JPEG におい お<br />
て、可逆符号化のモードで利用されている。<br />
、可逆符号化 利用され る。<br />
より高品質な画像が必要なプロフェッショナル<br />
が利用している。<br />
• 新しい静止画像符号化方式 JPEG2000に組み<br />
込まれ 込まれている。デジタルシネマとして映画館<br />
る デジタ ネ と 映 館<br />
で利用されている。<br />
• <strong>理</strong><strong>論</strong>的な扱いが複雑。