상위 질문
타임라인
채팅
관점
적응형 스케일러블 텍스처 압축
위키백과, 무료 백과사전
Remove ads
적응형 스케일러블 텍스처 압축(Adaptive scalable texture compression, ASTC)은 ARM과 AMD의 요른 니스타드(Jørn Nystad) 등이 개발한 손실 블록 기반의 텍스처 압축 알고리즘이다.[1]
ASTC의 전체적인 세부 사항은 하이 퍼포먼스 그래픽스 2012(High Performance Graphics 2012) 컨퍼런스에서 올슨(Olson) 등이 "Adaptive Scalable Texture Compression"이라는 제목의 논문에서 처음 공개되었다.[2]
ASTC는 2012년 8월 6일 크로노스 그룹에 의해 OpenGL과 OpenGL ES의 공식 확장 기능으로 채택되었다.[3]
하드웨어 지원
리눅스에서는 모든 Gallium 3D 드라이버에 2018년부터 소프트웨어 대체 기능이 있어, 모든 AMD 라데온 GPU에서 ASTC를 사용할 수 있다.[12]
Remove ads
개요


압축 방식은 컬러 셀 압축의 진화형으로, 여러 개의 밀접하게 분포된 소수 비트레이트, 다양한 색상 형식, 고동적 범위(HDR) 텍스처 지원, 실제 3D 텍스처 지원 등의 특징을 포함한다.
ASTC의 주요 설계 목표는 콘텐츠 개발자가 모든 손실 압축 방식에 내재된 공간/품질 절충에 대해 더 잘 제어할 수 있도록 하는 것이다. ASTC를 사용하면 인접 비트레이트 간의 비율이 약 25%이므로 특정 텍스처의 품질을 높이는 데 드는 비용이 저렴하다.
다양한 에셋을 인코딩하려면 종종 다른 색상 형식이 필요하다. ASTC는 루미넌스 전용, 루미넌스-알파, RGB, RGBA 및 표면 노멀에 최적화된 모드를 포함하여 다양한 입력 형식을 허용한다. 따라서 설계자는 여러 가지 다른 압축 방식을 지원할 필요 없이 최적의 형식을 선택할 수 있다.
비트레이트와 색상 형식의 선택은 서로를 제약하지 않으므로, 많은 조합 중에서 선택할 수 있다.
이러한 유연성에도 불구하고, ASTC는 2 및 3.56 비트/텍셀에서 측정할 때 PVRTC, S3TC, 그리고 ETC2보다 더 나은 최대 신호 대 잡음비를 달성한다.[2] HDR 텍스처의 경우, 텍셀당 8비트에서 BC6H와 유사한 결과를 생성한다.[2]
Remove ads
지원되는 색상 형식
ASTC는 1채널에서 4채널까지 지원한다. 2~4채널 모드에서는 채널 중 하나를 "비상관"으로 처리하고 예측을 위해 별도의 기울기를 부여할 수 있다. 어떤 경우든, 데이터는 RGBA로 디코딩된다.[13]
이들 각각은 저동적 범위 또는 고동적 범위로 인코딩될 수 있다. 인코더는 이미지의 각 블록에 대해 색상 형식을 독립적으로 선택한다.
실제로 ASTC는 색상 이외의 데이터를 표현하는 데 사용될 수 있다. 예를 들어, L+A 형식은 비상관 구성 요소가 있는 노멀 맵인 "X+Y"를 표현하는 데 사용될 수 있으며, "RG+B" 형식은 XY+Z를 표현하는 데 사용될 수 있다.[14] ARM에서 제공하는 astc-encoder
소프트웨어는 -normal
옵션으로 "X+Y" 생성을 지원한다. 셰이더는 디코딩된 출력을 swizzled texture로 처리해야 한다.[15]
2D 블록 풋프린트와 비트레이트
ASTC 텍스처는 128비트의 고정 블록 크기를 사용하여 압축되지만, 4×4 텍셀에서 12×12 텍셀에 이르는 가변 블록 풋프린트를 사용한다. 따라서 사용 가능한 비트레이트는 텍셀당 8비트에서 0.89비트까지 미세한 단계로 변화한다.
위 표에서 "증가율" 열은 다음으로 작은 비트레이트에 비해 이 비트레이트를 사용하여 텍스처를 저장하는 데 필요한 추가 저장 공간을 보여준다. 블록 풋프린트는 너비 × 높이로 표시된다.
Remove ads
3D 블록 풋프린트와 비트레이트
ASTC 3D 텍스처는 2D와 마찬가지로 128비트의 고정 블록 크기를 사용하여 압축되지만, 3×3×3 텍셀에서 6×6×6 텍셀에 이르는 가변 블록 풋프린트를 사용한다. 따라서 사용 가능한 비트레이트는 텍셀당 4.74비트에서 0.59비트까지 미세한 단계로 변화한다.
블록 풋프린트는 너비 × 높이 × 깊이로 표시된다.
유니버설 ASTC
UASTC(Universal ASTC)는 Binomial이 지정한 ASTC의 하위 집합이다. 이 형식은 자사의 Basis Universal "초압축" GPU 텍스처 형식에 사용되며, UASTC 및 ETC1S와 같은 압축된 텍스처 형식에 추가 압축을 더하고 UASTC/ETC1S에서 GPU에서 직접 사용할 수 있는 압축된 텍스처 형식으로 효율적인 변환을 허용한다.[16] UASTC는 Basis Universal의 일부로 KTX(Khronos Texture) 파일 형식의 일부이다.[17]
같이 보기
- 3Dc
각주
외부 링크
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads