List Info

Thread: Question about Thumbnail-Mode.




Question about Thumbnail-Mode.
user name
2006-03-09 13:48:22
Dieter Krachtus wrote:

> I am in science and want to understand certain things
PIL does better...
>
> One can get jpg-thumbnails of images with PIL. This
happens pretty fast
> - so PIL cannot read the complete file, but use some
trick. I guess it
> just reads in a 2^x (i.e. 1/2, 1/4, 1/8, 1/16, ...) of
the actual
> image-data. Just to understand how this is done, is my
qustion:
>
> 1. Does PIL look into the "header" of the
jpg file and finds out from
> where to where the actual image data goes and how the
dimension
> (width/height in pixel) of the image is ?

yes.

> 2. Then whats next? Does PIL read only e.g. every 16th
byte, or how is
> this done - if you do this - is the resulting stream of
bytes still
> interpretable as a jpg ?

it's a lot tricker than that: the JPEG data stream
represents image data not as
a bunch of separate pixels, but as a set of frequency
coefficients, which, when
combined, can be used to reconstruct the original image (in
pretty much the
same way as you can generate a square wave by summing enough
sine waves;
see http://en.wi
kipedia.org/wiki/Square_wave).

the frequency transform is made on 8x8 tiles, so you get a
distinct set of
coefficients for each 8x8 box in the source image.

(to get lossy compression, JPEG simply uses fewer bits to
store the coefficients
than they really need; e.g. instead of storing a full range
of, say, 0-1000 for a
high-frequency coefficient, the file may only use 0, 300,
600, and 900.  this
lets you store the coefficient in 2 bits instead of 10.)

to quickly generate thumbnails from JPEG images from the
coefficients, PIL
simply ignores some of the coefficients.  to generate an 1/8
image, PIL uses
the "DC component" from the frequency transform
directly (which corre-
sponds to the average value for the entire 8x8 box).  for
1/2 and 1/4 images,
PIL only enough frequency components to generate a 4x4 or
2x2 tile.

there's a lot more to JPEG than I've described here; if
you want to learn more
about JPEG, the wikipedia entry is quite good:

    http://en.wikipedia
.org/wiki/JPEG

hope this helps!

</F> 



_______________________________________________
Image-SIG maillist  -  Image-SIGpython.org
htt
p://mail.python.org/mailman/listinfo/image-sig
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )