 8cbe84f33a
			
		
	
	
	8cbe84f33a
	
	
	
		
			
			- make 2 needlessly global functions static - remove cpia2_setup(): the driver already allows setting parameters through module_param(), and there's no reason for having two different ways for setting the same parameters Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
		
			
				
	
	
		
			130 lines
		
	
	
	
		
			5.6 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
	
		
			5.6 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
| $Id: README,v 1.7 2005/08/29 23:39:57 sbertin Exp $
 | |
| 
 | |
| 1. Introduction
 | |
| 
 | |
| 	This is a driver for STMicroelectronics's CPiA2 (second generation
 | |
| Colour Processor Interface ASIC) based cameras. This camera outputs an MJPEG
 | |
| stream at up to vga size. It implements the Video4Linux interface as much as
 | |
| possible.  Since the V4L interface does not support compressed formats, only
 | |
| an mjpeg enabled application can be used with the camera. We have modified the
 | |
| gqcam application to view this stream.
 | |
| 
 | |
| 	The driver is implemented as two kernel modules. The cpia2 module
 | |
| contains the camera functions and the V4L interface.  The cpia2_usb module
 | |
| contains usb specific functions.  The main reason for this was the size of the
 | |
| module was getting out of hand, so I separted them.  It is not likely that
 | |
| there will be a parallel port version.
 | |
| 
 | |
| FEATURES:
 | |
|    - Supports cameras with the Vision stv6410 (CIF) and stv6500 (VGA) cmos
 | |
|      sensors. I only have the vga sensor, so can't test the other.
 | |
|    - Image formats: VGA, QVGA, CIF, QCIF, and a number of sizes in between.
 | |
|      VGA and QVGA are the native image sizes for the VGA camera. CIF is done
 | |
|      in the coprocessor by scaling QVGA.  All other sizes are done by clipping.
 | |
|    - Palette: YCrCb, compressed with MJPEG.
 | |
|    - Some compression parameters are settable.
 | |
|    - Sensor framerate is adjustable (up to 30 fps CIF, 15 fps VGA).
 | |
|    - Adjust brightness, color, contrast while streaming.
 | |
|    - Flicker control settable for 50 or 60 Hz mains frequency.
 | |
| 
 | |
| 2. Making and installing the stv672 driver modules:
 | |
| 
 | |
| 	Requirements:
 | |
| 	-------------
 | |
| 	This should work with 2.4 (2.4.23 and later) and 2.6 kernels, but has
 | |
| only been tested on 2.6.  Video4Linux must be either compiled into the kernel or
 | |
| available as a module.  Video4Linux2 is automatically detected and made
 | |
| available at compile time.
 | |
| 
 | |
| 	Compiling:
 | |
| 	----------
 | |
| 	As root, do a make install.  This will compile and install the modules
 | |
| into the media/video directory in the module tree. For 2.4 kernels, use
 | |
| Makefile_2.4 (aka do make -f Makefile_2.4 install).
 | |
| 
 | |
| 	Setup:
 | |
| 	------
 | |
| 	Use 'modprobe cpia2' to load and 'modprobe -r cpia2' to unload. This
 | |
| may be done automatically by your distribution.
 | |
| 
 | |
| 3. Driver options
 | |
| 
 | |
| 	Option		Description
 | |
| 	------		-----------
 | |
| 	video_nr	video device to register (0=/dev/video0, etc)
 | |
| 			range -1 to 64.  default is -1 (first available)
 | |
| 			If you have more than 1 camera, this MUST be -1.
 | |
| 	buffer_size	Size for each frame buffer in bytes (default 68k)
 | |
| 	num_buffers	Number of frame buffers (1-32, default 3)
 | |
| 	alternate	USB Alternate (2-7, default 7)
 | |
| 	flicker_freq	Frequency for flicker reduction(50 or 60, default 60)
 | |
| 	flicker_mode	0 to disable, or 1 to enable flicker reduction.
 | |
| 			(default 0). This is only effective if the camera
 | |
| 			uses a stv0672 coprocessor.
 | |
| 
 | |
| 	Setting the options:
 | |
| 	--------------------
 | |
| 	If you are using modules, edit /etc/modules.conf and add an options
 | |
| line like this:
 | |
| 	options cpia2 num_buffers=3 buffer_size=65535
 | |
| 
 | |
| 	If the driver is compiled into the kernel, at boot time specify them
 | |
| like this:
 | |
| 	cpia2.num_buffers=3 cpia2.buffer_size=65535
 | |
| 
 | |
| 	What buffer size should I use?
 | |
| 	------------------------------
 | |
| 	The maximum image size depends on the alternate you choose, and the
 | |
| frame rate achieved by the camera.  If the compression engine is able to
 | |
| keep up with the frame rate, the maximum image size is given by the table
 | |
| below.
 | |
| 	The compression engine starts out at maximum compression, and will
 | |
| increase image quality until it is close to the size in the table.  As long
 | |
| as the compression engine can keep up with the frame rate, after a short time
 | |
| the images will all be about the size in the table, regardless of resolution.
 | |
| 	At low alternate settings, the compression engine may not be able to
 | |
| compress the image enough and will reduce the frame rate by producing larger
 | |
| images.
 | |
| 	The default of 68k should be good for most users.  This will handle
 | |
| any alternate at frame rates down to 15fps.  For lower frame rates, it may
 | |
| be necessary to increase the buffer size to avoid having frames dropped due
 | |
| to insufficient space.
 | |
| 
 | |
| 			     Image size(bytes)
 | |
| 	Alternate  bytes/ms   15fps    30fps
 | |
| 	    2         128      8533     4267
 | |
| 	    3         384     25600    12800
 | |
| 	    4         640     42667    21333
 | |
| 	    5         768     51200    25600
 | |
| 	    6         896     59733    29867
 | |
| 	    7        1023     68200    34100
 | |
| 
 | |
| 	How many buffers should I use?
 | |
| 	------------------------------
 | |
| 	For normal streaming, 3 should give the best results.  With only 2,
 | |
| it is possible for the camera to finish sending one image just after a
 | |
| program has started reading the other.  If this happens, the driver must drop
 | |
| a frame.  The exception to this is if you have a heavily loaded machine.  In
 | |
| this case use 2 buffers.  You are probably not reading at the full frame rate.
 | |
| If the camera can send multiple images before a read finishes, it could
 | |
| overwrite the third buffer before the read finishes, leading to a corrupt
 | |
| image.  Single and double buffering have extra checks to avoid overwriting.
 | |
| 
 | |
| 4. Using the camera
 | |
| 
 | |
| 	We are providing a modified gqcam application to view the output. In
 | |
| order to avoid confusion, here it is called mview.  There is also the qx5view
 | |
| program which can also control the lights on the qx5 microscope. MJPEG Tools
 | |
| (http://mjpeg.sourceforge.net) can also be used to record from the camera.
 | |
| 
 | |
| 5. Notes to developers:
 | |
| 
 | |
|    - This is a driver version stripped of the 2.4 back compatibility
 | |
|      and old MJPEG ioctl API. See cpia2.sf.net for 2.4 support.
 | |
| 
 | |
| 6. Thanks:
 | |
| 
 | |
|    - Peter Pregler <Peter_Pregler@email.com>,
 | |
|      Scott J. Bertin <scottbertin@yahoo.com>, and
 | |
|      Jarl Totland <Jarl.Totland@bdc.no> for the original cpia driver, which
 | |
|      this one was modelled from.
 |