컬러 셀 압축
Color Cell CompressionColor Cell Compression은 [1][2][3]Campbell 등이 1986년 개발한 손실 이미지 압축 알고리즘으로 S3 텍스처 압축, Adaptive Context Compression과 같은 현대 텍스처 압축 알고리즘의 초기 전조로 간주할 수 있다.그것은 화소 블록의 지배적인 휘도를 사용하여 화소를 두 개의 대표적인 색으로 분할한다는 점에서 Color Cell Compression보다 앞선 또 다른 손실 이미지 압축 알고리즘인 [4]Block Cutculation Coding과 밀접하게 관련되어 있다.블록 절단 코딩과 컬러 셀 압축의 주요한 차이점은 전자가 그레이스케일 영상을 압축하도록 설계되었고 후자가 컬러 영상을 압축하도록 설계되었다는 것이다.또한 블록 절단 코딩은 이미지를 압축하기 위해 블록에 있는 픽셀 색상의 표준 편차를 계산해야 하는 반면 컬러 셀 압축은 표준 편차를 사용하지 않는다.그러나 두 알고리즘 모두 이미지를 픽셀당 2비트로 압축할 수 있다.
알고리즘.
압축
컬러 셀 압축 알고리즘은 단계(단계 #6) 중 하나가 선택사항이지만 8단계로 영상을 처리한다.다른 비트 깊이를 사용할 수 있지만, 여기서 입력은 원본 저널 기사에서 가정했을 때 24비트/픽셀 이미지라고 가정한다.
- 입력 영상의 각 24비트 색상 값에 포함된 각 8비트 RGB 옥텟 트리플에 대해 NTSC 휘도 은(는) 다음 공식을 사용하여 계산한다.[1][2][3]
- 이제 영상은 4픽셀에 4픽셀 블록으로 세분화되며, 블록 내 각 픽셀의 휘도의 산술 평균을 사용해 대표적인 휘도 값을 선택한다.[1][2][3]
- 각각의 픽셀 블록은 두 그룹으로 나뉜다.한 그룹은 각 픽셀의 휘도가 현재 블록의 대표 휘도보다 크거나 같은 현재 블록의 픽셀로 구성된다.두 번째 픽셀 그룹은 각 픽셀의 휘도가 현재 블록의 대표 휘도보다 낮은 현재 블록의 픽셀로 구성된다.현재 블록의 픽셀이 특정 그룹에 속하는지 여부는 다른 별도의 16-항목 비트맵의 이진수 "0" 또는 "1" 값으로 결정된다.[1][2][3]
- 이제 두 개의 산술 수단을 계산하여 각 픽셀 블록에 대해 두 개의 대표적인 24비트 색상을 선택한다.첫 번째 산술 평균은 각 픽셀의 휘도가 휘도 비트맵에서 "1"인 첫 번째 픽셀 그룹에 속하는 모든 픽셀의 산술 평균이다.두 번째 24비트 대표 색상은 휘도 비트맵에서 각 픽셀이 "0"에 해당하는 두 번째 그룹의 모든 24비트 색상 픽셀의 산술 평균을 취함으로써 유사하게 선택된다.[1][2][3]
- 휘도 비트맵은 임시 위치에 저장한 다음 현재 블록의 24비트 대표 색상을 비트맵에 추가한다.이 단계에서 이미지는 두 개의 24비트 이진수 값이 추가된 16-엔트리 비트맵으로 압축되었다.압축된 블록의 총 크기는 현재 휘도 비트맵의 경우 16비트, 대표 색상의 경우 2개의 24비트 이진수량이 되어 총 64비트의 크기를 산출하며, 16비트(블록의 픽셀 수)로 나누면 픽셀당 4비트씩 산출된다.[1][2][3]
- 각각의 압축된 픽셀 블록은 두 개의 24비트 대표 색상을 각각 15비트로 잘라 수정한다.이 단계는 선택 사항이며, 이 단계에서 압축된 블록의 총 가 + 2× = {\=46비트로, 16으로 나누면 픽셀당 2.875비트를 산출하므로 알고리즘은 원하는 경우 이 시점에서 종료할 수 있다.이 단계를 수행하면 다음 단계에서 15비트 잘린 색상 값을 사용하여 더 작은 히스토그램을 만들 수 있다.또한 각각의 15비트 바이너리 컬러 벡터는 16비트 워드로 저장되기 때문에 16번째 비트를 사용하여 두 개의 룩업 테이블 중 어느 하나를 사용해야 하는지를 지정함으로써 이미지 품질을 개선할 수 있다.[1][2][3]
- 원본 24비트 컬러 영상에 있는 모든 24비트 색상의 히스토그램 또는 잘린 15비트 컬러 벡터가 작성된다.순진한 구현에서 히스토그램은 가장 자주 사용되는 색상 중 256개를 선택하기 위해 참조된다. 이 색상은 256-엔트 배열로 입력되며, 각 항목은 픽셀당 24비트 색상 값의 3옥텟으로 구성된다.원래 픽셀당 24비트 컬러 영상에 가장 적합한 색상을 선택하는 히스토그램 방법은 대신 중위수 컷 알고리즘이나 K-평균 군집화[citation needed] 같은 벡터 정량화 클래스 알고리즘으로 대체하면 되는데, 일반적으로 더 나은 결과를 얻을 수 있다.[1][2][3]
- 마지막 단계는 현재의 픽셀 블록을 취하고 256-엔트리 조회 테이블에서 픽셀당 24비트 색상을 각 블록의 대표적인 두 가지 색상과 가장 밀접하게 일치시키는 것으로 구성된다.룩업 테이블에서 색상을 가리키는 두 개의 8비트 지수는 이제 16비트 휘도 비트맵에 추가된다.는 16+ + 8= 비트의 총 압축 크기를 산출하며, 16으로 나누면 픽셀당 2비트가 산출된다.[1][2][3]
- 입력 영상의 각 24비트 색상 값에 포함된 각 8비트 RGB 옥텟 트리플에 대해 NTSC 휘도 은(는) 다음 공식을 사용하여 계산한다.[1][2][3]
감압
감압은 매우 쉽고 간단하다.각 압축된 4픽셀을 4픽셀 블록으로 재구성하기 위해 각 블록에 대해 16비트 휘도 비트맵을 참조한다.비트맵의 요소가 1인지 0인지에 따라 두 개의 8비트 지수 중 하나를 룩업 테이블로 선택한 다음 참조 해제하고 해당하는 픽셀당 24비트 컬러 값을 검색한다.[1][2][3]
성능 및 이미지 품질
알고리즘은 매우 간단한 메커니즘에도 불구하고 사진 영상에서 놀라울 정도로 좋은 결과를 산출하며 [1][2][3]제한된 하드웨어로 매우 빠르게 디코딩할 수 있다는 장점이 있다.이후 JPEG와 같은 블록-트랜스포메이션 코딩 방식에 의해 압축비율이 크게 앞섰지만, 압축된 영상에 매우 간단한 감압과 빠른 랜덤 액세스가 가능하다는 장점이 있다.
애플 비디오(RPZA)와 S3 텍스처 압축은 두 가지 대표 색상을 기준으로 4×4 픽셀 블록을 인코딩하는 동일한 원리를 채택하고 있다.그들은 휘도 비트맵의 각 항목을 2비트로 확장하여 CCC를 정제한다. 여기서 추가 두 값은 가중 평균을 나타낸다. 즉, 한 색의 3분의 1과 다른 색의 3분의 2이다.S3의 특허를 따르기 위해 S3TC 디코더와 호환되는 형식으로 CCC 데이터를 인코딩하고 S3를 재해석하기 위해 S2TC(Super Simple Texture Compression) 라이브러리를 만들었다.사소한 품질손실을 가진 CCC로서의 TC.
참고 항목
참조
- ^ a b c d e f g h i j k Campbell, G.; Defanti, T. A.; Frederiksen, J.; Joyce, S. A.; Leske, L. A. (1986). "Two bit/pixel full color encoding". Proceedings of the 13th annual conference on Computer graphics and interactive techniques - SIGGRAPH '86. p. 215. doi:10.1145/15922.15910. ISBN 978-0-89791-196-2.
- ^ a b c d e f g h i j k Pins, Markus (1991). Extensions of the Color-Cell-Compression-Algorithm. Computer Animation '91. pp. 241–251. doi:10.1007/978-4-431-66890-9_17. ISBN 978-4-431-66892-3.
- ^ a b c d e f g h i j k Lamparter, Bernd Effelsberg, Wolfgang (June 2005). eXtended Color Cell Compression : A Runtime-efficient Compression Scheme for Software Video. Multimedia: Advanced Teleservices and High-Speed Communication Architectures. Lecture Notes in Computer Science. Vol. 868. pp. 181–190. doi:10.1007/3-540-58494-3_16. ISBN 978-3-540-58494-0.
{{cite book}}
: CS1 maint : 복수이름 : 작성자 목록(링크)[영구적 데드링크] - ^ Wennersten, P.; Ström, J. (2009). "Table-based Alpha Compression" (PDF). Computer Graphics Forum. 28 (2): 687. doi:10.1111/j.1467-8659.2009.01409.x.