Data compression method and apparatus for limiting the range of offset values of a motion vector difference
Patent Information
- Application Number
- CN202310092536.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-06-30
- Filing Date
- 2019-06-30
- Publication Date
- 2026-08-21
- Estimated Expiration
- 2039-06-30
AI Technical Summary
[0016]为了解决数据集的取值范围较大时,数据编码及解码所使用的比特数较多,导致编码效率低下的问题,本发明提供了一种采用子范围和子定义域的数据压缩方法和装置,在数据集的取值范围中规定若干个允许互有交集的子范围,同时将数据集的定义域划分成多个子定义域,对于一个子定义域内的元素,其所对应的数据的取值被限制在一个子范围内,从而起到了减小实际的取值范围,提升编码效率的作用
Smart Images

Figure CN116320396B_ABST
Abstract
Description
[0001] This application is a divisional application of the following original application:
[0002] The original application was filed on June 30, 2019.
[0003] The original application number was 2019105822607.
[0004] The original invention application was titled: "Data Compression Method and Apparatus for Encoding Parameters by Hierarchical Prescribing Subsets" (the name used during registration was: "Encoding Method and Apparatus for Compressing Image Sequences, Decoding Method and Apparatus"). Technical Field
[0005] This invention relates to an encoding and decoding (also known as decoding) system for compressing data, and particularly to a method and apparatus for encoding and decoding datasets with a limited range of values. Background Technology
[0006] As human society enters the era of big data, cloud computing, mobile computing, cloud-mobile computing, ultra-high definition (4K) and ultra-high definition (8K) video image resolution, 4G / 5G communication, and virtual reality, ultra-high compression ratio and extremely high quality data compression for various raw data, including big data, image data, video data, audio data, voice data, and neural network data, has become an indispensable technology.
[0007] A large class of data compression problems can be reduced to the compression of datasets Y = {y=f(x): x ∈ X}, where ∈ means "belongs to"; set X is the domain of Y or f, consisting of all x, and x is called an element of X; set Y consists of all y=f(x), and y=f(x) is called an element of Y, usually a numerical value (one-dimensional, i.e., a value with one component, or multi-dimensional, i.e., a value with multiple components) or equivalent to a numerical value; f is a correspondence defined on X, also called a correspondence rule, functional relation, or simply a function. For each x in X, there exists a unique y=f(x) corresponding to x. Different x may correspond to the same y=f(x), i.e., x1∈X, x2∈X, x1 and x2 are different elements in X, but f(x1) and f(x2) have the same value. Another equivalent representation of dataset Y is that for every x ∈ X, there exists a corresponding y=f(x) ∈ Y.
[0008] The problem of compressing a dataset Y is essentially about representing all elements f(x) of Y using the fewest possible number of bits. Let b(x) be the number of bits required to represent each f(x), then the total number of bits B required to represent all elements f(x) of Y is... total It equals the sum of all b(x), that is, Btotal = ∑ x∈X b(x), where ∑ represents the summation operation and the subscript of ∑ is... x∈X This represents the summation operation of b(x) on all x in X.
[0009] The numerical value of an element (i.e., data) y in a dataset Y is called the value taken by element y, or simply the value or range of y. The set of all distinct values that y is allowed to take constitutes the range of values for Y, denoted as R = {r[k]: k = 0~K-1}, where r[i] ≠ r[j] when i ≠ j. Clearly, K is the size of the range R, i.e., the number of elements in R.
[0010] b(x) and B total All of these are directly related to the range of values R for Y, and the size K. For example, when K=2... b Furthermore, if all elements of R are represented using fixed-length binary code of length b (i.e., binary code with a number of bits equal to b), then all b(x) are equal to b = log₂(K). Therefore, B total = N×b = N×log2(K), where N is the number of elements in X. Clearly, as K increases, B... total This will also increase. Therefore, it is clear that the effectiveness of data compression is directly related to the size of the data's value range.
[0011] In existing technologies, when compressing a dataset Y, its value range R is fixed, so the size of the value range K is also fixed. When K is large, a large number of bits are used and consumed for each data y being encoded or decoded, making it difficult to improve encoding efficiency.
[0012] The first example of a dataset and its domain and range of values is found in image and video data compression. Typically, a frame of an image is divided into coded blocks, each represented by a block number. These blocks are encoded (and decoded accordingly). If a block is an intra-coded block, an intra-prediction mode is used to specify which intra-prediction method to perform. Each intra-prediction mode is represented by an intra-prediction mode number. In this case, the domain X of the dataset Y = {y=f(x): x ∈ X} is the set of all intra-coded blocks or their block numbers in the image or image sequence (i.e., video), while the range R is the set of all intra-prediction modes or their numbers. Clearly, in this example, the size K of the range R represents the total number of K predetermined intra-prediction modes. In the HEVC international video coding standard, K=35. In the next-generation international video coding standard currently under development, K may increase to 65.
[0013] The second example of a dataset and its domain and range of values is related to image and video data compression. For a coded block, color transformation (also called color conversion or color adjustment) is often required to eliminate the correlation between pixel components. To accommodate the unique color characteristics and correlations often found in different regions of images and videos, there are many types of color transformations, represented by color transformation modes. When encoding and decoding a coded block, a color transformation mode is used to specify which color transformation to apply to that block. Each color transformation mode is represented by a color transformation mode number. In this case, the domain X of the dataset Y = {y=f(x): x ∈ X} is the set of all coded blocks or their block numbers in the image or video, while the range R is the set of all color transformation modes or their numbers. Clearly, in this example, the size K of the range R represents the total number of K predetermined color transformation modes. In existing technologies, the actual types of color transformations used often exceed 100, i.e., K > 100.
[0014] The third example of a dataset, its domain, and value range is found in image and video data compression, where string matching or prediction techniques are often used. A coded block is divided into multiple pixel strings, and matching or prediction is performed on a string-by-string basis. Each string is characterized by string coding parameters, including string length and offset (i.e., the positional offset between the current string and the reference string). Within a coded block, each string has a string index. In this case, the domain X of the dataset Y = {y=f(x): x ∈ X} is the set of all string-matching coded blocks or their block numbers in the image or video, combined with the strings within those blocks or their string indices—that is, the set of all two-dimensional combinations (coded blocks or their block numbers, strings within those blocks or their string indices). The value range R is the set of all possible values allowed for the string coding parameters. Example 1: Suppose the number of pixels in a coded block is N (common values for N are 64, 256, 1024, 4096, 16384). Then the possible values allowed for the string length encoding parameter are 1, 2, ..., N-1, N, for a total of N values. Therefore, the range of values R for Y is equal to the size K of N. Example 2: Suppose a reference string is confined to a predetermined region of an image. Then the possible values allowed for the offset encoding parameter are the offset values that cause the reference string to fall within the predetermined region.
[0015] The fourth example of a dataset, its domain, and value range is block matching, or block prediction, often used in image and video data compression. For a current coded block, a reference block (either inter-frame or intra-frame) is used to match (or predict) the current coded block. Each current coded block is represented by the frame number (or reference frame number) of the frame containing the reference block and a motion vector. In this case, the domain X of the dataset Y = {y=f(x): x ∈ X} is the set of all block-matching coded blocks or their block numbers in the image or video, while the value range R is the set of possible values allowed for the reference frame, its number, and the motion vector. For example, if the reference block is restricted to several predetermined regions within several frames, then the possible values allowed for the reference frame, its number, and the motion vector are the values of the reference frame, its number, and the motion vector that cause the reference block to fall within the predetermined regions. Summary of the Invention
[0016] To address the problem of low encoding efficiency due to the large number of bits required for data encoding and decoding when the value range of a dataset is large, this invention provides a data compression method and apparatus that employs subranges and subdomains. The method defines several subranges within the value range of the dataset, allowing them to overlap, and divides the domain of the dataset into multiple subdomains. For an element within a subdomain, the value of its corresponding data is restricted to a subrange, thereby reducing the actual value range and improving encoding efficiency.
[0017] The primary technical feature of this invention is that it defines I subranges R1, R2, R3, ..., R within the value range R of a dataset Y. I Divide the domain X of the dataset into M subdomains X1, X2, X3, ..., X... M For X m All elements x (i.e., any x ∈ X) m The values of the data f(x) corresponding to x are all restricted to a subrange R. i Inside. Due to R i Since it is smaller than R, the number of bits required to represent f(x) during data compression is also reduced, thus improving encoding efficiency. Of course, for each X... m It may require consuming some bits to represent exactly which subrange R the value of the data f(x) corresponding to x is restricted to. i Inside. However, despite this negative effect, as long as each X is properly selected and specified... m and each R i Overall, this invention undoubtedly improves coding efficiency.
[0018] In this invention, preferably, in each R iChina further stipulates J i The next level (level 2) sub-range R i1 R i2 , ..., R iJi ; each X m It is further divided into N m The next level (level 2) subdomain X m1 X m2 , ..., X mNm ; any x ∈ X mn The values of the data f(x) corresponding to x are all restricted to a subrange R. ij Inside.
[0019] In this invention, preferably, several third-level sub-ranges are further defined in each second-level sub-range; each second-level sub-domain is also further divided into multiple third-level sub-domains; for all elements x in a third-level sub-domain, the value of the data f(x) corresponding to x is restricted to a third-level sub-range.
[0020] In this invention, preferably, by analogy, several L+1 sub-ranges are further defined in each L-th sub-range; each L-th sub-domain is also further divided into multiple L+1 sub-domains; for all elements x in an L+1 sub-domain, the value of the data f(x) corresponding to x is restricted to an L+1 sub-range.
[0021] A dataset Y may have multiple domains. The most trivial domain is the dataset Y itself, in which case y = x. Another type of domain is the number, sequence, index, coordinate, address, or control signal that the elements of the dataset Y naturally possess or are assigned.
[0022] The most fundamental and unique technical feature of the encoding method or apparatus of the present invention is that, for a dataset defined on a suitable domain (also called a set of inputs, a set of input variables, a set of input independent variables, a set of independent variables, or a set of control signals), the domain is divided into multiple sub-domains. Within the value range, several sub-ranges that are allowed to overlap are specified. Under the constraint that the values of the data corresponding to all elements belonging to the same sub-domain are all restricted to the same sub-range without exception, the relevant encoding functions and operations are completed, generating a compressed data stream that contains at least information that can be used to directly or indirectly or in a mixed manner to represent or derive which sub-range the values of the data corresponding to the elements of each sub-domain are restricted to. Figure 1 This is a schematic diagram of the encoding method or apparatus of the present invention.
[0023] The most fundamental and unique technical feature of the decoding method or apparatus of the present invention is that, for a dataset defined on a suitable domain (also called a set of inputs, a set of input variables, a set of input independent variables, a set of independent variables, or a set of control signals), the domain is divided into multiple sub-domains. Within the value range, several sub-ranges that allow overlap are specified. The decoding function and operation are performed under the constraint that the values of all elements belonging to the same sub-domain are invariably restricted to the same sub-range. The information required during the decoding process to directly or indirectly, or in a mixed manner, represent or derive which sub-range the values of the data corresponding to the elements of each sub-domain are restricted to is obtained by parsing the compressed data stream. Figure 2 This is a schematic diagram of the decoding method or apparatus of the present invention.
[0024] According to one aspect of the present invention, an encoding method or apparatus for compressing a dataset, or a decoding method or apparatus, is provided, comprising at least the steps or modules that perform the following functions and operations:
[0025] For the dataset, determine a suitable domain;
[0026] The domain is divided into multiple subdomains;
[0027] Within the range of values in the dataset, several sub-ranges that are allowed to overlap are defined;
[0028] The values of the data corresponding to all elements belonging to the same subdomain are restricted to the same subdomain;
[0029] The compressed data stream contains at least information about which sub-range the values of the data corresponding to each element of each subdomain are restricted to, either directly or indirectly or in a mixture of both.
[0030] From a first perspective, the present invention provides an encoding method for compressing datasets and their data, characterized by comprising at least the following steps:
[0031] 1) For the dataset, define a domain and establish the correspondence between the domain and its elements and the dataset and its elements;
[0032] 2) Divide the domain into multiple subdomains;
[0033] 3) Define several sub-ranges within the value range of the dataset, allowing them to overlap;
[0034] 4) Establish the correspondence between the subdomain and the subrange, that is, stipulate that the values of the data corresponding to all elements belonging to the same subdomain are restricted to the same subrange;
[0035] 5) Generate a compressed data stream that contains at least information about which sub-range the values of the data corresponding to each element of each subdomain are restricted to, either directly or indirectly or in a mixed manner.
[0036] From a second perspective, the present invention provides a decoding method for compressing datasets and their data, characterized by comprising at least the following steps:
[0037] 1) Parse the compressed data stream to obtain information on which sub-range the values of the data corresponding to the elements of each sub-domain are restricted to, either directly or indirectly or in a mixed manner.
[0038] 2) Based on the information, determine the sub-range within which the values of the data corresponding to all elements belonging to the same sub-domain are restricted, i.e., a sub-range of values of the data corresponding to an element of a sub-domain.
[0039] 3) Within the range of values, decode the data corresponding to the elements of the subdomain.
[0040] From a third perspective, the present invention provides an encoding apparatus for compressing datasets and their data, characterized by comprising at least the following modules:
[0041] 1) A module for constructing the domain of a dataset, which defines a domain for the dataset and constructs the correspondence between the domain and its elements and the dataset and its elements;
[0042] 2) A domain partitioning module that divides the domain into multiple subdomains;
[0043] 3) A subset selection module for the value range of the dataset, which selects and specifies several sub-ranges that are allowed to overlap within the value range of the dataset;
[0044] 4) Subdomain and subrange relationship construction module, which constructs the correspondence between the subdomain and the subrange, and restricts the values of the data corresponding to all elements belonging to the same subdomain to the same subrange;
[0045] 5) Compressed data stream generation module, which generates a compressed data stream containing at least information about which sub-range the values of the data corresponding to the elements of each sub-domain are restricted to, either directly or indirectly or in a mixed manner.
[0046] From a fourth perspective, the present invention provides a decoding apparatus for compressing datasets and their data, characterized by comprising at least the following modules:
[0047] 1) Compressed data stream parsing module, parses compressed data stream, obtains information on which sub-range the values of the data corresponding to the elements of each sub-domain are restricted to, which can be used to directly or indirectly or in a mixed manner to represent or derive the data.
[0048] 2) The value sub-range determination module determines, based on the information obtained by the compressed data stream parsing module, the sub-range in which the values of the data corresponding to all elements belonging to the same sub-domain are restricted, i.e., a value sub-range of the data corresponding to an element of a sub-domain.
[0049] 3) Data decoding module, which decodes the data corresponding to the elements of the subdomain within the range of values.
[0050] The "domain" may also have other forms or names, such as: the set of inputs, the set of input variables, the set of input independent variables, the set of independent variables, or the set of control signals.
[0051] Preferably, the subdomain is a first-level subdomain, which can be further divided into multiple second-level subdomains; the subrange is a first-level subrange, which can be further defined with several second-level subranges; the values of the data corresponding to all elements belonging to the same second-level subdomain are restricted to the same second-level subrange; the compressed data stream contains at least information that can be used to directly or indirectly or in a mixed manner to represent or derive which second-level subrange the values of the data corresponding to each element of the second-level subdomain are restricted to.
[0052] Preferably, the second-level subdomain can be further divided into multiple third-level subdomains; several third-level subranges can be further defined within the second-level subrange; the values of the data corresponding to all elements belonging to the same third-level subdomain are restricted to the same third-level subrange; the compressed data stream contains at least information that can be used to directly or indirectly or in a mixed manner to represent or derive which third-level subrange the values of the data corresponding to each element of the third-level subdomain are restricted to.
[0053] Preferably, and by analogy and extension to the case where L>2, the Lth layer sub-domain can be further divided into multiple L+1th layer sub-domains; several L+1th layer sub-ranges can be further defined within the Lth layer sub-range; the values of the data corresponding to all elements belonging to the same L+1th layer sub-domain are restricted to the same L+1th layer sub-range; the compressed data bitstream contains at least information that can be used to directly or indirectly or in a mixed manner to represent or derive which L+1th layer sub-range the values of the data corresponding to each element of the L+1th layer sub-domain are restricted to.
[0054] When the original data is image or video data, during image and video data compression, a frame of image is usually divided into coding regions or compression regions (cr) with a predetermined constant size (such as 64×64 pixels or 128x128 pixels) or with one or more rectangular regions (such as K×L+M×N pixels, where K, L, M, and N are positive integers). Each coding region usually has a unique coding region number, and each coding region is further divided into coding blocks (also called decoding blocks from a decoding perspective, often collectively referred to as codec blocks or whole compression units) according to one or more recursive four-branch, three-branch, two-branch, or no-branch structure. Each codec block usually has a unique codec block number, which can consist of two parts: the coding region number and the relative codec block number.
[0055] In this invention, when the original data is image or video data, the elements of the dataset include one of the following encoding / decoding parameters appearing in the image or video encoding / decoding, or combinations, composites, or fusions of various forms or relationships thereof, including parallel, intersecting, containing, subordinate, merging, partially merging, cross-merging, union, intersection, difference, and complement:
[0056] 1) The coding tree branching pattern, whose value range includes a portion or all of the following sets 1 and / or set 2 represented by enumeration:
[0057] Set 1 = {various branching structures that first perform one or more quadruplings and then one or more binary or trinodelings}. Any branching structure can be represented by the number of recursive quadruplings starting from the coding tree unit and the number of subsequent recursive binary or trinodelings, or equivalently by the size of the partition after the recursive quadrupling (partSize) and the size of the partition after the subsequent recursive binary or trinodelings. Since the partition size is always a power of 2, partSize can also be equivalently represented by the base-2 logarithm of partSize, partSizeInBit = log2(partSize).
[0058] Set 2 = {No branching, four-branching, horizontal three-branching, vertical three-branching, horizontal two-branching, vertical two-branching};
[0059] 2) The luminance component branching mode of the coding tree, whose value range includes a portion or all of the following sets 1 and / or set 2 represented by enumeration:
[0060] Set 1 = {various branching structures that first form a quadrilateral branch once or multiple times, and then form a dichotomy or trichotomy once or multiple times}.
[0061] Set 2 = {No branching, four-branching, horizontal three-branching, vertical three-branching, horizontal two-branching, vertical two-branching};
[0062] 3) The chroma component branching pattern of the coding tree, whose value range includes a portion or all of the following sets 1 and / or set 2 represented by enumeration:
[0063] Set 1 = {various branching structures that first form a quadrilateral branch once or multiple times, and then form a dichotomy or trichotomy once or multiple times}.
[0064] Set 2 = {No branching, four-branching, horizontal three-branching, vertical three-branching, horizontal two-branching, vertical two-branching};
[0065] 4) The luminance and chrominance fusion branching mode of the coding tree, whose value range includes a portion or all of the following sets 1 and / or set 2 represented by enumeration:
[0066] Set 1 = {various branching structures of coding trees where luma and chroma share a common (i.e., a single) coding tree; various branching structures where luma and chroma each have their own coding trees (i.e., the luma coding tree and chroma coding tree are at least partially different); various branching structures of coding trees where luma and chroma share a common (i.e., a single) trunk but each has its own branching parts; and various branching structures of coding trees where luma and chroma share a common (i.e., a single) first- or multiple-four-branch trunk but each has its own first- or multiple-two- or three-branching branches}.
[0067] Set 2 = {No bifurcation of luminance or chrominance, four bifurcations of luminance but no bifurcation of chrominance, three bifurcations of luminance horizontally but no bifurcation of chrominance, three bifurcations of luminance vertically but no bifurcation of chrominance, two bifurcations of luminance horizontally but no bifurcation of chrominance, two bifurcations of luminance vertically but no bifurcation of chrominance, no bifurcation of luminance but four bifurcations of chrominance, four bifurcations of luminance but four bifurcations of chrominance, three bifurcations of luminance horizontally but four bifurcations of chrominance, three bifurcations of luminance vertically but four bifurcations of chrominance, two bifurcations of luminance horizontally but four bifurcations of chrominance, two bifurcations of luminance vertically but four bifurcations of chrominance, and so on; both luminance and chrominance are four bifurcations, luminance is four bifurcations but chrominance is three bifurcations horizontally, luminance is four bifurcations but chrominance is three bifurcations vertically, luminance is four bifurcations but chrominance is two bifurcations horizontally, luminance is four bifurcations but chrominance is two bifurcations vertically, and so on};
[0068] 5) The encoding mode of the codec block, whose value range includes a part or all of the following set represented by enumeration: {IPCM, intra-frame prediction, inter-frame prediction, string prediction, palette, block prediction, micro-block prediction, strip prediction}.
[0069] 4) The fusion with 5) refers to the fusion of the luminance and chrominance branching patterns of the coding tree with the coding patterns of the codec blocks, resulting in a luminance-chrominance coding tree structure and coding pattern. Its value range includes a portion or all of the following sets represented by enumeration: {Intra-frame coding patterns with a common (i.e., a single) coding tree branching structure for luminance and chrominance; intra-frame coding patterns with luminance and chrominance each having their own coding tree branching structure; intra-frame coding patterns with a common (i.e., a single) trunk for luminance and chrominance but also with their own branches; intra-frame coding patterns with a common (i.e., a single) one- or multiple four-branch trunk for luminance and chrominance.} Various branching structures of coding trees that are divided into two branches but each branch has its own one or more binary or tri-branched branches; various branching structures of coding trees in inter-frame coding modes where luma and chroma share a common, i.e., a single coding tree; various branching structures of coding trees in inter-frame coding modes where luma and chroma each have their own coding trees; various branching structures of coding trees in inter-frame coding modes where luma and chroma share a common, i.e., a single trunk but each branch has its own branches; various branching structures of coding trees in inter-frame coding modes where luma and chroma share a common, i.e., a single, one or more quadruple trunk but each branch has its own one or more binary or tri-branched branches.
[0070] 6) The encoding mode of the encoding / decoding block is associated with the encoding parameters;
[0071] 7) The intra-frame luminance prediction mode of the codec block, whose value range includes a portion or all of one of the following seven sets, each represented by an enumeration method:
[0072] (1) {DC, Planar, direction 1, direction 2, and so on, direction 65};
[0073] (2) {DC, Planar, Bilinear, direction 1, direction 2, and so on, direction M}, where M is usually a constant between 30 and 130;
[0074] (3) {DC, Planar, direction 1, direction 2, and so on, direction M, extension 1, extension 2, and so on, extension N}, where M and N are usually constants between 30 and 130;
[0075] (4) Several elements dynamically selected from a set of modes (e.g., {DC, Planar, direction 1, direction 2, and so on, direction 65}) according to predetermined rules (e.g., the values of the intra-frame luminance prediction modes of several adjacent codec blocks of the current codec block or the values of the intra-frame luminance prediction modes of several codec blocks closest in the codec order).
[0076] (5) The difference set obtained by subtracting several elements dynamically selected according to predetermined rules (e.g., the values of the intra-frame luminance prediction modes of several adjacent codec blocks of the current codec block or the values of the intra-frame luminance prediction modes of several codec blocks most recently in the codec order) from a set of modes (e.g., {DC, Planar, direction 1, direction 2, and so on, direction 65}).
[0077] (6) Take the range of values formed by all elements whose index is a multiple of a predetermined constant (e.g., 4) from the difference set described in (5) as an ordered set {element 0, element 1, element 2, element 3, element 4, element 5, element 6, element 7, element 8, and so on}.
[0078] (7) Take the range of values formed by all elements whose index is not a multiple of a predetermined constant (e.g., 4) from the difference set described in (5) as an ordered set {element 0, element 1, element 2, element 3, element 4, element 5, element 6, element 7, element 8, and so on}.
[0079] 8) Prediction mode associated coding parameters of the codec block, including motion vectors for inter-frame prediction and / or intra-frame block prediction, motion vector difference, offset of motion vector difference, motion vector candidate set index, predicted value, interpolation of predicted value, and interpolation weight of predicted value.
[0080] 9) The inter-frame prediction and / or intra-frame block prediction modes of the codec block, whose value range includes a portion or all of one of the following three sets, each represented by an enumeration method:
[0081] (1) {Skip, Merge candidate 1, Merge candidate 2, and so on, Merge candidate I, a regular pattern directly represented by the motion vector and / or the motion vector difference and / or the offset of the motion vector difference}, where I is usually a constant between 2 and 10;
[0082] (2) {Skip, Merge candidate 1, Merge candidate 2, and so on, Merge candidate I, Affine 1, Affine 2, and so on, Affine J, a regular pattern directly represented by the offset of the motion vector and / or the difference of the motion vector and / or the difference of the motion vector}, where I is usually a constant between 2 and 10, and J is usually a constant between 1 and 5;
[0083] (3) {Skip, Merge candidate 1, Merge candidate 2, and so on, Merge candidate I, Affine 1, Affine 2, and so on, Affine J, Extension 1, Extension 2, and so on, Extension K, a regular pattern that directly uses the motion vector and / or the motion vector difference and / or the offset of the motion vector difference to represent the amount of motion or movement}, where I is usually a constant between 0 and 10 (I is 0 to indicate no Merge candidate element), J is usually a constant between 0 and 5 (J is 0 to indicate no Affine element), and K is usually a constant between 0 and 8 (K is 0 to indicate no extension element). Extensions include one or a combination of the following: recent history sub-pattern, which uses the associated coding parameters of the most recent one or more coding blocks that appear during the coding and decoding process as the associated coding parameters of the current coding and decoding block, line sub-pattern, half-line sub-pattern, micro-block sub-pattern;
[0084] The fusion of motion vectors in 8) and inter-frame prediction modes in 9), i.e., multi-source motion vector predictions (including the case where the prediction difference is zero, i.e., the motion vector prediction value is equal to the motion vector itself), has a value range that includes a subset of the following sets or the union of all sets:
[0085] Set 1 = Candidate set of offsets for the motion vectors and / or differences of motion vectors in the Skip sub-pattern.
[0086] Set 2 = Candidate set of offsets for the motion vectors and / or motion vector differences of the Merge sub-patterns.
[0087] Set 3 = Candidate set of offsets for the motion vectors and / or differences of motion vectors and / or differences of motion vectors in the most recent historical sub-patterns.
[0088] Set 4 = a predetermined set of candidate offsets for the default motion vector and / or the difference between motion vectors and / or the difference between motion vectors.
[0089] Set 5 = The set of motion vectors that are conventionally represented directly by (horizontal component, vertical component);
[0090] 10) Inter-component prediction mode of codec blocks;
[0091] 11) Inter-component prediction mode association coding parameters of the codec block;
[0092] 12) Inter-component prediction coefficients of the codec block;
[0093] 13) Correlation coding parameters between component prediction coefficients of the codec block;
[0094] 14) Inter-component prediction mode of residual components in codec blocks;
[0095] 15) Prediction coefficients between residual components of the codec block;
[0096] 16) The color transformation mode between components of the codec block, whose value range includes a part or all of the following set represented by enumeration: {RGB-YCoCg transformation, GBR-YCoCg transformation, BRG-YCoCg transformation, RGB-YCoCg transformation variant 1, GBR-YCoCg transformation variant 1, BRG-YCoCg transformation variant 1, RGB-YCoCg transformation variant 2, GBR-YCoCg transformation variant 2, BRG-YCoCg transformation variant 2, RGB-YCoCg transformation variant 3, GBR-YCoCg transformation variant 3, BRG-YCoCg transformation variant 3, and so on}, where variants include fine-tuning of the transformation coefficients;
[0097] 17) Color transformation mode association encoding parameters between components of the codec block;
[0098] 18) Color transformation coefficients between components of the codec block;
[0099] 19) Correlation coding parameters between color transformation coefficients of components in the codec block;
[0100] 20) Color transformation modes between residual components of the codec block, the range of which includes a part or all of the following enumerated set: {RGB-YCoCg transformation, GBR-YCoCg transformation, BRG-YCoCg transformation, RGB-YCoCg transformation variant 1, GBR-YCoCg transformation variant 1, BRG-YCoCg transformation variant 1, RGB-YCoCg transformation variant 2, GBR-YCoCg transformation variant 2, BRG-YCoCg transformation variant 2, RGB-YCoCg transformation variant 3, GBR-YCoCg transformation variant 3, BRG-YCoCg transformation variant 3, and so on, with Cb-Cr swapped after the inverse chroma residual component transformation, and Cb-Cr not swapped after the inverse chroma residual component transformation}, examples of variants include fine-tuning of the transformation coefficients;
[0101] 21) Color transformation coefficients between residual components of the codec block or their associated coding parameters, such as: chroma residual component transformation coefficients;
[0102] 22) Residuals of block prediction (including intra-frame prediction and inter-frame prediction) of codec blocks;
[0103] 23) Transform coefficients of the block prediction residuals of the encoded / decoded blocks;
[0104] 24) Encoding parameters for string prediction of the codec block;
[0105] 25) The string length of the string prediction (also known as string matching or string copying) of the codec block;
[0106] 26) String shift of the string prediction of the codec block;
[0107] 27) Horizontal component of string shift in the string prediction of the codec block;
[0108] 28) Vertical component of string shift in the string prediction of the codec block;
[0109] 29) String type flags for string prediction of codec blocks;
[0110] 30) The address of the secondary reference buffer (SRB) of the string predicted by the codec block (called the string SRB address);
[0111] 31) The number of times the SRB color is repeated in the string prediction of the codec block;
[0112] 32) Encoding parameters of the image coordinate string;
[0113] 33) The number of consecutive image coordinate strings;
[0114] 34) The length of the image coordinate string;
[0115] 35) The number of times a pixel at a given image coordinate is repeated in the image coordinate string;
[0116] 36) The address of the image coordinates in the image coordinate array (PCA);
[0117] 37) Encoding parameters of the offset string;
[0118] 38) The number of consecutive offset strings;
[0119] 39) Length of the offset string.
[0120] In this invention, when the original data is image or video data, and a frame of image is divided into coded blocks, the coded block is a region of the image, including the following: sub-images of the image, slices, slice groups composed of several slices, tiles, tile groups composed of several tiles, bricks, brick groups composed of several bricks, maximum coding unit (LCU), maximum coding unit group composed of several maximum coding units, coding tree unit (CTU), and coding tree unit group composed of several coding tree units.
[0121] In this invention, when the original data is image or video data, and a frame of image is further divided into encoding and decoding blocks, the encoding and decoding block is an encoding region or a decoding region of the image, including the following: sub-images of the image, macroblocks, maximum coding unit (LCU), coding tree unit (CTU), coding unit (CU), sub-regions of CU, sub-coding unit (SubCU), prediction unit (PU), sub-regions of PU, sub-prediction unit (SubPU), transform unit (TU), sub-regions of TU, and sub-transform unit (SubTU).
[0122] The technical features of the present invention have been illustrated above through several specific examples. Those skilled in the art can easily understand other advantages and effects of the present invention from the content disclosed in this specification. The present invention can also be implemented or applied through other different specific embodiments, and various details in this specification can also be modified or changed based on different viewpoints and applications without departing from the spirit of the present invention. Attached Figure Description
[0123] Figure 1 This is a schematic diagram of the encoding method or apparatus of the present invention.
[0124] Figure 2 This is a schematic diagram of the decoding method or apparatus of the present invention. Implementation
[0125] The following are further implementation details or variations of the present invention.
[0126] Implementation or variant example 1
[0127] In the encoding method or apparatus or the decoding method or apparatus, the original data is image or video data. Each frame of the image or video is divided into an encoding block, and each encoding block is further divided into an encoding / decoding block. The element of the defined domain is one of the following: an encoding block or its number, or an encoding block or its number that meets a predetermined condition or has a predetermined feature, or an encoding / decoding block or its number that meets a predetermined condition or has a predetermined feature.
[0128] The domain is divided into multiple subdomains or first-level subdomains in one of the following ways:
[0129] Based on the boundary division of each coded block (i.e., one subdomain corresponds to one coded block), the elements of each subdomain or the first-level subdomain are one of the following:
[0130] The encoded block is divided into individual codec blocks or their numbers.
[0131] Or the encoded block is divided into each encoded block that meets predetermined conditions or has predetermined characteristics, or its number;
[0132] Alternatively, the boundaries can be divided according to groups of 2×1 coded blocks (i.e., one subdomain corresponds to 2×1 coded blocks), and the elements of each subdomain or the first-level subdomain are one of the following:
[0133] The two coded blocks or their numbers that make up the subdomain or the first-level subdomain
[0134] Or, all coded blocks or their numbers that constitute the subdomain or the first-level subdomain and satisfy predetermined conditions or have predetermined characteristics.
[0135] Or the 2×1 encoded blocks are divided into individual encoded / decoded blocks or their numbers.
[0136] Or, the 2×1 coded blocks are divided into coded blocks that meet predetermined conditions or have predetermined characteristics, or their numbers;
[0137] Alternatively, the boundaries can be divided according to groups of 1×2 coded blocks (i.e., one subdomain corresponds to 1×2 coded blocks), and the elements of each subdomain or the first-level subdomain are one of the following:
[0138] The two coded blocks or their numbers that make up the subdomain or the first-level subdomain
[0139] Or, all coded blocks or their numbers that constitute the subdomain or the first-level subdomain and satisfy predetermined conditions or have predetermined characteristics.
[0140] Or the 1×2 encoded blocks are divided into individual encoded / decoded blocks or their numbers.
[0141] Or, the 1×2 encoded blocks are divided into each encoded block that meets predetermined conditions or has predetermined characteristics, or their numbers;
[0142] Alternatively, the boundaries can be divided according to groups of 2×2 coded blocks (i.e., one subdomain corresponds to 2×2 coded blocks), and the elements of each subdomain or the first-level subdomain are one of the following:
[0143] The four coded blocks or their numbers that make up the subdomain or the first-level subdomain
[0144] Or, all coded blocks or their numbers that constitute the subdomain or the first-level subdomain and satisfy predetermined conditions or have predetermined characteristics.
[0145] Or the 2×2 encoded blocks are divided into individual encoded / decoded blocks or their numbers.
[0146] Or, the 2×2 encoded blocks are divided into each encoded block that meets predetermined conditions or has predetermined characteristics, or their numbers;
[0147] Or, similarly, according to the boundary division of a group of coded blocks consisting of S×T (S and T are usually predetermined constants between 1 and 10) coded blocks (i.e., one subdomain corresponds to S×T coded blocks), the elements of each subdomain or the first-level subdomain are one of the following:
[0148] The S×T coded blocks or their numbers that make up the subdomain or the first-level subdomain
[0149] Or, all coded blocks or their numbers that constitute the subdomain or the first-level subdomain and satisfy predetermined conditions or have predetermined characteristics.
[0150] Or, the S×T coded blocks are divided into all the code-decode blocks or their numbers.
[0151] Or, the S×T coded blocks are divided into all coded blocks or their numbers that meet predetermined conditions or have predetermined characteristics.
[0152] In the implementation or variation example 2, the encoding method or apparatus, or the decoding method or apparatus, the original data is image or video data. Each frame of the image or video is divided into an encoding block, each encoding block is further divided into an encoding / decoding block, and the encoding / decoding block is further divided into V primitives with relative sequence numbers v (1≤v≤V). (The types of primitives include: strings, lines, bars, microblocks, sub-regions of CU, sub-coding units SubCU, sub-regions of PU, sub-prediction units SubPU, sub-regions of TU, and sub-transform units SubTU; V is a constant or variable, V=1 indicates that there is only one primitive equivalent to the encoding / decoding block; the encoding / decoding block number and the relative sequence number of the primitive together constitute the sequence number of the primitive). The elements of the domain are one of the following:
[0153] A primitive or its serial number, or a primitive or its serial number that meets predetermined conditions or has predetermined characteristics (e.g., predetermining one or more types of primitives);
[0154] The domain is divided into multiple subdomains or first-level subdomains in one of the following ways:
[0155] Based on the boundary division of each coded block (i.e., one subdomain corresponds to one coded block), the elements of each subdomain or the first-level subdomain are one of the following:
[0156] Each primitive or its serial number within the coded block, or each primitive or its serial number within the coded block that meets predetermined conditions or has predetermined characteristics (e.g., predetermined one or more types of primitives);
[0157] Alternatively, the boundaries can be divided according to groups of 2×1 coded blocks (i.e., one subdomain corresponds to 2×1 coded blocks), and the elements of each subdomain or the first-level subdomain are one of the following:
[0158] Each primitive or its serial number within the 2×1 coded blocks, or each primitive or its serial number within the 2×1 coded blocks that meets predetermined conditions or has predetermined characteristics (e.g., predetermined one or more types of primitives);
[0159] Alternatively, the boundaries can be divided according to groups of 1×2 coded blocks (i.e., one subdomain corresponds to 1×2 coded blocks), and the elements of each subdomain or the first-level subdomain are one of the following:
[0160] Each primitive or its serial number within the 1×2 coded blocks, or each primitive or its serial number within the 1×2 coded blocks that meets predetermined conditions or has predetermined characteristics (e.g., predetermined one or more types of primitives);
[0161] Alternatively, the boundaries can be divided according to groups of 2×2 coded blocks (i.e., one subdomain corresponds to 2×2 coded blocks), and the elements of each subdomain or the first-level subdomain are one of the following:
[0162] Each primitive or its sequence number within the 2×2 coded blocks, or each primitive or its sequence number within the 2×2 coded blocks that meets predetermined conditions or has predetermined characteristics (e.g., predetermined one or more types of primitives);
[0163] Or, similarly, according to the boundary division of a group of coded blocks consisting of S×T (S and T are usually predetermined constants between 1 and 10) coded blocks (i.e., one subdomain corresponds to S×T coded blocks), the elements of each subdomain or the first-level subdomain are one of the following:
[0164] Each primitive or its serial number within the S×T coded blocks, or each primitive or its serial number within the S×T coded blocks that meets predetermined conditions or has predetermined characteristics (e.g., predetermined one or more types of primitives).
[0165] Implementation or variant example 3
[0166] In the encoding method or apparatus, or the decoding method or apparatus, the original data is image or video data. Each frame of the image or video is divided into encoding blocks, and each encoding block is further divided into encoding / decoding blocks. The value range of the dataset is a set of intra-frame luminance prediction modes R = {DC, Planar, Direction 1, Direction 2, ..., Direction M, Spread 1, Spread 2, ..., Spread N}, where M and N are constants between 30 and 130.
[0167] The elements of the defined domain are codec blocks using intra-frame coding mode or their numbers;
[0168] The defined domain is divided into multiple sub-defined domains or first-level sub-defined domains according to the boundaries of a group of S×T (S and T are usually predetermined constants between 1 and 10) coded blocks. Obviously, the elements of each sub-defined domain or first-level sub-defined domain are the code-decode blocks in the corresponding S×T coded blocks that adopt the intra-frame coding mode or their numbers.
[0169] Within the range of values R, at least two subranges R1 and R2 are specified:
[0170] R1 = a subrange that includes at least a portion of {direction 1, direction 2, ..., direction M}.
[0171] R2 = a subrange that includes at least a portion of {Extension 1, Extension 2, ..., Extension N};
[0172] The compressed data stream contains at least the elements that can be used to directly or indirectly, or a combination of both, represent or derive each subdomain (i.e., the codec blocks or their numbers within each corresponding S×T coded block using intra-frame coding mode). The values of the data corresponding to these elements are restricted to which subrange R? k Information within.
[0173] In the implementation or variation of Example 4, the encoding method or apparatus or the decoding method or apparatus,
[0174] The raw data is divided into raw data blocks (e.g., encoded blocks of image or video data). Each raw data block usually has a unique raw data block number. Each raw data block is further divided into raw data blocks (e.g., encoded / decoded blocks of encoded blocks of image or video data). Each raw data block usually has a unique raw data block number. The raw data block number usually consists of two parts: the raw data block number and the raw data block relative number.
[0175] The elements of the domain X are one of the following:
[0176] The original data block or its number, or the original data block or its number that meets the predetermined conditions or has the predetermined characteristics;
[0177] The defined domain is divided into M non-overlapping sub-domains or first-level sub-domains (i.e., one sub-domain corresponds to C original data blocks) according to the boundaries of the original data block groups consisting of C (C is usually a predetermined constant between 1 and 50): X1, X2, X3, ..., X M Clearly, the elements of each subdomain or first-level subdomain fall into one of the following categories:
[0178] Each original data block or its number within the corresponding C original data blocks, or each original data block or its number within the corresponding C original data blocks that satisfies the predetermined conditions or has the predetermined characteristics;
[0179] The elements of the dataset Y are a type of encoding parameter corresponding to the original data block or its number (Example 1: encoding mode associated encoding parameter of the encoding / decoding block, Example 2: prediction mode associated encoding parameter of the encoding / decoding block, Example 3: inter-component prediction mode associated encoding parameter of the encoding / decoding block, Example 4: inter-component color transformation mode associated encoding parameter of the encoding / decoding block, Example 5: inter-component prediction coefficient associated encoding parameter of the encoding / decoding block, Example 6: inter-component color transformation coefficient associated encoding parameter of the encoding / decoding block).
[0180] The range of values R is defined by I subranges R1, R2, R3, ..., R I ;
[0181] X m The values of the data y = f(x) corresponding to all elements x are restricted to the same value as X. m The corresponding subrange R with index (i.e., subrange index) is i(m) i(m) Within, that is, for any x ∈ X m y = f(x) ∈R i(m) ;
[0182] If y is the same as
[0183] With X m The original data blocks or their numbers in the corresponding C original data blocks
[0184] The corresponding encoding parameter is then
[0185] The range of values for y is R. i(m) Use with R i(m) Encode and decode y using a codeword set of appropriate size;
[0186] The compressed data bitstream contains at least information that can be used to directly or indirectly, or a combination of both, represent or derive the values of M subrange indices i(m). The information directly representing or deriving the values of subrange indices i(m) consists of one or more bit strings in the compressed data bitstream, for example, appearing as an identifier code or syntax element called ctu_subrange_index. The information indirectly representing or deriving the values of subrange indices i(m) is derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream, for example, from information related to X. m The information derived from the values of subrange indices of one or more subdomains that are spatially adjacent or closest in encoding / decoding order, and / or other encoding parameters and / or other encoding / decoding variables; the information that directly and indirectly represents or derives the value of subrange index i(m) is information that is partially directly (i.e. composed of one or more bit strings in the compressed data bitstream) and partially indirectly (i.e. derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream) representing or deriving the value of subrange index i(m).
[0187] Implementation or variant example 5
[0188] In the implementation or variation of Example 4, the encoding method or apparatus or the decoding method or apparatus, the original data is image or video data, the original data block is an encoding block, and the original data block is an encoding / decoding block; C is S×T (S and T are usually predetermined constants between 1 and 10).
[0189] Implementation or Variation Example 6: In the encoding method or apparatus or decoding method or apparatus described in Implementation or Variation Example 4,
[0190] The C is equal to N1 × C1 (e.g., N1 = C, C1 = 1), and the first-level subdomain X is defined as follows: m It is further divided into N1 second-level subdomains, each second-level subdomain X mn , where 1 ≤ n ≤ N1, corresponding to C1 original data blocks;
[0191] In each R i China further stipulates J i The next level (level 2) sub-range R i1 R i2 , ..., R ij , ..., R iJi ;
[0192] X mn The values of the data y=f(x) corresponding to all elements x are restricted to the same value as X. mn The corresponding 2D subscript (i.e., subrange index) is the subrange R of (i(m), j(m,n)). i(m)j(m,n) Within, that is, for any x ∈ X mn y = f(x)∈R i(m)j(m,n) ;
[0193] If y is the same as
[0194] With X mn The original data blocks or their numbers in the corresponding C1 original data blocks
[0195] The corresponding encoding parameter is then
[0196] The range of values for y is R. i(m)j(m,n) Use with R i(m)j(m,n) Encode and decode y using a codeword set of appropriate size;
[0197] The compressed data bitstream contains at least information that can be used to directly or indirectly, or a combination of both, represent or derive the values of M subrange index first components i(m) and M×N subrange index second components j(m,n). The information directly representing or deriving the values of the first and second subrange indexes consists of one or more bit strings in the compressed data bitstream. The information indirectly representing or deriving the values of the first and second subrange indexes is derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream, for example, from information related to X. mnInformation derived from the values of subrange indices of one or more subdomains that are spatially adjacent or closest in encoding / decoding order, and / or other encoding parameters and / or other encoding / decoding variables; the information that directly and indirectly represents or derives the values of the first and second components of the subrange index is information that is partially directly (i.e. composed of one or more bit strings in the compressed data bitstream) and partially indirectly (i.e. derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream) representing or deriving the values of the first and second components of the subrange index;
[0198] Similarly, operations are performed at the 3rd, 4th, ... levels to divide subdomains, define subranges, and restrict encoding and decoding operations on encoding parameters to a subrange of the value range.
[0199] Implementation or variant example 7
[0200] In the implementation or variation of Example 6, the encoding method or apparatus or the decoding method or apparatus, the original data is image or video data, the original data block is an encoding block, and the original data block is an encoding / decoding block; C is S×T (S and T are typically predetermined constants between 1 and 10); S is equal to U1×S1 (e.g., U1 = S, S1 = 1), T is equal to V1×T1 (e.g., V1 = T, T1 = 1), N1 is equal to U1×V1, and C1 is equal to S1×T1.
[0201] Implementation or variant example 8
[0202] In the encoding method or apparatus or the decoding method or apparatus, the original data is image or video data. Each frame of the image or video is divided into a coding tree unit (CTU). Each CTU is further divided into code-decoding blocks according to a recursive four-branch, three-branch, two-branch, or no-branch structure. The element of the defined domain is one of the following: a code-decoding block or its number, or a code-decoding block number consisting of a coding tree unit number and a relative code-decoding block number, or a code-decoding block or its number that meets a predetermined condition or has a predetermined characteristic, or a code-decoding block number consisting of a coding tree unit number and a relative code-decoding block number that meets a predetermined condition or has a predetermined characteristic.
[0203] A subdomain consists of codec blocks belonging to the same coding tree unit or their numbers;
[0204] The data used for encoding and decoding is from inter-coded frames (also called inter-coded images, which are frames or images that allow encoding and decoding of codec blocks using both inter-coding and intra-coding modes). Encoding of codec blocks modelIts range of values includes a subset or all of the following sets represented by enumeration:
[0205] {Intra-frame coding mode, inter-frame coding mode, string prediction coding mode, palette coding mode, intra-frame block matching coding mode}
[0206] A specific subrange A of the range of values is one of the following:
[0207] The specific subrange A is {intra-frame coding mode}
[0208] Or a specific subrange A is {intra-frame coding mode, string prediction coding mode}.
[0209] Or a specific subrange A is {intra-frame coding mode, palette coding mode}.
[0210] Or a specific subrange A is {intra-frame coding mode, intra-frame block matching coding mode}.
[0211] Or a specific subrange A is {intra-frame coding mode, string prediction coding mode, palette coding mode}.
[0212] Or a specific subrange A is {intra-frame coding mode, string prediction coding mode, intra-frame block matching coding mode}.
[0213] Or a specific subrange A is {intra-frame coding mode, palette coding mode, intra-frame block matching coding mode}.
[0214] Or a specific subrange A is {intra-frame coding mode, string prediction coding mode, palette coding mode, intra-frame block matching coding mode};
[0215] The compressed data stream contains at least information regarding whether the values of the encoding modes that can be used to directly or indirectly or in a mixed manner to represent or derive a code tree unit's code block are restricted to the specific subrange A.
[0216] In Implementation or Variation Example 9, in the encoding method or apparatus or decoding method or apparatus described in Implementation or Variation Example 8, the compressed data bitstream contains at least one encoding mode flag bit of an encoding tree unit, the flag bit restricting the value of the encoding mode of the encoding / decoding block of the encoding tree unit in the following manner:
[0217] If the flag bit is equal to a predetermined value (such as 1), then the value of the encoding mode of the encoding / decoding block of the encoding tree unit is restricted to the specific subrange A.
[0218] In Implementation or Variation Example 10, in the encoding method or apparatus or decoding method or apparatus described in Implementation or Variation Example 8, the specific subrange A is {intra-frame coding mode}, and the compressed data bitstream contains at least one coding mode flag bit of a coding tree unit, wherein the flag bit restricts the value of the coding mode of the coding tree unit in the following manner:
[0219] If the flag bit is equal to a predetermined value (such as 1), then all codec blocks within the coding tree unit adopt intra-frame coding mode.
[0220] Implementation or variant example 11
[0221] In the encoding method or apparatus or the decoding method or apparatus, the original data is image or video data. Each frame of the image or video is divided into a coding tree unit (CTU). Each CTU is further divided into code-decoding blocks according to a recursive four-branch, three-branch, two-branch, or no-branch structure. The element of the defined domain is one of the following: a code-decoding block or its number, or a code-decoding block number consisting of a coding tree unit number and a relative code-decoding block number, or a code-decoding block or its number that meets a predetermined condition or has a predetermined characteristic, or a code-decoding block number consisting of a coding tree unit number and a relative code-decoding block number that meets a predetermined condition or has a predetermined characteristic.
[0222] A subdomain consists of codec blocks belonging to the same coding tree unit or their numbers;
[0223] The data used for encoding and decoding is in inter-coded frames (also called inter-coded images, which are frames or images that allow encoding and decoding of codec blocks using both inter-coding and intra-coding modes). Coding tree luminance and chrominance A luminance-chrominance coding tree structure and coding mode that integrates the forking mode with the coding mode of the encoding / decoding block. Its range of values includes a subset or all of the following sets represented by enumeration:
[0224] { Various branching structures of intra-frame coding modes with a common, i.e., a single, coding tree for both luminance and chrominance,}
[0225] Intra-frame coding modes with various branching structures in their respective coding trees for luminance and chrominance.
[0226] Various branching structures of coding trees that use intra-frame coding modes and have a common, single trunk for both luma and chroma, but each has its own branching parts.
[0227] Various branching structures of coding trees that use intra-frame coding modes and have a common (i.e., a single, one- or multiple four-branched main trunk for both luma and chroma, but each branch also has its own one- or multiple two- or three-branched branches.
[0228] Inter-frame coding modes with a common, i.e., a single, coding tree for both luminance and chrominance, employing various branching structures.
[0229] Inter-frame coding modes with various branching structures in which luminance and chrominance each have their own coding trees.
[0230] Various branching structures of coding trees in inter-frame coding modes, where luma and chroma share a common, single trunk but each has its own branching parts.
[0231] Various branching structures of coding trees that use inter-frame coding modes and have a common (i.e., a single, one- or multiple-four-branched main trunk for both luma and chroma, but each branch also has its own one- or multiple-two- or three-branched branches.
[0232] }
[0233] A specific subrange A of the range of values is one of the following:
[0234] A specific subrange A is {various branch structures of intra-frame coding modes with a common, i.e., a single coding tree for both luma and chroma}.
[0235] Or a specific subrange A is {various branch structures of intra-frame coding modes where luma and chroma each have their own coding trees}.
[0236] Or a specific subrange A is {various branching structures of a coding tree with intra-frame coding modes where luma and chroma share a common, i.e., a single backbone but each has its own branching parts}.
[0237] Or a specific subrange A is {various branching structures of a coding tree with intra-frame coding mode and a common, i.e., a single, one or more quad-branching trunk for both luminance and chrominance, but each having its own one or more binary or tri-branching branches}.
[0238] The compressed data stream contains at least information on whether the values of the luminance and chrominance coding tree structure and coding mode, which can be used to directly or indirectly or in a mixture of direct and indirect representation or derivation of a coding tree unit, are restricted to the specific subrange A.
[0239] In Implementation or Variation Example 12, in the encoding method or apparatus or decoding method or apparatus described in Implementation or Variation Example 11, the compressed data bitstream contains at least one coding tree unit's luminance / chrominance coding tree structure and coding mode flag bit, wherein the flag bit restricts the values of the luminance / chrominance coding tree structure and coding mode of the coding tree unit in the following manner:
[0240] If the flag bit is equal to a predetermined value (such as 1), then the values of the luminance and chrominance coding tree structure and coding mode of the coding tree unit are restricted to the specific sub-range A.
[0241] Implementation or variant example 13
[0242] In the implementation or variation of Example 11, the encoding method or apparatus, or the decoding method or apparatus, the specific sub-range A is {various branch structures of intra-frame coding modes where luminance and chrominance each have their own coding trees, i.e., at least part of the luminance coding tree and chrominance coding tree are different}, and the compressed data bitstream contains at least one coding tree unit's luminance / chrominance coding tree structure and coding mode flag bit, wherein the flag bit restricts the values of the luminance / chrominance coding tree structure and coding mode of the coding tree unit in the following manner:
[0243] If the flag bit is equal to a predetermined value (e.g., a value of 1), then all codec blocks within the coding tree unit adopt intra-frame coding mode and at least a portion of the luminance coding tree and chrominance coding tree of the coding tree unit are different.
[0244] Implementation or variant example 14
[0245] In the encoding method or apparatus or the decoding method or apparatus, the original data is image or video data. Each frame of the image or video is divided into a coding tree unit (CTU). Each CTU is further divided into code-decoding blocks according to a recursive four-branch, three-branch, two-branch, or no-branch structure. The element of the defined domain is one of the following: a code-decoding block or its number, or a code-decoding block number consisting of a coding tree unit number and a relative code-decoding block number, or a code-decoding block or its number that meets a predetermined condition or has a predetermined characteristic, or a code-decoding block number consisting of a coding tree unit number and a relative code-decoding block number that meets a predetermined condition or has a predetermined characteristic.
[0246] A subdomain consists of codec blocks belonging to the same coding tree unit or their numbers;
[0247] The data used for encoding and decoding consists of multi-source motion vector prediction values for codec blocks in inter-frame coded images that employ inter-frame prediction mode. The range of these values includes a subset of the following sets or the union of all of them:
[0248] Set 1 = candidate motion vectors for Skip sub-patterns, Set 2 = candidate motion vectors for Merge sub-patterns, Set 3 = candidate motion vectors for recent historical sub-patterns, Set 4 = predefined default motion vector candidate set, Set 5 = set of regular motion vectors directly represented by (horizontal component, vertical component);
[0249] The compressed data stream contains at least information about whether the values of multi-source motion vector predictions that can be used to directly or indirectly or in a mixture of direct and indirect representation or derivation of a coding tree unit are restricted to a specific subrange.
[0250] In the encoding method or apparatus or decoding method or apparatus described in Implementation or Variation 15, the original data is image or video data, each frame of the image or video is divided into a coding tree unit (CTU), and each CTU is further divided into encoding / decoding blocks according to one or more recursive quad-branching, tri-branching, binary-branching, or no-branching structures, wherein the elements of the defined domain are one of the following:
[0251] The codec block or its number, or the codec block number consisting of a coding tree unit number and a codec block relative number, or the codec block or its number that meets a predetermined condition or has a predetermined feature, or the codec block number consisting of a coding tree unit number and a codec block relative number that meets a predetermined condition or has a predetermined feature;
[0252] A subdomain consists of code-decode blocks or their numbers belonging to the same C coding tree units, where C is a predetermined constant between 1 and 50;
[0253] The data used for encoding and decoding is the index (also called address, index, etc.) of the MergeCandidateList of motion vector prediction values of the codec blocks using inter-frame prediction mode in the inter-frame coded image. Its value ranges from 0 to MaxMergeIndex-1, that is, MergeIndex satisfies 0 ≤ MergeIndex < MaxMergeIndex, where MaxMergeIndex is a predetermined constant.
[0254] The range of values corresponding to a subdomain is an integer from 0 to ctuMaxMergeIndex-1, i.e., MergeIndex satisfies 0 ≤ MergeIndex < ctuMaxMergeIndex, where ctuMaxMergeIndex is an integer less than or equal to MaxMergeIndex. Different subdomains are allowed to have different ctuMaxMergeIndex.
[0255] The compressed data stream contains at least one or a combination of the following information:
[0256] 1) Information that can be used to directly or indirectly, or a combination of both, represent or derive the value of C.
[0257] 2) Information that can be used to directly or indirectly, or a combination of both, represent or derive the value of MaxMergeIndex.
[0258] 3) Information that can be used to directly or indirectly or in a mixed manner to represent or derive the value of the corresponding ctuMaxMergeIndex for each C coding tree unit.
[0259] In the encoding method or apparatus or decoding method or apparatus described in Implementation or Variation 16, the original data is image or video data. Each frame of the image or video is divided into stripes or stripe groups or patch groups or patch blocks or bricks or brick groups or coding tree units or coding tree unit groups or maximum coding units or maximum coding unit groups, collectively referred to as coding blocks. Each coding block consists of one or more coding tree units. Each coding tree unit is further divided into encoding / decoding blocks according to a first one or more recursive four-branch or no-branch structure followed by a first one or more recursive three-branch or two-branch or no-branch structure. The elements of the defined domain are one of the following:
[0260] The codec block or its number, or the codec block number consisting of a coding tree unit number and a codec block relative number, or the codec block or its number that meets a predetermined condition or has a predetermined feature, or the codec block number consisting of a coding tree unit number and a codec block relative number that meets a predetermined condition or has a predetermined feature;
[0261] A subdomain consists of codec blocks belonging to the same coded block or their numbers;
[0262] The data used for encoding and decoding is the size of the partition resulting from the coding tree unit being divided according to a recursive four-branch structure, or its equivalent base-2 logarithm, partSizeInBit, where the value of partSizeInBit ranges from...
[0263] The base-2 logarithm of the minimum size of the codec block, MinCuSizeInBit
[0264] to
[0265] The base-2 logarithm of the size of a coding tree unit, CtuSizeInBit
[0266] Integers between, or a subset of, or a group of integers,
[0267] That is, partSizeInBit satisfies
[0268] MinCuSizeInBit ≤ partSizeInBit ≤ CtuSizeInBit
[0269] The integers or a subset of integers thereof, where MinCuSizeInBit and CtuSizeInBit are two predetermined constants in an image or video being encoded or decoded;
[0270] The sub-range of values corresponding to a subdomain is the range of values in the corresponding encoded block from...
[0271] The smallest size of the code-decode block resulting from a code tree unit being partitioned according to a four-branch structure with one or more recursive steps, or its equivalent base-2 logarithm crMinQtSizeInBit.
[0272] to
[0273] The base-2 logarithm of the size of a coding tree unit, CtuSizeInBit
[0274] The integer between these two values, i.e., partSizeInBit, satisfies the following conditions.
[0275] crMinQtSizeInBit ≤ partSizeInBit ≤ CtuSizeInBit,
[0276] Where crMinQtSizeInBit is an integer equal to or greater than MinCuSizeInBit, and different subdomains are allowed to have different crMinQtSizeInBit.
[0277] Implementation or variant example 17
[0278] In the implementation or variation of Example 16, the encoding method or apparatus or the decoding method or apparatus, the compressed data bitstream contains at least information that can be used to directly or indirectly or in a mixture of direct and indirect representation or derivation of the value of crMinQtSizeInBit;
[0279] The information directly represented or derived consists of one or more bit strings in the compressed data bitstream; the information indirectly represented or derived is information derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream; the information represented or derived in a mixed manner of direct (i.e., consisting of one or more bit strings in the compressed data bitstream) and partially indirect (i.e., derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream) is information represented or derived in a mixed manner of direct (i.e., consisting of one or more bit strings in the compressed data bitstream) and indirect (i.e., derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream).
[0280] Implementation or variant example 18
[0281] In the implementation or variation of Example 17, the encoding method or apparatus, or decoding method or apparatus, wherein the information directly representing or deriving the value of crMinQtSizeInBit is present in the following format in the encoded block header information. bold italics Syntax elements represented:
[0282] The minimum four-branch partition size of the encoding interval minus the minimum size of the encoding / decoding block, cr_MinQtSizeInBit_ minus_MinCuSizeInBit
[0283] from cr_MinQtSizeInBit_minus_MinCuSizeInBitThe values of cr_MinQtSizeInBit and cr_minus_MinCuSizeInBit are calculated as follows: The minimum size of the codec block cr_MinQtSize is determined by dividing the code tree unit into four branches according to one or more recursive steps.
[0284] crMinQtSizeInBit = MinCuSizeInBit + cr_MinQtSizeInBit_minus_MinCuSizeInBit
[0285] crMinQtSize = (1 << crMinQtSizeInBit), where << is a binary bit left shift operation.
[0286] In the encoding method or apparatus or decoding method or apparatus described in Implementation or Variation Example 16, at least when partSizeInBit is greater than crMinQtSizeInBit, the compressed data bitstream contains at least information that can be used to directly or indirectly or in a mixture of direct and indirect representations or derivations of whether to perform the next quad-branch structure partitioning.
[0287] The information directly represented or derived consists of one or more bit strings in the compressed data bitstream; the information indirectly represented or derived is information derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream; the information represented or derived in a mixed manner of direct (i.e., consisting of one or more bit strings in the compressed data bitstream) and partially indirect (i.e., derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream) is information represented or derived in a mixed manner of direct (i.e., consisting of one or more bit strings in the compressed data bitstream) and indirect (i.e., derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream).
[0288] Implementation or variant example 20
[0289] In the implementation or variation of Example 19, the encoding method or apparatus, or decoding method or apparatus, wherein the information directly representing or deriving whether to perform the next quadrilateral structure partitioning is as follows: bold italics Syntax elements represented:
[0290] The four-branching flag is qt_split_flag
[0291] qt_split_flag A value of '1' for qt_split_flag indicates that the next quad-branch structure split will be performed. qt_ split_flag A value of '0' for qt_split_flag indicates the termination of the four-fork structure partitioning.
[0292] Implementation or Variation 21 (a combination of Implementations or Variations 16-20) In the encoding method or apparatus or decoding method or apparatus, the original data is image or video data. Each frame of the image or video is divided into stripes or stripe groups or patch groups or patch blocks or bricks or brick groups or coding tree units or coding tree unit groups or maximum coding units or maximum coding unit groups, collectively referred to as coding blocks. Each coding block consists of one or more coding tree units. Each coding tree unit is further divided into encoding / decoding blocks according to a first one or more recursive four-branch or no-branch structure followed by a first one or more recursive three-branch or two-branch or no-branch structure. The elements of the defined domain are one of the following:
[0293] The codec block or its number, or the codec block number consisting of a coding tree unit number and a codec block relative number, or the codec block or its number that meets a predetermined condition or has a predetermined feature, or the codec block number consisting of a coding tree unit number and a codec block relative number that meets a predetermined condition or has a predetermined feature;
[0294] A subdomain consists of codec blocks belonging to the same coded block or their numbers;
[0295] The data used for encoding and decoding is the size of the partition resulting from the coding tree unit being divided according to a recursive four-branch structure, or its equivalent base-2 logarithm, partSizeInBit, where the value of partSizeInBit ranges from...
[0296] The base-2 logarithm of the minimum size of the codec block, MinCuSizeInBit
[0297] to
[0298] The base-2 logarithm of the size of a coding tree unit, CtuSizeInBit
[0299] Integers between, or a subset of, or a group of integers,
[0300] That is, partSizeInBit satisfies
[0301] MinCuSizeInBit ≤ partSizeInBit ≤ CtuSizeInBit
[0302] The integers or a subset of integers thereof, where MinCuSizeInBit and CtuSizeInBit are two predetermined constants in an image or video being encoded or decoded;
[0303] The sub-range of values corresponding to a subdomain is the range of values in the corresponding encoded block from...
[0304] The smallest size of the code-decode block resulting from a code tree unit being partitioned according to a four-branch structure with one or more recursive steps, or its equivalent base-2 logarithm crMinQtSizeInBit.
[0305] to
[0306] The base-2 logarithm of the size of a coding tree unit, CtuSizeInBit
[0307] The integer between these two values, i.e., partSizeInBit, satisfies the following conditions.
[0308] crMinQtSizeInBit ≤ partSizeInBit ≤ CtuSizeInBit,
[0309] Where crMinQtSizeInBit is an integer equal to or greater than MinCuSizeInBit, and different subdomains are allowed to have different crMinQtSizeInBit;
[0310] The compressed data stream contains at least information that can be used to directly or indirectly, or a combination of both, represent or derive the value of crMinQtSizeInBit;
[0311] The information directly represented or derived consists of one or more bit strings in the compressed data bitstream; the information indirectly represented or derived is derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream; the information represented or derived in a mixed manner of direct (i.e., consisting of one or more bit strings in the compressed data bitstream) and partially indirect (i.e., derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream) is information represented or derived in a mixed manner of direct (i.e., consisting of one or more bit strings in the compressed data bitstream) and indirect (i.e., derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream).
[0312] The information that directly represents or derives the value of crMinQtSizeInBit is present in the following code block header information. bold italics Syntax elements represented:
[0313] The minimum four-branch partition size of the encoding interval minus the minimum size of the encoding / decoding block, cr_MinQtSizeInBit_ minus_MinCuSizeInBit
[0314] from cr_MinQtSizeInBit_minus_MinCuSizeInBit The values of cr_MinQtSizeInBit and cr_minus_MinCuSizeInBit are calculated as follows: The minimum size of the codec block cr_MinQtSize is determined by dividing the code tree unit into four branches according to one or more recursive steps.
[0315] crMinQtSizeInBit = MinCuSizeInBit + cr_MinQtSizeInBit_minus_MinCuSizeInBit
[0316] crMinQtSize = (1 << crMinQtSizeInBit), where << is a binary bit left shift operation.
[0317] At least when partSizeInBit is greater than crMinQtSizeInBit, the compressed data bitstream contains information that can be used to directly or indirectly or in a mixture of direct and indirect means to indicate or derive whether to proceed with the next quad-fork structure partitioning.
[0318] The information directly represented or derived consists of one or more bit strings in the compressed data bitstream; the information indirectly represented or derived is derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream; the information represented or derived in a mixed manner of direct (i.e., consisting of one or more bit strings in the compressed data bitstream) and partially indirect (i.e., derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream) is information represented or derived in a mixed manner of direct (i.e., consisting of one or more bit strings in the compressed data bitstream) and indirect (i.e., derived from other encoding parameters and / or encoding / decoding variables and / or other syntax elements of the compressed data bitstream).
[0319] The information that directly indicates or derives whether to perform the next quadrilateral structure partitioning is as follows: bold italics Syntax elements represented:
[0320] The four-branching flag is qt_split_flag
[0321] qt_split_flag A value of '1' for qt_split_flag indicates that the next quad-branch structure split will be performed. qt_ split_flag A value of '0' for qt_split_flag indicates the termination of the four-fork structure partitioning.
[0322] In the encoding method or apparatus or decoding method or apparatus described in Implementation or Variation 22, the original data is image or video data. Each frame of the image or video is divided into stripes or stripe groups or patch groups or patch blocks or bricks or brick groups, or coding tree units or coding tree unit groups or maximum coding units or maximum coding unit groups, collectively referred to as coding blocks. Each coding block consists of one or more coding tree units, and each coding tree unit is further divided into encoding / decoding blocks. The elements of the defined domain are one of the following:
[0323] The codec block or its number, or the codec block number consisting of a coding tree unit number and a codec block relative number, or the codec block or its number that meets a predetermined condition or has a predetermined feature, or the codec block number consisting of a coding tree unit number and a codec block relative number that meets a predetermined condition or has a predetermined feature;
[0324] A subdomain consists of codec blocks belonging to the same coded block or their numbers;
[0325] The data used as the encoding / decoding object is the offset of the motion vector difference (mvd) of the codec block with motion vector (mv) in merge mode, measured in quarter-pixels, half-pixels, or whole pixels, and its value range is R={2}. i : i=0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
[0326] The subdomain corresponding to a subdomain is R0 = {2} i : i=0, 1, 2, 3, 4, 5, 6, 7} or R1={2 i For example, i = 2, 3, 4, 5, 6, 7, 8, 9}, different subdomains are allowed to have different ranges of values;
[0327] The header information of the encoded block of the compressed data stream contains the following... bold italics The subrange to which the values of the data corresponding to the elements of the coded block represented by the syntax elements are restricted is:
[0328] The offset flag for the merge motion vector difference in the encoded block is cr_merge_mvd_offset_flag.
[0329] cr_merge_mvd_offset_flag A value of 'cr_merge_mvd_offset_flag' of '1' indicates that the sub-range of values for the data corresponding to the elements of the encoded block is R1; a value of 'cr_merge_mvd_offset_flag' of '0' indicates that the sub-range of values for the data corresponding to the elements of the encoded block is R0.
[0330] In the encoding method or apparatus or decoding method or apparatus described in Implementation or Variation 23, the original data is image or video data. Each frame of the image or video is divided into stripes or stripe groups or patch groups or patch blocks or bricks or brick groups, or coding tree units or coding tree unit groups or maximum coding units or maximum coding unit groups, collectively referred to as coding blocks. Each coding block consists of one or more coding tree units, and each coding tree unit is further divided into encoding / decoding blocks. The elements of the defined domain are one of the following:
[0331] The codec block or its number, or the codec block number consisting of a coding tree unit number and a codec block relative number, or the codec block or its number that meets a predetermined condition or has a predetermined feature, or the codec block number consisting of a coding tree unit number and a codec block relative number that meets a predetermined condition or has a predetermined feature;
[0332] A subdomain consists of codec blocks belonging to the same coded block or their numbers;
[0333] The data used for encoding and decoding is the interpolation weights used to calculate the predicted values of intra-frame prediction, and its value range is R={k: 0 ≤ k ≤ 31};
[0334] The subdomain corresponding to a subdomain is R0={k: k=0} or R1=R. Different subdomains are allowed to have different subdomains.
[0335] The header information of the encoded block of the compressed data stream contains the following... bold italics The subrange to which the values of the data corresponding to the elements of the coded block represented by the syntax elements are restricted is:
[0336] Intra-pred interpolation flag for coded blocks (cr_intra_pred_interpolation_flag)
[0337] cr_intra_pred_interpolation_flag A value of 'cr_intra_pred_interpolation_flag' of '1' indicates that the sub-range of values for the data corresponding to the elements of the encoded block is R1, meaning that interpolation is actually performed; a value of 'cr_intra_pred_interpolation_flag' of '0' indicates that the sub-range of values for the data corresponding to the elements of the encoded block is R0, meaning that interpolation is not actually performed.
[0338] In the encoding method or apparatus or decoding method or apparatus described in Implementation or Variation 24, the original data is image or video data. Each frame of the image or video is divided into stripes or stripe groups or patch groups or patch blocks or bricks or brick groups or coding tree units or coding tree unit groups or maximum coding units or maximum coding unit groups, collectively referred to as coding blocks. Each coding block consists of one or more coding tree units, and each coding tree unit is further divided into encoding / decoding blocks. The elements of the defined domain are one of the following:
[0339] The codec block or its number, or the codec block number consisting of a coding tree unit number and a codec block relative number, or the codec block or its number that meets a predetermined condition or has a predetermined feature, or the codec block number consisting of a coding tree unit number and a codec block relative number that meets a predetermined condition or has a predetermined feature;
[0340] A subdomain consists of codec blocks belonging to the same coded block or their numbers;
[0341] The data used for encoding and decoding is the chroma residual component transformation coefficient, which is the coefficient used when one component of the chroma residual is transformed into another component. Its value range is R={1, -1}.
[0342] The subdomain corresponding to a subdomain is R0={1} or R1={-1}, and different subdomains are allowed to have different subdomains.
[0343] The header information of the encoded block of the compressed data stream contains the following... bold italics The subrange to which the values of the data corresponding to the elements of the coded block represented by the syntax elements are restricted is:
[0344] The chroma residual component transform coefficient flag for the encoded block is cr_chroma_resi_comp_trans_coeff_flag.
[0345] cr_chroma_resi_comp_trans_coeff_flag The value of cr_chroma_resi_comp_trans_coeff_flag being '0' indicates that the sub-range of values for the data corresponding to the elements of the coded block is R0, i.e., the chroma residual component transformation coefficient is 1; the value of cr_chroma_resi_comp_trans_coeff_flag being '1' indicates that the sub-range of values for the data corresponding to the elements of the coded block is R1, i.e., the chroma residual component transformation coefficient is -1.
[0346] In the encoding method or apparatus or decoding method or apparatus described in Implementation or Variation Example 25, the original data is image or video data. Each frame of the image or video is divided into stripes or stripe groups or patch groups or patch blocks or bricks or brick groups, or coding tree units or coding tree unit groups or maximum coding units or maximum coding unit groups, collectively referred to as coding blocks. Each coding block consists of one or more coding tree units, and each coding tree unit is further divided into encoding / decoding blocks. The elements of the defined domain are one of the following:
[0347] The codec block or its number, or the codec block number consisting of a coding tree unit number and a codec block relative number, or the codec block or its number that meets a predetermined condition or has a predetermined feature, or the codec block number consisting of a coding tree unit number and a codec block relative number that meets a predetermined condition or has a predetermined feature;
[0348] A subdomain consists of codec blocks belonging to the same coded block or their numbers;
[0349] The data used for encoding and decoding is a component swapping mode after a predetermined inverse chromaticity residual component transformation, and its value range is R={no Cb-Cr swapping after inverse chromaticity residual component transformation, and Cb-Cr swapping after inverse chromaticity residual component transformation}.
[0350] The subdomain corresponding to a subdomain is R0 = {Cb-Cr not interchanged after inverse transformation of chromaticity residual} or R1 = {Cb-Cr interchanged after inverse transformation of chromaticity residual}. Different subdomains are allowed to have different subdomains.
[0351] The header information of the encoded block of the compressed data stream contains the following... bold italics The subrange to which the values of the data corresponding to the elements of the coded block represented by the syntax elements are restricted is:
[0352] The swap flag after the inverse component transformation of the chroma residual of the encoded block is cr_chroma_resi_post-inv-comp- tran_exchange_flag
[0353] cr_chroma_resi_post-inv-comp-tran_exchange_flag The value of cr_chroma_resi_post-inv-comp-tran_exchange_flag being '0' indicates that the sub-range of the data corresponding to the element of the coded block is R0, meaning that Cb-Cr are not interchanged after the inverse component transformation of the chroma residual; the value of cr_chroma_resi_post-inv-comp-tran_exchange_flag being '1' indicates that the sub-range of the data corresponding to the element of the coded block is R1, meaning that Cb-Cr are interchanged after the inverse component transformation of the chroma residual.
Claims
1. A coding method for compressing a sequence of images, characterized in that... It should include at least the following steps: 1) The encoding object is the offset of the motion vector difference mvd of the encoded block with motion vector mv in merge mode during image sequence encoding, in units of a quarter pixel, half pixel, or whole pixel. Its value range is R={2i: i=0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 2) For the encoded blocks in the image sequence, where the encoded block is a region of the image, when encoding, the range of values for merge_mvd_offset within the encoded block is specified to be either a subrange R0={2i: i=0, 1, 2, 3, 4, 5, 6, 7} or another subrange R1={2i: i=2, 3, 4, 5, 6, 7, 8, 9}, allowing each encoded block to have its own subrange. 3) The header information of the encoded block in the compressed data bitstream contains the following syntax elements to indicate or derive which sub-range of values the value of merge_mvd_offset within the encoded block is restricted to: The offset flag for merging motion vector differences in the encoded block header; The value of the merge motion vector difference offset flag in the encoding block header is '1', indicating that the sub-range of the merge_mvd_offset value of the encoding block is R1; the value of the merge motion vector difference offset flag in the encoding block header is '0', indicating that the sub-range of the merge_mvd_offset value of the encoding block is R0.
2. An encoding apparatus for compressing a sequence of images, characterized in that... It should include at least the following modules: 1) The encoding object is the offset of the motion vector difference mvd of the encoded block with motion vector mv in merge mode during image sequence encoding, in units of a quarter pixel, half pixel, or whole pixel. Its value range is R={2i: i=0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 2) For the encoded blocks in the image sequence, where the encoded block is a region of the image, when encoding, the range of values for merge_mvd_offset within the encoded block is specified to be either a subrange R0={2i: i=0, 1, 2, 3, 4, 5, 6, 7} or another subrange R1={2i: i=2, 3, 4, 5, 6, 7, 8, 9}, allowing each encoded block to have its own subrange. 3) The header information of the encoded block in the compressed data bitstream contains the following syntax elements to indicate or derive which sub-range of values the value of merge_mvd_offset within the encoded block is restricted to: The offset flag for merging motion vector differences in the encoded block header; The value of the merge motion vector difference offset flag in the encoding block header is '1', indicating that the sub-range of the merge_mvd_offset value of the encoding block is R1; the value of the merge motion vector difference offset flag in the encoding block header is '0', indicating that the sub-range of the merge_mvd_offset value of the encoding block is R0.
3. A decoding method for compressing a sequence of images, characterized in that... It should include at least the following steps: 1) The decoding object is the offset of the motion vector difference mvd of the decoded block with motion vector mv during image sequence decoding in merge mode, in units of a quarter pixel, a half pixel, or an integer pixel. Its value range is R={2i: i=0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. 2) For the coded blocks in the image sequence, where the coded block is a region of the image, during decoding, the range of values for merge_mvd_offset within the coded block is specified to be either a subrange R0={2i: i=0, 1, 2, 3, 4, 5, 6, 7} or another subrange R1={2i: i=2, 3, 4, 5, 6, 7, 8, 9}, allowing each coded block to have its own subrange. 3) The header information of the encoded block in the compressed data bitstream contains the following syntax elements to indicate or derive which sub-range of values the value of merge_mvd_offset within the encoded block is restricted to: The offset flag for merging motion vector differences in the encoded block header; The value of the merge motion vector difference offset flag in the encoding block header is '1', indicating that the sub-range of the merge_mvd_offset value of the encoding block is R1; the value of the merge motion vector difference offset flag in the encoding block header is '0', indicating that the sub-range of the merge_mvd_offset value of the encoding block is R0.
4. A decoding apparatus for compressing a sequence of images, characterized in that... It should include at least the following modules: 1) The decoding object is the offset of the motion vector difference mvd of the decoded block with motion vector mv during image sequence decoding in merge mode, in units of a quarter pixel, a half pixel, or an integer pixel. Its value range is R={2i: i=0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. 2) For the coded blocks in the image sequence, where the coded block is a region of the image, during decoding, the range of values for merge_mvd_offset within the coded block is specified to be either a subrange R0={2i: i=0, 1, 2, 3, 4, 5, 6, 7} or another subrange R1={2i: i=2, 3, 4, 5, 6, 7, 8, 9}, allowing each coded block to have its own subrange. 3) The header information of the encoded block in the compressed data bitstream contains the following syntax elements to indicate or derive which sub-range of values the value of merge_mvd_offset within the encoded block is restricted to: The offset flag for merging motion vector differences in the encoded block header; The value of the merge motion vector difference offset flag in the encoding block header is '1', indicating that the sub-range of the merge_mvd_offset value of the encoding block is R1; the value of the merge motion vector difference offset flag in the encoding block header is '0', indicating that the sub-range of the merge_mvd_offset value of the encoding block is R0.
Citation Information
Patent Citations
Encoding and decoding for interlaced scanning video
CN101848386A