CN112532990A - String length parameter coding and decoding methods and devices - Google Patents

String length parameter coding and decoding methods and devices Download PDF

Info

Publication number
CN112532990A
CN112532990A CN202011324094.XA CN202011324094A CN112532990A CN 112532990 A CN112532990 A CN 112532990A CN 202011324094 A CN202011324094 A CN 202011324094A CN 112532990 A CN112532990 A CN 112532990A
Authority
CN
China
Prior art keywords
code
string
length
nrp
remaining number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011324094.XA
Other languages
Chinese (zh)
Other versions
CN112532990B (en
Inventor
赵利平
林涛
周青阳
周开伦
焦孟草
胡珂立
沈士根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Shaoxing
Original Assignee
University of Shaoxing
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Shaoxing filed Critical University of Shaoxing
Priority to CN202011324094.XA priority Critical patent/CN112532990B/en
Publication of CN112532990A publication Critical patent/CN112532990A/en
Application granted granted Critical
Publication of CN112532990B publication Critical patent/CN112532990B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The invention discloses a string length parameter coding and decoding method and device. The invention adopts the next surplus number as the string length parameter to write in the compressed data code stream, thereby further improving the compression ratio. According to the current common coding mode with strings as elements, the value of the next residual number is usually smaller than the value of the length of the strings, thereby reducing the consumption of compressed data code streams. The preferred scheme has a more significant effect of increasing the compression rate when the data of the string is smaller than 1/4, which is the size of the current block.

Description

String length parameter coding and decoding methods and devices
Technical Field
The invention belongs to the field of data compression, and particularly relates to a method and a device for encoding and decoding string length parameters.
Background
With the human society entering the era of artificial intelligence, big data, virtual reality, augmented reality, mixed reality, cloud computing, mobile computing, cloud-mobile computing, ultra-high definition 4K and ultra-high definition 8K video image resolution, and 4G/5G communication, various data sets, including big data, image data, video data, and various new forms of data, have become major consumers of internet bandwidth, and performing ultra-high compression ratio and extremely high quality data compression on the data sets becomes an indispensable technology.
A dataset is a collection of finite data (e.g., a sequence of one-dimensional data queue, a two-dimensional data file, a frame of image, a video sequence, a transform domain, a transform block, a plurality of transform blocks, a three-dimensional scene, a continuously changing three-dimensional scene) that is composed of samples, also called elements, of data (e.g., bytes, bits, pixels, pixel components, spatial sampling points, transform domain coefficients) arranged in a spatial (one-, two-, or multi-dimensional) shape. When encoding (and corresponding decoding) data compression of a data set, in particular a two-dimensional or more data set, the data set is usually divided into a number of subsets having a predetermined shape, called coding blocks (i.e. decoding blocks from the decoding point of view, collectively called coding blocks or decoding blocks), which are encoded or decoded in units of coding blocks or decoding blocks, in a predetermined time sequence. At any one time, the coding block being coded is referred to as the current coding block. At any one time, the decoding block being decoded is referred to as the current decoding block. The current encoding block or current decoding block is collectively referred to as the current encoding block or decoding block or simply the current block. The sample being encoded or decoded is referred to as the current encoded sample or the current decoded sample, and is also referred to as the current element for short.
For a coded block or a decoded block having a certain shape, it is necessary in many cases to divide it into finer cells (basic units), and one cell is coded or decoded one cell by one cell in a predetermined time order. The same type of encoding or decoding operation is typically performed for all samples within a primitive. At any one time, the primitive being encoded or decoded is referred to as the current primitive. The result of encoding a primitive is one or more encoding parameters, and finally a compressed data stream containing the encoding parameters is generated. Decoding a primitive is parsing the compressed data stream to obtain one or more encoding parameters, and recovering reconstructed data samples from the one or more encoding parameters. Examples of primitives include an encoding block or a decoding block (the entire block being one primitive), a sub-block, a micro-block, a string of bytes, an alpha string, a string of pixel units, a string of pixels, a string of samples, an index string, a line.
The size of a coded block or a decoded block is the number of elements or equivalent pixels contained in the coded block or decoded block. For example, in the case where one element has 4x1 pixels, the size of a coded or decoded block having 32x32 pixels, i.e., 8x32 elements, is 1024 pixels, i.e., 256 elements.
Typical representatives of the Coding modes using strings as primitives include the latest international Video Standard vvc (vertical Video Coding) Standard and the Palette (PLT) mode and string matching (also called string prediction or intra-frame string replication, ISC) mode in the AVS3(the third generation of Audio Coding Standard) Standard and previous edition standards in our country.
In the PLT mode, a Palette is used to store the representative color of the current CU or the nearest CU, also called the main color. For an input CU, the color palettes are obtained by the color palette generation method for the pixels in the CU, then the main color in each color palette is represented by an index, and finally the pixels in the CU are mapped to the index corresponding to the main color. The PLT mode represents pixels of the entire CU with a main color, a non-main color, and an index table in the palette, and thus requires encoding of the main color, the non-main color, and the index table. The coding of the index table adopts a certain scanning sequence, two index copy modes, namely a copy left mode and a copy upper mode, are used for entropy coding of the index copy mode and the length (length), and the code stream is written. The non-dominant color directly transfers the pixel value itself.
The ISC mode, like the PLT mode, is a string-based mode in which a sample, also called an element (e.g., a pixel unit or a pixel), is the smallest copy unit, and the elements, in a predetermined scan order, if, in a given reference pixlet, an optimal reference sample (e.g., a pixel unit or a pixel) string can be found in the reference pixlet, a relationship parameter displacement vector and a length (length) are copied by the sample (e.g., the pixel unit or the pixel) string to represent a positional relationship between the reference sample string (referred to as a reference string for short) and a current sample string to be encoded (also referred to as a current string for short) and a length of the reference string, respectively, otherwise, a current incomplete matching sample (e.g., an incomplete matching pixel unit, which is a pixel unit having at least one unmatched pixel or component or index from its mxn pixels or components or indices in which the reference sample cannot be found) is encoded. Typically, the displacement vector is equal to the reference string start position minus the current string start position.
Taking an example of a coding block or decoding block with a size of 32x32 pixels (the size of the coding block or decoding block is 1024 pixels), the coding block or decoding block is divided into n pixel unit strings (such as a pixel unit string in an ISC mode, each pixel unit consists of 4x1 pixels, the coding block or decoding block consists of 256 pixel units, that is, the size of the coding block or decoding block is 256 elements) and/or m incomplete matching pixel units, and the length values of the n strings are sequentially length h1、length2、......lengthn(wherein,
Figure BDA0002793789300000021
and is
Figure BDA0002793789300000022
) Forming a string-length sequence. Because there is some inherent regularity and correlation in the sequence of the string length: taking pixel strings as an example, the probability of a string having a string length equal to the size of the entire coding block is relatively high, and the sum of all string lengths and the number of unmatched pixels is equal to the size of the coding block. Therefore, there is redundancy in the sequence of the string length, and the string length sequence direct encoding or decoding scheme does not remove this redundancy, losing the encoding efficiency.
Disclosure of Invention
The invention provides a string length parameter encoding and decoding method and device aiming at overcoming the defects or improvement requirements in the prior art, and aims to write the next residual number into a compressed data code stream as a string length parameter so as to further improve the compression ratio, thereby solving the technical problem that the compression ratio is still to be improved when the string length is directly used as the string length parameter.
To achieve the above object, according to one aspect of the present invention, there is provided a string length parameter coding method or apparatus, which includes at least steps or modules for performing the following functions and operations:
(1) according to at least the current block size cuSize and the current string lengthiAnd the sum of the lengths of the currently encoded elements, currtlen, the next remaining number nrp is calculatediAs a string length parameter for the current string;
the next remaining number nrpiThe number of remaining elements in the current block after encoding the current string;
(2) and at least writing information representing the string length parameter value into a compressed data code stream.
According to another aspect of the present invention, there is provided a string length parameter decoding method including at least the steps of:
(A) analyzing the compressed data code stream in the current block, and at least obtaining the information containing the string length parameter value of the current string; the string length parameter is the next remaining number nrpi
The next remaining number nrpiThe number of elements remaining in the current block after decoding the current string;
(B) obtaining a current string length h according to a predetermined string length calculation mode at least according to the current block size cuSize, the sum curTlen of the number of elements decoded currently, and the next remaining numberi
Preferably, in the string length parameter decoding method, the current string length is obtained according to a predetermined string length calculation modeiThe method specifically comprises the following steps:
current string lengthiThe calculation is as follows:
lengthi=cuSize-curTlen-nrpi
or
lengthi=Ri-nrpi
Wherein R isiIs the number of the current remaining elements; preferably the current number R of remaining elementsiCalculating the number R of the current remaining elements in the current block for the difference between the current block size cuSize and the sum of the currently decoded element lengths currTleniThe following were used:
Ri=cuSize-curTlen
preferably, the next remaining number is in the range of [0, Ri-1]。
Preferably, the string length parameter decoding method is performed when R isiWhen 1, nrpiThe value is set to 0 and there is no next remaining number nrp in the compressed data code streamiThe binary string of symbols of (1); otherwise, i.e. Ri> 1, there is a next remaining number nrp in the compressed data streamiThe next remaining number nrp is de-binarizediThe next remaining number nrp obtained for the binary symbol stringi
Preferably, said string length parameter decoding method, said inverse binarization of said next remaining number nrpiThe next remaining number nrp obtained for the binary symbol stringiThe method specifically comprises the following steps:
nrp is the next residual number in the compressed data code stream of the current string in the current blockiIs decoded to include the next remaining number nrp according to a preset anti-binarization schemeiThe number of the segment in which the value lies is used to mark the next remaining number nrpiA vector of parameters of values; nrp according to the preset next remaining numberiScheme for dividing value range into a plurality of consecutive sequentially numbered segments, said including said next remaining number nrpiThe number of the segment in which the value lies is used to mark the next remaining number nrpiThe parameter vector of values is converted into the next remaining number nrpiA value of (d); preferably said preset next remaining number nrpiMethod for dividing value range into a plurality of continuous sections numbered in sequenceAccording to the next remaining number nrpiValue range determination, preferably said one remaining number nrpiValue range according to the current number R of remaining elementsiAnd (4) determining.
Preferably, said string length parameter decoding method, said inverse binarization of said next remaining number nrpiThe binary string of (a) is composed of at least two parts:
the first part adopts an inverse binarization mode of truncated unary codes or truncated binary codes or truncated k-order exponential Golomb codes or fixed length codes derived from a maximum value;
the second part adopts a segmented inverse binarization mode of truncated binary codes, the number of segments and/or the demarcation point of the segments are/is derived from at least the current residual number, the number of the segments is allowed to be 0, and the second part is empty or does not exist.
Preferably, said string length parameter decoding method, said inverse binarization of said next remaining number nrpiThe binary string of (a) consists of at least three parts:
the first part adopts an inverse binarization mode with a maximum value, wherein the inverse binarization mode comprises a truncated unary code or a truncated binary code or a truncated k-order exponential Golomb code or a fixed length code derived from a maximum value;
the second part adopts a segmented inverse binarization mode of fixed-length codes derived from a maximum value, the number of segments and/or the demarcation point of the segments are derived from at least the current residual number, the number of the segments is allowed to be 0, and the second part is empty or does not exist;
the third part adopts an inverse binarization mode of a segmented fixed-length code, the number of segments and/or the demarcation point of the segments are/is derived from at least the first part and/or the second part, the number of segments is allowed to be 0, and the third part is empty or nonexistent.
Preferably, said string length parameter decoding method, said inverse binarization of said next remaining number nrpiThe next remaining number nrp obtained for the binary symbol stringiThe method specifically comprises the following steps:
using a truncation code with a truncation value, i.e. maximum value maxVal, for said next remaining number nrpiBinary symbol string ofPerforming inverse binarization, wherein the truncation codes comprise one or a combination of the following codes:
truncating a unary code, or
Truncated binary code, i.e. truncated fixed length code, having at most two code lengths, or
The fixed length code derived from said maximum value preferably consists of the shorter of the truncated binary codes having said maximum value, or
Truncating an exponential golomb code of a predetermined order, i.e. truncating an exponential golomb code of k order;
preferably, at least according to the number R of the currently remaining elementsiDetermining the maximum value maxVal; preferably, the maximum value maxVal is allowed to be 0, indicating that the corresponding code is a null code, that is, a binary symbol string does not actually exist.
Preferably, the string length parameter decoding method, preferably the element is a pixel unit consisting of 4x1 pixels or components or indices;
its said inverse binary next remaining number nrpiThe next remaining number nrp obtained for the binary symbol stringiOne of the following two schemes is applied;
the first scheme is as follows:
the next remaining number of said binary string of symbols comprises at least three parts, the inverse binarization of which comprises at least the steps of:
carrying out inverse binarization on the first part of the binary symbol string by adopting a truncation code comprising a truncation unary code or a truncation binary code or a truncation k-order exponential Golomb code;
selecting one of predetermined I +1 kinds of truncated codes for a second part of the binary symbol string to inversely binarize the second part of the binary symbol string, each of the I +1 kinds of truncated codes being a fixed length code derived from a maximum value or a truncated binary code having a maximum value; the maximum value is at least based on the number R of the current remaining elementsiAnd said first portion, the maximum value allowed to be 0, indicating that said second portion is empty, i.e. not present;
performing inverse binarization on a third part of the binary symbol string by adopting a fixed-length code with a code length k, wherein the code length k is derived from at least the first part and/or the second part, and the code length k is allowed to be 0 and represents that the third part is empty or does not exist;
scheme II:
the next remaining number of the binary string of symbols comprises a flag bit, and at least three portions; the flag bit is a one-bit binary symbol, namely a fixed length code with the code length of 1 indicates whether the next remaining number is zero or not;
when the result of the binary symbol of the flag bit indicates that the next remaining number is not zero, i.e., equal to or greater than 1, the binary symbol string flag bit other than the next remaining number is binarized to reduce the next remaining number by 1, and the binary symbol string flag bit other than the next remaining number is binarized, including at least the following steps:
carrying out inverse binarization on the first part of the binary symbol string by adopting a truncation code comprising a truncation unary code or a truncation binary code or a truncation k-order exponential Golomb code;
selecting one of predetermined I +1 kinds of truncated codes for a second part of the binary symbol string to inversely binarize the second part of the binary symbol string, each of the I +1 kinds of truncated codes being a fixed length code derived from a maximum value or a truncated binary code having a maximum value; the maximum value is at least based on the number R of the current remaining elementsiAnd said first portion, the maximum value allowed to be 0, indicating that said second portion is empty, i.e. not present;
and performing inverse binarization on a third part of the binary symbol string by adopting a fixed-length code with a code length k, wherein the code length k is derived from at least the first part and/or the second part, and the code length k is allowed to be 0 and indicates that the third part is empty or does not exist.
Preferably, the next remaining number nrpiOr dividing the total value range of the next residual number minus 1 into a preset Imax +1 integer interval [ N0 ]i,N0i+1),i=0~Imax;
In the second part, I is a condition satisfying N0I≤R-1<N0I+1Namely N0I<R≤N0I+1I of (1); in scheme one, R is equal to Ri(ii) a Alternatively, in scheme two, R is equal to Ri-1;
The maximum value maxValPrefix of the truncation code adopted by the first part is equal to I, and the truncation code with the maximum value maxValPrefix is adopted to perform inverse binarization on the first part of the binary symbol string to obtain the value a of the first part;
the second part selects the ith truncated code in the preset I +1 truncated codes to perform inverse binarization on the second part of the binary symbol string; the i is equal to the value a of the first portion; the maximum value maxValInfix of the truncation code adopted by the second part is equal to Ni+1-Ni-1, wherein Ni=N0i,Ni+1=min(N0i+1R), i.e., maxValInfix ═ min (N0)i+1-N0i-1,R-N0i-1); the next remaining number nrpiOr the next remaining number minus 1 is in the range of [ N ]i,Ni+1)。
Preferably, in the first embodiment, Imax is 4, i is 0, 1,2, 3, or 4, N00、N01、N02、N03、N04、N05R is the maximum value of 0, 1, 5, 21, 277 and RiMaximum value of (d);
or,
in scheme two, Imax is 3, i is 0, 1,2, or 3, N00、N01、N02、N03、N04R is the maximum value of 0, 4, 20, 276 and Ri-a maximum value of 1.
Preferably, in the first embodiment, Imax is 3, i is 0, 1,2, or 3, and N00、N01、N02、N03、N04R is the maximum value of 0, 1, 5, 21 and RiMaximum value of (d);
or,
in scheme two, Imax is 2, i is 0, 1, or 2, N00、N01、N02、N03R is the maximum value of 0, 4, 20 and Ri-1 ofA maximum value.
According to another aspect of the present invention, there is provided a string length parameter decoding apparatus including: the device comprises a compressed data code stream analysis module and a string length calculation module;
the compressed data code stream analyzing module is used for at least storing the current block size cuSize and the sum currtlen of the lengths of the currently decoded elements, at least obtaining information representing the string length parameter value of the current string, and submitting the information to the string length calculating module; the string length parameter is the next remaining number nrpi(ii) a The next remaining number nrpiIs the number of remaining elements in the current block after decoding the current string;
the string length calculating module is configured to obtain a string length according to a predetermined string length calculating manner, according to at least the current block size cuSize, a sum currlen of the number of elements currently decoded, and the next remaining numberi
Preferably, the string length calculating module is configured to calculate a string length according to a current string lengthiAnd updating the sum currTlen of the lengths of the elements currently decoded; the string length information is the next remaining number nrpi
Preferably, the string length is obtained according to a predetermined string length calculation modeiThe sum currtlen of the current decoded element length subtracted from the current block size cuSize and the next remaining number nrpiIt is written as:
lengthi=cuSize-curTlen-nrpi
or
lengthi=Ri-nrpi
Wherein R isiIs the number of the current remaining elements;
preferably, the obtaining of the information indicating the string length parameter value of the current string specifically includes obtaining a compressed binary data code stream of the current string in the current block, and performing inverse binarization to obtain an encoding of the current string that contains string length parameter information specifically:
according to the current block size cuSize, andthe sum currtlen of the lengths of the elements currently decoded calculates the number R of the elements currently remainingi
The current number of remaining elements RiCalculating the number R of the current remaining elements in the current block for the difference between the current block size cuSize and the sum of the currently decoded element lengths currTleniThe following were used:
Ri=cuSize-curTlen
preferably, the next remaining number is in the range of [0, Ri-1];
Preferably, the element includes a pixel or a pixel component or a pixel index or a pixel unit; the pixel unit is an array of mxn pixels or components or indexes, m and n are predetermined positive integers including 1,2, 4, 8, 16, respectively; when m and n both take the value 1, the pixel unit is a pixel or a pixel component or a pixel index or an index; the preferred element is a pixel element consisting of 4x1 pixels or components or indices.
Preferably, when R isiWhen 1, nrpiThe value is set to 0 and there is no next remaining number nrp in the compressed data code streamiThe binary string of symbols of (1); otherwise, i.e. RiIf the residual number is greater than 1, nrp is the next residual number in the compressed data code streamiThe next remaining number nrp obtained by inverse binarizationi
Preferably the next remaining number obtained by the inverse binarization nrpiThe method specifically comprises the following steps:
according to the number R of the current remaining elementsiDetermining the next remaining number nrpiValue range and get its next remaining number nrpiA scheme in which the value range is divided into a plurality of consecutive sequentially numbered segments; nrp according to the preset next remaining numberiScheme for dividing value range into a plurality of consecutive sequentially numbered segments, said including said next remaining number nrpiThe number of the segment in which the value lies is used to mark the next remaining number nrpiThe parameter vector of values is converted into the next remaining number nrpiA value of (a) toDecoding the compressed data code stream of the binarization of the current string in the current block into nrp including the next residual number according to a preset inverse binarization schemeiThe number of the segment in which the value lies is used to mark the next remaining number nrpiA vector of parameters of values.
Preferably, the string length calculation module updates the sum currtlen of the currently decoded element lengths to be equal to the current string lengthiAnd the sum of the currently decoded element lengths currtlen updates the sum of the currently decoded element lengths currtlen; the method specifically comprises the following steps:
curTlen=curTlen+lengthi
the compressed data code stream parsing module is preferably configured to perform inverse binarization on the next remaining number of binary symbol strings by using a truncation code having a truncation value, i.e., a maximum value maxVal, where the truncation code includes one or a combination of the following codes:
truncating a unary code, or
Truncated binary code, i.e. truncated fixed length code, having at most two code lengths, or
The fixed length code derived from the maximum value is composed of the shorter code of the truncated binary code having the maximum value, or
Truncating an exponential golomb code of a predetermined order, i.e. truncating an exponential golomb code of k order;
preferably, at least according to the number R of the currently remaining elementsiDetermining the maximum value maxVal; the maximum maxVal is allowed to be 0, indicating that the corresponding code is a null code, i.e., a binary symbol string does not actually exist
Preferably, the next remaining number of binary symbol strings and the inverse binarization operation thereof are composed of at least three parts;
when the number R of the current remaining elementsiWhen the number is equal to 1, all parts of the binary symbol string are empty, namely, the binary symbol string does not exist in a compressed data code stream, and the value of the next remaining number is 0;
when the number R of the current remaining elementsiWhen the value is more than 1, applying one of the following two schemes to perform inverse binarization:
the first scheme is as follows:
the next remaining number of said binary string of symbols comprises at least three parts, the inverse binarization of which comprises at least the steps of:
carrying out inverse binarization on the first part of the binary symbol string by adopting a truncation code comprising a truncation unary code or a truncation binary code or a truncation k-order exponential Golomb code;
selecting one of predetermined I +1 kinds of truncated codes for a second part of the binary symbol string to inversely binarize the second part of the binary symbol string, each of the I +1 kinds of truncated codes being a fixed length code derived from a maximum value or a truncated binary code having a maximum value; the maximum value is at least based on the number R of the current remaining elementsiAnd said first portion, the maximum value allowed to be 0, indicating that said second portion is empty, i.e. not present;
performing inverse binarization on a third part of the binary symbol string by adopting a fixed-length code with a code length k, wherein the code length k is derived from at least the first part and/or the second part, and the code length k is allowed to be 0 and represents that the third part is empty or does not exist;
scheme II:
the next remaining number of the binary string of symbols comprises a flag bit, and at least three portions; the flag bit is a one-bit binary symbol, namely a fixed length code with the code length of 1 indicates whether the next remaining number is zero or not;
when the result of the binary symbol of the flag bit indicates that the next remaining number is not zero, i.e., equal to or greater than 1, the binary symbol string flag bit other than the next remaining number is binarized to reduce the next remaining number by 1, and the binary symbol string flag bit other than the next remaining number is binarized, including at least the following steps:
carrying out inverse binarization on the first part of the binary symbol string by adopting a truncation code comprising a truncation unary code or a truncation binary code or a truncation k-order exponential Golomb code;
selecting one of the predetermined pairs of I +1 truncation codes for the second portion of the binary symbol stringThe second part of the binary symbol string is subjected to inverse binarization, and each of the I +1 truncated codes is a fixed-length code derived from a maximum value or a truncated binary code with a maximum value; the maximum value is at least based on the number R of the current remaining elementsiAnd said first portion, the maximum value allowed to be 0, indicating that said second portion is empty, i.e. not present;
and performing inverse binarization on a third part of the binary symbol string by adopting a fixed-length code with a code length k, wherein the code length k is derived from at least the first part and/or the second part, and the code length k is allowed to be 0 and indicates that the third part is empty or does not exist.
Preferably, the next remaining number nrpiOr dividing the total value range of the next residual number minus 1 into a preset Imax +1 integer interval [ N0 ]i,N0i+1),i=0~Imax;
In the second part, I is a condition satisfying N0I≤R-1<N0I+1Namely N0I<R≤N0I+1I of (1); in scheme one, R is equal to Ri(ii) a Alternatively, in scheme two, R is equal to Ri-1;
The maximum value maxValPrefix of the truncation code adopted by the first part is equal to I, and the truncation code with the maximum value maxValPrefix is adopted to perform inverse binarization on the first part of the binary symbol string to obtain the value a of the first part;
the second part selects the ith truncated code in the preset I +1 truncated codes to perform inverse binarization on the second part of the binary symbol string; the i is equal to the value a of the first portion; the maximum value maxValInfix of the truncation code adopted by the second part is equal to Ni+1-Ni-1, wherein Ni=N0i,Ni+1=min(N0i+1R), i.e., maxValInfix ═ min (N0)i+1-N0i-1,R-N0i-1); the next remaining number nrpiOr the next remaining number minus 1 is in the range of [ N ]i,Ni+1)。
Preferably, in the first embodiment, Imax is 4, i is 0, 1,2, 3, or 4, N00、N01、N02、N03、N04、N05R is the maximum value of 0, 1, 5, 21, 277 and RiMaximum value of (d);
or,
in scheme two, Imax is 3, i is 0, 1,2, or 3, N00、N01、N02、N03、N04R is the maximum value of 0, 4, 20, 276 and Ri-a maximum value of 1.
Preferably, in the first embodiment, Imax is 3, i is 0, 1,2, or 3, and N00、N01、N02、N03、N04R is the maximum value of 0, 1, 5, 21 and RiMaximum value of (d);
or,
in scheme two, Imax is 2, i is 0, 1, or 2, N00、N01、N02、N03R is the maximum value of 0, 4, 20 and Ri-a maximum value of 1.
In general, compared with the prior art, the above technical solution contemplated by the present invention can achieve the following beneficial effects:
according to the current common coding mode with strings as elements, the value of the next residual number is usually smaller than the value of the length of the strings, thereby reducing the consumption of compressed data code streams. The preferred scheme has a more significant effect of improving the compression rate when the data of the string is smaller than 5/16, e.g., 1/4, 3/16, of the current block size.
In the preferred scheme, the quantity relation between the next remaining number is considered, and a corresponding binarization scheme is adopted, so that the consumption of compressed data code streams can be further reduced, and the compression rate is improved.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention is further described in detail with reference to the following embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention. In addition, the technical features involved in the embodiments of the present invention described below may be combined with each other as long as they do not conflict with each other.
The invention provides a string length parameter coding method, which is suitable for a data compression process taking strings as elements and comprises the following steps:
(1) according to at least the current block size cuSize and the current string lengthiAnd the sum of the lengths of the currently encoded elements, currtlen, the next remaining number nrp is calculatediAs a string length parameter for the current string;
the next remaining number nrpiThe number of remaining elements in the current block after encoding the current string;
specific examples thereof include:
obtaining the current block size cuSize and the current string lengthiAnd the sum of the lengths of the currently encoded elements, currtlen, the next remaining number nrp is calculatediAs a string length parameter for the current string;
the next remaining number nrpiThe number of the remaining elements in the current block after encoding the current string is the number of all elements after the current string in the current block, i.e. the sum currtlen of the current block size cuSize minus the length of the currently encoded elements and the length of the current stringiIt is written as:
nrpi=cuSize-curTlen-lengthi
where cuSize is the current block size, curTlen is the sum of the lengths of the currently encoded elements, lengthiCurrent string length, i ═ 1,2 … …;
the total number of strings in the current block does not exceed 3/16, 1/4, or 5/16 of the current block size.
(2) At least writing information representing the string length parameter value into a compressed data code stream; the method specifically comprises the following steps:
writing at least information representing the string length parameter value obtained in the step (1) into a compressed data code stream; one specific method is to carry out binarization on the current string length parameter obtained in the step (1) and write the binarized data into a compressed data code stream;
the binarization scheme in which the string length parameter is, i.e., the next remaining number nrpiPreferably, the binarization is performed according to the distribution probability of the next remaining number and according to the principle that the higher the distribution probability is, the shorter the code after binarization is, so that the string length parameter value with higher occurrence frequency consumes less bit number, thereby further improving the compression ratio;
according to the current encoding method, especially for image or video data, the elements (including pixels or pixel units) in a coding block are likely to be divided into the same string, so that the frequency of the next remaining number of 0 is quite high, and encoding is performed with as few bits as possible, specifically as follows:
the current number of remaining elements RiCalculating the number R of the current remaining elements in the current block for the difference between the current block size cuSize and the sum of the lengths of the currently encoded elements currTleniThe following were used:
Ri=cuSize-curTlen
if R isi1, nrpiCan only take the value of 0, and the next residual number nrp does not exist in the compressed data code streamiThe binary string of symbols of (1); otherwise, i.e. RiIf > 1, nrpiNext remaining number of will nrpiAnd (6) binarization.
The next remaining number nrpiBinarization, specifically comprising:
according to the current number R of remaining elementsiDetermining the next remaining number nrpiValue range and the next remaining number nrpiThe value range is divided into a plurality of consecutive sequentially numbered segments to include the next remaining number nrpiThe parameter vector including the number of the segment in which the value lies marks the next remaining number nrpiAnd marks the next remaining number nrp for the useriIncluding the next remaining number nrpiThe parameter vector including the number of the segment in which the value is located is binarized as the next remaining number nrpiAnd (4) carrying out binary coding.
Preferably, the first segment of said sequentially numbered segments contains only one value 0.
Due to nrpiThe value range may be defined by the current number R of remaining elementsiDetermine, therefore, by rational division of the next remaining number nrpiThe value range can effectively reduce the value to be coded, thereby further reducing the consumed bit number.
(3) With the current string lengthiAnd the sum of the currently encoded element lengths currtlen updates the sum of the currently encoded element lengths currtlen; the method specifically comprises the following steps:
curTlen=curTlen+lengthi
the invention adopts the next remaining number of length parameters to encode at least one string length, so that the next remaining number of length parameters are smaller than the value of the directly encoded string length under partial conditions, thereby reducing the bit number consumed by entropy encoding of a part of length values in a sequence of pixel unit strings or pixel string lengths and further improving the encoding efficiency of the string length sequence. The effect of improving the coding efficiency is more obvious when the number of the strings is less, and the coding efficiency is obviously improved compared with the existing coding mode which directly takes the length of the strings as the length parameter of the strings under the condition that the total number of the strings in the current block is not more than 5/16 of the size of the current block.
How to efficiently encode or decode a length sequence in coding modes (such as PLT mode and ISC mode) that are elementary with pixel unit strings or pixel strings is a key issue. Existing string-length sequence coding or decoding schemes directly pair lengths1、length2、......lengthnEncoding or decoding is performed. One specific example is: let length1、length2、......lengthnThe sequence is 200, 8, 45, and 3, and the existing string length sequence coding scheme directly codes or decodes the four length values of 200, 8, 45, and 3. An important step of encoding or decoding is binarization or inverse binarization. The process of obtaining a binary string of symbols representing a variable or parameter from the value of this value is called binarization. From binary symbols representing the value of a variable or parameterThe process by which the string takes this value is called inverse binarization. Generally, the larger the value of a variable or parameter, the more bits are required for binarization. The coding efficiency can be further improved by representing the values of the variables or parameters with higher probability of occurrence or reducing the values of the variables or parameters with smaller values. The invention takes the residual string length of the string as the coding parameter, and the difference between the residual string length of the previous string and the residual string length of the current string is the current string length.
The string-based coding mode has more prediction flexibility and higher prediction accuracy, but also brings some disadvantages such as high complexity of hardware implementation. In order to solve the problem of hardware implementation complexity, it is often necessary to limit the total number of pixel unit strings into which the entire coding block is divided, for example, the total number of the entire pixel unit strings does not exceed one fourth of the entire coding block. It is noted that there is some inherent regularity and correlation in the sequence of the string length: taking a pixel string as an example, the probability of a string having a string length equal to the size of the entire coding block is relatively high. Therefore, there is redundancy in the string-length sequence, and this redundancy is not removed by the string-length sequence direct encoding or decoding scheme, losing coding efficiency.
The series is formed by arranging sample values, also called elements, in a predetermined scanning pattern. The samples include pixels or pixel components or pixel indices or pixel elements. The pixel unit is an array of mxn pixels or components or indices, and m and n are predetermined positive integers including 1,2, 4, 8, and 16, respectively. When m and n both take the value 1, the pixel unit is a pixel or a pixel component or a pixel index or an index.
The string length parameter decoding method provided by the invention comprises the following steps:
(A) analyzing the compressed data code stream in the current block, and at least obtaining the information containing the string length parameter value of the current string; the string length parameter is the next remaining number nrpi
The next remaining number nrpiThe number of elements remaining in the current block after decoding the current string;
the method specifically comprises the following steps: sequentially acquiring a binary compressed data code stream of a current string in a current block, and performing reverse binarization to obtain a code of the current string, which contains string length parameter information; the string length parameter is the next remaining number nrpi(ii) a More specifically:
the current number of remaining elements RiCalculating the number R of the current remaining elements in the current block for the difference between the current block size cuSize and the sum of the currently decoded element lengths currTleniThe following were used:
Ri=cuSize-curTlen
if R isi1, nrpiThe value is set to 0, since 0 is the only possible value, there is no next remaining number nrp in the compressed data code streamiThe binary string of symbols of (1); otherwise, i.e. Ri> 1, there is a next remaining number nrp in the compressed data streamiThe binary symbol string is inversely binarized to obtain the next remaining number nrpi
The inverse binarization obtains a next remaining number nrpiThe method specifically comprises the following steps:
decoding the compressed data code stream of the binarization of the current string in the current block into nrp including the next residual number according to a preset inverse binarization schemeiThe number of the segment in which the value lies is used to mark the next remaining number nrpiA vector of parameters of values; nrp according to the preset next remaining numberiScheme for dividing value range into a plurality of consecutive sequentially numbered segments, said including said next remaining number nrpiThe number of the segment in which the value lies is used to mark the next remaining number nrpiThe parameter vector of values is converted into the next remaining number nrpiA value of (d); the preset next remaining number nrpiThe scheme of value range division into a plurality of consecutive sequentially numbered segments is based on the next remaining number nrpiValue range determination, said one remaining number nrpiValue range according to the current number R of remaining elementsiAnd (4) determining.
Preferably, the next remaining number of binary symbol strings are inversely binarized using a truncation code having a truncation value, i.e., a maximum value maxVal, the truncation code including one or a combination of the following codes:
truncating a unary code, or
Truncated binary code, i.e. truncated fixed length code, having at most two code lengths, or
The fixed length code derived from the maximum value is composed of the shorter code of the truncated binary code having the maximum value, or
Truncating an exponential golomb code of a predetermined order, i.e. truncating an exponential golomb code of k order;
preferably, at least according to the number R of the currently remaining elementsiDetermining the maximum value maxVal; the maximum maxVal is allowed to be 0, indicating that the corresponding code is a null code, i.e., a binary symbol string does not actually exist
Preferably, the next remaining number of binary symbol strings and the inverse binarization operation thereof are composed of at least three parts;
when the number R of the current remaining elementsiWhen the number is equal to 1, all parts of the binary symbol string are empty, namely, the binary symbol string does not exist in a compressed data code stream, and the value of the next remaining number is 0;
when the number R of the current remaining elementsiWhen the value is more than 1, applying one of the following two schemes to perform inverse binarization:
the first scheme is as follows:
the inverse binarization of the next remaining number of the binary string of symbols consists of at least the following three operations:
the first part adopts a truncation code comprising a truncation unary code or a truncation binary code or a truncation k-order exponential Golomb code to perform inverse binarization on the first part of the binary symbol string;
the second part selects one of predetermined I +1 kinds of truncated codes, each of which is a fixed-length code derived from a maximum value or a truncated binary code having a maximum value, to perform inverse binarization on the second part of the binary symbol string; the maximum value is at least based on the number R of the current remaining elementsiAnd said first part, the maximum value allowed to be 0, representing saidThe second portion is empty, i.e. not present;
the third part adopts a fixed-length code with the code length k to carry out inverse binarization, wherein the code length k is derived from at least the first part and/or the second part, and the code length k is allowed to be 0 and represents that the third part is empty or does not exist;
scheme II:
firstly, a mark, namely a one-bit binary symbol, namely a fixed length code with the code length of 1 is adopted to represent whether the next remaining number is zero or not;
if the result of the binary symbol of the flag indicates that the next remaining number is equal to or greater than 1, then reducing the next remaining number by one, which is called the next remaining number minus 1, and continuing to perform the binary symbol string of the next remaining number minus 1, where the reverse binarization of the next remaining number minus 1 consists of at least the following three operations:
the first part adopts a truncation code comprising a truncation unary code or a truncation binary code or a truncation k-order exponential Golomb code to perform inverse binarization on the first part of the binary symbol string;
the second part selects one of predetermined I +1 kinds of truncated codes, each of which is a fixed-length code derived from a maximum value or a truncated binary code having a maximum value, to perform inverse binarization on the second part of the binary symbol string; the maximum value is at least based on the number R of the current remaining elementsiAnd said first portion, the maximum value allowed to be 0, indicating that said second portion is empty, i.e. not present;
and the third part adopts a fixed-length code with the code length k to carry out inverse binarization, wherein the code length k is derived from at least the first part and/or the second part, and the code length k is allowed to be 0, which indicates that the third part is empty or does not exist.
Preferably, the next remaining number nrpiOr dividing the total value range of the next residual number minus 1 into a preset Imax +1 integer interval [ N0 ]i,N0i+1),i=0~Imax;
In the second part, I is a condition satisfying N0I≤R-1<N0I+1Namely N0I<R≤N0I+1I of (1); in scheme one, R is equal to Ri(ii) a Alternatively, in scheme two, R is equal to Ri-1;
The maximum value maxValPrefix of the truncation code adopted by the first part is equal to I, and the truncation code with the maximum value maxValPrefix is adopted to perform inverse binarization on the first part of the binary symbol string to obtain the value a of the first part;
the second part selects the ith truncated code in the preset I +1 truncated codes to perform inverse binarization on the second part of the binary symbol string; the i is equal to the value a of the first portion; the maximum value maxValInfix of the truncation code adopted by the second part is equal to Ni+1-Ni-1, wherein Ni=N0i,Ni+1=min(N0i+1R), i.e., maxValInfix ═ min (N0)i+1-N0i-1,R-N0i-1); the next remaining number nrpiOr the next remaining number minus 1 is in the range of [ N ]i,Ni+1)。
Preferably, in the first embodiment, Imax is 4, i is 0, 1,2, 3, or 4, N00、N01、N02、N03、N04、N05R is the maximum value of 0, 1, 5, 21, 277 and RiMaximum value of (d);
or,
in scheme two, Imax is 3, i is 0, 1,2, or 3, N00、N01、N02、N03、N04R is the maximum value of 0, 4, 20, 276 and Ri-a maximum value of 1.
Preferably, in the first embodiment, Imax is 3, i is 0, 1,2, or 3, and N00、N01、N02、N03、N04R is the maximum value of 0, 1, 5, 21 and RiMaximum value of (d);
or,
in scheme two, Imax is 2, i is 0, 1, or 2, N00、N01、N02、N03Are respectively 0,4. 20 maximum value of R, namely Ri-a maximum value of 1.
(B) According to at least the current block size cuSize, the sum currTlen of the number of elements currently decoded, and said next remaining number nrpiObtaining the current string length according to the calculation mode of the preset string lengthi. The method specifically comprises the following steps:
calculating the current string length according to the code containing the string length parameter information obtained in the step (A)i(ii) a The string length information is the next remaining number nrpi
The length of the stringiThe sum currtlen of the current decoded element length subtracted from the current block size cuSize and the next remaining number nrpiThe calculation is carried out according to the following method:
lengthi=cuSize-curTlen-nrpi
or
lengthi=Ri-nrpi
Wherein R isiIs the number of the current remaining elements; preferably the current number R of remaining elementsiCalculating the number R of the current remaining elements in the current block for the difference between the current block size cuSize and the sum of the currently decoded element lengths currTleniThe following were used:
Ri=cuSize-curTlen
preferably, the next remaining number is in the range of [0, Ri-1];
(C) With the current string lengthiAnd the sum of the currently decoded element lengths currtlen updates the sum of the currently decoded element lengths currtlen; the method specifically comprises the following steps:
curTlen=curTlen+lengthi
the invention provides a string length parameter coding device, comprising: a string length parameter acquisition module and a compressed code stream generation module;
the string length parameter obtaining module stores a current block size cuSize, and obtains a current string and reads a current string lengthiAnd has been currentlyThe sum of the coded element lengths currTlen, the current string length h being read in accordance with the current block size cuSize, the sum of the previously coded element lengths currTlen and the current string paralleliCalculating the next remaining number nrpiAnd the current number of remaining elements RiThe next remaining number nrpiAs a string length parameter and the current number of remaining elements RiSubmitting the code stream to a compressed code stream generating module;
the next remaining number nrpiThe number of remaining elements in the current block after encoding the current string is the sum of the lengths of all strings after the current string in the current block, i.e. the sum currtlen and the length of the current string, which is obtained by subtracting the length of the currently encoded elements from the size cuSize of the current blockiIt is written as:
nrpi=cuSize-curTlen-lengthi
where cuSize is the current block size, curTlen is the sum of the lengths of the currently encoded elements, lengthiCurrent string length, i ═ 1,2 … …;
the compressed code stream generating module is at least used for writing the information representing the string length parameter value into a compressed data code stream;
in particular for the number R of remaining elements according to the currentiCarrying out binarization on the string length parameter, writing binarized data into a compressed code stream, and updating the sum curTlen of the lengths of the currently encoded elements;
the current number of remaining elements RiCalculating the number R of the current remaining elements in the current block for the difference between the current block size cuSize and the sum of the lengths of the currently encoded elements currTleniThe following were used:
Ri=cuSize-curTlen
if R isi1, nrpiThe value is set to 0, since 0 is the only possible value, there is no next remaining number nrp in the compressed data code streamiThe binary string of symbols of (1); otherwise, i.e. Ri> 1, the next remaining number nrpiAnd (6) binarization.
The next remaining number nrpiBinarization, specifically comprising:
according to the current number R of remaining elementsiDetermining the next remaining number nrpiValue range and the next remaining number nrpiThe value range is divided into a plurality of consecutive sequentially numbered segments to include the next remaining number nrpiThe parameter vector including the number of the segment in which the value lies marks the next remaining number nrpiAnd marks the next remaining number nrp for the useriIncluding the next remaining number nrpiThe parameter vector including the number of the segment in which the value is located is binarized as the next remaining number nrpiAnd (4) carrying out binary coding.
Said updating of the sum currtlen of the lengths of the currently encoded elements to the length of the current stringiAnd the sum of the currently encoded element lengths currtlen updates the sum of the currently encoded element lengths currtlen.
The string length parameter decoding device provided by the invention comprises: the device comprises a compressed data code stream analysis module and a string length calculation module;
the compressed data code stream analyzing module is used for at least storing the current block size cuSize and the sum currtlen of the lengths of the currently decoded elements, at least obtaining information representing the string length parameter value of the current string, and submitting the information to the string length calculating module; the string length parameter is the next remaining number nrpi(ii) a The next remaining number nrpiIs the number of remaining elements in the current block after decoding the current string; in particular, the amount of the solvent to be used,
storing at least the current block size cuSize, and obtaining at least the current string and the length of the current stringiAnd a sum currtlen of the lengths of the currently encoded elements, at least according to the current block size cuSize, the sum currtlen of the lengths of the currently encoded elements, and the current string lengthiCalculate next remaining number nrpiAt least the next remaining number nrpiSubmitting the parameter as the string length to the compressed code stream generation module(ii) a The next remaining number nrpiThe number of remaining elements in the current block after encoding the current string; preferably comprising an inverse binarization submodule:
the inverse binarization submodule is used for reading the current block size cuSize and the sum currTlen of the current decoded element length, and is used for acquiring a binarization compressed data code stream of a current string in the current block, performing inverse binarization to obtain information containing string length parameters of the current string, and submitting the information to the string length acquisition module; the string length parameter is the next remaining number nrpi
Acquiring a compressed data code stream of the binarization of the current string in the current block, and performing inverse binarization to acquire the code of the current string containing the string length parameter information specifically comprises the following steps:
the number R of the current remaining elements is calculated from the current block size cuSize and the sum of the lengths of the currently decoded elements currTleni
The current number of remaining elements RiCalculating the number R of the current remaining elements in the current block for the difference between the current block size cuSize and the sum of the currently decoded element lengths currTleniThe following were used:
Ri=cuSize-curTlen
if R isi1, nrpiThe value is set to 0, since 0 is the only possible value, there is no next remaining number nrp in the compressed data code streamiThe binary string of symbols of (1); otherwise, i.e. RiWhen the residual number is greater than 1, nrp is the next residual number in the compressed data code streamiThe binary symbol string is inversely binarized to obtain the next remaining number nrpi
The inverse binarization obtains a next remaining number nrpiThe method specifically comprises the following steps:
according to the number R of the current remaining elementsiDetermining the next remaining number nrpiValue range and get its next remaining number nrpiA scheme in which the value range is divided into a plurality of consecutive sequentially numbered segments; nrp according to the preset next remaining numberiValue range divisionA scheme of a plurality of consecutive sequentially numbered segments, said scheme comprising said next remaining number nrpiThe number of the segment in which the value lies is used to mark the next remaining number nrpiThe parameter vector of values is converted into the next remaining number nrpiSo as to decode the compressed binary data code stream of the current string in the current block to include the next remaining number nrp according to a preset inverse binarization schemeiThe number of the segment in which the value lies is used to mark the next remaining number nrpiA vector of parameters of values.
The string length obtaining module is configured to obtain a string length h according to a predetermined string length calculation manner at least according to the current block size cuSize, a sum currlen of the number of elements currently decoded, and the next remaining numberi. Specifically, the method comprises the following steps:
is used for calculating the current string length according to the string length parameteriCalculating the current string lengthiAnd updating the sum currTlen of the lengths of the elements currently decoded; the string length information is the next remaining number nrpi
The length of the stringiThe sum currtlen of the current decoded element length subtracted from the current block size cuSize and the next remaining number nrpiThe calculation is carried out according to the following method:
lengthi=cuSize-curTlen-nrpi
updating the sum currtlen of the currently decoded element lengths to the current string lengthiAnd the sum of the currently decoded element lengths currtlen updates the sum of the currently decoded element lengths currtlen; the method specifically comprises the following steps:
curTlen=curTlen+lengthi
the compressed data code stream parsing module is configured to perform inverse binarization on the next remaining number of binary symbol strings by using a truncation code having a truncation value, that is, a maximum value maxVal, where the truncation code includes one or a combination of the following codes:
truncating a unary code, or
Truncated binary code, i.e. truncated fixed length code, having at most two code lengths, or
The fixed length code derived from the maximum value is composed of the shorter code of the truncated binary code having the maximum value, or
Truncating an exponential golomb code of a predetermined order, i.e. truncating an exponential golomb code of k order;
preferably, at least according to the number R of the currently remaining elementsiDetermining the maximum value maxVal; the maximum maxVal is allowed to be 0, indicating that the corresponding code is a null code, i.e., a binary symbol string does not actually exist
Preferably, the next remaining number of binary symbol strings and the inverse binarization operation thereof are composed of at least three parts;
when the number R of the current remaining elementsiWhen the number is equal to 1, all parts of the binary symbol string are empty, namely, the binary symbol string does not exist in a compressed data code stream, and the value of the next remaining number is 0;
when the number R of the current remaining elementsiWhen the value is more than 1, applying one of the following two schemes to perform inverse binarization:
the first scheme is as follows:
the inverse binarization of the next remaining number of the binary string of symbols consists of at least the following three operations:
the first part adopts a truncation code comprising a truncation unary code or a truncation binary code or a truncation k-order exponential Golomb code to perform inverse binarization on the first part of the binary symbol string;
the second part selects one of predetermined I +1 kinds of truncated codes, each of which is a fixed-length code derived from a maximum value or a truncated binary code having a maximum value, to perform inverse binarization on the second part of the binary symbol string; the maximum value is at least based on the number R of the current remaining elementsiAnd said first portion, the maximum value allowed to be 0, indicating that said second portion is empty, i.e. not present;
the third part adopts a fixed-length code with the code length k to carry out inverse binarization, wherein the code length k is derived from at least the first part and/or the second part, and the code length k is allowed to be 0 and represents that the third part is empty or does not exist;
scheme II:
firstly, a mark, namely a one-bit binary symbol, namely a fixed length code with the code length of 1 is adopted to represent whether the next remaining number is zero or not;
if the result of the binary symbol of the flag indicates that the next remaining number is equal to or greater than 1, then reducing the next remaining number by one, which is called the next remaining number minus 1, and continuing to perform the binary symbol string of the next remaining number minus 1, where the reverse binarization of the next remaining number minus 1 consists of at least the following three operations:
the first part adopts a truncation code comprising a truncation unary code or a truncation binary code or a truncation k-order exponential Golomb code to perform inverse binarization on the first part of the binary symbol string;
the second part selects one of predetermined I +1 kinds of truncated codes, each of which is a fixed-length code derived from a maximum value or a truncated binary code having a maximum value, to perform inverse binarization on the second part of the binary symbol string; the maximum value is at least based on the number R of the current remaining elementsiAnd said first portion, the maximum value allowed to be 0, indicating that said second portion is empty, i.e. not present;
and the third part adopts a fixed-length code with the code length k to carry out inverse binarization, wherein the code length k is derived from at least the first part and/or the second part, and the code length k is allowed to be 0, which indicates that the third part is empty or does not exist.
Preferably, the next remaining number nrpiOr dividing the total value range of the next residual number minus 1 into a preset Imax +1 integer interval [ N0 ]i,N0i+1),i=0~Imax;
In the second part, I is a condition satisfying N0I≤R-1<N0I+1Namely N0I<R≤N0I+1I of (1); in scheme one, R is equal to Ri(ii) a Alternatively, in scheme two, R is equal to Ri-1;
The maximum value maxValPrefix of the truncation code adopted by the first part is equal to I, and the truncation code with the maximum value maxValPrefix is adopted to perform inverse binarization on the first part of the binary symbol string to obtain the value a of the first part;
the second part selects the ith truncated code in the preset I +1 truncated codes to perform inverse binarization on the second part of the binary symbol string; the i is equal to the value a of the first portion; the maximum value maxValInfix of the truncation code adopted by the second part is equal to Ni+1-Ni-1, wherein Ni=N0i,Ni+1=min(N0i+1R), i.e., maxValInfix ═ min (N0)i+1-N0i-1,R-N0i-1); the next remaining number nrpiOr the next remaining number minus 1 is in the range of [ N ]i,Ni+1)。
Preferably, in the first embodiment, Imax is 4, i is 0, 1,2, 3, or 4, N00、N01、N02、N03、N04、N05R is the maximum value of 0, 1, 5, 21, 277 and RiMaximum value of (d);
or,
in scheme two, Imax is 3, i is 0, 1,2, or 3, N00、N01、N02、N03、N04R is the maximum value of 0, 4, 20, 276 and Ri-a maximum value of 1.
Preferably, in the first embodiment, Imax is 3, i is 0, 1,2, or 3, and N00、N01、N02、N03、N04R is the maximum value of 0, 1, 5, 21 and RiMaximum value of (d);
or,
in scheme two, Imax is 2, i is 0, 1, or 2, N00、N01、N02、N03R is the maximum value of 0, 4, 20 and Ri-a maximum value of 1.
The invention is suitable for coding and decoding data by lossy compression, and is also suitable for coding and decoding data by lossless compression, when the division rule of the string is to divide the adjacent elements with the same element value into the same string, the lossless compression is performed, when the division rule is to divide the adjacent elements with the similar element value into the same string, the lossy compression is performed, the stricter the compression ratio is according to the definition strictness degree of the similar element value during the lossy compression, the higher the data quality is, the more the stricter the compression ratio is, the worse the data quality is.
The invention is suitable for encoding and decoding one-dimensional data such as character string data or byte string data or one-dimensional graphics or fractal graphics, and is also suitable for encoding and decoding two-dimensional or more data such as image or video data.
In the present invention, the data suitable for data compression includes one or a combination of the following types of data: one-dimensional data; two-dimensional data; multidimensional data; a graph; dimension division graphics; an image; a sequence of images; video; a three-dimensional scene; a sequence of continuously changing three-dimensional scenes; a virtual reality scene; an image in the form of sequential pixels of a scene of continuously changing virtual reality; transform domain data of the image; a set of bytes in two or more dimensions; a set of bits in two or more dimensions; a set of pixels; a set of three-component pixels (Y, U, V); a set of three-component pixels (Y, Cb, Cr); a set of three-component pixels (Y, Cg, Co); a set of three-component pixels (R, G, B); a set of four component pixels (C, M, Y, K); a set of four component pixels (R, G, B, A); a set of four component pixels (Y, U, V, A); a set of four component pixels (Y, Cb, Cr, A); a set of four component pixels (Y, Cg, Co, a).
In the present invention, in the case where the data is a picture, a sequence of pictures, a video, or the like, the encoded block or the decoded block is a coded region or a decoded region of the picture, including at least one of: a full picture, a sub-picture of a picture, a slice, a slice tile, a macroblock, a largest coding unit LCU, a coding tree unit CTU, a coding unit CU, a sub-region of a CU, a sub-coding unit SubCU, a sub-region of a prediction unit PU, a sub-prediction unit SubPU, a transform unit TU, a sub-region of a TU, a sub-transform unit SubTU.
In the invention, the primitive of the coding block or the decoding block involved in data compression comprises one or a combination of the following situations: an encoded or decoded block, a subblock, a microblock, a string of bytes, an alpha (alpha) string, a string of pixel units, a string of pixels, a string of samples, an index string, a line, a matching block, a matching subblock, a matching microblock, a matching string of pixels, a string of matching pixel units, a string of matching samples, a matching index string, a matching bar, a matching line, an offset string, a coordinate string, an unpredictable pixel string, an incomplete matching string, an incomplete predictable string, a string of coordinates or unpredictable pixels, an equivalent string, a string in which one component of a string vector is zero, and a string of unit base vectors in which the absolute value of a component is 1.
The following are examples:
example 1
A string length parameter encoding method, comprising the steps of:
the pixel unit is an array of mxn pixels or pixel components or pixel indices, and m and n are predetermined positive integers including 1,2, 4, 8, and 16, respectively. When m and n take on the value 1, the pixel unit is one pixel or one pixel component or one pixel index or one index.
Repeating the following steps until a pixel cell string or a sequence of pixel string lengths (length) in the current coding block1、length2、......lengthn) And (3) after the coding is finished:
(1) obtaining the current block size cuSize and the current string lengthiAnd the sum of the lengths of the currently encoded elements, currtlen, the next remaining number nrp is calculatediAs a string length parameter for the current string;
the next remaining number nrpiThe sum of the lengths of all strings following the current string in the current block, i.e. the sum curTlen of the current block size cuSize minus the length of the currently encoded elements and the current string lengthiIt is written as:
nrpi=cuSize-curTlen-lengthi
whereincuSize is the current block size, curTlen is the sum of the lengths of the currently encoded elements, lengthiCurrent string length, i ═ 1,2 … …;
the total number of strings in the current block does not exceed 1/4 for the current block size.
(2) Carrying out binarization on the current string length parameter obtained in the step (1), and writing the binarized data into a compressed data code stream;
the binarization scheme in which the string length parameter is, i.e., the next remaining number nrpiPreferably, the binarization is performed according to the distribution probability of the next remaining number and according to the principle that the higher the distribution probability is, the shorter the code after binarization is, so that the string length parameter value with higher occurrence frequency consumes less bit number, thereby further improving the compression ratio;
according to the current encoding method, elements (pixels or pixel arrays) in one encoding block are likely to be divided into the same string, so that the frequency of the next remaining number 0 is quite high, and encoding is performed with as few bits as possible, specifically as follows:
the current number of remaining elements RiCalculating the number R of the current remaining elements in the current block for the difference between the current block size cuSize and the sum of the lengths of the currently encoded elements currTleniThe following were used:
Ri=cuSize-curTlen
if R isi1, nrpiThe value is set to 0 and there is no next remaining number nrp in the compressed data code streamiThe binary string of symbols of (1); otherwise, i.e. Ri> 1, the next remaining number nrpiAnd (6) binarization.
The next remaining number of said future nrpiBinarization, specifically comprising:
according to the current number R of remaining elementsiDetermining the next remaining number nrpiValue range and the next remaining number nrpiThe value range is divided into a plurality of consecutive sequentially numbered segments as follows:
will next remain nrpiIs divided into predetermined rangesI +1 segment integer interval [ Ni,Ni+1),i=0~I;
Determination nrpiAnd will nrp, and the segment number a of the segment preceding the segment in which it is locatediExpressed as: nrpi=Na+b
And (c) respectively performing binarization on the a and/or the b, and writing the binary code into a code stream, wherein a truncated unary code, a truncated binary code, a truncated k-order exponential Golomb code or a fixed length code derived from a maximum value can be respectively adopted.
For example: an example of binarizing a and/or b, respectively, is:
and obtaining a first partial maximum value maxValPrefix from at least the current residual number by adopting a binary mode of truncating a unary code for the first part a and at least according to a preset first partial maximum value calculation mode, carrying out binarization on synElVal which is a truncated unary code with a truncated value, namely the maximum value maxVal being maxValPrefix, and obtaining a binary symbol string by adopting a table look-up mode or a calculation mode. An example of the table lookup approach is table 1:
TABLE 1 relationship of synElVal to binary symbol string (truncated unary code)
Figure BDA0002793789300000201
Figure BDA0002793789300000211
If a is equal to 0, the second part and the rest part do not exist in the compressed data code stream, and the next remaining number nrp is directly addediIs set to 0; otherwise, if a is larger than 0, continuing to carry out binarization on the segmented truncated binary codes of the following second part;
binarization using a segmented truncated binary code for the second part b:
nrp determining a next remaining number based at least on the current remaining numberiThe value range of (1) is divided into a preset Imax +1 integer interval [ Ni, Ni +1), and i is 0-Imax;
determining a segment value i ═ a based at least on the value a of the first portion;
the second partial maximum value maxvallinfix is obtained at least depending on the value i of the segment in such a way that maxvallinfix ═ Ni+1-Ni–1;
The binary code b is binarized using a truncated binary code in which the maximum value maxVal is maxValInfix.
Where Imax is 4, i is 0, 1,2, 3, or 4, N00、N01、N02、N03、N04、N050, 1, 5, 21, 277, respectively, the maximum value of the current remaining number R.
(3) With the current string lengthiAnd the sum of the currently encoded element lengths currtlen updates the sum of the currently encoded element lengths currtlen; the method specifically comprises the following steps:
curTlen=curTlen+lengthi
example 2
A method for decoding string length parameters, corresponding to embodiment 1, comprising the steps of:
repeating the following steps until a pixel cell string or a sequence of pixel string lengths (length) in the currently decoded block1、length2、......lengthn) And (3) finishing decoding:
(A) sequentially acquiring a binary compressed data code stream of a current string in a current block, and performing reverse binarization to obtain a code of the current string, which contains string length parameter information; the string length parameter is the next remaining number nrpi(ii) a The method specifically comprises the following steps:
the current number of remaining elements RiCalculating the number R of the current remaining elements in the current block for the difference between the current block size cuSize and the sum of the currently decoded element lengths currTleniThe following were used:
Ri=cuSize-curTlen
if R isi1, nrpiThe value is set to 0 and there is no next remaining number nrp in the compressed data code streamiThe binary string of symbols of (1); otherwise, i.e. RiWhen the bit rate is more than 1, the next bit exists in the compressed data code streamResidual number nrpiThe binary symbol string is inversely binarized to obtain the next remaining number nrpi
The inverse binarization obtains a next remaining number nrpiThe method specifically comprises the following steps:
decoding the compressed data code stream of the binarization of the current string in the current block into nrp including the next residual number according to a preset inverse binarization schemeiThe number of the segment in which the value lies is used to mark the next remaining number nrpiA vector of parameters of values; nrp according to the preset next remaining numberiScheme for dividing value range into a plurality of consecutive sequentially numbered segments, said including said next remaining number nrpiThe number of the segment in which the value lies is used to mark the next remaining number nrpiThe parameter vector of values is converted into the next remaining number nrpiA value of (d); the preset next remaining number nrpiThe scheme of value range division into a plurality of consecutive sequentially numbered segments is based on the next remaining number nrpiValue range determination, said one remaining number nrpiValue range according to the current number R of remaining elementsiAnd (4) determining.
If the current remaining pixel unit or number of pixels in the decoding block is called the current remaining number RiEqual to 1, there is no next remaining number nrp in the compressed data streamiBinary string of symbols of (1), directly connected nrpiIs set to 0; otherwise, i.e. Ri>1, continue to nrp according to the predetermined inverse binarization schemeiPerforming inverse binarization to obtain nrpiThe values of (a) are as follows:
nrpithe binary symbol string is composed of at least two parts a and b, and the compressed code stream is converted and decoded into the values of a and b according to a preset inverse binarization scheme:
according to the current number R of remaining elementsiDetermining the next remaining number nrpiValue range and the next remaining number nrpiThe value range is divided into a plurality of consecutive sequentially numbered segments as follows:
will be next oneResidual number nrpiIs divided into predetermined I +1 integer intervals Ni,Ni+1),i=0~I;
Calculation nrpiComprises the following steps: nrpi=Na+b。
(B) Calculating the current string length according to the code containing the string length parameter information obtained in the step (A)i(ii) a The string length information is the next remaining number nrpi
The length of the stringiThe sum currtlen of the current decoded element length subtracted from the current block size cuSize and the next remaining number nrpiThe calculation is carried out according to the following method:
lengthi=cuSize-curTlen-nrpi
for example:
nrpithe inverse binarization of (1) consists of at least two parts:
obtaining a first part maximum value maxValPrefix from at least the current residual number by adopting a reverse binarization mode of truncating a unary code and at least according to a preset first part maximum value calculation mode, and obtaining the value a of the first part by using the reverse binarization mode of truncating the unary code of which the truncation value, namely the maximum value maxVal, is maxValPrefix; the inverse binarization method of the truncated unary code using the truncated value, i.e., the maximum value maxVal, as maxValPrefix may be a table lookup method or a calculation method. An example of the way the table is looked up: obtaining synElVal from Table 1 using a truncated value, i.e., the maximum value maxVal, as maxValPrefix and a binary string symbol, a being equal to synElVal;
if a is equal to 0, the second part and the rest part do not exist in the compressed data code stream, and the next remaining number nrp is directly addediIs set to 0; otherwise, if a is larger than 0, continuing to perform inverse binarization on the segmented truncated binary codes of the following second part;
the value b of the second part is subjected to inverse binarization by using a segmented truncated binary code:
nrp determining a next remaining number based at least on the current remaining numberiIs divided into a predetermined Imax +1 integer interval [ N ]i,Ni+1),i=0~Imax;
Determining the value i of a segment at least from the value a of the first part in such a way that i-a;
the second partial maximum value maxvallinfix is obtained at least depending on the value i of the segment in such a way that maxvallinfix ═ Ni+1-Ni–1;
Obtaining a value b of the second part by using a reverse binarization mode of a truncated binary code with a truncated value, namely a maximum value maxVal, as maxValInfix;
obtaining a next remaining number nrp based at least on the value of i for the segment and/or the value of b for the second portioniIs nrpi=Ni+b。
Where Imax is 4, i is 0, 1,2, 3, or 4, N00、N01、N02、N03、N04、N050, 1, 5, 21, 277, respectively, the maximum value of the current remaining number R.
(C) With the current string lengthiAnd the sum of the currently decoded element lengths currtlen updates the sum of the currently decoded element lengths currtlen; the method specifically comprises the following steps:
curTlen=curTlen+lengthi
example 3
A string length parameter encoding method, comprising the steps of:
the pixel unit is an array of mxn pixels or pixel components, and m and n are predetermined positive integers including 1,2, 4, 8, and 16, respectively. When m and n take on the value 1, the pixel unit is one pixel or one pixel component or one pixel index or one index.
Repeating the following steps until a pixel cell string or a sequence of pixel string lengths (length) in the current coding block1、length2、......lengthn) And (3) after the coding is finished:
(1) obtaining the current block size cuSize and the current string lengthiAnd the sum of the lengths of the currently encoded elements, currtlen, the next remaining number nrp is calculatediAs a string length parameter for the current string;
the next remaining number nrpiThe sum of the lengths of all strings following the current string in the current block, i.e. the sum curTlen of the current block size cuSize minus the length of the currently encoded elements and the current string lengthiIt is written as:
nrpi=cuSize-curTlen-lengthi
where cuSize is the current block size, curTlen is the sum of the lengths of the currently encoded elements, lengthiCurrent string length, i ═ 1,2 … …;
the total number of strings in the current block does not exceed 1/4 for the current block size.
(2) Carrying out binarization on the current string length parameter obtained in the step (1), and writing the binarized data into a compressed data code stream;
the binarization scheme in which the string length parameter is, i.e., the next remaining number nrpiPreferably, the binarization is performed according to the distribution probability of the next remaining number and according to the principle that the higher the distribution probability is, the shorter the code after binarization is, so that the string length parameter value with higher occurrence frequency consumes less bit number, thereby further improving the compression ratio;
according to the current encoding method, elements (pixels or pixel arrays) in one encoding block are likely to be divided into the same string, so that the frequency of the next remaining number 0 is quite high, and encoding is performed with as few bits as possible, specifically as follows:
the current number of remaining elements RiCalculating the number R of the current remaining elements in the current block for the difference between the current block size cuSize and the sum of the lengths of the currently encoded elements currTleniThe following were used:
Ri=cuSize-curTlen
if R isi1, nrpiThe value is set to 0 and there is no next remaining number nrp in the compressed data code streamiThe binary string of symbols of (1); otherwise, i.e. Ri> 1, there is a next remaining number nrp in the compressed data streamiThe binary symbol string is subjected to inverse binarization to obtain the next binary symbol stringNumber of remainders nrpi
The next remaining number of said future nrpiBinarization, specifically comprising:
s1, the next remaining number of the future nrpiThe first part, the second part and the third part are adopted to show that:
nrpi=Na+(b<<k)+c-(2n-maxValInfix-1)×k
wherein a is the value of the first part, b is the value of the second part, maxValInfix is the maximum value of the second part, and n is the length of the fixed-length code of the second part; k is the length of the third part fixed length code; the method specifically comprises the following steps:
according to the current number R of remaining elementsiDetermining the next remaining number nrpiValue range and the next remaining number nrpiThe value range is divided into a plurality of consecutive sequentially numbered segments as follows:
will next remain nrpiIs divided into a predetermined Imax +1 integer interval [ Ni, Ni +1), i is 0-Imax; for example, Imax is 4, i is 0, 1,2, 3, or 4, N00、N01、N02、N03、N04、N050, 1, 5, 21, 277, respectively, the maximum value of the current remaining number R.
Determination nrpiSegment number a of a segment preceding the segment in which the value of (a) is located;
determining a second partial maximum as: maxValInfix ═ Na+1–Na-1, the length n of the second partial fixed length code is: n ═ Ceil (Log (maxValInfix + 1));
the second part b values are: when k is 0, b is nrpi-Na(ii) a Otherwise, k is 1 and b is (nrp)i–Na+1+(1<<n))>>1, wherein>>In order to perform the right-shift operation,<<is a left shift operation; wherein k is the length of the fixed length code of the third part, and the calculation method is as follows: nrpi-Na is less than 2n-maxValInfix-1 or maxValInfix is equal to 0, the value of k is set to 0; otherwise, the value of k is set to 1.
The third part c has the value: c nrpi-Na-(b<<1)+((1<<n)-(maxValInfix+1))=nrpi–Na+1-(b<<1)+(1<<n);
S2, writing the code stream after a and/or b and/or c are/is binarized respectively, wherein the binarization of a can adopt truncated unary code, truncated binary code, truncated k-order exponential Golomb code or fixed length code derived from a maximum value; and b and c adopt fixed-length codes. The method specifically comprises the following steps:
for the first part: the a value of the first part is written into a code stream after being binarized by adopting a truncated unary code;
for the second part: if the length n of the fixed-length code of the second part is calculated to be equal to or greater than 1, the value b of the second part is written into the code stream after binarization by adopting the fixed-length code with the length n; otherwise, if n is smaller than 1, the second part of binary symbol string is empty, that is, does not actually exist in the compressed data code stream;
for the third part: if k is not equal to 0, the c value of the third part is binarized by adopting a fixed length code with the length of 1 and then written into a code stream; otherwise, k is equal to 0, the third binary symbol string is empty, that is, actually does not exist in the compressed data code stream.
(3) With the current string lengthiAnd the sum of the currently encoded element lengths currtlen updates the sum of the currently encoded element lengths currtlen; the method specifically comprises the following steps:
curTlen=curTlen+lengthi
example 4
A method for decoding string length parameters, corresponding to embodiment 3, comprising the steps of:
repeating the following steps until a pixel cell string or a sequence of pixel string lengths (length) in the currently decoded block1、length2、......lengthn) And (3) finishing decoding:
(A) sequentially acquiring a binary compressed data code stream of a current string in a current block, and performing reverse binarization to obtain a code of the current string, which contains string length parameter information; the string length parameter is the next remaining number nrpi(ii) a The method specifically comprises the following steps:
the current number of remaining elements RiCalculating the number R of the current remaining elements in the current block for the difference between the current block size cuSize and the sum of the currently decoded element lengths currTleniThe following were used:
Ri=cuSize-curTlen
if R isi1, nrpiThe value is set to 0 and there is no next remaining number nrp in the compressed data code streamiThe binary string of symbols of (1); otherwise, i.e. RiIf the residual number is greater than 1, nrp is the next residual number in the compressed data code streamiThe next remaining number nrp obtained by inverse binarizationi
The inverse binarization obtains a next remaining number nrpiThe method specifically comprises the following steps:
decoding the compressed data code stream of the binarization of the current string in the current block into nrp including the next residual number according to a preset inverse binarization schemeiThe number of the segment in which the value lies is used to mark the next remaining number nrpiA vector of parameters of values; nrp according to the preset next remaining numberiScheme for dividing value range into a plurality of consecutive sequentially numbered segments, said including said next remaining number nrpiThe number of the segment in which the value lies is used to mark the next remaining number nrpiThe parameter vector of values is converted into the next remaining number nrpiA value of (d); the preset next remaining number nrpiThe scheme of value range division into a plurality of consecutive sequentially numbered segments is based on the next remaining number nrpiValue range determination, said one remaining number nrpiValue range according to the current number R of remaining elementsiAnd (4) determining.
If the current remaining pixel unit or number of pixels in the decoding block is called the current remaining number RiEqual to 1, there is no next remaining number nrp in the compressed data streamiBinary string of symbols of (1), directly connected nrpiIs set to 0; otherwise, i.e. Ri>1, continue to nrp according to the predetermined inverse binarization schemeiCarrying out inverse binarization:
nrpithe inverse binarization consists of at least three parts:
for the value a of the first part: using a reverse binarization mode of truncated unary codes, at least according to a predetermined first partial maximum value calculation mode, calculating at least the current residual number RiObtaining a first partial maximum value maxValPrefix, and obtaining a value a of the first partial by using a reverse binarization mode of a truncated unary code of which a truncated value, namely the maximum value maxVal, is maxValPrefix; if a is equal to 0, the second part, the third part and the rest part do not exist in the compressed data code stream, and the next remaining number nrp is directly addediIs set to 0; otherwise, if a is larger than 0, continuing to perform reverse binarization on the following second part and third part;
for the value b of the second part: according to the current residual number RiThe next remaining number nrpiIs divided into a predetermined I +1 integer interval [ N ]i,Ni+1) I is 0 to Imax, and a second partial maximum value maxValInfix is determined, maxValInfix being Na+1–Na-1 and deriving the length n of the second partial fixed length code, n ═ Ceil (Log (maxValInfix + 1)); if n is equal to or greater than 1, obtaining the value b of the second part by using the inverse binarization mode of the fixed-length code with the length of n, otherwise, namely n is less than 1, the binary symbol string is empty, namely does not exist in the compressed data code stream actually, so that the value b of the second part is directly set to 0 without analyzing the compressed data code stream; for example where Imax is 4, i is 0, 1,2, 3, or 4, N00、N01、N02、N03、N04、N050, 1, 5, 21, 277, respectively, the maximum value of the current remaining number R.
For the third part: according to the value b of the second part, the length k of the fixed-length code of the third part is obtained, if b is smaller than 2n-maxValInfix-1 or maxValInfix is equal to 0, the value of k is set to 0, otherwise, the value of k is set to 1; if k is equal to or greater than 1, obtaining the value c of the third part by using an inverse binarization mode of the fixed-length code with the length of k, otherwise, if k is less than 1, the binary symbol string is empty, namely does not exist in the compressed data code stream actually, so that the value c of the third part is directly set to 0 without analyzing the compressed data code stream;
obtaining a next remaining number nrp according to the value a of the segment and the value b of the second part, the length n of the second part fixed length code, the value c of the third part, and the length k of the third part fixed length codeiThe values of (a) are as follows:
nrpi=Na+(b<<k)+c-(2n-maxValInfix-1)×k
(B) calculating the current string length according to the code containing the string length parameter information obtained in the step (A)i(ii) a The string length information is the next remaining number nrpi
The length of the stringiThe sum currtlen of the current decoded element length subtracted from the current block size cuSize and the next remaining number nrpiThe calculation is carried out according to the following method:
lengthi=cuSize-curTlen-nrpi
(C) with the current string lengthiAnd the sum of the currently decoded element lengths currtlen updates the sum of the currently decoded element lengths currtlen; the method specifically comprises the following steps:
curTlen=curTlen+lengthi
it will be understood by those skilled in the art that the foregoing is only a preferred embodiment of the present invention, and is not intended to limit the invention, and that any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the scope of the present invention.

Claims (10)

1. A method or apparatus for encoding string length parameters, comprising at least the steps or modules of:
(1) according to at least the current block size cuSize and the current string lengthiAnd the sum of the lengths of the currently encoded elements, currtlen, the next remaining number nrp is calculatediAs a string length parameter for the current string;
the next remaining number nrpiThe number of remaining elements in the current block after encoding the current string;
(2) and at least writing information representing the string length parameter value into a compressed data code stream.
2. A string length parameter decoding method, comprising at least the steps of:
(A) analyzing a compressed data code stream in a current block, and at least obtaining information containing a string length parameter value of a current string; the string length parameter is the next remaining number nrpi
The next remaining number nrpiThe number of elements remaining in the current block after decoding the current string;
(B) obtaining a current string length h according to a predetermined string length calculation mode at least according to the current block size cuSize, the sum curTlen of the number of elements decoded currently, and the next remaining numberi
3. The string length parameter decoding method according to claim 2, wherein said obtaining the current string length by a predetermined string length calculation methodiThe method specifically comprises the following steps:
current string lengthiThe calculation is as follows:
lengthi=cuSize-curTlen-nrpi
or
lengthi=Ri-nrpi
Wherein R isiIs the number of the current remaining elements; preferably the current number R of remaining elementsiCalculating the number R of the current remaining elements in the current block for the difference between the current block size cuSize and the sum of the currently decoded element lengths currTleniThe following were used:
Ri=cuSize-curTlen
preferably, the next remaining number is in the range of [0, Ri-1]。
Preferably, the element includes a pixel or a pixel component or a pixel index or a pixel unit; the pixel unit is an array of mxn pixels or components or indexes, m and n are predetermined positive integers including 1,2, 4, 8, 16, respectively; when m and n both take the value 1, the pixel unit is a pixel or a pixel component or a pixel index or an index.
4. The string length parameter decoding method according to claim 3, wherein when R is reachediWhen 1, nrpiThe value is set to 0 and there is no next remaining number nrp in the compressed data code streamiThe binary string of symbols of (1); otherwise, i.e. Ri> 1, there is a next remaining number nrp in the compressed data streamiThe next remaining number nrp is de-binarizediThe next remaining number nrp obtained for the binary symbol stringi
5. The string length parameter decoding method according to claim 4, wherein the inverse binarization next remaining number nrpiThe next remaining number nrp obtained for the binary symbol stringiThe method specifically comprises the following steps:
nrp is the next residual number in the compressed data code stream of the current string in the current blockiIs decoded to include the next remaining number nrp according to a preset anti-binarization schemeiThe number of the segment in which the value lies is used to mark the next remaining number nrpiA vector of parameters of values; nrp according to the preset next remaining numberiScheme for dividing value range into a plurality of consecutive sequentially numbered segments, said including said next remaining number nrpiThe number of the segment in which the value lies is used to mark the next remaining number nrpiThe parameter vector of values is converted into the next remaining number nrpiA value of (d); preferably said preset next remaining number nrpiThe scheme of value range division into a plurality of consecutive sequentially numbered segments is based on the next remaining number nrpiValue range determination, preferably said one remaining number nrpiValue range according to the current number R of remaining elementsiAnd (4) determining.
6. The string length parameter decoding method according to claim 4, wherein the inverse binarization next remaining number nrpiThe binary string of (a) is composed of at least two parts:
the first part adopts an inverse binarization mode of truncated unary codes or truncated binary codes or truncated k-order exponential Golomb codes or fixed length codes derived from a maximum value;
the second part adopts a segmented inverse binarization mode of truncated binary codes, the number of segments and/or the demarcation point of the segments are/is derived from at least the current residual number, the number of the segments is allowed to be 0, and the second part is empty or does not exist.
7. The string length parameter decoding method according to claim 4, wherein the inverse binarization next remaining number nrpiThe binary string of (a) consists of at least three parts:
the first part adopts an inverse binarization mode with a maximum value, wherein the inverse binarization mode comprises a truncated unary code or a truncated binary code or a truncated k-order exponential Golomb code or a fixed length code derived from a maximum value;
the second part adopts a segmented inverse binarization mode of fixed-length codes derived from a maximum value, the number of segments and/or the demarcation point of the segments are derived from at least the current residual number, the number of the segments is allowed to be 0, and the second part is empty or does not exist;
the third part adopts an inverse binarization mode of a segmented fixed-length code, the number of segments and/or the demarcation point of the segments are/is derived from at least the first part and/or the second part, the number of segments is allowed to be 0, and the third part is empty or nonexistent.
8. The string length parameter decoding method according to claim 4, wherein the inverse binarization next remaining number nrpiThe next remaining number nrp obtained for the binary symbol stringiThe method specifically comprises the following steps:
using a truncation code with a truncation value, i.e. maximum value maxVal, for said nextNumber of remainders nrpiThe binary symbol string of (a) is subjected to inverse binarization, and the truncation code comprises one or a combination of the following codes:
truncating a unary code, or
Truncated binary code, i.e. truncated fixed length code, having at most two code lengths, or
The fixed length code derived from said maximum value preferably consists of the shorter of the truncated binary codes having said maximum value, or
Truncating an exponential golomb code of a predetermined order, i.e. truncating an exponential golomb code of k order;
preferably, at least according to the number R of the currently remaining elementsiDetermining the maximum value maxVal; preferably, the maximum value maxVal is allowed to be 0, indicating that the corresponding code is a null code, that is, a binary symbol string does not actually exist.
9. The string length parameter decoding method according to claim 8, wherein the preferred element is a pixel unit consisting of 4x1 pixels or components or indices;
the inverse binarization next remaining number nrpiThe next remaining number nrp obtained for the binary symbol stringiOne of the following two schemes is applied;
the first scheme is as follows:
the next remaining number of said binary string of symbols comprises at least three parts, the inverse binarization of which comprises at least the steps of:
carrying out inverse binarization on the first part of the binary symbol string by adopting a truncation code comprising a truncation unary code or a truncation binary code or a truncation k-order exponential Golomb code;
selecting one of predetermined I +1 kinds of truncated codes for a second part of the binary symbol string to inversely binarize the second part of the binary symbol string, each of the I +1 kinds of truncated codes being a fixed length code derived from a maximum value or a truncated binary code having a maximum value; the maximum value is at least based on the number R of the current remaining elementsiAnd said first portion, the maximum value allowed to be 0, indicating that said second portion is empty, i.e. not present;
performing inverse binarization on a third part of the binary symbol string by adopting a fixed-length code with a code length k, wherein the code length k is derived from at least the first part and/or the second part, and the code length k is allowed to be 0 and represents that the third part is empty or does not exist;
scheme II:
the next remaining number of the binary string of symbols comprises a flag bit, and at least three portions; the flag bit is a one-bit binary symbol, namely a fixed length code with the code length of 1 indicates whether the next remaining number is zero or not;
when the result of the binary symbol of the flag bit indicates that the next remaining number is not zero, i.e., equal to or greater than 1, the binary symbol string flag bit other than the next remaining number is binarized to reduce the next remaining number by 1, and the binary symbol string flag bit other than the next remaining number is binarized, including at least the following steps:
carrying out inverse binarization on the first part of the binary symbol string by adopting a truncation code comprising a truncation unary code or a truncation binary code or a truncation k-order exponential Golomb code;
selecting one of predetermined I +1 kinds of truncated codes for a second part of the binary symbol string to inversely binarize the second part of the binary symbol string, each of the I +1 kinds of truncated codes being a fixed length code derived from a maximum value or a truncated binary code having a maximum value; the maximum value is at least based on the number R of the current remaining elementsiAnd said first portion, the maximum value allowed to be 0, indicating that said second portion is empty, i.e. not present;
and performing inverse binarization on a third part of the binary symbol string by adopting a fixed-length code with a code length k, wherein the code length k is derived from at least the first part and/or the second part, and the code length k is allowed to be 0 and indicates that the third part is empty or does not exist.
Preferably, the next remaining number nrpiOr dividing the total value range of the next residual number minus 1 into a preset Imax +1 integer interval [ N0 ]i,N0i+1),i=0~Imax;
The first mentionedTwo parts where I is satisfied with the condition N0I≤R-1<N0I+1Namely N0I<R≤N0I+1I of (1); in scheme one, R is equal to Ri(ii) a Alternatively, in scheme two, R is equal to Ri-1;
The maximum value maxValPrefix of the truncation code adopted by the first part is equal to I, and the truncation code with the maximum value maxValPrefix is adopted to perform inverse binarization on the first part of the binary symbol string to obtain the value a of the first part;
the second part selects the ith truncated code in the preset I +1 truncated codes to perform inverse binarization on the second part of the binary symbol string; the i is equal to the value a of the first portion; the maximum value maxValInfix of the truncation code adopted by the second part is equal to Ni+1-Ni-1, wherein Ni=N0i,Ni+1=min(N0i+1R), i.e., maxValInfix ═ min (N0)i+1-N0i-1,R-N0i-1); the next remaining number nrpiOr the next remaining number minus 1 is in the range of [ N ]i,Ni+1)。
Preferably, in the first embodiment, Imax is 4, i is 0, 1,2, 3, or 4, N00、N01、N02、N03、N04、N05R is the maximum value of 0, 1, 5, 21, 277 and RiMaximum value of (d);
or,
in scheme two, Imax is 3, i is 0, 1,2, or 3, N00、N01、N02、N03、N04R is the maximum value of 0, 4, 20, 276 and Ri-a maximum value of 1.
Preferably, in the first embodiment, Imax is 3, i is 0, 1,2, or 3, and N00、N01、N02、N03、N04R is the maximum value of 0, 1, 5, 21 and RiMaximum value of (d);
or,
in scheme two, Imax is 2, i is 0, 1, or 2, N00、N01、N02、N03R is the maximum value of 0, 4, 20 and Ri-a maximum value of 1.
10. A string length parameter decoding apparatus, comprising: the device comprises a compressed data code stream analysis module and a string length calculation module;
the compressed data code stream analyzing module is used for at least storing the current block size cuSize and the sum currtlen of the lengths of the currently decoded elements, at least obtaining information representing the string length parameter value of the current string, and submitting the information to the string length calculating module; the string length parameter is the next remaining number nrpi(ii) a The next remaining number nrpiIs the number of remaining elements in the current block after decoding the current string;
the string length calculating module is configured to obtain a string length according to a predetermined string length calculating manner, according to at least the current block size cuSize, a sum currlen of the number of elements currently decoded, and the next remaining numberi
Preferably, the string length calculating module is configured to calculate a string length according to a current string lengthiAnd updating the sum currTlen of the lengths of the elements currently decoded; the string length information is the next remaining number nrpi
Preferably, the string length is obtained according to a predetermined string length calculation modeiThe sum currtlen of the current decoded element length subtracted from the current block size cuSize and the next remaining number nrpiIt is written as:
lengthi=cuSize-curTlen-nrpi
or
lengthi=Ri-nrpi
Wherein R isiIs the number of the current remaining elements;
preferably, the obtaining of the information indicating the string length parameter value of the current string specifically includes obtaining a compressed binary data code stream of the current string in the current block, and performing inverse binarization to obtain an encoding of the current string that contains string length parameter information specifically:
the number R of the current remaining elements is calculated from the current block size cuSize and the sum of the lengths of the currently decoded elements currTleni
The current number of remaining elements RiCalculating the number R of the current remaining elements in the current block for the difference between the current block size cuSize and the sum of the currently decoded element lengths currTleniThe following were used:
Ri=cuSize-curTlen
preferably, the next remaining number is in the range of [0, Ri-1];
Preferably, the element includes a pixel or a pixel component or a pixel index or a pixel unit; the pixel unit is an array of mxn pixels or components or indexes, m and n are predetermined positive integers including 1,2, 4, 8, 16, respectively; when m and n both take the value 1, the pixel unit is a pixel or a pixel component or a pixel index or an index; the preferred element is a pixel element consisting of 4x1 pixels or components or indices.
Preferably, when R isiWhen 1, nrpiThe value is set to 0 and there is no next remaining number nrp in the compressed data code streamiThe binary string of symbols of (1); otherwise, i.e. RiIf the residual number is greater than 1, nrp is the next residual number in the compressed data code streamiThe next remaining number nrp obtained by inverse binarizationi
Preferably the next remaining number obtained by the inverse binarization nrpiThe method specifically comprises the following steps:
according to the number R of the current remaining elementsiDetermining the next remaining number nrpiValue range and get its next remaining number nrpiA scheme in which the value range is divided into a plurality of consecutive sequentially numbered segments; nrp according to the preset next remaining numberiScheme for dividing value range into a plurality of consecutive sequentially numbered segments, said including said next remaining number nrpiThe number of the segment in which the value lies is used to mark the next remaining number nrpiConversion of a parameter vector of values toThe next remaining number nrpiSo as to decode the compressed binary data code stream of the current string in the current block to include the next remaining number nrp according to a preset inverse binarization schemeiThe number of the segment in which the value lies is used to mark the next remaining number nrpiA vector of parameters of values.
Preferably, the string length calculation module updates the sum currtlen of the currently decoded element lengths to be equal to the current string lengthiAnd the sum of the currently decoded element lengths currtlen updates the sum of the currently decoded element lengths currtlen; the method specifically comprises the following steps:
curTlen=curTlen+lengthi
the compressed data code stream parsing module is preferably configured to perform inverse binarization on the next remaining number of binary symbol strings by using a truncation code having a truncation value, i.e., a maximum value maxVal, where the truncation code includes one or a combination of the following codes:
truncating a unary code, or
Truncated binary code, i.e. truncated fixed length code, having at most two code lengths, or
The fixed length code derived from the maximum value is composed of the shorter code of the truncated binary code having the maximum value, or
Truncating an exponential golomb code of a predetermined order, i.e. truncating an exponential golomb code of k order;
preferably, at least according to the number R of the currently remaining elementsiDetermining the maximum value maxVal; the maximum maxVal is allowed to be 0, indicating that the corresponding code is a null code, i.e., a binary symbol string does not actually exist
Preferably, the next remaining number of binary symbol strings and the inverse binarization operation thereof are composed of at least three parts;
when the number R of the current remaining elementsiWhen the number is equal to 1, all parts of the binary symbol string are empty, namely, the binary symbol string does not exist in a compressed data code stream, and the value of the next remaining number is 0;
when the number R of the current remaining elementsiWhen the value is more than 1, one of the following two schemes is applied to carry out inverse binarization:
The first scheme is as follows:
the next remaining number of said binary string of symbols comprises at least three parts, the inverse binarization of which comprises at least the steps of:
carrying out inverse binarization on the first part of the binary symbol string by adopting a truncation code comprising a truncation unary code or a truncation binary code or a truncation k-order exponential Golomb code;
selecting one of predetermined I +1 kinds of truncated codes for a second part of the binary symbol string to inversely binarize the second part of the binary symbol string, each of the I +1 kinds of truncated codes being a fixed length code derived from a maximum value or a truncated binary code having a maximum value; the maximum value is at least based on the number R of the current remaining elementsiAnd said first portion, the maximum value allowed to be 0, indicating that said second portion is empty, i.e. not present;
performing inverse binarization on a third part of the binary symbol string by adopting a fixed-length code with a code length k, wherein the code length k is derived from at least the first part and/or the second part, and the code length k is allowed to be 0 and represents that the third part is empty or does not exist;
scheme II:
the next remaining number of the binary string of symbols comprises a flag bit, and at least three portions; the flag bit is a one-bit binary symbol, namely a fixed length code with the code length of 1 indicates whether the next remaining number is zero or not;
when the result of the binary symbol of the flag bit indicates that the next remaining number is not zero, i.e., equal to or greater than 1, the binary symbol string flag bit other than the next remaining number is binarized to reduce the next remaining number by 1, and the binary symbol string flag bit other than the next remaining number is binarized, including at least the following steps:
carrying out inverse binarization on the first part of the binary symbol string by adopting a truncation code comprising a truncation unary code or a truncation binary code or a truncation k-order exponential Golomb code;
selecting a predetermined I +1 truncation code for a second portion of the binary symbol stringPerforming inverse binarization on a second part of the binary symbol string, wherein each of the I +1 truncated codes is a fixed-length code derived from a maximum value or a truncated binary code having a maximum value; the maximum value is at least based on the number R of the current remaining elementsiAnd said first portion, the maximum value allowed to be 0, indicating that said second portion is empty, i.e. not present;
and performing inverse binarization on a third part of the binary symbol string by adopting a fixed-length code with a code length k, wherein the code length k is derived from at least the first part and/or the second part, and the code length k is allowed to be 0 and indicates that the third part is empty or does not exist.
Preferably, the next remaining number nrpiOr dividing the total value range of the next residual number minus 1 into a preset Imax +1 integer interval [ N0 ]i,N0i+1),i=0~Imax;
In the second part, I is a condition satisfying N0I≤R-1<N0I+1Namely N0I<R≤N0I+1I of (1); in scheme one, R is equal to Ri(ii) a Alternatively, in scheme two, R is equal to Ri-1;
The maximum value maxValPrefix of the truncation code adopted by the first part is equal to I, and the truncation code with the maximum value maxValPrefix is adopted to perform inverse binarization on the first part of the binary symbol string to obtain the value a of the first part;
the second part selects the ith truncated code in the preset I +1 truncated codes to perform inverse binarization on the second part of the binary symbol string; the i is equal to the value a of the first portion; the maximum value maxValInfix of the truncation code adopted by the second part is equal to Ni+1-Ni-1, wherein Ni=N0i,Ni+1=min(N0i+1R), i.e., maxValInfix ═ min (N0)i+1-N0i-1,R-N0i-1); the next remaining number nrpiOr the next remaining number minus 1 is in the range of [ N ]i,Ni+1)。
Preferably, in the first embodiment, Imax is 4, i is 0, 1,2, 3, or 4, N00、N01、N02、N03、N04、N05R is the maximum value of 0, 1, 5, 21, 277 and RiMaximum value of (d);
or,
in scheme two, Imax is 3, i is 0, 1,2, or 3, N00、N01、N02、N03、N04R is the maximum value of 0, 4, 20, 276 and Ri-a maximum value of 1.
Preferably, in the first embodiment, Imax is 3, i is 0, 1,2, or 3, and N00、N01、N02、N03、N04R is the maximum value of 0, 1, 5, 21 and RiMaximum value of (d);
or,
in scheme two, Imax is 2, i is 0, 1, or 2, N00、N01、N02、N03R is the maximum value of 0, 4, 20 and Ri-a maximum value of 1.
CN202011324094.XA 2020-11-23 2020-11-23 String length parameter coding and decoding method and device Active CN112532990B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011324094.XA CN112532990B (en) 2020-11-23 2020-11-23 String length parameter coding and decoding method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011324094.XA CN112532990B (en) 2020-11-23 2020-11-23 String length parameter coding and decoding method and device

Publications (2)

Publication Number Publication Date
CN112532990A true CN112532990A (en) 2021-03-19
CN112532990B CN112532990B (en) 2024-03-08

Family

ID=74993106

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011324094.XA Active CN112532990B (en) 2020-11-23 2020-11-23 String length parameter coding and decoding method and device

Country Status (1)

Country Link
CN (1) CN112532990B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113518222A (en) * 2021-06-07 2021-10-19 同济大学 Coding and decoding method and device for different types of strings by adopting different length binarization schemes

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016202189A1 (en) * 2015-06-14 2016-12-22 同济大学 Image coding and decoding methods, image processing device, and computer storage medium
CN107483962A (en) * 2016-06-08 2017-12-15 上海天荷电子信息有限公司 Use the data compression method and device for associating more segment encodes
CN107770553A (en) * 2016-08-21 2018-03-06 上海天荷电子信息有限公司 Using the data compression method and device of multiclass match parameter and parameter storage address
US20180167623A1 (en) * 2015-06-08 2018-06-14 Tongji University Image encoding and decoding methods, image processing device, and computer storage medium
US20180205951A1 (en) * 2014-06-20 2018-07-19 Hfi Innovation Inc. Method and apparatus of binarization and context-adaptive coding for syntax in video coding
WO2020138352A1 (en) * 2018-12-26 2020-07-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN111866512A (en) * 2020-07-29 2020-10-30 腾讯科技(深圳)有限公司 Video decoding method, video encoding method, video decoding apparatus, video encoding apparatus, and storage medium

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180205951A1 (en) * 2014-06-20 2018-07-19 Hfi Innovation Inc. Method and apparatus of binarization and context-adaptive coding for syntax in video coding
US20180167623A1 (en) * 2015-06-08 2018-06-14 Tongji University Image encoding and decoding methods, image processing device, and computer storage medium
WO2016202189A1 (en) * 2015-06-14 2016-12-22 同济大学 Image coding and decoding methods, image processing device, and computer storage medium
CN107483962A (en) * 2016-06-08 2017-12-15 上海天荷电子信息有限公司 Use the data compression method and device for associating more segment encodes
CN107770553A (en) * 2016-08-21 2018-03-06 上海天荷电子信息有限公司 Using the data compression method and device of multiclass match parameter and parameter storage address
WO2020138352A1 (en) * 2018-12-26 2020-07-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN111866512A (en) * 2020-07-29 2020-10-30 腾讯科技(深圳)有限公司 Video decoding method, video encoding method, video decoding apparatus, video encoding apparatus, and storage medium

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
BENJAMIN BROSS: "Proposed modifications to add default values for VUI syntax elements and signal the VUI length", JVET, 1 July 2020 (2020-07-01) *
XIN SONG: "An Adaptive Cycle Decrease Encoding Scheme for Short Length LT Codes", IEEE, 9 July 2018 (2018-07-09) *
ZHAO LIPING: "一种基于字节型多变长码的串匹配的Alpha 图像编码算法", 《研究与开发》, pages 97 - 104 *
ZHAO, LIPING: "An Ultra-Low Complexity and High Efficiency Approach for Lossless Alpha Channel Coding", IEEE *
史敬灼;徐美玉;徐殿国;: "基于CPLD的Manchester编码器与解码器", 电气应用, no. 05 *
史敬灼;徐美玉;徐殿国;: "基于CPLD的Manchester编码器与解码器", 电气应用, no. 05, 19 May 2006 (2006-05-19) *
潘承宝: "一种改进的串匹配参数编码算法 及在Alpha 图像中的应用", 绍兴文理学院学报, pages 69 - 73 *
赵利平;周开伦;郭靖;蔡文婷;林涛;朱蓉;: "融合像素串匹配的AVS2全色度屏幕与混合内容视频编码算法", 计算机学报, no. 11 *
赵利平;周开伦;郭靖;蔡文婷;林涛;朱蓉;: "融合像素串匹配的AVS2全色度屏幕与混合内容视频编码算法", 计算机学报, no. 11, 15 March 2017 (2017-03-15) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113518222A (en) * 2021-06-07 2021-10-19 同济大学 Coding and decoding method and device for different types of strings by adopting different length binarization schemes

Also Published As

Publication number Publication date
CN112532990B (en) 2024-03-08

Similar Documents

Publication Publication Date Title
JP3978478B2 (en) Apparatus and method for performing fixed-speed block-unit image compression with estimated pixel values
CN1725859A (en) The equipment of the method for context adaptive binary arithmetic coding and this method of use
RU2567988C2 (en) Encoder, method of encoding data, decoder, method of decoding data, system for transmitting data, method of transmitting data and programme product
CN112565790B (en) Method and device for encoding and decoding string prediction by using minimum base vector mark
US9245353B2 (en) Encoder, decoder and method
CN105592313A (en) Grouped adaptive entropy coding compression method
CN112637600B (en) Method and device for encoding and decoding data in a lossy or lossless compression mode
CN107770553B (en) Data compression method and device adopting multiple types of matching parameters and parameter storage addresses
CN116320485A (en) Data compression method and apparatus for selecting one of a plurality of low frequency transform matrix candidate sets
CN112532990B (en) String length parameter coding and decoding method and device
CN107770527B (en) Data compression method and apparatus using neighboring encoding parameters and nearest encoding parameters
CN118450131A (en) Method and device for decoding data with fixed-length code unit containing multiple coding parameter variable-length codes
CN108989819B (en) Data compression method and device adopting respective corresponding color spaces for modes
CN107770543B (en) Data compression method and device for sequentially increasing cutoff values in multiple types of matching parameters
Hasnat et al. A proposed multi-image compression technique
CN113395515B (en) Coding and decoding method and device for point prediction of component down-sampling format data
CN112601086B (en) String length parameter hybrid coding and decoding method and device
CN113938683A (en) Coding and decoding method and device for point prediction chroma reconstruction value from multiple reference positions
CN112672160B (en) Encoding and decoding method and device for fusing intra-frame block copy and string copy encoding parameters
CN113422964B (en) String length parameter coding and decoding method and device
CN118317115A (en) Data decoding method and device for equal bit precision prediction, mapping and segment coding
Pancholi et al. Tutorial review on existing image compression techniques
CN108989800B (en) Data compression method and apparatus for generating a compressed data byte stream in byte units
CN114900693B (en) Image compression method, decompression method and device based on block truncated coding
Keerthi et al. Investigations On Image Compression Methodologies Using Hybrid Algorithms

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant