Prosty w implementacji algorytm kompresji

0

Witam.

Szukam bardzo prostego w implementacji a najlepiej gotowego w c++ kodu algorytmu do bezstratnej kompresji wektora bajtów. Zależy mi bardzo na prostocie a mniej na stopniu kompresji, ponieważ niestety c++ nie jest moim ulubionym językiem a bardziej zależy mi na wydajności czasowej niż objętościowej.
Z góry dzięki za podpowiedzi.

0

Masz gotowy, jak chciałeś, nawet z kodem źródłowym :D

http://www.gzip.org/#sources

0
Spine napisał(a)

Masz gotowy, jak chciałeś, nawet z kodem źródłowym :D

http://www.gzip.org/#sources

Dzięki wielki, wiem że gzip jest bardzo dobry ale niestety jak na moje potrzeby zbyt czasochłonny. Ja potrzebuje czegoś bardzo ale to bardzo prostego stopień kompresji na poziomie 0.7-0.8 w pełni mnie satysfakcjonuje. Niestety mam bardzo restrykcyjne ograniczenia czasu wykonywania więc skomplikowane algorytmy odpadają.

Udało mi się znaleźć http://www.oberhumer.com/opensource/lzo/ jednak z moją bardzo podstawową wiedzą na temat c++ nie za bardzo wiem jak go przeroobić tak żeby przyjmował vector<int>

0

Zobacz kodowanie Huffmana lub RLE

0
andrzejlisek napisał(a)

Zobacz kodowanie Huffmana lub RLE

Dzięki wielkie RLE będzie nadawać się doskonale.

0
Syslak napisał(a)
andrzejlisek napisał(a)

Zobacz kodowanie Huffmana lub RLE

Dzięki wielkie RLE będzie nadawać się doskonale.

Niestety okazało się że dane są całkowicie odporne na ten sposób kompresji, większość danych waha się w zakresie od 100-140 ale prawie się nie powtarzają bezpośrednio po sobie więc wynik kompresji był prawie 2 razy większy niż dane bazowe. Algorytm huffmana wygląda na skomplikowany ale zobaczymy moze uda się napisać.

0

A zarzuć przykładowymi plikami.

0
Wibowit napisał(a)

A zarzuć przykładowymi plikami.

Oto o i przykładowy plik, wszystkie są w podobnym rozmiarze http://www.2shared.com/file/mhmgeb5q/sample.html

0

kodowanie huffmana powinno się sprawdzić.

0

Kiedyś popełniłem algorytm Huffmana z tym, że w asemblerze: http://asembler.republika.pl/bin/huffman.zip
Dozwolone rozmiary kawałka to pomiędzy 1000, a 317810. Przy rozmiarze kawałka 310000 rozmiar pliku wyjściowego wynosi 404083 bajty - lepiej niż chyba większość popularnych algorytmów kompresji.

0

Spróbuj użyć biblioteki aPLib. Jest bardzo prosta w obsłudze.

0

Dzięki wielkie wszystkim za odpowiedzi, zwycięzcą okazał się algorytm huffmana z tego typu danymi mogę stworzyć stałe drzewo. Problem mam ze zrozumieniem dekompresji ale na pewno jest to do przeskoczenia. Jeszcze raz dzięki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1