Android 10 çalıştıran cihazlar HEIC'yi destekler sıkıştırılmış resim biçiminde, yüksek verimlilik video kodlamasına (HEVC) özgü, yüksek verimliliğe sahip resmin bir markası aşağıdaki şekilde belirtildiği gibi dosya biçimini (HEIF) ISO/IEC 23008-12. HEIC kodlu resim teklifi JPEG dosyalarına kıyasla daha küçük dosya boyutlarında daha iyi resim kalitesi sağlar.
HEIC resimleri kamera çerçevesi tarafından oluşturulur ve sıkıştırılmamış resmi kamera HAL'sini kullanıp medya alt sistemine göndererek bir HEIC veya HEVC kodlayıcı ile kodlanmalıdır.
Gereksinimler
HEIC resim biçimini desteklemek için cihazınızda bir donanım kodlayıcısı olmalıdır
destekleniyor
MIMETYPE_IMAGE_ANDROID_HEIC
veya
MIMETYPE_VIDEO_HEVC
şununla:
sabit kalite modu.
Uygulama
Cihazınızda HEIC resim biçimini desteklemek için bir HEIC/HEVC codec'i uygulayın
ve kullanıcı izni için gereken akış yapılandırmaları
IMPLEMENTATION_DEFINED
/YUV
akış ve JPEG uygulama segmenti akışları.
Medya
için HEIC/HEVC codec'ini sabit kalite (CQ) modunda uygulayın aşağıdaki gibi karşılık gelen donanıma sahip olabilir:
- HEVC türü codec,
IMPLEMENTATION_DEFINED
biçimiGRALLOC_USAGE_HW_VIDEO_ENCODER
veyaHAL_PIXEL_FORMAT_YCBCR_420_888
biçiminde olur. - HEIC türü codec,
IMPLEMENTATION_DEFINED
GRALLOC_USAGE_HW_IMAGE_ENCODER
kullanımı.
Kamera
Statik meta verilerde ANDROID_HEIC_INFO_SUPPORTED
öğesini doğru olarak ayarlayın ve
ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT
değerini [1, 16]
,
Bu değer, JPEG uygulama segmentlerinin sayısını gösterir.
Zorunlu her yayın kombinasyonu için kamera cihazınızın değiştirmeyi desteklemesi gerekir aynı boyutta HEIC akışına sahip bir JPEG akışı.
Kamera hizmeti, herkese açık API'deki bir HEIC çıkış akışı için iki HAL oluşturur dahili akışlar:
- Uygulamayı depolamak için
JPEG_APPS_SEGMENT
kullanım işaretine sahip bir BLOB akışı EXIF ve küçük resim segmentleri dahil segmentler - Şu boyutta bir
IMPLEMENTATION_DEFINED
veyaYCBCR_420_888
akışı: Hedef codec'e ve HEIC akış boyutuna bağlı olarak HEIC akışı
ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT
temel alınarak kamera çerçevesi
kamera HAL'sinin JPEG uygulamasını doldurmasına yetecek kadar büyük arabellekler ayırır
emin olun. APP1
segmenti zorunludur ancak APP1
segmentini takip eden segmentler
segmentleri (APP2
ve üzeri) isteğe bağlıdır. Kamera çerçevesi EXIF çerçevesini geçersiz kılar
APP1
segmentinde, yakalama sonucu meta verilerinden türetilebilecek etiketler
veya ana resim bit akışıyla ilişkilidir ve bunları MediaMuxer
ürününe gönderir.
Medya kodlayıcı, yönü çıkış meta verisine yerleştirir.
Böylece, ana resim ile küçük resim arasında yönün tutarlı olmasını sağlamak için
kamera donanım soyutlama katmanının, küçük resmi
android.jpeg.orientation.
Çerçeve, yönü EXIF dosyasına yazar
meta veri ve HEIC kapsayıcısıdır.
JPEG biçimiyle ilgili statik, kontrol ve dinamik meta veri etiketleri de
HEIC biçimine uygulanır. Örneğin, android.jpeg.orientation
ve
Yakalama isteğindeki android.jpeg.quality
meta veri etiketi, kontrol etmek için kullanılır
HEIC resimlerin yönü ve kalitesi.
Bir uygulamada HEIC biçimini kullanmak için HEIC herkese açık API.
Daha fazla bilgi için aşağıdaki kaynaklara bakın.
Kamera donanım soyutlama katmanı
Grafik arabellek veri alanı
Grafik arabellek kullanım alanı
Doğrulama
Uygulamanızın HEIC görüntülerini desteklediğini doğrulamak için
TestingCamera2
test uygulamasını açıp aşağıdaki kamera CTS ve VTS testlerini çalıştırın.
Kamera CTS testleri
NativeImageReaderTest#testHeic
ImageReaderTest#testHeic
ImageReaderTest#testRepeatingHeic
ReprocessCaptureTest#testBasicYuvToHeicReprocessing
ReprocessCaptureTest#testBasicOpaqueToHeicReprocessing
RobustnessTest#testMandatoryOutputCombinations
StillCaptureTest#testHeicExif
Kamera VTS testleri