一种平坦度检测和量化参数调整的硬件优化方法及装置

专利2024-03-19  100



1.本发明涉及数字图像处理技术领域,特别是一种平坦度检测和量化参数调整的硬件优化方法及装置。


背景技术:

2.随着高清电子设备和外界高分辨率显示器对带宽的要求的提高,vesa提出了一种更低功耗与成本的视频压缩标准:显示流压缩(dsc)技术。在dsc编码过程中,平坦度检测模块对相邻原始像素进行判断,评价其“平坦”程度,为码率控制模块中量化参数的调整提供参考,从而改善编码效果。
3.然而,有关平坦度检测的硬件编码实现与系统与软件黄金模型并不完全相同,需要考虑到时序周期、硬件资源与算法复杂度。


技术实现要素:

4.鉴于此,本发明提供一种平坦度检测和量化参数调整的硬件优化方法及装置,在保证压缩比不变的同时,提高算法模型psnr指数,改善了图像编码质量。
5.本发明公开了一种平坦度检测和量化参数调整的硬件优化方法,包括以下步骤:
6.步骤1:获取具有n个像素值的原始数据,并将其划分为m个原始数据组;
7.步骤2:基于所述m个原始数据组,计算所述原始数据的平坦度类型,并缓存至预设组;
8.步骤3:重复执行步骤1至步骤2,直至填充满所述预设组;
9.步骤4:找出所述预设组中首次出现的平坦度组,并计算所述预设组的平坦度类型;
10.步骤5:基于所述预设组中是否存在所述首次出现的平坦度组,调整所述原始数据的量化参数;
11.步骤6:重复执行步骤1至步骤5,直至完成所需的原始数据的平坦度检测以及量化参数的调整。
12.进一步地,所述步骤2包括:
13.步骤21:同时对所述m个原始数据组进行第一检测和第二检测;其中,所述m个原始数据组包括依次连接的前一原始数据组、当前原始数据组和后一原始数据组;
14.步骤22:基于所述第一检测和所述第二检测,判断所述原始数据的平坦度类型,并将得到的平坦度类型缓存至所述预设组。
15.进一步地,所述步骤21包括:
16.计算所述当前原始数据组与所述前一原始数据组之间所有像素的差值,得到第一最大差值;
17.计算所述当前原始数据组中所有像素值与所述后一原始数据组中前两个像素值之间的差值,得到第二最大差值。
18.进一步地,所述判断所述原始数据的平坦度类型,包括:
19.当第一最大差值小于阈值very_flat时,判断为十分平坦;
20.当大于very_flat而又小于somewhat_flat时,判断为一般平坦;
21.当大于somewhat_flat时,对第二最大差值进行判断,当第二最大差值小于veryflat时,判断为非常平坦:
22.当大于very_flat小于somewhat_flat时,判断为一般平坦;否则,判断为不平坦。
23.进一步地,very_flat和somewhat_flat的计算公式为:
24.somewhat_flat=max{flatness_det_thresh,2
qlevel
}
25.very_flat=flatness_det_thresh
26.其中,qlevel基于qp值根据不同通道查表得到,flatness_det_thresh由配置参数文件得到;qp为量化参数。
27.进一步地,所述步骤4包括:
28.将所述预设组中平坦度类型首次为一般平坦或非常平坦的组且该组的上一组是平坦度类型为不平坦时的组作为首次出现的平坦度组;将该首次出现的平坦度组的平坦度类型作为所述预设组的平坦度类型。
29.进一步地,所述预设组的平坦度类型的存储位宽比所述首次出现的平坦度组的平坦度类型的存储位宽少1;存储首次出现的平坦度组及其在所述预设组中的位置;将所述预设组的平坦度类型与所述首次出现的平坦度组在下一个预设值的第一组输出。
30.进一步地,若所述预设组中没有平坦度组,或是当masterqp不满足第一条件,则不对qp值进行调整;其中,所述第一条件为:
31.masterqp<flatnessmaxqp
32.其中,masterqp为当前原始数据组的量化参数,flatnessmaxqp为平坦度量化参数最大值,由所压缩图片配置信息得到,为固定值;qp为量化参数。
33.进一步地,若所述预设组中有所述首次出现的平坦度组,且masterqp满足所述第一条件,进入qp调整模块,根据此时平坦度类型与masterqp对qp作出调整:
34.若平坦度类型为一般平坦且masterqp满足:
35.masterqp<(7+((bits_per_omponent-8)>>1))
36.则将qp调整为:
37.qp=max{masterqp-4,0}
38.若平坦度类型为特别平坦或是masterqp>(7+((bits_per_omponent-8)>>1)),则将qp调整为:
39.qp=1+((bits_per_component-8)>>1)
40.其中,bits_per_omponent为所压缩编码图像的像素比特位宽。
41.本发明还公开了一种平坦度检测和量化参数调整的硬件优化装置,包括:
42.获取模块,用于获取具有n个像素值的原始数据,并将其划分为m个原始数据组;
43.计算模块,用于基于所述m个原始数据组,计算所述原始数据的平坦度类型,并缓存至预设组;
44.填充模块,用于重复进入所述获取模块和所述计算模块,直至填充满所述预设组;
45.计算模块,用于找出所述预设组中首次出现的平坦度组,并计算所述预设组的平
坦度类型;
46.调整模块,用于基于所述预设组中是否存在所述首次出现的平坦度组,调整所述原始数据的量化参数;
47.完成模块,用于重复进入所述获取模块、所述计算模块、所述填充模块、所述计算模块、所述调整模块,直至完成所需的原始数据的平坦度检测以及量化参数的调整。
48.由于采用了上述技术方案,本发明具有如下的优点:
49.(1)基于本发明提出的方法,平坦度检测不再需要一次性预读大量数据,在进行压缩的同时也进行少量数据的读取与比较大小工作,使得平坦度检测处理更加平缓,对于硬件实现更加可靠。
50.(2)每个group进行平坦度检测的像素位置与像素数量发生改变,在保证压缩比不改变的前提下,平坦度检测效果更加精确,改善了显示流压缩编解码输出图像质量。
51.(3)平坦度检测1与检测2同时进行,节省硬件周期,提升速率。
52.(4)本发明提出的平坦度检测硬件优化方法只在编码端提升了平坦度类型以及平坦度组的精度,不需要在解码端做出其他调整,以较低的复杂度取得了更高的编码质量,且在软件模型上经过验证,psnr系数有所提高。
附图说明
53.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
54.图1为本发明实施例提供的显示流压缩中平坦度检测的硬件优化方法流程图;
55.图2为本发明实施例提供的改善的平坦度检测中两次检测(检测1、检测2)像素范围的示意图;
56.图3为本发明实施例提供的一种具体实施方式中所涉及的平坦度类型判断的设计示意图;
57.图4为本发明实施例提供的一种具体实施方式中所涉及的预设组像素范围的设计示意图;
58.图5为本发明实施例提供的一种具体实施方式中所涉及的平坦度组与预设组平坦度类型的设计示意图;
59.图6为本发明实施例提供的一种具体实施方式中所涉及的平坦度检测硬件优化系统的设计示意图;
60.图7为本发明实施例提供的一种具体实施方式中所涉及的软件模型与硬件优化方法的输出psnr(峰值信噪比)值比较。
具体实施方式
61.结合附图和实施例对本发明作进一步说明,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
62.本发明公开了一种平坦度检测和量化参数调整的硬件优化方法,在显示流压缩
中,对于ram送来的原始数据进行平坦度类型检测,在不影响时序的情况下,对平坦度类型检测的像素范围做出调整;为避免一次性读取、处理大量数据,将每组平坦度类型结果存储,当数据存储至一个预设组时,根据四组的结果对平坦度组与最终平坦度类型做出判断。最后在依据初次平坦度与平坦度类型对量化参数调整。
63.作为本发明一种具体实施方法,参见图1和图6,本发明提供的一种平坦度检测和量化参数调整的硬件优化方法,包括以下步骤:
64.步骤1、在dsc编码器设计中,图像原始rgb数据值在经过色彩空间转换后,y、co、cg数据被存储进ram中,ram输出数据分别送往预测模式与平坦度检测模式。在这里,ram每次向平坦度检测部分送去8像素值。
65.步骤2、根据像素值不同位置分别进行检测1与检测2,比较得到进行两次检测所需像素范围的最大值与最小值,通过最大值减去最小值得到两组最大差值。
66.步骤3、根据两组差值的大小对该组的平坦度类型进行判断,并将平坦度类型寄存。
67.步骤4、当已经有四组数据经过平坦度类型检测后,根据缓存的四组平坦度类型来做出最后的平坦度判断,得到平坦度组与预设组平坦度类型。
68.步骤5、将平坦度组信号与最终平坦度类型信号寄存,再下一预设组第一组时输出。
69.步骤6、根据输出的平坦度信号与组数来进行量化参数qp的调整。
70.下面结合附图对本发明实施例的技术方案,作进一步的描述。
71.如图2所示,平坦度检测进一步具体为检测1与检测2,两种检测同时进行。检测1需要找到当前组与前一组总计6个像素的最大值与最小值,检测2需要找到当前组与下一组前两个像素总共5个像素的最大值与最小值,分别作差,得到两组检测的最大差值。
72.如图3所示,将检测1的最大差值与very_flat、somewhat_flat进行比较,当差值1小于very_flat时,判断为非常平坦,检测结束;如果差值1大于very_flat小于somewhat_flat,则为一般平坦,检测结束;如果差值1大于somewhat_flat时,这时对于差值1的判断结束,开始对差值2进行判断。如果差值2小于very_flat时,判断为非常平坦,检测结束;如果处于very_flat与somewhat_flat之间,为一般平坦;否则,为不平坦。
73.如图4所示,一个预设组由四个组构成,每个组包含三个像素,除此之外,对预设组的平坦度检测还需要获得前一组与后一组前两个像素的数据。对group_1的数据(包含前三、后二,总共8像素)进行平坦度检测,得到的group_1的平坦度类型数据进行寄存,group_2、group_3、group_4同样进行该操作。在得到group_4的平坦度类型数据以后,根据这四组的数据,对整个预设组的数据进行最终的平坦度结果进行判断
74.如图5所示,当四组平坦度类型数据都得到以后,对四组数据进行判断。找到第一个flatness_type大于0的组,即第一次判定为一般平坦或非常平坦的组,并将该组的平坦度类型作为预设组平坦度类型的输出。需要注意的是,判断平坦度组时需要该组为一般平坦或是非常平坦,且前一组为不平坦。预设组平坦度类型flatness_type对应平坦度组的平坦度类型减1,可以减少该信号的存储位宽,节省硬件资源。
75.本发明提出的平坦度检测硬件优化方法只在编码端提升了平坦度类型以及平坦度组的精度,不需要在解码端做出其他调整,以较低的复杂度取得了更高的编码质量,且在
软件模型上经过验证,psnr系数有所提高,具体参见图7。
76.本发明还提供了一种平坦度检测和量化参数调整的硬件优化装置,包括:
77.判断模块,用于判断原始输入数据的平坦度类型,并缓存至预设组;预设组包括依次连接的多个小组;
78.计算模块,用于找出预设组中首次出现的平坦度组,并计算预设组的平坦度类型;
79.调整模块,用于基于预设组中是否存在首次出现的平坦度组,调整原始输入数据的量化参数。
80.最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

技术特征:
1.一种平坦度检测和量化参数调整的硬件优化方法,其特征在于,包括以下步骤:步骤1:获取具有n个像素值的原始数据,并将其划分为m个原始数据组;步骤2:基于所述m个原始数据组,计算所述原始数据的平坦度类型,并缓存至预设组;步骤3:重复执行步骤1至步骤2,直至填充满所述预设组;步骤4:找出所述预设组中首次出现的平坦度组,并计算所述预设组的平坦度类型;步骤5:基于所述预设组中是否存在所述首次出现的平坦度组,调整所述原始数据的量化参数;步骤6:重复执行步骤1至步骤5,直至完成所需的原始数据的平坦度检测以及量化参数的调整。2.根据权利要求1所述的方法,其特征在于,所述步骤2包括:步骤21:同时对所述m个原始数据组进行第一检测和第二检测;其中,所述m个原始数据组包括依次连接的前一原始数据组、当前原始数据组和后一原始数据组;步骤22:基于所述第一检测和所述第二检测,判断所述原始数据的平坦度类型,并将得到的平坦度类型缓存至所述预设组。3.根据权利要求2所述的方法,其特征在于,所述步骤21包括:计算所述当前原始数据组与所述前一原始数据组之间所有像素的差值,得到第一最大差值;计算所述当前原始数据组中所有像素值与所述后一原始数据组中前两个像素值之间的差值,得到第二最大差值。4.根据权利要求3所述的方法,其特征在于,所述判断所述原始数据的平坦度类型,包括:当第一最大差值小于阈值veryflat时,判断为十分平坦;当大于very_flat而又小于somewhat_flat时,判断为一般平坦;当大于somewhat_flat时,对第二最大差值进行判断,当第二最大差值小于very_flat时,判断为非常平坦:当大于very_flat小于somewhat_flat时,判断为一般平坦;否则,判断为不平坦。5.根据权利要求4所述的方法,其特征在于,very_flat和somewhat_flat的计算公式为:somewhat_flat=max{flatness_det_thresh,2
qlevel
}very_flat==flatness_det_thresh其中,qlevel基于qp值根据不同通道查表得到,flatness_det_thresh由配置参数文件得到;qp为量化参数。6.根据权利要求1所述的方法,其特征在于,所述步骤4包括:将所述预设组中平坦度类型首次为一般平坦或非常平坦的组且该组的上一组是平坦度类型为不平坦时的组作为首次出现的平坦度组;将该首次出现的平坦度组的平坦度类型作为所述预设组的平坦度类型。7.根据权利要求6所述的方法,其特征在于,所述预设组的平坦度类型的存储位宽比所述首次出现的平坦度组的平坦度类型的存储位宽少1;存储首次出现的平坦度组及其在所述预设组中的位置;将所述预设组的平坦度类型与所述首次出现的平坦度组在下一个预设
值的第一组输出。8.根据权利要求1所述的方法,其特征在于,若所述预设组中没有平坦度组,或是当masterwp不满足第一条件,则不对qp值进行调整;其中,所述第一条件为:masterqp<flatnessmaxqp其中,masterqp为当前原始数据组的量化参数,flatnessmaxqp为平坦度量化参数最大值,由所压缩图片配置信息得到,为固定值;qp为量化参数。9.根据权利要求8所述的方法,其特征在于,若所述预设组中有所述首次出现的平坦度组,且masterqp满足所述第一条件,进入qp调整模块,根据此时平坦度类型与masterqp对qp作出调整:若平坦度类型为一般平坦且masterqp满足:masterqp<(7+((bits_per_omponent-8)>>1))则将qp调整为:qp=max{masterqp-4,0}若平坦度类型为特别平坦或是masterqp>(7+((bits_per_omponent-8)>>1)),则将qp调整为:qp=1+((bits_per_component-8)>>1)其中,bits_per_omponent为所压缩编码图像的像素比特位宽。10.一种平坦度检测和量化参数调整的硬件优化装置,其特征在于,包括:获取模块,用于获取具有n个像素值的原始数据,并将其划分为m个原始数据组;计算模块,用于基于所述m个原始数据组,计算所述原始数据的平坦度类型,并缓存至预设组;填充模块,用于重复进入所述获取模块和所述计算模块,直至填充满所述预设组;计算模块,用于找出所述预设组中首次出现的平坦度组,并计算所述预设组的平坦度类型;调整模块,用于基于所述预设组中是否存在所述首次出现的平坦度组,调整所述原始数据的量化参数;完成模块,用于重复进入所述获取模块、所述计算模块、所述填充模块、所述计算模块、所述调整模块,直至完成所需的原始数据的平坦度检测以及量化参数的调整。

技术总结
本发明公开了一种平坦度检测和量化参数调整的硬件优化方法及装置,方法包括以下步骤:步骤1:获取具有N个像素值的原始数据,并将其划分为M个原始数据组;步骤2:基于M个原始数据组,计算原始数据的平坦度类型,并缓存至预设组;步骤3:重复执行步骤1至步骤2,直至填充满预设组;步骤4:找出预设组中首次出现的平坦度组,并计算预设组的平坦度类型;步骤5:基于预设组中是否存在首次出现的平坦度组,调整原始数据的量化参数;步骤6:重复执行步骤1至步骤5,直至完成所需的原始数据的平坦度检测以及量化参数的调整。本发明提高了显示流压缩编解码的图像质量并在硬件实现中得到验证。解码的图像质量并在硬件实现中得到验证。解码的图像质量并在硬件实现中得到验证。


技术研发人员:宋锐 崔骞 李娇娇 张康迪 吴勇 王养利 刘子凡 刘翔
受保护的技术使用者:西安电子科技大学芜湖研究院
技术研发日:2022.07.19
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-7205.html

最新回复(0)