Difference between revisions of "Codecs"

From Kolmisoft Wiki
Jump to navigationJump to search
 
(29 intermediate revisions by 4 users not shown)
Line 2: Line 2:


Codecs are used to convert an analog voice signal to digitally encoded version. Codecs vary in the sound quality, the bandwidth required, the computational requirements, etc
Codecs are used to convert an analog voice signal to digitally encoded version. Codecs vary in the sound quality, the bandwidth required, the computational requirements, etc
<br><br>
List of codecs supported by MOR can be found [[MOR_Features#Codec_Support_.28Audio.2FVideo_Compression.29 | here]].
<br><br>


= Per Call Bandwidth requirements for various codecs =
= Per Call Bandwidth requirements for various codecs =


{| border="1" cellpadding="5" cellspacing="0"  
{| border="1" cellpadding="5" cellspacing="0"  
| '''Codecs''' || '''Bandwidth calculations'''
| '''Codec & Bit Rate (Kbps)''' || '''Codec Sample Size (Bytes)''' || '''Codec Sample Interval (ms)''' || '''Voice Payload Size (Bytes)''' || '''Voice Payload Size (ms)''' || '''Bandwidth Ethernet (Kbps)'''
| '''Codec & Bit Rate (Kbps) || '''Voice Payload Size (Bytes)''' || '''Voice Payload Size (ms)'' || '''Bandwidth Ethernet (Kbps)'''
|-
| G.711 (64 Kbps) || 80 Bytes || 10ms || 160 bytes || 20ms || 87.2Kbps
|-
| G.729 (8 Kbps) || 10 Bytes || 10ms || 20 bytes || 20ms || 31.2Kbps
|-
| G.723.1 (6.3 Kbps) || 24 Bytes || 30ms || 24 bytes || 30ms || 21.9Kbps
|-
| G.723.1 (5.3 Kbps) || 20 Bytes || 30ms || 20 bytes || 30ms || 20.8Kbps
|-
| G.726 (32 Kbps) || 20 Bytes || 5ms || 80 bytes || 20ms || 55.2Kbps
|-
| G.726 (24 Kbps) || 15 Bytes || 5ms || 60 bytes || 20ms || 47.2Kbps
|-
| G.728 (16 Kbps) || 10 Bytes || 5ms || 60 bytes || 30ms || 31.5Kbps
|-
| G722_64k(64 Kbps) || 80 Bytes || 10ms || 160 bytes || 20ms || 87.2Kbps
|-
| ilbc_mode_20(15.2Kbps)|| 38 Bytes || 20ms || 38 bytes || 20ms || 38.4Kbps
|-
| ilbc_mode_30(13.33Kbps) || 50 Bytes || 30ms || 50 bytes || 30ms || 28.8Kbps
|-
| speex(24.6 Kbps)||66 Bytes || 20ms  || 56 bytes || 25ms ||  42.4 Kbps
|-
| speex(18.2 Kbps)||46 Bytes || 20ms  || 56 bytes || 20ms ||  42.4 Kbps
|-
|}
<br><br>
= Transcoding =
Transcoding is a conversion from one codec to another. It is performed by Asterisk (MOR) / RTPEngine (M4) when LegA and LegB (user's and provider's) codecs do not match. Transcoding uses a lot of system resources, so it should be avoided to get better server performance.
 
<br><br>
= Internal code in M4 DB =
 
ulaw = 1
gsm = 3
g723 = 4
alaw = 8
g722 = 9
g729 = 18
opus = 97
speex = 98
g726 = 99
 
<br><br>
= See also =
 
* A more detailed guide about bandwidth calculations and related [http://www.cisco.com/en/US/tech/tk652/tk698/technologies_tech_note09186a0080094ae2.shtml metrics]
* Also [http://www.voip-info.org/wiki/view/Codecs here]
* A simple bandwidth calculator can be found [http://www.bandcalc.com/ here]
* [[Speex codec install]]
* [[I want to use codec G.729r8 | G729r8]]
* [[Which codecs should I choose for devices]]
* https://www.rfc-editor.org/rfc/rfc3551.html

Latest revision as of 07:42, 19 January 2023

Description

Codecs are used to convert an analog voice signal to digitally encoded version. Codecs vary in the sound quality, the bandwidth required, the computational requirements, etc

List of codecs supported by MOR can be found here.

Per Call Bandwidth requirements for various codecs

Codec & Bit Rate (Kbps) Codec Sample Size (Bytes) Codec Sample Interval (ms) Voice Payload Size (Bytes) Voice Payload Size (ms) Bandwidth Ethernet (Kbps)
G.711 (64 Kbps) 80 Bytes 10ms 160 bytes 20ms 87.2Kbps
G.729 (8 Kbps) 10 Bytes 10ms 20 bytes 20ms 31.2Kbps
G.723.1 (6.3 Kbps) 24 Bytes 30ms 24 bytes 30ms 21.9Kbps
G.723.1 (5.3 Kbps) 20 Bytes 30ms 20 bytes 30ms 20.8Kbps
G.726 (32 Kbps) 20 Bytes 5ms 80 bytes 20ms 55.2Kbps
G.726 (24 Kbps) 15 Bytes 5ms 60 bytes 20ms 47.2Kbps
G.728 (16 Kbps) 10 Bytes 5ms 60 bytes 30ms 31.5Kbps
G722_64k(64 Kbps) 80 Bytes 10ms 160 bytes 20ms 87.2Kbps
ilbc_mode_20(15.2Kbps) 38 Bytes 20ms 38 bytes 20ms 38.4Kbps
ilbc_mode_30(13.33Kbps) 50 Bytes 30ms 50 bytes 30ms 28.8Kbps
speex(24.6 Kbps) 66 Bytes 20ms 56 bytes 25ms 42.4 Kbps
speex(18.2 Kbps) 46 Bytes 20ms 56 bytes 20ms 42.4 Kbps



Transcoding

Transcoding is a conversion from one codec to another. It is performed by Asterisk (MOR) / RTPEngine (M4) when LegA and LegB (user's and provider's) codecs do not match. Transcoding uses a lot of system resources, so it should be avoided to get better server performance.



Internal code in M4 DB

ulaw = 1
gsm = 3
g723 = 4
alaw = 8
g722 = 9
g729 = 18
opus = 97
speex = 98
g726 = 99



See also