처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.03.31 22

GPU가 이미지를 압축하는 방법: 하드웨어 텍스처 압축의 세계

Hacker News 원문 보기
GPU가 이미지를 압축하는 방법: 하드웨어 텍스처 압축의 세계

우리가 모르고 지나친 압축의 세계

이미지 압축이라고 하면 보통 JPEG이나 PNG를 떠올리잖아요. 그런데 GPU 안에서는 전혀 다른 방식의 이미지 압축이 돌아가고 있다는 거, 알고 계셨나요? 하드웨어 텍스처 압축(Hardware Image Compression)은 게임이나 3D 그래픽에서 텍스처를 GPU 메모리에 올릴 때 쓰이는 압축 방식인데요, JPEG처럼 CPU에서 일일이 디코딩하는 게 아니라 GPU가 실시간으로 압축된 상태 그대로 읽어서 렌더링할 수 있다는 게 핵심이에요.

최근 Ignacio Castaño가 자신의 블로그에 하드웨어 이미지 압축의 역사와 기술적 원리를 상세하게 정리한 글을 올렸는데요, 이 분야를 이해하는 데 정말 좋은 레퍼런스가 될 만한 내용이라 소개해 드릴게요.

하드웨어 텍스처 압축이 뭐냐면

일반적인 이미지 압축(JPEG, PNG 등)은 파일 크기를 줄이는 데 초점을 맞추거든요. 그래서 이미지를 화면에 보여주려면 먼저 압축을 풀어야 해요. CPU가 디코딩 작업을 하고, 그 결과를 GPU에 넘기는 거죠.

하드웨어 텍스처 압축은 접근이 완전히 달라요. 압축된 상태 그대로 GPU 메모리에 올려두고, GPU가 텍스처를 샘플링할 때 그 자리에서 바로 디코딩하는 방식이에요. 이걸 "랜덤 액세스 압축"이라고 부르는데, 이미지의 어떤 부분이든 즉시 접근해서 읽을 수 있어야 하거든요. JPEG처럼 앞부분부터 순서대로 풀어야 하는 방식과는 근본적으로 다른 거예요.

비유하자면, JPEG은 책을 한 번 통째로 번역해서 읽는 거고, 하드웨어 텍스처 압축은 외국어 책을 펼친 페이지만 그때그때 즉석 번역하면서 읽는 느낌이에요. 대신 한 페이지를 번역하는 속도가 엄청 빨라야 하겠죠.

주요 포맷들과 기술적 차이

이 분야에서 오래된 포맷으로 S3TC(DXT)가 있어요. 1998년에 S3 Graphics가 만든 건데, 4×4 픽셀 블록을 64비트로 압축해요. 원래 픽셀당 32비트라면 512비트가 필요할 텐데, 이걸 64비트로 줄이니까 8:1 압축률인 셈이죠. 방법은 간단한데, 블록 안에서 대표 색상 2개를 정하고 나머지 픽셀은 그 두 색상 사이를 보간해서 표현하는 거예요.

이후에 나온 BC6H와 BC7은 HDR(High Dynamic Range)이나 더 높은 품질이 필요한 경우를 위한 포맷이에요. 모바일 쪽에서는 ETC(Ericsson Texture Compression)와 ASTC(Adaptive Scalable Texture Compression)가 주류인데요, 특히 ASTC는 블록 크기를 4×4부터 12×12까지 유연하게 선택할 수 있어서 품질과 압축률 사이의 트레이드오프를 세밀하게 조절할 수 있다는 장점이 있어요.

글에서 특히 흥미로운 부분은 이런 포맷들이 "고정 비트레이트"를 유지한다는 점이에요. 모든 블록이 동일한 크기를 가져야 GPU가 특정 픽셀 좌표로부터 메모리 주소를 바로 계산할 수 있거든요. 가변 비트레이트를 쓰면 압축률은 올라가겠지만, 랜덤 액세스가 불가능해져서 GPU 하드웨어 설계가 극도로 복잡해지는 거죠.

최신 트렌드: Neural Texture Compression

최근에는 뉴럴 네트워크를 활용한 텍스처 압축 연구도 활발해요. NVIDIA 같은 회사에서 Neural Texture Compression 논문을 내놓았는데, 작은 뉴럴 네트워크가 텍스처를 디코딩하는 방식이에요. 기존 블록 압축보다 훨씬 높은 압축률에서도 품질 저하가 적다는 결과를 보여주고 있죠.

다만 아직은 실시간 게임 같은 환경에서 쓰기엔 디코딩 비용이 크고, 하드웨어 지원도 없는 상태라서 연구 단계에 가까워요. 하지만 GPU 아키텍처가 점점 뉴럴 연산에 최적화되고 있으니, 몇 년 안에 실용적인 포맷이 나올 가능성도 충분해요.

한국 개발자에게 주는 시사점

게임 개발이나 3D 그래픽을 다루는 분들에게는 텍스처 압축 포맷 선택이 성능에 직접적인 영향을 미쳐요. 특히 모바일 게임 개발이 활발한 한국 시장에서 ASTC 포맷의 활용은 메모리 절약과 로딩 속도 개선에 큰 도움이 될 수 있어요. Unity나 Unreal 엔진에서 텍스처 임포트 설정을 할 때 이 포맷들의 차이를 이해하고 있으면, 타겟 디바이스에 맞는 최적의 설정을 잡는 데 큰 도움이 되거든요.

웹 개발자 입장에서도 WebGPU가 본격적으로 보급되면서 브라우저에서 GPU 텍스처를 직접 다룰 일이 생기고 있으니, 이런 기본 개념을 알아두면 좋아요.

정리

GPU 하드웨어 텍스처 압축은 "랜덤 액세스가 가능한 고정 비트레이트 압축"이라는 독특한 제약 조건 아래에서 발전해 온 기술이에요. 여러분이 다루는 프로젝트에서 텍스처 포맷을 선택할 때, 단순히 "작으면 좋다"가 아니라 GPU가 어떻게 읽는지를 이해하고 결정해 보면 어떨까요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.