Подленти: ниски и високи честоти
Банка от филтри разделя сигнала на ленти: НЧ филтър дава ниската лента L, ВЧ филтър – високата H. Всяка лента е два пъти по-тясна, затова може да се децимира – да се махне всеки втори отчет, без да се губи нищо (Найкуист за половин лента, тема 1). N отчета стават N/2 + N/2.
При думата 99,2 % от енергията е в ниската лента. Високата носи само съскането на „з“ и „в“ – и ухото е по-малко чувствително там.
Входът: звукът, както е записан
входът x(n)
Изходът: звукът избраната лента
изходът y(n)
fs/2 = 4000 Hz
Само L: думата е ясна, малко приглушена. Само H: тихо съскане. L + H: точно оригиналът – перфектно възстановяване. При Хаар лентите се застъпват повече (виж спектрограмата около 4 kHz): филтрите му са само два коефициента.
QMF и перфектно възстановяване
Истинските филтри не режат като с нож, затова всяка лента след децимацията има малко aliasing (тема 1). Магията е, че при правилно избрани филтри двата aliasing-а са с противоположни знаци и се унищожават при сумирането. QMF (квадратурно-огледални филтри) са такава двойка: ВЧ е огледалото на НЧ около средата, fs/4.
2 ленти: огледални филтри (QMF)
H₀ – НЧ (L) H₁ – ВЧ (H) сума
нива = 3 → 4 ленти
Диадично: все по-тесни НЧ ленти
Ляво: НЧ и ВЧ се пресичат по средата, а сумата на квадратите им е права линия. Дясно: диадично разделяне – всяко ниво дели само ниската лента; „пакетно“ дели всяка.
Хаар е точно завъртането на 45° от тема 8: L = (x₁ + x₂)/√2, H = (x₁ − x₂)/√2. Пример (средно и полуразлика): [8, 6, 4, 4] → L = [7, 4], H = [1, 0]; второ ниво: 5,5 и 1,5. Резултат 5,5 · 1,5 · 1 · 0.
Подлентово кодиране (SBC)
Щом високата лента е тиха, ѝ даваме по-малко битове. Ниската с 6 бита, високата с 2 бита – средно 4 бита на отчет. SNR = 19,7 dB, а обикновена ИКМ с 4 бита дава 14,1 dB.
Входът: звукът, както е записан
входът x(n)
Изходът: звукът след SBC
изходът y(n)
Средно 4 бита на отчет дават ≈ 20 dB – колкото обикновена ИКМ с 5 бита (≈ 19 dB) и много повече от ИКМ с 4 (≈ 14 dB). Сложи 0 бита на високата лента – губи се само малко яснота на „з“. Обърни ги (2 за ниската, 6 за високата) – думата се разпада.
Уейвлети: диадично разлагане
Ако делим пак и пак само ниската лента, получаваме уейвлетно (диадично) разлагане: H (половината), LH (четвърт), LLH, LLL… Ниската лента накрая е 0 … fs/2^(L+1). Пакетното разделяне дели всяка лента – полезно, когато и във високите има важно (текстури, музика).
Уейвлетът е къса вълничка, която се мести (b) и разтяга (a). За разлика от DCT, която казва „какви честоти има в блока“, уейвлетът казва „какви честоти и къде“ – затова пази резките скокове.
нива = 3
праг = 0,2
шум = 0,3
Хаар, 3 нива, праг 0,2 → пазим 568/1024 коеф.
шумен вход след прага чист
Детайлите: всичко под прага става 0
детайлни коефициенти (H, LH, LLH…)
Спектър (пунктир – границите на лентите)
вход изход
Синус + скок + шум. Детайлите под прага стават 0: шумът изчезва, а скокът остава остър – цялата му информация е в няколко коефициента точно там, където е.
2D уейвлети: JPEG 2000
За снимката делим по редове и после по колони → четири ленти: LL (умалена снимка), LH, HL (хоризонтални и вертикални ръбове), HH (диагонални). После пак делим само LL – на 3 нива. Накрая пазим само 5 % от детайлите (най-големите): PSNR = … dB.
В средата: горе вляво е умаленият папагал (LL), около него – сиви полета с ръбовете. Почти всичко е сиво = нула. С 5 % от детайлите снимката е размазана по-меко, без квадратчета – сравни с JPEG при 1–2 коефициента в тема 8. (Хаар все пак дава леки „стъпала“; JPEG 2000 ползва по-гладки уейвлети.)
Самопроверка
1. fs = 8 kHz, 3 нива уейвлет. Каква е ниската лента накрая?
fs/2^(3+1) = 500 Hz (0…500 Hz).
2. Защо подлентовото кодиране пести битове?
Във високите ленти има малко енергия и ухото е по-малко чувствително там → по-малко битове.
3. Всяка лента има aliasing. Защо изходът е чист?
При QMF двата aliasing-а са с противоположни знаци и се унищожават при сумирането (условието AC).
4. Защо при силна компресия JPEG 2000 няма квадратчета, а JPEG има?
JPEG трансформира отделни блокове 8×8 – губи границите между тях. Уейвлетите обхващат цялата снимка с вълнички с различен размер.