Kezdőoldal » Számítástechnika » Programozás » Huffman-kódolás milyen módon...

Huffman-kódolás milyen módon tudna jobban tömöríteni? (bővebben lent)

Figyelt kérdés

Huffman-kódolással tömörítettem egy fájlt, a méretek:

Eredeti fájlméret: 860.021.760

Tömörített méret: 107.502.949

A fájl csak és kizárólag a 65. ASCII kódot tartalmazta, más karakter nem szerepelt benne...

Milyen módon lehet megoldani az algoritmussal, hogy ebben az esetben pár bájtos tömörített fájlt hozzon létre?

Pascal-ban van ennél jobb megoldás illetve mit érdemes módosítani?



2019. jan. 8. 17:43
 1/6 anonim ***** válasza:

"A fájl csak és kizárólag a 65. ASCII kódot tartalmazta, más karakter nem szerepelt benne..."

A futáshossz-kódolás (run-length encoding, RLE) lesz a barátod:

[link]

2019. jan. 8. 18:05
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:

Ja tényleg ide az lenne praktikus.

Huffman nem módosítható úgy, hogy hasonlóan figyelembe vegye a csak és kizárólag egy karaktert tartalmazó fájlokat, amikor ismétlődnek a karakterek?

2019. jan. 8. 18:21
 3/6 anonim ***** válasza:

"Huffman nem módosítható úgy, hogy hasonlóan figyelembe vegye a csak és kizárólag egy karaktert tartalmazó fájlokat, amikor ismétlődnek a karakterek?"


De igen. Az lesz az RLE.

2019. jan. 8. 18:55
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:
Én úgy olvastam, hogy RLE teljesen más, nem olyan elven működik mint a Huffman.
2019. jan. 8. 19:12
 5/6 anonim ***** válasza:

A Huffman tömörítés lényege, hogy a leggyakrabban előforduló értékhez a legrövidebb kódot társítja. Jelen esetben az egyetlen (tehát leggyakoribb) értékhez a legrövidebb (jelen esetben 1 bites) kódot rendelte, azaz így 1/8-a a tömörített file az eredetinek (ahogy ez látszik is).

Az RLE figyelembe veszi az ismérlődő értékeket, a Huffman nem. Természetesen a két algoritmust lehet kombinálni, azaz az RLE tömörítésre még ráindíthatsz egy Huffmant (vagy akár fordítva)

2019. jan. 8. 20:35
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:
100%

Az RLE darabszám per forma alapján tárol, tehát a te file-od tartalmát leírhatja úgy, hogy x db 'A' betű.


Ha az alábbi karaktersort RLE-vel tömörítenénk ezt kapnánk:


aaaaaaaaaaaaaaabbbbbcccccccccccccccccccccc


a15,b5,c22


A huffman gyakoriságot elemez és a leggyakoribb karakterhez rendeli a legrövidebb kódot, a legritkábbhoz meg a leghosszabbat. Így ér el az eredetinél jobb hatásfokot, hiszen a - mondjuk - 8 bites fix hosszúságú karakterkódokat lecseréli rugalmas, de a 8 bitnél mindenképpen rövidebb kódokra.


Ezért van létjogosultsága mindkét módnak, mert vannak adat szekvenciák, amelyek heterogénebbek és vannak amelyek kevésbé azok.

Előbbihez jó a huffman, utóbbihoz meg az rle.


Ezért kell vizsgálni, hogy mi az, amit tömöríteni kell és az adattartalomhoz választani megfelelő algoritmust.

2019. jan. 9. 11:18
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!