26 #define CCI_OPTION_2D 1 // 2D compression (instead of 1D)
27 #define CCI_OPTION_EOL 2 // There are EOL-Codes at the end of each line.
28 #define CCI_OPTION_BYTEALIGNEOL 4 // Filling bits before each EOL-Code, so that
30 #define CCI_OPTION_BYTEALIGNROW 8 // Rows always start byte aligned
31 #define CCI_OPTION_INVERSEBITORDER 16
53 : m_bSuccess(bSuccess), m_bBufferUnchanged(bBufferUnchanged)
74 sal_uInt16 nHuffmanTableSize,
75 sal_uInt16 nMaxCodeBits);
84 sal_uInt16 nMaxCodeBits);
87 sal_uInt16 nBitPos, sal_uInt16 nNumBits,
91 sal_uInt16 nBitPos,
sal_uInt8 nBlackOrWhite);
CCIDecompressor(sal_uInt32 nOptions, sal_uInt32 nImageWidth)
sal_uInt16 ReadCodeAndDecode(const CCILookUpTableEntry *pLookUp, sal_uInt16 nMaxCodeBits)
std::unique_ptr< sal_Int32[]> pData
sal_uInt16 m_nInputBitsBufSize
std::array< CCILookUpTableEntry, 1<< 10 > m_p2DModeLookUp
std::array< CCILookUpTableEntry, 1<< 13 > m_pBlackLookUp
DecompressStatus(bool bSuccess, bool bBufferUnchanged)
std::array< CCILookUpTableEntry, 1<< 11 > m_pUncompLookUp
void StartDecompression(SvStream &rIStream)
sal_uInt8 ReadBlackOrWhite()
DecompressStatus DecompressScanline(sal_uInt8 *pTarget, sal_uInt64 nTargetBits, bool bLastLine)
std::unique_ptr< sal_uInt8[]> m_pLastLine
std::array< CCILookUpTableEntry, 1<< 13 > m_pWhiteLookUp
void MakeLookUp(const CCIHuffmanTableEntry *pHufTab, const CCIHuffmanTableEntry *pHufTabSave, CCILookUpTableEntry *pLookUp, sal_uInt16 nHuffmanTableSize, sal_uInt16 nMaxCodeBits)
sal_uInt32 m_nInputBitsBuf
static void FillBits(sal_uInt8 *pTarget, sal_uInt16 nTargetBits, sal_uInt16 nBitPos, sal_uInt16 nNumBits, sal_uInt8 nBlackOrWhite)
bool Read2DScanlineData(sal_uInt8 *pTarget, sal_uInt16 nTargetBits)
static sal_uInt16 CountBits(const sal_uInt8 *pData, sal_uInt16 nDataSizeBits, sal_uInt16 nBitPos, sal_uInt8 nBlackOrWhite)
std::unique_ptr< sal_uInt8[]> m_pByteSwap
bool Read1DScanlineData(sal_uInt8 *pTarget, sal_uInt16 nTargetBits)
sal_uInt64 m_nLastLineSize