Image artifacts due to precision problems
************************************************* Jim Muth in his "FOTD -- January 24, 2008" text says:
some of the images appear so unlikely that I cannot shake the impression that they are artifacts of mathematical imprecision rather than true fractals.
My question is: Can one determine if a fractal's features are precision problem artifacts by computing the fractal twice -- with two different values of the number of arbitrary precision digits -- and then comparing the two images? <---<< My hypothesis is that if you compare the two images calculated in the above manner and they are the same, then problems of precision are not the cause of a fractal's unusual features. Is this the case? <---<< If this method does correctly determine whether an image has artifacts or not, is adding the following items to an image's parameter file a valid way to exactly set the number of digits of precision used in a calculation? 1st image calc: --------------- MATHTOLERANCE=-1/-1 BFDIGITS=14 2nd image calc: --------------- MATHTOLERANCE=-1/-1 BFDIGITS=15 I cannot find the email sent to me that tells how to compare two images. Here is what appears to work -- please correct me if I am wrong: To compare two images that are in files: - Run FRACTINT *without* the command line parameter debug=50 - Load the first image from its file using <r> - Type <g> and then: debug=50 - Load the second image from its file. (Note that the File List selection page title is now: "Select File for 3D Overlay") - The image on the screen is the difference between the two images. Identical pixels in the two images are shown as color zero. Different pixels are shown as non-zero. - If this 'difference image' has any non-zero pixels the two images are different. Is the above procedure to compare two images in files correct? <---<< It appears that the color map of the images is used to display the difference pixels. If there are extremely dim color map values in the image one could be fooled into thinking that there were no differences between two images when in fact there were if the difference pixels that were displayed happened to use dim color map values. If this is a problem for a particular image one could get around it by loading a garish color map, say, a color map of 15 bright colors and black like: GOODEGA.MAP This makes all non-zero pixels be easily visible against a black background. I calculated a default Mandelbrot image at 640 x 480 using both the default integer math and then putting float=yes in my SSTOOLS.INI file. (I had forgotten to do this when installing FRACTINT onto my recent computer.) I was surprised to see a significant number of differences between the integer and float images. I constructed a color map that would allow me to see the difference image pixel values as follows: 0 0 0 This file shows the pixel values 127 0 0 1-6 as distinct recognizable 255 0 0 colors. All other pixel values are 0 127 0 dim gray, except for pixel value 0 255 0 zero which is black. 0 0 255 - HHL 1/24/08 0 0 127 64 64 64 64 64 64 64 64 64 . . . 64 64 64 The difference image showed a few dozen pixels with values of 1 - 6 and a few hundred dim gray pixel values with values somewhere in the range of 7 - 255. All other pixels were black. Is it likely that I did this comparison and analysis incorrectly, or is this difference between integer and float expected? <---<< Does anyone know if the pixel values of the difference image represent the absolute value of the difference between the pixel values of the two compared images as I am conjecturing they do? <---<< Also, am I correct in assuming that arbitrary precision works for formula file fractals? <---<< - Hal Lane ######################### # hallane@earthlink.net # ######################### *************************************************
In article <MDBBJLBFBICIIEIHFBMECEMIDEAA.hallane@earthlink.net>, "Hal Lane" <hallane@earthlink.net> writes:
Is it likely that I did this comparison and analysis incorrectly, or is this difference between integer and float expected? <---<<
I thought it was well known that you can get different results from float and integer renderings of the same fractal. First of all, there is the precision issue. To understand whether or not fractint's integer math is sufficient, you have to analyze the entire computation and see what happens to the significant digits. Its more than just analyzing the formula, you have to look at the code. I don't know of anyone that's done this, except possibly the original coder of the integer version. Second, there is the issue of duplicate code -- you can easily have a bug in the integer version that's not present in the float version. Third, I wouldn't get so hung up on minor differences in rendering. (A blatantly buggy rendering is a different matter.) All fractal renderings are inherently approximations. There is no "true" rendering of a fractal, only an approximation. -- "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download <http://www.xmission.com/~legalize/book/download/index.html> Legalize Adulthood! <http://blogs.xmission.com/legalize/>
participants (2)
-
Hal Lane -
Richard