Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

kompresja - implementacja algorytmu huffmana

36 views
Skip to first unread message

Maciek

unread,
Jun 23, 2023, 9:04:39 AM6/23/23
to
Cześć. Potrzebuję wskazówki jaki zaimplementować kod huffmana do kompresji plików w c++. Nie chodzi mi o gotowca raczej o wskazówki

na przykład na przykładzie ciągu znaków: aaabbbbccccdddefzyy

zalożenie każdy znak to 8 bitów

Dzięki wielkie za wszystkie porady.

Wiem jak może wyglądać drzewo na przykład:
{a,b,c,d,e,f,z,y} = 8
a = 000 | 3
b = 001 | 3
c = 010 | 4
d = 011 | 3
e = 100 | 1
f = 101 | 1
z = 110 | 1
y = 111 | 2

czyli drzewo można wyprowdzić tak:
29
/ \
0 / \1
5 24
0 / \ 1 0/ \1
1 4 9 15
0/ \1 0/ \ 1 0 / \ 1 0/ \1
a b c d e f z y

praktycznie chciaiłem to wykorzystać i nie wiem co dalej :-).

Przemek Biernat

unread,
Jun 26, 2023, 3:57:41 PM6/26/23
to
Wiem ale nie powiem, na to jest patent na cały świat. Hehehe

Wojciech Muła

unread,
Jul 11, 2023, 1:56:56 PM7/11/23
to
On Friday, June 23, 2023 at 3:04:39 PM UTC+2, Maciek wrote:
> Cześć. Potrzebuję wskazówki jaki zaimplementować kod huffmana do kompresji plików w c++. Nie chodzi mi o gotowca raczej o wskazówki
>
> na przykład na przykładzie ciągu znaków: aaabbbbccccdddefzyy
>
> zalożenie każdy znak to 8 bitów
>
> Dzięki wielkie za wszystkie porady.
>
> Wiem jak może wyglądać drzewo na przykład:
> {a,b,c,d,e,f,z,y} = 8
> a = 000 | 3
> b = 001 | 3
> c = 010 | 4
> d = 011 | 3
> e = 100 | 1
> f = 101 | 1
> z = 110 | 1
> y = 111 | 2

To nie jest drzewo Huffmana. Długość kodów Huffmana jest odwrotnie
proporcjonalna od prawdopodobieństwa symbolu. Masz na Wikipedii
dokłady opis: https://pl.wikipedia.org/wiki/Kodowanie_Huffmana

w.

Maciek

unread,
Nov 27, 2023, 3:10:25 PM11/27/23
to
Nie słyszałem żeby był na to jakiś patent. Ale w porządku, na YT jest trochę materiałów, więc w sumie nieaktualne.

Ewentualnie podziel się swoim patentem :).
0 new messages