HEIF Görüntüleme

Android 10 çalıştıran cihazlar, ISO/IEC 23008-12'de belirtildiği gibi yüksek verimli görüntü dosyası biçiminin (HEIF) yüksek verimli video kodlamasına (HEVC) özgü bir markası olan HEIC sıkıştırılmış görüntü biçimini destekler. HEIC kodlu görüntüler, JPEG dosyalarına kıyasla daha küçük dosya boyutlarıyla daha iyi görüntü kalitesi sunar.

HEIC görüntüleri, kamera HAL'ından sıkıştırılmamış bir görüntü talep eden ve bunu bir HEIC veya HEVC kodlayıcı tarafından kodlanmak üzere medya alt sistemine gönderen kamera çerçevesi tarafından oluşturulur.

Gereksinimler

HEIC görüntü biçimini desteklemek için cihazınızda sabit kalite moduyla MIMETYPE_IMAGE_ANDROID_HEIC veya MIMETYPE_VIDEO_HEVC destekleyen bir donanım kodlayıcı olmalıdır.

uygulama

Cihazınızda HEIC görüntü biçimini desteklemek için bir HEIC/HEVC codec bileşeni uygulayın ve IMPLEMENTATION_DEFINED / YUV akışları ve JPEG uygulama segmenti akışları olan gerekli akış yapılandırmaları için destek sağlayın.

medya

HEIC/HEVC codec bileşenini ilgili donanım için sabit kalite (CQ) modunda aşağıdaki gibi uygulayın:

  • HEVC türü codec bileşeni, görüntü boyutuna bağlı olarak GRALLOC_USAGE_HW_VIDEO_ENCODER kullanımıyla IMPLEMENTATION_DEFINED biçimini veya HAL_PIXEL_FORMAT_YCBCR_420_888 biçimini kullanır.
  • HEIC türü codec bileşeni, GRALLOC_USAGE_HW_IMAGE_ENCODER kullanımıyla IMPLEMENTATION_DEFINED biçimini kullanır.

Kamera

Statik meta verilerde, ANDROID_HEIC_INFO_SUPPORTED true olarak ve ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT [1, 16] arasında bir değere ayarlayın ve JPEG uygulama segmentlerinin sayısını belirtin.

Her zorunlu akış kombinasyonu için, kamera cihazınızın aynı boyutta bir HEIC akışıyla bir JPEG akışının değiştirilmesini desteklemesi gerekir.

Genel API'deki bir HEIC çıkış akışı için kamera hizmeti iki HAL dahili akışı oluşturur:

  • EXIF ve küçük resim segmentleri dahil olmak üzere uygulama segmentlerini depolamak için JPEG_APPS_SEGMENT kullanım bayrağına sahip bir BLOB akışı
  • Bir IMPLEMENTATION_DEFINED veya YCBCR_420_888 akışı, hedef codec bileşenine ve HEIC akış boyutuna bağlı olarak HEIC akışının boyutu

ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT dayalı olarak, kamera çerçevesi, kamera HAL'ının JPEG uygulama segmentlerini doldurması için yeterince büyük arabellekler ayırır. APP1 segmenti gereklidir ancak APP1 segmentini takip eden segmentler ( APP2 ve üstü) isteğe bağlıdır. Kamera çerçevesi, yakalama sonucu meta verilerinden türetilen veya ana görüntü bit akışıyla ilgili olan APP1 segmentindeki EXIF ​​etiketlerini geçersiz kılar ve bunları MediaMuxer gönderir.

Medya kodlayıcı, ana görüntü ile küçük resim arasında tutarlı bir yönlendirme sağlamak için yönlendirmeyi çıktı görüntülerinin meta verilerine gömdüğünden, kamera HAL'ı, küçük resim görüntüsünü android.jpeg.orientation. Çerçeve, yönlendirmeyi EXIF ​​meta verilerine ve HEIC kapsayıcısına yazar.

JPEG formatı ile ilgili statik, kontrol ve dinamik meta veri etiketleri HEIC formatı için de geçerlidir. Örneğin, yakalama isteğindeki android.jpeg.orientation ve android.jpeg.quality meta veri etiketleri, HEIC görüntülerinin yönünü ve kalitesini kontrol etmek için kullanılır.

HEIC biçimini bir uygulamada kullanmak için HEIC genel API'sini kullanın.

Daha fazla bilgi için aşağıdaki kaynaklara bakın.

kamera HAL

Grafik arabelleği veri alanı

Grafik arabelleği kullanım alanı

doğrulama

Uygulamanızın HEIC görüntülerini desteklediğini doğrulamak için TestingCamera2 test uygulamasını kullanın ve aşağıdaki kamera CTS ve VTS testlerini çalıştırın.

Kamera CTS testleri

Kamera VTS testleri