簡體   English   中英

DEFLATE(zlib)如何確定塊大小?

[英]How does DEFLATE(zlib) determine block size?

我想知道DEFLATE如何確定塊大小(我的意思是,在zlib中。)

在RFC 1591中,存在以下解釋:“當壓縮器確定啟動具有新樹的新塊時,或者當塊大小填滿壓縮器的塊緩沖區時,壓縮器將終止塊。”

這對我來說還不夠。 我想知道結束當前塊需要什么條件並詳細啟動新塊。

DEFLATE如何決定新鮮的發辮是否有用? 壓縮器塊緩沖區的大小是多少?

當當前符號緩沖區填滿(默認為16,383個符號)或輸入數據完成(請求Z_FINISH )時,zlib的deflate結束塊。 zlib中的deflate不會試圖判斷何時更早結束塊可能是有益的。

在這種情況下,一個符號是一個文字,或任何長度的一個匹配。

符號緩沖區的大小由deflateInit2()memLevel參數決定。 memLevel為8,這是deflateInit()使用的默認值,產生16,383個符號。 memLevel可以是1到9,其中符號緩沖區大小為(1 << (memLevel + 6)) - 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM