Fourier transzformáció és Huffman kódolás; Fórum; A tudás lelkesedése
Ez a válasz segítette a téma íróját
Célom, hogy Huffman kódolást használjak a wav audio fájl súlyának csökkentésére. Jelenleg van egy algoritmusom, amely végrehajtja a szöveg Huffman kódolását. Kutatásom során megértettem, hogy ahhoz, hogy Huffman-t hangon használhassuk, a Fast Fourier Transform-ot (FFT) kell használnod, nem sokat tudva róla, találtam egy kódot, amely úgy tűnik jól működik. A kimeneten azonban elküldi nekem a frekvenciák listáját, de nincs redundancia, ami nagyon problematikus, mivel ez a Huffman bázis. Több hangmintát teszteltem, amelyek ennek ellenére meglehetősen ismétlődtek ... Itt van a kód:
Itt található a link a hangfelvételre.
Össze tudtam hasonlítani a kimeneten lévő időbeli spektrumot azzal, amit az Audacity szoftver adott nekem, és ez jól passzol, így az algo úgy tűnik, jól működik. Szóval kíváncsi vagyok, vajon nem értettem-e, hogyan működik a hangtömörítés az FFT + Huffman-on keresztül ...
köszönöm, hogy felvilágosítottál.
Ez a válasz segítette a téma íróját
Ha jól tudom, az FFT-t nem állítólag a hang tömörítésére kell használni, vagy legalábbis nem kisebb-nagyobb hallható minőségveszteség nélkül. Innentől tudnia kell, mit akar, veszteségmentes vagy veszteséges hangtömörítési algoritmus.
Huffman algoritmusa egyértelműen nem optimális a hang tömörítéséhez, valamint a szöveghez, de mégis sikerül látni, hogy működik (talán 10 vagy 20% helyet takarít meg, nem sokkal többet).
Nehezen látom azt a logikát, miszerint az időbeli adatok helyett a frekvenciára való váltás javítaná az utólag elvégzett Huffman-tömörítést. Hangja ismétlődőnek tűnhet, hacsak az ismétlések nem esnek egybe az FFT-ben használt ablakok méretével, véleményem szerint nem valószínű, hogy olyan ismétlődő adatokat találna, amelyek segítenék Huffman algoritmusát.