본문 바로가기
자료는 자료지/외부에서 퍼온자료

ASTC_User_Guide 번역 4

by 대마왕J 2025. 12. 14.

 

6. ASTC의 이점 (ASTC benefits)

ASTC는 기존 텍스처 압축 방식들에 비해 여러 가지 장점을 제공합니다. 이 가이드의 이번 섹션에서는 이러한 장점들을 살펴보겠습니다.

6.1 적응형 압축 (Adaptive compression)

ASTC라는 약어의 첫 단어는 **'Adaptive(적응형)'**이며, 이 가이드를 읽고 나면 그 이유가 명확해질 것입니다. 각 블록은 항상 128비트의 저장 공간으로 압축되지만, 개발자는 매우 다양한 텍셀(texel) 블록 크기 중에서 선택할 수 있습니다. 압축기는 이 128비트를 어떻게 사용할지 결정하는 데 있어 엄청난 자유도를 가집니다.

압축기는 최상의 이미지 품질을 얻기 위해 블록 단위로 **색상(colors)**과 **가중치(weights)**에 할당되는 비트 수를 조절(trade-off)할 수 있습니다.

색상에 할당되는 비트 수에 영향을 주는 요소:

  • 파티션(partitions) 수
  • 엔드포인트 모드(endpoint mode)
  • 저장된 양자화 레벨(quantization level)

가중치에 할당되는 비트 수에 영향을 주는 요소:

  • 블록당 가중치 수
  • 듀얼 플레인(dual-plane) 사용 여부
  • 저장된 양자화 레벨

6.2 지원 포맷의 범위 (Range of supported formats)

ASTC가 사용하는 압축 방식은 지원되는 모든 블록 크기에 걸쳐, 유연한 채널 수를 가진 임의의 부동 소수점 숫자 시퀀스를 효과적으로 압축합니다. 압축 방식 내에는 색상 엔드포인트 모드 선택 외에는 진정한 의미의 '색상 포맷'이라는 개념이 없습니다. 다만, 합리적인 압축기라면 효율적인 상태 공간 탐색을 위해 포맷별 휴리스틱(heuristics)을 사용할 것입니다.

직교 인코딩(orthogonal encoding) 설계 (압축률과 색상/화질 설정이 서로 묶여있지 않고 분리되어 독립적으로 조합될 수 있는 구조를 의미합니다) 를 통해 ASTC는 '블록 크기 표'에 나온 것처럼 광범위한 비트레이트에 걸쳐 우리가 원하는 포맷 매트릭스를 완벽하게 커버할 수 있습니다.

이렇게 지원되는 포맷과 비트레이트의 범위가 넓다는 것은 ASTC가 거의 모든 에셋을 어느 정도 압축할 수 있음을 의미합니다. 여러분은 포맷의 제약보다는 품질 요구 사항에 따라 적절한 비트레이트를 선택할 수 있습니다.

6.3 이미지 품질 (Image quality)

ASTC가 제공하는 높은 수준의 유연성이 이미지 품질의 저하를 의미하지는 않습니다. 오히려, ASTC 압축기는 이미지 품질을 향상시키지 않는 곳에 비트를 낭비하지 않아도 됩니다. 이는 BISE 인코딩을 통한 높은 패킹 효율성과 블록 단위로 인코딩 공간을 사용할 위치를 동적으로 선택할 수 있는 능력 덕분에 가능합니다.

이러한 동적 압축 효율성은 ASTC가 훨씬 더 넓은 범위의 옵션을 처리함에도 불구하고, 이전 텍스처 포맷에 비해 이미지 품질을 크게 향상시키는 결과를 낳습니다. 이전 포맷들과의 비교 결과는 다음과 같습니다:

  • 2 bpt의 ASTC는 2 bpt의 PVRTC보다 ~2.0dB 더 뛰어납니다. (데시벨은 " 원본 신호 대 잡음(노이즈)의 비율" 이라고 생각하면 됩니다. 
  • 3.56 bpt의 ASTC는 4 bpt의 PVRTC 및 BC1보다 ~1.5dB, ETC2보다는 ~0.7dB 더 뛰어납니다(10% 불리한 비트레이트 조건임에도 불구하고).
  • LDR 포맷용 8 bpt ASTC는 8 bpt의 BC7과 품질이 비슷합니다.
  • HDR 포맷용 8 bpt ASTC는 8 bpt의 BC6H와 품질이 비슷합니다.

이 데이터에 대한 더 자세한 정보는 'ASTC: The Future of Texture Compression'을 참조하십시오.

참고: 0.25dB 정도의 작은 차이도 인간의 눈으로 식별 가능합니다. dB는 로그 스케일을 사용하므로, 이러한 결과는 상당한 이미지 품질 향상을 의미한다는 점을 기억하십시오.

6.4 3D 압축 (3D compression)

ASTC의 기반이 되는 기술들은 별도의 대규모 압축 해제 하드웨어 없이도 볼륨 텍스처 데이터(volumetric texture data) 압축으로 일반화될 수 있습니다.

ASTC는 선택적으로 3D 텍스처 압축을 지원하는데, 이는 이전의 어떤 포맷에서도 찾아볼 수 없는 고유한 기능입니다. 지원되는 비트레이트는 아래 표와 같습니다:

표 6-1 ASTC 3D 블록 크기

 

 

7. ASTC 압축 도구 (ASTC compression tools)

개발자가 텍스처 이미지를 ASTC 포맷으로 압축하는 것을 돕기 위해 여러 가지 도구를 사용할 수 있습니다.

이러한 도구들은 다음과 같습니다:

  • Arm ASTC Encoder
  • Arm Mali Texture Compression Tool
  • Intel Fast ISPC Texture Compressor
  • AMD Compressonator

7.1 Arm ASTC Encoder

Arm ASTC Encoder(astcenc)는 이미지를 ASTC 포맷으로 압축하거나 압축을 해제하기 위한 커맨드 라인(명령줄) 도구입니다.

Arm ASTC Encoder는 다음 포맷들을 ASTC 포맷 출력 이미지로 압축할 수 있도록 지원합니다:

  • LDR (Low Dynamic Range) 이미지 포맷: BMP, JPEG, PNG, TGA
  • HDR (High Dynamic Range) 이미지 포맷: EXR, HDR
  • DDS 및 KTX 컨테이너 포맷: 단, 해당 포맷 기능의 일부만 지원됩니다.

astcenc 애플리케이션은 사용 가능한 모든 커맨드 라인 인수(arguments)의 목록을 제공합니다. 아래 코드와 같이 -help 옵션을 사용하면 사용법 및 사용 가능한 모든 옵션에 대한 상세한 도움말 정보를 볼 수 있습니다.

astcenc - help

7.1.1 기본 명령어 (Basic commands)

<input> 파일을 압축하여 그 결과를 <output> 텍스처 파일로 저장하려면 다음 명령어를 실행하십시오:

astcenc -d <input> <output> [options]

특정 옵션으로 압축했을 때 텍스처가 어떻게 보일지 확인하고 싶다면, 다음 명령어를 사용하여 입력 파일을 압축한 뒤 즉시 압축 해제해 볼 수 있습니다:

astcenc -t <input> <output> <rate> [options]

-t 옵션은 주어진 옵션으로 파일을 압축한 다음, 즉시 출력 파일로 압축을 해제합니다. 중간 단계의 압축된 이미지는 저장되지 않으며, 입력 및 출력 파일은 모두 압축이 풀린 파일 포맷 상태가 됩니다.

7.1.2 레이트 (Rate)

<rate>는 블록 크기를 결정하는 데 사용됩니다. 이 인수는 두 가지 방법 중 하나로 지정할 수 있습니다:

비트레이트 사용: 십진수를 사용하여 필요한 비트레이트(bitrate)를 지정합니다. 코덱은 지정된 비트레이트와 최대한 일치하는 블록 크기를 선택합니다. 비트레이트는 반드시 소수점 이하 한 자리를 포함해야 합니다. 예:

astcenc -c input.png output.astc 0.8 -fast

블록 크기 사용: X, Y (3D 텍스처의 경우 Z) 축을 따라 사용할 블록의 치수(dimensions)를 지정합니다. 치수는 공백 없이 문자 x로 구분합니다. 예:

astcenc -c input.png output.astc 8x8 -fast

7.1.3 옵션 (Options)

명령어 구문에 명시된 [options]는 astcenc 도구의 작동을 추가로 제어할 수 있게 해줍니다. 가장 중요한 옵션들은 다음과 같습니다.

  • 가장 유용한 인수는 품질 프리셋입니다: -veryfast, -fast, -medium, -thorough, 그리고 -exhaustive.
    • -veryfast 옵션은 거의 즉각적으로 처리되지만, 입력 이미지의 일부 소규모 집합에 대해서만 좋은 결과를 보여줍니다.
    • 반대로, -exhaustive 품질 레벨은 모든 블록에 대해 가능한 모든 바운딩 패턴 조합을 시도합니다. 이 옵션은 시간이 훨씬 오래 걸리지만, -thorough 옵션으로 압축한 파일과 비교했을 때 시각적인 차이는 거의 없는 경우가 많습니다.
  • 다양한 압축 품질 팩터를 설정할 수 있는 여러 옵션이 존재합니다:
    • -plimit: 시도할 블록 파티션 패턴의 수를 지정합니다.
    • -dblimit: 블록의 신호 대 잡음 레벨(dB로 측정됨)이 지정된 제한에 도달하면 해당 블록에 대한 압축 작업을 중단합니다.
    • -maxiters: 색상 및 가중치(weights)에 대한 최대 정제(refinement) 반복 횟수를 지정합니다.

사용 가능한 모든 옵션을 보려면 다음과 같이 -help 옵션을 사용하십시오.

astcenc -help

7.1.4 HDR

ASTC는 HDR 이미지 포맷을 지원합니다. HDR 이미지 포맷을 사용하는 데 있어 코드상 추가적인 노력은 필요하지 않습니다. HDR 입력 이미지를 압축하려면 다음과 같이 표준 명령어 형식을 사용하십시오.

astcenc -c <input> <output> <rate> [options]

기본적으로 인코더는 입력 이미지가 HDR 포맷이더라도 출력 인코딩 시 HDR 인코딩을 사용하지 않습니다. HDR 인코딩 사용을 활성화하려면 다음 옵션 중 하나를 사용해야 합니다.

  • -forcehdr_rgb: 블록 단위로 적절하게 HDR 또는 LDR 인코딩을 사용합니다. 알파 채널이 존재하는 경우, 알파 채널은 항상 LDR로 인코딩됩니다.
  • -forcehdr_rgba: 블록 단위로 적절하게 HDR 또는 LDR을 사용합니다. (역자 주: RGB와 알파 채널 모두 상황에 따라 HDR/LDR 적용)

7.1.5 3D 텍스처 (3D textures)

astcenc 애플리케이션은 블록 레벨에서 3D 텍스처를 지원합니다.
3D 텍스처를 인코딩하려면 다음 구문이 필요합니다:

-array <size>

-array 인수가 지정되면, 입력 파일 이름은 접두사(prefix)로 해석됩니다. 실제 입력 파일들은 지정된 접두사에 _0, _1 등이 붙어 <size>-1까지 이어지는 이름이 됩니다.
예를 들어, 다음 명령어는 slice_0.png, slice_1.png, slice_2.png, slice_3.png라는 이름의 파일들을 로드합니다.

astcenc -c slice.png slice.astc 4x4x4 -array 4 -medium

 

7.2 Arm Mali Texture Compression Tool

Arm Mali Texture Compression Tool은 ASTC 및 ETC 포맷을 지원하는 GUI 애플리케이션입니다. 이 도구를 사용하면 텍스처 이미지를 미리 보고 분석하여 압축 및 압축 해제 후의 이미지 품질을 평가할 수 있습니다. 다음 이미지는 Arm Mali Texture Compression Tool을 보여줍니다.

다음 이미지는 Compression options(압축 옵션) 대화 상자를 보여줍니다. 이 대화 상자에서는 텍스처 용도에 따라 품질 프리셋(Compression mode)과 기타 설정을 선택할 수 있습니다.

 

7.3 Intel Fast ISPC Texture Compressor

인텔은 ISPC 컴파일러를 사용하여 상당한 성능 향상을 제공하는 도구인 Fast ISPC Texture Compressor를 제작합니다. Fast ISPC Texture Compressor는 오픈 소스 라이브러리입니다. 이 도구를 빌드하려면 ISPC 컴파일러를 다운로드해야 합니다.

Fast ISPC Texture Compressor는 여러 텍스처 압축 포맷을 지원하며 압축 시간이 빠릅니다. 하지만 ASTC 지원은 매우 기본적입니다. 최대 8x8 블록 크기의 2D LDR 프로파일로 제한되며, 품질에 대한 세밀한 제어 기능이 없습니다.

역자 주: 여기서 '2D LDR로 제한된다'는 의미는, 앞서 7.1.4와 7.1.5 섹션에서 다루었던 HDR 텍스처나 3D 텍스처 기능은 이 인텔 도구에서는 사용할 수 없다는 뜻입니다.

7.4 AMD Compressonator

AMD Compressonator는 SDK, 커맨드 라인, 그리고 GUI 도구로 구성된 세트입니다. Compressonator는 많은 텍스처 압축 포맷을 지원하며 일괄 처리(batch processing) 및 텍스처 미리보기와 같은 유용한 기능을 제공합니다.
하지만 ASTC 지원은 제한적이며, 품질 제어 기능이 거의 없습니다. 압축 속도 또한 다른 도구만큼 빠르지 않습니다.
다음 이미지는 AMD Compressonator를 보여줍니다.

 

반응형

'자료는 자료지 > 외부에서 퍼온자료' 카테고리의 다른 글

ASTC_User_Guide 번역 6  (0) 2025.12.15
ASTC_User_Guide 번역 5  (0) 2025.12.14
ASTC_User_Guide 번역 3  (0) 2025.12.09
[번역]양식화된 잔디 렌더링  (0) 2025.12.09
ASTC_User_Guide 번역 2  (0) 2025.12.05

댓글