Anonymní profil peter – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil peter – Programujte.comAnonymní profil peter – Programujte.com

 

Příspěvky odeslané z IP adresy 2001:718:2601:258:e502:9b...–

peter
Python › Shannon-fanovo kodovani
14. 5. 2018   #220853

Pri vytvareni stromu, prideleni pravdepodobnosti delce binarnimu kodu provadis jakesi zaokrouhlovani. Urcite skupine opakovani priradis treba 9 a vice bitu. A pokud je pocet vsech takovych znaku vetsi nez 50% (odhadem, to cislo je da vypocitat pro kazdy strom, soubor) , tak muze nastat situace, ze vysledek bude vetsi.

AABBCCD - puvodni pocet bitu 7*2 = 14 bitu
0 - 10 - 110 - 111 - 3 znaky ze 7 (43%) maji vetsi bin. kod nez puvodni 2 bity
2 + 4 + 6 + 3 = 15 bitu

peter
Python › Shannon-fanovo kodovani
14. 5. 2018   #220852

Aha. Ty nechapes zaklady toho kodovani.

Mas text, treba
DAAABBAC

cetnosti | puvodni binarni kod
A = 4 | 00
B = 2 | 01
C = 1 | 10
D = 1 | 11

huffmanuv kod podle cetnosti
A = 4 | 0
B = 2 | 10
C = 1 | 110
D = 1 | 111

Cili DAAABBAC
pred 11 00 00 00 01 01 00 10 = 16 bitu
po 111 0 0 0 10 10 0 110 = 14 bitu

Stejny huff kod pro jiny soubor, string DCBA
pred 11 10 01 00 = 8 bitu
po 111 110 10 0 = 9 bitu

Cili ano, huff. kodovani muze vytvorit vetsi vystup. Min-max se da spocitat ze stromu.
S-F je jen metoda lepsiho rozdeleni kodu huff. stromu. Ale porad muze nastat situace, kdy je vystup vetsi.

Musis mit spravny soubor. Jako je treba komprimovany obrazek, zip, rar, a pod. Zkus si ten obrazek prevest na nekomprimovany bmp. Huff by mohlo dat odhadem 60%. Lze upravit na 45%, rozdil sousednich barev a prevod na barevny model.
Zip, rar ten jpeg dokaze komprimovat na 85-95%. Takze samotne huffmanovo kodovani by nemelo byt lepsi.
Jpeg kodovani take pouziva huffmana na vystupu. Ale pouziva obvykle preddefinovanou tabulku.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý