تنسيقات الصور: JPEG

JPEG هو أكثر أنواع الصور المستخدمة على الويب شيوعًا، وله سبب وجيه: على مدى عقود، كانت JPEG هي الخيار الأمثل لترميز الصور الفوتوغرافية بلا تغيير على مدار عقود. وهناك حالة الاستخدام بالاسم: الاختصار JPEG يعني "المجموعة المشتركة لخبراء التصوير الفوتوغرافي"، وهي اللجنة المسؤولة عن إصدار المعيار لأول مرة في عام 1992. وسيكون امتداد الملف بتنسيق JPEG إما .jpg أو .jpeg، ولكنه نادر الحدوث في الاستخدام الحديث.

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

قد يبدو ذلك بمثابة تمييز أكاديمي على الورق: "تستخدم صورة GIF شبكة مكونة من وحدات بكسل في مقابل JPEG تستخدم شبكة تتكون من شبكات أصغر من شبكات البكسل". من الناحية العملية، يعني هذا الاستخدام للكتل بدلاً من البكسل أن JPEG يناسب حالة استخدام أكثر شيوعًا للصور: وهو نوع التدرجات الدقيقة ذات الطبقات التي تشكل صورة من العالم الحقيقي.

محاذاة أفقية للكتل الخضراء الانتقال من اللون الفاتح إلى الداكن.

سيكون وصف التدرج البسيط أحادي البكسل باستخدام ترميز بتنسيق GIF مطوّلاً للغاية:

الصف الأول، الأعمدة من واحد إلى تسعة هي #00CC00. الصف الأول، العمود العاشر هو #00BB00. الصف الأول، العمود الحادي عشر هو #00AA00. الصف الأول، العمود الثاني هو #009900. الصف الأول، العمود الثالث عشر هو #008800. الصف الأول، العمود الرابع عشر هو #007700. الصف الأول، العمود الخامس عشر هو #006600. الصف الأول، العمود السادس عشر هو #005500.

يعتبر وصف التدرج باستخدام ترميز نمط JPEG أكثر فعالية بكثير:

شبكة من الكتل الخضراء مقاسها ثمانية في ستة عشر تدرجات تدرج اللون من الفاتح إلى الداكن.

الجزء الأول هو #00CC00. يمثل القالب الثاني تدرجًا من #00CC00 إلى #005500.

من أهم مزايا تنسيق JPEG هو قياس مستوى تفاصيل "التردد العالي" في الصورة بشكل غير واضح، وغالبًا ما يكون ذلك بشكل غير واضح. ونتيجة لذلك، يعني حفظ الصورة بتنسيق JPEG عادةً تقليل جودة تلك الصورة بطرق يمكن قياسها، ولكنها ليست بالضرورة مرئية. كما تعلّمت، إنّ تحديد لوحة الألوان بنمط GIF هو عملية بسيطة نسبيًا، إذ يؤدي تقليل عدد الألوان في الصورة إلى عرض ملفات أصغر حجمًا، ولكن بطريقة يسهل رصدها بالعين البشرية.

من ناحية أخرى، فإن تنسيق JPEG، من ناحية أخرى، يتميز بذكاء في كيفية إجراء القياس: يحاول ضغط JPEG مع فقدان البيانات تحديد مصدر صورة بطريقة تتطابق تمامًا مع الطريقة التي تحدد بها أنظمتنا النفسية والبصرية العالم من حولنا. في الواقع، تحاول ملفات JPEG التخلص من التفاصيل التي لم نراها في المقام الأول، لذلك يمكنها تجاوز ضغط إضافي.

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

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

على سبيل المثال، يستفيد تنسيق JPEG من أحد نقاط ضعفنا النفسية والبصرية الرئيسية: تكون أعيننا أكثر حساسية للاختلافات في السطوع من الاختلافات في تدرج اللون. قبل تطبيق أي ضغط، تستخدم صيغة JPEG عملية تسمى "التحويل المنفصل لجيب التمام" لتقسيم الصورة إلى ترددات منفصلة تشمل "طبقات" بطريقة التحدث تمثل السطوع (السطوع) والتلامس (اللون) أو "لوما" و "الكروما".

تكون طبقة luma مضغوطة بشكل طفيف، مع تجاهل التفاصيل الصغيرة التي لا يمكن ملاحظتها للعين البشرية.

تقل طبقات الكروما بشكل كبير. وبدلاً من مجرد تحديد لوحة ألوان طبقات اللون مثل GIF، يمكن لـ JPEG تنفيذ عملية تسمى "أخذ عيّنات فرعية" حيث يتم تخزين طبقة كروما بدرجة دقة أقل. عند إعادة التركيب عن طريق توسيع طبقات الكروما ذات الدقة المنخفضة بشكل فعال على طبقة اللما، فإن الاختلاف غالبًا ما يكون غير ملحوظ. قد تكون الاختلافات الطفيفة في تدرج اللون ملحوظة إذا قارننا مصدر الصورة الأصلي وJPEG جنبًا إلى جنب، ولكن فقط عندما نعرف ما يجب أن نبحث عنه بالضبط.

مع ذلك، فإن تنسيق JPEG ليس مثاليًا. بقدر ما تتميز به مواصفات JPEG من براعة أكبر في الضغط، إلا أنه يمكن أن تظهر بشكل واضح إذا تم قطعها بعيدًا جدًا. في الواقع، إذا أمضيت الكثير من الوقت على الويب—خاصة في الأيام الماضية—فربما لاحظت نتيجة ضغط JPEG لوقت طويل جدًا:

صورة مضغوطة للغاية لزهور تحتوي على العديد من العناصر المرئية.

يعني ضغط بيانات الصورة بشكل كبير جدًا أن مستوى التفاصيل يتم تقليله إلى مستوى أبعد مما ستتجاهله أنظمتنا النفسية والبصرية بشكل طبيعي، وبالتالي يتم كسر الوهم. من الواضح أن التفاصيل مفقودة. نظرًا لأن JPEG تعمل من حيث الكتل، يمكن أن تبدأ الوصلات بين تلك الكتل في الظهور.

صور JPEG تدريجية

تعيد JPEG التقدمية (PJPEG) ترتيب عملية عرض JPEG بشكل فعال. يتم عرض صور JPEG "المرجعية" من أعلى إلى أسفل أثناء تقدم عملية النقل، بينما يتم عرض ملفات JPEG التدريجي في مجموعة من "عمليات الفحص" بالحجم الكامل - يتم على نحو مماثل من أعلى إلى أسفل - مع زيادة جودة كل عملية مسح. تظهر الصورة بأكملها على الفور، حتى لو كانت مموهة، وتصبح أكثر وضوحًا مع استمرار عملية النقل.

صورة GIF تُظهر سرعة التحميل الفائقة لصورة JPEG التدريجي مقارنةً بصور JPEG العادية

يبدو أنّ هناك اختلافًا فنيًا صارمًا في ما يتعلق بالورق، ولكن هناك فائدة إدراكية كبيرة: من خلال تقديم نسخة بالحجم الكامل من الصورة على الفور بدلاً من المساحة الفارغة، يمكن أن تبدو صورة PJPEG أسرع من صورة JPEG الأساسية للمستخدم النهائي. بالإضافة إلى ذلك، باستثناء الصور الأصغر حجمًا، يعني ترميز صورة بتنسيق PJPEG دائمًا تقريبًا حجم ملف أصغر مقارنةً بنسخة JPEG الأساسية - ليس كثيرًا، ولكن كل بايت يساعد.

ومع ذلك، يمكن الحلّ الوحيد للأمر، وهو أن فك ترميز PJPEG هو أكثر تعقيدًا من جهة العميل، وهو ما يعني زيادة الضغط قليلاً على المتصفّح ومعدّات الجهاز أثناء العرض. ويصعب تحديد مقدار النفقات العامة في العرض هذا بعبارات دقيقة، ولكنها بسيطة جدًا ولا يمكن ملاحظتها إلا في حال الأجهزة التي تكون ضعيفة للغاية. إنها مقايضة جديرة بالإجراء، وكما يتضح من ذلك، تُعتبر تدريجية أسلوبًا افتراضيًا معقولاً كلما تم ترميز صورة بتنسيق JPEG.

استخدام JPEG

قد تشعر بالإرهاق قليلاً من كل هذه المعلومات. هناك أخبار سارة لعملك اليومي، مع ذلك، يتم اقتطاع التفاصيل الأكثر تقنية لضغط JPEG، ويتم عرضها بدلاً من ذلك كإعداد واحد لـ "الجودة": عدد صحيح من 0 إلى 100. 0 أصغر حجم ممكن للملف، وكما قد تتوقع، أسوأ جودة مرئية ممكنة. كلما تقدمت من 0 إلى 100، زادت الجودة وحجم الملف. يعد هذا الإعداد ذاتيًا بالطبع، ولن تفسر كل أداة القيمة "75" بالطريقة نفسها، وتختلف الجودة الإدراكية دائمًا وفقًا لمحتوى الصورة.

لفهم آلية عمل إعداد الضغط هذا، فلنستخدم أداة شائعة مستندة إلى الويب لتحسين ملفات الصور: Squoosh.

توفر أداة Squoosh - التي يستخدمها فريق Chrome - مقارنة جنبًا إلى جنب بين طرق الترميز المختلفة وضبط مخرجات الصور، مع خيارات الضبط التي تتراوح بين 0 و100 شريط تمرير "الجودة" العالمية، والقدرة على ضبط تفاصيل التباين مقابل إعادة مزج الألوان. كلما انخفض رقم "الجودة"، زاد الضغط، وانخفض حجم الملف الناتج.

لوحة إعدادات Squoosh، مع تمييز شريط تمرير الجودة.

عند ضبط "الجودة" على 60، يتم تقليل حجم الملف بنسبة 79%. لا تنخدع بآثار هذه التسمية: فالاختلافات في الجودة على معظم المقياس لن تكون ملحوظة للعين البشرية، حتى عند إجراء مقارنة جنبًا إلى جنب.

لتحويل صورة المصدر إلى تنسيق JPEG تدريجي، ضَع علامة في المربّع "العرض التدريجي" ضمن "الخيارات المتقدّمة". من المؤكد أن بعض خيارات التهيئة هذه أكثر عمقًا مما يتطلبه مشروع الويب العادي، ولكنها يمكن أن تزودك بإلقاء نظرة فاحصة على كيفية تأثير الأشياء التي تعلمتها عن ترميز JPEG في حجم الملف وجودته في حالات الاستخدام في العالم الحقيقي.

لوحة إعدادات Squoosh، مع تمييز إعداد العرض التدريجي.

ولا نجد الكثير من المعلومات من الناحية العملية، وعلى الرغم من مدى تعقيدها، نعرف الآن أن استخدام تنسيق JPEG هو المراد استخدامه داخليًا. تُعد Squoosh طريقة واحدة من طرق لا حصر لها لحفظ صور JPEG محسّنة، وتستخدم جميعها طريقة مماثلة لتحديد مستوى الضغط: عدد صحيح واحد بين 0 و100.

تُعدُّ عملية تحديد المستوى المثالي للضغط لصورك من الألعاب المتقنة، حيث يتم استخلاص كل تعقيدات ترميز JPEG إلى عدد صحيح واحد، خاصةً عندما يكون هناك الكثير من التفاصيل على محتوى الصورة. مثل التفكير في الوميض أو التنفس، فإن مراعاة إعدادات ضغط JPEG تغير طريقة إدراكنا لها.

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

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