基于感知质量的可缩放视频编码速率适配转让专利

申请号 : CN201580010952.4

文献号 : CN106416251B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : V·巴布拉查S·拉夫盖德T·T·阿佐古一Y·廖V·S·索马雅祖鲁

申请人 : 英特尔IP公司

摘要 :

在一系列感知质量水平之上对多层视频结构进行扩展。基于估计平均意见评分(eMOS)的编码器控制回路用于确定与特定的感知质量水平相关联的一个或多个编码器关键性能指标(KPI)。基于KPI的编码器控制回路然后用于在不重新计算可扩展结构的eMOS的情况下引导生成具有质量增强层和/或时间增强层和/或空间增强层的分层结构。另外,eMOS用于针对给定的比特率预算在最佳感知质量水平上引导对分层结构的所述生成。可以通过丢弃分段、改变分层结构或改变KPI目标值来进行速率适配。由于所述结构根据感知质量而扩展,随着所述编码速率被适配,感知质量可预测地受到影响。

权利要求 :

1.一种计算机实现的可缩放视频编码SVC方法,包括:接收原始视频帧;

使用量化参数值将所述帧编码为分层流以达到峰值信噪比PSNR,所述峰值信噪比PSNR与分配给所述分层流的每一层的估计平均意见评分eMOS目标相关联;以及将所述分层流存储在存储器中,其中编码所述帧包括:

针对非分层结构中的帧,通过迭代编码所述帧同时改变编码量化参数QP值直至达到所述层的预定eMOS目标来确定与所述预定eMOS目标相对应的所述编码量化参数QP值,从使用所述编码量化参数QP值编码的数据重构帧,所述层的预定eMOS目标是使用所述编码量化参数QP值达到的,基于所述重构帧与相应的原始帧之间的差异确定与所述帧的所述预定eMOS目标相关联的PSNR目标。

2.如权利要求1所述的方法,进一步包括

对所述分层流的所述编码进行适配以便响应于网络拥塞通过在降低的PSNR目标上丢弃时间增强层或任何剩余时间增强层的编码帧来改变eMOS。

3.如权利要求1所述的方法,进一步包括:

对所述分层流的所述编码进行适配以便响应于网络拥塞通过改变所述分层结构内的帧时间、空间或质量层水平来改变eMOS。

4.如权利要求1所述的方法,其中,

针对与相同的eMOS相关联的所述分层流的任何层中的编码帧采用相同的目标PSNR值。

5.如权利要求1所述的方法,进一步包括确定当前比特率预算;并且其中,将所述帧编码为所述分层流进一步包括:

响应于所述当前比特率预算满足阈值而利用基于与第一eMOS目标相关联的第一PSNR目标所确定的编码量化参数值来对基层的帧以及分层预测增强层的帧进行编码;并且响应于所述当前比特率预算未能满足所述阈值而利用基于与第二eMOS目标相关联的第二PSNR目标所确定的编码量化参数值来对所述基层的帧以及所述分层预测增强层的帧进行编码,所述第二eMOS目标比所述第一eMOS目标低。

6.如权利要求5所述的方法,进一步包括:

针对非分层结构中的帧,通过浮动第一编码量化参数并且对所述帧进行迭代编码直到达到所述第一eMOS目标来确定与所述第一eMOS目标相对应的所述第一编码量化参数值;

从用所述第一编码量化参数值编码的数据来重构帧;

基于所述重构帧与所述相应的原始帧之间的差异生成与所述第一eMOS目标相关联的所述第一PSNR目标;

针对所述非分层结构中的帧,通过浮动第二编码量化参数并且对所述帧进行迭代编码直到达到所述第二eMOS目标来确定与所述第二eMOS目标相对应的所述第二编码量化参数值;

从用所述第二编码量化参数值编码的数据来重构帧;并且基于所述重构帧与相应的原始帧之间的差异生成与所述第二eMOS目标相关联的所述第二PSNR目标。

7.如权利要求5所述的方法,其中:

利用基于第一PSNR目标确定的编码量化参数值对所述基层帧进行编码进一步包括对多个关键帧进行迭代编码,同时浮动所述编码量化参数值直到达到所述第一PSNR目标;并且利用第一编码量化参数值对所述增强层帧进行编码进一步包括对依赖于所述关键帧的一个或多个帧进行迭代编码,同时浮动所述编码量化参数值直到达到所述第一PSNR目标。

8.如权利要求1所述的方法,进一步包括:

构造包括所述分层流的主要编码视频流;以及

构造与最低eMOS和最低比特率相关联的辅助编码视频流。

9.如权利要求8所述的方法,其中:

将所述帧编码为所述分层流进一步包括:

通过利用基于与最高eMOS目标相关联的第一PSNR目标确定的编码量化参数值对第一基层的帧以及第一分层预测增强层的帧进行编码来将所述帧编码为第一分层流;并且所述方法进一步包括:通过利用基于与较低eMOS目标相关联的第二PSNR目标确定的编码量化参数值对第二基层的帧以及第二分层预测增强层的帧进行编码来将所述帧编码为第二分层流;

确定当前比特率预算;以及

从与由所述当前比特率预算准许的最佳eMOS相关联的所述第一或第二分层流来构造所述主要编码视频流。

10.如权利要求8所述的方法,其中:

将所述帧编码为所述分层流进一步包括:

通过利用基于与最高eMOS目标相关联的第一PSNR目标确定的编码量化参数值对第一基层的帧以及第一分层预测增强层的帧进行编码来将所述帧编码为第一分层流;

构造辅助流进一步包括重新发送所述第一分层流的关键帧;并且响应于比特率预算减少,所述方法进一步包括:

通过利用基于与较低eMOS目标相关联的第二PSNR目标确定的编码量化参数值对第二基层的帧以及第二分层预测增强层的帧进行编码来将所述帧编码为第二分层流;并且其中,构造所述辅助流包括发送针对所述第二分层流的关键帧的差错恢复序列。

11.一种可缩放视频编码器,包括:

视频输入端,所述视频输入端用于接收原始视频帧;

分层逻辑,所述分层逻辑用于将峰值信噪比PSNR目标与目标估计平均意见评分eMOS进行关联;

编码器核,所述编码器核耦合于所述视频输入端,用于通过使用基于PSNR确定的编码量化参数值将所述帧编码为具有目标eMOS的分层流;以及存储器,所述存储器用于存储所述分层流,

其中所述分层逻辑用于:

迭代地编码非分层结构中的帧同时改变编码量化参数QP值直至达到所述目标eMOS水平,从使用所述编码量化参数值编码的数据重构帧,所述目标eMOS水平是使用所述编码量化参数值达到的,以及基于所述重构帧与对应的相应的原始帧之间的差异生成与所述目标eMOS水平相关联的PSNR目标。

12.如权利要求11所述的可缩放视频编码器,进一步包括:感知质量估计器,所述感知质量估计器用于通过针对校准结构或针对所述分层流的顶部时间增强层生成估计平均意见评分eMOS来估计从所述编码器核输出的流的感知质量。

13.如权利要求11所述的可缩放视频编码器,其中:所述分层逻辑用于控制所述编码器核以便响应于网络拥塞通过在降低的PSNR目标上丢弃时间增强层或任何剩余时间增强层的编码帧来改变所述分层流的视频eMOS水平。

14.一种可扩展视频解码器,包括:

缓冲器,所述缓冲器用于接收具有感知质量导向的时间分层结构的比特流;

解码器核,所述解码器核耦合于所述缓冲器,用于将所述比特流解码成视频帧;以及分层逻辑电路,所述分层逻辑电路耦合于所述解码器核或缓冲器,用于基于包含在所述比特流中的分层信息确定对丢失的或延迟的视频帧的响应以及用于将峰值信噪比PSNR目标与目标估计平均意见评分eMOS进行关联,其中所述分层逻辑电路用于:

迭代地编码非分层结构中的帧同时改变编码量化参数QP值直至达到目标eMOS水平,从使用所述编码量化参数值编码的数据重构帧,所述目标eMOS水平是使用所述编码量化参数值达到的,基于所述重构帧与对应的相应的原始帧之间的差异生成与所述目标eMOS水平相关联的PSNR目标。

15.如权利要求14所述的解码器,进一步包括感知质量估计器,所述感知质量估计器耦合于所述缓冲器或所述解码器核,用于生成所述视频帧的无参考感知质量估计并且用于输出远程编码速率控制信号或编码量化参数。

16.如权利要求14所述的解码器,其中:

所述缓冲器用于接收:

具有感知质量导向的时间分层结构的主要比特流;以及具有与低于所述主要比特流的较低eMOS相关联的单层结构的辅助比特流;并且所述分层逻辑电路用于使用从所述辅助比特流中解码的复制关键帧替换从所述主要比特流中丢失的关键帧。

17.如权利要求16所述的解码器,其中,所述分层逻辑电路进一步用于:通过纠错电路处理所述辅助比特流中的前向纠错分组,并且用于纠正在所述主要比特流中接收的比特;或者发起重传丢失的或迟到的视频帧的请求。

18.一种联网通信系统,包括

发射设备,所述发射设备包括:

可缩放视频编码器,所述可缩放视频编码器进一步包括:视频输入端,所述视频输入端用于接收视频帧;

分层逻辑电路,所述分层逻辑电路用于将峰值信噪比PSNR目标与目标估计平均意见评分eMOS进行关联;以及编码器核,所述编码器核耦合于所述视频输入端,用于通过使用基于所述PSNR确定的编码量化参数值将所述帧编码为具有目标eMOS的分层流;以及远程侧速率适配器,所述远程侧速率适配器耦合于所述分层逻辑电路并且用于响应于接收远程编码速率控制信号导致所述目标eMOS或相关联的PSNR的变化;以及接收设备,所述接收设备包括:缓冲器,所述缓冲器用于接收所述分层流;

解码器核,所述解码器核耦合于所述缓冲器用于将所述分层流解码成多个视频帧;

感知质量估计器,所述感知质量估计器耦合于所述缓冲器或所述解码器核,用于生成所述视频帧的无参考感知质量估计并且用于将所述远程编码速率控制信号输出至所述远程侧速率适配器,其中所述分层逻辑电路用于:

迭代地编码非分层结构中的帧同时改变所述编码量化参数QP值直至达到目标eMOS水平,从使用所述编码量化参数值编码的数据重构帧,所述目标eMOS水平是使用所述编码量化参数值达到的,基于所述重构帧与对应的相应的原始帧之间的差异生成与所述目标eMOS水平相关联的PSNR目标。

19.如权利要求18所述的系统,其中,所述发射设备进一步包括认知无线电,所述认知无线电被配置成用于基于所述目标eMOS或所述无参考感知质量估计来动态地修改无线电参数。

20.如权利要求18所述的系统,其中,所述接收设备进一步包括分层逻辑电路,所述分层逻辑电路耦合于所述解码器核或缓冲器,用于基于包含在比特流中的分层信息确定对丢失的或延迟的视频帧的响应。

21.一种其上存储有指令的计算机可读介质,所述指令当由计算机处理器执行时使所述处理器执行如权利要求1至10中任一项所述的方法。

22.一种用于可缩放视频编码SVC的设备,包括用于执行如权利要求1至10中任一项所述的方法的装置。

说明书 :

基于感知质量的可缩放视频编码速率适配

[0001] 优先权声明
[0002] 本申请要求于2014年3月27日提交的题为“SCALABLE VIDEO ENCODING RATE ADAPTATION BASED ON PERCEIVED QUALITY(基于感知质量的可缩放视频编码速率适配)”的美国专利申请序列号14/227,729的优先权,并且所述专利申请以全部内容通过引用结合。

背景技术

[0003] 视频编码技术使数字视频的高效传输成为可能。一些实时视频流式传输应用(如视频会议)要求特别高,因为用户体验取决于高效且稳健的编码技术以实现最小的延迟和适当的图像质量。作为视频传输平台的无线信道进一步约束了编码技术,因为基干网络经常具有非常动态的信道带宽。
[0004] 对每个视频帧进行编码所需的比特数被称为编码速率并且贯穿视频序列经常不是恒定的。在视频编码器处实现速率控制以保证对被流式传输至解码器中的视频数据进行成功解码和显示。视频编解码器具有用于提高或降低编码速率的可调整的压缩参数以便适应各种类型的信道的不同的传输带宽。
[0005] 可缩放视频编码(SVC)规定包括在H.264/MPEG-4第10部分高级视频编解器(AVC)视频压缩标准的附件G延伸中。H.264标准已经由联合视频组(JVT)拟定,联合视频组包括ITU-T SG16 Q.6(也被称为VCEG(视频编码专家组))以及被称为MPEG(运动图像专家组)的ISO-IEC JTC1/SC29/WG11(2003)。SVC使视频比特流的编码标准化,所述视频比特流还包含需要较小带宽的一个或多个子集比特流。子集比特流可以支持不同的空间分辨率(屏幕大小)、不同的时间分辨率(帧速率)或者不同质量(SNR)的视频信号。
[0006] SVC技术作为一种处理编码器比特率预算变化的手段在实时视频流式传输应用中可能是有用的。在SVC标准中,针对实现方式存在相当大的宽容度,这在视频质量与呈现视频所需的数据数量(即,比特率)之间存在复杂关系时可以提供高级视频流式传输服务。通常,比特率越高,编码器的空间频率频谱近似越准确。但是,更高的准确性可能不一定为人类观察者产生更高的感知质量。

附图说明

[0007] 在附图中通过举例而非限制的方式展示了在此所描述的材料。为了展示的简单和清楚,图中所展示的元件不一定按比例绘制。例如,为清楚起见,某些元件的尺寸相对于其他元件可能被放大了。此外,在认为适当的情况下,在附图之间对参考标记加以重复以表示相应的或相似的元件。在附图中:
[0008] 图1是根据实施例的基于感知质量的视频编码速率控制架构的功能框图;
[0009] 图2是展示根据实施例的基于感知质量的视频编码速率控制方法的流程图;
[0010] 图3A是展示根据实施例的将KPI目标与感知质量目标进行关联的方法的流程图;
[0011] 图3B是展示用于基于感知质量生成分层编码流的方法的流程图;
[0012] 图4A是进一步展示根据示例性实施例的确定PSNR目标的数据流图;
[0013] 图4B是进一步展示根据实施例的基于PSNR目标生成分层编码流的数据流图;
[0014] 图4C是进一步展示校准非分层编码流是如何被采用作为分层编码流的速率控制的基础的功能框图;
[0015] 图5A展示了跨越一系列感知质量的同时广播结构;
[0016] 图5B和图5C展示了根据实施例的用基于感知质量速率控制生成的两个分层结构;
[0017] 图6A展示了根据实施例的包括基于感知质量水平构造的三个不同的扩展流的示例性时间质量结构;
[0018] 图6B展示了根据实施例的响应于网络拥塞的基于感知质量的分层结构适配;
[0019] 图7展示了根据实施例的用于对感知质量导向的分层结构进行适配的方法;
[0020] 图8A展示了根据实施例的可以针对由当前比特率预算准许的最佳感知质量实时构造的示例性双流结构;
[0021] 图8B展示了根据实施例响应于网络拥塞对图8A中展示的双流结构进行的适配;
[0022] 图9是展示了符合一个或多个实施例的针对感知质量导向的视频编码速率适配配置的联网通信系统的功能框图;
[0023] 图10是根据实施例的示例性系统的图解;以及
[0024] 图11是根据实施例安排的示例性系统的图解。

具体实施方式

[0025] 参照附图描述了一个或多个实施例。虽然对特定配置和安排进行了详细的描绘和讨论,但应理解,这样做仅出于说明目的。相关领域中的技术人员将认识到,在不背离本说明的精神和范围的情况下,其他配置和安排是有可能的。将对相关领域的技术人员明显的是,在此描述的技术和/或安排可以在超出在此详细描述的系统和应用之外的各种各样的其他系统和应用中被采用。
[0026] 在以下详细的说明书中对附图进行参考,这些附图形成说明书的一部分并且展示了示例性实施例。此外,应当理解,在不背离要求保护的主题的范围的情况下,可以利用其他实施例并且可以做出结构的和/或逻辑的改变。因此,以下详细说明不应以限制的含义来理解并且要求保护的主题的范围仅由所附权利要求书及其等效物来限定。
[0027] 在以下描述中,陈述了许多细节,然而,将对本领域技术人员明显的是,实施例可以在没有限制特定细节的情况下被实践。众所周知的方法和设备是以框图形式而非详细地示出的,以避免模糊更显著的方面。贯穿本说明书对“实施例(an embodiment)”或“一个实施例(one embodiment)”的引用意味着在至少一个实施例中包括了与所述实施例结合描述的具体特征、结构、功能或特性。因此,贯穿本说明书在各处出现的短语“在实施例中(in an embodiment)”或在“在一个实施例中(in one embodiment)”并非必须指同一个实施例。此外,在实施例的上下文中描述的具体特征、结构、功能或特性可以用任何适当的方式组合在一个或多个实施例中。例如,第一实施例可以与第二实施例在任何地方进行组合,其中,与这两个实施例相关联的具体特征、结构、功能或特性不相互排斥。
[0028] 如在示例性实施例和所附权利要求书的描述中使用的,除非上下文另外明确指示,否则单数形式“一个(a)”、“一个(an)”和“所述(the)”旨在同样包括复数形式。还将理解的是,如本文使用的术语“和/或”指代并且包括相关联的列举项的一个或多个项的任何和所有可能组合。
[0029] 如贯穿说明书并且在权利要求书中使用的,由术语“的至少一个(at least one of)”或“的一个或多个(one or more of)”联接的项列表可以意味着所例举的项的任意组合。例如,短语“A、B或C中的至少一者”可以意味着A;B;C;A和B;A和C;B和C;或者A、B和C。
[0030] 术语“耦合”和“连接”连同其衍生词在此可以用于描述部件之间的功能关系或结构关系。应当理解,这些术语对于彼此并非旨在作为同义词。而是,在具体实施例中,“连接”可以用于指示两个或更多个元件彼此直接进行物理的、光学的或电学的接触。“耦合”可以用于指示两个或更多个元件彼此进行直接的或间接的(在它们之间具有介入元件)物理的、光学的或电学的接触,和/或指示两个或更多个元件彼此合作或交互(例如,由于因果关系的原因)。
[0031] 就对计算机存储器内的数据比特进行的操作的算法和符号表示而言,呈现在此提供的详细说明书的一些部分。如从以下讨论中明显的是,除非另外特别声明,否则应认识到,贯穿本说明书,使用如“运算(calculating)”、“计算(computing)”、“确定(determining)”、“估计(estimating)”、“存储(storing)”、“收集(collecting)”“显示(displaying)”、“接收(receiving)”、“合并(consolidating)”、“生成(generating)”、“更新(updating)”等术语的讨论是指计算机系统或类似电子计算装置的动作和过程,所述计算机系统或类似电子计算装置对表示为计算机系统的包括寄存器和存储器的电路中的物理(电子)量的数据进行操纵并且将其转换成类似地表示为计算机系统存储器或寄存器或其他此类信息存储、传输或显示装置中的物理量的其他数据。
[0032] 虽然以下描述陈述可以在如片上系统(SoC)架构或例如GPU架构的架构中显现各实现方式,在此描述的技术和/或安排的实现方式不局限于具体的架构和/或计算系统并且出于类似目的可以由任何架构和/或计算系统实现。采用例如多个集成电路(IC)芯片和/或封装体、和/或各种计算设备和/或消费电子产品(CE)设备(如机顶盒、智能电话等)的各架构可以实现在此描述的技术和/或安排。此外,虽然以下描述可以陈述许多特定的细节(如逻辑实现、系统部件的类型和内在关系、逻辑划分/集成选择等),要求保护的主题可以在没有这些特定细节的情况下被实践。此外,可以不详细示出某些材料(如,例如,控制结构和完整的软件指令序列),以便不模糊在此公开的材料。
[0033] 在此公开的材料的某些部分是在硬件(例如,如图形处理器中的逻辑电路)中实现的。某些其他部分可以在硬件、固件、软件、或其任意组合中实现。在此公开的至少部分材料还可以被实现为存储于机器可读介质上的指令,这些指令可以被一个或多个处理器(图形处理器和/或中央处理器)读取或执行。机器可读介质可以包括用于存储或传输具有由机器(例如,计算设备)可读的形式的信息的任何介质和/或机制。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存器;电、光、声或其他类似非瞬态有形介质。
[0034] 以下描述了用于基于用户感知的或主观的质量对可扩展视频结构进行编码的一种或多种系统、装置、方法和计算机可读介质。在实施例中,基于质量的速率控制是利用确定编码配置的质量度量执行的。在感知质量度量目标和分层编码结构之上通过实时的(例如,每一帧的)控制来提供速率适配以针对同时发生的网络状况维持最佳的主观质量水平。在实施例中,客观的质量度量与主观的质量度量相关联,并且客观的质量度量被用作用于控制/适配编码器配置的基础。
[0035] 在实施例中,视频编码比特率是由把预先确定的感知质量作为目标的基于感知质量的速率控制器确定的。图1是根据实施例的基于感知质量的视频编码速率控制架构101的功能框图。架构101包括编码器130,所述编码器在示例性实施例中是硬件加速的编码器核,所述编码器核实现符合H.264标准、H.265(HEVC)ISO/IEC 23008-2 MPEG-H第2部分和ITU-T H.265标准、VP 8(RFC 6386)或VP9中的一者或多者的编解码器。编码器130被配置进入具有固定量化参数(QP)而无内部速率控制的模式中。在操作过程中,编码器130接收来自存储器的原始帧N(例如,在YUV中)格式并且输出编码比特流,所述比特流然后可以被缓冲到例如在传输或显示流水线内的存储器中。编码比特流进一步被视频感知质量估计器140监视,所述估计器可以对于编码器130是本地的或者位于远程接收器处。在示例性实施例中,视频质量估计器140对编码器输出执行视频质量感知评估(PEVQ)。感兴趣的读者请参考国际标准ITU-T建议J.247(08/08)以获得与PEVQ有关的进一步信息。PEVQ可以包括用于借助于5分制平均意见评分(MOS)对视频片段的图片质量进行评分的算法。由估计器140执行的测量算法可以访问由数字视频编码/解码过程引起的可见伪像,并且通常是基于目标参数(如比特率、帧速率、分组丢失率、抖动等)的非线性加权组合。
[0036] 在图1中展示的示例性实施例中,采用“无参考”测量算法,其中,源参考的起始质量未知并且仅基于编码比特流生成MOS(eMOS)估计。可以针对例如在连续的N个视频帧之上延伸的视频序列确定eMOS,其中,感知质量越好,相关联的eMOS越高。视频感知质量估计器140耦合于负责配置影响编码速率的编码器130的参数的控制逻辑145。在一个示例性实施例中,控制逻辑145输出耦合至编码器130的编码器控制信号,所述编码器指定有待采用以对将使eMOS与目标感知质量水平或阈值(例如,3.5、4.0、4.5等)最佳匹配的后续视频帧或帧序列进行编码的QP值。
[0037] 在实施例中,使用编码参数值将视频帧编码为分层流,所述编码参数值是基于与分配给分层流的每一层的感知质量目标相关联的编码关键性能指标目标确定的。图2是展示根据一个实施例的基于感知质量的视频编码速率控制方法201的流程图。在操作205处,方法201以接收原始视频帧(如图1中的帧105)开始。在操作210处,感知质量水平目标被分配给分层结构的层。
[0038] 分层流结构包括基层以及一个或多个时间增强层,和/或一个或多个质量(SNR)增强层。一个或多个空间增强层也可以存在。通常,分层结构可以通过层间预测来提高编码效率,在层间预测中,相关的增强层样本是从较低层图片(参考层)中预测的。最低层级层的流是从被称为“关键”帧的基层时间帧中构造的。这些基层时间帧被编码为基层质量和基层空间分辨率。相关的流可以是从时间增强层的组合中构造的,从而使帧速率增加超过关键帧的帧速率。每个时间增强层可以进一步具有一个或多个质量层和/或空间分辨率。
[0039] 为给定层级结构的不同层分配感知质量度量目标。所述分配可以是基于在操作215处接收到的当前比特率预算。可以将一个感知质量评分或水平(例如,eMOS 4)分配于给定层级结构的所有层。例如,多个时间增强层(例如,4个二元结构)可以与一个感知质量水平相关联。多个感知质量水平也可以与分层结构相关联。例如,相比于增强层质量帧,基层质量帧可以与较低的eMOS相关联。
[0040] 在操作220处,确定针对与分层流的每一层相关联的感知质量目标值的编码关键性能指标(KPI)。编码KPI是可以在不同的空间/时间/量化结构中有利地导向编码器的客观度量,在这些不同结构中,相关层的帧之间的可变时间参考距离可能以其他方式使扩展的输出流的感知质量估计复杂化。编码KPI一旦与感知质量水平相关联就可以使针对可扩展输出流的感知质量编码器速率控制成为可能。
[0041] 方法201在操作230处继续,其中,基于目标编码KPI目标在一个或多个分层流中对帧进行编码。如以下进一步描述的,同时发生的(瞬时的)比特率预算和质量目标可以用于选择编码候选帧以基本上实时地构造基于感知质量的分层结构。替代地,以特定的感知质量范围为目标的一个或多个预先确定的结构可以在操作230处利用任何帧丢弃被制备,然后在稍后的阶段处再次基于瞬时比特率预算和感知质量目标发生。方法201在操作240处通过输出分层编码流而完成,所述分层编码流根据瞬时网络状况可从最低感知质量水平扩展至最佳感知质量水平。
[0042] 如以上指出的,由于运动向量/残值比在多层流中改变,适合于单层输出流的基于感知质量的速率控制的感知质量测量算法(如NR eMOS估计器)可能容易受误差的影响。由此,在本文的某些实施例中,使用全参考(Full Reference,FR)PEVQ架构针对给定的感知质量目标确定编码KPI。在示例性实施例中,KPI是信噪比(SNR),并且更具体地是峰值SNR(PSNR),如但不限于亮度PSNR(PSNRY)。PSNR可以是基于原始视频帧与相应的重构参考帧之间的差异分析确定的。在进一步的实施例中,一个或多个KPI统计数值(如但不限于PSNR均值、PSNR中值、PSNR最大值、PSNR最小值、PSNR标准偏差、PSNR四分位数等)可以与针对给定帧序列确定的感知质量水平(例如,eMOS)相关联。此外,虽然诸位发明人已经发现PSNR是有利的KPI,但是其他客观度量(如但不限于结构相似性(SSIM)指标)可以类似地被利用。
[0043] 图3A是展示根据实施例的将KPI目标与感知质量水平目标进行关联的方法301的流程图。方法301在涉及提取针对具体的视频场景的唯一KPI目标的校准阶段过程中可以被执行作为图2中的操作220的一部分,其可以用于控制将帧编码为任何可扩展的视频结构。方法301在操作205处以接收原始视频帧开始。帧被编码为具有适合用于感知质量控制的编码的固定帧速率的校准结构。在一个示例性实施例中,校准结构是具有预先确定的且恒定的最大帧速率的单层流。在操作315处,编码帧的感知质量例如是利用NR eMOS估计器逻辑估计的。基于在操作215处以任何常规方式接收或确定的瞬时比特率预算,在操作320处针对视频场景选择感知质量水平目标。例如,利用充足的比特率预算,可以选择4.5的eMOS目标评分。在瞬时比特率预算较低的情况下,可以在操作320处选择4.0或者甚至3.5的目标eMOS。在操作330处,与感知质量目标相对应的eMOS质量控制的编码参数值是通过浮动质量控制的编码参数并且对跟随校准结构的帧进行迭代编码直到实现感知质量目标来确定的。
例如,可以用所选的每个QP值迭代对QP进行浮动以减小同来自上一次QP迭代的帧相关联的eMOS与目标eMOS之间的差异。以此方式,感知质量水平(例如,eMOS)用于优化针对校准结构中的所有帧的编码参数(例如,QP)。
[0044] 方法301继续计算与用感知质量优化编码参数编码的重构校准结构相关联的KPI。在操作340处,用优化的编码参数(例如,阈值迭代的QP)编码的一个或多个帧被重构。在操作350处,将重构帧与相应的原始帧进行比较以生成相关联的KPI。例如,与PSNR值相关联的感知质量是基于编码帧与QP值之间的差异生成的,所述差异被确定以使eMOS高达针对校准结构中的帧的eMOS目标。方法301然后通过输出KPI值而结束,所述KPI值现在与特定的感知质量水平相关联。
[0045] 针对感知质量目标的每次变化都可以重复方法301。方法301可以根据需要基本上实时地重复。针对给定的场景,方法301在用于将多个KPI值映射到跨越最小比特率预算至最大比特率预算的一系列感知质量目标的校准阶段过程中可以被执行多次。例如,针对给定的场景,40dB的目标PSNR可以被映射至4.5的目标eMOS、30dB的目标PSNR可以被映射至4.0的目标eMOS、而25dB的目标PSNR可以被映射至3.5的目标eMOS以覆盖一系列的比特率值,这些比特率值由于可变的网络拥塞可以被遇到。还可以针对接收到的视频帧检测到的每个场景变化重复方法301。针对每个场景变化重复方法301可以有利地提高感知质量水平与相关联的编码KPI之间的关联性。因此,利用每个场景变化,一系列的KPI值可以被映射至感知质量水平。还可以周期性地重复方法301以维持感知质量水平与相关联的KPI值之间的紧密映射。
[0046] 在实施例中,利用基于与特定的感知质量水平目标相关联的编码KPI值确定的编码参数值对基层的帧和分层预测增强层的帧进行编码。针对这种实施例,不必针对任何特定的可扩展结构重新计算eMOS估计。图3B是展示用于基于感知质量水平生成分层编码流的方法302的流程图。方法302可以例如作为图2中的操作230的一部分被执行并且在操作205处以接收原始视频帧开始。在操作370处,帧被编码为分层流结构。在实施例中,可以基于在操作215处确定的瞬时比特率预算实时地对在操作370处构造的分层结构进行适配。针对这种实施例,输入候选帧可以被选择作为并且被编码作为独立的关键帧、或者作为独立的增强层帧、或者被丢弃。在替代性实施例中,所有接收的帧被编码为预先确定的分层流结构。在操作375处,确定解构帧(Deconstructed Frame)的KPI。在操作380处,在浮动编码参数的同时迭代编码过程以基于KPI目标优化那个参数,所述KPI目标在操作360处(图3A)被确定为与特定的感知质量水平目标(例如,eMOS)相关联。因为编码参数是基于针对当前比特率确定的感知质量度量针对每个帧优化的,所以分层编码流输出在操作385处针对当前网络状况向上扩展至最佳感知质量并且可以响应于网络拥塞可控地向下扩展以逐渐降低感知质量水平。
[0047] 图4A是进一步展示根据方法301的一个实施例的用于确定PSNR目标的全参考PEQV架构的数据流图。图4B是进一步展示根据方法302的实施例的基于PSNR生成分层编码流的数据流图。如图4A所示,原始帧n和参考帧n-1被输入到以“无速率控制”模式操作的编码器410中。基于感知质量的速率控制回路包括eMOS估计器440,所述eMOS估计器控制确定由编码器410利用的下一个QP迭代。针对每个QP迭代j,在本地解码回路321中生成重构帧n。重构帧n和原始帧n被输入到目标PSNR生成器460中,所述PSNR生成器输出与eMOS控制的编码过程相关联的PSNR值。此PSNR值然后有待用于多层编码过程的KPI控制。
[0048] 如图4B所示,原始帧n和分层参考帧n-k被输入到编码器470中,所述编码器再次在没有内部速率控制的情况下操作。基于KPI的速率控制回路控制由编码器470利用的下一个QP迭代。本地解码回路421针对每个QP迭代k生成PSNR值。QP由此基于从目标PSNR生成器460接收到的上一次PSNR目标针对帧被优化。
[0049] 图4C是进一步展示校准非分层编码流是如何被采用作为分层编码流的速率控制的基础的功能框图。如所示,系统401包括两个编码器410和470,第一个编码器被配置成用于编码适合于基于感知质量的速率控制的流(即,适合于受eMOS估计器440控制)。在示例性实施例中,校准结构是单层结构,其中,没有层间预测被用于编码帧0、1、2、3和4。编码KPI目标(例如,PSNR目标)是从相应的重构参考帧中生成的。编码器470利用针对分层编码帧0、1、2、3、4的目标KPI,例如,其中,分别地,帧0和4是在基层中的关键帧、帧2是依赖于帧0的第一时间增强层帧、而帧1和3是依赖于帧0和2的第二时间增强层帧。
[0050] 另外或替代地,如由周围的虚线框进一步展示的,编码KPI目标(例如,PSNR)可以是基于重构的分层参考帧n-k确定的,从而使KPI目标确定以重构的单层参考帧n-1作为基础。在实施例中,例如,PSNR目标是基于与最高比特率相对应的最高时间层中的帧确定的,所述帧具有等于一个帧的时间参考距离。由于最高时间增强层满足k等于1的附加约束,所以eMOS估计器可以用于优化被编码至此层中的帧的QP。一旦最高时间增强层的帧被编码至最高eMOS水平,就在将到达相关联的目标PSNR的一个或多个帧上执行不同的分析。针对这种实施例,在不支持非层次校准结构的情况下,可以将一系列KPI目标映射至感知质量水平。
[0051] 图5A展示了跨越一系列感知质量的同时广播结构。图5B和图5C展示了在此描述的利用基于感知质量速率控制技术生成的两个分层结构。可以例如采用图1中展示的架构利用eMOS控制的编码过程生成同时广播结构。每个单层流是在不同的感知质量水平(例如,3.5、4.0和4.5的eMOS)上生成的。针对每个流,可以如上所述确定相关联的PSNR,并且针对本文的实施例,这些相关联的PSNR值可以用作针对分层编码结构的速率控制和适配的目标。图5B展示了包括一个时间基层和两个时间增强层(EL 1和EL 2)的一个示例性感知质量导向分层结构。独立的帧0和4在预先确定的感知质量水平(例如,eMOS4.5)上被编码至时间基层。独立的帧1、2和3尽管跨多个层级水平,但例如通过采用与eMOS为4.5的单层流相关联的目标PSNR值L2也全部被编码至相同的预先确定的感知质量水平。图5C展示了具有映射至感知质量水平的可扩展质量(SNR)水平的另一个感知质量导向分层结构。针对这种时间-质量结构,每个相关的增强质量水平被映射为逐渐变高的感知质量。在此示例性实施例中,针对质量基层编码的所有帧基于与eMOS 3.5相关联的PSNR L0采用QP。帧质量首先通过重新编码附加的细化切片被向上扩展以实现与eMOS 4.0相关联的PSNR L1,并且然后基于PSNR L2通过重新编码被进一步向上扩展。
[0052] 图6A展示了根据实施例的包括基于感知质量水平实时构造的三个不同的扩展流605、610和615的示例性时间-质量结构601。流605、610和615各自与不同的感知质量水平(分别为3.5、4和4.5的eMOS)相关联。因此,基于之前与流的特定感知质量水平相关联的KPI对被编码为每个流的帧进行编码。例如,独立的关键帧0和4被编码以使用基于eMOS估计器通过控制QP确定的PSNR会聚在3.5的基层感知质量评分上。质量SNR层被类似地编码为逐渐更高的感知质量评分。因此,关键帧0和4被重新编码以使用用于导向编码参数的合适的PSNR值会聚在4和4.5的eMOS处。针对具有时间增强层的流,相关的帧增强时间分辨率可以被编码为流中的关键帧的相应的感知质量评分。
[0053] 在进一步的实施例中,当比特率预算未能满足通过以特定感知质量为目标的感知质量速率控制器导出的比特率时,目标感知质量被降低以避免比特率溢出。因此,基于感知质量的速率控制器可以被实时地适配,由此实时地(例如,利用每个输入帧)适配编码速率。可以或者通过修改分层结构、和/或丢弃质量扩展流的分段、和/或通过修改相应的KPI目标来进行适配。在实施例中,响应于瞬时编码比特率预算的变化实时地对感知质量导向的分层结构进行适配。因为结构是由感知质量导向的,所以相比于非感知质量扩展流网络拥塞的影响可以更加可预测地影响用户的感知质量水平。
[0054] 图6B展示了响应于网络拥塞的基于示例性感知质量的分层结构适配。在此示例性实施例中,基于初始感知质量的分层结构具有四个帧的时间距离(帧N至N+4)。与每个独立的帧相关联的感知质量水平如在图5B的背景中描述的一样。在检测到网络拥塞时,丢弃帧N+5和N+6。因为帧N+7是依赖于在之前的分层结构中的帧N+6的增强,所以帧N+7被降级至基层关键帧并且时间距离因此被减小至与帧N+4相距距离三。
[0055] 图7展示了根据实施例的用于对感知质量导向的分层结构进行适配的方法701。方法701在操作205处以接收原始视频帧开始。在操作710处,如果当前帧n在操作730处被丢弃则通过估计感知质量适应性地生成时间-质量编码结构。例如,如果帧n是图6A的示例性时间-质量结构中的帧1或3,则可以估计丢弃以至少维持4.0的感知质量。在操作735处,基于瞬时比特率预算选择编码候选帧n’。例如,如果帧n是图6A的时间-质量结构中的帧1,则帧1可以被丢弃并且帧2被选择作为编码候选帧n’以对来自分层流中的结构601进行适配,所述结构具有针对第一较高比特率预算的4.5的感知质量以及针对第二较低比特率的4.0的感知质量。在操作740处在感知质量导向的分层编码结构之后输出选择性编码的帧以生成具有针对当前网络拥塞可能的最佳感知质量的扩展比特流。
[0056] 在替代性实施例中,感知质量扩展结构是固定的并且帧总是利用相同的依赖性被编码并且不管网络状况和当前比特率预算如何被编码至(多个)相同的感知质量水平上。针对这种实施例,感知质量扩展结构的适配发生在编码器的下游,其中,基于任何帧或者分层流丢包的瞬时比特率预算和感知质量评分发生帧丢弃。例如,传送单元或网络数据分组可以被丢弃以将视频传输可控制地扩展至下一个更低的(或更高的)感知质量处。因为结构根据感知质量扩展,所以随着分段被丢弃,感知质量被可预测地影响。
[0057] 在实施例中,针对给定的输入帧修改KPI目标。KPI目标可以是基于瞬时比特率预算和感知质量评分选择的,所述感知质量评分将由改变针对当前帧的KPI目标而产生。例如,利用在校准阶段过程中针对给定场景映射至PSNR目标的一系列感知质量评分,用于控制帧的编码速率而采用的PSNR目标可以根据瞬时比特率在感知质量水平(高于或低于之前的质量水平)中被减小或增加至下一增量。替代地,每个输入帧可以被编码为多个KPI目标值并且多个产生的分层编码流之一基本上是基于瞬时比特率预算选择的。
[0058] 在进一步实施例中,除了将分层流编码为主要视频流之外,次要非分层编码视频流也被构造并被传输作为用于进一步提高视频传输回弹性的手段。辅助流和主要流可以仅在严重网络拥塞的情况下与由远程解码器利用的辅助流同时广播,例如使得结果是丢失主要流的关键帧。主要和次要编码视频流两者可以是利用在单层辅助流的最低感知质量阈值以上的一系列感知质量和最低比特率之上可扩展的主要流导向的感知质量。图8A展示了根据实施例的可以被实时地、一帧一帧构造的以实现由当前比特率预算准许的最佳感知质量的示例性双流结构。遵循感知质量导向的时间分层结构对主要流805中的帧进行编码。例如,主要比特流中的每个基层和增强层帧是用会聚至同一eMOS(例如,4.5)的QP编码的。使用会聚至最低eMOS(例如,3.5)的QP将包含在主要流中的关键帧进一步编码为独立的单层次要比特流810。图8A中所示的感知质量导向的主要和辅助流可以如图8B中所展示的被实时地适配。
[0059] 在图8B中,主要比特流805的分层结构可以响应于网络拥塞被修改,例如,通过改变时间增强层的数量、和/或增加/降低帧时间/空间/质量层水平、和/或改变用于对基层和任何时间增强层的帧进行编码所采用的KPI目标。从满足某个阈值的当前比特率预算开始,从用QP值编码的帧中构建主要流,这些QP值以与最高感知质量目标(例如,4.5的eMOS)相关联的KPI作为目标。响应于拥塞监测器检测使瞬时编码比特率预算减小低于阈值的较小网络拥塞,感知质量控制的编码速率被减小至更低的感知质量目标。与最高质量增强层相关联的帧然后可以被丢弃并且候选帧被编码为之前被映射至下一个较低感知质量水平的新的、减小的PSNR目标。例如,关键帧可以在基础质量层之外被迭代地重复编码以实现与4而非4.5的eMOS相关联的PSNR目标。针对与4以上(例如,4.5)的eMOS相关联的最高时间增强层的候选帧也被丢弃、减小针对新感知质量水平的比特率。响应于检测网络恢复,通过将候选帧编码至当前感知质量水平(例如,eMOS 4)来添加最高的时间增强层。针对下一个关键帧,最高质量增强层是通过迭代地重复编码超出基础质量层之外的帧而添加的以再次实现与4.5的eMOS相关联的PSNR。然后通过用此相同的目标PSNR对附加的独立帧进行编码将最高时间增强层维持在此最高感知质量水平上。
[0060] 在检测到进一步减小比特率预算的更严重的网络拥塞时,丢弃主要比特流805并且依赖于次要比特流810以用维持最低感知质量水平(例如,3.5)的速率传输编码的关键帧。在进一步的实施例中,辅助流包括代替复制关键帧的差错恢复序列。例如,可以发送针对关键帧的单个前向纠错(例如,XOR)数据分组,而不是重新发送关键帧。因此,结构改变可能需要根据当前比特率改变主要流和辅助流中的任一者或两者。例如,在比特率预算降低的情况下,可以通过将速率控制至更低的感知质量目标而降低主要流比特率并且可以通过从复制关键帧传输改变为关键帧差错恢复序列传输而减小辅助流比特率。
[0061] 图9是展示符合在本文其他地方描述的一个或多个实施例的针对感知质量导向的视频编码速率适配配置的联网通信系统901的功能框图。系统901包括远离接收(RX)设备903B的发射(TX)设备903A。由于实施例在此方面不受限制,发射设备903A和接收设备903B可以在任何常规网络之上通信地耦合。在示例性应用中,发射设备903A可以是视频采集平台和/或流式传输服务器平台,而接收设备903B是视频流式传输客户端平台。在其他应用中,发射设备903A和接收设备903B是各自具有展示的视频采集和流式传输服务器/客户端能力的视频会议设备。
[0062] 在实施例中,设备903A被配置成用于基于感知质量的视频采集。设备903A包括用于接收经采集的视频帧的视频输入端905。解码器核910耦合于视频输入端905并且遵循特定的编码规范(例如,H.265等)输出编码流。设备903A进一步包括视频驱动器930A,所述视频驱动器实现分层逻辑940A和视频感知质量(PQ)估计器945A。如在本文的其他地方描述的,PQ估计器945A用于估计从编码器核910输出的流的感知质量,例如生成针对校准结构或顶部时间增强层的eMOS。在示例性实施例中,PQ估计器945A进一步耦合至用于控制一个或多个编码参数(例如,QP)的编码器核910从而实现针对经采集的/存储的视频的目标感知质量水平。分层逻辑940A用于将编码KPI值与由PQ估计器945A确定的各感知视频质量水平进行关联。在进一步的实施例中,分层逻辑940A用于控制编码器核910以便将输入视频帧编码为符合在此描述的一项或多项技术的PQ导向的可扩展结构。设备903A进一步包括应用920A,通过应用920A用户可以指定目标感知质量水平和/或选择符合在本文的其他地方描述的一个或多个实施例的修改编码器核910的操作的感知质量导向的视频编码速率控制模式。
[0063] 在实施例中,设备903A进一步被配置成用于基于感知质量的视频传输。针对这种实施例,设备903A包括网络容量适配器960A和网络驱动器970A。容量适配器960A包括远程侧速率适配器(RA)955A和本地侧速率适配器965。本地侧RA 965从网络驱动器670A接收例如与传输队列占用975A和/或网络拥塞监测器980A有关的网络状态更新。远程侧RA 955A可以与布置在接收设备903B中的远程侧RA 955B对接,例如通过网络侧信道形成端到端(E2E)的控制回路。在实施例中,来自远程侧RA 955A或本地侧RA 965的输出耦合至分层逻辑940A中,所述分层逻辑进一步被配置成用于控制编码器核910以响应于基于来自RA 955A、RA 965的输入确定的网络拥塞实时地(例如,在一帧一帧的基础上)适应PQ导向的可扩展视频比特流的分层结构。编码视频流被包封在网络抽象层(NAL)单元中,这些NAL单元由视频/网络优先级映射器950A设置优先级。在分层视频流具有包括超过当前比特率预算的层的固定结构的某些实施例中,NAL单元还可以由视频/网络优先级映射器950A基于RA 955A、RA 965的输出将其丢弃。NAL单元存储在网络缓冲器915A中并且然后如由受连接访问管理器985A控制的路由信息和无线电参数定义的通过网络传输至设备903B。
[0064] 在某些实施例中,连接访问管理器985A是被配置成用于基于本地和/或远程感知视频质量评分动态地修改无线电参数的认知无线电。在一个示例中,连接访问管理器985A可以动态地改变视频流传输消息采取的用于将视频流递送至接收设备903B的路径。在第二示例中,连接访问管理器985A可以动态地改变由无线电采用的用于发送视频流的频带。在第三示例中,连接访问管理器985A可以动态地改变由无线电采用的用于发送视频流的协议。
[0065] 针对接收设备903B,NAL单元存储在如网络缓冲器915B的存储器中。优先级映射器950B用于提取感知质量导向的视频比特流并且将帧标识为已接收或未接收。RX感知质量(PQ)估计器945B用于生成接收的视频流的远程NR感知质量估计,例如生成基本上如以上在图1的背景中描述的eMOS估计。在远程视频感知质量控制实施例中,RX PQ估计器945B可以输出远程编码速率控制信号(例如,包括或基于如由RX PQ估计器945B确定的QP的编码参数)。远程编码速率控制信号然后可以在远程侧RA 955B与RA 955A之间传输。接收的远程视频感知质量控制信号然后被输入到视频驱动器930A中以改变视频感知质量目标、相关联的编码KPI(例如,PSNR)目标,和/或以适应视频流的分层结构。视频的有效载荷数据和扩展信息由视频解码器核990和接收侧分层逻辑940B接收。解码器核电路990实现SVC标准顺应性解码器(例如,H.265等)并且用于解码由抖动缓冲器995输出的帧。分层逻辑电路940B耦合于解码器核990和/或抖动缓冲器995,并且用于基于包含在比特流元数据中的分层信息确定针对任何丢失的或延迟的视频帧或分段的响应。在一个这种实施例中,分层逻辑940B用于协调接收到的主要比特流和次要比特流的解码以维持最高的可能视频感知质量水平。针对例如在图8B中展示的比特流805和810,分层逻辑940B可以组合来自主要比特流和次要比特流的数据、用从次要比特流中解码的复制关键帧替换从主要流中丢失的关键帧。替代地,响应于主要流中丢失的/迟到的帧,分层逻辑940B可以通过纠错电路967处理在次要比特流中接收到的前向纠错(例如,XOR)分组以纠正在主要比特流中接收到的比特。分层逻辑940B可以进一步发起用于重传丢失的/迟到的帧的请求,或者可以发起在由发射设备903A利用的视频流分层结构中的变化。这种请求可以通过任何无线电信道例如在远程侧RA 955B与RA 955A之间传输。接收器903B进一步包括拥塞指示器980B和队列占用监测器975B,它们可以用与拥塞指示器980A和队列占用监测器975A类似的方式工作以启动远程视频编码速率调整。从解码器核990输出的视频帧被处理用于显示,例如在视频输出端905处终止。
[0066] 图10是根据实施例的示例性系统1000的原理图。系统1000可以实现在图10中描绘的各功能块的全部或子集。例如,在一个实施例中,图形处理器1015实现如在图9中所描述的图形处理系统,所述图形处理系统包括基于感知质量的适配分层编码器速率控制器140、例如具有在本文其他地方描述的用于执行在图1至图9的背景中描述的这些方法和/或功能中的任一者的一个或多个特征。在一个特定的示例性实施例中,图形处理器1015包括固定的功能和/或可编程逻辑电路(例如,在至少一个执行单元(EU)或着色器核内)以执行硬件加速分层流编码器的基于感知质量的适配速率控制、和/或执行多层编码结构的选择性适配、和/或执行硬件加速编码器被控制至其的KPI目标的选择性适配。尽管系统1000不局限于此上下文,系统1000可以是移动设备。例如,系统1000可以并入膝上计算机、超级膝上计算机、平板机、触摸板、便携式计算机、手持式计算机、掌上型计算机、蜂窝电话、智能设备(例如,智能电话、智能平板机或移动电视)、移动互联网设备(MID)、消息设备、数据通信设备等。系统1000还可以是基础设施设备。例如,系统1000可以并入大尺寸电视、机顶盒、台式计算机或其他家用或商用网络设备中。
[0067] 在各实现方式中,系统1000包括耦合到HID 1020的平台1002。平台1002可以从(多个)个人媒体数据服务设备1030、(多个)个人媒体数据递送设备1040或其他类似的内容源接收采集的个人媒体数据。包括一个或多个导航特征的导航控制器1050可以用来例如与平台1002和/或HID 1020交互。以下将更详细地描述这些组件中的每个组件。
[0068] 在各实施例中,平台1002可以包括芯片组1005、处理器1010、存储器1012、存储设备1014、图形处理器1015、应用1016和/或无线电1018的任意组合。芯片组1005可以在处理器1010、存储器1012、存储设备1014、图形处理器1015、应用1016或无线电1018之中提供相互通信。例如,芯片组1005可以包括能够提供与存储器1014的相互通信的存储器适配器(未描绘)。
[0069] 处理器1010可以被实现为一个或多个复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器;x86指令集兼容处理器、多核或任何其他微处理器或中央处理单元(CPU)。在各实现方式中,处理器1010可以是(多个)多核处理器、(多个)多核移动处理器等。
[0070] 存储器1012可以被实现为易失性存储设备,如但不限于随机存取存储器(RAM)、动态随机存储器(DRAM)或静态RAM(SRAM)。
[0071] 存储器1014可以被实现为非易失性存储设备,如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附加存储设备、闪存、电池应急SDRAM(同步DRAM)和/或可接入网络的存储设备。在各实现方式中,存储器1014可以包括用于当例如包括多个硬盘驱动器时增加对有价值的数字媒体的存储性能增强型保护的技术。
[0072] 图形处理器1015可以对如用于显示的静止或视频媒体数据的图像执行处理,或者以高度并行的方式执行普通的计算功能。例如,图形处理器1015可以包括一个或多个GPU或者视觉处理单元(VPU)。可以使用模拟或数字接口来通信地耦合图形处理器1015与显示器1020。例如,接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或符合无线HD的技术中的任何一个接口。图形处理器1015可以与中央处理器1010一起集成在单芯片(即,SoC)上作为图形核或者被提供作为芯片组1005的一部分。在一些实现方式中,图形处理器1015可以是通信地耦合至芯片组1005的独立卡。在各示例性实施例中,图形处理器1015和/或中央处理器1010调用或以其他方式实现例如如在本文其他地方所描述的多层编码的基于感知质量的适配速率控制。
[0073] 如在此描述的,基于分层结构的适配和/或用于使针对瞬时比特率预算的感知质量最大化的帧编码参数预测的多层编码的基于感知质量的适配速率控制可以在各种硬件架构、元件设计或“IP核”中实现。作为又另一个实施例,在此在图形处理器的背景下描述的这些方法和功能可以延伸至通用处理器(包括多核处理器)。在进一步的实施例中,这些方法和功能可以在特定用途的消费电子产品设备(如游戏平台处理器)中实现。
[0074] 无线电1018可以包括能够使用各种适当的无线通信技术发射并接收信号的一个或多个无线电。这种技术可以涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网和卫星网。在跨这类网络通信时,无线电1018可以根据任意版本的一个或多个可适用标准进行操作。
[0075] 在各实现方式中,HID 1020可以包括任何电视机类型监测器或显示器。HID 1020可以包括例如计算机显示屏、触摸屏显示器、视频监视器、电视机类型的设备和/或电视机。HID 1020可以是数字的和/或模拟的。在各实现方式中,HID 1020可以是全息显示器。同样,HID 1020可以是可以接收视觉投影的透明表面。这种投影可以传达各种形式的信息、图像和/或物体。例如,这种投影可以是针对移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用1016的控制下,平台1002可以在HID 1020上显示用户界面1022。
[0076] 在各实现方式中,平台1002可以从具有一个或多个导航特征的导航控制器1050中接收控制信号。控制器1050的导航特征可以用来例如与用户界面1022交互。在实施例中,导航控制器1050可以是定位设备,所述定位设备可以是允许用户输入空间(如连续的和多维的)数据到计算机的计算机硬件组件(特别是人机接口设备)。如图形用户界面(GUI)和电视机和监视器的许多系统允许用户使用物理姿势控制计算机或电视机并向计算机或电视机提供数据。
[0077] 可以通过指针、光标、聚焦环或在显示器上显示的其他视觉指示符的移动在显示器(例如,HID 1020)上复制控制器1050的导航特征的移动。例如,在软件应用1016的控制下,位于导航控制器1050上的导航特征可以例如被映射为在用户界面1022上显示的虚拟导航特征。在实施例中,控制器1050可以不是独立组件但可以集成在平台1002和/或HID1020内。然而,本公开不限于这些元素或此处显示或描述的内容。
[0078] 在各实施例中,系统1000可以被实现为无线系统、有线系统或二者的组合。当被实现为无线系统时,系统1000可以包括适合于通过如一个或多个天线、发送器、接收器、收发器、放大器、滤波器、控制逻辑等的无线共享介质进行通信的组件和接口。无线共享介质的示例可以包括无线频谱部分,如RF频谱等。当被实现为有线系统时,系统1000可以包括适用于通过有线通信介质(如输入/输出(I/O)适配器、利用相应有线通信介质连接I/O适配器的物理连接器、网络接口卡(NIC)、光盘控制器、视频控制器、音频控制器等)进行通信的组件和接口。有线通信介质的示例可以包括导线、电缆、金属引线、印刷电路板(PCB)、背板、交换光纤、半导体材料、双绞线、同轴电缆、光纤等。
[0079] 如上所述,系统1000可以用变化的物理风格或形成因数来体现。图11展示了可以用其体现系统1100的小形成因数设备1100的实施例。例如,在实施例中,设备1100可以被实现为具有无线能力的移动计算设备。例如,移动计算设备可以指具有处理系统和移动电源(如一个或多个电池)的任何设备。
[0080] 移动计算设备的示例可以包括个人计算机(PC)、膝上计算机、超级膝上计算机、平板机、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视、智能设备(例如,智能电话、平板机或智能电视)、移动互联网设备(MID)、消息设备、数据通信设备等。
[0081] 移动计算设备的示例还可以包括被配置来由人穿戴的计算机和/或媒体采集/发射设备,如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋计算机、服装计算机以及其他可穿戴计算机。在各实施例中,例如移动计算设备可以实现为能够执行计算机应用程序、以及语音通信和/或数据通信的智能电话。举例来讲,尽管一些实施例可以用被实现为智能电话的移动计算设备描述,可以理解的是,其他实施例也可以使用其他无线移动计算设备实现。实施例不局限于本上下文中。
[0082] 如图11中所示,设备1100可以包括外壳1102、显示器1104、输入/输出(I/O)设备1106和天线1108。设备1100还可以包括导航特征1112。显示器1104可以包括适合于移动计算设备的用于显示信息的任何适当的显示单元。I/O设备1206可以包括用于将信息输入移动计算设备中的任何适当的I/O设备。I/O设备1106的示例可以包括字母数字键盘、数字小键盘、触摸板、输入建、按钮、开关、麦克风、扬声器、话音识别设备和软件等。信息还可以借助于麦克风(未示出)被输入设备1100中并且可以由话音识别设备处理。实施例并不局限于本上下文中。
[0083] 可以使用硬件元件、软件元件或两者的组合实现在此描述的各实施例。硬件元件或模块的示例包括:处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件或模块的示例包括:应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、数据字、值、符号、或其任意组合。判定是否是使用硬件元件和/或软件元件来实现实施例可以根据针对设计选择所考虑的任意数量的因数而变化,如但不限于:期望的计算速率、功率电平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
[0084] 至少一个实施例的一个或多个方面可以由存储在机器可读存储介质上的代表性指令实现。这类指令在由机器对其进行执行的过程中可以完全地或至少部分地驻留在主存储器内和/或在处理器内,存储指令的主存储器和处理器部分然后还组成机器可读存储介质。可编程逻辑电路可以具有由实现计算机可读介质的处理器配置的寄存器、状态机等。这种如所编程的逻辑电路然后可以被理解为已经被物理地转换成落入在此描述的实施例的范围内的系统。表示处理器内的各逻辑的指令当由机器读取时还可以致使机器制造遵循在此描述的架构的逻辑和/或执行在此描述的技术。被称为元件设计或IP核的这种表示可以存储在有形的、机器可读的介质上或被供应至不同的消费者或制造设施以加载到实际上制造逻辑的制造机器或处理器中。
[0085] 虽然已经参照各实现方式描述了在此陈述的某些特征,并不打算在限制性意义上解释本说明书。因此,本公开涉及的对本领域技术人员而言明显的对在此描述的实现方式以及其他实现方式的各种修改被视为是在本公开的精神和范围内。
[0086] 以下示例涉及具体的示例性实施例。
[0087] 在一个或多个第一实施例中,计算机实现的可缩放视频编码(SVC)方法包括:接收原始视频帧,并且使用编码参数值将所述帧编码为分层流,所述编码参数值是基于与分配给所述分层流的每一层的感知质量水平目标相关联的编码关键性能指标(KPI)目标确定的。所述分层刘然后被存储在存储器中。
[0088] 为了促进所述一个或多个第一实施例,所述方法进一步包括:对所述分层流的所述编码进行适配以便响应于网络拥塞通过在降低的KPI目标上丢弃时间增强层或任何剩余时间增强层的编码帧来改变所述感知质量水平。
[0089] 为了促进所述一个或多个第一实施例,所述方法进一步包括:对所述分层流的所述编码进行适配以便响应于网络拥塞通过改变所述分层结构内的帧时间、空间或质量层水平来改变所述感知质量水平。
[0090] 为了促进所述一个或多个第一实施例,所述方法进一步包括:针对非分层结构中的帧,通过浮动编码参数并且对所述帧进行迭代编码直到实现预先确定的感知质量水平目标来确定与所述预先确定的感知质量水平目标相对应的所述编码参数值。所述方法进一步包括:根据用所述编码参数值编码的数据来重构帧;基于所述重构帧与所述相应的原始帧之间的差异生成与所述预先确定的感知质量水平目标相关联的所述KPI目标。
[0091] 为了促进所述一个或多个第一实施例,所述感知质量水平目标包括估计平均意见评分(eMOS),并且所述编码参数是量化参数(QP)。所述KPI目标是峰值信噪比(PSNR),并且针对与相同的eMOS相关联的所述分层流的任何层中的编码帧采用相同的目标PSNR值。
[0092] 为了促进所述一个或多个第一实施例,所述方法进一步包括:确定当前比特率预算。将所述帧编码为所述分层流进一步包括:响应于所述当前比特率预算满足阈值而利用基于与第一感知质量目标相关联的第一KPI目标所确定的编码参数值来对基层的帧以及分层预测增强层的帧进行编码。将所述帧编码为所述分层流进一步包括:响应于所述当前比特率预算未能满足所述阈值而利用基于与比所述第一感知质量目标低的第二感知质量目标相关联的第二KPI目标所确定的编码参数值来对所述基层的帧以及所述分层预测增强层的帧进行编码。
[0093] 为了促进所述一个或多个第一实施例,所述方法进一步包括:针对非分层结构中的帧,通过浮动第一编码参数并且对所述帧进行迭代编码直到实现所述第一感知质量目标来确定与所述第一感知质量目标相对应的所述第一编码参数值。所述方法进一步包括:根据用所述第一编码参数值编码的数据来重构帧。
[0094] 所述方法进一步包括:基于所述重构帧与所述相应的原始帧之间的差异生成与所述第一感知质量目标相关联的所述第一KPI目标。所述方法进一步包括:针对所述非分层结构中的帧,通过浮动第二编码参数并且对所述帧进行迭代编码直到实现第二感知质量目标来确定与所述第二感知质量目标相对应的所述第二编码参数值。所述方法进一步包括:根据用所述第二编码参数值编码的数据来重构帧。所述方法进一步包括:基于所述重构帧与所述相应的原始帧之间的差异生成与所述第二感知质量目标相关联的所述第二KPI目标。
[0095] 为了促进以上所述实施例,所述方法进一步包括:利用基于第一KPI目标确定的编码参数值对所述基层帧进行编码进一步包括对多个关键帧进行迭代编码同时浮动所述编码参数值直到实现所述第一KPI目标。利用所述第一编码参数值对所述增强层帧进行编码进一步包括:对依赖于所述关键帧的一个或多个帧进行迭代编码同时浮动所述编码参数值直到实现所述第一KPI目标。
[0096] 为了促进所述一个或多个第一实施例,所述方法进一步包括:构造包括所述分层流的主要编码视频流,并且构造与最低感知质量和最低比特率相关联的次要编码视频流。在进一步的实施例中,将所述帧编码为所述分层流进一步包括:通过利用基于与最高感知质量目标相关联的第一KPI目标确定的编码参数值对第一基层的帧以及第一分层预测增强层的帧进行编码来将所述帧编码为第一分层流。在进一步的实施例中,所述方法进一步包括:通过利用基于与较低感知质量目标相关联的第二KPI目标确定的编码参数值对第二基层的帧以及第二分层预测增强层的帧进行编码来将所述帧编码为第二分层流。所述方法进一步包括:确定当前比特率预算,并且根据与由所述当前比特率预算准许的最佳感知质量相关联的所述第一或第二分层流来构造所述主要编码视频流。
[0097] 为了促进以上所述实施例,将所述帧编码为所述分层流进一步包括:通过利用基于与最高感知质量目标相关联的第一KPI目标确定的编码参数值对第一基层的帧以及第一分层预测增强层的帧进行编码来将所述帧编码为第一分层流。构造所述辅助流进一步包括:重新发送所述第一分层流的关键帧。响应于比特率预算减少,所述方法进一步包括:通过利用基于与较低感知质量目标相关联的第二KPI目标确定的编码参数值对第二基层的帧以及第二分层预测增强层的帧进行编码来将所述帧编码为第二分层流,在这种情况下,构造所述辅助流包括:发送针对所述第二分层流的关键帧的差错恢复序列。
[0098] 在一个或多个第二实施例中,可缩放视频编码器包括:视频输入端,所述视频输入端用于接收多个原始视频帧;以及分层逻辑,所述分层逻辑用于将编码关键性能指标(KPI)与目标感知视频质量水平进行关联。所述可缩放视频编码器进一步包括:编码器核,所述编码器核耦合于所述视频输入端用于通过使用基于KPI确定的编码参数值将所述帧编码为具有所述目标感知质量的分层流。所述可缩放视频编码器进一步包括:存储器,所述存储器用于存储所述分层流。
[0099] 为了促进所述一个或多个第二实施例,所述可缩放视频编码器进一步包括感知质量估计器,所述感知质量估计器用于通过针对校准结构或针对所述分层流的顶部时间增强层生成估计平均意见评分(eMOS)来估计从所述编码器核输出的流的感知质量。
[0100] 为了促进所述一个或多个第二实施例,所述分层逻辑用于控制所述编码器核以便响应于网络拥塞通过在降低的KPI目标上丢弃时间增强层或任何剩余时间增强层的编码帧来改变所述分层流的视频感知质量水平。
[0101] 在一个或多个第三实施例中,所述可扩展视频解码器包括:缓冲器,所述缓冲器用于接收具有感知质量导向的时间分层结构的比特流;以及解码器核,所述解码器核耦合于所述缓冲器用于将所述比特流解码成视频帧。所述可扩展视频解码器进一步包括:分层逻辑电路,所述分层逻辑电路耦合于所述解码器核或缓冲器用于基于包含在所述比特流中的分层信息确定对丢失的或延迟的视频帧的响应。
[0102] 为了促进所述一个或多个第三实施例,所述可扩展视频解码器包括:感知质量估计器,所述感知质量估计器耦合于所述缓冲器或所述解码器核用于生成所述视频帧的无参考感知质量估计并且用于输出远程编码速率控制信号或编码参数。
[0103] 为了促进所述一个或多个第三实施例,所述缓冲器用于接收具有感知质量导向的时间分层结构的主要比特流。所述缓冲器还用于接收具有低于所述主要比特流的较低感知质量相关联的单层结构的次要比特流。所述分层逻辑电路用于使用从所述辅助流中解码的复制关键帧替换从所述主要流中丢失的关键帧。
[0104] 为了促进所述一个或多个第三实施例,所述分层逻辑电路进一步用于通过纠错电路处理所述次要比特流中的前向纠错分组,并且用于纠正在所述主要流中接收到的比特。为了促进所述一个或多个第二实施例,所述分层逻辑电路进一步用于发起对重传丢失的或迟到的视频帧的请求。
[0105] 在一个或多个第四实施例中,联网通信系统包括发射设备和接收设备。所述发射设备包括可缩放视频编码器和远程侧速率适配器。所述可缩放视频编码器进一步包括:视频输入端,所述视频输入端用于接收多个视频帧。所述可缩放视频编码器进一步包括:分层逻辑电路,所述分层逻辑电路用于将编码关键性能指标(KPI)与目标感知视频质量水平进行关联。所述可缩放视频编码器进一步包括:编码器核,所述编码器核耦合于所述视频输入端用于通过使用基于所述KPI确定的编码参数值将所述帧编码为具有所述目标感知质量的分层流。所述远程侧速率适配器耦合于所述分层逻辑电路并且用于响应于接收远程编码速率控制信号引起所述目标感知质量或相关联的KPI的变化。所述接收设备包括:缓冲器,所述缓冲器用于接收所述分层流;以及解码器核,所述解码器核耦合于所述缓冲器用于将所述分层流解码成视频帧。所述接收设备进一步包括:感知质量估计器,所述感知质量估计器耦合于所述缓冲器或所述解码器核用于生成所述视频帧的无参考感知质量估计并且用于将所述远程编码速率控制信号输出至所述远程侧速率适配器。
[0106] 为了促进所述一个或多个第四实施例,所述发射设备进一步包括:认知无线电,所述认知无线电被配置成用于基于所述目标感知质量或所述无参考感知质量估计来动态地修改无线电参数。
[0107] 为了促进所述一个或多个第四实施例,所述接收设备进一步包括:分层逻辑电路,所述分层逻辑电路耦合于所述解码器核或缓冲器用于基于包含在所述比特流中的分层信息确定对丢失的或延迟的视频帧的响应。在一个或多个第五实施例中,一种或多种其上存储有指令的计算机可读介质,所述指令当由计算机处理器执行时使所述处理器执行所述一个或多个第一实施例中的任何一个实施例。
[0108] 在一个或多个第六实施例中,可缩放视频编码器包括:接收装置,所述接收装置用于接收原始视频帧;以及感知质量映射装置,所述感知质量映射装置用于将编码关键性能指标(KPI)与目标感知视频质量水平进行关联。所述可缩放视频编码器进一步包括:编码装置,所述编码装置耦合于所述接收装置用于通过使用基于KPI确定的编码参数值将所述帧编码为具有所述目标感知质量的分层流。所述可缩放视频编码器进一步包括:存储装置,所述存储装置用于存储所述分层流。
[0109] 在一个或多个第七实施例中,可扩展视频解码器包括:存储装置,所述存储装置用于接收具有感知质量导向的时间分层结构的比特流;以及解码装置,所述解码装置耦合于所述存储装置用于将所述比特流解码成视频帧。所述可扩展视频解码器进一步包括:控制装置,所述控制装置耦合于所述解码器核或缓冲器用于基于包含在所述比特流中的分层信息确定对丢失的或延迟的视频帧的响应。
[0110] 将认识到,这些实施例不局限于如此描述的这些示例性实施例,而是可以在不背离所附权利要求书的范围的情况下通过修改和变更来实践。例如,以上实施例可以包括特征的特定组合。然而,以上实施例不局限于这个方面,并且在各实现方式中,以上实施例可以包括仅采取这类特征的子集、采取这类特征的不同顺序、采取这类特征的不同组合和/或采取除了明确例举的那些特征之外的附加特征。因此,范围连同被授予权利的这些权利要求书的等效物的全部范围应参照所附权利要求书来确定。