Zmniejszenie szybkości transmisji bitów
Bit Rate Reduction lub BRR , zwany także Bit Rate Reduced , to nazwa nadana metodzie kompresji dźwięku używanej w koprocesorze dźwięku SPC700 używanym w SNES , a także w procesorach audio Philips CD-i , PlayStation i serię Apple Macintosh Quadra . Metoda jest formą ADPCM .
BRR kompresuje każdą kolejną sekwencję szesnastu 16-bitowych próbek PCM do bloku o długości 9 bajtów . Od najbardziej do najmniej znaczącego, pierwszy bajt każdego bloku składa się z czterech bitów wskazujących zakres bloku (patrz poniżej), który kontroluje wielkość kroków między 16 możliwymi wartościami, tak że można zarejestrować zmiany minutowe, jeśli 16 wartości jest bliższych razem, ale drobne zmiany są tracone, jeśli 16 wartości jest daleko od siebie, dwa bity wskazują filtr ( patrz poniżej) i dwa bity informacji kontrolnej dla SPC700. Pozostałe osiem bajtów składa się z 16 podpisanych 4-bitowych półbajtów, które odpowiadają 16 próbkom, upakowanym w sposób big-endian . Ponieważ 32 bajty wejściowe stają się 9 bajtami wyjściowymi, algorytm BRR daje współczynnik kompresji 3,56:1.
Algorytm dekompresji
Półbajt n bloku z filtrem zakresem zostać zdekodowany do próbki PCM przy użyciu następującego równania predykcji liniowej
Tutaj i przedostatnie filtra jest tłumaczony na współczynniki przewidywania IIR przy użyciu poniższej tabeli: fa
Filtruj _ | k 1 | k 2 |
---|---|---|
0 | 0 | 0 |
1 | 15/16 | 0 |
2 | 61/32 | 15/16 |
3 | 115/64 | 13/16 |
Wszystkie te obliczenia są wykonywane w arytmetyce stałoprzecinkowej ze znakiem 16.16 .
Albo słownie:
- Filtr 0 liniowo dekoduje nieco .
- Filtr 1 dodaje do obniżonego poprzedniego wejścia (pakiet delta lub kodowanie różnicowe).
- Filtry 2 i 3 dodają wersję próbek do liniowej ekstrapolacji z dwóch ostatnich próbek (kodowanie różnicowe drugiego rzędu).
PlayStation APU i Philips CD-i CDIC dodają kolejny zestaw współczynników do powyższego i zmieniają ich kolejność, w sumie pięć unikalnych z 8 filtrów (pochodzą one ze specyfikacji Green Book i Yellow Book ):
Filtruj _ | k 1 | k 2 |
---|---|---|
0 | 0 | 0 |
1 | 15/16 | 0 |
2 | 115/64 | 13/16 |
3 | 49/32 | 55/64 |
4 | 61/32 | 15/16 |
Wszystkie te obliczenia są wykonywane w arytmetyce stałoprzecinkowej ze znakiem 16.16 .
- Dokumentacja SPC 700
- US Patent 4,685,115 [początki systemu, który stał się BRR]
- Patent US 4,783,792 [dalszy rozwój w kierunku BRR]
- patent US 4,797,902 [BRR; przykładowe współczynniki można zobaczyć na stronie 21]
- Patent USA 4 829 522 [BRR z interpolacją uwzględniającą korekcję błędów do odczytu z nośnika dyskowego, takiego jak MiniDisc ; ostateczna implementacja MiniDisc nie wykorzystywała BRR]
- Patent USA 5 041 830 [przesunięcie/kwantyzacja BRR]
- patent US 5,070,515 [kodowanie BRR/kształtowanie szumu; przykładowe współczynniki można zobaczyć na stronie 23]
- Patent US 5,086,475 [BRR Looping, wykrywanie wysokości/częstotliwości do kodowania]
- US Patent 5,111,530 [Raczej specyficzny patent na działanie DSP w SNES i PlayStation APU]
- Patent US 5,128,963 [późniejszy patent na system, który stał się BRR]
- Patent US 5,166,981 [Wykorzystanie analizy LPC do pomocy w kodowaniu BRR]
- patent US 5,303,374 [Generator błędów predykcyjnych do wspomagania kodowania BRR; współczynniki można zobaczyć na stronie 6]
- Patent US 5,430,241 [BRR Looping, wykrywanie wysokości/częstotliwości do kodowania, podobnie jak 5,086,475]
- Patent US 5,519,166 [BRR Looping, wykrywanie wysokości/częstotliwości do kodowania, kontynuacja 5,430,241]
- Patent US 5,978,492 [BRR w kontekście CD-XA na Sony PlayStation ]