Re: MMX speedup for Floyd Steinberg error diffusion



Terje wrote:

To do a mathematically perfect job I would start with a 5:5:5 (32 K) or
4:4:4 (4 K) table, with each entry being the start of a list of all the
possible palette entries for that entry:

By making each entry 16 bits wide, I could reserve the bottom 256
entries for colors that give a single possible result, and the remaining
values would be the start of pascal-style lists of possible entries,
stored as offsets into the same byte array.

I.e:

<code example snip>

Well, doing a crude implementation with a 4:4:4 array using
just one of 256 palette entries in each (no extra lists), I
ran some tests. On a nice slow Pentium, with a couple of test
images, the speed-up was maybe a factor of 50+ in display time.
With F-S dithering on, the image "looks" the same. With F-S
turned off, there was some obvious differences between the
table look up and the brute force search. The list of possible
entries version appears to be needed for an "optimum" result.
Somewhat interesting as I initially quantize to 4,096 bins, and
then reduce the palette using a pairwise clustering algorithm.

Vivek wrote:

In theory at least, 24 bit color GIFS are possible and could be
practical for static images...

Yup. Here is a link.

http://phil.ipal.org/tc.html

True-Color GIF Example

HTH,

Steve N.


Relevant Pages

  • Re: Autoruns
    ... It's impossible for AutoRuns to keep a database of all software available and what you may have installed on your system and then uninstalled (with the uninstalled software not deleting it's own entries from the registry properly or completely), or indeed what 3rd party software is essential at boot-up and what isn't. ... It's just a matter of going through the categories in AutoRuns and also looking in Task Manager's Processes list and/or using the similar lists, but with full path info., from the system info. freeware program 'Everest' which you can find and download with a google search and will help you identify which entries belong to which software packages by virtue of the full path. ... Finally don't delete an entry from AutoRuns, just uncheck it so that it is restorable later. ...
    (microsoft.public.windowsxp.general)
  • Re: nested structure with "internal references"
    ... dict entries can be lists or other dicts. ... The lists and dicts can also contain int, float, string, ... ... But i'd also like to have something like a "reference" to another ... I'd like to refer to another entry and not copy that entry, ...
    (comp.lang.python)
  • Re: a benefit to using a linked list in insertion sort?
    ... >> Use linked lists to make insertions easy, ... >> isn't a binary search at all but a hash table. ... You "probe" the entry at this index. ... rather than having to insert and move subsequent entries as ...
    (comp.programming)
  • Re: Cross Referencing Lists (REVISED)
    ... of entries in column A to be reduced as follows. ... there is an entry in column A that has an entry in column B ... >>Frank Kabel ... >>>>> confusing perhaps I can email the 2 lists to someone ...
    (microsoft.public.excel.worksheet.functions)
  • Re: Solving the lib mismatch problem
    ... This section is pointed to by an entry in the section table with the ... The number of entries in the table is determined by DT_VERDEFNUM. ... This is an index into the string section referenced in the section ... Offset in the string section reference by the link in the section ...
    (comp.unix.programmer)