27.05.2013 Views

情 報 理 論 入 門 第 7 回

情 報 理 論 入 門 第 7 回

情 報 理 論 入 門 第 7 回

SHOW MORE
SHOW LESS

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>的な扱いが複雑。

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!