lossyWAV, lossyFLAC
Niedawno dowiedziałem się o interesującym programie, służącym do wstępnej obróbki dźwięku przed kompresją bezstratną – lossyWAV. Obróbka ta jest oczywiście stratna.
Brzmi to może nieciekawie (“stratna kompresja bezstratna”), ale zasada jego działania i idea powstania jest co najmniej… ciekawa.
Po pierwsze, program ten zaokrągla najmniej znaczący bit tak, by zmniejszyć dynamikę dźwięku i wprowadzić szum ALE szum ten znajduje się poniżej poziomu słyszalności lub poniżej istniejącego poziomu szumu – wprowadzony szum jest więc niesłyszalny i nie pogarsza jakości dźwięku.
Po drugie, plik lossyWAV kompresowany jest przy pomocy jednego z istniejących kodeków bezstratnych: FLAC, TAK, WavPack czy Lossless WMA. lossyWAVE nie jest kompatybilne z formatem ALAC.
… a teraz najważniejsze pytanie – po co w ogóle to wszystko?
Przede wszystkim spreparowane tak pliki lepiej bądź znacznie lepiej się kompresują. Przykładowo plik FLAC ~800kbps (L5), kompresuje się do lossyFLAC ~400-500kbps (Q5). Kompresja jest więc “nawet dwukrotna”.
A jaki jest tego sens?
Sens jest taki, że przy przepływności niewiele większej niż MP3 320kbps, otrzymujemy właściwie bezstratny plik FLAC. Powstały w wyniku wstępnej obróbki szum jest i tak poniżej poziomu słyszalności, a jakość takiego pliku lossyFLAC jest znacznie wyższa niż pliku MP3 320kbps (który i tak zawiera “szum powstały w wyniku kompresji”, jednak szum ten nie zawsze znajduje się poniżej poziomu słyszalności).
A najlepszą (i najgorszą) informacją jest to, że pliki lossyFLAC (oraz lossyTAK, lossyWV czy lossy “Lossles WMA”) są w pełni kompatybilne z istniejącymi dekoderami/odtwarzaczami (co w sumie jest oczywiste, ponieważ sam enkoder się nie zmienia, ale piszę to w razie gdyby ktoś miał wątpliwości).
Więc z jednej strony pozwala to na dalsze wykorzystanie pojemności odtwarzacza, z drugiej strony wprowadza niebezpieczeństwo że “pliki bezstratne są są nie-do-końca-bezstratne”. Zwłaszcza dla osób, które nie zawsze mają pliki FLAC z własnych kolekcji płyt CD-Audio…
Na razie nie istnieje program pozwalający “wykryć” takie pliki wśród istniejących już plików FLAC. Co oznacza że niedługo może zacząć się szał na “pliki FLAC mające wysoki bitrate” (ponieważ bitrate jest na chwilę obecną jedynym sposobem na rozróżnienie tych plików)… a może wręcz odwrotnie?
A jak to wygląda w praktyce?
Pliki WAVE, powstałe np. po zripowaniu z CD-Audio, można “przepuścić” przez lossyWAV a następnie samodzielnie skompresować do formatu FLAC. Można również skorzystać z gotowego enkodera lossyFLAC (który właśnie powstaje). Zaś poziomów “redukcji bitów” jest 10 (od Q10 – najwyższa jakość, do Q1 – najniższa jakość).
Samo zaokrąglanie bitów zaś nie jest oczywiście procesem automatycznym ani przypadkowym. Każdy blok składający się z 512 próbek dźwięku przetwarzany jest niezależnie. Algorytm ocenia, czy oraz jaki sposób (biorąc pod uwagę zadaną przez użytkownika jakość), da się zaokrąglić LSB w danym bloku.
Interesujące?
Cóż… na powszechne użycie należy pewnie trochę zaczekać (albo już to przegapiliśmy ;) ) – projekt znajduje się obecnie w fazie 1.0.0b. Link do pliku:
6 Responses to lossyWAV, lossyFLAC
Leave a Reply Cancel reply
Tags
ABX Apple cowon creative cx300 defragmentacja e10 eBay Era flac foobar2000 free gapless instapaper internet iPhone iPod iriver itunes kindle LAME Legalnie MP3 mplayer Muzyka nokia PayPal planescape podróbki porównanie readability recenzja review sennheiser srs-200 Słuchawki test torment Touch vedia vp-srs200 wave wordpress za darmo Za freeArchiwum
- January 2012 (4)
- December 2011 (1)
- November 2011 (4)
- October 2011 (1)
- September 2011 (1)
- August 2011 (6)
- June 2011 (1)
- May 2011 (2)
- March 2011 (2)
- January 2011 (2)
- December 2010 (1)
- October 2010 (1)
- August 2010 (1)
- October 2009 (1)
- September 2009 (2)
- August 2009 (2)
- June 2009 (1)
- May 2009 (3)
- April 2009 (4)
- March 2009 (4)
- February 2009 (1)
- January 2009 (1)
- December 2008 (3)
- November 2008 (2)
- September 2008 (5)
- August 2008 (3)
- June 2008 (6)
- May 2008 (7)
- April 2008 (3)
- March 2008 (4)
- February 2008 (11)
- January 2008 (1)
- December 2007 (3)
- November 2007 (3)
- October 2007 (8)
- September 2007 (7)
- August 2007 (21)
- July 2007 (8)





W najmniejszym stopniu mnie to nie pociąga. Chcąc kompresji stratnej, mogę przecież przekonwertować FLACa na OGG/MP3, a nie bawić się w “prawie” bezstratny format. OK, niech to nawet będzie “matematycznie niesłyszalne”, a ja nadal będę się upierał, że lossless ma być lossless, a lossy lossy.
“otrzymujemy właściwie bezstratny plik FLAC.”
problemem jest słówko “właściwie”. Za furę pieniędzy możesz kupić Ferrari, za połowę mniej porysowane Ferrari -> to drugie to też “właściwie” Ferrari, ale jednak coś z nim nie tak. Pomijam fakt, że to, że zmiana jest niesłyszalna nie oznacza, że nie modyfikuje innych parametrów odbioru takich jak panorama.
Powiem tak: w dzisiejszych czasach nie robi mi różnicy czy zapisze coś z bitrate 400-500 czy 800 kbps. Pewnie za rok-dwa zapisywałbym wszystko do nieskompresowanych WAV’ów gdyby nie brak metadanych. Inna sprawą jest to, że ten plik nadal pozostanie FLAC’iem, czyli praktycznie nie odtworzy go żaden przenośny odtwarzacz – i tak wszystko co chcę umieścić na PSP konwertuje na AAC. Przynajmniej do czasu aż znajdzie się odtwarzacz, które będzie sobie radził z FLAC’ami z embedded cuesheets.
> nie modyfikuje innych parametrów odbioru takich jak panorama
w obecnej wersji i dla odsłuchu stereo nie jest to słyszalne, jednak twórca wziął już pod uwagę analizę kanału S (otaczającego) w związku z tym, że ktoś może chcieć przygotować pliki lossyFLAC z materiału zakodowanego jako Dolby Surround/Dolby Pro Logic/Dolby Pro Logic II/SRS CircleSurround
> do nieskompresowanych WAV?ów gdyby nie brak metadanych
foobar2000 pozwala na zapis tagów APEv2 do plików WAVE… już od dawna tak robię :) co prawda niektóre programy interpretują te tagi jako dźwięk… ale po prostu trzeba na to uważać
> będzie sobie radził z FLAC?ami z embedded cuesheets
a nie wystarczy FLAC + gapless? na jedno wychodzi :)
Ad 1) Chodziło mi o panoramę z dźwięku stereo bez jakichkolwiek informacji dla procesorów Dolby.
Ad 2) No właśnie nie chce się bawić w jakieś niestandardowe zabiegi, bo później wychodzą z tego buraczki.
Ad 3) No nie na jedno – w moim przypadku eliminuje to 1 poziom katalogów: Mam /Muzyka/Artysta/Nazwa_albumu.flac. Po prostu łatwiej mi się je kataloguje.
panorama stereo jest oczywiście zachowana, nie zmienia się… to nie jest żadne “intensity coding” :)
a informacja o kanale S wynika stąd, że dźwięk przestrzenny może zostać zapisany jako niezależne kanały (np. 5.1 na płycie DVD czy DVD-Audio) bądź jako “matrix surround” (czyli stereo, przykładowo płyty CD-Audio z dopiskiem Surround/DPL)
w tym ostatnim przypadku dwa kanały stereo niosą informacje niezbędne do “odtworzenia” wszystkich kanałów (np. pięciu) przez dekoder – są więc niejako “przepakowane informacjami”… stąd mogą wynikać pewne przekłamania w dekodowaniu niezależnych kanałów (poczytaj choćby o DPL/DPL II – whitepapers znajdują się na stronie dolby)
żeby nie było, nawet format MP3 nie nadaje się się do kompresji materiału DPL/DPL II/SRS CircleSurround
kodery typu mp3, ogg czy musepack – mają charakterystyczne dla siebie artefakty związane z kompresją psychoakustyczną (wyciąć-i-oszukać).
do niedawna byłem zwolennikiem musepack’a (na presetach insane czyli rzędu 250-300kbps) ze względu na głębię akustyki, ale ostatnio dokucza mi “cierpkość” jego dźwięku i nie wiem czy już nie wolałbym pre-echo z vorbis ogg, choć tam chyba jest mniej głębi i w tym rzecz.
lossywav zdaje się raczej przypominać formę “miękkiego masteringu” i tu jest pole do potestowania. jeśli twardość dźwięku będzie zbliżona do materiału pierwotnego, to pozostałe mogą przejść do lamusa. biorąc zaś pod uwagę kompresory bezstratne, monkeys’ audio (ape) może zdać egzamin najlepiej.
a po co to wszystko? a po to, że ludzie używają też odtwarzaczy przenośnych, np. takich obsługiwanych przez rockbox’a albo wspierających formaty bezstratne we własnym zakresie. a w dzisiejszych czasach – co to jest 40GB (albo aż 8)? tyle co nic. i właśnie po to stosuje się kompresje.