Hudební fakulta AMU Audio Engineering Society, česká sekce 23. listopadu 2009
Principy zpracování zvuku na osobních počítačích v reálném čase Jiří Schimmel Ústav telekomunikací FEKT VUT v Brně
Tato přednáška vznikla v rámci projektu GAČR 102/07/P505
Technické prostředky •
• •
•
Zákaznické obvody ASIC (Application-Specific Integrated Circuit) s jednoúčelovou architekturou – kratší životnost, vysoká cena při malých sériích Signálové procesory s dvojitou harvardskou architekturou a instrukční sadou RISC (Motorola DSP 563xx) Signálové procesory s architekturou VLIW (Very Long Instruction Word, Texas Instruments, Analog Devices TigerSHARC, Motorola Starcore) Zařazení většího počtu funkčních jednotek do jádra procesoru a sdružení operací, které provádějí, do jediné instrukce. Procesory pro všeobecné použití s instrukční sadou – RISC (Reduced Insruction Set Computer, Motorola/IBM PowerPC) – CISC (Complex Instruction Set Computer,Intel x86,IA-32) Instrukce nebo makroinstrukce pro operace často používané při zpracování multimediálních dat. Integrace SIMD architektury a multimediální instrukční sady
Signálové procesory • •
•
Harvardská (ev. dvojitá) architektura je pro moderní aplikace zpracování multimediálních signálů již nedostačující. Narozdíl od procesorů pro všeobecné použití (v osobních počítačích) je u signálových procesorů požadavek na nízký příkon (malé tepelné ztráty) – již před SIMD technologiemi Intel apod. byly hledány cesty zvýšení výkonu signálových procesorů bez nutnosti zvýšení taktovacího kmitočtu. Moderní architektury signálových procesorů s metodami čtení a zpracování s více přístupy (Multi-Issue Processing): – Texas Instruments: LIW (Long Instruction Word) a VLIW (Very Long Instruction Word). – Motorola Starcore: VLES (Varailbe-Length Execution Set). – Analog Devices TigerSHARC: VLIW.
Zpracování signálu v reálném čase •
Zpracování off-line: zvuková data se uloží do paměti, je vybrán požadovaný algoritmus zpracování signálu, nastaveny jeho parametry a spuštěno zpracování. Upravená data lze přehrát až po skončení zpracování. • Zpracování v reálném čase: záznam zvukových signálů, jejich zpracování, změny parametrů algoritmů a přehrávání výstupního signálu probíhá současně
řízení parametrů
načítání vstupních dat
zpracování dat
přehrávání výstupních dat
Zpoždění zpracování v reálném čase •
•
Mezi vstupním a výstupním signálem vždy existuje zpoždění závislé na: – velikosti vyrovnávací paměti systému, – velikosti vyrovnávací paměti algoritmu, – době zpracování vyrovnávací paměti algoritmem, – době režie systému.
U algoritmů pracujících s vektorem vzorků vstupního signálu je rozhodující zpoždění určené dobou naplnění vyrovnávací paměti algoritmu. • U algoritmů pracujících s jednotlivými vzorky vstupního signálu je rozhodující zpoždění určené dobou naplnění vyrovnávací paměti systému. Pouze jednoúčelové aplikace na DSP lze realizovat se zpožděním jednotek vzorkovací periody.
Zpoždění zpracování v reálném čase •
•
Systémy zpracovávající několik datových toků několika nezávislými algoritmy současně nemůže zpracovávat signály po vzorcích: – problém synchronizace datových toků – režie systému by nebyla zanedbatelná k době zpracování Celková doba zpracování
tM •
M = Mt1 + t O N
tO – režie systému, t1 – poměrná doba zpracování jednoho vzorku, M – počet zpracovávaných vzorků, N – délka vyrovnávací paměti.
Zpracování signálů v multitaskingu • Operační systém s multitaskingem dělí čas využití procesoru mezi úlohy, které jej požadují – v jedno okamžiku lze prováděn kód pouze jedné úlohy! • V preemptivním multitaskingu (Windows 95 a vyšší, MacOS X, Unix, Linux) rozhoduje o přidělování a odebírání procesoru jednotlivým úlohám tzv. plánovač, který úloze k provádění jejího kódu přidělí časový úsek (tzv. kvantum). Po uplynutí tohoto úseku je provádění úlohy pozastaveno a rozhodnuto, které úloze bude přiděleno další kvantum. • Délka časového úseku závisí na OS a procesoru (ve Windows do 20ms), jeho přidělování závisí na prioritě úloh. • Nejprve jsou spouštěny procesy s vyšší prioritou, pokud jsou připraveny (tj. nejsou ve stavu, kdy čekají na nějakou systémovou událost, aby mohly pokračovat v provádění svého kódu). Pokud není žádný proces s vyšší prioritou připraven, jsou spouštěny procesy s nižší prioritou. Pokud během provádění procesu s nižší prioritou dojde k události, na kterou čeká proces s vyšší prioritou, je provádění procesu s nižší prioritou přerušeno, a procesu s vyšší prioritou je přiděleno celé kvantum.
Zpracování signálů v multitaskingu • Ovladač zvukového zařízení a aplikace zpracovávající zvuková data jsou jedny z těchto procesů ⇒ jejich kód není prováděn nepřetržitě. • Ovladače hardware mají vyšší než standardní prioritu (obsluha přerušení). • Kvantum jediného procesu 20ms odpovídá při vzorkovacím kmitočtu 48 kHz 960 vzorkovacím periodám! • Ve víceúlohových systémech je proto pro záznam a přehrávání kontinuálních datových toků s vysokým vzorkovacím kmitočtem nutné používat vyrovnávací paměti na hardwarovém zařízení nezávislém na hlavním procesoru.
Zpracování signálů v multitaskingu Záznam a zpracování zvukových dat: • Uživatel dá pokyn aplikaci k nahrávání = volání funkce ovladače = spuštění funkce v řídicím procesoru zvukového zařízení, která začne plnit data z A/D převodníku plnit do vyrovnávací paměti zvukového zařízení. • Po naplnění této paměti pokračuje řídicí procesor zvukového zařízení plynule v plnění druhé vyrovnávací paměti (double buffering) a vyvolá přerušení. To je plánovačem zpracováno jako událost, na kterou čeká ovladač. • Pokud všechny ostatní úlohy mají menší prioritu než ovladač, je jejich provádění okamžitě přerušeno a obnoven běh procesu ovladače. Ten přenese data z paměti zvukového zařízení do operační paměti počítače (DMA kanál) na místo, kam při inicializaci určila aplikace. • Potom ovladač v rámci svého kvanta volá funkci aplikace (callback), jejíž adresu aplikace předala ovladači při inicializaci (funkce pro zpracování zvukových dat).
Zpracování signálů v multitaskingu Časová souslednost událostí při záznamu zvukových dat: • Spuštěn proces ovladače s vyšší prioritou + proces audio aplikace a další aplikace se stejnou prioritou • Druhá aplikace má stálý požadavek na výpočetní výkon. • Vzorkování 48 kHz, velikost vyrovnávacích pamětí 192 vzorků teoreticky možné kvantum
proces jiné aplikace proces audio aplikace (jiné prováděné operace)
callback funkce
proces ovladače (vyšší priorita)
režie ovladače
1
2
1
2
1
2
1
2
1
2
1
2
1
2
2
volání přerušení plnění vyr. pamětí
1
(192 vzorků při 48 kHz)
0
NT tO1 Nt1
10
20
30
t [ms]
Zpracování signálů v multitaskingu Časová souslednost událostí při záznamu zvukových dat při zpracování mimo proces ovladače: • Předpokládáme kvantum 6 ms
proces jiné aplikace proces audio aplikace
1
2
2
1
2
1
1
proces ovladače (vyšší priorita)
volání přerušení plnění vyr. pamětí
1
(192 vzorků při 48 kHz)
0
2
1
10
2
1
2
20
1
2
30
t [ms]
Zpracování signálů v multitaskingu Použití více vyrovnávacích pamětí: • Vstupními daty je postupně plněna a poté zpracovávána fronta vyrovnávacích pamětí menší délky. Zpracování fronty je spuštěno až po naplnění několika vyrovnávacích pamětí – vyšší dopravní zpoždění ale větší spolehlivost. • Využití v systémech, kde není zaručeno přibližně rovnoměrné rozložení výpočetního výkonu. • Povolená průměrná doba výpadku zpracování, kdy nedojde k výpadku signálu
t D < NT − Nt1 − t O
Zpracování signálů v multitaskingu Zpracování a přehrání zvukových dat: • Po zpracování bloku zvukových dat uložených v operační paměti počítače oznámí aplikace procesu ovladače (volání funkce, zpráva, událost), že v operační paměti počítače je připravena vyrovnávací paměť s daty k přehrání. • Tím je vyvolána systémová událost, kterou plánovač vyhodnotí a pokud ostatní úlohy mají prioritu nižší než proces ovladače, přeruší okamžitě jejich vykonávání a obnoví běh procesu ovladače. • Po obnovení běhu procesu ovladače přenese ovladač tato data do paměti zvukového zařízení (DMA kanál). a řídicí procesor zvukového zařízení zařadí data do fronty k přehrávání. • Po přehrání každé vyrovnávací paměti vyvolá zvukové zařízení přerušení, plánovač okamžitě obnoví běh procesu ovladače a ten volá callback funkci audio aplikace. Ta ji využije ke zpracování další vyrovnávací paměti a jejímu předání ovladači.
Zpracování signálů v multitaskingu Časová souslednost událostí při přehrávání zvukových dat: • Spuštěn proces ovladače s vyšší prioritou + proces audio aplikace a další aplikace se stejnou prioritou • Druhá aplikace má stálý požadavek na výpočetní výkon. • Vzorkování 48 kHz, velikost vyrovnávacích pamětí 192 vzorků
proces jiné aplikace proces audio aplikace
1
2
proces ovladače (vyšší priorita)
1
2
1
2
1
2
2
1
2
1
2
1
volání přerušení přehrávání vyr. pamětí
1
(192 vzorků při 48 kHz)
0
10
20
30
t [ms]
Zpracování signálů v multitaskingu Kompletní proces zpracování zvukových signálů v reálném čase: • Použití double bufferingu. • V callback funkci volané ovladačem zvukového zařízení v okamžiku naplnění vyrovnávací paměti jsou data zpracována a dále: – okamžitě volána funkce ovladače pro zařazení zpracované vyrovnávací paměti do fronty k přehrávání (asynchronní zpracování) nebo – funkce ovladače pro zařazení zpracované vyrovnávací paměti do fronty k přehrávání je volána až v callback funkci volané ovladačem zvukového zařízení v okamžiku dokončení přehrávání vyrovnávací paměti (synchronní zpracování) • Synchronní zpracování umožňuje použití jediné callback funkce.
Asynchronní zpracování signálu
naplnění vyrovnávací paměti naplnění vyrovnávací paměti NT
•
zpracování signálu tO1
Nt1
zpracování signálu
přehrání vyrovnávací paměti
přehrání vyrovnávací paměti tO2
NT
t
Celkové zpožděním signálu
t L = NT + Nt1 + t O •
Podmínka zpracování v reálném čase
NT ≥ Nt1 + t O •
N – počet vzorků, T – vzorkovací perioda, t1 doba zpracování 1 vzorku.
Synchronní zpracování signálu naplnění vyrovnávací paměti naplnění vyrovnávací paměti naplnění vyrovnávací paměti NT
•
zpracování signálu tO1
Nt1
zpracování signálu
přehrání vyrovnávací paměti
přehrání vyrovnávací paměti tO2
NT
t
Celkové zpožděním signálu t L = 2 NT
•
Podmínka zpracování v reálném čase
NT ≥ Nt1 + t O •
N – počet vzorků, T – vzorkovací perioda, t1 doba zpracování 1 vzorku.
Volba velikosti vyrovnávací paměti • • •
Požadujeme co nejmenší dobu zpoždění signálu, která je lineárně závislá na délce vyrovnávací paměti N. Doba režie systému ale zůstává konstantní, nezávislá na N, při malých délkách vyrovnávací paměti ji již nemůžeme zanedbat. Při nedodržení podmínky zpracování v reálném čase dojde k periodické: – ztrátě úseků vstupního signálu při záznamu – výpadkům výstupního zvukového signálu při přehrávání
proces ovladače
1
(callback funkce)
12
2
1
12
2
1
12
2
1
12
2
1
12
volání přerušení plnění vyr. pamětí
(128 vzorků při 48 kHz)
1
2
0 NT tO1 Nt1
1
2
1
10
2
1
2
1
20
2
1
2
1
30
2
t [ms]
Princip neurčitosti • • •
Při zpracování zvukového signálu v reálném čase se snažíme dosáhnout co nejmenší vyrovnávací paměti. U algoritmů pracujících v kmitočtové oblasti požadujeme co nejpřesnější lokalizaci výskytu spektrálních složek signálu v kmitočtu. Z toho vyplývají opačné požadavky na délku vyrovnávací paměti
Δt = NTVZ a Δf =
1 NTVZ
•
ΔtΔf je konstantní.
•
Řešení je individuální pro každý typ algoritmu (QMF FB/DCT, překrývání časových segmentů DFT)
Zpoždění při hře na hudební nástroj •
•
•
Pokud je zdrojem zvukového signálu je zpěv nebo hra na elektronický hudební nástroj, musíme uvažovat časovou souslednost mezi okamžikem vytvoření zvuku tónu (stlačením klávesy na klaviatuře, drknutím na strunu elektrické kytary atd.) a okamžikem, kdy je tento zvuk hudebník uslyší. Dopravní zpoždění systému okolo 3 ms nepozoruje téměř žádný hudebník, někteří jej nepozorují i při vyšších hodnotách, až do hodnoty přibližně 12 ms. Nižší zpoždění nemusí hudebníkovi při hře na hudební nástroj vadit, i když je rozezná.
Systémy zpracování zvuku pro PC • •
•
DSP-based: používají pro zpracování zvukových signálů algoritmy implementované na signálových procesorech v přídavných zařízeních. Host-based: provádějí zpracování zvukových signálů algoritmy přímo v CPU hostitelského počítače (zpracování signálů přímo v CPU hostitelského počítače je označováno native signal processing). Kombinované systémy: umožňují zpracování zvukových signálů algoritmy v signálových procesorech i v CPU hostitelského počítače, aniž by z hlediska uživatele takového systému byl poznat rozdíl.
Technologie plug-in modulů •
•
• •
Zapouzdření procesu nebo skupiny procesů provádějících zpracování zvukových dat s rozhraním signálových a řídicích dat do programového modulu (např. dynamicky sestavovaná knihovna), vytvoření univerzálního aplikačního rozhraní (API) plug-in modulu. Využívána při zpracování zvukových signálů, videa, v grafických aplikacích, v počítačových hrách a obecně ve všech systémech zpracování dat. Základní výhodou a důvodem vzniku je snadná rozšiřitelnost aplikací pro zpracování dat. Procesy lze dynamicky zavádět a odebírat z virtuální cesty zpracování signálů uvnitř systému během zpracování signálů, proto jsou označovány jako zásuvné moduly (plug-in).
Technologie plug-in modulů • •
•
Aplikace umožňující použití plug-in modulů pro zpracování signálu je označována jako hostitelská aplikace (host). Aplikace po svém spuštění hledá kompatibilní plug-in moduly nainstalované v počítači: – v uživatelem definovaném adresáři (VST 2) – v definovaném adresáři (VST 3) – v systémovém registru (DirectShow, DMO), do kterého se musí plugin modul zaregistrovat při instalaci (RegSvr32). – v inicializačním souboru Zda je nalezený soubor skutečně plug-in modulem podporované technologie ověřuje hostitelská aplikace pokusem o získání tzv. přístupového bodu s definovaným jménem a rozhraním (souvisí s technologií DLL obecně), zda lze modul zavést do systému je rozhodnuto podle výsledku volání této funkce.
Plug-in jako programové vlákno • • • •
Vlákno (thread) je proces úlohy, který probíhá samostatně. Vlákna sdílí stavové informace, prostředky a adresový prostor úlohy. Změna kontextu mezi vlákny je rychlejší než mezi procesy. Z hlediska zpracování multimediálních datových toků lze úlohy které se podílí na paralelním zpracování dat (plug-in moduly) považovat za paralelní. Zdánlivý nebo skutečný paralelismus běhu jejich programu ale závisí na typu víceúlohového systému ve kterém jsou realizovány.
Řídicí rozhraní plug-in modulu •
• •
Parametry plug-in modulu nejsou pevně svázány s grafickým uživatelským rozhraním nebo jinou metodou řízení parametrů. Místo toho je definováno pouze jedno, málokdy více řídicích rozhraní – to umožňuje řízení parametrů jakoukoliv metodou (grafickým uživatelským rozhraním, sekvenčním záznamem dat, ovladačem řídicího HW, rozhraními pro komunikaci mezi procesy atd.) Zápis parametrů musí být prováděn atomicky nebo pomocí synchronizačních primitiv. Atomický zápis a čtení parametrů je většinou prováděno v rámci režie systému mezi zpracováním jednotlivých bloků vstupních dat procesem plug-in modulu.
Plug-in systém
Aplikace audio
audio
parametry
Rozhraní audio systému
Rozhraní plug-in systému
Řídicí rozhraní
Abstrakce audio HW
Správce
Rozhraní MIDI
Ovladač HW
Plug-in Procesor Editor
Ovladač HW
Audio systém
Plug-in systém
Ovládání
Audio HW
MIDI HW
Multimediální systém Windows •
•
Windows Waveform Audio (Win 3.x a vyšší) – Využití zvukového rozhraní pouze jednou aplikací. – Podpora pouze 1 a 2 kanálového formátu. – Prokládaný formát vzorků v paměti. – Možnost využití více vyrovnávacích pamětí. – Nemožnost synchronizace zvukových zařízení. Windows Driver Model Audio (Win 98, ME, 2000 a vyšší) – Využívá služeb jádra systému Kernel Streaming pro zpracování kontinuálních datových toků – Umožňuje vytvoření více instancí jednoho datového toku (tj. využití zvukového rozhraní více aplikacemi je závislé pouze na ovladači zvukové karty) – Umožňuje taktování z vnějšího hardware, tj. synchronizace více zvukových zařízení je možná, pokud ji zvukové rozhraní podporuje. – Vrstvový model ovladače, podpora nižších vrstev pro PCI/ISA karty, USB a IEEE1394 zařízení
Systémy využívající graf filtrů • • • •
Plug-in moduly jsou v některých systémech označovány jako filtry. Systém může za pomoci speciálních procesů tok dat od zdroje ke spotřebiči (mj. vstup a výstup zvukové karty) rozdělovat a opět spojovat. Propojení vstupů a výstupů plug-in modulů do signálové struktury (virtuální signálová cesta) je označováno jako graf filtrů. Toto propojení provádí systém pomocí manažeru grafu filtrů na základě požadavků aplikace.
A/B
renderer
prepostcodec prcessing prcessing
DataSource demultiplexer
A/B
DataSource multiplexer
renderer
Microsoft DirectShow •
Náhrada starších technologií MCI (Media Command Interface) a VFW (Video for Windows, 1993), dříve součást DirectX. • Technologie určená pro přehrávání a zachytávání multimediálních dat v reálném čase. • Systém založený na grafu filtrů, filtry spravovány manažerem (Filter Graph Manager). • Aplikace komunikuje s manažerem pomocí COM, ActiveX nebo MCI • Implementace filtru je dynamicky sestavovaná knihovna (soubor .dll) nebo komponenta ActiveX (soubor .ax). – Zdrojové filtry: zdroje, které používají kernel streaming (WDM, VFW) – Transformační filtry – Reprodukční filtry: Pro reprodukci zvuku používá DirectSound a pro obraz DirectDraw • Podporuje filtry DirectX Media Objects DMO (COM objekty s jednodušším aplikačním rozhraním, podporovány i v DirectX Audio).
Microsoft DirectShow
aplikace ActiveX
rozhraní COM
MCI
DirectShow systém souborů
systém souborů
manažer grafu filtrů zdrojové filtry
Internet
transformační filtry
Kernel Streaming ovladače WDM
starší zařízení VFW
hardwarové dekodéry
reprodukční filtry
VCM/ACM kodeky
DirectSound
DirectDraw
zvuková karta
grafická (video) karta
Microsoft DirectShow •
Možnosti DirectSound: – Přehrávání a záznam zvuků ve formátu wav (prokládaný formát) ze souborů a dalších zdrojů (ovladače zvukových rozhraní) – Možnost využití jednoho zvukového rozhraní více aplikacemi, vícekanálový vstup a výstup – Možnost přehrávání zvukových signálů s vysokou prioritou pomocí vyrovnávacích pamětí kontrolovaných hardwarem – Umístění zdroje zvuku v uživatelském 3D prostředí – Použití plug-in modulů a grafu filtrů pro zpracování zvukových signálů – Implementované základní typy zvukových efektů
Microsoft XAudio2 • • • • • • • •
Pro Windows a Xbox, náhrada DirectSound v nových verzích DirectX, používá DirectSound jen pro low-level operace. Zaměřeno na herní aplikace. Přehrávání a záznam zvuků v různých formátech ze souborů a dalších zdrojů (ovladače zvukových rozhraní). Možnost využití jednoho zvukového rozhraní více aplikacemi, vícekanálový vstup a výstup. Možnost přehrávání zvukových signálů s vysokou prioritou pomocí vyrovnávacích pamětí kontrolovaných hardwarem. Umístění zdroje zvuku v uživatelském 3D prostředí. Architektura mixážního pultu, použití řetězců plug-in modulů jako insert nebo send efektů. Implementovaný reverb a další efekty.
Microsoft XAudio2
aplikace Windows kodér (x)WMA/ADPCM
aplikace XBox High-level rozhraní
GUI (XACT)
Dash XACT engine X3DAudio
Low-level rozhraní
XAPO
XAudio2
DirectSound (WinXP) / WASAPI (Vista) / HW (XBox)
XMP
dekodér XMA(Xbox)
Apple Core Audio •
Stejná architektura a podobné vlastnosti jako DirectShow, pouze pro zvuková a MIDI data: – Použití plug-in modulů a grafu filtrů pro zpracování zvuku. – Přehrávání a záznam ze souborů v různých formátech (aac, ac3, aiff, aifc, au, snd, mp3, mp4, wav a další). – Použití plug-in pro uživatelská data a datové formáty. – Vícekanálový vstup a výstup. – Synchronizace audio a MIDI (ve Windows DirectMusic). – Standardizované rozhraní pro zvuková rozhraní (PCI, USB, IEEE 1394, ve Windows WDM). – Implementované základní typy zvukových efektů.
Apple Core Audio •
Součásti Core Audio: – Carbon Sound Manager –zvukového rozhraní MacOS 9 – Audio Toolbox – API plug-in modulů Audio Units – MIDI Services – API rozhraní MIDI – Audio HAL (Hardware Abstraction Layer) – rozhraní mezi aplikací a HW, abstrakce funkcí HW – IO kit –nástroje pro vytváření ovladačů pro Audio HAL.
Apple Core Audio aplikace
Core Audio Carbon Sound Manager
Audio Toolbox
std. plug-ins
MIDI Services Audio HAL IOKit ovladače zvukový hardware
Apple Audio Units • • • •
Systém plug-in modulů (jako v DirectShow DMO) Správa V/V datových toků typu pull s časovým značením. Správa procesů manažerem grafu filtrů (AUGraph). Dvě metody zpracování dat procesem (stejně jako starší verze VST): – Accumulate – výstupní data plug-in modulu jsou přičtena k datům ve výstupní vyrovnávací paměti. – UseProvidedBuffer – výstupní data plug-in modulu přepisují data ve výstupní vyrovnávací paměti.
Audio Streaming Input/Output • • • • • • • • • •
Pouze správa vstupních a výstupních datových toků Libovolný počet vstupních a výstupních kanálů. Bez omezení formátu dat Kruhové vyrovnávací paměti pro každý vstupní a výstupní kanál samostatně, double buffering. Ovladač určuje velikost vyrovnávacích pamětí, jejich alokaci v paměti a přenos dat – není nutná transformace dat podle pravidel rozhraní. Nízká latence. API rozděleno na rozhraní ovladače a aplikace. Možnost využití jednoho ovladače více aplikacemi. Možnost synchronizace více HW zařízení. Podpora Sony DSD
Virtual Studio Technology • • • • • • • • • • •
Pouze zpracování zvukových dat, bez správy vstupních a výstupních zařízení. Dynamicky měnitelný počet kanálů a sběrnic, podpora side-chain. Nezávislý na formátu dat – interně single/double precision float 〈–1;1〉, možnost přetečení. Možnost realizace generátorů zvukového signálu. Možnost off-line zpracování dat. Oddělený proces řízení a grafického uživatelského rozhraní. Obousměrný přenos parametrů v 32-bitovém formátu dat s pohyblivou řádovou čárkou v rozsahu 〈0;1〉. Přenos událostí z hostitelské aplikace (tempo, MIDI zprávy, triggery, atd.) a privátních zpráv. Příznak Silence. Automatizace s přesností jednoho vzorku. Strukturovaná správa parametrů a programů.
Virtual Studio Technology • • •
Model Edit – Control – View. Využití technologie COM. Modul se skládá ze dvou částí: – procesor: samotné zpracování zvukových dat, – editor: řízení parametrů, grafické uživatelské rozhraní.
zvukový hardware
PCI USB Firewire
ovladač HW
hostitelská aplikace ASIO WDM ...
VST3 plug-in
IComponent IAudioProcessor
PROCESOR
IEditController
EDITOR
Virtual Studio Technology •
•
Procesor obsahuje – hlavní zvuková sběrnice pro zvuková data s libovolným počtem kanálů – pomocná zvuková sběrnice (side chain) – sběrnice pro události – parametry Editor spravuje parametry, zobrazuje GUI a provádí abstrakci struktury modulu (pokud se skládá z více procesorů) PROCESOR vstupy výstupy sběrnice 1 sběrnice 1
EDITOR parametry
sběrnice 2 události
sběrnice 3 zobrazení parametry
Systém TC Powercore •
Multiprocesorový systém signálových procesorů pro počítače PC a Mac s rozhraním PCI a IEEE 1394 • Může být sestaven z několika jednotek, každá s procesorem PowerPC 8240 s PCI řadičem (řídicí procesor) a 4 DSP s pevnou řádovou čárkou Motorola DSP56362 na 100 MHz • Podpůrný systém, který odlehčuje CPU počítače od zpracování digitálních zvukových signálů zvukovými efekty. Vstupní data předává hostitelská aplikace a po zpracování je TC Powercore hostitelské aplikaci opět vrací. • Zvuková data, stejně jako kódy algoritmů a jejich parametry, jsou z a do systému přenášena po sběrnici PCI nebo IEEE 1394 z hostitelské aplikace. Tento přenos zajišťuje ze strany hostitelské aplikace standardní ovladač a ze strany systému firmware běžící v řídicím procesoru. • Plug-in modul se skládá ze dvou částí: – části, jejíž programový kód je prováděn v hostitelském počítači (rozhraní hostitelské aplikace a GUI) – části, jejíž programový kód je prováděn v DSP (kód inicializace, hlavní kód, kód procesu na pozadí)
Architektura TC Powercore •
Aplikační rozhraní TC Powercore je napojeno na VST nebo jiné hostbased, lze realizovat kombinovaný systém pro zpracování zvukových signálů typu DSP-based i host-based. zvukový hardware
PCI USB Firewire
ovladač ASIO
hostitelská aplikace rozhraní ASIO
VST proces
rozhraní VST
VST proces
VST GUI
rozhraní Powercore
ovladač Powercore
CPU
PCI / Firewire
Powercore
PowerPC ESSI DSP
DSP
DSP
DSP
Systém ProTools|HD •
•
• •
Jádro tvoří PCI karta Gershwin s 9 DSP Motorola DSP563xx na 100 MHz, zpracování 32 V/V kanálů. Počet kanálů a výkon lze rozšířit použitím dalších 2 karet nebo karet Accel Všechny DSP a V/V jednotky jsou propojeny sběrnicí TDM II (sériový přenos kanálů časovým multiplexem, rámce synchroni-zovány vzorkovacím kmitočtem), sběrnice je obsluhována ASIC obvody na 80 MHz, které mapují časové rámce sběrnice do paměťového prostoru DSP Pro komunikaci mezi zařízeními a pro dálkové řízení je karta vybavena dvěma bránami DigiSerial založenými na RS-422 Systém zpracování signálů DAE (Digidesign Audio Engine): – rozhraní pro správu plug-in modulů, – rozhraní DirectI/O pro správu V/V systému – rozhraní DirectConnect pro přímé napojení na systém
Plug-in moduly ProTools|HD •
• •
Podpora zpracování typu DSP-based i host-based: – AudioSuite – plug-in moduly nepracující v reálném čase, určeny k provádění destruktivních operací s daty na disku – RTAS (Real-Time Audio Suite) – plug-in moduly pracující v reálném čase, jejichž programový kód je prováděn v CPU hostitelského počítače. – TDM – plug-in moduly pracující v reálném čase, jejichž programový kód je prováděn v DSP systému. API plug-in modulů je jednotné pro všechny architektury Komunikace plug-in modulu s okolím pomocí: – dispatcheru, který pomocí PowerPC na kartě volá funkce (tzv. přístupové body) plug-in modulu – DSP Manageru, který spravuje zdroje DSP a rozhraní DOA (Digidesign Object Architecture, obdoba COM) – rozhraní SDS (Shared Data Services), které umožňuje sdílet informace o parametrech s externími hardwarovými zařízeními a softwarovými moduly.
Architektura ProTools|HD •
Díky jednotnému rozhraní mezi DAE a hostitelskou aplikací lze stejným způsobem používat DSP-based i host-based plug-in moduly
zvukový hardware mapování paměti
Gershwin /Accel
TDM II
ASIC ASIC ASIC ASIC ASIC ASIC ASIC ASIC ASIC DSP
DSP
DSP
DSP
DSP
DSP
DSP
DSP
DSP
dispatcher
PowerPC
DigiSerial
PCI SDS
DAE rozhraní plug-in modulů
CPU
rozhraní DirectConnect
rozhraní DirectI/O
hostitelská aplikace
DOA
plug-in manager RTAS
Systém SCOPE • • • • • • •
Implementuje správu procesů i správu V/V rozhraní a podporuje zpracování typu DSP-based i host-based stejně jako ProTools|HD PCI karty systému jsou osazeny DSP Analog Devices SHARC s plovoucí řádovou čárkou (Luna II 3 procesory, Pulsar 6 a Scope 15 procesorů) PCI karty obsahují A/D a D/A převodníky a digitální zvuková rozhraní (na rozdíl od ProTools nepotřebují další hardware) Výkon lze rozšířit použitím více PCI karet nebo kartou Scope SRB (Sonic Rocket Booster, 15 procesorů, bez V/V rozhraní) V režimu XTC zle ovládat moduly systému pomocí VST (jako u TC Powercore), Pro přenos dat je použito rozhraní ULLI (Ultra Low Latency Interface) s latencí 1ms v režimu Direct Play V režimu s nulovou latencí lze používat procesy generátorů zvukového signálu.
Katedra radioelektroniky Fakulty elektrotechnické ČVUT Audio Engineering Society, česká sekce 23. listopadu 2009
Děkuji za pozornost
Tato přednáška vznikla v rámci projektu GAČR 102/07/P505