sela
rice.hpp
Go to the documentation of this file.
1 #ifndef _RICE_H_
2 #define _RICE_H_
3 
6 
7 constexpr uint8_t MAX_RICE_PARAM = 20;
8 
9 namespace rice {
10 class RiceEncoder {
11 private:
12  const std::vector<int32_t>& input;
13  std::vector<uint64_t> unsignedInput;
14  std::vector<bool> bitOutput;
15  std::vector<size_t> bitSizes;
16  uint32_t optimumRiceParam;
17  size_t requiredBits;
18  inline void convertSignedToUnsigned();
19  inline void calculateOptimumRiceParam();
20  inline void generateEncodedBits();
21  inline void writeInts(std::vector<uint32_t>& output);
22 
23 public:
24  explicit RiceEncoder(const data::RiceDecodedData& decodedData);
26 };
27 
28 class RiceDecoder {
29 private:
30  const std::vector<uint32_t>& input;
31  std::vector<bool> bitInput;
32  std::vector<uint64_t> unsignedOutput;
33  uint32_t dataCount;
34  uint32_t optimumRiceParam;
35  inline void generateEncodedBits();
36  inline void generateDecodedUnsignedInts();
37  inline void convertUnsignedToSigned(std::vector<int32_t>& output);
38 
39 public:
40  explicit RiceDecoder(const data::RiceEncodedData& encodedData);
42 };
43 }
44 
45 #endif
const std::vector< uint32_t > & input
Definition: rice.hpp:30
data::RiceEncodedData process()
Definition: rice_encoder.cpp:73
std::vector< bool > bitOutput
Definition: rice.hpp:14
std::vector< uint64_t > unsignedOutput
Definition: rice.hpp:32
uint32_t optimumRiceParam
Definition: rice.hpp:16
void calculateOptimumRiceParam()
Definition: rice_encoder.cpp:20
void convertSignedToUnsigned()
Definition: rice_encoder.cpp:12
constexpr uint8_t MAX_RICE_PARAM
Definition: rice.hpp:7
uint32_t optimumRiceParam
Definition: rice.hpp:34
const std::vector< int32_t > & input
Definition: rice.hpp:12
std::vector< size_t > bitSizes
Definition: rice.hpp:15
RiceEncoder(const data::RiceDecodedData &decodedData)
Definition: rice_encoder.cpp:7
std::vector< bool > bitInput
Definition: rice.hpp:31
uint32_t dataCount
Definition: rice.hpp:33
Definition: rice_encoded_data.hpp:8
Definition: rice.hpp:10
Definition: rice.hpp:9
Definition: rice.hpp:28
void generateEncodedBits()
Definition: rice_encoder.cpp:35
std::vector< uint64_t > unsignedInput
Definition: rice.hpp:13
Definition: rice_decoded_data.hpp:8
void writeInts(std::vector< uint32_t > &output)
Definition: rice_encoder.cpp:61
size_t requiredBits
Definition: rice.hpp:17