Преобразуване на Фурие и кодиране на Хафман; Форум; Жар на знанието
Този отговор е помогнал на автора на темата
Целта ми е да използвам Huffman кодиране за намаляване на теглото на wav аудио файл. За момента имам алгоритъм, който изпълнява кодирането на Huffman върху текст. Чрез изследванията си разбрах, че за да използвате Huffman за звук, трябва да използвате Fast Fourier Transform (FFT), без да знаете много за него, намерих код, който изглежда работи добре. На изход обаче ми изпраща списъка с честоти, но няма излишък, което е много проблематично, тъй като това е базата на Хъфман. Тествах няколко звукови проби, които въпреки това бяха доста повтарящи се ... Ето кода:
Ето връзката за звукозапис.
Успях да сравня временния спектър на изхода с този, даден ми от софтуера Audacity, и той се вписва добре, така че алгото изглежда работи добре. Затова се чудя дали просто не разбрах как работи компресията на звука чрез FFT + Huffman ...
благодаря, че ме просветли.
Този отговор е помогнал на автора на темата
Доколкото знам, FFT не трябва да се използва за компресиране на звук или поне не без повече или по-малко чуващи загуби на качество. Оттам нататък трябва да знаете какво искате, алгоритъм за аудио компресия без загуби или загуби.
Алгоритъмът на Huffman очевидно не е оптимален за компресиране на звук, както може за текст, но все пак успяваме да видим как работи (може би ще спестите 10 или 20% от пространството, не много повече).
Трудно виждам логиката, че превключването към честота, а не към временни данни, би подобрило последваща компресия на Huffman. Звукът ви може да изглежда повтарящ се, освен ако повторенията съвпадат с размера на прозорците, използвани в БПФ, по мое мнение е малко вероятно да се намерят повтарящи се данни, които биха помогнали на алгоритъма на Хафман.