# 가장 빠른 GIF는 존재하지 않음

> Clean Markdown view of GeekNews topic #6031. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=6031](https://news.hada.io/topic?id=6031)
- GeekNews Markdown: [https://news.hada.io/topic/6031.md](https://news.hada.io/topic/6031.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2022-02-23T09:34:03+09:00
- Updated: 2022-02-23T09:34:03+09:00
- Original source: [biphelps.com](https://www.biphelps.com/blog/The-Fastest-GIF-Does-Not-Exist)
- Points: 15
- Comments: 0

## Topic Body

- 애니 GIF 속도를 최대한 빠르게 하려면 "Frame Delay"를 "10ms"가 아닌 "20ms"로 지정해야 함. 왜 그럴까?  
- GIF 89a부터 애니메이션이 지원되기 시작  
  - 각 프레임별 딜레이를 설정 가능   
  - 다음 프레임으로 넘어가기 전까지 기다리는 시간을 100분의 1초(10ms)단위로 표현   
  - 0 ~ 0xffff(약 10분의 딜레이) 까지 설정 가능   
- 0을 설정하면 무슨 일이 일어날까? 스펙엔 정확한 답이 없지만 두가지를 명시  
  - GIF 디코딩시에 각 프레임은 딜레이 없이 처리되어야 함  
  - 딜레이 값은 0이 아닐 때만 사용 됨   
  - 즉, 0으로 지정하면 "이전 프레임과 결합되어 정적 이미지로 처리"되어야 함  
    - 이러면 움직이는 부분만 저장한 프레임을 넣어서 크기를 줄일 수 있음  
- 문제는 누구도 0 딜레이를 지원하지 않는다는 것   
→ GIF를 지원하는 대부분의 프로그램들은 2(20ms) 이하의 값을 그 이상으로 고정함   
  - QT는 IE/FF와 맞춤 : (delay < 2 ? 10: delay) * 10  
  - 크롬은 FF와 맞춤 : 번쩍이는 광고들이 0을 사용하는 것을 막기 위해, 10ms 이하로 지정한 것들은 100ms로 지정함   
  - FF는 IE와 Opera에 맞춤 : 0~10 인 경우  100ms 로 조정함  
  - IE 5는 Netscape가 느렸기 때문에 거기에 맞춤 : 50 이하의 경우는 100으로 고정  
- 위 코드들의 공통점은 0~1을 2로 맞추는게 아닌 10(100ms)으로 맞춘다는 것  
  - 즉, 10은 100과 같고, 20이 가장 빠름  
### 결론  
- 아무도 GIF 스펙대로 렌더링을 안 하고 있는데, 그렇게 해야할 것 같음(IMO)  
- 현재는 가장 빠른 GIF를 얻으려면 1(10ms) 대신 2(20ms)를 지정할 것   
- 모두가 제대로 GIF 스펙을 구현한다면  
  - 10ms 딜레이짜리 GIF를 지원할 수 있게 됨   
  - GIF 애니메이션 단일 프레임에서 256개 이상 색상 지원   
  - 작은 딜레이 값을 주면 느려지는 혼란을 없앨 수 있음  
  - 프레임당 업데이트된 영역만 있는 GIF를 만들어서 압축률을 개선할 수 있음

## Comments



_No public comments on this page._
