Data encoding and decoding method and device for periodically updating point vector values in point prediction

By regularly updating the position coordinates of point vectors, the problem that common positions and point vectors in point prediction technology exceed the reference range is solved, the encoding and decoding of high-pixel resolution images and videos is improved.

CN114584792BActive Publication Date: 2025-08-19TONGJI UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111190869.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-10-13
Publication Date
2025-08-19
Estimated Expiration
2041-10-13

AI Technical Summary

Technical Problem

In the existing point prediction technology, the common locations and their point vectors are prone to leave and exceed the reference range, resulting in a reduced encoding efficiency and the inability to support high pixel resolution image and video encoding and decoding.

Method used

By regularly updating the position coordinates of the point vector, dividing the reference range into multiple sub-reference ranges, and updating the position coordinates of the point vector when a predetermined condition is met, ensuring that the point vector is always used within the valid reference range.

Benefits of technology

It improves the encoding efficiency of point prediction, supports the encoding and decoding of high-pixel resolution images and videos, and reduces the implementation complexity and cost.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure GDA0003534358740000171
    Figure GDA0003534358740000171
  • Figure GDA0003534358740000181
    Figure GDA0003534358740000181
  • Figure GDA0003534358740000191
    Figure GDA0003534358740000191
Patent Text Reader

Abstract

The present invention discloses a data encoding and decoding method and device for periodically updating the value of a point vector in point prediction. The key points of the technical solution are as follows: the data encoding method includes at least the following steps: inputting the original data of at least one whole compression unit; performing point prediction encoding on at least the whole compression unit; during the point prediction encoding process, when a frequently occurring position and its point vector are used by a current equal value string, if a predetermined condition is met, at least the following operations are performed; at least one element on the equal value string is selected according to a predetermined rule; if the selection is successful, at least the position coordinates of the point vector are updated to the position coordinates of the element. In the data encoding and decoding method provided by the present invention, the new position of the point vector usually leaves and exceeds the continuously moving reference range after the original position of the point vector, so that the frequently occurring position and its point vector remain within the reference range for a longer period of time, thereby improving the coding efficiency of the point prediction.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of data decoding and encoding, and in particular to a data encoding and decoding method and device for periodically updating the value of a point vector in point prediction. Background Art

[0002] As human society enters the era of artificial intelligence, big data, virtual reality, augmented reality, mixed reality, cloud computing, mobile computing, cloud-mobile computing, ultra-high-definition (4K) and ultra-high-definition (8K) video image resolution, and 4G / 5G communications, ultra-high compression ratios and extremely high-quality data compression for various data, including big data, image data, video data, and various new forms of data, have become indispensable technologies.

[0003] A dataset is a collection of data elements (eg, bytes, bits, pixels, pixel components, spatial sampling points, transform domain coefficients).

[0004] When encoding or decoding a data set (referred to as encoding and decoding for short), the data elements are usually sorted according to a predetermined rule, that is, a predetermined order, and encoding and decoding are performed in this order.

[0005] When performing data compression encoding (and corresponding decoding) on a data set arranged in a certain spatial (one-dimensional, two-dimensional, or multi-dimensional) shape (for example: a one-dimensional data queue, a two-dimensional data file, a frame of image, a video sequence, a transform domain, a transform block, multiple transform blocks, a three-dimensional scene, a sequence of continuously changing three-dimensional scenes), especially a two-dimensional or larger data set, this data set is generally divided into a number of compressed subsets with predetermined shapes and / or sizes (i.e., the number of elements), and encoding or decoding is performed sequentially, one compressed subset after another, in a predetermined order, taking the compressed subsets as units.

[0006] When encoding or decoding a compression subset, the compression subset is typically divided into a number of maximum compression units having a predetermined shape and / or size (i.e., the number of elements). The encoding or decoding is performed sequentially, one maximum compression unit after another, in a predetermined order, using the maximum compression units as units. Maximum compression units arranged in a row from left to right constitute a maximum compression unit row.

[0007] Within a maximum compression unit, this maximum compression unit is further divided into several sub-units with predetermined shapes and / or sizes (i.e., the number of elements), called whole compression units. Encoding or decoding is performed one by one in a predetermined order, taking the whole compression unit as a unit.

[0008] In short, the above process ultimately divides the data set into several subsets with predetermined shapes and / or sizes (i.e., the number of elements), called whole compression units, and encodes or decodes the whole compression units one by one in a predetermined order.

[0009] At any given moment, the compression subset being encoded or decoded is called the current compression subset. The maximum compression unit being encoded or decoded is called the current maximum compression unit. The maximum compression unit row being encoded or decoded is called the current maximum compression unit row. The entire compression unit being encoded or decoded is called the current entire compression unit. The data element being encoded or decoded (sometimes simply referred to as the element) is called the current encoded data element or the current decoded data element, collectively referred to as the current data element, or simply the current element. An element consists of N components (usually 1≤N≤5), so data sets, compression subsets, maximum compression units, and entire compression units also consist of N components. The components of an element are also called component elements.

[0010] For example, a compression subset is an image frame whose elements, or pixels, are arranged in a rectangular shape, have a size (resolution) of 3840 (width) x 2160 (height), and consist of three components: G (green), B (blue), R (red) or Y (luminance), U (Cb), and V (Cr). An image frame is divided into a maximum compression unit of 128x128. Each maximum compression unit is further divided into square or rectangular full compression units of varying sizes, ranging from 4x4 to 64x64.

[0011] When a data set is divided into compression subsets, maximum compression units and whole compression units, a predetermined rule for sorting elements is to sort the compression subsets first, then sort the maximum compression units within each compression subset, then sort the whole compression units within each maximum compression unit, and finally sort the elements within each whole compression unit.

[0012] That is, in the case where the data set is finally divided into whole compression units, a predetermined rule for sorting is to sort the whole compression units first, and then sort the elements within each whole compression unit.

[0013] The relationship between the multi-component dataset being encoded and the sampling rates of each component in the entire compression unit is typically expressed in terms of a sampling format. Data in which all N components have the same sampling rate and size (i.e., the number of component samples) is called fully sampled format data. Data in which N components have different sampling rates and sizes, where the sampling rates and sizes of N1 components (called primary components) are integer multiples of the sampling rates and sizes of the remaining N-N1 components (called secondary components) is called downsampled format data. These integer multiples are typically 2, 4, 8, 2x2, 4x2, etc. In fully sampled format data, all components are considered primary components, with no secondary components. In downsampled format data, at least one component is a primary component and at least one component is a secondary component. For example, for arrays of two-dimensional data elements, such as computer-generated images containing graphics and text, a sampling format called 4:4:4 (abbreviated as 444) is often used, where all three components of the dataset have the same sampling rate and size (i.e., the number of component samples). For arrays of another type of two-dimensional data elements, including natural images and videos captured by cameras, a sampling format called 4:2:0 (abbreviated as 420) is often used. That is, the sampling rate and size of two components called secondary components (D component and E component) of a data set with a rectangular shape and 3 components (such as an image or video) are respectively one-fourth of the other component called primary component (F component), that is, there is a 4:1 downsampling relationship between the primary component and the secondary component. In this case, one D component D[i][j] and one E component E[i][j] correspond to four (2×2) F components F[2i][2j], F[2i+1][2j], F[2i][2j+1], and F[2i+1][2j+1]. If the resolution of the F component is 2M×2N (2M component elements horizontally, 2N component elements vertically), that is, the F component of the data set is F={F[m][n]: m=0~2M-1, n=0~2N-1}, then the resolutions of the D and E components are both M×N (M component elements horizontally, N component elements vertically), that is, the D and E components of the data set are D={D[m][n]: m=0~M-1, n=0~N-1} and E={E[m][n]: m=0~M-1, n=0~N-1} respectively. When higher quality is required for the secondary components, a sampling format called 4:2:2 (abbreviated as 422) is often used. That is, the sampling rate and size of the two secondary components (D component and E component) of a rectangular data set with three components (such as an image or video) are half of the other primary component (F component), that is, there is a 2:1 downsampling relationship between the primary component and the secondary component.In this case, in one direction (e.g., horizontal direction) of a data set (e.g., image or video), one D component D[i][j] and one E component E[i][j] correspond to two (2×1) F components F[2i][j] and F[2i+1][j]. If the resolution of the F component is 2M×N, that is, the F component of the data set is F={F[m][n]: m=0~2M-1, n=0~N-1}, then the resolutions of the D component and the E component are both M×N, that is, the D component and the E component of the data set are D={D[m][n]: m=0~M-1, n=0~N-1} and E={E[m][n]: m=0~M-1, n=0~N-1}, respectively. In images and videos using YUV, YCbCr, or YCgCo color formats, the above-mentioned F, D, and E components are usually Y, U, and V components, or Y, Cb, Cr components, or Y, Cg, and Co components, respectively. In images and videos using the RGB color format, the F, D, and E components mentioned above are typically G, B, and R components, or G, R, and B components, respectively. When the data is an image or video, the sampling format is often referred to as the chroma format. A chroma format in which all components have the same sampling rate is called a full chroma format. A chroma format in which some components are downsampled relative to other components is called a downsampled chroma format.

[0014] In the downsampling format, the position of a secondary component (usually referred to as the secondary component position) and its elements correspond to the positions of multiple primary components (usually referred to as primary component positions, and even if they are simply referred to as positions, there will be no confusion) and their elements. This one-to-many correspondence has uncertainty. In order to eliminate this uncertainty, a primary component positive position and its positive elements are usually pre-specified among the multiple positions corresponding to a secondary component position and its elements (such as 2x2 positions in the 420 format or 2x1 positions in the 422 format) and their elements (such as specifying the position and its elements in the upper left corner of the 2x2 positions and their elements or the position and its elements on the left of the 2x1 positions and their elements as the primary component positive position and its positive elements) as the only regular primary component position and its elements that correspond one-to-one to the secondary component position and its elements. There is a one-to-one correspondence between the principal component positive position and the secondary component position. Therefore, the principal component positive position and the secondary component position are collectively referred to as the positive position, indicating that the position is both the principal component positive position and the secondary component position. There is also a one-to-one correspondence between the positive position and the secondary component position. Among the multiple positions corresponding to a secondary component position, other positions except the positive position are referred to as non-positive positions. There is also a one-to-one correspondence between the principal component positive element and the secondary component element. Therefore, the principal component positive element and the secondary component element are collectively referred to as the positive element, indicating that the element is both the principal component positive element and the secondary component element. There is also a one-to-one correspondence between the positive element and the secondary component element. Among the multiple elements corresponding to a secondary component element, other elements except the positive element are referred to as non-positive elements. On the other hand, in the full sampling format, all positions are considered to be principal component positive positions and positive positions, and all elements are considered to be principal component positive elements and positive elements.

[0015] In the case where the data is an array or sequence of arrays of two-dimensional data elements in a 420 sample format, there is one primary component F and two secondary components D and E;

[0016] The sampling rate and size of the secondary components D and E are respectively one quarter of the main component F, that is, there is a 4:1 or 2x2:1 downsampling relationship between the main component and the secondary components;

[0017] One D component element D[i][j] and one E component element E[i][j] correspond to 2×2 four F component elements F[2i][2j], F[2i+1][2j], F[2i][2j+1], F[2i+1][2j+1] arranged up and down, left and right;

[0018] The resolution of the F component elements is 2M×2N, that is, the F component elements form an array F={F[m][n]: m=0~2M-1, n=0~2N-1},

[0019] The resolution of the D component elements is M×N, that is, the D component elements form an array D={D[m][n]: m=0~M-1, n=0~N-1},

[0020] The resolution of the E component elements is also M×N, that is, the E component elements form an array E={E[m][n]: m=0~M-1, n=0~N-1}.

[0021] The positive element of the principal component at the pre-specified positive position is F[2i][2j], which is called the positive position of the principal component of the upper left corner type and its positive element;

[0022] or,

[0023] The positive element of the principal component at the pre-specified positive position is F[2i+1][2j], which is called the positive position of the principal component of the upper right corner type and its positive element;

[0024] or,

[0025] The positive element of the principal component at the pre-specified positive position is F[2i][2j+1], which is called the positive position of the principal component of the lower left corner type and its positive element;

[0026] or,

[0027] The principal component positive element at the pre-specified positive position is F[2i+1][2j+1], which is called the principal component positive position and its positive element of the lower right corner type.

[0028] In the case where the data set is divided into whole compression units, a predetermined rule for sorting is to sort the whole compression units first and then sort the elements within each whole compression unit.

[0029] An effective means of data compression is string prediction, also known as string matching. String prediction divides the elements of a current compression unit into variable-length strings of elements. For a current string of elements being encoded or decoded, referred to as the current string, a reference string of elements with the same or similar values as the current string is obtained from a set or subset of elements that have completed a predetermined degree of encoding and decoding, called a reference set. This is also referred to as the reference string, predicted string, or matching string of the current string. For a reference string of a current string, only a few parameters are needed to record the position, shape, size, and / or dimensions of the reference string within the reference set, without having to record the values of each element in the current string one by one. This allows all elements of the current string and their values to be fully represented and reconstructed anytime and anywhere when needed, thereby achieving the purpose of data compression. The elements of the reconstructed current string are called reconstructed elements, and their values are called the reconstructed values of the current string and its elements. Data compression in which the reconstructed values of elements are equal to their original values is called lossless compression. Data compression in which the reconstructed values of elements are not equal to their original values is called lossy compression.

[0030] For example, if a current string, which is continuously sorted according to a certain scanning method, can find a corresponding reference string in a reference set, it is only necessary to use two parameters: the positional relationship between the first element of the current string and the first element of the reference string, and the string length, to record the position and size of the reference string in the reference set. Without having to record the value of each element in the current string one by one, all elements and their values of the current string can be fully represented and reconstructed anytime and anywhere when needed, thereby obtaining the reconstructed value of the current string and its elements. The number of bits consumed by recording these two parameters is often far less than the number of bits consumed by recording the value of each element in the current string one by one, thus achieving the purpose of data compression.

[0031] In string prediction, unpredictable (also known as unmatched, mismatched, or unmatched) elements may appear, for which no reference element can be found in the reference set. The component, main component, and secondary component of an unpredictable element are referred to as the unpredictable component, unpredictable main component, and unpredictable secondary component, respectively. For unpredictable elements, only their exact or approximate values can be recorded, compressed according to a predetermined method, and reconstructed whenever and wherever needed to obtain a reconstructed value.

[0032] Scanning methods commonly used in string prediction include:

[0033] Horizontal raster scanning: The elements in a whole compression unit are arranged one by one in the horizontal direction. After arranging one row, the next row is arranged. The scanning direction of all rows is arranged from left to right or the scanning direction of all rows is arranged from right to left.

[0034] or

[0035] Horizontal back-and-forth scanning is also called round-trip scanning or arc scanning: the elements in a whole compression unit are arranged one by one in the horizontal direction. After arranging one row, the next row is arranged. In any two adjacent rows, the intra-row scanning direction of one row is arranged from left to right and the intra-row scanning direction of the other row is arranged from right to left. The rows arranged from left to right are called forward rows, and the rows arranged from right to left are called reverse rows.

[0036] or

[0037] Vertical raster scanning: The elements in a whole compression unit are arranged one by one in the vertical direction, and the next column is arranged after one column is arranged. The scanning direction of all columns is arranged from top to bottom or the scanning direction of all columns is arranged from bottom to top.

[0038] or

[0039] Vertical back-and-forth scanning is also called round-trip scanning or bow scanning: the elements in a whole compression unit are arranged one by one in the vertical direction, and the next column is arranged after one column is arranged. In any two adjacent columns, the intra-column scanning direction of one column is from top to bottom and the intra-column scanning direction of the other column is from bottom to top. The columns arranged from top to bottom are called forward columns, and the columns arranged from bottom to top are called reverse columns.

[0040] The first element in the string scan, that is, the arrangement, is called the starting element, and the last element in the string scan, that is, the arrangement, is called the ending element.

[0041] A special case of string prediction is block prediction, also known as block matching. In this special case, each string forms a rectangular block.

[0042] Point prediction is another special case of string prediction and is also an effective means of data compression.

[0043] Point prediction technology stores the locations within a data set of data elements whose values frequently recur within or near the current compression unit and have completed a predetermined degree of encoding and decoding, called recurring locations. These locations are stored in a recurring location array or a subset thereof. Each recurring location in the array or subset is identified by an index, called a recurring location index or recurring location address. Data elements at recurring locations are used as reference elements, prediction elements, or matching elements. For a string of equal values to be encoded or decoded within a current compression unit, only an index parameter and a repetition count parameter for a frequently occurring position indicated by the index are required to indicate that the reference element for all elements of the string of equal values is the element at the frequently occurring position indicated by the index (this frequently occurring position may be the position of an element in a data set preceding the string of equal values, or the position of an element in the string of equal values), or to indicate that the values of all elements of the string of equal values are equal to the value of the element at the frequently occurring position indicated by the index (this frequently occurring position may be the position of an element in a data set preceding the string of equal values, or the position of an element in the string of equal values), without having to record the value of each element in the string of equal values one by one, thereby achieving the purpose of data compression. The values of the elements in the string of equal values used as reconstructed elements are generally equal to or close to (i.e., the error does not exceed a predetermined threshold) the values of the original elements, thereby achieving the purpose of data compression while also ensuring high quality, i.e., low distortion, of the reconstructed elements. The always-present position is typically represented as a point vector, so the always-present position index is also called the point vector address. The always-present position array is typically a point vector array, that is, an array storing point vector parameters. The point vector parameters include at least the point vector and information related to the point vector. The point vector is typically represented by coordinates in a predetermined format, called the point vector's position coordinates. The point vector array is sometimes also called a point prediction array or a point prediction information table.

[0044] For example, for a current string arranged in a predetermined scanning pattern, if a point vector can be found within the array of frequently occurring positions or a subset thereof, and the value of the reference element pointed to by the point vector is the predicted value of all elements in the current string, and the predicted value is used as the value of the reconstructed element, then only two parameters, the point vector address and the current string length, need to be used to record the value of each element in the current string, without having to record the value of each element in the current string one by one. All elements and their values in the current string can be fully represented. The number of bits consumed by recording these two parameters is often far less than the number of bits consumed by recording the value of each element in the current string one by one, thereby achieving the purpose of data compression.

[0045] If a frequently occurring position element appears at a positive position, that is, the position specified by the point vector of the frequently occurring position is a positive position, then it has all N components including the secondary component. All N components including the secondary component exist in the compressed data code stream. The encoder writes the values of all N components including the secondary component into the compressed data code stream, and the decoder obtains the values of all N components including the secondary component from the compressed data code stream. Otherwise, it only has the main component but no secondary component. Only the main component exists in the compressed data code stream but no secondary component. The encoder only writes the value of the main component into the compressed data code stream, and the decoder only obtains the value of the main component from the compressed data code stream. The value of the secondary component of the frequently occurring position element is stored in the secondary component space at the positive position. The frequently occurring position element is, on the one hand, a reconstruction element of the position, and on the other hand, a reference element for other elements, used to obtain the reconstruction values of other elements. In this case, the frequently occurring position element is also called a frequently occurring position reference element.

[0046] In the entire compression unit encoded and decoded using point prediction technology, there may be unmatched elements for which no reference elements can be found. If the unmatched element appears in the positive position, it has all N components including the secondary component, and all N components including the secondary component exist in the compressed data code stream. The encoder writes the values of all N components including the secondary component into the compressed data code stream, and the decoder obtains the values of all N components including the secondary component from the compressed data code stream. Otherwise, there is only the main component but no secondary component, and only the main component but no secondary component exists in the compressed data code stream. The encoder only writes the value of the main component into the compressed data code stream, and the decoder only obtains the value of the main component from the compressed data code stream. The unmatched element itself can also be used as a reference element for other elements to obtain the reconstructed values of other elements. In this case, the unmatched element is also called an unmatched reference element.

[0047] Point prediction technology divides the elements of a whole compression unit into the following three types of element strings with variable lengths along the scan path, which is formed by continuous sorting according to a predetermined scan method:

[0048] String type 1: Equal value string or equal value string. The values of all elements in an equal value string are equal to the value of an element in a common position;

[0049] String type 2: Unmatched element string. All elements in an unmatched element string are unmatched elements, i.e., unpredictable elements.

[0050] String Type 3: Unit Base Vector String. A unit base vector string is a string whose reference string is located one unit distance directly above the current string. In horizontal scanning mode, "directly above" refers to the immediately above, while in vertical scanning mode, "directly above" refers to the immediately left. Therefore, a unit base vector string is also called a copy-above string.

[0051] Point prediction technology also enforces the following rule: unit basis vector strings are limited to copying elements within the current compression unit; elements outside the current compression unit cannot be copied. Therefore, every element in all three string types within a compression unit can only be derived from a commonly occurring element or an unmatched element. In other words, all elements in a compression unit have their reference elements directly derived from commonly occurring elements or unmatched elements.

[0052] Therefore, in the entire compression unit encoded and decoded using the point prediction technology, the value of the reconstructed element (ie, the reconstructed value of the element) is obtained from the frequently occurring element or the unmatched element.

[0053] Point prediction is a special case of string prediction. When reconstructing an element, just like string prediction, regardless of whether the current element is in the correct position, the main component of the current element must always be reconstructed. If the current element is in the correct position, the secondary component of the current element must also be reconstructed. Otherwise, the secondary component of the current element is not reconstructed.

[0054] A key factor influencing the coding efficiency of string and point prediction techniques is the size of the reference set, often also called the reference range. This refers to the range of possible reference element locations pointed to by the string or point vector. A larger reference range means more candidate reference elements, making it easier to find suitable reference elements and improving coding efficiency. However, a larger reference range also increases implementation complexity and cost. In particular, when the reference range reaches a certain size, the reference elements cannot be stored internally on the codec chip and must be stored in a dedicated external memory chip. This not only increases costs, but also creates significant bottlenecks in read / write bandwidth and pixel processing throughput, making it impossible to support the encoding and decoding of high-resolution images and videos.

[0055] To reduce implementation complexity and cost, existing string prediction and point prediction technologies typically use a limited reference range with a predetermined fixed size (i.e., number of elements). For example, it's restricted to the largest compression unit within or adjacent to the current entire compression unit. In point prediction, if a recurring location and its point vector point to a position outside the reference range, they become illegal recurring locations and their point vectors, no longer recurring locations, and are no longer used by equal-value strings.

[0056] In existing point prediction techniques, the value of the point vector representing the frequently occurring position is constant, and therefore the coordinates of the frequently occurring position in the image are also fixed. However, the reference range is the area near the current compression unit, which moves as the current compression unit moves forward during the encoding and decoding process. As a result, the frequently occurring position and its point vector can easily leave and exceed the reference range and become unused, seriously affecting the coding efficiency of point prediction. Therefore, the present invention provides a data encoding and decoding method and apparatus for periodically updating the value of the point vector in point prediction to overcome the aforementioned drawbacks. Summary of the Invention

[0057] The object of the present invention is to provide a data encoding and decoding method and device for periodically updating the value of a point vector in point prediction, so as to solve the above-mentioned problem.

[0058] The above technical objectives of the present invention are achieved by using the following technical solutions:

[0059] A data encoding method for periodically updating a point vector value in point prediction, comprising at least the following steps:

[0060] A1: Input the original data of at least one full compression unit;

[0061] A2: performing point prediction coding on at least the entire compression unit. During the point prediction coding process, when a frequently occurring position and its point vector are used by a current equal value string, if a predetermined condition is satisfied, performing at least the following operations:

[0062] A3: Select at least one element on the equal value string according to a predetermined rule. If the selection is successful, update at least the position coordinates of the point vector to the position coordinates of the element.

[0063] A data encoding device for periodically updating the value of a point vector in point prediction, the data encoding device comprising at least the following modules:

[0064] Original data input module: used for inputting original data of at least one whole compression unit;

[0065] A point prediction coding module is configured to perform point prediction coding on at least the entire compression unit. During the point prediction coding process, when a frequently occurring position and its point vector are used by a current equal value string, if a predetermined condition is met, at least the operations in the following modules are executed;

[0066] The point vector value updating module is used to select an element on the equal value string at least according to a predetermined rule, and if the selection is successful, update the position coordinates of the point vector to the position coordinates of the element.

[0067] A data decoding method for periodically updating a point vector value in point prediction, the data decoding method comprising at least the following steps:

[0068] B1: Input at least one compressed data stream of a whole compression unit;

[0069] B2: performing point prediction decoding on at least the entire compression unit. During the point prediction decoding process, when a frequently occurring position and its point vector are used by a current equal value string, if a predetermined condition is met, performing at least the operation in step B3;

[0070] B3: Select at least one element on the equal value string according to a predetermined rule. If the selection is successful, update at least the position coordinates of the point vector to the position coordinates of the element.

[0071] A data decoding device for periodically updating the value of a point vector in point prediction, the data decoding device comprising at least the following modules:

[0072] Compressed data code stream input module: used for inputting at least one compressed data code stream of a whole compression unit;

[0073] A point prediction decoding module is configured to perform point prediction decoding on at least the entire compression unit. During the point prediction decoding process, when a frequently occurring position and its point vector are used by a current equal value string, if a predetermined condition is met, at least the operations in the following modules are executed;

[0074] The point vector value updating module is used to select an element on the equal value string at least according to a predetermined rule, and if the selection is successful, update the position coordinates of the point vector to the position coordinates of the element.

[0075] The compressed subsets involved in point prediction include images, sub-images of images, tiles, slices, and patches;

[0076] The largest compression units involved in point prediction include tiles, LCUs, and CTUs.

[0077] The entire compression unit includes a macroblock, a coding unit CU, a sub-region of a CU, a sub-coding unit SubCU, a prediction block, a prediction unit PU, a sub-region of a PU, a sub-prediction unit SubPU, a transform block, a transform unit TU, a sub-region of a TU, and a sub-transform unit SubTU.

[0078] The reference range is divided into K sub-reference ranges, where K≥2; the predetermined condition includes that the frequently occurring position and its point vector are not in K1 sub-reference ranges predetermined in the K sub-reference ranges, where K1 <K;

[0079] Preferably, the reference range is divided into K sub-reference ranges from front to back in the coding order, respectively denoted as R[k], 1≤k≤K, the larger the k, the later it is arranged in the coding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[k], wherein 1≤k≤K1 and K1 <K;

[0080] Preferably, the reference range is divided into K sub-reference ranges from back to front in the coding order, respectively denoted as R[k], 1≤k≤K, the larger the k, the earlier it is arranged in the coding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[k], wherein 1≤k≤K1 and K1 <K;

[0081] Preferably, the reference range is divided into K sub-reference ranges from back to front in the coding and decoding order, respectively denoted as R[k], 1≤k≤K, and the larger the k, the earlier it is arranged in the coding and decoding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[1];

[0082] Preferably, the reference range is divided into K sub-reference ranges, where K≥2; the predetermined condition includes that the frequently occurring position and its point vector are not in the same sub-reference range as the element on the equal value string;

[0083] Preferably, the reference range is divided into K sub-reference ranges, where K≥2; the predetermined condition includes that the frequently occurring position and its point vector are not in the same sub-reference range as the upper left corner element of the entire compression unit.

[0084] Preferably, the predetermined rule includes: when the frequently occurring position and its point vector have only a principal component, the element is the first element on the equal value string; when the frequently occurring position and its point vector have a principal component and a secondary component, the element is the first positive element on the equal value string;

[0085] Preferably, the predetermined rules include: when the frequently occurring position and its point vector are not in the positive position, the element is the first element on the equal value string; when the frequently occurring position and its point vector are in the positive position, the element is the first positive element on the equal value string.

[0086] Preferably, the reference range is divided into a plurality of sub-reference ranges in the following manner: if the number of elements of the maximum compression unit is greater than a predetermined threshold, the sub-reference range is a region where the number of elements is equal to the predetermined threshold, otherwise, the sub-reference range is the maximum compression unit;

[0087] Preferably, the reference range is divided into a plurality of sub-reference ranges in the following manner: if the width and / or height of the maximum compression unit is greater than a predetermined width and / or height threshold, the sub-reference range is a rectangular area whose width and / or height is equal to the predetermined width and / or height threshold; otherwise, the sub-reference range is the maximum compression unit;

[0088] Preferably, the maximum compression unit is a square; the reference range is divided into a plurality of sub-reference ranges in the following manner: if the side length of the maximum compression unit is greater than a predetermined threshold, the sub-reference range is a square area having a side length equal to the predetermined threshold after the maximum compression unit is equally divided; otherwise, the sub-reference range is the maximum compression unit;

[0089] Preferably, the maximum compression unit is a power of 2, i.e., 2 p The reference range is divided into multiple sub-reference ranges in the following way: if the side length of the largest compression unit is greater than 2 P , where P is a predetermined threshold, and the sub-reference range is the maximum compression unit divided into equal parts with a side length of 2 P Otherwise, the sub-reference range is the maximum compression unit;

[0090] Preferably, the maximum compression unit is a power of 2, i.e., 2 p The reference range is divided into multiple sub-reference ranges in the following manner: If the side length of the largest compression unit is greater than 64 = 2 6 The sub-reference range is the maximum compression unit divided into equal parts, with a side length equal to 64 = 2 6 Otherwise, the sub-reference range is the maximum compression unit.

[0091] Preferably, the maximum compression unit is a power of 2, i.e., 2 p The reference range is divided into multiple sub-reference ranges of squares with side lengths S, where S is equal to 2 p and a predetermined value, whichever is less;

[0092] Preferably, the maximum compression unit is a power of 2, i.e., 2 p The reference range is divided into multiple sub-reference ranges of squares with side lengths S, where S is equal to 2 p The minimum of the two values ​​and 64;

[0093] Preferably, the maximum compression unit is a power of 2, i.e., 2 p The reference range is divided into multiple equal parts with a side length of S = 2 q a square sub-reference range of , wherein the base-2 logarithm q of the side length of the sub-reference range is equal to the minimum of p and a predetermined value;

[0094] Preferably, the maximum compression unit is a power of 2, i.e., 2 p The reference range is divided into multiple equal parts with a side length of S = 2 q A square sub-reference range is defined as follows: wherein the base-2 logarithm q of the side length of the sub-reference range is equal to the minimum of p and 6.

[0095] Preferably, the position coordinates of the point vector are the coordinates of the element position pointed to by the point vector in the current maximum compression unit row;

[0096] The syntax description table for performing the operation of updating the position coordinates of the point vector to the position coordinates of the element, that is, the syntax description table for assigning the position coordinates of the point vector with the value of the position coordinates of the element, includes at least:

[0097]

[0098]

[0099]

[0100]

[0101] if(component == 'COMPONENT_LUMACHROMA'&&FopYonly[PvAddress]){ / / If the common position and its point vector have only principal components

[0102] log2Size = log(min(LcuSize, 64)) / / Calculate the base 2 logarithm log2Size of the side length of the sub-reference range, i.e., the value q, which is equal to the minimum of p = log(LcuSize) and 6 = log(64)

[0103] PvX=PpInfoList[PvAddress][0] / / Take the horizontal component PvX of the position coordinates of the point vector whose point vector address is PvAddress from the point prediction information table

[0104] PvY=PpInfoList[PvAddress][1] / / Take the vertical component PvY of the position coordinates of the point vector whose point vector address is PvAddress from the point prediction information table

[0105] if (PvX >> log2Size != (x0 - LcuRx0) >> log2Size || PvY >> log2Size != (y0 - LcuRy0) >> log2Size) { / / If the point vector and the top left element of the integer compression unit are not in the same sub-reference range

[0106] xInCu = TravScan[Log(width) – 2][Log(height) – 2][NumCodedPixel][0] / / Calculate the horizontal component of the coordinates of the element in the integer compression unit, where the element is the first element on the equal value string

[0107] yInCu = TravScan[Log(width) – 2][Log(height)-2][NumCodedPixel][1] / / Calculate the horizontal component of the coordinates of the element in the integer compression unit, where the element is the first element on the equal value string

[0108] xInLcuR = x0 + xInCu – LcuRx0 / / / Calculate the horizontal component of the position coordinates of the element, i.e., the coordinates in the current maximum compression unit row

[0109] yInLcuR = y0 + yInCu – LcuRy0 / / Calculate the vertical component of the position coordinates of the element, i.e., the coordinates in the current maximum compression unit row

[0110] / / Omitted operations unrelated to the present invention

[0111] PpInfoList[PvAddress][0] = xInLcuR / / Assign the horizontal component of the position coordinates of the element to the horizontal component of the position coordinates of the point vector

[0112] PpInfoList[PvAddress][1] = yInLcuR / / Assign the vertical component of the position coordinates of the element to the vertical component of the position coordinates of the point vector

[0113] }

[0114] / / Omitted operations unrelated to the present invention

[0115] }

[0116] else if (component == 'COMPONENT_LUMACHROMA' && PvAddress < IscNumOfReusedPv) { / / Otherwise, i.e., the regular position and its point vector have a main component and a secondary component

[0117] / / Operations unrelated to the present invention are omitted

[0118] for (k = 0; k < StrLen; k++) { / / Traverse each element on the equal-value string

[0119] xInCu = TravScan[Log(width) - 2][Log(height) - 2][NumCodedPixel + k][0]

[0120] / / Calculate the horizontal component of the coordinate of the element in the traversal in the entire compression unit

[0121] yInCu = TravScan[Log(width) - 2][Log(height) - 2][NumCodedPixel + k][1]

[0122] / / Calculate the vertical component of the coordinate of the element in the traversal in the entire compression unit

[0123] log2Size = log(min(LcuSize, 64)) / / Calculate the base-2 logarithm log2Size of the side length of the sub-reference range, that is, the value of q, which is equal to the minimum of the two values p = log(LcuSize) and 6 = log(64)

[0124] PvX = PpInfoList[PvAddress][0] / / Take out the horizontal component PvX of the position coordinate of the point vector with the point vector address PvAddress from the point prediction information table

[0125] PvY = PpInfoList[PvAddress][1] / / Take out the vertical component PvY of the position coordinate of the point vector with the point vector address PvAddress from the point prediction information table

[0126] if(((xInCu|yInCu)&0x1)==0&&((PvX>>log2Size!=(x0-LcuRx0)>>log2Size||PvY>>log2Size!=(y0-LcuRy0)>>log2Size)||(EvsDpbIndex[PvAddress]<28))){ / / If the element in the traversal is in the positive position and the point vector is not in the same sub-reference range as the upper left corner element of the entire compression unit xInLcuR=x0+xInCu–LcuRx0 / / The element in the traversal is selected as the element, and the position coordinate of the element, i.e., the horizontal component of the coordinate in the current maximum compression unit row, is calculated yInLcuR=y0+yInCu–LcuRy0 / / The element in the traversal is selected as the element, and the position coordinate of the element, i.e., the vertical component of the coordinate in the current maximum compression unit row, is calculated

[0127] / / Omitted operations not related to the present invention

[0128] PpInfoList[PvAddress][0]=xInLcuR / / Assign the horizontal component of the position coordinates of the element to the horizontal component of the position coordinates of the point vector

[0129] PpInfoList[PvAddress][1]=yInLcuR / / Assign the vertical component of the element's position coordinates to the vertical component of the point vector's position coordinates

[0130] break / / Selection is successful, and the process of traversing each element on the equal value string to select the element is terminated here

[0131] }

[0132] }

[0133] }

[0134] In the above syntax description table,

[0135] The value of FopYonly[PvAddress] is 1, which means that the point vector with the point vector address PvAddress has only the main component and is not in the positive position. The value of FopYonly[PvAddress] is 0, which means that the point vector with the point vector address PvAddress has both the main component and the secondary component and is in the positive position.

[0136] LcuSize is the side length of the maximum compression unit;

[0137] StrLen is the string length of the equal value string;

[0138] (x0, y0) are the coordinates of the upper left corner element position of the entire compression unit in the image, (LcuRx0, LcuRy0) are the coordinates of the upper left corner element position of the current largest compression unit row in the image, and therefore, (x0-LcuRx0, y0-LcuRy0) are the coordinates of the upper left corner element position of the entire compression unit in the current largest compression unit row;

[0139] TravScan maps the sequence number NumCodedPixel or NumCodedPixel+k of a current element in the entire compression unit to the horizontal coordinate xInCu and the vertical coordinate yInCu of the current element in the entire compression unit. The sequence number starts from the sequence number 0 of the scanning start element of the entire compression unit and increases by one element by element along the scanning path. The sequence number is actually the number of elements in the current entire compression unit that have completed encoding and decoding before the current element;

[0140] PpInfoList[PvAddress][0] and PpInfoList[PvAddress][1] are respectively the horizontal component and the vertical component of the position coordinates of the point vector whose point vector address is PvAddress stored in the point prediction information table.

[0141] The present invention is applicable to encoding and decoding of lossy compressed data, as well as encoding and decoding of lossless compressed data. The present invention is applicable to encoding and decoding of one-dimensional data, such as string data or byte string data, or one-dimensional graphics or fractal-dimensional graphics, as well as encoding and decoding of data of two or more dimensions, such as images, image sequences, or video data.

[0142] In lossy compression, the values of elements in the original equal-value string before encoding are allowed to differ, but the difference is smaller than a predetermined threshold.

[0143] In the present invention, the data involved in data compression includes one or a combination of the following types of data:

[0144] 1) One-dimensional data;

[0145] 2) Two-dimensional data;

[0146] 3) Multidimensional data;

[0147] 4) Graphics;

[0148] 5) Fractal graphics;

[0149] 6) Image;

[0150] 7) Sequence of images;

[0151] 8) Video;

[0152] 9) Audio;

[0153] 10) Documents;

[0154] 11) Bytes;

[0155] 12) bits;

[0156] 13) Pixels;

[0157] 14) 3D scenes;

[0158] 15) Sequences of continuously changing three-dimensional scenes;

[0159] 16) Virtual reality scenes;

[0160] 17) Sequence of continuously changing virtual reality scenes

[0161] 18) Images in pixel form;

[0162] 19) Transform domain data of the image;

[0163] 20) A collection of two or more dimensions of bytes;

[0164] 21) A set of two or more bits;

[0165] 22) A collection of pixels;

[0166] 23) a collection of single-component pixels;

[0167] 24) A set of three-component pixels (R, G, B, A);

[0168] 25) A set of three-component pixels (Y, U, V);

[0169] 26) A set of three-component pixels (Y, Cb, Cr);

[0170] 27) A set of three-component pixels (Y, Cg, Co);

[0171] 28) a set of four-component pixels (C, M, Y, K);

[0172] 29) a set of four-component pixels (R, G, B, A);

[0173] 30) a set of four-component pixels (Y, U, V, A);

[0174] 31) A set of four-component pixels (Y, Cb, Cr, A);

[0175] A collection of four-component pixels (Y, Cg, Co, A).

[0176] In summary, the present invention has the following beneficial effects:

[0177] The present invention provides a data encoding and decoding method for periodically updating the value of a point vector in point prediction. When a frequently occurring position and its point vector are used by a current iso-valued string, that is, when the reference element of all elements in the current iso-valued string is an element at a frequently occurring position, i.e., the position pointed to by its point vector, if predetermined conditions are met, the position coordinates of the point vector are updated to the position coordinates of an element in the iso-valued string selected according to a predetermined rule. Because the position of the element in the current iso-valued string, as the new position of the point vector, is arranged after the original position of the point vector it replaces in encoding and decoding order, the new position of the point vector generally leaves and exceeds the continuously moving reference range after the original position of the point vector. Thus, the frequently occurring position and its point vector remain within the reference range for a longer period of time, thereby improving the coding efficiency of point prediction. DETAILED DESCRIPTION

[0178] In order to make the technical means, creative features, objectives and effects achieved by the present invention easier to understand, the present invention is further described below in conjunction with specific embodiments.

[0179] The data encoding method for periodically updating the value of a point vector in point prediction proposed by the present invention includes at least the following steps:

[0180] A1: Input the original data of at least one full compression unit;

[0181] A2: performing point prediction coding on at least the entire compression unit. During the point prediction coding process, when a frequently occurring position and its point vector are used by a current equal value string, if a predetermined condition is satisfied, performing at least the following operations:

[0182] A3: Select at least one element on the equal value string according to a predetermined rule. If the selection is successful, update at least the position coordinates of the point vector to the position coordinates of the element.

[0183] A data encoding device for periodically updating the value of a point vector in point prediction, the data encoding device comprising at least the following modules:

[0184] Original data input module: used for inputting original data of at least one whole compression unit;

[0185] A point prediction coding module is configured to perform point prediction coding on at least the entire compression unit. During the point prediction coding process, when a frequently occurring position and its point vector are used by a current equal value string, if a predetermined condition is met, at least the operations in the following modules are executed;

[0186] The point vector value updating module is used to select an element on the equal value string at least according to a predetermined rule, and if the selection is successful, update the position coordinates of the point vector to the position coordinates of the element.

[0187] A data decoding method for periodically updating a point vector value in point prediction, the data decoding method comprising at least the following steps:

[0188] B1: Input at least one compressed data stream of a whole compression unit;

[0189] B2: performing point prediction decoding on at least the entire compression unit. During the point prediction decoding process, when a frequently occurring position and its point vector are used by a current equal value string, if a predetermined condition is met, performing at least the operation in step B3;

[0190] B3: Select at least one element on the equal value string according to a predetermined rule. If the selection is successful, update at least the position coordinates of the point vector to the position coordinates of the element.

[0191] A data decoding device for periodically updating the value of a point vector in point prediction, the data decoding device comprising at least the following modules:

[0192] Compressed data code stream input module: used for inputting at least one compressed data code stream of a whole compression unit;

[0193] A point prediction decoding module is configured to perform point prediction decoding on at least the entire compression unit. During the point prediction decoding process, when a frequently occurring position and its point vector are used by a current equal value string, if a predetermined condition is met, at least the operations in the following modules are executed;

[0194] The point vector value updating module is used to select an element on the equal value string at least according to a predetermined rule, and if the selection is successful, update the position coordinates of the point vector to the position coordinates of the element.

[0195] Example 1

[0196] In the encoding method or encoding device or decoding method or decoding device, in the case where the original data is an array or a sequence of arrays of two-dimensional data elements including an image, a sequence of images, or a video;

[0197] The compressed subsets involved in point prediction include images, sub-images of images, tiles, slices, and patches;

[0198] The largest compression units involved in point prediction include tiles, LCUs, and CTUs.

[0199] The entire compression unit includes a macroblock, a coding unit CU, a sub-region of a CU, a sub-coding unit SubCU, a prediction block, a prediction unit PU, a sub-region of a PU, a sub-prediction unit SubPU, a transform block, a transform unit TU, a sub-region of a TU, and a sub-transform unit SubTU.

[0200] Example 2

[0201] In the encoding method or encoding device or decoding method or decoding device;

[0202] The reference range is divided into K sub-reference ranges, where K≥2; the predetermined condition includes that the frequently occurring position and its point vector are not in K1 sub-reference ranges predetermined in the K sub-reference ranges, where K1 <K;

[0203] Preferably, the reference range is divided into K sub-reference ranges from front to back in the coding order, respectively denoted as R[k], 1≤k≤K, the larger the k, the later it is arranged in the coding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[k], wherein 1≤k≤K1 and K1 <K;

[0204] Preferably, the reference range is divided into K sub-reference ranges from back to front in the coding order, respectively denoted as R[k], 1≤k≤K, the larger the k, the earlier it is arranged in the coding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[k], wherein 1≤k≤K1 and K1 <K;

[0205] Preferably, the reference range is divided into K sub-reference ranges from back to front in the coding and decoding order, respectively denoted as R[k], 1≤k≤K, and the larger the k, the earlier it is arranged in the coding and decoding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[1];

[0206] Preferably, the reference range is divided into K sub-reference ranges, where K≥2; the predetermined condition includes that the frequently occurring position and its point vector are not in the same sub-reference range as the element on the equal value string;

[0207] Preferably, the reference range is divided into K sub-reference ranges, where K≥2; the predetermined condition includes that the frequently occurring position and its point vector are not in the same sub-reference range as the upper left corner element of the entire compression unit.

[0208] Example 3

[0209] In the encoding method or encoding device or decoding method or decoding device;

[0210] Preferably, the predetermined rule includes: when the frequently occurring position and its point vector have only a principal component, the element is the first element on the equal value string; when the frequently occurring position and its point vector have a principal component and a secondary component, the element is the first positive element on the equal value string;

[0211] Preferably,

[0212] In the encoding method or encoding device or decoding method or decoding device; the predetermined rules include: when the frequently occurring position and its point vector are not in the positive position, the element is the first element on the equal value string; when the frequently occurring position and its point vector are in the positive position, the element is the first positive element on the equal value string.

[0213] Example 4

[0214] In the encoding method or encoding device or decoding method or decoding device;

[0215] Preferably, the reference range is divided into a plurality of sub-reference ranges in the following manner: if the number of elements of the maximum compression unit is greater than a predetermined threshold, the sub-reference range is a region where the number of elements is equal to the predetermined threshold, otherwise, the sub-reference range is the maximum compression unit;

[0216] Preferably,

[0217] In the encoding method or encoding device or decoding method or decoding device, the reference range is divided into a plurality of sub-reference ranges in the following manner: if the width and / or height of the maximum compression unit is greater than a predetermined width and / or height threshold, the sub-reference range is a rectangular area whose width and / or height is equal to the predetermined width and / or height threshold; otherwise, the sub-reference range is the maximum compression unit;

[0218] Preferably,

[0219] In the encoding method or encoding device or decoding method or decoding device, the maximum compression unit is a square; and the reference range is divided into a plurality of sub-reference ranges in the following manner: if the side length of the maximum compression unit is greater than a predetermined threshold, the sub-reference range is a square area having a side length equal to the predetermined threshold after the maximum compression unit is equally divided; otherwise, the sub-reference range is the maximum compression unit;

[0220] Preferably,

[0221] In the encoding method or encoding device or decoding method or decoding device; the maximum compression unit is a power of 2 with a side length of 2, that is, 2 p The reference range is divided into multiple sub-reference ranges in the following way: if the side length of the largest compression unit is greater than 2 P, where P is a predetermined threshold, and the sub-reference range is the maximum compression unit divided into equal parts with a side length of 2 P Otherwise, the sub-reference range is the maximum compression unit;

[0222] Preferably,

[0223] In the encoding method or encoding device or decoding method or decoding device; the maximum compression unit is a power of 2 with a side length of 2, that is, 2 p The reference range is divided into multiple sub-reference ranges in the following manner: If the side length of the largest compression unit is greater than 64 = 2 6 The sub-reference range is the maximum compression unit divided into equal parts, with a side length equal to 64 = 2 6 Otherwise, the sub-reference range is the maximum compression unit.

[0224] Example 5

[0225] Preferably,

[0226] In the encoding method or encoding device or decoding method or decoding device; the maximum compression unit is a power of 2 with a side length of 2, that is, 2 p The reference range is divided into multiple sub-reference ranges of squares with side lengths S, where S is equal to 2 p and a predetermined value, whichever is less;

[0227] Preferably,

[0228] In the encoding method or encoding device or decoding method or decoding device; the maximum compression unit is a power of 2 with a side length of 2, that is, 2 p The reference range is divided into multiple sub-reference ranges of squares with side lengths S, where S is equal to 2 p The minimum of the two values ​​and 64;

[0229] Preferably,

[0230] In the encoding method or encoding device or decoding method or decoding device; the maximum compression unit is a power of 2 with a side length of 2, that is, 2 p The reference range is divided into multiple equal parts with a side length of S = 2 q a square sub-reference range of , wherein the base-2 logarithm q of the side length of the sub-reference range is equal to the minimum of p and a predetermined value;

[0231] Preferably,

[0232] In the encoding method or encoding device or decoding method or decoding device; the maximum compression unit is a power of 2 with a side length of 2, that is, 2 pThe reference range is divided into multiple equal parts with a side length of S = 2 q A square sub-reference range is defined as follows: wherein the base-2 logarithm q of the side length of the sub-reference range is equal to the minimum of p and 6.

[0233] Example 6

[0234] In the encoding method or encoding device or decoding method or decoding device, in the case where the original data is an array or a sequence of arrays of two-dimensional data elements including an image, a sequence of images, or a video;

[0235] The position coordinates of the point vector are the coordinates of the element position pointed to by the point vector in the current maximum compression unit row;

[0236] The syntax description table for performing the operation of updating the position coordinates of the point vector to the position coordinates of the element, that is, the syntax description table for assigning the position coordinates of the point vector with the value of the position coordinates of the element, includes at least:

[0237]

[0238]

[0239]

[0240]

[0241]

[0242] if(component == 'COMPONENT_LUMACHROMA'&&FopYonly[PvAddress]){ / / If the common position and its point vector have only principal components

[0243] log2Size = log(min(LcuSize, 64)) / / Calculate the base 2 logarithm log2Size of the side length of the sub-reference range, i.e., the value q, which is equal to the minimum of p = log(LcuSize) and 6 = log(64)

[0244] PvX=PpInfoList[PvAddress][0] / / Take the horizontal component PvX of the position coordinates of the point vector whose point vector address is PvAddress from the point prediction information table

[0245] PvY=PpInfoList[PvAddress][1] / / Take the vertical component PvY of the position coordinates of the point vector whose point vector address is PvAddress from the point prediction information table

[0246] if (PvX >> log2Size != (x0 - LcuRx0) >> log2Size || PvY >> log2Size != (y0 - LcuRy0) >> log2Size) { / / If the point vector and the top-left element of the entire compression unit are not in the same sub-reference range

[0247] xInCu = TravScan[Log(width) – 2][Log(height) – 2][NumCodedPixel][0] / / Calculate the horizontal component of the coordinate of the element in the entire compression unit, where the element is the first element on the equal-value string

[0248] yInCu = TravScan[Log(width) – 2][Log(height) - 2][NumCodedPixel][1] / / Calculate the horizontal component of the coordinate of the element in the entire compression unit, where the element is the first element on the equal-value string

[0249] xInLcuR = x0 + xInCu – LcuRx0 / / / Calculate the horizontal component of the position coordinate of the element, i.e., the coordinate in the current maximum compression unit row

[0250] yInLcuR = y0 + yInCu – LcuRy0 / / Calculate the vertical component of the position coordinate of the element, i.e., the coordinate in the current maximum compression unit row

[0251] / / Omitted operations unrelated to the present invention

[0252] PpInfoList[PvAddress][0] = xInLcuR / / Assign the horizontal component of the position coordinate of the element to the horizontal component of the position coordinate of the point vector

[0253] PpInfoList[PvAddress][1] = yInLcuR / / Assign the vertical component of the position coordinate of the element to the vertical component of the position coordinate of the point vector

[0254] }

[0255] / / Omitted operations unrelated to the present invention

[0256] }

[0257] else if (component == 'COMPONENT_LUMACHROMA' && PvAddress < IscNumOfReusedPv) { / / Otherwise, i.e., the regular position and its point vector have a main component and a secondary component

[0258] / / Operations unrelated to the present invention are omitted

[0259] for (k = 0; k < StrLen; k++) { / / Traverse each element on the equal-value string

[0260] xInCu = TravScan[Log(width) - 2][Log(height) - 2][NumCodedPixel + k][0]

[0261] / / Calculate the horizontal component of the coordinate of the element in the traversal in the entire compression unit

[0262] yInCu = TravScan[Log(width) - 2][Log(height) - 2][NumCodedPixel + k][1]

[0263] / / Calculate the vertical component of the coordinate of the element in the traversal in the entire compression unit

[0264] log2Size = log(min(LcuSize, 64)) / / Calculate the base-2 logarithm log2Size of the side length of the sub-reference range, that is, the value of q, which is equal to the minimum of the two values p = log(LcuSize) and 6 = log(64)

[0265] PvX = PpInfoList[PvAddress][0] / / Take out the horizontal component PvX of the position coordinate of the point vector with the point vector address PvAddress from the point prediction information table

[0266] PvY = PpInfoList[PvAddress][1] / / Take out the vertical component PvY of the position coordinate of the point vector with the point vector address PvAddress from the point prediction information table

[0267] if(((xInCu|yInCu)&0x1)==0&&((PvX>>log2Size!=(x0-LcuRx0)>>log2Size||PvY>>log2Size!=(y0-LcuRy0)>>log2Size)||(EvsDpbIndex[PvAddress]<28))){ / / If the element in the traversal is in the positive position and the point vector is not in the same sub-reference range as the upper left corner element of the entire compression unit xInLcuR=x0+xInCu–LcuRx0 / / The element in the traversal is selected as the element, and the position coordinate of the element, i.e., the horizontal component of the coordinate in the current maximum compression unit row, is calculated yInLcuR=y0+yInCu–LcuRy0 / / The element in the traversal is selected as the element, and the position coordinate of the element, i.e., the vertical component of the coordinate in the current maximum compression unit row, is calculated

[0268] / / Omitted operations not related to the present invention

[0269] PpInfoList[PvAddress][0]=xInLcuR / / Assign the horizontal component of the position coordinates of the element to the horizontal component of the position coordinates of the point vector

[0270] PpInfoList[PvAddress][1]=yInLcuR / / Assign the vertical component of the element's position coordinates to the vertical component of the point vector's position coordinates

[0271] break / / Selection is successful, and the process of traversing each element on the equal value string to select the element is terminated here

[0272] }

[0273] }

[0274] }

[0275] In the above syntax description table,

[0276] The value of FopYonly[PvAddress] is 1, which means that the point vector with the point vector address PvAddress has only the main component and is not in the positive position. The value of FopYonly[PvAddress] is 0, which means that the point vector with the point vector address PvAddress has both the main component and the secondary component and is in the positive position.

[0277] LcuSize is the side length of the maximum compression unit;

[0278] StrLen is the string length of the equal value string;

[0279] (x0, y0) are the coordinates of the upper left corner element position of the entire compression unit in the image, (LcuRx0, LcuRy0) are the coordinates of the upper left corner element position of the current largest compression unit row in the image, and therefore, (x0-LcuRx0, y0-LcuRy0) are the coordinates of the upper left corner element position of the entire compression unit in the current largest compression unit row;

[0280] TravScan maps the sequence number NumCodedPixel or NumCodedPixel+k of a current element in the entire compression unit to the horizontal coordinate xInCu and the vertical coordinate yInCu of the current element in the entire compression unit. The sequence number starts from the sequence number 0 of the scanning start element of the entire compression unit and increases by one element by element along the scanning path. The sequence number is actually the number of elements in the current entire compression unit that have completed encoding and decoding before the current element;

[0281] PpInfoList[PvAddress][0] and PpInfoList[PvAddress][1] are respectively the horizontal component and the vertical component of the position coordinates of the point vector whose point vector address is PvAddress stored in the point prediction information table.

[0282] In the description of the present invention, it should be noted that the terms "upper", "lower", "inner", "outer", "left", "right", etc. indicate the orientation or positional relationship that is usually placed when the product of the invention is used, or the orientation or positional relationship commonly understood by those skilled in the art. They are only for the convenience of describing the present invention and simplifying the description, and do not indicate or imply that the device or component referred to must have a specific orientation, be constructed and operated in a specific orientation. Therefore, they should not be understood as limiting the present invention. In addition, the terms "first", "second", etc. are only used to distinguish the description and should not be understood as indicating or implying relative importance. In the description of the present invention, it should also be noted that, unless otherwise clearly specified and limited, terms such as "set" and "connect" should be understood in a broad sense. For example, "connection" can be a fixed connection, a detachable connection, or an integral connection; it can be a mechanical connection or an electrical connection; it can be a direct connection, an indirect connection through an intermediate medium, or it can be a communication between the internal parts of two components. For those of ordinary skill in the art, the specific meanings of the above terms in the present invention can be understood according to the specific circumstances. As used herein, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion of elements other than the listed elements and may also include additional elements not specifically listed.

[0283] The basic principles, main features, and advantages of the present invention are shown and described above. Those skilled in the art should understand that the present invention is not limited to the above embodiments. The above embodiments and descriptions are merely illustrative of the principles of the present invention. Various changes and modifications may be made to the present invention without departing from the spirit and scope of the present invention. Such changes and modifications are intended to fall within the scope of the present invention. The scope of protection claimed in the present invention is defined by the appended claims and their equivalents.

Claims

1. A data encoding method for periodically updating the value of a point vector in point prediction, characterized in that: The data encoding method comprises at least the following steps: A1: Input the original data of at least one full compression unit; A2: performing point prediction coding on at least the entire compression unit. During the point prediction coding process, when a frequently occurring position and its point vector are used by a current equal value string, if a predetermined condition is satisfied, performing at least the following operations: The reference range is divided into K sub-reference ranges, where K ≥ 2; the predetermined condition includes that the frequently occurring position and its point vector are not within K1 sub-reference ranges predetermined among the K sub-reference ranges, where K1 < K; or The reference range is divided into K sub-reference ranges from front to back in the coding order, respectively denoted as R[k], 1 ≤ k ≤ K, and the larger k is, the later it is arranged in the coding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[k], where 1 ≤ k ≤ K1 and K1 < K; or The reference range is divided into K sub-reference ranges from back to front in the coding and decoding order, respectively denoted as R[k], 1 ≤ k ≤ K, and the larger k is, the earlier it is arranged in the coding and decoding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[k], where 1 ≤ k ≤ K1 and K1 < K; or The reference range is divided into K sub-reference ranges from back to front in the coding order, respectively denoted as R[k], 1 ≤ k ≤ K, and the larger the k, the earlier it is arranged in the coding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[1]; or The reference range is divided into K sub-reference ranges, where K ≥ 2; the predetermined condition includes that the frequently occurring position and its point vector are not in the same sub-reference range as the elements on the equal value string; or The reference range is divided into K sub-reference ranges, where K ≥ 2; the predetermined condition includes that the frequently occurring position and its point vector are not in the same sub-reference range as the upper left corner element of the entire compression unit; A3: selecting at least one element on the equal value string according to a predetermined rule, and if the selection is successful, updating at least the position coordinates of the point vector to the position coordinates of the element; The predetermined rule includes: when the frequently occurring position and its point vector have only a principal component, the element is the first element on the equal value string; when the frequently occurring position and its point vector have a principal component and a secondary component, the element is the first positive element on the equal value string; or The predetermined rules include: when the frequently occurring position and its point vector are not in the positive position, the element is the first element on the equal value string; when the frequently occurring position and its point vector are in the positive position, the element is the first positive element on the equal value string.

2. A data encoding device for periodically updating the value of a point vector in point prediction, characterized in that The data encoding device includes at least the following modules: Original data input module: used for inputting original data of at least one whole compression unit; A point prediction coding module is configured to perform point prediction coding on at least the entire compression unit. During the point prediction coding process, when a frequently occurring position and its point vector are used by a current equal value string, if a predetermined condition is met, at least the operations in the following modules are executed; The reference range is divided into K sub-reference ranges, where K ≥ 2; the predetermined condition includes that the frequently occurring position and its point vector are not within K1 sub-reference ranges predetermined among the K sub-reference ranges, where K1 < K; or The reference range is divided into K sub-reference ranges from front to back in the coding order, respectively denoted as R[k], 1 ≤ k ≤ K, and the larger k is, the later it is arranged in the coding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[k], where 1 ≤ k ≤ K1 and K1 < K; or The reference range is divided into K sub-reference ranges from back to front in the coding and decoding order, respectively denoted as R[k], 1 ≤ k ≤ K, and the larger k is, the earlier it is arranged in the coding and decoding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[k], where 1 ≤ k ≤ K1 and K1 < K; or The reference range is divided into K sub-reference ranges from back to front in the coding order, respectively denoted as R[k], 1 ≤ k ≤ K, and the larger the k, the earlier it is arranged in the coding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[1]; or The reference range is divided into K sub-reference ranges, where K ≥ 2; the predetermined condition includes that the frequently occurring position and its point vector are not in the same sub-reference range as the elements on the equal value string; or The reference range is divided into K sub-reference ranges, where K ≥ 2; the predetermined condition includes that the frequently occurring position and its point vector are not in the same sub-reference range as the upper left corner element of the entire compression unit; a point vector value updating module configured to select at least one element on the equal value string according to a predetermined rule, and if the selection is successful, to update at least the position coordinates of the point vector to the position coordinates of the element; The predetermined rule includes: when the frequently occurring position and its point vector have only a principal component, the element is the first element on the equal value string; when the frequently occurring position and its point vector have a principal component and a secondary component, the element is the first positive element on the equal value string; or The predetermined rules include: when the frequently occurring position and its point vector are not in the positive position, the element is the first element on the equal value string; when the frequently occurring position and its point vector are in the positive position, the element is the first positive element on the equal value string.

3. A data decoding method for periodically updating the value of a point vector in point prediction, characterized in that: The data decoding method comprises at least the following steps: B1: Input at least one compressed data stream of a whole compression unit; B2: performing point prediction decoding on at least the entire compression unit. During the point prediction decoding process, when a frequently occurring position and its point vector are used by a current equal value string, if a predetermined condition is met, performing at least the operation in step B3; The reference range is divided into K sub-reference ranges, where K ≥ 2; the predetermined condition includes that the frequently occurring position and its point vector are not within K1 sub-reference ranges predetermined among the K sub-reference ranges, where K1 < K; or The reference range is divided into K sub-reference ranges from front to back in the coding order, respectively denoted as R[k], 1 ≤ k ≤ K, and the larger k is, the later it is arranged in the coding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[k], where 1 ≤ k ≤ K1 and K1 < K; or The reference range is divided into K sub-reference ranges from back to front in the coding and decoding order, respectively denoted as R[k], 1 ≤ k ≤ K, and the larger k is, the earlier it is arranged in the coding and decoding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[k], where 1 ≤ k ≤ K1 and K1 < K; or The reference range is divided into K sub-reference ranges from back to front in the coding order, respectively denoted as R[k], 1 ≤ k ≤ K, and the larger the k, the earlier it is arranged in the coding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[1]; or The reference range is divided into K sub-reference ranges, where K ≥ 2; the predetermined condition includes that the frequently occurring position and its point vector are not in the same sub-reference range as the elements on the equal value string; or The reference range is divided into K sub-reference ranges, where K ≥ 2; the predetermined condition includes that the frequently occurring position and its point vector are not in the same sub-reference range as the upper left corner element of the entire compression unit; B3: selecting at least one element on the equal value string according to a predetermined rule, and if the selection is successful, updating at least the position coordinates of the point vector to the position coordinates of the element; The predetermined rule includes: when the frequently occurring position and its point vector have only a principal component, the element is the first element on the equal value string; when the frequently occurring position and its point vector have a principal component and a secondary component, the element is the first positive element on the equal value string; or The predetermined rules include: when the frequently occurring position and its point vector are not in the positive position, the element is the first element on the equal value string; when the frequently occurring position and its point vector are in the positive position, the element is the first positive element on the equal value string.

4. The data decoding method for periodically updating the value of a point vector in point prediction according to claim 3, characterized in that: The raw data is an array or sequence of two-dimensional data elements including an image, a sequence of images, or a video; The compressed subsets involved in point prediction include images, sub-images of images, tiles, slices, and patches; The largest compression units involved in point prediction include tiles, LCUs, and CTUs. The entire compression unit includes a macroblock, a coding unit CU, a sub-region of a CU, a sub-coding unit SubCU, a prediction block, a prediction unit PU, a sub-region of a PU, a sub-prediction unit SubPU, a transform block, a transform unit TU, a sub-region of a TU, and a sub-transform unit SubTU.

5. The data decoding method for periodically updating the value of a point vector in point prediction according to claim 3, characterized in that: Includes one of the following characteristics, Feature 1: The reference range is divided into a plurality of sub-reference ranges in the following manner: if the number of elements of the maximum compression unit is greater than a predetermined threshold, the sub-reference range is a region where the number of elements is equal to the predetermined threshold; otherwise, the sub-reference range is the maximum compression unit; Feature 2: The reference range is divided into a plurality of sub-reference ranges in the following manner: if the width and / or height of the maximum compression unit is greater than a predetermined width and / or height threshold, the sub-reference range is a rectangular area whose width and / or height is equal to the predetermined width and / or height threshold; otherwise, the sub-reference range is the maximum compression unit; Feature 3: The maximum compression unit is a square; the reference range is divided into a plurality of sub-reference ranges in the following manner: if the side length of the maximum compression unit is greater than a predetermined threshold, the sub-reference range is a square area having a side length equal to the predetermined threshold after the maximum compression unit is equally divided; otherwise, the sub-reference range is the maximum compression unit; Feature 4: The maximum compression unit is the pth power of 2, that is, 2 p The reference range is divided into multiple sub-reference ranges in the following way: if the side length of the largest compression unit is greater than 2 P , where P is a predetermined threshold, and the sub-reference range is the maximum compression unit divided into equal parts with a side length of 2 P Otherwise, the sub-reference range is the maximum compression unit; Feature 5: The maximum compression unit is the pth power of 2, that is, 2 p The reference range is divided into multiple sub-reference ranges in the following manner: If the side length of the largest compression unit is greater than 64 = 2 6 The sub-reference range is the maximum compression unit divided into equal parts, with a side length equal to 64 = 2 6 Otherwise, the sub-reference range is the maximum compression unit.

6. The data decoding method for periodically updating the value of a point vector in point prediction according to claim 3, characterized in that: Includes one of the following characteristics, Feature 1: The maximum compression unit is the pth power of 2, that is, 2 p The reference range is divided into multiple sub-reference ranges of squares with side lengths S, where S is equal to 2 p and a predetermined value, whichever is less; Feature 2: The maximum compression unit is the pth power of 2, that is, 2 p The reference range is divided into multiple sub-reference ranges of squares with side lengths S, where S is equal to 2 p The minimum of the two values ​​and 64; Feature 3: The maximum compression unit is the pth power of 2, that is, 2 p The reference range is divided into multiple equal parts with a side length of S = 2 q a square sub-reference range of , wherein the base-2 logarithm q of the side length of the sub-reference range is equal to the minimum of p and a predetermined value; Feature 4: The maximum compression unit is the pth power of 2, that is, 2 p The reference range is divided into multiple equal parts with a side length of S = 2 q A square sub-reference range is defined as follows: wherein the base-2 logarithm q of the side length of the sub-reference range is equal to the minimum of p and 6.

7. A data decoding device for periodically updating a point vector value in point prediction for implementing the data decoding method for periodically updating a point vector value in point prediction according to any one of claims 3 to 6, characterized in that: The data decoding device comprises at least the following modules: Compressed data code stream input module: used for inputting at least one compressed data code stream of a whole compression unit; A point prediction decoding module is configured to perform point prediction decoding on at least the entire compression unit. During the point prediction decoding process, when a frequently occurring position and its point vector are used by a current equal value string, if a predetermined condition is met, at least the operations in the following modules are executed; The reference range is divided into K sub-reference ranges, where K ≥ 2; the predetermined condition includes that the frequently occurring position and its point vector are not within K1 sub-reference ranges predetermined among the K sub-reference ranges, where K1 < K; or The reference range is divided into K sub-reference ranges from front to back in the coding order, respectively denoted as R[k], 1 ≤ k ≤ K, and the larger k is, the later it is arranged in the coding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[k], where 1 ≤ k ≤ K1 and K1 < K; or The reference range is divided into K sub-reference ranges from back to front in the coding and decoding order, respectively denoted as R[k], 1 ≤ k ≤ K, and the larger k is, the earlier it is arranged in the coding and decoding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[k], where 1 ≤ k ≤ K1 and K1 < K; or The reference range is divided into K sub-reference ranges from back to front in the coding order, respectively denoted as R[k], 1 ≤ k ≤ K, and the larger the k, the earlier it is arranged in the coding order; the predetermined condition includes that the frequently occurring position and its point vector are not in the sub-reference range R[1]; or The reference range is divided into K sub-reference ranges, where K ≥ 2; the predetermined condition includes that the frequently occurring position and its point vector are not in the same sub-reference range as the element on the equal value string; or The reference range is divided into K sub-reference ranges, where K ≥ 2; the predetermined condition includes that the frequently occurring position and its point vector are not in the same sub-reference range as the upper left corner element of the entire compression unit; a point vector value updating module configured to select at least one element on the equal value string according to a predetermined rule, and if the selection is successful, to update at least the position coordinates of the point vector to the position coordinates of the element; The predetermined rule includes: when the frequently occurring position and its point vector have only a principal component, the element is the first element on the equal value string; when the frequently occurring position and its point vector have a principal component and a secondary component, the element is the first positive element on the equal value string; or The predetermined rules include: when the frequently occurring position and its point vector are not in the positive position, the element is the first element on the equal value string; when the frequently occurring position and its point vector are in the positive position, the element is the first positive element on the equal value string.

Citation Information

Patent Citations

  • System and method of mapping multiple reference frame motion estimation on multi-core DSP architecture

    WO2014083491A2

  • KR20210093386A