(C) Copyright 1996, 1997 by Roalt Aalmoes (aalmoes@huygens.nl)
                         and Huygens group of Twente University

All rights reserved.

This source code may be distributed freely as long as it is distributed as a 
whole and may be used for evaluation purposes only. For other use, please 
contact the author, Roalt Aalmoes.

See http://www.huygens.org



DISCLAIMER: THE AUTHOR OR THE TWENTE UNIVERSITY IS NOT RESPONSIBLE FOR
ANY DAMAGE CAUSED BY THIS PACKAGE. USE THIS SOURCE CODE AT YOUR OWN RISK.


This packages contains the R263 encoder library (LIBR263). The code is
based on the freely available telenor implementation of Karl
Lillevold. Other code that is used includes an optimized (I)DCT
transformation function from University of Berkeley MPEG Codec. All
rights that these source codes posses will also apply to this code. 

Only a few parts of the original telenor code can be found back in
this code, especially the bit-manipulation function and the general
set-up of function headers. However, most algorithms have been
optimized and rewritten from the ground. An example of completely new
code (which is not even borrowed from the MPEG encoder) is the
logarithmic search algorithm. Other changes is the variable size of
video formats (which is later also included in a new implementation of
the telenor code).


The source code is tested on the following platforms:

* Intel 80486DX2 66 MHz, Linux, kernel 1.3.71.
* Intel Pentium 150 MHz, Linux, kernel ?.
* DEC Alpha, 133 and 150 MHz running OSF.
* Sun UltraSPARC-1, Solaris version ?.

As far as I know, the source code is pretty ansi-compatible. Most
changes that may be needed are changes in the Makefile. If you have
longs that are twice the size of ints, compile with the
-DLONGISDOUBLEINT option to take advantage of faster long copy
operations (e.g. 64-bit instead of 32-bit).


PROBLEMS DURING COMPILATION


The following messages is generated during compilation:

  pred.c: In function `Predict_P':
  pred.c:40: warning: passing arg 4 of `FindMB' from incompatible pointer type

It seems some wrong pointer type is given through. This is not harmful
and it might be changed in a next version. A general note: in the
encoder, signed and unsigned ints are sometimes mixed. This is not
very good practice so be very careful what your doing if you change
it. I think it is a heritage from the telenor code.



Good luck!

Roalt






