Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Dither explained, by Nika (Read 12366 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Dither explained, by Nika

Nika Aldrich published a very good explanation of dither at http://www.cadenzarecording.com/Dither.html .

The paper was originally posted in the prosoundweb forums, where it can be discussed : http://www.prosoundweb.com/recpit/viewtopic.php?t=1284

Other papers are coming, about Sample Rate Conversion, jitter...
Post your whishes at http://www.prosoundweb.com/recpit/viewtopic.php?t=1299

Dither explained, by Nika

Reply #1
Images are huge and have bad quality.
Use a lossless encoder for the images like
PNG, it's shorter.

Example (9 KB instead of 150 KB):
--  Frank Klemm

Dither explained, by Nika

Reply #2
Quote
Originally posted by Pio2001
Nika Aldrich published a very good explanation of dither at http://www.cadenzarecording.com/Dither.html .


The page contains several very basic mistakes.
The "noise shaping" explained on this page has nothing to do with noise shaping. You can noise shape without any dither. You don't need a
random number generator or a noise generator for
noise shaping. Noise shaping forms the quantization noise, it do not add additional noise from an external noise source.

Simple Quantization:

  X =


  • Simple Dithering:

      X = [x + n]

    Colored Dithering:

      X = [x + (n,F)]

    Noise Shaping:

      X = [x + ((X-x),F)]

    Dithering + Noise Shaping:

      X = [x + ((X-x),F) + (n,F)]
--  Frank Klemm

Dither explained, by Nika

Reply #3
I told him about pictures, he now uses Gif.

Dither explained, by Nika

Reply #4
Quote
Originally posted by Pio2001
I told him about pictures, he now uses Gif.


GIF is covered by the Unisys patent, and several
web hoster have got trouble from Unisys.

PNG is
  - more flexible (paletted, grayscale, color, 1...16 bit + opacity)
  - often smaller (50%...95% are often reached)
  - patent free
  ! does not support animated images


[span style='font-size:9']edit: shorter -> smaller[/span]
--  Frank Klemm

Dither explained, by Nika

Reply #5
Quote
posted by Frank Klemm:
The page contains several very basic mistakes. 
The "noise shaping" explained on this page has nothing to do with noise shaping. You can noise shape without any dither. You don't need a 
random number generator or a noise generator for 
noise shaping. Noise shaping forms the quantization noise, it do not add additional noise from an external noise source. 

Simple Quantization: 

X =
  •  

    Simple Dithering: 

    X = [x + n] 

    Colored Dithering: 

    X = [x + (n,F)] 

    Noise Shaping: 

    X = [x + ((X-x),F)] 

    Dithering + Noise Shaping: 

    X = [x + ((X-x),F) + (n,F)]


Frank,

Thanks for that clarification of noise-shaping.

However, forgive me if I'm at a loss in regards to the "very basic mistakes" in the paper. I must have missed them.

Can you elaborate? Thanks in advance.

Dither explained, by Nika

Reply #6
When I read the "paper", I thought "here's someone who has just grapsed the basics of dither, and is trying to explain them to to someone who hasn't".

Was it Albert E. who said "Things should be explained as simply and possible, but no simpler" (or something like that)? In this case, I think we've moved into "simpler" terratory!

I wanted to point out some mistakes, but didn't want to look like a smart ass. I'm glad Frank has beaten me to it!

Quote
Studies have shown that white noise that is created using TPDF is sonically the same as actual Gaussian PDF white noise, and since the latter takes a significant amount more DSP power to generate, most processes use the easier to create TPDF as the source of the dither. 


Wrong. TPDF is optimum - Gaussian is sub-optimum. It's close, but TPDF is better AND easier to implement digitally. Gaussian can occurr naturally, so it has been used in 16-bit A>D conversion in the past, and is unnavoidable at 24-bit A>D conversions (i.e. they'll probably be some Gaussian-like noise on the signal).


Quote
The dithered signal effectually has a lower noisefloor by avoiding the distortion properties of those square waves. 


Distortion is distortion. Noise is noise. Correct dither prevents quantisation distortion, but adds noise. This is the simple trade-off. I think the author realises this and mentions it, but this mangled sentence nearly hides the fact!


Quote
...even analog (infinite resolution) to 24 bit during A/D conversion dithering needs to happen. 


Yes, and it will, because any real world signal contains more than enough noise to do this. It's not an extra step you have to (or even can) worry about. A 6 ohm resistor in circuit will give enough noise to dither the last bit of a 24-bit convertor (I'm quoting someone here - I haven't verified it, but it's about right).


Is the Apogee UV22 really dither? Not quite, according to their advertising. It's a high frequency signal that acts like dither.

Quote
It is easy to see that, not only is this more closely resembling TPDF


It looks like a high frequency waveform - it's possible (though not easy) to see that. I bet it's a long way from TPDF


Quote
There will be two artifacts in the UV22 version (300Hz and 500Hz), but these are a result of errors in the way in which the graphs were created and are not a result of the UV22 process itself. 


I wish he'd explained this - it's quite interesting. Why adding this wonderful "dither" gives artefacts - is it really a bug in the graph program? I'm very interested (seriously) in what he's found here.


What's not said is that a correctly dithered system gives a theoretically infinite dynamic range (though some of it lies below the noise - this is important because our ears are very good at hearing sounds within noise), zero distortion, and zero noise modulation. Using the wrong dither (e.g. rectangular, or even TPDF where the amplitude isn't exactly right) can cause noise modulation (the noise goes up and down with the signal) and distortion.


However, it's good that someone has tried to explain dither to people who don't understand it in an approachable way that us techies would probably never have thought of (I like the dice bit!).


After reading his article, you could do worse than read:

Any articles on dither by Lipshitz and Vanderkooy - there seem to be none online, but loads in the AES. They have written the definitive papers on this subject.

http://www.mtsu.edu/~dsmitche/rim420/readi...420_Dither.html

http://www.digido.com/ditheressay.html

http://privatewww.essex.ac.uk/~djmrob/mp3decoders/24bit.html
http://privatewww.essex.ac.uk/~djmrob/mp3d...ers/24bit2.html

Cheers,
David.

P.S. for all this talk, to most people the audible effect is tiny.



Dither explained, by Nika

Reply #9
Quote
...it would be interesting to discuss it with the author : 

http://www.prosoundweb.com/recpit/viewtopic.php?t=1284


It would be OK to discuss it with the author, but I was reticent to post anything to the prosoundweb board. I don't know anything about that specific board, but from the name I feared it would be like other "recording people's" boards I've read: the people know more about music making than technology.

This is fine and good (especially if you're making music!) but it also means that, if you state a scientific or mathematical fact, you tend to spend the next 20 pages explaining it and defending it, and at the end they dismiss it, just saying "well, I'll just trust my ears".

Trusting your ears is the ultimate gold standard, but if your ears are wrecked, your monitors came from radioshack, and someone can prove that what you're doing is damaging the sound, you should take notice - not just say "I trust my ears" and carry on as you always have.

(sorry - end of rant against bad audio!)


So, from what I've surmised of the "pro" recording world, Nika has written them a nice summary of dither that is understandable. It does have mistakes, but I don't think most people would care about them. I'm not saying these folks are stupid: I'm saying they're not really bothered about this - they just want to feel like they understand, and get on with making music. So if me or Frank posts there and describes the errors, it won't matter - in fact we'll be the ones at fault! If you previously didn't understand dither, and now you do, the fact that the explanation wasn't 100% correct doesn't matter to you.


I see Frank's posting was cross posted, and was described as a "nit pick". Point proven. I already warned that I was going to be in dangerous "smart ass" territory, so please don't cross post mine!

Actually, go on - I'll let you - I have a quiet week ahead, and 20 pages of discussion is just what I need ;-)

Cheers,
David.
http://www.David.Robinson.org/

Dither explained, by Nika

Reply #10
more (most of this is nit-picking, though some mistakes are fundamental errors)

Quote
It's not particularly intuitive: the concept of adding noise to reduce noise doesn't make a lot of sense. 


You don't reduce noise. You reduce distortion. You increase noise.


Quote
"Dither" is a British colloquialism for "vibration". 


To my knowledge, it isn't, but I could be wrong. To dither is to be indecisive - to not be able to make your mind up. To be "in a dither" is to be confused about the appropriate course of action. The nearest it gets to "vibration" is the idea of people moving between the two possibilities (e.g. should I go left or right? I'll go left <starts to go left> - no, I'll go right <starts go to right>).


Quote
there are a bunch of small square waves of determinable size (based on the frequency of the original waveform). 


they're steps, not square waves. (told you this was nit picking).  The amplitude (height) of each step is equal to the step-size of the quantiser, and the duration (length) of each step is dependent on the slope of the original waveform, which arises due to its amplitude and frequency.


Quote
If this were a "fully maximized" signal these peaks would be much lower. 


I prefer "one that reaches digital full scale" to "fully maximized". The distortion peaks will be lower for a higher amplitude signal. The reason is because there's the same amount of quantisation error whatever the signal, but it's signal correlated (i.e. harmonic distortion) for a low level signal, but semi-decorrelated for a high level signal (i.e. it appears as broadband noise).


Quote
Now what we're trying to simulate is real white noise. 


No it's not! Where did you get this from? The idea persists in the whole discussion that what we really want is nice analogue gaussian noise, but TPDF dither will do. This is rubbish!

What we want to do is linearise the quantiser: in English, the quantiser has a step function - anything below a certain level falls into one numerical bin, anything above it falls into the next bin. If you plot an input output function, you get a staircase. We don't want this - we want to remove the steps, and have a nice straight line. We want the graph y=x - it means what you put in is what you get out. Perfect!

We can't get a straight line, but if we add the right about of noise, what happens is that a signal 20% above the limit between two quantisation steps has a 80% chance of falling on the lower step, and a 20% chance of falling on the upper step. A signal half way between the two steps has a 50% chance of falling on either.

Because of the noise, any given signal between two steps could now fall on either step (as opposed to always falling on the lower one - the case without dither, if you round down) - but the chance of it falling on either step is proportional to the actual level of the signal. So, if you average the signal, the steps disappear! Luckily, our ears do perform a kind of averaging - if you look in the frequency domain (which our ears, and all these pretty spectrograms do) you have to average in the time domain - you average over many many samples, and the stair case evens out.

So far, so good. This is using RECTANGULAR pdf noise. The problem is that the staircase is linear (there's no harmonic distortion) BUT signals half way between the two steps are never moved by more than 50% of a step, whereas signals at other locations can be moved further - up to 99.9% in fact. So the amount a signal gets shifted is dependent on its amplitude. This gives rise to noise modulation - it's more subtle than harmonic distortion, but it can be audible. This is solved by adding another RECTANGULAR pdf noise signal. The two together give rise to a TRIANGULAR noise signal. This sometimes pushes the signal over TWO steps, and (though I really can't explain it without a diagram!) means that signals of any amplitude are, on average, shifted by the same amount.

And this is ideal. no distortion, because the steps have been linearised, and no noise modulation, because the same amount of noise is added to any amplitude signal. So that's the first and second order problems of the quantiser fixed. There must be third, fourth, fifth etc problems too, but whereas you could quantify them using a mathematical analysis, your ear can't hear them, so we stop here!

So triangular dither is ideal. NOT gaussian - gaussian DOES linearise the quantiser, but it doesn't quite remove the noise modulation. The amount of noise modulation you have left is very small, but it's not zero. So analogue Gaussian dither (at the ADC) will do nicely, but in the digital domain there's no advantage to Gaussian dither at all.


Quote
This is called "square probability density function". 


It's called a rectangular PDF - I've not heard anyone call it square before, but I've probably not read the correct textbooks.


Quote
this is called "Triangular Probability" or TPDF. TRUE white noise, however...


Hang on - if you use those dice (or a rect. or tri. PDF random number generator) to drive a digital to analogue converter, you WILL get white noise, up to fs/2. "TRUE white noise" is noise with a long term flat spectrum. Those dice are giving you TRUE white noise. The idea that Gaussian is TRUE white noise and triangular isn't TRUE white noise is complete nonsense.



Noise shaping - really bad explanation. And whether you call the UV22 system "dither" or not (I wouldn't, but then I like to call ideal dither "dither", and anything else "non-ideal noise" ;-) ), the UV22 system does not use noise shaping (according to their publication, though they could be hiding the truth for commercial reasons).

UV22 adds high frequency noise. Noise shaped systems don't have to add any noise, but what they do have to do (to be called noise shaping) is take the output, and feed part of it back to the input - this negative feedback system, with appropriate filtering in the negative feedback path, will push any quantisation noise and/or dither to higher frequencies. The UV22 system doesn't do any "pushing" - it just puts the noise there to start with and hopes. (repeat: according to their publication, though they could be hiding the truth for commercial reasons).


Quote
One last note is that the benefits of dither are more apparent on lower frequency material than higher frequency material. On higher frequency material the artifacts created by quantizing error can be above the hearing range and therefore not as detrimental to the listening process. 


It's true that lower frequencies give rise to quantisation distortion that is highly correlated with the signal, and hence the resulting harmonic distortion is louder - or the quantisation error is more tone-like and less noise-like. But (inaudible) pure high frequency signals can give rise to large amounts of in-band quantisation distortion. Try a -30dB 20kHz sine wave in cool edit pro, and convert it to 8-bit without dither - you can hear the distortion tone! Use dither, and it goes away.

The thing is, the quantising error doesn't have an anti-alias filter applied to it - so any harmonic components that should have been above the nyquist limit of fs/2 will be folded back down into the audible range.




I can't find any more errors. If I do contact the author, I'll send him a copy of the best papers by Lipshitz and Vanderkooy.  The maths can be hard to follow, but the explanations are great.

Cheers,
David.

http://www.David.Robinson.org/

Dither explained, by Nika

Reply #11
Quote
Originally posted by 2Bdecided
Yes, and it will, because any real world signal contains more than enough noise to do this. It's not an extra step you have to (or even can) worry about. A 6 ohm resistor in circuit will give enough noise to dither the last bit of a 24-bit convertor (I'm quoting someone here - I haven't verified it, but it's about right).


Another German nitpicker entering  ...I dont have a clue about dither, but above statement should be a bit inprecise if i remember correctly, because this will be highly depending on the signal amplitude you are referring to ? Certainly not true for a 100 V pp signal, but maybe for a 0 dB = 775 mV ?

Dither explained, by Nika

Reply #12
The signal isn't usually 100 V pp entering an analogue to digital convertor ;-).

Seriously, the figure depends on the bandwidth of the device (e.g. a convertor running at 44.1kHz will give 22kHz bandwidth, while a convertor running at 96kHz will give 48kHz bandwidth) and the temperature of the resistor. The signal voltages are defined by standards (well, convention) in the home and (at a slightly higher level) in the studio.

The point is it's rather difficult (i.e. impossible!) to design a useable circuit where the noise isn't enough to dither a 24-bit convertor.

Maybe we shyould change to audio signal voltages that are large enough to kill you if you were to touch the wires. But I think that would bring its own design problems.

There's lots of noise analysis here.

http://www.aurastar.com/Noise%20Analysis.htm

But I'm not confident enough in this area to quote an exact figure. Less than 100 ohms seems about right given conventional signal amplitudes.

Cheers,
David.

Dither explained, by Nika

Reply #13
If I understand well, dither increase the definition of low frequencies, because if we convert a 16 bits dithered signal to 24 bits, then lowpass it, the original shape will be back.

Correct me if I'm wrong, but I'm under the feeling that if we use a high-passed white noise as dither on a low-passed 24 bits wave as original, it will be possible to keep perfectly the 24 bits resolution (statistically) with no noise as long as the gap between the lowpass and the highpass is large enough so that the statistical fluctuations of the white noise (limited with the high pass)over the highest period of the wav (limited by the lowpass) are below the 24 bits resolution, therefore perfectly averaging the wave shape.

Does it make sense ?

Dither explained, by Nika

Reply #14
Quote
Originally posted by Pio2001
If I understand well, dither increase the definition of low frequencies, because if we convert a 16 bits dithered signal to 24 bits, then lowpass it, the original shape will be back.

Correct me if I'm wrong, but I'm under the feeling that if we use a high-passed white noise as dither on a low-passed 24 bits wave as original, it will be possible to keep perfectly the 24 bits resolution (statistically) with no noise as long as the gap between the lowpass and the highpass is large enough so that the statistical fluctuations of the white noise (limited with the high pass)over the highest period of the wav (limited by the lowpass) are below the 24 bits resolution, therefore perfectly averaging the wave shape.

Does it make sense ?


No.
--  Frank Klemm

Dither explained, by Nika

Reply #15
What is the ampliture of the Triangular PDF for the correct amount of dithering?

Is this amplitute expressed in LSB and is stated as P-P or RMS?

Dither explained, by Nika

Reply #16
Quote
Originally posted by dosdan
What is the ampliture of the Triangular PDF for the correct amount of dithering? 

Is this amplitute expressed in LSB and is stated as P-P or RMS?


Peak-to-Peak is 2 LSB. RMS is sqrt(1/6) LSB.
--  Frank Klemm

Dither explained, by Nika

Reply #17
Quote
Originally posted by Frank Klemm


No.


Well, I'll try to explain better :

Let's consider a 24 bits 6 Khz wav file, and let's be the elementary level of the 16 bits resolution our unit of measurment.

Let's resample the wav to, say 6 MHz (ideally infinite sample rate)Now, let's add some 6 kHz highpassed square spread dither, at a level of 1 bit out of 16 (1 unit) peak to peak.

The dither being highpassed with no frequency below 6 kHz, the average of all added values within a 1/6000 s time interval is zero (no "DC offset").
Let's assume for convenience,  that the 24 to 16 bits conversion is made by nearest neighbour instead of truncation. Last, let's assume that we'll convert the 6Mhz 16 bits back to 6 kHz 24 bits averaging the 1000 (ideally infinite) samples that are inside the 1/6000 s time window. (Rough antialias).

If the original wave level was zero for this sample, all dithered values will be between 0.5 and -0.5, therefore rounded to 0, and the average will be 0.

If the original wave level was 0.5, dithered values will be equally (square dither) distrubuted in the 0-1 interval, therefore 50% will be rounded to 0, and  50 % to 1. Therefore the average will be 0.5

Original=0.6
-> dithered equally distributed within 0.1 and 1.1
-> 40% rounded to 0, 60 % rounded to 1
-> average = 0.6

Original=x :
(where frac(x) is x modulo 1)

(1-frac(x)) *100 % are rounded to int(x)
frac(x) *100 % are rounded to int(x)+1

-> average = (1-frac(x))*int(x)+frac(x)*(int(x)+1)
=1*int(x)-frac(x)*int(x)+ frac(x)*(int(x)+1)
=int(x)+frac(x)*(int(x)+1-int(x))
=int(x)+frac(x)
=x

Therefore the original 6kHz 24 bits wave is perfectly kept at 16 bits if the dither is a square spread with infinite sample rate highpassed at at least 6 kHz.

Does it make more sense ?

Dither explained, by Nika

Reply #18
Quote
Originally posted by Pio2001


Well, I'll try to explain better :

Does it make more sense ?


No.

You need some math knowledge in statistics, system theory
and coding theory to be able to understand the problems. I only know the German vocabulary for the stuff you need to understand
the background of the different quantization processes.

And please don't look at the wave forms of a PCM signal.
The ear can't see the waveform. That's why ADPCM is not the
best lossy compressor.
--  Frank Klemm

Dither explained, by Nika

Reply #19
Frank,

I hope no offence was taken by my "nit-picking" reference. I was just trying to steer the topic towards the issue at hand: dithering. Nika's references to noise-shaping were asides to the dithering issue, as I understood.

Most of the issues taken with Nika's paper, as far as I can see, are with interpretations of phrasology, terminology and verbage. I have not seen any refutation of Nika's explaination of dither in a basic scientific level as has been claimed.

Example: What is the difference between "square probability" and "rectangular probability"? Verbage. Or, ego, perhaps...either way, parsing words can be fun, but not always entirely useful or time-efficient.

Quote
posted by 2Bdecided:
I was reticent to post anything to the prosoundweb board. I don't know anything about that specific board, but from the name I feared it would be like other "recording people's" boards I've read: the people know more about music making than technology. 

This is fine and good (especially if you're making music!) but it also means that, if you state a scientific or mathematical fact, you tend to spend the next 20 pages explaining it and defending it, and at the end they dismiss it, just saying "well, I'll just trust my ears". 

Trusting your ears is the ultimate gold standard, but if your ears are wrecked, your monitors came from radioshack, and someone can prove that what you're doing is damaging the sound, you should take notice - not just say "I trust my ears" and carry on as you always have.


Amen, good brother.

I, too, have been frustrated by this very issue on the "audio" boards. But guess what: That's why I am so encouraging of peeps like Nika and his efforts to explain these scientific issues in ways that the average Joe can understand.

As a composer of original music, I depend upon engineers to translate my works in the highest quality possible, with cost-efficient needs in mind.

As such, I have taken engineers to task over issues such as the supposed audible benefits of recording at 96Kz, and the supposed benefits (or lack thereof) of mastering to DSD.

The lack of understanding in the underlying basics of these media on the part of the general audio engineering community amazes me. There is an information gap. So, if I seem extraordinarily exhuberent in my defence of peeps like Nika, who are taking steps to fill that gap, please excuse me.

I do not trust my own ears entirely, so I will not trust anyone else's ears entirely, either. I personally would like a mathematical reference from which to base my ear's impressions. The two should go hand-in-hand. We listen, yes, but at the same time, we are "looking under the hood" for a way to put those listening experiences into context.

Dr. Stanley Lipshitz has written some comprehensive mathematical treatises on dithering. A few of us can understand them. Nika Aldrich has a way of explaining those concepts so that more can understand them. I believe it behooves us all to encourage that sort of effort, in the spirit of "Open Source."

Your mileage may vary...

Dither explained, by Nika

Reply #20
Quote
Originally posted by Frank Klemm

No.


Forget it, then, it doesn't matter...

I'll read the more technical papers. (I gave up math when they tried to demonstrate us that the Christoffel Symbol was not a tensor, but I should be able to follow on anyway  )

Dither explained, by Nika

Reply #21
So what dither settings would be recommended for use with the mppdec24? The description in the mpp manual.txt is a little over my head:
Quote
--dither x
Amount of dither added. 0.0 is no dither, 1.0 is 1/2 LSB dither.   Useful is 0.0...1.7 depending on the noise floor of the original audio, listening level, used bits and much more. Default is a good guess depending on the bits used (--bits) and the usage of --shape.

Dither explained, by Nika

Reply #22
Quote
Originally posted by macdaddy
So what dither settings would be recommended for use with the mppdec24? The description in the mpp manual.txt is a little over my head:


mppdec16, mppdec24 and mppdec32 should be
compiled from the current source files.
Otherwise the may be possible enhancements
of these versions are smaller than the
effect of non-fixed bugs. The binaries are really outdated.

The current implementation uses --dither 1
for a perfect amount of dither which is absolutely
distortion free.

If the source contains some noise or if some
distortions are allowed, dither can be reduced.
experiment with

  --scale 256 --bits 8 --dither 0.00
...
  --scale 256 --bits 8 --dither 1.00

Also
  --shape 0
...
  --shape 3

can be useful. With these settings you degrade
your sound card to a 8 bit sound card,
16 bit soundcards have 48, 24 bit 96 dB more
headroom, so don't listenen to the quanization
noise at too high sound presure levels.
Noise should have at most 25 dB(A) for 16 bit
and -25 dB(A) for 24 bit sound cards. This is
enough for 140 dB max. SPL.
--  Frank Klemm

Dither explained, by Nika

Reply #23
Quote
Originally posted by Frank Klemm

mppdec16, mppdec24 and mppdec32 should be
compiled from the current source files.
Otherwise the may be possible enhancements
of these versions are smaller than the 
effect of non-fixed bugs. The binaries are really outdated.

These should be recent enough: http://www.saunalahti.fi/~cse/mppdec_1.01j.zip

Edit: new version

Dither explained, by Nika

Reply #24
Quote
Originally posted by Case

These should be recent enough: http://www.saunalahti.fi/~cse/mppdec_1.01j.zip

Edit: new version


Hope this compiled from 1.01j20, not from 1.01j11...13. Call mppdec16 and look
for the range proposal of --dither:

  old: 0.0-1.7
  new: 0.00-1.00

Old versions use different dither, new
version uses more sophisticated dither,
noise shaping remains the same.

Linux binaries also available on my
webpage.

A good listening example is
on http://www.uni-jena.de/~pfk/mpp/testcase.html

the sample:
http://www.uni-jena.de/~pfk/mpp/audio2/Submarine.pac

(420 KByte). Encode it as braindead, decode it
using the settings I mentioned above.

Also a short list of all quantization methods I
know:

http://www.uni-jena.de/~pfk/mpp/Dieter.txt
--  Frank Klemm