확장 가능한 적응형 텍스처 압축

Adaptive scalable texture compression

적응형 확장형 텍스처 압축(ASTC)은 ARM Ltd.의 Jørn Nystad et al.에서 개발한 손실형 블록 기반 텍스처 압축 알고리즘이다.[1]

ASTC의 전체 세부 사항은 Olson 등이 작성한 논문에서 High Performance Graphics 2012 컨퍼런스에서 처음으로 공개되었다."Adaptive 확장 가능한 텍스처 압축"[2]이라는 제목.

ASTC는 2012년 8월 6일 크로노스 그룹에 의해 OpenGLOpenGL ES 모두를 위한 공식 연장으로 채택되었다.[3]

하드웨어 지원

공급업체/제품 프로필 세대
애플 GPU LDR만 해당 A8에서 A12까지[4]
가득찬 A13년[4] 이후
말리 가득찬 Mali-T620/T720/T820[5] 이후
상상력 파워VR 가득찬 시리즈6 이후XT[6]
인텔 GPU 가득찬[7] 스카이레이크[8] 이후
엔비디아 테그라 ? 케플러[9] 이후
퀄컴 아드레노 LDR만[better source needed] 해당 4xx 시리즈[10] 이후

Linux에서는 2018년부터 모든 갈륨 3D 드라이버가 소프트웨어 폴백을 갖고 있어 AMD Radeon GPU에서 ASTC를 사용할 수 있다.[11]

개요

압축하기 전의 이미지 예
예제 영상의 세부 정보, 8, 3.56 및 2비트/픽셀에서 압축 후

압축 방법은 컬러 셀 압축의 진화로, 촘촘히 간격을 두고 있는 수많은 부분 비트 전송률, 다중 색상 형식, 고다이내믹 레인지(HDR) 텍스처 지원, 진정한 3D 텍스처 지원 등이 있다.

ASTC에 대해 언급된 주요 설계 목표는 콘텐츠 개발자들이 손실 압축 계획에 내재된 공간/품질 절충에 대한 더 나은 제어권을 가질 수 있도록 하는 것이다.ASTC의 경우 인접 비트 전송률 간의 비율이 25%로, 주어진 질감의 품질을 높이는 데 비용이 적게 든다.

서로 다른 자산을 인코딩하려면 종종 다른 색상 형식이 필요하다.ASTC는 휘도 전용, 휘도-알파, RGB, RGBA 및 표면 표준에 최적화된 모드를 포함하여 광범위한 입력 형식을 선택할 수 있다.따라서 설계자는 여러 가지 다른 압축 체계를 지원하지 않고도 최적의 형식을 선택할 수 있다.

비트율과 컬러 포맷의 선택은 서로 구속하지 않기 때문에 많은 조합 중에서 선택할 수 있다.

이러한 유연성에도 불구하고 ASTC는 텍셀당 2비트와 3.56비트로 측정했을 때 PVRTC, S3TC, ETC2보다 더 높은 피크 신호 대 잡음 비를 달성한다.[2]HDR 텍스처의 경우 텍셀당 8비트에서 BC6H에 버금가는 결과를 산출한다.[2]

지원되는 색상 형식

인코딩 형식 설명
L 휘도 전용
LA 투명도가 있는 휘도
L+A 상관없는 투명성을 가진 휘도
X+Y 표면 정규
RGB 풀 컬러
XY+Z 상관 관계가 없는 Z가 있는 표면 정규 분포
RGBA 투명도가 있는 풀 컬러
RGB+A 상관없는 투명성을 가진 풀 컬러

이들 각각은 낮음 또는 높음 동적 범위로 인코딩될 수 있다.인코더는 이미지의 각 블록에 대해 독립적으로 색상 형식을 선택한다.

2D 블록 설치 공간 및 비트 전송률

ASTC 텍스처는 128비트의 고정 블록 크기를 사용하여 압축되지만, 4×4 텍셀에서 12×12 텍셀까지의 가변 블록 공간을 가지고 있다.따라서 사용 가능한 비트 전송률은 텍셀당 8비트부터 텍셀당 0.89비트까지 다양하며, 그 사이에는 미세한 단계가 있다.

블록 설치 공간 비트 레이트 증분
4×4 8.00 25%
5×4 6.40 25%
5×5 5.12 20%
6×5 4.27 20%
6×6 3.56 14%
8×5 3.20 20%
8×6 2.67 5%
10×5 2.56 20%
10×6 2.13 7%
8×8 2.00 25%
10×8 1.60 25%
10×10 1.28 20%
12×10 1.07 20%
12×12 0.89

위의 표에서 "증가" 열은 다음으로 작은 것과 비교하여 이 비트 전송률을 사용하여 텍스처를 저장하는 데 필요한 추가 저장 공간을 보여준다.블록 발자국은 너비 × 높이로 표시된다.

3D 블록 설치 공간 및 비트 전송률

ASTC 3D 텍스처는 2D와 마찬가지로 128비트의 고정 블록 크기를 사용하여 압축되지만 3×3×3 텍셀에서 6×6×6 텍셀까지의 가변 블록 공간을 가지고 있다.따라서 사용 가능한 비트 전송률은 텍셀당 4.74비트에서 텍셀당 0.59비트까지 다양하며, 중간 단계도 미세하다.

블록 설치 공간 비트 레이트 증분
3×3×3 4.74 33%
4×3×3 3.56 33%
4×4×3 2.67 33%
4×4×4 2.00 25%
5×4×4 1.60 25%
5×5×4 1.28 25%
5×5×5 1.02 20%
6×5×5 0.85 20%
6×6×5 0.71 20%
6×6×6 0.59

블록 발자국은 폭 × 높이 × 깊이로 표시된다.

참고 항목

참조

  1. ^ "Adaptive Scalable Texture Compression (ASTC) technology developed by ARM® and AMD".
  2. ^ a b c "Adaptive Scalable Texture Compression" (PDF). HPG 2012. Retrieved 2012-06-27.
  3. ^ "Khronos Releases ATSC Next-Generation Texture Compression Specification". The Khronos Group Inc. 2012-08-06. Retrieved 2012-08-06.
  4. ^ a b "Metal Feature Set Tables" (PDF). Apple Inc. 2020-10-21. Retrieved 2021-08-31.
  5. ^ "Arm Mali GPU Datasheet" (PDF). Arm Limited. 2021. Retrieved 2021-08-31.
  6. ^ "Imagination's new generation PowerVR Series6XT architecture delivers up to 50% higher performance and advanced power management". Imagination Technologies. 2014-01-06. Retrieved 2021-08-21.
  7. ^ "Intel Skylake Adds ASTC Texture Compression, Open-Source Support Coming". Phoronix. 2015-05-20. Retrieved 2021-08-31.
  8. ^ "Graphics API Developer's Guide For 6th Generation Intel® Core™ Processors". Archived from the original on 2017-07-20.
  9. ^ "Vulkan API" (PDF).
  10. ^ "Qualcomm® Adreno™ OpenGL ES Developer Guide" (PDF). Qualcomm. 2015-05-01. Retrieved 2021-08-31.
  11. ^ https://lists.freedesktop.org/archives/mesa-dev/2018-July/200867.html

외부 링크