Decoding Method, Device, Computer Equipment, Storage Medium, and Computer Program Product
By binding the point vector PV to the reference pixel and storing only 28 point vectors, the problem of ISC non-normal string mode occupies a large amount of hardware storage resources in the AVS3 standard is solved, and the effect of reducing hardware storage consumption and improving decoding efficiency is achieved.
Patent Information
- Application Number
- CN202410883125.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-07-02
- Publication Date
- 2025-06-20
- Estimated Expiration
- 2044-07-02
AI Technical Summary
In the AVS3 standard, the ISC non-normal string mode occupies a large amount of hardware storage resources during the decoding process, especially because the CU has a large number of reference pixels, resulting in wasted storage space.
By binding the point vector PV to the reference pixel, only the maximum 28 point vectors in the historical point vector list are stored, reducing the number of reference pixels, thereby reducing hardware storage consumption.
It effectively reduces the storage amount of reference pixels, reduces the occupation of hardware storage resources, and improves decoding efficiency.
Smart Images

Figure CN118784850B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of image processing technologies, and in particular, to a decoding method, apparatus, computer device, storage medium, and computer program product. Background Art
[0002] The ISC (Intra String Copy) mode is a newly added string matching prediction mode in the AVS3 standard. The ISC mode divides the current CU into several pixel strings with unequal lengths. Each pixel string will find a matching string among the decoded pixels, and the pixels of the matching string are directly used as the decoded pixels of the current string. This mode has very good compression performance for screen content videos.
[0003] In traditional technologies, the ISC mode of AVS3 includes two sub - modes, the normal string type and the non - normal string type. According to the regulations of the AVS3 standard, the reference range of the ISC non - normal string type is related to the size of the CTU (Coding Tree Unit, the largest coding unit). Generally, the reference range is 16384 pixels. Considering that 10 - bit pixels are actually stored using 16 bits, the total storage space required is 16384 x 16 x 1.5 = 393216 bits = 48 KB. In the AVS3 spec and reference software, a buffer is used inside the decoder to save all the reference pixels. However, due to the large number of reference pixels of the CU, a large amount of hardware storage resources are occupied. Summary of the Invention
[0004] Based on this, it is necessary to provide a decoding method, apparatus, computer device, computer - readable storage medium, and computer program product that can reduce the occupation of hardware resources for the above - mentioned technical problems.
[0005] In a first aspect, this application provides a decoding method, and the method includes:
[0006] Decode the image to be decoded to obtain the string information and predicted pixel values corresponding to the current coding unit;
[0007] Determine the pixel type and string type of the current coding unit;
[0008] Update the corresponding point vectors in the historical point vector list based on the pixel type, the string type, the string information, and the predicted pixel values;
[0009] Obtain reference pixel values based on the point vectors in the historical point vector list;
[0010] Perform pixel reconstruction based on the reference pixel values.
[0011] In one embodiment, updating the corresponding point vector in the historical point vector list based on the pixel type, the string type, the string information, and the predicted pixel value includes:
[0012] When the pixel type is that the current coding unit includes luminance pixel values and chrominance pixel values, the string type is a non-ordinary string, a new point vector corresponding to the current string is determined based on the string information, and the pixel value of the new point vector needs to decode three components, set the state of the pixel value of the new point vector to include three components, and the determination method of the chrominance pixel value of the new point vector is not obtained based on the predicted pixel value;
[0013] When the pixel type is that the current coding unit includes luminance pixel values and chrominance pixel values, the string type is a non-ordinary string, a new point vector corresponding to the current string is determined based on the string information, and the pixel value of the new point vector only needs to decode the luminance pixel value, set the state of the pixel value of the new point vector to only include the luminance pixel value, and the determination method of the chrominance pixel value of the new point vector is obtained based on the predicted pixel value;
[0014] Update the state of the pixel value of the new point vector, the determination method of the chrominance pixel value, the position, and the pixel values of each component to the corresponding position in the historical point vector list.
[0015] In one embodiment, updating the corresponding point vector in the historical point vector list based on the pixel type, the string type, the string information, and the predicted pixel value includes:
[0016] When the pixel type is that the current coding unit only includes luminance pixel values, the string type is a non-ordinary string, and a new point vector corresponding to the current string is determined based on the string information, set the state of the pixel value of the new point vector to include three components, and the chrominance pixel value of the new point vector is obtained based on the predicted pixel value;
[0017] Update the state of the pixel value of the new point vector, the determination method of the chrominance pixel value, the position, and the pixel values of each component to the corresponding position in the historical point vector list.
[0018] In one embodiment, updating the corresponding point vector in the historical point vector list based on the pixel type, the string type, the string information, and the predicted pixel value includes:
[0019] When the pixel type is that the current coding unit only includes chrominance pixel values and the string type is an ordinary string, perform the following processing on each point vector in the historical point vector list:
[0020] When the state of the pixel value of the point vector includes three components and the chrominance pixel value is determined based on the predicted pixel value, locate the position of the chrominance pixel value in the current coding unit based on the position of the point vector, and obtain the chrominance pixel value based on the determined position in the current coding unit. Update the chrominance pixel value of the corresponding point vector based on the chrominance pixel value.
[0021] In one embodiment, updating the corresponding point vector in the historical point vector list based on the pixel type, the string type, the string information, and the predicted pixel value includes:
[0022] When the pixel type is that the current coding unit contains a luma pixel value, update the corresponding point vector in the historical point vector list through two different first coding units based on the pixel type, the string type, the string information, and the predicted pixel value;
[0023] When the pixel type is that the current coding unit contains a chrominance pixel value, merge the chrominance pixel values of two adjacent coding units in a second coding unit, and update the corresponding point vector in the historical point vector list through the merged second coding unit based on the pixel type, the string type, the string information, and the predicted pixel value.
[0024] In one embodiment, pixel reconstruction based on the reference pixel value includes:
[0025] Reconstruct the luma pixel value and the chrominance pixel value in parallel based on the reference pixel value.
[0026] In one embodiment, pixel reconstruction based on the reference pixel value includes:
[0027] When the current string is an equal-value string, the corresponding point vector of the current string is a historical point vector or a newly added point vector, and the pixel value information of the corresponding point vector of the current string is stored in the point vector list, determine the luma pixel value of the pixel corresponding to the current string based on the corresponding point vector in the point vector list;
[0028] When the current string is an unmatched string, determine that the luma pixel value of the pixel corresponding to the current string is obtained by decoding.
[0029] In one embodiment, pixel reconstruction based on the reference pixel value includes:
[0030] Obtain each pixel in the current coding unit in the back-and-forth scan order to get the row number j and column number i of the current pixel; j is a positive integer greater than 1, and i is a positive integer;
[0031] When the line number j is even, record the point vector information of the string information corresponding to the current pixel into the first point vector index;
[0032] When the line number j is odd and the column number i is odd, record the point vector of the string information corresponding to the current pixel into the second point vector index;
[0033] When the line number j is odd and the column number i is even, record the point vector of the string information corresponding to the current pixel into the second point vector index, and obtain the dependent pixel, and obtain the target chromaticity pixel value of the pixel with the line number j - 1 and the column number i based on the chromaticity pixel value of the dependent pixel.
[0034] In one embodiment, the obtaining the dependent pixel and obtaining the target chromaticity pixel value of the pixel with the line number j - 1 and the column number i based on the chromaticity pixel value of the dependent pixel includes:
[0035] Determine the first index information of the dependent pixel with the line number j - 1 and the column number i from the first point vector index, and determine the initial chromaticity pixel value of the dependent pixel with the line number j - 1 and the column number i based on the first index information;
[0036] Determine the second index information of the dependent pixel with the line number j - 1 and the column number i + 1 and the third index information of the dependent pixel with the line number j and the column number i + 1 from the second point vector index, and determine the chromaticity pixel value of the dependent pixel with the line number j - 1 and the column number i + 1 based on the second index information, and determine the chromaticity pixel value of the luminance pixel of the dependent pixel with the line number j and the column number i + 1 based on the third index information;
[0037] Obtain the chromaticity pixel value of the point vector of the string information corresponding to the current pixel with the line number j and the column number i;
[0038] Based on the initial chromaticity pixel value of the pixel with the line number j - 1 and the column number i, the chromaticity pixel value of the pixel with the line number j - 1 and the column number i + 1, the chromaticity pixel value of the pixel with the line number j and the column number i + 1, and the chromaticity pixel value of the pixel with the line number j and the column number i, obtain the target chromaticity pixel value of the pixel with the line number j - 1 and the column number i.
[0039] In a second aspect, the present application further provides a decoding device, and the device includes:
[0040] A decoding module, configured to decode the image to be decoded to obtain the string information and the predicted pixel value corresponding to the current coding unit;
[0041] A type determination module, configured to determine the pixel type and the string type of the current coding unit;
[0042] An update module, configured to update corresponding point vectors in the historical point vector list based on the pixel type, the string type, the string information, and the predicted pixel value;
[0043] A reference pixel determination module, configured to obtain a reference pixel value based on each point vector in the historical point vector list;
[0044] A reconstruction module, configured to perform pixel reconstruction based on the reference pixel value.
[0045] In a third aspect, the present application further provides a computer device, including a memory and a processor, where the memory stores a computer program, and when the processor executes the computer program, the steps of the method in any one of the above embodiments are implemented.
[0046] In a fourth aspect, the present application further provides a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the steps of the method in any one of the above embodiments are implemented.
[0047] In a fifth aspect, the present application further provides a computer program product, including a computer program, and when the computer program is executed by a processor, the steps of the method in any one of the above embodiments are implemented.
[0048] After the above decoding method, device, computer device, storage medium, and computer program product decode the image to be decoded to obtain the string information and the predicted pixel value corresponding to the current coding unit, update the corresponding point vectors in the historical point vector list based on the pixel type, string type, string information, and predicted pixel value of the decoding unit, and determine the reference pixel value of the current string based on each point vector in the updated point vector list, so as to perform pixel reconstruction based on the reference pixel value. Since there are only 28 point vectors in the point vector list, and one point vector corresponds to one reference pixel, the amount of reference pixels can be greatly reduced, and the hardware storage consumption can be reduced. Description of the Drawings
[0049] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the following will briefly introduce the drawings required for use in the description of the embodiments or related technologies. Obviously, the following drawings are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.
[0050] Figure 1 A schematic diagram of the reference range of a non-ordinary string pattern in an embodiment;
[0051] Figure 2 An application environment diagram of the decoding method in an embodiment;
[0052] Figure 3 It is a schematic flowchart of a decoding method in an embodiment;
[0053] Figure 4 It is a schematic diagram of an example of the AVS3 ISC non-ordinary string mode in an embodiment;
[0054] Figure 5 It is a schematic diagram of the processing of a coding unit in the non-ordinary string mode in an embodiment;
[0055] Figure 6 It is a schematic diagram of vertex pixels in an embodiment;
[0056] Figure 7 It is a schematic diagram of the scanning order of coding units in an embodiment;
[0057] Figure 8 It is a schematic diagram of pixel scanning in an embodiment;
[0058] Figure 9 It is a structural block diagram of a decoding device in an embodiment;
[0059] Figure 10 It is an internal structure diagram of a computer device in an embodiment. Detailed implementation manners
[0060] In order to make the objectives, technical solutions and advantages of the present application clearer and more understandable, the present application will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0061] A screen content image is an image generated by an electronic device, such as typical applications like screen recording and video conferencing. Most screen content images have the characteristics of having more uniform flat areas, more repetitive patterns and identical blocks.
[0062] Traditional video coding schemes have good coding effects on natural video images captured by cameras, but have poor coding effects on screen content images. To solve this problem, AVS3 incorporates the ISC (Intra String Copy) technology into the standard. Among them, in order to facilitate the understanding of the present application, first, based on the decoding implementation method of the ISC non-ordinary string mode described in the AVS3 design document spec, according to the description of spec, its implementation method has the following two main deficiencies:
[0063] The first deficiency is that the required storage space is relatively large: According to the regulations of the AVS3 standard, the reference range of the ISC non-ordinary string mode is related to the size of the CTU (Coding Tree Unit, the largest coding unit). Assuming that the current CTU number is N, its reference range is asFigure 1 As shown below:
[0064] For a 32x32 CTU, the reference range of a certain CU in CTU[N] is the 15 decoded CTUs on the left (CTU[N - 15] ~ CTU[N - 1]) plus the decoded part in the current CTU (CTU[N]). So the total reference range is 32x32x16 = 16384 reference pixels.
[0065] For a 64x64 CTU, the reference range of a certain CU in CTU[N] is the 3 decoded CTUs on the left (CTU[N - 3] ~ CTU[N - 1]) plus the decoded part in the current CTU (CTU[N]). So the total reference range is 64x64x4 = 16384 reference pixels.
[0066] For a 128x128 CTU, the reference range of a certain CU in CTU[N] is part of region A in the decoded CTU on the left (CTU[N - 1]) plus part of region B in the current decoded CTU (CTU[N]). According to the spec, region A + region B = 128x128 = 16384 reference pixels.
[0067] In summary, regardless of the size of the CTU, the total reference range is 16384 pixels. Considering that 10-bit pixels are actually stored using 16 bits, the total storage space required is 16384x16x1.5 = 393216 bits = 48 KB.
[0068] In the AVS3 spec and reference software, a buffer is used inside the decoder to store all reference pixels. However, according to the characteristics of the ISC non-ordinary string mode, in this application, the point vector PV is bound to the reference pixel, that is, a point vector PV must correspond to a reference pixel. AVS3 stipulates that the maximum size of the historical point vector PV list of the previous coding unit CU is 28, which means that only 28 reference pixels need to be stored at most. Compared with the 128x128 reference pixels mentioned in the traditional technology, the quantity is greatly reduced, and the required storage space is also correspondingly greatly reduced.
[0069] The second shortcoming is that there is data dependence between Chroma pixels and Luma pixels. The implementation method in the spec and reference software is to first decode all Luma pixels (luminance pixels) of a CU, then save all dependent data, and then decode all Chroma pixels (chrominance pixels) of the CU.
[0070] The AVS3 standard stipulates that the maximum CU supported by the ISC non-ordinary string mode is 32x32 pixels. For each pixel, a piece of dependency data needs to be saved, and each piece of dependency data is N bits. So, a total of 32x32xN bits of data need to be stored. According to the characteristics of the ISC non-ordinary string mode, it is not necessary to store so much dependency data, and the Chroma pixels and Luma pixels can be decoded synchronously, rather than decoding the Luma first and then the Chroma.
[0071] For easy understanding, please refer to Figure 2 as shown in Figure 2 This is the hardware structure diagram of the decoding method in an embodiment of the present application. In this embodiment, it includes an entropy decoding module, a string information storage module, a predicted pixel storage module, a string processing module, a string reconstruction module, a filtering module, and a storage module.
[0072] Among them, the entropy decoding module reads the AVS3 bitstream from the bitstream and performs entropy decoding. For the ISC non-ordinary string mode, it mainly decodes the following two types of data:
[0073] String information, including information such as the type of the string and the length of the string. The string information is stored in SRAM0.
[0074] Predicted pixels. As mentioned before, for some strings, predicted pixels need to be decoded. The predicted pixels are stored in SRAM1.
[0075] Since AVS3 decodes all the string information of a CU first and then decodes the predicted pixels of all the strings, the string information and the predicted pixels are stored in different SRAMs. And the string processing module processes one string at a time. For example, when processing String0, if String0 needs to decode predicted pixels, then the string processing module can conveniently obtain the predicted pixels of String0 from SRAM1.
[0076] The string processing module reads a piece of string information from SRAM0. If the string contains decoded predicted pixels, it reads the corresponding predicted pixels of the string from SRAM1, and then performs string processing to obtain reference pixels.
[0077] The string reconstruction module is used to reconstruct the Luma and Chroma pixel values of each string. The pixel reconstruction method is the process of calculating the luminance pixel values and chrominance pixel values.
[0078] The filtering module performs post-processing filtering on the reconstructed pixels. The filtered pixels are the final pixels to be displayed and are written into the storage module memory.
[0079] In the above embodiments, the storage space required for predicting pixels is greatly reduced, saving hardware storage resources. Luma pixels (luminance pixel values) and Chroma pixels (chrominance pixel values) can be decoded in parallel, improving the decoding speed and also saving hardware resources.
[0080] In one embodiment, as Figure 3 shown, a decoding method is provided. In this embodiment, taking the application of this method to a terminal as an example, it can be understood that this method can also be applied to a server, and can also be applied to a system including a terminal and a server, and is implemented through the interaction between the terminal and the server. In this embodiment, the method includes the following steps:
[0081] S302: Decode the image to be decoded to obtain the string information and predicted pixel values corresponding to the current coding unit.
[0082] The image to be decoded exists in the form of an AVS3 bitstream. In this application, the AVS3 bitstream is read from the bitstream and entropy decoded to obtain the string information and predicted pixel values corresponding to the current coding unit CU.
[0083] The string information includes the string type and string length, etc. The AVS3 ISC non-ordinary string mode includes the following three types of strings. The reference pixels of the unmatched string and the unit basis vector string must come from inside the current CU, which is relatively simple to process. However, the reference pixels of the equal-value string may be outside the current CU, that is, the reference pixel may be any pixel point within the reference range mentioned above, and the storage of its reference pixels requires some special processing.
[0084] Equal-value string, that is, each pixel in the string is equal. The equal-value string is divided into the following two cases:
[0085] Reference historical point vector PV (Point Vector), that is, select a point vector PV from the historical point vector PV list, obtain the reference pixel according to the point vector PV, and directly use the reference pixel as the reconstructed pixel value of the current string.
[0086] New point vector PV, that is, decode the pixel value from the bitstream, generate a new point vector PV, and update it to the historical point vector PV list.
[0087] Unmatched string, that is, each pixel value in the string needs to be decoded.
[0088] Unit basis vector string, that is, the reconstructed pixel value of each pixel in the string is equal to the reconstructed pixel value directly above it. However, the first row of pixels in a CU cannot be a unit basis vector string, so the reference pixels of the unit basis vector string must come from inside the current CU.
[0089] For easy understanding, in combination withFigure 4 As shown Figure 4 is a schematic diagram of an example of the AVS3 ISC non-ordinary string mode in an embodiment. In this embodiment, an 8x8 coding unit CU contains 5 strings, where:
[0090] String0 is an equal-value string and refers to the historical point vector PV0, whose coordinates are (8, 4). Since the reference historical point vector PV0 is a 2x2 vertex pixel, it contains three components of Y, U, and V. Therefore, all pixel values in String0 are equal to the pixel values at (8, 4).
[0091] String1 is an equal-value string and is a new point vector PV. Then the pixel values of String1 are decoded. Since String1 does not contain a 2x2 vertex, only the Y component of the pixel value needs to be decoded for String1, and the position (19, 9) of the first pixel of String1 is used as a new PV and stored in the historical PV list.
[0092] String2 is an equal-value string and is a new point vector PV. Then the pixel values of String2 are decoded. Since String2 contains a 2x2 vertex, the Y, U, and V components of the pixel values need to be decoded for String2, and the position (16, 10) of the first 2x2 vertex pixel of String2 is used as a new PV and stored in the historical point vector PV list.
[0093] String3 is an unmatched string, so all pixels are decoded.
[0094] String4 is an equal-value string and refers to the historical point vector PV4, whose coordinates are (25, 3), and only contains Y-component pixels. Then the Y components of all pixels in String4 are equal to the Y-component pixel values at (25, 3), and the U and V component pixel values need to be decoded.
[0095] According to the relevant descriptions of the spec and the above examples, the following rules can be summarized: If it is a new point vector PV, its pixel values must be decoded; if it is a reference historical point vector PV, its pixel values are determined by the historical point vector PV, and the historical point vector PV must be a previous new point vector PV. In summary, the reference pixels of the point vector PV must be decoded, so the point vector PV can be bound to the reference pixels, that is, a point vector PV must correspond to a reference pixel. AVS3 stipulates that the maximum size of the historical point vector PV list of the previous CU is 28, that is, at most only 28 reference pixels need to be stored. Compared with the 128x128 reference pixels mentioned in the traditional technology, the quantity is greatly reduced, and the required storage space is also correspondingly greatly reduced.
[0096] For convenience, the historical PV list is denoted as HistoryPvList[n] (n = 0 to 27), and HistoryPvList[n] contains four elements:
[0097] The coordinates of the point vector PV, with the x and y components denoted as HistoryPvList[n].pvX and HistoryPvList[n].pvY respectively.
[0098] The pixel values corresponding to the point vector PV, with its Y, U, and V components denoted as HistoryPvList[n].pvL, HistoryPvList[n].pvCb, and HistoryPvList[n].pvCr respectively. Among them, Y is the luminance pixel value, and U and V are the chrominance pixel values.
[0099] Whether the pixel value corresponding to the point vector PV only contains the Y component is denoted as HistoryPvList[n].pvYOnly: HistoryPvList[n].pvYOnly = 1 indicates that the PV only contains the Y component; HistoryPvList[n].pvYOnly = 0 indicates that the PV contains the Y, U, and V components.
[0100] Whether the U and V components of the pixels corresponding to the point vector PV are obtained by bitstream decoding is denoted as HistoryPvList[n].pvCDec. HistoryPvList[n].pvCDec is only meaningful when HistoryPvList[n].pvYOnly = 0. The specific meaning is as follows: HistoryPvList[n].pvCDec = 1 indicates that the U and V components of the point vector PV are directly decoded from the bitstream; HistoryPvList[n].pvCDec = 0 indicates that the U and V components of the PV are not directly decoded from the bitstream.
[0101] S304: Determine the pixel type and string type of the current coding unit.
[0102] Among them, the string type can be referred to above, including the equal-value string, the unmatched string, and the unit basis vector string. This string type is determined and stored after entropy decoding.
[0103] There are also three types of pixel types. Among them, AVS3 specifies 3 types of pixel types: LumaOnly, where the current CU only contains Luma pixels, and this CU can use the ISC non-ordinary string mode; ChromaOnly, where the current CU only contains Chroma pixels, and this CU is prohibited from using the ISC non-ordinary string mode; LumaChroma, where the current CU contains both Luma and Chroma pixels, and this CU can use the ISC non-ordinary string mode.
[0104] After determining the current coding unit, the pixel type and string type of the current coding unit can be determined.
[0105] In one optional embodiment, the corresponding point vectors in the historical point vector list are updated based on the pixel type, string type, string information, and predicted pixel values, including: when the pixel type is that the current coding unit contains luminance pixel values, two different first coding units update the corresponding point vectors in the historical point vector list based on the pixel type, string type, string information, and predicted pixel values; when the pixel type is that the current coding unit contains chrominance pixel values, the chrominance pixel values of two adjacent coding units are merged into a second coding unit, and the merged second coding unit updates the corresponding point vectors in the historical point vector list based on the pixel type, string type, string information, and predicted pixel values.
[0106] Specifically, as shown in Figure 5 , since the size of CU0 / CU1 is 8x4, at this time the size of its corresponding Chroma block is 4x2, while the minimum block size that can be processed specified by the AVS3 spec is 4x4. To solve this problem, AVS3 will process the Luma pixels and Chroma pixels separately in this case, that is, CU0 / CU1 only processes Luma pixels, and the Chroma pixels of CU0 / CU1 are merged into a single CU block of 4x4 size, that is, CU2, and CU2 only processes Chroma pixels. In this case, if CU0 / CU1 is in the ISC non-ordinary string mode, then the U and V components corresponding to the PV in CU0 / CU1 actually come from the reconstructed pixels of CU2.
[0107] S306: Update the corresponding point vectors in the historical point vector list based on the pixel type, string type, string information, and predicted pixel values.
[0108] Among them, the point vectors are corresponding to the coding units. Therefore, it is necessary to update the point vectors of the coding units to obtain the historical point vector list, so as to determine the reference pixel values corresponding to the point vectors for convenient subsequent pixel reconstruction.
[0109] The dot vectors corresponding to different pixel types, string types, and string information are different. Therefore, the dot vectors need to be determined based on the pixel type, string type, and string information, and then the dot vectors are updated based on the positions of the predicted pixels or dot vectors.
[0110] S308: Obtain the reference pixel values based on the dot vectors in the historical dot vector list.
[0111] Among them, the reference pixels of the dot vector PV must be decoded. Therefore, the dot vector PV can be bound to the reference pixels, that is, a dot vector PV must correspond to a reference pixel. After determining the dot vector, the reference pixel values corresponding to each dot vector can be determined.
[0112] S310: Perform pixel reconstruction based on the reference pixel values.
[0113] Pixel reconstruction is to calculate the luminance pixel value and chrominance pixel value of each pixel. In one optional embodiment, performing pixel reconstruction based on the reference pixel values includes: reconstructing the luminance pixel value and chrominance pixel value in parallel based on the reference pixel values, which can achieve synchronous calculation of the luminance pixel value and chrominance pixel value and improve efficiency.
[0114] In the above decoding method, after decoding the image to be decoded to obtain the string information and predicted pixel values corresponding to the current coding unit, the dot vectors corresponding in the historical dot vector list are updated based on the pixel type, string type, string information, and predicted pixel values of the decoding unit, and the reference pixel values of the current string are determined based on the dot vectors in the updated dot vector list, so as to perform pixel reconstruction based on the reference pixel values. Since there are only 28 dot vectors in the dot vector list and one dot vector corresponds to one reference pixel, the amount of reference pixels can be greatly reduced, and the hardware storage consumption can be reduced.
[0115] In one optional embodiment, updating the corresponding point vector in the historical point vector list based on the pixel type, string type, string information, and predicted pixel value includes: when the pixel type is that the current coding unit includes luminance pixel values and chrominance pixel values, the string type is a non-ordinary string, it is determined based on the string information that the current string corresponds to a new point vector and the pixel value of the new point vector needs to decode three components, setting the status of the pixel value of the new point vector to include three components, and the determination method of the chrominance pixel value of the new point vector is not obtained based on the predicted pixel value; when the pixel type is that the current coding unit includes luminance pixel values and chrominance pixel values, the string type is a non-ordinary string, it is determined based on the string information that the current string corresponds to a new point vector and the pixel value of the new point vector only needs to decode the luminance pixel value, setting the status of the pixel value of the new point vector to only include the luminance pixel value, and the determination method of the chrominance pixel value of the new point vector is obtained based on the predicted pixel value; updating the status of the pixel value of the new point vector, the determination method of the chrominance pixel value, the position, and the pixel values of each component to the corresponding position in the historical point vector list.
[0116] In one optional embodiment, updating the corresponding point vector in the historical point vector list based on the pixel type, string type, string information, and predicted pixel value includes: when the pixel type is that the current coding unit only includes luminance pixel values, the string type is a non-ordinary string and it is determined based on the string information that the current string corresponds to a new point vector, setting the status of the pixel value of the new point vector to include three components, and the chrominance pixel value of the new point vector is obtained based on the predicted pixel value; updating the status of the pixel value of the new point vector, the determination method of the chrominance pixel value, the position, and the pixel values of each component to the corresponding position in the historical point vector list.
[0117] In one optional embodiment, updating the corresponding point vector in the historical point vector list based on the pixel type, string type, string information, and predicted pixel value includes: when the pixel type is that the current coding unit only includes chrominance pixel values and the string type is an ordinary string, performing the following processing on each point vector in the historical point vector list: when the status of the pixel value of the point vector is to include three components and the determination method of the chrominance pixel value is obtained based on the predicted pixel value, locating the position of the chrominance pixel value in the current coding unit based on the position of the point vector, and obtaining the chrominance pixel value based on the determined position in the current coding unit, and updating the chrominance pixel value of the corresponding point vector based on the chrominance pixel value.
[0118] Specifically, if the pixel type of the current coding unit CU is LumaChroma and the current coding unit CU uses the ISC non-ordinary string mode, then if the string strin[i] of the current coding unit CU is a new point vector PV, the method for saving reference pixels is as follows: If the point vector PV only contains the Y component, then set pvYOnly to 1 and pvCDec to 0. If the point vector PV contains three components Y, U, and V, then set pvYOnly to 0 and pvCDec to 1. Insert the corresponding pvYOnly, pvCDec, pvX, pvY, pvL, pvCb, and pvCr into HistoryPvList[m].
[0119] If the pixel type of the current coding unit CU is LumaOnly and the current coding unit CU uses the ISC non-ordinary string mode, then if the string string[i] of the current coding unit CU is a new point vector PV, the method for saving reference pixels is as follows: Set pvYOnly to 0, set pvCDec to 0, and insert the corresponding pvYOnly, pvCDec, pvX, pvY, pvL, pvCb, and pvCr into HistoryPvList[m].
[0120] If the pixel type of the current coding unit CU is ChromaOnly, when the current coding unit CU finishes pixel reconstruction, it is necessary to update HistoryPvList. The update method is as follows: First step: Let n = 0; Second step: If HistoryPvList[n].pvYOnly = 0 and HistoryPvList[n].pvCDec = 0, then the U and V component pixels of this point vector PV must come from the reconstructed pixels of the current coding unit CU. Locate the positions of the U and V components in the current CU according to HistoryPvList[n].pvX and HistoryPvList[n].pvY, denoted as Uij and Vij; Third step: Update HistoryPvList[n]; Let HistoryPvList[n].pvCb = Uij, and let HistoryPvList[n].pvCr = Vij. Let HistoryPvList[n].pvCDec = 1 to avoid repeated update of HistoryPvList[n]; Fourth step: Let n = n + 1. If n = 28, then end, otherwise jump to the second step.
[0121] In one optional embodiment, pixel reconstruction based on the reference pixel value includes: when the current string is an equal-value string, the point vector corresponding to the current string is a historical point vector or a newly added point vector, and the pixel value information of the point vector corresponding to the current string is stored in the point vector list, determining the luminance pixel value of the pixel corresponding to the current string based on the corresponding point vector in the point vector list; when the current string is an unmatched string, determining that the luminance pixel value of the pixel corresponding to the current string is obtained by decoding.
[0122] For the AVS3 ISC non-ordinary string mode, the acquisition of Luma pixels is relatively simple. Assume that the pixel P[i][j] (where i and j are the coordinates of the pixel in the CU) belongs to String[k], and the Luma and Chroma pixels of P[i][j] are denoted as P[i][j].Y, P[i][j].U, and P[i][j].V respectively.
[0123] If the point vector PV corresponding to the string String[k] is a reference historical point vector PV or a newly added point vector PV, and the point vector PV information corresponding to the string String[k] is stored in HistoryPvList[n], then P[i][j].Y = HistoryPvList[n].pvL. If the string String[k] is an unmatched string, then P[i][j].Y is directly decoded from the bitstream.
[0124] In one optional embodiment, pixel reconstruction based on the reference pixel value includes: obtaining each pixel in the current coding unit in a back-and-forth scanning order to obtain the row number j and column number i of the current pixel; j is a positive integer greater than 1, and i is a positive integer; when the row number j is an even number, recording the point vector information of the string information corresponding to the current pixel into the first point vector index; when the row number j is an odd number and the column number i is an odd number, recording the point vector of the string information corresponding to the current pixel into the second point vector index; when the row number j is an odd number and the column number i is an even number, recording the point vector of the string information corresponding to the current pixel into the second point vector index, and obtaining a dependent pixel, and obtaining the target chroma pixel value of the pixel with the row number j - 1 and column number i based on the chroma pixel value of the dependent pixel.
[0125] In one of the optional embodiments, obtaining dependent pixels and obtaining the target chroma pixel value of the pixel with row number j-1 and column number i based on the chroma pixel value of the dependent pixels includes: determining first index information of the dependent pixel with row number j-1 and column number i from the first point vector index, and determining the initial chroma pixel value of the dependent pixel with row number j-1 and column number i based on the first index information; determining second index information of the dependent pixel with row number j-1 and column number i+1 and third index information of the dependent pixel with row number j and column number i+1 from the second point vector index, and determining the chroma pixel value of the dependent pixel with row number j-1 and column number i+1 based on the second index information, and determining the chroma pixel value of the luminance pixel of the dependent pixel with row number j and column number i+1 based on the third index information; obtaining the chroma pixel value of the point vector of the string information corresponding to the current pixel with row number j and column number i; and obtaining the target chroma pixel value of the pixel with row number j-1 and column number i based on the initial chroma pixel value of the pixel with row number j-1 and column number i, the chroma pixel value of the pixel with row number j-1 and column number i+1, the chroma pixel value of the pixel with row number j and column number i+1, and the chroma pixel value of the pixel with row number j and column number i.
[0126] In this embodiment, the acquisition of P[i][j].U and P[i][j].V is relatively more complex. If the position (i,j) is the vertex position of a 2x2 pixel, then the Chroma pixel needs to be acquired at this position. Assume that the position (i,j) is Figure 6 the position of pixel 0 as shown. Since pixels 0, 1, 2, and 3 may belong to different strings, then pixels 0, 1, 2, and 3 may correspond to different PVs, and different PVs may correspond to different U and V components. Therefore, P[i][j].U and P[i][j].V are equal to the average values of the U and V components of pixels 0, 1, 2, and 3.
[0127] In the above example, the U and V components of pixels 0, 1, 2, and 3 are dependent data for P[i][j].U and P[i][j].V. As mentioned before, the pixel reconstruction method of the AVS3 spec and the ISC non-ordinary string mode of the reference software is to first reconstruct all the Luma pixels of a CU, then save all the dependent data, and then reconstruct all the Chroma pixels of the CU. The storage amount of the dependent data is 32x32xN bit. This application mainly optimizes this point and reduces the storage amount of the dependent data to (32+1)x5 bit. The specific method is as follows:
[0128] Scan the current CU in the TS (Traverse Scanning) scan order. For example, Figure 7 the 8x8 CU shown, which contains a total of 64 pixels. The numbers of the pixels in the TS scan order are:
[0129] If the current pixel P[i][j] is in an even row of the CU, i.e., j is even, then only the Luma pixel P[i][j].Y is obtained. Assume that the pixel P[i][j] belongs to String[k], and the PV information corresponding to String[k] is stored in HistoryPvList[n] (n = 0 to 27). Then, this n needs to be stored in PvIdxBuffer, and let PvIdxBuffer[i] = n.
[0130] If the current pixel P[i][j] is in an odd row of the CU, i.e., j is odd, and i is odd. Assume that the pixel P[i][j] belongs to String[r], and the PV information corresponding to String[r] is stored in HistoryPvList[m] (m = 0 to 27). Then, this m needs to be stored, and let PrevPvIdx = m.
[0131] If the current pixel P[i][j] is in an odd row of the CU, i.e., j is odd, and i is even. At this time, the Chroma pixels of P[i][j - 1] are synchronously obtained, i.e., P[i][j - 1].U and P[i][j - 1].V. Still taking the above 8x8 CU as an example, combined with Figure 8 as shown, then: when scanning to pixel 9, i.e., pixel P[6][1], obtain the Chroma pixels of pixel P[6][0]; when scanning to pixel 11, i.e., pixel P[4][1], obtain the Chroma pixels of pixel P[4][0]; when scanning to pixel 13, i.e., pixel P[2][1], obtain the Chroma pixels of pixel P[6][0]; when scanning to pixel 15, i.e., pixel P[0][1], obtain the Chroma pixels of pixel P[0][0].
[0132] The specific method for obtaining Chroma pixels is as follows: The first step is to obtain the PV index of the dependent pixels: The PvIndx of P[i][j - 1] is obtained from PvIdxBuffer[i], denoted as n1, n1 = PvIdxBuffer[i]; the PvIndx of P[i + 1][j - 1] is obtained from PvIdxBuffer[i + 1], denoted as n2, n2 = PvIdxBuffer[i + 1]; the PvIndx of P[i + 1][j] is obtained from PrevPvIdx, denoted as n3, n3 = PrevPvIdx; the PvIndx of P[i][j] is denoted as n4. Since P[i][j] is the currently scanned point, n4 is equal to the PvIndx of the current string. The second step is to obtain the U and V pixel values of the dependent pixels:
[0133] P[i][j - 1].U = HistoryPvList[n1].pvCb
[0134] P[i][j - 1].V = HistoryPvList[n1].pvCr
[0135] P[i + 1][j - 1].U = HistoryPvList[n2].pvCb
[0136] P[i + 1][j - 1].V = HistoryPvList[n2].pvCr
[0137] P[i + 1][j].U = HistoryPvList[n3].pvCb
[0138] P[i + 1][j].V = HistoryPvList[n3].pvCr
[0139] P[i][j].U = HistoryPvList[n4].pvCb
[0140] P[i][j].V = HistoryPvList[n4].pvCr
[0141] In the third step, the final value of P[i][j - 1].U is the average value of P[i][j - 1].U, P[i + 1][j - 1].U, P[i + 1][j].U, and P[i][j].U; the final value of P[i][j - 1].V is the average value of P[i][j - 1].V, P[i + 1][j - 1].V, P[i + 1][j].V, and P[i][j].V. In this embodiment, the average value is taken as an example for illustration. In other embodiments, it can also be other mathematical statistical values, which are not specifically limited herein.
[0142] It should be understood that although the steps in the flowcharts involved in the above embodiments are shown in sequence according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless there is a clear description in this article, the execution of these steps has no strict order limit, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be executed alternately or in turn with at least a part of other steps or steps or stages in other steps.
[0143] Based on the same inventive concept, an embodiment of the present application further provides a decoding device for implementing the decoding method involved above. The solution provided by this device for solving the problem is similar to the solution described in the above method. Therefore, the specific limitations in one or more embodiments of the decoding device provided below can refer to the limitations on the decoding method in the above text, and will not be elaborated here.
[0144] In an exemplary embodiment, as Figure 9 shown, a decoding device is provided, including:
[0145] A decoding module 901, configured to decode the image to be decoded to obtain the string information corresponding to the current coding unit and the predicted pixel values;
[0146] A type determination module 902, configured to determine the pixel type and string type of the current coding unit;
[0147] An update module 903, configured to update the corresponding point vector in the historical point vector list based on the pixel type, string type, string information, and predicted pixel values;
[0148] A reference pixel determination module 904, configured to obtain the reference pixel values based on the point vectors in the point vector list;
[0149] A reconstruction module 905, configured to perform pixel reconstruction based on the reference pixel values.
[0150] In an optional embodiment, the update module 903 is specifically configured to, when the pixel type is that the current coding unit includes luminance pixel values and chrominance pixel values, the string type is a non-ordinary string, it is determined based on the string information that the current string corresponds to a newly added point vector and the pixel values of the newly added point vector need to decode three components, set the status of the pixel values of the newly added point vector to include three components, and the determination method of the chrominance pixel values of the newly added point vector is not obtained based on the predicted pixel values; when the pixel type is that the current coding unit includes luminance pixel values and chrominance pixel values, the string type is a non-ordinary string, it is determined based on the string information that the current string corresponds to a newly added point vector and the pixel values of the newly added point vector only need to decode the luminance pixel values, set the status of the pixel values of the newly added point vector to only include the luminance pixel values, and the determination method of the chrominance pixel values of the newly added point vector is obtained based on the predicted pixel values; update the status of the pixel values of the newly added point vector, the determination method of the chrominance pixel values, the position, and the pixel values of each component to the corresponding position in the historical point vector list.
[0151] In one optional embodiment, the update module 903 is specifically configured to, when the pixel type is that the current coding unit only contains luminance pixel values, the string type is a non-ordinary string, and it is determined based on the string information that the current string corresponds to a newly added point vector, set the status of the pixel value of the newly added point vector to include three components, and the chrominance pixel value of the newly added point vector is obtained based on the predicted pixel value; update the status of the pixel value of the newly added point vector, the determination method of the chrominance pixel value, the position, and the pixel values of each component to the corresponding position in the historical point vector list.
[0152] In one optional embodiment, the update module 903 is specifically configured to, when the pixel type is that the current coding unit only contains chrominance pixel values and the string type is an ordinary string, perform the following processing on each point vector in the historical point vector list: when the status of the pixel value of the point vector includes three components and the determination method of the chrominance pixel value is obtained based on the predicted pixel value, locate the position of the chrominance pixel value in the current coding unit based on the position of the point vector, and obtain the chrominance pixel value based on the determined position in the current coding unit, and update the chrominance pixel value of the corresponding point vector based on the chrominance pixel value.
[0153] In one optional embodiment, the update module 903 is specifically configured to, when the pixel type is that the current coding unit contains luminance pixel values, update the corresponding point vector in the historical point vector list based on the pixel type, string type, string information, and predicted pixel value through two different first coding units; when the pixel type is that the current coding unit contains chrominance pixel values, merge the chrominance pixel values of two adjacent coding units in a second coding unit, and update the corresponding point vector in the historical point vector list based on the pixel type, string type, string information, and predicted pixel value through the merged second coding unit.
[0154] In one optional embodiment, the reconstruction module 905 is specifically configured to reconstruct the luminance pixel value and the chrominance pixel value in parallel based on the reference pixel value.
[0155] In one optional embodiment, the reconstruction module 905 is specifically configured to, when the current string is an equal-value string, the point vector corresponding to the current string is a historical point vector or a newly added point vector, and the pixel value information of the point vector corresponding to the current string is stored in the point vector list, determine the luminance pixel value of the pixel corresponding to the current string based on the corresponding point vector in the point vector list; when the current string is an unmatched string, determine that the luminance pixel value of the pixel corresponding to the current string is obtained by decoding.
[0156] In one alternative embodiment, the reconstruction module 905 is specifically configured to obtain each pixel in the current coding unit in a round-trip scanning order, and obtain the row number j and column number i of the current pixel; j is a positive integer greater than 1, and i is a positive integer; when the row number j is an even number, record the point vector information of the string information corresponding to the current pixel into the first point vector index; when the row number j is an odd number and the column number i is an odd number, record the point vector of the string information corresponding to the current pixel into the second point vector index; when the row number j is an odd number and the column number i is an even number, record the point vector of the string information corresponding to the current pixel into the second point vector index, and obtain a dependent pixel, and obtain the target chrominance pixel value of the pixel with the row number j-1 and column number i based on the chrominance pixel value of the dependent pixel.
[0157] In one alternative embodiment, the reconstruction module 905 is specifically configured to determine first index information of a dependent pixel with a row number of j-1 and a column number of i from the first point vector index, and determine an initial chrominance pixel value of the dependent pixel with a row number of j-1 and a column number of i based on the first index information; determine second index information of a dependent pixel with a row number of j-1 and a column number of i+1 and third index information of a dependent pixel with a row number of j and a column number of i+1 from the second point vector index, and determine the chrominance pixel value of the dependent pixel with a row number of j-1 and a column number of i+1 based on the second index information, and determine the chrominance pixel value of the luminance pixel of the dependent pixel with a row number of j and a column number of i+1 based on the third index information; obtain the chrominance pixel value of the point vector of the string information corresponding to the current pixel with a row number of j and a column number of i; based on the initial chrominance pixel value of the pixel with a row number of j-1 and a column number of i, the chrominance pixel value of the pixel with a row number of j-1 and a column number of i+1, the chrominance pixel value of the pixel with a row number of j and a column number of i+1, and the chrominance pixel value of the pixel with a row number of j and a column number of i, obtain the target chrominance pixel value of the pixel with a row number of j-1 and a column number of i.
[0158] Each module in the above decoding device can be implemented in whole or in part by software, hardware, and combinations thereof. Each of the above modules can be embedded in or independent of a processor in a computer device in hardware form, or stored in a memory in a computer device in software form, so that the processor can call and execute the operations corresponding to each of the above modules.
[0159] In an exemplary embodiment, a computer device is provided. The computer device may be a terminal, and its internal structure diagram may be as Figure 10As shown in the figure. The computer device includes a processor, a memory, an input / output interface, a communication interface, a display unit, and an input device. Among them, the processor, the memory, and the input / output interface are connected through a system bus, and the communication interface, the display unit, and the input device are connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage medium. The input / output interface of the computer device is used to exchange information between the processor and external devices. The communication interface of the computer device is used to communicate with external terminals in a wired or wireless manner, and the wireless manner can be achieved through WIFI, a mobile cellular network, NFC (Near Field Communication), or other technologies. When the computer program is executed by the processor, it implements a decoding method. The display unit of the computer device is used to form a visually visible picture, which can be a display screen, a projection device, or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen. The input device of the computer device can be a touch layer covering the display screen, or a button, a trackball, or a touchpad provided on the housing of the computer device, or an external keyboard, touchpad, or mouse, etc.
[0160] Those skilled in the art can understand that Figure 10 the structure shown in the figure is only a block diagram of some structures related to the solution of this application, and does not constitute a limitation on the computer device to which the solution of this application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine some components, or have different component arrangements.
[0161] In one embodiment, a computer device is further provided, including a memory and a processor. A computer program is stored in the memory, and when the processor executes the computer program, the steps in the above method embodiments are implemented.
[0162] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by the processor, the steps in the above method embodiments are implemented.
[0163] In one embodiment, a computer program product is provided, including a computer program. When the computer program is executed by the processor, the steps in the above method embodiments are implemented.
[0164] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. Among them, any reference to a memory, database, or other medium used in the embodiments provided in the present application can include at least one of non-volatile and volatile memories. Non-volatile memories can include read-only memory (ROM), magnetic tapes, floppy disks, flash memories, optical memories, high-density embedded non-volatile memories, resistive random access memories (ReRAM), magnetoresistive random access memories (MRAM), ferroelectric random access memories (FRAM), phase change memories (PCM), graphene memories, etc. Volatile memories can include random access memory (RAM) or external cache memories, etc. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc. The databases involved in the embodiments provided in the present application can include at least one of relational databases and non-relational databases. Non-relational databases can include distributed databases based on blockchain, etc., without limitation. The processors involved in the embodiments provided in the present application can be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, data processing logics based on quantum computing, etc., without limitation.
[0165] The technical features of the above embodiments can be combined arbitrarily. For the sake of brevity of description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope described in this specification.
[0166] The above-described embodiments merely represent several implementation manners of the present application. The description thereof is relatively specific and detailed, but it should not be construed as a limitation on the patent scope of the present application. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several modifications and improvements can still be made, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the appended claims.
Claims
1. A decoding method, characterized in that: The method comprises: Decode the image to be decoded to obtain the string information and predicted pixel value corresponding to the current coding unit; Determine the pixel type and string type of the current coding unit; Update the corresponding point vector in the historical point vector list based on the pixel type, the string type, the string information and the predicted pixel value; Obtaining a reference pixel value based on each point vector in the historical point vector list; Reconstructing pixels in the current coding unit based on the reference pixel values; The updating of the corresponding point vector in the historical point vector list based on the pixel type, the string type, the string information and the predicted pixel value includes: In the case where the pixel type is that the current coding unit includes a luminance pixel value and a chrominance pixel value, the string type is a non-ordinary string, the newly added point vector corresponding to the current string is determined based on the string information, and the pixel value of the newly added point vector needs to decode three components, the state of the pixel value of the newly added point vector is set to include three components, and the chrominance pixel value of the newly added point vector is not determined based on the predicted pixel value, wherein the method for obtaining the newly added point vector includes: decoding a pixel value from a bitstream corresponding to the image to be decoded, and generating a new point vector; In the case where the pixel type is that the current coding unit includes a luminance pixel value and a chrominance pixel value, the string type is a non-ordinary string, the current string corresponds to a newly added point vector determined based on the string information, and the pixel value of the newly added point vector only needs to decode the luminance pixel value, setting the state of the pixel value of the newly added point vector to include only the luminance pixel value, and the determination method of the chrominance pixel value of the newly added point vector is based on the predicted pixel value; The state of the pixel value of the newly added point vector, the determination method and position of the chrominance pixel value, and the pixel value of each component are updated to the corresponding position in the historical point vector list.
2. The method according to claim 1, characterized in that The updating of the corresponding point vector in the historical point vector list based on the pixel type, the string type, the string information and the predicted pixel value includes: In the case where the pixel type is that the current coding unit only includes a luminance pixel value, the string type is a non-ordinary string and the current string corresponds to a newly added point vector determined based on the string information, setting the state of the pixel value of the newly added point vector to include three components, and the chrominance pixel value of the newly added point vector is obtained based on the predicted pixel value; The state of the pixel value of the newly added point vector, the determination method and position of the chrominance pixel value, and the pixel value of each component are updated to the corresponding position in the historical point vector list.
3. The method according to claim 1, characterized in that: The updating of the corresponding point vector in the historical point vector list based on the pixel type, the string type, the string information and the predicted pixel value includes: When the pixel type is that the current coding unit only includes chrominance pixel values and the string type is a common string, the following processing is performed on each point vector in the historical point vector list: When the state of the pixel value of the point vector includes three components and the chrominance pixel value of the point vector is determined based on the reconstructed pixels of the current coding unit, the position of the chrominance pixel value of the point vector in the current coding unit is located based on the position of the point vector, and the chrominance pixel value of the point vector is obtained based on the determined position in the current coding unit.
4. The method according to any one of claims 1 to 3, characterized in that: The updating of the corresponding point vector in the historical point vector list based on the pixel type, the string type, the string information and the predicted pixel value includes: When the pixel type is that the current coding unit includes a brightness pixel value, updating the corresponding point vector in the historical point vector list based on the pixel type, the string type, the string information and the predicted pixel value by two different first coding units; When the pixel type is that the current coding unit contains a chromaticity pixel value, the chromaticity pixel values of two adjacent coding units are merged into a second coding unit, and the corresponding point vector in the historical point vector list is updated based on the pixel type, the string type, the string information and the predicted pixel value through the merged second coding unit, wherein the size of the current coding unit is less than 4*4.
5. The method according to any one of claims 1 to 3, characterized in that: The pixel reconstruction based on the reference pixel value comprises: Luminance pixel values and chrominance pixel values are reconstructed in parallel based on the reference pixel values.
6. The method according to any one of claims 1 to 3, characterized in that: The pixel reconstruction based on the reference pixel value comprises: When the current string is an equal-value string, the point vector corresponding to the current string is a historical point vector or a newly added point vector, and the pixel value information of the point vector corresponding to the current string is stored in the point vector list, the brightness pixel value of the pixel corresponding to the current string is determined based on the corresponding point vector in the point vector list; When the current string is an unmatched string, it is determined that the brightness pixel value of the pixel corresponding to the current string is obtained by decoding.
7. The method according to any one of claims 1 to 3, characterized in that: The pixel reconstruction based on the reference pixel value comprises: Obtain each pixel in the current coding unit in a round-trip scanning order to obtain a row number j and a column number i of the current pixel; j is a positive integer greater than 1, and i is a positive integer; When the row number j is an even number, the point vector information of the string information corresponding to the current pixel is recorded in the first point vector index; When the row number j is an odd number and the column number i is an odd number, the point vector of the string information corresponding to the current pixel is recorded in the second point vector index; When the row number j is an odd number and the column number i is an even number, the point vector of the string information corresponding to the current pixel is recorded in the second point vector index, and the dependent pixel is obtained, and the target chromaticity pixel value of the pixel with row number j-1 and column number i is obtained based on the chromaticity pixel value of the dependent pixel.
8. The method according to claim 7, characterized in that The obtaining of the dependent pixel, and obtaining the target chrominance pixel value of the pixel with row number j-1 and column number i based on the chrominance pixel value of the dependent pixel, comprises: Determine first index information of the dependent pixel with row number j-1 and column number i from the first point vector index, and determine an initial chroma pixel value of the dependent pixel with row number j-1 and column number i based on the first index information; Determine, from the second point vector index, second index information of the dependent pixel with row number j-1 and column number i+1 and third index information of the dependent pixel with row number j and column number i+1, and determine the chrominance pixel value of the dependent pixel with row number j-1 and column number i+1 based on the second index information, and determine the chrominance pixel value of the luminance pixel of the dependent pixel with row number j and column number i+1 based on the third index information; Obtain the chrominance pixel value of the point vector of the string information corresponding to the current pixel with row number j and column number i; Based on the initial chromaticity pixel value of the pixel with row number j-1 and column number i, the chromaticity pixel value of the pixel with row number j-1 and column number i+1, the chromaticity pixel value of the pixel with row number j and column number i+1, and the chromaticity pixel value of the pixel with row number j and column number i, the target chromaticity pixel value of the pixel with row number j-1 and column number i is obtained.
9. A decoding device, characterized in that: The device comprises: A decoding module, used to decode the image to be decoded to obtain string information corresponding to the current coding unit and predicted pixel values; A type determination module, used to determine the pixel type and string type of the current coding unit; An updating module, configured to update a corresponding point vector in a historical point vector list based on the pixel type, the string type, the string information and the predicted pixel value; A reference pixel determination module, configured to obtain a reference pixel value based on each point vector in the historical point vector list; A reconstruction module, configured to reconstruct pixels in the current coding unit based on the reference pixel values; The updating module is also used for updating the module to set the state of the pixel value of the newly added point vector to include three components when the pixel type is that the current coding unit includes a luminance pixel value and a chrominance pixel value, the string type is a non-ordinary string, the current string is determined based on the string information to correspond to the newly added point vector, and the pixel value of the newly added point vector needs to decode three components, and the chrominance pixel value of the newly added point vector is not determined based on the predicted pixel value, wherein the acquisition method of the newly added point vector includes: decoding the pixel value from the code stream corresponding to the image to be decoded, and generating a new point vector; when the pixel type is that the current coding unit includes a luminance pixel value and a chrominance pixel value, the string type is a non-ordinary string, the current string is determined based on the string information to correspond to the newly added point vector, and the pixel value of the newly added point vector only needs to decode the luminance pixel value, the state of the pixel value of the newly added point vector is set to include only the luminance pixel value, and the chrominance pixel value of the newly added point vector is determined based on the predicted pixel value; the state of the pixel value of the newly added point vector, the determination method of the chrominance pixel value, the position, and the pixel value of each component are updated to the corresponding position in the historical point vector list.
10. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 8 are implemented.
11. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 8 are implemented.
12. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 8 are implemented.
Citation Information
Patent Citations
Coding and decoding method and device with point prediction chroma reconstruction values from multiple reference positions
CN113938683A
Image coding and decoding
WO2024104503A1