การถ่ายภาพ HEIF

อุปกรณ์ที่ใช้ Android 10 รองรับ HEIC รูปแบบรูปภาพที่บีบอัด สูง แบรนด์เฉพาะการเข้ารหัสวิดีโอที่มีประสิทธิภาพ (HEVC) ของรูปภาพประสิทธิภาพสูง รูปแบบไฟล์ (HEIF) ตามที่ระบุไว้ใน ISO/IEC 23008-12 ข้อเสนอรูปภาพที่เข้ารหัส HEIC คุณภาพรูปภาพดีขึ้นด้วยขนาดไฟล์ที่เล็กลงเมื่อเทียบกับไฟล์ JPEG

อิมเมจ HEIC สร้างขึ้นโดยเฟรมเวิร์กกล้องที่ขอไฟล์ที่ไม่มีการบีบอัด รูปภาพจาก กล้อง HAL แล้วส่งไปยังระบบย่อยของสื่อเพื่อ ต้องเข้ารหัสโดยโปรแกรมเปลี่ยนไฟล์ HEIC หรือ HEVC

ข้อกำหนด

หากต้องการรองรับรูปแบบรูปภาพ HEIC อุปกรณ์ต้องมีฮาร์ดแวร์เปลี่ยนไฟล์ สนับสนุน MIMETYPE_IMAGE_ANDROID_HEIC หรือ MIMETYPE_VIDEO_HEVC พร้อมด้วย โหมดคุณภาพคงที่

การใช้งาน

ใช้ตัวแปลงรหัส HEIC/HEVC เพื่อรองรับรูปแบบอิมเมจ HEIC บนอุปกรณ์ และให้การสนับสนุนสำหรับการกำหนดค่าสตรีมที่จำเป็น ซึ่งได้แก่ สตรีม IMPLEMENTATION_DEFINED/YUV รายการและสตรีมกลุ่มในแอป JPEG

สื่อ

ใช้ตัวแปลงรหัส HEIC/HEVC ในโหมดคุณภาพคงที่ (CQ) สำหรับ ฮาร์ดแวร์ที่เกี่ยวข้องดังนี้

  • ตัวแปลงรหัสประเภท HEVC จะใช้ IMPLEMENTATION_DEFINED ที่มีการใช้ GRALLOC_USAGE_HW_VIDEO_ENCODER หรือ รูปแบบ HAL_PIXEL_FORMAT_YCBCR_420_888 ขึ้นอยู่กับขนาดรูปภาพ
  • ตัวแปลงรหัสประเภท HEIC จะใช้รูปแบบ IMPLEMENTATION_DEFINED ที่มี การใช้งาน GRALLOC_USAGE_HW_IMAGE_ENCODER

กล้อง

ในข้อมูลเมตาแบบคงที่ ให้ตั้งค่า ANDROID_HEIC_INFO_SUPPORTED เป็น true และ ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT เป็นค่าระหว่าง [1, 16] ซึ่งระบุจำนวนกลุ่มแอป JPEG

สำหรับชุดค่าผสมของสตรีมที่จำเป็นแต่ละรายการ อุปกรณ์กล้องต้องรองรับการสลับ สตรีม JPEG ที่มีสตรีม HEIC ขนาดเดียวกัน

สำหรับสตรีมเอาต์พุต HEIC ที่ API สาธารณะ บริการของกล้องจะสร้าง HAL 2 รายการ สตรีมภายใน:

  • สตรีม BLOB ที่มีแฟล็กการใช้งาน JPEG_APPS_SEGMENT ไปยังแอป Store กลุ่มที่รวม EXIF และกลุ่มภาพขนาดย่อ
  • IMPLEMENTATION_DEFINED หรือ YCBCR_420_888 จะสตรีมขนาด สตรีม HEIC ขึ้นอยู่กับตัวแปลงรหัสเป้าหมายและขนาดสตรีม HEIC

เฟรมเวิร์กของกล้องจาก ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT จัดสรรบัฟเฟอร์ที่ใหญ่พอสำหรับ HAL ของกล้องเพื่อสร้างแอป JPEG กลุ่ม ต้องมีกลุ่ม APP1 แต่กลุ่มที่อยู่หลัง APP1 กลุ่ม (APP2 ขึ้นไป) เป็นตัวเลือกที่ไม่บังคับ เฟรมเวิร์กกล้องจะลบล้าง EXIF แท็กในกลุ่ม APP1 ที่ได้มาจากข้อมูลเมตาของผลการบันทึก หรือเกี่ยวข้องกับบิตสตรีมของภาพหลักแล้วส่งไปยัง MediaMuxer

เนื่องจากโปรแกรมเปลี่ยนไฟล์สื่อมีการวางแนวในข้อมูลเมตาของเอาต์พุต รูปภาพ เพื่อให้การวางแนวระหว่างรูปภาพหลักและภาพขนาดย่อสอดคล้องกัน HAL ของกล้องต้องไม่หมุนรูปภาพขนาดย่อตาม android.jpeg.orientation. เฟรมเวิร์กจะเขียนการวางแนวลงใน EXIF ข้อมูลเมตาและคอนเทนเนอร์ HEIC

นอกจากนี้ แท็กข้อมูลเมตาแบบคงที่ การควบคุม และข้อมูลเมตาแบบไดนามิกที่เกี่ยวข้องกับรูปแบบ JPEG ใช้กับรูปแบบ HEIC ตัวอย่างเช่น android.jpeg.orientation และ มีการใช้แท็กข้อมูลเมตา android.jpeg.quality รายการในคำขอบันทึกเพื่อควบคุม การวางแนวและคุณภาพของรูปภาพ HEIC

หากต้องการใช้รูปแบบ HEIC ในแอป ให้ใช้ HEIC สาธารณะ

ดูข้อมูลเพิ่มเติมได้ในแหล่งที่มาต่อไปนี้

HAL ของกล้อง

พื้นที่เก็บข้อมูลบัฟเฟอร์กราฟิก

พื้นที่การใช้บัฟเฟอร์กราฟิก

การตรวจสอบความถูกต้อง

หากต้องการตรวจสอบว่าการใช้งานของคุณรองรับอิมเมจ HEIC ให้ใช้ TestingCamera2 แอปทดสอบและเรียกใช้การทดสอบ CTS และ VTS ของกล้องดังต่อไปนี้

การทดสอบ CTS ในกล้อง

การทดสอบ VTS ของกล้อง