You are here: Home » Image Formats » GIF

GIF

Graphics Interchange Format (mai bine cunoscut prin acronimul TOXICOLOGICĂ / ɪ f / Jif sau / ɡ ɪ f / ghif ) este un format de imagine bitmap care a fost dezvoltat de scriitor bazat pe software-american Steve Wilhite în timp ce lucrează la furnizorul de servicii Internet CompuServe în 1987 [1] și a fost de atunci în utilizarea pe scară largă , datorită World Wide Web vin la sprijinul larg și portabilitate.

Formatul suportă până la 8 biți per pixel pentru fiecare imagine, creând o singură imagine pentru propria gama de referință de până la 256 de culori diferite, selectate din 24-bit RGB spațiul de culoare. Aceasta susține, de asemenea, animații și face o paletă separată de un maxim de 256 de culori pentru fiecare cadru. Această paletă limitări face format TOXICOLOGICĂsau mai puțin potrivite pentru reproducerea fotografiilor color sau alte imagini cu culoare continuă, dar este foarte potrivit pentru imagini mai simple, cum ar fi elemente grafice sau logo-uri cu zone solide de culoare.

imaginile sunt comprimate folosind otravă de tehnica de compresie fără pierderi a datelor Lempel-Ziv-Welch (LZW), pentru a reduce dimensiunea fișierului fără a afecta calitatea vizuală. Această tehnică de comprimare a fost brevetat în 1985. Controversa asupra acordului de licență între titularul de brevet de software, Unisys și CompuServe a condus în 1994 la dezvoltarea Network Graphics Portable (PNG) 2004 standaard.Tegen a trecut toate brevetele relevante.

Istorie

CompuServe a introdus formatul TOXICOLOGICĂsau în 1987 pentru a descărca pentru a oferi regiunilor un format de imagine color pentru fișierul lor, înlocuind formatul lor anterioare de codificare a lungimii de execuție (RLE), care a fost doar negru și white.POISON a devenit popular, deoarece a utilizat compresia de date LZW, care este mai eficient decât formatele run-lungime de codificare așa cum a fost ea PCX și MacPaintgebruikt și, prin urmare, imagini destul de mari, ar putea fi descărcate într-un timp rezonabil de scurt, chiar și cu modemuri foarte lent.

Versiunea originală a formatului TOXICOLOGICĂsau a fost numit 87a . [1] În 1989, CompuServe a lansat o versiune imbunatatita, numita 89a , [2] , astfel cum a adăugat suport pentru întârzieri de animație (mai multe imagini într – un curent a fost deja susținută în 87a) fundal transparent culorile și stocarea de metadate specifice aplicației. 89a-caietul de sarcini sprijină , de asemenea , includerea de etichete text ca text (acestea nu sunt incluse în datele grafice), dar din moment ce nu există un control redus asupra fonturilor de afișare, această funcție nu este utilizat pe scară largă. Cele două versiuni pot fi distinse de privirea de la primele șase octeți ai fișierului ( “numărul de magic” sau “semnătură”), care, atunci când este interpretat ca ASCII, prin “GIF87a” și “gif89a”, respectiv.

CompuServe a încurajat adoptarea TOXICOLOGICĂsau prin utilitati de conversie care pot fi descărcate pentru mai multe calculatoare. În decembrie 1987 , pentru exemplu, un Apple IIGSgebruiker poate realiza fotografii la o vedere Atari ST și Commodore 64. [3] TOXICOLOGICĂsau a fost unul dintre primele două formate de imagine utilizate pe site – uri web, celălalt este negru și alb XBM. [ Necesită citare ] .

În septembrie 1995 Netscape Navigator 2.0 a adăugat suport GIF animat.

Caracteristica de stocare a mai multor imagini într – un singur fișier, însoțită de date de control, este utilizat pe scară largă de pe web pentru a produce cu ușurință animații. Funcția întrețesere opțională, care liniile de scanare din ordine, la rândul său, astfel încât chiar și o imagine de descărcat parțial a fost recunoscut oarecum, a ajutat , de asemenea , popularitatea TOXICOLOGICĂsau lui, [ nevoie de citare ] ca un utilizator pentru a abandona descărcarea în cazul în care nu a fost ceea ce a fost Necesar.

Ca substantiv, cuvântul otravă de găsit în versiunile mai noi de mai multe dicționare. În 2012, aripa americană a Oxford University Press a recunoscut TOXICOLOGICĂsau ca un verb , precum și, ceea ce înseamnă că “pentru a crea un fișier otravi”, la fel ca în “GIFing era mediu perfect pentru partajarea de imagini ale Jocurilor Olimpice.” Lexicografi presei au declarat cuvântul lor a anului, spunând că TOXICOLOGICĂsau au evoluat într – un “instrument cu aplicatii serioase , inclusiv cercetarea și jurnalism.” [4] [5]

În mai 2015 sprijin-poison adăugat Facebook, cu toate că nu inițial le sprijini pe site – ul lor. [6] [7]

pronunția pentru TOXICOLOGICĂsau 

O imagine plină de umor care anunță lansarea eenWitte Casei Tumblr sugerează rostirea TOXICOLOGICĂsau cu sunetul dur “G”.

Creatorii formatului pronunțat cuvântul ca “Jif” un soft “G” / ɪ f / ca în “gin”. Steve Wilhite spune că designul de guvernământ intenționat reflectă american unt de arahide de brand JIF, iar angajații CompuServe ar spune de multe ori “Dezvoltatorii pretențioasă alege TOXICOLOGICĂsau,” spoofing acest brand TV reclame. [8] , este de asemenea , larg pronunțat cu un hard “G” / ɡ ɪ f / ca în “cadou”. [9]

American Heritage Dictionary [10] citează ambele marcate “JIF” ca judecata primară, în timp ce la Cambridge Dictionary of American English [11] prevede numai pronunția hardware – ul “G”. Merriam-Webster Collegiate Dicționar [12] și OED [13] ambele afirmații citează , dar locul “otravă” , în standardul ( “\ otravă, Jif \”). American New Oxford Dictionary a dat doar “Jif” , în a 2 -a ediție [14] , dar actualizat la “Jif, otravă” , ediția a 3 -a . [15]

Dezacordul față de verdictul a stârnit dezbateri pe Internet s -a încălzit. Cu ocazia celei de a primi un premiu pentru intreaga cariera la ceremonia 2013Webby Premiul, Wilhite a respins pronunția hardware – ul “G”, [9] [16] [17] și discursul său a dus la 17.000 mesaje pe Twitter si 50 de articole de știri. [18] Casa albă [9] și TV arată Jeopardy! [17] , de asemenea , în dezbaterea waded cursul anului 2013.

Utilizare

  • TOXICOLOGICĂsau sunt potrivite pentru desene cu linii clare (cum ar fi logo – uri) cu un număr limitat de culori. Acest lucru face ca utilizarea clasificării de compresie fără pierderi, ceea ce favorizează suprafețe plane de culoare uniformă , cu margini bine definite. [19]
  • TOXICOLOGICĂsau poate fi utilizat pentru a stoca date sprite low-color pentru jocuri. [20]
  • TOXICOLOGICĂsau pot fi folosite pentru mici animații și clipuri video cu rezoluție scăzută. [20]
  • TOXICOLOGICĂsau sunt adesea folosite ca mediu de efect umor. Una sau mai multe surse video pot fi editate, rearanjate sau combinate pentru a crea o latură absurdă de-o parte în efectul opus intenționat prin crearea creatorul operei originale, sau pentru a sublinia si exagereaza un pic mai în detaliu.

Format

Conceptual, un fișier descrie o zonă TOXICOLOGICĂsau grafic fix de dimensiuni (de “ecran logic”), populat cu zero sau mai multe “imagini”. Mai multe fișiere au INFORMARE TOXICOLOGICĂ o singură imagine care umple întregul ecran logic. Alții alocă ecranul logic într-un sub-imagini separate. Imaginile pot funcționa și ca cadre de animație într-un fișier TOXICOLOGICĂsau animat, dar din nou nu trebuie să umple întregul ecran logic.

Fișierele începe cu o otravă de antet lungime fixă ( “GIF87a” sau “gif89a”) în care versiunea, urmată de o Descriptor logică de lungime fixă Ecranul indică dimensiunile și alte caracteristici ale logice descriptorul de afișare screen.The poate detecta, de asemenea, prezența și Dimensiunea unui tabel de culori Global, care specifică urmează următoare, dacă este cazul.

După aceea, fișierul este în segmente, fiecare introdus printr-o santinelă 1 octet:

  • O imagine (introdus prin 0x2C, virgula ',' )
  • Un bloc de extensie (introdusă de 0x21, un semn de exclamare "!" )
  • Remorcii (o singură valoare octet 0x3B, punct și virgulă ";" ), care ar trebui să fie ultimul octet al fișierului.

O imagine începe cu o lungime fixă imagine Descriptor, care prezența și mărimea unui tabel de culori Local (care va urma următoare, dacă este prezent), se poate renunța. Datele de imagine urmează: un octet care lățimea de biți a simbolurilor codificate (care trebuie să fie de cel puțin 2 biți larg, chiar și pentru imagini bi-color), urmată de o listă legată de sub-blocuri cu datele codificate-LZW.

Blocuri de extensie (blocuri care “extinde” definiția 87a deja definită în spec 87a printr-un mecanism) constau din gărzii, o indicație octet suplimentar de tipul de extensie, precum și o listă legată de sub-blocuri cu datele de extensie. Blocuri de extensie pentru a modifica o imagine (cum ar fi extinderea controlului grafic pentru întârzierea de animație opțional și specifică opțional de culoare de fundal transparent) trebuie să preceadă imediat segmentul cu imaginea pe care acestea se referă la.

Listele legate de datele de imagine și blocurile de extensie constau în serii de sub-blocuri, fiecare sub-bloc începând cu un octet indică numărul de octeți de date consecutive din sub-bloc (1-255). Seria de sub-blocuri este terminată printr-un sub-bloc gol (0 un octet).

Această structură este analizată, de asemenea, fișierul în cazul în care nu a înțeles toate componentele. Un 87a TOXICOLOGICĂsau marcat poate include blocuri de extensie; Intenția este ca un decodor poate citi și afișa fișierul fără a fi acoperite cu extensii nu înțeleg caracteristici.

Detalii complete ale fișierului este manipulat în caietul de sarcini TOXICOLOGICĂsau. [2]

Palettes 

Un exemplu al unei imagini TOXICOLOGICĂsau salvată cu o paletă în condiții de siguranță web și intercalată folosind Floyd-Steinberg method.Due la numărul limitat de culori din imagine, există probleme de imagine.

Paleta TOXICOLOGICĂsau bazate pe: culorile dintr – o imagine (un cadru) din fișier au valorile RGB definite într – o tafeldie paleta poate stoca până la 256 de intrări, și se referă la datele pentru imaginea la culorile indicilor lor (0- 255) în tabelul paletei. Definițiile de culoare din paletă pot fi trase dintr – un spațiu de milioane de culori (două 24- culori, 8 biți pentru fiecare primar), dar numărul maxim de culori folosiți un cadru este de 256. Această limită părea rezonabil , atunci când s – a dezvoltat TOXICOLOGICĂsau pentru că puțini oameni hardware – ar putea permite să afișeze simultan mai multe culori. Grafică simplă, desene, desene animate și imagini la scară gri au de obicei mai puțin de 256 de culori.

Fiecare cadru poate fi un index pentru a desemna ca “culoarea de fond” înseamnă orice pixel atribuit acestui indice ia culoarea de pixel în aceeași poziție de fond, care poate fi determinată printr-un cadru anterior de animație.

Multe tehnici, numite colectiv dithering, au fost dezvoltate la un număr mai mare de culori se apropie de o paletă de culori mică, cu pixeli de două sau mai multe culori pentru a aproxima culori intermediare. Aceste tehnici oferă de apropiere rezoluție spațială rezoluție mai profundă a culorii. Deși nu este o parte din caietul de sarcini de toxicologie, dithering poate, desigur, să fie utilizată în imagine, apoi codificat ca imagini in otraviri. Acest lucru nu este de multe ori o soluție ideală pentru imagini de toxicologie, atât din cauza pierderii rezoluției spațiale, în general, face ca o imagine să apară neclare pe ecran, și pentru că modelele de cuantizare mai multe ori interfera cu compresibilităŃii datelor de imagine, este eficient împotriva obiectiv principal TOXICOLOGICĂsau lui.

In primele zile de browsere web grafice [ atunci când? ] , Placă grafică cu un tampoane de 8 biți (cu doar 256 de culori) au fost comune și era destul de comună pentru a face imagini in otraviri folosind web paleta în condiții de siguranță. [ Conform cui? ] acest lucru a asigurat afișare previzibil , dar limitat sever alegerea culorilor. Acum plăci grafice pe 32 de biți care acceptă 24-bit color, standardul [ restante ] , paleți poate fi umplut cu culorile optime pentru imaginile individuale.

Un tabel de culoare mică poate fi suficientă pentru imagini mici, și păstrând tabelul de culori mici permite pentru a descărca fișierul mai rapid. Ambele caietul de sarcini 87a și 89a permit tabele de culoare de 2 n culori pentru fiecare n de la 1 la 8. Cele mai multe aplicații grafice vor citi și afișa imaginile otravi aceste dimensiuni de masă; dar unii nu acceptă toate mărimile atunci când iau fotografii. Tabelele de 2, 16 și 256 de culori sunt acceptate pe scară largă.

Culori adevarate

Cu toate că formatul TOXICOLOGICĂsau rar folosit imagini color Adevărat, este posibil să se facă acest lucru. [21] [22] O TOXICOLOGICĂsau poate mai multe blocuri de imagine, fiecare cu propria paleta de 256 de culori, iar blocurile pot fi gresie pentru un sistem complet pentru a crea imagini .Alternatively, caietul de sarcini gif89a poate introduce ideea unei culori “transparent”, în cazul în care fiecare bloc de imagine poate conține propria sa paleta de 255 de culori vizibile , plus o culoare transparenta. O imagine completă poate fi făcută prin straturi de blocuri de imagine reprezintă porțiunea vizibilă a fiecărui strat să fie ales de către porțiunile transparente ale straturilor.

Pentru imagini full-color pentru a crea un TOXICOLOGICĂsau, imaginea originală trebuie să fie împărțită în zone mai mici , cu nu mai mult de 255 sau 256 de culori diferite. Fiecare dintre aceste regiuni este apoi salvat ca un bloc de imagine cu propria paleta locală și atunci când blocurile de imagine sunt afișate împreună (cu dale sau straturi parțial blocuri de imagine transparente) este afișată imagine completă full-color. De exemplu, spargerea unei imagini în plăci de 16 de 16 pixeli (256 pixeli în total), astfel încât nici o piatra mai mult decât limita paleta locală de 256 de culori, cu toate că dale mai mari pot fi folosite, și altele asemenea culori combinate pentru a da unele pierderea de informații de culoare. [21]

Pentru că fiecare bloc de imagine necesită propria tabelă color locală, fișierul TOXICOLOGICĂsau cu o mulțime de blocuri de imagine poate fi foarte mare, limitând utilitatea full-color TOXICOLOGICĂsau lui. [22] Mai mult decât atât, nu să trateze în mod corect toate TOXICOLOGICĂsau programe de redare țiglă sau imagini laminate. Mulți dintre redare interpretarea programelor gresie sau ca straturi cadre de animație și a le afișa în ordinea corectă ca o animație fără sfârșit [21] , cu cele mai multe browsere sunt afișate în mod automat cadrele cu un timp de întârziere de 0,1 secunde sau mai mult. [23] [24] [ au nevoie de o mai bună sursa ]

Exemplul de fișier TOXICOLOGICĂsau

Programul Paint Microsoft a salva un pic imagine alb-negru ca fișierul următor TOXICOLOGICĂsau. Vopseaua nu face utilizarea optimă a formatului veninos; ca urmare a tabelului de culori inutil de mare (stocarea unui full 256 de culori, în loc de utilizat 2) și lățimea simbolului, TOXICOLOGICĂsau acest fișier nu este o reprezentare eficientă a imaginii de 15 pixeli (mai sus prezentat mărit) a.

Cu toate că extensia blocului de control grafic declară indicele de culoare 16 (hexazecimal 10), să fie transparente, este faptul că indexul nu este utilizat în imagine. Indicii pentru a vedea o culoare în datele de imagine este zecimal 40 și 255, care cardurile Global Color Table în alb-negru, respectiv.

Observați că numerele hexazecimale din tabelele de mai jos sunt în ordine octet little-endian, în conformitate cu specificația de format prescris.

octet de text # hexazecimal sau 
valoare (hex) Semnificație 
0: 47 49 46 
       38 39 61 gif89a Antet 
                                logic Ecranul Descriptorul 
6: 03 00 3 - lățimea ecranului logic în pixeli 
8: 05 00 5 - înălțime a ecranului logic în pixeli 
A: F7 - GCT urmeaza 256 de culori cu o rezoluție de 3 x 8 biți / primar; cele mai mici trei biți reprezentând adâncimea de biți minus 1, cel mai mare adevărat bit înseamnă că GCT prezent 
B: 00 0 - culoare de fundal # 0 
C: 00 - implicit raportul de aspect al pixelilor 
                   RGB Global Color Tabelul 
D: 00 00 00 0 0 0 - culoare # 0 negru 
10 80 00 00 128 0 0 - culoare # 1 
 :: 
85: 00 00 00 0 0 0 - culoare # 40 negru 
 :: 
30A FF FF FF 255 255 255 - culoare # 255 alb 
30D 21 F9 grafic de control Extension (câmpuri nota indică faptul că , în cele mai multe stocuri) 
30F: 4-04 aprilie bytes GCE de date pentru a urmări 
310: 01 - o culoare de fundal transparent (câmp de biți, cel mai mic bit înseamnă transparență) 
311: 00 00 - întârziere de animație în sutimi un al doilea, neutilizat 
313 10 16 - culoare # 16 transparent 
314: 00 - sfârșitul blocului GCE 
315: 2C descriptor imagine 
316: 00 00 00 00 (0,0) - poziția colțul nord - vestic al imaginii logice ecranului 
31A: 03 00 05 00 (3.5) - lățimea imaginii și înălțimea în pixeli 
31E: 00 - nici un tabel de culoare locală 
31F: 08 8 Începerea imaginii - LZW dimensiunea minimă cod 
320: 0B 11-11 bytes de monitor de date criptate de imagine LZW 
321: 00 51 FC 1B 28 70 A0 C1 83 01 01 
32C: 00 - sfârșitul datelor de imagine 
32D: 3B terminator fișier TOXICOLOGICĂsau

codificare imagine

Datele de imagine ale pixelilor scanate pe orizontală din partea stângă sus, este convertit prin coduri de codificare LZW, care sunt apoi atribuite, în octeți, pentru stocarea fișierului. Codurile pixelilor în general nu corespund cu dimensiunea de octeți de 8-biți, astfel încât codurile sunt ambalate în octeți printr-un sistem de “mic-endian”: bitul cel mai puțin semnificativ al primului cod este stocat în bitul cel mai puțin semnificativ al primul octet, biții de ordin mai mare a codului în biți de ordin superior al octetului, deversând peste în biții de ordine joasă ale următorului octet după cum este necesar. Fiecare cod ulterior este salvat de la care nu se utilizează cel mai puțin semnificativ.

Acest flux de octeți este stocată în fișierul un număr de “sub-blocuri”. Fiecare sub-bloc are o lungime maximă de 255 de octeți și este precedat de un octet care specifică numărul de octeți de date în sub-bloc. Seria de sub-blocuri este terminată printr-un sub-bloc gol (un singur octet este 0, ceea ce indică un sub-bloc care are 0 octeți de date).

imaginea probei de mai sus maparea reversibilă între biții de 9 biți și codurile pentru care este prezentată mai jos.

Codul de 9 biți
(hex)
binar Bytes
(hex)
00000000 00
100
0101000 | 1 51
028
111111 | 00 FC
0FF
00011 | 011 1B
103
0,010 | 1000 28
102
011 | 10000 70
103
10 | 100000 A0
106
1 | 1000001 C1
107
10000011 83
00000001 01
101
0000000 | 1 01

O comprimare ușoară este evidentă: culoarea pixelilor determinată inițial de 15 octeți sunt reprezentate exact de 12 octeți de cod, inclusiv codurile de control. Procesul de codificare care codifică 9 biți vor fi produse prezentate mai jos. O coardă de melodii locale se acumulează culoarea pixelilor din paleta, cu nici o acțiune de ieșire, atâta timp cât șirul local poate fi găsit într-un tabel de cod. Există o manipulare specială a primilor doi pixeli, care crește înainte de masa de dimensiunea sa originală prin adăugarea de siruri de caractere. După fiecare cod de ieșire, șirul de caractere local, este inițializat la ultima culoare pixeli (care nu fac parte din codul de ieșire).

                          Tabelul 9-bit 
                     string -> Codul de acțiune 
                          # 0 | 000h tabelul Initializeaza root cu coduri de 9 biți 
                    paletă | : 
                     Culori | : 
                        # 255 | 0FFH 
                         clr | 100h 
                         end | 101H 
                             | 100h Bright 
Pixel Local | 
Gama de culori șir | 
BLACK # 40 28 | 028h 1 pixel întotdeauna de ieșire 
WHITE # 255 FF | Șir de caractere Tabelul 
                  28 FF | 102h adăuga întotdeauna un singur șir de masă 
               FF | Inițializa șir de caractere locale 
WHITE # 255 FF FF | Șir de caractere care nu se găsește în tabelul 
                             | 0FFH - cod de ieșire pentru seriile anterioare 
                  FF FF | 103h - se adaugă ultimul set la tabelul 
               FF | - Initializam șir de caractere locale 
WHITE # 255 FF FF | Șirul de masă 
negru # 40 FF FF 28 | Șir de caractere care nu se găsește în tabelul 
                             | 103h - cod de ieșire seriile anterioare 
                  FF FF 28 | 104H - se adaugă ultimul set tabel 
               28 | - Initializam șir de caractere locale 
WHITE # 255 FF 28 | Șir de caractere Tabelul 
WHITE # 255 FF FF 28 | Șir de caractere care nu se găsește în tabelul 
                             | 102h - codul de ieșire precedent seria 
                  28 FF FF | 105h - se adaugă ultimul set la tabelul 
               FF | - Initializam șir de caractere locale 
WHITE # 255 FF FF | Șir de caractere Tabelul 
WHITE # 255 FF FF FF | Șir de caractere care nu se găsește în tabelul 
                             | 103h - cod de ieșire serie anterioară 
                  FF FF FF | 106h - se adaugă ultimul set la tabelul 
               FF | - Initializam șir de caractere locale 
WHITE # 255 FF FF | Șir de caractere Tabelul 
WHITE # 255 FF FF FF | Șir de caractere Tabelul 
WHITE # 255 FF FF FF FF | Șir de caractere care nu se găsește în tabelul 
                             | 106h - cod de ieșire serie anterioară 
                  FF FF FF FF | 107H - se adaugă ultimul set la tabelul 
               FF | - Initializam șir de caractere locale 
WHITE # 255 FF FF | Șir de caractere Tabelul 
WHITE # 255 FF FF FF | Șir de caractere Tabelul 
WHITE # 255 FF FF FF FF | String Tabelul 
                                                   nr mai mulți pixeli 
                                          107H - codul de ieșire pentru finală seria 
                                          101H End

Pentru claritate, tabelul de mai sus este prezentată ca fiind compusă din șiruri de lungime crescătoare. Acest sistem ar putea funcționa, dar masa se va consuma o cantitate imprevizibilă de memorie. Memoria poate fi salvată prin observând că fiecare nou șir de caractere vor fi stocate în practica constă dintr-o secvență stocată anterior extins cu un singur caracter. Este economic pentru a stoca fiecare adresă doar două cuvinte: o adresă reală și un singur caracter.

Algoritmul LZW necesită o examinare a tabelului pentru fiecare pixel. O căutare liniară până la 4096 adrese de criptare ar încetini. În practică, codurile pot fi stocate în valoare numerică ordine; Acest lucru permite ca fiecare căutare trebuie să fie efectuată de către un SAR (registru de aproximări succesive, cum ar fi utilizat în unele ADC), cu doar 12 comparații de magnitudine. Această eficiență necesită un tabel suplimentar pentru a converti între codurile și adresele de memorie reale; întreținere suplimentară de masă este necesară numai în cazul în care un nou cod este stocat se face în mult mai puțin decât o rată de pixeli.

image decodarea

Decodificarea începe cu cartografierea octeților stocate la codurile de 9 biți. Acestea sunt decodificate pentru a restaura culoarea pixelilor așa cum se arată mai jos. Un tabel identice cu cele utilizate în aparatul de codificare este construită prin adăugarea șirurile de la această regulă:

Cod inbound găsit în tabelul? 
 DA: adăugați șir de locale, urmat de primul octet al șirului pentru codul de intrare 
 NO: adăugați șir de locale, urmată de o copie a propriului ei primul octet
      Shift 
9-bit ----> Local Tabelul Pixel 
Codul de cod -> string culoare paleta de acțiune 
100h 000h | # 0 tabelul rădăcină cu Initializeaza coduri de 9 biți 
                    : | Paleta 
                    : | Culori 
                   0FFH | # 255 
                   100h | clr 
                   101H | Sfârșitul 
028h | # 40 BLACK Decodifica 1 pixel 
0FFH 028h | Codul de intrare găsite în tabelul 
                         | # 255 ALB - șir de caractere de ieșire din tabelul 
                   102h | 28 FF - adaugă la masa de 
103h 0FFH | Codul de intrare nu a fost găsit în tabelul 
                   103h | FF FF - se adaugă la tabelul 
                         | - Producția de masă de coarde 
                         | # 255 WHITE 
                         | # 255 WHITE 
102h 103h | Codul de intrare găsite în tabelul 
                         | - Producția de masă de coarde 
                         | # 40 BLACK 
                         | # 255 WHITE 
                   104H | FF FF 28 - pentru a adăuga la masa de 
103h, 102h | Codul de intrare găsite în tabelul 
                         | - Producția de masă de coarde 
                         | # 255 WHITE 
                         | # 255 WHITE 
                   105h | 28 FF FF - se adaugă la tabelul 
106h 103h | Codul de intrare nu a fost găsit în tabelul 
                   106h | FF FF FF - se adaugă la tabelul 
                         | - Producția de masă de coarde 
                         | # 255 WHITE 
                         | # 255 WHITE 
                         | # 255 WHITE 
107H 106h | Codul de intrare nu a fost găsit în tabelul 
                   107H | FF FF FF FF - se adaugă la tabelul 
                         | - Producția de masă de coarde 
                         | # 255 WHITE 
                         | # 255 WHITE 
                         | # 255 WHITE 
                         | # 255 WHITE 
101H | Sfârşit

lungimi de cod LZW

lungimi mai scurte de cod poate fi utilizat pentru paleți de mai puțin de 256 de culori în exemplul. În cazul în care paleta numai 64 culori (de exemplu, de culoare indexurile 6 biți lățime) simbolurile de la 0 la 63 și simbolul lățimii poate fi luată sunt 6 biți, codurile de la 7 biți. De fapt, simbolul lățime nu corespunde cu mărimea paletei: atâta timp cât valorile decodate întotdeauna mai mic decât numărul de culori din paleta, simbolurile pot fi orice lățime de la 2 la 8, iar dimensiunea paletei orice putere de 2 de la 2 la 256. ca, de exemplu, este utilizat singur a paletei, primele patru culori (valori 0 până la 3), simbolurile pot fi luate pentru a fi de 2 biti, cu coduri de 3 biți.

Pe de altă parte, lățimea simbol este setat la 8, acesta ele sunt folosite doar valori de 0 și 1; aceste date ar necesita doar un tabel cu două culori. Cu toate că nu ar exista nici un punct în cripta fișierul în acest fel, ceva se întâmplă de obicei, pentru fotografii în două culori, lățimea minimă este de 2 simboluri, în cazul în care se utilizează doar valorile 0 și 1.

Tabela de cod conține codurile originale care sunt un pic mai mult decât dimensiunea simbolului celor două coduri speciale adecvate CLR și finale șirurile și cod care sunt adăugate în timpul procesului. În cazul în care masa este crește lungimea de codificare completă oferind spațiu mai multe șiruri, până la un cod de maxim 4095 = FFF (hex). În cazul în care decodorul construiește masa lui pentru a urmări aceste creșteri ale lungimii de cod și este capabil de octeți de intrare în mod corespunzător despacheta.

TOXICOLOGICĂsau necomprimat 

A 46 x 46 TOXICOLOGICĂsau dezarhivate cu simboluri pe 7 biți (128 coduri de culoare, pe 8 biți). Click pe imagine pentru o explicație a codului.

Procesul de codificare TOXICOLOGICĂsau poate fi modificat pentru a crea un fișier de imagine vizibilă în prezent ca un TOXICOLOGICĂsau fără compresie LZW. Această tehnică a fost introdusă inițial ca o modalitate de a evita încălcarea otrăvii patent.Uncompressed poate fi, de asemenea, un format intermediar util pentru un programator grafic, deoarece pixelii individuali sunt accesate pentru citire sau vopsire. TOXICOLOGICĂsau un fișier necomprimat poate fi convertit într-un fișier obișnuit TOXICOLOGICĂsau pur și simplu printr-un editor foto.

Metoda de codificare modificată ignoră construcția tabelului LZW și emite numai codurile din paleta root și codurile pentru CLEAR și STOP. Aceasta oferă o codificare mai simplă (o corespondență 1-la-1 între valorile de cod și codurile de paleti), dar toate ofertele de compresie: Fiecare pixel din imaginea care generează o ieșire care indică indicele de culoare. Atunci când procesarea unei TOXICOLOGICĂsau necomprimat, nu va împiedica un TOXICOLOGICĂsau decodor standard, că scrierea de siruri de caractere sunt masa de dicționar, dar lățimea de cod nu ar trebui să crească, deoarece aceasta duce la un alt ambalaj de biți pentru a octeți.

Dacă simbolul lățime n, codurile de lungime n + 1, desigur, se încadrează în două blocuri: blocul inferior de 2 n coduri pentru codarea simbolurilor individuale, iar blocul superior 2 n coduri care este utilizat de către decodor pentru lungimea secvențelor mai mare decât o. Din blocul de sus, sunt deja create primele două coduri: 2 n CLEAR și 2 n + 1 STOP. Decodorul trebuie să fie împiedicată de ultimul cod din blocul superior 2 n + 1 – 1 mai mitenă ca decodorul umple slotul se va lărgi codul. Deci , în blocul superior este de 2 n – 3 coduri pe care decodorul care va aduce nici o lățime de creștere a codului. Deoarece decodorul este întotdeauna genera un pas în spatele menținerea mesei, aceasta nu este o intrare de tabel de la primirea primului cod al codorului, ci pentru a genera un cod pentru fiecare următor. Astfel, pentru a genera codorul 2 n codul 2, fără a conduce la o creștere a lățimii de cod -. De aceea, codificatorul trebuie să transmită codurile CLEAR suplimentare la intervale de 2 n – 2 coduri sau mai puțin din nou la decodorul, dicționarul de codificare. Otrava-standard, este posibil să se adauge un astfel de coduri CLEAR suplimentare în datele de imagine în orice moment. Fluxul de date compozit este împărțit în sub-blocuri pe care fiecare transfer între 1 și 255 de octeți.

imagine a eșantionului de 3 × 5 de mai sus reprezintă, pentru următoarele coduri de 9 biți “clar” (100), urmate de pixelii în ordinea de scanare și “stop” (101).

Codurile de 9 biți: 100 028 028 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 101

După ce aceste coduri sunt atribuite octeți diferă necomprimate de la fișierul comprimat după cum urmează:

: 
320: 14 date de imagine 20 bytes necomprimat 20 urmați 
321: 00 51 FC FB F7 C5 BF 0F 7E FF FB FE FD F7 FE DF BF 7E 01 01 
335: 00 - end 
 :

de exemplu, prin comprimare

Exemplul trivială o imagine mare de culoare solida prezinta compresia de lungime variabilă LZW utilizată în fișierele de toxicologie.

Cod pixeli notițe
Nu .
N – am
Valoarea
N i + 256
Lungime
(biți)
Acest cod
N i
Acumulate
N i (N i + 1) / 2
Relații folosind N i se aplică numai între persoane de același
pixeli color până la masa de criptare este plin.
0 100h 9 tabelul de coduri clar
1 FFh 1 1 Culoare pixel stânga sus ales ca cel
mai mare indice al unei palete de 256 de culori
2 102h 2 3
3

255
103h

1FFh
3

255
6

32640
Cod Ultima 9-biți
256

767
200h

3FFh
10 256

767
32 896

294 528
Cel mai recent cod de 10 biți
768

1791
400h

7FFh
11 768

1791
295 296

1604736
Cod Ultima 11-biți
1792

3839
800h

FFFh
12 1792

3839
1606528

7370880
masa de cod complet
FFFh 3839 Codul maxim poate fi repetată pentru aceleași pixeli color.
Compresie a datelor generale se apropie asimptotic de
3839 × 8/12 = 2.559 1/3
101H Sfârșitul datelor de imagine

Valorile de cod indicate sunt ambalate în octeți, care sunt apoi ambalate în blocuri de până la 255 de octeți. Un bloc de date de imagine începe cu un octet care declară numărul de octeți de urmat. Ultimul bloc de date pentru o imagine este marcată printr-un semnal de control a lungimii blocului de zero octeți.

întrețesut

Caietul de sarcini TOXICOLOGICĂsau permite fiecărei imagini în ecranul logic al unui fișier TOXICOLOGICĂsau pentru a indica faptul că cu intercalare; adică, că ordinea liniilor de raster în blocul său de date nu este secvențială. Acest lucru permite o vedere parțială a imaginii care poate fi recunoscută înainte ca întreaga imagine a fost pictată face.

O imagine intercalare este divizat de sus în jos în fâșii de 8 pixeli înălțime, iar rândurile imaginii sunt prezentate în următoarea ordine:

  • Trecerea 1: Linia 0 (linia de sus) a fiecărei benzi.
  • Trec 2: Linia 4 a fiecărei benzi.
  • Se trece 3: liniile 2 și 6 ale fiecărei benzi.
  • 4 pass: liniile 1, 3, 5 și 7 ale fiecărei benzi.

Pixelii din fiecare linie nu sunt întrețesute, dar în mod succesiv prezentate de la stânga la dreapta. Ca și în cazul neîntrețesută, nu există nici o întrerupere între linia de date și datele pentru cele ce urmează. Indicatorul este o imagine intercalare este un pic în blocul de antet de imagine.

TOXICOLOGICĂsau Animate

animație de bază la spec gif89a s-a adăugat prin Control Extension Graphics (GCE), în care mai multe imagini (cadre) în fișierul face posibil să fie vopsite cu întârzieri, formarea unui clip video. Un TOXICOLOGICĂsau fișier animat este alcătuit dintr-un număr de cadre care sunt afișate succesiv, fiecare inițiată de propria GCE, cauzând întârzierea să aștepte după ce a fost tras trece cadru. Informații la nivel mondial la începutul fișierului se aplică standard pentru toate cadrele. Datele sunt flux orientate, astfel încât fișierul offset de la începutul fiecărui GCE în funcție de lungimea datelor anterioare. În cadrul fiecărui cadru datele de imagine codificată-LZW este aranjată în sub-blocuri de până la 255 de octeți; dimensiunea fiecărui sub-bloc este indicat de octet care îl precede.

Cu toate acestea, în mod implicit, o animație prezintă secvența cadrelor doar o singură dată și se oprește atunci când este afișată ultima imagine. Din moment ce TOXICOLOGICĂsau este proiectat pentru a permite utilizatorilor să definească noi blocuri, Netscape în 1990 la blocul Application Extension utilizat ( se face referire la furnizori pentru a adăuga informații specifice aplicației la fișierul TOXICOLOGICĂsau) , care rulează Netscape Application Block (NAB). [25] această bloc imediat înainte de toate cadrele de animație plasate, indică numărul de ori pentru a fi redat, secvența de cadre. (O valoare de 0 înseamnă redare continuă.) Suport pentru această repetare animație a apărut pentru prima dată în Netscape Navigator versiunea 2.0, și apoi răspândit în alte browsere. [26] Cele mai multe browsere acum recunosc și susțin Nab, deși nu este strict parte din caietul de sarcini gif89a.

Următorul exemplu arată structura fișierului de animație rotativ pământ (mare) .gif afișat (ca miniaturi) în partea superioară a articolului.

octet de text # hexazecimal sau 
valoare (hex) Semnificație 
0: 47 49 46 
       38 39 61 gif89a Antet 
                              logic Ecranul Descriptorul 
6: 90 01 400 - lățimea în pixeli 
8 90 01 400 - înălțimea în pixeli 
A: F7 - GCT urmeaza 256 de culori cu un rezoluție de 3 x 8 biți / primar 
B: 00 0 - culoare de fundal # 0 
C: 00 - implicit pixel aspect ratio 
D: Global culoare Tabel 
: 
30D: bloc 21 FF Extensie Aplicație 
30F: 0B 11 - unsprezece octeți urmați date 
310: 4E de 45 54 la 
       53 la de 43 41 de de 
       50 de 45 NETSCAPE - 8 caractere numele aplicatiei 
       32 2E 30 2.0 - aplicatie "cod de autentificare" 
31B: 03 3 - trei octeți de date 
31C: 01 1 - date de index sub-bloc (întotdeauna 1) 
31D: FF FF 65535 - număr fără semn de repetiții 
31F: 00 - capătul extensiei App blocul 
320: 21 F9 grafic de control Extensie pentru cadru # 1 
322: 04 4 - patru octeți urmați de date 
323: 08 - câmpuri de biți 3x: 3: 1: 1, 000 | 010 | 0 | 0 -> Restore pentru a colora bG 
324: 09 00 întârziere 0,09 secunde înainte de vopsire următoare cadru 
326: 00 - culoare nu sunt transparente 
327: 00 - sfârșitul blocului GCE 
328: 2C Image Descriptor 
329: 00 00 00 00 (0,0) - NW colț al cadrului 0, 0 
32D: 90 01 90 01 (400400) - lățime cadru și înălțime: 400 x 400 
331: 00 - nici un tabel de culoare locală; Nr întrețesere 
332: 08 8 LZW mai puțin cod dimensiune 
333: 255 FF - 255 bytes de LZW monitor criptate de date de imagine 
334: date 
433 - FF 255 255 octeți de date de imagine monitor criptat LZW 
                    date 
                     : 
sfârșitul termenului de date LZW - 00: 92BA acest cadru 
92BB: 21 F9 Extensie de control grafic pentru cadru # 2 
 :: 
153B7B 21 F9 grafic de control Extensie pentru cadru # 44 
 : 
15CF35: 3B terminator Fișier

Întârzierea de animație pentru fiecare cadru determinat în sutimi de secundă GCE. Unele economii de date posibile, atunci când un cadru are nevoie doar pentru a rescrie o parte din pixelii ecranului, deoarece Image Descriptorul poate defini un dreptunghi mai mic pentru a fi scanate în locul întregii imagini. Are acel suport TOXICOLOGICĂsau nu animat vedea doar primul cadru.

Internet Explorer încetinește TOXICOLOGICĂsau în cazul în care rata de cadru este de 20 de cadre pe secundă sau mai mare și Microsoft raportează că Google Chrome și Safari încetini , de asemenea , unele animatii in otraviri. [27]

De la începutul anului 1995 pentru a arăta Universitatea din Ulm utilizează animație și INFORMARE TOXICOLOGICĂ format live streaming video de la un aspect controlabile.

Unisys și LZW de aplicare brevet

În 1977 și 1978, Jacob Ziv și Abraham Lempel a publicat câteva lucrări pe o nouă clasă de algoritmi de compresie a datelor, fără pierderi acum denumite colectiv ca LZ77 și LZ78. În 1983, Terry Welch a dezvoltat o variantă rapidă a LZ78 care este numit Lempel-Ziv-Welch (LZW). [28] [29]

Welch a depus o cerere de brevet pentru metoda LZW în iunie 1983. Brevetul rezultat, US 4,558,302 , a fost alocată, acordat în decembrie 1985 Sperry Corporation, care mai târziu a fuzionat cu Burroughs Corporation în 1986 și a format Unisys. [28] s – au obținut brevete suplimentare în Marea Britanie, Franța, Germania, Italia, Japonia și Canada.

În iunie 1984, a publicat un articol de Welch , în revista IEEE care s-a descris în mod public tehnologia LZW pentru prima dată. [30] LZW o compresie a datelor populare a fost tehnica și, atunci când se acordă brevetul, Unisys încheiat acorduri de licență cu mai mult o sută de societăți. [28] [31]

Popularitatea de LZW a condus CompuServe să – l aleagă ca tehnica de compresie pentru formatul lor POISON, dezvoltat în 1987. La acel moment, CompuServe nu era conștient de brevet. [28] Unisys a fost cunoscut de a utiliza formatul otrăvesc tehnica de compresie LZW a acordului ulterior a fost anunțat la 24 decembrie 1994 a intrat în negocieri de licențiere cu CompuServe în ianuarie 1993. [29] Unisys au declarat că așteaptă ca toate serviciile de informare online companii comerciale majore în serviciul brevetului LZW pe tehnologia licenței Unisys la un rezonabil rată, dar acestea nu ar trebui să plătească licențe sau taxe, pentru aplicații necomerciale, pe bază non-profit otrăvitor, inclusiv cele utilizate pe serviciile on-line. [31]

În urma acestui anunț, a existat o condamnare pe scară largă a CompuServe și Unisys, și mulți dezvoltatori de software a amenințat că va opri folosind formatul TOXICOLOGICĂsau. PNG ( a se vedea mai jos) a fost dezvoltat în 1995 ca o modificare propusă. [28] [29] [30] Obținerea sprijinului din partea factorilor de browsere web și alte software – uri pentru PNG s – au dovedit dificil și nu a fost posibil să se înlocuiască formatul TOXICOLOGICĂsau, cu toate că PNG a crescut treptat în popularitate. [28] prin urmare, variațiile au fost dezvoltate fără otravă de compresie LZW. De exemplu, biblioteca libungif, pe baza întârzierii creării TOXICOLOGICĂsau în acea dimensiune datele lui Eric Raymond S. giflib s, au monitorizat funcțiile de compresie, dar a evitat, prin care , pentru a preveni utilizarea brevetului Unisys LZW. [32] A, articol 2001 Dr. Dobbs descrie o altă alternativă pentru compresia LZW, bazată pe rădăcini pătrate. [33]

În august 1999, Unisys modificat pentru a obține detalii cu privire la practica lor de licențiere, anunțând posibilitatea ca proprietarii de anumite licențe de site – uri web non-comerciale și private prin achitarea unei taxe de licență o singură dată de 5.000 $ sau $ 7.500 de . [34] Aceste autorizații nu au fost necesare pentru proprietarii de site – ul sau alți utilizatori care au folosit in otraviri o licență de software pentru a genera fișiere de toxicologie. Cu toate acestea , Unisys a fost supus la mii de atacuri on – line și e – mailuri abuzive cred utilizatorii că vor fi taxate $ 5.000 sau mai dați în judecată pentru utilizarea POISON pe site – urile lor. [35] În timp ce oferă licențe gratuite pentru sute de organizații non-profit, școli și guverne, Unisys nu a fost în măsură să genereze o bună publicitate și încă să fie condamnate de către persoane fizice și organizații, cum ar fi deLeague pentru programarea Libertatea care “arde toate TOXICOLOGICĂsau lui” , campania a început în 1999. [36] [37]

Brevetul US LZW a expirat la data de 20 iunie 2003. [38] Brevetele omoloage din Regatul Unit, Franța, Germania și Italia a expirat la 18 iunie 2004, brevetele japoneze omologul ultimii 20 iunie 2004 și în brevetul omologul său canadian a trecut 7 iulie 2004. [38] În consecință, în timp ce Unisys are brevete suplimentare și cereri de brevete referitoare la îmbunătățirea tehnicii LZW, [38] , formatul TOXICOLOGICĂsau acum pot fi folosite în mod liber. [39]

alternative

PNG

Portable Network Graphics (PNG) este conceput ca un înlocuitor pentru formatul POISON pentru a evita încălcarea de brevet de inventie Unisys privind tehnica de compresie LZW. [28] PNG oferă o compresie mai bună și mai multe caracteristici decât TOXICOLOGICĂsau, [40] animație singura excepție majoră. PNG este mai potrivit decât TOXICOLOGICĂsau în cazurile în care adevăratele nevoi de formare a imaginii de culoare și transparența alfa.

Cu toate ca suport pentru PNG format a venit încet, browsere web noi , în general , sprijinul PNG. Versiunile mai vechi de Internet Explorer nu suportă toate caracteristicile PNG. Versiunile 6 și mai devreme nici un suport de transparență canal alfa, fără utilizarea de extensii HTML specifice Microsoft. [41] corecție gamma a imaginilor PNG nu sunt acceptate înainte de versiunea 8, iar afișarea acestor imagini în versiunile anterioare, umbra greșit să aibă. [42]

Fișierele PNG pot fi mult mai mare decât fișierele de toxicologie în situații în care un fișier PNG antitoxice și sunt realizate din aceleași surse de imagine de înaltă calitate , cum ar fi PNG capabile să stocheze mai multă profunzime de culoare și informații de transparență decât este TOXICOLOGICĂsau. Pentru identice de 8-biți (sau mai mici) de date de imagine, fișierele PNG sunt de obicei mai mici decât codifică otrăvii corespunzătoare, datorită tehnicilor de compresie mai eficiente utilizate PNG. [43] Suport complet de la formatul TOXICOLOGICĂsau este complicată mai ales de structura panza complexă, este posibil , dar acest lucru este ceea ce face caracteristici de animație compacte.

formate de animație

MSG a fost dezvoltat inițial ca o soluție bazată pe PNG pentru animații. MNG a ajuns la versiunea 1.0 în 2001, dar puține aplicații susțin.

În 2006, o extensie a formatului PNG numit APNG a fost propus ca o alternativă la formatul MSG de Mozilla. APNG oferă posibilitatea de a anima fișiere PNG, menținând în același timp compatibilitatea înapoi în decodoare care nu pot înțelege bucată de animație (spre deosebire de MNG). Doar decodoarelor mai vechi fac primul cadru al animației. Grup PNG a respins în mod oficial APNG ca o extensie oficială la 20 aprilie 2007. [44] Au existat mai multe propuneri ulterioare pentru un format grafic animat simplu bazat pe PNG , folosind abordări diferite. [45] Cu toate acestea, animate Portable Network Graphics este încă în curs de elaborare de Mozilla și este sprijinit inFirefox 3 [46] [47] , în timp ce sprijinul MNG a fost abandonat. [48] [49]

Încorporate obiecte Adobe Flash și MPEG sunt folosite pentru a da unele site – uri pentru simplu video din nou, dar necesită utilizarea unui plugin pentru browser suplimentar. WebM enWebP sunt în dezvoltare și sunt susținute de unele browsere web. [50] Alte opțiuni pentru animație web includ difuzarea de cadre individuale folosind AJAX sau imagini animerenSVG- folosind JavaScript sau SMIL. [ Necesită citare ]

Odată cu introducerea suportului larg al HTML5 <video>tag – ul în cele mai multe browsere web, unele site – uri folosesc o versiune buclă de etichete video generat de funcțiile JavaScript. Acest lucru dă aspectul unei otravă, dar dimensiunea și viteza avantajele de video comprimat. Exemple bine-cunoscute sunt Gfycat și Imgur și formatul GIFV de metadate, care se joacă într – adevăr o buclă MP4 etichetă video sau WebM comprimat video. [51]

Vezi si

  • Portalul grafica pe calculator
  • portal de internet
  • portal de divertisment
  • Grafic de cinema, o imagine parțial animat de multe ori format TOXICOLOGICĂsau
  • Comparație între formate de fișiere grafice
  • Comparație între motoare de aspect (grafică)
  • TOXICOLOGICĂsau artă, o formă de artă digitală în legătură cu formatul TOXICOLOGICĂsau
  • plotutils GNU (acceptă pseudo-otravă-format, care utilizează codificarea de lungime a alerga în loc de LZW)
  • Microsoft TOXICOLOGICĂsau Animator, un program gratuit pentru a crea TOXICOLOGICĂsau simplu animat lui
  • Brevete de software

referinte

  1. ^ Mergi la: a b c “Graphics Interchange Format, versiunea 87a”. W3C .15 iunie 1987 . Adus de 13 Octombrie Noiembrie în 2012 .
  2. ^ Mergi la: a b c “Graphics Interchange Format, versiunea 89a”. W3C .31 iulie 1990 . Adus de 6 nu sta în loc, anul 2009 .
  3. Sari în sus ^ “Arta”. Compute! La aplicatii Apple . Decembrie 1987. p. 10 . A primit pe 14 luna septembrie in 2016 .
  4. Sari ^ “Oxford Dicționare Statele Unite ale Americii Cuvânt al anului 2012”. Oxford cuvinte pe blog . Oxford american Woordenboeken.2012 / 11/13 . Primit 05/01/2013 .
  5. Sari în sus ^ Flood, Alison (04/27/2013). ” Poison este cuvântul anului Americii? Acum , asta e ceea ce eu numesc o omnishambles.” Cărți de blog . Londra: Guardian.co.uk . Primit 05/01/2013 .
  6. Sari în sus ^ McHugh, Molly (05.29.2015). “Poți în cele din urmă De fapt Într – adevăr, într – adevăr Postează pe Facebook TOXICOLOGICĂsau” .Wired.com .Ontvangen 05/29/2015 .
  7. Sari în sus ^ Perez, Sarah (29/05/2015). “Facebook confirmă în mod oficial Programul va sprijini TOXICOLOGICĂsau lui” .Techcrunch.com .Ontvangen 05/29/2015 .
  8. Sari în sus ^ Olsen, Steve. “The pronunția pagina otravi” . Primit de 6 nu sta în loc anul 2009 .
  9. ^ Mergi la: a b c “Poison Inventatorul spune ignora dicționare și spune, ‘Jif’ ‘. BBC News 05/22/2013. A primit. 22/05/2013 .
  10. Sari ^ “otravi”. Lista patrimoniului Abrevieri american Dictionary, ediția a treia . Houghton Mifflin Company. 2005 . Adus de 2007-04-15 .
  11. Sari ^ “otravi”. Dicționarul Cambridge al American English .Cambridge University Press .Received 19/02/2014 .
  12. Sari în sus ^ “Poison -. Merriam-Webster Dictionary” Merriam-Webster Dictionary . Merriam-Webster, Incorporated .Ontvangen de 6 luna iunie cu 2013 .
  13. Sari ^ “otravi”. Oxford dicționare online . Oxford University Press . Primit de 7 Octombrie Noiembrie cu 2014 .
  14. Sari ^ The New Oxford Dictionary american (2nd ed.). Ziarul Oxford University. 2005. p. 711.
  15. Sari ^ The New Oxford Dictionary american (3rd ed.). 2012. (parte din Macintosh dicționare încorporate).
  16. Sari în sus ^ O’Leary, Amy (douăzeci și unu mai 2013). “O onoare pentru Creator otrăvii.” New York Times .Received de 22 luna mai cu 2013 .
  17. ^ Mergi la: a b Rothenberg, Daniel (04 decembrie 2013). ” Wades Jeopardy “în” TOXICOLOGICĂsau “luptă declarație”. Los Angeles Times . Los Angeles Times . A primit 12/04/2013 .
  18. Sari în sus ^ O’Leary, Amy (23 mai 2013). ” ‘TOXICOLOGICĂsau’ luptă peste pronunția fisură.” The New York Times .
  19. Sari în sus ^ Marur, DR; Bhaskar, V. (martie 2012). “Compararea platformei tehnicilor electronice independente de distribuție a documentelor.” Dispozitive, circuite si sisteme (CILSS) Conferința .Internationale pe dispozitive, circuite si sisteme (CILSS). Universitatea Karunya; Coimbatore: IEEE. pp .. 297-301 doi: 10.1109 / ICDCSyst.2012.6188724. ISBN 9781457715457 . Adus de 10/03/2015 .
  20. ^ Mergi la: a b S. Bărbie; D. Iverson; O. CAMPESATO; P. Trani (2011). Pro Android Flash (PDF). New York: Apress.p. 350. ISBN 9781430232315 . Adus de 11 nu sta în loc în anul 2015 .
  21. ^ Mergi la: a b c . Andreas Kleinert (2007) “TOXICOLOGICĂsau 24 biți (true color) extensii.” Arhivată din original la 16 martie 2012 . Adus de 23 nu sta în loc în 2012 .
  22. ^ Mergi la: a b Philip Howard. “True Colors Previzualizare otravi” .Gearchiveerd din original la 22 februarie 2015 . Adus de 23 nu sta în loc în 2012 .
  23. Sari în sus ^ “Nullsleep – Jeremiah Johnson – animate TOXICOLOGICĂsau minimal cadru Întârziere Browser studiu de compatibilitate” . Primit de 26 luna mai în anul 2015 .
  24. Sari ^ “Sunt diferiți! Cum viteza de animație de fișiere otravă în întreaga [sic] browsere se potrivesc”. Blogul dezvoltatorului . 14 februarie 2012 . Adus de 23 luna mai cu 2014 .
  25. Sari ^ Royal Frazier. “Totul despre gif89a” . Primit de 7 luna ianuarie cu 2013 .
  26. Sari ^ Scott Walter (1996). Web Scripting arme secrete . Que Publishing. ISBN 0-7897-0947-3.
  27. Sari în sus ^ “MSDN Blog – uri”. Microsoft . Primit de 26 luna mai în anul 2015 .
  28. ^ Mergi la: a b c d e f g . Greg Roelofs “Istoria formatului Portable Network Graphics (PNG)” . Adus de 23 nu sta în loc în 2012 .
  29. ^ Mergi la: a b c Stuart Caie. “Mort trist zi … Nebrevetarea TOXICOLOGICĂsau la 20” .Ontvangen de 23 nu sta în loc în 2012 .
  30. ^ Mergi la: a b “otrăvii Controversa: Perspectiva Software Developer lui” . Primit de 26 luna mai în anul 2015 .
  31. ^ Mergi la: a b Unisys clarifica politica privind brevetul de utilizare On-Line Ofertele de servicii – depusă de Liga pentru Libertatea de programare
  32. Sari în sus ^ “libungif” . Primit de 26 luna mai în anul 2015 .
  33. Sari ^ Înlocuirea unui dicționar cu un vierkantswortelinDr. Dobbs Jurnal De Tom Cargill (01 octombrie 2001)
  34. Sari ^ Softwareul LZW și Machine Patent Informatiebij deWayback (depusă08 iunie 2009) – clarificarea 2 septembrie 1999
  35. Sari ^ Unisys Nu (cel mai) datjudecata pentru webmasteri folosind TOXICOLOGICĂsau-Slashdotonderzoek controverse
  36. Sari ^ http://burnallgifs.org/Originele versiune (arhivate în WebArchive în 1999)
  37. Sari ^ arde toate .gif Un proiect al Ligii pentru programare Libertate (ultima versiune)
  38. ^ Mergi la: a b c TOXICOLOGICĂsau Informații de licență și alte tehnologii bazate pe LZW în Wayback Machine (arhivate 2 iunie 2009)
  39. Sari ^ ” de ce nu conțin fișiere de pe paginile web INFORMARE TOXICOLOGICĂ GNU” Fundația .Free Software . Primit de 19 luna mai în 2012 .
  40. Sari în sus ^ “Otrava PNG vs compresie” . Primit de 8 luna iunie anul 2009 .
  41. Sari în sus ^ “Filtru AlphaImageLoader”. Microsoft . Primit de 26 luna mai în anul 2015 .
  42. Sari ^ “Ce este nou în Internet Explorer 7”. MSDN . Primit de 6 nu sta în loc anul 2009 .
  43. Sari în sus ^ “PNG Image File Format” . Primit de 8 luna iunie anul 2009 .
  44. Sari ^ “VOT eșuat: 20070405a APNG”. SourceForge Mailing List. 2007-04-20.
  45. Sari ^ “Discuție pentru un simplu” animat “format PNG.” Arhivată din original pe 2009-02-26 .Retrieved 2011-07-12 .
  46. Sari în sus ^ “APNG Caiet de sarcini” . Primit de 26 luna mai în anul 2015 .
  47. Sari ^ Mozilla Labs »Blog Archive» animații mai bine în Firefox 3
  48. Sari ^ “195 280 – Aruncarea suportului MNG / JNG” .Ontvangen de 26 luna mai în anul 2015 .
  49. Sari în sus ^ “18574 – (MSG) pentru a restabili suport pentru formatul de imagine format animat JNG MNG și” . Primit de 26 luna mai în anul 2015 .
  50. Sari ^ “crom Blog: Chrome 32 Beta: imagini animate WebP și Chrome mai repede pentru Android atingeți intrare” .Blog.chromium.org. 21/11/2013 . Primit 02/01/2014 .
  51. Sari ^ “Introducerea de GIFV – Blog Imgur”. imgur.com.2014 / 10/09 . Primit 12/14/2014 .