مقدمه
این سند رفتار یک فرمت فایل جدید را تعریف می کند که یک تصویر نقشه افزایش دامنه لگاریتمی را در یک فایل تصویری JPEG رمزگذاری می کند. خوانندگان قدیمی که از فرمت جدید پشتیبانی نمی کنند، تصویر معمولی محدوده دینامیکی پایین را از فایل تصویر می خوانند و نمایش می دهند. خوانندگانی که از این فرمت پشتیبانی میکنند، تصویر اصلی را با نقشه بهره ترکیب میکنند و تصویری با محدوده دینامیکی بالا در نمایشگرهای سازگار ارائه میدهند.
بقیه این سند روش های فرآیندهای مورد نیاز برای استفاده از این قالب را شرح می دهد. در سطح بالا، چرخه زندگی یک تصویر مطابق با این فرمت عبارت است از:
رمزگذاری
- تولید نقشه به دست آورید
- فشرده سازی نقشه را بدست آورید
- تولید کانتینر نقشه به دست آورید
رمزگشایی
شکل 1. نمونه طرح فایل و ابرداده مربوطه.
انگیزه
هدف از این فرمت فایل، رمزگذاری اطلاعات اضافی در فایل های تصویری SDR است که می تواند در ترکیب با تکنیک نمایش برای تولید نمایش HDR بهینه آنها، در یک فایل واحد استفاده شود.
برای عملی بودن این امر، فرمت فایل باید:
- سازگار با عقب باشد، به طوری که در بینندگان ساده لوح، تصویر SDR معمولی نمایش داده شود.
- فضای اضافی زیادی را اشغال نکنید.
علاوه بر این، تکنیک نمایش باید:
- برای رمزگشایی نیازی به پردازش سنگین نیست.
- قادر به تطبیق با هر نسبت بین نقاط سفید HDR و SDR صفحه نمایش باشید، که می تواند به طور قابل توجهی بین دستگاه ها یا حتی به طور موقت در یک دستگاه متفاوت باشد.
و در نهایت، این تکنیک باید بتواند تمام اقدامات قبلی را بدون هیچ وقت انجام دهد:
- برش برجسته.
- له کردن سایه ها
- تغییر یا فشرده سازی کنتراست محلی.
- تغییر روابط تنی نسبی (بین اشیاء در صحنه).
وابستگی ها
موارد زیر مراجع هنجاری برای این مشخصات هستند:
- مشخصات Adobe XMP قسمت 3: ذخیره سازی در فایل ها
- ISO 16684-1:2019 مشخصات XMP قسمت 1
- فرمت فایل رسانه پایه ISO/IEC 14496-12 ISO
- T.81 (09/92) فشرده سازی دیجیتال و کدگذاری تصاویر ثابت با صدای پیوسته
- کاغذ سفید با فرمت چند تصویری CIPA DC-x 007-2009
تعاریف
نمایشگر SDR
- یک صفحه نمایش معمولی که برای نمایش محتوای HDR طراحی نشده است. این نمایشگرها معمولاً حداکثر روشنایی اسمی حدود 400 cd/m 2 یا کمتر را تولید می کنند.
نمایشگر HDR
- نمایشگری که برای محتوای HDR طراحی شده است. این نمایشگرها معمولاً یک حداکثر روشنایی اسمی بیشتر از یک نمایشگر SDR، معمولاً 800 cd/ m2 یا بیشتر تولید میکنند، و معمولاً نسبت کنتراست بهتری نسبت به نمایشگرهای SDR دارند.
تصویر اولیه
- اولین نمونه از یک تصویر در یک فایل GContainer با فایل های رسانه ای ثانویه که به آن اضافه شده است. تصویر اصلی حاوی فراداده GContainer XMP است که ترتیب و ویژگیهای فایلهای آیتم رسانه ثانویه بعدی را در محفظه فایل تعریف میکند.
تصویر ثانویه
- فایلهای آیتم رسانه بعدی که به تصویر اصلی در فایل GContainer اضافه میشوند.
فشرده سازی محدوده
- در عکاسی، صحنه های دنیای واقعی معمولاً دامنه دینامیکی بیشتری نسبت به نمایشگر SDR دارند. عملیاتی مانند فشرده سازی محدوده که به آن نگاشت تن محلی نیز گفته می شود، برای کاهش دامنه دینامیکی یک تصویر مورد نیاز است. این کاهش نیاز به جلوگیری از برش هایلایت ها یا خرد کردن سایه ها دارد و در عین حال کنتراست محلی را تا حد امکان حفظ می کند. شما سعی می کنید اندازه لبه های درخشندگی بزرگ در تصویر را کاهش دهید، که بیشتر به کنتراست جهانی آن کمک می کند، در حالی که سعی می کنید اندازه لبه های روشنایی کوچک را که جزییات هستند، حفظ کنید. اگرچه پیاده سازی های مختلفی وجود دارد، اما چنین عملیاتی در اکثر دوربین های دیجیتال مدرن امروزی استاندارد است.
نقطه سفید SDR
- حداکثر روشنایی خطی محتوای SDR در یک صفحه نمایش در یک نقطه زمانی خاص.
نقطه سفید HDR
- حداکثر روشنایی خطی محتوای HDR در یک صفحه نمایش در یک نقطه زمانی خاص. این مقدار معمولاً بالاتر از نقطه سفید SDR است.
تقویت کنید
- نقطه سفید HDR تقسیم بر نقطه سفید SDR.
حداکثر افزایش محتوا (
max_content_boost
در معادلات)- این مقدار به سازنده محتوا اجازه میدهد تا میزان روشنتر شدن تصویر را در هنگام نمایش بر روی نمایشگر HDR نسبت به نمایش SDR محدود کند.
- این مقدار برای یک تصویر خاص ثابت است. به عنوان مثال، اگر مقدار چهار باشد، برای هر پیکسل معین، درخشندگی خطی نمایش HDR نمایش داده شده باید حداکثر 4 برابر درخشندگی خطی نمایش SDR باشد. در عمل، این بدان معنی است که قسمت های روشن تر صحنه را می توان تا 4 برابر روشن تر نشان داد.
- در عمل، این مقدار معمولاً بیشتر از 1.0 است.
- همیشه بیشتر از یا مساوی حداقل افزایش محتوا باشد.
افزایش حداقل محتوا (
min_content_boost
در معادلات)- این مقدار به سازنده محتوا این امکان را می دهد که نسبت به نمایش SDR، تصویر را در هنگام نمایش بر روی صفحه نمایش HDR محدود کند. این مقدار برای یک تصویر خاص ثابت است.
- برای مثال، اگر مقدار 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 نشان می دهد تا نمایش HDR هدف را تولید کند. این نقشه می تواند تک کاناله یا چند کاناله باشد. یک نقشه چند کاناله یک بهره جداگانه برای هر کانال رنگی مانند قرمز، سبز و آبی را نشان می دهد. این سند موردی از یک نقشه تک کانالی را نشان می دهد.
clamp(x, a, b)
- مقدار x را به محدوده [a, b] فشار دهید.
exp2(x)
- توان پایه 2؛ 2 x .
floor(x)
- نزدیکترین عدد صحیح را برابر یا کمتر از x برمیگرداند.
log2(x)
- لگاریتم پایه 2؛ گزارش 2 (x)
pow(b, x)
- توانمندی؛ b x .
XMP
- پلتفرم فراداده قابل توسعه استانداردی که روشی را برای رمزگذاری فراداده در یک محفظه تصویر تعریف می کند. تعریف شده توسط ISO 16684-1:2011(E) XMP Specification Part 1 .
فرمت چند تصویری
- فرمت چند تصویری تکنیکی است که توسط انجمن محصولات دوربین و تصویربرداری (CIPA) برای ذخیره چندین تصویر کدگذاری شده JPEG در یک فایل JPEG توسعه یافته است.
- برای اطلاعات بیشتر، به وابستگی مرتبط، کاغذ سفید CIPA DC-x 007-2009 Multi-Picture Format مراجعه کنید.
GContainer
- GContainer روشی برای ذخیره چندین تصویر در یک محفظه تصویر است که در آن یک تصویر به عنوان تصویر اصلی در نظر گرفته می شود. هر تصویر اضافی به عنوان نسخه جایگزین یا کمکی در نظر گرفته می شود. فراداده XMP برای برقراری ارتباط با وجود و معنای هر تصویر اضافی استفاده می شود. برای اطلاعات بیشتر، به بخش جزئیات GContainer مراجعه کنید.
رمزگذاری کنید
این بخش نحوه کدگذاری یک فایل JPEG منطبق را توضیح می دهد. برای اطلاعات بیشتر در مورد فرمت JPEG، به T.81 (09/92) فشرده سازی دیجیتال و کدگذاری تصاویر ثابت با صدای پیوسته ، در بخش وابستگی ها مراجعه کنید.
تولید نقشه به دست آورید
خطوط لوله تصویربرداری دوربین معمولاً یک عملیات فشردهسازی برد را انجام میدهند تا دادههای روشنایی محدوده دینامیکی بالاتر را به محدوده پایینتر نمایشگرهای 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 وجود دارد.
-
HDR'(x, y)
سه کانال غیر خطی است، یعنی یک تصویر کدگذاری شده PQ یا HLG. -
HDR(x, y)
تصویر سه کاناله خطی HDR است.
Yhdr(x, y)
درخشندگی در یک نقطه مشخص از تصویر HDR است:
Yhdr(x, y) = primary_color_profile_to_luminance(HDR(x, y))
Yhdr(x, y)
در محدوده 0.0 تا حداکثر افزایش محتوا تعریف شده است.
تصاویر SDR و HDR باید وضوح یکسانی داشته باشند. نمایه رنگ تصویر SDR فضای رنگی تصویر HDR را مشخص می کند.
به عنوان مثال، اگر تصویر اولیه SDR دارای نمایه رنگی Display-P3 باشد، تصویر HDR نسبت به رنگ های اصلی آن نمایه تعریف می شود. این بدان معناست که تصویر 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
هر دو صفر هستند، پیاده سازی شده است.
برای مثال، پیادهسازیها میتوانند با تعریف pixel_gain(x, y)
Ysdr(x, y)
و offset_sdr
هر دو صفر هستند، کنترل کنند. روش دیگر، پیاده سازی ها نیز با استفاده از 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 بیتی تبدیل می شود.
این کدگذاری منجر به نمایش عدد صحیح بدون علامت 8 بیتی از مقادیر recovery(x, y)
از 0.0 تا 1.0 می شود. نقشه بهره رمزگذاری شده باید در یک آیتم تصویر ثانویه به صورت JPEG ذخیره شود. پیاده سازی میزان فشرده سازی را برای استفاده در طول رمزگذاری JPEG انتخاب می کند.
پس از اینکه نقشه بهره در یک تصویر ثانویه ذخیره شد، به تصویر اصلی با متادیتای MPF و GContainer XMP اضافه میشود. دایرکتوری GContainer تصویر اصلی باید حاوی یک آیتم برای تصویر نقشه بهره باشد.
وضوح نقشه بهره ذخیره شده توسط پیاده سازی تعریف شده است و می تواند با وضوح تصویر اولیه متفاوت باشد. در صورتی که نقشه Gain به وضوح متفاوت از تصویر اصلی برای ذخیره سازی مقیاس بندی شده باشد، روش نمونه گیری باید دوخطی یا بهتر باشد و پیاده سازی تعریف شده است.
جهت نقشه بهره باید با تصویر اصلی مطابقت داشته باشد. در صورت وجود، هیچ گونه ابرداده جهت گیری در تصویر نقشه بهره ذخیره شده، مانند EXIF، استفاده نمی شود.
در صورت وجود، نمایه رنگ نقشه بهره استفاده نمی شود.
ظرف نقشه به دست آورید
پروفایل رنگی
نمایه رنگی تصویر باید از طریق یک نمایه ICC برای تصویر اصلی نشان داده شود.
ویژگی های XMP
تصویر اولیه حاوی فراداده XMP برای تعریف حداقل دو تصویر با اطلاعات معنایی اضافی برای فرمت نقشه بهره HDR است.
بخشهای فرعی زیر حاوی جزئیات خاص این قالب است. اطلاعات تکمیلی در مورد انطباق کلی با GContainer در بخش جزئیات GContainer مشخص شده است.
مقادیر مشخصه شرح داده شده در جداول زیر به عنوان مقادیر ساده XMP از انواع مقادیر پایه XMP مشخص شده ذخیره می شوند.
مقادیر معنایی مورد
Item:Semantic
معنای خاص برنامه هر آیتم رسانه را در فهرست کانتینر تعریف می کند.
ارزش | توضیحات |
---|---|
اولیه | نشان میدهد که آیتم رسانه تصویر اصلی، آماده نمایش، در ظرف است. دایرکتوری باید حاوی یک آیتم "اصلی" باشد. |
GainMap | نشان می دهد که آیتم رسانه یک نقشه بهره است. دایرکتوری ممکن است حداکثر دارای یک مورد "GainMap" باشد. |
ابرداده نقشه به دست آوردن HDR
ابرداده نقشه سود اطلاعاتی را در مورد نحوه تفسیر و اعمال نقشه بهره برای تولید نمایش HDR تصویر اولیه رمزگذاری می کند.
URI فضای نام XMP برای پسوند XMP فراداده نقشه افزایش http://ns.adobe.com/hdr-gain-map/1.0/
است. پیشوند فضای نام پیش فرض hdrgm
است.
این ابرداده در بسته XMP تصویر نقشه افزایش ذخیره میشود و ویژگیهای زیر باید در rdf:Description
:
نام | تایپ کنید | توضیحات |
---|---|---|
hdrgm:نسخه | متن | نسخه فرمت نقشه افزایش در حال استفاده است. این نسخه "1.0" است. مورد نیاز . |
hdrgm:BaseRenditionIsHDR | بولی | محدوده دینامیکی تصویر اولیه را نشان می دهد. "نادرست" نشان می دهد که تصویر اصلی SDR است و نقشه بهره را می توان با آن ترکیب کرد تا یک نمایش HDR تولید کند. "درست" نشان می دهد که تصویر اصلی HDR است و نقشه بهره ممکن است با آن ترکیب شود تا نمایش SDR تولید شود. باید "نادرست" باشد. اختیاری؛ مقدار پیش فرض "نادرست" است. |
hdrgm: GainMapMin | آرایه واقعی یا مرتب از Reals | مقدار(های) map_min_log2 را ذخیره می کند. این log2 افزایش محتوای دقیقه است، که حداقل نسبت مجاز روشنایی خطی برای نمایش HDR هدف نسبت به (تقسیم بر) تصویر SDR در یک پیکسل معین است. ممکن است یک Real منفرد یا یک آرایه مرتب شده از Reals باشد. هنگامی که یک آرایه مرتب شده از Reals، ممکن است شامل یک آیتم باشد که برای همه کانال ها یا سه مورد برای کانال های قرمز، سبز و آبی به ترتیب اعمال می شود. باید کمتر یا مساوی hdrgm:GainMapMax باشد. اختیاری؛ مقدار پیش فرض 0.0 است. |
hdrgm:GainMapMax | آرایه واقعی یا مرتب از Reals | مقدار(های) map_max_log2 را ذخیره می کند. این log2 حداکثر افزایش محتوا است، که حداکثر نسبت مجاز روشنایی خطی برای نمایش HDR هدف نسبت به (تقسیم بر) تصویر SDR در یک پیکسل معین است. ممکن است یک Real منفرد یا یک آرایه مرتب شده از Reals باشد. هنگامی که یک آرایه مرتب شده از Reals، ممکن است شامل یک آیتم باشد که برای همه کانال ها یا سه مورد برای کانال های قرمز، سبز و آبی به ترتیب اعمال می شود. باید بزرگتر یا مساوی hdrgm:GainMapMin باشد. مورد نیاز . |
hdrgm: گاما | آرایه واقعی یا مرتب از Reals | مقدار(های) map_gamma را ذخیره می کند. این گامایی است که باید روی مقادیر ذخیره شده نقشه اعمال شود. ممکن است یک Real منفرد یا یک آرایه مرتب شده از Reals باشد. هنگامی که یک آرایه مرتب شده از Reals، ممکن است شامل یک آیتم باشد که برای همه کانال ها یا سه مورد برای کانال های قرمز، سبز و آبی به ترتیب اعمال می شود. باید بزرگتر از 0.0 باشد. اختیاری؛ مقدار پیش فرض 1.0 است. |
hdrgm:OffsetSDR | آرایه واقعی یا مرتب از Reals | مقدار(های) offset_sdr را ذخیره می کند. این افستی است که در طول تولید و اعمال نقشه بهره بر روی مقادیر پیکسل SDR اعمال می شود. ممکن است یک Real منفرد یا یک آرایه مرتب شده از Reals باشد. هنگامی که یک آرایه مرتب شده از Reals، ممکن است شامل یک آیتم باشد که برای همه کانال ها یا سه مورد برای کانال های قرمز، سبز و آبی به ترتیب اعمال می شود. باید 0.0 یا بیشتر باشد. اختیاری؛ مقدار پیش فرض 0.015625 (1/64) است. |
hdrgm:OffsetHDR | آرایه واقعی یا مرتب از Reals | مقدار(های) offset_hdr را ذخیره می کند. این افست برای اعمال بر مقادیر پیکسل HDR در طول تولید و کاربرد نقشه بهره است. ممکن است یک Real منفرد یا یک آرایه مرتب شده از Reals باشد. هنگامی که یک آرایه مرتب شده از Reals، ممکن است شامل یک آیتم باشد که برای همه کانال ها یا سه مورد برای کانال های قرمز، سبز و آبی به ترتیب اعمال می شود. باید 0.0 یا بیشتر باشد. اختیاری؛ مقدار پیش فرض 0.015625 (1/64) است. |
hdrgm:HDRC ظرفیت حداقل | واقعی | مقدار hdr_capacity_min را ذخیره می کند. این log2 از حداقل مقدار افزایش نمایش است که اصلاً نقشه برای آن اعمال می شود. این مقدار همچنین بر میزان اعمال نقشه بهره بر اساس افزایش نمایش تأثیر می گذارد. باید 0.0 یا بیشتر باشد. اختیاری؛ مقدار پیش فرض 0.0 است. |
hdrgm:HDRC ظرفیت حداکثر | واقعی | مقدار 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 تعریف شده است، همانطور که در بخش Dependencies اشاره شده است، ذخیره شود.
رمزگشایی
این بخش نحوه رمزگشایی نقشه بهره را از یک فایل JPEG منطبق توضیح می دهد.
سیگنال فرمت
یک فایل JPEG مطابق با این فرمت ممکن است با وجود hdrgm:Version="1.0"
در بسته XMP تصویر اصلی شناسایی شود، جایی که hdrgm
فضای نام URI است http://ns.adobe.com/hdr-gain-map/1.0/
.
تصویر نقشه افزایش را پیدا کنید
برای جزئیات در مورد تجزیه و رمزگشایی تصویر، به بخش جزئیات GContainer زیر مراجعه کنید. یک آیتم معنایی "GainMap" در XMP rdf:Directory
برای نشان دادن مکان یک تصویر نقشه بهره استفاده می شود. متناوبا، از MPF Index IFD و XMP تصاویر اسکن برای تعیین موقعیت نقشه بهره استفاده می شود.
مدیریت فراداده نامعتبر
اگر فیلد الزامی وجود نداشته باشد یا هر فیلدی با مقدار نامعتبر موجود باشد، متادیتا نامعتبر در نظر گرفته می شود. یک مقدار ممکن است نامعتبر باشد زیرا قابل تجزیه به نوع مشخص شده نیست یا خارج از محدوده مورد انتظار آن است.
در صورت مواجهه با ابرداده نامعتبر، نقشه بهره باید نادیده گرفته شود و تصویر SDR نمایش داده شود.
نمایش
فایلهای کدگذاریشده در قالب نقشه بهره HDR ممکن است بر روی نمایشگرهای SDR معمولی یا نمایشگرهای HDR با قابلیت خروجی با روشنایی بالاتر ارائه شوند.
از نقشه بهره برای ایجاد نمایش HDR سازگار استفاده کنید
محاسبات زیر در این بخش، محاسبات ممیز شناور را فرض می کنند.
encoded_recovery(x, y)
یک مقدار عدد صحیح بدون علامت تک کاناله 8 بیتی از تصویر نقشه بهره است.
اگر نقشه بهره وضوح متفاوتی با تصویر اولیه داشته باشد، در عوض encoded_recovery(x, y)
با یک نمونه فیلتر شده از تصویر نقشه بهره برای x و y به ترتیب در محدوده عرض و ارتفاع تصویر اولیه تعیین می شود. روش فیلتر کردن باید دوخطی یا بهتر باشد و پیاده سازی شده است.
map_gamma
توسط قسمت hdrgm:Gamma
metadata تعیین می شود.
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)
حداکثر افزایش نمایش یک مقدار نقطه شناور اسکالر است که به عنوان نسبت بین نقطه سفید HDR فعلی و تقسیم بر نقطه سفید SDR فعلی تعریف می شود. این مقدار توسط سیستم نمایش ارائه می شود و می تواند در طول زمان تغییر کند.
hdr_capacity_max
توسط فیلد فوق داده hdrgm:HDRCapacityMax
تعیین می شود. hdr_capacity_min
توسط قسمت فوق داده hdrgm:HDRCapacityMin
تعیین می شود.
هنگامی که hdrgm:BaseRenditionIsHDR
"False" باشد weight_factor
به صورت زیر تعیین می شود:
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
"True" باشد، معادله دوم به جای آن است:
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 Specification Part 1 و در داخل فایل تصویر اصلی همانطور که در Adobe XMP Specification Part 3 Storage in Files توضیح داده شده است، جاسازی شده است. فایل تصویر اولیه حاوی موارد زیر است که به صورت RDF/XML فرمت شده است.
نیازمندی های بسته XMP
بسته XMP باید شامل پسوند XMP فراداده نقشه بهره از طریق URI فضای نام http://ns.adobe.com/hdr-gain-map/1.0/
باشد. پیشوند فضای نام پیش فرض hdrgm
است.
بسته XMP باید hdrgm:Version="1.0"
را تعریف کند.
عنصر ظرف
فضای نام XMP برای برنامه افزودنی GContainer XMP http://ns.google.com/photos/1.0/container/
است. پیشوند فضای نام پیش فرض Container
است.
تصویر اصلی حاوی یک عنصر Container:Directory
در فراداده XMP است که ترتیب و ویژگی های فایل رسانه بعدی را در محفظه فایل تعریف می کند. هر فایل در کانتینر یک آیتم رسانه مربوطه در Container:Directory
دارد. آیتم رسانه مکان در محفظه فایل و خصوصیات اساسی هر فایل الحاقی را توصیف می کند.
عنصر کانتینر در فراداده XMP تصویر اصلی کدگذاری میشود و فهرستی از آیتمهای رسانه را در ظرف تعریف میکند. آیتم های رسانه باید به همان ترتیبی که عناصر آیتم رسانه در دایرکتوری قرار دارند در فایل کانتینر قرار گیرند و باید محکم بسته بندی شوند.
دایرکتوری می تواند فقط یک آیتم تصویر "اصلی" داشته باشد و باید اولین مورد در فهرست باشد.
نام عنصر | تایپ کنید | توضیحات |
---|---|---|
کانتینر: دایرکتوری | آرایه مرتب سازه ها | آرایه مرتب شده از ساختارها که هر کدام حاوی یک Container:Item ساختار است که چیدمان و محتویات ظرف را تعریف می کند. |
عنصر مورد
عناصر مورد چگونگی استفاده از هر آیتم رسانه ای توسط برنامه را توصیف می کنند.
URI فضای نام XMP برای پسوند GContainer Item XMP http://ns.google.com/photos/1.0/container/item/
است. پیشوند فضای نام پیش فرض Item
است.
اولین آیتم رسانه ای باید تصویر اصلی باشد. باید Item:Semantic = "Primary"
و Item:Mime
فهرست شده در مقادیر نوع MIME مورد را مشخص کند.
طول آیتم تصویر اولیه با تجزیه تصویر اولیه بر اساس نوع MIME آن که از ابتدای ظرف فایل شروع می شود، تعیین می شود.
آیتمهای رسانه میتوانند حاوی Item:Padding
که لایههای اضافی را بین انتهای آیتم رسانه و ابتدای آیتم رسانه بعدی مشخص میکند. هنگامی که در آخرین آیتم رسانه در Container:Directory
وجود دارد، Item:Padding
نشاندهنده padding بین انتهای آیتم و انتهای فایل است.
هر آیتم رسانه ای باید حاوی Item:Mime
و Item:Semantic
باشد. آیتم های رسانه تصویر ثانویه باید دارای ویژگی های Item:Length
باشند.
آیتم های رسانه متوالی می توانند داده های منبع را در ظرف فایل به اشتراک بگذارند. اولین آیتم رسانه محل منبع را در محفظه فایل تعیین می کند، و آیتم های رسانه مشترک بعدی دارای Item:Length
روی 0 تنظیم شده است. در صورتی که داده منبع خود یک ظرف باشد، Item:URI
ممکن است برای تعیین مکان استفاده شود. داده های آیتم رسانه ای در منبع.
مکان منابع آیتم رسانه در ظرف با جمع کردن طول رمزگذاری تصویر اصلی، Item:Length
منابع آیتم رسانه ثانویه قبلی و همه مقادیر Item:Padding
قبلی تعیین میشود. Item:Padding
در منابع آیتم رسانه ای که مقدار آن را مشخص نمی کند 0 در نظر گرفته می شود.
نام صفت | تایپ کنید | توضیحات |
---|---|---|
مورد: میم | متن | رشته ساده نشان دهنده نوع MIME مورد رسانه در ظرف است. برای تعریف، بخش مقادیر نوع MIME مورد را ببینید. مورد نیاز . |
مورد: معنایی | متن | رشته ساده که معنای خاص برنامه مورد رسانه را نشان می دهد. برای تعریف، به بخش مقادیر معنایی آیتم مراجعه کنید. مورد نیاز . |
مورد: طول | عدد صحیح | رشته ساده حاوی طول عدد صحیح مثبت بر حسب بایت آیتم. طول 0 نشان می دهد که منبع آیتم رسانه با آیتم رسانه قبلی به اشتراک گذاشته شده است. برای آیتم های رسانه ثانویه مورد نیاز است. برای آیتم رسانه تصویر اصلی اختیاری است. |
مورد: برچسب | متن | رشته تعریفشده پیادهسازی برای ابهامزدایی از عناصر چندگانه با یک Item:Semantic . اختیاری |
مورد: بالشتک | عدد صحیح | رشتهای حاوی طول عدد صحیح مثبت در بایتهای بالشتک اضافی بین انتهای آیتم رسانه و ابتدای آیتم رسانه بعدی یا انتهای فایل زمانی که در آخرین مورد رسانه در Container:Directory استفاده میشود. مقدار 0 در صورت عدم وجود در نظر گرفته می شود. اختیاری. |
مورد: URI | متن | یک رشته URI مطابق با ISO/IEC 14496-12 بخش 8.11.9، که حاوی URI نسبی داده رسانه در منبع آیتم رسانه است. پیش فرض منبع تصویر اصلی است. اختیاری برای فرمت فایل رسانه پایه ISO ISO/IEC 14496-12 انواع MIME. در غیر این صورت قابل استفاده نیست. |
مقادیر نوع MIME مورد
Item:Mime
نوع MIME هر داده آیتم رسانه را تعریف می کند.
ارزش | توضیحات |
---|---|
تصویر/jpeg | تصویر JPEG. |
مثال GContainer XMP
مثال زیر از یک بسته معتبر GContainer XMP دارای ابرداده است که از فایل مثال نشان داده شده در بخش مقدمه گرفته شده است.
<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>