WO2023011005A1 - 图像处理方法及装置、电子设备和存储介质 - Google Patents
图像处理方法及装置、电子设备和存储介质 Download PDFInfo
- Publication number
- WO2023011005A1 WO2023011005A1 PCT/CN2022/098600 CN2022098600W WO2023011005A1 WO 2023011005 A1 WO2023011005 A1 WO 2023011005A1 CN 2022098600 W CN2022098600 W CN 2022098600W WO 2023011005 A1 WO2023011005 A1 WO 2023011005A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- matrix
- block
- zero
- row
- frequency coefficient
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/007—Transform coding, e.g. discrete cosine transform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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 an image region, e.g. an object
- H04N19/176—Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
Definitions
- the present disclosure relates to the technical field of image and video processing, and in particular to an image processing method, an image processing device, electronic equipment, a computer-readable storage medium, and a computer program product.
- Image and video data have strong spatial correlation, and there is a large amount of redundant information in the spatial domain.
- Transform coding technology can transform image or video data from the spatial domain to the frequency domain, greatly reducing redundant information, so as to realize the compression of image or video data, and facilitate the storage and transmission of image or video data.
- each video frame can be predicted, transformed (Transform), quantized, inverse quantized, inverse transformed (Inverse Transform), reconstructed, entropy encoded, etc. at the encoding end to obtain the encoding of each video frame; Then entropy decoding, inverse quantization, inverse transformation and other processing are performed on the encoded data at the decoding end to restore each video frame.
- Both the video encoding process and the video decoding process include inverse transform processing. Inverse transformation processing requires a large amount of calculation, low calculation efficiency, and requires a large amount of memory space, which greatly limits the efficiency of video encoding and decoding.
- the present disclosure provides an image processing method, an image processing device, electronic equipment, a computer-readable storage medium, and a computer program product.
- an image processing method including: acquiring a frequency coefficient matrix of a target image, the frequency coefficient matrix is obtained by performing frequency domain transformation on the target image, and the frequency coefficient
- the matrix includes at least one non-zero frequency coefficient; based on the position of the at least one non-zero frequency coefficient, determine a non-zero block in the frequency coefficient matrix; determine a transformation sub-matrix and a transposition sub-matrix corresponding to the non-zero block; and determining an inverse transform result of the frequency coefficient matrix based on the transform sub-matrix, the non-zero blocks, and the transposed sub-matrix.
- an image processing device including: an acquisition unit configured to acquire a frequency coefficient matrix of a target image, the frequency coefficient matrix is obtained by performing frequency domain transformation on the target image , and the frequency coefficient matrix includes at least one non-zero frequency coefficient; the non-zero block determination unit is configured to determine a non-zero block in the frequency coefficient matrix based on the position of the at least one non-zero frequency coefficient; matrix a determination unit configured to determine a transform sub-matrix and a transpose sub-matrix corresponding to the non-zero block; and an inverse transform unit configured to determine based on the transform sub-matrix, the non-zero block, and the transpose sub-matrix , to determine the inverse transformation result of the frequency coefficient matrix.
- an electronic device including: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores a computer program, and the computer program is executed by The at least one processor implements the method according to the above when executed.
- a non-transitory computer-readable storage medium storing a computer program, wherein the computer program implements the above method when executed by a processor.
- a computer program product including a computer program, wherein the computer program implements the method according to the above when executed by a processor.
- the non-zero blocks in the frequency coefficient matrix of the target image by determining the non-zero blocks in the frequency coefficient matrix of the target image, only the non-zero blocks are calculated to obtain the inverse transformation result of the frequency coefficient matrix, without the need for other Frequency coefficients (that is, frequency coefficients other than zero blocks) are calculated, which greatly reduces the calculation amount of inverse transformation and improves the calculation efficiency of inverse transformation, thereby improving the efficiency of image and video encoding and decoding.
- FIG. 1A shows a schematic diagram of an image encoding and decoding process according to an embodiment of the present disclosure
- FIG. 1B shows a schematic structural diagram of a video encoding end according to an embodiment of the present disclosure
- FIG. 1C shows a schematic structural diagram of a video decoding end according to an embodiment of the present disclosure
- FIG. 2 shows a flowchart of an image processing method according to an embodiment of the present disclosure
- Fig. 3 shows a flow chart of calculating every adjacent multi-row element of an intermediate matrix according to an embodiment of the present disclosure
- FIG. 4 shows a schematic diagram of a calculation process of elements in the first two rows of an intermediate matrix according to an embodiment of the present disclosure
- FIG. 5 shows a structural block diagram of an image processing device according to an embodiment of the present disclosure.
- FIG. 6 shows a structural block diagram of an exemplary electronic device that can be used to implement the embodiments of the present disclosure.
- first, second, etc. to describe various elements is not intended to limit the positional relationship, temporal relationship or importance relationship of these elements, and such terms are only used for Distinguishes one element from another.
- first element and the second element may refer to the same instance of the element, and in some cases, they may also refer to different instances based on contextual description.
- the encoding process of an image is roughly as follows: the image is divided into multiple image blocks, and the image block is used as a transformation unit (Transform Unit, TU) for transformation and encoding.
- the image block can be, for example, a square image with a size of 4*4, 8*8, 16*16, or 32*32, or a rectangular image.
- each image block is transformed separately, and the image block data in the spatial domain is converted to the frequency domain to eliminate redundant information in the image block and obtain the corresponding Matrix of transform coefficients in the frequency domain.
- the method used for the transformation may be, for example, discrete cosine transform (Discrete Cosine Transform, DCT), discrete sine transform (Discrete Sine Transform, DST), etc. Quantize the transformation coefficient matrix obtained through transformation, and perform variable-length coding (for example, Huffman coding, etc.) on the quantized result to obtain a coding result.
- DCT discrete Cosine Transform
- DST discrete sine transform
- variable-length coding for example, Huffman coding, etc.
- the decoding process of an image is roughly as follows: as shown in FIG. 1A , variable-length decoding, inverse quantization, and inverse transformation are performed on the encoding result of each image block to obtain a decoded image block.
- the inverse transformation is the inverse process of the transformation, and the method used in the inverse transformation can be, for example, the inverse discrete cosine transform (Inverse Discrete Cosine Transform, IDCT), the inverse discrete sine transform (Inverse Discrete Sine Transform, IDST), etc.
- the video encoding process is roughly as follows: the original video frame is divided into multiple image blocks, and the image blocks are used as transform units (TUs) for transform encoding.
- the image block can be, for example, a square image with a size of 4*4, 8*8, 16*16, or 32*32, or a rectangular image.
- a YUV video frame is composed of a luma channel (Y), a first chrominance channel (U) and a second chrominance channel (V).
- a video frame may include multiple image blocks of different channels, for example, a YUV video frame may include a luma image block, a first chrominance image block, and a second chrominance image block.
- the encoding end may include an encoding intra-frame prediction module, an encoding inter-frame prediction module, a transformation module, a quantization module, an entropy encoding module, an inverse quantization module, an inverse transformation module, a reconstruction module, a filtering module, and a reference image buffering module , which are respectively used to perform prediction, transformation, quantization, entropy coding, inverse quantization, inverse transformation, reconstruction, filtering and other processing on the original video frame, and finally output the encoded stream of the video.
- the original video frame is used as one input of the adder
- the prediction data output by the encoded intra prediction module or the encoded inter prediction module is another input of the adder
- the adder outputs the prediction residual difference matrix.
- the prediction residual matrix is transformed and quantized to obtain the residual coefficient matrix.
- the residual coefficient matrix is processed by inverse quantization and inverse transformation to restore the prediction residual matrix.
- the recovered prediction residual matrix can be used to reconstruct video frames.
- the method used for the transformation process may be DCT, DST, etc., for example.
- the inverse transform is the inverse process of the transform, and correspondingly, the method adopted for the inverse transform processing may be, for example, IDCT, IDST, and the like.
- the video decoding process is roughly as follows: as shown in FIG. 1C , first entropy decoding is performed on the received coded stream to obtain the residual coefficient matrix, inter-frame prediction related information, intra-frame prediction related information, etc. After the residual coefficient matrix is dequantized and inversely transformed, the prediction residual matrix is recovered. The reconstruction module adds back the prediction residual to the corresponding intra-predicted or inter-predicted data. A switch can be used to select to use intra-frame prediction data or inter-frame prediction data to obtain the reconstructed frame.
- the decoding end may include a decoding intra prediction module, a decoding inter prediction module, an entropy decoding module, an inverse quantization module, an inverse transformation module, a reconstruction module, a filtering module, a reference image buffer module, and a video playback buffer module.
- the inverse transform process can be applied to processes such as image decoding (for inverse transformation of the transform coefficient matrix), video encoding and decoding (for inverse transformation of the residual coefficient matrix).
- the inverse transformation process is computationally intensive.
- the size of TU is 8*8 (that is, the size of the residual coefficient matrix is 8*8)
- the inverse transformation method is IDCT as an example
- the inverse transformation of the residual coefficient matrix X is performed as follows The calculation shown in the formula:
- Y is the result matrix obtained from the inverse transformation process
- H 8 is the 8*8 DCT transformation matrix
- X is the residual coefficient matrix to be inversely transformed
- H 8 T is the transposition matrix of H 8 .
- the elements in the DCT transformation matrix H 8 are calculated through the cosine function, and its value is usually a floating point number.
- the transformation matrix H 8 can be expressed as the product of a common factor of a floating point number and an integer matrix, and correspondingly, the transposition matrix H 8 T of the transformation matrix H 8 can also be expressed as the same common factor and The product of an integer matrix H T .
- the common factor of the 8*8 transformation matrix H 8 and its transpose matrix H 8 T can be 0.0055
- the corresponding integer matrix H corresponding to the transformation matrix H 8 is as follows:
- the integer matrix H T corresponding to the transposed matrix H 8 T is as follows:
- the transformation matrix is referred to by an integer matrix corresponding to the transformation matrix
- the transposition matrix is referred to by an integer matrix corresponding to the transposition matrix of the transformation matrix.
- the residual coefficient matrix X is as follows:
- a butterfly operation may be used to accelerate the calculation process of the inverse transformation.
- the first column of matrix B can be calculated by common terms:
- the frequency coefficient matrix X has only 4 non-zero frequency coefficients located in the upper left corner area, and the values of other frequency coefficients are all zero. If the frequency coefficient matrix X is inversely transformed according to the calculation method of directly performing matrix multiplication or butterfly operation, many calculations will be invalid, because the result of the addition, subtraction, multiplication and division of zero is still zero, resulting in a large amount of storage and waste of computing resources.
- the present disclosure provides an improved image processing method.
- the method obtains the frequency coefficient matrix of the target image, determines the non-zero blocks in the frequency coefficient matrix based on the position of at least one non-zero frequency coefficient included in the frequency coefficient matrix, and converts the transformation matrix and the transformation matrix respectively based on the non-zero blocks. Then, the inverse transformation result of the frequency coefficient matrix is determined based on the transformation submatrix, the non-zero block and the transposition submatrix.
- the image processing method of the embodiment of the present disclosure determines the non-zero blocks in the frequency coefficient matrix of the target image, and only calculates the non-zero blocks to obtain the inverse transformation result of the frequency coefficient matrix, without requiring other frequency coefficients in the frequency coefficient matrix ( That is, the frequency coefficients other than zero blocks) are calculated, which greatly reduces the calculation amount of inverse transformation and improves the calculation efficiency of inverse transformation, thereby improving the efficiency of image and video encoding and decoding.
- FIG. 2 shows a flowchart of an image processing method 200 according to an embodiment of the present disclosure.
- the method 200 can be applied to image decoding or video coding and decoding scenarios, and can improve the calculation efficiency of inverse transformation, thereby improving the efficiency of image decoding and video coding and decoding.
- method 200 may include:
- Step S210 acquiring the frequency coefficient matrix of the target image, the frequency coefficient matrix is obtained by performing frequency domain transformation on the target image, and the frequency coefficient matrix includes at least one non-zero frequency coefficient;
- Step S220 based on the position of at least one non-zero frequency coefficient, determine a non-zero block in the frequency coefficient matrix
- Step S230 determining the transformation sub-matrix and transpose sub-matrix corresponding to the non-zero block.
- Step S240 Determine the inverse transform result of the frequency coefficient matrix based on the transformed sub-matrix, the non-zero block and the transposed sub-matrix.
- the non-zero blocks in the frequency coefficient matrix of the target image by determining the non-zero blocks in the frequency coefficient matrix of the target image, only the non-zero blocks are calculated to obtain the inverse transformation result of the frequency coefficient matrix, and there is no need to perform calculations on other frequency coefficients in the frequency coefficient matrix (i.e. Frequency coefficients other than zero blocks) are calculated, which greatly reduces the calculation amount of inverse transformation and improves the calculation efficiency of inverse transformation, thereby improving the efficiency of image and video encoding and decoding.
- the target image may be, but not limited to, a single image or an image block (ie, TU) in a video frame.
- the target image may be an image block in an image to be decoded, or an image block in a video frame to be encoded or an image block in a video frame to be decoded.
- the target image may be, for example, an image block of a luminance channel of a video frame, or an image block of another channel.
- the target image may also be an image block of the first chroma channel or an image block of the second chroma channel.
- the frequency coefficient matrix of the target image is obtained by transforming the target image in frequency domain.
- the frequency coefficient matrix can be, for example, the transformation coefficient matrix obtained by performing frequency-domain transformation on the image block of the image, or the frequency-domain transformation, quantization, and inverse quantization of the prediction residual of the image block of the video frame.
- the residual coefficient matrix of can be, for example, the transformation coefficient matrix obtained by performing frequency-domain transformation on the image block of the image, or the frequency-domain transformation, quantization, and inverse quantization of the prediction residual of the image block of the video frame.
- the residual coefficient matrix of Methods for performing frequency domain transformation on the target image include but not limited to DCT, DST, and the like.
- the target image can be a square image with the same width and height as 4*4, 8*8, 16*16, 32*32, etc.
- the frequency coefficient matrix obtained by performing frequency domain transformation on the target image can be 4*4 , 8*8, 16*16, 32*32 and other matrices (that is, square matrices) with the same number of rows and columns.
- the target image can also be 4*8, 8*4, 4*16, 16*4, 8*16, 16*8, 16*32, 32*16, 8*32, 32*8, etc.
- the frequency coefficient matrix obtained by performing frequency domain transformation on the target image can be 4*8, 8*4, 4*16, 16*4, 8*16, 16*8, 16*32 , 32*16, 8*32, 32*8 and other matrices with unequal numbers of rows and columns.
- step S220 may include: determining the maximum value of the row coordinate and the maximum value of the column coordinate corresponding to the at least one non-zero frequency coefficient; and determining the non-zero block according to the maximum value of the row coordinate and the maximum value of the column coordinate.
- the non-zero frequency coefficients in the frequency coefficient matrix are usually located in the upper left corner of the matrix, it is possible to obtain Determine the location area where the non-zero frequency coefficients in the non-zero frequency coefficient matrix are located, so as to determine the non-zero blocks in the frequency coefficient matrix.
- the row coordinate of the frequency coefficient may refer to the row where the frequency coefficient is located in the frequency coefficient matrix
- the column coordinate of the frequency coefficient may refer to the column where the frequency coefficient is located in the frequency coefficient matrix
- the non-zero block includes one or more frequency coefficients in the frequency coefficient matrix whose corresponding row coordinates are less than or equal to the maximum value of the row coordinates and whose corresponding column coordinates are less than or equal to the maximum value of the column coordinates. Since the non-zero frequency coefficients in the frequency coefficient matrix are usually located in the upper left corner of the matrix, the maximum value of the row coordinates and the maximum value of the column coordinates correspond to the non-zero frequency coefficients in the lower right corner of the frequency coefficient matrix.
- the non-zero blocks include the frequency coefficients whose row coordinates in the frequency coefficient matrix are less than or equal to the maximum value of the row coordinates and whose column coordinates are less than or equal to the maximum value of the column coordinates, it can be guaranteed that the non-zero blocks include all non-zero frequency coefficients in the frequency coefficient matrix, such that Lossless (that is, no loss of information) inverse transformation can be performed on the frequency coefficient matrix in a subsequent step.
- Lossless that is, no loss of information
- a non-zero block may be composed of one or more frequency coefficients whose corresponding row coordinates are less than or equal to the maximum value of the row coordinates and whose corresponding column coordinates are less than or equal to the maximum value of the column coordinates in the frequency coefficient matrix. That is, a non-zero block is a block located at the upper left corner of the frequency coefficient matrix and whose size is the maximum value of the row coordinate*the maximum value of the column coordinate.
- the non-zero block may be determined according to the following steps: determine the maximum row boundary value of the non-zero block based on the maximum value of the row coordinates; determine the maximum column boundary value of the non-zero block based on the maximum value of the column coordinates, wherein, The maximum row boundary value is the smallest power of 2 that is greater than or equal to the maximum value of the row coordinate, and the maximum column boundary value is the smallest power of 2 that is greater than or equal to the maximum value of the column coordinate.
- a non-zero block consists of all frequency coefficients whose row coordinates are less than or equal to the maximum row boundary value and whose column coordinates are less than or equal to the maximum column boundary value in the frequency coefficient matrix.
- Both the maximum row boundary value and the maximum column boundary value are powers of 2, by expanding the maximum row coordinate value to the maximum row boundary value, expanding the column coordinate maximum value to the maximum column boundary value, and according to the maximum row boundary value, maximum column Boundary value is used to determine the non-zero block, which can make the number of rows and columns of the determined non-zero block be a power of 2, so as to facilitate the optimization of the instruction set and improve the utilization efficiency of the memory space in the subsequent inverse transformation calculation process. Accelerate the calculation process.
- the smallest power of 2 that is greater than or equal to the maximum value of row coordinates 3 is 4, that is, the maximum row boundary value is 4; the smallest power of 2 that is greater than or equal to the maximum value of column coordinates 4 is 4, that is, the maximum column boundary value is 4.
- the non-zero block consists of all frequency coefficients whose row coordinates in the frequency coefficient matrix are less than or equal to the maximum row boundary 4 and whose column coordinates are less than or equal to the maximum column boundary value 4, that is, the non-zero block is 4 in the upper left corner of the frequency coefficient matrix X *4 areas. That is, the non-zero blocks C are as follows:
- step S230 may include: determining a preset transformation matrix and a transpose matrix of the transformation matrix based on the frequency coefficient matrix; The transposed matrix is clipped to obtain the transposed submatrix.
- the transformation matrix and its transpose matrix may be determined by the size of the frequency coefficient matrix. Specifically, the size of the transformation matrix may be determined according to the size of the frequency coefficient matrix.
- the size of the transformation matrix H is the same as the size of the frequency coefficient matrix, that is
- the transformation matrix is a square matrix with the number of rows and columns equal to the number of rows (or columns) of the frequency coefficient matrix.
- the corresponding transformation matrix H and its transpose matrix H T are also an 8*8 square matrix.
- the transformation matrix H is a square matrix whose number of rows and columns are equal to the number of columns of the frequency coefficient matrix
- matrix H T is a square matrix whose number of rows and columns are equal to the number of rows of the frequency coefficient matrix.
- the frequency coefficient matrix is an 8*4 matrix
- the corresponding transformation matrix H is a 4*4 square matrix
- H T is an 8*8 square matrix.
- each element in the transformation matrix can be calculated according to a preset formula, so as to obtain the transformation matrix. Further, the transformation matrix is transposed, that is, the transposition matrix of the transformation matrix is obtained.
- the size of the frequency coefficient matrix is 8*8, and correspondingly, the size of the transformation matrix is also 8*8.
- IDCT the inverse transformation as an example, when the transformation matrix is a square matrix (that is, the number of rows and columns of the transformation matrix is the same), the element D i of the i-th row and j-th column in the transformation matrix can be calculated according to the following formula ,j :
- N is the number of rows (or columns) of the transformation matrix.
- the elements calculated according to the above formula are floating point numbers D i,j .
- the elements D i,j in the transformation matrix can be scaled to convert them into integers, so as to facilitate computer processing.
- the scaling factor of D i,j may be determined according to different application scenarios. For example, for different video coding standards, different scaling factors can be set. For the HEVC (High Efficiency Video Coding, high-efficiency video coding) video coding standard, the elements in the transformation matrix can be enlarged by 128 times; for the AV1 video coding standard, the elements in the transformation matrix can be enlarged by 8192 times.
- HEVC High Efficiency Video Coding, high-efficiency video coding
- the transformation matrix may be clipped to obtain a transformation sub-matrix based on the size of the non-zero blocks, and the transpose matrix of the transformation matrix may be clipped to obtain a transpose sub-matrix.
- the size of the transformed sub-matrix and transposed sub-matrix obtained by clipping is adapted to the size of the non-zero block, and matrix multiplication operation can be performed with the non-zero block.
- the transpose matrix H T is clipped to obtain the 8*4 transposed sub-matrix H T ':
- the change sub-matrix and the transpose sub-matrix can also be directly determined based on the size of the non-zero block.
- the specific method is similar to determining the change matrix and the transpose matrix based on the frequency coefficient matrix, and will not be described in detail here.
- step S240 can be executed to determine the inverse transform result of the frequency coefficient matrix.
- step S240 may be executed in response to at least one of the following conditions: the maximum row boundary value of the non-zero block is less than the total number of rows of the frequency coefficient matrix; the maximum column boundary value of the non-zero block is less than the total number of columns of the frequency coefficient matrix .
- the size of the non-zero block determined according to the maximum row boundary value and the maximum column boundary value is smaller than the frequency
- the size of the coefficient matrix so determining the inverse transformation result of the frequency coefficient matrix based on the non-zero blocks can reduce the calculation amount of the inverse transformation and improve the calculation efficiency.
- step S240 can be performed to inversely transform the frequency coefficient matrix, or step S240 can not be performed, and the traditional method (such as directly performing matrix multiplication or butterfly operation on the frequency coefficient matrix) is directly used to convert the frequency coefficient matrix The matrix is inversely transformed.
- step S240 may include: performing a matrix multiplication operation on the transposed sub-matrix and the non-zero block based on a SIMD instruction to obtain an intermediate matrix; and performing a matrix multiplication operation on the intermediate matrix and the transformed sub-matrix based on a SIMD instruction to obtain a frequency coefficient The result of the inverse transformation of the matrix.
- SIMD Single Instruction Multiple Data
- Common SIMD instruction sets include MMX, SSE, and AVX instruction sets of the X86 architecture, NEON instruction sets of the ARM Cortex architecture, X-Burst instruction sets of the MIPS architecture, and so on.
- Performing matrix multiplication operations on transposed sub-matrixes and non-zero blocks based on SIMD instructions, and performing matrix multiplication operations on intermediate matrices and transformation sub-matrixes can improve the computational efficiency of inverse transformation, thereby improving the efficiency of video encoding and decoding.
- the following steps S351-S356 can be used to perform matrix multiplication operations on transposed sub-matrixes and non-zero blocks based on SIMD instructions to obtain every adjacent multiple rows of the intermediate matrix (for example, every adjacent two rows, every adjacent row elements of four lines, etc.):
- Step S351 dividing the adjacent rows corresponding to the adjacent rows of the intermediate matrix in the transposed sub-matrix into at least one first block;
- Step S352 based on the above-mentioned at least one first block, divide the non-zero block into at least one second block, wherein the number of columns of the first block is the same as the number of rows of the second block;
- Step S353 after copying the elements of each row in each first block multiple times, rearrange them row by row to obtain the matrix of the first row corresponding to each first block, wherein the elements of each row in each first block
- the number of copies is the same as the number of columns per second block
- Step S354 rearranging the elements in each second block by column to obtain a second row matrix corresponding to each second block;
- Step S355 for each first block, based on the SIMD instruction, multiply the first row matrix of the first block by the corresponding element of the second row matrix of each second block, and multiply the first summing the results obtained by multiplying adjacent elements corresponding to each row in the first block of the row matrix to obtain a third row matrix;
- Step S356 adding elements corresponding to positions of one or more third row matrices corresponding to one or more first blocks located in the same row, to obtain corresponding rows of the intermediate matrix.
- steps S351 and S352 there are multiple ways to divide adjacent rows in the transposed sub-matrix into at least one first block, and divide non-zero blocks into at least one second block.
- the non-zero blocks may be divided by rows, and correspondingly, at least one second block obtained by the division is distributed along the row direction, and each second block includes at least one complete row of the non-zero blocks.
- the size of the first block can be determined according to the size of the second block, for example, the number of rows of the first block corresponds to the above-mentioned multiple adjacent rows of the intermediate matrix, and the number of columns of the first block is the same as the number of rows of the second block.
- the non-zero blocks may be divided by rows and columns, and correspondingly, at least one second block obtained by the division is distributed in a matrix, and each second block includes a part of the rows and a part of the columns in the non-zero block, That is, each second block does not include a full row or a full column in the nonzero block.
- the size of the first block can be determined according to the size of the second block, for example, the number of rows of the first block corresponds to the above-mentioned multiple adjacent rows of the intermediate matrix, and the number of columns of the first block is the same as the number of rows of the second block.
- steps S351 and S352 it may be determined in response to determining that the number of rows of a non-zero block is greater than or equal to 2 (for example, the number of rows is 2, 4, 8, 16, 32, etc.) and the number of columns is greater than or equal to 4 (For example, the number of columns is 4, 8, 16, 32, etc.), divide the adjacent rows of the transposed sub-matrix into at least one 2*2 first block, and divide the non-zero block into at least one 2*4 second block.
- 2 for example, the number of rows is 2, 4, 8, 16, 32, etc.
- 4 the number of columns is 4, 8, 16, 32, etc.
- steps S351 and S352 in response to determining that the number of rows of a non-zero block is greater than or equal to 2 (for example, the number of rows is 2, 4, 8, 16, 32, etc.) and the number of columns is equal to 2, transpose
- the adjacent multiple rows of the sub-matrix are divided into at least one 4*2 first block, and the non-zero blocks are divided into at least one 2*2 second block.
- the following still takes the transposed sub-matrix H T ' and the non-zero block C (the elements in the transposed sub-matrix H T ' and the non-zero block C are both 2-byte integer values) as an example, and the SIMD instruction is AVX Instructions are taken as an example to illustrate the process of calculating elements in every two rows of the intermediate matrix according to steps S351-S356 based on SIMD instructions.
- steps S351 and S352 since the number of rows and columns of the non-zero block C are both 4, the condition that the number of rows is greater than or equal to 2 and the number of columns is greater than or equal to 4 is satisfied, so the first two rows of the transposed sub-matrix H T ' Divide into two first blocks 402, 404 of 2*2, and divide the non-zero block C into two second blocks 406, 408 of 2*4.
- step S353 since the number of columns in the second block is 4, the elements in each row in the first block 402 are copied 4 times and then rearranged by row (the arrangement direction is shown by the arrow in Figure 4), to obtain the first row matrix410. Similarly, the elements in each row in the first block 404 are copied 4 times and rearranged row by row to obtain the first row matrix 412 .
- the elements in the second block 406 are rearranged in columns, that is, rearranged in the direction indicated by the arrows in FIG. 4 .
- AVX instructions can use 256-bit registers, that is, 16 2-byte data can be calculated in parallel (or 8 4-byte data can be calculated in parallel), and the rearranged elements can be copied twice to get the second line matrix414.
- rearrange the elements in the second block 408 by column that is, rearrange according to the direction shown by the arrow in FIG. 4 , and copy the rearranged elements twice to obtain the second row matrix 416 .
- step S355 in the matrix multiplication operation, the first block 402 corresponds to the second block 406 , and the first block 404 corresponds to the second block 408 .
- the first row matrix 410 corresponding to the first two rows of the intermediate matrix is multiplied with the corresponding element of the second row matrix 414 of the second block 406, and then the first row
- the results obtained by multiplying the two adjacent elements corresponding to each row in the first block 402 of the matrix 410 are summed (the number of adjacent elements to be added is the same as the column number of the first block, that is, each phase two adjacent elements) to obtain the corresponding matrix 418 in the third row.
- the first row matrix 412 corresponding to the first two rows of the intermediate matrix is multiplied with the corresponding element in the position of the second row matrix 416 of the second block 408, and then the first row
- the matrix 412 corresponding to each row in the first block 404 is obtained by multiplying two adjacent elements of the matrix 412 to obtain a matrix 420 corresponding to the third row.
- step S356 based on the AVX instruction, the elements corresponding to the positions of the respective third row matrices 418 and 420 of the first blocks 402 and 404 in the same row are added to obtain the first two rows of elements corresponding to the middle matrix (i.e. 1-2 rows of elements) row matrix 422.
- the first 4 elements in the row matrix 422 are the first row of the middle matrix
- the last 4 elements are the second row of the middle matrix.
- the elements of the 3rd-4th row, the 5th-6th row, and the 7th-8th row of the intermediate matrix can be calculated. Then, the elements in rows 1-2, elements in rows 3-4, elements in rows 5-6, and elements in rows 7-8 are spliced to obtain an 8*4 intermediate matrix.
- steps S351-S356 can also be used to perform matrix multiplication on the intermediate matrix and the transformation sub-matrix based on SIMD instructions (replacing the transposed sub-matrix in steps S351-S356 with the intermediate matrix, replacing the non-zero blocks can be converted into a sub-matrix), and the elements of each adjacent multiple rows of the inverse transformation result of the frequency coefficient matrix are obtained. Then the elements of each adjacent row are spliced to obtain the inverse transformation result of the frequency coefficient matrix.
- an image processing device may include: an acquiring unit 510 configured to acquire a frequency coefficient matrix of a target image, wherein the frequency coefficient matrix is obtained by performing frequency domain transformation on the target image, and The frequency coefficient matrix includes at least one non-zero frequency coefficient; the non-zero block determination unit 520 is configured to determine a non-zero block in the frequency coefficient matrix based on the position of the at least one non-zero frequency coefficient; the matrix determination unit 530, configured to determine a transform submatrix and a transpose submatrix corresponding to the non-zero block; and an inverse transform unit 540, configured to , to determine the inverse transformation result of the frequency coefficient matrix.
- an acquiring unit 510 configured to acquire a frequency coefficient matrix of a target image, wherein the frequency coefficient matrix is obtained by performing frequency domain transformation on the target image, and The frequency coefficient matrix includes at least one non-zero frequency coefficient
- the non-zero block determination unit 520 is configured to determine a non-zero block in the frequency coefficient matrix based on the
- the non-zero blocks in the frequency coefficient matrix of the target image by determining the non-zero blocks in the frequency coefficient matrix of the target image, only the non-zero blocks are calculated to obtain the inverse transformation result of the frequency coefficient matrix, and there is no need to perform calculations on other frequency coefficients in the frequency coefficient matrix (i.e. Frequency coefficients other than zero blocks) are calculated, which greatly reduces the calculation amount of inverse transformation and improves the calculation efficiency of inverse transformation, thereby improving the efficiency of image and video encoding and decoding.
- each unit of the apparatus 500 shown in FIG. 5 may correspond to each step in the method 200 described with reference to FIG. 3 .
- the operations, features and advantages described above with respect to the method 200 are also applicable to the apparatus 500 and the units included therein. For the sake of brevity, some operations, features and advantages are not described in detail here.
- various techniques may be described herein in the general context of software hardware elements or program modules.
- the various units described above with respect to FIG. 5 may be implemented in hardware or in hardware combined with software and/or firmware.
- these units may be implemented as computer program code/instructions configured to be executed in one or more processors and stored in a computer-readable storage medium.
- these units may be implemented as hardware logic/circuitry.
- one or more of the acquisition unit 510, the non-zero block determination unit 520, the matrix determination unit 530, and the inverse transformation unit 540 may be implemented together in a System on Chip (SoC).
- SoC System on Chip
- the SoC may include an integrated circuit chip (which includes a processor (for example, a central processing unit (Central Processing Unit, CPU), a microcontroller, a microprocessor, a digital signal processor (Digital Signal Processor, DSP), etc.), a memory, a or multiple communication interfaces, and/or one or more components in other circuits), and may optionally execute received program code and/or include embedded firmware to perform functions.
- a processor for example, a central processing unit (Central Processing Unit, CPU), a microcontroller, a microprocessor, a digital signal processor (Digital Signal Processor, DSP), etc.
- DSP Digital Signal Processor
- an electronic device including: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores a computer program, and the computer program is executed by The at least one processor implements the method according to the above when executed.
- a non-transitory computer-readable storage medium storing a computer program, wherein the computer program implements the above method when executed by a processor.
- a computer program product including a computer program, wherein the computer program implements the method according to the above when executed by a processor.
- FIG. 6 a structural block diagram of an electronic device 600 that can serve as a server or a client of the present disclosure will now be described, which is an example of a hardware device that can be applied to various aspects of the present disclosure.
- the electronic devices may be different types of computer devices, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers.
- Electronic devices may also represent various forms of mobile devices, such as personal digital processing, cellular telephones, smart phones, wearable devices, and other similar computing devices.
- the components shown herein, their connections and relationships, and their functions, are by way of example only, and are not intended to limit implementations of the disclosure described and/or claimed herein.
- an electronic device 600 may include at least one processor 601 capable of communicating with each other through a system bus 603, a working memory 602, an input unit 604, a display unit 605, a speaker 606, a storage unit 607, a communication unit 608, and other output Unit 609.
- the processor 601 may be a single processing unit or multiple processing units, and all processing units may include single or multiple computing units or multiple cores.
- Processor 6101 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuits, and/or any device that manipulates signals based on operational instructions.
- the processor 601 may be configured to acquire and execute computer-readable instructions stored in the working memory 602, the storage unit 607 or other computer-readable media, such as program codes of the operating system 602a, program codes of the application program 602b, and the like.
- the working memory 602 and the storage unit 607 are examples of computer-readable storage media for storing instructions, which are executed by the processor 601 to implement the various functions described above.
- the working memory 602 may include both volatile and nonvolatile memory (eg, RAM, ROM, etc.). Additionally, storage unit 607 may include hard drives, solid state drives, removable media, including external and removable drives, memory cards, flash memory, floppy disks, optical disks (e.g., CD, DVD), storage arrays, network attached storage, storage areas net and so on.
- Both the working memory 602 and the storage unit 607 may be collectively referred to as a memory or a computer-readable storage medium herein, and may be a non-transitory medium capable of storing computer-readable and processor-executable program instructions as computer program codes.
- the program codes may be executed by the processor 601 as a specific machine configured to implement the operations and functions described in the examples herein.
- the input unit 606 can be any type of equipment capable of inputting information to the electronic device 600, the input unit 606 can receive input digital or character information, and generate key signal input related to user settings and/or function control of the electronic device, and This may include, but is not limited to, a mouse, keyboard, touch screen, trackpad, trackball, joystick, microphone, and/or remote control.
- the output unit may be any type of device capable of presenting information, and may include, but is not limited to, a display unit 605, a speaker 606, and other output units 609, which may include, but are not limited to, video/audio output terminals, vibrators, and/or or a printer.
- the communication unit 608 allows the electronic device 600 to exchange information/data with other devices through a computer network such as the Internet and/or various telecommunication networks, and may include but not limited to a modem, a network card, an infrared communication device, a wireless communication transceiver and/or a chip Groups, such as Bluetooth TM devices, 1302.6 devices, WiFi devices, WiMax devices, cellular communication devices, and/or the like.
- the application program 602b in the working register 602 can be loaded to execute various methods and processes described above, such as steps S210-step S240 in FIG. 3 .
- the method 200 described above may be implemented as a computer software program tangibly embodied on a machine-readable medium, such as the storage unit 607 .
- part or all of the computer program can be loaded and/or installed on the electronic device 600 via the storage unit 607 and/or the communication unit 608 .
- the processor 601 may be configured to execute the method 200 in any other suitable manner (for example, by means of firmware).
- Various implementations of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips Implemented in a system of systems (SOC), load programmable logic device (CPLD), computer hardware, firmware, software, and/or combinations thereof.
- FPGAs field programmable gate arrays
- ASICs application specific integrated circuits
- ASSPs application specific standard products
- SOC system of systems
- CPLD load programmable logic device
- computer hardware firmware, software, and/or combinations thereof.
- programmable processor can be special-purpose or general-purpose programmable processor, can receive data and instruction from storage system, at least one input device, and at least one output device, and transmit data and instruction to this storage system, this at least one input device, and this at least one output device an output device.
- Program codes for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special purpose computer, or other programmable data processing devices, so that the program codes, when executed by the processor or controller, make the functions/functions specified in the flow diagrams and/or block diagrams Action is implemented.
- the program code may execute entirely on the machine, partly on the machine, as a stand-alone software package partly on the machine and partly on a remote machine or entirely on the remote machine or server.
- a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device.
- a machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
- a machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing.
- machine-readable storage media would include one or more wire-based electrical connections, portable computer discs, hard drives, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), optical fiber, compact disk read only memory (CD-ROM), optical storage, magnetic storage, or any suitable combination of the foregoing.
- RAM random access memory
- ROM read only memory
- EPROM or flash memory erasable programmable read only memory
- CD-ROM compact disk read only memory
- magnetic storage or any suitable combination of the foregoing.
- the systems and techniques described herein can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user. ); and a keyboard and pointing device (eg, a mouse or a trackball) through which a user can provide input to the computer.
- a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
- a keyboard and pointing device eg, a mouse or a trackball
- Other kinds of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and can be in any form (including Acoustic input, speech input or, tactile input) to receive input from the user.
- the systems and techniques described herein can be implemented in a computing system that includes back-end components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes front-end components (e.g., as a a user computer having a graphical user interface or web browser through which a user can interact with embodiments of the systems and techniques described herein), or including such backend components, middleware components, Or any combination of front-end components in a computing system.
- the components of the system can be interconnected by any form or medium of digital data communication, eg, a communication network. Examples of communication networks include: Local Area Network (LAN), Wide Area Network (WAN) and the Internet.
- a computer system may include clients and servers.
- Clients and servers are generally remote from each other and typically interact through a communication network.
- the relationship of client and server arises by computer programs running on the respective computers and having a client-server relationship to each other.
- steps may be reordered, added or deleted using the various forms of flow shown above.
- each step described in the present disclosure may be executed in parallel, sequentially or in a different order, as long as the desired result of the technical solution disclosed in the present disclosure can be achieved, no limitation is imposed herein.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
Claims (17)
- 一种图像处理方法,包括:获取目标图像的频率系数矩阵,其中,所述频率系数矩阵是通过对所述目标图像进行频域变换来得到的,并且所述频率系数矩阵包括至少一个非零频率系数;基于所述至少一个非零频率系数的位置,确定所述频率系数矩阵中的非零块;确定所述非零块相应的变换子矩阵和转置子矩阵;以及基于所述变换子矩阵、所述非零块和所述转置子矩阵,确定所述频率系数矩阵的反变换结果。
- 如权利要求1所述的方法,其中,基于所述至少一个非零频率系数的位置,确定所述频率系数矩阵中的非零块包括:确定所述至少一个非零频率系数所对应的行坐标最大值和列坐标最大值;以及根据所述行坐标最大值和所述列坐标最大值来确定所述非零块。
- 如权利要求2所述的方法,其中,所述非零块包括所述频率系数矩阵中所对应的行坐标小于等于所述行坐标最大值且所对应的列坐标小于等于所述列坐标最大值的一个或多个频率系数。
- 如权利要求2或3所述的方法,其中,根据所述行坐标最大值和所述列坐标最大值来确定所述非零块包括:基于所述行坐标最大值,确定所述非零块的最大行边界值;基于所述列坐标最大值,确定所述非零块的最大列边界值,其中,所述最大行边界值为大于等于所述行坐标最大值的最小的2的幂数,所述最大列边界值为大于等于所述列坐标最大值的最小的2的幂数。
- 如权利要求4所述的方法,其中,所述非零块由所述频率系数矩阵中的行坐标小于等于所述最大行边界值且列坐标小于等于所述最大列边界值的所有频率系数组成。
- 如权利要求4所述的方法,其中,基于所述变换子矩阵、所述非零块和所述转置子矩阵,确定所述频率系数矩阵的反变换结果的步骤为响应于确定以下至少一个条件来执行:所述最大行边界值小于所述频率系数矩阵的总行数;所述最大列边界值小于所述频率系数矩阵的总列数。
- 如权利要求1-6中任一项所述的方法,其中,基于所述变换子矩阵、所述非零块和所述转置子矩阵,确定所述频率系数矩阵的反变换结果包括:基于SIMD指令对所述转置子矩阵和所述非零块进行矩阵乘法运算,得到中间矩阵;以及基于SIMD指令对所述中间矩阵和所述变换子矩阵进行矩阵乘法运算,得到所述频率系数矩阵的反变换结果。
- 如权利要求7所述的方法,其中,通过所述矩阵乘法运算来计算所述中间矩阵的每相邻多行的元素包括:将所述转置子矩阵中的与所述中间矩阵的该相邻多行相对应的相邻多行划分为至少一个第一块;基于所述至少一个第一块,将所述非零块划分为至少一个第二块,其中,所述第一块的列数和所述第二块的行数相同;将每个第一块中的每一行元素复制多次后,按行重排,得到每个第一块对应的第一行矩阵,其中,每个第一块中的每一行元素的复制次数与每个第二块的列数相同;将每个第二块中的元素按列重排,得到每个第二块对应的第二行矩阵;对于每个第一块,基于SIMD指令,将该第一块的第一行矩阵分别和相应的每个第二块的第二行矩阵的位置对应的元素相乘,并且将所述第一行矩阵的与该第一块中每一行对应的多个相邻元素经过相乘所得到的结果进行求和,得到第三行矩阵;以及将位于同一行的一个或多个第一块各自相应的一个或多个第三行矩阵的位置对应的元素相加,得到所述中间矩阵的相应行。
- 如权利要求8所述的方法,其中,所述至少一个第二块沿行方向分布。
- 如权利要求8所述的方法,其中,所述至少一个第二块呈矩阵分布。
- 如权利要求9或10所述的方法,其中,将所述转置子矩阵中的与所述中间矩阵的该相邻多行相对应的相邻多行划分为至少一个第一块,将所述非零块划分为至少一个第二块包括:响应于确定所述非零块的行数大于等于2且列数大于等于4,将所述转置子矩阵的相邻多行划分为至少一个2*2的第一块,并且将所述非零块划分为至少一个2*4的第二块。
- 如权利要求9或10所述的方法,其中,将所述转置子矩阵中的与所述中间矩阵的该相邻多行相对应的相邻多行划分为至少一个第一块,将所述非零块划分为至少一个第二块包括:响应于确定所述非零块的行数大于等于2且列数等于2,将所述转置子矩阵的相邻多行划分为至少一个4*2的第一块,并且将所述非零块划分为至少一个2*2的第二块。
- 如权利要求1-12中任一项所述的方法,其中,所述方法应用于图像解码,所述目标图像为待解码的图像中的图像块;或者所述方法应用于视频编解码,所述目标图像为待编码的视频帧中的图像块或待解码的视频帧中的图像块。
- 一种图像处理装置,包括:获取单元,被配置为获取目标图像的频率系数矩阵,其中,所述频率系数矩阵是通过对所述目标图像进行频域变换来得到的,并且所述频率系数矩阵包括至少一个非零频率系数;非零块确定单元,被配置为基于所述至少一个非零频率系数的位置,确定所述频率系数矩阵中的非零块;矩阵确定单元,被配置为确定所述非零块相应的变换子矩阵和转置子矩阵;以及反变换单元,被配置为基于所述变换子矩阵、所述非零块和所述转置子矩阵,确定所述频率系数矩阵的反变换结果。
- 一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中所述存储器存储有计算机程序,所述计算机程序在被所述至少一个处理器执行时实现根据权利要求1-13中任一项所述的方法。
- 一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被处理器执行时实现根据权利要求1-13中任一项所述的方法。
- 一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现根据权利要求1-13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/294,053 US20250088666A1 (en) | 2021-08-04 | 2022-06-14 | Image processing method and apparatus, electronic device, and storage medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110891796.4A CN113592966B (zh) | 2021-08-04 | 2021-08-04 | 图像处理方法及装置、电子设备和存储介质 |
CN202110891796.4 | 2021-08-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023011005A1 true WO2023011005A1 (zh) | 2023-02-09 |
Family
ID=78255030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/098600 WO2023011005A1 (zh) | 2021-08-04 | 2022-06-14 | 图像处理方法及装置、电子设备和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20250088666A1 (zh) |
CN (1) | CN113592966B (zh) |
WO (1) | WO2023011005A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113592966B (zh) * | 2021-08-04 | 2024-04-30 | 上海哔哩哔哩科技有限公司 | 图像处理方法及装置、电子设备和存储介质 |
CN118227944A (zh) * | 2024-03-21 | 2024-06-21 | 上海壁仞科技股份有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030081851A1 (en) * | 2001-10-29 | 2003-05-01 | Sadeh Yaron M. | Method and apparatus for performing spatial-to- frequency domain transform |
CN108574849A (zh) * | 2017-11-21 | 2018-09-25 | 北京金山云网络技术有限公司 | Dct逆变换方法、逆变换装置、电子设备及存储介质 |
CN111741302A (zh) * | 2020-08-07 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读介质及电子设备 |
CN111953999A (zh) * | 2020-07-31 | 2020-11-17 | 北京奇艺世纪科技有限公司 | 一种反变换方法及装置 |
CN113592966A (zh) * | 2021-08-04 | 2021-11-02 | 上海哔哩哔哩科技有限公司 | 图像处理方法及装置、电子设备和存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110045949A (ko) * | 2009-10-28 | 2011-05-04 | 삼성전자주식회사 | 회전 변환을 이용한 영상 부호화, 복호화 방법 및 장치 |
CN103745443B (zh) * | 2014-01-10 | 2017-06-13 | 北京优纳科技有限公司 | 提高图像质量的方法和设备 |
FR3038196A1 (fr) * | 2015-06-29 | 2016-12-30 | B<>Com | Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes |
WO2018014301A1 (zh) * | 2016-07-21 | 2018-01-25 | 华为技术有限公司 | 视频编码方法及装置 |
EP3806475B1 (en) * | 2018-07-06 | 2023-05-10 | LG Electronics, Inc. | Transform-based image coding method and device |
CN113207002B (zh) * | 2021-02-21 | 2022-07-26 | 腾讯科技(深圳)有限公司 | 视频编解码方法、装置、计算机可读介质及电子设备 |
CN113068037B (zh) * | 2021-03-17 | 2022-12-06 | 上海哔哩哔哩科技有限公司 | 用于样点自适应补偿的方法及装置、设备和介质 |
-
2021
- 2021-08-04 CN CN202110891796.4A patent/CN113592966B/zh active Active
-
2022
- 2022-06-14 US US18/294,053 patent/US20250088666A1/en active Pending
- 2022-06-14 WO PCT/CN2022/098600 patent/WO2023011005A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030081851A1 (en) * | 2001-10-29 | 2003-05-01 | Sadeh Yaron M. | Method and apparatus for performing spatial-to- frequency domain transform |
CN108574849A (zh) * | 2017-11-21 | 2018-09-25 | 北京金山云网络技术有限公司 | Dct逆变换方法、逆变换装置、电子设备及存储介质 |
CN111953999A (zh) * | 2020-07-31 | 2020-11-17 | 北京奇艺世纪科技有限公司 | 一种反变换方法及装置 |
CN111741302A (zh) * | 2020-08-07 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读介质及电子设备 |
CN113592966A (zh) * | 2021-08-04 | 2021-11-02 | 上海哔哩哔哩科技有限公司 | 图像处理方法及装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20250088666A1 (en) | 2025-03-13 |
CN113592966A (zh) | 2021-11-02 |
CN113592966B (zh) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2413983C2 (ru) | Обратимое преобразование для сжатия двумерных данных с потерями и без потерь | |
CA2653692C (en) | Reduction of errors during computation of inverse discrete cosine transform | |
JP4425561B2 (ja) | イメージおよびビデオ符号化のための2−d変換 | |
JP5015285B2 (ja) | 映像符号化のための低複雑性単一化変換 | |
JP4924904B2 (ja) | データフレームのシーケンスの効率的な符号化/復号 | |
WO2023011005A1 (zh) | 图像处理方法及装置、电子设备和存储介质 | |
CN113873252B (zh) | 图像处理方法及装置、电子设备和存储介质 | |
JP7275354B2 (ja) | 符号化のための方法、装置及びコンピュータプログラム | |
WO2022193916A1 (zh) | 用于样点自适应补偿的方法及装置、设备和介质 | |
CN113068036B (zh) | 用于样点自适应补偿的方法及装置、设备和介质 | |
RU2419855C2 (ru) | Снижение ошибок в ходе вычисления обратного дискретного косинусного преобразования | |
CN102036075A (zh) | 一种图像及数字视频编码及解码方法 | |
US20050281331A1 (en) | Method and system for dynamically configurable DCT/IDCT module in a wireless handset | |
JP4704333B2 (ja) | 画像符号化装置および画像復号化装置、ならびにそれらで用いられる集積回路 | |
JP2017041786A (ja) | 直交変換処理装置、逆直交変換処理装置、符号化装置、復号装置、及びコンピュータプログラム | |
JP2017005503A (ja) | 映像符号化装置、映像符号化方法及び映像符号化プログラム | |
CN105472395B (zh) | 一种基于离散Krawtchouk正交多项式的图像无损压缩方法 | |
CN116916034B (zh) | 基于safd的图像处理方法、装置、设备及存储介质 | |
WO2023124602A1 (zh) | 数据变换与恢复方法、装置、系统、电子设备及存储介质 | |
WO2023136811A1 (en) | Fixed-point optimizer for linear operations | |
CN116095310A (zh) | 图像编解码方法、装置、电子设备及存储介质 | |
Li et al. | A highly efficient reconfigurable architecture of inverse transform for multiple video standards |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22851721 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18294053 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 22851721 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 22851721 Country of ref document: EP Kind code of ref document: A1 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 24.09.2024) |