CN114762326B - 用于自适应分辨率视频编码的下一代环路滤波器实现 - Google Patents
用于自适应分辨率视频编码的下一代环路滤波器实现 Download PDFInfo
- Publication number
- CN114762326B CN114762326B CN202080083267.5A CN202080083267A CN114762326B CN 114762326 B CN114762326 B CN 114762326B CN 202080083267 A CN202080083267 A CN 202080083267A CN 114762326 B CN114762326 B CN 114762326B
- Authority
- CN
- China
- Prior art keywords
- frame
- boundary
- block
- boundary strength
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000003044 adaptive effect Effects 0.000 title abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 89
- 238000001914 filtration Methods 0.000 claims description 48
- 230000008569 process Effects 0.000 description 37
- 239000013598 vector Substances 0.000 description 28
- 241000023320 Luma <angiosperm> Species 0.000 description 21
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 21
- 238000005070 sampling Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 101150039623 Clip1 gene Proteins 0.000 description 4
- 238000003491 array Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 3
- 241000726448 Satellite tobacco mosaic virus Species 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001902 propagating effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 101100277553 Caenorhabditis elegans dep-1 gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000010432 diamond Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001668 ameliorated effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供的***和方法用于实现由多个环路滤波器支持的帧间编码的分辨率自适应视频编码、恢复图像在下采样和随后上采样时发生的高频损失以及在分辨率自适应视频编码过程提高图像质量。本文描述的方法和***提供了一种去块滤波器,该滤波器在确定滤波器强度时考虑了经运动预测的帧之间的分辨率差异,并对下一代视频编解码器规范VVC进行了进一步修改。在与块边界相邻的块的运动预测中参考的第一参考帧具有与块边界相邻块的运动预测中参考的第二参考帧的分辨率不,在当前帧的运动预测中参考的第二参考帧的分辨率,或当前帧的分辨率同的分辨率的情况下,去块滤波器可以将强滤波器或弱滤波器应用到块边界。
Description
背景技术
在诸如H.264/AVC(高级视频编码)和H.265/HEVC(高效视频编码)标准的传统视频编码格式中,序列中的视频帧的大小和分辨率以序列级别记录在头部中。因此,为了改变帧分辨率,必须从帧内编码帧开始生成新的视频序列,这与帧间编码帧相比,传输带宽成本要大得多。因此,虽然希望在网络带宽变低、减少或节流时通过网络自适应地传输下采样、低分辨率的视频,但在使用传统的视频编码格式时很难实现带宽节省,这是由于自适应下采样的带宽成本抵消了带宽增益。
已经对在传输帧间编码帧时支持分辨率改变进行了研究。然而,这种发展不仅对编码循环的编码和解码部分提出了新的要求,而且对之后的进一步相互关联的处理也提出了新的要求。例如,一个或多个环路滤波器通常在帧已由环路编码器重建之后和/或在其已由环路解码器解码之后应用于帧。
根据H.264/AVC和H.265/HEVC标准,将去块滤波器应用于由环路编码器输出的重建帧。这些标准建立的基于块的编码算法往往会产生称为“块”的伪影,这可以通过去块滤波器来改善。此外,根据H.265/HEVC标准,样本自适应补偿(SAO)滤波器可以应用于去块滤波器输出的重建帧。在下一代视频编解码器规范VVC的开发中,第三种环路滤波器-自适应环路滤波器(ALF)应用于SAO滤波器输出的重建帧。
这些滤波器的当前实现不考虑分辨率变化,因此需要新技术以在重建帧具有与缓冲区中的其他帧不同的分辨率时使这些滤波器中的每一个正确运行。还希望根据对不同场景中不同严重程度的块状伪影的实际期望来实施这些技术。
附图说明
下面参照附图进行详细描述。在图中,参考编号的最左侧数字标识参考编号首次出现的图。在不同的图中使用相同的附图标记表示相似或相同的项目或特征。
图1A和1B示出了根据本公开的示例实施例的视频编码过程和视频解码过程的示例框图。
图2A到2D示出了根据本公开的示例实施例的包括上采样器和多个环路滤波器的不同布置的编码环路流程。
图3A和3B示出了根据HEVC和VVC规范以及本公开的示例实施例由去块滤波器执行的去块方法。
图4A和4B示出了根据本公开的示例实施例的去块滤波器逻辑的流程图。
图5图示了通过参考计算bS值的去块滤波器。
图6A和6B示出了根据本公开的示例实施例的确定去块滤波器对于8×8像素边界中的第一四个水平线和第二四个水平线是否有效。
图7图示了根据本公开的示例实施例的样本自适应补偿(SAO)滤波方法的示例流程图。
图8A图示了由包括当前像素p和在0度角的两个相邻像素的像素组成的边界图案。
图8B示出了由包括当前像素p和在90度角的两个相邻像素的像素组成的边界图案。
图8C示出了由包括当前像素p和在135度角的两个相邻像素的像素组成的边界图案。
图8D示出了由包括当前像素p和在45度角的两个相邻像素的像素组成的边界图案。
图9A示出了根据本公开的示例实施例的自适应环路滤波器(ALF)方法的示例流程图。
图9B示出了ALF滤波器的形状。
图9C到9F示出了对子块进行二次采样以用于计算亮度编码树块(CTB)的子块的垂直、水平和两个对角线梯度值。
图10示出了用于实现上述用于在去块滤波器中实现分辨率自适应视频编码的过程和方法的示例***。
图11示出了用于实现上述用于在SAO滤波器中实现分辨率自适应视频编码的过程和方法的示例***。
图12示出了用于实现上述用于在ALF中实现分辨率自适应视频解码的过程和方法的示例***。
具体实施方式
本文讨论的***和方法旨在将帧间自适应分辨率变化与视频编码循环集成,更具体地,涉及改进帧间自适应分辨率变化并处理由帧间自适应分辨率变化输出的重建帧的环路滤波器方法。
根据被实现为与AVC标准兼容的本公开的示例实施例,可以将帧划分为宏块(MB),每个宏块具有16×16像素的尺寸,宏块可以进一步划分为分区。根据被实现为与HEVC标准兼容的本公开的示例实施例,可以将帧划分为编码树单元(CTU),其亮度和色度分量可以进一步划分为编码树块(CTB),所述CTB可以被进一步划分为编码单元(CU)。根据作为其他标准实现的本公开的示例实施例,可以将帧划分为N×N个像素的单元,然后可以将其进一步划分为子单元。出于本公开的目的,帧的这些最大划分单元中的每一个通常可以被称为“块”。
根据本公开的示例实施例,块可以被划分为具有4×4像素的倍数的大小的分区。例如,块的分区可以具有8×4像素、4×8像素、8×8像素、16×8像素或8×16像素的大小。
根据本公开的示例实施例,运动预测编码格式可以是指数据格式,其中帧通过包含对一个或多个其它帧的运动信息和预测单元(PU)的一个或多个的参考,由帧的运动矢量信息和预测信息来进行编码。运动信息可以指描述帧或其单元或子单元的块结构的运动的数据,例如运动矢量和对当前帧或另一帧的块的参考。PU可以指帧的多个块结构(例如MB或CTU)中与块结构对应的一个单元或多个子单元,其中块基于帧数据被划分并且根据建立的视频编解码器被编码。对应于PU的运动信息可以描述由任何运动矢量编码工具编码的运动预测,包括但不限于本文描述的那些。
同样,可以通过包含一个或多个变换单元(TU)来用变换信息对帧进行编码。变换信息可以指表示可以应用于子块的若干空间变换之一的系数,例如对角翻转、垂直翻转或旋转。
诸如PU和TU之类的CU的子块可以以如上所述的子块大小的任何组合来布置。CU可以细分为残差四叉树(RQT),即TU的分层结构。RQT为每个级别的子块上的运动预测和残差编码提供了一顺序,并递归地向下RQT的每个级别。
根据运动预测编码的编码器可以获得位流的当前帧并且导出重建帧(“重建帧”)。重建帧的块可以被帧内编码或帧间编码。
CTU可以包括作为组件的亮度CTB和色度CTB。CTU的亮度CTB可以划分为亮度子块。CTU的色度CTB可以划分为色度子块,其中每个色度子块可以具有四个相邻的亮度子块。例如,相邻亮度子块可以是色度子块下方、左侧、右侧或上方的亮度子块。
亮度和色度子块可以根据如上所述的PU和TU被分割——即,分割成具有4×4像素倍数的尺寸的子块。
图1A和1B示出了根据本公开的示例实施例的视频编码过程100和视频解码过程118的示例框图。
在视频编码过程100中,来自视频源102的图像可以被编码以生成重建帧,并且在诸如参考帧缓冲区104或传输缓冲区116的目的地处输出重建帧。图像可以被输入到编码环路中,其可以包括将图像输入到第一环内上采样器或下采样器106、生成上采样或下采样的图像、将上采样或下采样的图像输入视频编码器108,基于参考帧缓冲区104的先前重建帧生成重建帧,将重建帧输入到一个或多个环内滤波器110,并从环路输出重建帧,这可以包括或不包括:将重建帧输入第二上采样器或下采样器114,生成上采样或下采样的重建帧,将上采样或下采样的重建帧输出到参考帧缓冲区104或传输缓冲区116中以被传输到位流。
在视频解码过程118中,从诸如位流120的源获得编码帧。根据本公开的示例实施例,给定的当前帧在位流120中具有位置N,在位流120中具有位置N-1的先前帧可以具有大于或小于当前帧的分辨率的分辨率,并且位流120中具有位置N+1的下一帧的分辨率可以大于或小于当前帧的分辨率。当前帧可以被输入到编码环路中,其可以包括以下步骤:将当前帧输入到视频解码器122中,将当前帧输入到一个或多个环内滤波器124中,将当前帧输入到第三环路上采样器或下采样器128,生成上采样或下采样的重建帧,并将上采样或下采样的重建帧输出到参考帧缓冲区104中。或者,可以从环路中输出当前帧,其可以包括将上采样或下采样的重建帧输出到显示缓冲区(未示出)中。
根据本公开的示例实施例,视频编码器108和视频解码器122可以各自实现运动预测编码格式,包括但不限于本文描述的那些编码格式。基于参考帧缓冲区104的先前重建帧生成重建帧可以包括如本文所述的帧间编码运动预测,其中先前重建帧可以是由环内上采样器或下采样器114/128输出的上采样或下采样的重建帧,并且先前的重建帧用作如本文所述的帧间编码运动预测中的参考图像。
根据本公开的示例实施例,第一上采样器或下采样器106、第二上采样器或下采样器114和第三上采样器或下采样器128可以各自实现上采样或下采样算法,所述上采样或下采样算法适合于分别至少对以运动预测编码格式编码的帧的编码像素信息进行上采样或下采样。第一上采样器或下采样器106、第二上采样器或下采样器114和第三上采样器或下采样器128可以各自实现进一步适合于分别放大和缩小运动信息(例如运动矢量)的上采样或下采样算法。
因此,根据当前帧相对于前一帧或下一帧的分辨率,对在生成当前帧的重建帧(例如先前重建帧)时用作参考图像的帧进行上采样或下采样。例如,在当前帧的分辨率大于前一帧和下一帧中任一或两者的分辨率的情况下,可以对用作参考图像的帧进行上采样。在当前帧的分辨率小于前一帧和下一帧之一或两者的分辨率的情况下,可以对作为参考图像的帧进行下采样。
根据如上所述的视频编码过程100,例如可以通过下采样器106在编码循环的编码过程中对帧进行下采样,然后可以由上采样器114或上采样器128对帧进行上采样并输出到参考帧缓冲区104。被下采样的帧会导致帧内容的质量损失,特别是高频损失——例如,帧中的锐边或精细图案的损失。这种损失不会在随后的帧上采样中恢复,导致帧具有其自己的原始帧分辨率但缺乏高频细节。如上所述,使用具有高频损失的帧作为参考帧缓冲区中的参考帧会导致参考该参考帧的后续帧的运动预测的结果不佳。
根据诸如H.264/AVC、H.265/HEVC、VVC等的视频编码标准,可以将几种类型的环路滤波器常规地应用于从编码器或解码器输出的重建帧。鉴于在编码循环中实施了上采样器或下采样器,可以在进一步的粒度级别上在上采样器之前或之后应用环路滤波器。
图2A到2D示出了编码循环流程,包括上采样器和多个环路滤波器(例如去块滤波器、SAO滤波器和ALF)的不同布置。
根据本公开的示例实施例,图2A到2D应该被理解为示出接收在如图1A所示的视频编码过程期间已经被下采样的帧。以及被上采样并输出到一参考帧缓冲区中。但是,可以在如图1A所示的视频编码过程100期间从视频编码器108接收帧,或者可以在如图1B所示的视频解码过程118期间从视频解码器122接收帧。
如图2A所示,在如图1A所示的视频编码过程100的情况下,上采样器211可以接收由视频编码器108输出的下采样帧。或者在图1B所示的视频解码过程118的情况下接收视频解码器122输出的下采样帧。上采样器211可以对下采样的帧进行上采样并将该帧输出到滤波器,包括去块滤波器212、SAO滤波器213和ALF 214。这使得编码器能够分析梯度、活动等帧信息,并利用环路滤波工具及其参数和系数来评估图像质量;此外,编码器可以将去块滤波器、SAO滤波器和ALF的优化参数和/或系数传输到解码器,以提高重建信号的准确性、客观质量和主观质量。
根据视频编码标准,去块滤波器212可以在帧的CU之间以编码顺序(例如光栅扫描顺序,其中第一个编码的CU是该帧的最上和最左边的CU)在每个边界每个CU的基础上对帧进行滤波。在一个帧内,去块滤波器212可以对该帧的亮度CTB和色度CTB的CU进行滤波。
图3A和3B示出了由去块滤波器212执行的去块方法300。为了说明的目的且不限于此,可以根据HEVC规范或根据VVC规范来执行去块方法300。HEVC规范实现与其VVC规范实现之间的某些差异将参考附图3A和图3B在本文中被指出以便于理解,但是这不应被理解为对所有这些差异的全面说明。
在步骤302,去块滤波器212确定要滤波的块和子块边界。在块内,根据HEVC规范,去块滤波器212可以对CU的子块的N×N像素边界进行滤波。例如,去块滤波器212可以基于运动矢量和相邻预测子块的参考帧之间的差异来对PU边界进行滤波。也就是说,去块滤波器212可以在所述边界不同侧上的块之间的至少一个运动矢量分量的差大于或等于一个采样像素的阈值的情况下对PU边界进行滤波。此外,在从所述边界任一侧的变换子块的像素采样的系数不为零的情况下,去块滤波器212可以对TU边界进行滤波。结果,去块滤波器212还对CU本身的与外部PU和TU边界重合的那些边界进行滤波。然而,根据HEVC规范,由去块滤波器滤波的子块边界在尺寸上可能至少为8×8像素,这样4×4子块的边界,例如表示4×4变换的TU子块,将不会被去块滤波器212滤波,从而降低滤波器复杂度。具体地,当PU具有2N×N像素的尺寸并且N大于4像素并且PU处于RQT深度1(即,在层级中具有最大子块尺寸的RQT的第一层级)时,去块滤波器212除了外部PU边界之外,还可以对PU之间的PU边界进行滤波,并且可以在RQT层级中以8×8像素网格对TU边界进行滤波。
或者,根据VVC规范,由去块滤波器212滤波的子块边界也可以是4×4像素的大小,其中要滤波的边界是亮度CTB的边界,包括CU边界和变换子块边界。变换子块边界可以包括例如由子块变换(“SBT”)和帧内子分区(“ISP”)模式以及由于大CU的隐式分割而引起的变换所包括的变换单元边界。由去块滤波器212滤波的子块边界在尺寸上仍然可以是8×8像素,其中要滤波的边界是预测子块边界。预测子块边界可以包括例如由时空运动矢量预测(“STMV”)、子块时间运动矢量预测(“SbTMVP”)和仿射运动预测模式引入的预测单元边界。
如在与根据HEVC规范的TU边界有关的实现中,去块滤波器212可以在从边界任一侧上的变换子块的像素采样的系数不为零的情况下对SBT和ISP边界进行滤波。此外,为了便于并行计算线程对去块滤波器212的并发计算,在滤波边界也是STMV、SbTMVP或仿射运动预测子块的一部分的情况下,去块滤波器212在滤波边界的其中一侧对最多五个样本进行滤波。
如在与根据HEVC规范的PU边界有关的实现中,去块滤波器212可以基于相邻预测子块的运动矢量和参考帧之间的差异来对STMV、SbTMVP和仿射运动预测边界进行滤波。即,去块滤波器212可以在边界不同侧上的块之间的至少一个运动矢量分量的差大于或等于半采样亮度像素的阈值的情况下对PU边界进行滤波。因此,源自在运动矢量中仅具有小的差异的帧间预测块之间的边界产生的分块伪影得以过滤。此外,为了便于并行计算线程对去块滤波器212的并发计算,在滤波边界和变换块边界之间采样四个像素的情况下,滤波边界在每侧最多由一个采样像素滤波。在滤波边界和变换块边界之间采样8个像素的情况下,滤波边界在每侧最多由2个采样像素滤波。并且在滤波边界和变换块边界之间采样任何其他数量的像素的情况下,滤波边界在每侧最多被三个采样像素滤波。
随后至少参考替代步骤312A和312B进一步描述HEVC和VCC实现之间的差异。
在N×N像素网格内,去块滤波器212可以首先对CU的垂直边界进行滤波以执行水平滤波,然后对CU的水平边界进行滤波以执行垂直滤波。
对帧的当前CU的边界进行滤波的去块滤波器212可以参考与两侧的边界相邻的块P和块Q。当去块滤波器212执行水平滤波时,块P可以是边界左侧的块,块Q可以是边界右侧的块。在去块滤波器212执行垂直滤波时,块P可以是边界上方的块并且块Q可以是边界下方的块。
去块滤波器212可以通过确定帧间编码块P或块Q具有一参考帧来将帧识别为已被下采样,该参考帧具有与当前帧的分辨率不同的分辨率。
在步骤304,去块滤波器212确定要滤波的边界的边界强度(bS)。bS值可以确定由去块滤波器应用到边界的去块滤波的强度。bS值可以是0、1或2,其中0表示不应用滤波;1表示要应用弱滤波;和2表示要应用强过滤。可以为具有4×4像素尺寸的边界确定bS值,但将其映射到具有8×8像素尺寸的边界。对于8×8像素网格中边界上的8像素片段,整个片段的bS值可以设置为构成该8像素片段的两个4像素片段的两个bS值中的较大者。
通常,去块滤波器212可以仅在块P或块Q是帧内编码块的情况下确定bS值为2。
根据本公开的示例实施例,去块滤波器212还可以在块P或块Q是帧间编码块而不是帧内编码块并且具有与当前帧的分辨率不同分辨率的情况下确定bS值为2。根据本公开的另一示例实施例,去块滤波器212可以在块P或块Q是帧间编码块而不是帧内编码块并且具有不同于当前帧的分辨率的情况下,确定bS值为1。图4A和4B示出了根据本公开的示例实施例的去块滤波器逻辑的流程图。
下面参考表4、5、6、7、8、9和10,对根据本公开的示例实施例的去块滤波器逻辑的进一步进行示例。为了说明的目的,并且不限于其上下文,这些示例实施例是基于根据VVC规范的去块滤波器逻辑。
基于VVC规范,去块滤波器212至少接收以下输入:参考当前帧的左上样本,相对当前帧的左上角样本定位当前编码块的左上样本像素的坐标(xCb,yCb);指定当前编码块宽度的变量nCbW;指定当前编码块的高度的变量nCbH;指定垂直边界(例如,由值EDGE_VER表示)或水平边界(例如,由值EDGE_HOR表示)是否被滤波的变量edgeType;指定当前编码块的颜色分量的变量cIdx;以及具有尺寸(nCbW)×(nCbH)的二维数组edgeFlags。
然后,去块滤波器212可以确定坐标范围在i=0...xN上的xDi和坐标范围在j=yN上yDj的bS值bS[xDi][yDj]。其中xDi、yDj、xN和yN确定如下:
去块滤波器212设置变量gridSize:
gridSize=cIdx==0?4∶8
如果edgeType的值为EDGE_VER:
xDi=(i*gridSize)
yDj=cIdx==0?(j<<2):(j<<1)
xN设置为等于Max(0,(nCbW/gridSize)-1)
yN=cIdx==0?(nCbH/4)-1:(nCbH/2)-1
否则,edgeType的值为EDGE_HOR:
xDi=cIdx==0?(i<<2):(i<<1)
yDj=(j*gridSize)
xN=cIdx==0?(nCbW/4)-1:(nCbW/2)-1
yN=Max(0,(nCbH/gridSize)-1)
因此,对于在坐标范围i=0...xN的xDi和..xN和坐标范围为j=yN的yDj,bS值bS[xDi][yDj]设置如下:
对于其中edgeFlags[xDi][yDj]为0的xDi和yDj,bS[xDi][yDj]为0。
对于其中edgeFlags[xDi][yDj]不为0的xDi和yDj,导出第一样本值p0和q0。如果edgeType的值为EDGE_VER,则p0设置为recPicture[xCb+xDi-1][yCb+yDj],并且q0设置为recPicture[xCb+xDi][yCb+yDj]。否则,edgeType的值为EDGE_HOR,p0设置为recPicture[xCb+xDi][yCb+yDj-1],q0设置为recPicture[xCb+xDi][yCb+yDj]。接下来,bS值bS[xDi][yDj]设置如下:
如果cIdx值为0,并且样本p0和q0都在具有值为1的intra_bdpcm_luma_flag的各自的编码块中,则bS[xDi][yDj]设置为0。
否则,如果cIdx具有大于0的值并且采样像素p0和q0都在具有值为1的intra_bdpcm_chroma_flag的各自的编码块中,则将bS[xDi][yDj]设置为0。
否则,如果采样像素p0或q0在通过帧内预测模式编码的编码单元的编码块中,将bS[xDi][yDj]设置为2。
否则,如果块边界也是变换块边界并且采样像素p0和q0在具有值为1的ciip_flag的编码块中,则bS[xDi][yDj]被设置为2。
否则,如果块边界也是变换块边界并且采样像素p0和q0在包含一个或多个非零变换系数级别的变换块中,则bS[xDi][yDj]是设置为1。
否则,在包含采样像素p0的第一编码子块的预测模式不同于包含采样像素q0的第二编码子块的预测模式的情况下(即,这些编码子块中的一个以IBC预测模式编码,编码子块的另一个以帧间预测模式编码),bS[xDi][yDj]设置为1。
否则,如果cIdx的值为0,edgeFlags[xDi][yDj]的值为2,并且以下条件中的一个或多个为真,则将bS[xDi][yDj]设置为1:
包含采样像素p0的第一编码子块和包含采样像素q0的第二编码子块均通过IBC预测模式编码,并且用于两个编码子块的运动预测的块矢量的水平或垂直分量之间的绝对差值大于或等于8,以1/16亮度采样像素为单位;和/或:
在包含采样像素p0的第一编码子块的运动预测中,使用与包含采样像素q0的第二编码子块的运动预测不同的参考图像或不同数量的运动矢量;和/或:
(在此,可以仅基于参考了哪些图像来确定用于两个编码子块的参考图像是否相同或不同,而不考虑是否使用参考图像列表0中的索引或参考图像列表1的索引来形成预测,并且也不考虑参考图像列表内的索引位置是否不同;和
这里,在具有左上样本覆盖(xSb,ySb)的编码子块的运动预测中使用的运动矢量的数量等于PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb]。)
第一运动矢量用于包含样本p0的第一编码子块的运动预测,第二运动矢量用于包含样本q0的第二编码子块的运动预测,第一和第二运动矢量的水平分量或垂直分量绝对差值大于或等于8,以1/16亮度采样像素为单位;和/或:
第一和第二运动矢量以及第一和第二参考图像用于包含样本p0的第一编码子块的运动预测,用于第一和第二参考图像的第三和第四运动矢量用于包含样本q0的第二编码子块的运动预测,并且用于任一参考图像的两个编码子块的运动预测中使用的两个相应运动矢量的水平或垂直分量之间的绝对差值大于或等于8,以1/16亮度采样像素为单位;和/或:
用于第一参考图像的第一和第二运动矢量用于包含采样像素p0的第一编码子块的运动预测,用于第二参考图像的第三和第四运动矢量用于运动预测包含采样像素q0的第二个编码子块,并且以下两个条件都为真:
两个编码子块的运动预测中使用的列表0运动矢量的水平或垂直分量之间的绝对差值在1/16亮度采样像素中大于或等于8,或者两个编码子块的运动预测所使用的列表1运动矢量的的水平或垂直分量绝对差值大于或等于8,以1/16亮度采样像素为单位;和:
在包含样本p0的第一编码子块的运动预测中使用的列表0运动矢量与在包含样本q0第二编码子块的运动预测中使用的列表1运动矢量的水平或垂直分量之间的绝对差大于或等于8,以1/16亮度采样像素为单位,或在包含样本p0第一编码子块的运动预测中使用的列表1运动矢量和包含样本q0第二编码子块的运动预测中使用的列表0运动矢量的水平或垂直分量之间的绝对差大于或等于8,以1/16亮度采样像素为单位。
如果上述条件均不适用,则将bS[xDi][yDj]设置为0。
此外,如图5所示,在跨CTU边界的每两对P和Q块内,去块滤波器212可以通过参考两对块内的块的左侧和上方的块来确定块的bS值,从而减少计算的存储器需求。
在步骤304中确定的bS值随后可以在步骤312B中由去块滤波器212参考,以确定去块滤波器212是否应该应用强滤波。
根据本发明的示例实施例,对上述设置bS[xDi][yDj]的值的过程进行进一步修改:
根据本公开的示例实施例,如果edgeFlags[xDi][yDj]具有值2,并且在包含采样的p0或q0像素的编码子块的运动预测中使用的参考图像之一的分辨率与当前图像的分辨率不同,将bS[xDi][yDj]设置为2,随后参考步骤312B描述的表3被进一步修改,如表4所示。
根据本公开的另一示例实施例,如果以下条件中的一个或多个为真,则将bS[xDi][yDj]设置为1的还包括:在用于包含样本p0或q0的编码子块的运动预测的参考图像之一的分辨率与当前图像的分辨率不同,随后参考步骤312B描述的表3被进一步修改,如表5所示。
根据本公开的另一示例实施例,如果edgeFlags[xDi][yDj]具有值2,并且在用于包含采样像素p0的编码子块的运动预测中的参考图像之一的分辨率与用于包含采样像素q0的编码子块的运动预测中的参考图像之一的分辨率不同,bS[xDi][yDj]设置为2,随后参考步骤312B描述的表3被进一步修改,如表6所示。
根据本公开的另一示例实施例,在edgeFlags[xDi][yDj]具有值2的情况下,并且在以下条件中的至少一个为真的情况下,bS[xDi][yDj]被设置为2,并且随后参考步骤312B描述的表3被进一步修改为如表7所示:在包含采样像素p0或q0的编码子块的运动预测中使用的参考图像之一的分辨率为低于当前图像的分辨率,或者;在包含样本p0的编码子块的运动预测中使用的参考图像之一的分辨率与在包含采样像素q0的编码子块的运动预测中使用的参考图像之一的分辨率不同。
根据本公开的另一示例实施例,如果以下条件中的一个或多个为真,则将bS[xDi][yDj]设置为1的还包括:在包含样本p0或q0的编码子块的运动预测中使用的参考图像之一的分辨率低于当前图像的分辨率,随后参考步骤312B描述的表3被进一步修改,如表8所示。
根据本公开的另一示例实施例,在edgeFlags[xDi][yDj]具有值2的情况下,并且在以下条件中的至少一个为真的情况下,bS[xDi][yDj]被设置为2,并且随后参考步骤312B描述的表3被进一步修改为如表9所示:在包含采样像素p0或q0的编码子块的运动预测中使用的参考图像之一的分辨率高于当前图像的分辨率,或者;在包含样本p0的编码子块的运动预测中使用的参考图像之一的分辨率与包含采样像素q0的编码子块的运动预测中使用的参考图像之一的分辨率不同。
根据本公开的另一示例实施例,如果以下条件中的一个或多个为真,则将bS[xDi][yDj]设置为1的还包括:在包含样本p0或q0的编码子块的运动预测中使用的参考图像之一的分辨率高于当前图像的分辨率,随后参考步骤312B描述的表3被进一步修改,如表10所示。
关于如上所述的示例实施例,通常,其中bS[xDi][yDj]被设置为2的那些示例实施例中描述了由于分辨率差异导致的块伪影预期很严重,因此去块滤波器212应该应用强滤波器的条件。其中bS[xDi][yDj]被设置为1的那些示例实施例描述由于分辨率差异而预期分块伪影是适中的,并且因此去块滤波器212不应应用强滤波器的条件。
在步骤306A,根据HEVC规范执行,去块滤波器212确定阈值β和tC。阈值β和tC可以在随后的步骤308、310和312中用于控制去块滤波器212的强度。阈值β和tC可以根据HEVC规范,基于亮度量化参数Q(也称为qPL)的值,通过从表(例如下面的表1)中查找对应值β'和tC'来确定。
Q | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
β’ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6 | 7 | 8 |
tC’ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
Q | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |
β’ | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 29 | 22 | 24 | 26 | 28 | 30 | 32 | 34 | 36 |
tC’ | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 4 | 4 | 4 |
Q | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | |||
β’ | 38 | 40 | 42 | 44 | 46 | 48 | 50 | 52 | 54 | 56 | 58 | 60 | 62 | 64 | - | - | |||
tC’ | 5 | 5 | 6 | 6 | 7 | 8 | 9 | 10 | 11 | 13 | 14 | 16 | 18 | 20 | 22 | 24 |
tC的值可以通过以下等式从tC'的值确定:
tC=BitDepth<10?(tC′+2)>>(10-BitDepth)∶tC′*(1<<(BitDepth-10))
根据VVC规范,可以通过以下方式修改表1:将Q值扩展到最大值63,通过如下扩展β'值,以及通过将tC'值替换为以下值(按照顺序对应于Q值0到63):
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,4,4,5,5,5,5,7,7,8,9,10,10,11,13,14,15,17,19,21,24,25,29,33,36,41,45,51,57,64,71,80,89,100,112,125,141,157,177,198,222,250,280,314,352,395]
Q | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
β′ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6 |
tC′ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Q | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
β′ | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 22 | 24 | 26 | 28 |
tC′ | 0 | 3 | 4 | 4 | 4 | 4 | 5 | 5 | 5 | 5 | 7 | 7 | 8 | 9 | 10 | 10 | 11 |
Q | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
β′ | 30 | 32 | 34 | 36 | 38 | 40 | 42 | 44 | 46 | 48 | 50 | 52 | 54 | 56 | 58 | 60 | 62 |
tC′ | 13 | 14 | 15 | 17 | 19 | 21 | 24 | 25 | 29 | 33 | 36 | 41 | 45 | 51 | 57 | 64 | 71 |
Q | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | ||
β′ | 64 | 66 | 68 | 70 | 72 | 74 | 76 | 78 | 80 | 82 | 84 | 86 | 88 | - | - | ||
tC′ | 80 | 89 | 100 | 112 | 125 | 141 | 157 | 177 | 198 | 222 | 250 | 280 | 314 | 352 | 395 |
Q可以基于来自当前CU的重建亮度子块的像素样本来确定。
Q=Clip3(0,65,qP+2*(bS-1)+(slice_tc_offset_div2<<1))
β的值可以从β'推导出来,如下所示:
β=β′*(1<<(BitDepthY-8))
tC的值可以从tC'推导出来,如下所示:
tC=BitDepth<10?(tC′+2)>>(10-BitDepth)∶tC′*(1<<(BitDepthY-10))
在步骤306B,根据VVC规范执行,不管去块滤波器212确定阈值β和tC如何,去块滤波器212将补偿应用于亮度量化参数qPL。根据VVC规范,该补偿在控制去块滤波器212的强度方面可以优先于β和tC的影响。
补偿qpOffset可以从来自当前CU的亮度子块的像素样本的亮度级别(“LL”)导出,如下所示:
LL=((p0,0+p0,3+q0,0+q0,3)>>2)/(1<<bitDepth)
随后描述的图6A和6B示出了从中采样亮度级别的那些特定p和q像素的坐标。
从上面导出的LL的值,可以应用传递函数来导出补偿qpOffset。qpOffset的基值可以从帧的切片头部中的标志sps_ladf_lowest_interval_qp_offset导出。切片头部还包含指定多个亮度强度级别间隔的下限的标志。对于这些间隔中的每一个,如果LL超过为该间隔设置的下限,则qpOffset的基值将补偿一个补偿值,该补偿值在-63到63范围内,包括,为切片标头中记录的补偿数组中的间隔预设。
根据VVC规范,qPL可以如下推导:
qPL=((QpQ+QpP+1)>>1)
其中,QpQ是包含像素q0,0的编码块的量化参数,QpP是包含像素p0,0的编码块的量化参数,如随后示出的图6A和6B。
根据本公开的示例实施例,qPL可以推导如下:
qPL=((QpQ+QpP+1)>>1)+qpOffset
在步骤308A,去块滤波器212确定去块滤波器212是否对跨越8×8边界的第一四条垂直像素线或水平像素线有效,以及去块滤波器是否对跨越8×8边界的第二四条垂直像素线或水平像素线有效。
在步骤308B,去块滤波器212确定去块滤波器212是否对跨越8×8或4×4边界的前四条垂直像素线或水平像素线有效,以及去块滤波器是否对跨越8×8或4×4边界的第二四条垂直线像素线或水平像素线有效。
图6A和6B示出了根据本公开的示例实施例的确定去块滤波器212对于跨越垂直8×8边界的前四个水平线和第二四个水平线是否有效,这些线从0到7编号;对于垂直线,可以类似地推导出去块滤波器212是否有效。对于每条线,对边界两侧的线的六个像素进行采样。如图6A和6B所示,去块滤波器212对第一四条线中的第一条线的像素p20、p10、p00、q00、q10和q20以及第四条线的像素p23、p13、p03、q03、q13和q23进行采样,来确定对于第一四条线,去块滤波器是否有效。
根据这些像素的强度值,对前四条线执行以下计算。
dp0=|p20-2*p10+p00|
dp3=|p23-2*p13+p03|
dq0=|q20-2*q10+q00|
dq3=|q23-2*q13+q03|
在dp0、dp3、dq0和dq3之和小于β的值的情况下,去块滤波器212将对前四条线有效,此外,以下变量也被设置为滤波器的输入。
变量dE设置为等于1。
如果dp0+dp3<(β+(β>>1))>>3,则变量dEp1设置为等于1。
如果dq0+dq3<(β+(β>>1))>>3,则变量dEq1设置为等于1。
在dp0、dp3、dq0和dq3之和不小于β值的情况下,去块滤波器212对于前四条线将不再有效。
去块滤波器212还对第二四条线的第一条线中的像素p24、p14、p04、q04、q14和q24以及第四条线中的像素p27、p17、p07、q07、q17和q27进行采样以确定对于第二四条水平线,去块滤波器是否有效。这以与第一四条线的上述处理类似的方式执行。
在根据HEVC规范执行的步骤310A,在去块滤波器212对8×8边界中的第一四条垂直线或水平线有效的情况下,去块滤波器212确定是对那些线应用强滤波还是弱滤波,以及在去块滤波器212对8×8边界中的第二四条垂直线或水平线有效的情况下,对那些线应用强滤波还是弱滤波。
在根据VVC规范执行的步骤310B,在去块滤波器212对8×8或4×4边界中的第一四个垂直线或水平线有效的情况下,去块滤波器212确定对那些线应用强滤波或弱滤波,以及在去块滤波器212对8x8或4×4边界中的第二四个垂直线或水平线有效的情况下,对那些线应用强滤波还是弱滤波。
如果满足以下两组条件,则去块滤波器212对第一四条线应用强滤波,否则应用弱滤波。
2*(dp0+dq0)<(β>>2),|p30-p00|+|q00-q30|<(β>>3)and|p00-q00|<(5*tC+1)>>1
2*(dp3+dq3)<(β>>2),|p33-p03|+|q03-q33|<(β>>3)and|p03-q03|<(5*tC+1)>>1
去块滤波器212以与第一四条线的上述处理类似的方式确定是对第二四条线应用强滤波还是弱滤波。
在根据HEVC规范执行的步骤312A,去块滤波器212将强滤波应用于垂直线或水平线,其中去块滤波器212确定应用强滤波。
对边界块P侧的三个像素p0、p1和p2应用强滤波器,总共四个像素作为输入,分别输出像素p0'、p1'和p2';以及边界块Q侧的三个像素q0、q1和q2,总共四个像素作为输入,分别输出像素q0'、q1'和q2'。输出结果导出如下。
p0′=(p2+2*p1+2*p0+2*q0+q1+4)>>3
q0′=(p1+2*p0+2*q0+2*q1+q2+4)>>3
p1′=(p2+p1+p0+q0+2)>>2
q1′=(p0+q0+q1+q2+2)>>2
q2′=(2*p3+3*p2+p1+p0+q0+4)>>3
q2′=(p0+q0+q1+3*q2+2*q3+4)>>3
在根据VVC规范执行的步骤312B,去块滤波器212将强滤波器应用到垂直线或水平线,其中去块滤波器212确定应用强滤波器。
在步骤312B中,除了参考步骤312A在上面描述的强滤波器之外,去块滤波器212可以将根据VVC规范,特别是对于亮度CTB,将滤波器应用到尺寸为4×4的子块边界,而不是尺寸为8×8的子块边界,如上文参考步骤302所述。对于这样的过滤器,不是将过滤器应用于到边界每一侧的各个块中的每一个的三个像素,而是将过滤器应用于相应的到边界的每一侧的各个块每一个的一个像素,其中在边界是垂直的情况下,到边界一侧的块的宽度为4个像素或更小,或者在边界是水平的情况下,到边界的一侧的块的高度为4像素或更小。这样的实现可以处理来自矩形变换形状的块状伪影,并且可以便于并行计算线程对去块滤波器212的并发计算。
此外,在步骤312B中,如果对边界的P侧或Q侧的采样像素属于一大块,并且如果还满足两个进一步的条件的情况下,去块滤波器212可以根据VVC规范应用更强的去块滤波器(例如,双线性滤波器),特别是对于亮度CTB。大块可以是水平边界的宽度大于或等于32像素的块,也可以是垂直边界的高度大于或等于32像素的块。
另外两个条件确定如下:
Condition2=(d<β)?TRUE:FALSE
Condition3=StrongFilterCondition=(dpq小于(β>>2),sp3+sq3小于(3*β>>5),and Abs(p0-q0)小于(5*tC+1)>>1)?TRUE:FALSE
然后输出推导如下,其中值pi是边界P侧或Q侧i=0到i=Sp–1的块边界样本,值qj是j=0到Sq–1的块边界样本同样位于边界的P侧或Q侧,并且pi'和qj'是这些相应输入的输出:
pi′=(fii*Middles,t+(64-fii)*Ps+32)>>6),修整至pi±tcPDi (3-1)
qj′=(gj*Middles,t+(64-gj)*Qs+32)>>6),修整至qj±tcPDj (3-2)
其中tcPDi和tcPDj是与位置相关的修整,并且gj、fi、Middles、t、Ps和Qs是基于下表2得出的。
另外,在步骤312B中,在色度CTB边界的P侧和Q侧的尺寸都大于或等于色度样本的8个像素的情况,并且还满足另外三个条件的情况下,根据VVC规范,去块滤波器212可以将的更强的去块滤波器,尤其是对于色度CTB,应用到在如上文参考步骤302描述的8×8尺寸的子块边界。
通过如下面参照表3所述的应用强滤波的确定满足第一条件,并且去块滤波器212在如上所述的步骤312B中确定在色度CTB边界的P侧和Q侧的上采样像素属于大块。
下面的表3描述了一个决策过程,其中去块滤波器212可以确定是否应用强滤波。“相邻块”是指滤波边界的P侧块和Q侧块。在最右边三列中的Y、U或V bS值中的任何一个被确定为2的情况下,可以满足第一个条件。其中最右边三列中的Yu、U或V bS值中的任何一个被确定为1,并且色度边界的P侧和Q侧的采样像素都被确定属于大块,也可以满足第一个条件。
下面的表4描述了根据本公开的另一个示例实施例的决策过程,如上所述。
/>
下面的表5描述了根据本公开的另一个示例实施例的决策过程,如上所述。
下面的表6描述了根据本公开的另一个示例实施例的决策过程,如上所述。
/>
下面的表7描述了根据本公开的另一示例实施例的决策过程,如上所述。
下面的表8描述了根据本公开的另一个示例实施例的决策过程,如上所述。
/>
下面的表9描述了根据本公开的另一个示例实施例的决策过程,如上所述。
下面的表10描述了根据本公开的另一示例实施例的决策过程,如上所述。
通过去块滤波器212在如上所述的步骤308中确定为跨边界有效,来满足第二条件。
通过去块滤波器212在如上所述的步骤310中确定在边界上应用强滤波,来满足第三条件。
在步骤314,去块滤波器212将弱滤波应用于垂直线或水平线,其中去块滤波器212确定应用弱滤波。
为了应用弱滤波,去块滤波器212确定Δ值。
Δ=(9*(q0-p0)-3*(q1-p1)+8)>>4
然后,当Δ的绝对值小于tC*10时,对边界两侧的像素p0和q0应用弱滤波,分别输出像素p0'和q0'。
Δ=Clip3(-tC,tC,Δ)
p0′=Clip1Y(p0+Δ)
q0′=Clip1Y(q0-Δ)
此外,根据先前计算的dEp1和dEq1的值,可以将弱滤波器应用于边界任一侧的像素p1和q1中的一个或两个,每个总共有三个像素作为输入,分别输出像素p1'和q1'中的任一个或两个。
如果dEp1等于1:
Δp=Clip3(-(tC>>1),tC>>1,(((p2+p0+1)>>1)-p1+Δ)>>1)
p1′=Clip1Y(p1+Δp)
如果dEq1等于1:
Δq=Clip3(-(tC>>1),tC>>1,(((q2+q0+1)>>1)-q1+Δ)>>1)
q1′=Clip1Y(q1+Δq)
根据实现VVC的本公开的示例实施例,上述方法300可以很大程度上以类似的方式执行,除了去块滤波器212的滤波强度可能进一步取决于重建帧的像素样本的平均亮度水平。tC'查找表可以进一步扩展;可以将更强的去块滤波器应用于亮度和色度CTB。为了理解本公开的示例性实施例,不需要描述这些过程的进一步细节,并且不应在此重复。
接下来,基于确定每个像素的SAO类型,SAO过滤器可以在每个像素的基础上通过对每个像素应用来对CTB滤波。
图7图示了根据本公开的示例实施例的SAO过滤方法700的示例流程图。
在步骤702,SAO过滤器213接收帧并决定将SAO应用于帧的CTB。
帧可以在帧的切片头中存储标志sao_type_idx,其值指示是否将SAO应用于CTB,如果是,则将应用哪种类型的SAO。sao_type_idx值为0表示不将SAO应用于帧的CTB;sao_type_idx值为1可以指示将如下所述的边界补偿滤波器应用于帧的CTB;并且sao_type_idx值为2可以指示将如下所述的条带补偿滤波器(band offset filter)应用于帧的CTB。
根据本公开的示例实施例,sao_type_idx值为3可以指示边界补偿和条带补偿都将被应用于帧的CTB。
此外,每个适用的CTB可以存储更多的SAO参数,包括sao_merge_left flag、sao_merge_up_flag、SAO类型和四个补偿。CTB的sao_merge_left_flag值为1可表示SAO过滤器213应将SAO类型和当前CTB左侧的CTB的补偿应用于当前CTB。CTB的sao_merge_up_flag值为1可指示SAO过滤器213应将SAO类型和的高于当前CTB的CTB的补偿应用于当前CTB。
在步骤704,SAO过滤器213将CTB分类为若干SAO类型之一。
下面的表11说明了帧的每个CTB可能被分类为类型0,在这种情况下,不会将SAO应用于CTB,或者可能被分类为类型1到5,在每种情况下,不同的SAO将应用于CTB。此外,对于类型1到5,CTB的像素将被分类为多个类别之一。
/>
CTB的类型1至4由包括当前像素p和两个相邻像素的像素边界图案的角度来识别。图8A到8D示出了包括当前像素p和两个相邻像素的可能边界图案。图8A图示了由包括当前像素p和0度角的两个相邻像素的像素组成的边界图案。图8B示出了由包括当前像素p和90度角的两个相邻像素的像素组成的边界图案。图8C示出了由包括当前像素p和135度角的两个相邻像素的像素组成的边界图案。图8D示出了由包括当前像素p和45度角的两个相邻像素的像素组成的边界图案。
在步骤706,在CTB被分类为用于应用边界补偿的类型的情况下,SAO滤波器213根据边界属性对CTB的像素进行分类。
每个像素具有范围从0到255的8位强度值。根据下表12,当前像素p可以通过其强度与两个相邻像素(以任一顺序)的比较来分类。
根据本公开的示例实施例,根据下面的表13,当前像素p可以通过其强度与两个相邻像素的比较(以任一顺序,其确定下面的情况1至5)以及与相邻像素的通常在两个相反方向(确定下面的情况0)上的比较来分类。
在步骤708,基于像素分类,SAO滤波器213基于补偿值将补偿应用于当前像素。当前像素的补偿值可以根据当前像素的分类来确定。此外,通过基于两个相反方向上像素的显着差异对强边界(也称为真实边界)进行分类,SAO滤波器213可以确定在上采样期间可能被平滑的强边界上的像素,并且应用补偿值来补偿此行为。
在步骤710,在CTB被分类为用于应用条带补偿的类型的情况下,SAO滤波器213将CTB的像素分类为条带。
可以通过将所有8位像素强度值减少到它们的五个最高有效位来建立整个像素强度值范围内的像素索引,从而使32个条带中的每个条带内的所有像素强度值相等,每个条带覆盖相同尺寸的像素强度值的原始范围的段。因此,每个像素根据其像素强度值位于这32个条带之一内。此外,每组四个相邻条带可以组合在一起,每个组由其在32个条带上从低到高计数的起始位置来标识。
在步骤712,SAO滤波器213基于补偿值向每个条带应用补偿。补偿值可以由条带的强度值确定。补偿值可以减少条带的失真。
接着,ALF 214可以每4×4像素子块对帧进行滤波,所述4×4像素子块为帧的亮度CTB和色度CTB的4×4像素子块。
图9A图示了根据本公开的示例实施例的ALF方法900的示例流程图。
在步骤902,ALF 214接收帧并决定将ALF应用于帧的亮度CTB和/或色度CTB。
亮度CTB具有指示是否应将ALF应用于亮度CTB的标志。色度CTB可以有指示是否应该将ALF应用于色度CTB的标志。ALF 214可以基于这些标志的值来决定应用ALF。
帧可以将ALF滤波器参数存储在帧的切片头中。ALF滤波器参数可以包括25组亮度滤波器系数,可以根据其分类将其相应地应用于亮度CTB。根据本公开的示例实施例,ALF滤波器参数可以包括多于25组的亮度滤波器系数,以适应更多类型的分类,例如从如下所述的分类方案导出的35组亮度滤波器系数。
滤波器系数可以映射到构成滤波器形状的像素。如图9B所示,色度滤波器912可以具有5×5像素的菱形,而亮度滤波器914可以具有7×7像素的菱形,每个像素显示分配的滤波器系数值。
为了减少比特开销,可以在一定程度上合并不同分类的滤波器系数。滤波器系数可以用等于128的范数进行量化。为了进一步降低乘法复杂度,可以应用位流一致性,其中滤波器中心位置的系数值可以落在0到28的范围内,滤波器所有其他位置的系数值的可能在–27到27–1的范围内,包含端值。
在步骤904,ALF 214通过获得重建样本来计算亮度CTB的子块在多个方向上的梯度值。
从帧中子块的左上角像素(i,j)开始,可以通过从重建帧的像素(x,y)间隔获得重建的R(x,y)在四个不同方向上执行一维拉普拉斯计算。基于一维拉普拉斯计算,子块的水平梯度可以计算如下:
子块的垂直梯度可以计算如下:
子块在第一对角线方向上的梯度可以计算如下
子块在第二对角线方向上的梯度可以计算如下:
不是对整个4×4像素子块进行采样,上述每一个计算中都可以作为子采样1-D拉普拉斯计算来执行,其通过仅对子块的阴影部分进行子采样来执行,如下图9C、图9D、图9E和F所示,图9C是关于垂直方向的图。图9D是关于水平方向的图,图9E和9F关于对角线方向的图。对于四个计算中的每一个,二次采样的像素位置可以是共同的。
在水平和垂直梯度中,和/>分别被确定为水平和垂直梯度gh和gv中的最大值和最小值;/>和/>分别被确定为两个对角线梯度gd0和gd1中的最大值和最小值。/>
在步骤906,ALF 214对亮度CTB的子块进行分类。
对于亮度CTB的每个子块,ALF 214基于分类索引C将子块分类为多个类中的一个,分类索引C从方向性D和子块的活动的量化值导出。D的值代表子块中局部梯度的方向,/>的值代表子块中局部梯度的活动。C可以如下推导。
色度CTB的子块未被分类。
如果D具有从0到4的取值范围,,方向性D从四个值 和/>根据以下步骤设置,使梯度值彼此进行比较并与两个阈值t1和t2进行比较。当D具有该可能值范围时,可以从上述等式为C导出25个可能值,对应于可以应用于子块的25个不同滤波器。
1、如果和/>D设置为0
2、如果继续下面的步骤3;否则继续下面的步骤4。
3、如果D设置为2;否则,D设置为1。
4、如果D设置为4;否则,D设置为3。
根据本公开的示例实施例,如果D取值范围为从0到6,方向性D可以根据以下步骤设置,而不是将梯度值彼此比较并与三个阈值t1、t2和t3进行比较。当D的可能值范围大于0到4时,可以从上述等式为C导出比25更多的可能值。例如,当D具有从0到6的可能值范围时,可以从上述等式为C导出35个可能值,对应于可以应用于子块的35个不同滤波器。
1、如果和/>D被设置为0。
2、如果继续下面的步骤3;否则继续下面的步骤5。
3、如果D设置为1;否则继续下面的步骤4。
4、如果和/>D设置为2;否则,D设置为3。
5、如果D设置为4;否则继续下面的步骤6。
6、如果和/>D被设置为5,D设置为6。
根据本公开的其他示例实施例,如果D取值范围为0到6,可以根据以下步骤设置方向性D,而不是将梯度值相互比较、与梯度值中的最大梯度比较以及与两个阈值tl和t2进行比较。
1、如果和/>D设置为0.
2、如果继续下面的步骤3;否则继续下面的步骤6。
3、如果并且最大梯度是水平的,则将D设置为1;否则继续下面的步骤4。
4、如果且最大梯度是垂直的,则D设置为2;否则继续下面的步骤5。
5、如果且最大梯度是水平的,则D设置为3;否则,D设置为4。
6、如果D设置为5;否则,D设置为6。
此外,活动A通过1-D拉普拉斯计算变量的以下变量来计算。
活动A的值被量化为0到4范围内的值
在步骤908,在将滤波器应用于子块之前,ALF 214将若干几何变换之一应用于滤波器的滤波器系数。可以根据下面的表14基于梯度值之间的比较来选择几何变换。
上述几何变换可以定义为以下函数:
对角线:fD(k,l)=f(l,l)
垂直翻转:fV(k,l)=f(k,K-l-1)
旋转:fR(k,l)=f(K-l-1,k)
K是滤波器的大小,0≤k,l≤K-1是系数坐标,使得坐标(0,0)在滤波器的左上角,坐标(K–1,K–1)在于过滤器的右下角。根据如上所述计算的梯度值将每个变换应用于滤波器系数f(k,l)。
在步骤910,ALF 214将具有滤波器系数f(k,l)的滤波器应用于每个子块上。对于亮度子块,要应用的滤波器系数可以取决于根据分类索引C在所有可用滤波器中要应用的滤波器。对于色度子块,要应用的滤波器系数可以是恒定的。
滤波器可作用于重建帧的样本值R(i,j),输出样本值R’(i,j),如下所示。
L是滤波器长度,fm,n表示滤波器系数,f(k,l)表示解码的滤波器系数。
图10示出了用于实现上述过程和方法的示例***1000,用于在去块滤波器中实现分辨率自适应视频编码。
本文描述的技术和机制可以由***1000的多个实例以及任何其他计算设备、***和/或环境来实现。图10中所示的***1000仅是***的一个示例并且不旨在暗示对用于执行上述流程和/或过程的任何计算设备的使用范围或功能的任何限制。可能适用于实施例的其他众所周知的计算设备、***、环境和/或配置包括但不限于个人计算机、服务器计算机、手持或膝上型设备、多处理器***、基于微处理器的***、机顶盒、游戏机、可编程消费电子产品、网络PC、小型计算机、大型计算机、包括上述任何***或设备的分布式计算环境、使用现场可编程门阵列(“FPGA”)和专用集成电路的实现(“ASIC”)等。
***1000可以包括一个或多个处理器1002和通信地耦合到处理器1002的***存储器1004。处理器1002可以执行一个或多个模块和/或过程以使处理器1002执行多种功能。在一些实施例中,处理器1002可以包括中央处理单元(CPU)、图形处理单元(GPU)、CPU和GPU、或本领域已知的其他处理单元或组件。此外,每个处理器1002可以拥有其自己的本地存储器,该本地存储器还可以存储程序模块、程序数据和/或一个或多个操作***。
根据***1000的确切配置和类型,***存储器1004可以是易失性的,例如RAM,非易失性的,例如ROM、闪存、微型硬盘驱动器、存储卡等,或者它们的某种组合。***存储器1004可以包括一个或多个可由处理器1002执行的计算机可执行模块1006。
模块1006可以包括但不限于去块滤波器模块1008,其包括边界确定模块1010、边界强度确定模块1012、阈值确定模块1014、补偿应用模块1016、滤波器活动确定模块1018、过滤强度确定模块1020、强过滤应用模块1022和弱过滤应用模块1024。
边界确定模块1010可以被配置为确定要过滤的块和子块边界,如上面参考图3A和3B所提到的。
边界强度确定模块1012可以被配置为确定被过滤的边界的bS值,如上面参考图3A和3B所提到的。
阈值确定模块1014可以被配置为确定阈值,如上面参考图3A所述。
补偿应用模块1016可以被配置为将补偿应用到亮度量化参数,如以上参考图3B所述。
滤波器活动性确定模块1018可以被配置为确定去块效应滤波器模块1008是否对于跨越8×8边界的第一四条垂直像素线或水平像素线有效,以及去块效应滤波器对于跨越8×8边界于第二四条垂直像素线或水平像素线有效,如上文参考图3A所述。或者可以被配置为确定去块滤波器模块1008是否对跨越8×8或4×4边界的第一四条垂直像素线或水平像素线有效,以及去块滤波器模块是否对跨越8×8-或4×4边界的第二四条垂直像素线或水平像素线有效,如上文参考图3B所述。
滤波强度确定模块1020可以被配置为在去块滤波模块1008对这些线有效的情况下,确定是对8×8边界中的第一四条垂直线或水平线应用强滤波还是弱滤波;并且在去块滤波器模块1008对这些线有效的情况下,对8×8边界中的第二四条垂直线或水平线应用强滤波还是弱滤波,如上文参考图3A所述。或者可以被配置为在去块滤波器模块1008对这些线有效的情况下,确定对8×8或4×4边界中的第一四条垂直线或水平线应用强滤波还是弱滤波,以及在去块滤波器模块1008对这些线有效的情况下,对8×8或4×4边界中的第二四条垂直线或水平线应用强滤波还是弱滤波滤波,如上文参考图3B所述。
强滤波器应用模块1022可以被配置为将强滤波器应用到其中去块滤波器模块1008确定应用强滤波器的垂直线或水平线,如上面参考图3A和3B所提到的。
弱滤波器应用模块1024可以被配置为将弱滤波器应用到其中去块滤波器模块1008确定应用弱滤波器的垂直线或水平线,如上面参考图3A和3B所提到的。
***1000可以另外包括输入/输出(I/O)接口1040,用于接收视频源数据和位流数据,并且用于将重建帧输出到参考帧缓冲区、传输缓冲区和/或显示缓冲区中。***1000还可以包括通信模块1050,其允许***1000通过网络(未示出)与其他设备(未示出)进行通信。网络可以包括因特网、诸如有线网络或直接有线连接的有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质的无线介质。
图11示出了用于实现上述过程和方法的示例***1100,用于在SAO滤波器中实现分辨率自适应视频编码。
本文描述的技术和机制可以由***1100的多个实例以及由任何其他计算设备、***和/或环境来实现。图11中所示的***1100仅是***的一个示例并且不旨在暗示对用于执行上述过程和/或过程的任何计算设备的使用范围或功能的任何限制。可能适用于实施例的其他众所周知的计算设备、***、环境和/或配置包括但不限于个人计算机、服务器计算机、手持或膝上型设备、多处理器***、基于微处理器的***、机顶盒、游戏机、可编程消费电子产品、网络PC、小型计算机、大型计算机、包括上述任何***或设备的分布式计算环境、使用现场可编程门阵列(“FPGA”)和专用集成电路的实现(“ASIC”)等。
***1100可以包括一个或多个处理器1102和通信地耦合到处理器1102的***存储器1104。处理器1102可以执行一个或多个模块和/或过程以使处理器1102执行多种功能。在一些实施例中,处理器1102可以包括中央处理单元(CPU)、图形处理单元(GPU)、CPU和GPU、或本领域已知的其他处理单元或组件。另外,每个处理器1102可以拥有其自己的本地存储器,该本地存储器还可以存储程序模块、程序数据和/或一个或多个操作***。
根据***1100的确切配置和类型,***存储器1104可以是易失性的,例如RAM,非易失性的,例如ROM、闪存、微型硬盘驱动器、存储卡等,或者它们的某种组合。***存储器1104可以包括一个或多个可由处理器1102执行的计算机可执行模块1106。
模块1106可以包括但不限于SAO滤波器模块1108。SAO滤波器模块1108可以包括滤波器应用决定模块1110、CTB分类模块1112、像素分类模块1114、边界补偿应用模块1116、条带分类模块1118和条带补偿应用模块1120。
过滤器应用决定模块1110可以被配置为接收帧并决定将SAO应用到帧的CTB,如上面参考图7所述。
CTB分类模块1112可以被配置为将CTB分类为若干SAO类型之一,如上文参考图7所述。
像素分类模块1114可以被配置为在CTB被分类为用于应用边界补偿的类型的情况下,根据边界属性对CTB的像素进行分类,如上面参照图7所述。
边界补偿应用模块1116可以被配置为基于像素分类和基于补偿值将补偿应用到当前像素,如以上参考图7所述。
条带分类模块1118可以被配置为在CTB被分类为用于应用条带补偿的类型的情况下将CTB的像素分类到条带中,如上面参考图7所述。
条带补偿应用模块1120可以被配置为基于补偿值将补偿应用到每个条带,如以上参考图7所述。
***1100可以另外包括输入/输出(I/O)接口1140,用于接收视频源数据和位流数据,并且用于将重建帧输出到参考帧缓冲区、传输缓冲区和/或显示缓冲区中。***1100还可以包括允许***1100通过网络(未示出)与其他设备(未示出)通信的通信模块1150。网络可以包括因特网、诸如有线网络或直接有线连接的有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质的无线介质。
图12示出了用于实现上述过程和方法的示例***1200,用于在ALF中实现分辨率自适应视频编码。
本文描述的技术和机制可以由***1200的多个实例以及任何其他计算设备、***和/或环境来实现。图12中所示的***1200。图12仅是***的一个示例并且不旨在暗示对用于执行上述过程和/或过程的任何计算设备的使用范围或功能的任何限制。可能适用于实施例的其他众所周知的计算设备、***、环境和/或配置包括但不限于个人计算机、服务器计算机、手持或膝上型设备、多处理器***、基于微处理器的***、机顶盒、游戏机、可编程消费电子产品、网络PC、小型计算机、大型计算机、包括上述任何***或设备的分布式计算环境、使用现场可编程门阵列(“FPGA”)和专用集成电路的实现(“ASIC”)等。
***1200可以包括一个或多个处理器1202和通信地耦合到处理器1202的***存储器1204。处理器1202可以执行一个或多个模块和/或过程以使处理器1202执行多种功能。在一些实施例中,处理器1202可以包括中央处理单元(CPU)、图形处理单元(GPU)、CPU和GPU、或本领域已知的其他处理单元或组件。此外,每个处理器1202可以拥有其自己的本地存储器,该本地存储器还可以存储程序模块、程序数据和/或一个或多个操作***。
根据***1200的确切配置和类型,***存储器1204可以是易失性的,例如RAM,非易失性的,例如ROM、闪存、微型硬盘驱动器、存储卡等,或者它们的某种组合。***存储器1204可以包括一个或多个可由处理器1202执行的计算机可执行模块1206。
模块1206可以包括但不限于ALF模块1208。ALF模块1208可以包括滤波器应用决定模块1210、梯度值计算模块1212、块分类模块1214、变换应用模块1216,以及过滤器应用模块1218。
滤波器应用决定模块1210可以被配置为接收帧并且决定将ALF应用到帧的亮度CTB和/或色度CTB,如上面参考图9所提提及。
梯度值计算模块1212可以被配置为通过获得重建样本来计算子块在多个方向上的梯度值,如上文参考图9所提及。
块分类模块1214可以被配置为对亮度CTB的子块进行分类,如上面参考图9所提及。
变换应用模块1216可以被配置为将若干几何变换之一应用到滤波器的滤波器系数,如上文参考图9所提及。
滤波器应用模块1218可以被配置为在每个子块上应用具有滤波器系数f(k,l)的滤波器,如上面参考图9所提及。
***1200可以另外包括输入/输出(I/O)接口1240,用于接收视频源数据和位流数据,并且用于将重建帧输出到参考帧缓冲区、传输缓冲区和/或显示缓冲区中。***1200还可以包括允许***1200通过网络(未示出)与其他设备(未示出)通信的通信模块1250。网络可以包括因特网、诸如有线网络或直接有线连接的有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质的无线介质。
上述方法的一些或所有操作可以通过执行存储在计算机可读存储介质上的如下所定义的计算机可读指令来执行。如在描述和权利要求中使用的术语“计算机可读指令”包括例程、应用程序、应用程序模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令可以在各种***配置上实现,包括单处理器或多处理器***、小型计算机、大型计算机、个人计算机、手持计算设备、基于微处理器的可编程消费电子产品、它们的组合等。
计算机可读存储介质可以包括易失性存储器(例如随机存取存储器(RAM))和/或非易失性存储器(例如只读存储器(ROM)、闪存等)。计算机可读存储介质还可以包括附加的可移动存储和/或不可移动存储,包括但不限于闪存、磁存储、光存储和/或磁带存储,它们可以提供计算机可读指令、数据结构、程序模块等的非易失性存储。
非暂时性计算机可读存储介质是计算机可读介质的示例。计算机可读介质包括至少两种计算机可读介质,即计算机可读存储介质和通信介质。计算机可读存储介质包括以任何过程或技术实现的、用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的易失性和非易失性、可移动和不可移动介质。计算机可读存储介质包括但不限于相变存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)、闪存或其他存储技术、光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)或其他光存储、磁带、磁盘存储或其他磁性存储设备,或任何其他可用于存储信息以供计算设备访问的非传输介质。相反,通信介质可以在诸如载波或其他传输机制的调制数据信号中体现计算机可读指令、数据结构、程序模块或其他数据。此处使用的计算机可读存储介质不应被解释为瞬态信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如通过光纤的光脉冲电缆),或通过电线传播的电信号。
存储在一个或多个非暂时性计算机可读存储介质上的计算机可读指令,当由一个或多个处理器执行时,可以执行以上参考图1A至12所描述的操作。通常,计算机可读指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且任何数量的描述的操作可以以任何顺序和/或并行组合以实现过程。
通过上述技术方案,本发明提供了多环路滤波器支持的帧间编码分辨率自适应视频编码,恢复了图像在下采样和后续上采样时出现的高频损耗,并且在分辨率自适应视频编码过程中提高图像质量。本文描述的方法和***提供了一种去块滤波器,该滤波器在确定滤波器强度时考虑经运动预测的帧之间的分辨率差异,并对下一代视频编解码器规范VVC进行了进一步修改。在与块边界相邻的块的运动预测中参考的第一参考帧具有与在相邻块的运动预测中参考的第二参考帧的分辨率不同的分辨率的情况下,与在当前帧的运动预测中参考的第二参考帧的分辨率不同的分辨率的情况下,或与当前帧分辨率不同的分辨率的情况下,去块滤波器可以将强滤波器或弱滤波器应用到块边界。
示例条款
A.一种方法,包括:接收当前帧;确定所述当前帧内要过滤的块边界;基于在所述与块边界相邻的块的运动预测中参考的第一参考帧与另一帧之间的分辨率差异确定所述块边界的边界强度;根据所述边界强度对所述块边界应用去块滤波。
B.如段落A所述的方法,其中所述第二帧是在与所述块边界相邻的另一块的运动预测中参考的参考帧。
C.如段落A所述的方法,其中所述第二帧是在当前帧的运动预测中参考的参考帧。
D.如段落A所述的方法,其中所述第二帧是所述当前帧。
E.如段落A所述的方法,其中所述第一参考帧具有与所述第二帧不同的分辨率。
F.如段落A所述的方法,其中所述第一参考帧具有比所述第二帧更低的分辨率。
G.如段落A所述的方法,其中所述第一参考帧具有比所述第二帧更高的分辨率。
H.一种方法,包括:接收帧并决定将SAO应用于所述帧的CTB;将所述CTB分类为多种SAO类型之一;通过至少比较两个相反方向上相邻像素的和之差值,根据边界属性对所述CTB的像素进行分类;并基于补偿值对所述像素应用边界补偿。
I.如段落H所述的方法,其中决定将SAO应用于所述帧的CTB包括基于存储在所述帧的切片头中的标志的值来决定至少将边界补偿应用到CTB。
J.如段落I所述的方法,其中决定将SAO应用于所述帧的CTB进一步包括基于存储在所述帧的切片头中的标志的值来决定将条带补偿应用到CTB。
K.如段落J所述的方法,还包括将CTB的像素分类到条带中并且基于补偿值将补偿应用到所述条带。
L.如段落A所述的方法,其中从上采样器接收所述帧。
M.一种方法,包括:接收帧并决定将ALF应用于所述帧的CTB;计算所述CTB的一个块的多个梯度值;基于所述多个梯度值计算至少六个可能的方向性值的方向性值来确定块的分类;并且将滤波器应用于所述块,该滤波器包括由所述块的分类确定的一组滤波器系数。
N.如段落M所述的方法,其中所述CTB是亮度CTB并且所述块是所述亮度CTB的亮度块。
O.如段落M所述的方法,其中通过将所述多个梯度值与至少三个阈值进行比较来计算方向性值。
P.如段落M所述的方法,其中通过将所述多个梯度值与至少两个阈值和所述多个梯度值中的最大值进行比较来计算方向性值。
Q.如段落M所述的方法,其中一组滤波器系数包括排列在7×7像素之间的多个值。
R.如段落Q所述的方法,其中该组滤波器系数被存储在所述帧的头部中。
S.如段落R所述的方法,其中头部存储多于25组滤波器系数并且每组滤波器系数对应于所述块的一种分类。
T.如段落M所述的方法,其中从上采样器接收所述帧。
U.一种***,包括:一个或多个处理器;和通信地耦合到所述一个或多个处理器的存储器,所述存储器存储可由所述一个或多个处理器执行的计算机可执行模块,所述计算机可执行模块在由所述一个或多个处理器执行时执行相关联的操作,所述计算机可执行模块包括:去块滤波器模块,被配置为在编码循环中接收当前帧,所述去块滤波模块还包括边界确定模块,被配置为确定所述当前帧内要滤波的块边界;边界强度确定模块,被配置为基于在与所述块边界相邻的块的运动预测中参考的第一参考帧和第二帧之间的分辨率差异来确定要滤波的块边界的边界强度;强滤波应用模块和弱滤波应用模块,每个被配置为基于所述边界强度将去块滤波应用到所述块边界。
V.如段落U所述的***,其中边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更低的分辨率和所述第二帧是所述当前帧的运动预测中参考的参考帧,确定所述边界强度的值为2。
W.如段落U所述的***,其中所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更低的分辨率和所述第二帧为当前帧,确定所述边界强度的值为2。
X.如段落U所述的***,其中所述边界强度确定模块被配置为基于所述第一参考帧具有与第二帧不同的分辨率和所述第二帧为与所述块边界相邻的另一块的运动预测中所参考的参考帧,确定所述边界强度的值为2。
Y.如段落U所述的***,其中所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更低的分辨率和所述第二帧是所述当前帧的运动预测中参考的参考帧,确定所述边界强度的值为1。
Z.如段落U所述的***,其中所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更低的分辨率和所述第二帧为当前帧,确定所述边界强度的值为1。
AA.如段落U所述的***,其中所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更高的分辨率和所述第二帧是所述当前帧的运动预测中参考的参考帧,确定所述边界强度的值为2。
BB.如段落U所述的***,其中所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更高的分辨率和所述第二帧为当前帧,确定所述边界强度的值为2。
CC.如段落U所述的***,其中所述边界强度确定模块被配置为基于述第一参考帧具有与第二帧不同的分辨率,和所述第二帧为所述当前帧,确定所述边界强度的值为2。
DD.如段落U所述的***,其中所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更高的分辨率和所述第二帧是所述当前帧的运动预测中参考的参考帧,确定所述边界强度的值为1。
EE.如段落U所述的***,其中所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更高的分辨率和所述第二帧是所述当前帧,确定所述边界强度的值为1。
BB.一种***,包括:SAO过滤器模块,被配置为接收帧,所述SAO过滤器模块还包括过滤器应用决定模块,被配置为决定将SAO应用于所述帧的CTB;CTB分类模块,被配置为将所述CTB分类为多种SAO类型之一;像素分类模块,被配置为通过至少比较两个相反方向的相邻像素的和的差值,根据边界属性对CTB的像素进行分类;边界补偿应用模块,被配置为基于补偿值将边界补偿应用到所述像素。
CC.如段落BB所述的***,其中所述过滤器应用决定模块还被配置为基于存储在帧的切片头中的标志的值来决定至少将边界补偿应用到所述CTB。
DD.如段落CC所述的***,其中所述过滤器应用决定模块还被配置为基于存储在帧的切片头中的标志的值来决定将条带补偿应用到所述CTB。
EE.如段落DD所述的***,还包括:条带分类模块,被配置为将CTB的像素分类为条带;条带补偿应用模块,被配置为基于补偿值将补偿应用于条带。
FF.如段落EE所述的***,其中所述SAO过滤器模块被配置为从上采样器接收所述帧。
GG.一种***,包括:ALF模块,被配置为接收帧,所述ALF模块还包括过滤器应用决定模块,被配置为决定将ALF应用于所述帧的CTB;梯度值计算模块,被配置为计算所述CTB的块的多个梯度值;块分类模块,被配置为基于所述多个梯度值计算至少六个可能的方向性值的方向性值来确定所述块的分类;滤波器应用模块被配置为将滤波器应用到是块,该滤波器包括由所述块的分类确定的一组滤波器系数。
HH.如段落GG所述的***,其中所述CTB是亮度CTB并且所述块是所述亮度CTB的亮度块。
II.如段落GG所述的***,其中块分类模块被配置为通过将所述多个梯度值与至少三个阈值进行比较来计算方向性值。
JJ.如段落GG所述的***,其中块分类模块被配置为通过将所述多个梯度值与至少两个阈值和所述多个梯度值中的最大值进行比较来计算方向性值。
KK.如段落GG所述的***,其中一组滤波器系数包括排列在7×7像素之间的多个值。
LL.如段落KK所述的***,其中该组滤波器系数存储在帧的头部中。
MM.如段落MM所述的***,其中头部存储多于25组滤波器系数并且每组滤波器系数对应于块的一种分类。
NN.如GG段所述的***,其中ALF模块被配置为从上采样器接收所述帧
尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求中定义的主题不一定限于所描述的特定特征或动作。相反,具体特征和动作被公开为实施权利要求的示例性形式。
Claims (26)
1.一种去块滤波方法,包括:
接收当前帧;
确定所述当前帧内要滤波的块边界;
基于在与所述块边界相邻的块的运动预测中参考的第一参考帧和第二帧之间的分辨率差异确定要滤波的块边界的边界强度;和
根据所述边界强度将去块滤波器应用到所述块边界;
所述第二帧包括以下类型:
所述第二帧是在与所述块边界相邻的另一块的运动预测中参考的参考帧;
所述第二帧是在所述当前帧的运动预测中参考的参考帧;
所述第二帧是当前帧。
2.如权利要求1所述的方法,其特征在于,所述第一参考帧具有与所述第二帧不同的分辨率。
3.如权利要求1所述的方法,其特征在于,所述第一参考帧具有比所述第二帧低的分辨率。
4.如权利要求1所述的方法,其特征在于,所述第一参考帧具有比所述第二帧更高的分辨率。
5.一种去块滤波***,包括:
一个或多个处理器;和
存储器,所述存储器通信地耦合到所述一个或多个处理器,所述存储器存储可由所述一个或多个处理器执行的计算机可执行模块,所述计算机可执行模块当由所述一个或多个处理器执行时,执行相关操作,所述计算机可执行模块包括:
去块滤波模块,所述去块滤波模块被配置为在编码循环中接收当前帧,所述去块滤波模块还包括边界确定模块,所述边界确定模块被配置为确定所述当前帧内要滤波的块边界;
边界强度确定模块,所述边界强度确定模块被配置为基于在与所述块边界相邻的块的运动预测中参考的第一参考帧和第二帧之间的分辨率差异来确定要滤波的块边界的边界强度;和
强滤波器应用模块和弱滤波器应用模块,所述强滤波器应用模块和弱滤波器应用模块的每个模块被配置为基于所述边界强度将去块滤波器应用到所述块边界;
所述第二帧包括以下类型:
所述第二帧是在与所述块边界相邻的另一块的运动预测中参考的参考帧;
所述第二帧是在所述当前帧的运动预测中参考的参考帧;
所述第二帧是当前帧。
6.根据权利要求5所述的***,其中,所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更低的分辨率,和所述第二帧为所述当前帧的运动预测中所参考的参考帧,确定所述边界强度的值为2。
7.根据权利要求5所述的***,其中,所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更低的分辨率,和所述第二帧为所述当前帧,确定所述边界强度的值为2。
8.根据权利要求5所述的***,其中,所述边界强度确定模块被配置为基于所述第一参考帧具有与所述第二帧不同的分辨率,和所述第二帧为与所述块边界相邻的另一块的运动预测中所参考的参考帧,确定所述边界强度的值为2。
9.根据权利要求5所述的***,其中,所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更低的分辨率,和所述第二帧为所述当前帧的运动预测中所参考的参考帧,确定所述边界强度的值为1。
10.根据权利要求5所述的***,其中,所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更低的分辨率,和所述第二帧为所述当前帧,确定所述边界强度的值为1。
11.根据权利要求5所述的***,其中,所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更高的分辨率,和所述第二帧为所述当前帧的运动预测中所参考的参考帧,确定所述边界强度的值为2。
12.根据权利要求5所述的***,其中,所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更高的分辨率,和所述第二帧为所述当前帧,确定所述边界强度的值为2。
13.根据权利要求5所述的***,其中,所述边界强度确定模块被配置为基于所述第一参考帧具有和所述第二帧不同的分辨率,和所述第二帧为所述当前帧,确定所述边界强度的值为2。
14.根据权利要求5所述的***,其中,所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更高的分辨率,和所述第二帧为所述当前帧的运动预测中所参考的参考帧,确定所述边界强度的值为1。
15.根据权利要求5所述的***,其中,所述边界强度确定模块被配置为基于所述第一参考帧具有比所述第二帧更高的分辨率,和所述第二帧为所述当前帧,确定所述边界强度的值为1。
16.一种计算机可读存储介质,存储可由一个或多个处理器执行的计算机可读指令,当所述指令由所述一个或多个处理器执行时,使所述一个或多个处理器执行包括以下操作的操作:
确定当前帧内要滤波的块边界;
基于在与所述块边界相邻的块的运动预测中参考的第一参考帧和第二帧之间的分辨率差异来确定要滤波的块边界的边界强度;和
基于所述边界强度将去块滤波器应用到所述块边界;
所述第二帧包括以下类型:
所述第二帧是在与所述块边界相邻的另一块的运动预测中参考的参考帧;
所述第二帧是在所述当前帧的运动预测中参考的参考帧;
所述第二帧是当前帧。
17.根据权利要求16所述的计算机可读存储介质,其中所述操作还包括基于所述第一参考帧具有比所述第二帧更低的分辨率,和所述第二帧为所述当前帧的运动预测中所参考的参考帧,确定所述边界强度的值为2。
18.如权利要求16所述的计算机可读存储介质,其特征在于,所述操作还包括基于所述第一参考帧具有比所述第二帧更低的分辨率,和所述第二帧为所述当前帧,确定所述边界强度的值为2。
19.如权利要求16所述的计算机可读存储介质,其特征在于,所述操作还包括基于所述第一参考帧具有和所述第二帧不同的分辨率,和所述第二帧为与所述块边界相邻的另一块的运动预测中所参考的参考帧,确定所述边界强度的值为2。
20.根据权利要求16所述的计算机可读存储介质,其中所述操作还包括基于所述第一参考帧具有比所述第二帧更低的分辨率,和所述第二帧为所述当前帧的运动预测中所参考的参考帧,确定所述边界强度的值为1。
21.如权利要求16所述的计算机可读存储介质,其特征在于,所述操作还包括基于所述第一参考帧具有比所述第二帧更低的分辨率,和所述第二帧为所述当前帧,确定所述边界强度的值为1。
22.如权利要求16所述的计算机可读存储介质,其特征在于,所述操作还包括:基于所述第一参考帧具有比所述第二帧更高的分辨率,和所述第二帧为所述当前帧的运动预测中所参考的参考帧,确定所述边界强度的值为2。
23.如权利要求16所述的计算机可读存储介质,其特征在于,所述操作还包括基于所述第一参考帧具有比所述第二帧更高的分辨率,和所述第二帧为所述当前帧,确定所述边界强度的值为2。
24.如权利要求16所述的计算机可读存储介质,其特征在于,所述操作还包括基于所述第一参考帧具有和所述第二帧不同的分辨率,和所述第二帧为所述当前帧,确定所述边界强度的值为2。
25.根据权利要求16所述的计算机可读存储介质,其中所述操作还包括基于所述第一参考帧具有比所述第二帧更高的分辨率,和所述第二帧为所述当前帧的运动预测中所参考的参考帧,来确定所述边界强度的值为1。
26.如权利要求16所述的计算机可读存储介质,其特征在于,所述操作还包括基于所述第一参考帧具有比所述第二帧更高的分辨率,和所述第二帧为当前帧,确定所述边界强度的值为1。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/073563 WO2021146933A1 (en) | 2020-01-21 | 2020-01-21 | Next-generation loop filter implementations for adaptive resolution video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114762326A CN114762326A (zh) | 2022-07-15 |
CN114762326B true CN114762326B (zh) | 2024-03-22 |
Family
ID=76992773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080083267.5A Active CN114762326B (zh) | 2020-01-21 | 2020-01-21 | 用于自适应分辨率视频编码的下一代环路滤波器实现 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114762326B (zh) |
WO (1) | WO2021146933A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230079960A1 (en) * | 2021-09-15 | 2023-03-16 | Tencent America LLC | On propagating intra prediction mode information of ibc block by using block vector |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101371584A (zh) * | 2006-01-09 | 2009-02-18 | 汤姆森特许公司 | 提供用于多视图视频编码的降低分辨率的更新模式的方法和装置 |
CN103493493A (zh) * | 2011-04-28 | 2014-01-01 | 索尼公司 | 编码装置和编码方法以及解码装置和解码方法 |
CN107925772A (zh) * | 2015-09-25 | 2018-04-17 | 华为技术有限公司 | 利用可选插值滤波器进行视频运动补偿的装置和方法 |
CN108141593A (zh) * | 2015-07-31 | 2018-06-08 | 港大科桥有限公司 | 用于针对深度视频的高效帧内编码的基于深度不连续的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267560A (zh) * | 2008-03-19 | 2008-09-17 | 浙江大学 | 去块滤波方法及装置 |
TWI413415B (zh) * | 2009-06-17 | 2013-10-21 | Novatek Microelectronics Corp | 以h264解方塊為基礎的多源過濾器以及多源過濾方法 |
US9167269B2 (en) * | 2011-10-25 | 2015-10-20 | Qualcomm Incorporated | Determining boundary strength values for deblocking filtering for video coding |
EP2941871A2 (en) * | 2013-01-07 | 2015-11-11 | VID SCALE, Inc. | Enhanced deblocking filters for video coding |
EP3244617A1 (en) * | 2016-05-13 | 2017-11-15 | Thomson Licensing | A method and device for deblocking filtering a boundary within an intra predicted block |
WO2019121164A1 (en) * | 2017-12-18 | 2019-06-27 | Telefonaktiebolaget Lm Ericsson (Publ) | De-blocking for video coding |
-
2020
- 2020-01-21 WO PCT/CN2020/073563 patent/WO2021146933A1/en active Application Filing
- 2020-01-21 CN CN202080083267.5A patent/CN114762326B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101371584A (zh) * | 2006-01-09 | 2009-02-18 | 汤姆森特许公司 | 提供用于多视图视频编码的降低分辨率的更新模式的方法和装置 |
CN103493493A (zh) * | 2011-04-28 | 2014-01-01 | 索尼公司 | 编码装置和编码方法以及解码装置和解码方法 |
CN108141593A (zh) * | 2015-07-31 | 2018-06-08 | 港大科桥有限公司 | 用于针对深度视频的高效帧内编码的基于深度不连续的方法 |
CN107925772A (zh) * | 2015-09-25 | 2018-04-17 | 华为技术有限公司 | 利用可选插值滤波器进行视频运动补偿的装置和方法 |
Non-Patent Citations (1)
Title |
---|
Hendry 等.On adaptive resolution change (ARC) for VVC .Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 Document: JVET-M0135-v1 .2019,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN114762326A (zh) | 2022-07-15 |
WO2021146933A1 (en) | 2021-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2020203726B2 (en) | Method and apparatus of adaptive filtering of samples for video coding | |
US11272175B2 (en) | Deringing filter for video coding | |
CN110024405B (zh) | 图像处理方法及其装置 | |
JP5792305B2 (ja) | 適応ループフィルタリングの方法及び装置 | |
EP2477403B1 (en) | Filter adaptation with directional features for video/image coding | |
US9451271B2 (en) | Adaptive filtering based on pattern information | |
US20120182388A1 (en) | Apparatus and method for processing depth image | |
US20220132141A1 (en) | Video coding method and device which use sub-block unit intra prediction | |
EP3535975B1 (en) | Apparatus and method for 3d video coding | |
AU2019359490B2 (en) | Apparatus and method for deblocking filter in video coding | |
JP7348269B2 (ja) | デブロッキングを実行するための装置及び方法 | |
WO2021115362A1 (en) | Sample padding for cross-component adaptive loop filtering | |
WO2020252745A1 (en) | Loop filter design for adaptive resolution video coding | |
CN115176468A (zh) | 跨分量自适应环路滤波器 | |
CN114223200B (zh) | 位置相关帧内预测样点滤波 | |
US20240114132A1 (en) | Boundary location for adaptive loop filtering | |
CN114762326B (zh) | 用于自适应分辨率视频编码的下一代环路滤波器实现 | |
EP2735144B1 (en) | Adaptive filtering based on pattern information | |
WO2018134363A1 (en) | Filter apparatus and methods | |
WO2020007747A1 (en) | Deblocking of intra-reference samples | |
US12047567B2 (en) | System and method for applying adaptive loop filter in video coding | |
TW202406336A (zh) | 用於重構視訊的適應性環路濾波器處理方法和裝置 | |
Lai et al. | Adaptive loop filter with directional features and similarity mapping for video coding | |
CN118077197A (zh) | 组合用于视频编码和/或解码的去块滤波和另一滤波 | |
BR122020024442B1 (pt) | Dispositivo de codificação de vídeo e método para configurar uma sequência de filtros para codificação de vídeo |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |