A cache unit and method for intra block copy

By dividing the intra-block copying buffer unit into a reconstruction buffer and a compression buffer, and using 50% lossy compression technology, the problem of low coding efficiency under the buffer size limit is solved, and more efficient intra-block copying buffer management is achieved.

CN114780450BActive Publication Date: 2026-02-10SUN YAT SEN UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210293955.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-03-24
Publication Date
2026-02-10
Estimated Expiration
2042-03-24

AI Technical Summary

Technical Problem

In existing video coding standards, buffer size limitations in intra-frame block copying lead to reduced coding efficiency, and existing methods increase the complexity of hardware decoders.

Method used

Design an intra-frame block copying buffer unit, which is divided into a reconstruction buffer and a compression buffer. The reconstruction buffer is used to store reconstructed pixel blocks, and the compression buffer is used to store compressed bitstream. A 50% lossy compression technique is used to achieve fast access to the reference block.

Benefits of technology

While meeting the cache size limit, more reference blocks are cached, which improves encoding efficiency and reduces the complexity of the hardware decoder.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114780450B_ABST
    Figure CN114780450B_ABST
Patent Text Reader

Abstract

The application discloses a kind of intra block copy cache unit and method, cache unit includes reconstruction cache area and compressed cache area;Reconstruction cache area is used to store the reconstruction pixel block obtained by target coding unit for encoding processing, and / or the compressed block obtained by dividing reconstruction pixel block;Compressed cache area is used to receive the compressed bitstream obtained by compressed block for compression processing, and sequentially stores compressed bitstream according to the time identifier of compressed bitstream;Compression processing is the loss compression of compression rate 50%.The application enables the cache of intra block copy to apply the compression technology based on block, and through the cooperation of reconstruction cache area and compressed cache area, with the encoding process, the reference pixel information of cache is updated, so that more reference blocks are cached under the size limit of the cache of intra block copy, and fast access to reference block is realized, which can be widely applied in the field of video coding technology.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of video coding technology, and in particular to a buffer unit and method for intra-frame block copying. Background Technology

[0002] Intra-block copy coding is a coding method first proposed in the HEVC video coding standard. It belongs to an intra-frame prediction method. Specifically, during the coding process, the current coding unit uses the part of the current frame that has been coded as a reference, selects an appropriate reconstructed part as a reference block, and uses a block vector to record the position of the reference block relative to the coding unit, and finally completes the coding of the coding unit.

[0003] Intra-block copying offers high coding efficiency, but it requires the use of pixel information from the reconstructed portion of the current frame. This consumes additional memory to store the reconstructed portion, or alternatively, off-chip storage can be used, which impacts coding efficiency and increases the complexity of the hardware decoder. Existing video coding standards like VVC and AVS3 limit the reference area for intra-block copying by designing a pixel block buffer (limited to 128*128 pixels in luminance pixels) to store the reconstructed portion of the current frame. This is called the intra-block copying buffer. Consequently, some coding efficiency is sacrificed. Summary of the Invention

[0004] In view of this, embodiments of the present invention provide a caching unit and method for intra-frame block copying, which caches more reference blocks while satisfying the size limit of the intra-frame block copying cache, and enables fast access to the reference blocks.

[0005] In a first aspect, embodiments of the present invention provide a buffer unit for intra-frame block copying, including a reconstruction buffer and a compression buffer;

[0006] The reconstruction buffer is used to store the reconstructed pixel blocks obtained by the target encoding unit through encoding processing, and / or to divide the reconstructed pixel blocks into compressed blocks;

[0007] The compression buffer is used to receive the compressed bitstream obtained by compressing the compressed block, and to store the compressed bitstream sequentially according to the time identifier of the compressed bitstream; the compression process is lossy compression with a compression rate of 50%.

[0008] Optionally, the compression buffer includes six compression buffer partitions, which are used to store the compressed bitstream. The position of the compressed block relative to the reconstruction buffer corresponds to the position of the compressed bitstream relative to the compression buffer.

[0009] Optionally, the compression buffer stores the compressed bitstream sequentially into the compression buffer partition according to the time identifier;

[0010] Wherein, when there is a free compressed buffer partition in the compressed buffer area, the compressed bitstream is stored in the free compressed buffer partition according to the time identifier;

[0011] When there is no free compressed buffer partition in the compressed buffer area, the compressed bitstream is overwritten and stored in the compressed buffer partition according to the time identifier.

[0012] Optionally, the cache space size of the cache unit is 128×128;

[0013] The reconstruction cache area has a cache size of 64×64, the compressed cache area has a cache size of 96×128, and each compressed cache partition in the compressed cache area has a cache size of 32×64.

[0014] Secondly, embodiments of the present invention provide a method for intra-frame block copying, comprising:

[0015] The target image is acquired and preprocessed to obtain a set of coding units in a preset order;

[0016] The encoding units in the encoding unit set are encoded according to the preset order;

[0017] Based on the reconstruction buffer, the reconstructed pixel blocks obtained by the target encoding unit through the encoding process are stored, and / or the reconstructed pixel blocks are divided into compressed blocks;

[0018] According to the compression buffer, the compressed bitstream obtained by compressing the compressed block is received and stored sequentially according to the time identifier; the compression process is lossy compression with a compression ratio of 50%.

[0019] Optionally, the method further includes:

[0020] The location of the reference data is determined based on the target reference coordinates, and the reference data includes the reconstructed pixel block and the compressed bitstream;

[0021] Read the reference data according to its location;

[0022] Wherein, when the reference data is located in the reconstruction cache area, the reference data is read directly;

[0023] When the reference data is located in the compression buffer, the compressed bitstream is decompressed, and the reference data is read according to the decompressed compressed bitstream.

[0024] Optionally, the step of preprocessing the acquired target image to obtain a set of coding units in a preset order includes:

[0025] The target image is divided into multiple CTUs, and each CTU is divided into 4 coding units;

[0026] The first encoding order of the CTU in the target image is preset;

[0027] The second encoding order of the encoding units in the preset CTU is established.

[0028] The set of encoded units in a preset order is obtained according to the first encoding order and the second encoding order.

[0029] Optionally, the step of receiving the compressed bitstream obtained by compressing the compressed block according to the compressed buffer, and storing the compressed bitstream sequentially according to the time identifier, includes:

[0030] According to the time identifier, the compressed bitstream is sequentially stored into multiple compressed cache partitions of the compressed cache area;

[0031] Wherein, when there is a free compressed buffer partition in the compressed buffer area, the compressed bitstream is stored in the free compressed buffer partition according to the time identifier;

[0032] When there is no free compressed buffer partition in the compressed buffer area, the compressed bitstream is overwritten and stored in the compressed buffer partition according to the timestamp;

[0033] The position of the compressed block relative to the reconstruction buffer corresponds to the position of the compressed bitstream relative to the compressed buffer.

[0034] Thirdly, embodiments of the present invention provide an electronic device, including a processor and a memory;

[0035] The memory is used to store programs;

[0036] The processor executes the program to implement the method described above.

[0037] Fourthly, embodiments of the present invention provide a computer-readable storage medium storing a program that is executed by a processor to implement the method described above.

[0038] This invention also discloses a computer program product or computer program, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device can read the computer instructions from the computer-readable storage medium and execute the computer instructions, causing the computer device to perform the aforementioned method.

[0039] This invention provides a buffer unit for intra-frame block copying, including a reconstruction buffer and a compression buffer. The reconstruction buffer stores reconstructed pixel blocks obtained by encoding processing by a target coding unit, and / or divides the reconstructed pixel blocks into compressed blocks. The compression buffer receives compressed bitstreams obtained by compressing the compressed blocks and stores the compressed bitstreams sequentially according to their timestamps. The compression processing is lossy compression with a compression rate of 50%. This invention enables the intra-frame block copying buffer to apply block-based compression technology. Through the cooperation of the reconstruction buffer and the compression buffer, the reference pixel information of the buffer is updated during the encoding process, allowing more reference blocks to be cached while meeting the size limit of the intra-frame block copying buffer, and enabling fast access to the reference blocks. Attached Figure Description

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

[0041] Figure 1 This is a schematic diagram illustrating the principles of existing video coding standards.

[0042] Figure 2 This is a schematic diagram of the structure of a buffer unit for intra-frame block copying provided in an embodiment of the present invention;

[0043] Figure 3 A schematic diagram illustrating the principle of an intra-frame block copying method provided in an embodiment of the present invention;

[0044] Figure 4 This is a schematic diagram illustrating the principle of compression processing for intra-frame block copying provided in an embodiment of the present invention. Detailed Implementation

[0045] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0046] To address the problems existing in the prior art, the first aspect of the present invention provides a buffer unit for intra-frame block copying, including a reconstruction buffer and a compression buffer;

[0047] The reconstruction buffer is used to store the reconstructed pixel blocks obtained by the target encoding unit through encoding processing, and / or to divide the reconstructed pixel blocks into compressed blocks;

[0048] The compression buffer is used to receive the compressed bitstream obtained by compressing the compressed block, and to store the compressed bitstream sequentially according to the time identifier of the compressed bitstream; the compression process is lossy compression with a compression rate of 50%.

[0049] Optionally, the compression buffer includes six compression buffer partitions, which are used to store the compressed bitstream. The position of the compressed block relative to the reconstruction buffer corresponds to the position of the compressed bitstream relative to the compression buffer.

[0050] Optionally, the compression buffer stores the compressed bitstream sequentially into the compression buffer partition according to the time identifier;

[0051] Wherein, when there is a free compressed buffer partition in the compressed buffer area, the compressed bitstream is stored in the free compressed buffer partition according to the time identifier;

[0052] When there is no free compressed buffer partition in the compressed buffer area, the compressed bitstream is overwritten and stored in the compressed buffer partition according to the time identifier.

[0053] Optionally, the cache space size of the cache unit is 128×128;

[0054] The reconstruction cache area has a cache size of 64×64, the compressed cache area has a cache size of 96×128, and each compressed cache partition in the compressed cache area has a cache size of 32×64.

[0055] Another aspect of the present invention provides a method for intra-frame block copying, comprising:

[0056] The target image is acquired and preprocessed to obtain a set of coding units in a preset order;

[0057] The encoding units in the encoding unit set are encoded according to the preset order;

[0058] Based on the reconstruction buffer, the reconstructed pixel blocks obtained by the target encoding unit through the encoding process are stored, and / or the reconstructed pixel blocks are divided into compressed blocks;

[0059] According to the compression buffer, the compressed bitstream obtained by compressing the compressed block is received and stored sequentially according to the time identifier; the compression process is lossy compression with a compression ratio of 50%.

[0060] Optionally, the method further includes:

[0061] The location of the reference data is determined based on the target reference coordinates, and the reference data includes the reconstructed pixel block and the compressed bitstream;

[0062] Read the reference data according to its location;

[0063] Wherein, when the reference data is located in the reconstruction cache area, the reference data is read directly;

[0064] When the reference data is located in the compression buffer, the compressed bitstream is decompressed, and the reference data is read according to the decompressed compressed bitstream.

[0065] Optionally, the step of preprocessing the acquired target image to obtain a set of coding units in a preset order includes:

[0066] The target image is divided into multiple CTUs, and each CTU is divided into 4 coding units;

[0067] The first encoding order of the CTU in the target image is preset;

[0068] The second encoding order of the encoding units in the preset CTU is established.

[0069] The set of encoded units in a preset order is obtained according to the first encoding order and the second encoding order.

[0070] Optionally, the step of receiving the compressed bitstream obtained by compressing the compressed block according to the compressed buffer, and storing the compressed bitstream sequentially according to the time identifier, includes:

[0071] According to the time identifier, the compressed bitstream is sequentially stored into multiple compressed cache partitions of the compressed cache area;

[0072] Wherein, when there is a free compressed buffer partition in the compressed buffer area, the compressed bitstream is stored in the free compressed buffer partition according to the time identifier;

[0073] When there is no free compressed buffer partition in the compressed buffer area, the compressed bitstream is overwritten and stored in the compressed buffer partition according to the timestamp;

[0074] The position of the compressed block relative to the reconstruction buffer corresponds to the position of the compressed bitstream relative to the compressed buffer.

[0075] Another aspect of the present invention provides an electronic device, including a processor and a memory;

[0076] The memory is used to store programs;

[0077] The processor executes the program to implement the method described above.

[0078] The content of the method embodiments of the present invention is applicable to the embodiments of the present electronic device. The specific functions implemented by the embodiments of the present electronic device are the same as those of the above method embodiments, and the beneficial effects achieved are also the same as those achieved by the above methods.

[0079] Another aspect of this invention provides a computer-readable storage medium storing a program that is executed by a processor to implement the methods described above.

[0080] The content of the method embodiments of the present invention is applicable to the computer-readable storage medium embodiments. The specific functions implemented by the computer-readable storage medium embodiments are the same as those of the above method embodiments, and the beneficial effects achieved are also the same as those achieved by the above methods.

[0081] This invention also discloses a computer program product or computer program, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device can read the computer instructions from the computer-readable storage medium and execute the computer instructions, causing the computer device to perform the aforementioned method.

[0082] The following describes in detail the implementation principle of the buffer unit and method for intra-frame block copying of the present invention:

[0083] To address the problems existing in the prior art, this invention designs a randomly accessible pixel block cache for the intra-frame block copy mode of the AVS3 standard. This allows the intra-frame block copy cache to apply block-based compression technology and update the reference pixel information of the cache during the encoding process. This enables more reference blocks to be cached while meeting the size limit of the intra-frame block copy cache, and achieves fast access to the reference blocks.

[0084] It should be noted that the AVS3 video coding standard proposal suggests updating the intra-frame block copying buffer using Virtual Pipeline Data Units (VPDUs) as units. This expands the reference range of the intra-frame block copying method during encoding, while maintaining a fixed total memory size, thereby improving coding efficiency. This approach is feasible, but there is still room for improvement.

[0085] In addition, the AVS3 video coding standard differs from the VVC video coding standard in its encoding order, therefore the algorithm design for intra-frame block copying also needs to be adjusted. (Refer to...) Figure 1The encoding process under VPDU division in the AVS3 standard is given. Among them, (1) the encoding order common to VVC and AVS3, and the squares with different numbers represent the encoding order of different VPDUs; (2) the encoding order unique to AVS3, which is characterized by the fact that the encoding order of VPDUs in CTU may change; (3) CTU with a size of 128*128; (4) VPDU with a size of 64*64.

[0086] Block-based compression techniques are widely used in image compression and reference frame compression. Using a compressed block of a certain size as the basic unit, compression is achieved by truncating bits within the pixels of the block using Differential Pulse Code Modulation (DPCM) and variable-length coding, thus reducing the actual size of the block. A certain compression ratio can be maintained by adjusting the truncation bits. However, this compression method cannot be directly applied to buffers for intra-frame block duplication due to conflicts between the block division and irregular coding unit shapes.

[0087] In some specific embodiments, this invention divides the intra-frame block copying buffer into two parts, using VPDUs as units. The first part stores reconstructed pixel information of the VPDU size, and the second part stores compressed reconstructed pixel information. Together, they realize the storage, compression, updating, and random access of reconstructed pixel information of partially encoded regions during the encoding process. This allows for caching more reference blocks while meeting the size limit of the intra-frame block copying buffer, and enables fast access to the reference blocks.

[0088] Specifically, the intra-frame block copying buffer unit provided by the present invention is divided into two parts, including:

[0089] The first part is the reconstruction buffer, a buffer the size of a Virtual Pipeline Data Unit (VPDU) that stores reconstructed blocks of the encoded units already encoded in the current VPDU during the encoding process. For encoded units larger than the VPDU, lossy compression with a compression rate of 50% is performed immediately after obtaining the reconstructed value, using this buffer as the unit, on a block-based basis. The pixel information in this buffer corresponds to the portion located in the current VPDU during the encoding process.

[0090] The second part, the compressed buffer, is a cache consisting of the remaining space, used to store compressed reconstructed blocks. The formation of compressed blocks includes: the compression mentioned in the first part; and compressing and saving the reconstructed block of the previous VPDU stored in the first part of the cache when the encoding process enters a different VPDU. The pixel information in the second part of the cache corresponds to a certain number of VPDUs that have been encoded during the encoding process.

[0091] Reference Figure 2The diagram shows the first and second part of the buffer structure. Each rectangle in the diagram corresponds to a memory space storing one VPDU region of data. The total buffer size for intra-block copying is 128*128. The first part of the buffer stores the information of the current VPDU, and the second part of the buffer stores the information of up to 6 compressed VPDUs. Throughout the encoding process, these two buffers are used to dynamically update the reference pixel information required for intra-block copying.

[0092] After each VPDU compression is completed, it is stored in the corresponding location of the second part of the cache. The specific coordinate mapping rule for storing the corresponding location of the second part is as follows:

[0093] Using VPDUs as the unit, let the coordinates of the VPDUs in the image be (pic_vpdu_x, pic_vpdu_y), and the coordinates of the VPDUs in the second buffer be (buf_vpdu_x, buf_vpdu_y). The width and height of the second buffer are (3, 2). Then:

[0094] buf_vpdu_x=pic_vpdu_x%3;

[0095] buf_vpdu_y=pic_vpdu_y%2;

[0096] by Figure 1 Taking the encoding order unique to AVS3 as an example, such as (2) Figure 3 As shown in the top diagram, when there is a free partition in the second part, VPDUs 1 to 6, after compression, are sequentially stored in the second part's buffer area; as... Figure 3 As shown in the bottom diagram, when there is no free partition in the second part, the VPDU will then compress 7 according to the time identifiers of 1 to 6 already stored in the second part, overwriting the earliest 1 stored.

[0097] The compression process described above uses a lossy block compression method with a compression ratio controlled below 50%, ensuring that the compressed memory space occupied is less than half of the original data. This allows the compressed blocks to be stored regularly in the second cache, enabling fast addressing. (See reference...) Figure 4 Specifically, the compressed block size is 16*16. Before compression, it contains 16*16 pixels of information. After compression, it becomes the bitstream obtained by compressing the compressed block using a lossy block compression method. The first part of the buffer can be divided into 4*4 compressed blocks. After each compressed block is compressed, it is stored in the memory space corresponding to one VPDU in the second part of the buffer.

[0098] Based on the above buffer design, when the coding unit of intra-block copying needs to obtain the reconstructed block as a reference block, the coordinates of the reference block are transformed into the second buffer. All relevant compressed blocks are decompressed to achieve random access. The decompressed reference block value is stored in the first buffer. The position corresponding to the current coding unit (since the current coding unit has not yet completed encoding, the space used to store the reconstructed block of the current unit in the first buffer is empty) is used for motion compensation in the intra-block copying mode. The part of the reference block located within the current VPDU is directly read from and stored in the first buffer.

[0099] It should be noted that the intra-frame block copying described in this invention refers to the copying of encoded blocks of an intra-frame image. Specifically, the embodiments of this invention involve a buffer unit used after copying an intra-frame block and a method for copying an intra-frame block based on the buffer unit.

[0100] The following detailed description of the intra-block copying method of the buffer unit for intra-block copying in this invention, combined with a specific encoding process, should be understood as follows: This description is only used to demonstrate the feasibility of the embodiments of this invention and should not be considered as a limitation of this invention.

[0101] The sizes mentioned below refer to the size of the luma channel (Y) in YUV video format. The Code Tree Unit (CTU) size is 128*128. The Virtual Parallelizable Decoding Unit (VPDU) size is 64*64. Compression is performed using lossy compression at 50% based on 16*16 compression blocks. The compressed VPDU occupies 32*64 bytes of space.

[0102] The encoding process under the AVS3 standard can be summarized as follows:

[0103] Step 1: Divide the image into multiple CTUs, and each CTU is divided into 4 VPDUs;

[0104] Step 2: The encoding process is carried out in units of CTU, proceeding from left to right and from top to bottom;

[0105] Step 3: Encode a CTU. Encode each VPDU sequentially in the order of top left, top right, bottom left, bottom right or top left, bottom left, top right, bottom right; the VPDU area being encoded is called the current VPDU; in addition, 2 or 4 VPDUs can be encoded simultaneously.

[0106] Construction steps for a randomly accessible pixel block buffer in intra-block copy mode:

[0107] Step 1: Allocate a memory space of size 128*128 as a buffer for the intra-block copy method;

[0108] Step 2: For a given space, use a 64*64 space of the same size as the VPDU as the first part of the cache; use the remaining space of 96*128 as the second part of the cache;

[0109] Step 3: During the above encoding process, the reconstructed pixel block obtained when encoding the current VPDU is saved to the first part of the buffer; if 2 or 4 VPDUs are encoded at the same time, after the reconstructed pixel block is obtained, it is divided into multiple VPDUs, compressed with the help of the first part of the buffer, and saved to the second part of the buffer (the reason is that the reconstructed pixel block is larger than the first part of the buffer at this time, so it is immediately compressed and saved to the second part of the buffer).

[0110] Step 4: After the encoding of the current VPDU is completed, before encoding the next VPDU according to the above encoding process, compress the reconstructed block of the VPDU stored in the first part of the cache and save it to the second part of the cache.

[0111] Step 5: After each VPDU reconstruction block in the first part of the cache is compressed, it is stored in a 32*64 memory space in the second part of the cache according to the coordinate mapping rules mentioned above. The second part of the cache stores reconstruction block information for up to 6 VPDUs, excluding the current VPDU.

[0112] The steps to read the reference block from the above cache are as follows:

[0113] Step 6: Calculate the positions of all relevant corresponding compressed blocks based on the coordinates of the required reference block;

[0114] Step 7: For the reference block portion located in the first cache, read it directly;

[0115] Step 8: For the compressed reference block portion located in the second cache, decompress all relevant compressed blocks and read the required portion;

[0116] Step 9: The reference block pixel values ​​obtained in steps 7 and 8 are stored in the corresponding position in the first part of the current coding unit's buffer for the encoder to read.

[0117] In summary, addressing the problem of low coding efficiency caused by the limitation of buffer size in existing technologies, which restricts the reference area, this invention divides the intra-block copy buffer into two parts based on VPDU units. The first part stores reconstructed pixel information of the VPDU size, and the second part stores compressed reconstructed pixel information. Together, they realize the storage, compression, updating, and random access of reconstructed pixel information of partially encoded areas during the encoding process. A randomly accessible pixel block buffer for the AVS3 standard intra-block copy mode is designed, enabling the application of block-based compression technology to the intra-block copy buffer. The buffer's reference pixel information is updated during the encoding process, allowing for the caching of more reference blocks while meeting the buffer size limit, and enabling fast access to these reference blocks. This invention can compress the reconstructed pixel information generated during the encoding process using a block-based lossy compression method, solving the problem of compressing irregularly shaped coding units using a block-based compression algorithm and providing the information for reference in the intra-block copy method. The compressed reconstructed block occupies less space than when stored in pixel form. With a given size intra-block copy buffer, more reference pixel information can be stored, thereby expanding the reference area of ​​the intra-block copy method and improving coding efficiency. Furthermore, this invention can handle coding orders in the AVS3 standard that differ from the VVC standard, and can also handle coding units larger than VPDUs.

[0118] This invention also discloses a computer program product or computer program, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device can read the computer instructions from the computer-readable storage medium and execute the computer instructions, causing the computer device to perform the method described above.

[0119] In some alternative embodiments, the functions / operations mentioned in the block diagrams may not occur in the order shown in the operation diagrams. For example, depending on the functions / operations involved, two consecutively shown blocks may actually be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order. Furthermore, the embodiments presented and described in the flowcharts of this invention are provided by way of example to provide a more comprehensive understanding of the technology. The disclosed methods are not limited to the operations and logic flows presented herein. Alternative embodiments are contemplated in which the order of various operations is altered and sub-operations described as part of a larger operation are executed independently.

[0120] Furthermore, although the invention has been described in the context of functional modules, it should be understood that, unless otherwise stated, one or more of the described functions and / or features may be integrated into a single physical system and / or software module, or one or more functions and / or features may be implemented in a separate physical system or software module. It is also understood that a detailed discussion of the actual implementation of each module is unnecessary for understanding the invention. Rather, given the properties, functions, and internal relationships of the various functional modules in the system disclosed herein, the actual implementation of the module will be understood within the scope of conventional skill of an engineer. Therefore, those skilled in the art can implement the invention as set forth in the claims using ordinary techniques without excessive experimentation. It is also understood that the specific concepts disclosed are merely illustrative and not intended to limit the scope of the invention, which is determined by the full scope of the appended claims and their equivalents.

[0121] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this invention, essentially, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0122] The logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as a ordered list of executable instructions for implementing logical functions, and can be embodied in any computer-readable medium for use by, or in conjunction with, an instruction execution system, system, or device (such as a computer-based system, a processor-including system, or other system that can fetch and execute instructions from, an instruction execution system, system, or device). For the purposes of this specification, "computer-readable medium" can mean any system that can contain, store, communicate, propagate, or transmit programs for use by, or in conjunction with, an instruction execution system, system, or device.

[0123] More specific examples of computer-readable media (a non-exhaustive list) include: electrical connections (electronic systems) with one or more wires, portable computer disk drives (magnetic systems), random access memory (RAM), read-only memory (ROM), erasable and editable read-only memory (EPROM or flash memory), fiber optic systems, and portable optical disc read-only memory (CDROM). Furthermore, computer-readable media can even be paper or other suitable media on which the program can be printed, since the program can be obtained electronically, for example, by optically scanning the paper or other medium, followed by editing, interpreting, or otherwise processing as necessary, and then stored in computer memory.

[0124] It should be understood that various parts of the present invention can be implemented in hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented in software or firmware stored in memory and executed by a suitable instruction execution system. For example, if implemented in hardware, as in another embodiment, it can be implemented using any one or a combination of the following techniques known in the art: discrete logic circuits having logic gates for implementing logical functions on data signals, application-specific integrated circuits (ASICs) having suitable combinational logic gates, programmable gate arrays (PGAs), field-programmable gate arrays (FPGAs), etc.

[0125] In the description of this specification, references to terms such as "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of the invention. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples.

[0126] Although embodiments of the invention have been shown and described, those skilled in the art will understand that various changes, modifications, substitutions and alterations can be made to these embodiments without departing from the principles and spirit of the invention, the scope of which is defined by the claims and their equivalents.

[0127] The above is a detailed description of the preferred embodiments of the present invention, but the present invention is not limited to the embodiments described. Those skilled in the art can make various equivalent modifications or substitutions without departing from the spirit of the present invention, and these equivalent modifications or substitutions are all included within the scope defined by the claims of this application.

Claims

1. A method for intra-frame block copying, characterized in that, include: The target image is acquired and preprocessed to obtain a set of coding units in a preset order; The encoding units in the encoding unit set are encoded according to the preset order; Based on the reconstruction buffer, the reconstructed pixel blocks obtained by the target encoding unit through the encoding process are stored, and / or the reconstructed pixel blocks are divided into compressed blocks; According to the compression buffer, the compressed bitstream obtained by compressing the compressed block is received, and the compressed bitstream is stored sequentially according to the time identifier; the compression process is lossy compression with a compression ratio of 50%; The step of acquiring the target image and preprocessing it to obtain a set of coding units in a preset order includes: The target image is divided into multiple CTUs, and each CTU is divided into 4 coding units; The first encoding order of the CTU in the target image is preset; The second encoding order of the encoding units in the preset CTU is established. The set of encoded units in a preset order is obtained according to the first encoding order and the second encoding order; The step of receiving the compressed bitstream obtained by compressing the compressed block according to the compressed buffer, and storing the compressed bitstream sequentially according to the time identifier, includes: According to the time identifier, the compressed bitstream is sequentially stored into multiple compressed cache partitions of the compressed cache area; Wherein, when there is a free compressed buffer partition in the compressed buffer area, the compressed bitstream is stored in the free compressed buffer partition according to the time identifier; When there is no free compressed buffer partition in the compressed buffer area, the compressed bitstream is overwritten and stored in the compressed buffer partition according to the timestamp; The position of the compressed block relative to the reconstruction buffer corresponds to the position of the compressed bitstream relative to the compressed buffer.

2. The method for intra-frame block copying according to claim 1, characterized in that, The method further includes: The location of the reference data is determined based on the target reference coordinates, and the reference data includes the reconstructed pixel block and the compressed bitstream; Read the reference data according to its location; Wherein, when the reference data is located in the reconstruction cache area, the reference data is read directly; When the reference data is located in the compression buffer, the compressed bitstream is decompressed, and the reference data is read according to the decompressed compressed bitstream.

3. A buffer unit for intra-frame block copying, characterized in that, The method for intra-frame block copying according to claim 1, wherein the buffer unit includes a reconstruction buffer and a compression buffer; The reconstruction buffer is used to store the reconstructed pixel blocks obtained by the target encoding unit through encoding processing, and / or to divide the reconstructed pixel blocks into compressed blocks; The compression buffer is used to receive the compressed bitstream obtained by compressing the compressed block, and to store the compressed bitstream sequentially according to the time identifier of the compressed bitstream; the compression process is lossy compression with a compression rate of 50%.

4. The buffer unit for intra-frame block copying according to claim 3, characterized in that, The compression buffer includes six compression buffer partitions, which are used to store the compressed bitstream. The position of the compressed block relative to the reconstruction buffer corresponds to the position of the compressed bitstream relative to the compression buffer.

5. The buffer unit for intra-frame block copying according to claim 4, characterized in that, The compression buffer stores the compressed bitstream sequentially into the compression buffer partition according to the time identifier; Wherein, when there is a free compressed buffer partition in the compressed buffer area, the compressed bitstream is stored in the free compressed buffer partition according to the time identifier; When there is no free compressed buffer partition in the compressed buffer area, the compressed bitstream is overwritten and stored in the compressed buffer partition according to the time identifier.

6. The buffer unit for intra-frame block copying according to claim 4, characterized in that, The cache space size of the cache unit is 128×128; The reconstruction cache area has a cache size of 64×64, the compressed cache area has a cache size of 96×128, and each compressed cache partition in the compressed cache area has a cache size of 32×64.

7. An electronic device, characterized in that, Including the processor and memory; The memory is used to store programs; The processor executes the program to implement the method as described in any one of claims 1 to 2.

8. A computer-readable storage medium, characterized in that, The storage medium stores a program that is executed by a processor to implement the method as described in any one of claims 1 to 2.

Citation Information

Patent Citations

  • Video caching method and device and readable storage medium

    CN110312156A

  • Intra-frame block copy reference block compression method

    CN112333446A