A shooting method and electronic device
By predicting and dynamically adjusting the buffer time using the main device, the problem of asynchronous data display in multi-device shooting scenarios was solved, enabling synchronized display of the captured images and improving the user experience.
Patent Information
- Application Number
- CN202110077728.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-01-20
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2041-01-20
AI Technical Summary
In scenarios where multiple electronic devices are shooting simultaneously, factors such as network latency can cause the displayed data to be out of sync, affecting the user experience.
By predicting and dynamically adjusting the buffer time using the main device, the system ensures that the images captured by multiple devices are displayed synchronously at the same time. This includes calculating image processing and transmission delays and dynamically updating the buffer time to maintain synchronization.
It improves the user experience, ensures the synchronization of footage captured by multiple devices when displayed, and reduces latency.
Smart Images

Figure CN114866659B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of terminals, and more particularly to a shooting method and an electronic device. Background Technology
[0002] Currently, many users or households have multiple electronic devices with shooting capabilities. In some scenarios, users may need to use multiple electronic devices simultaneously to take pictures.
[0003] For example, while watching a performance or game, a user can place electronic device 1 at position 1 and electronic device 2 at position 2. Then, while electronic device 1 starts recording video, electronic device 2 can simultaneously start recording video. Furthermore, during recording, electronic device 2 can send the captured image data to electronic device 1 in real time. Electronic device 1 can then simultaneously display the data captured by both electronic devices, presenting the target to the user from multiple angles.
[0004] However, for image data collected at the same time, due to factors such as network latency, the display data received by electronic device 1 from electronic device 2 will also be delayed. This will cause the display data of electronic device 1 and electronic device 2 to be out of sync when displayed at the same time, which will reduce the user experience. Summary of the Invention
[0005] This application provides a shooting method and an electronic device that can reduce the latency between display data acquired by multiple electronic devices, enabling the electronic devices to maintain synchronization when displaying the shooting screens of multiple devices, thereby improving the user experience.
[0006] To achieve the above objectives, this application adopts the following technical solution:
[0007] In a first aspect, this application provides a shooting method, comprising: a first device receiving a first operation from a user selecting to shoot synchronously with a second device; then, in response to the first operation, the first device can start capturing shooting images, and the first device can instruct the second device to start capturing shooting images; subsequently, after the first device obtains the Nth (N is an integer greater than 0) frame of the first device's shooting images, the first device can wait for a preset buffer time before displaying the Nth frame of the first device's shooting images in a first window; and after the first device obtains the Nth frame of the second device's shooting images, the first device can directly display the Nth frame of the second device's shooting images in a second window, wherein the first window and the second window are located on the same display interface.
[0008] In other words, in a synchronized shooting scenario, for the same frame (e.g., the Nth frame), since the Nth frame from the first device is usually obtained earlier than the Nth frame from the second device, a buffer time T can be set for the first device to synchronously display the frames from both devices. After the first device obtains each frame from its own device, it can wait for a period of time (T) before displaying the frame from its own device. Conversely, after the first device obtains each frame from its own device, it can directly display the frame from its own device. In this way, after the buffer time T, the frames from the first device can be presented to the user as synchronously as possible with the frames from the second device, improving the user experience.
[0009] In one possible implementation, after the first device receives the first operation from the user selecting to synchronously capture images with the second device, the method further includes: the first device acquiring a first delay, which indicates the time consumed by the first device to process an image of a captured frame; the first device acquiring a second delay, which indicates the time consumed by the second device to process an image of a captured frame; and the first device acquiring a third delay, which indicates the network delay for transmitting an captured frame between the second device and the first device; wherein the buffer time is equal to the second delay plus the third delay minus the first delay.
[0010] In other words, based on the first delay (also known as the master device delay L1), the second delay (also known as the slave device delay L2), and the third delay (also known as the transmission delay L3), the first device can predict that after obtaining the captured image from the first device, it will take L2+L3-L1 time to obtain the corresponding captured image from the second device. Therefore, the first device can set the buffer time T to L2+L3-L1.
[0011] In one possible implementation, after the first device receives a first operation from the user selecting to synchronously shoot with the second device, the method further includes: the first device acquiring shooting capability parameters of the second device, the shooting capability parameters indicating the image processing capability of the second device; the first device determining a shooting strategy based on the shooting capability parameters, the shooting strategy including X image processing tasks to be performed by the first device and Y image processing tasks to be performed by the second device, where X and Y are both integers greater than 0; wherein, the first delay is the time required for the first device to perform X image processing tasks; and the second delay is the time required for the second device to perform Y image processing tasks.
[0012] In one possible implementation, the first device obtains the third delay by: the first device sending a test data packet to the second device; the first device receiving a response data packet sent by the second device in response to the test data packet; and the first device calculating the third delay based on the time interval between sending the test data packet and receiving the response data packet.
[0013] In one possible implementation, when N > 1, the method further includes: the first device acquiring the actual frame delay between the Nth frame captured by the first device and the Nth frame captured by the second device; and the first device updating the buffer time based on the actual frame delay. In other words, the first device can dynamically update the buffer time T based on the actual frame delay between each frame captured by the first device and the second device, ensuring that the buffer time T is as consistent as possible with the current frame delay between the first device and the second device. This way, the first device can display the captured frames from the two devices in a synchronized manner during synchronous shooting.
[0014] In one possible implementation, the first device acquires the actual image delay between the Nth frame captured by the first device and the Nth frame captured by the second device, including: the first device recording a first time T1 for acquiring the Nth frame captured by the first device; the first device recording a second time T2 for acquiring the Nth frame captured by the second device; and the first device calculating the actual image delay between the Nth frame captured by the first device and the Nth frame captured by the second device, wherein the actual image delay = the second time T2 - the first time T1.
[0015] In one possible implementation, the first device updates the buffer time based on the actual screen latency, including: the first device sets the value of the buffer time to the value of the actual screen latency, that is, the buffer time T is equal to the latest actual screen latency.
[0016] Alternatively, the first device can use a preset algorithm to predict the frame delay between the next frame captured from the first device and the next frame captured from the second device based on the aforementioned frame delay, and then update the aforementioned buffer time T.
[0017] In one possible implementation, after the first device updates the buffer time according to the actual image delay, the method further includes: when the first device obtains the N+1th frame captured from the first device, the first device waits for the updated buffer time and then displays the N+1th frame captured from the first device in the first window; when the first device obtains the N+1th frame captured from the second device, the first device displays the N+1th frame captured from the second device in the second window.
[0018] In other words, during the synchronous shooting process of the first and second devices, the first device can predict the image delay between the Nth (N is an integer greater than 0) frame captured by the first and second devices by calculating the actual image delay between the Nth (N is an integer greater than 0) frame captured by the first and second devices. Then, the mobile phone can update the buffer time T based on the prediction result, so that the N+1 frame captured by the first device can be presented to the user in a more synchronized manner with the N+1 frame captured by the second device after the buffer time T. This ensures that the mobile phone maintains as much synchronization as possible when displaying images captured by multiple devices, thereby improving the user experience.
[0019] In one possible implementation, the first window may include the identifier of the first device, and the second window may include the identifier of the second device, thereby prompting the user to identify the specific device from which the captured image is sourced in each window.
[0020] In one possible implementation, the first device acquires the Nth frame of the captured image, which includes: the first device using a camera to capture the Nth frame of image data; and the first device performing image processing (e.g., beautification, focus adjustment, exposure adjustment, etc.) on the Nth frame of image data to obtain the corresponding Nth frame of the captured image.
[0021] In one possible implementation, before the first device receives a first operation from the user selecting to simultaneously shoot with the second device, the method further includes: the first device displaying a preview interface of a camera application, the preview interface including a button for simultaneous shooting; in response to a second operation for clicking the button, the first device displaying a list of candidate devices in the preview interface, the list including the second device; wherein the first operation is the user selecting the second device from the list of candidate devices.
[0022] In one possible implementation, after the first device receives a first operation from the user selecting to synchronize shooting with the second device, the method further includes: in response to the first operation, the first device and the second device synchronize their clocks. When the clocks of the first device and the second device are synchronized, the accuracy of the image delay determined by the first device according to the above method is higher, thereby making the captured images of the two devices as synchronized as possible.
[0023] In a second aspect, this application provides an electronic device (such as the first device described above), comprising: a display screen, a communication module, one or more processors, one or more memories, one or more cameras, and one or more computer programs; wherein the processor is coupled to the communication module, the display screen, the cameras, and the memories, and the one or more computer programs are stored in the memories. When the electronic device is running, the processor executes the one or more computer programs stored in the memories to cause the electronic device to perform the shooting method described in any of the above aspects.
[0024] Thirdly, this application provides an electronic device (such as the second device described above), comprising: a communication module, one or more processors, one or more memories, one or more cameras, and one or more computer programs; wherein the processor is coupled to the communication module and the memory, and the one or more computer programs are stored in the memory. When the electronic device is running, the processor executes the one or more computer programs stored in the memory to cause the electronic device to perform the shooting method described in any of the above aspects.
[0025] Fourthly, this application provides an audio system including the first device and the second device described above, wherein the first device and the second device can interact to perform the shooting method described in any of the above aspects.
[0026] Fifthly, this application provides a computer-readable storage medium including computer instructions that, when executed on the first or second device, cause the first or second device to perform the shooting method described in either aspect.
[0027] Sixthly, this application provides a computer program product that, when run on the first or second device, causes the first or second device to perform the shooting method described in any of the above aspects.
[0028] Understandably, the electronic devices, audio systems, computer-readable storage media, and computer program products provided in the above-mentioned aspects are all applied to the corresponding methods provided above. Therefore, the beneficial effects they can achieve can be referred to the beneficial effects in the corresponding methods provided above, and will not be repeated here. Attached Figure Description
[0029] Figure 1 This is a schematic diagram of the architecture of a distributed shooting system provided in an embodiment of this application;
[0030] Figure 2 This application provides an illustration of an shooting method for a specific scenario. Figure 1 ;
[0031] Figure 3 This application provides an illustration of an shooting method for a specific scenario. Figure 2 ;
[0032] Figure 4 This application provides an illustration of an shooting method for a specific scenario. Figure 3 ;
[0033] Figure 5 A schematic diagram of the structure of an electronic device provided in this application embodiment. Figure 1 ;
[0034] Figure 6 A schematic diagram of the architecture of an operating system in an electronic device provided in an embodiment of this application;
[0035] Figure 7 This application provides an illustration of an shooting method for a specific scenario. Figure 4 ;
[0036] Figure 8 This application provides an illustration of an shooting method for a specific scenario. Figure 5 ;
[0037] Figure 9 This application provides an illustration of an shooting method for a specific scenario. Figure 6 ;
[0038] Figure 10 This application provides an illustration of an shooting method for a specific scenario. Figure 7 ;
[0039] Figure 11 This application provides an illustration of an shooting method for a specific scenario. Figure 8 ;
[0040] Figure 12 This application provides an illustration of an shooting method for a specific scenario. Figure 9 ;
[0041] Figure 13 This application provides an illustration of an shooting method for a specific scenario. Figure 10 ;
[0042] Figure 14A This application provides an illustration of an shooting method for a specific scenario. Figure 10 one;
[0043] Figure 14B This application provides an illustration of an shooting method for a specific scenario. Figure 10 two;
[0044] Figure 15 This application provides an illustration of an shooting method for a specific scenario. Figure 10 three;
[0045] Figure 16 This application provides an illustration of an shooting method for a specific scenario. Figure 10 Four;
[0046] Figure 17 This application provides an illustration of an shooting method for a specific scenario. Figure 10 five;
[0047] Figure 18 This application provides an illustration of an shooting method for a specific scenario. Figure 10 six;
[0048] Figure 19 A schematic diagram of the structure of an electronic device provided in this application embodiment. Figure 2 ;
[0049] Figure 20 A schematic diagram of the structure of an electronic device provided in this application embodiment. Figure 3 . Detailed Implementation
[0050] The implementation of this embodiment will now be described in detail with reference to the accompanying drawings.
[0051] The shooting method provided in this application embodiment can be applied to... Figure 1 The distributed shooting system 200 shown is an example. Figure 1 As shown, the distributed shooting system 200 may include a master device 101 and N slave devices 102, where N is an integer greater than 0. The master device 101 and any one of the slave devices 102 can communicate via wired or wireless means.
[0052] For example, a wired connection can be established between master device 101 and slave device 102 using a universal serial bus (USB). Alternatively, a wireless connection can be established between master device 101 and slave device 102 using Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Time-Division Code Division Multiple Access (TD-SCDMA), Long Term Evolution (LTE), 5G and subsequent standards, Bluetooth, Wireless Fidelity (Wi-Fi), NFC, Voice over Internet Protocol (VoIP), or communication protocols supporting network slicing architectures.
[0053] Both the master device 101 and the slave device 102 can be equipped with one or more cameras. The master device 101 can use its own camera to capture image data, and the slave device 102 can also use its own camera to capture image data. In this embodiment, the master device 101 and the slave device 102 can simultaneously use their own cameras to capture image data, and the slave device 102 can send the image data to the master device 101, so that the master device 101 can simultaneously display the image data from both the master device 101 and the slave device 102, thereby realizing a distributed shooting function across devices.
[0054] For example, the main device 101 (or slave device 102) can specifically be a mobile phone, tablet computer, television (also known as a smart TV, smart screen or large screen device), laptop computer, ultra-mobile personal computer (UMPC), handheld computer, netbook, personal digital assistant (PDA), wearable electronic device (e.g., smartwatch, smart bracelet, smart glasses), in-vehicle device, virtual reality device, and other electronic devices with shooting function. This application embodiment does not impose any limitations on this.
[0055] Taking a mobile phone as the main device 101 as an example, a camera application can be installed on the phone to enable shooting functions. For example... Figure 2 As shown, after detecting that the user has opened the camera application, the phone can open its own camera to start collecting image data, and display the corresponding shooting screen in real time in the preview box 202 of the preview interface 201 based on the collected image data.
[0056] The captured image displayed in the preview frame 202 may differ from the image data captured by the phone's camera. For example, after acquiring the image data from the camera, the phone can perform image processing tasks such as image stabilization, focusing, soft focus, bokeh, filters, beautification, face detection, or AR recognition to obtain a processed captured image. The phone can then display this processed captured image in the preview frame 202.
[0057] Similarly, device 102 can also turn on its own camera to start collecting image data, and perform image processing tasks such as image stabilization, focusing, soft focus, blurring, filtering, beautification, face detection or AR recognition on the collected image data to obtain the image-processed shooting screen. This application embodiment does not impose any limitations on this.
[0058] In this embodiment, the mobile phone can set a function button 203 for synchronous shooting in the preview interface 201 of the camera application. When the user wants to see the shooting screen of the mobile phone and the slave device 102 shooting synchronously on the mobile phone, he / she can click the function button 203 to start the synchronous shooting function.
[0059] For example, after the phone detects that the user has clicked function button 203, such as Figure 3 As shown, the mobile phone can display one or more candidate devices that can capture image data in dialog box 301. For example, the server can record whether each electronic device has a camera function. Then, the mobile phone can query the server for electronic devices with camera functions that are logged into the same account as the mobile phone (e.g., a Huawei account). The mobile phone can then display the queried electronic devices as candidate devices in dialog box 301.
[0060] Alternatively, the phone can search for electronic devices on the same Wi-Fi network. The phone can then send query requests to each electronic device on the same Wi-Fi network. The electronic device receiving the query request can send a response message to the phone, indicating whether it has a camera function. The phone can then determine which electronic devices on the current Wi-Fi network have a camera function based on the received response message. The phone can then display these camera-enabled devices as candidate devices in dialog box 301.
[0061] Alternatively, an application for managing smart home devices (such as televisions, air conditioners, speakers, or refrigerators) can be installed on the mobile phone. Taking a smart home application as an example, a user can add one or more smart home devices, establishing a connection between the added devices and the mobile phone. For instance, a QR code containing device information such as a device identifier can be set on the smart home device. After scanning the QR code with the mobile phone's smart home application, the user can add the corresponding smart home device to the application, thereby establishing a connection between the smart home device and the mobile phone. In this embodiment, when one or more smart home devices added to the smart home application come online, for example, when the mobile phone detects a Wi-Fi signal sent by an added smart home device, the mobile phone can display the smart home device as a candidate device in dialog box 301, prompting the user to select the corresponding smart home device to simultaneously take photos with the mobile phone.
[0062] Still Figure 3As shown, taking the candidate devices searched by the mobile phone as an example, including TV 1, watch 2, and mobile phone 3, the user can select the slave device 102 to be used for synchronous shooting with the mobile phone from TV 1, watch 2, and mobile phone 3. For example, if the user selects TV 1, the mobile phone can use TV 1 as a slave device and establish a network connection with TV 1. For example, the mobile phone can establish a Wi-Fi connection with TV 1 through a router; or, the mobile phone can directly establish a Wi-Fi P2P connection with TV 1; or, the mobile phone can directly establish a Bluetooth connection with TV 1; or, the mobile phone can directly establish a short-range wireless connection with TV 1, which includes, but is not limited to, NFC (Near Field Communication) connection, infrared connection, UWB (Ultra Wideband) connection, ZigBee connection; or, the mobile phone can directly establish a mobile network connection with TV 1, which includes, but is not limited to, mobile networks supporting 2G, 3G, 4G, 5G, and subsequent standard protocols.
[0063] In other embodiments, after the mobile phone detects that the user has clicked function button 203, the mobile phone can search for one or more electronic devices with camera functionality using the method described above. Then, the mobile phone can automatically establish a network connection with the searched electronic devices. In this case, the user does not need to manually select the specific device to establish a network connection with the mobile phone.
[0064] Alternatively, the phone may have already established a network connection with one or more electronic devices with shooting capabilities before the user opens the camera app. For example, the user may have already established a Bluetooth connection with a tablet before opening the camera app on the phone. Subsequently, after the phone opens the camera app and displays the camera app preview interface 201, if it detects that the user clicks the function button 203, the phone may no longer search for electronic devices with shooting capabilities, but instead perform the following method.
[0065] For example, after the mobile phone and TV 1 establish a network connection, on the one hand, such as Figure 4 As shown, the mobile phone can open its own camera to start collecting image data, and perform image processing on the collected image data to obtain the captured image 1; on the other hand, as... Figure 4 As shown, taking a mobile phone and a television 1 as examples of shooting the same target, the mobile phone can instruct the television 1 to open its own camera to start collecting image data, and then process the collected image data to obtain the captured image 2. Subsequently, the television 1 can send the captured image 2 to the mobile phone. In this way, the mobile phone can simultaneously display the captured image 1 from the mobile phone and the captured image 2 from the television 1 in the camera application's display interface.
[0066] During the simultaneous shooting process between the mobile phone and TV 1, as described above, Figure 4As shown, the time it takes for the mobile phone to process the acquired image data is L1, the time it takes for TV 1 to process the acquired image data is L2, and the time it takes for TV 1 to send the captured image 2 to the mobile phone is L3. Since L2 + L3 is generally greater than L1, the time it takes for the mobile phone to obtain captured image 2 will be later than the time it takes to obtain captured image 1. The image delay between captured image 2 and captured image 1 is S = L2 + L3 - L1. This will cause the mobile phone to be out of sync when displaying captured image 1 and captured image 2, thus degrading the user experience.
[0067] In this embodiment, during synchronous shooting with the slave device 102 (e.g., the aforementioned mobile phone), the master device 101 (e.g., the aforementioned television 1) can calculate the frame delay S between the shooting frames of the master device 101 and the slave device 102 in real time. Furthermore, the master device 101 can synchronously display subsequent shooting frames from both the master device 101 and the slave device 102 according to this frame delay S, ensuring that the shooting frames obtained by the master device 101 and the slave device 102 at the same time are presented to the user as synchronously as possible, thus improving the user experience when using the synchronous shooting function.
[0068] The specific details of the simultaneous display of the captured images of the master device 101 and the slave device 102 will be described in detail in subsequent embodiments, and therefore will not be repeated here.
[0069] For example, taking a mobile phone as the main device 101 in the aforementioned distributed shooting system 200, Figure 5 A schematic diagram of the mobile phone structure is shown.
[0070] The mobile phone may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, a headphone jack 170D, a sensor module 180, etc.
[0071] It is understood that the structures illustrated in the embodiments of the present invention do not constitute a specific limitation on the mobile phone. In other embodiments of this application, the mobile phone may include more or fewer components than illustrated, or combine some components, or split some components, or have different component arrangements. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.
[0072] Processor 110 may include one or more processing units, such as: application processor (AP), modem processor, graphics processing unit (GPU), image signal processor (ISP), controller, memory, video codec, digital signal processor (DSP), baseband processor, and / or neural network processing unit (NPU), etc. Different processing units may be independent devices or integrated into one or more processors.
[0073] The processor 110 may also include a memory for storing instructions and data. In some embodiments, the memory in the processor 110 is a cache memory. This memory can store instructions or data that the processor 110 has just used or that are used repeatedly. If the processor 110 needs to use the instruction or data again, it can retrieve it directly from the memory. This avoids repeated accesses, reduces the waiting time of the processor 110, and thus improves the efficiency of the system.
[0074] The wireless communication function of a mobile phone can be implemented through antenna 1, antenna 2, mobile communication module 150, wireless communication module 160, modem processor, and baseband processor.
[0075] Antenna 1 and antenna 2 are used to transmit and receive electromagnetic wave signals.
[0076] The mobile communication module 150 can provide wireless communication solutions, including 2G / 3G / 4G / 5G, for use in mobile phones. In some embodiments, at least some functional modules of the mobile communication module 150 can be housed in the processor 110. In some embodiments, at least some functional modules of the mobile communication module 150 and at least some modules of the processor 110 can be housed in the same device.
[0077] The wireless communication module 160 can provide solutions for wireless communication applications in mobile phones, including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks), Bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), infrared (IR) technology, and other wireless communication technologies.
[0078] In some embodiments, the mobile phone's antenna 1 is coupled to the mobile communication module 150, and the antenna 2 is coupled to the wireless communication module 160, enabling the mobile phone to communicate with networks and other devices via wireless communication technology.
[0079] The mobile phone implements its display function through a GPU, a display screen 194, and an application processor. The GPU is a microprocessor for image processing, connected to the display screen 194 and the application processor. The GPU is used to perform mathematical and geometric calculations and for graphics rendering. The processor 110 may include one or more GPUs, which execute program instructions to generate or modify display information.
[0080] Display screen 194 is used to display images, videos, etc. Display screen 194 includes a display panel. The display panel may be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLED), a miniature LED, a microLED, a quantum dot light-emitting diode (QLED), etc. In some embodiments, the mobile phone may include one or N displays 194, where N is a positive integer greater than 1.
[0081] Mobile phones can achieve shooting functions through ISP, camera 193, video codec, GPU, display 194 and application processor.
[0082] Camera 193 is used to capture still images or videos. An object is projected onto a photosensitive element by generating an optical image through the lens. The photosensitive element can be a charge-coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The photosensitive element converts the light signal into an electrical signal, which is then passed to an ISP for conversion into a digital image signal. The ISP outputs the digital image signal to a DSP for processing. The DSP converts the digital image signal into image signals in standard RGB, YUV, or other formats. In some embodiments, the mobile phone may include one or N cameras 193, where N is a positive integer greater than 1.
[0083] The external storage interface 120 can be used to connect an external storage card, such as a Micro SD card, to expand the phone's storage capacity. The external storage card communicates with the processor 110 through the external storage interface 120 to perform data storage functions. For example, music, video, and other files can be saved on the external storage card.
[0084] Internal memory 121 can be used to store computer executable program code, which includes instructions. Processor 110 executes various mobile phone functions and data processing by running the instructions stored in internal memory 121. Internal memory 121 may include a program storage area and a data storage area. The program storage area may store the operating system, at least one application program required for a function (such as sound playback, image playback, etc.), etc. The data storage area may store data created during mobile phone use (such as audio data, phonebook, etc.). Furthermore, internal memory 121 may include high-speed random access memory and may also include non-volatile memory, such as at least one disk storage device, flash memory device, universal flash storage (UFS), etc.
[0085] Mobile phones can perform audio functions, such as music playback and recording, through components like the audio module 170, speaker 170A, receiver 170B, microphone 170C, headphone jack 170D, and application processor.
[0086] The audio module 170 is used to convert digital audio information into analog audio signals for output, and also to convert analog audio input into digital audio signals. The audio module 170 can also be used for encoding and decoding audio signals. In some embodiments, the audio module 170 may be located in the processor 110, or some functional modules of the audio module 170 may be located in the processor 110.
[0087] The speaker 170A, also known as a "loudspeaker," is used to convert audio electrical signals into sound signals. Mobile phones can use the speaker 170A to listen to music or make hands-free calls.
[0088] The receiver 170B, also known as the "earpiece," is used to convert audio electrical signals into sound signals. When answering a phone call or voice message, the receiver 170B can be brought close to the user's ear to hear the voice.
[0089] Microphone 170C, also known as a "microphone" or "voice transducer," is used to convert sound signals into electrical signals. When making a phone call or sending a voice message, the user can speak by bringing their mouth close to microphone 170C, inputting the sound signal into microphone 170C. A mobile phone can have at least one microphone 170C. In some embodiments, a mobile phone can have two microphones 170C, which, in addition to collecting sound signals, can also perform noise reduction. In other embodiments, a mobile phone can have three, four, or more microphones 170C, enabling sound signal collection, noise reduction, sound source identification, and directional recording, among other functions.
[0090] The 170D headphone jack is used to connect wired headphones. The 170D headphone jack can be a USB 130 interface or a 3.5mm Open Mobile Terminal Platform (OMTP) standard interface, a CTIA (Cellular Telecommunications Industry Association of the USA) standard interface.
[0091] The sensor module 180 may include pressure sensors, gyroscope sensors, barometric pressure sensors, magnetic sensors, accelerometers, distance sensors, proximity sensors, fingerprint sensors, temperature sensors, touch sensors, ambient light sensors, bone conduction sensors, etc.
[0092] Of course, the mobile phone may also include a charging management module, a power management module, a battery, buttons, indicators, and one or more SIM card interfaces, etc., and this application embodiment does not impose any restrictions on this.
[0093] The software system of the aforementioned mobile phone can adopt a layered architecture, event-driven architecture, microkernel architecture, microservice architecture, or cloud architecture. This application uses the layered architecture Android system as an example to exemplify the software structure of the mobile phone. Of course, the solution of this application can also be implemented in other operating systems (such as HarmonyOS, Linux, etc.) as long as the functions implemented by each functional module are similar to those in the embodiments of this application.
[0094] Figure 6This is a software structure block diagram of a mobile phone according to an embodiment of this application.
[0095] A layered architecture divides software into several layers, each with a clear role and function. Layers communicate with each other through software interfaces. In some embodiments, the Android system is divided into five layers, from top to bottom: the application layer, the application framework layer, the Android runtime and system libraries, the HAL (hardware abstraction layer), and the kernel layer.
[0096] The application layer can include a series of application packages.
[0097] like Figure 6 As shown, applications such as calling, memos, browser, contacts, gallery, calendar, maps, Bluetooth, music, video, and SMS can be installed in the application layer.
[0098] In this embodiment, an application with shooting capabilities, such as a camera application, can be installed in the application layer. Of course, other applications can also call the camera application to perform shooting when they need to use the shooting function.
[0099] The application framework layer provides application programming interfaces (APIs) and a programming framework for applications in the application layer. The application framework layer includes some predefined functions.
[0100] For example, the application framework layer may include a window manager, a content provider, a view system, a resource manager, a notification manager, etc., and this application embodiment does not impose any limitations on this.
[0101] For example, the window manager described above is used to manage window programs. The window manager can obtain the screen size, determine if a status bar is present, lock the screen, and capture the screen. The content provider described above is used to store and retrieve data, making this data accessible to applications. This data can include videos, images, audio, made and received phone calls, browsing history and bookmarks, phone books, etc. The view system described above can be used to construct the application's display interface. Each display interface can consist of one or more controls. Generally, controls can include icons, buttons, menus, tabs, text boxes, dialog boxes, status bars, navigation bars, widgets, and other interface elements. The resource manager described above provides applications with various resources, such as localized strings, icons, images, layout files, video files, etc. The notification manager described above allows applications to display notification information in the status bar, which can be used to convey informational messages and can disappear automatically after a short pause without user interaction. For example, the notification manager is used to notify of download completion, message alerts, etc. The notification manager can also be a notification appearing in the system's top status bar as an icon or scrollbar text, such as a notification from a background application, or a notification appearing on the screen as a dialog window. For example, displaying text messages in the status bar, emitting notification sounds, vibrating, or flashing indicator lights.
[0102] like Figure 6 As shown, the Android runtime consists of core libraries and a virtual machine. The Android runtime is responsible for scheduling and managing the Android system.
[0103] The core library consists of two parts: one part is the functionalities that need to be called by the Java language, and the other part is the Android core library.
[0104] The application layer and application framework layer run in a virtual machine. The virtual machine executes the Java files of the application layer and application framework layer as binary files. The virtual machine is used to perform functions such as object lifecycle management, stack management, thread management, security and exception management, and garbage collection.
[0105] System libraries can include multiple functional modules. For example: surface manager, media libraries, 3D graphics processing libraries (e.g., OpenGL ES), 2D graphics engines (e.g., SGL), etc.
[0106] The Surface Manager manages the display subsystem and provides fusion of 2D and 3D layers for multiple applications. The Media Library supports playback and recording of various common audio and video formats, as well as still image files. It supports multiple audio and video encoding formats, such as MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG. The 3D Graphics Processing Library implements 3D graphics drawing, image rendering, compositing, and layer processing. The 2D Graphics Engine is the drawing engine for 2D graphics.
[0107] The kernel layer, located below the HAL (Hardware Layer), is the layer between hardware and software. The kernel layer includes at least display drivers, camera drivers, audio drivers, and sensor drivers, but this application's embodiments do not impose any limitations on this.
[0108] In the embodiments of this application, it is still as follows Figure 6 As shown, taking a camera application as an example, a camera service (CameraService) is set up in the application framework layer. The camera application can start the CameraService by calling a preset API. During operation, the CameraService can interact with the Camera HAL in the HAL (hardware abstraction layer). The Camera HAL is responsible for interacting with the hardware devices in the phone that implement the shooting function (such as the camera). On the one hand, the Camera HAL hides the implementation details of the relevant hardware devices (such as specific image processing algorithms), and on the other hand, it provides the Android system with interfaces to call the relevant hardware devices.
[0109] For example, a camera application can send user-issued control commands (such as preview, zoom, take a picture, or record video commands) to the CameraService during runtime. On one hand, the CameraService can send the received control commands to the Camera HAL, allowing the Camera HAL to invoke the camera driver in the kernel layer based on the received commands. The camera driver then drives the camera and other hardware devices to respond to the control commands and acquire image data. For instance, the camera can transmit each frame of image data acquired to the Camera HAL through the camera driver at a certain frame rate. The process of transmitting control commands within the operating system can be found in [link to relevant documentation]. Figure 6 The specific transmission process of control flow in the middle.
[0110] On the other hand, after receiving the aforementioned control commands, CameraService can determine the current shooting strategy based on the received commands. The shooting strategy specifies the concrete image processing tasks to be performed on the acquired image data. For example, in preview mode, CameraService can set image processing task 1 in the shooting strategy to implement face detection. As another example, if the user enables the beautification function in preview mode, CameraService can also set image processing task 2 in the shooting strategy to implement the beautification function. Then, CameraService can send the determined shooting strategy to Camera HAL.
[0111] After receiving each frame of image data captured by the camera, the Camera HAL can perform corresponding image processing tasks on the image data according to the shooting strategy issued by the CameraService to obtain each frame of the captured image. For example, the Camera HAL can perform image processing task 1 on each received frame of image data according to shooting strategy 1 to obtain the corresponding frame of the captured image. When shooting strategy 1 is updated to shooting strategy 2, the Camera HAL can perform image processing tasks 2 and 3 on each received frame of image data according to shooting strategy 2 to obtain the corresponding frame of the captured image.
[0112] Subsequently, Camera HAL can report each captured frame, after image processing, to the camera application via CameraService. The camera application can then display each frame on the screen, or save each frame to the phone as a photo or video. The process of transmitting captured images within the operating system can be found in [link to relevant documentation]. Figure 6 The specific transmission process of data streams in China.
[0113] based on Figure 6 The software architecture of the Android system shown in this application embodiment is as follows: Figure 7 As shown, a device virtualization application (DV application) for implementing distributed shooting functionality can be installed in the phone's application layer. The DV application can run as a system application permanently on the phone. Alternatively, the functionality implemented by the DV application can also run as a system service permanently on the phone.
[0114] When a mobile phone needs to use the camera of another electronic device to achieve distributed shooting, the DV application on the phone can use that other electronic device as a slave device to establish a network connection with the phone. For example... Figure 7As shown, after the mobile phone's DV application establishes a network connection with the slave device, the DV application can obtain the slave device's shooting capability parameters based on this network connection. These shooting capability parameters indicate the slave device's shooting capabilities. For example, these shooting capability parameters may include specific image processing algorithms supported by the slave device, relevant hardware parameters of the camera in the slave device, etc. Furthermore, the DV application can call the HAL's preset interface, inputting the obtained shooting capability parameters into the preset interface, thereby creating a HAL corresponding to the slave device in the HAL.
[0115] In this embodiment, the HAL created by the DV application according to the shooting capability parameters of the slave device can be called DMSDP (Distributed Mobile Sensing Development Platform) HAL, or virtual Camera HAL. Unlike the traditional Camera HAL in a mobile phone, the DMSDP HAL does not correspond to the actual hardware of the mobile phone, but rather to the slave device currently connected to the phone. The mobile phone can act as the master device to send and receive data with the slave device through the DMSDP HAL, treating the slave device as a virtual device of the mobile phone, and collaborating with the slave device to complete various tasks in the distributed shooting scenario.
[0116] In some embodiments, the mobile phone's DV application can also obtain audio capability parameters (such as audio playback latency, audio sampling rate, or number of audio channels) and display capability parameters (such as screen resolution, encoding / decoding algorithms for display data) from the slave device. Of course, if the slave device also has other capabilities (such as printing capabilities), it can also send the relevant capability parameters to the mobile phone's DV application. Similar to the aforementioned shooting capability parameters, the DV application can input all capability parameters related to the slave device into a preset interface, thereby creating a hardware abstraction module corresponding to the slave device in the HAL, such as the DMSDP HAL. In this case, the DMSDP HAL not only possesses the image processing capabilities of the slave device but also its audio and display capabilities, enabling the slave device to act as a virtual device for the mobile phone and collaborate with the mobile phone to complete various tasks in a distributed scenario.
[0117] Still Figure 7 As shown, in addition to creating a corresponding DMSDP HAL for the slave device of the mobile phone in the HAL, the DV application can also send the shooting capability parameters of the slave device to the CameraService for storage, that is, register the shooting capability of the current slave device in the CameraService.
[0118] Subsequently, when the phone runs the camera app, CameraService can determine the shooting strategy in real time based on the control commands (such as preview, zoom, and video recording commands) issued by the camera app and the shooting capabilities of the slave device. For example, CameraService can set the image processing tasks that the phone and the slave device need to perform in the shooting strategy according to the shooting capability parameters of the slave device. Then, CameraService can send shooting commands corresponding to the shooting strategy to the slave device via DMSDPHAL, triggering the slave device to execute the corresponding image processing tasks.
[0119] In this way, when implementing distributed shooting functionality, the mobile phone and slave devices can perform corresponding image processing on the image data according to their own shooting capabilities based on the above shooting strategy. This allows the mobile phone and slave devices to collaborate more efficiently and flexibly to achieve distributed shooting functionality and achieve better shooting results in distributed shooting scenarios.
[0120] In this embodiment, the mobile phone and the slave device can perform synchronous shooting in a distributed shooting scenario. Subsequent embodiments use the example of the mobile phone and the slave device shooting the same target. It is understood that when the mobile phone and the slave device shoot different targets, synchronous shooting can also be performed using the following method, and this embodiment does not impose any limitations on this.
[0121] For example, such as Figure 8 As shown in (a), if the user opens the phone's camera application, the phone can open its own camera to start taking pictures. At this time, the phone can display a preview interface 801 of the camera application. The preview interface 801 has a function button 802 for simultaneous shooting. If the user wants to use the phone and other electronic devices to shoot simultaneously, they can click the function button 802.
[0122] Alternatively, the phone can also place the function button 802 for simultaneous shooting in the phone's control center, drop-down menu, negative one screen menu, or other applications (such as video call applications). This application embodiment does not impose any limitations on this. For example, such as... Figure 8 As shown in (b), the mobile phone can respond to the user's operation of opening the control center and display the control center 803, which contains the aforementioned function button 802. If the user wishes to use the mobile phone and other electronic devices to take pictures simultaneously, they can click the function button 802.
[0123] For example, after the phone detects that the user has clicked the aforementioned function button 802, the phone's DV application can trigger the phone to search for one or more candidate devices with shooting capabilities nearby. Furthermore, as... Figure 9As shown, the mobile phone can display one or more candidate devices found in the search dialog box 901. For example, the mobile phone can query the server for electronic devices that are logged into the same account as the mobile phone and have camera functions, and display the queried electronic devices as candidate devices in dialog box 901.
[0124] Taking the candidate devices in dialog box 901, including TV 902, TV 903, and watch 904, as an example, the user can select the slave device for this synchronized shooting function with the mobile phone in dialog box 901. For example, if the mobile phone detects that the user has selected TV 902 in dialog box 901, it means that the user wants to shoot simultaneously with the mobile phone and TV 902. At this time, the mobile phone's DV application can establish a network connection between TV 902 and the mobile phone as a slave device. For example, this network connection can be a P2P connection based on TCP (transmission control protocol) or UDP (user datagram protocol); as an alternative, the network connection also includes Wi-Fi connection; or Wi-Fi P2P connection; or Bluetooth connection; or short-range wireless connection (including but not limited to NFC connection, infrared connection, UWB ultra-wideband connection, ZigBee connection); or mobile network connection (including but not limited to mobile networks supporting 2G, 3G, 4G, 5G and subsequent standard protocols), and this application embodiment does not impose any limitations on this.
[0125] After the mobile phone establishes a network connection with the TV 902, the mobile phone's DV application can obtain the TV 902's shooting capability parameters based on this network connection. These shooting capability parameters reflect the TV 902's specific shooting capabilities. For example, the TV 902's shooting capability parameters may include one or more image processing algorithms supported by the TV 902, such as face recognition algorithms and autofocus algorithms. Alternatively, the TV 902's shooting capability parameters may include parameters such as the number of cameras in the TV 902, the camera resolution, or the image processor model. Furthermore, the DV application can create a corresponding DMSDP HAL in the HAL according to the TV 902's shooting capability parameters.
[0126] Subsequently, when the phone runs its camera app, it can simultaneously capture each frame of the image using its own camera at a certain frame rate. At the same time, the phone can instruct the TV 902 to capture each frame at the same frame rate as the phone, and then send the captured images to the phone's camera app via DMSDP HAL. In this way, the phone's camera app can capture images from both the phone and the TV 902. Furthermore, the camera app can simultaneously display the images captured by the phone and the TV 902 on its interface, achieving synchronized shooting.
[0127] For each frame of the captured image, after the TV 902 uses its camera to collect image data, it needs to process the image data to obtain the corresponding captured image. Furthermore, the TV 902 also needs to transmit each captured frame to the mobile phone via the aforementioned network connection. Therefore, as... Figure 10 As shown, the time T1 when the camera application in the mobile phone obtains the captured image 1 from the mobile phone is usually earlier than the time T2 when the television 902 captures the captured image 1' at the same time. That is, the time delay between captured image 1 and captured image 1' is T2-T1. Among them, due to the influence of factors such as shooting angle or shooting position, the content in captured image 1 and captured image 1' may be the same or different. This application embodiment does not impose any restrictions on this.
[0128] In this embodiment, to synchronously display the images captured by the mobile phone and the television 902, the mobile phone can set a buffer time T. The buffer time T is the predicted frame delay between the mobile phone's captured image (e.g., captured image 1 mentioned above) and the television 902's captured image (e.g., captured image 1' mentioned above). After the camera application acquires each frame of the captured image from the mobile phone, it can wait for a period of time according to the buffer time T before displaying the captured image from the mobile phone; while after the camera application acquires each frame of the captured image from the television 902, it can directly display the captured image from the television 902. In this way, after the buffer time T, the captured image from the mobile phone can be presented to the user as synchronously as possible with the captured image from the television 902.
[0129] During the shooting process, the mobile phone can dynamically adjust the buffer time T to accurately reflect the time delay between the mobile phone's captured image and the television 902's captured image. This allows the mobile phone to display the captured images from both the mobile phone and the television 902 as synchronously as possible.
[0130] The following will illustrate how to set and adjust the buffer time T on your mobile phone using specific examples.
[0131] For example, after the mobile phone and the TV 902 establish a network connection, the mobile phone's CameraService can obtain the time L1 (hereinafter referred to as master device latency L1) for the mobile phone to process the image data subsequently acquired, the time L2 (hereinafter referred to as slave device latency L2) for the TV 902 to process the image data subsequently acquired, and the time L3 (hereinafter referred to as transmission latency L3) required for the TV 902 to send the processed image to the mobile phone.
[0132] For example, after a mobile phone establishes a network connection with a TV 902, the phone's CameraService can receive the TV 902's shooting capability parameters sent by the DV application. These parameters may include the specific image processing algorithms supported by the TV 902, as well as relevant parameters of the camera, image processor, and other devices used by the TV 902. Furthermore, when the phone's camera application is running, the phone's CameraService can combine these TV 902 shooting capability parameters to determine the current shooting strategy in real time. Figure 11 As shown, the above shooting strategy sets up X (X≥0) image processing tasks that the mobile phone needs to perform on the acquired image data, and the above shooting strategy sets up Y (Y≥0) image processing tasks that the television 902 needs to perform on the acquired image data.
[0133] Furthermore, as Figure 11 As shown, the phone's CameraService can calculate the time required for the phone to execute each of the X image processing tasks mentioned above. For example, the time required for the phone to execute image processing task 1 is T11, the time required for the phone to execute image processing task 2 is T12, ..., and the time required for the phone to execute image processing task X is T1x. Subsequently, the phone's CameraService can use the sum of the times required for the phone to execute each image processing task as the main device latency L1, that is, main device latency L1 = T11 + T12 + ... + T1x. The main device latency L1 reflects the time consumed from the phone acquiring each frame of image data, processing each frame of image data to obtain the corresponding captured image, until the camera application in the phone obtains each captured image.
[0134] Similarly, as Figure 11As shown, the phone's CameraService can calculate the time required for TV 902 to execute each of the Y image processing tasks mentioned above. For example, the time required for TV 902 to execute image processing task 1 is T21, the time required for TV 902 to execute image processing task 2 is T22, ..., and the time required for TV 902 to execute image processing task Y is T2y. Subsequently, the phone's CameraService can use the sum of the times required for TV 902 to execute each image processing task as the slave device latency L2, that is, slave device latency L2 = T21 + T22 + ... + T2y.
[0135] In some embodiments, the magnitude of the transmission latency L3 primarily depends on the network conditions of the network connection between the mobile phone (i.e., the master device) and the television 902 (i.e., the slave device). For example, when the network quality of the network connection between the mobile phone and the television 902 is good, the corresponding transmission latency L3 will decrease; when the network quality of the network connection between the mobile phone and the television 902 is poor, the corresponding transmission latency L3 will increase. As another example, when the distance between the mobile phone and the television 902 is short, the corresponding transmission latency L3 will decrease; when the distance between the mobile phone and the television 902 is long, the corresponding transmission latency L3 will increase.
[0136] Taking the network connection between the mobile phone and the TV 902 as an example of a Wi-Fi P2P connection, the mobile phone's CameraService can also obtain the current transmission latency L3 between the mobile phone and the TV 902 from the mobile phone's Wi-Fi HAL. For example, as Figure 12 As shown, the Wi-Fi HAL can send test data packets to the TV 902 via the Wi-Fi P2P connection between the mobile phone and the TV 902 at preset intervals (e.g., 200ms). After receiving the test data packet, the TV 902 can send a response data packet to the mobile phone's Wi-Fi HAL. Therefore, by detecting the time interval N between sending the test data packet and receiving the response data packet, the Wi-Fi HAL can periodically calculate the current transmission delay L3 between the mobile phone and the TV 902, where L3 = N / 2.
[0137] The sum of device latency L2 and transmission latency L3 (i.e., L2+L3) reflects the time taken by the TV 902 to process each frame of image data after acquiring it, to obtain the corresponding captured image, and to transmit each captured image to the mobile phone until the camera application in the mobile phone obtains each captured image.
[0138] Therefore, the phone's CameraService can periodically read the latest transmission latency L3 from the Wi-Fi HAL. Alternatively, the transmission latency L3 can send a latency retrieval command to the Wi-Fi HAL, causing the Wi-Fi HAL to respond by reporting the latest transmission latency L3 to the CameraService. Or, whenever the Wi-Fi HAL updates its transmission latency L3, it can proactively report the latest transmission latency L3 to the CameraService.
[0139] After the phone's CameraService obtains the master device latency L1, slave device latency L2, and transmission latency L3, it can set the buffer time T to an initial value T0, where T0 = (slave device latency L2 + transmission latency L3) - master device latency L1. In other words, based on the master device latency L1, slave device latency L2, and transmission latency L3, the phone can predict that after the camera application receives the image captured by the phone, it will take L2 + L3 - L1 time to receive the corresponding image captured by the TV 902. Therefore, the image latency between the phone's image and the TV 902's image is T0. Thus, the phone can set the buffer time T to T0, where T0 = L2 + L3 - L1.
[0140] Thus, as Figure 13 As shown, after the phone's camera application detects that the user has enabled the synchronized shooting function, the camera application can call the phone's camera to capture image data. After the phone's camera captures the first frame of image data 1301, it can send the first frame of image data 1301 to the phone's Camera HAL. The phone's Camera HAL then processes the first frame of image data 1301 according to the current shooting strategy to obtain the processed first frame of captured image 1302. Subsequently, the phone's Camera HAL can send the first frame of captured image 1302 to the phone's CameraService, so that the phone's CameraService can obtain the first frame of captured image 1302 from the phone.
[0141] Still Figure 13As shown, after the mobile phone's camera application detects that the user has enabled the synchronous shooting function, it can also instruct the TV 902 to call the TV 902's camera to capture image data. Similar to the mobile phone's processing, after the TV 902's camera captures the first frame image data 1303, it can send the first frame image data 1303 to the TV 902's Camera HAL. The TV 902's Camera HAL then processes the first frame image data 1303 according to the aforementioned shooting strategy, obtaining the processed first frame captured image 1304. Furthermore, the TV 902's Camera HAL can upload the first frame captured image 1304 to the TV 902's proxy application via the TV 902's CameraService. The TV 902's proxy application then sends the first frame captured image 1304 to the mobile phone's DMSDP HAL through the established network connection. The mobile phone's DMSDP HAL can then send the first frame captured image 1304 to the mobile phone's CameraService, allowing the mobile phone's CameraService to obtain the first frame captured image 1304 from the TV 902.
[0142] Because there is a certain time delay between the first frame 1302 and the first frame 1304 captured by the phone's CameraService, generally, after the phone's CameraService acquires the first frame 1302 from the phone, it has not yet acquired the first frame 1304 from the TV 902. Therefore, in this embodiment, after the phone's CameraService acquires the first frame 1302 from the phone, it can wait for a buffer time T (i.e., the initial value T0) for a period of time T0 before sending the first frame 1302 to the camera application for display. However, once the phone's CameraService acquires the first frame 1304 from the TV 902, it can directly send the first frame 1304 to the camera application for display.
[0143] Alternatively, after the phone's CameraService receives the first frame 1302 captured from the phone, it can directly send the first frame 1302 to the camera application, which will then wait for the aforementioned T0 time before displaying the first frame 1302. Similarly, after the camera application receives the first frame 1304 captured from the TV 902, it can directly display the first frame 1304.
[0144] For example, such as Figure 14AAs shown, after time T0, the camera application can display the first frame captured from the mobile phone 1302 in the first window and the first frame captured from the television 902 1304 in the second window. The first and second windows are used to indicate two display areas of the display interface. For example, the first and second windows can be arranged vertically on the display interface (e.g.,...). Figure 14A As shown, the windows can be arranged horizontally on the display interface, or presented in a picture-in-picture format; this embodiment does not impose any restrictions on this. Furthermore, the first and second windows may or may not have boundary lines.
[0145] In some embodiments, if the mobile phone is in landscape mode when it receives the first frame of the captured image 1302 and the first frame of the captured image 1304, such as Figure 14B As shown, the mobile phone can also display the first frame captured image 1302 and the first frame captured image 1304 in different windows in landscape mode. This application embodiment does not impose any restrictions on this.
[0146] It can be seen that, as Figure 14A or Figure 14B As shown, after the first frame of the captured image 1302 has been waiting for time T0, the mobile phone can shorten the time difference between the first frame of the captured image 1302 from the mobile phone and the first frame of the captured image 1304 from the TV 902, thereby ensuring that the mobile phone keeps the captured images of multiple devices as synchronized as possible and improving the user experience.
[0147] It can be seen that before the mobile phone and TV 902 start synchronous shooting, the mobile phone can predict the image delay between the first frame of the mobile phone and TV 902 by obtaining the master device delay L1, slave device delay L2 and transmission delay L3. Then, the mobile phone can set L2+L3-L1 (i.e. the initial value T0) as the buffer time T, so that the first frame of the mobile phone can be presented to the user in a relatively synchronized manner with the first frame of the TV after the initial value T0.
[0148] Of course, those skilled in the art can also devise other methods to predict the frame delay between the first frame captured by the mobile phone and the television 902, and then set the specific value of the aforementioned initial value T0 according to the prediction result. This application embodiment does not impose any restrictions on this. For example, the mobile phone can use big data statistics to determine the frame delay between the first frame captured by the mobile phone and the television 902, and then use this frame delay as the initial value T0 to update the aforementioned buffer time.
[0149] In some embodiments, after the CameraService of the mobile phone obtains the first frame captured by the mobile phone 1302 and the first frame captured by the TV 902 1304, it can also dynamically update the buffer time T to keep the buffer time T as consistent as possible with the current screen delay between the mobile phone and the TV 902. In this way, the camera application can keep the captured images of the two devices as synchronized as possible during the synchronous shooting process.
[0150] For example, when the phone's CameraService acquires the first frame 1302 captured from the phone, the CameraService can record the time T1 at this moment. When the phone's CameraService acquires the first frame 1304 captured from the television 902, the CameraService can record the time T2 at this moment. Furthermore, the phone's CameraService can calculate the actual frame delay S1 between the first frame 1302 and the first frame 1304 based on T1 and T2.
[0151] In some embodiments, after the mobile phone's Camera HAL processes the first frame display data 1301 into the first frame captured image 1302, it can send the first frame captured image 1302 to the mobile phone's Camera Service in the form of a data packet. Generally, the data packet includes a header and a data portion. The mobile phone's Camera HAL can add the first frame captured image 1302 to the data portion of data packet 1, and add information such as the identifier of the first frame captured image 1302 (e.g., frame ID) to the header portion of data packet 1. Then, the mobile phone's Camera HAL can send data packet 1 to the mobile phone's Camera Service. The mobile phone's Camera Service can obtain the first frame captured image 1302 and its identifier 001 by parsing data packet 1. At this time, the mobile phone's Camera Service can record the correspondence between the current time T1 and the identifier 001.
[0152] Similarly, since the first frame captured by the television 902, 1304, is also the first frame captured, its identifier can also be 001. The television 902 can add the first frame captured 1304 to the data portion of data packet 2 and add its identifier to the head portion, then send data packet 2 to the mobile phone. The mobile phone's CameraService can parse data packet 2 to obtain the first frame captured 1304 and its identifier (001). At this point, the mobile phone's CameraService can record the current time T2 and look up the time T1 corresponding to identifier 001. Furthermore, the mobile phone's CameraService can calculate the actual frame delay S1 = T2 - T1 between the first frame captured 1302 and the first frame captured 1304.
[0153] In other embodiments, when the mobile phone captures the first frame of display data 1301 through the camera, the capture time C1 can be recorded in the first frame of display data 1301. When the mobile phone's CameraService obtains the first frame of captured image 1302 corresponding to the first frame of display data 1301 from the Camera HAL, the time T1 at this time can be recorded. Then, T1-C1 is the time L1 consumed by the mobile phone to process the first frame of image data 1301, that is, T1-C1 = main device latency L1.
[0154] Similarly, when the TV 902 captures the first frame of display data 1303 through the camera, the capture time C2 can be recorded in the first frame of display data 1303. When the mobile phone's CameraService obtains the first frame of captured image 1304 corresponding to the first frame of display data 1303 from the TV 902, the time T2 at this time can be recorded. Then, T2-C2 is the time taken for the TV 902 to process the first frame of image data 1303 and send the processed first frame of captured image 1304 to the mobile phone, that is, T2-C2 = device delay L2 + transmission delay L3. Furthermore, the mobile phone's CameraService can calculate the actual image delay S1 = L2 + L3 - L1 = (T2-C2) - (T1-C1) between the first frame of captured image 1302 and the first frame of captured image 1304.
[0155] To ensure the accuracy of the mobile phone's calculation of the aforementioned screen delay S1, after establishing a network connection with the TV 902, the mobile phone and the TV 902 can also synchronize their clocks, so that the system time of the mobile phone and the TV 902 are synchronized.
[0156] In some embodiments, after the mobile phone detects that a network connection has been established with the TV 902, it can automatically connect to a first server (e.g., a network time synchronization server) for network time synchronization. Similarly, after the TV 902 detects that a network connection has been established with the mobile phone, it can automatically connect to a second server (which can also be a network time synchronization server; the second server may be the same as or different from the first server) for network time synchronization, so that the mobile phone and the TV 902 keep their clocks synchronized. For another example, after the mobile phone and the TV 902 establish a network connection, if the phone detects that the user has activated the synchronized shooting function button (e.g., the aforementioned function button 802) in the camera application, the mobile phone can automatically connect to the server for network time synchronization and simultaneously send a clock synchronization command to the TV 902, triggering the TV 902 to connect to the server for network time synchronization, thus keeping the mobile phone and the TV 902's clocks synchronized.
[0157] In other embodiments, after the mobile phone detects that a network connection has been established with the TV 902, or after the mobile phone detects that the user has activated the synchronized shooting function in the camera application, the mobile phone can negotiate with the TV 902 to synchronize its system time. For example, the mobile phone can send a time synchronization command to the TV 902, which may include the mobile phone's system time. After receiving the time synchronization command, the TV 902 can adjust its system time to be the same as the mobile phone's system time specified in the time synchronization command.
[0158] After the phone's CameraService calculates the actual frame delay S1 between the first captured frame 1302 and the first captured frame 1304, the phone's CameraService can update the buffer time T from its initial value T0 to the frame delay S1, that is, the updated buffer time T = frame delay S1. In other words, the phone's CameraService can predict the actual frame delay S1 between the first captured frame 1302 and the first captured frame 1304 as the frame delay between the subsequent second captured frame from the phone and the second captured frame from the television 902.
[0159] Alternatively, the phone's CameraService can use a preset algorithm to predict the frame delay between the second frame captured from the phone and the second frame captured from the TV 902 based on the frame delay S1 mentioned above, and then update the buffer time T.
[0160] For example, after the mobile phone obtains the actual frame delay S1 between the first captured frame 1302 and the first captured frame 1304, it can compare the frame delay S1 with the initial value T0. If the difference between the frame delay S1 and the initial value T0 is greater than a threshold, it indicates that the deviation between the frame delay S1 and the initial value T0 is large, and the frame delay S1 obtained by the mobile phone may be inaccurate. In this case, the mobile phone can continue to set the buffer time T to the initial value T0. Correspondingly, if the difference between the frame delay S1 and the initial value T0 is less than the threshold, the mobile phone can calculate the weighted average of the initial value T0 and the frame delay S1, and update the buffer time T with the calculation result. Those skilled in the art can set a specific algorithm for updating the buffer time T based on the frame delay S1 according to actual experience or actual application scenarios. This application embodiment does not impose any restrictions on this.
[0161] Taking the updated buffer time T = screen latency S1 as an example, such as Figure 15 As shown, after the phone's camera captures the second frame image data 1501, it can send the second frame image data 1501 to the phone's Camera HAL. The phone's Camera HAL then processes the second frame image data 1501 according to the current shooting strategy to obtain the processed second frame captured image 1502. Furthermore, the phone's Camera HAL can send the second frame captured image 1502 to the phone's Camera Service, allowing the phone's Camera Service to receive the second frame captured image 1502 from the phone.
[0162] Still Figure 15 As shown, similar to the processing procedure of a mobile phone, after the camera of TV 902 captures the second frame image data 1503, it can send the second frame image data 1503 to the Camera HAL of TV 902. The Camera HAL of TV 902 then processes the second frame image data 1503 according to the aforementioned shooting strategy to obtain the processed second frame captured image 1504. Furthermore, the Camera HAL of TV 902 can upload the second frame captured image 1504 to the proxy application of TV 902 via the Camera Service of TV 902. The proxy application of TV 902 then sends the second frame captured image 1504 to the DMSDP HAL of the mobile phone through the established network connection. The DMSDP HAL of the mobile phone can then send the second frame captured image 1504 to the Camera Service of the mobile phone, allowing the Camera Service of the mobile phone to obtain the second frame captured image 1504 from TV 902.
[0163] Similar to the display process of the first frame captured 1302 and the first frame captured 1304, after the phone's CameraService obtains the second frame captured 1502 from the phone, it can wait for S1 time according to the updated buffer time T (i.e., frame delay S1) before sending the second frame captured 1502 to the camera application for display. When the phone's CameraService obtains the second frame captured 1504 from the TV 902, it can directly send the second frame captured 1504 to the camera application for display.
[0164] Thus, as Figure 16 As shown, after waiting for S1 time, the mobile phone can shorten the time difference between the second frame captured by the mobile phone 1502 and the second frame captured by the TV 902 1504, thereby ensuring that the mobile phone keeps the captured images of multiple devices as synchronized as possible and improving the user experience.
[0165] Subsequently, similar to the method of updating the buffer time T in the above embodiments, when the phone's CameraService obtains the second frame captured image 1502 from the phone, the phone's CameraService can record the time T1' at this time. When the phone's CameraService obtains the second frame captured image 1504 from the television 902, the phone's CameraService can record the time T2' at this time. Furthermore, the phone's CameraService can calculate the actual frame delay S2 between the second frame captured image 1502 and the second frame captured image 1504 based on the time T1' and T2', according to the method for calculating the frame delay S1 in the above embodiments. For example, S2 = T2' - T1'.
[0166] Furthermore, the camera service of the mobile phone can predict the frame delay between the third frame captured from the mobile phone and the third frame captured from the television 902 based on the frame delay S2 mentioned above, and then update the buffer time T according to the prediction result.
[0167] For example, the phone's CameraService can update the aforementioned frame delay S2 to the latest buffer time T, that is, the updated buffer time T = frame delay S2. In other words, the phone's CameraService can predict the actual frame delay S2 between the second frame captured 1502 and the second frame captured 1504 as the frame delay between the subsequent third frame captured from the phone and the third frame captured from the TV 902.
[0168] For example, the phone's CameraService can store the actual frame delay S1 between the first captured frame 1302 and the first captured frame 1304. Then, after obtaining the frame delay S2, the phone's CameraService can update the weighted average of frame delay S1 and frame delay S2 to the latest buffer time T. In other words, the phone's CameraService can predict the frame delay between the subsequent third captured frame from the phone and the third captured frame from the television 902 using the weighted average of frame delay S1 and frame delay S2.
[0169] For example, the phone's CameraService can also store the initial value T0 of the aforementioned buffer time T. Furthermore, after obtaining the aforementioned image delay S2, the phone's CameraService can update the latest buffer time T with the weighted average of the initial value T0, image delay S1, and image delay S2. In other words, the phone's CameraService can predict the image delay between the third frame captured from the phone and the third frame captured from the television 902 using the weighted average of the initial value T0, image delay S1, and image delay S2.
[0170] Subsequently, with Figure 13 or Figure 15 Similarly, after the mobile phone acquires the third frame image data using the method described above, it can process the third frame image data into a third frame captured image and send the third frame captured image to the mobile phone's CameraService. Likewise, the TV 902 can also acquire the third frame image data using the method described above, process the third frame image data into a third frame captured image, and then send the third frame captured image to the mobile phone's CameraService.
[0171] After the phone's CameraService acquires the third frame captured from the phone, it can wait for the latest buffer time T (e.g., the frame delay S2 mentioned above) for a period of S2 before sending the phone's third frame to the camera application for display. Conversely, when the phone's CameraService acquires the third frame captured from the TV 902, it can directly send the TV 902's third frame to the camera application for display, ensuring that the third frame from the phone and the third frame from the TV 902 remain as synchronized as possible after the S2-time wait.
[0172] Subsequently, the mobile phone can continue to update the buffer time T during the synchronous shooting process with the TV 902 in the same way as described above. This allows the mobile phone to display each frame of the video it captures on the display interface in a more synchronized manner after waiting for the buffer time T.
[0173] As can be seen, during the synchronous shooting process between the mobile phone and the TV 902, the mobile phone can predict the image delay between the Nth (N is an integer greater than 0) frame captured by the mobile phone and the TV 902 by calculating the actual image delay between the Nth and N+1th frames captured by the mobile phone and the TV 902. Then, the mobile phone can update the buffer time T used to display the N+1th frame captured by the mobile phone according to the prediction result, so that the N+1th frame captured by the mobile phone can be presented to the user in a more synchronized manner with the N+1th frame captured by the TV after the buffer time T. This ensures that the mobile phone keeps the images captured by multiple devices as synchronized as possible, thereby improving the user experience.
[0174] The above embodiment illustrates the simultaneous shooting of the mobile phone's camera application and the TV 902 in a preview scene. Subsequently, if a user inputs a photo-taking command, the mobile phone can save the current Nth frame captured from both the mobile phone and the TV 902 as separate photos, thus generating two photos. Alternatively, the mobile phone can combine the Nth frame captured from the mobile phone and the Nth frame captured from the TV 902 into a single photo. For example, the mobile phone can generate the corresponding photo according to the arrangement of the Nth frames captured by the two devices in the preview interface. Of course, the mobile phone can also generate the corresponding photo by arranging the Nth frame captured from the mobile phone and the Nth frame captured from the TV 902 horizontally or vertically, or generate one or more photos in other ways, according to the default strategy. This application embodiment does not impose any limitations on this.
[0175] In other embodiments, if a user input recording command is detected, the mobile phone can continue to record the footage from both the mobile phone and the television 902 using the method described above, generating two video files. Alternatively, the mobile phone can record the footage from both the mobile phone and the television 902 into a single video file. In this case, the footage from the mobile phone and the television 902 can be arranged in the video in a left-right, top-bottom, or picture-in-picture manner; this embodiment does not impose any limitations on this arrangement.
[0176] Furthermore, the above embodiments illustrate simultaneous shooting between a mobile phone and a television 902. In some embodiments, the mobile phone can also simultaneously shoot with more electronic devices using the same method. For example, if it detects that a user is... Figure 9If TV 902 and TV 903 are selected in dialog box 901, the mobile phone can create DMSDP HAL 1 corresponding to TV 902 and DMSDP HAL 2 corresponding to TV 903 respectively, according to the method in the above embodiment. Furthermore, as... Figure 17 As shown, the mobile phone's camera can send the captured image 1 to the phone's CameraService via Camera HAL. Television 902 can send the captured image 2 to the mobile phone's CameraService via DMSDP HAL 1. Television 903 can send the captured image 3 to the mobile phone's CameraService via DMSDP HAL 2.
[0177] Furthermore, similar to the embodiments described above, such as Figure 18 As shown, after the phone's CameraService receives captured image 1, it can wait for a buffer time T before the camera application displays captured image 1 on the display interface. However, after the phone's CameraService receives captured image 2 or captured image 3, the camera application can directly display captured image 2 or captured image 3 on the display interface. For example, captured images 1, 2, and 3 can be displayed in different windows on the display interface.
[0178] The difference is that when updating the buffer time T, the phone can calculate the actual frame delay 1 between shooting frames 1 and 2, and the actual frame delay 2 between shooting frames 1 and 3, using the same method. Then, the phone's CameraService can combine these two parameters, actual frame delay 1 and actual frame delay 2, to determine the final buffer time T. For example, the phone's CameraService can set the larger of actual frame delay 1 and actual frame delay 2 as the buffer time T. Alternatively, the phone's CameraService can set the average of actual frame delay 1 and actual frame delay 2 as the buffer time T, ensuring that shooting frames 1, 2, and 3 are displayed on the screen as synchronously as possible.
[0179] Alternatively, the phone's CameraService can set different buffer times for images captured by different devices. Taking the actual image latency 1 as 5ms and the actual image latency 2 as 3ms as examples, after obtaining the actual image latency 1 and actual image latency 2, the phone's CameraService can set the longer actual image latency 1 as the buffer time T1. Buffer time T1 corresponds to the phone; that is, after the phone's CameraService receives the captured image 1 from the phone, it needs to wait for buffer time T1 before the camera application displays the captured image 1. Furthermore, the phone's CameraService can set the difference between actual image latency 1 and actual image latency 2 (i.e., 5ms - 3ms = 2ms) as the buffer time T2. Buffer time T2 corresponds to the TV 902; that is, after the phone's CameraService receives the captured image 2 from the TV 902, it needs to wait for buffer time T2 before the camera application displays the captured image 2. The buffer time T3 corresponding to TV 903 can be set to 0. This means that after the phone's CameraService receives the captured image 3 from TV 903, it can directly display the captured image 3 through the camera application without waiting. In this way, for the same captured image, the captured images from the phone, TV 902, and TV 903 can be displayed on the display interface as synchronously as possible after the corresponding buffer time, improving the user experience.
[0180] Furthermore, the above embodiments use a mobile phone as the main device in a distributed shooting scenario as an example. It is understood that the main device in a distributed shooting scenario can also be an electronic device with the above shooting function, such as a tablet computer or a television. This application embodiment does not impose any restrictions on this.
[0181] It should be noted that the above embodiments illustrate a specific method for implementing distributed shooting functionality among various functional modules using the Android system as an example. It is understood that the same method can also be implemented in other operating systems (such as HarmonyOS). As long as the functions implemented by each device and functional module are similar to those in the embodiments of this application, they fall within the scope of the claims of this application and their equivalents.
[0182] like Figure 19As shown in the illustration, this application discloses an electronic device, which can be the aforementioned main device (e.g., a mobile phone). Specifically, the electronic device may include: a touchscreen 1901, which includes a touch sensor 1906 and a display screen 1907; one or more processors 1902; a memory 1903; a communication module 1908; one or more cameras 1909; one or more applications (not shown); and one or more computer programs 1904. These devices can be connected via one or more communication buses 1905. The one or more computer programs 1904 are stored in the memory 1903 and configured to be executed by the one or more processors 1902. The one or more computer programs 1904 include instructions that can be used to perform the relevant steps executed by the main device in the above embodiments.
[0183] like Figure 20 As shown in the illustration, this application discloses an electronic device, which can be the aforementioned slave device (e.g., a speaker). Specifically, the electronic device may include: one or more processors 2002; a memory 2003; a communication module 2006; one or more application programs (not shown); one or more cameras 2001; and one or more computer programs 2004. These devices can be connected via one or more communication buses 2005. Of course, a touchscreen or similar device can also be included in the slave device; this application does not impose any limitations on this. The one or more computer programs 2004 are stored in the memory 2003 and configured to be executed by the one or more processors 2002. The one or more computer programs 2004 include instructions that can be used to perform the relevant steps executed by the slave device in the above embodiment.
[0184] Through the above description of the embodiments, those skilled in the art will clearly understand that, for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In practical applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. The specific working process of the system, device, and unit described above can be referred to the corresponding process in the foregoing method embodiments, and will not be repeated here.
[0185] In the embodiments of this application, the functional units can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0186] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, essentially, or the parts that contribute to the prior art, or all or part of the technical solutions, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as flash memory, portable hard disk, read-only memory, random access memory, magnetic disk, or optical disk.
[0187] The above description is merely a specific implementation of the embodiments of this application, but the protection scope of the embodiments of this application is not limited thereto. Any changes or substitutions within the technical scope disclosed in the embodiments of this application should be covered within the protection scope of the embodiments of this application. Therefore, the protection scope of the embodiments of this application should be determined by the protection scope of the claims.
Claims
1. A shooting method, characterized in that, include: The first device receives the user's first operation to select synchronized shooting with the second device; In response to the first operation, the first device begins to capture images of the target, and the first device instructs the second device to begin capturing images of the target. After the first device obtains the Nth frame of the captured image, the first device waits for a preset buffer time and then displays the Nth frame of the captured image in the first window, where N is an integer greater than 0. After the first device obtains the Nth frame captured by the second device, the first device displays the Nth frame captured by the second device in a second window, and the first window and the second window are located on the same display interface; Wherein, the buffer time = second delay + third delay - first delay; the first delay is used to indicate the time taken by the first device to process an image of a captured frame; the second delay is used to indicate the time taken by the second device to process an image of a captured frame; the third delay is used to indicate the network delay for transmitting an captured frame between the second device and the first device. When N > 1, the method further includes: The first device acquires the actual frame delay between the Nth frame captured by the first device and the Nth frame captured by the second device; The first device updates the buffer time based on the actual screen delay; After the first device obtains the N+1th frame captured by the first device, the first device waits for the updated buffer time and then displays the N+1th frame captured by the first device in the first window. After the first device obtains the N+1th frame captured by the second device, the first device displays the N+1th frame captured by the second device in the second window.
2. The method according to claim 1, characterized in that, After the first device receives the user's first operation to select synchronized shooting with the second device, it also includes: The first device acquires the first delay, the second delay, and the third delay.
3. The method according to claim 2, characterized in that, After the first device receives the user's first operation to select synchronized shooting with the second device, it also includes: The first device acquires the shooting capability parameters of the second device, the shooting capability parameters being used to indicate the image processing capability of the second device; The first device determines a shooting strategy based on the shooting capability parameters. The shooting strategy includes X image processing tasks that the first device needs to perform and Y image processing tasks that the second device needs to perform, where X and Y are both integers greater than 0. Wherein, the first delay is the time required for the first device to execute the X image processing tasks; the second delay is the time required for the second device to execute the Y image processing tasks.
4. The method according to claim 2 or 3, characterized in that, The first device acquires the third delay, including: The first device sends a test data packet to the second device; The first device receives a response data packet sent by the second device in response to the test data packet; The first device calculates the third delay based on the time interval between sending the test data packet and receiving the response data packet.
5. The method according to claim 1, characterized in that, The first device acquires the actual frame delay between the Nth frame captured by the first device and the Nth frame captured by the second device, including: The first device records the first time T1 when it obtains the Nth frame of the captured image; The first device records the second time T2 when the Nth frame of the second device is captured; The first device calculates the actual frame delay between the Nth frame captured by the first device and the Nth frame captured by the second device, wherein the actual frame delay = second time T2 - first time T1.
6. The method according to claim 1 or 5, characterized in that, The first device updates the buffer time based on the actual image latency, including: The first device sets the value of the buffer time to the value of the actual screen delay.
7. The method according to any one of claims 1-3 and 5, characterized in that, The first device acquires the Nth frame of the captured image, including: The first device uses a camera to capture the Nth frame of image data; After the first device performs image processing on the Nth frame image data, it obtains the corresponding Nth frame captured image.
8. The method according to any one of claims 1-3 and 5, characterized in that, Before the first device receives the user's first operation to synchronize shooting with the second device, it also includes: The first device displays a preview interface of the camera application, which includes a button for simultaneous shooting. In response to a second operation of clicking the button, the first device displays a list of candidate devices in the preview interface, the list of candidate devices including the second device; The first operation is the user selecting the second device from the list of candidate devices.
9. The method according to any one of claims 1-3 and 5, characterized in that, After the first device receives the user's first operation to select synchronized shooting with the second device, it also includes: In response to the first operation, the first device synchronizes its clock with the second device.
10. An electronic device, characterized in that, The electronic device is a first device, and the first device includes: One or more cameras; One or more processors; Memory; Communication module; The memory stores one or more computer programs, the one or more computer programs including instructions that, when executed by the electronic device, cause the electronic device to perform the shooting method as described in any one of claims 1-9.
11. A computer-readable storage medium storing instructions, characterized in that, When the instruction is executed on the electronic device, the electronic device performs a shooting method as described in any one of claims 1-9.
12. A computer program product containing instructions, characterized in that, When the computer program product is run on an electronic device, the electronic device performs a shooting method as described in any one of claims 1-9.
Citation Information
Patent Citations
Shooting method, shooting system and shooting device
CN104333693A
Picture synchronization method and device based on real-time temperature measurement system, and storage medium
CN111970414A