「画像処理」とは、画像データの性質(形状、色、サイズ、方向など)を加工し、そこからデータの特性を抽出するための技術全般を指しています。 例えば、画像のリサイズ、トリミング、特定の被写体の輪郭の強調といった処理が挙げられます。処理した画像を、画像認識(写っている対象物を識別するタスク)に使用することが多いです。そのため、画像処理は認識タスクに有効な特徴量を際立たせるという役割を持っています。
また、動画データは画像データを多数枚連続的につなぎ合わせたものなので、動画の処理とは画像を連続的に、高速に処理することです(別の記事で解説します)。
生データとしての画像データは、アナログ情報であるため、コンピュータを用いて画像認識を行うためには、適切な方法で数値化し、デジタル情報に変換する必要があります。
アナログの画像をデジタル表現に変換するために、「標本化(サンプリング)」、「量子化」、「符号化」の順番で変換を行います。
この「標本化→量子化→符号化」の流れは画像処理に限ったものではなく、音声データのサンプリングレートにおいても同じ考え方です。
■画像の標本化
標本化とは、アナログの画像を等間隔の格子状に区切り、各格子の色の濃淡を読み取る処理です。区切られた格子の一つひとつは「画素(ピクセル;pixel)」です。1つの画素は1つの単色(色の濃度)を表しています。画像のデジタル表現の最小単位はこの「画素」です。
ここで、サンプリングの粒度が荒い、つまり格子の幅が大きいほど格子の数が少なくなるため、情報量が少なくなります。ジャギーと呼ばれる段階状のギザギザ線が現れて、被写体の輪郭をぼやかしてしまいます(図1左)。被写体の曲線や斜線の輪郭に特に現れやすいです。エイリアシングと呼ばれる本来存在したい縞模様が現れることもあります。
画像の「解像度」を高めることとは、被写体を鮮明に忠実にデジタル表現で再現することです。そのためには、ある程度細かい粒度でサンプリングを行うことが必要です。しかし、逆に格子が細かすぎると、データサイズが大きくなり、計算コストが高くなります。そのため、標本化処理においては、画像の再現度と計算コストのバランスを図ることが必要です。
そもそも、多数の画素の集合体として一枚の画像を表現するため、標本化した後に画素の多いデータの方が画像の被写体が鮮明に表現されます。例えば、私たちは写真データについて、「○○pixel」のような表現で写真の鮮明度を表すことがありますね。画像のサイズは変わらないので、画素が多いとは、画素が小さくて細かいことと同じことです。
画像の解像度は通常、ppi(pixel by inch)という単位で表現しており、デジタル化された画像の1inch(〜2.5cm)あたりの画素数の値です。図1には、左から低いppiでジャギー現れているものから、高いppiで解像度の高い鮮明な画像の順で示されています。
図1 (左)荒い標本化によって現れるジャギー (中央)もう少し解像度を上げたとき(右)十分に細かく行われた画像の標本化
引用:画像の引用先
■画像の量子化
標本化の次に量子化を実施します。サンプリングされた画素が持つアナログの値を離散的なデジタル値に変換します。これを「レベル化」ともいいます。
量子化とは、画像の1つの画素ごとに数値(量子化された値)を割り当てることです。量子化された値は、画像の色の「濃淡(階調)」を表します。
量子化のレベルを1ビット(2レベル)とした場合、各画素は0(黒に対応)または1(白に対応)の2つの階調で濃淡の情報を表現します。つまり、黒と白のたった2段階で色の濃淡を表していることになります。
真っ黒 ■ 真っ白 □
レベルを増やすことによって色の濃淡をより明確に表現できて、そうするとレベルの境界線(エッジ)が際立って表示されます。一般的に「グレースケール画像」と呼ばれるものは、白と黒の2つ(1ビット)だけではなく、より多くの階調を使ってデジタル表現です。
■ ■ ■ ■ □
最もよく使われるのは、8ビット(256レベル)の量子化です。この場合、各画素は256種類の値で色を表現します。
ちなみに、ビットの意味は「mビットのレベルの時に、2^8種類の値を表すことができる」ことです。例えば、8ビットなので2^8 = 256 種類(256レベル)の色を表すことができます。
■画像の符号化
最後に行われる符号化とは、画像の横と縦の画素数と、それぞれの画素が保持している値を2進数にしてデータに書き込むことです。
図2:標本化⇨量子化→符号化の順で画像の処理を行うことで、アナログの画像からデジタルデータに変換されるプロセス。
本シリーズの次回の記事では、画像データの「色」の話と画像データの保存フォーマットについて解説します。
執筆担当:ヤン ジャクリン (GRI データ分析官・講師)