ビット深度

ビット深度とは基本的に画像のピクセルごとにどれだけのワーキングメモリを予約するかを意味します。

現実世界のA4用紙よりはA2用紙の方が場所を取る代わりに完成した作品の細かいところまで表現できるのと同様です。

しかし、これは画像サイズだけの話ではなく、色ごとの精度がどれだけ必要かということでもあります。

この説明をするには、Krita では使わないこともお話します:

インデックスカラー

古いプログラムでは、コンピュータは画像を色ごとに番号を付けたパレットで管理します。コンピュータはビットでしかデータを保存できないため、パレットのサイズもビットで定義されます。

../../_images/Kiki_lowbit.png
1bit

合計で2色のみ、通常は黒と白です。

4bit (16色)

合計で16色、初期のゲームがこのカラーパレットを採用したことで知られています。

8bit

合計で256色です。8ビット画像はゲーム内のテクスチャやスプライトでメモリを節約するためによく使用されます。

しかしながら、これは Krita では使用できません。Krita は代わりにチャネルを使用し、チャネルごとの色がどれだけあるか(チャネルごとに何ビットという言い回しをします)で管理します。これを'トゥルーカラー'と言います。

トゥルーカラー

../../_images/Rgbcolorcube_3.png

チャネルごとに1,2,3ビットを使用するグラフィックアプリケーションは実際には存在しませんが、ここに画像にすることで、どれだけ色の表現に多様さが表れるかを見ることができます。普通は、ビットごとにブロックの目のそれぞれを二分することになり、2の累乗に比例してキューブも大きくなることになります。

4ビット毎チャネル (Krita ではサポートされていません)

ハイカラー、または16ビットカラーとして知られています。少し古く、特定のディスプレイ以外では使用されません。

8ビット毎チャネル

"トゥルーカラー"、"24bit/32bit"としても知られます。多くのディスプレイの標準で、Krita が扱える最低のものです。

16ビット毎チャネル

8ビットより一つ上がって、16ビット毎チャネルはディスプレイで表示できない色を扱うことができます。これによりスムーズなグラデーションが表現できるでしょう。しばしば"ディープカラー"とも知られます。負の値はなく、16ビットの精度であるのでチャンネルごとに65536色を扱えます。

16ビット浮動小数

16ビットと似ていますが、色の精度よりも範囲を優先させています。16ビットでは[1, 4, 3]のような座標のみを利用するのに対し、16ビット浮動小数では[0.15, 0.70, 0.3759]のような座標を持ち、[1.0,1.0,1.0]は白色を意味します。この浮動小数と整数の違いと、Scene-referred な画像で負の数を使用できることで、チャネルごとに16ビットの精度があった16ビット整数(0-1の範囲でチャネルごとに2048の値)と比べ、16ビット浮動小数ではチャネルごとに10-11ビットの正確性を持ちます。HDR や Scene-referred な画像で必要とされ、しばしば'半精度浮動小数点数'とも知られます。

32ビット浮動小数

16ビット浮動小数と似ていますがさらに高い精度を持ちます。OpenColor IO のネイティブ色深度で、重くなければ、HDR 画像では16ビット浮動小数より早く処理できます。浮動小数変数の性質により32ビット浮動小数はおおよそチャネルごと23-24ビット(0-1範囲で16777216の値)の精度に等しいですが、HDR や Scene-referred で必要なかなり幅広いレンジ(1よりははるかに大きい)まで対応できます。'単精度浮動小数点数'とも知られます。

もしデバイスの容量よりも大きな色空間を使用するならこれは重要です。少なくとも、色に縛られたくないならね。

すべての画像を32ビット浮動小数で作ろうとすると、あっという間に RAM を使い果たしてしまします。それゆえにどういう画像にどのビット深度を使用するか考えておくことは重要なことです。