Data processing method, device, equipment, computer, and computer program
The method enhances multi-channel data transmission efficiency by discarding incomplete data elements and transmitting subsequent independent elements, addressing channel interruption delays.
Patent Information
- Application Number
- JP2024514566
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-11-17
- Filing Date
- 2022-09-16
- Publication Date
- 2025-10-14
- Estimated Expiration
- 2042-09-16
AI Technical Summary
In multi-channel data transmission, channel interruptions lead to increased time costs for data confirmation and retransmission, affecting efficiency and stability.
A data processing method that determines the discardability of data elements based on their dependency and impact on post-processing, allowing for direct transmission of subsequent elements and discarding incomplete ones during channel switching.
Reduces transmission time and improves data processing efficiency by minimizing confirmation and retransmission times during channel switching.
Smart Images

Figure 0007753520000001 
Figure 0007753520000002 
Figure 0007753520000003
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is filed based on and claims priority from a Chinese patent application bearing application number 202111360129.X and filed on November 17, 2021, the entire contents of which are incorporated herein by reference.
[0002] The present application relates to data processing technology in the field of computer applications, and in particular to a data processing method, apparatus, device, computer-readable recording medium and computer program product. [Background technology]
[0003] With the rapid development of computer communication technology, the requirements for data transmission are becoming higher and higher. In order to improve the efficiency and stability of data transmission, data transmission can be performed using multiple channels.
[0004] Generally, when data is transmitted using multiple channels, it is often the case that a channel cannot meet the transmission requirements (for example, the channel is interrupted), in which case the transmitting side needs to check whether all the data elements transmitted on the channel have been received by the receiving side and then retransmit the data, but the receiving side needs to wait until it receives the remaining data of the data elements that have not been received. Therefore, in the case of multi-channel transmission, the time cost of transmitting the data elements is high, which affects the data processing efficiency of multi-channel transmission. Summary of the Invention
[0005] The embodiments of the present application provide a data processing method, apparatus, device, computer-readable recording medium, and computer program product that can improve the efficiency of data processing during multi-channel transmission.
[0006] The technical means of the embodiments of the present application are realized as follows:
[0007] An embodiment of the present application is a data processing method performed by a receiving device, comprising: receiving, via at least two channels, a data element including a distribution (also called "delivery") order sent from a sending device; a step of acquiring a data element subsequent to the received nth data element (n is a positive integer) based on a delivery order when the received nth data element is a data element to be determined, wherein the state of the data element to be determined is an incomplete state, the delivery type of the data element to be determined is a discardable type, the state is determined by whether all data of the data element has been received, and the delivery type is determined by two pieces of information: the degree to which it is dependent on other data elements during post-processing, and the degree to which it affects the results of post-processing; A data processing method is provided, comprising: a step of determining, when the subsequent data element includes the target data element, that the delivery result of the nth data element is to be discarded, wherein the state of the target data element is complete, the target data element and the nth data element are of the same data type, the target data element is an independent data element, the data type is determined by the role of the data element, and the dependency of the independent data element on other data elements during post-processing is less than a predetermined degree.
[0008] An embodiment of the present application further provides a data processing method performed by a sending device, comprising: transmitting a data element including a delivery order to a receiving device via at least two channels; a step of acquiring a delivery type of the nth data element in response to a switching command for switching a channel for transmitting the nth data element (n is a positive integer) during transmission of the data element, the delivery type being determined by two pieces of information: a degree to which the nth data element is dependent on other data elements during post-processing, and a degree to which the delivery type affects the results of the post-processing; and canceling transmission of the nth data element to a receiving device when the delivery type of the nth data element is a discardable type and the subsequent data element includes the target data element, wherein the subsequent data element is a data element that is sent after the nth data element in the delivery order, the state of the target data element is a complete state, the target data element and the nth data element are of the same data type, the target data element is an independent data element, the state is determined by whether the receiving device has received all of the data of the data element, the data type is determined by the role of the data element, and the dependency of the independent data element on other data elements during post-processing is less than a predetermined degree.
[0009] An embodiment of the present application is a first data processing device, comprising: a data receiving module arranged to receive, via at least two channels, data elements including a delivery order transmitted from a transmitting device; a delivery processing module arranged to, when the received nth (n is a positive integer) data element is a determined data element, obtain a data element subsequent to the received nth data element based on a delivery order, wherein the state of the determined data element is an incomplete state, the delivery type of the determined data element is a discardable type, the state is determined by whether all data of the data element has been received, and the delivery type is determined by two pieces of information: the degree to which it is dependent on other data elements during post-processing, and the degree to which it affects the results of post-processing; Provided is a first data processing device comprising: a distribution processing module that is further arranged to determine that the distribution result of the nth data element is discarded when the subsequent data element includes the target data element, wherein the state of the target data element is complete, the target data element and the nth data element are of the same data type, the target data element is an independent data element, the data type is determined by the role of the data element, and the dependency of the independent data element on other data elements during post-processing is less than a predetermined degree.
[0010] An embodiment of the present application is a second data processing device, comprising: a data transmission module arranged to transmit the data element including the delivery order to the receiving device via at least two channels; a channel switching module arranged to, in response to a switching command to switch a channel for transmitting an n-th data element (n being a positive integer) during transmission of the data element, obtain a delivery type of the n-th data element, the delivery type being determined by two pieces of information: a degree to which the data element is dependent on other data elements during post-processing, and a degree to which the data element affects a result of the post-processing; a switching processing module configured to cancel sending the nth data element to a receiving device if the delivery type of the nth data element is a discardable type and the subsequent data element includes a target data element, wherein the subsequent data element is a data element that is sent after the nth data element in the delivery order, the state of the target data element is a complete state, the target data element and the nth data element are of the same data type, the target data element is an independent data element, the state is determined by whether the receiving device has received all of the data of the data element, the data type is determined by the role of the data element, and the dependency of the independent data element on other data elements during post-processing is less than a predetermined degree.
[0011] An embodiment of the present application is a receiving device for data processing, comprising: a first memory for storing computer-executable instructions; A receiving device is provided, comprising: a first processor for implementing a data processing method applied to a receiving device according to an embodiment of the present application when executing computer-executable instructions stored in a first memory.
[0012] An embodiment of the present application is a transmitting device for data processing, comprising: a second memory for storing computer-executable instructions; A transmitting device is provided, comprising: a second processor for implementing a data processing method applied in the transmitting device when executing computer-executable instructions stored in a second memory.
[0013] An embodiment of the present application provides a computer-readable recording medium having stored thereon computer-executable instructions that, when executed by a first processor, implement a data processing method applicable to a receiving device according to an embodiment of the present application, or, when executed by a second processor, implement a data processing method applicable to a transmitting device according to an embodiment of the present application.
[0014] An embodiment of the present application provides a computer program product comprising a computer program or computer-executable instructions that, when executed by a first processor, implements a data processing method applicable to a receiving device according to an embodiment of the present application, or that, when executed by a second processor, implements a data processing method applicable to a transmitting device according to an embodiment of the present application.
[0015] The embodiments of the present application have at least the following beneficial effects: During multi-channel transmission, when a channel switch occurs and the receiving side receives only part of the currently received data element (the nth data element) (referred to as an incomplete state), if the currently received data element is discardable, it indicates that the degree to which the currently received data element depends on other data elements during post-processing and the degree to which it influences the results of the post-processing are lower than a predetermined value. Next, if it is determined that the subsequent data elements following the currently received data element in the delivery order include a target data element (a data element that can independently complete the same post-processing role as the currently received data element), the transmitting device directly transmits the subsequent untransmitted data element, and the receiving device discards the currently received data element, thereby reducing the confirmation retransmission time of the transmitting device and the data waiting time of the receiving device. This reduces the transmission time cost of data elements during channel switching and improves data processing efficiency during multi-channel transmission. [Brief explanation of the drawings]
[0016] [Figure 1] 1 is a schematic diagram illustrating the configuration of a data processing system according to an embodiment of the present application. [Figure 2] FIG. 2 is a structural schematic diagram of the terminal of FIG. 1 according to an embodiment of the present application. [Figure 3] FIG. 2 is a structural schematic diagram of the server of FIG. 1 according to an embodiment of the present application; [Figure 4] 1 is a first flowchart of a data processing method according to an embodiment of the present application; [Figure 5] FIG. 1 is a schematic diagram of an example of multi-channel switching according to an embodiment of the present application. [Figure 6a] FIG. 2 is an interaction diagram of an example of a data processing method according to an embodiment of the present application; [Figure 6b] FIG. 1 is a system configuration diagram of an example of a cloud gaming application according to an embodiment of the present application. [Figure 6c] FIG. 1 is a diagram illustrating an example of a communication model according to an embodiment of the present application. [Figure 6d] 2 is a second flowchart of a data processing method according to an embodiment of the present application; [Figure 6e] 3 is a third flowchart of a data processing method according to an embodiment of the present application; [Figure 6f] 4 is a fourth flowchart of the data processing method according to an embodiment of the present application. [Figure 7] FIG. 2 is a schematic diagram of an example of storage of received data elements according to an embodiment of the present application; [Figure 8] FIG. 1 is a schematic diagram of a cloud gaming application scene according to an embodiment of the present application. [Figure 9] 1 is a first flowchart of an example of data processing according to an embodiment of the present application. [Figure 10] 10 is a second flowchart of an example of data processing according to an embodiment of the present application. DETAILED DESCRIPTION OF THE INVENTION
[0017] In order to make the purpose, technical means and advantages of the present application clearer, the present application will be described in more detail below with reference to the drawings. The described embodiments should not be considered as limiting the present application. All other embodiments that can be obtained by a person skilled in the art without creative efforts belong to the protection scope of the present application.
[0018] In the following description, reference will be made to "some embodiments" that describe a subset of all possible embodiments, but it should be understood that "some embodiments" may be the same or different subsets of all possible embodiments, and may be combined with each other unless inconsistent.
[0019] In the following description, the terms "first," "second," and "third" when referenced are merely intended to distinguish between similar objects and do not indicate a particular order of the objects. It should be noted that the terms "first," "second," and "third" may be interchanged with respect to a particular order or order of precedence when permitted, such that the embodiments of the present application described herein may be practiced in orders other than those illustrated or described herein.
[0020] Unless otherwise specified, all technical and scientific terms used in the examples of this application have the same meaning as commonly understood by those skilled in the art. The terms used in the examples of this application are not intended to limit the present application, but are merely intended to describe the examples of this application.
[0021] Before describing the embodiments of the present application in more detail, the nouns and terms related to the embodiments of the present application will be explained. The nouns and terms related to the embodiments of the present application are to be interpreted as follows.
[0022] 1) Cloud Computing is a computing mode that distributes computing tasks across a resource pool consisting of a large number of computers, allowing various application systems to obtain computing power, memory space, and information services as needed. The network that provides resources to the resource pool is called the "cloud," and resources in the "cloud" are infinitely expandable from the user's perspective, can be obtained at any time, used as needed, can be expanded at any time, and can be charged according to usage.
[0023] 2) Cloud Gaming, also known as Gaming on Demand, is an online gaming technology based on cloud computing technology. Cloud gaming technology enables games to be played smoothly on thin clients with lower graphics processing and data computing capabilities. In a cloud gaming scenario, games are executed on a cloud server rather than on a player's game device, and the cloud server renders game scenes as audio-video streams for transmission to the player's game device via a network. Even if a player's game device has lower graphics computing and data processing capabilities than a predetermined level, it can still run the game using its basic streaming media playback capabilities and the ability to acquire and transmit player input commands to the cloud server. The data processing method according to the embodiments of the present application is applicable to multi-channel cloud gaming scenarios.
[0024] 3) The channel may be a transmission channel used to transmit data and determined based on a network and / or a transmission protocol, where the network is, for example, a fourth generation mobile communication network (4G, The 4th Generation), a fifth generation mobile communication network (5G, The 5th Generation), or a wireless compatibility certified (Wi-Fi) network for each frequency band, and the transmission protocol is, for example, a Transmission Control Protocol (TCP) or a User Datagram Protocol (UDP).
[0025] 4) Multichannel Transmission refers to the process of simultaneously transmitting multiple data elements over multiple channels, even if the multiple data elements are within the same network session. In the embodiments of this application, the process of transmitting data elements using at least two channels is multichannel transmission.
[0026] 5) Multi-channel switching refers to the process of switching data elements in a network session from one channel to another for transmission due to network reasons or other reasons.
[0027]
[0009] Embodiments of the present application provide a data processing method, apparatus, device, computer-readable recording medium, and computer program product that can improve data processing efficiency during multi-channel transmission. An example of an application of a transmitting device and a receiving device according to an embodiment of the present application will be described below. The transmitting device and receiving device according to an embodiment of the present application may be implemented as various types of terminals, such as smartphones, smart watches, laptop computers, tablet computers, desktop computers, smart TVs, set-top boxes, smart car devices, portable music players, personal digital assistants, dedicated messaging devices, portable game devices, and smart speakers, or as a server. The server may be an independent physical server, a server cluster or distributed system consisting of multiple physical servers, or a cloud server that provides basic cloud computing services, such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDNs), and big data and artificial intelligence platforms. The following describes an example of an application when the transmitting device is implemented as a server and the receiving device is implemented as a terminal.
[0028] Referring to Fig. 1, Fig. 1 is a schematic diagram of the configuration of a data processing system according to an embodiment of the present application. As shown in Fig. 1, a data processing system 100 is an application that supports data processing. A terminal 200 (referred to as a receiving device, and terminals 200-1 and 200-2 are shown as examples) and a server 300 (referred to as a transmitting device) transmit data via at least two channels 400. The data processing system 100 further includes a database 500 for providing data support to the server 300. Fig. 1 shows the case where the database 500 is independent from the server 300, but the database 500 may also be integrated into the server 300, and the embodiment of the present application is not limited thereto.
[0029] The terminal 200 is used to receive data elements including a delivery order sent from the server 300 via at least two channels 400, and when the received nth data element is a data element to be determined, obtains a successor data element to the received nth data element (n is a positive integer) based on the delivery order, the state of the determined data element is incomplete, the delivery type of the determined data element is discardable, the state is determined by whether all data of the data element has been received, the delivery type is determined based on two pieces of information: the degree to which it is dependent on other data elements during post-processing and the degree to which it affects the result of post-processing, and when the successor data element includes a target data element, determines that the delivery result of the nth data element is discarded, the state of the target data element is complete, the target data element and the nth data element are of the same data type, the target data element is an independent data element, the data type is determined by the role of the data element, and the degree of dependency of the independent data element on other data elements during post-processing is less than a predetermined degree. It is used to play audio / video (for example, game screens rendered on terminal 200-1 and terminal 200-2) and also to sequentially distribute and post-process data elements.
[0030] The server 300 is used to transmit data elements to a receiving device via at least two channels, and when transmitting the data elements, in response to a switching command to switch the channel for transmitting the nth data element, obtains the delivery type of the nth data element, and if the delivery type of the nth data element is a discardable type and the subsequent data element includes the target data element, cancels transmission of the nth data element to the receiving device.
[0031] It should be noted that the transmitting device and the receiving device are relative, and a transmitting device in one application scene may be a receiving device in another application scene.
[0032] In some embodiments, the terminal 200 and the server 300 may be directly or indirectly connected by wired or wireless communication, and when the terminal 200 and the server 300 are connected via a network, the network may be a wide area network or a local area network, or a combination of both, and is not limited to the embodiments of the present application.
[0033] Referring to FIG. 2, FIG. 2 is a structural schematic diagram of the terminal of FIG. 1 according to an embodiment of the present application. The terminal 200 shown in FIG. 2 includes at least one first processor 210, a first memory 250, at least one first network interface 220, and a first user interface 230. The components of the terminal 200 are coupled to each other by a first bus system 240. It should be understood that the first bus system 240 is used to realize connection and communication between these components. The first bus system 240 includes a power bus, a control bus, and a status signal bus in addition to a data bus. However, for convenience of explanation, various buses in FIG. 2 are collectively referred to as the first bus system 240.
[0034] The first processor 210 may be an integrated circuit chip having signal processing capabilities, such as a general-purpose processor, a digital signal processor (DSP), or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, etc. Here, the general-purpose processor may be a microprocessor or any conventional processor, etc.
[0035] The first user interface 230 includes one or more first output devices 231 that enable presentation of media content, including one or more speakers and / or one or more video displays. The first user interface 230 further includes one or more first input devices 232, including user interface components that facilitate user input, such as a keyboard, mouse, microphone, touchscreen display, camera, and other input buttons and controls.
[0036] The first memory 250 may be removable, non-removable, or a combination thereof. Examples of hardware devices include solid-state memory, hard disk drives, optical disk drives, etc. The first memory 250 may optionally include one or more memory devices that are physically located remotely from the first processor 210.
[0037] The first memory 250 may include volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory may be read-only memory (ROM), and the volatile memory may be random access memory (RAM). The first memory 250 described in the embodiments of the present application is intended to include any suitable type of memory.
[0038] In some embodiments, the first memory 250 can store data to support various operations, examples of which include programs, modules, and data structures, or a subset or superset thereof, as illustratively described below.
[0039] The first operating system 251 includes system programs for processing various basic system services, implementing various basic services, and performing hardware-related tasks, such as a framework layer, a core library layer, and a drive layer for processing hardware-based tasks.
[0040] The first network communication module 252 is used to reach other electronic devices via one or more (wired or wireless) first network interfaces 220, examples of which include Bluetooth, Wireless Firmware (Wi-Fi), and Universal Serial Bus (USB).
[0041] The first presentation module 253 is used to enable presentation of information via one or more first output devices 231 (e.g., a display, a speaker, etc.) associated with the first user interface 230 (e.g., the user interface for operating peripheral devices to present content and information).
[0042] The first input processing module 254 is used to detect one or more user inputs or interactions from one of the one or more first input devices 232 and process the detected inputs or interactions.
[0043] In some embodiments, the first data processing device according to the embodiments of the present application may be realized by software. Fig. 2 shows a first data processing device 255 stored in a first memory 250, which may be software in the form of a program, plug-in, etc., and includes software modules such as a data receiving module 2551 and a distribution processing module 2552. These modules are logical, and therefore may be arbitrarily combined or further divided according to the functions they realize. The functions of each module will be described below.
[0044] In some embodiments, the first data processing device according to the embodiments of the present application may be implemented in hardware. For example, the first data processing device according to the embodiments of the present application may be a first processor in the form of a hardware decoding processor, which is programmed to execute the data processing method applied to the receiving device according to the embodiments of the present application. For example, the first processor in the form of a hardware decoding processor may be one or more application specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field programmable gate arrays (FPGAs), or other electronic elements.
[0045] Referring to FIG. 3, FIG. 3 is a structural schematic diagram of the server of FIG. 1 according to an embodiment of the present application. The server 300 shown in FIG. 3 includes at least one second processor 310, a second memory 350, and at least one second network interface 320. The components of the server 300 are coupled to each other by a second bus system 340. The second bus system 340 is used to realize communication between these components. The second bus system 340 includes a power bus, a control bus, and a status signal bus in addition to a data bus. However, for convenience of explanation, the buses in FIG. 3 are collectively referred to as the second bus system 340.
[0046] The second processor 310 may be an integrated circuit chip having signal processing capabilities, such as a general-purpose processor, a digital signal processor, or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, etc. Here, the general-purpose processor may be a microprocessor or any conventional processor, etc.
[0047] The second memory 350 may be removable, non-removable, or a combination thereof. Examples of hardware devices include solid-state memory, hard disk drives, optical disk drives, etc. The second memory 350 may optionally include one or more memory devices that are physically located remotely from the second processor 310.
[0048] The second memory 350 may include volatile memory or nonvolatile memory, or may include both volatile and nonvolatile memory. The nonvolatile memory may be read-only memory, and the volatile memory may be random-access memory. The second memory 350 described in the embodiments of the present application is intended to include any suitable type of memory.
[0049] In some embodiments, the second memory 350 can store data to support various operations, examples of which include programs, modules, and data structures, or a subset or superset thereof, as illustratively described below.
[0050] The second operating system 351 includes system programs for processing various basic system services, implementing various basic services, and performing hardware-related tasks, such as a framework layer, a core library layer, and a driver layer for processing hardware-based tasks.
[0051] The second network communication module 352 is used to reach other electronic devices via one or more (wired or wireless) second network interfaces 320, examples of which include Bluetooth, Wireless Firmware (Wi-Fi), and Universal Serial Bus.
[0052] In some embodiments, the second data processing device according to the embodiments of the present application may be realized by software. Fig. 3 shows a second data processing device 355 stored in a second memory 350, which may be software in the form of a program, plug-in, etc., and includes software modules such as a data transmission module 3551, a channel switching module 3552, and a switching processing module 3553. These modules are logical, and therefore may be arbitrarily combined or further divided according to the functions they implement. The functions of each module will be described below.
[0053] In some embodiments, the second data processing device according to the embodiments of the present application may be implemented in hardware, for example, the second data processing device according to the embodiments of the present application may be a second processor in the form of a hardware decoding processor, programmed to execute the data processing method applied to the transmitting device according to the embodiments of the present application, for example, the second processor in the form of a hardware decoding processor may be one or more application specific integrated circuits, DSPs, programmable logic devices, complex programmable logic devices, field programmable gate arrays, or other electronic elements.
[0054] In some embodiments, a terminal or a server can implement a data processing method according to an embodiment of the present application by executing a computer program. For example, the computer program may be a native program or software module in an operating system. It may also be a local (native) application program (APP, APPlication), i.e., a game APP, a mailbox APP, a file management APP, or an instant messaging APP, which must be installed in an operating system to run. It may also be a program applet that can be run simply by downloading it to a browser environment. It may also be an applet that can be incorporated into any app. In summary, the computer program may be any form of application program, module, or plug-in.
[0055] Hereinafter, a data processing method according to an embodiment of the present application will be described with reference to an example of an application and implementation of a sending device and a receiving device according to an embodiment of the present application.
[0056] Please refer to FIG. 4, which is a first flowchart of a data processing method according to an embodiment of the present application, which will be described with reference to the steps shown in FIG.
[0057] S401, a sending device sends data elements to a receiving device via at least two channels.
[0058] In an embodiment of the present application, a sending device and a receiving device realize data transmission through multiple channels, and the transmitted unit data is a data element (e.g., one frame of audio, one frame of video, etc.), and the multiple channels are at least two channels. Here, when the sending device transmits a data element to the receiving device through at least two channels, the receiving device therefore receives the data element transmitted from the sending device through at least two channels.
[0059] The transmitting device transmits data to the receiving device so that the receiving device performs data processing to realize an application function. For example, a server (transmitting device) transmits audio-video data corresponding to cloud gaming or audio-video data corresponding to live broadcasting to a terminal (receiving device) so that the terminal can play audio-video. Here, the transmitting device divides the data to be transmitted into data elements and transmits the data through at least two channels. The data elements include a delivery order, which is the order in which the receiving device delivers the data elements. The transmitting device also delivers post-processing to complete the data to realize the application function, such as completing decoding to realize audio-video playback. The post-processing is post-delivery processing such as decoding and rendering. That is, the data transmitted through the at least two channels is a continuous data element sequence. Here, the delivery order may be the data carried by the transmitting device in the data elements.
[0060] In addition, the sending device may send data elements to the receiving device in real time or non-real time, and the embodiments of the present application are not limited thereto. In the embodiments of the present application, when multiple channels are used to improve the transmission efficiency of the data elements, the data elements are sent in real time via the multiple channels.
[0061] S402: The sending device acquires the delivery type of the n-th data element in response to the switching command when sending the data element.
[0062] In an embodiment of the present application, when a transmitting device transmits a data element to a receiving device through multiple channels, the network for transmission is uncertain, so when a channel switching event is triggered due to reasons such as the network, the transmitting device obtains a switching command, and at this time, the transmitting device switches channels in response to this switching command, obtains a data element for switching the channel indicated by the switching command, and obtains the nth data element.
[0063] The channel switching event is an event for switching channels, and includes a trigger condition and a switching policy. The trigger condition is at least one of the channel connection status, transmission speed, application scenario, etc. The switching policy is a rule for switching channels, and is used to determine a new channel for transmitting a data element, for example, a priority. Here, the switched channel is a new channel for transmitting a data element designated by the switching command. The nth data element is a data element being transmitted on the switched channel when the switching command is received. The switching command is for switching the channel for transmitting the nth data element, where n is a positive integer, for example, 1, 9, 22, etc. The delivery type is determined based on the degree to which the nth data element depends on other data elements during post-processing and the degree to which it affects the post-processing results. The processing mode of the nth data element is for determining whether to confirm and retransmit the nth data element or discard it and directly transmit subsequent data elements.
[0064] For example, refer to Fig. 5, which is a schematic diagram of an example of multi-channel switching according to an embodiment of the present application. As shown in Fig. 5, a transmitting device 5-1 transmits data to a receiving device 5-3 via a multi-channel 5-2, and the transmitted data is a data element sequence including data elements 5-41 to 5-48, and the multi-channel 5-2 includes channels 5-21 to 5-24. Here, data elements 5-45 to 5-48 are untransmitted data elements, and data elements 5-41 and 5-42 are both transmitted via channel 5-22, and data elements 5-43 and 5-44 are both transmitted via channel 5-21. After a predetermined period of transmission, the receiving device 5-3 receives data elements 5-41 and 5-42 transmitted via channel 5-22. However, the transmitting device 5-1 needs to switch channels at this time due to channel issues, and switches the transmission of data elements 5-43 and 5-44 that are currently being transmitted from channel 5-21 to channel 5-22. At this time, the transmitting device obtains the distribution types corresponding to data elements 5-43 and 5-44, and determines the processing mode after the channel is switched based on the obtained distribution types.
[0065] S403, if the delivery type of the n-th data element is a discardable type and the subsequent data element includes the target data element, the sending device cancels sending the n-th data element to the receiving device.
[0066] In the embodiments of the present application, the distribution types include a discardable type and a non-discardable type, where a discardable type means that both the degree to which it is dependent on other data elements during post-processing and the degree to which it affects the results of the post-processing are small (e.g., the degree to which it is dependent on other data elements is smaller than a first degree threshold, and the degree to which it affects the results of the post-processing is smaller than a second degree threshold), and a non-discardable type means that at least one of the degree to which it is dependent on other data elements during post-processing and the degree to which it affects the results of the post-processing is large (e.g., the degree to which it is dependent on other data elements is greater than the first degree threshold, and / or the degree to which it affects the results of the post-processing is greater than a second degree threshold).
[0067] First, if the sending device determines that the delivery type of the nth data element is a discardable type, it indicates that the receiving device has not completely received the data of the data element, and discarding the data element will not affect subsequent processing of other data elements.
[0068] Next, the sending device determines whether the subsequent data element after the n-th data element in the transmission order contains the target data element. If the state of the target data element is complete, the target data element and the n-th data element are of the same data type, and the target data element is an independent data element and is included, even if the sending device has not completed transmitting all the data of the n-th data element due to channel switching and does not confirm and retransmit again, the receiving device can continue to deliver using the subsequent data element to complete post-processing by discarding the n-th data element. Therefore, if the sending device determines that the transmission type of the n-th data element is a discardable type and the subsequent data element contains the target data element, it will send the unsent data element to the receiving device and cancel the transmission of the n-th subsequent data element to the receiving device. That is, the sending device cancels the process of confirming whether all the data of the n-th data element has been received by the receiving device and cancels the process of retransmitting the n-th data element.
[0069] The state is determined by whether all data of a data element has been received, and includes a complete state in which all data of the data element has been received and an incomplete state in which only part of the data of the data element has been received. The data type is determined by the role of the data element, so if data elements have the same role, they have the same data type. An independent data element is a data element whose degree of dependency on other data elements during post-processing is less than a predetermined degree. In other words, an independent data element is a data element that is post-processed using its own data, such as audio frame data or key frame (intra-prediction, I) data. A subsequent data element is at least one data element that follows the nth data element in the delivery order, such as the n+1th data element, the n+2th data element, ..., the n+ith data element (where i is a positive integer greater than or equal to 0).
[0070] S404: If the n-th data element received by the receiving device is a data element to be determined, a data element subsequent to the received n-th data element is acquired based on the delivery order.
[0071] In an embodiment of the present application, the receiving device receives data elements sent from the sending device via at least two channels, and performs post-processing on the data elements by delivering the received data elements in a delivery order.
[0072] Here, the receiving device determines the state of each received data element to determine whether all data of the data element has been received. If it determines that only part of the data of the currently received data element has been received, it determines that the state of the currently received data element is incomplete and that the currently received data element is the received nth data element. If it determines that the state of the nth data element is incomplete, the receiving device determines the delivery type of the nth data element. If it determines that the delivery type of the nth data element is discardable, it indicates that the degree to which the nth data element in the incomplete state is dependent on other data elements during post-processing is less than a first degree threshold and the degree to which it affects the results of post-processing is less than a second degree threshold, and it is discardable. At this time, the received nth data element is a determined data element, the state of the determined data element is incomplete, and the delivery type of the determined data element is discardable. If it determines that the delivery type of the nth data element in the incomplete state is discardable, the receiving device evaluates the received subsequent data elements to determine whether to discard the nth data element.
[0073] In addition, when transmitting a data element, the transmitting device may carry the delivery type of the data element in the data of the data element and transmit it, so that the receiving device can determine the delivery type of the data element by reading the data of the data element, and the transmitting device can determine the delivery type of the data element based on the reading result of the data of the data element. The embodiment of the present application is not limited to this.
[0074] Here, if the receiving device determines that the nth data element has received all the data of the data element, it can determine that the state of the nth data element is a complete state, and at this time, deliver the nth data element to perform post-processing; that is, if the nth data element received by the receiving device is in a complete state, it determines that the delivery result of the nth data element includes delivery processing.
[0075] S405: If the subsequent data element includes the target data element, the receiving device determines that the delivery result of the n-th data element is discarded.
[0076] In an embodiment of the present application, the receiving device acquires a data element that is received after the n-th data element in the delivery order, and determines whether the acquired subsequent data element includes the target data element, where the state of the target data element is complete, the target data element and the n-th data element are of the same data type, and the target data element is an independent data element. That is, the receiving device determines whether the subsequent data element includes a data element that allows the n-th data element to be skipped and continues to perform post-processing with the same role. If it is determined that the subsequent data element includes the target data element, the receiving device determines that the processing mode of the n-th data element is discarded, that is, the delivery result is discarded and not delivered. That is, for data that the n-th data element has not received, the receiving device will not wait until it receives the data.
[0077] The subsequent data element may be a data element sequence that is adjacent to the n-th data element in delivery order, or may be a data element sequence that is not adjacent to the n-th data element in delivery order, and the delivery order between each data element in the data element sequence may or may not be adjacent, but the embodiments of the present application are not limited to this.
[0078] For example, refer to Fig. 6a, which is an interaction diagram of an example of a data processing method according to an embodiment of the present application. As shown in Fig. 6a, in a cloud game scenario described in the example of the data processing method, a data processing process of transmitting data elements divided into cloud gaming audio / video from a cloud game server (referred to as a transmitting device) to a game client (referred to as a receiving device) includes steps S601 to S606, and each step will be described below.
[0079] S601, the cloud gaming server sends data elements divided into cloud gaming audio-video to the game client through at least two channels.
[0080] In addition, the cloud game server uses a multi-channel transmission method to transmit the data elements divided into cloud gaming audio video to the game client.
[0081] S602, when transmitting a data element, the cloud game server obtains the delivery type of the data element (referred to as the nth data element) to be transmitted through the switched channel in response to the switching command.
[0082] When the cloud game server decides to switch channels based on a preset channel switching policy, it generates a switching command for switching channels.
[0083] S603: If the delivery type of the data element transmitted on the switched channel is a discardable type and the subsequent data element has a complete state and includes an independent data element of the same data type as the data element transmitted on the switched channel, the cloud game server cancels sending the data element transmitted on the switched channel to the game client.
[0084] Furthermore, when the cloud game server switches channels, it determines whether the data element being transmitted on the switched channel contains a data element that can independently complete the same type of post-processing (e.g., a keyframe that can independently render a game screen), and if so, cancels the transmission of the data element to be transmitted on the switched channel to the game client, and directly transmits the unsent data element based on the switched channel, thereby reducing resource consumption for confirmation and retransmission.
[0085] S604, if the state of the data element currently received by the game client is incomplete and the delivery type is discardable, obtain the received subsequent data element.
[0086] Here, the currently received data element is the data element to be transmitted on the switched channel.
[0087] S605: If the subsequent data element is in a complete state and includes an independent data element of the same data type as the data element transmitted on the switched channel, the game client determines that the delivery result of the currently received data element is discarded.
[0088] Furthermore, when the game client determines that the data element transmitted through the received switched channel is incomplete due to the channel split by the cloud game server, and determines that the n-th data element is a discardable type and that the subsequent data elements include data elements of the same type that can independently complete post-processing, it discards the currently received data element and continues to perform post-processing on the subsequent data elements of the same type, thereby reducing the waiting time for receiving the incomplete data element and improving the rendering effect of cloud gaming.
[0089] Note that FIG. 6a is realized based on the system configuration of a cloud gaming scenario. The system configuration of the cloud gaming application scenario will be described below. Referring to FIG. 6b, FIG. 6b is a system configuration diagram of an example of a cloud gaming application according to an embodiment of the present application. As shown in FIG. 6b, the system configuration of the example of the cloud gaming application includes a game client 6-1 for responding to actions performed by a game user on a virtual scene interface and a cloud game server 6-2 for transmitting game instructions 6-3. At this time, the cloud game server 6-2 performs rendering based on the game instructions 6-3 to obtain cloud gaming audio-video 6-4, and divides the game audio-video 6-4 into data elements (data elements 6-41 to 6-48 are shown as examples) and transmits them via multi-channels 6-5 (channels 6-51 and 6-52 are shown as examples) (data elements 6-41 to 6-43 are transmitted via channel 6-51, and data elements 6-44 to 6-48 are transmitted via channel 6-52).
[0090] Here, in the case of the current data element transmission, the cloud game server 6-2 is transmitting data elements 6-44 to 6-48 on channel 6-52. The game client 6-1 has received data element 6-41, but is also receiving data element 6-42 to be transmitted via channel 6-51, and the cloud game server 6-2 side further includes transmitted data element 6-43. At this time, the cloud game server 6-2 triggers a channel switching event and decides to switch the data element to be transmitted on channel 6-51 to channel 6-52 for transmission. It processes the currently transmitted data element 6-42 (referred to as the nth data element) using the data processing method shown in FIG. 6a, and transmits the data element 6-43 via channel 6-52.
[0091] Figures 6a and 6b are implemented based on the communication model configuration diagram shown in Figure 6c when transmitting data from a cloud game server to a game client. As shown in Figure 6c, an example of a communication model 6-6 includes a session layer 6-61, a transport layer 6-62, a network layer 6-63, a data link layer 6-64, and a physical layer 6-65. The transport layer 6-62 includes multiple channels (channel 6-51 corresponding to the TCP protocol and channel 6-52 corresponding to the UDP protocol are shown as examples), enabling embodiments of the present application to realize multi-channel transmission. Here, when transmitting data elements divided by cloud gaming audio / video from the cloud game server to the game client, the first layer, the physical layer 6-65, is used to realize the transmission of the original bitstream through a mechanical, electrical, and timing interface communication channel, and the second layer, the data link layer 6-64, is used to convert the original bitstream into a logical transmission line and perform physical addressing. Layers 1 and 2 typically pertain to network cards and network cables. Layer 3, the Network Layer 6-63, is used to control subnet operations such as logical addressing, packet transmission, and routing selection. Layer 4, the Transport Layer 6-62, is used to transmit data elements to game clients and receive responses from game clients. Layer 5, the Session Layer 6-61, is used to establish and manage sessions with game clients and distribute data elements across multiple channels in the Transport Layer 6-62.
[0092] During multi-channel transmission, when a channel is switched, if the currently received data element is a partial data element, the receiving side determines that the degree to which the currently received data element depends on other data elements during post-processing and the degree to which it influences the post-processing results is lower than a predetermined value if the currently received data element is a discardable type. Next, if it determines that the target data element is included in the subsequent data elements whose delivery order follows the currently received data element, the transmitting device directly transmits the subsequent untransmitted data element, and the receiving device discards the currently received data element, thereby reducing the confirmation retransmission time by the transmitting device and the data waiting time by the receiving device. Therefore, it can be understood that the transmission time cost of data elements during channel switching can be reduced and the data processing efficiency during multi-channel transmission can be improved.
[0093] Referring to Fig. 6d, Fig. 6d is a second flowchart of a data processing method according to an embodiment of the present application. As shown in Fig. 6d, in the embodiment of the present application, S404 is followed by S406 and S407. That is, after the receiving device obtains the data element subsequent to the received n-th data element according to the delivery order, the data processing method further includes S406 and S407, and each step will be described below.
[0094] S406: When all data of the n+1th data element among the subsequent data elements has been received, the receiving device determines that the state of the n+1th data element is a complete state.
[0095] S407: if the n+1th data element in the complete state satisfies the first condition, it is determined that the subsequent data element includes the target data element.
[0096] In an embodiment of the present application, when the receiving device determines that the nth data element is the determined data element, it obtains the received n+1th data element and respectively determines the state, data type, and whether it is an independent data element of the n+1th data element, and when it determines that the state of the n+1th data element is a complete state, its data type is the same as that of the nth data element, and it is an independent data element, it determines that the n+1th data element in the complete state satisfies the first condition, and then determines that the subsequent data element includes the target data element. As can be easily understood, the subsequent data element including the n+1th data element and satisfying the first condition includes having the same data type as the nth data element and belonging to an independent data element.
[0097] In addition, after the transmitting device decides to switch the channel on which the nth data element being transmitted is located and determines that the nth data element is of a discardable type, the transmitting device may use the process described in S406 and S407 to determine whether the subsequent data elements include the target data element.
[0098] Continuing to refer to Figure 6d, after S406, the data processing method further includes S408 and S409, that is, after the receiving device determines that the state of the (n+1)th data element is complete, the data processing method further includes S408 and S409, and each step will be described below respectively.
[0099] S408: When the n+1th data element in the complete state satisfies the second condition, or when the n+1th data element in the complete state satisfies the third condition, obtain the state of the n+2th data element among the subsequent data elements.
[0100] S409: If the state of the n+2-th data element is the complete state and the n+2-th data element satisfies the first condition, the receiving device determines that the subsequent data element includes the target data element.
[0101] In an embodiment of the present application, when the receiving device determines that the state of the n+1th data element is the complete state, the receiving device determines that the n+1th data element and the nth data element are independent data elements of different data types (indicating that the n+1th data element in the complete state satisfies the second condition), or determines that the n+1th data element and the nth data element are associated data elements of the same data type (indicating that the n+1th data element in the complete state satisfies the third condition), then obtains the n+2th data element among the subsequent data elements and determines the state, data type, and whether it is an independent data element of the n+2th data element, respectively, and determines that the state of the n+2th data element is the complete state, the data type is the same as the data type of the nth data element, and it is an independent data element, then determines that the n+2th data element in the complete state satisfies the first condition, and at this time determines that the subsequent data element includes the target data element. As can be easily seen, the subsequent data element includes the n+2th data element. Satisfying the second condition includes being different from the data type of the nth data element and belonging to the independent data element, and satisfying the third condition includes being the same as the data type of the nth data element and belonging to the associated data element.
[0102] Here, a related data element has a degree of dependency on other data elements during post-processing that is greater than or equal to a predetermined degree, i.e., a related data element is a data element that is combined with other data elements for post-processing, relative to an independent data element.
[0103] In addition, after the transmitting device decides to switch the channel on which the nth data element being transmitted is located and determines that the nth data element is of a discardable type, the transmitting device may determine that the subsequent data element includes the target data element using the processes described in S406, S408, and S409.
[0104] Referring to Fig. 6e, Fig. 6e is a third flowchart of a data processing method according to an embodiment of the present application. As shown in Fig. 6e, in the embodiment of the present application, after the receiving device obtains the data element subsequent to the received n-th data element according to the delivery order in S404, the data processing method further includes S410, and each step will be described below.
[0105] S410: If the n+1th data element among the subsequent data elements is the data element to be determined, the receiving device acquires the data element that is after the n+1th data element in the delivery order, and determines the delivery results of the nth data element and the n+1th data element based on the acquired data element.
[0106] In an embodiment of the present application, if the receiving device determines that the status of the n+1th data element among the subsequent data elements is incomplete and the delivery type is discardable, it determines the n+1th data element as the data element to be determined, and at this time, the receiving device delivers the n+1th data element using the same description as S404 and S405.
[0107] In addition, when the transmitting device determines that the state of the n+1th data element among the subsequent data elements is incomplete and the delivery type is disposable, it may obtain a data element that is located after the n+1th data element in the delivery order, and based on the obtained data element, determine whether or not to transmit the remaining unsent data corresponding to the nth data element and the n+1th data element, respectively.
[0108] In an embodiment of the present application, if the receiving device determines that all data elements prior to the nth data element are of a discardable type and in an incomplete state, and if the receiving device determines that the target data element is included in the subsequent data element, the receiving device may discard the data elements of a discardable type and in an incomplete state prior to the nth data element.
[0109] Continuing to refer to FIG. 6e, as shown in FIG. 6e, in the embodiment of the present application, in S404, after the receiving device obtains the subsequent data element of the received nth data element based on the delivery order, the data processing method further includes S411, and each step will be described respectively below.
[0110] S411: If the subsequent data elements do not include the target data element, the receiving device determines that the delivery result of the n-th data element is waiting data.
[0111] In the embodiment of the present application, the subsequent data element includes a data element whose state is complete, and if the subsequent data element does not include an independent data element of the same data type as the n-th data element, it indicates that the subsequent data element does not include the target data element. Therefore, the receiving device determines that the subsequent data element does not include a data element that can achieve the same post-processing result as the n-th data element by skipping the n-th data element, and at this time, the receiving device determines that the delivery result of the n-th data element is waiting to receive the remaining unreceived data.
[0112] If the transmitting device determines that the subsequent data elements do not include the target data element, it checks and transmits the remaining untransmitted data of the n-th data element.
[0113] Continuing to refer to Figure 6e, as shown in Figure 6e, in an embodiment of the present application, after the receiving device receives data elements transmitted from the transmitting device through at least two channels, the data processing method further includes S412, and this step will be described below.
[0114] S412: If the received n-th data element is a waiting data element, the receiving device determines that the delivery result of the n-th data element is waiting data.
[0115] In an embodiment of the present application, if the status of the nth data element received by the receiving device is incomplete and the delivery type of the nth data element is a non-discardable type, it indicates that the nth data element is a waiting data element. Because the nth data element is a non-discardable type, discarding the nth data element will prevent it from being relied upon by other data elements in post-processing and / or will have a greater impact on the post-processing results than the second degree threshold, so the receiving device will wait until it receives the remaining unreceived data of the nth data element.
[0116] The receiving device determines that the corresponding delivery result for each incomplete, non-discardable data element is waiting to be received. Therefore, if the subsequent data element is incomplete when it is acquired and the delivery type of the nth data element is a non-discardable data element, the receiving device determines that the delivery result of the data element is waiting to be received.
[0117] Continuing to refer to Fig. 6e, as shown in Fig. 6e, after S402, the data processing method further includes S413 and S414, that is, after the sending device obtains the delivery type of the n-th data element, the data processing method further includes S413 and S414, and each step will be described respectively below.
[0118] S413: If the delivery type of the n-th data element is the non-discardable type, the sending device acquires the status of the n-th data element.
[0119] In the embodiment of the present application, when the sending device switches the channel for transmitting the nth data element, it must first determine the delivery type of the nth data element. If it determines that the delivery type of the nth data element is a non-discardable type, it must use a confirmation mechanism to determine whether the receiving device has received all the data of the nth data element, i.e., determine the status of the nth data element.
[0120] The non-discardable type refers to a type in which at least one of the degree to which other data elements depend on it during post-processing and the degree to which it affects the results of post-processing exceeds a threshold.
[0121] S414: If the state of the n-th data element is incomplete, the sending device sends the untransmitted data corresponding to the n-th data element to the receiving device via the switched channel.
[0122] Furthermore, when the sending device determines through the confirmation mechanism that the receiving device has received part of the data of the nth data element, it determines that the status of the nth data element is incomplete; and when the sending device determines the status of the nth data element through the confirmation mechanism, it further determines the remaining unsent data of the nth data element (herein referred to as untransmitted data), and at this time, the sending device transmits the untransmitted data corresponding to the nth data element to the receiving device via the switched channel.
[0123] Continuing to refer to Fig. 6e, as shown in Fig. 6e, in the embodiment of the present application, S402 is followed by S415, that is, before and after the sending device obtains the delivery type of the n-th data element, the data processing method further includes S415, which will be described below.
[0124] S415, when the delivery type of the nth data element is discardable type, select a processed data element from the untransmitted data that is after the nth data element in the delivery order, where the processed data element has the same data type as the nth data element and is closest to the nth data element in the delivery order, process the processed data element based on the independent data element to obtain a transmitted data element, and transmit the transmitted data element to the receiving device.
[0125] In addition, if the transmitting device determines that the delivery type of the nth data element is a discardable type after switching channels, the untransmitted data elements subsequent to the nth data element, which have the same delivery type as the nth data element and are closest in delivery order, are processed as independent data elements, and the nth data element is discarded because the target data element is included in the subsequent data elements received by the receiving device.
[0126] Therefore, in the embodiment of the present application, the target data element among the subsequent data elements acquired by the receiving device may be directly transmitted from the transmitting device, or may be transmitted after the transmitting device performs target processing, and the embodiment of the present application is not limited thereto. The target processing is used to process the data element that has the same data type as the nth data element and is closest in delivery order as an independent data element.
[0127] It should be understood that during multi-channel transmission, when the transmitting device performs channel switching, it can actively generate an independent data element that is the same data type as the nth data element, which serves as a discard signal for the receiving device to discard the nth data element, causing the receiving device to discard the nth data element and continue to deliver subsequent data elements, thereby reducing the retransmission confirmation time of data processing and improving data processing efficiency during multi-channel transmission.
[0128] In an embodiment of the present application, the data elements include video frame data including intra-predicted frame data and inter-predicted frame data, wherein the intra-predicted frame data is an independent data element, the delivery type of the intra-predicted frame data is a non-discardable type, the intra-predicted frame data renders a frame image based on its own data during post-processing, the inter-predicted frame data is an associated data element, the delivery type of the inter-predicted frame data is a discardable type, the inter-predicted frame data renders a frame image based on its own data and the intra-predicted frame data during post-processing, and the intra-predicted frame data and the inter-predicted frame data are of the same data type.
[0129] In addition, when the data transmitted through multiple channels is video data, the data elements include video frame data, and therefore, when the n-th data element is of a discardable type, it indicates that the n-th data element is inter-predicted frame data, for example, unidirectional prediction (P) frame data or bidirectional prediction (B) frame data. Therefore, an independent data element that is in a complete state and has the same data type as the n-th data element and is included in the subsequent data element is intra-predicted frame data such as I frame data.
[0130] In an embodiment of the present application, the data element further includes audio frame data, and in this case, the data transmitted through multiple channels is audio-video data, where the audio frame data is an independent data element, the delivery type of the audio frame data is a non-discardable type, and the audio frame data and the video frame data are of different data types, that is, the independent data element included in the subsequent data element, which is in a complete state and has a different data type from the n-th data element, is audio frame data.
[0131] Continuing to refer to Fig. 6f, Fig. 6f is a fourth flowchart of the data processing method according to the embodiment of the present application. As shown in Fig. 6f, in the embodiment of the present application, after the receiving device receives the data elements transmitted from the transmitting device through at least two channels, the data processing method further includes S416 and S417, and each step will be described respectively below.
[0132] S416: If the received data element is adjacent to a data element in the first data element set in the delivery order, the receiving device determines the received data element as a data element in the first data element set, and obtains at least one data element from the second data element set that is adjacent to the received data element in the delivery order, and determines the at least one adjacent data element as a data element in the first data element set.
[0133] S417: If the received data element is not adjacent to a data element in the first data element set in the delivery order, the receiving device determines the received data element as a data element in the second data element set.
[0134] The receiving device classifies and stores the data elements received via multiple channels, storing some as data elements that are to be delivered and are adjacent in the delivery order (called consecutive), and other as data elements that are not adjacent in the delivery order to the data elements in the first data element set (called discontinuous).
[0135] Therefore, in an embodiment of the present application, in S404, the receiving device obtaining a subsequent data element received by the received nth data element based on the delivery order includes the receiving device obtaining a subsequent data element of the received nth data element from the first data element set and the second data element set based on the delivery order.
[0136] The receiving device retrieves the data element adjacent to the most recently delivered data element in the delivery order from the first data element set. If the state of a data element is determined to be incomplete during delivery, the receiving device retrieves the received subsequent data elements from the first data element set and the second data element set, and determines whether the incomplete data element should wait for data reception or be discarded.
[0137] For example, refer to Fig. 7, which is a schematic diagram of an example of storage of received data elements according to an embodiment of the present application. As shown in Fig. 7, when a first data element set and a second data element set are both stored in queues, queue 7-1 is used to store the data elements in the first data element set, and queue 7-2 is used to store the data elements in the second data element set. Here, when the delivery order corresponding to data elements 7-31 to 7-36 is 1 to 6, data elements 7-31 to 7-33 are transmitted via channel A, and data elements 7-34 to 7-36 are transmitted via channel B, and the transmission rate of channel B is faster than the transmission rate of channel A, the receiving device first receives data elements 7-31 and 7-32, and data elements 7-34 to 7-36. At this time, the receiving device stores data elements 7-31 and 7-32 in queue 7-1, and stores data elements 7-34 to 7-36 in queue 7-2. When data element 7-33 is subsequently received, the receiving device stores data element 7-33 in queue 7-1, and by determining that data elements 7-34 to 7-36 in queue 7-2 are adjacent to data element 7-33 in terms of delivery order, moves and stores data elements 7-34 to 7-36 in queue 7-2 to queue 7-1. The head node is used to point to the first data element in a queue.
[0138] In the embodiment of the present application, a receiving device receives data elements transmitted by a first data element set and a second data element set through multiple channels, and since the data elements include a delivery order, the data elements need to be delivered sequentially according to the delivery order. Therefore, it should be understood that the receiving device divides the received data elements into contiguous and discontiguous data elements and stores them, so that the received data elements can be quickly obtained from the first data element set during delivery, thereby improving the efficiency of data processing.
[0139] An example of an application in an actual application scenario of the embodiment of the present application will be described below. This example of the application describes a process in a cloud gaming application scenario in which a cloud game server (e.g., server 300 in FIG. 1) transmits cloud gaming audio-video data to a user client (the user client may be a client operating on a terminal such as terminal 200 in FIG. 1) via multiple channels.
[0140] In addition, cloud gaming enables the presentation of virtual scene screens by transmitting audio-video data at a bit rate greater than a predetermined bit rate, creating an immersive experience similar to that of local games, so the effectiveness of cloud gaming depends on the smoothness of audio-video transmission and display.
[0141] Referring to Fig. 8, Fig. 8 is a schematic diagram of a cloud gaming application scene according to an embodiment of the present application. As shown in Fig. 8, a cloud game server 8-1 receives a game command 8-3 sent from a user client 8-2, and transmits audio / video data 8-4 (referred to as data to be transmitted) to the user client 8-2 in response to the game command 8-3.
[0142] Referring to Fig. 9, Fig. 9 is a first flowchart of an example of data processing according to an embodiment of the present application. As shown in Fig. 9, the flow of this example of data processing includes S901 to S912, and the execution body is a user client. Each step will be described below.
[0143] S901: Determine whether the data element to be distributed (referred to as the nth data element) is complete. If yes, execute S902; if no, execute S903.
[0144] Note that, in one example of the data processing, S901 is executed when processing begins. Here, the user client receives data elements transmitted from the cloud game server via multiple channels using two queues (e.g., queues 7-1 and 7-2 in FIG. 7). As a result, the user client first obtains the data element closest in delivery order from a queue (e.g., queue 7-1 in FIG. 7) that stores data elements adjacent in delivery order to the most recently delivered data element, thereby obtaining the data element to be delivered. The user client then determines whether the data element to be delivered is complete (i.e., detects the state of the data element), and determines whether to deliver the data element to be delivered based on the result of the completeness determination.
[0145] S902: The data element to be distributed is distributed, and then the data element to be distributed is deleted from the queue, and the data processing flow for distributing the data element to be distributed is terminated.
[0146] The user client realizes audio / video playback by decoding the distributed data elements.
[0147] S903: Determine whether the delivered data element is of a discardable type; if no, execute S904; if yes, execute S905.
[0148] When a transmitting device transmits data elements via multiple channels, the transmitting device carries the type and delivery order corresponding to the data elements in the data elements. Data element types include discardable and non-discardable types. For example, if the data elements transmitted via multiple channels are frame data, and the video frame contains I-frames and P-frames, both I-frame data (referred to as intra-predicted frame data) and audio frame data are discardable, while P-frame data (inter-predicted frame data) are discardable. This is because the I-frame data can be directly decoded to obtain a complete image, while the P-frame data and B-frame data require previous and subsequent reference information to obtain a complete image. Therefore, when a complete I-frame data is received, the previous P-frame data and B-frame data are discarded and the I-frame data is decoded to obtain a game image.
[0149] S904: Wait until untransmitted data of the data element to be distributed is received, and then execute S901 based on the received data.
[0150] If the incomplete data element is I-frame data or audio-frame data, the incomplete data element is of the non-discardable type. Discarding I-frame data will affect the decoding of subsequent data elements (called post-processing), and discarding audio-frame data will affect audio rendering. Therefore, the data cannot be discarded and must wait until it is received.
[0151] In step S905, subsequent data elements (referred to as subsequent data elements) are sequentially acquired. Then, steps S906 and S912 are executed.
[0152] The user client retrieves the data element succeeding the data element closest in delivery order by scanning the data elements in the two queues.
[0153] S906: Determine whether an incomplete, non-discardable type data element is acquired. If yes, execute S907; if no, execute S908.
[0154] Here, when the user client scans the queue to obtain subsequent data elements, if it has not scanned an incomplete, non-discardable type data element but has scanned a complete data element, it determines the type of the data element, and if it has scanned an incomplete, non-discardable type data element, it stops scanning and waits until data is received.
[0155] S907 waits until data is received, and S908 is executed based on the received data.
[0156] S908, determining the type of the first complete data element obtained;
[0157] S909: if the type is an I-frame, discard the data element before the first complete data element following, and deliver the first complete data element following, then delete the data element to be delivered from the queue, and end the data processing flow for delivering the data element to be delivered.
[0158] The type includes a result of whether the data type is the same or not, and a result of whether the data element is an independent data element or an associated data element. The type being I frame indicates that the first subsequent complete data element is an independent data element of the same data type as the data element to be delivered (P frame data), and the first subsequent complete data element is delivered, while the data element before the first subsequent complete data element is discarded.
[0159] S910, if the type is a P frame or an audio frame, continue to obtain the subsequent data elements.
[0160] Note that the type being P frame indicates that the first subsequent complete data element is an associated data element of the same data type as the data element to be delivered (P frame data). The type being audio frame indicates that the first subsequent complete data element is an independent data element of a different data type from the data element to be delivered (P frame data). At this time, the user client needs to further determine the subsequent data elements.
[0161] S911: If it is determined that the subsequent data elements include a data element whose complete type is an I-frame, the data processing flow for distributing the distributed data element, which discards the distributed data element, is terminated.
[0162] S912, if it determines that the subsequent data element is incomplete, waits until data is received, and executes S908 based on the received data.
[0163] Therefore, in an embodiment of the present application, when switching channels, the cloud game server first determines that the delivery type of the data element to be transmitted on the channel to be switched to is a discardable type, i.e., P frame data, and directly transmits the subsequent data element if it determines that the subsequent data element includes a data element whose complete type is I frame without confirming and retransmitting.Furthermore, if the cloud game server determines that the delivery type of the data element to be transmitted on the channel to be switched to is a non-discardable type, i.e., I frame data or audio frame data, it performs a confirmation and retransmission process.
[0164] For example, refer to Fig. 10, which is a second flowchart of an example of data processing according to an embodiment of the present application. As shown in Fig. 10, the flow of this example of data processing includes S1001 to S1007, and the execution body is a cloud game server. Each step will be described below.
[0165] S1001: Obtain a switching command.
[0166] Note that the channel switching may be actively triggered by the cloud game server side, and the acquired switching command is generated by the cloud game server side itself. In other words, the channel switching is the result of the decision-making of the cloud game server itself.
[0167] S1002, in response to the switching command, a data element (referred to as an n-th data element) being transmitted on the switched channel is determined.
[0168] S1003: Determine whether the data element being transmitted is of a discardable type. If yes, execute S1004; if no, execute S1005.
[0169] S1004, when it is determined that the subsequent data element includes a complete I-frame data, directly transmit the to-be-transmitted data element that is after the currently-transmitted data element in the delivery order.
[0170] The complete I-frame data included in the subsequent data element is obtained by encoding the video frame in real time using the I-frame data encoding method, rather than continuing to use the P-frame data encoding method when the cloud game server switches channels. Therefore, by actively transmitting the I-frame data and triggering the user client to discard the incomplete P-frame data, the user client can actively end the screen freeze, thereby shortening the screen freeze time.
[0171] It should be understood that the cloud gaming server does not need to retransmit confirmation when switching channels, thereby reducing resource consumption for confirmation and retransmission.
[0172] S1005: Check the data elements that need to be retransmitted among the data elements being transmitted.
[0173] S1006, retransmitting data that needs to be retransmitted.
[0174] S1007: Transmit the data element to be transmitted that is located after the data element currently being transmitted in the delivery order.
[0175] It should be understood that by discarding incomplete P frame data, the user client and the cloud game server can improve the stability and fluency of audio / video transmitted using multiple channels in a complex network environment of a cloud game scene. That is, by forming different processing policies (discard or wait) for different data, the sending and receiving logic when switching channels on both ends is simplified, the time required to restore the screen when switching channels is reduced, and data processing efficiency is improved.
[0176] The following describes an example of a configuration implemented as a software module of the first data processing device 255 according to an embodiment of the present application. In some embodiments, as shown in FIG. 2, the software modules in the first data processing device 255 stored in the first memory 250 include: a data receiving module 2551 arranged to receive, via at least two channels, a data element including a delivery order, transmitted from a transmitting device; a distribution processing module 2552 that is arranged to, when the received nth (n is a positive integer) data element is a determined data element, obtain a data element subsequent to the received nth data element based on a distribution order, wherein the state of the determined data element is an incomplete state, the distribution type of the determined data element is a discardable type, the state is determined by whether all data of the data element has been received, and the distribution type is determined by two pieces of information: the degree to which the data element is dependent on other data elements during post-processing, and the degree to which the data element affects the results of post-processing; and a delivery processing module 2552 further configured to determine that a delivery result of the nth data element is discarded if the subsequent data element includes the target data element, wherein the state of the target data element is complete, the target data element and the nth data element are of the same data type, the target data element is an independent data element, the data type is determined by the role of the data element, and the degree of dependency of the independent data element on other data elements during post-processing is less than a predetermined degree.
[0177] In an embodiment of the present application, the distribution processing module 2552 is further configured to determine that the state of the n+1th data element is a complete state when all data of the n+1th data element among the subsequent data elements has been received, and determine that the subsequent data element includes a target data element when the n+1th data element in the complete state satisfies a first condition, where satisfying the first condition includes being the same data type as the nth data element and belonging to an independent data element.
[0178] In an embodiment of the present application, the distribution processing module 2552 is further configured to obtain the status of the n+2-th data element among the subsequent data elements when the n+1-th data element in a complete state satisfies the second condition, or when the n+1-th data element in a complete state satisfies the third condition, wherein satisfying the second condition includes being different from the data type of the n-th data element and belonging to an independent data element, and satisfying the third condition includes being the same as the data type of the n-th data element and belonging to an associated data element whose degree of dependency on other data elements during post-processing is equal to or greater than a predetermined degree, and when the status of the n+2-th data element is in a complete state and the n+2-th data element satisfies the first condition, determine that the subsequent data element includes the target data element.
[0179] In an embodiment of the present application, the distribution processing module 2552 is further configured to acquire a data element that is after the n+1-th data element in the distribution order when the n+1-th data element among the subsequent data elements is the data element to be determined, and determine the distribution results of the n-th data element and the n+1-th data element based on the acquired data element.
[0180] In an embodiment of the present application, the delivery processing module 2552 is further configured to determine that the delivery result of the n-th data element is waiting data if the subsequent data element does not include the target data element.
[0181] In an embodiment of the present application, the delivery processing module 2552 is further configured to: determine, when the received nth data element is a waiting data element, that the delivery result of the nth data element is waiting-to-receive data, the status of the waiting data element is an incomplete state, and the delivery type of the waiting data element is a non-discardable type.
[0182] In an embodiment of the present application, the data elements include video frame data including intra-predicted frame data and inter-predicted frame data, wherein the intra-predicted frame data is an independent data element, the delivery type of the intra-predicted frame data is a non-discardable type, the intra-predicted frame data renders a frame image based on its own data during post-processing, the inter-predicted frame data is an associated data element, the delivery type of the inter-predicted frame data is a discardable type, the inter-predicted frame data renders a frame image based on its own data and the intra-predicted frame data during post-processing, and the intra-predicted frame data and the inter-predicted frame data are of the same data type.
[0183] In an embodiment of the present application, the data elements further include audio frame data, where the audio frame data is an independent data element, the delivery type of the audio frame data is a non-discardable type, and the audio frame data and the video frame data are different data types.
[0184] In an embodiment of the present application, the data receiving module 2551 is further configured to: determine the received data element as a data element in the first data element set if the received data element is adjacent to the most recently delivered data element in delivery order; obtain at least one data element that is adjacent to the received data element in delivery order from the second data element set, and determine the at least one adjacent data element as a data element in the first data element set; and determine the received data element as a data element in the second data element set if the received data element is not adjacent to the most recently delivered data element in delivery order.
[0185] In an embodiment of the present application, the data receiving module 2551 is further configured to obtain a successor data element of the received n-th data element from the first data element set and the second data element set according to the delivery order.
[0186] An embodiment of the present application provides a computer program product or a computer program including computer instructions stored in a computer-readable recording medium, wherein a first processor of a receiving device reads the computer instructions from the computer-readable recording medium, and the first processor executes the computer instructions to cause the receiving device to perform the data processing method on the receiving device side described in the embodiment of the present application.
[0187] The following describes an example of a configuration implemented as a software module of the second data processing device 355 according to an embodiment of the present application. In some embodiments, as shown in FIG. 3, the software modules in the second data processing device 355 stored in the second memory 350 include: a data transmission module 3551 arranged to transmit the data element including the delivery order to the receiving device via at least two channels; a channel switching module 3552 configured to acquire a delivery type of the nth data element in response to a switching command to switch a channel for transmitting the nth data element (n is a positive integer) when transmitting the data element, the delivery type being determined by two pieces of information: a degree to which the data element is dependent on other data elements in post-processing, and a degree to which the data element affects the results of post-processing; The switching processing module 3553 may be configured to cancel sending the nth data element to the receiving device if the delivery type of the nth data element is a discardable type and the subsequent data element includes the target data element, wherein the subsequent data element is a data element that is sent after the nth data element in the delivery order, the state of the target data element is a complete state, the target data element and the nth data element are of the same data type, the target data element is an independent data element, the state is determined by whether the receiving device has received all data of the data element, the data type is determined by the role of the data element, and the dependency of the independent data element on other data elements during post-processing is less than a predetermined degree.
[0188] In an embodiment of the present application, the switching processing module 3553 is further configured to: obtain the status of the nth data element when the delivery type of the nth data element is a non-discardable type; and send untransmitted data corresponding to the nth data element to the receiving device through the switched channel when the status of the nth data element is an incomplete state.
[0189] In an embodiment of the present application, the switching processing module 3553 is further configured to: when the delivery type of the nth data element is a discardable type, select a processed data element from the untransmitted data that is after the nth data element in the delivery order, the processed data element has the same data type as the nth data element, and the processed data element is closest to the delivery order of the nth data element, process the processed data element based on the independent data element to obtain a transmitted data element, and send the transmitted data element to the receiving device.
[0190] An embodiment of the present application provides a computer program product or a computer program including computer instructions stored in a computer-readable recording medium, wherein a second processor of a sending device reads the computer instructions from the computer-readable recording medium, and the second processor executes the computer instructions to cause the sending device to perform the sending device-side data processing method described in the embodiment of the present application.
[0191] An embodiment of the present application provides a computer-readable recording medium storing computer-executable instructions that, when executed by a first processor, cause the first processor to execute a data processing method on a receiving device side relating to an embodiment of the present application, and that, when executed by a second processor, cause the second processor to execute a data processing method on a transmitting device side relating to an embodiment of the present application.
[0192] In some embodiments, the computer-readable storage medium may be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, flash memory, magnetic surface memory, optical disk, or CD-ROM, or may be any of a variety of devices including one or any combination of the above memories.
[0193] In some embodiments, the computer-executable instructions may take the form of a program, software, software module, script, or code, may be written in any type of programming language (including compiled or interpreted languages, or declarative or procedural languages), and may be organized in any form, including as a stand-alone program or as a module, assembly, subroutine, or other unit suitable for use in a computing environment.
[0194] By way of example, the computer-executable instructions may, but do not necessarily, correspond to a file in a file system and may be stored as part of a file that stores other programs or data, for example, in one or more scripts in a HyperText Markup Language (HTML) document, in a single file dedicated to the program under consideration, or in multiple collective files (e.g., files storing one or more modules, subroutines, or code portions).
[0195] For example, the computer-executable instructions may be arranged to be executed on one electronic device (wherein the electronic device is a receiving device or a transmitting device), or to be executed on multiple electronic devices located at one location (wherein the multiple electronic devices located at one location are receiving devices or transmitting devices), or to be executed on multiple electronic devices distributed at multiple locations and connected to each other via a communication network (wherein the multiple electronic devices distributed at multiple locations and connected to each other via a communication network are receiving devices or transmitting devices).
[0196] It should be understood that in the embodiments of the present application, where relevant data such as events are involved and the embodiments of the present application are applicable to a particular product or technology, user permission or consent must be obtained, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of the relevant countries and regions.
[0197] In summary, the embodiments of the present application demonstrate that during multi-channel transmission, when a channel switch occurs and the receiving side receives only part of a currently received data element, if the currently received data element is discardable, the currently received data element is less dependent on other data elements during post-processing and less likely to affect the post-processing results. Next, if the transmitting device determines that the subsequent data elements following the currently received data element in the delivery order include a data element that can independently complete the same post-processing role as the currently received data element, the transmitting device directly transmits the subsequent untransmitted data element, and the receiving device discards the currently received data element, thereby reducing the confirmation retransmission time of the transmitting device and the data waiting time of the receiving device. This reduces the transmission time cost and complexity of data elements during channel switch, thereby improving data processing efficiency during multi-channel transmission. Furthermore, when the transmitted data elements are audio frame data and video frame data, or video frame data, the smoothness of video screen rendering can be improved, resulting in an improved video or audio-video playback effect.
[0198] The above description is only an example of the present application and is not intended to limit the scope of protection of the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principle of the present application should be included in the scope of protection of the present application.
Claims
1. A data processing method performed by a receiving device, comprising: receiving, via at least two channels, a data element including a delivery order, transmitted from a sending device; a step of acquiring, when the n-th received data element is a determined data element, a data element subsequent to the n-th received data element based on the delivery order, wherein a transmission channel is switched during transmission of the determined data element, the state of the determined data element is incomplete, and the delivery type of the determined data element is discardable, the state is determined by whether all data of the data element has been received or not, and the delivery type is determined by two pieces of information: the degree to which the data element is dependent on other data elements during post-processing, and the degree to which the data element affects the result of post-processing, where n is a positive integer; and determining, if the subsequent data element includes a target data element, that the delivery result of the nth data element is discarded, wherein the state of the target data element is complete, the target data element and the nth data element are of the same data type, the target data element is an independent data element, the data type is determined by the role of the data element, and the degree of dependency of the independent data element on other data elements during post-processing is less than a predetermined degree.
2. After obtaining a data element subsequent to the received n-th data element based on the delivery order, the method includes: determining that the state of the n+1th data element is the complete state when all data of the n+1th data element of the subsequent data elements has been received; 2. The method of claim 1, further comprising: determining that the subsequent data element contains the target data element if the n+1th data element in the complete state satisfies a first condition, wherein satisfying the first condition includes being the same data type as the nth data element and belonging to the independent data element.
3. After determining that the state of the n+1th data element is the complete state, the method further comprises: acquiring a state of the n+2-th data element among the subsequent data elements when the n+1-th data element in the complete state satisfies a second condition or when the n+1-th data element in the complete state satisfies a third condition, wherein satisfying the second condition includes being different from the data type of the n-th data element and belonging to the independent data element, and satisfying the third condition includes being the same as the data type of the n-th data element and belonging to an associated data element whose degree of dependency on other data elements during post-processing is equal to or greater than the predetermined degree; 3. The method of claim 2, further comprising: determining that the successor data element contains the target data element if the state of the n+2th data element is the complete state and the n+2th data element satisfies the first condition.
4. After obtaining a data element subsequent to the received n-th data element based on the delivery order, the method includes:
2. The method of claim 1, further comprising the steps of: when the n+1th data element among the subsequent data elements is the data element to be determined, acquiring the data element that is after the n+1th data element in the delivery order; and determining the delivery results of the nth data element and the n+1th data element based on the acquired data element.
5. After obtaining a data element subsequent to the received n-th data element based on the delivery order, the method includes:
2. The method of claim 1, further comprising the step of determining to wait for reception of the nth data element that has not yet been received if the subsequent data element does not include the target data element.
6. After receiving data elements transmitted from the transmitting device via the at least two channels, the method further comprises:
2. The method of claim 1, further comprising: if the received nth data element is a waiting data element, determining to wait for reception of the nth data element that has not yet been received, wherein the state of the waiting data element is the incomplete state and the delivery type of the waiting data element is a non-discardable type.
7. 2. The method of claim 1 , wherein the data elements include video frame data including intra-predicted frame data and inter-predicted frame data, the intra-predicted frame data being the independent data elements, a delivery type of the intra-predicted frame data being a non-discardable type, the intra-predicted frame data rendering a frame image based on its own data during post-processing, the inter-predicted frame data being associated data elements, the associated data elements having a degree of dependency on other data elements during post-processing equal to or greater than the predetermined degree, the delivery type of the inter-predicted frame data being the discardable type, the inter-predicted frame data rendering a frame image based on its own data and the intra-predicted frame data during post-processing, and the intra-predicted frame data and the inter-predicted frame data being the same data type.
8. 8. The method of claim 7, wherein the data elements further include audio frame data, the audio frame data being the independent data element, the delivery type of the audio frame data being the non-discardable type, and the audio frame data and the video frame data being different data types.
9. The receiving device stores data elements transmitted from the transmitting device as data element sets, a first data element set including a data element that was transmitted earliest among the stored data elements, and a second data element set including a data element that is not adjacent in the transmission order to any of the data elements in the first data element set, and after receiving the data elements via at least two channels, the method includes: if the received data element is adjacent in delivery order to the most recently delivered data element in the first data element set, determining the received data element as the data element in the first data element set, and obtaining from the second data element set at least one data element that is adjacent in delivery order to the received data element, and determining the at least one adjacent data element as the data element in the first data element set; if the received data element and the most recently delivered data element are not adjacent in the delivery order, determining the received data element as the data element in the second data element set, The step of acquiring a data element subsequent to the received n-th data element based on the delivery order includes: The method of claim 1 , further comprising obtaining the successor data element of the received nth data element from the first data element set and the second data element set based on the delivery order.
10. 1. A data transmission method performed by a sending device, comprising: transmitting a data element including a delivery order to a receiving device via at least two channels; a step of acquiring a delivery type of the n-th data element in response to a switching command for switching the channel transmitting the n-th data element during transmission of the data elements, the delivery type being determined by two pieces of information: a degree to which the data element is dependent on other data elements in post-processing, and a degree to which the delivery type influences a result of the post-processing, where n is a positive integer; canceling transmission of the nth data element to the receiving device when the delivery type of the nth data element is a discardable type and a subsequent data element includes a target data element, wherein the subsequent data element is the data element that is sent after the nth data element in the delivery order, the state of the target data element is complete, the target data element and the nth data element are of the same data type, the target data element is an independent data element, the state is determined by whether the receiving device has received all data of the data element, the data type is determined by the role of the data element, and the degree of dependency of the independent data element on other data elements in post-processing is less than a predetermined degree; A data transmission method comprising:
11. After obtaining the delivery type of the n-th data element, the method comprises: If the delivery type of the n-th data element is a non-discardable type, obtaining a state of the n-th data element; 11. The method of claim 10, further comprising the step of: if the status of the nth data element is incomplete, transmitting untransmitted data corresponding to the nth data element to the receiving device via the switched channel.
12. After obtaining the delivery type of the n-th data element, the method comprises: If the delivery type of the n-th data element is a discardable type, selecting a processed data element from untransmitted data that is after the n-th data element in the delivery order, wherein the processed data element has the same data type as the n-th data element and is closest to the n-th data element in the delivery order; processing the processed data element based on the independent data element to obtain a transmitted data element; 11. The method of claim 10, further comprising the step of: transmitting the transmitted data element to the receiving device.
13. a first data processing device, a data receiving module arranged to receive, via at least two channels, data elements including a delivery order sent from a sending device; a delivery processing module configured to, when the received n-th data element is a determined data element, obtain a data element subsequent to the received n-th data element based on the delivery order, wherein a transmission channel is switched during transmission of the determined data element, the state of the determined data element is incomplete, and the delivery type of the determined data element is a discardable type, the state is determined by whether all data of the data element has been received, and the delivery type is determined by two pieces of information: the degree to which it is dependent on other data elements during post-processing and the degree to which it affects the results of post-processing, and n is a positive integer; the distribution processing module is further configured to determine that the distribution result of the n-th data element is discarded when the subsequent data element includes a target data element, the state of the target data element is complete, the target data element and the n-th data element are of the same data type, the target data element is an independent data element, the data type is determined by the role of the data element, and the dependency degree of the independent data element on other data elements during post-processing is less than a predetermined degree; A first data processing device comprising:
14. a second data processing device, a data transmission module arranged to transmit the data element including the delivery order to the receiving device via at least two channels; a channel switching module configured to acquire a delivery type of the n-th data element in response to a switching command to switch the channel transmitting the n-th data element during transmission of the data elements, the delivery type being determined by two pieces of information: a degree to which the data element is dependent on other data elements in post-processing, and a degree to which the delivery type affects a result of post-processing, where n is a positive integer; a switching processing module configured to cancel sending the nth data element to the receiving device if the delivery type of the nth data element is a discardable type and a subsequent data element includes a target data element, wherein the subsequent data element is a data element that is sent after the nth data element in the delivery order, the state of the target data element is a complete state, the target data element and the nth data element are of the same data type, the target data element is an independent data element, the state is determined by whether the receiving device has received all data of the data element, the data type is determined by the role of the data element, and the degree of dependency of the independent data element on other data elements during post-processing is less than a predetermined degree.
15. A receiving device for data processing, comprising: a first memory for storing computer-executable instructions; a first processor for implementing the data processing method of any one of claims 1 to 9 when executing computer-executable instructions stored in said first memory.
16. A transmitting device for data processing, a second memory for storing computer-executable instructions; A second processor for implementing the data processing method of any one of claims 10 to 12 when executing computer-executable instructions stored in said second memory.
17. A computer program comprising: A computer program causing a computer to carry out the data processing method according to any one of claims 1 to 9.
18. A computer program comprising: A computer program product that causes a computer to execute the data processing method according to any one of claims 10 to 12.
Citation Information
Patent Citations
Fast tuning in multimedia applications
JP2009528002A
Video control device, video control program, and video control system
JP2016187150A
System and method for high-speed channel change
JP2020171008A