¿Cómo funciona exactamente la cuantización no lineal en la compilación de ayuda en la compresión de datos?

0

Sigo leyendo que necesitaríamos 13 bits para almacenar muestras de audio con cuantificación lineal, pero al compilar podemos obtener la misma "calidad" con solo 8 bits.

¿Cómo ayuda exactamente la quanitización no lineal en la compresión de datos, es decir, usar 8 bits en lugar de 13? ¿Qué se entiende por calidad en este caso?

    
pregunta quantum231

2 respuestas

2

Sin una cita, lo más probable es que la calidad sea la medida de la distorsión total en la señal original frente a la reproducida.

La audición humana ocurre en un nivel logarítmico. Esto significa que los humanos escuchan más en relación con el otro sonido "alrededor" que el nivel de sonido absoluto. Es por esto que los amplificadores de audio se miden en dB (una escala logarítmica). Esto significa que lo que nos suena como una amplitud cercana puede ser realmente un cambio de volumen de 10 veces o más.

Para cubrir con precisión todos los rangos de sonido, debe cubrir todo el rango (por supuesto). Entonces, si este rango es enorme, como la audición humana, necesita una enorme cantidad de precisión (# de bits utilizados para almacenar cada amplitud de muestra) para almacenar los datos con codificación lineal.

Si, por el contrario, utiliza la codificación no lineal, puede mantener una calidad relativamente alta (menor que con la codificación lineal) pero alcanzar un rango mucho más alto.

Como ejemplo numérico, supongamos que el oído humano capta sonidos de una amplitud de 1 a 100000.

  • Si usamos codificación lineal con un delta de '1', tenemos 100,000 depósitos para cada muestra, y para representar esto necesitamos 16 bits para almacenar.

  • Si en su lugar usamos 10 puntos por potencia de diez, solo tendríamos 50 depósitos, lo que requiere un mísero 5 bits para representarlo.

Una forma fácil de visualizar cómo la cuantización no lineal ayuda es pensar en una gráfica logarítmica. Vea la imagen a continuación:

Puedesverquelagráficalinealtomaunpocoderangoparamostrar.Suponiendoquelatramafueramuchomásalta,necesitaríaproporcionalmentemuchosmásbitsparaalmacenarconprecisiónconlamismaprecisión.Pero,siencambiousaunacuantizaciónnolinealparacodificarelvalor,puedecubrirunrangomuchomayorconelmismonúmerodepuntosdedatos.

¡Elmismofenómenoocurreconlostamañosdeloscomponentes!Notarálosvaloresderepeticiónparacadapotenciade10aumentos.Estoesporlamismarazóntambién!!Proporcionaunaccesorelativamentealtoentodoslosrangosútilesderesistencias/capacitancias,etc.,perolohaceconunnúmerorelativamentepequeñodetamañostotales.

La foto de arriba muestra los valores de los componentes y cómo se eligen. Para un pequeño número de tamaños, obtienes una buena gama.

Esta es la misma razón por la que la cuantización no lineal ayuda con la codificación de audio.

    
respondido por el jbord39
3

El oído humano tiene un rango dinámico sorprendentemente grande. Podemos escuchar sonidos muy tranquilos y sonidos muy fuertes. Si tiene un micrófono que genera voltajes en función del volumen del sonido y luego cuantiza los voltajes, necesitará un rango dinámico bastante grande. De acuerdo con lo que lees, se necesitarían 13 bits para asegurarte de que puedes capturar correctamente la capacidad del oído humano para detectar sonidos fuertes y suaves.

Sin embargo, podemos observar que la sensibilidad del oído humano al volumen no es lineal. Cuando vemos niveles más altos de presión sonora (SPL) correspondientes a señales más altas, encontramos que el oído humano es menos sensible. Por lo tanto, si escuchamos un sonido cuyo SPL es 0.006Pa (que es un sonido de 50dB), una diferencia en la presión de 0.001Pa es extremadamente notable. Si escuchamos un sonido cuyo SPL es 6.3Pa (110dB), la diferencia de presión de 0.001Pa es casi imperceptible.

Por lo tanto, si estamos codificando una muestra de audio para consumo humano, es inútil simplemente cuantificar el nivel de presión de sonido (que normalmente corresponde al voltaje en el micrófono) de manera lineal. Sin embargo, si codificamos la muestra de forma no lineal, podemos proporcionar una resolución más fina de los niveles de presión cuando el sonido es silencioso, y una resolución más gruesa de los niveles de presión cuando el sonido es alto. Debido a los límites del oído humano, los consumidores de esta muestra de audio no notarán la pérdida de resolución a medida que el sonido aumenta. Como resultado, 8 bits pueden codificar el sonido bastante bien para el consumidor promedio de audio, aunque las tasas de bits más altas son comunes para aquellos que buscan un sonido de mayor fidelidad.

No siempre podemos usar estas técnicas para codificar el sonido. Los estudios de grabación a menudo grabarán a una tasa de bits mucho mayor, como un sonido de 16 bits o de 24 bits, y luego se mezclarán hasta 8 bits más tarde. Lo hacen porque procesarán el sonido a través de muchos filtros, y algunos de ellos pueden provocar la distorsión que surge de una codificación no lineal de 8 bits. Una vez que hayan terminado de ejecutarlo a través de los filtros, pueden reducir la muestra a 8 bits utilizando una función no lineal común si lo desean.

    
respondido por el Cort Ammon

Lea otras preguntas en las etiquetas