12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996 |
- /* /////////////////////////////////////////////////////////////////////////////
- //
- // 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 /////////////////////////////// */
|