Skip to main content

Topic: transcoding question (Read 1921 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • satkinson
  • [*]
transcoding question
(Never mind folks - I just found a wealth of explanations in the faq, which I had missed before. Thanks...)

I don't want to waste anyone's time, but I'm stuck on the following questions and would greatly appreciate an explanation.

Why is there a general injunction against converting from one lossy format to another?

As a non-technical user of digital audio, the explanation I usually see runs something like "You're taking something that's been compressed once and recompressing it, with even more information being shaved off the file."

I got that for a long time, but the more I read (a little knowledge is a dangerous thing) the less I understand.

To wit - if I took an mp3 compressed file, converted it to standard audio and then recompressed it using the same encoder etc., shouldn't I get exactly the same mp3 file?

What I think I understand about lossy compression is - it shaves off the parts we're not likely to miss. If those parts are already gone - as in  the example above - wouldn't the codec simply not compress any further?

And by extension, if you're going from, say, mp3 to ogg or wma or something, using comperable bit rates and what have you, shouldn't you see only minor differences in the files, if any at all?

(I'm assuming the various codecs use quite different means to accomplish a common goal - getting rid of the extraneous parts.)

Again, I know this is a wizards forum, and not a place for civilians, by and large. However, I'm hoping someonre can help.


Scott Atkinson
  • Last Edit: 06 May, 2004, 09:07:49 PM by satkinson

  • M
  • [*][*][*][*][*]
transcoding question
Reply #1
Scott, here is the simplified answer: When a codec is compressing a file, there is (currently) no way for it to know what assumptions a previous codec may have made about "inaudible" information. So even if you use the same encoder as was previously used, it will not yield identical results; the assumptions it is making on what info can be safely discarded are no longer based on the original source, but on the decoded (lossy) version. And the codec thus assumes that more may safely be removed - even when it should not be.

    - M.

Edit: Nevermind... you posted your own apology as I was typing.
  • Last Edit: 06 May, 2004, 09:14:13 PM by M

  • ErikS
  • [*][*][*][*][*]
transcoding question
Reply #2
Maybe it helps to think of the encoding process not as removing parts we cannot hear but as adding noise to where it most likely can't be heard. Quantisation, which is the biggest space saver, works by adding noise. However, the lowpass filter works by removing part of the spectrum, and that stays the same over repeated encodings like you say.

Edit: Forgot one thing. I heard rumors that wavpack lossy will stay the same after repeated encoding/decoding if you use the same settings. But it works differently than "normal" lossy encoders like mp3 and aac. Someone else know more about this?
  • Last Edit: 06 May, 2004, 09:33:32 PM by ErikS

  • bryant
  • [*][*][*][*][*]
  • Developer (Donating)
transcoding question
Reply #3
The rumors are true. WavPack lossy will, under some circumstances (and identical settings), not alter audio beyond the first "roundtrip". I have verified that the new 4.0 version still seems to have this characteristic. However, this is sort of a fluke and I would not want to depend on it happening all the time. For example, if a single sample is changed the encodings will diverge at that point, but may (or may not) snap back together a few seconds later. Also, I found that the new asymetrical modes in 4.0 will destroy this characteristic, probably because of some additional complexity.

Even without this fluke, however, the WavPack lossy mode will degrade the audio less and less with each iteration. I found, for example, that between iteration 30 and 31, there was only an additional 0.15 dB noise and the quality was still very good (using a bitrate setting of 450). This is in contrast to an experiment someone did recently on this board where a traditional lossy codec sounded "terrible" after far less than 30 "roundtrips".

I suspect that the reason that regular codecs do so poorly in this test is not the added quantization noise but small non-linearities in the digital filters. A 0.5 dB non-linearity at certain frequencies would generally not be very audible, but multiply that by 30 and you've got a frequency response that looks like a roller-coaster! Each iteration degrades the audio the same amount as the previous, so even slight problems eventually become very audible. Because WavPack lossy (and OptimFROG Dualstream) contain no digital filtering, they are not prone to this.