«دامنه پویای بالا» در نماگرفت‌های Android

به‌دنبال معرفی ویدیو با دامنه پویای بالا (HDR)، سرویس‌های جاری‌سازی جاری‌سازی ویدیو HDR را با تمرکز بر تجربه‌های تمام‌صفحه آغاز کردند. برنامه‌های رسانه‌های اجتماعی اکنون از ویدیو HDR و Ultra HDR پشتیبانی می‌کنند که نشان‌دهنده علاقه فزاینده به پذیرش HDR در برنامه‌های مختلف است.

پشتیبانی Android از HDR

‫Android ازطریق چند نقطه عطف از فناوری HDR پشتیبانی کرده است:

Android 7

  • پشتیبانی اولیه از رمزگشایی و نمایش ویدیو HDR.
  • پیشرفت‌های مداوم در قابلیت‌های HDR.

Android 13

  • پشتیبانی کامل از ضبط، کدبندی، و نمایش ویدیو HDR.
  • ترکیب SDR و HDR مختلط معرفی شد که محدوده‌های مختلف درخشندگی قابل‌نمایش بین SDR و HDR را تعریف می‌کند.

Android 14

  • پشتیبانی از تصاویر HDR با Ultra HDR.

پشتیبانی از نماگرفت HDR نیز تکامل یافته و تغییر کرده است.

پیشرفت در قابلیت‌های نماگرفت HDR

این بخش پیشرفت قابلیت نماگرفت HDR در به‌روزرسانی‌های Android را شرح می‌دهد.

Android 9

‫SurfaceFlinger، ترکیب‌کننده گرافیک Android، پشتیبانی از ویدیو HDR را معرفی می‌کند. پرداز GPU ویدیو HDR و نماگرفت‌ها از نگاشت‌گر رنگ چندجمله‌ای پیچیده استفاده می‌کند. این منحنی نگاشت تن همیشه معادل نگاشت تن نمایشگر نیست، بنابراین نماگرفت‌ها با محتوای روی صفحه متفاوت است.

Android 13

واحد پردازش گرافیکی SurfaceFlinger شامل افزایه نگاشت تن است که به سازنده تجهیزات اصلی اجازه می‌دهد تا سایه‌زن واحد پردازش گرافیکی را برای مطابقت با منحنی نگاشت تن نمایشگر خود ارائه دهد. نماگرفت‌ها تقریباً با محتوای روی صفحه مطابقت دارند، اما با تفاوت‌های زیر:

  • نماگرفت‌ها در قالب SDR باقی می‌مانند. درنتیجه، وقتی در کنار صحنه HDR مشاهده می‌شود، نواحی HDR در نماگرفت کم‌نورتر به‌نظر می‌رسند.
  • درخشندگی SDR مدیریت نمی‌شود، بنابراین محتوای SDR در نماگرفت به اندازه محتوای HDR روشن به‌نظر می‌رسد.

به‌عبارت دیگر، سیستم هر ویدیو HDR ضبط‌شده در نماگرفت را به ویدیو SDR تبدیل می‌کند.

Android 14

«وضوح فوق‌العاده بالا» چالش قابل‌توجهی برای گرفتن نماگرفت ایجاد می‌کند. برخلاف ویدیوها، سیستم معمولاً تصاویر را در بافربریم واسط کاربر رندر می‌کند که دو پیامد اصلی دارد:

  • تصاویر نباید پردازش تصویر، ازجمله نگاشت رنگ، داشته باشند که با میانای کاربری اطراف متفاوت باشد.
  • برنامه‌ها هنگام پرداز کردن واسط کاربر خود مسئول نگاشت رنگ‌مایه براساس منبع هستند.

برای کاهش این چالش، سه پیاده‌سازی بالقوه برای گرفتن نماگرفت درنظر بگیرید:

  • جزئیات HDR تصویر Ultra HDR را حفظ می‌کند و درنتیجه واسط کاربر برنامه در نماگرفت تیره می‌شود.
  • جزئیات واسط کاربر برنامه را حفظ می‌کند و باعث برش تصویر Ultra HDR می‌شود.
  • با روشن کردن میانای کاربر برنامه و درعین‌حال برش دادن بخش‌های پرنور HDR، سازش می‌کند.

‫Android 14 رویکرد سوم را برای روشن‌تر کردن واسط کاربر برنامه و برش دادن برجسته‌سازی‌های HDR پیاده‌سازی می‌کند.

Android 15 QPR1

SurfaceFlinger شامل الگوریتم نگاشت رنگ محلی برای نماگرفت‌ها است. این فرایند شامل موارد زیر است:

  • درحال تقسیم کردن تصویر ورودی به تصاویر کوچک‌تر.
  • محاسبه حداکثر درخشندگی در هر تصویر و کنار گذاشتن مقادیر درخشندگی پایین در هر بخش.
  • درون‌یابی درخشندگی‌های محاسبه‌شده ازطریق محو کردن و نمونه‌برداری مجدد.
  • اعمال کردن نگاشت‌کننده رنگ Reinhard پارامتری‌شده روی تصویر ورودی براساس مقادیر درخشندگی درون‌یابی‌شده.

این الگوریتم نماگرفت‌ها را بین Android 14 و Android 15 QPR1 به‌طور قابل‌توجهی بهبود می‌بخشد، همان‌طور که نمونه‌های زیر نشان می‌دهند:

  • مثال ۱ نماگرفتی از یک ویدیو HDR است که روی صفحه Chrome حاوی Ultra HDR قرار گرفته است. رنگ‌های واسط کاربر در پیاده‌سازی جدید عمدتاً حفظ شده است و تصویر دیگر برش داده نمی‌شود.

    Android 14 Android 15 QPR1
    مثال ۱ در Android 14 مثال ۱ در Android 15qpr

    شکل ۱. مقایسه Android 14 و Android 15 QPR1 برای «مثال ۱».

  • نمونه ۲ نماگرفتی از ویدیو HDR است که روی تنظیمات با نماگرفت‌های بعدی قرار گرفته است. در Android 14، رنگ‌های نماگرفت به‌ترتیب تیره‌تر می‌شوند. در Android 15 QPR1، نگاشت‌گر رنگ به‌درستی رنگ‌های واسط کاربر را تکرار و حفظ می‌کند.

    Android 14 Android 15 QPR1
    مثال ۲ در Android 14 مثال ۲ در Android 15qpr

    شکل ۲. مقایسه Android 14 و Android 15 QPR1 برای «مثال ۲».

‫Android 16

مشابه وضوح فوق‌العاده بالا، نماگرفت‌های HDR یک نقشه بهره در فایل نماگرفت ذخیره می‌کنند تا نمایش HDR را درطول پردازش بازیابی کنند. بااین‌حال، برخلاف Ultra HDR، نماگرفت در قالب PNG باقی می‌ماند تا با سیستم‌هایی که نماگرفت‌های PNG را دریافت می‌کنند سازگار با نسخه قدیمی باشد.

تولید نماگرفت شامل موارد زیر است:

  • وقتی محتوای HDR در دستگاه نمایش داده می‌شود، نماگرفت بااستفاده از پیکسل‌های FP16 تولید می‌شود.
  • نگاشت‌کننده تن محلی که در Android 15 QPR1 توضیح داده شده است یک نسخه پایه ۸ بیتی SDR تولید می‌کند.
  • نقشه بهره ۸ بیتی با ترکیب کردن بازپرداخت پایه SDR با بازپرداخت HDR تولید می‌شود.
  • بازپرداخت پایه SDR و نقشه بهره در یک فایل PNG کدبندی می‌شوند.

کدبندی PNG شامل موارد زیر است:

  • نقشه بهره به‌صورت تصویر PNG کدبندی می‌شود که شامل تکه gmAP است و فراداده‌های ISO 21496-1 را برای نقشه بهره دربرمی‌گیرد.
  • بازپرداخت پایه SDR به‌عنوان تصویر PNG کدبندی می‌شود که شامل یک تکه gmAP است که نسخه فراداده ISO 21496-1 را دربرمی‌گیرد. این تصویر PNG همچنین شامل یک تکه gdAT است که حاوی کل PNG نقشه بهره کدبندی‌شده است.

شکل زیر چیدمان تکه‌های PNG را نشان می‌دهد:

چیدمان تکه‌های PNG

شکل ۳. چیدمان تکه‌های PNG.

در Android 16، کدک PNG از کدبندی و کدگشایی این PNGها پشتیبانی می‌کند. برنامه‌ها می‌توانند PNG را با نگاشت بهره به همان روش Ultra HDR نمایش دهند.