shithub: opus

Download patch

ref: 38b6d479a48c65b309deb24873f4ed0cbe94b227
parent: 0c387d7818a3f83442cd14b8ab20e17dc262f1a0
author: Jean-Marc Valin <[email protected]>
date: Tue Jan 29 03:04:01 EST 2008

remove prob{enc,dec,mod} that were no longer needed

--- a/libcelt/probdec.c
+++ /dev/null
@@ -1,59 +1,0 @@
-#include <stdlib.h>
-#include <string.h>
-#include "probdec.h"
-#include "bitrdec.h"
-
-
-
-/*Gets the cumulative frequency count between _lo and _hi, as well as the
-   cumulative frequency count below _lo.*/
-static unsigned ec_probmod_get_total(ec_probmod *_this,unsigned *_fl,
- unsigned _lo,unsigned _hi){
-  *_fl=ec_bitree_get_cumul(_this->bitree,_lo);
-  return ec_bitree_get_cumul(_this->bitree,_hi)-*_fl;
-}
-
-static int ec_probmod_find_and_update(ec_probmod *_this,ec_probsamp *_samp,
- unsigned _freq){
-  int sym;
-  sym=ec_bitree_find_and_update(_this->bitree,_this->sz,_this->split,
-   _freq,&_samp->fl,_this->inc);
-  _samp->fs=ec_bitree_get_freq(_this->bitree,sym)-_this->inc;
-  _this->ft+=_this->inc;
-  if(_this->ft>_this->thresh){
-    ec_bitree_halve(_this->bitree,_this->sz,_this->split);
-    _this->ft=ec_bitree_get_cumul(_this->bitree,_this->sz);
-  }
-  return sym;
-}
-
-
-
-int ec_probmod_read(ec_probmod *_this,ec_dec *_dec){
-  ec_probsamp samp;
-  unsigned    freq;
-  int         sym;
-  samp.ft=_this->ft;
-  freq=ec_decode(_dec,samp.ft);
-  sym=ec_probmod_find_and_update(_this,&samp,freq);
-  ec_dec_update(_dec,samp.fl,samp.fl+samp.fs,samp.ft);
-  return sym;
-}
-
-int ec_probmod_read_range(ec_probmod *_this,ec_dec *_dec,int _lo,int _hi){
-  ec_probsamp samp;
-  unsigned    freq;
-  unsigned    base;
-  int         sz;
-  int         sym;
-  sz=_this->sz;
-  _lo=EC_MINI(_lo,sz);
-  _hi=EC_MINI(_hi,sz);
-  if(_hi<=_lo)return -1;
-  samp.ft=ec_probmod_get_total(_this,&base,_lo,_hi);
-  freq=ec_decode(_dec,samp.ft);
-  sym=ec_probmod_find_and_update(_this,&samp,freq+base);
-  samp.fl-=base;
-  ec_dec_update(_dec,samp.fl,samp.fl+samp.fs,samp.ft);
-  return sym;
-}
--- a/libcelt/probdec.h
+++ /dev/null
@@ -1,23 +1,0 @@
-#if !defined(_probdec_H)
-# define _probdec_H (1)
-# include "probmod.h"
-# include "entdec.h"
-
-
-
-/*Decodes a single symbol using the given probability model and entropy
-   decoder.
-  Return: The decoded symbol.*/
-int ec_probmod_read(ec_probmod *_this,ec_dec *_dec);
-/*Decodes a single symbol using the given probability model and entropy
-   decoder, restricted to a given subrange of the available symbols.
-  This effectively sets the frequency counts of all the symbols outside this
-   range to zero, decodes the symbol, then restores the counts to their
-   original values, and updates the model.
-  _lo: The first legal symbol to decode.
-  _hi: One greater than the last legal symbol to decode.
-       This must be greater than _lo.
-  Return: The decoded symbol.*/
-int ec_probmod_read_range(ec_probmod *_this,ec_dec *_dec,int _lo,int _hi);
-
-#endif
--- a/libcelt/probenc.c
+++ /dev/null
@@ -1,50 +1,0 @@
-#include <string.h>
-#include "probenc.h"
-#include "bitrenc.h"
-
-
-
-static void ec_probmod_samp_and_update(ec_probmod *_this,ec_probsamp *_samp,
- unsigned _sym){
-  unsigned sz;
-  sz=_this->sz;
-  _samp->fs=ec_bitree_get_freq(_this->bitree,_sym);
-  _samp->fl=ec_bitree_get_cumul(_this->bitree,_sym);
-  _samp->ft=_this->ft;
-  ec_bitree_update(_this->bitree,sz,_sym,_this->inc);
-  _this->ft+=_this->inc;
-  if(_this->ft>_this->thresh){
-    ec_bitree_halve(_this->bitree,sz,_this->split);
-    _this->ft=ec_bitree_get_cumul(_this->bitree,sz);
-  }
-}
-
-static void ec_probmod_samp_and_update_range(ec_probmod *_this,
- ec_probsamp *_samp,int _sym,int _lo,int _hi){
-  unsigned base;
-  int      sz;
-  sz=_this->sz;
-  base=ec_bitree_get_cumul(_this->bitree,_lo);
-  _samp->fs=ec_bitree_get_freq(_this->bitree,_sym);
-  _samp->fl=ec_bitree_get_cumul(_this->bitree,_sym)-base;
-  _samp->ft=ec_bitree_get_cumul(_this->bitree,_hi)-base;
-  ec_bitree_update(_this->bitree,sz,_sym,_this->inc);
-  _this->ft+=_this->inc;
-  if(_this->ft>_this->thresh){
-    ec_bitree_halve(_this->bitree,sz,_this->split);
-    _this->ft=ec_bitree_get_cumul(_this->bitree,sz);
-  }
-}
-
-void ec_probmod_write(ec_probmod *_this,ec_enc *_enc,int _sym){
-  ec_probsamp samp;
-  ec_probmod_samp_and_update(_this,&samp,_sym);
-  ec_encode(_enc,samp.fl,samp.fl+samp.fs,samp.ft);
-}
-
-void ec_probmod_write_range(ec_probmod *_this,ec_enc *_enc,int _sym,
- int _lo,int _hi){
-  ec_probsamp samp;
-  ec_probmod_samp_and_update_range(_this,&samp,_sym,_lo,_hi);
-  ec_encode(_enc,samp.fl,samp.fl+samp.fs,samp.ft);
-}
--- a/libcelt/probenc.h
+++ /dev/null
@@ -1,23 +1,0 @@
-#if !defined(_probenc_H)
-# define _probenc_H (1)
-# include "probmod.h"
-# include "entenc.h"
-
-/*Encodes a single symbol using the given probability model and entropy
-   encoder.
-  _sym: The symbol to encode.*/
-void ec_probmod_write(ec_probmod *_this,ec_enc *_enc,int _sym);
-/*Encodes a single symbol using the given probability model and entropy
-   encoder, restricted to a given subrange of the available symbols.
-  This effectively sets the frequency counts of all the symbols outside this
-   range to zero, encodes the symbol, then restores the counts to their
-   original values, and updates the models.
-  _sym: The symbol to encode.
-        The caller must ensure this falls in the range _lo<=_sym<_hi.
-  _lo:  The first legal symbol to encode.
-  _hi:  One greater than the last legal symbol to encode.
-        This must be greater than _lo.*/
-void ec_probmod_write_range(ec_probmod *_this,ec_enc *_enc,int _sym,
- int _lo,int _hi);
-
-#endif
--- a/libcelt/probmod.c
+++ /dev/null
@@ -1,32 +1,0 @@
-#include <stdlib.h>
-#include <string.h>
-#include "probmod.h"
-#include "bitree.h"
-
-void ec_probmod_init(ec_probmod *_this,unsigned _sz){
-  ec_probmod_init_full(_this,_sz,1U,1U<<23,NULL);
-}
-
-void ec_probmod_init_from_counts(ec_probmod *_this,unsigned _sz,
- const unsigned *_counts){
-  ec_probmod_init_full(_this,_sz,1U,1U<<23,_counts);
-}
-
-void ec_probmod_init_full(ec_probmod *_this,unsigned _sz,unsigned _inc,
- unsigned _thresh,const unsigned *_counts){
-  unsigned s;
-  _this->sz=_sz;
-  for(s=1;s<=_this->sz;s<<=1);
-  _this->split=s>>1;
-  _this->inc=_inc;
-  _this->thresh=_thresh;
-  _this->bitree=(unsigned *)malloc(_sz*sizeof(*_this->bitree));
-  if(_counts!=NULL)memcpy(_this->bitree,_counts,_sz*sizeof(*_this->bitree));
-  else for(s=0;s<_this->sz;s++)_this->bitree[s]=1;
-  ec_bitree_from_counts(_this->bitree,_sz);
-  _this->ft=ec_bitree_get_cumul(_this->bitree,_sz);
-}
-
-void ec_probmod_clear(ec_probmod *_this){
-  free(_this->bitree);
-}
--- a/libcelt/probmod.h
+++ /dev/null
@@ -1,73 +1,0 @@
-#if !defined(_probmod_H)
-# define _probmod_H (1)
-# include "entcode.h"
-
-typedef struct ec_probsamp     ec_probsamp;
-typedef struct ec_probmod      ec_probmod;
-
-/*A sample from a probability distribution.
-  This is the information needed to encode a symbol or update the decoder
-   state.*/
-struct ec_probsamp{
-  /*The cumulative frequency of all symbols preceding this one in the
-     alphabet.*/
-  unsigned fl;
-  /*The frequency of the symbol coded.*/
-  unsigned fs;
-  /*The total frequency of all symbols in the alphabet.*/
-  unsigned ft;
-};
-
-
-/*A simple frequency-count probability model.*/
-struct ec_probmod{
-  /*The number of symbols in this context.*/
-  int       sz;
-  /*The largest power of two less than or equal to sz.*/
-  int       split;
-  /*The amount by which to increment the frequency count of an observed
-     symbol.*/
-  unsigned  inc;
-  /*The current total frequency count.*/
-  unsigned  ft;
-  /*The maximum total frequency count allowed before the counts are rescaled.
-    Note that this should be larger than (inc+1>>1)+sz-1, since at most one
-     rescaling is done per decoded symbol.
-    Otherwise, this threshold might be exceeded.
-    This must be less than 2**23 for a range coder, and 2**31 for an
-     arithmetic coder.*/
-  unsigned  thresh;
-  /*The binary indexed tree used to keep track of the frequency counts.*/
-  unsigned *bitree;
-};
-
-
-/*Initializes a probability model of the given size.
-  The amount to increment and all frequency counts are initialized to 1.
-  The rescaling threshold is initialized to 2**23.
-  _sz: The number of symbols in this context.*/
-void ec_probmod_init(ec_probmod *_this,unsigned _sz);
-/*Initializes a probability model of the given size.
-  The amount to increment is initialized to 1.
-  The rescaling threshold is initialized to 2**23.
-  _sz:     The number of symbols in this context.
-  _counts: The initial frequency count of each symbol.*/
-void ec_probmod_init_from_counts(ec_probmod *_this,unsigned _sz,
- const unsigned *_counts);
-/*Initializes a probability model of the given size.
-  _sz:     The number of symbols in this context.
-  _inc:    The amount by which to increment the frequency count of an observed
-            symbol.
-  _thresh: The maximum total frequency count allowed before the counts are
-            rescaled.
-           See above for restrictions on this value.
-  _counts: The initial frequency count of each symbol, or NULL to initialize
-            each frequency count to 1.*/
-void ec_probmod_init_full(ec_probmod *_this,unsigned _sz,unsigned _inc,
- unsigned _thresh,const unsigned *_counts);
-/*Frees all memory used by this probability model.*/
-void ec_probmod_clear(ec_probmod *_this);
-
-
-
-#endif