Battery operated imaging devices having an image sensor and graphical display are increasingly popular. Cell phones and personal data assistants, as well as stand alone digital cameras, are a few examples of such devices incorporating a digital imaging device and electronic display.
As more such devices enter the market, it is increasingly important to provide increased capability and functionality to provide distinguishing features. Unfortunately, many functional improvements require additional hardware accessories, which adversely affect the size, power consumption, and price of the imaging device. It would therefore be desirable to provide enhanced functionality without significantly affecting the cost of production.
Range finders are very popular among certain sporting enthusiasts, including hunters, golfers, and others. Range finders typically include an optical device with which the user can target a certain object, and some additional device to determine the distance to the target. Various range finders on the market use sonar, laser, or radar to determine the distance to the target by calculating the time it takes for a signal to reach the object and reflect back to the range finder. While quite accurate, advanced range finders are quite expensive. It would be desirable to incorporate a range finder having acceptable accuracy into a handheld imaging device without significantly affecting the cost of the device.
Broadly speaking, the present invention fills these needs by providing a graphics controller and imaging device having range-finding functionality. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, or a method. Several inventive embodiments of the present invention are described below.
In one embodiment, a method for determining a distance to an object is described. In the method, a size of the object is determined, and an electronic image of the object is captured and displayed on a display device. The size of the image of the object is determined. The distance to the object is calculated using the size of the object, a focal length of the imaging module, and the size of the image of the object. The distance to the object is then displayed on the display device.
In another embodiment, a graphics controller is provided for calculating a distance to an object. The graphics controller includes a camera interface receiving images from an imaging module, a display interface for displaying an image on a display, a host interface for interfacing with a host CPU, a plurality of registers, and distance calculation logic. The distance calculation logic calculates the distance to the object from operands stored in the plurality of registers. The distance to the object is stored back into one of the plurality of registers. The operands include a size of the object and a size of the image of the object.
In yet another embodiment, a device for determining a distance to an object is provided. The device includes an imaging module, an electronic display for displaying an electronic image, a user input device, a host CPU in communication with user input device, and a graphics controller. The imaging module has a lens and an image sensor, the lens focusing an image onto the image sensor. The graphics controller includes a camera interface receiving images from the imaging module, a display interface for displaying an image on the display, a host interface for interfacing with the host CPU, a plurality of registers, and distance calculation logic. The distance calculation logic calculates the distance to the object from operands stored in the plurality of registers, and stores the distance to the object back into one of the plurality of registers. The operands include a size of the object, and a size of the image of the object.
The advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, and like reference numerals designate like structural elements.
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well known process operations and implementation details have not been described in detail in order to avoid unnecessarily obscuring the invention.
The timing control signals and data lines, such as line 141 communicating between graphics controller 140 and display 160, are shown as a single line but may in fact be several address, data, and control lines and/or a bus. All communication lines shown in the figures will be presented in this manner except as noted to reduce the complexity and better present various novel aspects of imaging device 100.
Imaging module 110 includes an image sensor positioned adjacent to a lens (as described below with reference to
Graphics controller 140 receives image data from imaging module 110, and, in accordance with instructions from host CPU 165, can send the image data to display 160 or host CPU 165. Graphics controller 140 may include image processing capabilities such as image compression technology for converting image data received from imaging module 110 into compressed image data, such as, for example, a Joint Photographic Exert Group (JPEG) format. Graphics controller 140 and other hardware devices incorporate logic typically designed using a hardware description language (HDL) or other means known to those skilled in the art of integrated circuit design. The generated circuits will include numerous logic gates and connectors to perform various operations and does not rely on software instructions.
Display 160 can be any form of display capable of displaying an image. In one embodiment, display 160 comprises a liquid crystal display (LCD). However, other types of displays are available or may become available that are capable of displaying a digital image that may be used in conjunction with imaging device 100.
Host CPU 165 performs digital processing operations and communicates with graphics controller 140. In one embodiment, host CPU 165 comprises an integrated circuit capable of executing firmware retrieved from memory 167. This firmware provides imaging device 100 with functionality when executed on host CPU 165. Host CPU may also be a digital signal processor (DSP) or other processing device.
Memory 167 may be internal or external random-access memory or non-volatile memory. Memory 167 may be non-removable memory such as flash memory or other EEPROM, or magnetic media. Alternatively, memory 167 may take the form of a removable memory card such as ones widely available and sold under such trademarks as “SD RAM,” “COMPACT FLASH,” and “MEMORY STICK.” Memory 167 may also be any other type of machine-readable removable or non-removable media. Memory 167 may be remote from imaging device 100. For example, memory may be connected to imaging device 100 via a communications port (not shown). For example, imaging device 100 may include a BLUETOOTH® interface or an IEEE 802.11 interface, commonly referred to as “Wi-Fi.” Such an interface may connect imaging device 100 with a host (not shown) for uploading image data to the host. If imaging device 100 is a communications device such as a cell phone, it may include a wireless communications link to a carrier, which may then store data in hard drives as a service to customers, or transmit image data to another cell phone or email address. Memory 167 may be a combination of memories. For example, memory 167 may include a removable memory card for storing image data, and a non-removable memory for storing data and firmware executed by host CPU 165.
Host CPU 165 is also in communication with user input device 150. In one embodiment, user input device 150 comprises a keypad. Alternatively, user input device 150 may comprise any number of alternate means, such as a joystick, a remote control, touch-screen, sound or voice activation, etc. User input device 150 may further include a mode selection dial or graphical interface buttons for selecting and/or manipulating items on display 160.
Imaging device 100 can operate in a picture taking mode and a range-finding mode. In the picture-taking mode, a photographer may save a single image by orienting imaging device 100 such that a desired image is aligned with the image sensor of imaging module 110. Graphics controller 140 then passes resulting image data to either or both of display 160 and host CPU 165 for storage in memory. Imaging module 110 and/or graphics controller 140 may include image processing circuitry for compressing the image using an image compression algorithm such as the well known JPEG image format. In one mode of operation, display 160 is continuously updated with an image most recently received by imaging module 110. When the user desires to send data representing a current image to memory 167, the user will interact with user input device 150 causing an image received by imaging module 110 to be passed to a frame buffer in graphics controller 140, from which host CPU 165 will access and store the image in memory 167. Instead of or in addition to taking single still images, imaging device 100 may be capable of generating a video stream. In this case, graphics controller 140 may receive an image periodically, e.g., 30 times a second, which is then encoded using Moving Picture Experts Group (MPEG) or other encoding technology and stored in memory 167.
In the range-finding mode, the user takes a picture of an object having a known size, e.g., height, but which is at an unknown distance. In one embodiment, the user enters the known height, or selects the object from a list of objects having known heights and then positions object-top and object-bottom cursors overlaying the image in the display. Once the object-top and object-bottom cursors are positioned, imaging device 100 can calculate the approximate distance to the object as described in further detail below. In another embodiment, the user identifies the width of the object by positioning object-left and object-right cursors.
It should be noted that graphics controller 140 is capable of displaying background and overlay images from image memory 145 in real time, such that changes written to image memory 145 are reflected in real time on display 160. In the range-finding mode, a single image is captured and held in background memory 146 and the user is permitted to manipulate object-top and object-bottom cursors, which are drawn by host CPU 165 and displayed using overlay memory 148.
M=DI/DO=HI/HO [Eq. 1]
When the object distance is much greater than the image distance, the image distance equals the focal length. This is equivalent to setting the focus of a camera to infinity. For a standard 35 mm focal length camera lens, this approximation becomes very accurate even a few meters away. Thus we can solve Equation 1 for the distance to the object DO and substitute the image distance DI with the focal length f:
DO=f*(HO/HI) [Eq. 2]
Therefore, by knowing the focal length of imaging device 110, the height of an object 202, and the height of the image of the object 204, then the distance to the object DO can be calculated.
Returning to
It is possible to include other registers as well. For example, if the imaging device has zoom functionally, a register can be provided to reflect the current effective focal length.
Next, in operation 258, the top and bottom cursors are displayed as, for example, shown in
In operation 262, operands are written to registers 156 of display controller 140 and distance calculation logic 158 is triggered to calculate the distance to the object and store the result in one of registers 156 (
With the above embodiments in mind, it should be understood that the invention may employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared and otherwise manipulated. Further, the manipulations performed are often referred to in terms such as producing, identifying, determining, or comparing.
Any of the operations described herein that form part of the invention are useful machine operations. The invention also relates to a device or an apparatus for performing these operations. The apparatus can be specially constructed for the required purpose, or the apparatus can be a general-purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general-purpose machines can be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data, which can be thereafter be read by a computer system. The computer readable medium also includes an electromagnetic carrier wave in which the computer code is embodied. Examples of the computer readable medium include hard drives, network attached storage (NAS), read-only memory, random-access memory, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes and other optical and non-optical data storage devices. The computer readable medium can also be distributed over a network-coupled computer system so that the computer readable code is stored and executed in a distributed fashion.
Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.