Re: Multiple Huffman code tables

I'm not sure, but do you think it's optimized for a specific word? That is
just a compressed example. Huffman code(HUFFMAN_HP_CODES) is exactly the
same as HPACK. There is no training set.

2023年12月9日(土) 5:05 Christian Huitema <huitema@huitema.net>:

> I have no opinion on the benefits or not of defining better compression
> than HPACK/QPACK, but I do have an opinion on the inclusion of brands in
> the training set, like:
>
>
>  > -1, '"Google Chrome";v="117", "Not;A=Brand";v="8", "Chromium";v="117"'
>
>  > -1, '"Google Chrome";v="117.0.5938.89", "Not;A=Brand";v="8.0.0.0",
>  > "Chromium";v="117.0.5938.89"'
>
>  > -3, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
>  > (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'
>
>
>  > 0, '1P_JAR=2023-11-22-18; expires=Fri, 22-Dec-2023 18:46:19 GMT;
>  > path=/; domain=.google.com; Secure; SameSite=none'
>
> I assume that this kind of branded content reflects the reality of the
> market place, and that assigning short Huffman codes to it will indeed
> reduce the size of messages. But I think dedicating codes to such brands
> today is an error. Market shares and product names will change over
> time, making such optimizations ephemeral. But even if the optimizations
> were stable, optimizing for the existing set of brands will provide an
> advantage to these brands over newcomers, and thus contribute to
> increased concentration -- something that standards should certainly not
> encourage.
>
> -- Christian Huitema
>
> On 12/8/2023 8:06 AM, 姓名 wrote:
> > HPACK/QPACK uses only one static table of Huffman coding, but the
> > compression ratio can be improved by combining multiple tables. There is
> *no
> > overhead* in data size due to the combination. Theoretically, two code
> > tables can reduce the bit length of one code table by an average of one
> > bit, since the two code tables itself has one bit of information. *This
> > proposal especially reduces the token size increasing in recent years.*
> Let
> > me know the link to the conclusions if this approach has been considered.
> > The following is a comparison based on my proof of concept code. The
> > leftmost number is the reduced bit size.
> >
> > 'XPACK   comp. ratio request', 0.2533415841584158, 1.3393005138405436
> > 'HPACK   comp. ratio request', 0.2471534653465347, 1.3282919612033537
> > 0, 'accept'
> > 0,
> 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7'
> > 0, 'accept-encoding'
> > 0, 'gzip, deflate, br'
> > 0, 'accept-language'
> > 0, 'ja,en-US;q=0.9,en;q=0.8'
> > 0, 'cache-control'
> > 0, 'max-age=0'
> > 0, 'dnt'
> > 0, '1'
> > 0, 'sec-ch-ua'
> > -1, '"Google Chrome";v="117", "Not;A=Brand";v="8", "Chromium";v="117"'
> > 0, 'sec-ch-ua-arch'
> > 0, '"x86"'
> > 0, 'sec-ch-ua-bitness'
> > 0, '"64"'
> > 0, 'sec-ch-ua-full-version'
> > 0, '"117.0.5938.89"'
> > 0, 'sec-ch-ua-full-version-list'
> > -1, '"Google Chrome";v="117.0.5938.89", "Not;A=Brand";v="8.0.0.0",
> > "Chromium";v="117.0.5938.89"'
> > 0, 'sec-ch-ua-mobile'
> > 0, '?0'
> > 0, 'sec-ch-ua-model'
> > 0, '""'
> > 0, 'sec-ch-ua-platform'
> > 0, '"Windows"'
> > 0, 'sec-ch-ua-platform-version'
> > 0, '"10.0.0"'
> > 0, 'sec-ch-ua-wow64'
> > 0, '?0'
> > 0, 'sec-fetch-dest'
> > 0, 'document'
> > 0, 'sec-fetch-mode'
> > 0, 'navigate'
> > 0, 'sec-fetch-site'
> > 0, 'same-origin'
> > 0, 'sec-fetch-user'
> > 0, '?1'
> > 0, 'sec-gpc'
> > 0, '1'
> > 0, 'upgrade-insecure-requests'
> > 0, '1'
> > 0, 'user-agent'
> > -3, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
> > (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'
> > 0, 'x-client-data'
> > -45,
> 'CKa1yQEIj7bJAQiltskBCKmdygEI5tTKAQieicsBCJahywEIhaDNAQjwsc0BCNy9zQEI38TNAQi1xc0BCLnKzQEI1dDNAQiR0s0BCIrTzQEIwtTNAQjJ1s0BCPnA1BUYwcvMARi4v80B'
> >
> > 'XPACK   comp. ratio response', 0.25389886578449905, 1.340300870942201
> > 'HPACK   comp. ratio response', 0.24155245746691867, 1.3184827478775605
> > 0, 'accept-ch'
> > -2, 'Sec-CH-UA-Arch'
> > 0, 'accept-ch'
> > -2, 'Sec-CH-UA-Bitness'
> > 0, 'accept-ch'
> > -2, 'Sec-CH-UA-Full-Version'
> > 0, 'accept-ch'
> > -2, 'Sec-CH-UA-Full-Version-List'
> > 0, 'accept-ch'
> > -2, 'Sec-CH-UA-Model'
> > 0, 'accept-ch'
> > -2, 'Sec-CH-UA-Platform'
> > 0, 'accept-ch'
> > -2, 'Sec-CH-UA-Platform-Version'
> > 0, 'accept-ch'
> > -1, 'Sec-CH-UA-WoW64'
> > 0, 'alt-svc'
> > 0, 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000'
> > 0, 'cache-control'
> > 0, 'private, max-age=0'
> > 0, 'content-encoding'
> > 0, 'br'
> > 0, 'content-length'
> > 0, '54188'
> > 0, 'content-security-policy-report-only'
> > -2, 'object-src 'none';base-uri 'self';script-src
> > 'nonce-OqX2tRcsQ42YI77KwfGMfg' 'strict-dynamic' 'report-sample'
> > 'unsafe-eval' 'unsafe-inline' https'
> > 0, 'http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp'
> > 0, 'content-type'
> > -1, 'text/html; charset=UTF-8'
> > 0, 'cross-origin-opener-policy'
> > 0, 'same-origin-allow-popups; report-to="gws"'
> > 0, 'date'
> > -2, 'Wed, 22 Nov 2023 18:46:19 GMT'
> > 0, 'expires'
> > 0, '-1'
> > 0, 'origin-trial'
> > -50,
> 'Ap+qNlnLzJDKSmEHjzM5ilaa908GuehlLqGb6ezME5lkhelj20qVzfv06zPmQ3LodoeujZuphAolrnhnPA8w4AIAAABfeyJvcmlnaW4iOiJodHRwczovL3d3dy5nb29nbGUuY29tOjQ0MyIsImZlYXR1cmUiOiJQZXJtaXNzaW9uc1BvbGljeVVubG9hZCIsImV4cGlyeSI6MTY4NTY2Mzk5OX0='
> > 0, 'origin-trial'
> > -83,
> 'AvudrjMZqL7335p1KLV2lHo1kxdMeIN0dUI15d0CPz9dovVLCcXk8OAqjho1DX4s6NbHbA/AGobuGvcZv0drGgQAAAB9eyJvcmlnaW4iOiJodHRwczovL3d3dy5nb29nbGUuY29tOjQ0MyIsImZlYXR1cmUiOiJCYWNrRm9yd2FyZENhY2hlTm90UmVzdG9yZWRSZWFzb25zIiwiZXhwaXJ5IjoxNjkxNTM5MTk5LCJpc1N1YmRvbWFpbiI6dHJ1ZX0='
> > 0, 'p3p'
> > -2, 'CP="This is not a P3P policy! See g.co/p3phelp for more info."'
> > 0, 'permissions-policy'
> > 0, 'unload=()'
> > 0, 'report-to'
> > 0, '{"group":"gws","max_age":2592000,"endpoints":[{"url":"
> https://csp.withgoogle.com/csp/report-to/gws/other"}]}'
> > 0, 'server'
> > 0, 'gws'
> > 0, 'set-cookie'
> > 0, '1P_JAR=2023-11-22-18; expires=Fri, 22-Dec-2023 18:46:19 GMT;
> > path=/; domain=.google.com; Secure; SameSite=none'
> > 0, 'set-cookie'
> > -23, 'AEC=Ackid1QH6gVXB6Rn68KWRmRtOGSW1unAfUHYsxuZh3Zs8cyWCZdKy8vrhQ;
> > expires=Mon, 20-May-2024 18:46:19 GMT; path=/; domain=.google.com;
> > Secure; HttpOnly; SameSite=lax'
> > 0, 'set-cookie'
> > -19,
> 'NID=511=fx_DiN-XffVTX7QHZe7UgP5GQd0mx2HY9B0Hz6MgzEpOESnD8DldcSLyj-U6AHIo8t4-dcOKelciAyOK2j03GJE1r_31zKvXnECnKWvOQiFPO6mtTTaCZWqtn2x8m5lnzbB_CyUA-HzXz-Vw3TXC0eeW_AQlcu8CybBgyxtW5Kc;
> > expires=Thu, 23-May-2024 18:46:19 GMT; path=/; domain=.google.com;
> > Secure; HttpOnly; SameSite=none'
> > 0, 'strict-transport-security'
> > 0, 'max-age=31536000'
> > 0, 'x-frame-options'
> > -12, 'SAMEORIGIN'
> > 0, 'x-xss-protection'
> > 0, '0'
> >
> > https://github.com/falsandtru/spica/blob/master/src/ascii.xpack.ts
> >
>

Received on Friday, 8 December 2023 21:14:08 UTC