FRAME SYNCHRONIZATION IN A DUAL-APERTURE CAMERA SYSTEM
20250097573 ยท 2025-03-20
Inventors
- Noy Cohen (Tel Aviv, IL)
- Gal Shabtay (Tel Aviv, IL)
- Oded Gigushinski (Tel Aviv, IL)
- Nadav Geva (Tel Aviv, IL)
- Anat Leshem Gat (Tel Aviv, IL)
- Gil Bachar (Tel Aviv, IL)
Cpc classification
H04N23/45
ELECTRICITY
H04N23/67
ELECTRICITY
H04N23/00
ELECTRICITY
H04N23/58
ELECTRICITY
H04N23/651
ELECTRICITY
H04N23/951
ELECTRICITY
H04N23/65
ELECTRICITY
H04N7/0127
ELECTRICITY
H04N5/0733
ELECTRICITY
H04N23/667
ELECTRICITY
G02B27/0075
PHYSICS
H04N23/69
ELECTRICITY
International classification
H04N23/667
ELECTRICITY
H04N5/073
ELECTRICITY
H04N23/45
ELECTRICITY
H04N23/58
ELECTRICITY
H04N23/65
ELECTRICITY
H04N23/67
ELECTRICITY
H04N23/69
ELECTRICITY
H04N23/90
ELECTRICITY
H04N23/951
ELECTRICITY
H04N23/00
ELECTRICITY
G02B13/00
PHYSICS
G02B27/00
PHYSICS
Abstract
A dual-aperture camera comprising a first camera having a first sensor and a first image signal processor (ISP), the first camera operative to output a first stream of frames, a second camera having a second sensor and a second ISP, the second camera operative to output a second stream of frames, and a synchronization and operation control module configurable to control operation of one camera in a fully operational mode and operation of the other camera in a partially operational mode and to output an output of the fully operational camera as a dual-aperture camera output, whereby the partially operational mode of the other camera reduces a dual-aperture camera the power consumption in comparison with a full operational mode of the other camera.
Claims
1. A method comprising: providing a dual-aperture camera that includes a first camera with a first image sensor operation rate, the first camera operative to output a first stream of frames, and a second camera comprising a second image sensor with a second image sensor operation rate, the second camera operative to output a second stream of frames; synchronizing in time operation of the first camera and of the first image sensor with operation of the second camera and of the second image sensor such that one image sensor operates at a full operation rate and another image sensor operates at a partial operation rate that is a fraction of the full operational rate; and synchronizing the first and second streams of frames at a frame rate of the image sensor that operates at a full operation rate.
2. The method of claim 1, wherein the frame rate of the image sensor that operates at a full operation rate is in a range of 30 frames per second to 60 frames per second.
3. The method of claim 1, wherein a frame rate of the image sensor that operates at a partial operation rate is in a range of 5 frames per second to 10 frames per second.
4. The method of claim 1, further comprising outputting a synchronized pair of frames having a frame from the first stream of frames and a frame from the second stream of frames.
5. The method of claim 1, wherein the first image sensor is associated with a first field of view (FOV) and wherein the second image sensor is associated with a second FOV that is narrower than the first FOV.
6. The method of claim 1, wherein the first image sensor is associated with a first field of view (FOV) and wherein the second image sensor is associated with a second FOV that is wider than the first FOV.
7. The method of claim 1, wherein the first image sensor is a color image sensor and wherein the second image sensor is a monochromatic image sensor.
8. The method of claim 1, wherein first image sensor is a monochromatic image sensor and wherein the second image sensor is a color image sensor.
9. The method of claim 1, wherein the synchronizing in time operation of the first image sensor with operation of the second image sensor includes configuring a respective vertical blanking time of the first image sensor and of the second image sensor.
10. The method of claim 9, wherein the configuring the respective vertical blanking time includes increasing or decreasing the vertical blanking time of the first image sensor and the second image sensor.
11. The method of claim 1, further comprising using a smooth transition library for providing an instruction used for synchronizing in time the operation of the first and second cameras and of the first and second image sensors.
12. The method of claim 1, wherein the method is performed by a host device.
13. The method of claim 11, wherein the method is performed by a host device.
14. The method of claim 12, wherein the host device is a cellular telephone.
15. The method of claim 13, wherein the host device is a cellular telephone.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Aspects, embodiments and features disclosed herein will become apparent from the following detailed description when considered in conjunction with the accompanying drawings.
[0027]
DETAILED DESCRIPTION
[0028] Embodiments disclosed below relate to dual-aperture cameras with reduced power consumption and methods for operating such cameras. Each camera in the dual-aperture camera includes a camera image sensor (or simply sensor) which is in communication with an associated image signal processor (ISP). In some embodiments, the two sensors may be associated with a single ISP and time-share it. The reduced power consumption arises from the fact that most of the time one camera is fully operational while the other camera is less than fully operational or partially operational. As used herein, fully operational camera or camera in fully operational mode refers to a camera in which the operation of the respective image sensor is at a regular frame rate or frame size and the operation of the associated ISP is at a regular ISP processing rate. As used herein, partially operational camera or camera in partially operational mode refers to a camera in which the operation of the respective image sensor is at a reduced frame rate or frame size relative to its fully operational frame rate or frame size, and/or that the operation of the associated ISP is at a reduced processing rate relative to its regular (fully operational) ISP processing rate. In one example, the fully operational camera may output frames at 30-60 frames per second (FPS), while the partially operational camera may output frames at a lower rate of 5-10 FPS. In another example, the fully operational camera may output frames at 13 Mpxl size per frame, while the partially operational camera may output frames at a lower size of 0.2-8 Mpxl per frame.
[0029] A synchronization mechanism enables fast switching of the dual-aperture camera output from the output of the fully operational camera to the output of the partially operational camera. The synchronization mechanism may be performed exemplarily by a dedicated software (SW) module. Alternatively, the synchronization mechanism may be included in hardware (HW). The novel synchronization mechanism and method presented below allow synchronization of two camera streams even when one camera is fully operational while the other camera is partially operational. The disclosed synchronization keeps frames of the two cameras synchronized while reducing power consumption, and allows calculation of a depth map from respective frames of the two cameras at all times.
[0030] Switching between cameras is decided by user inputs, such as selection of zoom factor or scene, and is done by a smooth transition library, see below. Exemplarily, the library is a smooth transition library. The way a decision on the timing of transition is made is known in the art, see e.g. co-owned U.S. Pat. No. 9,185,291. Just before the dual-aperture camera output is switched from the output of the fully operational camera to the output of the partially operational camera, the partially operational camera becomes fully operational with respective fully operational frame rate and/or frame size and/or ISP processing rate. After the dual-aperture camera output switching, the fully operational camera becomes partially operational, with respective partially operational frame rate and/or frame size and/or ISP processing rate.
[0031] If the fully operational camera was to stop streaming frames instead of being switched to partially operational mode, the switching time from the fully operational camera to the partial operational camera would have increased compared to the switching time when using the proposed operation of the partially operational camera. If the partially operational camera was to operate at full rate and a full frame size while the fully operational camera outputs frames, the power consumption of the entire dual-camera system would have increased, compared to the power consumption when using the proposed operation of the partially operational camera.
[0032]
[0033] System 100 further includes a synchronization and operation control module 120 (in short and for simplicity module 120). Module 120 controls the frame rates and/or sizes at which sensors 106 and 110 operate and the processing rates at which the associated ISPs 112 and 114 operate and is also in charge of synchronizing pairs of frames that are processed and output by ISPs 112 and 114. System 100 further includes a smooth transition library 130. Module 120 receives frames and frame parameters such as time stamps and requested frame rates from ISPs 112 and 114 and/or from smooth transition library 130, and operates based on these parameters. Module 120 communicates with sensors 106 and 110 through, respectively, digital control channels 122 and 124.
[0034] The frames output by ISPs 112 and 114 are passed to smooth transition library 130 along with other parameters such as frames sizes, exposure time, analog gain information, ISP crop and scale information, frame rate, focus position information and requested zoom factor. Smooth transition library 130 is responsible for smoothly transitioning from one stream of frames to another stream of frames, depending on several parameters such as zoom factor, object depths in the pictured scene, etc. The smooth transition library can send a signal to module 120 to change a partially operational camera to be a fully operational camera and vice versa, and/or to change the frame size and/or to change the frame rate of the camera sensor and/or to change the processing rate of the respective ISP.
[0035] In some embodiments, the control of the frame rate by module 120 may be performed via increasing or decreasing the vertical blanking time of sensors 106 and 110. Increasing the vertical blanking time reduces the frame rate, while decreasing the vertical blanking time increases the frame rate.
[0036] Modules 120 and 130 may be software modules or may be implemented in hardware (HW). They may be included in a single HW processor or in several HW processors. Modules 112 and 114 are usually HW modules. ISP 112 and ISP 114 may be implemented in separate HW modules (e.g. micro-processor, CPU, GPU, dedicated hardware, FPGA etc.) or in a single HW module.
[0037] Following is a first embodiment of an exemplary method of operation of system 100 and in particular of operation of module 120 in a desired scenario in which one sensor (110) streams frames at a low frame rate and the other sensor (106) streams frames at a high frame rate. Thus in this example, sensor 110 is the sensor of the partially operational camera and sensor 106 is the sensor of the fully operational camera. It should be noted that the role of low-frame-rate-sensor (partially operational) and high-frame-rate-sensor (fully operational) is interchangeable within the same system, and their definitions depend on parameters such as zoom factor and pictured scene information, and shown here only by means of example. It should also be noted that in this scenario, the operation rates of ISPs 112 and 114 match the rate of the streams of frames that arrive from sensors 106 and 110, respectively. For example, if sensor 110 streams at low frame rate, the operation rate of ISP 114 is reduced compared to that of ISP 112, which receives frames at a higher frame rate from sensor 106. In the exemplary operation and in detail: [0038] 1. Module 120 configures the vertical blanking time of sensor 106 to a value such that the sensor streams frames at a high frame rate, for example 30 FPS. Module 120 also configures the vertical blanking time of sensor 110 to a value such that it streams frames at a rate that is an integer divisor (fraction) of the high frame rate of sensor 106 (e.g. such that the frame rate ratio between the rates is 1/n, n being exemplarily an integer equal to or larger than 2). [0039] 2. Module 120 operates at the same frame rate as the high frame rate sensor. It continuously receives a new pair of frames from ISPs 112 and 114, along with meta-data information such as frame time stamps for each frame and a valid/invalid descriptor, which indicates whether the input frames are valid ones or not. The frames streamed from sensor 106 are all marked as valid frames. Frames streamed from sensor 110 are also marked as valid frames. However, if there is a pair of frames in which one frame from sensor 106 is valid and there is no corresponding frame from sensor 110, then a dummy frame may be used instead of the missing low-frame-rate frame and such dummy frame is marked as an invalid frame. For example, if sensor 106 streams at 30 FPS and sensor 110 streams at of the high frame rate (i.e. at 10 FPS), then module 120 will receive a valid frame from sensor 106 about every 1/30 second and a valid frame from sensor about 110 about every 1/10 second. Since module 120 operates at the high frame rate, it will receive two valid frames only every 3.sup.rd operation. Alternatively, module 120 may be called only when two valid input frames are available. [0040] 3. Module 120 compares the time stamps of the valid pair of frames and calculates the time difference between them. It then calculates the required modifications to the vertical blanking time of sensors 106 and/or 110 so that the time difference between the two valid frames will be minimized, and configures sensor 110 and/or sensor 106 to a new vertical blanking time. [0041] 4. Changes are applied to sensors 106 and/or 110 by sending a command through digital control channels 122 and 124 (e.g. I2C channels). [0042] 5. The requested frame rate from each of sensors 106 and 110 can be decided based on smooth transition library 130 requests. Smooth transition library 130 may request control module 120 to configure the same frame rate and/or frame size or different frame rates and/or frame sizes from sensors 106 and 110, based on different parameters such as zoom factor, scene parameters, system performance and user preference.
[0043] Following is a second embodiment of an exemplary method of operation of system 100 and in particular of module 120 in a desired scenario in which sensors 106 and 110 both stream frames at a high frame rate, ISP 114 processes frames at a low frame rate and ISP 112 processes frames at a high frame rate. Thus in this example, ISP 114 is the ISP of partially operational camera and ISP 112 is the ISP of fully operational camera. In this scenario, module 120 only controls the processing rates of ISP 112 and ISP 114. Frames that reach ISP 114 at high frame rate and are not processed by it are discarded. It should be noted that the role of low-frame-rate-sensor and high-frame-rate-sensor is interchangeable within the same system, and their definitions depend on parameters such as zoom factor and pictured scene information, and the exemplary selected roles are shown here only by means of example. In the exemplary operation and in detail: [0044] 1. Module 120 configures both the vertical blanking times of sensor 106 and sensor 110 and also the rates at which ISP 112 and ISP 114 operate. For example, sensors 106 and 110 are configured to stream frames at 30 FPS, ISP 112 is configured to operate at a rate equivalent to 30 FPS and ISP 114 is configured to operate at a rate equivalent to 10 FPS. The rate at which ISP 114 is configured to operate is set to be an integer divisor of the rate that ISP 112 is configured to operate in (e.g. so that the frame rate ratio between the rates is 1/n, n being an integer equal to or larger than 2). [0045] 2. Module 120 operates at the same frame rate as the high frame rate ISP 112. It continuously receives a new pair of frames from ISPs 112 and 114, along with meta-data information such as frame time stamps for each frame and a valid/invalid descriptor, which indicates whether the input frames are valid ones or not. The frames streamed from ISP 112 are all marked as valid frames. Frames streamed from ISP 114 are also marked as valid frames. However, if there is a pair of frames in which one frame arrives from ISP 112 and there is no corresponding frame from ISP 114, then a dummy frame may be used instead of the missing low-frame-rate frame and it is marked as an invalid frame. For example, if ISP 112 processes frames at 30 FPS and ISP 114 processes frames at of the high frame rate, then module 120 will receive a valid frame from ISP 112 about every 1/30 second and a valid frame from ISP 114 about every 1/10 second. Since module 120 operates at the high frame rate, then it will receive two valid frames only every 3.sup.rd operation. Alternatively, module 120 may be called only when two valid input frames are available. [0046] 3. Module 120 compares the time stamps of the valid pair of frames and calculates the time difference between them. It then calculates the required modifications to the operation rates of ISP 112 and ISP 114 and also the modification to the vertical blanking time of sensors 106 and/or 110, such that the time difference between the two valid frames will be minimized. [0047] 4. Changes are applied to sensors 106 and/or 110 via sending a command through digital control channels 122 and 124 (e.g. I2C channels).
[0048] In both of the examples above, the requested frame rate from each of sensors 106 and 110 and ISPs 112 and 114 can be decided based on smooth transition library 130 requests as known in the art, see e.g. co-owned U.S. Pat. No. 9,185,291. Library 130 may request module 120 to configure the same frame rate or different frame rates from sensors 106 and 110 and ISPs 112 and 114, based on different parameters like zoom factor, scene parameters, system performance and user preference.
[0049] Following is a third embodiment of an exemplary method of operation of system 100 and in particular of module 120 in a desired scenario where one sensor (110) streams frames at a low frame size and the other sensor (106) streams frames at a high frame size. In this case sensor 106 is the sensor of the fully operational camera and sensor 110 is the sensor of the partially operational camera. It should be noted that the role of low-frame-size-sensor (partially operational) and high-frame-size-sensor (fully operational) is interchangeable within the same system, and that their definitions depend on parameters such as zoom factor and pictured scene information, and shown here only by means of example. It should also be noted that in this scenario, the ISPs 112 and 114 operation complexity depends on the frame streams that arrive from sensors 106 and 110, respectively (for example, if sensor 110 streams at low frame size, the operation complexity of ISP 114 is reduced compared to that of ISP 112, which receives frames at a high frame size from sensor 106): [0050] 1. Module 120 configures the vertical blanking time of both sensors 106 and 110 to a value such that each sensor stream frames at a desired frame rate, for example 30 FPS. [0051] 2. Module 120 also configures the frame size of sensor 106 to high frame size (e.g. 13 mpxl) and the frame size of sensor 110 to a low frame size (e.g. 0.5 mpxl). It further informs ISPs 112 and 114 on the expected frame size for each ISP. [0052] 3. ISPs 112 and 114 set active and non-active hardware chains according to expected frame rate. ISPs 114 can for example reduce the number of active transistors (turn unneeded transistors off) and can reduce the overall power consumption. [0053] 4. Module 120 operates at the same frame rate as the sensors. It continuously receives a new pair of frames from ISPs 112 and 114, along with meta-data information such as frame time stamps for each frame. [0054] 5. Module 120 compares the time stamps of each pair of frames and calculates the time difference between them. It then calculates the required modifications to the vertical blanking times of sensors 106 and/or 110 so that the time difference between the two valid frames will be minimized, and configures sensor 110 and/or sensor 106 to a new vertical blanking time. [0055] 6. Changes are applied to sensors 106 and/or 110 via sending a command through digital control channels 122 and 124 (e.g. I2C channels). [0056] 7. The requested frame size from each of sensors 106 and 110 can be decided based on smooth transition library 130 requests. Smooth transition library 130 may request SW synchronization and operation control module 120 to configure the same frame size or different frame sizes from sensors 106 and 110, based on different parameters like zoom factor, scene parameters, system performance and user preference.
[0057] In a fourth embodiment of an exemplary method of operation of system 100, system 100 may operate such that one sensor is streaming at full frame rate and high frame size, while the second sensor operate at a low frame rate and a low frame size. In this embodiment, there is implementation of a combination of the operation methods presented above.
[0058] Table 1 shows a comparison of the four methods, with optional reduction of power. With the partially operational camera, each cell with Full text represents work at full power consumption, while each cell with Partial text represents reduction of power.
TABLE-US-00001 TABLE 1 Method 1 Method 2 Method 3 Method 4 Fully Sensor operation Full (e.g. 30FPS) operational rate (e.g. of 106) camera Frame size Full (e.g. 13mpxl) ISP operation Full (e.g. 30FPS) rate (e.g. of 112) Partially Sensor operation Partial (e.g. Full (e.g. Full (e.g. Partial (e.g. operational rate 10FPS) 30FPS) 30FPS) 10FPS) camera (e.g. of 110) Frame size Full (e.g. Full (e.g. Partial (e.g. Partial (e.g. 13mpxl) 13mpxl) 0.5mpxl) 0.5mpxl) ISP operation Partial (e.g. Partial (e.g. Full (e.g. Partial (e.g. rate (e.g. of 114) 10FPS) 10FPS) 30FPS) 10FPS) Synchronization and Full (e.g. 30FPS) operation control module 120 operation rate Decision on transition\ Done by smooth transition library 130 change in frame rate
[0059] In summary, the present application discloses a system and methods for operating the same, the system including a dual-camera in which the combined preview or video output comes either from one camera or another camera, depending on user defined zoom factor, scene selection and other parameters. Fast output switching with minimal power consumption penalty is enabled by operating the camera not used to generate the dual-camera image output in a special (partial) operation mode.
[0060] The various features and steps discussed above, as well as other known equivalents for each such feature or step, can be mixed and matched by one of ordinary skill in this art to perform methods in accordance with principles described herein. Although the disclosure has been provided in the context of certain embodiments and examples, it will be understood by those skilled in the art that the disclosure extends beyond the specifically described embodiments to other alternative embodiments and/or uses and obvious modifications and equivalents thereof. Accordingly, the disclosure is not intended to be limited by the specific disclosures of embodiments herein. For example, while this description is focused on a dual-aperture camera, multi-aperture cameras with more than two apertures (cameras) may benefit from application of the methods described herein, if applied to any two cameras in a multi-aperture camera. In general, the disclosure is to be understood as not limited by the specific embodiments described herein, but only by the scope of the appended claims.
[0061] Unless otherwise stated, the use of the expression and/or between the last two members of a list of options for selection indicates that a selection of one or more of the listed options is appropriate and may be made.
[0062] It should be understood that where the claims or specification refer to a or an element, such reference is not to be construed as there being only one of that element.
[0063] All references mentioned in this specification are herein incorporated in their entirety by reference into the specification, to the same extent as if each individual reference was specifically and individually indicated to be incorporated herein by reference. In addition, citation or identification of any reference in this application shall not be construed as an admission that such reference is available as prior art to the present application.