תמונת HEIF

במכשירים עם Android 10 יש תמיכה בפורמט התמונה המכווץ HEIC, שהוא מותג ספציפי של קידוד וידאו יעיל (HEVC) בפורמט קובץ תמונה יעיל (HEIF), כפי שמפורט ב-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 ותמונות ממוזערות
  • גודל הסטרימינג של HEIC הוא IMPLEMENTATION_DEFINED או YCBCR_420_888, בהתאם לקודק היעד ולגודל של שידור 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 של המצלמה