Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Pencitraan HEIF

Perangkat yang menjalankan Android 10 dukungan HEIC format gambar terkompresi, efisiensi tinggi encoding video (HEVC) merek tertentu dari efisiensi tinggi format file gambar (HEIF) sebagaimana ditentukan dalam ISO / IEC 23.008-12 . Gambar yang dikodekan HEIC menawarkan kualitas gambar yang lebih baik dengan ukuran file yang lebih kecil dibandingkan dengan file JPEG.

Gambar HEIC dihasilkan oleh kerangka kamera meminta gambar terkompresi dari kamera HAL dan mengirimnya ke subsistem media yang akan dikodekan oleh HEIC atau HEVC encoder.

Persyaratan

Untuk mendukung format gambar HEIC, perangkat Anda harus memiliki encoder hardware pendukung MIMETYPE_IMAGE_ANDROID_HEIC atau MIMETYPE_VIDEO_HEVC dengan modus kualitas konstan .

Penerapan

Untuk mendukung format gambar HEIC pada perangkat Anda, menerapkan HEIC / HEVC codec dan memberikan dukungan untuk konfigurasi aliran yang dibutuhkan, yang merupakan IMPLEMENTATION_DEFINED / YUV sungai dan segmen aplikasi JPEG sungai.

Media

Terapkan codec HEIC/HEVC dalam mode kualitas konstan (CQ) untuk perangkat keras yang sesuai sebagai berikut:

  • The HEVC ketik mengkonsumsi codec baik IMPLEMENTATION_DEFINED Format dengan GRALLOC_USAGE_HW_VIDEO_ENCODER penggunaan atau HAL_PIXEL_FORMAT_YCBCR_420_888 format yang tergantung pada ukuran gambar.
  • The HEIC jenis codec mengkonsumsi yang IMPLEMENTATION_DEFINED Format dengan GRALLOC_USAGE_HW_IMAGE_ENCODER penggunaan.

Kamera

Dalam metadata statis, mengatur ANDROID_HEIC_INFO_SUPPORTED ke benar, dan ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT untuk nilai antara [1, 16] , menunjukkan jumlah segmen aplikasi JPEG.

Untuk setiap kombinasi aliran wajib, perangkat kamera Anda harus mendukung pertukaran aliran JPEG dengan aliran HEIC dengan ukuran yang sama.

Untuk aliran keluaran HEIC di API publik, layanan kamera membuat dua aliran internal HAL:

  • Sebuah aliran BLOB dengan JPEG_APPS_SEGMENT bendera penggunaan untuk menyimpan segmen aplikasi termasuk EXIF dan thumbnail segmen
  • Sebuah IMPLEMENTATION_DEFINED atau YCBCR_420_888 streaming ukuran aliran HEIC tergantung pada codec target dan ukuran aliran HEIC

Berdasarkan ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT , kamera kerangka mengalokasikan buffer yang cukup besar untuk HAL kamera untuk mengisi segmen aplikasi JPEG. The APP1 segmen diperlukan tetapi segmen mengikuti APP1 segmen ( APP2 dan di atas) adalah opsional. Kerangka kamera menimpa tag EXIF di APP1 segmen yang dapat diturunkan dari penangkapan hasil metadata atau terkait dengan bitstream gambar utama dan mengirimkannya ke MediaMuxer .

Karena media encoder embeds orientasi dalam metadata gambar output, untuk memastikan orientasi konsisten antara gambar utama dan thumbnail, HAL kamera tidak harus memutar gambar thumbnail berdasarkan android.jpeg.orientation. Kerangka kerja menulis orientasi ke dalam metadata EXIF ​​dan wadah HEIC.

Tag metadata statis, kontrol, dan dinamis yang terkait dengan format JPEG juga berlaku untuk format HEIC. Sebagai contoh, android.jpeg.orientation dan android.jpeg.quality tag metadata dalam permintaan capture digunakan untuk mengontrol orientasi dan kualitas gambar HEIC.

Untuk menggunakan format HEIC dalam sebuah aplikasi, menggunakan API publik HEIC .

Untuk informasi lebih lanjut, lihat sumber berikut.

Kamera HAL

Ruang data buffer grafis

Ruang penggunaan buffer grafis

Validasi

Untuk memvalidasi bahwa penerapan Anda mendukung gambar HEIC, gunakan TestingCamera2 aplikasi tes dan menjalankan kamera berikut CTS dan VTS tes.

Tes kamera CTS

Tes VTS kamera