Codec adalah algoritma (OK membolehkan mudah - semacam program!), Kebanyakan masa dipasang sebagai perisian pada pelayan atau terbenam dalam sekeping perkakasan (ATA, IP Phone dll), yang digunakan untuk menukar suara (dalam hal VoIP) menjadi data digital yang akan dihantar melalui Internet atau rangkaian apa pun semasa panggilan VoIP.
Kata codec berasal dari kata-kata yang terdiri daripada pengkod-decoder atau pemampat-penyahkompres. Codec biasanya mencapai tiga tugas berikut (sangat sedikit yang terakhir):
- Pengekodan pengekodan
- Penyahmampatan-penyahmampatan
- Penyulitan enkripsi
Pengekodan pengekodan
Apabila anda bercakap melalui telefon biasa PSTN, suara anda diangkut dengan cara analog melalui saluran telefon. Tetapi dengan VoIP, suara anda ditukarkan menjadi isyarat digital. Penukaran ini secara teknikal dipanggil pengekodan dan dicapai oleh codec. Apabila suara yang didigitalkan mencapai tujuannya, ia mesti dikodkan kembali ke keadaan analog asalnya supaya koresponden lain dapat mendengar dan memahaminya.
Penyahmampatan-penyahmampatan
Bandwidth adalah komoditi terhad. Oleh itu, jika data yang dihantar dibuat lebih ringan, anda boleh menghantar lebih banyak masa dan meningkatkan prestasi. Untuk membuat suara digitasi kurang besar, ia dimampatkan. Mampatan adalah proses kompleks di mana data yang sama disimpan tetapi menggunakan ruang yang lebih kecil (bit digital). Semasa pemampatan, data itu terhad kepada struktur (paket) yang sesuai dengan algoritma pemampatan. Data termampat dihantar melalui rangkaian dan sebaik sahaja ia mencapai destinasi, ia dikembalikan semula ke keadaan semula sebelum dimodalkan. Walau bagaimanapun, dalam kebanyakan kes, tidak perlu menguraikan semula data, kerana data termampat sudah dalam keadaan habis.
Jenis pemampatan
Apabila data dimampatkan, ia menjadi lebih ringan dan oleh itu prestasi bertambah baik. Walau bagaimanapun, ia cenderung bahawa algoritma pemampatan terbaik mengurangkan kualiti data termampat. Terdapat dua jenis mampatan: lossless dan lossy. Dengan pemampatan tanpa kehilangan, anda tidak kehilangan apa-apa, tetapi anda tidak dapat memampatkannya. Dengan pemampatan yang rugi, anda dapat merosot, tetapi anda kehilangan kualiti. Anda biasanya tidak boleh mendapatkan data termampat kembali ke keadaan asalnya dengan mampatan yang hilang kerana kualiti telah dikorbankan untuk saiz. Tetapi ini adalah sebahagian besar masa yang tidak diperlukan.
Satu contoh yang baik untuk pemampatan lossy ialah MP3 untuk audio. Apabila anda memampatkan audio, anda tidak dapat memampatkan kembali, audio MP3 anda sudah sangat baik untuk didengar, berbanding dengan fail audio murni yang besar.
Penyulitan enkripsi
Penyulitan adalah salah satu alat terbaik untuk mencapai keselamatan. Ia adalah proses menukar data ke dalam keadaan sedemikian sehingga tidak ada yang dapat memahami. Dengan cara ini, walaupun data yang disulitkan dipintas oleh orang yang tidak dibenarkan, data masih tetap sulit. Sebaik sahaja data yang disulitkan sampai ke destinasi, ia akan disahsulit semula ke bentuk asalnya. Seringkali, apabila data dimampatkan, ia telah disulitkan ke tahap tertentu, kerana ia diubah dari keadaan asalnya.