解像度

解像度（かいぞうど、英: resolution）とは、ビットマップ画像における画素の密度を示す数値である。 すなわち、画像を表現する格子の細かさを解像度と呼び、一般に1インチをいくつに分けるかによって数字で表す。 resolutionは分解能の意味も持つ。 単位は一般にドット・パー・インチ（dots per inch, dpi）である。類似の概念にピクセル・パー・インチ（pixels per inch, ppi）、ライン・パー・インチ（lines per inch, lpi）があり、dpiは走査線によるスキャナ等の性能表記で、ppiとlpiは微細な線の集合により面として印刷や表示をする物において主に使用される。それぞれの単位については各項目を参照。これらの値を直接に比較することはできない。これらの単位の他に、一般に目にすることはないがピクセル・パー・メートル（pixels per meter, ppm）という単位が存在する。こちらは、BMPやPNGといった画像形式の内部で使用される。大半の画像表示アプリケーションではppm単位をppi単位に変換して表示することがほとんどであるため、エンドユーザーが目にすることは稀である。 本来の解像度とは観測対象がどこまで詳しく測定（描写）されているか、別の言い方をすれば、異なる対象がどこまで分離されているかを意味する。dpiは明確に定義された物理量であるドットの密度を表す単位であり、画面の大きさによる相対的な密度としての意味を持つ解像度という用語の使用は本来の使用方法ではない。上図「解像度の違い」を例に、その問題点を明らかにしておく。 この図「解像度の違い」は一見して明らかに、右端の図が最も物理的解像度が高い。しかしながら、我々は画面上で同一dpiでの表示を観ており、画面の大きさによる（相対的）画素数は（物理的）解像度とは意味が異なる。この図を、アナログ銀塩写真（右側ほどピントが合っている）をイメージスキャナの同一dpiで取り込んだビットマップ画像と考えてもよい。右端以外の画像をどんなに高dpiでモニタ表示、印刷しても右端以上の（物理的）高解像度にはならない。 このような紛らわしさは物理的な解像度と画像の大きさに関与する相対的解像度について、「解像度」が使用されていることによる。しかしながら、物理的解像度はdpi、画像の大きさに関与する相対的解像度については画素数と画面の物理的大きさを示す単位（インチ）の組み合わせが用いられている。 長さと画素数の関係は下記の式で表すことができる。 長さ=画素数÷解像度 この関係は解像度が異なる機器で同じ大きさの図形を描画するために必要となる。 かつてのコンピュータディスプレイは、インパクトプリンターからCRT（ブラウン管）を用いる表示に移行し、CRTの技術的な制約から、画面の中央部は画面の左右端に比べ、解像度が低かった。このように一様ではない表示解像度が主流の時代には、文字列表示（キャラクターディスプレイ）が中心であったので、物理的な解像度の差は問題とされなかった。また、一様性の求められるグラフィックディスプレイには、ベクタースキャン型の特殊な装置を用いていた。その後、グラフィカルユーザインタフェース（GUI）に用いるため、縦横が正方形となるドット表示性能がCRTに求められた。消費者向けディスプレイでは、MacintoshがGUIを先導し、80 - 100dpi程度の性能をもつCRTに余裕をもった設定で、「1ポイント=1ドット」の割り当てをおこない、72dpiの正方形ドットを表現することとした。現在[いつ?]でもディスプレイ表示は、正方形表示を基本に作られることが多い。しかし、CRTの最終期には性能が上がり、コンピュータディスプレイは100 - 150dpiの解像度を持つようになった。コンピュータの場合、基準となるdpi値はオペレーティングシステム（OS）にも左右される。Microsoft Windowsは、96dpiの性能を前提とした設定となった。近年[いつ?]は、液晶ディスプレイが主流となったため、画面上均一の解像度を得ることが可能となったこと、また4Kディスプレイやスマートフォンあるいはタブレットにおけるモバイルディスプレイのような高精細（高密度）ディスプレイが普及しつつあることから、あらためて解像度の高さが着目されている。 グラフィックスハードウェア（GPU）が最終的なディスプレイ表示の際に扱うのは当然物理的なピクセル単位（pixels, px）の値であり、WindowsのGDIのような古典的な2DグラフィックスAPIでは、この物理ピクセル単位の値を指定して図形を描画する。OpenGLやDirect3Dのようなハードウェアに近い3DグラフィックスAPIも、デバイス座標系における最終的なラスタライズ工程では同様にデバイス依存の物理的なピクセル単位を使用する。しかし、近代的な2DグラフィックスAPIでは、ディスプレイの解像度（画面密度）の多様化に伴い、ハードウェアに依存しない論理的なピクセル単位（device-independent pixels/density-independent pixels, dp/dip）が採用されるようになってきた。macOSやiOSといったApple製のOSでは、標準2DグラフィックスAPIであるQuartz 2D/Core Graphicsにてピクセル単位（物理単位）ではなく浮動小数点数のポイント単位（論理単位）を採用しており、内部的にピクセル単位に自動換算されて描画されるため、どのディスプレイでもGUIを物理的に同程度の大きさに描画することができる。ただし論理単位を使用すると、表示ディスプレイのdpiの違いにより、同じ大きさの文字が明瞭になったり荒くなったりするといったことも起きる。Androidでは160dpiが基準値だが、実際の画面密度はデバイスによって多種多様である。下位レベルのAndroidグラフィックスAPIであるCanvasは物理ピクセル単位を使用するため、実際の画面密度に応じて換算してから渡す必要があるが、GUIの記述に使用する上位レベルのXMLレイアウトシステムでは論理ピクセル単位を使用することもできる。Windowsでは、.NET Framework 3.0で導入されたWPF、Windows 7で導入されたDirect2D、Windows 8で導入されたWinRT/WinUIにおいて、論理ピクセル単位が標準採用されている。 印刷物の解像度は印刷方式などにもよるが、一般的な家庭用では300 - 600dpi程度、商業印刷物では600 - 2400dpiの解像度を持つことが多い。ただし、プリンタでは解像度とはドットの中心のずれ量をあらわしているため、その解像度で印刷しても分離した個々のドットを見ることができるとは限らない。 解像度は、本来は画像を表示したり印字したりするデバイスの特性により定まるパラメータである。このため、画像データそのものに付加される解像度の情報は、「この解像度で表示してほしい」または「この解像度で表示すると原寸になる」などという補助情報でしかない。 多くの場合、横方向の解像度と縦方向の解像度は同じであるため、解像度は一つの数値で示されるが、印刷用の画像データや通信用の画像データなどでは横方向と縦方向で解像度が異なることがある。つまり、1個の画素の横幅と縦の長さが異なる状態で表示することにより意図した画像の形状になるのである。この時の横と縦の解像度の比率を「ピクセルアスペクト比（pixel aspect ratio）」と呼ぶ。 放送分野で多く用いられているYUVフォーマットでは、各画素の色は輝度情報Yと色差情報Cr、Cbという3つのパラメータで示されるが、通信上のデータ量を減らすために色差情報は輝度情報の半分の解像度にするということがしばしば行なわれている。 また、1点ごとに何種類の色を持つことができるかを色深度、色解像度または色分解能と呼ぶ。色解像度は多くの場合、光の三原色である「赤・緑・青」のそれぞれの基本色の強さを何段階で表現できるかによって示される。また、この段階数の2の対数を用いてビット数として表現することが多い。例えば、色解像度の高いデータとして現在広く用いられている24ビットトゥルーカラーと呼ばれるビットマップ画像の場合、各色256段階の色解像度を持つ。これは各色8ビット、合計24ビットの色解像度であると表現される。 人間の目は光の三原色のうち青に対する感度が弱いことが知られている。このため、赤・緑に較べて青の色分解能は低くても画質に与える影響が少ない。このことより、赤・緑に6ビットずつと青に4ビットの計16ビットで色を表現したり、赤・緑に3ビットずつと青に2ビットの計8ビットで色を表現するという事もしばしば行なわれる。これらの色表現は16ビットトゥルーカラー、8ビットトゥルーカラーと呼ばれる事がある。また、赤と青に5ビットずつ、緑に6ビットを割り当てたものや赤・緑・青に5ビットずつ割り当てたものはハイカラー（high color）と呼ばれる。 一般には、人間の目はおよそ1,000万色を見分ける能力があると言われている。色解像度が24ビットあると、224=16,777,216色を表現できることになり、これは人間の目の特性を超える。しかし、上記のように色によって人間の目の色分解能は異なり、赤は10ビット程度無いと足りないとする研究結果もある。このため、映画用の画像作成などの色再現性を重視する場合には、赤・緑・青それぞれに10ビットずつを割り当てた30ビットの色解像度をもつデータを用いることもある。 解像度とは本来は上記の通り画素密度を示す値であるが、画像の画素数を示す用語としても使われることがある。これは、テレビの水平解像度の概念に由来するためである。画面解像度を参照。