Animált GIF (.gif)

CompuServe Szabvány

A Graphics Interchange Format (GIF) a CompuServe által kifejlesztett 8 bites, palettaalapú raszterképformátum, amely világszerte arról vált ismertté, hogy népszerűvé tette a rövid, ismétlődő animációkat a korai weben.

GIF konvertálása erre: MP4

Ingyenes, böngészőben használható GIF-konverter MP4 formátumba. A fájlokat azonnal konvertálhatja az eszközén.

GIF tömörítése online

Privát - a fájlok soha nem hagyják el az eszközét

Vizsgálat és metaadatok

Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) GIF fájlokat:

Válasszon ki vagy húzzon ide fájlokat

Privát - a fájlok soha nem hagyják el az eszközét

vagy beillesztés Ctrl+V
Adatvédelmi garancia hálózati adatátvitel nélkül: 0 bájt került fel külső szerverekre. Minden feldolgozás helyben, a böngésző elkülönített környezetében történt.

Bájtszintű fejlécaláírás (fájlazonosító bájtok)

Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) GIF fájlokat:

HEX ALÁÍRÁS (ELTOLÁS 0):

47 49 46 38

ASCII ÁBRÁZOLÁS: GIF8

Szabványosítás: CompuServe GIF87a / GIF89a specifikáció

Műszaki specifikációk

Konténer architektúraStream-alapú palettás képformátum blokkfejlécekkel és lezárással (0x3B)
TömörítésLempel-Ziv-Welch (LZW) veszteségmentes szótártömörítés
BájtsorrendKisbájtsorrendű a vászonméretek és az időzítési értékek esetén
SzínterekIndexelt 8 bites paletta (keretenként legfeljebb 256 szín)
Csatornák és struktúraIndexelt paletta 1 bites bináris átlátszósággal (be/ki)
Max. méretek65 535 x 65 535 képpont (2 bájtok előjel nélküli egész számok)
Átlátszóság1 bites bináris átlátszóság (egyetlen színindex átlátszónak jelölve)
Streaming és progresszív4 menetes soros összefonási algoritmus támogatása az alapspecifikációban

Műszaki összehasonlító mátrix: GIF vs. versenytársak

Technikai attribútumGIF (Jelenlegi)Animált WebPMP4 (H.264)APNG
FájlméretNagyon nagy (gyenge tömörítés videókeretekhez)Gyakran kisebb, mint a GIF; az eredmény a kép tartalmától és a kódolási beállításoktól függ.Kisebb is lehet, mint a GIF; az eredmény a kép tartalmától és a kódolási beállításoktól függ.Mérsékelt
SzíntámogatásLegfeljebb 256 szín keretenként16,7 millió szín (24 bites Truecolor)16,7 millió szín (YUV 4:2:0)16,7 millió szín (24 bites Truecolor)
ÁtlátszóságCsak 1 bites bináris (fogazott élek)Teljes, 8 bites sima alfacsatornaNincs natív átlátszóságTeljes, 8 bites sima alfacsatorna
PlatformtámogatásSzéles körű támogatás számos mai és régebbi platformonSok mai böngésző támogatja; az elérhetőség változóSok videólejátszó és böngésző támogatja; az elérhetőség változóSok mai böngésző támogatja; az elérhetőség változó

Gyakori sérülési módok és hexadecimális helyreállítási útmutató

Az animáció részben lejátszódik és megfagy, vagy a képnézegető váratlan fájlvéget (EOF) jelez.

Kiváltó ok: Hiányzó lezáró 0x3B bájtkód (pontosvessző) csonka letöltés miatt.

Helyreállítás: Fűzze hozzá a 0x3B bájtot a fájl végéhez egy hexadecimális szerkesztő segítségével.

Biztonsági elemzés és elemző (parser) támadási vektorok

A GIF-fájlok egyszerűek, de korábban előfordultak bennük LZW-kiterjesztési puffertúlcsordulási támadások, valamint GIFAR-poliglott támadások.

Ismert támadási vektorok

  • LZW puffertúlcsordulási sebezhetőségek régebbi natív dekóderekben.
  • GIFAR-poliglott támadások: olyan fájlok készítése, amelyek egyszerre érvényes GIF-ek és Java JAR-fájlok, a feltöltési szűrők megkerülésére.

Ajánlott védekezési módszerek: Menet közben transzkódolja a felhasználók által feltöltött animált GIF-eket MP4-be vagy animált WebP-be a sávszélesség megtakarítása és a poliglott fenyegetések semlegesítése érdekében.

Történeti háttér és mérföldkövek

2006Az LZW-tömörítést lefedő összes globális szabadalom lejárt, így a GIF teljesen a nyilvános tulajdonba (public domain) került.
1995A Netscape 2.0 bevezeti az Alkalmazásbővítési blokkot, amely lehetővé teszi a végtelen animációs ismétlést.
1989A CompuServe közzéteszi a GIF89a specifikációt, amely animációval és átlátszó színekkel bővíti azt.
1987Steve Wilhite és a CompuServe kiadja a GIF87a-t színes grafikák átvitelére telefonmodemeken keresztül.

Főbb előnyök

  • A GIF-et számos böngésző és képszerkesztő támogatja, de a kompatibilitás platformonként és alkalmazásonként eltér.
  • Azonnali lejátszás videokodek-egyeztetés vagy licenckorlátozások nélkül.
  • Veszteségmentes tömörítés a 256 színű palettáján belül.

Technikai korlátok és hátrányok

  • Szigorúan 256 színű palettára korlátozódik (súlyos színsávosodást okoz fényképeken).
  • Hatalmas, nem hatékony fájlméret a modern MP4, WebM vagy animált WebP videóformátumokhoz képest (gyakran 5x - 10x nagyobb).
  • A bináris, 1 bites átlátszóság nem fehér háttéren fogazott, pixeles széleket okoz (nincs alfa-keverés).

Érdekes technikai tudnivalók

  • Steve Wilhite, a GIF megalkotója 2013-ban egy sokat emlegetett nyilatkozatában tisztázta, hogy a szándéka szerint a kiejtés lágy G-vel, azaz „dzsif”.
  • Az ismétlődő animációk nem képezték részét a hivatalos CompuServe specifikációnak; a Netscape adta hozzá a „NETSCAPE2.0" bővítési blokkot 1995-ben.
  • 1994-ben a Unisys bejelentette, hogy szigorúan érvényesíti az LZW szoftverszabadalmát a GIF-eszközöket fejlesztőkkel szemben, ami közvetlenül arra késztette a nyílt forráskódú közösséget, hogy szabadalommentes alternatívaként megalkossa a Portable Network Graphics (PNG) formátumot.

Gyakran Ismételt Műszaki Kérdések

Miért sokkal nagyobbak az animált GIF-ek, mint az MP4-videók?

A GIF-et 1987-ben statikus képformátumnak tervezték. Hiányoznak belőle a modern videótömörítési eljárások, például a keretek közötti mozgásvektorok, a makroblokkok és az időbeli prediktív kódolás. Minden egyes keretet teljes, független raszterképként tárol, ami hatalmas fájlméretet eredményez.

Hogyan csökkenthetem egy GIF méretét?

Csökkentheti a paletta színeinek számát, a képkockasebességet (pl. 30 fps-ről 15 fps-re) vagy a képpontméretet, illetve ideális esetben átalakíthatja a fájlt modern animált WebP- vagy MP4-formátumra.

Támogatja a GIF a hangot vagy a hangzenei sávokat?

Nem. A CompuServe GIF-specifikációt szigorúan bittérképes képkockákhoz és időzítési késleltetésekhez tervezték; nem tartalmaz adatszerkezeteket vagy szinkronizációs tárolókat a hangfolyamok számára. Azok a modern platformok, amelyek úgy tűnik, hogy „hangos GIF-eket" játszanak le, a valóságban némított vagy fel nem némítható MP4/WebM videófájlokat szolgálnak ki.