HEIF इमेजिंग

Android 10 चलाने वाले डिवाइस HEIC कंप्रेस्ड इमेज फॉर्मेट का समर्थन करते हैं, जो ISO/IEC 23008-12 में निर्दिष्ट उच्च दक्षता वाले इमेज फाइल फॉर्मेट (HEIF) का एक उच्च दक्षता वाला वीडियो एन्कोडिंग (HEVC) विशिष्ट ब्रांड है। जेपीईजी फाइलों की तुलना में एचईआईसी-एन्कोडेड छवियां छोटे फ़ाइल आकारों के साथ बेहतर छवि गुणवत्ता प्रदान करती हैं।

HEIC चित्र कैमरा फ्रेमवर्क द्वारा उत्पन्न होते हैं जो कैमरा HAL से एक असम्पीडित छवि का अनुरोध करते हैं और इसे HEIC या HEVC एन्कोडर द्वारा एन्कोड किए जाने के लिए मीडिया सबसिस्टम को भेजते हैं।

आवश्यकताएं

HEIC छवि प्रारूप का समर्थन करने के लिए, आपके डिवाइस में स्थिर गुणवत्ता मोड के साथ MIMETYPE_IMAGE_ANDROID_HEIC या MIMETYPE_VIDEO_HEVC का समर्थन करने वाला हार्डवेयर एन्कोडर होना चाहिए।

कार्यान्वयन

अपने डिवाइस पर HEIC छवि प्रारूप का समर्थन करने के लिए, एक HEIC/HEVC कोडेक लागू करें और आवश्यक स्ट्रीम कॉन्फ़िगरेशन के लिए समर्थन प्रदान करें, जो कि IMPLEMENTATION_DEFINED / YUV स्ट्रीम और JPEG ऐप सेगमेंट स्ट्रीम हैं।

मीडिया

संगत हार्डवेयर के लिए निरंतर गुणवत्ता (CQ) मोड में HEIC/HEVC कोडेक को निम्नानुसार कार्यान्वित करें:

  • HEVC प्रकार का कोडेक छवि आकार के आधार पर या तो GRALLOC_USAGE_HW_VIDEO_ENCODER उपयोग के साथ IMPLEMENTATION_DEFINED प्रारूप या HAL_PIXEL_FORMAT_YCBCR_420_888 प्रारूप का उपभोग करता है।
  • HEIC प्रकार का कोडेक GRALLOC_USAGE_HW_IMAGE_ENCODER उपयोग के साथ IMPLEMENTATION_DEFINED प्रारूप का उपयोग करता है।

कैमरा

स्थिर मेटाडेटा में, ANDROID_HEIC_INFO_SUPPORTED को सत्य पर और ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT को [1, 16] के बीच के मान पर सेट करें, जो JPEG ऐप सेगमेंट की संख्या दर्शाता है।

प्रत्येक अनिवार्य स्ट्रीम संयोजन के लिए, आपके कैमरा डिवाइस को समान आकार की HEIC स्ट्रीम के साथ JPEG स्ट्रीम की अदला-बदली का समर्थन करना चाहिए।

सार्वजनिक API पर HEIC आउटपुट स्ट्रीम के लिए, कैमरा सेवा दो HAL आंतरिक स्ट्रीम बनाती है:

  • EXIF और थंबनेल सेगमेंट सहित ऐप सेगमेंट को स्टोर करने के लिए JPEG_APPS_SEGMENT उपयोग ध्वज के साथ एक BLOB स्ट्रीम
  • लक्ष्य कोडेक और HEIC स्ट्रीम आकार के आधार पर एक IMPLEMENTATION_DEFINED या YCBCR_420_888 स्ट्रीम के आकार को स्ट्रीम करता है

ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT के आधार पर, कैमरा फ्रेमवर्क JPEG ऐप सेगमेंट को पॉप्युलेट करने के लिए कैमरा HAL के लिए पर्याप्त बफ़र आवंटित करता है। APP1 खंड आवश्यक है लेकिन APP1 खंड ( APP2 और ऊपर) के बाद वाले खंड वैकल्पिक हैं। कैमरा फ्रेमवर्क APP1 सेगमेंट में EXIF ​​​​टैग को ओवरराइड करता है जिसे कैप्चर परिणाम मेटाडेटा से प्राप्त किया जा सकता है या मुख्य छवि बिटस्ट्रीम से संबंधित होता है और उन्हें MediaMuxer पर भेजता है।

चूंकि मीडिया एन्कोडर आउटपुट छवियों के मेटाडेटा में अभिविन्यास एम्बेड करता है, मुख्य छवि और थंबनेल के बीच एक सुसंगत अभिविन्यास सुनिश्चित करने के लिए, कैमरा एचएएल को android.jpeg.orientation. फ्रेमवर्क EXIF ​​​​मेटाडेटा और HEIC कंटेनर में ओरिएंटेशन लिखता है।

जेपीईजी प्रारूप से संबंधित स्थिर, नियंत्रण और गतिशील मेटाडेटा टैग भी एचईआईसी प्रारूप पर लागू होते हैं। उदाहरण के लिए, कैप्चर अनुरोध में android.jpeg.orientation और android.jpeg.quality मेटाडेटा टैग का उपयोग HEIC छवियों के उन्मुखीकरण और गुणवत्ता को नियंत्रित करने के लिए किया जाता है।

किसी एप्लिकेशन में HEIC प्रारूप का उपयोग करने के लिए, HEIC सार्वजनिक API का उपयोग करें।

अधिक जानकारी के लिए निम्न स्रोत देखें।

कैमरा एचएएल

ग्राफिक बफर डेटा स्पेस

ग्राफिक बफर उपयोग स्थान

मान्यकरण

यह सत्यापित करने के लिए कि आपका कार्यान्वयन HEIC छवियों का समर्थन करता है, TestingCamera2 परीक्षण एप्लिकेशन का उपयोग करें और निम्नलिखित कैमरा CTS और VTS परीक्षण चलाएँ।

कैमरा सीटीएस परीक्षण

कैमरा वीटीएस परीक्षण