Systém audio spracovania

Číslo patentu: E 5972

Dátum: 08.10.2003

Autori: Kaajas Samu, Hiipakka Jarmo

Je ešte 4 strany.

Pozerať všetko strany alebo stiahnuť PDF súbor.

Text

Pozerať všetko

0001 Vynález sa týka systému audio spracovania, spôsobu fungovania systému audio spracovania a softvérového programového produktu so softvérovým kódom, ktorý možno v systéme audio spracovania vykonávať, DOTERAJŠÍ STAV TECHNIKY0002 Systémy audio spracovania sú známe z doterajšieho stavu techniky v rôznych formách,napríklad na prehrávanie súborov MIDI, alebo pre počítačové hry.0003 Audio spracovanie je nepochybne veľmi časovo kriticke. Audio subsystém typicky vytvára blok audio vzoriek, pričom súčasne doznieva predtým vyprodukovaný blok. Ak spracovanie alebo generovanie nového bloku trvá viac času než doznievanie jedného bloku, tak pri prehravani audio signálu možno počuť medzeru, označovanú ako výpadok. Aby sa zabránilo takejto medzere, je možné vo vyrovnávacej pamäti (buffer) dávať do fronty viac než jeden vyprodukovaný blok.0004 interaktívne audio aplikácie si vyžadujú navyše nízku čakaciu dobu (latenciu) medzi interakčnou udalosťou a odozvou pri prehrávani audio signálu. Toto možno dosiahnuť v princlpe s krátkymi audio rámčekmi. Veľká vyrovnávacia pamät na zabránenie medzier však povedie k zvýšenej čakacej dobe medzi vstupom možného používateľa a výsledným audio výstupom, pretože vstup používateľa môže mat vplyv len na bloky, ktoré sa ešte iba majú vyprodukovať.0005 Ďalej kedykoľvek počas životnosti aplikácie sa môže udiat interakčná udalosť a často si vyžaduje dodatočné spracovanie. Kým sa interakcie spracúva, generovanie nových výstupných blokov sa môže spomaliť. Preto je ťažkou úlohou nájsť najkratšíu možnú veľkosť vyrovnávacej pamäte, ktorá vedie k nízkej čakacej dobe, ale ktorá neprodukuje počuteľné medzery v akejkoľvek situácii používania.0006 Uživateľské vstupy taktiež vedú k veľmi nerovnomernému rozdeleniu celkovej záťaže spracovania, ako funkcie času. Návrh softvéru pre procesor digitálnych signálov (DSP - Digital Signal Processor), ktorý sa stará o spracovanie, je komplikovanejší, ak sa treba zaoberať premenlivými zátažami.0007 Existuje viacero softvérových systémov audio spracovania, v ktorých najmenej čast spracovania je rozdelená na jednotky, ktoré vyhovujú uniñkovanému rozhraniu bez ohľadu na povahu spracovania. Tieto jednotky sa taktiež označujú ako komponenty. Komponent je takto stavebný blok rámca softvérového systému a implementuje funkciu audio spracovania ako mixér,konvertor vzorkovacej rýchlosti, alebo doznievací efekt (ozvena). Komponenty možno zvyčajne zasunúť do systému bez rekompilácie a preto sa nazývajú zásuvky (plug-in). Dva takéto systémy sú VST (Virtual Studio Technology) API (Application Programmer interface) od tirmy Steinberg a LADSPA (Linux Audio Developers Simple Plugin APl) od audio komunity Linux.0008 Zasúvacia architektúra VST Steinberg umožňuje integráciu procesorov a nástrojov virtuálnych efektov do digitálneho audio systému, napriklad VST mixér. Audio systém môže bežať na osobnom počítači alebo počítači Macintosh.0009 LADSPA je otvorená aktivita Linux, ktorá poskytuje štandardný spôsob zásuvných audio procesorov, ktoré sa majú používať so syntézou a nahrávacím audio softvérom Linux.0010 V oboch riešeniach sa riadiace výpočty interakcií a výpočty spracovania signálu v reálnom čase vykonávajú v rovnakom procese. To znamená, že celková záťaž audio spracovania sa meni podľa interakcie s používateľom.0011 V dokumente Design of Low Latency Audio Software for General Purpose Operating Systems (Návrh audio softvéru s nízkou čakacou dobou pre viacúčelové operačné systémy),Univerzita Turku (Fínsko), Katedra informačnej technológie, Magisterské diplomová práca z počítačovej vedy, december 2002, od Kaía Vehmanena navrhuje oddeliť kód audio spracovania na časť v reálnom čase a časť v nereálnom čase a na audio navrhovanie aplikácii s nízkou čakacou dobou používať mechanizmus bezpečný v reálnom čase. Ďalej sa navrhuje používať separátne kontexty vykonávania pre užívateľské rozhrania a audio kód, napríklad viacnásobné cesty. Cesta je špeciálny prípad procesu. Každá cesta má svoj vlastný kontext vykonávania, ktorý možno nezávisle naplánovat ako iné procesy, avšak cesty jednej logickej skupiny majú zdieľaný priestor pamäte. 0012 Zverejnená americká patentová prihláška 2003/0017808 uvádza systém a sposob delenia úloh medzi viacúčelový procesor a procesor digitálnych signálov na realizovanie telefónu, ktorý vyžaduje syntézu MIDI. Viacúčelový procesor spracúva úlohu načítania a analyzovania súborovMIDI uložených v energeticky nezávislej (flash) pamäti a vysielania príkazov príslušného syntetizátora do procesora digitálnych signálov. Procesor digitálnych signálov preberá príkazy MIDI označené časovou pečiatkou, syntetizuje ich a odovzdáva audio digitálno-analógovému prevodníku.0013 Cieľom vynálezu je ďalej zlepšiť spracovanie v systeme audio spracovania.0014 Systém audio spracovania je navrhnutý tak, ako je definované v priloženom nároku 1.0015 Navyše sa navrhuje spôsob fungovania systému audio spracovania, ako je definovaný v priloženom nároku 7.0016 Nakoniec sa navrhuje softvérový programový produkt, ako je definovaný v priloženom nároku 11.0017 Treba poznamenať, že kým funkcie reálneho času a kontrolné funkcie možno vykonávať v podstate súčasne, v niektorých prípadoch kontrolné funkcie možno taktiež vykonávať najmenej čiastočne vopred.0018 vynález postupuje z úvahy, že funkcie reálneho času možno opatriť konštantným spracovaterským výkonom. Preto sa navrhuje, aby sa zabezpečil jednoúčelový proces na vykonávanie funkcií reálneho času v podstate s konštantným spracovateľským výkonom. Riadiace funkcie sa vykonávajú výlučne so spracovateľským výkonom, ktorý je dostupný pre jeden alebo viac ďalších procesov. Delenie medzi spracovanie dát v reálnom čase a spracovanie riadiacich signálov sa uskutočňuje špeciñckejšie zvlášť pre každý komponent. Typicky každý komponent zodpovedá jednému algoritmu.0019 Je výhodou vynálezu, že spracovateľská záťaž časti reálneho času systému sa môže udržiavať konštantná bez ohladu na veľkosť interakcie. Toto je významné zlepšenie pre riadenie záťaže audio spracovania, pretože konvenčné systemy sa musia pripravovať na najhoršie odhady,alebo prebrať riziko výpadkov. Najhoršie prípady nastávajú relatívne zriedka. Ak je konvenčný systém navrhnutý tak, aby bol schopný vysporiadať sa s najhoršími prípadmi, väčšina potenciálu využitého procesora zostáva väčšinu času nevyužitá.0020 Navyše je výhodou vynálezu že spracúva rámček, v ktorom delenie medzi časť reálneho času a riadiacu časť je účelová pre príslušný komponent. Toto uľahčuje podľa potreby modifikovať delenie a chod dát medzi časťami, pričom sa zabezpečia všetky výhody separácie.0021 Okrem toho sa zjednoduší návrh softvéru pre prvý proces, pretože možno použiť stabilné pevné čísla spracovateľskej záťaže.0022 Pretože funkcie reálneho času sa spracúvajú s konštantou spracovateľskou záťažou, taktiež rýchlosť generovaných audio blokov je v podstate konštantná. Toto uľahčuje taktiež dimenzovanie vyrovnávajúcej pamäte, v ktorej sú uložené audio bloky na prezentáciu.0023 Výhodné uskutočnenia vynálezu sa stanú zrejmými zo závislých nárokov.0024 Ak systém audio spracovania zahŕňa viacero komponentov audio spracovania, výhodne sa využíva engine audio spracovanie pre sekvenčné zbehnutie komponentov.0025 Výhodne všetky riadiace udalosti sú časovo pečiatkované. Proces reálneho času potom môže využívať udalosti podľa časových pečiatok. Ak aplikácia vopred pozná interakciu alebo riadiacu sekvenciu, môže vyslať riadiace udalosti do procesu reálneho času, keď jej najlepšie vyhovujú. Napríklad je možné analyzovať súbor MIDI, extrahovať všetky riadiace udalosti, dať im časovú pečiatku a poslať ich do procesu reálneho času dokonca skôr, že sa skutočne spusti prehrávanie súboru MIDI.0026 Navrhovaný systém audio spracovania môže byt jednoprocesorový systém, alebo viacprocesorový systém. systém.0027 V jednoprocesorovom systéme môže softvér bežať na viacerých vykonávacích cestách. Riadiace funkcie sa vykonávajú na jednej alebo viacerých cestách a funkcie reálneho času sa vykonávajú na separátnej ceste. Funkcie reálneho času a riadiace funkcie možno však taktiež vykonávať v iných procesoch než vykonávacie cesty.0028 V takomto jednoprocesorovom systéme operačný system platformy by mal byť schopný garantovať dostatočné zdroje pre proces reálneho času a vykonávať riadiace výpočty len keď proces reálneho času procesor nepotrebuje.0029 Ak je navrhovaný systém viacprocesorový systém, funkcie reálneho času sa vykonávajú v jednoúčelovom procesore, pričom riadiace funkcie využívajú najmenej jednej iný procesor. Takýto viacprocesorový systém má zvláštnu výhodu, pretože funkcie reálneho času ťažia zjednoúčelového procesu a vyvažovanie záťaže sa zrealizuje zvlášť lahko.-3 0030 Vynález možno využívat na audio spracovanie dát v akejkoľvek forme, napriklad pre audio dáta lineárnej domény pulznej kódovej modulácie (Pulse Code Modulation - PCM), pre audio dáta frekvenčnej domény, pre audio dáta domény nespojitej kosinovej transformácie (Discrete Cosine Transform - DCT) alebo pre audio dáta kódované v akejkoľvek inej forme.0031 Ďalšie predmety a znaky tohto vynálezu sa stanú zrejmými z nasledovného podrobného opisu, uvažovaného v spojení s dcloženým výkresom.Obrázok 1 je schematická bloková schéma systému audio spracovania podľa vynálezuObrázok 2 je schematická bloková schéma zobrazujúca realizovanie systému podľa obrázku 1Obrázok 3 je postupový diagram zobrazujúci spracovanie v systéme podľa obrázku 1 aObrázok 4 je schematická bloková schéma predstavujúca možnú zmenu systému audio spracovania podľa obrázku 1.0032 Obrázok 1 je schematická bloková schéma uskutočnenia systému 1 audio spracovania podľa vynálezu.0033 Systém 1 audio spracovania zahŕňa množstvo komponentov 11, 12 a 13 audio spracovania. Každý komponent 11, 12 a 13 realizuje odlišnú funkciu audio spracovania ako je mixér, konvertor vzorkovacej rýchlosti, alebo doznievaci efekt. Pre funkciu audio spracovania, realizovanú príslušným komponentom 11, 12 a 13 komponent 11, 12 a 13 zapuzdruje algoritmus, ktorý môže obsahovat viacero základných blokov spracovania signálu ako filtre.0034 Z hľadiska návrhu softvéru komponenty 11, 12 a 13 sa realizujú pomocou jednoduchých logických stavebných blokov prostredia, napríklad použitia triedy C. Komponenty 11, 12 a 13 môžu byt bud statický vybudované, t.j. deñnované v čase Kompilácie, alebo môžu byť dynamicky zatažitelnými plug-ins, ktoré možno spojiť s už kompilovaným a spriahnutým t.j. vykonávateľným softvérom.0035 Funkcia vykonaná komponentom 11, 12 a 13 sa zakladá na rôznych spôsoboch alebo funkciách. Funkcie v každom komponente sú rozdelené na dve skupiny, konkrétne funkcie 14 reálneho času a riadiace funkcie 15, ako je uvedené pre jeden z komponentov 11. Funkcie 14 reálneho času sa starajú oaudio spracovanie dát míešaním, filtrovanim, alebo iným zaobchádzaním so vstupnými audio vzorkami. Riadiace funkcie 15 sa starajú o riadenie funkcii 14 reálneho času, napriklad na základe užívateľského vstupu.0036 Každý z komponentov 11, 12 a 13 je pripojený na procesor 16 a v rámci procesora 16 na jednej strane na DSP cestu 20 a na druhej strane na riadiacu cestu 30.0037 Funkcie 14 reálneho času komponentu 11, 12 a 13 spracúva v procesore 16 DSP cesta 20 s konštantnou spracovateľskou záťažou. Funkcie 14 reálneho času komponentov 11, 12 a 13 sú preto napísané tak, že majú konštantnú veľkosť spracovateľského výkonu na blok audio vzoriek. Návrh DSP cesty 20 je zjednodušený kvôli zaručene konštantnej spracovateľskej záťaži.0038 Riadiace funkcie 15 komponentu 11, 12 a 13 spracúva v procesore 16 riadiaca cesta 30. Riadiace funkcie sa vykonávajú len keď je treba, t.j. keď trvá interakcia, alebo nejaká iná pričina zmeny parametru. Riadiaca cesta 30 takto vykonáva premenlivé množstvo spracovania v závislosti od užívateľskej interakcie a aplikačných riadiacich prvkov bez ovplyvñovania spracovateľskej záťaže pre funkcie 14 reálneho času.0039 Obrázok 2 je bloková schéma vrstvenej štruktúry detailnejšie zobrazujúci spracovanie v procesore 16 podľa obrázku 1.0040 Štruktúra obsahuje API vrstvu 40, riadiacu vrstvu 30, zodpovedajúcu riadiacej ceste 30 podľa obrázku 1 a DSP cestu 20, zodpovedajúcu DSP ceste 20 podľa obrázku 1.0041 Riadiaca vrstva 30 zabezpečuje čast 31 riadiacej cesty komponentu so vstupnými portami 32, výstupnými portami 33 a jednou alebo viacerými frontami 34 a 35 udalosti. Čast 31 riadiacej cesty komponentu je spojená s jedným z komponentov 11 na obrázku 1. Podobné časti riadiacej cesty komponentu (nie sú zobrazené) zabezpečuje riadiaca vrstva pre každý z komponentov 12 a 13. DSP cesta 20 obsahuje časť 21 DSP cesty komponentu a engine 22 DSP ako engine audio spracovanie.0042 Část 21 DSP cesty komponentu sa používa na vykonávanie funkcií 14 reálneho času komponentu 11 s konštantným spracovateľským výkonom.0043 Zároveň signály vyplývajúce z užívateľských interakcií, alebo výskytov iného riadenia, sa poskytujú cez API vrstvu 40 do riadiacej vrstvy 30 a špecifickejšie cez vstupné porty 32 do časti 31 riadiacej cesty komponentu. Pri užívatelskej interakcii alebo výskyte iného riadenia sa riadiace funkcie 15 komponentu 11 vykonajú v časti 31 riadiacej cesty komponentu a vytvoria udalosti, ktoré zahŕňajú nové parametre pre spracovanie v reálnom čase. Všetky udalosti sú vzorky presne časovo pečiatkované a vložené do prvej fronty 34 udalosti. Udalosti sa potom poskytnú z fronty do časti 21 DSP cesty komponentu 11, aby zabezpečili spracovanie s novými parametrami v reálnom čase. Taktiež je možné do časovej pečiatky dat budúcu hodnotu, čo umožňuje oneskorit dopad udalosti a takto interakciu do budúcnosti.0044 Funkcie 14 reálneho času, ktoré sa vykonávajú v časti 21 DSP cesty komponentu, využívajú parametre poskytnuté spolu s udalosťou v okamihu uvedenom ćasovou pečiatkou. Ak časová pečiatka udalosti nastane v strede dĺžky audio rámčeka, rámček možno rozdeliť v časti 21 DSP cesty komponentu na dve alebo viac častí. Prvá časť sa potom spracováva so starými parametrami a druhá časť s novými. Delenie rámčeka sa vykoná len pre tie komponenty 11, 12 a 13 ktoré ovplyvňujú príslušný interakciu, ostatné komponenty zostanú nedotknuté.0045 Spracovanie v časti 31 riadiacej cesty komponentu nemusi viest len k udalostiam deñnujúcích parametre pre spracovanie v reálnom čase v časti 21 DSP cesty komponentu, ale taktiež k udalostiam pre spätnú väzbu používateľovi. V tomto prípade zodpovedajúce udalosti sú vstupom do druhej fronty 35 udalosti. Rovnako spracovanie v časti 35 DSP cesty komponentu v reálnom čase môže viesť k udalostiam s informáciami, ktoré sa napríklad majú prezentovať používateľovi. Taktiež tieto udalosti sú vstupom do druhej fronty 35 udalostí. Udalosti v druhej fronte 35 udalostí sú výstupom cez výstupné porty 33 časti 31 riadiacej cesty komponentu a API vrstvy 40 na užívateľské rozhranie (nie je zobrazené).0046 Treba poznamenat, že predkladané uskutočnenie sa môže taktiež uskutočniť napriklad s jedinou frontou udalostí, čiže bud s frontou 34 vstupných udalosti, alebo s frontou 35 výstupných udalosti. Na druhej strane taktiež možno zabezpecit množstvo front udalostí pre vstup a/alebo výstup.0047 DSP engine 22 spája komponenty 11, 12 a 13, aby vytvorili spracovateľskú sietí0048 V rámci siete DSP engine 22 spôsobuje, že komponenty 11, 12 a 13 bežia sekvenčne po časti riadiacej cesty súvisiaceho komponentu a časti DSP cesty súvisiaceho komponentu v poradí definovanom potrebami funkčnosti audio spracovania. Keď originálne audio dáta spracovali všetky požadované komponenty 11, 12 a 13, výstup posledného komponentu možno bok po bloku ukladať do vyrovnávacej pamäte na prezentáciu. Taktiež môžu byť špeciálne komponenty, ktoré hierarchicky obsahujú viacero individuálnych komponentov. Tieto komponenty sa môžu nazývať sub-engines.0049 Fungovanie systému 1 audio spracovania podľa obrázkov 1 a 2 je zhrnuté na postupovom diagrame podľa obrázku 3.0050 Ked si DSP engine 22 zvolí konkrétny komponent 11, 12 a 13 na vykonávanie, audio dáta sa spracúvajú v časti 21 DSP cesty zodpovedajúceho komponentu s konštantným spracovateľským výkonom. Súčasne vždy keď je treba sa spracúvajú všetky riadiace signály v časti 31 riadiacej cesty zodpovedajúceho komponentu. Udalosti vygenerované na základe riadiacich signálov sa označia ćasovou pečiatkou a zariadia do fronty. Udalosti vo fronte 34 sa poskytujú vo svojom vstupnom poradi časti 21 DSP cesty komponentu. Časť 21 DSP cesty komponentu využíva parametre v udalostiach pre dalšie audio spracovanie dát, začínajúc od okamihu uvedenom príslušnou časovou pečiatkou udalosti. Audio spracované dáta sa poskytujú na spracovanie následným komponentom 12, ktorý potom zvolí DSP engine 22 na vykonávanie. Ak aktuálny komponent predstavuje posledný z komponentov 11, 12 a 13, spracované audio dáta sa poskytujú ako audio blok do vyrovnávacej pamate pre prezentáciu používateľovi.0051 Praktický priklad aplikácie navrhovaného prístupu je trojdimenzionálna audio počítačová hra. Keď prezentovaná postava v počítačovej hre stojí, riadiaca cesta 20 už nevykonáva 3 D výpočet. Keď sa postava pohybuje rýchlo, riadiaca cesta 20 vypočítava konverzie parametrov z 3 D súradnlc do formy, ktorú algoritmus interpretujúci 3 D audio, akceptuje vykonanie v DSP ceste 20. V oboch prípadoch je počet 3 D výpočtov vykonávaných na DSP ceste 20 rovnaký.0052 Kým systém 1 audio spracovania prezentovaný na obrázkoch 1 až 3 je jednoprocesorový systém využívajúci viacero ciest, spracovanie možno taktiež vykonávať inými separátmi procesmi jednoprocesorového systému.0053 Ďalej spracovanie možno výhodne vykonávať v mnohoprocesorovom systéme v jednom alebo viacerých procesoch. Obrázok 3 predstavuje takýto viacprocesorový systém 5. Systém 5 znovu obsahuje množstvo komponentov 51, 52 a 53 audio spracovania, ktoré zodpovedajú v

MPK / Značky

MPK: G10H 1/00, G06F 9/46

Značky: spracovania, audio, systém

Odkaz

<a href="http://skpatents.com/12-e5972-system-audio-spracovania.html" rel="bookmark" title="Databáza patentov Slovenska">Systém audio spracovania</a>

Podobne patenty