From: "Vladimir 'φ-coder/phcoder' Serbinenko" <phcoder@gmail.com>
To: Colin D Bennett <colin@gibibit.com>
Cc: The development of GNU GRUB <grub-devel@gnu.org>
Subject: Re: [PATCH] Font antialiasing v2
Date: Mon, 12 Apr 2010 09:31:56 +0200 [thread overview]
Message-ID: <4BC2CC6C.9050205@gmail.com> (raw)
In-Reply-To: <20100409125638.7fd2bd84@svelte>
[-- Attachment #1: Type: text/plain, Size: 1810 bytes --]
>> Mixing compression and font engine will make the code more complex and
>> bug prone. It's better to put compression layer below the font and
>> make font subsystem unaware of it. The only exception is if
>> compression takes advantage of knowing font structures.
>>
>
> My aim was to make it more practical to have full Unicode fonts of a
> decent size. Compressing the font would greatly decrease the disk
> space required, but if the entire font file was compressed using, for
> instance, GZip, then (generally speaking) the entire file would
> have to be decompressed to use the font. This would probably make it
> far too slow to display the GRUB menu when a few fonts were loaded.
>
> In my thoughts on font compression, there are a couple of opposing
> factors:
>
> - Compressing too little data produces poorer compression since there
> is less redundancy to eliminate. Consider the extreme case of
> compressing each glyph by itself with GZip.
>
> - Compressing too much data means that more time is spent
> decompressing glyphs at runtime that will not be used (in general, a
> small fraction a Unicode font would be used at once in GRUB). Consider
> the extreme case of compressing the entire font as a single unit with
> GZip.
>
>
This issue should be handled at compress time by choosing to compress by
blocks of desired size. This way font layer doesn't need to care anymore.
> By compressing blocks of characters, where each block contains a number
> of characters that represents a compromise between too little data for
> good compression on disk and too much data for wasted time decompressing
> unused glyphs, good compression and good runtime performance can be
> attained.
>
--
Regards
Vladimir 'φ-coder/phcoder' Serbinenko
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 293 bytes --]
next prev parent reply other threads:[~2010-04-12 7:32 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-24 13:52 [PATCH] Font antialiasing v2 Evgeny Kolesnikov
2010-03-16 11:22 ` Evgeny Kolesnikov
2010-03-17 21:21 ` Vladimir 'φ-coder/phcoder' Serbinenko
2010-04-02 20:23 ` Vladimir 'φ-coder/phcoder' Serbinenko
2010-04-05 5:50 ` Evgeny Kolesnikov
2010-04-05 21:33 ` Michal Suchanek
2010-04-09 17:54 ` Vladimir 'φ-coder/phcoder' Serbinenko
2010-04-09 19:56 ` Colin D Bennett
2010-04-11 10:20 ` Michal Suchanek
2010-04-12 7:31 ` Vladimir 'φ-coder/phcoder' Serbinenko [this message]
2010-04-12 14:24 ` Colin D Bennett
2010-04-12 15:50 ` Szymon Janc
2010-04-12 16:28 ` Michal Suchanek
2010-04-12 17:24 ` Michal Suchanek
2010-04-12 17:30 ` Vladimir 'φ-coder/phcoder' Serbinenko
2010-04-12 18:13 ` Szymon Janc
2010-04-12 20:53 ` Michal Suchanek
2010-04-12 18:25 ` Michal Suchanek
2011-06-25 1:53 ` Vladimir 'φ-coder/phcoder' Serbinenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BC2CC6C.9050205@gmail.com \
--to=phcoder@gmail.com \
--cc=colin@gibibit.com \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.