多核视频解码器中的工作负载均衡的制作方法

文档序号:11139327阅读:347来源:国知局
多核视频解码器中的工作负载均衡的制造方法与工艺

本发明涉及数据压缩和解压缩,以及更具体地,涉及在多核视频解码器中均衡工作负载.



背景技术:

数据压缩被用于降低存储、传输、或者重建(解码和回放)的数据量,尤其是用于视频内容.解码从压缩的数据中以适合于显示的格式恢复视频内容.用于有效地编码和解码压缩信号的多种格式的标准都是可用的。一些常用的标准是国际电信联盟标准,例如ITU-T H.264“Advanced video coding for generic audiovisual services”,运动图像专家组(MPEG)的标准、VPx标准以及VC-1标准.

视频压缩中使用的技术包括帧间编码和帧内编码.帧间编码使用运动向量用于基于块的帧间预测来利用在不同图像中的项目之间的时间统计依赖关系(其可以涉及不同帧、场、片段或者宏块或者更小的部分).帧内编码使用多种空间预测模式来利用用于在单一图像内的项目的源信号中的空间统计依赖关系(冗余).预测残差限定了在参考图像项目和当前编码的项目之间的残差差别,随后在编码期间被量化之前,使用变换来对预测残差进行进一步压缩以消除变换块内的空间相关性.最后,运动向量或者帧内预测模式与量化的变换系数信息组合并被编码.

解码过程包括以接收压缩数据的顺序获取压缩数据,针对不同的图像项目对其进行解码,根据运动向量或者帧内预测模式对帧间编码和帧内编码的项目进行组合.能够完成解码帧内编码的图像而不参考其它图像,而解码帧间编码图像项目使用了运动向量以及来自由编码器选择的参考图像项目的采样值的块.

解码压缩的视频信号包括解析来自输入比特流的图像或者片段的参数。参数识别语法元素值,例如原始字节序列载荷(RBSP)片段头,片段数据以及宏 块语法元素.对语法元素的解析使得解码器能够识别例如帧间编码和帧内编码的项目,任意参考图像项目,运动向量或者帧内预测模式以及预测残差.

在多核视频解码器中,各核可以被分配给不同的任务,并且某些任务可以通过不同的核来并行执行.但是,解析操作可能是瓶颈,因为在变化长度的解码中有相互依赖性并且图像可能仅包括用于再同步(将解码器性能限制)到可变化的范围的一个片段.具有在其中解析和解码操作被均衡从而改善解码器的整体性能的多核视频解码器将是非常有利的。

附图说明

通过参考随后在附图中示出的实施例的描述可以更好地理解本发明连同其目标和优点。图中的元件被出于简明和清晰的目的示出并且不必成比例绘制.

图1是根据本发明的实施例的多核视频解码器的示意框图;

图2是可以被用于实现图1的多核视频解码器的数据处理系统的示意框图;

图3是示出了图1的解码器的解析和解码操作的例子的流程图;

图4是示出了在图1的解码器的操作的例子中的评估解析和解码工作负载的流程图;

图5是示出了图1的解码器的操作的另一个例子中的评估解析和解码工作负载的操作的流程图;

图6是示出了在图1的解码器的操作的例子中将各核分配给解析和解码的方法的流程图;以及

图7是示出了图6的方法中在不同的核之间分配解析和解码的时序图.

具体实施方式

图1示出了根据本发明的实施例的用于解码压缩的视频图像数据的并行解码器100.解码器100具有提供至少一个语法解析器110和至少一个解码模块106的多核处理资源.解析器110解析来自源102的压缩的视频图像数据并且要被解码的图像数据的结构存储在临时存储器104中.解码模块106解码存储的图像数据。控制模块108控制解析器110、临时存储器104和解码模块106的操作.可以以适于在显示屏幕112上显示的格式重建来自于解码模块106的解码的图像数据。本发明可用于符合标准H.264AVC以及其它标准编码的图像.

图2是可以用于实现并行解码器的数据处理系统200的示意框图.数据处理系统200包括耦接到存储器204的多核处理器202,该存储器可以提供并行解码器100的临时存储器104,以及耦接到存储器204的附加的存储器或者存储装置206.数据处理系统200还包括显示装置208,其可以是显示重建的图像数据的显示屏幕112、输入/输出接口210、以及软件212.软件212包括操作系统软件214、应用程序216,以及数据218.数据处理系统200通常是本领域公知的,除了用于实现对上述压缩的视频图像数据解码的算法和其它软件.当软件或者程序在处理器202上执行时,处理器变为用于执行在处理器202上运行的软件或者应用代码的步骤或者指令的“装置”.即,对于不同指令和与指令相关的不同的数据,处理器202的内部电路由于不同的寄存器值等等,而处于不同的状态,如本领域技术人员熟知的.因此,在此描述的任何用于结构的装置与处理器202有关,由于该处理器202执行在此公开的方法的步骤.

解码器100包括多核处理资源202,其时要被解码的图像数据执行解析操作(110)和解码操作(106).多核处理资源202可以与解码操作(106)并行地执行解析操作(110).控制模块108可以通过将核的选定数量的每一个分配给对相应图像数据的连续解析操作,以及将其它核分配给对图像数据的并行解码操作,从而调整核的资源.作为与解析和解码操作的相对工作负载有关的工作负载参数M(TD-TP)的函数,控制模块108可以在解析图像数据操作(110)和解码图像数据操作(106)之间分配多核处理资源202.

多核处理资源202的适配在均衡解析和解码操作中提供了灵活性。控制模块108分配给解析操作的核的数量(一个或者多个)能被选择来达到解析和解码工作负载之间的较高程度的均衡。某些核可以被分配以同时解析相应图像的数据;虽然对不同图像的解析操作是并行发生的,但是每一个解析核可以连续解析相应图像的数据,避免阻塞解析操作.一个或者多个图像的解码可以并行地在解码核的一个或者多个组之间分配.

用于当前图像数据的工作负载参数M可以与之前图像数据的解析操作和解码操作的相对持续时间P和D有关.工作负载参数M可以与:之前图像数据的解析操作的持续时间P(是在核上的解析操作的结束和开始时间之间的差的函数)以及解码操作的持续时间D(是之前图像数据的图像元素的采样的解码时间和采样速率的函数)的相对值P/D相关。解码操作的持续时间D可以是 在减去等待时间后的图像元素的采样的解码时间的函数.

工作负载参数可以是相对于阈值TTH的用于对应的先前图像数据的解码操作的完成时间TD和解析操作的完成时间TP之间的时间差(TD-TP).控制模块108可以分配302未改变的核的数量N,(X-N)给解析操作以及解码操作,只要用于当前图像数据的解析操作被及时完成以促进用于相同图像数据的解码操作即可.

控制模块108可以分配核的相应数量N,(X-N)给解析和解码操作,并且作为工作负载参数的函数来适配数量304。

控制模块108可以将多个核N分配给N个相应图像的数据的N个连续的解析操作.解码器100包括临时存储器104,用于存储解析操作的结果.控制模块108将至少另一个核分配给使用存储的解析结果解码至少一个图像的数据.

控制模块108可以作为以下标准的至少一个的函数重复地适配核的资源:周期性地,检测要解码的图像数据的比特率的改变,和/或可用于解析和解码操作的核的数量X的数量改变.

更具体地,在图3示出的解码过程300中,在306,作为工作负载参数M,(TD-TP)的函数评估解析操作和解码操作的工作负载.在308,控制模块108获取多核处理资源202中的数量N的核以分配给语法解析器110.在310,N个核被分配给解析器110并且在解析后面的图像项目之前,每一个核执行单个图像项目的解析数据的连续操作,其适应在可变长度解码中的相关性。对给定图像项目的数据的解析在相同的核上执行,直到完成,以及如果来自源102用于该图像项目的比特流及时充满,则不被阻塞。但是,被分配给解析器110的N个核并行地解析N个相应图像项目的数据。在312,在多核处理资源202中的数量(X-N)的其它核被分配给解码器106,以及一个或者多个图像项目的数据被分配给(X-N)个其它核以用于并行解码,其中X是可用于解析和解码操作的核的总数。例如在等待解析当前项目(诸如宏块)完成或者等待解码相邻单元完成时,解码图像项目可能有时被阻塞。

在314,做出是否重新评估在多核处理资源202中的分配给语法解析器110的核的数量N的决定.如果决定不重新评估数量N,则在302过程前进到下一个解析操作316。如果决定重新评估数量N,则在304过程返回到步骤306.影 响决定314的因素可以包括是否检测到要被解码的图像数据的比特率的改变,以及与核的较频繁再分配相关的开销.替代地,或者另外地,决定314可以基于是否发生可用于解析和解码操作的核的数量X的数量改变.替代地,过程可以周期性地经304系统性地返回到306。

图4示出了评估用于当前图像数据的工作负载参数M的例子,该参数M等于用于先前图像数据的解析操作的持续时间P和用于先前图像数据的解码操作的持续时间D的相对值P/D.由于解析图像项目数据在单一核上连续执行,通过寄存402解析操作的开始时间,寄存404解析操作的完成时间,以及将二者相减从而获得在完成和开始时间之间的差,来简单地执行评估解析操作的持续时间P.可以在多于一个的核上并行执行对单一图像项目的解码操作.因此,通过寄存408用于先前图像数据的图像元素的采样的解码时间,在410计算采样速率以及在412将采样的解码时间的和乘以采样速率,来评估解码操作的持续时间D.通过减除采样的等待时间的和(例如通过在完成等待后设置采样的开始时间)来校正在412的解码操作的持续时间D的评估.在解析核上的解析操作可以比在解码核上的解码操作快或者慢.因此,M可以是倍数或者分数,总是大于零。

用于当前图像数据的工作负载参数M在414被计算作为先前图像数据的解析和解码操作的持续时间P和D的相对值P/D.在416,分配给解析器110的核的数量被计算为:N=M*X(M+1).如果计算的数量是整数,则该数量可以被直接使用.但如果N不是整数,则下一个大的整数可以被用于一系列图像项目并且随后下一个小的整数被用于下一系列。例如,如果M=2(解析时间是解码时间的两倍),X=8(八个核可用),则N=2*8/3.在总数为30的图像项目中,可以将N=5个核用于20个图像项目并且随后将N=6个核用于10个图像项目,从而均衡核的数量。

图5示出了评估用于当前图像数据的工作负载参数的方法500,该参数等于在相同先前图像数据的解码操作的完成时间TD和解析操作的完成时间TP之间的时间差(TD-TP).在502,用于解码和解析操作的完成时间TD和TP被寄存.图像项目的解码依赖于其解析,因此解码总是在解析后完成。在方法500中,阈值TTH针对在完成解析和解码之间的时间差(TD-TP)而被限定。在504,做出时间差(TD-TP)是小于还是大于阈值TTH的判断.如果时间差(TD-TP) 小于阈值TTH,我们假设解码较快,并且在506,通过增加分配给解析器110的核的数量N来增加用于解析的核资源;否则我们假设解析较快并且减少分配给解析器110的核的数量N.可替代地,分配给解析器110的核的数量N基于(TD-TP-TTH)的量.在一个由不同类型的核组成并且具有非均匀核负载的复杂系统中,很难如在400中那样测量解析时间与解码时间的精确比率.方法500利用降低的计算复杂度实现了测量要获得的相对工作负载,同时获得了解析和解码操作之间的核资源的均衡程度.

在302,控制模块108可以将未改变的核数量N、(X-N)分配给解析操作和解码操作,只要用于当前图像数据的解析操作被及时完成以促进用于相同图像数据的解码操作.

图6示出了以均衡的工作负载将核分配给解析和解码操作的方法600.在602,N个图像的连续解析操作被并行分配给N个相应的核.在604,临时存储器104提供N个缓冲器来存储N个核的解析输出.在606,其它的核(最多X-N,其中X是可用于解析和解码操作的核的数量)被分配以使用存储的解析结果来解码至少一个图像的数据.解码操作被在X-N个核之间划分并且相互之间并行执行.来自源102的输入一旦可用,N个核上的N个图像的解析操作就可以使用预解码应用程序接口(API)开始并且可以持续直到完成.已经完成解析图像的核随后被分配于解析另一图像.

图7示出了用于在其中四个核#0、#1、#2以及#3被分配给解析操作,以及(X4)个其它可用的核被分配给解码的情况下,方法600的例子的时序700.最初,来自源102的输入一旦可用,其中三个核#0、#1和#2就开始预解码并且存储解析结果,如示出的解析#0、解析#1和解析#2.在解码#0,(X-4)个其它可用的核都并行解码第一图像,该图像的解析结果解析#0在对应的解析缓冲器中可用.核#0随后被释放以解析其它图像并且存储结果解析#3.在解码#0之后,缓冲器被释放以存储结果解析#4.(X-4)个其它可用核随后全部相继在解码#1和解码#2并行解码第二和第三图像,这些图像的解析结果解析#1和解析#2在对应的解析缓冲器中可用.届时,来自核#0的解析结果解析#3在其缓冲器中可用于(X-4)个其它核在解码#3并行解码,释放核#0以用于解析#7并且释放其缓冲器以存储解析其它图像的结果。

本发明可以至少部分地以包括用于在计算机系统上运行的计算机程序的非 暂时(non-transitory)机器可读介质实施,该程序至少包括当在诸如计算机系统的可编程设备上运行时用于执行根据本发明的方法的步骤的代码部分,或使得可编程设备能够执行根据本发明的装置或系统的功能.

计算机程序可以内部地存储在计算机可读存储介质上,或经由计算机可读传输介质传输到计算机系统.可以在永久地、可移除地或远程地耦接到信息处理系统的非暂时计算机可读介质上提供所述计算机程序的全部或部分.计算机可读介质可以包括,例如但是不限制于,任意数量的以下:包括盘和带存储介质的磁存储器介质;光存储器介质,例如光盘介质(例如,CD ROM、CD R等等)以及数字视频盘存储器介质;非易失存储器存储介质,包括基于半导体的存储器单元,例如闪存、EEPROM、EPROM、ROM;铁磁体数字存储器;MRAM;易失存储器介质,包括存储器、缓冲器或者高速缓存、主存储器、RAM等等;以及数据传输介质,包括计算机网络、点对点无线通信设备,以及载波传输介质,仅仅列举一些.

该计算机程序是一个指令表,例如专用应用程序和/或操作系统.该计算机程序可以例如包括一个或者多个:子程序、函数、步骤、目标方法、目标实现、可执行应用、小应用程序、小服务程序、源代码、目标代码、共享的库/动态装载库和/或其它设计用于在计算系统上执行的指令序列.

在前面的说明书中,已经参考本发明的实施例的具体例子描述了本发明.但是,将明了的是可以在其中做出各种修改和改变而不脱离在所附权利要求中说明的本发明的较广泛的精神和范围。

本领域技术人员将认识到,逻辑块之间的分界仅仅是示意性的,并且替代实施例可以合并逻辑块或电路元件,或将功能的替代分解施加于不同逻辑块或电路元件.因而,应当理解,在此描述的架构仅仅是示例性的,并且实际上可以实现许多实现相同功能的其它架构。类似地,实现相同功能的组件的任何布置被有效地“关联”以使得实现期望的功能。因此,被组合以实现特定功能的任意两个组件可以被视为彼此“关联”,使得期望的功能得以实现,而不考虑架构或中间组件。同样地,这样关联的任意两个组件还可以被视为彼此“操作地连接”,或“操作地耦接”以实现期望的功能。

此外,本领域技术人员将认识到,上述描述的操作之间的分界仅仅是示意性的.多个操作可以被合并到单个操作中,单个操作可以被分布在若干附加的 操作中,并且操作可以在时间上至少部分重叠地执行.此外,替代实施例可以包括特定操作的多种实例,并且在各种其它实施例中操作的顺序可以改变.

另外,本发明不被限制于实现为非可编程硬件的物理装置或单元,而还可以应用到可编程装置或单元,其能够通过根据合适的程序代码操作来执行期望的装置功能,例如主机、微型计算机、服务器、工作站、个人计算机、笔记本、个人数字助理、电子游戏、自动或者其它嵌入系统、蜂窝电话和各种其它无线装置、通常在该应用中称为“计算机系统”.

在权利要求书中,词语“包括”或“具有”并不排除除在权利要求书中列出的那些以外的其它元件或步骤的存在。此外,如在此使用的术语“一”被定义为一个或超过一个.还有,权利要求中诸如“至少一个”和“一个或多个”的引语的使用不应被解释为暗示以下:由不定冠词“一”对其它权利要求项的引入将包括这样引入的权利要求项的任意特定权利更求限制为仅仅包含一个这样项的发明,即使当相同的权利要求包括引语“一个或多个”或“至少一个”和诸如“一”的不定冠词时也是如此。这同样适用于“所述”(定冠词)的使用.除非另有说明,诸如“第一”和“第二”的术语用于任意地区分这种术语描述的项.因而,这些术语并不必然意图指示这些项的时间上的或其它的优先次序.某些手段仅仅是在互相不同的权利要求中记载的事实并不表示不能使用这些手段的组合来获得优点。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1