8bit와 16bit 이미지의 차이

포토샵과 사진을 찍다보면 16비트와 8비트라는 말을 어딘가에서는 꼭 한번씩 보게 된다.
오늘은 이 비트수의 관하여 알아보도록 하자.

1. 비트수 (bit depth)란???

1.1. 컴퓨터에서 색을 표현하는 방법

컴퓨터는 빨간색, 초록색, 파랑색 (그리고 검정색)을 합쳐 다양한 색을 표현한다.
이는 흔히들 말하는 RGB라고 하는 것의 시초가 된다.Screen Shot 2014-11-26 at 14.22.55

우리가 프로그래밍을 조금 배우면 알다시피 컴퓨터는 2진수 ‘0과 1’ 두가지의 숫자를 조합하여 정보를 기록한다. (바이너리방식인지 뭔지… 어릴때 비쥬얼베이직 배우고 게임 에디트 한다고 세이브파일 HEX돌린게 프로그래밍인생 전부…ㅠ)

그리고 bit수는 컴퓨터가 이 2진수법을 이용하여 빨간색이라는 것을 표현하는데 몇가지의 조합을 사용했느냐 정도로 이해하면 좋겠습니다.

1.2. 비트수의 의미

좀더 쉽게 예를 들자면 우리가 빨간색을 컴퓨터로 표현한다면:
1-bit의 경우: 빨간색은 0과 1로 두가지로만 표현 할 수 있습니다.
2-bit의 경우: 00, 01, 10, 11 의 경우로 총 2 x 2 = 4가지의 방법으로 빨간색을 표현 할 수 있습니다.
3-bit의 경우: 000, 001, 010, 011, 100, 110, 111, 101 의 경우로 총 2 x 2 x 2 = 8가지 방법으로 빨간색을 표현하겠죠…
8-bit의 경우: 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 = 256가지의 방법으로 빨간색을 표현할 수 있습니다.

그리고 이렇게 256가지 방법으로 표현된 빨간색과 초록색과 파란색을 조합하면… 8 비트의 경우
빨       초       파
256 x 256 x 256 = 16,777,216 가지의 색을 총 표현 할 수 있는 겁니다.

여담입니다만… 웹디자인을 주로 하시는 분이면 #ffffff #000000 이런 색값에 익숙하실텐데요…
이게 바로 8비트로 색을 표현한 것입니다. 옛날 HEX 에디트를 건드려보신분은 하시겠지만…
#xxyyzz 중 X, Y, Z ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
그리고 xx는 Red, yy는 Green, zz는 Blue를 나타냅니다.
즉 x는 0~9까지의 숫자와 A~F까지의 숫자로면 표기할 수 있다고 할때 총 16가지의 경우의 수 (2의 4승) 그리고 이 16가지의 숫자를 2자릿수로 조합하여 표현하니 16의 2승 (2의 4승의 2제곱) = 256가지의 방법으로 나타낼 수 있는거죠…
그리하여 #ffffff = 하얀색, #000000 = 검정색, #ff0000 = 빨간색, #0000ff = 파란색, #ffff00 = 노란색 등의 표현을 할 수 있는 거겠죠…

뭐 여기까진 여담이었고 그럼 이제 16-bit의 경우를 살펴보도록 하죠.
16-bit의 경우: 65536 x 65536 x 65536 = 281,474,976,710,656가지의 방법으로 색을 표현할 수 있는 겁니다.

인간의 눈이 최고 10,000,000가지의 색을 표현할 수 있다고 하는데… 그렇다면 8비트의 이미지의 경우도 우리의 눈엔 충분하다는 뜻이 됩니다.

.

.

하지만 왜 이미지를 편집할때 16비트의 이미지를 선호하는 것일까요?

답은 확장성에 있습니다.

즉 얼마나 정보를 덜 손상시키며 최대 극한까지 보정이 가능한가…? 에 답이 있습니다.

.

.

2. 포토샵 / 후보정 단계에서 Bit값의 의미

Screen Shot 2014-11-26 at 13.44.21 Screen Shot 2014-11-26 at 13.44.43

우선 차이를 간단하게 알아보기 위해 위와 같이 같은 크기의 파일을 포토샵에서 만들어 같은 그라데이션 효과를 적용하였습니다.

Screen Shot 2014-11-26 at 13.43.05

이둘의 히스토그램은 위와 같을 겁니다.

이제 레벨 옵션을 열어 Output Level을 각각 120과 140으로 바꿔 줍니다. 이렇게 함으로서 왼쪽 끝에 있는 순수한 검정과 오른쪽 끝에 있는 순수한 하얀색을 중간의 아주 작은 부분으로 끌어 당김으로서 보편적으로는 아래와 같이 중간값의 회색을 전체적으로 얻는 효과를 얻을 수 있습니다. (하지만 이 그레디언트는 중간의 아주 작은 부분으로 압축이 되어 안보이는 것일뿐 이 그라데이션의 정보가 사라진 것은 아닙니다.) 여기서 정보를 압축했다는 사실을 인지하는 것이 매우 중요합니다.

Screen Shot 2014-11-26 at 13.44.59

자 여기까진 16비트 이미지나 8비트 이미지다 다를게 없습니다. 그리고 이 이미지의 히스토그램은 아래와 같습니다. (즉 이미지로 보기에는 그래디언트의 정보가 사라진 것 처럼 보이지만, 그래프로 보면 실제로는 그저 압축되어 있는 것 인 것을 알 수 있습니다.)

Screen Shot 2014-11-26 at 13.45.23

자 이제 다시 그래디언트를 되살려보기로 하죠.
다시 레벨미터를 열고, 이번엔 Input Level의 양쪽을 각각 120과 140으로 적용하여 다시 압축된 것을 늘려주도록 합니다.

우선 8비트 이미지를 보도록 하죠.

Screen Shot 2014-11-26 at 13.44.08

Screen Shot 2014-11-26 at 13.49.26

짠! 다시 압축되어 있는 것을 늘렸을 뿐인데요… 이렇게 한눈에 보아도 정보가 손실 된 것을 알 수 있습니다.

.

이제 16비트의 이미지를 한번 보도록 하죠…!

Screen Shot 2014-11-26 at 13.45.35

 

Screen Shot 2014-11-26 at 13.49.00

짠! 거의 모든 정보가 살아 있는 것을 볼 수 있습니다.

그럼 압축전 그래디언트 히스토그램과 비교해볼까요?

Screen Shot 2014-11-26 at 13.43.05

아주…! 약간의 차이는 있지만…! 이렇게나 극한적으로 이미지를 압축한 뒤 다시 늘렸는데도… 정보가 거의 손실되지 않은 것을 볼 수 있습니다.

즉 이것을 실제 보정과 적용시켜볼때 16비트의 이미지에서는 8비트의 이미지에서보다 더 극한의 보정을 적용시키더라도, 그 색정보가 손실되는 정도가 매우 적다는 것입니다.

.

.

3. 실제 사진의 적용 사례

위의 과정을 실제 색정보가 풍부한 노을/야경 등의 실제사진에 적용해봅시다.

실제 제가 찍은 사진에 위의 그라데이션에서 했던 레벨작업을 비트수만 바꾼채 진행해보았습니다.

홍콩야경-원본

홍콩야경-원본

위의 사진이 레벨보정 전 원본입니다.

.

홍콩야경-8비트

홍콩야경-8비트

위의 보이시는 사진은 원본사진 (16비트) 을 8비트로 바꾼뒤 레벨 작업을 거친 사진입니다.
원본과의 차이가 보이시나요? 우선 하얀 구름쪽 계조가 완전히 깨졌습니다.
그리고, 물의 반사면의 정보도 완전히 손실된 것을 볼 수 잇습니다.

.

홍콩야경-16비트

홍콩야경-16비트

위의 사진은 16비트인 사진을 그대로 레벨작업을 거친 후 나온 결과물입니다.
차이를 느끼기 힘들죠?

이로서 왜 16비트로 이미지를 보정해야 하는가? 의 대해 알아보았습니다.

.

<번외 1. 그렇다면 촬영파일은 무엇으로 해야 할까?>

우선 카메라엔 크게 두 옵션이 있죠…

1. JPEG촬영

2. Raw촬영

우선 JPEG촬영은 16비트를 지원하지 않고 8비트만을 지원합니다.
반면 RAW 파일은 12비트와 14비트를 지원합니다.

따라서 최상의 퀄리티의 원본과 추후 후보정을 생각하신다면 RAW 촬영하시는 것이 맞습니다.

.

<번외 2. 그렇다면 8비트 원본을 열고, 16비트로 전환뒤 후보정을 하는 것은 무의미할까?>

음… Yes and NO가 동시에 존재할 것 같습니다.

그래서 간단한 실험을 해봤습니다.

2번에서 했던 실험인데요…

8비트로 그라데이션을 만든 파일을 16비트로 컨버팅을 한 뒤 같은 과정의 레벨보정을 거쳐보았습니다.

결과는 아래와 같았습니다.

Screen Shot 2014-11-26 at 13.46.37

Screen Shot 2014-11-26 at 13.48.34

위에서 보시다시피 그 결과는 16비트에서 만들어진 그라데이션 커브와 “아주” 비슷한… 결과를 적어도 8비트에서 작업할때만큼 미친듯이 깨지지는 않는 다는 것을 알 수 있습니다. 아래 16비트 작업 히스토그램과 비교해보시죠. 아주 전반적으로 컨버팅을 거친 것이 조금 더 부드러운 히스토그램 그리고 가끔 튀는 부분이 있지만… 대세에는 지장이 거의 없는 것을 볼 수 있습니다.

Screen Shot 2014-11-26 at 13.49.00

 

이번에는 저 위에 있던 ‘8비트 -> 16비트 -> 후보정 이미지’를 다시 8비트로 컨버팅 해보겠습니다.

Screen Shot 2014-11-26 at 13.50.11

이로 추정해 보건데… 결론은…!

  • 포토샵은 고유의 알고리즘을 통해 8비트의 이미지를 16비트로 변환시 생기는 빈 공간의 색정보를 채워 넣는다.
  • 반대로 16비트를 8비트로 변환시에도 고유의 알고리즘을 통해 손실되는 색정보를 임의적으로 매워 넣는다? (혹은 그 브릿지를 자기가 알아서 만든다)
  • 이는 색공간 조정 시 ‘Conversion Option’의 Intent의 한 방식일 가능성이 크다. (가장기본이면 Perceptual이 아닐까…?) – 중간 값들로 Nomalising 하는 뭐 그런…?
  • 일단 8비트를 16비트로 강제전환 시킨 뒤 보정을 가할 시 그냥 8비트 작업보다 덜깨진다.
  • 하지만 이건 일단 흑백의 케이스, 경우의 수가 더 다양한 흑백이라면 요 깨지는 정도가 증폭될 가능성이 존재함.
  • 그렇지만 결론적으론 강제컨버팅 시키더라도 보정시 더 유리하다는 건 사실…이지 않을까…?

.

.

뭐 난 전문가가 아니라서… 내가 내릴 수 있는 결론과 공부를 해보았다.

도움이 될 사람은 됬음 좋겠고… 안됬으면… 시간낭비 하셔서 어찌하나…흑…ㅠㅠㅠㅠ

2 thoughts on “8bit와 16bit 이미지의 차이

Leave a Reply

Your email address will not be published. Required fields are marked *