It's Out! It's Finally Out!
Feb. 26th, 2013 06:38 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
We did it. We finally finished Xiph's second big video: Episode 2: Digital Show & Tell
"The second video from Xiph.Org explores multiple facets of digital audio signals and how they really behave in the real world. Sampling, quantization, dither, band-limiting, and vintage bench equipment all in one video!" Go see it!
yay
Date: 2013-02-26 12:47 pm (UTC)Re: yay
Date: 2013-02-26 01:26 pm (UTC)Excellent
Date: 2013-02-26 02:35 pm (UTC)Great work.
Date: 2013-02-26 05:52 pm (UTC)no subject
Date: 2013-02-26 06:56 pm (UTC)no subject
Date: 2013-03-02 11:03 pm (UTC)excellent video
Date: 2013-02-27 08:20 am (UTC)Damn, you guys
Date: 2013-02-27 06:47 pm (UTC)Your demo page should link to this.
Date: 2013-02-27 07:51 pm (UTC)Re: Your demo page should link to this.
Date: 2013-02-28 10:06 pm (UTC)Nothing involving a filter is ever perfect
Date: 2013-02-28 10:13 am (UTC)Re: Nothing involving a filter is ever perfect
Date: 2013-02-28 09:40 pm (UTC)>>Every time you apply a filter (digital or analogue) it spreads out transient features ever so slightly.
That is certainly not true, but I'll assume you specifically meant a resampling filter, which necessarily involves antialiasing. In this case, we'll have a change only if the transition band of the antialiasing filter rolls off in an area of nonzero energy. The 'spread' of transients is because you've designed a filter that is intentionally removing frequencies, that is, it's doing exactly what you've designed it to do.
If, on the other hand, you're resampling a signal that's already bandlimited below the AA rolloff, nothing happens (ala the demo in the vid).
In hi-fi, the AA filter won't roll off within the audible range, so this is inconsequential.
>>Most obvious example is a wavelet, e.g. applying an FIR filter length N to a wavelet length M gives an output wavelet length N+M -- it spreads it out.
Well, the filter is doing exactly what you've designed it to do. An analog version would do the same. Changes in frequency always involve changes in time and vice versa. The nature of an impulse is a flat frequency signature. Alter that frequency signature and you no longer have an impulse.
>>Every single filter in the chain of processing is a compromise between making endless waves look perfect
How the waves _look_ is of little consequence.
Also, for purposes of discussion, I'm considering 'perfect' to be when the added noise+distortion is below the thermal noise of the signal (or under -140dB in the case of a digital signal, ie, equal to the noise added by a line-level 100 ohm metal film resistor). Usually, we have to consider only a few hundred samples at a time to reach that level.
In theory, you have to consider an infinite frequency domain as well as an infinite time domain. In practice, both are considerably more finite.
>>and not blurring transient features too much (short FIR)
Gibbs effect is not conceptually or mathematically analogous to blurring. Even if you use an infinite sinc to downsample from 192kHz to 48kHz, you've not altered the time representation of anything in the audible band.
OTOH, using a 8-tap FIR butterworth also gains you nothing in the time department-- it 'looks' crisper, but now you're aliasing like crazy despite starting to roll off below 1kHz (and the phase shift means you've disturbed the timing of the audible frequencies-- now this one is an interesting topic of discussion all on its own).
If your point is 'there's a ton of nuance you didn't mention', well, yes, that point is well taken :-) I'm not unaware of it, there's only so much one should pack into a single video.
>>(Although I've heard 'radio-tuning' noises when outputting a pure rising-frequency sine-wave through a resampling hardware output (e.g. 44.1 to 48kHz) so in some cases the compromises in the design ARE clearly noticeable.)
That sounds like a very serious design shortcoming involving a quantization error and the resulting harmonic distortion products aliasing back into the channel. Or worse an AA filter that's just broken and the fundamental is aliasing. Yes, I've seen resamplers do this too. Software with bugs! Say it ain't so :-)
>>BTW I am the author of the open-source filter design software Fiview.
Pleased to meet you! I often have to design classic linear filters, and I'm not very fond of matlab. I resorted to tuning several demo filters in gtk-bounce by hand in the z-plane rather than use matlab :-P
Oh, based on Tony's Fisher's old stuff! I still use mkfilter all the time. Thanks for mentioning it! Does it have a manual z-plane mode? :-D [btw: sorry for all the edits]
Re: Nothing involving a filter is ever perfect
Date: 2013-03-01 09:13 pm (UTC)That is certainly not true, but I'll assume you specifically meant a resampling filter, which necessarily involves antialiasing.
No, I meant any FIR filter at all. My thinking was this: from the maths of convolution, any single input sample influences N output samples, or equivalently each output sample receives contributions from N input samples. What was previously localised in time is no longer localised.
However, looking for a concrete example of filters spreading out localised features just now, I was unable to find one. I used a wavelet (since that is strongly localised in both time and frequency) and tried putting it through a variety of different filters with impulse responses comparable in length to the wavelet, and mostly it stayed the same shape (i.e. it didn't spread out), and when it was deformed it was because its frequency spectrum had been altered.
So I think I have to take that back. This is a property of filters I haven't appreciated up 'til now. Intuitively (rather than mathematically): A wavelet can be used a bandpass filter. Convolving it with another filter is the same as multiplying the frequency response of the wavelet with that of the filter. So long as the other filter's response is flat around the frequency response peak of the wavelet, the resulting response will be the same as that of the wavelet alone, so mapping back to an impulse response (i.e. the original wavelet) when that wavelet is put through the filter, it would also be undeformed. So I think you are right.
In this case, we'll have a change only if the transition band of the antialiasing filter rolls off in an area of nonzero energy. The 'spread' of transients is because you've designed a filter that is intentionally removing frequencies, that is, it's doing exactly what you've designed it to do.
I'm with you now.
>>and not blurring transient features too much (short FIR)
Gibbs effect is not conceptually or mathematically analogous to blurring. Even if you use an infinite sinc to downsample from 192kHz to 48kHz, you've not altered the time representation of anything in the audible band.
I wasn't thinking about the Gibbs effect. I was more concerned about stuff which is representable below the Nyquist frequency getting 'blurred'. But it seems I was wrong about that.
Pleased to meet you! I often have to design classic linear filters, and I'm not very fond of matlab. I resorted to tuning several demo filters in gtk-bounce by hand in the z-plane rather than use matlab :-P
Oh, based on Tony's Fisher's old stuff! I still use mkfilter all the time. Thanks for mentioning it! Does it have a manual z-plane mode? :-D
To be honest, I understood enough of the maths to transfer/adapt the algorithms without messing them up, but then instantly forgot it all. The only thing that sticks around in my head is the intuitive understanding. No, there is no manual z-plane mode, sorry!
What's next?
Date: 2013-03-01 12:53 pm (UTC)I that still correct (obviously w/o first item)?
If you plan to work on transOgg, a post explaining the problems trnsOgg is trying to solve and goals of the project would be nice.
Re: What's next?
Date: 2013-03-02 11:01 pm (UTC)More will be clear after next week, since I'll be hammering out the upcoming roadmap with Red Hat.
Re: What's next?
Date: 2013-03-13 05:13 pm (UTC)Re: What's next?
Date: 2013-03-23 07:13 pm (UTC)You mention Daala.
What is the probable outlook for next gen open video codecs?
Are we likely to have 2 rival open formats (Daala and VP9) developed independently or will Google and xiph work together on 1 format like they did with WebM?
Awesome video
Date: 2013-03-02 07:57 am (UTC)Oh, wait, this is a blog, right?
In any case, thanks a lot for your awesome videos. Besides, you're a great front man ;)
no subject
Date: 2013-03-05 12:14 am (UTC)no subject
Date: 2013-03-08 08:13 am (UTC)I have been saying for a while that I plan to eventually move off LJ myself, and may eventually get around to that. But so far, inertia.
no subject
Date: 2013-03-08 01:07 pm (UTC)no subject
Date: 2013-03-09 02:11 am (UTC)no subject
Date: 2013-03-13 04:56 pm (UTC)Anyways, thanks for making these videos(really cool) and for the entire xiph.org project - I find your enthusiasm inspirational.
Awesome video
Date: 2013-03-25 05:21 pm (UTC)Keep doing these!
Date: 2013-04-30 09:12 pm (UTC)I'd like one about the differences between audio formats and how lossy and lossless compression work.
Super awesome!
Date: 2013-06-14 09:29 pm (UTC)Going to donate something as thanks.
Fantastic
Date: 2013-07-23 04:58 am (UTC)KF
Thanks
Date: 2013-08-19 01:41 pm (UTC)David Stewart
Sweetwater Sound
Still confused by dither, please clarify :-)
Date: 2014-09-12 07:50 pm (UTC)In the video you state that dither is a noise of our choosing that literally replaces the quantization noise created by quantization. This seems a little counter-intuitive to me, as it makes more sense, with my very limited knowledge, that dither is the process of adding uniform noise to the already existent quantization noise, simply to mask it. I then ran across these two videos which explained dither in the way that I thought that it probably worked:
https://www.youtube.com/watch?v=U2mwXiJqAgA&list=PLk08bMnnGm5FNnv1QIKivgJMA9czurop8&index=5
https://www.youtube.com/watch?v=tb6X3WZ3-Uc
So, your explanation and the explanation in these other videos are not reconciled in my mind, which has left me a little confused on the subject. And if it is truly possible to fully remove quantization noise, then why replace it at all, and not just replace it with some other kind of noise. Please help me to clarify my understanding of the process so that I can share it more accurately and help spread the good digital word far and wide.
btw, I'm starting to learn about the sampling theorem and the mathematics behind it, so this is helping me very much across the board ;-)
Thank you for your time and contribution to the subject, Monty :-)
Richard Nash
Los Angeles