Skip to content

Vertaisarvio 2 #2

@tuomoM

Description

@tuomoM

Vertaisarvionti

Varmaan johtuu omasta puutteellisesta osaamisesta, mutta en saanut ajettua koodia.
Jotain yleishuomiota kuitenkin. Koodia on huffmanin osalta kommentoitu mukavasti ja siitä saa selvää. Tiedostoon kirjoittaminen bitti bitiltä oli ainakin minulle aika haastavaa ja painin itse sen kanssa viikko tolkulla. Huomaan että sinullakin tuo on varmasti vaikein osuus. Huffmanin voisi kirjoitta jonkin verran selkeämmin, kunhan tiedostoon kirjoittamiset on kunnossa.
LZW vaikuttaa siltä, että se kärsii myös tiedostoon kirjoitusongelmista. Varmaan hyvä huomata, että lzw:n teho perustuu osittain siihen, että enkoodausta ei tarvitse tehdä 4 byten int kokoisena vaan esim wikipedia sivulla olevalla 12 bitin kiinteällä koolla tms.
Olet käyttänyt LZWssä myös HashMap rakennetta dictionaryn. Se on tilavaatimuksiltaan tässä aika heikko ratkaisu, koska jokainen substring pitää tallettaa erikseen. Itse käytin Ternary Search Treetä. Kannattaa vilkaista, on lopulta aika helppo implementoida ja siihen saa metodit: pisin prefix ja hae avain aika helposti tehtyä.
vastaavasti sitten purkaessa voi käyttää ihan suoraan string arrayta.

Veikkaan, että tuo kirjoituskoko vaikuttaa saamiisi tuloksiin. Minulla nimittäin LZW pakkasi tuon saman tiedoston noin kolmasosaan alkuperäisestä kun huffman taas noin puoleen. käytin siis tiedostoasi 100_KB_lorem.txt.

Tsemmpiä!

kloonasin repon 11.12 kello 23:20

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions