High-resolution VR cloud gaming solution and computer equipment based on distributed coding
By cutting video frames into multiple video blocks and encoding them with multiple encoders, the high latency problem caused by a single encoder is solved, and a high-quality cloud gaming experience is achieved at low latency.
Patent Information
- Application Number
- CN202210868061.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-07-21
- Publication Date
- 2025-05-23
- Estimated Expiration
- 2042-07-21
AI Technical Summary
In the prior art, when a single encoder encodes a video frame, the delay generated is large and cannot provide a better cloud gaming experience at a lower latency.
By cutting video frames into multiple video blocks and using multiple encoders to encode these video blocks separately, multiple encoders can realize coordinated encoding, thereby reducing the delay in the video frame encoding and decoding process.
Through the decentralized encoding technology, the delay in video frame encoding and decoding is significantly reduced and the user's cloud gaming experience under low latency is improved.
Smart Images

Figure CN115225902B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of video coding, and specifically to a high-resolution VR cloud gaming solution and computer equipment based on distributed coding. Background Art
[0002] With the development of science and technology, VR cloud games are gradually entering the public's field of vision. VR cloud games combine cloud computing technology to upload game content and game rendering to the cloud, effectively reducing the user's requirements for the terminal, thereby lowering the consumption threshold. Users only need to lower the cost to travel in the virtual world.
[0003] In related technologies, when the game-rendered content is sent to the user end, a single encoder is usually used to encode each video frame of the game-rendered content, and then decode and frame it, so that the user side can finally enjoy a better cloud gaming experience with 4k resolution and 120 frames.
[0004] Regarding the above-mentioned related technologies, the inventors believe that there are the following defects: when a single encoder encodes video frames, the delay generated is large, which cannot allow users to obtain a better cloud gaming experience with lower delay. Summary of the invention
[0005] In order to enable users to gain a better cloud gaming experience with lower latency, this application provides a high-resolution VR cloud gaming solution based on distributed coding.
[0006] In a first aspect of the present application, a high-resolution VR cloud gaming solution based on distributed coding is provided, which is applied to a coding end, and the method includes:
[0007] Get game video data;
[0008] Cut each video frame of the game video data to obtain a plurality of video blocks;
[0009] Using multiple encoders to encode the multiple video blocks respectively to obtain encoded data;
[0010] The encoded data is sent to a decoding end, so that the decoding end uses a decoder to decode the encoded data, obtains decoded data, and performs framing processing on the decoded data.
[0011] By adopting the above technical solution, the video frame is cut into multiple video blocks. One video block adopts one or more encoders, and multiple encoders are used to encode the video frame in the form of coordinated encoding, so that the delay in the video frame encoding and decoding process is reduced, allowing users to gain a better cloud gaming experience with lower latency.
[0012] Optionally, the using multiple encoders to encode the multiple video blocks respectively to obtain encoded data includes:
[0013] Use reinforcement learning algorithm to predict the picture complexity of the current video frame;
[0014] According to the picture complexity of the current video frame, the encoding block size encoded by each encoder is adjusted at the beginning of each gop group.
[0015] By adopting the above technical solution, if the picture complexity of the current video frame is high and the required encoding resources are large, while the encoder performance remains unchanged, the encoding block size of each encoder should be reduced at the beginning of each gop grouping to ensure the stable operation of the encoder.
[0016] Optionally, the using multiple encoders to encode the multiple video blocks respectively to obtain encoded data includes:
[0017] The edge part and non-edge part of each video frame are encoded with different encoding precisions.
[0018] By adopting the above technical solution, the non-edge part is the important part of the video frame, that is, the part of the user's central field of vision, which adopts a higher encoding accuracy. The edge part of the video frame is the part of the user's peripheral vision, and the encoding accuracy of this part does not need to be so high, thereby reducing the encoder resource consumption without affecting the user's better visual experience.
[0019] Optionally, the using multiple encoders to encode the multiple video blocks respectively to obtain encoded data includes:
[0020] Based on the texture coding method, a plurality of the video blocks are encoded by using a one-to-one corresponding encoder to obtain encoded data.
[0021] By adopting the above technical solution, the video frame data does not need to be copied from the video memory through the texture medium, and can be directly encoded in the existing game rendering, thus avoiding the time of video memory copying as much as possible; at the same time, one video block is encoded by one encoder, and multiple encoders work together to encode the video frame, effectively reducing the encoding delay.
[0022] Optionally, the using multiple encoders to encode the multiple video blocks respectively to obtain encoded data includes:
[0023] Judge the stability of the encoding process;
[0024] If the encoding process is unstable, multiple encoders are used for a single video block and the encoding is performed according to the hash distribution to obtain the encoded data.
[0025] By adopting the above technical solution, if the process of encoding a video block with 120 frames using one encoder becomes unstable, multiple encoders are used for the video block and encoded according to the hash distribution, thereby ensuring stable encoding of the 120 frames and further ensuring stable presentation of the subsequent 120 frames of data.
[0026] Optionally, sending the encoded data to a decoding end so that the decoding end uses a decoder to decode the encoded data, obtains the decoded data, and performs framing processing on the decoded data, includes:
[0027] Determine whether frame loss occurs during the sending process. If frame loss occurs, obtain the importance level of the video block of the current frame loss and perform a weighted check on the importance level of the video block of the current frame loss;
[0028] If the weight check is an important video block, then the encoder corresponding to the entire video block will apply for i frames;
[0029] If the weight check is an edge video block, an i frame is applied to the encoder corresponding to the current frame-dropping video block, and when the gop cycle of other encoders reaches the initial position, the encoder corresponding to the current frame-dropping video block is adjusted to reproduce and start a new round of gop to synchronize with other encoders.
[0030] By adopting the above technical solution, if frame loss occurs during the transmission of encoded data, it will affect subsequent decoding. The decoding starts from an i frame and then decodes the p frame. If the i frame or p frame is lost, the decoding will be stuck there. When the video block with lost frames is an important video block, the entire video frame is directly discarded, and all encoders corresponding to the video frame apply for i frames to ensure the smoothness of subsequent game video playback; if the video block with lost frames is an edge video block, the encoder corresponding to the current video block with lost frames waits for the i frame of the next important video block to be processed, and then applies for i frames, so that the final picture is synchronized.
[0031] Optionally, a high-resolution VR cloud gaming solution based on distributed coding is applied to a decoding end, and the method includes:
[0032] Receiving encoded data sent by an encoding end, wherein the encoded data is obtained by the encoding end cutting each video frame in the acquired game video data into multiple video blocks, and encoding the multiple video blocks using multiple encoders;
[0033] Decoding the encoded data using a decoder to obtain decoded data;
[0034] The decoded data is subjected to framing processing.
[0035] By adopting the above technical solution, after receiving the encoded data sent from the encoding end, the decoder decodes the encoded data. After decoding, the decoded data is grouped according to the original frame order to make the video frames coherent, and finally the rendered game content can be played completely and smoothly on the decoding end.
[0036] Optionally, the using a decoder to decode the encoded data to obtain decoded data includes:
[0037] Each encoder corresponds to a transmission channel of a network protocol. The decoding end uses the corresponding decoder to decode according to different channels to obtain decoded data.
[0038] By adopting the above technical solution, the encoded data of each video block is transmitted to the decoding end through a transmission channel of a specific network protocol. One transmission channel corresponds to one encoder and one decoder at the same time. In this way, decoding is performed in accordance with the encoding corresponding method, so that the delay during decoding is reduced to the same extent as encoding.
[0039] Optionally, the performing framing processing on the decoded data includes:
[0040] Obtaining vertex position information and frame sequence number information carried in the encoded data;
[0041] The decoded data is framed based on the vertex position information and the frame sequence number information.
[0042] Through the above technical solution, the vertex position is the position coordinate of the video block in the upper left corner of the video frame. Based on this, the decoded video blocks are combined and spliced in turn to restore a video frame. In the same way, all the video frames are combined and spliced. Finally, the video frames are combined in sequence according to the sequence number of each video frame through hash framing. This can help reduce the frame processing time and ensure that the content rendered by the game can be well presented on the user side.
[0043] In summary, the present application includes at least one of the following beneficial technical effects:
[0044] 1. Cut the video frame into multiple video blocks. One video block uses one or more encoders to achieve coordinated encoding of multiple encoders to encode the video frame, thereby reducing the delay in the video frame encoding and decoding process, allowing users to gain a better cloud gaming experience with lower latency;
[0045] 2. Different encoding precisions are used for encoding the edge and non-edge parts of each video frame. The edge of the video frame is the part of the user's peripheral vision, and the encoding precision of this part does not need to be so high, so as to reduce the encoder resource consumption while not affecting the user's good visual experience;
[0046] 3. By encoding multiple video blocks using a one-to-one encoder based on texture encoding, the encoded data can be obtained without copying the video frame data from the video memory. It can be directly encoded in the existing memory rendered by the game, thus minimizing the time of video memory copying. BRIEF DESCRIPTION OF THE DRAWINGS
[0047] Figure 1 It is a flowchart of a high-resolution VR cloud gaming solution based on distributed coding provided in an embodiment of the present application;
[0048] Figure 2 This is a flow chart of step S12 of a high-resolution VR cloud gaming solution based on distributed coding provided in an embodiment of the present application;
[0049] Figure 3 This is a flow chart of step S13 of a high-resolution VR cloud gaming solution based on distributed coding provided in an embodiment of the present application;
[0050] Figure 4 It is a flowchart of another high-resolution VR cloud gaming solution based on distributed coding provided in an embodiment of the present application;
[0051] Figure 5 This is a flow chart of step S22 of another high-resolution VR cloud gaming solution based on distributed coding provided in an embodiment of the present application. DETAILED DESCRIPTION
[0052] The following is combined with Figure 1-5 This application is described in further detail.
[0053] The embodiments of the present application disclose a high-resolution VR cloud gaming solution and computer equipment based on distributed coding.
[0054] See also Figure 1 , which is a flowchart of a high-resolution VR cloud gaming solution based on distributed coding provided in an embodiment of the present application, applied to the coding end, specifically including:
[0055] S10: Obtain game video data;
[0056] Specifically, the encoding end in this embodiment adopts a cloud server. Usually, the game is run by the user on his own computer or mobile terminal, which requires high hardware performance of the computer or mobile terminal on the user side. This application runs the loaded game in the cloud server and obtains the game video data. The game video data here includes the frame-by-frame game screen data rendered in real time during the entire game operation. For example, when a player plays xxx cloud game, the game video data obtained by the cloud server is a combination of the rendered pictures loaded by the xxx game, the real-time rendered game screens of various dynamic videos in the game, etc.
[0057] S11: cutting each video frame of the game video data to obtain a plurality of video blocks;
[0058] Specifically, the game video data includes frame-by-frame game screen images obtained after real-time rendering, that is, frame-by-frame video frames. These video frames are cut and processed, and the video frames become video blocks one by one, and each video block corresponds to a portion of data in each video frame. For example, in the game video data of the xxx game, a video frame is an image of the loading interface of the xxx game, which is cut into 9 equal parts, and can also be cut into 16 equal parts in other embodiments. Among them, each of the 9 equal parts is a video block, and a video block contains a portion of data in a video frame.
[0059] S12: using multiple encoders to encode multiple video blocks respectively to obtain encoded data;
[0060] Specifically, an encoder is a device that compiles signals or data and converts them into signal forms for communication, transmission and storage. Encoding is to save data storage space during data transmission, thereby saving bandwidth and speeding up transmission. After obtaining multiple video blocks, the encoding end starts multiple encoders to encode multiple video blocks. In this embodiment, one encoder can encode one video block, or multiple encoders can encode one video block. In this way, each video block of each video frame will obtain a corresponding item of encoded data after encoding, and the encoded data of a video frame is composed of multiple items of encoded data corresponding to multiple video blocks. In this way, one video frame is encoded by multiple encoders, effectively reducing the delay caused by the encoding process.
[0061] See also Figure 2 , S121: using a reinforcement learning algorithm to predict the picture complexity of the current video frame;
[0062] Specifically, since the picture complexity of each part of a video frame image is different, the use of a reinforcement learning algorithm can make the prediction of the picture complexity of the current video frame more accurate and more objective. Among them, the reinforcement learning algorithm is a type of machine learning. In this embodiment, reinforcement learning is a process of continuously predicting the complexity of the picture, acquiring knowledge through continuous interaction with the environment, and autonomously selecting actions, so that the overall return expectation in the prediction process is optimal, and the accuracy of predicting the picture complexity of the current video frame is higher. It should be noted that the Q-Learning algorithm can be used in the embodiment of the present application.
[0063] S122: adjusting the encoding block size of each encoder at the beginning of each GOP group according to the picture complexity of the current video frame;
[0064] Specifically, GOP is a loop of H26x series encoding. In this embodiment, GOP is a loop of H265 encoding, and a GOP is a group of continuous pictures. GOP is grouped into an I frame at the beginning of encoding and a P frame following the I frame. The picture complexity is judged at the beginning of each GOP grouping. If it is greater than expected, it means that the current video frame picture is more complex and the required encoding resources are larger. In order to ensure the number of frames while the encoder performance remains unchanged, the encoding block size encoded by the encoder is reduced; if the picture complexity is less than expected, it is concluded that the picture complexity of the current video frame is low. In this case, the size of the encoding block encoded by the encoder should be increased at the beginning of each GOP grouping while the encoder performance remains unchanged. It should be noted that the encoding block size can be 4x4, 8x8 and 16x16 in the encoding process.
[0065] S123: Encoding edge parts and non-edge parts of each video frame using different encoding accuracies;
[0066] Specifically, each video frame image has an edge part and a non-edge part. The non-edge part is located in the center of the user's field of view and is the part that most directly affects the user's visual experience, while the edge part has a smaller impact on the user's visual experience. Therefore, the encoder corresponding to the video block in the non-edge part uses a higher encoding accuracy for encoding, and the encoder corresponding to the video block in the edge part does not need to use a higher encoding accuracy for encoding, which helps to reduce the consumption of encoder resources.
[0067] S124: encoding the multiple video blocks using a one-to-one corresponding encoder based on a texture encoding method to obtain encoded data;
[0068] Specifically, in the present embodiment, encoding is performed through a medium such as texture, and other media such as grating may also be used in other embodiments. By using a medium such as texture, a single video block in a rendered video frame can be encoded directly from the existing game rendering using a single encoder. Not only does it enable a video frame to be encoded by multiple encoders, thereby reducing encoding delays, but it also avoids copying and extracting game rendering data from the video memory, thereby saving encoding time. Among them, the video memory is also called frame buffer, and its function is to store the rendering data that is about to be rendered. Like the computer's memory, the video memory is a component used to store the graphics information to be processed.
[0069] S125: judging the stability of the encoding process;
[0070] Specifically, the stability of the encoding process in this embodiment is the stable encoding of 120 frames, and in other embodiments it can also be the stable encoding of 90 frames. By judging the stability, it is determined whether the use of one encoder for a single video block can ensure the stable encoding of 120 frames, thereby playing a role in predicting whether the 120-frame data can be presented stably. Among them, the stability judgment is made through test data. The encoder encodes 120 frames of 4k video per second and only a small number of frames have an encoding time of more than 16.6ms, which can ensure the stability of VR games; if a large number of frames have an encoding time of more than 16.6ms, then stability cannot be guaranteed.
[0071] S126: If the encoding process is unstable, multiple encoders are used for a single video block, and encoding is performed according to a hash distribution to obtain encoded data;
[0072] Specifically, when it is determined that the 120-frame encoding process is unstable, it means that the video block consumes a large amount of encoding resources, and one encoder cannot stably encode the current video block. At this time, multiple encoders are used to encode a single video block, and the encoding process is grouped using hash distribution, and different video blocks are assigned to different encoders. Among them, hash distribution is to calculate the hash value of the data and then distribute it to different nodes according to the hash value. The hash value generally refers to the hash function, which ultimately better guarantees the stability of the 120-frame encoding of the current video block.
[0073] S13: sending the encoded data to a decoding end, so that the decoding end uses a decoder to decode the encoded data, obtains decoded data, and performs framing processing on the decoded data;
[0074] Specifically, in this embodiment, the decoding end can be a terminal device, such as a player's mobile phone, a computer, etc. After the encoding end receives the request message for establishing a connection sent by the decoding end (also known as the client), the request message carries the initial key and IP address information of the decoding end, and then sends a connection confirmation message to the decoding end, and then establishes a corresponding data transmission channel in the connection for the encoded data corresponding to each video block, and transmits the data to the decoding end through the corresponding data transmission channel.
[0075] See also Figure 3 , S131: determining whether frame loss occurs during the sending process, if frame loss occurs, obtaining the importance level of the video block of the current frame loss and performing a weight check on the importance level of the video block of the current frame loss;
[0076] Specifically, during the real-time transmission of the data encoded by the encoder to the decoding end through the corresponding data transmission channel, if frame loss occurs, where frame loss means that due to some reason, one or several frames are skipped and not displayed during the playback process, which will cause discontinuous picture, then a weighted check is performed on the importance level of each video block cut out from the current video frame, mainly to determine whether the frame-lost video block is an important part or an edge part of the video frame.
[0077] S132: If the weight check shows that the video block is an important one, then i frames are requested for the encoders corresponding to the entire video block;
[0078] Specifically, when the weight check shows that the current video block is an important video block, that is, the current video block is located in the center of the visual field, then the encoders corresponding to all video blocks in the current video frame apply for i-frames, that is, apply as a whole. If only the i-frame is applied for a single encoder of the current video block, because the i-frame occupies a large amount of resources, it will cause the picture clarity to decrease, and it is easy to cause the important part of the video frame image to be out of sync with other parts, making the final broadcast picture discontinuous. Therefore, when an important video block loses a frame, the entire picture is directly discarded, and then the encoder corresponding to the entire video block applies for i-frames as a whole, so that the decoding of each video block is synchronized again to avoid causing discontinuous pictures. It should be noted that the i-frame is called a key frame, and decoding generally starts with the i-frame, followed by decoding the p-frame. Once the encoded data loses the i-frame during the transmission process, the decoding cannot start; once the p-frame is lost, although the decoding can start, it is impossible to continue to decode the next p-frame, so the decoding will be terminated. Since applying for i-frames is a prior art, I will not go into details here.
[0079] S133: If the weight check is an edge video block, apply for an i frame for the encoder corresponding to the current frame-lost video block, and wait for the gop cycle of other encoders to reach the initial position, then adjust the encoder corresponding to the current frame-lost video block to re-start a new round of gop to synchronize with other encoders.
[0080] Specifically, if the weight check shows that the current video block is an edge video block, only the encoder corresponding to the current video block is requested for i-frames, that is, a single-channel request. Since it is not an important video block in the center of the user's field of view, the edge image is not clear. As long as the final game video data can be played, the visual impact on the user's game is also small, so there is no need to discard the video frame and request i-frames as a whole. When waiting for the i-frame of the next important video block to be processed, the i-frame is requested synchronously to achieve synchronization with the important video block.
[0081] See also Figure 4 , a high-resolution VR cloud gaming solution based on distributed coding, applied to the decoding end, specifically including:
[0082] S20: receiving the encoded data sent by the encoding end, where the encoded data is obtained by the encoding end cutting each video frame in the acquired game video data into multiple video blocks, and encoding the multiple video blocks using multiple encoders;
[0083] Specifically, through the data transmission channel of the network protocol, the encoded data of the video frame sent from the encoding end is received. Because the encoded data needs to be decoded before it can be played, and the encoding end cannot decode, the decoding end, such as the user's mobile phone client, needs to receive the encoded data before the decoding operation can be performed.
[0084] S21: Decoding the encoded data using a decoder to obtain decoded data;
[0085] Specifically, after the decoding end receives the encoded data transmitted by the encoder, the decoder is started to decode the encoded data, where the encoder is a device that restores information from an encoded form to its original form. The decoder exists because audio and video data must first be compressed through encoding, otherwise the amount of data is too large. When the data needs to be played, it must first be decoded by the decoder. In this embodiment, the encoded data of each video frame is decoded in real time to obtain the final decoded data.
[0086] S211: Each encoder corresponds to a transmission channel of a network protocol, and the decoding end uses a corresponding decoder to perform decoding according to different channels to obtain decoded data;
[0087] Specifically, each encoder encodes a video block, and the data encoded by each encoder is transmitted through the corresponding data transmission channel constructed within the connection established between the encoding end and the decoding end. The data encoded by each encoder is sent to the decoding end. After arriving at the decoding end, a corresponding decoder is started to decode the data encoded by each encoder. Different encoders correspond to different data transmission channels, and different decoders are started at the decoding end, and finally decoded data of each video frame is obtained.
[0088] See also Figure 4 , S22: performing framing processing on the decoded data;
[0089] Specifically, the data decoded by the decoder cannot be played directly, and the decoded data corresponding to each video block of each video frame is combined into a video frame according to the original cutting order, and then the frames are assembled according to the order of the video frames in the game video data, and finally the game video data is played.
[0090] See also Figure 5 , S221: Obtain vertex position information and frame sequence number information carried in the encoded data;
[0091] Specifically, the encoded data contains information about the size of a video frame and vertex position information, which is the coordinate information of the point in the upper left corner of a video block in a video frame. When a video frame has multiple encoders, they are allocated by frame. For example, a video frame is divided into 9 equal parts. Video blocks 0, 2, 6, and 8 in a video frame are allocated to the first encoder, and 1, 3, 5, and 9 are allocated to the second encoder. Here, 1, 2, 3, 4, 5, 6, 7, 8, and 9 are the so-called frame numbers.
[0092] S222: Frame the decoded data based on the vertex position information and the frame sequence number information.
[0093] Specifically, the video blocks in this embodiment are cut from a video frame. According to the coordinate information of the point in the upper left corner of each video block, each video block can be put back to its original position in a video frame, so that a complete video frame can be obtained after decoding. Because the video blocks 0, 2, 6, and 8 are distributed to the first encoder and 1, 3, 5, and 9 are distributed to the second encoder according to the hash algorithm, the video blocks corresponding to these two groups of frame numbers need to be interspersed and played after decoding. This process is to perform frame grouping and playback according to the frame number.
[0094] The implementation principle of the high-resolution VR cloud gaming solution based on distributed coding in the embodiment of the present application is as follows: after the encoding end obtains the game video data, the video frames of the game video data are cut to obtain multiple video blocks, and then multiple encoders are used to encode the multiple video blocks. After the encoded data is obtained, it is sent to the decoding end through the data transmission channel of the network protocol. The decoding end receives the encoded data and starts the decoder for decoding processing. Finally, the decoded data is framed and played at the decoding end.
[0095] An embodiment of the present application further discloses a computer-readable storage medium, and the computer-readable storage medium stores a computer program, wherein when the computer program is executed by a processor, the high-resolution VR cloud gaming solution based on distributed coding of the above embodiment is adopted.
[0096] Among them, the computer program can be stored in a computer-readable medium, the computer program includes computer program code, the computer program code can be in the form of source code, object code, executable file or certain middleware, etc. The computer-readable medium includes any entity or device that can carry the computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signal, telecommunication signal and software distribution medium, etc. It should be noted that the computer-readable medium includes but is not limited to the above-mentioned components.
[0097] Among them, through this computer-readable storage medium, the high-resolution VR cloud gaming solution based on distributed coding of the above-mentioned embodiment is stored in a computer-readable storage medium, and is loaded and executed on a processor to facilitate the storage and application of the above-mentioned method.
[0098] An embodiment of the present application also discloses a computer device, in which a computer program is stored in a computer-readable storage medium. When the computer program is loaded and executed by a processor, the above-mentioned high-resolution VR cloud gaming solution based on distributed coding is adopted.
[0099] The computer device may be a desktop computer, a laptop computer, a cloud server or other computer device, and the computer device includes but is not limited to a processor and a memory. For example, the computer device may also include input and output devices, a network access device, and a bus.
[0100] Among them, the processor can adopt a central processing unit (CPU). Of course, according to actual usage, other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. can also be adopted. The general-purpose processor can adopt a microprocessor or any conventional processor, etc., and this application does not impose any restrictions on this.
[0101] Among them, the memory can be an internal storage unit of a computer device, such as a hard disk or memory of a computer device, or an external storage device of a computer device, such as a plug-in hard disk, a smart memory card (SMC), a secure digital card (SD) or a flash memory card (FC) equipped on the computer device, and the memory can also be a combination of an internal storage unit and an external storage device of a computer device. The memory is used to store computer programs and other programs and data required by the computer device. The memory can also be used to temporarily store data that has been output or is to be output, and this application does not impose any restrictions on this.
[0102] Among them, through this computer device, the high-resolution VR cloud gaming solution based on distributed coding of the above-mentioned embodiment is stored in the memory of the computer device, and is loaded and executed on the processor of the computer device for easy use.
[0103] The above is only an exemplary embodiment of the present disclosure, and the scope of the present disclosure cannot be limited thereto. That is, any equivalent changes and modifications made according to the teachings of the present disclosure are still within the scope of the present disclosure. After considering the specification and practicing the disclosure here, those skilled in the art will easily think of other embodiments of the present disclosure. This application is intended to cover any modification, use or adaptation of the present disclosure, which follows the general principles of the present disclosure and includes common knowledge or customary technical means in the technical field not recorded in the present disclosure. The description and examples are only regarded as exemplary, and the scope and spirit of the present disclosure are defined by the claims.
Claims
1. High-resolution VR cloud game processing method based on distributed coding, It is characterized in that Applied to the encoding end, the method includes: Get game video data; Cut each video frame of the game video data to obtain a plurality of video blocks; Using multiple encoders to encode the multiple video blocks respectively to obtain encoded data; The encoded data is sent to a decoding end, so that the decoding end uses a decoder to decode the encoded data, obtains decoded data, and performs frame processing on the decoded data, including: determining whether frame loss occurs during the sending process, and if frame loss occurs, obtaining the importance level of the video block of the current frame loss and performing a weight check on the importance level of the video block of the current frame loss; If the weight check shows that the video block is important, i-frames are requested for all encoders corresponding to the video block; If the weight check is an edge video block, an i-frame is requested for the encoder corresponding to the current frame-dropping video block, and when the gop cycle of other encoders reaches the initial position, the encoder corresponding to the current frame-dropping video block is adjusted to reproduce and start a new round of gop to synchronize with other encoders.
2. The high-resolution VR cloud game processing method based on distributed coding according to claim 1, It is characterized in that The using a plurality of encoders to encode the plurality of video blocks respectively to obtain encoded data comprises: Use reinforcement learning algorithm to predict the picture complexity of the current video frame; According to the picture complexity of the current video frame, the encoding block size encoded by each encoder is adjusted at the beginning of each gop group.
3. The high-resolution VR cloud game processing method based on distributed coding according to claim 1, It is characterized in that The using a plurality of encoders to encode the plurality of video blocks respectively to obtain encoded data comprises: The edge part and non-edge part of each video frame are encoded with different encoding precisions.
4. The high-resolution VR cloud game processing method based on distributed coding according to claim 1, It is characterized in that The using a plurality of encoders to encode the plurality of video blocks respectively to obtain encoded data comprises: Based on the texture coding method, a plurality of the video blocks are encoded by using a one-to-one corresponding encoder to obtain encoded data.
5. The high-resolution VR cloud game processing method based on distributed coding according to claim 1, It is characterized in that The using a plurality of encoders to encode the plurality of video blocks respectively to obtain encoded data comprises: Judge the stability of the encoding process; If the encoding process is unstable, multiple encoders are used for a single video block and the encoding is performed according to the hash distribution to obtain the encoded data.
6. High-resolution VR cloud game processing method based on distributed coding, It is characterized in that Applied to a decoding end, the method comprises: Receiving encoded data sent by an encoding end, wherein the encoded data is obtained by the encoding end cutting each video frame in the acquired game video data into multiple video blocks, and encoding the multiple video blocks using multiple encoders; Decoding the encoded data using a decoder to obtain decoded data; Performing framing processing on the decoded data, wherein determining whether frame loss occurs during the sending process, and if frame loss occurs, obtaining the importance level of the video block of the current frame loss and performing a weight check on the importance level of the video block of the current frame loss; If the weight check shows that the video block is important, i-frames are requested for all encoders corresponding to the video block; If the weight check is an edge video block, an i frame is applied to the encoder corresponding to the current frame-dropping video block, and when the gop cycle of other encoders reaches the initial position, the encoder corresponding to the current frame-dropping video block is adjusted to reproduce and start a new round of gop to synchronize with other encoders.
7. The high-resolution VR cloud game processing method based on distributed coding according to claim 6, It is characterized in that The step of using a decoder to decode the encoded data to obtain decoded data includes: Each encoder corresponds to a transmission channel of a network protocol. The decoding end uses the corresponding decoder to decode according to different channels to obtain decoded data.
8. The high-resolution VR cloud game processing method based on distributed coding according to claim 6, It is characterized in that The step of performing framing processing on the decoded data includes: Obtaining vertex position information and frame sequence number information carried in the encoded data; The decoded data is framed based on the vertex position information and the frame sequence number information.
9. A computer device comprising a memory, a processor and a computer program stored in the memory and capable of running on the processor, It is characterized in that When the processor loads and executes the computer program, the method according to any one of claims 1 to 5 or 6 to 8 is implemented.
Citation Information
Patent Citations
DVC-HEVC video transcoding method based on Fisher discriminant
CN108769696A
Data sending and receiving method of cloud game and related equipment
CN113996056A