Etiqueta: codec

  • El códec G.722 y cómo ofrecer audio de calidad

    polycom-soundpoint-ip335Aprovecho la noticia del lanzamiento de un nuevo terminal Polycom para añadir un poco de introducción a un códec de audio que se está haciendo muy popular poco a poco: el G.722.

    Aquellos que han asistido alguna vez a la Bootcamp o al Asterisk Advanced, les sonará el Polycom 330, un terminal muy sencillo y con el que se suelen hacer las prácticas, es por este motivo por el que mucha gente le coje cierta manía ya que, como todo terminal completito tiene ciertos parámetros no tan «triviales» lo que complica un poco su configuración, pero en el fondo es bastante didáctico. Una vez escuché… si eres capaz de configurar un Polycom, puedes configurar prácticamente cualquier terminal SIP. 😉

    Pues bien, Polycom acaba de publicar una evolución de este terminal añadiéndole una característica que parece ser se va a convertir en un requerimiento en los próximos años: calidad de sonido de alta definición, o como viene llamándose: HD audio (high definition), el nuevo Polycom 335.

    Las características técnicas de este terminal son prácticamente las mismas que la del Polycom 330 por lo que cualquiera que esté interesado, solo tiene que ir a la web de Polycom y echarle un vistazo.

    El códec G.722

    Decía que va a convertirse en un requerimiento, porque cada vez aparecen más y más terminales que incorporan esta característica, lo que implica el soporte del códec G.722, una evolución natural del conocido G.711, que se encuentra exclusivamente en VoIP y que se desmarca (en cuanto a calidad) a la telefonía tradicional.

    Una vez leí en un twitter: ¿porqué el teléfono debe escucharse peor que una emisora FM?
    Es cierto, cualquier emisora de radio tiene más calidad de audio que una llamada de teléfono y eso que el medio de transmisión no es el más idóneo (en comparación con una conexión propia y dedicada como la que tiene una llamada a través de un cable).

    Pues los fabricantes se están poniendo manos a la obra y empiezan a aparecer terminales que soportan el códec G.722 WideBand para soportar audio muestreado a 16Khz en lugar de los 8Khz de una llamada telefónica normal: El doble de información por unidad de tiempo y ocupa prácticamente lo mismo que el G.711 o incluso menos, por lo que es una opción excelente para quien realmente busca buena calidad de audio.

    Asterisk 1.4 soportaba G.722 en modo ‘passthrough‘, esto es… si dos terminales hablan el mismo códec, Asterisk es capaz de reenviar el audio de un terminal al otro, pero incapaz de grabar o reproducir archivos en este formato.
    Asterisk 1.6 sí que soporta G.722 en condiciones, siendo capaz de grabar y reproduir archivos, de la misma manera que con otros códecs como G.711, GSM, o iLBC.

    Es tan interesante este códec que GIPS (Global IP Sound), la empresa que está detrás de códecs comerciales como los utilizados antiguamente por Skype, estuvo «sacándole punta» escribiendo un artículo muy interesante que recomiendo leer cuando tengais un rato.

    Como otros códecs profesionales, existen distintas ‘versiones’ o distintas formas, existiendo en nuestro caso:

    • ITU G.722 – 48/56/64 Kbps ADPCM 7Khz audio bandwidth
    • ITU G.722.1 – 24/32 Kbps 7Khz audio bandwidth (based on Polycom’s SIREN codec)
    • ITU G.722.1C – 32 Kbps, a Polycom extension, 14Khz audio bandwidth
    • ITU G.722.2 – 6.6Kbps to 23.85Kbps. Also known as AMR-WB. CELP 7Khz audio bandwidth

    Existen otras implementaciones como el Siren7 de Polycom, una versión del G.722.1 cuyo soporte acaba de ser añadido (durante la Astricon 2009) y que ofrece una calidad similar al de una emisora de radio a la vez que reduce el consumo de procesamiento y de ancho de banda necesario.

    Y ahora una pregunta muy sencilla…
    ¿Qué considerais más importante en un terminal… ¿mejorar la calidad de sonido?, ¿o el precio?

  • GrandStream entra en el mercado de video profesional

    GrandStream fue de las primeras empresas en ofrecer un videoteléfono asequible capaz de soportar el códec H.264, el GXV3000, el resultado fue tan positivo que recientemente ha lanzado un nuevo modelo mucho más atractivo y con más características que aumentaban considerablemente la presencia en un entorno empresarial el GXV3140.

    Ahora GrandStream anuncia nuevos productos centrados en la emisión de vídeo especialmente pensado para video-vigilancia, concretamente un servidor de streaming de vídeo IP, el GXV3501 – GXV3504 (de 1 hasta 4 puertos analógicos) con coste muy inferior a otros servidores de estas características (a partir de $200) y que permiten conectar cámaras IP y cámaras analógicas, sistema de alarmas, control de cámaras motorizadas (PTZ), soporte de POE, etc.

    gxv3504Además de estos servidores de vídeo, GrandStream comercializará unas cámaras IP (GXV3601) con sensor óptico SONY que ofrecen streaming H.26, Wifi y alimentados por POE.

    gxv3601

    Además, hasta un conjunto de 36 cámaras podrán ser controladas simultaneamente mediante GSurf, un software de gestión de video-vigilancia total.

    Podeis ver el datasheet de ambos productos en este enlace:
    http://www.grandstream.com/documents/SurveillancePR_Final.pdf

  • AudioCodes lanza sus teléfonos IP con sonido HD

    Como viene siendo habitual en ciertas marcas de terminales, ahora le toca el turno a AudioCodes lanzar una gama de terminales IP que soportan lo que llaman «audio HD» esto es, un códec muestreado al doble de la frecuencia habitual (8000Hz) por lo que el audio en estos sistemas funcionan a 16000Hz, mejora la calidad a cambio de duplicar el ancho de banda, pero para reducirlo ya se encuentran los códecs compresores 🙂

    El terminal por supuesto, es SIP.

    Otros fabricantes ya utilizan este tipo de códec HD: Polycom, Snom

    Podeis ver más información en su web:
    http://www.audiocodes.com/Content.aspx?voip=3112

  • Comparación entre el códec H.264 y Theora

    Hace poco, escribí un artículo sobre el IAXClient 2 donde se añadía el soporte de vídeo a esta librería y por extensión, al soporte de vídeo de IAX en Asterisk.
    En estos añadidos nuevos, se encontraban soporte para el códec H.264 y Theora.

    El H.264 es uno de los mejores códecs para emisión/recepción de vídeo. No en vano se utiliza actualmente para videoconferencia con una calidad y velocidad sin precedentes. Tanto en softphones como Eyebeam, Ekiga, etc como en hardphones como el GXV-3000 de GrandStream para hacer videoconferencias con Asterisk, pero…

    ¿Qué clase de códec es el Theora?

    De los creadores de OggVorbis (la versión libre del popular mp3) una fundación de desarrolladores llamada Xiph, nace una versión libre del códec de vídeo de alta calidad llamada Theora.
    Theora se podría decir que es la «alternativa libre» del actual H.264, ya que ambas soportan calidades y consumos de ancho de banda bastante similares. Pueden codificar vídeo con una resolución desde 128×96 hasta 4096×2048 a 30 frames por segundo, no es de extrañar que sean los códecs de vídeo del futuro, tanto para hacer videoconferencia en infraestructuras con muy poco ancho de banda como para emitir películas en alta definición (HD) ya que el ratio de compresión es variable lo que permite cambiar la calidad en función del ancho de banda que dispongamos en este momento.

    ¿Cual de los dos códecs es mejor para vídeo?

    Tras leer algunas comparativas de calidad y velocidad, parece ser que todas llegan a una misma conclusión, en ancho de banda es similar mientras que la calidad de la imagen aún es mejor en el H.264 que en Theora. Pero eso no significa que sea así siempre. Recordemos que el software libre vivo mejora exponencialmente frente al software propietario y estoy convencido que pronto será Theora la que ofrezca mejor calidad y velocidad que el H.264, pero en la actualidad, esto no es así.

    Para ilustrarlo, aquí teneis un ejemplo de una captura enviada en H.264 y una con Theora:

    ¿Que software tiene soporte para Theora?

    Actualmente no hay muchos softphones que lo soporten. Como he comentado antes, los softphones libres como Ekiga o linphone lo soportan y Twinkle lo soportará en breve. Los softphones comerciales como X-Lite o Eyebeam también lo soportarán pronto y es que Theora es bastante «nuevo» y aún tiene que evolucionar y darse a conocer.

    Por supuesto, las aplicaciones de streaming libres soportan este códec GStream, VideoLan, etc…, las comerciales suelen traer este soporte como un añadido o plugin pero poco a poco se irá incorporando de serie a medida que vaya haciéndose más conocido.

    ¿Qué software tiene soporte para H.264?

    Por lo general, cualquier softphone que soporte vídeo trae soporte para H.263 y las más evolucionadas traen soporte para H.264 pero siempre como una evolución del H.263 y del H.263+ aunque este códec tenga un sistema completamente distinto en cuanto a procesamiento, finalmente desbancará al H.263/+ y el H.264 se convertirá finalmente en un estandar en todas las aplicaciones de vídeo streaming.

    Enlaces de Interés:
    Información sobre el códec H.264.
    Información sobre el códec Theora.

  • Códec G729: Diferencias entre la versión free y la comercial

    Hace algún tiempo me pregunté qué diferencias existían entre la versión comercial del códec G.729 que distribuye Digium y la versión «opensource» que se puede encontrar en algunas webs.

    Mientras buscaba información, me topé con la casualidad de que algunas personas me hacían preguntas sobre esta diferencia, he incluso personas que utilizaban la versión opensource se encontraban con problemas de audio por lo que decidí ponerme a leer e investigar las diferencias.

    En este artículo intentaré explicar de la forma más «didáctica» posible estas diferencias, así como el funcionamiento básico de ambos códecs.

    El archivo codec_g729 para que Asterisk sea capaz de reproducir o escuchar el códec G.729 se basa en un algoritmo método matemático patentado y por lo tanto, la utilización de este algoritmo, no está exenta de pagar una «licencia de uso», tanto si es para uso comercial, como si es para educación, pruebas, etc… a ellos les da igual para qué lo vayas a utilizar, mientras pagues.

    Ahora bien, los creadores de ese algoritmo método matemático,  al que pertenecen bastantes empresas muy conocidas (SUN, Nokia, Skype, Intel, etc… http://www.sipro.com/licensees.php) por ser «creadoras» o «patrocinadores» de la creación del G729, tienen a su disposición un gran número de licencias anuales (para meterlo en su propio software, en sus móviles, etc…) y además, esta fundación en sí tiene «vendedores» de licencias para el códec entre las que se encuentran algunas como Global IP Sound, Soundpoint, y algunas otras que venden la licencia para utilizar el algoritmo de compresión únicamente.

    Digium ha utilizado este algoritmo y lo ha introducido como módulo para poder utilizarlo en Asterisk (de ahí las licencias G.279 para Asterisk y el porqué de pagar la licencia, porque el uso de dicho códec cuesta dinero)

    Ahora bien, Intel es uno de los «creadores» de este códec y como dispone de licencias para uso particular, ofrece dicha licencia para el algoritmo de compresión de audio completamente gratis para temas docentes, pruebas, etc… nunca nada comercial, pero eso es únicamente el algoritmo, nada del canal para utilizarlo en Asterisk.

    Más adelante, aprovechando la licencia que Intel ofrece para docencia, pruebas, etc, alquien cogió el binario del algoritmo y se auto-fabricó un archivo codec_g729 compatible con Asterisk pero con la versión que Intel tiene puesta en su página, y otra persona lo llamó erróneamente opensource (http://www.readytechnology.co.uk/open/ipp-codecs-g729-g723.1/) aunque nadie sabe dónde se encuentra el código fuente que genera finalmente el archivo codec_g729 y aunque existiera, de opensource no tiene nada ya que el hecho de utilizar ese algoritmo ya implica haber pagado la licencia.

    En esta última versión, el código que tiene Intel en su página es el mismo desde hace 10 años, cuando el códec «oficial» ha ido evolucionando poco a poco de forma más o menos transparente para su utilización aunque realizando algunas mejoras en cuanto a coste, carga, velocidad, etc.
    Muchas personas me han preguntado sobre las diferencias entre estos códecs (saludos a todas ellas y siento el retraso en esta contestación), y aquí va:

    El códec G729 contiene lo que sería un diccionario de sonidos. Estas pequeñas partes de sonidos se podría intepretar como micro-fonemas. Cuando le enviamos un trozo de voz al códec, este lo reemplaza con una referencia a una palabra de su diccionario y lo envía, también prepara los siguientes sonidos que cree que pueden precederle. Así es cómo el códec comprime la voz tan bien. Realmente esto no envía absolutamente nada de la voz original, envía trozos matemáticos que ha ido creando en tiempo real. Por este motivo, la voz se escucha perféctamente, mientras que la música (por ejemplo cuando hacemos un MusicOnHold) no. Así se comporta el códec G729 «plano«.

    A medida que se va ampliando ese diccionario, la calidad de sonido aumenta, el tiempo para encontrar un sonido «matemático» similar disminuye lo que provoca una menor carga del procesador.

    Estos añadidos se conocen como «anexos» y se definen como letras A, B, C,… y de ahí es de donde viene cada letra que acompaña nal nombre del códec. Por eso existe el códec G729A, G729B, …

    El códec «libre» utiliza las primitivas Intel IPP, por lo que sigue siendo un códec G.729 y la principal diferencia es que utiliza un conjunto diferente de ecuaciones, por lo que la evolución del resto de anexos del códec inicial ya no es viable y de hecho provocan diferencias en la propia carga del procesador.

    Como he comentado, el códec G729 tiene muchas variantes (G.729a,b,c,d,e,c+,f,g,h e incluso el g.279i) cada una con sus peculiariedades, aunque el más utilizado es el G.729a y el G.729b por ser el más sencillo y por lo tanto el más rápido de comprimir y descomprimir, el resto se utilizan en telefonía móvil y como base para otros códecs menos conocidos y mucho más caros incluidos en DSPs integrados en tarjetas de comunicaciones.

    En cuanto a la legalidad…

    En Europa no debe pagarse ninguna licencia por el uso del códec ya que por ahora (y esperemos que siga siendo así) las patentes software no han sido aprobadas y por lo tanto el código sigue sin ser patentable, la pega es que la entidad encargada de este códec está en los EEUU y allí sí que hay patentes software, por lo que si alguien quiere conseguir una licencia, no tendrá más remedio que pagar por ella.

    Por esto, en Europa es legal utilizar la versión «opensource» aunque como he dicho antes, las empresas que ofrecen servicios de VoIP y que utilizan la versión patentada del códec, las empresas fabricantes también lo utilizan, por lo que si utilizamos la versión «opensource» en nuestro Asterisk, además de no disponer de las «evoluciones» del códec, mayor velocidad a la hora de comprimir y descomprimir, etc… tal y como he comentado, debería funcionar de manera más o menos transparente y este «mas o menos» es lo que hace que en algunos casos se produzcan cortes en las llamadas cuando se utiliza este códec para comunicar ciertos terminales que sí disponen de la última versión.

    Otra de las pegas que nos podemos encontrar con la versión Intel, es que suele dar algún que otro problema con kernels SMP: (Intel g729 crash redhat)  e incluso cortes de audio en Asterisk que se van resolviendo, pero a medida que evoluciona el códec las diferencias aumentan y eso lo vuelve inconsistente.

    Espero que con este artículo se hayan resuelto algunas cuestiones 🙂

  • SDK para programar tu softphone en Visual Studio

    pressreleasedPortSIP es una empresa que ha desarrollado unas librerías para que cualquier programador de Visual Studio (Visual Basic, Visual C++), Delphi C# o incluso JavaScript/HTML, pueda programarse su propio softphone de una manera mucho más sencilla y cómoda.

    Estas librerías soportan:

    • Códecs G.711a, G.711u, iLBC, G.723, G.729 y GSM 6.10.
    • Videoconferencia con H.263 y H.264.
    • DTMF2833 y SIP INFO

    NewShot

    Las SDK de PortSIP son comerciales, aunque podemos descargar una versión limitada para hacer nuestras pruebas. Esta limitación consiste en que únicamente permiten 3 minutos de audio/video y que el software no podrá ser distribuido, vendido, etc…

    Más información: http://www.portsip.com/

  • Actualiza gratis tu TC400B a 120 canales!

    Una sorpresa que nos ha traído hoy Digium, ha sido que con la última versión del Zaptel, para aquellos que tienen la tarjeta de transcoding TC400B (que recuerden, soportaba 96 canales G.729 y 92 canales G.723) ahora viene con dos sorpresas:

    1.- Ahora la tarjeta soporta G.723.1 (5.3kbits/seg y 6.3kbits/seg)
    Hasta ahora únicamente soportaba la versión de 5.3kbits/seg.

    2.- Al actualizar con el último zaptel, tendremos que darnos cuenta que, en lugar de 96 licencias G.729 y 92 licencias G.723, ahora tendremos 120 licencias G.729 totalmente gratis. (25% más)

    Lo que se suele decir en estos casos: Hasta que no lo vea, no lo creeré, así que… a actualizar y a probarlo! 😀

    Enlace: http://blogs.digium.com/2008/01/17/more-more-more-tc400/

  • Skype mejora su códec de audio

    Leyendo el blog de Andy Abramson, que estuvo unos días en España, habla sobre la excelente calidad de sonido de esta aplicación que, como ya recordais, se desmarcó del conocido códec comercial GIPS de Global IP Sound.

    Comenta que ha probado varios softphones y que, debido a la infraestructura existente en España en cuanto a redes Wifi y ADSL, hace que aplicaciones como SightSpeed y Skype «brillen más», supongo que lo dirá por la latencia y el ancho de banda de las redes donde lo haya intentado, aunque considerando que el mejor códec del que puede disponer un softphone normal sea G.729, otros como GIPS o el nuevo códec de Skype llamado SVOPC, permitirían una mejora de la calidad, así como un ahorro del ancho de banda.

    Pero que esto no lleve a equivocación:
    Para llamadas procedentes de la red Skype a telefonía convencional, sigue siendo mediante G729A.

    Las comparaciones, a veces son odiosas. 😀

  • Videoconferencia con Asterisk y 3G

    Asterisk videoNuestro colega Bytecoders nos apunta en un comentario que acaba de traducir un tutorial creado en inglés por Sergio García (de fontventa.com) sobre cómo compilar Asterisk para que tenga soporte de códecs que conecten con la red 3G y permitan la videoconferencia con los móviles de última generación. (bueno, los anteriores al iPhone. 😀)

    Parece que la idea de meter Video en Asterisk lleva bastante tiempo dando guerra, pero parece que este año que entra ahora va a cobrar mucho más protagonismo. Ya escribiré más adelante qué se espera para este nuevo año, de momento vamos a centrarnos.

    En el tutorial se indica que funciona con terminales Nokia N95 y LG.

    Para la instalación utilizan Debian Etch y una Digium B410P.

    Se hace una instalación completa de Asterisk con soporte de mISDN para la tarjeta Digium y luego se procede a compilar el soporte de vídeo:

    – Instalación del H324M y modificaciones para integrarlo con la tarjeta B410P.
    – Instalación del códec AMR.
    – Instalación del gateway H324 (Para recibir y hacer llamadas 3G)
    – Instalación del mpeg4ip
    – Instalación del app_mp4.
    – Instalación del app_rtsp.
    – Instalación del app_transcode.
    – Instalación del pcm2mp4.
    – Ejemplos de uso del dialplan.

    Un tutorial que a más de uno le hará la vida un poco más sencilla. 😛

    Enlace:  http://bytecoders.homelinux.com/…/tutorial-asterisk-…-video-…-3g.html

  • Asterisk Addons 1.4.5 y nueva versión códec G729

    Del equipo de desarrolladores de Asterisk recibo un correo con dos actualizaciones interesantes:

    Asterisk-addons-1.4.5:
    Compatible con la versión actual de Asterisk 1.4.15 y algunos errores solucionados.

    Version 33 del códec G729:
    Es una actualización para que funcione el códec G729a con la última versión de Asterisk.

    Podeis descargarlo de http://downloads.digium.com/pub