Pierwszy:
Poznaj różnicę między kodowaniem a formatem kontenera . http://en.wikipedia.org/wiki/Digital_container_format
Format kontenera to format danych, który „kapsułkuje” inne zakodowane dane. Często zawiera „meta-informacje” o zakodowanych danych lub ma sposób na przechowywanie wielu oddzielnych strumieni zakodowanych danych lub coś w tym rodzaju.
Kodowanie, wytwarzane przez kodek, jest rzeczywistym „mięsem” strumienia danych.
Najczęstszym przykładem, jaki mogę wymyślić, jest format „Ogg / Vorbis”. Ogg to format kontenera, a Vorbis to kodowanie. Masz więc plik sformatowany w formacie Ogg, a w środku są te małe segmenty, które zawierają zakodowane dane. W każdym segmencie znajduje się strumień danych zakodowany przez Vorbis i nic więcej. Na wiaderku może być na przykład wybita nazwa wykonawcy i tytuł piosenki.
Wróćmy do technologii:
Jeśli masz już muzykę w formacie stratnym, takim jak mp3 lub ogg / vorbis, przekonwertowanie jej na format bezstratny zużyje tylko (dużo) miejsca na dysku i NIE BĘDZIE - absolutnie NIE BĘDZIE - poprawiać jakości dźwięk w ogóle. Nie możesz stworzyć wierności, gdy już została utracona. Chyba że piszesz interfejs GUI w języku Visual Basic w jakimś popularnym programie telewizyjnym o nazwie CSI, ale to fantazja, a nie rzeczywistość.
Jeśli masz muzykę w innych bezstratnych formatach i chcesz przekonwertować ją na FLAC, możesz to zrobić.
Zachowaj ostrożność przy rzucaniu wokół terminu „WAV”. Wav nie musi być bezstratny; w rzeczywistości WAV to tylko kontener dla różnych możliwych formatów. W pewnym sensie przypomina to AVI. Możesz mieć bezstratny WAV, jeśli są to tylko surowe dane PCM, ale możesz także osadzić dane MPEG-1 Layer III (stratne) w pliku WAV.
Istnieje możliwość utraty danych podczas konwersji z jednego bezstratnego formatu na inny, jeśli zmniejszysz wierność danych. Na przykład, jeśli konwertujesz niepodpisany 16-bitowy strumień danych PCM przy 48000 Hz na 8-bitowy strumień danych PCM przy 44100 Hz, tracisz wierność na dwa sposoby: próbki są scalane z 48000 do zaledwie 44100 na sekunda (co powoduje utratę danych), a dane muszą zostać zmiksowane w dół, aby zmieścić informacje w zaledwie 8 bitach zamiast 16 na próbkę, co dramatycznie pogorszy jakość.
Każdy cyfrowy strumień audio, nawet kodowany przez koder kompresujący (stratny lub bezstratny), ma następujące „właściwości formatu próbki”, które są niezbędnymi elementami opisującymi właściwości strumienia:
Przykładowa szerokość i głębokość bitów, tj. 8 bitów, 16 bitów itp. Szerokość i głębokość bitów są nieznacznie różne, a także little-endian / big-endian (co nie wpływa na jakość) oraz podpisane lub niepodpisane (co również nie wpływa na jakość, ale wpływa na sposób, w jaki koder / dekoder radzi sobie z danymi). Kluczową kwestią do zapamiętania jest to, że „więcej bitów jest lepsze”. Tak więc wersja 32-bitowa jest lepsza niż 16-bitowa itp.
Częstotliwość, znana również jako częstotliwość próbkowania. Im więcej, tym lepiej, ponieważ na sekundę odtwarzanych jest więcej „próbek” dźwięku. Wyobraź sobie, że szybko przesuwasz palcem po talii kart i patrzysz, jak karty przemijają - tak właśnie dzieje się cyfrowe audio. Każda próbka jest kartą, a jeśli masz więcej kart lecących na sekundę, dźwięk jest bardziej płynny. Tak jakbyś naprawdę zauważył, gdybyś przerzucał tylko 5 kart na sekundę, ale wszystko by się rozmazało, gdybyś przerzucał tysiące kart na sekundę. Im więcej, tym lepiej, ponieważ jest bardziej naturalny i bliższy rzeczywistości, która jest analogiczna i nieskończenie podzielna (cóż, aż do jednostek Plancka, ale jest to dyskusyjne i nie na temat).
„Bezstratny” oznacza po prostu, że jeśli użyjesz tego samego lub lepszego formatu próbki na wyjściu, jak na wejściu, nie stracisz żadnych danych.
Więc jeśli przejdziesz z 16-bitowego na 32-bitowy format próbki, nie stracisz danych. Ale jeśli przejdziesz z 32 do 16 bitów, stracisz dane.
Odpowiedź na pytanie, czy użycie FLAC ma sens, zależy od danych źródłowych: jeśli masz 64-bitowe pliki WAV, które zostały pierwotnie nagrane w tym formacie próbkowania, z częstotliwością 192000 Hz (czyli 192 kHz), i przekonwertujesz je na „ standardowy „przykładowy format FLAC 16-bitowy i 44,1 KHz, stracisz tonę danych. Ale jeśli plik WAV jest 8-bitowy z jedynie 22100 próbkami na sekundę i konwertujesz go na 16-bitowy plik FLAC z 44100 próbkami na sekundę, nie stracisz danych. Możesz nawet zwiększyć rozmiar pliku, w zależności od tego, czy wygra kompresja bezstratna, czy mniejszy format próbki.
Przykładowy format będzie miał wpływ na ilość miejsca zajmowanego przez plik, więc „większe” bity i „szybsze” częstotliwości próbkowania zajmą więcej miejsca.
Jeśli chodzi o kwestie praktyczne i ludzkie ucho: tak naprawdę nie zauważysz, jeśli przekonwertujesz oryginały o wysokiej wierności do 16-bitowego formatu FLAC 44,1 KHz. Ale nie zauważysz poprawy, jeśli konwertujesz MP3 na FLAC. Musisz więc ocenić, w jakim formacie przykładowym są Twoje dane źródłowe, zanim zdecydujesz, co zrobić.
Teraz, gdy przekazałem ci wszystkie te informacje, oto moje bezpośrednie i bezpośrednie, bez wyjaśnień odpowiedzi na twoje pytania:
Mam kilka pytań dotyczących bezstratnego dźwięku. Zastanawiam się nad zebraniem całej mojej kolekcji muzyki do bezstratnego pliku .flac, ale najpierw chcę zrozumieć kilka rzeczy.
Jeśli twoja kolekcja muzyki znajduje się na płytach CD i chcesz zgrać ją do FLAC, to moim zdaniem bardzo dobrze pasuje. Jakość dźwięku CD będzie wynosić 44,1 KHz i 16 bitów na próbkę. Jest to dokładnie zgodne z domyślnymi ustawieniami FLAC (przynajmniej domyślnymi w koderach, których używam). Dlatego nie stracisz żadnych danych, a po zdekodowaniu będą one matematycznie identyczne z danymi wejściowymi.
Jeśli mam plik .flac i chcę przekształcić go w, powiedzmy, .wav, jak mogę to zrobić, aby nie stracić jakości? Jeśli go zdekompresuję, wiem, że nie stracę jakości. Czy konwersja .flac do .wav jest taka sama jak dekompresja?
Możesz przekonwertować go na plik .wav o takim samym lub szerszym formacie próbkowania niż dane wejściowe i nie spowoduje to utraty jakości.
Gdy odtwarzacz multimedialny odtwarza dźwięk w pliku flac, w zasadzie dekoduje dane flac do formatu PCM przed wysłaniem tych danych PCM na kartę dźwiękową. Rozpakuje go do dokładnie tych samych danych, które weszły; więc jeśli 16-bitowe dane PCM 44,1 KHz wejdą, to wyjdzie i przejdzie do twoich głośników.
Jedyną różnicą między tą aktywnością a konwersją dźwięku do pliku WAV jest to, że podczas konwersji go do pliku WAV musi on utworzyć pojemnik WAV z odpowiednimi bitami wypełniającymi itp., A także pozwala wybrać format próbkowania pliku WAV. Ale zakładając, że przykładowy format jest taki sam, jedyną różnicą między plikami FLAC i WAV będzie rozmiar pliku: pliki WAV będą znacznie większe.
Czy dotyczy to również formatu .ape? Mam kilka nagrań z domeny publicznej, które pobrałem w .ape, ale chcę to zrobić .flac. .Ape byłby możliwy do .flac bez użycia .wav jako pośrednika. Chcę mieć pewność, że w żaden sposób się nie zgubisz.
Nie, to nie jest możliwe, aby to zrobić bez użycia jakiegoś formatu PCM jako pośrednik. Ale tak, to jest możliwe, aby to zrobić bez użycia pliku WAV. Zwróć uwagę na różnicę. Strumień danych PCM. Plik WAV. Jeśli to rozróżnienie nie jest dla ciebie jasne, przeczytaj ponownie początek mojego postu. Jeśli chcesz mieć pewność, że „ani trochę” nie zostanie utracone, musisz sprawdzić pliki APE i zrozumieć, w jakim formacie próbnym się znajdują, i upewnić się, że koder FLAC jest ustawiony na kodowanie dla tych samych ustawień.
Wewnętrznie każdy program konwertujący dźwięk będzie dekodował z formatu źródłowego na jakiś bezstratny format próbny PCM, a następnie pobierał te próbki PCM i ponownie kodował je w formacie docelowym.
Ponadto, jeśli istnieją jakieś przewodniki, które bezbłędnie wyjaśniają świat bezstratnych, czy ktoś byłby skłonny udostępnić link? :)
Moim zdaniem najlepszym sposobem na naukę jest robienie. Jeśli poświęcisz trochę czasu na naukę frameworka Gstreamer, jak go używać i znaczeń różnych tunerów formatu próbkowania oraz jak zbudować potok, wyjdziesz z naprawdę silnym zrozumieniem cyfrowego dźwięku. Sprawdź to. http://gstreamer.freedesktop.org/ Możesz również pobrać zestaw Gstreamer SDK ze strony http://code.entropywave.com/gstreamer-sdk/ (system Windows jest obsługiwany) i eksperymentować z gst-launch-0.10 bez konieczności kompilowania czegokolwiek ze źródła.
Kilka odkrywczych rzeczy:
gst-inspect-0.10 vorbisenc gst-inspect-0.10 vorbisdec gst-inspect-0.10 audioconvert gst-inspect-0.10 audioresample
Następnie dowiedz się więcej o ograniczeniach, konstruowaniu rurociągów itp., A będziesz od razu postępować.
* Uwaga: Zdaję sobie sprawę, że nie wyjaśniłem, co to jest PCM. Wikipedia robi to lepiej niż ja: http://en.wikipedia.org/wiki/Pulse-code_modulation