发明内容
基于此,本发明实施例的目的在于提供一种能对不同机型进行最佳编码码率设置的编码适配方法、装置、移动终端及存储介质。
第一方面,本发明提供了一种编码适配方法,所述方法包括:
查询本地存储的预设编码值范围,获取所述预设编码值范围内任意一编码码率值,并根据所述编码码率值计算预设码率值范围;
根据所述编码码率值控制待适配设备进行编码,以得到输出码率值,并判断所述输出码率值是否在所述预设码率值范围内;
若否,则将所述预设编码值范围内的最大值或最小值替换为所述编码码率值,并根据替换后的所述预设编码值范围返回执行获取所述预设编码值范围内任意一编码码率值的步骤,直至判断到所述输出码率值在所述预设码率值范围内为止,将此时的所述编码码率值设置为所述待适配设备的最佳码率。
上述编码适配方法,通过所述编码码率值的获取,以控制所述待适配设备开启适配编码步骤,并得到所述待适配设备的所述输出码率值,通过判断所述输出码率值是否在所述预设码率值范围内的设计,以判定当前获取的所述编码码率值是否为所述待适配设备对应的所述最佳码率,提高了所述编码适配方法的准确性,通过将所述编码码率对所述预设编码值范围的替换设计,以提高获取到所述最佳码率的几率,通过根据替换后的所述预设编码值范围返回执行获取所述预设编码值范围内任意一编码码率值的步骤的设计,以使自动返回继续进行所述编码码率值的获取,并继续判断当前获取到的所述编码码率值对应的所述输出码率是否在对应的所述预设码率值范围内,上述编码适配方法自动化程度较高,通过反复循环适配方式进行所述最佳码率的获取,以使可以有效的对不同机型所述待适配设备进行对应的所述最佳码率的适配设置,进而防止了由于设置的编码率参数与实际输出的编码码率差值较大导致输出后的图像数据不清晰的情况,提高了编码输出后的图像数据的清晰度。
进一步地,所述将所述预设编码值范围内的最大值或最小值替换为所述编码码率值的步骤包括:
判断所述输出码率值是否大于所述预设码率值范围中的最大值;
若是,则将所述预设编码值范围内的最大值替换为所述编码码率值;
若否,则将所述预设编码值范围内的最小值替换为所述编码码率值;
其中,当判断到所述输出码率值大于所述预设码率值范围中的最大值时,则判定设置的所述编码码率的值偏大,进而将所述预设编码值范围内的最大值替换为所述编码码率值,以使进一步缩小所述编码码率的获取范围,提高了所述编码适配方法的适配精准度。
进一步地,所述将所述预设编码值范围内的最大值或最小值替换为所述编码码率值的步骤包括:
判断所述输出码率值是否小于所述预设码率值范围中的最小值;
若是,则将所述预设编码值范围内的最小值替换为所述编码码率值;
若否,则将所述预设编码值范围内的最大值替换为所述编码码率值;
其中,当判断到所述输出码率值小于所述预设码率值范围中的最小值时,则判定设置的所述编码码率的值偏小,进而将所述预设编码值范围内的最小值替换为所述编码码率值,以使进一步缩小所述编码码率的获取范围,提高了所述编码适配方法的适配精准度。
进一步地,所述获取所述预设编码值范围内任意一编码码率值的步骤包括:
分别获取所述预设编码值范围的最大值和最小值;
计算所述预设编码值范围的最大值与最小值之间和的平均值,并将所述平均值设置为所述编码码率值;
其中,通过采用求平均值的方式进行所述平均值的计算,以使方便了对所述编码码率值的设置,进而提高了对所述编码码率值的获取效率。
进一步地,所述判断所述输出码率值是否在预设码率值范围内的步骤之前,所述方法还包括:
判断所述输出码率值是否大于所述预设编码值范围中的最大值,或小于所述预设编码值范围中的最小值;
当判断到所述输出码率值大于所述预设编码值范围中的最大值时,将所述预设编码值范围中的最大值设置为所述待适配设备的最佳码率,并停止编码适配步骤;
当判断到所述输出码率值小于所述预设编码值范围中的最小值时,将所述预设编码值范围中的最小值设置为所述待适配设备的最佳码率,并停止编码适配步骤;
其中,通过当判断到所述输出码率值大于所述预设编码值范围中的最大值时,将所述预设编码值范围中的最大值设置为所述最佳码率的设计,以防止由于所述输出码率值一直大于所述预设编码值范围中的最大值导致的死循环,且通过当判断到所述输出码率值小于所述预设编码值范围中的最小值时,将所述预设编码值范围中的最小值设置为所述最佳码率的设计,以防止由于所述输出码率值一直小于所述预设编码值范围中的最小值导致的死循环,进而提高了所述编码适配方法的适配效率。
进一步地,所述根据所述编码码率值控制待适配设备进行编码的步骤包括:
初始化所述待适配配备,将所述编码码率对所述待适配设备进行参数设置,运行所述待适配设备,并控制所述待适配设备开启编码流程,以得到编码结果;
根据所述编码结果计算得到所述输出码率值;
其中,通过将所述待适配设备初始化的设计,以防止了由于其他数据对所述待适配设备编码的影响,提高了所述适配结果获取的准确性,并通过将所述编码码率对所述待适配设备进行参数设置的设计,以使为所述待适配设备提供了一正常的编码码率参数,进而保障了所述待适配设备的编码功能的正常运行。
进一步地,所述控制所述待适配设备开启编码流程的步骤包括:
获取预设码流信息;
根据获取到的所述预设码流信息生成预设帧数的YUV数据,并将所述YUV数据输入至所述待适配设备进行编码;
其中,通过所述预设码流信息的获取,以使方便了所述YUV数据的转换,且通过将所述预设码流信息转换为所述预设帧数的所述YUV数据的设计,以使方便了所述待适配设备的编码,提高了所述待适配设备的编码效率,进而进一步提高了所述编码适配方法的适配效率。
第二方面,本发明提供了一种编码适配装置,包括:
获取模块,用于查询本地存储的预设编码值范围,获取所述预设编码值范围内任意一编码码率值,并根据所述编码码率值计算预设码率值范围;
输出判断模块,用于根据所述编码码率值控制待适配设备进行编码,以得到输出码率值,并判断所述输出码率值是否在所述预设码率值范围内;
替换模块,用于当所述输出判断模块判断到所述输出码率值不在所述预设码率值范围内时,将所述预设编码值范围内的最大值或最小值替换为所述编码码率值,并根据替换后的所述预设编码值范围返回执行获取所述预设编码值范围内任意一编码码率值的步骤,直至判断到所述输出码率值在所述预设码率值范围内为止,将此时的所述编码码率值设置为所述待适配设备的最佳码率。
上述编码适配装置,通过所述获取模块和所述输出判断模块的设计,以控制所述待适配设备开启适配编码步骤,并得到所述待适配设备的所述输出码率值,并通过所述输出判断模块判断所述输出码率值是否在所述预设码率值范围内的设计,以判定当前获取的所述编码码率值是否为所述待适配设备对应的所述最佳码率,提高了所述编码适配方法的准确性,通过所述替换模块的设计,以提高获取到所述最佳码率的几率,通过根据替换后的所述预设编码值范围返回执行获取所述预设编码值范围内任意一编码码率值的步骤的设计,以使自动返回继续进行所述编码码率值的获取,并继续判断当前获取到的所述编码码率值对应的所述输出码率是否在对应的所述预设码率值范围内,上述编码适配装置自动化程度较高,通过反复循环适配方式进行所述最佳码率的获取,以使可以有效的对不同机型所述待适配设备进行对应的所述最佳码率的适配设置,进而防止了由于设置的编码率参数与实际输出的编码码率差值较大导致输出后的图像数据不清晰的情况,提高了编码输出后的图像数据的清晰度。
第三方面,本发明提供了一种移动终端,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述移动终端执行上述的编码适配方法。
第四方面,本发明提供了一种存储介质,其上存储有上述移动终端中处理器所运行的计算机程序。
具体实施方式
为了便于更好地理解本发明,下面将结合相关实施例附图对本发明进行进一步地解释。附图中给出了本发明的实施例,但本发明并不仅限于上述的优选实施例。相反,提供这些实施例的目的是为了使本发明的公开面更加得充分。
由于不同型号的具有编码功能的设备中各个电子元器件的组合各不相同,进而使得在对不同型号设备进行编码参数设置时不方便,且当在设备上设置的编码参数与实际输出码率之间的误差较大时,容易导致***中APP程序的图像不清晰,例如谷歌自Android4.1版本开始增加了***硬编码的API接口,APP可以方便的调用到这个接口,极大的减少了CPU占用率,提高了编码性能,但由于Android碎片化严重,在有的机型上设置的硬编码参数与实际输出的编码码率有很大出入且当进行多个不同机型的设置操作不方便,因此本发明的目的在于提供一种可以对不同型号设备自动进行编码参数设置的编码适配方法,以降低人员成本,提高对不同型号设备的编码适配设置的效率。
请参阅图1,为本发明第一实施例提供的编码适配方法的流程图,包括步骤S10至S50。
步骤S10,查询本地存储的预设编码值范围;
其中,当接收到编码适配信号时才进行所述预设编码值范围的查询,而所述编码适配信号的传输方式可以为按键信号传输、语音信号传输、红外信号传输或触控信号传输等方式,进而方便了用户的操作,使得所述编码适配方法开启的方式多样化,所述预设编码值范围可以为任意范围,优选的,本实施例中所述预设编码值范围中的最大值为Bmax,最小值为Bmin,此时所述预设编码值范围为Bmin至Bmax,且本地存储的所述预设编码值范围的数量可以为多个,所述预设编码值范围用于方便对待适配设备进行第一次的码率设置,以使保障对所述待适配设备的适配步骤的正常开启。
步骤S20,获取所述预设编码值范围内任意一编码码率值,并根据所述编码码率值计算预设码率值范围;
其中,获取所述预设编码值范围内任意一所述编码码率值的方式可以采用随机抽取的方式、按预设标号的方式、从大到小依序获取的方式或从小到大依序获取的方式进行获取,可以理解的本实施例不仅限于上述获取方式。
本实施例中通过所述编码码率的获取,以使方便了对所述待适配设备的编码参数的设置,根据所述编码码率值计算所述预设码率值范围的方式为,将获取到的所述编码码率值乘以0.9倍,以得到第一编码码率阈值,将获取到的所述编码码率值乘以1.1倍,以得到第二编码码率阈值,并将所述第一编码码率阈值设置为所述预设码率值范围中的最小值,将所述第二编码码率阈值设置为所述预设码率值范围中的最大值,以得到所述预设码率值范围;
本实施例中,获取到的所述编码码率值为Z,此时所述预设编码值范围为0.9Z至1.1Z。
步骤S30,根据所述编码码率值控制待适配设备进行编码,以得到输出码率值,并判断所述输出码率值是否在所述预设码率值范围内;
其中,当获取到所述编码码率且计算得到所述预设编码值范围后,发送信号至所述待适配设备,以控制开始所述待适配设备的编码测试,当所述待适配设备完成编码测试后,进行所述输出码率值的获取,并判断所述输出码率值是否在所述预设码率值范围内,以判定此时对所述待适配设备设置的所述编码码率是否为最佳码率;
本实施例中,所述输出码率值设置为Y,即判断Y是否在0.9Z至1.1Z的范围内。
当所述步骤S30判断到所述输出码率值不在所述预设码率值范围内时,执行步骤S40;
其中,当判断到Y不在0.9Z至1.1Z范围内时,则判定Y不是所述待适配设备的所述最佳码率。
步骤S40,将所述预设编码值范围内的最大值或最小值替换为所述编码码率值,并返回执行步骤S20。
其中,根据替换后的所述预设编码值范围返回执行获取所述预设编码值范围内任意一编码码率值的步骤,即当判断到Y不在0.9Z至1.1Z范围内时,将所述预设编码值范围中的0.9Z或1.1Z替换为Z,以得到新的所述预设编码值范围,此时替换后的所述预设编码值范围小于替换前的所述预设编码值范围,进而起到了缩小范围的效果。
本实施例中当替换得到新的所述预设编码值范围后返回执行任意所述编码码率值的获取,并依序循环反复的进行所述预设码率值范围的计算、重新进行所述待适配设备的编码参数后输出的所述输出码率值与所述预设码率值范围的判断,可以理解的,当对所述编码码率值进行重新获取时,所述预设编码值范围随着不同的所述编码码率值的变化会发生变化,但所述预设编码值范围内的最大值和最小值与此时获取到的所述编码码率值的倍数关系不发生变化,即所述述预设编码值范围内的最大值和最小值与此时获取到的所述编码码率值的倍数关系分别为1.1倍和0.9倍,可以理解的,在其它实施例中所述述预设编码值范围内的最大值和最小值与此时获取到的所述编码码率值的倍数关系也可以为其它倍数关系,但在同一个实施例中所述倍数关系不会发生变化。
本实施例中所述步骤S40直至所述步骤S30判断到所述输出码率值在所述预设码率值范围内时才停止,进而使得通过采用循环反复的进行对所述待适配设备的码率参数的适配设置,直至获取到所述最佳码率,进而对不同机型的所述待适配设备均可达到所述最佳码率的适配设置的效果,使得所述编码适配方法使用范围广、通用性强。
当所述步骤S30判断到所述输出码率值在预设码率值范围内时,执行步骤S50。
步骤S50,将此时的所述编码码率值设置为所述待适配设备的最佳码率。
其中,当所述步骤30或通过所述步骤S40返回所述步骤S20至所述步骤S30时,判断到所述输出码率值在所述预设码率值范围内时,将此时所述编码码率值设置为所述待适配设备的所述最佳码率;
具体的,将此时对所述待适配设备设置的Z设置为所述最佳码率。
本实施例通过所述编码码率值的获取,以控制所述待适配设备开启适配编码步骤,并得到所述待适配设备的所述输出码率值,通过判断所述输出码率值是否在所述预设码率值范围内的设计,以判定当前获取的所述编码码率值是否为所述待适配设备对应的所述最佳码率,提高了所述编码适配方法的准确性,通过将所述编码码率对所述预设编码值范围的替换设计,以提高获取到所述最佳码率的几率,通过根据替换后的所述预设编码值范围返回执行获取所述预设编码值范围内任意一编码码率值的步骤的设计,以使自动返回继续进行所述编码码率值的获取,并继续判断当前获取到的所述编码码率值对应的所述输出码率是否在对应的所述预设码率值范围内,上述编码适配方法自动化程度较高,通过反复循环适配方式进行所述最佳码率的获取,以使可以有效的对不同机型所述待适配设备进行对应的所述最佳码率的适配设置,进而防止了由于设置的编码率参数与实际输出的编码码率差值较大导致输出后的图像数据不清晰的情况,提高了编码输出后的图像数据的清晰度。
请参阅图2,为本发明第二实施例提供的编码适配方法的流程图,所述方法包括步骤S11至S101。
步骤S11,查询本地存储的预设编码值范围;
其中,当接收到编码适配信号时才进行所述预设编码值范围的查询,而所述编码适配信号的传输方式可以为按键信号传输、语音信号传输、红外信号传输或触控信号传输等方式,进而方便了用户的操作,使得所述编码适配方法开启的方式多样化,所述预设编码值范围可以为任意范围,优选的,本实施例中所述预设编码值范围中的最大值为Bmax,最小值为Bmin,此时所述预设编码值范围为Bmin至Bmax,且本地存储的所述预设编码值范围的数量可以为多个,所述预设编码值范围用于方便对待适配设备进行第一次的码率设置,以使保障对所述待适配设备的适配步骤的正常开启。
步骤S21,分别获取所述预设编码值范围的最大值和最小值;
步骤S31,计算所述预设编码值范围的最大值与最小值之间和的平均值,将所述平均值设置为编码码率值,并根据所述编码码率值计算预设码率值范围;
其中,获取所述预设编码值范围内任意一所述编码码率值的方式可以采用随机抽取的方式、按预设标号的方式、从大到小依序获取的方式或从小到大依序获取的方式进行获取,优选的,本实施例中采用求平均值的方式进行所述编码码率值的获取,以使方便了对所述编码码率值的设置,进而提高了对所述编码码率值的获取效率,即Z=(Bmin+Bmax)/2,可以理解的本实施例不仅限于上述获取方式;
本实施例中通过所述编码码率的获取,以使方便了对所述待适配设备的编码参数的设置,根据所述编码码率值计算所述预设码率值范围的方式为,将获取到的所述编码码率值乘以0.9倍,以得到第一编码码率阈值,将获取到的所述编码码率值乘以1.1倍,以得到第二编码码率阈值,并将所述第一编码码率阈值设置为所述预设码率值范围中的最小值,将所述第二编码码率阈值设置为所述预设码率值范围中的最大值,以得到所述预设码率值范围,即所述预设码率值范围为0.9Z至1.1Z。
步骤S41,初始化所述待适配配备,将所述编码码率对所述待适配设备进行参数设置,运行所述待适配设备;
其中,通过将所述待适配设备初始化的设计,以防止了由于其他数据对所述待适配设备编码的影响,提高了所述适配结果获取的准确性,并通过将所述编码码率对所述待适配设备进行参数设置的设计,以使为所述待适配设备提供了一正常的编码码率参数,进而保障了所述待适配设备的编码功能的正常运行。
步骤S51,获取预设码流信息,根据获取到的所述预设码流信息生成预设帧数的YUV数据,并将所述YUV数据输入至所述待适配设备进行编码;
其中,通过所述预设码流信息的获取,以使方便了所述YUV数据的转换,且通过将所述预设码流信息转换为所述预设帧数的所述YUV数据的设计,以使方便了所述待适配设备的编码,提高了所述待适配设备的编码效率,进而进一步提高了所述编码适配方法的适配效率。
具体的,当将所述YUV数据输入至所述待适配设备进行编码后,可得到所述编码结果时,并可以根据所述编码结果计算得到所述输出码率值。
本实施例中所述待适配设置中编码的距离流程为:
(1)初始化编码器,设置视频的宽度、高度、码率等编码参数,其中码率参数设置为此时获取到的所述编码码率值;
(2)利用数学函数生成2000帧YUV数据;
(3)将YUV数据输入到编码器进行编码;
(4)根据输出码流计算实际的码率,所述实际的码率为所述输出码率。
步骤S61,判断所述输出码率值是否在预设码率值范围内;
其中,所述输出码率值设置为Y,即判断Y是否在0.9Z至1.1Z的范围内。
当所述步骤S61的判断到所述输出码率值不在所述预设码率值范围内时,执行步骤S71。
步骤S71,判断所述输出码率值是否大于1.1倍的所述编码码率值;
其中,即判定Y是否大于1.1Z。
当所述步骤S71判断到所述输出码率值大于1.1倍的所述编码码率值时,执行步骤S81。
步骤S81,将所述预设编码值范围内的最大值替换为所述编码码率值,并根据替换后的所述预设编码值范围返回执行步骤S21。
其中,当判断到所述输出码率值大于所述预设码率值范围中的最大值时,则判定设置的所述编码码率的值偏大,进而将所述预设编码值范围内的最大值替换为所述编码码率值,即将此时的Z替换为1.1Z,以使进一步缩小所述编码码率的获取范围,提高了所述编码适配方法的适配精准度,例如当所述编码码率值为4,所述预设编码值范围为3.6至4.4,此时将所述预设码率值范围中的最大值4.4进行替换,以使得到替换后的所述预设编码值范围3.6至4,并根据替换后的所述预设编码值范围返回执行步骤S21。
当所述步骤S71判断到所述输出码率值不大于1.1倍的所述编码码率值时,则判定所述输出码率值小于0.9倍的所述编码码率值,执行步骤S91。
步骤S91,将所述预设编码值范围内的最小值替换为所述编码码率值,并根据替换后的所述预设编码值范围返回执行步骤S21。
其中,当判断到所述输出码率值小于所述预设码率值范围中的最小值时,则判定设置的所述编码码率的值偏小,进而将所述预设编码值范围内的最小值替换为所述编码码率值,即将此时的Z替换为0.9Z,以使进一步缩小所述编码码率的获取范围,提高了所述编码适配方法的适配精准度,例如当所述编码码率值为4,所述预设编码值范围为3.6至4.4,此时将所述预设码率值范围中的最小值3.6进行替换,以使得到替换后的所述预设编码值范围4至4.4,并根据替换后的所述预设编码值范围返回所述步骤S21。
其中,所述步骤S71还可以为:判断所述输出码率值是否小于0.9倍的所述编码码率值;
当判断到所述输出码率值小于0.9倍的所述编码码率值时,所述步骤S81为:将所述预设编码值范围内的最小值替换为所述编码码率值,并根据替换后的所述预设编码值范围返回执行步骤S21。
当判断到所述输出码率值不小于0.9倍的所述编码码率值时,所述步骤S91为:将所述预设编码值范围内的最大值替换为所述编码码率值,并根据替换后的所述预设编码值范围返回执行步骤S21。
通过判断所述输出码率值是否小于0.9倍的所述编码码率值或大于1.1倍的所述编码码率值的设计,判定当前所述编码码率是否为所述最佳码率的方式多样化。
当所述步骤S61的判断到所述输出码率值在所述预设码率值范围内时,执行步骤S101。
步骤S101,将此时所述编码码率值设置为所述待适配设备的最佳码率。
其中,当所述步骤61、通过所述步骤S81返回所述步骤S21至所述步骤S61或通过所述步骤S91返回所述步骤S21至所述步骤S61时,判断到所述输出码率值在所述预设码率值范围内时,将此时所述编码码率值设置为所述待适配设备的所述最佳码率;
具体的,将此时对所述待适配设备设置的Z设置为所述最佳码率。
在所述步骤S61判断所述输出码率值是否在预设码率值范围内的步骤之前,所述方法还包括:
判断所述输出码率值是否大于所述预设编码值范围中的最大值,或小于所述预设编码值范围中的最小值;
当判断到所述输出码率值大于所述预设编码值范围中的最大值时,将所述预设编码值范围中的最大值设置为所述待适配设备的最佳码率,并停止编码适配步骤;
当判断到所述输出码率值小于所述预设编码值范围中的最小值时,将所述预设编码值范围中的最小值设置为所述待适配设备的最佳码率,并停止编码适配步骤。
通过当判断到所述输出码率值大于所述预设编码值范围中的最大值时,将所述预设编码值范围中的最大值设置为所述最佳码率的设计,以防止由于所述输出码率值一直大于所述预设编码值范围中的最大值导致的死循环,且通过当判断到所述输出码率值小于所述预设编码值范围中的最小值时,将所述预设编码值范围中的最小值设置为所述最佳码率的设计,以防止由于所述输出码率值一直小于所述预设编码值范围中的最小值导致的死循环,进而提高了所述编码适配方法的适配效率。
本实施例通过所述编码码率值的获取,以控制所述待适配设备开启适配编码步骤,并得到所述待适配设备的所述输出码率值,通过判断所述输出码率值是否在所述预设码率值范围内的设计,以判定当前获取的所述编码码率值是否为所述待适配设备对应的所述最佳码率,提高了所述编码适配方法的准确性,通过将所述编码码率对所述预设编码值范围的替换设计,以提高获取到所述最佳码率的几率,通过根据替换后的所述预设编码值范围返回执行获取所述预设编码值范围内任意一编码码率值的步骤的设计,以使自动返回继续进行所述编码码率值的获取,并继续判断当前获取到的所述编码码率值对应的所述输出码率是否在对应的所述预设码率值范围内,上述编码适配方法自动化程度较高,通过反复循环适配方式进行所述最佳码率的获取,以使可以有效的对不同机型所述待适配设备进行对应的所述最佳码率的适配设置,进而防止了由于设置的编码率参数与实际输出的编码码率差值较大导致输出后的图像数据不清晰的情况,提高了编码输出后的图像数据的清晰度。
请参阅图3,为本发明第三实施例提供的编码适配装置100的结构示意图,包括:
获取模块10,用于查询本地存储的预设编码值范围,获取所述预设编码值范围内任意一编码码率值,并根据所述编码码率值计算预设码率值范围;
输出判断模块20,用于根据所述编码码率值控制待适配设备进行编码,以得到输出码率值,并判断所述输出码率值是否在所述预设码率值范围内;
替换模块30,用于当所述输出判断模块20判断到所述输出码率值不在所述预设码率值范围内时,将所述预设编码值范围内的最大值或最小值替换为所述编码码率值,并根据替换后的所述预设编码值范围返回执行获取所述预设编码值范围内任意一编码码率值的步骤,直至判断到所述输出码率值在所述预设码率值范围内为止,将此时的所述编码码率值设置为所述待适配设备的最佳码率。
所述替换模块30包括:
第一子替换模块31,用于判断所述输出码率值是否大于所述预设码率值范围中的最大值,若是,则将所述预设编码值范围内的最大值替换为所述编码码率值,若否,则将所述预设编码值范围内的最小值替换为所述编码码率值。
第二子替换模块32,用于判断所述输出码率值是否小于所述预设码率值范围中的最小值,若是,则将所述预设编码值范围内的最小值替换为所述编码码率值,若否,则将所述预设编码值范围内的最大值替换为所述编码码率值。
所述获取模块10包括:
子获取模块11,用于分别获取所述预设编码值范围的最大值和最小值;
第一计算模块12,用于根据所述子获取模块10的获取结果,计算所述预设编码值范围的最大值与最小值之间和的平均值,并将所述平均值设置为所述编码码率值,并根据所述编码码率值计算预设码率值范围。
所述输出判断模块20包括:
编码模块21,用于初始化所述待适配配备,将所述编码码率对所述待适配设备进行参数设置,运行所述待适配设备,并控制所述待适配设备开启编码流程,以得到编码结果。
第二计算模块22,用于根据所述编码模块21得到的所述编码结果计算得到所述输出码率值。
所述编码模块21包括:
码流输送模块211,用于获取预设码流信息,根据获取到的所述预设码流信息生成预设帧数的YUV数据,并将所述YUV数据输入至所述待适配设备进行编码。
上述编码适配装置100,通过所述获取模块10和所述输出判断模块20的设计,以控制所述待适配设备开启适配编码步骤,并得到所述待适配设备的所述输出码率值,并通过所述输出判断模块20判断所述输出码率值是否在所述预设码率值范围内的设计,以判定当前获取的所述编码码率值是否为所述待适配设备对应的所述最佳码率,提高了所述编码适配方法的准确性,通过所述替换模块30的设计,以提高获取到所述最佳码率的几率,通过根据替换后的所述预设编码值范围返回执行获取所述预设编码值范围内任意一编码码率值的步骤的设计,以使自动返回继续进行所述编码码率值的获取,并继续判断当前获取到的所述编码码率值对应的所述输出码率是否在对应的所述预设码率值范围内,上述编码适配装置100自动化程度较高,通过反复循环适配方式进行所述最佳码率的获取,以使可以有效的对不同机型所述待适配设备进行对应的所述最佳码率的适配设置,进而防止了由于设置的编码率参数与实际输出的编码码率差值较大导致输出后的图像数据不清晰的情况,提高了编码输出后的图像数据的清晰度。
请参阅图4,为本发明第四实施例提供的编码适配装置100的结构示意图,该第四实施例与第三实施例的结构大抵相同,其区别在于,本实施例中所述编码适配装置100还包括:
阈值判断模块40,用于判断所述输出码率值是否大于所述预设编码值范围中的最大值,或小于所述预设编码值范围中的最小值。
第一设置模块41,用于当所述阈值判断模块40判断到所述输出码率值大于所述预设编码值范围中的最大值时,将所述预设编码值范围中的最大值设置为所述待适配设备的最佳码率,并停止编码适配步骤。
第二设置模块42,用于当所述阈值判断模块40判断到所述输出码率值小于所述预设编码值范围中的最小值时,将所述预设编码值范围中的最小值设置为所述待适配设备的最佳码率,并停止编码适配步骤。
本实施例中,通过所述阈值判断模块40中对所述输出码率值与所述预设编码值范围中的最大值或最小值的判定设计,以使当判断到所述输出码率值大于所述预设编码值范围中的最大值时,将所述预设编码值范围中的最大值设置为所述最佳码率的设计,以防止由于所述输出码率值一直大于所述预设编码值范围中的最大值导致的死循环,且当判断到所述输出码率值小于所述预设编码值范围中的最小值时,将所述预设编码值范围中的最小值设置为所述最佳码率的设计,以防止由于所述输出码率值一直小于所述预设编码值范围中的最小值导致的死循环,进而提高了所述编码适配装置100的适配效率。
本实施例还提供了一种移动终端,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述移动终端执行上述的编码适配方法。
本实施例还提供了一种存储介质,其上存储有上述移动终端中处理器所运行的计算机程序,该程序在执行时,包括如下步骤:
查询本地存储的预设编码值范围,获取所述预设编码值范围内任意一编码码率值,并根据所述编码码率值计算预设码率值范围;
根据所述编码码率值控制待适配设备进行编码,以得到输出码率值,并判断所述输出码率值是否在所述预设码率值范围内;
若否,则将所述预设编码值范围内的最大值或最小值替换为所述编码码率值,并根据替换后的所述预设编码值范围返回执行获取所述预设编码值范围内任意一编码码率值的步骤,直至判断到所述输出码率值在所述预设码率值范围内为止,将此时的所述编码码率值设置为所述待适配设备的最佳码率。所述的存储介质,如:ROM/RAM、磁碟、光盘等。
上述实施例描述了本发明的技术原理,这些描述只是为了解释本发明的原理,而不能以任何方式解释为本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其他具体实施方式,这些方式都将落入本发明的保护范围内。