Bit depth - confusion about it


Bit depth or color depth is kind of color image quality. It tells about possible palette of colors or number of colors I should say. Higher bit depth makes image more "colorful/deep" namely it can store more unique colors (rather more information about color) and tones ( so that's why I used quotes writing colorful ) For a grayscale image, the bit depth quantifies how many unique shades are available.

More technically image bitDepth- number of bits used to represent color/value of single arbitrary pixel in an image.


In computer science bit (binaryDigit) - is basic / logic unit. It is kind of atom in a computer science meaning. A bit is the smallest unit of data computers can understand. A bit can have only one of two values - true or false, on or off, 1 or 0 . Basically switch = bit .
When these bits are put together in a row they can be used to describe/store information ( e.g. 8 bits = 10100101 )

bitonal / binary / bilevel / 1bit IMAGE - image that has only two possible values for each pixel. Because bit - switch could be set either ON or OFF. Typically binary image is made of black- OFF and white- ON pixels.

bitonal Image (1bit)

single bit values ( possible values for pixel are 1 or 0 )



So what about images with higher bit depth. Let's say 2 bit image. How many possible luminosity values/colors per pixel do we have  here? If 1bit image is made of 2 values/colors thus 2 bit image is 2x2 = 4 !!!!! We've got 4 possible values/colors to use.
In other words 2 switches (2 bits) could be arranged in 4 different ways.

[OFF OFF] [OFF ON] [ON OFF] [ON ON]
imaginary "switch" systen

[ 0     0 ] [ 0       1 ] [ 1      0 ] [ 1      1 ]
binary number system

combinations and its colors

Similar example for 3bits [ 000 001 010 011 100 101 110 111  ]


By going futher let's ask ourselfs... how do we calculate how many possible tones/colors are available for single pixel on a basis of bitDepth value. If 1bit = 2 colors , 2bit = 4 colors what about 3, 4, 5, 6, 7, 8 and so on.
To calculate it put number 2 (because there is 2 option on or off ) as many times as bitDepth value in a row and then place a multiplication sign between them.

1bit = 2 possible tones/colors/permutations
1 switch could be arranged in2 different ways (on or off )


2bit = 2 x 2 = 4 possible tones/colors/permutations
2 switches could be arranged in 4 different ways


3bit = 2 x 2 x 2 = 8 possible tones/colors/permutations
3 switches could be arranged in 8 different ways


4bit = 2 x 2 x 2 x 2  = 16 possible tones/colors/permutations
4 switches could be arranged in 16 different ways


5bit = 2 x 2 x 2 x 2 x 2 = 32 possible tones/colors/permutations
5 switches could be arranged in 32 different ways


6bit = 2 x 2 x 2 x 2 x 2 x 2 = 64 possible tones/colors/permutations
6 switches could be arranged in 64 different ways


7bit = 2 x 2 x 2 x 2 x 2 x 2 x 2 =  128 possible tones/colors/permutations
7 switches could be arranged in 128 different ways


8bit = 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 = 256 possible tones/colors/permutations
8 switches could be arranged in 128 different ways



Instead of using "long form" you can employ exponentation - you need to put 2 as a base and bitDepth value as exponent/power  e.g
21 (2^1)=2
24 (2^4)=16
28 (2^8)=256
216 (2^16)=65 536


Let's aplly it for three channels- RGB image- color image. 
A typical  color image is composed of three let say sub-images. Those discrete sub-images ( also called channels) are RGB R (red) G (green) B (blue) ). Every single sub-image/channel store separate luma/brightness for every pixel. R channel stores information about "how much red color  image has", G channel stores information about "how much green color image has" and B channel stores information about "how much blue color image has". Making colored image is as simple as adding together those 3 grayscale (RGB) sub-images/channels - it is almost like mixing paint on a palette.


R G B combined together - normal image


R G B as separate channels - decomposed image


adding/combining R G B channel together
Resulted image looks the same as image above

Let's now consider bithDepth in terms of sub-images- channels. Above pictures simply shows that every single channel has its own bitDepth ( but often they're all equal ). So imagine for a while that each channel has 4bits - 4bits for R color, 4bits for G color, and 4bits for B. According to above this gives us (2^4) 16 colors/tones/(switches combinations) per channel. It means we've got 16 tones/colors between pure black/no color and pure white/full color per single channel. Multiplying all 3 channels by themselves will return number of unique colors that pixel can adopt... thus for 4bits per channel pixel can be one of (16R *16G *16B) 4096 colors.

So that leads us to confusion about proper naming of bitDepth. That happens because bitDepth value is sometime used when talking about bits per pixel/total bit depth and sometimes when talking about bits per channel. If so 8bit image could be either image made of 256 possible colors overall (8bit for all 3 channels- 3bitR, 3bitG, 2bitB), or 16 777 216 possible colors/tones overall (24bit for all 3 channels- 8bitR, 8bitG, 8bitB).
To avoid misunderstanding and confusion use bpp (bits per pixel) or bpc (bits per channel) suffix. BPP  refers to the sum of the bits in all three color channels and represents the total colors available at each pixel. BPC refers to the bits per single channel. Image (RGB) that has 8 bits per channel would have 24 bits per pixel. 16 bits per channel = 48 bits per pixel, 24 bits per channel = 72 bits per pixel.
More often 8bit image refers to 8bpc (24bpp) image which is made of  16 777 216 color pallete - over 16 MILION OF COLORS. It's worth to mention that 8bpc CMYK is 32bpp image (8bit C, 8bit M, 8bit Y, 8bit K )

reference table

8 Comments

  1. Hello Sir,
    My name is Baaji. I am FX student from india. I saw your's Maya Fluids ink simulation in Vimeo channel. This simulation is very good are awesome. I took the file from your blog bolekcg_ ink.mb. But there are X:\Projects\NaRaziePa_2012_09\02_mats\06_footage\01_client\2012-09-20\lowRes_background\fx09\fx09.00000.jpg no image sequences in the file. I want to do it anyway that effect. So as soon as you complete the project with video or any type of document tutorial and send it to my e-mail Id. My E-Mail ID:- skbaji694@gmail.com. I stood in for your reply.

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
  2. I saw your reply. Many thanks to you for the reply. But in that fileX:\Projects\NaRaziePa_2012_09\02_mats\06_footage\01_client\2012-09-20\lowRes_background\fx09\fx09.00000.jpg Where images have been downloaded from. Once you please tell me the link. Stood in for your reply.

    ReplyDelete
  3. I saw your reply. Many thanks to you for the reply. But in that fileX:\Projects\NaRaziePa_2012_09\02_mats\06_footage\01_client\2012-09-20\lowRes_background\fx09\fx09.00000.jpg Where images have been downloaded from. Once you please tell me the link. Stood in for your reply.

    ReplyDelete
  4. How To Make A Photo Realistic Cigarette Smoke In Maya Fluids. Please tell me the tutorial.

    ReplyDelete
  5. Cigarette smoke is about the tutorial, you still have not given me a reply.

    ReplyDelete

Back to Top