CN112104879B - 一种视频编码方法、装置、电子设备及存储介质 - Google Patents

一种视频编码方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112104879B
CN112104879B CN202011269523.8A CN202011269523A CN112104879B CN 112104879 B CN112104879 B CN 112104879B CN 202011269523 A CN202011269523 A CN 202011269523A CN 112104879 B CN112104879 B CN 112104879B
Authority
CN
China
Prior art keywords
video
playing
information
environment
target
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
Application number
CN202011269523.8A
Other languages
English (en)
Other versions
CN112104879A (zh
Inventor
李志成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011269523.8A priority Critical patent/CN112104879B/zh
Publication of CN112104879A publication Critical patent/CN112104879A/zh
Application granted granted Critical
Publication of CN112104879B publication Critical patent/CN112104879B/zh
Priority to PCT/CN2021/128969 priority patent/WO2022100522A1/zh
Priority to EP21891048.7A priority patent/EP4192015A4/en
Priority to US17/963,829 priority patent/US11909984B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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/23439Processing 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 for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4516Management of client data or end-user data involving client characteristics, e.g. Set-Top-Box type, software version or amount of memory available

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提供了一种视频编码方法、装置、电子设备及存储介质,方法包括:基于视频播放终端的网络带宽环境,确定网络带宽信息;确定视频播放终端的解码算力信息;获取视频播放环境中的播放缓存池的容量配置信息;基于网络带宽信息、解码算力信息以及播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与目标视频的播放环境相匹配的视频编码策略;通过所确定的视频编码策略对目标视频进行编码,由此,能够利用网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行灵活地调整,减少由于网络环境的变化和终端解码能力的不足所造成的视频播放卡顿,提升用户的使用体验。

Description

一种视频编码方法、装置、电子设备及存储介质
技术领域
本发明涉及视频编码技术,尤其涉及一种视频编码方法、装置、电子设备及存储介质。
背景技术
随着相关技术中云游戏的发展,部署在云服务器中云游戏数量越来越多,但是云游戏的编码和传输并没有根据用户网络和终端解码能力自适地应动态调整,这样导致一些用户网络不稳定或解码算力有限的用户在运行云游戏时就会频繁卡顿、响应慢体验比较差。
发明内容
有鉴于此,本发明实施例提供一种视频编码方法、装置、电子设备及存储介质,能够利用网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与目标视频的播放环境相匹配的视频编码策略,减少由于网络环境的变化和终端解码能力的不足所造成的视频播放卡顿,提升用户的使用体验。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种视频编码方法,包括:
基于视频播放终端的网络带宽环境,确定网络带宽信息;
确定所述视频播放终端的解码算力信息;
获取视频播放环境中的播放缓存池的容量配置信息;
基于所述网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与目标视频的播放环境相匹配的视频编码策略;
通过所确定的视频编码策略对所述目标视频进行编码。
本发明实施例还提供了一种视频编码装置,包括:
信息处理模块,用于基于视频播放终端的网络带宽环境,确定网络带宽信息;
所述信息处理模块,用于确定所述视频播放终端的解码算力信息;
所述信息处理模块,用于获取视频播放环境中的播放缓存池的容量配置信息;
所述信息处理模块,用于基于所述网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与目标视频的播放环境相匹配的视频编码策略;
信息编码模块,用于通过所确定的视频编码策略对所述目标视频进行编码。
上述方案中,
所述信息处理模块,用于获取所述视频播放终端的硬件类型信息;
所述信息处理模块,用于基于所述视频播放终端的硬件类型信息,确定所述视频播放终端的配置信息;
所述信息处理模块,用于基于所述视频播放终端的配置信息,确定所述视频播放终端的解码算力信息;
所述信息处理模块,用于侦测所述视频播放终端的实时负载信息;
所述信息处理模块,用于基于所述视频播放终端的实时负载信息,确定所述视频播放终端的解码算力信息。
上述方案中,
所述信息处理模块,用于侦测所述播放缓存池的实时数据帧队列长度;
所述信息处理模块,用于基于所述播放缓存池的实时数据帧队列长度与长度阈值的比较结果,确定所述视频播放环境中的播放缓存池的容量配置信息。
上述方案中,
所述信息处理模块,用于当所述视频播放终端的分辨率低于第一分辨率,并且所述网络带宽信息表征视频播放终端的网络带宽环境不稳定时,确定与目标视频的播放环境相匹配的视频编码策略为降低帧率编码;
所述信息处理模块,用于当所述视频播放终端的分辨率达到第一分辨率,并且所述网络带宽信息表征视频播放终端的网络带宽环境不稳定时,确定与目标视频的播放环境相匹配的视频编码策略为降低视频码率编码。
上述方案中,
所述信息处理模块,用于当确定与目标视频的播放环境相匹配的视频编码策略为降低视频码率编码时,对目标视频的播放流畅度进行检测;
所述信息处理模块,用于当检测到所述目标视频的播放出现卡顿时,确定与目标视频的播放环境相匹配的视频编码策略为同时降低帧率与视频码率编码。
上述方案中,
所述信息处理模块,用于当确定与目标视频的播放环境相匹配的视频编码策略为降低视频码率编码时,获取目标视频中的第一图像帧和第二图像帧,其中,所述第一图像帧和所述第二图像帧为所述目标视频播放过程中显示画面对应的图像帧;
所述信息处理模块,用于获取所述第一图像帧和所述第二图像帧的差异图像;
所述信息处理模块,用于将所述差异图像转换为相匹配的灰度图像,并确定所述灰度图像所包括的不同像素点;
所述信息处理模块,用于根据所述灰度图像中不同像素点的灰度值,对目标视频的播放流畅度进行检测。
上述方案中,
所述信息处理模块,用于基于所述解码算力信息,确定所述视频播放终端的解码算力解码耗时延时参数;
所述信息处理模块,用于基于所述解码算力解码耗时延时参数和每秒传输帧数阈值,确定相匹配的目标帧率;
所述信息处理模块,用于基于所述目标帧率确定与目标视频的播放环境相匹配的视频编码策略。
本发明实施例还提供了一种电子设备,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于运行所述存储器存储的可执行指令时,实现前序的视频编码方法。
本发明实施例还提供了一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现前序的视频编码方法。
本发明实施例具有以下有益效果:
本发明实施例通过基于视频播放终端的网络带宽环境,确定网络带宽信息;
确定所述视频播放终端的解码算力信息;获取视频播放环境中的播放缓存池的容量配置信息;基于所述网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与目标视频的播放环境相匹配的视频编码策略;通过所确定的视频编码策略对所述目标视频进行编码,由此,能够利用网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与目标视频的播放环境相匹配的视频编码策略,减少由于网络环境的变化和终端解码能力的不足所造成的视频播放卡顿,提升用户的使用体验。
附图说明
图1是本发明实施例提供的一种视频编码方法的使用环境示意图;
图2为本发明实施例提供的视频编码装置的组成结构示意图;
图3为本发明实施例中视频编码显示的处理方法示意图;
图4为本发明实施例提供的视频编码方法一个可选的流程示意图;
图5为本发明实施例提供的视频编码方法的使用环境示意图;
图6为本发明实施例提供的视频编码方法的使用环境示意图;
图7A为本发明实施例提供的视频编码方法的使用环境示意图;
图7B为本发明实施例提供的视频编码方法的使用环境示意图;
图8为本发明实施例提供的视频编码方法的使用环境示意图;
图9为本发明实施例视频编码方法的前端显示示意图;
图10为本发明实施例提供的视频编码方法一个可选的流程示意图;
图11为本发明实施例视频编码方法的前端显示示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解, “一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)视频编码(Video Transcoding),是指将已经压缩编码的视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。
2)客户端,终端中实现特定功能的载体,例如移动客户端(APP)是移动终端中特定功能的载体,例如执行线上直播(视频推流)的功能或者是在线视频的播放功能。
3)响应于:用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
4)虚拟环境:是应用程序在终端上运行时显示(或提供)的虚拟环境。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的三维环境,还可以是纯虚构的三维环境。虚拟环境可以是二维虚拟环境、2.5维虚拟环境和三维虚拟环境中的任意一种,下述实施例以虚拟环境是三维虚拟环境来举例说明,但对此不加以限定。可选地,该虚拟环境还用于至少两个虚拟对象之间的虚拟环境对战。可选地,该虚拟环境还用于至少两个虚拟对象之间使用虚拟枪械进行对战。可选地,该虚拟环境还用于在目标区域范围内,至少两个虚拟对象之间使用虚拟枪械进行对战,该目标区域范围会随虚拟环境中的时间推移而不断变小。
5)云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
6)云游戏:是指游戏本身运行在云端服务器设备中,将云端设备渲染后的游戏画面编码后,通过网络传输至用户终端,由用户终端对编码文件进行解码后渲染至显示屏进行显示的游戏,从而,用户无需在本地安装游戏,而仅需要建立与云端的通信网络连接便能完成游戏交互过程。
7)每秒传输帧数FPS:(Frames Per Second),FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量。每秒钟帧数越多,所显示的动作就会越流畅。通常,要避免动作不流畅的最低是30FPS。
下面对本申请所提供的视频编码方法的使用环境进行说明,参考图1,图1为本发明实施例提供的视频编码方法的使用场景示意图,参考图1,终端(包括终端10-1和终端10-2)上设置有运行云游戏的客户端,用户通过所设置的云游戏软件客户端可以获得云服务器所存储的游戏内容;终端通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输,其中,本发明所提供的视频编码方法可以作为云服务的形式服务可类型的客户(封装于专业游戏终端或者封装于不同的移动电子设备中),本申请不做具体限制,其中,游戏本身运行在云端服务器设备中,将云端设备渲染后的游戏画面编码后,通过网络传输至用户终端,由用户终端对编码文件进行解码后渲染至显示屏进行显示的游戏,从而,用户无需在本地安装游戏,而仅需要建立与云端的通信网络连接便能完成游戏交互过程。云游戏的组织架构中包括终端和云端服务器,其中,终端用于接收用户对游戏过程的控制操作,并将控制操作对应的控制指令发送至云端服务器,云端服务器用于对游戏进程进行控制,并将游戏过程中的视频流发送至终端进行播放。也即在云游戏的组织架构中,终端主要负责在游戏过程中接收对应服务端的游戏视频和游戏音频进行渲染与播放,并把游戏用户在终端侧的操作(包括但不限于游戏用户通过鼠标、键盘、操作手柄、语音指令、触摸指令等方式实现的操作),通过和服务端连接的信令通道发送给服务端,服务端把这些操作信息发送给相匹配的鼠标驱动进程、声卡驱动进程以及键盘驱动进程,从而实现对云端游戏的控制,具体来说,云端服务器的处理内容包括:1)云端游戏的游戏进程运行中的计运算以及游戏渲染、画面采集编码、声卡声音采集编码,并将经过编码处理的视频信息和音频信息通过流媒体的形式发送给终端;2)接收终端的操作指令,并将操作指令发送至相对应的鼠标驱动进程、声卡驱动进程以及键盘驱动进程,从而实现对云端游戏的控制。
下面对本发明实施例的视频编码装置的结构做详细说明,视频编码装置可以各种形式来实施,如带有视频编码装置处理功能的专用终端,也可以为设置有视频编码装置处理功能的电子设备(手机、或平板电脑),例如前序图1中的终端10-1或者终端10-2。图2为本发明实施例提供的视频编码装置的组成结构示意图,可以理解,图2仅仅示出了视频编码装置的示例性结构而非全部结构,根据需要可以实施图2示出的部分结构或全部结构。
本发明实施例提供的视频编码装置包括:至少一个处理器201、存储器202、用户接口203和至少一个网络接口204。视频编码装置中的各个组件通过总线***205耦合在一起。可以理解,总线***205用于实现这些组件之间的连接通信。总线***205除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线***205。
其中,用户接口203可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
可以理解,存储器202可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。本发明实施例中的存储器202能够存储数据以支持终端(如10-1)的操作。这些数据的示例包括:用于在终端(如10-1)上操作的任何计算机程序,如操作***和应用程序。其中,操作***包含各种***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序。
在一些实施例中,本发明实施例提供的视频编码装置可以采用软硬件结合的方式实现,作为示例,本发明实施例提供的视频编码装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的视频编码方法。例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑引擎器件(PLD,Programmable Logic Device)、复杂可编程逻辑引擎器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
作为本发明实施例提供的视频编码装置采用软硬件结合实施的示例,本发明实施例所提供的视频编码装置可以直接体现为由处理器201执行的软件模块组合,软件模块可以位于存储介质中,存储介质位于存储器202,处理器201读取存储器202中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器201以及连接到总线205的其他组件)完成本发明实施例提供的视频编码方法。
作为示例,处理器201可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑引擎器件、分立门或者晶体管逻辑引擎器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
作为本发明实施例提供的视频编码装置采用硬件实施的示例,本发明实施例所提供的装置可以直接采用硬件译码处理器形式的处理器201来执行完成,例如,被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑引擎器件(PLD,Programmable Logic Device)、复杂可编程逻辑引擎器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件执行实现本发明实施例提供的视频编码方法。
本发明实施例中的存储器202用于存储各种类型的数据以支持视频编码装置的操作。这些数据的示例包括:用于在视频编码装置上操作的任何可执行指令,如可执行指令,实现本发明实施例的从视频编码方法的程序可以包含在可执行指令中。
在另一些实施例中,本发明实施例提供的视频编码装置可以采用软件方式实现,图2示出了存储在存储器202中的视频编码装置,其可以是程序和插件等形式的软件,并包括一系列的模块,作为存储器202中存储的程序的示例,可以包括视频编码装置,视频编码装置中包括以下的软件模块信息处理模块2081和信息编码模块2082。当视频编码装置中的软件模块被处理器201读取到RAM中并执行时,将实现本发明实施例提供的视频编码方法,其中,视频编码装置中各个软件模块的功能,包括:
信息处理模块2081,用于基于视频播放终端的网络带宽环境,确定网络带宽信息;
所述信息处理模块2081,用于确定所述视频播放终端的解码算力信息;
所述信息处理模块2081,用于获取视频播放环境中的播放缓存池的容量配置信息;
所述信息处理模块2081,用于基于所述网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与目标视频的播放环境相匹配的视频编码策略;
信息编码模块2082,用于通过所确定的视频编码策略对所述目标视频进行编码。
根据图2所示的电子设备,在本申请的一个方面中,本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述视频编码方法的各种可选实现方式中所提供的不同实施例及实施例的组合。
参考图3,图3为本发明实施例中视频编码显示的处理方法示意图,视频编码过程中,云游戏和桌面采集编码方案可以采集游戏画面然后编码、传输给用户,桌面采集帧率和游戏帧率同步,以GPU渲染3D图像为例,包括1)顶点处理:这阶段GPU读取描述3D图形外观的顶点数据并根据顶点数据确定3D图形的形状及位置关系,建立起3D图形的骨架。其中,以应用于不同的游戏环境包括但不限虚拟现实应用程序、三维地图程序、军事仿真程序、第一人称射击游戏(FPS First-person shooting game)、多人在线战术竞技游戏 (MOBAMultiplayer Online Battle Arena Games)为例,最终在用户界面(UI User Interface)上呈现出三维虚拟环境中的3D图形的骨架,其中,描述3D图形外观的顶点数据可以通过纹理坐标集合中的顶点的纹理坐标实现,具体来说,纹理坐标集合中的顶点的纹理坐标之间可以形成相应的纹理坐标线段,如果所有的纹理坐标顶点之间的最短路径都经过了某个节点,那么就认为这个节点作为Betweenness Centrality 中作为骨架的根节点,由此,可以建立起3D图形的骨架。
2)光栅化计算:将顶点数据转换为片元,其中显示器实际显示的图像是由像素组成的,将顶点处理阶段所形成的顶点数据通过转换算法转换到相应的像素点,实现把一个矢量图形转换为一系列像素点的过程就称为光栅化。例如,通过斜线段所表示的3D图形的骨架的顶点数据通过光栅化计算终被转化成阶梯状的连续像素点。
3)纹理帖图:3D图形的骨架的顶点数据生成阶段仅仅生成了只构成了3D物体的轮廓的多边形,而纹理映射(texture mapping)工作完成对多变形表面的帖图,通俗的说,就是将多边形的表面贴上相应的图片,从而生成“真实”的图形。
4)像素处理:执行光栅化处理阶段,在对每个像素进行转化的过程中,GPU完成对像素的计算和处理,从而确定每个像素的最终属性。
5)最终输出:由光栅化引擎最终完成像素的输出,1帧渲染完毕后,被送到显存帧缓冲区。
但是图3所示的编码和传输时并没有根据用户网络和终端解码能力自适地应动态调整,这样导致一些用户网络不稳定或解码算力有限的用户在玩云游戏时就会频繁卡顿、响应慢体验比较差,具体来说现有技术仅是定时帧率从显示的帧缓冲区buffer里取出当前最新帧数据,然后送给编码器编码,编码压缩好以后再传输给云游用户终端显示,但是,解码算力有限的用户在玩云游戏时由于硬件解码能力跟不上导致终端负载比较高,解码能力跟不上云端帧率画面从而导致频繁卡顿、响应慢体验比较差,进一步地,帧率或分辨率、码率比较高的云游戏时由于解码以及高帧率渲染画面时会导致终端硬件负载比较高,造成用户终端电池过热,频繁引起强制降频,影响用户的使用体验。
为了克服上述缺陷,结合图2示出的电子设备说明本发明实施例提供的视频编码方法,参见图4,图4为本发明实施例提供的视频编码方法一个可选的流程示意图,可以理解地,图4所示的步骤可以由运行视频编码装置的各种服务器执行,例如可以是如带有视频编码功能的专用终端、服务器或者服务器集群。下面针对图4示出的步骤进行说明。
步骤401:视频编码装置基于视频播放终端的网络带宽环境,确定网络带宽信息。
步骤402:视频编码装置确定所述视频播放终端的解码算力信息。
其中,解码算力信息用于表征视频终端在单位时间内能够进行视频解码处理的帧数,解码算力信息的数值越大,表明频终端在单位时间内能够进行视频解码处理的帧数越多。
在本发明的一些实施例中,确定所述视频播放终端的解码算力信息,可以通过以下方式实现:
获取所述视频播放终端的硬件类型信息;基于所述视频播放终端的硬件类型信息,确定所述视频播放终端的配置信息;基于所述视频播放终端的配置信息,确定所述视频播放终端的解码算力信息;或者,侦测所述视频播放终端的实时负载信息;基于所述视频播放终端的实时负载信息,确定所述视频播放终端的解码算力信息。其中,可以在运行云游戏进程,播放云游戏的视频时,可以首先确定用户终端的解码算力信息,确定终端解码算力较低和算力不稳定的使用环境,具体来说,可以根据视频播放终端的配置信息确定终端的解码算力,当解码一帧视频帧的解码延时 大于等于参数A时,说明视频播放终端解码算力较低;其中,解码延时用于表征终端解码一帧视频数据所消耗时间,参数A定义为1000/画面帧率* 0.8,由此,可以触发调整进程对视频编码策略进行调整,减少云游戏视频的卡顿,提升用户的使用体验。
在本发明的一些实施例中,由于不同的视频播放终端的解码能力不同,因此需要确定视频播放终端的解码算力信息,对于硬件类型信息已经获知的视频播放终端,可以通过相应的硬件类型信息,确定视频播放终端的配置信息,例如对于XX品牌的XX型号的手机,可以通过硬件类型信息(或者XX型号手机的入网代码)确定终端的配置信息为A型号的CPU、B型号的GPU以及C型号的主板信息,通过所确定的视频播放终端的配置信息既可确定不同视频播放终端所对应的解码能力信息,终端的配置信息型号中高规格的CPU或者GPU均能够提升视频播放终端所对应的解码能力,同时由于云游戏用户可以根据操作环境的不同灵活的切换不同的视频播放终端,因此,通过频播放终端的配置信息,确定所述视频播放终端的解码算力信息,可以及时准确地获取游戏用户的终端情况,便于及时调整视频编码策略以适应不同的使用环境。
在本发明的一些实施例中,由于同一个视频播放终端的解码能力还受到所承载的解码任务的数量限制,因此,由于频播放终端的实时负载信息的变化会造成频播放终端的实时解码能力的变化,例如对于配置信息为A型号的CPU、B型号的GPU以及C型号的主板的手机,在承载的解码业务进程数量为1(负载信息)时,实时解码能力为10帧/s,当配置信息和网络状态不变时,频播放终端同时承载本地游戏和视频播放的解码任务,其承载的解码业务进程数量为3,实时解码能力3帧/s,出现明显的下降,因此,需要及时调整视频编码策略以适应视频编码使用环境的变化,为用户提供更好的使用体验。
步骤403:视频编码装置获取视频播放环境中的播放缓存池的容量配置信息。
参考图5,图5为本发明实施例提供的视频编码方法的使用环境示意图,其中,在本发明的一些实施例中,获取视频播放环境中的播放缓存池的容量配置信息,可以通过以下方式实现:
侦测所述播放缓存池的实时数据帧队列长度;基于所述播放缓存池的实时数据帧队列长度与长度阈值的比较结果,确定所述视频播放环境中的播放缓存池的容量配置信息。其中,以云游戏为例,如图5所示,当云游戏的视频进行播放时,终端在云游戏的运行环境中接收服务器编码后的视频帧并进行解码播放,当视频播放终端接收到经过服务器编码的游戏视频的视频帧或者携带视频信息的数据帧后,需要将所接收的游戏视频的视频帧或者携带视频信息的数据帧保存在终端的播放缓存池中,终端的解码装置对播放缓存池的实时数据帧队列中的游戏视频的视频帧或者携带视频信息的数据帧进行解码,通过解码应该展示游戏视频中的编号1、编号2以及编号3的视频帧,使得游戏用户获得三个完整的游戏视频的视频帧,这一过程中,视频播放终端的解码算力越强,播放缓存池的实时数据帧队列中的帧数越少,在云游戏使用场景中,播放缓存池的实时数据帧队列中的帧数可以保持为0,由此,可以保证游戏用户在云游戏的运行过程中获得无卡顿的游戏视频。
参考图6,图6为本发明实施例提供的视频编码方法的使用环境示意图,其中,在本发明的一些实施例中,当播放器buffer池缓存的Frame帧队列长期大于1帧,说明视频播放终端的实时解码算力较低,不能够适应当前的云游戏视频负载,或者视频播放终端的解码算力不稳定,无法适应当前的云游戏中的游戏视频播放,此时,如图6所示,由于视频播放终端的实时解码算力较低或者不稳定,与前序图5相比,云游戏的游戏用户仅能够获得编号1和编号2的游戏视频的视频帧,造成游戏视频的卡顿,此时可以触发动态调整帧率,避免游戏视频的卡顿影响云游戏视频的播放。
步骤404:视频编码装置基于所述网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与目标视频的播放环境相匹配的视频编码策略。
在本发明的一些实施例中,基于所述网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与目标视频的播放环境相匹配的视频编码策略,可以通过以下方式实现:
当所述视频播放终端的分辨率低于第一分辨率,并且所述网络带宽信息表征视频播放终端的网络带宽环境不稳定时,确定与目标视频的播放环境相匹配的视频编码策略为降低帧率编码;或者,当所述视频播放终端的分辨率达到第一分辨率,并且所述网络带宽信息表征视频播放终端的网络带宽环境不稳定时,确定与目标视频的播放环境相匹配的视频编码策略为降低视频码率编码。其中,继续以云游戏为例进行说明,参考图7A,图7A为本发明实施例提供的视频编码方法的使用环境示意图,其中,在本发明的一些实施例中,第一分辨率为720P,当用户在云游戏进程中选择的分辨率小于720P状态时,当用户终端的网络由宽带接入云游戏服务器切换至移动网络接入云游戏服务器时,会出现信息传输速率的波动,造成带宽不稳定,通过对视频播放的编码策略进行动态调整,降低帧率编码(例如可以通过降帧处理策略,在大于等于30每秒传输帧数中选择相适应的降帧率策略),由此,可以如图7A所示,使得云游戏的游戏用户能够获得编号1和编号2的游戏视频的视频帧,避免在分辨率是小于720P状态时由于高每秒传输帧数编码策略所造成的仅能够显示编号1的游戏视频帧的缺陷,减少用户由于掉帧和卡顿所造成的使用体验下降。
参考图7B,图7B为本发明实施例提供的视频编码方法的使用环境示意图,其中,在本发明的一些实施例中,第一分辨率为720P,当用户在云游戏进程中选择的分辨率大于等于720P状态时,当用户终端的网络由宽带接入云游戏服务器切换至移动网络接入云游戏服务器时,会出现信息传输速率的波动,造成带宽不稳定,通过对视频播放的编码策略进行动态调整,可以降低数据传输时单位时间传送的数据位数(即码率),以保证用户获得较高分辨率的游戏视频进行观看,进一步地,由于终端的配置信息不同,对于硬件配置较高的终端,可以提升第一分辨率720P至第二分辨率1080P,同时保持低数据传输时单位时间传送的数据位数,可以使得终端正常运行云游戏的同时,使得用户的获得更好的视觉体验。
进一步地,如果码率调整比较低以后仍然出现卡顿的情况可以动态调整降帧率。具体来说,当确定与目标视频的播放环境相匹配的视频编码策略为降低视频码率编码时,对目标视频的播放流畅度进行检测;当检测到所述目标视频的播放出现卡顿时,确定与目标视频的播放环境相匹配的视频编码策略为同时降低帧率与视频码率编码。
在本发明的一些实施例中,当需要对目标视频的播放流畅度进行检测时,可以获取目标视频中的第一图像帧和第二图像帧,其中,所述第一图像帧和所述第二图像帧为所述目标视频播放过程中显示画面对应的图像帧;获取所述第一图像帧和所述第二图像帧的差异图像;将所述差异图像转换为相匹配的灰度图像,并确定所述灰度图像所包括的不同像素点;根据所述灰度图像中不同像素点的灰度值,对目标视频的播放流畅度进行检测。具体来说,第一图像帧和第二图像帧之间的差异,与灰度图像中的灰度值呈正相关关系,也即灰度图像中的灰度值越大,则表示第一图像帧和第二图像帧之间的差异越大,从而也能够确定,第一图像帧和第二图像帧之间未产生卡顿情况;同理,响应于灰度图像中的灰度值越小,则表示第一图像帧和第二图像帧之间的差异越小,当灰度图像中的最大灰度值小于预设阈值时,则确定第一图像帧和第二图像帧之间产生卡顿情况。需要说明的是,在通过本申请提供的视频编码方法对云游戏中的游戏视频进行处理时,由于云游戏在运行过程中是由云端服务器进行运算,并将运算后得到的视频流传输至终端进行播放,也即终端在云游戏的运行过程中负责的是视频播放,云游戏的运行过程对终端的计算能力并没有非常高的要求,也不易在游戏视频的播放过程中产生卡顿情况,而云端服务器在游戏运行过程中的运算量较大,易产生卡顿情况,从而云端服务器生成的视频流本身即为存在卡顿情况的视频流,而终端播放视频流的过程中并不存在终端导致的卡顿,也即通过上述FPS并不能对云游戏运行过程中的卡顿情况进行准确的检测。而本申请实施例中,通过对云游戏运行过程中的过程视频进行图像帧的采集,并根据图像帧之间的差异度对云游戏的运行过程是否产生卡顿进行检测,提高了卡顿检测的准确率。
在本发明的一些实施例中,基于所述网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与目标视频的播放环境相匹配的视频编码策略,包括:
基于所述解码算力信息,确定所述视频播放终端的解码算力解码耗时延时参数;基于所述解码算力解码耗时延时参数和每秒传输帧数阈值,确定相匹配的目标帧率;基于所述目标帧率确定与目标视频的播放环境相匹配的视频编码策略。其中,动态调整帧率在常数数值30以及动态数值1000/DecodeDelay中选择最大的数值使用,通过最低30fps保证游戏的最低交互体验,并向云游戏用户呈现通知信息,建议用户更换终端以获取更好的使用体验。进一步地,在本发明的一些实施例中,由于视频帧率动态调整自适应,云游戏音频由于码率占总比比较少,而且音频解码所需要得到解码算力较低,云游戏中音频仅包括背景音乐和用户的语音交流声音,所以云游戏的运行终端在游戏音视频渲染时音画可以不同步,分开渲染,防止视频帧率自适应带来的音画同步处理卡顿问题。
步骤405:视频编码装置通过所确定的视频编码策略对所述目标视频进行编码。
其中,本发明实施例可结合云技术或区块链网络技术实现,云技术(Cloudtechnology)是指在广域网或局域网内将硬件、软件及网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术,也可理解为基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术及应用技术等的总称。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站,因此云技术需要以云计算作为支撑。
需要说明的是,云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用***能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池平台,简称云平台,一般称为基础设施即服务(IaaS,Infrastructure as a Service),在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(可为虚拟化机器,包含操作***)、存储设备和网络设备。
其中,当通过云服务器群组运行云游戏时,可以确定所述目标用户的标识信息;基于云服务器网络,确定与标识信息相匹配的数据源集群;根据数据源集群,向相应的云游戏服务器中存储与目标用户相匹配的用户的历史信息,由此,能够及时更新云游戏用户所对应的游戏数据,同时,当同一用户通过不同配置的终端播放云服务器中的视频信息,或者登陆同一用户的云游戏账号时,云服务器可以通过区块链网络中所保存的视频播放终端的解码算力信息以及视频编码策略及时地调整视频编码策略,并为用户的当前终端,适配相应的视频编码策略,减少用户的手动调整操作,提升用户的使用体验。
下面以云游戏运行中的游戏视频编码处理为例,对本申请的视频编码方法进行说明,其中,图8为本发明实施例提供的视频编码方法的使用环境示意图,其中,游戏应用程序在云端服务器中运行的过程中,对游戏应用程序的运行进行采集编码,其中,采集过程包括从DDA缓存区中获取桌面图像帧,以及桌面图像帧的结构体信息,该结构体信息中包括桌面图像帧的渲染时刻,也即桌面图像帧的刷新时刻,将该刷新时刻作为桌面图像帧的显示时间戳,对桌面图像帧进行编码后,生成编码文件,并将编码文件发送至终端进行解码播放;其中,上述游戏可以实现为如:第一人称射击游戏(First Person Shooting Game,FPS)、多人在线战术竞技游戏(Multiplayer Online Battle Arena Games,MOBA)、多
人枪战类生存游戏、大逃杀类型的射击游戏等。其中,图9为本发明实施例视频编码方法的前端显示示意图,其中,服务器中预先存储有该云应用程序的运行逻辑,服务器接收终端发送的控制指令后,根据控制指令以及预先存储的运行逻辑,控制云应用程序在服务器中运行,并产生运行画面。可选地,由图形处理器(Graphics Processing Unit,GPU)对运行画面进行渲染,并在桌面中显示运行画面。可选地,服务器可以通过显示器显示运行画面,或,服务器仅生成并编码运行画面,从而将编码文件发送至终端进行运行画面的显示,由于解码算力有限的用户在玩云游戏时由于硬件解码能力跟不上导致终端负载比较高,解码能力无法匹配云服务器的帧率画面从而导致如图9所示的卡顿。
为了克服上述缺陷,参考图10,图10为本发明实施例提供的视频编码方法一个可选的流程示意图,本发明所提供的视频编码方法的一个可选的处理流程包括以下步骤:
步骤1001:对云游戏的网络环境进行预估,获得环境预估信息。
步骤1002:对用户终端的解码算力进行预估,获得解码算力预估信息。
步骤1003:获取云游戏运行环境中的播放缓存池的容量配置信息。
步骤1004:基于播放缓存池的容量配置信息、环境预估信息以及解码算力预估信息,当云游戏进程中分辨率为小于720P时,降帧至30FPS,当云游戏进程中分辨率为大于等于720P时,降低视频码率。
图11为本发明实施例视频编码方法的前端显示示意图,其中,通过图10所示的视频编码处理,最低30fps保证游戏的最低交互体验,向用户呈现清晰的游戏视频图像帧,并向云游戏用户呈现通知信息,建议用户更换终端以获取更好的使用体验。
下面继续说明本申请实施例提供的视频编码装置的实施为软件模块的示例性结构,在本申请的一些实施例中,如图2所示,存储在存储器202的业务数据处理装置中的软件模块可以包括:
信息处理模块2081、信息编码模块2082,在本发明的一些实施例中,信息处理模块2081,用于获取视频播放终端的硬件类型信息;信息处理模块2081,用于基于视频播放终端的硬件类型信息,确定视频播放终端的配置信息;信息处理模块2081,用于基于视频播放终端的配置信息,确定视频播放终端的解码算力信息;信息处理模块2081,用于侦测视频播放终端的实时负载信息;信息处理模块2081,用于基于视频播放终端的实时负载信息,确定视频播放终端的解码算力信息。
在本发明的一些实施例中,信息处理模块2081,用于侦测播放缓存池的实时数据帧队列长度;信息处理模块2081,用于基于播放缓存池的实时数据帧队列长度与长度阈值的比较结果,确定视频播放环境中的播放缓存池的容量配置信息。
在本发明的一些实施例中,信息处理模块2081,用于当视频播放终端的分辨率低于第一分辨率,并且网络带宽信息表征视频播放终端的网络带宽环境不稳定时,确定与目标视频的播放环境相匹配的视频编码策略为降低帧率编码;信息处理模块2081,用于当视频播放终端的分辨率达到第一分辨率,并且网络带宽信息表征视频播放终端的网络带宽环境不稳定时,确定与目标视频的播放环境相匹配的视频编码策略为降低视频码率编码。
在本发明的一些实施例中,信息处理模块2081,用于当确定与目标视频的播放环境相匹配的视频编码策略为降低视频码率编码时,对目标视频的播放流畅度进行检测;信息处理模块2081,用于当检测到目标视频的播放出现卡顿时,确定与目标视频的播放环境相匹配的视频编码策略为同时降低帧率与视频码率编码。
在本发明的一些实施例中,信息处理模块2081,用于当确定与目标视频的播放环境相匹配的视频编码策略为降低视频码率编码时,获取目标视频中的第一图像帧和第二图像帧,其中,第一图像帧和第二图像帧为目标视频播放过程中显示画面对应的图像帧;信息处理模块2081,用于获取第一图像帧和第二图像帧的差异图像;信息处理模块2081,用于将差异图像转换为相匹配的灰度图像,并确定灰度图像所包括的不同像素点;信息处理模块2081,用于根据灰度图像中不同像素点的灰度值,对目标视频的播放流畅度进行检测。
在本发明的一些实施例中,信息处理模块2081,用于基于解码算力信息,确定视频播放终端的解码算力解码耗时延时参数;信息处理模块2081,用于基于解码算力解码耗时延时参数和每秒传输帧数阈值,确定相匹配的目标帧率;信息处理模块2081,用于基于目标帧率确定与目标视频的播放环境相匹配的视频编码策略。
本发明实施例通过基于视频播放终端的网络带宽环境,确定网络带宽信息;
确定所述视频播放终端的解码算力信息;获取视频播放环境中的播放缓存池的容量配置信息;基于所述网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与目标视频的播放环境相匹配的视频编码策略;通过所确定的视频编码策略对所述目标视频进行编码,由此,能够利用网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与目标视频的播放环境相匹配的视频编码策略,减少由于网络环境的变化和终端解码能力的不足所造成的视频播放卡顿,提升用户的使用体验。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种视频编码方法,其特征在于,所述方法包括:
基于视频播放终端的网络带宽环境,确定网络带宽信息,其中,所述视频播放终端用于解码不同云游戏服务器所传输的云游戏中的目标视频;
确定所述视频播放终端对所述云游戏中的目标视频的解码算力信息;
获取视频播放环境中的播放缓存池的容量配置信息;
基于所述网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与云游戏中目标视频的播放环境相匹配的视频编码策略;
当确定与云游戏中的目标视频的播放环境相匹配的视频编码策略为降低视频码率编码时,通过云游戏中的目标视频所携带的第一图像帧和第二图像帧的差异灰度值对目标视频的播放流畅度进行检测;
当检测到云游戏中的目标视频的播放出现卡顿时,确定与云游戏中目标视频的播放环境相匹配的视频编码策略为同时降低帧率与视频码率编码;
通过所确定的视频编码策略对云游戏中目标视频进行编码,以实现在云游戏中的目标视频的播放环境中,通过视频播放终端播放云游戏中目标视频。
2.根据权利要求1所述的方法,其特征在于,所述确定所述视频播放终端对所述云游戏中的目标视频的解码算力信息,包括:
获取所述视频播放终端的硬件类型信息;
基于所述视频播放终端的硬件类型信息,确定所述视频播放终端的配置信息;
基于所述视频播放终端的配置信息,确定所述视频播放终端的解码算力信息;或者,
侦测所述视频播放终端的实时负载信息;
基于所述视频播放终端的实时负载信息,确定所述视频播放终端的解码算力信息。
3.根据权利要求1所述的方法,其特征在于,所述获取视频播放环境中的播放缓存池的容量配置信息,包括:
侦测所述播放缓存池的实时数据帧队列长度;
基于所述播放缓存池的实时数据帧队列长度与长度阈值的比较结果,确定所述视频播放环境中的播放缓存池的容量配置信息。
4.根据权利要求1所述的方法,其特征在于,所述基于所述网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与云游戏中目标视频的播放环境相匹配的视频编码策略,包括:
当所述视频播放终端的分辨率低于第一分辨率,并且所述网络带宽信息表征视频播放终端的网络带宽环境不稳定时,确定与目标视频的播放环境相匹配的视频编码策略为降低帧率编码;或者,
当所述视频播放终端的分辨率达到第一分辨率,并且所述网络带宽信息表征视频播放终端的网络带宽环境不稳定时,确定与目标视频的播放环境相匹配的视频编码策略为降低视频码率编码。
5.根据权利要求1所述的方法,其特征在于,所述当确定与云游戏中的目标视频的播放环境相匹配的视频编码策略为降低视频码率编码时,通过云游戏中的目标视频所携带的第一图像帧和第二图像帧的差异灰度值对目标视频的播放流畅度进行检测,包括:
当确定与目标视频的播放环境相匹配的视频编码策略为降低视频码率编码时,获取目标视频中的第一图像帧和第二图像帧,其中,所述第一图像帧和所述第二图像帧为所述目标视频播放过程中显示画面对应的图像帧;
获取所述第一图像帧和所述第二图像帧的差异图像;
将所述差异图像转换为相匹配的灰度图像,并确定所述灰度图像所包括的不同像素点;
根据所述灰度图像中不同像素点的灰度值,对目标视频的播放流畅度进行检测。
6.根据权利要求1所述的方法,其特征在于,所述基于所述网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与云游戏中目标视频的播放环境相匹配的视频编码策略,包括:
基于所述解码算力信息,确定所述视频播放终端的解码算力解码耗时延时参数;
基于所述解码算力解码耗时延时参数和每秒传输帧数阈值,确定相匹配的目标帧率;
基于所述目标帧率确定与目标视频的播放环境相匹配的视频编码策略。
7.根据权利要求1所述的方法,其特征在于,确定与云游戏中目标视频的播放环境相匹配的视频编码策略之后,所述方法还包括:
当所述目标视频为云游戏视频时,确定目标用户的标识信息;
基于云服务器网络,确定与所述标识信息相匹配的数据源集群;
根据所述数据源集群,向云游戏服务器中存储与所述目标用户相匹配的用户的云游戏历史信息。
8.根据权利要求1-7任一项所述的方法,其特征在于,通过所确定的视频编码策略对云游戏中目标视频进行编码之前,所述方法还包括:
将终端标识信息、视频播放终端的解码算力信息以及视频编码策略添加至内容存储网络中,所述内容存储网络为区块链网络,或者由至少一个云服务器构成的网络。
9.一种视频编码装置,其特征在于,所述装置包括:
信息处理模块,用于基于视频播放终端的网络带宽环境,确定网络带宽信息,其中,所述视频播放终端用于解码不同云游戏服务器所传输的云游戏中的目标视频;
所述信息处理模块,用于确定所述视频播放终端对所述云游戏中的目标视频的解码算力信息;
所述信息处理模块,用于获取视频播放环境中的播放缓存池的容量配置信息;
所述信息处理模块,用于基于所述网络带宽信息、所述解码算力信息以及所述播放缓存池的容量配置信息,对视频播放的编码策略进行动态调整,确定与云游戏中目标视频的播放环境相匹配的视频编码策略;
所述信息处理模块,用于当确定与云游戏中的目标视频的播放环境相匹配的视频编码策略为降低视频码率编码时,通过云游戏中的目标视频所携带的第一图像帧和第二图像帧的差异灰度值对目标视频的播放流畅度进行检测;
所述信息处理模块,用于当检测到云游戏中的目标视频的播放出现卡顿时,确定与云游戏中目标视频的播放环境相匹配的视频编码策略为同时降低帧率与视频码率编码;
信息编码模块,用于通过所确定的视频编码策略对云游戏中目标视频进行编码,以实现在云游戏中的目标视频的播放环境中,通过视频播放终端播放云游戏中目标视频。
10.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于运行所述存储器存储的可执行指令时,实现权利要求1至8任一项所述的视频编码方法。
11.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现权利要求1至8任一项所述的视频编码方法。
CN202011269523.8A 2020-11-13 2020-11-13 一种视频编码方法、装置、电子设备及存储介质 Active CN112104879B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202011269523.8A CN112104879B (zh) 2020-11-13 2020-11-13 一种视频编码方法、装置、电子设备及存储介质
PCT/CN2021/128969 WO2022100522A1 (zh) 2020-11-13 2021-11-05 一种视频编码方法、视频解码方法、装置、电子设备、存储介质及计算机程序产品
EP21891048.7A EP4192015A4 (en) 2020-11-13 2021-11-05 VIDEO ENCODING METHOD, VIDEO DECODING METHOD, APPARATUS, ELECTRONIC DEVICE, STORAGE MEDIUM, AND COMPUTER PROGRAM PRODUCT
US17/963,829 US11909984B2 (en) 2020-11-13 2022-10-11 Video encoding and decoding for cloud gaming

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011269523.8A CN112104879B (zh) 2020-11-13 2020-11-13 一种视频编码方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112104879A CN112104879A (zh) 2020-12-18
CN112104879B true CN112104879B (zh) 2021-03-23

Family

ID=73785627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011269523.8A Active CN112104879B (zh) 2020-11-13 2020-11-13 一种视频编码方法、装置、电子设备及存储介质

Country Status (4)

Country Link
US (1) US11909984B2 (zh)
EP (1) EP4192015A4 (zh)
CN (1) CN112104879B (zh)
WO (1) WO2022100522A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112104879B (zh) * 2020-11-13 2021-03-23 腾讯科技(深圳)有限公司 一种视频编码方法、装置、电子设备及存储介质
CN112631447A (zh) * 2020-12-24 2021-04-09 广州虎牙科技有限公司 鼠标同步处理方法、装置、电子设备及存储介质
CN112788235B (zh) * 2020-12-31 2022-01-28 深圳追一科技有限公司 图像处理方法、装置、终端设备及计算机可读取存储介质
CN112929700A (zh) * 2021-02-01 2021-06-08 福建多多云科技有限公司 一种基于云手机的视频流动态切换方法
CN113347466B (zh) * 2021-05-18 2022-12-20 深圳市腾讯网络信息技术有限公司 一种数据处理方法、装置和存储介质
CN113726759A (zh) * 2021-08-25 2021-11-30 烽火通信科技股份有限公司 一种码率自适应方法、装置、设备及可读存储介质
CN113747203B (zh) * 2021-09-01 2022-08-30 腾讯科技(深圳)有限公司 一种视频信息传输方法、装置、电子设备及存储介质
CN113923485A (zh) * 2021-09-30 2022-01-11 杭州雾联科技有限公司 一种调整码率的方法、装置、及计算机可读存储介质
CN114051143A (zh) * 2021-11-03 2022-02-15 麒麟软件有限公司 一种视频流编解码任务调度方法
CN114143407B (zh) * 2021-11-25 2024-07-16 厦门汉印电子技术有限公司 一种远程实时预览实现设备及方法、装置、可读存储介质
CN114157710A (zh) * 2021-12-02 2022-03-08 中国电信股份有限公司 通信策略配置方法、装置、存储介质及设备
CN114222194A (zh) * 2021-12-17 2022-03-22 浙江大华技术股份有限公司 一种视频码流调整方法、装置及***
CN114416236A (zh) * 2021-12-28 2022-04-29 深信服科技股份有限公司 一种虚拟桌面数据的处理方法、装置、设备和介质
CN114338550B (zh) * 2022-03-14 2022-06-21 杭州子默网络科技有限公司 一种减低带宽的云电脑实时编码方法及***
WO2023218614A1 (ja) * 2022-05-12 2023-11-16 日本電信電話株式会社 配信装置、配信方法及びプログラム
CN117475052A (zh) * 2022-07-22 2024-01-30 华为云计算技术有限公司 一种图像渲染的处理方法及其相关设备
CN115550690B (zh) * 2022-12-02 2023-04-14 腾讯科技(深圳)有限公司 帧率调整方法、装置、设备及存储介质
CN116634177B (zh) * 2023-06-16 2024-02-20 北京行者无疆科技有限公司 一种基于hdmi通信设备的视频通信解码处理方法
CN118118628A (zh) * 2024-03-29 2024-05-31 北京积加科技有限公司 监控视频调整方法、装置、电子设备和计算机可读介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4988346B2 (ja) * 2003-09-15 2012-08-01 ザ・ディレクティービー・グループ・インコーポレイテッド ビデオネットワークにおける適応トランスコーディング及び速度変換のための方法及びシステム
CN101707551B (zh) * 2009-10-30 2011-11-16 杭州华三通信技术有限公司 一种数据的传输方法及装置
CN101867802A (zh) * 2010-05-17 2010-10-20 上海海维工业控制有限公司 一种基于编码器和缓存的两级码率控制方法
US8990351B2 (en) * 2011-04-20 2015-03-24 Mobitv, Inc. Real-time processing capability based quality adaptation
CN102521279A (zh) * 2011-11-25 2012-06-27 Tcl集团股份有限公司 一种流媒体文件播放方法、***及播放器
CN102387409A (zh) * 2011-12-07 2012-03-21 江苏远为科技有限公司 基于流媒体***的视频播放方法
US10051519B2 (en) * 2012-08-27 2018-08-14 Qualcomm Incorporated Device and method for adaptive rate multimedia communications on a wireless network
US9131251B2 (en) * 2012-09-20 2015-09-08 Google Technology Holdings LLC Use of a receive-window size advertised by a client to a content server to change a video stream bitrate streamed by the content server
US9369513B2 (en) * 2013-04-12 2016-06-14 Futurewei Technologies, Inc. Utility-maximization framework for dynamic adaptive video streaming over hypertext transfer protocol in multiuser-multiple input multiple output long-term evolution networks
CN104427402B (zh) * 2013-09-03 2017-11-21 中国科学院声学研究所 一种无线网络流媒体质量获取方法及***
ITBA20130077A1 (it) * 2013-11-25 2015-05-26 Cicco Luca De Meccanismo per il controllo del bitrate di codifica in un sistema di video streaming adattivo basato su buffer di playout e sulla stima di banda.
CN105263066A (zh) * 2014-06-13 2016-01-20 珠海全志科技股份有限公司 移动设备视频流传输控制方法及***
CN105376595A (zh) * 2015-12-17 2016-03-02 杭州雄迈信息技术有限公司 一种视频混合编码***和方法
US10812559B2 (en) * 2017-01-18 2020-10-20 Amazon Technologies, Inc. Just-in-time variable adaptive encoding and delivery of media content
CN109462773A (zh) * 2018-08-31 2019-03-12 北京潘达互娱科技有限公司 一种推流方法、装置、电子设备及存储介质
US10694239B1 (en) * 2018-12-12 2020-06-23 Sling Media Pvt Ltd Systems, methods, and devices for optimizing streaming bitrate based on multiclient display profiles
CN110087081B (zh) * 2019-05-05 2021-08-06 腾讯科技(深圳)有限公司 视频编码方法、装置、服务器及存储介质
CN110418170B (zh) * 2019-07-03 2021-11-19 腾讯科技(深圳)有限公司 检测方法和装置、存储介质及电子装置
US11344799B2 (en) * 2019-10-01 2022-05-31 Sony Interactive Entertainment Inc. Scene change hint and client bandwidth used at encoder for handling video frames after a scene change in cloud gaming applications
US11731043B2 (en) * 2019-11-19 2023-08-22 Sony Interactive Entertainment Inc. Adaptive graphics for cloud gaming
CN111882626B (zh) * 2020-08-06 2023-07-14 腾讯科技(深圳)有限公司 图像处理方法、装置、服务器及介质
CN112104879B (zh) * 2020-11-13 2021-03-23 腾讯科技(深圳)有限公司 一种视频编码方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
WO2022100522A1 (zh) 2022-05-19
EP4192015A4 (en) 2024-05-22
US11909984B2 (en) 2024-02-20
CN112104879A (zh) 2020-12-18
US20230036405A1 (en) 2023-02-02
EP4192015A1 (en) 2023-06-07

Similar Documents

Publication Publication Date Title
CN112104879B (zh) 一种视频编码方法、装置、电子设备及存储介质
US20180270496A1 (en) Composite video streaming using stateless compression
US11565178B2 (en) User interface rendering and post processing during video game streaming
US10242462B2 (en) Rate control bit allocation for video streaming based on an attention area of a gamer
US9491433B2 (en) Moving image distribution server, moving image playback apparatus, control method, and recording medium
CN111882626A (zh) 图像处理方法、装置、服务器及介质
US8897373B2 (en) Moving image distribution server, moving image reproduction apparatus, control method, and recording medium
CN110166796B (zh) 视频帧的处理方法、装置、计算机可读介质及电子设备
WO2021223577A1 (zh) 一种视频处理的方法、相关装置、存储介质及程序产品
US20220408097A1 (en) Adaptively encoding video frames using content and network analysis
KR20160015136A (ko) 클라우드 스트리밍 서비스 시스템, 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
CN116866658A (zh) 视频数据的处理方法、装置、设备和介质
CN113996056A (zh) 云游戏的数据发送和接收方法以及相关设备
KR20160087226A (ko) 클라우드 스트리밍 서비스 시스템, 단말 성능을 고려한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
US20240009556A1 (en) Cloud-based gaming system for supporting legacy gaming applications with high frame rate streams
Athrij et al. Dynamic Load Distribution in web-based AR
AU2015203292B2 (en) Composite video streaming using stateless compression
CN117837141A (zh) 用于流式传输应用的多尝试编码操作
CN117062656A (zh) 使用共享参考帧的低延迟多遍帧级速率控制
CN116916028A (zh) 使用虚拟分辨率调整的视频流缩放
KR20160039887A (ko) 클라우드 스트리밍 서비스 시스템, 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치

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
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40035766

Country of ref document: HK