Abstract:
An instant special effects camera which provides children in the age range of five years and up with an opportunity to take photos and see the results instantly. The camera is a battery operated electronic black and white camera with an integral direct thermal printer. A replaceable paper cassette is included. To improve the ease of use and reduce cost, a minimal number of simple controls are provided. A picture may be taken simply by aiming the camera through a double view finder and pressing the shutter button. No setting up or flash is required. Plug-in special effects cartridges may be provided to increase the number of special effects.

Description:
BACKGROUND OF THE INVENTION 
     The present invention relates generally to a hand-held electronic imaging camera and, more particularly, to an electronic camera capable of recording an image of a scene and thereafter electronically manipulating the image and producing a hard copy print on a paper sheet. The electronic camera is designed to be operated by a child, and captures the image with a charge coupled device (CCD). The hard copy printout is preferably produced with a thermal printer. 
     Electronic imaging cameras capable of recording an image of a scene and providing a hard copy printout using a thermal printer are known in the art. For example, U.S. Pat. No. 4,074,324 to Barrett discloses an instant electronic camera which focuses an image on a CCD having a planar array of photosensors. Signals from the CCD are digitized and placed in a shift register memory. The contents of the shift register memory are then output to a dot matrix printer having heat-sensitive paper. Other electronic cameras with printer devices are shown, for example, in U.S. Pat. No. 4,262,301 to Erlichman, published European Patent Application No. 574,581 to King Jim Co., published PCT Application No. WO 92/11731 to Eastman Kodak Co., and published European Application No. 398,295 to Minolta Camera. 
     In a typical electronic camera of this type, the camera optical system focuses an image on a conventional CCD chip having an array of photosensors. The photosensors produce analog signals proportional to the intensity of incident light. These analog signals are digitized by an analog-to-digital converter and stored in a random access memory. The capture, conversion and storage of the image is normally controlled by a microprocessor. The microprocessor can then control the print head of an associated printer mechanism to provide a hard copy of the captured image. Optional software for the microprocessor can process the image stored in the random access memory to enhance the quality of the printed image or to produce special effects such as an outline image. 
     Electronic cameras of this type have several disadvantages. Because the CCD array operates at a relatively high speed, and the printer typically operates at a relatively low speed, it is often necessary to store the entire captured image in the random access memory. A typical conventional CCD array can capture 80,000 or more picture elements (pixels), each of which is stored in memory. This requires a relatively large memory which adds to the cost of the camera. The system described in PCT Application No. WO 92/11731 attempts to overcome this disadvantage by coupling the CCD array directly to a printer. However, this system introduces additional disadvantages and limits the available options. 
     For many applications, it is not necessary to capture 80,000 or more pixels to produce a satisfactory image quality. For example, for a child&#39;s electronic camera, a CCD device with a 160×160 array of photosensors (25,600 pixels) or a 190×160 array of photosensors (30,400 pixels) may provide sufficient picture resolution. Using a lower resolution CCD array can save costs for both the CCD chip and the random access memory. 
     To produce a satisfactory printed image quality, it is necessary to produce the appearance of shades of gray in the hard copy print out. However, a thermal printer is only capable of producing black or white dots. As a result, the microprocessor must manipulate the data in the random access memory to produce the appearance of shades of gray in the printout. Algorithms for producing this effect, known as dithering techniques, are known in the art. A typical dithering technique would operate on a block of pixels one line wide and two or three lines high. Thus, to create the first line of the printed image, the microprocessor needs to operate on only the first two or three lines of the captured image. Therefore, if a system could be arranged so that only two or three lines of data had to be stored in the random access memory at a given time, the size of the random access memory could be reduced by a factor of ten or more, with a consequent savings in cost. 
     Because the CCD array produces analog outputs at a relatively high rate, it is usually necessary for both the digital-to-analog converter and the random access memory to operate at high speed. Cost would be reduced if the CCD array could be arranged to capture an image at high speed, but output the image at relatively low speed, therefore allowing a slower analog-to-digital converter and random access memory to be used. 
     It is a primary objective of the present invention to overcome the described disadvantages of the prior art as well as other prior shortcomings, and to provide a relatively low cost electronic camera for children which is capable of providing plain prints as well as prints with special effects features. 
     BRIEF SUMMARY OF THE INVENTION 
     The present invention provides a low cost instant special effects camera suitable for use by children, and provides an affordable alternative to film cameras. In the preferred embodiment, an image sensor includes an array of photosensors which provide analog image outputs proportional to the intensity of light incident on the respective photosensors. The image sensor preferably includes timing logic for controlling operation of the photosensor array, as well as an analog to digital converter for digitizing the analog image outputs and interface logic. Electronic exposure control may also be provided to allow the use of low cost fixed aperture camera optics. 
     A memory stores the digitized image data from the image sensor for later processing by a microcontroller. To allow the use of a low pin count, low cost microcontroller, the microcontroller accesses data in the memory through the image sensor interface and a multiplexed address/data bus. In operation, the microcontroller retrieves data from the memory and applies contrast enhancement, magnification, dithering and data compression algorithms to prepare the data for printing. The print-formatted data is then stored back in the memory. 
     The microcontroller applies selected special effects to the print-formatted data as it is retrieved from memory for printing. Information for a plurality of standard special effects, including processing algorithms and/or data, may be provided in ROM internal to the microcontroller. Additional special effects information may be provided by optional ROM packs which may be inserted in the camera. A manual switch may be provided on the camera housing to permit a user to select specific special effects. Additionally, random selection of the special effects information may be chosen. 
     An integral printer is provided in the camera body, and paper may be supplied by replaceable paper cassettes. Audible and/or visual indications maybe provided to alert the user to the status of the camera processing. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The objects, advantages and features of the present invention will become apparent to the skilled artisan from the following detailed description, when read in light of the accompanying drawings, in which: 
     FIG. 1 is a schematic block diagram of a typical prior art electronic camera with a hard copy output; 
     FIG. 2 is a block diagram of a conventional CCD imaging array; 
     FIG. 3 is a block diagram of a custom CCD imaging array for use in an electronic camera; 
     FIG. 4 is a block diagram of one embodiment of an improved electronic imaging camera using a custom CCD array; 
     FIG. 5 is a block diagram of a preferred custom imaging sensor; 
     FIG. 6 is a block diagram of a preferred embodiment of an electronic imaging camera using the imaging sensor of FIG. 5; 
     FIG. 7 is a flow chart illustrating the operation of the electronic imaging camera of FIG. 6; 
     FIG. 8 illustrates a pulse width modulation technique for controlling printing operation; 
     FIG. 9 is a flow chart illustrating an exposure control scheme for use with the electronic imaging camera of FIG. 6; 
     FIG. 10 is a front view of a camera housing for the electronic imaging camera of FIG. 6; 
     FIG. 11 is a rear view of the camera housing of FIG. 9; 
     FIG. 12 is a side view of the camera housing of FIG. 9; and 
     FIG. 13 is a bottom view of the camera housing of FIG. 9. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Referring to FIG. 1, a typical electronic camera utilizes a conventional CCD array 1 to capture an image focused on the CCD array by camera optics. The analog output of the CCD array 1 is digitized by an A/D converter 2 and stored in random access memory 3. A microprocessor 4 controls a print head 5 and printer mechanism 6 to provide a hard copy of the captured image. The microprocessor 4 may optionally include software to process the image stored in the random access memory 3 to enhance the quality of the hard copy image or to produce special effects such as an outline image. 
     As illustrated in FIG. 2, a conventional CCD array includes a plurality of photosensors 7 arranged in a matrix of rows and columns. Each photosensor represents a single pixel in the image. A vertical shift register 8 is associated with each column of photosensors. During operation, the analog image data from the photosensors 7 is gated into the vertical shift registers 8 by the CCD control 10. At this point, each vertical shift register contains one column of analog image information. Subsequently, the CCD control 10 shifts the data in the vertical shift registers 8, by one pixel in an upward direction. As a result, the topmost pixel of each column is shifted into the horizontal shift register 9 so that the horizontal shift register 9 then contains one row of image data. The contents of the horizontal shift register are then shifted to the right by one pixel at a time to the analog output terminal 11 by the CCD control 10. in this way, a row of image data is clocked out of the CCD array one pixel at a time. The horizontal shift register 9 is then filled with the next line of data by shifting the data in all the vertical shift registers 8 up one pixel. This line of pixel data is again output through the analog output terminal 11 by successive shifting of the horizontal shift register 9. This process is repeated until all lines of pixel data have been output from the analog output terminal 11. 
     Referring now to FIG. 3, the custom CCD array consists of a conventional CCD array 12 having, for example, a 160×160 pixel matrix, an analog to digital (A/D) converter 13, a tri-state buffer 14, control logic 15 and memory control logic 16. The busy signal 22, the transfer signal 21, the read signal 20 and the shutter signal 19 are used to control the operation of the device and are normally connected to an external microprocessor. The digital data signals 23, the address signals 17 and read/write signals 18 are used to transfer data to an external random access memory. 
     In operation, when the shutter signal 19 is asserted, the control logic 15 controls the CCD array 12 to capture a single image focused on the array by the camera optics. A filter may be provided to select light frequencies to which the photosensors are sensitive. During this process, the control logic 15 asserts the busy signal 22 to inform the external microprocessor that it is busy. When the image has been captured, the busy signal 22 is not asserted. When the transfer signal 21 is asserted, the control logic 15 transfers a predetermined number of lines of data from the CCD array 12 via the A/D converter 13 and tri-state buffer 14 to an external random access memory. The control logic 15 also controls the address in the external random access memory at which each pixel is stored by controlling the memory control logic 16 which generates the address signals 17 and the read/write signal 18 which are also connected to the external random access memory. The control logic 15 asserts the busy signal 22 during the transfer. This process may be repeated until all the data from the CCD array 12 has been transferred. 
     Between each transfer of a predetermined number of lines, or once all the data has been transferred to the external random access memory, the data in the external random access memory can be read by asserting the read signal 20. When the read signal 20 is asserted, the control logic 15 and the memory control logic 16 control the address signals 17 and the read/write signal 18 to access a memory location in the external random access memory. While the read signal 20 is asserted, the tri-state buffer 14 is disabled to prevent the output of the A/D converter 13 from interfacing with the data read from the external random access memory. The address from which data is read is determined by the increment signal 24 and clear signal 25. When the clear signal 25 is asserted, the address is set to zero. Each time the increment signal 24 is asserted the address is incremented by one. In this way, an external microprocessor or other control circuit can access any of the data in the external random access memory. 
     Turning to FIG. 4, an improved electronic imaging camera includes a custom CCD array 26, such as that illustrated in FIG. 3, external random access memory 27, a microprocessor 28, a print head 29, a printer drive mechanism 30 and an optional plug-in module 31 which may comprise random access memory only, or a combination of random access memory and read-only memory. 
     In operation, the microprocessor 28 commands the custom CCD array 26 to capture an image when the shutter switch is operated. Once the image has been captured the custom CCD array 26 informs the microprocessor 28 that this operation is complete. When no plug-in module 31 provided, the microprocessor 28 then commands the custom CCD array 26 to transfer a predetermined number of lines of image data into the random access memory 27. The number of lines to transfer is determined by the functions the electronic imaging camera is expected to be able to perform without the benefit of the plug-in module 31. The amount of random access memory 27 is chosen to be just sufficient to hold the predetermined number of image data lines. In one embodiment, eight lines of data are transferred to the random access memory 27. Where one line of image data consists of 160 pixels, the 8 lines of image data requires 8 times 160 bytes, or 1,280 bytes. A low cost 2 kilobyte random access memory 27 can therefore be used. Transferring the image 8 lines at a time allows a simple dithering algorithm to be employed which will allow an acceptable but not high quality gray-scale hard copy to be produced. As each group of 8 lines of image data is transferred, the microprocessor 28 in cooperation with custom CCD array 26 accesses the image data one byte at a time, carries out the dithering algorithm, if required, then controls the print head 29 and the printer drive mechanism 30 to produce a hard copy image. Lines are transferred eight at a time to random access memory 27, manipulated and printed by the microprocessor 28, in cooperation with the print head 29 and printer drive mechanism 30 until the entire captured image has been printed. 
     In another embodiment, 4 kilobytes of random access memory 27 is provided and lines of image data are transferred in a block of 16 lines or two blocks of 8 lines to the random access memory 27. This allows the microprocessor 28 to employ a more sophisticated dithering algorithm which produces a correspondingly higher quality hard copy image. 
     To allow additional features and functions to be provided a plug-in module 31 may be connected to the electronic imaging camera. In one embodiment, the plug-in module 31 contains 32 kilobytes of random access memory. This allows the entire image to be transferred from the custom CCD array 26 to the plug-in module 31 before the image is printed. This allows more complicated effects to be produced which require the microprocessor to be able to access the entire image or large portions of the image. In addition, because the entire image is stored, extra copies of the image can be printed. Each copy can be identical to the previous one or modified, if required by pressing one of the effects switches 32. The effects that can be selected include, but are not limited to, binary image, outline image, contrast enhancement and the addition of a &#34;speech bubble&#34; such as are used in newspaper cartoons. 
     In another embodiment, the plug-in module contains read only memory, the contents of which represent a number of pre-stored images. These pre-stored images could include picture frames, places of interest, film or pop stars, animals or other images of an educational or entertainment nature. A particular image can be selected either by the operation of a switch incorporated in the plug-in module 31 or by the effects switches 32. The image could be printed directly or used as a background over which a captured image could be superimposed. 
     Turning now to FIG. 5, a block diagram of the preferred custom image sensor is illustrated. Preferably, the image sensor array is constructed in accordance with PCT Published Application No. WO 91/04633 to VLSI Vision Ltd. (&#34;VVL&#34;). A test circuit for such an image sensor array is disclosed in PCT Published Application No. 91/04498. This type of imaging array is available from VVL as part of a monochrome monolithic camera under the trade name ASIS-1070. Customization of the array is available to suit a particular application. 
     Briefly, unlike the CCD array of FIG. 2, the VVL image sensor array does not utilize vertical shift registers to clock the data to an output port. Rather, a relatively compact array of pixels is provided with a series of horizontal word lines and vertical bit lines. Each pixel in a row is connected to a common horizontal word line which, in turn, is connected to driver control circuitry such as a shift register. Each vertical column of pixels is connected to a vertical bit line which is coupled to one input of an associated switch sense amplifier. A second input of the switch sense amplifiers is coupled to a switching control circuit. The output terminals of the switch sense amplifiers are connected to a common read-out line. In operation, the signals from the photosensors are effectively sequentially multiplexed onto the read out line through the switch sense amplifiers under direction of the driver control circuitry and the switching control circuit. For a more detailed description of such an image sensor array and its operation, reference may be had to the published VVL patent applications. 
     FIG. 5 illustrates a modified version of the VVL ASIS-1070 which forms an image sensor 100. The sensor 100 includes an image array similar to the ASIS-1070 image array, together with all the timing logic to control the array. In addition to the imaging array, the sensor 100 includes an analog to digital converter and all the logic necessary to interface with static RAM and a microcontroller. The design of the image sensor array is intended to allow the use of a low pin count, low cost microcontroller to process the image data and control the printer. The sensor array interface supports a minimum pin count interface between a system microcontroller and the system peripherals by combining the address and data bus and decoding the high and low address locally to the peripherals. The image is stored in static RAM and is accessed using a multiplexed address/data bus to provide an interface with the microcontroller. 
     An array 101 of photosensors having an array size, for example, of 160×190 pixels, is provided with associated control circuits and switch sense amplifiers. In operation, row shift register 103 and column shift register 105 sequentially switch the data from the individual pixels through a bank of integrating amplifiers 107 to an output terminal 109. An eight bit analog to digital converter 111 digitizes the pixel data into eight bit data, and places the data in parallel on a data bus D 0  -D 7  through a bidirectional data latch 112. A fifteen bit presettable binary counter 113 is provided to generate address signals for the individual data words on address bus A 0  -A 7 , A 8  -A 14 . A RAM interface is provided for write enable (WE) and address strobe (AS) signals which control transfers between the image sensor array and the system memory. The interface between the image sensor array and the RAM is a simple read/write interface using the address strobe line to latch the current address and the write enable line to control the read or write mode. Since the speed of the microcontroller interface will be relatively slow in comparison to the rate at which data becomes available on the multiplexed address/data bus during a read operation, this simple interface permits the use of a low cost RAM. 
     A mode controller 117 is included to allow the image sensor array to operate in a selected one of several available operating modes, as discussed more fully below. Automatic exposure control logic and timer control circuit 121 are provided to control the sensor exposure time and to synchronize system operation. The use of electronic exposure control circuit 119, which operates over a relatively wide range, permits the camera to use a low cost fixed aperture lens. 
     Turning now to FIG. 6, the image sensor array is arranged in a system including a static RAM 125, a microcontroller 127, and a power supply unit 129. The microcontroller 127 can be, for example, a commercially available Zilog Z86C76 microcontroller. The system also includes a plurality of switches 131 for controlling the shutter as well as the special effects and tone settings. An optional effects cartridge 133 in the form of an insertable memory package may also be provided. An eight dot print head 135 is provided for printing hard copies of images on thermal paper. Alternatively, an ink-jet or other appropriate type of printer may be used. Movement of the print head and paper transport are controlled by a DC motor encoder 137. An audio/video output device 139 allows a user to monitor system operation through audible tones and/or a visible display such as an LCD screen or indicator lights. Additionally, a low cost electronic view finder could be provided which may be driven from either the microcontroller or the memory. The system may be powered by a battery 141, which may take the form, for example, of 6 AA cells (1.5 V nominal) or 6 NiCad rechargeable cells (1.2 V nominal). 
     In operation, the raw image is stored in the static RAM 125 by the image sensor array 100. The image may then be accessed using a multiplexed 8 bit address/data bus to provide the interface of the RAM 125 to the microcontroller 127 via the image sensor array 100. This interface allows the system to use a low pin count, low cost microcontroller such as the Zilog Z86C76. The microcontroller 127 processes the raw image data and converts it from the original 8 bit gray scale 190×160 resolution to a 2 bit gray scale 380×320 resolution image suitable for printing. The converted image is stored in the static RAM 125, and may be retrieved and combined with overlays and effects stored either internally within the microcontroller or externally in an optional effects cartridge 133. The effects cartridge 133 is preferably accessed using the same multiplexed address/data bus used for communications with the image sensor array 100 and the static RAM 125. 
     The microcontroller interface with the print subsystem includes a buffered 8 bit interface to the print head 135, and the DC motor control, optical encoder feedback and home sensor feedback 137. The thermal print head 135 is preferably a passive print head including eight dots each of approximately 35 ohms. The print head is controlled using an eight bit data latch to connect print data to the print head and to provide sufficient drive capability to place an NPN transistor into saturation to thereby turn on the individual print dots. The single transistor drive provides a benefit by reducing voltage requirements, in relation to Darlington pair transistors, to ensure maximum voltage across the print head. The print head interface writes to the latch by writing the required pattern to the address/data bus and driving the clock line of the latch high. If individual bits of the print head are required to be turned off earlier than others, then the latch can be rewritten with a new value at any time. At the completion of the print strobe time, all bits will be written to zero. 
     The DC motor interface is linked to the encoder feedback to provide speed control of the DC motor using a pulse width modulated (PWM) system. During the printing cycle, the microcontroller will control the speed of the print head by reference to rotary encoder pulses fed back from an IR phototransistor which senses the position of the print head. These pulses are used to pulse width modulate the DC motor to maintain a constant speed at the print head, and to synchronize the print head strobe with the print head position to ensure good print registration. In addition to the encoder feedback, a home position sensor will provide a feedback to allow a mechanical registration at the start of each print line. 
     The DC motor will be turned on at the maximum pulse width (controlled by an internal timer interrupt) until the time between the encoder pulses is within a set range. If the time between encoder pulses becomes too short, then the motor will be slowed by increasing the amount of OFF time in the pulse code modulation. Conversely, if the time is too long, then the motor speed will be increased by increasing the ON time of the modulation signals. The encoder feedback may be used to synchronize the print strobe to the motor position, with an absolute line to line registration being provided by the home sensor input. 
     The effects cartridge 133 interfaces with the microcontroller 127 through the same multiplexed address/data bus lines through which the image sensor array 100 and the microcontroller 127 interface. A separate effects cartridge enable line is provided to enable the cartridge interface. This allows the system to distinguish between accesses to the RAM 125 through image sensor 100 and accesses to the effects cartridge ROM pack. Internally, the effects cartridge 133 preferably includes two eight bit latches for address data and plurality of ROM memory locations. To access a particular byte stored within the ROM pack, the microcontroller writes the low address byte on the multiplexed address/data bus, followed by the high address byte, and will then read back the data. If consecutive bytes are required, then the minimum operation will be to rewrite the low address bytes and read back the data. In the preferred embodiment, the high and low address bytes allow up to a 16 bit addressing range within the cartridge. Thus, the cartridge may store up to 64 kilobytes of data for use by the microcontroller. 
     The microcontroller 127 interfaces with the user through a series of switches 131, including the shutter button, a repeat picture button, and the effects cartridge selector input. The shutter button is connected to both the power supply and the microcontroller so that when the system is powered down, pressing the shutter button will power the system and take a picture. If the system is already turned on, pressing the shutter will simply take another picture. The repeat picture button will operate only if pressed within a certain time period after the last picture was taken, for example, 2 minutes. Pressing the repeat picture button within that time period causes the system to reprint the picture with the current effects setting. The effects selection will consist of three binary coded inputs selected by a rotary selector. (See FIGS. 10 and 12). 
     During operation, the system will produce an audible sound generated from a sound effects device. Preferably, the sound may be produced with a simple single transistor amplifier with a moving coil loudspeaker incorporated in the audio/visual output device 139. It may also be possible to utilize different sound effects to indicate different points in the camera cycle. For example, one sound effect may be used to indicate the picture has been taken or that the camera is taking a picture, and a second sound effect may be used while the camera is processing the image and printing it out. As an alternative to the sound effects, or in addition to the sound effects, visual indicators such as LED lights or an LCD display may be used to indicate the camera operation. 
     The microcontroller interface allows control of the image sensor 100 and the static RAM 125 using a number of operation modes. These modes include image control modes and memory control modes. As noted above, the image sensor 100 mode is controlled by the microcontroller through instructions to the address/mode decode logic 117. The imager control modes allow the interface to instruct the image sensor 100 to capture a frame of image data and place the frame in static RAM 125, and to set the exposure value in exposure control 119 following processing of the picture. 
     The memory control modes allow the microcontroller 127 to access the external RAM 125 via the image sensor using the multiplexed address/data bus. In the simplest form, the read and write mode operates by the microcontroller writing the low address byte followed by the high address byte, and reading back data or write data. The additional memory control modes increase the system efficiency by avoiding the microcontroller rewriting the address bytes. For instance, an RMW mode allows the microcontroller to perform a normal read operation followed by a write operation to the same address. Auto read or write cycles allow the microcontroller 127 to read or write consecutive bytes of the RAM 125 while the binary counter 113 of image sensor 100 automatically increments the address. Thus, blocks of data may be read or written with only the first address being set. Such an arrangement is nearly as efficient as directly accessing the memory 125. 
     The basic software functions of the electronic camera are illustrated in flow chart form in FIG. 7. Prior to operating the camera, a user should set the three position tone control switch to the desired setting. In normal indoor use, the tone control should be set to medium. For operation in cold conditions such as outdoor winter use, the tone control should be set to dark; and in very hot weather, the light tone control setting should be used. As shown in FIG. 7, camera operation may be initiated by pressing the shutter button to power up the camera. The overall principle of the system is to capture the image as quickly as possible, apply all the standard enhancements and compression to the image, and store the print-formatted image back in the RAM 125 while printing an appropriate picture heading. Finally, the image is rotated as it is removed from the static RAM 125 and printed with the appropriate overlays, scaling, etc. being applied at that time. Finally, a picture footer such as a company logo may be printed. One benefit of the system is an ability to maintain the printable image in RAM 125 such that if another copy of the image is provided within the time-out period, the copies can be produced with alternative effects. A time-out period of approximately two minutes may be used to help conserve battery life. 
     Once the shutter button is pressed, an electronic exposure control is performed. The exposure control adjusts the pixel exposure time to compensate for reflected light from the main subject of the exposure, and allows the camera to use a low cost fixed aperture lens. The function of the electronic exposure control is discussed more fully in conjunction with FIG. 9. 
     The objective of the image processing software is to convert the 8 bit gray scale 160×190 image captured by the image sensor 100 into a 2 bit gray scale image at 320×380 resolution, with additional image enhancement to tailor the image for the print subsystem. The image processing consists of several main stages: contrast enhancement of the original data to increase the printed image contrast; magnification of the original image to 320×380 resolution for the printer; dithering and thresholding of the magnified image to reduce each pixel from 8 bit gray scale resolution to 2 bit gray scale resolution; and compression of the image to 4 pixels per byte to allow the image to be stored within the same 30,400 byte image areas as the original 8 bit image. 
     Since the hardware interface with the external RAM 125 is optimized to allow access to consecutive bytes of stored data, the image processing software preferably utilizes as much internal microcontroller RAM as is available to load pieces of the image, process them, and store them back into the external RAM 125. Assuming, for example, that 160 bytes of internal RAM are available in the microcontroller 127, a block of 40 bytes of original image data may be retrieved from the external RAM 125 for processing. Following magnification, the 40 byte block of image data fills an 80 byte by 2 row block of data, for a total of 160 bytes. After dithering, thresholding and data compression, each 40 bytes of original data becomes two rows of compressed data of 20 bytes each. 
     Contrast enhancement is applied to the original 40 bytes of image data as they are copied from the external RAM 125 to the microcontroller internal RAM. The contrast enhancement modifies the raw image data by applying a predetermined conversion function to map the raw image data into enhanced contrast data. Magnification increases the image size by converting each pixel of information into four pixels. In other words, the image data for a single pixel in the 160×190 original image is assigned to 2×2 array of pixels in the 320×380 resolution array. The dither algorithm reduces the 8 bit, 256 gray level original image data to 2 bit, 4 gray level data. Preferably, the dither algorithm is based on a Floyd Steinberg Dither algorithm which produces a black and white output. To achieve the reduction in gray scale values, the 8 bit gray scale values X of the image data are compared against the thresholds shown in the following table, and the 2 bit gray scale value is set accordingly. 
     
         ______________________________________Original 8 Bit Resulting 2 BitGray Scale Value          Gray Scale Value______________________________________ 0 &lt; X ≦ 42          0 42 &lt; X ≦ 127          1127 &lt; X ≦ 212          2212 &lt; X ≦ 255          3______________________________________ 
    
     The resulting 2 bit data is packed into four pixels per byte and stored in the external static RAM 125. To avoid discrepancies in the dither calculation of image data in adjacent blocks of image data, the image data bytes at the right of each processed block are maintained in 8 bit format and are stored separately for use with the adjacent blocks when they are subsequently processed. 
     The printer control software drives a single DC motor to scan the print head and advance the paper. Synchronized with the print head position, the printer control software controls the data on the print head and the strobe time for the print head. The printer control software runs in parallel with the image processing software so that a header may be printed during image processing. Thus, the printer software is preferably operated under interrupt control. 
     The DC motor control is preferably a pulse width modulated (PWM) type control system with the feedback performed using a single rotary encoder system. The PWM output is produced with an internal timer set over a range of values dependent on the speed error. The speed error is calculated by the time taken between each encoder pulse. The basic printer control system is shown schematically in FIG. 8. 
     Print head control is performed by synchronizing the absolute print head position, using the rotary encoder, with the print data. As the print head moves, the encoder is used to synchronize the data being sent to the print head such that every line printed is registered to the previous line. To maintain the registration, the home sensor input is used to provide an absolute print head position feedback at the start of each line. 
     The print head ON time is controlled using a series of gray scale tables and an offset provided by the tone control position. The start of the ON time for all print dots is synchronized to the encoder feedback. The duration of the ON time for each pixel of the current line is chosen with reference to the required gray level for the pixel and 50% weighting for the gray level of the previous pixel. This ON time is offset with a fixed value determined by the tone control switch position to compensate for ambient temperatures. 
     As noted previously, special effects are applied to the print-formatted image stored in external RAM 125 as the image is retrieved for printing. A number of special effects are stored in microcontroller ROM and are available with the standard camera. For example, typical effects might include a &#34;dollar bill&#34; overlay to permit a user to print a friend&#39;s face on play money; an aquarium overlay; a speech bubble overlay; and a picture frame overlay. Additional effects may be provided by a ROM module in the optional plug-in effects cartridge 133. For example, image scaling factors may be included in a special effect to produce a &#34;fun house mirror&#34; image. To determine the presence of the plug-in effects cartridge 133, a two byte signature is included in the cartridge to be read back at power up. If a cartridge is present, the cartridge effects will be used. Otherwise, the system will default to internal effects. 
     Each effect will include one or more of the following parts: overlays which are compressed using run length compression; contrast modifiers to modify the contrast algorithm; exposure modifiers to change the average exposure value for long exposure type effects; x-axis image scaling factors for an entire image to produce a stretched or compressed image; x,y coordinate image offsets to allow the entire picture to be offset within an overlay; line scaling factors to be applied line by line; and line offsets for each image line to be used with the line scaling factors. Other possible features which could be provided through the effects cartridge include: a self timer to allow a user to take a self portrait or the like; electronic zoom which expands the center of the captured image to fill the entire picture area; a mirror effect provided by printing only half of the captured image and then repeating this image in reverse; and fading by a complex overlay so that the edge of the picture fades to white. It should be noted that contrast and exposure modifiers will affect the original image and thus will not be adjustable when using the repeat picture functions. 
     The effect to be applied, if any, is preferably selected by the user through a rotary switch on the camera housing. The position of the rotary switch sets three binary coded inputs which are read by the microcontroller 127. Such a rotary switch is shown in FIGS. 10 and 12. Preferably, a random setting may also be provided whereby the microcontroller randomly selects one of the available special effects for printing. 
     Turning now to FIG. 9, the exposure control is performed as soon as the shutter button is pressed. The electronic exposure control algorithm performs a first pass using a random line within the captured image. This allows the software to calculate an approximate exposure value without waiting for the entire frame to be captured. This exposure value can then be written directly into the exposure register in exposure control 119 of the image sensor 100 and another frame started. If the random line of the new frame is within the required exposure range, the center of the frame will be used to calculate a more accurate exposure value. If necessary, another frame will be requested to improve the image. When the exposure is within tolerance, the captured image will be further processed and printed. 
     The exposure calculation may be performed by calculating an average 8 bit gray scale level of all the pixels in the area under consideration. The exposure register contents will be modified from the error between the calculated average gray scale level and the midpoint 8 bit value 128. As a first approximation, the exposure register contents will be set to a center value on power up, and will be modified up or down from that value for a more accurate exposure at the particular light level. 
     For improved results, the exposure setting may be center weighted within the picture frame such that the exposure will be calculated with respect to the object at the center of the frame. This technique provides several advantages. First, it helps ensure that the exposure is correct for the main subject of the image. Also, calculation of the exposure value will only require a limited number of pixels to be considered and therefore will be much faster. Additionally, the effect of back-lighting/front-lighting will be minimized as only the main subject of the picture will be considered by the algorithm. 
     The housing for the camera is illustrated in FIGS. 10-13. Referring to the frontal view of FIG. 9, the housing includes a top molding 200 and a bottom molding 202 which may be formed of an appropriate plastic material. A knurled lens ring/effects switch 204 is provided for selecting a special effect from the optional special effects ROM pack 206 or, if no special effects pack is included, from the standard special effects stores in the ROM of the system microcontroller. Rotation of the lens ring 204 sets three binary coded inputs to be decoded by the microcontroller 127. Preferably, a visual indication such as a pointer arrow is provided on the lens ring to indicate the current effects setting. 
     The upper molding 200 preferably includes a clear plastic cover 208 for the printer paper output. The upper molding 200 and the lower molding 202 are each provided with peripheral gripping portions. A shutter button 210 is arranged on a gripping portion of the upper molding. Additionally, a picture repeat button (not shown) may be provided on the upper molding 200. The top portion of the upper molding 200 receives a view finder molding 212, which provides viewing apertures 214 and 216. The viewing apertures 214 and 216 are preferably covered with clear eye piece moldings 214A and 216A, respectively. 
     A rear view of the camera housing is illustrated in FIG. 11. The view finder molding 212 includes a pair of eye pieces 214B and 216B associated with viewing apertures 214 and 216, respectively. A connector 218 is provided for attaching a carrying strap (not shown). The rear portion of the special effects ROM pack 206 includes a recessed gripping portion 206A to facilitate removal from the camera body. 
     Referring to the side view of FIG. 12, the lower molding 202 includes a paper cassette cover 220. Thermal printing paper may be provided in a replaceable cassette which is received in an aperture of the system printer mechanism. A typical paper cassette would include sufficient paper to supply approximately 50 hard copy prints. As shown in the bottom view of FIG. 13, the lower molding 202 includes a battery cover 222 in addition to the paper cassette cover. 
     The principles, preferred embodiments and modes of operation of the present invention have been described in the foregoing specification. The invention which is sought to be protected herein, however, is not to be considered as limited to the particular forms disclosed, since these are to be regarded as illustrative rather than restrictive. Variations and changes may be made by those skilled in the art without departing from the spirit of the invention.