画像

■ピクセル

ピクセルとは画像データの色情報に使用されている単位や要素のことです。
画像データはピクセルの塊で構成されており、
画面上ではこのピクセルが反映されて1つの画像が表示されています。

gmpg_0154

●色情報
	ピクセルの色情報はR(赤)G(緑)B(青)の3色と不透明度(Alpha)の
	計4種の値を合成して1つの色を作成しています。
	※不透明度は画像によっては設定されていません。

	・各色の値の範囲
		RGBAの各色には設定できる値の範囲があります。
		基本的には1色につき8bit(0~255)まで設定できますが、
		1bit(0~1)や2bit(0~4)など、画像データの設定で色々と変更が可能です。
		また、HDRでは1色につき16bit(65535)、または24bit(4294967295)まで設定できます。
		※RGB => (0, 0, 0)は黒、RGB(255, 255, 255)は白です。

		HDR(High Dinamic Range):
			色の表現を超えて色 + 明るさの表現を可能とした表現方法。
				
			例:
				白色の紙 => (255, 255, 255)
				蛍光灯の光 => (255, 255, 255)

				どちらも白色だが、蛍光灯の光のほうが
				紙よりも明るいので同じだと違和感がある
				HDRでは明るさも表現できるので、
				蛍光灯の光をより白く表現できる

■画像ファイルのデータ形式

画像ファイルのデータ形式にはビットマップデータ形式ベクタデータ形式の2種類があります。
bmp、jpg、pngがビットマップデータ、pdf、svgがベクタデータです。

●ビットマップデータ
	ビットマップデータは「ラスタデータ」や「ペイントデータ」とも呼ばれており、
	bmp、jpg、pngなど一般的とされる画像データはほとんどこのデータ形式です。

	・特性
		ビットマップデータは画像データの情報を
		ピクセル単位で設定しており、
		1ピクセルはRGBで構成されています。
		※透過値(アルファ値)をもつデータもあります。

	・メリット
		表現性の高さ:
			ピクセル(色)の集合体なので、写真などの細かい輪郭や
			色使いなどが表現可能。

	・デメリット
		ファイルサイズ:
			ピクセルデータがそのままファイルサイズになるので、
			高解像度であったり、画像が大きかったりすると、
			ファイルサイズが大きくなる。

		拡大などによる画質の劣化:
			画像を拡大した際に画質が劣化する(ジャギー)
			ビットマップデータは100%のサイズを表現するための
			ピクセルの塊なので、拡大を行った場合、
			そのピクセルの塊を無理やり拡張しており、
			その代償として画質が劣化している

			gmpg_0155


			上の画像のように拡大の場合単純に倍率に応じてピクセルを
			増やしているだけの場合が多く、その結果画質が劣化します。

			ジャギー:
				ジャギーとは画像を拡大した場合や低解像度で表示する場合などで
				発生する現象で、画像の輪郭がギザギザの階段状になる。

●ベクタデータ
	ベクタデータはドローデータとも呼ばれています。
	pdfやsvgなどが代表的なデータになります。

	・特性
		ベクタデータは画像を形状、位置、サイズ、色などを指定することで
		図形を表現するデータ形式です。
		例えばSVGではXML形式でデータ構造を定義し、そのデータをもとにして
		画面に描画されます。

		svgコード例:
			<svg xmlns="http://www.w3.org/2000/svg"
				xmlns:xlink="http://www.w3.org/1999/xlink">
				<rect x="10" y="10" width="100" height="100" fill="red" />
			</svg>
				
		svg表示内容:
			
				
			

	・メリット
		データサイズ:
			形状やサイズなどが基本的なデータの情報になるので、
			ビットマップデータ形式と比べるとデータの
			ファイルサイズは小さい

		画質が劣化しない:
			ベクタデータの画像は表示位置と形状を指定がされており、
			その情報を元に計算を行い画面に表示する
			そのため、拡大や変形を行ってもそれらを踏まえて
			計算を行うので、劣化が発生することはない

	・デメリット
		複雑な形状に不向き:
			指定した形状を表示することに特化しているので、
			写真などの細かい描写が必要なデータには向いていない

	・ラスタライズ
		ベクタデータも最終的にはピクセルデータに変換して
		画面に表示されます。
		このベクタ => ピクセルの変換処理のことをラスタライズと呼びます。
		3DCGではポリゴンの頂点情報(座標、色、法線)から
		ピクセルデータに変換する処理のこともラスタライズと呼んでいます。

■画像フォーマット

画像フォーマットとは画像データの保存ルールのことです。
この画像フォーマットによって「png」や「jpg」などの
様々な画像のデータの差別化ができています。

●データ構成
	画像データは「ヘッダデータ」と「画像データ」で構成されており、
	データの並びは以下のようにヘッダデータが先頭、
	画像データがその後ろに続いて配置されています。

	gmpg_0156

●ヘッダデータ
	ヘッダデータとは各画像フォーマットの特性をまとめたデータです。
	ほとんどのフォーマットがヘッダデータを持ちます。
	以下はbitmapのヘッダファイルデータの一部の内容です。

		・画像フォーマットデータ
			画像がビットマップかどうか判断するための値
		
		・画像の幅
			画像の横の幅
		
		・画像の高さ
			画像の縦の高さ
			
		・色ビット数
			1ピクセルで使用するビット数

	ヘッダデータの内容は各フォーマット毎に異なりますが、
	上記のbitmapのヘッダのように画像データを画面に表示するために
	必要なデータがまとめられています。

●画像データ
	画像データは画面に表示するための情報の集まりです。
	「ビットマップデータ」では数多くのピクセルが並んでおり、
	「ベクタデータ」では図形の情報やデータがまとめられています。
	以下は「ビットマップデータ」のフォーマット毎の共通の特性です。

	・圧縮の有無
		ビットマップデータはピクセルのまとまりなので、
		画像サイズが大きければ大きいほどファイルサイズも増大します。
		このファイルの増大を防ぐために各フォーマットで
		一定のルールに基づいて圧縮がされていることがあります。

		・圧縮有り
			jpg
			png
			
		・圧縮無し
			bmp

	・可逆圧縮、非可逆圧縮
		圧縮には「可逆圧縮」と「非可逆圧縮」の2種類があります。
			
		可逆圧縮:
			圧縮前の状態に戻すことができる圧縮方法
			非可逆圧縮よりも圧縮率は下がる

			代表フォーマット
				png

		非可逆圧縮:
			可逆圧縮よりも高い圧縮率でファイルを圧縮できるが
			圧縮前の状態に戻すことはできない

			代表フォーマット
				jpg