デジタル画像の可逆圧縮、「ランレングス(連長)圧縮」の簡単な具体例と説明、圧縮率の計算~高校『情報Ⅰ』
2022年度から全面的にスタートした高校の新必修科目、『情報Ⅰ』。先日アップした、音声のデジタル化の記事に続いて、今日は画像の可逆圧縮について書いてみよう。
綺麗なカラー画像(24ビット、約1678万色など)というものは、そのままデジタル表現するとデータ量が多くなってしまう。だから普通は、「圧縮」することになる。
ネット上で綺麗な写真などによく使われてるのが、JPEG圧縮。かなりデータ量を減らせるし、圧縮率90%くらいなら見た目も元の画像データとほとんど変わらない。しかし、JPEG圧縮画像から元の画像に戻すことはできない。非可逆圧縮(不可逆圧縮)だから。
☆ ☆ ☆
それに対して、元に戻せる可逆圧縮もあって、その1つがランレングス圧縮。これは、同じ色が連続してる時に、その色と連続の長さとで表す方法。「ランレングス」を直訳すると、「連続の長さ」になるから、例えば日本語では「連長圧縮」とも呼ばれてる。
最大手の東京書籍の教科書を見ると、わりと大きめ(16ピクセル×16ピクセル)のリンゴの画像でかなり短く説明してたが、データ量の変化まで完全に理解・計算できる高校生は少ないと思う。
見方を変えると、そこまで新カリキュラムは要求してないのかも知れない。だから、短い説明に留めてるとか。ただ、大人の私自身は面白かったので、もっと簡単な例でやや詳しく解説してみよう。
個人的には、ランレングス圧縮の画像を人間が手作業で作るのは大変だということが実感できただけでも意味はある。むしろ、元のオリジナル画像の方が、遥かに簡単に作れたのだ。あと、「ロジック」(論理)と呼ばれてるお絵描きパズルと似てることに気付いた。試しに後で、パズルの方もやってみるかも知れない。
☆ ☆ ☆
まず、極端に簡単な例から始めよう。
上図は、横1列、6マスの画像で、後で見るリンゴの画像の下の段の左側だけ取り出したもの。マス目は、ピクセル(画素)と呼ばれる。左の2ピクセルが白、その右の4ピクセルが赤になってるから、ランレングス圧縮では、白2赤4のように表現する。図にすると、次の通り。黒い斜線部は、何も記録されてない部分で、教科書では「データ消滅分」と書かれてた。
では、データ量はどう変化したのか、計算してみよう。色は、後でリンゴ全体を見る時に4色使うので、1ピクセルあたり2ビット(2×2)の情報量と考える。例えば、白は00、赤は01、グレーは10、黄色は11。2ケタの2進数で表せる。
元の画像は6ピクセルだから、(元のデータ量)=2×6=12ビット。
一方、圧縮後は、色が2ビットで同じ。連続の数は、最大で6ピクセル(1~6)だから、それぞれ3ビット(2×2×2)。上の例だと、2ピクセルは、010。4ピクセルは、100。3ケタの2進数で表せる。
だから、(圧縮後のデータ量)=(2+3)+(2+3)=(2+3)×2=10ビット。
∴(圧縮率)=10/12≒83%。
あまり圧縮されてないが、それほど色が連続してないし、可逆圧縮だから仕方ない。
ちなみに、数学的にはまぎらわしい言い方だが、「圧縮率の%の数字が大きい」ことを、「圧縮率が低い」と言うらしい。つまり、あまり圧縮されてないという意味。逆に、「圧縮率の%の数字が小さい」ことを、「圧縮率が高い」と言う。かなり圧縮されてるという意味。
だから教科書にも、「一般に可逆圧縮より非可逆圧縮のほうが圧縮率が高い」と書いてた。私は一読して間違ってると思ってしまったが、「高い」=「小さい」と読みかえるのなら正しい。例えば、ランレングス圧縮よりJPEG圧縮のほうが圧縮率が高い。
☆ ☆ ☆
続いて、64ピクセル(8×8)で描いたリンゴのデジタル画像。ちなみに、グレーはヘタの部分、黄色は光沢がある場所を表してる。
上図をランレングス圧縮すると、下図のように表せる。色と数の組合せは全部で28セットになる。横のピクセル数は10まで増えてしまうが、問題ないはず。教科書の図では増えてないが、それは同じ色の連続数が多い図にしてあるから。
では、データ量の計算。(元のデータ量)=2×64=128ビット。
(圧縮後のデータ量)=(2+3)×28=140ビット。
色の連続が少ないので、圧縮後の方がデータ量が増えてしまってる。
(圧縮率)=140/128≒109パーセント
理論的には最初から予想できてたが、すぐに実例と出会うとは思わなかった。試しにGoogleで、「ランレングス圧縮 データ 増える」を検索してみると、その欠点を指摘する記事が色々とヒットした。
日本語ウィキペディアの「連長圧縮」の項目にも、欠点が指摘されて、その解決方法の説明も書かれてた(PackBits法など)。ここでは扱わない。
☆ ☆ ☆
最後に、意外と圧縮される例も示しとこう。4色で16ピクセル(4×4)の格子状の画像。
ランレングス圧縮では、下の図のように表せる。
これなら、かなり圧縮されてるように見える。圧縮後の計算では、横が4ピクセルだから、連続の数が3ビットではなく2ビットになることに注意。1ピクセルなら00、2ピクセルなら01、3ピクセルなら10、4ピクセルなら11と表せる。結局、色で2ビット、連続の数でも2ビット使う。色と数の組合せ(2+2ビット)が、計4セット。
(元のデータ量)=2×16=32ビット
(圧縮後のデータ量)=(2+2)×4=16ビット
(圧縮率)=16/32=50%
☆ ☆ ☆
以上から、単純なランレングス圧縮は、色の連続が多い単純な画像の時だけ上手く行くことが分かる。
あらためて、教科書の図が大きめに作られてた理由が理解できた。要するに、色の連続を増やして、本当に圧縮されるように配慮した図を掲載してるのだ。確かに、1つだけ例を挙げるのなら、成功例を挙げる方が教育的だろう。一般的な高校生にとっては。
それでは今日はこの辺で。。☆彡
(計 2442字)
| 固定リンク | 0
「数学」カテゴリの記事
- パズル「推理」の解き方、考え方、表の書き方17(難易度5、ニコリ作、朝日be、25年7月5日)(2025.07.07)
- merry X-mas の数式変形(log e 方程式)、20年以上前の英語の math pun (数学ジョーク)&ジムやや不調(2025.07.03)
- パズル「絵むすび」34、解き方とコツ、考え方(難易度4、ニコリ作、朝日新聞be、2025年5月24日)(2025.05.25)
- 小学生の習い事と受験勉強でしぶとく人気の算盤(そろばん)、令和ではタブレットと可愛いアプリで(2025.04.26)
- トランプ相互関税の税率の数式、経済的にも意味はあるけど数値1つ(分母の係数 φ)の代入ミス、英語原文と数学的解説(2025.04.09)
「教育」カテゴリの記事
- APU(立命館アジア太平洋大学、別府市)の番組2つの比較、NHK『多国籍学生寮の72日間』はドキュメント72時間よりリアル(2025.06.11)
- 4×9=36マスの格子を、8つの長方形(1~8マス)に区切る方法~開成中2025年入試、算数・問題2の解き方(2025.02.15)
- かけ算の九九の表で、長方形で囲まれた数を足して315になる場合~灘中学校2025年入試、算数1・問題6の解き方(2025.02.07)
- 動画配信のおすすめ作品など、商業サイトでお薦めを決める方法と計算回数~2025年共通テスト・旧情報関係基礎・第2問(2025.02.04)
- くじ引き3回の参加料と景品代の期待値、金額設定の妥当性 ~ 2025年共通テスト・数学 Ⅰ A・第4問(2025.01.22)
「情報」カテゴリの記事
- 動画配信のおすすめ作品など、商業サイトでお薦めを決める方法と計算回数~2025年共通テスト・旧情報関係基礎・第2問(2025.02.04)
- スーパー(小売店)の全国チェーンの情報システム、商品配送、顧客会員管理 ~ 2025年共通テスト・情報 I ・第2問・A(2025.01.20)
- NOT回路(ゲート)、AND回路、OR回路を組み合わせた設計、論理回路の問題の解き方、考え方~ 高校『情報 Ⅰ 』(2024.11.02)
- ps5.js Web Editor(Processing)のプログラミングでお絵描き、アニメーション作成~ 高校教科書『情報 II 』(東京書籍)(2024.08.22)
- 2進法の計算、直接的な減法(引き算)と、コンピューター内部で「2の補数」を用いる減算 ~ 高校『情報Ⅰ』(2024.06.04)
コメント