GIF

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
Graphics Interchange Format
Rotating earth (large).gif
확장자 .gif
MIME 종류 image/gif
개발 컴퓨서브
파일 포맷 종류 래스터 이미지

그래픽 인터체인지 포맷(Graphics Interchange Format; GIF)는 비트맵 그래픽 파일 포맷이다. 1987년 컴퓨서브가 발표하였으며, 월드 와이드 웹에서 가장 널리 쓰이는 파일 포맷이기도 하다. 특별한 플러그인을 요구하지 않고 여러 환경에서 쉽게 쓸 수 있는 까닭에 다중 프레임 애니메이션을 이용한 배너 광고 등에 널리 쓰였으나, 수많은 웹사이트에서는 GIF 대신 어도비 플래시를 사용하기도 한다.

최대 256 색까지 저장할 수 있는 비손실 압축 형식이다. GIF에 쓰인 LZW 알고리즘에 대한 특허유니시스 사가 가지고 있다는 것이 알려지고, 또한 256 색의 제한에 한계를 느끼면서 PNG라는 새로운 표준이 개발되었다.

GIF는 지프(/dʒɪf/)나 기프(/ɡɪf/)로 읽는다. GIF 포맷의 저자는 지프로 읽는다고 밝혔으나[1], 기프라는 발음도 계속 쓰이고 있다.

유니시스와 LZW 특허[편집]

GIF에 사용되는 LZW알고리즘은 유니시스 사에 미국 특허 4,558,302로 등록되어 있다. 컴퓨서브가 처음 GIF 포맷을 공개했을 때는 LZW 알고리즘에 특허가 있는 줄 몰랐다. 1994년 12월, 유니시스는 이 특허에 대해 특허료를 받는다고 공고했다. 1999년 8월에는 무료 소프트웨어와 그 사용자에게도 특허료를 받는다고 하여 많은 반발을 불러일으켰다.

2003년 6월 20일, LZW 알고리즘에 대한 유니시스의 특허가 만료되었으며, 유럽, 일본, 캐나다에서의 특허는 2004년 6월 18일, 6월 20일, 7월 7일 차례대로 만료되었다[2].

IBM 역시 LZW 알고리즘에 대한 특허를 가지고 있으나 이 특허에 대한 권리를 주장하지는 않았다. 자유 소프트웨어 재단에 따르면 미국에서의 특허는 2006년 8월 11일 만료되었다고 한다.

동화상 GIF[편집]

GIF에서는 사용자가 새로운 블록을 정의할 수 있다. 1990년대에 넷스케이프는 넷스케이프 애플리케이션 블록을 설계하였으며[3] GIF 파일이 정적인 그림 대신 움직이는 그림을 가리키게 하였다. 이러한 애니메이션은 넷스케이프 내비게이터 버전 2.0에 처음 등장하였으며 그 뒤에 다른 브라우저로 퍼져나갔다.[4]

동화상 GIF는 여러 장의 그림이나 프레임을 이루어 연속으로 보이게 만들며, 각 그림은 GCE (그래픽 제어 확장) 기능을 통해 그려진다. 그에 이어 기본적으로 모든 프레임에 적용되는 헤더가 뒤따르며 헤더 뒤에는 데이터가 고정 색인들에 위치하지 않은 스트림 지향이 되므로 GCE 시작 위치는 선행하는 GCE의 길이에 따라 달라지게 된다. GCE 안에서 LZE 코드 그림 데이터는 각기 최대 255 바이트 안에 정렬된다. 블록의 크기는 이를 선행하는 바이트에 의해 정의된다. 이를테면 아래는 애니메이션 Rotating earth (large).gif의 구조가 나열되어 있다.

byte#  hexadecimal  text or
(hex)               value      Meaning
0:     47 49 46
       38 39 61     GIF89a     Header
                               Logical Screen Descriptor
6:     90 01        400         - width pixels
8:     90 01        400         - height pixels
A:     F7                       - GCT follows for 256 colors with resolution 3 x 8bits/primary
B:     00           0           - background color #0
C:     00                       - default aspect ratio
D:                             Global Color Table
:
30D:   21 FF 0B                Application Extension
310:   4E 45 54
       53 43 41
       50 45 32
       2E 30        NETSCAPE2.0
31B:   03 01                    - data follows
31D:   FF FF                    - loop animation
31F:   00                       - end
320:   21 F9 04                Graphic Control Extension frame #1
323:   08                       - no transparency
324:   09 00                    - 0.09 sec duration
326:   00                       - no transparent color
327:   00                       - end
328:   2C                      Image Descriptor
329:   00 00 00 00  (0,0)       - scan pixels from left top...
32D:   90 01 90 01  (400,400)   - ...to right bottom
331:   00                       - end
332:   08           8          LZW min code size
333:   FF           255        255 bytes LZW encoded image data follow
334:                data
433:   FF           255        255 bytes LZW encoded image data follow
                    data
                     :
92BA:  00                      end
92BB:  21 F9 04                Graphic Control Extension frame #2
 :                                                              :
153B7B:21 F9 04                Graphic Control Extension frame #44
 :
15CF35:3B           1 429 301  File terminates

인터넷 익스플로러는 프레임레이트가 초당 20 프레임 이상인 경우 GIF 재생 속도를 떨어트리는데, 마이크로소프트는 구글 크롬사파리 또한 일부 GIF 애니메이션의 속도를 떨어트린다고 밝혔다.[5]

같이 보기[편집]

주석[편집]

  1. The GIF Pronunciation Page
  2. [1]
  3. All About GIF89a, Royal Frazier, 1997
  4. Scott Walter (1996). 《Web Scripting Secret Weapons》. Que Publishing. ISBN 0789709473
  5. Animated GIFs slow down to under 20 frames per second

바깥 고리[편집]