直播视频质量检测方法及其装置、设备、介质与流程

文档序号:31053679发布日期:2022-08-06 09:45阅读:214来源:国知局
直播视频质量检测方法及其装置、设备、介质与流程

1.本技术涉及网络直播技术领域,尤其涉及一种直播视频质量检测方法及其相应的装置、计算机设备以及计算机可读存储介质。


背景技术:

2.网络直播场景中,主播用户向直播间推送视频流,实现才艺展示、信息分享、知识教育等应用目的,使主播用户通过这些活动参与社会劳动获取收益,促进整体社会效益。良好的视频质量有助于主播用户达成这些目的。
3.现实中,限于终端设备的计算机运行资源效率、编码算法等因素,容易出现主播用户的视频流的图像质量不佳的情况,因而,及时对主播用户的视频流的图像质量进行检测,有助于网络直播平台修正其编码算法,或者改善网络传输条件等。
4.一方面,基于移动端实现实时视频画面客观指标评价的问题点在于,存在一些应用场景,无法直接获取作为客观质量评价运算所需的编解码前后输入输出的视频画面,从而无法比较确定出相关的图像质量指标。具体而言,在一些移动终端上,尤其是安卓机型上,视频直播过程中,直接拿到的摄像头采集画面的输出,是一种以rgba格式为主的纹理形式的图像,便于gpu访问和使用的,存储在共享内存中的系统底层图像。但这种图像不能被cpu读到内存中,因此无法直接用于计算图像质量指标。
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.应用预设的图像质量指标算法,根据第二图像帧的时间戳确定相应的第一图像帧,以第一图像帧为参考,计算相应的第二图像帧的图像质量指标,所述图像质量指标包括mse、psnr、ssim中任意之一或任意多种。
32.扩展的实施例中,根据第二图像帧的时间戳确定相应的第一图像帧,以第一图像帧为参考,计算相应的第二图像帧的图像质量指标的步骤之后,包括如下步骤:
33.将所述图像质量指标提交至数据服务器,用于确定所述视频流的传输码率;
34.获取数据服务器返回的所述传输码率以控制所述视频流的传输。
35.适应本技术的目的之一而提供的一种直播视频质量检测装置,包括:开播推流模块、分流转换模块、解码处理模块,以及质量检测模块,其中:
36.开播推流模块,用于将摄像单元采集的数据帧编码为视频流,推送至开播的直播间;
37.分流转换模块,用于获取所述数据帧,应用预设纹理将其重新绘制后,同步至中央处理器可访问的缓存区,转换为目标格式的第一图像帧;
38.解码处理模块,用于解码所述视频流,获得其中的目标格式的第二图像帧;
39.质量检测模块,用于根据第二图像帧的时间戳确定相应的第一图像帧,以第一图
像帧为参考,计算相应的第二图像帧的图像质量指标。
40.深化的部分实施例中,所述开播推流模块,包括:
41.采集启动子模块,用于响应直播开启指令,由主线程启动摄像单元采集数据帧;
42.纹理渲染子模块,用于由主线程将所述数据帧绘制为纹理图像;编码处理子模块,用于由主线程对所述纹理图像进行编码处理,形成视频流;
43.视频流推送子模块,用于由主线程将所述视频流推送至直播间。
44.具体化的部分实施例中,所述编码处理子模块在完成对纹理图像的编码后,向主线程发送解码通知消息,以执行所述解码处理模块。
45.深化的部分实施例中,所述分流转换模块,包括:
46.分流渲染子模块,用于启动独立线程,根据所述主线程提供的上下文,控制图形处理器将主线程所采集的数据帧渲染至图形处理器可访问的第一缓存区以获得初始格式图像帧,该缓存区以自有纹理为载体;
47.缓存转移子模块,用于由该独立线程将所述第一缓存区中的初始格式图像帧同步至中央处理器可访问的第二缓存区;
48.格式转换子模块,用于由该独立线程将第二缓存区中的初始格式图像帧转换为所述目标格式的图像帧而获得第一图像帧。
49.具体化的部分实施例中,所述格式转换子模块,包括:
50.格式转换单元,用于由该独立线程基于所述目标格式,对第二缓存区中的初始格式图像帧进行格式转换获得第一图像帧;
51.映射存储单元,用于以第一图像帧所携带的时间戳为索引,将第一图像帧缓存于映射表中。
52.进一步的实施例中,所述质量检测模块,包括:
53.时间戳确定子模块,用于获取第二图像帧所携带的时间戳;
54.检索调用子模块,用于根据第二图像帧的时间戳,从所述映射表中调用第一图像帧;
55.指标计算子模块,用于应用预设的图像质量指标算法,根据第二图像帧的时间戳确定相应的第一图像帧,以第一图像帧为参考,计算相应的第二图像帧的图像质量指标,所述图像质量指标包括mse、psnr、ssim中任意之一或任意多种。
56.扩展的实施例中,本技术的直播视频质量检测装置,还包括:
57.指标提交模块,用于将所述图像质量指标提交至数据服务器,用于确定所述视频流的传输码率;
58.码流调节模块,用于获取数据服务器返回的所述传输码率以控制所述视频流的传输。
59.适应本技术的目的之一而提供的一种计算机设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本技术所述的直播视频质量检测方法的步骤。
60.适应本技术的另一目的而提供的一种计算机可读存储介质,其以计算机可读指令的形式存储有依据所述的直播视频质量检测方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
61.适应本技术的另一目的而提供的一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本技术任意一种实施例中所述方法的步骤。
62.相对于现有技术,本技术的优势如下:
63.本技术一方面在摄像单元采集数据帧并处理为视频流推送至开播直播间的过程中,独立一路将摄像单元所采集的数据帧转换为用作图像质量指标检测的目标格式的第一图像帧,另一方面在编码出所述的视频流之后,对该视频流解码获得其中目标格式的第二图像帧,然后根据时间戳对应关系,将携带相同时间戳的第一图像帧和第二图像帧进行图像质量检测,以第一图像帧为参考,计算出第二图像帧的图像质量指标,由此,通过独立一路业务逻辑自行解决格式转换获得所述的第一图像帧,应图像质量指标计算的格式要求所需,提供相匹配的目标格式的图像,期间不影响摄像单元采集并编码视频流的开播推流业务流程,在保证直播视频流的稳定提供的前提下,实现了对直播视频流的图像的客观质量评价。
附图说明
64.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
65.图1为本技术的直播视频质量检测方法的典型实施例的流程示意图;
66.图2为根据本技术的直播视频质量检测方法所实现的一个业务流程的原理示意图;
67.图3为本技术所示例的一个主线程工作流程的示意图;
68.图4为本技术的实施例中,独立线程根据主线程的上下文获得第一图像帧的过程的流程示意图;
69.图5为本技术的实施例中,根据时间戳匹配出第二图像帧和第一图像帧进行图像质量指标计算过程的流程示意图;
70.图6为本技术的直播视频质量检测装置的原理框图;
71.图7为本技术所采用的一种计算机设备的结构示意图。
具体实施方式
72.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能解释为对本技术的限制。
73.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
74.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术
语和科学术语),具有与本技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
75.本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;pcs(personal communications service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;pda(personal digital assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或gps(global positioning system,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是pda、mid(mobile internet device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
76.本技术所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
77.需要指出的是,本技术所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本技术的网络部署方式的实施方式。
78.本技术的一个或数个技术特征,除非明文指定,既可部署于服务器实施而由客户端远程调用获取服务器提供的在线服务接口来实施访问,也可直接部署并运行于客户端来实施访问。
79.本技术中所引用或可能引用到的神经网络模型,除非明文指定,既可部署于远程服务器且在客户端实施远程调用,也可部署于设备能力胜任的客户端直接调用,某些实施例中,当其运行于客户端时,其相应的智能可通过迁移学习来获得,以便降低对客户端硬件运行资源的要求,避免过度占用客户端硬件运行资源。
80.本技术所涉及的各种数据,除非明文指定,既可远程存储于服务器,也可存储于本地终端设备,只要其适于被本技术的技术方案所调用即可。
81.本领域技术人员对此应当知晓:本技术的各种方法,虽然基于相同的概念而进行
描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本技术所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
82.本技术即将揭示的各个实施例,除非明文指出彼此之间的相互排斥关系,否则,各个实施例所涉的相关技术特征可以交叉结合而灵活构造出新的实施例,只要这种结合不背离本技术的创造精神且可满足现有技术中的需求或解决现有技术中的某方面的不足即可。对此变通,本领域技术人员应当知晓。
83.本技术的一种直播视频质量检测方法,可被编程为计算机程序产品,部署于终端设备中运行而实现,藉此可以通过访问该计算机程序产品运行后开放的接口,通过图形用户界面与该计算机程序产品的进程进行人机交互而执行该方法。
84.请参阅图1,本技术的直播视频质量检测方法,实现于直播间应用程序中,当直播应用程序运行时得以执行,在其典型实施例中,包括如下步骤:
85.步骤s1100、将摄像单元采集的数据帧编码为视频流,推送至开播的直播间:
86.当主播用户通过其终端设备运行的直播间应用程序,进入其直播间开启直播活动时,根据直播间应用程序所实现的固有的开播业务逻辑,相应的后台进程调用摄像单元进行工作,所述摄像单元首先采集图像相对应的数据帧,然后应用纹理生成纹理图像将其渲染到直播间的图形用户界面的播放窗口,在此过程中,后台继续将对所述纹理图像进行预处理,并根据传输码率之类的编码参数对纹理图像进行编码,获得相应的视频流,将视频流推送至媒体服务器,由媒体服务器广播至所述的直播间以便该直播间的观众用户可以接收该视频流并解码显示。此一过程便是直播间应用程序固有的推流业务流程,
87.步骤s1200、获取所述数据帧,应用预设纹理将其重新绘制后,同步至中央处理器可访问的缓存区,转换为目标格式的第一图像帧:
88.为了不影响直播间应用程序的推流业务流程的正常业务逻辑,可以根据所述推流业务流程产生的纹理图像间的上下文信息,根据上下文将摄像单元的数据帧渲染至一个自带纹理的第一缓存区中,所述纹理可由本领域技术人员预设,以此实现从所述推流业务流程中分流出另一路业务流程,第一缓存区中便获得了其自有的纹理图像。所述第一缓存区是图形处理器可访问的缓存区,为了便于中央处理器做进一步的处理,可将所述纹理图像同步至中央处理器可访问的第二缓存区中。由此,根据本技术中图像质量指标计算所需的目标格式,在第二缓存区中将所述纹理图像转换为属于该目标格式的第一图像帧,该第一图像帧将作为图像质量指标计算所需的参考图像帧。
89.步骤s1300、解码所述视频流,获得其中的目标格式的第二图像帧:
90.按照直播间应用程序的推流业务流程生成的所述视频流,是被推送至所述直播间的视频流,因此,其为需检测图像质量的视频流。据此,可对所述视频流进行解码,解码出所述视频流中的所述目标格式的各个图像帧,即第二图像帧。
91.步骤s1400、根据第二图像帧的时间戳确定相应的第一图像帧,以第一图像帧为参考,计算相应的第二图像帧的图像质量指标:
92.确定所述第一图像帧和第二图像帧之后,便可根据两者在时间戳上的对应关系,以第一图像帧作为第二图像帧的图像质量的评价参考,计算出第二图像帧的图像质量指标。所述的图像质量指标主要是应用全参考客观质量评价方法确定的各项指标。
93.全参考客观视频质量评价方法是指把原始参考视频(第一图像帧)与失真视频(第二图像帧)在每一个对应帧中的每一个对应像素之间进行比较,计算出失真视频相对于原始视频的各项图像质量指标,例如相似程度、保真程度等。所述图像质量指标的计算,可由本领域技术人员根据此处揭示的原理自定义相应的算法,常见的如均方误差mse、峰值信噪比psnr、结构相似性ssim等,已有相应的算法供灵活选用,故恕不赘述。
94.通过以上本技术的典型实施例的揭示,可以看出,本技术一方面在摄像单元采集数据帧并处理为视频流推送至开播直播间的过程中,独立一路将摄像单元所采集的数据帧转换为用作图像质量指标检测的目标格式的第一图像帧,另一方面在编码出所述的视频流之后,对该视频流解码获得其中目标格式的第二图像帧,然后根据时间戳对应关系,将携带相同时间戳的第一图像帧和第二图像帧进行图像质量检测,以第一图像帧为参考,计算出第二图像帧的图像质量指标,由此,通过独立一路业务逻辑自行解决格式转换获得所述的第一图像帧,应图像质量指标计算的格式要求所需,提供相匹配的目标格式的图像,期间不影响摄像单元采集并编码视频流的开播推流业务流程,在保证直播视频流的稳定提供的前提下,实现了对直播视频流的图像的客观质量评价。
95.请参阅图2,深化的部分实施例中,所述步骤s1100、将摄像单元采集的数据帧编码为视频流,推送至开播的直播间,包括如下步骤:
96.步骤s1110、响应直播开启指令,由主线程启动摄像单元采集数据帧:
97.如图3所示,在执行本技术的直播视频质量检测方法的系统底层,以android操作系统为例,其在主播用户触发直播开启指令之后,响应于该指令而开启用于实现本技术的推流业务流程的主线程,由该主线程启动摄像单元负责采集外界实景相对应的图像的数据帧。
98.所述的主线程,为opengl主线程,opengl(open graphics library,译名:开放图形库或者“开放式图形库”)是用于渲染2d、3d矢量图形的跨语言、跨平台的应用程序编程接口(api),其不仅与语言无关,且与平台无关。通过opengl提供的接口,可以实现对图形处理器gpu的操作,其通过驱动gpu发送指令,控制图形渲染管线状态机的运行状态。因此,该主线程通过控制当前系统的图形处理器即gpu实施采集和编码,实现推流业务流程。
99.在此过程中,主线程构造有上下文即egl上下文,egl上下文是操作系统中opengl渲染api与本地显示窗口的连接,记录了opengl主线程渲染需要的所有信息,它是一个大的结构体,结构体内记录了当前绘制使用的颜色、是否有光照计算以及开启的光源等使用opengl函数调用设置的状态和状态属性。因此,通过主线程提供的上下文,可以获得绘制纹理图像所需的基础信息。
100.步骤s1120、由主线程将所述数据帧绘制为纹理图像:
101.获得所述数据帧之后,所述主线程根据其egl上下文提供的上下文信息,根据主线程相对应的纹理,将所述数据帧渲染到直播间的图形用户界面的本地显示窗口中显示相应的视频画面,具体是应用所述的纹理将该数据帧绘制为相应的纹理图像,在本实施例中,所述的纹理图像为rgba格式,该格式更便于图形处理器gpu访问和使用,不便被中央处理器cpu读取到内存中,而且,本技术用于计算图像质量指标的目标格式一般为yuv格式,因而,主线程的纹理图像不能被直接用于计算图像质量指标。
102.步骤s1130、由主线程对所述纹理图像进行编码处理,形成视频流:
103.继而,主线程根据推流业务流程中,从直播间的媒体服务器提供的网络参数,例如传输码率、图像尺寸等,对所述纹理图像进行必要的预处理和编码,便可获得相应的视频流。
104.部分变通的实施例中,当主线程完成对每帧纹理图像的编码后,可以相应触发一个解码通知消息,从而触发本技术的步骤s1200的执行,所述解码通知消息用于通知本技术的一个负责执行本技术的步骤s1200至步骤s1400的独立线程开始针对该解码通知消息中指定的时间戳相对应的图像帧进行工作。
105.步骤s1140、由主线程将所述视频流推送至直播间:
106.对于编码生成的码流,主线程负责将其作为视频流推送至直播间的媒体服务器,再由媒体服务器对其进行解码、混流、编码后,推送至该直播间的观众用户侧的终端设备处。
107.本实施例揭示了本技术的直播间应用程序负责推流业务流程的主线程的工作流程,可以看出,该主线程所执行的任务是相对独立和专注的,其工作过程中只是共享了其上下文,而不直接参与本技术的图像质量检测过程,因而,使得主线程的工作不被图像质量检测过程扰乱,可以确保稳定推送视频流的目的。
108.请参阅图4,深化的部分实施例中,所述步骤s1200、获取所述数据帧,应用预设纹理将其重新绘制后,同步至中央处理器可访问的缓存区,转换为目标格式的第一图像帧,包括如下步骤:
109.步骤s1210、启动独立线程,根据所述主线程提供的上下文,控制图形处理器将主线程所采集的数据帧渲染至图形处理器可访问的第一缓存区以获得初始格式图像帧,该缓存区以自有纹理为载体:
110.结合前文各实施例,根据本技术的技术方案所实现的一个独立线程,可在接收到主线程编码完成后的解码通知消息后启动工作,或者在后台自行监听所述视频流实施相应的工作。
111.结合图3,如前所述,主线程可以共享其上下文,所述的独立线程通过主线程提供的egl上下文所获得的各种相关上下文信息,通过调用主线程相对应的接口,通知并控制图形处理器gpu将摄像单元所采集的数据帧渲染至图形处理器可访问的第一缓存区中,所述第一缓存区预设有相应的自有纹理,因而可以实现对所述数据帧的渲染,从而获得初始格式图像帧,不难理解,由于与主线程同理,均在图形处理器中渲染图像,因而,这一初始格式图像帧也是rgba格式的图像,中央处理器cpu无法对其直接读取。
112.步骤s1220、由该独立线程将所述第一缓存区中的初始格式图像帧同步至中央处理器可访问的第二缓存区:
113.为了使中央处理器cpu可访问独立线程的产物,独立线程进而将第一缓存区中获得的初始格式图像帧及时同步复制到中央处理器可直接访问的第二缓存区中实现转存。
114.步骤s1230、由该独立线程将第二缓存区中的初始格式图像帧转换为所述目标格式的图像帧而获得第一图像帧:
115.独立线程实现将初始格式图像帧从第一缓存区转存到第二缓存区后,便可对所述的初始格式图像帧进行格式转换,将其转换为本技术计算图像质量指标所需的目标格式的第一图像帧。结合前述的实施例,具体而言,是将第二缓存区中的rgba格式的图像帧转换为
yuv格式的图像帧作为第一图像帧。
116.变通的实施例中,本步骤s1230可以具体包括如下步骤:
117.步骤s1231、由该独立线程基于所述目标格式,对第二缓存区中的初始格式图像帧进行格式转换获得第一图像帧:
118.如前所述,由独立线程基于预先设定的目标格式即yuv格式,将第二缓存区中产生的初始格式图像帧进行格式转换获得所述的第一图像帧。
119.步骤s1232、以第一图像帧所携带的时间戳为索引,将第一图像帧缓存于映射表中:
120.为了方便检索,对所述第一图像帧的缓存结构进行构造,据此,可采用key-value技术为基础的键值对,以第一图像帧所携带的时间戳为索引即key,将第一图像帧作为value进行映射存储,获得相应的映射表。可以理解,基于键值对的存储技术方便检索效率更高。
121.此处揭示的实施例,揭示本技术基于区别于所述主线程的独立线程,利用主线程开放共享的上下文信息,控制gpu将摄像单元采集的数据帧应用自有纹理渲染到gpu可访问而cpu不能直接访问的第一缓存区,绘制出初始格式图像帧,然后再将初始格式图像帧读到中央处理器可访问的第二缓存区中以便供中央处理器直接调用,由此,解决了中央处理器无法直接调用摄像单元所绘制的纹理图像的问题,并且,在不影响主线程工作的情况下,利用独立线程获得了原始画质的第一图像帧,可以作为后续进行全参考图像客观质量评价的参考帧之用,既确保图像质量检测任务的顺利完成,又能确保主播用户正常开播推送视频流。
122.请参阅图5,进一步的实施例中,所述步骤s1400、根据第二图像帧的时间戳确定相应的第一图像帧,以第一图像帧为参考,计算相应的第二图像帧的图像质量指标,包括如下步骤:
123.步骤s1410、获取第二图像帧所携带的时间戳:
124.请结合图3,当从视频流中解码出第二图像帧后,便可确定并获取其所携带的时间戳,刚时间戳由于与第一图像帧的时间戳是基于摄像单元的数据帧同一时间坐标体系获得的,因而,同一数据帧相对应的第一图像帧、第二图像帧的时间戳是一致的。
125.步骤s1420、根据第二图像帧的时间戳,从所述映射表中调用第一图像帧:
126.请结合前一实施例,在第二缓存区中,存在一个映射表,其以键值对存储时间戳与第一图像帧之间的映射关系数据,其中,以时间戳为键,以第一图像帧为值,据此,可以根据第二图像帧的时间戳在该映射表中检索确定时间戳相同的第一图像帧,从而获得实施图像质量指标计算所需的第一图像帧和第二图像帧。
127.步骤s1430、应用预设的图像质量指标算法,根据第二图像帧的时间戳确定相应的第一图像帧,以第一图像帧为参考,计算相应的第二图像帧的图像质量指标,所述图像质量指标包括mse、psnr、ssim中任意之一或任意多种:
128.如前所述,结合全参考客观质量指标评价方法,可以采用诸如mse、psnr、ssim等任意一个或任意多个图像质量指标相应的算法,对第一图像帧和第二图像帧进行相应的图像质量指标的计算,其中,第一图像帧被作为第二图像帧的参考帧,用于计算第二图像帧的图像质量指标。
129.mse图像质量指标为均方误差指标,其算法相对应的公式如下:
[0130][0131]
其中,f
ij
,fi′j分别代表第一图像帧和第二图像帧,m,n分别表示图像帧的高度和宽度,由于第一图像帧和第二图像帧是等大的,因而其彼此高度和宽度相同。
[0132]
psnr图像质量指标为峰值信噪比指标,其算法相对应的公式如下:
[0133][0134]
其中,bits即每个像素点存储所占的位数。
[0135]
psnr(peak signal to noise ratio),峰值信噪比,即峰值信号的能量与噪声的平均能量之比,通常表示的时候取log变成分贝(db),由于mse为真实图像(第一图像帧)与含噪图像(第二图像帧)之差的能量均值,而两者的差即为噪声,因此psnr即峰值信号能量与mse之比。
[0136]
ssim(structural similarity)是一种用来衡量图片相似度的指标,ssim由亮度对比、对比度对比、结构对比三部分组成,关于其算法相对应的公式可由本领域技术人员灵活实施,故此处从略。
[0137]
根据本实施例不难发现,独立线程可以通过中央处理器,根据解码视频流获得的第二图像帧的时间戳,基于映射表快速获取该时间戳相对应的第一图像帧,其中的第一图像帧被视为参考帧,第二图像帧被视为失真图像帧,然后应用预选的图像质量指标算法,计算出第二图像帧相对于第一图像帧的图像质量指标,从而实现全参考客观质量评价。
[0138]
扩展的实施例中,所述步骤s1400、根据第二图像帧的时间戳确定相应的第一图像帧,以第一图像帧为参考,计算相应的第二图像帧的图像质量指标的步骤之后,包括如下步骤:
[0139]
步骤s1500、将所述图像质量指标提交至数据服务器,用于确定所述视频流的传输码率:
[0140]
根据本技术前述各实施例计算出来的图像质量指标,可以根据关联相对应的时间戳,被源源不断地提交给负责接收这些数据的数据服务器,这一数据服务器也可以是负责实施直播间推流的媒体服务器。总之,数据服务器可以调用并利用这些图像质量指标,根据图像质量指标是否达到预设阈值判定图像质量,从而决策出是否需要控制主播用户的终端设备改变传输码率,以提升或降低视频流的图像质量。
[0141]
步骤s1600、获取数据服务器返回的所述传输码率以控制所述视频流的传输:
[0142]
数据服务器根据所述的图像质量指标确定出所述的传输码率后,便回传给当前主播用户,于是,所述的传输码率被所述主线程的编码环节所引用,在后续控制视频流的输出码率,从而改变传输给所述的直播间的视频流的图像质量。
[0143]
本实施例通过将图像质量指标提交给数据服务器进行存储,可供直播间运营平台根据这些数据进行深度的数据挖掘,作为这种应用的一个典型示例,本实施例由数据服务器根据这些图像质量指标进行是否需要改变当前主播用户的视频流的传输码率的决策,为当前主播用户的视频流的主线程提供对视频流编码所需的传输码率,从而改变推送至直播
间的视频图像质量,实现质量改善机制,使网络直播技术更加完善。
[0144]
请参阅图6,适应本技术的目的之一而提供的一种直播视频质量检测装置,包括:开播推流模块1100、分流转换模块1200、解码处理模块1300,以及质量检测模块1400,其中:开播推流模块1100,用于将摄像单元采集的数据帧编码为视频流,推送至开播的直播间;分流转换模块1200,用于获取所述数据帧,应用预设纹理将其重新绘制后,同步至中央处理器可访问的缓存区,转换为目标格式的第一图像帧;解码处理模块1300,用于解码所述视频流,获得其中的目标格式的第二图像帧;质量检测模块1400,用于根据第二图像帧的时间戳确定相应的第一图像帧,以第一图像帧为参考,计算相应的第二图像帧的图像质量指标。
[0145]
深化的部分实施例中,所述开播推流模块1100,包括:采集启动子模块,用于响应直播开启指令,由主线程启动摄像单元采集数据帧;纹理渲染子模块,用于由主线程将所述数据帧绘制为纹理图像;编码处理子模块,用于由主线程对所述纹理图像进行编码处理,形成视频流;视频流推送子模块,用于由主线程将所述视频流推送至直播间。
[0146]
具体化的部分实施例中,所述编码处理子模块在完成对纹理图像的编码后,向主线程发送解码通知消息,以执行所述解码处理模块1300。
[0147]
深化的部分实施例中,所述分流转换模块1200,包括:分流渲染子模块,用于启动独立线程,根据所述主线程提供的上下文,控制图形处理器将主线程所采集的数据帧渲染至图形处理器可访问的第一缓存区以获得初始格式图像帧,该缓存区以自有纹理为载体;缓存转移子模块,用于由该独立线程将所述第一缓存区中的初始格式图像帧同步至中央处理器可访问的第二缓存区;格式转换子模块,用于由该独立线程将第二缓存区中的初始格式图像帧转换为所述目标格式的图像帧而获得第一图像帧。
[0148]
具体化的部分实施例中,所述格式转换子模块,包括:格式转换单元,用于由该独立线程基于所述目标格式,对第二缓存区中的初始格式图像帧进行格式转换获得第一图像帧;映射存储单元,用于以第一图像帧所携带的时间戳为索引,将第一图像帧缓存于映射表中。
[0149]
进一步的实施例中,所述质量检测模块1400,包括:时间戳确定子模块,用于获取第二图像帧所携带的时间戳;检索调用子模块,用于根据第二图像帧的时间戳,从所述映射表中调用第一图像帧;指标计算子模块,用于应用预设的图像质量指标算法,根据第二图像帧的时间戳确定相应的第一图像帧,以第一图像帧为参考,计算相应的第二图像帧的图像质量指标,所述图像质量指标包括mse、psnr、ssim中任意之一或任意多种。
[0150]
扩展的实施例中,本技术的直播视频质量检测装置,还包括:指标提交模块,用于将所述图像质量指标提交至数据服务器,用于确定所述视频流的传输码率;码流调节模块,用于获取数据服务器返回的所述传输码率以控制所述视频流的传输。
[0151]
为解决上述技术问题,本技术实施例还提供计算机设备。如图7所示,计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、计算机可读存储介质、存储器和网络接口。其中,该计算机设备的计算机可读存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种直播视频质量检测方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行本技术的直播视频质量检测方法。该
计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0152]
本实施方式中处理器用于执行图6中的各个模块及其子模块的具体功能,存储器存储有执行上述模块或子模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有本技术的直播视频质量检测装置中执行所有模块/子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
[0153]
本技术还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本技术任一实施例的直播视频质量检测方法的步骤。
[0154]
本技术还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被一个或多个处理器执行时实现本技术任一实施例所述方法的步骤。
[0155]
本领域普通技术人员可以理解实现本技术上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等计算机可读存储介质,或随机存储记忆体(random access memory,ram)等。
[0156]
综上所述,本技术通过独立一路业务逻辑自行解决格式转换获得所述的第一图像帧,应图像质量指标计算的格式要求所需,提供相匹配的目标格式的图像,期间不影响摄像单元采集并编码视频流的开播推流业务流程,在保证直播视频流的稳定提供的前提下,实现了对直播视频流的图像的客观质量评价。
[0157]
本技术领域技术人员可以理解,本技术中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本技术中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本技术中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
[0158]
以上所述仅是本技术的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1