معلمات الجلسة

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

في Android 10 ، يمكنك تحسين الأداء باستخدام ميزة استعلام إعادة تكوين الجلسة الاختيارية لمزيد من التحكم في منطق إعادة تكوين معلمة الجلسة الداخلية. لمزيد من المعلومات، راجع الدورة الاستعلام إعادة تشكيل .

الأمثلة والمصدر

وتنفيذ المعلمة جلسة المرجعي هو بالفعل جزء من CameraHal . يستخدم HAL هذا واجهة Hal API القديمة. و binderized CameraHal أن تنفذ الكاميرا HIDL API يجب استخدام HIDL منها sessionParams دخول للوصول إلى أية معلمات جلسة واردة جديدة أثناء تكوين تيار.

يمكن للعملاء كاميرا الاستعلام مفاتيح جميع المعلمات الجلسة بدعم من يدعو getAvailableSessionKeys() وأخيرا تعيين القيم الأولية الخاصة بها عن طريق setSessionParameters() .

تطبيق

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

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

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

التخصيص

يمكنك تحديد العلامات في قائمة معلمات الجلسة المتاحة التي يتم ملؤها على جانب CameraHal. هذه الميزة غير نشطة إذا ترك CameraHal قائمة معلمات الجلسة المتاحة فارغة.

تصديق

تتضمن CTS الحالات الجديدة التالية لاختبار معلمات الجلسة:

بشكل عام ، بعد أن تكون معلمة معينة جزءًا من قائمة مفاتيح الجلسة ، يتم تضمين قيمتها الحالية كجزء من معلمات الجلسة التي تم تمريرها أثناء تكوين الدفق في طبقة HAL.

يجب تحديد معلمات الجلسة بعناية. يجب ألا تتغير القيم بشكل متكرر ، على كل حال ، بين تكوينات الدفق. المعلمات التي تتغير بشكل متكرر ، مثل نية الالتقاط ، غير مناسبة وإضافتها إلى قائمة معلمات الجلسة قد تتسبب في فشل CTS بسبب إعادة التكوين الداخلية المفرطة.

استعلام عن إعادة تكوين الجلسة

يقدم Android 10 ميزة استعلام إعادة تكوين الجلسة الاختيارية لتحسين الأداء حيث يمكن أن تؤدي عمليات إعادة تكوين الدفق الداخلي الناتجة عن تعديلات قيمة معلمة الجلسة إلى تقليل الأداء. لمعالجة هذا القلق، HIDL ICameraDeviceSession الإصدار 3.5 وارتفاع الدعم لل isReconfigurationRequired الطريقة، التي تنص على ضبط الحبيبات غرامة على منطق إعادة تشكيل المعلمة جلسة الداخلي. باستخدام هذه الطريقة ، يمكن أن تحدث إعادة تكوين الدفق بدقة عند الحاجة.

الحجج ل isReconfigurationRequired توفر المعلومات المطلوبة عن كل بانتظار تعديل المعلمة الدورة، مما يتيح لأنواع مختلفة من التخصيصات الخاصة بالجهاز.

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

تطبيق

لدعم الاستفسارات جلسة إعادة تشكيل، يجب تنفيذ isReconfigurationRequired طريقة للتحقق ما إذا كان يلزم كاملة إعادة تشكيل تيار لقيم المعلمات الدورة الجديدة.

إذا تغير العميل قيمة أي معلمة جلسة المعلن عنها، ويدعو إطار الكاميرا isReconfigurationRequired الأسلوب. اعتمادًا على القيم المحددة ، يقرر HAL ما إذا كان يلزم إعادة تكوين تيار كامل. إذا إرجاع HAL false ، والإطار الكاميرا يتخطى إعادة تشكيل الداخلية. إذا إرجاع HAL true ، يعيد تكوين إطار تيارات ويمر قيم المعلمات دورة جديدة وفقا لذلك.

و isReconfigurationRequired يمكن أن تسمى الطريقة التي الإطار بعض الوقت قبل أن يتم تقديم الطلب مع معايير جديدة لHAL، ويمكن أن يتم إلغاء الطلب قبل تقديمه. لذلك ، يجب ألا يستخدم HAL استدعاء الأسلوب هذا لتغيير سلوكه بأي شكل من الأشكال.

يجب أن يفي تطبيق HAL بالمتطلبات التالية:

  • يجب أن يكون الإطار قادرا على استدعاء isReconfigurationRequired طريقة في أي وقت بعد تكوين جلسة نشطة.
  • يجب ألا يكون هناك أي تأثير على أداء طلبات الكاميرا المعلقة. على وجه الخصوص ، يجب ألا يكون هناك أي خلل أو تأخير أثناء البث العادي للكاميرا.

يجب أن يفي الجهاز وتطبيق HAL بمتطلبات الأداء التالية:

  • يجب عدم تغيير إعدادات الكاميرا والأجهزة والبرامج.
  • يجب ألا يكون هناك تأثير مرئي للمستخدم على أداء الكاميرا.

و isReconfigurationRequired طريقة يأخذ الوسائط التالية:

  • oldSessionParams : معلمات الدورة من الدورة السابقة. عادة معلمات الجلسة الموجودة.
  • newSessionParams : معلمات جلسة جديدة التي تم تعيينها من قبل العميل.

رموز حالة الإرجاع المتوقعة هي:

  • OK : إعادة تشكيل الناجحة تتطلب الاستعلام.
  • METHOD_NOT_SUPPORTED : الجهاز كاميرا لا يدعم الاستعلام إعادة تشكيل.
  • INTERNAL_ERROR : الاستعلام إعادة تشكيل لا يمكن إكمال بسبب خطأ داخلي.

قيم الإرجاع هي:

  • true مطلوب ستريم إعادة:.
  • false غير مطلوب ستريم إعادة:.

تجاهل استعلام جلسة إعادة تشكيل، وHAL يعود METHOD_NOT_SUPPORTED أو false . ينتج عن هذا سلوك خدمة الكاميرا الافتراضي حيث يتم تشغيل إعادة تكوين الدفق عند تغيير كل معلمة جلسة.

تصديق

يمكن التحقق من صحة ميزة الاستعلام جلسة إعادة استخدام حالة اختبار VTS في CameraHidlTest#configureStreamsWithSessionParameters .