一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种超高清图像混合处理方法和装置与流程

2022-03-31 10:29:24 来源:中国专利 TAG:


1.本发明涉及广播电视领域,特别是涉及一种超高清图像混合处理方法和一种超高清图像混合处理装置。


背景技术:

2.随着超高清(uhd)技术的发展,视频图像分辨率由高清(hd)的1920*1080发展到4k的3840*2160、8k的7680*4320,r、g、b每个色彩由一个字节8比特表示提升到10比特、12比特甚至14比特,色彩层次增加,超高清图像混合的运算量远大于高清图像的运算量,采用现有技术基于see2指令集的图像处理,函数调用开销较大并且处理效率低。
3.而且目前cpu和编译器可以支持x86架构微处理器中矢量处理能力已扩展到更多位数的指令集,处理能力也大大提高,仅使用sse2指令集处理图像,无法充分利用机器的最优性能。


技术实现要素:

4.鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种超高清图像混合处理方法和相应的一种超高清图像混合处理装置。
5.为了解决上述问题,本发明实施例公开了一种超高清图像混合处理方法,应用于终端设备,所述方法包括:
6.确定终端设备支持的指令集;所述指令集包括avx512指令集、avx2指令集、sse2指令集中的至少一种;所述avx512指令集、avx2指令集、sse2指令集具有优先级顺序;
7.根据所述终端设备支持的指令集的优先级顺序,确定目标指令集;
8.调用所述目标指令集,获取源图像和目标图像,选取所述源图像和所述目标图像的像素点进行混合处理。
9.可选地,所述选取所述源图像和所述目标图像的像素点进行混合处理之前,所述方法还包括:
10.对所述源图像和所述目标图像数据做移位操作,将所述源图像和所述目标图像数据的比特位数,调整为预设比特位数n,其中n为自然数。
11.可选地,所述选取所述源图像和所述目标图像的像素点进行混合处理之前,所述方法还包括:
12.判断所述选取的所述源图像和所述目标图像的像素点中是否有特殊像素点;
13.对所述特殊像素点进行标记位记录;所述特殊像素点为alpha值为0或2
n-1的像素点;
14.将所述特殊像素点alpha值修改为1到2
n-2中的任意值。
15.可选地,所述选取所述源图像和所述目标图像的像素点进行混合处理之后,所述方法还包括:
16.混合处理结束后,使用所述目标指令集对混合后图像做移位操作,恢复原本比特
位数。
17.可选地,所述使用所述目标指令集对混合后图像做移位操作,恢复原本比特位数之后,所述方法还包括:
18.将混合后图像中与所述标记位记录对应的像素点值,恢复为所述源图像或所述目标图像的像素点值。
19.可选地,还包括:
20.若所述终端设备不支持所述avx512指令集、avx2指令集以及sse2指令集,则获取源图像和目标图像;
21.对所述源图像和所述目标图像的像素点,逐像素串行进行图像混合。
22.本发明实施例还公开了一种超高清图像混合处理装置,应用于终端设备,所述装置包括:
23.第一确定模块,用于确定终端设备支持的指令集;所述指令集包括avx512指令集、avx2指令集、sse2指令集中的至少一种;所述avx512指令集、avx2指令集、sse2指令集具有优先级顺序;
24.第二确定模块,用于根据所述终端设备支持的指令集的优先级顺序,确定目标指令集;
25.调用模块,用于调用所述目标指令集,获取源图像和目标图像,选取所述源图像和所述目标图像的像素点进行混合处理。
26.可选地,所述装置还包括:
27.第一移位模块,用于在选取所述源图像和所述目标图像的像素点进行混合处理之前,对所述源图像和所述目标图像数据做移位操作,将所述源图像和所述目标图像数据的比特位数,调整为预设比特位数n,其中n为自然数。
28.可选地,所述选取所述源图像和所述目标图像的像素点进行混合处理之前,所述装置还包括:
29.判断模块,用于在选取所述源图像和所述目标图像的像素点进行混合处理之前,判断所述选取的所述源图像和所述目标图像的像素点中是否有特殊像素点;
30.记录模块,用于对所述特殊像素点进行标记位记录;所述特殊像素点为alpha值为0或2
n-1的像素点;
31.修改模块,用于将所述特殊像素点alpha值修改为1到2
n-2中的任意值。
32.可选地,所述选取所述源图像和所述目标图像的像素点进行混合处理之后,所述装置还包括:
33.第二移位模块,用于混合处理结束后,使用所述目标指令集对混合后图像做移位操作,恢复原本比特位数。
34.可选地,所述使用所述目标指令集对混合后图像做移位操作,恢复原本比特位数之后,所述装置还包括:
35.恢复模块,用于将混合后图像中与所述标记位记录对应的像素点值,恢复为所述源图像或所述目标图像的像素点值。
36.可选地,还包括:
37.获取模块,用于若所述终端设备不支持所述avx512指令集、avx2指令集以及sse2
指令集,则获取源图像和目标图像;
38.混合模块,用于对所述源图像和所述目标图像的像素点,逐像素串行进行图像混合。
39.本发明实施例还公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述的超高清图像混合处理方法的步骤。
40.本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述的超高清图像混合处理方法的步骤。
41.本发明实施例包括以下优点:
42.在本发明的实施例中,用户检测终端设备支持的simd指令集,确定终端设备支持avx512指令集、avx2指令集以及sse2指令集后,通过设置avx512指令集、avx2指令集以及sse2指令集的优先级,可以优先调用处理能力高的指令集,对混合超高清图像的像素点进行并行操作,提高了处理效率,实现充分利用机器的最优性能。
附图说明
43.图1是本发明实施例提供的一种超高清图像混合处理方法的步骤流程图;
44.图2是本发明实施例提供的另一种超高清图像混合处理方法的步骤流程图;
45.图3是本发明实施例提供的一种超高清图像混合处理装置的结构框图。
具体实施方式
46.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
47.现有技术针对8比特的高清图像,采用see2指令集对图像进行混合处理方式,每次混合操作4个像素点。随着超高清(uhd)技术的发展,超高清图像混合的运算量远大于高清图像的运算量,采用see2的图像处理函数调用开销较大以及处理效率较低。
48.而且,目前cpu和编译器可以支持x86架构微处理器中矢量处理能力扩展到128位的sse2指令集、扩展到256位的avx2指令集、扩展到512位的avx512指令集等,仅使用sse2指令集处理图像,无法充分利用机器的最优性能。
49.本技术为了解决上述技术问题,提供了一种超高清图像混合处理方法,其核心构思在于,通过查看终端设备支持的指令集,确定指令集中avx512指令集、avx2指令集、sse2指令集的优先级顺序,并根据终端设备支持的指令集的优先级顺序,确定目标指令集,进而使用该指令集对超高清图像进行混合处理,提高了图像处理效率,充分利用了终端设备的最优性能。
50.参照图1,示出了本发明实施例提供的一种超高清图像混合处理方法的步骤流程图,应用于终端设备,所述方法具体可以包括如下步骤:
51.步骤101,确定终端设备支持的指令集;所述指令集包括avx512指令集、avx2指令集、sse2指令集中的至少一种;所述avx512指令集、avx2指令集、sse2指令集具有优先级顺序。
52.sse2指令集为流式数据单指令多数据扩展指令集2,是一种ia-32架构的simd指令集,相比于sse,sse2使用了144个新增指令,扩展了mmx技术和sse技术,这些指令提高了广大应用程序的运行性能。基于sse2指令集的超高清图像混合处理,128位的整数命令可每次并行操作2个像素。
53.avx2指令集为高级矢量扩展指令集,是x86架构微处理器中的指令集,avx2指令集将大多数整数命令操作扩展到256位,并引入了熔合乘法累积(fma)运算,进一步提高广大应用程序的运行性能。基于avx2指令集的超高清图像混合处理,可每次并行操作4个像素。
54.avx512指令集使用新的evex前缀编码将avx指令进一步扩展到512位,相比avx2在数据寄存器宽度、数量以及fma单元的宽度都增加了一倍所以在每个时钟周期内可以打包32次双精度和64次单精度浮点运算,或者8个64位和16个32位整数,因此在图像/音视频处理、数据分析、科学计算、数据加密和压缩以及人工智能/深度学习等密集型计算应用场景中,会带来前所未有的强大性能表现,理论上浮点性能翻倍,整数计算则增加约33%的性能。基于avx512指令集的超高清图像混合处理,可每次并行操作8个像素。
55.具体应用中,通过cpuid指令获取cpu信息,以检测cpu和编译器对simd(单指令多数据流)指令集扩展的支持,其中,avx512指令集、avx2指令集、sse2指令集按处理能力大小设置优先级。例如avx512指令集的处理能力大于avx2指令集、大于sse2指令集,对应地,avx512指令集的优先级高于avx2指令集、高于sse2指令集。
56.步骤102,根据所述终端设备支持的指令集的优先级顺序,确定目标指令集。
57.确定终端设备支持avx512指令集、avx2指令集以及sse2指令集后,根据avx512指令集、avx2指令集以及sse2指令集的优先级,确定目标指令集。
58.步骤103,调用所述目标指令集,获取源图像和目标图像;选取所述源图像和所述目标图像的像素点进行混合处理。
59.检测确定终端设备支持的simd指令集,若该终端设备中的处理器和编译器同时支持avx512指令集,则调用avx512指令的超高清图像混合程序,否则查看是否支持avx2指令集,若支持则调用avx2指令的超高清图像混合程序,否则继续查看是否支持sse2指令集,若支持则调用sse2指令的超高清图像混合程序。使用确定的目标指令集的超高清图像混合程序,获取源图像和目标图像,对源图像和目标图像的像素点进行混合处理。
60.在本发明的实施例中,检测终端设备支持的simd指令集,确定终端设备支持avx512指令集、avx2指令集以及sse2指令集后,通过设置avx512指令集、avx2指令集以及sse2指令集的优先级,可以优先调用处理能力高的指令集,对混合图像的像素点进行并行操作,提高了处理效率,实现充分利用机器的最优性能。
61.参照图2,示出了本发明实施例提供的另一种超高清图像处理方法的步骤流程图,应用于终端设备,所述方法具体可以包括如下步骤:
62.步骤201,确定终端设备支持的指令集;所述指令集包括avx512指令集、avx2指令集、sse2指令集中的至少一种;所述avx512指令集、avx2指令集、sse2指令集具有优先级顺序。
63.步骤202,根据所述终端设备支持的指令集的优先级顺序,确定目标指令集。
64.步骤203,调用所述目标指令集,获取源图像和目标图像。
65.在具体实现中,确定指令集,根据指令集的优先级确定目标指令集,再调用目标指
令集获取获取源图像和目标图像的过程,与前述实施例中步骤101-步骤103类似,可以相互参照,本实施例对此不再赘述。
66.步骤204,对所述源图像和所述目标图像数据做移位操作,将所述源图像和所述目标图像数据的比特位数,调整为预设比特位数n,其中n为自然数。
67.示例性地,基于avx512指令集的超高清图像混合程序,一次读取512位8个像素数据,基于avx2指令集的超高清图像混合程序一次读取256位4个像素数据,基于sse2指令集的超高清图像混合程序一次读取128位2个像素数据。
68.为了便于将选取的像素点进行并行计算,提高图像处理效率,对源图像和目标图像数据做移位操作,将源图像和目标图像数据的比特位数,统一调整为预设比特位数。例如在基于10比特/12比特/14比特高清图像的处理过程中,可以将源图像和目标图像数据按照双字节做移位操作,10比特图像像素各通道左移6位,12比特图像像素各通道左移4位,14比特图像像素各通道左移2位,将源图像和目标图像数据统一为16比特。
69.在具体的应用中,预设比特位数不小于14比特即可,但是指令操作数的位数是以8比特为基本操作单元:单字节8位、双字节16位、双字32位、四字64位,采用16比特是最大限度利用处理器的运力。
70.本领域技术人员应该可以理解,上述的预设的比特位数仅仅是本发明的示例,本领域技术人员可以预设其他比特位数,不小于14比特即可,本发明在此不作限制。
71.步骤205,判断所述选取的所述源图像和所述目标图像的像素点中是否有特殊像素点;
72.步骤206,对所述特殊像素点进行标记位记录;所述特殊像素点为alpha值为0或2
n-1的像素点;
73.步骤207,将所述特殊像素点alpha值修改为1到2
n-2中的任意值。
74.判断选取的源图像和目标图像的像素点中是否有特殊像素点,即alpha值为0或2
n-1的像素点,对特殊像素点进行标志位记录,再将特殊像素点alpha值修改为1到2
n-2中的任意值。
75.具体的,在超高清图像中,alpha通道是可以是一个16位的灰度通道,该通道用65536级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域,当alpha值为0时,该像素点视为完全透明,当alpha值为65535时,该像素点完全不透明。与alpha值为1-65534中任意一值的一般像素点不同,特殊像素点混合不用复杂运算,特殊像素点的值就是源像素值或目标像素值。
76.在具体实现中,并行运算时,各通道按双字节16比特做混合运算。先判断并行像素中是否有alpha=0或alpha=65535全透或不透的特殊像素点,对特殊像素进行标记位记录,将特殊像素点alpha值修改为1-65534中的任意值,以修正改变了alpha值的特殊像素点结果,避免除0的错误情况。
77.步骤208,选取所述源图像和所述目标图像的像素点进行混合处理。
78.具体的,将源图像和目标图像数据统一为16比特,并将特殊像素点alpha值修改为1-65534中的任意值后,将修正后的alpha值与其他像素一并参与并行运算,进行源图像和目标图像的像素点的混合处理。
79.10比特/12比特/14比特图像处理过程中都用16位2个字节表示一个通道,因此一
个像素rgba用64位8个字节表示。基于avx512的混合处理,每次并行操作8个像素;基于avx2的混合处理,每次并行操作4个像素;基于sse2的混合处理,每次并行操作2个像素。
80.步骤209,混合处理结束后,使用所述目标指令集对混合后图像做移位操作,恢复原本比特位数。
81.混合处理结束后,使用确定的目标指令集对混合后图像按双字节16比特做移位操作,恢复原本比特位数。图像像素各通道右移6位恢复到10比特;图像像素各通道右移4位恢复到12比特,图像像素各通道右移2位恢复到14比特。
82.步骤210,将混合后图像中与所述标记位记录对应的像素点值,恢复为所述源图像或所述目标图像的像素点值。
83.具体的,在混合后图像进行移位操作,各通道恢复原本比特位后,将标记位记录对应像素点,恢复为源图像或目标图像的像素点。
84.特殊像素点与alpha值为1-65534中任意一值的一般像素点不同,特殊像素点混合不用复杂运算,特殊像素点的值就是源像素值或目标像素值。在具体的实现中,当标记位记录的alpha值为0或65535的特殊像素点修正为1-65534中任意一值,与其他像素一并参与并行运算后,将运算结果按双字节16比特做移位操作,恢复原本比特位数,再根据记录的标记位找出对应的像素点,恢复为源像素值或目标像素值。例如,获取的源像素点是全透明alpha为0的红色,目标像素点为非特殊像素黄色,进行混合处理前,将该源像素点标记为特殊像素点,并修改alpha值变为非全透明的红色,与目标黄像素做混合后得到的是介于红黄间的某个橙色,根据标记记录的源像素点是透明的,直接用目标像素点黄色填充,既而恢复为目标像素点。
85.步骤211,若所述终端设备不支持所述avx512指令集、avx2指令集以及sse2指令集,则获取源图像和目标图像;对所述源图像和所述目标图像的像素点,逐像素串行进行图像混合。
86.在具体的实施中,如果终端设备不支持avx512指令集、avx2指令集以及sse2指令集,则不应用指令集并行处理,而是每次分别选取源图像的一个像素点和目标图像的一个像素点,进行图像混合处理。
87.在本发明实施例中,在检测终端设备支持的simd指令集,确定终端设备支持avx512指令集、avx2指令集以及sse2指令集后,通过设置avx512指令集、avx2指令集以及sse2指令集的优先级,可以优先调用处理能力高的指令集,对混合超高清图像的像素点进行并行操作,提高了处理效率,实现充分利用机器的最优性能。而且,对源图像和目标图像数据的比特位数进行移位操作,统一调整为预设比特位数,便于将选取的像素点进行并行计算,提高了图像处理效率。
88.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
89.参照图3,示出了本发明实施例提供的一种超高清图像混合处理装置的结构框图,具体可以包括如下模块:
90.第一确定模块301,用于确定终端设备支持的指令集;所述指令集包括avx512指令集、avx2指令集、sse2指令集中的至少一种;所述avx512指令集、avx2指令集、sse2指令集具有优先级顺序;
91.第二确定模块302,用于根据所述终端设备支持的指令集的优先级顺序,确定目标指令集;
92.调用模块303,用于调用所述目标指令集,获取源图像和目标图像,选取所述源图像和所述目标图像的像素点进行混合处理。
93.在本发明一种实施例中,所述装置还包括:
94.第一移位模块,用于在选取所述源图像和所述目标图像的像素点进行混合处理之前,对所述源图像和所述目标图像数据做移位操作,将所述源图像和所述目标图像数据的比特位数,调整为预设比特位数n,其中n为自然数。
95.在本发明一种实施例中,所述装置还包括:
96.判断模块,用于在选取所述源图像和所述目标图像的像素点进行混合处理之前,判断所述选取的所述源图像和所述目标图像的像素点中是否有特殊像素点;
97.记录模块,用于对所述特殊像素点进行标记位记录;所述特殊像素点为alpha值为0或2
n-1的像素点;
98.修改模块,用于将所述特殊像素点alpha值修改为1到2
n-2中的任意值。
99.在本发明一种实施例中,所述装置还包括:
100.第二移位模块,用于混合处理结束后,使用所述目标指令集对混合后图像做移位操作,恢复原本比特位数。
101.在本发明一种实施例中,所述装置还包括:
102.恢复模块,用于将混合后图像中与所述标记位记录对应的像素点值,恢复为所述源图像或所述目标图像的像素点值。
103.在本发明一种实施例中,所述装置还包括:
104.获取模块,用于若所述终端设备不支持所述avx512指令集、avx2指令集以及sse2指令集,则获取源图像和目标图像;
105.混合模块,用于对所述源图像和所述目标图像的像素点,逐像素串行进行图像混合。
106.在本发明的实施例中,用户检测终端设备支持的simd指令集,确定终端设备支持avx512指令集、avx2指令集以及sse2指令集后,通过设置avx512指令集、avx2指令集以及sse2指令集的优先级,可以优先调用处理能力高的指令集,对超高清混合图像的像素点进行并行操作,提高了处理效率,实现充分利用机器的最优性能。
107.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
108.本发明实施例还提供了一种电子设备,包括:
109.包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述超高清图像混合处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
110.本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计
算机程序,计算机程序被处理器执行时实现上述超高清图像混合处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
111.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
112.本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
113.本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
114.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
115.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
116.尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
117.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
118.以上对本发明所提供的一种超高清图像混合处理方法和一种超高清图像混合处理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献