圧縮率40%とは
概要
圧縮率の表記について疑問を持ったのでまとめる。
内容
以下の応用情報の問題についてである。
以下のような問題である。
15Mバイトのプログラムを圧縮した状態でフラッシュメモリに格納している。プログラムの圧縮率が40%,フラッシュメモリから主記憶への転送速度が20Mバイト/秒であり,1Mバイトに圧縮されたデータの展開に主記憶上で0.03秒が掛かるとき,このプログラムが主記憶に展開されるまでの時間は何秒か。ここで,フラッシュメモリから主記憶への転送と圧縮データの展開は同時には行われないものとする。
ここでは、「プログラムの圧縮率が40%」と記載されているが、どちらの意味なのかがよくわからなかった。
- プログラムが40%のサイズに圧縮されるのか
- 60%を圧縮ファイルとして出力するのか
何が言いたいかというと、圧縮率10%と圧縮率100%を例に挙げてみると、共感しやすいかもしれない。
下記は、解答例に沿った解き方を用いて計算した結果である。
15M * 10% = 1.5M
15M * 40% = 6.0M
15M * 100% = 15.0M
圧縮率100%ならめちゃくちゃ圧縮しているように見えるが、
上記の計算だと15Mのままで圧縮できていないのである。
正解は...
「プログラムが40%のサイズに圧縮される」のが正解だと記載されていた。
15M * 40% = 6.0M
一応圧縮率について調べてみた
IT用語辞典を見てみる。
以下のように記載されていた。
例えば、100MBのファイルが10MBに圧縮された場合、10/100の0.1(百分率で10%)を圧縮率とする場合と、(100-10)/100の0.9(同90%)を圧縮率とする場合がある。前者は値が小さいほどより少ない量に圧縮できていることを表し、後者はその逆である。いずれの場合でも慣例的に、より少ない量に圧縮された(よく圧縮できた)状態を「圧縮率が高い」、多い量に圧縮された(あまり圧縮できなかった)状態を「圧縮率が低い」と言い表す。
つまり...?
意味合いはどっちともとれるのである。
結論
日本語難しい。
応用情報の問題に従っておくのが無難と思い、勉強を進めていこうと思う。