この連載は、現在高校で使われている情報Iの教材をベースにし、重要なポイントを整理して5分で読める記事にします。ITの基本知識として知る必要がある内容がたくさんあります。また大学共通テストに出やすいポイントを説明しますので、テスト対策にも役に立てば幸いです。重要キーワードを赤いマーカーで表記します。
画像データの計算
前回、音声データの計算を学びました。今回は画像データの計算を見てみたいと思います。画像データに関する知識は日常的にもよく使われます。写真を撮ってSNSで共有するだけではなく、画像データの形式や圧縮有無も覚えましょう。プログラミングを学ぶなら、画像処理に関わる解像度やRGBなどの専門用語もぜひ理解していただきたいです。
RGBとフルカラー
光の三原色は赤、緑、青です。この3つの光の色を混ぜ合わせると、いろんな色を作り出すことができます。その色の表現方法を、赤(Red)、緑(Green)、青(Blue)の頭文字を取って、RGBと言います。赤と緑だと黄色を作れます。赤、緑、青の3色を混ぜ合わせると白になります。
赤、緑、青の3色だけなので、単純に組み合わせると全部で7種類の色しか作れません。もっと多くの色を作り出すために、この赤、緑、青の3色をさらに256段階(8ビット)に分けて色の濃淡を作ります。赤、緑、青それぞれ256段階の濃さがあるので、それらを組み合わせると、256✕256✕256で16,777,216色を作り出すことができます。8ビットの3個分なので、RGBで表現できる色を24ビットのフルカラーといいます。
画像のデジタル化
画像をコンピューターで処理するためには、データでなければなりません。画像のデジタル化はどのように実現されるかを説明します。
画像を拡大してみると、一つひとつ小さな四角形が見えます。その四角形のことを画素といいます。画像の最小単位です。それぞれの画素にはそれぞれの色が1つ指定されます。その四角形があまりにも小さいので、私たちは画素自体の色が見えなく、無数の画素が並べられた色の集まりが見えます。それがわたしたちが見えた画像です。ちなみに、画素はドットやピクセルとも言われます。
解像度は、一枚の画像の横と縦の画素の数を示します。数が多ければ多いほど画像の細かさが高いです。つまり、写っているものの細部がはっきり見える画像になります。その場合、解像度が高いといいます。逆に、解像度が低いとは、画素数が少ないことです。画像がギザギザになったり、ぼやけているように見えたり、粗い画像になってしまいます。
画像をデジタル化するときに、その画像にあるすべての画素の色のデータを利用することになります。
例えば、1枚の画像があります。解像度は横1280ピクセル、縦720ピクセルとします。
つまり、この画像の横には1280個の画素があります。縦には720個の画素があります。
1280✕720=921,600個の画素の色データを使って、その画像をデジタル化します。
画像のデータの計算
画像のデジタル化の本質が理解できれば、画像のデータ量の計算もできます。FullHDの画像のデータ量を計算してみます。フルカラーの画像だと設定します。
FullHDの画像の解像度は1920ピクセル✕1080ピクセルになります。
まず、画素の総数を計算しましょう。
画素の総数 = 1920ピクセル ✕ 1080ピクセル = 2,073,600(個)
一つの画素には1つの色があります。色はフルカラーなのでRGBで表現します。R、G、Bはそれぞれ0~255の間の数字になります。2の8乗が256なので、8ビットがあれば、Rのデータを保存できます。同じく、GとBのデータを保存するためにはそれぞれ8ビットが必要です。つまり、1つのRGBの色を保管するには、24ビットの容量が必要です。
これで、フルカラー画像のデータ量の計算ができます。
データ量 = 画素の総数 ✕ 24ビット = 2,073,600 ✕ 24ビット = 49,766,400ビット
メガバイトまで換算します。復習します。
1バイト=8ビット
1キロバイト=1024バイト
1メガバイト=1024キロバイト
換算すると
49,766,400ビット = 6,220,800バイト = 6,075キロバイト ≒ 5.93メガバイト
解像度がFullHD(1920✕1080)の画像のファイルサイズが約5.93MBになります。
【例題】モノクロの画像のデータ量を計算
上記のFullHDのカラー画像をモノクロ化にすると、容量はどれぐらい変わるか、計算してください。
モノクロ化とは、色の情報を削除し、白と黒とグレーの濃淡だけで表現にすることです。グレースケールともいいます。つまり、3つの色で構成するRGBを1つの色で表現することになります。この場合、色情報を保管するための容量は8ビットだけで十分です。
計算します。
画素の総数が変わらないので、2,073,600(個)になります。
一つの画素には1つの色がありますが、その色の保管容量は8ビットになりました。
データ量 = 2,073,600 ✕ 8ビット = 16,588,800ビット
同じくメガバイトまで換算します。
データ量 = 16,588,800ビット = 2,073,600バイト = 2025KB ≒ 1.98MB
計算してわかるように、色の情報量が3分の1になったので、画像のデータ量も3分の1になりました。
圧縮率は約33%です。
画像ファイルの形式
画像ファイルにもいろんな形式があります。常用のものを是非覚えてください。
・BMP:圧縮なし、画像の劣化がありません。
・JPEG:圧縮あり、データ量がすくなるので、Webでよく使われます。
・PNG:圧縮あり、背景透明できる画像、最近Webでもよく使われています。
・GIF:圧縮あり、256色まで表現できる。小さなアイコンなどによく使われます。
画像の解像度
画像の解像度は覚えてください。プログラミングするとき、画像の解像度や、モニターの解像度などを把握しなければならない時があります。
・HD:1280ピクセル ✕ 720ピクセル、720Pと書く場合もあります。
・FullHD:1920ピクセル × 1080ピクセル、FHDまたは1080Pと書く場合もあります。
・4K:3840ピクセル × 2160ピクセル
・8K:7680ピクセル × 4320ピクセル
皆さんは自分のスマホで撮った写真がどれぐらいの解像度があるか、一度調べてみてください。いまのスマホのカメラはかなり高性能なので、多くの場合は4Kぐらいの写真が撮れます。きれいに撮れるのはいいことですが、画像のサイズが半端じゃないとなります。スマホの容量が足りなくなる場合、カメラの撮影解像度を低く設定することがいいかもしれません。
今回は画像データのデジタル化、データ量の計算を説明しました。生活にもプログラミングにも役に立つ内容なので、ぜひ覚えてください。