एंड्रॉइड 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 परीक्षण चलाएँ।
कैमरा सीटीएस परीक्षण
-
NativeImageReaderTest#testHeic
-
ImageReaderTest#testHeic
-
ImageReaderTest#testRepeatingHeic
-
ReprocessCaptureTest#testBasicYuvToHeicReprocessing
-
ReprocessCaptureTest#testBasicOpaqueToHeicReprocessing
-
RobustnessTest#testMandatoryOutputCombinations
-
StillCaptureTest#testHeicExif
कैमरा वीटीएस परीक्षण