Алгоритм Deflate - формат потока Deflate - документация, выходящая за рамки RFC1951

Меня интересует документация по формату потока deflate или алгоритму deflate, выходящему за рамки RFC1951. Примеры потоков, подсказки по реализации, все, что может быть интересно.


person Thomas Maierhofer    schedule 13.09.2009    source источник


Ответы (2)


Однажды я работал над потоковой реализацией deflate и нашел это описание полезным:

http://www.zlib.net/feldspar.html

Сначала я попробовал исходный код zlib, но его нелегко прочитать.

person David Crawshaw    schedule 13.09.2009

Вы могли бы просто использовать zlib вместо того, чтобы кататься самостоятельно?

Для поддержки предварительно сжатых преамбул вы можете:

Используйте необработанный API (те, которые используют z_streamp в качестве параметра), а не оболочки более высокого уровня.

Инициализируйте сжатую преамбулу своей собственной z_streamp и поместите вывод в буфер.

Затем для всех последующих использований преамбулы скопируйте выходной буфер преамбулы в выходной и скопируйте z_streamp преамбулы и используйте эту копию для сжатия последующих байтов.

person Will    schedule 13.09.2009
comment
Нет, я не мог, потому что мне нужны некоторые функции, которых нет в zlib. - person Thomas Maierhofer; 13.09.2009
comment
Какие функции? Если вы конкретны, возможно, мы сможем вам помочь. - person Will; 13.09.2009
comment
Мне нужна возможность вставлять предварительно сжатые данные в поток deflate. Я думаю, это сложно сделать. Я уже описал проблему в этом вопросе: stackoverflow.com/questions/1410533/ - person Thomas Maierhofer; 14.09.2009