多线程纹理解码
2019-11-22

多线程纹理解码

一种用于在多线程处理器中执行纹理解码的方法包括在多个硬件线程中实质上同时解码VP8帧的至少两个宏块。每一硬件线程每次解码一个宏块。所述方法还可包括将来自所述VP8帧的所述至少两个宏块的一宏块指派给所述多线程处理器的一硬件线程。

本发明大体上涉及数据处理系统,且更具体地说,涉及多线程纹理解码。

背景技术

背景技术

图4说明根据本发明的一方面的用于多线程纹理解码的方法。

具体实施方式

再次参看图2,用于经VP8格式编码的数据的纹理解码的多线程方案可实现每秒三十个帧(30fps)以用于解码720p视频剪辑。在此配置中,不存在针对帧内的宏块的预定义解码序列。具体地说,只要任一任务准备好解码,个别工作者线程248便请求任务。结果,随着解码针对一个帧而进展,愈来愈多的同质线程开始所述解码。因此,工作者线程248从事于任务的时间增加且动态地平衡,使得用于解码一个帧的总时间量显著减小。在本发明的此方面中,任务大小是基于高速缓存线大小。即,通过硬件线程解码的宏块的数目是基于高速缓存线大小。举例来说,两个宏块的任务大小经选择用于三十二字节高速缓存线大小。在本发明的一方面中,特定硬件线程可被指派给帧的每一行。

再次参看图2,用于经VP8格式编码的数据的纹理解码的多线程方案可实现每秒三十个帧(30fps)以用于解码720p视频剪辑。在此配置中,不存在针对帧内的宏块的预定义解码序列。具体地说,只要任一任务准备好解码,个别工作者线程248便请求任务。结果,随着解码针对一个帧而进展,愈来愈多的同质线程开始所述解码。因此,工作者线程248从事于任务的时间增加且动态地平衡,使得用于解码一个帧的总时间量显著减小。在本发明的此方面中,任务大小是基于高速缓存线大小。即,通过硬件线程解码的宏块的数目是基于高速缓存线大小。举例来说,两个宏块的任务大小经选择用于三十二字节高速缓存线大小。在本发明的一方面中,特定硬件线程可被指派给帧的每一行。

如图3的配置所示,行缓冲器352及列缓冲器354存储在回路滤波之前的经重构像素。在本发明的此方面中,存储于行缓冲器352及列缓冲器354中的未经滤波像素实现帧内预测,所述帧内预测是使用未经滤波像素来执行。具体地说,帧内预测是使用先前宏块的经重构邻近者信息来执行。在此配置中,一旦宏块356的经重构像素信息存储于行缓冲器352及列缓冲器354中,就紧接着对宏块356进行滤波。即,经重构像素信息存储于行缓冲器352及列缓冲器354内以实现针对下一宏块的帧内预测。在本发明的此方面中,通过集中于本地(列)缓冲器内的纹理解码来改进高速缓存性能,同时在可能时减少或避免帧缓冲器存取。

图2为根据本发明的一方面的说明图1的纹理解码逻辑200的框图。代表性地,经剖析包234由前端线程240接收。在此配置中,前端线程240将来自经剖析包234的帧的宏块提供给任务队列242。从任务队列242,根据任务大小将宏块指派给工作者线程集区246的工作者线程248(248-1、......、248-N)。在此配置中,每一工作者线程248逐宏块地执行完整纹理解码。即,每一工作者线程248逐宏块地执行预测、逆变换、重构及回路滤波。因此,工作者线程248集体地执行宏块的并行/同时纹理解码,例如,如图3所示。另外,每一线程根据任务大小而每次解码数个宏块。

ASIC102进一步耦合到存储纹理解码指令230的存储器101。对于图1所示的配置,每一处理核心执行纹理解码指令230。在一配置中,ASIC102可包括纹理解码逻辑200,如图2进一步所说明。

背景技术

技术领域

在另一方面中,描述一种用于多线程纹理解码的装置。所述装置包括用于将VP8帧的至少两个宏块中的一宏块指派给一硬件线程的装置。每一硬件线程每次处理一个宏块。所述装置还包括用于在多个硬件线程中实质上同时解码所述VP8帧的所述宏块的装置。

在另一方面中,描述一种用于执行多线程纹理解码的计算机程序产品。所述计算机程序产品包括非暂时性计算机可读媒体,所述非暂时性计算机可读媒体具有记录于其上的程序代码。所述计算机程序产品具有用以在多个硬件线程中实质上同时解码VP8帧的至少两个宏块的程序代码。每一硬件线程每次处理一个宏块。所述计算机程序产品还可包括用以将所述VP8帧呃宏块指派给多线程处理器的硬件线程的程序代码。