Bagikan melalui


Pertimbangan untuk MFTs Driver pada kamera multi-pin (aplikasi perangkat UWP)

Windows 8.1 menawarkan IHV dan OEM sistem kemampuan untuk membuat plug-in pemrosesan video dalam bentuk Transformasi Yayasan Media (MFT), yang dikenal sebagai MFT driver kamera. Setelah diinstal, MFTs driver ini dapat digunakan oleh aplikasi perangkat UWP untuk mengaktifkan efek video khusus. Beberapa kamera menyediakan pin terpisah untuk pratinjau, pengambilan, dan diam. Kamera multi-pin ini menimbulkan tantangan unik bagi pengembang. Topik ini mencakup beberapa poin yang perlu dipertimbangkan saat mengembangkan MFT driver kamera pada kamera multi-pin. Untuk informasi selengkapnya tentang membuat MFT driver, lihat Membuat MFT driver kamera.

Pendahuluan

MFT driver juga disebut sebagai MFT0 untuk menunjukkan bahwa MFT pertama yang beroperasi di pembaca sumber. Instans terpisah MFT0 dilampirkan ke setiap pin pada sumber pengambilan. Untuk beberapa OEM sistem, driver penangkapan AVStream harus mendukung pin pratinjau, pin penangkapan, dan pin diam. Ini berarti bahwa mungkin ada tiga instans MFT0. Diagram ini menunjukkan arsitektur ini, dengan tiga salinan IHV Plug-in MFT, satu untuk setiap aliran.

capture extension plug-in model in mf.

Skenario umum untuk MFT0 mungkin menghadirkan tantangan. Dua fungsi populer untuk MFT0 adalah:

  • Menganalisis aliran video untuk memberikan umpan balik ke kamera untuk pengambilan yang ditingkatkan (seperti fokus otomatis berbasis host dan pencahayaan otomatis)

  • Menambahkan efek video

Webcam satu-pin

Secara historis, kamera telah diekspos ke Windows sebagai pin tangkapan tunggal. Diagram ini mewakili cara kerja webcam satu-pin:

one-pin webcam.

Dalam hal ini, kontrol kamera dan efek video berfungsi seperti yang dirancang karena pratinjau dan diam adalah tee'd dari pin pengambilan setelah kontrol kamera dan efek video diterapkan. Hasilnya adalah bahwa file yang disimpan atau teman obrolan pengguna akan melihat efek video yang sama dengan yang dilihat pengguna dalam pratinjau mereka, dan bahwa hanya ada satu instans fitur kontrol kamera. Jika ada aplikasi perangkat UWP terkait, aplikasi terhubung ke MFT0 pada pin pengambilan, sehingga MFT0 mendapatkan pesan kontrol dari aplikasi (yaitu, pengguna).

Webcam tiga-pin

Kamera tiga pin mungkin memiliki sebanyak tiga instans MFT0, tergantung pada kebutuhan aplikasi. Diagram ini mewakili cara kerja kamera tiga pin:

three-pin webcam.

Situasi ini menghadirkan beberapa tantangan. Pertama, dalam kasus solusi pencahayaan otomatis berbasis host, yang memerlukan kontrol langsung sensor kamera dan pengaturan ISP, tiga MFT0 mungkin mencoba mengontrol kamera secara bersamaan. Ini merusak sistem kontrol.

Kedua, berpotensi ada tiga instans efek video. Selain menimbulkan biaya tiga kali perhitungan, tiga instans MFT0 sekarang harus berkomunikasi dengan cara yang memastikan setiap bingkai video selalu memiliki efek yang sama dalam keadaan yang sama persis. Jika tidak, apa yang dilihat pengguna tidak akan menjadi apa yang disimpan atau dibagikan.

Selain itu, ada dua faktor perparah akhir:

  • Setiap instans MFT0 dapat dibuat atau dimatikan kapan saja

  • Aplikasi perangkat UWP hanya terhubung ke satu instans MFT0

Video terkompresi

Webcam atau sistem OEM dapat memilih untuk mengompres video sebelum disajikan pada pin pengambilan (yaitu, pada webcam itu sendiri). Membongkar kompresi ke webcam memungkinkan PC bertenaga lebih rendah untuk menyimpan dan berbagi video HD. Aliran video terkompresi ini umumnya tidak dapat dianalisis untuk mendukung kontrol kamera, juga tidak dapat menerapkan efek video. Ini menyajikan tantangan untuk membuat semua instans MFT0 (dan aplikasi perangkat Microsoft Store, jika ada) menyadari bahwa tidak ada efek yang akan diterapkan pada aliran penangkapan. Diagram ini mewakili video terkompresi:

compressed video.

Jika pengguna menerapkan efek video ke aliran pratinjau, itu tidak dapat diterapkan ke aliran pengambilan atau pin masih. Oleh karena itu, pengguna melihat efek video yang tidak diterapkan ke video yang disimpan atau di-streaming. Jika aliran pratinjau dihentikan, aplikasi perangkat Microsoft Store kemudian akan mencoba menyambungkan ke aliran pengambilan. Saat pengguna melakukan streaming video terkompresi, ini tidak memungkinkan banyak fitur.

Komunikasi antara instans MFT0

Jika tiga instans MFT0 dapat berkomunikasi satu sama lain, ini dapat menyelesaikan sebagian besar masalah. Bagaimana instans ini saling menemukan hingga IHV. Setelah semua MFT0 dapat berkomunikasi, instans MFT0 yang terhubung ke aplikasi perangkat Microsoft Store dapat memberi tahu instans lain efek mana yang diterapkan dan statusnya saat ini. Selain itu, ketiga instans dapat menentukan instans mana yang menerapkan kontrol kamera. Terakhir, pin pratinjau dapat menentukan apakah pin pengambilan adalah video yang dikodekan streaming. Pin pratinjau kemudian dapat menonaktifkan efek video.

Meskipun komunikasi antara instans MFT0 memecahkan masalah pengalaman pengguna utama, tiga instans efek video masih harus berjalan secara bersamaan. Beberapa efek video dapat menggunakan sumber daya CPU yang paling tersedia, terutama ketika video layar penuh sedang dipratinjau dan diambil secara bersamaan. Ini adalah masalah serius. Untuk alasan performa, setiap ISV harus mempertimbangkan pemrosesan apa yang dapat dilakukan sekali, seperti deteksi wajah, dan dibagikan dengan semua instans MFT0.