hdr
HDR Visual Difference Predictor 1.6
HDR Visual Difference Predictor (HDR VDP) is a perceptual metric that can predict whether differences between two images. more>>
The image below shows how two input images, a reference image (upper left) and a distorted image (lower left), are processed with the VDP to produce a probability of detection map (right). Such probability of detection map tells how likely we will notice a difference between two images for each part of an image.
Red color denotes high probability, green - low probability. Red color is mostly present in the areas where there is a snow covered path. Because of smooth texture of the snow, there is not much visual masking and distortions are easily visible.
Although there are dozens of visible difference metrics that serve a similar purpose, our Visual Difference Predictor for HDR images (HDR-VDP) has two unique advantages: firstly, our metric works with a full range of luminance values that can be meet in a real word (HDR images), and secondly, we offer a complete source code for free.
High Dynamic Range Visible Difference Predictor (HDR-VDP) can work within the complete range of luminance the human eye can see. An input to our metric is a high dynamic range (HDR) image, or an ordinary 8-bits-per-color image, converted to the actual luminance values. The proposed metric takes into account the aspects of high contrast vision, like scattering of the light in the optics (OTF), nonlinear response to light for the full range of luminance, and local adaptation.
MIME::Head 5.420
MIME::Head is a MIME message header (a subclass of Mail::Header). more>>
SYNOPSIS
Before reading further, you should see MIME::Tools to make sure that you understand where this module fits into the grand scheme of things. Go on, do it now. Ill wait.
Ready? Ok...
Construction
### Create a new, empty header, and populate it manually:
$head = MIME::Head->new;
$head->replace(content-type, text/plain; charset=US-ASCII);
$head->replace(content-length, $len);
### Parse a new header from a filehandle:
$head = MIME::Head->read(*STDIN);
### Parse a new header from a file, or a readable pipe:
$testhead = MIME::Head->from_file("/tmp/test.hdr");
$a_b_head = MIME::Head->from_file("cat a.hdr b.hdr |");
Output
### Output to filehandle:
$head->print(*STDOUT);
### Output as string:
print STDOUT $head->as_string;
print STDOUT $head->stringify;
Getting field contents
### Is this a reply?
$is_reply = 1 if ($head->get(Subject) =~ /^Re: /);
### Get receipt information:
print "Last received from: ", $head->get(Received, 0), "n";
@all_received = $head->get(Received);
### Print the subject, or the empty string if none:
print "Subject: ", $head->get(Subject,0), "n";
### Too many hops? Count em and see!
if ($head->count(Received) > 5) { ...
### Test whether a given field exists
warn "missing subject!" if (! $head->count(subject));
Setting field contents
### Declare this to be an HTML header:
$head->replace(Content-type, text/html);
Manipulating field contents
### Get rid of internal newlines in fields:
$head->unfold;
### Decode any Q- or B-encoded-text in fields (DEPRECATED):
$head->decode;
Getting high-level MIME information
### Get/set a given MIME attribute:
unless ($charset = $head->mime_attr(content-type.charset)) {
$head->mime_attr("content-type.charset" => "US-ASCII");
}
### The content type (e.g., "text/html"):
$mime_type = $head->mime_type;
### The content transfer encoding (e.g., "quoted-printable"):
$mime_encoding = $head->mime_encoding;
### The recommended name when extracted:
$file_name = $head->recommended_filename;
### The boundary text, for multipart messages:
$boundary = $head->multipart_boundary;
File::Wildcard 0.10
File::Wildcard is a Perl module for enhanced glob processing. more>>
SYNOPSIS
use File::Wildcard;
my $foo = File::Wildcard->new(path => "/home/me///core");
while (my $file = $foo->next) {
unlink $file;
}
When looking at how various operating systems do filename wildcard expansion (globbing), VMS has a nice syntax which allows expansion and searching of whole directory trees. It would be nice if other operating systems had something like this built in. The best Unix can manage is through the utility program find.
This module provides this facility to Perl. Whereas native VMS syntax uses the ellipsis "...", this will not fit in with POSIX filenames, as ... is a valid (though somewhat strange) filename. Instead, the construct "///" is used as this cannot syntactically be part of a filename, as you do not get three concurrent filename separators with nothing between (three slashes are used to avoid confusion with //node/path/name syntax).
You dont have to use this syntax, as you can do the splitting yourself and pass in an arrayref as your path.
The module also forms a regular expression for the whole of the wildcard string, and binds a series of back references ($1, $2 etc.) which are available to construct new filenames.
new
File::Wildcard-new( $wildcard, [,option => value,...]);>
my $foo = File::Wildcard->new( path => "/home/me///core");
my $srcfnd = File::Wildcard->new( path => "src///*.cpp",
match => qr(^src/(.*?).cpp$),
derive => [src/$1.o,src/$1.hpp]);
This is the constructor for File::Wildcard objects. At a simple level, pass a single wildcard string as a path.
For more complicated operations, you can supply your own match regexp, or use the derive option to specify regular expression captures to form the basis of other filenames that are constructed for you.
The $srcfnd example gives you object files and header files corresponding to C++ source files.
Here are the options that are available:
path
This is the input parameter that specifies the range of files that will be looked at. This is a glob spec which can also contain the ellipsis /// (it could contain more than one ellipsis, but the benefit of this is questionable, and multiple ellipsi would cause a performance hit).
Note that the path can be relative or absolute. new will do the right thing, working out that a path starting with / is absolute. In order to recurse from the current directory downwards, specify .///foo.
As an alternative, you can supply an arrayref with the path constituents already split. If you do this, you need to tell new if the path is absolute. Include an empty string for an ellipsis. For example:
foo///bar/*.c is equivalent to [foo,,bar,*.c]
You can also construct a File::Wildcard without a path. A call to next will return undef, but paths can be added using the append and prepend methods.
absolute
This is ignored unless you are using a pre split path. If you are passing a string as the path, new will work out whether the path is absolute or relative. Pass a true value for absolute paths.
If your original filespec started with / before you split it, specify absolute => 1. absolute is not required for Windows if the path contains a drive specification, e.g. C:/foo/bar.
case_insensitive
By default, the module will use Filesys::Type to determine whether the file system of your wildcard is defined. This is an optional module (see Module::Optional), and File::Wildcard will guess at case sensitivity based on your operating system. This will not always be correct, as the file system might be VFAT mounted on Linux or ODS-5 on VMS.
Specifying the option case_insensitive explicitly forces this behaviour on the wildcard.
Note that File::Wildcard will use the file system of the current working directory if the path is not absolute. If the path is absolute, you should specify the case_sensitivity option explicitly.
exclude
You can provide a regexp to apply to any generated paths, which will cause any matching paths not to be processed. If the root of a directory tree matches, no processing is done on the entire tree.
This option can be useful for excluding version control repositories, e.g.
exclude => qr/.svn/
match
Optional. If you do not specify a regexp, you get all the files that match the glob; in addition, new will set up a regexp for you, to provide a capture for each wildcard used in the path.
If you do provide a match parameter, this will be used instead, and will filter the results.
derive
Supply an arrayref with a list of derived filenames, which will be constructed for each matching file. This causes next to return an arrayref instead of a scalar.
follow
If given a true value indicates that symbolic links are to be followed. Otherwise, the symbolic link target itself is presented, but the ellipsis will not traverse the link.
This module detects a looping symlink that points to a directory higher up, and will only present the tree once.
ellipsis_order
This can take one of the following values: normal, breadth-first, inside-out. The default option is normal. This controls how File::Wildcard handles the ellipsis. The default is a normal depth first search, presenting the name of each containing directory before the contents.
The inside-out order presents the contents of directories first before the directory, which is useful when you want to remove files and directories (all O/S require directories to be empty before rmdir will work). See t/03_absolute.t as this uses inside-out order to tidy up after the test.
Breadth-first is rarely needed (but I do have an application for it). Here, the whole directory contents is presented before traversing any subdirectories.
Consider the following tree: a/ a/bar/ a/bar/drink a/foo/ a/foo/lish
breadth-first will give the following order: qw(a/ a/bar/ a/foo/ a/bar/drink a/foo/lish). normal gives the order in which the files are listed. inside-out gives the following: qw(a/bar/drink a/bar/ a/foo/lish a/foo/ a/).
sort
By default, globbing returns the list of files in the order in which they are returned by the dirhandle (internally). If you specify sort => 1, the files are sorted into ASCII sequence (case insensitively if we are operating that way). If you specify a CODEREF, this will be used as a comparison routine. Note that this takes its operands in @_, not in $a and $b.
debug and debug_output
You can enable a trace of the internal states of File::Wildcard by setting debug to a true value. Set debug_output to an open filehandle to get the trace in a file. If you are submitting bug reports for File::Wildcard, attaching debug trace files would be very useful.
debug_output defaults to STDERR.
match
my $foo_re = $foo->match;
$foo->match(bar/core);
This is a get and set method that gives access to the match regexp that the File::Wildcard object is using. It is possible to change the regex on the fly in the middle of a search (though I dont know why anyone would want to do this).
append
$foo->append(path => /home/me///*.tmp);
appends a path to an objects todo list. This will be globbed after the object has finished processing the existing wildcards.
prepend
$srcfnd->prepend(path => $include_file);
This is similar to append, but prepends the path to the todo list. In other words, the current wildcard operation is interrupted to serve the new path, then the previous wildcard operation is resumed when this is exhausted.
next
while (my $core = $foo->next) {
unlink $core;
}
my ($src,$obj,$hdr) = @{$srcfnd->next};
The next method is an iterator, which returns successive files. Returns matching files if there was no derive option passed to new. If there was a derive option, returns an arrayref containing the matching filespec and all derived filespecs. The derived filespecs do not have to exist.
Note that next maintains an internal cursor, which retains context and state information. Beware if the contents of directories are changing while you are iterating with next; you may get unpredictable results. If you are intending to change the contents of the directories you are scanning (with unlink or rename), you are better off deferring this operation until you have processed the whole tree. For the pending delete or rename operations, you could always use another File::Wildcard object - see the spike example below:
all
my @cores = $foo->all;
all returns an array of matching files, in the simple case. Returns an array of arrays if you are constructing new filenames, like the $srcfnd example.
Beware of the performance and memory implications of using all. The method will not return until it has read the entire directory tree. Use of the all method is not recommended for traversing large directory trees and whole file systems. Consider coding the traversal using the iterator next instead.
reset
reset causes the wildcard context to be set to re-read the first filename again. Note that this will cause directory contents to be re-read.
Note also that this will cause the path to revert to the original path specified to new. Any additional paths appended or prepended will be forgotten.
close
Release all directory handles associated with the File::Wildcard object. An object that has been closed will be garbage collected once it goes out of scope. Wildcards that have been exhausted are automatically closed, (i.e. all was used, or c< next > returned undef).
Subsequent calls to next will return undef. It is possible to call reset after close on the same File::Wildcard object, which will cause it to be reopened.
exrtools 0.4
exrtools project is a set of simple command-line utilities for manipulating with high dynamic range images in OpenEXR format. more>>
exrtools was developed to help experiment with batch processing of HDR images for tone mapping. Each application is small and reasonably self-contained such that the source code may be of most value to others.
exrtools currently only works with RGBA OpenEXR files. As well, the code assumes that the EXR files and PNG files all use sRGB primaries and gamma function. Fixing this is not very difficult, and the code to fix allows for some interesting possibilities. That said, I do not have time right now, so this will have to wait.
exrtools and its source code is released under an MIT-style license and may be used in both commercial and non-commercial applications without fee.
Applications
exrblur
Applies a gaussian blur to an image.
exrchr
Applies spatially-varying chromatic adaptation to an image.
exricamtm
Performs tone mapping using the iCAM method.
exrnlm
Performs non-linear masking correction to an image.
exrnormalize
Normalize an image.
exrpptm
Performs tone mapping using the photoreceptor physiology method.
exrstats
Displays statistics about an image.
exrtopng
Converts an image to PNG format.
jpegtoexr
Converts an image to EXR format from JPEG.
pngtoexr
Converts an image to EXR format from PNG.
ppmtoexr
Converts an image to EXR format from PPM. Works with the 16 bit per channel PPM files from dcraw for digital cameras with RAW modes.
Enhancements:
- Added the ppmtoexr application to convert from PPM formats including the 48 bit per pixel format output by dcraw.
OpenEXR 1.4.0a
OpenEXR project is a high dynamic-range (HDR) image file format for use in computer imaging applications. more>>
OpenEXR is used by ILM on all motion pictures currently in production. The first movies to employ OpenEXR were Harry Potter and the Sorcerers Stone, Men in Black II, Gangs of New York, and Signs. Since then, OpenEXR has become ILMs main image file format.
Main features:
- Higher dynamic range and color precision than existing 8- and 10-bit image file formats.
- Support for 16-bit floating-point, 32-bit floating-point, and 32-bit integer pixels. The 16-bit floating-point format, called "half", is compatible with the half data type in NVIDIAs Cg graphics language and is supported natively on their new GeForce FX and Quadro FX 3D graphics solutions.
- Multiple lossless image compression algorithms. Some of the included codecs can achieve 2:1 lossless compression ratios on images with film grain.
- Extensibility. New compression codecs and image types can easily be added by extending the C++ classes included in the OpenEXR software distribution. New image attributes (strings, vectors, integers, etc.) can be added to OpenEXR image headers without affecting backward compatibility with existing OpenEXR applications.
Enhancements:
- This release added support for multithreaded reading and writing of files, Intel-based Mac OS X, and Visual Studio 2005.
- Building against OpenEXR headers was cleaned up.
- Handling of incomplete or damaged files was improved. IRIX, OSF/1, SunOS, Mac OS X prior to 10.3, and GCC prior to 3.3 were deprecated.
- New features were added to the documentation, and many bugs in the code, build system, and documentation were fixed.
Streamsniff 0.03
Streamsniff is a small command line tool that sniffs network traffic for stream URLs. more>>
Run it as root, fire up your browser and start the stream you want to "expose". Streamsniff detects the initiation of rtsp, mms, icy and http streams, and performs a backtrace on http traffic to detect "playlist"-urls (stream metafiles).
Sample output showing ICY, RTSP and MMS urls and their playlist urls:
ICY : http://212.92.28.98:2002/
: http://real1.radio.hu/BartokG2.ram
RTSP: rtsp://rmlivev8.bbc.net.uk:554/farm/*/ev7/live24/6music/live/6music_dsat_g2.ra
: http://www.bbc.co.uk/6music/ram/dsatg2.ram
MMS : mms://wm05.nm.cbc.ca/cbcr2-toronto
: http://origin.www.cbc.ca/mrl2/livemedia/cbcr2-toronto.asx
Streamsniff is experimental. It runs on little-endian (Intel/AMD), Linux and Windows XP SP2. I want to be less specific about the platform. Help with ports (big-endian, FreeBSD) is appreciated.
Detects:
MMS
RTSP
ICY
HTTP (with Content-Type: audio.. , video.. , ..wms-hdr..)
PFScalibration 1.3
PFScalibration package provides an implementation of the Robertson et al. 2003 method for the photometric calibration of cameras more>>
Tools provided with this software can be used for photometric calibration of both off-the-shelf digital cameras and HDR cameras as described in the MPI Research Report. A short tutorial on calibration of the LDR cameras and the recovery of the HDR images from multiple exposures is provided below. For details on the calibration of the HDR cameras please refer to the research report.
PDL::IO::FITS 2.4.3
PDL::IO::FITS Perl module offers a simple FITS support for PDL. more>>
SYNOPSIS
use PDL;
use PDL::IO::FITS;
$a = rfits(foo.fits); # read a FITS file
$a->wfits(bar.fits); # write a FITS file
This module provides basic FITS support for PDL, in the sense of reading and writing whole FITS files. (For more complex operations, such as prefiltering rows out of tables or performing operations on the FITS file in-place on disk), you can use the Astro::FITS::CFITSIO module that is available on CPAN.
Basic FITS image files are supported, along with BINTABLE and IMAGE extensions. ASCII Table support is planned, as are the HEASARC bintable extensions that are recommended in the 1999 FITS standard.
Table support is based on hashes and named columns, rather than the less convenient (but slightly more congruent) technique of perl lists of numbered columns.
The principle interface routines are rfits and wfits, for reading and writing respectively. FITS headers are returned as perl hashes or (if the module is present) Astro::FITS::Header objects that are tied to perl hashes.
Astro::FITS::Header objects provide convenient access through the tied hash interface, but also allow you to control the card structure in more detail using a separate method interface; see the Astro::FITS::Header documentation for details.
FUNCTIONS
rfits()
Simple piddle FITS reader.
$pdl = rfits(file.fits); # Read a simple FITS image
Suffix magic:
$pdl = rfits(file.fits.gz); # Read a file with gunzip(1)
$pdl = rfits(file.fits.Z); # Read a file with uncompress(1)
$pdl = rfits(file.fits[2]); # Read 2nd extension
$pdl = rfits(file.fits.gz[3]); # Read 3rd extension
@pdls = rfits(file.fits); # Read primary data and extensions
$hdr = rfits(file.fits,{data=>0}); # Options hash changes behavior
In list context, rfits reads the primary image and all possible extensions, returning them in the same order that they occurred in the file. In scalar context, the default is to read the primary HDU. One can read other HDUs by using the [n] syntax, the second one is [1]. Currently recognized extensions are IMAGE and BINTABLE. (See the addendum on EXTENSIONS for details).
rfits accepts several options that may be passed in as a hash ref if desired:
bscale (default=1)
Determines whether the data are linearly scaled using the BSCALE/BZERO keywords in the FITS header. To read in the exact data values in the file, set this to 0.
data (default=1)
Determines whether to read the data, or just the header. If you set this to 0, you will get back the FITS header rather than the data themselves. (Note that the header is normally returned as the hdr field of the returned PDL; this causes it to be returned as a hash ref directly.)
hdrcpy (default=0)
Determines whether the hdrcpy flag is set in the returned PDL. Setting the flag will cause an explicit deep copy of the header whenever you use the returned PDL in an arithmetic or slicing operation. That is useful in many circumstances but also causes a hit in speed.
FITS image headers are stored in the output PDL and can be retrieved with hdr or gethdr. The hdrcpy flag of the PDL is set so that the header is copied to derived piddles by default. (This is inefficient if you are planning to do lots of small operations on the data; clear the flag with "->hcpy(0)" or via the options hash if thats the case.)
The header is a hash whose keys are the keywords in the FITS header. If you have the "Astro::FITS::Header" module installed, the header is actually a tied hash to a FITS header object, which can give you more control over card order, comment fields, and variable types. (see Astro::FITS::Header for details).
The header keywords are converted to uppercase per the FITS standard. Access is case-insensitive on the perl side, provided that Astro::FITS::Header is installed.
If Astro::FITS::Header is not installed, then a built-in legacy parser is used to generate the header hash. Keyword-associated comments in the headers are stored under the hash key < keyword >_COMMENT >. All HISTORY cards in the header are collected into a single multiline string stored in the HISTORY key. All COMMENT cards are similarly collected under the COMMENT key.

Qtpfsgui for Linux 1.8.12
An graphical user interface application that aims to provide a workflow for HDR. more>> Qtpfsgui is an open source graphical user interface application that aims to provide a workflow for HDR imaging.
Supported HDR formats:
OpenEXR (extension: exr)
Radiance RGBE (extension: hdr)
Tiff formats: 16bit, 32bit (float) and LogLuv (extension: tiff)
Raw image formats (extension: various)
PFS native format (extension: pfs)
Supported LDR formats:
JPEG, PNG, PPM, PBM, TIFF(8 bit)
Supported features:
Create an HDR file from a set of images (formats: JPEG, TIFF 8bit and 16bit, RAW) of the same scene taken at different exposure setting.
Save and load HDR images.
Rotate and resize HDR images.
Tonemap HDR images.
Copy exif data between sets of images.
Supports internationalization.
Qtpfsgui is available for Linux, Windows and Mac OS X, see Download below.
A wiki space provided by Sourceforge acts a central place for all the documentation.
A great deal of discussions and images related to Qtpfsgui can be found on flickr.
If you want to contribute translating Qtpfsgui for your language heres an howto that explains the procedure to become a maintainer.<<less
TrueCombat:Elite 0.49b
TrueCombat:Elite project is an Enemy Territory total conversion modification. more>>
TC:E is currently being developed by GrooveSix Studios and TeamTerminator. While TeamTerminator is known for the famous Q3 based TrueCombat series, GrooveSix Studios was initiated by retired TeamTerminator co-founder Coroner to develop a Return to Castle Wolfenstein modification that is not released.
Thus, as very experienced Q3-based content creators, we hope to be able to serve the gaming community with a quality offering.
Now, the most important question: "What can you expect from TC:E?" TC:E is a tactical-team shooter, set up in a modern-world environment.
TC:E puts you into the role of elite mercenary soldier in the conflicts of two internationally operating forces.
Main features:
- Texture Tone Mapping
- HDR Lighting
- Realistic scaling
- High quality sounds (44khz)
- rich, deluxe graphics, based on high-resolution digital-camera shots
- Letterbox & widescreen modes - TrueVision
- Dynamic Eye Adaption - DynEA
- Cross Platform Gaming (Win, OS X, Linux)
- tactical-teamplay oriented, modern-world combat simulation
- realistic weapon behavior simulation
- iron sight aiming system, no crosshair
- sophisticated ballistic simulation including multiple-layer object penetration
- professional mode: 1-life, short-timed, objective driven scenarios in realistic environments
- bodycount mode: team deathmatch style, gametype to relax?
- Reinforced OBJ, as Capture the Flag in stock maps
- balanced, team specific set of real-world weapons (Beretta 92, Glock 19, Ump45, Mac-10, M4, Ak-47, and more)
- Free climb
- lag compensation, client-side bullet prediction, punkbuster support
- immersive and lethal, fast-paced action"
Parse::Binary::FixedFormat 0.10
Parse::Binary::FixedFormat is a Perl module to convert between fixed-length fields and hashes. more>>
SYNOPSIS
use Parse::Binary::FixedFormat;
my $tarhdr =
new Parse::Binary::FixedFormat [ qw(name:a100 mode:a8 uid:a8 gid:a8 size:a12
mtime:a12 chksum:a8 typeflag:a1 linkname:a100
magic:a6 version:a2 uname:a32 gname:a32
devmajor:a8 devminor:a8 prefix:a155) ];
my $buf;
read TARFILE, $buf, 512;
# create a hash from the buffer read from the file
my $hdr = $tarhdr->unformat($buf); # $hdr gets a hash ref
# create a flat record from a hash reference
my $buf = $tarhdr->format($hdr); # $hdr is a hash ref
# create a hash for a new record
my $newrec = $tarhdr->blank();
Parse::Binary::FixedFormat can be used to convert between a buffer with fixed-length field definitions and a hash with named entries for each field. The perl pack and unpack functions are used to perform the conversions. Parse::Binary::FixedFormat builds the format string by concatenating the field descriptions and converts between the lists used by pack and unpack and a hash that can be reference by field name.
Qtpfsgui 1.8.12
Qtpfsgui is a graphical user interface that enables users to work on hdr images. more>>
Supported operations include:
- creations of a HDR file from a set of images of a scene taken at different exposure settings
- tonemapping an HDR image into a common LDR image format (e.g jpeg or png)
loading, saving and rotating existing HDR images
In some ways the program is a opensource clone of Photomatix.
pfstools 1.6.2
pfstools allows for reading, writing, manipulating and viewing high-dynamic range (HDR) images and video frames. more>>
pfstools come with a library for reading and writing pfs files. The library can be used for writing custom applications that can integrate with the existing pfstools programs.
pfstools offers also a good integration with a high-level mathematical programming language GNU Octave. pfstools can be used as the extension of Octave for reading and writing HDR images or simply to store effectively large matrices.
Note that pfs in not just another format for storing HDR images (and there are already quite a few of them). It is more an attempt to integrate the existing file formats by providing a simple data format that can be used to exchange data between applications.
Enhancements:
- matlab: pfsview can now display 2D cell arrays
- pfs library: quite serious bug in sRGB transforms fixed
- added: check for GLUT library (unix only)
- added: man page for pfsglview

Fotoxx 7.7.1
Fotoxx is a free open source Linux program for photo editing and collection management. The goal is to meet most user needs while remaining fast and easy to use. more>>
Fotoxx 7.7.1 is a free open source Linux program for photo editing and collection management. The goal is to meet most user needs while remaining fast and easy to use.
Navigate a large image collection using a thumbnail image browser. Import most camera RAW files and edit with 16-bit color. Save edited images as tiff-24/48 or jpeg with adjustable compression. Edit the whole image or an area outlined with the mouse, with adjustable edge-blending.Edit functions have fast feedback using the whole image. Multiple undo/redo aids evaluation of changes. Add tags, dates, and star-ratings to images. Search images using these criteria and also (wildcard) file names.
The GUI has English, German, Spanish, Galician, French, Chinese, Greek, and Czech. A user guide is available in English, French, Spanish, and Galician.
Fotoxx works best on a fast computer with at least a gigabyte of memory. Multiple processor cores are utilized. Netbooks work adequately, but some edit functions will be slow and a 1024x600 screen is confining.
Major Features:
- Flatten brightness distribution (quick fix for many photos)
- Brightness and color adjustments using movable curves
- Trim, Rescale, Rotate (any angle)
- Warp (stretch/distort image by dragging the mouse)
- Sharpen, Blur, Noise reduction, Red-eye removal
- Panorama and HDR composites (hand-held photos OK)
- Artful transformations (simulated drawing or painting)
- Pixel edit with variable brush and blending
- Rename a series of files using a base name and sequence number
- Slide-show mode: full screen, no menu, keyboard navigation
- Batch convert multiple RAW files to tiff/48
- Select images from the navigator and burn a CD or DVD
- View EXIF data
SIPp 2.0
SIPp is a free Open Source test tool / traffic generator for the SIP protocol. more>>
SIPp project can also reads custom XML scenario files describing from very simple to complex call flows. It features the dynamic display of statistics about running tests (call rate, round trip delay, and message statistics), periodic CSV statistics dumps, TCP and UDP over multiple sockets or multiplexed with retransmission management and dynamically adjustable call rates.
Other advanced features include support of IPv6, TLS, SIP authentication, conditional scenarios, UDP retransmissions, error robustness (call timeout, protocol defense), call specific variable, Posix regular expression to extract and re-inject any protocol fields, custom actions (log, system command exec, call stop) on message receive, field injection from external CSV file to emulate live users.
While optimized for traffic, stress and performance testing, SIPp can be used to run one single call and exit, providing a passed/failed verdict.
Last, but not least, SIPp has a comprehensive documentation available both in HTML and PDF format.
SIPp can be used to test many real SIP equipements like SIP proxies, B2BUAs, SIP media servers, SIP/x gateways, SIP PBX, ... It is also very useful to emulate thousands of user agents calling your SIP system.
Enhancements:
- New: Statistical (conditional) branching feature. See
- http://sipp.sf.net/doc/reference.html#Randomness+in+conditional+branching.
- New: 3PCC extended mode - see
- http://sipp.sourceforge.net/doc/reference.html#3PCC+Extended
- Tool: monitor remote SIP servers through SNMP - see
- http://sipp.sourceforge.net/wiki/index.php/Getting_feedback_from_the_server
- Enh: extends the -aa option to UPDATE messages
- Enh: changes in the compilation with external libs - useful for the package
- generation system
- Enh: Allow sampling from a Weibull distribution for pause duration
- Enh: use stat_delimiter for the trace_rtt option and include number that is
- being reported.
- Enh: Add repeat_rtd keyword for repeated RTD calculations
- Enh: Handle stripping Control-M characters from multi-valued headers in
- get_header
- Enh: Update the clock_tick more frequently so that we have a higher timer and
- statistics resolution
- Enh: for option that take a time as argument - allow them to be specified using
- seconds or milliseconds
- Enh: fail when parsing a scenario that has pcap if pcap is not enabled
- Enh: print the actual location of the error log file and the error condition
- (if any) on creation
- Enh: fail when parsing a scenario that enables authentication if SSL is not
- enabled
- Enh: Makefile - include EXTRAENDLIBS keyword so that libraries can be appended
- to the list after SSL Enh: Add regexp_match argument to the receive command for
- universal catching
- Enh: remote control: increase the allowed number of control sockets.
- Enh: 3pcc extended: clean the reach of the allowed number of local twin sockets
- Enh: amelioration of statistic computing
- Enh regexp: add case_indep, occurence and start_line options for the hdr
- matching case
- Enh: Stats: Use RTDs that are precise to the microsecond in -trace_rtt, and
- improve the consistency between trace_rtt and the averages
- Enh: Only include RTDs that are actually used in the CSV output
- Enh: Allow loss percentages less than 1 and also a global command line option to
- specify that packets should be lost at a given percentage
- Fix: fix for -t un error for non-IPv6 platform like win32 - Unable to bind UDP
- socket, errno = 106 (Address family not supported by protocol)
- Fix: Do not initialize the screen library in background mode
- Fix: allow having an optional recv before a recvCmd
- Fix: Authentication: allow [fieldn] values for the [authentication] field
- Fix: updated support of short header forms
- Fix: small bug fix to the micrortt.diff which is required for the initial call
- rate to work properly
- Fix:Allow the code to compile with -Wall -Werror on Linux
- Fix: empty line was generated when [routes] keyword was used and proxy did not
- record-route
- Fix: pcap on HPUX; Fix: Simple fixes identified with valgrind
- Fix: 3pcc extended: problem when quitting
- Fix: regexp: add a warning when the specified header is not present in the
- received message
- Fix: pcap: destroy the send packets thread properly even if the sendto failed
- Fix: bug in regexp due to an incomplete commit (rev 172) - remove some debugging
- traces in message log file
- Fix: bugs on retransmission counters and on cookies for optional messages
- Fix: Incorrect branch in automatic ACK answering to unexpected >= 400 responses,
- as well as automatic CANCEL - in such cases, branch must be identical to the
- branch of the initial INVITE request
- Fix: 3pcc extended: clean up when screen exit. Fix: stop logging when the
- maximum allowed file size is reached (avoid core dump)
- Fix: incomplete Via header in automatic responses when aborting calls
- Fix: -h: -key parameter
- Fix: 3pcc/3pcc extended modes: closes twin sockets properly when twin instance
- exits, to break the poll() loop and avoid the print of empty messages
- Fix: in 3pcc/3pcc extended modes: send BYE/CANCEL before exit due to other twin
- instance exit
- Fix: force exit when pressing q twice (Q press can still be used)
- Fix: Aka authentication for synchro case, also added password len as password
- for authentication might contain char Fix: possible core dump in SDP parser
- Fix: accept up to the 5 defined RTDs (previously would only accept one less)
- Fix: Fail if there is an invalid repartition table specification - previous
- behavior was a core dump
- Fix: added -users option to the parameter table
- Fix: change option description to match timed options
- Fix: trace_err did not work in background mode
- Fix: bug when testing the presence of the 3PCC compilation flag
- Fix: bug in -r -rp option
- Page: 1 of 2
- 1
- 2