Skocz do zawartości

h45h

Członkowie
  • Postów

    4
  • Dołączył

  • Ostatnio

    Nigdy

h45h's Achievements

Newbie

Newbie (1/14)

0

Reputacja

  1. Jasne, że ma sens :D Na pewno ma jakąś wartość edukacyjną. Po dłuuugich godzinach siedzenia nad plikami i kodem udało mi się uzyskać ostateczny cel - rozpracowałem kompresję od podstaw w czystym C++ ;) Dzięki wszystkim, którzy udzielali się w tym temacie, szczególne dzięki za naprowadzenie na LZW (na początku to mi na to nie wyglądało, dopiero wypowiedź Reverenda skłoniła mnie do głębszych przemyśleń). Trochę roboty z tym było, bo rzeczywiście jedynie sama idea tego algorytmu jest zachowana. Teraz pozostaje tylko rozpracować formaty plików graficznych, dźwiękowych, animacji i leveli :D No to do dzieła! ;P --- edit --- zostały mi już same mapki leveli do rozpracowania :D
  2. Długo myślałem nad tym, czy to LZW, ale teraz jestem prawie pewny, że to jakaś jego modyfikacja. Głównie nie mogę dojsć do tego, dlaczego jest 26 zer (jak dla mnie to tam zakodowane jest 20 zgodnie z algorytmem LZW :mellow:). Podam ten fragment w czytelniejszej fomie. Tam gdzie napisałem dziesiętnie, to jest numer w słowniku (9,10,11,12,13,13 musi dać 26 zer, a 14,25,26,11 - 27 zer). W pierwszym wypadku po dekompresji wychodzi mi o 6 zer za mało, w drugim jeszcze nie patrzyłem. Czemu tak jest?
  3. Tylko, że disasmy zazwyczaj dawały mi totalny bajzel i połowa kodu to było "db ...", a sam exek zajmował ponad 650kb (na DOS to bardzo dużo), więc więcej czasu zajęłoby mi przejrzenie zdisasmowanego kodu, niż odkrycie samego algorytmu :)
  4. Ostatnio mnie wzięło, aby odnowić gierkę z czasów dosa - produkcja Virgin Interactive z 1994 roku :) Wiadomo, że w tamtych czasach każdy programista starał się o jak najmniejsze rozmiary swoich produkcji, tylko jak teraz odgadnąć co to za rodzaj kompresji? Udało mi się zdobyć dwa pliki - jeden skompresowany i drugi identyczny bez kompresji. Wrzucam tu ich kawałki - jeżeli ktoś domyśla się z czym to się je, to proszę o info :) Na jakiegoś Huffmana mi to nie wygląda (identyczne symbole są definiowane kilkukrotnie), arytmetyczne kodowanie raczej to też nie jest (chociaż nie jestem do końca pewien). Pewnie jest to jakaś słownikowa dynamiczna metoda, ponieważ dane lecą od razu, bez początkowego zestawu symboli ani headerów. Fragment po kompresji: Fragment oryginału: Tutaj trochę uporządkowałem kawałek skompresowanych danych: --- edit --- może to niezbyt cenne info, ale plik przed kompresją ma 49kb, po dzikiej kompresji 43.5kb, natomiast spakowany zipem 34.5kb :)
×
×
  • Utwórz nowe...