S/PDIF Pass-Through Transmisi Aliran Non-PCM

Format antarmuka digital Sony/Philips (S/PDIF) didefinisikan terutama untuk mengirimkan data audio PCM, tetapi dapat dengan mudah disesuaikan untuk mengirimkan data non-PCM. Prinsip transmisi pass-through S/PDIF adalah bahwa aliran data non-PCM dapat melewati tautan S/PDIF seolah-olah itu adalah aliran PCM. Transmisi pass-through tidak memerlukan port pengiriman dan penerimaan S/PDIF untuk memahami pengodean aliran non-PCM.

WMA Pro dan AC-3 keduanya adalah format non-PCM terkompresi yang mengirimkan aliran audio digital dalam unit yang disebut bingkai sinkronisasi. Setiap bingkai sinkronisasi berisi headernya sendiri dan dapat didekode secara independen dari bingkai sinkronisasi lainnya di aliran. Pada laju sampel 48 kHz, misalnya, bingkai sinkronisasi WMA Pro berisi cukup data untuk dimainkan selama 2048 tick jam sampel (42,67 milidetik). Pada tingkat yang sama ini, bingkai sinkronisasi AC-3 berisi data yang cukup untuk 1536 tick (32 milidetik).

Pada laju sampel 48 kHz, bingkai sinkronisasi WMA Pro 5,1 saluran tidak pernah melebihi 8192 byte, yang merupakan jumlah byte yang ditempati oleh stereo 2048 (dua saluran), sampel PCM 16-bit. Demikian pula, bingkai sinkronisasi AC-3 5.1 saluran tidak pernah melebihi 6144 byte, yang merupakan jumlah byte yang ditempati oleh stereo 1536, sampel PCM 16-bit. (Ada pengecualian untuk aturan ini, tetapi jenis bingkai sinkronisasi AC-3 tersebut sangat jarang, tidak dapat ditransmisikan melalui S/PDIF, dan dapat diabaikan di sini.)

Ketika aliran audio WMA Pro atau AC-3 48 kHz melewati tautan S/PDIF dalam bentuk digital tanpa didekode, port pengiriman dan penerimaan S/PDIF dapat memperlakukan aliran yang sama dengan aliran PCM stereo, 16-bit, 48-kHz. Saat menentukan rentang data untuk pin yang dapat mengirimkan aliran WMA Pro-over-S/PDIF atau AC-3-over-S/PDIF, tag format gelombang itu sendiri adalah satu-satunya hal yang berbeda dari rentang data untuk pin yang mengirimkan aliran PCM melalui port S/PDIF. Misalnya, lihat deklarasi rentang data dalam Menentukan Rentang Data WMA Pro.

Untuk menghindari pengiriman aliran terkompresi WMA Pro melalui antarmuka S/PDIF lebih cepat daripada real time (yaitu, untuk mencegah pengiriman 43 milidetik audio dalam waktu kurang dari 43 milidetik), aplikasi audio harus memasang bingkai sinkronisasi WMA Pro dengan nol hingga bingkai sinkronisasi mengambil jumlah byte yang sama dengan sampel PCM stereo 2048. Bingkai sinkronisasi AC-3 juga harus diisi hingga ukuran 1536 sampel PCM stereo.

Jika Anda mencoba mengirim bingkai sinkronisasi WMA Pro atau AC-3 tanpa kabel ke driver adaptor PortCls yang menggunakan WaveCyclic, ketahuilah bahwa ketika driver port merasakan kekurangan data (karena aliran data berisi lebih sedikit byte daripada aliran yang tidak dikompresi dua saluran), ia mengisi buffer siklik dengan keheningan. Dekoder aliran non-PCM akan mengalami masalah dalam menafsirkan periode keheningan ini, yang berada dalam PCM daripada format non-PCM.

Gambar berikut menunjukkan contoh penerapan transmisi pass-through S/PDIF.

Diagram memperlihatkan PC yang terhubung ke penerima A/V melalui kabel koaksial untuk transmisi pass-through S/PDIF.

Gambar menunjukkan PC yang terhubung ke penerima audio/visual eksternal (A/V) melalui kabel koaksial. Kabel menghubungkan port output S/PDIF pada perangkat audio PC ke port input S/PDIF pada penerima A/V.

Di tepi kiri gambar, aplikasi audio menyisipkan bingkai sinkronisasi dari aliran audio WMA Pro ke awal buffer 8192-byte. (Ukuran buffer ini digunakan murni untuk kemudahan ilustrasi. Dalam praktiknya, ukuran buffer 4096 byte atau 10240 byte, misalnya, dapat digunakan sebagai gantinya.) Aplikasi ini mengisi ruang yang tersisa di buffer dengan nol. Driver audio memprogram port output S/PDIF untuk mengirimkan konten buffer seolah-olah mereka adalah 8192 byte data PCM.

Demikian pula, port input S/PDIF pada penerima A/V menerima aliran seolah-olah 8192 byte data PCM. Ini memuat data ke dalam buffer input, yang dalam contoh ini juga memiliki ukuran 8192 byte. Dekoder mengekstrak bingkai sinkronisasi WMA Pro dari buffer input, mendekode bingkai sinkronisasi ke dalam aliran audio 5,1 saluran, dan memutar aliran melalui speaker sekitar di tepi kanan gambar.

Untuk membiarkan dekoder di ujung lain koneksi tahu bahwa aliran audio dalam format non-PCM, driver audio harus mengatur bit /AUDIO pada transceiver S/PDIF. Dekoder membaca bit ini dari blok status saluran S/PDIF untuk menentukan apakah aliran data dikodekan dalam format non-PCM. Mengatur bit ini adalah satu-satunya hal khusus yang perlu dilakukan driver untuk mengakomodasi aliran non-PCM. Dengan cara lain, driver memperlakukan aliran seolah-olah berisi data PCM.

Sejumlah perangkat konsumen mendukung transmisi pass-through S/PDIF, tetapi antarmuka digital lainnya seperti USB dan 1394 juga dapat disesuaikan untuk transmisi pass-through digital data non-PCM ke dekode audio eksternal.

Dolby Laboratories memperkenalkan format audio terkompresi AC-3 (Dolby Digital) pada tahun 1992. Penerima A/V konsumen pertama yang mendukung AC-3 melalui S/PDIF tersedia pada sekitar tahun 1997. Dukungan perangkat lunak untuk format aliran audio WMA Pro tersedia dengan rilis teknologi Microsoft Windows Media 9 Series pada tahun 2003. Penerima A/V yang mendukung WMA Pro-over-S/PDIF diperkenalkan pada tahun 2003.

Di Windows XP dan yang lebih baru, API waveOut, DirectSound, dan DirectShow mendukung format non-PCM. API DirectSound dan waveOut diimplementasikan sedemikian rupa sehingga format PCM atau non-PCM yang diekspos driver secara otomatis tersedia untuk klien API ini.