4K 이미지 관리하는 서비스와 이미지를 기반으로 AI추론하는 서비스가 올라가 있는 서버에는 스토리지 용량은 한정적이다.
서비스를 개발하면서 운영을 하다보면 제한된 스토리지 내에서 이미지를 최적화 하여 스토리지 용량을 확보하는 방법을 정리해보았다.
압축
압축이란 데이터 크기를 줄여서 저장공간을 확보 하기 위한 기술이다. 압축에는 손실압축(Lossy compression)과 비손실 압축(Lossless compression) 방법이 있다.
손실압축
- 데이터에서 인간이 지각하기 힘든 범위의 데이터를 버리고 압축하는 방법을 사용하는 포맷, 압축을 하는 과정에서 원본 데이터가 손실된다.
정지영상 포맷 종류
- JPEG(jpg)
- JPEG 2000(손실선택가능)
- WebP(손실선택가능)
- HEIF(손실선택가능)
- BPG(손실선택가능)
- AVIF(손실선택가능)
용량 대비 화질 효울은 JPEG 2000 < JPEG < WebP < HEIF ≒ BPG < AVIF 순이다.
나무위키
무손실압축
정지영상 포맷 종류
- PCX
- GIF
- PNG
- WebP
- Tiff
- RAW
압축 알고리즘
- Run-Length Encoding
- 동일한 문자가 이어서 반복되는 경우 그것을 문자와 갯수의 쌍으로 치환하는 방법
- 허프만 부호화
- 데이터 문자의 등장 빈도에 따라서 다른 길이의 부호를 사용하는 알고리즘
- LZ 77, 78
- 사전방식(Dictionary methods)을 사용하여 반복적으로 나오는 문자열을 압축하는 알고리즘
대표적인 포맷 특징
JPG, JPEG(Joint Photographic Experts Group) - Lossy / Direct
jpg는 손실 압축방법의 대표적인 예이다.
jpg는 데이터가 손실되지만 용량이 작아 웹에서 널리 쓰인다. 하지만 JPG는 RGB색상 공간을 사용하기때문에 투명도(Apaque)를 사용할 수 없다.
장점 : 빠른 압축속도.
단점 : 투명도 사용 불가능, 손실 압축.
PNG(Portable Network Graphics) - Lossless / Indexed(PNG8), Lossless / Direct(PNG-24)
png는 무손실 압축방법의 대표적인 예이다.
무손실 압축으로 이미지 디테일 손실이 전혀없고 고품질 이미지를 생성하지만 파일 크기는 상대적으로 다른 포맷보다 커진다.
장점 : 투명도 사용 가능, 비손실 압축.
단점 : jpg에 비해 상대적으로 느린 압축속도, 조금 더 큰 용량.
webP
- WebP(web + Picture)합성어로 웹에서 사용되는 기존의 GIF, JPG, PNG 이미지 포맷을 대치하기 위해서 개발 되었으며 손실압축과 무손실 압축 둘다 지원한다.
- Google이 2010년에 발표한 새로운 이미지 포맷으로 웹 이미지에 대한 뛰어난 소실/무손실 압축을 제공하는 최신 이미지 형식이다.
- WebP를 사용하면 JPG(손실압축) 기존 대비 25~34% PNG(무손실) 기존 대비 26% 작다
JPG VS WebP 비교해보자
포맷 | 압축률 | 파일 건수 | 파일 용량 | 메타데이터 존재 |
---|
JPG | 100 | 54건 | 286.7mb | ㅇ |
WebP | 100 | 54건 | 304.4mb | x |
WebP | 80 | 54건 | 118.9mb | x |
WebP | 50 | 54건 | 43.5mb | x |