Android ekran görüntülerinde HDR

Yüksek dinamik aralık (HDR) videonun kullanıma sunulmasından bu yana yayın hizmetleri, tam ekran deneyimlere odaklanarak HDR video yayınlamaya başladı. Sosyal medya uygulamaları, HDR video ve Ultra HDR desteğini kısa süre önce kullanıma sundu. Bu da çeşitli uygulamalarda HDR'nin benimsenmesine yönelik ilginin arttığını gösteriyor.

Android'de HDR desteği

Android'in HDR teknolojisini destekleme konusundaki dönüm noktaları aşağıda verilmiştir:

Android 7

  • HDR video kod çözme ve görüntüleme için ilk destek.
  • HDR özelliklerinde sürekli iyileştirmeler yapıldı.

Android 13

  • HDR video yakalama, kodlama ve görüntüleme için uçtan uca destek
  • SDR ve HDR arasında farklı görüntülenebilir parlaklık aralıkları tanımlayan Karma SDR ve HDR kompozisyonu kullanıma sunuldu.

Android 14

HDR ile ekran görüntüsü desteği de yıllar içinde gelişti ve çeşitli değişikliklere uğradı.

HDR ekran görüntüsü özelliklerindeki gelişmeler

Bu bölümde, son Android güncellemelerinde HDR ekran görüntüsü özelliğinin gelişimi izlenir.

Android 9

Android'in grafik derleyicisi SurfaceFlinger, HDR video desteğini kullanıma sundu. HDR video ve ekran görüntülerinin GPU ile oluşturulması, karmaşık polinom ton eşleyiciyle desteklenir. Bu ton eşleme eğrisi her zaman ekran ton eşleyiciyle eşdeğer olmadığından ekran görüntüleri ekrandaki içerikten farklıdır.

Android 13

SurfaceFlinger'ın GPU oluşturma bloğuna bir ton eşleme eklenir. Bu eklenti, OEM'nin ekranının ton eşleme eğrisine uyacak bir GPU gölgelendirici sağlamasına olanak tanır. Ekran görüntüleri ekrandakiyle neredeyse aynıdır ancak aşağıdaki farklılıklar vardır:

  • Ekran görüntüleri SDR biçiminde kalır. Sonuç olarak, HDR sahnesiyle birlikte görüntülendiğinde ekran görüntüsündeki HDR bölgeleri daha loş görünür.
  • SDR parlaklık yönetilmez. Bu nedenle, ekran görüntüsünde SDR içerik HDR içerik kadar parlak görünür.

Diğer bir deyişle, ekran görüntüsü olarak kaydedilen HDR videolar SDR videoya dönüştürülür.

Android 14

Ultra HDR, ekran görüntüsü alma konusunda önemli bir zorluk teşkil eder. Videoların aksine, resimler genellikle kullanıcı arayüzü çerçeve belleğinde oluşturulur. Bunun iki önemli sonucu vardır:

  • Resimlerde, ton eşleme dahil olmak üzere çevredeki kullanıcı arayüzünden farklı resim işleme işlemleri bulunamaz.
  • Uygulamalar, kullanıcı arayüzlerini oluştururken kaynak tabanlı ton eşlemesinden sorumludur.

Bu sorunu hafifletmek için üç olası ekran görüntüsü uygulaması vardır:

  • Ultra HDR görüntünün HDR ayrıntılarını koruyarak ekran görüntüsünde uygulama kullanıcı arayüzünün karartılmasına neden olur.
  • Uygulama kullanıcı arayüzü ayrıntılarını koruyarak Ultra HDR görüntünün kırpılmasına neden olur.
  • HDR öne çıkan anları kırpırken uygulama kullanıcı arayüzünü parlaklaştırarak uzlaşmaya varın.

Android 14, uygulama kullanıcı arayüzünü aydınlatma ve HDR vurgularını kırpma gibi üçüncü yaklaşımı uygular.

Android 15-QPR1

SurfaceFlinger, ekran görüntüleri için yerel bir ton eşleme algoritması içerir. Bu işlem aşağıdakileri içerir:

  • Giriş resmini daha küçük resimlere bölme.
  • Her resimdeki maksimum parlaklığı hesaplama ve her bölümdeki düşük parlaklık değerlerini atma.
  • Bulanıklaştırma ve yeniden örnekleme yoluyla hesaplanan parlaklık değerlerinin ara değerle bulunması.
  • Parametreli bir Reinhard ton eşleyiciyi, enterpolasyonlu parlaklık değerlerine göre giriş resmine uygulama.

Bu algoritma, aşağıdaki örneklerde gösterildiği gibi Android 14 ile Android 15-QPR1 arasında önemli ekran görüntüsü iyileştirmeleri olduğunu gösteriyor:

  • 1. örnekte, Ultra HDR içeren bir Chrome sayfasının üzerine yerleştirilmiş HDR videonun ekran görüntüsü gösterilmektedir. Kullanıcı arayüzü renkleri yeni uygulamada çoğunlukla korunur ve resim artık kırpılmaz.

    Android 14 Android 15-QPR1
    Android 14'te 1. örnek Android 15qpr'de 1. örnek

    Şekil 1. 1. örnek için Android 14 ve Android 15-QPR1 karşılaştırması.

  • 2. örnekte, HDR videonun ekran görüntüsü Ayarlar'ın üzerine yerleştirilmiştir. Android 14'te ekran görüntüsü renkleri giderek daha koyu olur. Android 15-QPR1'de ton dönüştürücü, kullanıcı arayüzü renklerini doğru şekilde kopyalar ve korur.

    Android 14 Android 15-QPR1
    Android 14'te 2. örnek Android 15qpr'de 2. örnek

    Şekil 2. 2. örnek için Android 14 ve Android 15-QPR1 karşılaştırması.

Android 16

Ultra HDR'ye benzer şekilde HDR ekran görüntüleri, oluşturma sırasında HDR temsilini kurtarmak için ekran görüntüsü dosyasında bir kazanç haritası depolar. Ancak Ultra HDR'den farklı olarak ekran görüntüsü, PNG ekran görüntülerini besleyen sistemlerle geriye dönük uyumluluk için PNG biçiminde kalır.

Ekran görüntüsü oluşturma ayrıntıları aşağıdaki gibidir:

  • Cihazda HDR içerik gösterildiğinde FP16 pikselleri kullanılarak ekran görüntüsü oluşturulur.
  • Android 15-QPR1'de açıklanan yerel ton eşleyici, 8 bit temel SDR yorumu oluşturur.
  • SDR temel yorumu HDR yorumuyla birleştirilerek 8 bit kazanç haritası oluşturulur.
  • SDR temel yorumu ve kazanç haritası tek bir PNG dosyasında kodlanır.

PNG kodlama ayrıntıları aşağıdaki gibidir:

  • Kazanç haritası, kazanç haritası için ISO 21496-1 meta verilerini içeren bir gmAP parçası içeren bir PNG resmi olarak kodlanır.
  • SDR temel yorumu, ISO 21496-1 meta verilerinin sürümünü içeren bir gmAP parçası içeren bir PNG resmi olarak kodlanır. Bu PNG resmi, kodlanmış kazanç haritası PNG'sinin tamamını içeren bir gdAT parçası da içerir.

Aşağıdaki şekilde PNG parçalarının düzeni gösterilmektedir:

PNG parçalarının düzeni

Şekil 3. PNG parçalarının düzeni.

Android 16 ile PNG codec'i, bu PNG'lerin hem kodlanmasını hem de kod çözülmesini destekler. Uygulamalar, Ultra HDR ile aynı şekilde kazanç haritası içeren bir PNG görüntüleyebilir.