صيغة WebP
صيغة الصور الحديثة من Google
حاوية RIFF
لم تخترع Google حاوية جديدة لـ WebP، بل اختارت RIFF، وهي الصيغة نفسها التي تحمل صوت WAV وفيديو AVI منذ مطلع التسعينيات. فإن سبق أن حللت ملف WAV، فأنت تعرف أصلًا كيف تعمل WebP على مستوى الحاوية.
تستخدم الصيغة كتلًا متداخلة بمعرّفات من أربعة أحرف (تُسمى رموز FourCC). وهو تصميم بسيط ومتين صمد أمام اختبار الزمن.
بنية ملف WebP (حاوية RIFF)
ترويسة WebP
| Offset | Hex | ASCII | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0000 | 52494646241A00005745425056503858 | RIFF$...WEBPVP8X | |||||||||||||||
| 0010 | 0A00000010000000FF0000FF00000000 | .............. | |||||||||||||||
بنية كتلة RIFF
ملاحظة: تُحشى بيانات الكتلة ببايت صفري عند الحاجة كي يصبح طولها زوجيًا.
إزاحات مهمة
- • بداية الكتل الفرعية: 12 بايت (بعد RIFF + الحجم + WEBP)
- • ترويسة الكتلة: 8 بايتات (4 بايت FourCC + 4 بايت للحجم)
- • إزاحة حقل الحجم: 4+ من بداية الكتلة (little-endian)
كتل الصورة
WebP في الحقيقة ثلاث صيغ في واحدة: مع فقدان (VP8)، وبلا فقدان (VP8L)، وموسّعة (VP8X). ونوع الكتلة هو ما يخبرك بطريقة الضغط المستخدمة.
VP8:ضغط مع فقدان
تستخدم مرمّز الفيديو VP8 في الضغط. ونسبة الجودة إلى الحجم فيها قريبة من JPEG. وملفات WebP البسيطة لا تحتوي إلا على هذه الكتلة.
VP8L:ضغط بلا فقدان
ضغط بلا فقدان يعتمد التنبؤ وتحويل الألوان والترميز الإنتروبي. وينتج ملفات أصغر من PNG بنسبة 25 إلى 34% عادة.
VP8X:الصيغة الموسّعة
تشير إلى وجود خصائص اختيارية: الحركة أو قناة الشفافية أو ملف ICC أو EXIF أو XMP. وهي إلزامية عند وجود أي من هذه الخصائص.
ALPH:قناة الشفافية
بيانات قناة شفافية منفصلة. ويمكن ضغطها بلا فقدان أو مع فقدان، باستقلال عن بيانات الألوان.
ANIM/ANMF:الحركة
تحمل ANIM معاملات الحركة العامة، بينما تحمل كتل ANMF إطارات الحركة المفردة مع معلومات توقيتها.
كتل البيانات الوصفية
على خلاف ملفات WebP البسيطة التي لا تحمل سوى بيانات الصورة، تستطيع ملفات WebP الموسّعة أن تحمل بيانات وصفية. والخبر الجيد أن هذه الكتل منفصلة تمامًا عن بيانات الصورة، فيسهل تمييزها وإزالتها.
EXIF:بيانات EXIF الوصفية
تحتوي على بيانات EXIF بالصيغة نفسها المستخدمة في JPEG (بنية TIFF خام). وتشمل معلومات الكاميرا وإحداثيات GPS والطوابع الزمنية والصور المصغّرة. وهي أكبر مصدر قلق على الخصوصية.
XMP:بيانات XMP الوصفية
بيانات وصفية قائمة على XML. وقد تكرر بيانات EXIF وتضيف إليها سجل التحرير ومعلومات البرنامج وحقولًا مخصصة.
ICCP:ملف ألوان ICC
ملف ألوان ICC لإدارة الألوان. ويبقي عليه PicScrub افتراضيًا حفاظًا على دقة الألوان.
رايات VP8X
تعمل كتلة VP8X عمل جدول المحتويات، إذ تخبر أدوات فك الترميز بما تتوقع وجوده في الملف. ولذلك حين نزيل كتل البيانات الوصفية، علينا تحديث هذه الرايات أيضًا، وإلا بحثت أداة فك الترميز عن بيانات لم تعد موجودة.
بتات الرايات
لماذا تهم هذه الرايات
حين يزيل PicScrub كتل EXIF/XMP، عليه أن يحدّث رايات VP8X كي تعكس غيابها. وإلا فقد تتوقع أدوات فك الترميز بيانات لم تعد موجودة.
كيف يعالج PicScrub ملفات WebP
التحقق من ترويسة RIFF
البحث عن توقيع RIFF....WEBP
تحليل الكتل
المرور على كل كتل RIFF وقراءة رمز FourCC والحجم
إزالة كتل البيانات الوصفية
تخطي كتلتَي EXIF وXMP عند كتابة الناتج
تحديث رايات VP8X
تصفير بتات رايتَي EXIF/XMP في كتلة VP8X
إعادة حساب حجم الملف
تحديث ترويسة RIFF بالحجم الكلي الجديد للملف
ما يبقى
- • بيانات صورة VP8/VP8L
- • قناة الشفافية ALPH
- • بيانات الحركة ANIM/ANMF
- • ملف الألوان ICCP (اختياري)
ما يُزال
- • بيانات EXIF الوصفية
- • بيانات XMP الوصفية
WebP البسيطة مقابل الموسّعة
إن خلا ملف WebP من كتلة VP8X، فهو ملف "بسيط": مجرد غلاف RIFF حول كتلة VP8 أو VP8L واحدة. ولا يمكن أن تحمل ملفات WebP البسيطة أي بيانات وصفية، فهي مثالية إن كنت حريصًا على خصوصيتك.
WebP البسيطة
لا تحتوي إلا على كتلة VP8 أو VP8L. ولا مجال فيها لأي بيانات وصفية.
WebP الموسّعة
فيها كتلة VP8X تتيح البيانات الوصفية والشفافية والحركة.