CN114900703A - Universal video coding system and data processing method - Google Patents
Universal video coding system and data processing method Download PDFInfo
- Publication number
- CN114900703A CN114900703A CN202210346297.1A CN202210346297A CN114900703A CN 114900703 A CN114900703 A CN 114900703A CN 202210346297 A CN202210346297 A CN 202210346297A CN 114900703 A CN114900703 A CN 114900703A
- Authority
- CN
- China
- Prior art keywords
- data
- transformation
- unit
- transform
- horizontal
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 9
- 230000009466 transformation Effects 0.000 claims abstract description 268
- 238000004364 calculation method Methods 0.000 claims abstract description 81
- 238000012545 processing Methods 0.000 claims abstract description 19
- 239000011159 matrix material Substances 0.000 claims description 64
- 238000009825 accumulation Methods 0.000 claims description 27
- 238000006243 chemical reaction Methods 0.000 claims description 17
- 238000000034 method Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 230000009977 dual effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 5
- 101100425597 Solanum lycopersicum Tm-1 gene Proteins 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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/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/18—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 a set of transform coefficients
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
The invention relates to the technical field of video coding, and discloses a universal video coding system and a data processing method, which comprise the following steps: the data selection unit is used for acquiring data to be coded and sending the data to be coded to the main control unit; the main control unit is used for judging the data to be coded, generating a transformation instruction based on the judgment result and sending the transformation instruction to the data selection unit; the calculation unit is configured to perform horizontal transform processing on the data to be encoded based on the target transform coefficient to obtain horizontal transform data when a transform type in the transform instruction is horizontal transform, or perform vertical transform processing on the data to be encoded based on the target transform coefficient to obtain vertical transform data when the transform type in the transform instruction is vertical transform; the problems of large operation amount and complex calculation of the existing video coding system are solved by optimizing the system architecture.
Description
Technical Field
The present invention relates to the field of video coding technologies, and in particular, to a general video coding system and a data processing method.
Background
With the rapid development of video technology, in order to improve the visual quality of video, a new video coding standard is formulated, which increases the coding efficiency by 50% compared with the original video coding standard, and the gain mainly comes from the improvement of inter-frame prediction, intra-frame prediction and transformation modules in the new video coding standard, which can improve the coding performance, but also brings additional complexity, especially in terms of computing resources, storage control and implementation, the existing general video coding system needs to consume a large amount of logic resources to perform operation when facing the new video coding standard, how to reduce the system computing complexity, and improve the performance of transformation computation is a problem that needs to be solved currently, although there is a scheme of improving hardware architecture to accelerate the transformation coding, most of the schemes are directed at 1-dimensional transformation, the hardware scheme capable of realizing 2-dimensional transformation is few, and the existing video coding system has the problems of large computation amount and complex computation even if the hardware scheme has limitations.
Disclosure of Invention
The invention provides a universal video coding system and a data processing method, which are used for solving the problems of large computation amount and complex computation of the conventional video coding system.
In order to achieve the purpose, the invention is realized by the following technical scheme:
in a first aspect, the present invention provides a general video encoding system, comprising:
the data selection unit is used for acquiring data to be coded and sending the data to be coded to the main control unit; the data to be encoded comprises data input by a user or horizontal transformation data read from a storage unit group;
the main control unit is used for judging the data to be encoded, determining a target transformation coefficient corresponding to the data to be encoded, generating a transformation instruction based on the judgment result, and sending the transformation instruction to the data selection unit, wherein the judgment result comprises the target transformation coefficient and the transformation type of the data to be encoded, and the transformation type comprises horizontal transformation or vertical transformation;
the data selection unit is also used for sending the transformation instruction and the data to be encoded corresponding to the transformation instruction to a calculation unit;
the calculation unit is configured to perform horizontal transformation processing on the data to be encoded based on the target transformation coefficient to obtain horizontal transformation data and store the horizontal transformation data in the storage unit group when the transformation type in the transformation instruction is horizontal transformation, or perform vertical transformation processing on the data to be encoded based on the target transformation coefficient to obtain vertical transformation data when the transformation type in the transformation instruction is vertical transformation;
the computing unit is further configured to determine an encoding result of the data to be encoded according to the vertical transformation data.
Optionally, the horizontal transformation data is one-dimensional transformation data, and the vertical transformation data is two-dimensional transformation data obtained by multiplexing, by the calculation unit, the one-dimensional transformation data with the target transformation coefficient and performing vertical transformation processing.
Optionally, the data selecting unit is further configured to generate a data scheduling instruction according to the determination result, and send the data scheduling instruction to the data scheduling unit; the system further comprises:
and the data scheduling unit is used for reading the horizontal transformation data and the target transformation coefficient in the storage unit group according to the data scheduling instruction and sending the reading result to the data selection unit.
Optionally, the computing unit includes a 1-dimensional 4-point transformation computing unit, and the 1-dimensional 4-point transformation computing unit includes 4 independent transformation computing modules;
and 4 independent transformation calculation modules are used for completing the transformation calculation of 1 piece of data to be coded in parallel.
Optionally, the calculating unit further includes a 4 × 4 matrix accumulating unit;
the main control unit is also used for generating accumulation signals to the 4 multiplied by 4 matrix accumulation unit according to the transformation type of the coded data;
and the 4 x 4 matrix accumulation unit performs accumulation operation on the calculation results of the 4 independent transformation calculation modules according to the accumulation signal.
Optionally, the computing unit further includes a 4 × 4 register array and an addition shift unit;
the 4 × 4 register array is used for storing the data to be encoded, or is used for sending the stored data to be encoded to the 1-dimensional 4-point transformation calculating unit;
the addition shift unit is used for carrying out bit width scaling on the horizontal conversion data and the vertical conversion data.
Optionally, the storage unit group includes a first storage unit and a second storage unit, the first storage unit is simultaneously connected to the data selection unit, the data scheduling unit and the calculation unit, and the second storage unit is simultaneously connected to the data selection unit and the data scheduling unit;
the first storage unit is used for storing the horizontal transformation data output by the calculation unit;
the second storage unit is used for storing the target transformation coefficient used in the calculation process of the calculation unit.
Optionally, the first storage unit includes a synchronous dual-port 256bit × 136RAM, and the second storage unit includes a synchronous single-port 128bit × 383 ROM;
the width of the first storage unit is 256 bits, and each row is used for storing 256-bit data;
the width of the second storage unit is 128 bits, and each row is used for storing a target transformation coefficient.
In a second aspect, an embodiment of the present application provides a data processing method, which is applied to the general video coding system described in any one of the first aspects, and includes:
acquiring data to be coded by adopting a data selection unit, and sending the data to be coded to a main control unit;
judging the data to be encoded by a main control unit to determine a target transformation coefficient corresponding to the data to be encoded, generating a transformation instruction based on the judgment result, and sending the transformation instruction to a data selection unit, wherein the judgment result comprises the target transformation coefficient and the transformation type of the data to be encoded, and the transformation type comprises horizontal transformation or vertical transformation;
sending the transformation instruction and the data to be encoded corresponding to the transformation instruction to a computing unit through a data selection unit;
when the transformation type in the transformation instruction is horizontal transformation, the calculation unit performs horizontal transformation processing on the data to be encoded based on the target transformation coefficient to obtain horizontal transformation data, and stores the horizontal transformation data into the storage unit group;
and when the transformation type in the transformation instruction is vertical transformation, the calculation unit performs vertical transformation processing on the data to be encoded based on the target transformation coefficient to obtain vertical transformation data, and determines an encoding result of the data to be encoded according to the vertical transformation data.
Has the advantages that:
the universal video coding system provided by the invention inputs data input by a user into the computing unit through the data selection unit, the computing unit carries out one-dimensional horizontal transformation on data to be coded, then the data selection unit sends the horizontal transformation data which is subjected to the one-dimensional horizontal transformation to the computing unit, the computing unit carries out one-dimensional vertical transformation on the horizontal transformation data to obtain vertical transformation data, and then a coding result can be obtained according to the vertical transformation data, the data to be coded is input into the computing unit by the data selection unit, so that the computing unit can play the multiplexing effect, thereby realizing the non-delay conversion of the one-dimensional horizontal conversion and the one-dimensional vertical conversion, greatly improving the utilization rate and the throughput of the system, meanwhile, two-dimensional transformation of data input by a user is realized through two one-dimensional transformations, and the use amount of hardware resources can be reduced better on the premise of ensuring the processing performance of the system.
Drawings
FIG. 1 is a block diagram of a general video coding system according to a preferred embodiment of the present invention;
FIG. 2 is a schematic diagram of a computing unit according to a preferred embodiment of the present invention;
FIG. 3 is a schematic structural diagram of a 1-dimensional 4-point transform unit according to a preferred embodiment of the present invention;
FIG. 4 is a schematic structural diagram of a transformation calculation module according to a preferred embodiment of the present invention;
FIG. 5 is a diagram illustrating a second memory cell according to a preferred embodiment of the present invention;
FIG. 6 is a read address generation and scheduling reuse diagram for a second memory location in accordance with a preferred embodiment of the present invention;
FIG. 7 is a read address generation and dispatch reuse graph for a first memory location in accordance with a preferred embodiment of the present invention;
FIG. 8 is a flow chart of a data processing method provided by the preferred embodiment of the present invention;
FIG. 9 is a flowchart of transformation calculation according to another embodiment of the present invention.
Detailed Description
The technical solutions of the present invention are described clearly and completely below, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
Unless otherwise defined, technical or scientific terms used herein shall have the ordinary meaning as understood by one of ordinary skill in the art to which this invention belongs. The use of "first," "second," and the like, herein does not denote any order, quantity, or importance, but rather the terms "first," "second," and the like are used to distinguish one element from another. Also, the use of the terms "a" or "an" and the like do not denote a limitation of quantity, but rather denote the presence of at least one. The terms "connected" or "coupled" and the like are not restricted to physical or mechanical connections, but may include electrical connections, whether direct or indirect. "upper", "lower", "left", "right", and the like are used only to indicate relative positional relationships, and when the absolute position of the object to be described is changed, the relative positional relationships are changed accordingly.
Referring to fig. 1, an embodiment of the present application provides a general video encoding system, including:
the data selection unit is used for acquiring data to be coded and sending the data to be coded to the main control unit; the data to be encoded comprises data input by a user or horizontal transformation data read from a storage unit group;
the main control unit is used for judging the data to be encoded, determining a target transformation coefficient corresponding to the data to be encoded, generating a transformation instruction based on the judgment result, and sending the transformation instruction to the data selection unit, wherein the judgment result comprises the target transformation coefficient and the transformation type of the data to be encoded, and the transformation type comprises horizontal transformation or vertical transformation;
the data selection unit is also used for sending the transformation instruction and the data to be encoded corresponding to the transformation instruction to a calculation unit;
the calculation unit is configured to perform horizontal transformation processing on the data to be encoded based on the target transformation coefficient to obtain horizontal transformation data and store the horizontal transformation data in the storage unit group when the transformation type in the transformation instruction is horizontal transformation, or perform vertical transformation processing on the data to be encoded based on the target transformation coefficient to obtain vertical transformation data when the transformation type in the transformation instruction is vertical transformation;
the computing unit is further configured to determine an encoding result of the data to be encoded according to the vertical transformation data.
In the above embodiment, after receiving data input by a user, the data selection unit sends the data input by the user to the main control unit, the main control unit judges the data input by the user and generates a transformation instruction according to a judgment result and sends the transformation instruction to the data selection unit, the data selection unit sends the data input by the user to the calculation unit according to the transformation instruction, meanwhile, the data selection unit also generates a corresponding data scheduling instruction according to the transformation instruction and sends the data scheduling instruction to the data scheduling unit, the data scheduling unit reads a target transformation coefficient in the storage unit group according to the data scheduling instruction and sends the reading result to the data selection unit, the data selection unit sends the target transformation coefficient and the data input by the user to the calculation unit together, and the calculation unit performs horizontal transformation according to the target transformation coefficient and the data input by the user to generate horizontal transformation data, and sending the horizontal transformation data to a storage unit group for storage, meanwhile, the calculation unit generates a calculation completion signal and sends the calculation completion signal to the main control unit after the horizontal transformation is completed, the main control unit judges the signal and sends a transformation instruction to the data selection unit again, the data selection unit regenerates a corresponding data scheduling instruction according to the transformation instruction, and sends the data scheduling instruction to the data scheduling unit, the data scheduling unit reads the horizontal transformation data and the target transformation coefficient in the storage unit group according to the data scheduling instruction, the reading result is sent to a data selection unit, the data selection unit sends the horizontal transformation data and the target transformation coefficient to a calculation unit, the calculation unit can carry out vertical transformation according to the horizontal transformation data and the target transformation coefficient to generate vertical transformation data, and a coding result is determined according to the vertical transformation data;
by multiplexing the computing units, the non-delay conversion of one-dimensional horizontal conversion and one-dimensional vertical conversion is realized, the utilization rate and the throughput of the system are greatly improved, meanwhile, the two-dimensional conversion of input data is realized through the two one-dimensional conversions, and the use amount of hardware resources can be better reduced on the premise of ensuring the processing performance of the system.
Optionally, the horizontal transformation data is one-dimensional transformation data, and the vertical transformation data is two-dimensional transformation data obtained by multiplexing, by the calculation unit, the one-dimensional transformation data with the target transformation coefficient and performing vertical transformation processing.
In the embodiment, the utilization rate of hardware resources is reduced by multiplexing the computing unit, and the conversion from one-dimensional transformation data to two-dimensional transformation data is realized by utilizing two one-dimensional transformation computations, so that the computation amount during the transformation of the two-dimensional transformation data is reduced, and the computation efficiency is improved.
Optionally, the data selecting unit is further configured to generate a data scheduling instruction according to the determination result, and send the data scheduling instruction to the data scheduling unit; the system further comprises:
and the data scheduling unit is used for reading the horizontal transformation data and the target transformation coefficient in the storage unit group according to the data scheduling instruction and sending the reading result to the data selection unit.
In the above embodiment, the data selection unit reads the horizontal transformation data and the target transformation coefficients in the storage unit group, so that the calculation unit can select the corresponding target transformation coefficients to perform corresponding transformation calculation according to the type of the data to be encoded while implementing time division multiplexing calculation, and the transformation calculation result is more accurate, wherein the target transformation coefficients include three integer transformation coefficients, namely a DCT2 transformation coefficient, a DST7 transformation coefficient and a DCT8 transformation coefficient.
Referring to fig. 2-4, optionally, the computing unit includes a 1-dimensional 4-point transformation computing unit, and the 1-dimensional 4-point transformation computing unit includes 4 independent transformation computing modules;
and 4 independent transformation calculation modules are used for completing the transformation calculation of 1 piece of data to be coded in parallel.
In the above embodiment, the 1-dimensional 4-point transform calculation unit is composed of 4 independent transform calculation modules, each transform calculation module has 4 output ports, and the 4 independent transform calculation modules have 16 output ports, which are the same as the data amount of 1 4 × 4 matrix data, so that the 1-dimensional 4-point transform calculation unit can just complete the transform operation of 1 4 × 4 matrix data in parallel in each cycle, thereby being beneficial to improving the speed of transform calculation.
Optionally, the calculating unit further includes a 4 × 4 matrix accumulating unit;
the main control unit is also used for generating accumulation signals to the 4 multiplied by 4 matrix accumulation unit according to the transformation type of the coded data;
and the 4 x 4 matrix accumulation unit performs accumulation operation on the calculation results of the 4 independent transformation calculation modules according to the accumulation signal.
In the above embodiment, the system can implement the transformation calculation from 4 × 4 matrix data to 64 × 64 matrix data, because the 1-dimensional 4-point transformation calculation unit can only complete 1 4 × 4 matrix data operation in parallel at one time, when the matrix data amount is greater than 4 × 4 matrix data, the calculated matrix data needs to be accumulated by the 4 × 4 matrix accumulation unit, so as to implement the matrix transformation calculation when the data amount is greater than 4 × 4 matrix data, the main control unit divides the data to be encoded into n 4 × 4 matrix data according to the transformation type of the data to be encoded, and generates an accumulation signal according to the transformation type of the data to be encoded, and sends the accumulation signal to the 4 × 4 matrix accumulation unit, the 4 × 4 matrix accumulation unit performs the accumulation operation on the n transformed and calculated 4 × 4 matrix data according to the accumulation signal, n is a positive integer, the 4 × 4 matrix accumulation unit can perform the transformation calculation without affecting the matrix data operation, the calculation range of the calculation unit is expanded.
Optionally, the computing unit further includes a 4 × 4 register array and an addition shift unit;
the 4 × 4 register array is used for storing the data to be encoded, or is used for sending the stored data to be encoded to the 1-dimensional 4-point transformation calculating unit;
the addition shift unit is used for carrying out bit width scaling on the horizontal conversion data and the vertical conversion data.
In the above embodiment, when the computing unit computes data whose data size is greater than that of the 4 × 4 matrix data, the computing unit needs to perform an accumulation operation after the computation is completed, so that after the 1-for-4-point transformation computing unit completes one time of the 4 × 4 matrix data computation, the computation result is stored in the 4 × 4 register array to be provided for the 4 × 4 matrix accumulation unit to perform the accumulation operation after the computation is completed, and thus, data loss can be avoided.
Referring to fig. 5 to 7, optionally, the storage unit group includes a first storage unit and a second storage unit, the first storage unit is connected to the data selection unit, the data scheduling unit and the calculation unit at the same time, and the second storage unit is connected to the data selection unit and the data scheduling unit at the same time;
the first storage unit is used for storing the horizontal transformation data output by the calculation unit;
the second storage unit is used for storing the target transformation coefficient used in the calculation process of the calculation unit.
In the above embodiment, the storage unit group is divided into the first storage unit and the second storage unit, so that the target transform coefficient and the horizontal transform data can be stored separately, data collision is avoided when the data scheduling unit reads the target transform coefficient and the horizontal transform data, and meanwhile, it can be ensured that two groups of data can not affect each other in the process of storing the target transform coefficient and the horizontal transform data.
Optionally, the first storage unit includes a synchronous dual-port 256bit × 136RAM, and the second storage unit includes a synchronous single-port 128bit × 383 ROM;
the width of the first storage unit is 256 bits, and each row is used for storing 256-bit data;
the width of the second storage unit is 128 bits, and each row is used for storing a target transformation coefficient.
In the above embodiments, the storage width of each line of the first storage unit and the second storage unit is defined, so that each line of the first storage unit can just store data adapted to the data amount of the data to be encoded, and each line of the second storage unit can just store data adapted to the data amount of the target transform coefficient, thereby facilitating the reading of the target transform coefficient and the horizontal transform coefficient by the data scheduling unit.
Referring to fig. 8, an embodiment of the present application further provides a data processing method, which is applied in the above general video coding system, and includes:
acquiring data to be coded by adopting a data selection unit, and sending the data to be coded to a main control unit;
judging the data to be encoded by a main control unit to determine a target transformation coefficient corresponding to the data to be encoded, generating a transformation instruction based on the judgment result, and sending the transformation instruction to a data selection unit, wherein the judgment result comprises the target transformation coefficient and the transformation type of the data to be encoded, and the transformation type comprises horizontal transformation or vertical transformation;
sending the transformation instruction and the data to be encoded corresponding to the transformation instruction to a computing unit through a data selection unit;
when the transformation type in the transformation instruction is horizontal transformation, the calculation unit performs horizontal transformation processing on the data to be encoded based on the target transformation coefficient to obtain horizontal transformation data, and stores the horizontal transformation data into the storage unit group;
and when the transformation type in the transformation instruction is vertical transformation, the calculation unit performs vertical transformation processing on the data to be encoded based on the target transformation coefficient to obtain vertical transformation data, and determines an encoding result of the data to be encoded according to the vertical transformation data.
Referring to fig. 9, in another embodiment, the data interface of the residual block and the coefficient block in the 2-dimensional MTS processor architecture is a 4 × 4 matrix, and for the mxn residual matrix, M and N are both positive integers greater than 4, it is necessary to sequentially input the residual block according to 4 × 4 size, and based on the unified transform formula, the designed 2-dimensional MTS processor architecture and the large-size transform block discarding high-frequency coefficient technology, the 2-dimensional transform calculation and operation sequence of the residual block of 4 × 4 to 64 × 64 can be divided into 2 cases:
(1) when the residual matrix size is 4n × 4m (n ═ 1,2, 4, 8; m ═ 1,2, 4, 8), the coefficient matrix size is 4m × 4 m. The 4n × 4m residual matrix is divided into n × m 4 × 4 residual sub-matrices (S00, …, Sn-1, m-1, and S00, …, Sn-1, m-1 are coefficients in the residual sub-matrices), and the 4m × 4m coefficient matrix is divided into m × m 4 × 4 coefficient sub-matrices (T00, …, Tm-1, m-1, and T00, …, Tm-1, m-1 are coefficients in the coefficient sub-matrices).
When the residual matrix size is 4n × 4m (n ═ 1,2, 4, 8; m ═ 1), the coefficient matrix size is 4 × 4. When the residual matrix size is 4 nx4 m (n is 1,2, 4, 8; m is 1), the residual matrix is partitioned into n 4 × 4 residual submatrices, and n × m effective at i _ valid is 2 In each clock cycle, i _ valid is an input port of the control unit, 1 4 × 4 residual error submatrix is introduced into i _ src input in each clock cycle, and i _ src is an input port of the data selection unit; the 4 x 4 coefficient matrix is introduced into the i tr input in the 1 st clock cycle, followed by n m 2 -1 clock cycle i _ tr data remains unchanged, i _ tr being the other input port of the data selection unit, the processor being arranged every n m 2 1-dimensional horizontal transformation of 1 4n × 4m (n is 1,2, 4, 8; m is 1) residual matrix is completed in one clock cycle.
When the residual matrix size is 4 nx4 m (n is 1; m is 2, 4, 8), n m is valid under i _ valid 2 In each clock cycle, a 4 × 4 coefficient submatrix (T00, …, T0, m-1, …, Tm-1, 0, …, Tm-1 and m-1) is introduced into an i _ tr input in turn and a 4n × 4m (n is 1; m is 2, 4, 8) residual matrix (composed of 4 × 4 residual submatrixes S00, … and Sn-1, 0) is also introduced into an i _ src input in turn. Note that 4n × 4m (n is 1; m is 2, 4, 8) residual matrix data is multiplexed m times. Processor calculation operation as shown in gray part of fig. 9, o _ valid is high level and sequentially outputs 4 × 4 output submatrices Y00, …, Ym-1, 0 every cycle with o _ dst as one output port of the control unit and o _ dst as one output port of the calculation unit. Thus, the processor is running every n m 2 The 1-dimensional horizontal transformation of 1 4n × 4m (n is 1; m is 2, 4, 8) residual matrices is completed for (n is 1) clock cycles. Similarly, the transform calculation of the 4n × 4m (n ═ 2, 4, 8; m ═ 2, 4, 8) residual matrix is done by iterating the basic process of the gray portion in fig. 9.When the residual matrix size is 4n × 4m (n ═ 2, 4, 8; m ═ 2, 4, 8), the 4m × 4n (n ═ 2, 4, 8; m ═ 2, 4, 8) output matrix can be divided into n columns according to the 4m × 4n (n ═ 1; m ═ 2, 4, 8) sub-matrices. The basic process in fig. 9 is iterated 1 time in order to calculate the column output result for the first 4 mx 4n (n-1; m-2, 4, 8) matrix size. Thus, the entire 1-dimensional horizontal transformation of a 4 nx4 m (n-2, 4, 8; m-2, 4, 8) residual matrix requires m 2 ×n=n*m 2 One clock cycle is completed.
The 2-dimensional transform calculation of the 4n × 4m (n is 1,2, 4, 8; m is 1,2, 4, 8) residual matrix is realized by a 1-dimensional horizontal transform and a 1-dimensional vertical transform in sequence. The 1-dimensional horizontal transform calculation result of the 4n × 4m residual matrix is a 4m × 4n 1-dimensional output matrix and is stored in a RAM storage unit. Then, a 1-dimensional vertical transform is performed on the 4m × 4n output matrix and a 4n × 4m 2-dimensional output matrix is calculated. It is noted that the 1-dimensional vertical transform computation amount in the 2-dimensional transform of the 4n × 4m residual matrix is the same as the 1-dimensional horizontal transform computation amount of the 4m × 4n residual matrix. Therefore, the processor reuses the read horizontal conversion result with the designated read address sequence and the multiplexing number as input data for the 1-dimensional vertical conversion. Finally, the processor may perform a 2-dimensional transform computation of the 4n × 4m (n ═ 1,2, 4, 8; m ═ 1,2, 4, 8) residual matrix.
(2) For 1-dimensional transform calculation of a 4n × 4m (n is 1,2, 4, 8; m is 16) residual matrix, a 4n × 4m (n is 16; m is 1,2, 4, 8) residual matrix, and a 4n × 4m (n is 16; m is 16) residual matrix, the calculation complexity is reduced by adopting a large-size transform block discarding high-frequency coefficient technology. It is known that in 2-dimensional transform computation of a 4n × 4m (n ═ 1,2, 4, 8; m ═ 16) residual block, the computation complexity of 1-dimensional horizontal transform is reduced 1/2, and the computation complexity of 1-dimensional vertical transform is unchanged. Thus, the processor is operated every n m 2 /2+m*n 2 Completing 2-dimensional transformation calculation of 1 4n × 4m (n is 1,2, 4, 8; m is 16) residual error matrix in one clock cycle, wherein n is m 2 2 is the 1-dimensional horizontal computation usage period, and m n 2 Is the subsequent 1-dimensional vertical computation usage period.
It is known that in 2-dimensional transform computation of 4n × 4m (n: 16; m: 1,2, 4, 8) residual blocks, the 1-dimensional horizontal transform computation complexity is reduced1/2, the 1-dimensional vertical transform also reduces the computational complexity 1/2. Thus, the processor is operated every n m 2 /2+m*n 2 Completing 2-dimensional transformation calculation of 1 4n multiplied by 4m (n is 16; m is 1,2, 4, 8) residual error matrix in 2 clock cycles, wherein n is multiplied by m 2 2 is the 1-dimensional horizontal computation usage period, and m n 2 And/2 is the subsequent 1-dimensional vertical computation usage period.
Similarly, in 2-dimensional transformation calculation of a 4n × 4m (n is 16; m is 16) residual matrix, the complexity of 1-dimensional horizontal transformation calculation is reduced by 3/4, and the complexity of 1-dimensional vertical transformation calculation is also reduced by 1/2. Thus, the processor is operated every n m 2 /4+m*n 2 Completing 2-dimensional transformation calculation of 1 4n × 4m (n is 16; m is 16) residual error matrix in 2 clock cycles, wherein n is m 2 Per 4 is the 1-dimensional horizontal computation usage period, and m n 2 And/2 is the subsequent 1-dimensional vertical computation usage period.
The foregoing detailed description of the preferred embodiments of the invention has been presented. It should be understood that numerous modifications and variations can be devised by those skilled in the art in light of the above teachings. Therefore, the technical solutions available to those skilled in the art through logic analysis, reasoning and limited experiments based on the prior art according to the concept of the present invention should be within the scope of protection defined by the claims.
Claims (9)
1. A universal video coding system, comprising:
the data selection unit is used for acquiring data to be coded and sending the data to be coded to the main control unit; the data to be encoded comprises data input by a user or horizontal transformation data read from a storage unit group;
the main control unit is used for judging the data to be encoded, determining a target transformation coefficient corresponding to the data to be encoded, generating a transformation instruction based on the judgment result, and sending the transformation instruction to the data selection unit, wherein the judgment result comprises the target transformation coefficient and the transformation type of the data to be encoded, and the transformation type comprises horizontal transformation or vertical transformation;
the data selection unit is also used for sending the transformation instruction and the data to be encoded corresponding to the transformation instruction to a calculation unit;
the calculation unit is configured to perform horizontal transformation processing on the data to be encoded based on the target transformation coefficient to obtain horizontal transformation data and store the horizontal transformation data in the storage unit group when the transformation type in the transformation instruction is horizontal transformation, or perform vertical transformation processing on the data to be encoded based on the target transformation coefficient to obtain vertical transformation data when the transformation type in the transformation instruction is vertical transformation;
the computing unit is further configured to determine an encoding result of the data to be encoded according to the vertical transformation data.
2. The general video encoding system according to claim 1, wherein the horizontal transform data is one-dimensional transform data, and the vertical transform data is two-dimensional transform data obtained by the calculation unit performing vertical transform processing by multiplexing the one-dimensional transform data based on the target transform coefficient.
3. The universal video coding system according to claim 1, wherein the data selecting unit is further configured to generate a data scheduling instruction according to the determination result, and send the data scheduling instruction to a data scheduling unit; the system further comprises:
and the data scheduling unit is used for reading the horizontal transformation data and the target transformation coefficient in the storage unit group according to the data scheduling instruction and sending the reading result to the data selection unit.
4. The universal video coding system according to claim 1, wherein the computing unit comprises a 1-dimensional 4-point transform computing unit, the 1-dimensional 4-point transform computing unit comprising 4 independent transform computing modules;
and 4 independent transformation calculation modules are used for completing the transformation calculation of 1 piece of data to be coded in parallel.
5. The universal video coding system according to claim 4, wherein the computing unit further comprises a 4 x 4 matrix accumulation unit;
the main control unit is also used for generating accumulation signals to the 4 multiplied by 4 matrix accumulation unit according to the transformation type of the coded data;
and the 4 x 4 matrix accumulation unit performs accumulation operation on the calculation results of the 4 independent transformation calculation modules according to the accumulation signal.
6. The universal video coding system according to claim 4, wherein said computation unit further comprises a 4 x 4 register array and an add shift unit;
the 4 × 4 register array is used for storing the data to be encoded, or is used for sending the stored data to be encoded to the 1-dimensional 4-point transformation calculating unit;
the addition shift unit is used for carrying out bit width scaling on the horizontal conversion data and the vertical conversion data.
7. The universal video coding system according to claim 3, wherein the storage unit group comprises a first storage unit and a second storage unit, the first storage unit is connected to the data selection unit, the data scheduling unit and the calculation unit at the same time, and the second storage unit is connected to the data selection unit and the data scheduling unit at the same time;
the first storage unit is used for storing the horizontal transformation data output by the calculation unit;
the second storage unit is used for storing the target transformation coefficient used in the calculation process of the calculation unit.
8. The universal video coding system according to claim 7, wherein the first storage unit comprises a synchronous dual port 256bit x 136RAM, the second storage unit comprises a synchronous single port 128bit x 383 ROM;
the width of the first storage unit is 256 bits, and each row is used for storing 256-bit data;
the width of the second storage unit is 128 bits, and each row is used for storing a target transformation coefficient.
9. A data processing method applied to the universal video coding system according to any one of claims 1 to 7, comprising:
acquiring data to be coded by adopting a data selection unit, and sending the data to be coded to a main control unit;
judging the data to be coded through a main control unit to determine a target transformation coefficient corresponding to the data to be coded, generating a transformation instruction based on a judgment result, and sending the transformation instruction to a data selection unit, wherein the judgment result comprises the target transformation coefficient and a transformation type of the data to be coded, and the transformation type comprises horizontal transformation or vertical transformation;
sending the transformation instruction and the data to be encoded corresponding to the transformation instruction to a computing unit through a data selection unit;
when the transformation type in the transformation instruction is horizontal transformation, the calculation unit performs horizontal transformation processing on the data to be encoded based on the target transformation coefficient to obtain horizontal transformation data, and stores the horizontal transformation data into the storage unit group;
and when the transformation type in the transformation instruction is vertical transformation, the calculation unit performs vertical transformation processing on the data to be encoded based on the target transformation coefficient to obtain vertical transformation data, and determines an encoding result of the data to be encoded according to the vertical transformation data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210346297.1A CN114900703B (en) | 2022-03-31 | 2022-03-31 | Universal video coding system and data processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210346297.1A CN114900703B (en) | 2022-03-31 | 2022-03-31 | Universal video coding system and data processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114900703A true CN114900703A (en) | 2022-08-12 |
CN114900703B CN114900703B (en) | 2024-07-23 |
Family
ID=82715915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210346297.1A Active CN114900703B (en) | 2022-03-31 | 2022-03-31 | Universal video coding system and data processing method |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114900703B (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020000019A1 (en) * | 2018-06-29 | 2020-01-02 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding a transformed block of video samples |
CN111669580A (en) * | 2019-03-09 | 2020-09-15 | 杭州海康威视数字技术股份有限公司 | Method, decoding end, encoding end and system for encoding and decoding |
CN112055210A (en) * | 2020-08-19 | 2020-12-08 | 浙江大华技术股份有限公司 | Video image processing method, encoder and computer readable storage medium |
CN112823524A (en) * | 2018-08-08 | 2021-05-18 | Lg电子株式会社 | Image encoding/decoding method and apparatus for the same |
-
2022
- 2022-03-31 CN CN202210346297.1A patent/CN114900703B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020000019A1 (en) * | 2018-06-29 | 2020-01-02 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding a transformed block of video samples |
CN112823524A (en) * | 2018-08-08 | 2021-05-18 | Lg电子株式会社 | Image encoding/decoding method and apparatus for the same |
CN111669580A (en) * | 2019-03-09 | 2020-09-15 | 杭州海康威视数字技术股份有限公司 | Method, decoding end, encoding end and system for encoding and decoding |
CN112055210A (en) * | 2020-08-19 | 2020-12-08 | 浙江大华技术股份有限公司 | Video image processing method, encoder and computer readable storage medium |
Non-Patent Citations (1)
Title |
---|
田晓华, 朱光喜, 王曜: "一种类DCT的8×8整数变换", 中国图象图形学报, no. 08, 25 August 2004 (2004-08-25) * |
Also Published As
Publication number | Publication date |
---|---|
CN114900703B (en) | 2024-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5054103A (en) | Picture encoding system | |
US4937666A (en) | Circuit implementation of block matching algorithm with fractional precision | |
US5696836A (en) | Motion estimation processor architecture for full search block matching | |
CN103369326A (en) | Transition coder applicable to HEVC ( high efficiency video coding) standards | |
CN1268231A (en) | Variable block size 2-dimensional inverse discrete cosine transform engine | |
CN101426134A (en) | Hardware device and method for video encoding and decoding | |
CN108259919B (en) | Hardware system for rapidly realizing 8x8DCT (discrete cosine transform) | |
CN114900703B (en) | Universal video coding system and data processing method | |
CN101640791A (en) | Decoding method, decoding device and decoder | |
JPH10504408A (en) | Apparatus and method for performing inverse discrete cosine transform | |
US5555321A (en) | Image data binary coding method and apparatus | |
CN104053011B (en) | It is applied to the 2-d discrete wavelet inverse converter in JPEG2000 decoder | |
CN100469146C (en) | Video image motion compensator | |
CN101193287A (en) | A method and circuit for improving JPEG2000 MQ decoding efficiency | |
CN102006478A (en) | Inverse transformation method and device of video decoding | |
Viitamäki et al. | High-level synthesized 2-D IDCT/IDST implementation for HEVC codecs on FPGA | |
CN103391104A (en) | Method and device for processing LDPC encoding | |
KR100282614B1 (en) | Motion Predictor for Low Bit Rate Video Codecs | |
KR100246033B1 (en) | A real-time high speed full search block matching motion estimation processor | |
CA2276609A1 (en) | Method and apparatus for half pixel sad generation | |
CN102136878B (en) | Rate matching realization method and system | |
US6668087B1 (en) | Filter arithmetic device | |
CN111787333B (en) | Motion search method and device for video coding | |
CN102447898A (en) | Method for realizing KLT (karhunen-Loeve transform) by using FPGA (field programmable gate array) | |
JPH07210545A (en) | Parallel processing processors |
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 |