Pre echo: Difference between revisions
No edit summary |
|||
Line 3: | Line 3: | ||
when you have something like a sharp attack (like a castanet), the [[MDCT]] representation of this data will (after [[quantization]]) create a lot of oscillations both before and after the attack. | when you have something like a sharp attack (like a castanet), the [[MDCT]] representation of this data will (after [[quantization]]) create a lot of oscillations both before and after the attack. | ||
A fourier representation of an attack consists of an (inifinitely) long series of slowly decaying coefficients. If you store any less then exact, you introduce the oscillation. But you must [[quantize]] because otherwise you don't have a [[lossy]] [[codec]]. | A fourier representation of an attack consists of an ''(inifinitely)'' long series of slowly decaying coefficients. If you store any less then exact, you introduce the oscillation. But you must [[quantize]] because otherwise you don't have a [[lossy]] [[codec]]. | ||
The problem is that you have to return nearly all [[MDCT]] coefficients of the attack to stop the pre/postecho. The largest ones are no problem as they are usually kept by the [[quantization]], but all others look very similar just a tiny bit smaller. At some point, you must make the decision to round to zero (or end up with 1:4 "compression") and you introduce the oscillation. | The problem is that you have to return nearly all [[MDCT]] coefficients of the attack to stop the pre/postecho. The largest ones are no problem as they are usually kept by the [[quantization]], but all others look very similar just a tiny bit smaller. At some point, you must make the decision to round to zero (or end up with 1:4 "compression") and you introduce the oscillation. | ||
The oscillations in front of the attack are very bad, since they will be heard "before" the attack, and are very obvious to the human ear. It often sounds like a snare has been added to the original track. | The oscillations in front of the attack are very bad, since they will be heard "before" the attack, and are very obvious to the human ear. It often sounds like a ''snare'' has been added to the original track. | ||
==Additional reading:== | ==Additional reading:== | ||
* http://www.jhu.edu/~signals/fourier2/ - You can draw a sharp attack here, and use it to calculate a large number of coefficients... if you start to reduce the number of coefficients you will see the pre-echo appear. | * http://www.jhu.edu/~signals/fourier2/ - You can draw a sharp attack here, and use it to calculate a large number of coefficients... if you start to reduce the number of coefficients you will see the pre-echo appear. |
Revision as of 04:16, 27 June 2005
Pre-echo is just classical gibbs oscillations, which is seen any time you use a fourier-type series expansion to represent non-smooth data.
when you have something like a sharp attack (like a castanet), the MDCT representation of this data will (after quantization) create a lot of oscillations both before and after the attack.
A fourier representation of an attack consists of an (inifinitely) long series of slowly decaying coefficients. If you store any less then exact, you introduce the oscillation. But you must quantize because otherwise you don't have a lossy codec.
The problem is that you have to return nearly all MDCT coefficients of the attack to stop the pre/postecho. The largest ones are no problem as they are usually kept by the quantization, but all others look very similar just a tiny bit smaller. At some point, you must make the decision to round to zero (or end up with 1:4 "compression") and you introduce the oscillation.
The oscillations in front of the attack are very bad, since they will be heard "before" the attack, and are very obvious to the human ear. It often sounds like a snare has been added to the original track.
Additional reading:
- http://www.jhu.edu/~signals/fourier2/ - You can draw a sharp attack here, and use it to calculate a large number of coefficients... if you start to reduce the number of coefficients you will see the pre-echo appear.