The present application relates generally to image processing, and more specifically to systems, methods, and devices for dynamic voltage scaling at an image signal processor (ISP) during a sensor frame time.
Today, video capture processes and hardware are being pushed to the edge with high-resolutions and high frame-rates in stand-alone imaging systems and cameras that are included on mobile devices, e.g., cell phones and tablets. While these advances improve user experience, they also present several challenges to device manufacturers, including increased power consumption. For example, as high-resolution sensors used in such imaging systems and devices continue to increase exponentially to 16 megabytes and above for both video and still-pictures, corresponding higher-end image signal processors are needed to effectively support the processing of the high through-put of such applications (e.g., via processing more image pixels per second or frames per second). This can cause the system-on-chips (SOCs) performing this processing to generate an undesired level of heat, large power consumption, fast battery drain, and/or slow image processing rates.
Reducing voltage and/or frequency levels at an imaging device can reduce heat generation and increase battery power. However, given the finite amount of power available on a mobile device, improved methods and systems are needed that deliver the video resolution and frame rates allowed by modern hardware capabilities while ensuring these hardware capabilities do not adversely impact the user experience with regard to power consumption and/or device temperatures, and therefore, in some aspects, battery life and/or image processing speeds.
The systems, methods, and devices of the invention each have several aspects, no single one of which is solely responsible for its desirable attributes. Without limiting the scope of this invention as expressed by the claims which follow, some features will now be described briefly. After considering this discussion, and particularly after reading the section entitled “Detailed Description,” one will understand how the features of this invention provide advantages that include improved communications between access points and stations in a wireless network. Details of one or more implementations of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages will become apparent from the description, the drawings, and the claims. Note that the relative dimensions of the following figures may not be drawn to scale.
One aspect of the present application provides an apparatus comprising a sensor configured to capture an image during a sensor frame time. The apparatus further comprises a memory buffer configured to store a plurality of pixels associated with the captured image. The apparatus further comprises an image signal processing pipeline operating at a first voltage operating point, including a processing unit, coupled to the memory buffer and configured to read a first set of plurality of pixels within the sensor frame time. The processing unit is further configured to process the first set of plurality of pixels and count a first set of plurality of pixels and compare the count value with a pixel threshold value. The apparatus further comprises a voltage regulator, coupled to the image signal processing pipeline, configured to, in response to the pixel count value reaching the pixel threshold value, switch the image signal processing pipeline from a first voltage operating point to a second voltage operating point.
Another aspect of the present application provides a method for switching voltage operating points of an image signal processor (ISP). The method comprises capturing an image, at a sensor, during a sensor frame time. The method further comprises identifying first and second voltage operating points for driving the ISP, wherein the first voltage operating point is lower than the second voltage operating point. The method further comprises receiving, from the sensor, a plurality of pixels associated with the captured image. The method further comprises transmitting, to the ISP, a first set of pixels of the plurality of pixels for processing the first set of pixels at the first voltage operating point within the sensor frame time. The method further comprises storing a second set of pixels of the plurality of pixels, wherein the second set of pixels contributes to a pixel count value. The method further comprises comparing the pixel count value with a pixel threshold value. The method further comprises, in response to the pixel count value reaching the pixel threshold value, switching the ISP to operating at the second voltage operating point and transmitting the second set of pixels to the ISP for processing the second set of pixels at the second voltage operating point within the sensor frame time.
Another aspect of the present application provides an apparatus for switching voltage operating points of an image signal processing pipeline. The apparatus comprises means for capturing an image during a sensor frame time. The apparatus further comprises means for storing a plurality of pixels associated with the captured image. The apparatus further comprises means for processing configured to: read a first set of plurality of pixels within the sensor frame time; process the first set of plurality of pixels and count a first set of plurality of pixels; and compare the count value with a pixel threshold value. The apparatus further comprises means for, in response to the pixel count value reaching the pixel threshold value, switching the image signal processing pipeline from a first voltage operating point to a second voltage operating point.
The disclosed aspects will hereinafter be described in conjunction with the appended drawings and appendices, provided to illustrate and not to limit the disclosed aspects, wherein like designations denote like elements.
Various aspects of the novel systems, apparatuses, and methods are described more fully hereinafter with reference to the accompanying drawings. The teachings disclosed may, however, be embodied in many different forms and should not be construed as limited to any specific structure or function presented throughout this disclosure. Rather, these aspects are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art. Based on the teachings herein one skilled in the art should appreciate that the scope of the disclosure is intended to cover any aspect of the novel systems, apparatuses, and methods disclosed herein, whether implemented independently of or combined with any other aspect of the invention. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth herein. In addition, the scope of the invention is intended to cover such an apparatus or method which is practiced using other structure, functionality, or structure and functionality in addition to, or other than, the various aspects of the invention set forth herein. It should be understood that any aspect disclosed herein may be embodied by one or more elements of a claim.
Although particular aspects are described herein, many variations and permutations of these aspects fall within the scope of the disclosure. Although some benefits and advantages of the preferred aspects are mentioned, the scope of the disclosure is not intended to be limited to particular benefits, uses, or objectives. Rather, aspects of the disclosure are intended to be broadly applicable to different imaging technologies and system configurations and protocols, some of which are illustrated by way of example in the figures and in the following description of the preferred aspects. The detailed description and drawings are merely illustrative of the disclosure rather than limiting, the scope of the disclosure being defined by the appended claims and equivalents thereof.
In modern imaging devices (e.g., digital cameras), imaging sensor (or “sensor”) parameters (e.g., sensor pixel clock rates) typically drive image signal processor (ISP) parameters (e.g., ISP pixel clock rates). As described herein, an ISP may also be referred to as an “image processor,” an “imaging signal processor,” an “imaging processor,” an “image processing front end,” an “image front end,” an “imaging front end,” a “video processing front end,” a “video front end,” an “IFE,” a “VFE,” or any other variation thereto. As described herein, an ISP may include, for example, any circuitry component that connects to an imaging device interface, operates inline, and supports processing at the operation of the imaging device. An ISP may process image pixels in one or more domains, e.g., Bayer, RGB, YUV, etc. An ISP may collect pixel statistics for image processing tuning, for example, for downstream image processing tuning. As further described below, modern ISPs may process pixels at a clock rate (or “frequency”) equal to a pixel clock rate (or “frequency”) for a sensor associated with the imaging device. As one having ordinary skill in the art will appreciate, pixel clock rate (or “clock rate,” “frequency,” “operating frequency,” “clock frequency,” “pixel throughput,” etc.) may be directly related and/or “tied to” voltage operating point (or “voltage,” “voltage operating level,” “voltage level,” “voltage point,” “operating point,” “operating level,” etc.). For example, as the pixel clock rate for an ISP increases, the voltage operating point proportionally increases, and vice versa. Thus, as described herein, pixel clock rate (e.g., an input pixel clock rate, in MHz, for an ISP) and voltage operating point (e.g., for the ISP) may be referred to interchangeably. Further as described herein, “imaging” and “image processing” may be used interchangeably.
Modern high-resolution and/or high frequency sensors require high pixel clock rates, which further require high pixel clock rates (and thus, high voltage levels) at ISPs, so as to maintain necessary pixel throughput from the sensor and to avoid overflow, lost pixels, and/or image corruption. As many modern imaging devices install several, or all, of the other imaging components on the same voltage power rail as the ISP, these other imaging components are also required to operate at the same high voltage levels, despite having their own, often lower, power requirements.
As used herein, “coupled” may include communicatively coupled, electrically coupled, magnetically coupled, physically coupled, optically coupled, and combinations thereof. Two devices (or components) may be coupled (e.g., communicatively coupled, electrically coupled, or physically coupled) directly or indirectly via one or more other devices, components, wires, buses, networks (e.g., a wired network, a wireless network, or a combination thereof), etc. Two devices (or components) that are electrically coupled may be included in the same device or in different devices and may be connected via electronics, one or more connectors, or inductive coupling, as illustrative, non□limiting examples. In some implementations, two devices (or components) that are communicatively coupled, such as in electrical communication, may send and receive electrical signals (digital signals or analog signals) directly or indirectly, such as via one or more wires, buses, networks, etc.
In other words, high pixel clock rates at the ISP requires high voltage operating points (i.e., frequencies) for other components operatively coupled with the ISP (e.g., on the same voltage power rail). Thus, in addition to the increased power requirements for the ISP, this even further increases total power consumption for the imaging device. As described above, voltage operating points (e.g., in volts), processing frequencies (e.g., in Hertz), clock rates (e.g., pixels processed per second) for imaging devices all have a direct relation. Thus, in addition to the interchangeable terms described above with respect to voltage operating points and pixel clock rates, voltage operating points, voltage levels, voltage corners, operating frequencies, clock rates, pixel clock rates, and the like, may also be described herein interchangeably with respect to imaging devices, ISPs, etc. Furthermore, as described herein, ISPs may also be referred to as a part or a whole of a system-on-chip, wherein the system-on-chip can include the ISP operatively coupled with an imaging sensor, among other imaging components installed on the system. A system-on-chip may also be referred to herein as an SoC, an Application Processor (AP), or otherwise.
Because chip manufacturers often cannot be certain of final product sensor operating requirements, modern ISPs are typically configured to operate only at fixed voltage operating points for an entire duration of a sensor frame (e.g., 33 ms). To decrease the risk of the ISP operating at insufficient levels during an image capture (for example), the ISPs are often configured to remain at these fixed operating levels for the entire duration of the sensor operation (e.g., for an entire sensor frame time). In particular, typical ISPs are configured to operate at fixed voltage operating points for the entire sensor frame time (i.e., the duration of sensor operations for a given image frame).
To help alleviate some of these issues, many ISPs can operate at multiple voltage operating points (e.g., 0.5V, 0.8V, 1.0V, etc.), for example, by separating groups of imaging components onto multiple power rails. As one example, some imaging devices include an additional power rail so as to isolate the ISP to its own power rail. Thus, although voltage levels remain high at the ISP, because other imaging components on the system-on-chip (e.g., the display engine) are connected to a different power rail, the other components are not also required to operate at the high voltage level. However, despite having multiple voltage operating points available, typical systems still operate the ISP at a fixed voltage level, which still results in wasted resources.
Other modern imaging systems include an additional ISP on the system-on-chip, which splits the operating frequency requirements between two ISPs, which then reduces maximum voltage requirements for the image processing aspect of the chip. However, adding additional ISPs increases costs, and programming complications increase when configuring multiple ISPs. Furthermore, including multiple ISPs increases device sizes. Further yet, typical systems configured in such a manner maintain the practice of operating each of the ISPs at fixed, albeit lower, voltages, which still results in wasted resources.
Yet other systems attempt to address the above issues by dumping raw sensor data into memory (e.g., DDR), which can bypass certain pixel processes. However, such systems require large memory bandwidths to read in images for image previews. Furthermore, such chip configurations increase system latency and often require high back end operating frequencies to handle modern frame rate requirements (e.g., 60 frames-per-second (FPS), 120 FPS, 240 FPS, etc.). In turn, such configurations increase system costs, system latencies, and potential frequency bottlenecks. Such systems often require large bandwidths for reading in images to generate previews and/or video streams, which increases latency along imaging preview paths.
Finally, other imaging systems implement dynamic clock and voltage scaling (DCVS) techniques to adjust voltage levels for certain components (e.g., the display engine) on a system-on-chip and/or an imaging device. However, as traditional imaging devices configure the ISP to always maintain a pixel processing rate equal to or greater than that being input by the imaging sensor (e.g., so as to not to fall behind, or lag, in processing), traditional imaging devices, even those implementing certain DCVS techniques, maintain fixed operating points at the ISP or ISPs. For example, due to the wide range of possible sensor pixel clock rates for the same image resolution, chip designers run the risk of falling short of desired frequencies (e.g., by several MHz), causing system-on-chip and ISPs to require operating at higher operating voltages to meet pixel clock rate requirements. Again, in such scenarios, several, if not all, of the other imaging components operatively coupled with the system-on-chip will then also be required to operate at the higher voltage operating point. Thus, even when modern imaging devices implement certain DCVS techniques, such imaging devices still waste power and reduce the benefits of the DCVS techniques. Thus, imaging devices with improved ISP voltage operating point configurations are desired.
To that end, systems and methods are provided for dynamically switching voltage operating points at an ISP, for example, so as to provide improved power efficiency over current imaging systems and methods without reducing visual performance. In short, the systems and methods described herein enable switching the voltage operating point for the ISP between voltage operating points such that an average operating frequency of the ISP is greater than or equal to an input frequency of the sensor and such that a lag time duration for displaying an image is reduced based on the ISP processing, within the sensor frame time, the total number of pixels at the average operating frequency. For example, during a sensor frame time, aspects herein describe an ISP configured to operate at a low voltage operating point (e.g., 0.5V) for a duration, switch to a high voltage operating point (e.g., 0.8V or 1.0V) for a duration, switch back to the low voltage operating point for a duration, and so on (e.g., power cycling). Based on the actual sensor pixel clock rate and/or the supported voltage operating plan of the associated processing chip, the durations can be determined such that the ISP operates at an average voltage that meets, but does not unnecessarily exceed, the required operating voltage to sufficiently process the pixels from the imaging sensor. In this way, the ISP can use less power on average than a typical ISP that operates at a fixed voltage operating point (e.g., 0.8V or 1.0V). Meanwhile, the ISP described herein can sufficiently process all of the incoming pixels from the sensor, and the average voltage operating point of the ISP can remain lower than if the ISP were configured to operate at a fixed, higher voltage, like traditional systems. Furthermore, the imaging device system described herein may operate without requiring installation of additional components on the system-on-chip (e.g., an additional power rail, an additional ISP, etc.).
With reference to
The imaging sensor 108 may include an array of electronic imaging elements, for example, disposed in an imaging plane, and the array may include millions or tens of millions (or more) of imaging elements. Each imaging element may be configured to receive incident light (e.g., photons) and generate a signal based on the light incident on the imaging element. The imaging sensor 108 may be, for example, a Complementary metal-oxide-semiconductor (CMOS) sensor, a charge coupled device (CCD) sensor, or another type of sensor. The image signal processor (ISP 118) can be coupled to, and in electronic communication with, the imaging sensor 108, and may receive image information from the imaging sensor 108 of a target scene captured by the imaging sensor 108. In some embodiments, the system-on-chip 102 may include, or be incorporated into, the imaging device 100, which can be a standalone camera, a mobile device or a cell phone having a camera, a camera module, medical imaging equipment, night vision equipment such as thermal imaging devices, radar, sonar, others configurations of computers (e.g., laptops, tablets, etc.) and/or imaging devices, etc.
The system-on-chip 102 can include an ISP 118, which can comprise, for example, circuitry for the camera image processing aspects of the imaging device 100, as described above. In one non-limiting example, the circuitry can be referred to as front end circuitry. The ISP 118 can receive real-time image data (e.g., over a data stream) from the imaging sensor 108. For example, the ISP 118 can receive image pixels from the imaging sensor 108 and/or a memory buffer (as described herein in reference to
The components operatively coupled with the system-on-chip 102 (e.g., the ISP 118 and the other system-on-chip components 192) can be driven at a voltage operating point according to design parameters of the system-on-chip 102. In some aspects, the system-on-chip 102 can include multiple power rails for driving different components included on the system-on-chip 102 at different voltage operating points. For example, all of the components of the system-on-chip 102 may be installed on the same power rail; and thus, all of the components of the system-on-chip 102 may operate at the same voltage level. In some aspects, some of the components of the system-on-chip 102 may be installed on separate power rails and thus operate at different voltage levels. In some aspects, all of the components of the system-on-chip 102 may operate on a single power rail.
As a person of ordinary skill in the art will appreciate, the imaging device may also include other components but are not illustrated for clarity of
The system-on-chip 102 may be a specialized digital signal processor (DSP) used for imaging applications in digital cameras, mobile phones or other devices. The system-on-chip 102 may employ parallel computing with single instruction, multiple data (SIMD) or multiple instruction, multiple data (MIMD) technologies to increase speed and efficiency through processing using a number of processors that function asynchronously and independently. At any time, different processors may be executing different instructions on different pieces of data. In some aspects, to increase the system integration on embedded devices, the system-on-chip 102 may comprise a multi-core processor architecture.
The imaging sensor 208 may further include a sensor clock 210, which as described above, can regulate the rate at which the imaging sensor 208 outputs pixels to the ISP 218 and/or a memory buffer 230. Similarly, the ISP 218 may further include an ISP clock 220, which can regulate the rate at which the ISP 218 can process incoming pixels from the imaging sensor 208 and/or the memory buffer 230. The ISP 218 may further comprise and/or be operatively coupled to additional components for performing one or more of the aspects described herein, e.g., the memory buffer 230, an imaging controller 250, a voltage regulator 260, a processing unit 240, among other imaging and processing components. The memory buffer 230 can buffer slices of an image frame (e.g., lines of pixels) along the image path from the imaging sensor 208 to the processing unit 240 and/or the ISP 218. In an aspect, the processing unit 240 can monitor pixel count values and/or pixel fill levels at the memory buffer 230, as further described herein. In an aspect, the memory buffer 230 can comprise DDR, cache, system cache, on-chip memory, etc. The imaging controller 250 can perform certain operations in connection with the voltage scaling aspects described herein in connection with one or more of the ISP 218, the ISP clock 220, the memory buffer 230, the processing unit 240, etc. In one embodiment, the processing unit 240 can be located within a data control portion of the imaging processing device 200. The data control portion can be electrically connected in parallel with the ISP 218, for example. In another embodiment, the processing unit 240 can be a part of a data path (not explicitly pictured in
The imaging controller 250 may further include or be operatively coupled with the voltage regulator 260. The voltage regulator 260, as described herein, can dynamically (e.g., in real-time and/or within a sensor frame time) switch voltage operating points at the ISP 218 such that an average voltage or frequency operating point at the ISP 218 (e.g., a rate at which the ISP 218 processes input pixels) can be greater than or equal to the pixel input frequency of the imaging sensor 208. Again, given their direct relation, the pixel input frequency may interchangeably be referred to as the pixel clock rate, the operating frequency, pixel throughput, output pixel throughput, operating pixel throughput, and/or the operating voltage for one or both of the ISP 218 and the ISP clock 220. Similarly, the pixel output frequency may interchangeably be referred to as the pixel clock rate, the operating frequency, pixel throughput, output pixel throughput, operating pixel throughput, and/or the operating voltage for one or both of the imaging sensor 208 and the sensor clock 210. In an alternative embodiment, the methods described herein may be implemented from the perspective of the imaging sensor 208, rather than from the perspective of the ISP 218.
Although a number of separate components are illustrated in
As an example, the system-on-chip 202 may have multiple voltage operating points, each of the voltage operating points being associated with a different maximum processing frequency. For instance, the system-on-chip 202 may have a low voltage operating point (e.g., 0.63V and 400 MHz) and a high voltage operating point (e.g., 0.72V and 480 MHz), which may also be referred to as the low voltage level 361 (or “first voltage operating point”) and the high voltage level 362 (or “second voltage operating point”), respectively. An ISP voltage level axis 319 illustrates an ISP voltage level for a power rail operatively coupled to the ISP 218. In association with the ISP voltage level axis 319, an example low voltage level and an example high voltage level are illustrated in
Continuing with the above example, the system-on-chip 202 may possess certain configuration parameters related to the imaging sensor 208 (as further described below), the sensor parameters including, for example, an active pixel width for the sensor (e.g., 5,500 pixels), a frame width (e.g., 7,400 pixels), and a pixel clock rate (e.g., 560 MHz). In a traditional imaging system, given the above sensor parameters, the pixel output rate of the sensor may be calculated as over 400 MHz. As further described below, a low voltage operating point of the ISP may be insufficient for an example ISP to handle an entirety of a sensor output. Thus, traditional imaging devices would typically be configured to operate at a high voltage operating point for the ISP (e.g., 480 MHz) for an entire sensor duration.
Instead, as illustrated in
As illustrated by the dashed line, at a time point 322, the memory buffer 230 starts with an empty buffer level 341. Between the time point 322 and a time point 323, the memory buffer 230 continues to receive pixels from the imaging sensor 208 (as illustrated by the buffer level increasing) and continues to provide a portion of the incoming pixels (e.g., first sets of pixels) to the ISP 218 for processing. During this time, the ISP 218 operates at the low voltage level 361. When operating at the low voltage level 361, the ISP 218 may be capable of processing only a portion of the incoming pixels from the imaging sensor 208 and/or the memory buffer 230. The memory buffer 230 may thus be configured to store the remaining, unprocessed portion (“second set of pixels) of the incoming pixels in the memory buffer 230. In response, the memory buffer 230 may be configured to update a pixel count value based on the unprocessed pixel portions. The system may continue in this way until the buffer level reaches a threshold, e.g., at the time point 323 where the pixel count value reaches the pixel threshold value 342. As described herein, the pixel count value (e.g., as represented by the pixel count value axis 331 in
As further described below, the system may determine the pixel threshold value 342 based on, for example, the low voltage level 361, the high voltage level 362, and the sensor parameters. The derivation of the pixel threshold value 342 is described in connection with
Thereafter, the memory buffer 230, further in response to the pixel count value reaching the pixel threshold value, can provide the stored pixels to the ISP 218 for processing at the high voltage level 362 within the sensor frame time. While operating at the high voltage level 362, the ISP 218 may process all of the incoming pixels from the imaging sensor 208 (e.g., bypassing storage at the memory buffer 230), in addition to processing portions of the incoming second set (previously stored) pixels from the memory buffer 230 (e.g., thereby reducing the pixel count value accordingly). The ISP 218 may continue in this way until the buffer at the memory buffer 230 is empty (e.g., the empty buffer level 341). Then the ISP 218 can switch back to the low voltage level 361.
As an illustrative example, the memory buffer 230, before providing the second set (previously stored) of pixels to the ISP 218, can provide, to the ISP 218, one or more additional sets of pixels of the plurality of pixels for processing at the first voltage operating point within the sensor frame time. For each of the one or more additional sets of pixels provided to the ISP 218, the memory buffer 230 can store a further set of pixels, wherein each of the further sets of pixels contributes to the pixel count value. This is illustrated in
In an aspect, the voltage regulator 260 can initiate the above described voltage operating point switches at the ISP 218 and the memory buffer 230 can perform the above described operations until a total number of pixels processed by the ISP 218 within the sensor frame time is equal to a number of the plurality of pixels received at the memory buffer 230 from the imaging sensor 208. This is illustrated in
In this way, and as described above, the voltage regulator 260 is configured to switch the voltage operating point for the ISP 218 between the first and second (“high and low”) voltage operating points such that an average operating frequency (not pictured) of the ISP 218 is greater than or equal to an input frequency of the sensor (e.g., based on the pixel clock rate of the sensor clock 210) and such that a lag time duration for displaying the image (e.g., via the display engine 284) is reduced based on the ISP 218 processing, within the sensor frame time, the total number of pixels at the average operating frequency.
As a non-limiting example, the systems and methods described herein can enable the ISP 218 to eliminate frame delay (e.g., related to the imaging sensor 208) as compared to other methods that include storing pixel data from a sensor in a memory (e.g., double data rate (DDR) memory) before being read from the DDR and processed, for example, by the ISP. Thus, as described above, the systems and methods described herein can enable reducing lag for displaying an image via the imaging processing device 200. For example, the memory buffer (e.g., the memory buffer 230) can be static random-access memory (SRAM), local storage, or some other kind of memory that is capable of storing small portions of the image (e.g., in accordance with a memory storage capability of the memory buffer 230) without creating delay for displaying the image. As described above, this can allow for a lag time duration for displaying the image to be reduced to within a frame time of the imaging sensor 208.
In an embodiment, the system is configured to avoid completely filling the buffer (e.g., allowing the memory buffer 230 to reach a full buffer level 343), so as to allow for buffer drain times and voltage switching times (e.g., ramp-up and/or ramp-down times). For example, switching from the low voltage level 361 to the high voltage level 362 may take the ISP 218, for example, 150 microseconds. Thus, the full buffer level 343 may be greater than the pixel threshold value 342 in order to compensate for at least 15 pixel lines (e.g., 10 microseconds per pixel line), in one example, and as further described below.
Portions of the above non-limiting examples are illustrated in
The system can be configured to calculate the pixel threshold value 342 in real-time (e.g., during the sensor frame time duration from the sensor frame start time 311 until the sensor frame end time 312), using proprietary formulas, based on associated parameters for the imaging sensor 208, the low voltage level 361, and the high voltage level 362. The low voltage level 361 and the high voltage level 362 may be included in a frequency plan for the system-on-chip 202 in association with one or more power rails for the system-on-chip 202, as further described in connection with
The sensor configuration parameters for the imaging sensor 208 can comprise, for example, an active pixel width (or “activity width” or “ActiveWidth”), a frame width (or “FrameWidth”), a horizontal blank value (or “HBLANK”), and an output clock rate in MHz (or “OPCLK” or “OP_CLK”). For example, ActiveWidth can represent a standard number of pixels in a horizontal image line from the imaging sensor 208. Values for the sensor configuration parameters (e.g., for the imaging sensor 208) could include, for example, 5488 active pixel clocks, 7352 total pixel clocks, 1864 horizontal blanking pixels, and 561.6 MHz, respectively. HBLANK may represent, for example, a duration of inactive pixels in an image line, e.g., separation of image lines in time. In some instances, HBLANK parameters may be used to reduce pixel clock rates at the system-on-chip 202. As one example, an image line may comprise 5,488 active pixel clocks (e.g., ActiveWidth) and 7,352 total pixel clocks (e.g., FrameWidth). In this example, with a single line buffer (e.g., one example embodiment of the memory buffer 230) used as a storage medium, and an output clock rate (e.g., OPCLK) of 561 MHz, the pixel clock of the ISP (e.g., ISP_Rate), for example, the ISP 218, may be calculated to be 419 MHz according to Equation 1. Additional examples and equation variations are demonstrated below.
Operating parameters for the system-on-chip 202 (and thereby the ISP 218) can include, for example, a low voltage operating point (e.g., the low voltage level 361), a high voltage operating point (e.g., the high voltage level 362), a maximum supported frequency (e.g., Fmax1) for the ISP 218 at the high voltage level 362 (e.g., “ISPCLK1” or “fast clock rate”), a maximum supported frequency (e.g., Fmax2) for the ISP 218 at the low voltage level 361 (e.g., “ISPCLK2” or “slow clock rate”)
In some aspects, the system-on-chip 202 can operate at more than two voltage operating points. For example, the system-on-chip 202 could operate at five different operating points Example voltage levels and associated maximum operating frequencies (e.g., “ISPCLK”) for the voltage level could include, for example, the values as shown in Table 1. Collectively, Table 1 can represent an example frequency plan for the system-on-chip 202.
Given the frequency plan and the sensor parameters, the system-on-chip 202, in conjunction with one or more of the memory buffer 230, the imaging controller 250, the voltage regulator 260, the processing unit 240, and/or the ISP 218, can determine the pixel threshold value 342 (e.g., “ActiveWidthSlow” or the “active width at low voltage”) for achieving the operations illustrated in
For example, in general, as described above, the pixel processing rate for the ISP 218 (e.g., “ISP_Rate”) must be greater than or equal to the pixel output rate from the imaging sensor 208 (e.g., “SensorOutputRate”). Thus, since “ISP_Rate” must be greater than or equal to “SensorOutputRate,” Equation 2 can be derived. Equation 2 is another form of Equation 1.
which provides for the output pixel clock rate of the imaging sensor 208, given the parameters described above. Given this, Equation 3 can be derived.
further based on the parameters described above. Finally, the pixel threshold value 342 (“ActiveWidthSlow”) can be equated as shown in either of Equations 4 or 5.
or
Thus, by determining the pixel threshold value 342, the system-on-chip 202 and the ISP 218 can effectively match the sensor output pixel rate (e.g., on average), over the entire frame duration (e.g., from the sensor frame start time 311 to the sensor frame end time 312), while operating at the low voltage level 361 (e.g., thus a lower pixel clock rate) for the majority of the duration. Such power cycling allows power savings over a system operating at only the high voltage level 362, for example.
The pixel threshold value 342 (e.g., ActiveWidthSlow) may be utilized to compute the full buffer level 343, for example, based on parameters of the imaging sensor 208 and/or operating points of the system-on-chip 202. The pixel threshold value 342 may also incorporate overheard from the system-on-chip 202, for example, related to a time for changing voltage levels (e.g., of the ISP 218). Thus, in an aspect, the full buffer level 343 may be considered as the pixel threshold value 342 including said overhead. In response to the pixel count value (e.g., as illustrated by the pixel count value axis 331) reaching the pixel threshold value 342, the system (e.g., via a voltage regulator, as described below with reference to
In an aspect, if the system-on-chip 202 utilizes multiple ISPs, then the pixel threshold value 342 (e.g., ActiveWidthSlow or pixels per cycle per processor) can be calculated as demonstrated in Equation 6, where N represents the number of ISPs.
In another alternative embodiment, for example, one where the high voltage level 362 for the system-on-chip 202 has yet to be determined, a chip designer may calculate a minimum required high-voltage operating point (e.g., ISPCLK2) for the system-on-chip 202 required for handling a given target power level (e.g., a pixel clock rate for the imaging sensor 208). To that end, given the equality shown in Equation 7 (which is derived based on the Equations (2)-(6), Equation 8 may be used to determine ISPCLK2 for this scenario.
In an aspect, the memory buffer 430 can operate as a buffer for incoming pixels as described in connection with
As illustrated, the memory buffer 430 and/or the ISP 418 can receive pixels from the imaging sensor 408. In an aspect, the ISP 418 can start at the low voltage level 361 (e.g., at the time point 322 and the sensor frame start time 311) and an amount (e.g., a first set) of the incoming pixels (e.g., as received from the memory buffer 430) can be processed at the ISP 418 immediately, while the remaining pixels (e.g., a second set) can be stored at the memory buffer 430. Thereafter (e.g., at the time point 323), when the processing unit 440 determines that the pixel count value 431 has reached the pixel threshold value 442, the processing unit 440, in connection with the imaging controller 450, the parameter table 452, and/or the voltage regulator 460, can update the parameters for the imaging sensor 208 at the parameter table 452. The imaging controller 450 can operate at a particular speed, and via a voltage regulator 460 operatively coupled to the parameter table 452, a clock source 421, a voltage source 464, and the information from the processing unit 440, the imaging controller 450 can control when and whether the ISP 418 switches between the low voltage level 361 and the high voltage level 362. In one aspect, alone (not pictured), or in connection with the imaging controller 450, the voltage regulator 460 may control when and whether the ISP 418 switches voltage operating points. In an aspect, the voltage source 464 may be tied to the power rail A 403 to provide voltage information and control to the voltage regulator 460. As mentioned above, the system-on-chip 402 may not operate on multiple power rails, instead, all of the components of the system-on-chip 402 may operate on only one power rail in some embodiments.
In an embodiment, the processing unit 440 may comprise one or more components of or fully comprise an imaging controller for the imaging device 400. As one non-limiting example, the processing unit 440 can comprise, or be included within, the imaging controller 450. Furthermore, in an embodiment, the imaging controller 450 can comprise, or be included within, the ISP 418. Thus, the imaging controller can be operationally coupled to the ISP 418 and/or the processing unit 440. Furthermore, in some embodiments, the processing unit 440, in connection with the imaging controller 450, can be located within the ISP 418.
Although a number of separate components are illustrated in
The imaging device 500 may further include a display engine 584, which may generally correspond to the display engine 184, the display engine 284, and/or the display engine 484. However, in the alternative embodiment illustrated in
Although a number of separate components are illustrated in
The imaging device 600 may further include a video encoder 686, which may generally correspond to the video encoder 186, the video encoder 286, the video encoder 486, and/or the video encoder 586. However, in the alternative embodiment illustrated in
Although a number of separate components are illustrated in
As described above in connection with
As one having ordinary skill in the art will appreciate, the ISP 218 can constantly monitor (e.g., peek) the memory buffer 230 and read out a pixel if the memory buffer 230 is not empty. Thus, the imaging processing device 200 can include a pixel counter (not pictured) to count the number of pixels in the memory buffer 230. As one example, the number of pixels in the memory buffer 230 can increase if the draining rate (e.g., Out_rate described above) from the memory buffer 230 is less than the filling rate (e.g., In_rate described above). As another example, the number of pixels in the memory buffer 230 can decrease if the draining rate (e.g., Out_rate described above) from the memory buffer 230 is greater than the filling rate (e.g., In_rate described above). As described above, if the number of pixels reaches a high threshold value (e.g., one of the Out_rate levels illustrated in
As a non-limiting example,
In one example, means for capturing may comprise the imaging device 400 via the imaging sensor 408 and/or the sensor clock 410. In one example, means for identifying may comprise the imaging device 400 via the voltage regulator 460 in connection with one the parameter table 452 and/or the imaging controller 450. In one example, means for receiving and/or means for storing may comprise the imaging device 400 via the memory buffer 430 and/or the ISP 418. In one example, means for comparing, means for processing, means for reading, means for calculating, and/or means for deducting, means for reading out pixels, among other means, may comprise the imaging device 400 via the processing unit 440 in connection with the memory buffer 430. In one example, means for displaying may comprise the imaging device 400 via the display engine 484. In another example, means for displaying may comprise the imaging device 500 via the display engine 584. In one example, means for encoding may comprise the imaging device 400 via the video encoder 486. In another example, means for encoding may comprise the imaging device 600 via the video encoder 686. Although such non-limiting example means refer to certain of the aspects of
As used herein, the term “determining” and/or “identifying” encompass a wide variety of actions. For example, “determining” and/or “identifying” may include calculating, computing, processing, deriving, choosing, investigating, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and the like. Also, “determining” may include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like. Also, “determining” may include resolving, identifying, establishing, selecting, choosing, determining and the like.
As used herein, a phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover: a, b, c, a-b, a-c, b-c, and a-b-c.
The various operations of methods described above may be performed by any suitable means capable of performing the operations, such as various hardware and/or software component(s), circuits, and/or module(s). Generally, any operations illustrated in the figures may be performed by corresponding functional means capable of performing the operations.
As used herein, the term interface may refer to hardware or software configured to connect two or more devices together. For example, an interface may be a part of a processor or a bus and may be configured to allow communication of information or data between the devices. The interface may be integrated into a chip or other device. For example, in some embodiments, an interface may comprise a receiver configured to receive information or communications from a device at another device. The interface (e.g., of a processor or a bus) may receive information or data processed by an ISP, a front end, or another device or may process information received. In some embodiments, an interface may comprise a transmitter configured to transmit, provide, or communicate information or data to another device. Thus, the interface may transmit information or data or may prepare information or data for outputting for transmission (e.g., via a bus).
The various illustrative logical blocks, modules and circuits described in connection with the present disclosure may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) signal or other programmable logic device (PLD), discrete gate or transistor logic, discrete hardware components or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any commercially available processor, controller, imaging controller, microcontroller, state machine, or otherwise. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
In one or more aspects, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray® disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Thus, in some aspects, computer readable medium may comprise non-transitory computer readable medium (e.g., tangible media). In addition, in some aspects computer readable medium may comprise transitory computer readable medium (e.g., a signal). Combinations of the above should also be included within the scope of computer-readable media.
Thus, certain aspects may comprise a computer program product for performing the operations presented herein. For example, such a computer program product may comprise a computer readable medium having instructions stored (and/or encoded) thereon, the instructions being executable by one or more processors to perform the operations described herein. For certain aspects, the computer program product may include packaging material.
The methods disclosed herein comprise one or more steps or actions for achieving the described method. The method steps and/or actions may be interchanged with one another without departing from the scope of the claims. In other words, unless a specific order of steps or actions is specified, the order and/or use of specific steps and/or actions may be modified without departing from the scope of the claims.
Software or instructions may also be transmitted over a transmission medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of transmission medium.
Further, it should be appreciated that modules and/or other appropriate means for performing the methods and techniques described herein can be downloaded and/or otherwise obtained by an imaging device 100, an imaging device 200, an imaging device 400, a system-on-chip 102, a system-on-chip 202, a system-on-chip 402, an ISP 118, an ISP 218, an ISP 418, an imaging sensor 108, an imaging sensor 208, an imaging sensor 408, and/or another device as applicable. For example, such a device can be coupled to a server to facilitate the transfer of means for performing the methods described herein. Alternatively, various methods described herein can be provided via storage means (e.g., RAM, ROM, a physical storage medium such as a compact disc (CD) or floppy disk, etc.), such that an imaging device 100, an imaging device 200, an imaging device 400, and/or another device can obtain the various methods upon coupling or providing the storage means to the device. Moreover, any other suitable technique for providing the methods and techniques described herein to a device can be utilized.
It is to be understood that the claims are not limited to the precise configuration and components illustrated above. Various modifications, changes and variations may be made in the arrangement, operation and details of the methods and apparatus described above without departing from the scope of the claims.
While the foregoing is directed to aspects of the present disclosure, other and further aspects of the disclosure may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.