Intelligent high dynamic range image clamping

CN119156830APending Publication Date: 2024-12-17QUALCOMM INC
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202380038195.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-05-25
Filing Date
2023-03-30
Publication Date
2024-12-17

AI Technical Summary

Technical Problem

The prior art results in significant power and bandwidth consumption when generating high dynamic range (HDR) images, especially since the overexposed pixels of long exposure images and underexposed pixels of short exposure images do not contribute to the final fusion image, but still requires Write and read, resulting in waste of resources.

Method used

By clamping the supersaturated area pixels of the long-exposure image to the maximum value and the undersaturated area pixels of the short-exposure image to the minimum value, redundant information is reduced, and a higher compression ratio is applied in storage and processing, HDR images are generated.

Benefits of technology

The power and bandwidth consumption when generating HDR images is significantly reduced, while maintaining the visual quality of the image. By removing pixel information and redundant pixels that do not contribute to the final output, the HDR algorithm is optimized, reducing the resource requirements for storage and processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119156830A_ABST
    Figure CN119156830A_ABST
Patent Text Reader

Abstract

Systems and techniques for generating HDR images are provided. An example method may include obtaining a first image and a second image, the second image having an exposure greater than an exposure of the first image; setting a pixel of the first image below a minimum threshold as a minimum value and a pixel of the second image above a maximum threshold as a maximum value; retrieving, from a memory, a compressed version of the first image having the pixels set to the minimum value and a compressed version of the second image having the pixels set to the maximum value; generating a first decompressed image including the first image having the pixels set to the minimum value and a second decompressed image including the second image having the pixels set to the maximum value; and generating an HDR image based on the first decompressed image and the second decompressed image.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure generally relates to generating high dynamic range (HDR) images.For example, aspects of the present disclosure relate to systems and techniques for reducing the power and bandwidth used by image processing systems to generate high dynamic range images. Background Art

[0002] A camera is a device that receives light using an image sensor and captures image frames (such as still images or video frames). A camera may include one or more processors, such as an image signal processor (ISP), which may process one or more image frames captured by an image sensor. For example, a raw image frame captured by a camera sensor may be processed by an image signal processor (ISP) to generate a final image. A camera may be configured with various image capture and image processing settings to change the appearance of an image. Some camera settings are determined and applied before or during image capture, such as ISO, exposure time (also known as exposure duration), aperture size, f / stop, shutter speed, focus, and gain. In addition, some camera settings may be configured for post-processing of images, such as changes in contrast, brightness, saturation, sharpness, levels, curves, or color. Summary of the invention

[0003] Systems and techniques for reducing power and bandwidth used by an image processing system to generate a high dynamic range image are described herein. According to at least one example, a method for processing image data is provided. The method includes: obtaining a first image having a first exposure time and a second image having a second exposure time from one or more image sensors, wherein the second exposure time is greater than the first exposure time; setting one or more first pixel values ​​of the first image below a minimum threshold to a minimum pixel value and setting one or more second pixel values ​​of the second image above a maximum threshold to a maximum pixel value; storing a compressed version of the first image having one or more first pixel values ​​set to the minimum pixel value and a compressed version of the second image having one or more second pixel values ​​set to the maximum pixel value in a memory; retrieving the compressed version of the first image and the compressed version of the second image from the memory; generating a first decompressed image and a second decompressed image based on the compressed version of the first image and the compressed version of the second image, the first decompressed image including the first image having one or more first pixel values ​​set to the minimum pixel value, the second decompressed image including the second image having one or more second pixel values ​​set to the maximum pixel value; and generating a high dynamic range (HDR) image based on the first decompressed image and the second decompressed image.

[0004] In another example, a device for processing image data is provided, the device comprising at least one memory and at least one processor coupled to the at least one memory. The at least one processor is configured to: obtain a first image having a first exposure time and a second image having a second exposure time from one or more image sensors, wherein the second exposure time is greater than the first exposure time; set one or more first pixel values ​​of the first image below a minimum threshold to a minimum pixel value and set one or more second pixel values ​​of the second image above a maximum threshold to a maximum pixel value; store a compressed version of the first image having one or more first pixel values ​​set to the minimum pixel value and a compressed version of the second image having one or more second pixel values ​​set to the maximum pixel value in the memory; retrieve the compressed version of the first image and the compressed version of the second image from the memory; generate a first decompressed image and a second decompressed image based on the compressed version of the first image and the compressed version of the second image, the first decompressed image including the first image having one or more first pixel values ​​set to the minimum pixel value, the second decompressed image including the second image having one or more second pixel values ​​set to the maximum pixel value; and generate a high dynamic range (HDR) image based on the first decompressed image and the second decompressed image.

[0005] In another example, a non-transitory computer-readable medium is provided, which has instructions stored thereon, which when executed by one or more processors cause the one or more processors to: obtain a first image having a first exposure time and a second image having a second exposure time from one or more image sensors, wherein the second exposure time is greater than the first exposure time; set one or more first pixel values ​​of the first image that are lower than a minimum threshold to a minimum pixel value and set one or more second pixel values ​​of the second image that are higher than a maximum threshold to a maximum pixel value; store in a memory a compressed version of the first image having the one or more first pixel values ​​set to the minimum pixel value and a compressed version of the second image having the one or more second pixel values ​​set to the maximum pixel value; retrieve the compressed version of the first image and the compressed version of the second image from the memory; generate a first decompressed image and a second decompressed image based on the compressed version of the first image and the compressed version of the second image, the first decompressed image including the first image having the one or more first pixel values ​​set to the minimum pixel value, the second decompressed image including the second image having the one or more second pixel values ​​set to the maximum pixel value; and generate a high dynamic range (HDR) image based on the first decompressed image and the second decompressed image.

[0006] In another example, a device for processing image data is provided. The device includes: a component for obtaining a first image with a first exposure time and a second image with a second exposure time from one or more image sensors, wherein the second exposure time is greater than the first exposure time; a component for setting one or more first pixel values ​​of the first image that are lower than a minimum threshold as a minimum pixel value and one or more second pixel values ​​of the second image that are higher than a maximum threshold as a maximum pixel value; a component for storing a compressed version of the first image with one or more first pixel values ​​set to the minimum pixel value and a compressed version of the second image with one or more second pixel values ​​set to the maximum pixel value in a memory; a component for retrieving the compressed version of the first image and the compressed version of the second image from the memory; a component for generating a first decompressed image and a second decompressed image based on the compressed version of the first image and the compressed version of the second image, the first decompressed image including the first image with one or more first pixel values ​​set to the minimum pixel value, the second decompressed image including the second image with one or more second pixel values ​​set to the maximum pixel value; and a component for generating a high dynamic range (HDR) image based on the first decompressed image and the second decompressed image.

[0007] In some aspects, each of the devices described above is a mobile device, a smart or connected device, a camera system, and / or an extended reality (XR) device (e.g., a virtual reality (VR) device, an augmented reality (AR) device, or a mixed reality (MR) device), or may be part of or may include these devices. In some examples, the device may include a mobile device (e.g., a mobile phone or so-called "smart phone" or other mobile device), a wearable device, a personal computer, a laptop computer, a tablet computer, a server computer, a robotic device or system, or other device, or may be part of these devices. In some aspects, the device includes an image sensor (e.g., a camera) or multiple image sensors (e.g., multiple cameras) for capturing one or more images. In some aspects, the device includes one or more displays for displaying one or more images, notifications, and / or other displayable data. In some aspects, the device includes one or more speakers, one or more light-emitting devices, and / or one or more microphones. In some aspects, the device described above may include one or more sensors. In some cases, the one or more sensors may be used to determine the location of the device, the state of the device (e.g., tracking state, operating state, temperature, humidity level, and / or another state) and / or for other purposes.

[0008] This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used in isolation to determine the scope of the claimed subject matter. The subject matter should be understood by reference to appropriate portions of the entire specification of this patent, any or all drawings, and each claim.

[0009] The foregoing and other features and aspects will become more apparent upon reference to the following description, claims and accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Illustrative examples of the present application are described in detail below with reference to the following drawings:

[0011] Figure 1 is a block diagram illustrating an example architecture of an image processing system according to some examples of the present disclosure;

[0012] Figure 2 illustrates multiple images with different exposures for creating a fused high dynamic range image according to some examples of the present disclosure;

[0013] Figure 3 is a flow chart illustrating an example system process for reducing power and bandwidth for generating high dynamic range images according to some examples of the present disclosure;

[0014] Figure 4 is a flow chart illustrating another example system process for reducing power and bandwidth for generating high dynamic range images according to some examples of the present disclosure;

[0015] Figure 5 is a flow chart illustrating an example process for reducing the power and bandwidth used by an image processing system to generate a high dynamic range image according to some examples of the present disclosure; and

[0016] Figure 6 An example computing device architecture according to some examples of the present disclosure is illustrated. DETAILED DESCRIPTION

[0017] Certain aspects of the present disclosure are provided below. Some of these aspects can be applied independently, and some of them can be applied in combination, which is obvious to those skilled in the art. In the following description, specific details are set forth for explanation purposes to provide a thorough understanding of various aspects of the application. However, it is apparent that various aspects can be implemented without these specific details. Each drawing and description are not intended to be restrictive.

[0018] The following description provides only exemplary aspects and is not intended to limit the scope, applicability or configuration of the present disclosure. On the contrary, the following description of exemplary aspects will provide a description that can be used to implement the exemplary aspects to those skilled in the art. It should be understood that various changes can be made to the function and arrangement of elements without departing from the essence and scope of the present application as set forth in the appended claims.

[0019] An electronic device (e.g., a mobile phone, a wearable device (e.g., a smart watch, smart glasses, etc.), a tablet computer, an extended reality (XR) device (e.g., a virtual reality (VR) device, an augmented reality (AR) device, a mixed reality (MR) device, etc.), a connected device, a laptop computer, etc.) may implement a camera to capture images or video frames of scenes, people, animals, and / or any object. A camera may refer to a device that uses an image sensor to receive light and capture an image frame (such as a still image or a video frame). The terms "image," "image frame," and "frame" are used interchangeably herein. A camera system may include a processor (e.g., an image signal processor (ISP), etc.) that may receive one or more images and process the one or more images. For example, a raw image captured by a camera sensor may be processed by an ISP to generate a final image. The processing performed by the ISP may be performed by filters or processing blocks applied to the captured image, such as denoising or noise filtering, edge enhancement, color balance, contrast, intensity adjustment (such as darkening or lightening), hue adjustment, etc. Image processing blocks or modules may include lens / sensor noise correction, Bayer filters, demosaicing, color conversion, correction or enhancement / suppression of image properties, denoising filters, sharpening filters, etc.

[0020] Electronic devices (e.g., mobile phones, wearable devices (e.g., smart watches, smart glasses, etc.), tablet computers, extended reality (XR) devices (e.g., virtual reality (VR) devices, augmented reality (AR) devices, mixed reality (MR) devices, etc.), connected devices, laptop computers, etc.) are increasingly equipped with camera hardware to capture image frames, such as still images and / or video frames, for consumption. For example, an electronic device may include a camera to allow the electronic device to capture video or images of a scene, a person, an object, etc. A camera is a device that receives light using an image sensor and captures image frames (e.g., still images or video frames). In some examples, a camera may include one or more processors, such as an image signal processor (ISP), which may process one or more image frames captured by an image sensor. For example, a raw image frame captured by a camera sensor may be processed by an image signal processor (ISP) of the camera to generate a final image. In some cases, the electronic device implementing the camera may further process the captured images or videos for certain effects (e.g., compression, image enhancement, image restoration, scaling, frame rate conversion, etc.) and / or certain applications (such as computer vision, extended reality (e.g., augmented reality, virtual reality, etc.), object detection, image recognition (e.g., face recognition, object recognition, scene recognition, etc.), feature extraction, authentication and automation, etc.).

[0021] In addition, the camera may be configured with various image capture and image processing settings to change the appearance of the image. Some camera settings may be determined and applied before or during the capture of the image, such as ISO, exposure time (also known as exposure duration), aperture size, f / stop, shutter speed, focus, and gain, etc. Some camera settings may be configured for post-processing of the image, such as changes in contrast, brightness, saturation, sharpness, levels, curves, or color, etc. In some examples, the camera may be configured with certain settings to adjust the exposure of the image captured by the camera.

[0022] In photography, the exposure of an image captured by a camera refers to the amount of light per unit area that reaches the photographic film or, in modern cameras, the electronic image sensor. The exposure is based on certain camera settings, such as, for example, shutter speed, exposure time, and / or lens aperture, as well as the brightness of the scene being photographed. Many cameras are equipped with an automatic exposure or "autoexposure" mode, in which the camera's exposure settings (e.g., shutter speed, exposure time, lens aperture, etc.) can be automatically adjusted to match the brightness of the scene or object being photographed as closely as possible. In some cases, an automatic exposure control (AEC) engine can perform AEC to determine the exposure setting of the image sensor.

[0023] In photography and videography, a technology called high dynamic range (HDR) allows the dynamic range of image frames captured by a camera to be increased beyond the inherent capabilities of the camera. In this context, dynamic range refers to the brightness range between the brightest and darkest areas of a scene or image frame. For example, high dynamic range means that there are many changes in the light level within a scene or image frame. HDR may involve capturing multiple image frames with different exposures of a scene and combining the captured image frames with different exposures into a single image frame. The combination of image frames with different exposures may produce an image with a dynamic range higher than the dynamic range of each individual image frame captured and combined to form an HDR image frame. For example, an electronic device may create a high dynamic range scene by fusing two or more exposure frames into a single frame. HDR is a feature often used by electronic devices such as smart phones and mobile devices for various purposes. For example, in some cases, a smart phone may use HDR to achieve better image quality or image quality similar to that achieved by a digital single-lens reflex (DSLR) camera.

[0024] In some examples, an electronic device may create an HDR image using multiple image frames with different exposures. For example, an electronic device may create an HDR image using a short exposure (SE) image, a medium exposure (ME) image, and a long exposure (LE) image. As another example, an electronic device may create an HDR image using an SE image and a LE image. In some cases, an electronic device may write different image frames from a camera front end to a memory device, such as a double data rate (DDR) synchronous dynamic random access memory (SDRAM) or any other memory device. The processing engine may then retrieve these image frames to fuse them into a single image. However, the different write and read operations used to create an HDR image may result in significant power and bandwidth consumption.

[0025] Generally speaking, the overexposed pixels of the long exposure image and the underexposed pixels of the short exposure image do not contribute to the final fused image (e.g., HDR image) generated by the HDR algorithm. However, the overexposed pixels of the long exposure image and the underexposed pixels of the short exposure image are still written to the memory device from the camera front end and read back from the memory device by the processing engine. Therefore, the operations of reading and writing the overexposed pixels of the long exposure image and the underexposed pixels of the short exposure image contribute to the power and bandwidth consumption of the electronic device, even though such pixels do not contribute to the final fused image.

[0026] Described herein are systems, apparatus, methods (also referred to as processes), and computer-readable media (collectively referred to herein as "systems and techniques") for reducing power and bandwidth consumption when creating HDR images. In some examples, the systems and techniques described herein can optimize HDR algorithms and reduce power and bandwidth consumption when creating HDR images. In some cases, the systems and techniques described herein can reduce power and bandwidth consumption when creating HDR images by removing redundant pixel information and / or pixel information that does not contribute to the final output when creating the HDR image.

[0027] For example, the systems and techniques herein may clamp pixels that do not contribute to the final fused image (e.g., HDR image), such as overexposed pixels of a long exposure image and underexposed pixels of a short exposure image, and compress the clamped long exposure image and short exposure image. Since the clamped pixels of the long exposure image have the same maximum value and the clamped pixels of the short exposure image have the same minimum value, the amount of compressed information is reduced and / or the compression ratio is increased. Therefore, given a higher compression ratio of the long exposure image and the short exposure image, the systems and techniques described herein may reduce the power and bandwidth used to process, store (e.g., write to memory), and retrieve (e.g., read from memory) the compressed images.

[0028] In some examples, the systems and techniques described herein may clamp pixels present in oversaturated regions of a long exposure image to a maximum value. In some cases, if all neighboring pixels in a pixel kernel (e.g., in an NxN kernel such as a 5x5 kernel) are above a maximum threshold, the systems and techniques described herein may clamp a central pixel in a kernel in a long exposure image to a maximum value. In some examples, the clamped image is then passed through a compression block that provides a higher compression ratio (e.g., than compression of an unclamped long exposure image) because pixels in saturated regions of the long exposure image (e.g., clamped pixels) have the same maximum value.

[0029] In addition, the systems and techniques described herein can clamp pixels present in undersaturated regions of the short exposure image to a minimum value. In some cases, if all neighboring pixels in a pixel kernel (e.g., in an NxN kernel such as a 5x5 kernel) are below a minimum threshold, the systems and techniques described herein can clamp a center pixel in the kernel of the short exposure image to a minimum value. In some examples, the clamped image is then passed through a compression block that provides a higher compression ratio (e.g., than compression of an unclamped short exposure image) because the pixels in the undersaturated regions of the short exposure image (e.g., the clamped pixels) have the same minimum value.

[0030] In some examples, the systems and techniques described herein may similarly clamp pixels in saturated and / or undersaturated regions when creating an HDR image from two image exposures. For example, in some implementations involving two exposures for creating an HDR image, one of the two exposure images may be used as a primary anchor image (e.g., a reference image) while the other exposure image is used as a secondary auxiliary image. The systems and techniques described herein may apply aggressive clamping to the secondary image while applying more conservative clamping to the anchor image. For example, if a long exposure image frame is used as an anchor image, the systems and techniques described herein may apply more conservative clamping to the long exposure image frame by setting the maximum threshold to a high value (e.g., by increasing the maximum threshold). The systems and techniques described herein may apply more relatively aggressive clamping to short exposure images by setting the minimum threshold to a high value (e.g., by increasing the minimum threshold). Such clamping provides significant power and bandwidth savings when creating an HDR image without negatively affecting the visual quality of the HDR image.

[0031] In some examples, the minimum and maximum thresholds may be configurable in software. In some cases, the minimum and maximum thresholds may be updated per frame (e.g., based on 3A (auto focus, auto exposure, auto white balance) auto exposure data from a previous frame). In some cases, the minimum and maximum thresholds may be configurable based on one or more image sensor requirements (such as, for example, but not limited to, bits per pixel, black level, etc.). In some examples, the systems and techniques described herein may enable or disable the above-described smart HDR clamping via software.

[0032] Furthermore, due to the high bandwidth compression associated with the smart HDR clamping process described above, the amount of data written to the memory device from the camera front end and the amount of data read from the memory device by the processing engine can be reduced. The reduction in the amount of data written to and read from the memory device can provide a significant reduction in the power and bandwidth used by the HDR algorithm implemented to create the HDR image.

[0033] Various aspects of the application will be described with reference to the accompanying drawings.

[0034] Figure 1 1 is a block diagram illustrating an example architecture of image processing system 100. Image processing system 100 includes various components for capturing and processing images, such as images of scene 110. Image processing system 100 may capture image frames (e.g., still images or video frames). In some cases, lens 115 and image sensor 130 may be associated with an optical axis. In one illustrative example, a photosensitive area of ​​image sensor 130 (e.g., a photodiode) and lens 115 may be centered on the optical axis.

[0035] In some examples, lens 115 of image processing system 100 faces scene 110 and receives light from scene 110. Lens 115 bends incoming light from the scene toward image sensor 130. Light received by lens 115 then passes through an aperture of image processing system 100. In some cases, the aperture (e.g., the size of the aperture) is controlled by one or more control mechanisms 120. In other cases, the aperture can have a fixed size.

[0036] The one or more control mechanisms 120 may control exposure, focus, and / or zoom based on information from the image sensor 130 and / or information from the image processor 150. In some cases, the one or more control mechanisms 120 may include multiple mechanisms and components. For example, the control mechanism 120 may include one or more exposure control mechanisms 125A, one or more focus control mechanisms 125B, and / or one or more zoom control mechanisms 125C. The one or more control mechanisms 120 may also include in addition to Figure 1 Additional control mechanisms beyond those illustrated in . For example, in some cases, one or more control mechanisms 120 may include control mechanisms for controlling analog gain, flash, HDR, depth of field, and / or other image capture characteristics.

[0037] A focus control mechanism 125B of the control mechanism 120 may obtain a focus setting. In some examples, the focus control mechanism 125B stores the focus setting in a memory register. Based on the focus setting, the focus control mechanism 125B may adjust the position of the lens 115 relative to the position of the image sensor 130. For example, based on the focus setting, the focus control mechanism 125B may adjust the focus by actuating a motor or servo system (or other lens mechanism) to move the lens 115 closer to the image sensor 130 or further away from the image sensor 130. In some cases, additional lenses may be included in the image processing system 100. For example, the image processing system 100 may include one or more micro lenses on each photodiode of the image sensor 130. These micro lenses may each bend light received from the lens 115 toward the corresponding photodiode before the light reaches the photodiode.

[0038] In some examples, the focus setting may be determined via contrast detection autofocus (CDAF), phase detection autofocus (PDAF), hybrid autofocus (HAF), or some combination thereof. The focus setting may be determined using control mechanism 120, image sensor 130, and / or image processor 150. The focus setting may be referred to as an image capture setting and / or an image processing setting. In some cases, lens 115 may be fixed relative to the image sensor and focus control mechanism 125B.

[0039] The exposure control mechanism 125A of the control mechanism 120 may obtain an exposure setting. In some cases, the exposure control mechanism 125A stores the exposure setting in a memory register. Based on the exposure setting, the exposure control mechanism 125A may control the size of the aperture (e.g., aperture size or f / stop), the duration that the aperture is open (e.g., exposure time or shutter speed), the duration that the sensor collects light (e.g., exposure time or electronic shutter speed), the sensitivity of the image sensor 130 (e.g., ISO speed or film speed), the analog gain applied by the image sensor 130, or any combination thereof. The exposure setting may be referred to as an image capture setting and / or an image processing setting.

[0040] A zoom control mechanism 125C of the control mechanism 120 may obtain a zoom setting. In some examples, the zoom control mechanism 125C stores the zoom setting in a memory register. Based on the zoom setting, the zoom control mechanism 125C may control the focal length of a lens element assembly (lens assembly) including the lens 115 and one or more additional lenses. For example, the zoom control mechanism 125C may control the focal length of the lens assembly by actuating one or more motors or servos (or other lens mechanisms) to move one or more lenses relative to each other. The zoom setting may be referred to as an image capture setting and / or an image processing setting. In some examples, the lens assembly may include a parfocal zoom lens or a variable focal length zoom lens. In some examples, the lens assembly may include a focusing lens (in some cases, the focusing lens may be the lens 115) that first receives light from the scene 110, wherein the light then passes through an afocal zoom system between the focusing lens (e.g., the lens 115) and the image sensor 130 before the light reaches the image sensor 130. In some cases, the afocal zoom system may include two positive (e.g., converging, convex) lenses with equal or similar focal lengths (e.g., within a threshold difference of each other) with a negative (e.g., diverging, concave) lens between them. In some cases, zoom control mechanism 125C moves one or more of the lenses in the afocal zoom system, such as the negative lens and one or both of the positive lens. In some cases, zoom control mechanism 125C may control the zoom by capturing images from an image sensor (e.g., including image sensor 130) in a plurality of image sensors at a zoom corresponding to the zoom setting. For example, image processing system 100 may include a wide-angle image sensor with a relatively low zoom and a telephoto image sensor with a greater zoom. In some cases, based on the selected zoom setting, zoom control mechanism 125C may capture images from the corresponding sensors.

[0041] Image sensor 130 includes one or more arrays of photodiodes or other photosensitive elements. Each photodiode measures the amount of light that ultimately corresponds to a particular pixel in an image produced by image sensor 130. In some cases, different photodiodes may be covered by different filters. In some cases, different photodiodes may be covered in different color filters and may therefore measure light that matches the color of the filter covering the photodiode. Various color filter arrays may be used, such as, for example and without limitation, a Bayer color filter array, a four-color color filter array (QCFA), and / or any other color filter array.

[0042] In some cases, the image sensor 130 may alternatively or additionally include opaque and / or reflective masks that block light from reaching certain photodiodes or portions of certain photodiodes at certain times and / or from certain angles. In some cases, opaque and / or reflective masks may be used for phase detection autofocus (PDAF). In some cases, opaque and / or reflective masks may be used to block portions of the electromagnetic spectrum from reaching the photodiodes of the image sensor (e.g., IR cutoff filters, UV cutoff filters, bandpass filters, low pass filters, high pass filters, etc.). The image sensor 130 may also include an analog gain amplifier for amplifying the analog signal output by the photodiode and / or an analog-to-digital converter (ADC) for converting the analog signal output by the photodiode (and / or the analog signal amplified by the analog gain amplifier) ​​into a digital signal. In some cases, certain components or functions discussed with respect to one or more of the control mechanisms in the control mechanism 120 may be alternatively or additionally included in the image sensor 130. Image sensor 130 may be a charge coupled device (CCD) sensor, an electron multiplying CCD (EMCCD) sensor, an active pixel sensor (APS), a complementary metal oxide semiconductor (CMOS), an N-type metal oxide semiconductor (NMOS), a hybrid CCD / CMOS sensor (e.g., sCMOS), or some other combination thereof.

[0043] Image processor 150 may include one or more processors, such as one or more image signal processors (ISPs) (including ISP 154), one or more host processors (including host processor 152), and / or related Figure 6The host processor 152 may be a digital signal processor (DSP) and / or other types of processors discussed in connection with the computing system 600 of the present invention. In some implementations, the image processor 150 is a single integrated circuit or chip (e.g., referred to as a system on a chip or SoC) that includes the host processor 152 and the ISP 154. In some cases, the chip may also include one or more input / output ports (e.g., input / output (I / O) port 156), a central processing unit (CPU), a graphics processing unit (GPU), a broadband modem (e.g., 3G, 4G or LTE, 5G, etc.), memory, connectivity components (e.g., BluetoothTM, global positioning system (GPS), etc.), any combination thereof, and / or other components. I / O ports 156 may include any suitable input / output ports or interfaces according to one or more protocols or specifications, such as an Inter-Integrated Circuit 2 (I2C) interface, an Inter-Integrated Circuit 3 (I3C) interface, a Serial Peripheral Interface (SPI) interface, a serial general purpose input / output (GPIO) interface, a Mobile Industry Processor Interface (MIPI) (such as a MIPI CSI-2 physical (PHY) layer port or interface, an Advanced High-Performance Bus (AHB) bus, any combination thereof, and / or other input / output ports. In one illustrative example, host processor 152 may communicate with image sensor 130 using an I2C port, and ISP 154 may communicate with image sensor 130 using a MIPI port.

[0044] The image processor 150 may perform a number of tasks, such as demosaicing, color space conversion, image frame downsampling, pixel interpolation, automatic exposure (AE) control, automatic gain control (AGC), CDAF, PDAF, automatic white balance, merging image frames to form an HDR image, image recognition, object recognition, feature recognition, receiving input, managing output, managing memory, or some combination thereof. The image processor 150 may store image frames and / or processed images in a random access memory (RAM) 140, a read-only memory (ROM) 145, a cache, a memory unit, another storage device, or some combination thereof.

[0045] Various input / output (I / O) devices 160 may be connected to the image processor 150. The I / O devices 160 may include a display screen, a keyboard, a keypad, a touch screen, a touchpad, a touch-sensitive surface, a printer, any other output device, any other input device, or any combination thereof. In some cases, subtitles may be entered into the image processing device 105B through a physical keyboard or keypad of the I / O device 160, or through a virtual keyboard or keypad of a touch screen of the I / O device 160. The I / O devices 160 may include one or more ports, jacks, or other connectors that implement a wired connection between the image processing system 100 and one or more peripheral devices, through which the image processing system 100 may receive data from one or more peripheral devices and / or send data to one or more peripheral devices. The I / O devices 160 may include one or more wireless transceivers that implement a wireless connection between the image processing system 100 and one or more peripheral devices, through which the image processing system 100 may receive data from one or more peripheral devices and / or send data to one or more peripheral devices. The peripheral devices may include any of the types of I / O devices 160 discussed previously, and may themselves be considered I / O devices 160 once they are coupled to a port, jack, wireless transceiver, or other wired and / or wireless connector.

[0046] In some cases, the image processing system 100 may be a single device. In some cases, the image processing system 100 may be two or more independent devices, including an image capture device 105A (e.g., a camera) and an image processing device 105B (e.g., a computing device coupled to the camera). In some implementations, the image capture device 105A and the image processing device 105B may be coupled together, for example, via one or more wires, cables, or other electrical connectors, and / or wirelessly coupled together via one or more wireless transceivers. In some implementations, the image capture device 105A and the image processing device 105B may be disconnected from each other.

[0047] like Figure 1 As shown, the vertical dotted line will Figure 1The image processing system 100 is divided into two parts, representing an image capture device 105A and an image processing device 105B. The image capture device 105A includes a lens 115, a control mechanism 120, and an image sensor 130. The image processing device 105B includes an image processor 150 (including an ISP 154 and a host processor 152), a RAM 140, a ROM 145, and an I / O device 160. In some cases, some components illustrated in the image capture device 105A (such as the ISP 154 and / or the host processor 152) may be included in the image capture device 105A. In some examples, the image processing system 100 may include one or more wireless transceivers for wireless communications, such as cellular network communications, 802.11 wi-fi communications, wireless local area network (WLAN) communications, or some combination thereof.

[0048] The image processing system 100 may be part of or implemented by a single computing device or multiple computing devices. In some examples, the image processing system 100 may be part of an electronic device (or multiple electronic devices), such as a camera system (e.g., a digital camera, an IP camera, a video camera, a security camera, etc.), a phone system (e.g., a smart phone, a cellular phone, a conferencing system, etc.), a laptop or notebook computer, a tablet computer, a set-top box, a smart TV, a display device, a game console, an XR device (e.g., an HMD, smart glasses, etc.), an IoT (Internet of Things) device, a smart wearable device, a video streaming device, an Internet Protocol (IP) camera, or any other suitable electronic device.

[0049] The image capture device 105A and the image processing device 105B may be part of the same electronic device or different electronic devices. In some implementations, the image capture device 105A and the image processing device 105B may be different devices. For example, the image capture device 105A may include a camera device, and the image processing device 105B may include a computing device, such as a mobile phone, a desktop computer, a smart phone, a smart television, a game console, or other computing device.

[0050] Although the image processing system 100 is shown as including certain components, one of ordinary skill will appreciate that the image processing system 100 may include more than Figure 1Components of the image processing system 100 may include software, hardware, or one or more combinations of software and hardware. For example, in some implementations, components of the image processing system 100 may include electronic circuits or other electronic hardware and / or may be implemented using electronic circuits or other electronic hardware, which may include one or more programmable electronic circuits (e.g., microprocessors, GPUs, DSPs, CPUs, and / or other suitable electronic circuits), and / or may include computer software, firmware, or any combination thereof and / or may be implemented using computer software, firmware, or any combination thereof to perform the various operations described herein. Software and / or firmware may include one or more instructions stored on a computer-readable storage medium and executable by one or more processors of an electronic device implementing the image processing system 100.

[0051] In some examples, Figure 6 The computing system 600 shown and described further below may include the image processing system 100, the image capture device 105A, the image processing device 105B, or a combination thereof.

[0052] In some examples, the image processing system 100 may use multiple image frames with different exposures to create an HDR image. For example, the image processing system 100 may use a short exposure (SE) image, a medium exposure (ME) image, and a long exposure (LE) image to create an HDR image. As another example, the image processing system 100 may use SE images and LE images to create an HDR image. In some cases, the image processing system 100 may write different image frames from one or more camera front-end engines to a memory device, such as a DDR memory device or any other memory device. The post-processing engine may then retrieve these image frames and fuse (e.g., merge, combine) them into a single image. As previously explained, the different write and read operations used to create an HDR image may result in significant power and bandwidth consumption.

[0053] As previously explained, when creating an HDR image, overexposed pixels of the long exposure image and underexposed pixels of the short exposure image generally do not contribute to the final HDR image produced by the image processing system 100. For example, Figure 2 Multiple images with different exposures are illustrated for creating a fused HDR image (eg, HDR image 230). Specifically, Figure 2 A short exposure image 200, a medium exposure image 210, a long exposure image 220, and an HDR image 230 generated by combining or fusing the short exposure image 200, the medium exposure image 210, and the long exposure image 220 are shown. The short exposure image 200 includes underexposed pixels 205, and the long exposure image 220 includes overexposed pixels 225.

[0054] like Figure 2 As shown, the underexposed pixels 205 in the short exposure image 200 and the overexposed pixels 225 in the long exposure image 220 do not contribute to the pixels of the HDR image 230. However, in general, when creating the HDR image 230, the image processing system 100 still writes the underexposed pixels 205 in the short exposure image 200 and the overexposed pixels 225 in the long exposure image 220 from the camera front-end engine of the image processing system 100 to the memory device and reads them back from the memory device (e.g., via the post-processing engine). Therefore, when creating the HDR image 230, the operations of reading and writing the underexposed pixels 205 in the short exposure image 200 and the overexposed pixels 225 in the long exposure image 220 contribute to the overall power and bandwidth consumption of the image processing system 100, even though such pixels do not contribute to the HDR image 230.

[0055] In some examples, the image processing system 100 may reduce the overall power and bandwidth consumption of the image processing system 100 when creating an HDR image, such as the HDR image 230, by optimizing the HDR process implemented to create the HDR image. For example, in some cases, the image processing system 100 may reduce its power and bandwidth consumption when creating the HDR image by removing redundant pixel information and / or pixel information that does not contribute to the final output. For example, the image processing system 100 may clamp pixels that do not contribute to the output HDR image, such as the underexposed pixels 205 in the short exposure image 200 and / or the overexposed pixels 225 in the long exposure image 220, and thereby reduce the amount of information that is processed (e.g., compressed, written to memory, read from memory, etc.).

[0056] Figure 3 3 is a flow chart illustrating an example system process 300 for reducing power and bandwidth for generating an HDR image. In this example, the system process 300 generates an HDR image (e.g., HDR image 350) using three images with different exposures. As shown, the image sensor 130 may capture a short exposure (SE) image 302 of a scene, a medium exposure (ME) image 304 of the scene, and a long exposure (LE) image 306 of the scene.

[0057] The SE image 302 may include an image having an exposure time below a threshold, the ME image 304 may include an image having an exposure time above a minimum threshold and below a maximum threshold (and / or within a range of exposure times), and the LE image 306 may include an image having an exposure time above a threshold. In addition, the exposure time of the SE image 302 is less than the exposure time of the ME image 304, and the exposure time of the ME image 304 is less than the exposure time of the LE image 306.

[0058] The image sensor 130 may provide the SE image 302, the ME image 304, and the LE image 306 to the camera front end engine 308 for processing. For the purpose of simplicity and explanation, the camera front end engine 308 Figure 3 308 is shown as a single camera front end engine. However, the camera front end engine 308 may include one camera front end engine or multiple camera front end engines. For example, in some cases, the camera front end engine 308 may include a single camera front end engine, and in other cases, the camera front end engine 308 may include multiple camera front end engines. In an illustrative example, the camera front end engine may include a camera front end engine for processing the SE image 302, another camera front end engine for processing the ME image 304, and another camera front end engine for processing the LE image 306. Therefore, in this illustrative example, the camera front end engine 308 may include a camera front end engine for each of the images captured by the image sensor 130 (e.g., the SE image 302, the ME image 304, and the LE image 306).

[0059] The camera front end engine 308 may apply one or more pre-processing operations to each of the SE image 302, the ME image 304, and the LE image 306. The pre-processing operations may include, for example, but not limited to, pixel brightness transformation (e.g., brightness correction, grayscale transformation, etc.), color space conversion, geometric transformation (e.g., rotation, scaling, translation, affine transformation, resizing, etc.), image filtering (e.g., image and / or edge smoothing and / or enhancement, denoising, image sharpening, etc.), image warping, image segmentation, image restoration, image enhancement, lens shading, color correction, black level adjustment, lens distortion correction, defective pixel replacement, demosaicing, color balancing, compression, interpolation, any other image pre-processing operation, and / or combinations thereof.

[0060] The camera front end engine 308 may also clamp pixel values ​​in order to reduce or eliminate any redundant pixel information in any of the images (e.g., the SE image 302, the ME image 304, and / or the LE image 306) and / or pixel information that does not contribute to the final output (e.g., the HDR image 350), and thereby reduce the power and bandwidth used by the image processing system 100 to create the HDR image 350. For example, the image processing system 100 may remove pixels that do not contribute to the final output HDR image (e.g., the HDR image 350), such as underexposed pixels in the SE image 302 (e.g., Figure 2 ) and / or overexposed pixels in the LE image 306 (e.g., Figure 2 Overexposed pixel 225 shown in FIG.

[0061] exist Figure 3In the example shown, the camera front end engine 308 may clamp 310 pixels in one or more undersaturated regions of the SE image 302 and clamp 312 pixels in one or more oversaturated regions of the LE image 306. The camera front end engine 308 may clamp 310 pixels in one or more undersaturated regions of the SE image 302 to a minimum value (and / or a minimum threshold) and clamp 312 pixels in one or more oversaturated regions of the LE image 306 to a maximum value (and / or a maximum threshold).

[0062] For example, for any pixel in the SE image 302 having a pixel value below a minimum threshold, the camera front end engine 308 may set the value of such pixel in the SE image 302 to a minimum value. In other words, for any pixel in the SE image 302 having a pixel value below the minimum threshold, the camera front end engine 308 may increase the value of such pixel to the minimum value. Similarly, for any pixel in the LE image 306 having a pixel value above a maximum threshold, the camera front end engine 308 may set the value of such pixel in the LE image 306 to a maximum value. Thus, for any pixel in the LE image 306 having a pixel value above the maximum threshold, the camera front end engine 308 may decrease the value of such pixel to the maximum value.

[0063] In some examples, if all neighboring pixels in an NxN kernel (such as a 5x5 kernel) of the SE image 302 are below a minimum threshold, the camera front end engine 308 may clamp 310 a center pixel in the kernel in the SE image 302 to a minimum value. Additionally, if all neighboring pixels in an NxN kernel (such as a 5x5 kernel) of the LE image 306 are above a maximum threshold, the camera front end engine 308 may clamp 312 a center pixel in the kernel in the LE image 306 to a maximum value.

[0064] After the camera front end engine 308 clamps the pixels of the SE image 302 and the LE image 306 as previously described, the camera front end engine 308 (or another component of the image processing system 100) may perform image compression 314 to compress the SE image 302, image compression 316 to compress the ME image 304, and image compression 318 to compress the LE image 306. The image compression 314 may provide a higher compression ratio for the clamped SE image than for the unclamped SE image because the clamped pixels (e.g., pixels in the undersaturated region) have the same minimum value, and the image compression 318 may provide a higher compression ratio for the clamped LE image than for the unclamped LE image because the clamped pixels (e.g., pixels in the saturated region) have the same maximum value. In this way, the clamping and image compression performed in the system process 300 can reduce the amount of information processed by the image processing system 100, written to and read from memory, and thus can reduce the power and bandwidth consumption of the image processing system 100 when generating an HDR image (e.g., HDR image 350).

[0065] In some cases, image compression 314, 316, and 318 may include Bayer pattern compression. In some examples, image compression 314, 316, and 318 may include Huffman decoding. In some cases, image compression 314 may individually compress each of the channels (e.g., red, green, and blue) of SE image 302. Similarly, image compression 316 may individually compress each of the channels of ME image 304, and image compression 318 may individually compress each of the channels of LE image 306.

[0066] The camera front end engine 308 may then write the compressed SE image 320, the compressed ME image 322, and the compressed LE image 324 to the memory 326. The memory 326 may include any memory device. For example, in some cases, the memory 326 may include Figure 1 140 of the image processing system 100 shown in FIG. 140. In other cases, the memory 326 may include Figure 6 326. In one illustrative example, memory 326 may include a DDR memory device. In other illustrative examples, memory 326 may include any other type of memory device.

[0067] The processor 330 of the image processing system 100 may retrieve the compressed SE image 320, the compressed ME image 322, and the compressed LE image 324 from the memory 326, and perform image decompression 332 on the compressed SE image 320, the compressed ME image 322, and the compressed LE image 324. The processor 330 may include one or more processors. In addition, the processor 330 may include any type of processor, such as, for example, a CPU, a DSP, an ISP, an application specific integrated circuit, etc. In an illustrative example, the processor 330 may include an ISP, such as Figure 1 ISP 154 is shown in FIG.

[0068] Based on the image decompression 332, the processor 330 may decompress the compressed SE image 320, the compressed ME image 322, and the compressed LE image 324, and generate a decompressed SE image 334, a decompressed ME image 336, and a decompressed LE image 338. The decompressed ME image 336 may include the ME image 304. In addition, the decompressed SE image 334 may include the SE image 302 with the pixels clamped as described above, and the decompressed LE image 338 may include the LE image 306 with the pixels clamped as described above.

[0069] The processor 330 may then perform image fusion 340 to fuse the decompressed SE image 334, the decompressed ME image 336, and the decompressed LE image 338 into a fused HDR image. For example, the processor 330 may combine / merge the decompressed SE image 334, the decompressed ME image 336, and the decompressed LE image 338 into a single fused HDR image having a higher dynamic range than the SE image 302, the ME image 304, or the LE image 306.

[0070] The processor 330 may perform one or more image post-processing operations 342 on the fused HDR image generated based on the image fusion 340. The processor 330 may output an HDR image 350 based on the one or more image post-processing operations 342 performed on the fused HDR image. The one or more image post-processing operations 342 may include, for example, but not limited to, filtering operations, blending operations (e.g., blending pixel values) and / or interpolation operations, pixel brightness transformations (e.g., brightness correction, grayscale transformations, etc.), color space conversions, geometric transformations (e.g., rotation, scaling, translation, affine transformations, resizing, etc.), cropping operations, white balancing operations, denoising operations, image sharpening operations, chroma sampling, image scaling, lens correction operations, segmentation operations, filtering operations (e.g., filtering to adjust image quality in terms of contrast, noise, texture, resolution, etc.), image warping operations, image restoration operations, lens shading operations, lens distortion correction operations, faulty pixel replacement operations, demosaicing operations, color balancing operations, smoothing operations, image enhancement operations, operations for achieving image effects or stylistic adjustments, feature enhancement operations, image scaling or resizing operations, color correction operations, black level adjustment operations, linearization operations, gamma correction operations, any other image post-processing operations, and / or combinations thereof.

[0071] Figure 4 4 is a flow chart illustrating another example system process 400 for reducing power and bandwidth for generating an HDR image. In this example, the system process 400 generates an HDR image (e.g., HDR image 430) using two images with different exposures. As shown, the image sensor 130 may capture a short exposure (SE) image 402 of a scene and a long exposure (LE) image 404 of the scene. The image processing system 100 may use the SE image 402 and the LE image 404 to generate an HDR image (e.g., HDR image 430).

[0072] The SE image 402 may include an image having an exposure time below a first threshold, and the LE image 404 may include an image having an exposure time above a second threshold, which may be the same as or different from the first threshold. In addition, the exposure time of the SE image 402 is less than the exposure time of the LE image 404. The image sensor 130 may provide the SE image 402, the ME image 304, and the LE image 404 to the camera front end engine 406 for processing. For the purpose of simplicity and explanation, the camera front end engine 406 Figure 4406 is shown as a single camera front end engine. However, the camera front end engine 406 may include one camera front end engine or multiple camera front end engines. For example, in some cases, the camera front end engine 406 may include a single camera front end engine, and in other cases, the camera front end engine 406 may include multiple camera front end engines. In an illustrative example, the camera front end engine may include a camera front end engine for processing the SE image 402 and another camera front end engine for processing the LE image 404. Therefore, in this illustrative example, the camera front end engine 406 may include a camera front end engine for each of the images captured by the image sensor 130 (e.g., the SE image 402 and the LE image 404).

[0073] The camera front end engine 406 may apply one or more pre-processing operations to the SE image 402 and the LE image 404. The pre-processing operations may include, for example, but not limited to, pixel brightness transformation (e.g., brightness correction, grayscale transformation, etc.), color space conversion, geometric transformation (e.g., rotation, scaling, translation, affine transformation, resizing, etc.), image filtering (e.g., image and / or edge smoothing and / or enhancement, denoising, image sharpening, etc.), image warping, image segmentation, image restoration, image enhancement, lens shading, color correction, black level adjustment, lens distortion correction, defective pixel replacement, demosaicing, color balancing, compression, interpolation, any other image pre-processing operation, and / or combinations thereof.

[0074] The camera front end engine 406 may also clamp pixel values ​​in order to reduce or eliminate any redundant pixel information in any of the images (e.g., the SE image 402 and the LE image 404) and / or pixel information that does not contribute to the final output (e.g., the HDR image 430), and thereby reduce the power and bandwidth used by the image processing system 100 to create the HDR image 430. For example, the image processing system 100 may remove pixels that do not contribute to the final output HDR image (e.g., the HDR image 430), such as underexposed pixels (e.g., Figure 2 404) and / or overexposed pixels in the LE image 404 (e.g., Figure 2 Overexposed pixel 225 shown in FIG.

[0075] exist Figure 4 In the example shown, the camera front end engine 406 may clamp 408 pixels in one or more undersaturated regions of the SE image 402 and clamp 410 pixels in one or more oversaturated regions of the LE image 404. The camera front end engine 406 may clamp 408 pixels in one or more undersaturated regions of the SE image 402 to a minimum value (and / or a minimum threshold) and clamp 410 pixels in one or more oversaturated regions of the LE image 404 to a maximum value (and / or a maximum threshold).

[0076] For example, for any pixel in the SE image 402 having a pixel value below a minimum threshold, the camera front end engine 406 may set the value of such pixel in the SE image 402 to a minimum value. In other words, for any pixel in the SE image 402 having a pixel value below the minimum threshold, the camera front end engine 406 may increase the value of such pixel to the minimum value. Similarly, for any pixel in the LE image 404 having a pixel value above a maximum threshold, the camera front end engine 406 may set the value of such pixel in the LE image 404 to a maximum value. Thus, for any pixel in the LE image 404 having a pixel value above the maximum threshold, the camera front end engine 406 may decrease the value of such pixel to the maximum value.

[0077] In some examples, if all neighboring pixels in an NxN kernel (such as a 5x5 kernel) of the SE image 402 are below a minimum threshold, the camera front end engine 406 may clamp 408 a center pixel in the kernel in the SE image 402 to a minimum value. Additionally, if all neighboring pixels in an NxN kernel (such as a 5x5 kernel) of the LE image 404 are above a maximum threshold, the camera front end engine 406 may clamp 410 a center pixel in the kernel in the LE image 404 to a maximum value.

[0078] After the camera front end engine 406 clamps the pixels of the SE image 402 and the LE image 404 as previously described, the camera front end engine 406 (or another component of the image processing system 100) may perform image compression 412 to compress the SE image 402 and image compression 414 to compress the LE image 404. The image compression 412 may provide a higher compression ratio for the clamped SE image than for the unclamped SE image because the clamped pixels (e.g., pixels in the undersaturated region) have the same minimum value, and the image compression 414 may provide a higher compression ratio for the clamped LE image than for the unclamped LE image because the clamped pixels (e.g., pixels in the saturated region) have the same maximum value. In this way, the clamping and image compression performed in the system process 400 may reduce the amount of information processed, written to, and read from memory by the image processing system 100, and thus may reduce the power and bandwidth consumption of the image processing system 100 when generating an HDR image (e.g., the HDR image 430).

[0079] In some cases, image compression 412 and 414 may include Bayer pattern compression. In some examples, image sensors 412 and 414 may include Huffman decoding. In some cases, image compression 412 may compress each of the channels (e.g., red, green, and blue) of SE image 402 separately. Similarly, image compression 414 may compress each of the channels of LE image 404 separately. Camera front end engine 406 may then write compressed SE image 416 and compressed LE image 418 to memory 326.

[0080] The processor 330 of the image processing system 100 may retrieve the compressed SE image 416 and the compressed LE image 418 from the memory 326 and perform image decompression 420 on the compressed SE image 416 and the compressed LE image 418. Based on the image decompression 420, the processor 330 may decompress the compressed SE image 416 and the compressed LE image 418 and generate a decompressed SE image 422 and a decompressed LE image 424. The decompressed SE image 422 may include the SE image 402 with the pixels clamped as previously described, and the decompressed LE image 424 may include the LE image 404 with the pixels clamped as previously described.

[0081] Processor 330 may then perform image fusion 426 to fuse decompressed SE image 422 and decompressed LE image 424 into a fused HDR image. For example, processor 330 may combine / merge decompressed SE image 422 and decompressed LE image 424 into a single fused HDR image having a higher dynamic range than SE image 402 or LE image 404.

[0082] The processor 330 may perform one or more image post-processing operations 428 on the fused HDR image generated based on the image fusion 426. The processor 330 may output an HDR image 430 based on the one or more image post-processing operations 428 performed on the fused HDR image. One or more image post-processing operations 428 may include, for example, but not limited to, filtering operations, blending operations (e.g., blending pixel values) and / or interpolation operations, pixel brightness transformations (e.g., brightness correction, grayscale transformations, etc.), color space conversions, geometric transformations (e.g., rotation, scaling, translation, affine transformations, resizing, etc.), cropping operations, white balancing operations, denoising operations, image sharpening operations, chroma sampling, image scaling, lens correction operations, segmentation operations, filtering operations (e.g., filtering to adjust image quality in terms of contrast, noise, texture, resolution, etc.), image warping operations, image restoration operations, lens shading operations, lens distortion correction operations, faulty pixel replacement operations, demosaicing operations, color balancing operations, smoothing operations, image enhancement operations, operations for achieving image effects or stylistic adjustments, feature enhancement operations, image scaling or resizing operations, color correction operations, black level adjustment operations, linearization operations, gamma correction operations, any other image post-processing operations, and / or combinations thereof.

[0083] Figure 5 is a flow chart illustrating an example process 500 for reducing power and bandwidth for generating an HDR image. At block 502, process 500 may include obtaining a first image (SE image 302 or SE image 402) having a first exposure time and a second image (e.g., LE image 306 or LE image 404) having a second exposure time from one or more image sensors (image sensor 130). In some examples, the second exposure time of the second image is longer than the first exposure time. For example, in some cases, the first image may be a short exposure image and the second image may be a long exposure image.

[0084] In some examples, one or more first pixel values ​​of the first image correspond to a first group of pixels from an undersaturated region of the first image, and one or more second pixel values ​​of the second image correspond to a second group of pixels from a saturated region of the second image.

[0085] At block 504, process 500 may include setting one or more first pixel values ​​of the first image that are below a minimum threshold to a minimum pixel value and setting one or more second pixel values ​​of the second image that are above a maximum threshold to a maximum pixel value. In some examples, setting one or more first pixel values ​​of the first image that are below the minimum threshold to a minimum pixel value may include: determining that the one or more first pixel values ​​are below the minimum threshold; and based on determining that the one or more first pixel values ​​are below the minimum threshold, increasing the one or more first pixel values ​​to the minimum pixel value. In some examples, setting one or more second pixel values ​​of the second image that are above a maximum threshold to a maximum pixel value may include: determining that the one or more second pixel values ​​are above the maximum threshold; and decreasing the one or more second pixel values ​​to the maximum pixel value.

[0086] In some examples, setting one or more first pixel values ​​of a first image to a minimum pixel value may include: determining that a first group of pixels in a region of the first image is below a minimum threshold; and based on the first group of pixels in the region of the first image being below the minimum threshold, clamping one or more pixels from the first group of pixels to the minimum pixel value. In some examples, setting one or more second pixel values ​​of a second image to a maximum pixel value may include: determining that a second group of pixels in a region of the second image is above a maximum threshold; and based on the second group of pixels in the region of the second image being above the maximum threshold, clamping one or more pixels from the second group of pixels to the maximum pixel value.

[0087] In some cases, setting one or more first pixel values ​​of a first image to a minimum pixel value and setting one or more second pixel values ​​of a second image to a maximum pixel value may include clamping the one or more first pixel values ​​to the minimum pixel value and clamping the one or more second pixel values ​​to the maximum pixel value.

[0088] At block 506, process 500 may include storing a compressed version of the first image having one or more first pixel values ​​set to minimum pixel values ​​and a compressed version of the second image having one or more second pixel values ​​set to maximum pixel values ​​in a memory (e.g., RAM 140). For example, image processing system 100 may write a compressed version of the first image including one or more first pixel values ​​set to minimum pixel values ​​to the memory, and write a compressed version of the second image including one or more second pixel values ​​set to maximum pixel values ​​to the memory.

[0089] At block 508, process 500 may include retrieving a compressed version of the first image and a compressed version of the second image from memory.For example, image processing system 100 may read the compressed versions of the first image and the second image from memory.

[0090] At box 510, process 500 may include generating a first decompressed image of the first image having one or more first pixel values ​​set to minimum pixel values ​​and a second decompressed image of the second image having one or more second pixel values ​​set to maximum pixel values ​​based on a compressed version of the first image and a compressed version of the second image.

[0091] At block 512, process 500 may include generating a high dynamic range (HDR) image based on the first decompressed image and the second decompressed image. In some examples, generating the HDR image may include merging pixels of the first decompressed image and pixels of the second decompressed image.

[0092] In some aspects, process 500 may include: obtaining from one or more image sensors a third image having a third exposure time greater than the first exposure time and less than the second exposure time; and storing a compressed version of the third image in a memory. In some aspects, process 500 may include: retrieving a compressed version of the third image from the memory; and generating a third decompressed image including the third image based on the compressed version of the third image. In some examples, generating an HDR image may include generating an HDR image based on the first decompressed image, the second decompressed image, and the third decompressed image.

[0093] In some cases, generating the HDR image based on the first decompressed image, the second decompressed image, and the third decompressed image may include merging the first decompressed image, the second decompressed image, and the third decompressed image into a single image.

[0094] In some examples, system process 300, system process 400, and / or process 500 may be performed by one or more computing devices or apparatuses. In one illustrative example, system process 300, system process 400, and / or process 500 may be performed by one or more computing devices or apparatuses. Figure 1 In some examples, system process 300, system process 400, and / or process 500 may be performed by a computer having Figure 6Executed by one or more computing devices of the computing system 600 shown in . In some cases, such a computing device or apparatus may include a processor, a microprocessor, a microcomputer, or other components of a device configured to perform the steps of the system process 300, the system process 400, and / or the process 500. In some examples, such a computing device or apparatus may include one or more sensors configured to capture image data and / or other sensor measurements. For example, a computing device may include a smart phone, a head-mounted display, a mobile device, or other suitable device. In some examples, such a computing device or apparatus may include a camera configured to capture one or more images or videos. In some cases, such a computing device may include a display for displaying an image. In some examples, one or more sensors and / or cameras are separated from the computing device, in which case the computing device receives the sensed data. Such a computing device may further include a network interface configured to convey data.

[0095] The components of the computing device may be implemented in circuits. For example, the components may include electronic circuits or other electronic hardware, and / or may be implemented using electronic circuits or other electronic hardware, which may include one or more programmable electronic circuits (e.g., microprocessors, graphics processing units (GPUs), digital signal processors (DSPs), central processing units (CPUs), and / or other suitable electronic circuits), and / or may include computer software, firmware, or any combination thereof for performing the various operations described herein and / or may be implemented using computer software, firmware, or any combination thereof for performing the various operations described herein. The computing device may also include a display (as an example of an output device or as a supplement to an output device), a network interface configured to transmit and / or receive data, any combination thereof, and / or other components. The network interface may be configured to convey and / or receive data based on an Internet Protocol (IP) or other types of data.

[0096] System process 300, system process 400, and / or process 500 are illustrated as logic flow diagrams, the operations of which represent sequences of operations that may be implemented in hardware, computer instructions, or a combination thereof. In the context of computer instructions, each operation represents a computer-executable instruction stored on one or more computer-readable storage media that, when executed by one or more processors, performs the described operation. Generally speaking, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform specific functions or implement specific data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations may be combined in any order and / or in parallel to implement the process.

[0097] Additionally, system process 300, system process 400, and / or process 500 may be executed under the control of one or more computer systems configured with executable instructions, and may be implemented by hardware as code (e.g., executable instructions, one or more computer programs, or one or more applications) that is executed together on one or more processors, or a combination thereof. As noted above, the code may be stored on a computer-readable or machine-readable storage medium, for example, in the form of a computer program that includes a plurality of instructions that can be executed by one or more processors. The computer-readable or machine-readable storage medium may be non-transitory.

[0098] Figure 6 An example computing system 600 is illustrated that illustrates an example computing device that can implement the various techniques described herein. For example, the computing system 600 can implement Figure 1 600. The components of computing system 600 are shown in electrical communication with each other using a connection 605, such as a bus. Example computing system 600 includes a processing unit (CPU or processor) 610 and a computing device connection 605 that couples various computing device components including computing device memory 615, such as read-only memory (ROM) 620 and random access memory (RAM) 625, to processor 610.

[0099] The computing system 600 may include a cache of high-speed memory directly connected to the processor 610, close to the processor or integrated as part of the processor. The computing system 600 may copy data from the memory 615 and / or the storage device 630 to the cache 612 for fast access by the processor 610. In this way, the cache can provide a performance improvement that avoids the processor 610 from delaying when waiting for data. These and other modules can control or be configured to control the processor 610 to perform various actions. Other computing device memories 615 can also be used. The memory 615 may include a variety of different types of memories with different performance characteristics. The processor 610 may include any general-purpose processor and hardware or software services stored in the storage device 630 and configured to control the processor 610, as well as a special-purpose processor in which software instructions are incorporated into the processor design. The processor 610 may be a self-contained system including multiple cores or processors, buses, memory controllers, caches, etc. Multi-core processors may be symmetric or asymmetric.

[0100] In order to enable user interaction with the computing system 600, the input device 645 may represent any number of input mechanisms, such as a microphone for voice, a touch-sensitive screen for gesture or graphic input, a keyboard, a mouse, motion input, voice, etc. The output device 635 may also be one or more of a variety of output mechanisms known to those skilled in the art, such as a display, a projector, a television, a speaker device. In some instances, a multimodal computing device may enable a user to provide multiple types of input to communicate with the computing system 600. The communication interface 640 may generally control and manage user input and computing device output. There is no restriction on operating on any particular hardware arrangement, and therefore the underlying features herein may be easily replaced to obtain improved hardware or firmware arrangements as they are developed.

[0101] The storage device 630 is a non-volatile memory and may be a hard disk or other type of computer readable medium capable of storing computer-accessible data, such as a magnetic tape cartridge, a flash memory card, a solid-state memory device, a digital versatile disk, a cassette tape, a random access memory (RAM) 625, a read-only memory (ROM) 620, and hybrids thereof. The storage device 630 may include software, code, firmware, etc. for controlling the processor 610. Other hardware or software modules are contemplated. The storage device 630 may be connected to the computing device connector 605. In one aspect, a hardware module that performs a particular function may include a software component stored in a computer readable medium that is combined with necessary hardware components such as the processor 610, the connector 605, the output device 635, etc. to implement the function.

[0102] The term "computer-readable medium" includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other media capable of storing, containing, or carrying instructions and / or data. Computer-readable media may include non-transient media in which data may be stored and which do not include carrier waves and / or transient electronic signals propagated wirelessly or on a wired connection. Examples of non-transient media may include, but are not limited to, disks or tapes, optical storage media (such as compact discs (CDs) or digital versatile discs (DVDs)), flash memory, memory, or memory devices. Computer-readable media may store thereon codes and / or machine-executable instructions, which may represent procedures, functions, subroutines, programs, routines, subroutines, modules, software packages, categories, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and / or receiving information, data, independent variables, parameters, or memory contents. Information, independent variables, parameters, data, etc. may be passed, forwarded, or sent via any suitable means, including memory sharing, message passing, token passing, network sending, etc.

[0103] In some aspects, computer readable storage devices, media, and memories may include cables or wireless signals containing bit streams, etc. However, when referred to, non-transitory computer readable storage media specifically excludes media such as power consumption, carrier signals, electromagnetic waves, and signals themselves.

[0104] Specific details are provided in the above description to provide a detailed understanding of the aspects and examples provided herein. However, it will be understood by those skilled in the art that these aspects can also be practiced without these specific details. For the clarity of explanation, in some instances, the present technology can be presented as including a separate functional block, which includes a device, device component, step or routine in a method embodied in a combination of software or hardware and software. Additional components other than those components shown in the accompanying drawings and / or described herein can be used. For example, circuits, systems, networks, processes and other components can be shown as components in block diagram form to avoid confusing these aspects in unnecessary details. In other instances, known circuits, processes, algorithms, structures and techniques can be shown without unnecessary details to avoid confusing various aspects.

[0105] Various aspects may be described above as a process or method, which is depicted as a flow chart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flow chart may describe an operation as a sequential process, many operations in the operation may be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. The process is terminated when the operation of the process is completed, but the process may have additional steps not included in the accompanying drawings. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, the termination of the process may correspond to the function returning to a calling function or a main function.

[0106] The processes and methods according to the above examples can be implemented using stored computer executable instructions or otherwise obtained from computer readable media. Such instructions may include, for example, instructions and data that enable or otherwise configure a general-purpose computer, a special-purpose computer, or a processing device to perform a certain function or functional group. The part of the computer resources used can be accessed through a network. Computer executable instructions can be, for example, binary, intermediate format instructions (such as assembly language), firmware, source code. Examples of computer readable media that can be used to store instructions, information used, and / or information created during the method according to the described examples include disks or optical disks, flash memories, USB devices with non-volatile memory, networked storage devices, etc.

[0107] The equipment implementing the processes and methods according to these disclosures may include hardware, software, firmware, middleware, microcode, hardware description language, or any combination thereof, and may take any of a variety of form factors. When implemented in software, firmware, middleware, or microcode, program code or code segments (e.g., computer program products) for performing necessary tasks may be stored in a computer-readable or machine-readable medium. The processor may perform the necessary tasks. Typical examples of form factors include laptop computers, smart phones, mobile phones, tablet devices, or other small form factor personal computers, personal digital assistants, rack-mounted devices, stand-alone devices, etc. The functionality described herein may also be embodied in peripheral devices or plug-in cards. By way of additional examples, such functionality may also be implemented on circuit boards among different chips or different processes executed on a single device.

[0108] The instructions, the media for conveying such instructions, the computing resources for executing them, and other structures for supporting such computing resources are example means for providing the functionality described in this disclosure.

[0109] In the above description, various aspects of the present application are described with reference to their specific aspects, but those skilled in the art will recognize that the present application is not limited thereto. Thus, although the exemplary aspects of the present application have been described in detail herein, it is to be understood that each inventive concept can be implemented and adopted in various other ways, and the appended claims are not intended to be interpreted as including these variations, unless limited by the prior art. Various features and aspects of the above-mentioned applications can be used individually or in combination. In addition, various aspects can be utilized in any number of environments and applications beyond those described herein without departing from the broader essence and scope of this specification. Therefore, the description and the accompanying drawings should be considered as illustrative rather than restrictive. For the purpose of illustration, each method is described in a specific order. It should be understood that, in alternative aspects, each method can be performed in a different order than described.

[0110] One of ordinary skill in the art will appreciate that the less than ("<") and greater than (">") symbols or terms used herein may be replaced by less than or equal to ("≤") and greater than or equal to ("≥") symbols, respectively, without departing from the scope of this specification.

[0111] Where a component is described as being “configured to” perform certain operations, such configuration may be achieved, for example, by designing electronic circuits or other hardware to perform the operations, by programming programmable electronic circuits (e.g., a microprocessor or other suitable electronic circuits) to perform the operations, or any combination thereof.

[0112] The phrase "coupled to" means that any component is directly or indirectly physically connected to another component, and / or any component is directly or indirectly in communication with another component (e.g., connected to another component via a wired or wireless connection and / or other suitable communication interface).

[0113] Claim language or other language in this disclosure that states "at least one of" a set and / or "one or more of" a set indicates that one member of the set or multiple members of the set (in any combination) satisfies the claim. For example, claim language that states "at least one of A and B" or "at least one of A or B" means A, B, or A and B. In another example, claim language that states "at least one of A, B, and C" or "at least one of A, B, or C" means A, B, C, or A and B, or A and C, or B and C, or A and B and C. The language "at least one of" a set and / or "one or more of" a set does not limit the set to the items listed in the set. For example, claim language that states "at least one of A and B" or "at least one of A or B" may mean A, B, or A and B, and may additionally include items not listed in the set of A and B.

[0114] Various illustrative logic blocks, modules, circuits, and algorithmic steps described in conjunction with the examples disclosed herein may be implemented as electronic hardware, computer software, firmware, or a combination thereof. In order to clearly illustrate this interchangeability of hardware and software, various illustrative components, frames, modules, circuits, and steps have been generally described in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints proposed for the entire system. The technician may implement the described functionality in different ways for each specific application, but such specific implementation decisions should not be interpreted as departing from the scope of the present application.

[0115] The technology described herein can also be implemented in electronic hardware, computer software, firmware, or any combination thereof. Such technology can be implemented in any of a variety of devices, such as general-purpose computers, wireless communication device mobile phones, or integrated circuit devices with multiple uses, including applications in wireless communication device mobile phones and other devices. Any features described as modules or components can be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, the technology can be implemented at least in part by a computer-readable data storage medium including a program code, which includes instructions for executing one or more of the methods, algorithms, and / or operations described above when executed. The computer-readable data storage medium can form a part of a computer program product, which can include packaging materials. The computer-readable medium can include a memory or a data storage medium, such as a random access memory (RAM) (such as a synchronous dynamic random access memory (SDRAM)), a read-only memory (ROM), a non-volatile random access memory (NVRAM), an electrically erasable programmable read-only memory (EEPROM), a flash memory, a magnetic or optical data storage medium, etc. Additionally or alternatively, the technology may be implemented at least in part by a computer-readable communication medium that carries or communicates program code in the form of instructions or data structures and that can be accessed, read, and / or executed by a computer, such as a propagated signal or wave.

[0116] The program code may be executed by a processor, which may include one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Such processors may be configured to perform any of the techniques described in the present disclosure. A general-purpose processor may be a microprocessor; however, in an alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors combined with a DSP core, or any other such configuration. Therefore, the term "processor" as used herein may refer to any of the aforementioned structures, any combination of the aforementioned structures, or any other structure or device suitable for implementing the techniques described herein.

[0117] Exemplary aspects of the present disclosure include:

[0118] Aspect 1. A device for processing image data, the device comprising: a memory; and one or more processors coupled to the memory, the one or more processors being configured to: obtain a first image having a first exposure time and a second image having a second exposure time from one or more image sensors, wherein the second exposure time is greater than the first exposure time; set one or more first pixel values ​​of the first image that are lower than a minimum threshold value as a minimum pixel value and set one or more second pixel values ​​of the second image that are higher than a maximum threshold value as a maximum pixel value;

[0119] storing in the memory a compressed version of the first image having the one or more first pixel values ​​set to the minimum pixel value and a compressed version of the second image having the one or more second pixel values ​​set to the maximum pixel value; retrieving the compressed version of the first image and the compressed version of the second image from the memory; generating a first decompressed image and a second decompressed image based on the compressed version of the first image and the compressed version of the second image, the first decompressed image including the first image having the one or more first pixel values ​​set to the minimum pixel value, and the second decompressed image including the second image having the one or more second pixel values ​​set to the maximum pixel value; and generating a high dynamic range (HDR) image based on the first decompressed image and the second decompressed image.

[0120] Aspect 2. The apparatus according to aspect 1, wherein in order to set the one or more first pixel values ​​of the first image that are lower than the minimum threshold to the minimum pixel value, the one or more processors are configured to: determine that the one or more first pixel values ​​are lower than the minimum threshold; and based on determining that the one or more first pixel values ​​are lower than the minimum threshold, increase the one or more first pixel values ​​to the minimum pixel value. Aspect 3. The apparatus according to any one of aspects 1 to 2, wherein in order to set the one or more second pixel values ​​of the second image that are higher than the maximum threshold to the maximum pixel value, the one or more processors are configured to: determine that the one or more second pixel values ​​are higher than the maximum threshold; and reduce the one or more second pixel values ​​to the maximum pixel value.

[0121] Aspect 4. An apparatus according to any one of Aspects 1 to 3, wherein in order to generate the HDR image, the one or more processors are configured to: merge pixels of the first decompressed image and pixels of the second decompressed image. Aspect 5. An apparatus according to any one of Aspects 1 to 4, wherein the one or more processors are configured to: obtain a third image having a third exposure time greater than the first exposure time and less than the second exposure time from the one or more image sensors; and store a compressed version of the third image in the memory. Aspect 6. An apparatus according to Aspect 5, wherein the one or more processors are configured to: retrieve the compressed version of the third image from the memory; and generate a third decompressed image including the third image based on the compressed version of the third image.

[0122] Aspect 7. The apparatus according to aspect 6, wherein the one or more processors are configured to: generate the HDR image based on the first decompressed image, the second decompressed image and the third decompressed image.

[0123] Aspect 8. An apparatus according to Aspect 7, wherein in order to generate the HDR image based on the first decompressed image, the second decompressed image and the third decompressed image, the one or more processors are configured to: merge the first decompressed image, the second decompressed image and the third decompressed image.

[0124] Aspect 9. An apparatus according to any one of aspects 1 to 8, wherein the one or more first pixel values ​​of the first image correspond to a first group of pixels from an undersaturated region of the first image, and wherein the one or more second pixel values ​​of the second image correspond to a second group of pixels from a saturated region of the second image. Aspect 10. An apparatus according to any one of aspects 1 to 9, wherein in order to set the one or more first pixel values ​​of the first image to the minimum pixel value and the one or more second pixel values ​​of the second image to the maximum pixel value, the one or more processors are configured to: clamp the one or more first pixel values ​​to the minimum pixel value and clamp the one or more second pixel values ​​to the maximum pixel value. Aspect 11. An apparatus according to any one of aspects 1 to 10, wherein in order to set the one or more first pixel values ​​of the first image to the minimum pixel value, the one or more processors are configured to: determine that a first group of pixels in a region of the first image is below the minimum threshold; and based on the first group of pixels in the region of the first image being below the minimum threshold, clamp one or more pixels from the first group of pixels to the minimum pixel value.

[0125] Aspect 12. The apparatus of aspect 11, wherein to set the one or more second pixel values ​​of the second image to the maximum pixel value, the one or more processors are configured to: determine that a second group of pixels in a region of the second image is above the maximum threshold; and based on the second group of pixels in the region of the second image being above the maximum threshold, clamp one or more pixels from the second group of pixels to the maximum pixel value. Aspect 13. The apparatus of any one of aspects 1 to 12, wherein the apparatus comprises a camera device.

[0126] Aspect 14. An apparatus according to any one of aspects 1 to 13, wherein the apparatus comprises a mobile device.

[0127] Aspect 15. A method for processing image data, the method comprising: obtaining a first image having a first exposure time and a second image having a second exposure time from one or more image sensors, wherein the second exposure time is greater than the first exposure time; setting one or more first pixel values ​​of the first image that are lower than a minimum threshold value to a minimum pixel value and setting one or more second pixel values ​​of the second image that are higher than a maximum threshold value to a maximum pixel value; storing in a memory a compressed version of the first image having the one or more first pixel values ​​set to the minimum pixel value and a compressed version of the second image having the one or more second pixel values ​​set to the maximum pixel value; retrieving the compressed version of the first image and the compressed version of the second image from the memory; generating a first decompressed image and a second decompressed image based on the compressed version of the first image and the compressed version of the second image, the first decompressed image comprising the first image having the one or more first pixel values ​​set to the minimum pixel value, and the second decompressed image comprising the second image having the one or more second pixel values ​​set to the maximum pixel value;

[0128] Aspect 16. The method of aspect 15, wherein the one or more first pixel values ​​of the first image that are below the minimum threshold are set to the minimum pixel value, comprising: determining that the one or more first pixel values ​​are below the minimum threshold; and based on determining that the one or more first pixel values ​​are below the minimum threshold, increasing the one or more first pixel values ​​to the minimum pixel value.

[0129] Aspect 17. The method according to any one of aspects 15 to 16, wherein setting the one or more second pixel values ​​of the second image that are above the maximum threshold to the maximum pixel value comprises: determining that the one or more second pixel values ​​are above the maximum threshold; and reducing the one or more second pixel values ​​to the maximum pixel value. Aspect 18. The method according to any one of aspects 15 to 17, wherein generating the HDR image comprises: merging pixels of the first decompressed image and pixels of the second decompressed image.

[0130] Aspect 19. A method according to any one of Aspects 15 to 18, the method further comprising: obtaining a third image having a third exposure time greater than the first exposure time and less than the second exposure time from the one or more image sensors; and storing a compressed version of the third image in the memory.

[0131] Aspect 20. The method according to aspect 19, the method further comprising: retrieving the compressed version of the third image from the memory; and generating a third decompressed image including the third image based on the compressed version of the third image.

[0132] Aspect 21. The method according to aspect 20, further comprising: generating the HDR image based on the first decompressed image, the second decompressed image and the third decompressed image.

[0133] Aspect 22. The method according to Aspect 21, wherein generating the HDR image based on the first decompressed image, the second decompressed image and the third decompressed image comprises: merging the first decompressed image, the second decompressed image and the third decompressed image.

[0134] Aspect 23. A method according to any one of aspects 15 to 22, wherein the one or more first pixel values ​​of the first image correspond to a first group of pixels from an undersaturated region of the first image, and wherein the one or more second pixel values ​​of the second image correspond to a second group of pixels from a saturated region of the second image. Aspect 24. A method according to any one of aspects 15 to 23, wherein setting the one or more first pixel values ​​of the first image to the minimum pixel value and setting the one or more second pixel values ​​of the second image to the maximum pixel value comprises: clamping the one or more first pixel values ​​to the minimum pixel value and clamping the one or more second pixel values ​​to the maximum pixel value.

[0135] Aspect 25. A method according to any one of Aspects 15 to 24, wherein setting the one or more first pixel values ​​of the first image to the minimum pixel value includes: determining that a first group of pixels in an area of ​​the first image is below the minimum threshold; and based on the first group of pixels in the area of ​​the first image being below the minimum threshold, clamping one or more pixels from the first group of pixels to the minimum pixel value.

[0136] Aspect 26. A method according to Aspect 25, wherein setting the one or more second pixel values ​​of the second image to the maximum pixel value includes: determining that a second group of pixels in an area of ​​the second image is above the maximum threshold; and based on the second group of pixels in the area of ​​the second image being above the maximum threshold, clamping one or more pixels from the second group of pixels to the maximum pixel value.

[0137] Aspect 27. A non-transitory computer-readable medium comprising instructions which, when executed by one or more processors, cause the one or more processors to perform the operations of any one of aspects 1 to 26.

[0138] Aspect 28. An apparatus for processing image data, the apparatus comprising: one or more components for performing the operations according to any one of Aspects 1 to 26.

Claims

1. A device for processing image data, the device comprising: Memory; as well as one or more processors coupled to the memory, the one or more processors configured to: obtaining, from one or more image sensors, a first image having a first exposure time and a second image having a second exposure time, wherein the second exposure time is greater than the first exposure time; setting one or more first pixel values ​​of the first image below a minimum threshold as minimum pixel values ​​and setting one or more second pixel values ​​of the second image above a maximum threshold as maximum pixel values; storing in the memory a compressed version of the first image having the one or more first pixel values ​​set to the minimum pixel value and a compressed version of the second image having the one or more second pixel values ​​set to the maximum pixel value; retrieving the compressed version of the first image and the compressed version of the second image from the memory; generating a first decompressed image and a second decompressed image based on the compressed version of the first image and the compressed version of the second image, the first decompressed image including the first image having the one or more first pixel values ​​set to the minimum pixel value, and the second decompressed image including the second image having the one or more second pixel values ​​set to the maximum pixel value; and A high dynamic range (HDR) image is generated based on the first decompressed image and the second decompressed image.

2. The apparatus of claim 1 , wherein to set the one or more first pixel values ​​of the first image below the minimum threshold to the minimum pixel value, the one or more processors are configured to: determining that the one or more first pixel values ​​are below the minimum threshold; and Based on determining that the one or more first pixel values ​​are below the minimum threshold, the one or more first pixel values ​​are increased to the minimum pixel value.

3. The apparatus of claim 1 , wherein to set the one or more second pixel values ​​of the second image that are above the maximum threshold as the maximum pixel value, the one or more processors are configured to: determining that the one or more second pixel values ​​are above the maximum threshold; and The one or more second pixel values ​​are reduced to the maximum pixel value.

4. The apparatus of claim 1 , wherein to generate the HDR image, the one or more processors are configured to: Pixels of the first decompressed image and pixels of the second decompressed image are merged.

5. The apparatus of claim 1 , wherein the one or more processors are configured to: obtaining, from the one or more image sensors, a third image having a third exposure time that is greater than the first exposure time and less than the second exposure time; and A compressed version of the third image is stored in the memory.

6. The apparatus of claim 5, wherein the one or more processors are configured to: retrieving the compressed version of the third image from the memory; and A third decompressed image including the third image is generated based on the compressed version of the third image.

7. The apparatus of claim 6, wherein the one or more processors are configured to: The HDR image is generated based on the first decompressed image, the second decompressed image, and the third decompressed image.

8. The apparatus of claim 7, wherein to generate the HDR image based on the first decompressed image, the second decompressed image, and the third decompressed image, the one or more processors are configured to: The first decompressed image, the second decompressed image, and the third decompressed image are merged.

9. The apparatus of claim 1 , wherein the one or more first pixel values ​​of the first image correspond to a first set of pixels from an undersaturated region of the first image, and wherein the one or more second pixel values ​​of the second image correspond to a second set of pixels from a saturated region of the second image.

10. The apparatus of claim 1 , wherein to set the one or more first pixel values ​​of the first image to the minimum pixel value and to set the one or more second pixel values ​​of the second image to the maximum pixel value, the one or more processors are configured to: The one or more first pixel values ​​are clamped to the minimum pixel value and the one or more second pixel values ​​are clamped to the maximum pixel value.

11. The apparatus of claim 1 , wherein to set the one or more first pixel values ​​of the first image to the minimum pixel value, the one or more processors are configured to: determining that a first set of pixels in a region of the first image is below the minimum threshold; and Based on the first set of pixels in the region of the first image being below the minimum threshold, one or more pixels from the first set of pixels are clamped to the minimum pixel value.

12. The apparatus of claim 11 , wherein to set the one or more second pixel values ​​of the second image to the maximum pixel value, the one or more processors are configured to: determining that a second set of pixels in a region of the second image is above the maximum threshold; and Based on the second set of pixels in the region of the second image being above the maximum threshold, one or more pixels from the second set of pixels are clamped to the maximum pixel value.

13. The apparatus of claim 1, wherein the apparatus comprises a camera device. The apparatus of claim 1 , wherein the apparatus comprises a mobile device.

15. A method for processing image data, the method comprising: obtaining, from one or more image sensors, a first image having a first exposure time and a second image having a second exposure time, wherein the second exposure time is greater than the first exposure time; setting one or more first pixel values ​​of the first image below a minimum threshold as minimum pixel values ​​and setting one or more second pixel values ​​of the second image above a maximum threshold as maximum pixel values; storing in a memory a compressed version of the first image having the one or more first pixel values ​​set to the minimum pixel value and a compressed version of the second image having the one or more second pixel values ​​set to the maximum pixel value; retrieving the compressed version of the first image and the compressed version of the second image from the memory; generating a first decompressed image and a second decompressed image based on the compressed version of the first image and the compressed version of the second image, the first decompressed image including the first image having the one or more first pixel values ​​set to the minimum pixel value, and the second decompressed image including the second image having the one or more second pixel values ​​set to the maximum pixel value; and A high dynamic range (HDR) image is generated based on the first decompressed image and the second decompressed image.

16. The method of claim 15, wherein setting the one or more first pixel values ​​of the first image below the minimum threshold as the minimum pixel value comprises: determining that the one or more first pixel values ​​are below the minimum threshold; as well as Based on determining that the one or more first pixel values ​​are below the minimum threshold, the one or more first pixel values ​​are increased to the minimum pixel value.

17. The method of claim 15, wherein setting the one or more second pixel values ​​of the second image that are above the maximum threshold as the maximum pixel value comprises: determining that the one or more second pixel values ​​are above the maximum threshold; as well as The one or more second pixel values ​​are reduced to the maximum pixel value.

18. The method of claim 15, wherein generating the HDR image comprises: Pixels of the first decompressed image and pixels of the second decompressed image are merged.

19. The method according to claim 15, further comprising: obtaining, from the one or more image sensors, a third image having a third exposure time that is greater than the first exposure time and less than the second exposure time; as well as A compressed version of the third image is stored in the memory.

20. The method according to claim 19, further comprising: retrieving the compressed version of the third image from the memory; as well as A third decompressed image including the third image is generated based on the compressed version of the third image.

21. The method according to claim 20, further comprising: The HDR image is generated based on the first decompressed image, the second decompressed image, and the third decompressed image.

22. The method of claim 21 , wherein generating the HDR image based on the first decompressed image, the second decompressed image, and the third decompressed image comprises: The first decompressed image, the second decompressed image, and the third decompressed image are merged.

23. The method of claim 15, wherein the one or more first pixel values ​​of the first image correspond to a first group of pixels from an undersaturated region of the first image, and wherein the one or more second pixel values ​​of the second image correspond to a second group of pixels from a saturated region of the second image.

24. The method of claim 15, wherein setting the one or more first pixel values ​​of the first image to the minimum pixel value and setting the one or more second pixel values ​​of the second image to the maximum pixel value comprises: The one or more first pixel values ​​are clamped to the minimum pixel value and the one or more second pixel values ​​are clamped to the maximum pixel value.

25. The method of claim 15, wherein setting the one or more first pixel values ​​of the first image to the minimum pixel value comprises: determining that a first group of pixels in a region of the first image is below the minimum threshold; as well as Based on the first set of pixels in the region of the first image being below the minimum threshold, one or more pixels from the first set of pixels are clamped to the minimum pixel value.

26. The method of claim 25, wherein setting the one or more second pixel values ​​of the second image to the maximum pixel value comprises: determining that a second set of pixels in a region of the second image is above the maximum threshold; as well as Based on the second set of pixels in the region of the second image being above the maximum threshold, one or more pixels from the second set of pixels are clamped to the maximum pixel value.

27. A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to: obtaining, from one or more image sensors, a first image having a first exposure time and a second image having a second exposure time, wherein the second exposure time is greater than the first exposure time; setting one or more first pixel values ​​of the first image below a minimum threshold as minimum pixel values ​​and setting one or more second pixel values ​​of the second image above a maximum threshold as maximum pixel values; storing in a memory a compressed version of the first image having the one or more first pixel values ​​set to the minimum pixel value and a compressed version of the second image having the one or more second pixel values ​​set to the maximum pixel value; retrieving the compressed version of the first image and the compressed version of the second image from the memory; generating a first decompressed image and a second decompressed image based on the compressed version of the first image and the compressed version of the second image, the first decompressed image including the first image having the one or more first pixel values ​​set to the minimum pixel value, and the second decompressed image including the second image having the one or more second pixel values ​​set to the maximum pixel value; and A high dynamic range (HDR) image is generated based on the first decompressed image and the second decompressed image.

28. The non-transitory computer-readable medium of claim 27, wherein to set the one or more first pixel values ​​of the first image below the minimum threshold to the minimum pixel value, the instructions, when executed by the one or more processors, cause the one or more processors to: determining that the one or more first pixel values ​​are below the minimum threshold; and Based on determining that the one or more first pixel values ​​are below the minimum threshold, the one or more first pixel values ​​are increased to the minimum pixel value.

29. The non-transitory computer-readable medium of claim 27, wherein to set the one or more second pixel values ​​of the second image that are above the maximum threshold to the maximum pixel value, the instructions, when executed by the one or more processors, cause the one or more processors to: determining that the one or more second pixel values ​​are above the maximum threshold; and The one or more second pixel values ​​are reduced to the maximum pixel value.

30. The non-transitory computer-readable medium of claim 27, wherein to generate the HDR image, the instructions, when executed by the one or more processors, cause the one or more processors to: Pixels of the first decompressed image and pixels of the second decompressed image are merged.

Citation Information

Cited By

  • High-precision holder control method and system

    CN120669764A