Эффективные коды
Краткое сожержание материала:
Размещено на
Размещено на
1. Построим двоичные неравномерные эффективные коды
Для получения кодов для кодирования по одному символу используем методику Хаффмена:
Р(А) = 0,811
Р(В) = 0,040
Р(D) = 0,149
Слово |
Вероятность |
КК |
Длина КК |
|
А |
0,811 |
1 |
1 |
|
В |
0,040 |
01 |
2 |
|
D |
0,149 |
00 |
2 |
Для получения кодов для кодирования по два символа используем методику Хаффмена, предварительно рассчитав частоты появления слов, которые состоят из двух символов:
Р(АА) = Р(А)*Р(А) = 0,811*0,811 = 0,6577
Р(АВ) = Р(А)*Р(В) = 0,811*0,040 = 0,0324
Р(АD) = Р(А)*Р(D) = 0,811*0,149 = 0,1208
Р(BА) = Р(B)*Р(А) = 0,040*0,811 = 0,0324
Р(BB) = Р(B)*Р(B) = 0,040*0,040 = 0,0016
Р(BD) = Р(B)*Р(D) = 0,040*0,149 = 0,0060
Р(DА) = Р(D)*Р(А) = 0,149*0,811 = 0,1208
Р(DB) = Р(D)*Р(B) = 0,149*0,040 = 0,0060
Р(DD) = Р(D)*Р(D) = 0,149*0,149 = 0,0222
Слово |
Вероятность |
КК |
Длина КК |
|
АА |
0,6577 |
1 |
1 |
|
АВ |
0,0324 |
00111 |
5 |
|
АD |
0,1208 |
01 |
2 |
|
ВА |
0,0324 |
00110 |
5 |
|
ВВ |
0,0016 |
0010111 |
7 |
|
ВD |
0,0060 |
0010110 |
7 |
|
DA |
0,1208 |
000 |
3 |
|
DB |
0,0060 |
001010 |
6 |
|
DD |
0,0222 |
00100 |
5 |
Для получения кодов для кодирования по три символа используем методику Хаффмена, предварительно рассчитав частоты появления слов, которые состоят из трех символов:
Р(ААА) = Р(А)*Р(А)*Р(А) = 0,811*0,811*0,811 = 0,5334
Р(ААВ) = Р(А)*Р(А)*Р(B) = 0,811*0,811*0,040 = 0,0263
Р(ААD) = Р(А)*Р(А)*Р(D) = 0,811*0,811*0,149 = 0,0980
Р(АBА) = Р(А)*Р(B)*Р(А) = 0,811*0,040*0,811 = 0,0263
Р(АBB) = Р(А)*Р(B)*Р(B) = 0,811*0,040*0,040 = 0,0013
Р(АBD) = Р(А)*Р(B)*Р(D) = 0,811*0,040*0,149 = 0,0048
Р(АDА) = Р(А)*Р(D)*Р(А) = 0,811*0,149*0,811 = 0,0980
Р(АDB) = Р(А)*Р(D)*Р(B) = 0,811*0,149*0,004 = 0,0048
Р(АDD) = Р(А)*Р(D)*Р(D) = 0,811*0,149*0,149 = 0,0180
Р(BАА) = Р(B)*Р(А)*Р(А) = 0,040*0,811*0,811 = 0,0263
Р(BАВ) = Р(B)*Р(А)*Р(B) = 0, 040*0,811*0,040 = 0,0013
Р(BАD) = Р(B)*Р(А)*Р(D) = 0, 040*0,811*0,149 = 0,0048
Р(BBА) = Р(B)*Р(B)*Р(А) = 0, 040*0,040*0,811 = 0,0013
Р(BBB) = Р(B)*Р(B)*Р(B) = 0, 040*0,040*0,040 = 0,0001
Р(BBD) = Р(B)*Р(B)*Р(D) = 0, 040*0,040*0,149 = 0,0002
Р(BDА) = Р(B)*Р(D)*Р(А) = 0, 040*0,149*0,811 = 0,0048
Р(BDB) = Р(B)*Р(D)*Р(B) = 0, 040*0,149*0,004 = 0,0002
Р(BDD) = Р(B)*Р(D)*Р(D) = 0, 040*0,149*0,149 = 0,0009
Р(DАА) = Р(D)*Р(А)*Р(А) = 0,149*0,811*0,811 = 0,0980
Р(DАВ) = Р(D)*Р(А)*Р(B) = 0, 149*0,811*0,040 = 0,0048
Р(DАD) = Р(D)*Р(А)*Р(D) = 0, 149*0,811*0,149 = 0,0180
Р(DBА) = Р(D)*Р(B)*Р(А) = 0, 149*0,040*0,811 = 0,0048
Р(DBB) = Р(D)*Р(B)*Р(B) = 0, 149*0,040*0,040 = 0,0002
Р(DBD) = Р(D)*Р(B)*Р(D) = 0, 149*0,040*0,149 = 0,0009
Р(DDА) = Р(D)*Р(D)*Р(А) = 0, 149*0,149*0,811 = 0,0180
Р(DDB) = Р(D)*Р(D)*Р(B) = 0, 149*0,149*0,004 = 0,0009
Р(DDD) = Р(D)*Р(D)*Р(D) = 0, 149*0,149*0,149 = 0,0033
Слово |
Вероятность |
КК |
Длина КК |
|
ААA |
0,5334 |
1 |
1 |
|
АAВ |
0,0263 |
010111 |
6 |
|
АAD |
0,0980 |
001 |
3 |
|
AВА |
0,0263 |
010110 |
6 |
|
AВВ |
0,0013 |
0100011011 |
10 |
|
AВD |
0,0048 |
01010011 |
8 |
|
ADA |
0,0980 |
011 |
3 |
|
ADB |
0,0048 |
01010010 |
8 |
|
ADD |
0,0180 |
00011 |
5 |
|
ВАA |
0,0263 |
010101 |
6 |
|
ВAВ |
0,0013 |
0100011010 |
10 |
|
ВAD |
0,0048 |
01010001 |
8 |
|
ВВА |
0,0013 |
0101000011 |
10 |
|
ВВВ |
0,0001 |
0101000010111 |
13 |
|
ВВD |
0,0002 |
0101000010110 |
13 |
|
ВDA |
0,0048 |
01000111 |
8 |
|
ВDB |
0,0002 |
0101000010101 |
13 |
|
ВDD |
0,0009 |
01010000100 |
11 |
|
DАA |
0,0980 |
000 |
3 |
|
DAВ |
0,0048 |
01000101 |
8 |
|
DAD |
0,0180 |
010010 |
6 |
|