1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
// Copyright (C) 2004 Davis E. King (davisking@users.sourceforge.net)
// License: Boost Software License See LICENSE.txt for the full license.
#ifndef DLIB_ENTROPY_ENCODER_MODEl_
#define DLIB_ENTROPY_ENCODER_MODEl_
#include "entropy_encoder_model/entropy_encoder_model_kernel_1.h"
#include "entropy_encoder_model/entropy_encoder_model_kernel_2.h"
#include "entropy_encoder_model/entropy_encoder_model_kernel_3.h"
#include "entropy_encoder_model/entropy_encoder_model_kernel_4.h"
#include "entropy_encoder_model/entropy_encoder_model_kernel_5.h"
#include "entropy_encoder_model/entropy_encoder_model_kernel_6.h"
#include "entropy_encoder_model/entropy_encoder_model_kernel_c.h"
#include "conditioning_class.h"
#include "memory_manager.h"
#include "sliding_buffer.h"
namespace dlib
{
template <
unsigned long alphabet_size,
typename entropy_encoder
>
class entropy_encoder_model
{
entropy_encoder_model() {}
typedef typename conditioning_class<alphabet_size+1>::kernel_1a cc1;
typedef typename conditioning_class<alphabet_size+1>::kernel_2a cc2;
typedef typename conditioning_class<alphabet_size+1>::kernel_3a cc3;
typedef typename conditioning_class<alphabet_size+1>::kernel_4a cc4a;
typedef typename conditioning_class<alphabet_size+1>::kernel_4b cc4b;
typedef typename conditioning_class<alphabet_size+1>::kernel_4c cc4c;
typedef typename conditioning_class<alphabet_size+1>::kernel_4d cc4d;
public:
//----------- kernels ---------------
// kernel_1
typedef entropy_encoder_model_kernel_1<alphabet_size,entropy_encoder,cc1>
kernel_1a;
typedef entropy_encoder_model_kernel_c<kernel_1a>
kernel_1a_c;
typedef entropy_encoder_model_kernel_1<alphabet_size,entropy_encoder,cc2>
kernel_1b;
typedef entropy_encoder_model_kernel_c<kernel_1b>
kernel_1b_c;
typedef entropy_encoder_model_kernel_1<alphabet_size,entropy_encoder,cc3>
kernel_1c;
typedef entropy_encoder_model_kernel_c<kernel_1c>
kernel_1c_c;
// --------------------
// kernel_2
typedef entropy_encoder_model_kernel_2<alphabet_size,entropy_encoder,cc1,cc1>
kernel_2a;
typedef entropy_encoder_model_kernel_c<kernel_2a>
kernel_2a_c;
typedef entropy_encoder_model_kernel_2<alphabet_size,entropy_encoder,cc2,cc2>
kernel_2b;
typedef entropy_encoder_model_kernel_c<kernel_2b>
kernel_2b_c;
typedef entropy_encoder_model_kernel_2<alphabet_size,entropy_encoder,cc3,cc3>
kernel_2c;
typedef entropy_encoder_model_kernel_c<kernel_2c>
kernel_2c_c;
typedef entropy_encoder_model_kernel_2<alphabet_size,entropy_encoder,cc2,cc4b>
kernel_2d;
typedef entropy_encoder_model_kernel_c<kernel_2d>
kernel_2d_c;
// --------------------
// kernel_3
typedef entropy_encoder_model_kernel_3<alphabet_size,entropy_encoder,cc1,cc4b>
kernel_3a;
typedef entropy_encoder_model_kernel_c<kernel_3a>
kernel_3a_c;
typedef entropy_encoder_model_kernel_3<alphabet_size,entropy_encoder,cc2,cc4b>
kernel_3b;
typedef entropy_encoder_model_kernel_c<kernel_3b>
kernel_3b_c;
typedef entropy_encoder_model_kernel_3<alphabet_size,entropy_encoder,cc3,cc4b>
kernel_3c;
typedef entropy_encoder_model_kernel_c<kernel_3c>
kernel_3c_c;
// --------------------
// kernel_4
typedef entropy_encoder_model_kernel_4<alphabet_size,entropy_encoder,200000,4>
kernel_4a;
typedef entropy_encoder_model_kernel_c<kernel_4a>
kernel_4a_c;
typedef entropy_encoder_model_kernel_4<alphabet_size,entropy_encoder,1000000,5>
kernel_4b;
typedef entropy_encoder_model_kernel_c<kernel_4b>
kernel_4b_c;
// --------------------
// kernel_5
typedef entropy_encoder_model_kernel_5<alphabet_size,entropy_encoder,200000,4>
kernel_5a;
typedef entropy_encoder_model_kernel_c<kernel_5a>
kernel_5a_c;
typedef entropy_encoder_model_kernel_5<alphabet_size,entropy_encoder,1000000,5>
kernel_5b;
typedef entropy_encoder_model_kernel_c<kernel_5b>
kernel_5b_c;
typedef entropy_encoder_model_kernel_5<alphabet_size,entropy_encoder,2500000,7>
kernel_5c;
typedef entropy_encoder_model_kernel_c<kernel_5c>
kernel_5c_c;
// --------------------
// kernel_6
typedef entropy_encoder_model_kernel_6<alphabet_size,entropy_encoder>
kernel_6a;
typedef entropy_encoder_model_kernel_c<kernel_6a>
kernel_6a_c;
};
}
#endif // DLIB_ENTROPY_ENCODER_MODEl_