DXTC
DXTC(때때로 S3 Texture Compression (S3TC) 없고 DXTn로 불린다)는, 원래 S3사에 의해서 개발된 화상 압축 알고리즘 기술이다(US Patent #5, 956,431).이 기술은 Savage 3 D그래픽 가속기로 이용되고 있다.JPEG와 같은 기존의 화상 압축 알고리즘과는 달라, DXTC는(VQ의 방식을 닮은) 단순한 메모리아크세스와 대가 된 고정 레이트 데이터 압축을 실시한다.이것은 3 D컴퓨터 그래픽스를 하드웨어로 지원할 때, texture을 압축하는데 적합하다.이 기술은, 마이크로소프트의 DirectX 6.0에 포함되면, 하드웨어나 소프트웨어 메이커에 넓게 채용되게 되었다.S3사는 이미 그래픽 가속기 시장에 있고, 일류기업은 아니지만, 예를 들면 콘솔용으로 사용되고 있는 DXTC 기술의 라이센스료로 아직도 장수하고 있다.
목차
코덱
DXTC 알고리즘에는 5개의 바리에이션이 있다.이것들은 DXT1로부터 DXT5까지 있어, 각각의 포맷에 대해서 FourCC 코드를 마이크로소프트에 의해서 할당할 수 있고 있다.이것들은 각각 특정의 종류의 이미지 데이터용으로 설계되고 있다.화상은 모든 포맷에 대하고, 64비트내지 128비트에 양자화된 4×4 블록에 변환되어 32비트의 RGBA 입력 데이터는8:1없고4:1에 압축된다.DXTC는 비무손실 압축 알고리즘이기 위해, 화상 품질은 떨어지지만, 리얼한 화상을 표시하려면 , 압축된 화상 데이터에서도 충분하다.애니메이션풍의 화상이나 법선 맵은 능숙하게 압축하지 못하고, 아티팩트가 생기기 쉽다.ATI의 3 Dc압축 알고리즘은, DXTC가 가지는 법선 맵에 대한 결점을 극복하도록(듯이) 설계된, DXT5의 변종이다.
많은 근대적인 화상 압축 알고리즘과 같게, 실장자가 특정의 요구에 맞추어 압축 알고리즘을 설계할 수 있듯이 하기 위해서, DXTC는 단지 화상을 해동하는데 사용되는 방법을 지정할 뿐이다.그러나 특허는 압축 알고리즘도 커버하고 있다.초기의 압축 루틴은 최적화되어 있지 않았다.그것은 자꾸자꾸 개선되었지만, 최초 DXTC는 개발 벤더에 채용되지 않았다.NVIDIA의 GeForce로부터 GeForce 4까지의 GPU는 16비트 보간의 DXT1 texture 묘화를 사용하고 있었으므로, 색변화를 수반하는 texture을 해동할 때에 띠와 같은 노이즈가 실려 있었다.이 때문에, texture 압축에 대해서 좋지 않은 인상을 주어 버렸지만, 이것은 코덱 자신에게 기본적으로 관계하지 않는 것이었다.
DXT1
DXT1는 가장 간단한 DXTC의 바리에이션이다.이것은, 16 픽셀 입력으로부터 64비트 데이터를 출력한다.이 출력은 16 bit RGB5:6:5 2색과 4 x4의 2비트의 룩업테이블로부터 된다.
최초의 색(c0)이 2번째의 색(c1)보다 수치적으로 크다면, 다른 2개의 색은 (와)과 (으)로서 계산된다.이 모드는 애플의 비디오 코덱의 c0모드에 잘 비슷하다.
반대로 (이)라면, (이)가 되어, c3는 투과색이 된다.
룩업테이블은 각각의 픽셀마다 색치가 결정된다. (이)라면 0에 상당해, (이)라면 3이 상당한다.보다 고압축으로 하기 위해서 알파 데이터는 격납되지 않는다.
DXT2와 DXT3
DXT2와 DXT3는 16 픽셀 입력으로부터 128비트 데이터로 변환한다.이것은 64비트의 색데이터에 이어 64비트의 알파 채널 데이터(픽셀 각각 붙어 4비트)로부터 되어, DXT1와 같은 방법으로 encode 된다(다만, 알파 없음의 4색버전이 항상 사용된다).DXT2로는, 색데이터에는 미리 알파 데이터가 곱해 있어, DXT3로는 알파 데이터가 걸어 합쳐지지 않았다.보통, DXT2/3은 투과색 영역과 불투명색 영역의 경계가 날카롭게 변화하는 화상에 잘 맞는다.
DXT4와 DXT5
DXT4와 DXT5는 16 픽셀 입력으로부터 128비트 데이터로 변환한다.이 데이터에는 64비트의 색데이터(DXT2내지 DXT3와 같은 방법으로 encode 된 것)에 잇고, 64비트의 알파 채널 데이터(2개의 8비트 알파치와 4 x4의 3비트 룩업테이블)로부터 된다.
이면, 6개의 보간용 알파치를 이하와 같이 계산한다. , , , , , .
반대로 이면, 4개의 보간용 알파 데이터를 , , , (와)과 계산한다.나머지 2는 (와)과 (으)로 한다.룩업테이블은 각각의 픽셀의 알파치에 따라서 결정된다. (은)는 0에 할당할 수 있어 (은)는 7에 할당할 수 있다.DXT4의 색데이터는 알파치가 벌써 곱해 있어, DXT5의 색데이터는 그렇지 않다.DXT4/5는 보간 알파색치를 이용하고 있으므로, DXT2/3보다 알파치(투과 상태)가 점점 변화해 나가는 것에 대해서는 매우 좋은 결과를 가져온다.DXT5는 가장 유연한 범용 압축 알고리즘이라고 생각할 수 있다.
FOURCC | 내용 | Alpha premultiplied? | 압축율 | texture 타입 |
---|---|---|---|---|
DXT1 | 불투명색/ 1-bit Alpha | N/A | 8:1 / 6:1 | 단순한 알파 없음 |
DXT2 | 명시적인 알파치 | Yes | 4:1 | 날카롭게 변화하는 알파치를 가진다 |
DXT3 | 명시적인 알파치 | No | 4:1 | 날카롭게 변화하는 알파치를 가진다 |
DXT4 | 보간 알파치 | Yes | 4:1 | 서서히 변화하는 알파치를 가진다 |
DXT5 | 보간 알파치 | No | 4:1 | 서서히 변화하는 알파치를 가진다 |
관련 항목
This article is taken from the Japanese Wikipedia DXTC
This article is distributed by cc-by-sa or GFDL license in accordance with the provisions of Wikipedia.
In addition, Tranpedia is simply not responsible for any show is only by translating the writings of foreign licenses that are compatible with CC-BY-SA license information.
0 개의 댓글:
댓글 쓰기