Kamera donanım soyutlama katmanı

Android'in kamera donanım soyutlama katmanı (HAL) kamera çerçevesi API'lerini android.hardware.kamera2 ana kamera sürücünüze ve donanımınıza bağlı olarak değişir. Android 13'ten itibaren kamera HAL arayüzü geliştirme AIDL kullanmaktadır. Android 8.0 kullanıma sunuldu Treble, Camera HAL API'yi değiştiriyor HAL arayüzü açıklama dili (HIDL) ile tanımlanan kararlı bir arayüze dönüştürür. Daha önce Android 7.0 için bir kamera HAL modülü ve sürücüsü geliştirdiyseniz ve daha düşük potansiyel risklerin birkaç değişiklik yaptık.

AIDL kamera HAL'si

Android 13 veya sonraki sürümleri çalıştıran cihazlarda kamera çerçeve AIDL kamera HAL'lerini destekler. Kamera çerçevesi ayrıca HIDL kamera HAL'lerini destekler ancak kamera özellikleri Android 13 veya sonraki sürümler yalnızca AIDL kamera HAL arayüzleri Yeni sürüme geçen cihazlarda bu tür özellikleri uygulamak için Android 13 veya sonraki sürümler, cihaz üreticileri HAL süreçlerini HIDL kamera arayüzlerinden AIDL kamerasına taşıma kullanır.

AIDL'nin avantajları hakkında bilgi edinmek için HAL'ler için AIDL.

AIDL kamera HAL'sini uygula

AIDL kamera HAL'sinin referans uygulaması için bkz. hardware/google/camera/common/hal/aidl_service/ değerleridir.

AIDL kamera HAL özellikleri şu konumlardadır:

AIDL'ye taşınan cihazlar için cihaz üreticilerinin Koda bağlı olarak Android SELinux politikası (sepolicy) ve RC dosyaları inceleyeceğiz.

AIDL kamera HAL'sini doğrulayın

AIDL kamera HAL uygulamanızı test etmek için cihazın tüm HAL CTS ve VTS testleri. Android 13, AIDL VTS'yi kullanıma sunuyor test, VtsAidlHalCameraProvider_TargetTest.cpp değerleridir.

Kamera HAL3 özellikleri

Android Kamera API'sinin yeniden tasarımının amacı, ATT tarafından uygulanan Android cihazlarda kamera alt sistemini kontrol etme ve API'yi daha verimli ve sürdürülebilir hale getirmek için yeniden düzenlemek. Ek kontrolü, Android'de yüksek kaliteli kamera uygulamaları geliştirmeyi kolaylaştırır Aynı anda birden fazla üründe güvenilir şekilde çalışabilen cihazlar mümkün olduğunca fazla cihaza özel algoritmalar kullanarak bazı yolları da görmüştük.

Kamera alt sisteminin 3. sürümü, çalışma modlarını önceki modlardan herhangi birini uygulamak için kullanılabilecek tek birleşik görünüm ve seri çekim modu gibi diğer pek çok özellik. Böylece, kullanıcılar odak ve pozlama ile daha fazla işleme sonrası (ör. gürültü azaltma, kontrast) konuşacağız. Ayrıca bu basitleştirilmiş görünüm, cihazları otomatik olarak kameranın çeşitli işlevlerini kullanmalarını sağlamak.

API, kamera alt sistemini gelen kamera alt sistemini bir ardışık düzen olarak modeller kare yakalama isteklerini bire bir olarak çerçevelere ayırmalıdır. Talepler bir veri ana makinesinin yakalanması ve işlenmesiyle ilgili tüm yapılandırma bilgilerini çerçeve. Çözünürlük ve piksel biçimi de dahildir. manuel sensör, lens ve flaş kontrol; 3A çalışma modları; RAW->YUV işleme kontrolü; istatistik oluşturma; vb.

Basit bir şekilde ifade etmek gerekirse uygulama çerçevesi, kameradan bir kare çekmesini ister. alt sistemde olduğu gibi, kamera alt sistemi de sonuçları bir çıkış akışına döndürür. İçinde renk alanları ve lens gibi bilgileri içeren meta veriler gölgelendirme, her sonuç kümesi için oluşturulur. Kamera sürümü 3'ü, kamera sürüm 1'in tek yönlü akışına giden bir kanal olarak kullanılır. Her yakalamayı dönüştürür isteği, sensör tarafından yakalanan ve aşağıdaki resimlere işlenir:

  • Yakalamayla ilgili meta veriler içeren bir sonuç nesnesi.
  • Her biri kendi hedef yüzeyinde bulunan, bir ila N arasında görüntü verileri arabelleği.

Olası çıkış yüzeyleri önceden yapılandırılmıştır:

  • Her yüzey, sabit bir görüntü arabelleklerinin akışı için bir hedeftir. belirler.
  • Aynı anda yalnızca az sayıda yüzey çıkış olarak yapılandırılabilir (~3).

İstek, istenen tüm yakalama ayarlarını ve çıkışın listesini içerir bu istek için görüntü arabelleklerinin aktarılacağı yüzeyler (toplam yapılandırılmış grubu). İstek tek seferlik (capture() ile) veya süresiz olarak tekrarlanabilir (setRepeatingRequest() ile). Yakalamalar yinelenen isteklere göre önceliklidir.

Kamera veri modeli

Şekil 1. Kameranın temel çalışma modeli

Kamera HAL1'e genel bakış

Kamera alt sisteminin 1. versiyonu, yüksek seviyeli kamera alt sisteminin kontrollerine ve aşağıdaki üç çalışma moduna sahiptir:

  • Önizle
  • Video Kaydı
  • Fotoğraf çekmeye devam et

Her modun biraz farklı ve birbiriyle çakışan özellikleri vardır. Bu, başardı seri çekim modu gibi yeni özelliklerin çalışma modlarında değişiklik gösterir.

Kamera bloku şeması

Şekil 2. Kamera bileşenleri

Birçok cihaz hâlâ çalışmaya devam ettiği için Android 7.0 somut olarak ortaya koyar. Buna ek olarak, Android kamera hizmeti her iki HAL'nin (1 ve 3) (Bu, daha az özellikli bir ön tarafı desteklemek istediğinizde yararlı olur) kamera HAL1 özellikli kamera ve kameralı daha gelişmiş bir arka kamera HAL3:

Tek bir kamera HAL modülü vardır (kendi sürüm numarası) içerir. Bu listede her birinde bulunan bağımsız kamera kendi sürüm numaralarına sahip. desteğin kullanılabilmesi için Kamera modülü 2 veya daha yeni bir sürümün yüklü olması gerekir 2 veya daha yeni cihazlarda kullanılabilir ve bu tür kamera modüllerinde, kamera (Android'in her iki sürümü de uygulamayı desteklediğini söylediğimizde bunu kastediyoruz) HAL'ler).