Abstract:
An optical module for use in a device includes an array of pixels configured to capture image data and a memory. The memory is configured to store identification information associated with said optical module. The identification information enables retrieval of information for controlling said optical module from a source outside said device.

Description:
BACKGROUND 
       [0001]    1. Technical Field 
         [0002]    Some embodiments relate to an optical module, a device incorporating an optical module and a method. 
         [0003]    2. Description of the Related Art 
         [0004]    Devices such as mobile phones, digital cameras and other similar devices may incorporate solid state image sensors. 
         [0005]    Image sensors using pinned photodiode pixels, for example implemented in CMOS architecture, are known. Such image sensors may have both the image sensing element (pixels) and the image processing circuitry included in a chip or chipset which can be manufactured using CMOS techniques. There is a trend for the arrays of pixels to become larger. There is a desire for the image quality to be improved by for example using calibration information. 
       BRIEF SUMMARY 
       [0006]    According to an aspect, there is provided an optical module for use in a device comprising: an array of pixels configured to capture image data; and a memory, said memory configured to store identification information associated with said optical module, said identification information enabling retrieval of information for controlling said optical module from a source outside said device. 
         [0007]    The identification information may uniquely identify said optical module. 
         [0008]    The identification information may comprise a code. 
         [0009]    The array of pixels may comprise an array of photodiodes. 
         [0010]    The memory may comprise a non-volatile memory. 
         [0011]    In some embodiments, said optical module may comprise an integrated circuit, a chip set, a die or a set of dies. 
         [0012]    According to another aspect, there is provided a camera comprising an optical module as described above. 
         [0013]    According to another aspect, there is provided a device comprising an optical module described above and a memory, said memory configured to store said information for controlling said optical module. 
         [0014]    The information for controlling said optical module may comprise calibration data. 
         [0015]    The information for controlling said optical module may comprise one or more of the following: 
         [0016]    Voltage to be used during operation of the array; 
         [0017]    Information on faulty pixels; 
         [0018]    Information defining how the array responds to changes in temperature; 
         [0019]    Information defining how the optical module responds to changes in colour temperature of illumination; 
         [0020]    Information on shading and vignetting of the optical module; 
         [0021]    Information on colour shading of said optical module; 
         [0022]    Information on optical distortion of the optical module; 
         [0023]    Information of an offset of an optical axis of the optical module; 
         [0024]    Information on a dark current of the optical module; 
         [0025]    Information on a dark current shading of the optical module; 
         [0026]    Information on image stitching requirements; 
         [0027]    Information on depth mapping; and 
         [0028]    Information on stereoscopic alignment. 
         [0029]    According to another aspect, there is provided a method comprising: accessing from a memory of an optical module identification information associated with said component; causing the obtaining of control information associated with said identification information, said control information for controlling the optical module; and 
         [0030]    storing said control information in a memory of a device in which said optical module is provided. 
         [0031]    According to another aspect, there is provided a method comprising: receiving from a memory of an optical module identification information associated with said optical module; and providing control information associated with said identification information, said control information for controlling the optical module. 
         [0032]    The optical module may be as described above. 
         [0033]    The information for controlling said optical module may comprise calibration data. 
         [0034]    The information for controlling said optical module may comprise one or more of the following: 
         [0035]    Voltage to be used during operation of the array; 
         [0036]    Information on faulty pixels; 
         [0037]    Information defining how the array responds to changes in temperature; 
         [0038]    Information defining how the optical module responds to changes in colour temperature of illumination; 
         [0039]    Information on shading and vignetting of the optical module; 
         [0040]    Information on colour shading of said optical module; 
         [0041]    Information on optical distortion of the optical module; 
         [0042]    Information of an offset of an optical axis of the optical module; 
         [0043]    Information on a dark current of the optical module; 
         [0044]    Information on a dark current shading of the optical module; 
         [0045]    Information on image stitching requirements; 
         [0046]    Information on depth mapping; and 
         [0047]    Information on stereoscopic alignment. 
         [0048]    According to another aspect, there is provided an apparatus comprising: means for receiving from a memory of an optical module identification information associated with said optical module; and means for providing control information associated with said identification information, said control information for controlling the optical module. 
         [0049]    According to another aspect, there is provided an apparatus comprising: an interface configured to receive from a memory of an optical module identification information associated with said optical module; and one or more processors configured to provide control information associated with said identification information to said interface for output, said control information configured to control the optical module. A computer program comprising program code means adapted to perform the method(s) may also be provided. The computer program may be stored and/or otherwise embodied by means of a carrier medium. 
         [0050]    In the above, many different embodiments have been described. It should be appreciated that further embodiments may be provided by the combination of any two or more of the embodiments described above. 
         [0051]    Various other aspects and further embodiments are also described in the following detailed description and in the attached claims. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         [0052]    For a better understanding of some embodiments, reference is now made by way of example only to the accompanying drawings in which: 
           [0053]      FIG. 1  shows schematically part of an electronics device in which some embodiments may be provided; 
           [0054]      FIG. 2  shows the device of  FIG. 1  coupled to a data server; 
           [0055]      FIG. 3  shows a first example of a camera used in the device of  FIG. 1 ; 
           [0056]      FIG. 4  shows a second example of a camera used in the device of  FIG. 1 ; and 
           [0057]      FIG. 5  shows a method of an embodiment. 
           [0058]      FIG. 6  shows steps that may be carried out for each individual optical module to determine and store the unique calibration information for each optical module in its corresponding device. 
           [0059]      FIG. 7  shows steps that may be performed during updating/patching of the calibration information. 
           [0060]      FIG. 8  shows an apparatus that may be used to achieve the process of  FIG. 6 . 
       
    
    
     DETAILED DESCRIPTION 
       [0061]    Reference is made to  FIG. 1  which shows a device  1 . The device  1  is, in this embodiment, a mobile phone. However, it should be appreciated that embodiments may be used in any other suitable device incorporating a camera. The device may be a camera, a smart phone, a tablet device or any other suitable device. Some embodiments may be used with stand-alone cameras. 
         [0062]    The mobile phone  1  has a processor  4 . The processor  4  is configured to control a display  12 . The processor  4  is also configured to control an audio function  8 . The audio function  8  may comprise a speaker and/or microphone and associated electronics. The processor  4  is configured to communicate with a transceiver  10 . The transceiver  10  is configured to cause signals to be transmitted and to process received signals. The transceiver  10  may be coupled to an antenna. The transceiver  10  may carry out processing on the received signals and/or transmitted signals. For example, the transceiver  10  may down convert radio-frequency signals to baseband and/or convert baseband signals to radio-frequency for transmission. The processor  4  is also configured to receive an input from an input device  4 . The input device may be a keyboard and/or touchscreen or the like. The processor  4  is also configured to communicate with a memory  6 . The memory  6  may is further configured to store configuration information for controlling the optical module. Hence, the memory  6  may further be referred to as the configuration information memory  6 . The processor  4  is configured to communicate with a camera  2 . The device  1  further comprises an interface  15  for communication with external equipment such as servers. The device  1  may transmit identification information and receive configuration information via this interface  15 . 
         [0063]    It should be appreciated that the processor  4  may comprise a single processor or a set of processors. Likewise, the memory may comprise a single memory or a set of memories  6 . 
         [0064]    The camera may be an optical module or include an optical module. 
         [0065]    Reference is made to  FIG. 3  which shows schematically the camera  2  of  FIG. 1 . The camera  2  is provided on a single chip or die. The camera comprises an array  20  of pixels. The array  20  of pixels comprises light sensitive photo diodes which are configured to capture an image. Alternatively or additionally the array may capture other information such as distance information and/or light level information. 
         [0066]    The captured image from the array  20  is in the analogue domain and is converted to the digital domain by an analogue to digital converter ADC  22 . The camera  2  comprises an image processor  24  which is configured to process the captured image. The image processing may comprise one or more of colour processing, data formatting, compression and the like. The camera  2  has an output  26  which is configured to provide an output image. The output image may be a still image or a video image. The chip or die is also provided with a non-volatile memory  28  for permanent data storage. In some embodiments, the image processor function may be at least partially or completely omitted from the chip or die providing the camera or optical module and instead be provided by the device in which the optical module or camera is incorporated. 
         [0067]      FIG. 4  shows an alternative embodiment. In this embodiment, the camera  2  comprises a three chip or die arrangement. On one chip or die, the pixel array  20 ′ is provided along with the analog to digital converter  22 ′. On the second die or chip, the image processor  24 ′, and output  26 ′are provided. The three chips or die are arranged to communicate. A memory  28 ′ is provided on a third die. In some embodiments, the camera or optical module may be regarded as being provided by the die or chip having the array and ADC and the chip or die having the memory. The image processor and output may be provided by the device in which the camera or optical module is incorporated. 
         [0068]    In some embodiments, a dual die or chip arrangement may be provided. The memory may be provided on one or other of the dies shown in  FIG. 4 . 
         [0069]    There is an increasing trend for more individual calibration of cameras for, for example, mobile phones. It should be appreciated that the demand for arrays with ever increasing numbers of pixels has meant that the amount of calibration information required may be increased. The requirement for increasing amounts of calibration data may be in order to satisfy demands for increased image quality. 
         [0070]    There is an increasing trend for each individual camera provided in a mobile phone or the like to be individually calibrated. This is a result of the demand for increased image quality 
         [0071]    Currently, the calibration data is stored in the camera in a non-volatile memory. This is read by the image processor at camera boot time and the appropriate image quality setting changes are made. However, as the demands for increasing image quality and individual calibration of the camera increases, more and more calibration data is being used. By way of example only, a few years ago less than 100 bits of data may have been stored in the memory of the camera. Now, data of the order of kbits may be used. 
         [0072]    Non-volatile memory is, in some embodiments, not particularly efficient in terms of silicon area and programming time for larger memories, which may be used in order to accommodate the larger quantity of calibration values. 
         [0073]    Typically, cameras such as discussed previously are integrated into devices which have a relatively high level of permanent data storage. Accordingly, in some embodiments, the non-volatile memory  28  in the camera chip of  FIG. 3  or memory  28 ′ of  FIG. 4  is configured to store identity information. The identity information can take any suitable form and may for example be a unique serial number. In some embodiments, the identity information is unique to the chip or die. In other embodiments, the identity information may identify a batch with which the chip or die is associated. 
         [0074]    Reference is made to  FIG. 2 . As shown in  FIG. 2 , the device  1 , during the phone build stage is configured such that the identification information is read from the memory  28  or  28 ′ of the camera. The device may be connected via a data connection  16  to a server  18 . The server may be a local server or a remote server. Accordingly, the data connection can take any suitable form such as a wired or wireless connection. In some embodiments, the data connection may be an Internet or similar connection. In some embodiments, the identification information is downloaded from the camera to a further device and that further device is configured to connect to the server  18  via the data connection. 
         [0075]    The server  18  has an interface  30 . The interface receives the identification information and will output the calibration data. The server has one or more processors  32  which in response to receiving the identification information will use that identification information to access one or more data stores  34  to retrieve the associated calibration information. Responsive to receiving the identification information, the server  18  will thus provide calibration data associated with that identification number. 
         [0076]    The memory may be a memory in the server or separate from the server. 
         [0077]    The calibration data is then stored in the memory of the device, for example memory  6 . The calibration data may be used by the image signal processor to correct for part to part variation of the image. The image signal processor may be on the camera, but more commonly it is in the baseband or separate hardware accelerator. 
         [0078]    The data may be received directly by the device or may be via a further device. Thus the memory in the camera need only be relatively small. This is because in some embodiments, the camera memory only needs to store the identification information with the calibration information being stored in another memory of the device. 
         [0079]    Reference is made to  FIG. 5  which describes a method in more detail. 
         [0080]    In step S 1 , the code or identification information is obtained from the camera or sensor chip. 
         [0081]    In step S 2 , a request is sent to a data server with the code. This may be via the data connection  16 . 
         [0082]    In step S 3 , a response is obtained with the calibration and/or control information. 
         [0083]    In step S 4 , the received information is stored in the memory  6 . 
         [0084]    In step S 5 , the stored calibration information is used to control one or more of the camera or sensor options. 
         [0085]    It should be appreciated that the obtaining of the code from the camera may be responsive to the building of the device. 
         [0086]    In some embodiments, a request for the code may be received from the server and the code or identification information is sent as a response to that request. 
         [0087]    In some embodiments, the request for the code may be generated by and/or received from one or more entities in the device incorporating the camera or optical module. 
         [0088]    Some embodiments may provide one or more the following advantages. 
         [0089]    The amount of non-volatile memory space on the camera chip or chips may be reduced. 
         [0090]    Some embodiments may have a reduced test time as test results from a particular camera chip may be fully processed off line to provide more accurate calibration information. For example, the individual chip may be subject to test data and responsive to analysis of that test data, the appropriate calibration for that camera may be determined off line. Alternatively and/or additionally, test time may be reduced by programming the unique serial number in parallel to the calculation of the other parameters. Some embodiments may have a reduced non-volatile memory programming time. 
         [0091]    With reference to  FIG. 6 , the following steps may be carried out for each individual optical module to determine and store the unique calibration information for each optical module in its corresponding device: 
         [0092]    In step T 1 , test data is applied to an optical module. 
         [0093]    In step T 2 , in response to the applied test data, test results are received from the optical module. 
         [0094]    In step T 3 , the test results are processed to determine accurate calibration information, which is then stored in a datastore until requested. Identification information identifying the optical module to which the calibration information corresponds is also stored alongside the calibration information. 
         [0095]    In step T 4 , at the phone build stage, the phone loads the identification information from the memory of the optical module. This information is transmitted to the datastore holding the calibration information. 
         [0096]    In step T 5 , the datastore matches the received identification information to the corresponding calibration information and then transmits the calibration information to the phone. This calibration information is then stored in a memory of the phone. 
         [0097]    The apparatus that may be used to achieve this process is shown in  FIG. 8 . The testing apparatus  38  comprises test circuitry  36 , a processor  40 , and a data store  42 , each of which are connected via a bus  44 . The test circuitry  36  applies the test data to the optical module  2 , and receives the test results in response. The processor  40  of the apparatus  38  then performs processing with regard to the test results to obtain the calibration information, which is then stored in the data store  42 . It should be appreciated that the schematic shown in  FIG. 8  is an example only, and any suitable equipment for applying test data, and receiving and processing the results may be employed. 
         [0098]    It may therefore be appreciated that at least some embodiments possess the advantage that the calibration information can be determined after the testing stage, thus not requiring a connection with the optical module to be maintained during processing of the test results. If, on the other hand, the calibration information were to be stored in a memory of the optical module, this would benefit from a lengthier testing stage, since the optical module should remain capable of receiving calibration information from a data store until the calibration information has been determined and has been transferred. 
         [0099]    Some embodiments may allow the storing of relatively large calibration data sets enabling more complex image sensor processing. 
         [0100]    Some embodiments may support multiple aperture technologies and/or light field cameras. 
         [0101]    Some embodiments may enable fully mapped pixel by pixel calibration. 
         [0102]    In some embodiments the calibration data set may comprise one or more image frames. 
         [0103]    Some embodiments allow for the update of calibration information for the camera after the camera test. This may even be after the device has been sold. In other words, the ability to provide patches is improved. In some embodiments, the cellular communication network infrastructure may be used to download patches to the device after the device has been sold and are in use. 
         [0104]    With reference to  FIG. 7 , the following steps may be performed during updating/patching of the calibration information: 
         [0105]    In step U 1 , the user may input into a mobile device a request for an update of the calibration information. 
         [0106]    In step U 2 , a message is transmitted to a datastore containing calibration information. The message contains a request for updated calibration information, a time stamp providing information as to when the calibration information of the user&#39;s device was last updated, and identification information associated with the optical module of the user&#39;s device. 
         [0107]    In step U 3 , the datastore determines if a new set of calibration information (i.e. a new patch) has become available for the user&#39;s device. This is determined by examining the timestamp sent in the message and comparing it to a timestamp in the datastore recording when an update last became available. In step U 4 , if an update is available for the user&#39;s device, the datastore retrieves the calibration information associated with the identification information of the device&#39;s optical module. This further calibration information is then transmitted to the user&#39;s device. 
         [0108]    In step U 5 , when the calibration information is received at the device, it is used to overwrite the old calibration information stored in the memory. It may then be used to calibrate the optical module. In an alternative embodiment, the further calibration information may not overwrite the old calibration information, but may be stored along with the old calibration in the same memory, or in a different memory. 
         [0109]    As the identification information is unique, changes to the camera or any related subcomponents may be tracked. 
         [0110]    The calibration or control information may improve the quality and/or performance of the camera. 
         [0111]    The calibration or control information can be any suitable information and may be one or more of the following: 
         [0112]    Voltage to be used during operation of the array; 
         [0113]    Information on any faulty pixels; 
         [0114]    Information defining how the array responds to changes in temperature; 
         [0115]    Information defining how the optical module responds to changes in the colour temperature of the illumination; 
         [0116]    Information on shading and vignetting of the optical module; 
         [0117]    Information on the colour shading of the optical module; 
         [0118]    Information on the optical distortion of the optical module; 
         [0119]    Information of the offset of the optical axis of the optical module; 
         [0120]    Information on the dark current of the optical module; 
         [0121]    Information on the dark current shading of the optical module; 
         [0122]    Information on the image stitching for multi-aperture optical modules; 
         [0123]    Information on the depth mapping for light field optical modules; 
         [0124]    Information on alignment for stereoscopic optical module; and 
         [0125]    Any other information related to the performance variation of the optical module. 
         [0126]    In some embodiments, the calibration control information may be used by the image signal processor to correct for part by part variations in the camera. 
         [0127]    In some embodiments the image signal processor may need to access the data from the phone memory. The calibration data may be loaded into the image signal processor when the system is initiated and/or booted and then subsequently applied to the images as they are streamed. 
         [0128]    Embodiments have been described in relation to a camera. It should be appreciated that other embodiments may be used with any other suitable device having an array of pixels on a die or chip. Suitable devices may comprise ranging devices ambient light detection and/or navigation devices. 
         [0129]    An appropriately adapted computer program code product or products may be used for implementing the embodiments, when loaded or otherwise provided on an appropriate data processing apparatus. The program code product for providing the operation may be stored on, provided and embodied by means of an appropriate nontransitive carrier medium. An appropriate computer program can be embodied on a nontransitive computer readable record medium. 
         [0130]    Whilst this detailed description has set forth some embodiments of the present invention, the appending claims cover other embodiments of the present invention which differ from the described embodiments according to various modifications and improvements. Other applications and configurations may be apparent to the person skilled in the art.