Image deblocking filtering method and apparatus, electronic device and computer readable medium
By generating information about the units to be filtered and performing filtering on them, the problem of low efficiency in processing the boundaries between coding blocks in existing technologies is solved, and more efficient parallel computation of image deblocking filtering is achieved.
Patent Information
- Application Number
- CN202411778597.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-05
- Publication Date
- 2026-08-25
- Estimated Expiration
- 2044-12-05
AI Technical Summary
Existing image deblocking filtering techniques cannot effectively handle the boundaries between coding blocks when performing filtering within a coding block, resulting in low parallel computation efficiency for deblocking filtering.
By generating information about the units to be filtered, a filtered video frame image is generated based on the video frame image. First, the region of the unit to be filtered that needs to be deblocked and filtered is obtained. Then, the data information in the unit region is filtered, including generating information about the units to be filtered, filtering it and generating a group of filtered unit information, and finally storing it in the video memory.
It improves the parallel computing efficiency of image deblocking filtering, effectively handling the boundaries between transform blocks and between coded blocks, thus enhancing the parallel computing efficiency of deblocking filtering.
Smart Images

Figure CN119653112B_ABST
Abstract
Description
Technical Field
[0001] Embodiments of this disclosure relate to the field of computer technology, and more specifically to image deblocking filtering methods, apparatus, electronic devices, and computer-readable media. Background Technology
[0002] In video compression, a frame of video is divided into coded blocks, which are then further divided into transform blocks. After compression, block distortion, known as discontinuity, occurs at the boundaries between transform blocks. Image deblocking filtering techniques smooth out these discontinuities, thus mitigating this distortion. A typical deblocking technique involves: acquiring the coded blocks in a specific order; filtering the left boundaries of each transform block within the coded blocks in that order; and then filtering the upper boundaries of each transform block.
[0003] However, when using the above method to deblock images, the following technical problems often arise:
[0004] Deblocking filtering only works within a coded block of a certain size. However, at the boundaries between coded blocks, this method of filtering the left boundary first and then the top boundary cannot be maintained, resulting in low parallel computation efficiency for deblocking filtering.
[0005] The information disclosed in this background section is only intended to enhance the understanding of the background of the inventive concept, and therefore may contain information that does not constitute prior art known to those skilled in the art. Summary of the Invention
[0006] The summary portion of this disclosure is intended to provide a brief overview of the concepts, which will be described in detail in the detailed description portion. This summary portion is not intended to identify key or essential features of the claimed technical solutions, nor is it intended to limit the scope of the claimed technical solutions.
[0007] Some embodiments of this disclosure provide image deblocking filtering methods, apparatuses, electronic devices, and computer-readable media for video compression to address one or more of the technical problems mentioned in the background section above.
[0008] In a first aspect, some embodiments of this disclosure provide an image deblocking filtering method for video compression. The method includes: receiving a video frame image after video compression processing, wherein the video frame image includes information of each coding unit, and each coding unit information includes information of each transform unit; generating information of each unit to be filtered based on the video frame image, wherein each information of the unit to be filtered includes information of each transform unit to be filtered; performing filtering processing on the information of each unit to be filtered to obtain a group of filtering unit information; generating a filtered video frame image based on the information of each unit to be filtered and the group of filtering unit information; and storing the filtered video frame image in video memory.
[0009] Secondly, some embodiments of this disclosure provide an image deblocking filtering apparatus for video compression. The apparatus includes: a receiving unit configured to receive a video frame image after video compression processing, wherein the video frame image includes information of various coding units, and each coding unit information includes information of various transform units; a first generating unit configured to generate information of various units to be filtered based on the video frame image, wherein each information of various units to be filtered includes information of various transform units to be filtered; a filtering processing unit configured to perform filtering processing on the information of various units to be filtered to obtain a group of filtering unit information; a second generating unit configured to generate a filtered video frame image based on the information of various units to be filtered and the group of filtering unit information; and a storage unit configured to store the filtered video frame image in a video memory.
[0010] Thirdly, some embodiments of this disclosure provide an electronic device, including: one or more processors; and a storage device having one or more programs stored thereon, wherein when the one or more programs are executed by the one or more processors, the one or more processors implement the method described in any implementation of the first aspect above.
[0011] Fourthly, some embodiments of this disclosure provide a computer-readable medium having a computer program stored thereon, wherein the program, when executed by a processor, implements the method described in any of the implementations of the first aspect above.
[0012] The above embodiments of this disclosure have the following beneficial effects: the image deblocking filtering method for video compression according to some embodiments of this disclosure improves the efficiency of image deblocking filtering. Specifically, the reason for the low parallel computing efficiency of image deblocking filtering is that the deblocking filtering process only operates within a coding block of a certain size, and the boundary between coding blocks cannot maintain this deblocking filtering method of filtering the left boundary first and then the top boundary, resulting in low parallel computing efficiency of deblocking filtering. Based on this, the image deblocking filtering method for video compression according to some embodiments of this disclosure first receives a video frame image after video compression processing, wherein the video frame image includes information of each coding unit, and each coding unit information includes information of each transform unit. Thus, the information of each coding unit that needs to be deblocked can be obtained. Then, based on the video frame image, information of each unit to be filtered is generated, wherein each information of each unit to be filtered includes information of each transform unit to be filtered. Thus, the region of the unit to be filtered that needs to be deblocked can be obtained. Then, the information of each unit to be filtered is filtered to obtain a group of filtering unit information. Therefore, deblocking filtering can be performed using the data information within the region to be filtered. Secondly, based on the information of each region to be filtered and the information groups of each filtering region, a filtered video frame image is generated. Thus, the information groups of each filtering region after deblocking can be combined into a filtered video frame image. Finally, the filtered video frame image is stored in the video memory. Because the region to be filtered is obtained first, and then the data information within the region is deblocked, deblocking filtering can be performed not only on the boundaries between transform blocks but also on the boundaries between coded blocks, thereby improving the parallel computation efficiency of deblocking filtering. Attached Figure Description
[0013] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. Throughout the drawings, the same or similar reference numerals denote the same or similar elements. It should be understood that the drawings are schematic, and elements are not necessarily drawn to scale.
[0014] Figure 1 This is a flowchart of some embodiments of the image deblocking filtering method for video compression according to the present disclosure;
[0015] Figure 2 This is a schematic diagram of the structure of some embodiments of an image deblocking filter for video compression according to the present disclosure;
[0016] Figure 3 This is a schematic diagram of the structure of an electronic device suitable for implementing some embodiments of the present disclosure. Detailed Implementation
[0017] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0018] It should also be noted that, for ease of description, only the parts relevant to the invention are shown in the accompanying drawings. Unless otherwise specified, the embodiments and features described in this disclosure can be combined with each other.
[0019] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are used only to distinguish different devices, modules or units, and are not used to limit the order of functions performed by these devices, modules or units or their interdependencies.
[0020] It should be noted that the terms "a" and "a plurality of" used in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".
[0021] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.
[0022] This disclosure will now be described in detail with reference to the accompanying drawings and embodiments.
[0023] Figure 1 A flow 100 of some embodiments of an image deblocking filtering method for video compression according to the present disclosure is shown. The image deblocking filtering method for video compression includes the following steps:
[0024] Step 101: Receive the video frame image after video compression processing.
[0025] In some embodiments, the execution entity (e.g., a computing device) of the image deblocking filtering method can receive video frame images after video compression processing. The video compression processing can be video compression algorithm processing of the video frame images. The video compression algorithm can be MC (Motion Compensation) and / or DPCM (Differential Pulse Code Modulation) and / or DCT (Discrete Cosine Transform). The video frame image can be a single frame from a video. The video frame image can include information about various coding units. Each coding unit information can include information about various transform units. The coding unit information can be pixel information composed of images of a preset coding size in the video frame image. The transform unit information can be pixel information composed of images of a preset transform size in the coding unit information. The preset coding size and the preset transform size can be pre-set values and are not limited herein. The execution entity can be a server for processing video frame images. The execution entity can include a CPU and a GPU.
[0026] Step 102: Generate information for each filter unit based on the video frame images.
[0027] In some embodiments, the execution entity may generate information for each filtering unit based on the video frame image. Each filtering unit information may include information for each filtering transformation unit. The filtering unit information may be pixel information composed of images of a preset filtering size in the video frame image. The filtering transformation unit information may be pixel information composed of images of a preset transformation filtering size in the filtering unit information. The preset filtering size may be the length and width dimensions of the encoding unit information included in the video frame image. The preset transformation filtering size may be the length and width dimensions of the transformation unit information included in the encoding unit information included in the video frame image. The preset filtering size and the preset transformation filtering size may be preset values, and are not limited herein.
[0028] In some optional implementations of certain embodiments, the execution entity may generate information for each filter unit based on the aforementioned video frame image through the following steps.
[0029] The first step is to perform the following steps on each coding unit information in the above video frame image:
[0030] The first sub-step involves generating first filtering range information based on the aforementioned coding unit information. This first filtering range information can be text information representing the range of the coding unit information within the video frame image. The first filtering range information can include first range coordinates and first range size information. The first range coordinates can represent the coordinates of the pixels in the first row and first column of the coding unit information within the video frame image. The first range size information can represent the length and width of the coding unit information. For example, when the first filtering range information is "(64,32), 32*32", the first range coordinates can be "(64,32)" and the first range size information can be "32*32". In practice, firstly, the executing entity can determine the coordinates of the pixels in the first row and first column of the coding unit information within the video frame image as the first range coordinates. Then, the executing entity can determine the length and width information of the pixels in the coding unit information as the first range size information. Finally, the executing entity can combine the first range coordinates and the first range size information to form the first filtering range information. The preset filtering size can be the first range size information.
[0031] The second sub-step generates second filtering range information based on the first filtering range information and the preset filtering displacement information. The preset filtering displacement information can be text information representing adjustments to the filtering range. For example, the preset filtering displacement information can be a preset movement distance, where the filtering range is rigidly shifted left and upward from the first filtering range information. The preset movement distance can be half the number of pixels required for filtering. The filtering process can be smoothing filtering. For example, when the filtering process requires 8 pixels for calculation, the preset movement distance can be 4 pixels. The second filtering range information can be text information representing the range of the image region to be filtered within the video frame image. The second filtering range information can include second range coordinates and second range size information. The second range coordinates can be the first range coordinates after the shift processing. The second range size information can be information representing the length and width of the image region to be filtered. In practice, firstly, the executing entity can move the first range coordinates included in the first filtering range information according to the preset movement distance to obtain the second range coordinates. Then, the executing entity can determine the first range size information included in the first filtering range information as the second range size information. Finally, the aforementioned executing entity can combine the aforementioned second range coordinates and the aforementioned second range size information into second filtering range information.
[0032] The third sub-step involves generating filterable unit information based on the aforementioned second filtering range information. This filterable unit information includes information on each filterable transform unit, and each filterable transform unit corresponds to filterable transform unit boundary information. This filterable transform unit boundary information can be the pixel boundaries representing the regions of the corresponding transform units within the video frame image. In practice, firstly, the executing entity can determine each pixel of the image within the second filtering range information in the video frame image as filterable unit information. Then, the executing entity can segment the filterable unit information according to the preset variable filtering size to obtain each filterable transform unit. For each filterable transform unit, the executing entity can determine the pixel boundaries of the regions of the corresponding transform units within the video frame image as filterable transform unit boundary information. As an example, when the second filtering range information is "(60,28), 32*32" and the preset variable filtering size is "8*8", the size of the filterable unit information is "32*32". The execution entity can divide the filterable unit information into 8-pixel columns and 8-pixel rows to obtain 16 "8*8" pixel filterable transformation unit information. Since the second filtering range is obtained by shifting the first filtering range 4 pixels to the left and upward, each filterable transformation unit information contains the partial pixel boundary of the "2*2" transformation unit information it covers.
[0033] Step 103: Filter the information of each unit to be filtered to obtain the information group of each filter unit.
[0034] In some embodiments, the execution entity may perform filtering processing on the aforementioned information of each filterable unit to obtain a group of filterable unit information. Each filterable unit information in the aforementioned group of filterable unit information may be the filterable transformation unit information included in the filtered information of the filterable unit.
[0035] In some optional implementations of certain embodiments, the execution entity may perform filtering processing on the information of each filterable unit through the following steps to obtain each filterable unit information group:
[0036] The first step is to perform the following steps for each of the above-mentioned filterable unit information:
[0037] The first sub-step involves performing vertical boundary filtering on the information of each transform unit to be filtered, including the aforementioned information of the unit to be filtered, to obtain information of each vertically filtered transform unit. This vertically filtered transform unit information can be the transform unit information to be filtered after vertical boundary filtering.
[0038] The second sub-step involves integrating the information from each of the aforementioned vertical filtering transformation units to obtain vertical filtering unit information. This vertical filtering unit information can be the filtered unit information resulting from vertical boundary filtering of the individual filtered transformation unit information included in the filtered unit information. In practice, the executing entity can combine the aforementioned vertical filtering transformation unit information into vertical filtering unit information.
[0039] The second step involves performing the following steps for each vertical filter unit information obtained from the various vertical filter unit information:
[0040] The first sub-step involves performing horizontal boundary filtering on the vertical filter unit information, which includes the aforementioned vertical filter unit information, to obtain individual filter unit information. This filter unit information can be the vertical filter unit information after horizontal boundary filtering.
[0041] The second sub-step involves determining the information of each of the above-mentioned filtering units as a filtering unit information group.
[0042] In some optional implementations of certain embodiments, the execution entity may perform vertical boundary filtering on the various transformation unit information to be filtered included in the above-mentioned filtering unit information through the following steps to obtain the various vertical filtering transformation unit information:
[0043] The first step is to perform the following steps for each piece of information about the transform unit to be filtered, which is included in the above-mentioned information about the transform unit to be filtered:
[0044] The first sub-step involves determining the aforementioned information of the transformation unit to be filtered as a vertical filtering matrix. This vertical filtering matrix can be a matrix composed of the pixel information included in the information of the transformation unit to be filtered. The vertical filtering matrix corresponds to the boundary information of the transformation unit to be filtered.
[0045] The second sub-step generates the vertical category to be filtered based on the preset filtering range information and the aforementioned vertical filtering matrix. The preset filtering range information can represent the number of pixels requiring filtering. For example, if the number of pixels required for filtering is 8, the preset filtering range information can be "8 pixels". The vertical category to be filtered can represent a preset boundary type within a preset boundary type group, indicating that the boundary information of the transformation unit corresponding to the vertical filtering matrix belongs to this type. The preset boundary type can represent the shape of the boundary information of the transformation unit to be filtered. Each preset boundary type in the preset boundary type group can be a pre-defined boundary type, which is not limited here. For example, the preset boundary type can be "upper segment type", "lower segment type", "vertical full segment type", or "none".
[0046] The third sub-step involves, in response to determining that the vertical category to be filtered satisfies the first preset vertical filtering condition, filtering processing is performed on each row vector in the matrix to be vertically filtered to obtain a vertical filtering matrix. The first preset vertical filtering condition can be that the vertical category to be filtered is a "vertical full-segment type". The vertical filtering matrix can be the vertical filtering matrix after the filtering processing.
[0047] The fourth sub-step involves, in response to determining that the vertical category to be filtered satisfies the second preset vertical filtering condition, filtering the row vectors in the matrix to be filtered that satisfy the preset row vector condition to obtain the vertical filtering matrix. The second preset vertical filtering condition can be that the vertical category to be filtered is "upper segment type". The preset row vector condition can be all row vectors in the upper half of the matrix to be filtered.
[0048] The fifth sub-step involves, in response to determining that the vertical category to be filtered satisfies the third preset vertical filtering condition, filtering is performed on the row vectors in the vertical filtering matrix that do not satisfy the preset row vector condition to obtain the vertical filtering matrix. The third preset vertical filtering condition can be that the vertical category to be filtered is "lower segment type".
[0049] The sixth sub-step involves determining the vertical category to be filtered as a vertical filtering matrix in response to the determination that it satisfies the fourth preset vertical filtering condition. The third preset vertical filtering condition can be that the vertical category to be filtered is "none".
[0050] The seventh sub-step involves determining the obtained vertical filter matrix as vertical filter transformation unit information. This vertical filter transformation unit information can be the pixel information composed of the elements included in the vertical filter matrix.
[0051] In some optional implementations of certain embodiments, the execution entity may perform horizontal boundary filtering on the vertical filter unit information included in the vertical filter unit information through the following steps to obtain the information of each filter unit:
[0052] The first step is to perform the following steps for each vertical filter change unit information included in the above vertical filter unit information:
[0053] The first sub-step involves determining the aforementioned vertical filtering transformation unit information as the horizontal filtering matrix to be filtered. This horizontal filtering matrix can be a matrix composed of the pixel information included in the aforementioned vertical filtering transformation unit information. The horizontal filtering matrix corresponds to the boundary information of the aforementioned filtering transformation units.
[0054] The second sub-step involves generating a filtering level category based on the preset filtering range information and the aforementioned horizontal filtering matrix. This filtering level category can be a preset boundary type from a preset boundary type group, representing that the boundary information of the transformation unit corresponding to the horizontal filtering matrix belongs to this category. The preset boundary type can be a type representing the shape of the boundary information of the transformation unit. Each preset boundary type in the preset boundary type group can be a pre-defined boundary type, without limitation. For example, the preset boundary type could be "left segment type," "right segment type," "horizontal full segment type," or "none."
[0055] The third sub-step involves, in response to determining that the aforementioned level category to be filtered satisfies the first preset level filtering condition, filtering processing is performed on each column vector in the aforementioned level filtering matrix to obtain a level filtering matrix. The first preset level filtering condition can be that the aforementioned level category to be filtered is a "full-segment level type". The aforementioned level filtering matrix can be the level filtering matrix after the filtering processing.
[0056] The fourth sub-step involves, in response to determining that the aforementioned level category to be filtered satisfies the second preset level filtering condition, filtering the column vectors in the aforementioned level filtering matrix that satisfy the preset column vector condition to obtain the level filtering matrix. The first preset level filtering condition can be that the aforementioned level category to be filtered is "left segment type". The preset column vector condition can be all column vectors in the left half of the level filtering matrix.
[0057] The fifth sub-step involves, in response to determining that the aforementioned level category to be filtered satisfies the third preset level filtering condition, filtering processing is performed on the row vectors in the aforementioned level filtering matrix that do not satisfy the aforementioned preset row vector condition to obtain a level filtering matrix. The aforementioned first preset level filtering condition can be that the aforementioned level category to be filtered is "right segment type".
[0058] The sixth sub-step involves determining the horizontal filtering matrix as a horizontal filtering matrix in response to the determination that the aforementioned level category to be filtered satisfies the fourth preset horizontal filtering condition. The first preset horizontal filtering condition can be that the aforementioned level category to be filtered is "none".
[0059] The seventh sub-step involves determining the obtained horizontal filtering matrix as filtering unit information. This filtering unit information can be the pixel information composed of the elements of the horizontal filtering matrix.
[0060] In the process of adopting technical solutions to address the aforementioned technical problems, the following issues often arise:
[0061] The filtering process for the information of the filtering unit requires that all the information of each transformation unit to be filtered, including the information of the filtering unit, be vertically filtered before horizontal filtering can be performed. This results in the need to read the information of the filtering unit twice to complete one filtering process, which leads to low parallel computing efficiency of deblocking filtering.
[0062] In response to the aforementioned technical problems, the following solution was adopted:
[0063] In some optional implementations of certain embodiments, the execution entity may perform filtering processing on the information of each filterable unit through the following steps to obtain each filterable unit information group, including:
[0064] The first step involves generating a topology region matrix group for each of the aforementioned filterable unit information, based on the filterable unit information and a pre-stored topology type information group. The topology type information in the topology type information group can be a topological structure representing the boundary information of each filterable transformation unit information within the filterable unit information. This topology type information can be pre-defined type information and is not limited here. For example, the topology type information can be "cross-shaped region, i.e., with a complete horizontal and vertical edge requiring filtering," "T-shaped region, consisting of a complete horizontal or vertical edge and half an edge in another direction," "straight-line region, this region has only one complete horizontal or vertical edge," "half-edge region, this region appears on the boundary of the entire frame image, this region has only half a horizontal or vertical edge," and "borderless region, this region has no edge requiring filtering." Each topology region matrix in the aforementioned topology region matrix group can be a matrix composed of the pixel information included in the filterable transformation unit information. Each topology region matrix corresponds to topology type information. In practice, for each piece of information about a transform unit to be filtered, which is included in the information about the transform unit to be filtered, firstly, the execution entity can determine the boundary information of the transform unit to be filtered corresponding to the information about the transform unit to be filtered as the boundary information to be compared. Then, the execution entity can compare the topology type of the boundary information to be compared with the topology type information to obtain the topology type information corresponding to the boundary information to be compared. Next, the information about the transform unit to be filtered is determined as a topology region matrix. The topology region matrix corresponds to the topology type information.
[0065] The second step involves performing the following steps for each of the generated topological region matrix groups:
[0066] The first sub-step involves performing the following steps for each topological region matrix in the above topological region matrix group:
[0067] Sub-step one: Based on pre-stored boundary filtering order information, a boundary condition group is generated, which includes a first boundary condition, a second boundary condition, a third boundary condition, and a fourth boundary condition. The boundary filtering order information can be text information representing the order of the boundaries to be filtered. The boundary condition group can be text information representing the boundary conditions to be filtered. For example, when the matrix to be filtered is 8*8 pixels, the first boundary condition can be "row vectors 0, 1, 2, 3 of the matrix". The second boundary condition can be "row vectors 4, 5, 6, 7 of the matrix". The third boundary condition can be "column vectors 0, 1, 2, 3 of the matrix". The fourth boundary condition can be "column vectors 4, 5, 6, 7 of the matrix".
[0068] Sub-step two involves generating a topology filter type based on the aforementioned topology region matrix and boundary condition set. This topology filter type can be text information characterizing whether the four boundaries of the corresponding boundary condition set in the topology region matrix require filtering. The topology filter type can include: a first boundary filter type, a second boundary filter type, a third boundary filter type, and a fourth boundary filter type. In practice, firstly, the executing entity, in response to determining that the aforementioned topology region matrix satisfies the aforementioned first boundary condition, determines the preset first boundary condition information as the first boundary filter type. This first boundary condition information can be preset text information. For example, the first boundary condition information can be "filtering required". The second, third, and fourth boundary filter types can refer to the generation method of the first boundary filter type. Then, the executing entity can combine the first, second, third, and fourth boundary filter types into a topology filter type.
[0069] Sub-step three involves filtering each row vector in the aforementioned topological region matrix that satisfies the first boundary condition to obtain the first topological region matrix. This first topological region matrix can be a filtered topological region matrix.
[0070] Sub-step four: In response to determining that the above topology filtering type does not meet the preset first boundary preservation condition, the above topology region matrix is determined as the first topology region matrix, and the first topology region matrix is updated to obtain the first topology region matrix. The preset first boundary preservation condition can be that the first boundary filtering type included in the above topology filtering type is "required filtering".
[0071] Sub-step five involves filtering the row vectors in the obtained first topological region matrix that satisfy the second boundary condition to obtain the second topological region matrix. The second topological region matrix can be the filtered first topological region matrix.
[0072] Sub-step six: In response to determining that the above-mentioned topology filtering type does not meet the preset second boundary preservation condition, the above-mentioned first topology region matrix is determined as the second topology region matrix, and the above-mentioned second topology region matrix is updated to obtain the second topology region matrix. The preset second boundary preservation condition can be that the second boundary filtering type included in the above-mentioned topology filtering type is "required filtering".
[0073] Sub-step seven involves filtering the column vectors in the obtained second topological region matrix that satisfy the third boundary condition to obtain the third topological region matrix. The third topological region matrix can be the filtered second topological region matrix.
[0074] Sub-step eight: In response to determining that the above topology filtering type does not meet the preset third boundary preservation condition, the above second topology region matrix is determined as the third topology region matrix, and the above third topology region matrix is updated to obtain the third topology region matrix. The preset third boundary preservation condition can be that the third boundary filtering type included in the above topology filtering type is "required filtering".
[0075] Sub-step nine involves filtering the column vectors in the obtained third topological region matrix that satisfy the fourth boundary condition to obtain the fourth topological region matrix. The fourth topological region matrix can be the filtered third topological region matrix.
[0076] Sub-step ten: In response to determining that the above topology filtering type does not meet the preset fourth boundary preservation condition, the above third topology region matrix is determined as the fourth topology region matrix, and the above fourth topology region matrix is updated to obtain the fourth topology region matrix. The preset fourth boundary preservation condition can be that the fourth boundary filtering type included in the above topology filtering type is "required filtering".
[0077] Sub-step eleven: The obtained fourth topological region matrix is determined as the filtering unit information.
[0078] The second sub-step involves determining the obtained information from each filter unit as a filter unit information group.
[0079] The above-described technical solution and its related content, as an inventive point of this disclosure, solve the problem that "the filtering process for the information of the filtering unit requires vertical filtering of all the information of each transformation unit to be filtered before horizontal filtering can be performed, resulting in the need to read the information of the filtering unit twice to complete one filtering process, thus leading to low parallel computing efficiency of deblocking filtering." The factors leading to low parallel computing efficiency in filtering are often as follows: vertical filtering of all the information of each transformation unit to be filtered is required before horizontal filtering can be performed. Solving these factors can improve filtering efficiency. To achieve this effect, this disclosure first generates a topology region matrix group for each of the aforementioned information of the filtering unit, based on the aforementioned information of the filtering unit and a pre-stored topology type information group. Thus, the various topology region matrix groups that need to be filtered can be obtained. Then, for each of the generated topological region matrix groups, the following steps are performed: For each topological region matrix in the aforementioned topological region matrix group, the following steps are performed: Based on pre-stored boundary filtering order information, a boundary condition group is generated, wherein the aforementioned boundary condition group includes a first boundary condition, a second boundary condition, a third boundary condition, and a fourth boundary condition. Thus, four boundary conditions requiring filtering can be obtained according to the pre-stored boundary filtering order information. Next, based on the aforementioned topological region matrix and the aforementioned boundary condition group, a topological filtering type is generated. Thus, one or more boundaries in each topological region matrix can be identified as the type requiring filtering. Next, each row vector in the aforementioned topological region matrix that satisfies the first boundary condition is filtered to obtain a first topological region matrix. Then, in response to determining that the aforementioned topological filtering type does not satisfy the preset first boundary retention condition, the aforementioned topological region matrix is determined as the first topological region matrix, and the aforementioned first topological region matrix is updated to obtain a first topological region matrix. Next, each row vector in the obtained first topological region matrix that satisfies the second boundary condition is filtered to obtain a second topological region matrix. Secondly, in response to the determination that the above-mentioned topology filtering type does not satisfy the preset second boundary preservation condition, the above-mentioned first topology region matrix is determined as the second topology region matrix, and the second topology region matrix is updated to obtain the second topology region matrix. Then, the column vectors in the obtained second topology region matrix that satisfy the third boundary condition are filtered to obtain the third topology region matrix. Next, in response to the determination that the above-mentioned topology filtering type does not satisfy the preset third boundary preservation condition, the above-mentioned second topology region matrix is determined as the third topology region matrix, and the third topology region matrix is updated to obtain the third topology region matrix. Then, the column vectors in the obtained third topology region matrix that satisfy the fourth boundary condition are filtered to obtain the fourth topology region matrix.Then, in response to the determination that the above-mentioned topological filtering type does not meet the preset fourth boundary preservation condition, the above-mentioned third topological region matrix is determined as the fourth topological region matrix, and the fourth topological region matrix is updated to obtain the fourth topological region matrix. Next, the obtained fourth topological region matrix is determined as the filtering unit information. Thus, the filtering unit information after four boundary filterings can be obtained. Finally, the obtained filtering unit information is determined as a filtering unit information group. Thus, the filtering unit information group can be obtained. Because the filtering process sequentially applies to the four boundaries to be filtered, the filtering of the entire filtering unit information can be completed in one step, thereby enabling the filtering of the entire video frame image in one operation, thus improving the parallel computation efficiency of deblocking filtering.
[0080] Step 104: Generate filtered video frame images based on the information of each unit to be filtered and the information group of each filtering unit.
[0081] In some embodiments, the execution entity may generate filtered video frame images based on the information of each filter unit and the information groups of each filter unit. The filtered video frame images may be video frame images that have undergone filtering processing.
[0082] In some optional implementations of certain embodiments, the execution entity can generate filtered video frame images based on the information of each filter unit and the information groups of each filter unit through the following steps:
[0083] The first step is to perform the following steps for each of the above-mentioned filterable unit information:
[0084] The first sub-step involves determining each filter unit information included in the filter unit information group corresponding to the above-mentioned filter unit information as the target filter unit information.
[0085] The second sub-step involves inputting the determined target filtering unit information into the video frame image to update the video frame image. In practice, for each of the target filtering unit information, the executing entity can input the target filtering unit information into the corresponding position of the video frame image to update the video frame image.
[0086] The second step is to identify the updated video frame image as the filtered video frame image.
[0087] Step 105: Store the filtered video frame image to the video memory.
[0088] In some embodiments, the execution entity may store the filtered video frame image to video memory.
[0089] The above embodiments of this disclosure have the following beneficial effects: the image deblocking filtering method for video compression according to some embodiments of this disclosure improves the efficiency of image deblocking filtering. Specifically, the reason for the low parallel computing efficiency of image deblocking filtering is that the deblocking filtering process only operates within a coding block of a certain size, and the boundary between coding blocks cannot maintain this deblocking filtering method of filtering the left boundary first and then the top boundary, resulting in low parallel computing efficiency of deblocking filtering. Based on this, the image deblocking filtering method for video compression according to some embodiments of this disclosure first receives a video frame image after video compression processing, wherein the video frame image includes information of each coding unit, and each coding unit information includes information of each transform unit. Thus, the information of each coding unit that needs to be deblocked can be obtained. Then, based on the video frame image, information of each unit to be filtered is generated, wherein each information of each unit to be filtered includes information of each transform unit to be filtered. Thus, the region of the unit to be filtered that needs to be deblocked can be obtained. Then, the information of each unit to be filtered is filtered to obtain a group of filtering unit information. Therefore, deblocking filtering can be performed using the data information within the region to be filtered. Secondly, based on the information of each region to be filtered and the information groups of each filtering region, a filtered video frame image is generated. Thus, the information groups of each filtering region after deblocking can be combined into a filtered video frame image. Finally, the filtered video frame image is stored in the video memory. Because the region to be filtered is obtained first, and then the data information within the region is deblocked, deblocking filtering can be performed not only on the boundaries between transform blocks but also on the boundaries between coded blocks, thereby improving the parallel computation efficiency of deblocking filtering.
[0090] Further reference Figure 2 As an implementation of the methods shown in the above figures, this disclosure provides some embodiments of an image deblocking filtering apparatus for video compression, which are similar to... Figure 1 Corresponding to the method embodiments shown, the device can be specifically applied to various electronic devices.
[0091] like Figure 2As shown, an image deblocking and filtering apparatus 200 for video compression in some embodiments includes: a receiving unit 201, a first generating unit 202, a filtering processing unit 203, a second generating unit 204, and a storage unit 205. The receiving unit 201 is configured to receive a user's webpage browsing request, wherein the webpage browsing request includes a URL; the receiving unit 201 is configured to receive a video frame image after video compression processing, wherein the video frame image includes information of various coding units, and each coding unit information includes information of various transform units; the first generating unit 202 is configured to generate information of various units to be filtered based on the video frame image, wherein each information of various units to be filtered includes information of various transform units to be filtered; the filtering processing unit 203 is configured to perform filtering processing on the information of various units to be filtered to obtain a group of filtering unit information; the second generating unit 204 is configured to generate a filtered video frame image based on the information of various units to be filtered and the group of filtering unit information; and the storage unit 205 is configured to store the filtered video frame image in video memory.
[0092] It is understandable that the units described in the device 200 are related to the reference. Figure 1 The steps in the described method correspond to each other. Therefore, the operations, features, and beneficial effects described above for the method also apply to the device 200 and the units contained therein, and will not be repeated here.
[0093] The following is for reference. Figure 3 It shows a schematic diagram of the structure of an electronic device 300 suitable for implementing some embodiments of the present disclosure. Figure 3 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments of this disclosure.
[0094] like Figure 3 As shown, the electronic device 300 may include a processing unit (e.g., a central processing unit, a graphics processing unit, etc.) 301, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 302 or a program loaded from a storage device 308 into a random access memory (RAM) 303. The RAM 303 also stores various programs and data required for the operation of the electronic device 300. The processing unit 301, ROM 302, and RAM 303 are interconnected via a bus 304. An input / output (I / O) interface 305 is also connected to the bus 304.
[0095] Typically, the following devices can be connected to I / O interface 305: input devices 306 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 307 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 308 including, for example, magnetic tapes, hard disks, etc.; and communication devices 309. Communication device 309 allows electronic device 300 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 3 An electronic device 300 with various devices is shown; however, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed alternatively. Figure 3 Each box shown can represent a device or multiple devices as needed.
[0096] In particular, according to some embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, some embodiments of this disclosure include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via communication device 309, or installed from storage device 308, or installed from ROM 302. When the computer program is executed by processing device 301, it performs the functions defined in the methods of some embodiments of this disclosure.
[0097] It should be noted that, in some embodiments of this disclosure, the computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium, or any combination thereof. A computer-readable storage medium may be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In some embodiments of this disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In some embodiments of this disclosure, a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium can be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.
[0098] In some implementations, clients and servers can communicate using any currently known or future-developed network protocol such as HTTP (Hypertext Transfer Protocol) and can interconnect with digital data communication (e.g., communication networks) of any form or medium. Examples of communication networks include local area networks (“LANs”), wide area networks (“WANs”), the Internet (e.g., the Internet of Things), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future-developed networks.
[0099] The aforementioned computer-readable medium may be included in the aforementioned electronic device; or it may exist independently and not assembled into the electronic device. The aforementioned computer-readable medium carries one or more programs that, when executed by the electronic device, cause the electronic device to: receive a video frame image after video compression processing, wherein the video frame image includes information of various coding units, and each coding unit information includes information of various transform units; generate information of various filtering units based on the video frame image, wherein each filtering unit information includes information of various transform units to be filtered; perform filtering processing on the information of various filtering units to obtain groups of filtering unit information; generate a filtered video frame image based on the information of various filtering units and the groups of filtering unit information; and store the filtered video frame image in video memory.
[0100] Computer program code for performing operations of some embodiments of this disclosure can be written in one or more programming languages or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, and C++, and conventional procedural programming languages such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0101] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0102] The units described in some embodiments of this disclosure can be implemented in software or hardware. The described units can also be housed in a processor; for example, a processor may be described as including a receiving unit, a first generating unit, a filtering unit, a second generating unit, and a storage unit. The names of these units do not necessarily limit the specific unit; for example, a receiving unit may also be described as "a unit that receives video frame images after video compression processing."
[0103] The functions described above in this document can be performed, at least in part, by one or more hardware logic components. For example, exemplary types of hardware logic components that can be used, without limitation, include: Field Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application Standard Products (ASSPs), System-on-Chip (SoCs), Complex Programmable Logic Devices (CPLDs), and so on.
[0104] The above description is merely a selection of preferred embodiments of this disclosure and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of the invention involved in the embodiments of this disclosure is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-described inventive concept. For example, technical solutions formed by substituting the above-described features with (but not limited to) technical features with similar functions disclosed in the embodiments of this disclosure.
Claims
1. An image deblocking filtering method for video compression, comprising: Receive a video frame image after video compression processing, wherein the video frame image includes information of each coding unit, and each coding unit information includes information of each transform unit; Based on the video frame image, information of each filterable unit is generated, wherein each filterable unit information includes information of each filterable transformation unit. The information of each unit to be filtered is processed to obtain a group of information of each filtered unit. Based on the information of each unit to be filtered and the information group of each filtering unit, a filtered video frame image is generated; Store the filtered video frame image into the video memory; The step of filtering the information of each filter unit to obtain each filter unit information group includes: For each piece of information to be filtered in the information to be filtered, a topology region matrix group is generated based on the information to be filtered and the pre-stored topology type information group. For each of the generated topology region matrix groups, perform the following steps: For each topological region matrix in the aforementioned topological region matrix group, perform the following steps: Based on pre-stored boundary filtering order information, a boundary condition group is generated, wherein the boundary condition group includes a first boundary condition, a second boundary condition, a third boundary condition, and a fourth boundary condition; Based on the topology region matrix and the boundary condition set, a topology filter type is generated; The first topological region matrix is obtained by filtering each row vector in the topological region matrix that satisfies the first boundary condition. In response to determining that the topology filtering type does not meet the preset first boundary preservation condition, the topology region matrix is determined as the first topology region matrix, and the first topology region matrix is updated to obtain the first topology region matrix; The row vectors in the first topological region matrix that satisfy the second boundary condition are filtered to obtain the second topological region matrix. In response to determining that the topology filtering type does not meet the preset second boundary preservation condition, the first topology region matrix is determined as the second topology region matrix, and the second topology region matrix is updated to obtain the second topology region matrix; The column vectors that satisfy the third boundary condition in the obtained second topological region matrix are filtered to obtain the third topological region matrix. In response to determining that the topology filtering type does not meet the preset third boundary preservation condition, the second topology region matrix is determined as the third topology region matrix, and the third topology region matrix is updated to obtain the third topology region matrix; The column vectors in the obtained third topological region matrix that satisfy the fourth boundary condition are filtered to obtain the fourth topological region matrix. In response to determining that the topology filtering type does not meet the preset fourth boundary preservation condition, the third topology region matrix is determined as the fourth topology region matrix, and the fourth topology region matrix is updated to obtain the fourth topology region matrix. The obtained fourth topological region matrix is used as the filtering unit information; The obtained information from each filter unit is defined as a filter unit information group.
2. The method according to claim 1, wherein, The step of generating information for each filter unit based on the video frame image includes: For each coding unit information included in the video frame image, the following steps are performed: Based on the coding unit information, first filtering range information is generated; Based on the first filtering range information and the preset filtering displacement information, the second filtering range information is generated; Based on the second filtering range information, the information of the unit to be filtered is generated.
3. The method according to claim 1, wherein, The filtering process for each filterable unit information to obtain each filterable unit information group includes: For each piece of information about the filterable unit, perform the following steps: Vertical boundary filtering is performed on each of the transformation unit information to be filtered, including the information of the unit to be filtered, to obtain the information of each vertically filtered transformation unit. The vertical filter change unit information is integrated and processed to obtain the vertical filter unit information; For each vertical filter unit information obtained, perform the following steps: The vertical filter unit information, including the vertical filter change unit information, is subjected to horizontal boundary filtering to obtain the information of each filter unit. The information of each filtering unit is determined as a filtering unit information group.
4. The method according to claim 3, wherein, The process of performing vertical boundary filtering on the information of each transformation unit to be filtered, including the information of the unit to be filtered, to obtain information of each vertically filtered transformation unit includes: For each piece of information about a transform unit to be filtered, including the information about the transform unit to be filtered, the following steps are performed: The information of the transformation unit to be filtered is determined as the vertical filtering matrix; Based on the preset filtering range information and the vertical filtering matrix to be filtered, a vertical category to be filtered is generated. In response to determining that the vertical category to be filtered satisfies the first preset vertical filtering condition, each row vector in the vertical filtering matrix is filtered to obtain the vertical filtering matrix. In response to determining that the vertical category to be filtered satisfies the second preset vertical filtering condition, the row vectors in the matrix to be filtered that satisfy the preset row vector condition are filtered to obtain the vertical filtering matrix; In response to determining that the vertical category to be filtered satisfies the third preset vertical filtering condition, the row vectors in the matrix to be filtered that do not satisfy the preset row vector condition are filtered to obtain the vertical filtering matrix; In response to determining that the vertical category to be filtered satisfies the fourth preset vertical filtering condition, the matrix to be vertically filtered is determined as a vertical filtering matrix; The obtained vertical filter matrix is determined as the vertical filter transformation unit information.
5. The method according to claim 4, wherein, The process of performing horizontal boundary filtering on the vertical filter unit information, which includes the vertical filter unit information, to obtain the information of each filter unit includes: For each vertical filter change unit information included in the vertical filter unit information, the following steps are performed: The vertical filtering change unit information is determined as the horizontal filtering matrix to be filtered. Based on the preset filtering range information and the filtering matrix to be filtered, a filtering level category is generated; In response to determining that the level category to be filtered meets the first preset level filtering condition, each column vector in the level filtering matrix is filtered to obtain the level filtering matrix; In response to determining that the level category to be filtered meets the second preset level filtering condition, the column vectors in the matrix to be filtered that meet the preset column vector condition are filtered to obtain the level filtering matrix; In response to determining that the level category to be filtered meets the third preset level filtering condition, the row vectors in the matrix to be filtered that do not meet the preset row vector condition are filtered to obtain the level filtering matrix; In response to determining that the level category to be filtered meets the fourth preset level filtering condition, the matrix to be filtered horizontally is determined as a level filtering matrix; The obtained horizontal filtering matrix is used as the filtering unit information.
6. The method according to claim 1, wherein, The step of generating filtered video frame images based on the information of each filter unit and the information group of each filter unit includes: For each piece of information about the filterable unit, perform the following steps: Each filter unit information included in the filter unit information group corresponding to the filter unit information to be filtered is determined as each target filter unit information; The determined information of each target filtering unit is input into the video frame image to update the video frame image; The updated video frame image is identified as the filtered video frame image.
7. An image deblocking filter for video compression, comprising: The receiving unit is configured to receive video frame images after video compression processing, wherein the video frame images include information of each coding unit, and each coding unit information includes information of each transform unit. The first generation unit is configured to generate information of each filterable unit based on the video frame image, wherein each filterable unit information includes information of each filterable transformation unit. The filtering processing unit is configured to perform filtering processing on the information of each unit to be filtered to obtain a group of information of each filtering unit. The second generation unit is configured to generate filtered video frame images based on the information of each filter unit to be filtered and the information group of each filter unit. The storage unit is configured to store the filtered video frame image into the video memory; The filtering unit is further configured to: For each piece of information to be filtered in the information to be filtered, a topology region matrix group is generated based on the information to be filtered and the pre-stored topology type information group. For each of the generated topology region matrix groups, perform the following steps: For each topological region matrix in the aforementioned topological region matrix group, perform the following steps: Based on pre-stored boundary filtering order information, a boundary condition group is generated, wherein the boundary condition group includes a first boundary condition, a second boundary condition, a third boundary condition, and a fourth boundary condition; Based on the topology region matrix and the boundary condition set, a topology filter type is generated; The first topological region matrix is obtained by filtering each row vector in the topological region matrix that satisfies the first boundary condition. In response to determining that the topology filtering type does not meet the preset first boundary preservation condition, the topology region matrix is determined as the first topology region matrix, and the first topology region matrix is updated to obtain the first topology region matrix; The row vectors in the first topological region matrix that satisfy the second boundary condition are filtered to obtain the second topological region matrix. In response to determining that the topology filtering type does not meet the preset second boundary preservation condition, the first topology region matrix is determined as the second topology region matrix, and the second topology region matrix is updated to obtain the second topology region matrix; The column vectors that satisfy the third boundary condition in the obtained second topological region matrix are filtered to obtain the third topological region matrix. In response to determining that the topology filtering type does not meet the preset third boundary preservation condition, the second topology region matrix is determined as the third topology region matrix, and the third topology region matrix is updated to obtain the third topology region matrix; The column vectors in the obtained third topological region matrix that satisfy the fourth boundary condition are filtered to obtain the fourth topological region matrix. In response to determining that the topology filtering type does not meet the preset fourth boundary preservation condition, the third topology region matrix is determined as the fourth topology region matrix, and the fourth topology region matrix is updated to obtain the fourth topology region matrix. The obtained fourth topological region matrix is used as the filtering unit information; The obtained information from each filter unit is defined as a filter unit information group.
8. An electronic device, comprising: One or more processors; A storage device on which one or more programs are stored; When the one or more programs are executed by the one or more processors, the one or more processors implement the method as described in any one of claims 1 to 6.
9. A computer-readable medium having a computer program stored thereon, wherein, When the program is executed by the processor, it implements the method as described in any one of claims 1 to 6.
Citation Information
Patent Citations
Image processing device, image processing method, and program
CN104823446A
Device Of Executing Deblocking Filter To Decode Video
CN106162178A