视频增强方法、装置、设备以及存储介质与流程

文档序号:23684389发布日期:2021-01-23 09:09阅读:119来源:国知局
视频增强方法、装置、设备以及存储介质与流程

[0001]
本申请涉及视频处理领域,特别涉及一种视频增强方法、装置、设备以及存储介质。


背景技术:

[0002]
随着网络技术的发展,越来越多的用户通过各类计算机设备观看视频,用户在观看视频的过程中,希望能够看到清晰度较高的视频。
[0003]
相关技术中,为了向用户提供清晰度更高的视频,计算机设备会采用视频增强算法对播放的视频进行视频增强,从而提高视频的清晰度。
[0004]
但是,在视频增强的过程中,针对不同的视频,计算机设备往往会采用同一套视频增强算法。这样可能出现对一些视频进行视频增强后,清晰度更差的情况。


技术实现要素:

[0005]
本申请实施例提供了一种视频增强方法、装置、设备以及存储介质,可以提升视频增强效果,提高视频的清晰度。所述技术方案如下:
[0006]
一方面,提供了一种视频增强方法,所述方法包括:
[0007]
获取待解码视频;
[0008]
在对所述待解码视频中的任一视频帧进行解码的过程中,获取与所述任一视频帧关联的最高亮度值和最低亮度值,所述最高亮度值和所述最低亮度值分别为所述任一视频帧中多个像素点的亮度值中的最高亮度值和最低亮度值;
[0009]
根据所述最高亮度值以及所述最低亮度值,对所述多个像素点的像素值进行更新,更新后的所述多个像素点的像素值所指示的亮度值符合目标条件。
[0010]
一方面,提供了一种视频增强装置,所述装置包括:
[0011]
视频获取模块,用于获取待解码视频;
[0012]
亮度值获取模块,用于在对所述待解码视频中的任一视频帧进行解码的过程中,获取与所述任一视频帧关联的最高亮度值和最低亮度值,所述最高亮度值和所述最低亮度值分别为所述任一视频帧中多个像素点的亮度值中的最高亮度值和最低亮度值;
[0013]
像素值更新模块,用于根据所述最高亮度值以及所述最低亮度值,对所述多个像素点的像素值进行更新,更新后的所述多个像素点的像素值所指示的亮度值符合目标条件。
[0014]
在一种可能的实施方式中,所述装置还包括:
[0015]
亮度信息文件获取模块,用于获取亮度信息文件,所述亮度信息文件中存储有分别与所述待解码视频中的多个视频帧关联的最高亮度值和最低亮度值;
[0016]
视频获取模块,还用于根据所述任一视频帧的标识,从所述亮度信息文件中获取与所述任一视频帧关联的最高亮度值和最低亮度值。
[0017]
在一种可能的实施方式中,亮度信息文件的生成装置包括:
[0018]
像素值获取模块,用于获取所述待解码视频中的多个视频帧中多个像素点的像素值;
[0019]
亮度值确定模块,用于根据所述多个视频帧中多个像素点的像素值,得到所述多个视频帧中多个像素点的亮度值;根据所述多个视频帧中多个像素点的亮度值,得到分别与所述多个视频帧关联的最高亮度值和最低亮度值;
[0020]
亮度信息文件生成模块,用于根据所述多个视频帧的标识,以及所述分别与所述多个视频帧关联的最高亮度值和最低亮度值,生成所述亮度信息文件。
[0021]
在一种可能的实施方式中,所述装置还包括:
[0022]
视频帧显示模块,用于显示目标视频帧,所述目标视频帧为所述像素值更新后的所述多个像素点组成的视频帧。
[0023]
一方面,提供了一种计算机设备,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述程序代码由所述一个或多个处理器加载并执行以实现所述视频增强方法。
[0024]
一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现所述视频增强方法。
[0025]
一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机程序代码,处理器执行该计算机程序代码,使得该计算机设备执行上述视频增强方法。
[0026]
通过本申请实施例提供的技术方案,终端能够在进行视频解码的过程中,基于与视频帧关联的最高亮度值和最低亮度值对每个像素点的像素值进行更新,其中,对像素点的像素值进行更新的过程也即是视频增强的过程。由于与不同视频帧关联的最高亮度值和最低亮度值往往是不同的,因此对不同视频帧进行视频增强时,终端使用的最高亮度值和最低亮度值也是个性化的,不同视频帧能够得到不同程度的视频增强。当然,对于不同视频来说,也能够实现对于不同视频采用不同的最高亮度值和最低亮度值进行视频增强,从而提高视频的清晰度。
附图说明
[0027]
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0028]
图1是本申请实施例提供的一种视频增强方法的实施环境的示意图;
[0029]
图2是本申请实施例提供的一种视频增强方法流程图;
[0030]
图3是本申请实施例提供的一种视频增强方法流程图;
[0031]
图4是本申请实施例提供的一种视频增强方法流程图;
[0032]
图5是本申请实施例提供的一种直方图的示意图;
[0033]
图6是本申请实施例提供的一种视频帧和亮度信息文件的对应关系示意图;
[0034]
图7是本申请实施例提供的一种视频增强方法的效果对比图;
[0035]
图8是本申请实施例提供的一种视频增强装置的结构示意图;
[0036]
图9是本申请实施例提供的一种终端的结构示意图;
[0037]
图10是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
[0038]
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0039]
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
[0040]
本申请中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上,例如,多个参照人脸图像是指两个或两个以上的参照人脸图像。
[0041]
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为iaas(infrastructure as a service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。按照逻辑功能划分,在iaas(infrastructure as a service,基础设施即服务)层上可以部署paas(platform as a service,平台即服务)层,paas层之上再部署saas(software as a service,软件即服务)层,也可以直接将saas部署在iaas上。paas为软件运行的平台,如数据库、web容器等。saas为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,saas和paas相对于iaas是上层。
[0042]
云端:云计算中的大量计算机称为云端。
[0043]
视频编码:视频是连续的图像序列,由连续的帧构成,一帧即为一幅图像。由于人眼的视觉暂留效应,当帧序列以一定的速率播放时,用户看到的就是动作连续的视频。由于连续的帧之间相似性极高,为便于储存传输,计算机设备能够对原始的视频进行编码,以去除空间、时间维度的冗余,减少视频的占用的存储空间。
[0044]
视频解码:为视频编码的逆过程,也即是将视频编码后的数据还原为视频的方法。
[0045]
视频增强:增强视频帧中的有用信息,可以是一个失真的过程,其目的是要改善视频帧的视觉效果。
[0046]
图1是本申请实施例提供的一种视频增强方法的实施环境示意图,参见图1,该实施环境中可以包括终端110和服务器140。
[0047]
终端110通过无线网络或有线网络与服务器140相连。可选地,终端110是智能手机、平板电脑、智能电视、台式计算机,车载计算机以及便携计算机等设备。终端110安装和运行有支持视频播放的应用程序。
[0048]
可选地,服务器140是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通
信、中间件服务、域名服务、安全服务、分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。可选地,终端110以及服务器140通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
[0049]
可选地,终端110泛指多个终端中的一个,本申请实施例仅以终端110来举例说明。
[0050]
本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端110仅为一个,或者上述终端为几十个或几百个,或者更多数量,此时上述实施环境中还包括其他终端。本申请实施例对终端的数量和设备类型不加以限定。
[0051]
介绍完本申请实施例提供的实施环境之后,下面对本申请的应用场景进行说明:
[0052]
场景1、本申请实施例提供的视频增强方法能够应用于在线视频播放的场景下。用户通过在线视频播放软件点击想要观看的视频时,在线视频播放软件能够在播放视频的过程中,实时通过本申请实施例提供的在线视频增强方法来对视频进行视频增强,提高视频的清晰度,从而为用户提供更好的观影感受。
[0053]
举例来说,参见图2,若用户通过在线视频播放软件点播了视频a,那么在线视频播放软件能够将视频a的标识发送给服务器,服务器根据视频a的标识确定视频a在视频数据库中的位置,通过流媒体的方式将视频a发送给在线视频播放软件。在发送视频a的同时,服务器还能够将视频a中视频帧的亮度信息文件发送给在线视频客户端。在线视频播放软件在接收到视频a后,对视频a进行实时解码,得到视频a中每个视频帧的多个像素点的像素值。在线视频播放软件根据亮度信息文件,对视频帧的多个像素点的像素值进行更新,从而实现视频增强,提高视频a的清晰度。
[0054]
场景2、本申请实施例提供的视频增强方法能够应用于直播场景下,在下述说明过程中,主播使用的终端简称为主播端,观众使用的终端简称为观众端。在直播过程中,主播往往会对直播设置一个延迟,也即是观众通过观众端看到的内容是主播在几秒或者几分钟前的画面。由于主播端向直播服务器发送直播视频流是实时的,直播服务器能够利用主播设置的延迟,实时获取直播视频流中视频帧的最高亮度值和最低亮度值,生成亮度信息文件。直播服务器将直播视频流以及亮度信息文件发送给观众端,由观众端基于亮度信息文件对直播视频流进行视频增强,提高视频的清晰度。
[0055]
场景3、本申请实施例提供的视频增强方法能够应用于与离线视频播放的场景下。当用户想要播放存储在终端上的离线视频时,终端能够对该视频进行解码,终端对解码得到的视频帧进行亮度值统计,得到解码得到的视频帧中多个像素点的最高亮度值和最低亮度值。最高亮度值和最低亮度值之后,终端对解码出的视频帧中多个像素点的像素值进行更新,将更新后的视频帧展现给用户,从而实现视频增强过程。
[0056]
场景4、本申请实施例提供的视频增强方法能够应用于监控场景下。比如用户通过在商场内部设置监控装置来实现对商场的监控,或者通过在住宅中设置监控装置来对住宅进行监控。当发生意外情况,比如发生商场失窃或者住宅失窃等情况时,用户能够通过监控装置拍摄的监控视频回顾意外情况发生时的状况。但是由于监控装置的限制,可能有一些视频的内容不够清楚。此时通过本申请实施例提供的视频增强方法对监控视频进行视频增强,能够提高监控视频的清晰度,使得用户更加清楚的查看意外情况发生时的状况。
[0057]
场景5、本申请实施例提供的视频增强方法能够应用于航拍场景下。当用户通过无人机进行航拍时,由于无人机的设备限制,可能拍摄出一些清晰度较低的视频。通过本申请
实施例提供的视频增加方法,能够对航拍视频进行视频增强,从而提高航拍视频的清晰度。
[0058]
需要说明的是,在下述对本申请实施例提供的技术方案进行说明的过程中,是以终端作为执行主体为例进行的。在其他可能的实施方式中,也可以由服务器作为执行主体来执行,或者通过终端和服务器之间的配合来执行,本申请实施例对于执行主体的类型不做限定。
[0059]
图3是本申请实施例提供的一种视频增强方法的流程图,参见图3,方法包括:
[0060]
301、终端获取待解码视频。
[0061]
可选地,待解码视频为在线视频、直播视频、离线视频、监控视频以及航拍视频等类型的视频,当然也包括其他需要进行视频增强的视频,本申请实施例对于待解码视频的类型不做限定。
[0062]
302、终端在对待解码视频中的任一视频帧进行解码的过程中,获取与该视频帧关联的最高亮度值和最低亮度值,最高亮度值和最低亮度值分别为该视频帧中多个像素点的亮度值中的最高亮度值和最低亮度值。
[0063]
可选地,亮度值为颜色编码方法yuv中的y(luminance或luma)值,也即是明亮度,另外,yuv中的u和v表示色度(chrominance或chroma)。
[0064]
303、终端根据最高亮度值以及最低亮度值,对多个像素点的像素值进行更新,更新后的多个像素点的像素值所指示的亮度值符合目标条件。
[0065]
可选地,更新后的多个像素点的像素值所指示的亮度值符合目标条件是指下述任一项:
[0066]
若更新前的多个像素点的像素值所指示的亮度值的平均值小于视频帧的最高亮度值和最低亮度值的二分之一,那么更新后的多个像素点的像素值所指示的亮度值的平均值大于第一亮度阈值,其中,第一亮度阈值为更新前的多个像素点的像素值所指示的亮度值的平均值。
[0067]
若更新前的多个像素点的像素值所指示的亮度值的平均值大于视频帧的最高亮度值和最低亮度值的二分之一,那么更新后的多个像素点的像素值所指示的亮度值的平均值小于第二亮度阈值,其中,第二亮度阈值为更新前的多个像素点的像素值所指示的亮度值的平均值。
[0068]
也就是说,采用本申请实施例提供的技术方案,对于一些亮度较低的视频来说,能够提高整体的视频亮度,对于一些亮度较高的视频来说,能够降低整体的视频亮度,从而提高视频的清晰度。
[0069]
通过本申请实施例提供的技术方案,终端能够在进行视频解码的过程中,基于与视频帧关联的最高亮度值和最低亮度值对每个像素点的像素值进行更新,其中,对像素点的像素值进行更新的过程也即是视频增强的过程。由于与不同视频帧关联的最高亮度值和最低亮度值往往是不同的,因此对不同视频帧进行视频增强时,终端使用的最高亮度值和最低亮度值也是个性化的,不同视频帧能够得到不同程度的视频增强。当然,对于不同视频来说,也能够实现对于不同视频采用不同的最高亮度值和最低亮度值进行视频增强,从而提高视频的清晰度。
[0070]
在下述对本申请实施例提供的技术方案进行说明的过程中,是以终端作为执行主体为例进行的。在其他可能的实施方式中,也可以通过终端和服务器之间的配合来执行,本
申请实施例对于执行主体的类型不做限定。
[0071]
图4是本申请实施例提供的一种视频增强方法的流程图,参见图4,方法包括:
[0072]
401、终端获取待解码视频。
[0073]
其中,待解码视频的类型在步骤301中进行了描述,在此不再赘述。另外,为了更加清楚的对本申请实施例提供的视频增强方法进行说明,下面将分别以待解码视频为云端上的视频以及待解码视频为本地视频为例进行说明:
[0074]
以待解码视频为云端上的视频为例:
[0075]
若待解码视频为存储在服务器上的在线视频,用户能够通过终端上运行的在线视频播放软件来选择想要观看的视频。响应于用户对任一在线视频的选择操作,终端触发视频选择指令。响应于视频选择指令,在线播放软件向服务器发送视频获取请求,视频获取请求携带有用户选择视频的视频标识。服务器接收视频获取请求,获取视频获取请求中的视频标识。服务器根据视频标识,在视频数据库中查找与视频标识对应的待解码视频。服务器将待解码视频发送给终端,终端获取待解码视频。
[0076]
若待解码视频为直播视频,主播通过主播端将直播视频实时传送给服务器,服务器为直播视频添加主播的直播间的标识。用户能够通过直播软件来选择想要观看的直播间。响应于用户对任一直播间的选择操作,终端触发直播选取指令。响应于直播间选取指令,直播软件向服务器发送直播视频获取请求,直播视频获取请求中携带有用户选择直播间的直播间标识。服务器接收直播视频获取请求,获取直播视频获取请求中的直播间标识。服务器将与直播间标识对应的直播视频发送给终端,终端获取直播视频,也即是获取了待解码视频。
[0077]
以待解码视频为本地视频为例:
[0078]
若待解码视频为离线视频,当用户想要观看磁盘内的视频时,通过视频播放软件选择想要观看的视频。响应于用户的视频选择操作,终端触发视频选择指令,视频选择指令中携带有用户选择视频的存储位置。响应于视频选择指令,视频播放软件加载视频选择指令对应的视频,这样也就能够实现终端获取待解码视频的过程。
[0079]
若待解码视频为监控视频,用户通过视频监控软件,选择想要查看的监控视频。响应于用户的监控视频选择操作,终端触发监控视频选择指令,视频选择指令中携带有用户选择的监控视频的存储位置。响应于监控视频选择指令,视频监控软件加载监控视频选择指令对应的监控视频,这样也就能够实现终端获取待解码视频的过程。
[0080]
402、终端获取亮度信息文件,亮度信息文件中存储有分别与待解码视频中的多个视频帧关联的最高亮度值和最低亮度值。
[0081]
可选地,亮度信息文件存储有一个亮度信息表,亮度信息表的形式参见表1,表1中存储有视频帧的标识、视频帧的最高亮度值和视频帧的最低亮度值。
[0082]
表1
[0083]
视频帧标识最高亮度值最低亮度值nmax
n
min
n
n+1max
n+1
min
n+1
………………
[0084]
在一种可能的实施方式中,若待解码视频为云端上的视频,终端根据待解码视频
的视频标识,获取待解码视频的亮度信息文件。
[0085]
举例来说,终端向服务器发送亮度信息文件获取请求,亮度信息文件获取请求中携带有待解码视频的视频标识。响应于接收到亮度信息文件获取请求,服务器从亮度信息获取请求中获取待解码视频的标识。服务器根据待解码视频的视频标识,从亮度信息数据库中获取与待解码视频对应的亮度信息文件。服务器将亮度信息文件发送给终端,终端获取亮度信息文件。
[0086]
需要说明的是,上述实施方式是以终端在获取待解码视频之后再获取亮度信息文件为例进行的,在其他可能的实施方式中,终端也能够在获取待解码视频的同时获取亮度信息文件,这样终端通过一次操作就能够同时获取待解码视频和亮度信息文件,降低了终端的开销,下面将基于几个例子对这种实施方式进行说明:
[0087]
若待解码视频为存储在服务器上的在线视频,用户能够通过终端上运行的在线视频播放软件来选择想要观看的视频。响应于用户对任一在线视频的选择操作,终端触发视频选择指令。响应于视频选择指令,在线播放软件向服务器发送视频获取请求,视频获取请求携带有用户选择视频的视频标识。服务器接收视频获取请求,获取视频获取请求中的视频标识。服务器根据视频标识,在数据库中查找与视频标识对应的待解码视频以及亮度信息文件。服务器将待解码视频和亮度信息文件发送给终端,终端也就能够同时获取待解码视频和亮度信息文件。
[0088]
若待解码视频为直播视频,主播通过主播端将直播视频实时传送给服务器,服务器为直播视频添加主播的直播间的标识。用户能够通过直播软件来选择想要观看的直播间。响应于用于对任一直播间的选择操作,终端触发直播选取指令。响应于直播间选取指令,直播软件向服务器发送直播视频获取请求,直播视频获取请求中携带有用户选择直播间的直播间标识。服务器接收直播视频获取请求,获取直播视频获取请求中的直播间标识。服务器将与直播间标识对应的直播视频以及亮度信息文件发送给终端,终端也就能够同时获取待解码视频和亮度信息文件。
[0089]
在介绍完终端获取亮度信息文件的方法之后,下面对本申请实施例提供的亮度信息文件的生成方法进行说明,在说明过程中,还是分为待解码视频为云端视频和本地视频来进行。
[0090]
若待解码视频为云端上的视频,那么亮度信息文件也就能够在云端生成,终端直接从云端获取待解码视频的亮度信息文件。
[0091]
在一种可能的实施方式中,服务器获取待解码视频中的多个视频帧中多个像素点的像素值。服务器根据多个视频帧中多个像素点的像素值,得到多个视频帧中多个像素点的亮度值。服务器根据多个视频帧中多个像素点的亮度值,得到分别与多个视频帧关联的最高亮度值和最低亮度值。服务器根据多个视频帧的标识,以及分别与多个视频帧关联的最高亮度值和最低亮度值,生成亮度信息文件。
[0092]
举例来说,服务器能够获取待解码视频中的多个视频帧中多个像素点的颜色(红绿蓝)通道(rgb,red green blue)值。服务器将多个像素点的颜色通道值转换为亮度色度(yuv,luminance/chrominance)值,其中y值也即是像素点的亮度值。服务器从多个视频帧中多个像素点的亮度值中,获取分别与多个视频帧关联的最高亮度值和最低亮度值。服务器根据多个视频帧的视频标识,以及分别与多个视频帧关联的最高亮度值和最低亮度值,
生成亮度信息文件。
[0093]
下面对服务器确定多个视频帧中多个像素点的最高亮度值和最低亮度值的方法进行说明,需要说明的是,为了便于理解,在下述说明过程中,是以服务器确定一个视频帧中多个像素点的最高亮度值和最低亮度值为例进行的。
[0094]
举例来说,服务器确定视频帧中每个像素点的rgb值,比如一个像素点的rgb值为(110,70,80),服务器基于公式(1)来确定视频帧中每个像素点的亮度值,比如为一个像素点的亮度值为85。
[0095]
y=ar+bg+cb
ꢀꢀꢀꢀ
(1)
[0096]
其中,y为像素点的亮度值,r为红色通道值,g为绿色通道值,b为蓝色通道值,a、b和c分别为转换系数,a、b和c的一种可能的组合为:a=0.299、b=0.587以及c=0.144,当然在其他可能的实施环境中,a、b和c也能够为其他数值组合,本申请实施例对此不做限定。
[0097]
服务器对视频帧中多个像素点的亮度值进行直方图统计,得到如图5所示的直方图,直方图的横坐标表示亮度值,纵坐标表示一个亮度值在所有亮度值中的占比。举例来说,视频帧中存在4个像素点,4个像素点的亮度值分别为70、85、90以及85。那么亮度值75的数量占4个亮度值的25%,亮度值85的数量占4个亮度值的50%,亮度值90的数量占4个亮度值的25%。在此例子的基础上,继续参见图5,横坐标5对应的矩形表示亮度值为5的像素点的数量占据所有像素点数量的3%。若所有像素点的数量为100,那么也就有3个像素点的亮度值为3。服务器能够将一个视频帧中大于或等于95%亮度值的亮度值获取为该视频帧的最高亮度值,将一个视频帧中小于或等于95%亮度值的亮度值获取为该视频帧的最低亮度值。参见图5,图5中亮度值为210的像素点的占比为3%,亮度值为230的像素点的占比为2%,也就是说亮度值小于210的像素点的占比为95%,那么服务器将亮度值210获取为该视频帧的最高亮度值。图5中亮度值为8的像素点的占比为2%,亮度值为5的像素点的占比为3%,也就是说亮度值大于8的像素点的占比为95%,服务器将亮度值8获取为该视频帧的最低亮度值。
[0098]
通过这样的方式来获取最高亮度值和最低亮度值,能够保证在后续进行视频增强的过程中,避免由于一个视频帧中出现异常高亮度值和异常低亮度值,导致视频增强效果降低的情况。
[0099]
需要说明的是,上述说明过程是以服务器作为执行主体来生成亮度信息文件,终端从服务器获取亮度信息文件为例进行说明的。对于离线视频来说,终端也能够在播放离线视频的过程中实时生成亮度信息文件,从而实现对离线视频的视频增强。
[0100]
在一种可能的实施方式中,若待解码视频为离线视频,在终端第一次播放离线视频的过程中,终端对离线视频进行解码,得到多个视频帧。终端在对多个视频帧进行显示之前,先对多个视频帧中多个像素点的亮度值进行统计,得到每个视频帧中多个像素点的最高亮度值和最低亮度值。终端根据多个视频帧中多个像素点的最高亮度值和最低亮度值,生成亮度信息文件,其中,在终端第一次播放离线视频的过程中,亮度信息文件不是一次性生成的,而是随着离线视频的播放,不断向亮度信息文件中填充视频帧中多个像素点的最高亮度值和最低亮度值,这样在终端第一次播放离线视频之后,就能够得到离线视频完整的亮度信息文件,在之后播放离线视频的过程中,终端能够直接基于该亮度信息文件对离线视频进行在线增强,无需终端每次生成离线视频的亮度信息,从而提高视频增强的效率,
降低终端的开销。
[0101]
403、终端在对待解码视频中的任一视频帧进行解码的过程中,根据该视频帧的标识,从亮度信息文件中获取与该视频帧关联的最高亮度值和最低亮度值,最高亮度值和最低亮度值分别为该视频帧中多个像素点的亮度值中的最高亮度值和最低亮度值。
[0102]
参见图6,左侧为待解码视频中的多个视频帧,视频帧中携带有视频帧的标识,在图6中,视频帧的标识也即是第n帧中的“n”,其中,n为正整数。图6的右侧为亮度信息文件中的内容,亮度信息文件中存储有视频帧的标识以及每个视频帧的最高亮度值和最低亮度值。终端能够根据视频帧的标识n,从亮度信息文件中获取与标识n对应的最高亮度值和最低亮度值。随着终端从待解码视频中解码出视频帧的过程,终端也能够不断从亮度信息文件中获取视频帧的最高亮度值和最低亮度值。
[0103]
404、终端根据最高亮度值以及最低亮度值,对多个像素点的像素值进行更新,更新后的多个像素点的像素值所指示的亮度值符合目标条件。
[0104]
在一种可能的实施方式中,终端将最高亮度值和最低亮度值与该视频帧中多个像素点的亮度值分别进行融合,得到与多个像素点对应的像素更新幅值。终端根据像素更新幅值对多个像素点的像素值进行更新。
[0105]
下面将分两个部分对上述实施方式进行说明,第一部分是对终端得到像素更新幅值的方法进行说明,第二部分是对终端对像素点的像素值进行更新的方法进行说明:
[0106]
对第一部分来说,在一种可能的实施方式中,终端获取多个像素点的亮度值与最低亮度值之间的多个第一差值。终端获取多个第一差值与第二差值之间的多个第一比值,其中第二差值为最高亮度值与最低亮度值之间的差值。终端根据多个第一比值和多个像素点的亮度值,得到与多个像素点对应的像素更新幅值。
[0107]
举例来说,终端获取多个像素点的亮度值与最低亮度值之间的多个第一差值。终端获取多个第一差值与第二差值之间的多个第一比值,终端分别对多个第一比值进行线性变换,得到多个变换指标。终端基于多个变换指标,分别对多个像素点的亮度值进行非线性变换,得到与多个像素点对应的像素更新幅值。
[0108]
下面以终端对一个视频帧执行上述处理过程,得到一个视频帧中的一个像素点对应的像素更新幅值为例进行说明:
[0109]
终端将一个像素点的rgb值转化为yuv中的y值,y值也即是该像素点的亮度值,rgb值转为y值的方法参见公式(1)。终端基于公式(2)对该像素点的亮度值进行线性变换,基于公式(3)进行非线性变换,得到该像素点的像素更新幅值。
[0110]
λ=1-{[(x-min)/(max-min)]*2-1}*0.1
ꢀꢀꢀꢀꢀꢀ
(2)
[0111]
δ=x
λ-x
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0112]
其中,λ为线性变换指标,x为像素点的亮度值,min为视频帧中多个像素点的最低亮度值,max为视频帧中多个像素点的最高亮度值,δ为像素点的像素更新幅值。
[0113]
终端通过第一部分的处理,能够根据视频帧的最高亮度值和视频帧最低亮度值来得到像素点的更新幅值。由于不同视频帧的最高亮度值和最低亮度值是不同的,同时同一个视频帧中不同像素点的亮度值也是不同的,那么不仅能够实现不同视频帧之间的个性化处理,也能够实现同一个视频帧中不同像素点的个性化处理,提高后续视频增强的效果。
[0114]
对第二部分来说,在一种可能的实施方式中,终端将多个像素点的像素值分别与
对应的像素更新幅值进行叠加。
[0115]
以终端对一个像素点的像素值与对应的像素更新幅值进行叠加为例,终端能够基于公式(4)将一个像素点的rgb值分别与像素更新幅值相加,得到该像素点更新后的像素值。
[0116][0117]
其中,rˊ为像素点更新后的红色通道值,gˊ为像素点更新后的绿色通道值,bˊ为像素点更新后的蓝色通道值,r为像素点更新前的红色通道值,g为像素点更新前的绿色通道值,b为像素点更新前的蓝色通道值,δ为像素点的像素更新幅值。
[0118]
为了对上述步骤404提供的技术方案进行更加清楚的解释,下面将结合一个完整的例子进行说明:
[0119]
还是以终端对视频帧中的一个像素点a进行处理为例:若视频帧中的一个像素点a的颜色通道值为(100,120,150),根据公式(1),在a=0.299、b=0.587以及c=0.144的条件下,终端确定该像素点a的亮度值为121.94,为了计算方便,取整数为122。若该视频帧中多个像素点的最高亮度值为180,最低亮度值为100,那么终端能够基于公式(2),得到线性变换指标λ=1.045。终端基于公式(3),得到该像素点a的像素更新幅值δ=29.44,取整得到29。终端基于公式(4),得到像素点a更新后的颜色通道值为(129,149,179)。
[0120]
以终端对相同视频帧上另一个像素点b进行处理为例:若该像素点b的颜色通道值为(130,160,140),根据公式(1),在a=0.299、b=0.587以及c=0.144的条件下,终端确定该像素点b的亮度值为152.95,为了计算方便,取整数为153。该视频帧中多个像素点的最高亮度值为180,最低亮度值为100,终端基于公式(2),得到线性变换指标λ=0.9675。终端基于公式(3),得到该像素点b的像素更新幅值δ=-23.07,取整得到-23。终端基于公式(4),得到像素点b更新后的颜色通道值为(107,137,117)。
[0121]
为了对像素点a和像素点b进行视频增强之后结果进行更加清晰的展现,下面将再次借助公式(1),对像素点a更新后的颜色通道值为(129,149,179)以及像素点b更新后的颜色通道值为(107,137,117)进行运算,得到像素点a和像素点b更新后的亮度值。
[0122]
还是在a=0.299、b=0.587以及c=0.144的条件下,基于像素点a更新后的颜色通道值为(129,149,179)进行运算,得到像素点a更新后的亮度值为151.81,取整为152。基于像素点b更新后的颜色通道值为(107,137,117)进行运算,得到像素点b更新后的亮度值为129.26,取整为129。可以看出,采用本申请实施例提供的视频增强方法之后,像素点a的亮度值由122增加到了152,像素点b的亮度值由153减少到了129。
[0123]
通过上述说明,可以看出,对于一些亮度值较低的像素点,通过本申请实施例提供的视频增强方法能够提高其亮度值。对于一些亮度值较高的像素点,通过本申请实施例提供的视频增强方法能够适当减少其亮度值,使得视频帧能够更加清楚的展现给用户。扩展到视频,对于一些像素点的平均亮度值较低的视频来说,采用本申请实施例提供的视频增强方法能够从整体上提高视频的亮度。对于一些像素点的平均亮度值较高的视频来说,能够从整体上降低视频的亮度。
[0124]
405、显示目标视频帧,目标视频帧为像素值更新后的多个像素点组成的视频帧。
[0125]
参见图7,为采用本申请实施例提供的视频增强方法之后的效果图,图7的左边为未进行视频增强的视频播放效果,中间为采用本申请实施例提供的视频增强方法之后的视频播放效果,右边为采用相关技术中的视频增强方法之后的视频播放效果。从图7中能够看出,采用本申请实施例提供的视频增强方法的视频播放效果更好。
[0126]
通过本申请实施例提供的技术方案,终端能够在进行视频解码的过程中,基于与视频帧关联的最高亮度值和最低亮度值对每个像素点的像素值进行更新,其中,对像素点的像素值进行更新的过程也即是视频增强的过程。由于与不同视频帧关联的最高亮度值和最低亮度值往往是不同的,因此对不同视频帧进行视频增强时,终端使用的最高亮度值和最低亮度值也是个性化的,不同视频帧能够得到不同程度的视频增强。当然,对于不同视频来说,也能够实现对于不同视频采用不同的最高亮度值和最低亮度值进行视频增强,从而提高视频的清晰度。
[0127]
图8提供了一种视频增强装置的结构示意图,参见图8,装置包括:视频获取模块801、亮度值获取模块802以及像素值更新模块803。
[0128]
视频获取模块801,用于获取待解码视频。
[0129]
亮度值获取模块802,用于在对待解码视频中的任一视频帧进行解码的过程中,获取与任一视频帧关联的最高亮度值和最低亮度值,最高亮度值和最低亮度值分别为任一视频帧中多个像素点的亮度值中的最高亮度值和最低亮度值。
[0130]
像素值更新模块803,用于根据最高亮度值以及最低亮度值,对多个像素点的像素值进行更新,更新后的多个像素点的像素值所指示的亮度值符合目标条件。
[0131]
在一种可能的实施方式中,像素值更新模块,用于将最高亮度值和最低亮度值与多个像素点的亮度值分别进行融合,得到与多个像素点对应的像素更新幅值。根据像素更新幅值对多个像素点的像素值进行更新。
[0132]
在一种可能的实施方式中,像素值更新模块,用于获取多个像素点的亮度值与最低亮度值之间的多个第一差值。获取多个第一差值与第二差值之间的多个第一比值,第二差值为最高亮度值与最低亮度值之间的差值。根据多个第一比值和多个像素点的亮度值,得到与多个像素点对应的像素更新幅值。
[0133]
在一种可能的实施方式中,像素值更新模块,用于分别对多个第一比值进行线性变换,得到多个变换指标。基于多个变换指标,分别对多个像素点的亮度值进行非线性变换,得到与多个像素点对应的像素更新幅值。
[0134]
在一种可能的实施方式中,像素值更新模块,用于将多个像素点的像素值分别与对应的像素更新幅值进行叠加。
[0135]
在一种可能的实施方式中,装置还包括:
[0136]
亮度信息文件获取模块,用于获取亮度信息文件,亮度信息文件中存储有分别与待解码视频中的多个视频帧关联的最高亮度值和最低亮度值。
[0137]
视频获取模块,还用于根据任一视频帧的标识,从亮度信息文件中获取与任一视频帧关联的最高亮度值和最低亮度值。
[0138]
在一种可能的实施方式中,亮度信息文件的生成装置包括:
[0139]
像素值获取模块,用于获取待解码视频中的多个视频帧中多个像素点的像素值。
[0140]
亮度值确定模块,用于根据多个视频帧中多个像素点的像素值,得到多个视频帧中多个像素点的亮度值。用于根据多个视频帧中多个像素点的亮度值,得到分别与多个视频帧关联的最高亮度值和最低亮度值。
[0141]
亮度信息文件生成模块,用于根据多个视频帧的标识,以及分别与多个视频帧关联的最高亮度值和最低亮度值,生成亮度信息文件。
[0142]
在一种可能的实施方式中,装置还包括:
[0143]
视频帧显示模块,用于显示目标视频帧,目标视频帧为像素值更新后的多个像素点组成的视频帧。
[0144]
通过本申请实施例提供的技术方案,终端能够在进行视频解码的过程中,基于与视频帧关联的最高亮度值和最低亮度值对每个像素点的像素值进行更新,其中,对像素点的像素值进行更新的过程也即是视频增强的过程。由于与不同视频帧关联的最高亮度值和最低亮度值往往是不同的,因此对不同视频帧进行视频增强时,终端使用的最高亮度值和最低亮度值也是个性化的,不同视频帧能够得到不同程度的视频增强。当然,对于不同视频来说,也能够实现对于不同视频采用不同的最高亮度值和最低亮度值进行视频增强,从而提高视频的清晰度。
[0145]
本申请实施例提供了一种计算机设备,用于执行上述方法,该计算机设备可以实现为终端或者服务器,下面先对终端的结构进行介绍:
[0146]
图9是本申请实施例提供的一种终端的结构示意图。该终端900可以是:智能手机、平板电脑、智能电视、台式计算机,车载计算机以及便携计算机等设备。
[0147]
通常,终端900包括有:一个或多个处理器901和一个或多个存储器902。
[0148]
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0149]
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器901所执行以实现本申请中方法实施例提供的视频增强方法。
[0150]
在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907、定位组件908和电源909中的至少一种。
[0151]
外围设备接口903可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
[0152]
射频电路904用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。
[0153]
显示屏905用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。
[0154]
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。
[0155]
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。
[0156]
定位组件908用于定位终端900的当前地理位置,以实现导航或lbs(location based service,基于位置的服务)。
[0157]
电源909用于为终端900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。
[0158]
在一些实施例中,终端900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器916。
[0159]
加速度传感器911可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。
[0160]
陀螺仪传感器912可以检测终端900的机体方向及转动角度,陀螺仪传感器88可以与加速度传感器911协同采集用户对终端900的3d动作。
[0161]
压力传感器913可以设置在终端900的侧边框和/或显示屏905的下层。当压力传感器913设置在终端900的侧边框时,可以检测用户对终端900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在显示屏905的下层时,由处理器901根据用户对显示屏905的压力操作,实现对ui界面上的可操作性控件进行控制。
[0162]
指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。
[0163]
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制显示屏905的显示亮度。
[0164]
接近传感器916用于采集用户与终端900的正面之间的距离。
[0165]
本领域技术人员可以理解,图9中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0166]
上述计算机设备还可以实现为服务器,下面对服务器的结构进行介绍:
[0167]
图10是本申请实施例提供的一种服务器的结构示意图,该服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(central processing units,cpu)1001和一个或多个的存储器1002,其中,一个或多个存储器1002中存储有至少一条程序代码,至少一条程序代码由一个或多个处理器1001加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器1000还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器1000还可以包括其他用于实现设备功能的部件,在此不做赘述。
[0168]
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由处理器执行以完成上述实施例中的视频增强方法。例如,该计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
[0169]
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机程序代码,处理器执行该计算机程序代码,使得该计算机设备执行上述视频增强方法。
[0170]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来程序代码相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0171]
上述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1