首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于AVX技术的快速颜色空间转换方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京航天长峰科技工业集团有限公司

摘要:一种基于AVX技术的快速颜色空间转换方法,将图像高度宽值存放于rcx寄存器、高度值放于rdx寄存器、YUV内存地址位于r8寄存器、RGB内存地址位于r9寄存器;将YUV420的内存地址存放于rsi寄存器、RGB的内存地址放于rdi寄存器、图像的宽度值放于rax寄存器,通过图像的宽度值和高度值计算U、V分量在内存中的偏移值。将第一行Y的4个值加载到xmm0寄存器,将第二行Y的4个值加载到xmm1寄存器,将2个U分量加载到xmm2寄存,并复制为4个值,2个V分量加载到xmm3寄存器,同样复制为4个值。通过AVX的向量加、减、乘指令进行计算,得到对应的R、G、B,可以有效提高转换速度。

主权项:一种基于AVX技术的快速颜色空间转换方法,其特征在于包括如下步骤:1将图像宽度值存放于rcx寄存器、高度值放于rdx寄存器、YUV内存地址位rsi寄存器、RGB内存地址位于rdi寄存器;2通过图像的宽度值和高度值计算U、V分量的起始地址,分别存放于rax和rbx寄存器;3将16,128,298,409,100,208,516,8通过prefetcht1指令加载到CPU的缓存;4将第一行4个像素点的Y分量加载到xmm0寄存器,第二行前4个像素点的Y分量加载到xmm1寄存器,并将8个值扩展为有符号整型值;5将这8个像素点对应的4个U、V分量加载到xmm2、xmm3寄存器,并进行复制,复制后的值扩展为有符号整型值;6按照公式进行YUV转RGB的计算,将计算后的结果转换为无符号字符型,并将结果由寄存器复制到RGB内存中;7重复步骤4、5、6,直到两行中的所有像素点完成转换;8重复步骤4、5、6、7,直到图像所有的像素点完成转换。

全文数据:—种基于AVX技术的快速颜色空间转换方法技术领域[0001]本发明涉及视频图像处理领域,具体涉及视频图像处理YUV颜色空间转换为RGB空间,将YUV值快速转换为RGB值。背景技术[0002]YUV是被欧洲电视系统采用的颜色编码方案,广泛应用于视频会议、视频监控、电视广播等领域。YUV常用的编码方法包括YUV444、YUV422、YUV420等,其中YUV420能有效地还原真实场景,并降低传输带宽需求,为YUV主流的编码方法。[0003]RGB是工业界的一中颜色标准,通过对红⑻、绿⑹、蓝⑻三个颜色通道的变化以及它们相互之间的叠加来的其他颜色,是目前运用最广的颜色编码方案之一。[0004]在视频图像处理,经常涉及到颜色空间的转换,尤其是YUV转换为RGB,传统的方法需要逐个像素点进行转换,从Y、U、V分量转换为R、G、B分量,计算量大,速度慢,当图像分辨率高的情况下该问题尤其突出。发明内容[0005]本发明的目的在于提出了一种基于AVX技术的快速颜色空间转换方法,利用InteiAVX技术实现YUV42〇编码快速转换为RGB编码的方法,该方法转换速度快,计算时间短,在分辨率高的情况下效果尤其具有优势。[0006]本发明的技术方案如下:[0007]一种基于AVX技术的快速颜色空间转换方法,其特征在于包括如下步骤:[0008]⑴将图像宽度值存放于rex寄存器、高度值放于rdx寄存器、YUV内存地址位rsi寄存器、RGB内存地址位于rdi寄存器;[0009]⑵通过图像的宽度值和高度值计算u、v分量的起始地址,分别存放于rax和rbx寄存器;[0010]⑶将16,128,298,409,100,208,516,8通过。代€61::111:1指令加载到〇?1]的缓存;[0011]⑷将第一行4个像素点的Y分量加载到xmm〇寄存器,第二行前4个像素点的Y分量加载到xmml寄存器,并将8个值扩展为有符号整型值;[0012]⑸将这8个像素点对应的4个U、V分量加载到xmm2、xrara3寄存器,并进行复制,复制后的值扩展为有符号整型值;[0013]⑹按照公式进行YUV转RGB的计算,将计算后的结果转换为无符号字符型,并将结果由寄存器复制到RGB内存中;[0014]⑺重复步骤⑷、⑸、⑹,直到两行中的所有像素点完成转换;[0015]⑻重复步骤⑷、⑸、⑹、⑺,直到图像所有的像素点完成转换。[0016]本发明具有以下有益效果:[0017]1.计算速度快,花费时间少;[0018]2.无需特别的硬件资源;[0019]3.技术实现简单,具有很强的应用价值。附图说明[0020]图1是本发明方法中采用的YUV42〇存储格式示意图;[0021]图2是本发明方法中采用的RGB存储格式示意图;[0022]图3是本发明方法采用的Y、U、V计算方式示意图。具体实施方式[0023]英特尔公司的AdvancedVectorExtensionsAVX单指令多数据并行计算技术在一个时钟周期内可进行多个数据的计算,有效地提高计算速度。本发明的方法即是一种利用IntelAVX单指令多数据技术实现YUV420格式转换为RGB格式的方法,是一种快速的YUV420转RGB的方法,采用的转换公式如下:[0024]C=Y-16[0025]D二U-128[0026]E=V-128[0027]R二clip298*C+409*E+128》8[0028]G=clip298*C-100*D-208*E+1288[0029]B=clip298*C+516*D+1288[0030]其中clip函数表示取值范围为0-255。[0031]YUV420在内存中的存储方式如图1所示。YUV和RGB每个分量丫、11、¥、1?、〇、8为无符号字符型,计算过程中的变量C、D、E为4字节有符号整型。[0032]为了提高内存读写的速度,每个R、G、B分量后面跟1字节的空数据w,如图2所示,保证每个像素点的RGB值在内存为32位对齐。[0033]如图3所示,图像高度宽值存放于rex寄存器、高度值放于rdx寄存器、YUV内存地址位于rS寄存器、RGB内存地址位于r9寄存器。由于每个像素点的计算都用到16,128,298,409,100,208,516,S这些数值,为了提高读写速度,将这些值放在PU的缓存中,确保在一个时钟周期即可实现对数据的存取。[0034]将YUV420的内存地址存放于rsi寄存器、RGB的内存地址放于rdi寄存器、图像的宽度值放于rax寄存器,通过图像的宽度值和高度值计算U、V分量在内存中的偏移值。在YUV420格式中,每个U、V分量需要同连续两行4个像素点的Y分量进行计算,得到这4个像素点的RGB值。由于AVX技术对应的xmm寄存器位长为I28位,可进行4个整型值的运算,因此每次可计算4个像素点的RGB值。[0035]将第一行Y的4个值加载到xmmO寄存器,将第二行Y的4个值加载到xmml寄存器,将2个U分量加载到xmm2寄存,并复制为4个值,2个V分量加载到xmm3寄存器,同样复制为4个值。通过AV的向量加、减、乘指令进行计算,得到对应的R、G、B,可以有效提高转换速度。[0036]本发明的具体实现方式如下:[0037]1将图像宽度值存放于rex寄存器、高度值放于rdx寄存器、YUV内存地址位rsi寄存器、RGB内存地址位于rdi寄存器;[0038]⑵通过图像的宽度值和高度值计算U、V分量的起始地址,分别存放寄存器;[0039]⑶将16,128,298,409,100,208,516,8通过prefetchtl指令加载到CPU的缓存;[0040]4将第一行4个像素点的Y分量加载到xmmO寄存器,第二行前4个像素点的Y分量力口载到xmml寄存器,并将8个值扩展为有符号整型值;[0041]⑸将这8个像素点对应的4个U、V分量加载到x_2、x_3寄存器,并进行复制,复制后的值扩展为有符号整型值;[0042]⑹按照公式进行YUV转RGB的计算,将计算后的结果转换为无符号字符型,并将结果由寄存器复制到RGB内存中;[0043]⑺重复步骤⑷、⑸、⑹,直到两行中的所有像素点完成转换;[0044]⑻重复步骤⑷、⑸、⑹、⑺,直到图像所有的像素点完成转换。

权利要求:1.一种基于AVX技术的快速颜色空间转换方法,其特征在于包括如下步骤:1彳寸图像见度值存放于rex寄存器、闻度值放于^^如寄存器、YUV内存地址位rsi寄存器、RGB内存地址位于rdi寄存器;2通过图像的宽度值和高度值计算u、V分量的起始地址,分别存放寄存器;⑶将I6,I28,298,4〇9,100,2〇8,5丨6,8通过prefetcht1指令加载到CPU的缓存;4将第一行4个像素点的Y分量加载到xmmO寄存器,第二行前4个像素点的Y分量加载到xmml寄存器,并将8个值扩展为有符号整型值;⑸将这8个像素点对应的4个U、V分量加载到xram2、xmm3寄存器,并进行复制,复制后的值扩展为有符号整型值;⑹按照公式进行YUV转RGB的计算,将计算后的结果转换为无符号字符型,并将结果由寄存器复制到RGB内存中;⑺重复步骤⑷、(5、6,直到两行中的所有像素点完成转换;⑻重复步骤⑷、(5、6、(7,直到图像所有的像素点完成转换。

百度查询: 北京航天长峰科技工业集团有限公司 一种基于AVX技术的快速颜色空间转换方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。