مقدّمة
يحدد هذا المستند سلوك تنسيق ملف جديد يقوم بترميز صورة خريطة اكتساب النطاق اللوغاريتمي في ملف صورة JPEG. يمكن لأجهزة قراءة قديمة لا تدعم التنسيق الجديد قراءة وعرض الصورة التقليدية ذات النطاق الديناميكي المنخفض من ملف الصورة. إنّ قارئ الصور المتوافق مع هذا التنسيق يجمع بين الصورة الأساسية وخريطة الكسب ويعرض صورة ذات نطاق ديناميكي عالٍ على الشاشات المتوافقة.
يصف باقي هذا المستند طرق العمليات اللازمة لاستخدام هذا التنسيق. بشكل عام، تشمل رحلة أي صورة متوافقة مع هذا التنسيق ما يلي:
الترميز
- الحصول على إنشاء الخرائط
- الحصول على ضغط للخريطة
- الحصول على إنشاء حاويات الخريطة
فك التشفير
الحافز
يهدف تنسيق الملف هذا إلى ترميز معلومات إضافية في ملفات صور SDR التي يمكن استخدامها مع تقنية العرض لإنشاء صور HDR المثلى في ملف واحد.
لكي يكون ذلك عمليًا، يجب أن يستوفي تنسيق الملف الشروط التالية:
- أن تكون متوافقة مع الإصدارات القديمة، بحيث يتم عرض الصورة التقليدية بنطاق ديناميكي عادي (SDR) على المشاهدين الذين لا يستخدمون تقنية HDR
- عدم استهلاك مساحة إضافية كبيرة جدًا.
بالإضافة إلى ذلك، يجب أن تستوفي تقنية العرض الشروط التالية:
- لا تتطلّب معالجة مكثفة لفك التشفير
- القدرة على التكيّف مع أي نسبة بين النقاط البيضاء لإطار HDR أو SDR في العرض، وقد تختلف هذه النسبة بشكل كبير بين الأجهزة، أو بشكل مؤقت على جهاز واحد.
وأخيرًا، يجب أن يكون الأسلوب قادرًا على تنفيذ جميع الإجراءات السابقة دون:
- اقتصاص اللحظات المميّزة
- تصغير الظل
- تغيير التباين المحلي أو ضغطه
- تغيير العلاقات اللونية النسبية (بين الأجسام في المشهد)
التبعيات
في ما يلي المراجع المعيارية لهذه المواصفات:
- Adobe XMP Specification Part 3: Storage in Files (ملحق 3 من مواصفات Adobe XMP: التخزين في الملفات)
- ISO 16684-1:2019 XMP Specification Part 1
- تنسيق ملف الوسائط الأساسي ISO/IEC 14496-12
- T.81 (09/92) ضغط الصور الثابتة ذات التدرج اللوني المستمر والترميز الرقمي لها
- المستند الفني لتنسيق الصور المتعدّدة CIPA DC-x 007-2009
التعريفات
شاشة SDR
- شاشة عادية غير مصمّمة لعرض محتوى بتقنية النطاق العالي الديناميكية (HDR) تُنتج هذه الشاشة عادةً ذروة سطوع اسمية تبلغ حوالي 400 cd/m2 أو أقل.
شاشة بتقنية النطاق العالي الديناميكية
- شاشة مصمَّمة للمحتوى بتقنية HDR وتُنتج هذه الشاشات عادةً درجة سطوع أعلى اسمية أكبر من مستوى سطوع الشاشة SDR، أي 800 قرص مضغوط/متر أو أكثر، وتكون عادةً نسبة التباين فيها أفضل من شاشات SDR.
الصورة الأساسية
- النسخة الأولى من صورة في ملف GContainer مع إرفاق ملفات وسائط ثانوية بها تحتوي الصورة الأساسية على البيانات الوصفية XMP في GContainer التي تحدّد ترتيب ملفات عناصر الوسائط الثانوية اللاحقة وخصائصها في حاوية الملفات.
الصورة الثانوية
- ملفات عناصر الوسائط اللاحقة التي يتم إلحاقها بالصورة الأساسية في ملف GContainer
ضغط النطاق
- في التصوير الفوتوغرافي، غالبًا ما تحتوي المشاهد الواقعية على نطاق ديناميكي أكبر مما يمكن أن تمثله شاشة SDR. هناك عمليات، مثل ضغط النطاق، الذي يُعرف أيضًا باسم ربط الدرجات اللونية المحلية، مطلوبة لتقليل النطاق الديناميكي لصورة معيّنة. يجب أن يتجنّب هذا التخفيض اقتصاص الأجزاء المميّزة أو تقليل التظليل، مع الحفاظ على التباين المحلي قدر الإمكان. تحاول تقليل حجم حواف الإضاءة الكبيرة في الصورة، والتي تساهم بشكل أكبر في التباين العام، مع محاولة الحفاظ على حجم حواف الإضاءة الصغيرة، والتي تشكّل التفاصيل. على الرغم من توفّر العديد من عمليات التنفيذ المختلفة، إلا أنّ هذه العملية هي إجراء عادي في معظم الكاميرات الرقمية الحديثة اليوم.
النقطة البيضاء في SDR
- الحد الأقصى للإضاءة الخطية لمحتوى SDR على شاشة في وقت معين.
النقطة البيضاء لميزة "النطاق العالي الديناميكية"
- الحدّ الأقصى للإضاءة الخطية لمحتوى HDR على الشاشة في وقت محدّد وتكون هذه القيمة عادةً أعلى من نقطة الأبيض في 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_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، اللوغاريتم2(x)
pow(b, x)
- الأُس؛ bx.
تقنية XMP
- النظام الأساسي القابل للتوسع للبيانات الوصفية يشير ذلك المصطلح إلى معيار يحدّد طريقة لترميز البيانات الوصفية في حاوية صورة، وفقًا لمواصفات ISO 16684-1:2011(E) XMP الجزء 1.
تنسيق متعدد الصور
- تنسيق "صور متعددة" هو تقنية تم تطويرها من قِبل جمعية Camera and Imaging Products Association (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.
يتم احتساب خريطة الكسب من صورتَين خطيتين تحتويان على سطوع صورة HDR المطلوبة، 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 الخاص بالصورة الأساسية على عنصر لصورة خريطة الكسب.
تكون دقة خريطة الاكتساب المخزنة محددة التنفيذ ويمكن أن تختلف عن درجة دقة الصورة الأساسية. في حال تم تكبير Gain Map إلى درجة دقة مختلفة عن الصورة الأساسية للتخزين، يجب أن تكون طريقة أخذ العينات ثنائية الخطوط أو أفضل، ويتم تحديدها حسب التنفيذ.
يجب أن يتطابق اتجاه خريطة الاكتساب مع اتجاه الصورة الأساسية. إذا كانت ملفّات EXIF متاحة، لن يتم استخدام أي بيانات وصفية عن الاتجاه في صورة خريطة الكسب المخزّنة.
لا يتم استخدام الملف الشخصي للّون في خريطة الكسب، في حال توفّره.
الحصول على حاوية الخريطة
الملف الشخصي للألوان
يجب الإشارة إلى الملف الشخصي للألوان في الصورة من خلال ملف ICC الشخصي للصورة الأساسية.
سمات XMP
تحتوي الصورة الأساسية على بيانات وصفية بتنسيق XMP لتحديد صورتَين على الأقل تتضمّنان معلومات إضافية دلالية لتنسيق خريطة زيادة النطاق الديناميكي العالي (HDR).
تحتوي الأقسام الفرعية التالية على تفاصيل خاصة بهذا التنسيق. ويتم تحديد معلومات إضافية بشأن المطابقة العامة مع GContainer في القسم تفاصيل GContainer.
يتم تخزين قيم السمات الموضّحة في الجداول التالية كقيم بسيطة لتنسيق XMP من أنواع القيم الأساسية المحدّدة لتنسيق XMP.
القيم الدلالية للعناصر
تحدِّد السمة Item:Semantic
المعنى الخاص بالتطبيق
لكل عنصر وسائط في دليل الحاوية.
القيمة | الوصف |
---|---|
Primary | يشير إلى أنّ عنصر الوسائط هو الصورة الأساسية الجاهزة للعرض في الحاوية. يجب أن يحتوي الدليل على عنصر "أساسي" واحد. |
GainMap | يشير إلى أنّ عنصر الوسائط هو خريطة مكاسب. قد يحتوي الدليل على عنصر "GainMap" واحد كحد أقصى. |
البيانات الوصفية لخريطة زيادة نطاق الديناميكية العالي (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 من الحد الأدنى لتحسين المحتوى، وهو الحد الأدنى المسموح به لنسبة
الإضاءة الخطية لعرض النطاق العالي الديناميكية المستهدف مقارنةً (مقسومًا
عليه) بنسبة صورة النطاق العادي الديناميكية، في بكسل معيّن. يمكن أن يكون عددًا حقيقيًا واحدًا أو
مصفوفة مرتبة من الأعداد الحقيقية. عندما تكون مصفوفة مرتبة من Reals، قد تحتوي على
عنصر واحد ينطبق على جميع القنوات أو ثلاثة عناصر للقنوات "الأحمر" و"الأخضر" و
و"الأزرق" على التوالي. ويجب أن تكون أقل من أو تساوي
hdrgm:GainMapMax . اختياري، القيمة التلقائية هي 0.0 |
hdrgm:GainMapMax | مصفوفة حقيقية أو مرتّبة من الريال | تخزِّن قيم map_max_log2 . هذا هو
log2 من الحد الأقصى لتحسين المحتوى، وهو الحد الأقصى المسموح به لنسبة
الإضاءة الخطية لعرض النطاق العالي الديناميكية المستهدف مقارنةً (مقسومًا
عليه) بنسبة صورة النطاق العادي الديناميكية، في بكسل معيّن. يمكن أن يكون عددًا حقيقيًا واحدًا أو
مصفوفة مرتبة من الأعداد الحقيقية. عندما تكون مصفوفة مرتبة من Reals، قد تحتوي على
عنصر واحد ينطبق على جميع القنوات أو ثلاثة عناصر للقنوات "الأحمر" و"الأخضر" و
و"الأزرق" على التوالي. يجب أن تكون القيمة أكبر من أو تساوي
hdrgm:GainMapMin . مَعلمة مطلوبة. |
تنسيق hdrgm:غاما | صفيف حقيقي أو مرتب من القيم الحقيقية | تخزِّن قيم map_gamma . هذه هي قيمة جاما التي
سيتم تطبيقها على قيم الخريطة المخزّنة. يمكن أن يكون عددًا حقيقيًا واحدًا أو مصفوفة مرتبة من
الأعداد الحقيقية. عندما تكون مصفوفة من القيم الفعلية مرتبة، قد تحتوي على عنصر واحد ينطبق
على جميع القنوات أو ثلاثة عناصر للقنوات "الأحمر" و"الأخضر" و"الأزرق"
على التوالي. يجب أن تكون أكبر من 0.0. اختياري، القيمة التلقائية هي
1.0. |
تنسيق hdrgm:OutsetSDR | مصفوفة حقيقية أو مرتّبة من الريال | تخزِّن قيم offset_sdr . يشير هذا المصطلح إلى الإزاحة التي يتم تطبيقها على قيم وحدات بكسل 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 Multi-Picture Format، كما هو موضح في القسم التبعيات.
فك الترميز
يوضّح هذا القسم كيفية فك ترميز خريطة الكسب من ملف JPEG متوافق.
إشارة التنسيق
يمكن تحديد ملف JPEG متوافق مع هذا التنسيق من خلال توفُّر
hdrgm:Version="1.0"
في حزمة XMP للصورة الأساسية، حيث يكون hdrgm
هو
معرّف الموارد المنتظم للنطاقات 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 للبيانات الوصفية لخريطة المكاسب من خلال
معرّف الموارد المنتظم للنطاقات 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 لكل عنصر وسائط
data.
القيمة | الوصف |
---|---|
image/jpeg | صورة JPEG |
مثال على ملف XMP في GContainer
يحتوي المثال التالي لحزمة GContainer XMP صالحة على بيانات وصفية مأخوذة من نموذج الملف الموضّح في القسم Introduction.
<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 آلية تغليف بديلة للبيانات الوصفية لخريطة كسب الترميز في ملف صورة. يمكنك ترميز كل من البيانات الوصفية لميزة Ultra HDR والبيانات الوصفية وفقًا لمعيار ISO 21496-1 في ملف JPEG واحد باستخدام صورة واحدة لخريطة الكسب في الملف.
لتحقيق أكبر قدر من التوافق على عدّة منصات، يجب أن تتيح عمليات التنفيذ والتطبيقات في Android التي تنفِّذ ترميزًا أو فك ترميز ملفات JPEG باستخدام خرائط اكتساب التشفير وفك الترميز لكل من البيانات الوصفية Ultra HDR v1 وISO 21496-1. أثناء عملية الترميز، يجب أن يُشفِّر التطبيق أو عملية التنفيذ كلا تنسيقَي البيانات الوصفية. إذا كان كلا النوعَين من البيانات الوصفية متوفّرَين أثناء عملية فك التشفير، يجب أن يفضّل التطبيق أو عملية التنفيذ استخدام البيانات الوصفية وفقًا لمعيار ISO 21496-1.
سجل التغيير
يحتوي هذا القسم على معلومات حول التغييرات بين إصدارات هذه المواصفات.
v1.1
جميع التغييرات في هذا الإصدار من مواصفات Ultra HDR هي معلومات تتعلّق بالتوافق مع معيار ISO 21496-1. لم يتم إجراء أي تغييرات على تنسيق الملف الفعلي.
- أضِف قسم التوافق مع معيار ISO 21496-1.
الإصدار 1.0
جهة النشر الأولية لمواصفات Ultra HDR