कैमरे से बोकेह

कैमरे के बोके इफ़ेक्ट का मतलब है, फ़ोटो में डेप्थ ऑफ़ फ़ील्ड को कम करना. इसके लिए, सीन के कुछ हिस्सों को धुंधला किया जाता है, ताकि वे फ़ोकस में न रहें. मोबाइल डिवाइसों के कैमरों में, बोके इफ़ेक्ट पाने के लिए, डेप्थ की जानकारी का इस्तेमाल किया जाता है. यह जानकारी, दो कैमरों से स्टीरियो विज़न या एक कैमरे के दो फ़ोटोडायोड (पीडी) से मिलती है.

Android 11 से, Android प्लैटफ़ॉर्म बोके इफ़ेक्ट को लागू करने की सुविधा देता है. साथ ही, तीसरे पक्ष के ऐप्लिकेशन के लिए, एपीआई उपलब्ध कराता है, ताकि वे इस सुविधा का इस्तेमाल कर सकें.

लागू करना

अपने डिवाइस पर कैमरे के बोके इफ़ेक्ट की सुविधा उपलब्ध कराने के लिए, यह तरीका अपनाएं:

  • ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES का विज्ञापन करें:

    यह टैग, तीन पूर्णांकों के टपल वाले कलेक्शन के फ़ॉर्मैट में होता है. इसमें हर टपल, {mode, maxWidth, maxHeight} के फ़ॉर्मैट में होता है. कैमरा HAL को {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0} के अलावा, भी सूची में शामिल करना होगा, एक या दोनों ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE और ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS मोड को उनकी संबंधित अधिकतम स्ट्रीमिंग आकार के साथ.

  • ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES का विज्ञापन करें:

    यह टैग, {minZoomRatio, maxZoomRatio} कलेक्शन के फ़ॉर्मैट में होता है. इसमें, एक्सटेंडेड सीन मोड के लिए ज़ूम रेशियो की सभी रेंज शामिल होती हैं. ये रेंज, ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES में दिए गए क्रम में ही होती हैं. ज़ूम की रेंज [1.0, 1.0] का मतलब है कि ज़ूम की सुविधा उपलब्ध नहीं है.

  • ANDROID_CONTROL_AVAILABLE_MODES में ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE को शामिल करें.

किसी ऐप्लिकेशन को बोके इफ़ेक्ट ट्रिगर करने के लिए, उसे ANDROID_CONTROL_MODE को ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE और ANDROID_CONTROL_EXTENDED_SCENE_MODE को, एक्सटेंडेड सीन मोड में से किसी एक पर सेट करना होगा. ध्यान दें कि स्टीरियो कंप्यूटेशन की वजह से, बोके इफ़ेक्ट को लागू करने पर ज़्यादा मेमोरी खर्च हो सकती है.

अगर किसी एक्सटेंडेड सीन मोड को हर फ़्रेम पर लागू नहीं किया जा सकता और उसे चालू/बंद करने पर अनचाही देरी होती है, तो ANDROID_REQUEST_AVAILABLE_SESSION_KEYS में ANDROID_CONTROL_EXTENDED_SCENE_MODE को शामिल करें. इसके साथ ही, ICameraDeviceSession::isReconfigurationRequired() तरीके को लागू करें, ताकि उन एक्सटेंडेड सीन मोड के लिए फिर से कॉन्फ़िगरेशन की ज़रूरत न पड़े जिनके लिए इसकी ज़रूरत नहीं होती.

सत्यापन

अपने डिवाइस पर बोके इफ़ेक्ट की सुविधा की पुष्टि करने के लिए, सीटीएस, वीटीएस, और सीटीएस की पुष्टि करने वाले टूल के ये टेस्ट चलाएं:

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • सीटीएस की पुष्टि करने वाले टूल में CameraBokehTest