De-block effect filtering device and method
A technology of deblocking and filtering devices, which is applied in TV, electrical components, digital video signal modification, etc., can solve the problems of high cost, achieve loose timing, save storage space, and improve efficiency
Inactive Publication Date: 2009-04-15
昆山杰得微电子有限公司
0 Cites 30 Cited by
AI-Extracted Technical Summary
Problems solved by technology
Numerous filtering calculations for a row of da...
the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
View moreMethod used
Seen from the above embodiment, the present invention adopts independent vertical edge filtering module and horizontal edge filtering module, and uses transposition cache to transfer vertical edge filtering result to horizontal edge filter, so that the filtering of a macroblock can only The total filtering time in one direction that takes up the most required filtering time; the vertical edge filter uses the transpose buffer to temporarily store and transfer data to the horizontal edge filter, canceling the internal large buffer at the macroblock (or macroblock pair) level; the horizontal edge The filter uses the left adjacent block cache to transfer data to the vertical edge cache; stores the data of the upper adjacent block outside the chip to save on-chip space, and uses the upper/lower ping-pong row buffer that can be prefetched to provide the upper macroblock (or macroblock pair ) reference block data, which saves the waiting time for external data reading. The deblocking filter of the present invention realizes the filtering calculation of the boundary between a pair of 4 by 4 blocks in 16 clock cycles, the timing is looser, and supports the macroblock-level frame field adapti...
the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
View moreAbstract
The invention discloses a deblock effect filter device which comprises a vertical side filter module used for carrying out filter treatment on the vertical side of a macro block; a horizontal side filter module the input end of which is connected with the output end of the vertical side filter module and the output end thereof is connected with the input end of the vertical side filter module used for carrying out filter on the horizontal side of the macro block; an external memory module which is respectively connected with the vertical filter module and the horizontal filter module and is used for memorizing the result data and the line buffer data of the vertical filter and the horizontal filter. The invention discloses a deblock filter effect filter method by utilizing the device which comprises carrying out vertical filter and horizontal filter. As the independent vertical filter module and the horizontal filter module are adopted in the invention, the memory space of a chip macro block grade; moreover, the parallel mode of vertical filter and horizontal filter is adopted for carrying out filter, in this way, a time sequence is looser; and the self-adapting mode of the frame field of the macro block grade is supported, thus extensively improving the filter efficiency.
Application Domain
Technology Topic
Image
Examples
- Experimental program(1)
Example Embodiment
[0030] like Figure 10 Shown is a schematic structural diagram of the deblocking filter device of the present invention. The present invention is different from the general deblocking filter. Two independent boundary filtering modules and a vertical filtering module are used to perform filtering on the vertical edges of the macroblock. Filter processing; a horizontal filter module, whose input end is connected with the output end of the vertical edge filter module, and its output end is connected with the input end of the vertical edge filter module, for filtering the horizontal edge of the macroblock; the present invention It also includes an external storage module, which is respectively connected with the vertical filtering module and the horizontal filtering module, and is used for storing the result data of the vertical filtering and the horizontal filtering and the line buffer data.
[0031] The vertical filtering module of the present invention includes: a vertical edge filter, used for vertical edge filtering of macroblocks, an output end of which is connected to an external storage module; a left adjacent block buffer, an output end of which is connected to the vertical edge filter, The input terminal is connected to the horizontal edge filter module, which is used to store the reference data of the left adjacent block in the vertical edge filter; a reconstruction data FIFO is connected to the input terminal of the vertical edge filter and used to store the reconstruction of the previous stage reconstruction module. After the data; a vertical edge filter cache, connected with the vertical edge filter, used to store the intermediate data of the vertical edge filter process; and two vertical edge filter results transpose cache, vertical edge filter result transpose cache 0 and vertical edge Filter result transposition buffer 1, one end is connected to the output end of the vertical edge filter, and the other end is connected to the horizontal edge filter module, which is used to store the transpose result of the vertical edge filter for use by the horizontal filter module and the line buffer.
[0032] The horizontal filtering module of the present invention includes: a horizontal edge filter for horizontal edge filtering of macroblocks; two horizontal edge filter buffers, horizontal edge filter buffer 0 and horizontal edge filter buffer 1, respectively connected to the horizontal edge filter, Used to store the intermediate data of the horizontal edge filtering process; a frame macroblock temporary storage block FIFO, connected with the horizontal edge filter, used to store the upper boundary reference data of the current bottom frame macroblock; two horizontal edge filtering results are transposed and buffered , the horizontal filter result transpose cache 0 and the horizontal edge filter result transpose cache 1, one end is connected to the output end of the horizontal edge filter, and the other end is connected to the vertical edge filter module and the external storage module, which are used to cache the horizontal edge filter. Transpose result of edge filtering; two external memory data caches, internal upper ping-pong line cache and internal lower ping-pong line cache, one end is connected to the input end of the horizontal edge filter, and the other end is connected to the external memory module for reading the external memory The line reference data is cached when the data is generated; and a line output FIFO, whose input ends are respectively connected to the output end of the horizontal edge filter and the output end of the vertical edge filter result transposition cache, and its output end is connected to an external storage module for storing the horizontal edge filter. and vertical edge filter transposed line output result.
[0033] The external memory module of the present invention includes an external memory interface and an off-chip memory.
[0034] The present invention adopts the design of independent vertical edge filter and horizontal edge filter, the filtering time of a single direction can be used for 600 clock cycles, and the horizontal edge filtering with the largest number of edges to be filtered can occupy 18 filters on average. The clock cycle, the filtering time of each line is 4 clock cycles, and the design difficulty is greatly reduced.
[0035] In the present invention, the independent vertical edge filter according to the received reconstructed data, as image 3 The illustrated filtering order of 1 to 24 performs 24 (if the current macroblock is at the far left of the picture, there are no 8 sides of the left border of the macroblock) vertical side filtering. The final result after the vertical edge filtering of the current macroblock is temporarily stored in two transposition buffers for use by the horizontal edge filter.
[0036]Under normal circumstances, there are at most 24 horizontal edges that need to be filtered, called normal mode, including all non-frame field adaptive modes. In the frame-field adaptive mode of the H.264 standard, if the current macroblock is the top frame macroblock in the frame macroblock pair, and the above macroblock pair is the field macroblock pair, the current macroblock has a total of up to 32 macroblocks. Horizontal edges require filtering, which is called a special mode.
[0037] The filter order of the independent horizontal edge filter in normal mode is set as follows Figure 4 As shown, there are 24 horizontal edges to filter (16 in the monochrome case). If the current macroblock is at the top of the picture, or the current macroblock is the bottom macroblock in the field macroblock pair in frame field adaptive mode, and is located in the topmost macroblock pair row of the picture, then the macroblock of the current macroblock The upper border horizontal edges do not need to be filtered, and only 16 horizontal edges need to be filtered (12 in the monochrome case).
[0038] The filter order of the independent horizontal edge filter in the special mode is set as follows Figure 5 As shown, there are 32 horizontal edges to filter. As stipulated in the H.264 standard, the top 4 even-numbered lines of the current macroblock are filtered with the top field macroblock in the above macroblock pair, such as sides 1t, 3t, 5t, 7t, 17t, 19t, 21t and 23t, The topmost 4 odd lines of the current macroblock are filtered with the bottom field macroblocks in the above macroblock pair, eg sides 1b, 3b, 5b, 7b, 17b, 19b, 21b and 23b. Then, the horizontal edge filtering in the macroblock is performed. The total order is 1t, 1b, 2, 3t, 3b, 4, 5t, 5b, 6, 7t, 7b, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17t, 17b, 18, 19t, 19b, 20, 21t, 21b, 22, 23t, 23b, 24. Figure 5 The 4-by-4 block with the left slash in the middle is the 4-by-4 block of the top-field macroblock to the middle-top-field macroblock, and the 4-by-4 block with the right-slashed line is the 4-by-4 block of the top-field macroblock to the bottom-field macroblock 4 blocks.
[0039] like Image 6 As shown, it is agreed that the input data on the left side of the vertical boundary is P, and the right side is Q. After filtering, the left side outputs P', and the right side outputs Q'; The lower output Q'.
[0040] In the present invention, the block numbers of the 4 by 4 blocks of the current macroblock and the left adjacent block/upper adjacent block are as follows: Figure 7 and Figure 8 shown. Regardless of whether it is frame field adaptive mode or not, the block numbers of the 4 by 4 blocks in the current macroblock are the same, 1 to 16 are luminance 4 by 4 blocks, 17 to 20 are chrominance Cb blocks, and 21 to 24 are chrominance Cr blocks piece. The block starting with A is the left-neighboring block corresponding to the current macroblock. The block starting with B is the upper adjacent block, and in the frame field adaptive mode, it is also divided into two lines of B blocks, which correspond to the internal upper/lower ping-pong line buffers respectively. The A' block is the result of the vertical edge filtering of the left adjacent block.
[0041] The vertical edge filter and the horizontal edge filter use the same filter core, and the time distribution of the filtering process for each edge (the boundary between a pair of 4 by 4 blocks) is shown in Figure 9. Each row of data takes 4 clock cycles to calculate, and another 4 clock cycles to output the result. Computation and output are parallelized between rows. Each 4 by 4 block takes a total of 16 clock cycles to calculate and 16 clock cycles to output. Edges can be pipelined, and the computation time of the first 4 clock cycles of the next edge can be parallelized with the output time of the last 4 clock cycles of the previous edge. The total number of clock cycles spent by 32 horizontal edge filters after pipeline processing is 32×16=512 clock cycles.
[0042] use Figure 10 The deblocking filtering method of the device mainly includes independent horizontal-side filtering and vertical-side filtering, and the horizontal-side filtering and vertical-side filtering operate in parallel.
[0043] The independent vertical edge filter obtains the reconstructed data from the previous reconstruction module, and reads the left neighboring block data to be referenced from the left neighboring block cache. The intermediate result of vertical edge filtering is stored in an 8 by 32 bit buffer. The final result of the vertical edge filtering of the current macroblock is stored in two 12 by 32 bit transposed buffers for use by the horizontal edge filtering. The final filtering result of the vertical edge filtering of the left adjacent block is output to the off-chip DPB buffer through the external memory interface.
[0044] The independent horizontal edge filter reads the vertical edge filter result of the current macroblock from the transposed buffer between the two filters; reads the current macroblock's upper macroblock boundary from the internal upper/lower ping-pong line buffer. The 4-by-4 block of the referenced macroblock (or macroblock pair) above; if the current macroblock is the bottom frame macroblock in the frame macroblock pair, from the inter-frame macroblock temporary storage block buffer (32 by 32 bit size first-in First-out buffer) reads the 4-by-4 block in the bottom row of the current macroblock to the macroblock of the top frame as the reference data of the upper macroblock boundary of the macroblock of the current bottom frame. The intermediate result of horizontal edge filtering of the top row of 4 by 4 blocks of the current macroblock is temporarily stored in horizontal edge filtering buffer 0 (a buffer of 8 by 32 bits) for horizontal edge filtering in the macroblock. The intermediate results of the horizontal edge filtering of the 4x4 block in the second row and the third row of the current macroblock are temporarily stored in the horizontal edge filtering buffer 1 (a buffer of 16 by 32 bits) for horizontal edge filtering in the macroblock. The final result of horizontal edge filtering, if it is to be used as a reference block for the next macroblock (non-field adaptive mode) or the upper macroblock boundary of a macroblock pair (field adaptive mode), output to the line output FIFO buffer , output to off-chip through the external memory interface. The final results of other horizontal edge filtering are output to two 8x32 size horizontal edge filtering results transposition buffers, if it is the 4x4 block in the rightmost column of the current macroblock or macroblock pair, and is no longer in the current macroblock Or the macroblock pair is used internally as the horizontal edge filtering reference data, and the current macroblock or macroblock pair is not at the rightmost end of the image, then the transposed 4x4 block is written back to the left adjacent block buffer as the right macroblock or macroblock The left neighbor block reference data of the block pair.
[0045] If the left adjacent block after vertical edge filtering is also used as the horizontal edge reference block of the next macroblock (non-field adaptive mode) or macroblock pair (field adaptive mode), then output to the vertical edge filtering converter. After setting the buffer, read and write to the line output FIFO buffer, and output to the off-chip through the external memory interface, such as A3', A4', A5', A6', A7' and A8' in Figure 12.
[0046] like Figure 11 As shown, there are two independent line ping-pong buffers inside, both of which are 64-by-32-bit buffers. Each ping-pong line buffer consists of 16 4-by-4 blocks, of which every 8 4-by-4 blocks corresponds to a row of 4-by-4 blocks of a macroblock. The upper ping-pong line buffer corresponds to the 4-by-4 block to which the first line in the frame field adaptation mode is referenced. The lower ping-pong line buffer corresponds to a 4-by-4 block to which the second row is referenced in the frame field adaptive mode, or corresponds to a 4-by-4 block to which the first row (the only row) in the non-field adaptive mode is referenced. A reference block corresponding to a macroblock is prefetched in advance through ping-pong buffering.
[0047] The order of vertical edge filtering is fixed, such as image 3 shown. The final result after vertical edge filtering is used by the horizontal edge filter through two transpose buffers. The 4-by-4 blocks that go into the transpose buffer first are not necessarily used by the horizontal edge filter before the 4-by-4 blocks that go to the transpose buffer later. The position of each vertically filtered 4x4 block input into the transpose buffer is fixed in the transpose buffer, including the left neighbor block that will be output to the external line buffer, as shown in Figure 12, with different upper and lower The height corresponds to different positions in the cache. For example, the vertical edge filtering result block 1 corresponds to the position of slot 0 of transposed cache 0, block 2 corresponds to the position of slot 1 of transposed cache 0, and block 3 corresponds to the position of slot 0 of transposed cache 1. Only after the 4-by-4 blocks at the corresponding positions in the cache are read out by the horizontal edge filter and become empty, a new final result of the vertical edge filter can be written.
[0048] The vertical-side filtering order and the positional assignment of output results specified above are beneficial for horizontal-side filtering in special cases, as shown in Figure 13. The horizontal edge filter reads at most two 4-by-4 blocks from different transpose buffers simultaneously, using either the even or odd rows of them. For example, the filtering of the horizontal side 1t, read block 1 and block 3 at the same time, filter the even-numbered lines and the 4x4 block data of the top field macroblock stored in the internal upper ping-pong line buffer, and filter the upper two blocks of the result Q'. The line is output to scratch buffer 0, and the next two lines are output to slot 0 of scratch buffer 1. Then filter the horizontal side 1b, read block 1 and block 3 at the same time, filter the odd-numbered lines and the 4-by-4 block data in the bottom field macroblock stored in the internal lower ping-pong line buffer, and the filtering result Q' The upper two lines are output to temporary buffer 0, and the next two lines are output to slot 0 of temporary buffer 1. Next, perform the filtering of the horizontal side 2, read the temporarily stored intermediate result block 1 from the temporary storage cache 0, and read the temporarily stored intermediate result block 3 from the slot0 of the temporary storage cache 1. After filtering, the filter result Q' is output. The slot 0 of the temporary storage buffer 1 waits for the next line of 4 times 4 blocks to perform horizontal edge filtering in the macroblock, and the filtering result P' is output to the horizontal edge filtering result transposition buffer and then output to the external buffer through the external memory interface. As long as the reconstructed data is not blocked and does not affect the continuous filtering of the vertical edges, the filtering of the 32 horizontal edges shown in Figure 13 can be performed sequentially without interruption, and the filtering of all the 32 horizontal edges can be completed in 512 clock cycles.
[0049] The filtering sequence of the horizontal edges under normal conditions is shown in Figure 14, and only 24 horizontal edges need to be filtered. However, a 4x4 block with a maximum of 6 left-neighbor blocks needs to be output to the line-output first-in-first-out buffer after transposition. Since the data is carried with a width of 32 bits, the number of clocks spent is limited.
[0050] The vertical-side filter and the horizontal-side filter in the present invention can process different macroblocks at the same time, and the horizontal-side filter is activated later than the vertical-side filter when the required 4×4 blocks are available.
[0051] The deblocking filter smoothes the boundary of the block and improves the quality of the image. Using the filtered macroblock as the reference frame data can be closer to the original image, and it can be used for motion estimation compensation to improve the compression performance of the image. The vertical edge filtering of 4 by 4 blocks in each row requires left-to-right filtering, and the horizontal edge filtering of 4 by 4 blocks in each column requires top-to-bottom filtering. The vertical side filtering and the horizontal side filtering in the present invention are performed in parallel, and the data input and output between them are related.
[0052] For example, the current image is a non-monochrome image in frame-field adaptive mode, and the current macroblock is the top macroblock in the frame macroblock pair, the upper macroblock pair is a field macroblock pair, there is no left neighbor block, and the current macroblock The block is not on the right border of the image, and the filtering process for this macroblock is described as follows:
[0053] The vertical edge filtering process is shown in Figure 12:
[0054] Step 1: Filtering of vertical edge 1: read the reconstructed block 1 and temporarily store it in the vertical edge filter cache slot0;
[0055] Step 2: Filtering of vertical side 2: If slot 0 of vertical side filter output buffer 0 is empty (available), read reconstructed block 2 and temporarily stored block 1, and output block 1 to slot 0 of output buffer 0 after filtering, Output block 2 to temporary slot1;
[0056] Step 3: Filtering of vertical side 3: read the reconstructed block 3 and temporarily store it in the vertical side filtering cache slot0;
[0057] Step 4: Filtering of vertical side 4: If slot 0 of output buffer 1 of vertical side filtering is empty, read reconstructed block 4 and temporarily stored block 3, output block 3 to slot 0 of output buffer 1 after filtering, and output block 4 to the temporary slot0;
[0058] Step 5: Filtering of vertical edge 5: If slot 1 of output buffer 0 of vertical edge filtering is empty, read reconstructed block 5 and temporarily stored block 2, output block 2 to slot 1 of output buffer 0 after filtering, and output block 0 5 to the temporary slot1;
[0059] Step 6: Filtering of vertical side 6: If slot 2 of vertical side filter output buffer 0 and slot 1 of vertical side filter output buffer 1 are empty, read reconstructed block 6 and temporarily stored block 5, and output block 5 to Slot2 of output buffer 0, output block 6 to slot1 of output buffer 1;
[0060]Step 7: Filtering of vertical side 7: If slot 2 of output buffer 1 of vertical side filtering is empty, read reconstructed block 7 and temporarily stored block 4, output block 4 to slot 2 of output buffer 1 after filtering, and output block 7 to the temporary slot0;
[0061] Step 8: Filtering of vertical side 8: If slot 0 of vertical side filter output buffer 0 and slot 0 of vertical side filter output buffer 1 are empty, read reconstructed block 8 and temporarily stored block 7, and output block 8 to Output buffer 0's slot0, output block 7 to output buffer 1's slot0;
[0062] Step 9: Filtering of the vertical side 9: read the reconstructed block 9 and temporarily store it in the vertical side filtering cache slot1;
[0063] Step 10: Filtering of vertical side 10: If slot 2 of output buffer 1 of vertical side filtering is empty, read reconstructed block 10 and temporarily stored block 9, output block 9 to slot 2 of output buffer 1 after filtering, and output block 10 to the temporary slot0;
[0064] Step 11: Filtering of the vertical side 11: read the reconstructed block 11 and temporarily store it in the vertical side filtering cache slot1;
[0065] Step 12: Filtering of vertical side 12: If slot 2 of output buffer 0 of vertical side filtering is empty, read reconstructed block 12 and temporarily stored block 11, and output block 11 to slot 2 of output buffer 0 after filtering, and output the block 12 to the temporary slot1;
[0066] Step 13: Filtering of vertical side 13: If the slot 0 of the output buffer 1 of the vertical side filter is empty, read the reconstructed block 13 and the temporarily stored block 10, filter the output block 10 to the slot 0 of the output buffer 1, and output the block 13 to the temporary slot0;
[0067] Step 14: Filtering of vertical side 14: If slot 0 of vertical side filter output buffer 0 and slot 1 of vertical side filter output buffer 1 are empty, read reconstructed block 14 and temporarily stored block 13, and output block 14 after filtering To slot 0 of output buffer 0, output block 13 to slot 1 of output buffer 1;
[0068] Step 15: Filtering of vertical side 15: If slot 1 of output buffer 0 of vertical side filtering is empty, read reconstructed block 15 and temporarily stored block 12, and output block 12 to slot 1 of output buffer 0 after filtering, and output the block 15 to the temporary slot0;
[0069] Step 16: Filtering of vertical side 16: If slot 2 of vertical side filter output buffer 0 and slot 2 of vertical side filter output buffer 1 are empty, read reconstructed block 16 and temporarily stored block 15, and output block 15 after filtering To slot2 of output buffer 0, output block 16 to slot2 of output buffer 1;
[0070] Step 17: Filtering of the vertical side 17: read the reconstructed block 17 and temporarily store it in the vertical side filtering cache slot1;
[0071] Step 18: Filtering of vertical side 18: If slot 1 of vertical side filter output buffer 0 and slot 0 of vertical side filter output buffer 1 are empty, read reconstructed block 18 and temporarily stored block 17, and output block 18 after filtering To slot1 of output buffer 0, output block 17 to slot0 of output buffer 1;
[0072] Step 19: Filtering of the vertical side 19: read the reconstructed block 19 and temporarily store it in the vertical side filtering cache slot0;
[0073] Step 20: Filtering of vertical side 20: If slot 2 of vertical side filter output buffer 0 and slot 1 of vertical side filter output buffer 1 are empty, read reconstructed block 20 and temporarily stored block 19, and output block 19 after filtering To slot2 of output buffer 0, output block 20 to slot1 of output buffer 1;
[0074] Step 21: Filtering of the vertical side 21: read the reconstructed block 21 and temporarily store it in the vertical side filtering cache slot1;
[0075] Step 22: Filtering of vertical side 22: If slot 0 of vertical side filter output buffer 0 and slot 2 of vertical side filter output buffer 1 are empty, read reconstructed block 22 and temporarily stored block 21, and output the block after filtering 21 to slot0 of output buffer 0, output block 22 to slot2 of output buffer 1;
[0076] Step 23: Filtering of the vertical side 23: read the reconstructed block 23 and temporarily store it in the vertical side filtering cache slot0;
[0077] Step 24: Filtering of vertical side 24: If slot 2 of vertical side filter output buffer 0 and slot 0 of vertical side filter output buffer 1 are empty, read reconstructed block 24 and temporarily stored block 23, and output the block after filtering 24 to slot 2 of output buffer 0, and output block 23 to slot 0 of output buffer 1. The vertical edge filtering of a macroblock ends, and then returns to step 1 to wait for the data of the next macroblock.
[0078] The horizontal edge filtering process is shown in Figure 13:
[0079] step one:
[0080] Step 1t: Filtering of the horizontal side 1t. If slot 0 (block 1) of vertical edge filter output buffer 0 and slot 0 (block 3) of vertical edge filter output buffer 1 are not empty, read the even line sum of block 1 and block 3 Figure 11 The luminance block 0 (top field macroblock data) in the middle and upper ping-pong line buffers is filtered, and the output P filter result is written into the horizontal filter result output transposition buffer, and the upper two lines of the output Q filter result are written into the horizontal edge filter temporary storage buffer 0, the next two lines of the output Q filter result are written into slot0 of the horizontal edge filter temporary storage cache 1;
[0081] Step 1b: Filtering of the horizontal side 1b. Read the odd row sum of block 1 and block 3 Figure 11 The luminance block 0 (bottom field macroblock data) of the middle and lower ping-pong line buffers is filtered, and the output P filter result is written into the horizontal filter result output transposition buffer, and the upper two lines of the output Q filter result are written into the horizontal edge filter temporary storage buffer 0, and the previously written data to form temporary storage block 1, the next two lines of the output Q filter result are written into slot 0 of the horizontal edge filter temporary storage buffer 1, and the previously written data to form temporary storage block 3;
[0082] Step 2: Filtering of horizontal side 2. Read the temporary block 1 of the horizontal filter temporary buffer 0 and read slot 0 (temporary block 3) of the horizontal filter temporary buffer 1. After filtering, output block 1 to the horizontal filter result output transpose buffer, and output the block 3 to slot0 of the horizontal edge filter temporary buffer 1;
[0083] Step 3:
[0084] Step 3t: Filtering of the horizontal side 3t. If slot1 (block 2) of VSF output buffer 0 and slot2 (block 4) of VSF output buffer 1 are not empty, read the even-numbered line sums of block 2 and block 4 Figure 11 The luminance block 1 (top field macroblock data) of the middle and upper ping-pong line buffers is filtered, and the output P filter result is written into the horizontal filter result output transposition buffer, and the upper two lines of the output Q filter result are written into the horizontal edge filter temporary storage buffer 0, the next two lines of the output Q filter result are written into slot1 of the horizontal edge filter temporary storage cache 1;
[0085] Step 3b: Filtering of the horizontal side 3b. Read the odd row sum of block 2 and block 4 Figure 11 The luminance block 1 (bottom field macroblock data) of the middle and lower ping-pong line buffers is filtered, and the output P filter result is written into the horizontal filter result output transposition buffer, and the upper two lines of the output Q filter result are written into the horizontal edge filter temporary buffer. 0 and the previously written data form temporary storage block 2, and the next two lines of the output Q filtering result are written into slot 1 of the horizontal edge filter temporary storage cache 1 and the previously written data to form temporary storage block 4;
[0086] Step 4: Filtering of horizontal side 4. Read the temporary block 2 of the horizontal filter temporary buffer 0 and read slot 1 (temporary block 4) of the horizontal filter temporary buffer 1. After filtering, output block 2 to the horizontal filter result output transpose buffer, and output the block 4 to slot1 of the horizontal edge filter temporary buffer 1;
[0087] Step 5:
[0088] Step 5t: Filtering of the horizontal edge 5t. If slot 2 (block 5) of vertical edge filter output buffer 0 and slot 0 (block 7) of vertical edge filter output buffer 1 are not empty, read the even line sum of block 5 and block 7 Figure 11 The luminance block 2 (top field macroblock data) in the middle and upper ping-pong line buffers is filtered, and the output P filter result is written into the horizontal filter result output transposition buffer, and the upper two lines of the output Q filter result are written into the horizontal edge filter temporary storage buffer 0, the next two lines of the output Q filter result are written into slot2 of the horizontal edge filter temporary storage cache 1;
[0089] Step 5b: Filtering of the horizontal edge 5b. Read the odd row sum of block 5 and block 7 Figure 11 The luminance block 2 (bottom field macroblock data) of the middle and lower ping-pong line buffers is filtered, and the output P filter result is written into the horizontal filter result output transposition buffer, and the upper two lines of the output Q filter result are written into the horizontal edge filter temporary storage buffer 0 and the previously written data form temporary storage block 5, and the next two lines of the output Q filtering result are written into slot 2 of the horizontal edge filtering temporary storage cache 1 and the previously written data to form temporary storage block 7;
[0090] Step 6: Filtering of the horizontal edge 6 . Read the temporary block 5 of the horizontal filter temporary buffer 0 and read the slot2 (temporary block 7) of the horizontal filter temporary buffer 1. After filtering, output block 5 to the horizontal filter result output transpose buffer, and output the block 7 to slot2 of the horizontal edge filter temporary buffer 1;
[0091] Step seven:
[0092] Step 7t: Filtering of the horizontal side 7t. If slot 0 (block 8) of vertical edge filter output buffer 0 and slot 1 (block 6) of vertical edge filter output buffer 1 are not empty, read the even line sum of block 6 and block 8 Figure 11 The luminance block 3 (top field macroblock data) of the middle and upper ping-pong line buffers is filtered, and the output P filter result is written into the horizontal filter result output transposition buffer, and the upper two lines of the output Q filter result are written into the horizontal edge filter temporary storage buffer 0, the next two lines of the output Q filter result are written into slot 3 of the horizontal edge filter temporary storage cache 1;
[0093] Step 7b: Filtering of the horizontal side 7b. Read odd row sums of block 6 and block 8 Figure 11 The luminance block 3 (bottom field macroblock data) in the middle and lower ping-pong line buffers is filtered, and the output P filtering result is written into the horizontal filtering result output transposition buffer, and the upper two lines of the output Q filtering result are written into the horizontal edge filtering temporary buffer. 0 and the previously written data form temporary storage block 6, and the next two lines of the output Q filtering result are written into slot 3 of the horizontal edge filter temporary storage cache 1 and the previously written data to form temporary storage block 8;
[0094] Step 8: Filtering of the horizontal side 8. Read the temporary storage block 6 (temporary storage block 8) of the horizontal edge filtering temporary storage buffer 0 and read the horizontal edge filtering temporary storage buffer 1 (temporary storage block 8), after filtering, output block 6 to the horizontal filtering result output transposition buffer, and output the block 8 to slot3 of the horizontal edge filter temporary buffer 1;
[0095] Step 9: Filtering of the horizontal side 9. If the slot 2 of the vertical filter output buffer 1 is not empty (block 9), read block 9 and the horizontal filter temporary buffer 1 slot0 (temporary storage block 3) for filtering, and output block 3 to the horizontal filter result output after filtering. In the cache, output block 9 to slot 0 of the horizontal filter temporary cache 1;
[0096] Step 10: Filtering of the horizontal side 10. If slot 2 of vertical filter output buffer 0 is not empty (block 11), read block 11 and slot 0 (temporary storage block 9) of horizontal filter temporary buffer 1 for filtering, and output block 9 to the horizontal filter result output after filtering. In the buffer, the output block 11 to the frame macroblock temporary storage block FIFO buffer is waiting to be referenced by the bottom frame macroblock in the current macroblock pair;
[0097]Step 11: Filtering of the horizontal side 11. If the slot 0 of the vertical filter output buffer 1 is not empty (block 10), read block 10 and the horizontal filter temporary buffer 1 slot1 (temporary block 4) for filtering, and output block 4 to the horizontal filter result output after filtering. In the cache, output block 10 to slot 1 of the horizontal filter temporary cache 1;
[0098] Step 12: Filtering of the horizontal side 12 . If the slot 1 of the vertical filter output buffer 0 is not empty (block 12), the read block 12 and the horizontal filter temporary buffer 1 slot1 (temporary storage block 10) are filtered, and the filtered output block 10 is transferred to the horizontal filter result output. In the buffer, the output block 12 to the frame macroblock temporary storage block FIFO buffer is waiting to be referenced by the bottom frame macroblock in the current macroblock pair;
[0099] Step thirteen: filtering of the horizontal edge 13 . If the slot 1 of the vertical filter output buffer 1 is not empty (block 13), read block 13 and the horizontal filter temporary buffer 1 slot2 (temporary storage block 7) for filtering, and output block 7 to the horizontal filter result output after filtering. In the cache, the output block 13 goes to slot 2 of the horizontal filter temporary cache 1;
[0100] Step Fourteen: Filtering of the horizontal side 14 . If slot 2 of vertical filter output buffer 0 is not empty (block 15), read block 15 and slot 2 (temporary storage block 13) of horizontal filter temporary buffer 1 for filtering, and output block 13 to the horizontal filter result output after filtering. In the buffer, the output block 15 to the frame macroblock temporary storage block FIFO buffer is waiting to be referenced by the bottom frame macroblock in the current macroblock pair;
[0101] Step 15: Filtering of the horizontal side 15. If the slot 0 of the vertical filter output buffer 0 is not empty (block 14), the read block 14 and the horizontal filter temporary buffer 1 slot3 (temporary storage block 8) are filtered, and the filtered output block 8 is transferred to the horizontal filter result output. In the cache, the output block 14 goes to slot 3 of the horizontal filter temporary cache 1;
[0102] Step 16: Filtering of the horizontal side 16 . If slot 2 of the vertical filter output buffer 1 is not empty (block 16), read block 16 and slot 3 (temporary storage block 14) of the horizontal filter temporary buffer 1 for filtering, and output block 14 to the horizontal filter result output after filtering. In the buffer, the output block 16 to the frame macroblock temporary storage block FIFO buffer is waiting to be referenced by the bottom frame macroblock in the current macroblock pair;
[0103] Step seventeen:
[0104] Step 17t: Filtering of the horizontal side 17t. If slot 2 (block 19) of VSF output buffer 0 and slot 0 (block 17) of VSF output buffer 1 are not empty, read the even line sums of blocks 17 and 19 Figure 11 The chrominance Cb block 0 (top field macroblock data) in the middle and upper ping-pong line buffer is filtered, and the output P filter result is written into the horizontal filter result output transposition buffer, and the upper two lines of the output Q filter result are written into the horizontal edge filter temporarily. Cache 0 is stored, and the next two lines of the output Q filter result are written into slot 0 of the horizontal edge filter temporary cache 1;
[0105] Step 17b: Filtering of the horizontal edge 17b. Read the odd row sum of block 17 and block 19 Figure 11 The chrominance Cb block 0 (bottom field macroblock data) of the middle and lower ping-pong line buffers is filtered, and the output P filter result is written into the horizontal filter result output transposition buffer, and the upper two lines of the output Q filter result are written into the horizontal edge filter temporarily. Store cache 0 and the data written before to form temporary storage block 17, and the next two lines of the output Q filtering result are written into slot0 of horizontal edge filter temporary storage cache 1 and the previously written data to form temporary storage block 19;
[0106] Step 18: Filtering of the horizontal edge 18 . Read the temporary storage block 17 of the horizontal filter temporary storage buffer 0 and read the slot0 (temporary storage block 19) of the horizontal edge filter temporary storage buffer 1. After filtering, the output block 17 is output to the horizontal filter result output transposition buffer, and the output block 19 to the frame macroblock temporary storage block FIFO buffer waiting to be referenced by the bottom frame macroblock in the current macroblock pair;
[0107] Step nineteen:
[0108] Step 19t: Filtering of the horizontal side 19t. If slot 1 (block 18) of vertical edge filter output buffer 0 and slot 1 (block 20) of vertical edge filter output buffer 1 are not empty, read the even line sum of block 18 and block 20 Figure 11 The chrominance Cb block 1 (top field macroblock data) of the middle and upper ping-pong line buffers is filtered, and the output P filtering result is written into the horizontal filtering result output transposition buffer, and the upper two lines of the output Q filtering result are written in the horizontal edge filtering temporarily. Cache 0 is stored, and the next two lines of the output Q filter result are written into slot 0 of the horizontal edge filter temporary cache 1;
[0109] Step 19b: Filtering of the horizontal edge 19b. Read the odd row sum of block 18 and block 20 Figure 11 The chrominance Cb block 1 (bottom field macroblock data) of the middle and lower ping-pong line buffers is filtered, the output P filtering result is written into the horizontal filtering result, and the output transposition buffer is output, and the upper two lines of the output Q filtering result are written into the horizontal edge filtering temporarily. The storage buffer 0 and the previously written data form the temporary storage block 18, and the next two lines of the output Q filtering result are written into the horizontal edge filter temporary storage buffer 1. The slot0 and the previously written data form the temporary storage block 20;
[0110] Step 20: Filtering of the horizontal edge 20 . Read the temporary storage block 18 of the horizontal filter temporary storage buffer 0 and read the slot0 (temporary storage block 20) of the horizontal edge filter temporary storage buffer 1. After filtering, output block 18 to the horizontal filter result output transposition buffer, and output the block 20 to the frame macroblock temporary storage block FIFO buffer is waiting to be referenced by the bottom frame macroblock in the current macroblock pair;
[0111] Step twenty-one:
[0112] Step 21t: Filtering of the horizontal side 21t. If slot 0 (block 21) of vertical edge filter output buffer 0 and slot 0 (block 23) of vertical edge filter output buffer 1 are not empty, read the even line sum of block 21 and block 23 Figure 11 The chrominance Cr block 0 (top field macroblock data) in the middle and upper ping-pong line buffer is filtered, and the output P filter result is written into the horizontal filter result output transposition buffer, and the upper two lines of the output Q filter result are written into the horizontal edge filter temporarily. Cache 0 is stored, and the next two lines of the output Q filter result are written into slot 0 of the horizontal edge filter temporary cache 1;
[0113] Step 21b: Filtering of the horizontal side 21b. Read the odd row sum of block 21 and block 23 Figure 11 The chrominance Cr block 0 (bottom field macroblock data) in the middle and lower ping-pong line buffers is filtered, the output P filtering result is written into the horizontal filtering result, and the output transposition buffer is output, and the upper two lines of the output Q filtering result are written into the horizontal edge filtering temporarily. Store cache 0 and the previously written data to form a temporary storage block 21, and the next two lines of the output Q filtering result are written into the horizontal edge filter temporary storage cache 1 slot0 and the previously written data to form a temporary storage block 23;
[0114] Step 22: Filtering of the horizontal edge 22 . Read the temporary storage block 21 of the horizontal filter temporary storage buffer 0 and read the slot0 (temporary storage block 23) of the horizontal filter temporary storage buffer 1. After filtering, output block 21 to the horizontal filtering result output transposition buffer, and output the block 23 to the frame macroblock temporary storage block FIFO buffer waiting to be referenced by the bottom frame macroblock in the current macroblock pair;
[0115] Step twenty-three:
[0116] Step 23t: Filtering of the horizontal side 23t. If slot 2 (block 24) of VSF output buffer 0 and slot 2 (block 22) of VSF output buffer 1 are not empty, read the even line sums of blocks 22 and 24 Figure 11 The chrominance Cr block 1 (top field macroblock data) of the middle and upper ping-pong line buffers is filtered, and the output P filtering result is written into the horizontal filtering result output transposition buffer, and the upper two lines of the output Q filtering result are written in the horizontal edge filtering temporarily. Cache 0 is stored, and the next two lines of the output Q filter result are written into slot 0 of the horizontal edge filter temporary cache 1;
[0117] Step 23b: Filtering of the horizontal edge 23b. Read the odd row sum of block 22 and block 24 Figure 11 The chrominance Cr block 1 (bottom field macroblock data) of the middle and lower ping-pong line buffers is filtered, and the output P filter result is written into the horizontal filter result output transposition buffer, and the upper two lines of the output Q filter result are written into the horizontal edge filter temporarily. Store cache 0 and the previously written data to form a temporary storage block 22, and the next two lines of the output Q filtering result are written into the horizontal edge filter temporary storage cache 1 slot0 and the previously written data to form a temporary storage block 24;
[0118] Step 24: Filtering of the horizontal edge 24 . Read the temporary storage block 22 of the horizontal filter temporary storage buffer 0 and read the slot0 (temporary storage block 24) of the horizontal edge filter temporary storage buffer 1. After filtering, the output block 22 is output to the horizontal filter result output transposition buffer, and the output block 24 to the frame macroblock buffer block FIFO buffer waiting to be referenced by the bottom frame macroblock in the current macroblock pair. The horizontal edge filtering of a macroblock ends, and then returns to step 1 to wait for the data of the next macroblock.
[0119] It can be seen from the above embodiment that the present invention adopts an independent vertical edge filtering module and a horizontal edge filtering module, and uses a transposition buffer to transmit the vertical edge filtering result to the horizontal edge filter, so that the filtering of one macroblock only occupies the required The total filtering time in one direction with the most filtering time; the vertical side filter uses the transposed buffer to temporarily transfer data to the horizontal side filter, canceling the internal large buffer at the macroblock (or macroblock pair) level; the horizontal side filter uses the left Adjacent block cache to pass data to vertical edge cache; store the data of the upper adjacent block off-chip to save on-chip space, and use the prefetchable upper/lower ping-pong line cache to provide the reference of the upper macroblock (or macroblock pair) Block data, saving the waiting time of external data reading. The deblocking filter of the present invention completes the filtering calculation of the boundary between a pair of 4 by 4 blocks in 16 clock cycles, the timing is more relaxed, and supports the macro-block-level frame-field adaptive mode, and the overall time is less than 600 clock cycles. Deblocking filtering of one macroblock is completed.
the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to view more PUM


Description & Claims & Application Information
We can also present the details of the Description, Claims and Application information to help users get a comprehensive understanding of the technical details of the patent, such as background art, summary of invention, brief description of drawings, description of embodiments, and other original content. On the other hand, users can also determine the specific scope of protection of the technology through the list of claims; as well as understand the changes in the life cycle of the technology with the presentation of the patent timeline. Login to view more.
the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to view more Similar technology patents
Message transmission method and device
ActiveCN104168222ASave storage spaceReduce overheadData switching networksReal-time computingTernary content addressable memory
Owner:NEW H3C TECH CO LTD
Trusted routing method based on medium earth orbit/low earth orbit network
ActiveCN106685834ASave storage spaceIncrease credibilityRadio transmissionData switching networksTelecommunicationsMedium Earth orbit
Owner:XIDIAN UNIV
Internet of vehicles monitoring system
InactiveCN105306910AEasy to callSave storage spaceTelevision system detailsTransmission systemsDriver/operatorReal-time computing
Owner:SUZHOU TONGGOU INFORMATION TECH CO LTD
Method, device and system for sharing user contact details
Owner:BEIJING CLEADERWIN TECH
Method and system for automatically finding and registering target in surveillance video
ActiveCN104239881ASave storage spaceReduce workloadCharacter and pattern recognitionFeature extraction
Owner:HANGZHOU HIKVISION DIGITAL TECH
Classification and recommendation of technical efficacy words
- Save storage space
Video commenting method and video player
ActiveCN101930779ASave storage spaceCarrier indexing/addressing/timing/synchronisingGraphicsVideo player
Owner:GLOBAL INNOVATION AGGREGATORS LLC
System and method for copying and transmitting telephony conversations
ActiveUS6993120B2Save storage spaceTelephone data network interconnectionsAutomatic call-answering/message-recording/conversation-recordingThird partySpeech sound
Owner:CISCO TECH INC
System and method for restaurant electronic menu
Owner:IBM CORP