i don't get it!!! i have to write an assignment about audiocompression.
one topic will be adpcm. in all papers i read so far adpcm is referred
to as a lossy compression method. but why?
like d(ifferential)pcm it codes the error between a predicted value and
the actual sample's value or between the value of the previous sample
and the value of current sample. apparently dpcm uses a fixed number of
bits to encode this error. so if the predition is very bad or sample
values change quickly there might not be enough bits to encode the
error. because of this dpcm is lossy. but afaik adpcm adapts the amount
of bits used for encoding the error. so if there are always enough of
them adpcm should not be more lossy than the process of quantiziation
(pcm) itself...
i'm sure one of you can help me.
thanks in advance,
stephan
See www.multimedia.cx (specifically the Simple Time Domain Coding doc)
for an explanation of ADPCM. IMA ADPCM does not adapt number of bits;
it adapts the stepsize of the table referenced by the output token.
Back when I was working with this stuff (admittedly over 25 years ago)
we usually had a non-linear quantizer after the predictor.
That's where the loss came in.
PCM refers to the conversion of contineous ampltitudes to discrete ones.
So does DPCM. The difference is just what the bits are assigned to.
In PCM bits are assigned to the sample amplitude itself, in DPCM to the
(analogue) differences between.
In this context both PCM and DPCM are lossy.
Unfortunately the term 'DCPM' is also used, when the input signal is
already discrete. In my opinion this is not only misleading but entirely
wrong and should be avoided.
However many, many textbook and even the International Standard of JPEG,
for instance, distribute this mismatch.
I guess your confusion is a result of that.
Cheers
A regular CD stores 16 bit integers, one after the other, 44,100 times
per second. These integers have a range of 2^32 -1 ...both positive and
negative, alternating left and right channel if in stereo. So the data
could be:
-300
456
0
2000
etc...
So four bits is not enough information to represent the difference
between them...it truncates...
- Nir