कैमरा बोके, फ़ील्ड की कम गहराई वाला इफ़ेक्ट होता है. इसे किसी सीन के कुछ हिस्सों को धुंधला करके बनाया जाता है, ताकि वे फ़ोकस में न रहें. मोबाइल डिवाइसों पर मौजूद कैमरों में, बोके इफ़ेक्ट पाने के लिए डेप्थ की जानकारी का इस्तेमाल किया जाता है. यह जानकारी, दो कैमरों से मिले स्टीरियो विज़न या एक ही कैमरे के दो फ़ोटोडायोड (पीडी) से मिलती है.
Android 11 से, Android प्लैटफ़ॉर्म पर बोके इफ़ेक्ट लागू करने की सुविधा उपलब्ध है. साथ ही, तीसरे पक्ष के ऐप्लिकेशन के लिए इस सुविधा को उपलब्ध कराने के लिए एपीआई भी उपलब्ध हैं.
लागू करना
अपने डिवाइस पर कैमरे की बोकेह सुविधा उपलब्ध कराने के लिए, यह तरीका अपनाएं:
विज्ञापन
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
:यह टैग, तीन पूर्णांक वाले टपल ऐरे के फ़ॉर्मैट में होता है. इसमें हर टपल,
{mode, maxWidth, maxHeight}
के फ़ॉर्मैट में होता है.{ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}
के अलावा, कैमरा HAL को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()
तरीके को लागू करें, ताकि एक्सटेंड किए गए सीन मोड के लिए दोबारा कॉन्फ़िगरेशन करने की ज़रूरत न पड़े.
Validation
अपने डिवाइस पर बोके इफ़ेक्ट की सुविधा की पुष्टि करने के लिए, CTS, VTS, और CTS Verifier के ये टेस्ट चलाएं:
CtsCameraTestCases
VtsHalCameraProviderV2_4TargetTest
CameraBokehTest
in CTS Verifier