libopenraw
lib
huffman.hpp
1
/* -*- mode:c++; tab-width:4; c-basic-offset:4 -*- */
2
/*
3
* libopenraw - huffman.h
4
*
5
* Copyright (C) 2008 Rafael Avila de Espindola.
6
*
7
* This library is free software: you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public License
9
* as published by the Free Software Foundation, either version 3 of
10
* the License, or (at your option) any later version.
11
*
12
* This library is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with this library. If not, see
19
* <http://www.gnu.org/licenses/>.
20
*/
21
22
#ifndef OR_INTERNALS_HUFFMAN_H_
23
#define OR_INTERNALS_HUFFMAN_H_
24
25
#include <string>
26
27
namespace
OpenRaw
{
28
namespace
Internals {
29
30
class
BitIterator;
31
32
struct
HuffmanNode
{
33
unsigned
isLeaf :1;
34
unsigned
data :31;
35
};
36
37
class
HuffmanDecoder
{
38
const
HuffmanNode
*
const
m_p;
39
40
void
printTable_(std::string,
unsigned
int
)
const
;
41
public
:
42
HuffmanDecoder
(
const
HuffmanNode
*
const
);
43
void
printTable()
const
;
44
unsigned
int
decode(
BitIterator
& i);
45
};
46
47
}
48
}
49
50
#endif
OpenRaw::Internals::BitIterator
Definition:
bititerator.hpp:31
OpenRaw::Internals::HuffmanDecoder
Definition:
huffman.hpp:37
OpenRaw
CIFF is the container for CRW files. It is an attempt from Canon to make this a standard....
Definition:
arwfile.cpp:30
OpenRaw::Internals::HuffmanNode
Definition:
huffman.hpp:32
Generated by
1.9.3