تقنية على مدار الساعة
  • مراجعات
  • من نحن
  • تواصل معنا
  • سياسة الخصوصية
إعلان
  • مواضيع تقنية
  • شروحات تقنية
  • كيف يعمل
  • تطبيقات وبرامج
  • هواتف ذكية وحواسيب
  • أمن إلكتروني
No Result
View All Result
  • مواضيع تقنية
  • شروحات تقنية
  • كيف يعمل
  • تطبيقات وبرامج
  • هواتف ذكية وحواسيب
  • أمن إلكتروني
No Result
View All Result
تقنية على مدار الساعة
No Result
View All Result
الرئيسية كيف يعمل

كيف يعمل ضغط صور JPEG؟ ولماذا هو فعال للغاية في تقليص حجم الصور؟

علي وديع حسن بواسطة علي وديع حسن
19 فبراير 2020
في كيف يعمل
0
طريقة ضغط صور JPEG

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

ما يميز صيغة JPEG عن صيغ الصور الأخرى هو قدرتها الاستثنائية على الضغط، حيث أن الصور بصيغة JPEG أصغر بمراحل من الصيغ الأخرى. ومن الممكن لصورة خام بحجم 30MB أن تتقلص إلى 10% من حجمها فقط: 3MB دون خسارة كبرى في جودتها.

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

المحتويات

  • لماذا ضغط الصور مهم للغاية؟
  • الفرق بين أنواع الضغط (Lossy / Lossless)
  • طريقة ضغط الصور بصيغة JPEG
  • فك الضغط وعرض صور JPEG
  • تدرجات ومستويات ضغط صور JPEG
  • لماذا تظهر الأحرف والأشكال الهندسية سيئة للغاية في صور JPEG؟

لماذا ضغط الصور مهم للغاية؟

الفرق في الحجم بين الصور الخام والصور المضغوطة.
الفرق في الحجم بين الصور الخام والصور المضغوطة.

لنفترض أنك تريد التقاط صورة فوتوغرافية بدقة 12MP مثلاً، وتريد تخزين هذه الصورة. بالطبع من الدقة يجب أن تعرف أن هذه الصورة ستتضمن 12 مليون بكسل، وهو أصغر واحدة متعارف عليها في العرض عادة.

كل بكسل في الصورة يتضمن لوناً واحداً مكوناً من مزيج لقيم ثلاثة ألوان أساسية: الأحمر، والأخضر، والأزرق. هذه الألوان الثلاثة هي مكونات نظام ألوان RGB. وكل من هذه الألوان الأساسية يمتلك قيمة تتراوح بين 0 و255 ليسهم مع اللونين الآخرين في إنتاج الصورة.

للتعبير عن القيم بين 0 و255، أنت تحتاج إلى عدد مكون من 8 منازل في نظام العد الثنائي، حيث أن قيمة 255 هي 11111111 في ذلك النظام. لذا يشغل كل لون رئيسي مساحة 8bit من التخزين، وكما هو معروف 8bit=1Byte.

بالنتيجة يحتاج كل بكسل في الصورة إلى مساحة تخزين بحجم 3B، وصورة بقياس 12 مليون بكسل تحتاج إلى 36MB من مساحة التخزين. وبالطبع فشغل كل صورة لمساحة كهذه أمر غير منطقي أبداً في الواقع، لذا يعد ضغط الصور أمراً هاماً للغاية حتى اليوم.

الفرق بين أنواع الضغط (Lossy / Lossless)

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

بعض صيغ الضغط غير التدميري (Lossless Compression) دون تضحية بالجودة تتضمن صيغ الصور مثل PNG مثلاً، حيث تعمل هذه الصيغة بشكل استثنائي مع الأشكال الهندسية والأحرف والألوان المسطحة، لكنها سيئة للغاية عند استخدامها مع الصور الفوتوغرافية مثلاً.

مع كون معظم الصور الموجودة هي صور فوتوغرافية، فقد كان من الضروري وجود صيغة صور رقمية تتيح أحجاماً أقل بكثير من الصور الخام. ولهذه الغاية كان لا بد من بعض التضحيات، وأهم هذه التضحيات هي استخدام الضغط التدميري (Lossy Compression).

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

طريقة ضغط الصور بصيغة JPEG

من حيث المبدأ تعتبر معايير صيغة JPEG واسعة جداً ومتنوعة بحيث أن أياً من الشركات لم تكن تتبنى استخدامها. بل أن معياراً محدداً باسم JFIF هو المستخدم، وهذا المعيار تابع لعائلة معايير JPEG ويستخدم لاحقة .jpg في الواقع.

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

المرحلة الأولى: تحويل نظام الألوان إلى Y’CbCr

بينما تستخدم الشاشات وحساسات الكاميرات نظام ألوان RGB المعروف، يتم تخزين صور JPEG باستخدام نظام ألوان مختلف في الواقع، حيث لا يعبر عن اللون كمزيج من الألوان الأساسية حقاً.

يقوم نظام Y’CbCr بتقسيم أي لون إلى عدة قيم أساسية:

نظام ألوان Y'CbCr
نظام ألوان Y’CbCr
  • قيمة ‘Y تعبر عن مستوى الإضاءة الخاصة باللون (Luma)، حيث أن قيمتها تحدد مدى إشراق اللون أو كونه معتماً.
  • قيمة Cb تعبر عن موقع اللون بالنسبة للأزرق، كلما ارتفعت القيمة كان طيف اللون أقرب للأزرق، وكلما انخفضت يقترب من الأصفر.
  • قيمة Cr تعبر عن موقع اللون بالنسبة للأحمر، كلما ارتفعت القيمة كان طيف اللون أقرب للأحمر، وكلما انخفضت يقترب من الأخضر.

بالنظر إلى المربع في الصورة أعلاه، يمكن التعبير عن مختلف تدرجات الألوان (Chroma) باستخدام قيمتي Cb وCr معاً، حيث أن تساوي القيمتين يعني أن اللون أحد تدرجات الرمادي، وتبعاً لقيمة ‘Y من الممكن التحكم بمدى إشراق كل لون.

عناصر الصورة وفق نظام ألوان Y'CbCr
عناصر الصورة وفق نظام ألوان Y’CbCr

بمعاينة الصورة أعلاه، يمكن ملاحظة أن تحليل صورة إلى مكوناتها وفق نظام Y’CbCr مختلف عما تبدو عليه في نظام RGB، وبينما يظهر كل عنصر مصبوغاً بلون واحد في RGB، هناك عنصر بالأبيض والأسود، وعنصران لا يمتلكان أية تدرجات إضاءة في Y’CbCr.

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

المرحلة الثانية: ضغط مجال الألوان نفسه

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

هذه الصورة ليست ملونة حقاً، بل الالوان ليست سوى خطوط على صورة بالأبيض والأسود.
هذه الصورة ليست ملونة حقاً، بل الالوان ليست سوى خطوط على صورة بالأبيض والأسود.

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

نتيجة هذا الأمر، عادة ما يتم ضغط مجال الألوان في صور JPEG، حيث يتم ترك قيم Y’ ضمن مجالها الكامل كونها تعبر عن الإضاءة، فيما يتم اختزال مجالات كل من Cb وCr.

خيارات ضغط المجال اللوني Y'CbCr

في حال عدم الاختزال تكون النسبة 4:4:4، لكن الشكل الأكثر اعتيادية للاختزال هو نسبة 4:2:2. حيث يبقى مجال Y’ كما هو، فيما يختصر كل من مجالي Cb وCr إلى النصف.

بالتالي يكون هناك مجال لوني أصغر بأربع مرات من المجال اللوني الأصلي، لكن التغيير غير قابل للملاحظة عادة، بل تبقى الصور ظاهرة كأنها الصور الأصلية.

المرحلة الثالثة: تقسيم الصورة إلى كتل

كتلة بقياس 8x8 بكسلات

بعد ضغط مجال الألوان، يتم تقسيم عناصر الصورة إلى مربعات مستقلة، كل مربع منها بأبعاد 8×8. يسمى هذا المربع “كتلة” (Block)، بحيث تتكون الصورة من ثلاثة عناصر، كل منها مكون من مجموعة من الكتل المختلفة.

5255616677616473
63595590109856972
6259681131441046673
6358711221541067069
676168104126886870
7965607077685875
8571645955616583
8779696865767894

يتم التعامل مع كل كتلة في الصورة على أنها مصفوفة، حيث يتم وضع القيم الخاصة بكل بكسل (تتراوح بين 0 و255) ضمن المصفوفة، وبالتالي يصبح الشكل كما المصفوفة أعلاه التي تمثل نفس كتلة البكسلات في الصورة السابقة.

-76-73-67-62-58-67-64-58
-65-69-73-38-19-43-59-56
-66-69-60-1516-24-62-55
-65-70-57-626-22-58-59
-61-67-60-24-2-40-60-58
-49-63-68-58-51-60-70-53
-43-57-64-69-73-67-63-45
-41-49-59-60-63-52-50-34

في المصفوفة الأصلية تكون البيانات موجبة دائماً بين قيمتي 0 و255، لذا يتم طرح قيمة 128 من كل القيم، وذلك لجعل القيم متمركزة حول الصفر. بهذا تصبح جميع القيم محصورة بين قيمتي -128 و127.

المرحلة الرابعة: تحويل جيب التمام المتقطع

مصفوفة تحويل جيبي التمام المتقطع

في الصورة أعلاه ما يسمى باسم مصفوفة تحويل جيب التمام المتقطع (Discrete Cosine Transformation). وهي مكونة من تمثيلات لعدة توابع جيبية مختلفة، كل منها يعطي نمطاً مختلفاً عن الآخر.

من المفترض أن تتكون أية صورة بقياس 8×8 قابلة للاختزال كمجموعة من التوابع الجيبية الموجودة في المصفوفة أعلاه. حيث تتكون أية صورة من مجموع عدة توابع وكل منها مضروب بقيمة معامل ضرب خاصة به.

−415.38−30.19−61.2027.2456.12−20.10−2.390.46
4.47−21.86−60.7610.2513.1513.15−8.544.88
−46.837.3777.13−24.56−28.919.935.42−5.65
−48.5312.0734.10−14.76−10.246.301.831.95
12.12−6.55−13.20−3.95−1.871.75−2.793.14
−7.732.912.38−5.94−2.380.944.301.85
−1.030.180.42−2.42−0.88−3.024.12−0.66
−0.170.14−1.07−4.19−1.17−0.100.501.68

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

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

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

المرحلة الخامسة: مصفوفة الترميز المخصصة

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

هذه هي مصفوفة الترميز القياسية لجودة 50% وفق معايير JFIF (جزء من معايير JPEG):

1611101624405161
1212141926586055
1413162440576956
1417222951878062
182237566810910377
243555648110411392
49647887103121120101
7292959811210010399

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

-26-3-622-100
0-2-411000
-315-1-1000
-312-10000
00000000
00000000
00000000
00000000

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

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

فك الضغط وعرض صور JPEG

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

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

يتم تطبيق التحويل الجيبي بشكل عكسي على مصفوفة الترميز، ومن ثم تضاف قيمة 128 لكل عناصر المصفوفة، وبهذا نعود للمصفوفة الأساسية للكتلة المكونة من 8×8 بكسل. حيث تعبر هذه المصفوفة عن واحدة من قيم Y’ أو Cb أو Cr.

بجمع المصفوفة مع مصفوفات العناصر الأخرى، من الممكن تطبيق تحويل عكسي لاستنتاج قيم RGB لكل بكسل، وبهذا نحصل على المعلومات التي من الممكن عرضها على الشاشة.

تدرجات ومستويات ضغط صور JPEG

خيارات جودة صور JPEG عند حفظها من برنامج Photoshop CC

في حال كنت قد استخدمت برنامج تعديل متقدم للصور مثل Adobe Photoshop، فالأرجح أنك قد لاحظت وجود خيارات عدة لجودة صور JPEG التي تقوم بحفظها. فالإصدارات الأخيرة من Photoshop مثلاً تتيح 100 درجة من الجودة.

تتحكم درجات الجودة هذه بأمرين أساسيين في الواقع:

  • مدى ضغط مجال الألوان (قيم Cb وCr).
  • مصفوفة الترميز المستخدمة وترتيب القيم ضمنها.

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

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

لماذا تظهر الأحرف والأشكال الهندسية سيئة للغاية في صور JPEG؟

تشوه الحواف الناتج عن الضغط في صور JPEG

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

تأثير إزالة الترددات العالية أو المنخفضة على صورة

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

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

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

وسوم: صوركيف يعملمصطلحات ومعلوماتميديا
شاركغرد
الموضوع السابق

تطبيق Remini الجديد يتيح تحويل الصور القديمة المشوشة إلى صور عالية الدقة

الموضوع التالي

خسائر عمليات الاحتيال على الإنترنت تصل مستويات قياسية جديدة خلال عام 2019 الأخير - إنفوجرافيك

علي وديع حسن

علي وديع حسن

مؤسس ومدير موقع Tech247.me، خبرة سنوات في صناعة وإدارة المحتوى الرقمي واهتمام ومتابعة مستمرة للتقنية بمختلف فروعها.

الموضوع التالي
ازدياد خسائر الاحتيال عبر الإنترنت في الولايات المتحدة خلال السنوات الأخيرة

خسائر عمليات الاحتيال على الإنترنت تصل مستويات قياسية جديدة خلال عام 2019 الأخير - إنفوجرافيك

اترك تعليقا

اقرأ أيضا مواضيع

ما هي الأنواع المختلفة لوصلات الفيديو؟ ما هي مواصفات كل منها وأيها أفضل لك؟
مواضيع تقنية

ما هي الأنواع المختلفة لوصلات الفيديو؟ ما هي مواصفات كل منها وأيها أفضل لك؟

18 أبريل 2020
أكبر خدمات بث المسلسلات والأفلام في العالم: نتفلكس في الصدارة، لكن الأمور في تغير سريع
تطبيقات وبرامج

أكبر خدمات بث المسلسلات والأفلام في العالم: نتفلكس في الصدارة، لكن الأمور في تغير سريع

12 أبريل 2020
لماذا كاميرات الويب سيئة الجودة
مواضيع تقنية

لماذا عادة ما تكون كاميرات الويب في اللابتوبات سيئة الجودة مقارنة بكاميرات الهواتف الذكية؟

6 أبريل 2020
حمل المزيد
  • تواصل معنا
  • سياسة الخصوصية

جميع الحقوق محفوظة لموقع تقنية 247 © 2018

No Result
View All Result
  • مواضيع تقنية
  • شروحات تقنية
  • كيف يعمل
  • تطبيقات وبرامج
  • هواتف ذكية وحواسيب
  • أمن إلكتروني

جميع الحقوق محفوظة لموقع تقنية 247 © 2018