Frame synchronization in a dual-aperture camera system
11689803 · 2023-06-27
Assignee
Inventors
- Noy Cohen (Tel Aviv, IL)
- Gal Shabtay (Tel Aviv, IL)
- Oded Gigushinski (Herzlia, IL)
- Nadav Geva (Tel Aviv, IL)
- Anat Leshem Gat (Givataiim, IL)
- Gil Bachar (Tel Aviv, IL)
Cpc classification
H04N23/45
ELECTRICITY
H04N23/67
ELECTRICITY
H04N23/58
ELECTRICITY
H04N23/651
ELECTRICITY
H04N23/951
ELECTRICITY
H04N23/65
ELECTRICITY
H04N7/0127
ELECTRICITY
H04N5/0733
ELECTRICITY
H04N23/667
ELECTRICITY
H04N23/90
ELECTRICITY
G02B27/0075
PHYSICS
International classification
H04N23/667
ELECTRICITY
H04N23/951
ELECTRICITY
H04N5/073
ELECTRICITY
H04N7/01
ELECTRICITY
G02B13/00
PHYSICS
G02B27/00
PHYSICS
H04N23/45
ELECTRICITY
H04N23/58
ELECTRICITY
H04N23/65
ELECTRICITY
H04N23/67
ELECTRICITY
H04N23/69
ELECTRICITY
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 operative to output a respective first camera output and a second camera operative to output a respective second camera output; operating one camera in a fully operational mode to provide a first frame and operating the other camera in a partially operational mode to provide a second frame; and synchronizing a parameter of the output of the camera operating in fully operational mode with a parameter of the output of the camera operating in partially operational mode before obtaining a depth map from the first and second frames, whereby the obtaining of the depth map with one camera in fully operational mode and the other camera in partially operational mode requires less power consumption that the power consumption required when both cameras operate in fully operational mode.
2. The method of claim 1, further comprising outputting the depth map as a dual-camera output.
3. The method of claim 2, further comprising: switching between the first and second cameras; and operating the second camera in a fully operational mode and the first camera in a partially operational mode.
4. The method of claim 2, wherein each camera output includes a respective stream of frames.
5. The method of claim 4, wherein the parameter is a frame rate and wherein a frame rate of the camera operating in partially operational mode is a fraction of a frame rate of the camera operating in fully operational mode.
6. The method of claim 4, wherein the parameter is a frame size and wherein a frame size of the camera operating in partially operational mode is a fraction of a frame size of the camera operating in fully operational mode.
7. The method of claim 4, wherein each camera includes a respective image sensor and a respective image signal processor (ISP), wherein the parameter is an ISP processing rate, and wherein a processing rate of the ISP of the camera operating in partially operational mode is a fraction of a processing rate of the ISP of the camera operating in fully operational mode.
8. The method of claim 1, further comprising: switching between the first and second cameras; and operating the second camera in a fully operational mode and the first camera in a partially operational mode.
9. The method of claim 1, wherein each camera output includes a respective stream of frames.
10. The method of claim 9, wherein the parameter is a frame rate and wherein a frame rate of the camera operating in partially operational mode is a fraction of a frame rate of the camera operating in fully operational mode.
11. The method of claim 9, wherein the parameter is a frame size and wherein a frame size of the camera operating in partially operational mode is a fraction of a frame size of the camera operating in fully operational mode.
12. The method of claim 9, wherein each camera includes a respective image sensor and a respective image signal processor (ISP), wherein the parameter is an ISP processing rate and wherein a processing rate of the ISP of the camera operating in partially operational mode is a fraction of a processing rate of the ISP of the camera operating in fully operational mode.
13. A system, comprising: a dual-aperture camera that includes a first camera operative to output a respective first camera output and a second camera operative to output a respective second camera output; and a synchronization and operation control module configurable to control operation of one camera in a fully operational mode to provide a first frame and operation of the other camera in a partially operational mode to provide a second frame, and to synchronize a parameter of the output of the camera operating in fully operational mode with a parameter of the output of the camera operating in partially operational mode before obtaining a depth map from the first and second frames, whereby the obtaining of the depth map with one camera in fully operational mode and the other camera in partially operational mode requires less power consumption that the power consumption required when both cameras operate in fully operational mode.
14. The system of claim 13, wherein the synchronization and operation control module is further configurable to output the depth map as a dual-camera output.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Aspects, embodiments and features disclosed herein will become apparent from the following detailed description when considered in conjunction with the accompanying drawings.
(2)
DETAILED DESCRIPTION
(3) 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.
(4) 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.
(5) 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. 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.
(6)
(7) 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.
(8) 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.
(9) 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.
(10) 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.
(11) 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:
(12) 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).
(13) 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.
(14) 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.
(15) 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).
(16) 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.
(17) 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:
(18) 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).
(19) 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.
(20) 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.
(21) 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).
(22) 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.
(23) 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):
(24) 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.
(25) 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.
(26) 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.
(27) 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.
(28) 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.
(29) 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).
(30) 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.
(31) 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.
(32) 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.
(33) 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 operation Full (e.g. 30FPS) control module 120 operation rate Decision on transition\change in Done by smooth transition library 130 frame rate
(34) 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.
(35) 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.
(36) 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.
(37) 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.
(38) 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.