Så här använder du dynamisk omfångskontroll
[Funktionen som är associerad med den här sidan, Windows Media Format 11 SDK, är en äldre funktion. Det har ersatts av Source Reader och Sink Writer. Source Reader och Sink Writer har optimerats för Windows 10 och Windows 11. Microsoft rekommenderar starkt att ny kod använder Source Reader och Sink Writer i stället för Windows Media Format 11 SDK, när det är möjligt. Microsoft föreslår att befintlig kod som använder äldre API:er skrivs om för att använda de nya API:erna om möjligt.]
Det dynamiska intervallet för en bit ljudinnehåll är i princip skillnaden mellan den lägsta volymen och den maximala volymen. Om innehållets dynamiska omfång är för högt kan användarna behöva justera volymen upprepade gånger under uppspelningen. Filmer har till exempel ofta ett högt dynamiskt omfång. Ofta när volymen justeras så att dialogrutan kan förstås under tysta scener, är andra delar av filmen med musik eller ljudeffekter högre än önskat.
Windows Media Audio 9 Professional och Windows Media Audio 9 Lossless codecs stöder en funktion som kallas dynamisk omfångskontroll. Vid kodningstillfället beräknar codec högsta och genomsnittliga amplitudvärden i innehållet, och skrivarobjektet lagrar dessa värden i metadata för dataströmmen när kodningen är klar. Ett program kan också skriva "målvärden" som metadata som spelarprogram och avkodaren kan använda som tips när filen spelas upp. Vid uppspelning kan ett program ange vilken nivå av dynamisk omfångskontroll som ska tillämpas på ljudströmmen.
Windows Media Player implementerar dynamisk omfångskontroll som funktionen Tyst läge.
När du ska använda dynamisk omfångskontroll
Dynamisk omfångskontroll kan ändra innehållets ljud. Därför bör du inte konfigurera programmet så att det använder dynamisk omfångskontroll automatiskt. Ge istället användarna möjlighet att efter behov aktivera eller inaktivera dynamisk omfångskontroll.
Använda dynamisk intervallkontroll
Vid uppspelning aktiveras dynamisk omfångskontroll med hjälp av utdatainställningen g_wszDynamicRangeControl. Använd IWMReaderAdvanced2::SetOutputSetting för att konfigurera inställningen. Värdet noll (standardvärdet) anger att det dynamiska intervallet inte ska ändras. Ett värde på 1 eller 2 signalerar att codec ska utföra dynamisk omfångskontroll, där 1 är en måttlig nivå av dynamisk omfångskompression och 2 är en hög nivå av dynamisk omfångskompression.
Vid kodningstid eller uppspelningstid kan du ge mål-PCM-värden för codec för de högsta och genomsnittliga nivåerna genom att ange WM/WMADRCPeakTarget och WM/WMADRCAverageTarget attributen. Dessa värden lagras som metadataattribut och bör nås med hjälp av metoderna i IWMHeaderInfo3-gränssnittet. När du kodar en ljudström med hjälp av den professionella eller förlustfria codecen ställs WM/WMADRCPeakReference och WM/WMADRCAverageReference attribut automatiskt in på topp- och genomsnittsnivåerna för det ursprungliga innehållet. Målvärdena är inställda på samma värden som referenserna som standard.
Avkodaren vid uppspelningstiden beräknar det dynamiska intervallet baserat på den valda nivån för dynamisk intervallkontroll och målvärdena (om några anges). Möjliga intervall visas i följande tabell.
Inställningar | Utbud av levererat ljud |
---|---|
g_wszDynamicRangeControl = 0 (vilka som helst målvärden) | Samma intervall som det ursprungliga innehållet. |
g_wszDynamicRangeControl = 1 (Målvärden lika med referensvärden) | Medelnivån bibehålls och toppar begränsas till genomsnittet +12 dB. |
g_wszDynamicRangeControl = 2 (Målvärden lika med referensvärden) | Medelnivån bibehålls och toppar begränsas till genomsnittet +6 dB. |
g_wszDynamicRangeControl = 1 (Målvärden har angetts) | Genomsnittlig nivå inställd på målgenomsnittsvärdet och toppar som är begränsade till måltoppvärdet. |
g_wszDynamicRangeControl = 2 (Angivna målvärden) | Genomsnittlig nivå inställd på målgenomsnittsvärdet och toppar begränsade till medianvärdet för målgenomsnittet och måltoppvärdena. |
Observera att dynamisk omfångskontroll endast är en funktion för avkodning och endast finns som metadata i själva filen. De här inställningarna påverkar inte innehållet som lagras i filen om du inte uttryckligen instruerar avkodaren att använda dem. Windows Media Format SDK innehåller inga metoder för att ändra det dynamiska intervallet för ljuddata vid kodningstillfället.
Relaterade ämnen