A data tracking method and related apparatus

CN115272399BActive Publication Date: 2026-08-11HUAWEI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-04-30
Publication Date
2026-08-11

AI Technical Summary

Technical Problem

音视频数据在多个设备之间流转并经过多次处理,受设备性能,网络延迟/干扰等的影响,音视频数据在不同设备和设备内部不同模块间传递和处理的延迟在不断变化,开发人员难以跟踪音视频等业务数据在整个处理过程中的传递时延和处理时延的精确分布

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115272399B_ABST
    Figure CN115272399B_ABST
Patent Text Reader

Abstract

A data tracking method is disclosed, characterized in that the method includes: a first electronic device converting first data into second data through a first processing step; the first electronic device recording the start time of the first processing step and the identifier of the first data; the first electronic device converting the second data into third data through a second processing step; the first electronic device recording the start time of the second processing step and the identifier of the second data; and simultaneously recording the mapping relationship between the identifiers of the first data and the identifiers of the second data. In this embodiment, the first data, second data, and third data are all obtained from the same data. The first electronic device processes the same data in different stages (first processing stage and second processing stage). Based on the mapping relationship between the identifiers of the data, the correlation of data changes can be determined, thereby achieving accurate tracking of the data processing process.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of electronic technology, and in particular to a data tracking method and related apparatus. Background Technology

[0002] Currently, multi-device collaboration has become the norm. Collaboration refers to the ability of one device to access the capabilities of others, or to offer its own capabilities to other devices, when connected to the same network. For example, electronic devices can utilize the capabilities of peripheral devices such as cameras, microphones, and speakers for audio and video-related services. Audio and video data flows between multiple devices and undergoes multiple processing steps. Affected by device performance, network latency / interference, etc., the latency of audio and video data transmission and processing between different devices and different modules within a device is constantly changing. Developers find it difficult to track the precise distribution of transmission and processing latency for audio and video data throughout the entire processing process.

[0003] Therefore, the lack of precise means to locate the transmission and processing of business data (such as audio and video data) makes it difficult to trace the source of factors that cause performance degradation, which is a problem that those skilled in the art are studying. Summary of the Invention

[0004] This application provides a data tracking method and related apparatus, which can track data at various stages of business data processing by identifying business data.

[0005] In a first aspect, this application provides a data tracking method, the method comprising: a first electronic device converting first data into second data through a first processing procedure; the first electronic device recording the start time of the first processing procedure and an identifier of the first data, the identifier of the first data being generated based on the first data; the first electronic device converting the second data into third data through a second processing procedure; the first electronic device recording the start time of the second processing procedure and an identifier of the second data, the identifier of the second data being generated based on the second data; the identifier of the second data and the identifier of the first data indicating the first processing procedure; the start time of the first processing procedure and the start time of the second processing procedure being used to determine the processing delay of the first processing procedure.

[0006] In this embodiment, the first data, second data, and third data are all derived from the same data. A first electronic device processes the data in different stages (a first processing stage and a second processing stage). At each stage, the data is identified and a current timestamp is recorded. There is a mapping relationship between the identifiers of the first and second data; the identifier of the first data indicates the data before processing in the first processing stage, and the identifier of the second data indicates the data after processing in the first processing stage. Based on this mapping relationship, the correlation of data changes can be determined. Through this data tracking method based on data identification, the processing delay or transmission delay of the data at each stage can be understood, enabling tracking of the data processing process. That is, after the first processing stage, the identifier of the first data changes to the identifier of the second data. This embodiment of the application marks the data during transmission and processing between modules within the device to achieve accurate tracking. By analyzing the timestamps of the marked data, the delay of each step in the data processing and transmission process can be obtained, allowing for understanding and improvement of abnormal stages (stages with long delays).

[0007] In one embodiment, the first electronic device converts the first data into second data through a first processing procedure, which further includes: the first electronic device acquiring the first data; the first electronic device recording the time of acquiring the first data and the identifier of the first data, wherein the time of acquiring the first data and the start time of the first processing procedure are used to determine the transmission delay of the first data to start the first processing procedure.

[0008] In one embodiment, the method further includes: a first electronic device recording the end time of a first processing procedure and an identifier of second data; the start time and end time of the first processing procedure being used to determine the processing delay of the first processing procedure; and the end time of the first processing procedure and the start time of the second processing procedure being used to determine the transmission delay of the second data from the first processing procedure to the second processing procedure.

[0009] In one embodiment, the method further includes: a first electronic device recording the end time of a second processing step and an identifier of third data, the identifier of the third data being generated based on the third data; the identifier of the third data and the identifier of the second data indicating the second processing step; the start time of the second processing step and the end time of the second processing step being used to determine the processing delay of the second processing step. There is a mapping relationship between the identifier of the second data and the identifier of the third data; the identifier of the second data indicates the second data before processing in the second processing step, and the identifier of the third data indicates the second data after processing in the second processing step. Based on this mapping relationship, the correlation of data changes can be determined. That is, after the second processing step, the identifier of the second data becomes the identifier of the third data.

[0010] In one embodiment, before the first electronic device acquires the first data, the method further includes: the first electronic device triggering the first electronic device to perform data tracking on the first data based on a preset strategy.

[0011] In one implementation, the preset strategy includes: when the current time of the first electronic device is within a preset time period; or when the first electronic device receives a user operation to track the first data; or when the first electronic device receives an instruction from a second electronic device instructing the first electronic device to track the acquired first data. This describes that the first electronic device can trigger data tracking of the first data itself, or it can be triggered by receiving an instruction from another electronic device.

[0012] In one implementation, the first electronic device acquires the first data, including: the first electronic device detecting a large delay in the first data stream and triggering the first electronic device to track the first data stream; the first electronic device sampling the first data stream to acquire the first data. The sampling method is not limited to time-based sampling or data frame-based sampling.

[0013] In one implementation, the first electronic device records the start time of the first processing step and the identifier of the first data. Prior to this, the first electronic device generates an identifier for the first data based on an identifier generation algorithm. The identifier generation algorithm includes, but is not limited to, various hash algorithms, encryption algorithms, compression algorithms, and sampling algorithms. Based on the identifier generation algorithm, the same business data will generate the same data identifier, and different business data will generate different data identifiers.

[0014] In one implementation, the data type of the first data is audio / video data. Because audio / video data has a fixed encoding format, it cannot be arbitrarily modified, nor can fields for tracking be added to it, nor can it be transmitted between system nodes along with the data. In this embodiment, the data identifier is not transmitted along with the audio / video data; by recording the data identifier, accurate tracking of the audio / video data can be achieved.

[0015] In one implementation, the first electronic device records the start time of the second processing procedure and the identifier of the second data. The process further includes: the first electronic device sending the start time of the first processing procedure and the identifier of the first data, as well as the start time of the second processing procedure and the identifier of the second data, to a server. The identifiers of the first and second data are used to indicate the first processing procedure, and the start time of the first and second processing procedures are used by the server to determine the processing delay of the first processing procedure. It is described here that the analysis of the identifiers can be implemented through a server, utilizing the server's more powerful computing capabilities to perform complex data calculations. The server obtains the identifier recording information from the first electronic device, and the server can determine the processing delay of the first processing procedure. Optionally, the server returns the analysis results to the first electronic device.

[0016] In one embodiment, the method further includes: a first electronic device outputting analysis results, the analysis results including the processing latency of the first processing procedure. In this embodiment, the analysis results may include precise information such as the time consumed between each step in the data processing process, network transmission time, and overall time consumed by the first electronic device; the analysis results may also include abnormal steps identified based on historical analysis results (e.g., which step's time significantly exceeds historical time), and so on.

[0017] Secondly, embodiments of this application provide a data tracking system, including a first electronic device and a second electronic device.

[0018] A first electronic device is used to convert first data into second data through a first processing procedure;

[0019] The first electronic device is also used to record the start time of the first processing procedure and the identifier of the first data, wherein the identifier of the first data is generated based on the first data;

[0020] The first electronic device is also used to send the second data to the second electronic device;

[0021] The second electronic device is used to convert the received second data into third data through a second processing procedure;

[0022] The second electronic device is also used to record the start time of the second processing procedure and the identifier of the second data, the identifier of the second data being generated based on the second data; the identifier of the second data and the identifier of the first data indicate the first processing procedure; the start time of the first processing procedure and the start time of the second processing procedure are used to determine the processing delay of the first processing procedure.

[0023] This application embodiment enables data tracking of data processing and transmission between multiple devices. First data, second data, and third data are all derived from the same data set. A first electronic device processes the data in a first processing stage, and a second electronic device processes the same data in a second processing stage. Both the first and second electronic devices identify the data and record the current timestamp at each stage. A mapping relationship exists between the identifiers of the first and second data sets; the identifier of the first data indicates the data before processing in the first stage, and the identifier of the second data indicates the data after processing in the first stage. Based on this mapping relationship, the correlation of data changes can be determined. Through this data tracking method based on data identifiers, the processing delay or transmission delay of data at each stage can be understood, enabling tracking of the data processing process. That is, after the first processing stage, the identifier of the first data changes to the identifier of the second data. This application embodiment uses data marking to track the transmission and processing of data between various devices and internal modules within the system. By analyzing the timestamps of the data, we can obtain the latency of each step in the data processing and transmission process, and understand and improve abnormal stages (stages with long latency).

[0024] In one embodiment, the first electronic device is further configured to acquire the first data before converting the first data into second data through the first processing process; the first electronic device is further configured to record the time of acquiring the first data and the identifier of the first data, and the time of acquiring the first data and the start time of the first processing process are used to determine the transmission delay of the first data to start the first processing process.

[0025] In one embodiment, the first electronic device is further configured to record the end time of the first processing procedure and the identifier of the second data, wherein the start time and end time of the first processing procedure are used to determine the processing delay of the first processing procedure; and the end time of the first processing procedure and the start time of the second processing procedure are used to determine the transmission delay of the second data from the first processing procedure to the second processing procedure.

[0026] In one embodiment, the second electronic device is further configured to record the end time of the second processing step and the identifier of the third data, wherein the identifier of the third data is generated based on the third data; the identifier of the third data and the identifier of the second data indicate the second processing step; the start time and the end time of the second processing step are used to determine the processing delay of the second processing step. There is a mapping relationship between the identifier of the second data and the identifier of the third data; the identifier of the second data indicates the second data before processing in the second processing stage, and the identifier of the third data indicates the second data after processing in the second processing stage. Based on this mapping relationship, the correlation of data changes can be determined. That is, after the second processing stage, the identifier of the second data becomes the identifier of the third data.

[0027] In one embodiment, the first electronic device is further configured to trigger data tracking of the first data based on a preset strategy before acquiring the first data; the first electronic device is further configured to send a first instruction; and the second electronic device is further configured to trigger data tracking of the acquired data in response to the first instruction. The method described here for the second electronic device to trigger data tracking can be based on acquiring the first instruction from the first device. Specifically, the first electronic device can trigger data tracking based on its own actions or by receiving an instruction from another electronic device.

[0028] In one embodiment, the first electronic device is further configured to send the start time of the first processing step and the identifier of the first data to the server; the second electronic device is further configured to send the start time of the second processing step and the identifier of the second data to the server; the identifier of the first data and the identifier of the second data are used to indicate the first processing step, and the start time of the first processing step and the start time of the second processing step are used by the server to determine the processing delay of the first processing step. It is described here that the analysis of the identifier can be implemented by the server, utilizing the server's more powerful computing capabilities to perform complex data calculations. The server obtains the identifier record information from the first electronic device, and the server can determine the processing delay of the first processing step. Optionally, the server returns the analysis results to the first electronic device.

[0029] In one embodiment, the first electronic device is further configured to output analysis results, which include the processing latency of the first processing step. In this embodiment, the analysis results may include precise information such as the time consumed between each step in the data processing process, network transmission time, and overall time consumed by the first electronic device; the analysis results may also include abnormal steps identified based on historical analysis results (e.g., which step's time significantly exceeds historical time), and so on.

[0030] Thirdly, embodiments of this application provide an electronic device, including: one or more processors and one or more memories; the one or more memories are coupled to the one or more processors; the one or more memories are used to store computer program code, the computer program code including computer instructions; when the computer instructions are executed on the processor, the electronic device causes the electronic device to perform a data tracking method executed by the first electronic device or the second electronic device in any possible implementation of any of the above aspects.

[0031] Fourthly, embodiments of this application provide a computer storage medium including computer instructions that, when executed on an electronic device, cause a communication device to perform the data tracking method in any of the possible implementations of any of the above aspects.

[0032] Fifthly, embodiments of this application provide a computer program product that, when run on a computer, causes the computer to execute the data tracking method in any of the possible implementations of any of the above aspects. Attached Figure Description

[0033] Figure 1 A schematic diagram of a system architecture provided for an embodiment of this application;

[0034] Figure 2 A schematic diagram of the hardware structure of an electronic device provided in an embodiment of this application;

[0035] Figure 3 A schematic diagram of the software structure of an electronic device provided in an embodiment of this application;

[0036] Figure 4 A flowchart of a data tracking method provided in this application embodiment;

[0037] Figure 5 This application provides a flowchart of steps for processing image data according to an embodiment of the present application.

[0038] Figure 6 This application provides a flowchart of steps for tracking image data.

[0039] Figure 7 This application provides an embodiment of an identification record diagram for tracking image data.

[0040] Figure 8 An analysis result diagram of image data tracking provided in an embodiment of this application;

[0041] Figure 9 A flowchart illustrating the steps of data processing for audio data is provided in this embodiment of the application.

[0042] Figure 10 A flowchart illustrating the steps for tracking audio data provided in this application embodiment;

[0043] Figure 11 A flowchart illustrating another step of data processing for image data provided in this application embodiment;

[0044] Figure 12 This is a flowchart illustrating another step in tracking image data, as provided in an embodiment of this application. Detailed Implementation

[0045] The technical solutions in the embodiments of this application will now be described with reference to the accompanying drawings. In the description of the embodiments of this application, unless otherwise stated, " / " represents "or," for example, A / B can represent A or B; the word "and / or" in the text is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. Furthermore, in the description of the embodiments of this application, "multiple" refers to two or more than two.

[0046] Hereinafter, the terms "first" and "second" are used for descriptive purposes only and should not be construed as implying relative importance or implicitly indicating the number of indicated technical features. Therefore, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of embodiments of this application, unless otherwise stated, "multiple" means two or more. The terms "middle," "left," "right," "upper," and "lower," etc., indicate the orientation or positional relationship based on the orientation or positional relationship shown in the accompanying drawings, and are only for the convenience of describing this application and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation, and therefore should not be construed as a limitation of this application.

[0047] The following are examples illustrating the application scenarios involved in this application.

[0048] Currently, multiple devices can network in a near-field environment via Bluetooth or WiFi to enable mutual collaboration. Collaboration refers to the ability of one device to access the capabilities of other devices or to provide its own capabilities to other devices for use.

[0049] For example, in scenarios such as video calls, after a mobile phone and a computer establish a connection, the mobile phone uses the computer's microphone and camera to capture audio and video. When the mobile phone makes a video call through a video call application, the computer uses its own microphone and camera to capture audio and video, and then transmits it to the mobile phone for the video call application on the mobile phone to receive.

[0050] First, because the screen displayed on the phone is captured by the computer's webcam and transmitted over the computer, the video frames captured by the webcam undergo a series of operations, including encoding on the computer, sending over the network, receiving on the phone, and data decoding and processing. This can lead to problems such as high latency between the webcam's captured image and the image displayed on the phone, as well as instability in the phone's display, affecting the user experience. Furthermore, it's impossible to accurately analyze the latency of each step in the entire process of video frame processing and transmission, from webcam capture to computer transmission and reception by the phone's video call application.

[0051] Furthermore, since microphone and camera data are transmitted from the computer to the phone via audio and video channels respectively, the audio and video are generated synchronously in the actual physical environment. While the audio and video are essentially synchronized when captured on the computer, a series of operations—including computer encoding, network transmission, reception, data decoding, and processing—may lead to asynchronous reception of audio and video data at the same moment. The latency of each step in the processing and transmission of a synchronized frame of audio and video, and which stage causes the asynchrony, are also unknown.

[0052] This application provides a data tracking method based on data identification. It can mark the transmission and processing of data between various devices and internal modules within a system, achieving precise tracking. By analyzing the timestamps of the data markings, the latency of each step in the data processing and transmission process can be obtained. Addressing the problems in the aforementioned scenario, this application can record the processing time and operations of the same video frame across various devices and modules in the system. Simultaneously, it matches the records from each device and module using tracking data identification, thereby accurately calculating the latency of the video frame at each stage. Furthermore, it can precisely match audio and video frames at the same time, providing quantitative and accurate statistics on latency, which is beneficial for analyzing the specific links and causes of audio and video desynchronization.

[0053] It should be noted that the embodiments of this application are applicable to marking and tracking data transmission between multiple devices, as well as to marking and tracking data transmission between internal modules of a single device.

[0054] Figure 1 An exemplary system architecture diagram provided in this application is shown.

[0055] like Figure 1As shown, the system may include one or more electronic devices (such as device 1 and device 2) and server 101. The one or more electronic devices can establish a communication connection via wired or wireless means. For example, the connection can be established via at least one of the following wireless connection methods: Bluetooth (BT), Near Field Communication (NFC), Wireless Fidelity (WiFi), or WiFi Direct. The one or more electronic devices and server 101 can establish a network connection via wired or wireless means.

[0056] For ease of understanding, Figure 1 Using a mobile phone as an example and a computer as an example, Device 1 can access the capabilities of Device 2, such as camera and microphone capabilities. Data can be transmitted between Device 1 and Device 2. Device 1 and Device 2 can mark different stages of data processing and transmission to enable data tracking. In some embodiments, Device 1 can also mark different stages of data processing and transmission between its internal modules.

[0057] Server 101 can be a backend server, a third-party server, a cloud computing platform, etc. Server 101 can provide electronic devices with data storage (identity storage), data analysis (identity analysis, result analysis), and other services. In some embodiments, server 101 is an optional device, and device 1 and device 2 can also provide themselves with data storage (identity storage), data analysis (identity analysis, result analysis), and other services.

[0058] The electronic device 100 involved in the embodiments of this application will be introduced first below.

[0059] Electronic device 100 can be a mobile phone, tablet computer, desktop computer, laptop computer, ultra-mobile personal computer (UMPC), handheld computer, netbook, personal digital assistant (PDA), virtual reality device, PDA (Personal Digital Assistant, also known as handheld computer), portable internet device, data storage device, camera or wearable device (e.g., wireless headset, smartwatch, smart bracelet, smart glasses, head-mounted display (HMD), electronic clothing, electronic bracelet, electronic necklace, electronic accessory, electronic tattoo and smart mirror), etc.

[0060] See Figure 2 , Figure 2 A schematic diagram of the structure of an exemplary electronic device 100 provided in an embodiment of this application is shown. The electronic device 100 can be as described above. Figure 1 The electronic devices in the device are Device 1, Device 2, etc.

[0061] Electronic device 100 may include processor 110, external memory interface 120, internal memory 121, universal serial bus (USB) interface 130, charging management module 140, power management module 141, battery 142, antenna 1, antenna 2, mobile communication module 150, wireless communication module 160, audio module 170, speaker 170A, receiver 170B, microphone 170C, headphone jack 170D, sensor module 180, button 190, motor 191, indicator 192, camera 193, display screen 194, and subscriber identification module (SIM) card interface 195, etc. The sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, a barometric pressure sensor 180C, a magnetic sensor 180D, an accelerometer sensor 180E, a distance sensor 180F, a proximity sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.

[0062] It is understood that the structures illustrated in the embodiments of this application do not constitute a specific limitation on the electronic device 100. In other embodiments of this application, the electronic device 100 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.

[0063] 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.

[0064] The controller can be the nerve center and command center of the electronic device 100. The controller can generate operation control signals according to the instruction opcode and timing signals to complete the control of fetching and executing instructions.

[0065] 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.

[0066] In some embodiments, the processor 110 may include one or more interfaces. Interfaces may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a subscriber identity module (SIM) interface, and / or a universal serial bus (USB) interface, etc.

[0067] The I2C interface is a bidirectional synchronous serial bus, including a serial data line (SDA) and a serial clock line (SCL). In some embodiments, the processor 110 may include multiple I2C buses. The processor 110 can couple to the touch sensor 180K, charger, flash, camera 193, etc., through different I2C bus interfaces. For example, the processor 110 can couple to the touch sensor 180K through the I2C interface, enabling the processor 110 and the touch sensor 180K to communicate through the I2C bus interface, thereby realizing the touch function of the electronic device 100.

[0068] The I2S interface can be used for audio communication. In some embodiments, the processor 110 may include multiple I2S buses. The processor 110 can be coupled to the audio module 170 via the I2S bus to enable communication between the processor 110 and the audio module 170. In some embodiments, the audio module 170 can transmit audio signals to the wireless communication module 160 via the I2S interface to enable the function of answering phone calls through a Bluetooth headset.

[0069] The PCM interface can also be used for audio communication, sampling, quantizing, and encoding analog signals. In some embodiments, the audio module 170 and the wireless communication module 160 can be coupled via the PCM bus interface. In some embodiments, the audio module 170 can also transmit audio signals to the wireless communication module 160 via the PCM interface, enabling the function of answering phone calls through a Bluetooth headset. Both the I2S interface and the PCM interface can be used for audio communication.

[0070] The UART interface is a universal serial data bus used for asynchronous communication. This bus can be a bidirectional communication bus. It converts the data to be transmitted between serial and parallel communication. In some embodiments, the UART interface is typically used to connect the processor 110 and the wireless communication module 160. For example, the processor 110 communicates with the Bluetooth module in the wireless communication module 160 via the UART interface to implement Bluetooth functionality. In some embodiments, the audio module 170 can transmit audio signals to the wireless communication module 160 via the UART interface to enable music playback through Bluetooth headphones.

[0071] The MIPI interface can be used to connect the processor 110 to peripheral devices such as the display screen 194 and the camera 193. The MIPI interface includes a camera serial interface (CSI) and a display serial interface (DSI). In some embodiments, the processor 110 and the camera 193 communicate via the CSI interface to enable the electronic device 100 to capture images. The processor 110 and the display screen 194 communicate via the DSI interface to enable the electronic device 100 to display images.

[0072] The GPIO interface can be configured via software. It can be configured as a control signal or a data signal. In some embodiments, the GPIO interface can be used to connect the processor 110 to a camera 193, a display screen 194, a wireless communication module 160, an audio module 170, a sensor module 180, etc. The GPIO interface can also be configured as an I2C interface, an I2S interface, a UART interface, a MIPI interface, etc.

[0073] USB port 130 is a USB standard compliant interface, specifically a Mini USB port, Micro USB port, USB Type-C port, etc. USB port 130 can be used to connect a charger to charge electronic device 100, and can also be used for data transfer between electronic device 100 and peripheral devices. It can also be used to connect headphones for audio playback. This interface can also be used to connect other electronic devices, such as AR devices.

[0074] It is understood that the interface connection relationships between the modules illustrated in the embodiments of this application are merely illustrative and do not constitute a structural limitation on the electronic device 100. In other embodiments of this application, the electronic device 100 may also employ different interface connection methods or combinations of multiple interface connection methods as described in the above embodiments.

[0075] The charging management module 140 is used to receive charging input from the charger.

[0076] The power management module 141 is used to connect the battery 142, the charging management module 140, and the processor 110.

[0077] The wireless communication function of electronic device 100 can be realized through antenna 1, antenna 2, mobile communication module 150, wireless communication module 160, modem processor and baseband processor, etc.

[0078] Antenna 1 and antenna 2 are used to transmit and receive electromagnetic wave signals. Each antenna in electronic device 100 can be used to cover one or more communication frequency bands. Different antennas can also be multiplexed to improve antenna utilization. For example, antenna 1 can be multiplexed as a diversity antenna for a wireless local area network. In some other embodiments, the antennas can be used in conjunction with tuning switches.

[0079] The mobile communication module 150 can provide solutions for wireless communication, including 2G / 3G / 4G / 5G, applied to the electronic device 100. The mobile communication module 150 may include at least one filter, switch, power amplifier, low noise amplifier (LNA), etc. The mobile communication module 150 can receive electromagnetic waves via antenna 1, and perform filtering, amplification, and other processing on the received electromagnetic waves before transmitting them to a modem processor for demodulation. The mobile communication module 150 can also amplify the signal modulated by the modem processor and convert it into electromagnetic waves for radiation via antenna 1. In some embodiments, at least some functional modules of the mobile communication module 150 may 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 may be housed in the same device.

[0080] The modem processor may include a modulator and a demodulator. The modulator modulates the low-frequency baseband signal to be transmitted into a mid-to-high frequency signal. The demodulator demodulates the received electromagnetic wave signal into a low-frequency baseband signal. The demodulator then transmits the demodulated low-frequency baseband signal to the baseband processor for processing. After processing by the baseband processor, the low-frequency baseband signal is transmitted to the application processor. The application processor outputs sound signals through an audio device (not limited to speaker 170A, receiver 170B, etc.) or displays images or videos through the display screen 194. In some embodiments, the modem processor may be a separate device. In other embodiments, the modem processor may be independent of the processor 110 and may be housed in the same device as the mobile communication module 150 or other functional modules.

[0081] The wireless communication module 160 can provide solutions for wireless communication applications on the electronic device 100, including UWB, wireless local area networks (WLAN) (such as wireless fidelity (WiFi) networks), Bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), and infrared (IR) technologies. The wireless communication module 160 can be one or more devices integrating at least one communication processing module. The wireless communication module 160 receives electromagnetic waves via antenna 2, performs frequency modulation and filtering of the electromagnetic wave signals, and sends the processed signal to processor 110. The wireless communication module 160 can also receive signals to be transmitted from processor 110, perform frequency modulation and amplification, and convert them into electromagnetic waves for radiation via antenna 2.

[0082] In some embodiments, antenna 1 of electronic device 100 is coupled to mobile communication module 150, and antenna 2 is coupled to wireless communication module 160, enabling electronic device 100 to communicate with networks and other devices via wireless communication technology. The wireless communication technology may include 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), BT, GNSS, WLAN, NFC, FM, and / or IR technologies, etc. The GNSS may include the Global Positioning System (GPS), the Global Navigation Satellite System (GLONASS), the BeiDou Navigation Satellite System (BDS), the Quasi-Zenith Satellite System (QZSS), and / or satellite-based augmentation systems (SBAS).

[0083] Electronic device 100 implements display functions 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. Processor 110 may include one or more GPUs, which execute program instructions to generate or modify display information.

[0084] 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, electronic device 100 may include one or N displays 194, where N is a positive integer greater than 1.

[0085] In some embodiments of this application, the display screen 194 displays the interface content currently output by the system. For example, the interface content is the interface provided by an instant messaging application.

[0086] Electronic device 100 can perform shooting functions through ISP, camera 193, video codec, GPU, display 194 and application processor.

[0087] The ISP (Image Signal Processor) is used to process data fed back from the camera 193. For example, when taking a picture, the shutter is opened, and light is transmitted through the lens to the camera's photosensitive element. The light signal is converted into an electrical signal, and the camera's photosensitive element transmits the electrical signal to the ISP for processing, transforming it into an image visible to the naked eye. The ISP can also perform algorithmic optimization of image noise, brightness, and skin tone. The ISP can also optimize parameters such as exposure and color temperature of the shooting scene. In some embodiments, the ISP can be set in the camera 193.

[0088] 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 electronic device 100 may include one or N cameras 193, where N is a positive integer greater than 1.

[0089] Digital signal processors (DSPs) are used to process digital signals. Besides digital image signals, they can also process other digital signals. For example, when electronic device 100 selects a frequency, the DSP can perform Fourier transforms on the frequency energy.

[0090] Video codecs are used to compress or decompress digital video. Electronic device 100 may support one or more video codecs. Thus, electronic device 100 can play or record videos in various encoding formats, such as Moving Picture Experts Group (MPEG) 1, MPEG2, MPEG3, MPEG4, etc.

[0091] An NPU (Neural Processing Unit) is a computational processor for neural networks (NNs). By borrowing the structure of biological neural networks, such as the transmission patterns between neurons in the human brain, it can rapidly process input information and continuously learn on its own. NPUs enable intelligent cognitive applications in electronic devices, such as image recognition, facial recognition, speech recognition, and text understanding.

[0092] The external storage interface 120 can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the electronic device 100. The external memory 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 memory card.

[0093] Internal memory 121 can be used to store computer executable program code, which includes instructions. Processor 110 executes various functional applications and data processing of electronic device 100 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 the use of electronic device 100 (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.

[0094] Electronic device 100 can implement audio functions, such as music playback and recording, through audio module 170, speaker 170A, receiver 170B, microphone 170C, headphone jack 170D, and application processor.

[0095] 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.

[0096] The speaker 170A, also known as a "loudspeaker," is used to convert audio electrical signals into sound signals. The electronic device 100 can listen to music or make hands-free calls through the speaker 170A.

[0097] The receiver 170B, also known as the "earpiece," is used to convert audio electrical signals into sound signals. When the electronic device 100 answers a telephone call or voice message, the receiver 170B can be brought close to the ear to listen to the voice.

[0098] 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. Electronic device 100 may have at least one microphone 170C. In some embodiments, electronic device 100 may have two microphones 170C, which, in addition to collecting sound signals, can also perform noise reduction. In other embodiments, electronic device 100 may also have three, four, or more microphones 170C, which can collect sound signals, reduce noise, identify the sound source, and perform directional recording, etc.

[0099] 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.

[0100] Pressure sensor 180A is used to sense pressure signals and convert them into electrical signals. There are many types of pressure sensors 180A, such as resistive pressure sensors, inductive pressure sensors, and capacitive pressure sensors. Gyroscope sensor 180B can be used to determine the motion posture of electronic device 100. Barometric pressure sensor 180C is used to measure air pressure. Magnetic sensor 180D includes Hall effect sensors. Accelerometer sensor 180E can detect the magnitude of acceleration of electronic device 100 in various directions (generally three axes). Distance sensor 180F is used to measure distance. Proximity sensor 180G may include, for example, a light-emitting diode (LED) and a photodetector, such as a photodiode. Ambient light sensor 180L is used to sense ambient light intensity. Fingerprint sensor 180H is used to collect fingerprints. Temperature sensor 180J is used to detect temperature. Touch sensor 180K, also called a "touch panel," can be placed on display screen 194. The touch sensor 180K and display screen 194 together form a touch screen, also called a "touchscreen." The bone conduction sensor 180M can acquire vibration signals.

[0101] Buttons 190 include a power button, volume buttons, etc. Buttons 190 can be mechanical buttons or touch-sensitive buttons. Electronic device 100 can receive button input and generate key signal inputs related to user settings and function control of electronic device 100.

[0102] Motor 191 can generate vibration alerts.

[0103] Indicator 192 can be an indicator light, used to indicate charging status, power changes, or to indicate messages, missed calls, notifications, etc.

[0104] The SIM card interface 195 is used to connect a SIM card. The SIM card can be inserted into or removed from the SIM card interface 195 to make contact with or separate from the electronic device 100.

[0105] Based on the above Figure 1 The system architecture diagram in the middle, Figure 3 A system software structure block diagram of an embodiment of this application is shown. For example... Figure 3 As shown, device 1 integrates a clock synchronization module 21, an identifier triggering module 22, an identifier generation module 23, an identifier recording module 24, and a business module 25; device 2 integrates a clock synchronization module 31, an identifier triggering module 32, an identifier generation module 33, an identifier recording module 34, and a business module 35; server 101 includes an identifier analysis module 41.

[0106] The service module 25 is used to execute tasks of the electronic device 100. The service module 25 includes one or more service sub-modules, each used to execute different steps in a task. Each service sub-module processes the input data accordingly before outputting it to the next service sub-module. The division of service sub-modules is not limited. For example, if device 1 transmits images captured by its camera to device 2, then service sub-module 1 could be an acquisition module, used to acquire image frames through the camera; service sub-module 2 could be a transcoding module, used to transcode the acquired image frames into the corresponding data format; service sub-module 3 could be an encoding module; ..., service sub-module M could be a sending module, used to send the processed image frames to device 2. In this case, service sub-module M+1 in device 2 could be a receiving module, used to receive the processed image frames sent by device 1; service sub-module M+2 could be a decoding module; service sub-module M+3 could be a transcoding module; ..., service sub-module N could be a display module, used to display the final image frames.

[0107] In this embodiment of the application, the data processed and transmitted in the business module 25 is called business data. The type of business data is not limited, such as audio and video data, text data, instructions, signals, etc.

[0108] In device 1, the clock synchronization module 21 is used to synchronize the clocks between multiple devices. When the same business data is processed and transmitted on multiple devices, clock synchronization can facilitate the statistics of data transmission time on different devices and determine the order in which the business data is processed on different devices.

[0109] The identification triggering module 22 is used to trigger device 1 to identify and track data in service module 25. The identification triggering module 22 can trigger device 1 to identify and track data in service module 25 based on received user operations or instructions sent by other devices; it can also trigger device 1 to identify and track data in service module 25 based on a certain triggering strategy. The triggering strategy includes, but is not limited to, whether the current time is within a preset time period, and whether data processing anomalies (processing failures, excessive latency, etc.) have reached a certain number of times or frequency. For example, a preset time period is defined, during which the identification triggering module 22 triggers service module 25 to identify and track business data; or, for example, if a long business data processing delay is detected, the identification triggering module 22 triggers service module 25 to identify and track business data. Optionally, service module 25 identifies and tracks business data with the delay.

[0110] The identifier generation module 23 is used to generate data identifiers for business data based on the identifier generation algorithm. The same business data will generate the same data identifier, and different business data will generate different data identifiers. These different business data include differences in data content or data format. The identifier generation algorithm includes, but is not limited to, various hash algorithms, encryption algorithms, compression algorithms, and sampling algorithms, such as common hash algorithms (MD2, MD4, MD5, HAVAL, SHA-1, SHA-2, SHA-3, SHA-224, SHA-256, SHA-384, SHA-512, RIPEMD-160), common encryption algorithms (DES, 3DES, Blowfish, IDEA, RC4, RC5, RC6, AES, RSA, ECC, Diffie-Hellman, El Gamal, DSA), and common compression algorithms (run-length compression, Huffman coding compression, LZW compression, arithmetic compression, Rice, Lempel-Ziv, DEFLATE). After the identification trigger module 22 of device 1 triggers the service module 25 to perform identification tracking on the service data, the service module 25 receives the service data and sends it to the identification generation module 23. The identification generation module 23 then generates a data identifier for the service data. If the service data changes after being processed by the service sub-modules within the service module 25 (e.g., the content or format changes), the data identifier generated by the identification generation module 23 based on the processed service data will differ from the data identifier of the service data before processing.

[0111] The identification recording module 24 records the data identifier, timestamp, and other information (such as business description information) of business data and persists this information for subsequent analysis and processing. The business module 25 calls the identification recording module 24 to record the aforementioned information. The recording method of the identification recording module 24 is not limited; it can be in various forms such as logs, memory, or cloud service storage. When data changes, the data identifier changes accordingly. The identification recording module 24 records the mapping relationship between the identifiers of the same data before and after processing by the business sub-module.

[0112] Similarly, the clock synchronization module 31, the identifier triggering module 32, the identifier generation module 33, the identifier recording module 34, and the service module 35 on device 2 are based on the same principle as the clock synchronization module 21, the identifier triggering module 22, the identifier generation module 23, the identifier recording module 24, and the service module 25 on device 1. For the description of each module on device 2, please refer to the description of the corresponding module on device 1. It will not be repeated here.

[0113] The record analysis module 41, after acquiring the identification records from the identification record module 24 of device 1 and the identification record module 34 of device 2, can accurately match the identification records of business data at each stage from the start step to the final step based on these identification records. This allows for the analysis of precise information such as the time consumed by business data between each step, network transmission time, and overall time consumption. The record analysis module 41 can perform analysis based on requirements and output analysis results. These results may include the processing latency of business data in each business sub-module, the transmission latency of business data, and abnormal steps identified based on historical analysis results (e.g., which step's time significantly exceeds historical times), etc.

[0114] It is understood that the structures illustrated in the embodiments of this application do not constitute a specific limitation on device 1, device 2, and server 101. In other embodiments of this application, device 1, device 2, and server 101 may include more or fewer modules than illustrated, or combine some modules, split some modules, or have different module arrangements. The illustrated modules may be implemented in hardware, software, or a combination of software and hardware.

[0115] In some embodiments, the identification record module 24 and the identification record module 34 can be integrated into the server 101 as software modules (identification record modules). The server 101 receives identification records sent by device 1 and device 2 and persistently records the information in the identification record module in the server 101. Then, when the server 101 performs data analysis through the record analysis module 41, it does not need to obtain the information from the identification record module 24 and the identification record module 34.

[0116] In some embodiments, the identification record module 24 and the identification record module 34 can be integrated into the device 1 as software modules (identification record modules). The device 1 receives the identification record sent by the device 2 and persistently records the information in the identification record module in the device 1. Then, when the server 101 performs data analysis through the record analysis module 41, it can obtain the data only from the device 1.

[0117] In some embodiments, the record analysis module 41 can be integrated into device 1 or device 2. That is, device 1 can obtain the business records in the identification record module 34 of device 2 from device 2, and then perform analysis according to the record analysis module 41 to output the analysis results. Similarly, device 2 can obtain the business records in the identification record module 24 of device 1 from device 1, and then perform analysis according to the record analysis module 41 to output the analysis results.

[0118] In this embodiment, device 1 can also be referred to as the first electronic device, and device 2 can also be referred to as the second electronic device. Based on the above system software structure diagram, the following describes the steps of the data identification method executed by device 1, taking data communication between device 1 and device 2 as an example. Figure 4 As shown,

[0119] Step 201: Device 1 performs clock synchronization to ensure that the timestamps are consistent between devices.

[0120] Communication is established between device 1 and device 2. Device 1 performs clock synchronization with device 2 based on its own clock synchronization module 21 to ensure that the timestamps of device 1 and device 2 are consistent.

[0121] In some embodiments, after a communication connection is established between device 1 and device 2, step 201 is executed periodically.

[0122] Step 202: The identification triggering module 22 of device 1 triggers the service module 25 to perform identification tracking on the service data.

[0123] The identification triggering module 22 of device 1 triggers the service module 25 to perform identification tracking on the service data and sends an instruction to device 2, instructing the identification triggering module 32 of device 2 to trigger the service module 35 to perform identification tracking on the service data.

[0124] In some embodiments, the order of steps 201 and 202 is not limited. It can be that after device 1 and device 2 establish a connection, device 1 executes step 201 and then step 202; or it can be that after device 1 and device 2 establish a connection, device 1 executes step 202 and then step 201.

[0125] In this case, the executing entity of the above steps 201 and 202 can also be device 2. For example, the identification triggering module 32 of device 2 triggers the service module 35 to perform identification tracking on the service data and sends an instruction to device 1, instructing the identification triggering module 22 of device 1 to trigger the service module 25 to perform identification tracking on the service data.

[0126] Step 203: The identification triggering module 22 sends an instruction to the business module 25, instructing the business module 25 to perform identification tracking on the business data.

[0127] Step 204: The business module 25 receives the first business data.

[0128] The first business data can be binary data.

[0129] Step 205: The service module 25 sends the first service data to the identifier generation module 23.

[0130] Step 206: The identifier generation module 23 receives the first service data, calculates the identifier corresponding to the first service data based on the identifier generation algorithm, and returns the identifier corresponding to the first service data to the service module 25.

[0131] Step 207: Business module 25 calls identifier recording module 24 to record the identifier corresponding to the first business data, as well as the current timestamp and other information (such as business description information). The business description information here refers to the current stage of the first business data. The current timestamp can be the time when business module 25 receives the first business data, the time when identifier generation module 23 calculates the identifier corresponding to the first business data, the time when business module 25 receives the identifier corresponding to the first business data, the time when business module 25 calls identifier recording module 24 to record the identifier corresponding to the first business data, or the start time when business module 25 processes the first business data.

[0132] Step 208: The business module 25 processes the first business data. The content or format of the first business data changes. At this time, the processed first business data is called the second business data.

[0133] Step 209: Business module 25 calls identifier generation module 23 and sends the second business data to identifier generation module 23.

[0134] Step 210: The identifier generation module 23 receives the second service data, calculates the identifier corresponding to the second service data based on the identifier generation algorithm, and returns the identifier corresponding to the second service data to the service module 25.

[0135] Step 211: Business module 25 calls identifier recording module 24 to record the identifier corresponding to the second business data, as well as the current timestamp and other information (such as business description information). The current timestamp can be the end time of business module 25's processing of the first business data. Furthermore, business module 25 calls identifier recording module 24 to record the mapping relationship between the identifiers of the first and second business data. Based on this mapping relationship, the correlation of data changes can be determined; that is, after processing by business module 25, the identifier of the data before and after processing is changed from the identifier of the first business data to the identifier of the second business data. Here, business module 25 and business module 25 in step 207 refer to the same business sub-module.

[0136] Steps 204 to 211 described above are cyclical steps. The business module 25 includes one or more business sub-modules, each executing different steps within a task. Each business sub-module executes steps 204 to 211 until the identification trigger module 22 triggers device 1 to shut down the business module 25 for identification tracking of business data. Each business sub-module acquires the identifier of the business data upon receiving it, and also acquires the identifier of the processed business data after processing it. Based on the identifier of the business data, tracking of the business data across different business sub-modules can be achieved.

[0137] For example, the first service submodule receives first service data, obtains the identifier Mark1 of the first service data based on the identifier generation module 23, and calls the identifier recording module 24 to record the identifier Mark1 and the current timestamp T1. The first service submodule processes the first service data to obtain second service data, obtains the identifier Mark2 of the second service data based on the identifier generation module, and calls the identifier recording module 24 to record the identifier Mark2 and the current timestamp T2. It also records the mapping relationship from identifier Mark1 to identifier Mark2. This mapping relationship is used to indicate the processing procedure of the first service submodule, and based on this mapping relationship, the association between data identifiers can be determined. The service description information from identifier Mark1 to identifier Mark2 represents the processing performed by the first service submodule on the first service data. Timestamps T1 and T2 can determine the processing delay of the first service submodule.

[0138] The second service submodule receives the second service data, obtains the identifier Mark2 of the second service data based on the identifier generation module 23, and calls the identifier recording module 24 to record the identifier Mark2 and the current timestamp T3. Since the second service data has not changed at this time, the identifier generation module 23 still generates the identifier Mark2 based on the algorithm. Based on the identical identifier, the data transmission path can be determined: the output data of the first service submodule (the second service data) was output at time T2 and transmitted to the second service submodule at time T3. The timestamps T2 and T3 can determine the transmission delay of the second service submodule.

[0139] The second service submodule processes the second service data to obtain the third service data. Based on the identifier generation module 23, it obtains the identifier Mark3 of the third service data and calls the identifier recording module 24 to record the identifier Mark3 and the current timestamp T4. It also records the mapping relationship from identifier Mark2 to identifier Mark3. Based on this mapping relationship, the correlation of data changes can be determined. The service description information from identifier Mark2 to identifier Mark3 represents the processing performed by the second service submodule on the second service data. Timestamps T3 and T4 can determine the processing latency of the second service submodule.

[0140] In some embodiments, the second service module is integrated on device 2. When the second service submodule receives the second service data, it obtains the identifier Mark2 of the second service data based on the identifier generation module 33, and calls the identifier recording module 34 to record the identifier Mark2 and the current timestamp T3. Since the second service data has not changed at this time, the identifier generation module 33 still generates the identifier Mark2 based on the algorithm. Based on the same identifier, the data transmission path can be determined: the output data of the first service submodule (the second service data) was output at time T2 and transmitted to the second service submodule at time T3.

[0141] The second service submodule processes the second service data to obtain the third service data. Based on the identifier generation module 33, it obtains the identifier Mark3 of the third service data and calls the identifier recording module 34 to record the identifier Mark3 and the current timestamp T4. The service description information from identifier Mark2 to identifier Mark3 represents the processing performed on the second service data by the second service submodule.

[0142] The same applies to other business sub-modules. Each business sub-module performs the operations described in steps 204 to 211 above until the identification trigger module 22 triggers device 1 to shut down business module 25 to identify and track business data.

[0143] In this embodiment, the first business data can be referred to as first data, the second business data as second data, and the third business data as third data. The process by which the first business submodule processes the first business data can be referred to as the first processing process. Timestamp T1 can be the start time of the first business submodule's processing of the first business data, and timestamp T2 can be the end time of the first business submodule's processing of the first business data.

[0144] The process by which the second business submodule processes the first business data can be referred to as the second processing process. Timestamp T3 can be the start time of the second business submodule's processing of the second business data, and timestamp T4 can be the end time of the second business submodule's processing of the second business data.

[0145] In some embodiments, the identification recording module 24 may not be integrated on device 1, and the identification recording module 34 may not be integrated on device 2. Identification recording modules 24 and 34 may be integrated on other electronic devices or servers. In steps 207 and 211, the service module 25 calls the identification recording module of the other electronic device or server to record the identifier corresponding to the service data, as well as the current timestamp and service description information.

[0146] Steps 204 to 211 above describe the specific process by which device 1 records data identifiers and timestamps for data at different stages. In practice, it is not necessary to execute steps 204 to 211 for data at every stage.

[0147] In some embodiments, the first service submodule receives first service data, obtains the identifier Mark1 of the first service data based on the identifier generation module 23, and calls the identifier recording module 24 to record the identifier Mark1 and the current timestamp T1. The first service submodule processes the first service data to obtain second service data, obtains the identifier Mark2 of the second service data based on the identifier generation module, and calls the identifier recording module 24 to record the identifier Mark2 and the current timestamp T2. The service description information from identifier Mark1 to identifier Mark2 represents the processing performed by the first service submodule on the first service data. Timestamps T1 and T2 can determine the processing delay of the first service submodule.

[0148] The second service submodule receives the second service data, processes it to obtain the third service data, obtains the identifier Mark3 of the third service data based on the identifier generation module 23, and calls the identifier recording module 24 to record the identifier Mark3 and the current timestamp T4. The service description information from identifier Mark2 to identifier Mark3 represents the processing performed on the second service data by the second service submodule.

[0149] Here, the second business sub-module only records the data identifier once, and the processing delay of the second business sub-module can be determined by the timestamp T2 and timestamp T4.

[0150] In some embodiments, the first service submodule receives first service data, obtains the identifier Mark1 of the first service data based on the identifier generation module 23, and calls the identifier recording module 24 to record the identifier Mark1 and the current timestamp T1. The first service submodule processes the first service data to obtain second service data.

[0151] The second service submodule receives the second service data, obtains the identifier Mark2 of the second service data based on the identifier generation module 23, and calls the identifier recording module 24 to record the identifier Mark2 and the current timestamp T3. The first service submodule processes the first service data to obtain the second service data.

[0152] Here, the first and second business sub-modules only record the data identifier once. The processing delay of the first business sub-module can be determined by the timestamps T1 and T2.

[0153] Step 212: The identifier analysis module 41 obtains the identifier records stored in the identifier record module 24.

[0154] The identifier analysis module 41 obtains the identifier records stored in the identifier record module 24 of device 1 and the identifier records stored in the identifier record module 34 of device 2. The method by which the identifier analysis module 41 obtains the identifier records from each device is not limited; for example, the identifier analysis module 41 may retrieve identifier record logs, or devices 1 and 2 may automatically upload identifier records to the identifier analysis module 41 via cloud services.

[0155] In this embodiment of the application, the identifier analysis module 41 can be integrated on device 1, device 2, or server 101.

[0156] Step 213: The identifier analysis module 41 analyzes the identifier records and outputs the analysis results.

[0157] The identifier analysis module 41 collects relevant identifier records for the same set of business data based on the obtained identifier records and the mapping relationship between data identifiers. It then matches the data identifier records of each stage to analyze precise information such as the time consumption of each stage, network transmission time, and overall time consumption. The analysis results can include the processing latency of business data in each business sub-module, the transmission latency of business data, and abnormal steps identified based on historical analysis results (e.g., which business sub-module or transmission process takes significantly longer than historically recorded times), etc.

[0158] By implementing the embodiments of this application, devices 1 and 2 can track the same business data by identifying it at each processing and transmission stage, and further analyze the latency of the business data at each stage, enabling them to understand and improve abnormal stages (stages with longer latency).

[0159] The above describes the marking and tracking of data transmission between multiple devices (device 1 and device 2). This application's embodiments are also applicable to marking and tracking data transmission between internal modules of a single device. Taking device 1 as an example, device 1 marks and tracks data transmission between its own internal modules.

[0160] When device 1 tracks and marks data transmissions between its internal modules without needing clock synchronization, service module 25 receives first service data and retrieves the data identifier corresponding to the first service data from identifier generation module 23. Next, service module 25 calls identifier recording module 24 to record the data identifier corresponding to the first service data, along with the current timestamp and service description information. Service module 25 processes the first service data to generate second service data. It retrieves the data identifier corresponding to the second service data from identifier generation module 23. Service module 25 calls identifier recording module 24 to record the data identifier corresponding to the second service data, along with the current timestamp and service description information. Furthermore, identifier recording module 24 records the mapping relationship between the data identifiers of the first and second service data.

[0161] The identification record module 24 includes identification records of business data at each stage from the start step to the final step. The identification analysis module 41 can then analyze these records to obtain precise information such as the time consumed between each step, network transmission time, and overall time consumption. Optionally, device 1 obtains the identification records from the identification record module 24 through the identification analysis module 41. The identification analysis module 41 analyzes the identification records and outputs the analysis results.

[0162] By implementing the embodiments of this application, device 1 can track the same business data by identifying the data at each processing and transmission stage, and further analyze the latency of the business data at each stage, and understand and improve abnormal stages (stages with long latency).

[0163] Next, specific embodiments will be used to illustrate the application scenarios applicable to the embodiments of this application.

[0164] Example 1: Device B calls the camera of Device A to collect image data. Device A and Device B perform data identification on the image data processing and transmission process to achieve data tracking.

[0165] Device B uses the camera from Device A as a distributed camera; image data captured by the camera on Device A is transmitted to Device B for use. For example... Figure 5 As shown, Figure 5 The illustrative examples illustrate the steps involved in processing and transmitting image data using devices A and B, which can be briefly summarized as follows:

[0166] 1. Device A acquires raw image data (in NV21 format) through a camera;

[0167] 2. Device A transcodes the original image data into NV12 format;

[0168] 3. Device A encodes NV12 format image data into H264 format;

[0169] 4. Device A transmits H.264 format image data to Device B;

[0170] 5. Device B receives H.264 format image data and decodes the image data into NV12 format;

[0171] 6. Device B transcodes the NV12 format image data to YUV420P format;

[0172] 7. Device B performs processing on the YUV420P format image data, including cropping, rotating, filling, and resolution conversion (e.g., converting 720P to 1080P).

[0173] 8. Device B will convert the processed YUV420P format image data to NV21 format and display it on its display device.

[0174] It can be seen that the original image format was converted multiple times between NV21, NV12, H264, and YUV420P. The image itself also underwent multiple operations such as cropping, rotation, filling, and resolution scaling. Although it was the same frame of the scene, the image data itself was constantly changing.

[0175] Currently, it's possible to detect the overall transmission time from when the camera on device A captures the raw image data to when it's displayed on device B, allowing users to have a comprehensive understanding of the transmission process. However, the transmission time data for each step within the above process is even more significant for research.

[0176] This application provides a data tracking method based on data identification, which can calculate the specific time consumed for each step in the transmission process of the aforementioned image data, facilitating researchers to perform precise analysis and optimization for time-consuming steps.

[0177] For the above scenario, the steps of a data tracking method provided in this application are described below.

[0178] First, device A and device B synchronize their clocks; then, both device A and device B trigger data identifier tracking. Either device A or device B can actively trigger data identifier tracking and then instruct the other device to trigger it.

[0179] After devices A and B trigger data identification tracking, device A may optionally sample the image frames captured by the camera. The sampling strategy can be to sample at a preset sampling rate, such as selecting one frame out of a thousand frames; the sampling strategy can also be to sample based on a specified time period; and so on.

[0180] Then, device A acquires the image frame that needs to be identified and tracked, obtains the data identifier mark1 of the image frame, and records the data identifier mark1, timestamp, and other information (such as service description information) to a log or other storage system. Each time the image frame is processed, the data identifier value mark2 of the processed image frame is acquired, the mapping relationship between the identifiers of the image frame before and after processing (mark1->mark2) is recorded, and the data identifier mark2, timestamp, and other information of the processed image frame are recorded to a log or other storage method.

[0181] Based on the above Figure 5 For example, Figure 6 The changes in the data identifier of this image frame are shown:

[0182] 1. Device A acquires the original image frame captured by the camera, in NV21 format; Device A calls the identifier generation module to obtain the identifier of the original image frame as Mark1, and calls the identifier recording module to record Mark1, the current timestamp T1, and the service description information (e.g., the first frame of image data received).

[0183] 2. Device A transcodes the original image frame into NV12 format;

[0184] Specifically, device A sends the original image frame to the transcoding module. The transcoding module calls the identifier generation module to obtain the identifier of the original image frame as Mark1, and calls the identifier recording module to record Mark1, the current timestamp T2, and service description information (e.g., start transcoding to NV12 format).

[0185] The transcoding module then transcodes the original image frame into NV12 format. The transcoding module calls the identifier generation module to obtain the identifier of the NV12 format image data, designated Mark2. It then calls the identifier recording module to record Mark2, the current timestamp T3, and service description information (e.g., end of transcoding to NV12 format). Simultaneously, the identifier recording module records the mapping relationship from Mark1 to Mark2. This mapping relationship indicates the transcoding process, and based on it, the association between data identifiers Mark1 and Mark2 can be determined.

[0186] 3. Device A encodes NV12 format image data into H264 format;

[0187] Specifically, device A sends the NV12 format image data to the encoding module. The encoding module calls the identifier generation module to obtain the identifier of the NV12 format image data as Mark2, and calls the identifier recording module to record Mark2, the current timestamp T4, and service description information (e.g., starting encoding to H264 format).

[0188] The encoding module then encodes the NV12 format image data into H264 format. The encoding module calls the identifier generation module to obtain the identifier Mark3 for the H264 format image data, and calls the identifier recording module to record Mark3, the current timestamp T5, and service description information (e.g., end of H264 encoding). Furthermore, the identifier recording module records the mapping relationship from Mark2 to Mark3. This mapping relationship can indicate the encoding process, and based on this mapping relationship, the association between data identifiers Mark2 and Mark3 can be determined.

[0189] 4. Device A transmits H.264 format image data to Device B. Device B receives the H.264 format image data. Upon receiving the H.264 format image data, Device B calls the identifier generation module to obtain the identifier of the H.264 format image data as Mark3, and calls the identifier recording module to record Mark3, the current timestamp T6, and service description information (e.g., receiving H.264 format image data).

[0190] 5. Device B decodes the H264 format image data into NV12 format;

[0191] Specifically, the decoding module of device B decodes the H.264 format image data into NV12 format. The decoding module calls the identifier generation module to obtain the identifier of the H.264 format image data as Mark4, and calls the identifier recording module to record Mark4, the current timestamp T7, and service description information (e.g., completion of decoding to NV12 format). Furthermore, the identifier recording module records the mapping relationship from Mark3 to Mark4. This mapping relationship can indicate the decoding process, and based on this mapping relationship, the association between data identifiers Mark3 and Mark4 can be determined.

[0192] 6. Device B transcodes the NV12 format image data to YUV420P format;

[0193] Specifically, device B sends the NV12 format image data to the transcoding module. The transcoding module calls the identifier generation module to obtain the identifier of the NV12 format image data as Mark4; it then calls the identifier recording module to record Mark4, the current timestamp T8, and service description information (e.g., starting transcoding to YUV420P format).

[0194] The transcoding module then transcodes the NV12 format image data to YUV420P format. The transcoding module calls the identifier generation module to obtain the identifier of the YUV420P format image data as Mark5, and calls the identifier recording module to record Mark5, the current timestamp T9, and service description information (e.g., end of transcoding to YUV420P format). Furthermore, the identifier recording module records the mapping relationship from Mark4 to Mark5. This mapping relationship can indicate the process of transcoding the NV12 format image data to YUV420P format. Based on this mapping relationship, the association between data identifiers Mark4 and Mark5 can be determined.

[0195] 7. Device B performs processing on the YUV420P format image data, including cropping, rotating, filling, and resolution conversion (e.g., converting 720P to 1080P).

[0196] Specifically, device B sends the YUV420P format image data to the processing module. The processing module calls the identifier generation module to obtain the identifier of the YUV420P format image data as Mark5; it then calls the identifier recording module to record Mark5, the current timestamp T10, and service description information (such as starting image data processing).

[0197] The processing module then performs cropping, rotation, padding, and resolution conversion (e.g., converting 720P to 1080P) on the YUV420P format image data. The processing module calls the identifier generation module to obtain the identifier of the processed image data as Mark6, and calls the identifier recording module to record Mark6, the current timestamp T11, and business description information (e.g., ending image data processing). At this time, the identifier recording module records the mapping relationship from Mark5 to Mark6. This mapping relationship can indicate the cropping, rotation, padding, and resolution conversion processes. Based on this mapping relationship, the association between data identifiers Mark5 and Mark6 can be determined.

[0198] 8. Device B will convert the processed YUV420P format image data to NV21 format and display it on its display device.

[0199] Specifically, device B sends the processed YUV420P format image data to the transcoding module. The transcoding module calls the identifier generation module to obtain the identifier of the processed YUV420P format image data as Mark6; it calls the identifier recording module to record Mark6, the current timestamp T12, and service description information (e.g., start transcoding to NV21 format).

[0200] The transcoding module then transcodes the processed YUV420P image data to NV21 format. The transcoding module calls the identifier generation module to obtain the identifier Mark7 for the NV21 image data, and calls the identifier recording module to record Mark7, the current timestamp T13, and service description information (e.g., end of transcoding to NV21 format). Simultaneously, the identifier recording module records the mapping relationship from Mark6 to Mark7. This mapping relationship indicates the transcoding process of the YUV420P image data to NV21 format, and based on this mapping relationship, the association between data identifiers Mark6 and Mark7 can be determined.

[0201] Through the above stages 1-8, the following records can be seen in the identification record module of device A:

[0202] Mark1, timestamp T1, service description information: First frame of image data received;

[0203] Mark1, timestamp T2, business description information: Start transcoding to NV12 format;

[0204] Mark1→Mark2, timestamp T3, business description information: end transcoding to NV12 format;

[0205] Mark2, timestamp T4, business description information: begin encoding in H264 format;

[0206] Mark2→Mark3, timestamp T5, business description information: end encoding is H264 format.

[0207] The following records can be seen in the identification record module of device B:

[0208] Mark3, timestamp T6, service description information: Received image data in H264 format;

[0209] Mark3→Mark4, timestamp T7, business description information: end decoding to NV12 format;

[0210] Mark4, timestamp T8, business description information: Start transcoding to YUV420P format;

[0211] Mark4→Mark5, timestamp T9, business description information: end transcoding to YUV420P format;

[0212] Mark5, timestamp T10, business description information: Start processing image data;

[0213] Mark5→Mark6, timestamp T11, business description information: End image data processing;

[0214] Mark6, timestamp T12, and business description information: Begin transcoding to NV21 format;

[0215] Mark6 → Mark7, timestamp T13, and business description information: end the transcoding to NV21 format.

[0216] like Figure 7 As shown, Figure 7 The example shows a portion of the identification records in the identification record module of device A and the identification record module of device B.

[0217] As can be seen, the original image frame flows through various modules in device A and device B, obtaining the identifier value mapping of the same frame image data in each module at each stage (mark1→mark2→...→mark7). The identifier analysis module collects the identifier record information of device A and device B, collects the relevant identifier records of the same frame image data according to the identifier value mapping relationship, and determines the processing time of data between modules through the timestamps of each stage, thereby obtaining the precise time delay distribution of the same frame image data from acquisition by device A to display by device B.

[0218] like Figure 8 As shown, Figure 8The example illustrates the analysis results determined by an identifier analysis module based on the acquired identifier records. The analysis results show the time consumption latency of certain stages in the above process. It can be seen that... Figure 8 The analysis results indicate that the process of transcoding NV12 format image data to YUV420P format has a long latency. Therefore, developers can improve the transcoding rate of device B, thereby reducing the latency of device B displaying image frames captured by the camera of device A.

[0219] Because real-time image data has a fixed encoding format, it cannot be modified arbitrarily, nor can fields for tracking be added to the image data. In this embodiment, the data identifier is not transmitted with the image frame; by recording the data identifier, accurate tracking of the image data can be achieved.

[0220] Example 2: Device B calls the microphone of Device A to collect audio data. Device A and Device B identify the audio data processing and transmission process to achieve data tracking.

[0221] Device B uses the microphone of Device A to collect audio data, and the audio data collected by the microphone of Device A is transmitted to Device B for use. For example... Figure 9 As shown, Figure 9 The illustrative examples show the steps involved in processing and transmitting audio data using devices A and B, which can be briefly summarized as follows:

[0222] 1. Device A acquires raw audio data (PCM format, 16-bit dual-channel) through a microphone;

[0223] 2. Device A encodes the raw audio data into H264 format;

[0224] 3. Device A transmits H.264 format audio data to Device B;

[0225] 4. Device B receives H.264 format audio data and decodes the image data into PCM format, 16-bit dual-channel;

[0226] 5. Device B resamples the decoded audio data to obtain PCM format, 32-bit four-channel audio data, and plays the audio data.

[0227] It can be seen that the original image format was converted multiple times between PCM and H264. Although it was the same audio data, the audio data itself was constantly changing.

[0228] For the above scenario, the steps of a data tracking method provided in this application are described below.

[0229] First, device A and device B synchronize their clocks; then, both device A and device B trigger data identifier tracking. Either device A or device B can actively trigger data identifier tracking and then instruct the other device to trigger it.

[0230] After devices A and B trigger data identification tracking, device A may optionally sample the audio data captured by the microphone. The sampling strategy can be sampling at a preset sampling rate; the sampling strategy can also be sampling based on a specified time period; and so on.

[0231] Then, device A acquires the audio data that needs to be tracked, obtains the data identifier mark1 of the audio data, and records the data identifier mark1, timestamp, and other information (such as service description information) to a log or other storage system. Each time the audio data is processed, the data identifier value mark2 of the processed audio data is acquired, the mapping relationship between the identifiers of the audio data before and after processing (mark1->mark2) is recorded, and the data identifier mark2, timestamp, and other information of the processed audio data are recorded to a log or other storage method.

[0232] Based on the above Figure 9 For example, Figure 10 The process of changing the data identifier of this audio data is shown:

[0233] 1. Device A acquires raw audio data via microphone in PCM format, 16-bit dual-channel. Device A calls the identifier generation module to obtain the identifier of the raw audio data as Mark1, and calls the identifier recording module to record Mark1, the current timestamp T1, and service description information (e.g., the received raw audio data).

[0234] 2. Device A encodes the raw audio data into H264 format;

[0235] Specifically, device A sends the raw audio data to the encoding module. The encoding module calls the identifier generation module to obtain the identifier of the raw audio data as Mark1, and calls the identifier recording module to record Mark1, the current timestamp T2, and the service description information (e.g., the start of encoding as H264 format).

[0236] The encoding module then encodes the raw audio data into H.264 format. The encoding module calls the identifier generation module to obtain the identifier Mark2 for the H.264 audio data, and calls the identifier recording module to record Mark2, the current timestamp T3, and service description information (e.g., end of H.264 encoding). At this time, the identifier recording module records the mapping relationship from Mark1 to Mark2. This mapping relationship can indicate the encoding process, and based on this mapping relationship, the association between data identifiers Mark1 and Mark2 can be determined.

[0237] 3. Device A transmits H264 format audio data to Device B. Device B receives the H264 format audio data. Upon receiving the H264 format audio data, Device B calls the identifier generation module to obtain the identifier of the H264 format audio data as Mark2, and calls the identifier recording module to record Mark2, the current timestamp T4, and service description information (e.g., receiving H264 format image data).

[0238] 4. Device B decodes the H264 format audio data into PCM format, 16-bit dual-channel;

[0239] Specifically, the decoding module of device B decodes the H.264 format audio data into PCM format, 16-bit dual-channel. The decoding module calls the identifier generation module to obtain the identifier of the H.264 format audio data as Mark3, and calls the identifier recording module to record Mark3, the current timestamp T5, and service description information (e.g., completion of decoding to PCM format). At this time, the identifier recording module records the mapping relationship from Mark2 to Mark3. This mapping relationship can indicate the decoding process, and based on this mapping relationship, the association between data identifiers Mark2 and Mark3 can be determined.

[0240] 5. Device B resamples the decoded audio data to obtain PCM format, 32-bit four-channel audio data, and plays the audio data.

[0241] Specifically, device B sends the processed PCM format, 16-bit dual-channel audio data to the resampling module. The resampling module calls the identifier generation module to obtain the identifier of the processed PCM format, 16-bit dual-channel image data as Mark3; and calls the identifier recording module to record Mark3, the current timestamp T6, and service description information (e.g., starting resampling as 32-bit quad-channel).

[0242] Then, the resampling module resamples the 16-bit dual-channel audio data into 32-bit four-channel audio data. The resampling module calls the identifier generation module to obtain the identifier of this 32-bit four-channel audio data as Mark4, and calls the identifier recording module to record Mark4, the current timestamp T7, and service description information (e.g., end of resampling to 32-bit four-channel). Furthermore, the identifier recording module records the mapping relationship from Mark3 to Mark4. This mapping relationship can indicate the resampling process, and based on this mapping relationship, the association between data identifiers Mark3 and Mark4 can be determined.

[0243] Through the above stages 1-5, the following records can be seen in the identification record module of device A:

[0244] Mark1, timestamp T1, and service description information: received raw audio data;

[0245] Mark1, timestamp T2, business description information: initially encoded in H264 format;

[0246] Mark1→Mark2, timestamp T3, business description information: end encoding is H264 format.

[0247] The following records can be seen in the identification record module of device B:

[0248] Mark2, timestamp T4, service description information: Received H264 format audio data;

[0249] Mark2→Mark3, timestamp T5, service description information: end decoding to PCM format, 16-bit dual-channel;

[0250] Mark3, Timestamp T6, Business Description Information: Start resampling to 32-bit four-channel;

[0251] Mark3→Mark4, timestamp T7, business description information: end resampling to 32-bit four-channel.

[0252] As can be seen, the raw audio data flows through various modules in device A and device B, obtaining the identifier value mapping of the same audio data at each stage in each module (mark1→mark2→...→mark4). The identifier analysis module collects the identifier record information of device A and device B, collects relevant identifier records of the same business data according to the identifier value mapping relationship, and determines the processing time of data between modules through the timestamps of each stage, thereby obtaining the precise time delay distribution of the same audio data at each stage in the process from acquisition by device A to playback by device B.

[0253] Because real-time audio data has a fixed encoding format, it cannot be modified arbitrarily, nor can fields for tracking be added to the audio data. In this embodiment, the data identifier is not transmitted along with the audio data; by recording the data identifier, accurate tracking of the audio data can be achieved.

[0254] Furthermore, regarding the issue of audio-visual asynchrony in video call scenarios, by combining the analysis of image data in the first embodiment above, abnormal steps can be identified by comparing the latency of each step in the image data with the latency of each step in the audio data. Developers can then address these abnormal steps in a targeted manner.

[0255] Example 3: Device A collects image data through its own camera. Device A performs data identification on the image data processing process to achieve data tracking.

[0256] Device A uses its own camera to collect image data, such as Figure 11 As shown, Figure 11 The illustrative illustration shows the steps involved in processing and transmitting image data by device A, which can be briefly summarized as follows:

[0257] 1. Device A acquires raw image data (in NV21 format) through a camera;

[0258] 2. Device A processes the raw image data using an algorithm;

[0259] 3. Device A saves the processed image data in bitmap format.

[0260] For the above scenario, the steps of a data tracking method provided in this application are described below.

[0261] First, device A triggers data identifier tracking. Optionally, after triggering data identifier tracking, device A samples the image frames captured by the camera. The sampling strategy can be based on a preset sampling rate; it can also be based on sampling within a specified time period; and so on.

[0262] Then, device A acquires the image frame that needs to be identified and tracked, obtains the data identifier mark1 of the image frame, and records the data identifier mark1, timestamp, and other information (such as service description information) to a log or other storage system. Each time the image frame is processed, the data identifier value mark2 of the processed image frame is acquired, the mapping relationship between the identifiers of the image frame before and after processing (mark1->mark2) is recorded, and the data identifier mark2, timestamp, and other information of the processed image frame are recorded to a log or other storage method.

[0263] Based on the above Figure 11 For example, Figure 12 The process of changing the data identifier of this audio data is shown:

[0264] 1. Device A acquires the original image frame captured by the camera, in NV21 format; Device A calls the identifier generation module to obtain the identifier of the original image frame as Mark1, and calls the identifier recording module to record Mark1, the current timestamp T1, and the service description information (e.g., the received original image data).

[0265] 2. Device A processes the raw image data using an algorithm;

[0266] Specifically, device B sends the original image frame to the algorithm processing module. The processing module calls the identifier generation module to obtain the identifier of the original image frame as Mark1. It then calls the identifier recording module to record Mark1, the current timestamp T2, and the service description information (such as the start of image data processing).

[0267] The algorithm processing module then processes the original image frame. While the format of the processed image frame remains unchanged, the data content is altered. The algorithm processing module calls the identifier generation module to obtain the identifier Mark2 for the processed image frame, and then calls the identifier recording module to record Mark2, the current timestamp T3, and business description information (e.g., the end of image data processing). Simultaneously, the identifier recording module records the mapping relationship from Mark1 to Mark2. This mapping relationship indicates the processing procedure of the image data through the algorithm, and based on this mapping relationship, the association between data identifiers Mark1 and Mark2 can be determined.

[0268] 3. Device A saves the processed image data in bitmap format.

[0269] The storage module saves the processed image frame as a bitmap. It then calls the identifier generation module to obtain the identifier Mark3 for the stored image frame, and calls the identifier recording module to record Mark3, the current timestamp T4, and service description information (e.g., the stored image frame). Simultaneously, the identifier recording module records the mapping relationship from Mark2 to Mark3. This mapping relationship indicates the image data storage process, and based on this mapping relationship, the association between data identifiers Mark2 and Mark3 can be determined.

[0270] Through the above 1-3 stages, the following records can be seen in the identification record module of device A:

[0271] Mark1, timestamp T1, and service description information: received raw image data;

[0272] Mark1, timestamp T2, business description information: Start processing image data;

[0273] Mark1→Mark2, timestamp T3, business description information: End image data processing;

[0274] Mark2→Mark3, timestamp T4, business description information: store image frames.

[0275] As can be seen, the original image frame flows through various modules in device A, obtaining the identifier value mapping (mark1→mark2→mark3) of the same frame image data at each stage in each module. The identifier analysis module collects the identifier record information of device A, collects relevant identifier records of the same business data according to the identifier value mapping relationship, and determines the processing time of data between various modules by the timestamps of each stage, thereby obtaining the precise time delay distribution of the same frame image data at each stage from acquisition to storage.

[0276] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive), etc.

[0277] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. This program can be stored in a computer-readable storage medium, and when executed, it can include the processes described in the above method embodiments. The aforementioned storage medium includes various media capable of storing program code, such as ROM or random access memory (RAM), magnetic disks, or optical disks.

Claims

1. A data tracking method, characterized by, The method includes: The first electronic device converts the first data into second data through a first processing procedure; The first electronic device records the start time of the first processing procedure and the identifier of the first data, wherein the identifier of the first data is generated based on the first data; The first electronic device converts the second data into third data through a second processing procedure; The first electronic device records the start time of the second processing procedure and the identifier of the second data, and records the mapping relationship between the identifier of the first data and the identifier of the second data, wherein the identifier of the second data is generated based on the second data; the identifier of the second data and the identifier of the first data indicate the first processing procedure; the start time and the end time of the first processing procedure are used to determine the processing delay of the first processing procedure.

2. The method of claim 1, wherein, The first electronic device converts the first data into second data through a first processing step, which includes the following steps beforehand: The first electronic device acquires the first data; The first electronic device records the time when the first data is acquired and the identifier of the first data. The time when the first data is acquired and the start time of the first processing are used to determine the transmission delay when the first data begins to undergo the first processing.

3. The method of claim 1, wherein, The method further includes: The first electronic device records the end time of the first processing procedure and the identifier of the second data; the end time of the first processing procedure and the start time of the second processing procedure are used to determine the transmission delay of the second data from the first processing procedure to the second processing procedure.

4. The method of claim 1, wherein, The method further includes: The first electronic device records the end time of the second processing procedure and the identifier of the third data, the identifier of the third data being generated based on the third data; the identifier of the third data and the identifier of the second data indicate the second processing procedure; the start time and end time of the second processing procedure are used to determine the processing delay of the second processing procedure.

5. The method of claim 2, wherein, Before the first electronic device acquires the first data, it also includes: The first electronic device is triggered to track the first data based on a preset strategy.

6. The method of claim 5, wherein, The preset strategy includes: When the current time of the first electronic device is within a preset time period; or When the first electronic device receives a user operation to track the first data; or When the first electronic device receives an instruction from the second electronic device instructing the first electronic device to perform data tracking on the acquired first data.

7. The method of claim 2, wherein, The first electronic device acquires the first data, including: The first electronic device detects a large delay in the first data stream and triggers the first electronic device to track the first data stream. The first electronic device samples the first data stream to obtain the first data.

8. The method of claim 1, wherein, The first electronic device records the start time of the first processing step and the identifier of the first data. Prior to this, it also includes: The first electronic device generates an identifier for the first data based on an identifier generation algorithm.

9. The method according to claim 1, characterized in that, The data type of the first data is audio and video data.

10. The method according to claim 1, characterized in that, The first electronic device records the start time of the second processing procedure and the identifier of the second data, and then further includes: The first electronic device sends the start time of the first processing step and the identifier of the first data, the start time of the second processing step and the identifier of the second data to the server; the identifier of the first data and the identifier of the second data are used to indicate the first processing step, and the start time and end time of the first processing step are used by the server to determine the processing delay of the first processing step.

11. The method according to any one of claims 1 to 10, characterized in that, The method further includes: The first electronic device outputs analysis results, which include the processing delay of the first processing procedure.

12. A data tracking system, characterized in that, Including the first electronic device and the second electronic device, The first electronic device is used to convert the first data into second data through a first processing procedure; The first electronic device is further configured to record the start time of the first processing procedure and the identifier of the first data, wherein the identifier of the first data is generated based on the first data; The first electronic device is further configured to send the second data to the second electronic device; The second electronic device is used to convert the received second data into third data through a second processing procedure; The second electronic device is further configured to record the start time of the second processing procedure and the identifier of the second data, the identifier of the second data being generated based on the second data; the identifier of the second data and the identifier of the first data indicate the first processing procedure; the start time and the end time of the first processing procedure are used to determine the processing delay of the first processing procedure.

13. The system according to claim 12, characterized in that, The first electronic device is further configured to acquire the first data before converting the first data into second data through the first processing procedure; The first electronic device is further configured to record the time when the first data is acquired and the identifier of the first data, wherein the time when the first data is acquired and the start time of the first processing are used to determine the transmission delay at which the first data begins the first processing.

14. The system according to claim 12, characterized in that, The first electronic device is further configured to record the end time of the first processing procedure and the identifier of the second data; the end time of the first processing procedure and the start time of the second processing procedure are used to determine the transmission delay of the second data from the first processing procedure to the second processing procedure.

15. The system according to claim 12, characterized in that, The second electronic device is further configured to record the end time of the second processing procedure and the identifier of the third data, the identifier of the third data being generated based on the third data; the identifier of the third data and the identifier of the second data indicate the second processing procedure; the start time and the end time of the second processing procedure are used to determine the processing delay of the second processing procedure.

16. The system according to claim 13, characterized in that, The first electronic device is further configured to trigger the first electronic device to perform data tracking on the first data based on a preset strategy before acquiring the first data; The first electronic device is also used to send a first instruction; The second electronic device is further configured to respond to the first instruction by triggering the second electronic device to perform data tracking on the acquired data.

17. The system according to claim 12, characterized in that, The first electronic device is further configured to send the start time of the first processing procedure and the identifier of the first data to the server; The second electronic device is further configured to send the start time of the second processing procedure and the identifier of the second data to the server; the identifier of the first data and the identifier of the second data are used to indicate the first processing procedure, and the start time and end time of the first processing procedure are used by the server to determine the processing delay of the first processing procedure.

18. An electronic device, characterized in that, include: One or more processors, one or more memories; the one or more memories are respectively coupled to the one or more processors; the one or more memories are used to store computer program code, the computer program code including computer instructions; when the computer instructions are executed on the processor, the electronic device causes the electronic device to perform the method as described in any one of claims 1-11.

19. A computer-readable medium for storing one or more programs, wherein the one or more programs are configured to be executed by the one or more processors, the one or more programs including instructions for performing the method as claimed in any one of claims 1-11.

Citation Information

Patent Citations

  • Monitoring system, monitoring device, and monitoring method

    US20160085655A1