مقدّمة
يحدِّد هذا المستند سلوك تنسيق ملف جديد يُشفِّر ملف صورة JPEG يحتوي على صورة خريطة اكتساب النطاق اللوغاريتمي. إنّ قارئ الكتب القديمة الذي لا يتوافق مع التنسيق الجديد يقرأ ويعرض الصورة التقليدية ذات النطاق الديناميكي المنخفض من ملف الصورة. إنّ قارئ الصور المتوافق مع هذا التنسيق يجمع بين الصورة الأساسية وخريطة الكسب ويعرض صورة ذات نطاق ديناميكي عالٍ على الشاشات المتوافقة.
يصف باقي هذا المستند طرق العمليات اللازمة لاستخدام هذا التنسيق. وعلى مستوى عالٍ، تكون دورة حياة الصورة التي تتوافق مع هذا التنسيق هي:
الترميز
- الحصول على ميزة إنشاء الخرائط
- زيادة ضغط الخريطة
- الحصول على ميزة إنشاء حاويات الخرائط
فك التشفير
الحافز
يهدف تنسيق الملف هذا إلى ترميز معلومات إضافية في ملفات صور SDR التي يمكن استخدامها مع تقنية العرض لإنشاء صور HDR المثلى في ملف واحد.
لكي يكون ذلك عمليًا، يجب أن يستوفي تنسيق الملف الشروط التالية:
- تكون متوافقة مع الأنظمة القديمة، بحيث يتم عرض صورة SDR التقليدية على أجهزة العرض البسيطة.
- عدم استهلاك مساحة إضافية كبيرة جدًا.
بالإضافة إلى ذلك، يجب أن تستوفي تقنية العرض الشروط التالية:
- لا يتطلب فك ترميزها معالجة مكثّفة.
- أن تكون قادرة على التكيّف مع أي نسبة بين نقاط العرض البيضاء في HDR وSDR، والتي يمكن أن تختلف اختلافًا كبيرًا بين الأجهزة، أو حتى بشكلٍ زمني على جهاز واحد
وأخيرًا، يجب أن تكون التقنية قادرة على تنفيذ جميع الإجراءات السابقة بدون:
- قصّ اللحظات البارزة
- تحطم الظلال.
- تغيير التباين المحلي أو ضغطه.
- تغيير العلاقات اللونية النسبية (بين الأجسام في المشهد)
التبعيات
في ما يلي مراجع معيارية لهذه المواصفات:
- Adobe XMP Specification Part 3: Storage in Files (ملحق 3 من مواصفات Adobe XMP: التخزين في الملفات)
- الجزء 1 من مواصفات ISO 16684-1:2019 XMP
- تنسيق ملف الوسائط الأساسي ISO/IEC 14496-12
- T.81 (09/92) ضغط الصور الثابتة ذات التدرج اللوني المستمر والترميز الرقمي لها
- مستند تقني بتنسيق CIPA DC-x 007-2009 لتنسيق الصور المتعددة
التعريفات
شاشة SDR
- شاشة عرض تقليدية، وغير مصممة لعرض المحتوى بنطاق عالي الديناميكية. وتنتج عادةً هذه الشاشات أعلى درجة سطوع اسمية تبلغ حوالي 400 قرص مضغوط/متر مكعب 2 أو أقل.
عرض النطاق العالي الديناميكية
- شاشة مصمّمة لعرض المحتوى بنطاق عالي الديناميكية وتُنتج هذه الشاشات عادةً درجة سطوع أعلى اسمية أكبر من مستوى سطوع الشاشة SDR، أي 800 قرص مضغوط/متر أو أكثر، وتكون عادةً نسبة التباين فيها أفضل من شاشات SDR.
الصورة الأساسية
- النسخة الأولى من صورة في ملف GContainer مع إرفاق ملفات وسائط ثانوية بها تحتوي الصورة الأساسية على البيانات الوصفية XMP في GContainer التي تحدّد ترتيب ملفات عناصر الوسائط الثانوية اللاحقة وخصائصها في حاوية الملفات.
صورة ثانوية
- ملفات الوسائط اللاحقة التي يتم إلحاقها بالصورة الأساسية في ملف GContainer.
ضغط النطاق
- في التصوير الفوتوغرافي، غالبًا ما تحتوي المشاهد الواقعية على نطاق ديناميكي أكبر مما يمكن أن تمثله شاشة SDR. هناك عمليات، مثل ضغط النطاق، الذي يُعرف أيضًا باسم ربط الدرجات اللونية المحلية، مطلوبة لتقليل النطاق الديناميكي لصورة معيّنة. يجب أن يتجنّب هذا التخفيض اقتصاص الأجزاء المميّزة أو تقليل التظليل، مع الحفاظ على التباين المحلي قدر الإمكان. تحاول تقليل حجم حواف الإضاءة الكبيرة في الصورة، والتي تساهم بشكل أكبر في التباين العام، مع محاولة الحفاظ على حجم حواف الإضاءة الصغيرة، والتي تشكّل التفاصيل. على الرغم من توفّر العديد من عمليات التنفيذ المختلفة، إلا أنّ هذه العملية هي إجراء عادي في معظم الكاميرات الرقمية الحديثة اليوم.
النقطة البيضاء لنطاق SDR
- الحد الأقصى للسطوع الخطي لمحتوى SDR على شاشة في نقطة زمنية معيّنة
النقطة البيضاء لميزة "النطاق العالي الديناميكية"
- الحد الأقصى للسطوع الخطي لمحتوى النطاق العالي الديناميكية (HDR) على شاشة في وقت معيّن وتكون هذه القيمة عادةً أعلى من نقطة الأبيض في SDR.
تعزيز الصوت
- النقطة البيضاء ذات النطاق العالي الديناميكية مقسومة على النقطة البيضاء لنطاق SDR.
الحد الأقصى للتحسين المرتبط بالمحتوى (
max_content_boost
في المعادلات)- وتتيح هذه القيمة لمنشئ المحتوى تقييد درجة سطوع الصورة عند عرضها على شاشة HDR، مقارنةً بعرض SDR.
- هذه القيمة ثابتة لصورة معيّنة. على سبيل المثال، إذا كانت القيمة هي أربعة، بالنسبة إلى أي بكسل معين، يجب أن يكون الإضاءة الخطية لعرض النطاق عالي الديناميكية المعروض 4 أضعاف الإضاءة الخطية لعرض SDR. من الناحية العملية، يعني هذا أنّ الأجزاء الأكثر سطوعًا من المشهد يمكن إظهارها بمعدّل يصل إلى 4 مرات أكثر سطوعًا.
- من الناحية العملية، تكون هذه القيمة عادةً أكبر من 1.0.
- يجب أن تكون دائمًا أكبر من أو تساوي الحد الأدنى لتحسين المحتوى.
الحد الأدنى لتعزيز المحتوى (
min_content_boost
في المعادلات)- تتيح هذه القيمة لصانع المحتوى الحدّ من مستوى قتامة الصورة عند عرضها على شاشة HDR مقارنةً بعرضها بتقنية SDR. وهذه القيمة ثابتة لصورة معيّنة.
- إذا كانت القيمة على سبيل المثال 0.5، فإن درجة الإضاءة الخطية لعرض النطاق عالي الديناميكية (HDR) يجب أن تكون (على الأقل) 0.5 مرة للإضاءة الخطية لعرض SDR.
- في العادة، تكون هذه القيمة مساوية لـ 1.0 أو أقل بقليل.
- تكون دائمًا قيمة أقل من أو مساوٍ لـ Max content Boost.
الحدّ الأقصى لتأثير الشبكة الإعلانية (
max_display_boost
في المعادلات)- الحد الأقصى للتحسين المتاح الذي توفّره الشاشة في وقت معيّن يمكن أن تتغيّر هذه القيمة بمرور الوقت استنادًا إلى إعدادات الجهاز وغيرها من عوامل ، مثل ظروف الإضاءة المحيطة أو عدد البكسلات الساطعة على الشاشة.
- على سبيل المثال، إذا كانت هذه القيمة هي 4.0، تكون الشاشة قادرة على عرض بكسل يكون أكثر سطوعًا بأربع مرات كحد أقصى من نقطة SDR البيضاء. تكون هذه القيمة دائمًا >= 1.0، لأنّ الشاشة يمكنها دائمًا عرض تنسيق HDR باللون الأبيض على الأقل لا يقل سطوع SDR الأبيض.
تحسين الأداء على الشبكة الإعلانية
- يساوي الحد الأدنى من الحد الأقصى لتحسين المحتوى والحد الأقصى لتحسين العرض. وتكون هذه القيمة أكبر من أو تساوي 1.0 دائمًا.
- على سبيل المثال، إذا كان الحدّ الأقصى لمضاعفة المحتوى هو 4.0 والحدّ الأقصى لمضاعفة العرض هو 3.0، تكون القيمة القصوى لتحسين العرض 3.0. تظهر وحدات البكسل بدرجة أكبر بمقدار 3 مرات من SDR، نظرًا لأن إمكانات العرض هي العامل المقيد.
- في مثال آخر، إذا كان الحد الأقصى لتحسين المحتوى هو 4.0 والحد الأقصى لتحسين العرض هو 5.0، سيكون تحسين العرض هو 4.0. تظهر وحدات البكسل بدرجة أكبر بمقدار 4 مرات من حجم SDR، لأن الغرض من المحتوى هو العامل الذي يحدّ من عرض المحتوى.
المعالجة المستهدَفة للمحتوى بتقنية النطاق العالي الديناميكية (HDR)
- العرض المثالي بتقنية HDR وفقًا لمنشئ المحتوى.
تحويل المحتوى إلى نطاق عالي الديناميكية (HDR)
- النسخة النهائية من HDR التي تظهر على الشاشة، بعد تكييف النسخة المستهدفة من HDR لتحسين الشاشة الحالي
الحصول على الخريطة (
recovery(x, y)
في المعادلات)- خريطة تشير إلى مقدار سطوع كل بكسل، في عرض SDR، لتحقيق عرض النطاق عالي الديناميكية المستهدف. يمكن أن تكون هذه الخريطة ذات قناة واحدة أو متعددة القنوات. تشير خريطة القنوات المتعددة إلى زيادة منفصلة لكل قناة من قنوات الألوان، مثل الأحمر والأخضر والأزرق. يوضح هذا المستند حالة الخريطة أحادية القناة.
clamp(x, a, b)
- تقييد القيمة x بالنطاق [a, b]
exp2(x)
- الأسس بالأساس 2: 2x
floor(x)
- تعرِض هذه الدالة أقرب عدد صحيح يساوي x أو أقل منه.
log2(x)
- اللوغاريتم ذي الأساس 2، log2(x)
pow(b, x)
- الرفع إلى أس: bx
XMP
- منصة البيانات الوصفية القابلة للتوسيع معيار يحدّد طريقة لتحويل البيانات الوصفية إلى حاوية صور، وهو محدّد في ISO 16684-1:2011(E) XMP Specification Part 1.
تنسيق الصور المتعدّدة
- تنسيق متعدد الصور هو تقنية طوّرتها رابطة منتجات التصوير والتصوير (CIPA) لتخزين عدة صور بترميز JPEG في ملف JPEG واحد.
- للمزيد من المعلومات، يمكنك الاطّلاع على التبعية ذات الصلة، المستند التقني الخاص بقانون حماية خصوصية الأطفال على الإنترنت (CIPA) DC-x 007-2009 بتنسيق متعدد الصور.
GContainer
- GContainer هي طريقة لتخزين صور متعددة في حاوية صور واحدة، حيث تُعدّ صورة واحدة هي الصورة الأساسية. وتعتبر أي صور إضافية إصدارات بديلة أو مساعدة. تُستخدَم البيانات الوصفية بتنسيق XMP للإشارة إلى توفّر أي صور إضافية وتحديد معناها. لمزيد من المعلومات، يُرجى الاطّلاع على قسم GContainer details.
ترميز
يصف هذا القسم كيفية ترميز ملف JPEG مطابق. يُرجى الرجوع إلى T.81 (09/92) Digital compression and coding of continuous-tone still images، في قسم "التبعيات"، للحصول على مزيد من المعلومات حول تنسيق JPEG.
الحصول على ميزة إنشاء الخرائط
عادةً ما تُنفّذ خطوط تصوير الكاميرا عملية ضغط النطاق لضغط بيانات سطوع النطاق الديناميكي العالي إلى النطاق الأدنى من شاشات SDR التقليدية. توفّر خريطة الكسب آلية لتخزين بيانات كافية لمحاولة استرداد بيانات الإضاءة الأصلية ذات النطاق الديناميكي العالي.
تفترض العمليات الحسابية التالية في هذا القسم حساب النقاط العائمة.
تصف الدوال التالية صورة SDR:
SDR'(x, y)
هي الصورة الأساسية غير الخطية والمكوَّنة من ثلاث قنوات (عادةً ما تكون بترميز غاما).SDR(x, y)
هي النسخة الخطية للصورة الأساسية ذات القنوات الثلاث، ويتم الحصول عليها من خلال التحويل إلى نسخة خطية من مساحة ألوان الصورة الأساسية. على سبيل المثال، من مساحة ألوان تتضمّن وظيفة نقل sRGB إلى مساحة ألوان خطية تحافظ على الألوان الأساسية sRGB.
يتم تحديد الدالة Ysdr(x, y)
على النطاق من 0.0 إلى 1.0، وهي
الإضاءة الخطية للصورة الأساسية في النطاق الديناميكي العادي:
Ysdr(x, y) = primary_color_profile_to_luminance(SDR(x, y))
تتوفّر تعريفات مشابهة لصورة النطاق العالي الديناميكية.
-
HDR'(x, y)
هي قناة غير خطية ثلاثية، أي صورة مُشفَّرة بتنسيق PQ أو HLG. HDR(x, y)
هي صورة HDR خطية بثلاث قنوات.
Yhdr(x, y)
هو الإضاءة في نقطة معيّنة من صورة النطاق العالي الديناميكية:
Yhdr(x, y) = primary_color_profile_to_luminance(HDR(x, y))
يتم تحديد Yhdr(x, y)
في النطاق من 0.0 إلى الحد الأقصى لمضاعفة المحتوى.
يجب أن تكون الصورتان SDR وHDR بدرجة الدقة نفسها. يحدد ملف تعريف الألوان لصورة SDR مساحة اللون لصورة HDR.
على سبيل المثال، إذا كانت الصورة الأساسية ذات النطاق العادي الديناميكية (SDR) تتضمّن ملفًا شخصيًا للألوان Display-P3، يتم تحديد صورة النطاق العالي الديناميكية (HDR) وفقًا للألوان الأساسية لهذا الملف الشخصي. وهذا يعني أن صورة النطاق العالي الديناميكية تحتوي أيضًا على الألوان الأساسية لـ Display-P3.
يتم احتساب خريطة الاكتساب من صورتَين خطّيتَين تشتملان على سطوع الصورة ذي النطاق العالي الديناميكية المطلوب، Yhdr(x, y)
، والصورة ذات النطاق العادي للقيمة Ysdr(x, y)
.
يتم تعريف دالة pixel_gain(x, y)
على أنّها النسبة بين دالة Yhdr(x, y)
ودالة Ysdr(x, y)
:
pixel_gain(x, y) = (Yhdr(x, y) + offset_hdr) / (Ysdr(x, y) + offset_sdr)
إنّ سلوك الدالة pixel_gain(x, y)
عندما يكونYsdr(x, y)
وoffset_sdr
كلاهما
صفرًا يعتمد على طريقة التنفيذ.
على سبيل المثال، يمكن أن تعالج عمليات التنفيذ الحالة التي يكون فيها كلّ من Ysdr(x, y)
وoffset_sdr
صفرًا من خلال تحديد pixel_gain(x, y)
على أنّه 1.0. بدلاً من ذلك،تجنّب عمليات التنفيذ أيضًا هذا السيناريو من خلال استخدام offset_sdr
غير صفري.
قد تختار عملية التنفيذ قيم offset_sdr
وoffset_hdr
.
خريطة التحصيل هي دالة عددية ترمّز pixel_gain(x, y)
في مساحة لوغاريتمية، بالنسبة إلى الحدّ الأقصى لتعزيز المحتوى والحد الأدنى لتعزيز المحتوى:
map_min_log2 = log2(min_content_boost)
map_max_log2 = log2(max_content_boost)
log_recovery(x, y) = (log2(pixel_gain(x, y)) - map_min_log2)
/ (map_max_log2 - map_min_log2)
clamped_recovery(x, y) = clamp(log_recovery(x, y), 0.0, 1.0)
recovery(x, y) = pow(clamped_recovery(x, y), map_gamma)
يكون سلوك الدالة recovery(x, y)
حيث تكون قيمة pixel_gain(x, y)
صفرًا
يتم تعريف التنفيذ، لأنّ log2(0)
غير معرَّفة.
map_gamma
هو رقم نقطة عائمة يجب أن يكون أكبر من 0.0 ويتم اختياره من خلال التنفيذ.
يتم تحديد قيمتي "الحد الأقصى لتعزيز المحتوى" و"الحد الأدنى لتحسين المحتوى" بطريقة التنفيذ، ويمكن أن يقرّرها صانع المحتوى بشكل عشوائي. يجب أن تكون قيمة الحد الأقصى لتحسين المحتوى أكبر من أو تساوي 1.0. يجب أن يكون الحد الأدنى لتحسين المحتوى في النطاق [0.0, 1.0].
تقتصر القيم في recovery(x, y)
على النطاق [0.0, 1.0].
يتم تخزين خريطة الاكتساب في صورة ثانوية بتنسيق JPEG، وبالتالي يجب ترميزها
باستخدام قيم أعداد صحيحة بحجم 8 بت وغير موقَّعة، وبالتالي في النطاق [0, 255]. تمثّل كل قيمة
قيمة recovery(x, y)
ويتم تخزينها في بكسل واحد من
الصورة الثانوية.
بالنسبة إلى تخزين الأعداد الصحيحة غير الموقَّعة بتنسيق 8 بت، يتم تحديد القيمة المرمّزة على النحو التالي:
encoded_recovery(x, y) = floor(recovery(x, y) * 255.0 + 0.5)
يتم احتساب دالة الترميز باستخدام النقطة العائمة ويتم تحويلها في نهاية الأمر إلى نتيجة عدد صحيح غير موقَّع مكوّن من 8 بتات من خلال التقريب كما هو موضَّح.
يؤدي ترميز UTF-8 إلى تمثيل عدد صحيح غير موقَّت بسعة 8 بت لقيم
recovery(x, y)
، من 0.0 إلى 1.0. يجب تخزين خريطة الكسب المشفرة في
عنصر صورة ثانوي كملف JPEG. يختار التنفيذ مقدار الضغط المراد استخدامه أثناء ترميز JPEG.
بعد تخزين خريطة الاكتساب في صورة ثانوية، يتم إلحاقها بصورة أساسية ببيانات وصفية لكل من MPF وGContainer XMP. يجب أن يحتوي دليل GContainer الخاص بالصورة الأساسية على عنصر لصورة خريطة الكسب.
يتم تحديد دقة خريطة الكسب المخزّنة من خلال التنفيذ ويمكن أن تكون مختلفة عن دقة الصورة الأساسية. في حالة تغيير دقة خريطة اكتساب المستخدمين إلى دقة مختلفة عن الصورة الأساسية للتخزين، يجب أن تكون طريقة أخذ العينات ثنائية الخط أو أفضل، وأن يتم تحديد التنفيذ.
يجب أن يتطابق اتجاه خريطة الاكتساب مع اتجاه الصورة الأساسية. إن توفر، لا يتم استخدام أي بيانات وصفية للاتجاه في صورة خريطة الحصول على البيانات المخزنة، مثل EXIF، لا يتم استخدامها.
في حال توفُّرها، لن يتم استخدام ملف تعريف الألوان الخاص بخريطة الاكتساب.
الحصول على حاوية الخريطة
الملف الشخصي للألوان
يجب الإشارة إلى ملف تعريف لون الصورة عن طريق ملف ICC الشخصي للصورة الأساسية.
سمات XMP
تحتوي الصورة الأساسية على بيانات وصفية بتنسيق XMP لتحديد صورتَين على الأقل تتضمّنان معلومات إضافية دلالية لتنسيق خريطة زيادة النطاق الديناميكي العالي (HDR).
تحتوي الأقسام الفرعية التالية على تفاصيل خاصة بهذا التنسيق. ويتم تحديد معلومات إضافية بشأن المطابقة العامة مع GContainer في القسم تفاصيل GContainer.
يتم تخزين قيم السمات الموضحة في الجداول التالية كقيم XMP بسيطة لأنواع قيم XMP الأساسية المحددة.
القيم الدلالية للعناصر
تحدِّد السمة Item:Semantic
المعنى الخاص بالتطبيق
لكل عنصر وسائط في دليل الحاوية.
القيمة | الوصف |
---|---|
Primary | يشير إلى أنّ عنصر الوسائط هو الصورة الأساسية الجاهزة للعرض في الحاوية. يجب أن يحتوي الدليل على عنصر "أساسي" واحد. |
GainMap | يشير إلى أن عنصر الوسائط هو خريطة اكتساب. قد يحتوي الدليل على عنصر "WinMap" واحد كحد أقصى. |
البيانات الوصفية لخريطة زيادة نطاق الديناميكية العالي (HDR)
تُشفِّر البيانات الوصفية لخريطة الكسب معلومات عن كيفية تفسير خريطة الكسب وتطبيقها لإنشاء تمثيل HDR للصورة الأساسية.
عنوان URL الخاص بمساحة اسم XMP لإضافات XMP للبيانات الوصفية لخريطة المكاسب هو
http://ns.adobe.com/hdr-gain-map/1.0/
. بادئة مساحة الاسم التلقائية هي
hdrgm
.
يتم تخزين هذه البيانات الوصفية في حزمة XMP لصورة اكتساب الخريطة ويجب أن تظهر الخصائص التالية في ملف rdf:Description
الخاص بخريطة الاكتساب في XMP:
الاسم | النوع | الوصف |
---|---|---|
hdrgm:الإصدار | نص | نسخة تنسيق خريطة الاكتساب قيد الاستخدام. هذا الإصدار هو "1.0". Required. |
hdrgm:BaseRenditionIsHDR | قيمة منطقية | يشير إلى النطاق الديناميكي للصورة الأساسية. يشير الخيار "خطأ" إلى أنّ الصورة الأساسية هي SDR ويمكن دمج خريطة الكسب معها لإنتاج صورة بتقنية HDR. يشير الخيار "صحيح" إلى أنّ الصورة الأساسية هي بتقنية HDR، وقد يتم دمج خريطة الكسب معها لإنشاء نسخة بتقنية SDR. يجب أن تكون القيمة "False". اختيارية، والقيمة التلقائية هي "خطأ". |
hdrgm:GainMapMin | مصفوفة حقيقية أو مرتّبة من الريال | تخزِّن قيم map_min_log2 . وهذا هو
log2 من الحد الأدنى لمقدار تعزيز المحتوى، وهو الحد الأدنى المسموح به
للإضاءة الخطية لعرض النطاق العالي الديناميكية المستهدَف مقارنةً بعرض صورة SDR (مقسّمة على) على بكسل معيّن. يمكن أن يكون عددًا حقيقيًا واحدًا أو
مصفوفة مرتبة من الأعداد الحقيقية. وعند ترتيب مصفوفة من قيم "القيم الواقعية"، قد تحتوي على عنصر
واحد ينطبق على جميع القنوات أو ثلاثة عناصر لقنوات الأحمر والأخضر والأزرق
على التوالي. ويجب أن تكون أقل من أو تساوي
hdrgm:GainMapMax . اختياري، القيمة التلقائية هي 0.0 |
hdrgm:كسبَانMapMax | مصفوفة حقيقية أو مرتّبة من الريال | تخزِّن قيم map_max_log2 . هذا هو
log2 من الحد الأقصى لتحسين المحتوى، وهو الحد الأقصى المسموح به لنسبة
الإضاءة الخطية لعرض النطاق العالي الديناميكية المستهدف مقارنةً (مقسومًا
عليه) بنسبة صورة النطاق العادي الديناميكية، في بكسل معيّن. يمكن أن يكون عددًا حقيقيًا واحدًا أو
مصفوفة مرتبة من الأعداد الحقيقية. عندما تكون مصفوفة مرتبة من Reals، قد تحتوي على
عنصر واحد ينطبق على جميع القنوات أو ثلاثة عناصر للقنوات "الأحمر" و"الأخضر" و
و"الأزرق" على التوالي. يجب أن تكون القيمة أكبر من أو تساوي
hdrgm:GainMapMin . مَعلمة مطلوبة. |
تنسيق hdrgm:غاما | صفيف حقيقي أو مرتب من القيم الحقيقية | تخزِّن قيم map_gamma . هذا هو غاما الذي يجب
تطبيقه على قيم الخريطة المخزنة. قد تكون قيمة واحدة حقيقية أو مصفوفة مرتبة من الريال. عندما تكون مصفوفة من القيم الفعلية مرتبة، قد تحتوي على عنصر واحد ينطبق
على جميع القنوات أو ثلاثة عناصر للقنوات "الأحمر" و"الأخضر" و"الأزرق"
على التوالي. يجب أن تكون القيمة أكبر من 0.0. اختياري، القيمة التلقائية هي 1.0. |
hdrgm:OffsetSDR | مصفوفة حقيقية أو مرتّبة من الريال | تخزِّن قيم offset_sdr . هذا هو المبلغ المُضاف
الذي يتم تطبيقه على قيم وحدات البكسل ذات النطاق الديناميكي العادي أثناء إنشاء خريطة الكسب وتطبيقها.
قد تكون قيمة واحدة حقيقية، أو مصفوفة مرتبة من الريال. عندما تكون مصفوفة مرتبة من
صور Real، قد تحتوي على عنصر واحد ينطبق على جميع القنوات أو ثلاثة عناصر
للقنوات الحمراء والخضراء والزرقاء على التوالي. يجب أن تكون القيمة 0.0 أو أكبر.
اختيارية؛ القيمة التلقائية هي 0.015625 (1/64). |
hdrgm:OffsetHDR | صفيف حقيقي أو مرتب من القيم الحقيقية | تخزِّن قيم offset_hdr . هذا هو المبلغ المُضاف
الذي يتم تطبيقه على قيم وحدات بكسل HDR أثناء إنشاء خريطة الكسب وتطبيقها.
قد تكون قيمة واحدة حقيقية، أو مصفوفة مرتبة من الريال. عندما تكون مصفوفة مرتبة من
صور Real، قد تحتوي على عنصر واحد ينطبق على جميع القنوات أو ثلاثة عناصر
للقنوات الحمراء والخضراء والزرقاء على التوالي. يجب أن تكون القيمة 0.0 أو أكبر.
اختيارية؛ القيمة التلقائية هي 0.015625 (1/64). |
hdrgm:HDRCapacityMin | حقيقي | تخزِّن قيمة hdr_capacity_min . وهذا يمثّل
log2 من الحد الأدنى لقيمة زيادة العرض التي يتم تطبيق الخريطة عليها
على الإطلاق. تؤثّر هذه القيمة أيضًا في مقدار تطبيق خريطة المكاسب استنادًا
إلى زيادة العرض. يجب أن تكون القيمة 0.0 أو أكبر. اختيارية؛ القيمة التلقائية
هي 0.0. |
hdrgm:نطاق HDRCapacityMax | حقيقي | تخزِّن قيمة hdr_capacity_max . تمثّل هذه السمة log2 من الحد الأقصى لقيمة تعزيز العرض التي تم تطبيق الخريطة عليها بالكامل. تؤثّر هذه القيمة أيضًا في مقدار تطبيق خريطة المكاسب
استنادًا إلى زيادة العرض. ويجب أن تكون القيم أكبر من
hdrgm:HDRCapacityMin . مَعلمة مطلوبة. |
مثال على ملف XMP لخريطة الكسب
يحتوي المثال التالي لحزمة XMP صالحة لخريطة الربح على بيانات وصفية مأخوذة من ملف النموذج الموضح في قسم المقدمة.
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.5.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:hdrgm="http://ns.adobe.com/hdr-gain-map/1.0/" hdrgm:Version="1.0" hdrgm:GainMapMin="-0.57609993" hdrgm:GainMapMax="4.7090998" hdrgm:Gamma="1" hdrgm:OffsetSDR="0.015625" hdrgm:OffsetHDR="0.015625" hdrgm:HDRCapacityMin="0" hdrgm:HDRCapacityMax="4.7090998" hdrgm:BaseRenditionIsHDR="False"/> </rdf:RDF> </x:xmpmeta>
تخزين MPF لخريطة التحصيل
يجب تخزين صورة خريطة الاكتساب كصورة إضافية على النحو المحدّد في CIPA DC-x 007-2009 بتنسيق متعدد الصور، كما هو موضّح في قسم التبعيات.
فك الترميز
يصف هذا القسم كيفية فك ترميز خريطة الاكتساب من ملف JPEG مطابق.
إشارة إلى التنسيق
يمكن التعرّف على ملف JPEG المطابِق لهذا التنسيق من خلال توفُّر hdrgm:Version="1.0"
في حزمة XMP الخاصة بالصورة الأساسية، حيث يشير hdrgm
إلى معرّف الموارد المنتظم (URI) لمساحة الاسم http://ns.adobe.com/hdr-gain-map/1.0/
.
تحديد موقع صورة خريطة المكاسب
لمعرفة تفاصيل حول تحليل الصورة وفك ترميزها، يُرجى الاطّلاع على قسم تفاصيل GContainer
التالي. يُستخدَم العنصر الدلالي "GainMap" ضمن ملف XMP
rdf:Directory
للإشارة إلى موقع صورة خريطة الزيادة.
بدلاً من ذلك، يتم استخدام فهرس IFD لملف MPF وملف XMP للصور الممسوحة ضوئيًا لتحديد
موقع خريطة الكسب.
التعامل مع البيانات الوصفية غير الصالحة
يتم اعتبار البيانات الوصفية غير صالحة في حال عدم توفّر حقل مطلوب أو في حال كان هناك أي حقل يتضمّن قيمة غير صالحة. قد تكون القيمة غير صالحة لأنّه لا يمكن تحليلها إلى النوع المحدّد أو لأنّها خارج النطاق المتوقّع.
في حال العثور على بيانات وصفية غير صالحة، يجب تجاهل خريطة الاكتساب وعرض صورة SDR.
الشاشة
قد يتم عرض الملفات التي تم ترميزها بتنسيق خريطة زيادة النطاق العالي الديناميكية (HDR) على إما شاشات النطاق العادي الديناميكية (SDR) التقليدية أو شاشات النطاق العالي الديناميكية (HDR) القادرة على إخراج سطوع أعلى.
استخدِم خريطة الكسب لإنشاء نسخة HDR معدَّلة.
تفترض العمليات الحسابية التالية في هذا القسم حساب النقاط العائمة.
encoded_recovery(x, y)
هي قيمة عدد صحيح أحادية القناة مكونة من 8 بت وغير موقَّعة من صورة خريطة الاكتساب.
إذا كانت خريطة الكسب ذات درجة دقة مختلفة عن الصورة الأساسية، يتم تحديد
encoded_recovery(x, y)
بدلاً من ذلك من خلال أخذ عيّنات تمت فلترتها من
صورة خريطة الكسب للإحداثيتين x وy على نطاق عرض وارتفاع الصورة الأساسية،
على التوالي. يجب أن تكون طريقة التصفية ثنائية الخط أو أفضل وأن يتم تحديد التنفيذ.
يتم تحديد map_gamma
من خلال حقل البيانات الوصفية hdrgm:Gamma
.
log_recovery(x, y)
هو اكتساب بكسل النقطة العائمة الذي تمت تسويته في أي مساحة لوغاريتمية:
recovery(x, y) = encoded_recovery(x, y) / 255.0
log_recovery(x, y) = pow(recovery(x, y), 1.0 / map_gamma)
"الحدّ الأقصى لتحسين العرض" هو قيمة نقطة عائمة عددية يتم تحديدها على أنّها النسبة بين النقطة البيضاء الحالية للنطاق العالي الديناميكية ومقسمة على النقطة البيضاء الحالية لنطاق SDR. يوفّر نظام العرض هذه القيمة ويمكن أن تتغيّر بمرور الوقت.
يتم تحديد hdr_capacity_max
من خلال حقل البيانات الوصفية hdrgm:HDRCapacityMax
.
يتم تحديد hdr_capacity_min
من خلال حقل البيانات الوصفية hdrgm:HDRCapacityMin
.
يتم تحديد weight_factor
على النحو التالي عندما تكون قيمة hdrgm:BaseRenditionIsHDR
"False":
unclamped_weight_factor = (log2(max_display_boost) - hdr_capacity_min)
/ (hdr_capacity_max - hdr_capacity_min)
weight_factor = clamp(unclamped_weight_factor, 0.0, 1.0)
عندما تكون قيمة hdrgm:BaseRenditionIsHDR
مضبوطة على "صحيح"، تكون المعادلة الثانية بدلاً منها:
weight_factor = 1.0 - clamp(unclamped_weight_factor, 0.0, 1.0)
يتم تحديد gain_map_max
من خلال حقل البيانات الوصفية hdrgm:GainMapMax
.
يتم تحديد gain_map_min
من خلال حقل البيانات الوصفية hdrgm:GainMapMin
.
يتم تحديد offset_sdr
من خلال حقل البيانات الوصفية hdrgm:OffsetSDR
. يتم تحديد offset_hdr
حسب حقل البيانات الوصفية hdrgm:OffsetHDR
.
يمكن احتساب التحويل الخطي المُعدّل لمحتوى HDR على النحو التالي:
log_boost(x, y) = gain_map_min * (1.0f - log_recovery(x, y))
+ gain_map_max * log_recovery(x, y)
HDR(x, y) = (SDR(x, y) + offset_sdr) * exp2(log_boost(x, y) * weight_factor)
- offset_hdr
وإذا لزم الأمر، قد يتم تنفيذ تحويل على HDR(x, y)
لوضع البيانات في المساحة التي تتوقعها الشاشة. يجب أن تكون أي من هذه التحويلات
صحيحة من حيث اللون.
تفاصيل GContainer
يحدّد هذا القسم متطلبات إضافية لكي يتوافق هذا التنسيق مع البيانات الوصفية بتنسيق GContainer XML. تظهر البيانات الوصفية على نحو تسلسلي وفقًا لمواصفات ISO 166841:2011(E) XMP الجزء 1، ويتم تضمينها داخل ملف الصورة الأساسي كما هو موضّح في الجزء 3 من مواصفات Adobe XMP الجزء 3 التخزين في الملفات. يحتوي ملف الصورة الأساسي على العناصر التالية، بتنسيق RDF/XML
متطلبات حِزم XMP
ستتضمن حزمة XMP امتداد XMP للبيانات الوصفية لخريطة الاكتساب عبر معرف الموارد المنتظم (URI) لمساحة الاسم http://ns.adobe.com/hdr-gain-map/1.0/
. البادئة التلقائية لنطاق الاسم
هي hdrgm
.
تُعرِّف حزمة XMP hdrgm:Version="1.0"
.
عنصر الحاوية
مساحة اسم XMP لإضافات XMP في GContainer هي
http://ns.google.com/photos/1.0/container/
. بادئة مساحة الاسم التلقائية هي
Container
.
وتتضمن الصورة الأساسية عنصر Container:Directory
في البيانات الوصفية لـ XMP يحدّد ترتيب ملف الوسائط التالي وخصائصه في حاوية الملف. يحتوي كل ملف في الحاوية على عنصر وسائط مقابل في Container:Directory
. يصف عنصر الوسائط الموقع في حاوية الملفات والخصائص الأساسية لكل ملف مُدمَج.
يتم ترميز عنصر الحاوية في البيانات الوصفية XMP للصورة الأساسية ويحدد directory of media items in the container. يجب أن تكون عناصر الوسائط في ملف الحاوية بالترتيب نفسه لعناصر ملف الوسائط في الدليل، ويجب أن تكون مضغوطة بإحكام.
يمكن أن يحتوي الدليل على عنصر صورة "أساسي" واحد فقط، ويجب أن يكون هو العنصر الأول في الدليل.
اسم العنصر | النوع | الوصف |
---|---|---|
الحاوية:الدليل | صفيف من البنى مرتبة | مصفوفة مرتبة من البنى التي تحتوي كلٌّ منها على بنية Container:Item
التي تحدّد تنسيق الحاوية ومحتوياتها |
عنصر العنصر
تصف عناصر العنصر كيفية استخدام التطبيق لكل عنصر من عناصر الوسائط.
عنوان URL الخاص بمساحة اسم XMP لإضافات XMP الخاصة بعناصر GContainer هو
http://ns.google.com/photos/1.0/container/item/
. البادئة التلقائية لمساحة الاسم
هي Item
.
يجب أن يكون عنصر الوسائط الأول هو الصورة الأساسية. يجب أن تحدّد Item:Semantic
= "Primary"
وItem:Mime
مدرَجين في
قيم أنواع MIME للعناصر.
يتم تحديد طول عنصر الصورة الأساسي من خلال تحليل الصورة الأساسية استنادًا إلى نوع MIME بدءًا من بداية حاوية الملف.
يمكن أن تحتوي عناصر الوسائط على سمة Item:Padding
تحدد مساحة متروكة إضافية بين نهاية عنصر الوسائط وبداية عنصر الوسائط التالي. عند ظهور العنصرContainer:Directory
، يشيرItem:Padding
إلى المساحة الفارغة بين نهاية العنصر ونهايةملف.
يجب أن يحتوي كل عنصر وسائط على سمتَي النوع Item:Mime
وItem:Semantic
.
يجب أن تحتوي عناصر وسائط الصور الثانوية على سمات Item:Length
.
يمكن لعناصر الوسائط المتسلسلة مشاركة بيانات الموارد داخل حاوية الملف. يحدّد
عنصر الوسائط الأول موقع المورد في حاوية الملف،
ويتم ضبط السمة Item:Length
على القيمة 0 لملفات الوسائط المشتركة اللاحقة. في حال كانت بيانات المورد هي نفسها حاوية، يمكن استخدام Item:URI
لتحديد موقع بيانات عنصر الوسائط داخل المورد.
يتم تحديد موقع موارد عناصر الوسائط في الحاوية من خلال جمع
طول ترميز الصورة الأساسي وقيم Item:Length
الخاصة
بموارد عناصر الوسائط الثانوية السابقة وجميع قيم Item:Padding
السابقة. يُعتبَر أنّ القيمة Item:Padding
هي 0 في موارد عناصر الوسائط التي لا تحدد قيمتها.
اسم السمة | النوع | الوصف |
---|---|---|
العنصر:ميمي | نص | سلسلة بسيطة تشير إلى نوع MIME لعنصر الوسائط في الحاوية. للاطّلاع على تعريف، راجِع قسم "قيم أنواع MIME للعناصر". Required. |
العنصر:دلالي | نص | سلسلة بسيطة تشير إلى المعنى الخاص بالتطبيق لعنصر الوسائط للحصول على تعريف، يمكنك الاطّلاع على قسم "القيم الدلالية للسلعة". Required. |
العنصر: الطول | عدد صحيح | سلسلة بسيطة تحتوي على عدد صحيح موجب بالبايت من العنصر. يشير الطول 0 إلى أنّه تمت مشاركة مورد عنصر الوسائط مع عنصر الوسائط السابق. مطلوب لملفات الوسائط الثانوية. اختيارية لعنصر وسائط الصورة الأساسي. |
السلعة:التصنيف | نص | سلسلة محدّدة من التنفيذ تُستخدَم لإزالة الغموض عن عناصر
السلع المتعددة التي تحمل القيمة نفسها لسمة Item:Semantic . اختياري: |
العنصر:مساحة متروكة | عدد صحيح | سلسلة تحتوي على عدد صحيح موجب بالبايت من المساحة المتروكة الإضافية بين نهاية عنصر الوسائط وبداية عنصر الوسائط التالي، أو نهاية الملف عند استخدامها على آخر عنصر وسائط في Container:Directory . يتم افتراض القيمة 0 في حال عدم توفّرها.
اختياري |
العنصر:URI | نص | سلسلة عنوان URL متوافقة مع القسم 8.11.9 من ISO/IEC 14496-12، تحتوي على عنوان URL النسبي لبيانات الوسائط داخل مورد عنصر الوسائط القيمة التلقائية هي مصدر الصورة الأساسي. اختياري لأنواع MIME لتنسيق ملف الوسائط الأساسي وفقًا لمعيار ISO/IEC 14496-12 ولا يجوز استخدامها في الحالات الأخرى. |
قيم أنواع MIME للعناصر
تحدد السمة Item:Mime
نوع MIME لكل بيانات عنصر وسائط.
القيمة | الوصف |
---|---|
صورة/jpeg | صورة بتنسيق JPEG |
مثال على GContainer XMP
يحتوي المثال التالي لحزمة XMP صالحة من GContainer على بيانات وصفية مأخوذة من مثال الملف الموضّح في قسم المقدّمة.
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.1.2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description xmlns:Container="http://ns.google.com/photos/1.0/container/" xmlns:Item="http://ns.google.com/photos/1.0/container/item/" xmlns:hdrgm="http://ns.adobe.com/hdr-gain-map/1.0/" hdrgm:Version="1.0"> <Container:Directory> <rdf:Seq> <rdf:li rdf:parseType="Resource"> <Container:Item Item:Semantic="Primary" Item:Mime="image/jpeg"/> </rdf:li> <rdf:li rdf:parseType="Resource"> <Container:Item Item:Semantic="GainMap" Item:Mime="image/jpeg" Item:Length="66171"/> </rdf:li> </rdf:Seq> </Container:Directory> </rdf:Description> </rdf:RDF> </x:xmpmeta>
التوافق مع معيار ISO 21496-1
يقدّم معيار ISO 21496-1 آلية بديلة لتغليف ترميز البيانات الوصفية لخريطة الكسب في ملف صورة. يمكنك ترميز كل من البيانات الوصفية ذات تنسيق HDR الفائق والبيانات الوصفية وفقًا لمعيار ISO 21496-1 في ملف JPEG واحد باستخدام صورة واحدة في الملف.
لتحقيق أكبر قدر من التوافق على عدّة منصات، يجب أن تتيح عمليات التنفيذ والتطبيقات في Android التي تنفِّذ ترميزًا أو فك ترميز ملفات JPEG باستخدام خرائط اكتساب التشفير وفك الترميز لكل من البيانات الوصفية Ultra HDR v1 وISO 21496-1. أثناء عملية الترميز، يجب أن يُشفِّر التطبيق أو عملية التنفيذ كلا تنسيقَي البيانات الوصفية. إذا كان كلا النوعَين من البيانات الوصفية متوفّرَين أثناء عملية فك التشفير، يجب أن يفضّل التطبيق أو عملية التنفيذ استخدام البيانات الوصفية وفقًا لمعيار ISO 21496-1.
سجل التغيير
يحتوي هذا القسم على معلومات حول التغييرات بين إصدارات هذه المواصفة.
v1.1
جميع التغييرات في هذا الإصدار من مواصفات دقة HDR الفائقة هي معلومات ومعلومات عن التوافق مع ISO 21496-1. وليس هناك أي تغييرات في تنسيق الملف الفعلي.
- أضِف قسم التوافق مع معيار ISO 21496-1.
الإصدار 1.0
نشر مواصفات دقة HDR الفائقة الأولية