Results 1 to 5 of 5

Thread: SSE, TSE & higher symbol probability estimations

  1. #1
    Member
    Join Date
    Feb 2008
    Posts
    31
    Thanks
    0
    Thanked 0 Times in 0 Posts
    1. SSE is useless for mixture of different predictions because it was not designed for this purpose. Probability interpolation in SSE is also nearly useless because compression gain is negligible and execution time grows at order of magnitude. Thus, We need modeler with following properties:
    a) possibility to attach new auxilary submodel without affecting to old ones;
    b) weak dependency on input probability;

    2. Suppose, We have some context model that generates probability estimation for symbol $Prob_i^0$, $i$ is count of encoded symbols. This estimation is input for SSE-modeler that generates estimation $Prob_i^1 = frac {Nom_i} {DeNom_i}$. Suppose, our auxilary submodel gives small correction to probability estimation $Prob_i^1$, for simplicity of calculations, We can choose this correction as $Prob_i = \frac {Nom_i + \varepsilon Nom_i} {DeNom_i + \varepsilon Nom_i}$. By weak definition of probability, $\sum_i Nom_i = \sum_i \delta_i DeNom_i$, $\delta_i = 1$ - symbol is encoded on $i$th step, $\delta_i = 0$ - coding failure. From this equation, We get value of $\varepsilon$:
    $$\varepsilon = \frac {\sum_i \delta_i DeNom_i - Nom_i} {\sum_i Nom_i - \delta_i Nom_i}$$
    Also, good choice for probability correction is $Prob_i = \frac {Nom_i} {DeNom_i + \varepsilon (DeNom_i-Nom_i)}$.

    3. Code sample for DeNom ~ 2^15:
    Code:
    extern int Nom, DeNom; 
    struct TSE_MODELER { 
    enum { S2_INIT=1 << 17, MAX_ADD=1 << 18, S1_BOUND=1 << 24 }; 
        void init() { S1=0; S2=S2_INIT; } 
        void tuneProb(int ndn[]) { 
            ndn[0]=Nom;                         ndn[1]=DeNom; 
            int i=CLAMP(MyMulDiv(S1,Nom,S2),1-Nom,MAX_ADD); 
            Nom += i;                           DeNom += i; 
            if (abs(S1) > S1_BOUND) { S1 >>= 1; S2 >>= (S2 > S1_BOUND/64); } 
            if (S2 > (1 << 30))     { S1 >>= 1; S2 >>= 1; } 
        } 
        void update0(int ndn[]) { S1 -= ndn[0]; S2 += ndn[0]; } 
        void update1(int ndn[]) { S1 += ndn[1]-ndn[0]; } 
        int S1, S2; 
    };

  2. #2
    Programmer osmanturan's Avatar
    Join Date
    May 2008
    Location
    Mersin, Turkiye
    Posts
    651
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Is it a bit messing, isn't it? Could you make it clear for us?
    BIT Archiver homepage: www.osmanturan.com

  3. #3
    Member
    Join Date
    Feb 2008
    Posts
    31
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Quote Originally Posted by osmanturan
    Is it a bit messing, isnt it? Could you make it clear for us?

    It is TeX notation. You can simply copy text to your notepad and compile it with LaTeX.

  4. #4
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,426
    Thanks
    223
    Thanked 1,053 Times in 565 Posts
    That's supposed to look like this:
    http://shelwien.googlepages.com/tex1.png

  5. #5
    Member
    Join Date
    Feb 2008
    Posts
    31
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Quote Originally Posted by Shelwien
    Thats supposed to look like this:
    Yes, it is pecisely that I meant. Thanks.
    I forgot to say that TSE-modelers can be linked sequentially: one modeler per one submodel.

Similar Threads

  1. Mixer vs 2D SSE
    By Shelwien in forum Forum Archive
    Replies: 26
    Last Post: 8th March 2008, 13:58
  2. Test & Benchmark: Incomparable
    By Gish in forum Forum Archive
    Replies: 17
    Last Post: 8th November 2007, 01:58
  3. Symbol ranking compression
    By Matt Mahoney in forum Forum Archive
    Replies: 21
    Last Post: 29th October 2007, 17:36
  4. qc & qazar compressors
    By encode in forum Forum Archive
    Replies: 3
    Last Post: 25th August 2007, 04:58
  5. FreeArc GUI - how it should look&feel?
    By Bulat Ziganshin in forum Forum Archive
    Replies: 31
    Last Post: 20th July 2007, 18:32

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •