Method, device and storage medium for determining operation instruction in frame synchronization process

By dynamically expanding the number of operation commands within a data packet, the game experience problem caused by the fixed number of operation commands in frame synchronization technology is solved, enabling better synchronization of player operations under high network packet loss rates and improving the game experience.

CN117771656BActive Publication Date: 2026-06-26TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
TENCENT TECHNOLOGY (SHENZHEN) CO LTD
Filing Date
2022-09-21
Publication Date
2026-06-26

AI Technical Summary

Technical Problem

In existing frame synchronization technologies, the fixed number of operation commands makes it impossible to effectively carry redundant frames or affect the game experience in scenarios with high network packet loss rates. It is impossible to simultaneously meet the requirements for the number of redundant frames and the requirement to carry more operation commands.

Method used

By dynamically expanding the number of operation instructions within a data packet, determining the length of redundant frames and the current frame based on network parameters, and calculating the remaining length of the data packet to carry extended instructions, the current frame can be dynamically expanded to carry more operation instructions.

Benefits of technology

While ensuring sufficient redundant frames, the system can dynamically expand to carry more operation commands, enhancing the player's gaming experience and effectively combating scenarios with high network packet loss rates.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117771656B_ABST
    Figure CN117771656B_ABST
Patent Text Reader

Abstract

The application discloses a method for determining operation instructions in a frame synchronization process, which is applied to the technical field of frame synchronization and is executed by a server. The server is connected with at least two clients. The method comprises the following steps: receiving operation instructions sent by at least one client in the at least two clients; determining a first length of a current frame based on a fixed number of operation instructions carried by a single frame; determining a second length of a redundant frame based on network parameters between the server and the at least two clients; obtaining a residual length of at least one data packet according to a fixed length of a single data packet, the first length and the second length; and determining an extended number of instructions of the current frame according to the residual length of the at least one data packet. Under the premise of meeting the required number of redundant frames, the current frame is dynamically extended to carry more operation instructions, more operation instructions can be sent from the server to the clients, and the game experience of players can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of frame synchronization technology, and in particular to a method, apparatus, device and storage medium for determining operation instructions during frame synchronization. Background Technology

[0002] Lockstep is a technique that synchronizes operation commands from one client to another by sending frames from the server to all clients. In related technologies, to combat network packet loss, the data packets sent by the server to the client include redundant frames carrying data from previous frames, in addition to the current frame.

[0003] However, the number of operation commands that can be carried in a single frame is fixed. If the value of this number of operation commands is set too high, the data packets sent by the server to each client will not be able to carry the required number of redundant frames, making it unable to effectively cope with scenarios with high network packet loss rates; if the value of this number of operation commands is set too low, some operation commands will not be able to be inserted into the current frame, affecting the player's gaming experience.

[0004] Therefore, the problem that needs to be solved is how to incorporate more player operation commands into the data packet without affecting the number of redundant frames that need to be carried in order to ensure the player's gaming experience. Summary of the Invention

[0005] This application provides a method, apparatus, device, and storage medium for determining operation instructions during frame synchronization, which dynamically expands the current frame to carry more operation instructions while meeting the required number of redundant frames. The technical solution is as follows:

[0006] According to one aspect of this application, a method for determining operation instructions during frame synchronization is provided, the method being executed by a server connected to at least two clients, the method comprising:

[0007] Receive operation instructions sent by at least one of the at least two clients;

[0008] The first length of the current frame is determined based on the fixed number of operation instructions carried in a single frame; and the second length of the redundant frame is determined based on the network parameters between the server and the at least two clients, wherein the redundant frame is a frame preceding the current frame.

[0009] Based on the fixed length of a single data packet, the first length, and the second length, the remaining length of at least one data packet is obtained; the at least one data packet is used to carry the current frame and the redundant frame;

[0010] The number of extension instructions for the current frame is determined based on the remaining length of the at least one data packet, the number of extension instructions indicating the number of operation instructions carried in the extension of the current frame.

[0011] According to one aspect of this application, a method for determining operation instructions during frame synchronization is provided, the method being executed by a client, the method comprising:

[0012] Receive at least one data packet sent by the server, the at least one data packet being used to carry the current frame and redundant frames;

[0013] The number of operation instructions carried in the current frame is greater than the fixed number of operation instructions carried in a single frame; the redundant frame is the frame preceding the current frame.

[0014] According to one aspect of this application, an apparatus for determining operation instructions during frame synchronization is provided, the apparatus comprising:

[0015] The first receiving module is configured to receive operation instructions sent by at least one of the at least two clients;

[0016] The first determining module is used to determine the first length of the current frame based on the fixed number of operation instructions carried in a single frame; and to determine the second length of a redundant frame based on network parameters between the server and the at least two clients, wherein the redundant frame is a frame preceding the current frame.

[0017] Based on the fixed length of a single data packet, the first length, and the second length, the remaining length of at least one data packet is obtained; the at least one data packet is used to carry the current frame and the redundant frame;

[0018] The number of extension instructions for the current frame is determined based on the remaining length of the at least one data packet, the number of extension instructions indicating the number of operation instructions carried in the extension of the current frame.

[0019] According to one aspect of this application, an apparatus for determining operation instructions during frame synchronization is provided, the apparatus comprising:

[0020] The second receiving module is used to receive at least one data packet sent by the server, wherein the at least one data packet is used to carry the current frame and redundant frames;

[0021] The number of operation instructions carried in the current frame is greater than the fixed number of operation instructions carried in a single frame; the redundant frame is the frame preceding the current frame.

[0022] According to another aspect of this application, a computer device is provided, the computer device comprising: a processor and a memory, the memory storing a computer program, the computer program being loaded and executed by the processor to implement the operation instruction determination method during frame synchronization as described above.

[0023] According to another aspect of this application, a computer-readable storage medium is provided, the computer-readable storage medium storing a computer program, the computer program being loaded and executed by a processor to implement the operation instruction determination method during frame synchronization as described above.

[0024] According to another aspect of this application, a computer program product is provided, the computer program product storing a computer program that is loaded and executed by a processor to implement the operation instruction determination method during frame synchronization as described above.

[0025] According to another aspect of this application, a chip is provided, the chip including programmable logic circuits and / or program instructions, and a computer device on which the chip is installed is used to implement the operation instruction determination method during frame synchronization as described above.

[0026] The beneficial effects of the technical solutions provided in this application include at least the following:

[0027] By calculating the remaining length in at least one data packet, the number of extended instructions that the packet can still carry is determined. This allows the data packet to carry not only the current frame and redundant frames, but also dynamically extended instructions. While ensuring the required number of redundant frames is met, the current frame can be dynamically expanded to carry more operation instructions, enabling the server to send more operation instructions to the client, thereby enhancing the player's gaming experience. Attached Figure Description

[0028] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0029] Figure 1 A schematic diagram of the frame synchronization process in related technologies is shown;

[0030] Figure 2 A flowchart illustrating the method for determining operation instructions during frame synchronization in related technologies is shown.

[0031] Figure 3 This illustration shows a schematic diagram of pruning redundant frames during frame synchronization provided in an exemplary embodiment of this application;

[0032] Figure 4 This application shows a structural block diagram of a computer system provided in an exemplary embodiment;

[0033] Figure 5 A flowchart illustrating an exemplary embodiment of the present application provides a method for determining operation instructions during frame synchronization.

[0034] Figure 6 A flowchart illustrating an exemplary embodiment of the present application provides a method for determining operation instructions during frame synchronization.

[0035] Figure 7 A flowchart illustrating an exemplary embodiment of the present application provides a method for determining operation instructions during frame synchronization.

[0036] Figure 8 A schematic diagram of an operation instruction determination method during frame synchronization provided in an exemplary embodiment of this application is shown;

[0037] Figure 9 A schematic diagram of an operation instruction determination method during frame synchronization provided in an exemplary embodiment of this application is shown;

[0038] Figure 10 A schematic diagram of an operation instruction determination method during frame synchronization provided in an exemplary embodiment of this application is shown;

[0039] Figure 11 A schematic diagram of an operation instruction determination method during frame synchronization provided in an exemplary embodiment of this application is shown;

[0040] Figure 12 A flowchart illustrating an exemplary embodiment of the present application provides a method for determining operation instructions during frame synchronization.

[0041] Figure 13 This invention provides a schematic diagram of the structure of an operation instruction determination device during frame synchronization, according to an exemplary embodiment of this application.

[0042] Figure 14 This invention provides a schematic diagram of the structure of an operation instruction determination device during frame synchronization, according to an exemplary embodiment of this application.

[0043] Figure 15 This invention illustrates a structural block diagram of a terminal provided in an exemplary embodiment of this application;

[0044] Figure 16 A structural block diagram of a server provided in an exemplary embodiment of this application is shown. Detailed Implementation

[0045] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be further described in detail below with reference to the accompanying drawings. Exemplary embodiments will be described in detail here, examples of which are illustrated in the accompanying drawings. When the following description refers to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.

[0046] The terminology used in this disclosure is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. The singular forms “a,” “the,” and “the” as used in this disclosure and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used herein refers to and includes any and all possible combinations of one or more of the associated listed items.

[0047] It should be understood that although the terms first, second, third, etc., may be used in this disclosure to describe various information, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another.

[0048] First, a brief introduction to the relevant technologies involved in the embodiments of this application will be given:

[0049] In online games, such as fighting games (FTG), action games (ACT), multiplayer online battle arena (MOBA), real-time strategy games (RTS), massively multiplayer online games (MMOG), shooting games (STG), first-person shooter games (FPS), third-person shooter games (TPS), and arcade games, synchronization technology is usually required to ensure that multiple clients display consistent visual effects in order to provide players with a better gaming experience.

[0050] Lockstep synchronization is a common synchronization technique in online games. Its principle is that the server acquires all player actions sent to the server by clients within a unit of time on the battlefield (or in-game, or field of view) and broadcasts them. In other words, lockstep synchronization achieves synchronization of player actions across all clients by having the server broadcast the acquired player commands to all clients at regular intervals, thus synchronizing the game state across all clients. Player actions can be understood as player commands, player instructions, or game actions.

[0051] Specifically, the frame synchronization process is as follows: Figure 1 As shown, a timer is set to trigger a clock interrupt (i.e., a "tick") every 100 ms, with each unit of time being 100 ms. The time between two adjacent clock interrupts is called a time slice (or tick period). For ease of explanation, the data (or messages) sent from the client to the server are referred to as uplink data (or messages), and the data (or messages) sent from the server to the client are referred to as downlink data (or messages). During the time slice between the Nth clock interrupt and the N+1th clock interrupt, client 1 and client 2 respectively send the uplink Nth frame message (or Nth frame data, or Nth frame player operation instructions) to the server (which can also be understood as the host), as shown in steps 101 and 102. At the N+1th clock interrupt, the server broadcasts the received uplink Nth frame message to client 1 and client 2 via downlink data packets, as shown in steps 103 and 104. During the time interval between the (N+1)th and (N+2)th clock interrupts, client 1 and client 2 respectively perform logical processing on the Nth frame message in the received downlink data packets to display the corresponding visual effects, as shown in steps 105 and 106. During the time interval between the (N+1)th and (N+2)th clock interrupts, client 1 also sends the (N+1)th uplink frame message to the server, as shown in step 107. Then, during the (N+2)th clock interrupt, the server broadcasts the received (N+1)th uplink frame message to client 1 and client 2 via downlink data packets, as shown in steps 108 and 109.

[0052] In games employing frame synchronization technology (hereinafter referred to as "frame-synchronized games"), to distinguish frame data (or frame messages) from different time slices, the server adds a logical sequence number to the player actions within the battlefield (or match, or field of vision) per unit time, and broadcasts (or synchronizes) this logical sequence number along with the player actions to all clients within the battlefield (or match, or field of vision). This logical sequence number used to distinguish frame data from different time slices is also called the frame sequence number or frame index.

[0053] This can also be understood as the server logically dividing the set of player actions within a unit of time into logical frames (or game frames), or simply "frames". For example, for a game that transmits 15 frames per second (15 FPS), the server caches (or collects) the player actions within the battlefield (or match, or field of view) every 66 ms and divides them into logical frames, assigning each logical frame a frame number, or frame index. When the server and client perform frame synchronization, they both use logical frames as the smallest unit.

[0054] During network transmission, some data packets may be dropped due to excessively long lines, network congestion, or other reasons, resulting in packet loss. In frame-synchronized games, to mitigate the negative impact of packet loss, the server sends data packets to the client that contain both the data of the current frame and data from previous frames. Frames carrying data from previous frames are called redundant frames. Typically, the server calculates whether a player needs redundant frames and the number of redundant frames required by each player based on network parameters, and then sends the required redundant frames along with the current frame in the data packet.

[0055] In frame-synchronized gaming technologies, the server inserts player input commands received within a unit of time into the current frame, then carries the current frame along with redundant frames in a data packet and sends this data packet to each client. However, the number of input commands that can be carried in each frame is fixed; that is, the number of player input commands that can be carried in each frame is a fixed value. Therefore, there are situations where the server cannot insert all input commands received within a unit of time into the current frame. For example, if the server receives 35 input commands from the player within a unit of time, and the set input command limit is 30 (meaning each frame can carry 30 input commands by default), then the server can only insert the first 30 input commands that arrive at the server in the order they arrive, and the remaining 5 input commands are discarded or moved to the next frame.

[0056] In related technologies, the process of determining operation instructions during frame synchronization is as follows: Figure 2 As shown, the specific steps include:

[0057] Step 210: Frame cutting;

[0058] The server retrieves and saves the action commands of all players within the battlefield (or match, or field of vision) within a unit of time (which can also be understood as a time slice). The method for retrieving action commands can be as follows: Figure 1As shown in steps 101 and 102, the client sends the operation instructions to the server in the downlink frame data (or frame message), and the server saves the obtained operation instructions to form a frame data storage queue.

[0059] A queue is an ordered list, which can be implemented using an array or a linked list, forming a sequential queue or a linked queue. A data storage queue is a linear storage structure with strict requirements for data storage and retrieval, adhering to the First-In-First-Out (FIFO) principle; that is, data added to the queue earlier must be retrieved first, and data added later must be retrieved last. Elements in a data storage queue are called data elements. Each data element in a data storage queue has a unique index, which can also be understood as a number or subscript.

[0060] As mentioned earlier, the server logically divides the set of player actions within a unit of time into logical frames, an action known as frame cutting.

[0061] When the frame-slicing time is reached, for example Figure 1 During the Nth clock interrupt, N+1th clock interrupt, and other times, the server merges and saves all player operation commands obtained within a unit of time, and assigns a frame number to each logical frame. For ease of explanation, the logical frame formed after the most recent frame cut is called the current frame.

[0062] Step 220: Calculate the current frame length and the number of fragments;

[0063] In related technologies, when a frame is too long and the transmission speed is too slow, the probability of interference or errors during transmission increases. Therefore, a long frame is usually divided into several smaller segments for transmission, that is, a long frame is divided into several small (i.e., short) frames, and data is transmitted through these small frames. Because each small frame is short, errors or interference are less likely to occur during transmission. This technique is called frame fragmentation, and the resulting small frames are called fragments. Each fragment from the same long frame has the same frame number and a different fragment number, used to identify different fragments belonging to the same long frame.

[0064] The server calculates the size of the current frame (i.e., its length) after frame segmentation and determines whether to use frame fragmentation techniques to obtain the number of fragments for the current frame, depending on the specific circumstances. For example, the server compresses the lengths of all instructions within the current frame and then sums them to obtain the current frame length. If the calculated current frame length exceeds a predetermined threshold, frame fragmentation techniques are used to determine the number of fragments for the current frame, such as dividing the current frame into two fragments.

[0065] Step 230: Insert the frame attribute information of the current frame into the data storage queue;

[0066] The server assigns a unique index (or subscript, or number) to each operation instruction obtained within the current frame. This index can be called the operation index, the instruction index, or the operation instruction index.

[0067] The index of the first operation instruction in the current frame, that is, the index of the operation instruction at the head of the frame data storage queue in the current frame, is called the start operation index. The index of the last operation instruction in the current frame, that is, the index of the operation instruction at the tail of the frame data storage queue in the current frame, is called the end operation index.

[0068] The server inserts the frame attribute information of the current frame into the frame data storage queue to update the frame data storage queue. The frame attribute information of the current frame includes at least one of the following: the frame sequence number of the current frame, the start operation index of the current frame, the end operation index of the current frame, the size of the current frame, and the number of fragments of the current frame.

[0069] Step 240: Obtain the maximum redundancy window value;

[0070] The size of the redundancy window can be understood as the number of frames that the server needs to send to the client via data packets.

[0071] The server calculates the redundancy window value for each player in the battlefield (or match, or field of vision) based on network parameters such as packet loss rate and latency. The largest redundancy window value among all players is called the maximum redundancy window value. The maximum redundancy window value can also be understood as the number of frames that the player with the worst network in the battlefield (or match, or field of vision) needs from the server.

[0072] Step 250: Calculate the total length of redundant frames;

[0073] The server determines the total length of redundant frames based on the maximum redundancy window value. In other words, the server determines the total length of redundant frames needed in a battlefield (or game, or field of vision) based on the player with the worst network in that battlefield (or game, or field of vision).

[0074] For example, if the server calculates a maximum redundancy window value of 3, it means that the total length of redundant frames required within the battlefield (or game, or field of vision) is 2. In other words, the server needs to send a maximum of 2 redundant frames to clients within that battlefield (or game, or field of vision). In the frame data storage queue, based on the time the frame data arrives at the server, frames with a total length of 2 are selected from back to front of the current frame as redundant frames.

[0075] Step 260: Calculate the redundant window value for a single player and trim redundant frames;

[0076] The server determines the redundant frame length for each player based on their redundancy window value. In other words, the server determines the number of redundant frames needed for each player based on their redundancy window value. When sending redundant frames to a single player, the calculated total length of redundant frames is trimmed to the length required by that individual player.

[0077] For example, if the server calculates that player A's redundancy window value is 2, it means that player A needs a redundancy frame length of 1. If the calculated total length of the redundancy frames is 3, then the redundancy frames with a total length of 3 will be trimmed into redundancy frames with a length of 1. In other words, based on the time the frame data arrives at the server, from the last to the first of the redundancy frames with a total length of 3 before the current frame, frame data with a length of 1 will be selected as player A's redundancy frames.

[0078] For example, the redundant frame pruning process is as follows: Figure 3 As shown, the server calculates the current frame (frame 1003) based on the player's input commands received per unit time. Based on the network parameters within the battlefield (or match, or field of vision), the maximum redundancy window value is calculated to be 4. This means that the player with the worst network connection within the battlefield (or match, or field of vision) needs 3 redundant frames: frames 1002, 1001, and 1000. Therefore, the frame data to be sent within the battlefield (or match, or field of vision) includes frames 1003 to 1000. When sending frame data to player A, to reduce bandwidth consumption, the honor window needs to be filled based on player A's actual network parameters. For example, if player A's redundancy window value is calculated to be 2, it means that in addition to the current frame (frame 1003), player A needs 1 more redundant frame. Therefore, the server removes frames 1001 and 1000 from memory, and the frame data to be sent to player A includes the current frame (frame 1003) and the redundant frame (frame 1002).

[0079] Step 270: Send data packets.

[0080] The server sends the current frame along with redundant frames in the data packet to the client.

[0081] For example, the server combines the current frame and a redundant frame of length 1 into data packet A, and sends data packet A to client A used by player A. The server combines the current frame and a redundant frame of length 2 into data packet B, and sends data packet B to client B with the worst network in the battlefield (or game, or field of vision).

[0082] However, in the frame synchronization process described above, the determination of operation commands not only has a fixed number of operation commands that can be carried within a single frame, but also a fixed size for the data packets sent by the server. That is, the total length of frames that can be carried in each data packet is fixed, and the number of operation commands that can be carried within each frame is also fixed. If the fixed number of operation commands is set too high, the data packets sent by the server cannot carry the required number of redundant frames, resulting in an inability to effectively combat scenarios with high network packet loss rates. If the fixed number of operation commands is set too low, more player operations cannot be inserted into the current frame, resulting in too few player operations broadcast by the server and too few player operations received by the client in the current frame, thus affecting the player's gaming experience.

[0083] Therefore, this application provides a method for determining operation instructions during frame synchronization, which supports dynamically expanding the number of operation instructions in the data packet. This method does not affect the redundancy of frames in scenarios with high network packet loss rates, and it also supports merging more operation instructions into the data packet, synchronizing more player operations on the client, thereby improving the player's gaming experience.

[0084] Figure 4 A structural block diagram of a computer system provided in an exemplary embodiment of this application is shown. The computer system 400 includes a first terminal 410, a server 420, and a second terminal 430.

[0085] The first terminal 410 has applications that support frame synchronization installed and running, such as frame-synchronized games. The first terminal 410 is the terminal used by the first player.

[0086] In some embodiments, the first terminal 410 can be considered as the first player using the first terminal 410.

[0087] The first terminal 410 is connected to the server 420 via a wireless network or a wired network.

[0088] Server 420 includes one of the following: a single server, multiple servers, a cloud computing platform, and a virtualization center. Schematic, server 420 includes a processor 421 and a memory 422, with memory 422 further including a receiving module 4221, a display module 4222, and a control module 4223. Server 420 provides background services for applications supporting frame synchronization. Optionally, server 420 undertakes the primary computing work, while the first terminal 410 and the second terminal 430 undertake secondary computing work; alternatively, server 420 undertakes secondary computing work, while the first terminal 410 and the second terminal 430 undertake the primary computing work; or, server 420, the first terminal 410, and the second terminal 430 collaborate in a distributed computing architecture.

[0089] The second terminal 430 has an application that supports frame synchronization installed and running. The second terminal 430 is the terminal used by the second player.

[0090] In some embodiments, the second terminal 430 can be considered as a second player using the second terminal 430.

[0091] Optionally, the first player and the second player may or may not be in the same line of sight, or they may or may not be in the same match, or they may or may not be in the same battlefield. Optionally, the first player and the second player may belong to the same team, the same organization, have a friend relationship, or have temporary communication permissions.

[0092] Optionally, the applications installed on the first terminal 410 and the second terminal 430 are the same, or the applications installed on the two terminals are the same type of applications from different control system platforms. The first terminal 410 can refer to one of multiple terminals, and the second terminal 430 can refer to one of multiple terminals; this embodiment only uses the first terminal 410 and the second terminal 430 as examples. The device types of the first terminal 410 and the second terminal 430 may be the same or different, and these device types include, but are not limited to, at least one of the following: smartphones, tablets, e-book readers, laptops, desktop computers, televisions, augmented reality (AR) terminals, virtual reality (VR) terminals, mixed reality (MR) terminals, extended reality (XR) terminals, baffle reality (BR) terminals, cinematic reality (CR) terminals, and deceived reality (DR) terminals. The following embodiments use smartphones as an example.

[0093] Those skilled in the art will understand that the number of terminals or players can be more or less. For example, there may be only one terminal or player, or there may be dozens or hundreds, or even more. This application does not limit the number of terminals or players or the type of device.

[0094] It should be noted that all information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.), and signals involved in this application are authorized by the user or fully authorized by all parties, and the collection, use, and processing of related data must comply with the relevant laws, regulations, and standards of the relevant countries and regions. For example, the information involved in this application is obtained under full authorization, and the terminal and server only cache this information during program operation, and will not permanently store or reuse the related data.

[0095] Figure 5 This illustration shows a flowchart of an operation instruction determination method during frame synchronization provided in an exemplary embodiment of this application. This embodiment uses this method... Figure 4 The server 420 shown is used as an example. The method includes at least some of the following steps:

[0096] Step 510: Receive operation instructions sent by at least one of the at least two clients;

[0097] The server connects to at least two clients. The server receives operation instructions sent by at least one of the at least two clients within a unit of time. These operation instructions may be carried in uplink frame data, uplink frame messages, or uplink data packets and sent to the server.

[0098] Step 530: Determine the first length of the current frame based on the fixed number of operation instructions carried in a single frame, and determine the second length of the redundant frame based on the network parameters between the server and at least two clients;

[0099] The number of operation commands that can be carried in a single frame is a fixed value, which can be predefined, set, or default. The fixed number of operation commands that a single frame can carry is inserted into the current frame to determine the first length of the current frame. For example, if the fixed number of operation commands carried in a single frame is set to 30, the lengths of the 30 operation commands inserted into the current frame are compressed and accumulated to obtain the first length of the current frame.

[0100] Based on the network parameters between the server and at least two clients, the redundant frames required by the client with the worst network condition among the at least two clients are determined. The lengths of the redundant frames required by the client with the worst network condition among the at least two clients are summed to obtain the second length of the redundant frame. The redundant frame is the frame preceding the current frame.

[0101] In some embodiments, network parameters include, but are not limited to, network packet loss rate, latency, etc.

[0102] Step 550: Based on the fixed length of a single data packet, the first length of the current frame, and the second length of the redundant frame, obtain the remaining length of at least one data packet;

[0103] The length (i.e., size) of a single data packet is a fixed value; that is, the length of a frame that a single data packet can carry is fixed. This fixed length can be predefined, set, or a default value.

[0104] Based on the fixed length of a single data packet, the first length of the current frame and the second length of the redundant frame are calculated to obtain the remaining length of at least one data packet. At least one data packet is used to carry the current frame and the redundant frame.

[0105] Step 570: Determine the number of extension instructions for the current frame based on the remaining length of at least one data packet.

[0106] The extension instruction number is used to indicate the number of operation instructions carried by the current frame extension.

[0107] In some embodiments, the operation instructions received in step 510, excluding those already inserted into the current frame, are inserted into the remaining length of the at least one data packet in the order they arrived at the server. That is, operation instructions received in step 510 that have not yet been inserted into the current frame are inserted into the remaining length of the at least one data packet in the order they arrived at the server. Since the remaining length is finite, the operation instructions that can be physically or logically inserted into the remaining length are the extended instructions of the current frame, and the number of operation instructions that can be physically or logically inserted into the remaining length is the number of extended instructions for the current frame.

[0108] In some embodiments, an operation instruction that has been inserted into the current frame refers to an operation instruction that has been physically inserted into the current frame, or an operation instruction that has been logically inserted into the current frame, or an operation instruction that is physically capable of being inserted into the current frame, or an operation instruction that is logically capable of being inserted into the current frame.

[0109] In some embodiments, an operation instruction that is not inserted into the current frame refers to an operation instruction that is not physically inserted into the current frame, or an operation instruction that is not logically inserted into the current frame, or an operation instruction that is physically temporarily unable to be inserted into the current frame, or an operation instruction that is logically temporarily unable to be inserted into the current frame.

[0110] In summary, the method provided in this embodiment calculates the number of extended instructions that can be carried by at least one data packet based on the remaining length of the calculated data packet. This allows the data packet to carry not only the current frame and redundant frames, but also extended instructions dynamically. While meeting the required number of redundant frames, the current frame is dynamically extended to carry more operation instructions, supporting the server in sending more operation instructions to the client, thereby enhancing the player's gaming experience.

[0111] In some embodiments, step 550 may be implemented as step 552 or step 554.

[0112] Figure 6 This illustration shows a flowchart of an operation instruction determination method during frame synchronization provided in an exemplary embodiment of this application. This embodiment uses this method... Figure 4 The server 420 shown is used as an example. The method includes at least some of the following steps:

[0113] Step 510: Receive operation instructions sent by at least one of the at least two clients;

[0114] The server connects to at least two clients. The server receives operation instructions sent by at least one of the at least two clients within a unit of time. These operation instructions may be carried in uplink frame data, uplink frame messages, or uplink data packets and sent to the server.

[0115] Step 530: Determine the first length of the current frame based on the fixed number of operation instructions carried in a single frame, and determine the second length of the redundant frame based on the network parameters between the server and at least two clients;

[0116] The number of operation commands that can be carried in a single frame is a fixed value, which can be predefined, set, or default. The fixed number of operation commands that a single frame can carry is inserted into the current frame to determine the first length of the current frame. For example, if the fixed number of operation commands carried in a single frame is set to 30, the lengths of the 30 operation commands inserted into the current frame are compressed and accumulated to obtain the first length of the current frame.

[0117] In some embodiments, based on network parameters between the server and at least two clients, the first client is determined to be the client with the worst network condition among the at least two clients; based on the network parameters between the server and the first client, the maximum redundancy window value is obtained.

[0118] In some embodiments, based on network parameters between the server and at least two clients, the redundancy window value of each of the at least two clients is calculated, and the redundancy window value of the first client is determined to be the largest among the redundancy window values ​​of all clients, and the redundancy window value of the first client is determined to be the largest redundancy window value.

[0119] Based on the maximum redundancy window value, the redundant frames required by the client with the worst network condition among at least two clients are determined. The lengths of the redundant frames required by the client with the worst network condition among at least two clients are summed to obtain the second length of the redundant frame. The redundant frame is the frame preceding the current frame.

[0120] In some embodiments, network parameters include, but are not limited to, network packet loss rate, latency, etc.

[0121] Step 552: If the sum of the first length of the current frame and the second length of the redundant frame is not greater than the fixed length of a single data packet, determine that the at least one data packet is a single data packet; determine the remaining length of the single data packet by subtracting the first length of the current frame and the second length of the redundant frame from the fixed length of the single data packet.

[0122] In some embodiments, the remaining length of a data packet is located between the current frame and the redundant frame within that data packet.

[0123] Step 554: If the sum of the first length of the current frame and the second length of the redundant frame and the fixed length of n single data packets have a first difference greater than zero, and the sum of the first length of the current frame and the second length of the redundant frame and the fixed length of n+1 single data packets has a second difference less than zero, then determine that the at least one data packet is n+1 data packets; and determine the absolute value of the second difference as the remaining length of the n+1th data packet.

[0124] Where n is a positive integer.

[0125] In some embodiments, the (n+1)th data packet does not carry the operation instructions for the current frame, and the remaining length of the (n+1)th data packet is positioned before the redundant frame within the (n+1)th data packet; or,

[0126] The (n+1)th data packet carries the operation instructions for the current frame. The remaining length of the (n+1)th data packet is located between the current frame and the redundant frame.

[0127] Step 570: Determine the number of extension instructions for the current frame based on the remaining length of at least one data packet.

[0128] The extension instruction number is used to indicate the number of operation instructions carried by the current frame extension.

[0129] If the third difference between the third length of k operation instructions and the remaining length of at least one data packet is not greater than zero, and the difference between the fourth length of k+1 operation instructions and the remaining length of at least one data packet is greater than zero, then the number of extended instructions in the current frame is determined to be k.

[0130] Where k is an integer not less than zero, the k operation instructions are the k operation instructions received in step 510 excluding the operation instructions already inserted into the current frame, and the k+1 operation instructions are the k+1 operation instructions received in step 510 excluding the operation instructions already inserted into the current frame.

[0131] In summary, the method provided in this embodiment calculates the number of extended instructions that can be carried by at least one data packet based on the remaining length of the calculated data packet. This allows the data packet to carry not only the current frame and redundant frames, but also extended instructions dynamically. While meeting the required number of redundant frames, the current frame is dynamically extended to carry more operation instructions, supporting the server in sending more operation instructions to the client, thereby enhancing the player's gaming experience.

[0132] Figure 7 This illustration shows a flowchart of an operation instruction determination method during frame synchronization provided in an exemplary embodiment of this application. This embodiment uses this method... Figure 4 The server 420 shown is used as an example. The method includes at least some of the following steps:

[0133] Step 710: Frame cutting;

[0134] The server retrieves and saves the action commands of all players within the battlefield (or match, or field of vision) within a unit of time (which can also be understood as a time slice). The method for retrieving action commands can be as follows: Figure 1 As shown in steps 101 and 102, the client sends the operation instructions to the server in the frame data (or frame message), and the server saves the obtained operation instructions to form a frame data storage queue.

[0135] A queue is an ordered list, which can be implemented using an array or a linked list, forming a sequential queue or a linked queue. A data storage queue is a linear storage structure with strict requirements for data storage and retrieval, adhering to the First-In-First-Out (FIFO) principle; that is, data added to the queue earlier must be retrieved first, and data added later must be retrieved last. Elements in a data storage queue are called data elements. Each data element in a data storage queue has a unique index, which can also be understood as a number or subscript.

[0136] When using an array to access frame data elements in this application, the space allocated by the array (such as memory) can be imagined as a circular space connected end to end, forming a circular frame data storage queue. It should be understood that although the circular frame data storage queue is logically circular, it is still a fixed-length array physically. This application uses a circular frame data storage queue as an example for illustrative purposes, but it does not imply any limitation on the logical structure of the frame data storage queue.

[0137] As mentioned earlier, the server logically divides the set of player actions within a unit of time into logical frames, an action known as frame cutting.

[0138] When the frame-slicing time is reached, for example Figure 1 During the Nth clock interrupt, N+1th clock interrupt, and other times, the server merges and saves all player operation commands obtained within a unit of time, and assigns a frame number to each logical frame. For ease of explanation, the logical frame formed after the most recent frame cut is called the current frame.

[0139] Step 720: Calculate the current frame length and the number of fragments;

[0140] In related technologies, when a frame is too long and the transmission speed is too slow, the probability of interference or errors during transmission increases. Therefore, a long frame is usually divided into several smaller segments for transmission, that is, a long frame is divided into several small (i.e., short) frames, and data is transmitted through these small frames. Because each small frame is short, errors or interference are less likely to occur during transmission. This technique is called frame fragmentation, and the resulting small frames are called fragments. Each fragment from the same long frame has the same frame number and a different fragment number, used to identify different fragments belonging to the same long frame.

[0141] The server calculates the size of the current frame (i.e., its length) after frame segmentation and determines whether to use frame fragmentation techniques to obtain the number of fragments for the current frame, depending on the specific circumstances. For example, the server compresses the lengths of all instructions within the current frame and then sums them to obtain the current frame length. If the calculated current frame length exceeds a predetermined threshold, frame fragmentation techniques are used to determine the number of fragments for the current frame, such as dividing the current frame into two fragments.

[0142] Step 730: Insert the frame attribute information of the current frame into the data storage queue;

[0143] The server assigns a unique index (or subscript, or number) to each operation instruction obtained within the current frame. This index can be called the operation index, the instruction index, or the operation instruction index.

[0144] The index of the first operation instruction in the current frame, that is, the index of the operation instruction at the head of the frame data storage queue in the current frame, is called the start operation index. The index of the last operation instruction in the current frame, that is, the index of the operation instruction at the tail of the frame data storage queue in the current frame, is called the end operation index.

[0145] The server inserts the frame attribute information of the current frame into the frame data storage queue to update the frame data storage queue. The frame attribute information of the current frame includes at least one of the following: the frame sequence number of the current frame, the start operation index of the current frame, the end operation index of the current frame, the size of the current frame, and the number of fragments of the current frame.

[0146] Step 740: Obtain the first redundancy window value and the maximum redundancy window value;

[0147] The size of the redundancy window can be understood as the number of frames that the server needs to send to the client via data packets.

[0148] The server calculates the redundancy window value for all players in the battlefield (or match, or field of vision) based on network parameters such as packet loss rate and latency. The largest redundancy window value among all players is called the maximum redundancy window value. The maximum redundancy window value can also be understood as the number of frames that the player with the worst network in the battlefield (or match, or field of vision) needs to receive from the server.

[0149] The server can determine the second length of the redundant frames based on the maximum redundancy window value. In other words, the server determines the total length of the redundant frames required by all clients in the battlefield (or game, or field of vision) based on the player with the worst network in the battlefield (or game, or field of vision).

[0150] The first redundant window value is the redundant window value corresponding to the client used by the first player. The first player can be any player among all players in the battlefield (or game, or field of vision).

[0151] The server can determine the length of the first redundant frame based on the first redundancy window value. In other words, the server determines the length of the redundant frame that needs to be sent to the first player based on the network parameters of the first player in the room.

[0152] Step 750: Pre-calculate the packet size and expand the number of instructions in the current frame;

[0153] The number of instructions in the current frame is the number of operation instructions that can be carried in the current frame.

[0154] A data packet refers to a data packet that the server is about to send to the client. The steps for pre-calculating the size of the data packet are as follows:

[0155] Assume a single data packet has a fixed length of 1 / 2. ;in, This represents the maximum packet length (e.g., 572 bytes). The maximum packet length can be configured, specified by the protocol, or the maximum data packet length supported by the physical layer. This represents the length of the packet header.

[0156] In frame-synchronized gaming technologies, frame-synchronized game rooms are typically created by the server or players. Players need to join these game rooms to start the game and achieve frame synchronization. This means that all players within the same battlefield (or match, or field of view) should be in the same frame-synchronized game room. The number of frames the server needs to send to this room via data packets, also known as the room's redundancy window value, is equal to the maximum redundancy window value among all players within the room (i.e., within the battlefield, match, or field of view). ;in, This represents the redundancy window value of the player with the worst network connection within the battlefield (or match, or field of vision), which is also the maximum redundancy window value within the battlefield (or match, or field of vision).

[0157] The formula for calculating the length of a data packet (including redundant frames) (which can also be understood as the size of the data packet) is as follows: ;in, This indicates the second length of the redundant frame. Indicates the length of the current frame. This indicates the length of a single redundant frame. The second length of the redundant frame refers to the total length of the redundant frames corresponding to the maximum redundancy window value, which is the total length of the redundant frames calculated based on the network parameters of the player with the worst network in the room (i.e., within the battlefield, the match, or the field of vision).

[0158] like > If the data packet has remaining length, it means that there are more operation instructions that can be carried, and the number of instructions carried in the current frame can be dynamically expanded.

[0159] In some embodiments, if the third difference between the third length of the k operation instructions (i.e., the length of the k operation instructions after compression and summation) and the remaining length of at least one data packet is not greater than zero, and the difference between the fourth length of the k+1 operation instructions (i.e., the length of the k+1 operation instructions after compression and summation) and the remaining length of at least one data packet is greater than zero, the number of extended instructions in the current frame is determined to be k, that is, the remaining length in at least one data packet can be used to carry k extended instructions.

[0160] Taking the server sending at least one data packet to the first player as an example, the specific number of extended instructions that can be carried in the data packet sent to the first player in the current frame needs to be discussed in at least the following three scenarios:

[0161] Scenario 1: No subcontracting scenario;

[0162] This can also be called a fragment-free scenario, referring to a scenario where the current frame does not need to use frame fragmentation technology, or where the data packet does not need to be divided into several small data packets for transmission. In other words, at least one data packet sent by the server is a single data packet.

[0163] In scenario 1, such as Figure 8 As shown, a single data packet has a fixed length. Subtracting the pre-calculated current frame length and the redundant frame length gives the remaining length of the data packet, which is the space available in the data packet sent within the current frame for dynamically expanding the number of operation instructions.

[0164] If the data packet contains redundant frames, for example, if the length of the first redundant frame calculated based on the first redundancy window value is greater than 0, then the remaining length of the data packet is equal to the difference between the fixed length of a single data packet and the first length of the current frame, and the second length of the redundant frame. That is, the remaining length of the data packet = .

[0165] Since it is the current frame, not the redundant frame, that needs to expand the number of operation instructions, the position of the redundant frame in memory needs to be shifted forward when calculating the remaining length. Therefore, the remaining length of the data packet is located between the current frame and the redundant frame within the data packet.

[0166] If the data packet does not contain redundant frames, for example, if the length of the first redundant frame calculated based on the first redundancy window value is equal to 0, then the remaining length of the data packet is equal to the difference between the fixed length of a single data packet and the first length of the current frame, i.e., the remaining length of the data packet = The remaining length of the data packet is located after the current frame within the data packet.

[0167] Based on the calculated remaining length of the data packet, the server incorporates any operation instructions not inserted into the current frame into the remaining length in the order they arrived at the server, thus obtaining the additional operations for the current frame, or the extended instruction count for the current frame. The operation instructions not inserted into the current frame are those received by the server from the player within a unit of time, which, due to the fixed number of operation instructions carried per frame, were not inserted into the current frame's operation instructions (some or all).

[0168] Scenario 2: A scenario with sub-packages but no redundancy;

[0169] This can also be described as a scenario with fragmentation but no redundant frames, referring to a situation where the current frame needs to use frame fragmentation technology, but the data packet does not include redundant frames. For example, if the first redundancy window value is 1, then the data packet sent in the current frame only needs to carry one frame of the current frame, and does not need to carry redundant frames.

[0170] If the first difference between the first length of the current frame and the fixed length of n individual data packets is greater than zero, and the second difference between the first length of the current frame and the fixed length of n+1 individual data packets is less than zero, then at least one data packet is determined to be n+1 data packets. That is, the data packets sent within the current frame are divided into n+1 data packets for transmission.

[0171] The absolute value of the difference between the first length of the current frame and the second fixed length of the n+1 single data packets is determined as the remaining length of the n+1th data packet.

[0172] Taking the division of the current frame into two fragments as an example, the two fragments are carried in two separate data packets. The data packet carrying the first fragment of the current frame is called the first fragment data packet, and the data packet carrying the second fragment of the current frame is called the second fragment data packet. In other words, at least one data packet sent by the server consists of two data packets: the first fragment data packet and the second fragment data packet.

[0173] Therefore, the remaining length of the second fragment data packet is equal to the absolute value of the difference between the first length of the current frame and the second fixed length of the two data packets. In other words, the remaining length of at least one data packet is equal to the fixed length of the second fragment data packet. Subtract the length of the second slice of the current frame That is, the remaining length = ,like Figure 9 As shown. The remaining length of the second fragment data packet is located within the second fragment data packet, after the current frame.

[0174] The server calculates the remaining length of at least one data packet and then incorporates any operation instructions not inserted into the current frame into the remaining length in the order they arrived at the server, thus obtaining the additional operations for the current frame, or the extended instruction count for the current frame. The operation instructions not inserted into the current frame are those received by the server from the player within a unit of time, which, due to the fixed number of operation instructions carried per frame, were not inserted into the current frame's operation instructions (some or all).

[0175] Scenario 3: Scenarios with sub-packages and redundancy.

[0176] This can also be referred to as a scenario with fragmentation and redundant frames, meaning that the current frame needs to use frame fragmentation technology, and the data packet includes redundant frames. For example, if the first redundancy window value is 2, then the data packet sent in the current frame needs to carry 1 current frame and 1 redundant frame.

[0177] If the sum of the first length of the current frame and the second length of the redundant frame differs from the fixed length of n single data packets by a first value greater than zero, and the sum of the first length of the current frame and the second length of the redundant frame differs from the fixed length of n+1 single data packets by a second value less than zero, then at least one data packet is determined to be n+1 data packets. That is, the data packets sent within the current frame are divided into n+1 data packets for transmission.

[0178] The absolute value of the difference between the sum of the first length of the current frame and the second length of the redundant frame and the second difference between the fixed length of the n+1 single data packets is determined as the remaining length of the n+1th data packet.

[0179] Since the current frame, not the redundant frame, needs to be extended, the position of the redundant frame in memory needs to be shifted forward when calculating the remaining length. Therefore, the remaining length of the (n+1)th data packet is located between the current frame and the redundant frame within the (n+1)th data packet.

[0180] Taking the division of the current frame and redundant frames into two fragments as an example, the two fragments are carried in two separate data packets. The data packet carrying the first fragment of the current frame is called the first fragment data packet, and the data packet carrying the second fragment of the current frame is called the second fragment data packet. In other words, at least one data packet sent by the server consists of two data packets: the first fragment data packet and the second fragment data packet.

[0181] Therefore, the remaining length of the second fragment data packet is equal to the absolute value of the sum of the first length of the current frame and the second length of the redundant frame, and the second difference between the fixed lengths of the two data packets. In other words, the remaining length of at least one data packet is equal to the fixed length of the second fragment data packet. Subtract the length of the second slice of the current frame And subtract the second length of redundant frames That is, the remaining length = ,like Figure 10 As shown. The remaining length of the second fragment data packet is located within the second fragment data packet, between the current frame and the redundant frame.

[0182] The server calculates the remaining length of at least one data packet and then incorporates any operation instructions not inserted into the current frame into the remaining length in the order they arrived at the server, thus obtaining the additional operations for the current frame, or the extended instruction count for the current frame. The operation instructions not inserted into the current frame are those received by the server from the player within a unit of time, which, due to the fixed number of operation instructions carried per frame, were not inserted into the current frame's operation instructions (some or all).

[0183] Step 760: Modify the frame attribute information of the current frame;

[0184] The server modifies the frame attribute information of the current frame based on at least one of the pre-calculated data packet size, the number of fragments in the current frame, the number of extension instructions in the current frame, and the operation instruction index of the extension instructions in the current frame.

[0185] Step 770: Calculate the second length of the redundant frame;

[0186] The server determines the second length of the redundant frames based on the maximum redundancy window value. In other words, the server determines the total length of the redundant frames required in the battlefield (or game, or field of vision) based on the player with the worst network in that battlefield (or game, or field of vision).

[0187] Step 780: Calculate the first redundancy window value and trim redundant frames;

[0188] When the server sends a data packet to the client corresponding to the first player, it trims the second length of the redundant frame obtained based on the maximum redundancy window value to the first redundant frame length, according to the first player's first redundancy window value. This step can also be understood as the server sending the required redundant frame length to the player based on the actual network conditions of each player, avoiding sending unnecessary redundant frames and reducing bandwidth consumption.

[0189] For example, the server determines the second length of the redundant frame to be 4 based on the maximum redundancy window value, and the first length of the redundant frame to be 2 based on the first redundancy window value. This means that the player with the worst network in the room needs 4 redundant frames, while the first player needs 2 redundant frames.

[0190] Therefore, when the server sends a data packet to the first player, it trims the total length of the 4 redundant frames into 2 redundant frames. That is, based on the time the frame data arrives at the server, from the 3 redundant frames preceding the current frame, a frame of length 1 is selected as the first player's redundant frame. This can also be understood as discarding the first two redundant frames in order.

[0191] For example, the redundant frame pruning process is as follows: Figure 3 As shown.

[0192] Step 790: Send data packet.

[0193] The server sends data packets with redundant frames trimmed to the corresponding clients of each player in the room. For example, the server combines the current frame, the current frame's extension instructions, and the trimmed first redundant frame to form the first data packet, which is then sent to the first player.

[0194] For example, the server combines the current frame (length 30), the extended instructions of the current frame (length 2), and a redundant frame (length 1) into a first data packet, and sends this first data packet to the first client used by the first player. The server then combines the current frame (length 30), the extended instructions of the current frame (length 2), and a redundant frame (length 3) into a second data packet, and sends this second data packet to the second client with the worst network connection within the battlefield (or match, or field of vision).

[0195] In summary, the method provided in this embodiment calculates the number of extended instructions that can be carried by at least one data packet based on the remaining length of the calculated data packet. This allows the data packet to carry not only the current frame and redundant frames, but also extended instructions dynamically. While meeting the required number of redundant frames, the current frame is dynamically extended to carry more operation instructions, supporting the server in sending more operation instructions to the client, thereby enhancing the player's gaming experience.

[0196] Figure 11 This illustration shows a schematic diagram of an operation instruction determination method during frame synchronization provided in an exemplary embodiment of this application. This embodiment uses this method... Figure 4 The computer system 400 shown is used as an example to illustrate this.

[0197] Terminals 101, 102, and 103 send uplink frame data to server 104, and send a total of 35 operation commands to server 104 within a unit of time.

[0198] The fixed number of operation instructions carried per frame is set to 30. Therefore, server 104 inserts the first 30 operation instructions arriving at the server out of the 35 operation instructions into the current frame. The first length of the current frame is the sum of the lengths of these 30 operation instructions after compression, assuming the first length of the current frame is 30.

[0199] Based on the network parameters between terminals 101, 102, and 103 and server 104, server 104 determines that terminal 102 has the worst network condition among terminals 101, 102, and 103. The redundancy window value of terminal 102 is 3, which means that the maximum redundancy window value among terminals 101, 102, and 103 is 3, and the second length of the required redundant frames is 2.

[0200] The fixed length of a single data packet is set to 34. Therefore, the downlink data packet sent by server 104 to the terminal still has remaining length, which is 34 - 30 - 2 = 2.

[0201] The server inserts the 5 operation instructions that were not inserted into the current frame out of the 35 operation instructions into the remaining length in the order they arrived at server 104. Since the remaining length is 2, the first 2 operation instructions out of the 5 operation instructions can be inserted to extend the remaining length.

[0202] Therefore, the downlink data packet sent by server 104 to terminal 102, which has the worst network condition among terminals 101, 102 and 103, includes a current frame carrying 30 operation instructions, two extended instructions for the current frame, and two redundant frames.

[0203] The downlink data packets sent by server 104 to terminals 101 and 102 include a current frame carrying 30 operation instructions and two extended instructions for the current frame. Whether redundant frames are included and the length of the included redundant frames need to be trimmed according to the actual network parameters of terminals 101 and 102.

[0204] Figure 12 This illustration shows a flowchart of an operation instruction determination method during frame synchronization provided in an exemplary embodiment of this application. This embodiment uses this method... Figure 4 The terminal shown is used as an example for illustration. The method includes at least some of the following steps:

[0205] Step 121: Send operation instructions to the server;

[0206] The terminal recognizes player actions, such as in-game movements or mechanics, and generates a control command. This command may include the index, number, or subscript of the action. The terminal then sends this control command to the server.

[0207] In some embodiments, if the player does not perform any operation within a unit of time, or if the player does not take any action in the game, then the terminal will not send any operation instructions to the server within that unit of time.

[0208] Step 123: Receive at least one data packet sent by the server;

[0209] At least one data packet is used to carry the current frame and a redundant frame. The number of operation instructions carried in the current frame within this at least one data packet is greater than or equal to the fixed number of operation instructions carried in a single frame. The redundant frame is the frame preceding the current frame.

[0210] For example, if the fixed number of operation instructions carried in a single frame is set to 30, and the number of operation instructions carried in the current frame of at least one data packet received by the terminal is greater than 30, then the part exceeding the fixed number of operation instructions carried in a single frame is the extended operation instruction; if the number of operation instructions carried in the current frame of at least one data packet received by the terminal is equal to 30, then at least one data packet does not carry any extended operation instructions.

[0211] Step 125: Logically process at least one received data packet.

[0212] After logically processing at least one data packet, the visual effect of the operation instructions carried in the at least one data packet is displayed on the terminal, such as rendering the operation instructions carried in the at least one data packet in sequence and then displaying the animation effect.

[0213] In summary, the method provided in this embodiment determines the current frame and redundant frames based on at least one received data packet. Under the premise of meeting the required number of redundant frames, since the number of operation instructions carried in the current frame is greater than the fixed number of operation instructions carried in a single frame, the terminal obtains more operation instructions per unit time, thereby improving the player's gaming experience.

[0214] Figure 13 This illustration shows a schematic diagram of an operation instruction determination device during frame synchronization provided in an exemplary embodiment of this application. The device includes at least some of the following modules: a first receiving module 132, a determining module 134, and a first transmitting module 136.

[0215] The first receiving module 132 is used to receive operation instructions sent by at least one of at least two clients;

[0216] The determining module 134 is used to determine the first length of the current frame based on the fixed number of operation instructions carried in a single frame; and to determine the second length of a redundant frame based on the network parameters between the server and the at least two clients, wherein the redundant frame is a frame preceding the current frame.

[0217] Based on the fixed length of a single data packet, the first length, and the second length, the remaining length of at least one data packet is obtained; the at least one data packet is used to carry the current frame and the redundant frame;

[0218] The number of extension instructions for the current frame is determined based on the remaining length of the at least one data packet, the number of extension instructions indicating the number of operation instructions carried in the extension of the current frame.

[0219] In some embodiments, the determining module 134 is further configured to determine the at least one data packet as a data packet if the sum of the first length and the second length is not greater than the fixed length;

[0220] The remaining length of the single data packet is determined by subtracting the first length and the second length from the fixed length of the single data packet.

[0221] In some embodiments, the remaining length of a data packet is located between the current frame and the redundant frame within the data packet.

[0222] In some embodiments, the determining module 134 is further configured to determine that the at least one data packet is n+1 data packets when the first difference between the sum of the first length and the second length and the fixed length of n single data packets is greater than zero, and the second difference between the sum of the first length and the second length and the fixed length of n+1 single data packets is less than zero.

[0223] The absolute value of the second difference is determined as the remaining length of the (n+1)th data packet;

[0224] Where n is a positive integer.

[0225] In some embodiments, the (n+1)th data packet does not carry the operation instructions for the current frame, and the remaining length of the (n+1)th data packet is located before the redundant frame within the (n+1)th data packet; or,

[0226] The (n+1)th data packet carries the operation instructions of the current frame, and the remaining length of the (n+1)th data packet is located between the current frame and the redundant frame.

[0227] In some embodiments, the determining module 134 is further configured to determine the number of extended instructions in the current frame as k when the third difference between the third length of the k operation instructions and the remaining length of the at least one data packet is not greater than zero, and the difference between the fourth length of the k+1 operation instructions and the remaining length of the at least one data packet is greater than zero.

[0228] Wherein, k is an integer not less than zero, the k operation instructions are the k operation instructions other than the operation instructions of the current frame, and the k+1 operation instructions are the k+1 operation instructions other than the operation instructions of the current frame.

[0229] In some embodiments, the determining module 134 is further configured to obtain the maximum redundancy window value based on the network parameters between the server and the at least two clients;

[0230] The second length of the redundant frame is determined based on the maximum redundancy window value.

[0231] In some embodiments, the determining module 134 is further configured to determine, based on the network parameters between the server and the at least two clients, the first client as the client with the worst network condition among the at least two clients;

[0232] The maximum redundancy window value is obtained based on the network parameters between the server and the first client.

[0233] The first sending module 136 is used to send at least one data packet to at least two clients.

[0234] In summary, the device provided in this embodiment calculates the number of extended instructions that can be carried in at least one data packet based on the remaining length of the calculated data packet. This allows the data packet to carry not only the current frame and redundant frames, but also extended instructions dynamically. While meeting the required number of redundant frames, the current frame is dynamically extended to carry more operation instructions, supporting the server in sending more operation instructions to the client, thereby enhancing the player's gaming experience.

[0235] Figure 14 This illustration shows a schematic diagram of an operation instruction determination apparatus during frame synchronization provided in an exemplary embodiment of this application. The apparatus includes at least some of the following modules: a second transmitting module 142, a second receiving module 144, and a processing module 146.

[0236] The second receiving module 144 is used to receive at least one data packet sent by the server, the at least one data packet being used to carry the current frame and redundant frames;

[0237] The number of operation instructions carried in the current frame is greater than the fixed number of operation instructions carried in a single frame; the redundant frame is the frame preceding the current frame.

[0238] The second sending module 142 is used to send operation instructions to the server.

[0239] The processing module 146 is used to perform logical processing on the at least one data packet sent by the server.

[0240] In summary, the device provided in this embodiment determines the current frame and redundant frames based on at least one received data packet. Under the premise of meeting the required number of redundant frames, since the number of operation instructions carried in the current frame is greater than the fixed number of operation instructions carried in a single frame, the terminal obtains more operation instructions per unit time, thereby improving the player's gaming experience.

[0241] It should be noted that the above embodiments only illustrate the division of functional modules during frame synchronization. In practical applications, the functions described above can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. For details of the specific implementation process, please refer to the method embodiments, which will not be repeated here.

[0242] Figure 15 A structural block diagram of a terminal 1500 provided in an exemplary embodiment of this application is shown. The terminal 1500 may be at least one of a smartphone, tablet computer, e-book reader, laptop computer, desktop computer, television, AR terminal, VR terminal, MR terminal, and XR terminal. The terminal 1500 may also be referred to as user equipment, portable terminal, laptop terminal, desktop terminal, or other names.

[0243] Typically, terminal 1500 includes a processor 1501 and a memory 1502.

[0244] Processor 1501 may include one or more processing cores, such as a quad-core processor, an octa-core processor, etc. Processor 1501 may be implemented using at least one hardware form selected from DSP (Digital Signal Processing), FPGA (Field-Programmable Gate Array), and PLA (Programmable Logic Array). Processor 1501 may also include a main processor and a coprocessor. The main processor, also known as the CPU, is used to process data in the wake-up state; the coprocessor is a low-power processor used to process data in the standby state. In some embodiments, processor 1501 may integrate a GPU (Graphics Processing Unit), which is responsible for rendering and drawing the content to be displayed on the screen. In some embodiments, processor 1501 may also include an AR processor for handling computational operations related to augmented reality. In some embodiments, processor 1501 may also include an AI (Artificial Intelligence) processor for handling computational operations related to machine learning.

[0245] The memory 1502 may include one or more computer-readable storage media, which may be non-transitory. The memory 1502 may also include high-speed random access memory and non-volatile memory, such as one or more disk storage devices or flash memory devices. In some embodiments, the non-transitory computer-readable storage media in the memory 1502 is used to store at least one instruction, which is executed by the processor 1501 to implement the operation instruction determination method during frame synchronization provided in the method embodiments of this application.

[0246] In some embodiments, the terminal 1500 may also optionally include a peripheral device interface 1503 and at least one peripheral device. The processor 1501, memory 1502, and peripheral device interface 1503 can be connected via a bus or signal line. Each peripheral device can be connected to the peripheral device interface 1503 via a bus, signal line, or circuit board. Specifically, the peripheral device may include at least one of the following: a radio frequency circuit 1504, a display screen 1505, a camera assembly 1506, an audio circuit 1507, and a power supply 1508.

[0247] Peripheral device interface 1503 can be used to connect at least one I / O (Input / Output) related peripheral device to processor 1501 and memory 1502. In some embodiments, processor 1501, memory 1502 and peripheral device interface 1503 are integrated on the same chip or circuit board; in some other embodiments, any one or two of processor 1501, memory 1502 and peripheral device interface 1503 can be implemented on separate chips or circuit boards, which is not limited in this embodiment.

[0248] The radio frequency (RF) circuit 1504 is used to receive and transmit RF (Radio Frequency) signals, also known as electromagnetic signals. The RF circuit 1504 communicates with communication networks and other communication devices via electromagnetic signals. The RF circuit 1504 converts electrical signals into electromagnetic signals for transmission, or converts received electromagnetic signals back into electrical signals. Optionally, the RF circuit 1504 includes: an antenna system, an RF transceiver, one or more amplifiers, a tuner, an oscillator, a digital signal processor, a codec chipset, a user identity module card, etc. The RF circuit 1504 can communicate with other terminals through at least one wireless communication protocol. This wireless communication protocol includes, but is not limited to: the World Wide Web, metropolitan area networks, intranets, various generations of mobile communication networks (2G, 3G, 4G, and 5G), wireless local area networks, and / or WiFi (Wireless Fidelity) networks. In some embodiments, the RF circuit 1504 may also include circuitry related to NFC (Near Field Communication), which is not limited in this application.

[0249] Display screen 1505 is used to display a UI (User Interface). This UI may include graphics, text, icons, videos, and any combination thereof. When display screen 1505 is a touch display screen, it also has the ability to collect touch signals on or above its surface. These touch signals can be input as control signals to processor 1501 for processing. In this case, display screen 1505 can also be used to provide virtual buttons and / or a virtual keyboard, also known as soft buttons and / or a soft keyboard. In some embodiments, there may be one display screen 1505, which serves as the front panel of terminal 1500; in other embodiments, there may be at least two display screens, respectively disposed on different surfaces of terminal 1500 or in a folded design; in still other embodiments, display screen 1505 may be a flexible display screen, disposed on a curved or folded surface of terminal 1500. Furthermore, display screen 1505 may also be configured as a non-rectangular, irregular shape, i.e., a non-rectangular screen. The display screen 1505 can be made of materials such as LCD (Liquid Crystal Display) and OLED (Organic Light-Emitting Diode).

[0250] The camera assembly 1506 is used to acquire images or videos. Optionally, the camera assembly 1506 includes a front-facing camera and a rear-facing camera. Typically, the front-facing camera is located on the front panel of the terminal, and the rear-facing camera is located on the back of the terminal. In some embodiments, there are at least two rear-facing cameras, which are any one of a main camera, a depth-sensing camera, a wide-angle camera, and a telephoto camera, to achieve background blurring by fusion of the main camera and the depth-sensing camera, panoramic shooting by fusion of the main camera and the wide-angle camera, VR (Virtual Reality) shooting, or other fusion shooting functions. In some embodiments, the camera assembly 1506 may also include a flash. The flash can be a single-color temperature flash or a dual-color temperature flash. A dual-color temperature flash refers to a combination of a warm-light flash and a cool-light flash, which can be used for light compensation at different color temperatures.

[0251] The audio circuit 1507 may include a microphone and a speaker. The microphone is used to collect sound waves from the user and the environment, converting the sound waves into electrical signals that are input to the processor 1501 for processing, or input to the radio frequency circuit 1504 for voice communication. For stereo sound acquisition or noise reduction purposes, multiple microphones may be used, each positioned at a different location on the terminal 1500. The microphone may also be an array microphone or an omnidirectional microphone. The speaker is used to convert electrical signals from the processor 1501 or the radio frequency circuit 1504 into sound waves. The speaker may be a conventional diaphragm speaker or a piezoelectric ceramic speaker. When the speaker is a piezoelectric ceramic speaker, it can convert electrical signals not only into audible sound waves but also into inaudible sound waves for purposes such as distance measurement. In some embodiments, the audio circuit 1507 may also include a headphone jack.

[0252] Power supply 1508 is used to power the various components in terminal 1500. Power supply 1508 can be AC ​​power, DC power, a disposable battery, or a rechargeable battery. When power supply 1508 includes a rechargeable battery, the rechargeable battery can be a wired rechargeable battery or a wireless rechargeable battery. A wired rechargeable battery is a battery that is charged via a wired line, and a wireless rechargeable battery is a battery that is charged via a wireless coil. The rechargeable battery can also be used to support fast charging technology.

[0253] In some embodiments, the terminal 1500 further includes one or more sensors 1509. The one or more sensors 1509 include, but are not limited to: an accelerometer 1510, a gyroscope 1511, a pressure sensor 1512, an optical sensor 1513, and a proximity sensor 1514.

[0254] Accelerometer 1510 can detect the magnitude of acceleration along the three axes of a coordinate system established by terminal 1500. For example, accelerometer 1510 can be used to detect the components of gravitational acceleration along the three axes. Processor 1501 can control display screen 1505 to display the user interface in either a landscape or portrait view based on the gravitational acceleration signal acquired by accelerometer 1510. Accelerometer 1510 can also be used for games or for acquiring user motion data.

[0255] The gyroscope sensor 1511 can detect the orientation and rotation angle of the terminal 1500. The gyroscope sensor 1511 can work in conjunction with the accelerometer sensor 1511 to collect 3D motion data from the user on the terminal 1500. Based on the data collected by the gyroscope sensor 1511, the processor 1501 can perform the following functions: motion sensing (e.g., changing the UI based on the user's tilt), image stabilization during shooting, game control, and inertial navigation.

[0256] The pressure sensor 1512 can be disposed on the side bezel of the terminal 1500 and / or on the lower layer of the display screen 1505. When the pressure sensor 1512 is disposed on the side bezel of the terminal 1500, it can detect the user's grip signal on the terminal 1500, and the processor 1501 can perform left / right hand recognition or quick operation based on the grip signal collected by the pressure sensor 1512. When the pressure sensor 1512 is disposed on the lower layer of the display screen 1505, the processor 1501 can control the operable controls on the UI interface based on the user's pressure operation on the display screen 1505. The operable controls include at least one of button controls, scroll bar controls, icon controls, and menu controls.

[0257] Optical sensor 1513 is used to collect ambient light intensity. In one embodiment, processor 1501 can control the display brightness of display screen 1505 based on the ambient light intensity collected by optical sensor 1513. Specifically, when the ambient light intensity is high, the display brightness of display screen 1505 is increased; when the ambient light intensity is low, the display brightness of display screen 1505 is decreased. In another embodiment, processor 1501 can also dynamically adjust the shooting parameters of camera assembly 1506 based on the ambient light intensity collected by optical sensor 1513.

[0258] The proximity sensor 1514, also known as a distance sensor, is typically located on the front panel of the terminal 1500. The proximity sensor 1514 is used to detect the distance between the user and the front of the terminal 1500. In one embodiment, when the proximity sensor 1514 detects that the distance between the user and the front of the terminal 1500 is gradually decreasing, the processor 1501 controls the display screen 1505 to switch from a screen-on state to a screen-off state; when the proximity sensor 1514 detects that the distance between the user and the front of the terminal 1500 is gradually increasing, the processor 1501 controls the display screen 1505 to switch from a screen-off state to a screen-on state.

[0259] The memory further includes one or more programs stored in the memory, and the one or more programs include a method for determining operation instructions during frame synchronization provided in the embodiments of this application.

[0260] Those skilled in the art will understand that Figure 15 The structure shown does not constitute a limitation on terminal 1500 and may include more or fewer components than shown, or combine certain components, or use different component arrangements.

[0261] Figure 16 A structural block diagram of a server 1600 provided in an exemplary embodiment of this application is shown.

[0262] Typically, server 1600 includes a processor 1601 and memory 1602.

[0263] Processor 1601 may include one or more processing cores, such as a quad-core processor or an octa-core processor. Processor 1601 may be implemented using at least one of the following hardware methods: Digital Signal Processing (DSP), Field-Programmable Gate Array (FPGA), or Programmable Logic Array (PLA). Processor 1601 may also include a main processor and coprocessors. The main processor, also known as the Central Processing Unit (CPU), is used to process data in the wake-up state; the coprocessors are low-power processors used to process data in the standby state.

[0264] In some embodiments, processor 1601 may integrate a graphics processing unit (GPU) for rendering and drawing the content to be displayed on the screen. In some embodiments, processor 1601 may also include an artificial intelligence (AI) processor for handling computational operations related to machine learning.

[0265] The memory 1602 may include one or more computer-readable storage media, which may be non-transitory. The memory 1602 may also include high-speed random access memory and non-volatile memory, such as one or more disk storage devices or flash memory devices. In some embodiments, the non-transitory computer-readable storage media in the memory 1602 is used to store at least one instruction, which is executed by the processor 1601 to implement the operation instruction determination method during frame synchronization provided in the method embodiments of this application.

[0266] In some embodiments, server 1600 may optionally include an input interface 1603 and an output interface 1604. Processor 1601, memory 1602, and input interfaces 1603 and 1604 can be connected via a bus or signal lines. Various peripheral devices can be connected to input interfaces 1603 and 1604 via a bus, signal lines, or a circuit board. Input interfaces 1603 and 1604 can be used to connect at least one input / output (I / O) related peripheral device to processor 1601 and memory 1602. In some embodiments, processor 1601, memory 1602, and input interfaces 1603 and 1604 are integrated on the same chip or circuit board; in some other embodiments, any one or two of processor 1601, memory 1602, and input interfaces 1603 and 1604 can be implemented on separate chips or circuit boards, and this application does not limit this aspect.

[0267] Those skilled in the art will understand that the structure shown above does not constitute a limitation on server 1600, and may include more or fewer components than shown, or combine certain components, or employ different component arrangements.

[0268] In an exemplary embodiment, a chip is also provided, the chip including programmable logic circuits and / or program instructions, and a server or terminal on which the chip is installed is used to implement the operation instruction determination method during frame synchronization as described above.

[0269] In an exemplary embodiment, a computer-readable storage medium is also provided, wherein at least one program is stored therein, which, when executed by a processor, is used to implement the operation instruction determination method during frame synchronization as described above. Optionally, the computer-readable storage medium may be ROM (Read-Only Memory), RAM (Random Access Memory), CD-ROM (Compact Disc Read-Only Memory), magnetic tape, floppy disk, and optical data storage device, etc.

[0270] In an exemplary embodiment, a computer program product is also provided, which includes a computer program stored in a computer-readable storage medium. A processor reads the computer program from the computer-readable storage medium and executes the computer program to implement the operation instruction determination method during frame synchronization as described above.

Claims

1. A method for determining operation instructions during frame synchronization, characterized in that, The method is executed by a server, the server being connected to at least two clients, the method comprising: Receive operation instructions sent by at least one of the at least two clients; The first length of the current frame is determined based on the fixed number of operation instructions carried in a single frame; and the second length of the redundant frame is determined based on the network parameters between the server and the at least two clients, wherein the redundant frame is a frame preceding the current frame. Based on the fixed length of a single data packet, the first length, and the second length, the remaining length of at least one data packet is obtained; the at least one data packet is used to carry the current frame and the redundant frame; The number of extension instructions for the current frame is determined based on the remaining length of the at least one data packet, the number of extension instructions indicating the number of operation instructions carried in the extension of the current frame.

2. The method according to claim 1, characterized in that, The step of obtaining the remaining length of at least one data packet based on the fixed length of a single data packet, the first length, and the second length includes: If the sum of the first length and the second length is not greater than the fixed length, the at least one data packet is determined to be a single data packet. The remaining length of the single data packet is determined by subtracting the first length and the second length from the fixed length of the single data packet.

3. The method according to claim 2, characterized in that, The remaining length of a data packet is located within the data packet between the current frame and the redundant frame.

4. The method according to claim 1, characterized in that, The step of obtaining the remaining length of at least one data packet based on the fixed length of a single data packet, the first length, and the second length includes: If the first difference between the sum of the first length and the second length and the fixed length of n single data packets is greater than zero, and the second difference between the sum of the first length and the second length and the fixed length of n+1 single data packets is less than zero, then the at least one data packet is determined to be n+1 data packets. The absolute value of the second difference is determined as the remaining length of the (n+1)th data packet; Where n is a positive integer.

5. The method according to claim 4, characterized in that, The (n+1)th data packet does not carry the operation instructions for the current frame, and the remaining length of the (n+1)th data packet is located before the redundant frame within the (n+1)th data packet; or, The (n+1)th data packet carries the operation instructions of the current frame, and the remaining length of the (n+1)th data packet is located between the current frame and the redundant frame.

6. The method according to any one of claims 1 to 5, characterized in that, Determining the number of extension instructions for the current frame based on the remaining length of the at least one data packet includes: If the third difference between the third length of the k operation instructions and the remaining length of the at least one data packet is not greater than zero, and the difference between the fourth length of the k+1 operation instructions and the remaining length of the at least one data packet is greater than zero, then the number of extended instructions in the current frame is determined to be k. Wherein, k is an integer not less than zero, the k operation instructions are the k operation instructions other than the operation instructions of the current frame, and the k+1 operation instructions are the k+1 operation instructions other than the operation instructions of the current frame.

7. The method according to any one of claims 1 to 6, characterized in that, Determining the second length of the redundant frame based on network parameters between the server and the at least two clients includes: Based on the network parameters between the server and the at least two clients, obtain the maximum redundancy window value; The second length of the redundant frame is determined based on the maximum redundancy window value.

8. The method according to claim 7, characterized in that, The step of obtaining the maximum redundancy window value based on the network parameters between the server and the at least two clients includes: Based on the network parameters between the server and the at least two clients, the first client is determined to be the client with the worst network condition among the at least two clients; The maximum redundancy window value is obtained based on the network parameters between the server and the first client.

9. A method for determining operation instructions during frame synchronization, characterized in that, The method is executed by the client, and the method includes: Send operation instructions to the server; Receive at least one data packet sent by the server, the at least one data packet being used to carry the current frame and redundant frames; Wherein, the number of operation instructions carried in the current frame is greater than the fixed number of operation instructions carried in a single frame; the redundant frame is the frame preceding the current frame; The length of the at least one data packet includes a first length of the current frame, a second length of the redundant frame, and a remaining length, wherein the remaining length is determined based on the fixed length of a single data packet, the first length, and the second length. The number of operation instructions carried by the current frame extension is determined based on the remaining length; The first length is determined based on the fixed number of operation instructions carried in the single frame; The second length is determined based on the network parameters between the server and the client.

10. A device for determining operation instructions during frame synchronization, characterized in that, The device includes: The first receiving module is used to receive operation instructions sent by at least one of at least two clients. The first determining module is used to determine the first length of the current frame based on the fixed number of operation instructions carried in a single frame; and to determine the second length of a redundant frame based on network parameters between the server and the at least two clients, wherein the redundant frame is a frame preceding the current frame. Based on the fixed length of a single data packet, the first length, and the second length, the remaining length of at least one data packet is obtained; the at least one data packet is used to carry the current frame and the redundant frame; The number of extension instructions for the current frame is determined based on the remaining length of the at least one data packet, the number of extension instructions indicating the number of operation instructions carried in the extension of the current frame.

11. The apparatus according to claim 10, characterized in that, The first determining module is further configured to: If the sum of the first length and the second length is not greater than the fixed length, the at least one data packet is determined to be a single data packet. The remaining length of the single data packet is determined by subtracting the first length and the second length from the fixed length of the single data packet.

12. The apparatus according to claim 11, characterized in that, The remaining length of a data packet is located within the data packet between the current frame and the redundant frame.

13. The apparatus according to claim 10, characterized in that, The first determining module is further configured to: If the first difference between the sum of the first length and the second length and the fixed length of n single data packets is greater than zero, and the second difference between the sum of the first length and the second length and the fixed length of n+1 single data packets is less than zero, then the at least one data packet is determined to be n+1 data packets. The absolute value of the second difference is determined as the remaining length of the (n+1)th data packet; Where n is a positive integer.

14. The apparatus according to claim 13, characterized in that, The (n+1)th data packet does not carry the operation instructions for the current frame, and the remaining length of the (n+1)th data packet is located before the redundant frame within the (n+1)th data packet; or, The (n+1)th data packet carries the operation instructions of the current frame, and the remaining length of the (n+1)th data packet is located between the current frame and the redundant frame.

15. The apparatus according to any one of claims 10 to 14, characterized in that, The first determining module is further configured to: If the third difference between the third length of the k operation instructions and the remaining length of the at least one data packet is not greater than zero, and the difference between the fourth length of the k+1 operation instructions and the remaining length of the at least one data packet is greater than zero, then the number of extended instructions in the current frame is determined to be k. Wherein, k is an integer not less than zero, the k operation instructions are the k operation instructions other than the operation instructions of the current frame, and the k+1 operation instructions are the k+1 operation instructions other than the operation instructions of the current frame.

16. The apparatus according to any one of claims 10 to 15, characterized in that, The first determining module is further configured to: Based on the network parameters between the server and the at least two clients, obtain the maximum redundancy window value; The second length of the redundant frame is determined based on the maximum redundancy window value.

17. The apparatus according to claim 16, characterized in that, The first determining module is further configured to: Based on the network parameters between the server and the at least two clients, the first client is determined to be the client with the worst network condition among the at least two clients; The maximum redundancy window value is obtained based on the network parameters between the server and the first client.

18. A device for determining operation instructions during frame synchronization, characterized in that, The device includes: The second sending module is used to send operation instructions to the server; The second receiving module is used to receive at least one data packet sent by the server, wherein the at least one data packet is used to carry the current frame and redundant frames; Wherein, the number of operation instructions carried in the current frame is greater than the fixed number of operation instructions carried in a single frame; the redundant frame is the frame preceding the current frame; The length of the at least one data packet includes a first length of the current frame, a second length of the redundant frame, and a remaining length, wherein the remaining length is determined based on the fixed length of a single data packet, the first length, and the second length. The number of operation instructions carried by the current frame extension is determined based on the remaining length; The first length is determined based on the fixed number of operation instructions carried in the single frame; The second length is determined based on the network parameters between the server and the client.

19. A computer device, characterized in that, The computer device includes a processor and a memory, the memory storing a computer program, the computer program being loaded and executed by the processor to implement the operation instruction determination method during frame synchronization as described in any one of claims 1 to 8 or claim 9.

20. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that is loaded and executed by a processor to implement the method for determining operation instructions during frame synchronization as described in any one of claims 1 to 8 or claim 9.

21. A computer program product, characterized in that, The computer program product stores a computer program that is loaded and executed by a processor to implement the operation instruction determination method during frame synchronization as described in any one of claims 1 to 8 or claim 9.

22. A chip, characterized in that, The chip includes programmable logic circuits and / or program instructions, and the computer device on which the chip is installed is used to implement the operation instruction determination method during frame synchronization as described in any one of claims 1 to 8 or claim 9.

Citation Information

Patent Citations

  • Information coding frame loss recovery method and device

    CN108011686A

  • Data processing method and device, storage medium, and electronic device

    WO2018223800A1