תמונת HEIF

מכשירים עם 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 למצלמה

בדיקות VTS של מצלמות