색 정량화
Color quantization컴퓨터 그래픽에서 컬러 정량화 또는 컬러 영상 정량화는 컬러 공간에 적용되는 정량화 과정으로, 대개 새로운 영상이 원본 영상과 가능한 한 시각적으로 유사해야 한다는 취지로 이미지에서 사용되는 구별되는 색상의 수를 줄이는 과정이다.비트맵에서 색 정량화를 수행하는 컴퓨터 알고리즘은 1970년대부터 연구되어 왔다.색상 정량화는 대개 메모리 제한으로 인해 제한된 수의 색상만 표시할 수 있는 장치에 여러 색상의 영상을 표시하는 데 중요하며, 특정 유형의 이미지를 효율적으로 압축할 수 있다.
컴퓨터 그래픽 연구 문헌에는 주로 "컬러 정량화"라는 이름이 사용되며, 응용 분야에서는 최적화된 팔레트 생성, 최적의 팔레트 생성 또는 색 농도 감소와 같은 용어가 사용된다.이 중 일부는 표준 알고리즘에 의해 생성된 팔레트가 반드시 가장 좋은 것은 아니기 때문에 오해의 소지가 있다.
알고리즘
대부분의 표준기법은 색 정량화를 3차원 공간에서 군집화 문제로 취급하는데, 여기서 점들은 원래 이미지에서 찾은 색상을 나타내고, 세 개의 축은 세 가지 색 채널을 나타낸다.거의 모든 3차원 군집화 알고리즘을 컬러 정량화에 적용할 수 있으며, 그 반대의 경우도 가능하다.군집을 배치한 후, 일반적으로 각 군집의 점들은 평균을 내어 군집의 모든 색상이 매핑되는 대표 색상을 얻는다.세 가지 색 채널은 보통 적색, 녹색, 청색이지만 또 다른 인기 있는 선택은 유클리드 거리가 지각 차이에 더 부합하는 Lab 색상 공간이다.
1979년 폴 헥버트가 발명한 색 정량화를 위한 가장 인기 있는 알고리즘은 중앙분리대 절단 알고리즘이다.이 계획에는 많은 변형이 사용되고 있다.이 시기 이전에는 대부분의 색 정량화가 모집단 알고리즘이나 모집단 방법을 사용하여 이루어졌는데, 이 방법은 기본적으로 동일한 크기의 범위의 히스토그램을 구성하고 가장 많은 점을 포함하는 범위에 색상을 할당한다.보다 현대적으로 인기 있는 방법은 제록스 PARC 연구원인 댄 블룸버그가 개선한, 저바우츠와 푸르가토퍼에 의해 처음 구상한 옥트리를 이용한 클러스터링이다.
![]() 포토샵에서 제작한 16가지 색상의 최적화된 팔레트와 함께 왼쪽 사진의 컬러 공간.각 팔레트 항목의 보로노이 지역이 표시된다. |
운영체제에 사용되는 것과 같은 실시간 색 정량화 시스템에서 흔히 볼 수 있듯이 팔레트가 고정되어 있다면, 색상 정량화는 대개 원본 영상에서 각 색상을 간단히 취하여 가장 가까운 색상의 팔레트 입력을 찾는 "직선 거리" 또는 "가장 가까운 색" 알고리즘을 사용하여 이루어지는데, 여기서 거리는 다음과 같이 결정된다.e 3차원 공간에서 두 점 사이의 거리.즉, 색상이( 1, 1, 1) 이고( 2,g , b 2, ) },인 경우 우리는 유클리드 거리를 최소화하고자 한다.
이렇게 하면 색상 큐브가 효과적으로 보로노이 다이어그램으로 분해되는데, 여기서 팔레트 항목은 포인트로, 셀은 단일 팔레트 항목에 대한 모든 색상 매핑을 포함한다.보로노이 도표를 계산하고 주어진 지점이 어느 지역에 속하는지를 결정하기 위한 계산 기하학에서 효율적인 알고리즘이 있다. 실제로 색인된 팔레트는 너무 작아서 대개 과잉 살상이다.
색 정량화는 디더링과 결합되는 경우가 많아 매끄러운 그라데이션 정량화 시 나타나는 밴딩 등 불쾌한 유물을 제거하고 더 많은 색상의 외관을 줄 수 있다.색 정량화를 위한 일부 현대적인 계획은 팔레트 선택을 독립적으로 수행하기 보다는 한 단계에서 디더링과 결합하려고 시도한다.
완전히 다른 접근법을 사용하는 다른 훨씬 덜 자주 사용되는 많은 방법들이 발명되었다.1995년 올레그 베레브카에 의해 고안된 로컬 K-평균 알고리즘은 "예약된 색상"의 핵심 세트가 시스템에 고정되어 있고 다른 색 구성표를 가진 많은 영상이 동시에 표시될 수 있는 윈도우 설정 시스템에 사용하도록 설계되었다.팔레트를 처음 추측한 후 반복적으로 다시 재조정한 후 클러스팅을 하는 방식이다.
색상 정량화 초기에는 k-평균 군집화 알고리즘이 높은 연산 요건과 초기화에 대한 민감도로 인해 부적합하다고 간주되었다.2011년 엠에머 셀레비는 컬러 정량기로 k-means의 성능을 재조사했다.[1]그는 k-평균의 효율적인 구현이 많은 수의 색상 정량화 방법을 능가한다는 것을 증명했다.
고화질이지만 느린 NeuQuant 알고리즘은 입력 이미지에서 색의 분포에 맞는 학습을 통해 스스로 조직하는 코오넨 신경망을 훈련시켜 이미지를 256색상으로 줄인다.각 뉴런의 RGB-공간에서 위치를 차지하면 인접 색상이 유사한 고품질 컬러맵을 얻을 수 있다."[2]특히 그라데이션이 있는 영상에 유리하다.
마지막으로, 새로운 방법들 중 하나는 푸지차, 홀드, 케트러, 부만, 본 대학의 펠너가 구상한 공간 색 정량화인데, 팔레트 생성과 디더링과 인간 인식의 단순화 모델을 결합하여 아주 적은 수의 색상에도 시각적으로 인상적인 결과를 만들어 낸다.팔레트 선택을 클러스터링 문제로 엄격하게 다루지 않고, 원본 영상에서 주변 픽셀의 색상도 픽셀의 색상에 영향을 미친다는 것이다.샘플 이미지를 참조하십시오.
기록 및 응용 프로그램
PC 초기에는 비디오 메모리 제한으로 인해 비디오 어댑터가 2, 4, 16 또는 (결국적으로) 256색만 지원하는 것이 일반적이었다; 그들은 비디오 메모리를 더 많은 색보다 더 많은 픽셀(더 높은 해상도)을 갖는 것에 바치는 것을 선호했다.색 정량화는 시각적 저하가 제한된 16-256색 모드에서 많은 고색상을 표시할 수 있게 함으로써 이러한 절충을 정당화하는 데 도움이 되었다.많은 운영체제가 256색 비디오 모드에서 고색상 영상을 볼 때 자동으로 정량화 및 디더링을 수행하는데, 이는 256색 모드로 제한된 비디오 장치가 우세할 때 중요했다.현대의 컴퓨터는 이제 인간의 눈으로 구별할 수 있는 것보다 훨씬 많은 수백만 가지의 색상을 한 번에 표시할 수 있으며, 이 응용 프로그램은 주로 모바일 장치와 레거시 하드웨어로 제한된다.
요즘은 GIF와 PNG 영상에 컬러 정량화가 주로 사용된다.오랫동안 월드 와이드 웹에서 가장 인기 있는 무손실 애니메이션 비트맵 형식인 GIF는 256색까지만 지원하므로 많은 이미지에 대한 정량화가 필요하다.일부 초기 웹브라우저는 웹 컬러라고 알려진 특정 팔레트를 사용하도록 이미지를 제한하여 최적화된 팔레트에 비해 화질이 심각하게 저하되었다.PNG 영상은 24비트 색상을 지원하지만, PNG 파일은 화소당 픽셀당 비트를 더 적게 사용하기 때문에 색 정량화를 적용하여 큰 시각적 저하 없이 파일 크기가 훨씬 작게 만들어질 수 있다.
카메라의 렌즈를 통해 이용할 수 있는 무한한 색의 수는 컴퓨터 화면에 표시할 수 없기 때문에 사진을 디지털로 변환하는 것은 반드시 어느 정도의 정량화를 필요로 한다.실제로 24비트 색상은 인간이 지각할 수 있는 거의 모든 색상을 표현할 수 있을 만큼 풍부하며 시각적으로 동일할 정도로 작은 오류(충실하게 제시될 경우)가 가능한 색 공간 내에서 충분히 존재한다.[citation needed]그러나 카메라 디텍터나 화면에서 색상의 디지털화는 반드시 사용 가능한 색 공간을 제한한다.결과적으로 색을 나타내기 위해 얼마나 많은 비트를 사용했는가에 상관없이 번식이 불가능할 수 있는 많은 색들이 있다.예를 들어 전형적인 RGB 색 공간(컴퓨터 모니터에서 흔히 볼 수 있는)에서는 인간의 눈이 지각할 수 있는 녹색의 전 범위를 재현하는 것이 불가능하다.
초기 컴퓨터에서 사용할 수 있는 몇 가지 색상으로, 다른 정량화 알고리즘은 매우 다르게 보이는 출력 이미지를 생성했다.그 결과, 보다 실제처럼 되기 위해 정교한 알고리즘을 작성하는 데 많은 시간이 소요되었다.
이미지 압축에 대한 수량화
많은 이미지 파일 형식은 인덱싱된 색상을 지원한다.
전체 이미지 팔레트는 일반적으로 전체 이미지에 대해 256개의 "대표적" 색상을 선택하며, 각 픽셀은 GIF 및 PNG 파일 형식에서와 같이 팔레트의 색상을 참조한다.
블록 팔레트는 일반적으로 BTC, CCC, S2TC, S3TC에서 사용되는 4x4 픽셀의 각 블록에 대해 2개 또는 4개의 색상을 선택한다.
편집기 지원
많은 비트맵 그래픽 편집기는 색 정량화를 위한 내장된 지원 기능을 포함하고 있으며, 색상이 많은 이미지를 색상이 적은 이미지 형식으로 변환할 때 자동으로 수행된다.이러한 구현의 대부분은 사용자가 원하는 색상의 수를 정확히 설정할 수 있도록 한다.그러한 지원의 예는 다음과 같다.
- Photoshop의 Mode→Indexed Color 기능은 특정 이미지나 이미지에 적합한 팔레트를 생성하기 위해 고정 윈도우 시스템 및 웹 팔레트에서 독점적인 Local 및 Global 알고리즘에 이르는 다양한 정량화 알고리즘을 제공한다.
- Paint Shop Pro는 Colors→Decrease Color Depth 대화상자에서 세 가지 표준 색상 정량화 알고리즘(중위 절단, 옥트리, 고정 표준 "웹 세이프" 팔레트)을 제공한다.
- KIMP 2.8에서 이미지에서 인덱싱된 색상으로 변환 옵션(이미지→모드→인덱스..)을 사용하면 웹에 최적화된 색상을 사용하거나 흑백 팔레트(1비트)를 사용하거나 사용자 지정 팔레트를 사용할 수 있는 옵션인 2 ~ 256가지 색상을 선택할 수 있는 최적의 팔레트를 생성할 수 있다.사용하지 않는 색상을 팔레트에서 제거할 수 있으며 다음과 같은 다양한 디더링 옵션을 제공한다.None, Floyd-Steinberg(정상), Floyd-Steinberg(색소 출혈 감소), 포지셔닝(Positioned) 및 투명성의 디더링을 가능하게 하는 기능.
포스터화는 동일한 색 공간 내에서 사용되는 색의 수를 최소화하는 약간 다른 목표를 가지고 있으며, 일반적으로 고정된 팔레트를 사용하지만, 색 정량화는 포스터화 효과를 창출하는 데도 사용된다.
일부 벡터 그래픽 편집자는 특히 에지 검출의 도움을 받아 비트맵 이미지의 트레이싱을 생성하는 래스터 대 벡터 기법에도 색 정량화를 활용한다.
- 잉크케이프의 경로→추적 비트맵: Multiple Scans(다중 스캔): 컬러 함수는 컬러 트레이스를 만들기 위해 옥트리 정량화를 사용한다.[3]
참고 항목
참조
- ^ Celebi, M. E. (2011). "Improving the performance of k-means for color quantization". Image and Vision Computing. 29 (4): 260–271. arXiv:1101.0395. Bibcode:2011arXiv1101.0395E. doi:10.1016/j.imavis.2010.10.002. S2CID 9557537.
- ^ "Archived copy". Archived from the original on 2006-06-14. Retrieved 2006-05-02.
{{cite web}}
: CS1 maint: 타이틀로 보관된 사본(링크) - ^ Bah, Tavmjong (2007-07-23). "Inkscape » Tracing Bitmaps » Multiple Scans". Retrieved 2008-02-23.
추가 읽기
- 폴 S. 헥버트프레임 버퍼 디스플레이를 위한 컬러 이미지 정량화.ACM SIGRAPH '82 재판'중위수 절단 알고리즘의 첫 번째 간행물.
- 댄 블룸버그.8진수를 사용한 색상 정량화.렙토니카
- 올레그 베레브카로컬 K-평균 알고리즘을 사용한 Windows 시스템의 컬러 이미지 정량화.95년 서부 컴퓨터 그래픽스 심포지엄의 진행.
- J. 푸지차, M. 홀드, J. 케트러, J. M. 부만, D.펠너.Color Images의 Spatial Quantization(색상 이미지의 공간 정량화)에 대해. (전체 텍스트 .ps.gz)1998년 본대학 기술보고서 IAI-TR-98-1