나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2023-09-21 19:56:16

하이 컬러

하이컬러에서 넘어옴
1. 개요2. 역사3. 구현
3.1. 기본(15비트)3.2. 확장(16비트)
4. 평가5. 기타

1. 개요

컴퓨터에서 자연색상을 구현했던 16비트 기술.

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

주로 초중기 VGA에서 구현되었으며, VESA 후기 이후에는 24비트 트루 컬러로 넘어갔고 현재는 30비트 딥컬러로 넘어가고 있다. RGB 항목 참조

32k 컬러 혹은 64k 컬러라고 부르기도 한다.

2. 역사

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

3. 구현

3.1. 기본(15비트)

한가지 색상을 표현하는 데에 15비트를 사용한다. 빛의 삼원색에서 빨간색에 5비트, 초록색에 5비트, 파란색에 5비트를 할당한다.

5비트는 32가지(0~31) 숫자를 쓸 수 있으므로 3원색을 각기 32단계의 숫자로 표현하며 빛을 섞어 준 천연색을 표현하는 것이 하이 컬러의 기본 기술이다.

하이컬러는 삼원색을 32단계로 표현하므로 100%를 기준으로 1단계당 3.125%의 색상 차이를 구현하며, 3색을 조합하면 32×32×32=32,768가지의 색을 표현한다.

예를 들어 "빨간색을 단계 20수준(=62.5%), 파란색을 단계 32수준(=100%), 녹색은 0인 색을 쏴라."고 하면 파란끼가 더 많이 도는 포도색 보라빛이 표현된다.

3.2. 확장(16비트)

16비트 기준에서 하이 컬러의 15비트를 구현한 후 남는 1비트는 그냥 두거나(낭비) 확장값(팔레트 플래그 혹은 알파값)으로 쓰였었다.

하이 컬러 기술이 대세로 자리잡힌 후에는 R/G/B 중 어느 한 색을 더 세밀하게 하는 데에 쓰이게 되었고, 주로 녹색으로 쓰였다. 인간의 눈이 다른 색보다 녹색을 구분하는 능력이 매우 높으므로 1비트를 녹색에 주어(녹색 32→64단계) 확장 하이컬러를 구성하면 인간을 위한 색 표현력이 더 높아진다. RGB 색상을 기계적으로 그라데이션 구현한 그림을 사람 눈으로 보게 되면 녹색의 구분력이 더 높다는걸 알 수 있다.

4. 평가

16비트의 구현 방법에서 RGB 5-6-5와 RGB 5-5-5, BGR 5-5-5 모드가 공존했기 때문에 당시의 그래픽 API(DirectX)를 사용한 코드 등에는 사용자 환경에 따라 이들의 경우를 각기 처리하는 기능이 포함되어 있었다. 이러한 복잡성은 아래처럼 트루컬러가 시장을 지배하면서 자연스럽게 사라졌다.

당시에는 인간의 눈이 3만가지 준천연색보다 세밀한 색상 차이를 구분하지 못한다는 견해도 있었으며, 더 높은 CPU의 시대가 열려도 색상 구현은 하이 컬러 방식으로 남아 있는 것이 기술적 최적화 및 낭비 bit의 최소화라고 좋게 보는 의견도 있었다. 다만, 24비트 색상 구현으로 트루 컬러 기기가 보편화·저가화되자 이런 의견은 축소되고 사라졌다.

트루컬러의 경우는 삼원색 각기 8비트(256단계)로 8×3=24-bit를 사용하기에, 32-bit CPU 기준으로 픽셀당 8비트가 남게 된다. 이렇게 남는 값은 그냥 낭비되거나, 다른 값 표현에 사용된다. 이 8비트를 낭비로 보는 시점이라면 하이 컬러의 bit 낭비 최소화에 대한 의견에는 일리가 있다. 일반적으로 남는 8비트를 투명도(알파)에 할당하는데, Windows 설정에서 확인할 수 있는 32비트 트루 컬러가 바로 이 알파값이 포함된 트루 컬러이다.

참고로 잘 디더링된 이미지의 경우 일반인의 눈으로는 하이 컬러 이상의 색상 해상도를 잘 구분하지 못한다. 하지만 천연색 컬러 화면에서 단색 그라데이션이 나타나면 금방 눈치챌 수 있고, 그렇지 않더라도 전문가들은 매우 민감하게 반응할 수 있다. 대중적으로도 트루 컬러로 된 화상을 볼 때에 플라시보 이상으로 훨씬 수려함을 느끼는 것은 사실이다. 이 현상을 쉽게 확인하려면 Windows 7 이하 운영 체제에서 하늘 등의 풍경이 포함된 Windows 바탕 화면 이미지를 띄운 상태에서 색 깊이를 트루 컬러(32비트)와 하이 컬러(16비트)로 각각 놓고 비교해 보면 된다. 하이 컬러(16비트)의 경우 그라데이션에서 눈으로도 경계선(컬러밴딩)을 쉽게 찾을 수 있다. 참고로 Windows 8부터는 하이 컬러(16비트) 설정이 불가능해져서 무조건 트루 컬러(32비트)로만 사용해야 한다.

그러나 모니터가 발달하면서 트루컬러에서도 경계선을 구별하는 수준이 되었는데, 주로 검은색에 가까운 암부 계조에서 경계선이 드러난다. 이 때문에 10 BPC나 12 BPC, 16 BPC 등 딥 컬러까지 등장한 상황이다. 다만 초고가의 전문가용 모니터를 제외하고는 대부분 8 BPC에 디더링 기법으로 10 BPC를 구현하는 수준이다.

5. 기타

Apple사는 같은 내용의 기술을 다른 용어를 사용해 지칭했으며, Microsoft는 하이 컬러라는 기술 용어에 대해서 위와는 사뭇 다른 의미와 구현을 시도한 적이 있었다. 이에 따라 하이 컬러라는 용어의 정의가 혼탁해지기도 하였으며, 용어로서의 입지가 좁아졌다는 의견도 있다.

Windows Mobile안드로이드 진저브레드(2.3)까지의 모바일 운영체제는 하이 컬러(65K) 출력만 지원했기 때문에 이에 대한 불만이 있었다. 다만 후자는 삼성 갤럭시 등의 제조사 커스텀으로 색감이 중요한 갤러리, 미디어 플레이어, 웹 브라우저 등 특정 앱에 한해서 트루 컬러(16M) 출력을 지원했으며, 이후 안드로이드 아이스크림 샌드위치(4.0) 버전부터는 트루 컬러가 기본적으로 사용되면서 문제가 해결되었다.

EZ2AC 시리즈EZ2DJ The 1st TRACKS부터 EZ2AC : EVOLVE Ver 1.3c까지는 16비트 색상으로 작동했으나, 2015년 사양 업그레이드를 거쳐 EZ2AC : EVOLVE Ver 1.50부터는 24비트 색상으로 작동한다. 다만, 기기에 키보드를 연결하여 스크린샷을 찍어 보면 용량이 900 kB인데, 이는 640×480p 24비트 비압축 이미지의 용량이다.

서든어택은 하이 컬러가 기본값인데, 이는 서든어택이 사용하는 주피터 엔진이 구형이라서 그렇다.

분류