ما هو ملف JPEG؟
JPEG هو نوع من تنسيق الصور يتم حفظه باستخدام طريقة الضغط مع فقدان البيانات. الصورة الناتجة ، كنتيجة للضغط ، هي مقايضة بين حجم التخزين وجودة الصورة. يمكن للمستخدمين ضبط مستوى الضغط لتحقيق مستوى الجودة المطلوب مع تقليل حجم التخزين في نفس الوقت. تتأثر جودة الصورة بشكل ضئيل إذا تم تطبيق ضغط بنسبة 10: 1 على الصورة. كلما زادت قيمة الضغط ، زاد تدهور جودة الصورة.
مواصفات تنسيق الملف
تم توحيد تنسيق ملف صورة JPEG من قبل Joint Photographic Experts Group ، وبالتالي الاسم JPEG. كان التنسيق هو اختيار تخزين ونقل الصور الفوتوغرافية على الويب. تحتوي جميع أنظمة التشغيل تقريبًا الآن على عارضين يدعمون تصور صور JPEG ، والتي يتم تخزينها غالبًا بامتداد JPG أيضًا. حتى متصفحات الويب تدعم تصور صور JPEG. قبل الدخول في مواصفات تنسيق ملف JPEG ، يجب ذكر العملية الشاملة للخطوات المتضمنة في إنشاء JPEG.
خطوات ضغط JPEG
** التحول: ** يتم تحويل الصور الملونة من RGB إلى صورة النصوع / اللون اللوني (العين حساسة للإضاءة وليس التلون ، لذلك يمكن أن يفقد جزء التلوين الكثير من البيانات وبالتالي يمكن ضغطه بشدة.
** أخذ العينات السفلية: ** يتم أخذ العينات السفلية للمكون الملون وليس لمكون النصوع. ويتم أخذ العينات السفلية إما بنسبة 2: 1 أفقيًا و 1: 1 عموديًا (ساعتان و 1 فولت). وبالتالي يقل حجم الصورة نظرًا لعدم لمس المكون “y” ، ولا يوجد فقد ملحوظ في جودة الصورة.
** التنظيم في مجموعات: ** يتم تنظيم وحدات البكسل لكل مكون لوني في مجموعات من 8 × 2 بكسل تسمى “وحدات البيانات” إذا لم يكن عدد الصفوف أو الأعمدة من مضاعفات 8 ، يتم تكرار الصف السفلي والأعمدة الموجودة في أقصى اليمين.
** تحويل جيب التمام المنفصل: ** يتم تطبيق تحويل جيب التمام المنفصل (DCT) بعد ذلك على كل وحدة بيانات لإنشاء خريطة 8 × 8 للمكونات المحولة. يتضمن DCT بعض فقدان المعلومات بسبب الدقة المحدودة لحساب الكمبيوتر. هذا يعني أنه حتى بدون الخريطة سيكون هناك بعض فقدان جودة الصورة ولكنها عادة ما تكون صغيرة.
** التكمية: ** يتم تقسيم كل مكون من 64 مكونًا تم تحويله في وحدة البيانات على رقم منفصل يسمى “معامل التكميم (QC)” ثم يتم تقريبه إلى عدد صحيح. هذا هو المكان الذي تُفقد فيه المعلومات بشكل لا يمكن استرجاعه ، حيث تتسبب مراقبة الجودة الكبيرة في مزيد من الخسارة. بشكل عام ، تسمح معظم أدوات JPEG باستخدام جداول QC الموصى بها بواسطة معيار JPEG.
** التشفير: ** يتم تشفير 64 من المعاملات المحولة الكمية (والتي أصبحت الآن أعدادًا صحيحة) لكل وحدة بيانات باستخدام مجموعة من تشفير RLE و Huffman.
** إضافة رأس: ** تضيف الخطوة الأخيرة العنوان وجميع معلمات JPEG المستخدمة وتخرج النتيجة.
تستخدم وحدة فك ترميز JPEG الخطوات في الاتجاه المعاكس لإنشاء الصورة الأصلية من الصورة المضغوطة.
هيكل الملف
يتم تمثيل صورة JPEG كسلسلة من المقاطع حيث يبدأ كل مقطع بعلامة. تبدأ كل علامة ببايت 0xFF متبوعًا بعلامة علامة لتمثيل نوع العلامة. الحمولة متبوعة بعلامة مختلفة حسب نوع العلامة. أنواع علامات JPEG الشائعة مذكورة أدناه:
الاسم المختصر | بايت | الحمولة | الاسم | التعليقات |
---|---|---|---|---|
SOI | 0xFF ، 0xD8 | بلا | بداية الصورة | |
S0F0 | 0xFF ، 0xC0 | حجم متغير | بداية الإطار | |
S0F2 | 0xFF ، 0xC2 | حجم متغير | بدء الإطار | |
DHT | 0xFF ، 0xC4 | حجم متغير | تحديد جداول هوفمان | |
DQT | 0xFF ، 0xDB | حجم متغير | تحديد جدول (جداول) التكميم | |
DRI | 0xFF ، 0xDD | 4 بايت | تحديد الفاصل الزمني لإعادة التشغيل | |
SOS | 0xFF ، 0xDA | حجم متغير | بدء المسح | |
RSTn | 0xFF ، 0xD // n // (/ar// n // # 0..7) | بلا | إعادة التشغيل | |
APPn | 0xFF ، 0xE // n // | حجم متغير | خاص بالتطبيق | |
COM | 0xFF ، 0xFE | حجم متغير | تعليق | |
EOI | 0xFF ، 0xD9 | بلا | نهاية الصورة |
ضمن البيانات المشفرة بالانتروبيا ، بعد أي بايت 0xFF ، يتم إدخال 0x00 بايت بواسطة المشفر قبل البايت التالي ، بحيث لا يبدو أن هناك علامة حيث لا يقصد أي منها ، مما يمنع أخطاء الإطارات. يجب أن تتخطى أجهزة فك التشفير هذا 0x00 بايت. هذه التقنية ، المسماة حشو البايت (راجع قسم مواصفات JPEG F.1.2.3) ، يتم تطبيقها فقط على البيانات المشفرة بالانتروبيا ، وليس على بيانات الحمولة الصافية للعلامة . لاحظ مع ذلك أن البيانات المشفرة بالانتروبيا لها بعض العلامات الخاصة بها ؛ على وجه التحديد ، علامات إعادة التعيين (0xD0 إلى 0xD7) ، والتي تُستخدم لعزل أجزاء مستقلة من البيانات المشفرة بالانتروبيا للسماح بفك التشفير المتوازي ، والمشفرات حرة في إدراج علامات إعادة التعيين هذه على فترات منتظمة (على الرغم من عدم قيام جميع أجهزة التشفير بذلك).