本发明属于视频图像处理领域,具体涉及一种并行图像色彩增强方法和装置。
背景技术:
目前,视频技术的主流发展方向之一为超高清(4K分辨率)显示技术。相对于高清(1920*1080)视频,4K视频的像素数从2M提升到8M,因此对图像增强算法的画质和效能提出了更高的要求。
当前,图像色彩增强技术基本上以三维插值为基础,在进行增强时,需要通过查表和插值实现色彩变换,对于RGB图像,每个像素对应RGB三个通道,需要查表3×8=24次,并且需要计算8个权重,每个权重需要进行两次乘法运算,计算量较大,在面对4K图像处理需求时,很有可能处理能力不足的问题。
因此,传统方案在超高清时代面临两个困难,1传统方案通常采用固化算法的专用硬件电路,难以对算法进行灵活修改,当需要修改算法时,需要重新设计流片,成本压力巨大;2传统方案在实现并行查表时,通常采用多个访存通道并行工作,增加了硬件成本。
针对这两个问题,本发明提出了一种并行的图像色彩增强装置以及方法,该装置主要用于实现低成本,高速并行查表,同时支持根据图像处理算法对硬件进行重构;该方法实现了针对不同分辨率和查找表的插值权重实时计算以及并行的灰度映射操作。
技术实现要素:
为了解决现有技术中的上述问题,即为了进一步提升超高清图像的色彩增强处理速度,本发明的一方面,提出了一种并行图像色彩增强方法,包括以下步骤:
步骤1,加载图像数据,计算三维查表系数和插值权重;所述三维查表系数为每个单独色彩通道的查找表的表项对应的索引系数;
步骤2,基于查找表,通过查表操作获取插值所需RGB三通道查表结果;
步骤3,基于步骤2的查表结果以及所述插值权重计算每个插值点的RGB值,并输出结果。
优选地,步骤1之前还设置有参数预加载步骤,包括:将三维RGB空间颜色查找表以及计算插值权重所需参数加载至缓冲器;所述三维RGB空间颜色查找表为R、G、B三色单独色彩通道的查找表。
优选地,所述通过查表操作获取插值所需RGB三通道查表结果,采用分段查表进行灰度变换,包括以下步骤:
步骤21,将所述灰度映射查找表拆分为M个子查找表;M=L/N,M值会向上取整,其中,L为所述灰度映射查找表的大小,N为预设的并行度;
步骤22,通过像素灰度值的低位字节对M个大小为N的子查找表进行查表;
步骤23,通过高位字节对M个查表结果进行筛选,最终获得查表数据作为灰度变换的结果。
优选地,所述缓冲器中缓冲单元大小为N个像素;所述缓冲器配备有4个读取端口和4个写入端口。
优选地,缓冲器支持直接使用序号对其中的缓冲单元进行读写;缓冲器与运算部件同步运行。
本发明的另一方面,提出了一种并行图像色彩增强装置,该装置包括局部存储器、访存控制单元、缓冲器、并行算术逻辑单元ALU、并行乘累加器MAC、状态机、数据交织单元SHU;
所述局部存储器,用于保存输入输出图像数据以及并行视频图像对比度增强算法所需参数,该存储器支持并行访问;
所述访存控制单元,用于局部存储器与缓冲器之间的数据交换;
所述缓冲器,用于缓冲一次完整的处理流程所需要的全部数据以及中间结果,该缓冲区可以通过地址直接索引;
所述并行算术逻辑单元,用于执行并行视频图像对比度增强算法中涉及的非乘法类算术与逻辑运算;
所述并行乘累加器,用于对执行乘法相关运算;
所述状态机,用于产生所有功能部件的控制信号;
所述数据交织单元,用于并行查表操作;
所述状态机分别通过通信线路与数据交织单元、缓冲器、并行乘累加器、并行算术逻辑单元、访存控制单元连接;所述局部存储器通过通信线路与访存控制单元连接;所述缓冲器分别通过通信线路与访存控制单元、数据交织单元、并行算术逻辑单元、并行乘累加器连接;所述数据交织单元分别通过通信线路与并行算术逻辑单元、并行乘累加器连接;所述并行算术逻辑单元通过通信线路与并行乘累加器连接。
优选地,所述缓冲器所缓存的数据还包括三维RGB空间颜色查找表;所述三维RGB空间颜色查找表为R、G、B三色单独色彩通道的查找表。
从上述技术方案可以看出,本发明具有以下有益效果:
(1)增强了图像色彩,使画面更加鲜艳;
(2)易于对图像处理算法进行后期优化升级;
(3)提高了数据的使用效率,减少了运算部件与外围存储器之间的数据交互,降低了访存带宽压力;
(4)通过使用通用缓冲区和状态机对功能部件进行控制,实现了硬件资源的重复利用。
附图说明
图1是本发明的并行图像色彩增强装置结构示意图;
图2是本发明的并行图像色彩增强方法的流程示意图;
图3是本发明一实施例的缓冲器的缓冲区示意图;
图4是本发明一实施例的三维查表以及三维插值示意图示意图。
具体实施方式
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
本发明的一种并行图像色彩增强装置,如图1所示,包括局部存储器、访存控制单元、缓冲器、并行算术逻辑单元(ALU)、并行乘累加器(MAC)、状态机、数据交织单元(SHU);
所述局部存储器,用于保存输入输出图像数据以及并行视频图像对比度增强算法所需参数,该存储器支持并行访问;
所述访存控制单元,用于局部存储器与缓冲器之间的数据交换;本实施例中采用三个功能完全一致的访存控制单元,突破了访存资源瓶颈;
所述缓冲器,用于缓冲一次完整的处理流程所需要的全部数据以及中间结果,该缓冲区可以通过地址直接索引;所述缓冲器所缓存的数据还包括三维RGB空间颜色查找表;所述三维RGB空间颜色查找表为R、G、B三色单独色彩通道的查找表;
所述并行算术逻辑单元,用于执行并行视频图像对比度增强算法中涉及的非乘法类算术与逻辑运算;
所述并行乘累加器,用于对执行乘法相关运算;
所述状态机,用于产生所有功能部件的控制信号;
所述数据交织单元,用于并行查表操作;
所述状态机分别通过通信线路与数据交织单元、缓冲器、并行乘累加器、并行算术逻辑单元、访存控制单元连接;所述局部存储器通过通信线路与访存控制单元连接;所述缓冲器分别通过通信线路与访存控制单元、数据交织单元、并行算术逻辑单元、并行乘累加器连接;所述数据交织单元分别通过通信线路与并行算术逻辑单元、并行乘累加器连接;所述并行算术逻辑单元通过通信线路与并行乘累加器连接。
当需要更改增强算法时,该装置仅需要对SPU和状态机进行重新编程,产生新的灰度映射函数和控制信号,同时更新局部存储器中的算法参数,即可快速实现算法迭代,而不需要重新设计制造硬件电路。
本发明提出的一种并行图像色彩增强方法,通过利用RGB色彩空间三维查找表以及三维插值,实现图像色彩饱和度提升。本发明可以充分利用高速通用缓冲区和数据交织单元,使得图像数据仅需要对局部存储器进行一次读取与写入操作,显著降低了对访存带宽的需求,提高了效率,同时数据交织单元可以使查表操作的效率提高至传统查表方法的N倍,N为系统的并行度。
本发明提出的一种并行图像色彩增强方法,如图2所示,包括以下步骤:
步骤1,参数计算:加载图像数据,计算三维查表系数和插值权重;所述三维查表系数为每个单独色彩通道的查找表的表项对应的索引系数;
步骤2,获取查表结果:基于查找表,通过查表操作获取插值所需RGB三通道查表结果;
步骤3,三维插值:基于步骤2的查表结果以及所述插值权重计算每个插值点的RGB值,并输出结果。
步骤1之前还设置有参数预加载步骤,包括:将三维RGB空间颜色查找表以及计算插值权重所需参数加载至缓冲器;所述三维RGB空间颜色查找表为R、G、B三色单独色彩通道的查找表。
1、参数预加载
将三维RGB空间颜色查找表以及计算插值权重需要的若干参数加载至通用缓冲区;所述三维RGB空间颜色查找表为R、G、B三色单独色彩通道的查找表。
图3为本发明一实施例的缓冲器。如图3所示,所述缓冲器(用大写字母M代表)共存在NM个大小为N个像素的缓冲单元,配备有4个读取端口(r0、r1、r2、r3)和4个写入端口(w0、w1、w2、w3),可以承载高速读写操作。缓冲器M支持直接使用序号对其NM个缓冲单元进行读写,便于对数据的重复使用。本发明所采用的缓冲器与运算部件同步运行,避免了高速运算部件等待低速存储部件的问题。
2、参数计算
基于加载图像数据,计算三维查表系数和插值权重;如图4所示,本发明采用了三维插值方法实现RGB空间内的色彩映射。
图4中P点为RGB空间中待插值点,P000、P001、P010、P011、P100、P101、P110、P111八个点为查表获得的表项数据对应的点,Pt、Pb分别为P点到立方体顶部面和底部面垂线的焦点,P000~P111的8点与P最近邻且存在于查找表中,P点的RGB值需要通过对这8个点的RGB值进行加权获得。
在本发明一实施例中,在8bit量化的RGB空间中,采用了等分的5×5×5查找表,即存在3个125个表项数据的查找表(分别对应R、G、B三通道)。每个单独色彩通道的查找表表项对应的索引系数(即查表系数)index=kr×25+kg×5+kb,RGB三通道的index值相同;kr∈[0,4],kg∈[0,4],kb∈[0,4];计算每个像素点所对应8个表项的索引系数的方法是,首先计算出相应的kr,kg,kb:
kr0=r>>6 kg0=g>>6 kb0=b>>6
kr1=kr0+1 kg1=kg0+1 kb1=kb0+1
其中>>表示右移,r、g、b表示对应的颜色通道像素值;kr0、kg0、kb0、kr1、kg1、kb1是计算P000-P111八个点位置的中间变量,通过待映射的P点的RGB三通道值计算得到。
当计算P000的查表索引系数时,将kr0、kg0、kb0带入索引系数计算公式index=kr×25+kg×5+kb,即可算出P000的查表系数;同理,可以依次计算出所需8个表项的相应索引系数,公式为indexABC=krA×25+kgB×5+kbC,例如P000的索引系数index000=kr0×25+kg0×5+kb0,P001的索引系数index001=kr0×25+kg0×5+kb1。
计算索引系数时,首先要将图像数据加载至算术逻辑单元(ALU),在ALU中完成移位和加法运算,从而求得所需要kr0、kg0、kb0、kr1、kg1、kb1六个参数。然后将这六个参数发送至乘累加器MAC中,计算出相应的8个索引系数并暂存于缓冲器M中,以备调用。
计算插值权重时,首先计算P点三通道像素值在各自色彩轴方向上的线性插值系数:
wr0=64-r%6 wg0=64-g%6 wb0=64-b%6
wr1=64-wr0 wg1=64-wg0 wb1=64-wb0
其中%表示取模,r、g、b表示对应的颜色通道像素值;
进而计算出8个插值权重,如下所示
8个表项点的插值系数通过如下方法计算:
w000=wr0*wg0*wb0
w001=wr0*wg0*wb1
w010=wr0*wg1*wb0
w011=wr0*wg1*wb1
w100=wr1*wg0*wb0
w101=wr1*wg0*wb1
w110=wr1*wg1*wb0
w111=wr1*wg1*wb1
计算插值权重时,首先要将图像数据加载至ALU,在ALU中完成取模和减法运算;计算结果发送至MAC并完成乘法运算从而求得插值权重;插值权重同样暂存于缓冲器M中。
3、获取查表结果
基于查找表,通过查表操作获取插值所需RGB三通道查表结果;
本发明所述方法通过数据交织单元实现查表操作的并行化。数据交织单元(SHU)的并行度为N,即支持N个像素对大小为N(也可以不为N,具体根据需求设定,此处仅为举例说明)的表进行查表操作。通常情况下,整个查找表(LUT)的大小L会大于N,因此,所述方法采用了分段查表实现灰度变换:首先将整个查找表分为M个子查找表,M=L/N,M值会向上取整。同时通过像素灰度值的低位字节对M个大小为N的子查找表进行查表,并通过高位字节对M个查表结果进行筛选,最终获得查表数据。为使这一步骤的工作方式更清晰,下面以本实施例为例进行说明:在本实施例中,运算并行度N=32,查找表大小为125,其2进制表示为1个7位二进制数,SHU每个的寄存器可以保存64个表项数据,本实施例中用于进行查表操作的SHU单元每次可以对长度为64项的LUT进行查表,故需要将长度为125的LUT分割为两个子LUT,因此,对每个色彩通道进行查表,需要进行两次查找和一次结果筛选:查表时,首先根据index的低6位数从两个子LUT中分别获取对应位置的数据,再通过第7位对结果进行筛选选取真正的有效数据,从而获得所需查表值。对三个通道重复此操作,即可完成RGB三维查找。
该步骤总共需要进行3×8×2=48次并行查表和24次筛选。执行过程中,索引系数首先加载至ALU,计算查表系数(低6位)和筛选标志(第7位);然后将查表系数发送至数据交织单元SHU完成并行查表,并将两个查表结果返回ALU;最后在ALU中完成数据筛选,筛选结果保存至通用缓冲区M。
上述过程以N=32,L=125为例,但本领域技术人员可以了解,本发明并不仅仅限于该情况,即本发明还可以改变所述装置的并行度N,以获得新的并行色彩增强装置;同时,所述装置也不仅适用于查找表大小为125的情况,而是普遍适用于图像处理领域所涉及的各种大小的三维查找表。
4、三维插值
利用上述步骤获得的查表结果以及插值权重,即可计算出每个插值点的RGB值:
r=w000*r000+w001*r001+...+w111*r111
g=w000*g000+w001*g001+...+w111*g111
b=w000*b000+w001*b001+...+w111*b111
r000为P000对应的r通道值,剩余颜色通道和对应表项点同理,例如g000、g001、g010、g011、g100、g101、g110、g111分别为P000、P001、P010、P011、P100、P101、P110、P111对应的g通道值。
该步骤需要同时将插值权重以及对应的色彩通道像素值加载至MAC,并进行乘累加运算。每个像素点需要进行3×8次乘累加计算,并最终求得插值点的RGB通道数据,实现色彩饱和度增强。
上述过程对本发明的完整处理流程进行了解释说明,本发明通过对状态机的编程以及使用通用缓冲区设计,实现了硬件资源的重复利用,在运行复杂算法时,避免了传统的专用电路方案设计流片周期长且版本迭代成本高的不足之处。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。