Dział ten zawiera zarówno formaty w których, stosuje się kompresję bezstratną, jak i formaty bez kompresji.


WAVE|FLAC|WavPack|Monkey Audio|AIFF


Kompresja bezstratna (ang. lossless compression) to ogólna nazwa takich metod upakowywania informacji do postaci zawierającej zmniejszoną liczbę bitów tak, aby całą informację dało się z tej postaci odtworzyć do identycznej postaci pierwotnej.

Najważniejszym twierdzeniem o kompresji bezstratnej jest:

Twierdzenie o zliczaniu (counting theorem)

Niemożliwe jest skonstruowanie funkcji przekształcającej odwracalnie informację na informację (czyli funkcji kompresji bezstratnej), która nie wydłuża jakieś informacji o przynajmniej 1 bit, chyba że nie kompresuje ona żadnej informacji.

Dowód:

Załóżmy, że dana funkcja kompresuje choć jedną dowolną wiadomość do długości N bitów z dowolnej większej długości. Jest X wiadomości o długości nie większej od N bitów. Jeśli żadna z wiadomości zawierających nie więcej niż N bitów nie została wydłużona, to w wyniku otrzymujemy przynajmniej X+1 wiadomości o długości nie większej niż N bitów. Ponieważ X jest skończone to X+1>X, a więc jest to sprzeczne z założeniem, że takich wiadomości jest X. Co należało udowodnić.

Skonstruowanie funkcji, która wydłuża o nie więcej niż 1 bit jest trywialne. Dla dowolnej funkcji f(x), niech f'(x) będzie:

  • dla f(x) zawierającego mniej bitów niż x: f'(x)=<0,f(x)>
  • dla f(x) zawierającego więcej bitów niż x: f'(x)=<1,x>
  • dla f(x) zawierającego tyle samo bitów co x: f'(x)=<0,f(x)> lub f'(x)=<1,x> (nie ma to znaczenia)

Algorytmy kompresji bezstratnej

Algorytmy kompresji bezstratnej dobrze kompresują "typowe" dane, czyli takie w których występuje znaczna nadmiarowość informacji (redundancja).

Pewne rodzaje danych są bardzo trudne lub niemożliwe do skompresowania:

  • strumienie liczb losowych (niemożliwe do skompresowania),
  • strumienie liczb pseudolosowych (w praktyce trudne, choć teoretycznie bardzo dobrze kompresowalne),
  • dane skompresowane za pomocą tego samego lub innego algorytmu (w praktyce trudne).

Najczęściej używane metody kompresji bezstratnej można podzielić na słownikowe i statystyczne, choć wiele metod lokuje się pośrodku:

  • metody słownikowe poszukują dokładnych wystąpień danego ciągu znaków, np. zastępują 'the ' krótszą ilością bitów niż jest potrzebna na zakodowanie 4 niezwiązanych znaków. Jednak znajomość symbolu 'the ' nie pociąga za sobą usprawnień w kompresowaniu 'they' czy 'then'.
  • metody statystyczne używają mniejszej ilości bitów dla częściej występujących symboli, w przypadku praktycznie wszystkich oprócz najprostszych metod, prawdopodobieństwa zależą od kontekstu. A więc np. dla 'h' występującego po 't' używają mniejszej ilości bitów niż dla innych znaków w tym kontekście.

WAVE ( ang. waveform audio format ) - format plików dźwiękowych stworzony przez Microsoft oraz IBM. WAVE bazuje na formacie RIFF, poszerzając go o informacje o strumieniu audio, takie jak użyty kodek, częstotliwość próbkowania czy ilość kanałów. WAVE podobnie jak RIFF został przewidziany dla komputerów IBM PC, toteż wszystkie zmienne zapisywane są w formacie little endian. Odpowiednikiem WAVE dla komputerów PowerPC jest AIFF.

Mimo że pliki WAVE mogą być zapisane przy użyciu dowolnych kodeków audio, zazwyczaj stosuje się nieskompresowany format PCM, który powoduje, że pliki zajmują dużo miejsca (około 172 kB na sekundę dla jakości CD). Inną wadą formatu jest ograniczenie wielkości pliku do 4 GB, ze względu na 32-bitowe zmienne. Format WAVE został częściowo wyparty przez formaty kompresji stratnej. Mimo to, dzięki swojej prostocie, nadal znajduje szerokie zastosowania. Wykorzystywany jest w edycji dźwięku oraz w przenośnych urządzeniach audio takich jak odtwarzacze i cyfrowe dyktafony.

powrót^


FLAC (ang. Free Lossless Audio Codec) to format bezstratnej kompresji dźwięku z rodziny kodeków Ogg. Format ten jest rozwijany przez Xiph.Org Foundation i kojarzony z Wolnym Oprogramowaniem. W przeciwieństwie do stratnych kodeków dźwięku takich jak Vorbis, MP3 i AAC, kodek FLAC nie usuwa żadnych danych ze strumienia audio, dzięki czemu po dekompresji otrzymujemy dźwięk identyczny z pierwowzorem. Format FLAC jest obecnie obsługiwany przez większość oprogramowania służącego do edycji/odtwarzania audio (czasami wymagana jest odpowiednia wtyczka).

29 stycznia 2003 Xiphophorus (obecnie Xiph.Org Foundation) przyjęła FLAC pod swój patronat. Są tam już m.in. Ogg Vorbis, Ogg Theora i Speex.

Projekt FLAC

Projekt FLAC składa się z:

  • formatu strumieniowego
  • powiązanego enkodera i dekodera w formie bibliotek
  • flac - programu służącego do kompresji/dekompresji
  • metaflac - programu służącego do edycji metadanych plików FLAC
  • wtyczek dla odtwarzaczy audio

Według licencji specyfikacja formatu może być wykorzystana przez każdego bez wcześniejszego pozwolenia (Xiph.org zachowało prawa do ustanawiania specyfikacji formatu), z zastrzeżeniem, że żaden element formatu nie zostanie opatentowany. Oznacza to także, że wszystkie implementacje w jakikolwiek sposób powiązane z projektem FLAC będą stanowić wolne oprogramowanie - kody źródłowe dla libFLAC i libFLAC++ dostępne są na zasadach licencji BSD, natomiast kody dla flac, metaflac i wtyczek na zasadach licencji GPL.

Kompresja FLAC

  • Brak utraty jakości
  • Szybka kompresja
  • Dekodowanie w czasie rzeczywistym (małe wymagania sprzętowe)
  • Sprzętowe wsparcie odtwarzania
  • Strumieniowość
  • Metadane
  • Odporność na błędy

FLAC działa podobnie do formatu MP3, z tą różnicą, że należy do grupy kodeków bezstratnych. Wszystkie dane podlegające procesowi kompresji można odzyskać dokonując dekompresji - analogicznie jak w formacie ZIP. Jednak format FLAC został stworzony specjalnie do zmniejszania objętości plików dźwiękowych, dlatego przy kompresji tych plików możemy otrzymać dużo lepsze wyniki niż przy użyciu formatu ZIP (ZIP 10%-20%, FLAC 40%-60%). Kodeki stratnej kompresji mogą uzyskać stosunek kompresji nawet 80%, jednak jest to związane z usunięciem pewnych danych.

powrót^


WavPack to całkowicie otwarty format kompresji dźwięku dostarczający tryby kompresji: bezstratny, stratny wysokiej jakości oraz unikalny hybrydowy. Kompresja WavPack (pliki .WV) potrafi skompresować (i zdekompresować) pliki .WAV o próbkach 8,16,24 i 32 bitowych. Ponadto obsługuje strumienie dźwięku przestrzennego i wysokie częstotliwości próbkowania.

W domyślnym trybie bezstratnym WavPack zachowuje się tak jak kompresor WinZip dla plików dźwiękowych. Jednak w przeciwieństwie do kodowań MP3 czy WMA, które wpływają na jakość dźwięku, żaden bit oryginalnej informacji nie jest tracony, więc nie ma żadnych szans na degradację. Czyni to tryb bezstratny idealnym do archiwizowania materiałów dźwiękowych oraz w innych sytuacjach, gdzie jakość jest najważniejsza. Współczynnik kompresji zależy od materiału źródłowego, ale zwykle jest pomiędzy 30% a 70%.

Tryb hybrydowy udostępnia wszystkie zalety kompresji bezstratnej z dodatkowym ulepszeniem. Zamiast tworzenia pojedynczego pliku tryb ten tworzy zarówno stosunkowo mały, wysokiej jakości plik stratny, który może być używany jako taki oraz plik "poprawek", który (w połączeniu z plikiem stratnym) odtwarza pełną jakość bez strat. Dla niektórych użytkowników oznacza to, że nie muszą wybierać pomiędzy kompresją bezstratną a stratną.

powrót^


Monkey’s Audio jest bezstratnym kodekiem kompresji audi. W przeciwieństwie do stratnych formatów, takich jak AAC, MP3, lub Ogg Vorbis, bezstratne kodeki potrafią dokładnie zrekonstruować oryginalną fale dźwiękową. Plik skompresowany przy użyciu Monkey's Audio brzmi tak samo jak plik oryginalny, nie zależnie od tego ile razy byłby kompresowany i zdekompresowany. Pliki Monkey's Audio używają rozszerzenia .ape.

Porównania

Porównując Monkey's Audio z innymi formatami, należy podkreślić, że Monkey's Audio jest formatem bezstratnym. Porównanie go z innymi bezstratnymi formatami prowadzi do wniosku, że jest on nieznacznie lepszy niż FLAC i znacznie lepszy niż starszy Shorten. Natomiast porównanie szybkości kodowania i dekodowania prowadzi do wniosku, że Monkey's Audio jest wolniejszy od obu formatów, w związku tym sprawia problem jego zastosowanie w cyfrowych przenośnych odtwarzaczach dźwięku. Problemem jest tutaj również relatywne wolne przeszukiwanie utworu, a jeśli plik zostanie uszkodzony, to dane audio za punktem uszkodzenia zostaną utracone.

Monkey's Audio jest bezstratną metodą kompresji, więc ciężko go porównywać ze stratnymi metodami kompresji, gdyż rożne typy kodeków mają różne zastosowania. Celem Monkey's Audio jest dokładna reprodukcja oryginalnego pliku wykorzystując tak mało pamięci jak to tylko możliwe. Typowy plik Monkey's Audio używa około 600 do 700 kbps dla jakości CD audio.

powrót^


AIFF (Audio Interchange File Format) to format plików dźwiękowych oparty na IFF (Electronic Arts Interchange File Format) współstworzony przez firmę Apple. Dane audio zapisane są jako nieskompresowany PCM w Big endian. Format jest wykorzystywany głównie przez Apple na komputerach Macintosh oraz przez firmę SGI.

powrót^