Bagikan melalui


Memetakan Format Aliran ke Konfigurasi Pembicara

Ketika diminta untuk memutar format streaming yang tidak cocok dengan konfigurasi speaker perangkat audio, driver audio memiliki beberapa opsi:

  • Menolak memutar siaran.

  • Putar aliran dengan melakukan pemetaan satu-satu saluran masing-masing ke speaker. Jika ada saluran yang tersisa setelah saluran dipetakan ke setiap speaker, buang saluran sisa. Sebaliknya, jika ada speaker yang tersisa setelah semua saluran ditetapkan ke speaker, putar keheningan melalui speaker sisa.

  • Putar stream dengan mencampur saluran audio dalam stream asli untuk menghasilkan jumlah saluran yang dibutuhkan untuk konfigurasi sistem speaker. Jika ada lebih banyak saluran dalam aliran asli daripada yang dapat ditangani oleh sistem speaker, pendekatan ini menghindari hilangnya konten yang akan terjadi jika saluran berlebih dibuang begitu saja. Konversi pencampuran dan format dapat dilakukan dalam perangkat lunak atau perangkat keras.

Mengenai opsi ketiga, driver harus menghindari pencampuran perangkat lunak secara langsung. Sebagai gantinya, vendor perangkat keras harus menginstal modul perangkat lunak efek global (GFX) untuk memproses aliran sebelum mencapai perangkat audio. Di Windows Vista, efek global diimplementasikan sebagai objek pemrosesan audio (APO) GFX. Di Windows Server 2003 dan Windows XP, efek global diimplementasikan sebagai filter GFX.

Memutar Stream 5.1-Channel pada Konfigurasi Speaker 7.1

Gambar berikut menunjukkan aliran audio yang direkam untuk konfigurasi speaker suara surround 5.1 (kiri) namun diputar melalui konfigurasi sistem home theater speaker 7.1 (kanan).

Diagram memperlihatkan aliran 5.1 yang diputar pada konfigurasi speaker 7.1 dengan dua speaker senyap.

Pada gambar sebelumnya, format 5.1 yang direkam tidak berisi informasi saluran untuk posisi speaker BL dan BR dalam konfigurasi speaker 7.1. Dengan demikian, kedua penutur ini diam. (Alternatif lain yang lebih sulit adalah perangkat audio untuk mensintesis dua saluran tambahan untuk speaker BL dan BR dengan mencampur konten dari enam saluran asli dalam rekaman.)

Menurut definisi untuk bit channel-mask, channel mask untuk merekam aliran 5.1 yang ditampilkan di sisi kiri gambar sebelumnya harus 0x60F, yang menetapkan enam saluran ke posisi speaker berikut: FL, FR, FC, LFE, SL, dan SR. (Ini adalah konfigurasi pembicara samping 5.1 yang dibahas sebelumnya.) Bahkan, masker saluran untuk aliran 5.1 adalah 0x3F daripada 0x60F, karena alasan-alasan yang disebutkan sebelumnya dan sekarang akan dijelaskan secara rinci.

Dalam versi Windows sebelumnya (Windows Server 2003, Windows XP dengan SP1, Windows 2000, dan Windows Me/98), interpretasi masker saluran 0x3F adalah bahwa ia menetapkan enam saluran dalam format 5.1 ke posisi pembicara berikut: FL, FR, FC, LFE, BL, dan BR. (Ini adalah konfigurasi back-speaker 5.1.) Namun, interpretasi di Windows Vista, Windows Server 2003 dengan SP1, dan Windows XP dengan SP2 berbeda: menurut konvensi, format 5.1 dengan masker saluran 0x3F ditafsirkan berarti konfigurasi side-speaker 5.1 alih-alih konfigurasi back-speaker 5.1.

Menginterpretasikan masker saluran dengan cara ini menghilangkan kebutuhan untuk memperkenalkan penanda format 5.1-kanal kedua untuk membedakan konfigurasi 5.1 speaker samping dari konfigurasi 5.1 speaker belakang. Kedua konfigurasi ini sangat mirip sehingga pengguna umum mungkin mengalami kesulitan membedakannya. Meskipun hanya memiliki satu deskriptor format 5.1 saluran dapat menghindari kebingungan pengguna, vendor perangkat keras perlu mengingat untuk menafsirkan masker saluran 0x3F yang berarti saluran 5 dan 6 ditetapkan pada posisi speaker SL dan SR, bukan pada posisi BL dan BR. Sebagai imbalan karena harus mengingat interpretasi khusus dari masker saluran ini untuk aliran 5.1, vendor dapat menghindarkan pengguna dari kesulitan dalam membedakan antara dua deskriptor format 5.1 saluran yang sangat mirip.

Vendor-vendor yang percaya bahwa setidaknya beberapa pengguna mereka mungkin ingin membedakan antara konfigurasi 5.1 speaker samping dan konfigurasi 5.1 speaker belakang memiliki opsi untuk menyediakan program antarmuka pengguna (UI) guna tujuan ini. Melalui antarmuka pengguna (UI), pengguna dapat memilih apakah saluran 4 dan 5 dalam aliran suara 5.1 saluran harus mengaktifkan speaker belakang daripada speaker samping dalam konfigurasi speaker home theater 7.1.

Memutar Stream Saluran 7.1 pada Konfigurasi Speaker 5.1

Gambar berikut menunjukkan stream audio yang direkam dari konfigurasi speaker teater rumah 7.1 (kiri) yang diputar melalui konfigurasi speaker suara surround 5.1 (kanan). Masker saluran untuk aliran saluran 7.1 adalah 0x63F.

Diagram yang menunjukkan jalur suara 7.1 yang diputar pada konfigurasi speaker 5.1 dengan dua saluran yang dihilangkan.

Dalam contoh ini, saluran 6 dan 7, yang berisi data untuk posisi speaker samping dalam konfigurasi 7.1, putar melalui posisi speaker samping dalam konfigurasi 5.1. Perangkat audio hanya membuang saluran 4 dan 5, yang berisi data untuk posisi speaker belakang dalam konfigurasi 7.1, ketika memutar aliran pada konfigurasi 5.1. Seperti disebutkan sebelumnya, alternatif lain (tidak ditampilkan pada gambar sebelumnya) adalah agar perangkat mencoba mempertahankan konten di saluran 4 dan 5 dengan mencampurnya dengan saluran 6 dan 7 sebelum memutarnya melalui speaker samping dalam konfigurasi 5.1.

Perilaku Mixer Sistem

Di Windows Server 2003, Windows XP, Windows 2000, dan Windows Me/98, aliran audio multisaluran yang diputar perangkat audio biasanya dihasilkan oleh mixer sistem perangkat lunak, Kmixer.sys. Sebelum aliran dapat mulai diputar, mixer sistem dan driver audio harus menegosiasikan format aliran yang dapat ditangani oleh mixer dan driver.

Ketika diminta untuk memutar aliran multisaluran dengan format yang tidak cocok dengan konfigurasi speaker perangkat audio, driver audio dapat menolak permintaan, dalam hal ini negosiasi berlanjut.

Mixer sistem dapat mengonversi konten dari aliran input 5,1 saluran menjadi aliran output 7,1 saluran (ke perangkat audio), dan sebaliknya, meskipun lebih suka menghindari konversi tersebut untuk mempertahankan kualitas aliran input. Dengan demikian, mixer sistem memulai negosiasi dengan meminta driver untuk menerima aliran dengan format yang sama dengan aliran input kualitas tertinggi ke mixer sistem. Biasanya, ini berarti bahwa jika mixer sistem memiliki aliran input dalam format 5.1- atau 7.1-channel, itu akan meminta driver untuk menerima aliran dalam format yang sama. Jika driver menolak format ini, mixer sistem terus bernegosiasi dengan bertanya kepada driver apakah dapat menangani format aliran lainnya.

Misalnya, jika driver untuk perangkat audio dengan konfigurasi speaker 5.1 menolak permintaan dari mixer sistem untuk memutar aliran saluran 7,1, mixer sistem melanjutkan negosiasi dengan menawarkan untuk mengonversi aliran saluran 7,1 ke aliran 5,1 saluran. Jika driver menerima format ini, mixer sistem melakukan konversi aliran untuk driver.

Saat merancang driver audio, penulis driver harus memutuskan apakah akan menangani konversi formatnya sendiri atau mengandalkan mixer sistem untuk melakukan konversi. Driver mungkin perlu menangani konversi dalam salah satu situasi berikut:

  • Jika driver mengharuskan konversi dilakukan dengan cara yang berbeda dari konversi yang dilakukan oleh mixer sistem.

  • Jika driver harus memutar stream audio yang tidak melalui mixer sistem.

Dalam situasi kedua, aliran dapat melewati mixer sistem jika sedang dimainkan dari buffer yang dipercepat perangkat keras Microsoft DirectSound langsung ke pin pencampuran perangkat keras pada perangkat audio. Selain itu, beberapa aplikasi "audio pro" mengirim aliran mereka langsung ke perangkat audio baik untuk menghindari latensi mixer sistem atau untuk mencegah proses pencampuran mengubah nilai sampel digital dalam aliran audio asli.

Di Windows Server 2003 dengan SP1 dan Windows XP dengan SP2, jika mixer sistem menghasilkan aliran output 5,1 saluran, mixer selalu mengatur masker saluran ke 0x3F. Mixer sistemik berfungsi dengan cara ini bahkan jika menerima aliran masukan 5,1 saluran dengan masker saluran 0x60F. Dengan perilaku ini, driver audio tidak pernah menerima aliran 5.1 kanal dengan masker kanal 0x60F dari mixer.

Jika mixer sistem menerima aliran input 7,1 saluran dengan masker saluran 0x63F dan menghasilkan aliran output 5,1 saluran (dengan masker saluran 0x3F), mixer menyalin saluran 6 dan 7 dalam aliran input ke saluran 4 dan 5 dalam aliran output. Mixer membuang saluran 4 dan 5 (untuk speaker belakang) dari aliran input saluran 7.1. Perilaku ini memastikan bahwa saluran yang berisi konten untuk dua speaker samping pada sistem audio 7.1-channel dipancarkan melalui speaker samping dalam konfigurasi 5.1 speaker.