<< ctxmodel.net

Q. What if we use PID controller as counter or probability mapper?

That's reversing the order there :-)
I mean, a good _statistical_ source model (3 models, in fact - source and integral and differential data) is required to implement a good and stable PID controller. Btw, the idea itself (to mix in the predictions from restructured data) works great, but normally requires too many resources to work, so is quite rare to see. Still, I made a model for float-point numbers like that to compress geo from Calgary Corpus, and tested various implementation of MtF/DC/etc mixed with a direct context model.

Also modelling is a highly important topic in many areas and as a result there're many whole theories with their own terminology, techniques and applications - like NN, fuzzy logic, automation, economics, statistics etc etc. And most of these techniques usually can be applied to compression... commonly with pitiful results, because most of these theories have the same flaw: they have no objective metric, so inventors of new techniques are generally able to prove what they want.

And my point was that having a separate differential models for analog data generally helps (you'd like to have like 4-5 delta orders actually), and an integral model(s) might help too, for the data might be initially differential.

As an example of this, here's a geo file compressor which I mentioned: http://shelwien.googlepages.com/FLTgeo3b1.rar
It still compresses geo 10% better than paq8 even though it was written 5 years ago, even without SSE.

The actual compressor there is the geopack program, which mixes the models of 4 linear transformations of 32bit audio data:
  D0.Prepare( u*0.75 );
  D1.Prepare( u*0.90 );
  D2.Prepare( v+1.915*(u-v) );
  w = 18.0/256;
  D3.Prepare( vv+2.88*(w*(v-vv)+(1-w)*(u-v)) );
u=s[i-1],v=s[i-2],vv=s[i-3] -- the values of 3 previous samples.
  < Apocalyptica - Path; 44100hz 16bit mono >
  path_m.wav   16363160
  path_m.rar   12210607
  path_m.ari   11578466 // 16-to-32 + geopack
  path_m.flac  11489270 // flac -8

  < Apocalyptica - Path; 8000hz 16bit mono >
  path_m_8k.wav  2968418
  path_m_8k.rar  2804181
  path_m_8k.flac 2725730 // flac -8
  path_m_8k.ari  2686211 // 16-to-32 + geopack
The audio CM might seem similar to common "universal" CMs (with prefix contexts), but, its not that simple. Eg. suppose that we have a sinusoidal signal with unknown parameters. Then, using this:
  sin(x+2*d) = 2*sin(x+d)*cos(d)-sin(x)
we can adjust a linear predictor so that the "prediction error" would nearly turn into a sequence of zeros (it won't be possible to precisely estimate with fixed sampling precision). But the statistics of original samples in context of this "error" would be bad for compression... deltas would be mostly 0,1,-1 and won't have much correlation with the data.

Well, what I'm trying to say is that there're different correlations for different sample values and its generally wrong to compute the whole distribution at once. The most precise would be unary model, but the delta approximation seems to work good enough for audio (I mean subtracting the extrapolation and modelling the difference). But that still leaves the problem of remapping the submodel distrubitions into a single space for mixing (geopack does that).

Still, creating a good CM audio compressor is totally nontrivial, as there're tasks like separating the signal into tracks (unmixing) - its good for compression, but really troublesome.
2013-07-26 07:13:54                 >
2014-11-27 06:58:13                 >
2015-01-12 06:24:44                 >

Write a comment: