ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

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

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

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

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

يعد تنفيذ معلمة الجلسة المرجعية بالفعل جزءًا من CameraHal . يستخدم HAL هذا واجهة Hal API القديمة. يجب أن يستخدم 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 .