| The Datasheet Archive - 100 Million Datasheets from 7500 Manufacturers. |
LZS221-960 Version Data Compression Software Hi/fnsupplies Internet's
Top Searches for this datasheet'$7$ 6+((7 9HUVLRQ 'DWD6RIWZDUH &RPSUHVVLRQ LZS221-960 Version Data Compression Software Hi/fnsupplies Internet's most important materials: compression encryption. Hi/fn also world's first company both single chip, creating processor that performs compression encryption faster speed than conventional alone could handle, much less than cost Pentium comparable processor. October 1998, address Hi/fn, Inc. University Avenue Gatos, 95032 info@hifn.com http://www.hifn.com Tel: 408-399-3500 Fax: 408-399-3501 Hi/fn Applications Support Hotline: 408-399-3544 Disclaimer Hi/fn reserves right make changes products discontinue semiconductor product service without notice, advises customers obtain latest version relevant information verify, before placing orders, that information being relied current. Hi/fn warrants performance semiconductor products related software specifications applicable time sale accordance with Hi/fn's standard warranty. Testing other quality control techniques utilized extent Hi/fn deems necessary support this warranty. Specific testing parameters each device necessarily performed, except those mandated government requirements. Certain applications using semiconductor products involve potential risks death, personal injury, severe property environmental damage ("Critical Applications"). HI/FN SEMICONDUCTOR PRODUCTS DESIGNED, INTENDED, AUTHORIZED, WARRANTED SUITABLE LIFE-SUPPORT APPLICATIONS, DEVICES SYSTEMS OTHER CRITICAL APPLICATIONS. Inclusion Hi/fn products such critical applications understood fully risk customer. Questions concerning potential risk applications should directed Hi/fn through local sales office. order minimize risks associated with customer's applications, adequate design operating safeguards should provided customer minimize inherent procedural hazards. Hi/fn does warrant that products free from infringement patents, copyrights other proprietary rights third parties. event shall Hi/fn liable special, incidental consequential damages arising from infringement alleged infringement patents, copyrights other third party intellectual property rights. "Typical" parameters vary different applications. operating parameters, including "Typicals," must validated each customer application customer's technical experts. this product require license from Motorola. license agreement right Motorola patents obtained through Hi/fn directly from Motorola. DS-0007-00 (9/98) 1997-1998 Hi/fn, Inc., including more U.S. patents No.: 4,701,745, 5,003,307, 5,016,009, 5,126,739, 5,146,221, 5,414,425, 5,414,850, 5,463,390, 5,506,580, 5,532,694. Other patents pending. Page DS-0007-00 DATA SHEET LZS221-960 Version Data Compression Software Table Contents Product Description LZS221-960 Files.6 Function Summary.6 Predefined Constants Performance.7 Hi/fn Compression.7 Compression Decompression Histories History Maintenance LZS_SizeOfCompressionHistory LZS_InitCompressionHistory.9 LZS_Compress LZS_InitDecompressionHistory LZS_Decompress Figures Figure Figure Figure Figure Figure Figure Figure Effect performance parameters LZS_Compress flags parameter LZS_Compress example pseudocode.12 LZS_Compress return value.13 LZS_Decompress flags parameter.14 LZS_Decompress pseudocode example LZS_Decompress return value DATA SHEET DS-0007-00 Page LZS221-960 Version Data Compression Software THIS PAGE INTENTIONALLY BLANK Page DS-0007-00 DATA SHEET LZS221-960 Version Data Compression Software Product Description LZS221-960 Data Compression Software Library provides processor independent software implementation Hi/fn LZS® algorithm assembly source code format family Intel i960 family RISC processors. Figure page illustrates compression speed this library with variety processors. This library supports simultaneous multiple compression decompression histories. Each history completely independent other histories. addition, this software re-entrant. LZS221-960 fully compatible with Hi/fn's data compression compressor chips along with multi-tasking (multi-history) features. This library also compatible with other members LZS221 software family. Files compressed decompressed with hardware software compressed decompressed interchangeably with hardware software. Assembly language optimized implementations other specific processors also available. addition, source code version available that used create compression library processor. Consult Hi/fn more information. Features Hi/fn compression format Multiple history support Adjustable compression speed ratio High performance Cross compatible with other Hi/fn compression software hardware version Independent compression decompression histories Independent compress decompress modules Update decompression history with uncompressed data DATA SHEET DS-0007-00 Page LZS221-960 Version Data Compression Software LZS221-960 Files LZS221-960 library composed several files. There common header file sets files depending whether target memory system little-endian big-endian oriented. files summarized below: LZS.H This common header file contains function prototypes constant definitions. This header file should included source modules that access LZS221-960 library. LZSMEML.S This little-endian source file contains several common functions required both compression decompression modules. LZSCL.S This little-endian source file contains functions required compression operations. LZSDL.S This little-endian source file contains functions required decompression operations. LZSMEMB.S This big-endian source file contains several common functions required both compression decompression modules. LZSCB.S This big-endian source file contains functions required compression operations. LZSDB.S This big-endian source file contains functions required decompression operations. Function Summary Functions related data compression are: LZS_SizeOfCompressionHistory Returns amount memory required each compression history. LZS_InitCompressionHistory Initializes compression history. LZS_Compress Compresses block data. Functions related data decompression are: LZS_SizeOfDecompressionHistory Returns amount memory required each decompression history. LZS_InitDecompressionHistory Initializes decompression history. LZS_Decompress Decompresses block data. Predefined Constants following constants defined LZS.H header file. function definitions further information concerning these constants. Page DS-0007-00 DATA SHEET LZS221-960 Version Data Compression Software LZS_DEST_EXHAUSTED LZS_DEST_FLUSH LZS_DEST_MIN LZS_END_MARKER LZS_FLUSHED LZS_INVALID LZS_MAX_OVERRUN LZS_PERFORMANCE_MODE_0 LZS_PERFORMANCE_MODE_1 LZS_PERFORMANCE_MODE_2 LZS_SAVE_HISTORY LZS_SOURCE_EXHAUSTED LZS_SOURCE_FLUSH LZS_UNCOMPRESSED Note: unused bits function return values must ignored. unused bits input parameters must zero. Performance data presented this section generated compressing decompressing typical ASCII text file. this case text file containing U.S. Constitution used. Figure lists approximate speed compression decompression Intel 80690CA-33. performance parameter LZS_PERFORMANCE_MODE field flags parameter control speed compression ratio trade-off within LZS_Compress function. Figure demonstrates these parameters affect overall performance compression. performance performance _mode compress speed (Kbytes/s) compression ratio 1.69 2.04 2.24 2.34 decompress speed (Kbytes/s) 1432 1513 1534 1560 Figure Effect performance parameters Hi/fn Compression Hi/fn compression algorithm compresses decompresses data without sacrificing data integrity. Hi/fn compression reduces size data replacing redundant sequences characters with tokens that represent those sequences. When data decompressed, original sequences substituted tokens manner that preserves integrity data. Hi/fn differs significantly from "lossy" schemes, such those used often video images, which discard information that deemed unnecessary. DATA SHEET DS-0007-00 Page LZS221-960 Version Data Compression Software efficiency data compression depends degree redundancy within given file. Compression ratios 30:1 possible, average compression ratio mass storage applications typically 2:1. data communication applications, compression ratio more common. compression ratio adjusted optimal performance. Compression Decompression Histories This software requires reserved block memory order calculate maintain compression information. This referred "history". compression operation requires compression history. decompression operation requires decompression history. Some applications want maintain multiple compression decompression histories. example data communications product associate different history each data channel. This used maximize redundancy each individual history, which turn maximizes compression ratio that obtained. History Maintenance Before history used first time, must initialized. This accomplished using LZS_InitCompressionHistory LZS_InitDecompressionHistory commands. This will place history start state. start state allows history used when starting process block data. multiple histories, each history must initialized start state before used compression decompression. properly finish compressing block data, flush operation must performed. flush operation forces compression algorithm complete compression data read from source buffer, append unique marker compressed data. flush operation guarantees that data read compression algorithm will represented compressed data stream. flush operation also places compression history into start state. Sometimes, desirable process block data several smaller blocks sub-blocks). This allows smaller source destination buffers. LZS_Compress function allows this both LZS_SOURCE_FLUSH LZS_DEST_FLUSH flags zero. important note that when LZS_Compress function returns this condition, compression history start state, rather continue state. LZS_Compress function called multiple times without requiring flush operation. order properly terminate processing complete block data, LZS_SOURCE_FLUSH LZS_DEST_FLUSH must LZS_Compress function call last sub-block data. this done during last call LZS_Compress, alternative make additional call LZS_Compress with size source buffer zero, LZS_SOURCE_FLUSH one. Note: This last call will produce destination data. some situations, need compression history into start state without regard data that already been compressed. this case, LZS_Compress function called with size source buffer Page DS-0007-00 DATA SHEET LZS221-960 Version Data Compression Software zero, LZS_SOURCE_FLUSH LZS_SAVE_HISTORY zero. Alternatively, LZS_InitCompressionHistory function called (which slightly slower). LZS_SizeOfCompressionHistory unsigned short LZS_FAR This function must called determine number bytes required compression history. multiple compression histories used, simply multiply value returned this function number compression histories desired. Note: informational purposes only, size each compression history approximately bytes. This informational only, subject change. LZS_SizeOfCompressionHistory function must used determine actual byte count. LZS_InitCompressionHistory unsigned short LZS_FAR LZS_InitCompressionHistory( void LZS_FAR *history Pointer compression history This function must called initialize compression history before used with LZS_Compress function. Each compression history must initialized separately. Each history typically only initialized once, although compression history initialized time desired. this function called with compression history that been used previously, history will re-initialized beginning state. pending compression data within this compression history will lost. *history parameter pointer memory allocated compression history. size this allocated memory determined LZS_SizeOfCompressionHistory function. return value undefined will always non-zero. LZS_Compress unsigned short LZS_FAR LZS_Compress( unsigned char LZS_FAR LZS_FAR *source, unsigned char LZS_FAR LZS_FAR *dest, unsigned long LZS_FAR *sourceCnt, unsigned long LZS_FAR *destCnt, void LZS_FAR *history unsigned short flags, unsigned short performance Pointer pointer source buffer Pointer pointer destination buffer Pointer source count Pointer destinationbuffer size Pointer compression history Special flags Performance parameter DATA SHEET DS-0007-00 Page LZS221-960 Version Data Compression Software This function will compress data from source buffer into dest buffer. function will stop when sourceCnt bytes have been read from source buffer when destCnt bytes slightly less than destCnt bytes) have written dest buffer. flush operation occur under certain circumstances defined below. sourceCnt will decrement *source will increment each byte that read from source buffer. destCnt will decrement *dest will increment each byte that written dest buffer. valid range sourceCnt through 0xFFFFFFFF. valid range destCnt LZS_DEST_MIN through 0xFFFFFFFF this function called with destCnt less than LZS_DEST_MIN, function will immediately terminate without performing compression return value will LZS_INVALID. source buffer exhausts (meaning data been read from source buffer), then LZS_SOURCE_EXHAUSTED flag return value will when function returns. destination buffer exhausts (meaning data been written destination buffer), then LZS_DEST_EXHAUSTED flag return value will when function returns. Both conditions simultaneously. LZS_SOURCE_FLUSH flags parameter source buffer exhausts (sourceCnt reaches zero), then flush operation will occur. LZS_DEST_FLUSH flags parameter destination buffer exhausts (destCnt less than LZS_DEST_MIN), then flush operation will also occur. destCnt reach zero when LZS_Compress function returns. This unknown amount extra bytes that compression engine needs output during flush operation. both LZS_SOURCE_FLUSH LZS_DEST_FLUSH bits set, then when either source destination buffers exhaust flush operation will occur. values flush bits cannot changed between successive LZS_Compress function calls until corresponding buffer exhausted. That LZS_SOURCE_FLUSH cannot change until after LZS_SOURCE_EXHAUSTED flag returned, LZS_DEST_FLUSH cannot change until after LZS_DEST_EXHAUSTED flag returned. This independent whether flush operation actually occurs. flush operation will force intermediate data destination buffer, will append marker destination buffer. LZS_PERFORMANCE_ MODE LZS_SAVE_ HISTORY LZS_DEST_ FLUSH LZS_SOURCE_ FLUSH Figure LZS_Compress flags parameter Page DS-0007-00 DATA SHEET LZS221-960 Version Data Compression Software When function returns after flush operation occurs, both *source *dest pointers, well sourceCnt destCnt counters, will updated. LZS_SOURCE_EXHAUSTED LZS_DEST_EXHAUSTED flags will appropriately. Also, LZS_FLUSHED return value will When function returns without flush operation having occurred, then following values returned. source buffer exhausts, then sourceCnt counter will *source pointer will point byte beyond last byte processed source buffer, LZS_SOURCE_ EXHAUSTED flag will return value. source buffer does exhaust, *source pointer sourceCnt counter return values will returned values function called with. source buffer still compression engine, original allocated source buffer will used next function call. actual pointer counter values stored compression history area, value *source sourceCnt calling parameters next function call "don't care". Also, LZS_SOURCE_FLUSH must change value next call. destination buffer exhausts, then destCnt counter will *dest pointer will point byte beyond last byte processed dest buffer, LZS_DEST_ EXHAUSTED flag will return value. dest buffer does exhaust, *dest pointer destCnt counter return values will returned values function called with. destination buffer still compression engine, original allocated destination buffer will used next function call. actual pointer counter values stored compression history area, value *dest destCnt calling parameters next function call "don't care". Also, LZS_DEST_FLUSH must change value next call. function terminates with both source destination buffers exhausted then both LZS_SOURCE_EXHAUSTED LZS_DEST_ EXHAUSTED flags will return value counters pointers will updated. Additional calls LZS_Compress function made compress additional data. When more than call LZS_Compress function made, compressed data (when appended together with compressed data other function calls) will appear single call were made LZS_Compress function. pseudocode Figure illustrates example call this function. DATA SHEET DS-0007-00 Page LZS221-960 Version Data Compression Software returnCode LZS_DEST_EXHAUSTED LZS_SOURCE_EXHAUSTED; flags flagDefault !LZS_SOURCE_FLUSH !LZS_SOURCE_FLUSH sourceSize destSize while (!(returnCode LZS_FLUSHED)) (returnCode LZS_SOURCE_EXHAUSTED) Read block data into source buffer; sourceSize sourceCnt; (last block data) flags LZS_SOURCE_FLUSH; (returnCode LZS_DEST_EXHAUSTED) Allocate dest buffer; destCnt COMP_BUFFER_SIZE returnCode LZS_Compress(&source, &dest, &sourceCnt, &destCnt, compHistory, flags, performance); (returnCode (LZS_DEST_EXHAUSTED LZS_FLUSHED)) destCnt COMP_BUFFER_SIZE destCnt; destSize destCnt; Write dest buffer output device; Figure LZS_Compress example pseudocode LZS_SAVE_HISTORY flags parameter zero, Compression History will cleared flush operation. this one, Compression History will cleared. This will allow higher compression ratio next block compressed because will continue same history information. Note: Blocks must decompressed same order they were compressed Compression History been cleared between blocks during compression. LZS_SOURCE_FLUSH LZS_DEST_FLUSH bits flags parameter both zero, LZS_SAVE_HISTORY will ignored. performance parameter LZS_PERFORMANCE_MODE field flags parameter control amount time that LZS_Compress function will spend compressing current buffer data. faster LZS_Compress function performs, lower compression ratio becomes. Smaller values performance parameter will force faster execution LZS_Compress function. valid range performance parameter through 255. LZS_PERFORMANCE_MODE field flags parameter second order effect performance. Figure recommended values based value performance parameter. valid values LZS_PERFORMANCE_MODE field value invalid. values faster than high values. return value will LZS_INVALID (zero) destCnt calling parameter invalid. LZS_SOURCE_EXHAUSTED return value will function been terminated sourceCnt reaching zero. LZS_DEST_EXHAUSTED return value will function been terminated destCnt reaching almost reaching) zero. Both these bits simultaneously. LZS_FLUSHED will return value flush operation taken place. termination *source *dest pointers, sourceCnt, destCnt values updated depending conditions discussed above. Page DS-0007-00 DATA SHEET LZS221-960 Version Data Compression Software Note: this version software, value LZS_DEST_MIN This value specified here information purposes only. This value change future versions. write software that relies particular value LZS_DEST_MIN. LZS_ LZS_DEST_ FLUSHED EXHAUSTED LZS_SOURCE_ EXHAUSTED Figure LZS_Compress return value LZS_SizeOfDecompressionHistory unsigned short LZS_FAR This function must called determine number bytes required decompression history. multiple decompression histories used, simply multiply value returned this function number decompression histories desired. Note: informational purposes only, size each decompression history approximately bytes. This informational only, subject change. LZS_SizeOfDecompressionHistory function must used determine actual byte count. LZS_InitDecompressionHistory unsigned short LZS_FAR LZS_InitDecompressionHistory( void LZS_FAR *history Pointer decompression history This function must called initialize decompression history before used with LZS_Decompress function. Each decompression history must initialized separately. Each history typically only initialized once, although decompression history initialized time desired. *history parameter pointer memory allocated decompression history. size this allocated memory determined LZS_SizeOfDecompressionHistory function. return value will always non-zero. LZS_Decompress unsigned short LZS_FAR LZS_Decompress( unsigned char LZS_FAR LZS_FAR *source, unsigned char LZS_FAR LZS_FAR *dest, Pointer pointer tosource buffer Pointer pointer todestination buffer DATA SHEET DS-0007-00 Page LZS221-960 Version Data Compression Software unsigned long LZS_FAR *sourceCnt, unsigned long LZS_FAR *destCnt, void LZS_FAR *history unsigned short flags Pointer source count Pointer destination buffer size Pointer decompression history Special flags This function will decompress data from source buffer into dest buffer. function will stop when sourceCnt bytes have been read from source buffer when destCnt bytes have been written dest buffer marker encountered. sourceCnt will decrement *source will increment when each byte read from source buffer. destCnt will decrement *dest will increment when each byte written dest buffer. valid range sourceCnt through 0xFFFFFFFF valid range destCnt through 0xFFFFFFFF. source buffer exhausts (meaning data been read from source buffer), LZS_SOURCE_EXHAUSTED return value will one. dest buffer exhausts (meaning data been written destination buffer), LZS_DEST_ EXHAUSTED return value will one. marker been detected, LZS_END_MARKER return value will one. More than return value. function terminates marker being detected, then counters pointers will updated. these cases *source *dest pointers will point next bytes processed, sourceCnt will indicate number bytes remaining source buffer processed, destCnt will indicate number unused bytes (free space) destination buffer. function terminates source buffer being exhausted, *source pointer will point byte beyond last byte processed sourceCnt will this case *dest pointer destCnt counter return values will returned values function called with. destination buffer still compression engine, original allocated destination buffer will used next function call. actual pointer counter values stored decompression history area, value *dest destCnt calling parameters next function call "don't care". LZS_SAVE_ LZS_UNHISTORY COMPRESSED Figure LZS_Decompress flags parameter function terminates destination buffer being exhausted, *dest pointer will point byte beyond last byte processed destCnt will this case *source pointer sourceCnt counter return values will returned values function called with. source buffer still compression engine, original allocated source buffer will used next function call. actual pointer counter values stored Page DS-0007-00 DATA SHEET LZS221-960 Version Data Compression Software decompression history area, value *source sourceCnt calling parameters next function call "don't care". function terminates with both source destination buffers exhausted, then counters pointers will updated. Additional calls LZS_Decompress function made decompress additional data. When more than call LZS_Decompress function made, decompressed data (when appended together with decompressed data other function calls) will appear single call were made LZS_Decompress function. pseudocode Figure illustrates example call this function. returnCode LZS_DEST_EXHAUSTED LZS_SOURCE_EXHAUSTED; flags flagDefault sourceSize destSize while (!(returnCode LZS_END_MARKER)) (returnCode LZS_SOURCE_EXHAUSTED) Read block data into source buffer; sourceSize sourceCnt; (returnCode LZS_DEST_EXHAUSTED) Allocate dest buffer; returnCode LZS_Decompress(&source, &dest, &sourceCnt, &destCnt, decompHistory, flags); (returnCode (LZS_DEST_EXHAUSTED LZS_END_MARKER)) destCnt (RAW_BUFFER_SIZE destCnt); destSize destCnt; Write dest buffer output device; Figure LZS_Decompress pseudocode example desired terminate processing block data prior data block, simply call LZS_InitDecompressionHistory function. Normally, LZS_SAVE_HISTORY flags parameter should set. This required ensure that decompression history properly updated between calls. LZS_SAVE_HISTORY zero, known that compression history associated with current decompression history cleared. This will improve decompression speed when maintaining history. Note: Blocks must decompressed same order they were compressed Compression History been cleared between blocks during compression (i.e. LZS_SAVE_HISTORY during LZS_Compress function calls). LZS_UNCOMPRESSED flags parameter one, source data treated were uncompressed data. decompression history will updated reflect this data. data source buffer will moved into destination buffer. This only after decompression history initialized after marker detected. sourceCnt destCnt parameters must same value function call when LZS_UNCOMPRESSED set. counters pointers will updated when function returns. DATA SHEET DS-0007-00 Page LZS221-960 Version Data Compression Software LZS_END_ LZS_DEST_ MARKER EXHAUSTED LZS_SOURCE_ EXHAUSTED Figure LZS_Decompress return value Page DS-0007-00 DATA SHEET Other recent searchesZRO1860A1LF - ZRO1860A1LF ZRO1860A1LF Datasheet VO4257 - VO4257 VO4257 Datasheet VO4258 - VO4258 VO4258 Datasheet VDZ6 - VDZ6 VDZ6 Datasheet TLRH1106 - TLRH1106 TLRH1106 Datasheet TLSH1106 - TLSH1106 TLSH1106 Datasheet TLOH1106 - TLOH1106 TLOH1106 Datasheet TLYH1106 - TLYH1106 TLYH1106 Datasheet TLGH1106 - TLGH1106 TLGH1106 Datasheet STi5107 - STi5107 STi5107 Datasheet MK04-1A66C-700W - MK04-1A66C-700W MK04-1A66C-700W Datasheet MK04-1A71C-700W - MK04-1A71C-700W MK04-1A71C-700W Datasheet LTC2460 - LTC2460 LTC2460 Datasheet ATA5279P - ATA5279P ATA5279P Datasheet
Privacy Policy | Disclaimer |