صورة متحركة GIF

تنسيق تبادل الرسومات ( GIF ؛ / ɡɪf / GHIF أو / dʒɪf / JIF ) هو تنسيق صورة نقطية تم تطويره بواسطة فريق في مزود الخدمات عبر الإنترنت CompuServe بقيادة عالم الكمبيوتر الأمريكي ستيف ويلهايت وتم إصداره في 15 يونيو 1987. [ 1 ]

يمكن أن يحتوي هذا التنسيق على ما يصل إلى 8 بتات لكل بكسل ، مما يسمح للصورة الواحدة بالرجوع إلى لوحة ألوان خاصة بها تضم ​​ما يصل إلى 256 لونًا مختلفًا مُختارة من فضاء ألوان RGB ذي 24 بت . كما يمكنه تمثيل صور متعددة في ملف واحد، وهو ما يُمكن استخدامه في الرسوم المتحركة ، ويتيح لوحة ألوان منفصلة تضم ما يصل إلى 256 لونًا لكل إطار. هذه القيود على لوحة الألوان تجعل تنسيق GIF أقل ملاءمةً لإعادة إنتاج الصور الفوتوغرافية الملونة وغيرها من الصور ذات التدرجات اللونية ، ولكنه مناسب تمامًا للصور الأبسط مثل الرسومات أو الشعارات ذات المساحات اللونية الموحدة.

تُضغط صور GIF باستخدام تقنية ضغط البيانات غير الفاقد للبيانات Lempel-Ziv-Welch (LZW) لتقليل حجم الملف دون التأثير على جودة الصورة. ورغم شيوع استخدامها على شبكة الإنترنت العالمية نظرًا لتطبيقاتها المتعددة وسهولة نقلها بين التطبيقات وأنظمة التشغيل، فقد تراجع استخدامها لأسباب تتعلق بالمساحة والجودة، وغالبًا ما تُستبدل بصيغ أحدث مثل PNG للصور الثابتة و MP4 للفيديوهات. وفي هذا السياق، تُسمى مقاطع الفيديو القصيرة أحيانًا "GIF" رغم عدم ارتباطها بصيغة الملف الأصلية. [ 3 ]

تاريخ

كانت صور GIF المتحركة التي تحمل عبارة "قيد الإنشاء" سمة شائعة للمواقع الإلكترونية غير المكتملة في أواخر التسعينيات وأوائل الألفية الثانية.
كانت الصور المتحركة بصيغة GIF مثل هذه سمة زخرفية شائعة في المواقع الشخصية في أواخر التسعينيات وأوائل الألفية الثانية.

أطلقت شركة CompuServe تنسيق GIF في 15 يونيو 1987 لتوفير تنسيق صور ملون لمناطق تنزيل الملفات لديها. وقد حلّ هذا التنسيق محل تنسيق ترميز طول التشغيل السابق ، الذي كان بالأبيض والأسود فقط. اكتسب تنسيق GIF شعبية واسعة بفضل استخدامه لتقنية ضغط البيانات Lempel-Ziv-Welch . ولأن هذه التقنية كانت أكثر كفاءة من ترميز طول التشغيل المستخدم في برنامجي PCX و MacPaint ، فقد أصبح بالإمكان تنزيل صور كبيرة الحجم بسرعة معقولة حتى مع أجهزة المودم البطيئة .

كان الإصدار الأصلي من GIF يسمى 87a. [ 1 ] كان هذا الإصدار يدعم بالفعل صورًا متعددة في دفق واحد.

في عام 1989، أصدرت شركة CompuServe نسخة محسنة تسمى 89a، [ 2 ] وقد أضافت هذه النسخة ما يلي:

  • دعم تأخيرات الرسوم المتحركة
  • ألوان خلفية شفافة
  • تخزين البيانات الوصفية الخاصة بالتطبيق
  • يسمح هذا الخيار بعرض النصوص كنصوص عادية (دون تضمينها في البيانات الرسومية). مع ذلك، نادراً ما يُستخدم هذا الخيار. لا تدعمه المتصفحات الحديثة، كما أن التحكم في الخطوط والتنسيق محدود للغاية.

يمكن التمييز بين الإصدارين من خلال النظر إلى أول ستة بايتات من الملف ( الرقم السحري أو التوقيع)، والتي عند تفسيرها على أنها ASCII ، تقرأ "GIF87a" أو "GIF89a" على التوالي.

شجعت شركة CompuServe على استخدام صيغة GIF من خلال توفير أدوات تحويل قابلة للتنزيل للعديد من أجهزة الكمبيوتر. فعلى سبيل المثال، بحلول ديسمبر 1987، كان بإمكان مستخدمي Apple IIGS عرض الصور التي تم إنشاؤها على Atari ST أو Commodore 64. [ 4 ] وكانت صيغة GIF واحدة من أول صيغتين للصور شائعة الاستخدام على مواقع الويب، والأخرى هي صيغة XBM بالأبيض والأسود . [ 5 ]

في سبتمبر 1995، أضاف برنامج Netscape Navigator 2.0 إمكانية تكرار صور GIF المتحركة .

رغم أن تنسيق GIF طُوّر بواسطة شركة CompuServe ، إلا أنه استخدم خوارزمية ضغط البيانات غير الفاقد للبيانات Lempel–Ziv–Welch (LZW) التي حصلت شركة Unisys على براءة اختراعها عام 1985. وقد حفّز الجدل الدائر حول اتفاقية الترخيص بين Unisys وCompuServe عام 1994 تطوير معيار رسومات الشبكة المحمولة (PNG). وفي عام 2004، انتهت صلاحية جميع براءات الاختراع المتعلقة بضغط البيانات الخاص المستخدم في تنسيق GIF.

تُستخدم ميزة تخزين صور متعددة في ملف واحد، مصحوبة ببيانات تحكم، على نطاق واسع على الويب لإنتاج رسوم متحركة بسيطة .

كما ساهمت ميزة التداخل الاختيارية ، التي تخزن خطوط مسح الصورة خارج الترتيب بطريقة تجعل حتى الصورة التي تم تنزيلها جزئيًا قابلة للتمييز إلى حد ما، في زيادة شعبية GIF، [ 6 ] حيث يمكن للمستخدم إيقاف التنزيل إذا لم يكن هو المطلوب.

في مايو 2015، أضاف فيسبوك دعمًا لملفات GIF. [ 7 ] [ 8 ] وفي عام 2014، أضاف تويتر أيضًا دعمًا لملفات GIF، وكذلك فعل إنستغرام في عام 2018. [ 9 ]

في عام 2016، أصدر أرشيف الإنترنت مكتبة قابلة للبحث تضم صور GIF من أرشيف GeoCities الخاص به . [ 10 ] [ 11 ]

مصطلحات

تُستخدم كلمة GIF كاسم في الطبعات الحديثة للعديد من القواميس. وفي عام ٢٠١٢، اعترف الفرع الأمريكي لدار نشر جامعة أكسفورد باستخدام GIF كفعل أيضًا، بمعنى "إنشاء ملف GIF"، كما في عبارة "كانت صور GIF الوسيلة الأمثل لمشاركة مشاهد من دورة الألعاب الأولمبية الصيفية ". وقد اختارها معجميو الدار كلمة العام ، مشيرين إلى أن صور GIF تطورت لتصبح "أداة ذات تطبيقات جادة، بما في ذلك البحث والصحافة". [ ١٢ ] [ ١٣ ]

نطق

تقترح إحدى الرسوم البيانية الفكاهية التي أعلنت عن إطلاق حساب Tumblr للبيت الأبيض في عام 2013 نطق كلمة GIF بحرف g قوي .

كان نطق الحرف الأول من كلمة GIF موضع جدل منذ تسعينيات القرن الماضي . أكثر النطقات شيوعًا في اللغة الإنجليزية هي / dʒɪf /( مع حرفgخفيفكما في كلمة gin) و / ɡɪf / (مع نطق حرفgكحرففيكلمة gift)، ويختلف فيالصوتالذي يمثله الحرفG.نطق مبتكرو هذا التنسيق اختصارGIFكـ / dʒɪf / ، مع نطق حرف gبشكل لين، وقد صرّح ويلهايت بأنه تعمّد جعل النطق يُحاكيعلامةزبدة الفول السودانيJif، وكانCompuServeيُمازحون قائلين: "المطورون المُختارون يختارون GIF"، في محاكاة ساخرة لإعلانات Jif التلفزيونية. [ 14 ] ومع ذلك، يُنطق الاسم على نطاق واسع كـ / ɡɪf / ، مع نطقgكحرف، [ 15 ] وقد أظهرت استطلاعات الرأي عمومًا أن هذا النطق بحرف g كحرف g هوالأكثر شيوعًا. [ 16 ] [ 17 ]

يذكر موقع Dictionary.com [ 18 ] كلا النطقين، مشيرًا إلى أن /dʒɪf/ هو النطق الأساسي ، بينمايقدم قاموس كامبريدج للغة الإنجليزية الأمريكية [ 19 ] نطق حرف g القوي فقط . ويذكر قاموس ميريام-ويبستر الجامعي [ 20 ] وقواميس أكسفورد كلا النطقين، لكنهما يضعان حرف g القويأولًا: / ɡɪf , dʒɪf / . [ 21 ] [ 22 ] [ 23 ] [ 24 ] وقد ذكر قاموس أكسفورد الأمريكي الجديد / dʒɪf / فقط في طبعتهالثانية [ 25 ] ، لكنه حدّثه إلى / dʒɪf , ɡɪf / في طبعته الثالثة . [ 26 ]

أثار الخلاف حول نطق كلمة GIF جدلاً واسعاً على الإنترنت. ففي حفل توزيع جوائز ويبي لعام 2013 ، بمناسبة حصوله على جائزة الإنجاز مدى الحياة ، رفض ويلهايت علنًا نطق حرف G بنطق حرف G القوي ؛ [ 15 ] [ 27 ] [ 28 ] وأدى خطابه إلى أكثر من 17000 منشور على تويتر وعشرات المقالات الإخبارية. [ 29 ] كما دخل البيت الأبيض [ 15 ] وبرنامج Jeopardy! التلفزيوني في هذا الجدل عام 2013. [ 28 ] وفي فبراير 2020، تعاونت شركة JM Smucker ، المالكة لعلامة Jif التجارية، مع قاعدة بيانات الصور المتحركة ومحرك البحث Giphy لإصدار عبوة محدودة من زبدة الفول السوداني تحمل شعار "Jif vs. GIF" ( #JIFvsGIF)، مع ملصق يُشير بأسلوب فكاهي إلى أن نطق حرف G الناعم يقتصر على زبدة الفول السوداني، بينما يُنطق GIF بنطق حرف G القوي . [ 30 ]

الاستخدام

تُعدّ صور GIF مناسبة للرسومات الخطية ذات الحواف الحادة والألوان المحدودة، مثل الشعارات. ويستفيد هذا من خاصية الضغط غير الفاقد للبيانات في هذا النوع من الصور، والتي تُفضّل المساحات المسطحة ذات اللون الموحد والحواف الواضحة. [ 31 ] كما يُمكن استخدامها لتخزين بيانات الرسوم المتحركة منخفضة الألوان للألعاب. [ 32 ] وتُستخدم صور GIF في الرسوم المتحركة القصيرة ومقاطع الفيديو منخفضة الدقة، أو كردود فعل في الرسائل الإلكترونية للتعبير عن المشاعر والأحاسيس من خلال الصور المتحركة. وهي شائعة على منصات التواصل الاجتماعي مثل Tumblr ، [ 33 ] و Facebook ، و X (المعروف سابقًا باسم Twitter). [ 34 ]

تنسيق الملف

مفهوميًا، يصف ملف GIF مساحة رسومية ثابتة الحجم (الشاشة المنطقية) تحتوي على صفر أو أكثر من الصور. تحتوي العديد من ملفات GIF على صورة واحدة تملأ الشاشة المنطقية بأكملها، بينما تقسم ملفات أخرى الشاشة المنطقية إلى صور فرعية منفصلة. قد تعمل الصور أيضًا كإطارات رسوم متحركة في ملف GIF متحرك، ولكن ليس بالضرورة أن تملأ الشاشة المنطقية بأكملها.

تبدأ ملفات GIF برأسية ثابتة الطول ("GIF87a" أو "GIF89a") تُحدد الإصدار، متبوعةً بوصف شاشة منطقي ثابت الطول يُحدد أبعاد البكسل وخصائص الشاشة المنطقية الأخرى. قد يُحدد وصف الشاشة أيضًا وجود وحجم جدول الألوان العالمي (GCT)، والذي يليه إن وُجد.

بعد ذلك، يتم تقسيم الملف إلى أجزاء من الأنواع التالية، ويتم تقديم كل جزء منها بواسطة بايت واحد كعلامة فاصلة:

  • صورة (تم إدخالها بواسطة 0x2C، وهي فاصلة ASCII ',')
  • كتلة امتداد (تم إدخالها بواسطة 0x21، وهي علامة تعجب ASCII '!')
  • المقطع الأخير (بايت واحد بقيمة 0x3B، وهو فاصلة منقوطة ASCII ';')، والذي يجب أن يكون البايت الأخير من الملف.

تبدأ الصورة بوصف صورة ثابت الطول، والذي قد يحدد وجود وحجم جدول الألوان المحلي (الذي يليه إن وجد). ثم تأتي بيانات الصورة: بايت واحد يحدد عرض البت للرموز غير المشفرة (والذي يجب أن يكون عرضه 2 بت على الأقل، حتى بالنسبة للصور ثنائية اللون)، متبوعًا بسلسلة من الكتل الفرعية التي تحتوي على البيانات المشفرة باستخدام خوارزمية LZW.

تتألف كتل الإضافة (الكتل التي "توسع" تعريف 87a عبر آلية محددة مسبقًا في مواصفات 87a) من عنصر تحكم، وبايت إضافي يحدد نوع الإضافة، وسلسلة من الكتل الفرعية التي تحتوي على بيانات الإضافة. يجب أن تسبق كتل الإضافة التي تُعدّل صورة (مثل إضافة التحكم الرسومي التي تحدد وقت تأخير الرسوم المتحركة الاختياري ولون الخلفية الشفاف الاختياري) مباشرةً المقطع الذي يحتوي على الصورة التي تشير إليها.

تبدأ كل كتلة فرعية ببايت يُحدد عدد بايتات البيانات اللاحقة في الكتلة الفرعية (من 1 إلى 255). وتنتهي سلسلة الكتل الفرعية بكتلة فرعية فارغة (بايت قيمته 0).

يُتيح هذا الهيكل تحليل الملف حتى في حال عدم فهم جميع أجزائه. قد يحتوي ملف GIF المُعَلَّم بـ 87a على كتل إضافية؛ والهدف من ذلك هو تمكين برنامج فك التشفير من قراءة الملف وعرضه دون الحاجة إلى الميزات التي تغطيها الامتدادات التي لا يفهمها.

تُغطى التفاصيل الكاملة لتنسيق الملف في مواصفات GIF. [ 2 ]

لوحات الألوان

مثال على صورة GIF محفوظة بلوحة ألوان آمنة للويب وتم تطبيق تقنية التمويه باستخدام طريقة Floyd-Steinberg ؛ ونتيجة لقلة الألوان المسموح بها نسبيًا في مثل هذه الصورة، فإن تباين الصورة وألوانها يكونان ضعيفين بشكل ملحوظ.

تعتمد صيغة GIF على لوحة ألوان: تُحدد قيم RGB للألوان المستخدمة في الصورة (الإطار) في الملف ضمن جدول لوحة ألوان يتسع لـ 256 عنصرًا، وتشير بيانات الصورة إلى الألوان من خلال مؤشراتها (من 0 إلى 255) في جدول لوحة الألوان. يمكن استخلاص تعريفات الألوان في لوحة الألوان من فضاء لوني يضم ملايين الدرجات اللونية (2^ 24 درجة لونية، 8 بت لكل لون أساسي)، ولكن الحد الأقصى لعدد الألوان التي يمكن أن يستخدمها الإطار هو 256 لونًا. كان هذا القيد منطقيًا عند تطوير صيغة GIF نظرًا لندرة الأجهزة التي يمكنها عرض أكثر من 256 لونًا في وقت واحد. عادةً ما تحتاج الرسومات البسيطة، والرسومات الخطية، والرسوم المتحركة، والصور الفوتوغرافية ذات التدرج الرمادي إلى أقل من 256 لونًا.

يمكن لكل إطار أن يحدد فهرسًا واحدًا على أنه "لون خلفية شفاف": أي بكسل يتم تعيين هذا الفهرس له يأخذ لون البكسل الموجود في نفس الموضع من الخلفية، والذي ربما تم تحديده بواسطة إطار سابق من الرسوم المتحركة.

طُوِّرت العديد من التقنيات، التي تُعرف مجتمعةً باسم التمويه اللوني ، لتقريب نطاق أوسع من الألوان باستخدام لوحة ألوان صغيرة، وذلك باستخدام وحدات بكسل من لونين أو أكثر لتقريب الألوان المتوسطة. تُضحي هذه التقنيات بالدقة المكانية لتقريب دقة لونية أعلى. على الرغم من أن التمويه اللوني ليس جزءًا من مواصفات GIF، إلا أنه يُمكن استخدامه في الصور التي تُشفَّر لاحقًا كصور GIF. غالبًا ما لا يُعد هذا حلاً مثاليًا لصور GIF، وذلك لأن فقدان الدقة المكانية يجعل الصورة تبدو ضبابية على الشاشة، ولأن أنماط التمويه اللوني غالبًا ما تتداخل مع قابلية ضغط بيانات الصورة، مما يُخالف الغرض الرئيسي لتقنية GIF.

في بدايات متصفحات الويب الرسومية (1981-1987، انظر وحدة معالجة الرسومات )، كانت بطاقات الرسومات ذات مخازن مؤقتة 8 بت (تسمح بـ 256 لونًا فقط) شائعة، وكان من الشائع إنشاء صور GIF باستخدام لوحة ألوان آمنة للويب . ضمن هذا عرضًا متوقعًا، لكنه حدّ بشدة من خيارات الألوان. عندما أصبح استخدام ألوان 24 بت هو المعيار، أصبح بالإمكان ملء لوحات الألوان بالألوان المثلى لكل صورة على حدة.

قد يكفي جدول ألوان صغير للصور الصغيرة، كما أن صغر حجم جدول الألوان يُسرّع عملية تنزيل الملف. تسمح كل من مواصفات 87a و89a بجداول ألوان تحتوي على 2n لونًا ، حيث n أي قيمة من 1 إلى 8. تستطيع معظم تطبيقات الرسومات قراءة وعرض صور GIF بأي من أحجام الجداول هذه؛ إلا أن بعضها لا يدعم جميع الأحجام عند إنشاء الصور. وتُعدّ جداول الألوان التي تحتوي على 2 و16 و256 لونًا مدعومة على نطاق واسع.

ألوان حقيقية

على الرغم من أن صيغة GIF نادراً ما تُستخدم للصور ذات الألوان الحقيقية ، إلا أنه من الممكن استخدامها. [ 35 ] [ 36 ] يمكن أن تتضمن صورة GIF عدة كتل صور، لكل منها لوحة ألوان خاصة بها مكونة من 256 لونًا، ويمكن تجميع هذه الكتل لإنشاء صورة كاملة. بدلاً من ذلك، قدمت مواصفات GIF89a فكرة اللون "الشفاف"، حيث يمكن أن تتضمن كل كتلة صورة لوحة ألوان خاصة بها مكونة من 255 لونًا مرئيًا بالإضافة إلى لون شفاف واحد. يمكن إنشاء صورة كاملة عن طريق وضع كتل الصور فوق بعضها، بحيث يظهر الجزء المرئي من كل طبقة من خلال الأجزاء الشفافة من الطبقات التي تعلوها.

صورة متحركة بصيغة GIF توضح تقنية لعرض أكثر من الحد المعتاد البالغ 256 لونًا

لعرض صورة ملونة كاملة بصيغة GIF، يجب تقسيم الصورة الأصلية إلى مناطق أصغر لا يزيد عدد ألوانها عن 255 أو 256 لونًا. تُخزَّن كل منطقة من هذه المناطق ككتلة صورة منفصلة بلوحة ألوان محلية خاصة بها، وعند عرض كتل الصور معًا (إما عن طريق التجانب أو عن طريق وضع كتل صور شفافة جزئيًا فوق بعضها)، تظهر الصورة الكاملة الملونة. على سبيل المثال، يضمن تقسيم الصورة إلى مربعات بحجم 16 × 16 بكسل (256 بكسل إجمالًا) ألا يتجاوز عدد ألوان أي مربع الحد الأقصى للوحة الألوان المحلية وهو 256 لونًا، مع العلم أنه يمكن استخدام مربعات أكبر حجمًا ودمج ألوان متشابهة، مما يؤدي إلى فقدان بعض معلومات الألوان. [ 35 ]

بما أن كل كتلة صورة يمكن أن تحتوي على جدول ألوان محلي خاص بها، فإن ملف GIF الذي يحتوي على العديد من كتل الصور قد يكون كبيرًا جدًا، مما يحد من فائدة صور GIF الملونة بالكامل. [ 36 ] إضافةً إلى ذلك، لا تتعامل جميع برامج عرض صور GIF مع الصور المُجزأة أو المُركبة بشكل صحيح. إذ تُفسر العديد من برامج العرض المُجزأة أو المُركبة على أنها إطارات رسوم متحركة وتعرضها بالتسلسل كرسوم متحركة [ 35 ] ، بينما تعرض معظم متصفحات الويب الإطارات تلقائيًا مع تأخير زمني يبلغ 0.1 ثانية أو أكثر. [ 37 ] [ 38 ]

مثال على ملف GIF

يحفظ برنامج الرسام (Microsoft Paint) صورة صغيرة بالأبيض والأسود كملف GIF كما هو موضح أدناه (مكبّر). لا يستغل الرسام صيغة GIF بالشكل الأمثل؛ فبسبب حجم جدول الألوان الكبير غير الضروري (حيث يخزن 256 لونًا كاملًا بدلًا من اللونين المستخدمين) وعرض الرمز، لا يُعد ملف GIF هذا تمثيلًا فعالًا للصورة ذات الـ 15 بكسل. على الرغم من أن كتلة امتداد التحكم الرسومي تُعرّف فهرس اللون 16 (السداسي عشري 10) على أنه شفاف، إلا أن هذا الفهرس غير مستخدم في الصورة. فهرسا اللون الوحيدان الظاهران في بيانات الصورة هما العشريان 40 و255، واللذان يُقابلهما جدول الألوان العام باللونين الأسود والأبيض على التوالي.

صورة نموذجية (مكبرة)، الحجم الفعلي 3  بكسل  عرضًا × 5  بكسل ارتفاعًا

الأرقام السداسية العشرية في الجداول التالية مرتبة حسب ترتيب البايتات الصغير ، كما هو منصوص عليه في مواصفات التنسيق.

جدول قيم صور GIF كمثال
بايت (سداسي عشري)النظام الست عشرينص أو قيمةمعنى
047 49 46 38 39 61GIF89aرأس الصفحة
واصف الشاشة المنطقية
603 003عرض الشاشة المنطقي
805 005ارتفاع الشاشة المنطقي
أF7يُستخدم ترميز GCT لـ 256 لونًا بدقة 3 × 8 بت/لون أساسي، حيث تمثل البتات الثلاثة الأدنى عمق البت ناقص 1، بينما يشير البت الأعلى إلى وجود ترميز GCT.
ب٠٠0لون الخلفية: فهرس 0؛ 000000 أسود
ج٠٠0نسبة العرض إلى الارتفاع الافتراضية للبكسل، 0:0
جدول الألوان العالمي
د٠٠ ٠٠ ٠٠
R (أحمر)G (أخضر)ب (أزرق)
000
جدول الألوان العالمي، اللون رقم 0: رقم 000000، أسود
تُحدد البايتات من D h إلى 30C h في المثال لوحة ألوان مكونة من 256 لونًا. أما المؤشرات المستخدمة في الصورة النموذجية للأبيض والأسود فهي 28 h و FF h .
1080 00 00
R (أحمر)G (أخضر)ب (أزرق)
12800
جدول الألوان العالمي، اللون رقم 1: بت شفاف، غير مستخدم في الصورة
.........يمتد جدول الألوان العالمي إلى 30 أمبير
30AFF FF FF
R (أحمر)G (أخضر)ب (أزرق)
255255255
جدول الألوان العالمي، اللون رقم 255: #ffffff، أبيض
ملحق التحكم الرسومي
30D21'!'كتلة إضافية (يتم إدخالها بواسطة علامة تعجب ASCII '!')
30EF9ملحق للتحكم الرسومي
30 فهرنهايت044حجم بيانات GCE، 4 بايت
31001لون خلفية شفاف؛ هذا حقل بت، يشير البت الأدنى إلى الشفافية
311٠٠ ٠٠تأخير الرسوم المتحركة بأجزاء من مئة من الثانية؛ غير مستخدم
3131016رقم لون البكسل الشفاف في GCT
314٠٠نهاية وحدة GCE
وصف الصورة
3152C','مُعرِّف الصورة (الذي تم تقديمه بواسطة 0x2C، وهي فاصلة ASCII ',')
316٠٠ ٠٠ ٠٠ ٠٠(0, 0)موضع الصورة في الزاوية الشمالية الغربية للشاشة المنطقية
31أ03 00 05 00(3، 5)عرض الصورة وارتفاعها بالبكسل
31E٠٠0بت جدول الألوان المحلي، 0 يعني لا شيء
بيانات الصورة
31 فهرنهايت088بداية الصورة، الحد الأدنى لحجم رمز LZW
3200B11بداية أول كتلة فرعية من البيانات، تحدد 11 بايت من البيانات المشفرة التي ستليها
32100 51 FC 1B 28 70 A0 C1 83 01 01<بيانات الصورة>11 بايت من بيانات الصورة، انظر الحقل 320
32 درجة مئوية٠٠0إنهاء كتلة البيانات الفرعية، مع تحديد عدم وجود بايتات بيانات لاحقة (ونهاية الصورة)
جَرَّار
32D';'مؤشر إنهاء كتلة الملف (فاصلة منقوطة ASCII ';')

ترميز الصور

تُحوّل بيانات بكسل الصورة، الممسوحة ضوئيًا أفقيًا من أعلى اليسار، باستخدام ترميز LZW إلى رموز تُخزّن بعد ذلك في بايتات داخل الملف. لا تتطابق رموز البكسل عادةً مع حجم البايتات البالغ 8 بت، لذا تُعبأ الرموز في بايتات باستخدام نظام "ليتل إنديان": يُخزّن البت الأقل أهمية من الرمز الأول في البت الأقل أهمية من البايت الأول، وتُخزّن البتات ذات الرتب الأعلى من الرمز في البتات ذات الرتب الأعلى من البايت، مع إمكانية استخدام البتات ذات الرتب الأدنى من البايت التالي عند الحاجة. يُخزّن كل رمز لاحق بدءًا من البت الأقل أهمية غير المستخدم.

يُخزَّن هذا التدفق البايتي في الملف على شكل سلسلة من "الكتل الفرعية". يبلغ الحد الأقصى لطول كل كتلة فرعية 255 بايت، ويُسبق كل منها ببايت يُشير إلى عدد بايتات البيانات فيها. وتنتهي سلسلة الكتل الفرعية بكتلة فرعية فارغة (بايت واحد قيمته 0، يُشير إلى كتلة فرعية تحتوي على 0 بايت من البيانات).

بالنسبة للصورة النموذجية أعلاه، يظهر أدناه الربط العكسي بين الرموز المكونة من 9 بتات والبايتات.

رسم الخرائط العكسي
رمز 9 بتبايت
النظام الست عشريثنائيثنائيالنظام الست عشري
1001 0000000000000000٠٠
02800 01010000101000 151
0FF٠١١ ١١١١١١111111 00نادي كرة القدم
1031000 00011٠٠٠١١ ٠١١
10210000 0010٠٠١٠ ١٠٠٠28
103100000 011011 1000070
1061000001 1010 100000A0
10710000011 11 1000001ج1
1000001183
1011 000000010000000101
0000000 101

يُلاحظ ضغط طفيف: ألوان البكسل المُعرّفة مبدئيًا بـ 15 بايتًا تُمثَّل بدقة بـ 12 بايتًا من التعليمات البرمجية، بما في ذلك رموز التحكم. تُوضَّح أدناه عملية التشفير التي تُنتج رموزًا من 9 بتات. يُجمِّع نصٌ محلي أرقام ألوان البكسل من لوحة الألوان، دون أي عملية إخراج، طالما وُجد هذا النص في جدول التعليمات البرمجية. تُعامل أول بكسلين يصلان قبل أن ينمو الجدول من حجمه الأولي بإضافة نصوص برمجية، معاملةً خاصة. بعد كل رمز إخراج، يُعاد تهيئة النص المحلي إلى آخر لون بكسل (لم يُضمَّن في رمز الإخراج).

جدول سلسلة 9 بت --> رمز رمز الإجراء #0 | 000h تهيئة جدول الجذر لرموز 9 بت لوحة الألوان | : الألوان | : #255 | 0FFh شفاف | 100 ساعة نهاية | 101 ساعة | 100 ساعة واضحة بكسل محلي | سلسلة لوحة الألوان | أسود #40 28 | 028h البكسل الأول دائمًا للإخراج أبيض #255 FF | تم العثور على السلسلة في الجدول 28 FF | 102h أضف دائمًا السلسلة الأولى إلى الجدول FF | تهيئة السلسلة المحلية أبيض #255 FF FF | لم يتم العثور على السلسلة في الجدول | 0FFh - رمز الإخراج للسلسلة السابقة FF FF | 103 ساعة - إضافة أحدث سلسلة نصية إلى الجدول FF | - تهيئة سلسلة محلية أبيض #255 FF FF | تم العثور على السلسلة في الجدول أسود #40 FF FF 28 | لم يتم العثور على السلسلة في الجدول | 103h - رمز الإخراج للسلسلة السابقة FF FF 28 | 104 ساعة - إضافة أحدث سلسلة نصية إلى الجدول 28 | - تهيئة سلسلة نصية محلية أبيض #255 28 FF | تم العثور على السلسلة في الجدول أبيض #255 28 FF FF | لم يتم العثور على السلسلة في الجدول | 102h - رمز الإخراج للسلسلة السابقة 28 FF FF | 105 ساعة - إضافة السلسلة الأخيرة إلى الجدول FF | - تهيئة سلسلة محلية أبيض #255 FF FF | تم العثور على السلسلة في الجدول أبيض #255 FF FF FF | لم يتم العثور على السلسلة في الجدول | 103h - رمز الإخراج للسلسلة السابقة FF FF FF | 106 ساعة - إضافة آخر سلسلة نصية إلى الجدول FF | - تهيئة سلسلة محلية أبيض #255 FF FF | تم العثور على السلسلة في الجدول أبيض #255 FF FF FF | تم العثور على السلسلة في الجدول أبيض #255 FF FF FF FF | لم يتم العثور على السلسلة في الجدول | 106h - رمز الإخراج للسلسلة السابقة FF FF FF FF| 107 ساعة - إضافة آخر سلسلة نصية إلى الجدول FF | - تهيئة سلسلة محلية أبيض #255 FF FF | تم العثور على السلسلة في الجدول أبيض #255 FF FF FF | تم العثور على السلسلة في الجدول أبيض #255 FF FF FF FF | تم العثور على السلسلة في الجدول لا مزيد من البكسلات 107h - رمز الإخراج للسلسلة الأخيرة نهاية 101 ساعة

للتوضيح، يظهر الجدول أعلاه مُكوَّنًا من سلاسل نصية متزايدة الطول. هذه الطريقة فعّالة، لكن الجدول يستهلك كمية غير متوقعة من الذاكرة. يمكن توفير الذاكرة عمليًا بملاحظة أن كل سلسلة نصية جديدة تُخزَّن تتكون من سلسلة نصية مُخزَّنة سابقًا مُضافًا إليها حرف واحد. من المُجدي تخزين كلمتين فقط في كل عنوان: عنوان موجود وحرف واحد.

تتطلب خوارزمية LZW البحث في الجدول لكل بكسل. سيؤدي البحث الخطي عبر ما يصل إلى 4096 عنوانًا إلى إبطاء عملية الترميز. عمليًا، يمكن تخزين الرموز بترتيب قيمها العددية؛ مما يسمح بإجراء كل عملية بحث بواسطة مسجل التقريب المتتالي (SAR، كما هو مستخدم في بعض محولات التناظرية إلى الرقمية)، مع 12 مقارنة فقط للمقدار. لتحقيق هذه الكفاءة، يلزم جدول إضافي للتحويل بين الرموز وعناوين الذاكرة الفعلية؛ ولا يلزم تحديث هذا الجدول الإضافي إلا عند تخزين رمز جديد، وهو ما يحدث بمعدل أقل بكثير من معدل البكسل.

فك تشفير الصور

تبدأ عملية فك التشفير بإعادة ربط البايتات المخزنة برموز مكونة من 9 بتات. يتم فك تشفير هذه الرموز لاستعادة ألوان البكسل كما هو موضح أدناه. يتم إنشاء جدول مطابق للجدول المستخدم في المُشفِّر عن طريق إضافة السلاسل النصية وفقًا لهذه القاعدة:

هل تم العثور على الكود الوارد في الجدول؟
نعمأضف سلسلة نصية للتعليمات البرمجية المحلية، متبوعة بالبايت الأول من سلسلة التعليمات البرمجية الواردة.
لاأضف سلسلة للتعليمات البرمجية المحلية متبوعة بنسخة من البايت الأول الخاص بها
تحويل 9 بت ----> جدول محلي رمز البكسل رمز الرمز --> سلسلة لون لوحة الألوان الإجراء 100h 000h | #0 تهيئة جدول الجذر لرموز 9 بت : | لوحة الألوان : | ألوان 0FFh | #255 100 ساعة | شفاف 101 ساعة | نهاية 028h | #40 أسود فك تشفير البكسل الأول 0FFh 028h | تم العثور على الرمز الوارد في الجدول | #255 أبيض - سلسلة الإخراج من الجدول 102 ساعة | 28 FF - أضف إلى الجدول 103h 0FFh | لم يتم العثور على الرمز الوارد في الجدول 103 ساعة | FF FF - أضف إلى الجدول | - إخراج السلسلة من الجدول | أبيض رقم 255 | أبيض رقم 255 102 ساعة 103 ساعة | تم العثور على الرمز الوارد في الجدول | - إخراج السلسلة من الجدول | #40 أسود | #255 أبيض 104 ساعة | FF FF 28 - أضف إلى الجدول 103 ساعة 102 ساعة | تم العثور على الرمز الوارد في الجدول | - إخراج السلسلة من الجدول | أبيض رقم 255 | أبيض رقم 255 105 ساعة | 28 FF FF - أضف إلى الجدول 106 ساعة 103 ساعة | لم يتم العثور على الرمز الوارد في الجدول 106 ساعة | FF FF FF - أضف إلى الجدول | - إخراج السلسلة من الجدول | أبيض رقم 255 | أبيض رقم 255 | أبيض رقم 255 107 ساعة 106 ساعة | لم يتم العثور على الرمز الوارد في الجدول 107 ساعة | FF FF FF FF - أضف إلى الجدول | - إخراج السلسلة من الجدول | أبيض رقم 255 | أبيض رقم 255 | أبيض رقم 255 | أبيض رقم 255 101 ساعة | نهاية

أطوال رمز LZW

يمكن استخدام أطوال رموز أقصر للوحات ألوان أصغر من 256 لونًا في المثال. فإذا كانت لوحة الألوان تحتوي على 64 لونًا فقط (أي أن عرض فهارس الألوان 6 بتات)، يمكن أن تتراوح الرموز من 0 إلى 63، ويمكن اعتبار عرض الرمز 6 بتات، مع بدء الرموز من 7 بتات. في الواقع، لا يشترط أن يتطابق عرض الرمز مع حجم لوحة الألوان: طالما أن القيم المُفكَّكة أقل دائمًا من عدد الألوان في لوحة الألوان، يمكن أن يكون عرض الرموز أي قيمة من 2 إلى 8، وحجم لوحة الألوان أي قوة من قوى العدد 2 من 2 إلى 256. على سبيل المثال، إذا استُخدمت الألوان الأربعة الأولى فقط (القيم من 0 إلى 3) من لوحة الألوان، يمكن اعتبار عرض الرموز 2 بتات مع بدء الرموز من 3 بتات.

في المقابل، يمكن ضبط عرض الرمز على 8، حتى لو تم استخدام القيمتين 0 و1 فقط؛ إذ لا تتطلب هذه البيانات سوى جدول ثنائي اللون. مع أنه لا جدوى من ترميز الملف بهذه الطريقة، إلا أن شيئًا مشابهًا يحدث عادةً مع الصور ثنائية اللون: الحد الأدنى لعرض الرمز هو 2، حتى لو تم استخدام القيمتين 0 و1 فقط.

يحتوي جدول الترميز مبدئيًا على رموز أطول بت واحد من حجم الرمز لاستيعاب الرمزين الخاصين clr و end ، بالإضافة إلى رموز السلاسل النصية التي تُضاف أثناء العملية. عندما يمتلئ الجدول، يزداد طول الرمز لإفساح المجال لمزيد من السلاسل النصية، حتى يصل إلى رمز أقصى قدره 4095 = FFF (سداسي عشري). أثناء قيام وحدة فك التشفير ببناء جدولها، فإنها تتعقب هذه الزيادات في طول الرمز، وتتمكن من فك تشفير البايتات الواردة وفقًا لذلك.

صورة GIF غير مضغوطة

صورة GIF غير مضغوطة بحجم 46×46 بكسل، تحتوي على رموز 7 بت (128 لونًا، رموز 8 بت). انقر على الصورة للاطلاع على شرح الرمز.

يمكن تعديل عملية ترميز GIF لإنشاء ملف بدون ضغط LZW مع الحفاظ على إمكانية عرضه كصورة GIF. طُرحت هذه التقنية في الأصل كوسيلة لتجنب انتهاك براءات الاختراع. كما يُعدّ ملف GIF غير المضغوط صيغة وسيطة مفيدة لمبرمجي الرسومات، إذ يُمكن الوصول إلى وحدات البكسل الفردية لقراءتها أو رسمها. يُمكن تحويل ملف GIF غير المضغوط إلى ملف GIF عادي ببساطة عن طريق معالجته في برنامج تحرير الصور.

تتجاهل طريقة التشفير المُعدّلة إنشاء جدول LZW، وتُصدر فقط رموز لوحة الألوان الأساسية ورموز CLEAR وSTOP. ينتج عن ذلك تشفير أبسط (تطابق تام بين قيم الرموز ورموز لوحة الألوان)، ولكنه يُضحي بجميع مزايا الضغط: إذ يُولّد كل بكسل في الصورة رمز إخراج يُشير إلى فهرس لونه. عند معالجة ملف GIF غير مضغوط، لن يُمنع مُفكِّك تشفير GIF القياسي من كتابة سلاسل نصية إلى جدول القاموس الخاص به، ولكن يجب ألا يزيد عرض الرمز أبدًا، لأن ذلك يُؤدي إلى تغيير في عملية تجميع البتات إلى بايتات.

إذا كان عرض الرمز n ، فإن الرموز ذات العرض n + 1 تنقسم تلقائيًا إلى مجموعتين: المجموعة السفلية التي تضم 2n رمزًا لترميز الرموز المفردة ، والمجموعة العلوية التي تضم 2n رمزًا والتي سيستخدمها المُفكِّك لتسلسلات يزيد طولها عن واحد. من المجموعة العلوية، الرمزان الأولان مستخدمان بالفعل: 2n لـ CLEAR و 2 n + 1 لـ STOP. يجب أيضًا منع المُفكِّك من استخدام الرمز الأخير في المجموعة العلوية، 2n + 1 - 1 ، لأنه عند ملء هذا الموضع، سيزداد عرض الرمز. بالتالي، في المجموعة العلوية k، يوجد 2n - 3 رموز متاحة للمُفكِّك لا تؤدي إلى زيادة في عرض الرمز. ولأن المُفكِّك دائمًا متأخر بخطوة واحدة في تحديث الجدول، فإنه لا يُنشئ مدخلًا في الجدول عند استلام الرمز الأول من المُشفِّر، ولكنه يُنشئ مدخلًا لكل رمز لاحق. وبالتالي، يستطيع المُشفِّر توليد 2n -2 رمزًا دون زيادة عرض الرمز. لذلك، يجب على المُشفِّر إصدار رموز CLEAR إضافية على فترات لا تتجاوز 2n -2 رمزًا لإعادة ضبط قاموس الترميز بواسطة المُفكِّك. يسمح معيار GIF بإدراج هذه الرموز الإضافية في بيانات الصورة في أي وقت. يتم تقسيم دفق البيانات المُركَّب إلى كتل فرعية، تحمل كل منها من 1 إلى 255 بايتًا .

بالنسبة للصورة النموذجية 3×5 أعلاه، تمثل الرموز المكونة من 9 بتات التالية "واضح" (100) متبوعة بوحدات البكسل في الصورة بترتيب المسح و"توقف" (101).

100 028 0FF 0FF 0FF 028 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 101

بعد تحويل الرموز المذكورة أعلاه إلى بايتات، يختلف الملف غير المضغوط عن الملف المضغوط، على النحو التالي:

بايت (سداسي عشري)النظام الست عشرينص أو قيمةمعنى
3201420بيانات الصورة غير المضغوطة بحجم 20 بايت تلي
32100 51 FC FB F7 0F C5 BF 7F FF FE FD FB F7 EF DF BF 7F 01 01
335٠٠0نهاية بيانات الصورة

مثال على الضغط

يوضح المثال البسيط لصورة كبيرة ذات لون ثابت ضغط LZW ذو الطول المتغير المستخدم في ملفات GIF.

ضغط نموذجي لملف GIF
شفرةبكسلاتملحوظات
لا.
ني
قيمة
N i + 256
طول
(أجزاء)
هذا الكود
ني
متراكم
Ni ( N i + 1 ) / 2
لا تنطبق العلاقات التي تستخدم N i إلا على وحدات البكسل ذات اللون نفسه حتى يمتلئ جدول الترميز.
0100 ساعة9يوم إزالة الرموز
1FFh11تم اختيار لون البكسل العلوي الأيسر كأعلى فهرس في لوحة ألوان مكونة من 256 لونًا.
2102 ساعة23
3
255
103 ساعة
1FFh
3
255
6
32640
آخر 9 بتات من الرمز
256
767
200 ساعة
3FFh
10256
767
32896
294528
آخر 10 بتات من الرمز
768
1791
400 ساعة
7FFh
11768
1791
295296
1604736
آخر 11 بت من الرمز
1792
3839
800 ساعة
FFFh
121792
3839
1606528
7370880
جدول الرموز كامل
FFFh3839قد يتكرر الحد الأقصى للرمز لعدد أكبر من وحدات البكسل ذات اللون نفسه.
يقترب معدل ضغط البيانات الإجمالي بشكل تقاربي من 3839 × 8 / 12 = 2559 + 1 / 3
101 ساعةنهاية بيانات الصورة

تُجمّع قيم الترميز المعروضة في بايتات، ثم تُجمّع هذه البايتات في كتل يصل حجمها إلى 255 بايتًا. تبدأ كتلة بيانات الصورة ببايت يُحدد عدد البايتات التي تليها. وتُعلّم الكتلة الأخيرة من بيانات الصورة ببايت طوله صفر.

التشابك

لقطة شاشة لملف GIF متداخل يتم تحميله في متصفح الويب

تسمح مواصفات GIF لكل صورة ضمن الشاشة المنطقية لملف GIF بتحديد أنها متداخلة؛ أي أن ترتيب خطوط الصورة النقطية في كتلة بياناتها ليس متسلسلاً. وهذا يسمح بعرض جزئي للصورة يمكن التعرف عليه قبل عرض الصورة كاملة.

يتم تقسيم الصورة المتداخلة من الأعلى إلى الأسفل إلى شرائح بارتفاع 8 بكسل، ويتم عرض صفوف الصورة بالترتيب التالي:

  • المرحلة 1: السطر 0 (السطر العلوي) من كل شريط.
  • المرحلة الثانية: السطر 4 من كل شريط.
  • المرحلة الثالثة: السطران 2 و 6 من كل شريط.
  • المرحلة الرابعة: الأسطر 1 و3 و5 و7 من كل شريط.

لا تتداخل وحدات البكسل داخل كل سطر، بل تُعرض بالتتابع من اليسار إلى اليمين. وكما هو الحال في الصور غير المتداخلة، لا يوجد فاصل بين بيانات سطر وبيانات السطر التالي. ويتم تحديد مؤشر تداخل الصورة عن طريق بت مُعيّن في كتلة وصف الصورة المقابلة.

صورة متحركة بصيغة GIF

يمكن استخدام صيغة GIF لعرض الرسوم المتحركة، كما هو الحال في هذه الصورة لمهد نيوتن .

على الرغم من أن تنسيق GIF لم يُصمم في الأصل كوسيلة لعرض الرسوم المتحركة، إلا أن قدرته على تخزين صور متعددة في ملف واحد أوحت باستخدامه لتخزين إطارات سلسلة الرسوم المتحركة. ولتسهيل عرض الرسوم المتحركة، أضافت مواصفات GIF89a امتداد التحكم الرسومي (GCE)، الذي يسمح برسم الصور (الإطارات) في الملف مع تأخيرات زمنية، لتشكيل مقطع فيديو . يُقدّم كل إطار في ملف GIF للرسوم المتحركة بواسطة امتداد GCE خاص به، يحدد التأخير الزمني المطلوب بعد رسم الإطار. تُطبّق المعلومات العامة في بداية الملف افتراضيًا على جميع الإطارات. البيانات مُوجّهة نحو التدفق، لذا يعتمد إزاحة الملف لبداية كل امتداد GCE على طول البيانات السابقة. داخل كل إطار، تُرتّب بيانات الصورة المُشفّرة باستخدام LZW في كتل فرعية يصل حجمها إلى 255 بايت؛ ويُحدّد حجم كل كتلة فرعية بواسطة البايت الذي يسبقها.

افتراضيًا، يعرض الرسم المتحرك سلسلة الإطارات مرة واحدة فقط، ويتوقف عند عرض الإطار الأخير. ولتمكين تكرار الرسم المتحرك، استخدمت نتسكيب في التسعينيات كتلة امتداد التطبيق (التي تهدف إلى السماح للموردين بإضافة معلومات خاصة بالتطبيق إلى ملف GIF) لتنفيذ كتلة تطبيق نتسكيب (NAB). [ 39 ] تحدد هذه الكتلة، الموضوعة مباشرةً قبل سلسلة إطارات الرسم المتحرك، عدد مرات تشغيل سلسلة الإطارات (من 1 إلى 65535 مرة) أو ما إذا كان ينبغي تكرارها باستمرار (الصفر يعني التكرار إلى الأبد). ظهر دعم هذه الرسوم المتحركة المتكررة لأول مرة في نتسكيب نافيجاتور الإصدار 2.0، ثم انتشر إلى متصفحات أخرى. [ 40 ] تتعرف معظم المتصفحات الآن على NAB وتدعمها، على الرغم من أنها ليست جزءًا أساسيًا من مواصفات GIF89a.

يوضح المثال التالي بنية ملف الرسوم المتحركة Rotating earth (large).gif المعروض (كصورة مصغرة) في مربع معلومات المقالة.

بنية GIF
بايت (سداسي عشري)النظام الست عشرينص أو قيمةمعنى
047 49 46 38 39 61GIF89aواصف الشاشة المنطقية
690 01400العرض بالبكسل
890 01400الارتفاع بالبكسل
أF7يتبع ذلك نظام GCT لـ 256 لونًا بدقة 3 × 8 بت/لون أساسي
ب٠٠0لون الخلفية: أسود
ج٠٠0نسبة العرض إلى الارتفاع الافتراضية للبكسل، 0:0
د٠٠جدول الألوان العالمي
30D21'!'كتلة إضافية (يتم إدخالها بواسطة علامة تعجب ASCII '!')
30EFFامتداد التطبيق
30 فهرنهايت0B11حجم الكتلة بما في ذلك اسم التطبيق وبايتات التحقق (دائماً 11)
3104هـ 45 54 53 43 41 50 45 32 2هـ 30نتسكيب 2.0اسم التطبيق المكون من 8 بايت بالإضافة إلى 3 بايت للتحقق
31ب033عدد البايتات في الكتلة الفرعية التالية
31 درجة مئوية011فهرس كتلة البيانات الفرعية الحالية (دائمًا 1 لكتلة NETSCAPE)
31DFF FF65535عدد التكرارات غير الموقع
31 فهرنهايت٠٠نهاية سلسلة الكتل الفرعية لكتلة امتداد التطبيق
32021'!'كتلة إضافية (يتم إدخالها بواسطة علامة تعجب ASCII '!')
321F9ملحق التحكم الرسومي للإطار رقم 1
322044عدد البايتات (4) في الكتلة الفرعية الحالية
32304
٠٠٠..... ...001.. ......0. .......0 
(مقسمة إلى أقسام لتسهيل القراءة)
محجوز، 5 بتات سفلية هي حقل بت. طريقة التخلص 1: لا تتخلص. لا يوجد إدخال من المستخدم. لون شفاف، 0 يعني غير مُدخل.
32409 009تأخير الإطار: تأخير لمدة 0.09 ثانية قبل رسم الإطار التالي
326FFمؤشر اللون الشفاف (غير مستخدم في هذا الإطار)
327٠٠نهاية سلسلة الكتل الفرعية لكتلة امتداد التحكم الرسومي
3282C','مُعرِّف الصورة (الذي تم تقديمه بواسطة 0x2C، وهي فاصلة ASCII ',')
329٠٠ ٠٠ ٠٠ ٠٠(0, 0)موضع الصورة في الزاوية الشمالية الغربية على الشاشة المنطقية: (0، 0)
32D90 01 90 01(400, 400)عرض وارتفاع الإطار: 400 × 400 بكسل
331٠٠0جدول الألوان المحلي: 0 يعني لا شيء ولا تداخل
332088الحد الأدنى لحجم رمز LZW لبيانات الصورة للإطار رقم 1
333FF255عدد بايتات بيانات صورة LZW في الكتلة الفرعية التالية: 255 بايت
334...<بيانات الصورة>بيانات الصورة، 255 بايت
433FF255عدد بايتات بيانات صورة LZW في الكتلة الفرعية التالية، 255 بايت
434...<بيانات الصورة>بيانات الصورة، 255 بايت
كرر ذلك مع الكتل التالية
92C0٠٠نهاية سلسلة الكتل الفرعية لهذا الإطار
92C121'!'كتلة إضافية (يتم إدخالها بواسطة علامة تعجب ASCII '!')
92C2F9ملحق التحكم الرسومي للإطار T2
كرر ذلك للإطارات التالية
EDABD21'!'كتلة إضافية (يتم إدخالها بواسطة علامة تعجب ASCII '!')
إيدابيF9ملحق التحكم الرسومي للإطار 44
معلومات وبيانات الصورة للإطار رقم 44
F48F5المقطع الأخير: البايت الأخير في الملف، يشير إلى نهاية الملف

يُحدد تأخير الرسوم المتحركة لكل إطار في GCE بأجزاء من مئة من الثانية. يُمكن تحقيق بعض التوفير في البيانات عندما يحتاج الإطار فقط إلى إعادة كتابة عدد قليل من البكسلات على الشاشة، لأن مُعرّف الصورة يُمكنه تحديد مستطيل أصغر لإعادة مسحه بدلاً من الصورة بأكملها. عادةً ما تعرض المتصفحات أو الشاشات الأخرى التي لا تدعم صور GIF المتحركة الإطار الأول فقط.

يختلف حجم وجودة ألوان ملفات GIF المتحركة اختلافًا كبيرًا باختلاف التطبيق المستخدم لإنشائها. تشمل استراتيجيات تقليل حجم الملف استخدام جدول ألوان عالمي مشترك لجميع الإطارات (بدلاً من جدول ألوان محلي كامل لكل إطار) وتقليل عدد البكسلات المغطاة في الإطارات المتتالية (بحيث لا تُضمّن في الإطار الأخير إلا البكسلات التي تتغير من إطار لآخر). تتضمن التقنيات الأكثر تقدمًا تعديل تسلسلات الألوان لتتوافق بشكل أفضل مع قاموس LZW الحالي، وهو نوع من الضغط مع فقدان البيانات . عادةً ما يؤدي تجميع سلسلة من صور الإطارات المستقلة في صورة متحركة مركبة إلى أحجام ملفات كبيرة. تتوفر أدوات لتقليل حجم ملف GIF موجود.

البيانات الوصفية

يمكن تخزين البيانات الوصفية في ملفات GIF على شكل كتلة تعليق، أو كتلة نصية عادية، أو كتلة امتداد خاصة بالتطبيق. تستخدم العديد من برامج تحرير الرسومات كتل امتداد غير رسمية لتضمين البيانات المستخدمة في إنشاء الصورة، بحيث يمكن استعادتها لمزيد من التحرير.

تتطلب جميع هذه الطرق من الناحية الفنية تقسيم البيانات الوصفية إلى كتل فرعية حتى تتمكن التطبيقات من التنقل في كتلة البيانات الوصفية دون معرفة بنيتها الداخلية.

أدخل معيار بيانات التعريف القابلة للتوسيع (XMP) وحدةً إضافيةً غير رسمية، ولكنها شائعة الاستخدام الآن، تُسمى "بيانات XMP"، وذلك لإدراج بيانات XMP في ملفات GIF. [ 41 ] ولأن بيانات XMP مُشفّرة باستخدام ترميز UTF-8 بدون أحرف NUL، فلا توجد بايتات فارغة (0 بايت) في البيانات. وبدلاً من تقسيم البيانات إلى كتل فرعية رسمية، تنتهي هذه الوحدة الإضافية بـ "تذييل سحري" يُوجّه أي تطبيق يتعامل مع البيانات ككتل فرعية إلى بايت فارغ (0 بايت) يُنهي سلسلة الكتل الفرعية.

إنفاذ براءات الاختراع من قبل يونيسيس وLZW

في عامي 1977 و1978، نشر جاكوب زيف وأبراهام ليمبل ورقتين بحثيتين حول فئة جديدة من خوارزميات ضغط البيانات بدون فقدان، والتي يُشار إليها الآن مجتمعةً باسم LZ77 وLZ78 . وفي عام 1983، طوّر تيري ويلش نسخةً سريعةً من LZ78 سُمّيت ليمبل-زيف-ويلش (LZW). [ 42 ] [ 43 ]

قدّم ويلش طلب براءة اختراع لطريقة LZW في يونيو 1983. وحصلت الشركة على براءة الاختراع الناتجة، US4558302، [ 44 ] والتي مُنحت في ديسمبر 1985، وتمّ نقلها إلى شركة سبيري التي اندمجت لاحقًا مع شركة بوروز في عام 1986 لتشكيل شركة يونيسيس . [ 42 ] كما حصلت الشركة على براءات اختراع أخرى في المملكة المتحدة وفرنسا وألمانيا وإيطاليا واليابان وكندا.

بالإضافة إلى براءات الاختراع المذكورة أعلاه، تتضمن براءة اختراع ويلش لعام 1983 أيضًا إشارات إلى العديد من براءات الاختراع الأخرى التي أثرت فيها، بما في ذلك:

في يونيو 1984، نُشرت مقالة بقلم ويلش في مجلة IEEE ، وصفت فيها تقنية LZW علنًا لأول مرة. [ 49 ] أصبحت LZW تقنية ضغط بيانات شائعة، وعندما مُنحت براءة الاختراع، أبرمت شركة يونيسيس اتفاقيات ترخيص مع أكثر من مئة شركة. [ 42 ] [ 50 ]

أدى رواج تقنية LZW إلى اختيار شركة CompuServe لها كتقنية ضغط لنسختها من GIF، التي طُوّرت عام 1987. في ذلك الوقت، لم تكن CompuServe على علم ببراءة الاختراع. [ 42 ] علمت شركة Unisys بأن نسخة GIF تستخدم تقنية ضغط LZW، ودخلت في مفاوضات ترخيص مع CompuServe في يناير 1993. أُعلن عن الاتفاقية اللاحقة في 24 ديسمبر 1994. [ 43 ] صرّحت Unisys بأنها تتوقع من جميع شركات خدمات المعلومات التجارية الكبرى عبر الإنترنت التي تستخدم براءة اختراع LZW ترخيص التقنية من Unisys بسعر معقول، لكنها لن تطلب أي ترخيص أو رسوم مقابل التطبيقات غير التجارية وغير الربحية القائمة على GIF، بما في ذلك تلك المستخدمة في الخدمات عبر الإنترنت. [ 50 ]

عقب هذا الإعلان، انتشرت إدانات واسعة النطاق لشركتي CompuServe وUnisys، وهدد العديد من مطوري البرامج بالتوقف عن استخدام صيغة GIF. طُوّرت صيغة PNG (انظر أدناه) عام 1995 كبديل مُفترض. [ 42 ] [ 43 ] [ 49 ] إلا أن الحصول على دعم من مُصنّعي متصفحات الويب والبرامج الأخرى لصيغة PNG كان صعبًا، ولم يكن من الممكن استبدال GIF، على الرغم من ازدياد شعبية PNG تدريجيًا. [ 42 ] لذلك، طُوّرت صيغ مُختلفة من GIF بدون ضغط LZW. على سبيل المثال، تسمح مكتبة libungif، المُستندة إلى مكتبة giflib الخاصة بإريك س. ريموند ، بإنشاء صور GIF تتبع صيغة البيانات ولكنها تتجنب ميزات الضغط، وبالتالي تتجنب استخدام براءة اختراع Unisys LZW. [ 51 ] وصفت مقالة نُشرت عام 2001 في مجلة Dr. Dobb's طريقة لتحقيق ترميز مُتوافق مع LZW للبيانات التي يُمكن ضغطها جيدًا باستخدام آلية ترميز طول التشغيل دون انتهاك براءات اختراعها. [ 52 ]

في أغسطس/آب 1999، عدّلت شركة يونيسيس تفاصيل ممارسات الترخيص الخاصة بها، معلنةً عن خيارٍ لأصحاب مواقع إلكترونية غير تجارية وخاصة مُحددة للحصول على تراخيص مقابل دفع رسوم ترخيص لمرة واحدة قدرها 5000 دولار أمريكي أو 7500 دولار أمريكي. [ 53 ] لم تكن هذه التراخيص مطلوبة لأصحاب المواقع الإلكترونية أو مستخدمي صور GIF الآخرين الذين استخدموا برامج مرخصة لإنشاء صور GIF. ومع ذلك، تعرضت يونيسيس لآلاف الهجمات الإلكترونية ورسائل البريد الإلكتروني المسيئة من مستخدمين اعتقدوا أنهم سيُطالبون بدفع 5000 دولار أمريكي أو سيُقاضون لاستخدامهم صور GIF على مواقعهم الإلكترونية. [ 54 ] على الرغم من منح تراخيص مجانية لمئات المنظمات غير الربحية والمدارس والهيئات الحكومية، إلا أن يونيسيس لم تتمكن إطلاقًا من تحقيق أي دعاية إيجابية، واستمرت في التعرض للإدانة من قبل أفراد ومنظمات مثل رابطة حرية البرمجة التي أطلقت حملة "حرق جميع صور GIF" في عام 1999. [ 55 ] [ 56 ]

انتهت صلاحية براءة اختراع LZW الأمريكية في 20 يونيو 2003. [ 57 ] وانتهت صلاحية براءات الاختراع المقابلة في المملكة المتحدة وفرنسا وألمانيا وإيطاليا في 18 يونيو 2004، وانتهت صلاحية براءات الاختراع اليابانية في 20 يونيو 2004، وانتهت صلاحية براءة الاختراع الكندية في 7 يوليو 2004. [ 57 ] ونتيجة لذلك، ورغم امتلاك شركة يونيسيس لبراءات اختراع وطلبات براءات اختراع أخرى تتعلق بتحسينات تقنية LZW، [ 57 ] فإن تقنية LZW نفسها (وبالتالي GIF) متاحة للاستخدام مجانًا منذ يوليو 2004. [ 58 ]

البدائل

PNG

صُممت صيغة الرسومات الشبكية المحمولة (PNG) كبديل لصيغة GIF لتجنب انتهاك براءة اختراع شركة Unisys لتقنية ضغط LZW. [ 42 ] توفر PNG ضغطًا أفضل وميزات أكثر من GIF، [ 59 ] باستثناء الرسوم المتحركة. تُعد PNG أكثر ملاءمة من GIF في الحالات التي تتطلب صورًا بألوان حقيقية وشفافية ألفا .

على الرغم من أن دعم تنسيق PNG بدأ ببطء، إلا أن متصفحات الويب الحديثة تدعمه الآن. لا تدعم الإصدارات القديمة من إنترنت إكسبلورر جميع ميزات PNG. فالإصدارات 6 وما قبلها لا تدعم شفافية قناة ألفا إلا باستخدام ملحقات HTML الخاصة بمايكروسوفت. [ 60 ] لم يكن تصحيح غاما لصور PNG مدعومًا قبل الإصدار 8، وقد يظهر لون هذه الصور في الإصدارات السابقة بشكل غير صحيح. [ 61 ]

بالنسبة لبيانات الصور المتطابقة ذات 8 بت (أو أقل)، تكون ملفات PNG عادةً أصغر حجمًا من ملفات GIF المكافئة، وذلك بفضل تقنيات الضغط الأكثر كفاءة المستخدمة في ترميز PNG. [ 62 ] ويُعقّد الدعم الكامل لملفات GIF بشكل أساسي بنية اللوحة المعقدة التي تسمح بها، مع أن هذه البنية هي التي تُمكّن ميزات الرسوم المتحركة المُصغّرة.

تنسيقات الرسوم المتحركة

تُعالج مقاطع الفيديو العديد من المشكلات التي تُعاني منها صور GIF عند استخدامها بشكل شائع على الإنترنت. فهي تتميز بصغر حجم ملفاتها بشكل كبير ، وقدرتها على تجاوز قيود الألوان ذات 8 بت ، وتحسين معالجة الإطارات وضغطها من خلال ترميز ما بين الإطارات . وقد ساهم الدعم شبه العالمي لصيغة GIF في متصفحات الويب ، وعدم وجود دعم رسمي للفيديو في معيار HTML ، في بروز GIF كخيار شائع لعرض ملفات قصيرة تُشبه مقاطع الفيديو على الإنترنت.

  • طُوِّرت تقنية MNG (رسومات الشبكة متعددة الصور) في الأصل كحلٍّ قائم على صيغة PNG للرسوم المتحركة. وصلت MNG إلى الإصدار 1.0 في عام 2001، ولكن لا تدعمها سوى تطبيقات قليلة.
  • اقترحت موزيلا تنسيق APNG (الرسومات الشبكية المحمولة المتحركة) عام 2006. يُعد APNG امتدادًا لتنسيق PNG كبديل لتنسيق MNG. يدعم معظم المتصفحات تنسيق APNG منذ عام 2019. [ 63 ] يوفر APNG إمكانية تحريك ملفات PNG، مع الحفاظ على التوافق مع الإصدارات السابقة في برامج فك التشفير التي لا تدعم جزء الرسوم المتحركة (على عكس MNG). تقوم برامج فك التشفير القديمة بعرض الإطار الأول من الرسوم المتحركة فقط.
رفضت مجموعة بابوا غينيا الجديدة رسمياً اتفاقية بابوا غينيا الجديدة كتمديد رسمي في 20 أبريل 2007. [ 64 ]
ظهرت عدة مقترحات لاحقة لإنشاء صيغة رسوم متحركة بسيطة تعتمد على PNG باستخدام مناهج مختلفة. [ 65 ] ومع ذلك، لا تزال Mozilla تعمل على تطوير APNG، وهي مدعومة في Firefox 3.0 [ 66 ] [ 67 ] ، بينما تم إيقاف دعم MNG. [ 68 ] [ 69 ] يدعم APNG حاليًا جميع متصفحات الويب الرئيسية، بما في ذلك Chrome (منذ الإصدار 59.0) وOpera وFirefox وEdge.
  • تم استخدام كائنات Adobe Flash المضمنة وملفات MPEG على بعض مواقع الويب لعرض مقاطع فيديو بسيطة، ولكن ذلك تطلب استخدام مكون إضافي للمتصفح.
  • لا تزال تقنيتا WebM و WebP قيد التطوير وتدعمهما بعض متصفحات الويب. [ 70 ]
  • تشمل الخيارات الأخرى للرسوم المتحركة على الويب عرض الإطارات الفردية باستخدام AJAX ، أو تحريك صور SVG ("الرسومات المتجهة القابلة للتوسيع") باستخدام JavaScript أو SMIL ("لغة تكامل الوسائط المتعددة المتزامنة"). [ 71 ]
  • مع انتشار دعم وسم الفيديو HTML ( <video>) في معظم متصفحات الويب، تستخدم بعض المواقع الإلكترونية نسخة متكررة من وسم الفيديو المُنشأ. وهذا يُعطي مظهر صورة GIF، ولكن مع مزايا الحجم والسرعة التي يتميز بها الفيديو المضغوط.
ومن الأمثلة البارزة على ذلك موقعا Gfycat و Imgur وتنسيق GIFV الخاص بهما، وهو في الواقع عبارة عن علامة فيديو تقوم بتشغيل فيديو مضغوط بصيغة MP4 أو WebM بشكل متكرر . [ 72 ]
بالمقارنة مع صيغة GIF التي تفتقر إلى ضغط DCT، تتيح صيغة HEIF ضغطًا أكثر كفاءة بشكل ملحوظ. إذ تخزن HEIF معلومات أكثر وتنتج صورًا متحركة بجودة أعلى بحجم أصغر بكثير من حجم صيغة GIF المكافئة. [ 74 ]

الاستخدامات

في أبريل 2014، أضاف موقع 4chan دعمًا لمقاطع فيديو WebM الصامتة التي يقل حجمها عن 3 ميجابايت ومدتها عن دقيقتين، [ 76 ] [ 77 ] وفي أكتوبر 2014، بدأ موقع Imgur بتحويل أي ملفات GIF يتم تحميلها إلى الموقع إلى فيديو H.264، ومنح رابط مشغل HTML مظهر ملف حقيقي بامتداد .gifv. [ 78 ] [ 79 ]

في يناير 2016، بدأ تطبيق Telegram في إعادة ترميز جميع صور GIF إلى مقاطع فيديو MPEG-4 التي "تتطلب مساحة تخزين أقل بنسبة تصل إلى 95٪ للحصول على نفس جودة الصورة". [ 80 ]

انظر أيضاً

مراجع

  1. 1 2 3 "تنسيق تبادل الرسومات، الإصدار 87a" . اتحاد شبكة الويب العالمية . 15 يونيو 1987. مؤرشف من الأصل في 22 ديسمبر 2018. تم الاطلاع عليه في 13 أكتوبر 2012 .
  2. 1 2 3 "تنسيق تبادل الرسومات، الإصدار 89a" . اتحاد شبكة الويب العالمية . 31 يوليو 1990. مؤرشف من الأصل في 22 ديسمبر 2018. تم الاطلاع عليه في 6 مارس 2009 .
  3. تيفاني، كايتلين (7 أكتوبر 2022). "صورة GIF تحتضر" . مجلة ذا أتلانتيك . تم الاطلاع عليه بتاريخ 21 أكتوبر 2023 .
  4. "الفن عبر الإنترنت" . تطبيقات أبل من كومبيوت!. ديسمبر 1987. ص 10. تم الاطلاع عليه في 14 سبتمبر 2016 . 
  5. هولدنر الثالث، أنتوني (2008). أجاكس: الدليل الشامل: تطبيقات تفاعلية للويب . دار نشر أورايلي ميديا. رقم ISBN 978-0596528386.
  6. ^ فورت ، بوركو (2008). موسوعة الوسائط المتعددة . سبرينغر. رقم ISBN 978-0387747248.
  7. ماكهيو، مولي (29 مايو 2015). "أخيرًا، يمكنك حقًا نشر صور GIF على فيسبوك" . مجلة وايرد . مؤرشف من الأصل في 30 مايو 2015. تم الاطلاع عليه في 29 مايو 2015 .
  8. بيريز، سارة (29 مايو 2015). "فيسبوك يؤكد دعمه الرسمي لصور GIF" . تيك كرانش . مؤرشف من الأصل في 30 مايو 2015. تم الاطلاع عليه في 29 مايو 2015 .
  9. "تقديم ملصقات GIF" . إنستغرام . ٢٣ يناير ٢٠١٨. مؤرشف من الأصل في ١٢ ديسمبر ٢٠١٩. تم الاطلاع عليه في ١٩ سبتمبر ٢٠١٩ .
  10. غوشال، أبهيمانيو (28 أكتوبر 2016). "استمتع بـ 1.6 مليون صورة GIF رائعة من حقبة جيو سيتيز" . TNW | Shareables . تم الاطلاع عليه في 4 نوفمبر 2024 .
  11. "GifCities" . gifcities.org . تم الاطلاع عليه بتاريخ 4 نوفمبر 2024 .
  12. "كلمة العام 2012 من قواميس أكسفورد الأمريكية" . مدونة OxfordWords . قواميس أكسفورد الأمريكية. 13 نوفمبر 2012. مؤرشف من الأصل في 3 أغسطس 2014. تم الاطلاع عليه في 1 مايو 2013 .
  13. فلود، أليسون (27 أبريل 2013). " كلمة GIF هي كلمة العام في أمريكا؟ هذا ما أسميه فوضى عارمة" . مدونة الكتب. صحيفة الغارديان . لندن. مؤرشف من الأصل في 1 ديسمبر 2016. تم الاطلاع عليه في 1 مايو 2013 .
  14. أولسن، ستيف. "صفحة نطق صور GIF" . مؤرشفة من الأصل في 25 فبراير 2009. تم الاطلاع عليها في 6 مارس 2009 .
  15. 1 2 3 "يقول مخترع GIF تجاهل القواميس وقل 'جيف'"" بي بي سي نيوز . 22 مايو 2013. مؤرشف من الأصل في 27 يونيو 2018. تم الاطلاع عليه في 22 مايو 2013. "
  16. باك، ستيفاني (21 أكتوبر 2014). "70% من الناس حول العالم ينطقون كلمة GIF بحرف g قوي " . ماشابل . مؤرشف من الأصل في 23 ديسمبر 2021. تم الاطلاع عليه في 24 ديسمبر 2021 .
  17. فان دير مولين، مارتن (22 مايو 2019). "أوباما، غواصة أم هدية؟: السلطة والجدل في النقاش الإلكتروني حول نطق كلمة GIF " . مجلة English Today . 36 (1): 45-50 . مؤرشف من الأصل في 24 مايو 2022. تم الاطلاع عليه في 22 مايو 2022 .
  18. "GIF" . قاموس اختصارات التراث الأمريكي، الطبعة الثالثة . شركة هوتون ميفلين. 2005. مؤرشف من الأصل في 3 سبتمبر 2011. تم الاسترجاع في 15 أبريل 2007 .
  19. "GIF" . قاموس كامبريدج للغة الإنجليزية الأمريكية . مطبعة جامعة كامبريدج. مؤرشف من الأصل في 27 فبراير 2014. تم الاطلاع عليه في 19 فبراير 2014 .
  20. "Gif - تعريف من قاموس ميريام-ويبستر" . قاموس ميريام-ويبستر . شركة ميريام-ويبستر. مؤرشف من الأصل بتاريخ 22 أكتوبر 2013. تم الاطلاع عليه بتاريخ 6 يونيو 2013 .
  21. "GIF" . قواميس أكسفورد على الإنترنت . مطبعة جامعة أكسفورد. مؤرشف من الأصل في 12 أكتوبر 2014. تم الاطلاع عليه في 7 أكتوبر 2014 .
  22. "gif اسم - تعريف، صور، نطق، وملاحظات استخدام | قاموس أكسفورد المتقدم للمتعلمين" . قواميس أكسفورد للمتعلمين . مؤرشف من الأصل في 24 نوفمبر 2020. تم الاطلاع عليه في 6 فبراير 2021 .
  23. "GIF | تعريف GIF من قاموس أكسفورد" . ليكسيكو . مؤرشف من الأصل في 13 فبراير 2021. تم الاطلاع عليه في 6 فبراير 2021 .
  24. ستيفنسون، أنجوس، محرر. (2010). قاموس أكسفورد الإنجليزي ( الطبعة الثالثة). مطبعة جامعة أكسفورد. ISBN  9780199571123. OCLC 729551189 . 
  25. قاموس أكسفورد الأمريكي الجديد ( الطبعة الثانية). مطبعة جامعة أكسفورد. 2005. ص 711.  
  26. قاموس أكسفورد الأمريكي الجديد ( الطبعة الثالثة). 2012. (جزء من القواميس المدمجة في نظام ماكنتوش).
  27. أولياري، إيمي (21 مايو 2013). "تكريم لمبتكر صورة GIF" . صحيفة نيويورك تايمز . مؤرشف من الأصل في 22 مايو 2013. تم الاطلاع عليه في 22 مايو 2013 .
  28. 1 2 روثبرغ، دانيال (4 ديسمبر 2013). ""برنامج Jeopardy يدخل في معركة نطق كلمة GIF" . صحيفة لوس أنجلوس تايمز . مؤرشف من الأصل في 6 ديسمبر 2013. تم الاطلاع عليه في 4 ديسمبر 2013 .
  29. أولياري، إيمي (23 مايو 2013). "اندلاع جدل حول نطق كلمة 'GIF'" . صحيفة نيويورك تايمز . مؤرشف من الأصل في 16 ديسمبر 2013. تم الاطلاع عليه في 5 ديسمبر 2013 .
  30. فالينسكي، جوردان (25 فبراير 2020). "جيف تحسم الجدل الكبير بصورة متحركة لمرطبان زبدة الفول السوداني" . سي إن إن . مؤرشف من الأصل في 25 فبراير 2020. تم الاطلاع عليه في 25 فبراير 2020 .
  31. مارور، د. ر.؛ بهاسكار، ف. (مارس 2012). "المؤتمر الدولي للأجهزة والدوائر والأنظمة (ICDCS) لعام 2012" . الأجهزة والدوائر والأنظمة (ICDCS) . المؤتمر الدولي للأجهزة والدوائر والأنظمة (ICDCS) . جامعة كارونيا؛ كويمباتور، الهند: IEEE. الصفحات 297-301 . doi : 10.1109/ICDCSyst.2012.6188724 . ISBN  9781457715457أُرشف من الأصل في 2 يوليو 2017. تم الاطلاع عليه في 11 مارس 2015 .
  32. ^ س. تشين؛ د.ايفرسون؛ أو كامبيساتو؛ ب. تراني (2011). برو أندرويد فلاش (PDF) . نيويورك: أبريس. ص. 350. ردمك  9781430232315تمت أرشفة الملف (PDF) من النسخة الأصلية في 2 أبريل 2015. تم الاطلاع عليه في 11 مارس 2015 .
  33. بخشي، سعيدة؛ شما، ديفيد أ.؛ كينيدي، ليندون؛ سونغ، ييل؛ دي خوان، بالوما؛ كاي، جوزيف "جوفيش" (7 مايو 2016). "سريع، رخيص، وجيد: لماذا تجذبنا صور GIF المتحركة" . وقائع مؤتمر CHI لعام 2016 حول العوامل البشرية في أنظمة الحوسبة . الصفحات 575-586 . doi : 10.1145/2858036.2858532 . ISBN  9781450333627. S2CID 7417853 . تم الاسترجاع في 17 أغسطس 2022 . 
  34. هايفيلد، تيم؛ ليفر، تاما (2016). "علم إنستغرام والأساليب الرقمية: دراسة وسائل التواصل الاجتماعي المرئية، من صور السيلفي والصور المتحركة إلى الميمات والرموز التعبيرية" . بحث وممارسة الاتصال . 2 (1): 47-62 . doi : 10.1080/22041451.2016.1155332 . hdl : 20.500.11937/36939 . S2CID 148538216. تاريخ الاسترجاع: 17 أغسطس 2022 . 
  35. 1 2 3 أندرياس كلاينرت (2007). "امتدادات GIF 24 بت (ألوان حقيقية)" . مؤرشف من الأصل في 16 مارس 2012. تم الاطلاع عليه في 23 مارس 2012 .
  36. 1 2 فيليب هوارد. "مثال على صورة GIF بالألوان الحقيقية" . مؤرشف من الأصل في 22 فبراير 2015. تم الاطلاع عليه في 23 مارس 2012 .
  37. "دراسة توافق المتصفح مع الحد الأدنى لتأخير الإطارات في صور GIF المتحركة - جيريميا جونسون" . مؤرشف من الأصل بتاريخ 10 أكتوبر 2014. تم الاطلاع عليه بتاريخ 26 مايو 2015 .
  38. "إنها مختلفة! كيفية مطابقة معدل حركة ملفات GIF عبر المتصفحات " . مدونة المطورين . ١٤ فبراير ٢٠١٢. مؤرشف من الأصل في ١ فبراير ٢٠١٧. تم الاطلاع عليه في ١٥ يونيو ٢٠١٧ .
  39. رويال فريزر. "كل شيء عن GIF89a" . مؤرشف من الأصل في 18 أبريل 1999. تم الاطلاع عليه في 7 يناير 2013 .
  40. سكوت والتر (1996). أسلحة سرية في برمجة الويب . دار نشر كيو . رقم ISBN 0-7897-0947-3.
  41. "مواصفات XMP الجزء 3: التخزين في الملفات" (ملف PDF) . أدوبي. 2016. الصفحات 11-12 . مؤرشف (ملف PDF) من الأصل بتاريخ 25 فبراير 2018. تم الاطلاع عليه بتاريخ 16 أغسطس 2018 . 
  42. 1 2 3 4 5 6 7 غريغ رولوفس. "تاريخ تنسيق رسومات الشبكة المحمولة (PNG)" . مؤرشف من الأصل في 7 مارس 2012. تم الاطلاع عليه في 23 مارس 2012 .
  43. ١ ٢ ٣ ستيوارت كاي. "يوم حزين... براءة اختراع صور GIF تنتهي بعد ٢٠ عامًا" . مؤرشف من الأصل في ١٠ فبراير ٢٠١٢. تم الاطلاع عليه في ٢٣ مارس ٢٠١٢ .
  44. US 4558302 ، ويلش، تيري أ. ، نُشر في 10 ديسمبر 1985، مُخصص لشركة سبيري. 
  45. ↑ براءة اختراع يابانية رقم S5719857A ، كاناتسو، جيون، "جهاز تخزين ضغط البيانات"، نُشرت في 2 فبراير 1982، مُسجلة باسم شركة NEC 
  46. ↑ براءة اختراع يابانية رقم S57101937A ، كاناتسو، جيون، "جهاز تخزين بيانات"، نُشرت في 24-20-1986، مُسجلة باسم شركة NEC 
  47. ^ براءة الاختراع رقم 3118676 ، إيكهارت، هاينز كارل، “Verfahren zur Kompression redundanter Folgen serieller Datenelemente [طريقة لضغط التسلسلات الزائدة عن الحاجة لعناصر البيانات التسلسلية]”، نُشرت في 2 ديسمبر 1982 
  48. براءة اختراع أمريكية رقم 4,558,302
  49. 1 2 "جدل صور GIF: منظور مطور برامج" . 27 يناير 1995. مؤرشف من الأصل في 23 أغسطس 2016. تم الاطلاع عليه في 26 مايو 2015 .
  50. 1 2 "شركة يونيسيس توضح سياستها المتعلقة باستخدام براءات الاختراع في عروض الخدمات عبر الإنترنت" . مؤرشف من الأصل في 7 فبراير 2007.– مؤرشف بواسطة رابطة حرية البرمجة
  51. "Libungif" . مؤرشف من الأصل في 13 أبريل 2015. تم الاطلاع عليه في 26 مايو 2015 .
  52. كارغيل، توم (1 أكتوبر 2001). "استبدال القاموس بالجذر التربيعي" . مجلة دكتور دوبز . مؤرشف من الأصل في 28 يونيو 2017. تم الاطلاع عليه في 20 يناير 2017 .
  53. "معلومات عن برامج وبراءات اختراع LZW" . مؤرشف من الأصل في 8 يونيو 2009. تم الاطلاع عليه في 31 يناير 2007 .– توضيح بتاريخ 2 سبتمبر 1999
  54. شركة يونيسيس لا تقاضي (معظم) مشرفي المواقع الإلكترونية لاستخدامهم صور GIF (مؤرشف في 10 مايو 2017 على موقع Wayback Machine) - تحقيق موقع Slashdot في الجدل الدائر
  55. "يوم حرق جميع صور GIF" . مؤرشف من الأصل في 13 أكتوبر 1999.
  56. تم أرشفة جميع صور GIF في 3 فبراير 2007 على موقع Wayback Machine – وهو مشروع تابع لرابطة حرية البرمجة (أحدث إصدار)
  57. 1 2 3 "معلومات الترخيص الخاصة بتقنيات GIF وغيرها من التقنيات القائمة على LZW" . مؤرشف من الأصل في 2 يونيو 2009. تم الاطلاع عليه في 26 أبريل 2005 .
  58. «لماذا لا توجد ملفات GIF على صفحات ويب جنو؟» مؤسسة البرمجيات الحرة. مؤرشف من الأصل في 19 مايو 2012. تم الاطلاع عليه في 19 مايو 2012 .
  59. "مقارنة ضغط الصور بصيغة PNG مقابل GIF" . 31 مارس 2007. مؤرشف من الأصل في 15 يوليو 2009. تم الاطلاع عليه في 8 يونيو 2009 .
  60. "مرشح AlphaImageLoader" . مايكروسوفت. 4 سبتمبر 2012. مؤرشف من الأصل في 3 أكتوبر 2014. تم الاطلاع عليه في 26 مايو 2015 .
  61. "ما الجديد في إنترنت إكسبلورر 7" . MSDN . مؤرشف من الأصل في 1 مارس 2009. تم الاطلاع عليه في 6 مارس 2009 .
  62. "صيغة ملف صورة PNG" . مؤرشف من الأصل بتاريخ 14 يونيو 2009. تم الاطلاع عليه بتاريخ 8 يونيو 2009 .
  63. "هل يمكنني استخدام... جداول الدعم لـ HTML5 وCSS3 وما إلى ذلك؟" . caniuse.com . مؤرشف من الأصل في 19 فبراير 2018. تم الاطلاع عليه في 10 أبريل 2020 .
  64. "فشل التصويت: APNG 20070405a" . قائمة بريد SourceForge . 20 أبريل 2007. مؤرشف من الأصل في 13 فبراير 2013. تم الاطلاع عليه في 14 يوليو 2013 .
  65. "مناقشة حول صيغة PNG "متحركة" بسيطة" . مؤرشف من الأصل بتاريخ 26 فبراير 2009. تم الاطلاع عليه بتاريخ 12 يوليو 2011 .
  66. "مواصفات APNG" . مؤرشفة من الأصل في 5 يوليو 2010. تم الاطلاع عليها في 26 مايو 2015 .
  67. "مختبرات موزيلا » أرشيف المدونة » رسوم متحركة أفضل في فايرفوكس 3" . 13 أغسطس 2007. مؤرشف من الأصل في 7 مارس 2016. تم الاطلاع عليه في 3 فبراير 2016 .  
  68. "195280 - إزالة دعم MNG/JNG" . مؤرشف من الأصل في 25 فبراير 2021. تم الاطلاع عليه في 26 مايو 2015 .
  69. "18574 – (mng) استعادة دعم تنسيق الرسوم المتحركة MNG وتنسيق الصور JNG" . مؤرشف من الأصل في 17 مارس 2021. تم الاطلاع عليه في 26 مايو 2015 .
  70. "مدونة كروميوم: كروم 32 بيتا: صور WebP متحركة وإدخال أسرع للمس في كروم لنظام أندرويد" . Blog.chromium.org. 21 نوفمبر 2013. مؤرشف من الأصل في 17 يوليو 2018. تم الاطلاع عليه في 1 فبراير 2014 .
  71. كالو، خوان. "الرسوم المتحركة بصيغة SVG - دليل" . توبتال . تم الاطلاع عليه بتاريخ 15 مارس 2024 .
  72. "تقديم GIFV - مدونة Imgur" . imgur.com. 9 أكتوبر 2014. مؤرشف من الأصل في 14 ديسمبر 2014. تم الاطلاع عليه في 14 ديسمبر 2014 .
  73. تومسون، جافين؛ شاه، أثار (2017). "مقدمة إلى HEIF وHEVC" (ملف PDF) . شركة آبل. مؤرشف (ملف PDF) من الأصل في 19 يناير 2020. تم الاطلاع عليه في 5 أغسطس 2019 .
  74. "مقارنة HEIF - تنسيق ملف الصور عالي الكفاءة" . نوكيا تكنولوجيز . مؤرشف من الأصل في 25 يوليو 2019. تم الاطلاع عليه في 5 أغسطس 2019 .
  75. "#3271 (السماح باستخدام تنسيقات بكسل إضافية مع libvpx-vp9) – FFmpeg" . trac.ffmpeg.org . مؤرشف من الأصل في 16 يونيو 2020. تم الاطلاع عليه في 10 أبريل 2020 .
  76. ديوي، كايتلين. "تعرّف على التقنية التي قد تجعل صور GIF قديمة الطراز" . صحيفة واشنطن بوست . مؤرشف من الأصل في 11 مايو 2015. تم الاطلاع عليه في 4 فبراير 2015 .
  77. "دعم WebM على 4chan" . مدونة 4chan . تم الاطلاع عليه بتاريخ 4 فبراير 2015 .{{cite web}}: CS1 maint: url-status ( link )
  78. "تقديم GIFV" . Imgur. 9 أغسطس 2014. مؤرشف من الأصل في 5 مايو 2020. تم الاطلاع عليه في 21 يوليو 2016 .
  79. آلان، باتريك (9 أكتوبر 2014). "إمجور تُحسّن صور GIF لسرعات أعلى وجودة أفضل باستخدام GIFV" . لايف هاكر . مؤرشف من الأصل في 3 فبراير 2015. تم الاطلاع عليه في 4 فبراير 2015 .
  80. "ثورة الصور المتحركة GIF" . مدونة تيليجرام الرسمية . 4 يناير 2016. مؤرشفة من الأصل في 10 يناير 2016. تم الاطلاع عليها في 4 يناير 2016 .