إعدادات البث

يتضمّن Android ميزات تتيح لعملاء الكاميرات لاختيار الكاميرا المثلى أحداث البث المباشر لحالات استخدام معيّنة وللتأكد من أنّ مجموعات بث معيّنة مع جهاز الكاميرا. تشير تهيئة مصدر البيانات إلى مصدر بيانات واحد بث الكاميرا المهيأ في جهاز الكاميرا ويشير مجموعة البث إلى مجموعة واحدة أو أكثر من مجموعات البث التي تم ضبطها في جهاز الكاميرا لمزيد من المعلومات على هذه الميزات، ويمكنك معرفة إعدادات البث المقترَحة واجهة برمجة التطبيقات لطلب مجموعات الميزات

تطبيق المرجع

هناك تنفيذ مرجعي من جانب المورّد للتهيئة المقترحة مصادر البيانات وواجهة برمجة التطبيقات لطلب البحث عن ميزات تركيبة مصادر البيانات. يمكنك العثور على هذا والتنفيذ في Qcamera3HWI.cpp

يمكن لمورّدي الكاميرات الإعلان عن إعدادات البث المقترَحة لاستخدام محدّد حافظات لأجهزة الكاميرا. وهذه الإعدادات المقترَحة للبث، وهي: مجموعات فرعية من StreamConfigurationMap، مساعدة عملاء الكاميرا في اختيار الإعدادات المثلى

رغم StreamConfigurationMap يقدم معلومات شاملة حول تكوين البث لعملاء الكاميرا، لا تقدّم أي معلومات حول الكفاءة أو القوة أو الأداء تأثير اختيار مجموعة بث بدلاً من أخرى. يمكن لعملاء الكاميرا الاختيار بحرية من جميع إعدادات البث المباشر، ولكن في كثير من الحالات، يؤدي هذا إلى العملاء الذين يستخدمون تهيئات كاميرا دون المستوى الأمثل عمليات بحث شاملة تستغرق وقتًا طويلاً

على سبيل المثال، على الرغم من أنّ بعض تنسيقات YUV التي تمت معالجتها مطلوبة ويجب أن تكون قد لا يكون جهاز الكاميرا متوافقًا في الأصل مع التنسيقات. هذا النمط إلى الحصول على إذن إضافي للمعالجة لتحويل التنسيق وتقليل والكفاءة. يمكن أن يكون للحجم ونسبة العرض إلى الارتفاع المقابلة التأثير، ما يجعل أبعادًا معينة مفضلة من حيث القوة أدائه.

ليس من الضروري أن تكون خرائط إعدادات البث المقترَحة شاملة. مقارنةً بـ StreamConfigurationMap: يجب أن تتّبع خرائط الضبط المقترَحة المتطلبات الواردة في التطبيق ويمكن أن يتضمن أيًا من التنسيقات أو الأحجام أو القيم الأخرى المتوفرة في StreamConfigurationMap: التنسيقات أو الأحجام أو القيم الأخرى المخفية التي لم يتم العثور عليها في StreamConfigurationMap لا يمكن تضمينها في خرائط تكوين مجموعة البث المقترحة.

تظل جميع الاختبارات بدون تغيير ولا يتم تخفيفها بناءً على الاقتراحات إعدادات البث

إنّ الإعدادات المقترَحة للبث التي توفّرها الكاميرا هي اختيارية ويمكن لبرنامج الكاميرا تجاهلها.

التنفيذ

اتّبِع الخطوات التالية لتطبيق هذه الميزة.

إدخالات البيانات الوصفية

لتفعيل هذه الميزة، يجب أن يملأ طبقة تجريد الأجهزة (HAL) الكاميرا الثابتة التالية إدخالات بيانات التعريف:

  • android.scaler.availableRecommendedStreamConfigurations: مجموعة فرعية مقترَحة من إعدادات مجموعة البث لحالات استخدام معيّنة. تشير رسالة الأشكال البيانية صور نقطية تشير إلى حالات الاستخدام المقترحة في في شكل [1 << PREVIEW | 1 << RECORD..]. تمتد حالات الاستخدام إلى الصف العادي (التنسيق والعرض والارتفاع والإدخال) مع إدخال إضافي واحد. حالات استخدام عامة غير موجودة أو أي وحدات بت أخرى تم تعيينها ضمن النطاق [PUBLIC_END, VENDOR_START] محظورة.

    يتم تخزين هذه المعلومات في availableRecommendedStreamConfigurations لبيانات التعريف.

    يعرض المثال التالي صفيفًا لمصدر بيانات مقترَح. إعداد جهاز كاميرا لا يتوافق إلا مع 4K و1080p، حيث يُفضل استخدام كلتا درجة الدقة لتسجيل الفيديو ولكن لا تستخدم سوى 1080p المقترح لمعاينته.

    [3840, 2160, HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED,
    ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT,
    (1 << ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_RECORD |
    1 << ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_SNAPSHOT |
    1 << ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VIDEO_SNAPSHOT),
    1920, 1080, HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED,
    ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT,
    (1 << ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_PREVIEW |
    1 << ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_RECORD |
    1 << ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_SNAPSHOT |
    1 << ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VIDEO_SNAPSHOT)]
    
  • android.depth.availableRecommendedDepthStreamConfigurations (متوفّرة فقط إذا كان الجهاز متوافقًا:): مساحة البيانات التي ننصح بها بشأن العمق إعدادات البث المقترَحة لجهاز الكاميرا هذا تشبه أعلى إدخال البيانات الوصفية، تشير الصورة النقطية لحالة الاستخدام الإضافية إلى حالات الاستخدام.

    يتم تخزين هذه المعلومات في availableRecommendedInputOutputFormatsMap لبيانات التعريف.

  • android.scaler.availableRecommendedInputOutputFormatsMap (متوفّرة إذا كان متوافقًا مع الجهاز فقط): يشير هذا المصطلح إلى عملية ربط تنسيقات الصور المقترَحة التي في جهاز الكاميرا هذا لتدفقات الإدخال بتنسيقات الإخراج المقابلة.

    يتم تخزين هذه المعلومات في availableRecommendedDepthStreamConfigurations لبيانات التعريف.

تتوفر هذه المعلومات لعملاء الكاميرات من خلال recommendedStreamConfigurationMap واجهة برمجة التطبيقات.

حالات الاستخدام المطلوبة

يجب تقديم إعدادات البث المقترَحة لحالات الاستخدام التالية. واستيفاء المتطلبات اللازمة:

حالة الاستخدام المتطلبات
PREVIEW يجب أن تتضمّن المعاينة فقط إعدادات البث التي تمت معالجتها بدون توقف بتنسيقات إخراج مثل YUV_420_888 IMPLEMENTATION_DEFINED
RECORD يجب أن يشتمل سجلّ الفيديو على إعدادات بث تتوافق مع المحتوى المُعلَن عنه الملفات الشخصية للوسائط المتوافقة بتنسيق IMPLEMENTATION_DEFINED.
VIDEO_SNAPSHOT يجب أن تتضمن لقطة الفيديو تكوينات بث لا تقل عن كبيرًا يصل إلى الحد الأقصى لدرجات دقة RECORD وفقط مع تخزين البيانات الثنائية الكبيرة + تركيبة تنسيق DATASPACE_JFIF/مساحة بيانات (JPEG) الإعدادات من المفترض ألا تتسبب في حدوث خلل في المعاينة ويجب تشغيلها بمعدل 30 لقطة في الثانية.
SNAPSHOT يجب أن تتضمّن إعدادات بث اللقطة إعدادًا واحدًا على الأقل بحجم قريب إلى android.sensor.info.activeArraySize مع كائن تخزين البيانات الثنائية الكبيرة + تركيبة تنسيق DATASPACE_JFIF/مساحة بيانات (JPEG) مراعاة القيود المفروضة على نسبة العرض إلى الارتفاع والمحاذاة والقيود الأخرى الخاصة بالمورّد يجب ألا تكون المساحة عند الحدّ الأقصى للحجم المقترَح أقل من 97% من أداة الاستشعار مساحة حجم الصفيفة.
ZSL (إذا كان ذلك متاحًا) إعدادات بث الإدخال المقترَحة إذا كان جهاز الكاميرا يتيحها يجب الإعلان عنه مع مخرجات أخرى تمت معالجتها أو توقفها والتنسيقات.
RAW (إذا كان ذلك متاحًا) إعدادات البث الأولي المقترَحة إذا كان جهاز الكاميرا يتيحها يجب أن يتضمن فقط تنسيقات الإخراج المستندة إلى RAW.

حالات الاستخدام الأخرى

يمكنك توفير مصادر إعدادات إضافية مقترَحة لحالات الاستخدام الخاصة بعملية التنفيذ

التحقُّق

لاختبار تنفيذ مصادر بيانات الضبط المقترَحة، شغِّل اختبارات CTS وVTS التالية:

واجهة برمجة التطبيقات الخاصة بمجموعات الميزات لطلب البحث

بدءًا من نظام التشغيل Android 15، يوفر نظام Android الأساسي واجهة برمجة تطبيقات للاستعلام عن مجموعات الميزات. تتيح واجهة برمجة التطبيقات هذه لعملاء الكاميرا الاستعلام عمّا إذا يمكن للجهاز توفير مجموعة محددة من الميزات. واجهة برمجة التطبيقات هذه أمرًا ضروريًا لأن واجهة برمجة التطبيقات camera2 API تصمم ميزات مختلفة مثل 4k و60 لقطة في الثانية فيديو بنطاق عالي الديناميكية (HDR) وتقنية "دقة HDR فائقة" وتكبير أو تصغير الصورة الموسّعة وثباتها كعناصر تحكُّم عمودية.

المتطلبات

لإتاحة واجهة برمجة التطبيقات لطلب مجموعات الميزات، يجب تنفيذ طبقة تجريد الأجهزة (HAL) للكاميرا الإصدار 3 من واجهة ICameraDevice. للحصول على التفاصيل، يمكنك مراجعة قسم التنفيذ.

عندما تكون واجهة برمجة التطبيقات متوافقة، يجب أن يكون تثبيت المعاينة رأسيًا ميزات أخرى. يعني ذلك أنّه في أجهزة الكاميرا التي تتيح المعاينة التثبيت، القيمة المعروضة isStreamCombinationWithSettingsSupported يجب أن تكون القيمة نفسها لنسخة معينة عند تثبيت المعاينة تعمل أم لا. ويقلل هذا من مساحة البحث لطلبات بحث تركيبة الميزات.

بالإضافة إلى ذلك، في الفئة 15 من فئة أداء الوسائط، يجب أن تكون الكاميرا الخلفية الأساسية إتاحة تثبيت المعاينة مع معاينة HLG10 بتنسيق 10 بت للدقة 1080p و720p والمعاينة والحد الأقصى لحجم ملفات JPEG. لمزيد من التفاصيل عن هذه المتطلبات، يُرجى مراجعة قسم 2.2.7.2. الكاميرا من CDD.

التنفيذ

لإتاحة واجهة برمجة التطبيقات لطلب البحث في تركيبات الميزات، يجب تنفيذ ما يلي: واجهات برمجة تطبيقات استعلامات تركيبة الميزات في الإصدار 3 من ICameraDevice:

  • constructDefaultRequestSettings: تنشئ الإعدادات التلقائية لنوع CaptureRequest محدَّد. قناة HAL استخدام ICameraDeviceSession::constructDefaultRequestSettings التنفيذ.

  • isStreamCombinationWithSettingsSupported: للتحقّق من توافق الجهاز مع مجموعة محدّدة من بث الكاميرا مع معلَمات الجلسة ومفاتيح CaptureRequest الإضافية. يجب عرض true للتركيبات المتوافقة وfalse للتركيبات غير المتوافقة مجموعات الميزات. يمكن لـ HAL استخدام دالة HAL isStreamCombinationSupported التنفيذ وإضافة الدعم للتحقق من إعدادات CaptureRequest يتم اجتيازه في sessionParams.

  • getSessionCharacteristics: يتطلب مجموعة البث مع معلَمات الجلسة الخصائص الخاصة بالجلسة.

  • INFO_SESSION_CONFIGURATION_QUERY_VERSION: يسرد جميع عمليات ضبط الجلسات الشائعة الاستخدام. هذه الإعدادات عن طريق اختبار الامتثال.

في ما يتعلق بالإصدارات الأقدم من الإصدار 3 من واجهة ICameraDevice، يتم استخدام طبقة تجريد الأجهزة (HAL) تنفيذ isStreamCombinationSupported .

لمزيد من المعلومات حول مجموعات الميزات التي تطلبها واجهة برمجة التطبيقات، يُرجى الاطّلاع على مستندات حول sessionConfigurationQueryVersion في system/media/camera/docs/metadata_definitions.xml

للحصول على معلومات مرجعية بشأن هذه الميزة، راجع hardware/google/camera/devices/EmulatedCamera/hwl/

واجهات برمجة التطبيقات المتاحة للجميع

يمكن للتطبيقات استخدام واجهات برمجة التطبيقات العامة التالية للاستعلام عن مجموعات الميزات المتوافقة للجهاز:

  • CameraDevice.CameraDeviceSetup: تمثيل محدود لـ CameraDevice يمكن استخدامه لطلب البحث عن ميزة المجموعات بدون الحاجة إلى مثيل CameraDevice.

  • getCameraDeviceSetup: يتم الحصول على كائن CameraDeviceSetup لمعرّف كاميرا معيّن إذا تُرجع isCameraDeviceSetupSupported القيمة true.

  • INFO_SESSION_CONFIGURATION_QUERY_VERSION: إتاحة طلبات البحث الخاصة بتركيبات الميزات إذا كانت هذه القيمة VANILLA_ICE_CREAM أو أعلى.

  • OutputConfiguration: فئة تصف مخرجات الكاميرا، والتي يمكن أن تحتوي على سطح مؤجل الغرض من استعلامات تركيبة ميزات وقت الاستجابة السريع.

  • SessionConfiguration: فئة برامج الخدمات تصف إعداد الجلسة، بما في ذلك البث المجموعات ومعلمات الجلسة، والتي يمكن استخدامها للميزة استعلامات الدمج.

التحقُّق

للتحقّق من تنفيذ هذه الميزة، استخدِم نماذج VTS وCTS اختبارات الكاميرا ITS (CTS Verifier):

الإحالات الناجحة المحسّنة للعملاء المحتملين (VTS)

مجموعة أدوات اختبار التوافق (CTS)

كاميرا ITS