summaryrefslogtreecommitdiffstats
path: root/ml/dlib/dlib/lzp_buffer/lzp_buffer_kernel_1.h
diff options
context:
space:
mode:
Diffstat (limited to 'ml/dlib/dlib/lzp_buffer/lzp_buffer_kernel_1.h')
-rw-r--r--ml/dlib/dlib/lzp_buffer/lzp_buffer_kernel_1.h236
1 files changed, 0 insertions, 236 deletions
diff --git a/ml/dlib/dlib/lzp_buffer/lzp_buffer_kernel_1.h b/ml/dlib/dlib/lzp_buffer/lzp_buffer_kernel_1.h
deleted file mode 100644
index f24d74eee..000000000
--- a/ml/dlib/dlib/lzp_buffer/lzp_buffer_kernel_1.h
+++ /dev/null
@@ -1,236 +0,0 @@
-// Copyright (C) 2005 Davis E. King (davis@dlib.net)
-// License: Boost Software License See LICENSE.txt for the full license.
-#ifndef DLIB_LZP_BUFFER_KERNEl_1_
-#define DLIB_LZP_BUFFER_KERNEl_1_
-
-#include "../algs.h"
-#include "lzp_buffer_kernel_abstract.h"
-
-namespace dlib
-{
-
- template <
- typename sbuf
- >
- class lzp_buffer_kernel_1
- {
- /*!
- REQUIREMENTS ON sbuf
- sbuf is an implementation of sliding_buffer/sliding_buffer_kernel_abstract.h
- T == unsigned char
-
- INITIAL VALUE
- - buffer.size() == the size as defined by the constructor
- - table_size == the number of elements in the table array
- - for all i: buffer[i] == 0
- - for all i: table[i] == buffer.size()
-
- CONVENTION
- - table_size == the number of elements in the table array
- - size() == buffer.size()
- - operator[](i) == buffer[i]
-
- - if (table[hash()] != buffer.size()) then
- - buffer.get_element_index(table[hash()]) == the index we will
- predict for the current context
- - else
- - there is no prediction for the current context
-
- - last_element == buffer.size()-1
-
-
- This is LZP with just an order-3 model without context confirmation.
-
- !*/
-
- public:
-
- explicit lzp_buffer_kernel_1 (
- unsigned long buffer_size
- );
-
- virtual ~lzp_buffer_kernel_1 (
- );
-
- void clear(
- );
-
- inline void add (
- unsigned char symbol
- );
-
- inline unsigned long predict_match (
- unsigned long& index
- );
-
- inline size_t size (
- ) const;
-
- inline unsigned char operator[] (
- unsigned long index
- ) const;
-
- private:
-
- inline unsigned long hash (
- ) const
- /*!
- ensures
- - returns a hash computed from the current context. This hash
- is always in the range for table.
- !*/
- {
- unsigned long temp = buffer[0];
- temp <<= 16;
- unsigned long temp2 = buffer[1];
- temp2 <<= 8;
- unsigned long temp3 = buffer[2];
- temp = temp|temp2|temp3;
-
- temp = ((temp>>11)^temp)&0xFFFF;
-
- return temp;
- }
-
- sbuf buffer;
- const unsigned long table_size;
- unsigned long* const table;
- unsigned long last_element;
-
- // restricted functions
- lzp_buffer_kernel_1(const lzp_buffer_kernel_1<sbuf>&); // copy constructor
- lzp_buffer_kernel_1<sbuf>& operator=(const lzp_buffer_kernel_1<sbuf>&); // assignment operator
-
- };
-
-// ----------------------------------------------------------------------------------------
-// ----------------------------------------------------------------------------------------
- // member function definitions
-// ----------------------------------------------------------------------------------------
-// ----------------------------------------------------------------------------------------
-
- template <
- typename sbuf
- >
- lzp_buffer_kernel_1<sbuf>::
- lzp_buffer_kernel_1 (
- unsigned long buffer_size
- ) :
- table_size(65536),
- table(new unsigned long[table_size])
- {
- buffer.set_size(buffer_size);
-
- for (unsigned long i = 0; i < buffer.size(); ++i)
- buffer[i] = 0;
-
- for (unsigned long i = 0; i < table_size; ++i)
- table[i] = buffer.size();
-
- last_element = buffer.size()-1;
- }
-
-// ----------------------------------------------------------------------------------------
-
- template <
- typename sbuf
- >
- lzp_buffer_kernel_1<sbuf>::
- ~lzp_buffer_kernel_1 (
- )
- {
- delete [] table;
- }
-
-// ----------------------------------------------------------------------------------------
-
- template <
- typename sbuf
- >
- void lzp_buffer_kernel_1<sbuf>::
- clear(
- )
- {
- for (unsigned long i = 0; i < buffer.size(); ++i)
- buffer[i] = 0;
-
- for (unsigned long i = 0; i < table_size; ++i)
- table[i] = buffer.size();
- }
-
-// ----------------------------------------------------------------------------------------
-
- template <
- typename sbuf
- >
- void lzp_buffer_kernel_1<sbuf>::
- add (
- unsigned char symbol
- )
- {
- buffer.rotate_left(1);
- buffer[0] = symbol;
- }
-
-// ----------------------------------------------------------------------------------------
-
- template <
- typename sbuf
- >
- unsigned long lzp_buffer_kernel_1<sbuf>::
- predict_match (
- unsigned long& index
- )
- {
- const unsigned long i = hash();
-
- if (table[i] != buffer.size())
- {
- index = buffer.get_element_index(table[i]);
-
- if (index > 20)
- {
- // update the prediction for this context
- table[i] = buffer.get_element_id(last_element);
- }
- return 3;
- }
- else
- {
- // update the prediction for this context
- table[i] = buffer.get_element_id(last_element);
- return 0;
- }
- }
-
-// ----------------------------------------------------------------------------------------
-
- template <
- typename sbuf
- >
- size_t lzp_buffer_kernel_1<sbuf>::
- size (
- ) const
- {
- return buffer.size();
- }
-
-// ----------------------------------------------------------------------------------------
-
- template <
- typename sbuf
- >
- unsigned char lzp_buffer_kernel_1<sbuf>::
- operator[] (
- unsigned long index
- ) const
- {
- return buffer[index];
- }
-
-// ----------------------------------------------------------------------------------------
-
-}
-
-#endif // DLIB_LZP_BUFFER_KERNEl_1_
-