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
unsigned
int
m_numNodes;
39
const
HuffmanNode
*
const
m_p;
40
41
void
printTable_(std::string,
unsigned
int
)
const
;
42
public
:
43
HuffmanDecoder
(
const
HuffmanNode
*
const
);
44
void
printTable()
const
;
45
unsigned
int
decode(
BitIterator
& i);
46
};
47
48
}
49
}
50
51
#endif
OpenRaw
CIFF is the container for CRW files. It is an attempt from Canon to make this a standard. I guess it failed.
Definition:
arwfile.cpp:30
OpenRaw::Internals::HuffmanDecoder
Definition:
huffman.hpp:37
OpenRaw::Internals::BitIterator
Definition:
bititerator.hpp:31
OpenRaw::Internals::HuffmanNode
Definition:
huffman.hpp:32
Generated by
1.8.13