23 #include "nefdiffiterator.hpp" 28 int NefDiffIterator::get()
30 unsigned int t = m_decoder.decode(m_iter);
31 unsigned int len = t & 15;
32 unsigned int shl = t >> 4;
35 unsigned int bits = m_iter.get(len - shl);
37 int diff = ((bits << 1) + 1) << shl >> 1;
38 if ((diff & (1 << (len-1))) == 0)
39 diff -= (1 << len) - !shl;
58 const HuffmanNode NefDiffIterator::Lossy12Bit[] = {
103 const HuffmanNode NefDiffIterator::Lossy14Bit[] = {
150 const HuffmanNode NefDiffIterator::LossLess14Bit[] = {
182 NefDiffIterator::NefDiffIterator(
const HuffmanNode*
const t,
183 const uint8_t *p,
size_t size) :
184 m_iter(p, size), m_decoder(t)
CIFF is the container for CRW files. It is an attempt from Canon to make this a standard. I guess it failed.