{"action":"closed","issue":{"url":"https://api.github.com/repos/Cyan4973/zstd/issues/150","repository_url":"https://api.github.com/repos/Cyan4973/zstd","labels_url":"https://api.github.com/repos/Cyan4973/zstd/issues/150/labels{/name}","comments_url":"https://api.github.com/repos/Cyan4973/zstd/issues/150/comments","events_url":"https://api.github.com/repos/Cyan4973/zstd/issues/150/events","html_url":"https://github.com/Cyan4973/zstd/issues/150","id":140906574,"number":150,"title":"Support larger (and maybe finer grained) window sizes","user":{"login":"benrg","id":2259139,"avatar_url":"https://avatars.githubusercontent.com/u/2259139?v=3","gravatar_id":"","url":"https://api.github.com/users/benrg","html_url":"https://github.com/benrg","followers_url":"https://api.github.com/users/benrg/followers","following_url":"https://api.github.com/users/benrg/following{/other_user}","gists_url":"https://api.github.com/users/benrg/gists{/gist_id}","starred_url":"https://api.github.com/users/benrg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benrg/subscriptions","organizations_url":"https://api.github.com/users/benrg/orgs","repos_url":"https://api.github.com/users/benrg/repos","events_url":"https://api.github.com/users/benrg/events{/privacy}","received_events_url":"https://api.github.com/users/benrg/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-03-15T08:30:50Z","updated_at":"2016-07-01T21:16:37Z","closed_at":"2016-07-01T21:16:37Z","body":"LZMA supports sliding window sizes up to (I think) 1.5 GiB. I've found window sizes of hundreds of MiB to be useful. It can have a large effect on the compression ratio for some kinds of data. LZMA also supports non-power-of-2 window sizes, which can be useful when you have enough RAM for a 50% larger window but not for a 100% larger window.\r\n\r\nOf course huge windows should never be the default at any compression level, but could they be accepted if set explicitly in ZSTD_parameters?\r\n\r\nIf you don't want to use 4 header bytes for the window size (as LZMA does), you could use a tiny floating-point format, e.g. `dict_size = (8 + (packed_dict_size & 7)) << (8 + (packed_dict_size >> 3))`. I don't know whether that's the biggest technical obstacle to non-power-of-2 window sizes, though.\r\n"}}
{"actor":{"display_login":"Cyan4973"}}