User Interface for Simulated Depth Effects
Efficient touch-based interfaces on electronic devices allow users to quickly adjust depth effects, addressing the inefficiencies of existing methods and conserving power in battery-operated devices.
Patent Information
- Application Number
- JP2024033171
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-09-27
- Filing Date
- 2024-03-05
- Publication Date
- 2025-08-26
- Estimated Expiration
- 2039-08-30
AI Technical Summary
Users face challenges in capturing and adjusting depth of field characteristics in images or photographs without large cameras, and existing techniques for simulating depth effects are cumbersome and inefficient, particularly in battery-operated devices.
Electronic devices are equipped with fast and efficient methods and interfaces for simulating depth effects, allowing users to make precise adjustments using intuitive touch-based sliders and sensors, reducing cognitive burden and conserving power.
These methods enhance user efficiency and convenience by enabling quick and easy depth effect adjustments, reducing processor and battery power consumption.
Smart Images

Figure 0007729939000001 
Figure 0007729939000002 
Figure 0007729939000003
Abstract
Description
Cross-reference to related applications
[0001] This application claims priority to U.S. Provisional Patent Application No. 62 / 729,926, entitled "USER INTERFACES FOR SIMULATED DEPTH EFFECTS," filed September 11, 2018, and U.S. Patent Application No. 16 / 144,629, entitled "USER INTERFACES FOR SIMULATED DEPTH EFFECTS," filed September 27, 2018, and to Danish Application No. PA201870623, entitled "USER INTERFACES FOR SIMULATED DEPTH EFFECTS," filed September 24, 2018, the contents of each of which are incorporated herein by reference in their entirety for all purposes. [Technical Field]
[0002] The present disclosure relates generally to computer user interfaces, and more particularly to techniques for managing user interfaces for simulated depth effects. [Background technology]
[0003] Currently, users cannot capture images or photographs with accurate depth of field characteristics without using large cameras, and furthermore, users cannot quickly and easily make accurate adjustments to the depth of field characteristics of stored images or photographs. Summary of the Invention
[0004] However, some techniques for simulating depth effects using electronic devices are generally cumbersome and inefficient. For example, some existing techniques use complex and time-consuming user interfaces that may involve multiple key presses or strokes. Existing techniques take longer than necessary, wasting the user's time and the device's energy. The latter problem is particularly acute in battery-operated devices.
[0005] Thus, the present technique provides electronic devices with fast and efficient methods and interfaces for simulated depth effects. Such methods and interfaces optionally complement or replace other methods for simulated depth effects. Such methods and interfaces reduce the cognitive burden on users and create a more efficient human-machine interface. For battery-operated computing devices, such methods and interfaces conserve power and extend the time between battery charges. Such methods and interfaces also enable easy application and editing of applied depth effects using only the electronic device without the assistance of another device, thereby increasing user efficiency and convenience.
[0006] According to some embodiments, a method is described that is executed on an electronic device having a display and one or more input devices. The method includes: displaying a representation of image data on the display; detecting a first input via the one or more input devices while displaying the representation of the image data having a simulated depth effect modified by a first value of a plurality of selectable values for the simulated depth effect; in response to detecting the first input, displaying an adjustable slider on the display associated with manipulating the representation of the image data, the adjustable slider having a plurality of option indicators corresponding to the plurality of selectable values for the simulated depth effect and a selection indicator indicating that the first value is a currently selected simulated depth effect value; detecting input to the adjustable slider via the one or more input devices while displaying the adjustable slider; in response to detecting the input to the adjustable slider, moving the adjustable slider to indicate that a second value of the plurality of selectable values for the simulated depth effect is the currently selected simulated depth effect value; and modifying an appearance of the representation of the image data in accordance with the simulated depth effect modified by the second value.
[0007] According to some embodiments, a non-transitory computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of an electronic device having a display and one or more input devices, the one or more programs displaying a representation of image data on the display, detecting a first input via the one or more input devices while displaying the representation of the image data having a simulated depth effect modified by a first value of a plurality of selectable values for the simulated depth effect, and displaying an adjustable slider on the display associated with manipulating the representation of the image data in response to detecting the first input, the adjustable slider being configured to adjust the simulated depth effect. the display includes a plurality of option indicators corresponding to a plurality of selectable values for the simulated depth effect and a selection indicator indicating that a first value is a currently selected simulated depth effect value, and includes instructions for detecting input to the adjustable slider via one or more input devices while displaying the adjustable slider, and in response to detecting the input to the adjustable slider, moving the adjustable slider to indicate that a second value of the plurality of selectable values for the simulated depth effect is the currently selected simulated depth effect value, and altering an appearance of the representation of the image data in accordance with the simulated depth effect modified by the second value.
[0008] According to some embodiments, a transient computer-readable storage medium is described, the transient computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device having a display and one or more input devices, the one or more programs displaying a representation of image data on the display, detecting a first input via the one or more input devices while displaying the representation of the image data having a simulated depth effect modified by a first value of a plurality of selectable values for the simulated depth effect, and displaying an adjustable slider on the display associated with manipulating the representation of the image data in response to detecting the first input, the adjustable slider being configured to adjust the simulated depth effect. the display includes a plurality of option indicators corresponding to a plurality of selectable values for the simulated depth effect and a selection indicator indicating that a first value is a currently selected simulated depth effect value, and the display includes instructions for detecting, while displaying the adjustable slider, input to the adjustable slider via one or more input devices, and in response to detecting the input to the adjustable slider, moving the adjustable slider to indicate that a second value of the plurality of selectable values for the simulated depth effect is the currently selected simulated depth effect value, and altering an appearance of the representation of the image data in accordance with the simulated depth effect modified by the second value.
[0009] According to some embodiments, an electronic device is described that includes a display, one or more input devices, one or more processors, and a memory storing one or more programs configured to be executed by the one or more processors to: display a representation of image data on the display; detect a first input via the one or more input devices while displaying the representation of the image data having a simulated depth effect modified by a first value of a plurality of selectable values for the simulated depth effect; and, in response to detecting the first input, display an adjustable slider on the display associated with manipulating the representation of the image data; and adjust the adjustable slider. The slider includes a plurality of option indicators corresponding to a plurality of selectable values for the simulated depth effect and a selection indicator indicating that a first value is a currently selected simulated depth effect value, and includes instructions for detecting input to the adjustable slider via one or more input devices while displaying the adjustable slider, and in response to detecting the input to the adjustable slider, moving the adjustable slider so that a second value of the plurality of selectable values for the simulated depth effect indicates the currently selected simulated depth effect value, and changing an appearance of the representation of the image data in accordance with the simulated depth effect modified by the second value.
[0010] According to some embodiments, an electronic device is described. The electronic device includes a display, one or more input devices, and means for displaying a representation of image data on the display; means for detecting a first input via the one or more input devices while displaying the representation of the image data having a simulated depth effect modified by a first value of a plurality of selectable values for the simulated depth effect; and means for, in response to detecting the first input, displaying an adjustable slider on the display associated with manipulating the representation of the image data, the adjustable slider including a plurality of option indicators corresponding to the plurality of selectable values for the simulated depth effect and a selection indicator indicating that the first value is a currently selected simulated depth effect value; means for detecting input to the adjustable slider via the one or more input devices while displaying the adjustable slider; and means for, in response to detecting the input to the adjustable slider, moving the adjustable slider to indicate that a second value of the plurality of selectable values for the simulated depth effect is a currently selected simulated depth effect value and changing an appearance of the representation of the image data in accordance with the simulated depth effect modified by the second value.
[0011] According to some embodiments, a method is described that is executed on an electronic device having a display and one or more input devices. The method includes receiving, via the one or more input devices, a request to apply a simulated depth effect to a representation of image data, wherein depth data for objects in the representation of the image data is available, and, in response to receiving the request to apply the simulated depth effect to the representation of the image data, displaying on the display the representation of the image data with the simulated depth effect, the request including distorting a first portion of the representation of the image data having the first depth in a first manner, the first manner determined based on a distance of the first portion from a predetermined portion of the representation of the image data, and distorting a second portion of the representation of the image data having the first depth in a second manner different from the first manner, the second manner determined based on a distance of the second portion from the predetermined portion of the representation of the image data.
[0012] According to some embodiments, a non-transitory computer-readable storage medium is described, the non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device having a display and one or more input devices, the one or more programs including instructions for receiving, via the one or more input devices, a request to apply a simulated depth effect to a representation of image data, where depth data for objects in the representation of the image data is available, and in response to receiving the request to apply the simulated depth effect to the representation of the image data, displaying on the display the representation of the image data with the simulated depth effect, distorting a first portion of the representation of the image data having the first depth in a first manner, the first manner determined based on a distance of the first portion from a predetermined portion of the representation of the image data, and distorting a second portion of the representation of the image data having the first depth in a second manner different from the first manner, the second manner determined based on a distance of the second portion from the predetermined portion of the representation of the image data.
[0013] According to some embodiments, a temporary computer-readable storage medium is described, the temporary computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device having a display and one or more input devices, the one or more programs including instructions for receiving, via the one or more input devices, a request to apply a simulated depth effect to a representation of image data, where depth data for objects in the representation of the image data is available, and in response to receiving the request to apply the simulated depth effect to the representation of the image data, displaying on the display the representation of the image data with the simulated depth effect, distorting a first portion of the representation of the image data having the first depth in a first manner, the first manner determined based on a distance of the first portion from a predetermined portion of the representation of the image data, and distorting a second portion of the representation of the image data having the first depth in a second manner different from the first manner, the second manner determined based on a distance of the second portion from the predetermined portion of the representation of the image data.
[0014] According to some embodiments, an electronic device is described that includes a display, one or more input devices, one or more processors, and a memory that stores one or more programs configured to be executed by the one or more processors, the one or more programs including instructions that receive, via the one or more input devices, a request to apply a simulated depth effect to a representation of image data, where depth data for objects in the representation of the image data is available, and in response to receiving the request to apply the simulated depth effect to the representation of the image data, display the representation of the image data with the simulated depth effect on the display, distorting a first portion of the representation of the image data having the first depth in a first manner, the first manner determined based on a distance of the first portion from a predetermined portion of the representation of the image data, and distorting a second portion of the representation of the image data having the first depth in a second manner different from the first manner, the second manner determined based on a distance of the second portion from the predetermined portion of the representation of the image data.
[0015] According to some embodiments, an electronic device is described that includes a display, one or more input devices, and means for applying a simulated depth effect to a representation of image data via the one or more input devices, where depth data for objects in the representation of the image data is available and in response to receiving a request to apply the simulated depth effect to the representation of the image data, for displaying the representation of the image data with the simulated depth effect on the display, the means including: distorting a first portion of the representation of the image data having the first depth in a first manner, the first manner determined based on a distance of the first portion from a predetermined portion of the representation of the image data, and distorting a second portion of the representation of the image data having the first depth in a second manner different from the first manner, the second manner determined based on a distance of the second portion from the predetermined portion of the representation of the image data.
[0016] According to some embodiments, a method is described that is executed on an electronic device having a display and one or more sensors including one or more cameras. The method includes detecting, via the one or more sensors, external interference impairing operation of respective functions of the one or more cameras while displaying a user interface of a camera application on the display, and, in response to detecting the external interference to the electronic device, displaying, in accordance with a determination that a first criterion is met, a notification on the display indicating that an operational mode of the one or more cameras has been changed to reduce an effect of the external interference on the respective functions of the one or more cameras, and, in accordance with a determination that the first criterion is not met, refraining from displaying the notification on the display indicating that the operational mode of the one or more cameras has been changed.
[0017] According to some embodiments, a non-transitory computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of an electronic device including one or more cameras, a display, and one or more sensors, the one or more programs including instructions for detecting, via the one or more sensors, external interference impairing operation of respective functions of the one or more cameras while displaying a user interface of a camera application on the display, instructions for, in response to detecting the external interference to the electronic device, displaying, on the display, a notification indicating that an operational mode of the one or more cameras has been changed to reduce an effect of the external interference on the respective functions of the one or more cameras in accordance with a determination that a first criterion is met, and instructions for refraining from displaying, on the display, the notification indicating that the operational mode of the one or more cameras has been changed in accordance with a determination that the first criterion is not met.
[0018] According to some embodiments, a temporary computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of an electronic device including one or more cameras, a display, and one or more sensors, the one or more programs including instructions for detecting, via the one or more sensors, external interference impairing operation of respective functions of the one or more cameras while displaying a user interface of a camera application on the display, instructions for, in response to detecting the external interference to the electronic device, displaying, on the display, a notification indicating that an operational mode of the one or more cameras has been changed to reduce an effect of the external interference on the respective functions of the one or more cameras in accordance with a determination that a first criterion is met, and instructions for refraining from displaying, on the display, the notification indicating that the operational mode of the one or more cameras has been changed in accordance with a determination that the first criterion is not met.
[0019] According to some embodiments, an electronic device is described comprising: a display; one or more sensors including one or more cameras; one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions to detect, via the one or more sensors, external interference impairing operation of respective functions of the one or more cameras while displaying a user interface of a camera application on the display; and, in response to detecting the external interference to the electronic device, display, on the display, a notification indicating that an operational mode of the one or more cameras has been changed to reduce an effect of the external interference on the respective functions of the one or more cameras, in accordance with a determination that a first criterion is met; and, in accordance with a determination that the first criterion is not met, refrain from displaying the notification indicating that the operational mode of the one or more cameras has been changed.
[0020] According to some embodiments, an electronic device is described that includes a display, one or more sensors including one or more cameras, means for detecting external interference impairing operation of respective functions of the one or more cameras via the one or more sensors while displaying a user interface of a camera application on the display, means for, in response to detecting the external interference to the electronic device, displaying a notification on the display indicating that an operational mode of the one or more cameras has been changed to reduce an effect of the external interference on the respective functions of the one or more cameras in accordance with a determination that a first criterion is met, and means for refraining from displaying the notification indicating that the operational mode of the one or more cameras has been changed in accordance with a determination that the first criterion is not met.
[0021] Executable instructions to perform these functions are optionally contained on a non-transitory computer-readable storage medium or other computer program product configured for execution by one or more processors. Executable instructions to perform these functions are optionally contained in a transitory computer-readable storage medium or other computer program product configured for execution by one or more processors.
[0022] This provides devices with faster, more efficient methods and interfaces for adjusting image effects, thereby increasing the effectiveness, efficiency, and user satisfaction of such devices. Such methods and interfaces can complement or replace other methods for adjusting image effects. [Brief explanation of the drawings]
[0023] For a better understanding of the various embodiments described, please refer to the following description of the embodiments in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout the drawings, in which:
[0024] [Figure 1A]1 is a block diagram illustrating a portable multifunction device having a touch-sensitive display in accordance with some embodiments.
[0025] [Figure 1B] FIG. 2 is a block diagram illustrating exemplary components for event processing according to some embodiments.
[0026] [Figure 2] 1 illustrates a portable multifunction device with a touch screen according to some embodiments.
[0027] [Figure 3] FIG. 1 is a block diagram of an exemplary multifunction device having a display and a touch-sensitive surface in accordance with some embodiments.
[0028] [Figure 4A] 1 illustrates an exemplary user interface for a menu of applications on a portable multifunction device in accordance with some embodiments.
[0029] [Figure 4B] 1 illustrates an exemplary user interface for a multifunction device having a touch-sensitive surface that is separate from the display in accordance with some embodiments.
[0030] [Figure 5A] 1 illustrates a personal electronic device according to some embodiments.
[0031] [Figure 5B] FIG. 1 is a block diagram illustrating a personal electronic device according to some embodiments.
[0032] [Figure 6A] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6B]1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6C] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6D] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6E] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6F] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6G] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6H] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6I] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6J] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6K] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6L] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6M] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6N] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6O] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6P] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6Q] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6R] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6S] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments. [Figure 6T] 1 illustrates an exemplary user interface for adjusting simulated depth effects according to some embodiments.
[0033] [Figure 7A] FIG. 1 is a flow diagram illustrating a method for managing a user interface for adjusting simulated depth effects, according to some embodiments. [Figure 7B] FIG. 1 is a flow diagram illustrating a method for managing a user interface for adjusting simulated depth effects, according to some embodiments.
[0034] [Figure 8A] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8B] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8C] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8D]10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8E] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8F] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8G] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8H] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8I] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8J] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8K] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8L] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8M] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8N] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8O] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8P]10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8Q] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 8R] 10 illustrates an exemplary user interface for displaying adjustments to a simulated depth effect, according to some embodiments.
[0035] [Figure 9A] FIG. 10 is a flow diagram illustrating a method for managing a user interface for displaying adjustments to a simulated depth effect, according to some embodiments. [Figure 9B] FIG. 10 is a flow diagram illustrating a method for managing a user interface for displaying adjustments to a simulated depth effect, according to some embodiments.
[0036] [Figure 10A] 10 illustrates an exemplary user interface for showing interference adjusting simulated image effects according to some embodiments. [Figure 10B] 10 illustrates an exemplary user interface for showing interference adjusting simulated image effects according to some embodiments. [Figure 10C] 10 illustrates an exemplary user interface for showing interference adjusting simulated image effects according to some embodiments. [Figure 10D] 10 illustrates an exemplary user interface for showing interference adjusting simulated image effects according to some embodiments. [Figure 10E] 10 illustrates an exemplary user interface for showing interference adjusting simulated image effects according to some embodiments. [Figure 10F] 10 illustrates an exemplary user interface for showing interference adjusting simulated image effects according to some embodiments.
[0037] [Figure 11] FIG. 10 is a flow diagram illustrating a method for managing a user interface for showing interference adjusting simulated image effects, according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0038] The following description sets forth example methods, parameters, etc. However, it should be recognized that such description is not intended as a limitation on the scope of the present disclosure, but rather is provided as a description of example embodiments.
[0039] There is a need for electronic devices that provide efficient methods and interfaces for simulating depth effects. For example, there is a need for devices that can capture live-feed images / photos or display stored images / photos and allow a user to quickly and easily make precise adjustments to the depth-of-field characteristics of the images / photos. Such techniques can reduce the cognitive burden on a user accessing display content associated with adjusting image effects, thereby increasing productivity. Furthermore, such techniques can reduce processor and battery power that would otherwise be wasted on redundant user input.
[0040] 1A-1B, 2, 3, 4A-4B, and 5A-5B provide a description of an example device for performing techniques for managing event notifications. FIGS. 6A-6T illustrate an example user interface for adjusting a simulated depth effect, according to some embodiments. FIGS. 7A-7B are a flow diagram illustrating a method for managing a user interface for adjusting a simulated depth effect, according to some embodiments. The user interfaces of FIGS. 6A-6T are used to explain processes described below, including the processes of FIGS. 7-7B. FIGS. 8A-8R illustrate an example user interface for displaying adjustments to a simulated depth effect, according to some embodiments. FIGS. 9A-9B are a flow diagram illustrating a method for managing a user interface for displaying adjustments to a simulated depth effect, according to some embodiments. The user interfaces of FIGS. 8A-8R are used to explain processes described below, including the processes of FIGS. 9A-9B. FIGS. 10A-10F illustrate an example user interface for showing interactions adjusting a simulated image effect, according to some embodiments. 11 is a flow diagram illustrating a method for managing a user interface for showing interference adjusting simulated image effects, according to some embodiments. The user interfaces of FIGS. 10A-10F are used to explain processes described below, including the process of FIG. 11.
[0041] In the following description, terms such as "first" and "second" are used to describe various elements, but these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, a first touch can be referred to as a second touch, and similarly, a second touch can be referred to as a first touch, without departing from the scope of the various embodiments described. Although a first touch and a second touch are both touches, they are not the same touch.
[0042] The terminology used in the description of the various described embodiments herein is for the purpose of describing particular embodiments only and is not intended to be limiting. In the description of the various described embodiments and in the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. Also, as used herein, the term "and / or" should be understood to refer to and include any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms "includes," "including," "comprises," and / or "comprising," when used herein, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0043] The term "if" is interpreted, optionally, depending on the context, to mean "when" or "upon," or "in response to determining" or "in response to detecting." Similarly, the phrases "if it is determined" or "if [a stated condition or event] is detected" are interpreted, optionally, depending on the context, to mean "upon determining" or "in response to determining," or "upon detecting [the stated condition or event]" or "in response to detecting [the stated condition or event]."
[0044] Embodiments of electronic devices, user interfaces for such devices, and associated processes for using such devices are described. In some embodiments, the device is a portable communication device, such as a mobile phone, that also includes other functions, such as PDA and / or music player functions. Exemplary embodiments of portable multifunction devices include, but are not limited to, the iPhone®, iPod Touch®, and iPad® devices from Apple Inc. of Cupertino, California. Optionally, other portable electronic devices, such as laptops or tablet computers having a touch-sensitive surface (e.g., a touchscreen display and / or touchpad), are also used. It should also be understood that in some embodiments, the device is not a portable communication device, but rather a desktop computer having a touch-sensitive surface (e.g., a touchscreen display and / or touchpad).
[0045] The following discussion describes an electronic device that includes a display and a touch-sensitive surface. However, it should be understood that the electronic device optionally includes one or more other physical user-interface devices, such as a physical keyboard, a mouse, and / or a joystick.
[0046] The device typically supports a variety of applications such as one or more of a drawing application, a presentation application, a word processing application, a website creation application, a disc authoring application, a spreadsheet application, a gaming application, a telephone application, a video conferencing application, an email application, an instant messaging application, a training support application, a photo management application, a digital camera application, a digital video camera application, a web browsing application, a digital music player application, and / or a digital video playback application.
[0047] Various applications running on the device optionally use at least one common physical user-interface device, such as a touch-sensitive surface. One or more features of the touch-sensitive surface and corresponding information displayed on the device are optionally adjusted and / or changed for each application and / or within each application. In this way, the common physical architecture of the device (such as the touch-sensitive surface) optionally supports various applications with user interfaces that are intuitive and transparent to the user.
[0048] Attention now turns to embodiments of portable devices with touch-sensitive displays. FIG. 1A is a block diagram illustrating portable multifunction device 100 having touch-sensitive display system 112, according to some embodiments. Touch-sensitive display 112 may conveniently be referred to as a "touch screen" and may also be known or referred to as a "touch-sensitive display system." Device 100 includes memory 102 (optionally including one or more computer-readable storage media), memory controller 122, one or more processing units (CPUs) 120, peripherals interface 118, RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, input / output (I / O) subsystem 106, other input control devices 116, and external port 124. Device 100 optionally includes one or more optical sensors 164. Device 100 optionally includes one or more contact intensity sensors 165 that detect the intensity of a contact on device 100 (e.g., a touch-sensitive surface, such as touch-sensitive display system 112 of device 100). Device 100 optionally includes one or more tactile output generators 167 that generate tactile output on device 100 (e.g., generate tactile output on a touch-sensitive surface such as touch-sensitive display system 112 of device 100 or touchpad 355 of device 300). These components optionally communicate via one or more communication buses or signal lines 103.
[0049] As used herein and in the claims, the term “intensity” of a contact on a touch-sensitive surface refers to the force or pressure (force per unit area) of a contact (e.g., a finger contact) on the touch-sensitive surface, or a proxy for the force or pressure of a contact on the touch-sensitive surface. The intensity of a contact has a range of values that includes at least four distinct values and more typically includes hundreds (e.g., at least 256) distinct values. The intensity of a contact is optionally determined (or measured) using various techniques and various sensors or combinations of sensors. For example, one or more force sensors under or adjacent to the touch-sensitive surface are optionally used to measure force at various points on the touch-sensitive surface. In some implementations, force measurements from multiple force sensors are combined (e.g., weighted averaged) to determine an estimated force of the contact. Similarly, a pressure-sensitive tip of a stylus is optionally used to determine the pressure of the stylus on the touch-sensitive surface. Alternatively, the size and / or change in the contact area detected on the touch-sensitive surface, the capacitance and / or change in the capacitance of the touch-sensitive surface proximate the contact, and / or the resistance and / or change in the capacitance of the touch-sensitive surface proximate the contact are optionally used as a surrogate for the force or pressure of the contact on the touch-sensitive surface. In some implementations, the surrogate measure of the force or pressure of the contact is used directly to determine whether an intensity threshold is exceeded (e.g., the intensity threshold is described in units corresponding to the surrogate measure). In some implementations, the surrogate measure of the contact force or pressure is converted to an estimate of the force or pressure, and the estimate of the force or pressure is used to determine whether an intensity threshold is exceeded (e.g., the intensity threshold is a pressure threshold measured in units of pressure). Using contact intensity as an attribute of user input allows users to access additional device functionality that may not otherwise be accessible to them on devices of reduced size with limited footprint, to display affordances (e.g., on a touch-sensitive display) and / or to receive user input (e.g., via a touch-sensitive display, touch-sensitive surface, or physical / mechanical control such as a knob or button).
[0050] As used herein and in the claims, the term “haptic output” refers to the physical displacement of a device relative to its previous position, the physical displacement of a component of the device (e.g., the touch-sensitive surface) relative to another component of the device (e.g., the housing), or the displacement of a component relative to the center of mass of the device that is detected by a user through the user's touch. For example, in a situation where a device or a component of the device is in contact with a touch-sensitive surface of a user (e.g., the fingers, palm, or other part of the user's hand), the tactile output produced by the physical displacement will be interpreted by the user as a tactile sensation corresponding to a perceived change in a physical property of the device or component of the device. For example, movement of the touch-sensitive surface (e.g., a touch-sensitive display or trackpad) is optionally interpreted by the user as a “downclick” or “upclick” of a physical actuator button. In some cases, the user feels a tactile sensation such as a “downclick” or “upclick” even when there is no movement of a physical actuator button associated with the touch-sensitive surface that is physically pressed (e.g., displaced) by the user's action. As another example, movement of a touch-sensitive surface is optionally interpreted or perceived by a user as "roughness" of the touch-sensitive surface, even when there is no change in the smoothness of the touch-sensitive surface. While such user interpretation of touch depends on the user's personal sensory perception, there are many sensory perceptions of touch that are common to the majority of users. Thus, when a tactile output is described as corresponding to a particular sensory perception of a user (e.g., "upclick," "downclick," "roughness"), unless otherwise specified, the generated tactile output corresponds to a physical displacement of the device, or a component of the device, that produces the described sensory perception for a typical (or average) user.
[0051] It should be understood that device 100 is only one example of a portable multifunction device, and that device 100 optionally has more or fewer components than shown, optionally combines two or more components, or optionally has components in different configurations or arrangements. The various components shown in Figure 1A may be implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing circuits and / or application specific integrated circuits.
[0052] Memory 102 optionally includes high-speed random-access memory, and optionally also includes non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory controller 122 optionally controls access to memory 102 by other components of device 100.
[0053] Peripheral interface 118 may be used to couple input and output peripherals of the device to CPU 120 and memory 102. One or more processors 120 operate or execute various software programs and / or instruction sets stored in memory 102 to perform various functions and process data for device 100. In some embodiments, peripheral interface 118, CPU 120, and memory controller 122 are optionally implemented on a single chip, such as chip 104. In some other embodiments, they are optionally implemented on separate chips.
[0054] RF (radio frequency) circuitry 108 transmits and receives RF signals, also called electromagnetic signals. RF circuitry 108 converts electrical signals to electromagnetic signals or electromagnetic signals to electrical signals and communicates with communication networks and other communication devices via electromagnetic signals. RF circuitry 108 optionally includes well-known circuitry for performing these functions, including, but not limited to, an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a subscriber identity module (SIM) card, memory, etc. RF circuitry 108 optionally communicates via wireless communication with networks, such as the Internet, also known as the World Wide Web (WWW), an intranet, and / or wireless networks, such as cellular telephone networks, wireless local area networks (LANs) and / or metropolitan area networks (MANs), and with other devices. RF circuitry 108 optionally includes well-known circuitry for detecting near field communication (NFC) fields, such as by short-range radios. Wireless communication optionally includes, but is not limited to, Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high-speed uplink packet access (HSUPA), Evolution, Data-Only (EV-DO), HSPA, HSPA+, Dual-Cell HSPA (DC-HSPA), Long Term Evolution (LTE), and other standards.evolution (LTE), near field communications (NFC), wideband code division multiple access (W-CDMA), code division multiple access (CDMA), time division multiple access (TDMA), Bluetooth, Bluetooth Low Energy (BTLE), Wireless Fidelity (Wi-Fi) (e.g., IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, and / or IEEE 802.11ac), voice over Internet Protocol (VoIP), Wi-MAX, protocols for email (e.g., Internet message access protocol (IMAP) and / or post office protocol (POP)), instant messaging (e.g., extensible messaging and presence protocol), The present invention may use any of a number of communication standards, protocols, and technologies, including the Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions (XMPP), the Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions (SIMPLE), the Instant Messaging and Presence Service (IMPS), and / or the Short Message Service (SMS), or any other suitable communication protocol, including communication protocols not yet developed as of the filing date of this application.
[0055] Audio circuit 110, speaker 111, and microphone 113 provide an audio interface between a user and device 100. Audio circuit 110 receives audio data from peripherals interface 118, converts the audio data into electrical signals, and transmits the electrical signals to speaker 111. Speaker 111 converts the electrical signals into sound waves audible to humans. Audio circuit 110 also receives electrical signals converted from sound waves by microphone 113. Audio circuit 110 converts the electrical signals into audio data and transmits the audio data to peripherals interface 118 for processing. The audio data is optionally retrieved from and / or transmitted to memory 102 and / or RF circuit 108 by peripherals interface 118. In some embodiments, audio circuit 110 also includes a headset jack (e.g., 212 in FIG. 2 ). The headset jack provides an interface between audio circuitry 110 and a detachable audio input / output peripheral, such as an output-only headphone or a headset with both an output (e.g., mono or binaural headphones) and an input (e.g., a microphone).
[0056] I / O subsystem 106 couples input / output peripherals on device 100, such as touchscreen 112 and other input control devices 116, to peripheral interface 118. I / O subsystem 106 optionally includes display controller 156, light sensor controller 158, depth camera controller 169, intensity sensor controller 159, haptic feedback controller 161, and one or more input controllers 160 for other input or control devices. One or more input controllers 160 receive / send electrical signals from / to other input control devices 116. Other input control devices 116 optionally include physical buttons (e.g., push buttons, rocker buttons, etc.), dials, slider switches, joysticks, click wheels, etc. In some alternative embodiments, input controller 160 is optionally coupled to any (or none) of a keyboard, an infrared port, a USB port, and a pointer device such as a mouse. The one or more buttons (e.g., 208 in FIG. 2) optionally include up / down buttons for volume control of speaker 111 and / or microphone 113. The one or more buttons optionally include a push button (e.g., 206 in FIG. 2).
[0057] As described in U.S. Patent Application No. 11 / 322,549, filed December 23, 2005, "Unlocking a Device by Performing Gestures on an Unlock Image," U.S. Patent No. 7,657,849, which is incorporated herein by reference in its entirety, a quick press of a push button optionally unlocks touchscreen 112 or, optionally, initiates the process of unlocking the device using gestures on the touchscreen. A longer press of a push button (e.g., 206) optionally turns power on or off to device 100. The functionality of one or more of the buttons is optionally customizable by the user. Touchscreen 112 is used to implement virtual or soft buttons and one or more soft keyboards.
[0058] Touch-sensitive display 112 provides an input and output interface between the device and a user. Display controller 156 receives and / or sends electrical signals to touchscreen 112. Touchscreen 112 displays visual output to the user. This visual output optionally includes graphics, text, icons, video, and any combination thereof (collectively "graphics"). In some embodiments, some or all of the visual output optionally corresponds to user-interface objects.
[0059] Touchscreen 112 has a touch-sensitive surface, sensor, or set of sensors that accepts input from a user based on tactile and / or haptic contact. Touchscreen 112 and display controller 156 (along with any associated modules and / or instruction sets in memory 102) detects contacts (and any movement or cessation of contact) on touchscreen 112 and translates the detected contacts into interactions with user interface objects (e.g., one or more softkeys, icons, web pages, or images) displayed on touchscreen 112. In an exemplary embodiment, the point of contact between touchscreen 112 and the user corresponds to the user's finger.
[0060] Touchscreen 112 optionally uses LCD (liquid crystal display), LPD (light emitting polymer display), or LED (light emitting diode) technology, although other display technologies are used in other embodiments. Touchscreen 112 and display controller 156 optionally detect contact and any movement or disruption thereof using any of a number of now known or later developed touch sensing technologies, including, but not limited to, capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements that determine one or more points of contact with touchscreen 112. In an exemplary embodiment, projected mutual capacitance sensing technology is used, such as that found in the iPhone® and iPod Touch® from Apple Inc. of Cupertino, California.
[0061] The touch-sensitive display in some embodiments of touchscreen 112 is optionally similar to the multi-touch-sensing touchpad described in U.S. Patent Nos. 6,323,846 (Westerman et al.), 6,570,557 (Westerman et al.), and / or 6,677,932 (Westerman), and / or U.S. Patent Publication No. 2002 / 0015024 A1, each of which is incorporated by reference herein in its entirety. However, touchscreen 112 displays visual output from device 100, whereas touch-sensitive touchpads do not provide visual output.
[0062] Touch-sensitive displays in some embodiments of touchscreen 112 are described in the following applications: (1) U.S. patent application Ser. No. 11 / 381,313, filed May 2, 2006, entitled "Multipoint Touch Surface Controller," (2) U.S. patent application Ser. No. 10 / 840,862, filed May 6, 2004, entitled "Multipoint Touchscreen," (3) U.S. patent application Ser. No. 10 / 903,964, filed July 30, 2004, entitled "Gestures For Touch Sensitive Input Devices," (4) U.S. patent application Ser. No. 11 / 048,264, filed January 31, 2005, entitled "Gestures For Touch Sensitive Input Devices," and (5) U.S. patent application Ser. No. 11 / 038,590, filed January 18, 2005, entitled "Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices." No. 11 / 228,758, filed September 16, 2005, entitled "Virtual Input Device Placement On A Touch Screen User Interface," (7) U.S. Patent Application No. 11 / 228,700, filed September 16, 2005, entitled "Operation Of A Computer With A Touch Screen Interface," (8) U.S. Patent Application No. 11 / 228,737, filed September 16, 2005, entitled "Activating Virtual Keys Of A Touch-Screen Virtual Keyboard," and (9) U.S. Patent Application No. 11 / 367,749, filed March 3, 2006, entitled "Multi-Functional Hand-Held Device," all of which are incorporated herein by reference in their entireties.
[0063] Touchscreen 112 optionally has a video resolution of 100 dpi or greater. In some embodiments, the touchscreen has a video resolution of approximately 160 dpi. A user optionally contacts touchscreen 112 using any suitable object or accessory, such as a stylus, finger, or the like. In some embodiments, the user interface is designed to operate primarily using finger-based contact and gestures, which may not be as precise as stylus-based input due to the larger contact area of a finger on the touchscreen. In some embodiments, the device translates the coarse finger input into precise pointer / cursor positions or commands to perform the action desired by the user.
[0064] In some embodiments, in addition to the touchscreen, device 100 optionally includes a touchpad for activating or deactivating certain functions. In some embodiments, the touchpad is a touch-sensitive area of the device that, unlike the touchscreen, does not display visual output. The touchpad is optionally a touch-sensitive surface separate from touchscreen 112 or an extension of the touch-sensitive surface formed by the touchscreen.
[0065] Device 100 also includes a power system 162 for providing power to the various components. Power system 162 optionally includes a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, power failure detection circuitry, power converters or inverters, power status indicators (e.g., light emitting diodes (LEDs)), and any other components associated with the generation, management, and distribution of power within a portable device.
[0066] Device 100 also optionally includes one or more light sensors 164. FIG. 1A shows a light sensor coupled to light sensor controller 158 in I / O subsystem 106. Light sensor 164 optionally includes a charge-coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) phototransistor. Light sensor 164 receives light from the environment projected through one or more lenses and converts the light into data representing an image. Light sensor 164 optionally works in conjunction with imaging module 143 (also called a camera module) to capture still images or video. In some embodiments, the light sensor is located on the back side of device 100 opposite touchscreen display 112 on the front of the device, so that the touchscreen display can be used as a viewfinder for capturing still images and / or video. In some embodiments, the light sensor is located on the front of the device so that an image of a user is optionally acquired for a videoconference while the user views other videoconference participants on the touchscreen display. In some embodiments, the position of the light sensor 164 can be changed by the user (e.g., by rotating the lens and sensor within the device housing), so that a single light sensor 164 is used for both video conferencing and still image and / or video capture, along with a touchscreen display.
[0067] Device 100 also optionally includes one or more depth camera sensors 175. FIG. 1A shows a depth camera sensor coupled to depth camera controller 169 in I / O subsystem 106. Depth camera sensor 175 receives data from the environment and creates a three-dimensional model of an object (e.g., a face) in a scene from a viewpoint (e.g., the depth camera sensor). In some embodiments, in conjunction with imaging module 143 (also referred to as a camera module), depth camera sensor 175 is optionally used to determine a depth map of various portions of an image captured by imaging module 143. In some embodiments, a depth camera sensor is located on the front of device 100 to obtain images of the user with depth information for videoconferences and to capture selfie images with depth map data while the user views other videoconference participants on a touchscreen display. In some embodiments, depth camera sensor 175 is located on the back of the device, or on the back and front of device 100. In some embodiments, the position of the depth camera sensor 175 can be changed by the user (e.g., by rotating the lens and sensor within the device housing), so that the depth camera sensor 175 is used for both video conferencing and capturing still images and / or video, along with a touchscreen display.
[0068] In some embodiments, a depth map (e.g., a depth map image) contains information (e.g., values) about the distance of objects in a scene from a viewpoint (e.g., a camera, light sensor, depth camera sensor). In one embodiment of a depth map, each depth pixel defines a location in the Z-axis of the viewpoint where its corresponding two-dimensional pixel is located. In some embodiments, the depth map is made up of pixels, each defined by a value (e.g., 0-255). For example, a value of "0" represents a pixel located furthest in a "3D" scene, and a value of "255" represents a pixel located closest to the viewpoint (e.g., a camera, light sensor, depth camera sensor) in the "3D" scene. In other embodiments, the depth map represents the distance between objects in a scene and the plane of the viewpoint. In some embodiments, the depth map contains information about the relative depth of various features of an object of interest as seen by a depth camera (e.g., the relative depth of the eyes, nose, mouth, and ears on a user's face). In some embodiments, the depth map contains information that allows the device to determine the contours in the z-direction of the object of interest.
[0069] Device 100 also optionally includes one or more contact intensity sensors 165. FIG. 1A shows contact intensity sensors coupled to intensity sensor controller 159 in I / O subsystem 106. Contact intensity sensors 165 optionally include one or more piezoresistive strain gauges, capacitive force sensors, electric force sensors, piezoelectric force sensors, optical force sensors, capacitive touch-sensitive surfaces, or other intensity sensors (e.g., sensors used to measure the force (or pressure) of a contact on a touch-sensitive surface). Contact intensity sensors 165 receive contact intensity information (e.g., pressure information or a proxy for pressure information) from the environment. In some embodiments, at least one contact intensity sensor is juxtaposed with or proximate to the touch-sensitive surface (e.g., touch-sensitive display system 112). In some embodiments, at least one contact intensity sensor is located on the back of device 100, opposite touchscreen display 112 located on the front of device 100.
[0070] Device 100 also optionally includes one or more proximity sensors 166. Figure 1A shows proximity sensor 166 coupled to peripheral interface 118. Alternatively, proximity sensor 166 is optionally coupled to input controller 160 within I / O subsystem 106. Proximity sensor 166 optionally functions as described in U.S. patent application Ser. Nos. 11 / 241,839, "Proximity Detector In Handheld Device," 11 / 240,788, "Proximity Detector In Handheld Device," 11 / 620,702, "Using Ambient Light Sensor To Augment Proximity Sensor Output," 11 / 586,862, "Automated Response To And Sensing Of User Activity In Portable Devices," and 11 / 638,251, "Methods And Systems For Automatic Configuration Of Peripherals," which are incorporated herein by reference in their entireties. In some embodiments, when the multifunction device is placed near the user's ear (eg, when the user is making a phone call), the proximity sensor turns off and disables touchscreen 112.
[0071] Device 100 also optionally includes one or more tactile output generators 167. FIG. 1A shows tactile output generator 167 coupled to haptic feedback controller 161 in I / O subsystem 106. Tactile output generator 167 optionally includes one or more electroacoustic devices, such as speakers or other audio components, and / or electromechanical devices that convert energy into linear motion, such as motors, solenoids, electroactive polymers, piezoelectric actuators, electrostatic actuators, or other tactile output generating components (e.g., components that convert electrical signals into tactile output on the device). Contact intensity sensor 165 receives tactile feedback generation instructions from haptic feedback module 133 and generates a tactile output on device 100 that can be sensed by a user of device 100. In some embodiments, at least one tactile output generator is juxtaposed with or proximate to a touch-sensitive surface (e.g., touch-sensitive display system 112) and generates a tactile output, optionally by moving the touch-sensitive surface vertically (e.g., in / out of the surface of device 100) or horizontally (e.g., back and forth in the same plane as the surface of device 100). In some embodiments, at least one tactile output generator sensor is located on the back of device 100, opposite touchscreen display 112, which is located on the front of device 100.
[0072] Device 100 also optionally includes one or more accelerometers 168. FIG. 1A shows accelerometer 168 coupled to peripherals interface 118. Alternatively, accelerometer 168 is optionally coupled to input controller 160 in I / O subsystem 106. Accelerometer 168 optionally functions as described in U.S. Patent Publication No. 20050190059, "Acceleration-based Theft Detection System for Portable Electronic Devices," and U.S. Patent Publication No. 20060017692, "Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer," both of which are incorporated by reference herein in their entireties. In some embodiments, information is displayed on the touchscreen display in portrait or landscape orientation based on an analysis of data received from the one or more accelerometers. In addition to the accelerometer 168, the device 100 optionally includes a magnetometer and a GPS (or GLONASS or other global navigation system) receiver for obtaining information about the location and orientation (e.g., vertical or horizontal) of the device 100.
[0073] In some embodiments, software components stored in memory 102 include operating system 126, communications module (or instruction set) 128, touch / motion module (or instruction set) 130, graphics module (or instruction set) 132, text input module (or instruction set) 134, Global Positioning System (GPS) module (or instruction set) 135, and applications (or instruction sets) 136. Additionally, in some embodiments, memory 102 (FIG. 1A) or 370 (FIG. 3) stores device / global internal state 157, as shown in FIGS. 1A and 3. Device / global internal state 157 includes one or more of: active application state indicating which applications, if any, are currently active; display state indicating which applications, views, or other information occupy various regions of touchscreen display 112; sensor state including information obtained from the device's various sensors and input control devices 116; and location information regarding the device's position and / or orientation.
[0074] Operating system 126 (e.g., Darwin, RTXC, LINUX, UNIX, OS X, iOS, WINDOWS, or an embedded operating system such as VxWorks) includes various software components and / or drivers that control and manage general system tasks (e.g., memory management, storage control, power management, etc.) and facilitate communication between various hardware and software components.
[0075] Communications module 128 facilitates communication with other devices via one or more external ports 124 and also includes various software components for processing data received by RF circuitry 108 and / or external port 124. External port 124 (e.g., Universal Serial Bus (USB), FIREWIRE, etc.) is adapted to couple to other devices directly or indirectly via a network (e.g., the Internet, wireless LAN, etc.). In some embodiments, the external port is a multi-pin (e.g., 30-pin) connector that is the same as, similar to, and / or compatible with the 30-pin connector used on iPod® (trademark of Apple Inc.) devices.
[0076] Contact / motion module 130, optionally in cooperation with display controller 156, detects contact with touch screen 112 and other touch-sensing devices (e.g., a touchpad or physical click wheel). Contact / motion module 130 includes various software components for performing various operations related to contact detection, such as determining whether contact occurs (e.g., detecting a finger-down event), determining the intensity of the contact (e.g., the force or pressure of the contact, or a surrogate for the force or pressure of the contact), determining whether there is contact movement and tracking the movement across the touch-sensitive surface (e.g., detecting one or more finger-drag events), and determining whether the contact has stopped (e.g., detecting a finger-up event or an interruption of the contact). Contact / motion module 130 receives contact data from the touch-sensitive surface. Determining the movement of the contact point, as represented by the series of contact data, optionally includes determining the speed (magnitude), velocity (magnitude and direction), and / or acceleration (change in magnitude and / or direction) of the contact point. These actions are optionally applied to a single contact (e.g., a single finger contact) or multiple simultaneous contacts (e.g., "multi-touch" / multiple finger contacts). In some embodiments, contact / motion module 130 and display controller 156 detect contacts on the touchpad.
[0077] In some embodiments, contact / motion module 130 uses a set of one or more intensity thresholds to determine whether an action has been performed by a user (e.g., whether a user has “clicked” an icon). In some embodiments, at least a subset of the intensity thresholds are determined according to software parameters (e.g., the intensity thresholds are not determined by the activation threshold of a particular physical actuator, but can be adjusted without modifying the physical hardware of device 100). For example, the mouse “click” threshold of a trackpad or touchscreen display can be set to any of a wide range of pre-defined thresholds without modifying the trackpad or touchscreen display hardware. Additionally, in some implementations, a user of the device is provided with a software setting to adjust one or more of the set of intensity thresholds (e.g., by adjusting individual intensity thresholds and / or by adjusting multiple intensity thresholds at once via a system-level click “intensity” parameter).
[0078] Contact / motion module 130 optionally detects gesture input by a user. Different gestures on the touch-sensitive surface have different contact patterns (e.g., different movements, timing, and / or intensities of detected contacts). Thus, gestures are optionally detected by detecting particular contact patterns. For example, detecting a finger tap gesture includes detecting a finger down event, followed by detecting a finger up (lift off) event at the same location (or substantially the same location) as the finger down event (e.g., the location of an icon). As another example, detecting a finger swipe gesture on the touch-sensitive surface includes detecting a finger down event, followed by one or more finger drag events, followed by detecting a finger up (lift off) event.
[0079] Graphics module 132 includes various known software components for rendering and displaying graphics on touchscreen 112 or other display, including components for modifying the visual impact (e.g., brightness, transparency, saturation, contrast, or other visual characteristics) of the displayed graphics. As used herein, the term "graphics" includes any object that can be displayed to a user, including, but not limited to, text, web pages, icons (such as user interface objects including soft keys), digital images, video, animation, etc.
[0080] In some embodiments, graphics module 132 stores data representing the graphics to be used. Each graphic is optionally assigned a corresponding code. Graphics module 132 receives one or more codes specifying the graphics to be displayed, including coordinate data and other graphic characteristic data, as needed, from an application or the like, and then generates screen image data to output to display controller 156.
[0081] The haptic feedback module 133 includes various software components for generating instructions used by the tactile output generator 167 to generate haptic outputs at one or more locations on the device 100 in response to a user's interaction with the device 100.
[0082] Text input module 134, optionally a component of graphics module 132, provides a soft keyboard for entering text into various applications (e.g., contacts 137, email 140, IM 141, browser 147, and any other application requiring text input).
[0083] The GPS module 135 determines the location of the device and provides this information for use in various applications (e.g., to the phone 138 for use in location-based dialing, to the camera 143 as photo / video metadata, and to applications that provide location-based services such as weather widgets, local yellow pages widgets, and map / navigation widgets).
[0084] The application 136 optionally includes the following modules (or sets of instructions), or a subset or superset thereof: • a contacts module 137 (sometimes called an address book or contact list); ●Telephone module 138, ●Videoconferencing module 139, ● an email client module 140; ● Instant messaging (IM) module 141, ●Training support module 142, camera module 143 for still images and / or video, ● Image management module 144; ●Video player module, ●Music player module, ● Browser module 147, ● Calendar module 148, • A widget module 149 optionally including one or more of a weather widget 149-1, a stock price widget 149-2, a calculator widget 149-3, an alarm clock widget 149-4, a dictionary widget 149-5, and other widgets obtained by the user, and a user-created widget 149-6; a widget creation module 150 for creating user-created widgets 149-6; ● Search module 151, A video and music player module 152 that integrates a video player module and a music player module; ● Memo module 153, Map module 154, and / or ●Online video module 155.
[0085] Optionally, examples of other applications 136 stored in memory 102 include other word processing applications, other image editing applications, drawing applications, presentation applications, JAVA-enabled applications, encryption, digital rights management, voice recognition, and voice duplication.
[0086] The contacts module 137, in conjunction with the touch screen 112, the display controller 156, the contact / motion module 130, the graphics module 132, and the text input module 134, is optionally used to manage an address book or contact list (e.g., stored in the memory 102 or in the application internal state 192 of the contacts module 137 in the memory 370), which may include adding a name(s) to the address book, removing a name(s) from the address book, associating phone number(s), email address(es), physical address(es), or other information with names, associating images with names, categorizing and sorting names, providing phone numbers or email addresses to initiate and / or facilitate communication by telephone 138, videoconferencing module 139, email 140, or IM 141, etc.
[0087] Telephone module 138, in conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, is optionally used to enter character sequences corresponding to telephone numbers, access one or more telephone numbers in contacts module 137, modify entered telephone numbers, dial respective telephone numbers, place calls, and disconnect or hang up when the call is completed. As previously mentioned, wireless communication optionally uses any of a number of communication standards, protocols, and technologies.
[0088] Videoconferencing module 139 includes executable instructions to cooperate with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touchscreen 112, display controller 156, light sensor 164, light sensor controller 158, contact / motion module 130, graphics module 132, text input module 134, contact module 137, and telephone module 138 to initiate, conduct, and end a videoconference between a user and one or more other participants according to the user's instructions.
[0089] Email client module 140, in conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, contains executable instructions for composing, sending, receiving, and managing emails in response to user instructions. In conjunction with image management module 144, email client module 140 greatly facilitates the creation and sending of emails with still or video images captured by camera module 143.
[0090] Instant messaging module 141 includes executable instructions, in cooperation with RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, for entering character sequences corresponding to instant messages, modifying previously entered characters, sending respective instant messages (e.g., using Short Message Service (SMS) or Multimedia Message Service (MMS) protocols for telephony-based instant messaging, or XMPP, SIMPLE, or IMPS for Internet-based instant messaging), receiving instant messages, and viewing received instant messages. In some embodiments, sent and / or received instant messages optionally include graphics, photos, audio files, video files, and / or other attachments, such as those supported by MMS and / or Enhanced Messaging Service (EMS). As used herein, "instant messaging" refers to both telephony-based messages (e.g., messages sent using SMS or MMS) and Internet-based messages (e.g., messages sent using XMPP, SIMPLE, or IMPS).
[0091] The training support module 142 includes executable instructions to cooperate with the RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, GPS module 135, map module 154, and music player module to create workouts (e.g., with time, distance, and / or calorie burn goals), communicate with training sensors (sports devices), receive training sensor data, calibrate sensors used to monitor workouts, select and play music for workouts, and display, store, and transmit workout data.
[0092] Camera module 143, in conjunction with touch screen 112, display controller 156, light sensor 164, light sensor controller 158, contact / motion module 130, graphics module 132, and image management module 144, contains executable instructions for capturing and storing still images or video (including video streams) in memory 102, modifying the characteristics of the still images or video, or deleting the still images or video from memory 102.
[0093] Image management module 144, in conjunction with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and camera module 143, includes executable instructions for arranging, modifying (e.g., editing), or otherwise manipulating, labeling, deleting, presenting (e.g., in a digital slideshow or album), and storing still images and / or videos.
[0094] Browser module 147, in conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, contains executable instructions for browsing the Internet according to user directions, including retrieving, linking to, receiving, and displaying web pages or portions thereof, as well as attachments and other files linked to web pages.
[0095] Calendar module 148 includes executable instructions to cooperate with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, email client module 140, and browser module 147 to create, display, modify, and store calendars and data associated with the calendars (e.g., calendar items, to-do lists, etc.) according to user instructions.
[0096] Widget module 149, in conjunction with RF circuitry 108, touchscreen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, and browser module 147, optionally provides mini-applications (e.g., weather widget 149-1, stock quotes widget 149-2, calculator widget 149-3, alarm clock widget 149-4, and dictionary widget 149-5) downloaded and used by a user, or mini-applications created by a user (e.g., user-created widget 149-6). In some embodiments, a widget includes an HTML (Hypertext Markup Language) file, a CSS (Cascading Style Sheets) file, and a JavaScript file. In some embodiments, a widget includes an XML (Extensible Markup Language) file and a JavaScript file (e.g., Yahoo! Widgets).
[0097] Widget creation module 150, in conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and browser module 147, is optionally used by a user to create a widget (e.g., turn a user-specified portion of a web page into a widget).
[0098] The search module 151 includes executable instructions for working in conjunction with the touch screen 112, the display controller 156, the contact / motion module 130, the graphics module 132, and the text input module 134 to search for text, music, sound, images, video, and / or other files in the memory 102 that match one or more search criteria (e.g., one or more user-specified search terms) in accordance with user instructions.
[0099] Video and music player module 152 includes executable instructions that, in conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, and browser module 147, enable a user to download and play pre-recorded music and other sound files stored in one or more file formats, such as MP3 or AAC files, as well as executable instructions for displaying, presenting, or otherwise playing videos (e.g., on touchscreen 112 or on an external display connected via external port 124). In some embodiments, device 100 optionally includes the functionality of an MP3 player, such as an iPod (a trademark of Apple Inc.).
[0100] The notes module 153 includes executable instructions for working with the touch screen 112, the display controller 156, the contact / motion module 130, the graphics module 132, and the text input module 134 to create and manage notes, to-do lists, and the like as directed by a user.
[0101] Map module 154, in conjunction with RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, GPS module 135, and browser module 147, is used to receive, display, modify, and store maps and data associated with maps (e.g., driving directions, data about businesses and other points of interest at or near a particular location, and other location-based data), optionally in accordance with user instructions.
[0102] Online video module 155, in conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, text input module 134, email client module 140, and browser module 147, contains instructions that enable a user to access, browse for, receive (e.g., by streaming and / or downloading), and play (e.g., on the touchscreen or on an external display connected via external port 124) particular online videos, send emails with links to particular online videos, and otherwise manage online videos in one or more file formats, such as H.264. In some embodiments, instant messaging module 141 is used to send links to particular online videos, rather than email client module 140. For additional description of online video applications, see U.S. Provisional Patent Application No. 60 / 936,562, filed June 20, 2007, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," and U.S. Patent Application No. 11 / 968,067, filed December 31, 2007, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," the contents of which are incorporated herein by reference in their entireties.
[0103] Each of the above-identified modules and applications corresponds to an executable set of instructions and methods described herein (e.g., computer-implemented methods and other information processing methods described herein) for performing one or more of the above functions. These modules (e.g., sets of instructions) need not be implemented as separate software programs, procedures, or modules; thus, in various embodiments, various subsets of these modules are optionally combined or otherwise reconfigured. For example, a video player module is optionally combined with a music player module into a single module (e.g., video and music player module 152 of FIG. 1A ). In some embodiments, memory 102 optionally stores a subset of the above-identified modules and data structures. Additionally, memory 102 optionally stores additional modules and data structures not described above.
[0104] In some embodiments, device 100 is a device in which operation of a predefined set of functions on the device is performed exclusively via a touchscreen and / or touchpad. Using the touchscreen and / or touchpad as the primary input control device for operation of device 100 optionally reduces the number of physical input control devices (push buttons, dials, etc.) on device 100.
[0105] The predefined set of functions performed exclusively via the touchscreen and / or touchpad optionally includes navigation between user interfaces. In some embodiments, the touchpad, when touched by a user, navigates device 100 to a main menu, home menu, or root menu from any user interface displayed on device 100. In such embodiments, a "menu button" is implemented using the touchpad. In some other embodiments, the menu button is a physical push button or other physical input control device rather than a touchpad.
[0106] 1B is a block diagram illustrating exemplary components for event processing, according to some embodiments. In some embodiments, memory 102 (FIG. 1A) or 370 (FIG. 3) includes event sorter 170 (e.g., within operating system 126) and a respective application 136-1 (e.g., any of applications 137-151, 155, 380-390 described above).
[0107] Event sorter 170 receives the event information and determines which application 136-1 to deliver the event information to and application view 191 for application 136-1. Event sorter 170 includes event monitor 171 and event dispatcher module 174. In some embodiments, application 136-1 includes application internal state 192 that indicates the current application view that is displayed on touch-sensitive display 112 when the application is active or running. In some embodiments, device / global internal state 157 is used by event sorter 170 to determine which application(s) is currently active, and application internal state 192 is used by event sorter 170 to determine which application(s) is / are currently active, and application internal state 192 is used by event sorter 170 to determine which application view 191 to deliver the event information to.
[0108] In some embodiments, application internal state 192 includes additional information, such as one or more of resume information used when application 136-1 resumes execution, user interface state information indicating information being displayed or ready to be displayed by application 136-1, a state queue to allow the user to return to a previous state or view of application 136-1, and a redo / undo queue of actions previously taken by the user.
[0109] Event monitor 171 receives event information from peripherals interface 118. The event information includes information about sub-events (e.g., a user touch as part of a multi-touch gesture on touch-sensitive display 112). Peripherals interface 118 transmits information it receives from I / O subsystem 106 or sensors such as proximity sensor 166, accelerometer(s) 168, and / or microphone 113 (via audio circuitry 110). Information that peripherals interface 118 receives from I / O subsystem 106 includes information from touch-sensitive display 112 or the touch-sensitive surface.
[0110] In some embodiments, event monitor 171 sends requests to peripherals interface 118 at predetermined intervals. In response, peripherals interface 118 transmits event information. In other embodiments, peripherals interface 118 transmits event information only when there is a significant event (e.g., receipt of an input above a predetermined noise threshold and / or for more than a predetermined duration).
[0111] In some embodiments, event sorter 170 also includes hit view determination module 172 and / or active event recognizer determination module 173 .
[0112] Hit view determination module 172 provides software procedures for determining where a sub-event occurred within one or more views when touch-sensitive display 112 displays one or more views. A view consists of controls and other elements that a user can see on the display.
[0113] Another aspect of a user interface associated with an application is the set of views, sometimes referred to herein as application views or user interface windows, in which information is displayed and touch-based gestures occur. The application view (of the respective application) in which the touch is detected optionally corresponds to a programmatic level within the application's programmatic or view hierarchy. For example, the lowest-level view in which the touch is detected is optionally referred to as the hit view, and the set of events that are recognized as suitable inputs is optionally determined based at least in part on the hit view of the initial touch that initiates the touch gesture.
[0114] Hit view determination module 172 receives information related to sub-events of a touch-based gesture. When an application has multiple views organized hierarchically, hit view determination module 172 identifies the hit view as the lowest view in the hierarchy that should process the sub-events. In most situations, the hit view is the lowest-level view in which an initiating sub-event occurs (e.g., the first sub-event in a sequence of sub-events that form an event or potential event). Once a hit view is identified by hit view determination module 172, the hit view typically receives all sub-events related to the same touch or input source as the touch or input source identified as the hit view.
[0115] Active event recognizer determination module 173 determines which view(s) in the view hierarchy should receive the particular sequence of sub-events. In some embodiments, active event recognizer determination module 173 determines that only the hit view should receive the particular sequence of sub-events. In other embodiments, active event recognizer determination module 173 determines that all views that contain the physical location of the sub-event are actively participating views, and therefore determines that all actively participating views should receive the particular sequence of sub-events. In other embodiments, even if the touch sub-event is completely confined to the area associated with one particular view, views higher in the hierarchy still remain actively participating views.
[0116] Event dispatcher module 174 dispatches event information to event recognizers (e.g., event identifiers 180). In embodiments that include active event recognizer determination module 173, event dispatcher module 174 delivers the event information to the event recognizers determined by active event recognizer determination module 173. In some embodiments, event dispatcher module 174 stores event information obtained by each event receiver 182 in an event queue.
[0117] In some embodiments, operating system 126 includes event sorter 170. Alternatively, application 136-1 includes event sorter 170. In still other embodiments, event sorter 170 is a stand-alone module or is part of another module stored in memory 102, such as contact / motion module 130.
[0118] In some embodiments, application 136-1 includes multiple event handlers 190 and one or more application views 191, each containing instructions for processing touch events that occur within a respective view of the application's user interface. Each application view 191 of application 136-1 includes one or more event recognizers 180. Typically, each application view 191 includes multiple event recognizers 180. In other embodiments, one or more of event recognizers 180 are part of a separate module, such as a user interface kit or a higher-level object from which application 136-1 inherits methods and other attributes. In some embodiments, each event handler 190 includes one or more of data updater 176, object updater 177, GUI updater 178, and / or event data 179 received from event sorter 170. Event handler 190 optionally utilizes or invokes data updater 176, object updater 177, or GUI updater 178 to update application internal state 192. Alternatively, one or more of the application views 191 include one or more respective event handlers 190. Also, in some embodiments, one or more of the data updater 176, the object updater 177, and the GUI updater 178 are included in each application view 191.
[0119] Each event recognizer 180 receives event information (e.g., event data 179) from event sorter 170 and identifies an event from the event information. Event recognizer 180 includes event receiver 182 and event comparator 184. In some embodiments, event recognizer 180 also includes metadata 183 and at least a subset of event delivery instructions 188 (optionally including sub-event delivery instructions).
[0120] Event receiver 182 receives event information from event sorter 170. The event information includes information about a sub-event, e.g., a touch or a movement of a touch. Depending on the sub-event, the event information also includes additional information, such as the position of the sub-event. When the sub-event involves a movement of a touch, the event information also optionally includes the speed and direction of the sub-event. In some embodiments, the event includes a rotation of the device from one orientation to another (e.g., from portrait to landscape or vice versa), and the event information includes corresponding information about the current orientation of the device (also called the device's attitude).
[0121] The event comparator 184 compares the event information with predefined event or sub-event definitions and determines the event or sub-event, or determines or updates the state of the event or sub-event, based on the comparison. In some embodiments, the event comparator 184 includes an event definition 186. The event definition 186 includes a definition of an event (e.g., a sequence of predefined sub-events), such as Event 1 (187-1) and Event 2 (187-2). In some embodiments, sub-events within an event (187) include, for example, touch start, touch end, touch movement, touch cancellation, and multiple touches. In one example, the definition for Event 1 (187-1) is a double tap on a displayed object. The double tap includes, for example, a first touch on a displayed object relative to a predetermined phase (touch start), a first lift-off (touch end) relative to the predetermined phase, a second touch on a displayed object relative to the predetermined phase (touch start), and a second lift-off (touch end) relative to the predetermined phase. In another example, a definition of event 2 (187-2) is a drag on a displayed object. Drag includes, for example, a touch (or contact) on the displayed object to a predetermined stage, a movement of the touch across the touch-sensitive display 112, and a lift-off of the touch (touch end). In some embodiments, the event also includes information about one or more associated event handlers 190.
[0122] In some embodiments, event definitions 187 include a definition of the event for each user interface object. In some embodiments, event comparator 184 performs a hit test to determine which user interface object is associated with the sub-event. For example, if a touch is detected on touch-sensitive display 112 in an application view in which three user interface objects are displayed on touch-sensitive display 112, event comparator 184 performs a hit test to determine which of the three user interface objects is associated with the touch (sub-event). If each displayed object is associated with a respective event handler 190, event comparator 184 uses the results of the hit test to determine which event handler 190 to activate. For example, event comparator 184 selects the event handler associated with the sub-event and object that triggers the hit test.
[0123] In some embodiments, the definition of each event (187) also includes a delay action that delays delivery of the event information until it is determined whether the sequence of sub-events corresponds or does not correspond to the event type of the event recognizer.
[0124] If the respective event recognizer 180 determines that the sequence of sub-events does not match any of the events in the event definition 186, the respective event recognizer 180 enters an event-disabled, event-failed, or event-ended state and thereafter ignores the next sub-event of the touch-based gesture. In this situation, any other event recognizers that remain active for the hit view continue to track and process sub-events of the ongoing touch-based gesture.
[0125] In some embodiments, each event recognizer 180 includes a meta list 183 with configurable properties, flags, and / or lists that indicate how the event delivery system performs sub-event delivery to actively participating event recognizers. In some embodiments, meta data 183 includes configurable properties, flags, and / or lists that indicate how event recognizers interact with each other or how event recognizers are enabled to interact with each other. In some embodiments, meta data 183 includes configurable properties, flags, and / or lists that indicate how sub-events are delivered to various levels in the view or programmatic hierarchy.
[0126] In some embodiments, each event recognizer 180 activates an event handler 190 associated with an event when one or more specific sub-events of the event are recognized. In some embodiments, each event recognizer 180 delivers event information associated with the event to the event handler 190. Activating the event handler 190 is separate from sending (and postponing sending) sub-events to the respective hit view. In some embodiments, the event recognizer 180 pops a flag associated with the recognized event, and the event handler 190 associated with the flag captures the flag and performs a predetermined process.
[0127] In some embodiments, event delivery instructions 188 include sub-event delivery instructions that distribute event information about a sub-event without activating an event handler. Instead, the sub-event delivery instructions distribute the event information to an event handler associated with a set of sub-events or to actively participating views. The event handler associated with the set of sub-events or actively participating views receives the event information and performs predetermined processing.
[0128] In some embodiments, data updater 176 creates and updates data used by application 136-1. For example, data updater 176 updates phone numbers used by contacts module 137 or stores video files used by a video player module. In some embodiments, object updater 177 creates and updates objects used by application 136-1. For example, object updater 177 creates new user interface objects or updates the positions of user interface objects. GUI updater 178 updates the GUI. For example, GUI updater 178 prepares display information and sends the display information to graphics module 132 for display on the touch-sensitive display.
[0129] In some embodiments, event handler(s) 190 include or access data updater 176, object updater 177, and GUI updater 178. In some embodiments, data updater 176, object updater 177, and GUI updater 178 are included in a single module of the respective application 136-1 or application view 191. In other embodiments, they are included in two or more software modules.
[0130] It should be understood that the above discussion regarding event processing of user touches on a touch-sensitive display also applies to other forms of user input for operating multifunction device 100 using input devices, not all of which are initiated on the touchscreen. For example, mouse movements and mouse button presses, contact movements such as tapping, dragging, scrolling on a touchpad, optionally coordinated with single or multiple keyboard presses or holds, pen stylus input, device movement, verbal commands, detected eye movement, biometric input, and / or any combination thereof, are optionally utilized as inputs corresponding to sub-events that define the event to be recognized.
[0131] FIG. 2 illustrates portable multifunction device 100 having touchscreen 112, according to some embodiments. The touchscreen optionally displays one or more graphics within user interface (UI) 200. In this embodiment, as well as other embodiments described below, a user may select one or more of the graphics by performing a gesture on the graphics, for example, using one or more fingers 202 (not drawn to scale) or one or more styluses 203 (not drawn to scale). In some embodiments, selection of one or more graphics is performed when the user breaks contact with the one or more graphics. In some embodiments, the gesture optionally includes one or more taps, one or more swipes (left to right, right to left, upward and / or downward), and / or rolling (right to left, left to right, upward and / or downward) of a finger in contact with device 100. In some implementations or situations, accidental contact with a graphic does not select the graphic, for example, if the gesture corresponding to selection is a tap, a swipe gesture sweeping over an application icon optionally does not select the corresponding application.
[0132] Device 100 also optionally includes one or more physical buttons, such as a "home" or menu button 204. As previously mentioned, menu button 204 is optionally used to navigate to any application 136 within a set of applications running on device 100. Alternatively, in some embodiments, the menu button is implemented as a soft key within a GUI displayed on touchscreen 112.
[0133] In some embodiments, device 100 includes touchscreen 112, menu button 204, pushbuttons 206 for powering the device on / off and locking the device, volume control buttons 208, subscriber identity module (SIM) card slot 210, headset jack 212, and external docking / charging port 124. Pushbutton 206 is optionally used to power the device on / off by pressing and holding the button down for a predetermined period of time, to lock the device by pressing and releasing the button before the predetermined time has elapsed, and / or to unlock the device or initiate the unlocking process. In alternative embodiments, device 100 also accepts verbal input via microphone 113 to activate or deactivate certain functions. Device 100 also optionally includes one or more contact intensity sensors 165 for detecting the intensity of a contact on touchscreen 112 and / or one or more tactile output generators 167 for generating a tactile output for a user of device 100.
[0134] FIG. 3 is a block diagram of an exemplary multifunction device having a display and a touch-sensitive surface, according to some embodiments. Device 300 need not be portable. In some embodiments, device 300 is a laptop computer, a desktop computer, a tablet computer, a multimedia player device, a navigation device, an educational device (such as a child's learning toy), a gaming system, or a control device (e.g., a home or commercial controller). Device 300 typically includes one or more processing units (CPUs) 310, one or more network or other communication interfaces 360, memory 370, and one or more communication buses 320 interconnecting these components. Communication bus 320 optionally includes circuitry (sometimes called a chipset) that interconnects and controls communication between system components. Device 300 includes input / output (I / O) interface 330, including display 340, which is typically a touchscreen display. I / O interface 330 also optionally includes a keyboard and / or mouse (or other pointing device) 350 and a touchpad 355, a tactile output generator 357 (e.g., similar to tactile output generator 167 described above with reference to FIG. 1A ) for generating tactile output on device 300, sensors 359 (e.g., light, acceleration, proximity, touch-sensing, and / or contact intensity sensors similar to contact intensity sensor 165 described above with reference to FIG. 1A ). Memory 370 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices, and optionally includes non-volatile memory such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 370 optionally includes one or more storage devices located remotely from CPU(s) 310. In some embodiments, memory 370 stores programs, modules, and data structures similar to, or a subset of, the programs, modules, and data structures stored in memory 102 of portable multifunction device 100 (FIG. 1A).Additionally, memory 370 optionally stores additional programs, modules, and data structures not present in memory 102 of portable multifunction device 100. For example, memory 370 of device 300 optionally stores drawing module 380, presentation module 382, word processing module 384, website creation module 386, disc authoring module 388, and / or spreadsheet module 390, whereas memory 102 of portable multifunction device 100 (FIG. 1A) optionally does not store these modules.
[0135] Each of the above-identified elements of FIG. 3 is optionally stored in one or more of the memory devices mentioned above. Each of the above-identified modules corresponds to an instruction set that performs the function described above. The above-identified modules or programs (e.g., instruction sets) need not be implemented as separate software programs, procedures, or modules; thus, in various embodiments, various subsets of these modules are optionally combined or otherwise reconfigured. In some embodiments, memory 370 optionally stores a subset of the above-identified modules and data structures. Additionally, memory 370 optionally stores additional modules and data structures not described above.
[0136] Attention is now optionally directed to user interface embodiments, for example, as implemented on portable multifunction device 100.
[0137] 4A shows an exemplary user interface for a menu of applications on portable multifunction device 100, according to some embodiments. A similar user interface is optionally implemented on device 300. In some embodiments, user interface 400 includes the following elements, or a subset or superset thereof: signal strength indicator(s) 402 for wireless communication(s), such as cellular and Wi-Fi signals; ●Time 404, ●Bluetooth indicator 405, ● Battery status indicator 406, Tray 408 with icons of frequently used applications, such as: An icon 416 for the phone module 138, labeled "Phone," optionally including an indicator 414 of the number of missed calls or voicemail messages; icon 418 of the email client module 140, labeled "Mail," optionally including an indicator 410 of the number of unread emails; ○ An icon 420 for the browser module 147, labeled "Browser"; and ○ An icon 422 for the video and music player module 152, also called the iPod (trademark of Apple Inc.) module 152, labeled "iPod", and ● Icons of other applications, such as: ○ Icon 424 of IM module 141, labeled "Messages"; icon 426 of the calendar module 148, labeled "Calendar"; ○ Icon 428 of the image management module 144, labeled "Photos" ○ An icon 430 of the camera module 143, labeled "camera"; ○ Icon 432 of the online video module 155, labeled "Online Video"; Icon 434 of Stock Price Widget 149-2, labeled "Stock Price" ○ Icon 436 of the map module 154, labeled "Map"; Icon 438 of weather widget 149-1, labeled "Weather" ○ Icon 440 of alarm clock widget 149-4, labeled "Clock" ○ Icon 442 of Training Support Module 142, labeled "Training Support"; ○ An icon 444 of the Notes module 153 labeled "Notes," and A settings application or module icon 446 labeled "Settings" that provides access to settings for the device 100 and its various applications 136.
[0138] Note that the icon labels shown in FIG. 4A are merely exemplary. For example, icon 422 of video and music player module 152 is labeled "Music" or "Music Player." Other labels are optionally used for various application icons. In some embodiments, the label for each application icon includes the name of the application corresponding to the respective application icon. In some embodiments, the label for a particular application icon is different from the name of the application corresponding to that particular application icon.
[0139] 4B shows an example user interface on a device (e.g., device 300 of FIG. 3 ) that has touch-sensitive surface 451 (e.g., tablet or touchpad 355 of FIG. 3 ) that is separate from display 450 (e.g., touchscreen display 112). Device 300 also optionally includes one or more contact intensity sensors (e.g., one or more of sensors 359) that detect the intensity of a contact on touch-sensitive surface 451, and / or one or more tactile output generators 357 that generate a tactile output for a user of device 300.
[0140] Although some of the following examples are given with reference to input on touchscreen display 112 (which combines a touch-sensitive surface and a display), in some embodiments, the device detects input on a touch-sensitive surface that is separate from the display, as shown in FIG. 4B . In some embodiments, the touch-sensitive surface (e.g., 451 in FIG. 4B ) has a primary axis (e.g., 452 in FIG. 4B ) that corresponds to a primary axis (e.g., 453 in FIG. 4B ) on the display (e.g., 450). According to these embodiments, the device detects contact with touch-sensitive surface 451 (e.g., 460 and 462 in FIG. 4B ) at locations that correspond to respective locations on the display (e.g., in FIG. 4B , 460 corresponds to 468 and 462 corresponds to 470). In this way, user input (e.g., contacts 460 and 462 and their movement) detected by the device on the touch-sensitive surface (e.g., 451 in FIG. 4B ) is used by the device to operate a user interface on the display (e.g., 450 in FIG. 4B ) of the multifunction device when the touch-sensitive surface is separate from the display. It should be understood that similar methods are optionally used for the other user interfaces described herein.
[0141] Additionally, while the following examples are shown primarily with reference to finger input (e.g., finger contact, finger tap gesture, finger swipe gesture), it should be understood that in some embodiments, one or more of these finger inputs are replaced with input from another input device (e.g., mouse-based input or stylus input). For example, a swipe gesture is optionally replaced by a mouse click (e.g., instead of a contact) followed by movement of a cursor along the path of the swipe (e.g., instead of movement of the contact). As another example, a tap gesture is optionally replaced by a mouse click (e.g., instead of detecting a contact and then ceasing contact detection) while the cursor is located over the location of the tap gesture. Similarly, it should be understood that when multiple user inputs are detected simultaneously, multiple computer mice are optionally used simultaneously, or a mouse and finger contacts are optionally used simultaneously.
[0142] FIG. 5A shows an exemplary personal electronic device 500. Device 500 includes a main body 502. In some embodiments, device 500 can include some or all of the features described with respect to devices 100 and 300 (e.g., FIGS. 1A-4B ). In some embodiments, device 500 has a touch-sensitive display screen 504, hereafter touchscreen 504. Alternatively, or in addition to touchscreen 504, device 500 has a display and a touch-sensitive surface. Similar to devices 100 and 300, in some embodiments, touchscreen 504 (or the touch-sensitive surface) optionally includes one or more intensity sensors that detect the intensity of an applied contact (e.g., a touch). The one or more intensity sensors of touchscreen 504 (or the touch-sensitive surface) can provide output data representing the intensity of the touch. The user interface of device 500 can respond to a touch based on its intensity, meaning that touches of different intensities can invoke different user interface actions on device 500.
[0143] Exemplary techniques for detecting and processing touch intensity are found, for example, in related applications International Patent Application No. PCT / US2013 / 040061, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application," published as International Patent Application No. WO / 2013 / 169849, and International Patent Application No. PCT / US2013 / 069483, filed November 11, 2013, entitled "Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships," published as International Patent Application No. WO / 2014 / 105276, each of which is incorporated herein by reference in its entirety.
[0144] In some embodiments, device 500 has one or more input mechanisms 506 and 508. Input mechanisms 506 and 508, if included, may be physical. Examples of physical input mechanisms include push buttons and rotatable mechanisms. In some embodiments, device 500 has one or more attachment mechanisms. Such attachment mechanisms, if included, may allow device 500 to be attached to, for example, hats, eyewear, earrings, necklaces, shirts, jackets, bracelets, watch bands, chains, pants, belts, shoes, wallets, backpacks, etc. These attachment mechanisms allow device 500 to be worn by a user.
[0145] FIG. 5B illustrates an exemplary personal electronic device 500. In some embodiments, device 500 can include some or all of the components described with respect to FIGS. 1A, 1B, and 3. Device 500 has a bus 512 that operably couples an I / O section 514 to one or more computer processors 516 and a memory 518. I / O section 514 can be connected to a display 504, which can have touch-sensing components 522 and, optionally, an intensity sensor 524 (e.g., a contact intensity sensor). Additionally, I / O section 514 can be connected to a communication unit 530 that receives application and operating system data using Wi-Fi, Bluetooth, near-field communication (NFC), cellular, and / or other wireless communication techniques. Device 500 can include input mechanisms 506 and / or 508. Input mechanism 506 is optionally a rotatable input device or a depressible and rotatable input device, for example. In some examples, input mechanism 508 is optionally a button.
[0146] In some examples, the input mechanism 508 is optionally a microphone. The personal electronic device 500 optionally includes various sensors, such as a GPS sensor 532, an accelerometer 534, an orientation sensor 540 (e.g., a compass), a gyroscope 536, a motion sensor 538, and / or combinations thereof, all of which may be operably connected to the I / O section 514.
[0147] The memory 518 of the personal electronic device 500 may include one or more non-transitory computer-readable storage media for storing computer-executable instructions that, when executed by one or more computer processors 516, may cause the computer processors to perform the techniques described below, including processes 700, 900, and 1100 (FIGS. 7A-7B, 9A-9B, and 11). A computer-readable storage medium may be any medium that can tangibly contain or store computer-executable instructions used by or in connection with an instruction execution system, apparatus, or device. In some embodiments, the storage medium is a transient computer-readable storage medium. In some embodiments, the storage medium is a non-transitory computer-readable storage medium. Non-transitory computer-readable storage media may include, but are not limited to, magnetic, optical, and / or semiconductor storage devices. Examples of such storage devices include magnetic disks, optical disks based on CDs, DVDs, or Blu-ray technology, as well as resident solid-state memory such as flash, solid-state drives, and the like. Personal electronic device 500 is not limited to the components and configuration of FIG. 5B and may include other or additional components in multiple configurations.
[0148] As used herein, the term "affordance" optionally refers to a user-interactive graphical user interface object displayed on a display screen of device 100, 300, and / or 500 (FIGS. 1A, 3, and 5A-5B). For example, images (e.g., icons), buttons, and text (e.g., hyperlinks) each, optionally, constitute an affordance.
[0149] As used herein, the term “focus selector” refers to an input element that indicates the current portion of the user interface with which the user is interacting. In some implementations involving a cursor or other position marker, the cursor acts as the “focus selector,” such that when input (e.g., a press input) is detected on a touch-sensitive surface (e.g., touchpad 355 of FIG. 3 or touch-sensitive surface 451 of FIG. 4B) while the cursor is positioned over a particular user interface element (e.g., a button, window, slider, or other user interface element), the particular user interface element is adjusted according to the detected input. In some implementations involving a touchscreen display (e.g., touch-sensitive display system 112 of FIG. 1A or touchscreen 112 of FIG. 4A) that allows direct interaction with user interface elements on the touchscreen display, a detected contact on the touchscreen acts as the “focus selector,” such that when input (e.g., a press input by contact) is detected at the location of a particular user interface element (e.g., a button, window, slider, or other user interface element) on the touchscreen display, the particular user interface element is adjusted according to the detected input. In some implementations, focus is moved from one region of the user interface to another region of the user interface without a corresponding cursor movement or contact movement on the touchscreen display (e.g., by using the tab key or arrow keys to move focus from one button to another), and in these implementations, the focus selector moves to follow the movement of focus between various regions of the user interface. Regardless of the specific form the focus selector takes, the focus selector is generally a user interface element (or contact on a touchscreen display) that is controlled by the user to communicate the user's intended interaction with the user interface (e.g., by indicating to the device the element of the user interface through which the user intends to interact).For example, while a press input is detected on a touch-sensitive surface (e.g., a touchpad or touchscreen), the position of a focus selector (e.g., a cursor, touch, or selection box) over a corresponding button indicates that the user intends to activate that corresponding button (and not other user interface elements shown on the device's display).
[0150] As used herein and in the claims, the term "characteristic intensity" of a contact refers to a characteristic of that contact based on one or more intensities of the contact. In some embodiments, the characteristic intensity is based on a plurality of intensity samples. The characteristic intensity is optionally based on a predetermined number of intensity samples, i.e., a set of intensity samples collected during a predetermined time period (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10 seconds) associated with a predetermined event (e.g., after detecting the contact, before detecting lift-off of the contact, before or after detecting the start of contact movement, before detecting the end of the contact, before or after detecting an increase in the intensity of the contact, and / or before or after detecting a decrease in the intensity of the contact). The characteristic intensity of the contact is optionally based on one or more of the maximum intensity of the contact, the mean intensity of the contact, the average intensity of the contact, the top 10 percentile intensity of the contact, half the maximum intensity of the contact, 90 percent of the maximum intensity of the contact, etc. In some embodiments, the duration of the contact is used in determining the characteristic intensity (e.g., when the characteristic intensity is an average of the intensity of the contact over time). In some embodiments, the characteristic intensity is compared to a set of one or more intensity thresholds to determine whether an action is performed by the user. For example, the set of one or more intensity thresholds optionally includes a first intensity threshold and a second intensity threshold. In this example, a contact having a characteristic intensity that does not exceed the first threshold results in a first action, a contact having a characteristic intensity that exceeds the first intensity threshold but not the second intensity threshold results in a second action, and a contact having a characteristic intensity that exceeds the second threshold results in a third action. In some embodiments, the comparison between the characteristic intensity and the one or more thresholds is not used to determine whether the first action or the second action should be performed, but rather is used to determine whether one or more actions should be performed (e.g., whether to perform the respective action or to forgo performing the respective action).
[0151] In some embodiments, a portion of the gesture is identified for purposes of determining the characteristic intensity. For example, the touch-sensitive surface optionally receives successive swipe contacts that transition from a start position to an end position, where the intensity of the contact increases. In this example, the characteristic intensity of the contact at the end position is optionally based on only a portion of the successive swipe contacts (e.g., only the portion of the swipe contact at the end position), rather than the entire swipe contact. In some embodiments, a smoothing algorithm is optionally applied to the intensity of the swipe contact before determining the characteristic intensity of the contact. For example, the smoothing algorithm optionally includes one or more of an unweighted moving average smoothing algorithm, a triangular smoothing algorithm, a median filter smoothing algorithm, and / or an exponential smoothing algorithm. In some situations, these smoothing algorithms eliminate narrow spikes or dips in the intensity of the swipe contact for purposes of determining the characteristic intensity.
[0152] The intensity of a contact on the touch-sensitive surface is optionally characterized relative to one or more intensity thresholds, such as a contact-detection intensity threshold, a light press intensity threshold, a deep press intensity threshold, and / or one or more other intensity thresholds. In some embodiments, the light press intensity threshold corresponds to an intensity at which the device performs an action normally associated with clicking a physical mouse button or trackpad. In some embodiments, the deep press intensity threshold corresponds to an intensity at which the device performs an action different from an action normally associated with clicking a physical mouse button or trackpad. In some embodiments, when a contact is detected having a characteristic intensity below the light press intensity threshold (e.g., and above a nominal contact-detection intensity threshold below which the contact is not detected), the device follows the movement of the contact on the touch-sensitive surface and moves the focus selector without performing an action associated with the light press intensity threshold or the deep press intensity threshold. In general, unless otherwise specified, these intensity thresholds are consistent across various sets of values for a user interface.
[0153] An increase in the characteristic intensity of a contact from an intensity below the light press intensity threshold to an intensity between the light press intensity threshold and the deep press intensity threshold may be referred to as inputting a "light press." An increase in the characteristic intensity of a contact from an intensity below the deep press intensity threshold to an intensity above the deep press intensity threshold may be referred to as inputting a "deep press." An increase in the characteristic intensity of a contact from an intensity below the contact-detection intensity threshold to an intensity between the contact-detection intensity threshold and the light press intensity threshold may be referred to as detecting a contact on the touch surface. A decrease in the characteristic intensity of a contact from an intensity above the contact-detection intensity threshold to an intensity below the contact-detection intensity threshold may be referred to as detecting a lift-off of the contact from the touch surface. In some embodiments, the contact-detection intensity threshold is zero. In some embodiments, the contact-detection intensity threshold is greater than zero.
[0154] In some embodiments described herein, one or more actions are performed in response to detecting a gesture including a respective press input or in response to detecting a respective press input performed by a respective contact (or multiple contacts), where the respective press inputs are detected based at least in part on detecting an increase in intensity of the contact (or multiple contacts) above a press input intensity threshold. In some embodiments, the respective actions are performed in response to detecting an increase in intensity of the respective contact above the press input intensity threshold (e.g., a “downstroke” of the respective press input). In some embodiments, the press input includes an increase in intensity of the respective contact above the press input intensity threshold followed by a decrease in intensity of the contact below the press input intensity threshold, and the respective actions are performed in response to detecting a subsequent decrease in intensity of the respective contact below the press input threshold (e.g., an “upstroke” of the respective press input).
[0155] In some embodiments, the device employs intensity hysteresis to avoid accidental input, sometimes referred to as “jitter,” and the device defines or selects a hysteresis intensity threshold that has a predetermined relationship to the press input intensity threshold (e.g., the hysteresis intensity threshold is X intensity units below the press input intensity threshold, or the hysteresis intensity threshold is 75%, 90%, or some reasonable percentage of the press input intensity threshold). Thus, in some embodiments, the press input includes an increase in the intensity of each contact above the press input intensity threshold followed by a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to the press input intensity threshold, and a respective action is performed in response to detecting a subsequent decrease in the intensity of each contact below the hysteresis intensity threshold (e.g., an “upstroke” of each press input). Similarly, in some embodiments, a press input is detected only when the device detects an increase in the intensity of the contact from an intensity below the hysteresis intensity threshold to an intensity above the press input intensity threshold, and optionally a subsequent decrease in the intensity of the contact to an intensity below the hysteresis intensity, and a respective action is performed in response to detecting the press input (e.g., an increase in the intensity of the contact or a decrease in the intensity of the contact, as the case may be).
[0156] For ease of explanation, descriptions of operations performed in response to a press input associated with a press input intensity threshold, or a gesture including a press input, are optionally triggered in response to detecting any of: an increase in the intensity of the contact above the press input intensity threshold; an increase in the intensity of the contact from an intensity below a hysteresis intensity threshold to an intensity above the press input intensity threshold; a decrease in the intensity of the contact below the press input intensity threshold; and / or a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to the press input intensity threshold. Further, in examples where an operation is described as being performed in response to detecting a decrease in the intensity of the contact below a press input intensity threshold, the operation is optionally performed in response to detecting a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to and lower than the press input intensity threshold.
[0157] Attention is now directed to embodiments of user interfaces (“UIs”) and related processes implemented on an electronic device such as portable multifunction device 100, device 300, or device 500.
[0158] 6A-6T show example user interfaces for adjusting simulated depth effects (e.g., bokeh effects) according to some embodiments. The user interfaces in those figures are used to illustrate the processes described below, including the processes in FIGS. 7A-7B.
[0159] 6A shows a front view 600A and a back view 600B of an electronic device 600 (e.g., a smartphone). Electronic device 600 includes a display 602 (e.g., integrated with a touch-sensitive surface), an input device 604 (e.g., mechanical input buttons, depressible input buttons), a front sensor 606 (e.g., including one or more front-facing cameras), and a back sensor 608 (e.g., including one or more rear-facing cameras). In some embodiments, electronic device 600 also includes one or more biometric sensors (e.g., a fingerprint sensor, a facial recognition sensor, an iris / retina scanner).
[0160] Electronic device 600 optionally includes one or more depth camera sensors (e.g., similar to one or more depth camera sensors 175 described with reference to FIG. 1A ). The one or more depth camera sensors receive data from the environment and create a three-dimensional model of an object (e.g., a face) in a scene from a viewpoint (e.g., the depth camera sensor). In some embodiments, in conjunction with an imaging module (e.g., similar to imaging module 143 described with reference to FIG. 1A and also referred to as a camera module), the one or more depth camera sensors are optionally used to determine depth maps of different portions of an image captured by the imaging module. In some embodiments, the one or more depth camera sensors are located on the front of the device so that an image of a user with depth information is optionally obtained for a video conference while the user views other video conference participants on a touchscreen display, capturing a selfie image with depth map data. In some embodiments, the one or more depth camera sensors are located on the back of the device, or on the back and front of the device. In some embodiments, the position(s) of the one or more depth camera sensors can be changed by the user (e.g., by rotating the lens and sensor within the device housing), so that the depth camera sensors are used for both video conferencing and still image and / or video capture, along with the touchscreen display. In some embodiments, the one or more depth camera sensors are integrated with the front camera 606 and / or the rear camera 608.
[0161] In some embodiments, a depth map (e.g., a depth map image) contains information (e.g., values) about the distance of objects in a scene from a viewpoint (e.g., a camera, light sensor, depth camera sensor). In one embodiment of a depth map, each depth pixel defines a location in the Z-axis of the viewpoint where its corresponding two-dimensional pixel is located. In some embodiments, the depth map is made up of pixels, each defined by a value (e.g., 0-255). For example, a value of "0" represents a pixel located furthest in a "3D" scene, and a value of "255" represents a pixel located closest to the viewpoint (e.g., a camera, light sensor, depth camera sensor) in the "3D" scene. In other embodiments, the depth map represents the distance between objects in a scene and the plane of the viewpoint. In some embodiments, the depth map contains information about the relative depth of various features of an object of interest as seen by a depth camera (e.g., the relative depth of the eyes, nose, mouth, and ears on a user's face). In some embodiments, the depth map contains information that allows the device to determine the contours in the z-direction of the object of interest.
[0162] 6A , electronic device 600 displays user interface 610 (e.g., a lock screen user interface) on display 602 that includes affordance 612 for launching an image capture application (e.g., a camera application, an image / photo capture and editing application). While displaying user interface 610, electronic device 600 detects (e.g., via the touch-sensitive surface of display 602) activation 601 of affordance 612 (e.g., a tap gesture on affordance 612).
[0163] 6B , in response to detecting activation 601, electronic device 600 displays user interface 614 of an image capture application on display 602. In this example, the image capture application is in a photo mode. While displaying user interface 614 of the image capture application, electronic device 600 receives, via rear camera 608, image data corresponding to an environment within a field of view of rear camera 608. In some examples, when the image capture application is in a front mode as opposed to a rear mode, electronic device 600 receives, via front camera 606, image data corresponding to an environment within a field of view of front camera 606.
[0164] The electronic device 600 displays an image representation 618 of image data received via the rear camera 608 in an image display area 616 of an image capture application user interface 614. In this example, the image representation 618 includes a subject 620 (e.g., a view of a person including the person's face and at least a portion of the person's upper body). In this example, the image representation 618 also includes an illuminating object 622A (corresponding to an actual illuminating object in the actual environment), an illuminating object 622B (corresponding to an actual illuminating object in the actual environment), and an illuminating object 622C (corresponding to an actual illuminating object in the actual environment). In this example, the image representation 618 also includes a non-illuminating object 624 (corresponding to an actual non-illuminating object in the actual environment).
[0165] Image capture application user interface 614 also includes a first menu area 628A and a second menu area 628B. First menu area 628A includes a plurality of affordances associated with adjusting image effects and / or properties. Second menu area 628B includes a plurality of image capture mode options (e.g., photo mode, video mode, portrait mode, square mode, slow-motion mode). In FIG. 6B , electronic device 600 detects (e.g., via the touch-sensitive surface of display 602) activation 603 of portrait mode affordance 626, which corresponds to portrait mode.
[0166] 6C , in response to detecting activation 603 of portrait mode affordance 626, electronic device 600 changes the current image capture mode of an image capture application from photo mode to portrait mode. In portrait mode, electronic device 600 displays depth effect affordance 630 (e.g., for adjusting the depth of field of image representation 618 by adjusting a simulated f-stop, also known as an f-stop, f-ratio, or focal ratio) within first menu region 628A of user interface 614.
[0167] Additionally, in portrait mode, electronic device 600 applies a simulated depth effect (e.g., a bokeh effect, a depth of field effect, with a default 4.5 f-stop number) to image representation 618 displayed in image display area 616. In some embodiments, the simulated depth effect is applied to the background of image representation 618 with subject 620 as the focal point. In some embodiments, the simulated depth effect is applied to the entire image representation 618 based on a focal point within subject 620 (e.g., a central region of subject's 620's face, such as subject's 620's nose).
[0168] 6C , when a simulated depth effect is applied, the depth-of-field characteristics of objects in image representation 618 are adjusted based on one or more characteristics of the particular object (e.g., the type of object, such as whether the object corresponds to an illuminating object or a non-illuminating object, the shape of the object, the distance of the object from the focal point). For example, the depth-of-field characteristics of illuminating objects 622A, 622B, and 622C in image representation 618 are adjusted more dramatically relative to non-illuminating object 624 in image representation 618 (e.g., such that the illuminating object appears blurred, larger, brighter, more saturated, and / or has a more distorted shape than the non-illuminating object). Adjusting the depth-of-field characteristics of objects based on one or more characteristics of the objects is described in more detail below with reference to the user interfaces of FIGS. 8A-8R.
[0169] 6D , while in portrait mode, electronic device 600 detects (e.g., via the touch-sensitive surface of display 602) activation 605 of depth effect affordance 630 (e.g., a tap gesture on depth effect affordance 630). In some embodiments, electronic device 600 changes a visual characteristic of the depth effect affordance (e.g., changes the color of the affordance) upon detecting activation of the affordance. Alternatively, in FIG. 6E , while in portrait mode, electronic device 600 detects (e.g., via the touch-sensitive surface of display 602) a swipe gesture 607 (e.g., a vertical swipe gesture, a swipe up gesture) within image display area 616.
[0170] In FIG. 6F, in response to detecting activation 605 of depth effect affordance 630 or swipe gesture 607 on image display area 616, electronic device 600 shifts image display area 616 upward within user interface 614 (so that first menu area 628A becomes vertically narrower and second menu area 628B becomes vertically wider) and displays depth adjustment slider 632 within second menu area 628B.
[0171] The depth adjustment slider 632 includes a plurality of scales 634 corresponding to f-stops and a pointer 636 that indicates the currently selected scale (and thus the currently selected f-stop). The depth adjustment slider 632 also includes an f-stop indicator 638 (e.g., located above or adjacent to the pointer 636) that indicates the value of the currently selected f-stop. As mentioned above, in some embodiments, the default f-stop is 4.5. In some embodiments, in addition to displaying the current f-stop in the f-stop indicator 638, the electronic device 600 also displays the current f-stop in the depth effect affordance 630.
[0172] 6G , while displaying depth adjustment slider 632, electronic device 600 detects (e.g., via the touch-sensitive surface of display 602) a swipe gesture 609 (e.g., a horizontal swipe gesture, a right swipe gesture) on depth adjustment slider 632 (e.g., on scale 634). In some examples, scale 634 shifts (horizontally) in response to swipe gesture 609, while pointer 636 remains fixed. In some examples, pointer 636 shifts over fixed scale 634 in response to the swipe gesture on depth adjustment slider 632.
[0173] In FIG. 6H, in response to detecting swipe gesture 609, electronic device 600 adjusts depth of field characteristics of objects (e.g., illuminating objects 622A, 622B, and 622C and non-illuminating object 624) within image representation 618 based on the focal point of image representation 618 (e.g., the nose of subject 620).
[0174] As indicated by f-number indicator 638 (and in some embodiments, by depth effect affordance 630), swipe gesture 609 results in a decrease in the current f-number (3.9) from the previous (default) f-number (4.5). Illuminated objects 622A, 622B, and 622C are blurred, larger, brighter, more saturated, and / or have a more distorted shape in FIG. 6H (with a 3.9 f-number) than in FIG. 6G (with a 4.5 f-number); similarly, non-illuminated object 624 is blurred, larger, brighter, more saturated, and / or has a more distorted shape in FIG. 6H than in FIG. 6G. The degree of change in the degree of object blurriness, size, brightness, saturation, and / or shape distortion from the previous f-number (4.5) to the lower f-number (3.9) is more dramatic for illuminating objects compared to non-illuminating objects.
[0175] Additionally, the shape of each object is further distorted based on its distance from the focal point of image representation 618 (e.g., the nose of subject 620) (e.g., if image representation 618 is viewed as an x,y plane with the focal point at the center of the plane, distance is measured as the straight-line distance from the center of the object to the center of the plane). For example, the degree of shape distortion of object 622B-1 is more dramatic (e.g., the object becomes less circular and more elliptical / more elongated) than the degree of shape distortion of object 622B-2. Similarly, the degree of shape distortion of object 622C-1 is more dramatic (e.g., the object becomes less circular and more elliptical / more elongated) than the degree of shape distortion of object 622C-2. As noted above, changes in the depth-of-field characteristics of objects within image representations are described in more detail below with reference to FIGS. 8A-8R.
[0176] In FIG. 6H, electronic device 600 detects (eg, via the touch-sensitive surface of display 602) swipe gesture 611 (eg, a continuation of swipe gesture 609) on depth adjustment slider 632.
[0177] In FIG. 6I, in response to detecting the swipe gesture 611, the electronic device 600 further adjusts the depth of field characteristics of the objects (e.g., illuminating objects 622A, 622B, and 622C and non-illuminating object 624) within the image representation 618 based on the focal point of the image representation 618 (e.g., the nose of the subject 620).
[0178] As indicated by f-stop indicator 638 (and, in some embodiments, by depth effect affordance 630), swipe 611 results in a further decrease in the current f-stop (1.6) from the previous f-stop (3.9). Illuminated objects 622A, 622B, and 622C have blurrier, larger, brighter, more saturated, and / or more distorted shapes in FIG. 61 (with a 1.6 f-stop) than in FIG. 6H (with a 3.9 f-stop); similarly, non-illuminated object 624 has blurrier, larger, brighter, more saturated, and / or more distorted shapes in FIG. 61 than in FIG. 6H. The degree of change in the degree of object blur, size, brightness, saturation, and / or shape distortion from the previous f-stop (3.9) to the lower f-stop (1.6) is more dramatic for illuminating objects compared to non-illuminating objects.
[0179] In FIG. 6J, while displaying image display 618 corresponding to image data detected via rear camera 608 within image display area 616, and while the simulated depth of field is set to a 1.6 f-stop (as indicated by f-stop indicator 1.6) as previously set in FIG. 6I, electronic device 600 detects (e.g., via the touch-sensitive surface of display 602) activation 613 of image capture affordance 640 (e.g., a tap gesture on image capture affordance 640).
[0180] In response to detecting activation 613 of image capture affordance 640, electronic device 600 stores (e.g., in local memory of the device and / or a remote server accessible by the device) image data corresponding to image representation 618 having a simulated image effect (having a 1.6f value).
[0181] In FIG. 6K, electronic device 600 detects (e.g., via the touch-sensitive surface of display 602) activation 615 of stored image affordance 642 (e.g., a tap gesture on stored image affordance 642).
[0182] In Figure 6L, in response to detecting activation 615 of stored image affordance 642, electronic device 600 displays stored image application user interface 644 on display 602. User interface 644 includes image display area 646 for displaying the stored image. In Figure 6L, electronic device 600 displays stored image representation 648 in image display area 646, which corresponds to image representation 618 captured in Figure 6J. Like image representation 618, stored image representation 648 includes subject 650 (corresponding to subject 620), lit object 652A (corresponding to lit object 622A), lit object 652B (corresponding to lit object 622B), lit object 652C (corresponding to lit object 622C), and non-lit object 654 (corresponding to non-lit object 624). Additionally, like image representation 618 as captured (in Figure 6J), stored image representation 648 is adjusted with a simulated depth-of-field setting at a 1.6 f-stop.
[0183] In FIG. 6L, while displaying stored image representation 648, electronic device 600 detects (e.g., via the touch-sensitive surface of display 602) activation 617 of edit affordance 656 of user interface 644 (e.g., a tap gesture on edit affordance 656).
[0184] 6M , in response to detecting activation 617 of edit affordance 656, electronic device 600 displays depth adjustment slider 632 (set to a 1.6 f-stop as indicated by f-stop indicator 638) (e.g., in a menu region of user interface 644 below image display region 646 showing the stored image representation). In some examples, image display region 646 shifts upward in user interface 644 to display depth adjustment slider 632 (e.g., similar to image display region 616 shifting upward as described with reference to FIG. 6F ). Electronic device 600 also displays depth effect indicator 658 (e.g., in a region of user interface 644 above image display region 646 showing the stored image representation) indicating that the currently displayed stored image representation (stored image representation 648) is being adjusted with a simulated depth effect.
[0185] 6N , while displaying depth adjustment slider 632, electronic device 600 detects (e.g., via the touch-sensitive surface of display 602) a swipe gesture 619 (e.g., a horizontal swipe gesture, a left swipe gesture) on depth adjustment slider 632 (e.g., on scale 634). In some examples, scale 634 shifts (horizontally) in response to swipe gesture 619, while pointer 636 remains fixed. In some examples, pointer 636 shifts over fixed scale 634 in response to a swipe on depth adjustment slider 632.
[0186] In FIG. 6O, in response to detecting a swipe gesture 619, the electronic device 600 adjusts the depth of field characteristics of objects (e.g., illuminating objects 652A, 652B, and 652C and non-illuminating object 654) in the stored image representation 648 based on the focal point of the stored image representation 648 (e.g., the nose of the subject 650).
[0187] As indicated by f-number indicator 638, the current f-number (4.9) increases from the previous (saved) f-number (1.6) as a result of swipe gesture 619. Thus, luminous objects 652A, 652B, and 652C have less blurred, smaller, less bright, less saturated, and / or less distorted shapes (and are more “sharp”) in FIG. 6O (with a 4.9 f-number) than in FIG. 6N (with a 1.6 f-number); similarly, non-luminous object 654 has less blurred, smaller, less bright, less saturated, and / or less distorted shapes, and is even sharper, in FIG. 6O than in FIG. 6N. The degree of change in the degree of blurriness, size, brightness, saturation, and / or shape distortion (and increased sharpness) of objects from the previous f-number (1.6) to the higher f-number (4.9) is more dramatic for luminous objects compared to non-luminous objects. As mentioned above, the variation of depth of field characteristics of objects within an image representation is described in more detail below with reference to Figures 8A-8R.
[0188] In FIG. 6O, electronic device 600 detects (eg, via the touch-sensitive surface of display 602) swipe gesture 621 (eg, a continuation of swipe gesture 619) on depth adjustment slider 632.
[0189] In FIG. 6P, in response to detecting the swipe gesture 621, the electronic device 600 further adjusts the depth of field characteristics of the objects (e.g., illuminating objects 652A, 652B, and 652C and non-illuminating object 654) in the stored image representation 648 based on the focal point of the stored image representation 648 (e.g., the nose of the subject 650).
[0190] As indicated by f-number indicator 638, the current f-number (8.7) increases from the previous f-number (4.9) as a result of swipe gesture 621. Thus, luminous objects 652A, 652B, and 652C appear less blurry, smaller, less bright, less saturated, and / or less distorted (and sharper, thus closer to their actual shape without image distortion) in Figure 6P (with an 8.7 f-number) than in Figure 6O (with a 4.9 f-number), and similarly, non-luminous object 654 appears less blurry, smaller, less bright, less saturated, and / or less distorted (and sharper, thus closer to their actual shape without image distortion) in Figure 6P than in Figure 6O. The degree of change in the degree of blurriness, size, brightness, saturation, and / or shape distortion of objects (and increased sharpness) from a previous f-stop (5) to a higher f-stop (10) is more dramatic for luminous objects compared to non-luminous objects. As noted above, changes in the depth-of-field characteristics of objects within an image representation are described in more detail below with reference to Figures 8A-8R.
[0191] Figure 6Q shows electronic device 600 displaying settings user interface 660 of an image capture application on display 602. In Figure 6Q, while displaying settings user interface 660, the electronic device detects (e.g., via the touch-sensitive surface of display 602) activation 623 of save settings affordance 662 of settings user interface 660 (e.g., a tap gesture to save settings affordance 662).
[0192] 6R , in response to detecting activation 623 of saved settings affordance 662, electronic device 600 displays saved settings user interface 664 associated with the image capture application and the stored image application on display 602. Saved settings user interface 664 includes creative control options 666 (e.g., with corresponding toggles 668) for activating or deactivating creative control. In some embodiments, when creative control is active, electronic device 600 saves previously set image effect settings (e.g., including simulated depth effect settings) when the image capture application and / or the stored image application are closed and relaunched (such that previously set image effect settings, such as a previously set f-stop, are automatically reloaded and applied to the displayed image representation). In some embodiments, when creative control is inactive, electronic device 600 does not save previously set image effect settings, and when the image capture application and / or the stored image application are relaunched, the image effect settings (including depth effect settings) are restored to default values.
[0193] 6S shows an electronic device 670 (e.g., a laptop computer) having a display 672 and a front-facing camera 674. In some embodiments, the electronic device 670 also includes a rear-facing camera.
[0194] 6S , electronic device 670 displays a user interface 676 of an image application (e.g., corresponding to an image capture application or a stored image application) on display 672, and an image representation 678 corresponding to image representation 618 is displayed within user interface 676. Electronic device 670 also displays a depth adjustment slider 680 similar to depth adjustment slider 632 within user interface 676 (e.g., below image representation 678). Depth adjustment slider 680 includes a plurality of scales 682 corresponding to f-stops and a pointer 684 that indicates the currently selected scale (and thus the currently selected f-stop). Depth adjustment slider 680 also includes an f-stop indicator 686 (e.g., located adjacent to the slider) that indicates the value of the currently selected f-stop. In some embodiments, a cursor 688 can be used to navigate pointer 684 over scale 682, thereby changing the f-stop to adjust the simulated depth effect of image display 678.
[0195] 6T shows an electronic device 690 (e.g., a tablet computer, a laptop computer with a touch-sensitive display) having a display 692. In some embodiments, the electronic device 690 also includes a front-facing camera and / or a rear-facing camera.
[0196] 6T , electronic device 690 displays a user interface 694 of an image application (e.g., corresponding to an image capture application or a stored image application) on display 692, and an image representation 696 corresponding to image representation 618 is displayed in user interface 694. Electronic device 690 also displays (e.g., vertically) a depth adjustment slider 698 similar to depth adjustment slider 632 within user interface 694 (e.g., adjacent to image representation 696). Depth adjustment slider 698 includes a plurality of scales 699 corresponding to f-stops and a pointer 697 that indicates the currently selected scale (and thus the currently selected f-stop). Depth adjustment slider 698 also includes an f-stop indicator 695 (e.g., located below or adjacent to the slider) that indicates the value of the currently selected f-stop.
[0197] In some embodiments, the depth adjustment slider 698 can be adjusted via a vertical swipe gesture such that the scale 699 moves relative to a fixed pointer 697. In some embodiments, the depth adjustment slider 698 can be adjusted via a vertical swipe gesture such that the pointer 697 moves relative to a fixed scale 699.
[0198] In some examples, the electronic device 690 also displays a plurality of lighting settings 693 (e.g., in an area of the user interface 694 adjacent to the image representation 696, in an area of the user interface 694 adjacent to the image representation 696 and opposite the depth adjustment slider 698) corresponding to various lighting / light filtering options that can be applied to the image representation 696 and changed via a vertical swipe gesture. In some examples, the depth adjustment slider 698 and the lighting settings 693 can be adjusted in parallel, and the parallel adjustments can be reflected in the image representation 696 simultaneously.
[0199] 7A-7B are flow diagrams illustrating a method for managing a user interface for adjusting a simulated depth effect, according to some embodiments. Method 700 is performed on a device (e.g., 100, 300, 500, 600) having a display and one or more input devices (e.g., a touch-sensitive surface of the display, a mechanical input device). Some operations of method 700 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.
[0200] As described below, method 700 provides an intuitive way to manage a user interface for simulated depth effects. This method reduces the cognitive burden on a user to manage and navigate the user interface for simulated depth effects, thereby creating a more efficient human-machine interface. For battery-operated computing devices, providing easy management of a user interface for simulating depth effects allows a user to navigate the user interface faster and more efficiently, thereby conserving power and increasing the time between battery charges.
[0201] An electronic device (eg, 600) displays (702) a representation of the image data (eg, 618, a displayed image corresponding to the image data, a portrait of a person / subject) on a display (eg, 602).
[0202] In some embodiments, the representation of the image data (e.g., 618) is a live feed image currently being captured by one or more cameras of the electronic device (e.g., 600). In some embodiments, the representation of the image data (e.g., 648) is a previously captured image stored in and retrieved from memory (of the electronic device or an external server). In some embodiments, the depth data of the image can be adjusted / manipulated to apply depth effects to the representation of the image data.
[0203] In some embodiments, the image data includes at least two components: RGB components that encode the visual characteristics of the captured image, and depth data that encodes information about the relative spatial relationships of elements within the captured image (e.g., the depth data encodes that the user is in the foreground and that background elements, such as trees located behind the user, are in the background).
[0204] In some embodiments, the depth data is a depth map. In some embodiments, a depth map (e.g., a depth map image) includes information (e.g., values) related to the distance of objects in a scene from a viewpoint (e.g., a camera). In one embodiment of a depth map, each depth pixel defines a position in the z-axis of the viewpoint where its corresponding two-dimensional pixel is located. In some examples, a depth map consists of pixels, each defined by a value (e.g., 0 to 255). For example, a value of "0" represents a pixel located furthest in a "three-dimensional" scene, and a value of "255" represents a pixel located closest to the viewpoint (e.g., a camera) in a "three-dimensional" scene. In other examples, a depth map represents the distance between an object in a scene and the plane of the viewpoint. In some embodiments, a depth map includes information about the relative depth of various features of an object of interest as seen by a depth camera (e.g., the relative depth of the eyes, nose, mouth, and ears on a user's face). In some embodiments, a depth map includes information that enables a device to determine the contours of an object of interest in the z-direction. In some embodiments, the depth data has a second depth component (e.g., a second portion of the depth data encoding a spatial location of a background within the camera viewing area, a plurality of depth pixels forming a discrete portion of a depth map, such as the background) separate from the first depth component, and the second depth aspect includes a representation of the background in the camera viewing area. In some embodiments, the first depth aspect and the second depth aspect are used to determine a spatial relationship between an object within the camera viewing area and a background within the camera viewing area. This spatial relationship can be used to distinguish the object from the background. This distinction can be utilized, for example, to apply different visual effects (e.g., visual effects having a depth component) to the object and the background. In some embodiments, all areas of the image data that do not correspond to the first depth component (e.g., areas of the image data outside the range of the depth camera) are adjusted based on different degrees of blurriness / sharpness, size, brightness, saturation, and / or shape distortion to simulate depth effects such as a bokeh effect.
[0205] In some embodiments, displaying the representation of the image data on the display further includes, in accordance with a determination that the representation of the image data corresponds to stored image data (e.g., a representation of a stored / saved image or a previously captured image), displaying the representation of the image data with the previous simulated depth effect previously modified by the previous first value for the simulated depth effect. In some embodiments, the display of the image data (e.g., 648) corresponds to stored image data when the camera / image application for displaying the representation of the image data is in an editing mode (e.g., a mode for editing an existing / previously captured image or photo). In some embodiments, if the representation of the image data corresponds to stored image data with the previous simulated depth effect, the electronic device (e.g., 600) automatically displays the adjustable slider upon (e.g., concurrently with) displaying the representation of the image data (e.g., within the camera / image application). Thus, in some embodiments, the adjustable slider (e.g., 632) is displayed with the representation of the image data even without the first input. In some embodiments, whether an adjustable slider is automatically displayed when displaying a representation of image data (if the image data is already associated with a previous simulated depth effect) depends on the type of electronic device (e.g., whether the electronic device is a smartphone, a smartwatch, a laptop computer, or a desktop computer).
[0206] While displaying a representation (e.g., 618, 648) of image data having a simulated depth effect (e.g., a depth effect, such as a bokeh effect, applied to the representation based on manipulation of underlying data to artificially generate the effect) modified by a first value of a plurality of selectable values for the simulated depth effect, the electronic device (e.g., 600) detects a first input (e.g., 605, 607, activation of an affordance displayed on the display, a gesture on the image, such as a slide-up gesture, detected via the touch-sensitive surface of the display) via one or more input devices (706).
[0207] In some embodiments, while displaying a representation of image data (e.g., 618, 648) on a display (e.g., 602), the electronic device (e.g., 600) displays a simulated depth effect adjustment affordance (e.g., 630) on the display (e.g., within an affordance area (e.g., 628A) corresponding to different types of effects that can be applied to the representation of the image data (704), and the first input is activation of the simulated depth effect adjustment affordance (e.g., 605, a tap gesture). In some embodiments, the simulated depth effect adjustment affordance includes a symbol indicating that the affordance is associated with a depth effect, such as an f-stop symbol. Displaying a simulated depth effect adjustment affordance that includes a symbol indicating that the affordance is associated with a depth effect while displaying the representation of image data improves visual feedback by allowing a user to quickly and easily recognize that adjustments to depth-of-field characteristics can be made to the representation of the image data. Providing improved visual feedback to the user improves usability of the device, makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate input when operating / interacting with the device and reducing user errors), and also reduces power usage and improves the battery life of the device by allowing the user to use the device more quickly and efficiently.
[0208] In some embodiments, a simulated depth effect (as opposed to a "natural" effect, e.g., based on underlying data originally captured via one or more cameras) is "simulated" in that it is (artificially) generated based on the manipulation of underlying image data to create an effect and apply it to a corresponding representation of the image data (e.g., 618, 648).
[0209] In some embodiments, before detecting a first input (e.g., 605, 607), the simulated depth effect adjustment affordance (e.g., 630) is displayed with a first visual characteristic (e.g., a particular color indicating that the affordance is not currently selected, such as a default color or white). In some embodiments, after detecting the first input, the simulated depth effect adjustment affordance is displayed with a second visual characteristic different from the first visual characteristic (e.g., a particular color indicating that the affordance is currently selected, such as a highlight color or yellow). Changing the visual characteristic of the simulated depth effect adjustment affordance improves visual feedback by allowing a user to quickly and easily recognize that a simulated depth effect feature is active. Providing improved visual feedback to the user improves device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing power usage and improving the device's battery life by allowing the user to use the device more quickly and efficiently.
[0210] In some embodiments, displaying the simulated depth effect adjustment affordance (e.g., 630) includes forgoing displaying the currently selected depth effect value within the simulated depth effect adjustment affordance pursuant to a determination that the currently selected depth effect value corresponds to a default depth effect value (e.g., a default f-stop value determined / set by the electronic device). In some embodiments, the default depth effect value is a 4.5 f-stop. In some embodiments, displaying the simulated depth effect adjustment affordance includes displaying the currently selected depth effect value within the simulated depth effect adjustment affordance (e.g., adjacent to an f-stop symbol) pursuant to a determination that the currently selected depth effect value corresponds to a non-default depth effect value (e.g., any f-stop within the range of available f-stops that does not correspond to the default f-stop).
[0211] In some embodiments, before detecting the first input (e.g., 605, 607), the electronic device (e.g., 600) displays on the display (e.g., 602) one or more mode selector affordances (e.g., an area having one or more affordances for changing a camera-related operational mode of the electronic device, such as a camera mode selector affordance), and displaying the adjustable slider (e.g., 632) includes replacing the display of the one or more mode selector affordances with the adjustable slider. Replacing the display of the one or more mode selector affordances with the adjustable slider provides improved visual feedback, allowing a user to quickly and easily recognize that the device is currently in a depth effect adjustment mode. Providing the user with improved visual feedback improves device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing power usage and improving the device's battery life by allowing the user to use the device more quickly and efficiently.
[0212] In some embodiments, before detecting the first input, the electronic device (e.g., 600) displays a zoom control element (e.g., an area having one or more affordances for changing the zoom level of the camera) on the display (e.g., 602), and displaying the adjustable slider (e.g., 632) includes replacing the display of the zoom control element.
[0213] In some embodiments, the first input (e.g., 607) is a swipe gesture in a first direction on a first portion of the user interface (e.g., 614, a swipe up gesture on the touch-sensitive surface of the display). In some embodiments, the swipe gesture is a swipe up gesture over an area of the display corresponding to a representation of image data. In some embodiments, the swipe gesture is a swipe up gesture over an area of the display corresponding to a bottom edge of the representation image data (e.g., 618). In some embodiments, if the swipe is in a second direction, the adjustable slider is not displayed, and optionally a different operation is performed (e.g., switching camera modes or performing a zoom operation). In some embodiments, if the swipe is on a second portion of the user interface, the adjustable slider is not displayed, and optionally a different operation is performed. Improves usability of the device by providing additional control options (without cluttering the user interface with additional controllers that are displayed), makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs and reducing user errors when operating / interacting with the device), and also reduces power usage and improves the battery life of the device by allowing the user to use the device more quickly and efficiently.
[0214] In response to detecting a first input (e.g., 605, 607), the electronic device (e.g., 600) displays (708) on the display (e.g., 602) (e.g., below, adjacent to the representation of the image data) an adjustable slider (e.g., 632) (e.g., a horizontal or vertical slider including multiple scales and needles) associated with manipulating the representation of the image data (e.g., a depth effect in the representation of the image data, manipulating a depth-of-field effect in the representation of the image data). The adjustable slider includes (710) multiple option indicators (e.g., 634, represented as scales, reference marks) corresponding to multiple selectable values for the simulated depth effect (e.g., (simulated) depth of field, f-number / f-stop). In some embodiments, the multiple option indicators are slidable (e.g., horizontally or vertically) within the adjustable slider. The adjustable slider also includes a selection indicator (eg, 636, represented as a needle) that indicates that the first value is the currently selected simulated depth effect value (712).
[0215] In some embodiments, the selection indicator (e.g., 636, needle) is fixed in position, and the multiple option indicators (e.g., 634, scale) are adjustable within the slider (e.g., 632) such that the multiple option indicators move relative to the selection indicator to adjust the currently selected depth of field value. In some embodiments, only a subset of all available option indicators are displayed in parallel within the slider - non-displayed option indicators are displayed within the slider in response to slider adjustment (e.g., user input moving an option indicator horizontally or vertically).
[0216] In some embodiments, the multiple option indicators (e.g., 634) are fixed and the position of the selection indicator (e.g., 636) is adjustable within a slider such that the selection indicator moves relative to the multiple option indicators to adjust the currently selected depth of field value.
[0217] In some embodiments, in response to detecting a first input (e.g., 605, 607), the electronic device (e.g., 600) slides (714) a representation of image data (e.g., 618) on the display (e.g., 602) (e.g., sliding it up vertically a predetermined amount) and displays (e.g., reveals) an adjustable slider (e.g., 632) (e.g., sliding the representation of image data in a direction corresponding to the direction of the swipe input).
[0218] While displaying the adjustable slider (eg, 632), the electronic device (eg, 600) detects (716) input to the adjustable slider via one or more input devices.
[0219] In some embodiments, the input (e.g., 609, 611, 619, 621) to the adjustable slider (e.g., 632) is a (horizontal) swipe gesture (e.g., a left swipe gesture or a right swipe gesture) on the adjustable slider, where the swipe gesture includes user movement (e.g., with a finger) in a first direction with at least a first velocity (greater than a threshold velocity) at the end of the swipe gesture (e.g., the velocity of movement of the contact performing the swipe gesture at or near the time the contact is lifted off the touch-sensitive surface).
[0220] In response to detecting (718) an input (e.g., 609, 611, 619, 621) to an adjustable slider (e.g., 632) (e.g., a tap or swipe at a location corresponding to the adjustable slider), the electronic device (e.g., 600) moves (720) the adjustable slider to indicate that a second value of a plurality of selectable values for the simulated depth effect is the currently selected simulated depth effect value.
[0221] In response to detecting 718 an input to the adjustable slider (e.g., a tap or swipe at a location corresponding to the adjustable slider), the electronic device (e.g., 600) changes 722 the appearance of the representation of the image data (e.g., 618, 648) according to the simulated depth effect modified by the second value. Changing the appearance of the representation of the image data in response to detecting 718 an input to the adjustable slider improves visual feedback by allowing a user to quickly and easily view changes to the representation of the image data caused by the user's input. Providing improved visual feedback to the user improves device usability, makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate input when operating / interacting with the device and reducing user errors), and additionally reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and efficiently.
[0222] In some embodiments, moving the adjustable slider (e.g., 632) involves moving a plurality of option indicators (e.g., 634 represented as tick marks) while the selection indicator (e.g., 636 represented as a pointer) remains fixed. Thus, in some embodiments, moving the adjustable slider involves sliding a plurality of tick marks corresponding to f-numbers while the pointer remains fixed in the same position within the slider. In some embodiments, moving the adjustable slider involves moving the selection indicator (e.g., represented as a pointer) while the plurality of option indicators (e.g., represented as tick marks) remain fixed. Thus, in some embodiments, moving the adjustable slider involves sliding the pointer back and forth over a plurality of tick marks corresponding to f-numbers while the tick marks remain fixed in the same position within the slider.
[0223] In some embodiments, while moving an adjustable slider (e.g., 632) (e.g., by moving the multiple option indicators relative to a fixed selection indicator, or by moving the selection indicator relative to a fixed option indicator), the electronic device (e.g., 600) generates (724) a first type of output (e.g., a tactile output, an audio output) in synchronization with the movement of the adjustable slider (e.g., via one or more tactile output generators and / or one or more speakers of the electronic device) when a different value is selected for the parameter controlled by the adjustable slider. In some embodiments, the electronic device generates a discrete output (e.g., a discrete tactile output, a discrete audio output) each time the selection indicator aligns with or passes through an option indicator of the multiple option indicators. Generating a first type of output (e.g., a tactile output, an audio output) in synchronization with the movement of the adjustable slider when a different value is selected for the parameter controlled by the adjustable slider improves feedback by providing a coordinated response to the user's input. Providing improved visual feedback to the user improves usability of the device, makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate input when operating / interacting with the device and reducing user errors), and also reduces power usage and improves the battery life of the device by allowing the user to use the device more quickly and efficiently.
[0224] In some embodiments, in response to a determination that the representation of the image data (e.g., 618, 648) corresponds to stored image data (e.g., a representation of a stored / saved image or a previously captured image) while the adjustable slider (e.g., 632) is being moved, the first type of output includes an audio output (e.g., generated via one or more speakers of the electronic device and / or generated via one or more tactile output generators of the electronic device) (726). In some embodiments, in response to a determination that the representation of the image data corresponds to a live preview of image data being captured by one or more cameras while the adjustable slider is being moved, the first type of output does not include an audio output (e.g., generated via one or more speakers of the electronic device and / or generated via one or more tactile output generators of the electronic device) (728). In some embodiments, the representation of the image data corresponds to stored image data when the camera / image application for displaying the representation of the image data is in an editing mode (e.g., a mode for editing an existing / previously captured image or photo).
[0225] It should be noted that the details of the processes described above with respect to method 700 (e.g., FIGS. 7A-7B) are also applicable in an analogous manner to the methods described below. For example, method 900 optionally includes one or more of the characteristics of the various methods described above with reference to method 700. For example, as described in method 900, a simulated depth effect applied to an image representation can be adjusted using a depth adjustment slider described in method 700. In another example, method 1100 optionally includes one or more of the characteristics of the various methods described above with respect to method 700. For example, as described in method 1100, a notification regarding detected interference can be associated with detected magnetic interference that may interfere with one or more depth sensors used to simulate a depth effect. For the sake of brevity, these details will not be repeated below.
[0226] 8A-8R show example user interfaces for displaying adjustments to simulated depth effects (e.g., bokeh effects) according to some embodiments. The user interfaces in these figures are used to illustrate the processes described below, including the processes in FIGS. 9A-9B.
[0227] Figure 8A shows electronic device 600 as described above with reference to Figures 6A-6T. In Figure 8A, electronic device 600 displays user interface 804 of an image capture application on display 602, with the image capture application in portrait mode. While in portrait mode, user interface 804 displays depth effect affordance 810 (e.g., corresponding to depth effect affordance 630) (e.g., above or adjacent to image display area 806).
[0228] The electronic device 600 also displays in the image display area 806 an image representation 808 of image data captured via the rear camera 608. In this example, the image representation 808 does not include an object (e.g., a person) because the object is not within the field of view of the rear camera 608.
[0229] In portrait mode, electronic device 600 displays a subject marker 812 in image representation 808 indicating that, to properly achieve portrait mode, the subject must be placed within the general area of image representation 808 occupied by the marker. Because no subject is currently detected, electronic device 600 displays a message 814 (e.g., at the top of image display area 806) requesting that the subject be placed within the environment corresponding to the area of image representation 808 occupied by subject marker 812.
[0230] 8B, a real object in a real environment is detected within the field of view of rear camera 608. Upon detecting the real object, electronic device 600 displays object 816 in image representation 808 that corresponds to the real object detected within the field of view of rear camera 608.
[0231] In FIG. 8C , following a determination that the subject 816 is within the general area of the image representation 808 indicated by the subject marker 812, the electronic device 600 provides an indication via the subject marker 812 (e.g., by a marker that "locks onto" the subject, by changing visual characteristics, such as by changing to a different color) that the subject is within the general area of the image representation 808 occupied by the subject marker 812 to appropriately achieve portrait mode.
[0232] In some embodiments, if a subject is detected but too far away from electronic device 600 (e.g., more than a predetermined distance from the device, such as more than 10 feet from the device) to fully achieve portrait mode, electronic device 600 displays a notification indicating that the subject should be placed closer to the device. In some embodiments, if a subject is detected but too close to electronic device 600 (e.g., less than a predetermined distance from the device, such as less than 1 foot from the device) to fully achieve portrait mode, electronic device 600 displays a notification indicating that the subject should be placed farther away from the device.
[0233] Upon detecting subject 816 within the general area of image representation 808 indicated by subject's marker 812, electronic device 600 activates portrait mode. Activating portrait mode causes electronic device 600 to adjust image representation 812 by applying a simulated depth effect (e.g., a bokeh effect, the simulated depth effect described above with respect to image representation 618) to objects in image representation 808 using a default f-number (e.g., 4.5) based on the focal point in image representation 808 (e.g., the nose of subject 816). In this example, image representation 808 includes luminous objects 818A, 818B, 818C, and 818D, and non-luminous objects 820A and 820B. In some embodiments, the simulated depth effect is also applied to portions of subject 816 that do not correspond to the focal point (e.g., portions of subject 816 other than the subject's nose).
[0234] In FIG. 8D , while displaying image representation 808 in which subject 816 has been detected, electronic device 600 detects activation 801 of depth effect affordance 810 (e.g., via the touch-sensitive surface of display 602).
[0235] In FIG. 8E , in response to detecting activation 810 of depth effect affordance 810, electronic device 600 displays (e.g., in a menu region of user interface 804 below image display region 806) a depth adjustment slider 822 (corresponding to depth adjustment slider 632 described above with reference to FIGS. 6A-6R ). Like depth adjustment slider 632, depth adjustment slider 822 includes a number of scales 824 corresponding to f-stops, a pointer 824 indicating the currently selected scale (and thus the currently selected f-stop), and an f-stop indicator 828 (e.g., located below or adjacent to the slider) indicating the value of the currently selected f-stop. In FIG. 8E , because the current f-stop is the default f-stop, f-stop indicator 828 indicates the default f-stop (e.g., 4.5). In some embodiments, when depth adjustment slider 822 is activated, in addition to f-stop indicator 828, depth effect affordance 810 also displays the current f-stop.
[0236] In FIG. 8E, while displaying depth adjustment slider 822, electronic device 600 detects (e.g., via the touch-sensitive surface of display 602) a swipe gesture 803 (e.g., a horizontal swipe gesture, a right swipe gesture) on depth adjustment slider 822, thereby sliding scale 824 horizontally relative to fixed pointer 826.
[0237] As shown in FIG. 8F, the swipe gesture 803 slides the depth adjustment slider 822, setting a low f-stop (e.g., 1.6) as the current f-stop, as indicated by the f-stop indicator 828 (and, in some embodiments, also by the depth effect affordance 810).
[0238] In Figure 8F, the electronic device 800 adjusts the image representation 808 to reflect the new depth-of-field value (e.g., 1.6). Specifically, because of the smaller simulated depth-of-field value, the illuminating object 818A is more distorted (e.g., has a blurrier, larger, brighter, more saturated, and / or more distorted shape) in Figure 8F (with an f-number of 1.6) than in Figure 8E (with an f-number of 4.5). Similarly, because of the smaller simulated depth-of-field value, the illuminating object 818B is more distorted (e.g., has a blurrier, larger, brighter, more saturated, and / or more distorted shape) in Figure 8F (with an f-number of 1.6) than in Figure 8E (with an f-number of 4.5). Similarly, due to the smaller simulated depth-of-field value, luminous object 818C is more distorted (e.g., has a blurrier, larger, brighter, more saturated, and / or more distorted shape) in Figure 8F (with an f-number of 1.6) than in Figure 8E (with an f-number of 4.5). Similarly, due to the smaller simulated depth-of-field value, non-luminous object 820A is more distorted (e.g., has a blurrier, larger, brighter, more saturated, and / or more distorted shape) in Figure 8F (with an f-number of 1.6) than in Figure 8E (with an f-number of 4.5). Similarly, due to the smaller simulated depth-of-field value, non-luminous object 820B is more distorted (e.g., has a blurrier, larger, brighter, more saturated, and / or more distorted shape) in Figure 8F (with an f-number of 1.6) than in Figure 8E (with an f-number of 4.5).
[0239] Furthermore, the degree of distortion of the objects (e.g., blurriness, size, brightness, saturation, and / or the degree of distortion in the object's shape relative to the focal point) varies based on each object's distance to the focal point (e.g., the nose of subject 816) of image representation 808. Specifically, each depth pixel (e.g., containing a particular object) in image representation 808 defines a position on the z-axis of the viewpoint at which a corresponding two-dimensional pixel is located, and each pixel is defined by a value (e.g., 0-255, where a value of "0" represents a pixel located furthest in the "three-dimensional" scene and a value of "255" represents a pixel located closest to the viewpoint (e.g., camera) in the "three-dimensional" scene), and the degree of blurriness / sharpness, size, brightness, saturation, and / or shape distortion depends on the distance along the z-axis (value of 0-255). That is, the farther away in the z direction the depth pixels within an object are, the "blurrier" the object will appear in image representation 808, and the closer together in the z direction the depth pixels within an object are, the sharper the object will appear in image representation 808. On the other hand, if image representation 808 is viewed as a two-dimensional x,y plane with a focal point (e.g., the nose of subject 820) at the center of the plane (e.g., the origin), then the linear distance from the (x,y) point of the pixels making up the object in image representation 808 to the center of the plane will affect the degree of shape distortion of the object: the greater the pixel's distance from the center (focal point), the greater the degree of shape distortion, and the smaller the pixel's distance from the center, the less shape distortion.
[0240] For example, in Figure 8F, because object 818B-1 is farther from the focal point (e.g., the nose of subject 816) than object 818B-2, the degree of distortion of object 818B-1 is greater than the change in the degree of distortion of object 818B-2 (e.g., object 818B-1 is relatively blurrier, larger, brighter, more saturated, and / or has greater shape distortion relative to the focal point than object 818B-2). Similarly, in Figure 8F, because object 818C-1 is farther from the focal point (e.g., the nose of subject 816) than object 818C-2, the degree of distortion of object 818C-1 is greater than the degree of distortion of object 818C-2 (e.g., object 818C-1 is relatively "blurrier" and has greater shape distortion relative to the focal point than object 818C-2). The varying degrees of distortion based on the object's distance to the focal point also apply to non-illuminated objects (e.g., objects 820A and 820B), and in some embodiments, to portions of subject 816 that do not correspond to the focal point (e.g., the subject's upper body, portions of the subject's face and head surrounding the focal point).
[0241] Additionally, the degree of distortion of an object (e.g., blurriness, size difference, brightness, saturation, and / or distortion in the shape of the object relative to focus) varies based on the type of object—whether the object corresponds to an illuminating or non-illuminating object. The resulting change in distortion is generally greater for illuminating objects than for non-illuminating objects for the same adjustment of depth of field.
[0242] In some embodiments, the depth of field characteristics of the object are continuously adjusted as the depth adjustment slider 822 is navigated (eg, from 4.5 in FIG. 8E to 1.6 in FIG. 8F).
[0243] In FIG. 8G , while the f-number is set to 1.6, the electronic device 600 detects (e.g., via the touch-sensitive surface of the display 602) a swipe gesture 805 (e.g., a horizontal swipe gesture, a left swipe gesture) on the depth adjustment slider 822, thereby sliding the scale 824 horizontally in the opposite direction relative to the fixed pointer 826.
[0244] As shown in FIG. 8H, the swipe gesture 805 slides the depth adjustment slider 822, setting the current f-stop to a higher f-stop (e.g., 8.7), as indicated by the f-stop indicator 828 (and, in some embodiments, also by the depth adjustment slider 810).
[0245] In Figure 8H, the electronic device 800 adjusts the image representation 808 to reflect the new depth-of-field value (e.g., 8.7). Specifically, because of the larger simulated depth-of-field value, the illuminating object 818A is less distorted (e.g., sharper and more accurately represents its actual form) in Figure 8H (with an f-number of 8.7) than in Figure 8F (with an f-number of 1.6) and Figure 8E (with an f-number of 4.5). Similarly, because of the larger simulated depth-of-field value, the illuminating object 818B is less distorted (e.g., sharper and more accurately represents its actual form) in Figure 8H (with an f-number of 8.7) than in Figure 8F (with an f-number of 1.6) and Figure 8E (with an f-number of 4.5). Similarly, due to the larger simulated depth-of-field value, luminous object 818C is less distorted (e.g., sharper and more accurately represented) in FIG. 8H (with an f-number of 8.7) than in FIG. 8F (with an f-number of 1.6) and FIG. 8E (with an f-number of 4.5). Similarly, due to the larger simulated depth-of-field value, non-luminous object 820A is less distorted (e.g., sharper and more accurately represented) in FIG. 8H (with an f-number of 8.7) than in FIG. 8F (with an f-number of 1.6) and FIG. 8E (with an f-number of 4.5). Similarly, due to the larger simulated depth-of-field value, non-luminous object 820B is less distorted (e.g., sharper and more accurately represented) in FIG. 8H (with an f-number of 8.7) than in FIG. 8F (with an f-number of 1.6) and FIG. 8E (with an f-number of 4.5).
[0246] As already discussed above, the degree of distortion of the objects (e.g., blurriness, size difference, brightness, saturation, degree of distortion in the object's shape relative to focus) varies based on the distance of each object to the focal point (e.g., the nose of subject 816) of image representation 808. Thus, for example, in Figure 8H, because object 818B-1 is farther away from the focal point (e.g., the nose of subject 816) than object 818B-2, the degree of distortion of object 818B-1 is still greater than the degree of distortion of object 818B-2 (e.g., object 818B-1 is still relatively blurrier, larger, brighter, more saturated, and / or has greater shape distortion relative to focus than object 818B-2). Similarly, in FIG. 8H, because object 818C-1 is farther from the focal point (e.g., the nose of subject 816) than object 818C-2, the degree of distortion of object 818C-1 is greater than the degree of distortion of object 818C-2 (e.g., object 818C-1 is relatively blurrier, larger, brighter, more saturated, and / or has greater geometric distortion relative to the focal point than object 818C-2).
[0247] Figures 8I-8M show multiple circular objects 830 (which may be luminous or non-luminous) arranged in a 5x5 grid-like pattern with a focal point at a central object 832. Figures 8I-8M also show a depth adjustment slider 834, which corresponds to depth adjustment slider 822 described above with reference to Figures 8A-8H. Figures 8I-8M, in one embodiment, are provided to further illustrate distortion of objects under different f-stop settings, with the degree of distortion varying based on the distance of the object from the focal point.
[0248] In Figure 8I, the current f-stop is set to 4.5 (e.g., the default f-stop), as indicated by f-stop indicator 836. Figure 8I shows circular object 830 adjusted at the 4.5 f-stop with object 832 as the focal point. As shown in Figure 8I, objects further away from the focal point have more distortion (e.g., blurrier, larger, brighter, more saturated, and / or more distorted shapes) than objects at or near the focal point.
[0249] In Figure 8J, the current f-stop is set to 2.8, as indicated by f-stop indicator 836. Figure 8J shows circular object 830 adjusted at a 2.8 f-stop with object 832 as the focal point. At the lower f-stop, the object is blurred, larger, brighter, more saturated, and / or has a more distorted shape than the corresponding object 830 in Figure 8I, so object 830 in Figure 8J appears "larger." Similar to Figure 8I, in Figure 8J, objects further away from the focal point are more distorted (e.g., blurrier, larger, brighter, more saturated, and / or have a more distorted shape) than objects at or near the focal point.
[0250] In Figure 8K, the current f-stop is set to 1.0, as indicated by f-stop indicator 836. Figure 8K shows circular object 830 adjusted at a 1.0 f-stop with object 832 as the focal point. At a smaller f-stop, the object appears even "larger" in Figure 8K because it is blurrier, larger, brighter, more saturated, and / or has a more distorted shape than the corresponding object 830 in Figure 8J. As in Figures 8I-8J, in Figure 8K, objects further away from the focal point are more distorted (e.g., blurrier, larger, brighter, more saturated, and / or have a more distorted shape) than objects at or near the focal point.
[0251] In Figure 8L, the current f-stop is set to 7.6, as indicated by f-stop indicator 836. Figure 8L shows circular object 830 adjusted at a 7.6 f-stop with object 832 as the focal point. Under the larger f-stop, the object is less blurry, smaller, less bright, less saturated, and rather sharper than the corresponding object 830 in Figure 8I, so object 830 in Figure 8K appears "smaller" than the corresponding object 830 in Figure 8I. Furthermore, similar to Figures 8I-8K, in Figure 8L, objects further away from the focal point are more distorted (e.g., blurrier, larger, brighter, more saturated, and / or have more distorted shapes) than objects at or near the focal point.
[0252] In FIG. 8M, the current f-stop is set to 14, as indicated by f-stop indicator 836. FIG. 8M shows a circular object 830 adjusted at an f-stop of 14 with object 832 as the focal point. At a larger f-stop, the object is less blurry, smaller, less bright, less saturated, and / or has smaller, rather sharper distorted shapes than the corresponding object 830 in FIG. 8L, so object 830 in FIG. 8M appears even "smaller" than the corresponding object 830 in FIG. 8L. Thus, object 830 in FIG. 8M is more of a "true" circle than object 830 in FIGS. 8I-8L. Note that, similar to FIGS. 8I-8L, in FIG. 8M, objects further away from the focal point are more distorted (e.g., blurrier, larger, brighter, more saturated, and / or have more distorted shapes) than objects at or near the focal point.
[0253] Figures 8N-8R (similar to Figures 81-8M) show multiple circular objects 838 (which may be luminous or non-luminous objects) arranged in a 5x5 grid-like pattern with a focal point at a central object 840. Figures 8N-8R also show a depth adjustment slider 834, which corresponds to depth adjustment slider 822 described above with reference to Figures 8A-8H. Figures 8N-8R are provided to further illustrate, in another embodiment, the distortion of objects under different f-stop settings, with the degree of distortion varying based on the distance of the objects from the focal point.
[0254] In Figure 8N, the current f-stop is set to 4.5 (e.g., the default f-stop), as indicated by f-stop indicator 836. Figure 8N shows circular object 838 adjusted at the 4.5 f-stop with object 840 as the focal point. As shown in Figure 8N, objects further away from the focal point have more distortion (e.g., are blurrier, larger, brighter, more saturated, and / or have more distorted shapes) than objects at or near the focal point.
[0255] In Figure 8O, the current f-stop is set to 2.8, as indicated by f-stop indicator 836. Figure 8O shows a circular object 838 adjusted at a 2.8 f-stop with object 834 as the focal point. At a smaller f-stop, the object 838 in Figure 8O appears "larger" because it is blurrier, larger, brighter, more saturated, and / or has a more distorted shape than the corresponding object 838 in Figure 8N. As in Figure 8N, in Figure 8O, objects further away from the focal point are more distorted (e.g., blurrier, larger, brighter, more saturated, and / or have a more distorted shape) than objects at or near the focal point.
[0256] In Figure 8P, the current f-stop is set to 1.0, as indicated by f-stop indicator 836. Figure 8P shows circular object 838 adjusted at a 1.0 f-stop with object 840 as the focal point. At even smaller f-stops, object 838 in Figure 8P appears even "larger" because the object is blurred, larger, brighter, more saturated, and / or has a more distorted shape than the corresponding object 838 in Figure 8O. As with Figures 8N-8O, in Figure 8P, objects further away from the focal point are more distorted (e.g., blurrier, larger, brighter, more saturated, and / or have a more distorted shape) than objects at or near the focal point.
[0257] In Figure 8Q, the current f-stop is set to 7.6, as indicated by f-stop indicator 836. Figure 8Q shows circular object 838 adjusted with an f-stop of 7.6 relative to object 840 as the focal point. Under the larger f-stop, the object is less blurry, smaller, less bright, less saturated, and even sharper than the corresponding object 838 in Figure 8N, so object 838 in Figure 8Q appears "smaller" than the corresponding object 838 in Figure 8N. Note that, similar to Figures 8N-8P, in Figure 8Q, objects further away from the focal point have more distortion (e.g., are blurrier, larger, brighter, more saturated, and / or have more distorted shapes) than objects at or near the focal point.
[0258] In FIG. 8R, the current f-stop is set to 14, as indicated by f-stop indicator 836. FIG. 8R shows a circular object 838 adjusted at an f-stop of 14 with object 840 as the focal point. At a larger f-stop, the object is less blurry, smaller, less bright, less saturated, and / or has smaller, more sharply distorted shapes than the corresponding object 838 in FIG. 8Q, so object 838 in FIG. 8R appears even "smaller" than the corresponding object 838 in FIG. 8Q. Thus, object 838 in FIG. 8R is a "truer" circle than object 838 in FIGS. 8N-8Q. Note that, similar to FIGS. 8N-8Q, in FIG. 8R, objects further away from the focal point are more distorted (e.g., blurrier, larger, brighter, more saturated, and / or have more distorted shapes) than objects at or near the focal point.
[0259] 9A-9B are flow diagrams illustrating a method for managing a user interface for displaying adjustments to a simulated depth effect, according to some embodiments. Method 900 is performed on a device (e.g., 100, 300, 500, 600) having a display and one or more input devices (e.g., a touch-sensitive surface of the display, a mechanical input device). Some operations of method 900 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.
[0260] As described below, method 900 provides an intuitive way to manage a user interface for simulated depth effects. This method reduces the cognitive burden on a user to manage and navigate the user interface for simulated depth effects, thereby creating a more efficient human-machine interface. For battery-operated computing devices, providing easy management of a user interface for simulating depth effects allows a user to navigate the user interface faster and more efficiently, thereby conserving power and increasing the time between battery charges.
[0261] An electronic device (e.g., 600) receives (902) a request via one or more input devices to apply a simulated depth effect to a representation of image data (e.g., 808, a displayed image corresponding to the image data, a portrait image of a person / subject), and depth data for a subject in the representation of the image data is available.
[0262] In some embodiments, the representation of the image data (e.g., 808) is a live feed image currently being captured by one or more cameras of the electronic device. In some embodiments, the representation of the image data is a previously captured image stored in and retrieved from memory (either on the electronic device or an external server). In some embodiments, the depth data of the image can be adjusted / manipulated to apply depth effects to the representation of the image data.
[0263] In some embodiments, the image data includes at least two components: RGB components that encode the visual characteristics of the captured image, and depth data that encodes information about the relative spatial relationships of elements within the captured image (e.g., the depth data encodes that the user is in the foreground and that background elements, such as trees located behind the user, are in the background).
[0264] In some embodiments, the depth data is a depth map. In some embodiments, a depth map (e.g., a depth map image) contains information (e.g., values) related to the distance of objects in a scene from a viewpoint (e.g., a camera). In one embodiment of a depth map, each depth pixel defines a location in the z-axis of the viewpoint where its corresponding two-dimensional pixel is located. In some examples, a depth map consists of pixels, each defined by a value (e.g., 0 to 255). For example, a value of "0" represents a pixel located furthest away in a "three-dimensional" scene, and a value of "255" represents a pixel located closest to the viewpoint (e.g., a camera) in a "three-dimensional" scene. In other examples, a depth map represents the distance between an object in a scene and the plane of the viewpoint. In some embodiments, a depth map contains information about the relative depth of various features of an object of interest as seen by a depth camera (e.g., the relative depth of the eyes, nose, mouth, and ears on a user's face). In some embodiments, a depth map contains information that enables a device to determine the contours of an object of interest in the z-direction. In some embodiments, the depth data has a second depth component (e.g., a second portion of the depth data encoding a spatial location of a background within the camera viewing area, a plurality of depth pixels forming a discrete portion of a depth map, such as the background) separate from the first depth component, and the second depth aspect includes a representation of the background in the camera viewing area. In some embodiments, the first depth aspect and the second depth aspect are used to determine a spatial relationship between an object within the camera viewing area and a background within the camera viewing area. This spatial relationship can be used to distinguish the object from the background. This distinction can be utilized, for example, to apply different visual effects (e.g., visual effects having a depth component) to the object and the background. In some embodiments, all areas of the image data that do not correspond to the first depth component (e.g., areas of the image data outside the range of the depth camera) are adjusted based on different degrees of blurriness / sharpness, size, brightness, saturation, and / or shape distortion to simulate depth effects such as a bokeh effect.
[0265] In some embodiments, the request corresponds to an adjustment (e.g., a horizontal or vertical sliding gesture) of an adjustable slider (e.g., 822) associated with modifying / adjusting a simulated depth effect that is applied / has been applied to a representation of image data (e.g., 808). Using an adjustable slider to apply a simulated depth effect to a representation of image data enhances visual feedback by allowing a user to quickly and easily view adjustments made by the user. Providing improved visual feedback to the user improves usability of the device, makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and additionally reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and efficiently.
[0266] In some embodiments, a simulated depth effect (as opposed to a "natural" effect based on underlying data originally captured via one or more cameras, for example) is "simulated" in that it is (artificially) generated based on the manipulation of underlying image data to create an effect and apply it to a corresponding representation of the image data (e.g., 808).
[0267] In some embodiments, receiving a request to apply a simulated depth effect to a representation of the image data (e.g., 808) via one or more input devices includes detecting one or more inputs via the one or more input devices selecting values for image distortion parameters, and distorting (a portion of) the representation of the image data is based on (and responsive to) the one or more user inputs selecting values for the image distortion parameters (e.g., via movement of an adjustable slider for controlling the parameter). In some embodiments, the adjustable slider is adjusted to distort the representation of the image data (e.g., applying a simulated depth effect), as described above with reference to FIGS. 6A-6T. Providing an adjustable slider used to distort the representation of the image data enhances user convenience by allowing a user to easily and efficiently make adjustments to the displayed representation of the image data. Improved usability of the device by providing additional control options and reducing the number of inputs required to perform actions, making the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs and reducing user errors when operating / interacting with the device), and reducing power usage and improving the device's battery life by allowing the user to use the device more quickly and efficiently.
[0268] In some embodiments, selecting different values for the image distortion parameters causes a first change in a first portion of the representation of the image data and a second change in a second portion of the representation of the image data, the first change being different from the second change, and both the first change and the second change comprising the same type of change (e.g., an increase or decrease in blur, size, brightness, saturation, and / or shape distortion).
[0269] In response to receiving a request (904) to apply a simulated depth effect to a representation of image data (e.g., 808), the electronic device (e.g., 600) displays the representation of the image data with the simulated depth effect on the display (e.g., 602). Displaying the representation of the image data with the simulated depth effect in response to receiving a request to apply a simulated depth effect to the representation of image data allows a user to quickly and easily view and respond to adjustments made to the representation of the image data. The present invention improves device usability by providing convenient control options and reducing the number of inputs required to perform actions, makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs and reducing user errors when operating / interacting with the device), and also reduces power usage and improves device battery life by allowing the user to use the device more quickly and efficiently.
[0270] Displaying a representation (e.g., 808) of image data having a simulated depth effect on a display (e.g., 602) includes distorting (906) a first portion of the representation of the image data having a first depth in a first manner (e.g., a first particular blur / sharpness, a first particular size, a first particular brightness, a first particular saturation, and / or a first particular shape), where the first manner is determined based on the distance of the first portion from a predetermined portion of the representation of the image data (e.g., a center of the camera's field of view or a center of focus of the camera). By allowing a user to adjust the representation of the image data to apply an accurate simulated depth effect, the user can create images / photos similar to those that the user could otherwise obtain only with extensive and / or expensive hardware (e.g., professional-level cameras), thereby enhancing user convenience / efficiency and device usability and versatility. That is, simulated depth effects (software effects) allow users to apply depth effects to images / photographs using smaller and less expensive devices (as opposed to, for example, when a user uses a camera sensor and lens included in / attached to a device that can generate depth effects via optical distortion), which in turn improves usability of the device and makes the user-device interface more efficient (e.g., by helping the user provide appropriate inputs and reducing user errors when operating / interacting with the device), which in turn reduces the device's power usage and improves battery life by allowing the user to use the device more quickly and efficiently.
[0271] Displaying the representation of the image data (e.g., 808) with the simulated depth effect on the display (e.g., 602) also includes distorting a second portion of the representation of the image data with the first depth in a second manner (e.g., a second particular blur / sharpness, a second particular size, a second particular brightness, a second particular saturation, and / or a second particular shape) that is different from the first manner, where the second manner is determined based on the distance of the second portion from a predetermined portion of the representation of the image data. By allowing a user to adjust the representation of the image data to apply an accurate simulated depth effect, the user can create images / photos similar to those that the user could otherwise obtain only using extensive and / or expensive hardware (e.g., a professional-level camera), thereby enhancing user convenience / efficiency and device usability and versatility. That is, simulated depth effects (software effects) allow users to apply depth effects to images / photographs using smaller and less expensive devices (as opposed to, for example, when a user uses a camera sensor and lens included in / attached to a device that can generate depth effects via optical distortion. This, in turn, improves usability of the device and makes the user-device interface more efficient (e.g., by helping the user provide appropriate inputs and reducing user errors when operating / interacting with the device), which in turn reduces the device's power usage and improves battery life by allowing the user to use the device more quickly and efficiently.
[0272] In some embodiments, displaying a representation of the image data (e.g., 808) with a simulated depth effect on the display (e.g., 602) further includes distorting (910) a third portion of the representation of the image data that is the same distance from the first portion and the predetermined portion and has a second depth different from the first depth in the first manner, using a magnitude (of blur / sharpness) determined based on the second depth (e.g., the depth of the third portion). Enabling a user to adjust the representation of the image data to apply an accurate simulated depth effect enhances user convenience / efficiency and device usability and versatility by enabling the user to create images / photographs similar to those that the user could otherwise obtain only using extensive and / or expensive hardware (e.g., professional-level cameras). That is, the simulated depth effect (software effect) allows a user to apply a depth effect to an image / photograph using a relatively small and inexpensive device (as opposed to, for example, if the user used a camera sensor and lens included in / attached to a device capable of generating a depth effect via optical distortion). This in turn improves the usability of the device and makes the user-device interface more efficient (e.g., by helping the user make appropriate inputs and reducing user errors when operating / interacting with the device), which in turn reduces the device's power usage and improves battery life by allowing the user to use the device more quickly and efficiently.
[0273] In some embodiments, displaying a representation of the image data (e.g., 808) with a simulated depth effect on the display (e.g., 602) further includes distorting (912) a fourth portion of the representation of the image data that is the same distance from the second portion as the predetermined portion and has a second depth in a second manner, using a magnitude (of blur / sharpness) determined based on the second depth (e.g., the depth of the fourth portion). Enabling a user to adjust the representation of the image data to apply an accurate simulated depth effect enhances user convenience / efficiency and device usability and versatility by enabling the user to create images / photographs similar to those that could otherwise only be obtained using larger and / or more expensive hardware (e.g., professional-level cameras). That is, the simulated depth effect (software effect) allows a user to apply depth effects to images / photographs using a relatively small and inexpensive device (as opposed to, for example, a user using a camera sensor and lens included in / attached to a device capable of generating depth effects via optical distortion). This in turn improves the usability of the device and makes the user-device interface more efficient (e.g., by helping the user make appropriate inputs and reducing user errors when operating / interacting with the device), which in turn reduces the device's power usage and improves battery life by allowing the user to use the device more quickly and efficiently.
[0274] In some embodiments, displaying the representation of the image data (e.g., 808) with a simulated depth effect on the display (e.g., 602) further includes distorting (914) one or more portions of the representation of the image data in a first manner that have a first depth and are the same distance from the first portion and a predetermined portion (e.g., a reference point or focal point in the representation of the image data). Thus, in some embodiments, portions of the representation of the image data that have the same depth and are the same distance from the predetermined portion of the representation of the image data are distorted in the same manner. By allowing a user to adjust the representation of the image data to apply accurate simulated depth effects, user convenience / efficiency and device usability and versatility are enhanced by enabling a user to create images / photos similar to those that a user could otherwise only obtain using extensive and / or expensive hardware (e.g., professional-level cameras). That is, simulated depth effects (software effects) allow users to apply depth effects to images / photographs using smaller and less expensive devices (as opposed to, for example, when a user uses a camera sensor and lens included in / attached to a device that can generate depth effects via optical distortion. This, in turn, improves usability of the device and makes the user-device interface more efficient (e.g., by helping the user provide appropriate inputs and reducing user errors when operating / interacting with the device), which in turn reduces the device's power usage and improves battery life by allowing the user to use the device more quickly and efficiently.
[0275] In some embodiments, distorting a first portion of the representation of the image data (e.g., 808) in a first manner includes distorting the first portion based on (e.g., by applying) a first distortion shape (e.g., a circular shape or a lemon / oval shape). In some embodiments, distorting a second portion of the representation of the image data in a second manner includes distorting the second portion based on (e.g., by applying) a second distortion shape that is different from the first distortion shape (e.g., a more circular shape or a more lemon / oval shape). In some embodiments, if the second portion is at a greater (farther) distance from the predetermined portion than the first portion, one or more objects (e.g., illuminating objects) in the second portion are distorted in shape to become more lemon / oval-shaped than one or more objects (e.g., illuminating objects) in the first portion.
[0276] In some embodiments, distorting a first portion of the representation of the image data (e.g., 808) in a first manner includes distorting the first portion by a first degree of distortion (e.g., a degree of distortion of the shape of one or more objects within the first portion). In some embodiments, distorting a second portion of the representation of the image data in a second manner includes distorting the second portion by a second degree of distortion (e.g., a degree of distortion of the shape of one or more objects within the second portion) that is greater than the first degree of distortion, the second portion being at a greater distance (farther away) from a predetermined portion (e.g., a reference point or focal point within the representation of the image data) than the first portion. In some embodiments, objects at the periphery of the representation of the image data are distorted to become more lemon / oval-shaped, while objects closer to the predetermined portion (e.g., a central portion, a focal point) are distorted less. In some embodiments, the degree of distortion gradually changes (e.g., increases or decreases) as the distance from the predetermined portion changes.
[0277] In some embodiments, distorting the first portion in a first manner includes blurring the first portion by a first magnitude (e.g., asymmetrically blurring / varying its sharpness). In some embodiments, distorting the first portion in a first manner includes distorting the second portion in a second manner, which includes blurring the second portion by a second magnitude (e.g., asymmetrically blurring / varying its sharpness). In some embodiments, the first magnitude is greater than the second magnitude in accordance with a determination that the distance of the first portion from a predetermined portion is greater than the distance of the second portion from the predetermined portion (e.g., a reference point or focal point within the representation of the image data). In some embodiments, the second magnitude is greater than the first magnitude in accordance with a determination that the distance of the second portion from the predetermined portion is greater than the first portion from the predetermined portion (e.g., a reference point or focal point within the representation of the image data).
[0278] In some embodiments, prior to receiving a request to apply a simulated depth effect to a representation of the image data (e.g., 808), the electronic device (e.g., 600) displays the representation of the image data on a display (e.g., 602). In some embodiments, while displaying the representation of the image data, the electronic device (e.g., 600) uses the image data to detect the presence of a subject (e.g., a person, at least a portion of a person, e.g., a face of the person or a face and upper body of the person) within the representation of the image data (e.g., via analysis of the image data and / or based on user input that identifies an area of the representation of the image data as including a subject, such as a tap input on a live preview of camera data).
[0279] In some embodiments, displaying the representation of the image data (e.g., 808) with simulated depth effects on the display (e.g., 602) further includes distorting the first portion of the image and the second portion of the image without distorting (916) a portion of the representation of the image data that corresponds to (a central portion / region of) the object. In some embodiments, the portion of the representation of the image data that corresponds to the object is distorted less than the first portion of the image and the second portion of the image.
[0280] In some embodiments, distorting a first portion of the representation of the image data comprises distorting the first portion in accordance with a determination that the first portion does not correspond to (a central portion / region of) the object. In some embodiments, distorting a second portion of the representation of the image data comprises distorting the second portion in accordance with a determination that the second portion does not correspond to (a central portion / region of) the object.
[0281] In some embodiments, in response to receiving a request to apply a simulated depth effect to a representation of image data (e.g., 808), the electronic device (e.g., 600) identifies (918) based on the image data (e.g., via analysis of the image data) one or more objects in the representation of the image data that are associated with luminous objects (e.g., 818A, 818B, 818C, 818D) (e.g., as opposed to a representation of image data that is not associated with luminous objects).
[0282] In some embodiments, displaying a representation of the image data (e.g., 808) with simulated depth effects on a display (e.g., 602) further includes modifying (920) the appearance of one or more portions of the representation of the image data that are associated with (e.g., identified as) illuminating objects (e.g., 818A, 818B, 818C, 818D) in a third manner relative to one or more portions of the representation of the image data that are not associated with (e.g., not identified as) illuminating objects (e.g., 820A, 820B). In some embodiments, the third manner involves blurring / sharpening the object to a greater extent compared to the fourth manner. In some embodiments, the third manner involves distorting the shape of the object to a greater extent compared to the fourth manner.
[0283] In some embodiments, modifying the appearance of an object in a representation (e.g., 808) of image data associated with an illuminating object (e.g., 818A, 818B, 818C, 818D) in a third manner includes one or more of: increasing the brightness of one or more portions of the representation of image data associated with the illuminating object relative to other portions of the representation of image data that are not associated with the illuminating object (922); increasing the saturation of one or more portions of the representation of image data associated with the illuminating object relative to other portions of the representation of image data that are not associated with the illuminating object (924); and increasing the size of one or more portions of the representation of image data associated with the illuminating object relative to other portions of the representation of image data that are not associated with the illuminating object (e.g., 820A, 820B) (926).
[0284] In some embodiments, the electronic device (e.g., 600) detects (928) one or more inputs via one or more input devices that change values of the image distortion parameters, and distorting (a portion of) the representation (e.g., 808) of the image data is based on (and responsive to) one or more user inputs that select values of the image distortion parameters (e.g., via movement of an adjustable slider for controlling the parameter). In some embodiments, the adjustable slider (e.g., 822) is adjusted to distort the representation of the image data (e.g., to apply a simulated depth effect thereto). In some embodiments, providing an adjustable slider for distorting the representation of the image data allows a user to quickly and easily provide one or more inputs to change values of the image distortion parameters to distort the representation of the image data. Providing additional control options and reducing the number of inputs required to perform actions improves usability of the device, makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs and reducing user errors when operating / interacting with the device), and additionally reduces power usage and improves the battery life of the device by allowing the user to use the device more quickly and efficiently.In some embodiments, in response to detecting one or more inputs (e.g., 803, 805) that change the value of the image distortion parameter, modify (930) the magnitude of change in appearance of one or more portions of the representation of the image data associated with the light-emitting object (e.g., 818A, 818B, 818C, 818D) relative to other portions of the representation of the image data that are not associated with the light-emitting object (e.g., 820A, 820B) (e.g., gradually increasing the brightness, size, and / or saturation of objects associated with the light-emitting source relative to other portions of the representation of the data as the distortion parameter gradually increases (and the blurring of regions of the temporal image outside the simulated focal plane gradually increases), and gradually decreasing the brightness, size, and / or saturation of objects associated with the light-emitting source relative to other portions of the representation of the data as the distortion parameter gradually decreases (and the blurring of regions of the temporal image outside the simulated focal plane gradually decreases).
[0285] It should be noted that the process details described above with respect to method 900 (e.g., FIGS. 9A-9B) are also applicable in a similar manner to the methods described above and below. For example, method 700 optionally includes one or more of the characteristics of the various methods described above with reference to method 900. For example, the depth adjustment slider described in method 700 can be used to apply a simulated depth effect to objects in the image representation. In another example, method 1100 optionally includes one or more of the characteristics of the various methods described above with respect to method 900. For example, as described in method 1100, a notification regarding detected interference can be associated with detected magnetic interference that may interfere with one or more depth sensors used to simulate a depth effect. For the sake of brevity, these details will not be repeated below.
[0286] 10A-10F illustrate exemplary user interfaces for showing interactions adjusting simulated image effects (e.g., simulated depth effects such as bokeh effects) according to some embodiments. The user interfaces in these figures are used to explain the processes described below, including the process of FIG.
[0287] 10A shows a rear view of electronic device 600. In some embodiments, electronic device 600 includes one or more rear cameras 608 and one or more rear depth camera sensors 1002 (e.g., similar to depth camera sensor 175). In some embodiments, one or more rear cameras 608 are integrated with one or more rear depth camera sensors 1002.
[0288] 10B shows a front view of electronic device 600 having display 602. In some embodiments, electronic device 600 includes one or more front cameras 606 and one or more front depth camera sensors 1004. In some embodiments, one or more front cameras 606 are integrated with one or more rear depth camera sensors 1004.
[0289] 10B, electronic device 600 displays affordance 1006 for launching an image capture application on display 602. Further in FIG. 10B, while displaying affordance 1006, electronic device detects activation 1001 of affordance 1006 (e.g., via the touch-sensitive surface of display 602).
[0290] 10C , in response to detecting activation 1001 of affordance 1006 for launching an image capture application, electronic device 600 displays user interface 1008 of the image capture application (e.g., corresponding to user interface 614 and user interface 804) on display 602. Upon (or prior to / in response to) launching the image capture application, electronic device 600 does not detect interference (e.g., magnetic interference or other external interference, such as from a device accessory) that may disrupt or delay one or more sensors (e.g., one or more depth sensors 1002 and 1004 of the device) used to perform the simulated image effect functionality of the image capture application (e.g., the simulated depth effect described above with reference to FIGS. 6A-6T and 8A-8M). Accordingly, electronic device 600 does not display a notification indicating the presence of interference.
[0291] 10D shows a back view of electronic device 600 where the device is at least partially covered by a protective case 1010 (e.g., a smartphone case). Protective case 1010 includes a magnetic component 1012 (e.g., a magnetic component that is part of an external battery case for fastening the case and device to a holder such as a car mount) that is detectable by one or more sensors of electronic device 600.
[0292] Figure 10E shows a front view of electronic device 600 at least partially covered by protective case 1010. In Figure 10E, electronic device 600 displays affordance 1006 for launching an image capture application on display 602. Further in Figure 10B, while displaying affordance 1006, electronic device detects activation 1003 of affordance 1006 (e.g., via the touch-sensitive surface of display 602).
[0293] 10F , in response to detecting activation 1003 of affordance 1006 for launching an image capture application, electronic device 600 displays user interface 1008 of the image capture application (e.g., corresponding to user interface 614 and user interface 804) on display 602. Upon (or prior to / in response to) launching the image capture application, electronic device 600 detects interference (e.g., magnetic interference) from magnetic component 1012 of protective case 1010.
[0294] 10F, in response to detecting the interference, the electronic device 600 displays a notification 1014 (e.g., on the user interface 1008 of the image capture application) indicating that the interference has been detected, and that due to the interference, one or more simulated image effect features (e.g., including the simulated depth effect features described above with reference to FIGS. 6A-6T and 8A-8M) may be affected by the detected interference. In some embodiments, the notification 1014 also includes an affordance 1016 for dismissing the notification and for continuing to use the simulated image effect features despite the presence of the interference.
[0295] In some embodiments, electronic device 600 displays notification 1014 after previously detecting the presence of interference (e.g., from magnetic component 1012 of protective case 1010) a predetermined number of instances (e.g., after launching an image capture application and detecting interference 3, 5, or 7 times). Thus, in some embodiments, if there were no previous instances of detected interference, electronic device 600 will refrain from displaying notification 1014 upon launching an image capture application despite detecting interference from magnetic component 1012 of protective case 1010.
[0296] In some embodiments, if notification 1014 has already been previously presented on the device, electronic device 600 displays new notification 1014 after detecting the presence of interference (e.g., from magnetic component 1012 of protective case 1010) in more instances than if notification 1014 was previously displayed. For example, if previous notification 1014 was displayed after detecting interference on three previous launches of the image capture application, electronic device 600 will refrain from displaying new notification 1014 until it detects interference on five previous launches of the image capture application.
[0297] In some embodiments, if the notification 1014 has already been presented a predetermined number of times on the device, the electronic device 600 will refrain from presenting the notification despite subsequent instances of detection of interference.
[0298] In some embodiments, in response to detecting activation of affordance 1016, electronic device 600 changes the mode of one or more simulated image effects (including, for example, simulated depth effects) such that one or more features of the image effects are unavailable or are reduced to the bare minimum for use.
[0299] 11 is a flow diagram illustrating a method for managing a user interface for showing interference adjusting simulated image effects, according to some embodiments. Method 1100 is performed on a device (e.g., 100, 300, 500, 600) having a display and one or more sensors including one or more cameras (e.g., one or more cameras, interference detectors capable of detecting interference, such as magnetic interference, originating from sources external to the electronic device). Some operations of method 1100 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.
[0300] As described below, method 1100 provides an intuitive way to manage a user interface for simulated depth effects. This method reduces the cognitive burden on a user to manage and navigate the user interface for simulated depth effects, thereby creating a more efficient human-machine interface. For battery-operated computing devices, providing easy management of a user interface for simulating depth effects allows a user to navigate the user interface faster and more efficiently, thereby conserving power and increasing the time between battery charges.
[0301] While displaying a user interface of a camera application (e.g., 1008) on a display (e.g., 602), the electronic device (e.g., 600) detects (1102) via one or more sensors external interference (e.g., from an accessory attached to, affixed to, covering, or disposed near the electronic device, such as a protective case for the device or an external attachment on the device) (e.g., magnetic interference, interference affecting one or more camera-related functions (e.g., one or more depth-effect-related functions) of the electronic device) that impairs operation of the respective functions of one or more cameras (e.g., 606, 608). Automatically detecting external interference that impairs operation of the respective functions of one or more cameras reduces the number of inputs required from the user to control the device by allowing the user to avoid having to manually check whether there is external interference affecting one or more functions of the device. Reducing the number of inputs required to perform operations enhances device usability, provides a more efficient user-device interface (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and reduces power usage and improves battery life of the device by allowing the user to use the device more quickly and efficiently. Furthermore, automatically detecting external interference impairing the operation of each function of one or more cameras and notifying the user of the detection allows the device to continue operating at a reduced performance level while providing the user with options to correct the problem. This enhances device usability, provides a more efficient user-device interface (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and reduces power usage and improves battery life of the device by allowing the user to use the device more quickly and efficiently.
[0302] In some embodiments, each function is a focus function (1104) of one or more cameras (e.g., 606, 608) of an electronic device (e.g., 600).
[0303] In some embodiments, the interference is magnetic interference (1106) (eg, from 1012).
[0304] In some embodiments, the interference is from (e.g., caused by or detected because of) an accessory (e.g., 1010) of the electronic device (e.g., 600) (e.g., a protective outer case or cover for the electronic device (e.g., a case or cover incorporating a battery), a magnetic sticker or attachment affixed / attached to the electronic device) (1108).
[0305] In some embodiments, detecting external interference (e.g., from 1012) impairing operation of a respective function of one or more cameras (e.g., 606, 608) includes detecting the external interference when displaying a user interface for a camera application (e.g., 1008) on the electronic device (e.g., in response to a user request to display the user interface for the camera application). In some embodiments, the electronic device (e.g., 600) detects external interference impairing operation of a respective function of one or more cameras only when the user interface for the camera application is displayed, and does not detect the external interference after the user interface for the camera application is displayed or when the user interface for the camera application is not displayed on the electronic device. By detecting external interference only when the user interface for the camera application is displayed and not detecting external interference after the user interface for the camera application is displayed or when the user interface for the camera application is not displayed, power consumption due to the detection of external interference is reduced when functionality that may be affected by external interference can be used on the device. Reducing power consumption improves device operability by improving the device's battery life.
[0306] In response to detecting (1110) interference (e.g., from 1012) external to the electronic device (e.g., 600), following a determination that a first criterion has been met (e.g., at least a predetermined number of previous occurrences of the interference have been detected, such as occurrences detected when a camera application was previously launched on the electronic device, including the current occurrence), the electronic device displays (1112) a notification (e.g., 1014) on the display (e.g., 602) indicating that the operational mode (e.g., depth effect mode) of one or more cameras (e.g., 606, 608) has been changed to reduce the impact of the external interference on the respective functions of the one or more cameras. Displaying a notification indicating that the operational mode (e.g., depth effect mode) of one or more cameras has been changed to reduce the impact of the external interference on the respective functions of the one or more cameras improves visual feedback by allowing a user to quickly and easily recognize that the device has changed the operational mode (e.g., depth effect mode) of one or more cameras to reduce the impact of the external interference. Providing improved visual feedback to the user improves usability of the device, makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate input when operating / interacting with the device and reducing user errors), and also reduces power usage and improves the battery life of the device by allowing the user to use the device more quickly and efficiently.
[0307] In response to detecting 1110 interference external to the electronic device (e.g., 600), pursuant to determining that a first criterion is not met (e.g., only a small number of previous interference occurrences, including the current occurrence, were detected), the electronic device (e.g., 600) refrains from displaying 1120 a notification (e.g., 1014) on a display (e.g., 602) indicating that the operational mode (e.g., depth effect mode) of one or more cameras (e.g., 606, 608) has changed. By refraining from displaying a notification when fewer than a predetermined number of previous interference occurrences have been detected, and by refraining from providing notification of a one-time interference detection event (e.g., as opposed to persistent interference detection from a device accessory), device functionality is enhanced and improved. By refraining from providing unnecessary notifications, user convenience and device usability are enhanced, resulting in a more efficient user-device interface, which in turn reduces power usage and improves device battery life by allowing users to use the device more quickly and efficiently.
[0308] In some embodiments, the first criterion includes a requirement that is met when a first predetermined amount (e.g., 5, 7, 11) occurrences (of distinct instances) of detecting external interference (e.g., from 1012) by the electronic device (e.g., 600) are detected (1114). Thus, in some embodiments, a predetermined number of distinct detections of an external interface are required to trigger the display of a notification. In some embodiments, a distinct occurrence of detecting external interference occurs when a user attempts to use a camera application to utilize the respective functions of one or more cameras, the device checks for external interference to determine whether the device is able to use the respective functions of one or more cameras, and determines that external interference is present. In some embodiments, the device checks for external interference at predetermined intervals (e.g., once per hour, once per day, the first time each day the camera application is used).
[0309] In some embodiments, the first predetermined number of detections depends on (e.g., varies based on) (1116) the number of times the notification (e.g., 1014) has previously been displayed on the electronic device (e.g., 600). In some embodiments, the first predetermined number of detections of the external interface required to trigger a notification progressively increases based on the number of notifications the electronic device has already displayed. For example, if a certain number (e.g., three) of distinct detections of external interference are required to trigger the display of a first notification, a greater number (e.g., five) of distinct detections of external interference are required to trigger the display of a second notification, and an even greater number (e.g., seven distinct detections of external interference) are required to trigger the display of a third notification. Progressively increasing the first predetermined number of detections of the external interface required to trigger a notification improves user convenience by forgoing displaying notifications too frequently in cases where the user may already be aware of interference (based on previous notifications) but choose to ignore the interference. Enhanced user convenience improves device usability and provides a more efficient user-device interface (e.g., by assisting the user in providing appropriate inputs and reducing user errors when operating / interacting with the device), which in turn allows the user to use the device more quickly and efficiently, thereby reducing power usage and improving the device's battery life.
[0310] In some embodiments, displaying the notification (e.g., 1014) on the display (e.g., 602) includes displaying the notification pursuant to a determination that the notification has been previously displayed on the electronic device (e.g., 600) less than a second predetermined number of times. In some embodiments, the electronic device refrains from displaying the notification (regardless of whether the first criterion is met) if the notification has previously been displayed on the electronic device at least the second predetermined number of times.
[0311] In some embodiments, changing (1118) the operational mode of one or more cameras (e.g., 606, 608) to reduce the impact of external interference (e.g., from 1012) on the respective functions of the one or more cameras includes reducing (or slowing down, tapering off) the responsiveness of (or completely disabling one or more of) one or more functions of the one or more cameras (e.g., simulated depth effect related functions, optical image stabilization, autofocus, and / or operations requiring precise movement of mechanical components that may be adversely affected by the presence of strong magnetic fields near the mechanical components), where the one or more functions correspond to functions by the one or more cameras that cannot be reliably performed while external interference is detected by the electronic device.
[0312] It should be noted that the process details described above with respect to method 1100 ( FIG. 11 ) are also applicable in an analogous manner to the methods described above and below. For example, method 700 optionally includes one or more of the characteristics of the various methods described above with reference to method 1100. For example, adjusting a simulated depth effect using a depth adjustment slider, as described in method 700, may be affected by magnetic interference that may interfere with one or more depth sensors used to simulate the depth effect. In another example, method 900 optionally includes one or more of the characteristics of the various methods described above with respect to method 1100. For example, applying a simulated depth effect to an object in an image representation, as described in method 900, may be affected by magnetic interference that may interfere with one or more depth sensors used to simulate the depth effect. For the sake of brevity, these details will not be repeated below.
[0313] The foregoing description has set forth specific embodiments for purposes of explanation. However, the exemplary discussion above is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teachings. The embodiments have been chosen and described in order to best explain the principles of the present technique and its practical application. This will enable others skilled in the art to best utilize the present technique and various embodiments with various modifications as suited to the particular applications intended.
[0314] Although the present disclosure and examples have been fully described with reference to the accompanying drawings, it should be noted that various changes and modifications will be apparent to those skilled in the art, and such changes and modifications are to be understood as being included within the scope of the present disclosure and examples, as defined by the claims.
[0315] As mentioned above, one aspect of the present technology is the collection and use of data available from various sources to improve the functionality and versatility of simulated image effect features that can be applied to live feeds and / or stored photographs and images. This disclosure contemplates that, in some examples, this collected data may include personal information data that uniquely identifies a particular person or that can be used to contact or locate a particular person. Such personal information data may include demographic data, location-based data, phone numbers, email addresses, Twitter IDs, home addresses, data or records regarding a user's health or fitness level (e.g., vital sign measurements, medication information, exercise information), birth date, or any other identifying or personal information.
[0316] This disclosure recognizes that the use of such personal information data in the present technology can be used to the benefit of the user. For example, personal information data can be used to recognize people or objects in captured images or photographs. Thus, by using such personal information data, the user can easily recognize the content of captured images or photographs and organize such captured images or photographs. Furthermore, other uses of personal information data that benefit the user are also contemplated by this disclosure. For example, health and fitness data can be used to provide insight into the user's overall wellness or as proactive feedback to individuals using the technology to pursue wellness goals.
[0317] This disclosure contemplates that entities involved in the collection, analysis, disclosure, transmission, storage, or other use of such personal information data adhere to robust privacy policies and / or privacy practices. Specifically, such entities should implement and consistently use privacy policies and practices that are generally recognized as meeting or exceeding industry or government requirements for maintaining personal information data confidentially and securely. Such policies should be easily accessible to users and should be updated as data collection and / or use changes. Personal information from users should be collected for the entity's lawful and legitimate use and should not be shared or sold except for those lawful uses. Furthermore, such collection / sharing should be carried out after the user's informed consent is obtained. Furthermore, such entities should consider taking all necessary measures to protect and secure access to such personal information data and to ensure that others with access to that personal information data comply with their privacy policies and procedures. Furthermore, such entities may be able to undergo third-party assessments to demonstrate their adherence to widely accepted privacy policies and practices. Furthermore, policies and practices should be tailored to the specific types of personal data collected and / or accessed and should comply with applicable laws and standards, including jurisdiction-specific considerations. For example, in the United States, the collection of or access to certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA), while health data in other countries may be subject to other regulations and policies and should be addressed accordingly. Therefore, different privacy practices should be maintained for different types of personal data in each country.
[0318] Notwithstanding the foregoing, the present disclosure also contemplates embodiments in which a user selectively blocks use of or access to personal information data. That is, the present disclosure contemplates that hardware and / or software elements may be provided to prevent or block access to such personal information data. For example, when detecting and recognizing people or objects in images or photographs, the present technology may be configured to allow a user to choose to “opt in” or “opt out” of participating in the collection of personal information data during registration for the service or at any time thereafter. In addition to providing “opt-in” and “opt-out” options, the present disclosure contemplates providing notice regarding the access or use of personal information. For example, the user may be notified upon downloading an app that will access the user's personal information data, and then again immediately before the app accesses the user's personal information data.
[0319] Furthermore, it is the intent of this disclosure that personal information data should be managed and handled in a way that minimizes the risk of unintended or unauthorized access or use. Risks can be minimized by limiting data collection and deleting data when it is no longer needed. Furthermore, where applicable, de-identification of data can be used to protect user privacy in certain health-related applications. De-identification can be facilitated, where appropriate, by removing certain identifiers (e.g., date of birth, etc.), controlling the amount or specificity of data stored (e.g., collecting location data at a city level rather than a street address level), controlling how data is stored (e.g., aggregating data across users), and / or other methods.
[0320] Thus, while this disclosure broadly encompasses the use of personal information data to implement one or more various disclosed embodiments, this disclosure also contemplates that various embodiments may be implemented without requiring access to such personal information data. That is, various embodiments of the present technology are not rendered inoperable by the absence of all or part of such personal information data. For example, images or photographs may be organized based on non-personal information or minimal personal information, or publicly available information such as the date and time associated with the image or photograph.
Claims
1. In an electronic device having a display, displaying via the display a plurality of filter options, including a first filter option and a second filter option, and a representation of image data having a simulated depth effect having a first magnitude; while displaying via the display the plurality of filter options and the representation of image data having the simulated depth effect having the first magnitude to detect a discrete input; In response to detecting the discrete input, simultaneously displaying, via the display, a depth adjustment slider that was not displayed prior to detecting the individual input, the plurality of filter options, and the representation of image data having the simulated depth effect having the first magnitude; detecting a first input while simultaneously displaying the depth adjustment slider, the plurality of filter options, and the representation of image data via the display; In response to detecting the first input, modifying an appearance of the representation of image data according to the second filter option of the plurality of filter options in accordance with determining that the first input is directed to the second filter option of the plurality of filter options; modifying the appearance of the representation of image data in accordance with the simulated depth effect having a second magnitude different from the first magnitude in accordance with determining that the first input is directed to the depth adjustment slider; A method comprising:
2. maintaining a display of the representation of image data modified by the first filter option of the plurality of filter options in accordance with the determination that the first input is directed to the depth adjustment slider; maintaining display of the representation of image data having the simulated depth effect having the first magnitude in accordance with the determination that the first input is directed to the second filter option of the plurality of filter options; The method of claim 1 further comprising:
3. displaying the representation of image data via the display without displaying the depth adjustment slider and the plurality of filter options prior to simultaneously displaying the depth adjustment slider, the plurality of filter options, and the representation of image data via the display; Detecting a discrete input; responsive to detecting the discrete input, simultaneously displaying the representation of image data and the plurality of filter options via the display and removing the display of the depth adjustment slider; The method of claim 1 or 2, further comprising:
4. displaying one or more mode selection affordances via the display prior to simultaneously displaying the depth adjustment slider, the plurality of filter options, and the representation of image data via the display, wherein displaying the depth adjustment slider includes replacing display of the one or more mode selection affordances with the depth adjustment slider. The method of claim 1 , further comprising:
5. displaying a zoom control element via the display prior to simultaneously displaying the depth adjustment slider, the plurality of filter options, and the representation of image data via the display, wherein displaying the depth adjustment slider includes replacing display of the zoom control element with the depth adjustment slider. The method of claim 1 , further comprising:
6. The method of claim 1 , wherein the first input is a swipe gesture.
7. moving the depth adjustment slider to indicate that the second magnitude is a currently selected magnitude in accordance with determining that the first input is directed to the depth adjustment slider; The method of claim 1 , further comprising:
8. moving the plurality of filter options to indicate that the second filter option of the plurality of filter options is a currently selected filter option in accordance with determining that the first input is directed to the second filter option of the plurality of filter options; The method of claim 1 , further comprising:
9. A computer program causing a computer to carry out the method according to any one of claims 1 to 8.
10. 1. An electronic device comprising: a memory storing the computer program according to claim 9; one or more processors capable of executing the computer program stored in the memory; Equipped with The electronic device is in communication with a display.
11. 1. An electronic device comprising: The display and one or more input devices; means for carrying out the method according to any one of claims 1 to 8; An electronic device comprising:
Citation Information
Patent Citations
System for supporting spatial element arrangement design
JP2001101259A
Image processor and image processing method
JP2012253748A
Image processing device, image processing method, and program
JP2013009274A
Image processor, and method and program for controlling image processor
JP2013058861A
Image processing apparatus, image processing method, and program thereof
JP2015111822A