Diferencia entre buffer por kernel y buffer por hardware

memolomazo
#1 por memolomazo el 03/09/2010
Buenas,
Soy poseedor de una Saffire 6 USB y la latencia siempre me ha traido un poco de cabeza.
Decidí bajarme el último Asio4All para ver qué podría hacer en vez de usar unicamente el driver Asio de Saffire.
Tiene más opciones y tal y vi algo que me llamó la atención: el Buffer por "kernel"
Con este buffer activado en vez de el de hardware las latencias son más bajas y tal
¿Cual es la diferencia entre kernel y hardware? ¿Qué es más recomendable usar?

Saludos.
Subir
OFERTASVer todas
  • -26%
    AKAI MPC Key 61
    1.290 €
    Ver oferta
  • -21%
    Zoom H4n Pro Black
    158 €
    Ver oferta
  • -40%
    ¡Precio mínimo histórico! AKAI MPK 261
    298 €
    Ver oferta
scr_vr
#2 por scr_vr el 05/09/2010
+1 :mrgreen:
Subir
memolomazo
#3 por memolomazo el 06/09/2010
A ver si algún experto se anima a contestar :D :D
Subir
Harpocrates666
#4 por Harpocrates666 el 07/09/2010
No se te ha ocurrido leer el manual?

Bueno, lo primero es lo primero, las interfaces de audio diseñadas para aplicaciones de audio profesional o semiprofesional tienen sus propios driver Asio y no existe absolutamente ninguna necesidad de valerse de los Asio4all, eso en general ya que existen algunas excepciones o algunos casos en particular en que si tenga algún sentido utilizar estos driver, pero para la mayoría de las interfaces no viene al caso recurrir a los A4A.

La razón de por que existen los A4A es para dotar de un driver de baja latencia a interfaces que no trabajan nativamente sobre el protocolo Asio, en otras palabras, tarjetas de audio multimedia o integradas, que no debido a las aplicaciones para las cuales se han diseñado no tienen necesidad de trabajar con latencias bajas por tanto no utilizan el protocolo Asio, si no WDM. Lo que hace el driver Asio4all es realizar un puente entre WDM y Asio, de manera que interfaces no compatibles con Asio, puedan entenderse con este protocolo, pudiendo obtenerse bajas latencias. Ahora en realidad a mi gusto esto es como ponerle una turbina a una carreta, si viajaras a gran velocidad, pero seguirás sobre una carreta.

Aclarado esto enfoquemonos en tu duda, lo primero que tienes que comprender es que es el kernel, pues bien, el kernel es el núcleo del sistema operativo, usar un buffer por kernel implica que el sistema operativo, que es netamente software, reservara un espacio de memoria para utilizarlo como buffer.

Ahora bien, ciertos dispositivos permiten bypasear al kernel y ellos mismos proveer el buffer necesario para almacenar los datos, esto se denomina buffer por hardware, y
para poder utilizar esta opción, primero es necesario que el dispositivo que utilizas sea compatible con la opción, si no está construido con un buffer interno pues por mucho que selecciones esta opción no obtendrás mejores resultados, es quizás por lo que al seleccionar la opción buffer por kernel tienes mejor rendimiento.

Por cierto buffer es un acumulador, es decir un espacio de memoria que retiene la información mientras el procesador trabaja, esto es para no sobrecargar el procesador y no se pierda información originando cortes que se sentirán como un chasquido, entre mas grande es el tamaño del cumulador, induces mayor tiempo de retardo o latencia, muchos piensan en la latencia como un problema, pero desconocen que en realidad es la solución al problema, el gran problema con los ordenadores es que no son capaces de procesar el audio en tiempo real, van a tropiezos por tanto hay que ayudarlos un poco reteniendo la información, demorandola, para darle el tiempo suficiente al procesador para que termine de hacer todos sus cálculos, eso es la latencia, es guardar en una memoria un tiempo la información para que el procesador trabaje con holgura.

Finalmente, al descargar la ultima versión de Asio4all obtendrás de regalo, sin concursos ni sorteos un hermosos manual de usuario en formato PDF, donde podrás encontrar la explicación a las dos opciones que puedes encontrar en el panel de control de Asio4all que tanto te intrigan.
Subir
PETZOO
#5 por PETZOO el 07/09/2010
harpocrates666 escribió:
No se te ha ocurrido leer el manual?

Bueno, lo primero es lo primero, las interfaces de audio diseñadas para aplicaciones de audio profesional o semiprofesional tienen sus propios driver Asio y no existe absolutamente ninguna necesidad de valerse de los Asio4all, eso en general ya que existen algunas excepciones o algunos casos en particular en que si tenga algún sentido utilizar estos driver, pero para la mayoría de las interfaces no viene al caso recurrir a los A4A.

La razón de por que existen los A4A es para dotar de un driver de baja latencia a interfaces que no trabajan nativamente sobre el protocolo Asio, en otras palabras, tarjetas de audio multimedia o integradas, que no debido a las aplicaciones para las cuales se han diseñado no tienen necesidad de trabajar con latencias bajas por tanto no utilizan el protocolo Asio, si no WDM. Lo que hace el driver Asio4all es realizar un puente entre WDM y Asio, de manera que interfaces no compatibles con Asio, puedan entenderse con este protocolo, pudiendo obtenerse bajas latencias. Ahora en realidad a mi gusto esto es como ponerle una turbina a una carreta, si viajaras a gran velocidad, pero seguirás sobre una carreta.

Aclarado esto enfoquemonos en tu duda, lo primero que tienes que comprender es que es el kernel, pues bien, el kernel es el núcleo del sistema operativo, usar un buffer por kernel implica que el sistema operativo, que es netamente software, reservara un espacio de memoria para utilizarlo como buffer.

Ahora bien, ciertos dispositivos permiten bypasear al kernel y ellos mismos proveer el buffer necesario para almacenar los datos, esto se denomina buffer por hardware, y
para poder utilizar esta opción, primero es necesario que el dispositivo que utilizas sea compatible con la opción, si no está construido con un buffer interno pues por mucho que selecciones esta opción no obtendrás mejores resultados, es quizás por lo que al seleccionar la opción buffer por kernel tienes mejor rendimiento.

Por cierto buffer es un acumulador, es decir un espacio de memoria que retiene la información mientras el procesador trabaja, esto es para no sobrecargar el procesador y no se pierda información originando cortes que se sentirán como un chasquido, entre mas grande es el tamaño del cumulador, induces mayor tiempo de retardo o latencia, muchos piensan en la latencia como un problema, pero desconocen que en realidad es la solución al problema, el gran problema con los ordenadores es que no son capaces de procesar el audio en tiempo real, van a tropiezos por tanto hay que ayudarlos un poco reteniendo la información, demorandola, para darle el tiempo suficiente al procesador para que termine de hacer todos sus cálculos, eso es la latencia, es guardar en una memoria un tiempo la información para que el procesador trabaje con holgura.

Finalmente, al descargar la ultima versión de Asio4all obtendrás de regalo, sin concursos ni sorteos un hermosos manual de usuario en formato PDF, donde podrás encontrar la explicación a las dos opciones que puedes encontrar en el panel de control de Asio4all que tanto te intrigan.


=D> =D> =D> . Explicacion perfecta
Subir
Hilos similares
Nuevo post

Regístrate o para poder postear en este hilo