Compensation information storage method, device, electronic device and computer-readable medium

By generating a list and traversing the motion vector of each sub-block information in the information storage structure, duplicate information is eliminated, the redundancy problem of sub-block list information is solved, and efficient and real-time encoding is achieved.

CN118714340BActive Publication Date: 2025-09-30GUANGDONG VIMICRO +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410921021.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-07-10
Publication Date
2025-09-30
Estimated Expiration
2044-07-10

AI Technical Summary

Technical Problem

In the prior art, when compensation information is determined through large-block-based motion search, motion vectors of sub-block list information are repeatedly traversed, resulting in a waste of computing resources, delays in the encoding process, and poor flexibility.

Method used

By generating a list of each sub-block information in the information storage structure, a sub-block list information set is generated, and motion vector traversal is performed to eliminate duplicate information, and minimum value update and storage are performed to reduce redundant calculations.

Benefits of technology

It reduces the waste of computing resources, improves the flexibility and real-time performance of encoding, avoids delays, and enhances the efficiency of the encoding process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118714340B_ABST
    Figure CN118714340B_ABST
Patent Text Reader

Abstract

The embodiments of the present disclosure disclose a compensation information storage method, device, electronic device, and computer-readable medium. A specific implementation of the method includes: generating a list for each sub-block information corresponding to the created information storage structure to generate sub-block list information and obtain a sub-block list information set, wherein the sub-block list information in the sub-block list information set includes: optimal motion vector information corresponding to the current sub-block information, wherein the information storage structure is a structure for storing motion compensation information corresponding to a moving object in a preset video; updating the motion vector minimum value of the first compensation information group and the second compensation information group to obtain an updated compensation information group; and storing the updated compensation information group in the information storage structure. This implementation reduces the waste of computing resources and improves the flexibility and real-time performance of encoding.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure relate to the field of computer technology, and more particularly to a compensation information storage method, device, electronic device, and computer-readable medium. Background Art

[0002] During video encoding and decoding, storing motion compensation information is essential to reduce pipeline delays caused by motion compensation. Performing a single pass through sub-block information to determine compensation information and storing this information reduces the waste of computing resources. Furthermore, updating compensation information can also reduce the waste of computing resources. Compensation information storage is a technique for storing compensation information. Currently, compensation information storage is typically achieved by deriving motion vectors for all coding blocks of all sizes within a large block based on a large block motion search and then storing these motion vectors.

[0003] However, when the above method is adopted, the following technical problems often occur:

[0004] First, when determining compensation information through large-block motion search, the motion vectors of the sub-block list information are repeatedly traversed, resulting in a large amount of redundancy and a waste of computing resources. Because some compensation information is not stored in a timely manner, it causes delays in the encoding process, resulting in poor coding flexibility and real-time performance.

[0005] Second, when performing motion vector traversal on the sub-block list information, the same sub-block information may be traversed multiple times, and the motion vector may be determined multiple times, resulting in a waste of computing resources.

[0006] Third, when performing motion vector traversal on the sub-block list information, the spatial sub-block information may be more chaotic, resulting in lower accuracy of the compensation information. Repeated traversal of the sub-block information will result in a waste of computing resources.

[0007] The above information disclosed in this Background section is only for enhancement of understanding of the background of the inventive concept and therefore it may contain information that does not form the prior art that is already known in this country to a person of ordinary skill in the art. Summary of the Invention

[0008] The content of this disclosure is used to briefly introduce concepts that will be described in detail in the detailed description section below. The content of this disclosure is not intended to identify key features or essential features of the claimed technical solution, nor is it intended to limit the scope of the claimed technical solution.

[0009] Some embodiments of the present disclosure provide compensation information storage methods, devices, electronic devices, and computer-readable media to solve one or more of the technical problems mentioned in the above background technology section.

[0010] In a first aspect, some embodiments of the present disclosure provide a compensation information storage method, the method comprising: generating a list for each sub-block information corresponding to a created information storage structure to generate sub-block list information and obtain a sub-block list information set, wherein the sub-block list information in the sub-block list information set comprises: optimal motion vector information corresponding to the current sub-block information, wherein the information storage structure is a structure for storing motion compensation information corresponding to a moving object in a preset video; performing motion vector traversal on the first sub-block list information corresponding to the sub-block list information set to obtain a first compensation information group corresponding to the first sub-block list information; in response to determining that the second sub-block list information corresponding to the sub-block list information set exists in the second sub-block list information set, a compensation information group, determining the motion vector of the first sub-block list information corresponding to the second sub-block list information as second compensation information corresponding to the second sub-block list information; removing the first sub-block list information from the sub-block list information set to obtain a sub-block list information set after removal; performing motion vector traversal on the second sub-block list information based on the sub-block list information set after removal to obtain a compensation information group corresponding to the second sub-block list information; determining the second compensation information and the compensation information group as a second compensation information group; performing motion vector minimum value update on the first compensation information group and the second compensation information group to obtain an updated compensation information group; and storing the updated compensation information group in the information storage structure.

[0011] In a second aspect, some embodiments of the present disclosure provide a compensation information storage device, the device comprising: a generation unit, configured to perform list generation for each sub-block information corresponding to the created information storage structure to generate sub-block list information and obtain a sub-block list information set, wherein the sub-block list information in the above sub-block list information set includes: optimal motion vector information corresponding to the current sub-block information, wherein the above information storage structure is a structure for storing motion compensation information corresponding to a moving object in a preset video; a first traversal unit, configured to perform motion vector traversal on the first sub-block list information corresponding to the above sub-block list information set to obtain a first compensation information group corresponding to the first sub-block list information; a first determination unit, configured to, in response to determining that the second sub-block list information corresponding to the above sub-block list information set exists in the above first compensation information group, The motion vector of the first sub-block list information corresponding to the second sub-block list information is determined as the second compensation information corresponding to the second sub-block list information; the elimination unit is configured to eliminate the first sub-block list information from the sub-block list information set to obtain a sub-block list information set after elimination; the second traversal unit is configured to perform motion vector traversal on the second sub-block list information according to the sub-block list information set after elimination to obtain a compensation information group corresponding to the second sub-block list information; the second determination unit is configured to determine the second compensation information and the compensation information group as a second compensation information group; the updating unit is configured to perform motion vector minimum value update on the first compensation information group and the second compensation information group to obtain an updated compensation information group; and the storage unit is configured to store the updated compensation information group in the information storage structure.

[0012] In a third aspect, some embodiments of the present disclosure provide an electronic device comprising: one or more processors; a storage device on which one or more programs are stored, and when the one or more programs are executed by one or more processors, the one or more processors implement the method described in any implementation of the first aspect above.

[0013] In a fourth aspect, some embodiments of the present disclosure provide a computer-readable medium having a computer program stored thereon, wherein when the program is executed by a processor, the method described in any implementation of the first aspect is implemented.

[0014] The above-described embodiments of the present disclosure have the following beneficial effects: The compensation information storage methods of some embodiments of the present disclosure reduce the waste of computing resources and improve the flexibility and real-time performance of encoding. Specifically, the waste of computing resources and the poor flexibility and real-time performance of encoding are caused by the fact that, when determining compensation information through large-block motion search, the motion vectors of the sub-block list information are repeatedly traversed, resulting in a large amount of redundancy and wasted computing resources. Because some compensation information is not stored in a timely manner, delays occur during the encoding process, resulting in poor flexibility and real-time performance. Based on this, the compensation information storage methods of some embodiments of the present disclosure first generate a list for each sub-block information corresponding to a created information storage structure to generate sub-block list information, obtaining a sub-block list information set. The sub-block list information in the sub-block list information set includes the optimal motion vector information corresponding to the current sub-block information. The information storage structure is a structure for storing motion compensation information corresponding to moving objects in a preset video. This facilitates subsequent operations. Then, motion vector traversal is performed on the first sub-block list information corresponding to the sub-block list information in the sub-block list information set to obtain a first compensation information group corresponding to the first sub-block list information. Thus, the distance information corresponding to the first sub-block list information can be determined through motion vector traversal. Subsequently, in response to determining that the second sub-block list information corresponding to the sub-block list information set is present in the first compensation information group, the motion vector corresponding to the second sub-block list information in the first sub-block list information is determined as the second compensation information corresponding to the second sub-block list information. This allows compensation information to be determined for sub-block information other than the traversed sub-block information. Next, the first sub-block list information is removed from the sub-block list information set to obtain a post-removal sub-block list information set. This prevents repeated traversal of the motion vectors of the sub-block list information, thereby reducing redundancy and wasting computing resources. Furthermore, based on the post-removal sub-block list information set, the motion vector of the second sub-block list information is traversed to obtain a compensation information group corresponding to the second sub-block list information. This prevents repeated traversal of the motion vectors of the sub-block list information, thereby reducing redundancy and wasting computing resources. Subsequently, the second compensation information and the compensation information group are determined as a second compensation information group. Next, the first and second compensation information groups are updated to obtain the minimum motion vector values, thereby obtaining an updated compensation information group. This allows for dynamic updating of the compensation information group. Finally, the updated compensation information group is stored in the information storage structure. This allows for timely storage of the updated compensation information group, reducing the likelihood of delays during the encoding process and improving the flexibility and real-time performance of encoding. This reduces the waste of computing resources and improves the flexibility and real-time performance of encoding. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] The above and other features, advantages, and aspects of the various embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. Throughout the drawings, the same or similar reference numerals represent the same or similar elements. It should be understood that the drawings are schematic and that components and elements are not necessarily drawn to scale.

[0016] Figure 1 is a flow chart of some embodiments of the compensation information storage method according to the present disclosure;

[0017] Figure 2 is a schematic structural diagram of some embodiments of the compensation information storage device according to the present disclosure;

[0018] Figure 3 It is a structural diagram of an electronic device suitable for implementing some embodiments of the present disclosure. DETAILED DESCRIPTION

[0019] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments described herein. On the contrary, these embodiments are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are for illustrative purposes only and are not intended to limit the scope of protection of the present disclosure.

[0020] It should also be noted that, for ease of description, only the parts related to the invention are shown in the drawings. In the absence of conflict, the embodiments and features in the embodiments of the present disclosure may be combined with each other.

[0021] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are only used to distinguish different devices, modules or units, and are not used to limit the order or interdependence of the functions performed by these devices, modules or units.

[0022] It should be noted that the modifications of "one" and "multiple" mentioned in the present disclosure are illustrative rather than restrictive, and those skilled in the art should understand that unless otherwise clearly indicated in the context, they should be understood as "one or more".

[0023] The names of the messages or information exchanged between multiple devices in the embodiments of the present disclosure are only used for illustrative purposes and are not used to limit the scope of these messages or information.

[0024] The present disclosure will be described in detail below with reference to the accompanying drawings and in conjunction with embodiments.

[0025] Figure 1This is a process 100 of some embodiments of the compensation information storage method disclosed herein. The compensation information storage method includes the following steps:

[0026] Step 101 : Generate a list for each sub-block information corresponding to the created information storage structure to generate sub-block list information and obtain a sub-block list information set.

[0027] In some embodiments, the execution entity of the compensation information storage method (for example, a computing device) can generate a list for each sub-block information corresponding to the created information storage structure to generate sub-block list information and obtain a sub-block list information set, wherein the sub-block list information in the above sub-block list information set includes: optimal motion vector information corresponding to the current sub-block information, wherein the above information storage structure is a structure for storing motion compensation information corresponding to a moving object in a preset video.

[0028] Here, the information storage structure may refer to a storage structure for storing information. For example, the information storage structure may refer to a chain storage structure. Here, the sub-block information may refer to a two-dimensional array of information within the storage structure. Here, the sub-block list information within the sub-block list information set may refer to a list of sub-blocks adjacent to the sub-block information.

[0029] Optionally, the execution subject may generate a list for each sub-block information corresponding to the created information storage structure through the following steps to generate sub-block list information and obtain a sub-block list information set:

[0030] In the first step, sub-block information traversal is performed on each sub-block information corresponding to the created information storage structure to generate a traversed sub-block information group corresponding to each sub-block information, thereby obtaining a traversed sub-block information group set.

[0031] As an example, the execution entity may traverse the adjacent sub-block information corresponding to each sub-block information in the created information storage structure to generate a traversed sub-block information group corresponding to each sub-block information, thereby obtaining a traversed sub-block information group set. The adjacent sub-block information may be sub-block information adjacent to the sub-block information in each sub-block information.

[0032] In the second step, the sub-block information set after the traversal is deduplicated to obtain a deduplicated sub-block information set.

[0033] Here, the above-mentioned deduplication may refer to removing duplication.

[0034] In the third step, each deduplicated sub-block information group in the deduplicated sub-block information group set is determined as sub-block list information to obtain a sub-block list information set.

[0035] Step 102: Perform motion vector traversal on the first sub-block list information corresponding to the sub-block list information set to obtain a first compensation information group corresponding to the first sub-block list information.

[0036] In some embodiments, the execution entity may perform motion vector traversal on the first sub-block list information corresponding to the sub-block list information set to obtain a first compensation information group corresponding to the first sub-block list information.

[0037] Here, the first compensation information in the first compensation information group may refer to consumption information required for taking the first sub-block list information as the current block and traversing adjacent blocks corresponding to the current block.

[0038] As an example, the execution entity may traverse the motion vectors corresponding to the first sub-block list information in the sub-block list information set to obtain a first compensation information group corresponding to the first sub-block list information.

[0039] Optionally, the execution subject may perform motion vector traversal on the first sub-block list information corresponding to the sub-block list information set through the following steps to obtain a first compensation information group corresponding to the first sub-block list information:

[0040] In the first step, a motion vector between the first sub-block information and each sub-block information corresponding to the first sub-block list information is determined to obtain a first motion vector group, wherein the first sub-block list information includes the first sub-block information and each sub-block information.

[0041] Here, the first motion vector in the first motion vector group may refer to a motion vector in which the first sub-block information points to the sub-block information.

[0042] In the second step, an offset is determined for each first motion vector in the first motion vector group to generate a motion vector corresponding offset, thereby obtaining a first motion vector corresponding offset group.

[0043] Here, the first motion vector corresponding offset in the first motion vector corresponding offset group may refer to a distance corresponding to the first motion vector.

[0044] In the third step, the first motion vector corresponding offset group is sorted to obtain a first sorted motion vector corresponding offset group, wherein the first sorted motion vector corresponding offset group is a motion vector corresponding offset group sorted from small to large.

[0045] The fourth step is to determine the coordinate position of the first sub-block list information corresponding to the offset group corresponding to the first sorted motion vector to obtain a first sub-block information coordinate position group.

[0046] As an example, the execution entity may determine the coordinate position corresponding to the first sub-block list information corresponding to the offset group corresponding to the first sorted motion vector to obtain a first sub-block information coordinate position group.

[0047] The fifth step is to perform sub-block information sampling on the first sub-block information coordinate position group to obtain a sampled sub-block information group.

[0048] Here, the sampled sub-block information group may refer to a sampled sub-block information group in which the first sub-block information coordinate position group is spatially aligned with the current sub-block.

[0049] Step 6: Determine compensation information for the sampled sub-block information group to obtain a first compensation information group corresponding to the first sub-block list information.

[0050] The relevant content of steps 1-6 described above, as an inventive feature of this disclosure, addresses the third technical issue mentioned in the background art: "When performing motion vector traversal on sub-block list information, spatial sub-block information may become chaotic, resulting in low accuracy of compensation information, and repeated traversal of sub-block information may waste computing resources." Factors that often lead to this waste of computing resources are as follows: When performing motion vector traversal on sub-block list information, spatial sub-block information may become chaotic, resulting in low accuracy of compensation information, and repeated traversal of sub-block information may waste computing resources. If these factors are addressed, the waste of computing resources can be reduced. To achieve this, in the first step, the motion vector between the first sub-block information corresponding to the first sub-block information in the first sub-block list information and each sub-block information is determined to obtain a first motion vector group, where the first sub-block list information includes the first sub-block information and each sub-block information. In the second step, an offset is determined for each first motion vector in the first motion vector group to generate a corresponding offset for the motion vector, thereby obtaining a first motion vector corresponding offset group. In the third step, the offset group corresponding to the first motion vector is sorted to obtain a first sorted offset group corresponding to the motion vector. The first sorted offset group corresponding to the motion vector is a group of motion vector offsets sorted from smallest to largest. In the fourth step, the coordinate positions of the first sub-block list information corresponding to the first sorted offset group of motion vectors are determined to obtain a first sub-block information coordinate position group. In the fifth step, sub-block information is sampled on the first sub-block information coordinate position group to obtain a sampled sub-block information group. In the sixth step, compensation information is determined on the sampled sub-block information group to obtain a first compensation information group corresponding to the first sub-block list information. This reduces the waste of computing resources.

[0051] Step 103 : In response to determining that the second sub-block list information corresponding to the sub-block list information set exists in the first compensation information group, a motion vector of the first sub-block list information corresponding to the second sub-block list information is determined as second compensation information corresponding to the second sub-block list information.

[0052] In some embodiments, the execution entity may, in response to determining that the second sub-block list information corresponding to the sub-block list information set exists in the first compensation information group, determine the motion vector of the first sub-block list information corresponding to the second sub-block list information as the second compensation information corresponding to the second sub-block list information.

[0053] Here, the second compensation information may refer to consumption information required for taking the second sub-block list information as the current block and traversing adjacent blocks corresponding to the current block.

[0054] Step 104: remove the first sub-block list information from the sub-block list information set to obtain a post-removal sub-block list information set.

[0055] In some embodiments, the execution entity may remove the first sub-block list information from the sub-block list information set to obtain a post-removal sub-block list information set.

[0056] Here, the above-mentioned post-elimination sub-block list information set may refer to the sub-block list information set after the above-mentioned first sub-block list information is removed. The above-mentioned elimination may refer to deletion.

[0057] Step 105 : performing motion vector traversal on the second sub-block list information according to the eliminated sub-block list information set to obtain a compensation information group corresponding to the second sub-block list information.

[0058] In some embodiments, the execution entity may perform motion vector traversal on the second sub-block list information according to the eliminated sub-block list information set to obtain a compensation information group corresponding to the second sub-block list information.

[0059] Here, the compensation information group may refer to a consumption information group required to take the second sub-block list information as the current block and traverse each adjacent block corresponding to the current block in the sub-block list information set after elimination.

[0060] Optionally, the execution subject may perform motion vector traversal on the second sub-block list information according to the eliminated sub-block list information set through the following steps to obtain a compensation information group corresponding to the second sub-block list information:

[0061] The first step is to isolate the second sub-block information corresponding to the second sub-block list information from the eliminated sub-block list information set to obtain an isolated sub-block list information set.

[0062] Here, the above isolation may refer to separation.

[0063] In the second step, the motion vectors between the corresponding second sub-block information in the second sub-block list information and the isolated sub-block list information set are determined to obtain a second motion vector group.

[0064] Here, the second motion vector in the second motion vector group may refer to a motion vector in which the second sub-block information points to the sub-block information.

[0065] In the third step, an offset is determined for each second motion vector in the second motion vector group to generate an offset corresponding to the second motion vector, thereby obtaining an offset group corresponding to the second motion vector.

[0066] Here, the second motion vector corresponding offset in the second motion vector corresponding offset group may refer to a distance corresponding to the second motion vector.

[0067] In the fourth step, the second motion vector corresponding offset group is sorted to obtain a second sorted motion vector corresponding offset group, wherein the second sorted motion vector corresponding offset group is a motion vector corresponding offset group sorted from small to large.

[0068] The fifth step is to determine the coordinate position of the second sub-block list information corresponding to the offset group corresponding to the second sorted motion vector to obtain a second sub-block information coordinate position group.

[0069] As an example, the execution entity may determine the coordinate position corresponding to the second sub-block list information corresponding to the offset group corresponding to the second sorted motion vector to obtain a second sub-block information coordinate position group.

[0070] Step 6: Determine the encoding parameters of the second sub-block list information corresponding to the offset group of the second sorted motion vectors to obtain a sub-block information encoding parameter group.

[0071] Here, the above coding parameters may refer to coding mode parameters. For example, the above coding parameters may refer to coding intra-frame prediction parameters.

[0072] As an example, the execution entity may determine the encoding parameters corresponding to the second sub-block list information corresponding to the offset group corresponding to the second sorted motion vector to obtain a sub-block information encoding parameter group.

[0073] The seventh step is to combine the second sub-block information coordinate position group and the sub-block information coding parameter group to obtain a combined sub-block information group.

[0074] As an example, the above-mentioned execution entity can merge each second sub-block information coordinate position in the above-mentioned second sub-block information coordinate position group with the sub-block information coding parameter corresponding to the second sub-block information coordinate position in the above-mentioned sub-block information coding parameter group to obtain a merged sub-block information group as the combined sub-block information group.

[0075] In the eighth step, compensation information is determined for the combined sub-block information group to obtain a compensation information group corresponding to the second sub-block list information.

[0076] The relevant content of steps 1-8 described above, as an inventive feature of this disclosure, addresses the second technical problem mentioned in the background art: "When performing motion vector traversal on sub-block list information, the same sub-block information may be traversed multiple times, and the motion vector may be determined multiple times, resulting in wasted computing resources." Factors that often lead to this waste of computing resources are as follows: When performing motion vector traversal on sub-block list information, the same sub-block information may be traversed multiple times, and the motion vector may be determined multiple times, resulting in wasted computing resources. If these factors are addressed, the waste of computing resources can be reduced. To achieve this, in the first step, the second sub-block information corresponding to the second sub-block list information is isolated from the above-removed sub-block list information set to obtain an isolated sub-block list information set. This avoids multiple traversals on the same sub-block information and reduces the waste of computing resources. In the second step, the motion vector between the second sub-block information corresponding to the second sub-block list information and the above-removed sub-block list information set is determined to obtain a second motion vector group. Step 3: Determine the offset of each second motion vector in the second motion vector group to generate an offset corresponding to the second motion vector, thereby obtaining a second motion vector offset group. Step 4: Sorting the second motion vector offset group to obtain a second sorted motion vector offset group, wherein the second sorted motion vector offset group is a motion vector offset group sorted from smallest to largest. Step 5: Determine the coordinate positions of the second sub-block list information corresponding to the second sorted motion vector offset group to obtain a second sub-block information coordinate position group. Step 6: Determine the encoding parameters of the second sub-block list information corresponding to the second sorted motion vector offset group to obtain a sub-block information encoding parameter group. Step 7: Combine the second sub-block information coordinate position group with the sub-block information encoding parameter group to obtain a combined sub-block information group. Step 8: Determine compensation information for the combined sub-block information group to obtain a compensation information group corresponding to the second sub-block list information. This reduces the waste of computing resources.

[0077] Step 106: Determine the second compensation information and the compensation information group as a second compensation information group.

[0078] In some embodiments, the execution entity may determine the second compensation information and the compensation information group as a second compensation information group.

[0079] Step 107 : performing motion vector minimum value update on the first compensation information group and the second compensation information group to obtain an updated compensation information group.

[0080] In some embodiments, the execution entity may perform motion vector minimum value update on the first compensation information group and the second compensation information group to obtain an updated compensation information group.

[0081] Here, the updated compensation information group may refer to a compensation information group in which the compensation information is updated to the minimum.

[0082] Optionally, the execution entity may update the motion vector minimum value of the first compensation information group and the second compensation information group through the following steps to obtain an updated compensation information group:

[0083] In the first step, offsets of the sub-block information in the first compensation information group and the second compensation information group are determined to obtain an offset set corresponding to the sub-block information.

[0084] In the second step, the offset set corresponding to the above sub-block information is divided into adjacent sub-block information to obtain an adjacent sub-block information group set.

[0085] As an example, the execution entity may divide the adjacent sub-block information corresponding to the offset set corresponding to the sub-block information to obtain an adjacent sub-block information group set.

[0086] In the third step, each adjacent sub-block information group in the adjacent sub-block information group set is sorted by motion vector, and the adjacent sub-block information corresponding to the minimum motion vector in the sorting result is stored to obtain the sub-block information corresponding to the minimum motion vector as the updated compensation information, thereby obtaining an updated compensation information group.

[0087] Step 108: Store the updated compensation information group into the information storage structure.

[0088] In some embodiments, the execution entity may store the updated compensation information group in the information storage structure.

[0089] The above-described embodiments of the present disclosure have the following beneficial effects: The compensation information storage methods of some embodiments of the present disclosure reduce the waste of computing resources and improve the flexibility and real-time performance of encoding. Specifically, the waste of computing resources and the poor flexibility and real-time performance of encoding are caused by the fact that, when determining compensation information through large-block motion search, the motion vectors of the sub-block list information are repeatedly traversed, resulting in a large amount of redundancy and wasted computing resources. Because some compensation information is not stored in a timely manner, delays occur during the encoding process, resulting in poor flexibility and real-time performance. Based on this, the compensation information storage methods of some embodiments of the present disclosure first generate a list for each sub-block information corresponding to a created information storage structure to generate sub-block list information, obtaining a sub-block list information set. The sub-block list information in the sub-block list information set includes the optimal motion vector information corresponding to the current sub-block information. The information storage structure is a structure for storing motion compensation information corresponding to moving objects in a preset video. This facilitates subsequent operations. Then, motion vector traversal is performed on the first sub-block list information corresponding to the sub-block list information in the sub-block list information set to obtain a first compensation information group corresponding to the first sub-block list information. Thus, the distance information corresponding to the first sub-block list information can be determined through motion vector traversal. Subsequently, in response to determining that the second sub-block list information corresponding to the sub-block list information set is present in the first compensation information group, the motion vector corresponding to the second sub-block list information in the first sub-block list information is determined as the second compensation information corresponding to the second sub-block list information. This allows compensation information to be determined for sub-block information other than the traversed sub-block information. Next, the first sub-block list information is removed from the sub-block list information set to obtain a post-removal sub-block list information set. This prevents repeated traversal of the motion vectors of the sub-block list information, thereby reducing redundancy and wasting computing resources. Furthermore, based on the post-removal sub-block list information set, the motion vector of the second sub-block list information is traversed to obtain a compensation information group corresponding to the second sub-block list information. This prevents repeated traversal of the motion vectors of the sub-block list information, thereby reducing redundancy and wasting computing resources. Subsequently, the second compensation information and the compensation information group are determined as a second compensation information group. Next, the first and second compensation information groups are updated to obtain the minimum motion vector values, thereby obtaining an updated compensation information group. This allows for dynamic updating of the compensation information group. Finally, the updated compensation information group is stored in the information storage structure. This allows for timely storage of the updated compensation information group, reducing the likelihood of delays during the encoding process and improving the flexibility and real-time performance of encoding. This reduces the waste of computing resources and improves the flexibility and real-time performance of encoding.

[0090] Further references Figure 2 As an implementation of the methods shown in the above figures, the present disclosure provides some embodiments of a compensation information storage method. These device embodiments are similar to Figure 1 Corresponding to the method embodiments shown, the device can be specifically applied to various electronic devices.

[0091] like Figure 2 As shown, some embodiments of the compensation information storage device 200 include: a generation unit 201, a first traversal unit 202, a first determination unit 203, a removal unit 204, a second traversal unit 205, a second determination unit 206, an update unit 207, and a storage unit 208. The generation unit 201 is configured to perform a list generation for each sub-block information corresponding to the created information storage structure to generate sub-block list information and obtain a sub-block list information set, wherein the sub-block list information in the sub-block list information set includes: optimal motion vector information corresponding to the current sub-block information, wherein the information storage structure is a structure for storing motion compensation information corresponding to a moving object in a preset video; the first traversal unit 202 is configured to perform a motion vector traversal on the first sub-block list information corresponding to the sub-block list information set to obtain a first compensation information group corresponding to the first sub-block list information; the first determination unit 203 is configured to, in response to determining that the second sub-block list information corresponding to the sub-block list information set exists in the first compensation information group, update the first sub-block list information corresponding to the second sub-block list information in the sub-block list information set. The motion vector of the table information is determined as the second compensation information corresponding to the above-mentioned second sub-block list information; the elimination unit 204 is configured to eliminate the above-mentioned first sub-block list information from the above-mentioned sub-block list information set to obtain the eliminated sub-block list information set; the second traversal unit 205 is configured to perform motion vector traversal on the above-mentioned second sub-block list information based on the above-mentioned eliminated sub-block list information set to obtain a compensation information group corresponding to the second sub-block list information; the second determination unit 206 is configured to determine the above-mentioned second compensation information and the above-mentioned compensation information group as a second compensation information group; the updating unit 207 is configured to perform motion vector minimum value update on the above-mentioned first compensation information group and the above-mentioned second compensation information group to obtain an updated compensation information group; the storage unit 208 is configured to store the above-mentioned updated compensation information group in the above-mentioned information storage structure.

[0092] It is understood that the units described in the device 200 are similar to those described in the reference Figure 1 Therefore, the operations, features and beneficial effects described above for the method are also applicable to the device 200 and the units included therein, and will not be repeated here.

[0093] Reference below Figure 3, which shows a structural diagram of an electronic device (such as a computing device) 300 suitable for implementing some embodiments of the present disclosure. Figure 3 The electronic device shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.

[0094] like Figure 3 As shown, the electronic device 300 may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 301, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 302 or a program loaded from a storage device 308 into a random access memory (RAM) 304. Various programs and data required for the operation of the electronic device 300 are also stored in the RAM 303. The processing device 301, the ROM 302, and the RAM 304 are connected to each other via a bus 304. An input / output (I / O) interface 305 is also connected to the bus 304.

[0095] Typically, the following devices may be connected to the I / O interface 305: an input device 306 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 307 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 308 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 309. The communication device 309 may allow the electronic device 300 to communicate with other devices wirelessly or by wire to exchange data. Figure 3 The electronic device 300 is shown with various devices, but it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed instead. Figure 3 Each block shown in the figure may represent one device, or may represent multiple devices as needed.

[0096] In particular, according to some embodiments of the present disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, some embodiments of the present disclosure include a computer program product comprising a computer program carried on a computer-readable medium, the computer program comprising program code for executing the method shown in the flowchart. In some such embodiments, the computer program can be downloaded and installed from a network via the communication device 309, or installed from the storage device 308, or installed from the ROM 302. When the computer program is executed by the processing device 301, the functions defined in the methods of some embodiments of the present disclosure are performed.

[0097] It should be noted that the computer-readable medium described in some embodiments of the present disclosure may be a computer-readable signal medium or a computer-readable storage medium or any combination of the two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In some embodiments of the present disclosure, the computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, device, or device. In some embodiments of the present disclosure, the computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, which carries computer-readable program code. Such a propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium that can transmit, propagate, or transfer a program for use by or in conjunction with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium may be transmitted using any suitable medium, including but not limited to wires, optical cables, RF (radio frequency), etc., or any suitable combination thereof.

[0098] In some embodiments, the client and server can communicate using any currently known or future developed network protocol, such as HTTP (Hypertext Transfer Protocol), and can be interconnected with any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), an internet (e.g., the Internet), and a peer-to-peer network (e.g., an ad hoc peer-to-peer network), as well as any currently known or future developed network.

[0099] The above-mentioned computer-readable medium may be included in the above-mentioned electronic device; or it may exist independently without being assembled into the electronic device. The above-mentioned computer-readable medium carries one or more programs. When the above-mentioned one or more programs are executed by the electronic device, the electronic device: generates a list for each sub-block information corresponding to the created information storage structure to generate sub-block list information and obtain a sub-block list information set, wherein the sub-block list information in the above-mentioned sub-block list information set includes: optimal motion vector information corresponding to the current sub-block information, wherein the above-mentioned information storage structure is a structure for storing motion compensation information corresponding to a moving object in a preset video; performs motion vector traversal on the first sub-block list information corresponding to the above-mentioned sub-block list information set to obtain a first compensation information group corresponding to the first sub-block list information; in response to determining the second sub-block list information corresponding to the above-mentioned sub-block list information set, The information exists in the first compensation information group, and the motion vector of the first sub-block list information corresponding to the second sub-block list information is determined as the second compensation information corresponding to the second sub-block list information; the first sub-block list information is removed from the sub-block list information set to obtain a removed sub-block list information set; based on the removed sub-block list information set, the motion vector traversal of the second sub-block list information is performed to obtain a compensation information group corresponding to the second sub-block list information; the second compensation information and the compensation information group are determined as a second compensation information group; the motion vector minimum value of the first compensation information group and the second compensation information group is updated to obtain an updated compensation information group; and the updated compensation information group is stored in the information storage structure.

[0100] Computer program code for performing the operations of some embodiments of the present disclosure may be written in one or more programming languages, or a combination thereof, including object-oriented programming languages ​​such as Java, Smalltalk, C++, and conventional procedural programming languages ​​such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet service provider).

[0101] The flowcharts and block diagrams in the accompanying drawings illustrate the possible implementation architecture, functions and operations of the systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each box in the flowchart or block diagram can represent a module, program segment, or a part of code, and the module, program segment, or a part of code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order than the order marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flowchart, and the combination of the boxes in the block diagram and / or flowchart, can be implemented with a dedicated hardware-based system that performs the specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.

[0102] The units described in some embodiments of the present disclosure may be implemented by software or by hardware. The units described may also be provided in a processor. For example, they may be described as follows: a processor comprising: a generation unit, a first traversal unit, a first determination unit, a removal unit, a second traversal unit, a second determination unit, an update unit, and a storage unit. The names of these units do not, in some cases, constitute limitations on the units themselves. For example, the storage unit may also be described as "a unit that stores the updated compensation information group to the information storage structure."

[0103] The functions described above herein may be performed, at least in part, by one or more hardware logic components. For example, and without limitation, exemplary types of hardware logic components that may be used include: field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chip (SOCs), complex programmable logic devices (CPLDs), and the like.

[0104] The above description is only an illustration of some preferred embodiments of the present disclosure and the technical principles used therein. Those skilled in the art should understand that the scope of the invention involved in the embodiments of the present disclosure is not limited to the technical solutions formed by the specific combination of the above technical features, but should also cover other technical solutions formed by any combination of the above technical features or their equivalent features without departing from the above inventive concept. For example, the above features are replaced with (but not limited to) technical features with similar functions disclosed in the embodiments of the present disclosure by each other to form a technical solution.

Claims

1. A compensation information storage method, comprising: Generate a list for each sub-block information corresponding to the created information storage structure to generate sub-block list information to obtain a sub-block list information set, wherein the sub-block list information in the sub-block list information set includes: optimal motion vector information corresponding to the current sub-block information, wherein the information storage structure is a structure for storing motion compensation information corresponding to a moving object in a preset video; Performing motion vector traversal on the first sub-block list information corresponding to the sub-block list information set to obtain a first compensation information group corresponding to the first sub-block list information; In response to determining that the corresponding second sub-block list information in the sub-block list information set exists in the first compensation information group, determining a motion vector of the first sub-block list information corresponding to the second sub-block list information as second compensation information corresponding to the second sub-block list information; Eliminating the first sub-block list information from the sub-block list information set to obtain a post-elimination sub-block list information set; performing motion vector traversal on the second sub-block list information according to the eliminated sub-block list information set to obtain a compensation information group corresponding to the second sub-block list information; determining the second compensation information and the compensation information group as a second compensation information group; performing motion vector minimum value updating on the first compensation information group and the second compensation information group to obtain an updated compensation information group; The updated compensation information group is stored in the information storage structure.

2. The method according to claim 1, wherein The step of generating a list for each sub-block information corresponding to the created information storage structure to generate sub-block list information and obtain a sub-block list information set includes: Performing sub-block information traversal on each sub-block information corresponding to the created information storage structure to generate a traversed sub-block information group corresponding to each sub-block information, thereby obtaining a traversed sub-block information group set; Deduplication is performed on the traversed sub-block information set to obtain a deduplication sub-block information set; Each deduplicated sub-block information group in the deduplicated sub-block information group set is determined as sub-block list information to obtain a sub-block list information set.

3. The method according to claim 1, wherein The updating of the motion vector minimum value of the first compensation information group and the second compensation information group to obtain an updated compensation information group includes: Determining offsets for each sub-block information in the first compensation information group and the second compensation information group to obtain an offset set corresponding to the sub-block information; Dividing the offset set corresponding to the sub-block information into adjacent sub-block information to obtain an adjacent sub-block information group set; Each adjacent sub-block information group in the adjacent sub-block information group set is sorted by motion vector, and the adjacent sub-block information corresponding to the minimum motion vector in the sorting result is stored to obtain the sub-block information corresponding to the minimum motion vector as updated compensation information, thereby obtaining an updated compensation information group.

4. A compensation information storage device, comprising: a generating unit configured to generate a list for each sub-block information corresponding to the created information storage structure to generate sub-block list information and obtain a sub-block list information set, wherein the sub-block list information in the sub-block list information set includes: optimal motion vector information corresponding to the current sub-block information, wherein the information storage structure is a structure for storing motion compensation information corresponding to a moving object in a preset video; A first traversal unit is configured to perform motion vector traversal on the first sub-block list information corresponding to the sub-block list information set to obtain a first compensation information group corresponding to the first sub-block list information; a first determining unit configured to, in response to determining that the second sub-block list information corresponding to the second sub-block list information in the sub-block list information set exists in the first compensation information group, determine a motion vector corresponding to the second sub-block list information of the first sub-block list information as second compensation information corresponding to the second sub-block list information; a removing unit configured to remove the first sub-block list information from the sub-block list information set to obtain a removed sub-block list information set; A second traversal unit is configured to perform motion vector traversal on the second sub-block list information according to the eliminated sub-block list information set to obtain a compensation information group corresponding to the second sub-block list information; a second determining unit configured to determine the second compensation information and the compensation information group as a second compensation information group; an updating unit configured to perform motion vector minimum value update on the first compensation information group and the second compensation information group to obtain an updated compensation information group; The storage unit is configured to store the updated compensation information group in the information storage structure.

5. An electronic device comprising: one or more processors; a storage device having one or more programs stored thereon; When the one or more programs are executed by the one or more processors, the one or more processors implement the method according to any one of claims 1 to 3.

6. A computer-readable medium having a computer program stored thereon, wherein: When the program is executed by a processor, the method according to any one of claims 1 to 3 is implemented.