PDFMove
ما الذي يتغير تقنياً عند التحويل من GIF إلى فيديو؟
دليل

ما الذي يتغير تقنياً عند التحويل من GIF إلى فيديو؟

7 دقيقة للقراءة

حين تحوّل ملف GIF إلى MP4 يصغر الملف عشرة أضعاف بينما تبقى الصورة كما هي تقريباً. كيف يكون ذلك ممكناً، وما الذي يتغير حقاً أثناء التحويل؟ نشرح في هذا المقال الفروق البنيوية بين الصيغتين وما يجري في كل خطوة من خطوات التحويل.

نموذجان مختلفان للحركة

الحركة في GIF إطارات مستقلة متعاقبة. ولكل إطار:

  • قد تكون له لوحة ألوانه الخاصة (256 مدخلاً بحد أقصى)
  • زمن تأخير خاص به (بوحدة 1/100 من الثانية)
  • قد يكون له موضعه وحجمه الخاصان (مستطيل جزئي لا إطار كامل)
  • طريقة تخلص خاصة به (ما سيحل به قبل الإطار التالي)

والحركة في الفيديو إطارات مصفوفة على شبكة زمنية ثابتة. ومعدل الإطارات ثابت عادةً (25 أو 30 أو 60 إطاراً/ث)، ويُعرض كل إطار المدة نفسها.

وهذا الاختلاف الجوهري في النموذج يولّد أول صعوبات التحويل.

التوقيت: من التأخير المتغير إلى معدل الإطارات الثابت

قد تكون تأخيرات إطارات ملف GIF كالتالي:

Frame 1: 10 (0.10 s)
Frame 2: 10 (0.10 s)
Frame 3: 25 (0.25 s)  ← pause
Frame 4: 10 (0.10 s)
Frame 5:  5 (0.05 s)  ← fast transition

أما الفيديو فيتوقع معدل إطارات ثابتاً. وخيارات المحوّل:

1. اختيار معدل إطارات مرتفع بما يكفي وتكرار الإطارات. ففي المثال أعلاه، إذا اختير 20 إطاراً/ث (أي 0.05 ثانية للإطار)، كُرّر الإطار ذو الـ 0.25 ثانية خمس مرات. فيُصان التوقيت تماماً لكن يزيد عدد الإطارات — ولا يسبب ذلك مشكلة في الحجم لأن مرمّزات الفيديو تضغط الإطارات المتكررة ضغطاً فعالاً جداً.

2. اختيار معدل إطارات وسطي والتقريب. وهو أبسط لكن تنشأ فروق في التوقيت.

ويستخدم معظم المحوّلات الطريقة الأولى. ومع ذلك، إن كانت تأخيرات ملفك غير منتظمة جداً فقد يُحسّ فارق إيقاع طفيف.

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

دمج الإطارات الجزئية

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

ولا يوجد مثل هذا المفهوم في الفيديو؛ فكل إطار بالحجم الكامل.

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

| الطريقة | معناها | |---|---| | غير محددة | يبقى الإطار كما هو | | عدم التخلص (Do not dispose) | يبقى الإطار ويُرسم التالي فوقه | | العودة إلى الخلفية | تُنظَّف منطقة الإطار بلون الخلفية | | العودة إلى السابق | تعود منطقة الإطار إلى حالتها السابقة |

والتفسير الخاطئ يظهر في التحويل على شكل آثار «شبحية» أو بقايا متراكمة. وهذه مشكلة نادرة في المحوّلات المكتوبة بإتقان، لكنها قد تعترضك في ملفات GIF قديمة جداً أو غير قياسية.

اللون: من اللوحة إلى الألوان الكاملة (لكن بلا رجعة)

كل بكسل في GIF هو فهرس في لوحة ألوان. وتُحلّ هذه الفهارس أثناء التحويل إلى قيم RGB حقيقية.

وتدعم صيغة الفيديو الألوان الكاملة (16.7 مليون)، فلا حدّ تقني هناك.

لكن المصدر مخفوض أصلاً إلى 256 لوناً. ولن تعود المعلومات اللونية الضائعة. فيخزّن الفيديو تلك الألوان الـ 256 بسعته اللونية الكاملة، وتبدو النتيجة بصرياً كما يبدو GIF.

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

الشفافية: خاصية ضائعة

يدعم GIF الشفافية الثنائية (binary): فالبكسل إما شفاف تماماً أو معتم تماماً. ولا قيمة وسطى، ولهذا تبدو حواف ملفات GIF الشفافة مسنّنة.

أما مرمّزات الفيديو الشائعة (الملفات القياسية لـ H.264 وVP9) فـلا تحمل قناة ألفا. إذ يُفترض أن كل بكسل معتم.

ويجب في التحويل ملء البكسلات الشفافة بلون — بالأسود أو الأبيض عادةً. والنتيجة أن المناطق التي كان يظهر خلفها المحتوى في GIF تصير لوناً مصمتاً في الفيديو.

فإن لزمت الشفافية فالفيديو ليس الهدف الصحيح. والبدائل:

  • WEBP المتحرك: ألفا بـ 8 بت، وضغط جيد.
  • APNG: ألفا بـ 8 بت، وملف أكبر لكن دعمه واسع.

وكلاهما أفضل من الشفافية الثنائية في GIF — فبـ 256 مستوى شفافية يوفران حواف ناعمة.

تحت-عيّنة الكروما

هذا أحد أكثر آثار التحويل تقنيةً وأظهرها في آن.

فالعين البشرية أشد حساسية لتغيرات السطوع (luma) منها لتغيرات اللون (chroma) بكثير. وتستفيد مرمّزات الفيديو من ذلك: فتخزّن معلومات السطوع بالدقة الكاملة، ومعلومات اللون بنصف الدقة.

ويُسمى هذا المخطط 4:2:0، وهو الوضع الافتراضي في ترميز الفيديو الشائع. إذ تُخفض معلومات اللون إلى النصف أفقياً ورأسياً — أي يُحفظ ربع بيانات اللون.

ولا يكاد ذلك يُرى في المحتوى الفوتوغرافي. لكنه قد يُلاحَظ في أنواع المحتوى الشائعة في ملفات GIF:

  • الحواف اللونية الحادة: نص أحمر على أرضية بيضاء، وضبابية خفيفة عند الحواف.
  • الخطوط الرفيعة: تنعم عناصر الواجهة الملونة.
  • النص الصغير: قد تنخفض مقروئيته.

وتدعم بعض المرمّزات ملف 4:4:4 (حيث تُحفظ معلومات اللون بالدقة الكاملة). وهذا يُحدث فرقاً واضحاً في تسجيلات الشاشة والحركات المحتوية على نص، لكن الملف يكبر ويضيق التوافق.

قيد العدد الزوجي

لأن تحت-عيّنة 4:2:0 تخزّن معلومات اللون في كتل 2×2 بكسل، فهي تقتضي أن يكون العرض والارتفاع عددين زوجيين.

ولا يوجد مثل هذا القيد في ملفات GIF؛ فتشيع أبعاد مثل 401×267.

ويحل المحوّل ذلك بطريقتين:

  • الاقتطاع: يُسقَط عمود/صف بكسل واحد (401 ← 400).
  • الحشو: يُضاف بكسل واحد (401 ← 402)، أسود عادةً.

وكلاهما لا يُلاحَظ بصرياً، لكن تغيّر الأبعاد يظهر في البيانات الوصفية.

كفاءة الضغط: المكسب الحقيقي

ولنصل الآن إلى سبب الفارق الصارخ في حجم الملف.

أدوات GIF:

  • ضغط LZW بلا فقد (يجد الأنماط المتكررة)
  • الإطار الجزئي (المنطقة المستطيلة المتغيرة)
  • البكسل الشفاف (تخطي البكسلات غير المتغيرة)

أدوات مرمّز الفيديو:

  • التنبؤ بالحركة (يجد أين انزاحت الكتلة)
  • التنبؤ داخل الإطار (التنبؤ من البكسلات المجاورة)
  • التنبؤ ثنائي الاتجاه (النظر إلى الإطارات السابقة واللاحقة)
  • التحويل الترددي والتكميم (إسقاط التفاصيل عديمة الأهمية بصرياً)
  • أحجام كتل متغيرة
  • ترميز الإنتروبيا

والفارق فئوي. فـ GIF يقول «هذه المنطقة تغيّرت وهذه بكسلاتها الجديدة»؛ ومرمّز الفيديو يقول «هذه الكتلة من الإطار السابق انزاحت 12 بكسلاً يميناً وأعتمت قليلاً».

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

والنتيجة: فارق حجم نمطي بمقدار 5–10 أضعاف للمحتوى نفسه.

ما يُفقد وما يُكسَب

| الموضوع | GIF | بعد التحويل إلى فيديو | |---|---|---| | حجم الملف | كبير | أصغر بـ 5–10 أضعاف | | تنوع الألوان | 256 (حد) | ألوان كاملة (لكن المصدر 256) | | الشفافية | ثنائية | لا توجد | | دعم البريد الإلكتروني | موجود | غير موجود | | التشغيل التلقائي | أصيل | يحتاج خاصية | | الحافة اللونية الحادة | كاملة | نعومة خفيفة (4:2:0) | | مرونة التوقيت | لكل إطار | معدل إطارات ثابت |

الخلاصة

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

الأسئلة الشائعة

لماذا تضيع شفافية GIF في الفيديو؟

لأن مرمّزات الفيديو الشائعة (H.264 وVP9 في ملفاتها القياسية) لا تحمل قناة ألفا — إذ يُفترض أن كل بكسل معتم. والبكسلات المعلّمة شفافة في GIF يجب ملؤها بلون في الفيديو، ويختار المحوّل عادةً الأسود أو الأبيض. فإن لزمت الشفافية فينبغي استخدام WEBP المتحرك أو APNG بدل الفيديو.

ما تحت-عيّنة الكروما، وكيف تؤثر في تحويل GIF؟

العين البشرية أشد حساسية لتغيرات السطوع منها لتغيرات اللون بكثير. وتستفيد مرمّزات الفيديو من ذلك فتخفض معلومات اللون إلى النصف أفقياً ورأسياً (4:2:0). وهذا يُحدث ضبابية خفيفة عند الحواف اللونية الحادة. وقد يُلاحَظ ذلك أحياناً في الرسوم والنصوص ذات الانتقالات اللونية الحادة الشائعة في ملفات GIF؛ ويحل المشكلة استخدام ملف 4:4:4 إن توفر إعداد يدعمه.

هل لكل إطار في GIF مدته الخاصة؟

نعم. ففي صيغة GIF يحمل كل إطار قيمة «التأخير» الخاصة به، وتُعبَّر عنها بوحدة 1/100 من الثانية. أي أن بعض الإطارات في حركة ما قد يبقى 0.1 ثانية وبعضها 0.5 ثانية. أما صيغ الفيديو فتتوقع معدل إطارات ثابتاً عادةً، ولذلك يلزم توحيد أثناء التحويل.

لماذا يصغر الملف إلى هذا الحد بعد التحويل؟

لأن مرمّزات الفيديو تستفيد من التكرار بين الإطارات استفادة أنجع بكثير. فأقصى ما يستطيع GIF قوله «هذه المنطقة المستطيلة تغيّرت»، بينما يستطيع H.264 قول «هذه الكتلة من الإطار السابق انزاحت 12 بكسلاً يميناً» — وهذا هو الفرق بين بضعة بايتات وآلاف البايتات. كما أن مرمّزات الفيديو تعمل مع فقد فتستطيع إسقاط التفاصيل عديمة الأهمية بصرياً.

جرّب ذلك الآن باستخدام GIF → Video.

جرّب GIF → Video