kompresja sygnałów cyfrowych w czasie rzeczywistym
jaki algorytm polecacie ?
czy w ogole robil ktos cos takiego ???
kompresja sygnałów cyfrowych w czasie rzeczywistym
jaki algorytm polecacie ?
czy w ogole robil ktos cos takiego ???
rqr napisał(a)
(...)
jaki algorytm polecacie ?(...)
Najlepszy... napisz może o jaki sygnał chodzi itd.
jest to sygnal cyfrowy z oscyloskopu
bez kompresji plik wynikowy jest bardzo duzy
chodzi mi o kompresje bezstratną i najlepiej wykonywaną w czasie rzeczywistym
skoro bezstratna to dct itp odpadaja wiec ja bym uzyl po prostu huffmana, a jezeli zakres danych na to pozwala to nawet rle wystarczy :P
huffman w czasie rzeczywistym ?? , ojc ja sobie tego nie wyobrazam.
problem w tym ze dane nie moga byc zapisywane na dysku tylko kompresowane w czasie rzeczywistym i dopiero zapisywane, takze dane sa na biezaco dopisywane do pliku
hmm poniewaz huffman potrzebuje slownika, to moglbys to zrobic tak ze probki pakujesz w bloki o stalym rozmiarze i kazdy blok ma swoj slownik, jak nie chcesz huffmana to uzyj czegos innego ale to by sie dalo zrobic w czasie rzeczywistym, zreszta wszystko zalezy ile danych wrzucasz do kompa...
Może kompresja LZW - bezstratna, szybka, tylko, że chroniona patentem.
Robisz dwa bufory. Jeden wątek zajmuje się kompresją pierwszego buforu wypełnionego danymi. Drugi wątek ładuje dane do drugiego buforu i jednocześnie tworzy słownik. Po zapełnieniu bufora danymi robisz swap na bufory. Jeśli pierwszy wątek nie zdąży z kompresją to możesz stworzyć trzeci bufor awaryjny (ew. więcej buforów awaryjnych, pamięć przydzielasz im dynamicznie).
Jesli ma byc bezstratne, to dosc dobre moze byc polaczenie kodowania roznicowego + huffmana z dynamicznym slownikiem. Slownik jest generowany w locie podczas kompresji i dekompresji. Nie zapisuje sie go w strumieniu skompresowanym.
dziki za rady, dawno tu nie zagladalem ale zrobilem dokladnie tak jak napisal karolik :)
z tym ze jeszcze emcze sie z tym czasem rzeczywistym, ale roznice +huffman daly zadowalajace wyniki :)