Encoding method and apparatus, decoding method and apparatus, and storage medium and program product

By deduplicating the BVP candidate list and determining the search point in the intra-block copying technique, the problem of wasted computational resources caused by duplicate elements is solved, and the encoding and decoding efficiency is improved.

WO2025252173A1PCT designated stage Publication Date: 2025-12-11ZTE CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/099414
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-06-07
Filing Date
2025-06-05
Publication Date
2025-12-11

AI Technical Summary

Technical Problem

In existing intra-frame block copying techniques, the class-based BVP candidate list construction method leads to duplicate elements, resulting in a waste of computational resources during encoding and decoding.

Method used

By deduplicating the BVP candidate list of the target block and determining the second BVP based on multiple search points, and adding it to the deduplicated candidate list, it is ensured that there are no duplicate elements in the list, thus reducing the waste of computing resources.

Benefits of technology

It effectively reduces the waste of computing resources in the encoding and decoding process and improves encoding and decoding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025099414_11122025_PF_FP_ABST
    Figure CN2025099414_11122025_PF_FP_ABST
Patent Text Reader

Abstract

Provided are an encoding method and apparatus, a decoding method and apparatus, and a storage medium and a program product. The encoding method comprises: performing a de-duplication operation on a block vector prediction (BVP) candidate list of a target block, wherein the target block is a code block to be processed among a plurality of code blocks obtained by means of dividing a video frame, and the BVP candidate list comprises a preset number of first BVPs; determining a plurality of search points around the target block; and on the basis of the plurality of search points and the target block, determining a second BVP, and adding the second BVP into the BVP candidate list that has been subjected to de-duplication, wherein the number of BVPs comprised in the BVP candidate list with the second BVP having been added is a preset number; and on the basis of the BVP candidate list with the second BVP having been added, encoding the target block.
Need to check novelty before this filing date? Find Prior Art

Description

Encoding method, decoding method and device, storage medium and program product

[0001] The present disclosure claims priority to Chinese Patent Application No. 202410745326.0, filed on June 7, 2024, the entire contents of which are incorporated herein by reference. TECHNICAL FIELD

[0002] The present disclosure relates to the technical field of image processing, and particularly relates to an encoding method, a decoding method and device, a storage medium and a program product. BACKGROUND

[0003] Intra block copy (IBC) is one of the tools for screen content coding, which helps to improve the compression efficiency of screen content. IBC mainly includes two steps. Step one is the construction process of the block vector prediction (BVP) candidate list, which is mainly constructed based on a class method, and there are at most 7 BVPs in the candidate list. Step two is to select an optimal BVP as a starting point based on the determined BVP candidate list, construct a search window for searching, and obtain an optimal matching block for subsequent coding and decoding. SUMMARY

[0004] In one aspect, an encoding method is provided. The encoding method includes:

[0005] performing a deduplication operation on a block vector prediction (BVP) candidate list of a target block, the target block being a to-be-processed coding block in a plurality of coding blocks obtained by dividing a video frame, the BVP candidate list including a preset number of first BVPs;

[0006] determining a plurality of search points around the target block;

[0007] determining a second BVP based on the plurality of search points and the target block, and adding the second BVP to the deduplicated BVP candidate list, the deduplicated BVP candidate list including a number of BVPs being the preset number;

[0008] encoding the target block based on the deduplicated BVP candidate list.

[0009] In another aspect, a decoding method is provided. The decoding method includes:

[0010] performing a deduplication operation on a block vector prediction (BVP) candidate list of a target block, the target block being a to-be-processed coding block in a plurality of coding blocks obtained by dividing a video frame, the BVP candidate list including a preset number of first BVPs;

[0011] determining a plurality of search points around the target block;

[0012] determine a second BVP based on the plurality of search points and the target block, and add the second BVP to the de-duplicated BVP candidate list; the number of BVPs included in the added BVP candidate list is the preset number;

[0013] decode the target block based on the added BVP candidate list.

[0014] In another aspect, the embodiments of the present disclosure provide an encoding apparatus. The encoding apparatus comprises a de-duplication module, a search module and an encoding module;

[0015] The de-duplication module is configured to perform a de-duplication operation on a block vector prediction (BVP) candidate list of a target block; the target block is a to-be-processed coding block in a plurality of coding blocks divided from a video frame, and the BVP candidate list includes a preset number of first BVPs;

[0016] The search module is configured to determine a plurality of search points around the target block;

[0017] The search module is further configured to determine a second BVP based on the plurality of search points and the target block, and add the second BVP to the de-duplicated BVP candidate list; the number of BVPs included in the added BVP candidate list is the preset number;

[0018] The encoding module is configured to encode the target block based on the added BVP candidate list.

[0019] In another aspect, the embodiments of the present disclosure provide a decoding apparatus. The decoding apparatus comprises a de-duplication module, a search module and a decoding module;

[0020] The de-duplication module is configured to perform a de-duplication operation on a block vector prediction (BVP) candidate list of a target block; the target block is a to-be-processed coding block in a plurality of coding blocks divided from a video frame, and the BVP candidate list includes a preset number of first BVPs;

[0021] The search module is configured to determine a plurality of search points around the target block;

[0022] The search module is further configured to determine a second BVP based on the plurality of search points and the target block, and add the second BVP to the de-duplicated BVP candidate list; the number of BVPs included in the added BVP candidate list is the preset number;

[0023] The decoding module is configured to decode the target block based on the added BVP candidate list.

[0024] In yet another aspect, the embodiments of the present disclosure provide a computer readable storage medium, having stored thereon computer program instructions, which when executed by a processor implement the method of any of the above aspects.

[0025] In yet another aspect, the embodiments of the present disclosure provide a computer program product, comprising computer program instructions, which when executed by a processor implement the method of any of the above aspects. BRIEF DESCRIPTION OF DRAWINGS

[0026] In order to more clearly illustrate the technical solutions in the present disclosure, the following will briefly introduce the drawings needed to be used in some embodiments of the present disclosure. Obviously, the drawings described in the following description are only some of the drawings of the present disclosure, and other drawings can also be obtained by those of ordinary skill in the art based on these drawings.

[0027] FIG. 1 is a schematic diagram of a block-based video coding framework in the related art.

[0028] FIG. 2 is a schematic diagram of a video decoding framework in the related art.

[0029] FIG. 3 is a schematic diagram of a video coding system according to some embodiments.

[0030] FIG. 4 is a flowchart of an encoding method according to some embodiments.

[0031] FIG. 5 is a schematic diagram of a plurality of search points according to some embodiments.

[0032] FIG. 6 is a flowchart of another encoding method according to some embodiments.

[0033] FIG. 7 is a flowchart of a decoding method according to some embodiments.

[0034] FIG. 8 is a schematic diagram of the structure of an encoding apparatus according to some embodiments.

[0035] FIG. 9 is a schematic diagram of the structure of a decoding apparatus according to some embodiments.

[0036] FIG. 10 is a schematic diagram of the structure of a coding apparatus according to some embodiments. DETAILED DESCRIPTION

[0037] The technical solutions in the present disclosure will be described clearly and completely below in combination with the drawings in the present disclosure. Obviously, the described embodiments are only some of the embodiments of the present disclosure, rather than all the embodiments. Based on the embodiments in the present disclosure, all other embodiments obtained by those of ordinary skill in the art without creative labor fall within the scope of protection of the present disclosure.

[0038] It should be noted that in the present disclosure, the expressions such as "exemplarily" or "for example" are used to represent an example, illustration or description. Any embodiment or design scheme described as "exemplarily" or "for example" in the present disclosure should not be interpreted as more preferred or more advantageous than other embodiments or design schemes. Rather, the expressions such as "exemplarily" or "for example" are intended to present the relevant concept in a detailed manner.

[0039] Hereinafter, the terms "first", "second", and the like are used only for descriptive purposes, and should not be construed as indicating or implying relative importance or implicitly indicating the number of the technical features indicated. Therefore, the features defined with "first", "second", and the like can explicitly or implicitly include one or more of the features.

[0040] In the description of the present disclosure, unless otherwise specified, " / " means "or", for example, A / B can mean A or B. "And / or" herein is only a description of the association relationship of the associated objects, which means that there can be three kinds of relationships, for example, A and / or B can mean: only A, A and B, and only B. In addition, "at least one" means one or more, and "multiple" means two or more.

[0041] First, the technical terms related to the present disclosure are introduced.

[0042] 1, Intra prediction: refers to the use of the reconstructed pixel values of the spatial neighboring coding blocks (i.e. in the same frame image as the current block) of the current block to perform prediction coding.

[0043] 2, Inter prediction: refers to the use of the reconstructed pixel values of the temporal neighboring image blocks (in different frame images from the current block) of the current image block to perform prediction coding. Inter prediction uses the correlation in the video time domain. Since the video sequence contains strong temporal correlation, the pixels of the current image are predicted using the pixels of the neighboring coded images, so as to effectively remove the temporal redundancy of the video.

[0044] 3, Block vector prediction (BVP): BVP is applied in the intra block copy (IBC) technology. BVP is used to predict the motion vector between the current block (to-be-processed coding block) in the video frame and the best matching block in the other coded blocks in the video frame.

[0045] FIG. 1 is a schematic diagram of a block-based video coding framework provided by some technologies. The video coding framework can be used to implement the encoding end processing flow of the embodiments of the present disclosure. In the video coding framework, by dividing an input image signal into a plurality of coding blocks, through the processing of modules such as luminance mapping, rate control, transform, scaling and quantization, scaling, inverse transform, chrominance scaling, intra estimation, intra prediction, intra / inter joint prediction, inter prediction, motion estimation, filter control analysis, inverse luminance mapping, deblocking filter (DBK), sample adaptive offset (SAO), adaptive loop filter (ALF), and the like, a bitstream and an output video signal are obtained through context-based adaptive binary arithmetic coding (CABAC) to realize compression of the video.

[0046] It should be noted that in FIG. 1, video compression is mainly performed from two angles of temporal redundancy and spatial redundancy. For example, a block-based hybrid video coding framework is introduced as follows:

[0047] First, the current block is divided according to several division types. Second, prediction is performed based on the division result, which mainly involves intra prediction and inter prediction, respectively, to remove spatial redundancy and temporal redundancy. Then, for the reconstructed image obtained by prediction, the original image is subtracted, that is, the residual is further reduced in redundancy through transform and quantization, and then binary coded through entropy coding. Finally, post-processing modules such as deblocking filter and sample adaptive offset are used to eliminate block effect and other problems.

[0048] FIG. 2 is a video decoding framework provided by some technologies. As shown in FIG. 2, first, the binary bitstream obtained after transformation is CABAC decoded. Second, the decoded result is inverse quantized and inverse transformed. Then, the reconstructed image is obtained by adding the prediction result selected according to the mode to the inverse quantized and inverse transformed result. Finally, the reconstructed image is post-processed, that is, DBF, SAO, ALF, and the like, and finally stored in a decoding image buffer, and an output video signal is output.

[0049] The current IBC technology adopts a class-based BVP candidate list construction method to construct a BVP candidate list including 7 BVPs. Further, according to the constructed BVP candidate list, an optimal BVP is selected as a starting point to construct a search window for searching to obtain an optimal matching block for subsequent coding and decoding.

[0050] However, by the above-mentioned construction method of the BVP candidate list based on the class, there may be repeated elements in the constructed BVP candidate list. Thus, in the process of encoding or decoding using the BVP candidate list, these repeated elements will cause redundant calculation, resulting in waste of computing resources in the encoding and decoding process.

[0051] Based on this, the embodiment of the present disclosure provides an encoding method, which encodes the target block by de-duplicating the BVP candidate list of the target block and then adding a new BVP to complete the BVP candidate list. In this way, it can be ensured that there is no repeated BVP in the BVP candidate list, and the waste of computing resources in the encoding and decoding process is reduced.

[0052] In some embodiments, the embodiment of the present disclosure de-duplicates the BVP candidate list of the target block, and determines a plurality of search points around the target block. Further, according to the plurality of search points and the target block, a second BVP is determined and added to the de-duplicated BVP candidate list. The number of BVPs in the added BVP candidate list is a preset number. Finally, the target block is encoded / decoded based on the added BVP candidate list. Since there is no repeated content in the BVP candidate list, the waste of computing resources in the encoding and decoding process is effectively reduced.

[0053] The system architecture to which the embodiments of the present disclosure are applied is described below. FIG. 3 is an exemplary block diagram of a video coding system according to some embodiments. The encoding end 301 and the decoding end 302 of the video coding system are used to encode or decode the target block according to the encoding method or decoding method proposed by the present disclosure, so as to reduce the consumption of computing resources.

[0054] As shown in FIG. 3, the video coding system includes an encoding end 301 and a decoding end 302. The encoding end 301 generates encoded video data. Therefore, the encoding end 301 can be referred to as a video encoding device. The decoding end 302 can decode the encoded video data generated by the encoding end 301. Therefore, the decoding end 302 can be referred to as a video decoding device. Various embodiments of the encoding end 301, the decoding end 302, or both can include one or more processors and a memory coupled to the one or more processors. The memory can include, but is not limited to, RAM, ROM, EEPROM, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures accessible to a computer, as described herein.

[0055] The encoding end 301 and the decoding end 302 can include various devices, including a desktop computer, a mobile computing device, a notebook (for example, a laptop) computer, a tablet computer, a set-top box, a telephone handset such as a so-called "smart" phone, a television, a camera, a display device, a digital media player, a video gaming console, an in-vehicle computer, or the like.

[0056] FIG. 4 is a flowchart of an encoding method according to some embodiments. Exemplarily, the encoding method provided by the present disclosure can be applied in the system architecture shown in FIG. 3. The present disclosure takes the encoding end as the execution subject of the encoding method for illustration.

[0057] As shown in FIG. 4, the encoding method provided by the present disclosure can include S401 to S404.

[0058] S401, performing a deduplication operation on a BVP candidate list of a target block.

[0059] The target block is a to-be-processed coding block in a plurality of coding blocks divided from a video frame. The BVP candidate list includes a preset number of first BVPs. It should be noted that the first BVP in the present disclosure refers to the original BVP in the BVP candidate list. Taking a preset number of 7 as an example for illustration.

[0060] In some embodiments, in the intra block copy technology, the encoding end first generates a BVP candidate list corresponding to the current to-be-processed coding block (target block) based on the construction method of the class-based BVP candidate list.

[0061] Further, the deduplication operation is performed on the constructed BVP candidate list to remove the duplicate BVPs in the BVP candidate list. It should be noted that the deduplication operation mentioned here can be using a deduplication function or using other deduplication methods, which are not limited in the embodiments of the present disclosure.

[0062] The construction method of the above-mentioned class-based BVP candidate list will be described below.

[0063] First, for the class-based BVP candidate list construction process of IBC, the candidate types are first divided into 7 classes, and the classification method of the 7 classes is as follows:

[0064] Class 0: the area of the coding block is greater than a threshold value 32;

[0065] Class 1: the frequency of the BV is greater than 2;

[0066] Class 2: the coordinates of the top-left corner of the coding block are located on the left side of the target block;

[0067] Class 3: the coordinates of the top-left corner of the coding block are located on the top side of the target block;

[0068] Category 4: the coordinate of the top-left corner of the coding block is located at the top-left of the target block;

[0069] Category 5: the coordinate of the top-left corner of the coding block is located at the top-right of the target block;

[0070] Category 6: the coordinate of the top-left corner of the coding block is located at the bottom-left of the target block.

[0071] Secondly, before starting to construct the BVP candidate list, a history-based BVP table (HBVP) is obtained, and the contents in the HBVP table are obtained based on historical data. After the HBVP table is constructed, the BVP candidate list used in the IBC process can be constructed, including the following steps:

[0072] 1. Traverse the HBVP table in reverse order, and fill the corresponding category in the order of {0, 1, 6, 5, 4, 3, 2} when traversing an element;

[0073] 2. After traversing the HBVP table, if some categories are still empty, the following process is performed:

[0074] If categories 0, 2, 4, and 6 are empty, the candidate elements of the empty domain on the left are added to the corresponding positions, and if the empty domain candidate elements do not exist, the candidate elements in the HBVP table with a position of “HBVP table length % (category number + 1)” are selected. Correspondingly, if categories 1, 3, and 5 are empty, the candidate elements of the empty domain above are added to the corresponding positions, and if the empty domain candidate elements do not exist, the candidate elements in the same position (HBVP table length % (category number + 1)) are also added.

[0075] S402, determine a plurality of search points around the target block.

[0076] Each search point in the plurality of search points corresponds to a pixel position in the video frame.

[0077] In some embodiments, the plurality of search points can be adjusted according to the information of the target block.

[0078] In some embodiments, the position of each search point in the plurality of search points satisfies one of the following:

[0079] located on the left of the target block;

[0080] located above the target block;

[0081] located at the top-left of the target block.

[0082] In some embodiments, the number of the plurality of search points is adjusted according to the size of the target block. For example, the size of the target block is proportional to the number of the search points, and the larger the target block is, the more the number of the search points corresponding thereto.

[0083] For example, FIG. 5 is a diagram of a plurality of search points according to some embodiments. As shown in FIG. 5, 27 search points are arranged on the left, top and top-left of the target block. It should be noted that the positions and number of the search points include but are not limited to the example shown in FIG. 5, and can be adjusted according to the target block. In addition, the arrangement of the search points is not limited to the example shown in FIG. 5, and can be sparsely and uniformly arranged, or sparsely and unevenly arranged.

[0084] In some embodiments, the interval between two adjacent search points in the plurality of search points can be adjusted according to the size of the target block and / or the frame type of the target block.

[0085] It should be noted that the interval herein refers to the number of pixel points between two adjacent search points. For example, the larger the size of the target block is, the more the number of pixel points between two adjacent search points. For another example, the interval between two adjacent search points is adjusted according to the frame type of the video frame. For example, the frame type is divided into I-frame (also referred to as key frame), P-frame (also referred to as prediction frame) and B-frame (also referred to as bidirectional dependent frame), and the interval between two adjacent search points of the target block of the I-frame is set to be greater than that of the P-frame and the B-frame. For example, the interval corresponding to the I-frame is 8 pixel points, and the interval corresponding to the P-frame and the B-frame is 4 pixel points.

[0086] S403, determining a second BVP based on the plurality of search points and the target block, and adding the second BVP to the de-duplicated BVP candidate list.

[0087] The number of BVPs included in the added BVP candidate list is a preset number.

[0088] In some embodiments, the number of BVPs in the de-duplicated BVP candidate list is less than the preset number. Therefore, the encoding end can determine the BVP to be added, i.e., the second BVP, based on the plurality of search points and the target block, and add the second BVP to the de-duplicated BVP candidate list.

[0089] It should be noted that the process of determining the second BVP and adding the second BVP to the BVP candidate list can be repeatedly performed until the number of BVPs in the added BVP candidate list is the preset number (for example, 7).

[0090] In some embodiments, as shown in FIG. 6, S403 can be implemented as S4031-S4033.

[0091] S4031. Starting from a starting search point in the plurality of search points, a search process is performed on the plurality of search points to obtain a target search point.

[0092] In some embodiments, the starting search point described above can be adjusted according to the position of the target block and / or the size of the target block. For example, the search point indicated by the triangular arrow in FIG. 5 is a starting search point, which can be the search point closest to the upper left corner of the target block. Alternatively, the starting search point can be the search point farthest from the upper left corner of the target block, which is not limited in the embodiments of the present disclosure.

[0093] In some embodiments, the search process performed on the plurality of search points in S4031 can be implemented as follows: performing the search process on the plurality of search points in a preset search direction and in a preset search manner.

[0094] The preset search direction can be adjusted according to the position of the target block and / or the size of the target block. For example, the preset search direction shown in FIG. 5 is from inside to outside, layer by layer outward search. Alternatively, the preset search direction can be from top to bottom (for example, in the up-down direction shown in the figure), and the search is performed in a zigzag manner, row by row, which is not limited in the embodiments of the present disclosure.

[0095] In some embodiments, the preset search manner described above is any one of the following:

[0096] Point-by-point search;

[0097] Search with an interval of one or more points.

[0098] For example, the plurality of search points in FIG. 5 are labeled according to the preset search direction shown in the figure, and the serial numbers of each search point in the plurality of search points are labeled as 1, 2, 3, …, 27, respectively.

[0099] Taking the point-by-point search manner as an example, the encoding end first searches the search point with serial number 1 to determine the second BVP, then searches the search point with serial number 2, and so on.

[0100] Taking the search manner with an interval of one point as an example, the encoding end first searches the search point with serial number 1, then searches the search point with serial number 3, and then searches the search point with serial number 5, and so on.

[0101] Taking the search manner with an interval of two points as an example, the encoding end first searches the search point with serial number 1, then searches the search point with serial number 4, and then searches the search point with serial number 7, and so on.

[0102] In an embodiment, the number of search points (which can also be referred to as search step) in each search interval in the preset search mode described above can be determined according to the size of the target block and / or the number of search points. For example, the larger the target block or the more the number of search points, the longer the search step.

[0103] S4032, determine a second BVP based on the target search point and the target block, and add the second BVP to the BVP candidate list after deduplication.

[0104] The encoder determines a second BVP based on the target search point and the target block each time a target search point is obtained, and adds the second BVP to the BVP candidate list after deduplication.

[0105] In some embodiments, the determination of the second BVP based on the target search point and the target block includes the following modes:

[0106] Determine the second BVP by subtracting the coordinates of the target search point from the coordinates of the target block; or

[0107] Determine the second BVP by weighted sum of the coordinates of the target search point and the coordinates of the target block; or

[0108] Determine the second BVP by bias processing of the coordinates of the target search point and the coordinates of the target block.

[0109] For example, the coordinates of the target search point are represented as (x1, y1), and the coordinates of the target block are represented as (x2, y2). The second BVP can be represented as (x1-x2, y1-y2). Alternatively, the second BVP can be represented as (a·x1+b·x2, a·y1+b·y2), where a is a weighting coefficient or a bias coefficient corresponding to the target search point, and b is a weighting coefficient or a bias coefficient corresponding to the target block.

[0110] In some embodiments, after the second BVP is determined, the second BVP is added to the BVP candidate list if the second BVP is valid.

[0111] It should be noted that the second BVP valid here means that the second BVP is not repeated with the original BVP in the BVP candidate list and is available (there is a related function in IBC technology to determine whether each BVP is available).

[0112] S4033, when the number of BVPs included in the BVP candidate list after addition is less than the preset number, perform the next search on a plurality of search points and add the second BVP to the BVP candidate list after deduplication, until the number of BVPs in the BVP candidate list after addition is the preset number.

[0113] After adding the second BVP each time, it is determined whether the number of BVPs in the current BVP candidate list is equal to a preset number (such as 7). If the number of BVPs in the current BVP candidate list is less than the preset number, the foregoing S4031-S4032 are repeatedly executed to determine a new second BVP and add it to the BVP candidate list until the number of BVPs in the BVP candidate list is the preset number.

[0114] S404, encoding the target block based on the added BVP candidate list.

[0115] The encoding end can use the added BVP candidate list to encode the target block.

[0116] FIG. 7 is a flowchart of a decoding method according to some embodiments. By way of example, the decoding method provided by the present disclosure can be applied to the system architecture shown in FIG. 3. The present disclosure takes the decoding end as the execution subject of the decoding method for illustration.

[0117] As shown in FIG. 7, the decoding method provided by the present disclosure can include the following steps: S701-S704.

[0118] S701, performing a deduplication operation on the BVP candidate list of the target block.

[0119] The target block is a to-be-processed coding block in a plurality of coding blocks divided from a video frame, and the BVP candidate list includes a preset number of first BVPs.

[0120] S702, determining a plurality of search points around the target block.

[0121] S703, determining a second BVP based on the plurality of search points and the target block, and adding the second BVP to the deduplicated BVP candidate list.

[0122] The added BVP candidate list includes a preset number of BVPs.

[0123] S704, decoding the target block based on the added BVP candidate list.

[0124] It should be noted that the related description of S701-S704 described above can refer to the description of the encoding end described above, which will not be repeated here.

[0125] The embodiment of the disclosure provides an encoding method. The embodiment of the disclosure performs a deduplication operation on a BVP candidate list of a target block, and determines a plurality of search points around the target block. Further, a second BVP is determined according to the plurality of search points and the target block, and is added to the deduplicated BVP candidate list. The number of BVPs in the added BVP candidate list is a preset number. Finally, the target block is encoded / decoded based on the added BVP candidate list. Since there is no repeated content in the BVP candidate list, the waste of computing resources in the encoding / decoding process is effectively reduced.

[0126] It can be understood that, in order to implement the above functions, the encoding device or the decoding device comprises a hardware structure and / or a software module corresponding to each function. Those skilled in the art should easily realize that, in combination with the algorithm steps of each example described in the embodiment of the disclosure, the disclosure can be realized in the form of hardware or a combination of hardware and computer software. Whether a certain function is implemented in hardware or in the form of computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the disclosure.

[0127] The embodiment of the disclosure can divide the functions of the encoding device or the decoding device according to the above-mentioned method embodiments, for example, each function module can be divided according to each function, or two or more functions can be integrated into one function module. The integrated module can be realized in the form of hardware or software. It should be noted that the division of the modules in the embodiment of the disclosure is illustrative, and is only a logical function division. In actual implementation, another division method can be used. The following will be described taking the example of dividing each function module according to each function.

[0128] FIG. 8 is a structural schematic diagram of an encoding device according to some embodiments. The encoding device can perform the encoding method provided by the above-mentioned method embodiments. As shown in FIG. 8, the encoding device comprises a deduplication module 801, a search module 802 and an encoding module 803.

[0129] The deduplication module 801 is configured to perform a deduplication operation on a block vector prediction (BVP) candidate list of a target block. The target block is a to-be-processed coding block in a plurality of coding blocks obtained by dividing a video frame, and the BVP candidate list comprises a preset number of first BVPs.

[0130] The search module 802 is configured to determine a plurality of search points around the target block.

[0131] The search module 802 is further configured to determine a second BVP based on the plurality of search points and the target block, and add the second BVP to the BVP candidate list after deduplication; and the number of BVPs included in the BVP candidate list after addition is a preset number.

[0132] The encoding module 803 is configured to encode the target block based on the BVP candidate list after addition.

[0133] In an implementation manner, the position of each search point in the plurality of search points satisfies one of the following: located to the left of the target block; located above the target block; and located to the top left of the target block.

[0134] In another implementation manner, the number of the plurality of search points is adjusted according to the size of the target block.

[0135] In yet another implementation manner, the interval between two adjacent search points in the plurality of search points is adjusted according to the size of the target block and / or the frame type of the target block.

[0136] In yet another implementation manner, the search module 802 is configured to: start a search process on the plurality of search points from a starting search point in the plurality of search points to obtain a target search point; determine a second BVP based on the target search point and the target block, and add the second BVP to the BVP candidate list after deduplication; and when the number of BVPs included in the BVP candidate list after addition is less than the preset number, perform a next search on the plurality of search points and add a second BVP to the BVP candidate list after deduplication, until the number of BVPs in the BVP candidate list after addition is the preset number.

[0137] In yet another implementation manner, the starting search point is adjusted according to the position of the target block and / or the size of the target block.

[0138] In yet another implementation manner, the search module 802 is configured to: subtract the coordinates of the target search point from the coordinates of the target block to determine the second BVP; or perform weighted summation on the coordinates of the target search point and the coordinates of the target block to determine the second BVP; or perform bias processing on the coordinates of the target search point and the coordinates of the target block to determine the second BVP.

[0139] In yet another implementation manner, the search module 802 is configured to perform a search process on the plurality of search points in a preset search direction and in a preset search manner.

[0140] In yet another implementation manner, the preset search direction is adjusted according to the position of the target block and / or the size of the target block.

[0141] In yet another implementation manner, the preset search manner is any one of the following: point-by-point search; and search with an interval of one or more points.

[0142] FIG. 9 is a structural schematic diagram of a decoding apparatus according to some embodiments, which can perform the decoding method provided by the above method embodiments. As shown in FIG. 9, the decoding apparatus includes a deduplication module 901, a search module 902, and a decoding module 903.

[0143] The deduplication module 901 is configured to perform a deduplication operation on a block vector prediction (BVP) candidate list of a target block, the target block being a to-be-processed coding block in a plurality of coding blocks divided from a video frame, and the BVP candidate list including a preset number of first BVPs.

[0144] The search module 902 is configured to determine a plurality of search points around the target block.

[0145] The search module 902 is further configured to determine a second BVP based on the plurality of search points and the target block, and add the second BVP to the deduplicated BVP candidate list, the number of BVPs included in the added BVP candidate list being the preset number.

[0146] The decoding module 903 is configured to decode the target block based on the added BVP candidate list.

[0147] In the case of implementing the functions of the above integrated modules in the form of hardware, the disclosure embodiments provide another structure of the codec apparatus involved in the above embodiments. As shown in FIG. 10, the codec apparatus 100 includes a processor 1002 and a bus 1004. In some embodiments, the codec apparatus can further include a memory 1001; in some embodiments, the codec apparatus can further include a communication interface 1003.

[0148] The processor 1002 can be various exemplary logical blocks, modules and circuits described in combination with the disclosure embodiments. The processor 1002 can be a central processing unit, a general purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a transistor logic device, a hardware component or any combination thereof. The processor 1002 can implement or execute various exemplary logical blocks, modules and circuits described in combination with the disclosure embodiments. The processor 1002 can also be a combination of computing functions, such as a combination of one or more microprocessors, a combination of DSP and microprocessor, etc.

[0149] The communication interface 1003 is configured to connect with other devices through a communication network. The communication network can be an Ethernet, a wireless access network, a wireless local area network (WLAN), etc.

[0150] The memory 1001 can be a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (RAM) or other type of dynamic storage device that can store information and instructions, an electrically erasable programmable read-only memory (EEPROM), a magnetic disk storage medium or other magnetic storage device, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and that can be accessed by a computer, but is not limited thereto.

[0151] As an implementation manner, the memory 1001 can exist independently of the processor 1002, and the memory 1001 can be connected to the processor 1002 through the bus 1004, and used for storing instructions or program codes. When the processor 1002 invokes and executes the instructions or program codes stored in the memory 1001, the method provided in the embodiments of the present disclosure can be implemented.

[0152] In another implementation manner, the memory 1001 can also be integrated with the processor 1002.

[0153] The bus 1004 can be an extended industry standard architecture (EISA) bus or the like. The bus 1004 can be divided into an address bus, a data bus, a control bus, and the like. For the convenience of representation, only one thick line is shown in FIG. 10, but it does not mean that there is only one bus or only one type of bus.

[0154] In some embodiments, the memory 1001 stores executable instructions, and when the processor 1002 executes the executable instructions, the coding device performs the method described in any of the above embodiments.

[0155] Some embodiments of the present disclosure provide a computer-readable storage medium (for example, a non-transitory computer-readable storage medium) having computer program instructions stored therein, and the computer program instructions, when executed on a computer, cause the computer to perform the method described in any of the above embodiments.

[0156] By way of example, the computer-readable storage medium can include a magnetic storage device (e.g., hard disk, floppy disk, magnetic strips), an optical disk (e.g., compact disk (CD), digital versatile disk (DVD)), a smart card, and a flash memory device (e.g., card, stick, key drive), among others. The computer-readable storage medium described in the present disclosure can represent one or more devices and / or other machine-readable storage mediums for storing information. The term "machine-readable storage medium" can include, without being limited to, wireless channels and various other media capable of storing, containing, and / or carrying instruction and / or data.

[0157] The embodiments of the present disclosure provide a computer program product containing instructions, which, when executed on a computer, cause the computer to perform the method described in any of the above embodiments.

[0158] The above merely provides the specific implementation of the present disclosure, but the protection scope of the present disclosure is not limited thereto, any change or replacement within the technical scope disclosed in the present disclosure should be covered within the protection scope of the present disclosure. Therefore, the protection scope of the present disclosure should be subject to the protection scope of the claims.

Claims

1. An encoding method comprising: de-duplicating a block vector prediction (BVP) candidate list of a target block; the target block being a to-be-processed coding block in a plurality of coding blocks divided from a video frame, the BVP candidate list comprising a preset number of first BVPs; determining a plurality of search points around the target block; determining a second BVP based on the plurality of search points and the target block, and adding the second BVP to the de-duplicated BVP candidate list; the BVP candidate list after the adding comprising a number of BVPs being the preset number; encoding the target block based on the BVP candidate list after the adding.

2. The method of claim 1, wherein, a position of each search point in the plurality of search points satisfying one of: being on a left side of the target block; being on an upper side of the target block; being on a left upper side of the target block.

3. The method of claim 1, wherein, a number of the plurality of search points being adjusted according to a size of the target block.

4. The method of claim 1, wherein, an interval between two adjacent search points in the plurality of search points being adjusted according to the size of the target block and / or a frame type of the target block.

5. The method of claim 1, wherein, determining a second BVP based on the plurality of search points and the target block, and adding the second BVP to the de-duplicated BVP candidate list, comprising: starting from a starting search point in the plurality of search points, performing a search process on the plurality of search points to obtain a target search point; determining the second BVP based on the target search point and the target block, and adding the second BVP to the de-duplicated BVP candidate list; when the number of BVPs in the BVP candidate list after the adding is less than the preset number, performing a next search on the plurality of search points and adding a second BVP to the de-duplicated BVP candidate list until the number of BVPs in the BVP candidate list after the adding is the preset number.

6. The method of claim 5, wherein, the starting search point being adjusted according to a position of the target block and / or a size of the target block.

7. The method of claim 5, wherein, the determining the second BVP based on the target search point and the target block, comprising: determining the second BVP by subtracting coordinates of the target search point from coordinates of the target block; or determining the second BVP by weighted sum of the coordinates of the target search point and the coordinates of the target block; or determining the second BVP by bias processing on the coordinates of the target search point and the coordinates of the target block.

8. The method of claim 5, wherein, the performing the search process on the plurality of search points, comprising: performing the search process on the plurality of search points in a preset search manner according to a preset search direction.

9. The method of claim 8, wherein, the preset search direction being adjusted according to the position of the target block and / or the size of the target block.

10. The method of claim 8, wherein, the preset search manner being any one of: point-by-point search; searching with an interval of one or more points.

11. A decoding method comprising: de-duplicating a block vector prediction (BVP) candidate list of a target block; the target block being a to-be-processed coding block in a plurality of coding blocks divided from a video frame, the BVP candidate list comprising a preset number of first BVPs; determining a plurality of search points around the target block; determine a second BVP based on the plurality of search points and the target block, and add the second BVP to the BVP candidate list after deduplication; the BVP candidate list after the adding comprises a preset number of BVPs; decode the target block based on the BVP candidate list after the adding.

12. An encoding apparatus comprising: a processor and a memory for storing processor-executable instructions; wherein the processor is configured to execute the instructions so that the communication device performs the encoding method according to any one of claims 1-10.

13. A decoding apparatus comprising: a processor and a memory for storing processor-executable instructions; wherein the processor is configured to execute the instructions so that the communication device performs the decoding method according to claim 11.

14. A computer readable storage medium, wherein, The computer readable storage medium stores computer instructions, when the computer instructions run on the communication device, make the communication device execute the encoding method according to any one of claims 1-10, or the decoding method according to claim 11.

15. A computer program product, wherein, The computer program product comprises computer instructions, when the computer instructions run on the computer, make the computer execute the encoding method according to any one of claims 1-10, or the decoding method according to claim 11.

Citation Information

Patent Citations

  • Installation structure of air conditioner attached to the exterior of a building in a drawer style

    KR102711720B1

  • Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning

    US20150208084A1

  • Template matching on IBC merge candidates

    US20230075788A1

  • Method, device, and recording medium for image encoding / decoding

    WO2024010377A1