True peak po kodowaniu: pomiary, zapas i wyjątki

Management Summary
Zamiana gotowego nagrania w mniejszy plik do streamingu może zmienić krótkie szczyty sygnału i podnieść je ponad granicę odtwarzania. True peak szacuje takie odtworzone szczyty, a nie ogólną głośność. Eksperyment pokazuje, dlaczego zapas poziomu jest przydatny, lecz nie gwarantuje bezpiecznego wyniku każdej konwersji. Sprawdzenie rzeczywistych formatów dystrybucji pomaga wykryć ryzyko zniekształceń przed publikacją. Wynik jednego formatu nie opisuje automatycznie pozostałych.
Spis treści
- Szczyty, głośność i zapas: proste wyjaśnienie
- Co zostało zmierzone
- Mastery −9 LUFS: szczyty rosną lub spadają
- Mastery −14 LUFS zmieniły się w tym teście mniej
- Wynik przy −2 dBTP ma ważny wyjątek
- Granica próbek 0 dBFS nie ogranicza szczytów między próbkami
- Dlaczego dwie metody dają różne szczyty
- Dlaczego mniej informacji może oznaczać wyższy szczyt
- Formaty streamingowe i zalecenia dotyczące masterów
- Przydatna kontrola rzeczywistego mastera
- Pytania i odpowiedzi
- Źródła
Stratne kodowanie dźwięku może zmienić szczyty mastera. Po dekodowaniu plik AAC, MP3, Ogg Vorbis lub Opus może mieć wyższe albo niższe szczyty niż źródło. Samo ustawienie limitera nie gwarantuje więc, że wersja dostarczona przez serwis pozostanie poniżej pełnej skali. Kilka serwisów oferuje również odtwarzanie bezstratne; badana tutaj ścieżka stratna jest tylko jedną z możliwości.
Eksperyment obejmował dwa syntetyczne miksy, cztery wersje mastera każdego miksu oraz jedenaście ustawień przetwarzania: dziewięć kodowań stratnych i dwie próby kontrolne. Archiwum zawiera 88 wyników. Najważniejsze są różnice między plikami: niektóre szczyty spadły. Jeden plik AAC z mastera o poziomie około −2 dBTP osiągnął natomiast +2,93 dBTP w pierwotnym pomiarze. Zalecenia takie jak −1 lub −2 dBTP stanowią punkt wyjścia, ale nie gwarancję dla każdego enkodera i nagrania.
Master to gotowa wersja dźwięku przygotowana do publikacji. Kodowanie zamienia dźwięk na format przeznaczony do dostarczenia. Kodeki stratne zmniejszają pliki między innymi przez odrzucanie części informacji. Dekodowanie odtwarza z zapisanych danych próbki dźwięku. Przepływność w kbit/s oznacza ilość danych na sekundę.
Szczyty, głośność i zapas: proste wyjaśnienie
Próbka to jedna zapisana wartość amplitudy. Sample peak oznacza największą wartość bezwzględną, więc liczą się także wychylenia ujemne. Przebieg odtworzony między próbkami może sięgać wyżej. Miernik true peak szacuje ten szczyt. Jednostka dBTP opisuje poziom względem pełnej skali cyfrowej. Wynik −1 dBTP pozostawia około 1 dB zapasu, a wynik dodatni przekracza tę granicę.
LUFS opisuje odczuwaną głośność w czasie, a nie tylko najwyższy moment. Głośność zintegrowana obejmuje całe nagranie. Według tej miary master −9 LUFS jest głośniejszy niż master −14 LUFS. Limiter obniża szczyty. Silniejsze ograniczanie może zwiększyć głośność nagrania bez podnoszenia najwyższej próbki. Niski sample peak nie dowodzi zatem niskiego true peak.
Clipping oznacza obcięcie szczytu, którego dany etap przetwarzania nie może przedstawić. Dźwięk w formacie zmiennoprzecinkowym może zachować wartości powyżej pełnej skali. Późniejszy etap nadal może je obciąć, zależnie od formatu liczb, wzmocnienia i dostępnego zapasu. Dodatni szczyt ostrzega więc przed możliwym problemem w torze odtwarzania, ale nie dowodzi słyszalnych zniekształceń w każdym odtwarzaczu.
Co zostało zmierzone
- Materiał: dwa syntetyczne miksy stereo po 32 sekundy, z częstotliwością próbkowania 44,1 kHz i tempem 120 BPM. Drugi miks ma głośniejsze hi-haty i lead oraz więcej wysokich częstotliwości w padach. Oba powstały w Pythonie i przeszły przez kompresor sumy.
- Cele masteringu: A: −8 LUFS z granicą próbek 0 dBFS. B: −9 LUFS i oszacowanie true peak poniżej −1 dBTP. C: −9 LUFS i oszacowanie poniżej −2 dBTP. D: −14 LUFS i oszacowanie poniżej −1 dBTP. Ustawienia filtra
alimiterz FFmpeg były wielokrotnie korygowane. Jasny miks C osiągnął tylko −9,2 LUFS, więc nie spełnił dokładnego celu głośności. - Kodowanie: FFmpeg 7.1.5, wbudowany enkoder AAC przy 128/256 kbit/s, libmp3lame przy 128/320, libvorbis przy 96/160/320 oraz libopus przy 128/256. Dekodowanie do 32-bitowego WAV zmiennoprzecinkowego zachowało szczyty powyżej pełnej skali.
- Próby kontrolne: FLAC i zmiana częstotliwości próbkowania na 48 kHz przy użyciu soxr. Pliki FLAC zawierają 24-bitowe próbki całkowitoliczbowe przeliczone z masterów zmiennoprzecinkowych. Bezstratna kompresja zachowuje te próbki, ale poprzedzająca konwersja nie jest bitowo identyczna z plikiem źródłowym. Zmiany szczytów po zaokrągleniu wyniosły 0,00 dB. Opus był tutaj dekodowany do 48 kHz; interfejs Opus obsługuje także 8, 12, 16 i 24 kHz.
- Pierwotne obliczenie szczytów: implementacja w Pythonie z 48 współczynnikami filtra z załącznika 2 do ITU-R BS.1770-5 i czterokrotnym nadpróbkowaniem. Głośność pochodzi z filtra
ebur128w FFmpeg. Szczyty nie zostały zmierzone tym filtrem. - Obliczenie porównawcze: FFmpeg z 16-krotnym nadpróbkowaniem przez soxr i filtrem
astats, z zachowaniem formatu zmiennoprzecinkowego. Zmienia się tu zarówno liczba punktów pośrednich, jak i filtr.
Ograniczenie metody: czterokrotne nadpróbkowanie 44,1 kHz daje 176,4 kHz. Załącznik 2 opisuje wejście 48 kHz i co najmniej 192 kHz po nadpróbkowaniu dla wskazanego oznaczenia miernika. Archiwalne liczby zachowują poniżej pierwotną jednostkę dBTP, ale są wyraźnie opisane jako oszacowania 4× z tego eksperymentu. Nie oznacza to certyfikowanej zgodności miernika z normą. Obliczenie 16× jest drugim oszacowaniem, a nie dokładną rekonstrukcją każdego urządzenia odtwarzającego.
Nagrania i zakodowane pliki pochodzą z eksperymentu z września 2026 roku. Podczas przeglądu redakcyjnego wybrane pliki archiwalne zostały ponownie zdekodowane i zmierzone, w tym oba odstające wyniki AAC. Nie był to nowy test enkoderów serwisów streamingowych. Dwa krótkie syntetyczne miksy nie wystarczają do ogólnego rankingu kodeków ani do wykazania, że samo limitowanie powoduje zmianę szczytów.

Mastery −9 LUFS: szczyty rosną lub spadają
Przed kodowaniem mastery B miały −1,02 dBTP w pierwszym miksie i −1,05 dBTP w jasnym miksie. Tabela zawiera pierwotne oszacowania 4×. Zmiany obliczono przed zaokrągleniem, dlatego odejmowanie wyświetlonych liczb może dać różnicę o 0,01 dB.
| Kodek | miks po | Zmiana | jasny miks po | Zmiana |
|---|---|---|---|---|
| FLAC (kontrola) | −1,02 dBTP | ±0,00 dB | −1,05 dBTP | ±0,00 dB |
| tylko resampling do 48 kHz | −0,85 dBTP | +0,18 dB | −0,76 dBTP | +0,29 dB |
| AAC 128 kbit/s | −0,21 dBTP | +0,81 dB | −0,07 dBTP | +0,98 dB |
| AAC 256 kbit/s | −0,70 dBTP | +0,32 dB | +1,37 dBTP | +2,42 dB |
| MP3 128 kbit/s | −1,09 dBTP | −0,07 dB | −1,39 dBTP | −0,34 dB |
| MP3 320 kbit/s | −0,89 dBTP | +0,13 dB | −0,74 dBTP | +0,31 dB |
| Ogg Vorbis 96 kbit/s | −0,43 dBTP | +0,59 dB | −1,00 dBTP | +0,05 dB |
| Ogg Vorbis 160 kbit/s | −0,57 dBTP | +0,45 dB | −0,31 dBTP | +0,74 dB |
| Ogg Vorbis 320 kbit/s | −1,07 dBTP | −0,05 dB | −0,98 dBTP | +0,07 dB |
| Opus 128 kbit/s | −0,49 dBTP | +0,53 dB | −0,65 dBTP | +0,40 dB |
| Opus 256 kbit/s | −0,65 dBTP | +0,37 dB | −0,75 dBTP | +0,30 dB |
Piętnaście z osiemnastu kodowań stratnych zwiększyło szczyt. MP3 128 obniżyło wynik w obu miksach, a Vorbis 320 w pierwszym miksie. AAC 128 zwiększyło szczyt o 0,81 i 0,98 dB. Jasny plik AAC 256 zawierał większy pojedynczy szczyt: +1,37 dBTP, czyli wzrost o 2,42 dB. Ponowne dekodowanie pliku archiwalnego potwierdziło wynik. Dotyczy to enkodera FFmpeg i tego pliku, a nie automatycznie enkodera Apple.
W masterach B MP3 128 obniżyło głośność zintegrowaną o 0,5 LU w obu miksach. Pozostałe ustawienia stratne zmieniły głośność o najwyżej 0,2 LU. Usunięcie wysokich częstotliwości nie musi zmniejszyć najwyższego szczytu: inna kombinacja składowych może również dać wyższe szczyty.
Mastery −14 LUFS zmieniły się w tym teście mniej
Mastery D zaczynały od −1,51 i −1,05 dBTP. Najwyższy wynik spośród osiemnastu kodowań stratnych wyniósł −0,84 dBTP dla Opus 128 w jasnym miksie. MP3 320 osiągnęło tam −0,86 dBTP. W pierwszym miksie najwyższy wynik to −1,48 dBTP dla Vorbis 320.
Te dwie wersje wymagały słabszego limitowania i wykazały mniejsze wzrosty niż wersje B. Ta zależność jest przydatna, lecz nie dowodzi, że przy −14 LUFS granica −1 dBTP zawsze wystarcza. Inne nagrania, filtry i enkodery mogą zachować się inaczej.
Wynik przy −2 dBTP ma ważny wyjątek
Pierwszy master C osiągnął −9 LUFS i −2,05 dBTP. Najwyższy szczyt po kodowaniu wyniósł −0,89 dBTP dla AAC 128. Wszystkie pozostałe ustawienia pozostały na poziomie najwyżej −1,57 dBTP.
Jasny master C był wcześniej pominięty w głównym porównaniu, ponieważ osiągnął tylko −9,2 zamiast −9 LUFS. Uniemożliwia to porównanie przy dokładnie równej głośności. Plik nadal ma jednak znaczenie dla oceny zapasu: pierwotny szczyt wynosił −2,05 dBTP, a wersja AAC 256 osiągnęła +2,93 dBTP. Ponowne dekodowanie pliku archiwalnego potwierdziło +2,93 metodą 4× oraz +2,96 w obliczeniu 16×. Nawet sample peak był dodatni i wyniósł +2,34 dBFS.
Archiwum nie potwierdza więc twierdzenia, że master −2 dBTP zawsze pozostaje poniżej zera po kodowaniu. Ten wyjątek nie określa też częstości takiego zachowania. Praktyczny wniosek to pomiar zakodowanych wersji rzeczywistego mastera, z uwzględnieniem pojedynczych krótkich szczytów.
Granica próbek 0 dBFS nie ogranicza szczytów między próbkami
Mastery A osiągnęły −8 LUFS. Już przed kodowaniem oszacowania 4× wynosiły +0,37 i +1,03 dBTP, mimo granicy próbek 0 dBFS. AAC 128 osiągnęło +2,29 dBTP w pierwszym miksie, a AAC 256 +2,23 dBTP w jasnym miksie. Pliki po stratnym kodowaniu i dekodowaniu zawierały od 14 do 411 wartości próbek powyżej pełnej skali, licząc oba kanały.
AES TD1008 opisuje możliwość clippingu w dekoderach stałoprzecinkowych i obniżania poziomu w niektórych torach odtwarzania systemów operacyjnych. To możliwe skutki na późniejszych etapach, a nie zmierzone tutaj właściwości konkretnego odtwarzacza. Nie przeprowadzono testów odsłuchowych ani pomiarów poszczególnych urządzeń.
Dlaczego dwie metody dają różne szczyty
| Wartość | Pierwotne oszacowanie 4× | Porównanie 16× z soxr |
|---|---|---|
| Master B, miks, przed kodowaniem | −1,02 dBTP | −0,80 dBTP |
| Master B, jasny miks, przed kodowaniem | −1,05 dBTP | −0,54 dBTP |
| tylko resampling do 48 kHz, wzrost (miks / jasny miks) | +0,18 / +0,29 dB | −0,01 / ±0,00 dB |
| Master B, kodowania powyżej 0 dBTP | 1 (AAC 256) | 2 (AAC 256, Ogg Vorbis 160) |
| Master C, miks, najwyższa wartość po kodowaniu | −0,89 dBTP | −0,77 dBTP |
| Master D, najwyższa wartość po kodowaniu | −0,84 dBTP | −0,84 dBTP |
| Master D, miks, przed kodowaniem | −1,51 dBTP | −1,66 dBTP |
| Jasny master C przed kodowaniem (−9,2 LUFS) | −2,05 dBTP | −1,69 dBTP |
| Jasny master C po AAC 256 (nowa kontrola archiwum) | +2,93 dBTP | +2,96 dBTP |
Większe nadpróbkowanie wylicza więcej punktów między zapisanymi próbkami. Może dzięki temu wykryć wcześniej pominięty szczyt. Filtr również wpływa na wynik: w masterze D pierwszego miksu oszacowanie 16× było niższe o 0,15 dB. Nie jest to zatem stała korekta o najwyżej 0,5 dB.
W jasnym masterze B obliczenie 16× wykazało przekroczenie zera także dla Vorbis 160, z wynikiem +0,21 dBTP. Pozorny wzrost po samej zmianie częstotliwości próbkowania stał się w tej metodzie bardzo mały. Pokazuje to zależność od metody pomiaru. Nie dowodzi, że zmiana częstotliwości próbkowania nigdy nie zmienia szczytów.
EBU Tech 3343 opisuje możliwe zaniżenie o około 0,5 dB dla miernika 4× przy 48 kHz. Nie jest to uniwersalny maksymalny błąd każdego sygnału i filtra. Ta informacja nie potwierdza też bezpośrednio poprawności użytej tutaj implementacji dla 44,1 kHz.
Dlaczego mniej informacji może oznaczać wyższy szczyt
Szczyt zależy od sumowania składowych sygnału w danej chwili. Usunięcie składowej może zmniejszyć nie tylko energię, ale także wzajemne znoszenie się składowych. AES podaje prosty przykład: podstawowa sinusoida fali prostokątnej ma amplitudę 4/π, czyli około 1,27 amplitudy prostokąta. Usunięcie pozostałych harmonicznych pozostawia sinusoidę ze szczytem wyższym o około 2,1 dB, choć całkowita energia spada.
Kodeki stratne zmieniają składowe częstotliwościowe, a przez filtry również ich położenie w czasie. Konwersja częstotliwości próbkowania także wykorzystuje filtry. Takie operacje mogą podnosić lub obniżać szczyty. Wyższa przepływność nie gwarantuje zatem niższych szczytów, co pokazują jasne pliki AAC 256 oraz wyniki MP3 w tym archiwum.
Formaty streamingowe i zalecenia dotyczące masterów
Rzeczywiście dostarczany format zależy od serwisu, abonamentu, urządzenia i ustawionej jakości. Zestawienie przedstawia udokumentowane możliwości, a nie pomiary plików dostarczonych przez serwisy.
| Serwis | stratnie | bezstratnie |
|---|---|---|
| Spotify | aplikacja: poziomy około 24, 96, 160 i 320 kbit/s, według dokumentacji dla deweloperów Ogg Vorbis dla większości utworów; odtwarzacz webowy AAC 128 kbit/s (Free) i 256 kbit/s (Premium) | FLAC do 24 bitów/44,1 kHz (Premium) |
| Apple Music | AAC, według Apple Digital Masters 256 kbit/s | ALAC bezstratnie; zależnie od urządzenia i ustawień |
| YouTube Music | AAC i Opus z przepływnością najwyżej 48, 128 lub 256 kbit/s | Brak poziomu bezstratnego w przywołanych ustawieniach jakości |
| Amazon Music | Opus 48, 192 lub 320 kbit/s (SD) | FLAC (HD i Ultra HD) |
| Deezer | MP3 64, 128 lub 320 kbit/s | FLAC, jakość CD (16 bitów/44,1 kHz) |
Deezer opisuje poziom FLAC jako „1411 kbit/s”. Odpowiada to nieskompresowanemu stereo PCM o rozdzielczości 16 bitów i częstotliwości 44,1 kHz. Skompresowany plik FLAC nie musi mieć tej stałej przepływności. Tabela deweloperska Amazon jest wyraźnie oznaczona jako dokumentacja wstępna. Żadna z tabel nie ustala dokładnego enkodera pojedynczego strumienia.
- Spotify: zaleca −14 LUFS głośności zintegrowanej i true peak poniżej −1 dBTP, a dla głośniejszych masterów poniżej −2 dBTP. Są to zalecenia, nie gwarancja dla każdego szczytu po kodowaniu.
- Apple Digital Masters: zaleca co najmniej 1 dB zapasu i udostępnia między innymi
afclipdo sprawdzania zakodowanych wyników. - AES TD1008: zaleca najwyżej −1 dBTP na wejściu stratnych kodeków streamingowych. Konkretny tor przetwarzania może wymagać większego zapasu.
- EBU R 128 i Tech 3343: dotyczą produkcji i dystrybucji radiowo-telewizyjnej. Granica produkcyjna nie gwarantuje automatycznie zapasu dla każdego stratnego serwisu muzycznego.
Przydatna kontrola rzeczywistego mastera
Kodowanie próbne pokazuje wpływ jednego enkodera i ustawienia na nagranie. Przykładowo polecenie ffmpeg -n -i master.wav -c:a aac -b:a 128k probe.m4a tworzy próbkę AAC i odmawia nadpisania istniejącego pliku wynikowego. Pomiar po dekodowaniu odpowiednim miernikiem true peak pokazuje największy szczyt oraz pozostały zapas. Inne formaty i przepływności wymagają osobnych kontroli. Przykład z FFmpeg nie odtwarza wewnętrznego przetwarzania serwisu streamingowego.
Miernik LUFS i True Peak na tej stronie umożliwia kontrolę w przeglądarce. Dekodowanie przeglądarki i zmiana częstotliwości próbkowania mogą wpływać na wynik. Odczyt nie musi więc odpowiadać wtyczce masteringowej ani historycznemu obliczeniu z tego eksperymentu.
Pytania i odpowiedzi
Czy granica −2 dBTP gwarantuje bezproblemowy plik po kodowaniu?
Nie. Daje większy zapas niż −1 dBTP, a Spotify zaleca tę granicę dla głośniejszych masterów. Archiwalny jasny przykład C mimo to przekroczył zero po kodowaniu AAC 256. Decydująca pozostaje kontrola zdekodowanej wersji rzeczywistego nagrania.
Czy wystarcza próbka MP3 128?
Nie. W przykładach B MP3 128 obniżyło szczyty, natomiast AAC 128 je podniosło. Wynik jednego kodeka nie określa zachowania innego. Nawet dwa ustawienia tego samego kodeka mogą dać inne wysokości i położenie szczytów.
Czy normalizacja głośności zapobiega clippingowi?
Obniżenie poziomu może zmniejszyć zachowany szczyt. Proste ściszenie o 5 dB zmieniłoby +1,37 dBTP na −3,63 dBTP. Nie odtworzy jednak szczytu już wcześniej obciętego. Normalizacja musi też być aktywna: Spotify opisuje wyjątki dla odtwarzacza internetowego i urządzeń innych firm, różne ustawienia głośności oraz wspólne dopasowanie poziomu albumu.
Czy niższa granica szczytów kosztuje głośność?
Obniżenie całego sygnału o 1 dB zmniejsza także głośność zintegrowaną o około 1 LU. Zachowanie tej samej głośności przy niższej granicy szczytów wymaga zmiany przebiegu, na przykład mocniejszego limitowania. Pierwsze mastery B i C osiągnęły po −9 LUFS, ale przy innych ustawieniach limitera. Jasny master C nie osiągnął tego dokładnego celu. Wybór wpływa także na brzmienie i dynamikę, których sam pomiar szczytów nie ocenia.
Źródła
- ITU-R BS.1770: Algorithms to measure audio programme loudness and true-peak audio level
- AES TD1008: Recommendations for Loudness of Internet Audio Streaming and On-Demand Distribution
- EBU R 128: Loudness normalisation and permitted maximum level of audio signals
- EBU Tech 3343: Guidelines for Production of Programmes in accordance with R 128
- Loudness normalization – Spotify for Artists
- Audio quality – Spotify
- Media Delivery – Spotify for Developers
- Apple Digital Masters
- Apple Music
- Audio quality settings – YouTube Music Help
- Audio Formats – Amazon Music Developer
- Deezer Audio Quality
- FFmpeg Codecs Documentation
- Opus 1.5: Decoder API and supported sample rates
- MDN: Audio decoding and resampling with decodeAudioData
- Apple Support: Lossless audio in Apple Music