מכשירים עם Android 10 תומכים בפורמט התמונה הדחוס HEIC, שהוא מותג ספציפי של פורמט קובץ התמונה היעיל (HEIF) עם קידוד וידאו יעיל (HEVC), כפי שמצוין בתקן ISO/IEC 23008-12. תמונות בקידוד HEIC מציעות איכות תמונה טובה יותר וגודל קובץ קטן יותר בהשוואה לקובצי JPEG.
תמונות HEIC נוצרות על ידי מסגרת המצלמה שמבקשת תמונה לא דחוסה מ-camera HAL ושולחת אותה למערכת המשנה של המדיה כדי לקודד אותה באמצעות מקודד HEIC או HEVC.
דרישות
כדי לתמוך בפורמט התמונה HEIC, במכשיר שלכם צריך להיות מקודד חומרה שתומך ב-MIMETYPE_IMAGE_ANDROID_HEIC
או ב-MIMETYPE_VIDEO_HEVC
עם מצב איכות קבוע.
הטמעה
כדי לתמוך בפורמט התמונה HEIC במכשיר, צריך להטמיע קודק HEIC/HEVC ולספק תמיכה בהגדרות הנדרשות של הזרם, שהן הזרמים 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:
- זרם BLOB עם דגל השימוש
JPEG_APPS_SEGMENT
לאחסון קטעי אפליקציה, כולל קטעי 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 public API.
מידע נוסף זמין במקורות הבאים.
Camera HAL
שטח נתונים של מאגר גרפי
גרף של השימוש במאגר הנתונים הזמני
אימות
כדי לוודא שההטמעה תומכת בתמונות HEIC, משתמשים באפליקציית הבדיקה TestingCamera2
ומריצים את הבדיקות הבאות של מצלמה CTS ו-VTS.
בדיקות CTS למצלמה
NativeImageReaderTest#testHeic
ImageReaderTest#testHeic
ImageReaderTest#testRepeatingHeic
ReprocessCaptureTest#testBasicYuvToHeicReprocessing
ReprocessCaptureTest#testBasicOpaqueToHeicReprocessing
RobustnessTest#testMandatoryOutputCombinations
StillCaptureTest#testHeicExif
בדיקות VTS של מצלמות