Coding and decoding method, device and equipment for string copy intra prediction

By grouping syntax elements in video blocks, the method addresses inefficiencies in string copy intra prediction, enhancing encoding efficiency and throughput in video encoding processes.

CN115209152BActive Publication Date: 2025-07-15TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110397117.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-04-13
Publication Date
2025-07-15
Estimated Expiration
2041-04-13

AI Technical Summary

Technical Problem

Among the existing video encoding and decoding methods, frequent switching of encoding and decoding methods leads to inefficient encoding and decoding.

Method used

The syntax elements of at least one pixel string in the current block are grouped, and the group encoding or decoding method is adopted to avoid the decoder frequently switching between different methods and improve the codec throughput.

Benefits of technology

Through group encoding or decoding, the number of encoding and decoding times is reduced, and the encoding efficiency and decoding efficiency are improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115209152B_ABST
    Figure CN115209152B_ABST
Patent Text Reader

Abstract

The present application provides a coding and decoding method, apparatus and device for string copy intra prediction. The method includes: grouping syntax elements of at least one pixel string of a current block to obtain M groups of syntax elements, and decoding each group of the M groups of syntax elements, so as to obtain the syntax elements of at least one pixel string in the current block. This way of grouped decoding can increase the amount of data decoded at one time, thereby reducing the number of decoding times and improving the decoding efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the field of image processing technologies, and in particular, to a coding and decoding method, apparatus, and device for string copy intra prediction. Background Art

[0002] Digital video technology can be incorporated into various video devices, such as digital televisions, smart phones, computers, e-readers, or video players. With the development of video technology, the amount of data included in video data is large. To facilitate the transmission of video data, video devices perform video compression technology to make the video data more effectively transmitted or stored.

[0003] Currently, spatial prediction or temporal prediction is used to reduce or eliminate redundant information in video data to achieve video data compression. Motion compensation is a common type of prediction method in video coding. Based on the redundant characteristics of video content in the time domain or spatial domain, the predicted value of the current coding block is derived from the encoded area. Prediction methods based on motion compensation include: inter prediction, block copy intra prediction, string copy intra prediction, etc. String copy intra prediction divides a coding block into a series of pixel strings or unmatched pixels according to a certain scanning order. The encoding end encodes the syntax elements of each string of the current coding block in the code stream. Correspondingly, the decoding end derives the predicted value of the current image block according to the syntax elements of each string carried in the code stream.

[0004] However, in the current coding and decoding methods, the syntax elements of each string are encoded separately, and the codec needs to frequently switch between multiple coding and decoding methods, resulting in low coding and decoding efficiency. Summary of the Invention

[0005] The present application provides a coding and decoding method, apparatus, and device for string copy intra prediction to improve the throughput of the codec, thereby enhancing the coding efficiency.

[0006] In a first aspect, a decoding method for string copy intra prediction is provided, including:

[0007] Decoding a code stream to obtain the syntax elements of at least one pixel string in the current block to be decoded, where the syntax elements include at least two different decoding methods;

[0008] Grouping the syntax elements of at least one pixel string in the current block to obtain M groups of syntax elements, where M is a positive integer;

[0009] Decoding each group of syntax elements in the M groups of syntax elements to obtain the syntax elements of at least one pixel string in the current block;

[0010] Determining the predicted value of the current block according to the syntax elements of at least one pixel string in the current block.

[0011] In a second aspect, there is provided an encoding method for string copy intra prediction, including:

[0012] Obtaining syntax elements of at least one pixel string in a current block, where the syntax elements include at least two different encoding methods;

[0013] Grouping the syntax elements of at least one pixel string in the current block to obtain M groups of syntax elements, where M is a positive integer;

[0014] Encoding each group of the M groups of syntax elements to obtain a bitstream.

[0015] In a third aspect, there is provided a decoding device for string copy intra prediction, including:

[0016] A first decoding unit, configured to decode a bitstream to obtain syntax elements of at least one pixel string in a current block to be decoded, where the syntax elements include at least two different decoding methods;

[0017] A grouping unit, configured to group the syntax elements of at least one pixel string in the current block to obtain M groups of syntax elements, where M is a positive integer;

[0018] A second decoding unit, configured to decode each group of the M groups of syntax elements to obtain the syntax elements of at least one pixel string in the current block;

[0019] A determination unit, configured to determine a prediction value of the current block according to the syntax elements of at least one pixel string in the current block.

[0020] In a fourth aspect, there is provided an encoding device for string copy intra prediction, including:

[0021] An obtaining unit, configured to obtain syntax elements of at least one pixel string in a current block, where the syntax elements include at least two different encoding methods;

[0022] A grouping unit, configured to group the syntax elements of at least one pixel string in the current block to obtain M groups of syntax elements, where M is a positive integer;

[0023] An encoding unit, configured to encode each group of the M groups of syntax elements to obtain a bitstream.

[0024] In a fifth aspect, there is provided a decoding device, including a processor and a memory. The memory is used to store a computer program, and the processor is used to call and run the computer program stored in the memory to execute the method in the first aspect or its various implementation manners above.

[0025] In a sixth aspect, an encoding device is provided, including a processor and a memory. The memory is used to store a computer program, and the processor is used to call and run the computer program stored in the memory to execute the method in the second aspect or its various implementation manners as described above.

[0026] In a seventh aspect, a computing device is provided, including a processor and a memory. The memory is used to store a computer program, and the processor is used to call and run the computer program stored in the memory to execute the method in the first aspect or the second aspect as described above.

[0027] In an eighth aspect, a chip is provided for implementing the method in the first aspect or its various implementation manners. Specifically, the chip includes: a processor for calling and running a computer program from a memory, so that a device installed with the chip executes the method in the first aspect or the second aspect as described above.

[0028] In a ninth aspect, a computer-readable storage medium is provided for storing a computer program, and the computer program causes a computer to execute the method in the first aspect or the second aspect as described above.

[0029] In a tenth aspect, a computer program product is provided, including computer program instructions, and the computer program instructions cause a computer to execute the method in the first aspect or the second aspect as described above.

[0030] In an eleventh aspect, a computer program is provided, which when running on a computer, causes the computer to execute the method in the first aspect or the second aspect as described above.

[0031] Through the technical solution provided by the present application, syntax elements of at least one pixel string in the current block are grouped to obtain M groups of syntax elements, where M is a positive integer; each group of syntax elements in the M groups of syntax elements is encoded or decoded. In a specific hardware implementation, separating syntax elements with different encoding methods can prevent the decoder from frequently switching between two decoding methods, which is beneficial to improving the throughput rate of the codec and further enhancing the encoding efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, 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 invention. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained based on these drawings.

[0033] Figure 1 FIG. is a schematic block diagram of a video codec system according to an embodiment of the present application;

[0034] Figure 2 It is a schematic block diagram of a video encoder provided by an embodiment of the present application;

[0035] Figure 3 It is a schematic block diagram of a decoding framework provided by an embodiment of the present application;

[0036] Figure 4 It is a schematic diagram of a string copy intra prediction technique involved in an embodiment of the present application;

[0037] Figure 5 It is a schematic diagram of an equivalent string and a unit basis vector string sub - pattern involved in an embodiment of the present application;

[0038] Figure 6 It is a flowchart of a decoding method for string copy intra prediction provided by an embodiment of the present application;

[0039] Figure 7 It is a flowchart of a decoding method for string copy intra prediction provided by an embodiment of the present application;

[0040] Figure 8 It is a flowchart of a decoding method for string copy intra prediction provided by an embodiment of the present application;

[0041] Figure 9 It is a flowchart of an encoding method for string copy intra prediction provided by an embodiment of the present application;

[0042] Figure 10 It is a flowchart of an encoding method for string copy intra prediction provided by an embodiment of the present application;

[0043] Figure 11 It is a flowchart of an encoding method for string copy intra prediction provided by an embodiment of the present application;

[0044] Figure 12 It is a schematic block diagram of a decoding device for string copy intra prediction provided by an embodiment of the present application;

[0045] Figure 13 It is a schematic block diagram of an encoding device for string copy intra prediction provided by an embodiment of the present application;

[0046] Figure 14 It is a schematic block diagram of a computing device provided by an embodiment of the present application. Detailed implementation manners

[0047] Next, the technical solutions in the embodiments of the present invention will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only a part of the embodiments of the present invention, rather than all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without making creative efforts shall fall within the protection scope of the present invention.

[0048] It should be noted that the terms "first", "second", etc. in the description, claims and above-mentioned drawings of the present invention are used to distinguish similar objects, and do not necessarily describe a specific order or sequence. It should be understood that such data can be interchanged under appropriate circumstances, so that the embodiments of the present invention described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "comprising" and "having" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, system, product or server comprising a series of steps or units does not necessarily limit to those steps or units clearly listed, but may include other steps or units not clearly listed or inherent to these processes, methods, products or devices.

[0049] This application can be applied to the fields of image coding and decoding, video coding and decoding, hardware video coding and decoding, dedicated circuit video coding and decoding, real-time video coding and decoding, etc. For example, the solution of this application can be combined with audio video coding standards (AVS for short), such as H.264 / audio video coding (AVC for short) standard, H.265 / high efficiency video coding (HEVC for short) standard, and H.266 / versatile video coding (VVC for short) standard. Or, the solution of this application can be combined with other proprietary or industry standards for operation, and the standards include ITU-T H.261, ISO / IEC MPEG-1 Visual, ITU-T H.262 or ISO / IEC MPEG-2 Visual, ITU-T H.263, ISO / IEC MPEG-4 Visual, ITU-T H.264 (also known as ISO / IEC MPEG-4 AVC), including scalable video coding (SVC) and multi-view video coding (MVC) extensions. It should be understood that the technology of this application is not limited to any specific coding and decoding standard or technology.

[0050] For the sake of easy understanding, first, in combination with Figure 1 the video coding and decoding system involved in the embodiments of this application will be introduced.

[0051] Figure 1 FIG. is a schematic block diagram of a video coding and decoding system 100 involved in the embodiments of this application. It should be noted that Figure 1 is just an example. The video coding and decoding system of the embodiments of this application includes but is not limited to Figure 1 as shown. As Figure 1As shown, the video encoding and decoding system 100 includes an encoding device 110 and a decoding device 120. The encoding device is used to encode (which can be understood as compressing) video data to generate a bitstream, and transmit the bitstream to the decoding device. The decoding device decodes the bitstream generated by the encoding device to obtain the decoded video data.

[0052] The encoding device 110 in the embodiments of the present application can be understood as a device with video encoding function, and the decoding device 120 can be understood as a device with video decoding function. That is, the embodiments of the present application include a wider range of devices for the encoding device 110 and the decoding device 120, such as smartphones, desktop computers, mobile computing devices, notebooks (e.g., laptops) computers, tablet computers, set-top boxes, televisions, cameras, display devices, digital media players, video game consoles, in-vehicle computers, etc.

[0053] In some embodiments, the encoding device 110 can transmit the encoded video data (such as a bitstream) to the decoding device 120 via a channel 130. The channel 130 can include one or more media and / or devices capable of transmitting the encoded video data from the encoding device 110 to the decoding device 120.

[0054] In one example, the channel 130 includes one or more communication media that enable the encoding device 110 to directly transmit the encoded video data to the decoding device 120 in real time. In this example, the encoding device 110 can modulate the encoded video data according to a communication standard and transmit the modulated video data to the decoding device 120. The communication media includes wireless communication media, such as the radio frequency spectrum. Optionally, the communication media can also include wired communication media, such as one or more physical transmission lines.

[0055] In another example, the channel 130 includes a storage medium that can store the video data encoded by the encoding device 110. The storage medium includes various locally accessible data storage media, such as optical discs, DVDs, flash memories, etc. In this example, the decoding device 120 can obtain the encoded video data from the storage medium.

[0056] In another example, the channel 130 can include a storage server that can store the video data encoded by the encoding device 110. In this example, the decoding device 120 can download the stored encoded video data from the storage server. Optionally, the storage server can store the encoded video data and can transmit the encoded video data to the decoding device 120, such as a web server (e.g., for websites), a File Transfer Protocol (FTP) server, etc.

[0057] In some embodiments, the encoding device 110 includes a video encoder 112 and an output interface 113. Among them, the output interface 113 may include a modulator / demodulator (modem) and / or a transmitter.

[0058] In some embodiments, in addition to including the video encoder 112 and the input interface 113, the encoding device 110 may further include a video source 111.

[0059] The video source 111 may include at least one of a video capture device (e.g., a video camera), a video archive, a video input interface, and a computer graphics system. Among them, the video input interface is used to receive video data from a video content provider, and the computer graphics system is used to generate video data.

[0060] The video encoder 112 encodes the video data from the video source 111 to generate a bitstream. The video data may include one or more pictures or a sequence of pictures. The bitstream contains the encoded information of the pictures or the sequence of pictures in the form of a bitstream. The encoded information may include encoded picture data and associated data. The associated data may include a sequence parameter set (SPS), a picture parameter set (PPS), and other syntax structures. The SPS may contain parameters applied to one or more sequences. The PPS may contain parameters applied to one or more pictures. The syntax structure refers to a set of zero or more syntax elements arranged in a specified order in the bitstream.

[0061] The video encoder 112 directly transmits the encoded video data to the decoding device 120 via the output interface 113. The encoded video data may also be stored on a storage medium or a storage server for subsequent reading by the decoding device 120.

[0062] In some embodiments, the decoding device 120 includes an input interface 121 and a video decoder 122.

[0063] In some embodiments, in addition to including the input interface 121 and the video decoder 122, the decoding device 120 may further include a display device 123.

[0064] Among them, the input interface 121 includes a receiver and / or a modem. The input interface 121 may receive the encoded video data through the channel 130.

[0065] The video decoder 122 is used to decode the encoded video data to obtain the decoded video data and transmit the decoded video data to the display device 123.

[0066] The display device 123 displays the decoded video data. The display device 123 can be integrated with the decoding device 120 or be external to the decoding device 120. The display device 123 can include various display devices, such as a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or other types of display devices.

[0067] In addition, Figure 1 For example only, the technical solutions of the embodiments of the present application are not limited to Figure 1 , for example, the technology of the present application can also be applied to unilateral video encoding or unilateral video decoding.

[0068] The video encoding framework related to the embodiments of the present application will be introduced below.

[0069] Figure 2 It is a schematic diagram of the encoding framework provided by the embodiments of the present application.

[0070] As Figure 2 shown, the encoding framework includes: a prediction unit 11, a residual generation unit 12, a transformation unit 13, a quantization unit 14, an inverse quantization unit 15, an inverse transformation unit 16, a reconstruction unit 17, a filtering unit 18, and an entropy encoding unit 19. The prediction unit 11 includes an inter prediction unit 11a and an intra prediction unit 112. The inter prediction unit 11a includes a motion estimation unit 11a1 and a motion compensation unit 11a2.

[0071] Among them, after the encoding end receives the video, for each frame image constituting the video, the image is divided into multiple image blocks to be encoded. For the current image block to be encoded, the prediction unit 11 first predicts the current image block to be encoded by referring to the reconstructed image block, and obtains the prediction information of the current image block to be encoded. Among them, the encoding end can obtain the prediction information by using inter prediction or intra prediction technology.

[0072] Specifically, the motion estimation unit 11a1 in the inter prediction unit 11a can search for a reference image in the list of reference images to find the reference block of the image block to be encoded. The motion estimation unit 11a1 can generate an index indicating the reference block and a motion vector indicating the spatial displacement between the image block to be encoded and the reference block. The motion estimation unit 11a1 can output the index of the reference block and the motion vector as the motion information of the image block to be encoded. The motion compensation unit 11a2 can obtain the prediction information of the image block to be encoded based on the motion information of the image block to be encoded.

[0073] The intra prediction unit 112 can generate prediction information for the current image block to be encoded by using intra prediction modes. Currently, there are 15 intra prediction modes, including Planar mode, DC mode, and 13 angular prediction modes. The intra prediction unit 112 can also adopt techniques such as Intra Block Copy (IBC) and Intra String Copy (ISC).

[0074] The residual generation unit 12 is used to subtract the prediction information from the original signal of the current image block to be encoded, obtaining a residual signal. After prediction, the amplitude of the residual signal is much smaller than that of the original signal. The transform unit 13 and quantization unit 14 are used to perform transform and quantization operations on the residual signal. After transform and quantization, transform quantization coefficients are obtained. The entropy coding unit 19 is used to encode the quantization coefficients and other indication information in the coding through entropy coding technology to obtain a bitstream.

[0075] Furthermore, the encoder also needs to reconstruct the current image block to be encoded to provide reference pixels for encoding subsequent image blocks to be encoded. Specifically, after obtaining the transform quantization coefficients of the current image block to be encoded, the inverse quantization unit 15 and inverse transform unit 16 perform inverse quantization and inverse transform on the transform quantization coefficients of the current image block to be encoded, obtaining a reconstructed residual signal. The reconstruction unit 17 adds the reconstructed residual signal to the prediction information corresponding to the current image block to be encoded, obtaining a reconstructed signal of the current image block to be encoded, and obtaining a reconstructed image block according to this reconstructed signal. Further, the filtering unit 18 can filter the reconstructed image block, and techniques such as deblocking filter, Sample Adaptive Offset (SAO), or Adaptive Loop Filter (ALF) can be adopted. Among them, this reconstructed image block can be used to predict subsequent image blocks to be encoded.

[0076] Figure 3 It is a schematic block diagram of the decoding framework provided by the embodiments of the present application.

[0077] As Figure 3 shown, this decoding framework includes: an entropy decoding unit 21, a prediction unit 22, an inverse quantization unit 23, an inverse transform unit 24, a reconstruction unit 25, and a filtering unit 26. The prediction unit 22 includes: a motion compensation unit 221 and an intra prediction unit 222.

[0078] Specifically, after the decoding end obtains the bitstream, first, the entropy decoding unit 21 performs entropy decoding on the bitstream to obtain the transform quantization coefficients of the current image block to be reconstructed. Then, the inverse quantization unit 23 and the inverse transform unit 24 perform inverse quantization and inverse transform on the transform quantization coefficients to obtain the reconstructed residual signal of the current image block to be reconstructed. The prediction unit 22 performs prediction on the current image block to be reconstructed to obtain the prediction information of the current image block to be reconstructed. If the prediction unit 22 adopts inter-frame prediction, the motion compensation unit 221 can construct the first reference picture list (list 0) and the second reference picture list (list 1) according to the syntax elements parsed from the bitstream. In addition, the entropy decoding unit 21 can parse the motion information of the image block to be reconstructed. The motion compensation unit 221 can determine one or more reference blocks of the image block to be reconstructed according to the motion information. The motion compensation unit 221 can generate the prediction information of the image block to be reconstructed according to one or more reference blocks. If the prediction unit 22 adopts intra-frame prediction, the entropy decoding unit 21 can parse the index of the intra-frame prediction mode used, and the intra-frame prediction unit 222 can perform intra-frame prediction according to the index and adopt the intra-frame prediction mode to obtain the prediction information of the image block to be reconstructed. The intra-frame prediction unit 222 can also adopt technologies such as IBC or ISC.

[0079] Furthermore, the reconstruction unit 25 is used to add the prediction information and the above-mentioned reconstructed residual signal to obtain the reconstruction signal of the current image block to be reconstructed, and then obtain the current reconstructed image block corresponding to the current image block to be reconstructed according to the reconstruction signal, where the current reconstructed image block can be used to predict other subsequent image blocks to be reconstructed. Similar to the situation at the encoding end, optionally, the filtering unit 26 at the decoding end can filter the current reconstructed image block.

[0080] It should be noted that the block partitioning information determined at the encoding end, as well as the mode information or parameter information such as prediction, transformation, quantization, entropy encoding, and loop filtering, are carried in the bitstream when necessary. The decoding end determines the same block partitioning information, prediction, transformation, quantization, entropy encoding, loop filtering, etc. mode information or parameter information as the encoding end by parsing the bitstream and analyzing according to the existing information, so as to ensure that the decoded image obtained at the encoding end is the same as the decoded image obtained at the decoding end.

[0081] The above is the basic process of the video codec under the block-based hybrid coding framework. With the development of technology, some modules or steps of this framework or process may be optimized. This application is applicable to the basic process of the video codec under the block-based hybrid coding framework, but is not limited to this framework and process.

[0082] It should be noted that the block partitioning information determined by the encoding end, as well as mode information or parameter information such as prediction, transformation, quantization, entropy encoding, loop filtering, etc., are carried in the bitstream when necessary. The decoding end determines the same block partitioning information, prediction, transformation, quantization, entropy encoding, loop filtering and other mode information or parameter information as the encoding end by parsing the bitstream and analyzing according to the existing information, so as to ensure that the decoded image obtained by the encoding end is the same as the decoded image obtained by the decoding end.

[0083] The above is the basic process of a video codec under the block-based hybrid coding framework. With the development of technology, some modules or steps of this framework or process may be optimized. This application is applicable to the basic process of a video codec under the block-based hybrid coding framework, but is not limited to this framework and process.

[0084] The intra string copy frame prediction technology is introduced below.

[0085] As can be seen from the above, inter-frame prediction includes motion compensation. Motion compensation is based on the redundancy characteristics of video content in the time domain or spatial domain, and derives the predicted value of the current coding block from the already encoded area. Motion compensation includes inter-frame prediction, intra block copy frame prediction, intra string copy frame prediction, etc. In specific coding implementations, these prediction methods may be used alone or in combination.

[0086] The intra string copy frame prediction technology (Intra String Copy, abbreviated as ISC) is also called intra-frame string copy technology. The intra string copy frame prediction technology divides an encoding block into a series of pixel strings or unmatched pixels according to a certain scanning order (such as raster scanning, back-and-forth scanning, and Zig-Zag scanning). Similar to intra block copy (Intra Block Copy, abbreviated as IBC), each string searches for a reference string with the same shape in the already encoded area of the current image. Based on this, the prediction information of the current string is derived. By encoding the original signal and prediction information of the current string, the residual signal of the current string is obtained, and this residual signal is encoded.

[0087] Figure 4 is a schematic diagram of an intra string copy frame prediction technology involved in an embodiment of the present application. As Figure 4 shown, the dark gray area is the already encoded area. The current encoding block is divided into 3 strings, where string 1 and string 3 are matching strings, and string 2 is an incompletely matching string. The 1 black pixel in string 2 represents an unmatched pixel, and the remaining three white pixels are all matching pixels. The unmatched pixel is also called an isolated point. The predicted value of the unmatched pixel is directly encoded instead of being derived through the predicted value. The predicted value of the matching string is obtained according to the string vector. The incompletely matching string obtains the initial predicted value according to the string vector, and then uses the unmatched pixel value to replace the predicted value at the corresponding position to derive the final predicted value.

[0088] The string copy intra prediction mode includes a first sub-mode and a second sub-mode.

[0089] In some embodiments, the first sub-mode is also referred to as the normal string sub-mode, and the second sub-mode is also referred to as the non-normal string sub-mode. Optionally, the non-normal string sub-mode can also be referred to as the equal-value string and unit basis vector string sub-mode.

[0090] The following is the semantic description of the syntax elements related to the normal string sub-mode:

[0091] The match type isc_match_type[i] of the string copy intra prediction

[0092] A value of '1' indicates that the i-th part of the current coding unit is a matching string; a value of '0' indicates that the i-th part is an incomplete matching string. IscMatchType[i] is equal to the value of isc_match_type[i]. If isc_match_type[i] does not exist in the bitstream, the value of IscMatchType[i] is 0.

[0093] The remaining sample count isc_next_remaining_pixel_in_cu[i]

[0094] After decoding the i-th part of the current coding unit, it is the number of samples in the current coding unit that remain undecoded. The value of IscNextRemainingPixelInCu[i] is equal to the value of isc_next_remaining_pixel_in_cu[i].

[0095] The sample match type flag isc_pixel_match_type[i][j]

[0096] A value of '1' indicates that the j-th pixel of the i-th part of the current coding unit is a matching sample; a value of '0' indicates an unmatched sample. IscPixelMatchType[i][j] is equal to the value of isc_pixel_match_type[i][j]. If isc_pixel_match_type[i][j] does not exist in the bitstream, the value of IscPixelMatchType[i][j] is 1.

[0097] The luminance component value of the unmatched sample of the string copy intra prediction isc_unmatched_pixel_y[i][j]

[0098] The chrominance Cb component value of the unmatched sample of the string copy intra prediction isc_unmatched_pixel_cb[i][j]

[0099] Chrominance Cr component value of the unmatched sample in string copy intra prediction isc_unmatched_pixel_cr[i][j]

[0100] Values of the luminance component, chrominance Cb component, and chrominance Cr component of the j-th unmatched pixel in the i-th part of the current coding unit in the normal string sub-pattern. IscUnmatchedPixelY[i][j], IscUnmatchedPixelCb[i][j], and IscUnmatchedPixelCr[i][j] are equal to the values of isc_unmatched_pixel_y[i][j], isc_unmatched_pixel_cb[i][j], and isc_unmatched_pixel_cr[i][j] respectively.

[0101] String vector above flag isc_sv_above_flag[i]

[0102] A value of '1' indicates that the string vector of the i-th part of the current coding unit is (0, -1); a value of '0' indicates that the string vector is not (0, -1). IscSvAboveFlag[i] is equal to the value of isc_sv_above_flag[i].

[0103] String vector history flag isc_sv_recent_flag[i]

[0104] A value of '1' indicates that the string vector of the i-th part of the current coding unit should be derived from the intra copy history information table; a value of '0' indicates that the string vector should not be derived from the intra copy history information table. IscSvRecentFlag[i] is equal to the value of isc_sv_recent_flag[i]. If isc_sv_recent_flag[i] does not exist in the bitstream, the value of IscSvRecentFlag[i] is 0.

[0105] If the values of both IscSvAboveFlag[i] and IscSvRecentFlag[i] are 0, the value of the X component of the string vector of the i-th part of the current coding unit is determined by IscSvXNonZeroFlag[i], IscSvXSign[i], and IscSvXAbs[i], and the value of the Y component is determined by IscSvYSign[i] and IscSvYAbs[i].

[0106] String vector history index isc_sv_recent_index[i]

[0107] The index value of the string vector of the i-th part of the current coding unit in the intra-copy history information table. The value of IscSvRecentIndex[i] is equal to the value of isc_sv_recent_index[i].

[0108] The absolute value of the Y component of the string vector isc_sv_y_abs[i]

[0109] The absolute value of the Y component of the string vector of the i-th part of the current coding unit. IscSvYAbs[i] is equal to the value of isc_sv_y_abs[i].

[0110] The sign bit of the Y component of the string vector isc_sv_y_sign[i]

[0111] The sign bit of the Y component of the string vector of the i-th part of the current coding unit. A value of '1' indicates that the value of the Y component is negative; a value of '0' indicates that the value of the Y component is positive. IscSvYSign[i] is equal to the value of isc_sv_y_sign[i]. If isc_sv_y_sign[i] does not exist in the bitstream, the value of IscSvYSign[i] is 1.

[0112] The sign bit of the X component of the string vector isc_sv_x_sign[i]

[0113] The sign bit of the X component of the string vector of the i-th part of the current coding unit. A value of '1' indicates that the value of the X component is negative; a value of '0' indicates that the value of the X component is positive. IscSvXSign[i] is equal to the value of isc_sv_x_sign[i]. If isc_sv_x_sign[i] does not exist in the bitstream, the value of IscSvXSign[i] is 1.

[0114] The absolute value of the X component of the string vector minus 1 isc_sv_x_abs_minus1[i]

[0115] The absolute value of the X component of the string vector of the i-th part of the current coding unit minus 1. IscSvXAbs[i] is equal to the value of isc_sv_x_abs_minus1[i] plus 1. If isc_sv_x_abs_minus1[i] does not exist in the bitstream, IscSvXAbs[i] is equal to 0.

[0116] The flag of the X component of the string vector isc_sv_x_non_zero_flag[i]

[0117] A value of '1' indicates that the X component value of the string vector of the i-th part of the current coding unit is not equal to 0; a value of '0' indicates that the X component value is equal to 0. IscSvXNonZeroFlag[i] is equal to the value of isc_sv_x_non_zero_flag[i]. If isc_sv_x_non_zero_flag[i] does not exist in the bitstream, the value of IscSvXNonZeroFlag[i] is 1. It should be noted that the above syntax elements are just examples, and their Chinese names and English names may change, and this embodiment does not limit this.

[0118] The equal-value string and unit vector string mode is a sub-mode of intra prediction for string copy, which was adopted into the AVS3 standard in October 2020. Similar to intra prediction for string copy, this mode divides an encoding / decoding block into a series of pixel strings or unmatched pixels according to a certain scanning order. The type of pixel string can be an equal-value string or a unit base vector string. The characteristic of an equal-value string is that all pixels in the pixel string have the same predicted value. The unit vector string (also known as the unit base vector string, unit offset string, copy above string, etc.) is characterized in that its displacement vector is (0, -1), and each pixel of this string uses the pixel above as the predicted value of the current pixel. The equal-value string mode needs to encode the type, length, and predicted value information of each string of the current coding block in the bitstream. Like the first sub-mode (ordinary string sub-mode), the predicted values of unmatched pixels are directly encoded instead of being derived from the predicted values. Figure 5 This is a schematic diagram of the equal-value string and unit base vector string sub-mode involved in the embodiments of this application. Among them, the dark gray strings are all equal-value strings, the light gray strings are unit base vector strings, and the black strings are unmatched pixels.

[0119] The following is the semantic description of the syntax elements related to the equal-value string and unit base vector string sub-mode:

[0120] Intra prediction for string copy, unmatched sample string existence flag isc_ups_present_flag

[0121] Binary variable. A value of '1' indicates that there is an unmatched sample string in the current coding unit; a value of '0' indicates that there is no unmatched sample string in the current coding unit. The value of IscUpsPresentFlag is equal to the value of isc_ups_present_flag. If isc_ups_present_flag does not exist in the bitstream, the value of IscUpsPresentFlag is 0.

[0122] Number of newly added point vectors isc_num_of_new_pv

[0123] The number of new point vectors in the current coding unit. The value of IscNumOfNewPv is equal to the value of isc_num_of_new_pv. If isc_num_of_new_pv does not exist in the bitstream, the value of IscNumOfNewPv is 0.

[0124] The number of reused point vectors isc_num_of_reused_pv

[0125] Indicates the number of point vectors in the PrevPpInfoList of the reused historical point prediction information table in the current coding unit. The value of IscNumOfReusedPv is equal to the value of isc_num_of_reused_pv. If isc_num_of_reused_pv does not exist in the bitstream, the value of IscNumOfReusedPv is 0.

[0126] The number of non-reused point vectors arranged continuously in the historical point prediction information table isc_prev_pv_not_reused_run

[0127] Indicates the number of non-reused point vectors arranged continuously when selecting reused point vectors from the PrevPpInfoList of the historical point prediction information table. The value of IscPrevPvNotReusedRun is equal to the value of isc_prev_pv_not_reused_run. If isc_prev_pv_not_reused_run does not exist in the bitstream, the value of IscPrevPvNotReusedRun is 0.

[0128] The maximum value of the length of unmatched sample strings isc_ups_max_length_minus1

[0129] Adding 1 to the value of isc_ups_max_length_minus1 represents the maximum value of the lengths of all unmatched sample strings in the current coding unit. The value of IscUpsMaxLengthMinus1 is equal to the value of isc_ups_max_length_minus1. If isc_ups_max_length_minus1 does not exist in the bitstream, the value of IscUpsMaxLengthMinus1 is 0.

[0130] The number of equal-value strings or unmatched sample strings isc_evs_ups_num_minus1

[0131] Used to determine the number of consecutive equal-value strings or unmatched sample strings. The value of IscEvsUPSNumMinus1 is equal to the value of isc_evs_ups_num_minus1. If isc_evs_ups_num_minus1 does not exist in the bitstream, the value of IscEvsUPSNumMinus1 is 0.

[0132] The first part of the string length str_length_minus1_prefix

[0133] The first part of the string length. StrLengthMinus1Prefix is equal to the value of str_length_minus1_prefix. If str_length_minus1_prefix does not exist in the bitstream, the value of StrLengthMinus1Prefix is 0.

[0134] The second part of the string length str_length_minus1_infix

[0135] The second part of the string length. StrLengthMinus1Infix is equal to the value of str_length_minus1_infix. If str_length_minus1_infix does not exist in the bitstream, the value of StrLengthMinus1Infix is 0.

[0136] The third part of the string length str_length_minus1_suffix

[0137] The third part of the string length. StrLengthMinus1Suffix is equal to the value of str_length_minus1_suffix. If str_length_minus1_suffix does not exist in the bitstream, the value of StrLengthMinus1Suffix is 0.

[0138] The first part of the index value of the point vector in the point prediction information table pv_address_prefix

[0139] The first part of the point vector index value. PvAdressPrefix is equal to the value of pv_address_prefix. If pv_address_prefix does not exist in the bitstream, the value of PvAdressPrefix is 0.

[0140] The second part of the index value of the point vector in the point prediction information table pv_address_infix

[0141] The second part of the point vector index value. PvAdressInfix is equal to the value of pv_address_infix. If pv_address_infix does not exist in the bitstream, the value of PvAdressInfix is 0.

[0142] The third part pv_address_suffix of the index value of the point vector in the point prediction information table

[0143] The third part of the point vector index value. PvAdressSuffix is equal to the value of pv_address_suffix. If pv_address_suffix does not exist in the bitstream, the value of PvAdressSuffix is 0.

[0144] The pixel luminance component value isc_fopixel_y at the common position corresponding to the newly added point vector

[0145] The pixel Cb component value isc_fopixel_cb at the common position corresponding to the newly added point vector

[0146] The pixel Cr component value isc_fopixel_cr at the common position corresponding to the newly added point vector

[0147] The values of the luminance component, chrominance Cb component, and chrominance Cr component of the pixel at the common position corresponding to the newly added point vector.

[0148] The pixel luminance component value isc_nos_up_y[i] of the unmatched sample in the string copy intra prediction

[0149] The pixel chrominance Cb component value isc_nos_up_cb[i] of the unmatched sample in the string copy intra prediction

[0150] The pixel chrominance Cr component value isc_nos_up_cr[i] of the unmatched sample in the string copy intra prediction

[0151] The values of the luminance component, chrominance Cb component, and chrominance Cr component of the unmatched pixels of the i-th part of the current coding unit in the non-ordinary string sub-mode. IscNosUpY[i], IscNosUpCb[i], and IscNosUpCr[i] are equal to the values of isc_nos_up_y[i], isc_nos_up_cb[i], and isc_nos_up_cr[i], respectively.

[0152] It should be noted that the above-mentioned syntax elements are only examples, and their Chinese names and English names may change. This embodiment does not limit this.

[0153] Currently, the video encoding process is that the encoding end encodes the syntax elements of each string in the current block separately to form a bitstream. The decoding end decodes the syntax elements of each string in the current block separately from the bitstream to obtain the syntax elements of each string, and based on the syntax elements of each string, obtains the prediction value of the current block, and then obtains the reconstructed value of the current block based on the prediction value of the current block.

[0154] However, in the current encoding and decoding method, the syntax elements of each string are encoded separately, without considering the impact of encoding different types of syntax elements intertwined on the throughput rate of the codec, which results in low encoding efficiency.

[0155] To solve the above technical problems, the present application groups the syntax elements of at least one pixel string in the current block, encodes or decodes each group of syntax elements, increases the amount of data processed in one encoding and decoding, improves the throughput rate of the codec, reduces the number of encoding and decoding times, and thus improves the encoding efficiency.

[0156] The following describes in detail the technical solutions provided by the embodiments of the present application with specific embodiments.

[0157] Figure 6 The flowchart of the decoding method for string copy intra prediction provided by an embodiment of the present application, and the method of the embodiment of the present application is applied to Figure 1 or Figure 3 The decoding end shown, as Figure 6 shown, includes:

[0158] S610. Decode the bitstream to obtain the syntax elements of at least one pixel string in the current block to be decoded, where the syntax elements include at least two different decoding methods;

[0159] The execution subject of the embodiment of the present application includes but is not limited to the following devices: a decoder, or a device for performing string copy intra prediction encoding, such as a desktop computer, a mobile computing device, a notebook (e.g., laptop) computer, a tablet computer, a set-top box, a handheld device such as a smart phone, a television, a camera, a display device, a digital media player, a video game console, an in-vehicle computer, or the like.

[0160] In some embodiments, the current block is also referred to as the current image block, the current processing block, or the current decoding block, etc.

[0161] At the encoding end, the current block is divided into a series of pixel strings according to a certain scanning order, and each pixel string includes at least one pixel point.

[0162] Optionally, the type of the pixel string can be a normal string, an equal-value string, a unit vector string, or an unmatched pixel, etc.

[0163] It should be noted that when the intra prediction mode of the string copy in the current block is different, the syntax elements corresponding to the current block are not completely the same.

[0164] Example 1: When the intra prediction mode of the string copy in the current block is the first sub-mode (ordinary string sub-mode), the syntax elements of at least one pixel string in the current block include at least one syntax element corresponding to the above first sub-mode.

[0165] Example 2: When the intra prediction mode of the string copy in the current block is the second sub-mode (for example, equal-value string and unit vector string sub-mode), the syntax elements of at least one pixel string in the current block include at least one syntax element corresponding to the above equal-value string and unit vector string sub-mode.

[0166] It should be noted that the above syntax elements are only examples. The embodiments of the present application include but are not limited to the above syntax elements. With the development of video coding and decoding technology, the syntax elements may change. The syntax elements involved in the embodiments of the present application include the syntax elements generated by the current technology and also the syntax elements generated by future technologies.

[0167] S620: Group the syntax elements of at least one pixel string in the current block to obtain M groups of syntax elements, where M is a positive integer.

[0168] In some embodiments, all the syntax elements of at least one pixel string in the current block are grouped, for example, the syntax elements described in Example 1 or Example 2 above are grouped.

[0169] In some embodiments, some of the syntax elements of at least one pixel string in the current block are grouped. For example, some of the syntax elements described in Example 1 or Example 2 above are grouped; or, all the syntax elements described in Example 1 above are grouped, and some of the syntax elements described in Example 2 above are grouped; or, some of the syntax elements described in Example 1 above are grouped, and all the syntax elements described in Example 2 above are grouped.

[0170] In some embodiments, the pixel strings included in the current block are referred to as the strings included in the current block.

[0171] As can be seen from the above, the current block includes multiple pixel strings. When grouping the syntax elements corresponding to the current block, the syntax elements of some pixel strings in the current block can be grouped, or the syntax elements of all the strings in the current block can be grouped. The present application does not limit this.

[0172] The encoding end groups the syntax elements of at least one pixel string in the current block to obtain M groups of syntax elements, and encodes each group of syntax elements. Correspondingly, after obtaining the bitstream, the decoding end parses the bitstream, groups the syntax elements of the current block to be decoded carried in the bitstream to obtain M groups of syntax elements, where M is a positive integer, decodes each group of syntax elements in the M groups of syntax elements to obtain the syntax elements of at least one pixel string in the current block, and then determines the prediction value of the current block according to the syntax elements of at least one pixel string in the current block.

[0173] It should be noted that in this application, the decoding end and the encoding end use the same method for grouping the syntax elements of at least one pixel string in the current block.

[0174] In some embodiments, the encoding end sends the method of grouping the syntax elements to the decoding end. For example, the encoding end carries the method of grouping the syntax elements in the bitstream, so that the decoding end can parse the method of grouping the syntax elements used by the encoding end from the bitstream, and group the syntax elements to be decoded in the received bitstream according to the method of grouping the syntax elements to ensure the correctness of the syntax element grouping.

[0175] In some embodiments, the decoding end defaults to using the same method of grouping the syntax elements as the encoding end. That is to say, both the encoding end and the decoding end use the default method of grouping the syntax elements, so that the encoding end does not need to indicate the method of grouping the syntax elements in the bitstream, thereby reducing the number of codewords.

[0176] It should be noted that the embodiments of this application do not limit the method of grouping the syntax elements of at least one pixel string in the current block in the above S620.

[0177] S630: Decode each group of syntax elements in the M groups of syntax elements to obtain the syntax elements of at least one pixel string in the current block.

[0178] The decoding end decodes a group of syntax elements as a decoding unit, which can improve the decoding efficiency.

[0179] In some embodiments, when decoding each group of syntax elements, it is also possible to group and decode again according to the different decoding methods of the syntax elements in the group. That is, the above S630 includes S630-A1 and S630-A2:

[0180] S630-A1: For each group of syntax elements in the M groups of syntax elements, if the decoding method of the group of syntax elements includes N different decoding methods, then according to the decoding method, the syntax elements based on the same decoding method in the group of syntax elements are divided into a sub-syntax element group to obtain N groups of sub-syntax elements;

[0181] S630 - A2. Decode each group of sub - syntax elements among N groups of sub - syntax elements.

[0182] In some embodiments, the above - mentioned syntax elements are all decoded in the CABAC manner, for example, it can be divided into a context - based decoding method and a bypass - based decoding method. In a specific hardware implementation, separating the syntax elements of different decoding methods can prevent the decoder from frequently switching between the two decoding methods, which is beneficial to improving the throughput rate of the decoder.

[0183] For example, N different decoding methods include a context - based decoding method and a bypass - based decoding method.

[0184] In some embodiments, during the decoding process, the group of sub - syntax elements in the context - based decoding method can be decoded first, and then the group of sub - syntax elements in the bypass - based decoding method can be decoded.

[0185] S640. Determine the prediction value of the current block according to the syntax elements of at least one pixel string in the current block.

[0186] When the decoding end of the present application decodes the syntax elements corresponding to the current block, it groups the syntax elements of at least one pixel string of the current block to be decoded, obtaining M groups of syntax elements, decodes each group of syntax elements among the M groups of syntax elements, and then obtains the syntax elements of at least one pixel string in the current block. This grouped decoding method can increase the amount of data decoded at one time, thereby reducing the number of decoding times and improving the decoding efficiency. Then, according to the syntax elements of at least one pixel string in the current block obtained by decoding, the prediction value of the current block is determined, and according to the prediction value and the residual value of the current block, the reconstructed value of the current block is obtained. In a specific hardware implementation, separating the syntax elements of different decoding methods can prevent the decoder from frequently switching between the two decoding methods, which is beneficial to improving the throughput rate of the decoder and thus enhancing the decoding efficiency.

[0187] Next, for different string - copy intra - prediction modes, the decoding processes in the first sub - mode and the second sub - mode will be introduced in detail respectively.

[0188] First, the decoding process of the first sub - mode (such as the normal string sub - mode) will be introduced.

[0189] Figure 7 It is a flowchart of the decoding method for string - copy intra - prediction provided by an embodiment of the present application. As Figure 7 shown, it includes:

[0190] S710. Decode the bitstream to obtain the number of strings of the current block and the syntax elements of at least one pixel string of the current block to be decoded.

[0191] Among them, the syntax elements include at least two different decoding methods.

[0192] The bitstream includes a syntax element indicating the number of pixel strings included in the current block. Parse this syntax element to obtain the number of strings included in the current block.

[0193] Meanwhile, decode the bitstream to obtain the syntax elements of at least one pixel string in the current block to be decoded carried in the bitstream.

[0194] In some embodiments, if the string copy intra prediction mode of the current block is the first sub-mode (such as the ordinary string sub-mode), then the syntax elements of at least one pixel string in the current block include, in addition to the syntax element indicating the unmatched pixel value, one or more of the following: a syntax element indicating the string type, a syntax element indicating the string length, a syntax element indicating the pixel type, a syntax element indicating the string vector, and a syntax element indicating the unmatched pixel value.

[0195] Exemplarily, the syntax element indicating the string type includes: isc_match_type;

[0196] The syntax element indicating the string length includes: isc_next_remaining_pixel_in_cu;

[0197] The syntax element indicating the pixel type includes: isc_pixel_match_type;

[0198] The syntax elements indicating the unmatched pixel values include: isc_unmatched_pixel_y, isc_unmatched_pixel_u, isc_unmatched_pixel_v;

[0199] The syntax elements indicating the string vector include: isc_sv_above_flag, isc_sv_recent_flag, isc_sv_recent_index, isc_sv_y_abs, isc_sv_y_sign, isc_sv_x_sign, isc_sv_x_abs_minus1, isc_sv_x_non_zero_flag.

[0200] It should be noted that the above syntax elements are only examples. If the string copy intra prediction mode of the current block is the first sub-mode (such as the ordinary string sub-mode), then the syntax elements of at least one pixel string in the current block include but are not limited to the above examples.

[0201] S720. Group the syntax elements of the current block.

[0202] The ways of grouping the syntax elements of the current block include the following cases:

[0203] Case 1: According to the scanning order, the syntax elements indicating unmatched pixel values in at least one pixel string in the current block are grouped into a set of syntax elements. According to the scanning order, one or more of the syntax elements indicating string type, string length, pixel type, and string vector in at least one pixel string in the current block are grouped into at least one set of syntax elements.

[0204] That is to say, each pixel string in the current block includes syntax elements indicating unmatched pixel values. For the convenience of decoding, the syntax elements indicating unmatched pixel values in at least one pixel string (such as N pixel strings, N is a positive integer) in the current block are grouped into a set of syntax elements for decoding. Since the coding modes of the syntax elements indicating unmatched pixel values in each pixel string are basically the same, the syntax elements indicating unmatched pixel values in each pixel string are decoded as a whole, which improves the throughput rate of the decoder and simplifies the decoding process, thereby improving the decoding efficiency.

[0205] In Case 1, the syntax elements indicating unmatched pixel values in at least one pixel string in the current block are grouped into a set of syntax elements. According to the scanning order, the ways of grouping one or more of the syntax elements indicating string type, string length, pixel type, and string vector in at least one pixel string in the current block into at least one set of syntax elements include but are not limited to the following:

[0206] Method 1: According to the scanning order, the syntax elements indicating string type, string length, pixel type, and string vector in at least one pixel string in the current block are grouped into the first set of syntax elements.

[0207] Method 2: According to the scanning order, the syntax elements indicating string type, string length, and pixel type in at least one pixel string in the current block are grouped into the first set of syntax elements, and the syntax elements indicating string vector in at least one pixel string in the current block are grouped into the second set of syntax elements.

[0208] Method 3: According to the scanning order, the syntax elements indicating string type and string length in at least one pixel string in the current block are grouped into the first set of syntax elements, the syntax elements indicating pixel type in at least one pixel string in the current block are grouped into the second set of syntax elements, and the syntax elements indicating string vector in at least one pixel string in the current block are grouped into the third set of syntax elements.

[0209] Method 3: According to the scanning order, divide the syntax elements indicating the string type of at least one pixel string in the current block into the first group of syntax elements, divide the syntax elements indicating the string length of at least one pixel string in the current block into the second group of syntax elements, divide the syntax elements indicating the pixel type of at least one pixel string in the current block into the third group of syntax elements, and divide the syntax elements indicating the string vector of at least one pixel string in the current block into the fourth group of syntax elements.

[0210] Case 2: Divide the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block, and at least one of the syntax elements indicating the string type, the string length, the pixel type, the string vector, and the unmatched pixel values of at least one pixel string in the current block into a group of syntax elements.

[0211] In Case 2, the ways to divide the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block, and at least one of the syntax elements indicating the string type, the string length, the pixel type, the string vector, and the unmatched pixel values of at least one pixel string in the current block into a group of syntax elements include but are not limited to the following:

[0212] Method 1: Divide the syntax elements indicating the string type and the string length of at least one pixel string in the current block into the first group of syntax elements; divide the syntax elements indicating the string vector of at least one pixel string in the current block into the second group of syntax elements; divide the syntax elements indicating the unmatched pixel values and the pixel type of at least one pixel string in the current block into the third group of syntax elements.

[0213] Method 2: According to the scanning order, divide the syntax elements indicating the string type of at least one pixel string in the current block into the first group of syntax elements, divide the syntax elements indicating the string length of at least one pixel string in the current block into the second group of syntax elements, divide the syntax elements indicating the pixel type of at least one pixel string in the current block into the third group of syntax elements, and divide the syntax elements indicating the string vector and the unmatched pixel values of at least one pixel string in the current block into the fourth group of syntax elements.

[0214] S730: Decode each group of the M groups of syntax elements to obtain the syntax elements of at least one pixel string in the current block.

[0215] In this step, when decoding the M groups of syntax elements, there is no limit on the order of decoding the above groups.

[0216] In some embodiments, when decoding each group of the M groups of syntax elements, decode the first group of syntax elements first.

[0217] For example, in the first method described above, first decode the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the pixel type, and the syntax elements indicating the string vector for at least one pixel string in the current block, and then decode the syntax elements indicating the unmatched pixel values for at least one pixel string in the current block.

[0218] For example, in the second method described above, first decode the syntax elements indicating the string type, the syntax elements indicating the string length, and the syntax elements indicating the pixel type for at least one pixel string in the current block, and then decode the syntax elements indicating the string vector or the syntax elements indicating the unmatched pixel values for at least one pixel string in the current block. Among them, the decoding order of the syntax elements indicating the string vector or the syntax elements indicating the unmatched pixel values can be adjusted arbitrarily.

[0219] For example, in the third method described above, first decode the syntax elements indicating the string type and the syntax elements indicating the string length for at least one pixel string in the current block, and then decode the syntax elements indicating the pixel type, or the syntax elements indicating the string vector, or the syntax elements indicating the unmatched pixel values for at least one pixel string in the current block. Among them, the decoding order of the syntax elements indicating the pixel type, or the syntax elements indicating the string vector, or the syntax elements indicating the unmatched pixel values can be adjusted arbitrarily.

[0220] In some embodiments, when decoding each group of the above M groups of syntax elements, if the decoding method of the group of syntax elements includes N different decoding methods, then according to the decoding method, the syntax elements based on the same decoding method in the group of syntax elements are divided into a sub-syntax element group, obtaining N groups of sub-syntax elements; decode each group of the N groups of sub-syntax elements.

[0221] In some embodiments, the above syntax elements are all decoded in the CABAC manner. For example, it can be divided into a context-based decoding method and a bypass-based decoding method. In a specific hardware implementation, separating the syntax elements of different decoding methods can prevent the decoder from frequently switching between the two decoding methods, which is beneficial to improving the throughput rate of the decoder.

[0222] For example, the N different decoding methods include a context-based decoding method and a bypass-based decoding method. The group of syntax elements is divided into a sub-syntax element group based on the context-based decoding method and a sub-syntax element group based on the bypass-based decoding method. During the decoding process, the sub-syntax element group based on the context-based decoding method can be decoded first, and then the sub-syntax element group based on the bypass-based decoding method can be decoded.

[0223] It should be noted that during the decoding process, if the syntax element group is empty, the decoding of the syntax element group is skipped.

[0224] S740. Determine the prediction value of the current block according to the syntax elements of at least one pixel string in the current block.

[0225] When the decoding end of the present application decodes the syntax elements corresponding to the current block, it groups the syntax elements of at least one pixel string of the current block to be decoded to obtain M groups of syntax elements, decodes each group of syntax elements in the M groups of syntax elements, and then obtains the syntax elements of at least one pixel string in the current block. This way of grouped decoding can increase the amount of data decoded at one time, thereby reducing the number of decoding times and improving the decoding efficiency. Then, according to the syntax elements of at least one pixel string in the current block obtained by decoding, the prediction value of the current block is determined, and according to the prediction value and the residual value of the current block, the reconstructed value of the current block is obtained. In a specific hardware implementation, separating the syntax elements of different decoding methods can prevent the decoder from frequently switching between two decoding methods, which is beneficial to improving the throughput rate of the decoder and thus enhancing the decoding efficiency.

[0226] First, the decoding process of the second sub-mode (such as the non-ordinary string sub-mode) is introduced.

[0227] In some embodiments, the non-ordinary string sub-mode is also referred to as the equal-value string and unit basis vector string sub-mode.

[0228] Figure 8 It is a flowchart of the decoding method for string copy intra prediction provided by an embodiment of the present application. As Figure 8 shown, it includes:

[0229] S810. Decode the bitstream to obtain the number of strings of the current block and the syntax elements of at least one pixel string of the current block to be decoded.

[0230] Among them, the syntax elements include at least two different decoding methods.

[0231] If the string copy intra prediction mode of the current block is the equal-value string and unit basis vector string sub-mode, then the syntax elements of at least one pixel string in the current block, in addition to including the syntax elements indicating the unmatched pixel values, further include: one or more of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the dot vector position of the regular occurrence position, and the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added dot vectors.

[0232] Exemplarily, the syntax elements indicating the string type include: isc_evs_ups_num_minus1;

[0233] The syntax elements indicating the string length include: str_length_minus1_prefix, str_length_minus1_infix, str_length_minus1_subfix;

[0234] The syntax elements indicating the dot vector positions of frequently-occurring positions include: pv_address_prefix, pv_address_infix, pv_address_suffix;

[0235] The syntax elements indicating the pixel values at the frequently-occurring positions corresponding to the newly added dot vectors include: isc_fopixel_y, isc_fopixel_cb, isc_fopixel_cr;

[0236] The syntax elements indicating the unmatched pixel values include: isc_nos_up_y, isc_nos_up_cb, isc_nos_up_cr.

[0237] It should be noted that the above syntax elements are just examples. When the string copy intra prediction mode of the current block is the equal-value string and unit basis vector string sub-mode, the syntax elements of at least one pixel string in the current block include but are not limited to the above examples.

[0238] S820. Group the syntax elements of the current block.

[0239] The ways of grouping the syntax elements of the current block include the following situations:

[0240] Situation 1. According to the scanning order, group the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block into one group of syntax elements. According to the scanning order, group one or more of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the dot vector positions of frequently-occurring positions, and the syntax elements indicating the pixel values at the frequently-occurring positions corresponding to the newly added dot vectors of at least one pixel string in the current block into at least one group of syntax elements.

[0241] In Situation 1, the ways of grouping one or more of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the dot vector positions of frequently-occurring positions, and the syntax elements indicating the pixel values at the frequently-occurring positions corresponding to the newly added dot vectors of at least one pixel string in the current block into at least one group of syntax elements include but are not limited to the following:

[0242] Method 1: According to the scanning order, the syntax elements indicating the string type of at least one pixel string in the current block, the syntax elements indicating the string length, the syntax elements indicating the dot vector positions of the regular occurrence positions, and the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added dot vectors are grouped into the first group of syntax elements.

[0243] Method 2: According to the scanning order, the syntax elements indicating the string type of at least one pixel string in the current block, the syntax elements indicating the string length, and the syntax elements indicating the dot vector positions of the regular occurrence positions are grouped into the first group of syntax elements, and the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added dot vectors of at least one pixel string in the current block are grouped into the second group of syntax elements.

[0244] Method 3: According to the scanning order, the syntax elements indicating the string type of at least one pixel string in the current block and the syntax elements indicating the string length are grouped into the first group of syntax elements, the syntax elements indicating the dot vector positions of the regular occurrence positions of at least one pixel string in the current block are grouped into the second group of syntax elements, and the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added dot vectors of at least one pixel string in the current block are grouped into the third group of syntax elements.

[0245] Method 4: According to the scanning order, the syntax elements indicating the string length of at least one pixel string in the current block are grouped into the first group of syntax elements, the syntax elements indicating the string type of at least one pixel string in the current block are grouped into the second group of syntax elements, the syntax elements indicating the dot vector positions of the regular occurrence positions of at least one pixel string in the current block are grouped into the third group of syntax elements, and the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added dot vectors of at least one pixel string in the current block are grouped into the fourth group of syntax elements.

[0246] Case 2: The syntax elements indicating the unmatched pixel values of at least one pixel string in the current block, and at least one of the syntax elements indicating the string type, the string length, the dot vector positions of the regular occurrence positions, and the pixel values at the regular occurrence positions corresponding to the newly added dot vectors are grouped into a group of syntax elements.

[0247] In Case 2, the methods of grouping the syntax elements of the current block include but are not limited to the following:

[0248] According to the scanning order, the syntax elements indicating the string length of at least one pixel string in the current block are grouped into the first group of syntax elements, the syntax elements indicating the string type of at least one pixel string in the current block are grouped into the first group of syntax elements, and the syntax elements indicating the dot vector positions of the regular occurrence positions, the pixel values at the regular occurrence positions corresponding to the newly added dot vectors, and the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block are grouped into at least one group; or,

[0249] According to the scanning order, the syntax elements indicating the string type, the syntax elements indicating the string length, and the syntax elements indicating the dot vector positions of the constant occurrence positions of at least one pixel string in the current block are classified as the first group of syntax elements, and the syntax elements indicating the pixel values at the constant occurrence positions corresponding to the newly added dot vectors and the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block are classified as the second group of syntax elements; or,

[0250] According to the scanning order, the syntax elements indicating the string type and the syntax elements indicating the string length of at least one pixel string in the current block are classified as the first group of syntax elements, the syntax elements indicating the dot vector positions of the constant occurrence positions of at least one pixel string in the current block are classified as the second group of syntax elements, and the syntax elements indicating the pixel values at the constant occurrence positions corresponding to the newly added dot vectors and the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block are classified as the third group of syntax elements; or,

[0251] According to the scanning order, the syntax elements indicating the string type and the syntax elements indicating the string length of at least one pixel string in the current block are classified as the first group of syntax elements, and the syntax elements indicating the dot vector positions of the constant occurrence positions, the syntax elements indicating the pixel values at the constant occurrence positions corresponding to the newly added dot vectors, and the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block are classified as the second group of syntax elements.

[0252] S830. Decode each group of the M groups of syntax elements to obtain the syntax elements of at least one pixel string in the current block.

[0253] In this step, when decoding the M groups of syntax elements, there is no restriction on the decoding order of the above groups.

[0254] In some embodiments, when decoding each group of the M groups of syntax elements, the first group of syntax elements is decoded first.

[0255] For example, in the above method 1, first decode the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the dot vector positions of the constant occurrence positions, and the syntax elements indicating the pixel values at the constant occurrence positions corresponding to the newly added dot vectors of at least one pixel string in the current block, and then decode the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block.

[0256] For example, in the second method described above, first decode the syntax elements indicating the string type, the syntax elements indicating the string length, and the syntax elements indicating the dot vector positions of the regular occurrence positions for at least one pixel string in the current block, and then decode the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added dot vectors or the syntax elements indicating the unmatched pixel values for at least one pixel string in the current block. Among them, the decoding order of the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added dot vectors or the syntax elements indicating the unmatched pixel values can be adjusted arbitrarily.

[0257] For example, in the third method described above, first decode the syntax elements indicating the string type and the syntax elements indicating the string length for at least one pixel string in the current block, and then decode the syntax elements indicating the dot vector positions of the regular occurrence positions, or the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added dot vectors, or the syntax elements indicating the unmatched pixel values for at least one pixel string in the current block. Among them, the decoding order of the syntax elements indicating the dot vector positions of the regular occurrence positions, or the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added dot vectors, or the syntax elements indicating the unmatched pixel values can be adjusted arbitrarily.

[0258] In some embodiments, when decoding each group of the above M groups of syntax elements, if the decoding method of this group of syntax elements includes N different decoding methods, then according to the decoding method, divide the syntax elements in this group based on the same decoding method into a sub-syntax element group to obtain N groups of sub-syntax elements; decode each group of sub-syntax elements in the N groups of sub-syntax elements.

[0259] For example, the N different decoding methods include context-based decoding method and bypass decoding method. Divide this group of syntax elements into a sub-syntax element group based on the context-based decoding method and a sub-syntax element group based on the bypass decoding method. During the decoding process, the sub-syntax element group based on the context-based decoding method can be decoded first, and then the sub-syntax element group based on the bypass decoding method can be decoded.

[0260] It should be noted that during the decoding process, if this group of syntax elements is empty, skip the decoding of this group of syntax elements.

[0261] S840. Determine the prediction value of the current block according to the syntax elements of at least one pixel string in the current block.

[0262] When the decoding end of the present application decodes the syntax elements corresponding to the current block, it groups the syntax elements of at least one pixel string of the current block to be decoded to obtain M groups of syntax elements, decodes each group of syntax elements in the M groups of syntax elements, and then obtains the syntax elements of at least one pixel string in the current block. This way of grouped decoding can increase the amount of data decoded at one time, thereby reducing the number of decoding times and improving the decoding efficiency. Then, according to the syntax elements of at least one pixel string in the current block obtained by decoding, the prediction value of the current block is determined, and according to the prediction value and the residual value of the current block, the reconstructed value of the current block is obtained. In a specific hardware implementation, separating the syntax elements of different decoding methods can prevent the decoder from frequently switching between the two decoding methods, which is beneficial to improving the throughput rate of the decoder and thus enhancing the decoding efficiency.

[0263] As described above in conjunction with Figures 6 to 8 the decoding end is introduced. Next, the technical solution of the encoding end will be introduced.

[0264] Figure 9 FIG. is a flowchart of an encoding method for string copy intra prediction provided by an embodiment of the present application. The method of the embodiment of the present application is applied to Figure 1 or Figure 3 the encoding end shown in Figure 9 As shown, the encoding method includes:

[0265] S910. Obtain the syntax elements of at least one pixel string in the current block, where the current block includes multiple pixel strings.

[0266] Among them, the syntax elements include at least two different decoding methods.

[0267] The execution subject of the embodiment of the present application includes but is not limited to the following devices: an encoder, or a device for performing encoding of string copy intra prediction, such as a desktop computer, a mobile computing device, a notebook (e.g., laptop) computer, a tablet computer, a set-top box, a handheld device such as a smart phone, a television, a camera, a display device, a digital media player, a video game console, an in-vehicle computer, or the like.

[0268] The encoding end divides the current block into a series of pixel strings in a certain scanning order, and each pixel string includes at least one pixel point.

[0269] Optionally, the type of the pixel string can be a normal string, an equal value string, a unit vector string, or an unmatched pixel, etc.

[0270] It should be noted that if the string copy intra prediction modes of the current block are different, the syntax elements corresponding to the current block are not exactly the same.

[0271] Example 1: When the string copy intra prediction mode of the current block is the first sub - mode (ordinary string sub - mode), the syntax elements of at least one pixel string in the current block include at least one of the syntax elements corresponding to the above - mentioned equal - value string and unit vector string sub - modes.

[0272] Example 2: When the string copy intra prediction mode of the current block is the second sub - mode (e.g., equal - value string and unit vector string sub - mode), the syntax elements of at least one pixel string in the current block include at least one of the syntax elements corresponding to the above - mentioned equal - value string and unit vector string sub - modes.

[0273] It should be noted that the above - mentioned syntax elements are only examples. The embodiments of the present application include but are not limited to the above - mentioned syntax elements. With the development of video coding technology, the syntax elements may change. The syntax elements involved in the embodiments of the present application include the syntax elements generated by current technologies and also the syntax elements generated by future technologies.

[0274] S920: Group the syntax elements of at least one pixel string in the current block to obtain M groups of syntax elements, where M is a positive integer.

[0275] In some embodiments, group all the syntax elements of at least one pixel string in the current block, for example, group the syntax elements described in Example 1 or Example 2 above.

[0276] In some embodiments, group some of the syntax elements of at least one pixel string in the current block. For example, group some of the syntax elements described in Example 1 or Example 2 above; or, group all the syntax elements described in Example 1 and group some of the syntax elements described in Example 2; or, group some of the syntax elements described in Example 1 and group all the syntax elements described in Example 2.

[0277] As can be seen from the above, the current block includes multiple pixel strings. When grouping the syntax elements corresponding to the current block, it is possible to group the syntax elements of some pixel strings in the current block or group the syntax elements of all strings in the current block. The present application does not limit this.

[0278] The encoding end groups the syntax elements of at least one pixel string in the current block to obtain M groups of syntax elements.

[0279] It should be noted that in the present application, the ways of grouping the syntax elements of at least one pixel string in the current block by the encoding end and the decoding end are consistent.

[0280] In some embodiments, the encoding end sends the way of grouping the syntax elements to the decoding end. For example, the encoding end carries the way of grouping the syntax elements in the bitstream, so that the decoding end can parse out the way of grouping the syntax elements adopted by the encoding end from the bitstream, and group the syntax elements to be decoded in the received bitstream according to the way of grouping the syntax elements, ensuring the correctness of the syntax element grouping.

[0281] In some embodiments, both the encoding end and the decoding end adopt the default way of grouping the syntax elements, so that the encoding end does not need to indicate the way of grouping the syntax elements in the bitstream, thereby reducing the bits.

[0282] It should be noted that the embodiments of the present application do not limit the way of grouping the syntax elements of at least one pixel string in the current block in S920 above.

[0283] S930. Encode each group of the M groups of syntax elements to obtain a bitstream.

[0284] The encoding end encodes a group of syntax elements as an encoding unit, which can improve the encoding efficiency.

[0285] In some embodiments, when encoding each group of syntax elements, it is also possible to perform grouped encoding again according to the different decoding methods of the syntax elements in the group. That is, the above S930 includes S930-A1 and S930-A2:

[0286] S930-A1. For each group of the M groups of syntax elements, if the decoding method of the group of syntax elements includes N different decoding methods, then according to the decoding method, the syntax elements based on the same decoding method in the group of syntax elements are divided into a sub-syntax element group, obtaining N groups of sub-syntax elements;

[0287] S930-A2. Encode each group of the N groups of sub-syntax elements.

[0288] In some embodiments, the above syntax elements are all encoded in the CABAC manner. For example, they can be divided into a context-based decoding method and a bypass-based decoding method. In a specific hardware implementation, separating the syntax elements with different decoding methods can prevent the encoder from frequently switching between the two decoding methods, which is beneficial to improving the throughput rate of the encoder.

[0289] For example, the N different decoding methods include a context-based decoding method and a bypass-based decoding method.

[0290] In some embodiments, during the encoding process, the grouped sub-syntax elements in the context-based decoding mode may be encoded first, and then the grouped sub-syntax elements in the bypass decoding mode may be encoded.

[0291] When the encoding end of the present application encodes the syntax elements corresponding to the current block, it groups the syntax elements of at least one pixel string of the current block to obtain M groups of syntax elements, and encodes each group of syntax elements in the M groups of syntax elements to form a bitstream. That is, the present application uses a grouped encoding method for syntax elements, which can increase the amount of data in one encoding, thereby reducing the number of encodings and improving the encoding efficiency.

[0292] Next, according to the differences in the string copy intra prediction mode, the encoding processes in the first sub-mode and the second sub-mode will be introduced in detail respectively.

[0293] First, the encoding process of the first sub-mode (such as the normal string sub-mode) will be introduced.

[0294] Figure 10 is a flowchart of the encoding method for string copy intra prediction provided in an embodiment of the present application. As Figure 10 shown, it includes:

[0295] S110. Obtain the syntax elements of at least one pixel string in the current block, where the current block includes multiple pixel strings.

[0296] Among them, the syntax elements include at least two different encoding methods.

[0297] In some embodiments, if the string copy intra prediction mode of the current block is the first sub-mode (such as the normal string sub-mode), then the syntax elements of at least one pixel string in the current block include, in addition to the syntax elements indicating the unmatched pixel values, one or more of the following: the syntax element indicating the string type, the syntax element indicating the string length, the syntax element indicating the pixel type, the syntax element indicating the string vector, and the syntax element indicating the unmatched pixel values.

[0298] Exemplarily, the syntax element indicating the string type includes: isc_match_type;

[0299] The syntax element indicating the string length includes isc_next_remaining_pixel_in_cu;

[0300] The syntax element indicating the pixel type includes: isc_pixel_match_type;

[0301] Syntax elements indicating unmatched pixel values include: isc_unmatched_pixel_y, isc_unmatched_pixel_u, isc_unmatched_pixel_v;

[0302] Syntax elements indicating string vectors include: isc_sv_above_flag, isc_sv_recent_flag, isc_sv_recent_index, isc_sv_y_abs, isc_sv_y_sign, isc_sv_x_sign, isc_sv_x_abs_minus1, isc_sv_x_non_zero_flag.

[0303] It should be noted that the above syntax elements are just examples. When the string copy intra prediction mode of the current block is the first sub-mode (such as the normal string sub-mode), the syntax elements of at least one pixel string in the current block include but are not limited to the above examples.

[0304] S120. Group the syntax elements of the current block.

[0305] The ways to group the syntax elements of the current block include the following cases:

[0306] Case 1. According to the scanning order, group the syntax elements indicating unmatched pixel values of at least one pixel string in the current block into one group of syntax elements. According to the scanning order, group one or more of the syntax elements indicating string type, string length, pixel type, and string vector of at least one pixel string in the current block into at least one group of syntax elements.

[0307] In Case 1, the grouping ways to group one or more of the syntax elements indicating string type, string length, pixel type, and string vector of at least one pixel string in the current block into at least one group of syntax elements according to the scanning order include but are not limited to the following:

[0308] Method 1. According to the scanning order, group the syntax elements indicating string type, string length, pixel type, and string vector of at least one pixel string in the current block into the first group of syntax elements.

[0309] Method 2. According to the scanning order, group the syntax elements indicating string type, string length, and pixel type of at least one pixel string in the current block into the first group of syntax elements, and group the syntax elements indicating string vector of at least one pixel string in the current block into the second group of syntax elements.

[0310] Method 3: According to the scanning order, the syntax elements indicating the string type and the syntax elements indicating the string length of at least one pixel string in the current block are divided into the first group of syntax elements; the syntax elements indicating the pixel type of at least one pixel string in the current block are divided into the second group of syntax elements; the syntax elements indicating the string vector of at least one pixel string in the current block are divided into the third group of syntax elements.

[0311] Method 3: According to the scanning order, the syntax elements indicating the string type of at least one pixel string in the current block are divided into the first group of syntax elements; the syntax elements indicating the string length of at least one pixel string in the current block are divided into the second group of syntax elements; the syntax elements indicating the pixel type of at least one pixel string in the current block are divided into the third group of syntax elements; the syntax elements indicating the string vector of at least one pixel string in the current block are divided into the fourth group of syntax elements.

[0312] Case 2: The syntax elements indicating the unmatched pixel values of at least one pixel string in the current block, and at least one of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the pixel type, and the syntax elements indicating the string vector are divided into a group of syntax elements.

[0313] In Case 2, the grouping methods include but are not limited to the following:

[0314] Method 1: The syntax elements indicating the string type and the syntax elements indicating the string length of at least one pixel string in the current block are divided into the first group of syntax elements; the syntax elements indicating the string vector of at least one pixel string in the current block are divided into the second group of syntax elements; the syntax elements indicating the unmatched pixel values and the syntax elements indicating the pixel type of at least one pixel string in the current block are divided into the third group of syntax elements.

[0315] Method 2: According to the scanning order, the syntax elements indicating the string type of at least one pixel string in the current block are divided into the first group of syntax elements; the syntax elements indicating the string length of at least one pixel string in the current block are divided into the second group of syntax elements; the syntax elements indicating the pixel type of at least one pixel string in the current block are divided into the third group of syntax elements; the syntax elements indicating the string vector and the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block are divided into the fourth group of syntax elements.

[0316] S130: Encode each group of the M groups of syntax elements to obtain a bitstream.

[0317] In some embodiments, a syntax element is encoded in the bitstream to indicate the number of strings in the current block.

[0318] In this step, when encoding the M groups of syntax elements, there is no limit on the encoding order of the above groups.

[0319] In some embodiments, when encoding each group of M groups of syntax elements, the first group of syntax elements is encoded first.

[0320] For example, in the above-mentioned first method, first encode the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the pixel type, and the syntax elements indicating the string vector of at least one pixel string in the current block, and then encode the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block.

[0321] For example, in the above-mentioned second method, first encode the syntax elements indicating the string type, the syntax elements indicating the string length, and the syntax elements indicating the pixel type of at least one pixel string in the current block, and then encode the syntax elements indicating the string vector or the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block. Among them, the encoding order of the syntax elements indicating the string vector or the syntax elements indicating the unmatched pixel values can be adjusted arbitrarily.

[0322] For example, in the above-mentioned third method, first encode the syntax elements indicating the string type and the syntax elements indicating the string length of at least one pixel string in the current block, and then encode the syntax elements indicating the pixel type, or the syntax elements indicating the string vector, or the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block. Among them, the encoding order of the syntax elements indicating the pixel type, or the syntax elements indicating the string vector, or the syntax elements indicating the unmatched pixel values can be adjusted arbitrarily.

[0323] In some embodiments, when encoding each group of the above-mentioned M groups of syntax elements, if the encoding method of this group of syntax elements includes N different encoding methods, then according to the encoding method, the syntax elements based on the same encoding method in this group of syntax elements are divided into a sub-syntax element group to obtain N groups of sub-syntax elements; encode each group of the N groups of sub-syntax elements.

[0324] For example, the N different encoding methods include context-based encoding method and bypass-based encoding method. Divide this group of syntax elements into a sub-syntax element group based on the context-based encoding method and a sub-syntax element group based on the bypass-based encoding method. During the encoding process, the group of sub-syntax elements based on the context-based encoding method can be encoded first, and then the group of sub-syntax elements based on the bypass-based encoding method can be encoded.

[0325] It should be noted that during the encoding process, if this group of syntax elements is empty, skip the encoding of this group of syntax elements.

[0326] When the encoding end of the present application encodes the syntax elements corresponding to the current block, it groups the syntax elements of at least one pixel string of the current block to obtain M groups of syntax elements, and encodes each group of syntax elements in the M groups of syntax elements to form a bitstream. That is, the present application adopts a grouped encoding method for syntax elements, which can increase the amount of data in one encoding, thereby reducing the number of encodings and improving the encoding efficiency. In a specific hardware implementation, the syntax elements of different encoding methods are separated, which can avoid the encoder from frequently switching between two encoding methods and is beneficial to improving the throughput rate of the encoder.

[0327] First, the encoding process of the second sub-mode (such as the non-ordinary string sub-mode) will be introduced.

[0328] In some embodiments, the non-ordinary string sub-mode is also referred to as the equal-value string and unit basis vector string sub-mode.

[0329] Figure 11 It is a flowchart of the encoding method for string copy intra prediction provided by an embodiment of the present application. As Figure 11 shown, it includes:

[0330] S210. Obtain the syntax elements of at least one pixel string in the current block, where the current block includes multiple pixel strings.

[0331] Among them, the syntax elements include at least two different encoding methods.

[0332] If the string copy intra prediction mode of the current block is the equal-value string and unit basis vector string sub-mode, then the syntax elements of at least one pixel string in the current block, in addition to including the syntax elements indicating the unmatched pixel values, further include: one or more of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the dot vector position of the recurrent position, and the syntax elements indicating the pixel values at the recurrent positions corresponding to the new dot vectors.

[0333] Exemplarily, the syntax elements indicating the string type include: isc_evs_ups_num_minus1;

[0334] The syntax elements indicating the string length include: str_length_minus1_prefix, str_length_minus1_infix, str_length_minus1_subfix;

[0335] The syntax elements indicating the dot vector position of the recurrent position include: pv_address_prefix, pv_address_infix, pv_address_suffix;

[0336] The syntax elements indicating the pixel values at the recurrence positions corresponding to the newly added point vectors include: isc_fopixel_y, isc_fopixel_cb, isc_fopixel_cr;

[0337] The syntax elements indicating the unmatched pixel values include: isc_nos_up_y, isc_nos_up_cb, isc_nos_up_cr.

[0338] It should be noted that the above syntax elements are just examples. When the string copy intra prediction mode of the current block is the equal value string and unit base vector string sub - mode, the syntax elements of at least one pixel string in the current block include but are not limited to the above examples.

[0339] S220. Group the syntax elements of the current block.

[0340] The ways to group the syntax elements of the current block include the following situations:

[0341] Situation 1. According to the scanning order, group the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block into one group of syntax elements. According to the scanning order, group one or more of the syntax elements indicating the string type, the string length, the point vector position of the recurrence position, and the pixel values at the recurrence positions corresponding to the newly added point vectors of at least one pixel string in the current block into at least one group of syntax elements.

[0342] In Situation 1, the ways to group one or more of the syntax elements indicating the string type, the string length, the point vector position of the recurrence position, and the pixel values at the recurrence positions corresponding to the newly added point vectors of at least one pixel string in the current block into at least one group of syntax elements include but are not limited to the following:

[0343] Method 1. According to the scanning order, group the syntax elements indicating the string type, the string length, the point vector position of the recurrence position, and the pixel values at the recurrence positions corresponding to the newly added point vectors of at least one pixel string in the current block into the first group of syntax elements.

[0344] Method 2. According to the scanning order, group the syntax elements indicating the string type, the string length, and the point vector position of the recurrence position of at least one pixel string in the current block into the first group of syntax elements, and group the syntax elements indicating the pixel values at the recurrence positions corresponding to the newly added point vectors of at least one pixel string in the current block into the second group of syntax elements.

[0345] Method 3: According to the scanning order, the syntax elements indicating the string type and the syntax elements indicating the string length of at least one pixel string in the current block are divided into the first group of syntax elements; the syntax elements indicating the point vector positions of the regular occurrence positions of at least one pixel string in the current block are divided into the second group of syntax elements; and the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added point vectors of at least one pixel string in the current block are divided into the third group of syntax elements.

[0346] Method 4: According to the scanning order, the syntax elements indicating the string length of at least one pixel string in the current block are divided into the first group of syntax elements; the syntax elements indicating the string type of at least one pixel string in the current block are divided into the second group of syntax elements; the syntax elements indicating the point vector positions of the regular occurrence positions of at least one pixel string in the current block are divided into the third group of syntax elements; and the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added point vectors of at least one pixel string in the current block are divided into the fourth group of syntax elements.

[0347] Case 2: The syntax elements indicating the unmatched pixel values of at least one pixel string in the current block, and at least one of the syntax elements indicating the string type, the string length, the point vector positions of the regular occurrence positions, and the pixel values at the regular occurrence positions corresponding to the newly added point vectors of at least one pixel string are divided into a group of syntax elements.

[0348] In Case 2, the methods of grouping the syntax elements of the current block include but are not limited to the following:

[0349] According to the scanning order, the syntax elements indicating the string length of at least one pixel string in the current block are divided into the first group of syntax elements, the syntax elements indicating the string type of at least one pixel string in the current block are divided into the first group of syntax elements, and the syntax elements indicating the point vector positions of the regular occurrence positions, the pixel values at the regular occurrence positions corresponding to the newly added point vectors, and the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block are divided into at least one group; or,

[0350] According to the scanning order, the syntax elements indicating the string type, the string length, and the point vector positions of the regular occurrence positions of at least one pixel string in the current block are divided into the first group of syntax elements, and the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added point vectors and the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block are divided into the second group of syntax elements; or,

[0351] According to the scanning order, the syntax elements indicating the string type and the syntax elements indicating the string length of at least one pixel string in the current block are classified into the first group of syntax elements, the syntax elements indicating the dot vector positions of the recurring positions of at least one pixel string in the current block are classified into the second group of syntax elements, and the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors and the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block are classified into the third group of syntax elements; or,

[0352] According to the scanning order, the syntax elements indicating the string type and the syntax elements indicating the string length of at least one pixel string in the current block are classified into the first group of syntax elements, and the syntax elements indicating the dot vector positions of the recurring positions of at least one pixel string in the current block, the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors, and the syntax elements indicating the unmatched pixel values are classified into the second group of syntax elements.

[0353] S230. Encode each group of the M groups of syntax elements to obtain the syntax elements of at least one pixel string in the current block.

[0354] In this step, when encoding the M groups of syntax elements, there is no restriction on the encoding order of the above groups.

[0355] In some embodiments, when encoding each group of the M groups of syntax elements, the first group of syntax elements is encoded first.

[0356] For example, in the above method 1, first encode the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the dot vector positions of the recurring positions, and the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors of at least one pixel string in the current block, and then encode the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block.

[0357] For example, in the above method 2, first encode the syntax elements indicating the string type, the syntax elements indicating the string length, and the syntax elements indicating the dot vector positions of the recurring positions of at least one pixel string in the current block, and then encode the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors or the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block. Among them, the encoding order of the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors or the syntax elements indicating the unmatched pixel values can be adjusted arbitrarily.

[0358] For example, in the above-mentioned third method, first, the syntax elements indicating the string type and the syntax elements indicating the string length of at least one pixel string in the current block are processed. Then, the syntax elements indicating the dot vector positions of the regular occurrence positions of at least one pixel string in the current block, or the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added dot vectors, or the syntax elements indicating the unmatched pixel values are encoded. The encoding order of the syntax elements indicating the dot vector positions of the regular occurrence positions, or the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added dot vectors, or the syntax elements indicating the unmatched pixel values can be adjusted arbitrarily.

[0359] In some embodiments, when encoding each group of the above-mentioned M groups of syntax elements, if the encoding method of this group of syntax elements includes N different encoding methods, then according to the encoding method, the syntax elements based on the same encoding method in this group of syntax elements are divided into a sub-syntax element group, obtaining N groups of sub-syntax elements; and each group of sub-syntax elements among the N groups of sub-syntax elements is encoded.

[0360] For example, the N different encoding methods include context-based encoding method and bypass encoding method. The group of syntax elements is divided into a sub-syntax element group based on the context-based encoding method and a sub-syntax element group based on the bypass encoding method. During the encoding process, the sub-syntax element group based on the context-based encoding method can be encoded first, and then the sub-syntax element group based on the bypass encoding method can be encoded.

[0361] It should be noted that during the encoding process, if the syntax element group is empty, the encoding of this syntax element group is skipped.

[0362] When the encoding end of the present application encodes the syntax elements corresponding to the current block, the syntax elements of at least one pixel string of the current block are grouped to obtain M groups of syntax elements, and each group of syntax elements among the M groups of syntax elements is encoded to form a bitstream. That is, the present application adopts a grouped encoding method for syntax elements, which can increase the amount of data in one encoding, thereby reducing the number of encodings and improving the encoding efficiency. In a specific hardware implementation, the syntax elements of different encoding methods are separated, which can prevent the encoder from frequently switching between two encoding methods and is beneficial to improving the throughput rate of the encoder.

[0363] It should be understood that Figures 6 to 11 This is only an example of the present application and should not be construed as a limitation to the present application.

[0364] The preferred embodiments of the present application have been described in detail above in conjunction with the accompanying drawings. However, the present application is not limited to the specific details in the above embodiments. Within the scope of the technical concept of the present application, various simple modifications can be made to the technical solutions of the present application, and these simple modifications all fall within the protection scope of the present application. For example, for the various specific technical features described in the above specific embodiments, they can be combined in any appropriate manner without conflict. To avoid unnecessary repetition, the present application will not separately describe various possible combination methods. Also, for example, any combination can be made between various different embodiments of the present application as long as it does not violate the idea of the present application, and it should also be regarded as the content disclosed in the present application.

[0365] It should also be understood that in various method embodiments of the present application, the magnitudes of the sequence numbers of the above processes do not mean the order of execution is prior or subsequent. The order of execution of each process should be determined by its function and internal logic, and should not constitute any limitation to the implementation process of the embodiments of the present application. In addition, in the embodiments of the present application, the term "and / or" only describes the association relationship of associated objects, indicating that three relationships can exist. Specifically, A and / or B can represent: A exists alone, A and B exist simultaneously, and B exists alone. In addition, the character " / " in this text generally represents an "or" relationship between the associated objects before and after.

[0366] As described above in conjunction with Figures 6 to 11 ,the method embodiments of the present application have been described in detail. Below in conjunction with Figures 12 to 14 ,the apparatus embodiments of the present application will be described in detail.

[0367] Figure 12 FIG. is a schematic block diagram of a decoding apparatus for intra prediction of string copy provided by an embodiment of the present application. The decoding apparatus can be the above-mentioned decoding device or a component of the decoding device, such as a processor in the decoding device.

[0368] As Figure 12 shown, the decoding apparatus 10 for intra prediction of string copy may include:

[0369] A first decoding unit 11, configured to decode a bitstream to obtain syntax elements of at least one pixel string in a current block to be decoded, where the syntax elements include at least two different decoding methods;

[0370] A grouping unit 12, configured to group the syntax elements of at least one pixel string in the current block to obtain M groups of syntax elements, where M is a positive integer;

[0371] A second decoding unit 13, configured to decode each group of syntax elements in the M groups of syntax elements to obtain syntax elements of at least one pixel string in the current block;

[0372] A determination unit 14 is configured to determine a prediction value of the current block according to syntax elements of at least one pixel string in the current block.

[0373] In some embodiments, if the string copy intra prediction mode of the current block is a first sub-mode (e.g., a normal string sub-mode), the syntax elements of at least one pixel string in the current block further include one or more of a syntax element indicating a string type, a syntax element indicating a string length, a syntax element indicating a pixel type, a syntax element indicating a string vector, and a syntax element indicating an unmatched pixel value.

[0374] In some embodiments, the grouping unit 12 is further configured to divide the syntax elements indicating unmatched pixel values of at least one pixel string in the current block into a group of syntax elements according to a scanning order, and divide one or more of the syntax elements indicating a string type, a syntax element indicating a string length, a syntax element indicating a pixel type, and a syntax element indicating a string vector of at least one pixel string in the current block into at least one group of syntax elements.

[0375] In some embodiments, the grouping unit 12 is further configured to divide the syntax elements indicating a string type, a syntax element indicating a string length, a syntax element indicating a pixel type, and a syntax element indicating a string vector of at least one pixel string in the current block into a first group of syntax elements according to a scanning order; or divide the syntax elements indicating a string type, a syntax element indicating a string length, and a syntax element indicating a pixel type of at least one pixel string in the current block into a first group of syntax elements according to a scanning order, and divide the syntax elements indicating a string vector of at least one pixel string in the current block into a second group of syntax elements; or divide the syntax elements indicating a string type and a syntax element indicating a string length of at least one pixel string in the current block into a first group of syntax elements according to a scanning order, divide the syntax elements indicating a pixel type of at least one pixel string in the current block into a second group of syntax elements, and divide the syntax elements indicating a string vector of at least one pixel string in the current block into a third group of syntax elements; or divide the syntax elements indicating a string type of at least one pixel string in the current block into a first group of syntax elements according to a scanning order, divide the syntax elements indicating a string length of at least one pixel string in the current block into a second group of syntax elements, divide the syntax elements indicating a pixel type of at least one pixel string in the current block into a third group of syntax elements, and divide the syntax elements indicating a string vector of at least one pixel string in the current block into a fourth group of syntax elements.

[0376] In some embodiments, the grouping unit 12 is further specifically configured to group at least one of the syntax elements indicating unmatched pixel values of at least one pixel string in the current block, and at least one of the syntax elements indicating string type, syntax elements indicating string length, syntax elements indicating pixel type, and syntax elements indicating string vector into a group of syntax elements.

[0377] In some embodiments, the grouping unit 12 is specifically configured to group the syntax elements indicating string type and the syntax elements indicating string length of at least one pixel string in the current block into a first group of syntax elements; group the syntax elements indicating string vector of at least one pixel string in the current block into a second group of syntax elements; and group the syntax elements indicating unmatched pixel values and the syntax elements indicating pixel type of at least one pixel string in the current block into a third group of syntax elements.

[0378] In some embodiments, if the string copy intra prediction mode of the current block is the second sub-module (non-ordinary string sub-mode), the syntax elements of at least one pixel string in the current block include one or more of: syntax elements indicating string type, syntax elements indicating string length, syntax elements indicating the point vector position of the regular occurrence position, syntax elements indicating the pixel values at the regular occurrence positions corresponding to the new point vectors, and syntax elements indicating unmatched pixel values.

[0379] In some embodiments, the grouping unit 12 is further specifically configured to, according to the scanning order, group the syntax elements indicating unmatched pixel values of at least one pixel string in the current block into a group of syntax elements, and group one or more of the syntax elements indicating string type, syntax elements indicating string length, syntax elements indicating the point vector position of the regular occurrence position, and syntax elements indicating the pixel values at the regular occurrence positions corresponding to the new point vectors of at least one pixel string in the current block into at least one group of syntax elements.

[0380] In some embodiments, the grouping unit 12 is specifically configured to, according to the scanning order, divide the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the dot vector positions of the recurring positions, and the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors in at least one pixel string in the current block into a first group of syntax elements; or, according to the scanning order, divide the syntax elements indicating the string type, the syntax elements indicating the string length, and the syntax elements indicating the dot vector positions of the recurring positions in at least one pixel string in the current block into a first group of syntax elements, and divide the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors in at least one pixel string in the current block into a second group of syntax elements; or, according to the scanning order, divide the syntax elements indicating the string type and the syntax elements indicating the string length in at least one pixel string in the current block into a first group of syntax elements, divide the syntax elements indicating the dot vector positions of the recurring positions in at least one pixel string in the current block into a second group of syntax elements, and divide the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors in at least one pixel string in the current block into a third group of syntax elements; or, according to the scanning order, divide the syntax elements indicating the string length in at least one pixel string in the current block into a first group of syntax elements, divide the syntax elements indicating the string type in at least one pixel string in the current block into a second group of syntax elements, divide the syntax elements indicating the dot vector positions of the recurring positions in at least one pixel string in the current block into a third group of syntax elements, and divide the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors in at least one pixel string in the current block into a fourth group of syntax elements.

[0381] In some embodiments, the grouping unit 12 is further configured to divide the syntax elements indicating the unmatched pixel values in at least one pixel string in the current block, and at least one of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the dot vector positions of the recurring positions, and the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors into a group of syntax elements.

[0382] In some embodiments, the grouping unit 12 is specifically configured to, according to the scanning order, divide the syntax elements indicating the string length in at least one pixel string in the current block into a first group of syntax elements, divide the syntax elements indicating the string type in at least one pixel string in the current block into a first group of syntax elements, and divide the syntax elements indicating the dot vector positions of the recurring positions, the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors, and the syntax elements indicating the unmatched pixel values in at least one pixel string in the current block into at least one group; or,

[0383] According to the scanning order, the syntax elements indicating the string type, the syntax elements indicating the string length, and the syntax elements indicating the dot vector positions of the recurring positions in at least one pixel string in the current block are divided into a first group of syntax elements, and the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors and the syntax elements indicating the unmatched pixel values in at least one pixel string in the current block are divided into a second group of syntax elements; or,

[0384] According to the scanning order, the syntax elements indicating the string type and the syntax elements indicating the string length in at least one pixel string in the current block are divided into a first group of syntax elements, the syntax elements indicating the dot vector positions of the recurring positions in at least one pixel string in the current block are divided into a second group of syntax elements, and the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors and the syntax elements indicating the unmatched pixel values in at least one pixel string in the current block are divided into a third group of syntax elements; or,

[0385] According to the scanning order, the syntax elements indicating the string type and the syntax elements indicating the string length in at least one pixel string in the current block are divided into a first group of syntax elements, and the syntax elements indicating the dot vector positions of the recurring positions, the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors, and the syntax elements indicating the unmatched pixel values in at least one pixel string in the current block are divided into a second group of syntax elements.

[0386] In some embodiments, the second decoding unit 13 is specifically configured to, when decoding each group of the M groups of syntax elements, first decode the first group of syntax elements.

[0387] In some embodiments, the second decoding unit 13 is further specifically configured to, for each group of the M groups of syntax elements, if the decoding method of the group of syntax elements includes N different decoding methods, then according to the decoding method, divide the syntax elements based on the same decoding method in the group of syntax elements into a sub-syntax element group, obtaining N groups of sub-syntax elements; and decode each group of the N groups of sub-syntax elements.

[0388] In some embodiments, the N different decoding methods include a context-based decoding method and a bypass decoding method.

[0389] In some embodiments, the second decoding unit 13 is specifically configured to first decode the group of sub-syntax elements based on the context-based decoding method, and then decode the group of sub-syntax elements based on the bypass decoding method.

[0390] It should be understood that the apparatus embodiments and the method embodiments can correspond to each other, and similar descriptions can refer to the method embodiments. To avoid repetition, they are not elaborated here. Specifically,Figure 12 The device shown can execute the method embodiment corresponding to the above decoding end, and the foregoing and other operations and / or functions of each module in the device respectively implement the corresponding processes of the method embodiment corresponding to the above decoding end. For the sake of brevity, they will not be described herein again.

[0391] Figure 13 It is a schematic block diagram of an encoding device for string copy intra prediction provided by an embodiment of the present application. The encoding device can be the above-mentioned encoding device or a component of the encoding device, such as a processor in the encoding device.

[0392] As Figure 13 shown, the encoding device 20 for string copy intra prediction may include:

[0393] An acquisition unit 21, configured to acquire syntax elements of at least one pixel string in a current block, where the syntax elements include at least two different encoding methods;

[0394] A grouping unit 22, configured to group the syntax elements of at least one pixel string in the current block to obtain M groups of syntax elements, where M is a positive integer;

[0395] An encoding unit 13, configured to encode each group of the M groups of syntax elements to obtain a bitstream.

[0396] In some embodiments, if the string copy intra prediction mode of the current block is a first sub-mode (such as a normal string sub-mode), the syntax elements of at least one pixel string in the current block further include: one or more of a syntax element indicating a string type, a syntax element indicating a string length, a syntax element indicating a pixel type, a syntax element indicating a string vector, and a syntax element indicating an unmatched pixel value.

[0397] In some embodiments, the grouping unit 22 is further specifically configured to, according to the scanning order, divide the syntax elements indicating unmatched pixel values of at least one pixel string in the current block into one group of syntax elements, and divide one or more of the syntax elements indicating a string type, a syntax element indicating a string length, a syntax element indicating a pixel type, and a syntax element indicating a string vector of at least one pixel string in the current block into at least one group of syntax elements.

[0398] In some embodiments, the grouping unit 22 is further specifically configured to divide, according to the scanning order, the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the pixel type, and the syntax elements indicating the string vector in at least one pixel string in the current block into a first group of syntax elements; or divide, according to the scanning order, the syntax elements indicating the string type, the syntax elements indicating the string length, and the syntax elements indicating the pixel type in at least one pixel string in the current block into a first group of syntax elements, and divide the syntax elements indicating the string vector in at least one pixel string in the current block into a second group of syntax elements; or divide, according to the scanning order, the syntax elements indicating the string type and the syntax elements indicating the string length in at least one pixel string in the current block into a first group of syntax elements, divide the syntax elements indicating the pixel type in at least one pixel string in the current block into a second group of syntax elements, and divide the syntax elements indicating the string vector in at least one pixel string in the current block into a third group of syntax elements; or divide, according to the scanning order, the syntax elements indicating the string type in at least one pixel string in the current block into a first group of syntax elements, divide the syntax elements indicating the string length in at least one pixel string in the current block into a second group of syntax elements, divide the syntax elements indicating the pixel type in at least one pixel string in the current block into a third group of syntax elements, and divide the syntax elements indicating the string vector in at least one pixel string in the current block into a fourth group of syntax elements.

[0399] In some embodiments, the grouping unit 22 is further specifically configured to divide the syntax elements indicating the unmatched pixel values in at least one pixel string in the current block, and at least one of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the pixel type, and the syntax elements indicating the string vector into a group of syntax elements.

[0400] In some embodiments, the grouping unit 22 is specifically configured to divide the syntax elements indicating the string type and the syntax elements indicating the string length in at least one pixel string in the current block into a first group of syntax elements; divide the syntax elements indicating the string vector in at least one pixel string in the current block into a second group of syntax elements; and divide the syntax elements indicating the unmatched pixel values and the syntax elements indicating the pixel type in at least one pixel string in the current block into a third group of syntax elements.

[0401] In some embodiments, if the string copy intra prediction mode of the current block is the second sub-module type (for example, the non-ordinary string sub-mode), the syntax elements of at least one pixel string in the current block further include one or more of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the dot vector position of the constant occurrence position, the syntax elements indicating the pixel values at the constant occurrence positions corresponding to the new dot vectors, and the syntax elements indicating the unmatched pixel values.

[0402] In some embodiments, the grouping unit 22 is further specifically configured to divide the syntax elements indicating unmatched pixel values in at least one pixel string in the current block into a group of syntax elements according to the scanning order, and divide one or more of the syntax elements indicating string types, syntax elements indicating string lengths, syntax elements indicating the point vector positions of recurring positions, and syntax elements indicating pixel values at the recurring positions corresponding to newly added point vectors in at least one pixel string in the current block into at least one group of syntax elements.

[0403] In some embodiments, the grouping unit 22 is specifically configured to divide the syntax elements indicating string types, syntax elements indicating string lengths, syntax elements indicating the point vector positions of recurring positions, and syntax elements indicating pixel values at the recurring positions corresponding to newly added point vectors in at least one pixel string in the current block into a first group of syntax elements according to the scanning order; or divide the syntax elements indicating string types, syntax elements indicating string lengths, and syntax elements indicating the point vector positions of recurring positions in at least one pixel string in the current block into a first group of syntax elements according to the scanning order, and divide the syntax elements indicating pixel values at the recurring positions corresponding to newly added point vectors in at least one pixel string in the current block into a second group of syntax elements; or divide the syntax elements indicating string types and syntax elements indicating string lengths in at least one pixel string in the current block into a first group of syntax elements according to the scanning order, divide the syntax elements indicating the point vector positions of recurring positions in at least one pixel string in the current block into a second group of syntax elements, and divide the syntax elements indicating pixel values at the recurring positions corresponding to newly added point vectors in at least one pixel string in the current block into a third group of syntax elements; or divide the syntax elements indicating string lengths in at least one pixel string in the current block into a first group of syntax elements according to the scanning order, divide the syntax elements indicating string types in at least one pixel string in the current block into a second group of syntax elements, divide the syntax elements indicating the point vector positions of recurring positions in at least one pixel string in the current block into a third group of syntax elements, and divide the syntax elements indicating pixel values at the recurring positions corresponding to newly added point vectors in at least one pixel string in the current block into a fourth group of syntax elements.

[0404] In some embodiments, the grouping unit 22 is further configured to divide the syntax elements indicating unmatched pixel values in at least one pixel string in the current block, and at least one of the syntax elements indicating string types, syntax elements indicating string lengths, syntax elements indicating the point vector positions of recurring positions, and syntax elements indicating pixel values at the recurring positions corresponding to newly added point vectors into a group of syntax elements.

[0405] In some embodiments, the grouping unit 22 is specifically configured to divide the syntax elements indicating the string length of at least one pixel string in the current block into a first group of syntax elements according to the scanning order, divide the syntax elements indicating the string type of at least one pixel string in the current block into a first group of syntax elements, and divide the syntax elements indicating the dot vector position of the recurring position, the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors, and the syntax elements indicating the unmatched pixel values in at least one pixel string in the current block into at least one group; or, divide the syntax elements indicating the string type, the syntax elements indicating the string length, and the syntax elements indicating the dot vector position of the recurring position of at least one pixel string in the current block into a first group of syntax elements according to the scanning order, and divide the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors and the syntax elements indicating the unmatched pixel values in at least one pixel string in the current block into a second group of syntax elements; or, divide the syntax elements indicating the string type and the syntax elements indicating the string length of at least one pixel string in the current block into a first group of syntax elements according to the scanning order, divide the syntax elements indicating the dot vector position of the recurring position of at least one pixel string in the current block into a second group of syntax elements, and divide the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors and the syntax elements indicating the unmatched pixel values in at least one pixel string in the current block into a third group of syntax elements; or, divide the syntax elements indicating the string type and the syntax elements indicating the string length of at least one pixel string in the current block into a first group of syntax elements according to the scanning order, and divide the syntax elements indicating the dot vector position of the recurring position, the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors, and the syntax elements indicating the unmatched pixel values in at least one pixel string in the current block into a second group of syntax elements.

[0406] In some embodiments, when encoding each group of the M groups of syntax elements, the encoding unit 23 is specifically configured to first encode the first group of syntax elements.

[0407] In some embodiments, the encoding unit 23 is further specifically configured to, for each group of the M groups of syntax elements, if the encoding method of the group of syntax elements includes N different encoding methods, divide the syntax elements of the group based on the same encoding method into a sub-syntax element group according to the encoding method, to obtain N groups of sub-syntax elements; and encode each group of the N groups of sub-syntax elements.

[0408] In some embodiments, the N different encoding methods include context-based encoding method and bypass-based encoding method.

[0409] In some embodiments, the encoding unit 23 is specifically configured to first encode the group sub-syntax elements based on the context encoding method, and then encode the group sub-syntax elements based on the bypass encoding method.

[0410] It should be understood that the device embodiments and the method embodiments can correspond to each other, and similar descriptions can refer to the method embodiments. To avoid repetition, they will not be elaborated here. Specifically, Figure 13 The shown device can execute the corresponding method embodiment of the encoding end, and the foregoing and other operations and / or functions of each module in the device respectively implement the corresponding processes of the corresponding method embodiment of the encoding end. For the sake of brevity, they will not be elaborated here.

[0411] The device of the embodiment of the present application has been described above from the perspective of functional modules in combination with the drawings. It should be understood that the functional module can be implemented in the form of hardware, can also be implemented by instructions in the form of software, and can also be implemented by a combination of hardware and software modules. Specifically, each step of the method embodiment in the embodiment of the present application can be completed by the integrated logic circuit of the hardware in the processor and / or instructions in the form of software. The steps of the method disclosed in combination with the embodiments of the present application can be directly embodied as being executed and completed by the hardware decoding processor, or executed and completed by a combination of the hardware and software modules in the decoding processor. Optionally, the software module can be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory, and the processor reads the information in the memory and combines its hardware to complete the steps in the above method embodiment.

[0412] Figure 14 It is a schematic block diagram of a computing device 30 provided by an embodiment of the present application.

[0413] As Figure 14 shown, the computing device 30 can be the video encoding device or the video decoding device described in the embodiment of the present application. The computing device 30 may include:

[0414] A memory 33 and a processor 32. The memory 33 is used to store a computer program 34 and transmit the program code 34 to the processor 32. In other words, the processor 32 can call and run the computer program 34 from the memory 33 to implement the method in the embodiment of the present application.

[0415] For example, the processor 32 can be used to execute the steps in the above method according to the instructions in the computer program 34.

[0416] In some embodiments of the present application, the processor 32 may include, but is not limited to:

[0417] General-purpose processors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, and the like.

[0418] In some embodiments of the present application, the memory 33 includes, but is not limited to:

[0419] Volatile memory and / or non-volatile memory. Among them, the non-volatile memory can be read-only memory (ROM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example but not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synch link DRAM (SLDRAM), and direct rambus RAM (DR RAM).

[0420] In some embodiments of the present application, the computer program 34 can be divided into one or more units, and the one or more units are stored in the memory 33 and executed by the processor 32 to complete the method provided by the present application. The one or more units can be a series of computer program instruction segments capable of performing specific functions, and the instruction segments are used to describe the execution process of the computer program 34 in the computing device 30.

[0421] As Figure 14 shown, the computing device 30 may further include:

[0422] A transceiver 33, which can be connected to the processor 32 or the memory 33.

[0423] Among them, the processor 32 can control the transceiver 33 to communicate with other devices. Specifically, it can send information or data to other devices, or receive information or data sent by other devices. The transceiver 33 can include a transmitter and a receiver. The transceiver 33 can further include an antenna, and the number of antennas can be one or more.

[0424] It should be understood that each component in the computing device 30 is connected through a bus system. Among them, the bus system includes, in addition to the data bus, a power bus, a control bus, and a status signal bus.

[0425] This application also provides a computer storage medium, on which a computer program is stored. When the computer program is executed by the computer, the computer can execute the methods in the above method embodiments.

[0426] The embodiments of this application also provide a computer program product containing instructions. When the instructions are executed by the computer, the computer executes the methods in the above method embodiments.

[0427] When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on the computer, the processes or functions according to the embodiments of this application are generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from a website, computer, server, or data center to another website, computer, server, or data center by wire (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that the computer can access or a data storage device such as a server or data center that includes one or more integrated available media. The available medium can be a magnetic medium (such as a floppy disk, hard disk, magnetic tape), an optical medium (such as a digital video disc (DVD)), or a semiconductor medium (such as a solid state disk (SSD)).

[0428] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in connection with the embodiments disclosed herein can be implemented in electronic hardware, or in a combination of computer software and electronic hardware. Whether these functions are executed in hardware or software depends on the specific application and design constraints of the technical solution. A professional technician can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of this application.

[0429] In several embodiments provided in this application, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the unit is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the displayed or discussed coupling or direct coupling or communication connection to each other can be through some interfaces. The indirect coupling or communication connection of the device or unit can be in an electrical, mechanical, or other form.

[0430] The units described as separate components may or may not be physically separated. The components shown as units may or may not be physical units, that is, they can be located in one place, or distributed to multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment. For example, in each embodiment of this application, the functional units can be integrated in a processing unit, or each unit can exist physically alone, or two or more units can be integrated in one unit.

[0431] The above is only the specific implementation manner of this application, but the protection scope of this application is not limited thereto. Any person skilled in the art within the technical scope disclosed in this application can easily think of changes or substitutions, which should all be covered by the protection scope of this application. Therefore, the protection scope of this application should be subject to the protection scope of the claims.

Claims

1. A decoding method for string copy intra prediction, characterized in that Comprising: Decoding a bitstream to obtain syntax elements of at least one pixel string in a current block to be decoded, where the syntax elements include at least two different decoding methods; Grouping the syntax elements of at least one pixel string in the current block to obtain M groups of syntax elements, where M is a positive integer; For each group of syntax elements among the M groups of syntax elements, if the group of syntax elements includes N different decoding methods, then according to each decoding method, the syntax elements based on the same decoding method in the group of syntax elements are divided into a sub-syntax element group, obtaining N groups of sub-syntax elements, and decoding each group of sub-syntax elements among the N groups of sub-syntax elements to obtain the syntax elements of at least one pixel string in the current block, where N is a positive integer; Determining a prediction value of the current block according to the syntax elements of at least one pixel string in the current block.

2. The method according to claim 1, wherein If the intra prediction mode of string copy of the current block is a first sub-mode, then the syntax elements of at least one pixel string in the current block include one or more of: a syntax element indicating a string type, a syntax element indicating a string length, a syntax element indicating a pixel type, a syntax element indicating a string vector, and a syntax element indicating an unmatched pixel value.

3. The method according to claim 2, characterized in that, The grouping of the syntax elements of at least one pixel string in the current block includes: According to the scanning order, dividing the syntax elements indicating unmatched pixel values of at least one pixel string in the current block into a group of syntax elements, and dividing one or more of the syntax elements indicating a string type, a syntax element indicating a string length, a syntax element indicating a pixel type, and a syntax element indicating a string vector of at least one pixel string in the current block into at least one group of syntax elements.

4. The method according to claim 3, wherein The dividing one or more of the syntax elements indicating a string type, a syntax element indicating a string length, a syntax element indicating a pixel type, and a syntax element indicating a string vector of at least one pixel string in the current block into at least one group of syntax elements according to the scanning order includes: According to the scanning order, dividing the syntax elements indicating a string type, a syntax element indicating a string length, a syntax element indicating a pixel type, and a syntax element indicating a string vector of at least one pixel string in the current block into a first group of syntax elements; or, According to the scanning order, dividing the syntax elements indicating a string type, a syntax element indicating a string length, and a syntax element indicating a pixel type of at least one pixel string in the current block into a first group of syntax elements, and dividing the syntax elements indicating a string vector of at least one pixel string in the current block into a second group of syntax elements; or, According to the scanning order, dividing the syntax elements indicating a string type and a syntax element indicating a string length of at least one pixel string in the current block into a first group of syntax elements, dividing the syntax elements indicating a pixel type of at least one pixel string in the current block into a second group of syntax elements, and dividing the syntax elements indicating a string vector of at least one pixel string in the current block into a third group of syntax elements; According to the scanning order, divide the syntax elements indicating the string type of at least one pixel string in the current block into a first group of syntax elements, divide the syntax elements indicating the string length of at least one pixel string in the current block into a second group of syntax elements, divide the syntax elements indicating the pixel type of at least one pixel string in the current block into a third group of syntax elements, and divide the syntax elements indicating the string vector of at least one pixel string in the current block into a fourth group of syntax elements.

5. The method according to claim 2, wherein The grouping of the syntax elements of at least one pixel string in the current block includes: Dividing the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block, and at least one of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the pixel type, and the syntax elements indicating the string vector into a group of syntax elements.

6. The method according to claim 5, characterized in that The dividing the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block, and at least one of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the pixel type, and the syntax elements indicating the string vector into a group of syntax elements includes: Dividing the syntax elements indicating the string type and the syntax elements indicating the string length of at least one pixel string in the current block into a first group of syntax elements; Dividing the syntax elements indicating the string vector of at least one pixel string in the current block into a second group of syntax elements; Dividing the syntax elements indicating the unmatched pixel values and the syntax elements indicating the pixel type of at least one pixel string in the current block into a third group of syntax elements.

7. The method according to claim 1, wherein If the string copy intra prediction mode of the current block is the second sub-mode, the syntax elements of at least one pixel string in the current block include one or more of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the dot vector position of the recurring position, the syntax elements indicating the pixel values at the recurring positions corresponding to the new dot vectors, and the syntax elements indicating the unmatched pixel values.

8. The method according to claim 7, wherein The grouping of the syntax elements of the current block includes: According to the scanning order, divide the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block into a group of syntax elements, and divide one or more of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the dot vector position of the recurring position, and the syntax elements indicating the pixel values at the recurring positions corresponding to the new dot vectors of at least one pixel string in the current block into at least one group of syntax elements.

9. The method according to claim 8, wherein The dividing one or more of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the dot vector position of the recurring position, and the syntax elements indicating the pixel values at the recurring positions corresponding to the new dot vectors of at least one pixel string in the current block into at least one group of syntax elements according to the scanning order includes: According to the scanning order, the syntax elements indicating the string type of at least one pixel string in the current block, the syntax elements indicating the string length, the syntax elements indicating the dot vector positions of the recurring positions, and the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors are divided into the first group of syntax elements; or, According to the scanning order, the syntax elements indicating the string type of at least one pixel string in the current block, the syntax elements indicating the string length, and the syntax elements indicating the dot vector positions of the recurring positions are divided into the first group of syntax elements, and the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors of at least one pixel string in the current block are divided into the second group of syntax elements; or, According to the scanning order, the syntax elements indicating the string type of at least one pixel string in the current block and the syntax elements indicating the string length are divided into the first group of syntax elements, the syntax elements indicating the dot vector positions of the recurring positions of at least one pixel string in the current block are divided into the second group of syntax elements, and the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors of at least one pixel string in the current block are divided into the third group of syntax elements; or, According to the scanning order, the syntax elements indicating the string length of at least one pixel string in the current block are divided into the first group of syntax elements, the syntax elements indicating the string type of at least one pixel string in the current block are divided into the second group of syntax elements, the syntax elements indicating the dot vector positions of the recurring positions of at least one pixel string in the current block are divided into the third group of syntax elements, and the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors of at least one pixel string in the current block are divided into the fourth group of syntax elements.

10. The method according to claim 7, characterized in that, The grouping of the syntax elements of the current block includes: The syntax elements indicating the unmatched pixel values of at least one pixel string in the current block, and at least one of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the dot vector positions of the recurring positions, and the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors are divided into a group of syntax elements.

11. The method according to claim 10, wherein The dividing the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block, and at least one of the syntax elements indicating the string type, the syntax elements indicating the string length, the syntax elements indicating the dot vector positions of the recurring positions, and the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors into a group of syntax elements includes: According to the scanning order, the syntax elements indicating the string type of at least one pixel string in the current block, the syntax elements indicating the string length, and the syntax elements indicating the dot vector positions of the recurring positions are divided into the first group of syntax elements, and the syntax elements indicating the pixel values at the recurring positions corresponding to the newly added dot vectors and the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block are divided into the second group of syntax elements; or, According to the scanning order, divide the syntax elements indicating the string type and the syntax elements indicating the string length of at least one pixel string in the current block into the first group of syntax elements, divide the syntax elements indicating the dot vector positions of the regular occurrence positions of at least one pixel string in the current block into the second group of syntax elements, and divide the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added dot vectors and the syntax elements indicating the unmatched pixel values of at least one pixel string in the current block into the third group of syntax elements; or, According to the scanning order, divide the syntax elements indicating the string type and the syntax elements indicating the string length of at least one pixel string in the current block into the first group of syntax elements, and divide the syntax elements indicating the dot vector positions of the regular occurrence positions of at least one pixel string in the current block, the syntax elements indicating the pixel values at the regular occurrence positions corresponding to the newly added dot vectors, and the syntax elements indicating the unmatched pixel values into the second group of syntax elements.

12. The method according to claim 4, 6, 9 or 11, characterized in that, The decoding of each group of the M groups of syntax elements includes: When decoding each group of the M groups of syntax elements, first decode the first group of syntax elements.

13. The method according to claim 1, wherein The N different decoding methods include context-based decoding method and bypass decoding method.

14. The method according to claim 13, characterized in that, The decoding of each group of the N groups of sub-syntax elements includes: First decode the syntax elements of the sub-syntax element group using the context-based decoding method, and then decode the syntax elements of the sub-syntax element group using the bypass decoding method.

15. A coding method for string copy intra prediction, characterized in that, Includes: Obtain the syntax elements of at least one pixel string in the current block, and the syntax elements include at least two different coding methods; Group the syntax elements of at least one pixel string in the current block to obtain M groups of syntax elements, where M is a positive integer; For each group of the M groups of syntax elements, if this group of syntax elements includes N different coding methods, then according to each coding method, divide the syntax elements based on the same coding method in this group of syntax elements into a sub-syntax element group to obtain N groups of sub-syntax elements, and encode each group of the N groups of sub-syntax elements to obtain a bitstream, where N is a positive integer.

16. A decoding apparatus for intra prediction of string copy frames, characterized in that, Includes: A first decoding unit for decoding the bitstream to obtain the syntax elements of at least one pixel string in the current block to be decoded, and the syntax elements include at least two different decoding methods; A grouping unit for grouping the syntax elements of at least one pixel string in the current block to obtain M groups of syntax elements, where M is a positive integer; A second decoding unit for, for each group of the M groups of syntax elements, if this group of syntax elements includes N different decoding methods, then according to each decoding method, divide the syntax elements based on the same decoding method in this group of syntax elements into a sub-syntax element group to obtain N groups of sub-syntax elements, and decode each group of the N groups of sub-syntax elements to obtain the syntax elements of at least one pixel string in the current block, where N is a positive integer; A determination unit, configured to determine a prediction value of the current block according to syntax elements of at least one pixel string in the current block.

17. An encoding device for string copy intra prediction, characterized in that, Comprising: An acquisition unit, configured to acquire syntax elements of at least one pixel string in the current block, where the syntax elements include at least two different coding modes; A grouping unit, configured to group the syntax elements of at least one pixel string in the current block to obtain M groups of syntax elements, where M is a positive integer; An encoding unit, configured to, for each group of the M groups of syntax elements, if the group of syntax elements includes N different coding modes, divide the syntax elements of the same coding mode in the group of syntax elements into a sub-syntax element group according to each coding mode to obtain N groups of sub-syntax elements, and encode each group of the N groups of sub-syntax elements to obtain a bitstream, where N is a positive integer.

18. A computing device, characterized in that, Comprising a processor and a memory; The memory is configured to store a computer program; The processor is configured to call and run the computer program stored in the memory to execute the method according to any one of claims 1 to 15.

19. A computer-readable storage medium, characterized in that, For storing a computer program, where the computer program causes a computer to execute the method according to any one of claims 1 to 15.

Citation Information

Patent Citations

  • Video entropy decoding method and apparatus

    CN107635141A

  • Video decoding method, video encoding method and related equipment

    CN112565767A