首页 / 专利库 / 视听技术与设备 / 视频编码层 / 用于视频编码的自适应环内滤波

用于视频编码的自适应环内滤波

阅读:197发布:2020-05-12

专利汇可以提供用于视频编码的自适应环内滤波专利检索,专利查询,专利分析的服务。并且本公开涉及用于 视频编码 的自适应环内滤波。讨论了与使用自适应环内滤波启用对视频进行编码相关的技术。这些技术可包括基于评估视频的图像的最大编码比特限制、图像的量化参数和视频的编码结构来确定是否执行环内滤波。,下面是用于视频编码的自适应环内滤波专利的具体信息内容。

1.一种视频编码系统,包括:
存储器,用于存储用于编码的视频的图像组中的单个图像;和
处理器,其被耦合到所述存储器,所述处理器用于:
针对所述单个图像,确定最大编码比特限制和量化参数;
至少部分地基于所述最大编码比特限制与第一阈值的比较和所述量化参数与第二阈值的比较来设置所述单个图像的环内滤波器指示符,其中当所述最大编码比特限制与所述第一阈值相比不利并且所述量化参数与所述第二阈值相比有利时,所述单个图像的环内滤波器指示符被设置为关闭;和
至少部分地基于所述环内滤波器指示符对所述单个图像进行编码以生成比特流。
2.如权利要求1所述的视频编码系统,其中所述比特流包括符合开放媒体联盟的比特流,并且其中所述环内滤波器指示符指示是否针对所述单个图像的所有编码单元实现约束方向增强滤波器或环路恢复滤波器中的至少一个。
3.如权利要求1或2所述的视频编码系统,其中,当所述最大编码比特限制与所述第一阈值相比有利或者所述量化参数与所述第二阈值相比不利时,所述处理器还用于:
确定所述单个图像是否是场景变化图像;和
当确定所述单个图像是场景变化图像时,将所述环内滤波器指示符设置为开启。
4.如权利要求1或2所述的视频编码系统,其中,当所述最大编码比特限制与所述第一阈值相比有利或者所述量化参数与所述第二阈值相比不利时,所述处理器还用于:
基于与对所述图像组进行编码相关联的编码结构,设置所述单个图像的环内滤波器指示符。
5.如权利要求4所述的视频编码系统,其中,所述编码结构包括分层B结构,所述单个图像是非参考B图像,并且所述处理器用于设置所述单个图像的环内滤波器指示符包括:所述处理器用于响应于所述单个图像是非参考B图像而将所述环内滤波器指示符设置为关闭。
6.如权利要求4所述的视频编码系统,其中,所述编码结构包括分层B结构,所述单个图像包括非参考B图像或仅能够由非参考B图像引用的参考B图像中的至少一个,并且所述处理器用于设置所述单个图像的环内滤波器指示符包括:所述处理器用于响应于所述单个图像是非参考B图像或仅能够由非参考B图像引用的参考B图像而将所述环内滤波器指示符设置为关闭。
7.如权利要求4所述的视频编码系统,其中,所述编码结构包括低延迟编码结构,所述低延迟编码结构对于除所述图像组的第一时间图像之外的图像具有恒定的最大编码比特限制,并且所述处理器用于设置所述单个图像的环内滤波器指示符包括:所述处理器用于按照固定图像间隔针对所述图像组将所述环内滤波器指示符设置为关闭。
8.如权利要求4所述的视频编码系统,其中,所述编码结构包括自适应量化参数低延迟编码结构,并且所述处理器用于设置所述单个图像的环内滤波器指示符包括:所述处理器用于当高量化参数与所述单个图像相关联时将所述环内滤波器指示符设置为关闭并且当低量化参数与所述单个图像相关联时将所述环内滤波器指示符设置为开启。
9.如权利要求4所述的视频编码系统,其中,所述编码结构包括至少一个I图像,所述单个图像是I图像,并且所述处理器用于设置所述环内滤波器指示符包括:所述处理器用于响应于所述单个图像是I图像而将所述环内滤波器指示符设置为开启。
10.如权利要求1或2所述的视频编码系统,其中,当针对所述单个图像将所述环内滤波器指示符设置为开启时,所述处理器还用于:
确定所述单个图像与和所述单个图像相关联的参考图像匹配;和
响应于所述单个图像与所述参考图像匹配,在对所述单个图像进行编码之前将所述单个图像的环内滤波器指示符设置为关闭。
11.如权利要求1所述的视频编码系统,其中,当针对所述单个图像将所述环内滤波器指示符设置为开启时,所述处理器还用于:
针对所述单个图像的编码单元,确定下述项中的至少一者:与所述编码单元相关联的运动矢量是零运动矢量,或者与编码相关联的预测残差与第三阈值相比有利;
响应于所述编码单元具有零矢量运动矢量或所述预测残差与所述第三阈值相比不利,将所述编码单元的编码单元级别环内滤波器指示符设置为关闭;和
响应于所述编码单元级别环内滤波器指示符对于所述编码单元为关闭,对于所述编码单元跳过环内滤波。
12.如权利要求1所述的视频编码系统,其中,当针对所述单个图像将所述环内滤波器指示符设置为开启时,所述处理器还用于:
针对所述单个图像的编码单元,确定与所述编码单元相关联的运动矢量是零运动矢量并且与所述编码单元相对应的参考编码单元具有与第三阈值相比有利的量化参数;
响应于所述编码单元具有零矢量运动矢量或所述预测残差与所述第三阈值相比不利,将所述编码单元的编码单元级别环内滤波器指示符设置为跳过;
响应于所述编码单元级别环内滤波器指示符对于所述编码单元为跳过,对于所述编码单元跳过环内滤波器选择;和
使用来自参考编码单元的环内滤波器参数对所述编码单元执行环内滤波。
13.一种视频编码方法,包括:
针对图像组中的单个图像,确定最大编码比特限制和量化参数;
至少部分地基于所述最大编码比特限制与第一阈值的比较和所述量化参数与第二阈值的比较来设置所述单个图像的环内滤波器指示符,其中当所述最大编码比特限制与所述第一阈值相比不利并且所述量化参数与所述第二阈值相比有利时,所述单个图像的环内滤波器指示符被设置为关闭;和
至少部分地基于所述环内滤波器指示符对所述单个图像进行编码以生成比特流。
14.如权利要求13所述的方法,其中所述比特流包括符合开放媒体联盟的比特流,并且其中所述环内滤波器指示符指示是否针对所述单个图像的所有编码单元实现约束方向增强滤波器或环路恢复滤波器中的至少一个。
15.如权利要求13或14所述的方法,其中,当所述最大编码比特限制与所述第一阈值相比有利或者所述量化参数与所述第二阈值相比不利时,所述方法还包括:
确定所述单个图像是否是场景变化图像;和
当确定所述单个图像是场景变化图像时,将所述环内滤波器指示符设置为开启。
16.如权利要求13或14所述的方法,其中,当所述最大编码比特限制与所述第一阈值相比有利或者所述量化参数与所述第二阈值相比不利时,所述方法还包括:
基于与对所述图像组进行编码相关联的编码结构,设置所述单个图像的环内滤波器指示符。
17.如权利要求16所述的方法,其中,所述编码结构包括分层B结构,所述单个图像是非参考B图像,并且设置所述单个图像的环内滤波器指示符包括:响应于所述单个图像是非参考B图像而将所述环内滤波器指示符设置为关闭。
18.如权利要求16所述的方法,其中,所述编码结构包括分层B结构,所述单个图像包括非参考B图像或仅能够由非参考B图像引用的参考B图像中的至少一个,并且设置所述单个图像的环内滤波器指示符包括:响应于所述单个图像是非参考B图像或仅能够由非参考B图像引用的参考B图像而将所述环内滤波器指示符设置为关闭。
19.如权利要求16所述的方法,其中,所述编码结构包括低延迟编码结构,所述低延迟编码结构对于除所述图像组的第一时间图像之外的图像具有恒定的最大编码比特限制,并且设置所述单个图像的环内滤波器指示符包括:按照固定图像间隔针对所述图像组将所述环内滤波器指示符设置为关闭。
20.如权利要求16所述的方法,其中,所述编码结构包括自适应量化参数低延迟编码结构,并且设置所述单个图像的环内滤波器指示符包括:当高量化参数与所述单个图像相关联时将所述环内滤波器指示符设置为关闭,并且当低量化参数与所述单个图像相关联时将所述环内滤波器指示符设置为开启。
21.如权利要求16所述的方法,其中,所述编码结构包括至少一个I图像,所述单个图像是I图像,并且设置所述环内滤波器指示符包括:响应于所述单个图像是I图像而将所述环内滤波器指示符设置为开启。
22.如权利要求13或14所述的方法,其中,当针对所述单个图像将所述环内滤波器指示符设置为开启时,所述方法还包括:
确定所述单个图像与和所述单个图像相关联的参考图像匹配;和
响应于所述单个图像与所述参考图像匹配,在对所述单个图像进行编码之前将所述单个图像的环内滤波器指示符设置为关闭。
23.如权利要求13所述的方法,其中,当针对所述单个图像将所述环内滤波器指示符设置为开启时,所述方法还包括:
针对所述单个图像的编码单元,确定下述项中的至少一者:与所述编码单元相关联的运动矢量是零运动矢量,或者与编码相关联的预测残差与第三阈值相比有利;
响应于所述编码单元具有零矢量运动矢量或所述预测残差与所述第三阈值相比不利,将所述编码单元的编码单元级别环内滤波器指示符设置为关闭;和
响应于所述编码单元级别环内滤波器指示符对于所述编码单元为关闭,对于所述编码单元跳过环内滤波。
24.至少一种机器可读介质,包括:
多个指令,所述多个指令响应于在计算设备上被执行而使所述计算设备执行根据权利要求13-23中任一项所述的方法。
25.一种装置,包括:
用于执行根据权利要求13-23中任一项所述的方法的装置。

说明书全文

用于视频编码的自适应环内滤波

技术领域

[0001] 本公开涉及用于视频编码的自适应环内滤波(in-loop filtering)。

背景技术

[0002] 在压缩/解压缩(编解码器)系统中,压缩效率和视频质量是重要的性能标准。例如,视觉质量在许多视频应用中是用户体验的一个重要方面,并且压缩效率影响存储视频文件所需的存储器存储量和/或影响传输和/或流式传输视频内容所需的带宽量。视频编码器压缩视频信息,使得可以通过给定带宽发送更多信息或者在给定存储器空间等中存储更多信息。然后,压缩的信号或数据由解码器解码,解码器对信号或数据进行解码或解压缩以便显示给用户。在大多数实现中,具有更高压缩的更高视觉质量是合意的。
[0003] 环内滤波(包括去滤波和其他增强滤波)是现代视频编码标准中的一个重要特征。这样的滤波改善了客观和主观的视频质量和压缩效率。在标准中,定义参数以调节这种滤波操作。然而,在实现中,参数选择技术可能未被定义。
[0004] 改进环内滤波器选择以提供改进的压缩效率和/或视频质量可能是有利的。关于这些和其他考虑因素,需要目前的改进。随着压缩和传输视频数据的需求变得更加普遍,这种改进可能变得至关重要。发明内容
[0005] 根据本公开的一方面,提供了一种视频编码系统,包括:存储器,用于存储用于编码的视频的图像组中的单个图像;以及处理器,其被耦合到所述存储器,所述处理器用于:针对所述单个图像,确定最大编码比特限制和量化参数;至少部分地基于所述最大编码比特限制与第一阈值的比较和所述量化参数与第二阈值的比较来设置所述单个图像的环内滤波器指示符,其中当所述最大编码比特限制与所述第一阈值相比不利并且所述量化参数与所述第二阈值相比有利时,所述单个图像的环内滤波器指示符被设置为关闭;以及至少部分地基于所述环内滤波器指示符对所述单个图像进行编码以生成比特流。
[0006] 根据本公开的另一方面,提供了一种视频编码方法,包括:针对图像组中的单个图像,确定最大编码比特限制和量化参数;至少部分地基于所述最大编码比特限制与第一阈值的比较和所述量化参数与第二阈值的比较来设置所述单个图像的环内滤波器指示符,其中当所述最大编码比特限制与所述第一阈值相比不利并且所述量化参数与所述第二阈值相比有利时,所述单个图像的环内滤波器指示符被设置为关闭;以及至少部分地基于所述环内滤波器指示符对所述单个图像进行编码以生成比特流。
[0007] 根据本公开的又一方面,提供了至少一种机器可读介质,包括:多个指令,所述多个指令响应于在计算设备上被执行而使所述计算设备执行上述视频编码方法。
[0008] 根据本公开的再一方面,提供了一种装置,包括:用于执行上述视频编码方法的装置。附图说明
[0009] 在附图中通过示例的方式而不是限制的方式示出本文描述的材料。为了说明的简单和清楚,附图中示出的元素不一定按比例绘制。例如,为清楚起见,一些元素的尺寸可能相对于其他元素被夸大。另外,在认为适当的情况下,在附图中已经重复参考标记以指示对应或类似的元素。在附图中:
[0010] 图1是用于提供视频编码的示例系统的说明图;
[0011] 图2示出了示例视频图像;
[0012] 图3示出了示例约束方向增强滤波器(CDEF)方向;
[0013] 图4示出了待滤波的像素和相邻像素的示例像素值;
[0014] 图5示出了示例约束方向增强滤波器(CDEF)组合的示例滤波器抽头;
[0015] 图6示出了示例环路恢复滤波器(LRF)的示例滤波器抽头;
[0016] 图7示出了具有分层B结构的示例图像组;
[0017] 图8示出了具有低延迟编码结构的示例图像组;
[0018] 图9示出了具有自适应量化参数低延迟编码结构的示例图像组;
[0019] 图10是示出视频编码的示例过程的流程图,视频编码包括环内滤波图像级别和编码单元级别跳过决策;
[0020] 图11示出了示例比特流;
[0021] 图12示出了集成有自适应环内滤波的示例编码器的框图
[0022] 图13是示出视频编码的示例过程的流程图,视频编码包括自适应地启用和禁用环内滤波;
[0023] 图14是用于视频编码的示例系统的说明图,视频编码包括自适应地启用和禁用环内滤波;
[0024] 图15是示例系统的说明图;并且
[0025] 图16示出了全部根据本公开的至少一些实施方式布置的示例设备。

具体实施方式

[0026] 现在参考附图描述一个或多个实施例或实施方式。虽然讨论了具体的配置和布置,但应该理解,这仅是出于说明性目的而进行的。相关领域的技术人员将认识到,在不脱离本说明书的精神和范围的情况下,可以采用其他配置和布置。对于相关领域的技术人员来说将显而易见的是,在除本文所述的系统和应用之外的各种其他系统和应用中也可以采用本文描述的技术和/或布置。
[0027] 虽然以下描述阐述了可以在诸如片上系统(SoC)架构之类的架构中表现出的各种实施方式,但是本文描述的技术和/或布置的实施方式不限于特定的架构和/或计算系统,并且可以由用于类似目的任何架构和/或计算系统实现。例如,采用例如多个集成电路(IC)芯片和/或封装的各种架构、和/或各种计算设备和/或消费电子(CE)设备(诸如机顶盒、智能电话等)可以实现本文描述的技术和/或布置。另外,虽然以下描述可以阐述许多具体细节(诸如系统组件的逻辑实施方式、类型和相互关系,逻辑划分/集成选择,等等),但是可以在没有这些具体细节的情况下实践所要求保护的主题。在其他情况下,可能不详细示出某一材料(例如控制结构和完整软件指令序列),以便不使本文公开的材料模糊。
[0028] 本文公开的材料可以用硬件固件、软件或其任何组合来实现。本文公开的材料还可被实现为存储在机器可读介质上的指令,其可以由一个或多个处理器读取和执行。机器可读介质可包括用于以机器(例如,计算设备)可读的形式存储或传输信息的任何介质和/或机制。例如,机器可读介质可包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等),等等。
[0029] 说明书中对“一个实施方式”、“实施方式”、“示例实施方式”等的提及表明所描述的实施方式可包括特定的特征、结构或特性,但是每个实施例可能不一定包括该特定的特征、结构或特性。而且,这样的短语不一定指的是相同的实施方式。另外,当结合一个实施例描述特定的特征、结构或特性时,认为结合其他实施方式(无论本文明确描述与否)来实现这样的特征、结构或特性在本领域技术人员的知识范围内。术语“基本上”、“靠近”、“大约”、“接近”和“约”通常指的是在目标值的+/-10%之内。术语“相比有利”在参考阈值使用时指示所讨论的值大于或者大于或等于阈值。类似地,术语“相比不利”在参考阈值使用时指示所讨论的值小于或者小于或等于阈值。
[0030] 本文描述了与视频编码有关并且具体与包括约束方向增强滤波器和环路细化滤波器的环内滤波器的自适应启用有关的方法、设备、装置、计算平台和物品。
[0031] 如上所述,在现代视频编码标准中,环内滤波是可以提供改进的效率和/或视频质量的重要特征。如本文所讨论的,技术包括接收用于编码的视频的图像组中的单个图像、该单个图像的最大编码比特限制以及该单个图像的图像级别量化参数(QP)。如本文进一步讨论的,该图像组具有定义要如何对其每个图像进行编码的编码结构。响应于最大编码比特限制、QP和根据编码结构的单个图像的图像类型以及其他因素,针对单个图像将环内滤波器指示符设置为开启(启用)或关闭(禁用)。当将环内滤波器指示符设置为开启时,可以对单个图像的编码单元执行特定一个或多个类型的环内滤波。例如,如本文进一步讨论的,仍然可以在编码单元级别上将一些编码单元设置为关闭。当将环内滤波器指示符设置为关闭时,对于单个图像的所有编码单元,跳过这样一个或多个类型的环内滤波。这里,启用或禁用的环内滤波是除去块滤波和样本自适应偏移(SAO)滤波之外的任何环内滤波,诸如本文进一步描述的使用约束方向增强滤波器(CDEF)的滤波和/或使用环路恢复滤波器(LRF)的滤波。这样的CDEF和/或LRF滤波可被描述为增强滤波、选择性滤波、可选滤波、CDEF滤波、LRF滤波、CDEF和LRF滤波等,以将它们与去块和/或SAO滤波区分开。例如,可以执行也是环内的去块滤波和/或SAO滤波,而不管设置图像级别和编码单元级别环内滤波器指示符的结果如何。
[0032] 在一个实施例中,当最大编码比特限制与第一阈值相比不利并且量化参数与第二阈值相比有利时,将单个图像的环内滤波器指示符设置为关闭并且对于单个图像跳过这样的环内滤波(CDEF和/或LRF)。然后,至少部分地基于环内滤波器指示符来执行单个图像的编码,以生成比特流,使得当环内滤波器指示符为开启时,执行选择性环内滤波(例如,CDEF和/或LRF中的一者或两者),需要注意的是可能会跳过某些编码单元。比特流可以是符合任何标准的标准。例如,比特流可以是符合开放媒体联盟的比特流。
[0033] 当最大编码比特限制与第一阈值相比有利或者量化参数与第二阈值相比不利时,评估图像组的编码结构和/或其他因素以确定是将单个图像的环内滤波器指示符设置为开启还是将其设置为关闭。在一个实施例中,当单个图像是场景变化图像时,单个图像的环内滤波器指示符被设置为开启。在一个实施例中,当单个图像是编码结构内的I图像时,单个图像的环内滤波器指示符被设置为开启。在一个实施例中,当编码结构是分层B结构时,如本文中进一步描述的,对于非参考B图像,将环内滤波器指示符设置为关闭,并且对于所有其他图像(即,I图像和参考B图像),将环内滤波器指示符设置为开启。在另一个实施例中,当编码结构是分层B结构时,对于非参考B图像和仅可以由非参考B图像引用的参考B图像,将环内滤波器指示符设置为关闭,并且对于所有其他图像(即,I图像和可以由其他参考B图像引用的参考B图像),将环内滤波器指示符设置为开启。在一个实施例中,当编码结构是对于除了图像组的第一时间图像之外的图像具有恒定的最大编码比特限制的低延迟编码结构时,按照固定图像间隔(即,每隔一个图像,每三个图像,或每四个图像)将环内滤波器指示符设置为关闭。在一个实施例中,当编码结构是自适应量化参数低延迟编码结构时,如本文中进一步描述的,当高量化参数与单个图像相关联时,将环内滤波器指示符设置为关闭,并且当低量化参数与单个图像相关联时,将环内滤波器指示符设置为开启。本文进一步讨论了其他实施例,其包括当在图像级别将环内滤波器指示符设置为开启时对图像和编码单元的进一步评估。
[0034] 如所讨论的,可以在图像和/或编码单元级别启用或禁用CDEF和/或LRF。如本文所使用的,术语编码单元指示图像的任何片段,诸如块、超级块、环路恢复单元等。具体而言,在开放媒体联盟(AOM)的范围内,AOMedia Video 1(AV1)是下一代视频编解码器。除去块滤波之外,AV1还包括另外两个环内滤波器:CDEF和LRF。这些额外的环内滤波器去除编码伪像并提高客观质量。CDEF包括第一级中的定向去振铃滤波器,以及第二级中的受约束的低通滤波器,定向去振铃滤波器检测诸如超级块之类的编码单元的方向,然后沿着所识别的方向自适应地滤波。LRF包括互相排斥的维纳滤波器和自导滤波器,使得每次只有一个用于每个编码单元(例如,环路恢复单元)。在AV1中,使环内滤波器级联,使得首先执行去块滤波,第二执行CDEF,并且第三执行LRF。在某些编码上下文中,这样的处理可能是硬件编码流线的瓶颈。尽管CDEF和LRF所使用的附加比特是整个比特流的一小部分,但是这样的处理尤其在极低比特率编码中可能是困难的。
[0035] 本文讨论的技术提供图像(或)级别自适应环内滤波器(即,CDEF、LRF、或CDEF和LRF两者)开启/关闭技术,以基于图像类型、图像组(GOP)结构、图像上的环内滤波器之间的间隔以及其他因素自适应地针对整个图像启用和禁用环内滤波器。另外,开发了速率和QP自适应环内滤波器开启/关闭决策技术以避免下溢和不需要的环内滤波器处理。本文所讨论的技术用小于一半的复杂度实现了与全滤波器实现相比类似的客观和主观质量。因此,所讨论的技术的实现在速度、处理效率和功耗方面提供了改进的设备性能。
[0036] 图1是根据本公开的至少一些实施方式布置的用于提供视频编码的示例系统100的说明图。如图1所示,系统100包括速率控制模块101,视频分析模块102,环路滤波器决策模块103,环路滤波器处理模块112,以及熵编码器113。环路滤波器决策模块103包括编码结构自适应环路滤波器决策模块104,比较器模块105(例如,标记为“MaxBitsT2?”),场景变化确定模块106(例如,标记为“场景变化?”),环路滤波器图像级别评估模块107(例如,标记为“环路滤波器关闭图像?”),以及环路滤波器设置模块108-111(例如,标记为“环路滤波器开启”或“环路滤波器关闭”)。
[0037] 速率控制模块101和视频分析模块102接收视频121。系统100提供视频压缩,并且系统100可以是经由计算机或计算设备等实现的视频编码器。例如,系统100接收视频121并生成与视频压缩解压缩(编解码器)标准(诸如AOM AV1等)兼容的比特流125。系统100可以经由任何合适的设备(例如,个人计算机,膝上型计算机,平板计算机,平板电话,智能电话,数码相机游戏机,可穿戴设备,显示设备,一体化设备,二合一设备等)或者诸如移动平台等的平台来实现。例如,如本文所使用的,系统、设备、计算机或计算设备可包括任何这样的设备或平台。
[0038] 系统100可包括为了呈现的清楚起见而未示出的其他模块。例如,系统100可包括变换模块,帧内预测模块,运动估计模块,运动补偿模块,参考图像缓冲器,扫描模块等,其中的一些在本文中关于图12进行讨论。在一些实施例中,系统100包括用于生成在编码过程中使用的参考图像或帧的本地解码循环。这些模块对于本领域技术人员来说是已知的,并且在呈现所描述的技术时为了清楚起见在本文中不再进一步讨论。
[0039] 如所讨论的,速率控制模块101和视频分析模块102接收视频121。视频121可包括任何合适分辨率的任何合适的视频帧、视频图像、视频帧序列、图像组、多个图像组、视频数据等。例如,视频121可以是视频图形阵列(VGA)、高清晰度(HD)、全HD(例如,1080p)或4K分辨率视频等。例如,视频可以是视频图形阵列(VGA)、高清晰度(HD)、全HD(例如,1080p)、4K分辨率视频、5K分辨率视频等,并且视频可包括任意数量的视频帧、视频帧序列、图像、图像组等。为了呈现的清楚起见,关于图像、切片、编码单元、超级块和环路恢复单元讨论了本文讨论的技术。然而,这样的图像可被表征为帧、视频图像、图像序列、视频序列等,这样的超级块和/或环路恢复单元可被表征为最大编码单元、编码单元、编码块、宏块、子单元、子块等。例如,彩色视频数据的图像或帧可包括亮度平面或分量以及与亮度平面相同或不同分辨率的两个色度平面或分量。输入视频121可包括可被划分为任何大小的块(其包含对应于像素块的数据)的图像或帧。这样的块可包括来自像素数据的一个或多个平面或颜色通道的数据。
[0040] 如图1所示,视频分析模块102针对视频121的各个图像和/或视频121的图像组来确定视频参数123。视频分析模块102可使用任何一个或多个合适的技术来确定视频参数123。另外,视频参数123可包括任何合适的视频分析参数或数据,诸如图像方差、空间复杂度、时间相关性等。在一个实施例中,视频分析模块102执行对视频121的图像的下采样和/或分析以生成视频参数123。如图所示,视频参数123可以由速率控制模块101和场景变化确定模块106使用,如本文进一步讨论的。
[0041] 速率控制模块101接收视频121和视频参数123。速率控制模块101针对视频121的各个图像确定最大编码比特限制和量化参数。速率控制模块101向比较器模块105提供包括最大编码比特限制(例如,MaxBits)和量化参数(例如,QP)的信号122。如本文所使用的,术语最大编码比特限制是用于对图像进行编码的允许比特的最大数量。最大编码比特限制可被表征为当前图像的最大比特、最大编码比特、最大编码比特限制等。具体而言,每个图像具有如由速率控制模块101设置的相应的最大编码比特限制。使用任何一个或多个合适的技术来确定当前图像的最大编码比特限制。在一个实施例中,最大编码比特限制基于当前缓冲器条件和/或用于对视频121的每个图像进行编码的平均目标速率。在一些示例中,视频121的当前图像的最大编码比特限制是下述项的总和:与紧接在前的编码图像相关联的假设参考解码器缓冲器充满度(例如,当前缓冲器条件),以及图像组中的每个图像的平均目标速率。
[0042] 另外,量化参数可以是用于将值的范围压缩到图像的特定值的量化参数。可以使用诸如本领域中已知的速率控制技术之类的任何一个或多个合适的技术来确定量化参数。
[0043] 环路滤波器决策模块103(例如,经由比较器模块105)经由信号122接收当前图像(例如,对于每个图像)的最大编码比特限制和量化参数。比较器模块105使用当前图像的最大编码比特限制和量化参数来确定针对CDEF和LRF中的一者或两者的图像级别环内滤波器决策。在图1中,为了清楚起见,每个环内滤波器实例被标记为环路,并且这些术语在本文中可互换使用。在一个实施例中,比较器模块105将最大编码比特限制与第一阈值进行比较并将量化参数与第二阈值进行比较。如果最大编码比特限制与第一阈值相比不利(例如,小于、等于或不大于)并且量化参数与第二阈值相比有利(例如,大于、等于或不小于),则比较器模块105可以向环路滤波器设置模块108提供信号,以基于接收的信号将当前图像的环内滤波器指示符设置为关闭。如本文所使用的,指示符可以是指示特定设置的任何数据结构,诸如标志、一个或多个比特等。
[0044] 如本文所使用的,环内滤波器指示符或环路滤波器指示符指示将在与该指示符相关联的级别(即,图像级别、切片级别、编码单元级别等)应用一个或多个环内或环路滤波器。环内滤波器指示符或环路滤波器指示符可以指示是否将在特定级别使用CDEF和LRF中的一者或两者。在一个实施例中,环内滤波器指示符或环路滤波器指示符指示是否将在特定级别使用CDEF和LRF两者。在一个实施例中,提供CDEF滤波器指示符以指示是否将在特定级别使用CDEF。在一个实施例中,提供LRF滤波器指示符以指示是否将在特定级别使用LRF。另外,如本文所使用的,当特定级别的指示符指示将不使用CDEF、LRF或两者(例如,指示符为关闭)时,则对于与其对应的整个子级别跳过这样的处理。例如,如果图像级别指示符为关闭,则对于图像的每个切片和编码单元跳过处理。如果切片级别指示符为关闭,则对于切片的每个编码单元跳过处理。然而,当特定级别的指示符指示将使用CDEF、LRF或两者(例如,指示符为开启)时,如果更低级别指示符为关闭,则仍然可以在较低级别跳过这样的处理。例如,如果图像级别指示符为开启,则对于图像的特定切片或编码单元仍然可以跳过(例如,关闭)处理。
[0045] 继续参考图1,环路滤波器设置模块108经由包括环路滤波器指示符(LFI)的环路滤波器指示符信号126向环路滤波器处理模块112提供当前图像的环内滤波器指示符。例如,环路滤波器指示符指示视频121的图像是实现还是跳过CDEF、LRF、CDEF和LRF两者。例如,可以在比特流125的切片报头中提供环路滤波器指示符。在一个实施例中,基于最大编码比特限制与第一阈值的比较和量化参数与第二阈值的比较来开启或关闭环路滤波器处理可以防止一次编码实现的缓冲器下溢。
[0046] 如所讨论的,经由比较器模块105将当前图像的最大编码比特限制与第一阈值进行比较。第一阈值可以是任何合适的值,并且可被表征为最大编码比特限制阈值。在一个实施例中,第一阈值是基于当前图像的图像分辨率的自适应阈值,使得当前图像的分辨率越高,第一阈值的值越高。可以使用任何一个或多个合适的技术基于当前图像的分辨率来调整第一阈值。在一些示例中,第一阈值是当前图像中的最大编码单元的总数和恒定值的乘积。
[0047] 同样如所讨论的,经由比较器模块105将当前图像的量化参数与第二阈值进行比较。第二阈值可以是任何合适的值,并且可被表征为量化参数阈值等。在一些示例中,第二阈值可以是恒定值。例如,第二阈值可以是大约46到51的值。例如,在一些编码上下文中,可用量化参数的范围可以是1到51,使得第二阈值是相对高的量化参数阈值。在其他编码上下文中,可用量化参数的范围可以是0到255,并且第二阈值在235-245的范围内,其中240是特别有利的。在一个实施例中,第二阈值是最大可用量化参数(例如,编码标准、编码配置文件等所允许的最大可用量化参数)的特定百分比。在一个实施例中,第二阈值不小于最大可用量化参数的90%。在一个实施例中,第二阈值不小于最大可用量化参数的94%。
[0048] 如所讨论的,如果最大编码比特限制与第一阈值相比不利并且量化参数与第二阈值相比有利,则比较器模块105向环路滤波器设置模块108提供信号以基于接收的信号将当前图像的环内滤波器指示符设置为关闭。同样如所讨论的,环内滤波器指示符指示CDEF、LRF或两者的使用,但不影响诸如去块滤波之类的其他滤波的使用。
[0049] 如果最大编码比特限制与第一阈值相比有利(例如,大于或不小于)或者量化参数与第二阈值相比不利(例如,小于或不大于),则比较器模块105向场景变化确定模块106提供信号。基于所接收的信号,场景变化确定模块106确定当前图像是否是场景变化图像(例如,当前图像是否与由视频121表示的内容中的场景变化相关联)。场景变化确定模块106可以使用任何一个或多个合适的技术来确定当前图像是否是场景变化图像。在一些示例中,场景变化确定模块106基于当前图像的时间复杂度(例如,如经由视频分析模块102确定)与任何数量的先前图像的平均时间复杂度的比较来确定当前图像是否是场景变化图像。例如,如果当前图像的时间复杂度比平均时间复杂度大了阈值量(例如,当前图像的时间复杂度与平均时间复杂度之间的差异大于阈值)或特定倍数(例如,当前图像的时间复杂度与平均时间复杂度的比率大于阈值)等,则当前图像被视为场景变化图像。
[0050] 如果确定当前图像是场景变化图像,则场景变化确定模块106向环路滤波器设置模块109提供信号,以基于作为场景变化图像的图像将当前图像的环内滤波器指示符设置为开启。另外,环路滤波器设置模块109经由环路滤波器指示符信号126向环路滤波器处理模块112提供当前图像的环内滤波器指示符,环路滤波器指示符信号126可包括如关于环路滤波器设置模块108所讨论的跳过指示符(SI)。
[0051] 如果确定当前图像不是场景变化图像,则场景变化确定模块106向编码结构自适应环路滤波器决策模块104提供信号。基于所接收的信号,编码结构自适应环路滤波器决策模块104基于包括当前图像的图像组的编码结构确定针对当前图像是在图像级别应用或跳过环内滤波(即,CDEF、LRF或两者)还是在图像级别执行这样的滤波,如下面进一步讨论的。
[0052] 基于关于是否要对当前图像执行环内滤波的确定,编码结构自适应环路滤波器决策模块104向环路滤波器图像级别评估模块107提供信号。如果该信号指示将不执行环内滤波(例如,环内滤波为关闭)使得当前图像是环内滤波跳过图像,则环路滤波器图像级别评估模块107向环路滤波器设置模块110提供信号以将当前图像的环内滤波器指示符设置为关闭。另外,环路滤波器设置模块110经由环路滤波器指示符信号126将当前图像的环内滤波器指示符提供给环路滤波器处理模块112。如果信号指示当前图像是环内滤波非跳过图像,则环路滤波器图像级别评估模块107向环路滤波器设置模块111提供开启信号并且环路滤波器处理模块112执行环内滤波(例如,CDEF、LRF或两者)。
[0053] 如所讨论的,环路滤波器决策模块103确定是否要在图像级别执行CDEF、LRF或两者,并且经由环路滤波器指示符信号126指示这样的决策。在比特流125中也提供这样的指示符(在熵编码之后)以供解码器使用。如本文进一步讨论的,可以对视频121的编码结构进行关于是否应用CDEF、LRF或两者的这种确定,并且还可以在编码单元(超级块或环路恢复单元)级别实现这种确定。讨论首先转向这样的环路滤波器决策所应用于的示例性环内滤波器处理。图2、图3、图4和图5示出了示例CDEF,并且图2、图4和图6示出了示例LRF。
[0054] 图2示出了根据本公开的至少一些实施方式布置的示例视频图像201。视频图像201可包括视频序列或片段的任何图像,诸如VGA、HD、全HD、4K、5K等视频帧。如图所示,视频图像201可被分割为如关于视频图像201的切片202示出的一个或多个切片。另外,视频图像
201可被分割为如关于超级块203示出的一个或多个超级块,超级块继而可被分割为一个或多个块205。在所示实施例中,视频图像201被分割为超级块,超级块被分割为块。然而,可以使用将帧划分为宏块、块、单元、子单元等的任何帧或图像结构。如本文所使用的,术语编码单元或只是单元可以指代视频图像的位于子图像和子切片级别的任何分区或子分区。例如,编码单元可以指代最大编码单元、预测单元、变换单元、宏块、编码块、预测块、变换块等。
[0055] 另外,如图2所示,视频图像201具有最大编码比特限制(MaxBits)212,量化参数(QP)213,图像类型214,以及与其对应的环路滤波器指示符(LF ON/OFF)215。QP 213是确定用于在量化期间将变换后的系数与有限步骤集合相关联的步长的任何合适的值或参数。例如,可以使用近似诸如离散余弦变换(DCT)之类的变换的整数变换将视频图像201的残差从空间域变换到频域。QP 213确定用于将变换后的系数与有限步骤集合相关联的步长,使得较低QP值保留更多信息,而较高QP值在量化的固有有损过程中丢失更多信息。图像类型214可以是任何图像类型,诸如帧内(I)、预测(P)、双向(B)、非参考B图像(B2)、参考B图像(B1或B)等。同样如图所示,视频图像201具有与其对应的图像级别(PL)CDEF组合216。PL CDEF组合216指示来自可用CDEF组合的可以用于诸如超级块203之类的特定超级块的CDEF组合。也就是说,PLCDEF组合216是从可用的CDEF组合中选择的,并且仅PL CDEF组合216可以用于视频图像201。另外,超级块203具有与其对应的超级块(SB)CDEF组合217。可以使用任何一个或多个合适的技术来确定SBCDEF组合217。值得注意的是,超级块203的任何块205仅可以使用SBCDEF组合217来执行其CDEF滤波。具体而言,在CDEF滤波期间,对于每个块205,确定块方向218,然后根据块方向218应用SB CDEF组合217,并且针对超级块203的每个块205重复这样的处理。对于下一个超级块,在仅使用下一个SB的SB CDEF组合的情况下针对其每个块重复该过程。
[0056] 图3示出了根据本公开的至少一些实施方式布置的示例约束方向增强滤波器(CDEF)方向300。例如,对于每个块205(请参考图2),使用任何一个或多个合适的技术(诸如基于重构像素的方向搜索)、使用模式匹配技术等来检测CDEF方向300之一。如图所示,每个块可以具有相应的方向d,其被索引为0(例如,相对于水平约成45°)、1(例如,相对于水平约成22.5°)、2(例如,约为水平)、3(例如,相对于水平约成157.5°)、4(例如,相对于水平约成135°)、5(例如,相对于水平约成112.5°)、6(例如,约为垂直)或7(例如,相对于水平约成
67.5°)。尽管关于8个可用方向进行了说明,但是可以使用任何合适数量的方向。在图3的上下文中,当检测到块的方向d时,沿着(如由匹配数字指示的)该方向施加约束线性去振铃滤波器,并且相对于方向d偏移45°施加低通滤波器,如下面在本文中关于图4和图5讨论的。
[0057] 图4示出了根据本公开的至少一些实施方式布置的待滤波的像素401和相邻像素402的示例像素值400。如图4所示,待滤波的像素401(例如,目标像素)具有像素值PV0,0并且被相邻像素402围绕,相邻像素402具有基于它们相对于待滤波的像素401的位置进行标记的像素值,其中+1是向右或向上一个像素位置,-3是向左或向下三个像素位置,诸如此类,使得例如相邻像素402b具有像素值PV+2,-2。
[0058] 图5示出了根据本公开的至少一些实施方式布置的示例约束方向增强滤波器(CDEF)组合501的示例滤波器抽头500。如图5所示,沿着检测到的方向504施加去振铃滤波器抽头502(标记为DR),同时相对于检测到的方向504未对准地(诸如,相对于检测到的方向504约成45°和135°)施加低通滤波器抽头503(标记为LP)。例如,以十字形状施加低通滤波器抽头503,其中该十字的一条线相对于块的检测方向约成45°。在图5中,在对待滤波的像素401进行滤波时不使用空白像素位置(例如,没有滤波器抽头)。
[0059] 当将CDEF组合501应用于像素值400时,通过将对应于去振铃滤波器抽头502和低通滤波器抽头503中的每一个的权重与对应的像素值相乘并对加权和求平均(例如,通过加权平均)或类似技术来确定待滤波的像素401的新值或滤波值。注意,滤波器抽头也位于待滤波的像素401(并且相应的权重被使用)。然而,当滤波器抽头位置处的像素值和待滤波的像素401的像素值相差大于阈值量时,可以丢弃滤波器抽头位置。例如,这种大的差异像素值可以指示图像细节,而不是需要通过去振铃滤波器或低通滤波器平滑的振铃或噪声。例如,如果相邻像素402b的像素值PV+2,-2与待滤波的像素401的像素值PV0,0之间的差异大于阈值,则在确定待滤波的像素401的新像素值时可以丢弃相邻像素402b的像素值PV+2,-2。类似的阈值可以应用于去振铃滤波器抽头502和低通滤波器抽头503的像素值。另外,去振铃滤波器抽头502和低通滤波器抽头503可以应用不同的阈值。在一个实施例中,阈值是基于本领域已知的CDEF组合的去振铃滤波器强度421和低通滤波器强度422来确定的。
[0060] 回到图2,视频图像201也被分割为如关于LRU 221所示的环路恢复单元(LRU)。例如,视频图像201被完全分割为LRU,为了呈现的清楚起见,未示出这些LRU。如关于LRU 221所示,每个LRU包括在水平维度和垂直维度上都延伸的像素阵列222(例如,具有像素值)。另外,每个LRU 221具有相应的水平滤波器系数和垂直滤波器系数,以供环路恢复滤波器223应用。也就是说,使用用于其每个滤波器抽头的水平和垂直滤波器系数将环路恢复滤波器223应用于每个像素222。如图所示,环路恢复滤波器223具有垂直滤波器224和水平滤波器
225。环路恢复滤波器223可以是任何2D可分离滤波器(例如,可分离成垂直滤波器224和水平滤波器225)。在一个实施例中,环路恢复滤波器223是维纳滤波器。在一个实施例中,环路恢复滤波器223是2D对称可分离维纳滤波器,其具有7个垂直滤波器抽头和7个水平滤波器抽头。
[0061] 如关于目标像素226所示,使用水平滤波器系数和垂直滤波器系数对每个像素222进行滤波,如分别由环路恢复滤波器223的水平滤波器225和垂直滤波器224使用像素210的一些相邻像素实现的。如本文所使用的,术语滤波器系数指示应用于特定滤波器抽头的滤波器系数或强度。例如,为0的滤波器系数将实现不使用抽头下的像素值来确定目标像素226的滤波像素值,并且为1的滤波器系数将实现充分利用抽头下的像素值来确定目标像素
226的滤波像素值(假设滤波器系数总和为1)。如图所示,为了确定目标像素226的滤波像素值,垂直滤波器224仅使用与垂直(V)维度对齐的像素值,并且水平滤波器225仅使用与水平(H)维度对齐的像素值。
[0062] 图6示出了根据本公开的至少一些实施方式布置的示例性环路恢复滤波器(LRF)223的示例滤波器抽头600。如图所示,沿着水平维度施加具有相应水平滤波器系数(标记为fH0-6)的水平滤波器抽头603,并且沿着垂直维度施加具有相应垂直滤波器系数(标记为fV0-6)的垂直滤波器抽头602。当将环路恢复滤波器223应用于目标像素226时,通过根据由为环路恢复滤波器223选择的水平和垂直滤波器系数定义的滤波器系数应用环路恢复滤波器223(例如,维纳滤波器)来确定目标像素226的新值或滤波值。这样的系数在滤波期间提供像素值加权。注意,滤波器抽头601也位于目标像素226处(并且相应的权重被使用)。通常,可以通过使所有垂直和水平滤波器系数和的总和为1来得到相应的系数值。在一些实施例中,分别应用水平滤波器225和垂直滤波器224。在这样的实施例中,滤波器抽头601的水平滤波器系数值为水平滤波器系数提供为1的求和,同样,滤波器抽头601的垂直滤波器系数值为垂直滤波器系数提供为1的求和。在一些实施例中,水平滤波器225和垂直滤波器224是对称的滤波器,使得fH0=fH6,fH1=fH5,fH2=fH4,fV0=fV6,fV1=fV5,并且fV2=fV4。在这样的实施例中,对于水平滤波器225和垂直滤波器224中的每一个,仅需要在比特流中指示三个系数。例如,对于水平滤波器225,如果fH0、fH1和fH2被指示,则可以从中得到fH6、fH5和fH4以及fH3(例如,fH0=fH6,fH1=fH5,fH2=fH4并且fH3=-2*(fH0+fH1+fH2))。
[0063] 现在回到图1,如所讨论的,编码结构自适应环路滤波器决策模块104确定是否要对当前图像执行环内滤波,使得当前图像是环内滤波跳过图像或环内滤波非跳过图像。编码结构自适应环路滤波器决策模块104可使用本文所讨论的任何技术基于视频121的编码结构来确定当前图像是环内滤波跳过图像还是环内滤波非跳过图像。在一个实施例中,编码结构自适应环路滤波器决策模块104确定当前图像是否是帧内图像,并且如果是,则编码结构自适应环路滤波器决策模块104将当前图像设置为环内滤波非跳过图像。
[0064] 在一些实施例中,系统100实现具有使用中的分层B结构的视频编码。在这样的实施例中,编码结构自适应环路滤波器决策模块104确定当前图像的图像类型,并且如果当前图像是非参考B图像(例如,不用于对图像组中的任何其他图像进行编码的B图像),则编码结构自适应环路滤波器决策模块104将当前图像设置为环内滤波跳过图像(例如,环内滤波器指示符被设置为关闭)。例如,这样的非参考B图像可被表征为B2图像。另外,在这样的实施例中,所有其他分层B结构图像类型(例如,I图像,B0图像,B图像,以及B1图像)都被设置为环内滤波非跳过图像(例如,环内滤波器指示符被设置为开启)。也就是说,当编码结构是分层B结构并且当前图像或单个图像是非参考B图像时,响应于单个图像是非参考B图像而将环内滤波器指示符设置为关闭。如本文所使用的,术语参考图像(任何类型)指示用于另一图像的运动估计和补偿的图像。另外,术语非参考图像(任何类型)指示不能用于另一图像的运动估计和补偿的图像。
[0065] 在具有使用中的分层B结构的其他实施例中,编码结构自适应环路滤波器决策模块104可以确定当前图像的图像类型,并且如果当前图像是低级别B图像(例如,非参考B图像或仅可以由非参考B图像引用的参考B图像;即,B1图像或B2图像),则编码结构自适应环路滤波器决策模块104将当前图像设置为环内滤波跳过图像(例如,环内滤波器指示符被设置为关闭)。另外,在这样的实施例中,所有其他分层B结构图像类型(例如,I图像、B0图像和B图像)都被设置为环内滤波非跳过图像(例如,环内滤波器指示符被设置为开启)。也就是说,当编码结构是分层B结构并且当前图像或单个图像是非参考B图像或仅可以由非参考B图像引用的参考B图像之一时,响应于单个图像是非参考B图像或仅可以由非参考B图像引用的参考B图像而将环内滤波器指示符设置为关闭。
[0066] 图7示出了根据本公开的至少一些实施方式布置的具有分层B结构的示例图像组700。如图7所示,图像组700包括图像710-718。在所示示例中,图像组700是按照显示顺序
720的一组8个图像(例如,GOP=8;不计算I图像710),从而表明显示顺序720(例如,0-8)遵循如下顺序:图像710,图像711,图像712,图像713,图像714,图像715,图像716,图像717,以及图像718。按照如下顺序的编码顺序725对图像700进行编码:图像710,图像718,图像714,图像712,图像711,图像713,图像716,图像715,以及图像717。
[0067] 图像组700的每个图像具有图像类型730,使得图像710是I图像,图像711是B2图像,图像712是B1图像,图像713是B2图像,图像714是B图像,图像715是B2图像,图像716是B1图像,图像717是B2图像,并且图像718是B0图像。例如,图像组700是提供分层B图像的编码上下文中的一组图像。在一个实施例中,图像组700是AV1编码上下文中的一组图像。尽管为了呈现的清楚而以特定细节示出,但是图像组700可包括合适顺序的任何合适图像类型的任何数量的图像。
[0068] 如所讨论的,图像组700具有显示顺序720,使得在解码时,图像710-718可以按照显示顺序720而被解码和显示。另外,图像组700具有与显示顺序720不匹配的编码顺序725。在一个实施例中,图像组700是I、B0、B、B1、B2图像,并且基于层级按照编码顺序725对图像组700进行编码。例如,图像组700可具有以下编码顺序:图像710,图像718。
[0069] 如关于图1所讨论的,在一些实施例中,编码结构自适应环路滤波器决策模块104可以确定当前图像的图像类型,并且当当前图像是非参考B图像(例如,不用于对图像组中的任何其他图像进行编码的B图像)时,编码结构自适应环路滤波器决策模块104将当前图像的环内滤波器指示符设置为关闭。另外,在这样的实施例中,所有其他分层B结构图像类型(例如,I图像,B0图像,B图像,以及B1图像)都被设置为环内非跳过图像(例如,环内滤波器指示符被设置为开启)。
[0070] 如图7所示,这种技术的实现提供了环内滤波器编码决策740。例如,响应于图像710是I图像且不是B2图像而对于图像710将环内滤波器指示符设置为开启,响应于图像711是B2图像而对于图像711将环内滤波器指示符设置为关闭,响应于图像712是B1图像且不是B2图像而对于图像712将环内滤波器指示符设置为开启,响应于图像713是B2图像而对于图像713将环内滤波器指示符设置为关闭,响应于图像714是B图像且不是B2图像而对于图像
714将环内滤波器指示符设置为开启,响应于图像715是B2图像而对于图像715将环内滤波器指示符设置为关闭,响应于图像716是B1图像且不是B2图像而对于图像716将环内滤波器指示符设置为开启,响应于图像717是B2图像而对于图像717将环内滤波器指示符设置为关闭,并且响应于图像718是B0图像且不是B2图像而对于图像718将环内滤波器指示符设置为开启。
[0071] 同样如关于图1所讨论的,在其他实施例中,编码结构自适应环路滤波器决策模块104可以确定当前图像的图像类型,并且如果当前图像是低级别B图像以使得低级别B图像是非参考B图像或仅可以由非参考B图像引用的参考B图像(例如,B1图像或B2图像),则编码结构自适应环路滤波器决策模块104将当前图像的环内滤波器指示符设置为关闭。另外,在这样的实施例中,所有其他分层B结构图像类型(例如,I图像、B0图像和B图像)都被设置为环内非跳过图像(例如,环内滤波器指示符被设置为开启)。
[0072] 如图7所示,这种技术的实现提供了环内滤波器编码决策750。例如,响应于图像710是I图像且不是B2图像或B1图像而对于图像710将环内滤波器指示符设置为开启,响应于图像711是B2图像而对于图像711将环内滤波器指示符设置为关闭,响应于图像712是B1图像而对于图像712将环内滤波器指示符设置为关闭,响应于图像713是B2图像而对于图像
713将环内滤波器指示符设置为关闭,响应于图像714是B图像且不是B2图像或B1图像而对于图像714将环内滤波器指示符设置为开启,响应于图像715是B2图像而对于图像715将环内滤波器指示符设置为关闭,响应于图像716是B1图像而对于图像716将环内滤波器指示符设置为关闭,响应于图像717是B2图像而对于图像717将环内滤波器指示符设置为关闭,并且响应于图像718是B0图像且不是B2图像或B1图像而对于图像718将环内滤波器指示符设置为开启。
[0073] 回到图1,如所讨论的,编码结构自适应环路滤波器决策模块104可基于与对包括当前图像的图像组进行编码相关联的编码结构来确定是否要对当前图像执行环内滤波。在一些实施例中,系统100实现具有低延迟编码结构的视频编码。例如,这样的低延迟编码结构可以将图像组的显示顺序和编码顺序限制为相同和/或提供其他编码限制。在这样的实施例中,编码结构自适应环路滤波器决策模块104通过按照固定图像间隔应用环内滤波器跳过和非跳过指示符来确定是否要对当前图像执行环内滤波。固定图像间隔可以以任何合适的频率(诸如每隔一个图像、每三个图像或者甚至更频繁地)提供环内滤波器跳过图像,其中每三个图像或每四个图像等发生环内滤波器非跳过图像。
[0074] 图8示出了根据本公开的至少一些实施方式布置的具有低延迟编码结构的示例图像组800。如图8所示,图像组800包括图像810-818。在所示示例中,图像组800是具有显示顺序819和与图像810-818相同顺序的编码顺序的图像组。另外,图像组800包括两种或更多种图像类型,使得图像810可以是高级别图像或I图像或参考图像等,并且图像811-818可以是低级别图像或非参考图像等。例如,图像组800是具有低延迟编码结构的编码上下文中的一组图像。尽管为了呈现的清楚而以特定细节示出,但是图像组800可包括合适顺序的任何合适图像类型的任何数量的图像。
[0075] 如关于图1所讨论的,在一些实施例中,编码结构自适应环路滤波器决策模块104通过按照固定图像间隔应用环内滤波器跳过和非跳过指示符来确定是否要对当前图像执行环内滤波。如图8所示,按照每隔一个图像的固定间隔实现这种技术提供了环内滤波器决策820。在这样的实施例中,响应于图像810是诸如I图像或参考图像之类的高级别图像,对于图像810将环内滤波器指示符设置为开启。作为高级别图像的图像810可以标记或提供用于按照固定图像间隔实现环内滤波器跳过和非跳过的起始点。如图所示,对于图像811、813、815和817将环内滤波器指示符设置为关闭,使得基于每隔一个图像的固定图像间隔以每隔一个图像方式将环内滤波设置为关闭,并且基于每隔一个图像的固定图像间隔对于图像812、814、816、818将环内滤波器指示符设置为开启。
[0076] 同样如所讨论的,固定图像间隔可以以任何合适的频率(诸如每隔一个图像(例如,如关于环内滤波器决策820所示)、每三个图像或甚至更频繁地)提供环内滤波跳过图像,其中每三个图像或每四个图像等发生环内滤波非跳过图像。例如,环内滤波器决策830示出了其中每三个图像将环内滤波器指示符设置为关闭的示例(例如,使得对于图像812、815和818将环内滤波器指示符设置为关闭并且对于图像810、811、813、814、816和817将环内滤波器指示符设置为开启)。另外,环内滤波器决策840示出了其中每三个图像将环内滤波器指示符设置为开启的示例(例如,使得对于图像813和816将环内滤波器指示符设置为开启并且对于图像811、812、814、815、817和818将环内滤波器指示符设置为关闭)。
[0077] 回到图1,如所讨论的,编码结构自适应环路滤波器决策模块104可以使用任何一个或多个合适的技术来确定是否执行环内滤波。在一些实施例中,系统100实现具有自适应量化参数低延迟编码结构的视频编码。例如,这种自适应量化参数低延迟编码结构可以将图像组的显示顺序和编码顺序限制为相同但是可以提供自适应量化参数(例如,针对需要较高质量的图像的较低QP和针对允许较低质量的图像的较高QP)。这种自适应量化参数低延迟编码结构可以允许速率控制模块101和/或系统100的其他模块为图像组中的不同图像提供不同的量化参数。在这样的实施例中,编码结构自适应环路滤波器决策模块104响应于为图像提供的量化参数而确定是否对当前或单个图像应用环内滤波。在一个实施例中,当(例如,经由速率控制模块101)为图像确定高量化参数时,编码结构自适应环路滤波器决策模块104将该图像设置为环内滤波器跳过图像,并且当(例如,经由速率控制模块101)为图像确定低量化参数时,编码结构自适应环路滤波器决策模块104将该图像设置为环内滤波器非跳过图像。
[0078] 图9示出了根据本公开的至少一些实施方式布置的具有自适应量化参数低延迟编码结构的示例图像组900。如图9所示,图像组900包括图像910-918。在所示示例中,图像组900是按照显示顺序919和与图像910-918相同顺序的编码顺序的图像组。另外,图像组900具有两种或更多种图像类型,使得图像910是高级别图像或I图像或参考图像等,并且图像
911-918是低级别图像或非参考图像等。另外,在图像911-918中,一些图像是低量化参数图像,并且其他图像是高量化参数图像。在一个实施例中,图像911、913、915和917是高量化参数图像(例如,较低质量的图像),并且图像912、914、916和918是低量化参数图像(例如,较高质量的图像)。尽管为了呈现的清楚而以特定细节示出,但是图像组900可以包括合适顺序的任何合适图像类型的任何数量的图像。具体而言,在一些示例中,高量化参数图像和低量化参数图像可以不是交替的。
[0079] 如关于图1所讨论的,在一些示例中,编码结构自适应环路滤波器决策模块104响应于为图像提供的量化参数而确定是否对当前或单个图像应用环内滤波,使得当与图像相关联的量化参数是高级别(例如,高)量化参数时,跳过环内滤波,并且当与图像相关联的量化参数是低级别(例如,低)量化参数时,应用环内滤波。以这种方式,用指派给图像的量化参数跟踪环内滤波器跳过图像和环内滤波器非跳过图像,使得高质量图像是环内滤波器非跳过图像并且低质量图像是环内滤波器跳过图像。在一个实施例中,编码结构自适应环路滤波器决策模块104可以如关于环内滤波器决策920所示确定环内滤波器跳过和非跳过图像,使得针对图像911、913、915和917将环内滤波器指示符设置为关闭并且针对图像910、912、914、916和918将环内滤波器指示符设置为开启。
[0080] 可以使用任何一个或多个合适的技术来提供这样的设置。在一个实施例中,编码结构自适应环路滤波器决策模块104将图像量化参数与阈值进行比较。当量化参数与阈值相比有利时,环内滤波器指示符被设置为关闭,并且当量化参数与阈值相比不利时,环内滤波器指示符被设置为开启。在一个实施例中,编码结构自适应环路滤波器决策模块104将图像量化参数与显示顺序919中的紧接在前图像的量化参数进行比较,使得当图像量化参数大于紧接在前图像的量化参数时,环内滤波器指示符被改变为关闭或者保持关闭,并且当图像量化参数小于紧接在前图像的量化参数时,环内滤波器指示符被改变为开启或者保持开启。
[0081] 回到图1,如所讨论的,环路滤波器设置模块108-111将视频121的图像的环路滤波器指示符信号126提供给环路滤波器处理模块112。如果图像的环内滤波器指示符指示将在图像级别跳过环内滤波,则环路滤波器处理模块112可以跳过图像的CDEF和/或LRF处理,并且环路滤波器处理模块112可以经由环路滤波器指示符和参数信号124向熵编码器113提供相关的环内滤波器指示符,熵编码器113对跳过指示符进行熵编码以便包含在比特流125中。例如,这样的环内滤波指示符或标志等(例如,指示是否对图像执行环内滤波)可被包括在比特流125的报头(诸如切片报头等)中。
[0082] 如果环路滤波器指示符信号126指示对于图像不执行环内滤波,则环路滤波器处理模块112对于图像跳过CDEF和/或LRF中的一者或两者。如果环路滤波器指示符信号126指示对于图像将执行环内滤波,则环路滤波器处理模块112可使用任何一个或多个合适的技术来处理图像。在一些实施例中,确定环内滤波器非跳过图像与其参考图像(例如,正在参考其对环内滤波器非跳过图像进行编码的图像)是否匹配,并且如果环内滤波器非跳过图像与其参考图像匹配,则环内滤波器非跳过图像可被改变为环内滤波器跳过图像(例如,可以针对图像将环内滤波器指示符从开启改变为关闭)。可以使用任何一个或多个合适的技术来确定图像和参考图像是否匹配。在一些实施例中,该确定可以基于图像的所有编码单元都是运动估计跳过块或单元。例如,在执行运动估计编码之后,如果图像的所有编码单元都是跳过块或单元(例如,每个块具有零运动矢量),则可以确定图像和参考图像匹配。
[0083] 如果基于图像和参考图像匹配将环内非跳过图像改变为环内滤波器跳过图像,则如所讨论的经由环路滤波器指示符和参数信号124将这样的指示符或标志提供给熵编码器113以便包含在比特流125中,并且不对图像执行环内滤波。如果未将当前图像改变为环内滤波器跳过图像,则经由环路滤波器指示符和参数信号124将环内滤波器非跳过图像标志或指示符提供给熵编码器113以便包含在比特流125中,并且执行环内滤波。例如,环内滤波器指示符可被包括在比特流125的切片报头等中。当执行环内滤波时,确定CDEF组合和LRF滤波器系数以及执行环内滤波所需的任何其他参数。经由环路滤波器指示符和参数信号
124将这样的CDEF组合和LRF滤波器系数提供给熵编码器113以便包含在比特流125中。
[0084] 另外,环路滤波器处理模块112可以继续对环内滤波器非跳过图像的编码单元级别环内滤波器处理决策。例如,判定是否要在图像级别执行环内滤波(例如,图像级别环内滤波器指示符被设置为开启),可以应用自适应编码单元级别环内滤波器处理决策以进一步简化环内滤波处理。
[0085] 在一些实施例中,对于环内滤波非跳过图像,环路滤波器处理模块112确定当前环内滤波非跳过图像的编码单元(例如,超级块或LRU)是否在静态区域中(例如,当前环内滤波非跳过图像的编码单元具有零运动矢量)或者当前环内滤波非跳过图像的编码单元与其参考编码单元(例如,来自正在用于对编码单元进行编码的参考图像的编码单元)之间的预测残差(例如,运动预测残差)是否小于阈值。如果是,则针对编码单元将编码单元环内滤波编码标志设置为跳过(例如,对于这样的超级块或LRU,跳过环内滤波)。如果不是,则可以针对编码单元将编码单元环内滤波器指示符设置为开启,并且使用任何一个或多个合适的技术对编码单元执行CDEF或LRF。可以对图像的任何或所有编码单元(例如,超级块或LRU)重复这样的处理,并且经由环路滤波器指示符和参数信号124将得到的编码单元级别环内滤波器指示符提供给熵编码器113以进行熵编码并包含在比特流125中。
[0086] 在其他实施例中,对于环内滤波非跳过图像,环路滤波器处理模块112确定当前环内滤波非跳过图像的编码单元(例如,超级块或LRU)是否具有零运动矢量(例如,编码单元的运动矢量是零运动矢量)以及与其参考编码单元(例如,来自正在用于对编码单元进行编码的参考图像的编码单元)相关联的量化参数与阈值相比是否有利。如果是,则针对编码单元将编码单元级别环内滤波器指示符设置为跳过,并且当前环内滤波非跳过图像的编码单元的环内滤波器参数(CDEF或LRF参数)被从参考编码单元复制(而不是被确定)。例如,先前为参考编码单元确定的环内滤波参数被复制用于当前编码单元,并且经由环路滤波器指示符和参数信号124而被提供,以便经由熵编码器113进行熵编码并包含在比特流125中。环内滤波参数的这种复制提供了计算节省。
[0087] 可以使用任何一个或多个合适的技术来确定当前环内滤波非跳过图像的编码单元是否与其参考编码单元相同。在一些实施例中,当当前环内滤波非跳过图像的编码单元与参考编码单元之间的残差(例如,差异)小于阈值时,确定当前环内滤波非跳过图像的编码单元与其参考编码单元相同。例如,残差可以是编码单元的逐像素残差的平方的总和。
[0088] 本文讨论的技术可以提供视频数据的有效和高效压缩。这样的技术可以提供计算效率,并且可以有利地经由硬件来实现。另外,这样的技术可以提供环内滤波图像级别和/或编码单元级别跳过决策,这些决策减少环内滤波处理并且相对于完全环内滤波编码实现类似的主观质量。当经由设备来实现时,这样的技术提供改进的计算时间、功率使用以及改进的客观和主观视频质量。
[0089] 图10是示出根据本公开的至少一些实施方式布置的用于视频编码的示例过程1000的流程图,视频编码包括环内滤波图像级别和编码单元级别跳过决策。过程1000可包括如图10所示的一个或多个操作1001-1011。过程1000可以由设备(例如,如本文所讨论的系统100)执行以对输入视频进行编码。
[0090] 过程1000开始于操作1001,其中使用任何一个或多个合适的技术来接收用于编码的图像、该图像的最大编码比特限制、该图像的图像级别量化参数以及该图像的视频分析。可以使用任何一个或多个合适的技术来生成图像的最大编码比特限制、图像的图像级别量化参数和图像的视频分析。在一个实施例中,在对每个图像进行编码时,应用速率控制以确定当前图像所可以使用的量化参数和最大比特数。
[0091] 处理在决策操作1002处继续,其中确定是否最大编码比特限制与第一阈值相比不利并且图像级别量化参数与第二阈值相比有利。如果是,则处理在操作1005处继续,其中对于图像将图像级别环内滤波器指示符设置为关闭。在一个实施例中,图像级别环内滤波器指示符是CDEF关闭。在一个实施例中,图像级别环内滤波器指示符是LRF关闭指示符。在一个实施例中,图像级别环内滤波器指示符指示CDEF和LRF都是关闭指示符。如本文所讨论的,图像级别环内滤波器指示符不影响去块滤波。
[0092] 例如,如果对于当前图像最大比特小于阈值T1并且量化参数大于另一阈值T2,则在图像级别将环内滤波器设置为关闭。例如,对于基于速率控制的环内滤波器开启/关闭决策,在某些情况下,关闭环内滤波器以防止一次编码中的缓冲器下溢是有利的。如所讨论的,使用两个阈值:最大编码比特限制阈值T1和量化参数阈值T2。在一个实施例中,最大编码比特限制阈值是图像分辨率自适应值,使得分辨率越高,阈值的值越高。在一个实施例中,最大编码比特限制阈值被确定为与当前图像中的块(例如,编码单元)的总数相乘的常数。在一个实施例中,量化参数阈值T2是常数,并且当最大量化参数是55时,量化参数阈值T2可以在例如46到51的范围内,或者当最大量化参数是255时,量化参数阈值T2可以在235到245的范围内。
[0093] 如果最大编码比特限制与第一阈值相比有利或者图像级别量化参数与第二阈值相比不利,则处理在决策操作1003处继续,其中确定图像是否是场景变化图像。可以使用本文讨论的任何一个或多个合适的技术进行这样的确定。在一个实施例中,经由在操作1001处接收的视频分析来指示关于图像是否是场景变化图像的判定。如果图像是场景变化图像,则处理在操作1006处继续,其中对于图像将图像级别环内滤波器指示符设置为开启。在一个实施例中,图像级别环内滤波器指示符是CDEF开启指示符。在一个实施例中,图像级别环内滤波器指示符是LRF开启指示符。在一个实施例中,图像级别环内滤波器指示符指示CDEF和LRF都是开启指示符。例如,如果当前图像被检测为场景变化图像,则在图像级别将环内滤波器设置为开启,这可以在比特流的切片报头中指示。
[0094] 如果当前图像不是场景变化图像,则处理在决策操作1004处继续,其中确定是要对当前图像执行环内滤波(例如,环内滤波器指示符开启)还是不要对当前图像执行环内滤波(例如,环内滤波器指示符关闭)。使用本文讨论的任何一个或多个合适的技术进行这样的确定。例如,如果当前图像被检测为非场景变化图像,则应用基于编码结构的自适应环内滤波器开启/关闭分析。
[0095] 在一个实施例中,当当前图像是I图像时,将环内滤波器指示符设置为开启。在一个实施例中,当实现分层B编码结构时,对于所有非参考B图像(例如,B2图像),将环内滤波器被设置为关闭,否则将环内滤波器设置为开启。在另一实施例中,当实现分层B编码结构时,对于所有非参考B图像(例如,B2图像)和仅可以由非参考B图像引用的参考B图像(例如,B1图像),将环内滤波器设置为关闭,否则将环内滤波器设置为开启。在一个实施例中,当使用低延迟编码结构(例如,没有B帧)时,利用固定图像间隔将环内滤波器设置为开启。在一个实施例中,对于具有偶数索引(例如,按照以作为第0图像的参考图像开始的编码顺序的图像编号)的图像,将环内滤波器设置为开启,并且对于具有奇数索引的图像,将环内滤波器设置为关闭。在一个实施例中,当与低延迟编码结构一起使用自适应量化参数分配时,对于良好质量的图像(例如,低QP图像),将环内滤波器设置为开启,并且对于其他帧(例如,高QP图像),将环内滤波器设置为关闭。
[0096] 如图所示,当针对当前图像将环内滤波器设置为关闭时,处理在操作1005处继续,并且当针对当前图像将环内滤波器设置为开启时,处理在操作1006处继续,如上面所讨论的。从操作1006,处理在决策操作1007处继续,其中确定当前图像是否与当前图像的参考图像相同。如果是,则处理在操作1005处继续,其中将环内滤波器设置为关闭(例如,从开启变为关闭),如所讨论的。可以使用任何一个或多个合适的技术来确定当前图像是否与当前图像的参考图像相同。在一些实施例中,该确定基于图像的所有编码单元都是运动估计跳过块或单元,所以在执行运动估计编码之后,如果图像的所有编码单元都是跳过块或单元(例如,每个块具有零运动矢量),则图像和参考图像被视为匹配。
[0097] 如果在决策操作1007处当前图像和参考图像不被视为匹配,则处理在决策操作1008处继续,其中针对图像的每个编码单元(CU)确定该编码单元是否与其参考编码单元匹配。如果是,则在一个实施例中,在操作1009处,将编码单元的环内滤波器指示符(例如,编码单元级别环内滤波器指示符)设置为关闭并且对于编码单元跳过环内滤波(例如,环内滤波器参数估计和参数编码)。在另一实施例中,在操作1009处,当编码单元与其参考编码单元匹配时,使用来自参考编码单元(例如,参考图像中的同位编码单元)的环内滤波器参数对当前块执行环内滤波。可以使用任何一个或多个合适的技术来确定编码单元是否与其参考编码单元匹配。在一些实施例中,处于纯静态区域中或具有几乎为零的运动预测残差(例如,逐像素残差的平方或绝对值的总和小于阈值)并且没有量化参数变化(例如,相对于相邻编码单元)的编码单元指示编码单元与其参考编码单元匹配。在一个实施例中,当在没有量化参数变化的情况下编码单元位于纯静态区域中或者运动预测残差几乎为零时,将编码单元环内滤波器设置为关闭。在一个实施例中,当编码单元的运动矢量为零并且其参考编码单元具有大于阈值的量化参数时,当前编码单元跳过环内滤波器参数估计并且重用其在参考帧中的同位块的环内滤波器参数。
[0098] 如图所示,当在决策操作1008处完成处理所有编码单元(如“最后一个CU”所指示)时或从操作1005,处理在操作1010处继续,其中将图像、图像级别环内滤波器指示符和编码单元级别环内滤波器指示符(如果有的话)编码到诸如符合标准的比特流之类的比特流中。如将认识到,仅对具有设置为开启的环内滤波器指示符的那些图像和编码单元执行环内滤波,这可以节省大量的处理资源和时间。
[0099] 图11示出了根据本公开的至少一些实施方式布置的示例比特流1100。在一些示例中,比特流1100可以对应于如图1所示的比特流125。如图11所示,在一些实施例中,比特流1100包括报头部分1101和数据部分1102。报头部分1101可包括诸如图像级别环内滤波器指示符1111和其他指示符1112之类的指示符。例如,环内滤波器指示符1111可包括指示是否要对视频的特定图像执行环内滤波(例如,利用CDEF和/或LRF处理的解码)的指示符或标志或比特等。例如,图像级别环内滤波器指示符1111可包括用于视频的特定图像的环内指示符或标记。另外,数据部分1102可包括用于环内滤波器非跳过图像的环内滤波器参数数据
1121,其被指示为经由环内滤波器指示符1111编码的环内滤波器。例如,环内滤波器参数数据1121可包括CDEF参数、LRF参数等。另外,环内滤波器参数数据1121可包括如本文所讨论的编码单元级别环内滤波器指示符。这样的环内滤波器参数数据1121可包括例如用于提供用于重构图像等的滤波器的参数。
[0100] 图12示出了根据本公开的至少一些实施方式布置的集成有自适应环内滤波的示例编码器1200的框图。如图所示,编码器1200包括环路滤波器决策模块103,环路滤波器处理模块112,编码控制器1203,变换和量化模块1204,逆量化和变换模块1205,去块模块1206,图像缓冲器1207,帧内预测模块1208,帧间预测模块1209,模式选择模块1213,以及熵编码器113。编码器1200可包括附加模块(诸如系统100的其他模块)和/或为了呈现的清楚起见而未示出的互连。
[0101] 如图12所示,编码器1200接收输入视频121。输入视频121可以是任何合适的格式,并且可以经由任何合适的技术(诸如视频捕获)或经由存储器等来接收。另外,可以处理(未示出)输入视频121以确定视频帧的部分(例如,超级块,环路恢复单元,块,变换块,或视频帧的任何其他部分)。如图所示,输入视频121可被提供给编码控制器1203、帧内预测模块1208和帧间预测模块1209。如图所示,可以经由模式选择模块1213进行与帧内预测模块
1208或帧间预测模块1209的耦合。例如,模式选择模块1213可以对输入视频121的视频帧的部分做出最终模式决策。
[0102] 在一些实施例中,如关于图1所讨论的,编码器1200可包括速率控制模块101和视频分析模块102。如所讨论的,基于对输入视频的评估,在图像和/或编码单元级别做出环内滤波决策,使得可以根据环路滤波器指示符信号126和/或对环内滤波器指示符为开启的那些图像的进一步分析来选择性地实现环内滤波器处理或绕过环内滤波器处理(如由环路滤波器处理模块112执行的)。
[0103] 如图所示,模式选择模块1213(例如,经由开关)可以基于最小编码成本等在最佳帧内预测模式和最佳帧间预测模式之间为编码单元或块等进行选择。基于模式选择,可以经由差分器1211将视频帧的预测部分与(例如,输入视频121的)视频帧的原始部分进行区分以生成残差。该残差可被传送到变换和量化模块1204,其可以变换(例如,经由离散余弦变换等)残差以确定变换系数并使用本文讨论的帧级别QP来量化变换系数。可以经由熵编码器113将量化的变换系数编码到编码比特流125中。诸如运动矢量残差、模式数据、变换大小数据等的其他数据也可被编码并插入到视频帧的该部分的编码比特流125中。
[0104] 另外,可以经由逆量化和变换模块1205对量化的变换系数进行逆量化和逆变换,以生成重构的残差。可以在加法器1212处将重构的残差与前述预测部分进行组合以形成重构的部分,重构的部分可以经由去块模块1206而被去块并被可选地环内滤波(例如,使用CDEF和/或LRF技术)以生成重构的图像。重构的图像然后被保存到图像缓冲器1207并被用于对当前或其他视频帧的其他部分进行编码。可以对输入视频121的每个视频帧重复这样的处理。
[0105] 图13是示出根据本公开的至少一些实施方式布置的用于视频编码的示例过程1300的流程图,视频编码包括自适应地启用和禁用环路滤波。过程1300可包括如图13所示的一个或多个操作1301-1303。过程1300可以形成视频编码过程的至少一部分。作为非限制性示例,过程1300可以形成如由本文讨论的任何设备或系统(诸如系统100或编码器1200)执行的视频编码过程的至少一部分。另外,本文将参考图14的系统1400来描述过程1300。
[0106] 图14是根据本公开的至少一些实施方式布置的用于视频编码的示例系统1400的说明图,视频编码包括自适应地启用和禁用环路滤波。如图14所示,系统1400可包括中央处理器1401、视频处理器1402和存储器1403。同样如图所示,视频处理器1402可包括或实现速率控制模块101、视频分析模块102、环路滤波器决策模块103、环路滤波器处理模块112和熵编码器113。在一个实施例中,存储器1403实现图像缓冲器1207。另外,在系统1400的示例中,存储器1403可存储视频数据或相关内容,诸如图像数据、编码单元数据、最大编码比特限制数据、量化参数、场景变化数据、图像组数据、图像类型数据、比特流数据和/或如本文所讨论的任何其他数据。
[0107] 如图所示,在一些实施例中,速率控制模块101、视频分析模块102、环路滤波器决策模块103、环路滤波器处理模块112和熵编码器113经由视频处理器1402来实现。在其他实施例中,速率控制模块101、视频分析模块102、环路滤波器决策模块103、环路滤波器处理模块112和熵编码器113中的一个或多个或部分经由中央处理器1401或诸如图像处理器、图形处理器等的另一处理单元来实现。
[0108] 视频处理器1402可包括任何数量和类型的可以提供如本文所讨论的操作的视频、图像或图形处理单元。这样的操作可以经由软件或硬件或其组合来实现。例如,视频处理器1402可包括专用于操纵从存储器1403获得的图像、图像数据等的电路。中央处理器1401可包括任何数量和类型的可以提供系统1400的控制和其他高级功能和/或提供如本文所讨论的任何操作的处理单元或模块。存储器1403可以是任何类型的存储器,诸如易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如,闪速存储器等)等。在非限制性示例中,存储器1403可以由高速缓冲存储器实现。
[0109] 在一个实施例中,速率控制模块101、视频分析模块102、环路滤波器决策模块103、环路滤波器处理模块112和熵编码器113中的一个或多个或部分经由执行单元(EU)来实现。EU可包括例如可编程的逻辑或电路,诸如一个或多个逻辑核,其可以提供各种各样的可编程逻辑功能。在一个实施例中,速率控制模块101、视频分析模块102、环路滤波器决策模块
103、环路滤波器处理模块112和熵编码器113中的一个或多个或部分经由诸如固定功能电路等的专用硬件来实现。固定功能电路可包括专用的逻辑或电路,并且可提供一组固定功能入口点,其可以映射到用于固定目的或功能的专用逻辑
[0110] 回到图13的讨论,过程1300可以在操作1301处开始,其中,对于图像组中的单个图像,确定最大编码比特限制和量化参数。可以使用任何一个或多个合适的技术来生成最大编码比特限制和量化参数。
[0111] 处理在操作1302处继续,其中至少部分地基于最大编码比特限制与第一阈值的比较和量化参数与第二阈值的比较来设置单个图像的环内滤波器指示符。在一个实施例中,当最大编码比特限制与第一阈值相比不利并且量化参数与第二阈值相比有利时,将单个图像的环内滤波器指示符设置为关闭。
[0112] 在一个实施例中,当最大编码比特限制与第一阈值相比有利或者量化参数与第二阈值相比不利时,过程1300还包括:确定单个图像是否是场景变化图像,以及当确定单个图像是场景变化图像时将环内滤波器指示符设置为开启。
[0113] 在一个实施例中,当最大编码比特限制与第一阈值相比有利或者量化参数与第二阈值相比不利时,过程1300还包括基于与对图像组进行编码相关联的编码结构来设置单个图像的环内滤波器指示符。在一个实施例中,编码结构是分层B结构,单个图像是非参考B图像,并且设置单个图像的环内滤波器指示符包括响应于单个图像是非参考B图像而将环内滤波器指示符设置为关闭。在一个实施例中,编码结构是分层B结构,单个图像包括非参考B图像或仅可以由非参考B图像引用的参考B图像中的至少一个,并且设置单个图像的环内滤波器指示符包括响应于单个图像是非参考B图像或仅可以由非参考B图像引用的参考B图像而将环内滤波器指示符设置为关闭。在一个实施例中,编码结构是对于除了图像组的第一时间图像之外的图像具有恒定的最大编码比特限制的低延迟编码结构,并且设置单个图像的环内滤波器指示符包括按照固定图像间隔针对图像组将环内滤波器指示符设置为关闭。在一个实施例中,编码结构是自适应量化参数低延迟编码结构,并且设置单个图像的环内滤波器指示符包括当高量化参数与单个图像相关联时将环内滤波器指示符设置为关闭以及当低量化参数与单个图像相关联时将环内滤波器指示符设置为开启。在一个实施例中,编码结构包括至少一个I图像,单个图像是I图像,并且设置环内滤波器指示符包括响应于单个图像是I图像而将环内滤波器指示符设置为开启。
[0114] 在一个实施例中,当针对单个图像将环内滤波器指示符设置为开启时,过程1300还包括确定单个图像与和单个图像相关联的参考图像匹配以及响应于单个图像与参考图像匹配而在对单个图像进行编码之前将单个图像的环内滤波器指示符设置为关闭。
[0115] 在一个实施例中,当针对单个图像将环内滤波器指示符设置为开启时,过程1300还包括:针对单个图像的编码单元,确定与该编码单元相关联的运动矢量是零运动矢量并且/或者与编码相关联的预测残差与第三阈值相比不利中的至少一者,响应于具有零矢量运动矢量的编码单元和/或与第三阈值相比不利的预测残差而将编码单元的编码单元级别环内滤波器指示符设置为关闭,以及响应于编码单元级别环内滤波器指示符对于编码单元为关闭而对于编码单元跳过环内滤波。
[0116] 在一个实施例中,当针对单个图像将环内滤波器指示符设置为开启时,过程1300还包括:针对单个图像的编码单元,确定与该编码单元相关联的运动矢量是零运动矢量并且与该编码单元相对应的参考编码单元具有与第三阈值相比有利的量化参数,响应于具有零矢量运动矢量的编码单元和/或与第三阈值相比不利的预测残差而将编码单元的编码单元级别环内滤波器指示符设置为跳过,响应于编码单元级别环内滤波器指示符对于编码单元为跳过而对于编码单元跳过环内滤波器选择,以及使用来自参考编码单元的环内滤波器参数对编码单元执行环内滤波。
[0117] 处理在操作1303处继续,其中至少部分地基于环内滤波器指示符对单个图像进行编码以生成比特流。例如,当环内滤波器指示符被设置为关闭时,针对单个图像跳过约束方向增强滤波或环路恢复滤波中的一者或两者。当环内滤波器指示符被设置为开启时,针对单个图像应用约束方向增强滤波或环路恢复滤波中的一者或两者,需要注意的是可能跳过一些编码单元。在一个实施例中,比特流是符合开放媒体联盟的比特流,并且环内滤波器指示符指示是否针对单个图像的所有编码单元实现约束方向增强滤波器或环路恢复滤波器中的至少一个。
[0118] 对于任何数量的图像或视频片段等,过程1300可被串行或并行地重复任何次数。如所讨论的,过程1300可以提供包括约束方向增强滤波器选择的视频编码。
[0119] 本文描述的系统的各种组件可以用软件、固件和/或硬件和/或其任何组合来实现。例如,可以至少部分地通过诸如可以在计算系统(例如,智能电话)中找到的计算片上系统(SoC)的硬件来提供本文讨论的系统或设备的各种组件。本领域技术人员可以认识到,本文描述的系统可包括尚未在相应附图中描绘的附加组件。例如,本文讨论的系统可包括为了清楚起见而尚未描绘的附加组件,诸如比特流复用器或解复用器模块等。
[0120] 虽然本文讨论的示例过程的实施方式可包括以所示顺序进行所示的所有操作,但是本公开在这方面不受限制,并且在各种示例中,本文的示例过程的实施方式可以包括仅所示操作的子集、以与所示顺序不同的顺序执行的操作或者额外的操作。
[0121] 此外,可以响应于由一个或多个计算机程序产品提供的指令而进行本文讨论的任何一个或多个操作。这样的程序产品可包括提供指令的信号承载介质,所述指令在由例如处理器执行时可提供本文描述的功能。计算机程序产品可以以一个或多个机器可读介质的任何形式提供。因此,例如,包括一个或多个图形处理单元或处理器核的处理器可以响应于由一个或多个机器可读介质传送到该处理器的程序代码和/或指令或指令集而进行本文的示例过程的一个或多个块。一般而言,机器可读介质可以以程序代码和/或指令或指令集的形式传送软件,其可使本文描述的任何设备和/或系统实现本文讨论的至少部分操作和/或如本文讨论的设备、系统或任何模块或组件的任何部分。
[0122] 如在本文描述的任何实施方式中使用的,术语“模块”指代被配置为提供本文描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路的任何组合。软件可被体现为软件包、代码和/或指令集或指令,并且如在本文描述的任何实施方式中使用的“硬件”可以(例如,单独地或以任何组合方式)包括硬连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路和/或存储由可编程电路执行的指令的固件。模块可以共同地或单独地体现为形成更大系统的一部分的电路,例如集成电路(IC)、片上系统(SoC)等。
[0123] 图15是根据本公开的至少一些实施方式布置的示例系统1500的说明图。在各种实施方式中,系统1500可以是移动系统,但是系统1500不限于该上下文。例如,系统1500可被包含到以下各项中:个人计算机(PC),膝上型计算机,超便携式计算机,平板计算机,触摸板,便携式计算机,手持计算机,掌上型计算机,个人数字助理(PDA),蜂窝电话,组合蜂窝电话/PDA,电视,智能设备(例如,智能电话、智能平板计算机或智能电视),移动因特网设备(MID),消息传送设备,数据通信设备,相机(例如傻瓜相机,超级变焦相机,数字单透镜反射(DSLR)相机),等等。
[0124] 在各种实施方式中,系统1500包括耦合到显示器1520的平台1502。平台1502可以从诸如一个或多个内容服务设备1530或一个或多个内容递送设备1540或其他类似内容源之类的内容设备接收内容。包括一个或多个导航特征的导航控制器1550可用于与例如平台1502和/或显示器1520进行交互。下面更详细地描述这些组件中的每一个。
[0125] 在各种实施方式中,平台1502可包括芯片组1505、处理器1510、存储器1512、天线1513、存储装置1514、图形子系统1515、应用1516和/或无线电装置1518的任何组合。芯片组
1505可以在处理器1510、存储器1512、存储装置1514、图形子系统1515、应用1516和/或无线电装置1518之间提供相互通信。例如,芯片组1505可包括能够提供与存储装置1514的相互通信的存储适配器(未示出)。
[0126] 处理器1510可被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器,x86指令集兼容处理器,多核或者任何其他微处理器或中央处理单元(CPU)。在各种实施方式中,处理器1510可以是一个或多个双核处理器,一个或多个双核移动处理器,诸如此类。
[0127] 存储器1512可被实现为易失性存储器设备,诸如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
[0128] 存储装置1514可被实现为非易失性存储设备,诸如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附加存储设备、闪速存储器、电池支持SDRAM(同步DRAM)和/或网络可访问存储设备。在各种实施方式中,存储装置1514可包括例如当包括多个硬盘驱动器时增加对有价值的数字媒体的存储性能增强保护的技术。
[0129] 图形子系统1515可执行对诸如静止图像或视频之类的图像的处理以供显示。例如,图形子系统1515可以是图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字的接口可用于通信地耦合图形子系统1515和显示器1520。例如,接口可以是高清晰度多媒体接口、显示端口(DisplayPort)、无线HDMI和/或无线HD兼容技术中的任何一种。图形子系统1515可被集成到处理器1510或芯片组1505中。在一些实施方式中,图形子系统1515可以是通信地耦合到芯片组1505的独立设备。
[0130] 可以在各种硬件架构中实现本文描述的图形和/或视频处理技术。例如,可以将图形和/或视频功能集成在芯片组内。或者,可以使用独立的图形和/或视频处理器。作为又一实施方式,可以由包括多核处理器的通用处理器提供图形和/或视频功能。在另外的实施例中,可以在消费者电子设备中实现这些功能。
[0131] 无线电装置1518可包括能够使用各种合适的无线通信技术来发送和接收信号的一个或多个无线电装置。这些技术可涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在跨这样的网络进行通信时,无线电装置1518可以根据任何版本的一个或多个可适用标准进行操作。
[0132] 在各种实施方式中,显示器1520可包括任何电视类型的监视器或显示器。显示器1520可包括例如计算机显示屏、触摸屏显示器、视频监视器、类似电视的设备和/或电视。显示器1520可以是数字的和/或模拟的。在各种实施方式中,显示器1520可以是全息显示器。
而且,显示器1520可以是可以接收视觉投影的透明表面。这样的投影可以传达各种形式的信息、图像和/或对象。例如,这样的投影可以是移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用1516的控制下,平台1502可以在显示器1520上显示用户界面1522。
[0133] 在各种实施方式中,一个或多个内容服务设备1530可以由任何国家、国际和/或独立的服务托管,因此可经由例如因特网被平台1502访问。一个或多个内容服务设备1530可被耦合到平台1502和/或显示器1520。平台1502和/或一个或多个内容服务设备1530可被耦合到网络1560以便向和从网络1560传送(例如,发送和/或接收)媒体信息。一个或多个内容递送设备1540也可被耦合到平台1502和/或显示器1520。
[0134] 在各种实施方式中,一个或多个内容服务设备1530可包括有线电视盒,个人计算机,网络,电话,能够递送数字信息和/或内容的支持因特网的设备或电器,以及能够经由网络1560或直接地在内容提供商与平台1502和/或显示器1520之间单向或双向地传送内容的任何其他类似设备。将会认识到,可以经由网络1560向和从内容提供商和系统1500中的任何一个组件单向和/或双向地传送内容。内容的示例可包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。
[0135] 一个或多个内容服务设备1530可以接收诸如有线电视节目的内容,包括媒体信息,数字信息和/或其他内容。内容提供商的示例可包括任何有线或卫星电视或无线电或因特网内容提供商。所提供的示例并不意味着以任何方式限制根据本公开的实施方式。
[0136] 在各种实施方式中,平台1502可以从具有一个或多个导航特征的导航控制器1550接收控制信号。例如,导航特征可以用于与用户界面1522进行交互。在各种实施例中,导航可以是指示设备,该指示设备可以是允许用户将空间(例如,连续和多维)数据输入到计算机中的计算机硬件组件(具体而言,人机接口设备)。诸如图形用户界面(GUI)和电视和监视器之类的许多系统允许用户使用身体姿势来控制计算机或电视和向计算机或电视提供数据。
[0137] 可以通过显示器(例如,显示器1520)上显示的指针光标、聚焦环或其他视觉指示符的移动在显示器上复制导航特征的移动。例如,在软件应用1516的控制下,位于导航上的导航特征可被映射到例如在用户界面1522上显示的虚拟导航特征。在各种实施例中,可以不是单独的组件,而是可被集成到平台1502和/或显示器1520中。然而,本公开不限于本文示出或描述的元件或上下文。
[0138] 在各种实施方式中,例如,当启用时,驱动器(未示出)可包括使得用户能够在初始启动之后通过触摸按钮立即打开和关闭类似电视的平台1502的技术。即使当平台被“关闭”时,程序逻辑也可以允许平台1502将内容流式传输到媒体适配器或其他一个或多个内容服务设备1530或一个或多个内容递送设备1540。此外,例如,芯片组1505可包括例如对5.1环绕声音频和/或高清晰度7.1环绕声音频的硬件和/或软件支持。驱动器可包括用于集成图形平台的图形驱动器。在各种实施例中,图形驱动器可包括外围组件互连(PCI)Express图形卡。
[0139] 在各种实施方式中,可以集成系统1500中所示出的任何一个或多个组件。例如,可以集成平台1502和一个或多个内容服务设备1530,或者可以集成平台1502和一个或多个内容递送设备1540,或者例如可以集成平台1502、一个或多个内容服务设备1530和一个或多个内容递送设备1540。在各种实施例中,平台1502和显示器1520可以是集成的单元。例如,可以集成显示器1520和一个或多个内容服务设备1530,或者可以集成显示器1520和一个或多个内容递送设备1540。这些示例不意味着限制本公开。
[0140] 在各种实施例中,系统1500可被实现为无线系统、有线系统或两者的组合。当被实现为无线系统时,系统1500可包括适合于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等。无线共享介质的示例可包括部分无线频谱,诸如RF频谱等。当被实现为有线系统时,系统1500可包括适合于通过有线通信介质进行通信的组件和接口,诸如输入/输出(I/O)适配器、用于将I/O适配器与对应的有线通信介质连接的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等。有线通信介质的示例可包括电线,电缆,金属引线,印刷电路板(PCB),背板,交换结构,半导体材料,双绞线,同轴电缆,光纤等。
[0141] 平台1502可以建立一个或多个逻辑信道或物理信道以传送信息。该信息可包括媒体信息和控制信息。媒体信息可以指代表示旨在用于用户的内容的任何数据。内容的示例可包括例如来自语音对话、视频会议、流式视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音对话的数据可以例如是语音信息,无声时段,背景噪声,舒适噪声音调等。控制信息可以指代表示旨在用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于通过系统路由媒体信息,或指示节点以预定方式处理媒体信息。然而,实施例不限于图15中示出或描述的元件或上下文。
[0142] 如上所述,可以以不同的物理样式或形状因子来实现系统1500。图16示出了根据本公开的至少一些实施方式布置的小形状因子设备1600的实施方式。在一些示例中,可以经由设备1600来实现系统1500。在其他示例中,可以经由设备1600来实现系统100或其部分。在各种实施例中,例如,设备1600可被实现为具有无线能的移动计算设备。例如,移动计算设备可以指代具有处理系统和移动的电源或电力供应(诸如一个或多个电池)的任何设备。
[0143] 移动计算设备的示例可包括个人计算机(PC),膝上型计算机,超便携式计算机,平板计算机,触摸板,便携式计算机,手持计算机,掌上型计算机,个人数字助理(PDA),蜂窝电话,组合蜂窝电话/PDA,智能设备(例如,智能电话、智能平板计算机或智能移动电视),移动因特网设备(MID),消息传送设备,数据通信设备,相机,等等。
[0144] 移动计算设备的示例还可包括被布置为由人佩戴的计算机,诸如手腕计算机、手指计算机、戒指计算机、眼镜计算机、带夹计算机、臂带计算机、计算机、服装计算机以及其他可穿戴计算机。在各种实施例中,例如,移动计算设备可被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管可以利用例如被实现为智能电话的移动计算设备来描述一些实施例,但是可以认识到,也可以使用其他无线移动计算设备来实现其他实施例。实施例不限于该上下文。
[0145] 如图16所示,设备1600可包括具有前部1601和后部1602的外壳。设备1600包括显示器1604,输入/输出(I/O)设备1606,以及集成的天线1608。设备1600还可包括导航特征1612。I/O设备1606可包括用于将信息输入到移动计算设备中的任何合适的I/O设备。I/O设备1606的示例可包括字母数字键盘,数字小键盘,触摸板,输入键,按钮,开关,麦克,扬声器,语音识别设备和软件,等等。还可以通过麦克风(未示出)将信息输入到设备1600中,或者可以通过语音识别设备将信息数字化。如图所示,设备1600可包括相机1605(例如,包括镜头、光圈和成像传感器)和集成到设备1600的后部1602(或其他地方)中的闪光灯1610。在其他示例中,相机1605和闪光灯1610可被集成到设备1600的前部1601中,或者前置相机和后置相机都可被提供。相机1605和闪光灯1610可以是相机模块的组件,以发起被处理成流式视频的图像数据,该流式视频被输出到显示器1604和/或例如经由天线1608从设备1600远程传送。
[0146] 可以使用硬件元件、软件元件或两者的组合来实现各种实施例。硬件元件的示例可包括处理器,微处理器,电路,电路元件(例如,晶体管,电阻器,电容器,电感器等),集成电路,专用集成电路(ASIC),可编程逻辑器件(PLD),数字信号处理器(DSP),现场可编程阵列(FPGA),逻辑门,寄存器,半导体器件,芯片,微芯片,芯片组等。软件的示例可包括软件组件,程序,应用,计算机程序,应用程序,系统程序,机器程序,操作系统软件,中间件,固件,软件模块,例程,子例程,函数,方法,过程,软件接口,应用程序接口(API),指令集,计算代码,计算机代码,代码段,计算机代码段,字,值,符号,或其任何组合。确定是否使用硬件元件和/或软件元件实现实施例可以根据任何数量的因素(诸如期望的计算速率,功率水平,热容差,处理周期预算,输入数据速率,输出数据速率,存储器资源,数据总线速度以及其他设计或性能约束)而变化。
[0147] 至少一个实施例的一个或多个方面可以通过存储在表示处理器内的各种逻辑的机器可读介质上的代表性指令来实现,这些代表性指令当由机器读取时使该机器制造逻辑以执行本文描述的技术。这种称为“IP核”的表示可被存储在有形的机器可读介质上,并被提供给各种客户或制造设施,以加载到实际制造逻辑或处理器的制造机器中。
[0148] 虽然已经参考各种实施方式描述了本文阐述的某些特征,但是该描述并不旨在以限制意义来解释。因此,对本公开所属领域的技术人员显而易见的本文描述的实施方式的各种修改以及其他实施方式被视为位于本公开的精神和范围内。
[0149] 将认识到,实施例不限于如此描述的实施例,而是可以在不脱离所附权利要求的范围的情况下利用修改和变更来实践。例如,上述实施例可包括特征的特定组合。然而,上述实施例在这方面不受限制,并且在各种实施方式中,上述实施例可包括承担这样的特征的仅子集,承担这样的特征的不同顺序,承担这样的特征的不同组合,和/或承担除明确列出的那些特征之外的附加特征。因此,应当参考所附权利要求以及这样的权利要求有权享有的等同物的完全范围来确定实施例的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈