Spørsmål:
Hva er den riktige måten å redusere lydsamplingsfrekvensen og bitdybden?
shadowox8
2013-07-01 20:03:40 UTC
view on stackexchange narkive permalink

Hva er den riktige måten å redusere samplingshastighet og bitdybde på når en tapsfri lydfil presenteres?

Når jeg reduserer bitdybde, forstår jeg at jeg bør bruke dither, men jeg vet ikke hvilken skala eller metode du skal bruke. (Egentlig leste jeg at jeg burde bruke enten en "trekantet" eller "formende" røre, men jeg vet fortsatt ikke hvilken av dem jeg skal bruke. Kommer det ned på personlig preferanse?)

Når redusere samplingsfrekvens, jeg aner ikke om ytterligere behandling er nødvendig. (Tydeligvis er prøvefrekvensen langt mer komplisert enn bitdybde.) For øyeblikket ser konverteringsprosessen min slik ut:

  ffmpeg -i <input.file> -compression_level 12 [-ar 44100 -sample_fmt 16] <output.flac>  

Jeg foretrekker generelle svar fremfor applikasjonsspesifikke, men jeg tar det jeg kan få. Takk på forhånd!

Jeg er forbruker, ikke produsent. Ingen videre behandling blir brukt på disse filene.

Rediger 0: Eksempel på virkelige verden: Jeg har en 96/24 PCM (WAV) -fil. Jeg vil at den skal være 44.1 / 16.

Rediger 1: Ytterligere undersøkelser ga denne fantastiske sammenligningen av samplingsfrekvensomformere (med grafer)!

Jeg fant [denne videoen] (http://xiph.org/video/vid2.shtml) på et annet spørsmål og syntes det var veldig lærerikt og enkelt å følge. Det handler i utgangspunktet om A / D og D / A-konvertering, men det er litt god informasjon om dither, og det er effekter.
Se [FFmpeg og SoX Resampler] (https://trac.ffmpeg.org/wiki/FFmpeg%20and%20the%20SoX%20Resampler) og [FFmpeg Resampler Documentation] (http://ffmpeg.org/ffmpeg-resampler. html).
SoX (frittstående) er det jeg til slutt brukte. Sistnevnte lenke var inkludert i spørsmålet mitt.
En svar:
Bjorn Roche
2013-07-01 22:59:22 UTC
view on stackexchange narkive permalink

La oss ta disse om gangen, i riktig rekkefølge:

  1. Du begynner med en tapsfri fil. Dette er enten PCM eller komprimert uten tap (du spesifiserte ikke). Hvis den er komprimert, må den konverteres til PCM (eller ukomprimert) for å gjøre noe meningsfylt. Dette gjøres vanligvis automatisk av ethvert program som hevder at det kan lese formatet, men du bør være oppmerksom på at det foregår. Siden det skal jobbes videre med denne lyden, bør prøvene konverteres til flytende punktformat.

  2. Neste kommer samplingsfrekvenskonvertering. Som du riktig sa, SR-konvertering er kompleks. En naiv tilnærming til SR-konvertering vil gi "aliasing" forvrengning. Hvis du for eksempel tar annenhver prøve fra en 44100 Hz-fil, får du en 22050-fil, men alt materiale som ikke kan vises riktig ved 22050, vil i stedet for å bli eliminert feil representert. Avhengig av hvor mye det var, kan feil representasjon høres ekstremt dårlig ut. Løsningen er å filtrere ting ut først, så SR-konvertering består av filtrering, etterfulgt av resampling (selv om det er et triks som lar deg gjøre begge deler i ett trinn, konseptuelt, det er to trinn, i den rekkefølgen). Vanligvis gjøres filtrering automatisk av sr-konverteringsprogramvare, men du bør være oppmerksom på det fordi dette utgjør den største forskjellen for kvalitet. Ikke spar på filterkvaliteten hvis du bryr deg.

  3. Til slutt reduserer du bitdybden. Som med SR-konvertering, resulterer en naiv tilnærming til bitdybdereduksjon i en slags forvrengning, men denne typen forvrengning blir generelt sett på som mindre motbydelig. Løsningen på denne forvrengningen er å legge til "dither", som er en liten mengde støy. Du må legge til ruten før bitreduksjonsreduksjonen. Å legge til dither etter reduksjonen vil ikke ha noen annen effekt enn å legge til støy. For den fleste programvare er dithering et alternativ (hvis det i det hele tatt er tilgjengelig), og utføres ikke automatisk. Hva dither du bruker, og selv om du i det hele tatt raser, er i stor grad et spørsmål om preferanse og kildematerialet. Det er store mestringsstudioer som ikke gidder å rase lenger, selv om det matematisk sett er den eneste måten å eliminere forvrengningen. [1] Når det gjelder trekantet vs "formet" dither [2], er tommelfingerregelen denne: formet dither brukes til det siste trinnet, trekantet dither brukes til andre trinn. Så i ditt tilfelle, bør du sannsynligvis bruke en formet risting. Imidlertid foretrekker du kanskje standard triangulær risting som ditt siste trinn hvis en formet risting allerede er brukt. Du må la ørene bestemme den ene, men forhåpentligvis vil forskjellen være så subtil at du ikke kommer til å merke det uansett.

[1] De gjør det ikke bry deg fordi forvrengningen er utformet for å beskytte mot, blir effektivt eliminert bare på grunn av mangelen på dynamisk område i musikken de produserer. Hvis musikkens dynamiske område (moderne pop har et dynamisk område på ca. 6 til 10 dB) er veldig lite sammenlignet med mediumets dynamiske område (CDer har et dynamisk område på ca 96 dB), trenger du ikke trenger dither.

[2] forskjellen mellom de to er at en "trekantet" dith er hvit støy. Et "formet" dithforsøk er mindre hørbart ved å forskyve støyfrekvensen utenfor vårt hørselsområde. Dette fungerer bemerkelsesverdig bra, men hvis du gjør det om og om igjen, kan det føre til høyfrekvent oppbygging, spesielt hvis du bruker en veldig aggressivt formet rist som POW-R.

1. Jeg arbeider generelt bare med WAV (PCM) og FLAC (som til slutt dekoder til PCM, ja) .2. Jeg vil se på FFmpegs standardalgoritme, eller kanskje kompilere på nytt med SoX aktivert, da det er algoritme som er godt ansett. [Hydrogenaudios resampling-side] (http://wiki.hydrogenaudio.org/index.php?title=Resampling) ser også ut til å ha mange referanser.3. Jeg ser ut til å huske at jeg hadde lest at rektangulær risting skulle brukes under periodiske trinn (vs. trekantet), men jeg ser ikke ut til å flytte den referansen. Men det er et poeng for situasjonen min. ;)


Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 3.0-lisensen den distribueres under.
Loading...