Patent Description:
This disclosure relates generally to systems for image capture devices, and specifically to positioning a camera for recording images or video.

Many devices and systems (such as smartphones, tablets, digital cameras, security systems, computers, and so on) include cameras for various applications. For many camera systems, when taking images or recording video, a display for the camera (such as a smartphone or tablet display) previews images or video being captured by the camera. For example, if a camera zooms in while taking pictures or recording video, the display shows the zoomed in view (which is what is being recorded using the camera).

Chinese patent application with publication number <CIT> discloses a photographing method and mobile terminal. The method includes: collecting multiple images by the first camera according to the movement track of the mobile terminal to synthesize a global image; in the process of synthesizing multiple images into a global image, the second camera is used to collect multiple images according to the movement track of the mobile terminal to synthesize a partial image. The shooting view area of the second camera is located in the first camera viewing area. The method further comprises synthesizing the global image and the local image to obtain a target image.

US patent application with publication number <CIT> discloses methods for using multiple cameras to provide optical zoom to a user. Some embodiments include a first camera unit of a multifunctional device capturing a first image of a first visual field. A second camera unit of the multifunctional device simultaneously captures a second image of a second visual field. In some embodiments, the first camera unit includes a first optical package with a first focal length, and the second camera unit includes a second optical package with a second focal length.

European patent application with publication number <CIT> discloses a mobile terminal including a memory, a touch screen, a first camera having a first capturing angle, and a second camera having a second capturing angle that is wider than the first capturing angle, and a controller. The controller is configured to: cause the touch screen to display a first preview image of the first camera, a second preview of the second camera, or both the first and second preview images overlapping each other, cause the memory to store a first image taken by the first camera in response to a first capture commend received while the first preview image is displayed, and cause the memory to store both the first image and a second image taken by the second camera when a wide-angle capturing condition is satisfied while at least one of the first preview image of the second preview image is displayed.

US patent application with publication number <CIT> discloses a digital photographing apparatus including: a first camera configured to acquire a wide-angle image including a main subject, a second camera configured to capture a telephoto image having the main subject zoomed in with respect to the wide-angle image; and a processor configured to acquire motion information of the main subject based on the wide-angle image and the telephoto image and configured to determine one of the wide-angle image and the telephoto image as a main image based on the motion information.

European patent application with publication number <CIT> discloses an information processing apparatus that acquires first image data captured by a first image capturing unit; acquires second image data captured by a second image capturing unit; controls a display to operate in a first mode in which the first and second images are simultaneously displayed; controls the display to operate in a second mode in which a relationship of the second image with the first image is indicated; and selects between the first and second modes based on a predetermined condition.

This Summary is provided to introduce in a simplified form a selection of concepts that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter.

Aspects of the present disclosure relate to assisting in positioning a camera at different zoom levels.

Aspects of this disclosure are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements.

Aspects of the present disclosure may assist a user in positioning a camera for recording images or video and may be applicable to devices having a variety of camera configurations.

Each camera includes a field of view for capturing a scene. Many people use a zoom ("zoom in") to capture only a portion of the scene in the field of view. The zoom may be optical, and the camera lenses are moved to change the focal length of the camera (allowing an object in the scene to be magnified without loss of resolution). The zoom alternatively may be digital, and portions of a captured scene are cropped. If portions of the captured scene are cropped, the remaining portion may be stretched on a display (causing some loss in resolution).

In a zoomed in view, camera movements (such as panning or tilting a camera, or a user moving the smartphone or tablet during recording) are amplified (since the object in the view may be magnified or stretched), resulting in the previewed imagery or video (and therefore the recorded imagery or video) not including or being centered on the object or scene intended to be recorded by the user. For example, if a device is recording images or video from a soccer game, and the user commands the camera to zoom in on a specific player or the ball, the player or ball may not remain centered (or even present) in the camera's field of view while zoomed in. A user may struggle to position the camera, for example, by attempting to find the player or ball in the zoomed in preview of the camera display. It is desirable to assist the user in positioning the camera, for example, to reduce user difficulties in positioning the camera during a zoomed view.

In some implementations, at least a portion of a device (such as one or more processors) processes a first image stream (from a first camera) associated with a scene, independently processes a second image stream (from a second camera) associated with a spatial portion of the scene different from the first image stream, outputs the processed first image stream (such as to preview via a display), and outputs a visual indication of the spatial portion of the scene associated with the second image stream during output of the processed first image stream (such as on the preview of the processed first image stream). In this manner, aspects of the present disclosure may prevent a user from struggling to position a camera at different zoom levels while capturing and/or recording images or video, and also may allow a device to more effectively capture and/or record intended portions of a scene. For example, as noted above, a user recording a soccer game may use the visual indication in a preview to identify what portion of the scene is being recorded and thus position the camera as desired without searching in a zoomed in view for the preview.

The terms "capture" and "record" are used to differentiate between images from a camera sensor before being processed or not fully processed (such as for a preview) and images that are fully processed (such as for placing in storage for later viewing or for streaming to others). When a camera sensor is active, the camera may continually (such as at a predetermined number of frames per second) "capture" images. Many of these images are discarded and not used or fully processed (such as applying denoising, edge enhancement, color balance, and other filters by an image signal processor). "Recorded" images or video are captures that the user intends or requests to be fully processed by an image signal processor (such as by pressing a camera button for an image, pressing a record button for video, and so on). A camera preview shows captures without being fully processed. If the camera preview shows captures that are also being recorded, the preview shows partially processed captures while the image signal processor fully processes the captures. If the camera preview shows captures before an image or video is to be recorded, the preview shows partially processed captures that are discarded after preview. Once captures are fully processed for recording, the resulting images or video may be, e.g., stored in memory for later viewing, streamed to others for live viewing, and so on.

In the following description, numerous specific details are set forth such as examples of specific components, circuits, and processes to provide a thorough understanding of the present disclosure. The term "coupled" as used herein means connected directly to or connected through one or more intervening components or circuits. Also, in the following description and for purposes of explanation, specific nomenclature is set forth to provide a thorough understanding of the present disclosure. However, it will be apparent to one skilled in the art that these specific details may not be required to practice the teachings disclosed herein. In other instances, well-known circuits and devices are shown in block diagram form to avoid obscuring teachings of the present disclosure. Some portions of the detailed descriptions which follow are presented in terms of procedures, logic blocks, processing and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. In the present disclosure, a procedure, logic block, process, or the like, is conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, although not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system.

Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present application, discussions utilizing the terms such as "accessing," "receiving," "sending," "using," "selecting," "determining," "normalizing," "multiplying," "averaging," "monitoring," "comparing," "applying," "updating," "measuring," "deriving" or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.

In the figures, a single block may be described as performing a function or functions; however, in actual practice, the function or functions performed by that block may be performed in a single component or across multiple components, and/or may be performed using hardware, using software, or using a combination of hardware and software. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps are described below generally in terms of their functionality. Also, the example devices may include components other than those shown, including well-known components such as a processor, memory and the like.

Aspects of the present disclosure are applicable to any suitable processor (such as an image signal processor) or device (such as smartphones, tablets, laptop computers, digital cameras, web cameras, and so on) that include one or more cameras, and may be implemented for a variety of camera configurations. While portions of the below description and examples use two cameras for a device in order to describe aspects of the disclosure, the disclosure applies to any device with at least one camera. For devices with multiple cameras, the cameras may have similar or different capabilities (such as resolution, color or black and white, a wide view lens versus a telephoto lens, zoom capabilities, and so on).

<FIG> depicts an example device <NUM> including a dual camera with a first camera <NUM> and a second camera <NUM> arranged in a first configuration. <FIG> depicts another example device <NUM> including a dual camera with a first camera <NUM> and a second camera <NUM> arranged in a second configuration. In some aspects, one of the cameras (such as the first cameras <NUM> and <NUM>) may be a primary camera, and the other camera (such as the second cameras <NUM> and <NUM>) may be an auxiliary camera. Additionally or alternatively, the second cameras <NUM> and <NUM> may have a different focal length, capture rate, resolution, color palette (such as color versus black and white), and/or field of view or capture than the first cameras <NUM> and <NUM>. In some aspects, the first cameras <NUM> and <NUM> each may include a wide field of view and the second cameras <NUM> and <NUM> each may include a narrower field of view (such as a telephoto camera). In other aspects, the first cameras <NUM> and <NUM> may have the same capabilities as the second cameras <NUM> and <NUM> yet not have the same vantage of a scene to be captured or recorded.

While an example device that may be a smartphone or tablet including a dual camera is depicted, aspects of the present embodiments may be implemented in any device with an image signal processor. Another example device is a wearable (such as smartwatches) which may connect to a smartphone or tablet. A further example device is an augmented or virtual reality headset coupled (e.g., in communication with or physically connected to) to cameras. Another example device is a drone or automobile coupled to or including cameras. A further example device is a video security system coupled to security cameras. The examples are for illustrative purposes only, and the disclosure should not be limited to any specific example or device.

The term "device" is not limited to one or a specific number of physical objects (such as one smartphone). As used herein, a device may be any electronic with multiple parts that may implement at least some portions of this disclosure. While the below description and examples use the term "device" to describe various aspects of this disclosure, the term "device" is not limited to a specific configuration, type, or number of objects.

<FIG> is a block diagram of an example device <NUM> including multiple cameras. The example device <NUM>, which may be one implementation of the devices <NUM> and <NUM> of <FIG>, may be any suitable device capable of capturing images or video including, for example, wired and wireless communication devices (such as camera phones, smartphones, tablets, security systems, dash cameras, laptop computers, desktop computers, wearable cameras, drones, and so on), digital cameras (including still cameras, video cameras, and so on), or any other suitable device. The example device <NUM> is shown in <FIG> to include a first camera <NUM>, a second camera <NUM>, a processor <NUM>, a memory <NUM> storing instructions <NUM>, a camera controller <NUM>, a display <NUM>, and a number of input/output (I/O) components <NUM>. The device <NUM> may include additional features or components not shown. For example, a wireless interface, which may include a number of transceivers and a baseband processor, may be included for a wireless communication device. Device <NUM> may include additional cameras other than the first camera <NUM> and the second camera <NUM>. The disclosure should not be limited to any specific examples or illustrations, including example device <NUM>.

The first camera <NUM> and the second camera <NUM> may be capable of capturing individual image frames (such as still images) and/or capturing video (such as a succession of captured image frames). A succession of still images or video from a camera may be called an image stream. The first camera <NUM> and the second camera <NUM> may include one or more image sensors (not shown for simplicity) and shutters for capturing an image stream and providing the captured image stream to the camera controller <NUM>.

The memory <NUM> may be a non-transient or non-transitory computer readable medium storing computer-executable instructions <NUM> to perform all or a portion of one or more operations described in this disclosure. The device <NUM> may also include a power supply <NUM>, which may be coupled to or integrated into the device <NUM>.

The processor <NUM> may be one or more suitable processors capable of executing scripts or instructions of one or more software programs (such as instructions <NUM>) stored within the memory <NUM>. In some aspects, the processor <NUM> may be one or more general purpose processors that execute instructions <NUM> to cause the device <NUM> to perform any number of different functions or operations. In additional or alternative aspects, the processor <NUM> may include integrated circuits or other hardware to perform functions or operations without the use of software. While shown to be coupled to each other via the processor <NUM> in the example of <FIG>, the processor <NUM>, memory <NUM>, camera controller <NUM>, the display <NUM>, and I/O components <NUM> may be coupled to one another in various arrangements. For example, the processor <NUM>, the memory <NUM>, the camera controller <NUM>, the display <NUM>, and/or the I/O components <NUM> may be coupled to each other via one or more local buses (not shown for simplicity).

The display <NUM> may be any suitable display or screen allowing for user interaction and/or to present items (such as captured images and video) for viewing by a user. In some aspects, the display <NUM> may be a touch-sensitive display. The I/O components <NUM> may be or include any suitable mechanism, interface, or device to receive input (such as commands) from the user and to provide output to the user. For example, the I/O components <NUM> may include (but are not limited to) a graphical user interface, keyboard, mouse, microphone and speakers, and so on.

The camera controller <NUM> may include an image signal processor <NUM>, which may be one or more image signal processors, to process captured image frames or video provided by the first camera <NUM> and/or the second camera <NUM>. In some example implementations, the camera controller <NUM> (such as by using the image signal processor <NUM>) may control operation of the first camera <NUM> and the second camera <NUM>. In some aspects, the image signal processor <NUM> may execute instructions from a memory (such as instructions <NUM> from the memory <NUM> or instructions stored in a separate memory coupled to the image signal processor <NUM>) to control operation of the cameras <NUM> and <NUM> and/or to process and provide one or more image streams for recording or previewing. In other aspects, the image signal processor <NUM> may include specific hardware to control operation of the cameras <NUM> and <NUM> and/or to process and provide one or more image streams for recording or previewing. The image signal processor <NUM> may alternatively or additionally include a combination of specific hardware and the ability to execute software instructions.

While <FIG> illustrates an example implementation of a device <NUM>, device <NUM> is not required to include all of the components shown in <FIG>. <FIG> illustrates another example implementation of device <NUM>, showing that device <NUM> need not include all of the components illustrated in <FIG>. For example, device <NUM> may include the image signal processor <NUM> (which may be part of a camera controller) and memory <NUM> including instructions <NUM>, and may be coupled to or include a power supply <NUM>. First camera <NUM> and second camera <NUM> may be separate from and coupled to device <NUM> (such as for a security system, desktop computer, or other devices where the cameras are remote to the device). In some example implementations, device <NUM> receives capture streams from the cameras for processing and provides commands to the cameras for positioning the camera.

Alternatively or additionally, display <NUM> may be separate from and coupled to device <NUM>. In one example, display <NUM> may be a wireless display coupled to the device performing the image processing. For example, a drone may provide captures to a user's tablet or smartphone for preview, and the drone may include an image signal processor to fully process any captures intended for recording. I/O components <NUM> may also be separate from device <NUM>. For example, if the input is a graphic user interface, some or all of the I/O components may be part of display <NUM>.

As shown, various device configurations and types may be used in implementing aspects of the present disclosure. As a result, the disclosure should not be limited to a specific device configuration or type.

<FIG> is a block diagram of an example image signal processor <NUM>. The image signal processor <NUM> may be one implementation of the image signal processor <NUM> of the camera controller <NUM> illustrated in <FIG>. The image signal processor <NUM> may be a single thread (or single core) processor with a sequence of filters 302A-302N to process a first image stream. In one example implementation, filter <NUM> (302A) may be a noise reduction filter, filter <NUM> (302B) may be an edge enhancement filter, and filter N (302N) may be a final filter to complete processing the image stream. Alternatively, the image signal processor <NUM> may be a multiple thread (or multiple core) processor with one or more additional sequences of filters 304A-304N to process other image streams.

When a user utilizes a conventional device to record or capture a scene (such as a father using a smartphone to record his child's soccer game or piano recital), the scene is typically previewed on a display of the device. When the user zooms into a portion of the scene (such as the father zooming in on his child), the device typically previews the zoomed in portion of the scene. If the zoom is a digital zoom, the device may preview only a portion of the scene being captured by the device's camera(s). In this manner, a conventional camera controller may output for preview only a portion of the image stream being captured. If a user loses track of an object to be recorded in a zoomed in view and the preview does not show the object, the user may have difficulties positioning (such as moving (e.g., left, right, up, down, and diagonally) or orienting (e.g., panning, tilting, and rotating) the camera to find the object in the preview. ) For example, if the aforementioned father does not see his child in a zoomed in preview, the father may have difficulties determining the direction and distance in which to change the position of the camera to locate his child.

<FIG> illustrates an example scene <NUM> being captured by a camera. For purposes of discussion herein, the example scene <NUM> is captured or recorded by the first camera <NUM> or the second camera <NUM> (or both the first camera <NUM> and the second camera <NUM>) of the device <NUM> of <FIG>. The example scene <NUM> is of a player scoring a goal during practice. A user may wish to zoom in on the ball while recording the scene <NUM>, and a preview of the zoomed-in scene being recorded may differ from what the user intends to record. <FIG> depicts the example scene <NUM> of <FIG>, depicts an actual portion <NUM> of the zoomed-in scene being or to be recorded, and depicts an intended portion <NUM> of the scene to be recorded. If the device previews the portion <NUM> of the scene being or to be recorded, the user may have difficulties determining that the location of the intended portion <NUM> of the scene to be recorded is, in this example, to the right and below the location of the portion <NUM> of the scene being or to be recorded. As a result, the user may not know in which direction to move or orient the camera. For example, the user may spend time moving the device to try to find the ball in the zoomed in view, or may expend device resources zooming out and again zooming in to relocate the ball in the preview. As a result, a user may be too late in recording a wanted image or video or otherwise lose opportunities in recording an intended object at an intended time (such as recording his child when scoring a goal).

In accordance with various aspects of the present disclosure, a display (such as example display <NUM>, which may be coupled to or included in a device) is configured to assist a user in positioning one or more cameras. In some implementations, the display previews a scene being captured by a camera (which includes the portion of the scene being or to be recorded). In the preview of the scene, a display (in communication with an image processing device) displays a visual indication of the portion of the scene being or to be recorded. In this manner, the user is able to readily determine the location of the portion of the scene being or to be recorded with respect to the scene being captured.

<FIG> illustrates an example display <NUM> previewing the scene <NUM> of <FIG> being captured and a visual indication <NUM> of the portion of the scene being or to be recorded. For simplicity and brevity, discussions related to a portion of a scene being or to be recorded, as indicated by the visual indication of this disclosure, may be referred to as a portion of the scene being recorded. The display <NUM> may be display <NUM> of the device <NUM> of <FIG> and <FIG>, with the device <NUM> recording the portion of the scene indicated by visual indication <NUM>, but any suitable device configuration may be used. While the visual indication <NUM> is illustrated as a dashed rectangle that indicates the portion of the scene being recorded, the visual indication <NUM> may take any form to indicate the portion of the scene being recorded. In some other examples, the visual indication <NUM> may indicate the portion of the scene as a grayed colored area or other contrasted area of the preview, may indicate the corners of the portion of the scene being recorded, include a marker identifying the center of the portion of the scene being recorded, a solid line box indicating the portion of the scene being recorded, and so on. In addition, recording a portion of the scene includes recording video as well as one or more still images. In this manner, a user may prepare the visual indication <NUM> to be centered on a portion of the scene for an upcoming image or video to be recorded.

One camera's capture stream may include an entire scene, and a spatial portion (e.g., the spatial portion of the scene defined/bounded by the visual indication <NUM>) of that stream is output (such as by the camera controller <NUM> of <FIG>) for recording. Alternatively, a first camera's stream may include the entire scene while a second camera's stream includes the portion of the scene being or to be recorded. <FIG> illustrates an example of the first camera <NUM> of the device <NUM> capturing the scene <NUM> and the second camera <NUM> of the device <NUM> capturing the portion <NUM> being or to be recorded of the scene <NUM>. In this manner, a display <NUM> may preview the scene <NUM> being captured by the first camera <NUM> and present (e.g., display) a visual indication which includes the portion <NUM> (of the scene <NUM>) being captured by the second camera <NUM> for recording.

In additional or alternative implementations, a device may be configured to record either or both of the capture streams. In one example, the device may request a user to select one of the streams to be recorded or automatically select the stream to be recorded. In another example, one capture stream may be used exclusively for previews. The device may request the user to select which capture stream to use for preview, or the device may automatically select the capture stream to be used for preview. In a further example, the device automatically records both capture streams. If recording both capture streams, a user may be requested to select one or both of the recordings for storage (discarding the unselected recordings).

In some example implementations, the first camera <NUM> and the second camera <NUM> are part of the dual camera of the device <NUM>. In some dual cameras, the two cameras <NUM> and <NUM> have similar capabilities, such as resolution, color palette, zoom, focal length, shutter speed, and so on. Alternatively, the two cameras <NUM> and <NUM> may have different capabilities. In some examples, the first camera <NUM> may be a color camera and the second camera <NUM> may be a black and white camera that may have better fidelity in low light settings. In some other examples, the first camera <NUM> may be a high resolution camera (such as <NUM> megapixels, <NUM> megapixels, and so on) and the second camera <NUM> may be a lower resolution camera than the first camera <NUM>, for example, to assist the first camera with auto-focus. In some further examples, the first camera <NUM> may be a wide angle view camera and the second camera <NUM> may be a narrower field of view camera with a longer focal length than the first camera <NUM>, for example, to capture objects further away from the device. Some devices may include different configurations of a dual camera, and other devices may include more than two cameras. Implementations of the present disclosure apply to any camera configuration and type of device. The provided examples using a two camera configuration are provided only for illustrative purposes, and the disclosure should not be limited to or by any of the provided examples.

<FIG> is an illustrative flow chart depicting an example operation <NUM> for outputting a visual indication. The outputted visual indication is presented on a display to assist a user in positioning a camera so that the device may receive capture streams including the intended scene being recorded. For example, a user may use the visual indication the identify how to position a camera in order to have its field of view include an intended scene. The example operation <NUM> is described below with respect to two image streams (such as a first image stream from the first camera <NUM> and a second image stream from the second camera <NUM> of the device <NUM>). However, aspects apply to any number of image streams (including one image stream or three or more image streams).

While the example operations (including example operation <NUM>) are described regarding a device <NUM>, camera controller <NUM>, or image signal processor <NUM>, any capable component or module may perform the operation. For example, even though a device <NUM> or a camera controller <NUM> may be described as performing an operation, an image signal processor <NUM> (such as in <FIG> or <FIG>), processor <NUM> (<FIG>), camera controller <NUM> (<FIG>) or other module or component may perform the operation. Further, the term "output" may include providing to a separate device, providing to a remote display, displaying on an included display of a device, providing from one component of a device to another component of the device, or providing from one component of a device to a module external to the device. The disclosure should not be limited to specific components or modules performing operations as described in the example operations.

Beginning at <NUM>, the device <NUM> processes a first image stream associated with an entirety of a scene. In one example, the first camera <NUM> may capture the scene <NUM> (<FIG>) and provide the first image stream to the camera controller <NUM> of device <NUM>, which processes the incoming first image stream. In another example, the camera controller <NUM> of device <NUM> processes an image stream received from another device or stored in a memory (such as memory <NUM>). In some example implementations, the image signal processor <NUM> may process the first image stream. For example, the image signal processor <NUM> (<FIG>) may apply filters 302A-302N to the first image stream. Additionally or alternatively, the image signal processor <NUM> may perform other functions to the first image stream, such as cropping, zooming, de-interlacing, and so on.

The camera controller <NUM> of device <NUM> also independently processes a second image stream associated with a spatial portion (e.g., a portion less than or equal to an entirety) of the scene in the first image stream (<NUM>). In one example, the second camera <NUM> may capture the spatial portion <NUM> of the scene <NUM> (<FIG>) and provide the resulting second image stream to the camera controller <NUM>, which processes the incoming second image stream. In other examples, the second image stream may be provided by another device or from memory (such as the memory <NUM>). Referring to the previous example of the image signal processor <NUM> applying filters 302A-302N to the first image stream, the image signal processor <NUM> may apply filters 304A-304N to the second image stream, and may also or alternatively perform other functions, such as cropping, zooming, de-interlacing, and so on.

In some example implementations for processing the second image stream, the device <NUM> (such as camera controller <NUM> or image signal processor <NUM>) may determine the size and location of a visual indication in the scene <NUM> of the first image stream (<NUM>). For example, the device <NUM> may embed the visual indication into the processed first image stream, create a layer on the processed first image stream, augment the processed first image stream and so on, so that the captured scene <NUM> and the visual indication may be displayed concurrently (such as on a display <NUM>).

It should be noted that this disclosure should not be limited to the second camera <NUM> having a smaller field of view than the first camera <NUM>. For example, the cameras may be at different zoom levels so that a camera with a larger field of view than the other camera captures a smaller portion of the scene than the other camera. Additionally, as previously noted, the image signal processor <NUM> may be any number of processors, threads, and/or cores. In some example implementations, the image signal processor <NUM> and the processor <NUM> may be part of a System on Chip (SoC). As such, it should be noted that various aspects of the present disclosure are not limited to any specific hardware.

Proceeding to <NUM>, the device <NUM> outputs the processed first image stream for preview. In some example implementations, the camera controller <NUM> may generate the processed first image stream. Upon generating the processed first image stream, the device <NUM> previews the scene <NUM> on display <NUM> (<NUM>). For example, device <NUM> outputs the processed first image stream to display <NUM>, and display <NUM> previews the scene <NUM> by displaying the processed first image stream. During or after generating and outputting the processed first image stream (such as by camera controller <NUM>), the visual indication of the spatial portion of the scene associated with the second image stream is also output (<NUM>). The display <NUM> displays the visual indication on the scene <NUM> being previewed (<NUM>). The processed first image stream includes the visual indication. Otherwise, in an example which is not according to the claims, the first image stream may be linked to the visual indication so that camera controller <NUM> can associate the visual indication with the portion of the scene to be recorded in the processed first image stream.

While example operation <NUM> shows processing the image streams in sequence and generating the processed first image stream and the visual indication in sequence, processing different image streams may be performed concurrently and outputting or generating a processed image stream and visual indication may also be performed concurrently. The processed second image stream may be output while outputting the processed first image stream. For example, the camera controller <NUM> may generate at least a portion of the processed second image stream associated with the portion of the scene being recorded. The processed image stream may be stored in a memory of the device (such as memory <NUM>) or output to another device or memory. If the display <NUM> previews the processed first image stream and the visual indication, the visual indication indicates the portion of the scene captured in the processed first image stream being recorded in at least a portion of the second image stream.

While the example operation <NUM> (and the other example operations in this disclosure) describes using the processed second image stream for recording, only a portion of the processed second image stream might be used for recording. For example, a digital zoom may be used for the second camera <NUM> so that the entire scene captured by the second camera <NUM> is not to be recorded. It should be noted that an image stream may refer to one or more temporal or spatial portions of the image stream or the stream in its entirety, and the disclosure should not be limited to a specific implementation of an image stream.

With a visual indication shown on a preview of the scene, the user may better understand how to move the device or the cameras in order to locate an object of interest in the stream (or portion of the stream) being or to be recorded. The preview of the scene with the visual indication may be called a "zoom assist" preview. In some example implementations, the user may wish to switch between two or more of: (<NUM>) the zoom assist preview in which the preview may depict both an indication of the portion of a scene being recorded as well as a preview of the entire scene being captured; (<NUM>) a conventional preview in which the preview may depict only what is being recorded; (<NUM>) a concurrent view in which a combination of the zoom assist preview and the conventional preview are depicted (such as a side-by-side (SBS) view, picture in picture (PiP) view, windowed view, etc., of the zoom assist preview and the convention preview); (<NUM>) an alternative preview in which the preview may depict a different portion of the scene than the conventional preview; (<NUM>) a different zoom level preview in which the preview may depict a portion of the scene at a different zoom level (such as a different digital zoom level) than the conventional preview; or (<NUM>) a concurrent view in which a combination of two or more of the above previews a depicted.

<FIG> illustrates an example switching operation <NUM> of the display <NUM> between a zoom assist preview <NUM> and a preview <NUM> of the portion of the scene being or to be recorded. In some example implementations, the device <NUM> may allow a button, a menu, a gesture, or other user-based command to determine when to switch between the previews <NUM> and <NUM>. In some implementations, the command toggles between activation and deactivation of the zoom assist preview functionality. In some other implementations, the command changes the preview while one or more other previews are still generated but not displayed or output for display.

In one example, the display <NUM> may present a zoom assist button <NUM> to allow the user to switch between previews <NUM> and <NUM>, with the preview <NUM> including a visual indication <NUM> indicating the portion of the scene being or to be recorded. In other examples, the user may use a swipe gesture, shake the device <NUM>, or provide audible, visual or other touch commands to switch between the previews <NUM> and <NUM>.

Additionally or alternatively, the decision to switch between the previews <NUM> and <NUM> may be determined automatically (e.g., "on-the-fly") by the device <NUM> based on one or more criteria. For example, one or more criteria for causing the device <NUM> to switch from preview <NUM> to preview <NUM> may include camera movement, an object moving into the portion of the scene being captured, motion of an object of interest (e.g., an object of interest may be automatically tracked by the device <NUM> for recording), and so on, that may cause the device <NUM> to present the zoom assist preview <NUM> to assist a user in positioning the first camera <NUM> and/or the second camera <NUM>. Likewise, one or more criteria for causing the device <NUM> to switch from the preview <NUM> to the preview <NUM> may include an assessment (or analysis) of a determined amount of motion, determined depth, and/or determined size of, for example, an object of interest that is being tracked (e.g., tracked based on user selection or predetermined criteria) relative to various associated threshold levels.

<FIG> is an illustrative flow chart depicting an example operation <NUM> for switching between a scene being captured (such as the scene in a first image stream being captured by the first camera <NUM>) and a portion of the scene being or to be recorded (such as at least a portion of the second image stream captured by the second camera <NUM>). For example, the camera controller <NUM> (operating alone or in collaboration with other components such as the processor <NUM>) may determine whether to switch between outputting (such as for preview) the processed first image stream (and the visual indication) and the processed second image stream. The output image stream may be the image stream previewed by the display <NUM>.

In some example implementations, the camera controller <NUM> may generate for recording more than one image stream (such as both the first image stream and the second image stream). In one example, the camera controller <NUM> may generate and output for recording the processed image stream not currently being previewed. A user may be presented an option of selecting which recorded image stream to keep, such as by being able to review each image stream and select the image stream being reviewed to be kept or deleted. While the example operation <NUM> shows switching between an image stream being captured and an image stream being recorded, both image streams may be recorded, and the disclosure should not be limited to recording one image stream or recording as shown in the specific examples provided.

Beginning at <NUM>, a processed first image stream may be generated for preview. For example, the camera controller <NUM> (such as by using the image signal processor <NUM>) may generate the processed first image stream. The display <NUM> may optionally display the zoom assist preview, for example, by presenting the processed first image stream and the visual indication (<NUM>). Referring back to <FIG>, the display <NUM> may display the zoom assist preview <NUM> with the visual indication <NUM>. The device <NUM> may then determine from one or more criteria (such as a user tapping a zoom assist button, swiping the screen, movement in the scene, camera movement, and so on) if the device <NUM> is to switch from outputting the processed first image stream to outputting the processed second image stream (<NUM>). For example, the device <NUM> determines if the display <NUM> should switch from the zoom assist preview <NUM> to the preview <NUM> of the scene portion being recorded, as depicted in the example of <FIG>. If the device <NUM> is not to switch, then the device <NUM> continues to output the processed first image stream (<NUM>). For example, the display <NUM> continues to present the zoom assist preview <NUM> with the visual indication <NUM> (<NUM>).

If the device <NUM> is to switch from outputting the processed first image stream, the device <NUM> switches to outputting the processed second image stream for preview (<NUM>). In one example, the camera controller <NUM> may switch to generating the processed second image stream. In another example, the camera controller <NUM> generates both processed image streams, and the device <NUM> determines to switch outputting to display <NUM> from the zoom assist preview <NUM> to a preview <NUM> of the processed second image stream. In this manner, the display <NUM> may optionally present the processed second image stream (<NUM>), for example, by previewing to the user what is being or to be recorded.

The device <NUM> (such as camera controller <NUM>) may then determine from one or more criteria (such as a change in the one or more criteria or an additional user request or input) if the device <NUM> is to switch from outputting the processed second image stream to the processed first image stream (<NUM>). For example, the device <NUM> determines if the display <NUM> should switch from presenting the scene portion <NUM> being recorded to the zoom assist preview <NUM> in <FIG>. If no switch is to occur, then the device <NUM> continues to output the processed second image stream (<NUM>). For example, the display <NUM> continues to present the scene portion <NUM> being recorded (<NUM>). If a switch is to occur (<NUM>), the device <NUM> switches to outputting the processed first image stream, for example, so that the zoom assist preview may be presented on the display <NUM>. In one example, if both processed image streams are generated by camera controller <NUM> or image signal processor <NUM>, the device <NUM> may switch between outputting the generated image streams. In another example, the camera controller <NUM> may output one processed image stream and switch processed image streams to be output.

In the implementations which are according to the appended claims, the display <NUM> concurrently displays the zoom assist preview and the portion of the scene being or to be recorded. <FIG> illustrates an example display presenting a concurrent preview <NUM>, including the zoom assist preview <NUM> (with a visual indication <NUM>) and the portion of the scene <NUM> being recorded. The display <NUM>, which may be one implementation of the display <NUM>, additionally may include a button <NUM> to switch between previews (such as between the concurrent display of previews <NUM> and <NUM> and a preview <NUM> of what is being or to be recorded). While the concurrent preview <NUM>, including previews <NUM> and <NUM>, is shown as side by side, the previews <NUM> and <NUM> may be presented concurrently in any manner, such as picture in picture, separate windows, and so on. Additionally, while the preview <NUM> is shown in letterbox fashion, only a portion of zoom assist preview <NUM> is shown, and each of the previews are displayed on half of the display, all or any portion of each preview <NUM> and <NUM> may be shown on any amount of the display. For example, the display <NUM> may display both previews <NUM> and <NUM> in a letterbox fashion, may display only a portion of each of the previews <NUM> and <NUM>, allow the user to determine how the previews <NUM> and <NUM> are to be concurrently displayed, or allow the user to change how much of the display <NUM> is to be used for each of the previews <NUM> and <NUM>. It should therefore be noted that the disclosure should not be limited to any of the example displays or previews provided.

A user may wish to switch (or the device <NUM> may automatically switch by switching outputs of processed image streams) between a concurrent display of previews ("concurrent preview") and the zoom assist preview. <FIG> illustrates an example operation <NUM> of a display switching between the concurrent preview <NUM> and the zoom assist preview <NUM>. In one example, a user may press the zoom assist (ZA) button to switch between the previews <NUM> and <NUM>. The device <NUM> may additionally or alternatively switch outputs to a display <NUM> so that the display switches between presenting previews <NUM> and <NUM> based on one or more other criteria (such as camera movement, object movement, and so on).

Additionally or alternatively, the display may switch between the concurrent preview <NUM>, the zoom assist preview <NUM>, and a preview <NUM> of what is being or to be recorded. For example, the device <NUM> may switch between outputting the processed image streams for each of the previews. <FIG> illustrates an example of a display switching between the zoom assist preview <NUM>, the preview of the portion of the scene being or to be recorded <NUM>, and/or the concurrent preview <NUM>, as indicated by switching operations 914A-914C. In one example, a user may press the ZA button to cycle through the previews. In another example, the display may include multiple buttons (such as soft buttons and/or physical buttons) so that a user may directly switch to an intended preview. In a further example, the user may swipe left for one preview and swipe right for the other preview (or swipe in any other direction, such as up, down, or diagonally). Other criteria may additionally or alternatively be used for the device to determine to switch previews (such as camera movement, object movement, and so on).

<FIG> is an illustrative flow chart depicting an example operation <NUM> for switching between a concurrent preview and a preview of the scene being recorded. For example, the camera controller <NUM> (or device <NUM>) may switch from concurrently outputting the processed first image stream (and the visual indication) and the processed second image stream (such as for displaying the concurrent preview on display <NUM>) for preview to outputting only the processed second image stream (such as for displaying on display <NUM> what is being recorded) for preview. In some alternative implementations, the camera controller <NUM> (or device <NUM>) may concurrently output the processed first image stream and the processed second image stream for preview while switching between the concurrent preview and a preview of what is being or to be recorded. The example operation <NUM> of <FIG> is discussed with respect to <FIG>, but similar processes or steps in the example operation <NUM> of <FIG> may be used to switch between previews illustrated in <FIG> or other example implementations.

Beginning at <NUM>, the device <NUM> may concurrently output the processed first image stream and the processed second image stream for a concurrent preview on display <NUM>. For example, the camera controller <NUM> (such as by using the image signal processor <NUM>) may concurrently output the processed first image stream and the processed second image stream. The display <NUM> may display the concurrent preview <NUM>, including the zoom assist preview and a preview of what is being or to be recorded (<NUM>). The device <NUM> may then determine from one or more criteria (such as receiving a user command from display <NUM> by the user tapping a zoom assist button or swiping the screen, determining movement in the scene or camera movement, and so on) if the device <NUM> (or camera controller <NUM>) is to switch from concurrently outputting the processed first and second image streams to outputting only the processed second image stream for preview (<NUM>). For example, the device <NUM> determines if the display <NUM> should switch (<NUM>) from the concurrent preview <NUM> to the preview <NUM> of what is being recorded. If no switch is to occur, the device <NUM> continues to concurrently output the processed first and second image streams (<NUM>). For example, display <NUM> continues to present the concurrent preview <NUM> (<NUM>).

If a switch is to occur (<NUM>), the device <NUM> switches to outputting the processed second image stream (<NUM>). In one example, the camera controller <NUM> (such as by using the image signal processor <NUM>) may switch to outputting the processed second image stream. In another example, the camera controller <NUM> outputs both processed image streams for preview, and the device <NUM> determines to switch from outputting the processed first image stream for display <NUM> to present the concurrent preview to outputting the processed second image stream for display <NUM> to present. In this manner, the display <NUM> may optionally display the processed second image stream (<NUM>), previewing what is being or to be recorded.

The device <NUM> may then determine from the one or more criteria (such as a change in the one or more criteria or an additional user request or input) if to switch from outputting the processed second image stream for preview to concurrently outputting the processed first and second image streams for preview (<NUM>). For example, the device <NUM> determines if the display <NUM> should switch from presenting previews (<NUM>) from a preview <NUM> indicating the scene portion being recorded to a concurrent preview <NUM> in <FIG>. If no switch is to occur, the device <NUM> continues to output the processed second image stream (<NUM>). For example, the display <NUM> continues to present the preview <NUM> indicating the scene portion being or to be recorded (<NUM>). If a switch is to occur (<NUM>), the device <NUM> switches to concurrently outputting the processed first and second image streams (<NUM>). In this manner, the concurrent preview <NUM> may be presented by display <NUM>. In some alternative implementations, the device <NUM> (such as by using the camera controller <NUM>) may concurrently output both the processed first and second image streams, and the display <NUM> switches from presenting the preview of what is being recorded to presenting the concurrent preview.

In the implementations which are according to the claims, the display <NUM> allows the user to interact with the presented preview (such as the user resizing or resizing and moving the visual indication shown on display <NUM>). In some examples, if the display <NUM> is a touch-sensitive display, the device <NUM> may receive from the display <NUM> an indication that a user provided a pinch gesture to reduce the size of the visual indication and/or a spread gesture to increase the size of the visual indication. Additionally, the user may provide a drag gesture to move the location of the visual indication. In some other examples, the user may provide commands via physical buttons (such as directional buttons, a zoom or scroll wheel, and so on) of a display <NUM> or device <NUM> or a microphone receiving audible commands. In some other examples, the device <NUM> may include or be coupled to a gyroscope and/or accelerometer receiving force commands.

<FIG> illustrates a display <NUM> providing a zoom assist preview wherein a first visual indication <NUM> is resized to a second visual indication <NUM> to indicate more of a portion of the scene being or to be recorded. Example display <NUM> may be one implementation of the display <NUM> of or coupled to the device <NUM>. Scene portion <NUM> corresponds to the first visual indication <NUM>, and scene portion <NUM> corresponds to the second visual indication <NUM>. In some examples, a user provides a spreading gesture for the first visual indication <NUM> via the display <NUM> to switch from the first visual indication <NUM> to the second visual indication <NUM> and thus switches from the scene portion <NUM> to the scene portion <NUM> being or to be recorded.

<FIG> illustrates a display <NUM> providing a zoom assist preview wherein a first visual indication <NUM> is moved to a second visual indication <NUM> to indicate a different portion of the scene being or to be recorded. Example display <NUM> may be one implementation of the display <NUM> of or coupled to the device <NUM>. Scene portion <NUM> corresponds to the first visual indication <NUM>, and scene portion <NUM> corresponds to the second visual indication <NUM>. In some examples, a user provides a drag gesture for the first visual indication <NUM> via the display <NUM> to switch from the first visual indication <NUM> to the second visual indication <NUM> (such as moving the visual indication) and thus switch from the scene portion to the scene portion <NUM> being or to be recorded.

<FIG> is an illustrative flow chart depicting an operation <NUM> for adjusting a portion of the scene being or to be recorded based on a user input to adjust a visual indication. The example operation <NUM> of <FIG> is discussed with respect to <FIG> and <FIG>, but similar processes or steps in the example operation <NUM> of <FIG> may be used to resize what is to be or being recorded for other example implementations. For example, while a zoom assist preview is described, adjusting the visual indication occurs in a concurrent preview.

Beginning at <NUM>, the display <NUM> displays concurrent preview including a visual indication of the portion of the scene being or to be recorded. While the display <NUM> presents the zoom assist preview, the device <NUM> receives a user input or request to adjust the visual indication (<NUM>), such as from display <NUM> providing user commands from a user interaction with the display. The device <NUM> receives a user command to adjust the size of the visual indication <NUM> in <FIG> (<NUM>). Additionally, the device <NUM> may optionally receive a user command to move the location of the visual indication (<NUM>). By requesting the visual indication be adjusted (such as through interacting with the display <NUM>), a user indicates that the device <NUM> is to record a different portion of the scene than currently indicated by the visual indication in the zoom assist preview.

In response to the user command, the device <NUM> adjusts processing the second image stream (<NUM>). In adjusting processing of the second image stream (<NUM>), the device <NUM> adjusts the size of the portion of the scene being recorded or to be recorded in the second image stream (<NUM>). For example, when the scene portion <NUM> (<FIG>) is output for recording, the device <NUM> adjusts processing the second image stream so that the scene portion <NUM> is output for recording if the user changes the first visual indication <NUM> to the second visual indication <NUM>. Additionally, the device <NUM> may optionally change the spatial location of the portion of the scene being or to be recorded (<NUM>). For example, where scene portion <NUM> (<FIG>) is output for recording, device <NUM> adjusts processing the second image stream so that scene portion <NUM> is output for recording if the user moves the visual indication <NUM> to the location of visual indication <NUM> in preview <NUM>.

In some example implementations, the device <NUM> may adjust what portion of the scene the second camera <NUM> captures for recording, or send a command to the second camera <NUM> to adjust what is being captured, before applying one or more filters to the captured second image stream. In one example, the camera controller <NUM> may send a command to second camera <NUM> to change an optical zoom level of second camera <NUM>. In another example, the camera controller <NUM> may send a command to second camera <NUM> to adjust the pan and/or tilt of second camera <NUM> (such as for a security camera).

In some other example implementations, the device <NUM> may crop the captured second image stream from the second camera <NUM> (or the processed second image stream after applying one or more filters). In this manner, the device <NUM> may adjust cropping the second image stream so that only the portion of the scene associated with the adjusted visual indication is output for recording. For example, the second camera <NUM> captures more of the scene than what is recorded (such as a digital zoom may be used for the second image stream to show what is to be or being recorded). If the device <NUM> is to record a different portion of the scene currently being recorded in the second image stream, the second camera <NUM> might capture the same scene, and the device <NUM> (such as camera controller <NUM>) may adjust the portion of the second image stream being recorded without adjusting the second camera <NUM>.

Referring back to <FIG>, the device <NUM> adjusts generating the displayed visual indication in response to adjusting processing the second image stream and/or in response to the user input to adjust the visual indication (<NUM>). The device <NUM> adjusts the size of the visual indication to be displayed in the preview (<NUM>). Additionally, the device <NUM> may optionally move the visual indication to the new location to be displayed in the preview (<NUM>).

In addition to a user requesting a change to the size or to the size and location of the visual indication (such as by user gestures on a touch-sensitive display <NUM> or other user inputs), the device <NUM> may automatically adjust generating the size and/or location of the visual indication (and thus the portion of the scene being or to be recorded) in response to one or more criteria. In one example, if the device <NUM> tracks an object for recording (such as a face, person, soccer ball, and so on), and the camera is unable to focus on the object (such as that the object is blurry in the recording), the device <NUM> may record more of the scene including the object (increasing the size of the visual indication and thus "zooming out" from the object) in order to adjust the focus to make the object clear in the recording. For example, the device <NUM> may send a command to the camera to optically zoom out so that more of the scene is captured. In another example, if the brightness of the scene is reduced, the device <NUM> may command a camera to capture more of the scene for recording (which increases the size of the visual indication) to attempt to capture more ambient light. In a further example, if the device <NUM> is tracking a moving object, the device adjusts the portion of the scene being or to be recorded (thus adjusting the location of the visual indication in the preview) to attempt to track the object.

In some example implementations, the second camera <NUM> does not capture as much of the scene as the first camera <NUM>, or the second camera <NUM> captures a different portion of the scene than the first camera <NUM>. For example, some dual cameras have a first camera with a wide field of view and a second camera with a narrower field of view (such as a telephoto camera). In this manner, a second camera may be unable to capture all of the scene in the first image stream. If a user of the device <NUM> attempts to adjust the visual indication (such as move or resize the visual indication via display <NUM>) in a zoom assist preview to an area of the scene that is not captured by the second camera <NUM>, the device <NUM> may automatically switch to using the first image stream (provided from first camera <NUM>) in recording the new portion of the scene. The switch from using the second image stream to the first image stream for recording may be seamless and invisible to the user. For example, the camera controller <NUM> may seamlessly switch from outputting at least a portion of the processed second image stream for recording to outputting at least a portion of the processed first image stream for recording. Alternatively, the device <NUM> may notify the user (such as audible or visual notifications) that the stream used for recording has changed. In some other example implementations, both image streams may be recorded, and the device <NUM> may stitch portions of the two image streams together to generate a processed image stream corresponding to the portion of the scene indicated by the visual indication.

<FIG> illustrates an example scene <NUM> being captured by the first camera <NUM> and an example portion <NUM> of the scene captured or able to be captured by the second camera <NUM>. As shown, the scene portion <NUM> captured by the second camera <NUM> is less than the scene <NUM> captured by the first camera <NUM>. In the illustrated example, the scene portion <NUM> may be originally recorded or to be recorded. If the scene portion to be recorded is adjusted to be the scene portion <NUM>, the second camera <NUM> may be unable to capture the scene portion for recording. For example, a user may gesture on display <NUM> to adjust the visual indication in a zoom assist preview to change from recording the scene portion <NUM> to recording the scene portion <NUM>, which is not captured in its entirety by the second camera <NUM>. The device <NUM> may switch from using the second image stream for recording to using the first image stream for recording so that all of the intended portion of the scene is recorded.

<FIG> illustrates the example scene <NUM> in <FIG> captured by the first camera <NUM> and the scene portion <NUM> being or to be recorded, wherein the first image stream (provided from the first camera <NUM>) includes the scene portion <NUM> (corresponding to the image <NUM>) that is recorded or to be recorded. In this manner, the second image stream (provided from the second camera <NUM>) might not be used for recording the scene portion <NUM>.

<FIG> is an illustrative flow chart depicting an example operation <NUM> for switching between a processed first image stream and a processed second image stream for recording a portion of the scene. Beginning at <NUM>, the display <NUM> presents a preview including a visual indication (such as a concurrent preview). With the visual indication indicating the scene portion being or to be recorded being displayed on display <NUM>, the device <NUM> (such as by using the camera controller <NUM>) may output for recording the processed second image stream (<NUM>). The device <NUM> then receives a user command to adjust the visual indication (<NUM>). For example, the device <NUM> may receive from display <NUM> a user command provided by the user through interacting with the display <NUM>. The device <NUM> receives a user command to adjust the size of the visual indication (<NUM>). Additionally, the device <NUM> may receive a user command to move the location of the visual indication for the preview (<NUM>).

With the device <NUM> to adjust the portion of the scene being recorded, the device <NUM> may adjust the visual indication so that the visual indication corresponds to the adjusted portion of the scene being recorded (<NUM>). In response to the user command, the device <NUM> may determine if at least a portion of the scene for recording is outside the field of view in the second image stream (<NUM>). For example, the device <NUM> determines if the scene portion <NUM> (<FIG>) captured by the second camera <NUM> does not include all of the scene <NUM> for recording. If the second image stream includes all of the scene <NUM> for recording, the device <NUM> continues to output for recording the processed second image stream (<NUM>). For example, the camera controller <NUM> adjusts the portion of the second image stream that is for recording and continues to generate and output the processed second image stream for recording.

If the second image stream does not include all of the scene for recording (such as second camera <NUM> not capturing all of the scene portion <NUM> in <FIG>), the device <NUM> may switch from outputting for recording the processed second image stream to outputting for recording the processed first image stream (<NUM>). For example, the camera controller <NUM> may switch from outputting a portion of the processed second image stream to outputting a portion of the processed first image stream corresponding to the scene portion <NUM> in <FIG>. In some alternative implementations, the camera controller <NUM> may concurrently output both the processed first image stream and the processed second image stream. In this manner, the device <NUM> may determine to switch from using the processed second image stream for recording to using the processed first image stream for recording the portion of the scene.

In addition or alternative to a user requesting a change to the size or to the size and location of the visual indication (such as by user gestures on the display <NUM> or other user inputs), the device <NUM> may automatically switch from using the processed second image stream to using the processed first image stream for recording in response to one or more criteria of the scene, device <NUM>, and/or other components. In some example implementations, a change in brightness may cause the device <NUM> to switch image streams for recording. For example, a dual camera may include a color camera and a black and white camera, wherein the black and white camera has better fidelity in low light situations than the color camera. In this manner, the device <NUM> may determine to switch from using the color camera's image stream to using the black and white camera's image stream for recording if the brightness of the scene falls below a threshold.

In some other example implementations, one or more of the cameras (such as first camera <NUM> and second camera <NUM>) may be moved such that the object being tracked may fall outside the portion of the scene being captured by one of the cameras. For example, if the first camera <NUM> includes a wide view and the second camera <NUM> is a telephoto camera, a global motion in the first image stream and/or the second image stream may cause the object to go out of or about to go out of the field of view of the second camera <NUM>. As a result, the device <NUM> may switch image streams from the second camera <NUM> to the first camera <NUM> for recording in order to keep tracking the object. Similarly, the object being tracked may move (a local motion) so that the second image stream might not include the object. The device <NUM> may switch from using the second image stream (which may be captured by a telephoto camera) to using the first image stream (which may be captured by a wider field of view camera).

<FIG> is an illustrative flow chart depicting an example operation <NUM> for switching from a processed second image stream to a processed first image stream for recording based on one or more criteria. Beginning at <NUM>, the device <NUM> may output for recording the processed second image stream. The device <NUM> may then determine a change in one or more characteristics of the scene (<NUM>). In one example, the device <NUM> may optionally determine a change in brightness or luminance in at least one of the image streams (<NUM>). For example, the ambient light intensity may be determined to fall below a threshold for the current processed image stream being used for recording. In another example, the device <NUM> may optionally determine a global motion in at least one of the image streams (<NUM>). For example, the second camera <NUM> may be moved so that the first camera <NUM> is to be used to capture the portion of the scene for recording. In a further example, the device <NUM> may optionally determine a local motion of an object (<NUM>). For example, the object being tracked by device <NUM> may move out of the field of view of the second camera <NUM> so that the processed first image stream is to be used for recording.

Based on changes to one or more characteristics of the scene, the device <NUM> switches from outputting for recording the processed second image stream to outputting for recording the processed first image stream (<NUM>). In one example, the camera controller <NUM> may switch from outputting the processed second image stream for recording to outputting the processed first image stream for recording, where a portion of the processed first and/or second image streams may be stored for later use. In another example, the camera controller <NUM> may output both processed image streams, and the device <NUM> may determine to switch from using the outputted processed second image stream to using the outputted processed first image stream for recording.

In another example implementation of the device <NUM> automatically switching between processed image streams for recording, an alien object may encroach on the portion of the scene being or to be recorded. For example, in recording a child's soccer game, a person sitting in front of the father may suddenly enter the portion of the scene being or to be recorded (such as standing up, moving his or her head, and so on) so that the device <NUM> is not recording (or outputting for recording) the intended portion of the scene. If the object blocks or obstructs a small portion of the scene being recorded, the recording using the same image stream may continue with limited interruptions. However, if the object blocks or obstructs a large portion of the scene, the device <NUM> may determine to attempt using a different image stream for recording. In some example implementations, the device <NUM> may switch to another processed image stream to attempt to capture the intended portion of the scene (such as if another camera has a different vantage of the portion of the scene not obstructed by the alien object or another camera has a wider field of view so as to "zoom out" to capture the scene). For example, the device <NUM> may determine that a percentage of the portion of the scene is obstructed, may determine that an alien object is within a distance from the center of the scene being recorded, and so on.

<FIG> is an illustrative flow chart depicting an example operation <NUM> for switching from a processed second image stream to a processed first image stream for recording based on an object obstructing a portion of the scene being or to be recorded. Beginning at <NUM>, the device <NUM> may output for recording the processed second image stream. In one example, the camera controller <NUM> may output the processed second image stream for recording. In another example, the camera controller <NUM> may output multiple processed image streams, and the device <NUM> may use the processed second image stream for recording the portion of the scene.

With the processed second image stream being used for recording the portion of the scene, the device <NUM> may determine that an object moves to obstruct a portion of the scene being or to be recorded (<NUM>). The device <NUM> may then determine whether to switch from the processed second image stream to the processed first image stream based on the object (<NUM>). In one example, the device <NUM> may determine if the object obstructs more than a percentage of the portion of the scene being or to be recorded. In another example, the device <NUM> may determine if the object is within a defined distance from obstructing the center of the portion of the scene being or to be recorded. In a further example, the device <NUM> may predict from the object's movement if the object is to obstruct a percentage of the portion of the scene for recording or a center of the portion of the scene for recording. If the device <NUM> determines to not switch processed image streams for recording the portion of the scene, the device <NUM> continues to output the processed second image stream for recording the portion of the scene (<NUM>). If the device <NUM> determines to switch processed image streams for recording the portion of the scene, the device <NUM> switches to outputting the processed first image stream for recording the portion of the scene (<NUM>).

Alternatively, if the camera controller <NUM> outputs both the processed first image stream and the processed second image stream, the device <NUM> may switch from using the processed second image stream to using the processed first image stream for recording the portion of the scene. In some example implementations, the device <NUM> may continue to track the obstructing object. If the obstructing object vacates the portion of the scene being or to be recorded, the device <NUM> may determine to switch processed image streams for recording. Alternatively, the device <NUM> may continue to use the current processed image stream for recording until another criterion causes the device to determine to switch using processed image streams for recording.

The techniques described herein may be implemented in hardware, software, firmware, or any combination thereof, unless specifically described as being implemented in a specific manner. Any features described as modules or components may also be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, the techniques may be realized at least in part by a non-transitory processor-readable storage medium (such as the memory <NUM> in the example device <NUM> of <FIG>) comprising instructions <NUM> that, when executed by the processor <NUM> (or the image signal processor <NUM>), cause device <NUM> to perform one or more of the methods described above. The non-transitory processor-readable data storage medium may form part of a computer program product, which may include packaging materials.

The non-transitory processor-readable storage medium may comprise random access memory (RAM) such as synchronous dynamic random access memory (SDRAM), read only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read-only memory (EEPROM), FLASH memory, other known storage media, and the like. The techniques additionally, or alternatively, may be realized at least in part by a processor-readable communication medium that carries or communicates code in the form of instructions or data structures and that can be accessed, read, and/or executed by a computer or other processor.

The various illustrative logical blocks, modules, circuits and instructions described in connection with the embodiments disclosed herein may be executed by one or more processors, such as the processor <NUM> or the image signal processor <NUM> in the example device <NUM> of <FIG> and <FIG>. Such processor(s) may include but are not limited to one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), application specific instruction set processors (ASIPs), field programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. The term "processor," as used herein may refer to any of the foregoing structures or any other structure suitable for implementation of the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within dedicated software modules or hardware modules configured as described herein.

Claim 1:
A device (<NUM>), comprising:
memory (<NUM>) configured to store image data; and
a processor in communication with the memory (<NUM>), the processor being configured to:
process a first image stream associated with a scene;
independently process a second image stream associated with a first spatial portion of the scene, wherein the second image stream is different from the first image stream;
output, for display, the processed first image stream;
output, during output of the processed first image stream, a first visual indication (<NUM>) that indicates the first spatial portion associated with the second image stream, the first visual indication (<NUM>) being associated with a first zoom level;
receive a request, corresponding to a user command, to resize the first visual indication (<NUM>) being displayed;
resize the first visual indication (<NUM>) being displayed based on the received request;
generate a control signal to resize the first spatial portion (<NUM>) of the scene in the second image stream based on the received request; and
process a resized second image stream for a second spatial portion of the scene in response to the control signal, and
a touch-sensitive display (<NUM>) configured to:
display the processed first image stream including the first visual indication (<NUM>);
receive the user command to resize the first visual indication (<NUM>) being displayed while displaying the processed first image stream to a second visual indication (<NUM>) indicating the second spatial portion associated with the second image stream, the second visual indication (<NUM>) being associated with a second zoom level and the second spatial portion being different from the first spatial portion; and
in response to receipt of the user command, display the processed first image stream including the second visual indication (<NUM>), wherein the processor is further configured to:
output the processed second image stream for concurrent display of the processed second image stream and the processed first image stream including the second visual indication.