Articulo de referencia

Reducción de la tasa de bits

La reducción de tasa de bits , o BRR , también llamada reducción de tasa de bits , es un nombre que se le da a un método de compresión de audio utilizado en el coprocesador de s...

La reducción de tasa de bits , o BRR , también llamada reducción de tasa de bits , es un nombre que se le da a un método de compresión de audio utilizado en el coprocesador de sonido SPC700 utilizado en la SNES , así como en los procesadores de audio de Philips CD-i , PlayStation y la serie Apple Macintosh Quadra . [ 1 ] El método es una forma de ADPCM .

BRR comprime cada secuencia consecutiva de dieciséis muestras PCM de 16 bits en un bloque de 9 bytes . De mayor a menor importancia, el primer byte de cada bloque consta de cuatro bits que indican el rango del bloque (véase más abajo), que controla el tamaño de los pasos entre los 16 valores posibles, de modo que se pueden registrar cambios mínimos si los 16 valores están más cerca, pero se pierden si están muy separados; dos bits que indican el filtro (véase más abajo); y dos bits de información de control para el SPC700. Los ocho bytes restantes constan de 16 nibbles de 4 bits con signo que corresponden a las 16 muestras, empaquetados en formato big-endian . Dado que 32 bytes de entrada se convierten en 9 bytes de salida, el algoritmo BRR produce una relación de compresión de 3,56:1.

Algoritmo de descompresión

Un mordisco n en un bloque con filtroF{\displaystyle f}y gamar{\displaystyle r}debe decodificarse en una muestra PCMst{\displaystyle s_{t}}utilizando la siguiente ecuación de predicción lineal de segundo orden :

st=2rnorte+k1st1k2st2{\displaystyle s_{t}=2^{r}n+k_{1}s_{t-1}-k_{2}s_{t-2}}

Aquí,st1{\displaystyle s_{t-1}}yst2{\displaystyle s_{t-2}}son las muestras PCM de última salida y penúltima salida, respectivamente. El tipo de filtroF{\displaystyle f}se traduce en coeficientes de predicción IIRk{\displaystyle k}utilizando la siguiente tabla:

Todos estos cálculos se realizan en aritmética de punto fijo con signo 16.16 .

O en palabras:

  • El filtro 0 decodifica linealmente elr{\displaystyle r}Versión de las muestras con cuantificación reducida de bits.
  • El filtro 1 agrega unr{\displaystyle r}Versión de las muestras con cuantificación reducida en bits respecto a una entrada anterior reducida (empaquetado delta o codificación diferencial).
  • Los filtros 2 y 3 añaden unr{\displaystyle r}Versión con cuantificación reducida de bits de las muestras a la extrapolación lineal de las dos últimas muestras (codificación diferencial de segundo orden).

Los coeficientes de los filtros anteriores se especifican como ligeramente inferiores a 1 o 2 para lograr un integrador con fugas más resistente a errores en el flujo de bits codificado. De lo contrario, cualquier error podría propagarse infinitamente, ya que la respuesta impulsional de un integrador ideal es una función escalón . Los denominadores son potencias de 2 para facilitar la implementación mediante desplazamientos de bits, en lugar de utilizar un multiplicador de hardware más costoso.

La APU de PlayStation y el CDIC de Philips CD-i añaden otro conjunto de coeficientes a los anteriores y los reordenan, para un total de cinco filtros únicos de ocho (estos provienen de las especificaciones del Libro Verde y el Libro Amarillo ):

Todos estos cálculos se realizan en aritmética de punto fijo con signo 16.16 .

Referencias

  1. "68kMLA" .
  • Documentación SPC 700
  • Patente estadounidense 4,685,115 [orígenes del sistema que se convirtió en BRR]
  • Patente estadounidense 4,783,792 [desarrollo posterior hacia BRR]
  • Patente estadounidense 4,797,902 [BRR; se pueden ver ejemplos de coeficientes en la página 21]
  • Patente estadounidense 4,829,522 [BRR con interpolación con corrección de errores para la lectura desde un medio de disco como un MiniDisc ; la implementación final de MiniDisc no utilizó BRR]
  • Patente estadounidense 5,041,830 [Desplazamiento/cuantización BRR]
  • Patente estadounidense 5,070,515 [Codificación BRR/conformación de ruido; se pueden ver ejemplos de coeficientes en la página 23]
  • Patente estadounidense 5,086,475 [Bucle BRR, detección de tono/frecuencia para codificación]
  • Patente estadounidense 5,111,530 [Patente bastante específica sobre el funcionamiento del DSP en la APU de SNES y PlayStation ]
  • Patente estadounidense 5,128,963 [una patente posterior sobre el sistema que se convirtió en BRR]
  • Patente estadounidense 5,166,981 [Uso del análisis LPC para ayudar en la codificación BRR]
  • Patente estadounidense 5,303,374 [Generador de errores predictivos para ayudar en la codificación BRR; los coeficientes se pueden ver en la página 6]
  • Patente estadounidense 5,430,241 [Bucle BRR, detección de tono/frecuencia para codificación, similar a 5,086,475]
  • Patente estadounidense 5,519,166 [BRR Looping, detección de tono/frecuencia para codificación, continuación de 5,430,241]
  • Patente estadounidense 5,978,492 [BRR en el contexto de CD-XA en Sony PlayStation ]