Noen som vil teste ut lydkorreksjon og / eller digital XO?

K

knutinh

Gjest
Veggen skrev:
Veldig godt poeng Stig, jeg har bedrevet romkorreksjon via PC og squeezebox i over et år nå og tør ikke tenke på hvor mange ganger jeg måtte ha prosessert hele musikksamlingen på nytt. Det er alltid noen endringer og små tweak av anlegg og parametre som gjør at man må lage nye filtre.
Bedre å satse på å gjøre det i realtime, alle normale PC'er har ytelse nok til det nå til dags.

En god grunn til å forhåndprosessere er hvis man spiller fra en enkel nettverksserver med lav ytelse, men behold for all del en original kopi av samlingen.
Det er selvsagt store drawbacks ved å gjøre det slik. Fordelen er at avspilleren kun skal spille av en tilsynelatende helt vanlig pcm-strøm. Disse set-top-boksene som streamer media fra PC-en, f.eks. Eller hva med en helt vanlig CD-spiller med brente plater som inneholder "gratis" romkorreksjon? =)

Det er kanskje uansett en ting man ikke gjør i innkjøringsperioden...

-k
 

Veggen

Hi-Fi freak
Ble medlem
11.04.2006
Innlegg
1.224
Antall liker
6
knutinh skrev:
Det er kanskje uansett en ting man ikke gjør i innkjøringsperioden...
Blir man noengang ferdig med innkjøringsperioden?
Vi gærninger har alltid noe som skal testes eller tweakes... ;)
 

Bx

Bransjeaktør
Ble medlem
04.08.2005
Innlegg
9.203
Antall liker
4.602
knutinh skrev:
Det er en stund siden jeg har holdt på med dette så jeg håper at du godtar rusten kunnskap :)

Vi må skille mellom kvantisering av koeffisienter, som gir feil/unøyaktigheter i filterfunksjonen, og kvantisering i multiply/accumulate som gir kvantiseringsstøy.

En wav-fil er basert på integer, ikke flyttall. Hvis koeffisientene dine lagres som f.eks 16bit wav så er koeffisientene trunkert for evig og alltid uansett hva oppløsningen er i senere utregninger (dette vet du selvsagt).

Jeg anbefaler "Digital Signal Processing, principles, algorithms and applications", Proakis & Manolakis, kap. 7.6 Quantization of filter coefficients pp 569.

In the realization of FIR and IIR filters in hardware or in software on a general-purpose computer, the accuracy with wich the filter coefficients can be specified is limited by the word length of the computer or the length of the register provided to store the coefficients. Since the coefficients used in implementing a given filter are not exact, the poles and zeros of the system function will, in general, be different from the desired poles and zeros. Consequently, we obtain a filter having a frequency response that is different from the frequency response of the filter with unquantized coefficients.
Feilen man gjør er sterkt avhengig av den faktiske filterfunksjonen. Det er relativt greit å beregne avviket for frekvensresponsen i Matlab mellom en høyoppløst og kvantisert versjon av IR.

Kvantiseringsstøyen i multiply/accumulate er en annen sak, og såvidt jeg forstår det "ute av dine hender" siden du bare tilbyr en IR? Boka nevnt over går i kapittel 7.7.3 (pp 590) igjennom "Statistical Characterization of Quantization effects in Fixed-Point Realizations of Digital Filters". Nå er det rett nok flyttalls-implementasjon du er interessert i.

For flyttall så er vel strengt tatt kvantiseringsstøy i FIR filtrering normalt ikke noe man trenger å bekymre seg over, med mindre implementasjonen har kåla det til?

-k
Waveformatextensible støtter float bare så det er sagt. Jeg tror også forgjengeren waveformatex gjør det. Så filtrene kommer i float32 selv om filen heter *.wav. Men musikken kommer nok helst i 16 bit, konverteres til float og så skjer beregningene i float.

Jeg har et par DSP bøker. Proakis og Manolakis er en av dem. Men en ting er å beregne dette på integer tall. Noe helt annet er å beregne det på float, hvor 1 + svært lite tall = 1. Der er det ikke så mye å hente i lærebøkene. Du har nok rett i at float holder rikelig, men det hadde vært greit med detaljkunnskaper på området.
 

LydMekk

Hi-Fi freak
Ble medlem
01.08.2003
Innlegg
2.306
Antall liker
2
Veggen skrev:
knutinh skrev:
Det er kanskje uansett en ting man ikke gjør i innkjøringsperioden...
Blir man noengang ferdig med innkjøringsperioden?
Vi gærninger har alltid noe som skal testes eller tweakes... ;)
Synes for egen del det har blitt mye MERE tweaking etter at jeg fikk tilgang til PCen i anlegget. Er en del forskjell på gjengivelse fra ulike programmer også. Ny dimensjon...

OnTopic: Kunne tenkt meg å prøve litt filteroppsett og aktiv drift i løpet av vinteren. Me får sjau...
 

TEK

Overivrig entusiast
Ble medlem
10.02.2002
Innlegg
912
Antall liker
108
Sted
Trondheim
Torget vurderinger
1
theStig skrev:
knutinh skrev:
Merk at når Bx først har generert FIR-filteret sitt så bør det være mulig å forhåndsprosessere wav-fila. Hvorfor skull man ønske det? Hvis man har disken full av en rippet CD-samling så blir kravene til avspiller-ytelse minimal siden prosesseringen er gjort en gang for alle.
Litt upraktisk hvis/når man vil endre på noe, og man trenger et nytt FIR filter....
'

Jeg tror jeg ville ha valgt en litt annen angrepsvinkel på dette.
1) En har mulighet til å angi en mengde diskplass som programmet får lov til å benytte som cache
2) Programmet detekterer selv om det har en preprosessesert utgave med det gjeldende filteret for filen som spilles
Dersom det har det benyttes denne filen istedenfor original-filen og en sparer prosessorkraft.
Dersom filen ikke tidligere er prosessert eller filteret er utdatert lagres en preprosessert utgave samtidig som filen spilles av.
3) I tillegg kommer muligheten for å preprosessere alle filer eller et utvalg filer.
Her skulle jeg gjerne sett funksjonalitet ala "mest spilt sist ... osv)
Dette tror jeg dog er uhensiktsmessig å implementere som en del av dette programmet. En burde heller kunne hente dette via andre programmer, for eks. WMP sine spillelister.

Jeg tror en med stor sikkerhet kan si at normalt bruksmønster er at det er et antall sanger som blir spilt mye, mens mange andre aldri blir spilt. Derfor kan en slik cache løsning spare mye prosessorkraft totalt.

Jeg tror videre at det er viktig å ha mulighet til å pre-prosessere filene ettersom en ved bruk av HTPC ved en del tilfeller trenger prosessorkraften til andre oppgaver, for eks. ffshow m.m.

TEK
 

nma

Hi-Fi freak
Ble medlem
07.12.2003
Innlegg
4.745
Antall liker
544
Torget vurderinger
1
Romkorreksjon krever ikke masse CPU-kraft når vi snakker om dagens prosessorer etter det jeg forstår. Arbeides det også med en API hvor FDDshow lignende filtre blir utført av selve skjermkortet? Jeg mener å huske å ha lest noe om det, problemet er at det skjer så mye hele tiden at det er umulig å være 100% oppdatert om man ikke aktivt fordyper seg i dette.
 
K

knutinh

Gjest
Man skrev:
Romkorreksjon krever ikke masse CPU-kraft når vi snakker om dagens prosessorer etter det jeg forstår. Arbeides det også med en API hvor FDDshow lignende filtre blir utført av selve skjermkortet? Jeg mener å huske å ha lest noe om det, problemet er at det skjer så mye hele tiden at det er umulig å være 100% oppdatert om man ikke aktivt fordyper seg i dette.
Signalbehandling krever nesten pr def masse kraft. I det øyeblikket ny saftig hardware kommer på markedet så justeres kravene fra brukerne for å fylle den opp :)

Det gjøres endel for proffe lyd-brukere med skjermkort. Problemet er vel båndbredde mellom skjermkort og cpu, og at utviklerne må skrive proprietær software.

For den lille nisjen som FFDShow er lønner det seg kanskje heller å putte inn 4x quad-core og heller la en begrenset open-source utviklerbase konsentrere seg om gode algoritmer?

-k
 

Bx

Bransjeaktør
Ble medlem
04.08.2005
Innlegg
9.203
Antall liker
4.602
knutinh skrev:
Signalbehandling krever nesten pr def masse kraft. I det øyeblikket ny saftig hardware kommer på markedet så justeres kravene fra brukerne for å fylle den opp :)
Per i dag kan jeg kjøre en video på min 5 år gamle laptop med lydfiltrering i 6 kanaler. Da er det ikke ekstern skjerm tilkoplet så grafikkprosessen er så enkel som den kan bli. Dette kjører i 48kHz, men jeg synes ikke belastningen er avskrekkende.

Hvisnår høyoppløste billedformater kommer for alvor vil det kreve mye mere CPU- og/eller GPU-kraft. På Core Duo maskinen klarer jeg ikke å se forskjell på CPU-belastningen ved et par kanalers lydkorreksjon eller ei for øyeblikket. Vanlige PC-er har mye å gå på her og jeg tror at grafikken blir mye mer dimensjonerende for PC-ene enn lydbehandlingen framover.

For hver dobling av samplingfrekvensen så øker belastningen ca med 2x. Hvis man skal beholde samme oppløsning i bassen (hvilket strengt tatt kanskje ikke er nødvendig) så må man også ha et filter med dobbelt så mange samples. Og da har belastningen totalt økt med ca 6x. Man skal ha MANGE utgangskanaler å lydprosessere før det blir et vesentlig moment i valg av CPU. Men hvis man går over på multikanals aktive systemer - og 96 kHz - og kanskje også 192 kHz sampling så lar det seg nok gjøre å fylle opp kvoten for en god stund tror jeg.
 
K

knutinh

Gjest
Imponerende Bx.

Jeg er enig i at samplerate og antall kanaler når en praktisk grense (på f.eks 192kHz, 8 kanaler) ved at det ikke finnes kilder med høyere oppløsning.

Men tror du ikke at antall tapper, delefilter eller tilogmed ulineær korreksjon vil fylle tomrommet? Volterra-filtre?=)

-k
 

nma

Hi-Fi freak
Ble medlem
07.12.2003
Innlegg
4.745
Antall liker
544
Torget vurderinger
1
Lykke til med å fylle opp en 3ghz core2quad =)
 
T

theStig

Gjest
Spørsmål til Bx: Er delefiltrene i Audiolense linear-phase, dvs FIR filtre?

Jeg kjører mitt hjemmesnekrede opplegg i Console med plugins fra Waves. Waves LinEq drar fryktelig mye CPU. Er det riktig å anta at FIR filtre bruker mer CPU enn IIR filtre?

Mitt opplegg består av:
12 stk linear phase 48 dB/okt filtre (4 delefrekvenser, 2 kanaler) - realisert i Waves LinEq
8 stk 10-bånd parametrisk EQ - realisert i Waves Paragraphic EQ (ikke linear-phase)

I 96 kHz samplerate så fyller dette en enkelt 1,8 GHz CPU temmelig til randen.
 
K

knutinh

Gjest
theStig skrev:
Spørsmål til Bx: Er delefiltrene i Audiolense linear-phase, dvs FIR filtre?
FIR-filtre er en betingelse for å ha lineær fase.

Det er dog godt mulig å lage FIR-filtre som ikke er lineær fase.

Motsatsen, IIR-filtre er aldri lineær fase.

Det blir hevdet at typiske høyttalere (uten delefilter) er minimum-fase, og IIR-filtre er også typisk minimum-fase. Dersom man korrigerer amplituderesponsen til et minimum-fase-system med et annet minimum-fase-system så er man garantert å også korrigere fasen.

Verdien av minimum-fase til audiosystemer er etter min mening ofte overvurdert, spesielt siden disse har egne mulige utfordringer med pre-echo. De er dog vesentlig enklere å designe og man slipper naturligvis stabilitets-problemer som IIR kan ha.

-k
 
T

theStig

Gjest
Nettopp derfor har jeg valgt å korrigere høyttalerne med IIR filtre for å kunne korrigere både amplitude og fase.

Selve delefiltrene har jeg valgt å gjøre linear-phase. Dette måler mye bedre når man kikker på ting i tidsdomenet. Impulsresponsen til hele høyttaleren blir nær perfekt med slike filtre, noe den ikke blir med IIR filtre.

Jeg har også en sterk følelse av at det låter mye bedre med linear-phase delefiltre.
 

Bx

Bransjeaktør
Ble medlem
04.08.2005
Innlegg
9.203
Antall liker
4.602
theStig skrev:
Spørsmål til Bx: Er delefiltrene i Audiolense linear-phase, dvs FIR filtre?
De er først og fremst lineære. Men det går an å velge minimum fase filtre om man behøver kortere latency. Det kan være behov for dette for å synke lyd og bilde fra tid til annen - og i praksis kan man kjøre med kortere filtere også.
Jeg kjører mitt hjemmesnekrede opplegg i Console med plugins fra Waves. Waves LinEq drar fryktelig mye CPU. Er det riktig å anta at FIR filtre bruker mer CPU enn IIR filtre?
Jeg tror det er riktig å si at det er enklere å skreddersy FIR filtre til et bestemt behov OG at de bruker mer regnekraft.

Effektiviteten i den algoritmen som kjører filtrene kan ha større betydning enn man skulle tro. Convolver og Brutefir gjør en bra jobb i så måte, og det er "enkelt" å lage konvolusjonsprogrammer som får en PC til å knele. Det samme kan sikkert gjøre seg gjeldende ved IIR filtrering. Men jeg kjenner ikke Waves og det kan jo godt hende at de er så kjappe som det lar seg gjøre.
Mitt opplegg består av:
12 stk linear phase 48 dB/okt filtre (4 delefrekvenser, 2 kanaler) - realisert i Waves LinEq
8 stk 10-bånd parametrisk EQ - realisert i Waves Paragraphic EQ (ikke linear-phase)

I 96 kHz samplerate så fyller dette en enkelt 1,8 GHz CPU temmelig til randen.
1,8 GHz kan være så mangt. På gamle Pentium er det ikke så mye, men på Core Duo så er det rikelig!

Men det er ikke lite prosessering du har.

Oppsamplingen har sine konsekvenser. Hvis man bruker FIR filtre på oppsamplet musikk - og filtrene også er oppsamplet med samme ytelse nedover i frekvens som før oppsampling, så vil CPU-belastningen øke med ca 6x for hver dobling av sampleraten. Jeg vil anta noe av det samme er forholdet gjør seg gjeldende med IIR filtre også. Hvis du venter med oppsamlingen til slutt, så får jo filtrene en enklere jobb, men da får du 12 signaler å sample opp om jeg har forstått oppsettet ditt riktig.

Du skal uansett være klar over at god resampling fra 44,1 til 96 kHz er en ressurskrevende jobb. Ved en ideell implementering så starter man med å finne minste felles multiplum mellom 44,1 og 96 kHz (det er et høyt tall!) og oppsampler til dette før det lavpassfiltreres og nedsamples. Det er mye enklere å sample fra 44,1 til 176,4 kHz f.eks. Det er mulig at man med sanntids konvertering må ta noen snarveier uansett, men det kan være lurt å prøve en oppsamplingsfrekvens som er 44,1 gange med et lite heltall. Det kan hende at du enten får en raskere oppkonvertering eller en bedre oppkonvertering ved å satse på 88,2 eller 176,4.

Når du har så mye prosessering er det kanskje på tide å gå for en oppgradering uansett. Du har jo knapt rom for å eksperementere - og det er vel ikke helt din stil kanskje?
 

Bx

Bransjeaktør
Ble medlem
04.08.2005
Innlegg
9.203
Antall liker
4.602
theStig skrev:
Selve delefiltrene har jeg valgt å gjøre linear-phase. Dette måler mye bedre når man kikker på ting i tidsdomenet. Impulsresponsen til hele høyttaleren blir nær perfekt med slike filtre, noe den ikke blir med IIR filtre.

Jeg har også en sterk følelse av at det låter mye bedre med linear-phase delefiltre.
Er det rett at du har 12 lineær fase FIR filtre for XO og 8 IIR filtre for amplitudekorreksjon? I så fall kan du spare regnekraft ved å kombinere XO og lydkorreksjon i ett og samme filter. En slik løsning har også potensial for å bringe deg et lite skritt nærmere en lineær fase impulsrespons enn du kan få til med IIR filtrering av amplituderesponsen. Men det går også an å kombinere lineær fase XO og minimum fase amplitudekorreksjon i ett FIR filter.
 
K

knutinh

Gjest
Bx skrev:
Jeg tror det er riktig å si at det er enklere å skreddersy FIR filtre til et bestemt behov OG at de bruker mer regnekraft.
Et ekstremt eksempel er dersom man på død og liv ønsker å modellere en kondensator som et digitalt-filter.Med FIR-filtre vil det kreve (i prinsippet) uendelig mange tapper, og for hver tapp får man en multiplikasjon og en addisjon, hver gang det kommer et inngangssample.

Ved å modellere kretsen som IIR kommer man ganske langt med en enkelt tilbakekobling med en mult og en add.

I praktiske situasjoner kan man vel grovt si at :
FIR filtre krever flere beregninger enn IIR
FIR kan være lineær-fase, noe IIR aldri er
FIR kan genereres relativt enkelt eller tilogmed automatisk, IIR er krevende
FIR har normalt større forsinkelse
FIR kan ha problemer med pre- og post-echo

Man kan alltid tilnærme et IIR-filter med et FIR-filter eller motsatt ved å tillate vilkårlig kompleksitet.

Hvis man skal utføre flere filteroperasjoner etterhverandre kan man som Bx sier vurdere å slå disse sammen.

-k
 
T

theStig

Gjest
Bx skrev:
theStig skrev:
Selve delefiltrene har jeg valgt å gjøre linear-phase. Dette måler mye bedre når man kikker på ting i tidsdomenet. Impulsresponsen til hele høyttaleren blir nær perfekt med slike filtre, noe den ikke blir med IIR filtre.

Jeg har også en sterk følelse av at det låter mye bedre med linear-phase delefiltre.
Er det rett at du har 12 lineær fase FIR filtre for XO og 8 IIR filtre for amplitudekorreksjon? I så fall kan du spare regnekraft ved å kombinere XO og lydkorreksjon i ett og samme filter. En slik løsning har også potensial for å bringe deg et lite skritt nærmere en lineær fase impulsrespons enn du kan få til med IIR filtrering av amplituderesponsen. Men det går også an å kombinere lineær fase XO og minimum fase amplitudekorreksjon i ett FIR filter.
Det er fler enn som så.... Det er 12 lineær fase filtre og et 30-talls IIR filtre, i praksis: parametriske EQ'er.

Ja, jeg VET jeg kan spare kraft ved å samle alt, men jeg synes det er utrolig kjekt å kunne tweake på EQ-kurven basert på lytting også.
 

Bx

Bransjeaktør
Ble medlem
04.08.2005
Innlegg
9.203
Antall liker
4.602
knutinh skrev:
Et ekstremt eksempel er dersom man på død og liv ønsker å modellere en kondensator som et digitalt-filter.Med FIR-filtre vil det kreve (i prinsippet) uendelig mange tapper, og for hver tapp får man en multiplikasjon og en addisjon, hver gang det kommer et inngangssample.

Ved å modellere kretsen som IIR kommer man ganske langt med en enkelt tilbakekobling med en mult og en add.
....

FIR kan ha problemer med pre- og post-echo
Det er ikke bare FIR som har post-echo. Det har analoge filtere også - og IIR filtere som er modellert over samme lesten. Dette handler mer om geometrien på det man skal få til enn hvordan man gjør det.

Det er faktisk en fordel med FIR filtre at man kan avslutte moroa på en 100% kontrollert måte:

-er det lurt å korrigere denne frekvensdippen?
-tja.. la oss se hva som skjer i tidsdomenet hvis vi forsøker å korrigere.
-det ble kanskje litt mye. La oss gå for en delvis korreksjon der vi begrenser post-echo til et akseptabelt nivå.
 
Topp Bunn