CN110996125B - 一种视频流的生成方法、装置、电子设备及存储介质 - Google Patents
一种视频流的生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110996125B CN110996125B CN201911127915.8A CN201911127915A CN110996125B CN 110996125 B CN110996125 B CN 110996125B CN 201911127915 A CN201911127915 A CN 201911127915A CN 110996125 B CN110996125 B CN 110996125B
- Authority
- CN
- China
- Prior art keywords
- code rate
- determining
- machine learning
- information
- learning model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000010801 machine learning Methods 0.000 claims description 84
- 238000001514 detection method Methods 0.000 claims description 23
- 238000012549 training Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 8
- 241000282414 Homo sapiens Species 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234309—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234363—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4781—Games
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种视频流的生成方法、装置、电子设备及存储介质,所述方法包括:接收客户端传输的用户操作指令和用户网络状态信息;根据用户操作指令生成待处理视频;根据用户网络状态信息确定当前码率;对待处理视频包含的图像进行显著度处理,得到宏块的显著度信息;宏块为图像中包含预设数量的像素点的区域;根据当前码率和宏块的显著度信息确定编码参数;基于当前码率和编码参数对待处理视频包含的图像进行编码,生成待传输至客户端的视频流。如此,可以减少视频发生卡顿的概率,并且提高视频中用户感兴趣区域的质量。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种视频流的生成方法、装置、电子设备及存储介质。
背景技术
传统游戏对用户终端的设备有一定要求,随着游戏大作的不断推出,对客户端的性能要求也不断提高,大多用户受制于高额设备条件,难以随时随地畅玩游戏。
而云游戏则是以云计算为基础,所有游戏内容均在服务器端运行,渲染后的画面经过编码压缩发送给用户。对于终端用户来说,不需要任何处理器与显卡,只需要具备视频解码能力,手机也能随时随地玩3A游戏大作。同时对于游戏运营商来说,不会因为版本更新而引发一系列客户端问题,用户也不会再突然爆发式地访问服务器下载大规模数据,从而减少了维护成本。此外,云游戏更难以使用外挂手段,减少了反外挂开销。然而,目前制约云游戏最大的问题是大数据量与无线网络的带宽受限和波动性。由于所有游戏画面以视频形式下发,传输所需带宽量成倍增加。尤其是对于高清云游戏来说,目前均需要30M以上带宽。而目前游戏用户多使用无线网络进行游戏,难以有稳定的大带宽,一旦网络发生波动,将会发生游戏卡顿,影响体验。
发明内容
本申请实施例提供了一种视频流的生成方法、装置、电子设备及存储介质,可以减少视频发生卡顿的概率,并且提高视频中用户感兴趣区域的质量。
一方面,本申请实施例提供了一种视频流的生成方法,该方法包括:
接收客户端传输的用户操作指令和用户网络状态信息;
根据所述用户操作指令生成待处理视频;
根据所述用户网络状态信息确定当前码率;
对所述待处理视频包含的图像进行显著度处理,得到宏块的显著度信息;所述宏块为所述图像中包含预设数量的像素点的区域;
根据所述当前码率和所述宏块的显著度信息确定编码参数;
基于所述当前码率和所述编码参数对所述待处理视频包含的图像进行编码,生成待传输至所述客户端的视频流。
另一方面提供了一种视频流的生成装置,该装置包括:
接收模块,用于接收客户端传输的用户操作指令和用户网络状态信息;
视频生成模块,用于根据所述用户操作指令生成待处理视频;
码率确定模块,用于根据所述用户网络状态信息确定当前码率;
显著度确定模块,用于对所述待处理视频包含的图像进行显著度处理,得到宏块的显著度信息;所述宏块为所述图像中包含预设数量的像素点的区域;
编码参数确定模块,用于根据所述当前码率和所述宏块的显著度信息确定编码参数;
所述视频生成模块,用于基于所述当前码率和所述编码参数对所述待处理视频包含的图像进行编码,生成待传输至所述客户端的视频流。
另一方面提供了一种电子设备,该电子设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或该指令集由处理器加载并执行以实现如上述的视频流的生成方法。
另一方面提供了一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或该指令集由处理器加载并执行以实现如上述的视频流的生成方法。
本申请实施例提供的视频流的生成方法、装置、电子设备及存储介质,具有如下技术效果:
接收客户端传输的用户操作指令和用户网络状态信息;根据用户操作指令生成待处理视频;根据用户网络状态信息确定当前码率;对待处理视频包含的图像进行显著度处理,得到宏块的显著度信息;宏块为图像中包含预设数量的像素点的区域;根据当前码率和宏块的显著度信息确定编码参数;基于当前码率和编码参数对待处理视频包含的图像进行编码,生成待传输至客户端的视频流。如此,可以减少视频发生卡顿的概率,并且提高视频中用户感兴趣区域的质量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种应用环境的示意图;
图2是本申请实施例提供的一种视频流的生成方法的流程示意图;
图3是本申请实施例提供的一种训练得到码率预测模型的流程示意图;
图4是本申请实施例提供的一种经过显著度检测模型处理后得到图像中每个像素点的显著度的显示图;
图5是本申请实施例提供的一种服务器和客户端的结构和信息传递图;
图6是本申请实施例提供的一种视频流的生成装置的结构示意图;
图7是本申请实施例提供的一种视频流的生成方法的服务器的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于说明本发明实施例中的方法的优势,在本发明实施例的技术方案详述伊始,首先对现有技术的相关内容进行详述:
现有云游戏视频控制多采用基于端到端时延的码率自适应策略:即服务器端不断进行ping包测量端到端延迟,当延迟过高时,则降低游戏的分辨率,例如从1080P降低至720P,以减少传输码率,防止卡顿发生。当延迟稳定降低时,再升高游戏分辨率。这种方式的实质是一种根据网络状况去滞后响应补救的措施。一方面是每次卡顿发生了才降低码率,而当网络恢复后却不能及时提高码率,造成带宽的浪费;另一方面当直接降低码率后,用户所观看的画面质量会明显下降,导致用户体验下降。
另外,还有部分方案在降低码率后再对视频进行修复补偿,通过目标检测出画面中的人物或其他感兴趣目标后,进行画面的增强,如对毛刺、噪点、锯齿、块效应去进行美化修复,以减小码率降低后对用户体验造成的影响。由于人眼的视觉特性只关注画面的部分区域,而自动会忽略画面中的其他部分,例如在一副人物肖像图中,人们会更关注这个人物和其细节,而难以察觉其背景的天空细节等。因此在观看这样的视频中,人的视觉也会自动对人物部分的要求更高,而对天空的质量要求不高。降低码率的视觉增强方案正是利用了人眼的这种特性,使得用户观看体验受损极小的情况下降低传输码率。
然而,现有技术中也存在一些缺点:
第一点:现有的云游戏对带宽需求过大,如果降低码率会导致画面质量严重下降:
由于画面渲染和所有游戏数据均在云端,传输云游戏视频的数据量巨大,对比现在游戏,所需带宽明显提升。而如果带宽受限场景下采用传统方式去主动降低码率,则会导致画面质量不清晰,用户体验下降。
第二点:现有方案没有考虑不同码率对画面质量分配的影响:
当网络波动发生时,现有方案只是单纯降低了码率或对画面去做增强,但是没有考虑在不同的码率和不同类型的游戏下,所需采取的策略应当不同。如当网络质量较好时,可以让感兴趣区域和非感兴趣区域码率差距不大。但当网络极差时,如果仍采用相同策略,则用户只会得到一样模糊无差距的画面。
第三点:现有部分方案虽然可以优化视频效果,但是复杂度过高,引入大量延迟:
部分方案在对画面进行增强时,需要先进行目标检测,再去使用传统图像增强方式去精修,这样的方案复杂度高,会引入数百毫秒以上的延迟用于画面的检测和增强。其余方案则需要对特定游戏进行目标训练,
第四点:现有方案无法提前进行预测,并在卡顿和画面质量做平衡,使得用户的体验较差:
现有方案只根据端到端时延的变化来做码率控制,这是一种基于延迟已经发生,再采取响应的滞后措施,导致用户体验较差;此外,当网络带宽平稳时也不能及时恢复,导致严重浪费带宽的结果。
基于上述缺点,本申请实施例提供一种视频流的生成方法、装置、电子设备和存储介质,用于解决上述的问题。请参阅图1,图1是本申请实施例提供的一种应用环境的示意图,该示意图包括客户端100和服务器110。服务器110可以为客户端110提供视频流,该视频流可以是某个游戏的视频,该游戏可以是联网的普通游戏,还可以是云游戏。该视频流还可以是某个电视剧,电影,新闻视频,体育视频等等的视频。也就是说,该方案可以应用在和视频相关的任何应用场景。下文中将以游戏相关的视频为例进行全文阐述。
应用在游戏相关的场景的实施步骤为:服务器110接收客户端100传输的用户操作指令和用户网络状态信息。该用户操作指令可以基于用户在客户端100上的操作生成,用户网络状态信息可以有客户端100基于实时的网络状态获取。服务器110可以根据用户操作指令生成待处理视频,根据用户网络状态信息确定当前码率。随后,服务器110对待处理视频包含的图像进行显著度处理,得到宏块的显著度信息,其中,宏块为图像中包括预设数量的像素点的区域。服务器110根据当前码率和宏块的显著度信息确定编码参数,并基于当前码率和编码参数对待处理视频包含的图像进行编码,生成待传输至客户端100的视频流。
可选的,客户端100可以是图1所示的计算机终端,比如台式电脑,笔记本电脑、手机、平板电脑,数字助理、智能可穿戴设备等类型的实体设备;其中,智能可穿戴设备可以包括智能手环、智能手表、智能眼镜、智能头盔等。当然,该客户端100并不限于上述具有一定实体的电子设备,其还可以为运行于上述电子设备中的软体,例如,客户端100可以为服务商提供给用户的网页页面或应用。
该客户端100可以包括通过数据总线相连的显示屏、存储设备和处理器。所述显示屏用于待监控设备的虚拟图像以及待监控设备中各个子设备之间的连接关系,该显示屏可以是手机或者平板电脑的触摸屏等。存储设备用于存储拍摄装置的程序代码和数据资料等,该存储设备可以是客户端100的内存,也可以是智能媒体卡(smart media card)、安全数字卡(secure digital card)、快闪存储器卡(flash card)等储存设备。所述处理器可以是单核或多核处理器。
以下介绍本申请一种视频流的生成方法的具体实施例,图2是本申请实施例提供的一种视频流的生成方法的流程示意图,本说明书提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,该方法可以包括:
S201:接收客户端传输的用户操作指令和用户网络状态信息。
本申请实施例中,用户操作指令可以是客户端基于用户在客户端上的操作生成的。具体的,客户端感应用户的操作,将用户的操作和预设操作进行匹配,得到匹配结果,客户端根据该匹配结果生成用户操作指令。
比如客户端为手机时,用户在手机上玩游戏时,可以点击显示屏幕,在显示屏上滑动或者晃动手机等操作,当用户在进行如上操作时,手机可以感应到上述的操作,并将上述的操作和游戏中的预设操作进行匹配,比如点击显示屏幕是指示游戏人物在当前游戏图画上进行跳跃,在显示屏上滑动是指示游戏人物在当前游戏图画上按照滑动方向进行奔跑,晃动手机是指示游戏人物在当前游戏图画上进行左右躲避等等。得到上述的匹配结果后,客户端可以根据该结果生成用户操作指令,以使后续的游戏画面出现服务器返回的用户操作指令对应的反馈画面。
比如客户端为台式电脑时,用户在手机上玩游戏时,可以使用鼠标点击显示屏幕,在显示屏上滑动或者通过按键输入操作。同样的,客户端感应用户的如上述的操作后,可以将用户的操作和游戏的预设操作进行匹配,得到匹配结果,客户端根据该匹配结果生成用户操作指令。
本申请实施例中,用户网络状态信息是由客户端根据自己的网络环境确定的网络状态数据,包括了客户端接收帧率和每帧传输时长等等。其中,每帧传输时长是指服务器将一帧从服务器传输至客户端的时长。接收帧率是指客户端每一秒接收的图像帧的帧数。可选的,客户端还根据自己的网络环境以及运行在客户端的游戏的网络环境确定的用户网络状态信息。
本申请实施例中,客户端可以实时确定用户操作指令和用户网络状态信息,或者隔预设时长(比如0.5秒)确定用户操作指令和用户网络状态信息。可选的,客户端还可以基于获取的用户操作指令获取用户网络状态信息,也就是说,当客户端获取到一个用户操作指令的同时,才去获取当前的用户网络状态信息。具体的实施方式可以按照服务器的硬件资源的应用的操作系统确定。随后,客户端可以将确定的用户操作指令和用户网络状态信息发送至服务器,以便服务器可以根据上述两个信息进行后续的处理步骤。
S203:根据用户操作指令生成待处理视频。
本申请实施例中,服务器接收到用户操作指令和用户网络状态信息后,可以对用户操作指令进行解析,得到相应的游戏逻辑,若该游戏是一种云游戏,所有的内容都会在服务器这端生成,如此,客户端只需要具有解码能力,对接收到的视频流进行解码。基于此,服务器可以根据其游戏逻辑对游戏场景进行渲染,生成待处理视频。
S205:根据用户网络状态信息确定当前码率。
本申请实施例中,由于用户网络信息可以包括客户端接收帧率和每帧传输时长,当服务器得到上述的客户端接收帧率和每帧传输时长,一种可选的实施方式中,服务器可以基于查表的方式确定当前码率。其中,表中包括客户端接收帧率、每帧传输时长和当前码率,不同的客户端接收帧率匹配不同的每帧传输时长可以对应不同的当前码率。该种方式中,表的构建可以基于历史数据或者不断调整的经验数据。
另一种可选的实施方式中,服务器可以基于机器学习模型确定当前码率。机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
服务器可以根据码率预测模型和用户网络状态信息确定当前码率,也就是说,服务器可以将用户网络状态信息输入至训练好的码率预测模型,从该码率预测模型输出端输出当前码率。
图3是本申请实施例提供的一种训练得到码率预测模型的流程示意图,该方法包括:
S301:服务器获取历史时间段内的样本数据集,该样本数据集包括多个历史用户网络状态信息和每个历史用户网络状态信息对应的历史码率。
比如,该样本数据集包括了10000条之前采集的样本数据,每条样本数据包括一个历史网络状态信息和该史网络状态信息对应的历史码率。
本申请实施例中的样本数据集中的样本数据可以存储在某个存储区域,该存储区域可以是一个区块链。其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
当需要提取样本数据对模型进行训练时,将数据从区块链提取出来。
S303:服务器构建预设机器学习模型,将预设机器学习模型确定为当前机器学习模型。
S305:服务器基于当前机器学习模型,对样本数据集中的历史用户网络状态信息进行预测操作,确定该历史用户网络状态信息对应的预测码率。
服务器将样本数据输入当前机器学习模型,从当前机器学习模型的输出端得到每个历史用户网络状态信息对应的预测码率。
S307:服务器基于历史用户网络状态信息对应的预测码率和历史码率集,确定损失值。
本申请实施例中,服务器将每个历史用户网络状态信息对应的的预测码率和其对应的历史码率进行损失计算,得到损失值。
S309:当损失值大于预设阈值时,服务器基于损失值进行反向传播,对当前机器学习模型进行更新以得到更新后的机器学习模型,将更新后的机器学习模型重新确定为当前机器学习模型;重复步骤:基于当前机器学习模型,对样本数据集中的历史用户网络状态信息进行预测操作,确定该历史用户网络状态信息对应的预测码率。
该步骤S309为通过损失值不断调整当前机器学习模型的参数的过程,以得到更新后的机器学习模型,在将更新后的机器学习模型作为新的当前机器学习模型,继续样本数据集进行预测操作,确定历史时间段内的预测码率集……每次得到损失值,服务器都会将该损失值和预设阈值进行对比。
S311:当损失值小于或等于预设阈值时,服务器将当前机器学习模型确定为码率预测模型。
本申请实施例中,服务器仅仅根据用户网络状态信息确定的当前码率可能还不够准确,为了增加得到的当前码率的准确性,在训练码率预测模型的时候,样本数据集还包括历史码率集中每个历史码率对应的历史延时信息和历史帧信息,也就是说,每个样本数据不仅包括历史码率和历史码率对应的历史用户网络状态信息,还包括历史码率对应的历史延时信息和历史帧信息。其中,所述历史延时信息包括服务器到客户端的延时信息,所述历史帧信息包括帧大小信息,帧大小表示的是每帧采样数。
因此,在训练码率预测模型的时候,服务器需要基于所述当前机器学习模型,对所述样本数据集中的历史用户网络状态信息、历史延时信息和历史帧信息进行预测操作,确定所述历史用户网络状态信息、历史延时信息和历史帧信息对应的预测码率。随后,服务器可以基于历史用户网络状态信息、历史延时信息和历史帧信息对应的预测码率和历史码率确定损失值,在通过损失值与预设阈值的对比,决定要不要对当前机器学习模型进行更新,得到更新后的机器学习模型。
如此,训练得到的码率预测模型还带有延时信息和帧信息的特征,因此,一种可选的根据码率预测模型和所述用户网络状态信息确定当前码率的实施方式中,在获取用户网络状态信息后,还需要获得当前延时信息和当前帧信息,以便服务器可以根据码率预测模型、用户网络状态信息、当前延时信息以及当前帧信息确定所述当前码率。其中,当前码率是指当前的单位时间内传输的数据位数。
S207:对待处理视频包含的图像进行显著度处理,得到宏块的显著度信息;宏块为图像中包括预设数量的像素点的区域。
本申请实施例中,一种确定宏块的显著度的方式包括服务器对待处理视频包含的图像进行显著度检测,得到图像中每个像素点的显著度。将图像转换成宏块集合,并根据宏块集合中的每个宏块包括的像素点的显著度确定每个宏块的显著度信息。
一种可选的得到图像中每个像素点的显著度的实施方式中,服务器可以获取待处理视频包含的图像中每个像素点的特征信息。可选的,该图像可以是RGB格式,因此,特征信息可以包括红绿蓝三原色信息。可选的,该图像可以是YUV格式,因此,特征信息可以包括色度信息、明度信息和饱和度信息。
服务器得到每张图像中每个像素的特征信息后,可以根据图像中每个像素点的特征信息和显著度检测模型确定图像中每个像素点的显著度。下面提供一种可选的显著度检测模型的训练方式:服务器获取样本数据集,该样本数据集包括多个像素点的特征信息和每个像素点的特征信息对应的显著度。之后,服务器构建预设机器学习模型,将预设机器学习模型确定为训练得到显著度检测模型的当前机器学习模型,基于当前机器学习模型,对样本数据集中的像素点的特征信息进行预测操作,确定所述像素点的特征信息对应的预测显著度;基于像素点的特征信息对应的预测显著度和显著度,确定损失值。
当损失值大于预设阈值时,基于损失值进行反向传播,对当前机器学习模型进行更新以得到更新后的机器学习模型,将所述更新后的机器学习模型重新确定为所述当前机器学习模型。
重复步骤:基于当前机器学习模型,对所述样本数据集中的像素点的特征信息进行预测操作,确定所述像素点的特征信息对应的预测显著度;
当所述损失值小于或等于所述预设阈值时,将当前机器学习模型确定为所述显著度检测模型。
另一种可选的得到图像中每个像素点的显著度的实施方式中,每个像素点的显著度是该像素点和图像中其他的所有像素点的某个距离的总和,该距离一般使用欧式距离公式得到。
可选的,像素点的显著度一般采用灰度图的形式或者含有灰度信息的mask矩阵表示。这种灰度信息表征了每个像素点的显著度权重值,显著度权重值的范围是在0-255。图4为本申请实施例提供的一种经过显著度检测模型处理后,得到图像中每个像素点的显著度的显示图。该图显示的是一张大象的彩色图经过处理后,得到的带有像素点的显著度的灰度图。
本申请实施例中,图像可以被分为多个宏块,每个宏块包括的像素点的个数可以根据实际的应用场景确定,比如,每个宏块包括16*16=256个像素点,或者每个宏块包括8*8=64的像素点。
可选的,服务器可以将每个宏块中的像素点的显著度值求和,随后求平均得到每个宏块的显著度信息。
可选的,服务器还可以根据每个宏块中的像素点的显著度得到每个宏块的量化参数,其中,量化参数只是表达宏块的显著度信息的一种方式,除此方式之外,还可以使用每个宏块的量化参数偏移值,或者每个宏块的权重大小表示每个宏块的显著度信息。如此,可以调整图像画面的各个区域(宏块)得编码性能。
S209:根据当前码率和宏块的显著度信息确定编码参数。
本申请实施例中,服务器通过步骤S209的方法辅助得到合适的码率分配,为后续得到更好的游戏视频的呈现做准备。
S211:基于当前码率和编码参数对待处理视频包含的图像进行编码,生成待传输至客户端的视频流。
本申请实施例中,服务器可以将编码参数、当前码率和待处理视频包含的图像输入编码器,以使得待处理视频经过处理后得到复合人眼视觉的云游戏视频流。
由于各个宏块的显著度信息是不同的,也就是说各个宏块的编码重要性是分大小的,因此,得到的各个宏块的编码参数是不一致,如此,基于实时更新调整的当前码率结合编码参数对待处理视频进行编码,才可以根据网络状况调节码率和画面中各区域质量的分配,使得用户得到质量更高的视频流。
图5为本申请提供了一种可选的服务器和客户端的结构和信息传递图,包括服务器,客户端和网络信道。其中,客户端包括指令和状态检测模块和解码器,服务器包括游戏程序模块,预处理模块,编码模块和码流处理模块四大模块,其中,游戏程序模块包括游戏逻辑模块和场景渲染模块,预处理模块包括显著度检测模块和显著度处理模块,码流处理模块包括打包封装模块和码率预测模块。
根据图5所示的示意图,其信息传递的具体过程为:客户端指令和状态检测模块检测到用户操作指令和用户网络状态信息,并通过网络信道传输至服务器,服务器的游戏程序模块获取该用户操作指令,对用户操作指令进行解析,得到相应的游戏逻辑,并将游戏逻辑传递至场景渲染模块,使得场景渲染模块根据其游戏逻辑对游戏场景进行渲染,生成待处理视频。
此时,服务器将用户网络状态信息分配给码率预测模块,还将当前延时信息和当前帧信息输入至码率预测模块,从码率预测模块输出端输出当前码率。
游戏程序模块将该待处理视频传输至预处理模块,预处理模块将待处理视频输入显著度检测模块,显著度检测模块对待处理视频包含的图像进行显著度检测,得到图像中每个像素点的显著度,随后将像素点的显著度传输至显著度处理模块,以将图像转换成宏块集合,并根据宏块集合中的每个宏块包括的像素点的显著度确定每个宏块的显著度信息。
随后,显著度处理模块根据当前码率和宏块的显著度信息确定编码参数,并将编码参数输入至编码模块,此时,编码模块还接收到码率预测模块输出的当前码率,并根据编码参数、当前码率对处理视频包含的图像进行编码,生成待传输至客户端的视频流。编码模块将视频流传输至打包封装模块进行打包封装,服务器通过网络信道将视频流的数据包传输至客户端,客户端使用解码器进行解码,播放该视频。
下面通过一些可选的实施例说明本申请方案的应用场景:
举例:PC端云游戏服务
针对PC端的云游戏,对待处理视频进行实时处理,使得视频传输码率更低以减少卡顿发生的概率,同时保证用户关注区域的质量,使得用户的观看视觉效果保持不变。
步骤1:服务器接收用户操作指令并反馈至PC游戏程序端,产生渲染后的待处理视频;
步骤2:服务器对待处理视频包含的图像进行显著度检测,得到图像中每个像素点的显著度;
步骤3:服务器根据宏块集合中的每个宏块包括的像素点的显著度确定每个宏块的显著度信息;
步骤4:服务器根据接收的用户网络状态信息确定当前码率;
步骤5:服务器根据当前码率和宏块的显著度信息确定编码参数;
步骤6:服务器基于当前码率和所述编码参数对待处理视频包含的图像进行编码,生成待传输至所述客户端的视频流;
步骤7:服务器通过下行信道传输该封装好的视频流至PC客户端。
举例:手机端云游戏服务
针对手机端的云游戏,对生成视频流进行实时转码操作,使得视频传输码率更低以减少卡顿发生的概率,同时用户的观看视觉效果保持不变。
步骤1:服务器将用户操作指令反馈至手机游戏模拟器,模拟器通过内嵌编码器输出待处理视频;
步骤2:服务器将待处理视频包含的图像转换为yuv格式,输入至显著度检测模块;
步骤3:显著度检测模块处理后输出含有像素点显著度信息的灰度图;
步骤4:显著度检测模块将显著度灰度图输入至转换模块,结合码率自适应模块输出的当前码率,输出各个宏块的显著度信息;
步骤5:服务器根据当前码率和宏块的显著度信息确定编码参数;
步骤6:服务器基于当前码率和所述编码参数对待处理视频包含的图像进行编码,生成待传输至所述客户端的视频流;
步骤7:服务器通过下行信道传输该封装好的视频流至手机客户端。
综上,本申请实施例中,当无线网络波动时,可以根据网络状况调节码率和画面中各区域质量的分配,在减少码率降低卡顿的同时,提升用户最感兴趣区域的质量,保证用户观看体验。
本申请实施例还提供了一种视频流的生成装置,图6是本申请实施例提供的一种视频流的生成装置的结构示意图,如图6所示,该装置包括:
接收模块601用于接收客户端传输的用户操作指令和用户网络状态信息;
视频生成模块602用于根据用户操作指令生成待处理视频;
码率确定模块603用于根据用户网络状态信息确定当前码率;
显著度确定模块604用于对待处理视频包含的图像进行显著度处理,得到宏块的显著度信息;宏块为图像中包含预设数量的像素点的区域;
编码参数确定模块605用于根据当前码率和宏块的显著度信息确定编码参数;
视频生成模块601用于基于当前码率和编码参数对待处理视频包含的图像进行编码,生成待传输至客户端的视频流。
在一种可选的实施方式中,该装置还包括:
显著度确定模块用于对待处理视频包含的图像进行显著度检测,得到图像中每个像素点的显著度;
将图像转换成宏块集合;
根据宏块集合中的每个宏块包括的像素点的显著度确定每个宏块的显著度信息。
在一种可选的实施方式中,该装置还包括:
显著度确定模块用于获取图像中每个像素点的特征信息;
根据图像中每个像素点的特征信息和显著度检测模型确定图像中每个像素点的显著度;
其中,模型训练模块用于:
获取样本数据集,样本数据集包括多个像素点的特征信息和每个像素点的特征信息对应的显著度;
构建预设机器学习模型,将预设机器学习模型确定为当前机器学习模型;
基于当前机器学习模型,对样本数据集中的像素点的特征信息进行预测操作,确定像素点的特征信息对应的预测显著度;
基于像素点的特征信息对应的预测显著度和显著度,确定损失值;
当损失值大于预设阈值时,基于损失值进行反向传播,对当前机器学习模型进行更新以得到更新后的机器学习模型,将更新后的机器学习模型重新确定为当前机器学习模型;重复步骤:基于当前机器学习模型,对样本数据集中的像素点的特征信息进行预测操作,确定像素点的特征信息对应的预测显著度;
当损失值小于或等于预设阈值时,将当前机器学习模型确定为显著度检测模型。
在一种可选的实施方式中,该装置还包括:
码率确定模块用于根据码率预测模型和用户网络状态信息确定当前码率。
模型训练模块用于获取历史时间段内的样本数据集,样本数据集包括历史码率集和历史码率集中每个历史码率对应的历史用户网络状态信息;
构建预设机器学习模型,将预设机器学习模型确定为当前机器学习模型;
基于当前机器学习模型,对样本数据集进行预测操作,确定历史时间段内的预测码率集;
基于历史时间段内的预测码率集和历史码率集,确定损失值;
当损失值大于预设阈值时,基于损失值进行反向传播,对当前机器学习模型进行更新以得到更新后的机器学习模型,将更新后的机器学习模型重新确定为当前机器学习模型;重复步骤:基于当前机器学习模型,对样本数据集进行预测操作,确定历史时间段内的预测码率集;
当损失值小于或等于预设阈值时,将当前机器学习模型确定为码率预测模型。
在一种可选的实施方式中,该装置还包括:
码率确定模块用于获取当前延时信息和当前帧信息;
根据码率预测模型、用户网络状态信息、当前延时信息以及当前帧信息确定当前码率。
本申请实施例中的装置与方法实施例基于同样地申请构思。
本申请实施例所提供的方法实施例可以在计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图7是本申请实施例提供的一种视频流的生成方法的服务器的硬件结构框图。如图7所示,该服务器700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)710(处理器710可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器730,一个或一个以上存储应用程序723或数据722的存储介质720(例如一个或一个以上海量存储设备)。其中,存储器730和存储介质720可以是短暂存储或持久存储。存储在存储介质720的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器710可以设置为与存储介质720通信,在服务器700上执行存储介质720中的一系列指令操作。服务器700还可以包括一个或一个以上电源760,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口740,和/或,一个或一个以上操作系统721,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口740可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器700的通信供应商提供的无线网络。在一个实例中,输入输出接口740包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口740可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器700还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。
本申请的实施例还提供了一种存储介质,存储介质可设置于服务器之中以保存用于实现方法实施例中一种视频流的生成方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述视频流的生成方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
由上述本申请提供的视频流的生成方法、装置、电子设备及存储介质的实施例可见,本申请中接收客户端传输的用户操作指令和用户网络状态信息;根据用户操作指令生成待处理视频;根据用户网络状态信息确定当前码率;对待处理视频包含的图像进行显著度处理,得到宏块的显著度信息;宏块为图像中包含预设数量的像素点的区域;根据当前码率和宏块的显著度信息确定编码参数;基于当前码率和编码参数对待处理视频包含的图像进行编码,生成待传输至客户端的视频流。如此,可以减少视频发生卡顿的概率,并且提高视频中用户感兴趣区域的质量。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (7)
1.一种视频流的生成方法,其特征在于,所述方法包括:
接收客户端传输的用户操作指令;
基于所述用户操作指令获取用户网络状态信息;
根据所述用户操作指令生成待处理视频;
根据所述用户网络状态信息确定当前码率;
对所述待处理视频包含的图像进行显著度处理,得到宏块的显著度信息;所述宏块为所述图像中包含预设数量的像素点的区域;
根据所述当前码率和所述宏块的显著度信息确定编码参数;
基于所述当前码率和所述编码参数对所述待处理视频包含的图像进行编码,生成待传输至所述客户端的视频流;
所述根据所述用户网络状态信息确定当前码率,包括:
根据码率预测模型和所述用户网络状态信息确定当前码率;
所述码率预测模型的训练方法,包括:
获取历史时间段内的样本数据集,所述样本数据集包括多个历史用户网络状态信息和每个历史用户网络状态信息对应的历史码率;
构建预设机器学习模型,将所述预设机器学习模型确定为当前机器学习模型;
基于所述当前机器学习模型,对所述样本数据集中的历史用户网络状态信息进行预测操作,确定所述历史用户网络状态信息对应的预测码率;
基于所述历史用户网络状态信息对应的预测码率和历史码率集,确定损失值;
当所述损失值大于预设阈值时,基于所述损失值进行反向传播,对所述当前机器学习模型进行更新以得到更新后的机器学习模型,将所述更新后的机器学习模型重新确定为所述当前机器学习模型;重复步骤:基于所述当前机器学习模型,对所述样本数据集中的历史用户网络状态信息进行预测操作,确定所述历史用户网络状态信息对应的预测码率;
当所述损失值小于或等于所述预设阈值时,将所述当前机器学习模型确定为所述码率预测模型;
所述样本数据集还包括所述历史码率集中每个历史码率对应的历史延时信息和历史帧信息;
所述根据码率预测模型和所述用户网络状态信息确定当前码率,包括:
获取当前延时信息和当前帧信息;
根据所述码率预测模型、所述用户网络状态信息、所述当前延时信息以及所述当前帧信息确定所述当前码率。
2.根据权利要求1所述的方法,其特征在于,
所述对所述待处理视频包含的图像进行显著度处理,得到宏块的显著度信息,包括:
对所述待处理视频包含的图像进行显著度检测,得到所述图像中每个像素点的显著度;
将所述图像转换成宏块集合;
根据所述宏块集合中的每个宏块包括的像素点的显著度确定所述每个宏块的显著度信息。
3.根据权利要求2所述的方法,其特征在于,所述对所述待处理视频包含的图像进行显著度检测,得到所述图像中每个像素点的显著度,包括:
获取所述图像中每个像素点的特征信息;
根据所述图像中每个像素点的特征信息和显著度检测模型确定所述图像中每个像素点的显著度;
其中,所述显著度检测模型的训练方法包括:
获取样本数据集,所述样本数据集包括多个像素点的特征信息和每个像素点的特征信息对应的显著度;
构建预设机器学习模型,将所述预设机器学习模型确定为当前机器学习模型;
基于所述当前机器学习模型,对所述样本数据集中的像素点的特征信息进行预测操作,确定所述像素点的特征信息对应的预测显著度;
基于所述像素点的特征信息对应的预测显著度和显著度,确定损失值;
当所述损失值大于预设阈值时,基于所述损失值进行反向传播,对所述当前机器学习模型进行更新以得到更新后的机器学习模型,将所述更新后的机器学习模型重新确定为所述当前机器学习模型;重复步骤:基于所述当前机器学习模型,对所述样本数据集中的像素点的特征信息进行预测操作,确定所述像素点的特征信息对应的预测显著度;
当所述损失值小于或等于所述预设阈值时,将所述当前机器学习模型确定为所述显著度检测模型。
4.一种视频流的生成装置,其特征在于,所述装置包括:
接收模块,用于接收客户端传输的用户操作指令和用户网络状态信息;
视频生成模块,用于根据所述用户操作指令生成待处理视频;
码率确定模块,用于获取当前延时信息和当前帧信息;根据码率预测模型、所述用户网络状态信息、所述当前延时信息以及所述当前帧信息确定所述当前码率;
模型训练模块,用于获取历史时间段内的样本数据集,所述样本数据集包括多个历史用户网络状态信息和每个历史用户网络状态信息对应的历史码率;构建预设机器学习模型,将所述预设机器学习模型确定为当前机器学习模型;基于所述当前机器学习模型,对所述样本数据集中的历史用户网络状态信息进行预测操作,确定所述历史用户网络状态信息对应的预测码率;基于所述历史用户网络状态信息对应的预测码率和历史码率集,确定损失值;当所述损失值大于预设阈值时,基于所述损失值进行反向传播,对所述当前机器学习模型进行更新以得到更新后的机器学习模型,将所述更新后的机器学习模型重新确定为所述当前机器学习模型;重复步骤:基于所述当前机器学习模型,对所述样本数据集中的历史用户网络状态信息进行预测操作,确定所述历史用户网络状态信息对应的预测码率;当所述损失值小于或等于所述预设阈值时,将所述当前机器学习模型确定为所述码率预测模型;所述样本数据集还包括所述历史码率集中每个历史码率对应的历史延时信息和历史帧信息;
显著度确定模块,用于对所述待处理视频包含的图像进行显著度处理,得到宏块的显著度信息;所述宏块为所述图像中包含预设数量的像素点的区域;
编码参数确定模块,用于根据所述当前码率和所述宏块的显著度信息确定编码参数;
所述视频生成模块,用于基于所述当前码率和所述编码参数对所述待处理视频包含的图像进行编码,生成待传输至所述客户端的视频流。
5.根据权利要求4所述的装置,其特征在于,
所述显著度确定模块,用于对所述待处理视频包含的图像进行显著度检测,得到所述图像中每个像素点的显著度;将所述图像转换成宏块集合;根据所述宏块集合中的每个宏块包括的像素点的显著度确定所述每个宏块的显著度信息。
6.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-3任一所述的视频流的生成方法。
7.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1-3任一所述的视频流的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911127915.8A CN110996125B (zh) | 2019-11-18 | 2019-11-18 | 一种视频流的生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911127915.8A CN110996125B (zh) | 2019-11-18 | 2019-11-18 | 一种视频流的生成方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110996125A CN110996125A (zh) | 2020-04-10 |
CN110996125B true CN110996125B (zh) | 2021-08-17 |
Family
ID=70084831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911127915.8A Active CN110996125B (zh) | 2019-11-18 | 2019-11-18 | 一种视频流的生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110996125B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113573062B (zh) * | 2020-04-29 | 2023-12-29 | 华为技术有限公司 | 流量整形方法、装置与电子设备 |
CN111617466B (zh) * | 2020-05-12 | 2023-04-28 | 咪咕文化科技有限公司 | 编码格式的确定方法、装置及云游戏的实现方法 |
CN113852818A (zh) * | 2020-06-28 | 2021-12-28 | 上海交通大学 | 一种自适应码率传输的服务器及码率确定方法 |
CN113518250B (zh) * | 2020-08-07 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 一种多媒体数据处理方法、装置、设备及可读存储介质 |
CN112312135B (zh) * | 2020-10-23 | 2022-07-15 | 广州市百果园网络科技有限公司 | 一种视频发布方法、装置、计算机设备及存储介质 |
CN113115060B (zh) * | 2021-04-07 | 2022-10-25 | 中国工商银行股份有限公司 | 视频传输方法、装置及系统 |
CN113724716B (zh) * | 2021-09-30 | 2024-02-23 | 北京达佳互联信息技术有限公司 | 语音处理方法和语音处理装置 |
EP4395329A1 (en) | 2021-11-30 | 2024-07-03 | Samsung Electronics Co., Ltd. | Method for allowing streaming of video content between server and electronic device, and server and electronic device for streaming video content |
CN115002513B (zh) * | 2022-05-25 | 2023-10-20 | 咪咕文化科技有限公司 | 音视频调度方法、装置、电子设备及计算机可读存储介质 |
CN115396732B (zh) * | 2022-08-11 | 2024-02-02 | 深圳海翼智新科技有限公司 | 音视频数据包的传输方法、装置、电子设备及存储介质 |
CN117640920A (zh) * | 2022-08-25 | 2024-03-01 | 中兴通讯股份有限公司 | 一种视频决策码率确定方法、装置、存储介质及电子装置 |
CN116506665A (zh) * | 2023-06-27 | 2023-07-28 | 北京蔚领时代科技有限公司 | 自适应码率控制的vr串流方法、系统、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164281A (zh) * | 2011-03-30 | 2011-08-24 | 武汉大学 | 一种基于视觉显著度模型的视频编码码率控制方法 |
CN106331750A (zh) * | 2016-10-08 | 2017-01-11 | 中山大学 | 一种基于感兴趣区域的云游戏平台自适应带宽优化方法 |
CN108079578A (zh) * | 2017-10-26 | 2018-05-29 | 咪咕互动娱乐有限公司 | 一种基于云游戏的码率调整方法、装置及存储介质 |
CN110087081A (zh) * | 2019-05-05 | 2019-08-02 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、服务器及存储介质 |
CN110324621A (zh) * | 2019-07-04 | 2019-10-11 | 北京达佳互联信息技术有限公司 | 视频编码方法、装置、电子设备和存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9723319B1 (en) * | 2009-06-01 | 2017-08-01 | Sony Interactive Entertainment America Llc | Differentiation for achieving buffered decoding and bufferless decoding |
US10242462B2 (en) * | 2013-04-02 | 2019-03-26 | Nvidia Corporation | Rate control bit allocation for video streaming based on an attention area of a gamer |
CN103260053B (zh) * | 2013-04-15 | 2016-12-28 | 威盛电子股份有限公司 | 动态调整多媒体数据码率的系统、媒体播放装置及方法 |
EP2897337B1 (en) * | 2014-01-21 | 2022-01-05 | Alcatel Lucent | Improved playback control device and method for streaming media content |
CN105208390B (zh) * | 2014-06-30 | 2018-07-20 | 杭州海康威视数字技术股份有限公司 | 视频编码的码率控制方法及其系统 |
CN108063961B (zh) * | 2017-12-22 | 2020-07-31 | 深圳市云网拜特科技有限公司 | 一种基于强化学习的自适应码率视频传输方法以及系统 |
CN109040801B (zh) * | 2018-07-19 | 2019-07-09 | 北京达佳互联信息技术有限公司 | 媒体码率自适应方法、装置、计算机设备及存储介质 |
-
2019
- 2019-11-18 CN CN201911127915.8A patent/CN110996125B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164281A (zh) * | 2011-03-30 | 2011-08-24 | 武汉大学 | 一种基于视觉显著度模型的视频编码码率控制方法 |
CN106331750A (zh) * | 2016-10-08 | 2017-01-11 | 中山大学 | 一种基于感兴趣区域的云游戏平台自适应带宽优化方法 |
CN108079578A (zh) * | 2017-10-26 | 2018-05-29 | 咪咕互动娱乐有限公司 | 一种基于云游戏的码率调整方法、装置及存储介质 |
CN110087081A (zh) * | 2019-05-05 | 2019-08-02 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、服务器及存储介质 |
CN110324621A (zh) * | 2019-07-04 | 2019-10-11 | 北京达佳互联信息技术有限公司 | 视频编码方法、装置、电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
改进的 Fast-CNN 模型在绝缘子特征检测中的研究;纪超;黄新波;曹雯;朱永灿;张烨;《计算机与现代化》;20190430(第4期);第59-62页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110996125A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110996125B (zh) | 一种视频流的生成方法、装置、电子设备及存储介质 | |
CN111479112B (zh) | 一种视频编码方法、装置、设备和存储介质 | |
He et al. | Rubiks: Practical 360-degree streaming for smartphones | |
CN110139113B (zh) | 视频资源的传输参数分发方法及装置 | |
CN110049324B (zh) | 视频编码方法、系统、设备及计算机可读存储介质 | |
Chen et al. | T-gaming: A cost-efficient cloud gaming system at scale | |
EP4373086A1 (en) | Image processing method and apparatus, medium, and electronic device | |
CN113068052A (zh) | 确定直播间刷量的方法、直播方法以及数据处理方法 | |
KR20090084904A (ko) | 미디어 데이터의 최적화된 컨텐츠-기반 및 로열티-기반 인코딩 및 분배 | |
CN107027030B (zh) | 一种码率分配方法及其设备 | |
WO2022000298A1 (en) | Reinforcement learning based rate control | |
US8255461B1 (en) | Efficient transmission of changing images using image caching | |
CN106331750A (zh) | 一种基于感兴趣区域的云游戏平台自适应带宽优化方法 | |
CN114363703B (zh) | 视频处理方法、装置及系统 | |
Micó-Enguídanos et al. | Per-title and per-segment CRF estimation using DNNs for quality-based video coding | |
CN104469400B (zh) | 一种基于rfb协议的图像数据压缩方法 | |
CN114827617B (zh) | 一种基于感知模型的视频编解码方法及系统 | |
CN114945097B (zh) | 视频流处理方法及装置 | |
CN116129534A (zh) | 一种图像活体检测方法、装置、存储介质及电子设备 | |
Liu et al. | HDRC: a subjective quality assessment database for compressed high dynamic range image | |
CN112040235B (zh) | 视频资源的编码方法和装置,视频资源的解码方法和装置 | |
Zhang et al. | Feature fusion quality assessment model for DASH video streaming | |
US9467644B2 (en) | Video processing system, video processing method, and program | |
CN114567778B (zh) | 一种视频编码方法及系统 | |
Wang et al. | Face distortion recovery based on online learning database for conversational video |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40022074 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |