で、データの圧縮率を求めてみよう。
| データの圧縮率
のデータ(16×1.6ビット)のAの部分を0, Bの部分を1として、
以下の約束に従って1行ごとに圧縮すると,データ量は何ビットにな
るか。また、圧縮率はどのようになるか計算してみよう。
の最初のビット:Aではじまる場合は0, Bではじまる場合は1とする。
2次の4ビット:AまたはBが続く個数を表す。ただし,「個数1」
として表現する。
3文字が変わるたびに, ②と同様に4ビットで何個続くかを表す。
5
04ビットでは10進ま
0から15までしか表
きないので1を引く。
B
BB
BIB
1
11|1|1|111|11|1|1|1|1|1
BIB
BIBIB
BIB
BIA
1
BBBIAIA
AIBIB
BIBIA
0|0|0|0|001|1|1 100|0|0|0|0
0|0|0|0|001|1|1100|0
00|0|0|0|0|1|1|1|1|0|0|0|0|0|0
0|0|0|0111|1|00|0|010|0
0|0|010|001|1|1|1|0|0|0
0100l0l001|1|1|110|000|00
01010|010|01|1|1|1|00|0|0|00
010|0101001|1|1|1|0|0100|0|0
010|010|0|0|1|1|11010|0|0|0|0
010|0|0|1|1|1|1|01010101010
0|0|010|0|01|1|11|0|0|0|0|00
010
BAIAAIAAA
BIB
0
0|0
解答例
1~3行は,1が16個なので, 「1 1111」 で5ビット。
4.5行は、1が3個, 0が3個, 1が4個. Oが3個, 1が3個なので
「1 0010 0010 0011 0010 0010」 で21ビット。
6~16行は,「00101 00110101」 なので、 13ビット。
各行のビット数を合計すると, 次のようになる。
5×3+21×2+13×11=200
よって,データ量は200ビットとなる。
また,圧縮率は, 次のようになる。
200
×100= 78.125
256
200
16×16
よって,圧縮率は, 約78%になる。
×100=
(考察)同じ文字(数値)が続く場合には、 圧縮するとデータ量が少な
くなる。