Hash Table Construction Method, Device, and Equipment under IBC Mode

By constructing a Hash table in the IBC mode in the video encoding and decoding standard, the gradient information and Hash values ​​of the encoding unit are used to reduce the computational complexity of intra prediction, the problems of high encoding complexity and low encoding efficiency in the prior art are solved, and more efficient image encoding is achieved.

CN111953972BActive Publication Date: 2025-05-30TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202010838642.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-08-19
Publication Date
2025-05-30
Estimated Expiration
2040-08-19

AI Technical Summary

Technical Problem

In the existing video encoding and decoding standards, intra-frame block replication technology has problems such as high encoding complexity and low encoding efficiency.

Method used

By constructing a Hash table in IBC mode, the gradient information of the encoding unit is obtained, and the Hash value is obtained when the gradient information meets the conditions, and the encoding unit is added to the Hash table to provide a reference encoding unit to reduce the calculation complexity of the intra prediction process.

Benefits of technology

It effectively reduces the search complexity of the Hash table, improves the encoding efficiency, and ensures the image encoding quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111953972B_ABST
    Figure CN111953972B_ABST
Patent Text Reader

Abstract

The present application provides a method, apparatus, device and storage medium for constructing a Hash table in the IBC mode, which relates to the technical field of video coding and decoding. The method includes: obtaining gradient information of a coding unit; obtaining a Hash value of the coding unit when the gradient information meets the conditions; and adding the coding unit to the Hash table based on the Hash value of the coding unit. In the embodiments of the present application, by determining whether the gradient of the obtained coding unit meets the preset conditions, only the coding units with gradient information meeting the conditions are added to the Hash table based on their Hash values, effectively avoiding adding coding units with less image content to the Hash table, reducing the number of nodes in the Hash table, and thus effectively reducing the search complexity of the Hash table, improving the coding efficiency while ensuring the image coding quality.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the technical field of video encoding and decoding, and particularly to a method, apparatus, device and storage medium for constructing a Hash table in the IBC mode. Background Art

[0002] In current video encoding and decoding standards, such as HEVC (High Efficiency Video Coding), IBC (Intra BlockCopy) prediction technology is introduced for SCC (Screen Content Coding).

[0003] In related intra block copy technologies, the spatial correlation of screen content is utilized to perform a full search on the intra-coded region with high pixel accuracy, so that the pixels of the current block to be coded can be predicted from the pixels of the coded image on the current image, improving the coding efficiency.

[0004] There are problems of high coding complexity and low coding efficiency in related technologies. Summary of the Invention

[0005] The embodiments of the present application provide a method, apparatus, device and storage medium for constructing a Hash table in the IBC mode, which can be used to reduce the computational amount of the module corresponding to the traditional intra prediction mode, and further optimize the overall computational complexity of the intra prediction process. The technical solutions are as follows:

[0006] On the one hand, the embodiments of the present application provide a method for constructing a Hash table in the IBC mode, the method comprising:

[0007] Obtaining gradient information of a coding unit, the gradient information being used to reflect the texture complexity of the coding unit;

[0008] When the gradient information meets the conditions, obtaining the Hash value of the coding unit; wherein, the conditions are used to reduce the search complexity of the Hash table;

[0009] Adding the coding unit to the Hash table based on the Hash value of the coding unit, the Hash table being used to provide reference coding units.

[0010] On the other hand, the embodiments of the present application provide a device for constructing a Hash table in the IBC mode, the device comprising:

[0011] A gradient acquisition module, configured to obtain gradient information of a coding unit, the gradient information being used to reflect the texture complexity of the coding unit;

[0012] A Hash value acquisition module, configured to acquire the Hash value of the coding unit when the gradient information meets the conditions; wherein, the conditions are used to reduce the search complexity of the Hash table;

[0013] A Hash table update module, configured to add the coding unit to the Hash table based on the Hash value of the coding unit, and the Hash table is used to provide reference coding units. On the other hand, an embodiment of the present application provides a computer device, which includes a processor and a memory. At least one instruction, at least one program, a code set or an instruction set is stored in the memory, and the at least one instruction, the at least one program, the code set or the instruction set is loaded and executed by the processor to implement the above-mentioned Hash table construction method in the IBC mode.

[0014] On another aspect, an embodiment of the present application provides a computer-readable storage medium, in which at least one instruction, at least one program, a code set or an instruction set is stored, and the at least one instruction, the at least one program, the code set or the instruction set is loaded and executed by a processor to implement the above-mentioned Hash table construction method in the IBC mode.

[0015] On yet another aspect, an embodiment of the present application provides a computer program product or a computer program, which includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the above-mentioned Hash table construction method in the IBC mode.

[0016] The technical solution provided by the embodiment of the present application can bring the following beneficial effects:

[0017] By judging whether the gradient of the acquired coding unit meets the preset conditions, and then adding only the coding units whose gradient information meets the conditions to the Hash table based on their Hash values, it effectively avoids adding coding units with less image content to the Hash table, reduces the number of nodes in the Hash table, and thus effectively reduces the search complexity of the Hash table, improving the coding efficiency while ensuring the image coding quality. Description of the Drawings

[0018] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following will briefly introduce the drawings required for the description of the embodiments. Obviously, the following drawings are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.

[0019] Figure 1 is the basic flowchart of the video encoding process provided by an embodiment of the present application;

[0020] Figure 2 is the basic flowchart of the intra prediction process provided by an embodiment of the present application;

[0021] Figure 3 is the schematic diagram of the intra block copy mode provided by an embodiment of the present application;

[0022] Figure 4 is the simplified block diagram of the communication system provided by an embodiment of the present application;

[0023] Figure 5 is the schematic diagram of the placement of the video encoder and the video decoder in the streaming environment provided by an embodiment of the present application;

[0024] Figure 6 is the flowchart of the Hash table construction method in the IBC mode provided by an embodiment of the present application;

[0025] Figure 7 is the flowchart of the Hash table construction method in the IBC mode provided by another embodiment of the present application;

[0026] Figure 8 is the block diagram of the Hash table construction device in the IBC mode provided by an embodiment of the present application;

[0027] Figure 9 is the structural block diagram of the computer device provided by an embodiment of the present application. Detailed implementation manners

[0028] To make the objectives, technical solutions, and advantages of the present application clearer, the following will further describe the embodiments of the present application in detail with reference to the accompanying drawings.

[0029] Before introducing and explaining the embodiments of the present application, some terms that appear in the embodiments of the present application will be introduced and explained first.

[0030] The Hash table (HashTable), also called the hash table, is a data structure that directly accesses data according to the key value (Key value). That is to say, it accesses records by mapping the key value to a position in the table to speed up the search. This mapping function is called the hash function, and the array storing the records is called the hash table. In the IBC mode, the Hash table is mainly used to record and store the position information of the coding unit and its reference coding unit, so that the computer device can quickly encode the image according to the node information in the Hash table, improve the encoding efficiency, and ensure the quality of the encoded image.

[0031] Secondly, a brief introduction to video coding technology is provided in combination with Figure 1 Please refer to Figure 1 , which shows the basic flowchart of the video coding process provided by an embodiment of the present application.

[0032] A video signal refers to an image sequence including multiple frames. A frame is a representation of the spatial information of the video signal. Taking the YUV mode as an example, a frame includes a luminance sample matrix (Y) and two chrominance sample matrices (Cb and Cr). From the perspective of the acquisition method of the video signal, it can be divided into two methods: captured by a camera and generated by a computer. Due to different statistical characteristics, the corresponding compression coding methods may also be different.

[0033] In some mainstream video coding technologies, such as the H.265 / HEVC, H.266 / VVC (Versatile Video Coding) standard, and AVS (Audio Video coding Standard) (such as AVS3), a hybrid coding framework is adopted, and a series of operations and processes are performed on the input original video signal as follows:

[0034] 1. Block Partition Structure: The input image is divided into several non-overlapping processing units, and each processing unit will perform similar compression operations. This processing unit is called a CTU (Coding Tree Unit) or an LCU (Large Coding Unit). Further down, the CTU can continue to be divided more finely to obtain one or more basic coding units, called CUs (Coding Units). Each CU is the most basic element in a coding link. When performing prediction, the CU needs to be further divided into different PUs (Predict Units). The following describes various coding methods that may be adopted for each CU.

[0035] 2. Predictive Coding: It includes methods such as intra-frame prediction and inter-frame prediction. After the original video signal is predicted by the selected reconstructed video signal, a residual video signal is obtained. The encoding end needs to decide on the most suitable one among many possible predictive coding modes for the current CU and inform the decoding end. Among them, intra-frame prediction means that the predicted signal comes from the area that has been encoded and reconstructed within the same image. Inter-frame prediction means that the predicted signal comes from other images that have been encoded and are different from the current image (called reference images).

[0036] 3. Transform & Quantization: The residual video signal undergoes transformation operations such as DFT (Discrete Fourier Transform) and DCT (Discrete Cosine Transform), converting the signal into the transform domain, which is called transform coefficients. The signal in the transform domain further undergoes a lossy quantization operation, losing certain information, making the quantized signal conducive to compressed representation. In some video coding standards, there may be more than one transform method to choose from. Therefore, the encoder also needs to select one of the transforms for the current CU and inform the decoder. The fineness of quantization is usually determined by the quantization parameter. A larger QP (Quantization Parameter) value means that coefficients in a larger value range will be quantized to the same output, usually resulting in greater distortion and a lower bitrate; conversely, a smaller QP value means that coefficients in a smaller value range will be quantized to the same output, usually resulting in less distortion and a corresponding higher bitrate.

[0037] 4. Entropy Coding or Statistical Coding: The quantized transform domain signal will be statistically compressed encoded according to the frequency of each value, and finally output a binary (0 or 1) compressed bitstream. At the same time, other information generated during encoding, such as the selected mode, motion vectors, etc., also needs to be entropy encoded to reduce the bitrate. Statistical coding is a lossless coding method that can effectively reduce the bitrate required to represent the same signal. Common statistical coding methods include variable length coding (VLC) or context-adaptive binary arithmetic coding (CABAC).

[0038] 5. Loop Filtering: For an already encoded image, through operations such as inverse quantization, inverse transformation, and prediction compensation (the reverse operations of the above 2 - 4), a reconstructed decoded image can be obtained. Compared with the original image, due to the influence of quantization, some information is different from the original image, resulting in distortion. Filtering operations are performed on the reconstructed image, such as deblocking, SAO (Sample Adaptive Offset), or ALF (Adaptive Lattice Filter) and other filters, which can effectively reduce the degree of distortion caused by quantization. Since these filtered reconstructed images will be used as references for subsequent encoded images to predict future signals, the above filtering operations are also called loop filtering, that is, filtering operations within the encoding loop.

[0039] Next, Figure 2 a brief introduction to the intra - prediction technology of HEVC will be given. Please refer to Figure 2 , which shows the basic flowchart of the intra - prediction process provided by an embodiment of this application. As Figure 2 shown, the intra - prediction process may include the following steps:

[0040] 1. Reference pixel preparation: Since there is a strong correlation in the spatial domain of an image or video, that is, for a certain pixel, the value of this pixel is very close to the values of its neighboring pixels. Therefore, usually, the encoded pixel closest to the current PU is selected as the reference pixel for the pixels within the current PU. Optionally, in HEVC, the reference pixels are the row above the current PU and the column to the left. For example, for an N×N PU, N pixels in the upper - left, N pixels in the upper - right, N pixels on the left, N pixels in the lower - left, and 1 pixel in the upper - left corner, a total of 4N + 1 pixels are selected as reference pixels, where N is an integer greater than 1.

[0041] 2. Intra Mode Selection: In HEVC, there are 35 traditional intra prediction modes available for selection, namely: DC mode, Planar mode, and 33 angular modes. In addition, HEVC has added multiple optimized intra prediction modes for the intra prediction process of SCC. The optimized intra prediction modes include IBC mode and PLT mode. Among them, the PLT mode enumerates the color values of each coding block to generate a color table, and passes an index for each sample to indicate which color in the color table it belongs to. The decoding end generates a color table according to the rules and completes the reconstruction of the sample through the color table index. Due to the relatively complex calculation of the PLT mode, usually, the PLT mode is only used for coding blocks with a small number of colors. IBC is an intra coding tool adopted in the HEVC Screen Content Coding (SCC) extension. It uses the reconstructed blocks of the current frame as prediction blocks and performs motion compensation within the current coded image. It significantly improves the coding efficiency of screen content. In AVS3 and VVC, IBC technology is also adopted to improve the performance of screen content coding. IBC utilizes the spatial correlation of screen content videos and uses the pixels of the already coded image on the current image to predict the pixels of the current block to be coded, which can effectively save the bits required for coding pixels. As Figure 3 shown, the displacement between the current block and its reference block in IBC is called BV (Block Vector). H.266 / VVC adopts a BV prediction technology similar to inter prediction to further save the bits required for coding BV and allows encoding BVD (Block Vector Difference) with a 1 or 4-pixel resolution.

[0042] 3. Reference Pixel Filtering: During intra prediction, to reduce noise and improve prediction accuracy, usually, when selecting certain prediction modes, it is necessary to perform smoothing filtering on the reference pixels. Exemplarily, for the DC mode and Planar mode, if the block size of the PU is 4×4, no smoothing filtering is required; if the block size of the PU is other sizes, no smoothing filtering is required for the DC mode, and smoothing filtering is required for the Planar mode. Exemplarily, for the angular mode, if the block size of the PU is 8×8, only the angular modes with mode numbers 2, 18, and 34 are subject to conventional smoothing filtering; if the block size of the PU is 16×16, except for the angular modes with mode numbers 9, 10, 11, 25, 26, and 27, the other 27 angular modes all require conventional smoothing filtering; if the block size of the PU is 32×32, except for the angular modes with mode numbers 10 and 26, the other 31 angular modes all require conventional smoothing filtering or strong filtering.

[0043] 4. Prediction boundary smoothing: To remove the discontinuous effect of the boundary, for PUs with a block size smaller than 32×32, when using the traditional intra-prediction modes with mode numbers 1, 10, and 26, the first row and the first column after PU prediction need to be filtered to smooth the PU boundary values.

[0044] 5. Intra-mode coding: After the intra-prediction mode is selected, the intra-prediction mode needs to be transmitted from the encoding end to the decoding end. Since there are 35 traditional intra-prediction modes, 6 bits are required to encode these 35 modes. HEVC defines 3 most probable modes (MPMs) for the current PU, namely: MPM[0], MPM[1], and MPM[2]. If the current intra-prediction mode is within these 3 most probable modes, only its index needs to be encoded; if the current intra-prediction mode is not within these 3 most probable modes, only 5 bits are required for encoding.

[0045] Please refer to Figure 4 , which shows a simplified block diagram of a communication system provided by an embodiment of the present application. The communication system 200 includes multiple devices, and the devices can communicate with each other through, for example, the network 250. For example, the communication system 200 includes a first device 210 and a second device 220 interconnected through the network 250. In Figure 4 the embodiment, the first device 210 and the second device 220 perform unidirectional data transmission. For example, the first device 210 can encode video data, such as a video picture stream collected by the first device 210, for transmission to the second device 220 through the network 250. The encoded video data is transmitted in the form of one or more encoded video bitstreams. The second device 220 can receive the encoded video data from the network 250, decode the encoded video data to recover the video data, and display the video pictures according to the recovered video data. Unidirectional data transmission is relatively common in applications such as media services.

[0046] In another embodiment, the communication system 200 includes a third device 230 and a fourth device 240 that perform bidirectional transmission of encoded video data, and the bidirectional transmission can occur, for example, during a video conference. For bidirectional data transmission, each of the third device 230 and the fourth device 240 can encode video data (such as a video picture stream collected by the device) for transmission to the other of the third device 230 and the fourth device 240 through the network 250. Each of the third device 230 and the fourth device 240 can also receive the encoded video data transmitted by the other of the third device 230 and the fourth device 240, can decode the encoded video data to recover the video data, and can display the video pictures on an accessible display device according to the recovered video data.

[0047] In Figure 4 the embodiment, the first device 210, the second device 220, the third device 230, and the fourth device 240 may be computer devices such as servers, terminals, etc. The embodiments of the present application are applicable to PCs (Personal Computers), mobile phones, tablet computers, media players, and / or dedicated video conferencing devices. The network 250 represents any number of networks for transmitting encoded video data between the first device 210, the second device 220, the third device 230, and the fourth device 240, including, for example, wired and / or wireless communication networks. The communication network 250 may exchange data in circuit-switched and / or packet-switched channels. The network may include a telecommunications network, a local area network, a wide area network, and / or the Internet. For the purposes of the present application, unless otherwise explained hereinafter, the architecture and topology of the network 250 may be immaterial to the operations disclosed in the present application.

[0048] As an example, Figure 5 illustrates the placement of video encoders and video decoders in a streaming environment. The subject matter disclosed in the present application is equally applicable to other video-supported applications, including, for example, video conferencing, digital TV (Television), storing compressed video on digital media including CD (Compact Disc), DVD (Digital Versatile Disc), memory sticks, etc.

[0049] The streaming system may include an acquisition subsystem 313, which may include a video source 301 such as a digital camera that creates an uncompressed video picture stream 302. In an embodiment, the video picture stream 302 includes samples taken by the digital camera. Compared with the encoded video data 304 (or encoded video bitstream), the video picture stream 302 is depicted as a thick line to emphasize the high data volume of the video picture stream. The video picture stream 302 may be processed by an electronic device 320, which includes a video encoder 303 coupled to the video source 301. The video encoder 303 may include hardware, software, or a combination of both to implement or carry out aspects of the disclosed subject matter described in more detail hereinafter. Compared with the video picture stream 302, the encoded video data 304 (or encoded video bitstream 304) is depicted as a thin line to emphasize the lower data volume of the encoded video data 304 (or encoded video bitstream 304), which may be stored on the streaming server 305 for future use. One or more streaming client subsystems, such as Figure 5The client subsystems 306 and 308 therein can access the streaming server 305 to retrieve copies 307 and 309 of the encoded video data 304. The client subsystem 306 can include, for example, a video decoder 310 in the electronic device 330. The video decoder 310 decodes the incoming copy 307 of the encoded video data and generates an output video picture stream 311 that can be presented on a display 312 (such as a display screen) or another presentation device (not depicted). In some streaming systems, the encoded video data 304, copies 307 and 309 (such as video bitstreams) can be encoded according to certain video coding / compression standards.

[0050] It should be noted that the electronic devices 320 and 330 can include other components (not shown). For example, the electronic device 320 can include a video decoder (not shown), and the electronic device 330 can also include a video encoder (not shown). Among them, the video decoder is used to decode the received encoded video data; the video encoder is used to encode the video data.

[0051] It should be noted that the technical solution provided in the embodiments of the present application can be applied to the H.266 / VVC standard, the H.265 / HEVC standard, AVS (such as AVS3), or the next-generation video coding standard. The embodiments of the present application do not limit this.

[0052] It should also be noted that for the method in video coding and decoding provided in the embodiments of the present application, the execution subject of each step can be an encoding-end device. During the video encoding process, the technical solution provided in the embodiments of the present application can be adopted to select the intra prediction mode in the intra prediction process. The encoding-end device can be a computer device, which refers to an electronic device with data calculation, processing, and storage capabilities, such as a PC, mobile phone, tablet computer, media player, dedicated video conferencing device, server, etc. In addition, the method provided in the present application can be used alone or combined with other methods in any order. The encoder based on the method provided in the present application can be implemented by one or more processors or one or more integrated circuits.

[0053] The technical solution of the present application relates to the field of cloud technology. Taking a typical application scenario of the embodiments of the present application - cloud conference as an example, the following is an introduction and explanation:

[0054] Cloud technology refers to a hosting technology that unifies a series of resources such as hardware, software, and networks within a wide area network or a local area network to achieve data calculation, storage, processing, and sharing.

[0055] Cloud conferencing is an efficient, convenient, and low-cost conferencing form based on cloud computing technology. Users only need to perform simple and easy operations through an Internet interface to quickly and efficiently synchronously share voice, data files, and videos with teams and customers around the world. The cloud conferencing service provider helps users operate complex technologies such as data transmission and processing during the conference.

[0056] Currently, domestic cloud conferencing mainly focuses on service contents with the SaaS (Software as a Service) model as the main body, including service forms such as telephone, network, and video. The video conferencing based on cloud computing is called cloud conferencing.

[0057] In the era of cloud conferencing, the transmission, processing, and storage of data are all processed by the computer resources of video conferencing manufacturers. Users no longer need to purchase expensive hardware and install cumbersome software at all. They only need to open a browser and log in to the corresponding interface to conduct efficient remote conferences.

[0058] The cloud conferencing system supports multi-server dynamic cluster deployment and provides multiple high-performance servers, greatly improving the stability, security, and availability of the conference. In the cloud conferencing system, the server can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN (Content Delivery Network), as well as big data and artificial intelligence platforms. The terminal can be a smart phone, tablet computer, notebook computer, desktop computer, smart speaker, smart watch, etc., but is not limited to this. The terminal and the server can be directly or indirectly connected through wired or wireless communication methods, and this application does not make any restrictions here. In recent years, video conferencing has been welcomed by many users because it can greatly improve communication efficiency, continuously reduce communication costs, and bring about an upgrade in internal management level, and has been widely applied in various fields such as government, transportation, finance, operators, education, and enterprises. There is no doubt that after video conferencing uses cloud computing, it has stronger attractiveness in terms of convenience, speed, and ease of use, and will surely trigger the arrival of a new upsurge in video conferencing applications.

[0059] With the widespread promotion of technologies such as cloud computing, cloud conferencing systems, and virtual desktops, screen content images have become an indispensable part of the new generation of cloud-mobile computing models. Studying screen content encoding methods with high compression efficiency, good real-time performance, and moderate complexity is one of the hot issues in the field of video coding. Before the emergence of the HEVC SCC encoder, traditional video encoders such as H264 / AVC, HEVC version 1, and 2 were all efficient video compression standards designed for videos captured by cameras. The latter could even obtain subjective video quality similar to that of the former while saving half of the bitrate. However, for screen scenes containing computer-generated text and images, it is difficult for these video encoders to achieve high video compression efficiency. To solve this problem, HEVC version 3 (HEVC SCC) adds a new set of tools suitable for screen scenes. In this toolset, the IBC tool plays a decisive role in improving video compression efficiency. In the YUV444 format, two-thirds of the video compression efficiency improvement comes from IBC; in the YUV420 format, IBC contributes more than 80% of the video compression quality improvement. These improvements are achieved through full search with integer pixel accuracy in the intra-coded regions, and their complexity far exceeds the motion search in traditional video encoders. To effectively reduce the complexity of IBC, the HEVC SCC standard uses a Hash index table to establish coding blocks, and obtains a linked list of the positions of intra-frame reference blocks similar to its content by comparing the Hash index values of the current coding block, so as to effectively reduce the search points to reduce complexity while ensuring search accuracy.

[0060] In the related technologies, for each possible reference block position in the intra-coded region of the current frame, HEVC SCC calculates the sum of the horizontal and vertical gradients of the current coding block and the DC coefficient of the current block, and then combines them into a specific hash value. If there is a singly linked list indexed by this value in the Hash table, then this reference point is added to the linked list. If not, a new Hash index singly linked list is created. When creating nodes in the existing Hash table, first calculate the average gradient sum of the current coding block. If the average gradient sum is greater than a threshold value (usually set to 5), it is considered that there is texture information in the current coding block, and it is necessary to create a Hash table node at the position of the current coding block. Then, as long as the coded region is not absolutely flat, it will be added to the Hash table. This not only greatly increases the volume of the Hash table, but also for the coding blocks corresponding to the nodes with a relatively small average gradient sum, the best coding mode is very likely to be the traditional intra-frame / inter-frame coding mode. Then these unnecessary nodes will significantly increase the complexity of the IBC Hash search and bring very little gain in the video RD (Rate-Distortion) quality.

[0061] To reduce the complexity of IBC Hash search, the present application provides a method for constructing a Hash table in the IBC mode. By modifying the average gradient threshold, unnecessary nodes in the IBC hash table are removed, thereby improving the IBC hash search speed and the IBC encoding quality.

[0062] Next, the technical solution of the present application will be introduced and described through several embodiments.

[0063] Please refer to Figure 6 , which shows a flowchart of a method for constructing a Hash table in the IBC mode provided by an embodiment of the present application. For the convenience of description, only the execution subject of each step is introduced as a computer device. The method may include the following steps (601-603):

[0064] Step 601, obtain the gradient information of the coding unit.

[0065] The above gradient information is used to reflect the texture complexity of the coding unit. The above texture complexity (Texture-Complexity, TC) is a concept used to describe the complexity inside an image, such as reflecting the complexity of information such as the types of colors, object structures, biological features, text content, and graphic shapes in the image. Optionally, the gradient information can be used as a measure to reflect the texture complexity of the image. Optionally, the gradient information includes a numerical value. Optionally, the numerical value can be the average gradient value of each pixel in the current coding unit, or the sum of the average gradients corresponding to each pixel. The above average gradient value refers to the average of the horizontal gradient and the vertical gradient of a pixel. The above sum of average gradients is the sum of the average gradient values of each pixel in the current coding unit.

[0066] Step 602, when the gradient information meets the conditions, obtain the Hash value of the coding unit.

[0067] The above conditions are used to reduce the search complexity of the Hash table. The introduction of the Hash table has been described in the above embodiments and will not be elaborated here.

[0068] The Hash value is obtained by transforming an input of any length (also called a pre-image) into an output of a fixed length through a Hash (hashing, or transliterated as hash) algorithm, and this output is the Hash value.

[0069] Optionally, based on the gradient information of the coding unit, the Hash value of the coding unit is generated. For example, some or all of the bit data in the above sum of average gradients of the coding unit is used as the Hash value, or as a part of the Hash value.

[0070] Optionally, a Hash value of the coding unit is generated based on the gradient information and the luminance information of the coding unit. Similarly, a part or all of the bit data in the average gradient sum of the above coding unit, and a part or all of the bit data in the luminance component of the coding unit are combined to generate the Hash value of the coding unit. Therefore, the Hash value of the above coding unit can also reflect the texture complexity of the coding unit.

[0071] Optionally, the Hash values of different coding units may be the same or different.

[0072] In an exemplary embodiment, the condition includes a value greater than a threshold. Here, the value can be understood as the value reflecting the gradient information. If the value is greater than the threshold, it can indicate that the coding unit has more gradient information, high texture complexity, and rich image content. Optionally, the threshold is a preset value higher than the threshold. The above threshold is a preset value, and a reasonable value can be set as the threshold according to the actual situation and historical experience to filter out coding units with less image content, or coding units that do not need to apply the method provided in the embodiments of the present application. The embodiments of the present application do not limit the setting of the threshold. Optionally, the above condition is related to the number n of bit positions for storing gradient information in the Hash value, and n is a positive integer. A bit is a unit of measurement of information, and the above bit position refers to a bit in a binary number. Optionally, the Hash value is a sixteen-bit binary number, and the low seven bits thereof are used to store gradient information. The above low seven bits refer to the last seven bits starting from the left to the right of the binary number. For example, the threshold is set based on the number n of bit positions for storing gradient information in the Hash value. In one example, the threshold T≥2 n , that is, the threshold is a preset value higher than 2 n , and the threshold of the threshold is 2 at this time n . When the application effect of the method provided in the embodiments of the present application is better, n = 7. At this time, the effect of filtering out coding units with less image content, or coding units that do not need to apply the method provided in the embodiments of the present application can be well achieved, thereby improving the coding efficiency of the coding unit.

[0073] Step 603, based on the Hash value of the coding unit, add the coding unit to the Hash table.

[0074] Use the Hash value of the coding unit as the index value of the Hash table, and add the coding unit to the corresponding area in the Hash table according to the index value. Optionally, add the position information of the coding unit to the Hash table, where the above position information reflects the position of the coding unit in the image frame. For example, use the pixel coordinates of the upper left corner of the coding unit as the position information of the coding unit. Optionally, add the pointer information corresponding to the coding unit to the Hash table, where the above pointer information is used to reflect the positional relationship between the coding unit and the previous coding unit that is in the same area as it in the Hash table. Optionally, the Hash values of the coding units included in the same area in the Hash table are the same.

[0075] The above Hash table is used to provide a reference coding unit. The reference coding unit is a concept introduced for a certain coding unit. By using the pixel values in the reference coding unit, the pixel values in the coding unit corresponding to the reference coding unit can be predicted, so as to restore the image of the current coding unit according to the reference coding unit image and reduce the amount of image data transmission. Optionally, the Hash values of the coding unit and its corresponding reference coding unit are the same. Optionally, the coding unit and its corresponding reference coding unit are located in the same area in the Hash table. Optionally, the previous coding unit in the same area as the coding unit in the Hash table is the reference coding unit of the coding unit; correspondingly, the above pointer information reflects the positional relationship between the current coding unit and its corresponding reference coding unit in the same area in the Hash table.

[0076] In summary, the technical solution provided by the embodiment of the present application, by judging whether the gradient of the obtained coding unit meets the pre-set conditions, and then adding only the coding units whose gradient information meets the conditions to the Hash table based on their Hash values, effectively avoids adding coding units with less image content to the Hash table, reduces the number of nodes in the Hash table, and then effectively reduces the search complexity of the Hash table, improving the coding efficiency while ensuring the image coding quality.

[0077] Please refer to Figure 7 , which shows the flowchart of the Hash table construction method in the IBC mode provided by another embodiment of the present application. For the convenience of description, only the execution subject of each step is introduced as a computer device. The method may include the following steps (701-711):

[0078] Step 701, obtain the average gradient values corresponding to multiple pixels in the coding unit.

[0079] The average gradient value refers to the average of the horizontal gradient value and the vertical gradient value. The above average gradient value can be obtained by the following formula (1):

[0080] g (i,j)= (|p (i,j-1) - p (i,j) | + |p (i,j) - p (i+1,j) |) / 2 (1)

[0081] where g (i,j) represents the pixel in the current coding unit; (i, j) is used to reflect the pixel coordinates; i is the coordinate of the pixel in the horizontal direction; j is the coordinate of the pixel in the vertical direction; p (i,j) is the pixel value of the current pixel; p (i,j-1) is the pixel value of the pixel adjacent to the current pixel in the vertical direction; p (i+1,j) is the pixel value of the pixel adjacent to the current pixel in the horizontal direction; |p (i,j-1) - p (i,j) | is the vertical gradient value of the pixel g (i,j) ; |p (i,j) - p (i+1,j) | is the horizontal gradient value of the pixel g (i,j) .

[0082] Step 702: Sum the average gradient values corresponding to multiple pixels to obtain the average gradient sum.

[0083] where the gradient information includes the average gradient sum. Optionally, the average gradient sum can be obtained by the following formula (2):

[0084]

[0085] where g is the average gradient sum of multiple pixels in the coding unit.

[0086] Step 703: Determine whether the average gradient sum is greater than the threshold value. If so, execute Step 704; if not, obtain the next coding unit as the new coding unit and execute Step 701.

[0087] Optionally, the above threshold value is restricted by the following formula (3):

[0088] T ≥ 2 n (3)

[0089] where T is the threshold value, and 2 n is the threshold of the threshold value. Optionally, n = 4 or n = 7.

[0090] The above next coding unit refers to the next coding unit obtained after moving along the coding direction at a fixed step size from the current coding unit position. Optionally, the step size is 1 pixel.

[0091] Step 704: Divide the current coding unit into a sub-units.

[0092] where a is an integer greater than 1.

[0093] Step 705: Obtain the brightness information corresponding to b sub-units among a sub-units respectively.

[0094] Wherein, b is a positive integer less than or equal to a.

[0095] Optionally, the above brightness information includes the luminance component of the coding unit. In the YUV coding mode, "Y" represents the luminance of the image, that is, the grayscale value, which is the luminance component of the coding unit.

[0096] Optionally, the above brightness information further includes the Direct Current (DC) coefficient of the coding unit. The DC coefficient is the coefficient corresponding to the luminance component (at this time, the chrominance components u and v are 0) after performing a Discrete Cosine Transform (DCT) on the coding unit, and is called the direct current component, that is, the DC coefficient.

[0097] In an exemplary embodiment, a = 4 and b = 3. Here, taking a coding unit of size 8×8 as an example, steps 604 - 605 are explained. The 8×8 coding unit is divided into 4 sub-units of 4x4, namely sub-unit 0, sub-unit 1, sub-unit 2, and sub-unit 3. Then, only obtain the luminance values Y 0 , Y 1 , and Y 2 corresponding to sub-unit 0, sub-unit 1, and sub-unit 2 respectively, or the DC coefficients DC 0 , DC 1 , and DC 2 corresponding to sub-unit 0, sub-unit 1, and sub-unit 2 respectively, for the following steps.

[0098] After step 705, it is necessary to determine the Hash value of the coding unit according to the brightness information and gradient information corresponding to b sub-units respectively. The specific steps are as follows:

[0099] Step 706: Determine the first characterization data of the brightness information corresponding to b sub-units respectively.

[0100] The above first characterization data is data used to characterize the brightness information corresponding to the sub-units, such as bit data of some or all of the luminance values, or bit data of some or all of the DC coefficients. Optionally, the above first characterization data is obtained through the Most Significant Bit (MSB) function, where the MSB function is used to obtain some high-order data of the data in the brightness information.

[0101] Step 707: Determine the second characterization data corresponding to the gradient information.

[0102] The above second characterization data is data for characterizing the gradient information of the coding unit. Optionally, the above second characterization data can be obtained through the following formula (4):

[0103] g′ = (g >> shift_num) & M (4)

[0104] Where g′ is the second characterization data; g is the average gradient sum; shift_num is the number of right shift bits; M is a fixed value used to limit the number of bits of g′. Optionally, shift_num = n, M = 2 n -1. After shifting the average gradient sum to the right by n bits to obtain the right-shifted gradient data, perform a bitwise AND operation with M, and take the low M bits of the right-shifted gradient data as the second characterization data. If the right-shifted gradient data is less than M bits, it can be padded with 0s on the left side of the right-shifted gradient data to make it up to M bits.

[0105] Step 708: Concatenate each first characterization data and the second characterization data to obtain the Hash value of the coding unit.

[0106] Store each first characterization data and the second characterization data into the Hash value according to the corresponding positions. The above corresponding positions refer to the starting position and the ending position of each first characterization data and the second characterization data in the Hash value.

[0107] In an exemplary embodiment, using the luminance value Y of the coding unit as the luminance information, obtain the second characterization data, and then concatenate each first characterization data and the second characterization data to obtain the Hash value of the coding unit.

[0108] Optionally, taking n = 7 as an example, the concatenated Hash value can be implemented by the following formula (5):

[0109] h = (MSB(Y 0 , 3) << 13) + (MSB(Y 1 , 3) << 10) + (MSB(Y 2 , 3) << 7) + g′ (5)

[0110] Where h represents the Hash value of the coding unit, and Y 0 , Y 1 and Y 2 are the luminance values corresponding to sub-unit 0, sub-unit 1, and sub-unit 2 respectively; g′ is the second characterization data.

[0111] Optionally, taking n = 4 as an example, the concatenated Hash value can be implemented by the following formula (6):

[0112] h =

[0113] (MSB(Y 0 , 3) << 13) + (MSB(Y 1 , 3) << 10) + (MSB(Y 2 , 3) << 7) +

[0114] (MSB(Y 3 , 3) << 4) + g′(6)

[0115] Among them, except that Y 3 is the luminance value corresponding to sub-unit 3, the remaining parameters are the same as those in the above formula (5).

[0116] In an exemplary embodiment, the DC coefficient of the coding unit is used as the luminance information to obtain the second characterization data, and then each first characterization data and the second characterization data are concatenated to obtain the Hash value of the coding unit.

[0117] Optionally, taking n = 7 as an example, the concatenated Hash value can be implemented by the following formula (7):

[0118] h = (MSB(DC 0 , 3) << 13) + (MSB(DC 1 , 3) << 10) + (MSB(DC 2 , 3) << 7) + g′(7)

[0119] Among them, h represents the Hash value of the coding unit, and DC 0 , DC 1 and DC 2 are the DC coefficients corresponding to sub-unit 0, sub-unit 1, and sub-unit 2 respectively; g′ is the second characterization data.

[0120] Optionally, taking n = 4 as an example, the concatenated Hash value can be implemented by the following formula (8):

[0121] h =

[0122] (MSB(DC 0 , 3) << 13) + (MSB(DC 1 , 3) << 10) + (MSB(DC 2 , 3) << 7) +

[0123] (MSB(DC 3 , 3) << 4) + g′(8)

[0124] Among them, except that DC 3 is the DC coefficient corresponding to sub-unit 3, the remaining parameters are the same as those in the above formula (5).

[0125] By encoding the luminance information and gradient information of a coding unit into the Hash value of the coding unit, the reference coding unit corresponding to the coding unit can be determined from the Hash value.

[0126] Step 709, determine whether the Hash value of the coding unit exists in the Hash table. If so, execute Step 710; if not, execute Step 711.

[0127] Determine whether the Hash value of the coding unit exists in the index values corresponding to each singly linked list (also called Hash index linked list) included in the Hash table. The above singly linked list is a linked list with a unidirectional link direction, and the access to the singly linked list needs to be sequentially read starting from the head. Optionally, use the Hash value as the index value corresponding to the singly linked list in the Hash table. One Hash value corresponds to one singly linked list in the Hash table, and the Hash values of the coding units in this singly linked list are the same. Optionally, for adjacent coding units in the singly linked list, the former is the reference coding unit of the latter.

[0128] Step 710, add the coding unit to the singly linked list corresponding to the Hash value of the coding unit.

[0129] Optionally, add the position information of the coding unit to the singly linked list corresponding to the Hash value of the coding unit. Optionally, the position information of the coding unit is the coordinate value of the upper left pixel of the coding unit. Optionally, add the pointer information of the coding unit to the singly linked list corresponding to the Hash value of the coding unit. The pointer information refers to the positional relationship between the coding unit and the previous coding unit in the same singly linked list in the Hash table. Optionally, for the current block in the IBC mode of the coding unit, the reference unit is the reference block in the IBC mode, and the BV (block vector) in the IBC mode can be determined through the pointer information in the singly linked list.

[0130] Step 711, create a singly linked list corresponding to the Hash value of the coding unit.

[0131] Under the condition that the Hash value of the coding unit does not exist in the index values corresponding to each singly linked list included in the Hash table, use the Hash value of this coding unit as the index value to create a singly linked list in the Hash table as a reference for subsequent coding of coding units.

[0132] Optionally, if only one coding unit is recorded in the singly linked list, it can be determined that this coding unit has no reference coding unit and needs to be independently coded.

[0133] In summary, the technical solution provided by the embodiments of the present application splices the characterization data in the luminance value and the average gradient value of the coding unit to obtain a Hash value that can reflect the luminance information and gradient information of the coding unit, and adds the coding unit with rich image content to the singly linked list in the Hash table based on the Hash value, so that the Hash table provides a corresponding reference relationship between the coding units in the image frame, reducing the search complexity of the Hash table while improving the coding accuracy, and further achieving the effect of improving the coding efficiency while ensuring the image coding quality.

[0134] The following is an embodiment of the device of the present application, which can be used to execute the method embodiment of the present application. For details not disclosed in the embodiment of the device of the present application, please refer to the method embodiment of the present application.

[0135] Please refer to Figure 8 , which shows a block diagram of a Hash table construction device in the IBC mode provided by an embodiment of the present application. This device has the functions of implementing the above method example, and the functions can be implemented by hardware or by hardware executing corresponding software. This device can be the computer device introduced above, or can be set on the computer device. The device 800 may include: a gradient acquisition module 810, a Hash value acquisition module 820, and a Hash table update module 830.

[0136] The gradient acquisition module 810 is configured to acquire gradient information of a coding unit, and the gradient information is used to reflect the texture complexity of the coding unit;

[0137] The Hash value acquisition module 820 is configured to acquire the Hash value of the coding unit when the gradient information meets the condition; wherein, the condition is used to reduce the search complexity of the Hash table;

[0138] The Hash table update module 830 is configured to add the coding unit to the Hash table based on the Hash value of the coding unit, and the Hash table is used to provide a reference coding unit.

[0139] In an exemplary embodiment, the gradient information includes a value, and the condition includes that the value is greater than a threshold value, and the threshold value is set based on the number of bits n for storing the gradient information in the Hash value, and the n is a positive integer.

[0140] In an exemplary embodiment, the threshold value T≥2 n .

[0141] In an exemplary embodiment, the gradient information includes a value, and the condition includes that the value is greater than a threshold value, and the threshold value is a preset value higher than the threshold.

[0142] In an exemplary embodiment, the Hash value acquisition module 820 is configured to:

[0143] Divide the current coding unit into a sub-units, where a is an integer greater than 1;

[0144] Obtain the direct current (DC) coefficient luminance information corresponding to b sub-units among the a sub-units, where b is a positive integer less than or equal to a;

[0145] Determine the Hash value of the coding unit according to the DC coefficients corresponding to the b sub-units and the gradient information.

[0146] In an exemplary embodiment, a = 4 and b = 3.

[0147] In an exemplary embodiment, the Hash value acquisition module 820 is configured to:

[0148] Determine first characterization data of the DC coefficient luminance information corresponding to the b sub-units respectively;

[0149] Determine second characterization data corresponding to the gradient information;

[0150] Concatenate each piece of the first characterization data, the first target bit data, and the second characterization data, the second target bit data to obtain the Hash value of the coding unit.

[0151] In an exemplary embodiment, n = 7.

[0152] In an exemplary embodiment, the gradient acquisition module 810 is configured to:

[0153] Obtain the average gradient values corresponding to multiple pixels in the coding unit, where the average gradient value refers to the average of the horizontal gradient value and the vertical gradient value;

[0154] Sum the average gradient values corresponding to the multiple pixels to obtain an average gradient sum;

[0155] Wherein, the gradient information includes the average gradient sum.

[0156] In summary, the technical solution provided by the embodiments of the present application determines whether the gradient of the obtained coding unit meets a preset condition, and then adds only the coding units whose gradient information meets the condition to the Hash table based on their Hash values, effectively avoiding adding coding units with less image content to the Hash table, reducing the number of nodes in the Hash table, and thus effectively reducing the search complexity of the Hash table, improving the coding efficiency while ensuring the image coding quality.

[0157] In addition, by splicing the representation data in the luminance value and the average gradient value of the coding unit, a Hash value that can reflect the luminance information and gradient information of the coding unit is obtained. Based on the Hash value, the coding units with rich image content are added to the singly linked list in the Hash table, and the Hash table provides a corresponding reference relationship between the coding units in the image frame, reducing the search complexity of the Hash table while improving the coding accuracy, thereby achieving the effect of improving the coding efficiency while ensuring the image coding quality.

[0158] It should be noted that for the device provided in the above embodiment, when implementing its functions, only the division of the above functional modules is used for illustration. In actual applications, the above functions can be allocated to different functional modules according to needs, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the device provided in the above embodiment and the method embodiment belong to the same concept, and the specific implementation process can be found in the method embodiment and will not be repeated here.

[0159] Please refer to Figure 9 , which shows the structural block diagram of a computer device provided in an embodiment of the present application. This computer device can be the encoding end device introduced above. The computer device 90 may include: a processor 91, a memory 92, a communication interface 93, an encoder / decoder 94, and a bus 95.

[0160] The processor 91 includes one or more processing cores. The processor 91 executes various functional applications and information processing by running software programs and modules.

[0161] The memory 92 can be used to store computer programs, and the processor 91 is used to execute the computer programs to implement the above-mentioned Hash table construction method in the IBC mode.

[0162] The communication interface 93 can be used to communicate with other devices, such as receiving and transmitting audio and video data.

[0163] The encoder / decoder 94 can be used to implement encoding and decoding functions, such as encoding and decoding audio and video data.

[0164] The memory 92 is connected to the processor 91 through the bus 95.

[0165] In addition, the memory 92 can be implemented by any type of volatile or non-volatile storage device or a combination thereof. Volatile or non-volatile storage devices include, but are not limited to: magnetic or optical disks, EEPROM (Electrically Erasable Programmable Read-Only Memory), EPROM (Erasable Programmable Read-Only Memory), SRAM (Static Random-Access Memory), ROM (Read-Only Memory), magnetic memory, flash memory, PROM (Programmable Read-Only Memory).

[0166] Those skilled in the art can understand that Figure 9 the structure shown in does not constitute a limitation on the computer device 90, and it may include more or fewer components than shown in the figure, or combine certain components, or adopt a different component layout.

[0167] In an exemplary embodiment, a computer-readable storage medium is also provided. At least one instruction, at least one program, a code set, or an instruction set is stored in the computer-readable storage medium. When the at least one instruction, the at least one program, the code set, or the instruction set is executed by a processor, the above-mentioned method for constructing a Hash table in the IBC mode is implemented.

[0168] In an exemplary embodiment, a computer program product or a computer program is also provided. The computer program product or the computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the above-mentioned method for constructing a Hash table in the IBC mode.

[0169] It should be understood that the term "a plurality of" as mentioned herein refers to two or more. "And / or" describes the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist simultaneously, and B exists alone. The character " / " generally represents an "or" relationship between the associated objects before and after.

[0170] The above are only exemplary embodiments of the present application and are not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present application shall be included in the protection scope of the present application.

Claims

1. A method for constructing a Hash table in the IBC mode, characterized in that, the method includes: Obtain the gradient information of the coding unit, where the gradient information is used to reflect the texture complexity of the coding unit, and the gradient information includes the average gradient sum, and the average gradient sum is obtained by summing the average gradient values corresponding to multiple pixels in the coding unit; When the gradient information is greater than a threshold value, divide the coding unit into a sub-units, where the threshold value is greater than or equal to 2 n , n is the number of bits in the Hash value of the coding unit for storing the gradient information, and a is an integer greater than 1; Obtain the luminance information corresponding to b sub-units among the a sub-units, where b is a positive integer less than a; Determine the first characterization data of the luminance information corresponding to the b sub-units; Shift the average gradient sum to the right by n bits and take the lower n bits to obtain the second characterization data corresponding to the gradient information; Concatenate each of the first characterization data and the second characterization data to obtain the Hash value of the coding unit; Based on the Hash value of the coding unit, add the coding unit to the Hash table, where the Hash table is used to provide reference coding units.

2. The method according to claim 1, characterized in that, a = 4 and b = 3.

3. The method according to claim 1 or 2, characterized in that, n = 7.

4. The method according to claim 1 or 2, characterized in that, the obtaining of the gradient information of the coding unit includes: Obtain the average gradient values corresponding to multiple pixels in the coding unit, where the average gradient value refers to the average of the horizontal gradient value and the vertical gradient value; Sum the average gradient values corresponding to the multiple pixels to obtain the average gradient sum.

5. A Hash table construction device in the IBC mode, characterized in that, the device includes: A gradient acquisition module for obtaining the gradient information of the coding unit, where the gradient information is used to reflect the texture complexity of the coding unit, and the gradient information includes the average gradient sum, and the average gradient sum is obtained by summing the average gradient values corresponding to multiple pixels in the coding unit; A Hash value acquisition module, configured to divide the coding unit into a sub-units when the gradient information is greater than a threshold value, where the threshold value is greater than or equal to 2 n , n is the number of bits in the Hash value of the coding unit for storing the gradient information, a is an integer greater than 1; obtain the luminance information corresponding to b sub-units among the a sub-units, where b is a positive integer less than a; determine the first characterization data of the luminance information corresponding to the b sub-units respectively; shift the average gradient to the right by n bits and take the lower n bits to obtain the second characterization data corresponding to the gradient information; splice each of the first characterization data and the second characterization data to obtain the Hash value of the coding unit; A Hash table update module for adding the coding unit to the Hash table based on the Hash value of the coding unit, where the Hash table is used to provide reference coding units.

6. A computer device, characterized in that, the computer device includes a processor and a memory, and at least one program is stored in the memory, and the at least one program is loaded and executed by the processor to implement the method for constructing a Hash table in the IBC mode according to any one of claims 1 to 4.

7. A computer-readable storage medium, characterized in that, at least one program is stored in the computer-readable storage medium, and the at least one program is loaded and executed by a processor to implement the method for constructing a Hash table in the IBC mode according to any one of claims 1 to 4.

8. A computer program product, characterized in that, the computer program product includes a computer program, and the computer program is loaded and executed by a processor to implement the method for constructing a Hash table in the IBC mode according to any one of claims 1 to 4.

Citation Information

Patent Citations

  • Hash-based encoder search for intra block copy

    CN106105197A

  • Methods and systems for intra block copy search enhancement

    CN106464921A