Kompresja danych

0

witam po dlugiej nieobecnosci :)

ostatnio zaczelem myslec o metodach kompresji danych, szukam <ort>zaczelem </ort>szukac po sieci jakichs artykulow na ten temat ale bez wiekszych rezultatow :( moze jeszcze cos mi wpadnie w lapska.

Pomyslalem ze moze ktos na form ma jakies <ort>materiapy </ort>o podstawie kompresji, jaki jest podstawowy <ort>schememat </ort>dzialania takiej metody??

pozdrawiam

0

jak chcesz to wysle ci na e-mail caly skrypt jakiegos doktora na temat kompresji (ok 150 stron...)

0

tu jest fajny tekst o kompresji plikow tekstowych

http://www.algorytm.cad.pl/Algorithms/41-50/algorithm44.html

0

podstawa - algorytm Huffmana.

0

Ja juz dawno...dawno temu :) wymislilem bardzo prosty sposob na kompesje danych mianowicie:

Np. zawartosc pliku, ktory chcemy skompresowac wyglada tak:

--------poczatek------------

Jakis tam plik heeeee ale kompresja.....
aaasssdsdsssss4444445555ggggfffddssww

------- koniec ------------

...i teraz taki pliczek mozna skompresowac w nstp. sposob - jezeli jakis znak sie powtarza to zajmuje duzo miejsca wiec trzeba to zmienic np. zapisem:

aaaaaaa ---- > 7a

....to bardzo prosta i nowatorska metoda.
Do bardziej skomplikowanych projektow polecam jakies algorytmy :)

0

[...] to zmienic np. zapisem:

aaaaaaa ---- > 7a

No fajnie tylko jak to zdekompresujesz? Skad bedziesz wiedzial czy ta 7 to normalny znak 7 czy informacja, ze ma byc siedem a? Co do pytania to przeszukaj Wikipedie tam masz opisy i implementacje kilku algorytmow.

0

..do byl tylko przyklad !

mozna np. przed znakiem ktory ma sie powtarzac n razy wstawic "ALT+02" a potem ten znak.....rozwiazan jest wiele.

0

Hehe tylko co Ty tym skompresujesz? Stopień kompresji będzie bliski lub równy 0%. Zgadza się?

0

....to bardzo prosta i nowatorska metoda.

Metoda jest może i prosta, ale czy nowatorska? Chyba każdy kiedyś korzystał z czegoś takiego...

Skad bedziesz wiedzial czy ta 7 to normalny znak 7 czy informacja, ze ma byc siedem a?

Aby ort! z tej metody musiałbyś zamieniać np. pojedyńczy znak a na 1a i ilość grupowanych znaków na raz mogłaby być dla uproszczenia maksumalnie długa na 9 znaków. Kompresja tej metody w praktyce jest mała lub nawet powiększa plik, a w skrajnych wypadkach (gdzie nie ma powtórzeń) można otrzymać plik wyjściowy dwa razy większy niż wejściowy, co mija się z celem...

0

Ja juz dawno...dawno temu :) wymislilem bardzo prosty sposob na kompesje danych (...)

Przeczytaj o RLE. Musze cie zmartwic. Kolumbem nie jestes.

0

Xenis no nie o takie rewolucyjne metody mi chodzi, wole cos bardziej przyzeimnego :)

a tak na marginesie to jaki wspolczynnik kompresji ma ta metoda na normalnym texcie?? bo zadko kiedy pisze sie powielajac literki :)

dzieki za link o metodzie Huffmana przydatne zrodlo wiedzy :)

0

...i teraz taki pliczek mozna skompresowac w nstp. sposob - jezeli jakis znak sie powtarza to zajmuje duzo miejsca wiec trzeba to zmienic np. zapisem:

aaaaaaa ---- > 7a

....to bardzo prosta i nowatorska metoda.
Do bardziej skomplikowanych projektow polecam jakies algorytmy :)

Też coś takiego wymyśliłem :) Prawie identycznie :)

0

Akurat ta "nowatorska metoda", czyli RLE jest niezla przy kompresji grafiki o malej palecie kolorow (np. komiksy). Do tekstu oczywiscie sie nie nadaje.

A to, ze dla niektorych plikow kompresja nie dziala, albo powieksza plik, to nie jest wada. Nie da sie skonstruowac algorytmu kompresji, ktory by tak nie robil.

0

Nie da sie skonstruowac algorytmu kompresji, ktory by tak nie robil.

Ale mozna minimalizowac te ew. nadmiarowosc wykorzystujac przelaczane modele :)

Ja jeszcze dodam to tej informacji o RLE, ze windowsowy paint chyba ma mozliwosc zapisywania plikow bmp-RLE. Tak jak juz Krolik wspomnial, takie komiksy w bmp kompresuje calkiem niezle. Chociaz i tak w porownaniu do gif i png to raczej rewelacja to nie jest.

0

Jedne z najlepszych sposobów to algorytmy arytmetyczne. Pogoogluj trochę o nich.

0

Jedne z najlepszych sposobów to algorytmy arytmetyczne.

Jezeli ograniczamy sie do algorytmow kodowania. Znacznie wazniejsze IMHO dla kompresji jest modelowanie zrodla. Tutaj stawialbym na transformaty w polaczeniu z algorytmami predykcyjnymi (chociaz pewnie i lepsze sa).

0

Aby plik bez powtórzeń nie był podwojony z RLE, dobrze jest dać 00h przed każdą liczbą powtórzeń - jest to rzadko używany znak (w txt szczególnie), aby go użyć w takiej sytuacji, należy napisać 0000h. Można oczywiście zastąpić innym znakiem, lecz lepiej rzadko używany (jak większość znaków kontrolnych).

0

Aby plik bez powtórzeń nie był podwojony z RLE, dobrze jest dać 00h przed każdą liczbą powtórzeń - jest to rzadko używany znak (w txt szczególnie)

Ale jak pewnie wczesniej bylo wspomniane w kompresji tekstu wiele nie osiagniesz tym sposobem. Lepiej grafike. A jak wiadomo w grafice 00h moze dosyc czesto wystepowac :)

0

Jak jest mala paleta kolorow to kiedys napisalem cos takiego i grafike nawet ladnie kompresowalo bywalo ze na poziomie png ale bywalo takze ze wynik byl gorszy niz nieskompresowane bmp :> Jak by ktos chcial to http://pedros.iglu.cz/download/kompresor.rar Kod w delphi wiec jak widac pisalem dawno i na pewno mozna lepiej to zrobic ;-)

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