System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向国产化平台的多媒体数据解包的软件模拟方法技术_技高网

一种面向国产化平台的多媒体数据解包的软件模拟方法技术

技术编号:41308038 阅读:3 留言:0更新日期:2024-05-13 14:52
本发明专利技术涉及多媒体软件优化技术领域,特别涉及一种面向国产化平台的多媒体数据解包的软件模拟方法。包括:步骤S101:确定多媒体输入数据的访存地址,该访存地址包括对界和不对界访存两类;步骤S102:确定向量数据类型,该类型包括字节、半字和字整形;步骤S103:根据不同向量数据类型,选择合适的解包方法;步骤S104:对解包后的字整形向量数据进行向量运算。本发明专利技术解决了国产申威处理器平台无法直接使用SIMD指令对多媒体小数据类型进行优化的问题。软件研发人员能够根据多媒体数据类型选取合适的解包方案,对解包后的数据进行并行处理,实现了指令级并行优化的可行性。

【技术实现步骤摘要】

本专利技术涉及多媒体软件优化,特别涉及一种面向国产化平台的多媒体数据解包的软件模拟方法


技术介绍

1、多媒体指令是指计算机处理多媒体数据时所使用的指令,这些指令能够使计算机更好地对多媒体软件进行优化,从而提供性能更好和交互性更强的多媒体应用。目前x86、arm和loongarch等主流架构均设计出支持字节、半字及字整型的多媒体扩展指令。这些多媒体扩展指令基于simd(single instruction multiple data, 单指令多数据流)设计,大幅提高了多媒体应用的执行速度。

2、simd是一种并行计算指令集,这种指令集将多个相同数据打包在一个寄存器上,然后对其进行相同的运算操作,从而加快运算速度。simd指令集常用于处理大规模的多媒体数据,能够显著提高计算机在处理多媒体数据时的性能。国产申威处理器是基于自主研发的sw64架构设计的高性能通用处理器,其支持的simd处理长度为256位,字整型向量类型的数据在内存中要求32字节对界。对于完全simd向量化的程序,字整型向量运算的性能可以达到标量的8倍,浮点类型向量运算的性能可以达到标量的4倍。

3、当前,随着多媒体技术的不断发展,为满足不同领域的高性能编解码需求,提升多媒体软件的编解码性能成为一个重要课题。现有技术中,多媒体软件对硬件平台的性能要求越来越高。但目前国产化硬件平台申威处理器无法满足多媒体软件对硬件设备的性能需求,同时申威core3b核心所支持的simd扩展指令大多为针对字整型类型的运算,面对多媒体软件中小数据类型时,如字节、半字类型数据,无法直接使用现有simd指令进行优化,从而影响了多媒体软件的整体性能。


技术实现思路

1、本专利技术的目的在于提供一种面向国产化平台的多媒体数据解包的软件模拟方法,本专利技术解决国产申威处理器平台无法直接使用申威core3b核心现有simd指令对小数据多媒体数据类型进行优化,从而导致多媒体软件性能较弱的问题。

2、为解决上述技术问题,本专利技术提供了一种面向国产化平台的多媒体数据解包的软件模拟方法,包括如下步骤:

3、一种面向国产化平台的多媒体数据解包的软件模拟方法,包括如下步骤:

4、步骤s101:确定多媒体输入数据的访存地址,该访存地址包括对界和不对界访存两类;

5、步骤s102:确定向量数据类型,该类型包括字节、半字和字整形;

6、步骤s103:根据不同向量数据类型,选择合适的解包方法;

7、即:若向量寄存器中元素为32个字节数据时,选择字节转字整形解包方法;若向量寄存器中元素为16个半字数据时,选择半字转字整形解包方法;若向量寄存器中元素为8个字整形数据时,直接进行向量运算;

8、步骤s104:对解包后的字整形向量数据进行向量运算。

9、优选的,所述步骤s101具体包括:对多媒体输入数据的访存地址的首地址进行确定;若首地址满足申威simd指令要求的32字节对界,则使用对界访存指令vldd读取数据到向量寄存器中;若首地址不满足申威simd指令要求的32字节对界,则使用非对界访存指令vldw_u读取数据到向量寄存器中。

10、优选的,所述步骤s102具体包括:对向量寄存器中的数据进行确定,若多媒体输入数据为字节类型,则向量寄存器中元素为32个字节数据;若多媒体输入数据为半字类型,则向量寄存器中元素为16个半字数据;若多媒体输入数据为字整形类型,则向量寄存器中元素为8个字整形数据。

11、优选的,所述步骤s103中直接进行向量运算的方法包括:使用申威core3b核心所支持的simd加法指令vaddw,以字为单位对向量寄存器$f1和向量寄存器$f2进行加法运算,结果保存到向量寄存器$f3中。

12、优选的,所述步骤s103中半字转字整形解包方法包括:

13、步骤a):对向量寄存器中的元素进行混洗重组;

14、即:以字为单位将向量寄存器$f1中的元素分为八组,分别为x1x0、x3x2、x5x4、x7x6、x9x8、x11x10、x13x12和x15x14,使用字向量全混洗指令vshfw对八组元素进行全混洗操作,将混洗结果分别保存到向量寄存器$f2、向量寄存器$f3、向量寄存器$f4和向量寄存器$f5中;八组元素按需存放在寄存器指定的用‘0’填充表示的存储空间位置;

15、步骤b):对向量寄存器中的元素进行逻辑移位操作;

16、即:以字为单位使用字整数向量逻辑左移指令vsllw对向量寄存器$f2和向量寄存器$f4进行左移16位操作,寄存器中每个字元素移出的空位用‘0’填充,结果保存到向量寄存器$f6和向量寄存器$f8中;使用字整数向量逻辑右移指令vsrlw对向量寄存器$f3和向量寄存器$f5进行右移16位操作,寄存器中每个字元素移出的空位用‘0’填充,结果保存到向量寄存器$f7和向量寄存器$f9中;

17、步骤c):对向量寄存器中的元素进行逻辑右移操作;

18、即:以字为单位使用字整数向量逻辑右移指令vsrlw对向量寄存器$f6和向量寄存器$f8进行右移16位操作,寄存器中每个字元素移出的空位用‘0’填充,结果保存到向量寄存器$f10和向量寄存器$f11中;

19、步骤d):对向量寄存器中的元素进行逻辑或操作;

20、即:以字为单位使用可重构逻辑运算指令vlogfc对向量寄存器$f7和向量寄存器$f10进行按位或操作,操作后的运算结果保存到向量寄存器$f12中;以字为单位使用可重构逻辑运算指令vlogfc对向量寄存器$f9和向量寄存器$f11进行按位或操作,操作后的运算结果保存到向量寄存器$f13中。

21、优选的,所述步骤s103中字节转字整形解包方法包括:

22、步骤a):对向量寄存器中的元素进行首次混洗重组;

23、即:以字为单位将向量寄存器$f1中的元素分为八组,分别为x3x2x1x0、x7x6x5x4、x11x10x9x8、x15x14x13x12、x19x18x17x16、x23x22x21x20、x27x26x25x24和x31x30x29x28,使用字向量全混洗指令vshfw对八组元素进行全混洗操作,将混洗结果保存到向量寄存器$f2中;

24、步骤b):对向量寄存器中的元素进行逻辑左移操作;

25、即:以字为单位使用字整数向量逻辑左移指令vsllw对向量寄存器$f2分别进行左移24位、16位和8位操作,寄存器中每个字元素移出的空位用‘0’填充,结果分别保存到向量寄存器$f3、向量寄存器$f4和向量寄存器$f5中;

26、步骤c):对向量寄存器中的元素进行逻辑右移操作;

27、即:以字为单位使用字整数向量逻辑右移指令vsrlw分别对向量寄存器$f3、向量寄存器$f4、向量寄存器$f5和向量寄存器$f2进行右移24位操作,寄存器中每个字元素移出的空位用‘0’填充,结果保存到向量寄本文档来自技高网...

【技术保护点】

1.一种面向国产化平台的多媒体数据解包的软件模拟方法,其特征在于,包括如下步骤:

2.如权利要求1所述的一种面向国产化平台的多媒体数据解包的软件模拟方法,其特征在于,所述步骤S101具体包括:

3.如权利要求2所述的一种面向国产化平台的多媒体数据解包的软件模拟方法,其特征在于,所述步骤S102具体包括:

4.如权利要求3所述的一种面向国产化平台的多媒体数据解包的软件模拟方法,其特征在于,所述步骤S103中直接进行向量运算的方法包括:

5.如权利要求4所述的一种面向国产化平台的多媒体数据解包的软件模拟方法,其特征在于,所述步骤S103中半字转字整形解包方法包括:

6.如权利要求5所述的一种面向国产化平台的多媒体数据解包的软件模拟方法,其特征在于,所述步骤S103中字节转字整形解包方法包括:

【技术特征摘要】

1.一种面向国产化平台的多媒体数据解包的软件模拟方法,其特征在于,包括如下步骤:

2.如权利要求1所述的一种面向国产化平台的多媒体数据解包的软件模拟方法,其特征在于,所述步骤s101具体包括:

3.如权利要求2所述的一种面向国产化平台的多媒体数据解包的软件模拟方法,其特征在于,所述步骤s102具体包括:

4.如权利要求3所述的一种面向国产化...

【专利技术属性】
技术研发人员:王聪张昊
申请(专利权)人:中电科申泰信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1