Transformarea Fourier și codificarea Huffman; Forum; Pofta de cunoaștere

Acest răspuns l-a ajutat pe autorul subiectului

Îmi propun să folosesc codificarea Huffman pentru a reduce greutatea unui fișier audio wav. Am pentru moment un algoritm care realizează codificarea Huffman pe un text. Prin cercetările mele am înțeles că pentru a utiliza Huffman pe un sunet trebuia să folosiți transformata Fourier rapidă (FFT), neștiind prea multe despre asta, am găsit un cod care pare să funcționeze bine. Cu toate acestea la ieșire îmi trimite lista de frecvențe, dar nu există redundanță, ceea ce este foarte problematic, deoarece este baza Huffman. Am testat mai multe probe de sunet care au fost totuși destul de repetitive ... Iată codul:

Iată linkul pentru înregistrarea sunetului.

Am reușit să compar spectrul temporal la ieșire cu cel oferit de software-ul Audacity și se leagă bine, așa că ceva pare să funcționeze bine. Așa că mă întreb dacă nu am înțeles cum funcționează compresia sunetului prin FFT + Huffman ...

multumesc ca ma luminezi.

Acest răspuns l-a ajutat pe autorul subiectului

Din câte știu, FFT nu ar trebui să fie folosit pentru a comprima sunetul sau cel puțin nu fără pierderi de calitate mai mult sau mai puțin audibile. De acolo trebuie să știi ce vrei, algoritm de compresie audio fără pierderi sau cu pierderi.

Algoritmul lui Huffman nu este în mod clar optim pentru comprimarea sunetului cât de bine poate pentru text, dar reușim totuși să-l vedem funcționând (poate veți economisi 10 sau 20% spațiu, nu mult mai mult).

Mi-e greu să văd logica că trecerea la frecvență, mai degrabă decât la date temporale, ar îmbunătăți o compresie ulterioară Huffman. Sunetul dvs. poate părea repetitiv, cu excepția cazului în care repetările coincid cu dimensiunea ferestrelor utilizate în FFT, în opinia mea, este puțin probabil să găsiți date repetitive care ar ajuta algoritmul lui Huffman.