Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pemrosesan audio yang dilepas perangkat keras memungkinkan tugas pemrosesan audio utama dilakukan di luar CPU utama komputer.
Pemrosesan audio bisa sangat intensif secara komputasi. Jadi dalam banyak skenario, mungkin bermanfaat untuk memungkinkan prosesor khusus mengurus tugas pemrosesan seperti, misalnya, mencampur, dan menerapkan efek.
Ketika Anda mengimplementasikan driver untuk audio yang di-offload, Anda mengembangkan driver yang dapat memproses aliran audio yang di-offload, serta memperlihatkan kemampuan tersebut kepada sistem audio Windows.
Topik berikut di bagian ini membahas pengembangan driver, dampak aplikasi, dan masalah lain yang harus Anda ketahui ketika Anda mengembangkan driver audio untuk adaptor audio yang mengimplementasikan mesin audio perangkat keras untuk menangani aliran audio yang dilepas.
Implementasi Driver Audio Teroffload ke Perangkat Keras
Antarmuka Pembantu untuk Pemrosesan Audio yang Dialihkan
Pelaporan Glitch untuk Audio Yang Dilepas
Untuk informasi tentang APO yang di-offload, lihat Efek APO yang di-offload oleh Perangkat Keras
Gambaran Umum Arsitektur Pemrosesan Audio Hardware-Offloaded
Mesin audio perangkat lunak
Diagram berikut menunjukkan mesin audio perangkat lunak Windows.
Aliran audio tiba di mesin audio perangkat lunak dari lapisan API sesi audio Windows (WASAPI), dan mungkin melalui API tingkat yang lebih tinggi seperti Media Foundation. Dalam efek aliran (SFX) mesin audio perangkat lunak, dapat diterapkan pada setiap aliran sebelum setiap aliran dicampur, lalu diteruskan melalui efek endpoint yang tersedia (EFX) dan dikirim ke perangkat keras rendering dan speaker.
Mesin audio perangkat keras
Mesin audio perangkat keras diimplementasikan dalam adaptor audio, dan sebagian besar mencerminkan fungsionalitas mesin audio perangkat lunak. Dan meskipun Windows mendukung audio yang diproses melalui perangkat keras, driver audio untuk adaptor audio tertentu bertanggung jawab untuk memaparkan kemampuan perangkat keras audio, menggunakan topologi yang ditunjukkan dalam diagram berikut.
Mesin audio perangkat keras harus menerima satu aliran proses host dan hingga n aliran offload. Aliran yang di-offload ini dirutekan langsung dari lapisan aplikasi untuk diproses dalam perangkat keras. Dengan kata lain, stream yang di-offload tidak akan diteruskan melalui mesin audio perangkat lunak. Diagram menunjukkan implementasi yang dirancang untuk menangani sebanyak tiga stream yang dialihkan. Aliran proses host adalah output akhir dari mixer perangkat lunak dari semua aliran yang diproses di mesin audio perangkat lunak. Setiap mesin audio perangkat keras juga harus berisi mixer perangkat keras.
Untuk mempertahankan paritas dengan mesin audio perangkat lunak dan antarmuka WASAPI, mesin audio perangkat keras perlu menyediakan aliran output audio akhir kembali ke tumpukan audio dalam bentuk aliran loopback. Ini sangat penting untuk aplikasi dan skenario yang mengandalkan Pembatalan Gema Akustik, yang memerlukan pengetahuan tentang aliran output akhir untuk membatalkan gema dan mencegah umpan balik.
Untuk mengimplementasikan jalur untuk aliran loopback, driver audio bertanggung jawab untuk mengekspos pin loopback. Pin ini akan mengembalikan data audio dari output mesin audio akhir, jika data dikodekan ke format PCM. Jika tidak, hasil setelah pencampuran (tetapi sebelum pengodean) akan dikembalikan. Ini berarti bahwa dalam kasus data audio yang diproses dengan EFX perangkat keras yang mengodekan ke format non-PCM, aliran loopback diambil langsung setelah mixer perangkat keras, sebelum tahap EFX di mesin audio perangkat keras. Untuk informasi tentang topologi filter KS yang mewakili mesin audio perangkat keras, lihat Implementasi Pengandar Audio yang Di-offload ke Perangkat Keras.
Arsitektur audio terintegrasi
Diagram berikut menunjukkan gambaran umum arsitektur yang dihasilkan ketika mesin audio perangkat keras bekerja dengan mesin audio perangkat lunak Windows.
Dalam skenario di mana driver audio telah menunjukkan dukungannya untuk pemrosesan audio yang dialihkan, tiga aliran pertama yang diinisialisasi akan dikirim langsung dari lapisan WASAPI ke mesin audio perangkat keras, melewati mesin audio perangkat lunak. Setiap aliran audio baru berikutnya ke n yang didukung oleh mesin audio perangkat keras akan dirutekan melalui mesin audio perangkat lunak untuk diproses. Aliran yang dihasilkan dari mesin audio perangkat lunak kemudian dikirim ke mesin audio perangkat keras sebagai aliran proses host. Aliran proses host dicampur dengan aliran n pertama, pemrosesan EFX diterapkan, dan aliran yang dihasilkan kemudian dikirim ke speaker.
Topologi Filter KS
Di Windows 8 dan sistem operasi yang lebih baru, dukungan telah disediakan untuk mesin audio perangkat keras on-board untuk memproses aliran audio. Ketika Anda mengembangkan adaptor audio seperti itu, driver audio terkait harus mengekspos fakta ini ke sistem audio mode pengguna dengan cara tertentu, sehingga sistem audio dapat menemukan, menggunakan, dan mengekspos fitur adaptor ini dengan benar dan drivernya.
Untuk memungkinkan driver audio mengekspos kemampuan perangkat keras adaptor audio baru ini, Windows 8 memperkenalkan topologi filter KS yang harus digunakan driver:
Seperti yang ditunjukkan pada gambar sebelumnya, topologi filter KS mewakili jalur data melalui perangkat keras, dan juga menunjukkan fungsi yang tersedia di jalur tersebut. Dalam kasus adaptor audio yang dapat memproses audio yang dilepas, ada input dan output berikut (disebut pin) pada filter KS:
Satu pin Proses Host. Ini mewakili input ke dalam filter KS dari mesin audio perangkat lunak.
Satu pin Loopback. Ini mewakili output dari mesin audio perangkat keras ke lapisan API sesi audio Windows (WASAPI).
Sejumlah pin "Offloaded-audio". Meskipun gambar hanya menunjukkan satu pin jenis ini, IHV bebas untuk mengimplementasikan nomor (n) pin apa pun.
Layanan sebenarnya dalam sistem audio dalam mode pengguna yang berperan dalam penemuan adaptor audio dan drivernya adalah AudioEndpointBuilder. Layanan AudioEndpointBuilder memantau kelas KSCATEGORY_AUDIO untuk kedatangan dan penghapusan antarmuka perangkat. Saat driver perangkat audio mendaftarkan instans baru dari kelas antarmuka perangkat KSCATEGORY_AUDIO, pemberitahuan kedatangan antarmuka perangkat dipicu. Layanan AudioEndpointBuilder mendeteksi pemberitahuan kedatangan antarmuka perangkat dan menggunakan algoritma untuk memeriksa topologi perangkat audio dalam sistem sehingga dapat mengambil tindakan yang sesuai.
Saat Anda mengembangkan driver audio untuk mendukung adaptor yang mampu memproses audio yang dialihkan, driver Anda harus menggunakan titik akhir audio KSNODETYPE_AUDIO_ENGINE untuk mengungkapkan kemampuan mesin audio perangkat keras. Untuk informasi selengkapnya tentang proses penemuan titik akhir audio, lihat Algoritma Audio Endpoint Builder.
Pertimbangan Antarmuka Pengguna
Anda mengembangkan pengandar audio untuk mengontrol kemampuan perangkat keras dasar dari adaptor audio yang mampu memproses audio yang dialihkan. Ini berarti bahwa driver Anda memiliki pengetahuan terbaik tentang cara mengontrol fitur adaptor. Jadi Anda harus mengembangkan UI yang akan mengekspos fitur adaptor ke pengguna akhir dalam bentuk opsi yang dapat mereka pilih, aktifkan, dan/atau nonaktifkan.
Namun, jika Anda sudah memiliki UI yang digunakan untuk mengontrol objek pemrosesan audio (API) yang Anda kembangkan, UI ini dapat diperluas untuk bekerja dengan adaptor audio baru Anda. Dalam hal ini, ekstensi Anda ke UI akan menyediakan kontrol perangkat lunak untuk API, dan kontrol perangkat keras untuk adaptor.
Dampak Aplikasi
Fungsionalitas yang dijelaskan untuk jenis adaptor audio baru ini dan driver terkaitnya, dapat digunakan oleh aplikasi UWP melalui WASAPI, Media Foundation, Media Engine, atau tag audio> HTML 5<. Perhatikan bahwa Wave dan DSound tidak dapat digunakan, karena tidak tersedia untuk aplikasi UWP. Perhatikan juga bahwa aplikasi desktop tidak dapat menggunakan kemampuan pemindahan beban adaptor audio yang mendukung audio yang dipindahkan bebannya ke perangkat keras. Aplikasi ini masih dapat merender audio, tetapi hanya melalui pin host yang memanfaatkan mesin audio perangkat lunak.
Jika aplikasi UWP mengalirkan konten media dan menggunakan Media Foundation, Media Engine, atau tag HTML 5 <audio>, aplikasi secara otomatis diaktifkan untuk pengalihan beban ke perangkat keras selama kategori audio yang tepat telah ditetapkan untuk aliran. Memilih ikut serta untuk offloading perangkat keras dilakukan berdasarkan per aliran.
Aplikasi UWP yang menggunakan WASAPI atau komunikasi streaming harus memilih secara eksplisit untuk pemindahan beban ke perangkat keras.