Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
DEFLATE кодек кітапханасы
DEFLATE codec library
zlib (/'//z//i://l//I//b/ немесе "zeta lib", /'//z//i://t//@,//l//I//b/) – деректерді сығыстыру және деректер пішімі ретінде қолданылатын бағдарламалық кітапхана. Деректер әдетте zlib немесе gzip орамасымен жазылады, ол деректерге бас және аяқ жазуды қосып, ағынды идентификациясы мен DEFLATE деректерінде болмайтын қателерді анықтауды қамтамасыз етеді. zlib орамасы (RFC 1950) gzip орамасынан (RFC 1952) кішірек, себебі соңғысы файл атауын және басқа файлдық жүйе туралы ақпаратты сақтайды.
zlib (/'//z//i://l//I//b/ or "zeta lib", /'//z//i://t//@//,//l//I//b/) is a software library used for data compression as well as a data format. are typically written with a zlib or gzip wrapper encapsulating the data, by adding a header and footer. This provides stream identification and error detection that are not provided by the raw DEFLATE data. The zlib wrapper (RFC 1950) is smaller than the gzip wrapper (RFC 1952), as the latter stores a file name and other file system information.
Алгоритм
2018 жылға қарай zlib тек бір ғана алгоритмді қолдайды, ол DEFLATE деп аталады және ол LZ77 (Lempel–Ziv 1977) нұсқасының және Хаффман кодтауының үйлесімін пайдаланады. Бұл алгоритм жүйе ресурстарын аз қолдана отырып, әртүрлі деректерді жақсы қысуға мүмкіндік береді. Бұл алгоритм Zip архив форматында да қолданылады. Зақымдану қағазы басқа алгоритмдерге мүмкіндік береді, бірақ қазірге ешқайсысы іске асырылмаған.
as of 2018, zlib only supports one algorithm, called DEFLATE, which uses a combination of a variation of LZ77 (Lempel–Ziv 1977) and Huffman coding. This algorithm provides good compression on a wide variety of data with minimal use of system resources. This is also the algorithm used in the Zip archive format. The header makes allowance for other algorithms, but none are currently implemented.
Ресурстарды пайдалану
zlib процессор мен жадты пайдалануды басқару мүмкіндіктерін ұсынады. Қысу жылдамдығы мен сапасын өзара алмастыратын қысу деңгейінің мәнін беруге болады. Сондай-ақ, жадты үнемдеуге арналған құралдар да бар, олар жады шектеулі орталарда, мысалы, кейбір кіріктірілген жүйелерде пайдалы.
zlib provides facilities for control of processor and memory use. A compression level value may be supplied that trades speed for compression. There are also facilities for conserving memory, useful in restricted memory environments, such as some embedded systems.
Стратегия
Сығуды нақты дерек түрлеріне оңтайландыруға болады. Егер кітапхананы әрдайым белгілі бір деректерді сығыстыру үшін қолдансаңыз, онда нақты стратегияны қолдану сығылу мен өнімділікті жақсартуы мүмкін. Мысалы, егер деректерде ұзақ қайталанатын байттар болса, жүріс ұзындығын кодтау (RLE) стратегиясы жоғары жылдамдықпен жақсы нәтижелер беруі мүмкін. Жалпы деректер үшін әдепкі стратегия ұсынылады.
The compression can be optimized for specific types of data. If one is using the library to always compress specific types of data, then using a specific strategy may improve compression and performance. For example, if the data contain long lengths of repeated bytes, the run length encoding (RLE) strategy may give good results at a higher speed. For general data, the default strategy is preferred.
Қателерді өңдеу
Сығылған деректердегі қателер анықталып, елеусіз қалдырылуы мүмкін. Бұдан әрі, егер "толық тазалау" нүктелері сығылған ағынға жазылса, зақымдалған деректер жіберіліп тасталуы мүмкін, ал декомпрессия келесі тазалау нүктесінде қайта синхрондалады – бірақ зақымдалған деректерді қалпына келтіру көзделмейді. Толық тазалау нүктелері сенімсіз каналдар арқылы берілетін үлкен дерек ағындары үшін пайдалы, онда кейбір деректердің жоғалуы маңызды емес, мысалы, кейбір мультимедиа қолданбаларында. Дегенмен, көптеген тазалау нүктелерін жасау жылдамдыққа және сығылу деңгейіне (қатынасына) әсер етуі мүмкін.
Errors in compressed data may be detected and skipped. Further, if "full flush" points are written to the compressed stream, then corrupt data can be skipped, and the decompression will resynchronize at the next flush point—although no error recovery of the corrupt data is provided. Full flush points are useful for large data streams on unreliable channels, where some data loss is unimportant, such as in some multimedia applications. However, creating many flush points can affect the speed as well as the amount (ratio) of compression.
Деректер ұзындығы
Сығылатын немесе сығылыстан шығарылатын деректердің ұзындығына шектеу жоқ. Кітапханаға қайта-қайта шақыру дерек блоктарының шексіз санын өңдеуге мүмкіндік береді. Ұзақ дерек ағыны үшін кейбір қосымша кодтар (сандар) ағып кетуі мүмкін, бірақ бұл нақты сығылуға немесе сығылыстан шығаруға әсер етпейді. Ұзақ (немесе шексіз) дерек ағынын сығылғанда, жүйелі түрде толық тазарту нүктелерін жазу ұсынылады.
There is no limit to the length of data that can be compressed or decompressed. Repeated calls to the library allow an unlimited number of blocks of data to be handled. Some ancillary code (counters) may suffer from overflow for long data streams, but this does not affect the actual compression or decompression. When compressing a long (or infinite) data stream, it is advisable to write regular full flush points.