MULTIPLE IMAGE PROCESSING
Embodiments of the present application automatically utilize parallel image captures in an image processing pipeline. In one embodiment, image processing circuitry concurrently receives first image data to be processed and second image data to be processed, wherein the second image data is processed to aid in enhancement of the first image data.
Latest BROADCOM CORPORATION Patents:
This application claims priority to copending U.S. provisional application entitled, “Image Capture Device Systems and Methods,” having Ser. No. 61/509,747, filed Jul. 20, 2011, which is entirely incorporated herein by reference.
BACKGROUNDWith current cameras, there is a significant delay between the capture of an image and the subsequent display of a framed image to the user via a viewfinder. Accordingly, advances in image processing may allow for improvements, such as shorter latency.
Many aspects of the present disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
This disclosure pertains to a device, method, computer useable medium, and processor programmed to automatically utilize parallel image captures in an image processing pipeline in a digital camera, digital video camera, or other imaging device. One of ordinary skill in the art would recognize that the techniques disclosed may also be applied to other contexts and applications as well.
For cameras in embedded devices, e.g., digital cameras, digital video cameras, mobile phones, personal data assistants (PDAs), tablets, portable music players, and desktop or laptop computers, to produce more visually pleasing images, techniques such as those disclosed herein can improve image quality without incurring significant computational overhead or power costs.
To acquire image data, a digital imaging device may include an image sensor that provides a number of light-detecting elements (e.g., photodetectors) configured to convert light detected by the image sensor into an electrical signal. An image sensor may also include a color filter array that filters light captured by the image sensor to capture color information. The image data captured by the image sensor may then be processed by an image processing pipeline circuitry, which may apply a number of various image processing operations to the image data to generate a full color image that may be displayed for viewing on a display device, such as a monitor.
Referring to
In some embodiments, the image processing circuitry 100 may include various subcomponents and/or discrete units of logic that collectively form an image processing “pipeline” for performing each of the various image processing steps. These subcomponents may be implemented using hardware (e.g., digital signal processors or ASICs (application-specific integrated circuits)) or software, or via a combination of hardware and software components. The various image processing operations may be provided by the image processing circuitry 100.
The image processing circuitry 100 may include front-end processing logic 103, pipeline processing logic 104, and control logic 105, among others. The image sensor(s) 101 may include a color filter array (e.g., a Bayer filter) and may thus provide both light intensity and wavelength information captured by each imaging pixel of the image sensors 101 to provide for a set of raw image data that may be processed by the front-end processing logic 103.
In some embodiments, a single lens 110 and a single image sensor 101 may be employed in the image processing circuitry. While in other embodiments, multiple lens 110 and multiple image sensors 101 may be employed, such as for a stereoscopy uses, among others.
The front-end processing logic 103 may also receive pixel data from memory 108. For instance, the raw pixel data may be sent to memory 108 from the image sensor 101. The raw pixel data residing in the memory 108 may then be provided to the front-end processing logic 103 for processing.
Upon receiving the raw image data (from image sensor 101 or from memory 108), the front-end processing logic 103 may perform one or more image processing operations. The processed image data may then be provided to the pipeline processing logic 104 for additional processing prior to being displayed (e.g., on display device 106), or may be sent to the memory 108. The pipeline processing logic 104 receives the “front-end” processed data, either directly from the front-end processing logic 103 or from memory 108, and may provide for additional processing of the image data in the raw domain, as well as in the RGB and YCbCr color spaces, as the case may be. Image data processed by the pipeline processing logic 104 may then be output to the display 106 (or viewfinder) for viewing by a user and/or may be further processed by a graphics engine. Additionally, output from the pipeline processing logic 104 may be sent to memory 108 and the display 106 may read the image data from memory 108. Further, in some implementations, the pipeline processing logic 104 may also include an encoder 107, such as a compression engine, for encoding the image data prior to being read by the display 106.
The encoder 107 may be a JPEG (Joint Photographic Experts Group) compression engine for encoding still images, or an H.264 compression engine for encoding video images, or some combination thereof. Also, it should be noted that the pipeline processing logic 104 may also receive raw image data from the memory 108.
The control logic 105 may include a processor 820 (
Referring now to
In one embodiment, the first process element 201 of an image signal processing pipeline could perform a particular image process such as noise reduction, defective pixel detection/correction, lens shading correction, lens distortion correction, demosaicing, image sharpening, color uniformity, RGB (red, green, blue) contrast, saturation boost process, etc. As discussed above, the pipeline may include a second process element 202. In one embodiment, the second process element 202 could perform a particular and different image process such as noise reduction, defective pixel detection/correction, lens shading correction, demosaicing, image sharpening, color uniformity, RGB contrast, saturation boost process etc. The image data may then be sent to additional element(s) of the pipeline as the case may be, saved to memory 108 (
Referring next to
The benefits of the parallel paths may apply to still images as well as video images captured by the image sensor(s) 101 (
Use of parallel paths in the image signal processing pipeline may enable processing of multiple image data simultaneously while maximizing final image quality. Additionally, each stage in the pipeline may begin processing as soon as image data is available so the entire image does not have to be received from the previous sensor or stage before processing is started.
In an alternative embodiment, multiple imagers or image sensors 101 may be utilized, as shown in
Further, in some embodiments, a secondary or supplemental image may be used in image analysis that can help subsequent image analysis operations for the main image. As an example, a secondary image at a smaller size or resolution than the main image might undergo facial recognition algorithms (or other object recognition algorithm) and output of positive results may be used to identify facial structures (or other objects) in the main image. Therefore, the secondary image may be produced in a format that is more suited for some of the applicable states or processing elements in its path. Accordingly, processing elements 411, 412, may be divided up between elements that are suited for the main image and processing elements 421, 422 that are suited for the secondary image. Accordingly, a secondary image may be initially processed, such as being made smaller or scaled, for the benefit of downstream elements. As an example, the path of the secondary image may contain a noise filtering element due to a downstream element needed for the secondary image to have undergone noise reduction. The different paths or elements in the different paths may also use different imaging formats. For example, one of the paths may use an integral image format whereas a standard image format is used in the other path. Accordingly, downstream elements in the integral image path may need an integral image format as opposed to a standard image format and vice versa.
In some embodiments, the images generated by the first and second paths may be stored in memory 108 and made available for subsequent use by other procedures and elements that follow. Accordingly, in one embodiment, while a main image is being processed in a main path of the pipeline, another image which might be downsized or scaled of that image or a previous image may be read by the main path. This may enable more powerful processing in the pipeline, such as during noise filtering.
For example, during noise filtering, for any given pixel being processed, neighboring pixels are analyzed. This process of denoising the pixel may have a stronger effect with the more pixels that are able to be analyzed further away from the pixel being processed. Due to hardware constraints, such as memory buffer size used by processing logic, there is a limit in how far away from the current pixel that the process can analyze neighboring pixels.
Accordingly, in one embodiment, a downscaled version of the main image is generated in a second path and the noise filter in the main path reads the downscaled version of the image and stores those pixels for noise analysis. Since there are the same number of line buffers but the image is downscaled, this effectively allows the noise filter to see further away in the original image because the second image is at a reduced scale.
Accordingly, another embodiment utilizes a downscaled version of an image to assist in dynamic range optimization processing. By having available a downscaled version of an image alongside a full resolution image in memory 108, a dynamic range optimization process is provided a way to see further away from a current pixel than would be available by only considering the full resolution image. In a similar manner, a high dynamic range imaging process or element also reads a downscaled version of a main image to see further away from the current pixel.
Referring back to
In some embodiments, the front-end processing logic 103 generates two distinct kinds of images for the pipeline processing logic 104. As an example, the imaging device 150 may be capturing video images and the user or the device itself determines to also capture a still image in addition to the video or moving images. A problem to overcome with this task in conventional cameras is that the video images are being generated at a resolution that is less than desired for still images. A potential solution would be to record the video images at the higher resolution desired for the still image, but this would require the pipeline processing logic 104 to undergo processing of the higher resolution video images. However, it is difficult to encode video at a high resolution (e.g., 8 megapixels) and it is also impractical, since video images do not necessarily require a very high resolution.
Accordingly, one embodiment of the present disclosure captures the raw image data by the sensor 101 at the higher resolution suitable for still image photography. Then, the front-end pipeline processing logic 103 scales down the size of the captured images to a resolution size suitable for video processing before feeding the image data to the appropriate pipeline processing logic 104. When the user or the imaging device 150 decides to capture an image still, for this one frame, the front-end pipeline processing logic 103 will receive instructions from the control logic 105 and store the desired frame in memory 108 at the higher resolution. Further, in one embodiment, although a main imaging path of the pipeline is handling the video processing, as processing time allows, the main imaging path can be provided the still image from memory 108.
Accordingly, in one embodiment, the video processing is assigned a higher priority than the still image processing by the pipeline processing logic 104. In such an embodiment, the pipeline processing logic 104 features a single pipeline for processing captured images but has the capability to multiplex the single pipeline between different input images. Therefore, the single pipeline may switch from processing an image or series of images having a high priority to an image or series of images having a lower priority as processing time allows.
Multiplexing of the imaging pipeline is also implemented in an embodiment utilizing multiple image sensors 101. For example, consider a stereoscopic image device that delivers a left image and a right image of an object to a single image pipeline, as represented in
Alternatively, one embodiment utilizes multiple image sensors 101 that produce multiple inputs for the pipeline processing logic 104. Referring now to
Further, in some embodiments, a single image sensor 101 is utilized to capture image information and provide the information to the front-end processing logic 103, whereby the front-end processing logic 103 may generate two input images for parallel paths in the pipeline processing logic 104 (as represented in
Keeping the above points in mind,
Regardless of its form (e.g., portable or non-portable), it should be understood that the electronic device 805 may provide for the processing of image data using one or more of the image processing techniques briefly discussed above, among others. In some embodiments, the electronic device 805 may apply such image processing techniques to image data stored in a memory 830 of the electronic device 805. In further embodiments, the electronic device 805 may include one or more imaging devices 880, such as an integrated or external digital camera, configured to acquire image data, which may then be processed by the electronic device 805 using one or more of the above-mentioned image processing techniques.
As shown in
Before continuing, it should be understood that the system block diagram of the device 805 shown in
Referring next to
Beginning in step 902, imaging processing circuitry 100 provides an imaging pipeline for processing images captured from one or more image sensors 101, where the imaging single processing pipeline features two parallel paths for processing the images. As described in step 904, in a first parallel path of the pipeline, an input image obtained from the image sensor(s) 101 is processed at full-resolution. Additionally, in a second parallel path of the pipeline, an input image obtained from the image sensor(s) 101 is processed at a down-scaled resolution, as depicted in step 906. The down-scaled resolution version of the input image is output from the second parallel path of the pipeline before completion of processing of the input image at full-resolution and is provided for display, in step 908.
Next, referring to
In
Further, in
Next, in
Any process descriptions or blocks in flow charts should be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process, and alternate implementations are included within the scope of embodiments of the present disclosure in which functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonably skilled in the art.
In the context of this document, a “computer readable medium” can be any means that can contain, store, communicate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer readable medium can be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples (a nonexhaustive list) of the computer readable medium would include the following: an electrical connection (electronic) having one or more wires, a portable computer diskette (magnetic), a random access memory (RAM) (electronic), a read-only memory (ROM) (electronic), an erasable programmable read-only memory (EPROM or Flash memory) (electronic), an optical fiber (optical), and a portable compact disc read-only memory (CDROM) (optical). In addition, the scope of certain embodiments includes embodying the functionality of the embodiments in logic embodied in hardware or software-configured mediums.
It should be emphasized that the above-described embodiments are merely possible examples of implementations, merely set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiment(s) without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.
Claims
1. An image capture device, comprising:
- a hardware processor; and
- an image processing circuitry that concurrently receives first image data to be processed and second image data to be processed, wherein the second image data is processed to aid in enhancement of the first image data.
2. The image capture device of claim 1, wherein the first image data comprises video.
3. The image capture device of claim 1, wherein the image processing circuitry comprises an imaging pipeline for processing a plurality of image data captured from at least one image sensor, where the imaging pipeline features two parallel paths for processing the plurality of image data.
4. The image capture device of claim 3, wherein the first image data is processed at full-resolution on a first parallel path and the second image data is processed at a down-scaled resolution on a second parallel path.
5. The image capture device of claim 1, further comprising:
- a viewfinder display that displays output of the second image data from the image processing circuitry before completion of processing of the first image data by the image processing circuitry.
6. The image capture device of claim 1, wherein the enhancement of the first image data comprises at least one of noise filtering, dynamic range optimization, and high dynamic range imaging.
7. The image capture device of claim 1, wherein the image processing circuitry comprises an imaging pipeline for processing a plurality of image data captured from at least one image sensor, where the imaging pipeline features a singular path for processing the plurality of image data by multiplexing the plurality of image data between the singular path.
8. The image capture device of claim 1, further comprising:
- a first image sensor that recorded the first image data; and
- a second image sensor that recorded the second image data.
9. An image processing method, comprising:
- receiving a first image data to be processed and a second image data to be concurrently processed; and
- processing the second image data to aid in enhancement of the first image data.
10. The image processing method of claim 9, wherein the first image data comprises video.
11. The image processing method of claim 9, wherein the first image data and the second image data are processed in a singular pipeline path, the method further comprising:
- multiplexing the first image data and the second image data between the singular path.
12. The image processing method of claim 9, wherein the first image data and the second image data are processed in parallel pipeline paths, wherein the first image data is processed at full-resolution on a first parallel path and the second image data is processed at a down-scaled resolution on a second parallel path.
13. The image processing method of claim 12, further comprising:
- displaying output of the second image data from the second parallel path before completion of processing of the first image data at the first parallel path.
14. The image processing method of claim 9, wherein the enhancement of the first image data comprises at least one of noise filtering, and dynamic range optimization, and high dynamic range imaging.
15. A computer readable medium having an image processing program, when executed by a hardware processor, causes the hardware processor to:
- receive a first image data to be processed and a second image data to be concurrently processed; and
- process the second image data to aid in enhancement of the first image data.
16. The computer readable medium of claim 15, wherein the first image data comprises video.
17. The computer readable medium of claim 15, wherein the first image data and the second image data are processed in a singular pipeline path, the image processing program further causing the hardware processor to:
- multiplex the first image data and the second image data between the singular path.
18. The computer readable medium of claim 15, wherein the first image data and the second image data are processed in parallel pipeline paths, wherein the first image data is processed at full-resolution on a first parallel path and the second image data is processed at a down-scaled resolution on a second parallel path.
19. The computer readable medium of claim 18, the image processing program further causing the hardware processor to:
- display output of the second image data from the second parallel path before completion of processing of the first image data at the first parallel path.
20. The computer readable medium of claim 15, wherein the enhancement of the first image data comprises at least one of noise filtering, and dynamic range optimization, and high dynamic range imaging.
Type: Application
Filed: Sep 19, 2011
Publication Date: Jan 24, 2013
Applicant: BROADCOM CORPORATION (Irvine, CA)
Inventors: David Plowman (Great Chesterfield), Naushir Patuck (Cambridge), Benjamin Sewell (Truro)
Application Number: 13/235,975
International Classification: H04N 5/228 (20060101); H04N 5/217 (20110101);