aspose.info
AR

تنسيق ملف FLIF

تاريخ التحديث

ما هو ملف FLIF؟

FLIF (Free Lossless Image Format) هو تنسيق صورة غير ضياع يستخدم امتداد .flif لملفاته. تدعي FLIF أنها تتفوق في الأداء على PNG ، و [WebP] بدون خسارة (/ar/image/webp/) ، و BPG بدون فقدان ، و JPEG 2000 بدون فقدان من حيث نسبة الضغط. يستخدم FLIF التداخل التدريجي ، والذي من خلاله يمكن استخدام أي تنزيل جزئي للصورة كتشفير ضياع للصورة بأكملها.

نبذة تاريخية

تم الإعلان عن FLIF في سبتمبر 2015 ، وتم إصدار النسخة ألفا في أكتوبر 2015. في سبتمبر 2016 ، تم إصدار أول نسخة مستقرة من FLIF.

تصميم FLIF

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

  • يدعم الضغط بدون فقدان البيانات
  • يدعم الضغط مع الفقد مع المعالجة المسبقة لجهاز التشفير
  • يدعم تدرج الرمادي و RGB و RGBA
  • يدعم عمق الألوان من 1 إلى 16 بت لكل قناة
  • يدعم الملفات المتداخلة وغير المتشابكة
  • يدعم فك التشفير التدريجي للملفات التي تم تنزيلها جزئيًا
  • يدعم الرسوم المتحركة
  • يدعم ملفات تعريف ألوان ICC المضمنة وبيانات تعريف Exif و XMP
  • لديه دعم محدود لضغط ملفات خام الكاميرا (RGGB)

تنسيق ملف FLIF

يتكون ملف FLIF من الأجزاء الأربعة التالية:

رأس رئيسي

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

النوعالقيمةالوصف
4 بايت“FLIF”ماجيك
4 بت3 = ني لا يزال ؛ 4 = ما زلت ؛ 5 = ني أنيم ؛ 6 = أنا أنيمتداخل ، رسوم متحركة
4 بت1 = تدرج الرمادي ؛ 3 = RGB ؛ 4 = RGBAعدد القنوات (nb_channels)
1 بايت‘0’، ‘1’، ‘2’ (‘0’ = مخصص)بايت لكل قناة (Bpc)
varintwidth-1Width
varintheight-1الارتفاع
varintnb_frames-2 (فقط في حالة الرسوم المتحركة)عدد الإطارات (nb_frames)

قطع البيانات الوصفية

يحتوي هذا الجزء على بيانات وصفية غير بكسلية مثل Exif / XMP ، وملف تعريف ألوان ICC ، وما إلى ذلك ، والتي تم ترميزها باستخدام ضغط DEFLATE. يتم تعريف هذه الأجزاء بشكل مشابه لمقاطع PNG مع الاختلاف هو أن حجم ظرف الظرف مشفر بعدد متغير من البايتات. يمكن أن تتكون أسماء المقاطع من 4 أحرف (4 بايت) أو قيمة أقل من 32 تشير إلى مقطع غير اختياري.

فيما يلي مثال على خراطيش اختيارية:

اسم القطعةالوصفالمحتوى (بعد DEFLATE-decompression)
iCCPملف تعريف ألوان ICCبيانات ملف تعريف ألوان ICC الخام
eXifبيانات تعريف Exifرأس “Exif \ 0 \ 0” متبوعًا برأس TIFF وبيانات EXIF
eXmpبيانات تعريف XMPXMP مضمنة في xpacket للقراءة فقط بدون حشوة

اصطلاح التسمية

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

العنوان الثاني

يحتوي هذا على المعلومات المتعلقة بالتشفير الفعلي لوحدات البكسل.

النوعالوصفالشرطالقيمة الافتراضية
1 بايتNUL بايت (0x00) ، اسم مقطع لدفق بت FLIF16
uni_int (1،16)بت لكل بكسل من القنواتBpc == ‘0’: كرر (nb_channels)8 إذا كانت Bpc == ‘1’ ، 16 إذا Bpc == ‘2’
uni_int (0،1)العلم: alpha_zeronb_channels> 30
uni_int (0،100)عدد الحلقاتnb_frames> 1
uni_int (0،60_000)تأخير الإطار بالمللي ثانيةnb_frames> 1: تكرار (nb_frames)
uni_int (0،1)العلم: has_custom_cutoff_and_alpha
uni_int (1،128)قطعhas_custom_cutoff_and_alpha2
uni_int (2،128)ألفا المقسومhas_custom_cutoff_and_alpha19
uni_int (0،1)العلم: has_custom_bitchancehas_custom_cutoff_and_alpha0
؟Bitchancehas_custom_bitchance
متغيرالتحويلات (انظر أدناه)
uni_int (1) = 0بت المؤشر: تم باستخدام عمليات التحويل
uni_int (0،2)متنبئ بكسل غير مرئييتضمن نطاق alpha_zero && المتداخلة && alpha صفر

** القنوات **

رقم القناةالوصف
0أحمر أو رمادي
1أخضر
2أزرق
3ألفا

** التحولات **

النوعالوصف
uni_int (1) = 1بت المؤشر: لم ينته بعد
uni_int (0،13)معرف التحويل
متغيربيانات التحويل (تعتمد على التحويل)

يستخدم التحويل لتعديل بيانات البكسل لضغط أفضل ولتتبع قيم البكسل التي تحدث بالفعل.

بيانات البكسل

يحتوي هذا الجزء على بيانات البكسل الفعلية المشفرة باستخدام ترميز الكون. يمكن تشفير وحدات البكسل باستخدام تشفير متشابك أو غير متشابك.

الطريقة المتداخلة

في هذه الطريقة ، يتم تحديد مستويات التكبير. يتم استخدام Zoomlevel 0 للصورة الكاملة ، ويتم استخدام مستوى التكبير / التصغير 1 لجميع الصفوف ذات الأرقام الزوجية ، ويتم استخدام مستوى التكبير / التصغير 2 لجميع الأعمدة ذات الأرقام الزوجية من مستوى التكبير / التصغير 1. وبعبارة أخرى ، كل مستوى تكبير / تصغير 2k هو نسخة مصغرة من الصورة بمقياس 1: 2 ^ k. يتم ترميز Zoomlevels من الأعلى إلى الأدنى.

طريقة غير متشابكة

في هذه الطريقة ، يبدأ تشفير أشجار MANIAC فورًا متبوعًا بتشفير وحدات البكسل.

مراجع

انظر أيضًا