首页 / 专利库 / 视听技术与设备 / 视频编码层 / 视频编码方法和系统

视频编码方法和系统

阅读:241发布:2020-11-25

专利汇可以提供视频编码方法和系统专利检索,专利查询,专利分析的服务。并且本 发明 涉及 视频编码 方法和系统,在一个实施方式中,一种方法包括:在单一编码引擎处接收诸如 帧 率、配置文件和等级以及编码标准的根据第一版本的视频特性的输入 视频流 ,并通过单一编码引擎,并行生成多个流,这多个流包括根据第一版本的视频特性的第一编码流和根据第二版本的视频特性的第二编码流,第二编码流基于用于生成第一编码流的视频编码信息而生成。,下面是视频编码方法和系统专利的具体信息内容。

1.一种方法,包括:
在单一编码引擎处接收根据第一版本的视频特性的输入视频流;以及
通过所述单一编码引擎,并行生成多个流,所述多个流包括根据所述第一版本的视频特性的第一编码流,以及根据第二版本的视频特性的第二编码流,所述第二编码流基于用于生成所述第一编码流的视频编码信息而生成。
2.根据权利要求1所述的方法,其中,所述视频特性包括率,且其中,所述第一版本和所述第二版本的帧率值不同。
3.根据权利要求2所述的方法,其中,所述视频编码信息包括用于帧间预测的运动矢量搜索结果。
4.根据权利要求3所述的方法,其中,所述运动矢量搜索结果包括运动矢量、一个编码单元的分区、运动矢量搜索范围或它们的任何组合。
5.根据权利要求3所述的方法,其中,所述第二版本包括低于所述第一版本的帧率,其中生成包括:通过共享在生成所述第一编码流时应用的所述运动矢量搜索结果,在较低帧率视频上生成所述第二编码流,其中发生所述第二编码流的生成,而无需执行额外的运动搜索操作。
6.根据权利要求3所述的方法,其中,所述第二版本包括低于所述第一版本的帧率,其中生成包括:通过从对应于所述第一编码流的运动矢量推导运动矢量,在较低帧率视频上生成所述第二编码流。
7.根据权利要求3所述的方法,其中,所述第一编码流包括基本层和增强层视频流的组合,而所述第二编码流仅包括基本层或增强层视频流,所述运动搜索结果对应于所述第一编码流的生成,并用于为所述基本层视频流生成运动矢量。
8.根据权利要求2所述的方法,其中,所述视频编码信息包括帧间和帧内预测的模式决定。
9.根据权利要求1所述的方法,其中,所述视频特性包括配置文件和等级,且其中所述第一版本和所述第二版本在配置文件、等级或它们两者的组合上不同。
10.一种系统,包括:
硬件配置的单一编码引擎,其接收根据第一版本的视频特性的输入视频流,且并行生成包括不同版本的所述视频特性的多个编码流,所述多个编码流基于用于生成所述多个编码流之一的视频编码信息而生成。

说明书全文

视频编码方法和系统

[0001] 相关申请的交叉参考
[0002] 本申请要求于2012年7月10日提交的美国专利申请第13/545,261号的优先权,其全部内容通过引用结合于此。

技术领域

[0003] 本公开主要涉及视频编码/转码。

背景技术

[0004] 视频技术的进展已导致多种机制,通过这些机制消费者可接收和享受视频(和音频)演示。例如,信号可通过卫星或电缆在家中或商业场所的电子装置上接收,并作为高比特率、高清晰度(HD)流分配,用于通过同轴电缆多媒体联盟(multimedia over coax alliance)(MoCA)网络在一个房间中观看,或作为低比特率流分配,用于通过无线在便携设备上观看,或作为到另一客户端设备的流内容分配,用于通过互联网转移位置观看。随着技术的提高,实现这些功能的各种方法继续发展。发明内容
[0005] 本公开提供了一种方法,包括:在单一编码引擎处接收根据第一版本的视频特性的输入视频流;以及通过单一编码引擎,并行生成多个流,多个流包括根据第一版本的视频特性的第一编码流,以及根据第二版本的视频特性的第二编码流,第二编码流基于用于生成第一编码流的视频编码信息而生成。
[0006] 优选地,视频特性包括率,且其中,第一版本和第二版本的帧率值不同。
[0007] 优选地,视频编码信息包括用于帧间预测的运动矢量搜索结果。
[0008] 优选地,运动矢量搜索结果包括运动矢量、一个编码单元的分区、运动矢量搜索范围或它们的任何组合。
[0009] 优选地,第二版本包括低于第一版本的帧率,其中生成包括:通过共享在生成第一编码流时应用的运动矢量搜索结果,在较低帧率视频上生成第二编码流,其中发生第二编码流的生成,而无需执行额外的运动搜索操作。
[0010] 优选地,第二版本包括低于第一版本的帧率,其中生成包括:通过从对应于第一编码流的运动矢量推导运动矢量,在较低帧率视频上生成第二编码流。
[0011] 优选地,推导基于对应于第一编码流的图像的重复或非重复的图案。
[0012] 优选地,该方法进一步包括选择图像重复图案的帧内周期,从而对齐不同帧率的流的帧内图像。
[0013] 优选地,该方法进一步包括用另一参考图像取代对应于第一编码流并对于第二编码流不可用的参考图像。
[0014] 优选地,推导进一步包括基于当前图像、进行替代的参考图像和不可用的参考图像之间的时间距离差异,缩放对应于第一编码流的运动矢量。
[0015] 优选地,该方法进一步包括选择图像的重复图案的帧内周期,作为时间缩减因数的倍数。
[0016] 优选地,第一编码流包括基本层和增强层视频流的组合,而第二编码流仅包括基本层或增强层视频流,运动搜索结果对应于第一编码流的生成,并用于为基本层视频流生成运动矢量。
[0017] 优选地,视频编码信息包括帧间和帧内预测的模式决定。
[0018] 优选地,对应于第二编码流的帧间预测的分区与对应于第一编码流的帧间预测的分区相同。
[0019] 优选地,当相同帧内图像在两个流之间共享时,对应于第一编码流的每个编码单元的帧内预测模式决定用于第二编码流。
[0020] 优选地,视频特性包括配置文件和等级,且其中第一版本和第二版本在配置文件、等级或它们两者的组合上不同。
[0021] 优选地,视频编码信息包括用于帧间预测的运动矢量搜索结果,运动矢量搜素结果包括运动矢量、一个编码单元的分区、运动矢量搜索范围或它们的任何组合。
[0022] 优选地,第二编码流的生成基于用于提供第一编码流的第一运动矢量搜索范围,或作为第一运动矢量搜索范围的子集的第二运动矢量搜索范围,第一编码流和第二编码流基于时间上共同的搜索操作而提供。
[0023] 优选地,视频编码信息包括给定编码单元的帧间或帧内预测之间的选择或帧内预测的帧内模式决定。
[0024] 本公开还提供了一种系统,包括:以硬件配置的单一编码引擎,其接收根据第一版本的视频特性的输入视频流,且并行生成包括不同版本的视频特性的多个编码流,多个编码流基于用于生成多个编码流之一的视频编码信息而生成。附图说明
[0025] 参考以下附图,可更好地理解本公开的许多方面。附图中的组件不一定按比例,而重点在于清楚地示出本公开的原理。此外,在附图中,相似的参考标号在几个示图中指示相应的部分。
[0026] 图1是可以采用视频编码系统的实施方式的示例环境的框图
[0027] 图2A至图2B是示出来自输入视频流的不同帧率的视频流的生成和在降低的帧率流中不可用的参考图像的替代选择的示意图。
[0028] 图3是示出编码引擎的一个实施方式中不同视频编码标准或相同编码标准的不同配置文件的示例运动搜索范围的一个实施方式的框图。
[0029] 图4A至图4B是示出示例编码引擎的特定实施方式的框图。
[0030] 图5是示出示例视频编码方法的一个实施方式的流程图

具体实施方式

[0031] 本发明在这里公开了视频编码系统和方法的特定实施方式,这些系统和方法包括多个实时并行编码操作之间共享视频编码信息的单一编码引擎,从而提供多个编码流。视频编码信息包括运动矢量搜索结果(例如运动矢量、一个编码单元或一个宏的分区、运动矢量搜索范围等),且在一些实施方式中包括模式决定,如用于编码单元或宏块的帧间或帧内预测模式,以及如果帧内预测被选择用于编码单元或宏块,则还包括帧内预测方向。应该注意,本领域普通技术人员应该理解,编码单元是指新兴的HEVC视频压缩标准中的基本编码单元,而宏块是指MPEG-2、AVC、VC-1和VP8视频压缩标准中的基本编码单元。宏块和编码单元是这里可互换使用的两个术语。这里对编码的参考包括编码(例如基于非压缩流的接收)和转码(例如基于压缩流的接收,和利用解压或没有解压的压缩操作)。
[0032] 在对应于不同帧率(例如,帧率在这里也称为图像速率,作为一个示例视频特性)的视频编码系统的一个实施方式中,当编码来自相同输入的较低帧率视频时,单一编码引擎用于通过共享帧间预测的运动矢量搜索结果和/或共享帧间和帧内预测这两个的模式决定,实时生成原始高帧率输入视频的一个或多个压缩流,和低于原始输入视频的一个或多个较低帧率视频。
[0033] 在对应于多个配置文件和等级(例如,配置文件和等级是另一个示例视频特性)的视频编码系统的一个实施方式中,当编码来自相同输入的不同配置文件和等级的视频时,单一编码引擎用于通过共享帧间预测的运动矢量搜索结果和/或共享帧内预测的帧内模式决定和/或编码单元或宏块的帧间或帧内预测之间的选择,实时生成不同配置文件和等级的压缩流。
[0034] 在传统系统中,相同编码引擎的多个实例可以用来支持实时并行编码原始输入视频以及较低帧率或不同配置文件和等级版本的输入视频,这可增加成本,或支持在实时视频速率倍数的速度下,通过相同编码引擎,编码原始输入视频和较低帧率或不同配置文件和等级版本,这增加了电路时钟速率和功耗。运动矢量搜索是功能之一,该功能消耗更多的处理资源以及DRAM带宽成本,无论其是以硬件还是软件实现。如果搜索范围不够,这也是可显著影响编码质量的功能之一。如视频编码系统的特定实施方式所执行,不同大小、不同帧率或不同配置文件的相同视频之间运动搜索结果的共享可节省硅和DRAM成本。此外,在不同帧率和/或配置文件和/或等级下的多个不同编码流的生成在视频编码系统的特定实施方式中实现,而不增加超出输入视频实时视频帧率的速度。
[0035] 已经概述了视频编码系统的特定实施方式的特征,现在将详细参考本公开的说明,如附图中示出。虽然将结合这些附图描述本公开,但不旨在将其限制于这里公开的一个或多个实施方式。此外,虽然该说明识别或描述一个或多个实施方式的细节,但这些细节不一定是每个实施方式的一部分,也不一定是与单一实施方式或所有实施方式关联的所有所述优点。相反,该意图是覆盖如所述权利要求定义,包括在本公开精神和保护范围内的所有替代、修改和等价物。此外,应该理解,在本公开的说明书中,权利要求不必限制于说明中所述的具体实施方式。
[0036] 参考图1,其示出示例环境的框图,其中可采用视频编码系统的实施方式。本领域普通技术人员应该理解,在本公开的背景下,可以考虑可用来编码的其他系统,且因此图1仅是说明性目的,其中其他变化也可考虑在本公开的保护范围内。图1中示出的环境包括家庭娱乐系统100,其包括电子装置102、嵌入到电子装置102的编码引擎104、以及多个多媒体设备,包括智能电话106、笔记本计算机108和电视机110。在一个实施方式中,电子装置102配置为家庭媒体网关机顶盒,其中来自电缆或卫星(或地面)的相同输入视频通过单一编码引擎104同步实时编码至不同比特率,如用于通过MoCA在卧室中的电视机110上观看的高比特率高清晰度(HD)流,以及通过无线用于便携设备(例如智能电话106、移动电话、PDA等)低比特率流,和/或用于通过互联网转移位置观看的到另一客户端(例如笔记本计算机108)的流。在一些实施方式中,电子装置102可实施为其他电子设备之中的服务器设备、路由器、计算机、电视机。
[0037] 低比特率流可以是相比原始输入视频的低值视频特性,该原始输入视频提供给电子装置102的输入(例如,较低帧率,如在原始输入一半帧率下的流,或不同配置文件和等级,如在AVC/H.264视频编码标准中较低的等级2.1与等级3.1)。下面的说明从涉及关于不同帧率用途的视频特性的实施方式开始,随后接着是寻址其他视频特性的特定实施方式。相同视频内容的多个帧率流在异构视频消费环境中特别有用。例如,使用多个屏幕,超高质量视频如1080p60的直播体育比赛可在客厅中大屏幕110中观看,而与此同时,1080p30的相同比赛可使用家庭无线路由器通过WiFi在厨房或后院中的便携设备(例如智能电话
106、iPAD等)中观看,或当用户可能必须在比赛中途开车离开,同时其家庭可能仍在家里观看比赛时,其可通过3G/4G无线IP网络在车辆显示屏上以1080p30观看。同时不同场所的多个屏幕上相同视频内容的无缝消耗可能需要实时编码引擎104,从而同时生成具有相同输入视频的多个帧率视频。
[0038] 实时多速率视频编码引擎104也具有无线视频显示中的一个或多个应用,如通过WiFi个视频,或通过WiGig个视频,其中由于运动物体可能堵塞发射器和接收器之间的传输路径,视频传输速率的可用带宽可非常快速地改变。
[0039] 如果通常包括例如视频编码引擎104的发射器生成高和低比特率流,则视频编码系统的特定实施方式可对于视频服务质量提供好处。低比特率流可以是低于原始输入流帧率的相同视频,并因此当可用带宽下降时,满足较低的传输速率。
[0040] 实时的多个帧率视频编码引擎104(例如其实时生成具有相同输入视频的多个压缩视频流)可能具有吸引,因为具有视频帧率转换器的显示设备显现为受欢迎的特征,其中当在屏幕上显示时,低帧率流可以转换为高帧率。
[0041] 虽然以上重点已放在涉及使用不同帧率的应用和/或特征/益处上,呈现不同配置文件和等级流的能力也具有可符合消费者的众多有益应用,并可在这里考虑。例如,同时流式传输相同视频内容到多个屏幕上的机顶盒应用形成为重要特征。不同的屏幕可能需要机顶盒传输不仅比特率、帧率和/或图像大小不同、而且配置文件和等级也不同的相同视频内容。即,不同的视频显示设备可以具有不同的解码能力,从而即使对于相同的编码标准,每个设备可支持所选的配置文件和等级。例如,便携设备如iPad可支持AVC配置文件/等级4.2,同时移动电话可能仅支持AVC配置文件/等级3.2。实时多速率视频编码引擎104可能需要以同时具有相同输入视频的不同配置文件和等级实时生成多个压缩视频流。
[0042] 在下面的说明中,结合图2A至图2B(帧率)和图3(不同配置文件和等级或编码标准的运动搜索范围)中的说明,公开涉及提供示例视频特性(例如帧率和配置文件和等级)不同的多个编码流的视频编码方法的各种实施方式。应该理解,在本公开的说明书内,视频编码系统的特定实施方式可以采用这些方法中的一个或任何组合。
[0043] 现将参考图2A至图2B,它们示出了一些示例视频编码方法,其涉及提供不同帧率的多个编码流。在视频编码方法的一个实施方式中,当低帧率视频通过共享通过原始(例如,如在给定电子装置中接收)输入视频帧率编码的流的运动搜索结果而编码时,运动搜索在原始输入帧率的视频中执行。例如,原始输入视频的帧率在60帧每秒时(例如1080p60)可以是1920×1080,而较低的帧率视频在30帧每秒时(例如1080p30)可以是1920×1080。在这个实例中,运动搜索在编码1080p60视频时执行,而编码1080p30视频的运动矢量从
1080p60视频的那些中推导,而不进行其自身的运动搜索。较低帧率视频的运动矢量如何推导取决于GOP(图像组)结构。在一个实施方式中,通过选择GOP的帧内周期为图像的偶数,视频编码方法便于运动矢量推导,这使视频序列中相同图像可选择为1080p60和1080p30流中的帧内图像(帧内编码或I图像),且这进一步使1080p30中帧内图像距离为1080p60中的一半。
[0044] 作为一个实例,注意力转到图2A中的示图200A,其示出提供给编码引擎104输入的未压缩输入视频流201,以及表现出图像速率差异的两个视频流202和204(每个示出一个GOP序列)的生成。应该注意,为简洁起见,术语“图像”和“帧”在公开中可互换使用。同样的想法适用于交错(隔行)格式的视频,其中“场”是图像的基本单元。为了说明,假设生成的视频流202对应于1080p60视频的GOP,而另一生成的视频流204对应于1080p30视频的GOP。应该注意,额外的视频流可以在编码引擎104中生成,如与视频流204下方示出的一部分图像一起的平虚线表示。如这个实例中示出,1080p60视频202中所选GOP是“I0P0P1P2P3P4P5P6I1”(以显示次序)。1080p30视频204中的GOP通过视频编码系统选择为“I0P1P3P5I1”(同样地以显示次序)。如果1080p30视频204中所选P图像使用不是1080p30视频序列中图像之一的参考(例如,不存在于1080p30视频204),例如其中P1使用P0作为1080p60序列中的参考,而P0不是1080p30序列中图像之一(如从P1到不存在的P0的虚线参考箭头表示),则P1使用其之前的参考图像(例如I0图像,如从P1到I0的实心参考箭头表示)作为1080p30视频204中的参考。通过P1和I0之间的时间距离208与P1和P0之间的时间距离206的比率,1080p60视频202中的P1到P0的运动矢量缩放到1080p30视频204中的P1到I0图像参考。在这个实例中,如果P1和P0之间的时间距离206是一个单位,则P1和I0之间的时间距离208是两个单位,且运动矢量通过因数2缩放。如果1080p60视频202中所选P图像使用仍是1080p30视频204中之一的参考,例如其中P1使用I0作为参考,而I0仍是1080p30视频204中图像之一,则P1到I0的相同运动矢量可在1080p30视频序列中使用,而不用缩放。
[0045] 在又 一个 实例 中,在 图2B的示 图200B示 出的1080P60和1080P30 视频的背景下,假设非压缩输入视频209且1080p60视频210中的所选GOP是“I0B0B1P0B2B3P1B4B5P2B6B7I1”而1080p30视频212中的所选GOP是“I0B1B2P1B5B6I1”。
如与位于视频流212下方一部分图像一起的水平虚线所说明的,在一些实施方式中,可生成额外的流。如果1080p30视频212中所选B图像使用不是该流212中图像之一的参考,例如其中B1使用I0(如实心箭头示出的参考)和P0作为双向预测的两个参考,而P0不再在
1080p30序列212中(如虚线参考箭头表示),则所选B图像使用其最邻近的I或P图像作为B1帧间预测的其参考(例如I0和P1,每个都用实心参考箭头表示)。因为P1不是1080p60视频210中B1的参考,通过B1和P1之间的时间距离216与B1和P0之间的时间距离214的比率,缩放B1到P0的运动矢量,可推导出B1到P1的运动矢量。在这个实例中,如果B1和P0之间的时间距离214是一个单位,则B1和P1之间的时间距离216是四个单位,且B1和P1之间的运动矢量通过以因数4缩放B1和P0之间的那些来推导出。
[0046] 在1080p30视频212中发现运动矢量之后,运动补偿和其他处理功能如变换、量化、逆量化、逆变换、重建、环路滤波和熵编码(entropy coding)可执行用于1080p30视频212,其独立于1080p60视频210,以防止任何漂移。应该注意,在上述实例中,1080p30帧间预测中使用的重建图像P1不同于1080p60帧间预测中使用的图像。
[0047] 上述示例视频编码方法可应用在一些实施方式中,从而以不同时间缩减因数的帧率编码视频。当时间缩减因数不是偶数时,所选GOP的帧内周期可以是时间缩减因数的倍数。在一些实施方式中,所选GOP的帧内周期可以不是时间缩减因数的倍数,且不同帧率的帧内图像没有对齐。在这后一种情况下,较低帧率下的视频可以具有其自身的帧内模式决定块,并选择其自身帧内图像代替原始视频GOP中帧间预测图像。帧内模式决定块通常不访问DRAM,并消耗微不足道的硅面积或功率。在一些实施方式中,较低帧率视频中的缩放运动矢量也可通过在小搜索范围内执行细化搜索而细化。
[0048] 关于帧间预测目的的分区,在一个实施方式中,较低帧率的帧间预测分区可以保持较高帧率中使用的那些分区。在一些实施方式中,当低帧率和高帧率视频共享相同帧内图像时,每个编码单元或宏块的帧内预测模式决定也可在低帧率和高帧率视频之间共享。例如,在AVC模式中,P或B图像也可具有通过帧内模式编码的宏块。每个宏块的帧间或帧内决定也可通过低帧率和高帧率视频共享。
[0049] 在一些实施方式中,共享方案的运动搜索可以扩展到实时的可缩放视频编码器,其中不同时间层可以通过相同编码器(例如编码引擎104)实时编码。增强层的运动搜索结果可以用于生成基本层的运动矢量,所述基本层是较低的帧率。
[0050] 在一些实施方式中,共享方案的运动搜索可以应用于实时3D视频编码器,其中多个视图可以通过相同编码器实时编码。一个视图的运动搜索结果可以通过3D视频的多视点编码方法中的相邻视图而共享。
[0051] 已经描述了关于图像速率视频特性的视频编码方法的特定实施方式,现注意力转到图3,其与关于不同配置文件和等级和/或编码标准的特定视频编码方法的讨论相关联。虽然不同的配置文件和等级可具有不同的最大允许帧率、最大允许图像大小和/或最大允许运动搜索范围,从而限制不同应用的执行成本,同时实现不同制造商的编码器和解码器之间的操作兼容性,但是存在适用于所有配置文件和等级的一些常见工具集。例如,帧内预测模式对于所有AVC配置文件和等级是相同的。当生成不同配置文件和等级的AVC流时,可共享帧内预测模式决定的硬件和/或软件实现。
[0052] 在另一个实例中,垂直运动矢量范围对于不同AVC配置文件和等级是不同的,如对于AVC等级2.1至3的[-256,+255.75],以及对于AVC等级3.1及以上的[-512,+511.75],如图3示图300中相应的运动矢量范围304和302所示出。在一个实施方式中,视频编码方法可使用垂直运动矢量范围的公共集用于通过编码器生成的所有目标AVC配置文件和等级,如当生成AVC等级3和4.2的流时的运动矢量范围304(例如[-256,+255.75])。在一些实施方式中,当运动搜索覆盖较高配置文件的流的较大范围时,视频编码方法也可将运动搜索结果的子集应用到较低配置文件的流。在这个实例中,运动搜索发现用于AVC等级3.1及以上的运动矢量范围302(例如[-512,+511.75])中的最佳运动矢量,并发现相同搜索操作期间用于AVC等级2.1至3的较小范围304的最佳模式矢量。运动搜索可以在第一方法(例如公共集)的高或低配置文件/等级编码路径中执行,同时其可以在第二方法(例如子集)的高配置文件/等级编码路径中执行。
[0053] 在又一个AVC实例中,最小亮度双向预测大小限制为等级3.1及以上的8×8,而没有对其以下的等级的限制。当生成等级3.1或以上以及等级3和以下(例如公共集)的流时,运动搜索可限制最小亮度双向预测大小为8×8。
[0054] 在AVC编码器的实例中,P或B图像也可具有可通过帧内模式编码的宏块。在一些视频编码方法的实施方式中,每个宏块的帧间或帧内的决定也可通过低和高配置文件/等级而共享。对于帧内预测,所有的AVC配置文件和等级可共享没有配置文件或等级具体限制的相同帧内模式决定。
[0055] 因为目标最大比特率可对于不同配置文件和等级是不同的,所以其他编码参数或工具可能无法通过不同配置文件和等级的编码路径共享。例如,量化参数可不同,且得到的重建图像可不同。一般地,其他功能可能无法共享。
[0056] 在一些实施方式中,涉及配置文件和等级以及运动搜索和模式决定共享方案的上述视频编码方法可以应用于任何视频编码标准(包括新兴的HEVC或H.265,等)的不同配置文件和等级的多个流的编码,其中多个配置文件和等级可针对不同的应用定义。在一些实施方式中,有关配置文件和等级、以及运动搜索和模式决定共享方案的上述视频编码方法也可扩展到不同视频标准的多个流的编码,其中存在运动搜索参数的公共集,如运动矢量范围,其可通过两个视频编码标准共享。在这种情况下,在根据各标准的不同分区限制的针对不同编码标准细化之前,可以使用相同实现块而搜索公共的粗运动矢量。
[0057] 现将注意力转到图4A至图4B,其示出实施为单一编码引擎104的示例视频编码系统。在一个实施方式中,单一编码引擎104可以以硬件实现,尽管一些实施方式可包括软件(包括固件)或软件和硬件的组合。例如,一些实施方式可包括处理器(例如CPU),其提供指令和/或数据给图4A和图4B示出的一个或多个逻辑单元。示例单一编码引擎104包括第一处理单元402和第二处理单元404。应该理解,在本公开的背景下,虽然示出了两个处理单元402和404,但该数量仅是说明性的,且特定实施方式可包括额外的处理单元。多个处理单元402和404生成对应于不同帧率、图像大小和/或配置文件和等级的相应比特流(例如,“比特流1和比特流2”)。为了说明,单一编码引擎104示出为生成两个比特流。然而,单一编码引擎104的一些实施方式可扩展从而生成任何数量的比特流。比特流的数量例如可取决于对单一编码引擎104的电子装置壳体执行的应用。
[0058] 在视频输入406处(例如接口)接收视频。例如,在接口406输入处接收的视频可包括图2A中示出的输入视频201(或图2B中示出的输入视频209)。接口406根据熟知方法执行复制功能,其中输入视频分成多个视频流(在这个实例中是二(2)),其镜像输入视频201的帧率(和/或配置文件/等级)。多个流(例如,如图2A的输入帧率视频202或图2B中示出的输入帧率视频210)从接口406输出,并提供给各处理单元402和404。在第一处理单元402处,输入帧率视频202(210)提供给编码决定逻辑,其包括这样的编码决定,如帧内模式决定逻辑408,其中做出帧内预测模式中宏块的预测方向确定,以及处理给定宏块的帧间/帧内决定逻辑410。其也示出了运动估计逻辑412(例如运动搜索功能),包括宏块和它们运动矢量的分区。单一编码引擎104进一步包括额外的处理逻辑438,其(参考图
4B)可包括用于帧间预测的运动补偿逻辑414、424,其中用于检索的分区和与它们相关联运动矢量可通过运动估计(搜索)逻辑412识别。
[0059] 如图4A中示出,通过接口406输出的多个输入帧率视频中的另一个提供给第二处理单元404,并具体地是时间标量(缩放)逻辑(temporal scaler logic)436。时间标量逻辑436执行帧率转换,并输出降低的帧率视频,如降低的帧率视频204(图2A)或212(图2B)。在一些实施方式中,时间标量逻辑436可省略,如在涉及多个配置文件和/或等级生成的一些实施方式中。在一些实施方式中,也可采用空间缩放。降低的帧率视频提供给额外的处理逻辑440,其结合图4B在下面描述。视频编码信息包括运动矢量、运动矢量搜索区域、模式决定等,且如上解释,其在第一和第二处理单元402和404之间共享。在一个实施方式中,为第一处理单元402确定的运动矢量、运动矢量搜索区域和/或模式决定提供给推导逻辑434。
[0060] 在多个图像速率通过编码引擎104提供的实施方式中,推导逻辑基于在第一处理单元402中使用的那些运动矢量,并基于接收(例如从时间标量逻辑436、或在一些实施方式中从其他逻辑如接口406、或从CPU)GOP和合适的参考图像确定,和它们与当前图像的时间距离(例如,其中存在于第一处理单元402中处理的流中的参考图像不存在,或不在第二处理单元404中,以及由402处理的原始视频中的时间距离和由404处理的较低帧率视频中的时间距离),推导出运动矢量。在对应于不同图像速率流提供的一些实施方式中,当共享相同帧内图像时,由帧内模式决定逻辑408提供的帧内预测模式决定也在高图像速率和低图像速率视频流之间共享(例如分别在第一和第二处理单元402和404之间)。推导逻辑434和时间标量逻辑436直接或间接共享信息(例如,通过CPU干预),如436和434之间的虚线表示。例如,时间标量逻辑436可传递对应于帧率和/或图像类型的信息给推导逻辑
434(通过或没有处理器干预)。如上所述,时间标量逻辑436执行时间缩放,从而提供降低的帧率视频(如204或212)。
[0061] 在具有运动矢量搜索和模式决定的共享的实施方式中,这样的信息提供给推导逻辑单元434,用于降低的帧率视频流204或212的编码。
[0062] 在涉及多个配置文件和等级的实施方式中,当编码来自相同输入的不同配置文件和等级的视频时,第一和第二处理单元402和404通过共享帧间预测的运动矢量搜索结果、和/或共享帧内预测的帧内模式决定、和/或宏块或编码单元的帧间或帧内预测之间的选择,实时生成不同文件配置和等级(有或没有降低的帧率)的一个或多个压缩流。推导逻辑434可确定是否对所有目标AVC配置文件和等级应用运动矢量范围的公共集,或当运动搜索覆盖较高配置文件的流的较大范围时,将运动搜索结果的子集应用到较低配置文件的流。这样的视频编码信息用于编码视频流204或212。
[0063] 虽然各种算法和/或方法描述为结合时间标量逻辑436至少部分地在推导逻辑434中执行,但应该理解,在一些实施方式中,一个或多个上述功能可通过其他逻辑执行,或在多个不同逻辑之间分配。
[0064] 在编码过程中,图像组(GOP)中的当前帧或图像提供用于编码。当前图像可在新兴视频编码标准HEVC中处理为宏块或编码单元,其中宏块或编码单元对应于例如原始图像中的16×16或32×32像素块。每个宏块可以P图像或B图像的帧内编码模式或帧间编码模式编码。在帧间编码模式中,运动补偿预测可通过额外的处理逻辑438和440执行,如分别在每个处理单元402和404中的相应运动补偿逻辑414和424(图4B),并可基于至少一个先前编码的重建的图像。
[0065] 参考图4B,并进一步说明用于每个处理单元402、404的438和440内部的额外处理逻辑,预测的宏块P可从当前宏块中减去,从而通过每个比特流的逻辑416、426生成差异宏块,且差异宏块可通过每个比特流的相应变换器/量化器逻辑418、428变换和量化。每个变换器/量化器逻辑418、428的输出可以通过相应的熵编码器逻辑420、430进行熵编码,并输出为对应于不同比特率的压缩比特流。
[0066] 编码视频比特流(例如,“比特流1和比特流2”)包括熵编码视频内容和解码宏块所需的任何边信息。在每个比特流的重建操作期间,相应变换器/量化器逻辑418、428的结果可以通过相应的逆量化器/逆变换器/重建逻辑418、428而解量化、逆变换、加入到预测和环路滤波,从而生成每个比特流的重建差异宏块。
[0067] 在这方面,每个比特流与包括残差计算逻辑416、426的相应的处理单元402、404关联,其每个被配置为生成残差,并随后生成量化变换因数。然而,应该注意,可以应用不同的量化参数。每个处理单元402、404进一步包括重建逻辑422、432它们耦合到逆量化器/逆变换器逻辑418、428,其中每个重建逻辑422、432被配置为生成相应的重建像素。如图示出,重建逻辑422、432根据应用的相应量化参数,以不同的帧率以及配置文件和等级执行解码像素的重建。应该注意,涉及与图4A和图4B相关联描述的各种逻辑的一个或多个功能可组合到单一逻辑单元中,或进一步分配在额外的逻辑单元之间,或在一些实施方式中省略。
[0068] 应该注意,所公开的各种实施方式可应用到各种视频标准中,包括但不限于MPEG-2、VC-1、VP8和HEVC,这提供了可共享的更多的编码工具。例如,使用HEVC,帧间预测单元大小范围可在从块大小4×4到32×32的任何中,这需要大量数据执行运动搜索和模式决定。
[0069] 应该理解,在本公开的背景下,图5中示出并在一个实施方式中通过单一编码引擎(例如104)实现的视频编码方法500的一个实施方式包括在单一编码引擎处接收根据第一版本的视频特性的输入视频流(502)。例如,输入视频流可以是未压缩的流(例如,图2A和图2B的输入视频流201或209),而视频特性可以是帧率(图像速率)、配置文件/等级和/或编码标准。方法500进一步包括,基于输入视频流(504),通过单一编码引擎并行生成多个流。例如,生成的第一流和第二流包括视频流图2A的202(或图2B的210)和图2A的204(或图2B的212)。方法500进一步包括选择GOP和/或图像类型(506)。例如,编码引擎104(例如,图4A至图4B中,接口406、时间标量逻辑436或一些实施方式中的CPU)可确定GOP和/或图像类型。
[0070] 方法500进一步包括,在第一生成流如视频流202、210(508)中的运动矢量搜索。例如,第一处理单元(例如,图4A至图4B的运动估计逻辑412)可在第一生成流的图像块中执行这样的搜索。方法500进一步包括确定第二生成流如视频流204或212(510)的参考图像。在一个实施方式中,该后一个的功能可以通过时间标量逻辑436执行。基于这些确定(506、508和510),方法500将运动矢量从第一流到根据帧率差异的第二生成流而缩放(512)。方法500进一步包括,基于视频编码信息(并行)生成多个编码流(包括降低的帧率流)(512)。例如,多个流可包括包括根据第一版本的视频特性的第一编码流和根据第二版本的视频特性(如较低的帧率、不同的配置文件和等级和/或标准)的第二编码流。第二编码流基于用于生成第一编码流的视频编码信息而生成,其中视频编码信息包括运动矢量搜索结果和/或模式信息。在一些实施方式中,可使用重复或非重复的图像图案(例如开放GOP)。因此,第二版本可包括低于第一版本的帧率,并且生成包括通过从生成第一编码流时使用的运动矢量推导运动矢量,以较低帧率生成第二编码流。
[0071] 关于配置文件和等级的差异,方法500根据第二生成流的配置文件/标准从第一流界定(bound)运动矢量(516),且方法500进一步包括基于用于第一编码流的第一运动矢量搜索范围或作为第一运动矢量搜索范围的子集的第二运动矢量搜索范围生成第二编码流,第一和第二编码流基于时间上公共的搜索操作(518)而提供。应该理解,在本公开的背景下,在一些实施方式中,一个或多个上述逻辑功能可省略,或可包括额外的逻辑功能。例如,模式信息的共享也考虑在方法500的特定实施方式的保护范围内。
[0072] 视频编码系统可以硬件、软件(例如包括固件)或它们的组合实现。在一个实施方式中,视频编码系统使用以下技术的任何一项或组合而执行,它们在本领域中都是公知的:具有对数据信号实现逻辑功能的逻辑的离散逻辑电路、具有适当组合逻辑门专用集成电路(ASIC)、可编程的门阵列(PGA)、现场可编程门阵列(FPGA)等。在实施方式中,其中所有或部分的视频编码系统以软件执行,该软件存储在存储器中,且其可通过适当的指令执行系统(例如,计算机系统,其包括一个或多个处理器、利用编码软件/固件编码的存储器和操作系统等)执行。
[0073] 本领域相当熟练的技术人员应该理解,流程图中的任何流程说明或块应该理解为表示代码的模块、段或部分,其包括实现过程中特定逻辑功能或步骤的一个或多个可执行指令,且替代实现也包括在本公开的保护范围内,其中根据涉及的功能,功能可不同于示出或讨论的次序来执行,包括基本上同时或以相反次序执行。
[0074] 应该强调的是,本公开的上述实施方式仅是可能的实现的实例,其仅进行阐述以清楚理解本公开的原理。在基本上不背离本公开的精神和原理的情况下,可以做出多种变化和修改。所有这样的修改和变化旨在包括在本公开的保护范围内并由所附的权利要求保护。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈