파일 형식

GIF - 그래픽 교환 형식

GIF는 오래된 무손실 이미지 형식으로, 프레임당 256가지 색상으로 제한되지만, 여전히 이미지가 표시되는 어디에서나 재생되는 짧은 무음 애니메이션을 저장하는 가장 단순한 방법입니다.

.gif

GIF(Graphic Interchange Format)는 1980년대 후반 온라인 서비스인 CompuServe에서 만들어졌습니다. 속도가 느린 전화 접속 연결을 통해서도 그림이 전송되고, 다른 점이 많은 컴퓨터에서도 똑같이 보이도록 하기 위해서였습니다. 이후 나온 두 번째이자 마지막 개정판에서 투명도와 여러 프레임 기능이 추가되었고, 지금까지도 이 버전이 사용되고 있습니다. 수십 년이 지난 지금까지 GIF가 살아남은 이유는 단 하나입니다. 일반 이미지만 허용되는 곳에 짧고 소리 없는 루프 애니메이션을 넣는 가장 단순한 방법이기 때문입니다.

GIF가 이미지를 저장하는 방식

GIF는 무손실 형식이지만 제약이 큽니다. LZW라 불리는 압축 방식은 반복되는 픽셀 덩어리를 짧은 코드로 바꾸고, 원본과 똑같이 복원해 줍니다. 한계는 색상입니다. 각 프레임은 파일에 저장된 팔레트에서 선택한 최대 256가지 색상만 사용할 수 있습니다. 사진에는 그보다 훨씬 많은 색조가 있기 때문에, 사진을 GIF로 저장하면 인코더는 256가지만 고른 뒤 나머지는 근사값으로 표현해야 합니다. 보통 디더링, 즉 두 가지 색 점을 섞어 세 번째 색처럼 보이게 흩뿌리는 방식으로 처리합니다. 그래서 사진을 GIF로 저장하면 점무늬가 생기고 띠가 진 것처럼 보입니다.

투명도는 전부 아니면 전무입니다. 팔레트의 항목 하나만 투명으로 지정할 수 있어서, 각 픽셀은 완전히 투명하거나 완전히 불투명한 둘 중 하나입니다. 가장자리를 부드러운 반투명으로 만드는 방법이 없기 때문에, GIF 로고는 예상치 못한 배경 위에서 딱 잘린 테두리가 드러나는 경우가 많습니다.

애니메이션은 여러 이미지를 차례대로 저장한 것일 뿐입니다. 각 이미지에는 고유한 팔레트, 1/100초 단위의 지연 시간, 그리고 그 프레임을 표시한 뒤 어떻게 처리할지 알려 주는 삭제(disposal) 지시가 있습니다. 작은 추가 블록 하나가 재생을 몇 번 반복할지 뷰어에 알려 줍니다. 소리는 없습니다.

GIF가 포함하는 메타데이터

이 부분은 짧고, 답변은 꽤 특이합니다. GIF에는 메타데이터가 거의 없습니다. 메타데이터는 파일이 스스로에 대해 저장하는 설명 정보인데, GIF에는 이를 위한 공간이 거의 없습니다. 카메라 설정, 작성자, 날짜, 제목을 위한 필드도 없고, GPS 좌표를 저장할 곳도 없습니다. 사진에 그런 정보를 담는 표준인 EXIF와 IPTC는 GIF에 대해 정의된 적이 없습니다.

보고서가 보여 줄 수 있는 것은 대부분 기록(history)이 아니라 구조입니다.

  • 이미지의 가로·세로 크기, 색상 테이블의 크기, 실제로 사용된 색상 개수.
  • 프레임 개수, 각 프레임의 지연 시간과 삭제 방식, 루프 횟수.
  • 팔레트 항목 중 어떤 것이(있다면) 투명으로 지정되어 있는지.
  • 이미지가 인터레이스 방식인지 여부. 파일이 모두 로드되기 전에 대략적인 모습을 먼저 보여 주기 위해 쓰이던 예전 기법입니다.
  • 주석 블록(Comment block). GIF는 자유 형식의 텍스트 주석을 허용하며, 소프트웨어가 자신이름, 저작권 문구, 출처 주소 등을 여기에 기록하는 경우가 있습니다. 이름이 들어갈 수 있는 거의 유일한 위치입니다.
  • 애플리케이션 블록(Application block). 루프를 지정하는 데 쓰이는 블록 외에, Adobe는 GIF 안에 전체 XMP 메타데이터 패킷을 담을 수 있는 블록을 정의했습니다. 드물기는 하지만, 보고서에서 GIF의 XMP 정보를 보여 줄 수 있는 이유가 됩니다.

이 점은 양쪽으로 작용합니다. GIF에는 그런 정보를 넣을 곳이 없기 때문에, 위치 정보나 카메라 일련번호가 유출될 가능성은 낮습니다. 그렇다고 익명이 되는 것은 아닙니다. 사진이나 동영상을 기반으로 만든 애니메이션은 픽셀이 담고 있는 모든 내용을 그대로 보여 주고, 누군가 지우지 않는 한 주석 블록은 파일에 그대로 남아 있기 때문입니다.

GIF를 언제 사용해야 할까요

GIF는 일반 이미지처럼 동작해야 하는 짧은 루프 애니메이션에 사용하세요. 예를 들어 채팅 창, 포럼 게시글, 이메일 등입니다. 정지 이미지를 위해 GIF를 쓸 이유는 거의 없습니다. 같은 단순 그래픽이라면 PNG가 더 작고 전체 색상을 유지하며, 사진이라면 JPG가 훨씬 더 작습니다.

애니메이션을 비교할 때는 동영상과 비교하는 것이 공정합니다. 같은 몇 초 분량이라면 MP4나 WebM 클립이 보통 훨씬 더 작고 색도 부드럽게 표현됩니다. WebP와 APNG 역시 전체 색상과 올바른 투명도로 애니메이션을 지원합니다. GIF의 장점은 품질도 용량도 아닙니다. 이미 어디에서나, 모든 곳에서 GIF를 받아들인다는 점입니다.