[Xiph-Advocacy] example of lossless fade out
tor-einar at jarnbjo.name
Tue Jul 7 14:18:57 PDT 2009
Jose Ramirez schrieb:
> The big question is, it possible to edit fade ins and outs in vorbis and
> theora without re-encoding. If for some technical reason it's not, then
> the fade feature should be added to the HTML 5 spec.
I'm not sure about Theora, but (someone correct me if I'm wrong) for
Vorbis, a lossless "perfect" fade is not possible. I suppose however,
that it might be possible to implement a sort of lossless "imperfect"
fade with non-audible artifacts.
A lossless "perfect" fade-out is probably possible with MP3, since it
works with a fixed frame length. I'm not very familiar with the MP3
internals, but I suppose it is possible to attenuate each frame with a
fixed amount and since the frames are faded into eachother with complete
overlaps (the second half of the first frame is blended into the first
half of the second frame a.s.o.), the result is as if you applied a
fading filter with a smooth amplitude decay envelope.
In case of Vorbis, it should be just as easy to attenuate a single frame
by scaling the floor. The residues can be left as they are, since they
are eventually multiplied with the base floor, so that an attenuation of
the floor itself should cause a correct attenuation even after applying
the residues. The problem is though, that Vorbis is not using a fixed
frame length, but alternates between two different lengths (short and
long frames) within the same file. In the transition between two short
or two long frames, the overlap is complete, but in the transition
between a short and a long frame, a part of the long frame is copied 1:1
into the output, causing the fade to be interrupted by a constant
amplitude for a very brief period. For normal encoding parameters, we
are just talking about a few ms here, so I _assume_ at least that this
"fade artifact" is not audible, but I am really not sure.
More information about the Advocacy