Resources about how the details of image storage?
February 23, 2010 3:50 PM
I need online resources that go delve into image storage theory without assuming I am an expert in programming.
I have been to date working with images on a high level API scripting, and often wonder why certain operations are so tricky under the hood (converting between different byte storage, applying a color ramp, factors that affect how the image is displayed versus what data the image contains...) There are in fact many functions in various programs that do operations on images that output garbage or are hard to customize.
I have not found satisfactory learning resources about image storage algorithms, compressions, conversions, etc. I am especially looking for examples and comparisons in .tif , .jpg .gif, anything really. Also, i would not mind learning how to make my own extension for images (obviously not as fast or good, but it would be good to learn about).
any good resources for these types of questions? good forums? good books? thanks mf!
I have been to date working with images on a high level API scripting, and often wonder why certain operations are so tricky under the hood (converting between different byte storage, applying a color ramp, factors that affect how the image is displayed versus what data the image contains...) There are in fact many functions in various programs that do operations on images that output garbage or are hard to customize.
I have not found satisfactory learning resources about image storage algorithms, compressions, conversions, etc. I am especially looking for examples and comparisons in .tif , .jpg .gif, anything really. Also, i would not mind learning how to make my own extension for images (obviously not as fast or good, but it would be good to learn about).
any good resources for these types of questions? good forums? good books? thanks mf!
What API are you using and what are you trying to do? Are you still working on this 32bit - 8bit problem?
I've never had any problems using java's ImageIO library, but it doesn't support tifs. Normally programmers don't worry about how the files are actually stored on disk, but simply modify the images in memory as pixel maps, which is a lot easier.
The wikipedia artcle goes over JPG encoding, which is pretty complicated. It basically breaks the image into 8x8 blocks and then performs a frequency analysis on the 8x8 blocks in an image, and builds a representative matrix of the frequencies, then uses a mathematical transformation on the matrix to convert it into a form that's easier to compress, and easier to strip excess data off in a way that destroys less interesting information first. Then the whole thing is compressed (which is easy because a lot of the information has been removed)
Trying to operate on raw JPGs could be difficult, but it wouldn't be so bad to load and modify one one 8x8 block at a time, as long as your changes are local.
posted by delmoi at 4:57 PM on February 23, 2010
I've never had any problems using java's ImageIO library, but it doesn't support tifs. Normally programmers don't worry about how the files are actually stored on disk, but simply modify the images in memory as pixel maps, which is a lot easier.
The wikipedia artcle goes over JPG encoding, which is pretty complicated. It basically breaks the image into 8x8 blocks and then performs a frequency analysis on the 8x8 blocks in an image, and builds a representative matrix of the frequencies, then uses a mathematical transformation on the matrix to convert it into a form that's easier to compress, and easier to strip excess data off in a way that destroys less interesting information first. Then the whole thing is compressed (which is easy because a lot of the information has been removed)
Trying to operate on raw JPGs could be difficult, but it wouldn't be so bad to load and modify one one 8x8 block at a time, as long as your changes are local.
posted by delmoi at 4:57 PM on February 23, 2010
My company, Atalasoft, makes imaging SDKs. We put together a set of eCourses on imaging that you might find useful.
posted by plinth at 6:06 PM on February 23, 2010
posted by plinth at 6:06 PM on February 23, 2010
This thread is closed to new comments.
posted by devilsbrigade at 4:39 PM on February 23, 2010