الصفحة الرئيسية > مجلة تصميم > العدد الرابع - آب ١٩٩٨ > ضغط الصور ١

ضغط الصور ١

بقلم جورج قندلفت

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

اساليب الضغط

هناك عملياً نوعان من اساليب ضغط الصور: الضغط مع الفقدان (اي فقدان معلومات من الصورة) والضغط دون فقدان.

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

في المقابل، لا يتجاهل الضغط دون فقدان اي معلومات او تفاصيل في الصورة الاصلية.

تنسيقات ملفات الصور

اكثر تنسيقات الصور المنتشرة بين برامج تصفح نسيج العنكبوت هي تنسيقي GIF وJPEG وتبعهما تنسيق JPEG المتدرج (p-JPEG). وتظهر حالياً تنسيقات اخرى تنافس الاولى في جودتها نذكر منها PNG وFIF وتلك التي تعتمد على الضغط المويجي (wavelet - انظر الحلقة القادمة). وبما ان PNG هو مقياس مفتوح، فمن المتوقع ان يحل مكان GIF. في المقابل لا يواجه JPEG اي منافسة من اي مقياس مفتوح حالياً على اننا نشهد الكثير من النقاشات اليوم حول تنسيقات جديدة خاصة. فالاساليب المحسنة للضغط التي تستخدم احد انواع المويجة تفتح افاق علمية كبيرة على انها لن تصبح جدية الا اذا خضعت للمقاييس المفتوحة.

تنسيق GIF

يأتي الاختصار من Graphic Interchange Format (راجع افتتاحية العدد ٣ من «تصميم» حول مصدر الاختصار) واعتمدته شركة كومبيوسيرف في عام ١٩٨٧ لحفظ صور نقطية عدة في ملف واحد لتسهيل تنقلها عبر شبكات الكمبيوتر. ويعتبر GIF اقدم تنسيق صور ورسوم على نسيج العنكبوت ويدعمه معظم برامج التصفح اذا لم يكن كلها (عدا برنامج لينكس بالطبع لأنه يعتمد البيئة النصوصية). ويدعم هذا التنسيق حجم ٨ بت للنقطة الواحدة مما يعني ان الحد الاقصى لالوان الصور المحفوظة به يبلغ ٢٥٦ (٢ اس ٨ = ٢٥٦) كما يدعم التشابك والخلفية الشفافة ويستخدم اسلوب ضغط ينحدر من خوارزمي LZW (Lempel-Ziv Welch الذي يستخدمه تنسيق TIFF المضغوط).

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

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

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

من جهة اخرى هناك نوعان من ملفات GIF هما:
– GIF87a الذي يدعم التشابك وتخزين ملفات متعددة. وقد تم تعريفه بالسنة التي ظهر فيها ويعتبر مقياس ملفات GIF حالياً.
– GIF89a الذي يحسن النوع السابق بإضافة دعم للخلفية الشفافة والتعليقات وحركة النصوص والرسوم.

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

مقارنة بين GIF وPNG

ج١: ١٥٠ بايت

ج٢: ٣٣٤ بايت

ج٣: ٥١٤ بايت

ج٤: ١٦٧ بايت

ج٥: ١٦٨ بايت

ج٦: ٢٥٤ بايت

ب١: ١١٩ بايت

ب٢: ١٢٢ بايت

ب٣: ١٤٦ بايت

ب٤: ١١٧ بايت

ب٥: ١١٧ بايت

ب٦: ٢٩٤ بايت

تنسيق PNG

يأتي الاختصار من Portable Network Graphic وتم تصميمه ليتفوق على GIF ويحل مكانه. وتم وضع التنسيق لتخزين الصور النقطية الوحيدة دون فقدان ونقلها عبر شبكات الكمبيوتر ويوفر كل ميزات تنسيق GIF الا واحدة (تخزين الصور المتعددة) ويتفوق على GIF في بعضها (مثل التشابك والضغط) ويقدم ميزات اضافية (مثل تخزين معلومات غاما وطبقات الفا والعثور على الاخطاء). ولا يدعم هذا التنسيق الا آخر اصدارات من برامج التصفح على انه يمكن اضافة ملحقات تدعمه في الاصدارات الاقدم.

ويستخدم PNG اسلوب التخفيض (deflate) في الضغط وهو الاسلوب الذي يستخدمه برنامج pkzip الشهير وهو نسخة محسنة من خوارزمي LZ (Lempel-Ziv). ويشبه في عمله خوارزمي LZW ويبحث عن الخطوط الافقية المتكررة. الا انه، للحصول على نسبة ضغط افضل، يقوم بترشيح بيانات الصورة بواسطة دالات تنبؤ قبل البدء بالضغط. ويستخدم التنسيق اربع دالات تنبؤ تتخصص اثنتان منها في الخطوط العمودية مما يجعله متفوقاً على تنسيق GIF الذي لا يتعاطى الا مع الخطوط الافقية.

ويدعم PNG كحد اقصى ١٦ بت (درجات الرمادي) و٤٨ بت (الوان حقيقية) في النقطة و١٦ بت من بيانات الفا. كما يدعم نوعين من الشفافية هما حجب اللون الواحد مثل GIF89a وطبقة الفا. ويتيح الدعم الكامل لطبقة الفا ٦٤ كيلوبايت من مستويات الشفافية (٢ اس ١٦ = ٦٥٥٣٦) مما يعطي توهجات جميلة وظلال تنعكس على خلفيات من الوان مختلفة.
اضافة الى ذلك يمكن لهذا التنسيق تخزين معلومات غاما او معدل التصحيح. ومن المعروف ان هذا المعدل يدل على كيفية عرض الشاشة لكثافة الضوء. ومن خلال ضبط معدل التصحيح يمكن تغيير قيم الاضاءة للرمادي المتوسط دون تشويه الالوان الفاتحة والغامقة. ويختلف هذا المعدل من بيئة الى اخرى فيبلغ المعدل لماكنتوش ١٫٨ بينما تبلغ قيمته في الكمبيوتر الشخصي ٢٫٢. لذلك امام عدم وجود مقياس واحد لمعدل التصحيح، قد نحصل على صور تبدو عظيمة على شاشة ماكنتوش الا انها تبدو معتمة كثيراً على شاشة الكمبيوتر الشخصي. وبما ان تنسيق GIF لا يحفظ معدل التصحيح، يتم عادة اللجوء الى معدل متوسط بين البيئتين. فيتم عادة تحديد قيمة ٢٫٢ (الشكل ٢أ) وضبط مستوى النقطة البيضاء (الشكل ٢ب) للوصول اقرب ما يمكن الى ما تعرضه شاشة الكمبيوتر الشخصي. الا ان PNG يتجنب هذه المشاكل بتخزين قيمة معدل التصحيح للشاشة التي انتجت عليها الصورة. وعند عرض هذه الصورة يقوم التنسيق بضبط المعدل ليناسب شاشة الزائر تلقائياً.

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

ونلاحظ ايضاً في الشكل ١ ان ملفات PNG اصغر من ملفات GIF عامة كما ان حجم الصورة العمودية (ب٢) يعادل تقريباً حجم الصورة الافقية (ب١) على عكس حالة ملفات GIF. اضافة الى ذلك نلاحظ ان ضغط PNG افضل من ضغط GIF في ما يتعلق بالصور المحاكاة (ج٣ وب٣) ومن المعروف ان PNG ينضغط بنسبة تفوق نسبة ضغط GIF بما يتراوح بين ١٠ و٣٠ ٪.

تنسيق JPEG

تم تصميم هذا التنسيق (Joint Photographic Expert Group) لضغط الصور بالالوان الحقيقية او بدرجات الرمادي. ويعمل التنسيق بشكل افضل مع الصور ذات الالوان المتواصلة مثل الصور الفوتوغرافية او الاعمال الفنية الطبيعية منه مع الصور التي تعرض حدود واضحة مثل النصوص او الرسوم ويدعم التنسيق الوان ٢٤ بت اي ١٦٫٧ مليون لون.

وJPEG هو خوارزمي ضغط مع فقدان ويعمل بتحويل الصورة الى خريطة كثافة ثم يرمي اجزاء من المعلومات التي تسجل كثافة عالية. وكلما زادت نسبة الضغط كلما زادت نسبة فقدان المعلومات. وتم تصميم التنسيق ليستغل بعض ميزات العين البشرية واهمها اننا نتحسس التغيرات البطيئة في اللون والاضاءة اكثر من التغيرات السريعة التي تحصل في مسافة قصيرة. ومع ان JPEG هو افضل تنسيق للصور الفوتوغرافية، تدخل دائماً المحاكاة التي تعيد تطبيق الصورة وفقاً للوح الوان ٨ بت اذا عرضت على شاشات ٨ بت. ويعمل خوارزمي الضغط مع بيانات ٢٤ بت مهما كان عدد الوان الصورة الاصلية، لذلك اذا قمنا بخفض الوان هذه الصورة من ٢٤ بت الى ٨ بت سينخفض اداء الضغط وجودة الصورة معاً لا سيما وان هذا الضغط يدخل بعض التشويش على مساحات اللون الواحد.

ويجب التذكير هنا ان JPEG ليس تنسيق ملفات بل خوارزمي ضغط. فالملفات المعروفة عادة بهذه التسمية هي في الحقيقة بتنسيق JFIF (JPEG File Interchange Format).

اما JPEG المتدرج او P-JPEG فقد بدأ بالانتشار بكثرة وتدعمه برامج التصفح. واذا تم التعامل معه بدقة يعطي مؤثرات افضل من JPEG لدى العرض. ويمكن التحويل بين النوعين دون فقدان اي بيانات.

٢أ: لوحة تحكم معدل التصحيح.

حفظ الملفات

يأتي فوتوشوب مع ملحقاته الخاصة لحفظ الملفات بالتنسقات اعلاه الا انه تتوافر منتجات من اطراف ثالثة يمكنها ان تعطي نتائج افضل خلال الضغط كما توفر وظائف اضافية.

ونذكر من هذه المنتجات مجموعة ملحقات HVS Webfocus التي توفر ملفات اصغر وبجودة اعلى مما يتوافر في برامج الصور حسب زعم مصمميها. وتشمل هذه المجموعة ملحقي HVS ColorGIF وHVS JPEG. ونذكر ايضاً PhotoGIF وProJPEG.

٢ب: مربع حوار المستويات في فوتوشوب.

في الحلقة القادمة سنتحدث عن هذه الملحقات وفعاليتها ونتطرق الى تنسيقات الملفات الجديدة التي بدأت بالظهور.

نسب الضغط لتنسيقات ملفات الصور
تنسيقنسبة الضغط القياسيةوصف
GIF ٤:١ - ١٠:١ دون فقدان لصور ٢٥٦ لوناً. افضل اداء على الالوان الواحدة والحدود الواضحة. يضغط خطوط الالوان الافقية بفعالية اكبر من العمودية.
JFIF (تقنية JPEG) ١٠:١ - ٢٠:١ جودة عالية - قليل جداً من فقدان المعلومات في الصور ذات الالوان المتواصلة. نتائج سيئة على الالوان الواحدة والحدود الواضحة.
٣٠:١ - ٥٠:١ جودة متوسطة - عادة افضل خيار لنسيج العنكبوت.
٦٠:١ - ١٠٠:١ جودة منخفضة - تناسب المصغرات واللمحات.
PNG ١٠ - ٣٠ ٪ اصغر من GIF يتصرف مثل GIF مع نتائج افضل على الالوان الواحدة والحدود الواضحة. يضغط افقياً وعمودياً.
FIF (تقنية fractal) ١٠:١ - ٢٠:١ جودة عالية
٣٠:١ - ٥٠:١ جودة متوسطة
٦٠:١ واكثر جودة منخفضة

الحلقات الاخرى:
– ضغط الصور ٢
– نصائح وادوات

أي رسالة أو تعليق؟

مراقبة استباقية

هذا المنتدى مراقب استباقياً: لن تظهر مشاركتك إلا بعد التصديق عليها من قبل أحد المدراء او المديرات.

من أنت؟
مشاركتك

لإنشاء فقرات يكفي ترك سطور فارغة.