Animowany GIF (.gif)

Specyfikacja Standard

Graphics Interchange Format (GIF) to 8-bitowy, oparty na palecie format rastrowy opracowany przez firmę CompuServe, znany na całym świecie z popularyzacji krótkich animacji w pętli we wczesnym okresie istnienia sieci web.

Konwertuj GIF na MP4

Darmowy konwerter z GIF na MP4 w przeglądarce. Konwertuj pliki natychmiast na swoim urządzeniu.

Kompresuj GIF online

Prywatnie - pliki nigdy nie opuszczają Twojego urządzenia

Inspekcja i metadane

Systemy operacyjne i analizatory plików identyfikują pliki GIF, sprawdzając początkową sekwencję bajtów binarnych:

Wybierz lub upuść pliki tutaj

Prywatnie - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

Podpis nagłówka na poziomie bajtów (Magic Bytes)

Systemy operacyjne i analizatory plików identyfikują pliki GIF, sprawdzając początkową sekwencję bajtów binarnych:

PODPIS HEX (OFFSET 0):

47 49 46 38

REPREZENTACJA ASCII: GIF8

Normalizacja: Specyfikacja CompuServe GIF87a / GIF89a

Specyfikacja techniczna

Architektura konteneraFormat obrazu paletowego oparty na strumieniach z nagłówkami bloków i znacznikiem końca (0x3B)
KompresjaBezstratna kompresja słownikowa Lempel-Ziv-Welch (LZW)
Kolejność bajtów (Endianness)Little-Endian dla wymiarów płótna i liczników opóźnień
Przestrzenie kolorówIndeksowana paleta 8-bitowa (maksymalnie 256 kolorów na klatkę)
Kanały i strukturaIndeksowana paleta z 1-bitową przezroczystością binarną (włączona/wyłączona)
Maks. wymiary65 535 x 65 535 pikseli (2-bajtowe liczby całkowite bez znaku)
Przezroczystość1-bitowa przezroczystość binarna (pojedynczy indeks koloru oznaczony jako przezroczysty)
Streaming i progresywne ładowanie4-przebiegowy algorytm przeplotu liniowego obsługiwany w specyfikacji bazowej

Techniczna macierz porównawcza: GIF a konkurencja

Atrybut technicznyGIF (Bieżący)Animated WebPMP4 (H.264)APNG
Rozmiar plikuBardzo duży (słaba kompresja dla klatek wideo)Zależy od animacji i ustawień kodowania.O 80%-95% mniejszy niż GIFUmiarkowany
Obsługa kolorówMaksymalnie 256 kolorów na klatkę16,7 miliona kolorów (24-bitowy Truecolor)16,7 miliona kolorów (YUV 4:2:0)16,7 miliona kolorów (24-bitowy Truecolor)
PrzezroczystośćTylko 1-bitowa binarna (postrzępione krawędzie)Pełny 8-bitowy gładki kanał alfaBrak natywnej przezroczystościPełny 8-bitowy gładki kanał alfa
Obsługa platformSzeroka obsługa na wielu obecnych i starszych platformachObsługiwany przez wiele współczesnych przeglądarek; dostępność się różniObsługiwany przez wiele odtwarzaczy wideo i przeglądarek; dostępność się różniObsługiwany przez wiele współczesnych przeglądarek; dostępność się różni

Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego

Animacja odtwarza się częściowo i zamraża, lub przeglądarka obrazów zgłasza nieoczekiwany koniec pliku (EOF).

Główna przyczyna: Brak końcowego bajtu znacznika końca 0x3B (średnik) spowodowany przerwaniem pobierania.

Odzyskiwanie: Dołącz bajt 0x3B na końcu pliku za pomocą edytora szesnastkowego.

Analiza bezpieczeństwa i wektory ataku na parser

Pliki GIF są proste, ale w przeszłości występowały w nich ataki polegające na przepełnieniu bufora podczas rozwijania danych LZW oraz ataki z użyciem plików GIFAR.

Znane wektory ataku

  • Podatności przepełnienia bufora LZW w starszych natywnych dekoderach.
  • Ataki GIFAR z użyciem plików poliglotycznych: tworzenie plików będących jednocześnie poprawnymi plikami GIF i Java JAR, aby ominąć filtry przesyłanych plików.

Najlepsze praktyki obronne: Transkoduj przesyłane przez użytkowników animowane pliki GIF do formatu MP4 lub animowanego WebP w locie, aby zaoszczędzić pasmo i zneutralizować zagrożenia polimorficzne.

Pochodzenie historyczne i kamienie milowe

2006Wszystkie globalne patenty obejmujące kompresję LZW wygasają, co całkowicie przenosi format GIF do domeny publicznej.
1995Netscape 2.0 wprowadza blok rozszerzenia aplikacji umożliwiający nieskończone zapętlanie animacji.
1989CompuServe publikuje specyfikację GIF89a dodającą animację oraz przezroczyste kolory.
1987Steve Wilhite i CompuServe wydają GIF87a w celu przesyłania grafiki kolorowej przez modemy dial-up.

Główne zalety

  • GIF jest obsługiwany przez wiele przeglądarek i narzędzi do obrazów, ale zgodność zależy od platformy i aplikacji.
  • Natychmiastowe odtwarzanie bez negocjacji kodeków wideo i ograniczeń licencyjnych.
  • Bezstratna kompresja w ramach palety 256 kolorów.

Ograniczenia techniczne i wady

  • Ścisłe ograniczenie do palety 256 kolorów (powoduje wyraźne pasmowanie kolorów na fotografiach).
  • Ogromnie nieefektywny rozmiar pliku w porównaniu do nowoczesnych formatów wideo MP4, WebM lub animowanego WebP (często od 5 do 10 razy większy).
  • Binarna 1-bitowa przezroczystość powoduje postrzępione, pikselowate krawędzie na niebiałych tłach (brak mieszania alfa).

Ciekawe informacje techniczne

  • Twórca Steve Wilhite słynnie wyjaśnił w 2013 roku, że zamierzoną wymową jest „JIF" z miękkim G.
  • Animacje w pętli nie były częścią oficjalnej specyfikacji CompuServe; Netscape dodał blok rozszerzenia „NETSCAPE2.0" w 1995 roku.
  • W 1994 roku Unisys ogłosił, że będzie agresywnie egzekwować swój patent na oprogramowanie LZW wobec twórców narzędzi GIF, co bezpośrednio skłoniło społeczność open-source do wynalezienia formatu Portable Network Graphics (PNG) jako alternatywy wolnej od patentów.

Często zadawane pytania techniczne

Dlaczego animowane pliki GIF są znacznie większe niż filmy MP4?

Format GIF został zaprojektowany w 1987 roku jako format obrazu statycznego. Brakuje mu nowoczesnych koncepcji kompresji wideo, takich jak międzyklatkowe wektory ruchu, makrobloki i czasowe kodowanie predykcyjne. Przechowuje każdą klatkę jako pełny, niezależny obraz rastrowy, co skutkuje olbrzymimi rozmiarami plików.

Jak mogę zmniejszyć rozmiar pliku GIF?

Możesz zmniejszyć liczbę kolorów w palecie, obniżyć liczbę klatek na sekundę (np. z 30 fps do 15 fps), zmniejszyć wymiary w pikselach lub - co jest najlepszym rozwiązaniem - przekonwertować plik do nowoczesnego formatu animowanego WebP lub MP4.

Czy GIF obsługuje dźwięk lub ścieżki audio?

Nie. Specyfikacja CompuServe GIF została stworzona wyłącznie z myślą o klatkach obrazów bitowych i opóźnieniach czasowych; nie zawiera żadnych struktur danych ani kontenerów synchronizacyjnych dla strumieni audio. Nowoczesne platformy, które wydają się odtwarzać „pliki GIF z dźwiękiem", w rzeczywistości dostarczają wyciszone lub niemające możliwości włączenia dźwięku pliki wideo MP4/WebM.