The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. Vol. XXXVII. Part B4. Beijing 2008
of planes having the baseline as axis (the baseline is the line
joining the camera centres). This geometry is usually motivated
by considering the search for corresponding points in stereo
matching.
There are three degrees of rotational freedom for each camera
in total. However, a rotation around the optical axis of a camera
will not change the visual data, just the orientation of the image
of that camera. Furthermore, in order to keep the cameras in
fixation, there will not be any relative tilt between the cameras
and a joint tilt around the baseline, will not change the nature of
the problem.
2.2 Image pyramid
An image pyramid is a series of pixel arrays that represent the
same image at successively reduced resolutions. Image
pyramids are used extensively in multi-resolution image
processing and analysis. In addition, they have also been used
in data compression of images and design of computer
architecture. The generation of an image pyramid for a given
image can be viewed as the application of a series of low-pass
filters with successively narrower bandwidths. The input image
is fed through this series of filters, and the output of each stage
corresponds to the reduced-resolution image at each level of the
pyramid. The design of a good pyramid generation process
becomes the problem of finding an efficient and effective way
to perform such filtering operations. Convolution with limited-
size kernels represents fast implementations of low-pass filters.
The common approaches for generating pyramid data structure
include Gaussian pyramid, Facet pyramid and Wavelet pyramid.
In this paper, the Laplacian pyramid is adopted.
2.3 Memory pool strategy
There will be some additional costs in the course of using the
default memory management function new/delete or
malloc/free in the allocation and release memory stack.
In the receiving system to a certain size memory allocation
request, first of all, find the maintenance of internal memory
free block list, and some algorithms are needed to find suitable
free memory block size. If the free memory block is larger than
standard, it is necessary to cut distribution of spare parts and
smaller pieces. The system then updates free memory block,
completes a memory allocation. Similarly, in the release of
memory, the system adds the released memory to the free
memory block table. If it is possible, they can block the
adjacent idle merged into larger free block.
The default memory management function also takes into
account the multi-threaded applications, which increase
spending because of the lock for each allocation and release
memory. If the applications allocate and release memory
frequently in the stack, the performance will be descended. And
a large number of fragments of memory are generated, which
reduced memory utilization. The default memory allocation and
release of natural algorithm also takes into account the
performance, but these memory management algorithms are
used for meeting more complex, more extensive work. For a
specific application, a customized memory pool management
algorithm would be offered better performance.
Because the images obtained from the pyramid image database
are fixed in size, so a fixed memory pool scheduling algorithms
is adopted. Fixed memory pool consists of a range of fixed-size
memory block components, each memory block contain a fixed
number and size of the memory cell.
Figure 1. Fixed memory pool
As the figure 1 shows, the total memory pool includes four
memory blocks. In the first generation of memory pool, only a
memory block is applied, and the pointer is returned as the head
pointer to the whole memory pool. With the applications
demand more memory, the memory pool is dynamic expand
and once again to apply for a new memory blocks, and all
memory block are linked together through the pointer.
For an operating system, it has been allocated the same size of
four memory blocks to the application. The distribution of
speed relatively quickly because of the fixed size. For the
application procedures, the pool opened its memory a certain
size, but also the internal memory pool of surplus space.
Take the fourth memory block as example, which contains part
of block head information of memory pool and three memory
modules with same size. Unit 1 and Unit 3 is idle, Unit 2 has
been allocated. When the application needs one memory
module which allocated from the memory pool, only a simple
traversal of all the memory pool block head information, and
rapid positioned to the memory block which have free unit.
Then according to the block head information, directly
positioned to the first vacant unit address and return the address
and mark the next free memory modules. When the application
releases one memory pool unit, mark this unit vacant in the
corresponding block head information.
Compared with the memory management system, the operation
of memory pool very quickly, performance optimization in the
following main advantages.
(1) For special circumstances, such as the need for frequent
distribution and release of fixed-size memory object, does not
require complex distribution algorithms and multi-threaded
protection. No additional overhead in maintaining the free
memory form.
(2) Since the opening up a certain amount of memory space for
memory pool as a block, thereby to some extent improved
procedures localised, and enhance the performance.
(3) Relatively easy to control the page border alignment and
memory byte alignment, which avoid the memory fragment.
3. DYNAMIC EPIPOLAR REARRANGEMENT
This paper possess an advantage of generating epipolar images
from the original images pyramid dynamically, so in this