МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
/
ЗВІТ
до лабораторної роботи №2
з навчальної дисципліни:
«Системи запису та відтворення інформації»
на тему: «Дослідження методів компресії аудіоінформації в MATLAB»
Варіант 14
МЕТА РОБОТИ
Набути вміння розробляти власні методи стиснення аудіоінформації та оцінювати їх ефективність.
ЗАВДАННЯ
Ознайомитись з теоретичним матеріалом.
Завантажити wav-файл вказаний в завданні відповідно до свого варіанту.
Вивести основну інформацію про файл: кількість вибірок, кількість каналів, частота дискретизації, кількість біт на вибірку. Прослухати аудіофайл.
Оцінити степінь стиснення звукового файлу кодом Хафмена.
Побудувати гістограму аудіофайлу.
Написати кодер, на базі ДКП, який би компресував мовний сигнал з заданим степенем стиску.
Написати декодер, який відтворює мовний сигнал.
Прослухати декодований мовний сигнал та зробити висновки про якість відтвореного сигналу.
Варіант
Назва файлу
Розмір блоку
Степінь стиску
14
Lab_1_14.wav
450
8
ТЕКСТ ПРОГРАМИ
clear all;
[Y, F, B] = wavread('E:\Lab_1_14.wav');
Y = Y * 128;
figure(1);
hist(Y, -128:127);
% Розмір блоку
NN = 450;
% Кількість збережених коефіцієнтів ДКП на блок
L = 98;
% Кількість блоків
nn = fix(length(Y)/NN);
mm = 1;
kk = 1;
% КомпресіЯ
for ii = 1 : nn - 1
x = dct( Y(kk : kk + NN - 1) );
y(mm : mm + L - 1) = x(1 : L);
mm = mm + L;
kk = kk + NN;
end;
% Квантування
y = round(y);
[A, X] = hist(y, min(y):max(y));
N = length(y);
Ls = 0;
for ii = 1 : length(A)
if(A(ii) > 0)
Ls = Ls + (A(ii)/N) * log2(A(ii)/N);
end;
end;
disp('-Ls = ')
-Ls
d=ceil(log2(max(y)-min(y)))
CR = d/(-Ls);
CR2 = d/(-Ls)* NN/L;
sprintf('Коефіцієнт стиснення методом Хафмена CR=%f',CR)
sprintf('Коефіцієнт стиснення ДКП CR2=%f',CR2)
% Відновлений сигнал
YC = Y * 0;
dx = Y(1 : NN) * 0;
mm = 1;
kk = 1;
for ii = 1 : nn - 1
dx(1:L) = y(mm : mm + L - 1);
x1 = idct( dx );
YC (kk : kk + NN - 1) = x1;
dx = dx * 0;
mm = mm + L;
kk = kk + NN;
end;
%YC = YC / 128;
% YC = round(YC * 128) / 128;
wavplay(YC, F, 'sync');
РЕЗУЛЬТАТ ВИКОНАННЯ ПРОГРАМИ
Гістограма аудіофайлу.
/
Степінь стиснення звукового файлу кодом Хафмена.
Коефіцієнт стиснення методом Хафмена CR=1.748614
Степінь стиснення звукового файлу методом ДКП.
Коефіцієнт стиснення ДКП CR2=8.029350
ВИСНОВКИ
Головна задача в даній лабораторній роботі була в наступному - розробити власні методи стиснення аудіоінформації за допомогою алгоритмів стиснення аудіосигналів на дискретного косинусного перетворення,яке найчастіше використовують для стиснення мовної інформації, а також оцінити їх ефективність, та ефективність алгоритмів стиснення без втрат, а саме коду Хафмена.
Дослідивши ці методи, можна зробити висновок, що в методах стиснення без втрат первинний сигнал можна відновити з точністю до біту, тоді як в методах компресії з втратами відновлений сигнал не повністю відповідає первинному, але містить основну частину інформації, і у випадку мовної інформації слова є зрозумілими для користувача.
В алгоритмах компресії аудіосигналів на основі ДКП стиснення досягається за рахунок того, що кодуються тільки ті коефіцієнти, які переносять суттєву інформацію, решта відкидаються.
Отже, за допомогою цих двох алгоритмів можна досягнути значного стиснення, а саме на практиці досягнули степеня компресії 8.029350, тоді як код Хафмена дає стиснення для цього ж сигналу лише 1.748614.
Неозброєним оком видно, що степінь стиснення 8.029350 є достатньо великим, тому якість відтвореного сигналу не надто висока, проте основна мовна інформація збереглася, що в більшості випадках і є основним (степінь стиску), а не саме якість звучання аудіосигналу.