గిఫ్

గిఫ్ అన్నది ఆంగ్ల G, I, F పొడి అక్షరాల ద్వారా వచ్చిన పదం. Graphics Interchange Format కు సంక్షిప్త రూపం.
గిఫ్ అనేది చిత్రాలకు సంబంధించిన ఒక సంప్రకారం. కంప్యూసర్వ్ ద్వారా 1987 లో క బిట్మ్యాప్ చిత్ర సంప్రకారంగా ఆవిష్కరించబడింది.
ఈనాడు ఒక చలనంలో గల స్థిర చిత్రాన్ని చూపేందుకు ఇదే సంప్రకారాన్ని ప్రపంచవ్యాప్తంగా వాడుతున్నాము.
ఈ సంప్రకారంలో ఒక్కో చిణువు (pixel) లో 8 బిట్లు అమర్చుకునే సౌలభ్యం ఉండటంవల్ల, 256 వేరు వేరు రంగుల్లో మనం చిత్రాన్ని చూపవచ్చు.
RGB (**R** - ఎరుపు **G** - అకుపచ్చ **B** - నీలం) రంగు స్థానలను వాడి ఈ రంగులను కోడీకరిన్చవచ్చు.తక్కువ రంగులు ఉండటం కారణంగా ఈ సంప్రకారాన్ని కొద్దిపాటి చిత్రాలు, ముద్రిక, గ్రాఫిక్ చిత్రాలు వంటివి చెయ్యటానికి అనువుగా ఉంటుంది.
పేటెంట్ హక్కుల వివాదాల వల్ల ఈ సంప్రకారం, PNG అనే కొత్త సంప్రకారానికి దారి తీసింది.

## చరిత్ర
thumb|240x240px|Animated gif
1987 లో కంప్యూసర్వ్ సంస్థ గిఫ్ ఫార్మటును ప్రవేశపెట్టింది. వాళ్ళ కంపెనీ వెబ్సైటులో ఉండే దిగుమతి లంకెల కొరకు పూర్వం ఉండే RLE ఫార్మటుకు బదులుగా దీన్ని ప్రవేశపెట్టారు. దీనికి కారణం RLE ఫార్మటు కేవలం నలుపు, తెలుపు రంగులను వినియోగించడమే.

GIF ఫార్మాట్ యొక్క అసలు వెర్షన్ 87a గా పిలిచారు. 1989 లో, CompuServe 89a అనే మెరుగుపరచబడిన వెర్షన్ విడుదల చేసింది. ఇది యానిమేషన్ జాప్యాలు కోసం మద్దతు (ప్రవాహంలో బహుళ చిత్రాలు ఇప్పటికే 87a మద్దతు చేయబడ్డాయి), పారదర్శక నేపథ్యం రంగులు, అప్లికేషన్ నిర్దిష్ట మెటాడేటా నిల్వ జోడించారు.89a స్పెసిఫికేషన్ వచన (గ్రాఫికల్ డేటా వాటిని ఎంబెడ్డింగ్ కాదు) వంటి టెక్స్ట్ లేబుల్స్ కలుపుకొని మద్దతు, కానీ ప్రదర్శన ఫాంట్లు మీద కొంచం నియంత్రణను ఉంది, ఈ ఫీచర్ విస్తృతంగా ఉపయోగించడం లేదు.రెండు వెర్షన్లు ఫైల్ ( "మ్యాజిక్ సంఖ్య" లేదా "సంతకం"), ఇది, ASCII అన్వయించి ఉన్నప్పుడు, "GIF87a", "GIF89a" చదివి వరుసగా మొదటి ఆరు బైట్లు చూడటం ద్వారా వేరు చేయవచ్చు.

కంప్యుసర్వ్ అనేక కంప్యూటర్లను కోసం డౌన్లోడ్ మార్పిడి వినియోగాలు అందించడం ద్వారా GIF స్వీకరణ ప్రోత్సహించింది.డిసెంబరు 1987 నాటికి, ఉదాహరణకు, ఒక ఆపిల్ IIGS యూజర్ ఒక అటారి ST లేదా కమోడోర్ 64. పై రూపొందించినవారు చిత్రాలు వీక్షించడానికి కాలేదు. GIF బ్లాక్ అండ్ వైట్ XBM అనే పిలుస్తారు. సాధారణంగా వెబ్ సైట్లలో ఉపయోగించడానికి మొదటి రెండు చిత్రం ఫార్మాట్లలో ఒకటి.

సెప్టెంబరు 1995 లో నెట్స్కేప్ నావిగేటర్ 2.0 లూప్ యానిమేటెడ్ GIF లు కోసం సామర్థ్యాన్ని జోడించింది.

కంట్రోల్ డేటా కలిసి ఒక ఫైల్ లో బహుళ చిత్రాలు నిల్వ చెసే లక్షణం, సాధారణ యానిమేషన్లు ఉత్పత్తి వెబ్ లో విస్తృతంగా ఉపయోగిస్తారు. మరియూ ఒక పాక్షికంగా డౌన్లోడ్ చెసిన చిత్రం కొంతవరకు గుర్తించదగినదిగా ఉండి అలాంటి ఒక పద్ధతిలో క్రమంలో బయటకు చిత్రం స్కాన్ చెసిన కూర్పును (ఫ్రేం) చూపించే ఫీచర్ కూడా GIF యొక్క ప్రజాదరణకు సహాయపడింది, కాకుంటే ఒక యూజర్ డౌన్లోడ్ ఆపగలిగే అవకాశమున్నందున ఇది అవసరమైంది.

మే 2015 లో ఫేస్‌బుక్ వారు మొదట తమ సైట్ ఆ ఫొర్మట్ కి సహకారం లేదు అయినప్పటికీ, తరువాత GIF మద్దతు జోడించబడింది.

## వాడుక

* GIF లు రంగులు పరిమిత సంఖ్యలో పదునైన కొనలను లైన్ కళ (వంటి లోగోలు) అనుకూలంగా ఉంటాయి.ఈ బాగా నిర్వచించిన అంచులతో ఏకరీతి రంగు యొక్క సమతల ప్రాంతాల్లో అనుకూలంగా ఇది ఫార్మాట్ యొక్క సమాచారం నష్టపోకుండా కుదింపు, ప్రయోజనాన్ని తీసుకుంటుంది.
* GIF లు తక్కువ రంగు (స్ప్రైట్) కంప్యూటర్ గ్రాఫిక్స్ నిల్వ ఉపయోగించవచ్చు.
* GIF లు చిన్న యానిమేషన్లు, తక్కువ రిజల్యూషన్ చిత్ర కోసం ఉపయోగించవచ్చు.

## ఫైల్ ఫార్మాట్

భావపరంగా, ఒక GIF ఫైల్ ఒక స్థిర-పరిమాణం గ్రాఫికల్ ప్రాంతంలో ( "తార్కిక తెర") సున్నా లేదా ఎక్కువ "చిత్రాలు"తో జనాభా వివరిస్తుంది.అనేక GIF ఫైళ్లు మొత్తం తార్కిక స్క్రీన్ నింపే ఒక చిత్రం కూడా.ఇతరత్రా ప్రత్యేక ఉప చిత్రాలను తార్కిక స్క్రీన్ విభజించడానికి.చిత్రాలు ఒక యానిమేటెడ్ GIF ఫైల్ లో యానిమేషన్ ఫ్రేముల మాదిరిగా పనిచేస్తుంది, కానీ మళ్ళీ ఈ మొత్తం తార్కిక స్క్రీన్ పూరించడానికి అవసరం లేదు.

GIF ఫైళ్లు ఒక నిర్దిష్ట-పొడవు శీర్షిక ( "GIF87a" లేదా "GIF89a") వెర్షన్ ఇవ్వడం, పరిమాణం, తార్కిక తెర ఇతర లక్షణాలు ఇవ్వడం ఒక స్థిర-పొడవు లాజికల్ స్క్రీన్ వర్ణన తరువాత ప్రారంభం.స్క్రీన్ వర్ణన కూడా ఉన్నట్లయితే తదుపరి అనుసరించే ఒక గ్లోబల్ రంగు పట్టిక యొక్క ఉనికిని, పరిమాణం తెలియచేయవచ్చు.

ఆ తరువాత, ఫైలు భాగాలుగా విభజించబడింది, ఒక 1-బైట్ సెంటినెల్ ద్వారా పరిచయం ప్రతి:

* చిత్రం (0x2C, కామాతో పరిచయం', ' )
* పొడిగింపు బ్లాక్ (0x21, ఆశ్చర్యార్థకం పాయింట్ ద్వారా పరిచయం'!' )
* ట్రైలర్ (విలువ 0x3B, ఒక సెమీ కోలన్ యొక్క ఒక బైట్';' ) ఫైల యొక్క గత బైట్ ఉండాలి.

ఒక చిత్రం (పక్కన ఉంటే అనుసరిస్తుంది) ఒక స్థానిక రంగు టేబుల్ ఉనికిని, పరిమాణం తెలియచేయవచ్చు ఇది ఒక స్థిర-పొడవు ఇమేజ్ వర్ణన, తో మొదలవుతుంది.చిత్రం డేటా క్రింది: ఒక బైట్ LZW ఎన్కోడ్ డేటా కలిగి ఉప బ్లాకుల ఒక లింక్ జాబితా తరువాత (కూడా ద్వి వర్ణం చిత్రాలు, విస్తృత కనీసం 2 బిట్స్ ఉండాలి ఇది) ఎన్-కొడ్ చెయబడని (unencoded) చిహ్నాల యొక్క బిట్ వెడల్పు ఇవ్వడం.

పొడిగింపు బ్లాక్స్ (ఇప్పటికే 87a స్పెక్ లో నిర్వచించబడిన విధానం ద్వారా 87a నిర్వచనం "విస్తరించడానికి" బ్లాక్ల) సెంటినెల్ ఒక అదనపు బైట్ పొడిగింపు రకం పేర్కొనడం, పొడిగింపు డేటా ఉప బ్లాకుల ఒక లింక్ జాబితా ఉంటాయి.ఒక చిత్రం (ఐచ్ఛిక యానిమేషన్ ఆలస్యం సమయం, ఐచ్ఛిక పారదర్శక నేపథ్యం రంగును పేర్కొనే గ్రాఫిక్ కంట్రోల్ పొడిగింపు వంటి) మార్చే పొడిగింపు బ్లాక్స్ వెంటనే వారు చూడండి చిత్రంతో విభాగంలో ముందు ఉండాలి.

చిత్రం డేటా, పొడిగింపు బ్లాక్స్ ద్వారా ఉపయోగిస్తారు లింక్ జాబితాలు ఉప బ్లాక్స్ సిరీస్ ఉంటాయి, ప్రతి సబ్-బ్లాక్ ఉప బ్లాక్ (1 255) తరువాతి డేటా బైట్లు సంఖ్య ఇవ్వడం ఒక బైట్ ప్రారంభించి.ఉప బ్లాక్స్ సిరీస్ ఒక ఖాళీ ఉప బ్లాక్ (0 బైట్) ద్వారా ముగిస్తారు.

ఈ నిర్మాణం అన్ని భాగాలు అర్థం ఉంటే ఫైలు కూడా అన్వయించడం అనుమతిస్తుంది.ఒక GIF మార్క్ 87a పొడిగింపు బ్లాక్స్ కలిగి ఉండవచ్చు;ఉద్దేశం వారిద్దరి డికోడర్ చదివి అర్థం లేదు పొడిగింపులలో కవర్ లక్షణాలు లేకుండా ఫైలు ప్రదర్శిస్తుంది ఉంది.

ఫైలు ఫార్మాట్ పూర్తి వివరాలు GIF (specifications) ల పొందుపరచి ఉంటుంది.

## పాలెట్స్
thumb|right|ఒక ఉదాహరణ GIF చిత్రాన్ని, సేవ్ వెబ్-సేఫ్ పాలెట్ తొ ఫ్లొయిడ్-స్టైంబర్గ్ పద్ధతి ద్వారా బొమ్మకి శబ్ధం (white noise) జొడించబడింది. రంగులు సంఖ్య తగ్గిన కారణంగా చిత్రం లో, ప్రదర్శన సమస్యలు ఉన్నాయి.

GIF బొమ్మలను ఒక వెబ్ సురక్షిత రంగులకుతో సేవ్ చెయ్యటం ఒక ఉదాహరణ, ప్లాయిడ్-స్టెన్ బెర్గ్ పద్ధతి ఉపయోగించి మార్ఫు చేస్తారు.చిత్రంలో రంగులు సంఖ్య తగ్గిపోయిన కారణంగా, ప్రదర్శన సమస్యలు ఉన్నాయి.

ఫైల్ లో ఒక చిత్రం (ఒక ఫ్రేమ్) లో ఉపయోగించే రంగులు 256 ఎంట్రీల వరకు జరపవచ్చని సూచించబడింది ఒక పాలెట్ పట్టికలో నిర్వచించిన వారి RGB విలువలు, చిత్రం వారి సూచీల ద్వారా రంగులు సూచించే డేటా కలిగి (: GIF పాలెట్ ఆధారిత ఉంది 0-255) పాలెట్ పట్టికలో.పాలెట్ రంగు నిర్వచనాలు షేడ్స్ మిలియన్ల (224 షేడ్స్, ప్రతి ప్రాథమిక 8 బిట్లు) ఒక రంగు స్పేస్ నుండి డ్రా చేయవచ్చు, కానీ, ఒక GIF ఫ్రేమ్ కి ఉపయోగించే రంగుల గరిష్ఠ సంఖ్య 256. ఎందుకంటే, ఈ ఫొర్మట్ ని అభివృద్ధి చేసినప్పుడు ఈ పరిమితి సహేతుకమైన అనిపించింది. ఉంది కొద్ది మంది ఒకేసారి మరిన్ని రంగులను ప్రదర్శించడానికి ప్రయత్నిస్తున్నాగా దాని హార్డ్ వేర్ స్తోమత బట్టి ఆధరపడి ఉంటుంది. సాధారణ గ్రాఫిక్స్, లైన్ డ్రాయింగ్లు, కార్టూన్లు, బూడిద ఎత్తున ఛాయాచిత్రాలను సాధారణంగా కంటే తక్కువ 256 రంగులు అవసరం.

కేటాయించిన ఈ ఇండెక్స్ యానిమేషన్ యొక్క మునుపటి ఫ్రేమ్ లెక్కింపబడిన ఉండవచ్చు నేపథ్యం, నుండి అదే స్థానంలో పిక్సెల్ యొక్క రంగు తీసుకుంటుంది ఏ పిక్సెల్: ప్రతి ఫ్రేమ్ ఒక "పారదర్శక నేపథ్యం రంగు" వంటి ఒక ఇండెక్స్ నిర్దిష్టంగా ఉంటుంది.

అనేక పద్ధతులు, సమష్టిగా కొంత అనిశ్చిత అని, రంగులు మధ్యలో ఇంచుమించుగా రెండు లేదా అంతకంటే ఎక్కువ వర్ణాలను పిక్సెళ్ళు ఉపయోగించి ఒక చిన్న కలర్ పాలెట్ తో రంగులు విస్తృతిలో ఇంచుమించుగా అభివృద్ధి చేయబడ్డాయి.ఈ పద్ధతులు లోతుగా రంగు స్పష్టత ఇంచుమించుగా స్పేషియల్ రిజల్యూషన్ త్యాగం.కోర్సు యొక్క GIF కాదు వివరణ భాగంగా, కొంత అనిశ్చిత చిత్రాలు ఉపయోగించవచ్చు ఉండగా తదనంతరం GIF చిత్రాలు ఎన్కోడ్.ఈ తరచుగా స్పేషియల్ రిజల్యూషన్ యొక్క నష్టం సాధారణంగా ఒక చిత్రం తెరపై మసక చూడండి, కొంత అనిశ్చిత నమూనాలు తరచుగా GIF యొక్క ప్రధాన ప్రయోజనం వ్యతిరేకంగా పని, ఇమేజ్ డేటా సంపీడనత్వం జోక్యం ఎందుకంటే చేస్తుంది రెండు ఎందుకంటే, GIF చిత్రాలు ఆదర్శవంతమైన పరిష్కారం కాదు.

గ్రాఫికల్ వెబ్ బ్రౌజర్ల ప్రారంభ రోజుల్లో, 8-బిట్ బఫర్సు (మాత్రమే 256 రంగులు అనుమతిస్తుంది) తో గ్రాఫిక్స్ కార్డులు సాధారణంగా ఉండేవి, అది వెబ్ సేఫ్ పాలెట్ ఉపయోగించి .ఇది ఊహాజనిత ప్రదర్శన అందేలా GIF చిత్రాలు బొత్తిగా సామాన్యంగా ఉండేది, కానీ తీవ్రంగా రంగుల ఎంపిక పరిమితంగా .24-bit రంగు మారినప్పుడు కట్టుబాటు వర్ణ బదులుగా వ్యక్తిగత చిత్రాలు వాంఛనీయ రంగులతో జనాభా కాలేదు.

ఒక చిన్న కలర్ పట్టిక చిన్న చిత్రాలు తగినంత ఉండవచ్చు, రంగు పట్టిక చిన్న ఉంచడం ఫైలు వేగంగా డౌన్లోడ్ అనుమతిస్తుంది.రెండు 87a, 89a లక్షణాలు 8. చాలా గ్రాఫిక్స్ అప్లికేషన్ల ద్వారా 1 నుండి ఏ n కోసం 2n రంగుల్లో పట్టికలు ఈ పట్టిక పరిమాణాల ఏ చదివి ప్రదర్శన GIF చిత్రాలు అనుమతిస్తుంది;కానీ కొన్ని చిత్రాలు సృష్టిస్తున్నప్పుడు అన్ని పరిమాణాలు మద్దతు లేదు. ఇవి 2, 16, 256 రంగులు పట్టికలు విస్తృతంగా మద్దతిస్తోంది

## ట్ర్రు - కలర్

GIF ఫార్మాట్ ట్రూ కలర్ చిత్రాలు దాదాపు ఎప్పుడూ వాడినప్పటికీ, అది అలా ఉపయొగించుకునే అవకాశం ఉంది .GIF బొమ్మలను ప్రతి భాగం దాని స్వంత 256-రంగుల కలిగి బహుళ చిత్రం బ్లాక్స్ చేర్చవచ్చు, బ్లాక్లను ఒక పూర్తి చిత్రాన్ని రూపొందించడానికి ఇటుక చేయవచ్చు.ప్రత్యామ్నాయంగా, GIF89a స్పెసిఫికేషన్ ప్రతి చిత్రం బ్లాక్ 255 కనిపించే రంగులు ప్లస్ ఒకటి పారదర్శక రంగు యొక్క దాని సొంత పాలెట్ చేర్చవచ్చు ఒక "పారదర్శక" రంగు యొక్క ఆలోచనను ప్రవేశపెట్టారు.ఒక పూర్తి చిత్రాన్ని పైన పొరలు పారదర్శక భాగాలనుండి చూపిస్తున్న ప్రతి పొర కనిపించే భాగంలోతో చిత్రం బ్లాక్స్ పొరలు రూపొందించినవారు చేయవచ్చు.

ఒక GIF వంటి ఒక పూర్తిస్థాయి కలర్ చిత్రం రెండర్ అసలు చిత్రం కంటే ఎక్కువ 255 లేదా 256 వివిధ రంగులు కలిగి చిన్న ప్రాంతాలుగా విభజించవచ్చు ఉండాలి.ఈ ప్రాంతాల్లో ప్రతి అప్పుడు, దాని స్వంత స్థానిక పాలెట్ తో ఒక ప్రత్యేక చిత్రం బ్లాక్ నిలువ ఉంటుంది చిత్రం బ్లాక్స్ (పలకల ద్వారా లేదా పాక్షికంగా పారదర్శక చిత్రం బ్లాక్స్ పొరల ద్వారా గాని) పూర్తి, పూర్తి రంగు చిత్రం కనిపిస్తుంది కలిసి ప్రదర్శించబడతాయి ఉన్నప్పుడు.ఉదాహరణకు, 16 పిక్సెళ్ళు (మొత్తం 256 పిక్సెళ్ళు) ద్వారా 16 పలకలు ఒక చిత్రాన్ని బద్దలు పెద్ద పలకలు ఉపయోగించవచ్చు అయినప్పటికీ, ఇలాంటి రంగులు రంగు యొక్క కొన్ని ఊడిపోతాయి విలీనం ఏ టైల్, 256 రంగులు స్థానిక పాలెట్ పరిమితి కంటే ఎక్కువ ఉంది నిర్ధారిస్తుంది సమాచారం.

ప్రతి చిత్రం బ్లాక్ దాని స్వంత స్థానిక రంగు పట్టిక అవసరం కాబట్టి, ఒక GIF ఫైల్ చిత్రం బ్లాక్స్ మా కలిగి పూర్తి రంగు GIF ల యొక్క ఉపయోగం పరిమితం, చాలా పెద్ద కావచ్చు.అదనంగా, అన్ని GIF రెండరింగ్ కార్యక్రమాలు సరిగ్గా ఇటుక లేదా లేయర్డ్ చిత్రాలు నిర్వహించడానికి.అనేక రెండరింగ్ కార్యక్రమాలు యానిమేషన్ ఫ్రేముల మాదిరిగా పలకలు లేదా పొరలు అర్థం, చాలా వెబ్ బ్రౌజర్లు స్వయంచాలకంగా 0.1 సెకన్లు లేదా మరింత ఆలస్యం సమయం ఫ్రేమ్లను ప్రదర్శిస్తోంది. దీంతో అంతులేని యానిమేషన్ వలె క్రమంలో వాటిని ప్రదర్శించడానికి వీలుబడుతుంది.

## భాషాపరమైన లక్షణాలు
నామవాచకం, పదం GIF అనేక నిఘంటువులు కొత్త సంచికలు కనబడుతుంది. 2012 లో, ఆక్స్ఫర్డ్ యూనివర్సిటీ ప్రెస్ అమెరికన్ వింగ్ GIF ఒక క్రియ, అలాగే "GIFing వేసవి ఒలింపిక్స్ దృశ్యాలను భాగస్వామ్యం చేయడానికి ఖచ్చితంగా మాధ్యమంగా" గా, "ఒక GIF ఫైల్ సృష్టించడానికి" అంటే గుర్తించింది. పత్రికా యొక్క లెక్సికొ గ్రాఫర్లు GIF లు "పరిశోధన, జర్నలిజం సహా తీవ్రమైన అనువర్తనాలతో ఒక సాధనం" చెప్పబడ్డాయి చెప్పి, వారి సంవత్సరపు పదం ఓటు దీనికి వేసారు.

## GIF ఫైలు ఉదాహరణ

మైక్రోసాఫ్ట్ పెయింట్ కింది GIF ఫైల్ గా ఒక చిన్న నలుపు, తెలుపు చిత్రం ఆదా.పెయింట్ GIF ఫార్మాట్ సరిగా ఉపయోగించడానికి లేదు;కారణంగా అనవసరంగా పెద్ద రంగు పట్టిక, చిహ్నం వెడల్పు (బదులుగా 2 ఉపయోగిస్తారు పూర్తి 256 రంగులు నిల్వ), ఈ GIF ఫైల్ కాదు 15 పిక్సెల్ చిత్రం (పైన విస్తారిత సచిత్ర) సమర్థవంతమైన ప్రాతినిథ్యం.

గ్రాఫిక్స్ కంట్రోల్ పొడిగింపు బ్లాక్ పారదర్శకం రంగు ఇండెక్స్ 16 (హెక్సాడెసిమల్ 10) ప్రకటించినప్పటికీ, ఆ సూచిక చిత్రం వాడటం లేదు.చిత్రం డేటా కనిపించే ఒకేఒక్క కలర్ సూచికలు గ్లోబల్ రంగు టేబుల్ వరుసగా నలుపు, తెలుపు, పటాలను ఇది దశాంశ 40, 255 ఉన్నాయి.

క్రింది పట్టికలలో హెక్స్ సంఖ్యలో గమనించండి తక్కువగా ఎన్డియన్ బైట్ ఆర్డర్ ఫార్మాట్ వంటి వివరణ సూచిస్తుంది .


```
byte# hexadecimal text or
(hex)  value Meaning
0: 47 49 46
 38 39 61 GIF89a Header
    Logical Screen Descriptor
6: 03 00 3  - logical screen width in pixels
8: 05 00 5  - logical screen height in pixels
A: F7   - GCT follows for 256 colors with resolution 3 x 8 bits/primary; the lowest 3 bits represent the bit depth minus 1, the highest true bit means that the GCT is present
B: 00  0  - background color #0
C: 00   - default pixel aspect ratio
   R G B Global Color Table
D: 00 00 00 0 0 0 - color #0 black
10: 80 00 00 128 0 0 - color #1
 :     :
85: 00 00 00 0 0 0 - color #40 black
 :     :
30A: FF FF FF 255 255 255 - color #255 white
30D: 21 F9   Graphic Control Extension (comment fields precede this in most files)
30F: 04  4  - 4 bytes of GCE data follow
310: 01   - there is a transparent background color (bit field; the lowest bit signifies transparency)
311: 00 00   - delay for animation in hundredths of a second: not used
313: 10  16  - color #16 is transparent
314: 00   - end of GCE block
315: 2C   Image Descriptor
316: 00 00 00 00 (0,0)  - NW corner position of image in logical screen
31A: 03 00 05 00 (3,5)  - image width and height in pixels
31E: 00   - no local color table
31F: 08  8  Start of image - LZW minimum code size
320: 0B  11  - 11 bytes of LZW encoded image data follow
321: 00 51 FC 1B 28 70 A0 C1 83 01 01
32C: 00   - end of image data
32D: 3B   GIF file terminator
```


### చిత్రం కోడింగ్
చిత్రం పిక్సెల్ డేటా, పైన ఎడమ నుండి అడ్డంగా స్కాన్ ద్వారా మార్చబడతాయి LZW ఎన్కోడింగ్ అప్పటి ఫైల్ లో నిల్వ కొరకు బైట్స్ గా ప్రతిలేఖనం చేయబడతాయి అని సంకేతాలు.పిక్సెల్ సంకేతాలు సాధారణంగా బైట్లు 8-బిట్ పరిమాణం సరిపోలడం లేదు, కాబట్టి సంకేతాలు ఒక "చిన్న-ఎన్డియన్" పథకం ద్వారా బైట్లు లోకి ప్యాక్: కనీసం ముఖ్యమైన బిట్ లో నిల్వ చేయబడుతుంది మొదటి కోడ్ కనీసం ముఖ్యమైన బిట్ మొదటి బైట్, బైట్ యొక్క అధిక స్థాయి బిట్స్ కోడ్ యొక్క అధిక స్థాయి బిట్స్ వంటి అవసరమైన తదుపరి బైట్ యొక్క అత్యల్ప స్థాయి అంశాలు ప్రవేశించింది మిగలకుండా.ప్రతి తదుపరి కోడ్ కనీసం ముఖ్యమైన బిట్ ఇప్పటికే ఉపయోగించరు వద్ద ప్రారంభమై నిల్వ ఉంది.

ఈ బైట్ స్ట్రీమ్ "ఉప" యొక్క వరుస వంటి ఫైల్ లో నిల్వ చేయబడుతుంది.ప్రతి ఉప-బ్లాక్ గరిష్ఠ పొడవు 255 బైట్లు ఉంది, ఉప-బ్లాక్ లో డేటా బైట్లు సంఖ్య సూచించే ఒక బైట్ తో ముందు ఉంది.ఉప బ్లాక్స్ సిరీస్ (0 డేటా బైట్లు కలిగిన సబ్ బ్లాక్ సూచిస్తూ, ఒకే 0 బైట్) ఒక ఖాళీ ఉప బ్లాక్ ద్వారా ముగిస్తారు.

9-బిట్ సంకేతాలు, బైట్ల మధ్య జరగుతుంది మ్యాపింగ్ పైన నమూనా చిత్రం కోసం క్రింద చూపించాం.

కొంత కుదింపు స్పష్టమైంది: 15 బైట్లు ప్రారంభంలో నిర్వచించిన పిక్సెల్ రంగులు కచ్చితంగా నియంత్రణ సంకేతాలు సహా 12 కోడ్ బైట్లు సూచించబడతాయి.
9-బిట్ సంకేతాలు ఉత్పత్తి చేసే ఎన్కోడింగ్ ప్రక్రియ క్రింద చూపించాం.ఒక స్థానిక స్ట్రింగ్ పిక్సెల్ రంగు సంఖ్యలు కాలం స్థానిక స్ట్రింగ్ ఒక కోడ్ పట్టికలో చూడవచ్చు ఎలాంటి అవుట్పుట్ చర్య తో, పాలెట్ నుండి సంచితం.పట్టిక తీగలను చేర్పులు దాని ప్రారంభ పరిమాణం నుండి పెరుగుతుంది ముందు వచ్చే మొదటి రెండు పిక్సెళ్ళు ప్రత్యేక చికిత్స ఉంది.ప్రతి అవుట్పుట్ కోడ్ తరువాత, స్థానిక స్ట్రింగ్ (ఆ అవుట్పుట్ కోడ్ చేర్చడానికి కాలేదు) తాజా పిక్సెల్ రంగు మొదలగు ఉంది.

```
Table  9-bit
   string --> code code Action
    #0 | 000h  Initialize root table of 9-bit codes
   palette | :
   colors | :
   #255 | 0FFh
    clr | 100h
    end | 101h
    |  100h Clear
Pixel  Local  |
color Palette string |
BLACK #40 28  |  028h 1st pixel always to output
WHITE #255 FF  |   String found in table
   28 FF | 102h  Always add 1st string to table
  FF  |   Initialize local string
WHITE #255 FF FF  |   String not found in table
    |  0FFh - output code for previous string
   FF FF | 103h  - add latest string to table
  FF  |   - initialize local string
WHITE #255 FF FF  |   String found in table
BLACK #40 FF FF 28 |   String not found in table
    |  103h - output code for previous string
   FF FF 28 | 104h  - add latest string to table
  28  |   - initialize local string
WHITE #255 28 FF  |   String found in table
WHITE #255 28 FF FF |   String not found in table
    |  102h - output code for previous string
   28 FF FF | 105h  - add latest string to table
  FF  |   - initialize local string
WHITE #255 FF FF  |   String found in table
WHITE #255 FF FF FF |   String not found in table
    |  103h - output code for previous string
   FF FF FF | 106h  - add latest string to table
  FF  |   - initialize local string
WHITE #255 FF FF  |   String found in table
WHITE #255 FF FF FF |   String found in table
WHITE #255 FF FF FF FF |   String not found in table
    |  106h - output code for previous string
   FF FF FF FF| 107h  - add latest string to table
  FF  |   - initialize local string
WHITE #255 FF FF  |   String found in table
WHITE #255 FF FF FF |   String found in table
WHITE #255 FF FF FF FF |   String found in table
       No more pixels
      107h - output code for last string
      101h End
```

స్పష్టత కోసం పట్టిక పెరుగుతున్న పొడవు యొక్క తీగల యొక్క కడుతున్నారు పైన చూపించాం. ఆ పథకం పనిచేయగలదు కానీ పట్టిక మెమరీ ఒక అనూహ్య మొత్తం తింటాయి. మెమరీ భద్రపర్చడానికి ప్రతి కొత్త స్ట్రింగ్ ఒక పాత్ర ద్వారా అభివృద్ధి గతంలో నిల్వ స్ట్రింగ్ కలిగి పేర్కొంది ద్వారా ఆచరణలో సేవ్ చేయవచ్చు. ఇప్పటికే చిరునామా ఒక పాత్ర: ప్రతి చిరునామాలో కేవలం రెండు పదాలు నిల్వ పొదుపుగా.

LZW అల్గోరిథం ప్రతి పిక్సెల్ కోసం పట్టిక యొక్క ఒక శోధన అవసరం.వరకు 4096 చిరునామాలను ద్వారా ఒక సరళ శోధన కోడింగ్ నెమ్మదిగా తయారవుతుంది.ఆచరణలో సంకేతాలు సంఖ్యా విలువ క్రమంలో నిల్వ చేయవచ్చు;కేవలం 12 తీవ్రతతో ఉపమానాలు, ఈ ADCలు (కొన్ని వరుస అంచనాగా ADC ల్లో ఉపయోగించబడిన వరుస ఉజ్జాయింపు రిజిస్టర్) ప్రతి శోధన ఎస్ఎఆర్ ద్వారా చెయ్యటానికి అనుమతిస్తుంది.ఈ సామర్థ్యం కోసం అదనపు పట్టిక సంకేతాలు, వాస్తవ మెమరీ చిరునామాలకు మధ్య మార్చేందుకు అవసరమైన ఉంది;అదనపు పట్టిక "అప్ కీపింగ్" ఒక కొత్త కోడ్ పిక్సెల్ రేటు కంటే చాలా తక్కువ నిర్మాణము నిల్వ చేసినప్పుడు మాత్రమే అవసరమవుతుంది.

### బొమ్మని డీకోడింగ్ చెసే పద్ధతి
డీకోడింగ్ 9-బిట్ సంకేతాలు నిల్వ బైట్లు తిరిగి మ్యాపింగ్ ద్వారా ప్రారంభమవుతుంది. ఈ క్రింద చూపిన విధంగా పిక్సెల్ రంగుల తిరిగి డీకోడ్ ఉంటాయి. ఈ నియమం ద్వారాని ఉపయోగించి తీగలను జోడించడం ద్వారా ఎన్కోడర్ నిర్మించబడే సమానంగా ఒక పట్టిక: 
 ఇన్కమింగ్ కోడ్ పట్టిక కనబడుతుంది? 
 YES: ఇన్కమింగ్ కోడ్ స్ట్రింగ్ మొదటి బైట్ తరువాత స్థానిక కోడ్ స్ట్రింగ్ జోడించడానికి 
 NO: దాని స్వంత మొదటి బైట్ యొక్క కాపీని తరువాత స్థానిక కోడ్ స్ట్రింగ్ జోడించడానికి 

```
shift
9-bit ----> Local Table   Pixel
code code code --> string Palette color Action
100h  000h | #0   Initialize root table of 9-bit codes
   : | palette
   : | colors
   0FFh | #255
   100h | clr
   101h | end
028h   |  #40 BLACK Decode 1st pixel
0FFh 028h  |    Incoming code found in table
    |  #255 WHITE - output string from table
   102h | 28 FF   - add to table
103h 0FFh  |    Incoming code not found in table
   103h | FF FF   - add to table
    |    - output string from table
    |  #255 WHITE
    |  #255 WHITE
102h 103h  |    Incoming code found in table
    |    - output string from table
    |  #40 BLACK
    |  #255 WHITE
   104h | FF FF 28   - add to table
103h 102h  |    Incoming code found in table
    |    - output string from table
    |  #255 WHITE
    |  #255 WHITE
   105h | 28 FF FF   - add to table
106h 103h  |    Incoming code not found in table
   106h | FF FF FF   - add to table
    |    - output string from table
    |  #255 WHITE
    |  #255 WHITE
    |  #255 WHITE
107h 106h  |    Incoming code not found in table
   107h | FF FF FF FF  - add to table
    |    - output string from table
    |  #255 WHITE
    |  #255 WHITE
    |  #255 WHITE
    |  #255 WHITE
101h   |    End
```


### LZW కోడ్ వివరాలు
షార్టర్ కోడ్ పొడవులు ఉదాహరణలో 256 రంగుల కంటే చిన్న వర్ణం కోసం ఉపయోగించవచ్చు.పాలెట్ 64 రంగులు ఉంటే, చిహ్నాలు 0 నుండి 63 వరకు ఉంటాయి (కాబట్టి రంగు సూచికలు 6 బిట్స్ విస్తృత ఉన్నాయి), చిహ్నం వెడల్పు 7 బిట్స్ వద్ద ప్రారంభమై సంకేతాలు, 6 బిట్స్ తీసుకోవచ్చు. పాలెట్ పరిమాణం 2 యొక్క ఏ శక్తి ఉన్న డీకోడ్ విలువలు పాలెట్ లో రంగులు సంఖ్య కంటే ఎప్పుడూ తక్కువ గానే ఉంటాయి, చిహ్నాలు 2 నుండి 8 వరకు ఏ వెడల్పు ఉంటుంది,, : నిజానికి, సింబల్ వెడల్పు పాలెట్ పరిమాణం సరిపోలడం లేదు అవసరం 2 నుండి 256. ఉదాహరణకు, కేవలం మొదటి నాలుగు రంగులు పాలెట్ (విలువలు 0 నుండి 3) వాడతారు ఉంటే, చిహ్నాలు 3 బిట్స్ వద్ద ప్రారంభమై సంకేతాలు విస్తృత 2 బిట్స్ తీసుకోవచ్చు.

దీనికి విరుద్ధంగా, చిహ్నం వెడల్పుని కేవలం 0, 1 విలువలతొ కూడా, 8 కి మార్చవచ్చు; ఈ డేటాకి కేవలం 2-రంగు పట్టిక కావాలి. అయిన ఫైలును ఈ విధంగా ఎన్కోడింగ్ చెయటం ద్వారా ఎటువంటి ఉపయూగం ఉండదు, కాని ఇలాంటి ఏదో సాధారణంగా ద్వి వర్ణం చిత్రాలకు జరుగుతుంది: కేవలం 0, 1 ఉపయోగించిన విలువలుకి కూడా కనీస చిహ్నం వెడల్పు, 2 ఉంటుంది.

కోడ్ పట్టిక ప్రారంభంలో ప్రక్రియ సమయంలో కలుపుతారు తీగలను కోసం రెండు ప్రత్యేక కోడ్లు 'clr' ', ' 'end' 'వంటి సంకేతాలు కల్పించేందుకు గాను ఒక బిట్ ఇక చిహ్నం పరిమాణం కంటే ఉన్నాయి అని సంకేతాలు కలిగి, పట్టిక పూర్తి అయినప్పుడు కోడ్ నిడివి పెరుగుతుంది. గరిష్ఠంగా కోడ్ 4095 = fff (హెక్స్) వరకు, మరింత తీగలను స్థలాన్ని ఇవ్వడానికి, డికోడర్ దాని పట్టిక ఆధారమైగా కోడ్ పొడవు, ఈ పెరుగుదల ట్రాక్, దానికి అనుగుణంగా ఇన్కమింగ్ బైట్లు బయటకి తీయవచ్చు.

### కంప్రెస్ చెయని GIF బొమ్మ

GIF ఎన్కోడింగ్ ప్రక్రియను ఇప్పటికీ ఒక GIF ఇమేజ్ వీక్షించవచ్చు LZW కంప్రెషన్ లేకుండా ఒక ఫైల్ సృష్టించడానికి సవరించబడతాయి.ఈ టెక్నిక్ పేటెంట్ ఉల్లంఘన నివారించేందుకు ఒక మార్గంగా మొదట ప్రవేశపెట్టబడింది.వ్యక్తిగత పిక్సెళ్ళు పఠనం లేదా చిత్రలేఖనం కోసం అందుబాటులో ఉంటాయి, ఎందుకంటే కంప్రెస్డ్ GIF కూడా ఒక గ్రాఫిక్స్ ప్రోగ్రామర్ ఒక ఉపయోగకరమైన ఇంటర్మీడియట్ ఫార్మాట్ ఉంటుంది.ఒక కంప్రెస్డ్ GIF ఫైల్ కేవలం ఒక చిత్రం ఎడిటర్ ద్వారా పంపిస్తూ ఒక సాధారణ GIF ఫైల్ మార్చవచ్చును.

చివరి మార్పు ఎన్కోడింగ్ పద్ధతి LZW పట్టిక నిర్మాణం పట్టించుకోదు, రూట్ పాలెట్ సంకేతాలు, స్పష్టమైన, STOP కోసం సంకేతాలు ప్రసరిస్తుంది.ఈ సరళమైన ఎన్కోడింగ్ కానీ త్యాగం కుదింపు అన్ని (కోడ్ విలువలు, పాలెట్ సంకేతాల మధ్య ఒక 1-టు-1 అనురూప్యం) దిగుబడి: చిత్రంలో ప్రతి పిక్సెల్ దాని రంగు ఇండెక్స్ సూచిస్తూ ఒక అవుట్పుట్ కోడ్ ఉత్పత్తి.ఒక కంప్రెస్డ్ GIF చేసేటప్పుడు, ఒక ప్రామాణిక GIF డికోడర్ దాని నిఘంటువు పట్టిక తీగలను రచనా నిరోధించే కాదు, కానీ ఆ బైట్లు బిట్స్ వేరే ప్యాకింగ్ ట్రిగ్గర్స్ నుండి కోడ్ వెడల్పు పెరుగుతుంది ఎప్పుడూ ఉండాలి.

చిహ్నం వెడల్పు n ఉంటే, వెడల్పు n + 1 సహజంగా పతనం యొక్క కోడ్స్ రెండు ముక్కలుగా: 2n తక్కువ బ్లాక్ ఒకే చిహ్నాలు కోడింగ్ కోసం సంకేతాలు, 2 ఎగువ బ్లాక్n సన్నివేశాలు కోసం డికోడర్ ద్వారా ఉపయోగపడే సంకేతాలు పొడవు ఒకటి కంటే ఎక్కువ.ఎగువ బ్లాక్లో ఉన్న మొదటి రెండు సంకేతాలు ఇప్పటికే తీసుకోబడింది: 2n CLEAR కోసం, 2n+ 1 STOP కోసం .డికోడర్ కూడా ఎగువ బ్లాక్ లో గత కోడ్ ఉపయోగించి 2n + 1-1 నుండి నిరోధించే తప్పక డికోడర్ ఆ స్లాట్ నింపుతుంది ఇది ఎందుకంటే, కోడ్ వెడల్పు పెరుగుతుంది, .అందువలన ఎగువ బ్లాక్ లో 2n-3 ఉన్నాయి డికోడర్ అందుబాటులో సంకేతాలు కోడ్ వెడల్పు పెరుగుదల ట్రిగ్గర్ కాదని .డికోడర్ ఎల్లప్పుడూ ఒక టేబుల్ నిలబెట్టడానికి వెనుక అడుగు కాబట్టి, దానిని ఎన్కోడర్ నుండి మొదటి కోడ్ రాకపోవడంతో పట్టిక ఎంట్రీ ఉత్పత్తి లేదు, కానీ ప్రతి తరువాత కోడ్ ఒక ఉత్పత్తి.అందువలన ఎన్కోడర్ 2n-2 రూపొందించవచ్చు కోడ్ వెడల్పు పెరుగుదల చెందేందుకు లేకుండా కోడ్స్ మార్పు చెయవచ్చు .అందువలన ఎన్కోడర్ యొక్క 2n వ్యవధిలో అదనపు CLEAR సంకేతాలు విడుదల చేయాలి డికోడర్ కోడింగ్ నిఘంటువు రీసెట్ చేయడానికి 2 సంకేతాలు లేదా తక్కువ, GIF ప్రామాణిక అదనపు CLEAR సంకేతాలు ఏ సమయంలో చిత్రం డేటాలోని ఉండటాన్ని అనుమతిస్తుంది.మిశ్రమ డేటా స్ట్రీమ్ ప్రతి 1 నుండి 255 బైట్లు ఉంచుకోవాలి ఉప బ్లాక్స్ విభజించబడింది.

పైన చుపబదిన 3x5 బొమ్మ ఉదాహరణ గా, క్రింది 9-బిట్ సంకేతాలు సూచించడానికి "స్పష్టమైన" (100) స్కాన్ క్రమంలో చిత్రం పిక్సెళ్ళు తరువాత, "స్టాప్" (101). 

```
9-bit codes: 100 028 0FF 0FF 0FF 028 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 101
```

తర్వాత పైన సంకేతాలు మ్యాప్ bytes, కంప్రెస్డ్ ఫైల్ నుండి వ్యత్యాసంగా సంపీడన ఫైల్ విధంగా:

```
:
320: 14  20  20 bytes uncompressed image data follow
321: 00 51 FC FB F7 0F C5 BF 7F FF FE FD FB F7 EF DF BF 7F 01 01
335: 00    - end
 :
```


## ఇంటర్లేసింగ్

ఒక బొమ్మ ఇంటర్లేస్డ్ (అల్లిక) అవునా కాదా అని పేర్కొనడానికి ఒక GIF ఫైల యొక్క తార్కిక తెరలో GIF స్పెసిఫికేషన్ ప్రతి చిత్రం అనుమతిస్తుంది;అంటే, దాని డేటా బ్లాక్ లో రాస్టర్ క్రమాన్ని లైన్లు కాదు సీక్వెన్షియల్ అని.ఈ పూర్తి చిత్రం చిత్రీకరించాడు ముందు గుర్తించవచ్చు చిత్రానికి ఒక పాక్షిక ప్రదర్శన అనుమతిస్తుంది.

ఒక ఇంటర్లేస్డ్ చిత్రం, 8 పిక్సెళ్ళు అధిక కుట్లు లోకి పైనుంచి నుండి విభజించబడింది, చిత్రం యొక్క వరుసలు కింది క్రమంలో ప్రదర్శించారు:

*ప్రతి స్ట్రిప్ నుండి లైన్ 0 (టాప్ అత్యంత లైన్) : పాస్ 1.
*పాస్ 2: లైన్ 4 ప్రతి స్ట్రిప్ నుండి.
*పాస్ 3: లైన్స్ 2, 6 ప్రతి స్ట్రిప్ నుండి.
*పాస్ 4: లైన్స్ 1, 3, 5, 7 ప్రతి స్ట్రిప్ నుండి.

ప్రతి లైన్ లోపల పిక్సెళ్ళు ఇంటర్లేస్డ్ లేదు, కానీ ఎడమ నుండి కుడికి వరుసగా అందించింది.కాని ఇంటర్లేస్డ్ చిత్రాలు మాదిరిగా, ఒక లైన్ కోసం డేటా, తదుపరి కోసం డేటా మధ్య ఎటువంటి విరామం ఉంది.ఒక చిత్రం ఇంటర్లేస్డ్ అని సూచిక చిత్రం యొక్క శీర్షిక బ్లాక్ లో సెట్ ఒక బిట్ ఉంది.

## యానిమేటెడ్ GIF

ప్రాథమిక యానిమేషన్ వీడియో క్లిప్ ఏర్పాటు, ఇది ఫైల్ లో వివిధ చిత్రాలు (ఫ్రేములు) సమయం ఆలస్యం చిత్రించబడ్డాయి అనుమతిస్తుంది గ్రాఫిక్స్ కంట్రోల్ పొడిగింపు (GCE) ద్వారా GIF89a స్పెక్ చేర్చబడ్డారు.ఒక యానిమేటెడ్ GIF ఫైల్ వరుసగా ప్రదర్శించబడతాయి ఆ ఫ్రేములు, ప్రతి ఫ్రేమ్ డ్రా తర్వాత వేచి సమయం ఆలస్యం ఇస్తుంది దాని సొంత GCE ప్రవేశపెట్టబడినది అనేక వుంటారు.ఫైల్ ప్రారంభంలో గ్లోబల్ ఇన్ఫర్మేషన్ అన్ని ఫ్రేమ్లను అప్రమేయంగా వర్తిస్తుంది.డేటా స్రవంతి ఆధారిత ఉంది, కాబట్టి ఫైల్ ఆఫ్సెట్ ప్రతి GCE ప్రారంభానికి డేటా అంతకుముందు యొక్క పొడవు మీద ఆధారపడి ఉంటుంది.ప్రతి ఫ్రేమ్ లోపల LZW కోడెడ్ ఇమేజ్ డేటా 255 బైట్లు ఉప బ్లాక్స్ అమర్చబడింది;ప్రతి ఉప బ్లాక్ యొక్క పరిమాణం ముందున్న బైట్ నిర్థారించారు.

అప్రమేయంగా, అయితే, ఒక యానిమేషన్ ఫ్రేమ్లను క్రమం ఒక్కసారి మాత్రమే, చివరి ఫ్రేం ప్రదర్శించినప్పుడు ఆపటం ప్రదర్శిస్తుంది.GIF వినియోగదారులు కొత్త బ్లాక్స్ నిర్వచించడానికి అనుమతిస్తాయి రూపొందించబడింది కనుక, నెట్స్కేప్ 1990 లో వినియోగ పొడిగింపు బ్లాక్ నెట్స్కేప్ అప్లికేషన్ బ్లాక్ (NAB) అమలు (విక్రయదారులు GIF ఫైల్ అప్లికేషన్-నిర్దిష్ట సమాచారాన్ని జోడించడానికి అనుమతిస్తుంది ఉద్దేశించిన) ఉపయోగించారు. అన్ని యానిమేషన్ ఫ్రేమ్లను ముందు వెంటనే ఉంచుతారు ఈ బ్లాక్, సార్లు ఫ్రేమ్లను క్రమం ఆడాలి సంఖ్య నిర్దేశిస్తుంది. (విలువ 0 నిరంతర ప్రదర్శన సూచిస్తుంది.) మొదటి నెట్స్కేప్ నావిగేటర్ వెర్షన్ 2.0 లో కనిపించింది, ఆపై ఇతర బ్రౌజర్లకు వ్యాపించి ఈ పునరావృతమైన యానిమేషన్లు మద్దతు. చాలా బ్రౌజర్లు ఇప్పుడు దానిని గుర్తించి GIF89a వివరణ భాగమైన కచ్చితంగా కానప్పటికీ, NAB మద్దతు.

కింది ఉదాహరణ వ్యాసం ఎగువన యానిమేషన్ ఫైలు తిరిగే భూమి (పెద్ద) యొక్క నిర్మాణం చూపిన .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 in pixels
8: 90 01 400 - height in pixels
A: F7   - GCT follows for 256 colors with resolution 3 x 8bits/primary
B: 00  0  - background color #0
C: 00   - default pixel aspect ratio
D:    Global Color Table
:
30D: 21 FF   Application Extension block
30F: 0B  11  - eleven bytes of data follow
310: 4E 45 54
 53 43 41
 50 45 NETSCAPE - 8-character application name
 32 2E 30 2.0 - application "authentication code"
31B: 03  3  - three more bytes of data
31C: 01  1  - data sub-block index (always 1)
31D: FF FF 65535 - unsigned number of repetitions
31F: 00   - end of App Extension block
320: 21 F9   Graphic Control Extension for frame #1
322: 04  4  - four bytes of data follow
323: 08   - bit-fields 3x:3:1:1, 000|010|0|0 -> Restore to bg color
324: 09 00   - 0.09 sec delay before painting next frame
326: 00   - no transparent color
327: 00   - end of GCE block
328: 2C   Image Descriptor
329: 00 00 00 00 (0,0) - NW corner of frame at 0, 0
32D: 90 01 90 01 (400,400) - Frame width and height: 400 x 400
331: 00   - no local color table; no interlace
332: 08  8  LZW min code size
333: FF  255 - 255 bytes of LZW encoded image data follow
334:  data
433: FF  255 - 255 bytes of LZW encoded image data follow
   data
   :
92BA: 00   - end of LZW data for this frame
92BB: 21 F9   Graphic Control Extension for frame #2
 :        :
153B7B:21 F9   Graphic Control Extension for frame #44
 :
15CF35:3B   File terminator
```


ప్రతి ఫ్రేమ్ యానిమేషన్ ఆలస్యం రెండవ వందల క్రమంలో GCE లో వివరింపబడింది.ఒక ఫ్రేమ్ మాత్రమే చిత్రం వర్ణన ఒక చిన్న దీర్ఘచతురస్ర బదులుగా మొత్తం చిత్రం యొక్క రీ - స్కాన్ చెసి వుంటుంది అని నిర్వచించలేదు ఎందుకంటే ప్రదర్శన యొక్క పిక్సెళ్ళు ఒక భాగం తిరగరాసే అవసరం ఉందడం వలన ప్రొసెస్ వేగం తగ్గిపొతుంది. బ్రౌజర్లు లేదా యానిమేటెడ్ GIF లు మద్దతు ఇవ్వని ఇతర ప్రదర్శనల్లో సాధారణంగా మొదటి ఫ్రేమ్ చూపించు.

యానిమేటెడ్ GIF ఫైళ్లు పరిమాణం, రంగు నాణ్యతలో వాటిని సృష్టించడానికి ఉపయోగించిన అనువర్తనాన్ని బట్టి గణనీయంగా మారుతూ ఉంటాయి.అన్ని ఫ్రేములు (కాకుండా ప్రతి ఫ్రేమ్ కోసం ఒక పూర్తి ప్రాంతీయ రంగు పట్టిక కంటే) కోసం ఒక సాధారణ ప్రపంచ రంగు పట్టిక ఉపయోగించి ఉంటాయి ఫైలు పరిమాణం తగ్గించడం కోసం వ్యూహాలు, వరుస ఫ్రేమ్లనులో కవర్ పిక్సెళ్ళు సంఖ్య తగ్గించడం (కాబట్టి ఒక ఫ్రేమ్ నుండి మార్చడానికి మాత్రమే పిక్సెళ్ళు తదుపరి) తరువాతి ఫ్రేమ్ లో చేర్చబడ్డాయి.కేవలం ఒక మిశ్రమ అనిమేషన్ స్వతంత్ర ఫ్రేమ్ చిత్రాల వరుస ప్యాకింగ్ పెద్ద ఫైల్ పరిమాణాలు ఈల్డ్ ఉంటుంది.

ఇంటర్నెట్ ఎక్స్ప్లోరర్ GIF లు వేగం తగ్గితే ఫ్రేమ్ రేటు రెండవ లేదా అధిక, మైక్రోసాఫ్ట్ 20 ఫ్రేములు గూగూల్ క్రొమ్, సఫారి కూడా కొన్ని GIF యానిమేషన్ వేగాన్ని ఆ ఫిర్యాదు ఉంది.

1995 ప్రారంభంతో మొదలుపెట్టి ఉల్మ్ విశ్వవిద్యాలయం ఒక నియంత్ర మోడల్ రైల్ రోడ్ చూపించడానికి ప్రత్యక్ష వీడియో స్ట్రీమింగ్ ఫార్మాట్ యానిమేటెడ్ GIF ఉపయోగిస్తారు.

## ప్రత్యామ్నాయాలు

### PNG

పోర్టబుల్ నెట్వర్క్ గ్రాఫిక్స్ (PNG), LZW కంప్రెషన్ విధానం యూనిసిస్ కంపనీ పేటెంటు హక్కులు ఉల్లంఘన తొలగించడానికి GIF ఫార్మాట్ కోసం ఒక భర్తీ చేయడానికి దీనిని రూపొందించారు. PNG, GIF కంటే మెరుగైన కుదింపు, మరిన్ని ఫీచర్లు అందిస్తుంది, యానిమేషన్ మాత్రమే ముఖ్యమైన మినహాయింపు.PNG సందర్భాల్లో GIF నిజమైన రంగు ఇమేజింగ్, ఆల్ఫా పారదర్శకత అవసరమైన చోట కంటే ఎక్కువ అనుకూలంగా ఉంటుంది.

PNG ఫార్మాట్ మద్దతు నెమ్మదిగా వచ్చినప్పటికీ, కొత్త వెబ్ బ్రౌజర్లలో సాధారణంగా PNG మద్దతు ఉంది. ఇంటర్నెట్ ఎక్స్ప్లోరర్ యొక్క పాత వెర్షన్లు PNG కి మద్దతివ్వటం లేదు. వెర్షన్ 6 అంతకు ముందువి మైక్రోసాఫ్ట్ నిర్దిష్ట HTML పొడిగింపులు ఉపయోగించి లేకుండా ఆల్ఫా ఛానల్ కు పారదర్శకత మద్దతు లేదు. PNG చిత్రాల గామా దిద్దుబాటు వెర్షన్ 8, ప్రారంభ సంస్కరణలు తప్పు రంగు కలిగి ఉండవచ్చు ఈ చిత్రాల ప్రదర్శన ముందు మద్దతు లేదు.

PNG, GIF కంటే ఎక్కువ రంగు లోతు, పారదర్శకత సమాచారాన్ని నిల్వ సామర్థ్యం వంటి PNG ఫైళ్లు, ఒక GIF, ఒక PNG ఫైలు అదే అధిక నాణ్యత చిత్రం మూలం నుండి సృష్టించబడే పరిస్థితుల్లో GIF ఫైళ్ల కంటే పెద్దవిగా ఉండవచ్చు.అయితే, ఒకే 8-బిట్ (లేదా తక్కువ) చిత్రం డేటా కోసం, PNG ఫైళ్లు సమానమైన GIF లు, PNG ఎన్కోడింగ్ కు ఉపయోగిస్తారు, మరింత సమర్థవంతమైన కుదింపు పద్ధతుల కారణంగా కంటే చిన్నవిగా ఉంటాయి. GIF ఫార్మాట్ కోసం పూర్తి మద్దతు ఉంది. గిఫ్ కి ఉన్న సంక్లిష్ట కాన్వాస్ నిర్మాణం కారణం గానే ఈ ఫొర్మాట్ కి ప్రధాన మద్దతు ఉంది, అయితే ఈ కాంపాక్ట్ యానిమేషన్ లక్షణాలు కుడా అనుమతిస్తుంది ఇదే.

### ఇతర యానిమేషన్ ఫార్మాట్లు

MNG మొదట యానిమేషన్లు కోసం ఒక PNG ఆధారిత పరిష్కారం వలె అభివృద్ధి చేయబడింది. MNG 2001 లో వెర్షన్ 1.0 చేరుకుంది, కాని కొన్ని అప్లికేషన్లు మద్దతు వరకే.

2006 లో, APNG అని PNG ఫార్మాట్ పొడిగింపు మొజిల్లా MNG ఫార్మాట్ ప్రత్యామ్నాయ ప్రతిపాదించారు.యానిమేషన్ భాగం (MNG కాకుండా) అర్థం కాదు డికోడర్లను అనుకూలత వెనుకకు నిలుపుకుంటూనే APNG, PNG ఫైళ్లు యానిమేట్ చేయడానికి సామర్థ్యాన్ని అందిస్తాయి.పాత డికోడర్లను కేవలం యానిమేషన్ మొదటి ఫ్రేమ్ కలిగిస్తుంది.PNG బృందం అధికారికంగా 2007 ఏప్రిల్ 20 న అధికారికంగా విస్తరణగా APNG తిరస్కరించింది అనేక వివిధ పద్ధతులను ఉపయోగించి PNG ఆధారంగా ఒక సాధారణ యానిమేటెడ్ గ్రాఫిక్స్ ఫార్మాట్ కోసం పలు అనంతర ప్రతిపాదనలు వచ్చాయి. అయితే, యానిమేటెడ్ పోర్టబుల్ నెట్వర్క్ గ్రాఫిక్స్ మొజిల్లా ఇంకా అభివృద్ధిలో ఉంది, ఫైర్‌ఫాక్స్ 3 లో మద్దతు ఉంది MNG మద్దతు పడిపోయింది జరిగింది.

పొందుపరిచిన ఆడొబ్ ఫ్లాష్ వంటి వస్తువులు, MPEG సాధారణ వీడియో ప్రదర్శించడానికి, కానీ ఒక అదనపు బ్రౌజర్ ప్లగిన్ వాడకం అవసరం కొన్ని వెబ్సైట్లు ఉపయోగిస్తున్నారు. WebM, webp అభివృద్ధి, కొన్ని వెబ్ బ్రౌజర్లు మద్దతు ఉంది. వెబ్ యానిమేషన్ ఇతర ఎంపికలు AJAX ఉపయోగించి ఫ్రేమ్లలో ఒక్కొక్కదానిలో అందిస్తున్న, లేదా జావాస్క్రిప్ట్ లేదా స్మిల్ ఉపయోగించి SVG ఇమేజీలను అనుకరిస్తూ ఉన్నాయి.

HTML5 యొక్క విస్తృత మద్దతు ప్రవేశంతోచాలా వెబ్ బ్రౌజర్లలో ట్యాగ్, కొన్ని వెబ్సైట్లు జావా స్క్రిప్టు విధుల ద్వారా ఉత్పత్తి వీడియో ట్యాగ్ ఒక లూప్డ్ వెర్షన్ను ఉపయోగించండి.ఈ ఒక GIF రూపాన్ని ఇస్తుంది, కానీ కంప్రెస్ వీడియో పరిమాణం, వేగ ప్రయోజనాలు తో.గమనించదగిన ఉదాహరణలు Gfycat, ఇమ్గుర్, నిజంగా ఒక లూప్డ్ MP4 లేదా WebM కుదించబడిన వీడియో ఆడుతున్న వీడియో ట్యాగ్ ఇది వారి GIFV మెటాఫొర్మాట్లు ఉన్నాయి.

వర్గం:గ్రాఫిక్స్ ఫైల్ ఫార్మాట్స్