본문 바로가기
장난감/GIF Maker

GIF Maker 4 - avif (with pillow)

by Mr. Green 2025. 3. 23.

 안녕하세요.

 우연히 이미지 포멧에 관한 걸 찾았다가, pillow로도 만들 수 있다는 걸 알고 오랜만에 좀 만들어봤습니다.

차례

0. 이미지 형식

1. Pillow

 

 0. 이미지 형식

 이미지 형식은 여러가지 있는데, 대부분은 꽤 오래됐습니다.

 JPG(Joint Photographic Experts Groups) 는 밈이 될 정도로 대표적인 이미지 형식인데, 매우 오래되고(1986년 출시, 1992년 채택) 디지털 풍화 등 단점이 많아 현재 대체할 것들이 많이 나왔습니다. 여담으로, 원래 이름은 JPEG인데, 과거 DOS에서는 확장자를 세 글자까지 밖에 쓸 수 없어, jpg, jpe 등으로 사용되었다가, window 95 때부터 확장자를 최대 255자까지 사용할 수 있게 되자, jpeg, jfif 등등이 등장했습니다. 특히 jpg, jpeg, jpe, jfif는 사실상 같은 형식이라 그냥 파일 이름 변경으로 바꿔도 크게 문제되지 않습니다.

 GIF(Graphics Interchange Format)은 네트워크 상에서 그래픽을 압축하여 빠르게 전송하려는 목적으로 개발되었는데, 현재는 움직이는 이미지 파일, 흔히 말하는 움짤의 대명사가 되었습니다. 출시 자체는 JPG보다 먼저(1987) 되었을 정도로 매우 오래되었는데, PNG가 나오면서 한 번 밀리고, adobe flash(2005)가 나오면서 아얘 사라질 뻔했다가, adobe flash가 랜섬웨어 문제로 퇴출되고 나서는 움직이는 이미지 파일, 흔히 말하는 "움짤"로 널리 사용되면서 움짤의 대명사가 되었습니다. 단점은, "압축하여 빠르게"라는 말이 무색하게 용량이 꽤 커지고, 색이 빠져 이미지 퀄리티가 떨어진다는 것입니다.

 PNG(Portable Network Graphics)는 무손실 압축 포멧 방식으로, 256색에 한정된 gif의 단점을 극복하려 출시되었습니다. gif의 핵심 알고리즘이 특허권 분쟁에 휘말리면서, gif의 단점을 극복하기 위한 대체품들이 만들어졌고, 그런 가운데 PNG가 1996년 출시되었습니다. 알파 채널을 따로 넣어 gif처럼 투명한 배경까지 표현 가능하며, 32비트의 컬러를 지원해 더 좋은 퀄리티의 이미지 표현이 가능해졌습니다. 단점은, 용량이 커졌다는 것이죠.

 webP는 2010년 구글이 만든 형식으로, 구글의 웹 점유율이 높아지고 트래픽이 많아져 설비를 관리하기 어려워짐에 따라, 훨씬 적은 용량으로 높은 퀄리티를 유지할 수 있게 만들어졌습니다. 가장 큰 특징은, 투명한 배경도 표현할 수 있고, 색 표현 범위가 무제한이며, 움짤까지 표현할 수 있어, JPG/PNG/GIF를 모두 대체할 수 있습니다. 다만, 상대적으로 최근에 나온나온 것이고, 구글이라는 기업에서 출시된 거라 (무료로 나온거긴 하지만) 아직 지원하지 않는 곳이 좀 있습니다.

 HEIF(High Efficiency Image Format)은 MPEG에서 HEVC 코덱으로 개발한 형식으로, 이미지 컨테이너, 즉 하나의 이미지 파일에 여러장의 사진을 담을 수 있는 데이터 파일에 가까운 형식입니다. HDR을 지원하며, 아이폰 유저들에게 친숙하다고 합니다.

 AVIF(AV1-based Image Format)은 요즘 핫한 AV1 코덱을 이용한 이미지 형식으로, 움짤/무손실/사진 등 전통적인 이미지 형식을 대체하기 위해 출시되었습니다. 특히 매우 낮은 용량으로 높은 퀄리티를 유지하는 동영상 포멧인 AV1을 사용하여 그 특징을 그대로 수용하고 있습니다. 단점은 2019년에 출시되어 아직 지원되는 플랫폼이 많이 없습니다.

  JPG GIF PNG webP HEIF AVIF
특징 손실 압축 방식 움짤 가능 무손실 구글이 출시 이미지 컨테이너 AV1 코덱 사용
움짤 X O Animated PNG O O O
장점 ·높은 호환성 ·높은 호환성
·투명한 배경
·높은 호환성
·투명한 배경
·높은 색 표현
·나름 높은 호환성
·낮은 용량
·투명한 배경
·높은 색 표현
·손실, 무손실 가능
·HDR 지원
·높은 압축률
·애플에서 채택
·매우 낮은 용량
·퀄리티 유지
단점 ·오래됨
·디지털 풍화
·오래됨
·색 표현의 한계
·큰 용량
·큰 용량
·움짤은 APNG로만
·움짤 호환은 저조 ·호환성 저조 ·호환성 저조

 

 

 1. Pillow

 저번에 만든 건 gif 형식으로, 기껏 만들긴 했지만 원본 이미지의 색이 빠지는 결과로 나와서, 여러 filter를 써서 보완해보려고 했었습니다. 하지만 이번엔 webp나 avif 형식으로 만들어보려고 합니다.

from PIL import Image

...

im = images[0]
im.save('./output/{}.webp'.format('output'), "webp", save_all=True, append_images=images[1:], loop=0xff, duration=durate)

 

 먼저 webp는, 그냥 확장자 부분를 webp로 바꿔주면 됩니다.

 

 avif로 만들려면 필요한 게 있습니다.

 pillow에서 기본으로 제공하지 않아 플러그인을 추가해줘야 합니다.

pip install pillow-avif-plugin

 

 마찬가지로 확장자 부분만 바꿔주면 됩니다.

from PIL import Image

...

im = images[0]
im.save('./output/{}.avif'.format('output'), "avif", save_all=True, append_images=images[1:], loop=0xff, duration=durate)

 

 다음은 결과입니다.

 

 

 위가 avif, 아래가 gif인데, 티스토리에서 avif를 지원 안해서 영상으로 올렸습니다. 또 제가 쓰는 뷰어인 꿀뷰에서도 avif를 지원해주지 않아 html로 대충 만들어서 비교해야 했습니다.

 아무 옵션 없이 움짤만 만들었는데, 확연히 용량과 퀄리티 차이가 납니다.

 어서 빨리 지원 정책이 확대되었으면 좋겠네요.

 감사합니당.

'장난감 > GIF Maker' 카테고리의 다른 글

GIF Maker 3 - gif with pillow  (0) 2023.01.21
GIF Maker 2 - GUI  (0) 2022.08.15
GIF Maker 1 - gif 만들기 with imageio  (0) 2022.08.14
GIF Maker - GIF를 만들어보자 + 3.0 업데이트!  (0) 2022.08.14