HEIF इमेजिंग

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

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

आवश्यकताएं

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

कार्यान्वयन

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

मिडिया

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

  • 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 स्ट्रीम को स्वैप करने का समर्थन करना चाहिए।

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

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

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

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

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

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

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

कैमरा एचएएल

ग्राफ़िक बफ़र डेटा स्थान

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

मान्यकरण

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

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

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