2997 lines
135 KiB
C
2997 lines
135 KiB
C
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// INTEL CORPORATION PROPRIETARY INFORMATION
|
||
|
// This software is supplied under the terms of a license agreement or
|
||
|
// nondisclosure agreement with Intel Corporation and may not be copied
|
||
|
// or disclosed except in accordance with the terms of that agreement.
|
||
|
// Copyright(c) 2004-2009 Intel Corporation. All Rights Reserved.
|
||
|
//
|
||
|
// Intel(R) Performance Primitives
|
||
|
// Data Compression Library (ippDC)
|
||
|
//
|
||
|
*/
|
||
|
#if !defined( __IPPDC_H__ ) || defined( _OWN_BLDPCS )
|
||
|
#define __IPPDC_H__
|
||
|
|
||
|
#if defined (_WIN32_WCE) && defined (_M_IX86) && defined (__stdcall)
|
||
|
#define _IPP_STDCALL_CDECL
|
||
|
#undef __stdcall
|
||
|
#endif
|
||
|
|
||
|
#ifndef __IPPDEFS_H__
|
||
|
#include "ippdefs.h"
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/********************* Data Structures and Macro ****************************/
|
||
|
|
||
|
#if !defined( _OWN_BLDPCS )
|
||
|
|
||
|
/*
|
||
|
// VLC
|
||
|
*/
|
||
|
|
||
|
typedef struct {
|
||
|
Ipp32s value; /* current value */
|
||
|
Ipp32s code; /* the real bits code for the index */
|
||
|
Ipp32s length; /* the bit length of the value */
|
||
|
} IppsVLCTable_32s;
|
||
|
|
||
|
#endif /* _OWN_BLDPCS */
|
||
|
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
// Functions declarations
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
///////////////////////////////////////////////////////////////////////////// */
|
||
|
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippdcGetLibVersion
|
||
|
// Purpose: getting of the library version
|
||
|
// Returns: the structure of information about version
|
||
|
// of ippDC library
|
||
|
// Parameters:
|
||
|
//
|
||
|
// Notes: not necessary to release the returned structure
|
||
|
*/
|
||
|
IPPAPI( const IppLibraryVersion*, ippdcGetLibVersion, (void) )
|
||
|
|
||
|
/* Run Length Encoding */
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeRLE_8u
|
||
|
// Purpose: Performs the RLE encoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of source vector on input,
|
||
|
// pointer to the size of remainder on output
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the size of destination buffer on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output.
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsDstSizeLessExpected The size of destination vector less expected
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeRLE_8u, ( Ipp8u** ppSrc, int* pSrcLen,
|
||
|
Ipp8u* pDst, int* pDstLen ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeRLE_8u
|
||
|
// Purpose: Performs the RLE decoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of source vector on input,
|
||
|
// pointer to the size of remainder on output
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the size of destination buffer on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output.
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsDstSizeLessExpected The size of destination vector less expected
|
||
|
// ippStsSrcDataErr The source vector contains unsupported data
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeRLE_8u, ( Ipp8u** ppSrc, int* pSrcLen,
|
||
|
Ipp8u* pDst, int* pDstLen ))
|
||
|
|
||
|
/* Move To Front */
|
||
|
#if !defined ( _OWN_BLDPCS )
|
||
|
struct MTFState_8u;
|
||
|
typedef struct MTFState_8u IppMTFState_8u;
|
||
|
#endif
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsMTFInitAlloc_8u
|
||
|
// Purpose: Allocates necessary memory and initializes structure for
|
||
|
// the MTF transform
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pMTFState Pointer to the structure containing parameters for
|
||
|
// the MTF transform
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Pointer to structure is NULL
|
||
|
// ippMemAllocErr Can't allocate memory for pMTFState
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsMTFInitAlloc_8u, ( IppMTFState_8u** ppMTFState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsMTFInit_8u
|
||
|
// Purpose: Initializes parameters for the MTF transform
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pMTFState Pointer to the structure containing parameters for
|
||
|
// the MTF transform
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Pointer to structure is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsMTFInit_8u, ( IppMTFState_8u* pMTFState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsMTFGetSize_8u
|
||
|
// Purpose: Computes the size of necessary memory (in bytes) for
|
||
|
// structure of the MTF transform
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pMTFStateSize Pointer to the computed size of structure
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Pointer is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsMTFGetSize_8u, ( int* pMTFStateSize ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsMTFFree_8u
|
||
|
// Purpose: Frees allocated memory for MTF transform structure
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pMTFState Pointer to the structure containing parameters for
|
||
|
// the MTF transform
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(void, ippsMTFFree_8u, ( IppMTFState_8u* pMTFState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsMTFFwd_8u
|
||
|
// Purpose: Performs the forward MTF transform
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// pDst Pointer to the destination vector
|
||
|
// len Length of source/destination vectors
|
||
|
// pMTFState Pointer to the structure containing parameters for
|
||
|
// the MTF transform
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Length of the source vector is less or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsMTFFwd_8u, ( const Ipp8u* pSrc, Ipp8u* pDst, int len,
|
||
|
IppMTFState_8u* pMTFState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsMTFInv_8u
|
||
|
// Purpose: Performs the inverse MTF transform
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// pDst Pointer to the destination vector
|
||
|
// len Length of source/destination vectors
|
||
|
// pMTFState Pointer to the structure containing parameters for
|
||
|
// the MTF transform
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Length of the source vector is less or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsMTFInv_8u, ( const Ipp8u* pSrc, Ipp8u* pDst, int len,
|
||
|
IppMTFState_8u* pMTFState ))
|
||
|
|
||
|
/* Burrows - Wheeler Transform */
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsBWTFwdGetSize_8u
|
||
|
// Purpose: Computes the size of necessary memory (in bytes) for
|
||
|
// additional buffer for the forward BWT transform
|
||
|
//
|
||
|
// Parameters:
|
||
|
// wndSize Window size for the BWT transform
|
||
|
// pBWTFwdBuffSize Pointer to the computed size of buffer
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Pointer is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsBWTFwdGetSize_8u, ( int wndSize, int* pBWTFwdBuffSize ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsBWTFwd_8u
|
||
|
// Purpose: Performs the forward BWT transform
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// pDst Pointer to the destination vector
|
||
|
// len Length of source/destination vectors
|
||
|
// index Pointer to the index of first position for
|
||
|
// the inverse BWT transform
|
||
|
// pBWTFwdBuff Pointer to the additional buffer
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Length of source/destination vectors is less or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsBWTFwd_8u, ( const Ipp8u* pSrc, Ipp8u* pDst, int len,
|
||
|
int* index, Ipp8u* pBWTFwdBuff ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsBWTInvGetSize_8u
|
||
|
// Purpose: Computes the size of necessary memory (in bytes) for
|
||
|
// additional buffer for the inverse BWT transform
|
||
|
//
|
||
|
// Parameters:
|
||
|
// wndSize Window size for the BWT transform
|
||
|
// pBWTInvBuffSize Pointer to the computed size of buffer
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Pointer is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsBWTInvGetSize_8u, ( int wndSize, int* pBWTInvBuffSize ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsBWTInv_8u
|
||
|
// Purpose: Performs the inverse BWT transform
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// pDst Pointer to the destination vector
|
||
|
// len Length of source/destination vectors
|
||
|
// index Index of first position for the inverse BWT transform
|
||
|
// pBWTInvBuff Pointer to the additional buffer
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Length of source/destination vectors is less or
|
||
|
// equal zero or index greater or equal srcLen
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsBWTInv_8u, ( const Ipp8u* pSrc, Ipp8u* pDst, int len,
|
||
|
int index, Ipp8u* pBWTInvBuff ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsBWTGetSize_SmallBlock_8u
|
||
|
// Purpose: Computes the size of necessary memory (in bytes) for
|
||
|
// additional buffer for the forward/inverse BWT transform
|
||
|
//
|
||
|
// Parameters:
|
||
|
// wndSize Window size for the BWT transform
|
||
|
// pBWTBuffSize Pointer to the computed size of buffer
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Pointer is NULL
|
||
|
// ippStsSizeErr wndSize less or equal 0 or more than 32768
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsBWTGetSize_SmallBlock_8u, ( int wndSize, int* pBuffSize ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsBWTFwd_SmallBlock_8u
|
||
|
// Purpose: Performs the forward BWT transform. This function is
|
||
|
// destined for processing of small blocks <= 32768
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// pDst Pointer to the destination vector
|
||
|
// len Length of source/destination vectors
|
||
|
// index Pointer to the index of first position for
|
||
|
// the inverse BWT transform
|
||
|
// pBWTBuff Pointer to the additional buffer
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Length of vectors is less or equal 0 or more than 32768
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsBWTFwd_SmallBlock_8u, ( const Ipp8u* pSrc, Ipp8u* pDst,
|
||
|
int len, int* index,
|
||
|
Ipp8u* pBWTBuff ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsBWTInv_SmallBlock_8u
|
||
|
// Purpose: Performs the inverse BWT transform. This function is
|
||
|
// destined for processing of small blocks <= 32768
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// pDst Pointer to the destination vector
|
||
|
// len Length of source/destination vectors
|
||
|
// index Index of first position for the inverse BWT transform
|
||
|
// pBWTBuff Pointer to the additional buffer
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Length of source/destination vectors is less or
|
||
|
// equal 0 or more than 32768 or index greater or equal srcLen
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsBWTInv_SmallBlock_8u, ( const Ipp8u* pSrc, Ipp8u* pDst,
|
||
|
int len, int index,
|
||
|
Ipp8u* pBWTBuff ))
|
||
|
|
||
|
/* Huffman Coding */
|
||
|
#if !defined ( _OWN_BLDPCS )
|
||
|
struct HuffState_8u;
|
||
|
typedef struct HuffState_8u IppHuffState_8u;
|
||
|
#endif
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeHuffInit_8u
|
||
|
// Purpose: Initializes structure for Huffman encoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// freqTable Table of symbols' frequencies
|
||
|
// pHuffState Pointer to the structure containing parameters for
|
||
|
// Huffman coding
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsFreqTableErr Invalid freqTable
|
||
|
// ippStsMaxLenHuffCodeErr Max length of Huffman code more expected
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeHuffInit_8u, ( const int freqTable[256],
|
||
|
IppHuffState_8u* pHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsHuffGetSize_8u
|
||
|
// Purpose: Computes the size of necessary memory (in bytes) for
|
||
|
// structure of Huffman coding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pHuffStateSize Pointer to the computed size of structure
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Pointer is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsHuffGetSize_8u, ( int* pHuffStateSize ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeHuffInitAlloc_8u
|
||
|
// Purpose: Allocates necessary memory and initializes structure for
|
||
|
// Huffman encoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// freqTable Table of symbols' frequencies
|
||
|
// pHuffState Pointer to the structure containing parameters for
|
||
|
// Huffman coding
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippMemAllocErr Can't allocate memory for pHuffState
|
||
|
// ippStsFreqTableErr Invalid freqTable
|
||
|
// ippStsMaxLenHuffCodeErr Max length of Huffman code more expected
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeHuffInitAlloc_8u, ( const int freqTable[256],
|
||
|
IppHuffState_8u** ppHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsHuffFree_8u
|
||
|
// Purpose: Frees allocated memory for Huffman coding structure
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pHuffState Pointer to the structure containing parameters for
|
||
|
// Huffman coding
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(void, ippsHuffFree_8u, ( IppHuffState_8u* pHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeHuffOne_8u
|
||
|
// Purpose: Performs Huffman encoding of the one source element
|
||
|
//
|
||
|
// Parameters:
|
||
|
// src Source element
|
||
|
// pDst Pointer to the destination vector
|
||
|
// dstOffsetBits Offset in the destination vector, starting with high bit
|
||
|
// pHuffState Pointer to the structure containing parameters for
|
||
|
// Huffman coding
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsCodeLenTableErr Invalid codeLenTable
|
||
|
// ippStsSizeErr dstOffsetBits less than 0 or more than 7
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeHuffOne_8u, ( Ipp8u src, Ipp8u* pDst, int dstOffsetBits,
|
||
|
IppHuffState_8u* pHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeHuff_8u
|
||
|
// Purpose: Performs Huffman encoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// srcLen Length of source vector
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the resulting length of the destination vector
|
||
|
// on output.
|
||
|
// pHuffState Pointer to the structure containing parameters for
|
||
|
// Huffman coding
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Length of the source vector is less or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeHuff_8u, ( const Ipp8u* pSrc, int srcLen,
|
||
|
Ipp8u* pDst, int* pDstLen,
|
||
|
IppHuffState_8u* pHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeHuffFinal_8u
|
||
|
// Purpose: Flushes remainder after Huffman encoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the resulting length of the destination vector
|
||
|
// on output.
|
||
|
// pHuffState Pointer to the structure containing parameters for
|
||
|
// Huffman coding
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeHuffFinal_8u, ( Ipp8u* pDst, int* pDstLen,
|
||
|
IppHuffState_8u* pHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsHuffGetLenCodeTable_8u
|
||
|
// Purpose: Gives back the table with lengths of Huffman codes from
|
||
|
// pHuffState
|
||
|
//
|
||
|
// Parameters:
|
||
|
// codeLenTable Destination table with lengths of Huffman codes
|
||
|
// pHuffState Pointer to the structure containing parameters for
|
||
|
// Huffman coding
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsHuffGetLenCodeTable_8u, ( int codeLenTable[256],
|
||
|
IppHuffState_8u* pHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeHuffInit_8u
|
||
|
// Purpose: Initializes structure for Huffman decoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// codeLenTable Table with lengths of Huffman codes
|
||
|
// pHuffState Pointer to the structure containing parameters for
|
||
|
// Huffman coding
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsCodeLenTableErr Invalid codeLenTable
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeHuffInit_8u, ( const int codeLenTable[256],
|
||
|
IppHuffState_8u* pHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeHuffInitAlloc_8u
|
||
|
// Purpose: Allocates necessary memory and initializes structure for
|
||
|
// Huffman decoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// codeLenTable Table with lengths of Huffman codes
|
||
|
// pHuffState Pointer to the structure containing parameters for
|
||
|
// Huffman coding
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippMemAllocErr Can't allocate memory for pHuffState
|
||
|
// ippStsCodeLenTableErr Invalid codeLenTable
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeHuffInitAlloc_8u, ( const int codeLenTable[256],
|
||
|
IppHuffState_8u** ppHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeHuffOne_8u
|
||
|
// Purpose: Performs Huffman decoding of the one destination element
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// srcOffsetBits Offset in the source vector, starting with high bit
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pHuffState Pointer to the structure containing parameters for
|
||
|
// Huffman coding
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr srcOffsetBits less than 0 or more than 7
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeHuffOne_8u, ( const Ipp8u* pSrc, int srcOffsetBits,
|
||
|
Ipp8u* pDst, IppHuffState_8u* pHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeHuff_8u
|
||
|
// Purpose: Performs Huffman decoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// srcLen Length of source vector
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the expected size of destination vector on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output.
|
||
|
// pHuffState Pointer to the structure containing parameters for
|
||
|
// Huffman coding
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Length of the source vector is less or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeHuff_8u, ( const Ipp8u* pSrc, int srcLen,
|
||
|
Ipp8u* pDst, int* pDstLen,
|
||
|
IppHuffState_8u* pHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsHuffGetDstBuffSize_8u
|
||
|
// Purpose: Computes the size of necessary memory (in bytes) for
|
||
|
// the destination buffer (for Huffman encoding/decoding)
|
||
|
//
|
||
|
// Parameters:
|
||
|
// codeLenTable Table with lengths of Huffman codes
|
||
|
// srcLen Length of source vector
|
||
|
// pEncDstBuffSize Pointer to the computed size of the destination buffer
|
||
|
// for Huffman encoding (value returns if pointer isn't NULL)
|
||
|
// pDecDstBuffSize Pointer to the computed size of the destination buffer
|
||
|
// for Huffman decoding (value returns if pointer isn't NULL)
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Pointer to codeLenTable is NULL
|
||
|
// ippStsCodeLenTableErr Invalid codeLenTable
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsHuffGetDstBuffSize_8u, ( const int codeLenTable[256], int srcLen,
|
||
|
int* pEncDstBuffSize, int* pDecDstBuffSize ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsHuffLenCodeTablePack_8u
|
||
|
// Purpose: Packs the table with lengths of Huffman codes
|
||
|
//
|
||
|
// Parameters:
|
||
|
// codeLenTable Table with lengths of Huffman codes
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the size of destination buffer on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output.
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Length of the destination vector is less, equal zero or
|
||
|
// less expected
|
||
|
// ippStsCodeLenTableErr Invalid codeLenTable
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsHuffLenCodeTablePack_8u, ( const int codeLenTable[256],
|
||
|
Ipp8u* pDst, int* pDstLen ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsHuffLenCodeTableUnpack_8u
|
||
|
// Purpose: Unpacks the table with lengths of Huffman codes
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of source vector on input,
|
||
|
// pointer to the resulting length of the source vector
|
||
|
// codeLenTable Table with lengths of Huffman codes
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Length of the source vector is less, equal zero or
|
||
|
// less expected
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsHuffLenCodeTableUnpack_8u, ( const Ipp8u* pSrc, int* pSrcLen,
|
||
|
int codeLenTable[256] ))
|
||
|
|
||
|
/* Generalized Interval Transform (GIT) functions */
|
||
|
#if !defined ( _OWN_BLDPCS )
|
||
|
struct GITState_8u;
|
||
|
typedef struct GITState_8u IppGITState_8u;
|
||
|
typedef enum {
|
||
|
ippGITNoStrategy,
|
||
|
ippGITLeftReorder,
|
||
|
ippGITRightReorder,
|
||
|
ippGITFixedOrder
|
||
|
} IppGITStrategyHint;
|
||
|
#endif
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeGITGetSize_8u
|
||
|
// Purpose: Finds out size of GIT internal encoding state structure
|
||
|
// in bytes
|
||
|
//
|
||
|
// Parameters:
|
||
|
// maxSrcLen Max length of source vector
|
||
|
// maxDstLen Max length of destination vector
|
||
|
// pGITStateSize Pointer to the size of GIT internal encoding state
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Pointer to GITStateSize is NULL
|
||
|
// ippStsSizeErr Bad length arguments
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeGITGetSize_8u, ( int maxSrcLen, int maxDstLen,
|
||
|
int* pGITStateSize))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeGITInit_8u
|
||
|
// Purpose: Initializes the GIT internal encoding state
|
||
|
//
|
||
|
// Parameters:
|
||
|
// maxSrcLen Max length of source vector
|
||
|
// maxDstLen Max length of destination vector
|
||
|
// pGITState Pointer to memory allocated for GIT internal encoding
|
||
|
// state
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Bad size arguments
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeGITInit_8u, (int maxSrcLen, int maxDstLen,
|
||
|
IppGITState_8u* ppGITState))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeGITInitAlloc_8u
|
||
|
// Purpose: Allocates and Initializes the GIT internal encoding state
|
||
|
//
|
||
|
// Parameters:
|
||
|
// maxSrcLen Max length of source vector
|
||
|
// maxDstLen Max length of destination vector
|
||
|
// ppGITState Pointer to pointer to GIT internal encoding state
|
||
|
// Return:
|
||
|
// ippStsSizeErr Bad length arguments
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeGITInitAlloc_8u, (int maxSrcLen, int maxDstLen,
|
||
|
IppGITState_8u** ppGITState))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeGIT_8u
|
||
|
// Purpose: Performs GIT encoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// srcLen Length of source vector
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the length of destination vector
|
||
|
// strategyHint Strategy hint for lexicorgaphical reordering
|
||
|
// pGITState Pointer to GIT internal encoding state
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Source vector is too long, more than the value of
|
||
|
// maxSrcLen parameter passed to ippsGITEncodeGetSize_8u
|
||
|
// or ippsGITEncodeInitAlloc_8u
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeGIT_8u, (const Ipp8u* pSrc, int srcLen, Ipp8u* pDst,
|
||
|
int* pDstLen,
|
||
|
IppGITStrategyHint strategyHint,
|
||
|
IppGITState_8u* pGITState))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeGITGetSize_8u
|
||
|
// Purpose: Finds out size of GIT internal decoding state structure
|
||
|
// in bytes
|
||
|
//
|
||
|
// Parameters:
|
||
|
// maxSrcLen Max length of source vector
|
||
|
// pGITStateSize Pointer to the size of GIT internal decoding state
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Pointer to GITStateSize is NULL
|
||
|
// ippStsSizeErr Bad length arguments
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeGITGetSize_8u, (int maxSrcLen, int* pGITStateSize))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeGITInit_8u
|
||
|
// Purpose: Initializes the GIT internal decoding state
|
||
|
//
|
||
|
// Parameters:
|
||
|
// maxSrcLen Max length of source vector
|
||
|
// maxDstLen Max length of destination vector
|
||
|
// pGITState Pointer to memory allocated for GIT internal decoding
|
||
|
// state
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Bad size arguments
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeGITInit_8u, (int maxDstLen, IppGITState_8u* pGITState))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeGITInitAlloc_8u
|
||
|
// Purpose: Allocates and Initializes the GIT internal decoding state
|
||
|
//
|
||
|
// Parameters:
|
||
|
// maxSrcLen Max length of source vector
|
||
|
// maxDstLen Max length of destination vector
|
||
|
// ppGITState Pointer to pointer to GIT internal decoding state
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Bad length arguments
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeGITInitAlloc_8u, (int maxSrcLen, int maxDstLen,
|
||
|
IppGITState_8u** ppGITState))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeGIT_8u
|
||
|
// Purpose: Performs GIT decoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// srcLen Length of source vector
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the length of destination vector
|
||
|
// strategyHint Strategy hint for lexicorgaphical reordering
|
||
|
// pGITState Pointer to GIT internal decoding state
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Not enough memory allocated for destination buffer
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeGIT_8u, (const Ipp8u* pSrc, int srcLen, Ipp8u* pDst, int* pDstLen,
|
||
|
IppGITStrategyHint strategyHint,
|
||
|
IppGITState_8u* pGITState))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsGITFree_8u
|
||
|
// Purpose: Frees the GIT internal decoding state
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pGITState Pointer to the GIT internal state
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(void, ippsGITFree_8u, (IppGITState_8u* pGITState))
|
||
|
|
||
|
/* Ziv Lempel Storer Szymanski (LZSS) functions */
|
||
|
#if !defined ( _OWN_BLDPCS )
|
||
|
struct LZSSState_8u;
|
||
|
typedef struct LZSSState_8u IppLZSSState_8u;
|
||
|
#endif
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsLZSSGetSize_8u
|
||
|
// Purpose: Finds out size of LZSS internal state structure in bytes
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pLZSSStateSize Pointer to the size of LZSS internal encoding state
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Pointer to LZSSStateSize is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsLZSSGetSize_8u, ( int* pLZSSStateSize ))
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZSSInit_8u
|
||
|
// Purpose: Initializes the LZSS internal state for encoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pLZSSState Pointer to memory allocated for LZSS internal state
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Pointer to internal LZSS state structure is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeLZSSInit_8u, ( IppLZSSState_8u* pLZSSState ))
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZSSInitAlloc_8u
|
||
|
// Purpose: Allocates and Initializes the LZSS internal state for encoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppLZSSState Double pointer to LZSS internal state
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Double pointer to internal LZSS state structure is NULL
|
||
|
// ippStsMemAllocErr Error occurred during memory allocation
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeLZSSInitAlloc_8u, ( IppLZSSState_8u** ppLZSSState ))
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZSS_8u
|
||
|
// Purpose: Performs LZSS encoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of source vector
|
||
|
// ppDst Double pointer to the destination vector
|
||
|
// pDstLen Pointer to the length of destination vector
|
||
|
// pLZSSState Pointer to LZSS internal state for encoding
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Bad length arguments
|
||
|
// ippStsDstSizeLessExpected Destination buffer is full
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeLZSS_8u, ( Ipp8u** ppSrc, int* pSrcLen, Ipp8u** ppDst, int* pDstLen,
|
||
|
IppLZSSState_8u* pLZSSState ))
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZSSFlush_8u
|
||
|
// Purpose: Flushes the last few bits from the bit stream and alignes
|
||
|
// output data on the byte boundary
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppDst Double pointer to the destination vector
|
||
|
// pDstLen Pointer to the length of destination vector
|
||
|
// pLZSSState Pointer to the LZSS internal state for encoding
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Bad length arguments
|
||
|
// ippStsDstSizeLessExpected Destination buffer is full
|
||
|
// ippStsNoErr No errors
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeLZSSFlush_8u, (Ipp8u** ppDst, int* pDstLen, IppLZSSState_8u* pLZSSState))
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZSSInit_8u
|
||
|
// Purpose: Initializes the LZSS internal state for decoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pLZSSState Pointer to memory allocated for LZSS internal state
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Pointer to internal LZSS state structure is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeLZSSInit_8u, ( IppLZSSState_8u* pLZSSState ))
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZSSInitAlloc_8u
|
||
|
// Purpose: Allocates and Initializes the LZSS internal state for decoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppLZSSState Double pointer to LZSS internal state for decoding
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr Double pointer to internal LZSS state structure is NULL
|
||
|
// ippStsMemAllocErr Error occurred during memory allocation
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeLZSSInitAlloc_8u, ( IppLZSSState_8u** ppLZSSState))
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZSS_8u
|
||
|
// Purpose: Performs LZSS decoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of source vector
|
||
|
// ppDst Double pointer to the destination vector
|
||
|
// pDstLen Pointer to the length of destination vector
|
||
|
// pLZSSState Pointer to LZSS internal state
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Bad length arguments
|
||
|
// ippStsDstSizeLessExpected Destination buffer is full
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeLZSS_8u, ( Ipp8u** ppSrc, int* pSrcLen, Ipp8u** ppDst,
|
||
|
int* pDstLen, IppLZSSState_8u* pLZSSState ))
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsLZSSFree_8u
|
||
|
// Purpose: Frees the LZSS internal state
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pLZSSState Pointer to the LZSS internal state for decoding
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(void, ippsLZSSFree_8u, ( IppLZSSState_8u* pLZSSState ))
|
||
|
|
||
|
/* rfc1950, 1951, 1952 - compatible functions */
|
||
|
|
||
|
#if !defined ( _OWN_BLDPCS )
|
||
|
struct LZ77State_8u;
|
||
|
typedef struct LZ77State_8u IppLZ77State_8u;
|
||
|
typedef enum{
|
||
|
IppLZ77FastCompr,
|
||
|
IppLZ77AverageCompr,
|
||
|
IppLZ77BestCompr
|
||
|
} IppLZ77ComprLevel;
|
||
|
typedef enum{
|
||
|
IppLZ77NoChcksm,
|
||
|
IppLZ77Adler32,
|
||
|
IppLZ77CRC32
|
||
|
} IppLZ77Chcksm;
|
||
|
typedef enum {
|
||
|
IppLZ77NoFlush,
|
||
|
IppLZ77SyncFlush,
|
||
|
IppLZ77FullFlush,
|
||
|
IppLZ77FinishFlush
|
||
|
} IppLZ77Flush;
|
||
|
typedef struct IppLZ77Pairs_16u {
|
||
|
Ipp16u length;
|
||
|
Ipp16u offset;
|
||
|
} IppLZ77Pair;
|
||
|
typedef enum {
|
||
|
IppLZ77StatusInit,
|
||
|
IppLZ77StatusLZ77Process,
|
||
|
IppLZ77StatusHuffProcess,
|
||
|
IppLZ77StatusFinal
|
||
|
} IppLZ77DeflateStatus;
|
||
|
typedef enum {
|
||
|
IppLZ77UseFixed,
|
||
|
IppLZ77UseDynamic,
|
||
|
IppLZ77UseStored
|
||
|
} IppLZ77HuffMode;
|
||
|
typedef enum {
|
||
|
IppLZ77InflateStatusInit,
|
||
|
IppLZ77InflateStatusHuffProcess,
|
||
|
IppLZ77InflateStatusLZ77Process,
|
||
|
IppLZ77InflateStatusFinal
|
||
|
} IppLZ77InflateStatus;
|
||
|
#endif
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77GetSize
|
||
|
// Purpose: Computes the size of the internal encoding structure.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pLZ77VLCStateSize Pointer to the size of the internal encoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pointer pLZ77VLCStateSize is NULL.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsEncodeLZ77GetSize_8u, (int* pLZ77StateSize) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77Init
|
||
|
// Purpose: Initializes the internal encoding structure.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// comprLevel Compression level.
|
||
|
// checksum Algorithm to compute the checksum for input data.
|
||
|
// pLZ77State Pointer to memory allocated for the internal encoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pLZ77State pointer is NULL.
|
||
|
// ippStsBadArgErr Indicates an error when the checksum or comprLevel parameter
|
||
|
// has an illegal value.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsEncodeLZ77Init_8u, (IppLZ77ComprLevel comprLevel,
|
||
|
IppLZ77Chcksm checksum, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77InitAlloc
|
||
|
// Purpose: Allocates memory and initializes the internal encoding structure.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// comprLevel Compression level.
|
||
|
// checksum Algorithm to compute the checksum for input data.
|
||
|
// ppLZ77State Double pointer to the internal encoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the ppLZ77State pointer is NULL.
|
||
|
// ippStsBadArgErr Indicates an error when the checksum or comprLevel parameter
|
||
|
// has an illegal value.
|
||
|
// ippStsMemAlloc Indicates an error when memory allocation fails.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsEncodeLZ77InitAlloc_8u, (IppLZ77ComprLevel comprLevel,
|
||
|
IppLZ77Chcksm checksum, IppLZ77State_8u** ppLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77
|
||
|
// Purpose: Performs LZ77 encoding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector.
|
||
|
// pSrcLen Pointer to the length of the source vector.
|
||
|
// ppDst Double pointer to the destination vector.
|
||
|
// pDstLen Pointer to the length of the destination vector.
|
||
|
// flush Data-block encoding mode.
|
||
|
// pLZ77State Pointer to the internal encoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one of the specified pointers is NULL.
|
||
|
// ippStsSizeErr Indicates an error when DstLen is less than or equal to zero.
|
||
|
// ippStsDstSizeLessExpected Indicates a warning when the destination buffer is full.
|
||
|
//
|
||
|
// Note: This function searches for substring matches using the LZ77 algorithm.
|
||
|
// The technique of sliding window support is compatible with rfc1951.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsEncodeLZ77_8u, (Ipp8u** ppSrc, int* pSrcLen, IppLZ77Pair** ppDst,
|
||
|
int* pDstLen, IppLZ77Flush flush, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77SelectHuffMode
|
||
|
// Purpose: Takes the best decision about the optimal coding strategy
|
||
|
// (use fixed Huffman coding or dynamic Huffman coding).
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector.
|
||
|
// srcLen Length of the source vector.
|
||
|
// pHuffMode Pointer to the value of coding strategy.
|
||
|
// pLZ77State Pointer to memory allocated for the internal encoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pLZ77State pointer is NULL.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsEncodeLZ77SelectHuffMode_8u, (IppLZ77Pair* pSrc, int srcLen,
|
||
|
IppLZ77HuffMode* pHuffMode,
|
||
|
IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77FixedHuff
|
||
|
// Purpose: Performs fixed Huffman coding of the LZ77 output.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector.
|
||
|
// pSrcLen Pointer to the length of the source vector.
|
||
|
// ppDst Double pointer to the destination vector.
|
||
|
// pDstLen Pointer to the length of the destination vector.
|
||
|
// flush Data-block encoding mode.
|
||
|
// pLZ77State Pointer to the internal encoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one of the specified pointers is NULL.
|
||
|
// ippStsSizeErr Indicates an error when DstLen is less than or equal to zero.
|
||
|
// ippStsDstSizeLessExpected Indicates a warning when the destination buffer is full.
|
||
|
// ippStsStreamEnd Indicates a warning when the stream ends. This warning can
|
||
|
// be returned only when the flush value is FINISH.
|
||
|
//
|
||
|
// Note: This function produces the rfc1951 compatible code for the LZ77 output.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsEncodeLZ77FixedHuff_8u, (IppLZ77Pair** ppSrc, int* pSrcLen, Ipp8u** ppDst,
|
||
|
int* pDstLen, IppLZ77Flush flush, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77DynamicHuff
|
||
|
// Purpose: Performs dynamic Huffman coding of the LZ77 output.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector.
|
||
|
// pSrcLen Pointer to the length of the source vector.
|
||
|
// ppDst Double pointer to the destination vector.
|
||
|
// pDstLen Pointer to the length of the destination vector.
|
||
|
// flush Data-block encoding mode.
|
||
|
// pLZ77State Pointer to the internal encoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one of the specified pointers is NULL.
|
||
|
// ippStsSizeErr Indicates an error when DstLen is less than or equal to zero.
|
||
|
// ippStsDstSizeLessExpected Indicates a warning when the destination buffer is full.
|
||
|
// ippStsStreamEnd Indicates a warning when the stream ends. This warning can
|
||
|
// be returned only when the flush value is FINISH.
|
||
|
//
|
||
|
// Note: This function produces the rfc1951 compatible code for the LZ77 output.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsEncodeLZ77DynamicHuff_8u, (IppLZ77Pair** ppSrc, int* pSrcLen, Ipp8u** ppDst,
|
||
|
int* pDstLen, IppLZ77Flush flush, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77StoredBlock
|
||
|
// Purpose: Transmits the block without compression.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector.
|
||
|
// pSrcLen Pointer to the length of the source vector.
|
||
|
// ppDst Double pointer to the destination vector.
|
||
|
// pDstLen Pointer to the length of the destination vector.
|
||
|
// flush Data-block encoding mode.
|
||
|
// pLZ77State Pointer to the internal decoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one of the specified pointers is NULL.
|
||
|
// ippStsSizeErr Indicates an error when DstLen is less than or equal to zero.
|
||
|
// ippStsDstSizeLessExpected Indicates a warning when the destination buffer is full.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsEncodeLZ77StoredBlock_8u, (Ipp8u** ppSrc, int* pSrcLen, Ipp8u** ppDst,
|
||
|
int* pDstLen, IppLZ77Flush flush, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77Flush
|
||
|
// Purpose: Performs writing the service information (accumulated
|
||
|
// checksum and total length of input data stream) in order
|
||
|
// to achieve the ZLIB/GZIP data format compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppDst Double pointer to the destination vector.
|
||
|
// pDstLen Pointer to the length of the destination vector.
|
||
|
// pLZ77State Pointer to the internal encoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one of the specified pointers is NULL.
|
||
|
// ippStsSizeErr Indicates an error when DstLen is less than or equal to zero.
|
||
|
// ippStsDstSizeLessExpected Indicates a warning when the destination buffer is full.
|
||
|
//
|
||
|
// Note: This is a service function which is necessary for achieving compatibility with
|
||
|
// the rfc1950, rfc1951, rfc1952 describing ZLIB/GZIP data format.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsEncodeLZ77Flush_8u, (Ipp8u** ppDst, int* pDstLen,
|
||
|
IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77GetPairs
|
||
|
// Purpose: Reads the pointer to the pair buffer, it's length and current index
|
||
|
// from the internal state structure for encoding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppPairs Double pointer to a variable of ippLZ77Pair type.
|
||
|
// pPairsInd Pointer to the current index in the pair buffer
|
||
|
// pPairsLen Pointer to the length of pair buffer
|
||
|
// pLZ77State Pointer to the internal encoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pLZ77State or ppPairs pointer is NULL.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsEncodeLZ77GetPairs_8u, (IppLZ77Pair** ppPairs, int* pPairsInd,
|
||
|
int* pPairsLen, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77SetPairs
|
||
|
// Purpose: Writes the pointer to the pair buffer, it's length and current index
|
||
|
// to the internal state structure for encoding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pPairs Pointer to a variable of ippLZ77Pair type.
|
||
|
// pairsInd Current index in the pair buffer
|
||
|
// pairsLen Length of pair buffer
|
||
|
// pLZ77State Pointer to the internal encoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pLZ77State or pPairs pointer is NULL.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsEncodeLZ77SetPairs_8u, (IppLZ77Pair* pPairs, int pairsInd,
|
||
|
int pairsLen, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77GetStatus
|
||
|
// Purpose: Reads the encoding status value from the internal state
|
||
|
// structure for encoding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pDeflateStatus Pointer to a variable of ippLZ77DeflateStatus type.
|
||
|
// pLZ77State Pointer to the internal encoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pLZ77State or pDeflateStatus pointer is NULL.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsEncodeLZ77GetStatus_8u, (IppLZ77DeflateStatus* pDeflateStatus,
|
||
|
IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77SetStatus
|
||
|
// Purpose: Writes the encoding status value to the internal state
|
||
|
// structure for encoding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// deflateStatus Variable of ippLZ77DeflateStatus type.
|
||
|
// pLZ77State Pointer to the internal encoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pLZ77State pointer is NULL.
|
||
|
// ippStsBadArgErr Indicates an error when the deflateStatus parameter has an illegal value.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsEncodeLZ77SetStatus_8u, (IppLZ77DeflateStatus deflateStatus,
|
||
|
IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77Reset
|
||
|
// Purpose: Resets the internal state structure for encoding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pLZ77State Pointer to the internal encoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pLZ77State pointer is NULL.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsEncodeLZ77Reset_8u, (IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77GetSize
|
||
|
// Purpose: Computes the size of the internal decoding structure.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pLZ77StateSize Pointer to the size of the internal decoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pointer pLZ77StateSize is NULL.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDecodeLZ77GetSize_8u, (int* pLZ77StateSize) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77Init
|
||
|
// Purpose: Initializes the internal decoding structure.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// checksum Algorithm to compute the checksum for output data.
|
||
|
// pLZ77State Pointer to memory allocated for the internal decoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pLZ77State pointer is NULL.
|
||
|
// ippStsBadArgErr Indicates an error when the checksum parameter
|
||
|
// has an illegal value.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDecodeLZ77Init_8u, (IppLZ77Chcksm checksum, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77InitAlloc
|
||
|
// Purpose: Allocates memory and initializes the internal encoding structure.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// checksum Algorithm to compute the checksum for output data.
|
||
|
// ppLZ77State Double pointer to the internal decoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the ppLZ77State pointer is NULL.
|
||
|
// ippStsBadArgErr Indicates an error when the checksum parameter has an illegal value.
|
||
|
// ippStsMemAlloc Indicates an error when memory allocation fails.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDecodeLZ77InitAlloc_8u, (IppLZ77Chcksm checksum, IppLZ77State_8u** ppLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77
|
||
|
// Purpose: Performs LZ77 decoding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector.
|
||
|
// pSrcLen Pointer to the length of the source vector.
|
||
|
// ppDst Double pointer to the destination vector.
|
||
|
// pDstLen Pointer to the length of the destination vector.
|
||
|
// flush Data-block encoding mode.
|
||
|
// pLZ77State Pointer to the internal decoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one of the specified pointers is NULL.
|
||
|
// ippStsSizeErr Indicates an error when DstLen is less than or equal to zero.
|
||
|
// ippStsDstSizeLessExpected Indicates a warning when the destination buffer is full.
|
||
|
// ippStsStreamEnd Indicates a warning when the stream ends.
|
||
|
//
|
||
|
// Note: The technique of LZ77 sliding window support is compatible with rfc1951.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDecodeLZ77_8u, (IppLZ77Pair** ppSrc, int* pSrcLen, Ipp8u** ppDst,
|
||
|
int* pDstLen, IppLZ77Flush flush, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77GetBlockType
|
||
|
// Purpose: Decodes the type of the block from the DEFLATE format.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector.
|
||
|
// pSrcLen Pointer to the length of the source vector.
|
||
|
// pHuffMode Pointer to the value of coding mode.
|
||
|
// pLZ77State Pointer to the internal decoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one of the specified pointers is NULL.
|
||
|
// ippStsSizeErr Indicates an error when SrcLen is less than zero.
|
||
|
// ippStsSrcSizeLessExpected Indicates a warning when the source buffer is less than expected.
|
||
|
// (Internal bit stream and source vector do not contain enough bits to decode
|
||
|
// the type of the block)
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDecodeLZ77GetBlockType_8u, (Ipp8u** ppSrc, int* pSrcLen,
|
||
|
IppLZ77HuffMode* pHuffMode,
|
||
|
IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77FixedHuff
|
||
|
// Purpose: Performs fixed Huffman decoding of the rfc1951 compatible code.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector.
|
||
|
// pSrcLen Pointer to the length of the source vector.
|
||
|
// ppDst Double pointer to the destination vector.
|
||
|
// pDstLen Pointer to the length of the destination vector.
|
||
|
// flush Data-block encoding mode.
|
||
|
// pLZ77State Pointer to the internal decoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one of the specified pointers is NULL.
|
||
|
// ippStsSizeErr Indicates an error when DstLen is less than or equal to zero.
|
||
|
// ippStsSrcSizeLessExpected Indicates a warning when the source buffer is less than expected
|
||
|
// (end of block marker is not decoded).
|
||
|
// ippStsDstSizeLessExpected Indicates a warning when the destination buffer is full.
|
||
|
// ippStsStreamEnd Indicates a warning when the stream ends.
|
||
|
//
|
||
|
// Note: This function decodes the rfc1951 compatible code.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDecodeLZ77FixedHuff_8u, (Ipp8u** ppSrc, int* pSrcLen, IppLZ77Pair** ppDst,
|
||
|
int* pDstLen, IppLZ77Flush flush, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77DynamicHuff
|
||
|
// Purpose: Performs dynamic Huffman decoding of the rfc1951 compatible code.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector.
|
||
|
// pSrcLen Pointer to the length of the source vector.
|
||
|
// ppDst Double pointer to the destination vector.
|
||
|
// pDstLen Pointer to the length of the destination vector.
|
||
|
// flush Data-block encoding mode.
|
||
|
// pLZ77State Pointer to the internal decoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one of the specified pointers is NULL.
|
||
|
// ippStsWrongBlockType Indicates a warning when the type of the block is not dynamic Huffman type.
|
||
|
// ippStsSizeErr Indicates an error when DstLen is less than or equal to zero.
|
||
|
// ippStsSrcSizeLessExpected Indicates a warning when the source buffer is less than expected
|
||
|
// (end of block marker is not decoded).
|
||
|
// ippStsDstSizeLessExpected Indicates a warning when the destination buffer is full.
|
||
|
// ippStsStreamEnd Indicates a warning when the stream ends.
|
||
|
//
|
||
|
// Note: This function decodes the rfc1951 compatible code.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDecodeLZ77DynamicHuff_8u, (Ipp8u** ppSrc, int* pSrcLen, IppLZ77Pair** ppDst,
|
||
|
int* pDstLen, IppLZ77Flush flush, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77StoredBlock
|
||
|
// Purpose: Performs decoding of the block transmitted without compression.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector.
|
||
|
// pSrcLen Pointer to the length of the source vector.
|
||
|
// ppDst Double pointer to the destination vector.
|
||
|
// pDstLen Pointer to the length of the destination vector.
|
||
|
// pLZ77State Pointer to the internal decoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one of the specified pointers is NULL.
|
||
|
// ippStsWrongBlockType Indicates a warning when the type of the block is not of
|
||
|
// the "stored without compression type" type.
|
||
|
// ippStsSizeErr Indicates an error when DstLen is less than or equal to zero.
|
||
|
// ippStsSrcSizeLessExpected Indicates a warning when the source buffer is less than expected
|
||
|
// (end of block marker is not decoded).
|
||
|
// ippStsDstSizeLessExpected Indicates a warning when the destination buffer is full.
|
||
|
//
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDecodeLZ77StoredBlock_8u, (Ipp8u** ppSrc, int* pSrcLen, Ipp8u** ppDst,
|
||
|
int* pDstLen, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77StoredHuff_8u
|
||
|
// Purpose: Performs copying the data to the output buffer of pairs
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of source vector
|
||
|
// ppDst Double pointer to the destination vector of pairs
|
||
|
// pDstLen Pointer to the length of destination vector of pairs
|
||
|
// pLZ77State Pointer to the internal state
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error
|
||
|
// ippStsNullPtrErr Indicates an error when one of the specified pointers is NULL
|
||
|
// ippStsWrongBlockType Indicates a warning when the type of the block is not of
|
||
|
// the "stored without compression type" type
|
||
|
// ippStsSizeErr Indicates an error when DstLen is less than or equal to zero
|
||
|
// ippStsSrcSizeLessExpected Indicates a warning when the source buffer is less than expected
|
||
|
// ippStsDstSizeLessExpected Indicates a warning when the destination buffer is full
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI( IppStatus, ippsDecodeLZ77StoredHuff_8u, (Ipp8u** ppSrc, int* pSrcLen, IppLZ77Pair** ppDst,
|
||
|
int* pDstLen, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77GetPairs
|
||
|
// Purpose: Reads the pointer to the pair buffer, it's length and current index
|
||
|
// from the internal state structure for decoding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppPairs Double pointer to a variable of ippLZ77Pair type.
|
||
|
// pPairsInd Pointer to the current index in the pair buffer
|
||
|
// pPairsLen Pointer to the length of pair buffer
|
||
|
// pLZ77State Pointer to the internal decoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pLZ77State or ppPairs pointer is NULL.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDecodeLZ77GetPairs_8u, (IppLZ77Pair** ppPairs, int* pPairsInd,
|
||
|
int* pPairsLen, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77SetPairs
|
||
|
// Purpose: Writes the pointer to the pair buffer, it's length and current index
|
||
|
// to the internal state structure for decoding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pPairs Pointer to a variable of ippLZ77Pair type.
|
||
|
// pairsInd Current index in the pair buffer
|
||
|
// pairsLen Length of pair buffer
|
||
|
// pLZ77State Pointer to the internal decoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pLZ77State or pPairs pointer is NULL.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDecodeLZ77SetPairs_8u, (IppLZ77Pair* pPairs, int pairsInd,
|
||
|
int pairsLen, IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77GetStatus
|
||
|
// Purpose: Reads the decoding status value from the internal state
|
||
|
// structure for decoding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pInflateStatus Pointer to a variable of ippLZ77InflateStatus type.
|
||
|
// pLZ77State Pointer to the internal structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pLZ77State or pInflateStatus pointer is NULL.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDecodeLZ77GetStatus_8u, ( IppLZ77InflateStatus* pInflateStatus,
|
||
|
IppLZ77State_8u* pLZ77State ) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77SetStatus
|
||
|
// Purpose: Writes the decoding status value to the internal state
|
||
|
// structure for decoding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// inflateStatus Variable of ippLZ77InflateStatus type.
|
||
|
// pLZ77State Pointer to the internal structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pLZ77State pointer is NULL.
|
||
|
// ippStsBadArgErr Indicates an error when the inflateStatus parameter has an illegal value.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDecodeLZ77SetStatus_8u, ( IppLZ77InflateStatus inflateStatus,
|
||
|
IppLZ77State_8u* pLZ77State ) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZ77SetDictionary_8u, ippsDecodeLZ77SetDictionary_8u
|
||
|
// Purpose: Presets the dictionary for encoding/decoding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pDictionary Pointer to the dictionary vector
|
||
|
// dictLen Length of dictionary vector
|
||
|
// pLZ77State Pointer to the internal state
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsEncodeLZ77SetDictionary_8u, ( Ipp8u* pDictionary, int dictLen, IppLZ77State_8u* pLZ77State ))
|
||
|
IPPAPI(IppStatus, ippsDecodeLZ77SetDictionary_8u, ( Ipp8u* pDictionary, int dictLen, IppLZ77State_8u* pLZ77State ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77Reset
|
||
|
// Purpose: Resets the internal state structure for decoding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pLZ77State Pointer to the internal decoding structure.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pLZ77State pointer is NULL.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDecodeLZ77Reset_8u, (IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77FixedHuffFull_8u
|
||
|
// Purpose: Performs the decoding of fixed huffman rfc1951 compatible format
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of source vector
|
||
|
// ppDst Double pointer to the destination vector
|
||
|
// pDstLen Pointer to the size of destination buffer on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output
|
||
|
// flush Flush mode
|
||
|
// pLZ77State Pointer to internal decoding state
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsSrcSizeLessExpected The end of block symbol not decoded, so size of source vector less expected
|
||
|
// ippStsDstSizeLessExpected The size of destination vector less expected
|
||
|
// ippStsStreamEnd The end of stream symbol decoded
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeLZ77FixedHuffFull_8u, (Ipp8u** ppSrc, int* pSrcLen, Ipp8u** ppDst, int* pDstLen, IppLZ77Flush flush, IppLZ77State_8u* pLZ77State))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77DynamicHuffFull_8u
|
||
|
// Purpose: Performs the decoding of dynamic huffman rfc1951 compatible format
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of source vector
|
||
|
// ppDst Double pointer to the destination vector
|
||
|
// pDstLen Pointer to the size of destination buffer on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output
|
||
|
// flush Flush mode
|
||
|
// pLZ77State Pointer to internal decoding state
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsSrcSizeLessExpected The end of block symbol not decoded, so size of source vector less expected
|
||
|
// ippStsDstSizeLessExpected The size of destination vector less expected
|
||
|
// ippStsStreamEnd The end of stream symbol decoded
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeLZ77DynamicHuffFull_8u, (Ipp8u** ppSrc, int* pSrcLen, Ipp8u** ppDst, int* pDstLen, IppLZ77Flush flush, IppLZ77State_8u* pLZ77State))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZ77CopyState_8u
|
||
|
// Purpose: Performs copying the fields of internal state structure
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pLZ77StateSrc Pointer to the internal state for copying from
|
||
|
// pLZ77StateDst Pointer to the internal state for copying to
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsDecodeLZ77CopyState_8u, ( IppLZ77State_8u* pLZ77StateSrc, IppLZ77State_8u* pLZ77StateDst ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsLZ77Free
|
||
|
// Purpose: Frees the internal state structure for encoding or decoding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pLZ77State Pointer to the internal decoding structure.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( void, ippsLZ77Free_8u, (IppLZ77State_8u* pLZ77State) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsAdler32
|
||
|
// Purpose: Computes the adler32(ITUT V.42) checksum for the source vector.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector.
|
||
|
// srcLen Length of the source vector.
|
||
|
// pAdler32 Pointer to the checksum value.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pSrc pointer is NULL.
|
||
|
// ippStsSizeErr Indicates an error when the length of the source vector is less
|
||
|
// than or equal to zero.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsAdler32_8u, (const Ipp8u* pSrc, int srcLen, Ipp32u* pAdler32) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsCRC32
|
||
|
// Purpose: Computes the CRC32(ITUT V.42) checksum for the source vector.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector.
|
||
|
// srcLen Length of the source vector.
|
||
|
// pCRC32 Pointer to the checksum value.
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when the pSrc pointer is NULL.
|
||
|
// ippStsSizeErr Indicates an error when the length of the source vector is less
|
||
|
// than or equal to zero.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsCRC32_8u, (const Ipp8u* pSrc, int srcLen, Ipp32u* pCRC32) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsCRC32C
|
||
|
// Purpose: Computes the CRC32C (the polinomial 0x11EDC6F41) value
|
||
|
// for the source vector.
|
||
|
// Reference: "Optimization of cyclic redundancy-check
|
||
|
// codes with 24 and 32 parity bits". Castagnoli, G.;
|
||
|
// Brauer, S.; Herrmann, M.; Communications,
|
||
|
// IEEE Transactions on Volume 41, Issue 6,
|
||
|
// June 1993 Page(s):883 - 892.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source vector
|
||
|
// srcLen Length of the source vector
|
||
|
// pCRC32C Pointer to the CRC32C value
|
||
|
// Return:
|
||
|
// ippStsNoErr No errors
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Length of the source vector is equal zero
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsCRC32C_8u, (const Ipp8u* pSrc, Ipp32u srcLen, Ipp32u* pCRC32C) )
|
||
|
|
||
|
#if !defined ( _OWN_BLDPCS )
|
||
|
typedef struct IppInflateState {
|
||
|
const Ipp8u* pWindow; /* pointer to the sliding window */
|
||
|
/* (the dictionary for the LZ77 algorithm) */
|
||
|
unsigned int winSize; /* size of the sliding window */
|
||
|
unsigned int tableType; /* type of Huffman code tables */
|
||
|
/* (for example, 0 - tables for Fixed Huffman codes) */
|
||
|
unsigned int tableBufferSize; /* (ENOUGH = 2048) * (sizeof(code) = 4) - */
|
||
|
/* sizeof(IppInflateState) */
|
||
|
} IppInflateState;
|
||
|
|
||
|
typedef enum { /* this type is used as a translator of the inflate_mode type from zlib */
|
||
|
ippTYPE,
|
||
|
ippLEN,
|
||
|
ippLENEXT
|
||
|
} IppInflateMode;
|
||
|
#endif
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsInflateBuildHuffTable
|
||
|
// Purpose: Builds literal/length and distance Huffman code table for
|
||
|
// decoding a block that was compressed with usage dynamic Huffman codes
|
||
|
// according to the "deflate" format (rfc1951)
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pCodeLens Pointer to the common array with literal/length and distance
|
||
|
// Huffman code lengths
|
||
|
// nLitCodeLens Number of literal/length Huffman code lengths
|
||
|
// nDistCodeLens Number of distance Huffman code lengths
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr nLitCodeLens is greater than 286, or nLitCodeLens is greater than 30
|
||
|
// (according to rfc1951)
|
||
|
// ippStsSrcDataErr Invalid literal/length and distance set has been met
|
||
|
// in the common lengths array
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsInflateBuildHuffTable, ( const Ipp16u* pCodeLens,
|
||
|
unsigned int nLitCodeLens,
|
||
|
unsigned int nDistCodeLens,
|
||
|
IppInflateState *pIppInflateState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsInflate_8u
|
||
|
// Purpose: Decodes of the "deflate" format (rfc1951)
|
||
|
// according to the type of Huffman code tables
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of the source vector
|
||
|
// pCode Pointer to the bit buffer
|
||
|
// pCodeLenBits Number of valid bits in the bit buffer
|
||
|
// winIdx Index of the sliding window start position
|
||
|
// ppDst Double pointer to the destination vector
|
||
|
// pDstLen Pointer to the length of the destination vector
|
||
|
// dstIdx Index of the current position in the destination vector
|
||
|
// pMode Pointer to the current decode mode
|
||
|
// pIppInflateState Pointer to the structure that contains decode parameters
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr codeLenBits is greater than 32, or
|
||
|
// winIdx is greater than pIppInflateState->winSize, or
|
||
|
// dstIdx is greater than dstLen
|
||
|
// ippStsSrcDataErr Invalid literal/length and distance set has been met
|
||
|
// during decoding
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsInflate_8u, ( Ipp8u** ppSrc, unsigned int* pSrcLen,
|
||
|
Ipp32u* pCode, unsigned int* pCodeLenBits,
|
||
|
unsigned int winIdx,
|
||
|
Ipp8u** ppDst, unsigned int* pDstLen, unsigned int dstIdx,
|
||
|
IppInflateMode* pMode, IppInflateState *pIppInflateState ))
|
||
|
|
||
|
#if !defined( _OWN_BLDPCS )
|
||
|
|
||
|
typedef struct {
|
||
|
Ipp16u freq;
|
||
|
Ipp16u code;
|
||
|
} IppDeflateFreqTable;
|
||
|
|
||
|
#endif /* _OWN_BLDPCS */
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDeflateLZ77_8u
|
||
|
// Purpose: Perform LZ77 encoding according to
|
||
|
// the compression level
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of the source vector
|
||
|
// pSrcIdx Pointer to the index of the current position in
|
||
|
// the source vector. This parameter is used by
|
||
|
// the function for correlation current possition of
|
||
|
// the source vector and indexes in the hash tables.
|
||
|
// The normalization of this index and the hash tables
|
||
|
// must only be done every 2GB of the source data
|
||
|
// instead of 64K (the zlib approach)
|
||
|
// pWindow Pointer to the sliding window, which is used as
|
||
|
// the dictionary for LZ77 encoding
|
||
|
// winSize Size of the window and the hash prev table
|
||
|
// pHashHead Pointer to heads of the hash chains. This table is
|
||
|
// initialized with (-winSize) value for correct processing
|
||
|
// of the first bytes of the source vector
|
||
|
// pHashPrev Pointer to links to older strings with the same
|
||
|
// hash index
|
||
|
// hashSize Size of the hash head table
|
||
|
// pLitFreqTable Pointer to the literals/lengths frequency table
|
||
|
// pDistFreqTable Pointer to the distances frequency table
|
||
|
// pLitDst Pointer to the literals/lengths destination vector
|
||
|
// pDistDst Pointer to the distances destination vector
|
||
|
// pDstLen Pointer to the length of the destination vectors
|
||
|
// comprLevel Compression level. It is like the zlib compression level
|
||
|
// flush Flush value
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI( IppStatus, ippsDeflateLZ77_8u, (
|
||
|
const Ipp8u** ppSrc, Ipp32u* pSrcLen, Ipp32u* pSrcIdx,
|
||
|
const Ipp8u* pWindow, Ipp32u winSize,
|
||
|
Ipp32s* pHashHead, Ipp32s* pHashPrev, Ipp32u hashSize,
|
||
|
IppDeflateFreqTable pLitFreqTable[286],
|
||
|
IppDeflateFreqTable pDistFreqTable[30],
|
||
|
Ipp8u* pLitDst, Ipp16u* pDistDst, Ipp32u* pDstLen,
|
||
|
int comprLevel, IppLZ77Flush flush ) )
|
||
|
|
||
|
|
||
|
#if !defined( _OWN_BLDPCS )
|
||
|
|
||
|
typedef struct {
|
||
|
Ipp16u code;
|
||
|
Ipp16u len;
|
||
|
} IppDeflateHuffCode;
|
||
|
|
||
|
#endif /* _OWN_BLDPCS */
|
||
|
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDeflateHuff_8u
|
||
|
// Purpose: Performs Huffman encoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pLitSrc Pointer to the literals/lengths source vector
|
||
|
// pDistSrc Pointer to the distances source vector
|
||
|
// pSrcLen Pointer to the length of the source vectors
|
||
|
// pCode Pointer to the bit buffer
|
||
|
// pCodeLenBits Pointer to the number of valid bits in the bit buffer
|
||
|
// pLitHuffCodes Pointer to the literals/lengths Huffman codes
|
||
|
// pDistHuffCodes Pointer to the distances Huffman codes
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstIdx Pointer to the index in the destination vector, the zlib
|
||
|
// uses the knowingly sufficient intermediate buffer for
|
||
|
// the Huffman encoding, so we need to know indexes of
|
||
|
// the first (input parameter) and the last (output parameter)
|
||
|
// symbols, which are written by the function
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDeflateHuff_8u, (
|
||
|
const Ipp8u* pLitSrc, const Ipp16u* pDistSrc, Ipp32u srcLen,
|
||
|
Ipp16u* pCode, Ipp32u* pCodeLenBits,
|
||
|
IppDeflateHuffCode pLitHuffCodes[286],
|
||
|
IppDeflateHuffCode pDistHuffCodes[30],
|
||
|
Ipp8u* pDst, Ipp32u* pDstIdx ) )
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDeflateDictionarySet_8u
|
||
|
// Purpose: Presets the user's dictionary for LZ77 encoding
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pDictSrc Pointer to the user's dictionary
|
||
|
// dictLen Length of the user's dictionary
|
||
|
// pHashHeadDst Pointer to heads of the hash chains
|
||
|
// hashSize Size of the hash head table
|
||
|
// pHashPrevDst Pointer to links to older strings with the same
|
||
|
// hash index
|
||
|
// pWindowDst Pointer to the sliding window, which is used as
|
||
|
// the dictionary for LZ77 encoding
|
||
|
// winSize Size of the window and the hash prev table in elements
|
||
|
// comprLevel Compression level. It is like the zlib compression level
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI( IppStatus, ippsDeflateDictionarySet_8u, (
|
||
|
const Ipp8u* pDictSrc, Ipp32u dictLen,
|
||
|
Ipp32s* pHashHeadDst, Ipp32u hashSize, Ipp32s* pHashPrevDst,
|
||
|
Ipp8u* pWindowDst, Ipp32u winSize, int comprLevel ) )
|
||
|
|
||
|
/* bzip2 - compatible functions */
|
||
|
|
||
|
#if !defined ( _OWN_BLDPCS )
|
||
|
struct RLEState_BZ2;
|
||
|
typedef struct RLEState_BZ2 IppRLEState_BZ2;
|
||
|
#endif
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsRLEGetSize_BZ2_8u
|
||
|
// Purpose: Calculates the size of internal state for bzip2-specific RLE.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pRLEStateSize Pointer to the size of internal state for bzip2-specific RLE
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsRLEGetSize_BZ2_8u, ( int* pRLEStateSize ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeRLEInit_BZ2_8u
|
||
|
// Purpose: Initializes the elements of the bzip2-specific internal state for RLE.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pRLEState Pointer to internal state structure for bzip2 specific RLE
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsEncodeRLEInit_BZ2_8u, ( IppRLEState_BZ2* pRLEState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeRLEInitAlloc_BZ2_8u
|
||
|
// Purpose: Allocates the memory and initializes the elements of the bzip2-specific internal state for RLE.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppRLEState Double pointer to internal state structure for bzip2 specific RLE
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsEncodeRLEInitAlloc_BZ2_8u, ( IppRLEState_BZ2** ppRLEState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeRLE_BZ2_8u
|
||
|
// Purpose: Performs the RLE encoding with thresholding = 4.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of source vector
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the size of destination buffer on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output
|
||
|
// pRLEState Pointer to internal state structure for bzip2 specific RLE
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsDstSizeLessExpected The size of destination vector less expected
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsEncodeRLE_BZ2_8u, ( Ipp8u** ppSrc, int* pSrcLen, Ipp8u* pDst, int* pDstLen, IppRLEState_BZ2* pRLEState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeRLEFlush_BZ2_8u
|
||
|
// Purpose: Performs flushing the rest of data after RLE encoding with thresholding = 4.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the size of destination buffer on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output
|
||
|
// pRLEState Pointer to internal state structure for bzip2 specific RLE
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsEncodeRLEFlush_BZ2_8u, ( Ipp8u* pDst, int* pDstLen, IppRLEState_BZ2* pRLEState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsRLEGetInUseTable_8u
|
||
|
// Purpose: Service function: gets the pointer to the inUse vector from internal state
|
||
|
// of type IppRLEState_BZ2. Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// inUse Pointer to the inUse vector
|
||
|
// pRLEState Pointer to internal state structure for bzip2 specific RLE
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsRLEGetInUseTable_8u, ( Ipp8u inUse[256], IppRLEState_BZ2* pRLEState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsRLEFree_BZ2_8u
|
||
|
// Purpose: Frees the bzip2-specific internal state for RLE.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pRLEState Pointer to internal state structure for bzip2 specific RLE.
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(void, ippsRLEFree_BZ2_8u, ( IppRLEState_BZ2* pRLEState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeRLE_BZ2_8u
|
||
|
// Purpose: Performs the RLE decoding with thresholding = 4.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of source vector on input,
|
||
|
// pointer to the size of remainder on output
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the size of destination buffer on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output.
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsDstSizeLessExpected The size of destination vector less expected
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsDecodeRLE_BZ2_8u, (Ipp8u** ppSrc, int* pSrcLen, Ipp8u* pDst, int* pDstLen ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeZ1Z2_BZ2_8u16u
|
||
|
// Purpose: Performs the Z1Z2 encoding.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of source vector on input,
|
||
|
// pointer to the size of remainder on output
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the size of destination buffer on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output.
|
||
|
// freqTable[258] Table of frequencies collected for alphabet symbols.
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsDstSizeLessExpected The size of destination vector less expected
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsEncodeZ1Z2_BZ2_8u16u, ( Ipp8u** ppSrc, int* pSrcLen, Ipp16u* pDst, int* pDstLen, int freqTable[258] ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeZ1Z2_BZ2_16u8u
|
||
|
// Purpose: Performs the Z1Z2 decoding.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// ppSrc Double pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of source vector on input,
|
||
|
// pointer to the size of remainder on output
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the size of destination buffer on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output.
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsDstSizeLessExpected The size of destination vector less expected
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsDecodeZ1Z2_BZ2_16u8u, ( Ipp16u** ppSrc, int* pSrcLen, Ipp8u* pDst, int* pDstLen ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsReduceDictionary_8u_I
|
||
|
// Purpose: Performs the dictionary reducing.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// inUse[256] Table of 256 values of Ipp8u type.
|
||
|
// pSrcDst Pointer to the source/destination vector
|
||
|
// srcDstLen Length of source/destination vector.
|
||
|
// pSizeDictionary Pointer to the size of dictionary on input and to the size
|
||
|
// of reduced dictionary on output.
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsReduceDictionary_8u_I, ( const Ipp8u inUse[256], Ipp8u* pSrcDst, int srcDstLen, int* pSizeDictionary ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsExpandDictionary_8u_I
|
||
|
// Purpose: Performs the dictionary expanding.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// inUse[256] Table of 256 values of Ipp8u type.
|
||
|
// pSrcDst Pointer to the source/destination vector
|
||
|
// srcDstLen Length of source/destination vector.
|
||
|
// sizeDictionary The size of reduced dictionary on input.
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsExpandDictionary_8u_I, ( const Ipp8u inUse[256], Ipp8u* pSrcDst, int srcDstLen, int sizeDictionary ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsCRC32_BZ2_8u
|
||
|
// Purpose: Performs the CRC32 checksum calculation according to the direct algorithm, which is used in bzip2.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pSrc Pointer to the source data vector
|
||
|
// srcLen The length of source vector
|
||
|
// pCRC32 Pointer to the value of accumulated CRC32
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Length of the source vector is less or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsCRC32_BZ2_8u, ( const Ipp8u* pSrc, int srcLen, Ipp32u* pCRC32 ))
|
||
|
|
||
|
#if !defined ( _OWN_BLDPCS )
|
||
|
struct EncodeHuffState_BZ2;
|
||
|
typedef struct EncodeHuffState_BZ2 IppEncodeHuffState_BZ2;
|
||
|
|
||
|
struct DecodeHuffState_BZ2;
|
||
|
typedef struct DecodeHuffState_BZ2 IppDecodeHuffState_BZ2;
|
||
|
#endif
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeHuffGetSize_BZ2_16u8u
|
||
|
// Purpose: Calculates the size of internal state for bzip2-specific Huffman coding.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// wndSize Size of the block to be processed
|
||
|
// pEncodeHuffStateSize Pointer to the size of internal state for bzip2-specific Huffman coding
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeHuffGetSize_BZ2_16u8u, ( int wndSize, int* pEncodeHuffStateSize ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeHuffInit_BZ2_16u8u
|
||
|
// Purpose: Initializes the elements of the bzip2-specific internal state for Huffman coding.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// sizeDictionary The size of the dictionary
|
||
|
// freqTable Table of frequencies of symbols
|
||
|
// pSrc Pointer to the source vector
|
||
|
// srcLen Length of the source vector
|
||
|
// pEncodeHuffState Pointer to internal state structure for bzip2 specific Huffman coding
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeHuffInit_BZ2_16u8u, ( int sizeDictionary, const int freqTable[258], const Ipp16u* pSrc, int srcLen,
|
||
|
IppEncodeHuffState_BZ2* pEncodeHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeHuffInitAlloc_BZ2_16u8u
|
||
|
// Purpose: Allocates the memory and initializes the elements of the bzip2-specific internal state for Huffman coding.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// wndSize The size of the input block in bytes
|
||
|
// sizeDictionary The size of the dictionary
|
||
|
// freqTable Table of frequencies of symbols
|
||
|
// pSrc Pointer to the source vector
|
||
|
// srcLen Length of the source vector
|
||
|
// pEncodeHuffState Pointer to internal state structure for bzip2 specific Huffman coding
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeHuffInitAlloc_BZ2_16u8u, ( int wndSize, int sizeDictionary, const int freqTable[258],
|
||
|
const Ipp16u* pSrc, int srcLen, IppEncodeHuffState_BZ2** ppEncodeHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsPackHuffContext_BZ2_16u8u
|
||
|
// Purpose: Performs the bzip2-specific encoding of Huffman context.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pCode Pointer to the bit buffer
|
||
|
// pCodeLenBits Number of valid bits in the bit buffer
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the size of destination buffer on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output
|
||
|
// pEncodeHuffState Pointer to internal state structure for bzip2 specific Huffman coding
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsDstSizeLessExpected The size of destination vector less expected
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsPackHuffContext_BZ2_16u8u, ( Ipp32u* pCode, int* pCodeLenBits, Ipp8u* pDst, int* pDstLen,
|
||
|
IppEncodeHuffState_BZ2* pEncodeHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeHuff_BZ2_16u8u
|
||
|
// Purpose: Performs the bzip2-specific Huffman encoding.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pCode Pointer to the bit buffer
|
||
|
// pCodeLenBits Number of valid bits in the bit buffer
|
||
|
// ppSrc Double pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of source vector
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the size of destination buffer on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output
|
||
|
// pEncodeHuffState Pointer to internal state structure for bzip2 specific Huffman coding
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsDstSizeLessExpected The size of destination vector less expected
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeHuff_BZ2_16u8u, ( Ipp32u* pCode, int* pCodeLenBits, Ipp16u** ppSrc, int* pSrcLen,
|
||
|
Ipp8u* pDst, int* pDstLen, IppEncodeHuffState_BZ2* pEncodeHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeHuffFree_BZ2_16u8u
|
||
|
// Purpose: Frees the bzip2-specific internal state for Huffman coding.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pEncodeHuffState Pointer to internal state structure for bzip2 specific Huffman coding.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(void, ippsEncodeHuffFree_BZ2_16u8u, ( IppEncodeHuffState_BZ2* pEncodeHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeHuffGetSize_BZ2_8u16u
|
||
|
// Purpose: Calculates the size of internal state for bzip2-specific Huffman decoding.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// wndSize Size of the block to be processed
|
||
|
// pDecodeHuffStateSize Pointer to the size of internal state for bzip2-specific Huffman decoding
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeHuffGetSize_BZ2_8u16u, ( int wndSize, int* pDecodeHuffStateSize ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeHuffInit_BZ2_8u16u
|
||
|
// Purpose: Initializes the elements of the bzip2-specific internal state for Huffman decoding.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// sizeDictionary The size of the dictionary
|
||
|
// pDecodeHuffState Pointer to internal state structure for bzip2 specific Huffman decoding
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeHuffInit_BZ2_8u16u, ( int sizeDictionary, IppDecodeHuffState_BZ2* pDecodeHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeHuffInitAlloc_BZ2_8u16u
|
||
|
// Purpose: Allocates the memory and initializes the elements of the bzip2-specific internal state for Huffman decoding.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// wndSize The size of the input block in bytes
|
||
|
// sizeDictionary The size of the dictionary
|
||
|
// pDecodeHuffState Pointer to internal state structure for bzip2 specific Huffman coding
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeHuffInitAlloc_BZ2_8u16u, ( int wndSize, int sizeDictionary, IppDecodeHuffState_BZ2** ppDecodeHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsUnpackHuffContext_BZ2_8u16u
|
||
|
// Purpose: Performs the bzip2-specific decoding of Huffman context.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pCode Pointer to the bit buffer
|
||
|
// pCodeLenBits Number of valid bits in the bit buffer
|
||
|
// pSrc Pointer to the destination vector
|
||
|
// pSrcLen Pointer to the size of destination buffer on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output
|
||
|
// pDecodeHuffState Pointer to internal state structure for bzip2 specific Huffman decoding.
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsDstSizeLessExpected The size of destination vector less expected
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsUnpackHuffContext_BZ2_8u16u, ( Ipp32u* pCode, int* pCodeLenBits, Ipp8u** ppSrc, int* pSrcLen,
|
||
|
IppDecodeHuffState_BZ2* pDecodeHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeHuff_BZ2_8u16u
|
||
|
// Purpose: Performs the bzip2-specific Huffman decoding.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pCode Pointer to the bit buffer
|
||
|
// pCodeLenBits Number of valid bits in the bit buffer
|
||
|
// ppSrc Double pointer to the source vector
|
||
|
// pSrcLen Pointer to the length of source vector
|
||
|
// pDst Pointer to the destination vector
|
||
|
// pDstLen Pointer to the size of destination buffer on input,
|
||
|
// pointer to the resulting length of the destination vector
|
||
|
// on output
|
||
|
// pDecodeHuffState Pointer to internal state structure for bzip2 specific Huffman decoding.
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr One or several pointer(s) is NULL
|
||
|
// ippStsSizeErr Lengths of the source/destination vector are less
|
||
|
// or equal zero
|
||
|
// ippStsDstSizeLessExpected The size of destination vector less expected
|
||
|
// ippStsNoErr No errors
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeHuff_BZ2_8u16u, ( Ipp32u* pCode, int* pCodeLenBits, Ipp8u** ppSrc, int* pSrcLen,
|
||
|
Ipp16u* pDst, int* pDstLen, IppDecodeHuffState_BZ2* pDecodeHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeHuffFree_BZ2_8u16u
|
||
|
// Purpose: Frees the bzip2-specific internal state for Huffman decoding.
|
||
|
// Specific function for bzip2 compatibility.
|
||
|
//
|
||
|
// Parameters:
|
||
|
// pDecodeHuffState Pointer to internal state structure for bzip2 specific Huffman coding.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(void, ippsDecodeHuffFree_BZ2_8u16u, ( IppDecodeHuffState_BZ2* pDecodeHuffState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCEncodeFree_32s
|
||
|
// Purpose: Frees memory allocated for internal VLCDecode structure.
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pVLCSpec Pointer to pointer to VLCEncoder specification structure.
|
||
|
//
|
||
|
// Return:
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(void, ippsVLCEncodeFree_32s, (IppsVLCEncodeSpec_32s* pVLCSpec))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCEncodeInitAlloc_32s
|
||
|
// Purpose: ippsVLCEncodeInitAlloc_32s allocates and initializes the size
|
||
|
// for internal VLCEncode structure on the base of Variable Length Code table.
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pInputTable pointer to input table.
|
||
|
// inputTableSize size of this table.
|
||
|
// ppVLCSpec pointer to pointer to VLCEncoder specification structure.
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers
|
||
|
// passed to the function is NULL.
|
||
|
// ippStsVLCInputDataErr Indicates an error when incorrect input is used.
|
||
|
// ippStsMemAllocErr Indicates an error when memory for VLCEncoder
|
||
|
// specification structure was not allocated.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsVLCEncodeInitAlloc_32s, (const IppsVLCTable_32s* pInputTable, int inputTableSize, IppsVLCEncodeSpec_32s** ppVLCSpec))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCEncodeInit_32s
|
||
|
// Purpose: ippsVLCEncodeInit_32s initializes the size for internal VLCEncode
|
||
|
// structure on the base of Variable Length Code table.
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pInputTable pointer to input table.
|
||
|
// inputTableSize size of this table.
|
||
|
// pVLCSpec pointer to VLCEncoder specification structure.
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers
|
||
|
// passed to the function is NULL.
|
||
|
// ippStsVLCInputDataErr Indicates an error when incorrect input is used.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsVLCEncodeInit_32s, (const IppsVLCTable_32s* pInputTable, int inputTableSize, IppsVLCEncodeSpec_32s* pVLCSpec))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCEncodeGetSize_32s
|
||
|
// Purpose: ippsVLCEncodeGetSize_32s calculates the size for internal VLCEncode
|
||
|
// structure on the base of Variable Length Code table.
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pInputTable pointer to input table.
|
||
|
// inputTableSize size of this table.
|
||
|
// pSize pointer to size of VLCEncoder specification structure.
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers
|
||
|
// passed to the function is NULL.
|
||
|
// ippStsVLCInputDataErr Indicates an error when incorrect input is used.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsVLCEncodeGetSize_32s, (const IppsVLCTable_32s* pInputTable, int inputTableSize, Ipp32s* pSize))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Name: ippsVLCEncodeBlock_16s1u
|
||
|
// Purpose: ippsVLCEncodeBlock_16s1u encodes dstLen elements from the source
|
||
|
// data pSrc and stores the result in the destination buffer *ppDst.
|
||
|
// In addition, the function advances pointer *ppDst on the number
|
||
|
// successfully written bytes and stores the actual it in ppDst.
|
||
|
// The functions updates *pSrcBitsOffset to the value of the actual
|
||
|
// bit offset in the source buffer *ppDst.
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pSrc pointer to source values array.
|
||
|
// srcLen size of value is array pSrc.
|
||
|
// ppDst pointer to pointer to destination bitstream.
|
||
|
// pDstBitsOffset pointer to in/out bit offset in pDst.
|
||
|
// pVLCSpec pointer to VLCEncoder specification structure.
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers
|
||
|
// passed to the function is NULL.
|
||
|
// ippStsVLCInputDataErr Indicates an error when incorrect input is used.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsVLCEncodeBlock_16s1u, (const Ipp16s* pSrc, int srcLen, Ipp8u** ppDst, int* pDstBitsOffset, const IppsVLCEncodeSpec_32s* pVLCSpec))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Name: ippsVLCEncodeOne_16s1u
|
||
|
// Purpose: ippsVLCEncodeOne_16s1u uses VLC table specified for
|
||
|
// ippsVLCEncodeInitAlloc_32s function or for ippsVLCEncodeInit_32s function.
|
||
|
//
|
||
|
// Arguments:
|
||
|
// src source value.
|
||
|
// ppDst pointer to pointer to destination bitstream.
|
||
|
// pDstBitsOffset pointer to in/out bit offset in pDst.
|
||
|
// pVLCSpec pointer to VLCEncoder specification structure.
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers
|
||
|
// passed to the function is NULL.
|
||
|
// ippStsVLCInputDataErr Indicates an error when incorrect input is used.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsVLCEncodeOne_16s1u, (Ipp16s src, Ipp8u** pDst, int* pDstBitsOffset, const IppsVLCEncodeSpec_32s* pVLCSpec))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCCountBits_16s32s
|
||
|
// Purpose: ippsVLCCountBits_16s32s calculates number of bits necessary for encoding
|
||
|
// source data in pSrc using variable Length Codes specified by pInputTable
|
||
|
// in the function ippsVLCEncodeInitAlloc_32s or in ippsVLCEncodeInit_32s.
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pVLCSpec pointer to pointer to VLCEncoder specification structure.
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers
|
||
|
// passed to the function is NULL.
|
||
|
// ippStsVLCInputDataErr Indicates an error when incorrect input is used.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsVLCCountBits_16s32s, (const Ipp16s* pSrc, int srcLen, Ipp32s* pCountBits, const IppsVLCEncodeSpec_32s* pVLCSpec))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCDecodeGetSize_32s
|
||
|
// Purpose: calculates the size for internal VLCDecode structure on
|
||
|
// the base of input parameters
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pInputTable pointer to input table.
|
||
|
// inputTableSize size of this table
|
||
|
// pSubTablesSizes sizes of subTables
|
||
|
// numSubTables num of Subtabtes.
|
||
|
// pSize pointer to size of VLCDecoder specification
|
||
|
// structure
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers
|
||
|
// passed to the function is NULL.
|
||
|
// ippStsVLCUsrTblCodeLengthErr Indicates an error when 1) the maximal length
|
||
|
// of codec in the input table exceeds 32;
|
||
|
// 2) when any size in of subtables in
|
||
|
// pSubTablesSizes is less than one;
|
||
|
// 3)when sum of this values is less than the
|
||
|
// maximal length of codes in the input table.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsVLCDecodeGetSize_32s,(const IppsVLCTable_32s *pInputTable,
|
||
|
int inputTableSize,
|
||
|
Ipp32s *pSubTablesSizes,
|
||
|
int numSubTables,
|
||
|
Ipp32s *pSize))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCDecodeInit_32s
|
||
|
// Purpose: initializes internal VLCDecode structure
|
||
|
// based on the input parameters
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pInputTable pointer to input table.
|
||
|
// inputTableSize size of this table
|
||
|
// pSubTablesSizes sizes of subTables
|
||
|
// numSubTables num of Subtabtes.
|
||
|
// pVLCSpec pointer to VLCDecoder specification structure
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers
|
||
|
// passed to the function is NULL.
|
||
|
// ippStsVLCUsrTblCodeLengthErr Indicates an error when 1) the maximal length
|
||
|
// of codec in the input table exceeds 32;
|
||
|
// 2) when any size in of subtables in
|
||
|
// pSubTablesSizes is less than one;
|
||
|
// 3)when sum of this values is less than the
|
||
|
// maximal length of codes in the input table.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsVLCDecodeInit_32s,(const IppsVLCTable_32s *pInputTable,
|
||
|
int inputTableSize,
|
||
|
Ipp32s *pSubTablesSizes,
|
||
|
int numSubTables,
|
||
|
IppsVLCDecodeSpec_32s *pVLCSpec))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCDecodeInitAlloc_32s
|
||
|
// Purpose: allocates and initializes internal VLCDecode structure
|
||
|
// based on the input parameters
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pInputTable pointer to input table.
|
||
|
// inputTableSize size of this table
|
||
|
// pSubTablesSizes sizes of subTables
|
||
|
// numSubTables num of Subtabtes.
|
||
|
// ppVLCSpec pointer to pointer VLCDecoder specification structure
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers
|
||
|
// passed to the function is NULL.
|
||
|
// ippStsVLCUsrTblCodeLengthErr Indicates an error when 1) the maximal length
|
||
|
// of codec in the input table exceeds 32;
|
||
|
// 2) when any size in of subtables in
|
||
|
// pSubTablesSizes is less than one;
|
||
|
// 3)when sum of this values is less than the
|
||
|
// maximal length of codes in the input table.
|
||
|
// ippStsMemAllocErr Indicates an error when memory for VLCDecoder
|
||
|
// specification structure was not allocated.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsVLCDecodeInitAlloc_32s,(const IppsVLCTable_32s *pInputTable,
|
||
|
int inputTableSize,
|
||
|
Ipp32s *pSubTablesSizes,
|
||
|
int numSubTables,
|
||
|
IppsVLCDecodeSpec_32s **ppVLCSpec))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCDecodeFree_32s
|
||
|
// Purpose: frees memory allocated for internal VLCDecode structure
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pVLCSpec pointer to VLCDecoder specification structure
|
||
|
//
|
||
|
// Return:
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(void, ippsVLCDecodeFree_32s, (IppsVLCDecodeSpec_32s *pVLCSpec))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCDecodeBlock_1u16s
|
||
|
// Purpose: decodes a dstLen element encoded by VLC code from the source data
|
||
|
// *ppSrc with *pSrcBitsOffset bits offset and stores the result in
|
||
|
// the destination *pDst
|
||
|
//
|
||
|
// Arguments:
|
||
|
// ppSrc pointer to pointer to source input bitstream
|
||
|
// pSrcBitsOffset pointer to in/out source stream bit offset position
|
||
|
// pDst decoded values array
|
||
|
// dstLen number of values to decode into array pDst
|
||
|
// pVLCSpec pointer to VLCDecoder specification structure
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers passed to
|
||
|
// the function is NULL.
|
||
|
// ippStsVLCInputDataErr Indicates an error when incorrect input is used.
|
||
|
// It can indicate that bitstream contain code that is not
|
||
|
// specified inside the used table.
|
||
|
// ippStsBitOffsetErr Indicate an error when offset less than 0 or more than 7.
|
||
|
// ippStsContextMatchErr Indicate an error when pVLCSpec struct was not created by
|
||
|
// ippsVLCDecodeInit_32s or ippsVLCDecodeInitAlloc_32s functions.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsVLCDecodeBlock_1u16s,(Ipp8u **ppSrc,
|
||
|
int *pSrcBitsOffset,
|
||
|
Ipp16s *pDst,
|
||
|
int dstLen,
|
||
|
const IppsVLCDecodeSpec_32s *pVLCSpec))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCDecodeOne_1u16s
|
||
|
// Purpose: decodes a single element encoded by VLC code from the source data
|
||
|
// *ppSrc with *pSrcBitsOffset bits offset and stores the result in
|
||
|
// the destination *pDst
|
||
|
//
|
||
|
// Arguments:
|
||
|
// ppSrc pointer to pointer to source input bitstream
|
||
|
// pSrcBitsOffset pointer to in/out source stream bit offset position
|
||
|
// pDst decoded value
|
||
|
// pVLCSpec pointer to VLCDecoder specification structure
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers passed to
|
||
|
// the function is NULL.
|
||
|
// ippStsVLCInputDataErr Indicates an error when incorrect input is used.
|
||
|
// It can indicate that bitstream contain code that is not
|
||
|
// specified inside the used table.
|
||
|
// ippStsBitOffsetErr Indicate an error when offset less than 0 or more than 7.
|
||
|
// ippStsContextMatchErr Indicate an error when pVLCSpec struct was not created by
|
||
|
// ippsVLCDecodeInit_32s or ippsVLCDecodeInitAlloc_32s functions.
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsVLCDecodeOne_1u16s,(Ipp8u **ppSrc,
|
||
|
int *pSrcBitsOffset,
|
||
|
Ipp16s *pDst,
|
||
|
const IppsVLCDecodeSpec_32s *pVLCSpec))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCDecodeUTupleGetSize_32s
|
||
|
// Purpose: calculates the size for internal VLCDecode structure on
|
||
|
// the base of input parameters
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pInputTable pointer to input table.
|
||
|
// inputTableSize size of this table
|
||
|
// pSubTablesSizes sizes of subTables
|
||
|
// numSubTables num of Subtabtes.
|
||
|
// numElements number of elements in tuple
|
||
|
// numValueBit size of one element value, bit.
|
||
|
// pSize pointer to size of VLCDecoder specification
|
||
|
// structure
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers
|
||
|
// passed to the function is NULL.
|
||
|
// ippStsVLCUsrTblCodeLengthErr Indicates an error when 1) the maximal length
|
||
|
// of codec in the input table exceeds 32;
|
||
|
// 2) when any size in of subtables in
|
||
|
// pSubTablesSizes is less than one;
|
||
|
// 3)when sum of this values is less than the
|
||
|
// maximal length of codes in the input table.
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsVLCDecodeUTupleGetSize_32s,(const IppsVLCTable_32s *pInputTable,
|
||
|
int inputTableSize,
|
||
|
Ipp32s *pSubTablesSizes,
|
||
|
int numSubTables,
|
||
|
int numElements,
|
||
|
int numValueBit,
|
||
|
Ipp32s *pSize))
|
||
|
|
||
|
/*******************************************************************/
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCDecodeUTupleInit_32s
|
||
|
// Purpose: initializes internal VLCDecode structure
|
||
|
// based on the input parameters
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pInputTable pointer to input table.
|
||
|
// inputTableSize size of this table
|
||
|
// pSubTablesSizes sizes of subTables
|
||
|
// numSubTables num of Subtabtes.
|
||
|
// numElements number of elements in tuple
|
||
|
// numValueBit size of one element value, bit.
|
||
|
// pVLCSpec pointer to VLCDecoder specification structure
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers
|
||
|
// passed to the function is NULL.
|
||
|
// ippStsVLCUsrTblCodeLengthErr Indicates an error when 1) the maximal length
|
||
|
// of codec in the input table exceeds 32;
|
||
|
// 2) when any size in of subtables in
|
||
|
// pSubTablesSizes is less than one;
|
||
|
// 3)when sum of this values is less than the
|
||
|
// maximal length of codes in the input table.
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsVLCDecodeUTupleInit_32s,(const IppsVLCTable_32s *pInputTable,
|
||
|
int inputTableSize,
|
||
|
Ipp32s *pSubTablesSizes,
|
||
|
int numSubTables,
|
||
|
int numElements,
|
||
|
int numValueBit,
|
||
|
IppsVLCDecodeUTupleSpec_32s *pVLCSpec))
|
||
|
|
||
|
/*******************************************************************/
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCDecodeUTupleInitAlloc_32s
|
||
|
// Purpose: allocates and initializes internal VLCDecode structure
|
||
|
// based on the input parameters
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pInputTable pointer to input table.
|
||
|
// inputTableSize size of this table
|
||
|
// pSubTablesSizes sizes of subTables
|
||
|
// numSubTables num of Subtabtes.
|
||
|
// numElements number of elements in tuple
|
||
|
// numValueBit size of one element value, bit.
|
||
|
// ppVLCSpec pointer to pointer VLCDecoder specification structure
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers
|
||
|
// passed to the function is NULL.
|
||
|
// ippStsVLCUsrTblCodeLengthErr Indicates an error when 1) the maximal length
|
||
|
// of codec in the input table exceeds 32;
|
||
|
// 2) when any size in of subtables in
|
||
|
// pSubTablesSizes is less than one;
|
||
|
// 3)when sum of this values is less than the
|
||
|
// maximal length of codes in the input table.
|
||
|
// ippStsMemAllocErr Indicates an error when memory for VLCDecoder
|
||
|
// specification structure was not allocated.
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsVLCDecodeUTupleInitAlloc_32s,(const IppsVLCTable_32s *pInputTable,
|
||
|
int inputTableSize,
|
||
|
Ipp32s *pSubTablesSizes,
|
||
|
int numSubTables,
|
||
|
int numElements,
|
||
|
int numValueBit,
|
||
|
IppsVLCDecodeUTupleSpec_32s **ppVLCSpec))
|
||
|
|
||
|
/*******************************************************************/
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCDecodeUTupleFree_32s
|
||
|
// Purpose: frees memory allocated for internal VLCDecode structure
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pVLCSpec pointer to VLCDecoder specification structure
|
||
|
//
|
||
|
// Return:
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(void, ippsVLCDecodeUTupleFree_32s,(IppsVLCDecodeUTupleSpec_32s *pVLCSpec))
|
||
|
|
||
|
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCDecodeUTupleBlock_1u16s
|
||
|
// Purpose: decodes a dstLen element encoded by VLC code from the source data
|
||
|
// *ppSrc with *pSrcBitsOffset bits offset and stores the result in
|
||
|
// the destination *pDst
|
||
|
//
|
||
|
// Arguments:
|
||
|
// ppSrc pointer to pointer to source input bitstream
|
||
|
// pSrcBitsOffset pointer to in/out source stream bit offset position
|
||
|
// pDst decoded values array
|
||
|
// dstLen number of values to decode into array pDst
|
||
|
// pVLCSpec pointer to VLCDecoder specification structure
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers passed to
|
||
|
// the function is NULL.
|
||
|
// ippStsVLCInputDataErr Indicates an error when incorrect input is used.
|
||
|
// It can indicate that bitstream contain code that is not
|
||
|
// specified inside the used table.
|
||
|
// ippStsBitOffsetErr Indicate an error when offset less than 0 or more than 7.
|
||
|
// ippStsContextMatchErr Indicate an error when pVLCSpec struct was not created by
|
||
|
// ippsVLCDecodeInit_32s or ippsVLCDecodeInitAlloc_32s functions.
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsVLCDecodeUTupleBlock_1u16s,(Ipp8u **ppSrc,
|
||
|
int *pSrcBitsOffset,
|
||
|
Ipp16s *pDst,
|
||
|
int dstLen,
|
||
|
const IppsVLCDecodeUTupleSpec_32s *pVLCSpec))
|
||
|
|
||
|
/*******************************************************************/
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsVLCDecodeUTupleOne_1u16s
|
||
|
// Purpose: decodes a single element encoded by VLC code from the source data
|
||
|
// *ppSrc with *pSrcBitsOffset bits offset and stores the result in
|
||
|
// the destination *pDst
|
||
|
//
|
||
|
// Arguments:
|
||
|
// ppSrc pointer to pointer to source input bitstream
|
||
|
// pSrcBitsOffset pointer to in/out source stream bit offset position
|
||
|
// pDst decoded value
|
||
|
// pVLCSpec pointer to VLCDecoder specification structure
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNoErr Indicates no error.
|
||
|
// ippStsNullPtrErr Indicates an error when one or more pointers passed to
|
||
|
// the function is NULL.
|
||
|
// ippStsVLCInputDataErr Indicates an error when incorrect input is used.
|
||
|
// It can indicate that bitstream contain code that is not
|
||
|
// specified inside the used table.
|
||
|
// ippStsBitOffsetErr Indicate an error when offset less than 0 or more than 7.
|
||
|
// ippStsContextMatchErr Indicate an error when pVLCSpec struct was not created by
|
||
|
// ippsVLCDecodeInit_32s or ippsVLCDecodeInitAlloc_32s functions.
|
||
|
//
|
||
|
*/
|
||
|
|
||
|
IPPAPI(IppStatus, ippsVLCDecodeUTupleOne_1u16s,(Ipp8u **ppSrc,
|
||
|
int *pSrcBitsOffset,
|
||
|
Ipp16s *pDst,
|
||
|
const IppsVLCDecodeUTupleSpec_32s *pVLCSpec))
|
||
|
/**************************************************
|
||
|
IPP LZO Definitions
|
||
|
***************************************************/
|
||
|
#if !defined ( _OWN_BLDPCS )
|
||
|
typedef enum {
|
||
|
IppLZO1XST, /* Single-threaded, generic LZO-compatible*/
|
||
|
IppLZO1XMT /* Multi-threaded */
|
||
|
} IppLZOMethod ;
|
||
|
struct LZOState_8u;
|
||
|
typedef struct LZOState_8u IppLZOState_8u;
|
||
|
#endif
|
||
|
|
||
|
/*******************************************************************/
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZOGetSize
|
||
|
// Purpose: returns structure size necessary for compression
|
||
|
//
|
||
|
// Arguments:
|
||
|
// method LZO method to be used during compression
|
||
|
// maxInputLen maximum length of input buffer, which will be processed by Encode
|
||
|
// pSize pointer to size variable
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsBadArgErr illegal method
|
||
|
// ippStsNullPtrErr NULL pointer detected
|
||
|
// ippStsNoErr no error
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeLZOGetSize, (IppLZOMethod method, Ipp32u maxInputLen, Ipp32u *pSize))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZO_8u
|
||
|
// Purpose: compresses specified input buffer
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pSrc input data address
|
||
|
// srcLen input data length
|
||
|
// pDst output buffer address
|
||
|
// pDstLen pointer to resulting length variable, must contain output buffer length upon start
|
||
|
// pLZOState pointer to IppLZOState structure variable
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr one of the pointers is NULL
|
||
|
// ippStsDstSizeLessExpected output buffer is too short for compressed data
|
||
|
// ippStsNoErr no error detected
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeLZO_8u, (const Ipp8u *pSrc, Ipp32u srcLen, Ipp8u *pDst, Ipp32u *pDstLen, IppLZOState_8u *pLZOState ))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsEncodeLZOInit
|
||
|
// Purpose: initializes IppLZOSate_8u structure
|
||
|
//
|
||
|
// Arguments:
|
||
|
// method LZO compression method desired
|
||
|
// maxInputLen maximum length of input buffer, which will be processed by Encode
|
||
|
// pLZOState pointer to IppLZOState structure variable
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr one of the pointers is NULL
|
||
|
// ippStsBadArgErr illegal method
|
||
|
// ippStsNoErr no error detected
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsEncodeLZOInit_8u, (IppLZOMethod method, Ipp32u maxInputLen, IppLZOState_8u *pLZOState))
|
||
|
|
||
|
/* /////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: ippsDecodeLZO_8u
|
||
|
// Purpose: decompresses specified input buffer to output buffer, returns decompressed data length
|
||
|
// Name: ippsDecodeLZOSafe_8u
|
||
|
// Purpose: decompresses specified input buffer to output buffer with checking output buffer boundaries, returns decompressed data length
|
||
|
//
|
||
|
// Arguments:
|
||
|
// pSrc pointer to input buffer
|
||
|
// srcLen input data length
|
||
|
// pDst pointer to output buffer
|
||
|
// pDstLen pointer to output data length variable. Initially contains output buffer length
|
||
|
//
|
||
|
// Return:
|
||
|
// ippStsNullPtrErr one of the pointers is NULL
|
||
|
// ippStsDstSizeLessExpected output buffer is too short for compressed data
|
||
|
// ippStsSrcSizeLessExpected input buffer data is not complete, i.e. no EOF found
|
||
|
// ippStsBrokenLzoStream ippsDecodeLZOSafe_8u detected output buffer boundary violation
|
||
|
// ippStsNoErr no error detected
|
||
|
//
|
||
|
*/
|
||
|
IPPAPI(IppStatus, ippsDecodeLZO_8u, (const Ipp8u *pSrc, Ipp32u srcLen, Ipp8u *pDst, Ipp32u *pDstLen))
|
||
|
IPPAPI(IppStatus, ippsDecodeLZOSafe_8u, (const Ipp8u *pSrc, Ipp32u srcLen, Ipp8u *pDst, Ipp32u *pDstLen))
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if defined (_IPP_STDCALL_CDECL)
|
||
|
#undef _IPP_STDCALL_CDECL
|
||
|
#define __stdcall __cdecl
|
||
|
#endif
|
||
|
|
||
|
#endif /* __IPPDC_H__ */
|
||
|
/* ////////////////////////////// End of file /////////////////////////////// */
|
||
|
|