diff options
Diffstat (limited to 'ml/dlib/dlib/entropy_encoder_model/entropy_encoder_model_kernel_1.h')
-rw-r--r-- | ml/dlib/dlib/entropy_encoder_model/entropy_encoder_model_kernel_1.h | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/ml/dlib/dlib/entropy_encoder_model/entropy_encoder_model_kernel_1.h b/ml/dlib/dlib/entropy_encoder_model/entropy_encoder_model_kernel_1.h deleted file mode 100644 index 29c82e5be..000000000 --- a/ml/dlib/dlib/entropy_encoder_model/entropy_encoder_model_kernel_1.h +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright (C) 2004 Davis E. King (davis@dlib.net) -// License: Boost Software License See LICENSE.txt for the full license. -#ifndef DLIB_ENTROPY_ENCODER_MODEL_KERNEl_1_ -#define DLIB_ENTROPY_ENCODER_MODEL_KERNEl_1_ - -#include "../algs.h" -#include "entropy_encoder_model_kernel_abstract.h" -#include "../assert.h" - -namespace dlib -{ - - template < - unsigned long alphabet_size, - typename entropy_encoder, - typename cc - > - class entropy_encoder_model_kernel_1 - { - /*! - REQUIREMENTS ON cc - cc is an implementation of conditioning_class/conditioning_class_kernel_abstract.h - cc::get_alphabet_size() == alphabet_size+1 - - INITIAL VALUE - Initially this object's finite context model is empty - - CONVENTION - &get_entropy_encoder() == coder - &order_0.get_global_state() == &gs - - This is an order-0 model. The last symbol in the order-0 context is - an escape into the order minus 1 context. - !*/ - - public: - - typedef entropy_encoder entropy_encoder_type; - - entropy_encoder_model_kernel_1 ( - entropy_encoder& coder - ); - - virtual ~entropy_encoder_model_kernel_1 ( - ); - - inline void clear( - ); - - inline void encode ( - unsigned long symbol - ); - - entropy_encoder& get_entropy_encoder ( - ) { return coder; } - - static unsigned long get_alphabet_size ( - ) { return alphabet_size; } - - private: - - entropy_encoder& coder; - typename cc::global_state_type gs; - cc order_0; - - // restricted functions - entropy_encoder_model_kernel_1(entropy_encoder_model_kernel_1<alphabet_size,entropy_encoder,cc>&); // copy constructor - entropy_encoder_model_kernel_1<alphabet_size,entropy_encoder,cc>& operator=(entropy_encoder_model_kernel_1<alphabet_size,entropy_encoder,cc>&); // assignment operator - - }; - -// ---------------------------------------------------------------------------------------- -// ---------------------------------------------------------------------------------------- - // member function definitions -// ---------------------------------------------------------------------------------------- -// ---------------------------------------------------------------------------------------- - - template < - unsigned long alphabet_size, - typename entropy_encoder, - typename cc - > - entropy_encoder_model_kernel_1<alphabet_size,entropy_encoder,cc>:: - entropy_encoder_model_kernel_1 ( - entropy_encoder& coder_ - ) : - coder(coder_), - order_0(gs) - { - COMPILE_TIME_ASSERT( 1 < alphabet_size && alphabet_size < 65535 ); - } - -// ---------------------------------------------------------------------------------------- - - template < - unsigned long alphabet_size, - typename entropy_encoder, - typename cc - > - entropy_encoder_model_kernel_1<alphabet_size,entropy_encoder,cc>:: - ~entropy_encoder_model_kernel_1 ( - ) - { - } - -// ---------------------------------------------------------------------------------------- - - template < - unsigned long alphabet_size, - typename entropy_encoder, - typename cc - > - void entropy_encoder_model_kernel_1<alphabet_size,entropy_encoder,cc>:: - clear( - ) - { - order_0.clear(); - } - -// ---------------------------------------------------------------------------------------- - - template < - unsigned long alphabet_size, - typename entropy_encoder, - typename cc - > - void entropy_encoder_model_kernel_1<alphabet_size,entropy_encoder,cc>:: - encode ( - unsigned long symbol - ) - { - unsigned long low_count = 0, high_count = 0, total_count = 0; - - // if we have seen this symbol in the order-0 context - if (order_0.get_range(symbol,low_count,high_count,total_count)) - { - // update the count for this symbol - order_0.increment_count(symbol,2); - // encode this symbol - coder.encode(low_count,high_count,total_count); - return; - } - - // if we are here then the symbol does not appear in the order-0 context - - - // since we have never seen the current symbol in this context - // escape from order-0 context - order_0.get_range(alphabet_size,low_count,high_count,total_count); - coder.encode(low_count,high_count,total_count); - // increment the count for the escape symbol - order_0.increment_count(alphabet_size); - - // update the count for this symbol - order_0.increment_count(symbol,2); - - // use order minus one context - coder.encode(symbol,symbol+1,alphabet_size); - - } - -// ---------------------------------------------------------------------------------------- - -} - -#endif // DLIB_ENTROPY_ENCODER_MODEL_KERNEl_1_ - |