==========================
    P. R. I. C. E.
==========================



             written by Riccardo Mottola
             rmottola@users.sourceforge.net


Home on Sourceforge: http://price.sourceforge.net
                     http://sourceforge.net/projects/price/

Document Revision: 5 November 2006
Current Version:   0.8.1

WHAT IS IT ?
------------

PRICE, which stands for Precision Raster Image Convolution Engine, aims to be a high quality
Image filtering, enhancing and manipulation program. It is written in Objective-C and AppKit, thus designed for Cocoa and GNUstep, it should be portable to OpenSTEP (I hope so, currently I don't have the computers to do the porting).

KNOWN BUGS
----------
- on GNUstep the text fields (like in Convolve 5x5) need each to be confirmed by pressing enter. Switching a field is not enough.
- on GNUstep there may be problem with NSPopUpButtons (you need to select an item, even if it is the same as the default one). There could also be problems of disabled NSPopUpButton items, this hints on a too old GNUstep version (it was a bug that was discovered and fixed during PRICE development)

TO DO
-----
- check for planar/striped images
- Implement color median filter for luma only ?

NOTES
-----
- development and testing is currently done on MacOS-X 10.2 and a G3, please report problems on other versions. 10.1 is tested and works.
- GNUstep versions have been tested by me on Solaris, Linux (x86, ppc, 68k), MkLinux-ppc, OpenBSD/sparc, FreeBSD

HISTORY
-------

-- what's new in 0.8.1
- equalization on the Y coordinate of the YCrCb colorspace

-- what's new in 0.8.0
(29 April 2006)
- the image representation is now a PRImage class which allows to access some fieds without fetching the TIFF image represetnation. This yeilds some speed up in some stages, like when fetching the original dimensions.
- the 5x5 convolution engine now works in color mode (separate RGB channels) too
- a small fix for the convolve progress panel that wasn't updating properly
- median filter has support for color filtering! (separate channel in RGB)
- implemented separable linear scaling
- implemented copy & paste
- faster FFT

-- what's new in 0.7.0
(26 June 2006)
- fixed a memory release bug that occoured when greyscale images needed to be converted in colorspace on load
- new interface for the "zoom" view of an image based on a pop-up button
- a small info line at the bottom of the image
- fixed zoom scale problem when doing undo/redo (it did always reset to 100%)

-- what's new in 0.6.1
(10 June 2005)
- automatic window scaling on open
- implemented a preference panel
- an Icon, finally! There are two versions of it, one for Macos-X and one for GNUstep.

-- what's new in 0.6.0
(11 April 2005)
- Brightness and Contrast adjustment
- histogram fixes

-- what's new in 0.5
(02 March 2005)
- Scale image added
- Crop image added
- undo aspect ratio update fixed
- many small tweaks in the UI (redesigned some panels, rearranged and relabeled those ugly Ok buttons)

-- what's new in 0.4.1
(19 January 2005)
+ progress display for several filters (low and high pass, convolve, median, custom edge tracer)
+ Undo fundamentals implemented, one level of image undo is held!
+ Revert to saved works finally (thanks to the undo and some small fixes)
+ fixed refresh of transpose, rotate90 and rotate270 

-- what's new in 0.4.0
+ memory managment clean up (and some leak fixes)
+ automatic conversion to grayscale for many filters if the image was in color
+ further work in Custom edge tracer, algorithms now more complete and a third image can be used
+ improved zero corssing / non zero crossing for the edge tracer(s)

-- what's new in 0.3.0
+ fixed a bug in the transposition of color images
+ fixed a bug in the slider of the GNUstep Median filter interface
+ added image rotation of 90/180/70 degrees
+ added vertical and horizontal image flipping
+ fixed some naming in the panel titles

-- what's new in 0.2.9
+ separate RGB color image equalization implemented
+ colored display of Histogram and cumulative Hitogram
+ memory deallocation fixes
+ implemented zero-cross display for laplacian filters
+ implemented customizable median filter (different forms and size)
+ implemented the basis for a more customizable edge tracer
+ fixed a bug in the DFTHighPass interface on GNUstep

-- what's new in 0.2.8 --
+ NSImageView works now in gnustep (no more clipping)
+ edge tracing is implemented (with selectable filters)
+ fixed a weak comaprison for color spaces in MyDocument.m and included the check of both Calibrated and Device color space so it works more reliably across different platforms.

-- what's new in 0.2.7 --
+ histogram and cumulative histogram display
+ fixed equalization, but improvment space remains.

-- what's new in 0.2.6 --
+ DFT low pass now uses a rised cosine for the transition improving the smoothness
+ the DFT low-pass controller now checks for the input range, also directly entering the numerical values works
+ rewrote pointer access in the Convolve 5x5 and did some clean up
+ auto-range for DFT based filters works now much, much better due to a careless bug I had left in

-- what's new in 0.2.5 --
+ FFT is now displayed shifted with the 0 in the center of the image
+ the DFT - inverse-DFT of the low and high-pass filters works now great without adding spurious lines. Now the actual filtering part remains to be done correctly.
+ several GNUstep bugs were solved
+ DFT based Low and High pass are now skectechd out and roughly functional

-- what's new in 0.2.4 --
(26 Oct 2003)
+ 2D FFT is now displayed in logarithmic scale, to ease visualization
+ Save works (TIFF output)

-- what's new in 0.2.3 --
(13 Oct 2003)
+ 2D FFT is now usable, although it serves only as display (since only the real part is displayed and it is auto-scaled). But it should work on non square and non-power-of-two image sizes too!
+ DFT filter at the first (useless) implementation, basically the image is transformed and back-transformed


-- what's new in 0.2.2 --
+ key order in the convolution matrix is now correct
+ white and black color spaces are now correctly recongnized, although I don't like my current conversion method.
+ great FFT progress

-- what's new in 0.2.1 --
(1 feb 03)
+ manual entering of convolution finally works (and not only when closign and reopening the panel!)
+ "Auto Scale" correctly enables and disables manual controls, even on reopen.
+ convolution now works fine, it wraps and mirrors over the edges as it should

-- what's new in 0.2 --
(30 jan 03)
+ grayscale conversion
+ first work on the convolution engine
+ first work on filter preference panels.

-- what's new in 0.1 --
(21 dic 02)
+ first initial draft, first layouts


COMPILATION
-----------
- the project is currently created and compiled with Apple's Project Builder or with ProjectCenter on GNUstep.


LIMITATIONS
-----------
- currently FFT and convolutions work only on grayscale images


LICENSE  and DISCLAIMER
-----------------------

PRICE  Copyright (C) 2002-2006 Riccardo Mottola

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; version 2 of the License.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program; if not, write to the
Software Foundation, Inc.,
51 Franklin Street, Fifth Floor,
Boston, MA  02110-1301, USA.
