الصفحة الرئيسية > مجلة تصميم > العدد الثاني - شباط ١٩٩٨ > صور على إنترنت
صور على إنترنت
بقلم
مهما ازدادت قدرة تدفق البيانات في شبكة انترنت تبقى مشكلة القدرة المحدودة لهذا التدفق عند المستخدم النهائي قائمة. لذلك تبقى مسألة خفض حجم البيانات المتنقلة اساسية. وتحتل الصور والرسوم اكبر جزء من حجم البيانات هذا لذا يتحتم على مطور صفحات العنكبوت خفض حجم هذه الصور قدر المستطاع.
ان سر خفض حجم ملفات الصور يكمن في خفض دقتها النقطية وعمق الوانها وابعادها مع الحفاظ على جودة عرضها. ومعرفة التوازن بين الجودة والحجم هي مفتاح فن ضغط ملفات الصور وعرضها على صفحات العنكبوت.


عمق الالوان
هناك العديد من تنسيقات ملفات الصور. وتعتمد بعض التنسيقات الجدولية مثل GIF وPNG على الواح الالوان بحيث كلما كان عمق الالوان منخفضاً كلما صغر حجم ملف الصورة. بينما لا تستفيد الصور التي تحتوي على نظام الوان الشاشة (احمر، اخضر، ازرق) من خفض عمق الالوان لأن حجم الملف يعتمد اساساً على دقة الصورة.
فعلى سبيل المثال، تبلغ المساحة التي تحتلها صورة ٢٤ بت (١٦ مليون لون) مساحتها ٦٤٠ x ٤٨٠ نقطة على القرص الثابت ٩٠٠ كيلوبايت (٦٤٠ x ٤٨٠ نقطة x ٢٤ بت في النقطة / ٨ = ٩٢١٠٠٠ بايت). فإذا حاولنا تحميل هذه الصورة من نسيج العنكبوت يمكننا تحضير فنجان قهوة وشربه قبل ان ينتهي التحميل. وهناك العديد من الاجهزة غير المزودة ببطاقة عرض قوية ولا يمكنها عرض اكثر من ٢٥٦ لوناً في وقت واحد. فالزائر الذي يشاهد صورة ٢٤ بت على جهاز ٨ بت لن يرى من تدرج الالوان الا اشرطة عريضة من اللون الواحد تفصل بينها حدود واضحة. ومن الاساليب التي تتيح تجنب هذه المشكلة، العمل عن قصد ومن الاساس في لوحة ٢٥٦ لوناً. فإذا تعاملنا مع الصورة السابقة في ٢٥٦ لوناً وحفظناها بتنسيق TIFF ينخفض حجمها الى الثلث اي ٣٠٠ كيلوبايت.
الواح الالوان
هناك طريقتين لحفظ الصور النقطية هما الالوان الجدولية indexed والوان الشاشة RGB. فالتنسيق الجدولي يعتمد على جدول مرجعي من ٢٥٦ لوناً CLUT او ما يعرف بلوحة الالوان. اما تنسيق الوان الشاشة المعروف بالالوان الحقيقية، فيستخدم ٨ بت لكل من الالوان الثلاثة (اي القيم من صفر الى ٢٥٥) ليصل الى لوحة ٢٤ بت لكل نقطة يمكنها احتواء ١٦٫٧ مليون لون (٨ + ٨ + ٨ = ٢٤ بت و٢ اس ٢٤ = ١٦٧٧٧٢١٦ لون). وهناك بعض التنسيقات التي تدعم عدد الوان اكبر من ذلك ولكنها تتوجه الى مجالات متخصصة مثل التصوير الطبي.
والجدول المرجعي هو عبارة عن نسخة الكترونية من مرجع مزج الالوان ويحتوي ٢٥٦ بنداً وكل بند يحتوي دالة معينة للون معين. وتدل الصورة المرجعية على كل لون حسب موقعه في اللوحة. ويشكل العثور على اللوحة المناسبة التي توفر افضل جودة في عرض الوان ٨ بت فناً قائماً بذاته ويمكنه التأثير على عرض الصورة بشكل جذري.
الضغط
يتم استخدام خوارزمي الضغط لإعادة ترميز البيانات بطريقة اكثر احكاماً. اي بمعنى آخر يشبه الضغط قول الشيء نفسه بكلمات اقل. وفي تنسيقي GIF وPNG، كلما قلت التبدلات في الصورة كلما قلت فائدة الضغط.
وبخفض الالوان وخاصة المساحات ذات اللون الواحد يمكن لتنسيق GIF ان يضغط صورة ٣٠٠ كيلوبايت السابقة الى حجم لا يتعدى ١٥٠ كيلوبايت (٢٥٦ لوناً مع المحاكاة -dithering ) او ٩٠ كيلوبايت باستخدام النظام البصري للانسان (HVS سنتحدث عنه لاحقاً) اي بنسب تتراوح بين ١:٦ و١:١٠. ويحتفظ تنسيق GIF بالمعلومات المتعلقة بحدود الاشكال ووضوح الصورة اذا لم تطبق المحاكاة (انظر لاحقاً) عليها. اما تنسيق JPEG فيمكنه خفض حجم صورة ٢٤ بت الذي يبلغ ٩٠٠ كيلوبايت الى ٤٥ كيلوبايت (جودة عالية) او ٣٠ كيلوبايت (جودة متوسطة) اي بنسب تتراوح بين ١:٢٠ و١:٣٠. ومع هذا التنسيق كلما ضغطنا اكثر كلما فقدت الصورة من الوضوح ودقة الحدود. ومن المعروف ان العين البشرية حساسة جداً لوضوح الحدود (قد يعود ذلك الى ايام ما قبل التاريخ حين كان الانسان يتنبه من الافاعي على جذوع الشجر)، لذلك يبدو تنسيق GIF اكثر وضوحاً من تنسيق JPEG.
المحاكاة
اذا حاولنا عرض صورة بالالوان الحقيقية (٢٤ بت) على شاشة لا تعرض الا ٢٥٦ لوناً، يجب على هذه الشاشة ان «تقلّد» الواناً لا يمكنها عرضها. وينفذ الكمبيوتر ذلك من خلال المحاكاة اي دمج نقاط من لوحة ٢٥٦ لون للحصول على انسجة تشبه تقريباً الالوان الغائبة. واذا نظرت العين الى الصورة من بعد معين تندمج هذه الانسجة في لون واحد الا انه من قرب تبدو الصورة منقّطة. وبعد المحاكاة يصبح من الصعب ضغط الصورة دون فقدان معلومات لأن خوارزمي الضغط في تنسيق GIF يعتمد على المساحات الافقية التي تتميز بلون واحد. ومن اجل تجنب المحاكاة يجب انشاء صور تستخدم الالوان التي تدعمها لوحة الوان برنامج تصفح العنكبوت. وتعرف عادة هذه الالوان بالالوان السليمة safe colours
اذ ان الصورة تظهر في برنامج التصفح كما اراد لها منتجها وذلك بشكل مستقل عن بيئة الجهاز. ومن المعروف ان اكثر لوحة الوان استخداماً لنسيج العنكبوت هي لوحة نتسكيب المؤلفة من ٢١٦ لون.
واهم ما يميز وظائف التصدير الى تنسيق GIF في البرامج المختلفة هو جودة خفض الالوان. واختبرنا هذه الجودة مع عدد من البرامج الاكثر استخداماً فخفضنا الوان الصورة الاصلية الى ٦٤ و١٢٨ لوناً باستخدام لوحة الوان مهايئة adaptive. واستخدمنا صورة فوتوغرافية غير مناسبة لتنسيق GIF عن قصد لإظهار نتيجة الخفض بوضوح كما اخترنا ٦٤ لوناً كخطوة قصوى لتضخيم جودة الكم (quantisation، سنتحدث عن هذا المفهوم في حلقة مقبلة).
اما البرامج التي استخدمناها فهي وظيفة خفض الالوان والتصدير الى GIF في كل من ادوبي فوتوشوب ٤ (باستخدام تصدير GIF89a) وكورل فوتو بينت ٨ وبينت شوب برو ٤٫١٤ اضافة الى ملحقي PhotoGIF وHVS ColorGIF المتخصصين في هذه الوظيفة. ويمكن تثبيت هذين الملحقين في مجلد الملحقات في البرامج السابقة لاستخدامهما.
ونعرض في هذه المقدمة نتائج الاختبار وترافق الصور معلومات عن البرنامج المستخدم وعدد الالوان وحجم الملف. ونورد هنا حجم الملف لتقييم الضغط اذ ان هذا الحجم يؤثر كثيراً على تحميل الصورة من نسيج العنكبوت. ويمكن للقارئ ان يعاين بنفسه الفرق بين النتائج.
ملاحظة: تجدر الاشارة الى انه عند تحويل صورة من الوان الشاشة الى عدد من الالوان الجدولية (في لوحة نتسكيب) مباشرة بواسطة PhotoGIF وHVS ColorGIF يقوم هذان الملحقان بتخزين كامل لوحة الالوان في الملف حتى لو ان الصورة تحتوي على اقل من ٢١٦ لوناً مما يزيد في حجم هذا الملف. واستخدمنا هنا حيلة بسيطة لتخفيض حجم اللوحة المخزنة لتحتوي عدد الالوان المستخدمة تماماً وذلك بفتح ملف GIF وتحويل صيغة الصورة الى الوان الشاشة RGB ثم اعادة تحويلها الى صيغة الالوان الجدولية باستخدام خيار «محدد» للوحة مما يحفظ في الملف الالوان المستخدمة فقط وخفضنا بذلك حجم الملف بمقدار ٢٥ الى ٣٠ بايت تقريباً. وتجدر الاشارة كذلك الى ان كورل فوتوبيت يدعم اضافة الى لوحة نتسكيب لوحة انترنت اكسبلورر ولكن لم نستخدم هذه اللوحة لأنها قليلة الانتشار ولا تدعمها البرامج الاخرى.
يذكر اخيراً ان فوتوشوب وبينت شوب برو لا يوفران الا المحاكاة بالافتعال بينما تتيح البرامج الاخرى ادخال نسبة مئوية للمحاكاة.
| فوتوشوب | فوتو بينت | بينت شوب برو | كولور جيف | فوتو جيف |
|---|---|---|---|---|
٦٤ لون ٥١٫٨٦ ك
|
٦٤ لون ٥٣٫٥٠ ك
|
٦٤ لون ٥٩٫٥٩ ك
|
٦٤ لون ٥٢٫٣٥ ك
|
٦٤ لون ٥١٫٩٩ ك
|
١٢٨ لون ٦٥٫٣٥ ك
|
١٢٨ لون ٦٧٫٧٣ ك
|
١٢٨ لون ٧٢٫٩٢ ك
|
١٢٨ لون ٥٤٫١٧ ك
|
١٢٨ لون ٦٥٫٠٥ ك
|
لوحة نتسكيب ٥٥٫٢٤ ك
|
لوحة نتسكيب ٥٧٫٦٧ ك
|
لوحة نتسكيب ٦١٫٧٣ ك
|
لوحة نتسكيب ٥٥٫٤٧ ك
|
لوحة نتسكيب ٥١٫٣٥ ك
|















