SegDWT
Pod zkratkou SegDWT (či alternativně SegWT, SegDTWT) sdružujeme algoritmy tzv. segmentované
waveletové transformace v diskrétním čase. Tyto algoritmy jsou
schopné vypočítat přesné waveletové koeficienty signálu po jeho segmentech. Pro jednodimenzionální signály to tedy znamená, že není nutné je znát předem, čehož důsledkem je mimo jiné možnost zpracovávat signály v reálném čase.
Ve dvou dimenzích to zase může znamenat, že koeficienty obrazu je možné získat pomocí paralelních výpočtů.
Metody jsou zcela univerzální co se týká:
- volby waveletových filtrů (včetně biortogonálních),
- hloubky dekompozice,
- délky signálového segmentu,
- dimenze signálu.
Publikované práce a články, které mají spojitost s algoritmy (většina ke stáhnutí v sekci Publikace).
- PRŮŠA, Z.: Segmentwise Discrete Wavelet Transform. Dizertační práce, Vysoké učení technické v Brně, 2012.
Software a data (250 MB), viz popis na str. 103.
- RAJMIC, P.; PRŮŠA, Z.; KONCZI, R.: VST Plugin Module Performing Wavelet Transform In Real-time. In Proceedings of the 15th International Conference on Digital Audio Effects DAFx12. 2012.
- PRŮŠA, Z.: Vícerozměrná segmentová waveletová transformace: doktorská dizertační práce.
Vysoké učení technické v Brně, Brno, 2012. V přípravě. Vedoucí práce Mgr. Pavel Rajmic, Ph.D.
- PRŮŠA, Z.; RAJMIC, P. Real-Time lifting wavelet transform algorithm. Elektrorevue - Internetový časopis (http://www.elektrorevue.cz), 2011, roč. 2011, č. 3, s. 53-59. ISSN: 1213- 1539.
- PRŮŠA, Z.; RAJMIC, P. Parallel Implementation of 2D Forward Discrete Wavelet Transform on multicore CPUs. Elektrorevue - Internetový časopis (http://www.elektrorevue.cz), 2010, roč. 2010, č. 112, s. 1-7. ISSN: 1213- 1539.
- RAJMIC, P. Algorithms for Segmentwise Computation of Forward and Inverse Discrete- time Wavelet Transform. Journal of Concrete and Applicable Mathematics, 2010, roč. 8, č. 3, s. 1-15. ISSN: 1548- 5390.
- RAJMIC, P.; PRŮŠA, Z. Podrobná studie algoritmu pro výpočet waveletové transformace v diskrétním čase. Elektrorevue - Internetový časopis (http://www.elektrorevue.cz), 2010, roč. 2010, č. 113, s. 1-18. ISSN: 1213- 1539.
- RAJMIC, P.: Využití waveletové transformace a matematické statistiky pro separaci signálu a šumu: Doktorská dizertační práce.
Vysoké učení technické v Brně, Brno, 2004. 106 s. Vedoucí práce Prof. Ing. Zdeněk Smékal, CSc.
SegDWT pro jednorozměrné signály
Algoritmy můžeme podle použití rozdělit na dva typy:
- První, tzv. off-line, která sice zpracovává signál po segmentech, nicméně dopředná a zpětná část jsou odděleny; dopředná transformace nepředává ihned waveletové koeficienty k dalšímu
zpracování. To je vhodné např. u digitálních signálových procesorů
(DSP), kdy nepotřebujeme nutně zpracovat signál v reálném čase, ale
máme málo paměti a je nutné transformaci počítat po částech. Další
využití může být při využití SegDWT pro zpracování rozsáhlých obrazů
(zde také neběží "reálný čas", ale zpracování po segmentech je vhodné
či nutné).
- Ve druhé, tzv. real-time verzi, jsou vstupní segmenty s
minimálním zpožděním zpracovány a ihned posílány na výstup. Toto je
postup vhodný všude tam, kde je nutné produkovat výstup s minimálním
zpožděním oproti vstupu.
Vyvojová schémata: dopředná
offline transformace, zpětná
offline transformace, transformace
v reálném čase.
Implementace v MATLABu
- Zdrojový kód pro MATLAB. Hlavní soubory jsou segdtwt.m
pro dopřednou transformaci off-line a segidtwt.m
pro příslušnou zpětnou, a rt_dtwt.m pro simulaci real-time verze. Pokyny pro použití jsou uvedeny v nápovědě. (Autor P. Rajmic)
- Zdrojový kód v MATLABu obsahující modifikace [rozpracováno]. (Autor Z. Průša)
Implementace v C++
Programy v C++ představují z větší části přepis matlabovských souborů:
- Offline verze je ve
formě samostatně spustitelných programů
(forward.exe a inverse.exe),
program sám vypíše požadované vstupní parametry. K dispozici je i textový soubor s podrobnější nápovědou.
(Autor J. Malý)
-
Statická knihovna SegDWT je implementací SegDWT v C++ pro pevné pořadí zpracování segmentů. (Autor Z. Průša)
- VST zásuvný modul, který používá knihovnu SegDWT pro zpracování audio signálů v reálném čase.
Soubor s příponou DLL se nakopíruje do adresáře, kde má tzv. hostitelský program své zásuvné moduly. Jako hostitelské aplikace mohou být použity např.
Steinberg Cubase, MiniHost, GTPlayer, AbletonLive apod. VST modul je možné snadno rozšířit o uživatelské algoritmy zpracování waveletových koeficientů. (Autor Z. Průša)
Viz obrázek.
Viz tento článek.
 |
Snímek obrazovky – grafické uživatelské rozhraní plugin modulu. Levá část odshora
– Gain určuje celkové zesílení signálu,
Wavelet umožňuje vybírat waveletový filtr,
Depth definuje hloubku waveletové dekompozice,
Process definuje operaci s waveletovými koeficienty.
|
SegLWT pro jednorozměrné signály
Lifting schéma je polyfázové vyjádření waveletové banky filtrů, které má několik výhod. Princip výpočtu waveletových koeficientů je ale odlišný (a složitější), což vyžaduje nový přístup k segmentovému výpočtu, proto zavádíme samostatné označení SegLWT (segmented lifling wavelet transform).
Implementace v Matlabu
Zdrojový kód v MATLABu pro SegLWT. (Autor Z. Průša)
SegDWT pro obrazové signály
Tyto algoritmy slouží v případech, kdy je třeba po segmentech (tj. blocích) provést transformaci obrazu, a to tak, aby nevznikly blokové artefakty. Obraz obvykle známe celý předem, a tak se otevírá možnost paralelního výpočtu na více jádrech/procesorech/stanicích. Bloky mohou být obdélníky libovolného rozměru.
Implementace v C++ pomocí Intel TBB
Pro paralelizaci výpočtů byla využita knihovna Intel Threading Building Blocks. Algoritmus vychází z tzv. separability waveletové transformace. Čím větší je velikost obrazu, tím vyšší časovou úsporu paralelizace přinese. Archiv obsahující programy i článek s popisem jsou k dispozici
ke stažení zde.
(Autor Z. Průša)
SegDWT pro n-rozměrné signály
Algoritmus SegDWT je díky separabilitě DWT možné použít na jakkoliv-rozměrný signál.
Viz dizertaci Zdeňka Průši a příslušná data a programy.
Poznámky
Všechny programy jsou šířeny pod licencí GNU General Public Licence.
Poděkování patří Grantové
agentuře České republiky, za jejíž
podpory ve formě grantu č. 102/06/P407 část této práce vznikla.