Image-capturing devices, such as digital cameras, are often connected directly to an imaging device, such as a printer, for outputting hard-copy images corresponding to image data stored on the image-capturing devices. This typically involves including a host controller, e.g., a USB (Universal Serial Bus) host controller, in the imaging device so that the image-capturing devices can communicate with the imaging device. A host controller can add material cost, firmware complexity, and testing cost to the imaging device. Moreover, additional memory is often included that can further increase the cost of the imaging device.
In the following detailed description of the present embodiments, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific embodiments that may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice disclosed subject matter, and it is to be understood that other embodiments may be utilized and that process, electrical or mechanical changes may be made without departing from the scope of the claimed subject matter. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the claimed subject matter is defined only by the appended claims and equivalents thereof.
Embodiments of the disclosure enable users to connect an image-capturing device, such as a digital camera, to an imaging device, such as a printer, and to print images from the imaging device. The imaging device is connected to a host, such as a personal computer. Connecting the imaging device to the host enables processing-power intensive and memory-intensive operations to be performed by unused memory and processing power of the host. This reduces the memory that would be included in the imaging device and reduces the complexity of a host controller in the imaging device, or in some embodiments may allow for an imaging device that would not include a host controller, thereby reducing the cost of the imaging device without a substantial increase in the time for the image processing operations associated with printing the image. For some embodiments, the memory requirements of the imaging device are reduced so that the memory can be embedded in an ASIC.
For one embodiment, imaging device 100, receives data from host device 110. This data would include pre-rendered image data and commands to control the imaging device hardware. In some embodiments, the entire compute-intensive image rendering processes could be done in the host. Controller 102 interprets the image data and converts it into signals used to control print engine motors and place ink drops on the media. The printable image is provided to print engine 104 to produce a hard-copy image on a media sheet. For another embodiment, controller 102 may be an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or the like. For another embodiment, the memory of imaging device 100 is embedded in the ASIC.
For one embodiment, controller 102 is connected to a hub integrated circuit 106, such as a USB (Universal Serial Bus) hub integrated circuit. One suitable hub integrated circuit is a Cypress CY7C65640 from Cypress Semiconductor Corp. (San Jose, Calif., USA). For another embodiment, hub integrated circuit 106 may be integrated within controller 102. The hub integrated circuit 106 is also connected to image-capturing device 120 via a port 108, such as a USB port, of imaging device 100 and to host device 110 via a port 109, such as a USB port, of imaging device 100, and a port 112, such as a USB port, of host device 110.
For one embodiment, hub integrated circuit 106 receives image data from image-capturing device 120 and distributes it to the host device 110. The host receives the image data and performs processing steps that are involved in printing the image. These processing steps may include but are not limited to jpeg decompression, scaling, rotation, thumbnail and n-up layout, color-matching, half-toning, swath-cutting, red-eye reduction, image enhancement, and error correction. Some embodiments may use the host device for a subset of these processes and complete the remaining processes in the imaging device without substantial use of the host device. Controller 102 receives the processed image data from host device 110, for one embodiment, converts the image data into a printable image, and generates the signals used to control print engine motors and place ink drops on the media. The printable image is provided to print engine 104 to produce a hard-copy image on a media sheet.
In one embodiment, the image-capturing device 120 would be a memory device, such as a flash memory “thumb drive” that is connected to a host port, such as a USB host port, of the imaging device.
In another embodiment, the image capturing device 120 could be an external card-reader device, which would enable camera memory cards to be read and the image data transferred through the hub circuit 106 in the same manner as if the data were coming directly from a image capture device.
In another embodiment, the image-capturing device 120 could be a wireless device, including but not limited to those which use Bluetooth or WiFi protocols. This would enable the imaging device to receive image data from a wireless device, including but not limited to cell phones, PDAs, or external wireless host devices.
When image-capturing device 120 is connected to imaging device 100, host device 110 performs a device enumeration (or an identification/initialization process) to verify that the image-capturing device connected through the hub circuit 106 is a valid USB device, and to identify its Vendor ID, and its Product ID. During enumeration, the host will attempt to load initializing routines (drivers) that enable image-capturing device 120 to interact with host device 110 and to interact with imaging device 100 via host device 110. For one embodiment, host device 110 activates a driver for controlling imaging device 100, e.g., a print driver, installed on host device 110 in response to a print request from image-capturing device 120 that is initiated by inputs to image-capturing device 120 by the user thereof. The print driver in turn provides the data processing for the imaging device 100 to print images corresponding to the image data from image-capturing device 120. This processing may include, but is not limited to, jpeg decompression, scaling, rotation, thumbnail and n-up layout, color-matching, half-toning, swath-cutting, red-eye reduction, image enhancement, and error correction.
For one embodiment, host device 110 includes a host communications protocol, such as a USB host communications protocol (e.g., PictBridge), that enables the enumeration and enables the user of image-capturing device 120 to communicate with host hardware, such as USB host hardware, within host device 110 via a user interface of image-capturing device 120 when host device 110 is on. For example, the user will be able to identify pictures to be printed and select options (size, number copies, cropping, etc.) from the user interface of image-capturing device 120. For another embodiment, host device 110 performs color matching, image processing, image rotation, image enhancement (red-eye reduction, luminance and chroma enhancement, etc.), etc. in response to user inputs to image-capturing device 120. This interaction by the user is managed by the driver software in the host device 110, in concert with firmware in the imaging device 100. These processes may be allocated to either the driver software in the host device 110 or the firmware in the imaging device 100, depending upon product useablity goals, memory usage, and processing operations to be performed.
Image-capturing device 120 sends print jobs to host device 110 in response to user inputs to image-capturing device 120. Host device 110 downloads image data from image-capturing device 120 and sends them to imaging device 100 for printing. For another embodiment, host device 110 rasterizes the image data before sending it to imaging device 100 for printing. For another embodiment, host device 110 decompresses the image data after downloading it and before rasterizing it.
For some embodiments, a display of image-capturing device 120 is echoed to a monitor connected to host device 110, such as a computer monitor. For another embodiment, host device 110 supports a USB “high speed” (e.g., 480 Mbits/sec) bandwidth. This enables imaging device 100 to support a high-speed bandwidth for image-capturing devices that support USB high speed.
Although specific embodiments have been illustrated and described herein it is manifestly intended that the scope of the claimed subject matter be limited only by the following claims and equivalents thereof.