U.S. patent application number 11/327645 was filed with the patent office on 2006-08-03 for system for geometrically accurate compression and decompression.
This patent application is currently assigned to Level Set Systems, Inc.. Invention is credited to Stanley J. Osher, Hong-Kai Zhao.
Application Number | 20060171567 11/327645 |
Document ID | / |
Family ID | 26716415 |
Filed Date | 2006-08-03 |
United States Patent
Application |
20060171567 |
Kind Code |
A1 |
Osher; Stanley J. ; et
al. |
August 3, 2006 |
System for geometrically accurate compression and decompression
Abstract
A system is disclosed providing accurate compression, storage,
transmission and reconstruction of both simulated and empirical
data representing terrain and other physical or hypothetical
signals or surfaces, in one or multiple dimensions. In one
embodiment, a gradient of an original surface is generated, and the
data representing that gradient is compressed, then stored and/or
transmitted. Reconstruction of the gradient yields an accurate
representation of the original gradient. An alternative embodiment
includes taking a second gradient of the original surface before
compression, in which case reconstruction yields the second
gradient, from which the first gradient can also be recovered.
Inventors: |
Osher; Stanley J.; (Pacific
Palisades, CA) ; Zhao; Hong-Kai; (Irvine,
CA) |
Correspondence
Address: |
HOWREY LLP
C/O IP DOCKETING DEPARTMENT
2941 FAIRVIEW PARK DR, SUITE 200
FALLS CHURCH
VA
22042-2924
US
|
Assignee: |
Level Set Systems, Inc.
Pacific Palisades
CA
|
Family ID: |
26716415 |
Appl. No.: |
11/327645 |
Filed: |
January 9, 2006 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10039748 |
Dec 18, 2001 |
7027658 |
|
|
11327645 |
Jan 9, 2006 |
|
|
|
60257210 |
Dec 20, 2000 |
|
|
|
Current U.S.
Class: |
382/106 ;
382/108; 382/232 |
Current CPC
Class: |
G06T 9/004 20130101 |
Class at
Publication: |
382/106 ;
382/108; 382/232 |
International
Class: |
G06K 9/00 20060101
G06K009/00; G06K 9/36 20060101 G06K009/36 |
Claims
1. A method for compressing and decompressing digital terrain
elevation data, images, or graphs in at least two dimensions,
including the steps of: computing a numerical approximation to at
least one of the slope, curvature, and/or another predetermined
geometric feature, and storing the numerical approximation together
with data values prescribed at certain predetermined locations;
applying a suitable compression technique to the geometric feature;
and retrieving the image.
2-4. (canceled)
5. The method of claim 1, wherein the retrieving step is carried
out by numerically solving an elliptic differential equation using
a source term derived from a compressed version of the elliptic
operator applied to the image, where appropriate boundary
conditions are stored and used.
6. A system for compressing and decompressing surface data,
including: a gradient module configured to receive the surface data
and generate a gradient signal; a compression module configured to
receive the gradient signal and generate a compressed signal; and a
reconstruction module configured to decompress the compressed
signal to recover the gradient signal as a reconstructed
signal.
7. The system of claim 6, further including a module configured to
store the compressed signal.
8. The system of claim 6, further including a module configured to
transmit the compressed signal.
9. The system of claim 6, configured to operate in cooperation with
a processor-based computer system.
10. The system of claim 6, wherein the surface data comprises
digital terrain elevation data.
11. The system of claim 6, further including an input/output
channel in communication with avionics equipment, and configured to
provide elevation data to the avionics equipment generated from the
reconstructed signal.
12. The system of claim 6, further including an integration module
configured to generate reconstructed surface data from the
reconstructed signal.
13. A system for compressing and. decompressing surface data,
including: a first gradient module configured to receive the
surface data and generate a first gradient signal; a second
gradient module configured to receive the surface data and generate
a second gradient signal; a compression module configured to
receive the second gradient signal and generate a compressed
signal; and a reconstruction module configured to decompress the
compressed signal to recover the second gradient signal as a
reconstructed signal.
14. The system of claim 13, further including an integration module
to generate reconstructed surface data from the reconstructed
signal.
15. The system of claim 13, further including a module configured
to store the compressed signal.
16. The system of claim 13, further including a module configured
to transmit the compressed signal.
17. The system of claim 13, configured to operate in cooperation
with a processor-based computer system.
18. The system of claim 13, Wherein the surface data comprises
digital terrain elevation data.
19. The system of claim 13, further including an input/output
channel in communication with, avionics equipment, and configured
to provide elevation data to the avionics equipment generated from
the reconstructed signal.
20. A program storage device readable by a computer the device
containing instructions executable by the computer to perform
method steps for compressing and reconstructing a signal of at
least one dimension, the method including the steps of: generating
a gradient of the signal; compressing the gradient of the signal to
generate a compressed signal; and decompressing the compressed
signal to generate a reconstructed signal.
21. The program storage device of claim 20, wherein said method
further includes the step of generating an integrated signal from
the reconstructed signal.
22. The program storage device of claim 21, wherein at least one of
the steps of generating the gradient of the signal and generating
the integrated signal is carried out by a numerical process.
23. The program storage device of claim 22, wherein at least one of
the gradient and the integrated signal is generated to within a
predetermined level of accuracy.
24. The program storage device of claim 21, wherein at least one of
the steps of generating the gradient of the signal and generating
the integrated signal is carried out by analytically.
25. The program storage device of claim 24, wherein at least one of
the gradient and the integrated signal is generated to within a
predetermined level of accuracy.
26. The program storage device of claim 20, wherein the signal
relates to terrain data.
27. The program storage device of claim 26, wherein said method
further includes the step of transmitting the reconstructed signal
as input to avionics equipment for providing relative elevation
data.
28. A program storage device readable by a computer, the device
containing instructions executable by the computer to perform
method steps for compressing and reconstructing a signal of at
least one dimension, the method including the steps of: generating
a first gradient of the signal; generating a second gradient from
the first gradient; compressing the second gradient to generate a
compressed signal; and decompressing the compressed signal to
generate a reconstructed second gradient signal.
29. The program storage device of claim 28, wherein said method
further includes the step of generating an integrated signal from
the reconstructed second gradient signal.
30. The program storage device of claim 29, wherein said method
further includes the step of transmitting the integrated signal as
input to avionics equipment for providing relative elevation data.
Description
[0001] This application claims the benefit of U.S. Provisional
Application No. 60/257,210, of Osher et al., filed Dec. 20, 2000,
entitled "Geometrically Accurate Compression and Decompression",
which is incorporated herein by reference.
BACKGROUND OF THE INVENTION
[0002] The present invention relates to a system for compressing
and reconstructing (decompressing) signals, including signals
representing physical data such as terrain. Such signals may be
computer-constructed data, empirically derived images or signals,
or in general any information or data representing actual or
simulated phenomena.
[0003] After compression of data representing a terrain, digital
terrain elevation (or images, indeed any graph) data ("DTED"), a
common problem is accurate reconstruction of terrain features, such
as the slope. Given digitized data representing terrain elevation,
or indeed any graph in two or more dimensions at a data point (x,y)
(or the multiple dimension extension at a data point (x.sub.1, . .
. ,x.sub.n)), it is highly useful to be able to compress and
decompress the data in such a way that terrain--or, more generally,
graph or image features--are accurately reconstructed.
[0004] Conventional systems in current use compress the data, store
or transmit it as needed, and at a later point reconstruct the data
from the compressed-data files. This can lead to large errors in
derived quantities obtained from the reconstructed data, in
particular when the gradient of the reconstructed data is
taken.
[0005] The gradient of the original data is often of considerable
interest. In the case of DTED, it may be important for aircraft to
be aware of the precise terrain slopes, and the errors introduced
by determining gradients from reconstructed data may be too great
to be of practical use for many applications.
[0006] Especially for lossy compression techniques, a reconstructed
image generally does not have the same values for the norm of the
gradient that the original image had. In fact, errors in the
gradient are often quite large for higher compression ratios. These
errors are quite significant since the accuracy of the terrain
slope is crucial in many areas, e.g. landing of aircraft in
navigation exercises.
[0007] Accordingly, a system is needed that can compress and
reconstruct multidimensional data, such as terrain data or other
signals, with an increased accuracy in the reconstructed
information, and in particular in the gradients that are determined
from the reconstructed data, and the norms of those gradients.
SUMMARY OF THE INVENTION
[0008] An apparatus and method according to one embodiment of the
present invention are implemented in a processor-based system. A
method according to the invention provides an accurately compressed
and reconstructed signal, and in particular accurately
reconstructed gradients of the original signal, by applying
compression procedures to the gradient of the original signal. An
alternative embodiment further involves the process of generating a
second gradient of the original signal, and compressing that second
gradient, which upon decompression provides an accurate
reconstruction of the second gradient of the original signal. The
methods of the invention are suitable for compressing, storing,
transmitting and reconstructing both simulated and empirical data
representing terrain and other physical or hypothetical signals or
surfaces, in one or multiple dimensions.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] FIG. 1 is a block showing a processor-based system suitable
for an implementation of the present invention.
[0010] FIG. 2 is a representation of a signal that can be
compressed and reconstructed according to the present
invention.
[0011] FIG. 3 is a representation of a gradient of the signal of
FIG. 2.
[0012] FIG. 4 is a representation of another signal that can be
compressed and reconstructed according to the present
invention.
[0013] FIG. 5 is a representation of a gradient of the signal of
FIG. 4.
[0014] FIG. 6 is a representation of a gradient of the signal of
FIG. 5.
[0015] FIGS. 7-8 are flow charts representing methods implementing
aspects of the present invention.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0016] FIG. 1 illustrates a processor-based system 100, such as a
workstation or a server, in connection with the present invention
may be implemented. The system 100 is coupled to a display 110 and
one or more user interface devices 120 (such as a mouse, keyboard,
track ball, etc.), and operates under control of at least one
microprocessor 130 (though it may be a multiprocessor system).
[0017] The processor 130 is connected to a local device control
circuitry 140, which includes circuitry that controls data and
command exchanges with local devices such as the display 110 via an
accelerated graphics processor (AGP) 150 and memory 160, which may
in a typical system will include multiple DIMMs (dual in-line
memory modules) or other suitable memory modules or media.
[0018] The local device control circuitry 140 is connected to a
peripheral device control circuit 170 via a bus such as PCI bus
180. The system 100 additionally is connected to local internal
and/or external storage 190.
[0019] Input/output (I/O) channels 200 are connected to or in
communication with the system 100, and may include conventional
network connections, wireless communications devices, and/or other
conventional apparatus for exchanging data with the system 100. In
addition, transmitters, receivers or in general transceivers 210
may be connected to or in communication with the system 100, which
are suitable for remote or isolated operations include weather
stations or other telemetry stations, on aircraft, etc.
[0020] The compression and decompression operations of the present
invention are in one embodiment carried out under the control of
program modules stored in the memory 160 and executing on the
processor 130. These operations may be implemented in and/or
executed by software, hardware (e.g. in configured field gate
arrays, custom logic, etc.), firmware or some combination thereof.
In this application, the term "logic" will be used to refer to any
such appropriate combination of software, hardware, firmware or
other manner of implementing the invention.
[0021] The image, terrain, or other data relating to the invention
will typically take the form of data files stored in memory or in
some storage medium, which can be read, modified, stored, output,
displayed and printed by the computer system, either under
automatic (or program) control or under the direction of a
user.
Compression and Reconstruction of Gradient Data
[0022] The system of the invention is applicable to many types of
compression procedures presently in use, with improved accuracy of
the reconstructed signals, and in particular of their gradients (or
slopes) and corresponding norms of those gradients. An example of
one appropriate compression procedure is a histogram equalization
procedure, as described, for instance, in Sapiro, G. and Caselles,
V., "Histogram Modification via Differential Equations", Journal of
Differential Equations, Vol. 135, No. 2, pp. 238-268 (1997), which
is incorporated herein by reference. Generally, appropriate
compression procedures include those that are exact for constant
signals, but are lossy in the general case (such as JPEG or
histogram equalization).
[0023] Thus, the inventive methods may be applied to signals
processed according to any compression procedures. In addition, the
inventive methods may be applied to signals representing data of
many dimensions. However, for the sake of the following discussion
a two-dimensional signal will be taken as an example.
[0024] The normal vector to the signal or graph representing a
surface or terrain is given by: ( - u x , - u y , 1 ) ( 1 + u x 2 +
u y 2 . ##EQU1## It follows that the steepness (or slope) of the
terrain surface is determined by the gradient of that signal,
namely: |.gradient.u|= {square root over
(u.sub.x.sup.2+u.sub.y.sup.2)}.
[0025] A method according to the present invention compresses the
gradient |.gradient.u|, rather than the signal u itself. The basic
framework of such a method is carry out the following
operations:
Operation #1: Compute |.gradient.u| either analytically or
numerically. (It may be done analytically for simulated data, and
numerically for empirical data, or even analytically for empirical
data that has been approximated by mathematical
representations.)
Operation #2: Use any suitable compression technique to compress
and store (or transmit) |.gradient.u| as |{double overscore
(.gradient.u)}|.
Operation #3: Recover a reconstructed signal v by solving the
equation: |.gradient.v|=|{double overscore (.gradient.u)}|.
EquationA: In particular, this can be solved using fast numerical
level set based procedures for solving the Eikonal equation
|.gradient.v|=|{double overscore (.gradient.u)}|.
[0026] FIG. 7 is a flow chart according to this series of
operations.
[0027] An Eikonal equation is one of the form {square root over
(v.sub.x.sup.2=v.sub.y.sup.2)}=C(x,y) for C(x,y)>0. This gives a
generalized distance to a set. If C=1, then the distance is a real
distance. Examples of this may include: (a) distance to the origin
of a coordinate system, and (b) distance to a set defined by the
equation x=0.
[0028] (a) Distance to the Origin.
[0029] If v= {square root over (x.sup.2+y.sup.2)}, the distance is
to the origin x=y=0, with: v x = x x 2 + y 2 ; v y = y x 2 + y 2 ;
and .times. .times. v x 2 + v y 2 = x 2 + y 2 x 2 + y 2 = 1
##EQU2##
[0030] b) Distance to a Set x=0.
[0031] If v=|x|, the distance represents a distance to the set x=0,
with: [0032] v.sub.x=1 if x>0; [0033] v.sub.x=-1 if x<0; and
[0034] v.sub.y=0; and thus v.sub.x.sup.2+v.sub.y.sup.2=1. At least
a few values of v=u at a few data points are input, including
certain boundary points and points of extrema of u.
[0035] A system according to the present invention can take
advantage of fast methods to compute the unique viscosity solution
to this Hamilton-Jacobi nonlinear partial differential equation,
i.e. the Eikonal Equation A above. The viscosity solution is used
because |{double overscore (.gradient.u)} represents 1 velocity
##EQU3## in the Eikonal Equation. Thus, we can view Equation A
above as finding the distance v in that variable metric.
[0036] Operation #3 above involves the solution of
|.gradient.v|=f(x,y), where f(x,y)=|{double overscore
(.gradient.u)}| is the compressed quantity. As mentioned above,
this may be a numerical or an analytical solution.
[0037] It has been proven that there exists a unique viscosity
solution to this equation, given the values of u at appropriate
data points. See Rouy, E. and Tourin, A., A viscosity solutions
approach to shape from shading, SIAM Journal of Numerical Analysis,
Vol. 29, No. 3, pp. 867-884 (1992). There are fast Dijkstra-like
algorithms and/or sweeping algorithms that are designed for this
purpose. On Dijkstra-like algorithms, see: J. N. Tsitsiklis,
"Efficient Algorithms for Globally Optimal Trajectories", IEEE
Transactions on Automatic Control, Vol. 40, No. 9, September 1995,
pp. 1528-1538, which is incorporated herein by reference.
[0038] To solve the Eikonal equation in any number of independent
variables (x, y, z, . . . ) on a distance grid with n points and
values of u assigned at isolated points, there is a shortest-path
type of algorithm given by Tsitsiklis, which runs in optimal time
O(n log n), with n being the number of pixels. Dijkstra approach is
a classical algorithm which computes the "taxicab" distance metric,
i.e. which solves: max(|u.sub.x|,|u.sub.y|)=C(x,y) in this optimal
time. Tsitsiklis generalized it to the true geodesic distance (as
the crow flies). The classical algorithm and its generalization
update each grid point once in increasing order of distance, and
may use an O(log n) heapsort search.
[0039] Fast sweeping algorithms solve the same algebraic expression
as the Dijkstra-like algorithms on the grid at each point--however,
not in increasing order of distance, but rather in an iterative
fashion, updating points as often as needed until convergence
within a predetermined tolerance. Fast sweeping methods can involve
simplified programming and can be faster, e.g. if C(x,y)=1 and a
left-right, up-down procedure is used. See, e.g., M. Boue and P.
Dupuis, Markov chain approximations for deterministic control
problems with affine dynamics and quadratic cost in the control,
SLAM J. Numer. Analysis, Vol. 36, No. 3, pp. 667-695 (1999).
[0040] Input used for these fast solution techniques (which can be
referred to as "fast solvers") are the numerical values of f(x,y)
and the values of u at grid points where |.gradient.u| is less than
some very small tolerance (i.e. where u might be an extremum).
[0041] This present invention is thus useful in combination with
any compression routine.
[0042] One might consider the approach of compressing the vector
.gradient.u=(u.sub.x,u.sub.y) to get {double overscore
(.gradient.u)}=({double overscore (u.sub.x)},{double overscore
(u.sub.y)}), and then recover u. There are two conditions that must
be considered to avoid inaccuracies in the reconstruction of the
gradient:
[0043] (i) There is a need for compatibility, i.e. ({double
overscore (u.sub.x)}).sub.y=({double overscore (u.sub.y)}).sub.x,
at least approximately, and this is generally false for the
recovered u, using this simplified procedure.
[0044] (ii) Reconstructing u from one compressed derivative, e.g.
solving numerically v.sub.x={double overscore (u.sub.x)} can lead
to large errors in the resulting v.sub.y.
[0045] Reconstruction of the signal from the decompressed gradient
is effectively an integration process, which can be carried out
numerically or can be carried out analytically for a function
derived from or representing the decompressed signal (within some
predetermined level of accuracy). Such integration can be carried
out for each level of gradient operation (e.g. for second
gradients--see Alternative Method I, below).
[0046] Other implementations of the basic method for solving
|.gradient.u|=|{double overscore (.gradient.u)}| can be enhanced in
several ways. FIG. 8 is a flow chart illustrating an Alternative
Method I, as follows.
Alternative Method I
[0047] (1) Compute numerically |.gradient.u|.
[0048] (2) Compute numerically |.gradient.|.gradient.u||.
[0049] (3) Compress and store |.gradient.|.gradient.u||, obtaining
{double overscore (|.gradient.|.gradient.u||)}.
[0050] (4) Recover v using fast a Eikonal solver twice. First solve
for w in |.gradient.w|={double overscore
(|.gradient.|.gradient.u||)}.
[0051] Then solve for v in |.gradient.v|=w.
[0052] Wherever numerical computation or data generation is called
for herein, it should be understood that under appropriate
circumstances an analytical solution may be generated, and
vice-versa. In either case, a predetermined level of accuracy may
be used a controlling factor, e.g. for the compression, gradient,
integration and/or reconstruction operations.
[0053] The extra data storage that would be used for this algorithm
is the storage of v=u and |.gradient.v|=|.gradient.u| at extrema,
i.e. those points for which |.gradient.u| and
|.gradient.|.gradient.u||, respectively, have values below a small
predefined tolerance.
[0054] This method can be generated recursively to N Eikonal
solvers. The extra storage is minimal, but the decompression step
would be approximately N times slower.
Alternative Method II
[0055] (1) Solve |.gradient.w|=|{double overscore
(.gradient.u)}|.
[0056] (2) Compress |.gradient.(u-w)|, and obtain
|.gradient.{double overscore ((u-w))}|.
[0057] (3) Solve |.gradient.z|=|.gradient.{double overscore
((u-w)})|.
In steps (1) and (3), use the values of u and u-w, respectively, at
their approximate extrema, as usual.
[0058] (4) Then obtain v, the reconstruction of u, via v=w+z.
This method adds a correction to the basic method by compressing
and reconstructing errors in |.gradient.u|.
Recovering Curvature
[0059] Additionally, other geometric features of the terrain, for
example mean curvature of the surface, can be recovered from
compressed data in a similar manner. Following is a procedure for
recovering curvature.
[0060] For a surface defined by z=u(x,y), its mean curvature is: k
= u xx .function. ( u y 2 + 1 ) - 2 .times. u xy .times. u x
.times. u y + u yy .function. ( u x 2 + 1 ) ( 1 + u x 2 + u y 2 ) 3
/ 2 . ##EQU4## See S. Osher and J. A. Sethian, "Fronts Propagating
with Curvature-Dependent Speed: Algorithms Based on
Hamilton--Jacobi Formulations", Osher, S., and Sethian, J. A.,
Journal of Computational Physics, Vol. 79, pp. 1249 (1988), which
is incorporated herein by reference.
[0061] This involves first and second partial derivatives of u.
Thus, in order to recover curvature from compressed data,
Alternative Method I above can be used, with N.gtoreq.2. This
allows the recovery of a signal v whose second and first
derivatives are accurate approximations to those of u. Then a
numerical implementation for the expression defining k above may be
used, where v replaces u.
[0062] Higher derivatives of curvature--in fact all geometric
features--can be recovered in an analogous fashion, which will be
clear from the foregoing to those skilled in the art. For instance,
instead of using the Eikonal equation, one can take any elliptic
differential operator of second or higher order, for example the
Laplacian (v)=u.sub.xx+u.sub.yy, and solve numerically (v)={double
overscore ((v))} for v, where appropriate boundary conditions are
imposed. Then geometric features can be recovered as above.
[0063] The inventive methods provide improved compression ratios
for DTED, images or graphs which have large flat regions where
|.gradient.u| or any desired feature will be zero, hence easy to
compress. Thus the inventive methods are highly accurate in these
situations in retrieving the data, as well as the desired feature
or features.
Pseudocode Appropriate for Method Involving Compressing Normals to
Gradients
[0064] The following pseudocode relates to compressing a quantity,
e.g. the norm of the gradient, from an original set of data, and
recovering the original data from the compressed quantity. [0065]
// Read in the original file and store it as quantity u[i][j]
[0066] // Compute the derived quantity, e.g. norm of grad u[i][j]
[0067] // Store the norm as a separate quantity v[i][j] [0068] %%
Compression routines are completely up to the users' preference.
[0069] %% Possible compression techniques include JPEG-LS, JPEG,
LSS (Level Set [0070] % % Systems of Los Angeles, Calif.). [0071]
%% LSS' technique can used with lossy compression techniques,
wherein [0072] %% there are errors between the original and
restored image. [0073] // Compress the original file [0074] //
Compress the normal vectors file [0075] // Decompress the
compressed original file [0076] // Decompress the compressed normal
vectors file [0077] // Read in the compressed/decompressed original
file--store it as quantity uc[i][j] [0078] // Read in the
compressed/decompressed normal vectors file--store it as quantity
vc[i][j] [0079] // Reconstruct an approximation to the original
image u[i][j], from the compressed/decompressed quantity vc[i][j].
This reconstruction is based upon numerically solving the partial
differential equation: [0080] |grad w|=vc[i][j] for w[i][j] [0081]
// As an initial guess, you may used w=uc[i][j], or set w=stored
values of u[i][j] at isolated extrema.
[0082] From this procedure, it can result that w[i][j] will be a
better approximation to u[i][j] than uc[i][j], because the relevant
quantity v[i][j] will be better approximated by w[i][j] than it
will be by uc[i][j].
[0083] The Level Set Systems approach mentioned above can be found
in applicant's copending patent application, "Method and Apparatus
for Feature-Based Quantization and Compression of Data", Ser. No.
09/737,834 filed Dec. 14, 2000, which is incorporated herein by
reference.
Examples of Application of Methods According to the Invention
[0084] Examples 1 and 2 below will be discussed in connection with
FIGS. 2-6.
[0085] FIG. 2 illustrates a one-dimensional signal that may be
divided into N pixels in this manner, where N=10 for the sake of
the example. Thus, in FIGS. 2-6, the x-coordinates indicating the N
pixels are labeled j=1, 2, . . . , 10, and the signal may be
expressed as: u={u.sub.j}.sub.j-1.sup.N.
[0086] In general in the present description, an original signal
will be denoted as u and its components as u.sub.j. A reconstructed
signal (i.e. data that has been regenerated from compressed data)
will be denoted as v (and its components as v.sub.j) or w (and its
components as w.sub.j), as will be seen below. In addition, a
compressed signal or data will be denoted by a double bar over the
compressed quantity; so {double overscore (u)} would indicate the
compressed form of the data or signal u, and similarly with any
other quantities or expressions.
[0087] This simple signal is sufficient to illustrate the operation
of the present invention, and it is straightforward to generalize
the procedures of the invention to signals of two or more
dimensions, and to real-world settings of three-dimensional
phenomena.
[0088] The quantity |.gradient.u| (rather than u) is compressed
according to the present invention, and can be computed by standard
finite difference methods. Thus, .gradient. u j = u j - u j - 1 ( 1
/ N ) = u j - u j - 1 .times. N .times. .times. for .times. .times.
j .gtoreq. 2 ; and ##EQU5## .gradient. u 1 = u 2 - u 1 ( 1 / N ) =
u 2 - u 1 .times. N . ##EQU5.2##
[0089] For simplicity, in these examples, we may take
u.sub.j.gtoreq.u.sub.j-1 for all j, so we can remove the absolute
value notation shown above.
EXAMPLE 1
[0090] FIG. 2 shows an example of a one-dimensional linear signal
u, expressible as vector of data u={U.sub.j}, where: u.sub.j=j/N
(j=1, 2, . . . , N). Then |.gradient.u|.sub.j=1 for all j, as shown
in FIG. 3. Note that |.gradient.u| is a constant, independent of j.
Thus, the compressed value of |.gradient.u| is the same as the
uncompressed value, as in FIG. 3. In this example, then, there is
no error in the compressed and uncompressed values of
|.gradient.u|, nor is there any error in u or the reconstructed
v.
[0091] In general, in this description the variable u will be used
to refer to the original signal or data, and the variables v and w
will be used to indicate the data after reconstruction (after of
the first or second gradient or derivative, as will be discussed
below).
[0092] Generally, lossy compression procedures will result in
errors in signals u that do not comprise constant values, so
earlier methods (which compress the signals u, and not the gradient
of u as in the present invention) will lead to larger errors in the
gradient of the reconstructed signal, i.e. |.gradient.u|, than in
the present system. As mentioned above, the methods of the
invention involving compression of gradient values instead of the
original signal data are applicable in one dimension or in multiple
dimensions.
EXAMPLE 2
[0093] FIG. 4 shows an example one-dimensional signal, expressible
as: u j = j .times. .times. ( j + 1 ) 2 .times. N 2 .times. .times.
( j = 1 , 2 , .times. , N ) ##EQU6## Thus, for this signal
|.gradient.u|.sub.j=j/N as shown in FIG. 5. (Note that the values
of |.gradient.u|.sub.j in Example 2 are the same as the values of
u.sub.j in Example 1, which follows since the above function for
u.sub.j in Example 2 was obtained by integrating the value
u.sub.j=j/N from Example 1.)
[0094] If the approach of compressing the derivative (or gradient)
of the function is used, rather than compressing the function
itself, then we compute |.gradient.|.gradient.u||, and obtain:
[0095] |.gradient.|.gradient.u||.sub.j=1 for all j (as shown in
FIG. 6).
[0096] The compression of this is error-free (for this example),
and hence the errors in the reconstructed w (which approximates
|.gradient.u|) and v (which approximates u) are also zero, as is
the error in the curvature approximating the curvature of z=u(x).
Here, k = u xx ( 1 + u x 2 ) 3 / 2 , ##EQU7## since there is no
dependence on y. Thus, the method of FIG. 7 reduces the resulting
error in this example.
[0097] Using the Laplacian as described, with (u)=u.sub.xx (in this
one-dimensional example), also results in error-free compressions
of |.gradient.|.gradient.u||, |.gradient.u| and u.
[0098] In apparatus implementations of the present invention, each
of the steps or operations involved can be carried out by executing
one or more program or logic modules. The terrain, signal or
surface data can, as discussed above, be simulated or real-world
(e.g. empirically gathered) data.
[0099] A processor-based system according to the invention can thus
be connected to input or receiving devices (including sensors,
satellite receivers, etc.) 210 and I/O channels 200 as shown in
FIG. 1, and the I/O channels may communicate with other apparatus
that use the processed surface and gradient signals, such as
avionics (not separately shown) or other user interface
equipment.
* * * * *