Tham số phiên

Tính năng tham số phiên giúp giảm độ trễ bằng cách cho phép máy khách chủ động định cấu hình tập hợp con các tham số yêu cầu tốn kém, tức là các tham số phiên, như một phần của giai đoạn khởi tạo phiên chụp. Với tính năng này, việc triển khai HAL của bạn sẽ nhận được các tham số máy khách trong giai đoạn cấu hình luồng thay vì yêu cầu thu thập đầu tiên và có thể, tùy thuộc vào giá trị của chúng, chuẩn bị và xây dựng quy trình nội bộ hiệu quả hơn.

Trong Android 10, bạn có thể cải thiện hiệu suất bằng cách sử dụng tính năng truy vấn cấu hình lại phiên tùy chọn để kiểm soát nhiều hơn logic cấu hình lại tham số phiên nội bộ. Để biết thêm thông tin, hãy xem Truy vấn cấu hình lại phiên .

Ví dụ và nguồn

Việc triển khai tham số phiên tham chiếu đã là một phần của CameraHal . HAL này sử dụng API Hal cũ. CameraHal được liên kết triển khai API HIDL của máy ảnh phải sử dụng mục nhập HIDL sessionParams tương ứng để truy cập mọi tham số phiên mới đến trong quá trình định cấu hình luồng.

Máy khách máy ảnh có thể truy vấn khóa của tất cả tham số phiên được hỗ trợ bằng cách gọi getAvailableSessionKeys() và cuối cùng đặt giá trị ban đầu của chúng thông qua setSessionParameters() .

Thực hiện

Việc triển khai CameraHal của bạn phải điền ANDROID_REQUEST_AVAILABLE_SESSION_KEYS trong siêu dữ liệu máy ảnh tĩnh tương ứng và cung cấp một tập hợp con ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS , chứa danh sách các khóa khó áp dụng cho mỗi khung hình và có thể dẫn đến độ trễ không mong muốn khi được sửa đổi trong suốt thời gian phiên chụp.

Các ví dụ điển hình bao gồm các tham số yêu cầu cấu hình lại phần cứng tốn nhiều thời gian hoặc thay đổi đường dẫn bên trong máy ảnh. Việc kiểm soát các tham số phiên vẫn có thể được thực hiện trong các yêu cầu thu thập nhưng khách hàng nên biết và mong đợi sự chậm trễ trong ứng dụng của họ.

Khung này giám sát tất cả các yêu cầu đến và nếu phát hiện sự thay đổi về giá trị của tham số phiên, nó sẽ cấu hình lại camera bên trong. Cấu hình luồng mới được chuyển tới CameraHal sau đó bao gồm các giá trị tham số phiên được cập nhật, được sử dụng để định cấu hình quy trình camera hiệu quả hơn.

Tùy chỉnh

Bạn có thể xác định các thẻ trong danh sách tham số phiên có sẵn được điền ở phía CameraHal. Tính năng này không hoạt động nếu CameraHal để trống danh sách tham số phiên khả dụng.

Thẩm định

CTS bao gồm các trường hợp mới sau đây để kiểm tra các tham số phiên:

Nói chung, sau khi một tham số nhất định là một phần của danh sách khóa phiên, giá trị hiện tại của nó sẽ được đưa vào như một phần của các tham số phiên được truyền trong quá trình cấu hình luồng ở lớp HAL.

Các tham số phiên phải được lựa chọn cẩn thận. Các giá trị không được thay đổi thường xuyên, nếu có, giữa các cấu hình luồng. Các tham số thay đổi thường xuyên, chẳng hạn như mục đích chụp, không phù hợp và việc thêm chúng vào danh sách tham số phiên có thể gây ra lỗi CTS do cấu hình lại nội bộ quá mức.

Truy vấn cấu hình lại phiên

Android 10 giới thiệu tính năng truy vấn cấu hình lại phiên tùy chọn để cải thiện hiệu suất vì việc cấu hình lại luồng nội bộ do sửa đổi giá trị tham số phiên có thể làm giảm hiệu suất. Để giải quyết mối lo ngại này, HIDL ICameraDeviceSession phiên bản 3.5 trở lên hỗ trợ phương thức isReconfigurationRequired , phương thức này cung cấp khả năng kiểm soát chi tiết đối với logic cấu hình lại tham số phiên nội bộ. Sử dụng phương pháp này, việc cấu hình lại luồng có thể diễn ra chính xác khi được yêu cầu.

Các đối số cho isReconfigurationRequired cung cấp thông tin cần thiết về mọi sửa đổi tham số phiên đang chờ xử lý, cho phép thực hiện nhiều loại tùy chỉnh dành riêng cho thiết bị.

Tính năng này chỉ được triển khai trong dịch vụ camera và camera HAL. Không có API công khai. Nếu tính năng này được triển khai, máy khách sẽ thấy hiệu suất được cải thiện khi làm việc với các tham số phiên.

Thực hiện

Để hỗ trợ các truy vấn cấu hình lại phiên, bạn phải triển khai phương thức isReconfigurationRequired để kiểm tra xem liệu việc cấu hình lại luồng hoàn chỉnh có cần thiết cho các giá trị tham số phiên mới hay không.

Nếu máy khách thay đổi giá trị của bất kỳ tham số phiên được quảng cáo nào, khung camera sẽ gọi phương thức isReconfigurationRequired . Tùy thuộc vào các giá trị cụ thể, HAL quyết định xem có cần cấu hình lại luồng hoàn chỉnh hay không. Nếu HAL trả về false thì hệ thống camera sẽ bỏ qua quá trình cấu hình lại bên trong. Nếu HAL trả về true , khung sẽ cấu hình lại các luồng và chuyển các giá trị tham số phiên mới tương ứng.

Phương thức isReconfigurationRequired có thể được khung gọi một thời gian trước khi yêu cầu có tham số mới được gửi tới HAL và yêu cầu có thể bị hủy trước khi được gửi. Do đó, HAL không được sử dụng lệnh gọi phương thức này để thay đổi hành vi của nó theo bất kỳ cách nào.

Việc triển khai HAL phải đáp ứng các yêu cầu sau:

  • Khung phải có khả năng gọi phương thức isReconfigurationRequired bất cứ lúc nào sau khi cấu hình phiên hoạt động.
  • Không được có tác động đến hiệu suất của các yêu cầu máy ảnh đang chờ xử lý. Đặc biệt, không được xảy ra bất kỳ trục trặc hoặc độ trễ nào trong quá trình phát trực tiếp camera thông thường.

Thiết bị và việc triển khai HAL phải đáp ứng các yêu cầu về hiệu suất sau:

  • Không được thay đổi cài đặt phần cứng và phần mềm của máy ảnh.
  • Không được có tác động mà người dùng có thể nhìn thấy được đối với hiệu suất của máy ảnh.

Phương thức isReconfigurationRequired có các đối số sau:

  • oldSessionParams : Tham số phiên từ phiên trước. Thông thường các tham số phiên hiện có.
  • newSessionParams : Tham số phiên mới do khách hàng đặt.

Mã trạng thái trả lại dự kiến ​​là:

  • OK : Truy vấn yêu cầu cấu hình lại thành công.
  • METHOD_NOT_SUPPORTED : Thiết bị camera không hỗ trợ truy vấn cấu hình lại.
  • INTERNAL_ERROR : Truy vấn cấu hình lại không thể hoàn thành do lỗi nội bộ.

Các giá trị trả về là:

  • true : Cần phải cấu hình lại luồng.
  • false : Không cần cấu hình lại luồng.

Để bỏ qua truy vấn cấu hình lại phiên, HAL trả về METHOD_NOT_SUPPORTED hoặc false . Điều này dẫn đến hoạt động dịch vụ camera mặc định trong đó việc cấu hình lại luồng được kích hoạt mỗi khi thay đổi tham số phiên.

Thẩm định

Tính năng truy vấn cấu hình lại phiên có thể được xác thực bằng cách sử dụng trường hợp kiểm tra VTS trong CameraHidlTest#configureStreamsWithSessionParameters .