Chatroom
 

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Bad Astronomy and Universe Today Forum > The Proving Grounds > Conspiracy Theories
Register FAQ Members List Calendar Mark Forums Read

   

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 04-October-2005, 06:29 PM
Glom's Avatar
Glom Glom is offline
Order of Kilopi
 
Join Date: Sep 2002
Location: West London, England
Posts: 8,426
Send a message via MSN to Glom
Default The truth about jpegs

They are fourier transforms of the original data. A series of trigonometric and exponential terms are used to emulate the intensity profile of the image.

A simple example of how this works is the square wave function. The first diagram here shows how the infinite sum of the trig functions gives the square wave. But if you only use the first few terms, you only get an approximation of it the square becomes all nobbly and blurred.

In images, sharp lines are like square waves. They require a lot of high frequency data to render them well. Jpeg compression removes high frequency data and so lines become less sharp, but you also get nobbliness, so instead of sharp lines, you get blurry lines will other nobble lines surrounding it. In this way, jpeg compressed images can yield stuff that wasn't there before, including what to the ignorant eye may look like matte lines or pencils lines etc. But they're not. They're the nobbliness from jpeg compression.
Reply With Quote
  #2 (permalink)  
Old 04-October-2005, 06:58 PM
jfribrg jfribrg is online now
Established Member
 
Join Date: Mar 2002
Location: 40N 75W mag 4.1 sky at best
Posts: 1,470
Default

JPEG uses the discrete cosine transform, which is very close to the theoretical maximum compression possible. By that I mean that it is not possible to cram much more information into the first few terms. The lossy nature of the compression is due to the fact that only the first few terms are stored. The others, all being nearly equal to 0 are in fact set = 0 and not sent in the jpg. How many terms you send determines how close the picture is to the original. In many cases it doesnt matter since the original image is no exact either. If you take the same picture twice, you will get different pixel values due to subtle differences in lighting, time of day, etc., so it is not necessary to reproduce every pixel exactly. If you do need every pixel exactly, then you have to use some other compression algorithm.
__________________
Time flies like an arrow.
Fruit flies like a banana.
Reply With Quote
  #3 (permalink)  
Old 07-October-2005, 01:30 AM
Taks's Avatar
Taks Taks is offline
Established Member
 
Join Date: Oct 2001
Location: CO
Posts: 1,253
Default

hence the phrase "lossy compression." i had never really stopped to consider such things regarding the nature of compression, though i have a clear understanding of the concepts due to my education/career. receiver design typically involves sampling a signal at a much higher rate than necessary, suppressing the "out of band" portions of the result via some discrete filter, and then decimating (throwing out samples) the result to the appropriate bandwidth. this, is in a sense, exactly what you guys are referring to. hmmm...

taks
__________________
goodbye richard pryor :(...
Reply With Quote
  #4 (permalink)  
Old 07-October-2005, 02:45 AM
Maksutov's Avatar
Maksutov Maksutov is offline
Honored Member
 
Join Date: Jan 2004
Location: Fifth corner of the Earth
Posts: 16,731
Default Re: The truth about jpegs

Quote:
Originally Posted by Glom
They are fourier transforms of the original data. A series of trigonometric and exponential terms are used to emulate the intensity profile of the image.

A simple example of how this works is the square wave function. The first diagram here shows how the infinite sum of the trig functions gives the square wave. But if you only use the first few terms, you only get an approximation of it the square becomes all nobbly and blurred.

In images, sharp lines are like square waves. They require a lot of high frequency data to render them well. Jpeg compression removes high frequency data and so lines become less sharp, but you also get nobbliness, so instead of sharp lines, you get blurry lines will other nobble lines surrounding it. In this way, jpeg compressed images can yield stuff that wasn't there before, including what to the ignorant eye may look like matte lines or pencils lines etc. But they're not. They're the nobbliness from jpeg compression.
Oh, just go ahead and completely wreck Hoagland's life work, why don't you? Heck, take away the compression artifacts and what's old RCH got left?

But, with the compression artifacts, Hoagie can do wonders, even putting a square JPEG in a round hole.

__________________
A person's name, or a mark representing it, as signed personally or by deputy, as in subscribing a letter or other document.
Reply With Quote
  #5 (permalink)  
Old 07-October-2005, 03:42 AM
peter eldergill peter eldergill is online now
Established Member
 
Join Date: Jan 2005
Location: Toronto
Posts: 1,755
Default

Just curious....why the post? Is this from another thread somewhere...

Anyways, are the approximation functions a truncated infinite series, similar to a Taylor series? If the denominators are n!, you probably won't need many terms to get a very good approximation.

What's the difference between jpeg, mpeg, bitmaps (and others...) is there a best (clearest) way to store the the info?

Pete
__________________
PJE

There's so much I don't know about astrophysics. I wish I had read that book by that wheelchair guy.
Reply With Quote
  #6 (permalink)  
Old 07-October-2005, 05:21 AM
Robert Andersson's Avatar
Robert Andersson Robert Andersson is offline
Established Member
 
Join Date: Jul 2004
Location: Gothenburg, Sweden
Posts: 462
Send a message via ICQ to Robert Andersson
Default

Quote:
Originally Posted by peter eldergill
Anyways, are the approximation functions a truncated infinite series, similar to a Taylor series? If the denominators are n!, you probably won't need many terms to get a very good approximation.
Check out the reduced standard, it is very interesting. From http://www.wotsit.org/:
JPEG Compression Standard (Acrobat) [Gregory K. Wallace] (76 kB zip)
Quote:
What's the difference between jpeg, mpeg, bitmaps (and others...) is there a best (clearest) way to store the the info?
Jpeg, Mpeg, and Mpeg layer 3 (mp3) are compressed in a similar lossy manner. Bitmaps are typically not compressed at all, or use very simple compression (such as run-length encoding). PNG and GIF use lossless compression, using various techniques.
Reply With Quote
  #7 (permalink)  
Old 07-October-2005, 12:42 PM
TheAtomium's Avatar
TheAtomium TheAtomium is offline
Junior Member
 
Join Date: Feb 2004
Location: UK
Posts: 79
Send a message via ICQ to TheAtomium
Default

Quote:
Originally Posted by peter eldergill
Just curious....why the post? Is this from another thread somewhere...

Anyways, are the approximation functions a truncated infinite series, similar to a Taylor series? If the denominators are n!, you probably won't need many terms to get a very good approximation.
JPEG uses the DCT (Discrete Cosine Transform), a close relative to the fourier transform. Because it is discrete and not continuous, you don't need an infinite series if you are recreating another discrete signal, it is not a truncation; if you have an n-sample signal, a perfect DCT representation will only need n cosine terms. Its not quite that simple, the transform gives you back 'more' data and some is irrelevant data you need throw away, but once you have done this you still have a perfect representation of the original signal at the same size, it will just be in the frequency domain instead of the spatial domain. That is a very important point - the data is still all there and all the same, its just a different 'view' onto the data.

I recommend everyone, even those who aren't particularly mathematically minded, download and read The DSP Guide. It talks about sampling and information theory, compression, Fourier transforms, Laplace transforms, wavelets, and a lot of other stuff that things like JPEG are based on. Its absolutely fascinating and written in a really friendly, interested tone all the way through. Even comes with sample code to play with
Reply With Quote
  #8 (permalink)  
Old 07-October-2005, 01:23 PM
N C More's Avatar
N C More N C More is offline
Established Member
 
Join Date: Dec 2003
Location: Plymouth, MA
Posts: 2,287
Default

Quote:
Originally Posted by TheAtomium
I recommend everyone, even those who aren't particularly mathematically minded, download and read The DSP Guide. It talks about sampling and information theory, compression, Fourier transforms, Laplace transforms, wavelets, and a lot of other stuff that things like JPEG are based on. Its absolutely fascinating and written in a really friendly, interested tone all the way through. Even comes with sample code to play with
Hmm...perhaps you should send a copy of this over to RCH's site? *Sigh* probably would be to no avail...would be likely be denounced as government disinformation.
__________________
An open mind is like an open window...without a good screen you'll get all sorts of weird bugs!
Reply With Quote
  #9 (permalink)  
Old 07-October-2005, 02:23 PM
peter eldergill peter eldergill is online now
Established Member
 
Join Date: Jan 2005
Location: Toronto
Posts: 1,755
Default

Is the main application of Fourier transform for information theory? I learned about them in differential equation but never really learned what they are useful for...

Pete
__________________
PJE

There's so much I don't know about astrophysics. I wish I had read that book by that wheelchair guy.
Reply With Quote
  #10 (permalink)  
Old 07-October-2005, 07:41 PM
genebujold's Avatar
genebujold genebujold is offline
Banned
 
Join Date: May 2004
Location: Las Vegas, NV
Posts: 1,271
Default

Quote:
Originally Posted by Glom
They are fourier transforms of the original data. A series of trigonometric and exponential terms are used to emulate the intensity profile of the image. In this way, jpeg compressed images can yield stuff that wasn't there before, including what to the ignorant eye may look like matte lines or pencils lines etc. But they're not. They're the nobbliness from jpeg compression.
A year ago I volunteered as the photographer to take pics at my son's school (the usual photographer had died in a trangic accident). Although I used only a handheld 5 MP camera, I employed a full studio setup, including ancillary flash lighting, background, digital photography review (via monitor), etc.

I stored my images in RAW format (about 5MB per image) which let me use Adobe Photoshop CS to transform them into JPGs. The initial JPGs were more than 100MB, primarily because I chose the greatest accuracy and color retention.

When I printed out the 3x5s, 4x6s, and 8x10s, the parents were very happy, and absolutely amazed at the detail gleaned by a small, (pocket) handheld like my Canon S50.

Thus, if anyone's storing "alien" photos on the web, the best way to do so is via "RAW" format and let the photographic experts do the work reconstructing the imbedded details.
Reply With Quote
  #11 (permalink)  
Old 07-October-2005, 07:56 PM
Demigrog's Avatar
Demigrog Demigrog is offline
Established Member
 
Join Date: Dec 2003
Location: Virginia
Posts: 1,200
Default

The DCT by itself isn't the real problem in JPEG; rather, it is the fact that the DCT is performed on 8x8 blocks of pixels. The detail loss may be more or less severe in adjacent blocks, causing a noticable square edge artifact. This is particularly noticable at higher compression levels; if you toss out all but the most significant terms, the details in adjacent squares are not going to line up at all. Run an edge enhancement filter in Photoshop, and you suddenly get lots of cool alien structures...

JPEG can also introduce artifacts in the conversion of the RGB pixel values to Y,Cb,Cr values-- the chrominance is sometimes sampled in 2x2 blocks. Plus, there is quantization error, since the final values are stored as integers.

Making things worse, every time you re-compress a JPEG (say, after some photoshop tweaking ) these errors are compounded.
__________________
Do try not to take me too seriously.
Reply With Quote
  #12 (permalink)  
Old 07-October-2005, 07:59 PM
hhEb09'1's Avatar
hhEb09'1 hhEb09'1 is offline
Moderator
 
Join Date: Apr 2005
Location: NC USA
Posts: 10,765
Default

Quote:
Originally Posted by peter eldergill
Is the main application of Fourier transform for information theory? I learned about them in differential equation but never really learned what they are useful for...
Lots of uses. I've used them to solve differential equations, for fluid flow, fuel production, surface changes. And theoretical stuff too.
Reply With Quote
  #13 (permalink)  
Old 07-October-2005, 10:34 PM
JayUtah's Avatar
JayUtah JayUtah is online now
Order of Kilopi
 
Join Date: Oct 2001
Posts: 10,322
Default

DCT is a problem because it has certain presumptions of symmetry. This has an effect even within 8x8 fields. Yes, you have the clear problems across the field boundaries, but because the DCT basis functions have symmetry requirements, you can't encode part of the field without also affecting another part of the field that bears some symmetrical resemblance to the first. This is part of DCT's strength in compression, but it is also the principal source of error and loss.
__________________
"Facts are stubborn things." --John Adams
Clavius Moon Base
Reply With Quote
  #14 (permalink)  
Old 07-October-2005, 11:43 PM
TrAI TrAI is offline
Established Member
 
Join Date: May 2003
Location: Norway
Posts: 947
Default

Heh. When I read the title of the thread I expected it was going to be about some conspiracy. Something like compression causes the formation of artifacts that damage the eyes and brain or the government forces software developers to include spyware that encodes the information about you in JPEGs you handle, so they can find out who had the specific image, and things like your passwords and so on...
__________________
Game over, you lose, we hope you enjoyed playing the exciting game of Thermodynamics...
Reply With Quote
  #15 (permalink)  
Old 09-October-2005, 02:11 PM
Extravoice's Avatar
Extravoice Extravoice is online now
Established Member
 
Join Date: Jan 2004
Location: The Democratic People's Republic of New Jersey
Posts: 942
Default

Quote:
Originally Posted by peter eldergill
What's the difference between jpeg, mpeg, bitmaps (and others...) is there a best (clearest) way to store the the info?
MPEG is very similar to JPEG, but is intended for use on moving images. Therefore it can make use of the fact that most moving pictures change very little from frame-to-frame. MPEG encodes the individual frames as "I", "P", and "B" frames. An "I" ("intra-coded", if I remember correctly) frame is compressed very much like a JPEG iimage and uses the Discrete Cosine Transform. "P" frames ("predicted") frames only include the information that is different from the previous frame. This works very well for things that don't change much, such as the "talking heads" from news programs. Imagine only having to send the mouth movements.

If you string a bunch of "P" frames in a row, you can get errors that accumulate, so you need a new "I" frame once in a while to reset things.

Finally, "B" frames (bidirectionally predicted) work something like "P" frames, but use past and *future* frames to do the difference calculation. Since several images are held in the memory of the decoding device (PC, TV, etc) it is actually possible to use future frames that are held in memory to do the calculation.

There is no question whether these introduce artifacts into the images. But, they are "artifacts" in the video meaning, not the archaeological one.
__________________
I may have many faults, but being wrong ain't one of them. -- Jimmy Hoffa
Reply With Quote
  #16 (permalink)  
Old 09-October-2005, 03:33 PM
Glom's Avatar
Glom Glom is offline
Order of Kilopi
 
Join Date: Sep 2002
Location: West London, England
Posts: 8,426
Send a message via MSN to Glom
Default

Quote:
Originally Posted by peter eldergill
Just curious....why the post? Is this from another thread somewhere...
Because I had just learnt about it in my Images and Communications lecture.
Reply With Quote
  #17 (permalink)  
Old 09-October-2005, 09:28 PM
peter eldergill peter eldergill is online now
Established Member
 
Join Date: Jan 2005
Location: Toronto
Posts: 1,755
Default

Makes sense now, Glom, thanks

Pete
__________________
PJE

There's so much I don't know about astrophysics. I wish I had read that book by that wheelchair guy.
Reply With Quote
  #18 (permalink)  
Old 10-October-2005, 06:42 PM
JayUtah's Avatar
JayUtah JayUtah is online now
Order of Kilopi
 
Join Date: Oct 2001
Posts: 10,322
Default

Since several images are held in the memory of the decoding device (PC, TV, etc) it is actually possible to use future frames that are held in memory to do the calculation.

Well, this is misleading. The frames in an MPEG video elementary stream are sent out of order. The I-frame is sent, then the next P-frame that keys from it. Finally the individual B-frames are sent which correspond to the frames encoded between the I- and P-frame. So the most any decoder has to hold in memory at any one time is the I-frame, the B-frame, and the P-frame currently being decoded. In fact, this is commonly how hardware decoders are implemented.

So the stream IPBBBBPBBBBIPBBPBBB will be decoded as IBBBBPBBBBPIBBPBBBP.

The encoder has to hold several frames in memory at once, and depending on how adaptive it is, it has to hold actually several seconds' worth of video simultaneously. "Real-time" hardware MPEG encoders and stream injectors typically run about $250,000.
__________________
"Facts are stubborn things." --John Adams
Clavius Moon Base
Reply With Quote
  #19 (permalink)  
Old 11-October-2005, 12:37 AM
Extravoice's Avatar
Extravoice Extravoice is online now
Established Member
 
Join Date: Jan 2004
Location: The Democratic People's Republic of New Jersey
Posts: 942
Default

Quote:
Originally Posted by JayUtah
Well, this is misleading.
Ouch.

I openly encourage anyone to point out errors in my posts, but according to my dictonary, the word "mislead" has the connotation that any erroneous information was deliberate. I hope you are not implying that you believe it was.
__________________
I may have many faults, but being wrong ain't one of them. -- Jimmy Hoffa
Reply With Quote
  #20 (permalink)  
Old 11-October-2005, 02:07 AM
Donnie B.'s Avatar
Donnie B. Donnie B. is offline
Order of Kilopi
 
Join Date: Oct 2001
Location: Massachusetts, USA
Posts: 5,692
Default

Quote:
Originally Posted by Extravoice
Ouch.

I openly encourage anyone to point out errors in my posts, but according to my dictonary, the word "mislead" has the connotation that any erroneous information was deliberate. I hope you are not implying that you believe it was.
If I know Jay, he was saying "this information isn't quite right" in a way that didn't accuse you of being "wrong".

In other words, "misleading" was intended to mean "not entirely reliable", not "deceptive".
__________________
Relight the Firefly!

"It is quite clear that Occam's razor does not sharpen in your pyramid." (Nicolas)

"Still, a man hears what he wants to hear and disregards the rest." (Paul Simon)
Reply With Quote
  #21 (permalink)  
Old 11-October-2005, 06:28 AM
JayUtah's Avatar
JayUtah JayUtah is online now
Order of Kilopi
 
Join Date: Oct 2001
Posts: 10,322
Default

I hope you are not implying that you believe it was [deliberately erroneous].

Definitely the opposite of my intent. My apologies if you got that impression. No, instead I was expressing my belief that something you said seemed to be phrased unclearly and might innocently lead to a misunderstanding. Unfortunately I don't always phrase things clearly either. Sorry if my use of "misleading" was misleading.

When I read your post it seemed to say that MPEG decoders had to store "several images" in order to do the job. In fact the MPEG transmission scenario was specifically designed to require as little simultaneous storage as possible in the decoder -- 3 frames, which I thought was worth mentioning since it's a clever trick. The system was design to be cheap to decode by putting all the work into encoding. The presumption was that there'd be a plethora of decoders and only a few encoders.

It was clear to me that you understand MPEG quite well, and so I just wanted to make that slight clarification.
__________________
"Facts are stubborn things." --John Adams
Clavius Moon Base
Reply With Quote
  #22 (permalink)  
Old 11-October-2005, 10:26 AM
AstroSmurf's Avatar
AstroSmurf AstroSmurf is offline
Established Member
 
Join Date: May 2003
Location: Sweden
Posts: 1,038
Send a message via ICQ to AstroSmurf
Default

Quote:
Originally Posted by JayUtah
The encoder has to hold several frames in memory at once, and depending on how adaptive it is, it has to hold actually several seconds' worth of video simultaneously. "Real-time" hardware MPEG encoders and stream injectors typically run about $250,000.
And take up one or more racks of physical space... I did some summer work for a subcontractor to the main Swedish television distribution company; it was a blast working with that kind of hardware. The feel of gigabytes streaming by through the data channels...
__________________
"We do not require reality to conform to the expectations of the ignorant"
Reply With Quote
  #23 (permalink)  
Old 11-October-2005, 10:48 AM
worzel's Avatar
worzel worzel is offline
Established Member
 
Join Date: Mar 2004
Location: London
Posts: 3,114
Default

Quote:
Originally Posted by TrAI
Heh. When I read the title of the thread I expected it was going to be about some conspiracy. Something like compression causes the formation of artifacts that damage the eyes and brain
Well they certainly cause artifacts in the damaged brains of some
__________________
There are 10 types of people in the world. Those who understand ternary, those who don't, and those waiting for a bus.
If logic doesn't work, then surely it does.
Reply With Quote
  #24 (permalink)  
Old 11-October-2005, 11:21 AM
Sock puppet's Avatar
Sock puppet Sock puppet is offline
Established Member
 
Join Date: Feb 2005
Location: Dublin
Posts: 254
Default

Quote:
Originally Posted by hhEb09'1
Lots of uses. I've used them to solve differential equations, for fluid flow, fuel production, surface changes. And theoretical stuff too.
And spectrographic analysis!
__________________
"Last Thursday, in a major breakthrough for the science of astrology, everyone born under the sign of scorpio was run over by milk trucks...."
Reply With Quote
  #25 (permalink)  
Old 11-October-2005, 12:49 PM
TheAtomium's Avatar
TheAtomium TheAtomium is offline
Junior Member
 
Join Date: Feb 2004
Location: UK
Posts: 79
Send a message via ICQ to TheAtomium
Default

Quote:
Originally Posted by Sock puppet
And spectrographic analysis!
and for doing convolution really, really quickly! (well if you use FFT anyway)
Reply With Quote
  #26 (permalink)  
Old 11-October-2005, 01:14 PM
Extravoice's Avatar
Extravoice Extravoice is online now
Established Member
 
Join Date: Jan 2004
Location: The Democratic People's Republic of New Jersey
Posts: 942
Default

Quote:
Originally Posted by JayUtah
Definitely the opposite of my intent.
Thanks for the clarification. Having read a number of your posts, I figured that I probably got the wrong impression.

I'm not an expert on MPEG, but was involved in the design and construction of an early (perhaps first?) real-time encoder back in the early 1990's. It was the size of several refrigerators. I've moved-on to other work and, some of the details have unfortunately faded from my memory. So I appreciate your filling-in the gaps and making corrections to my posts when appropriate.
__________________
I may have many faults, but being wrong ain't one of them. -- Jimmy Hoffa
Reply With Quote
  #27 (permalink)  
Old 11-October-2005, 04:07 PM
Taks's Avatar
Taks Taks is offline
Established Member
 
Join Date: Oct 2001
Location: CO
Posts: 1,253
Default

btw, wavelets, or quadrature mirror filters, are also used heavily in compression. IIRC, the FBI fingerprint database was supposed to be compressed using wavelets. the same principle, really, but using time instead of frequency as your basis. edit: technically time and frequency, but the transform is simply an FIR filter, so it behaves like a time decomposition.

taks
__________________
goodbye richard pryor :(...

Last edited by Taks; 12-October-2005 at 06:57 AM..
Reply With Quote
  #28 (permalink)  
Old 11-October-2005, 05:17 PM
JayUtah's Avatar
JayUtah JayUtah is online now
Order of Kilopi
 
Join Date: Oct 2001
Posts: 10,322
Default

I'm not an expert on MPEG, but was involved in the design and construction of an early (perhaps first?) real-time encoder back in the early 1990's.

And why would you think this didn't qualify you as an expert?
__________________
"Facts are stubborn things." --John Adams
Clavius Moon Base
Reply With Quote
  #29 (permalink)  
Old 12-October-2005, 12:35 AM
genebujold's Avatar
genebujold genebujold is offline
Banned
 
Join Date: May 2004
Location: Las Vegas, NV
Posts: 1,271
Default Bandwidth vs Deception

Given the vast amounts of bandwidth available on the Internet today, there's absolutely no excuse whatsoever for posting a low-res JPEG of an important image, and such posting can, and should be taken as a sign of deception, trying to conceal something.

Post the full file!!!

On the other hand, post the RAW file. For a 5.0 Megapixel camera, that's approximately a 4.3 MB file. Using Adobe CS, the resultant JPEG created to maximize the color depth and resolution for that file is more than 100 MB.

By contrast, the JPEGs stored in the camera instead of the RAW information do heavy compression, create numerous artifacts. That's why they're merely 2.3 MB in size.

Digital photography professionals deal in RAW format for a reason, folks. It's not as clear as the smaller JPEGs stored in the camera, but it embodies the FULL information as recorded/captured on the chip, and in a digital studie enviornment, provides the absolute best and most detailed final image with the least distortions and artifacts.

Bar none.
Reply With Quote
  #30 (permalink)  
Old 12-October-2005, 06:47 AM
EvilBob's Avatar
EvilBob EvilBob is offline
Established Member
 
Join Date: Nov 2003
Location: Australia
Posts: 496
Send a message via MSN to EvilBob
Default

Is there a trick to accessing the RAW data? The only cameras I have access to all save immediately to JPG.
__________________
"Properly read, the Bible is the most potent force for atheism ever conceived." - Isaac Asimov
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT. The time now is 10:00 PM.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.0.0
©  2006 Bad Astronomy and Universe Today