本技术涉及数据压缩,特别是涉及一种码率控制方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术:
1、屏幕由于其制作工艺的限制导致每个像素在相同灰阶的时候显示亮度不均匀,我们称这种现象为mura(不均匀)效应。为了消除面板的mura效应,通常会将每个像素在特定几个灰阶的补偿值烧录到面板显示驱动芯片的rom(只读内存)中。烧录的数据量会随着面板尺寸的增大而显著增大,以一个尺寸为2560x1600的面板为例,且需要存储3个灰阶的补偿值,每个补偿值为6比特,则存储rgb三个通道的补偿值总共需要221.184mb的rom资源。
2、为了节省rom资源,降低芯片成本,通常会对补偿值进行压缩,并将压缩后的二进制比特流烧录到rom中。
3、然而,目前的已知的基于空域下采样的压缩方式或者其他查找表的方式,其压缩倍率是固定的,导致占用的存储空间较多。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够调整压缩倍率的码率控制方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本技术提供一种码率控制方法,所述方法包括:
3、获取待压缩数据以及设定的目标压缩倍率,并基于所述待压缩数据以及所述目标压缩倍率得到压缩后的总编码预算;
4、将所述待压缩数据进行分块得到若干数据块,且对每行数据块进行分组得到数据块组;
5、基于所述总编码预算得到每一数据块行的第一个数据块组的初始编码预算以及第一个数据块的目标编码预算;
6、获取当前数据块组的当前编码预算以及当前待压缩数据块的目标编码预算;第一个所述当前数据块组为第一数据块行的第一个数据块组;
7、确定当前待压缩数据块的各编码模式所消耗的各编码预算,并基于各所述编码模式所消耗的各所述编码预算以及所述目标编码预算,确定所述当前待压缩数据块的目标编码大小;
8、基于所述目标编码大小更新所述当前编码预算,并获取所述当前数据块组剩余的待压缩数据块的当前数量;
9、基于所述当前编码预算以及所述当前数量,得到下一数据块的目标编码预算,将所述下一数据块作为当前数据块,并继续执行确定当前待压缩数据块的各编码模式所消耗的各初始编码预算的步骤,直至所述待压缩数据编码结束。
10、在其中一个实施例中,所述基于所述总编码预算得到每一数据块行的第一个数据块组的初始编码预算以及第一个数据块的目标编码预算,包括:
11、对所述待压缩数据进行识别得到帧级信息,并基于所述帧级信息以及所述总编码预算,进行帧级码率控制得到每一数据块行的基础编码预算;
12、对所述待压缩数据进行识别得到数据块行的行信息,并基于所述数据块行的行信息、每一所述数据块组中数据块的第一数量以及所述每一数据块行的基础编码预算进行数据块行级码率控制,得到每一所述数据块行的第一个数据块组的初始编码预算以及第一个数据块的目标编码预算。
13、在其中一个实施例中,所述基于所述帧级信息以及所述总编码预算,进行帧级码率控制得到每一数据块行的基础编码预算,包括
14、基于所述总编码预算以及所述帧级信息的大小,确定总数据块编码预算;
15、基于所述总数据块编码预算以及所述每行数据块中所述数据块的第二数量,得到每一数据块行的基础编码预算。
16、在其中一个实施例中,所述基于所述数据块行的行信息、每一所述数据块组中数据块的第一数量以及所述每一数据块行的基础编码预算进行数据块行级码率控制,得到每一所述数据块行的第一个数据块组的初始编码预算以及第一个数据块的目标编码预算,包括:
17、基于所述每一数据块行的基础编码预算、所述行信息的大小以及所述第二数量,得到每一数据块的基础编码预算以及所述数据块行的剩余编码预算;
18、基于所述每一数据块的基础编码预算以及所述第一数量,得到每一数据块组的基础编码预算;
19、基于所述每一数据块的基础编码预算、所述数据块行的剩余编码预算以及上一数据块行的剩余编码预算,得到所述数据块行的第一个数据块组的初始编码预算;
20、基于所述每一数据块组的基础编码预算、所述数据块行的剩余编码预算以及上一数据块行的剩余编码预算,得到第一个数据块的目标编码预算。
21、在其中一个实施例中,所述基于所述目标编码大小更新所述当前编码预算,包括:
22、在所述当前待压缩数据块为所述当前数据块组的非最后一数据块,且不为当前数据块行的第一个数据块组的第一个数据块的情况下,基于更新前的所述当前编码预算与所述目标编码大小得到更新后的所述当前编码预算;
23、在所述当前待压缩数据块为所述当前数据块组的最后一数据块的情况下,基于所述目标编码大小、所述每一数据块组的基础编码预算以及更新前的所述当前编码预算,得到更新后的所述当前编码预算。
24、在其中一个实施例中,所述基于所述当前编码预算以及所述当前数量,得到下一数据块的目标编码预算,包括:
25、根据所述当前编码预算以及所述当前数量,得到剩余的待压缩数据块的平均编码预算;
26、基于所述当前编码预算、所述当前数量以及所述平均压缩预算,得到余数压缩预算;
27、基于所述平均压缩预算以及所述余数压缩预算,得到下一数据块的目标编码预算。
28、在其中一个实施例中,所述方法还包括:
29、获取片上存储器的可用容量,基于所述可用容量得到目标压缩倍率。
30、第二方面,本技术还提供一种码率控制装置,所述装置包括:
31、总编码预算确定模块,用于获取待压缩数据以及设定的目标压缩倍率,并基于所述待压缩数据以及所述目标压缩倍率得到压缩后的总编码预算;
32、分组模块,用于将所述待压缩数据进行分块得到若干数据块,且对每行数据块进行分组得到数据块组;
33、行级编码预算确定模块,用于基于所述总编码预算得到每一数据块行的第一个数据块组的初始编码预算以及第一个数据块的目标编码预算;
34、数据块编码预算确定模块,用于获取当前数据块组的当前编码预算以及当前待压缩数据块的目标编码预算;第一个所述当前数据块组为第一数据块行的第一个数据块组;
35、目标编码大小确定模块,用于确定当前待压缩数据块的各编码模式所消耗的各初始编码预算,并基于各所述初始编码预算以及所述目标编码预算,确定所述当前待压缩数据块的目标编码大小;
36、更新模块,用于基于所述目标编码大小更新所述当前编码预算,并获取所述当前数据块组剩余的待压缩数据块的当前数量;
37、循环模块,用于基于所述当前编码预算以及所述当前数量,得到下一数据块的目标编码预算,将所述下一数据块作为当前数据块,并继续执行确定当前待压缩数据块的各编码模式所消耗的各初始编码预算的步骤,直至所述待压缩数据编码结束。
38、第三方面,本技术还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
39、第四方面,本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
40、第五方面,本技术还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
41、上述码率控制方法、装置、计算机设备、存储介质和计算机程序产品,可以任意设定压缩倍率,从而基于该目标压缩倍率可以实现码率控制,具体的码率控制包括基于待压缩数据以及目标压缩倍率得到压缩后的总编码预算;将待压缩数据进行分块得到若干数据块,且对每行数据块进行分组得到数据块组;获取当前数据块组的当前编码预算以及当前待压缩数据块的目标编码预算;其中,每一数据块行的初始编码预算以及第一个数据块的目标编码预算是基于总编码预算得到的;确定当前待压缩数据块的各编码模式所消耗的各初始编码预算,并基于各初始编码预算以及所述目标编码预算,确定当前待压缩数据块的目标编码大小;基于目标编码大小更新当前编码预算,并获取当前数据块组剩余的待压缩数据块的当前数量;基于当前编码预算以及当前数量,得到下一数据块的目标编码预算,将下一数据块作为当前数据块,并继续执行确定当前待压缩数据块的各编码模式所消耗的各初始编码预算的步骤,直至所述待压缩数据编码结束,这样无论设置何种目标压缩倍率,都可以基于该目标压缩倍率实现编码的码率控制,从而可以基于不同的存储空间实现不同的质量的补偿值的存储。
1.一种码率控制方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述总编码预算得到每一数据块行的第一个数据块组的初始编码预算以及第一个数据块的目标编码预算,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述帧级信息以及所述总编码预算,进行帧级码率控制得到每一数据块行的基础编码预算,包括
4.根据权利要求3所述的方法,其特征在于,所述基于所述数据块行的行信息、每一所述数据块组中数据块的第一数量以及所述每一数据块行的基础编码预算进行数据块行级码率控制,得到每一所述数据块行的第一个数据块组的初始编码预算以及第一个数据块的目标编码预算,包括:
5.根据权利要求4所述的方法,其特征在于,所述基于所述目标编码大小更新所述当前编码预算,包括:
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述基于所述当前编码预算以及所述当前数量,得到下一数据块的目标编码预算,包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.一种码率控制装置,其特征在于,所述装置包括:
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
11.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
