텍스처 압축

Texture compression

텍스처 압축텍스처 맵3D 컴퓨터 그래픽 렌더링 시스템에 저장하기 위해 고안된 특수한 형태의 이미지 압축이다.기존 이미지 압축 알고리즘과 달리 텍스처 압축 알고리즘은 랜덤 액세스가 가능하도록 최적화돼 있다.

트레이드오프

텍스처 압축에 관한 그들의 정석 논문에서,[1] Beeres, Agrawala 및 Chadha는 텍스처 압축을 다른 이미지 압축 기법과 구별하려는 경향이 있는 네 가지 특징을 열거한다.이러한 기능은 다음과 같다.

디코딩 속도
압축된 텍스처 데이터에서 직접 렌더링할 수 있는 것이 매우 바람직하므로 렌더링 성능에 영향을 주지 않기 위해서는 감압이 빨라야 한다.
랜덤 액세스
렌더러가 텍셀에 액세스하는 순서를 예측하기는 어렵기 때문에, 텍스처 압축 방식은 압축 해제된 텍스처 데이터에 대한 빠른 랜덤 액세스를 허용해야 한다.이는 JPEG 또는 런 길이 인코딩과 같이 더 잘 알려진 많은 이미지 압축 체계를 배제하는 경향이 있다.
압축률 및 시각적 품질
렌더링 시스템에서 손실 압축은 다른 사용 사례보다 더 견딜 수 있다.크런치와 같은 일부 텍스처 압축 라이브러리는 개발자가 비율 분산 최적화(RDO)와 같은 방법을 사용하여 압축률 대 시각적 품질을 유연하게 트레이드할 수 있도록 한다.[2]
인코딩 속도
텍스처 압축은 애플리케이션 작성 프로세스 중에 인코딩 프로세스가 한 번만 수행되는 경우가 많기 때문에 비대칭 인코딩/디코딩 속도에 더 내성이 있다.

위와 같이 대부분의 텍스처 압축 알고리즘은 소형 고정 크기 픽셀 블록을 코딩 비트의 소형 고정 크기 블록으로 정량화하는 일종의 고정 속도 손실 벡터 정량화를 수반하며, 때로는 추가적인 전처리 및 후처리 단계를 수반하기도 한다.블록 잘라내기 코딩은 이 알고리즘 계열의 매우 간단한 예다.

데이터 액세스 패턴이 잘 정의되어 있기 때문에 전체 그래픽 파이프라인의 일부로 렌더링하는 동안 텍스처 감압이 즉시 실행되어 그래픽 시스템 전체에서 전체적인 대역폭과 스토리지 요구를 줄일 수 있다.텍스처 맵뿐만 아니라 텍스처 압축은 범프 맵표면 일반 맵을 포함한 다른 종류의 렌더링 맵을 인코딩하는 데도 사용될 수 있다.텍스처 압축은 MIP 지도비등방성 필터링과 같은 다른 형태의 지도 처리와 함께 사용될 수 있다.

유용성

실제 텍스처 압축 시스템의 일부 예로는 S3 텍스처 압축(S3TC), PVRTC, 에릭슨 텍스처 압축(ETC) 및 적응형 확장형 텍스처 압축(ASTC)이 있다. 이는 현대 그래픽 처리 장치의 특수 기능 유닛에서 지원할 수 있다.

많은 비디오 액셀러레이터 카드와 모바일 GPU에 구현된 OpenGL과 OpenGL ES는 일반적으로 벤더 확장을 통해 여러 가지 일반적인 종류의 텍스처 압축을 지원할 수 있다.

다운로드나 디스크 크기를 줄이도록 설계된 텍스처 압축과는 달리 텍스처 압축을 적용하여 런타임 시 메모리 사용량을 줄일 수 있다.텍스처 데이터는 종종 모바일 애플리케이션에서 메모리 사용의 가장 큰 원천이다.

참고 항목

참조

  1. ^ Andrew Beers; Maneesh Agrawala; Navin Chaddha (1996), "Rendering from Compressed Textures", Computer Graphics, Proc. SIGGRAPH: 373–378
  2. ^ "crunch open source texture compression library". GitHub. Retrieved 2016-09-13.

외부 링크