تنسيق تبادل ملفات JPEG
تنسيق تبادل ملفات JPEG ( JFIF ) هو معيار لتنسيق ملفات الصور ، نُشر كتوصية ITU-T T.871 ومعيار ISO/IEC 10918-5. يُحدد هذا التنسيق مواصفات إضافية لتنسيق الحاوية الذي يحتوي على بيانات الصورة المشفرة باستخدام خوارزمية JPEG . تُحدد المواصفات الأساسية لتنسيق حاوية JPEG في الملحق B من معيار JPEG، المعروف باسم تنسيق تبادل JPEG (JIF). يستند JFIF إلى JIF لمعالجة بعض قيوده، بما في ذلك التعقيد غير الضروري، وتسجيل عينات المكونات، والدقة، ونسبة العرض إلى الارتفاع، ومساحة الألوان . ولأن JFIF ليس معيار JPG الأصلي، فقد يتوقع المرء نوع MIME مختلفًا . ومع ذلك، لا يزال مُسجلاً باسم "image/jpeg" (مما يشير إلى تنسيق بياناته الأساسي وليس إلى المعلومات المُعدلة).
يُعد تنسيق JFIF غير متوافق مع تنسيق ملف الصور القابل للتبادل الأحدث (Exif).
غاية
يحدد JFIF عددًا من التفاصيل التي لم يتم تحديدها بواسطة معيار JPEG الجزء 1 ( ISO / IEC 10918-1، توصية ITU-T T.81.) [ 1 ]
تسجيل عينة المكون
يسمح تنسيق JPEG بوجود مكونات متعددة (مثل Y وCb وCr ) بدقة مختلفة، ولكنه لا يحدد كيفية محاذاة مصفوفات العينات المختلفة هذه (التي تُنتج الصور النقطية). تُعرض هذه المعلومات المُنتجة للبكسلات على أساس الإشارة إلى المستطيلات من خلال مركزها ، بدلاً من كونها بيانات بكسل مباشرة، أو كونها "الزاوية الأولى والفيضان"، وما إلى ذلك، وهو أمر غير شائع.
الدقة ونسبة العرض إلى الارتفاع
لا يتضمن معيار JPEG أي طريقة لترميز دقة الصورة أو نسبة أبعادها. يوفر معيار JFIF معلومات الدقة أو نسبة الأبعاد باستخدام امتداد مقطع التطبيق لـ JPEG. يستخدم JFIF مقطع التطبيق رقم 0، ويتكون رأس المقطع من سلسلة نصية تنتهي بصفر، وهي "JFIF" مكتوبة بنظام ASCII، متبوعة ببايت يساوي صفرًا، ويحدد أن يكون هذا المقطع هو الأول في الملف، مما يسهل التعرف على ملف JFIF. لا تتضمن صور EXIF المسجلة بواسطة الكاميرات الرقمية هذا المقطع عادةً، ولكنها تتوافق مع معيار JFIF في جميع الجوانب الأخرى.
مساحة اللون
لا يُحدد معيار JPEG المُستخدم لترميز الضغط في ملفات JFIF ترميز الألوان المُستخدم للصور. يُحدد JFIF نموذج الألوان المُستخدم: إما Y للتدرج الرمادي، أو YCbCr المُشتق من ألوان RGB الأساسية كما هو مُحدد في CCIR 601 (المعروف الآن باسم Rec. ITU-R BT.601)، باستثناء اختلاف نطاق مُكونات Y وCb وCr. على عكس "نطاق الاستوديو" المُحدد في CCIR 601، حيث يُمثل اللون الأسود بـ Y=16 والأبيض بـ Y=235، وتتوفر قيم خارج هذا النطاق لمعالجة الإشارة ، يستخدم JFIF جميع مستويات التمثيل 8 بت البالغ عددها 256 مستوى، بحيث يكون Y=0 للأسود وY=255 للون الأبيض في ذروته. تختلف الألوان الأساسية RGB المُعرَّفة في JFIF عبر CCIR 601 نوعًا ما عما أصبح شائعًا في التطبيقات الحديثة (على سبيل المثال، تختلف قليلًا عن الألوان الأساسية المُعرَّفة في sRGB ). علاوة على ذلك، لم يُقدِّم CCIR 601 (قبل عام 2007) تعريفًا دقيقًا للألوان الأساسية RGB؛ بل اعتمد بدلًا من ذلك على الممارسات السائدة في صناعة التلفزيون.
يمكن تحسين تفسير الألوان لصورة JFIF عن طريق تضمين ملف تعريف ICC أو بيانات تعريف مساحة اللون أو علامة sRGB ، واستخدام تطبيق يفسر هذه المعلومات.
بنية تنسيق الملف
يتكون ملف JFIF من سلسلة من العلامات أو مقاطع العلامات (للمزيد من التفاصيل، راجع JPEG، بناء الجملة والبنية ). تُعرَّف العلامات في الجزء الأول من معيار JPEG . [ 1 ] تتكون كل علامة من بايتين: FFبايت متبوعًا ببايت آخر لا يساوي 00أو FFيحدد نوع العلامة. بعض العلامات مستقلة، لكن معظمها يشير إلى بداية مقطع علامة يحتوي على بايتات بيانات وفقًا للنمط التالي:
FF xxs1s2[data bytes]
يُجمع البايتان s1 و s2 لتمثيل عدد صحيح كبير النهاية مكون من 16 بت، يحدد طول "بايتات البيانات" التالية بالإضافة إلى البايتين المستخدمين لتمثيل الطول. بعبارة أخرى، يحدد s1 و s2 عدد بايتات البيانات التالية ..
وفقًا للجزء الأول من معيار JPEG، يمكن للتطبيقات استخدام مقاطع علامات APP وتحديد معنى خاص بالتطبيق للبيانات. في معيار JFIF، تم تعريف مقاطع علامات APP التالية:
- مقطع علامة JFIF APP0 (مقطع JFIF باختصار) (إلزامي)
- مقطع علامة JFIF الممتد APP0 (مقطع JFXX اختصارًا) (اختياري)
وهي موصوفة أدناه.
يشترط معيار JFIF أن يتبع مقطع علامة JFIF APP0 مباشرةً علامة SOI. وفي حال استخدام مقطع علامة JFIF APP0 إضافي، فيجب أن يتبع مقطع علامة JFIF APP0 مباشرةً. [ 2 ] لذا، سيكون لملف JFIF البنية التالية:
| بنية ملف JFIF | ||
|---|---|---|
| شريحة | شفرة | وصف |
| SOI | FF D8 | بداية الصورة |
| JFIF-APP0 | FF E0 s1s2 4A 46 49 46 00 ... | انظر أدناه |
| JFXX-APP0 | FF E0 s1s2 4A 46 58 58 00 ... | اختياري، انظر أدناه |
| ... أجزاء علامات إضافية (على سبيل المثال SOF، DHT، COM) | ||
| نداء استغاثة | FF DA | بداية المسح |
| بيانات الصور المضغوطة | ||
| إبداء الاهتمام | FF D9 | نهاية الصورة |
مقطع علامة JFIF APP0
يتم تحديد معلمات الصورة في مقطع علامة JFIF APP0 الإلزامي. ويمكن تضمين صورة مصغرة غير مضغوطة اختيارياً.
| مقطع علامة JFIF APP0 | ||
|---|---|---|
| مجال | الحجم (بايت) | وصف |
| علامة APP0 | 2 | FF E0 |
| طول | 2 | طول القطعة باستثناء علامة APP0 |
| المعرف | 5 | 4A 46 49 46 00= "JFIF" في ASCII ، تنتهي ببايت فارغ |
| إصدار JFIF | 2 | البايت الأول للإصدار الرئيسي، والبايت الثاني للإصدار الفرعي ( 01 02على سبيل المثال، 1.02) |
| وحدات الكثافة | 1 | وحدات حقول كثافة البكسل التالية
|
| الكثافة | 2 | كثافة البكسل الأفقية. يجب ألا تكون صفرًا |
| الكثافة | 2 | كثافة البكسل الرأسية. يجب ألا تكون صفرًا |
| صورة مصغرة | 1 | عدد البكسلات الأفقية للصورة المصغرة RGB المضمنة التالية. قد يكون صفرًا |
| صورة مصغرة | 1 | عدد البكسلات الرأسية للصورة المصغرة RGB المضمنة التالية. قد يكون صفرًا |
| بيانات الصور المصغرة | 3 × ن | بيانات صور مصغرة نقطية غير مضغوطة بصيغة RGB ذات 24 بت (8 بت لكل قناة لونية) بالترتيب R0، G0، B0، ... Rn-1، Gn-1، Bn-1؛ حيث n = Xthumbnail × Ythumbnail |
مقطع علامة JFIF الممتد APP0
قد يلي مقطع علامة JFIF APP0 مباشرةً مقطع علامة JFIF امتداد APP0. هذا المقطع متاح فقط في إصدارات JFIF 1.02 وما فوق. يسمح هذا المقطع بتضمين صورة مصغرة بثلاثة تنسيقات مختلفة.
| مقطع علامة JFIF الممتد APP0 | ||
|---|---|---|
| مجال | الحجم (بايت) | وصف |
| علامة APP0 | 2 | FF E0 |
| طول | 2 | طول القطعة باستثناء علامة APP0 |
| المعرف | 5 | 4A 46 58 58 00= "JFXX" في ASCII ، تنتهي ببايت فارغ |
| تنسيق الصورة المصغرة | 1 | يحدد تنسيق البيانات المستخدم للصورة المصغرة المضمنة التالية:
|
| بيانات الصور المصغرة | عامل | يعتمد ذلك على تنسيق الصورة المصغرة، انظر أدناه |
تعتمد بيانات الصورة المصغرة على تنسيق الصورة المصغرة كما يلي:
| تم تخزين الصورة المصغرة باستخدام ترميز JPEG | ||
|---|---|---|
| مجال | الحجم (بايت) | وصف |
| SOI | 2 | FF D8 |
| عامل | يجب أن يكون بتنسيق JIF باستخدام YCbCr أو Y فقط، ويجب ألا يحتوي على مقاطع JFIF أو JFXX | |
| إبداء الاهتمام | 2 | FF D9 |
| يتم تخزين الصورة المصغرة باستخدام بايت واحد لكل بكسل | ||
|---|---|---|
| مجال | الحجم (بايت) | وصف |
| صورة مصغرة | 1 | عدد البكسلات الأفقية للصورة المصغرة المضمنة التالية. يجب ألا يكون صفرًا |
| صورة مصغرة | 1 | عدد البكسلات الرأسية للصورة المصغرة المضمنة التالية. يجب ألا يكون صفرًا |
| لوحة الصور المصغرة | 768 | 256 مدخلاً في لوحة الألوان، يحتوي كل منها على قيمة لون RGB ذات 24 بت |
| بيانات الصور المصغرة | ن | بايت واحد لكل بكسل يحتوي على فهرس اللون داخل لوحة الألوان، مع n = Xthumbnail × Ythumbnail |
| يتم تخزين الصورة المصغرة باستخدام ثلاثة بايتات لكل بكسل | ||
|---|---|---|
| مجال | الحجم (بايت) | وصف |
| صورة مصغرة | 1 | عدد البكسلات الأفقية للصورة المصغرة المضمنة التالية. يجب ألا يكون صفرًا |
| صورة مصغرة | 1 | عدد البكسلات الرأسية للصورة المصغرة المضمنة التالية. يجب ألا يكون صفرًا |
| بيانات الصور المصغرة | 3 × ن | بيانات صور مصغرة نقطية غير مضغوطة بصيغة RGB ذات 24 بت (8 بت لكل قناة لونية) بالترتيب R0، G0، B0، ... Rn-1، Gn-1، Bn-1؛ حيث n = Xthumbnail × Ythumbnail |
التوافق
يُعدّ تنسيق ملفات الصور القابل للتبادل (Exif) الأحدث مُشابهًا لتنسيق JFIF، إلا أن المعيارين غير متوافقين. والسبب في ذلك هو أن كلا المعيارين يُشترط أن يتبع مقطع التطبيق الخاص به (APP0 في JFIF، وAPP1 في Exif) علامة SOI مباشرةً. عمليًا، تُنتج العديد من البرامج والكاميرات الرقمية ملفات تتضمن كلا مقطعي التطبيق. لن يؤثر هذا على فك تشفير الصورة بالنسبة لمعظم برامج فك التشفير، ولكن قد لا تتعرف برامج تحليل JFIF أو Exif المصممة بشكل سيئ على الملف بشكل صحيح.
يتوافق تنسيق JFIF مع امتدادات "كتلة موارد المعلومات" (Information Resource Block) الخاصة بملفات JPEG في برنامج Adobe Photoshop ، ومع بيانات IPTC الوصفية ، حيث لا يستبعد JFIF أجزاء التطبيقات الأخرى، ولا يشترط أن تكون امتدادات Photoshop هي الأولى في الملف. مع ذلك، يحفظ Photoshop عادةً مخازن CMYK المؤقتة كصور "Adobe JPEG" رباعية المكونات غير متوافقة مع JFIF. ولأن هذه الملفات ليست في مساحة ألوان YCbCr، فإنها عادةً ما تكون غير قابلة للفك بواسطة متصفحات الويب وبرامج الإنترنت الأخرى.
تاريخ
تولى إريك هاميلتون من شركة سي-كيوب مايكروسيستمز قيادة تطوير وثيقة JFIF ، وتم التوصل إلى اتفاق بشأن النسخة الأولى في أواخر عام 1991 خلال اجتماع عُقد في مقر سي-كيوب، ضمّ نحو 40 ممثلاً عن شركات مختلفة في مجالات الحوسبة والاتصالات والتصوير. وبعد ذلك بفترة وجيزة، نُشرت نسخة مُعدّلة طفيفة - JFIF 1.01. [ 3 ] ولما يقرب من 20 عامًا، كانت أحدث نسخة متاحة هي الإصدار 1.02، الذي نُشر في 1 سبتمبر 1992. [ 2 ]
في عام ١٩٩٦، نصّت المواصفة RFC ٢٠٤٦ على أن تنسيق الصورة المستخدم لنقل صور JPEG عبر الإنترنت يجب أن يكون JFIF. ويجب ترميز نوع MIME "image/jpeg" بتنسيق JFIF. مع ذلك، عمليًا، تستطيع جميع برامج الإنترنت تقريبًا فك تشفير أي صورة JIF أساسية تستخدم مكونات Y أو YCbCr، سواءً كانت متوافقة مع JFIF أم لا.
مع مرور الوقت، أعيد هيكلة C-Cube (وتطورت في النهاية إلى Harmonic و LSI Logic و Magnum Semiconductor و Avago Technologies و Broadcom و GigOptix و GigPeak وما إلى ذلك)، وفقدت الاهتمام بالوثيقة، ولم يكن للمواصفات ناشر رسمي حتى تم تبنيها من قبل Ecma International ومجموعة خبراء التصوير الفوتوغرافي المشتركة ITU-T/ISO/IEC حوالي عام 2009 لتجنب ضياعها في التاريخ وتوفير طريقة للاستشهاد بها رسميًا في المنشورات القياسية وتحسين جودتها التحريرية. تم نشره بواسطة ECMA في عام 2009 كتقرير فني رقم 98 لتجنب فقدان السجل التاريخي، [ 3 ] وتم توحيده رسميًا بواسطة ITU-T في عام 2011 كتوصية T.871 [ 4 ] وبواسطة ISO/IEC في عام 2013 كمعيار ISO/IEC 10918-5، [ 5 ] تضمنت المنشورات الأحدث تحسينات تحريرية ولكن لم تكن هناك تغييرات فنية جوهرية.
انظر أيضاً
مراجع
- 1 2 "التوصية ITU-T T.81: تكنولوجيا المعلومات - الضغط الرقمي وتشفير الصور الثابتة ذات التدرج اللوني المستمر - المتطلبات والإرشادات" (ملف PDF) . ITU-T (المعروف سابقًا باسم CCITT) . 18 فبراير 1992. تاريخ الاطلاع: 15 يونيو 2015 .
- 1 2 هاميلتون، إريك (12 سبتمبر 1992). "تنسيق تبادل ملفات JPEG، الإصدار 1.02" (ملف PDF، 0.02 ميجابايت) . تم الاطلاع عليه بتاريخ 15 يونيو 2015 .
- 1 2 "تنسيق تبادل ملفات JPEG (JFIF)" . ecma-international.org . 2009. تم الاطلاع عليه في 15 يونيو 2015 .
- ↑ «التوصية ITU-T T.871: تكنولوجيا المعلومات - الضغط الرقمي وتشفير الصور الثابتة ذات التدرج اللوني المستمر: تنسيق تبادل ملفات JPEG (JFIF)» (ملف PDF) . ITU-T. 14 مايو 2011. تاريخ الاطلاع: 15 يونيو 2015 .
- ↑ "ISO/IEC 10918-5:2013: تكنولوجيا المعلومات - الضغط الرقمي وتشفير الصور الثابتة ذات التدرج اللوني المستمر: تنسيق تبادل ملفات JPEG (JFIF)" . المنظمة الدولية للمقاييس/اللجنة الكهروتقنية الدولية. 1 مايو 2013. تاريخ الاطلاع: 15 يونيو 2015 .
للمزيد من القراءة
الكتب
المعايير
- هاميلتون، إريك: تنسيق تبادل ملفات JPEG، الإصدار 1.02 (PDF، 0.02 ميجابايت) 1 سبتمبر 1992
- التوصية ITU-T T.871: تكنولوجيا المعلومات - الضغط الرقمي وتشفير الصور الثابتة ذات التدرج اللوني المستمر: تنسيق تبادل ملفات JPEG (JFIF) (ملف PDF وMicrosoft Word، 0.2 ميجابايت) تمت الموافقة عليها في 14 مايو 2011؛ نُشرت في 11 سبتمبر 2012
- التوصية ITU-T T.81: تكنولوجيا المعلومات - الضغط الرقمي وتشفير الصور الثابتة ذات التدرج اللوني المستمر - المتطلبات والإرشادات (ملف PDF وMicrosoft Word، 1.5 ميجابايت) تمت الموافقة عليها في 18 سبتمبر 1992؛ نُشرت في 14 أبريل 2004
- JPEG
- تنسيقات ملفات الرسومات
- التنسيقات المفتوحة
