Wearable device location system architecture

By combining low-power and high-speed circuit systems in wearable devices, the starting and positioning strategies of position circuits are optimized, and the position update problem under power supply limitations is solved, achieving efficient power utilization and reasonable marking of position data.

CN115474153BActive Publication Date: 2025-08-01SNAP INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202211128467.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-05-30
Filing Date
2020-05-29
Publication Date
2025-08-01
Estimated Expiration
2040-05-29

AI Technical Summary

Technical Problem

Wearable devices face power resource limitations when providing location services, resulting in the inability to continuously update location data, affecting the consistency of location markings for images and video clips.

Method used

By combining low-power circuit systems and high-speed circuit systems, the startup of the position circuit system is optimized, the first positioning time is reduced, and position positioning is initiated at a trigger event or periodically, the low-power neural network is used to determine whether the device is worn and reduce unnecessary position updates.

Benefits of technology

It effectively reduces the power consumption of wearable devices, improves the efficiency of position data generation, ensures that images and video clips have reasonable and consistent position markings, and reduces the power use of battery power.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115474153B_ABST
    Figure CN115474153B_ABST
Patent Text Reader

Abstract

Systems, methods, devices, computer-readable media, and other various embodiments for a location management process in wearable electronic devices are described. The performance of such devices is improved by a shortened first location of location operations in combination with low-power operation. In one embodiment, a low-power circuitry manages a high-speed circuitry and a location circuitry to automatically provide location assistance data from the high-speed circuitry to the low-power circuitry at the initiation of a location positioning operation when the high-speed circuitry and the location circuitry are started from a low-power state. In some embodiments, the high-speed circuitry returns to a low-power state before a location positioning is completed and after content capture associated with the initiation of the location positioning. In some embodiments, the high-speed circuitry is started after a location positioning is completed to update location data associated with content.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the patent application with application number 202080038992.0 and invention title "Wearable Device Location System Architecture" filed on May 29, 2020.

[0002] Priority Statement

[0003] This application claims the priority of U.S. Patent Application Serial No. 16 / 426,885 filed on May 30, 2019, the entire content of which is incorporated herein by reference. Technical Field

[0004] Embodiments of the present disclosure generally relate to mobile computing technology and wearable device technology, and more particularly (but not by way of limitation) to methods and devices for providing location services in an environment with limited power and computing resources. Background Art

[0005] Wearable devices (such as glasses and watches) come in various forms, but there is limited space for circuitry and power. Nevertheless, the form factor and habitual use of wearable products provide benefits different from those of single-function devices. Accordingly, wearable devices (e.g., wristbands, glasses, and other such devices with limited form factors) continue to include additional functions. Even so, limitations in space and power resources have driven continuous innovation in wearable device space. Brief Description of the Drawings

[0006] The various drawings in the figures merely illustrate example embodiments of the present disclosure and should not be considered as limiting its scope:

[0007] Figure 1 Illustrates a wearable device used in accordance with various embodiments described herein;

[0008] Figure 2 Illustrates aspects of a wearable device in accordance with some embodiments described herein;

[0009] Figure 3 Illustrates aspects of a system for operating a wearable device in accordance with some embodiments described herein in combination with an associated client device and support system;

[0010] Figure 4 Illustrates aspects of a wearable device in accordance with some embodiments described herein;

[0011] Figure 5 Illustrates aspects of a wearable device in accordance with some embodiments described herein;

[0012] Figure 6 Illustrates an example method in accordance with some embodiments described herein;

[0013] Figure 7 Illustrates aspects of wearable device location operations in accordance with some embodiments described herein;

[0014] Figure 8 Illustrates an example method in accordance with some embodiments described herein;

[0015] Figure 9 Illustrates aspects of wearable device location operations in accordance with some embodiments described herein;

[0016] Figure 10 Illustrates an example method in accordance with some embodiments described herein;

[0017] Figure 11 Illustrates aspects of a communication environment for wearable device operations in accordance with some embodiments that incorporates a related client device and a supporting server computer system;

[0018] Figure 12 Is a block diagram of an example of a software architecture that can be installed on a machine in accordance with some example embodiments; and

[0019] Figure 13 Illustrates a pictorial representation of a machine in the form of a computer system within which a set of instructions can be executed to perform any one or more of the methods discussed herein. DETAILED DESCRIPTION

[0020] The embodiments described herein relate to mobile computing technologies and wearable health technologies, and more particularly (but not by way of limitation) to methods and devices for enabling location data for content generated using wearable devices with significant computational resource limitations (such as battery power).

[0021] For example, when a wearable device is used to generate an image or video clip, it is desirable to add a background to this data using location markers. To effectively provide this location data, location-aware hardware is needed to provide a reasonably consistent set of data for the content generated at the wearable device. At the same time, wearable devices have significant limitations in the available space for enabling features such as location services. This is especially true for standard location services, which can be configured to continuously update the device. However, the power limitations of wearable devices make continuous location updates infeasible. Accordingly, the embodiments described herein improve wearable devices by reducing the resources required to provide location data for the content generated by wearable camera devices. This improved device performance is provided through the effective use of location circuitry, the use of support data to reduce the time for initial location positioning, and the combination of location data from other sources, in order to allow limited power-efficient location data from the wearable device to be combined with data from other sources to provide consistent location data for images and video clips.

[0022] In some embodiments, the operation of the wearable device is improved by using a combination of high-speed circuitry, low-power circuitry, and location circuitry. The low-power circuitry manages the startup of the high-speed circuitry in the location circuitry in order to minimize power usage, as the high-speed circuitry and the location circuitry consume more power. Additionally, to minimize the power usage of the location circuitry, support data for reducing the first location positioning time of the location circuitry is automatically transferred from the high-speed circuitry to the location circuitry when the device initiates a location positioning. The low-power circuitry returns the high-speed circuitry and the location circuitry to a low-power state as much as possible.

[0023] In addition, location positioning is initiated only when a trigger event occurs or periodically, rather than continuously updating the location of the wearable device. For example, when the circuitry on the wearable device determines that the device is being worn, location positioning can be attempted every 15 or 30 minutes. The determination of the worn state can be based on peripheral sensors such as an inertial measurement unit or an ambient light sensor. In some embodiments, a neural network running on a low-power circuitry can use inputs from such sensors to implement the determination of the worn state. If the device is not being worn (e.g., not associated with the worn state), location positioning is not attempted. The low-power neural network circuitry can be part of the low-power circuitry used to determine whether the device is being worn. Such operations can use simple motion data or light sensing data from sensors on the wearable device to make this determination. The trigger event can be receiving an input to capture an image or video clip. Once such an input is received, the wearable device can initiate location positioning. If the device is unable to determine the location, a set of prior location data from a previous positioning can be used for the captured data. When the captured content is later downloaded to a client device (e.g., an associated cellular phone), the client device can determine whether there is additional location data available from the location data captured by the client device. Thus, the location data associated with the content can be updated at the client device.

[0024] Various additional details and combinations of embodiments are described in detail below to improve the operation of the wearable device with location data generated with low power usage.

[0025] Figure 1 Aspects of an example embodiment of a wearable electronic device implementing various disclosed embodiments are illustrated, the electronic device taking the example form of an eyewear article constituted by electronically enabled glasses 31, the electronic device also being operable within a network system for transmitting image and video content together with associated location information. Figure 1A front perspective view of glasses 31 is shown. The glasses 31 may include a frame 32 made of any suitable material, such as plastic or metal, including any suitable shape memory alloy. The frame 32 may have a front piece 33, and the front piece 33 may include a first or left lens, a display or an optical element holder 36 and a second or right lens, a display or an optical element holder 37 connected by a bridge piece 38. The front piece 33 further includes a left end portion 41 and a right end portion 42. The first or left optical element 44 and the second or right optical element 43 may be disposed within the respective left optical element holder 36 and right optical element holder 37. Each of the optical elements 43, 44 may be a lens, a display, a display assembly, or a combination thereof. For example, in some embodiments, the glasses 31 are provided with an integrated near-eye display mechanism that enables, for example, a preview image of visual media captured by a camera 69 of the glasses 31 to be displayed to a user.

[0026] The frame 32 further includes a left arm or temple piece 46 and a right arm or temple piece 47, which are coupled to the respective left end portion 41 and right end portion of the front piece 33 by any suitable means, such as providing a hinge (not shown), so as to be coupled to the front piece 33, or rigidly or fixedly secured to the front piece 33 so as to be integral with the front piece 33. Each of the temple pieces 46 and 47 may include a first portion 51 coupled to the respective end portion 41 or end portion 42 of the front piece 33, and any suitable second portion 52, such as a curved or arcuate piece, for coupling to a user's ear. In one embodiment, the front piece 33 may be formed of a single piece of material so as to have a single or integral construction. In one embodiment, the entire frame 32 may be formed of a single piece of material so as to have a single or integral construction.

[0027] The glasses 31 may include a computing device, such as a computer 61, which may be of any suitable type for being carried by the frame 32, and in one embodiment, may be of a suitable size and shape for being at least partially placed within one of the temple pieces 46 and 47. In one embodiment, as Figure 1 shown, the size and shape of the computer 61 are similar to the size and shape of one of the temple pieces 46 and 47, and thus are placed almost entirely (if not entirely) within the structure and boundaries of such temple pieces 46 and 47. In one embodiment, the computer 61 may be placed within both the temple pieces 46 and 47. The computer 61 may include one or more processors having a memory, wireless communication circuitry, and a power source. The computer 61 includes low-power circuitry, high-speed circuitry, position circuitry, and a display processor. Various other embodiments may include these elements configured differently or integrated together in different ways. Further details of aspects of the computer 61 may be referred to the following description for implementation.

[0028] The computer 61 further includes a battery 62 or other suitable portable power supply. In one embodiment, the battery 62 is placed in one of the temple pieces 46 or 47. In Figure 1 the glasses 31 shown, the battery 62 is shown as being placed in the left temple piece 46 and is electrically coupled via a connection 74 to the remainder of the computer 61 placed in the right temple piece 47. One or more input and output devices may include a connector or port (not shown) adapted to charge the battery 62 accessible from outside the frame 32, a wireless receiver, a transmitter, or a transceiver (not shown), or a combination of such devices.

[0029] The glasses 31 include a digital camera 69. Although two cameras 69 are shown, other embodiments contemplate the use of a single or additional (i.e., more than two) cameras 69. For ease of description, various features related to the camera 69 will be further described with reference to only a single camera 69, but it should be understood that these features may be applied to two cameras 69 in suitable embodiments.

[0030] In various embodiments, in addition to the camera 69, the glasses 31 may further include any number of input sensors or peripherals. The front piece 33 is provided with an outer, front, forward, or front surface 66 facing forward or backward away from the user when the glasses 31 are placed on the user's face, and an inner, rear, rearward, or inner surface 67 facing the opposite direction of the user's face when the glasses 31 are placed on the user's face. Such sensors may include an inward-facing video sensor or digital imaging module and an outward-facing video sensor or digital imaging module. The inward-facing video sensor or digital imaging module, such as the camera 69, may be mounted on the inner surface 67 of the front piece 33 or provided within the inner surface 67 of the front piece 33, or may be mounted elsewhere on the frame 32 to face the user; while the outward-facing video sensor or digital imaging module, such as the camera 69, may be mounted on the outer surface 66 of the front piece 33 or provided with the outer surface 66 of the front piece 33, or may be mounted elsewhere on the frame 32 to face away from the user. Such sensors, peripherals, or peripherals may further include biometric sensors, position sensors, accelerometers, or any other such sensors.

[0031] The example embodiment of the camera control mechanism or user input mechanism included in the glasses 31 includes a camera control button mounted on the frame 32 for tactile or manual engagement by the user. The camera control button provides a bimodal or single-action mechanism as it can only be freely controlled by the user between two states, i.e., the engaged state and the disengaged state. In this example embodiment, the camera control button is a button that is default in the disengaged state and can be placed in the engaged state by user pressing. When the pressing of the camera control button is released, the button automatically returns to the disengaged state.

[0032] In other embodiments, the single-action input mechanism can be provided by, for example, a touch-sensing button that includes a capacitive sensor mounted on the frame 32 adjacent to its surface for detecting the presence of the user's finger to place the touch-sensing button in the engaged state when the user's finger touches a corresponding point on the outer surface 66 of the frame 32. It should be understood that the above camera control button and capacitive touch button are only two examples of the tactile input mechanism for the single-action control of the camera 69, and other embodiments may employ different single-action tactile control arrangements.

[0033] Figure 2 FIG. is a schematic illustration of some components of an example electronic device in the form of the glasses 31. Note that the arrangement of the corresponding interactive machine components can be applied to such embodiments where the electronic device consistent with the present disclosure includes, for example, a mobile electronic device such as a wearable device (e.g., the glasses 31), a smart phone, a tablet computer, or a digital camera. The computer 61 of the glasses 31 includes a central processor 221 that communicates with an on-board memory 226. The central processor 221 can be a central processing unit and / or a graphics processing unit. The memory 226 in this example embodiment includes a combination of a flash memory and a random access memory. Figure 2The device 31 also includes a GPS processor 256. Although the GPS processor 256 is referred to as a Global Positioning System (GPS), any positioning system or Global Navigation Satellite System (GNSS) support circuitry may be used in various embodiments as part of an element referred to herein as a GPS system, positioning system, positioning circuitry, positioning circuit, position, or GPS processor 256 or other such terms. As described herein, such devices are used to perform position operations or position “location” operations to estimate the current position of the device. Additionally, “time to first fix” refers to the time from initiating a position operation to generating associated position data. A successful position fix results in a set of data associated with the position, although such data may have significant associated uncertainty. The various embodiments described herein may use a trade-off between accuracy and power consumption and use the time to first fix to further reduce the power usage of position operations in a wearable device. Additionally, when the circuitry is unable to determine a position, the embodiments herein do not continue the position operation but may use a relatively low timeout threshold to limit power usage when the wearable device is in an environment where position data is unavailable or difficult to determine. Such environments may occur in indoor locations or where obstacles prevent the positioning circuitry from accessing associated satellite information. The timeout (e.g., 30 seconds, 60 seconds, 2 minutes) may be used to limit the resources expended in attempting to generate position data rather than consuming power. Instead, the embodiments herein may simply provide a position failure or timeout response and rely on a previous position fix or position data from another device (e.g., a paired client or phone device) to provide position data. Alternatively or in addition, when position data cannot be obtained via an automated position system (e.g., GNSS), the device may prompt the user to enter an estimated position.

[0034] The glasses 31 also include a camera controller 214 that communicates with the central processor 221 and the camera 69. The camera controller 214 includes circuitry configured to control picture content recording or video content recording based on processing of control signals received from a single-action input mechanism (collectively indicated by the single-action input mechanism 235 in Figure 2 ), and the circuitry is configured to provide automatic adjustment of one or more image capture parameters related to the image data captured by the camera 69 and the on-board processing of the image data before permanent storage of the image data and / or before presenting the image data to the user for viewing or previewing.

[0035] In some embodiments, the camera controller 214 includes permanent configuration circuitry (such as firmware or an application specific integrated circuit (ASIC)) configured to perform the various functions described herein. In other embodiments, the camera controller 214 may include a dynamically reconfigurable processor that executes instructions that may temporarily configure the processor to perform the various functions described herein.

[0036] The camera controller 214 interacts with the memory 226 to store, organize, and present image content in the form of picture content and video content. To this end, in the present embodiment, the memory 226 includes a picture content memory 228 and a video content memory 242. Accordingly, the camera controller 214, in cooperation with the central processor 221, is configured to receive image data representing a digital image captured by the camera 69 according to some image capture parameters from the camera 69; is configured to process the image data according to some image capture parameters; and is configured to store the processed image data in one of the picture content memory 228 and the video content memory 242 as appropriate.

[0037] The camera controller 214 is also configured to cooperate with the display controller 249 to cause the selected pictures and videos in the memory 226 to be displayed on the display mechanism incorporated in the glasses 31, thereby providing a preview of the captured pictures and videos. In some embodiments, the camera controller 214 uses automatic classification parameters to manage the processing of the captured images for inclusion in video files.

[0038] The single-action input mechanism 235 is communicatively coupled to the central processor 221 and the camera controller 214 to transmit a signal representing the current state of the camera control button, and thereby convey to the camera controller 214 whether the camera control button is currently pressed. The camera controller 214 also communicates with the central processor 221 regarding the input signal received from the single-action input mechanism 235. In one embodiment, the camera controller 214 is configured to process the input signal received via the single-action input mechanism 235 to determine whether a particular user engagement of the camera control button will result in the recording of video content or picture content, and / or to dynamically adjust one or more image capture parameters based on the processing of the input signal. For example, pressing the camera control button for a duration exceeding a predetermined threshold duration causes the camera controller 214 to automatically apply relatively less stringent video processing to the captured video content prior to its permanent storage and display. Conversely, in such embodiments, pressing the camera control button for a duration shorter than the threshold duration causes the camera controller 214 to automatically apply relatively more stringent picture stabilization processing to the image data representing one or more still images.

[0039] The glasses 31 may also include various components common in mobile electronic devices such as smart glasses or smartphones. For example, it includes a display controller 249 for controlling the display of visual media (including pictures and video content captured by the camera 69) on a display mechanism incorporated in the device. Note that Figure 2 the schematic illustration is not an exhaustive representation of all components that form part of the glasses 31.

[0040] Figure 3 An alternative network system 301 that can be used with certain embodiments is illustrated. The network system 301 includes a messaging system 330 having an interface module 340, an application logic module 350, a database server 332, and a database 334; and a client device 310 that operates a client application 312. However, the network system 301 further includes a wearable client companion device 314 connected to the client device 310. In various embodiments, the wearable client companion device 314 is configured for wired communication with the client device 310 or the messaging system 330. The client companion device 314 can also be configured for wireless communication with the client device 310, the messaging system 330, or both simultaneously. The client companion device 314 can be a wearable device such as glasses 31, a helmet, a watch, or other network-enabled items. The client companion device 314 can also be any device described herein that accesses the network via another device such as the client device 310. The client companion device 314 includes an image sensor 316, wireless input and output (I / O) 317, and elements of a location system 360 (for example, for assigning general capture area information to content captured using the client companion device 314). The client companion device 314 may include one or more processors, a display, a battery 62, and a memory, but may have limited processing and memory resources. In such embodiments, the client device 310 and / or the server computing device for the messaging system 330 can provide assistance by improving the time for the first positioning performance of the location module 360 running on the device 314 and by providing supplementary location information in case the location information provided by the device 314 is unavailable or less accurate than the available information from other associated client devices 310. For example, in one embodiment, the client companion device 314 can be a pair of network-enabled glasses such as Figure 1 the glasses 31, and the client device 310 can be a smartphone that enables access to the messaging system 330 to enable the transmission of video content captured using the image sensor 316.

[0041] Figure 4 A block diagram of a network system 400 including details of a camera device 410 is illustrated according to some example embodiments. In certain embodiments, the camera device 410 may be as described aboveFigure 1 is implemented in the glasses 31.

[0042] The system 400 includes a camera device 410, a client device 490, and a server system 498. The client device 490 can be a smart phone, a tablet computer, a phablet, a laptop computer, an access point, or any other such device capable of connecting to the camera device 410 using both a low-power wireless connection 425 and a high-speed wireless connection 437. The client device 490 is connected to the server system 498 and the network 495. The network 495 can include any combination of wired and wireless connections. The server system 498 can be one or more computing devices that are part of a service or network computing system.

[0043] The system 400 can optionally include additional peripheral device elements 419 integrated with the camera device 410 and / or a display 411. Such peripheral device elements 419 can include biometric sensors, additional sensors, or display elements integrated with the camera device 410. Examples of peripheral device elements 419 will be discussed with reference to Figure 12 and Figure 13 further described. For example, the peripheral device element 419 may include a motion detector, a light detector, any I / O component (including the output component 1352), a motion element 1358, or any other such element described herein.

[0044] The camera device 410 includes a camera 414, an image processor 412, an interface 416, a low-power circuitry 420, and a high-speed circuitry 430. The camera 414 includes digital camera elements (such as charge-coupled devices), lenses, or any other light-capturing elements that can be used to capture data as part of the camera 414.

[0045] Interface 416 refers to any source of user commands provided to camera device 410. In one particular implementation, interface 416 is a physical button on camera 414 that, when pressed, sends a user input signal from interface 416 to low-power processor 422. A press of this camera button that is then immediately released can be processed by low-power processor 422 as a request to capture a single image. A press of this camera button that persists for a first time period can be processed by low-power processor 422 as a request to capture video data while the button is pressed and to stop video capture when the button is released, with the video captured while the button is pressed being stored as a single video file. In some embodiments, low-power processor 422 can have a threshold time period (e.g., 500 milliseconds or one second) between button press and release, with button presses and releases below this time period being processed as image requests and button presses and releases above this time period being interpreted as video requests. Low-power processor 422 can make this determination when image processor 412 is started up. In other embodiments, interface 416 can be any mechanical switch or physical interface capable of accepting user input associated with a data request from camera 414. In other embodiments, interface 416 can have a software component or can be associated with commands received wirelessly from another source.

[0046] Image processor 412 includes circuitry to receive signals from camera 414 and process those signals from camera 414 into a format suitable for storage in memory 434. Image processor 412 is built within camera device 410 such that it can be powered on and started under the control of low-power circuitry 420. Image processor 412 can additionally be powered off through low-power circuitry 420. Depending on the various power design elements associated with image processor 412, image processor 412 can consume a small amount of power even when in a shutdown state. However, such power is negligible compared to the power used by image processor 412 in an on state and also has a negligible impact on battery life. As described herein, device elements in a "shutdown" state are still configured within the device such that low-power processor 422 can power the device on and off. Due to system design leakage or other aspects, devices referred to as "shutdown" or "powered off" during the operation of camera device 410 do not necessarily consume zero power.

[0047] In one exemplary embodiment, image processor 412 includes a microprocessor integrated circuit (IC) customized to process sensor data from camera 414, as well as volatile memory used by the microprocessor for operation. To reduce the amount of time required for image processor 412 to process data upon power-up, a non-volatile read-only memory (ROM) containing instructions for running or booting image processor 412 may be integrated on the IC. This ROM may be minimized to match the minimum size required to provide the basic functionality for collecting sensor data from camera 414, eliminating the need for extended functionality that would cause time delays during startup. The ROM may be configured with direct memory access (DMA) to the volatile memory of the microprocessor of video processor 412. DMA allows memory-to-memory data transfer from the ROM to video processor 412 independent of the operation of the main controller of video processor 412. Providing DMA to this boot ROM further reduces the amount of time from powering up image processor 412 until sensor data from camera 414 can be processed and stored. In some embodiments, minimal processing of the camera signal from camera 414 is performed by image processor 412 , while additional processing may be performed by an application running on client device 490 or server system 498 .

[0048] The low power circuitry 420 includes a low power processor 422 and a low power wireless circuitry 424. These elements of the low power circuitry 420 may be implemented as separate elements or may be implemented on a single IC as part of a system on a single chip. The low power processor 422 includes logic for managing the other elements of the camera device 410. For example, as described above, the low power processor 422 may accept user input signals from the interface 416. The low power processor 422 may also be configured to receive input signals or instruction communications from the client device 490 via the low power wireless connection 425. Additional details regarding such instructions are further described below. The low power wireless circuitry 424 includes circuit elements for implementing a low power wireless communication system. Bluetooth TM Smart, also known as Bluetooth TM Low energy consumption is a standard implementation of a low power wireless communication system that can be used to implement the low power wireless circuit system 424. In other embodiments, other low power communication systems can be used.

[0049] The location circuitry 413 includes specialized processing circuitry for implementing the location services described above. For example, the location circuitry 413 may include circuitry for accessing GNSS or GPS data along with supporting information (e.g., satellite almanac binary data) to generate location data for the device 410 (e.g., glasses 31) when such data is not available from the paired client device 90.

[0050] The high-speed circuit system 430 includes a high-speed processor 432, a memory 434, and a high-speed wireless circuit system 436. The high-speed processor 432 can be any processor capable of managing the high-speed communication and operation of any general computing system required for the camera device 410. The high-speed processor 432 includes the processing resources required to manage high-speed data transfer on the high-speed wireless connection 437 using the high-speed wireless circuit system 436. In certain embodiments, the high-speed processor 432 executes an operating system such as the LINUX operating system, or other such operating systems, such as Figure 9 the operating system 904. In addition to any other responsibilities, the high-speed processor 432 that executes the software architecture for the camera device 410 is also used to manage data transfer with the high-speed wireless circuit system 436. In certain embodiments, the high-speed wireless circuit system 436 is configured to implement the Institute of Electrical and Electronics Engineers (IEEE) 802.11 communication standard, also referred to herein as Wi-Fi. In other embodiments, other high-speed communication standards can be implemented by the high-speed wireless circuit system 436. In some embodiments, the high-speed circuit system 430 can be a system-on-chip (SoC) circuit integrated with various functions, which may include the above-described video processor functions, such that the video processor 412 can be integrated with the high-speed circuit system 430. In various embodiments described herein, the low-power circuit system 420 and the position circuit system 413 are separate from the high-speed circuit system 430 because the low-power circuit system 420, the position circuit system 413, and the high-speed circuit system 430 are managed separately and each can be placed in a low-power state independently of the other systems.

[0051] The memory 434 includes any storage device capable of storing the camera data generated by the camera 414 and the image processor 412. Although the memory 434 is shown integrated with the high-speed circuit system 430, in other embodiments, the memory 434 can be a separate element of the camera device 410. In certain such embodiments, a connection from the video processor 412 or the low-power processor 422 to the memory 434 can be provided by circuitry through a chip including the high-speed processor 432. In other embodiments, the high-speed processor 432 can manage the addressing of the memory 434 such that the low-power processor 422 activates the high-speed processor 432 whenever a read or write operation involving the memory 434 is required.

[0052] Then, Figure 5FIG. 500 illustrates an example system having details regarding the interaction between various system elements in accordance with some example embodiments. In an embodiment of system 500, a wearable device, a client device 510, and a location support server 532 are illustrated. The wearable device includes a wearable device input / output (I / O) 514, a high-speed circuit 516, a low-power circuit 518, and a location circuit 560. Such device elements may be similar to the corresponding elements of the camera device 410 discussed above and may be used in any wearable device or client companion device 314 of any embodiment described herein.

[0053] In some embodiments, the operation of system 500 is improved by maximizing the amount of time that the location circuit 560 operates in a low-power sleep state. In some such embodiments, the location circuit 560 has at least four states. These states include an off state, a low-power core sleep state, a try sleep state, and an acquisition state. The off state is an operational setting in which the location circuit 560 is completely powered off. In various embodiments, this state is only used when system 500 is in a critical (e.g., near zero) low-power state. Starting from a powered-off state requires additional resources and significantly increases the first-location time when location data is needed. The low-power or sleep state is an operational setting with lower power usage but allows the location circuit 560 to maintain a real-time timer. Maintaining the real-time timer in the low-power state significantly improves the time performance for the first location of the location circuit 560 (e.g., reduces the time from initiating a location to obtaining data). Due to the low power usage and performance improvement, system 500 uses the low-power state as the default state for the location circuit 560. The try sleep state or a transition to the low-power state is used when location data has already been generated or when a timeout has occurred in the acquisition state. The acquisition state is a high-power usage state of the location circuit 560 that is used to generate location data for use by system 500. When the location circuit 560 enters the acquisition state, the circuitry wakes up from the low-power mode and begins attempting to locate the position. During this period, the location circuit 560 will start receiving assistance data, which helps reduce the time used for the first location. For example, such data may include information about a previous location, as well as almanack binary data associated with location satellites and location satellite information. If the device successfully acquires the location, the location parameters are cached in the system memory. After the location has been acquired and the location parameters have been cached, or after the timeout has expired, the location circuit 560 automatically enters the try sleep state and then returns to the sleep state (e.g., the low-power state) as soon as possible to limit power usage.

[0054] In the context of the location circuitry 560 described above, the overall system may operate using the processes described below in some embodiments. The location circuitry 560 remains in a low-power sleep mode until the wearable device triggers a location determination (e.g., from a timer-based periodic trigger or a state trigger or from the capture of an image or video segment). The client device 510 periodically fetches assistance data from the location support server 532. The location assistance data is stored in a memory associated with the high-speed circuitry 516 and this information is provided to the location circuitry 560 during a location determination operation. During a media capture operation, if the media finishes recording, four location parameters are determined as part of the location determination operation. The last cached location parameters are written as metadata for the captured content. If the location circuitry 560 is able to obtain a location determination, the high-speed circuitry 516 is activated and will overwrite the previously assigned location parameters for the captured content.

[0055] As Figure 5 shown, in operation 570, the client device 510 periodically requests assistance data from the location support server 532. In operation 572, the location support server 532 responds to the client device 510 with any updated information. This updated information may include an update to satellite binary data, which enables the time of the first location determination operation at the location circuitry 560 to be improved. Then, in operation 574, the client device 510 periodically checks the paired wearable device and if the wearable device does not have the current assistance data from the location support server 532, the client device 510 will provide this data to the wearable device via the wearable device I / O 514 in operation 574.

[0056] Then, the wearable device of system 500 can be considered to have location manager operations distributed among the low-power circuit 518, the high-speed circuit 516, and the location circuit 560. The core management of the location manager function is built in the low-power circuit 518, which is configured to operate continuously unless the wearable device is in a severely low-power mode. As part of the configuration of the low-power circuit 518, the low-power circuit 518 manages the operation of other elements of the wearable device due to its low power consumption. These operations can include simple neural network or state recognition functions to determine when the wearable device is being worn and other such states of the wearable device that can affect the location manager function. For example, when the low-power circuit 518 performs an operation to determine that the wearable device is in a certain state, the low-power circuit 518 can then use a timer trigger to initiate a location positioning operation after a threshold period of time since the previous location positioning. Such operations can include separate timers for previous successful location positioning in previous location attempts. For example, if this location attempt fails, the low-power circuit 518 can initiate a location positioning operation 5 minutes after the last location attempt; or if this location attempt is successful, the low-power circuit 518 can initiate a location positioning operation ˌ15 minutes after the last location attempt. In other embodiments, when the location manager determines that the wearable device is being worn, the low-power circuit 518 simply performs a location attempt at fixed periodic times.

[0057] The low-power circuit 518 can also manage the location manager function in response to an input received at the wearable device. For example, when a key press input 576 is received at the wearable device I / O 514, this signal can be conveyed to the low-power circuit 518 in operation 578, and in response to this input 576, the low-power circuit 518 manages the location positioning operation in operation 586 and instructs the location circuit 560 to enter the location acquisition mode.

[0058] In some embodiments, an input 576 via the wearable device I / O 514 automatically activates the high-speed circuitry 516 via operation 580, and the activation operation of the high-speed circuitry 516 automatically initiates the transfer of the position-aided binary data or other position-aided data from the high-speed circuitry 516 to the low-power circuitry 518 in operation 582. By automatically initiating such communication in response to an input that triggers a location determination, the first-location time is reduced. When the low-power circuitry 518 initiates a location determination and receives the aided data, the aided data is forwarded to the location circuitry 560 in operation 584. The location circuitry 560 further uses this aided data to reduce the first-location time. The location circuitry 560 then performs operations to determine the location parameters of the wearable device. These operations can result in a location failure 588 or a location success 590. After a location failure 588 occurs, an indication can be sent back to the low-power circuitry 518, and this information can be used to determine the timing of subsequent location determinations. In some embodiments, if content is being captured in association with a location determination operation, the content can be automatically assigned a previous set of location parameters, so that a location failure 588 does not result in any change to the location data associated with the captured content. If a location success 590 occurs, the location parameters and various location data generated in this operation are propagated to any content most recently captured by the high-speed circuitry 516.

[0059] Figure 6 An example method in accordance with some embodiments described herein is illustrated. Figure 6 A method 600 for a system in accordance with some embodiments is specifically described to enhance the device performance for managing location in a resource-constrained environment. In some embodiments, the method 600 is performed by a wearable device (such as glasses 31) to provide location data 410 associated with content captured by a camera device of the glasses 31. In some embodiments, the method 600 is implemented by computer-readable instructions stored in a non-transitory memory of the device (such as glasses 31) such that when the instructions are executed by one or more processors of the device, the device performs the method 600.

[0060] The method 600 begins at operation 602, where the wearable device receives almanac data binary from a location-aided server. Such data can be received using the I / O circuitry of the wearable device (such as Bluetooth TMreceived via a paired client device 510 (e.g., low power consumption, Wi-Fi direct connection, etc.). In some embodiments, the client device 510 queries the wearable device to determine whether the almanac data binary is up-to-date or has been updated within a threshold time period (e.g., 24 hours, 2 days, 10 hours, etc.), and if the data is not up-to-date, the updated information will be pushed from the client device 510 to the wearable device. In some embodiments, the power settings are further queried as part of such an update process such that the almanac data binary is only updated when the wearable device is above a threshold power level. In some embodiments, the messaging server system (e.g., the system described in Figure 1 and other embodiments described herein) further manages the almanac data binary update. In other embodiments, the client device 510 receives the updated data directly from the location assistance server.

[0061] When the wearable device receives the updated almanac data binary information, the information will be stored in the memory associated with the high-speed circuitry 430 of the wearable device in operation 604. Then, in operation 606, the standard operating state of the wearable device involves operating the location circuitry 413 of the wearable device in a low-power state of the location circuitry including a real-time timer, and operating the high-speed circuitry 430 of the wearable device in a low-power state of the high-speed circuitry. Operation 608 involves initiating a location positioning operation at the wearable device using the low-power circuitry 420 of the wearable device, and then placing the low-power circuitry 420 in a low-power circuitry idle state for the remainder of the location positioning operation. In various embodiments, this location positioning operation may be initiated in response to an input indicating that an image or video data to be associated with location data is to be captured, or in response to a periodic update associated with the "worn" device state determined based on sensor data.

[0062] In response to the initiation of the location positioning operation, operation 610 then involves transitioning the location circuitry 413 from the low-power state to the normal state, starting the high-speed circuitry 430 of the wearable device, and transferring the almanac data binary from the memory to the location circuitry 413 using the high-speed circuitry 430. Then, operation 612 generates location status data using the location circuitry 413 as part of the location positioning operation, transfers the location status data to the high-speed circuitry 430 for storage in the memory, and returns the high-speed circuitry 430 to the low-power state of the high-speed circuitry.

[0063] Some such embodiments operate where the location positioning operation is initiated at the wearable device in response to receiving an input signal at the low-power circuitry 420 from a camera control button of the wearable device. As part of some such operations, the location positioning operation may also be initiated at the wearable device in response to determining that no previous input signal has been received at the low-power circuitry 420 within a threshold time period.

[0064] In some embodiments, location status data is generated during an acquisition mode operation of the location circuitry 413 within a threshold acquisition time period. In various systems, the threshold acquisition time is configured to allow a reasonable positioning acquisition time without wasting power if positioning is unlikely. Such a time period may be based on the average acquisition time period depending on the location circuitry 413. In some embodiments, the time period is between 45 seconds and 90 seconds. In some embodiments, the system tracks the average acquisition time, or other values associated with the location positioning operation, and selects the threshold acquisition time based on historical data. For example, the system may have a variable acquisition time where the maximum allowable time is 60 seconds, but it may identify that 95% of successful location positioning operations are achieved within a first positioning time of 30 seconds, and thus use 30 seconds as the timeout threshold for the positioning operation. If the percentage of failed location operations that time out exceeds the threshold percentage of that time, the variable location positioning timeout threshold may be increased by an incremental value up to the maximum allowable value. Such operations may conserve power resources, but at the cost of reducing the chance of successful location positioning in some cases.

[0065] In embodiments where the location status data includes a location failure indication, the system may operate by: initiating the capture of one or more images using a camera sensor of the wearable device in response to an input signal, and associating the one or more images with a previously cached location value in response to the location failure indication. Other systems may operate in cases where the location status data includes multiple location parameters, the multiple location parameters including at least a positioning time value, an accuracy value, and one or more location values. Some such embodiments operate by: initiating the capture of one or more images using a camera sensor of the wearable device in response to an input signal, and associating the one or more images with the one or more location values.

[0066] Figure 7 Aspects of wearable device location operations in accordance with some embodiments described herein are illustrated. Figure 7 Aspects of a location manager in response to button press inputs that initiate content capture at the wearable device during a timeline 702 are specifically illustrated. Figure 7Illustrates key press operations 710, 712, and 714. When an initial key press 710 is received, the location manager system enters an acquisition mode 720. For example, the location circuit 560 will be placed in a location acquisition state in an embodiment using the system 500. When the location manager is in the acquisition mode, multiple key press inputs may be received. Subsequent key press operations (e.g., key press 712) will have no impact on the location acquisition 720. In Figure 7 , a location success 730 causes the location parameters 730 determined at the location success 730 to be propagated back to the generated content associated with a specific key press input in operation 740. Thus, the content generated in response to key press 710 is assigned the location parameters from the location success 730 at operation 744, while the content generated in response to key press 712 is signed with the location parameters in operation 742. In some embodiments, the data from the location location success 730 is used within a threshold time period after the success. For example, if a key press occurs immediately after the location success 730, no additional location acquisition positioning will be used, but rather, in response to if this key press occurs within the threshold time, the location parameters from the location success 730 will be assigned to the generated content. After this threshold time has expired, subsequent key presses (e.g., key press 714) will cause additional location positioning operations in a subsequent location acquisition 721.

[0067] As illustrated, key press 714 initiates a location acquisition 721. The location acquisition 721 results in a location failure 732. Such a failure may be caused by various reasons, such as blocked or obstructed access to satellite location information, interference from other signal sources, or various other such mechanisms. When the location failure 732 occurs, operation 750 causes the data generated in response to key press 714 to be assigned the most recent location parameters in operation 752. In this case, the most recent parameters will be from the location success 730. Thus, the content generated in response to key press 714 will be associated with the location parameters from the location success 730 until a subsequent location update (if any) provides more accurate location data.

[0068] Figure 8 Illustrates an example method according to some embodiments described herein. Figure 8Specifically describes method 800 for reducing the first location time in enabled wearable device location operations based on the privacy settings of the device. Similar to method 600 described above, in some embodiments, method 800 is performed by a wearable device (such as glasses 31) to provide location data associated with the content captured by the camera device of glasses 31, and in some embodiments, method 800 is implemented in computer-readable instructions stored in the non-transitory memory of the wearable device, so that when these instructions are executed by a processing circuit system (such as the low-power circuit system, high-speed circuit system, and / or location circuit system 413 of the device), the wearable device performs method 800.

[0069] Method 800 begins at operation 802 for storing first location time support data for the location circuit 560 of the wearable device in a memory associated with the high-speed circuit 516 of the wearable device, where the location circuit 560 is separate from the high-speed circuit 516. As described above, such first location time support data can be satellite almanac binary data. In some embodiments, this first location time support data can additionally or alternatively relate to previous location positioning data, country code data, timeout settings, or any other such data to assist the location circuit system 413 in improving performance.

[0070] Then, when operating the location circuit 560 of the wearable device in a location circuit low-power state including a real-time timer and operating the high-speed circuit 516 of the wearable device in a high-speed circuit low-power state, a location positioning operation is initiated at the wearable device in operation 804. Then, in operation 806, in response to the initiation of the location positioning operation, the high-speed circuit 516 and the location circuit 560 are started, and the first location time support data in the memory is automatically transferred to the location circuit 560 when the high-speed circuit 516 is started. In operation 808, the location status data at the location circuit 560 uses this first location time support data.

[0071] Various such embodiments can further operate in the following cases: determining the first location positioning using a first set of accuracy parameters selected for increased first location operations, the first location positioning being a two-dimensional location positioning, or when operating in a low-power state, the location circuit 560 maintains a real-time timer without performing any location operations.

[0072] Similarly, various embodiments may operate by returning the high-speed circuit 516 to a high-speed circuit low-power operating state after the first-location time support data is transmitted to the location circuit 560 and before the generation of the location status data, and starting the high-speed circuit 516 from the high-speed circuit low-power state after the generation of the location status data. Similarly, various such embodiments may operate by returning the location circuit 560 to a low-power state when the first location fix is determined or when a timeout period expires, where the location status data includes the first location fix or a timeout indicator.

[0073] Figure 9 Aspects of location updates at a client device for wearable device location operation and pairing in accordance with some embodiments described herein are illustrated. When a wearable device is paired with a client device, privacy settings may be checked to determine whether the wearable device is authorized to collect location data. In some embodiments, default or non-paired privacy settings prevent the capture of location data, and the wearable device only collects location data when location fixes are permitted in response to location setting values stored in the non-volatile memory of the wearable device as part of the pairing operation with the client device. In such embodiments, authorization to collect location data is provided by a user interacting with an application on the client, and the settings on the wearable device are updated during pairing or other communication with the client device.

[0074] As described above, to conserve battery resources, the wearable device will use locations 920, 922, and 924 irregularly depending on various settings and signal availability, rather than continuously updating location information, while a companion device (e.g., a smart phone) is expected to regularly take location snapshots 910, 912, 914. Although the wearable device may attempt to align these location measurements 920, 922, 924 with the capture of associated content, for various reasons, these location measurements may not provide accurate location data for some content. In some embodiments, the wearable device assigns the most recent location parameters available at the wearable device when the content is captured. In other embodiments, the wearable device assigns location parameters from measurements obtained before or after the content capture based on various criteria indicating which measurement is more accurate for the content. When the content is later downloaded from the wearable device to a paired client device (e.g., a smart phone), the smart phone may have the ability to associate more accurate location data with the content generated by the wearable device from the location snapshots 910, 912, 914. In some cases where the wearable device is unable to capture location data at or around the time of content capture, the client device may have more accurate location data.

[0075] For example, Figure 9System 900 shows data capture times 930 and 934 for content captured by a wearable device. Location snapshots 910, 912, 914 are associated with location parameters captured by an associated client device, while location updates 920, 922, 924 are location parameters generated by the wearable device that captured the content and is paired with the client device. When the wearable device downloads content to the client device, the content location can be analyzed and updated using the most recent location snapshot data from the client device if it is determined that the location information is more accurate than the location information from the wearable device. In Figure 9 the example of, the content actually captured at capture time 934 can be associated with the location measurement 922 made by the wearable device. When the content is downloaded to the client device, the client device can generate a timeline 902 to determine if the client device has more accurate location data to associate with the downloaded content. For example, the content captured at data capture time 930 is closer in time to the location update 920 that occurred at client device 510 than the location snapshot 910 at the wearable device or the time of any previous location measurement. Thus, the proximity to the later data capture time 930 can be used to set the location from location update 920 as associated with the content rather than the location from location snapshot 910. For the content captured at capture time 934, since the time of location snapshot 914 is closer to data capture time 934, followed by the time of location measurement 924 or 922, the location data associated with the content from data capture time 934 can be updated at the client device to the location data of the client device from location snapshot 914.

[0076] In various embodiments, other state data associated with the wearable device or client device can be used to determine the location data to associate with the captured content. For example, location snapshot 914 and location measurements 922, 924 can additionally be associated with motion information. If location snapshot 914 indicates that the client device was traveling at high speed at the time of location update 934 and other available data from the wearable device indicates that the wearable device was not traveling at high speed at data capture time 934 or location measurement 924, the client device can determine that location measurement 924 is more likely to provide accurate location information for the content associated with data capture time 934.

[0077] Figure 10 illustrates an example method according to some embodiments described herein. Figure 10Specifically describes method 1000 for reconciling location data associated with content to improve the accuracy of the associated location data and reduce power consumption in the operation of an associated wearable device. Method 1000 may involve operations at client device 510, which is paired or otherwise associated with a wearable device (such as wearable device 31 or any other such client companion device 314 described herein). In some embodiments, method 1000 is implemented in computer-readable instructions stored in the non-transitory memory of client device 510, and when these instructions are executed by the processing circuitry of client device 510, client device 510 performs method 1000.

[0078] Method 1000 begins with operation 1000, where operation 1002 pairs client device 510 with wearable device 31 via the processing circuitry of client device 510 using a first application running on client device 510. During the operation of an application associated with wearable device 31, or during other such operations at client device 510, operation 1004 involves capturing a first client location fix at a first time using the first application and location circuitry 413 of client device 510. Limiting such location operations to the operation of the application protects user privacy and allows the user to determine privacy settings associated with the collection of location data associated with wearable device 31 to those associated with the application. While such limitations provide less accurate location data, they improve user privacy and limit power usage for location-based services.

[0079] Then, operation 1006 involves receiving, at client device 510, a first piece of content from wearable device 31, where the first piece of content is associated with a content capture time and first wearable device location status data, where the first wearable device location status data includes location data and a location time, and where the location time is different from the content capture time. As described above, periodic location capture at wearable device 31 allows for improved battery performance but reduced location accuracy. Due to the pairing between wearable device 31 and client device 510, the system can make assumptions about the proximity of wearable device 31 and client device 510. In some embodiments, status data generated at wearable device 31 and / or client device 510 can be used to verify this assumption and further improve the accuracy estimate of the optimal location data to be associated with the content captured using wearable device 31. Then, operation 1008 involves processing the first piece of content to update the associated location for the first piece of content based on the estimated accuracy of the location data and the first client location fix.

[0080] In some embodiments, the estimated accuracy of location data is based on the temporal proximity of the content capture time to the location time and the first time. Some such embodiments involve generating a location flag when the temporal proximity is greater than a time threshold. Some such embodiments involve a speed value as part of the client location determination. In some such embodiments, the first piece of content is also associated with a first set of motion data, wherein the client device 510 is associated with a second set of motion data including a speed value, and wherein the estimated accuracy is further based on the first set of motion data and the second set of motion data. Status data may also be included in the estimated accuracy. For example, inertial sensor data or light sensor data may be provided and used to determine the status of the wearable device 31 at different times. Similar data may be used to determine the status of the client device 510 when an application associated with the wearable device 31 is running. A comparison of the status data may be used to further estimate the accuracy of the location data or otherwise determine the best location data associated with a particular piece of content. For example, if the status data at the client device 510 indicates "traveling" or "driving" and then indicates "stationary", then the content captured after the status transition to "stationary" is more likely to be associated with the location data determined after the start of the "stationary" state than the content captured during the "traveling" state, even if the time difference between the content capture time and the location determined during the "traveling" state is less than the time difference between the content capture time and the later location determined during the "stationary" state. Thus, if the client device 510 determines a first location fix during a "driving" state, 5 minutes later, content is captured at the wearable device 31, the status changes from "driving" to "stationary" at approximately the same time but no location fix is successful, and then another second location fix occurs 10 minutes later, the captured content may be associated with the second location fix rather than the first location fix due to the status data.

[0081] In some embodiments, when starting an application using the processing circuitry of client device 510, a first client location determination is initiated. Some embodiments involve, when the application is running on client device 510, using the location circuitry 413 of client device 510 to periodically perform client location determination operations and receiving, at client device 510, multiple pieces of content from wearable device 31, where each piece of the multiple pieces of content is associated with a corresponding content capture time and associated wearable device location status data. Then, for each piece of content, the method involves comparing the associated wearable device location status data with the client location determination operation to update the associated location. In some such embodiments, based on the time difference associated with the corresponding content capture time of each piece of content, the associated location for each piece of content is selected as the location of the client location determination operation or the associated wearable device location status data. Then, each piece of content and the associated location determined based on the time difference associated with the corresponding capture time are stored in the memory of client device 510.

[0082] As described above, methods 600, 800, and 1000 involve various different operations. Even though specific operations are described in a particular order, other embodiments may have repeated operations and intermediate operations, and various operations of different methods may be combined within other different embodiments. Thus, it is apparent that additional methods may be used, using the operations described or similar operations within the possible scope of the innovations described herein, to improve the power performance of wearable device 31 associated with the location services provided by wearable device 31 and paired client device 510.

[0083] Figure 11 To illustrate a network diagram of network system 1100 having a client-server architecture configured to exchange data over network 945, network system 1100 may be used with wearable device 31. For example, network system 1100 may be a messaging system 330, where clients transfer and exchange data within network system 1100, and where certain data may be transferred to or from wearable device 31 as described herein. This data may relate to various functions and aspects associated with network system 1100 and its users. Although network system 1100 is illustrated herein as having a client-server architecture, other embodiments may include other network architectures, such as peer-to-peer or distributed network environments.

[0084] As Figure 11 shown, network system 1100 includes messaging system 1130. Messaging system 1130 generally is based on a three-tier architecture, which includes interface layer 1124, application logic layer 1126, and data layer 1128. As will be understood by those skilled in the relevant computer and Internet-related arts,Figure 11 Each module or engine shown represents a set of executable software instructions and corresponding hardware (e.g., memory and a processor) for executing those instructions. In various embodiments, additional functional modules and engines may be used with the messaging system 1130 (e.g., Figure 11 as shown) to facilitate other functions not specifically described herein. Additionally, Figure 11 the various functional modules and engines shown in may reside on a single server computer or may be distributed across several server computers in various arrangements. Additionally, although Figure 11 the messaging system 1130 is shown in as having a three-tier architecture, the subject matter of the present invention is not limited to such an architecture.

[0085] As Figure 11 shown, the interface layer 1124 consists of an interface module (e.g., a web server) 1140 that receives requests from various client computing devices and servers (e.g., the client device 1110 executing the client application 1112 and the third-party server 1120 executing the third-party application 1122). In response to the received requests, the interface module 1140 transmits an appropriate response to the requesting device via the network 1104. For example, the interface module 1140 may receive requests such as hypertext transfer protocol (HTTP) requests or other web-based application programming interface (API) requests.

[0086] The client device 1110 may execute a conventional web browser application or an application (also referred to as an “app”) developed for a specific platform, to include various mobile computing devices and operating systems for mobile devices (e.g., IOS TM ANDROID TM , Any one of (PHONE). In the example, the client device 1110 is executing the client application 1112. The client application 1112 can provide functions to present information to the user 1106 and communicate via the network 1104 to exchange information with the messaging system 1130. Each of the client devices 1110 can include a computing device that includes at least a display 411 and communication capabilities with the network 1104 to access the messaging system 1130. The client devices 1110 include, but are not limited to, remote devices, workstations, computers 61, general-purpose computers, Internet tools, handheld devices, wireless devices, portable devices, wearable computers, cellular phones or mobile phones, personal digital assistants (PDAs), smartphones, tablets, ultrabooks, notebooks, laptops, desktops, multiprocessor systems, microprocessor-based or programmable consumer electronics, gaming consoles, set-top boxes, network PCs, minicomputers, and the like. The user 1106 can include an individual, a machine, or other devices that interact with the client device 1110. In some embodiments, the user 1106 interacts with the messaging system 1130 via the client device 1110.

[0087] As Figure 11 shown, the data layer 1128 has one or more database servers 1132, and the database servers 1132 facilitate access to the information repository or database 1134. The database 1134 is a storage device for storing data such as member profile data, social graph data (e.g., relationships between members of the messaging system 1130), and other user data.

[0088] An individual can register with the messaging system 1130 to become a member of the messaging system 1130. Once registered, the member can form social network relationships (e.g., friends, fans, or contacts) on the messaging system 1130 and interact with a wide range of applications provided by the messaging system 1130.

[0089] The application logic layer 1126 includes various application logic modules 1150 that, in conjunction with the interface module 1140, generate various user interfaces for data retrieved from various data sources or data services in the data layer 1128. A single application logic module 1150 can be used to implement functions associated with various applications, services, and features of the messaging system 1130. For example, a messaging application can be implemented using one or more application logic modules 1150. The messaging application provides a messaging mechanism for users 1106 of the client device 1110 to send and receive messages that include text and media content (such as pictures and videos). The client device 1110 can access and view messages from the messaging application for a specified period of time (e.g., limited or unlimited). In an example, specific information can be accessed by the message recipient for a predetermined duration (e.g., specified by the message sender), which begins when the specific message is first accessed. After the predetermined duration ends, the message is deleted and can no longer be accessed by the message recipient. Of course, other applications and services can be implemented separately in their own application logic modules 1150.

[0090] Example Machines and Hardware Components

[0091] The example electronic devices described above can incorporate various computer components or machine elements, at least some of which are configured to perform automated operations and / or automatically provide various functions. For example, these operations and / or functions include the automated image data processing and image capture parameter adjustment described above. Thus, the glasses 31 can provide a stand-alone computer system. Conversely or in addition, the glasses 31 can form part of a distributed system that includes one or more external processors and / or devices.

[0092] Figure 12 For block diagram 1200 depicting the software architecture 1202, the software architecture 1202 can be installed on any one or more of the devices described above. Figure 12 Merely a non-limiting example of a software architecture, it should be understood that many other architectures can be implemented to facilitate the functions described herein. In various embodiments, the software 1202 is implemented by hardware such as Figure 13Machine 1300 including processor 1310, memory 1330, and I / O components 1350. In this example architecture, software 1202 can be conceptualized as a stack of layers, where each layer provides a specific function. For example, software 1202 includes layers such as operating system 1204, libraries 1206, frameworks 1208, and applications 1210. In operation, application 1210 calls application programming interface (API) 1212 through the software stack and receives message 1214 in response to API call 1212, which is consistent with some embodiments. In various embodiments, any client device 510, server computer of server system 498, or other devices described herein can use elements of software 1202 to operate. Aspects of software 1202 can be used to implement devices such as camera controller 134 and other components of portable electronic devices as described above.

[0093] In various specific implementations, operating system 1204 manages hardware resources and provides common services. For example, operating system 1204 includes kernel 1212, services 1222, and drivers 1224. Kernel 1212 acts as an abstraction layer between the hardware and other software layers, which is consistent with some embodiments. For example, kernel 1212 provides functions such as memory management, processor management (e.g., scheduling), component management, network, and security settings, etc. Services 1222 can provide other common services for other software layers. According to some embodiments, drivers 1224 are responsible for controlling or interfacing with the underlying hardware. For example, drivers 1224 can include display drivers, camera drivers, low-power consumption drivers, flash memory, serial communication drivers (e.g., USB drivers), drivers, audio drivers, power management drivers, and so on. In certain specific implementations of a device (e.g., camera controller 134 of glasses 31), low-power circuit system 420 can operate using only drivers 1224 that include only low-power consumption drivers and basic logic for managing communication and controlling other devices, while other drivers operate using high-speed circuit system 430.

[0094] In some embodiments, library 1206 provides a low-level common infrastructure used by application 1210. Library 1206 may include system libraries 1230 (such as the C standard library), which may provide functions such as memory allocation functions, string manipulation functions, mathematical functions, and so on. Additionally, library 1206 may include API libraries 1232, such as media libraries (e.g., libraries that support the rendering and manipulation of various media formats, such as Moving Picture Experts Group-4 (MPEG4), High Efficiency Video Coding (H.264 or AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG)), graphics libraries (e.g., the OpenGL framework for 2D and 3D rendering in the graphics context of display 411), database libraries (e.g., SQLite that provides various relational database functions), web libraries (e.g., WebKit that provides web browsing functions), etc. Library 1206 may also include various other libraries 1234 to provide many other APIs for application 1210.

[0095] According to some embodiments, framework 1208 provides a high-level common infrastructure that can be utilized by application 1210. For example, framework 1208 provides various Graphical User Interface (GUI) functions, advanced resource management, advanced location services, and so on. Framework 1208 may provide a wide range of other APIs that can be utilized by application 1210, some of which may be specific to a particular operating system 1204 or platform.

[0096] In an example embodiment, application 1210 includes a home application 1250, contacts 1252, a browser application 1254, an e-book reader application 1256, a location application 1258, a media application 1260, a messaging application 1262, a game application 1264, and a wide range of other applications, such as third-party applications 1266. According to some embodiments, application 1210 is a program that executes functions defined in the program. One or more applications in application 1210 can be created using various programming languages, such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or procedural programming languages (e.g., the C language or assembly language). In a specific example, a third-party application 1266 (e.g., an application developed using an ANDROID TM or IOS TM software development kit (SDK)) can be an application on a mobile operating system (such as IOS TM 、ANDROID TM 、 Mobile software running on a Phone or other mobile operating system. In this example, the third-party application 1266 can call the API call 1212 provided by the operating system 1204 to facilitate the functions described herein.

[0097] The embodiments described herein can specifically interact with any application or application module that includes the use of location operations in a resource-constrained environment, such that continuous monitoring and updating of the device location is not feasible. Instead, a particular application 1210 can include location services as part of an application running on the wearable device 31, or the application 1210 can support location operations at the client device 1110 for use in conjunction with location services provided by a companion device or a wearable device 31 with resource limitations.

[0098] Certain embodiments are described herein as including logic or a plurality of components, modules, elements, or mechanisms. Such modules can constitute software modules (e.g., code implemented on a machine-readable medium or in a transmitted signal) or hardware modules. A "hardware module" is a tangible unit capable of performing certain operations and can be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems (e.g., a stand-alone computer system, a client computer system, or a server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) are configured by software (e.g., an application or a portion of an application) to operate as a hardware module that performs certain operations described herein.

[0099] In some embodiments, the hardware module is implemented mechanically, electronically, or any suitable combination thereof. For example, the hardware module can include dedicated circuitry or logic that is permanently configured to perform certain operations. For example, the hardware module can be a dedicated processor, such as a field-programmable gate array (FPGA) or an ASIC. The hardware module can also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, the hardware module can include software included in a general-purpose processor or other programmable processor 1310. It should be understood that the decision to implement the hardware module mechanically in dedicated and permanently configured circuitry or in temporarily configured circuitry (e.g., configured by software) can be driven by cost and time considerations.

[0100] Accordingly, the phrase "hardware module" should be understood to include a tangible entity that is a physical structure permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed) to operate in a particular manner or to perform certain operations as described herein. As used herein, "hardware-implemented module" refers to a hardware module. Considering embodiments in which a hardware module is temporarily configured (e.g., programmed), each hardware module in a hardware module need not be configured or instantiated at any one time. For example, if a hardware module includes a general-purpose processor 1310 that is configured by software as a dedicated processor, the general-purpose processor 1310 can be configured as different dedicated processors (e.g., including different hardware modules) at different times. Thus, software can configure a particular one or more processors 1310 to, for example, constitute a particular hardware module at one time and a different hardware module at a different time.

[0101] Hardware modules can provide information to and receive information from other hardware modules. Accordingly, the hardware modules can be considered to be communicatively coupled. If multiple hardware modules are present at the same time, communication can be achieved through signal transmission between two hardware modules or among more than two hardware modules (e.g., on appropriate circuits and buses). In embodiments of multiple hardware modules configured or instantiated at different times, such communication between the hardware modules can be achieved, for example, by storing and retrieving information in a memory structure accessible to the multiple hardware modules. For example, one hardware module performs an operation and stores the output of the operation in a memory device communicatively coupled to the hardware module. Then, another hardware module can later access the memory device to retrieve and process the stored output. Hardware modules can also initiate communication with input or output devices and can operate on resources (e.g., information collection).

[0102] The operations of the various example methods described herein can be performed, at least in part, by one or more processors 1310 that are temporarily configured (e.g., by software) or permanently configured to perform the associated operations. Whether temporarily or permanently configured, such processors 1310 constitute processor-implemented modules that operate to perform one or more of the operations or functions described herein. As used herein, "processor-implemented module" refers to a hardware module implemented using one or more processors 1310.

[0103] Similarly, the methods described herein may be at least partially processor-implemented, where a specific one or more processors 1310 are examples of hardware. For example, at least some of the operations in the method may be performed by one or more processors 1310 or processor-implemented modules. Additionally, the one or more processors 1310 may also operate to support the performance of relevant operations in a "cloud computing" environment or as "software as a service" (SaaS). For example, at least some of these operations may be performed by a group of computers 61 (as an example of a machine including processors 1310), where these operations can be accessed via a network 1104 (e.g., the Internet) and via one or more appropriate interfaces (e.g., an API). For example, in some embodiments, the client device 1110 may relay or operate in communication with a cloud computing system and may store media content in the cloud environment, such as images or videos generated by the devices described herein.

[0104] The performance of certain operations in the method may be distributed among the processors 1310, which are not only resident within a single machine but also deployed across many machines. In some example embodiments, the processors 1310 or processor-implemented modules are located in a single geographical location (e.g., within a home environment, within an office environment, or within a server farm). In other example embodiments, the processors 1310 or processor-implemented modules are distributed across many geographical locations.

[0105] Figure 13 is a block diagram illustrating components of a machine 1300 in accordance with some embodiments, the machine 1300 being capable of reading instructions from a machine-readable medium (e.g., a machine-readable storage medium) and performing any one or more of the methods discussed herein. Specifically, Figure 13A graphical representation of the machine 1300 is shown in the example form of a computer system, in which instructions 1316 (e.g., software, program, application, applet, app, or other executable code) can be executed to cause the machine 1300 to perform any one or more of the methods discussed herein. In alternative embodiments, the machine 1300 operates as a stand-alone device or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1300 can operate as a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 1300 can include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a PDA, an entertainment media system, a cellular phone, a smartphone, a mobile device, a wearable device 31 (e.g., a smartwatch), a smart home device (e.g., a smart appliance), other smart devices, a web device, a network router, a network switch, a network bridge, or any machine capable of executing instructions 1316 in sequence or otherwise, the instructions specifying the actions that the machine 1300 will take. Further, although only a single machine 1300 is illustrated, the term "machine" shall also be taken to include a collection of machines 1300 that individually or jointly execute instructions 1316 to perform any one or more of the methods discussed herein.

[0106] In various embodiments, the machine 1300 includes a processor 1310, a memory 1330, and I / O components 1350, which can be configured to communicate with each other via a bus 1302. In an example embodiment, the processor 1310 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an ASIC, a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) includes, for example, a processor 1312 and a processor 1314 that can execute instructions 1316. The term "processor" is intended to include a multi-core processor 1310, which can include two or more independent processors 1312, 1314 (also referred to as "cores") that can execute instructions 1316 simultaneously. Although Figure 13 multiple processors 1310 are shown, the machine 1300 can include a single processor 1312 with a single core, a single processor 1312 with multiple cores (e.g., a multi-core processor), multiple processors 1310 with a single core, multiple processors 1310 with multiple cores, or any combination thereof.

[0107] According to some embodiments, the memory 1330 includes a main memory 1332, a static memory 1334, and a storage unit 1336 that are accessible by the processor 1310 via the bus 1302. The storage unit 1336 may include a machine-readable medium on which instructions 1316 are stored, the instructions 1316 implementing any one or more of the methods and functions described herein. The instructions 1316 may also, during execution thereof by the machine 1300, reside completely or at least partially within the main memory 1332, within the static memory 1334, within at least one of the processors 1310 (e.g., within a cache memory of the processor), or in any suitable combination thereof. Accordingly, in various embodiments, the main memory 1332, the static memory 1334, and the processor 1310 are considered machine-readable media.

[0108] As used herein, the term "memory" refers to a machine-readable medium capable of storing data temporarily or permanently, and may be considered to include, without limitation, random access memory (RAM), read-only memory (ROM), cache memory, flash memory, and buffer memory. Although the machine-readable medium is shown as a single medium in the exemplary embodiments, the term "machine-readable medium" should be considered to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) capable of storing the instructions 1316. The term "machine-readable medium" should also be considered to include any medium or combination of multiple media capable of storing instructions (e.g., instructions 1316) for execution by a machine (e.g., machine 1300) such that the instructions 1316, when executed by one or more processors of the machine 1300 (e.g., processor 1310), cause the machine 1300 to perform any one or more of the methods described herein. Accordingly, the term "machine-readable medium" refers to a single storage device or apparatus, as well as "cloud-based" storage systems or storage networks that include multiple storage devices or apparatuses. Thus, the term "machine-readable medium" should be considered to include, without limitation, one or more data repositories in the form of solid-state memory (e.g., flash memory), optical media, magnetic media, other non-volatile memory (e.g., erasable programmable read-only memory (EPROM)), or any suitable combination thereof. The term "machine-readable medium" specifically excludes non-statutory signals per se.

[0109] The I / O components 1350 include a variety of components for receiving input, providing output, generating output, transmitting information, exchanging information, capturing measurement results, and so forth. In general, it should be understood that the I / O components 1350 may include Figure 13Many other components not shown. The I / O components 1350 are grouped according to function only to simplify the discussion below, and this grouping is in no way limiting. In various example embodiments, the I / O components 1350 include output components 1352 and input components 1354. The output components 1352 include visual components (e.g., a display 411, such as a plasma panel display (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), acoustic components (e.g., speakers), haptic components (e.g., a vibrating motor), other signal generators, and so on. The input components 1354 include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, an optical photo keyboard, or other alphanumeric input components), pointing-based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instruments), haptic input components (e.g., physical buttons, a touch screen that provides the location and force of a touch or touch gesture, or other haptic input components), audio input components (e.g., a microphone), and so on.

[0110] In addition, in some example embodiments, the I / O components 1350 include a wide variety of other components such as biometric components 1356, motion components 1358, environmental components 1360, or location components 1362. For example, the biometric components 1356 include components that detect expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), components that measure biometric signals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), components that identify someone (e.g., voice recognition, retina recognition, facial recognition, fingerprint recognition, or electroencephalogram-based recognition), and so on. The motion components 1358 include acceleration sensor components (e.g., an accelerometer), gravity sensor components, rotational sensor components (e.g., a gyroscope), and so on. The environmental components 1360 include, for example, lighting sensor components (e.g., a photometer), temperature sensor components (e.g., one or more thermometers that detect the ambient temperature), humidity sensor components, pressure sensor components (e.g., a barometer), sound sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., an infrared sensor that detects nearby objects), gas sensor components (e.g., a machine olfactory detection sensor, a gas detection sensor that detects the concentration of harmful gases for safety reasons or measures pollutants in the atmosphere), or other components that can provide an indication, measurement result, or signal corresponding to the surrounding physical environment. The location components 1362 include location sensor components (e.g., a global positioning system (GPS) receiver component), altitude sensor components (e.g., an altimeter or a barometer that detects the air pressure from which altitude can be derived), direction sensor components (e.g., a magnetometer), and so on.

[0111] Communication can be implemented using a variety of techniques. The I / O component 1350 can include a communication component 1364 that operatively couples the machine 1300 to the network 1380 or the device 1370 via the coupling 1382 and the coupling 1372, respectively. For example, the communication component 1364 includes a network interface component or another suitable device that interfaces with the network 1380. In additional examples, the communication component 1364 includes a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, components (e.g., low power consumption), components and other communication components to provide communication via other means. The device 1370 can be another machine 1300 or various peripheral devices (e.g., peripheral devices coupled via USB).

[0112] In addition, in some embodiments, the communication component 1364 detects an identifier or includes a component that operatively detects an identifier. For example, the communication component 1364 includes a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting a one-dimensional barcode (e.g., a Universal Product Code (UPC) barcode), a multi-dimensional barcode (e.g., a Quick Response (QR) code, an Aztec code, a Data Matrix, a Dataglyph, a MaxiCode, a PDF417, a hypercode, a Uniform Commercial Code-reduced space symbol (UCCRSS)-2D barcode), and other optical codes), an acoustic detection component (e.g., a microphone that identifies a tagged audio signal), or any suitable combination thereof. Additionally, various information can be derived via the communication component 1364, such as a location via Internet Protocol (IP) geolocation, a location via signal triangulation, a location via detecting or an NFC beacon signal that can indicate a specific location, and so on.

[0113] In various example embodiments, one or more portions of the network 1380 can be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless local area network (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, a network, another type of network, or a combination of two or more such networks. For example, network 1380 or a portion of network 1380 may include a wireless or cellular network, and coupling 1382 may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile Communications (GSM) connection, or another type of cellular or wireless coupling. In this example, coupling 1382 may implement various types of data transfer technologies, such as Single Carrier Radio Transmission Technology (1xRTT), Evolution-Data Optimized (EVDO) technology, General Packet Radio Service (GPRS) technology, Enhanced Data Rate for GSM Evolution (EDGE) technology, 3rd Generation Partnership Project (3GPP) (including 3G), 4th Generation Wireless (4G) network, Universal Mobile Telecommunications System (UMTS), High Speed Packet Access (HSPA), Worldwide Interoperability for Microwave Access (WiMAX), Long Term Evolution (LTE) standard, other standards defined by various standards-setting organizations, other remote protocols, or other data transfer technologies.

[0114] In an example embodiment, instructions 1316 are sent or received over network 1380 via a network interface device (e.g., a network interface component included in communication component 1364) using a transmission medium and leveraging any one of a number of well-known transfer protocols (e.g., HTTP). Similarly, in other example embodiments, instructions 1316 are sent or received using a transmission medium via a coupling 1372 to device 1370 (e.g., a point-to-point coupling). The term "transmission medium" should be considered to include any non-transitory medium that is capable of storing, encoding, or carrying instructions 1316 executed by machine 1300 and includes digital or analog communication signals or other non-transitory media to facilitate the communication of such software.

[0115] Furthermore, the machine-readable medium is non-transitory (in other words, not any transitory signals) as it does not implement a propagated signal. However, labeling the machine-readable medium as "non-transitory" should not be construed to mean that the medium cannot be moved; the medium should be considered capable of being transferred from one physical location to another. Additionally, since the machine-readable medium is tangible, the medium can be considered a machine-readable device.

[0116] Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently and need not be performed in the order illustrated. Structures and functions presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functions presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.

[0117] While the subject matter of the present invention has been outlined with reference to specific example embodiments, various modifications and changes can be made to these embodiments without departing from the broader scope of the disclosed embodiments. Such embodiments of the subject matter of the present invention may be referred to herein individually or collectively by the term "invention" for convenience only and are not intended to limit the scope of the present application to any single disclosure or inventive concept (if more than one is disclosed).

[0118] The embodiments shown herein are described in sufficient detail to enable those skilled in the art to practice the disclosed teachings. Other embodiments can be utilized and derived therefrom, such that structural and logical substitutions and changes can be made without departing from the scope of the present disclosure. Accordingly, this detailed description should not be construed in a limiting sense, and the scope of the various embodiments is defined only by the appended claims and the full scope of equivalents to which such claims are entitled.

[0119] As used herein, the term "or" may be interpreted in either an inclusive or exclusive sense. In addition, plural instances may be provided for resources, operations, or structures described herein as a single instance. Beyond that, the boundaries between various resources, operations, modules, engines, and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other function allocations are envisioned and may fall within the scope of various embodiments of the present disclosure. Generally, structures and functions presented as separate resources in example configurations may be implemented as a combined structure or resource. Similarly, structures and functions presented as a single resource may also be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within the scope of the embodiments of the present disclosure as expressed by the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than a limiting sense.

Claims

1. A method, comprising: Receiving position support data via a first wireless connection at a high-speed circuitry of a device of a wearable device; Storing the position support data in a memory of the wearable device; Initiating a position operation at the wearable device when operating a position circuitry of the device in a low-power state of a position circuitry including a real-time timer and operating the high-speed circuitry in a high-speed circuitry low-power state; In response to the initiation of the position operation, transitioning the position circuitry from the low-power state to a high-power acquisition state via a low-power circuitry, the position circuitry being separate from the high-speed circuitry and the low-power circuitry; In response to the initiation of the position operation, starting the high-speed circuitry and transmitting the position support data in the memory to the position circuitry; Using the position circuitry and a second wireless connection to generate position status data using the position support data and information from the real-time timer, wherein the position circuitry operates in the high-power acquisition state; and After the position support data is transmitted to the position circuitry and before the generation of the position status data, returning the high-speed circuitry to a high-speed circuitry low-power operating state.

2. The method according to claim 1, further comprising: Receiving the position support data from a client device.

3. The method according to claim 1, wherein The position support data is satellite ephemeris data, and wherein the second wireless connection receives signals from a Global Navigation Satellite System GNSS.

4. The method according to claim 1, further comprising: Transmitting the position status data to the high-speed circuitry for storage in the memory; And Returning the position circuitry to the low-power state.

5. The method according to claim 1, further comprising: Transitioning the high-speed circuitry to a high-speed circuitry low-power state.

6. The method according to any one of claims 1 to 5, further comprising: Before the receiving, in response to the initiation of the position operation, transitioning the high-speed circuitry to a high-speed circuitry high-power state.

7. The method according to any one of claims 1 to 5, wherein The position operation is initiated at the wearable device in response to receiving an input signal at the low-power circuitry.

8. The method according to any one of claims 1 to 5, wherein The position status data indicates a position failure indication.

9. The method according to claim 8, further comprising: In response to the capture of one or more images by a camera sensor of the wearable device and the position status data indicating the position failure indication, associating the one or more images with previously cached position status data.

10. The method according to any one of claims 1 to 5, wherein, The position status data includes a plurality of position parameters, the plurality of position parameters including an indication of the time for determining the position status data and a position indication.

11. The method according to any one of claims 1 to 5, wherein The position operation is initiated at the wearable device in response to a periodic position timer.

12. The method according to claim 10, wherein, The position operation is also initiated at the wearable device in response to a determination made by a neural network that determines that the wearable device has been in a worn state for at least a threshold period of time.

13. The method according to any one of claims 1 to 5, wherein The position status data is further generated based on data from an inertial measurement unit.

14. An apparatus of a wearable device, comprising a high-speed circuitry; a low-power circuitry coupled to the high-speed circuitry; a position circuitry coupled to the low-power circuitry; a memory coupled to the high-speed circuitry; wherein when operating the position circuitry in a position circuitry low-power state including a real-time timer and operating the high-speed circuitry in a high-speed circuitry low-power state, a position operation is initiated at the wearable device; wherein the high-speed circuitry is configured to: receive position support data via a first wireless connection, store the position support data in the memory, respond to the initiation of the position operation by starting the high-speed circuitry and transferring the position support data in the memory to the position circuitry, and return the high-speed circuitry to a high-speed circuitry low-power operating state after the position support data is transferred to the position circuitry and before generation of the position status data; wherein the low-power circuitry is configured to: respond to the initiation of the position operation by transitioning the position circuitry from a low-power state to a high-power acquisition state; and wherein the position circuitry is configured to: generate the position status data using the position support data and information from the real-time timer using a second wireless connection, wherein the position circuitry operates in the high-power acquisition state.

15. The apparatus according to claim 14, wherein, The position support data is satellite ephemeris data, and wherein the second wireless connection receives signals from a Global Navigation Satellite System GNSS.

Citation Information

Patent Citations

  • Electronic still camera and image processing apparatus

    US20090033768A1

  • Method and Apparatus for Faster Global Positioning System (GPS) Location Using Pre-Downloaded Assistance Data

    US20090085801A1

  • GPS baseband controller architecture

    US20110102257A1

  • Location determination using communicatively coupled electronic devices

    US20160066149A1

  • Systems and methods for reducing boot time and power consumption in camera systems

    US9692967B1