하이 컬러

 

1. 개요
2. 역사
3. 구현
3.1. 기본 구현
3.2. 확장 구현
4. 평가
5. 기타


1. 개요


컴퓨터에서 자연색상을 구현했던 16비트 기술.
과거의 제한적 색상 팔레트 구현 방식에서 지금의 트루 컬러(총천연색)로 발전하던 중도에 구현된 준천연색 구현 기술이다. 기본적으로 3만여가지의 색상을 구현하며, 확장시 6만여색의 구현이 가능하다.

2. 역사


16비트 CPU가 대세이던 시절에는 되도록 한번에 처리하는 데이터 비트수가 16일 때에 최적화가 되므로, 화면의 1픽셀도 16비트(2byte)로 구현되는 것이 빨랐다. 따라서 색상 1개를 표현함에 있어서 Red/Greed/Blue 각기 삼원색에 5비트씩 할당하면 15비트(십진수로 0~31)가 되므로 최적화 구현이 가능했다. 즉, 빛의 삼원색 각각을 32단계로 표현하였다.
주로 초중기 VGA에서 구현되었으며, VESA 후기 이후에는 트루 컬러로 넘어갔다.

3. 구현



3.1. 기본 구현


한가지 색상을 표현하는데에 15비트를 사용한다. 빛의 삼원색에서 빨강색에 5비트, 초록색에 5비트, 파랑색에 5비트를 할당한다.
5비트는 0~31까지 32가지 숫자를 쓸 수 있으므로 3원색을 각기 32단계의 숫자로 표현하며 빛을 섞어 준 천연색을 표현하는 것이 highcolor의 기본 기술이다.
하이컬러는 삼원색을 32단계로 표현하므로 100%를 기준으로 1단계당 3.125%의 색상 차이를 구현하며, 3색을 조합하면 32×32×32=32768가지의 색을 표현한다.
예를 들어 "빨간색을 단계 20수준(=62.5%), 파란색을 단계 32수준(=100%), 녹색은 0인 색을 쏴라."고 하면 파란끼가 더 많이 도는 포도색 보라빛이 표현된다.

3.2. 확장 구현


16비트 기준에서 하이컬러의 15비트 구현 후 남게되는 1비트는 그냥 두던지(낭비) 혹은 확장값(팔렛 플레그 혹은 알파 등)으로 쓰였었다.
하이컬러 기술이 대세로 자리 잡힌 후 보통 R/G/B 중 어느 한 색을 더 세밀하게 하는데에 쓰이게 되었고, 주로 녹색으로 쓰였다고 한다. 인간의 눈이 다른 색보다 녹색을 구분하는 능력이 매우 높으므로[1] 1비트를 녹색에 주어 (녹색 32->64단계) 확장 하이컬러를 구성하면 인간을 위한 색 표현력이 더 높아진다.

4. 평가


16비트의 구현 방법에서 RGB 5-6-5와 RGB 5-5-5, BGR 5-5-5 모드가 공존했기 때문에 당시의 그래픽 API(DirectX)를 사용한 코드 등에는 사용자 환경에 따라 이들의 경우를 각기 처리하는 기능이 포함되어 있었다. 이러한 복잡성은 아래처럼 트루컬러가 시장을 지배하면서 자연스럽게 사라졌다.
당시에는 인간의 눈이 3만가지 준천연색보다 세밀한 색상 차이를 구분하지 못한다는 견해도 있었으며, 더 높은 CPU의 시대가 열려도 색상구현은 high-color 방식으로 남아 있는 것이 기술적 최적화 및 낭비 bit의 최소화라고 좋게 보는 의견도 있었다. 다만, 24비트 색상구현으로 트루컬러 기기가 보편화/저가화되자 이런 의견은 축소되고 사라졌다.
트루컬러의 경우는 삼원색 각기 8비트(256단계)로 8×3=24bit를 사용하기에 32bit CPU 기준으로 픽셀당 8비트가 남게 되어 이는 낭비되거나 다른 값 표현에 사용된다. 이 8비트를 낭비로 보는 시점이라면 하이컬러의 bit 낭비 최소화에 대한 의견에는 일리가 있다. 일반적으로 남는 8비트를 투명도(알파)에 할당한다.
참고로, 잘 디더링된 이미지의 경우 일반인의 눈은 하이컬러 이상의 색상 해상도를 잘 구분하지 못하긴 하지만 천연색 컬러 화면에서 단색 그라데이션이 나타나면 금방 눈치챌 수 있고, 그렇지 않더라도 전문가들은 매우 민감하게 반응할 수 있다. 대중적으로도 트루컬러로 된 화상을 볼 때에 (플라시보 이상으로) 훨씬 수려함을 느끼는 것은 사실이다. 이 현상을 쉽게 확인하려면 하늘 등의 풍경이 포함된 윈도우 바탕화면 이미지를 띄운 상태에서 색 깊이를 32비트와 16비트로 각각 놓고 비교해 보자. 16비트의 경우 그라데이션에서 눈으로도 경계선을 쉽게 찾을 수 있다. 그러나 모니터가 발달하면서 트루컬러에서도 경계선을 구별하는 수준[2]이 되었다. 이 때문에 10BPC[3]까지 등장한 상황.

5. 기타


Apple사는 같은 내용의 기술을 다른 용어를 사용해 지칭했으며, 마이크로소프트는 하이컬러라는 기술 용어에 대해서 위와는 사뭇 다른 의미와 구현을 시도한 적이 있었다. 이에 따라 하이컬러라는 용어의 정의가 혼탁해지기도 하였으며, 용어로서의 입지가 좁아졌다는 의견도 있다.
Windows Mobile안드로이드 2.3까지의 모바일 운영체제는 하이 컬러(65K) 출력만 지원했기 때문에 이에 대한 불만이 있었다. 다만 후자는 제조사 커스텀[4]으로 특정 앱에 한해서 트루 컬러(16M) 출력을 지원했으며[5], 이후 안드로이드 4.0 버전부터는 트루 컬러가 기본적으로 사용되면서 문제가 해결되었다.
한편 리듬게임 EZ2DJ/EZ2AC도 2014년까지는 16비트 색상으로 작동했으나, 2015년 사양 업그레이드를 거쳐 현재는 24비트 색상으로 작동한다. 다만, 기기에 키보드를 연결하여 스크린샷을 찍어 보면 용량이 900 kB인데, 이는 640×480p 24비트 비압축 이미지의 용량이다.
여담으로 서든어택은 하이컬러가 기본값이다(...)

[1] RGB색상을 기계적으로 그라데이션 구현한 그림을 사람 눈으로 보게 되면 녹색의 구분력이 더 높다는걸 알 수 있다.[2] 주로 검은색에 가까운 암부 계조에서 경계선이 드러난다.[3] UHD에서만 지원.[4] 삼성 갤럭시 시리즈가 대표적이다.[5] 주로 색감이 중요한 갤러리, 미디어 플레이어, 웹 브라우저 등에 적용되었다.

분류