**Name**

**cvsfrecode** Encode the change of direction of points in the curves : return bit rate for lossless compression

**Command Synopsis**

**cvsfrecode** *C* *.* *.* *.*

C: input curves

. (screen output) : output number of points

. (screen output) : output number of bits to code the curves (without origin points)

. (screen output) : compression rate (bit per point = B/N)

**Function Summary**

double cvsfrecode (C , N , B )

Curves C ;

unsigned int *N ;

double *B ;

**Description**

This module computes the bit rate needed to encode the points of the curves contained in the input set, but the origin points. The bit rate is given in bit per point, the number of points being the total number of points contained in all curves. The curves are supposed to be made by connected points (for the 4-connectivity).

This module implements the Freeman's algorithm [Fre74] : the data structure is made by the change of direction from one point to the next. After that, the data is coded using one of the following schemes (only the best bit rate is returned) : entropy coding, arithmetic coding, predictive arithmetic coding.

The function outputs also the total number of points `N`

and the number of bits `B`

needed to code the structure.

Use the module `cvsencode`

to get the total bit rate to encode
a set of curves.
See the module `arencode2`

for more information on the arithmetic
coding algorithms.

Such module is useful to encode level lines geometry, such as in [Fro99].

**See Also**

**Version 1.1**

Last Modification date : Thu Jan 24 18:37:26 2002

**Author**

Jacques Froment