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

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

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