Nerds.dk - Hifi, Stereo & Lyd Community

Windows Vista Audio

Denne artikel giver et overbliksbillede over Windows Vista’s nye audioarkitektur.

I denne artikel vil jeg gennemgå hoveddelene af Windows Vista’s audioarkitektur, så letforståeligt som muligt. Nogle dele vil blive overfladisk beskrevet, andre dele vil være mindre tilgængelige (ahemn). De mere komplekse dele kan man godt springe over, man kan stadig lære noget af de andre dele. Jeg skal beklage at billederne er taget fra en engelsksproget version af Vista, da det er den jeg arbejder med, men det skulle stadig være forståeligt for de fleste. Artiklen er struktureret så den er en blanding mellem slutbruger information og information til dem der gerne vil vide hvad der foregår under motorhjelmen.

Individuel volumenkontrol. Før Vista var det ikke muligt at justere lyden for hvert program via mixeren. Det kan man nu. Samtidig er der en master volumen som intet program kan ændre på. Denne volumen er det udelukkende brugeren der kan ændre. Et simpelt eksempel på hvornår det kan være nyttigt er systemlyde. For det kan være ganske irriterende at systemlyde brager igennem når man hører høj musik. Dog skal det bemærkes at mange af Vista’s systemlyde er ganske nænsomme og anonyme. Under XP har jeg deaktiveret systemlyde fordi de blev for irriterende, det har endnu ikke været nødvendigt under Vista. Men hvad mere er, volumenstyringen er relativ. Det betyder at hvis man halverer mastervolumen vil alle andre volumener blive skaleret til halv størrelse så de maksimalt kan opnå middel volumen.


Den maksimale volumen og den aktuelle volumen kan ses når der klikkes på ikonet.


Holdes musen over lydikonet vises lidt info om enheden og volumen - her en USB DAC med maksimal volumen.





Her ses den primære brugergrænseflade til mixeren.
Her man kan både indstille og se volumen for de programmer der er åbne. Her ses, fra venstre:

1. 2. 3.

master volume; denne volumenkontrol kan intet program ændre, det er positivt for så undgår man pludselige "chock effekter" hvis et program skruer volumen op til max; som noget nyt i Vista viser alle volumenkontroller samtidigt den aktuelle volumen. windows lyde; denne volumenkontrol styrer lydstyrken for windows indbyggede lyde. foobar2000; et musikprogram der pt kører.


Enheder. Når audiosignaler forlader applikationerne og forsvinder ind i Vista’s kerne bliver de via en driver routet til en enhed. Denne enhed er den hardware som i sidste ende modtager signalet. Det kan f.eks. være en HD Audio højttalerudgang på bundkortet eller et USB lydkort. Om signalet går videre som SPDIF fra USB lydkortet kan operativsystemet ikke vide noget om. Fra operativsystemets synspunkt er slutpunktet en analog udgang, et USB lydkort eller lignende. Derefter har det ingen kontrol over hvad der sker. I kontrolpanelet kan man åbne lydindstillinger. Her kan man se indstillinger for afspille- og optageenheder. Samtidig kan man se aktuel volumen. Det gør det også lettere at diagnosticere lydproblemer. Hvis Vista ikke viser nogen lyd kan man se på lydkilden. Hvis Vista viser lyd, kan man istedet se på audio hardwaren også kaldet slutpunkterne (end-points), som kan være mikrofoner, højttalere, konvertere, m.m. Man kan udfra dialogvinduet bl.a. se:
hvilke enheder er der
hvad hedder de
virker de
er de sat til
signalstyrke




Shared-Mode. Shared-Mode er en betegnelse der dækker over den del af Vista audioarkitekturen som almindeligvis er i brug. De fleste applikationer vil bruge Shared-Mode. Som vi skal se i de næste sektioner har Shared-Mode en række effekter og indbyggede muligheder der gør at brugeren let kan optimere lyden til dennes lokale forhold. Når Shared-Mode anvendes deles programmerne om at bruge enheden (lydkortet). Men i Exclusive-Mode overtager en enkelt applikation fuldstændigt enheden og skaber en hurtig og effektiv vej direkte til hardwaren, udenom al den mekanik Vista har til at gøre livet lettere for den almene programmør og dennes applikation. Jeg har kort nævnt kernen, men hvad er det for en størrelse. Der er en skarp separation mellem kernen og det der ligger udenfor kernen i et operativsystem. Kernen den del af operativsystemet der har tættest kontakt med hardwaren. Det er der driverne ”lever”. Det er der signaler der er på vej til verdenen udenfor computeren konvergerer mod driverne og videre ud i hardwaren. Hvis noget går galt i kernen kan det være ganske katastrofalt og resultere i at hele operativstystemet går ned. Det betyder populært sagt at vi får den blå skærm (”Blue Screen of Death” – BSoD). Derfor er man generelt interesseret i at holde så meget infrastruktur udenfor kernen som muligt og i at de dele der befinder sig i kernen ikke har fejl. I modsætning til udenfor kernen hvor det ikke er fatalt blot fordi et program går ned. Det kan genstartes uden at få konsekvenser for resten af systemet.
Her kan man se lidt af Vista’s audioarkitektur. Microsoft’s driver befinder sig i kernen, mens hele audio platformen befinder sig udenfor kernen og dermed ikke kan få denne til at crashe.
Lav-niveau WASAPI-modulet (Windows Audio Session API (Application Programming Interface)) er ”the last line of defense”, fra applikationens synspunkt, før kernen. WASAPI kan ses som en slags automat som andre moduler og applikationer betjener sig af. De bruger automaten til at indsende audiosignaler videre til hardwaren. De kommer ikke tættere på hardwaren. Der er andre mere grovkornede moduler der hviler på WASAPI-automaten. Efter WASAPI findes Windows’ subsystem med mixer og effekter. LFX og GFX står for henholdsvis Local Effects og Global Effects. LFX anvendes på signaler der endnu ikke er mixede mens GFX anvendes på det mixede signal før det sendes til driveren. I det kommende vil vi se eksempler på både LFX og GFX i Vista. Mixeren i diagrammet er repræsenteret med X’et i ellipsen.
Diagrammet her stammer oprindeligt fra Larry Osterman’s hjemmeside (blog); Larry Osterman er en af arkitekterne bag Vista’s audio-arkitektur. Det kan se ganske intimiderende ud, det gjorde det i hvertfald for mig da jeg så det første gang, men lad os se på hvad tingene egentligt betyder. Det skal også siges at den kun viser en del af billedet. Den viser ikke optagevejen og somsagt ikke Exclusive-Mode, men det kommer senere. Den grønne vej har jeg tilføjet for at indikere en enkelt applikations audio-signal på vej gennem systemet og ned til driveren.

Hver applikation lever i sin egen operativ system-proces. En operativ system-proces er et beskyttet område som er isoleret fra andre processer. Audio-applikationen starter en session (”seance”) hvori den kan åbne flere audio processer (WASAPI). Når audio signalet forlader applikationen via WASAPI-snitfladen sendes det via en Cross-Process Transport (CPT) fra applikationens proces og videre til Windows Audio Service-processen. Derefter kan diverse effekter anvendes på signalet. Det er det APO (Audio Processing Object) modulerne indikerer. Indenfor det der hedder den Lokale Graf, anvendes før-mixning effekter (LFX). Et eksempel på en LFX kan være:
Styrkeudligning
Basstyring
Basboost
Højttalerudfyldning
Højttalerfantomisering
Høretelefonvirtualisering
Virtuel Surround Indenfor den globale graf ser vi mixeren. Den tar imod signaler fra de forskellige applikationer, efterhånden som de når igennem grafen og hen til mixeren. Deretfer kan der anvendes diverse Globale Effekter (GFX). Som eksempel på Globale Effekter er f.eks.:
Rumkorrektion


Det er muligt at sætte nogle prædefinerede effekter på en enhed.


Det sidste led grafen er Kernel Streaming (KST). Her sendes det mixede signal direkte til driveren i kernen. Basstyring (LFX). Basstyring går ud på at tilpasse bassen til det setup brugeren har. Hvis der er en subwoofer vil al bas blive sendt til denne. Hvis der er to fullrange højttalere vil disse begge få den bas der var tiltænkt subwooferen – f.eks. fra et surround sound signal. Delefrekvensen kan også styres så den passer til højttalerne.

Hvis bassen styres til subwoofer kaldes det Forward Bass Management, omvendt, styres bassen ud til to fullrange højttalere istedet kaldes det Reverse Bass Management. Virtuel Surround (LFX). Virtuel Surround omkoder et multikanals signal til et tokanals signal der kan blive kodet tilbage til et multikanals signal via Pro Logic dekodere. Denne effekt er nyttig hvis man har et lydkort med kun to kanaler men Pro Logic receiver. Rumkorrektion (GFX). Vista er istand til at foretage rumkorrektion. For at gøre det kræves en mikrofon der skal optage rummets responskarakteristik på en lydprøve. Mikrofonen skulle efter sigende ikke behøve at være særlig god, men jo bedre, desto bedre resultat, forstås. Styrkeudligning (LFX). Der kan være meget stor forskel på hvor højt musik lyder ved samme lydstyrke. Udover musikkens opbygning og brug af instrumenter kan det også skyldes begrænsning af den dynamiske rækkevidde og kompression. Det kan også opleves ved reklamer hvor lyden pludselig bliver meget høj så man er nødt til at skrue ned. Med styrkeudligning (Loudness Equalization) udlignes de oplevede forskelle på lydstyrken så lyden opleves subjektivt lige høj hele tiden. Det er ikke sikkert de fleste vil bruge denne egenskab når de hører musik, jeg vil ikke, men hvis man bruger et TV kort, f.eks. som en del af et HTPC setup, kan det være nyttigt. Det ville naturligvis være mere optimalt hvis der blev sat grænser for hvor meget kompression, klipning og generelt dynamikbegrænsning der må anvendes på TV reklamer. Men det er ikke til at sige hvornår eller om det nogensinde bliver en realitet. Loudness er en psykoakustisk term beskriver”oplevet lydstyrke”. Via nogle psykoakustiske modeller tilpasser styrkeudligning lyden, så den altid opfattes lige høj af menneskeøret. Speaker Fill (LFX). Har man et fuldt 5.1 eller 7.1 surround setup kan man med Speaker Fill få lyden udbredt til alle kanaler. Speaker Fill kan bruges når der er færre kanaler i signalet end der er højttalere. Speaker Phantoming (LFX). Speaker Phantoming, eller hvad vi måske kan kalde højttalerfantomisering, er en effekt der korrigerer for manglende højttalere. Hvis et surround setup f.eks. mangler en center eller anden højttaler, kan speaker phantoming splitte lyden ud til de andre omkringliggende højttalere. Hovedtelefonvirtualisering (LFX). Hovedtelefonvirtualisering (Headphone Virtualization) er en teknik til at skabe en surround sound oplevelse over høretelefoner. Det sker i praksis via nogle funktioner der på engelsk kaldes Head Related Transfer Functions (HRTF). Basboost (LFX). Basboost er en effekt der kompenserer for højttalere der ikke er fullrange ved at booste den øvre basgengivelse. Det kan give bedre oplevelser på laptophøjttalere og andre begrænsede højttalere. Exclusive-Mode. Som nævnt tidligere er Exclusive-Mode, i modsætning til Shared-Mode, en tilstand hvor en applikation kan gå ind og overtage styringen af et stykke hardware. Dermed får applikationen dedikeret og direkte vej til hardwaren. Er det bitperfekt reproduktion man søger, er dette vejen frem.




Aktivering af LFX og GFX. Af: Anders Fomsgaard Jeg sad forleden og rodede med Vista registry, og gjorde en interessant opdagelse i følgende registry entry: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows \CurrentVersion\MMDevices\Audio\Render\+CLSID FOR LYDKORT]... Det er nemlig her at Vista's DRC (Digital Room Correction) Bass Management (Crossover), Loudness, samt Speaker Fill (Upmix til x.1) enables på onboard og HDA- ("Intel High Definition Audio") kompatible lydkort. Hvis man har et onboard eller andet HDA-kompatibelt lydkort, kommer der under "CLSID", udover en "properties", en "FXproperties", som aktiverer Vistas højt profilerede features. Nu er det imidlertid sådan at ikke alle har eller gider at anvende et onboard lydkort til afspilning fra HTPC til lydanlæg, men derimod har investeret mange penge i et dyrt lydkort, som ikke understøtter disse funktioner, dvs. de er ikke "HDA"-kompatible. Vil man alligevel bruge disse features, kan det godt lade sig gøre med en simpel manøvre. Start regedit og find nedenstående entry i registry: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows \CurrentVersion\MMDevices\Audio\Render\] Her skal du så kigge lidt, fordi der er en del "entries" (foldere) - nogen til digital lyd, nogen til speakers, nogen til headphones osv. Dem vi er interesseret i er først og fremmest "speakers". De kan findes ved at klikke på de forskellige CLSID'er (numre i "tuborg"-parentes) og under Clsid'ernes properties.
På billedet har jeg fundet mit lydkort (Turtle Beach Montego DDL Device). Tryk for at forstørre.
Når du har fundet dit lydkort i en entry, hvor man samtidigt kan se at der er en entry med "Speakers" (se ovenfor), højreklikker du på properties, folder og eksporterer entry'en til f.eks. desktop og kalder den eks. "temp.reg" Dernæst højreklikker du på CLSID'et (dvs. folderen hvori du fandt den entry du eksporterede) og vælger permissions, og dernæst advanced. Herefter finder du en faneblad, der hedder "owner" eller "ejer", på dansk, belyser så administrators eller den nuværende bruger og klikker på apply/anvend. Så kommer du tilbage til forrige vindue hvor du så giver fuld kontrol til dig selv over registry entry'en. Dernæst åbner du notepad og kopierer samt indsætter følgende: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows \CurrentVersion\MMDevices\Audio\Render\{erstat mig med clsidnr...}\FxProperties] "{b725f130-47ef-101a-a5f1-02608c9eebac},10"= "Microsoft Audio Home Theater Effects" "{d04e05a6-594b-4fb6-a80d-01af5eed7d1d},1"= "{62dc1a93-ae24-464c-a43e-452f824c4250}" "{d04e05a6-594b-4fb6-a80d-01af5eed7d1d},2"= "{637c490d-eee3-4c0a-973f-371958802da2}" "{d04e05a6-594b-4fb6-a80d-01af5eed7d1d},3"= "{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}" "{d04e05a6-594b-4fb6-a80d-01af5eed7d1d},0"= "{00000000-0000-0000-0000-000000000000}" Når du har gjort dette, højreklikker du på den registry-fil du eksporterede og vælger edit/rediger og finder derpå CLSID'et på dit lydkort (det første nummer i tuborg parentes). Dette kopierer du og indsætter i notepad-dokumentet, som anvist ovenfor. Dernæst trykker du gem, i notepad, og kalder den f.eks. "ETELLERANDET.REG". Dernæst kan du importere registryfilen og du vil således få HDA-features på dit lydkort. Se mere her.


Exclusive-Mode er som sådan ikke noget den almindelige bruger er klar over eller bevidst bruger. Men visse programmer kan altså gøre brug af denne mulighed. Det kendes fra Windows XP og Kernel Streaming der på samme måde skabte en vej helt uden om den gamle og forældede 16 bit Kmixer. Nedenfor er endnu et diagram der afbilleder Vista’s audioarkitektur. Denne gang kan man se datavejen for både Shared-Mode og Exclusive-Mode. Diagrammet er ret teknisk, men der skulle være et par begreber der virker genkendelige.
Som det kan ses på diagrammet går Exclusive-Mode helt udenom audio service subsystemet. Vejen går via fra WASAPI snitfladen direkte til en User/Kernel-Mode buffer, dvs en buffer som bruges til at flytte data over i OS kernen. Herfra går vejen direkte til driveren, hvorefter det krydser over i hardware domænet. En buffer er blot et sted hvor man midlertidigt opbevarer en serie bits. Her, en del af audiosignalet. Jeg har tegnet vejen begyndende fra WASAPI fordi det er det tætteste applikationen kommer på driveren og hardwaren. Det er en lav-niveau snitflade hvorpå andre store systemer ligger, som det også kan ses på diagrammet.
Anvendes WASAPI i Exclusive-Mode, så er vejen meget direkte.

Multible Enheder. Indtil videre har vi set hovedarkitekturen, med fokus på Shared-Mode og Exclusive-Mode. Men hvordan med flere enheder (også kaldet slutpunkter)? Hvad hvis vi har flere lydkort? Her er først et andet diagram fra Microsoft der abstrakt viser flere applikationer og vejen ned til drivere og hardware. Diagrammet viser HDA-driverne og den ældre PortCI-driver. Men der er også USB og Firewire slutpunkter. Det vil vi se nærmere på senere. Men det er også pointen i det her diagram, der er kun et enkelt slutpunkt, en enkelt enhed som alle applikationerne sender til og altså her en HDA kompatibel enhed. Det kunne f.eks. være et on-board audio codec.

Figuren viser flere slutpunkter i funktion. Det er der sådan set ikke nogen magi i. Hvert slutpunkt har sin egen pipeline med lokale effekter, globale effekter og en mixer.




Intel High Definition Audio (HDA). Indenfor hardware verdenen findes der en række standarder og specifikationer. Disse bruges til at sikre at tingene kan arbejde sammen som de skal. Det være sig enten hardware imellem eller hardware og software imellem. Standarderne betyder også at kunder ved hvad de får når de køber noget. Står der Intel High Definition audio codec på en bundkortspecifikation kan man regne med et minimum af funktionalitet, egenskaber og garantier. Intel HDA er afløseren for AC’97 (Audio Codec ’97) standarden, der tidligere var den herskende standard for computer audio. I lighed med HDA er AC’97 også skabt af Intel. Den er relevant for bl.a. lydkort og onboard. AC’97 specificerede hardware med op til 2 kanaler á 20 bits præcision opløst i 48 kHz. HDA specificerer hardware med op til 8 kanaler á 32 bits præcision opløst i 192 kHz eller mere. [table:100% border=1">
Codec AC’97 HDA

Kanaler
2 8


Præcision
20 b 32 b


Opløsning
48.000 Hz 192.000 Hz


Båndbredde
1.920.000 b/s 49.152.000 b/s


Derfor er HDA et ret dramatisk fremskridt ift AC’97. Samlet set har HDA over 25 gange mere information (eller informationstæthed – information over samme tid) end AC’97 og per kanal over 6 gange mere information. Indenfor det digitale domæne vil en højere bitrate teoretisk medføre en mere troværdig analog gengivelse, hvis konverteren ellers magter opgaven og hvis kildematerialet vel og mærke i forvejen er i denne definition. Hvis kildematerialet ikke er i den høje opløsning, kan der også anvendes upsampling og interpolation for at skabe en mere analog kurve. Antal kanaler, præcision for hver lydprøve, samt antallet af lydprøver i sekundet er det jeg samlet vil kalde signalets definition eller båndbredde. Desto højere definition desto bedre. Med introduktionen af Azalia, som er kodenavnet for HDA, har Intel øget niveauet for hvilken lydkvalitet man kan forvente ”ud af kassen” på en PC. Det kan kun være gavnligt og må betyde endnu bedre lydkort, hvis disse da ikke vil miste relevans. Udover højere definition, tilbyder HDA også ”jack-retasking”. Det betyder at HDA automatisk kan opdage hvis et slutpunkt kobles til hardwaren men samtidig også er istand til at korrigere for forkert tilkobling. Hvis en mikrofon sættes til et forkert stik, kan HDA automatisk ændre anvendelsen af stikket til mikrofonbrug. Det er en egenskab der for mange brugere kan være praktisk, selvom den ikke tilfører nogen højere definition. Microsoft Universal Audio Architechture (UAA). Som pendent til Intel´s HDA, har Microsoft med Vista introduceret UAA – software platformen for HDA. Microsoft’s UAA-driver er istand til at samarbejde med vilkårligt HDA hardware uden at nogen 3. parts driver er nødvendig. Alligevel er det muligt at tilbyde specialiseret hardware og derfor er det stadig muligt at tilbyde udvidede drivere. UAA understøtter via klasse-drivere (drivere til lignende hardware) følgende snitflader:
USB
IEEE 1394 (Firewire)
HDA HDA understøtter følgende snitflader:
Bundkort (on-board codec)
PCI
PCI Express Med UAA- og HDA-arkitekturerne er det ikke længere nødvendigt at bruge specielle drivere med specielle kontrolpaneler for at kontrollere hardwaren. Microsoft’s UAA klasse-driver er istand til at samarbejde med alt HDA- hardware, samt USB- og Firewire-enheder. Problemet med at hvert lydkort har sit eget kontrolpanel og driver er at driveren arbejder indenfor kernen af operativsystemet, et beskyttet område som, hvis noget går galt der, f.eks. i driveren, får hele kernen og dermed operativsystemet til at gå ned. Det betyder som regel blå skærm og er der noget vi ikke kan lide, så er det blå skærm. Vista logo programmet dikterer at enhver maskine med Vista installeret skal have hardware i overensstemmelse med UAA der virker uden 3. parts driver – dvs. det skal virke ud-af-kassen med Microsofts medfølgende generiske UAA-driver. Mixer. Som en essentiel del af ethvert multimedie-operativsystem, skal der være en mixer. Mixeren sørger for at audio fra forskellige kilder bliver mixet sammen, så det kan sendes til hardwaren. Et problem med Windows XP’s mixer (Kmixer) er, at den kun opererer med 16 bit præcision. Man skulle måske tro at en 16 bit mixer er fin til at mixe 16 bit-lydkilder, men det er ikke korrekt. For at mixe 16 bit PCM med heltals præcision, kræves en 24 bit mixer, men da Kmixer kun er 16 bit, kan det ikke lade sig gøre, derfor sker der en nedgradering af lydkvaliteten allerede dér. Problemet er, at flydende kommatal (”decimaltal”) ikke er helt præcise at arbejde med. Der sker bl.a. afrundingsfejl, derfor kan man ikke uden videre sammenligne to decimaltal fordi de indeholder afrundingsfejl. Man kan kun sammenligne de to tal indenfor en vis tolerence. Et andet problem med Windows XP og Kmixer, er at systemlyde, der typisk er 22 kHz, påvirker afspilningen af andre lydkilder. Sidder man f.eks. og lytter til et stykke musik i CD kvalitet (16 bit 44,1 kHz stereo) og der kommer en systemlyd, vil systemlydens kvalitet blive fællesnævneren – dermed nedgraderes begge signaler for en stund til 22 kHz, hvilket tydeligvis ikke er ønskeligt. Det problem kan man arbejde udenom ved at bruge ASIO eller Kernel Streaming, men det er altså en uhensigtsmæssighed der er en integreret måde hvorpå Windows XP opfører sig. Med Vista’s mixer sker der ingen degradering af lydkvaliteten under mixing. Dens mixer opererer med 32 bit flydende kommatals præcision, derfor kan den sagtens mixe 16 bit signaler uden degradering. Jeg kender ikke UAA’s/Vista’s øvre frekvensgrænse, men den er minimum 192 kHz og sandsynligvis langt højere, hvis ikke blot begrænset af hardwaren. Derudover er problemet med mixning af systemlyde ikke tilstede. Systemlydene i Vista er også af en højere kvalitet og når først systemet er sat til at sende f.eks. 16 bit 44,1 kHz stereo ud, så vil alt lyd billede upsamplet til denne kvalitet.

Multimedia Class Schduler Service (MMCSS). Dette afsnit er ret teknisk men er ikke essentielt og kan springes over. Som en del af et kvalitetsforbedringerne i Windows’ audio fundament har Microsoft introduceret Multimedia Class Scheduler Service (MMCSS). Det kan forklares som følger. Når multimedieapplikationer køres har de en vis prioritet. Operativsystemet tildeler programmer tid til at udføre deres opgaver efter hvor høj en prioritet de har. Under jævne forhold er systemet ikke særligt belastet og der er tid nok til at alle applikationer kan køre uden afbrydelser. Men hvilke applikationer er mest følsomme overfor afbrydelser? Det er fx multimedieapplikationer. Sker der en afbrydelse vil lyd eller billede knække og det er en ret irriterende oplevelse. Andre programmer som Virus scannere kan sagtens køre i baggrunden uden særlig høj prioritet uden at det er en irritation for brugeren.


Hver applikation kan have et antal opgaver kørende parallelt eller serielt. En applikation lever isoleret i en ”proces” og hver opgave i en ”tråd”. Da der i realiteten ikke er hardware processorer eller kerner nok til at køre alle tråde parallelt på hardwareniveau er det nødvendigt for operativsystemet at tildele opgaverne tid hos kernerne på skift. Skiftet, kaldet et kontekstskift, sker meget hurtigt og opleves det som om systemet er fuldt ud parallelt.


Men programmer der benytter sig af MMCSS kan registrere sig med en profil. Denne profil indikerer hvilken type applikation og dermed hvilke behov den har. For programmer der kræver det, kan MMCSS køre dem med prioritet 26. Det er den absolut maksimale prioritet og kun ultrakritiske komponenter som hukommelsesstyring har højere prioritet. Denne service er også beregnet til professionelt audio. Det kan eksempelvis være software til at lave musik. For musikeren betyder det typisk endnu mere at ha meget lav latency og i stressede situationer kan MMCSS medvirke til det. Effekten af denne kørsel er at billede stadig kan køre selvom computerens ressourcer er stresset. I ekstreme tilfælde vil selv billede ikke kunne køre i realtid men lyden vil stadig kunne eksekveres i realtid. Det er ganske vigtigt for brugerens oplevelse af hvor stabilt et system er. Det er langt fra alle multimedieprogrammer der endnu benytter sig af den nye MMCSS service men den medfølgende applikation Windows Media Player (WMP) benytter sig af MMCSS. Som de fleste har bemærket er Vista et mere krævende operativsystem end forgængeren. Men en service som MMCSS kan i en vis udstrækning imødekomme konsekvenserne af et mere ressourcekrævende system. Som almindelig konsument af software behøver man ikke bekymre sig om MMCSS, men alligevel kan det betale sig at være opmærksom på om den software man benytter har implementeret MMCSS. Der er dog en vis fare i at andre typer af applikationer kan misbruge MMCSS så den ender med ikke at ha den store effekt, men i praksis skulle det ikke være noget problem pga den måde MMCSS allokerer tid. Hvilke profiler er der tale om? Her er listen , men den kan udvides:


Audio


Capture


Distribution


Games


Playback


Pro Audio


Window Manager

Hvis en applikation vælger at bruge Pro Audio profilen vil den automatisk få højere prioritet end Audio. Hver profil har en række associerede egenskaber som alle er med til at determinere programmets tidsallokering. Egenskaberne er:


Background Only


Background Priority


Clock Rate


GPU Priority


Priority


Scheduling Category


SFIO property

Background Only refererer til om en opgave er en baggrundsopgave. Baggrundsopgaver har ingen brugergrænseflade og skifter derfor ikke prioritet selvom programmets vindue får eller mister fokus. Scheduling Category er enten ”low”, ”medium” eller ”high”. Værdien er bestemmer den endelige prioritet programmet eller delopgaven får. [table:100% border=1">[tdimg:150">Kategori
High
Medium
Low
[tdimg:225">
Prioritet 23-26 16-22 8-15

[tdimg:375">Beskrivelse Til pro audio. Nær ubegrænset CPU adgang Applikationer i forgrunden Resten...

Windows Logo Program (WLP). Logo programmet er skabt for at sikre nogle minimumsstandarder for audiokvalitet i computere solgt med Windows installeret. Det er meningen at audiohardwaren skal testes på tre kerneområder. [table:100% border=1">
Kriterium
Dynamisk Rækkevidde
Total Harmonisk Forvrængning plus Støj (THF+S)
Frekvenskurve

Effekt Opfattet kvalitet Lyttetræthed Genkendelighed

For de teknisk kyndige kan det oplyses at testen skal udføres med et Audio Precision System Two-måleapparat. Mere i detaljen kan jeg ikke gå, da det tekniske omkring dette er sort magi for undetegnedes vedkommende. Men det kan anbefales at læse op på Microsofts Audio Fidelity Testing beskrivelse. Konklusion. Det er en omfattende og meget fleksibel arkitektur der befinder sig i Vista. Den skal danne basis for lyd på Windows mange år frem og den virker beredt til opgaven. Vi har set hvordan Vista nu undersøtter volumen på applikationsbasis, hvordan 3. parts drivere i langt mindre grad vil være nødvendigt med fremtidens hardware og hvordan Vista kan tilpasse dig hardwaremiljøet med sofistikerede effekter. Driverne eksisterer stadig i kernen men størstedelen af arkitekturen ligger udenfor kernen og kan derfor ikke crashe operativsystemet. Dertil kommer en helt ny 32 bit mixer der fjerner problemet med degradering af lydkvalitet som XP døjede med. Vista har også funktionalitet som MMCSS der er med til at gøre det velegnet til krævende software som professionelle audio applikationer der kræver lav ventetid og prioritet over andre applikationer og processer i systemet. Alt i alt må man sige at Microsoft endelig og for alvor har taget arbejdshandsken på. XP virker allerede som fjern fortid.

Referencer:
windowsvistablog.com/blogs/windowsvista/articles/450038.aspx
blogs.msdn.com/larryosterman/archive/2006/03/07/545451.aspx
msdn2.microsoft.com/en-us/library/ms679160.aspx
www.microsoft.com/whdc/device/audio/sysfx.mspx
www.microsoft.com/whdc/device/audio/sysfx.mspx
www.intel.com/design/chipsets/hdaudio.htm
docs.sun.com/source/806-3568/ncg_goldberg.html
blogs.msdn.com/audiofool/archive/tags/Audio/default.aspx
msdn2.microsoft.com/en-us/library/ms684247.aspx For yderligere information, kontakt: Microsoft Danmark Tuborg Boulevard 12 2900 Hellerup Tlf.: 44 89 01 00 Mail: danmark@microsoft.com Web: www.microsoft.dk




Brugermenu

Brugernavn:

Adgangskode:

Markedspladsen

Der er ingen annoncer på brugtmarkedet pt.