Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Снижение скорости передачи данных или BRR , также называемое уменьшенной скоростью передачи данных , - это название метода сжатия звука, используемого в звуковом сопроцессоре SPC700, используемом в SNES , а также в аудиопроцессорах Philips CD-i , PlayStation и компании Apple Macintosh Quadra серии. [1] Метод является формой ADPCM .

BRR сжимает каждую последовательную последовательность из шестнадцати 16-битных выборок ИКМ в блок из 9 байтов . От наиболее значимого до наименее значимого, первый байт каждого блока состоит из четырех битов, указывающих диапазон блока (см. Ниже), который управляет размером шагов между 16 возможными значениями, так что минутные изменения могут быть записаны, если 16 значений ближе вместе, но незначительные изменения теряются, если 16 значений находятся далеко друг от друга, два бита указывают фильтр (см. ниже) и два бита управляющей информации для SPC700. Остальные восемь байтов состоят из 16 4-битных полубайтов со знаком, которые соответствуют 16 выборкам, упакованным с прямым порядком байтов.манера. Поскольку 32 байта ввода становятся 9 байтами вывода, алгоритм BRR дает степень сжатия 3,56: 1.

Алгоритм декомпрессии [ править ]

Полубайт n в блоке с фильтром и диапазоном должен быть декодирован в выборку PCM с использованием следующего уравнения линейного предсказания второго порядка :

Здесь и - отсчеты PCM последнего и предпоследнего вывода соответственно. Тип фильтра преобразуется в коэффициенты предсказания БИХ с использованием следующей таблицы:

Все эти вычисления выполняются в знаковой арифметике с фиксированной точкой 16.16 .

Или словами:

  • Фильтр 0 линейно декодирует битовую версию выборок с пониженным квантованием.
  • Фильтр 1 добавляет версию отсчетов с пониженным квантованием по битам к пониженному предыдущему входу (дельта-пакет или дифференциальное кодирование).
  • Фильтры 2 и 3 добавляют немного уменьшенную версию выборок к линейной экстраполяции последних двух выборок (дифференциальное кодирование 2-го порядка).

APU PlayStation и CD-i CDIC от Philips добавляют еще один набор коэффициентов к вышеуказанному и меняют их порядок, получая пять уникальных фильтров из 8 (они взяты из спецификаций Зеленой книги и Желтой книги ):

Все эти вычисления выполняются в знаковой арифметике с фиксированной точкой 16.16 .

Ссылки [ править ]

  • Документация SPC 700
  • Патент США 4 685 115 [начало системы, которая стала BRR]
  • Патент США 4783792 [дальнейшее развитие BRR]
  • Патент США 4797902 [BRR; примеры коэффициентов можно увидеть на странице 21]
  • Патент США 4829522 [BRR с интерполяцией с учетом исправления ошибок для чтения с дискового носителя, такого как MiniDisc ; последняя реализация MiniDisc не использовала BRR]
  • Патент США 5 041 830 [сдвиг / квантование BRR]
  • Патент США 5070515 [кодирование BRR / формирование шума; примеры коэффициентов можно увидеть на странице 23]
  • Патент США 5,086,475 [BRR Looping, определение высоты тона / частоты для кодирования]
  • Патент США 5,111,530 [скорее конкретный патент на работу DSP в SNES и PlayStation APU]
  • Патент США 5,128,963 [более поздний патент на систему, которая стала BRR]
  • Патент США 5 166 981 [Использование анализа LPC для помощи в кодировании BRR]
  • Патент США 5 303 374 [генератор ошибок прогнозирования для помощи в кодировании BRR; коэффициенты можно увидеть на странице 6]
  • Патент США 5,430,241 [BRR Looping, определение высоты тона / частоты для кодирования, аналогично 5,086,475]
  • Патент США 5,519,166 [BRR Looping, определение высоты тона / частоты для кодирования, продолжение 5,430,241]
  • Патент США 5 978 492 [BRR в контексте CD-XA на Sony PlayStation ]