CN111654720B - 视频编码方法、装置、设备及可读存储介质 - Google Patents

视频编码方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN111654720B
CN111654720B CN202010691256.7A CN202010691256A CN111654720B CN 111654720 B CN111654720 B CN 111654720B CN 202010691256 A CN202010691256 A CN 202010691256A CN 111654720 B CN111654720 B CN 111654720B
Authority
CN
China
Prior art keywords
desktop
desktop image
image frames
rendering
image frame
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
CN202010691256.7A
Other languages
English (en)
Other versions
CN111654720A (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 CN202010691256.7A priority Critical patent/CN111654720B/zh
Publication of CN111654720A publication Critical patent/CN111654720A/zh
Application granted granted Critical
Publication of CN111654720B publication Critical patent/CN111654720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/23412Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Digital Computer Display Output (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请公开了一种视频编码方法、装置、设备及可读存储介质,涉及多媒体技术领域。该方法包括:运行云应用程序,云应用程序为运行在云服务器中的应用程序;在云应用程序的运行过程中,从缓存区中采集桌面图像帧和桌面图像帧的渲染时刻;根据桌面图像帧的渲染时刻确定桌面图像帧的显示时间戳,对桌面图像帧进行编码。通过从缓存区中获取桌面图像帧及其对应的渲染时刻,从而将渲染时刻作为桌面图像帧在编码过程中的显示时间戳,从而与其在终端最终播放时的渲染时刻保持一致,避免由于编码时采用机器时间而导致的播放效果存在丢帧和跳帧的情况出现,提高了播放的准确率。

Description

视频编码方法、装置、设备及可读存储介质
技术领域
本申请实施例涉及多媒体技术领域,特别涉及一种视频编码方法、装置、设备及可读存储介质。
背景技术
云程序是指程序本身运行在云端服务器设备中,将云端设备渲染后的程序画面编码后,通过网络传输至用户终端,由用户终端对编码文件进行解码后渲染至显示屏进行显示的程序。
相关技术中,在云端服务器设备中编码程序画面时,包括采集和编码两个过程,其中,采集是指对云端服务器的桌面画像帧进行获取,编码是指对采集得到的桌面画像帧进行编码,并将本机时间戳作为当前桌面画像帧的显示时间戳,得到编码文件发送至终端。
然而,当采集编码的机器负载出现波动,或采集编码处理耗时不稳定时,编码出帧就会不稳定,并出现丢帧的现象,从而导致编码文件中图像帧的显示时间戳波动较大,在终端播放时,视频存在卡顿和跳帧的现象,导致程序运行流畅度较差。
发明内容
本申请实施例提供了一种视频编码方法、装置、设备及可读存储介质,能够提高采集编码出帧的稳定性。所述技术方案如下:
一方面,提供了一种视频编码方法,所述方法包括:
运行云应用程序,所述云应用程序为运行在云服务器中的应用程序,所述云服务器用于将所述云应用程序的运行画面发送至终端进行显示;
在所述云应用程序的运行过程中,从缓存区中采集桌面图像帧和所述桌面图像帧的渲染时刻,所述桌面图像帧为当前刷新在桌面显示的图像帧;
根据所述渲染时刻确定所述桌面图像帧的显示时间戳,对所述桌面图像帧进行编码。
另一方面,提供了一种视频编码装置,所述装置包括:
运行模块,用于运行云应用程序,所述云应用程序为运行在云服务器中的应用程序,所述云服务器用于将所述云应用程序的运行画面发送至终端进行显示;
获取模块,用于在所述云应用程序的运行过程中,从缓存区中采集桌面图像帧和所述桌面图像帧的渲染时刻,所述桌面图像帧为当前刷新在桌面显示的图像帧;
编码模块,用于根据所述渲染时刻确定所述桌面图像帧的显示时间戳,对所述桌面图像帧进行编码。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述实施例中提供的视频编码方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述实施例中提供的视频编码方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的视频编码方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过从缓存区中获取桌面图像帧及其对应的更新时刻,从而将更新时刻作为桌面图像帧在编码过程中的显示时间戳,由于更新时刻为桌面图像帧在GPU中渲染生成的时刻,从而与其在终端最终播放时的渲染时刻保持一致,避免由于编码时采用机器时间而导致的播放效果存在丢帧和跳帧的情况出现,提高了播放的准确率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请一个示例性实施例提供的视频编码方法的实施环境示意图;
图2是本申请一个示例性实施例提供的视频编码方法的流程图;
图3是基于图2示出的实施例提供的DXGI与硬件进行数据交换的结构示意图;
图4是基于图2示出的实施例提供的显卡的缓存区缓存桌面图像帧并通过显示器显示的示意图;
图5是本申请另一个示例性实施例提供的视频编码方法的流程图;
图6是基于图5示出的实施例提供的从缓存区中获取桌面图像帧以及结构体信息的示意图;
图7是本申请另一个示例性实施例提供的视频编码方法的流程图;
图8是本申请一个示例性实施例提供的出帧延迟情况示意图;
图9是本申请一个示例性实施例提供的视频编码装置的结构框图;
图10是本申请另一个示例性实施例提供的视频编码装置的结构框图;
图11是本申请一个示例性实施例提供的服务器的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行简单介绍:
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云游戏:是指游戏本身运行在云端服务器设备中,将云端设备渲染后的游戏画面编码后,通过网络传输至用户终端,由用户终端对编码文件进行解码后渲染至显示屏进行显示的游戏,从而,用户无需在本地安装游戏,而仅需要建立与云端的通信网络连接便能完成游戏交互过程。
也即,云游戏的组织架构中包括终端和云端服务器,其中,终端用于接收用户对游戏过程的控制操作,并将控制操作对应的控制指令发送至云端服务器,云端服务器用于对游戏进程进行控制,并将游戏过程中的视频流发送至终端进行播放。也即在云游戏的组织架构中,终端主要负责对游戏过程中的游戏视频进行播放,以及接收控制操作;云端服务器主要负责游戏过程中的运算以及视频生成。游戏软件安装在云端服务器中,而无需在终端中进行安装,终端在建立与云端服务器的通信连接后,即可控制云游戏在云端服务器中运行。
可选地,上述云游戏也可以实现为其他在云端服务器中运行的应用程序,如:云直播应用程序、云视频应用程序等,本申请实施例对此不加以限定。
桌面数据访问接口(Desktop Duplication API,DDA):是Windows8之后微软提供的一套新的接口,通过桌面访问数据接口能够访问桌面数据,包括桌面显示图像帧、以及与图像帧相关的数据等。
显示时间戳(Presentation Time Stamp,PTS):是用于指示播放器对图像帧进行播放的时间戳,也即,播放器根据显示时间戳依次连续播放图像帧,从而实现为播放视频。
当前主流的云应用程序在采集和编码过程中,包括如下两种情况:1、采集、编码单线程串行;2、采集、编码分开双线程处理,编码时取运行机器的本机时间戳作为PTS。然而,当采集编码的机器负载出现波动,或采集编码处理耗时不稳定时,则编码出帧则会不稳定,并出现丢帧现象,由于编码帧的显示时间戳为处理编码时的本机时间戳,导致编码文件中视频帧的PTS波动也较大,用户在观看端观看的视频效果存在卡顿和跳帧问题。
也即,相关技术中,云应用程序的运行视频在编码时存在至少如下问题:
1、稳定抗性较差:当采集编码的机器负载出现波动,或采集编码处理耗时不稳定,则会导致编码出帧不稳定以及产生丢帧现象,由于编码帧时间戳是处理编码时本机的时间戳,导致编码帧时间戳PTS也波动很大;
2、丢帧或者重复帧:为了保证出帧稳定性,通常会采用一些多媒体或自旋定时器控制出帧速度,由于系统桌面刷新帧率相对比较稳定,如果应用层处理采集和编码的线程处理耗时出现波动,就会导致采集线程从DDA缓存区中获取的桌面帧数据丢失,出现采集取帧速度跟不上桌面刷新帧率的问题,因为DDA缓存区只会保存当前桌面刷新最新帧。
结合上述名词简介,首先对本申请实施例涉及的应用场景进行介绍,本申请实施例提供的视频编码方法的应用场景包括如下场景中的至少一种:
第一,在游戏应用程序在云端服务器中运行的过程中,对游戏应用程序的运行进行采集编码,其中,采集过程包括从DDA缓存区中获取桌面图像帧,以及桌面图像帧的结构体信息,该结构体信息中包括桌面图像帧的渲染时刻,也即桌面图像帧的刷新时刻,将该刷新时刻作为桌面图像帧的显示时间戳,对桌面图像帧进行编码后,生成编码文件,并将编码文件发送至终端进行解码播放;
其中,上述游戏可以实现为如:第一人称射击游戏(First Person ShootingGame,FPS)、多人在线战术竞技游戏(Multiplayer Online Battle Arena Games,MOBA)、多人枪战类生存游戏、大逃杀类型的射击游戏等。
可选地,由于云游戏在运行过程中是由云端服务器进行运算,并将运算后得到的视频流传输至终端进行播放,也即终端在云游戏的运行过程中主要负责的是视频播放,云游戏的运行过程对终端的计算能力并没有非常高的要求。
第二,在导航程序的导航过程中,由服务器对导航程序的运行过程进行计算,并将运行结果以视频流的形式发送至终端,由终端进行播放,其中,在导航程序在云端服务器中运行的过程中,对导航程序的运行进行采集编码,其中,采集过程包括从DDA缓存区中获取桌面图像帧,以及桌面图像帧的结构体信息,该结构体信息中包括桌面图像帧的渲染时刻,也即桌面图像帧的刷新时刻,将该刷新时刻作为桌面图像帧的显示时间戳,对桌面图像帧进行编码后,生成编码文件,并将编码文件发送至终端进行解码播放。
值得注意的是,上述应用场景仅为本申请实施例中示意性的举例,本申请实施例提供的视频编码方法可以应用于,任意通过DDA缓存区中缓存的图像帧结构体信息确定显示时间戳的场景中。
可选地,本申请实施例提供的视频编码方法,以由服务器实现为例进行说明,其中,服务器可以是物理服务器,也可以是提供云计算服务的云服务器,且服务器可以实现为一台服务器,也可以是多个服务器构成的服务器集群或分布式系统。
本申请实施例中,以该服务器实现为云服务器为例进行说明。
结合上述名词简介和应用场景,对本申请实施例中提供的视频编码方法的实施环境进行说明,如图1所示,该实施环境中包括终端110、服务器120,其中,终端110和服务器120之间通过通信网络130进行通信;
可选地,终端110中运行有云程序,可选地,云程序在终端110中的实际运行模式是以视频播放的形式实现的,也即,云程序的运算过程实现在服务器120中,由服务器120完成运算后,将运算后得到的视频流传输至终端110进行播放,也即终端110在云程序的运行过程中主要负责的是视频播放。
服务器120主要负责云程序的运算,并在运算后得到视频流,对视频流进行编码后,生成编码文件,并将编码文件通过通信网络130发送至终端110,由终端110对编码文件进行解码后播放视频流,完成云程序的运行过程。
其中,服务器120在对图像帧进行编码的过程中,包括采集和编码两个过程,其中,采集过程是指从DDA缓存区中获取桌面图像帧,以及桌面图像帧的结构体信息,该结构体信息中包括桌面图像帧的渲染时刻,也即桌面图像帧的刷新时刻;编码过程是指将该刷新时刻作为桌面图像帧的显示时间戳,对桌面图像帧进行编码后,生成编码文件,并将编码文件发送至终端进行解码播放。
在一个可选的实施例中,对本申请实施例提供的视频编码方法进行说明,图2是本申请一个示例性实施例提供的视频编码方法的流程图,以该方法应用于服务器中为例进行说明,如图2所示,该方法包括:
步骤201,运行云应用程序,云应用程序为运行在云服务器中的应用程序,云服务器用于将云应用程序的运行画面发送至终端进行显示。
可选地,上述云应用程序可以实现为不同类型的应用程序,如:云游戏、即时通讯应用程序、导航程序、多媒体播放程序、金融类应用程序等程序中的至少一种。
本申请实施例中,以云游戏为例进行说明,也即在云游戏在云服务器中的运行过程中,生成过程视频。
可选地,服务器中安装有云应用程序,在服务器中运行该云应用程序的过程中,渲染得到云应用程序的运行画面,对该画面进行编码后,将编码文件发送至终端,由终端对编码文件进行解码后播放,从而实现运行在云服务器中并显示在终端中的过程。
可选地,服务器中预先存储有该云应用程序的运行逻辑,服务器接收终端发送的控制指令后,根据控制指令以及预先存储的运行逻辑,控制云应用程序在服务器中运行,并产生运行画面。可选地,由图形处理器(Graphics Processing Unit,GPU)对运行画面进行渲染,并在桌面中显示运行画面。可选地,服务器可以通过显示器显示运行画面,或,服务器仅生成并编码运行画面,从而将编码文件发送至终端进行运行画面的显示。
可选地,服务器与终端之间通过通信网络连接,当终端登录至云应用程序时,建立与服务器之间的通信网络连接,并向服务器发送控制指令,如:在终端中接收用户名和密码的输入操作后,获取输入的用户名和密码,将用户名和密码通过通信网络发送至服务器中,由服务器根据用户名密码进行登录后,将登陆后的程序运行画面的图像帧编码并发送至终端中进行播放。
示意性的,以云游戏为例进行说明,在终端中播放云游戏视频的过程中,接收在终端界面上的触摸操作,终端生成与该触摸操作对应的控制指令,服务器接收终端发送的控制指令后,根据控制指令判断被触发的游戏指令,并根据被触发的游戏指令进行对应的游戏逻辑运算,并根据游戏逻辑运算结果生成并渲染游戏画面,采集游戏画面以及从游戏画面的结构体信息中采集更新时刻,将更新时刻作为游戏画面的显示时间戳,编码该游戏画面。
步骤202,在云应用程序的运行过程中,从缓存区中采集桌面图像帧和桌面图像帧的渲染时刻。
可选地,桌面图像帧为当前刷新在桌面显示的图像帧,渲染时刻是指服务器的GPU对桌面图像帧进行渲染的时刻;可选地,渲染时刻从桌面图像帧的结构体信息中获取得到,也即,从缓存区中采集桌面图像帧的结构体信息,并从结构体信息中获取渲染时刻。
可选地,DDA通过DirectX图形基础结构(DirectX Graphics Infrastructure,DXGI)获取桌面图像帧,其中,DXGI为Windows系统中用户模式下最底层的图形设备接口,无论是Direct 2D还是Direct 3D都基于DXGI实现,DXGI直接与硬件进行数据交换,如:DXGI直接与显卡驱动直接进行数据交换。
示意性的,请参考图3,应用程序310通过用户模式下的驱动320与DXGI模块330进行数据交换,DXGI模块330与硬件340直接进行数据交换。
在图像数据交换的过程中,可选地,通过显卡的缓存区缓存GPU渲染好的桌面图像帧,并由显示器从缓存区中获取缓存的桌面图像帧,可选地,显示器根据用户或者硬件支持的刷新帧率定时从缓存区中获取最新缓存的桌面图像帧,并在显示器上显示成像。可选地,DDA从缓存区中获取GPU渲染好的桌面图像帧和结构体信息。
示意性的,图像输入显示的过程请参考图4,GPU410将渲染好的桌面图像帧存储至缓存区420,显示器400通过数字模拟转换器(Digital-to-Analog Conversion,DAC)430从缓存区420中获取渲染好的桌面图像帧进行显示成像。
值得注意的是,本申请实施例中的缓存区,以位于显卡中的缓存区为例进行说明。
可选地,缓存区中存储有桌面图像帧以及对应的结构体信息,其中,通过DDA接口的AcquireNextFrame方法从缓存区中采集桌面图像帧的结构体信息,示意性的,结构体信息包括如下信息:
LARGE_INTEGERLastPresentTime;
LARGE_INTEGERLastMouseUpdateTime;
UINTAccumulatedFrames;
BOOLRectsCoalesced;
BOOLProtectedContentMaskedOut;
DXGI_OUTDUPL_POINTER_POSITIONPointerPosition;
UINTTotalMetadataBufferSize;
UINTPointerShapeBufferSize;
其中,LARGE_INTEGER(64位数据结构)、UINT(无符号整型)、BOOL(布尔型变量)、DXGI_OUTDUPL_POINTER_POSITION用于指示数据类型。
LastPresentTime表示桌面图像帧的更新时刻,也即桌面图像帧在GPU中的渲染时刻,当桌面图像帧在GPU中渲染后,存储至缓存区时,对结构体信息中的LastPresentTime进行更新;LastMouseUpdateTime表示鼠标事件的更新时刻;AccumulatedFrames指示调用应用程序处理最后一个桌面图像帧以来,操作系统在桌面图像帧表面累积的帧数;RectsCoalesced指示操作系统是否通过合并脏区域积累更新;ProtectedContentMaskedOut指示桌面图像帧是否可能包含已禁用的受保护内容;PointerPosition指示DXGI_OUTDUPL的指针位置结构;TotalMetadataBufferSize指示缓存区的大小(用于存储桌面图像帧的更新元数据);PointerShapeBufferSize指示缓存区的大小(用于存储鼠标形状的新像素数据)。
可选地,结构体信息中包括的上述LastPresentTime数据,即为桌面图像帧的更新时刻,在GPU渲染得到桌面图像帧并在缓存区中进行存储时,更新结构体信息中的LastPresentTime数据。可选地,LastPresentTime数据通过显卡进行更新。
步骤203,根据渲染时刻确定桌面图像帧的显示时间戳,对桌面图像帧进行编码。
可选地,在对桌面图像帧进行编码时,需要结合显示时间戳进行编码,并在编码后对编码文件中的桌面图像帧标注解码时间戳,其中解码时间戳用于指示播放器对编码数据进行解码的时刻;而显示时间戳用于在解码得到解码数据后,指示对桌面图像帧进行播放的时刻。
可选地,上述LastPresentTime数据为基于查询高性能计数器(QueryPerformanceCounter,QPC)的数据,其中,QPC为Windows下提供的基于硬件计数器,用于获取高分辨率时间戳,基于QPC的时间戳能够精确到微秒us级别,也即上述LastPresentTime数据为高精度的更新时刻,用于指示桌面图像帧渲染更新的时间戳。
值得注意的是,上述从缓存区中采集桌面图像帧和桌面图像帧和结构体信息;以及对桌面图像帧进行编码,在同一个线程中同步串行处理。也即,采集和编码在同一个线程中同步串行处理,而无需使用多媒体定时器或自旋定时器。
可选地,针对中央处理器(Central Processing Unit,CPU)主频和内存较大的设备,通过至少两个线程进行桌面图像帧和结构体信息的采集,以减少编码处理延时抖动对稳定性的影响。也即,通过至少两个线程中的空闲线程,从缓存区中采集桌面图像帧和桌面图像帧的结构体信息。其中,当存在线程中采集有未经编码的桌面图像帧,而缓存区中需要继续刷新桌面图像帧,而导致单个线程的采集无法达到桌面图像帧的刷新频率时,通过空闲的线程实现采集过程。
可选地,对桌面图像帧进行编码后,得到编码文件,并将编码文件发送至终端,由终端进行解码后,播放云应用程序的程序视频。
综上所述,本申请实施例提供的视频编码方法,通过从缓存区中获取桌面图像帧及其对应的更新时刻,从而将更新时刻作为桌面图像帧在编码过程中的显示时间戳,由于更新时刻为桌面图像帧在GPU中渲染生成的时刻,从而与其在终端最终播放时的渲染时刻保持一致,避免由于编码时采用机器时间而导致的播放效果存在丢帧和跳帧的情况出现,提高了播放的准确率。
在一个可选的实施例中,渲染时刻为结构体信息中与QPC对应的数据,图5是本申请另一个示例性实施例提供的视频编码方法的流程图,以该方法应用于服务器中为例进行说明,如图5所示,该方法包括:
步骤501,运行云应用程序,云应用程序为运行在云服务器中的应用程序,云服务器用于将云应用程序的运行画面发送至终端进行显示。
可选地,服务器中安装有云应用程序,在服务器中运行该云应用程序的过程中,渲染得到云应用程序的运行画面,对该画面进行编码后,将编码文件发送至终端,由终端对编码文件进行解码后播放,从而实现运行在云服务器中并显示在终端中的过程。
可选地,服务器中预先存储有该云应用程序的运行逻辑,服务器接收终端发送的控制指令后,根据控制指令以及预先存储的运行逻辑,控制云应用程序在服务器中运行,并产生运行画面。可选地,由图形处理器(Graphics Processing Unit,GPU)对运行画面进行渲染,并在桌面中显示运行画面。可选地,服务器可以通过显示器显示运行画面,或,服务器仅生成并编码运行画面,从而将编码文件发送至终端进行运行画面的显示。
步骤502,在云应用程序的运行过程中,从缓存区中采集桌面图像帧和桌面图像帧的结构体信息。
可选地,桌面图像帧为当前刷新在桌面显示的图像帧,结构体信息中包括桌面图像帧的渲染时刻。可选地,结构体信息为桌面图像帧在渲染更新时同步更新的信息。
可选地,通过桌面访问接口DDA从缓存区中获取桌面数据,并从桌面数据中获取桌面图像帧以及结构体信息。
可选地,桌面图像帧为GPU渲染完毕后向缓存区缓存的图像数据。
可选地,DDA通过DirectX图形基础结构(DirectX Graphics Infrastructure,DXGI)获取桌面图像帧,其中,DXGI为Windows系统中用户模式下最底层的图形设备接口。
可选地,缓存区中存储有桌面图像帧以及对应的结构体信息,其中,通过DDA接口从缓存区中采集桌面图像帧和结构体信息。
可选地,结构体信息中包括LastPresentTime数据,即为桌面图像帧的渲染更新时刻,在GPU渲染桌面图像帧并将桌面图像帧存储至缓存区时,更新结构体信息中的LastPresentTime数据。
步骤503,从结构体信息中确定查询高性能计数器对应的时刻数据。
可选地,QPC为Windows下提供的基于硬件计数器,用于获取高分辨率时间戳,基于QPC的时间戳能够精确到微秒us级别。
可选地,结构体信息中包括LastPresentTime数据和LastMouseUpdateTime数据,皆为基于QPC的时刻数据。其中,LastPresentTime表示桌面图像帧的渲染更新时刻,也即桌面图像帧在GPU中的渲染时刻;LastMouseUpdateTime表示鼠标事件的更新时刻。
也即,从结构体信息中确定QPC对应的时刻数据。
步骤504,从时刻数据中确定渲染时刻,并根据渲染时刻确定桌面图像帧的显示时间戳。
在一个可选的实施例中,将渲染时刻确定为桌面图像帧的显示时间戳PTS。
可选地,从结构体信息中的时刻数据中确定LastPresentTime数据,也即桌面图像帧的渲染时刻,并将该桌面图像帧的渲染时刻确定为桌面图像帧在编码时的显示时间戳。也即,将桌面图像帧在终端中解码后显示的时刻,与在当前服务器中渲染更新的时刻保持一致。
步骤505,基于显示时间戳对桌面图像帧进行编码。
可选地,在对桌面图像帧进行编码时,需要结合显示时间戳进行编码,并在编码后对编码文件中的桌面图像帧标注解码时间戳,其中解码时间戳用于指示播放器对编码数据进行解码的时刻;而显示时间戳用于在解码得到解码数据后,指示对桌面图像帧进行播放的时刻。
值得注意的是,上述从缓存区中采集桌面图像帧和桌面图像帧和结构体信息;以及对桌面图像帧进行编码,在同一个线程中同步串行处理。也即,采集和编码在同一个线程中同步串行处理,而无需使用多媒体定时器或自旋定时器。
可选地,针对CPU主频和内存较大的设备,通过至少两个线程进行桌面图像帧和结构体信息的采集,以减少编码处理延时抖动对稳定性的影响。也即,通过至少两个线程中的空闲线程,从缓存区中采集桌面图像帧和桌面图像帧的结构体信息。其中,当存在线程中采集有未经编码的桌面图像帧,而缓存区中需要继续刷新桌面图像帧,而导致单个线程的采集无法达到桌面图像帧的刷新频率时,通过空闲的线程实现采集过程。
示意性的,请参考图6,GPU610将渲染好的桌面图像帧存储至显卡的缓存区620中,显示器600通过数字模拟转换器(DAC)630从缓存区620中获取渲染好的桌面图像帧进行显示成像。而另一方面,通过DDA接口640,从缓存区620中获取桌面图像帧以及结构体信息,并基于结构体信息中的QPC精度的LastPresentTime数据对桌面图像帧进行编码。
综上所述,本申请实施例提供的视频编码方法,通过从缓存区中获取桌面图像帧及其对应的更新时刻,从而将更新时刻作为桌面图像帧在编码过程中的显示时间戳,由于更新时刻为桌面图像帧在GPU中渲染生成的时刻,从而与其在终端最终播放时的渲染时刻保持一致,避免由于编码时采用机器时间而导致的播放效果存在丢帧和跳帧的情况出现,提高了播放的准确率。
本实施例提供的方法,使用了DDA里的LastPresentTime时间当作编码PTS时间戳,从而提高桌面采集帧率,提升采集编码出帧稳定抗性,当采集编码处理线程处理性能产生抖动时,由于编码里的PTS时间戳是DDA桌面刷新的时间戳,能很好防止采集编码处理抖动带来的卡顿和丢帧现象。
在一个可选的实施例中,桌面图像帧为GPU渲染后存储至缓存区的,用于传输至显示器进行显示成像的图像帧,图7是本申请另一个示例性实施例提供的视频编码方法的流程图,以该方法应用于服务器中为例进行说明,如图7所示,该方法包括:
步骤701,运行云应用程序,云应用程序为运行在云服务器中的应用程序,云服务器用于将云应用程序的运行画面发送至终端进行显示。
可选地,服务器中安装有云应用程序,在服务器中运行该云应用程序的过程中,渲染得到云应用程序的运行画面,对该画面进行编码后,将编码文件发送至终端,由终端对编码文件进行解码后播放,从而实现运行在云服务器中并显示在终端中的过程。
步骤702,在云应用程序的运行过程中,将图形处理器渲染的桌面图像帧存储至缓存区中,并更新结构体信息。
可选地,GPU渲染得到桌面图像帧后,将桌面图像帧存储至显卡的缓存区中。其中,缓存区包括一个前缓存区和n个后缓存区,n为正整数,图形处理器将当前需要更新显示在桌面的最新一帧桌面图像帧存储至前缓存区中,并将后显示的桌面图像帧存储至后缓存区中,后缓存区中的桌面图像帧根据顺序排队进入前缓存区中,并被显示器获取进行显示成像。
可选地,根据GPU将桌面图像帧渲染存储至缓存区中的时刻,对结构体信息进行更新,其中,将结构体信息中的LastPresentTime时间,更新至GPU最近一次将桌面图像帧渲染更新至缓存区的时刻。
步骤703,根据刷新帧率向显示器发送缓存区中的桌面图像帧进行显示成像。
可选地,显示器根据刷新帧率从缓存区中获取桌面图像帧进行显示成像,其中,显示器在获取时,从前缓存区中获取桌面图像帧进行显示成像。
步骤704,通过桌面访问接口从缓存区中获取桌面数据。
可选地,通过DDA接口从显卡的缓存区中获取桌面数据,其中,桌面数据中包括缓存区中当前存储的桌面图像帧和结构体信息。
步骤705,从桌面数据中获取桌面图像帧以及结构体信息。
可选地,桌面图像帧为当前刷新在桌面显示的图像帧,结构体信息中包括桌面图像帧的渲染时刻。
可选地,通过桌面访问接口DDA从缓存区中获取桌面数据,并从桌面数据中获取桌面图像帧以及结构体信息。
可选地,桌面图像帧为GPU渲染完毕后向缓存区缓存的图像数据。
可选地,DDA通过DXGI获取桌面图像帧,其中,DXGI为Windows系统中用户模式下最底层的图形设备接口。
步骤706,根据渲染时刻确定桌面图像帧的显示时间戳,对桌面图像帧进行编码。
可选地,结构体信息中包括LastPresentTime数据,表示桌面图像帧的更新时刻,也即桌面图像帧在GPU中的渲染时刻。
在一个可选的实施例中,将渲染时刻确定为桌面图像帧的显示时间戳PTS。
可选地,在对桌面图像帧进行编码时,需要结合显示时间戳进行编码,并在编码后对编码文件中的桌面图像帧标注解码时间戳,其中解码时间戳用于指示播放器对编码数据进行解码的时刻;而显示时间戳用于在解码得到解码数据后,指示对桌面图像帧进行播放的时刻。
综上所述,本申请实施例提供的视频编码方法,通过从缓存区中获取桌面图像帧及其对应的结构体信息,从而将结构体信息中指示的更新时刻作为桌面图像帧在编码过程中的显示时间戳,由于更新时刻为桌面图像帧在GPU中渲染生成的时刻,从而与其在终端最终播放时的渲染时刻保持一致,避免由于编码时采用机器时间而导致的播放效果存在丢帧和跳帧的情况出现,提高了播放的准确率。
本实施例提供的方法,在GPU渲染得到桌面图像帧并存储至显卡的显存中后,通过显示器从显存中获取桌面图像帧进行显示成像,以及通过DDA接口从显存中获取桌面图像帧和结构体信息进行编码,生成编码文件,从而在渲染显示桌面图像帧的同时完成对桌面图像帧的采集编码,提高了编码效率和准确率。
示意性的,请参考图8,其中,实心填充的区域810指示本申请提供的视频编码方法的出帧延迟情况的示意图,如图8所示,由于本申请实施例中,在编码时应用的PTS时间戳是DDA桌面刷新的时间戳,如果编码中有帧处理耗时比较多,后面的桌面图像帧无需考虑编码时间戳的间隔问题,也不用使用多媒体或自旋定时器控制出帧间隔,能更充分把以前在自旋定时器CPU空转的消耗充分跑在采集转码上,采集编码出帧延迟和帧率更稳定,有效减少用户卡顿和丢帧问题。
图9是本申请一个示例性实施例提供的视频编码装置的结构框图,如图9所示,该装置包括:
运行模块910,用于运行云应用程序,所述云应用程序为运行在云服务器中的应用程序,所述云服务器用于将所述云应用程序的运行画面发送至终端进行显示;
获取模块920,用于在所述云应用程序的运行过程中,从缓存区中采集桌面图像帧和所述桌面图像帧的渲染时刻,所述桌面图像帧为当前刷新在桌面显示的图像帧;
编码模块930,用于根据所述渲染时刻确定所述桌面图像帧的显示时间戳,对所述桌面图像帧进行编码。
在一个可选的实施例中,所述获取模块920,具体用于从所述结构体信息中确定查询高性能计数器对应的时刻数据;从所述时刻数据中确定所述渲染时刻。
在一个可选的实施例中,所述获取模块920,具体用于通过桌面访问接口从所述缓存区中获取桌面数据,所述桌面数据为与当前刷新在桌面显示的图像帧相关的数据;从所述桌面数据中获取所述桌面图像帧以及所述结构体信息。
在一个可选的实施例中,所述获取模块920,具体用于通过桌面访问接口从所述缓存区中获取桌面数据;从所述桌面数据中获取所述桌面图像帧以及所述结构体信息。
在一个可选的实施例中,所述装置,还包括:
更新模块940,用于将图形处理器渲染的所述桌面图像帧存储至所述缓存区中,并更新所述结构体信息;
传输模块950,用于根据刷新帧率向显示器发送所述缓存区中的桌面图像帧进行显示成像。
在一个可选的实施例中,所述从缓存区中采集桌面图像帧和所述桌面图像帧的渲染时刻,与所述对所述桌面图像帧进行编码,在同一个线程中同步串行处理。
在一个可选的实施例中,所述获取模块920,具体用于通过至少两个线程中的空闲线程,从所述缓存区中采集所述桌面图像帧和所述桌面图像帧的所述渲染时刻。
综上所述,本申请实施例提供的视频编码装置,通过从缓存区中获取桌面图像帧及其对应的更新时刻,从而将更新时刻作为桌面图像帧在编码过程中的显示时间戳,由于更新时刻为桌面图像帧在GPU中渲染生成的时刻,从而与其在终端最终播放时的渲染时刻保持一致,避免由于编码时采用机器时间而导致的播放效果存在丢帧和跳帧的情况出现,提高了播放的准确率。
需要说明的是:上述实施例提供的视频编码装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频编码装置与视频编码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图11示出了本申请一个示例性实施例提供的服务器的结构示意图。该具体来讲:
服务器1100包括中央处理单元(Central Processing Unit,CPU)1101、包括随机存取存储器(Random Access Memory,RAM)1102和只读存储器(Read Only Memory,ROM)1103的系统存储器1104,以及连接系统存储器1104和中央处理单元1101的系统总线1105。服务器1100还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(InputOutput System,I/O系统)1106,和用于存储操作系统1113、应用程序1114和其他程序模块1115的大容量存储设备1107。
基本输入/输出系统1106包括有用于显示信息的显示器1108和用于用户输入信息的诸如鼠标、键盘之类的输入设备1109。其中显示器1108和输入设备1109都通过连接到系统总线1105的输入输出控制器1110连接到中央处理单元1101。基本输入/输出系统1106还可以包括输入输出控制器1110以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1110还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备1107通过连接到系统总线1105的大容量存储控制器(未示出)连接到中央处理单元1101。大容量存储设备1107及其相关联的计算机可读介质为服务器1100提供非易失性存储。也就是说,大容量存储设备1107可以包括诸如硬盘或者紧凑型光盘只读存储器(Compact Disc Read Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、带电可擦可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)、闪存或其他固态存储其技术,CD-ROM、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1104和大容量存储设备1107可以统称为存储器。
根据本申请的各种实施例,服务器1100还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1100可以通过连接在系统总线1105上的网络接口单元1111连接到网络1112,或者说,也可以使用网络接口单元1111来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述实施例中提供的视频编码方法。
本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的视频编码方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种视频编码方法,其特征在于,所述方法包括:
运行云应用程序,所述云应用程序为运行在云服务器中的应用程序,所述云服务器用于将所述云应用程序的运行画面发送至终端进行显示;
在所述云应用程序的运行过程中,从缓存区中采集桌面图像帧和所述桌面图像帧的渲染时刻,所述桌面图像帧为当前刷新在桌面显示的图像帧,所述渲染时刻用于指示图形处理器对所述桌面图像帧进行渲染的时刻;其中,通过桌面访问接口从所述缓存区中获取桌面数据,并从所述桌面数据中获取所述桌面图像帧以及结构体信息,所述结构体信息中包括所述桌面图像帧在所述图形处理器中的所述渲染时刻;
根据所述渲染时刻确定所述桌面图像帧的显示时间戳,对所述桌面图像帧进行编码,其中,在对所述桌面图像帧进行编码时,通过结合所述显示时间戳进行编码,并在编码后对编码文件中的桌面图像帧标注解码时间戳,所述解码时间戳用于指示所述终端对编码数据进行解码的时刻,所述显示时间戳用于在解码得到解码数据后,指示所述终端对所述桌面图像帧进行播放的时刻;
其中,所述从缓存区中采集桌面图像帧和所述桌面图像帧的渲染时刻,与所述对所述桌面图像帧进行编码,在同一个线程中同步串行处理;通过至少两个线程中的空闲线程,从所述缓存区中采集所述桌面图像帧和所述桌面图像帧的所述渲染时刻。
2.根据权利要求1所述的方法,其特征在于,所述从所述缓存区中采集所述桌面图像帧的渲染时刻,包括:
从所述缓存区中采集所述桌面图像帧的所述结构体信息,所述结构体信息为所述桌面图像帧在渲染更新时同步更新的信息;
从所述结构体信息中获取所述渲染时刻。
3.根据权利要求2所述的方法,其特征在于,所述从所述结构体信息中获取所述渲染时刻,包括:
从所述结构体信息中确定查询高性能计数器对应的时刻数据;
从所述时刻数据中确定所述渲染时刻。
4.根据权利要求2所述的方法,其特征在于,所述从缓存区中采集桌面图像帧和所述桌面图像帧的渲染时刻,包括:
通过所述桌面访问接口从所述缓存区中获取所述桌面数据,所述桌面数据为与当前刷新在桌面显示的图像帧相关的数据;
从所述桌面数据中获取所述桌面图像帧以及所述结构体信息。
5.根据权利要求4所述的方法,其特征在于,所述通过桌面访问接口从所述缓存区中获取桌面数据之前,还包括:
将所述图形处理器渲染的所述桌面图像帧存储至所述缓存区中,并更新所述结构体信息;
根据刷新帧率向显示器发送所述缓存区中的桌面图像帧进行显示成像。
6.一种视频编码装置,其特征在于,所述装置包括:
运行模块,用于运行云应用程序,所述云应用程序为运行在云服务器中的应用程序,所述云服务器用于将所述云应用程序的运行画面发送至终端进行显示;
获取模块,用于在所述云应用程序的运行过程中,从缓存区中采集桌面图像帧和所述桌面图像帧的渲染时刻,所述桌面图像帧为当前刷新在桌面显示的图像帧,所述渲染时刻用于指示图形处理器对所述桌面图像帧进行渲染的时刻;其中,通过桌面访问接口从所述缓存区中获取桌面数据,并从所述桌面数据中获取所述桌面图像帧以及结构体信息,所述结构体信息中包括所述桌面图像帧在所述图形处理器中的所述渲染时刻;
编码模块,用于根据所述渲染时刻确定所述桌面图像帧的显示时间戳,对所述桌面图像帧进行编码,其中,在对所述桌面图像帧进行编码时,通过结合所述显示时间戳进行编码,并在编码后对编码文件中的桌面图像帧标注解码时间戳,所述解码时间戳用于指示所述终端对编码数据进行解码的时刻,所述显示时间戳用于在解码得到解码数据后,指示所述终端对所述桌面图像帧进行播放的时刻;其中,所述从缓存区中采集桌面图像帧和所述桌面图像帧的渲染时刻,与所述对所述桌面图像帧进行编码,在同一个线程中同步串行处理;通过至少两个线程中的空闲线程,从所述缓存区中采集所述桌面图像帧和所述桌面图像帧的所述渲染时刻。
7.根据权利要求6所述的装置,其特征在于,所述获取模块,具体用于从所述缓存区中采集所述桌面图像帧的所述结构体信息,所述结构体信息为所述桌面图像帧在渲染更新时同步更新的信息;从所述结构体信息中获取所述渲染时刻。
8.根据权利要求7所述的装置,其特征在于,所述获取模块,具体用于从所述结构体信息中确定查询高性能计数器对应的时刻数据;从所述时刻数据中确定所述渲染时刻。
9.根据权利要求6至8任一所述的装置,其特征在于,所述获取模块,具体用于通过所述桌面访问接口从所述缓存区中获取所述桌面数据,所述桌面数据为与当前刷新在桌面显示的图像帧相关的数据;从所述桌面数据中获取所述桌面图像帧以及所述结构体信息。
10.根据权利要求9所述的装置,其特征在于,所述装置,还包括:
更新模块,用于将所述图形处理器渲染的所述桌面图像帧存储至所述缓存区中,并更新所述结构体信息;
传输模块,用于根据刷新帧率向显示器发送所述缓存区中的桌面图像帧进行显示成像。
11.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至5任一所述的视频编码方法。
12.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至5任一所述的视频编码方法。
CN202010691256.7A 2020-07-17 2020-07-17 视频编码方法、装置、设备及可读存储介质 Active CN111654720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010691256.7A CN111654720B (zh) 2020-07-17 2020-07-17 视频编码方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010691256.7A CN111654720B (zh) 2020-07-17 2020-07-17 视频编码方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN111654720A CN111654720A (zh) 2020-09-11
CN111654720B true CN111654720B (zh) 2023-08-25

Family

ID=72349010

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010691256.7A Active CN111654720B (zh) 2020-07-17 2020-07-17 视频编码方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN111654720B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112422876B (zh) * 2020-10-14 2024-07-23 西安万像电子科技有限公司 图像处理方法和服务器
CN112422875A (zh) * 2020-10-14 2021-02-26 西安万像电子科技有限公司 图像处理方法及装置
CN112614202B (zh) * 2020-12-24 2023-07-14 北京元心科技有限公司 Gui渲染显示的方法、终端、服务器、电子设备及存储介质
CN114422829A (zh) * 2022-01-30 2022-04-29 杭州雾联科技有限公司 一种hdr云视频处理方法、系统及设备
CN115243088A (zh) * 2022-07-21 2022-10-25 苏州金螳螂文化发展股份有限公司 一种多主机视频帧级同步渲染方法
CN115278309A (zh) * 2022-09-27 2022-11-01 海马云(天津)信息技术有限公司 云应用渲染视频帧处理方法与装置
CN115695857B (zh) * 2022-12-29 2023-03-21 北京海誉动想科技股份有限公司 云应用的视频编码方法及装置
CN117237545B (zh) * 2023-11-13 2024-02-09 武汉泽塔云科技股份有限公司 基于云桌面环境进行3d立体测图的方法、系统及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106664458A (zh) * 2014-07-29 2017-05-10 高通股份有限公司 用于无线显示的直接流式传输
US9674255B1 (en) * 2014-03-26 2017-06-06 Amazon Technologies, Inc. Systems, devices and methods for presenting content
CN107566889A (zh) * 2017-09-15 2018-01-09 深圳国微技术有限公司 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质
CN109302637A (zh) * 2018-11-05 2019-02-01 腾讯科技(成都)有限公司 图像处理方法、图像处理装置和电子设备
CN109348252A (zh) * 2018-11-01 2019-02-15 腾讯科技(深圳)有限公司 视频播放方法、视频传输方法、装置、设备及存储介质
CN109672776A (zh) * 2017-10-16 2019-04-23 华为技术有限公司 显示动态图像的方法及终端
CN110647375A (zh) * 2019-09-23 2020-01-03 天津卓朗科技发展有限公司 云桌面的图像渲染方法、装置和云服务器
US10537799B1 (en) * 2018-03-23 2020-01-21 Electronic Arts Inc. User interface rendering and post processing during video game streaming
CN111245680A (zh) * 2020-01-10 2020-06-05 腾讯科技(深圳)有限公司 检测云游戏响应延迟的方法、装置、系统、终端和服务器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8253732B2 (en) * 2008-01-03 2012-08-28 International Business Machines Corporation Method and system for remote visualization client acceleration
US8872895B2 (en) * 2011-09-30 2014-10-28 Deutsche Telekom Ag Real-time video coding using graphics rendering contexts
US9940898B2 (en) * 2016-02-25 2018-04-10 Nvidia Corporation Variable refresh rate video capture and playback
US10594901B2 (en) * 2017-11-17 2020-03-17 Ati Technologies Ulc Game engine application direct to video encoder rendering
CN108111532A (zh) * 2018-01-05 2018-06-01 上海小蚁科技有限公司 视频流数据的播放控制方法及装置、存储介质、终端

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9674255B1 (en) * 2014-03-26 2017-06-06 Amazon Technologies, Inc. Systems, devices and methods for presenting content
CN106664458A (zh) * 2014-07-29 2017-05-10 高通股份有限公司 用于无线显示的直接流式传输
CN107566889A (zh) * 2017-09-15 2018-01-09 深圳国微技术有限公司 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质
CN109672776A (zh) * 2017-10-16 2019-04-23 华为技术有限公司 显示动态图像的方法及终端
US10537799B1 (en) * 2018-03-23 2020-01-21 Electronic Arts Inc. User interface rendering and post processing during video game streaming
CN109348252A (zh) * 2018-11-01 2019-02-15 腾讯科技(深圳)有限公司 视频播放方法、视频传输方法、装置、设备及存储介质
CN109302637A (zh) * 2018-11-05 2019-02-01 腾讯科技(成都)有限公司 图像处理方法、图像处理装置和电子设备
CN110647375A (zh) * 2019-09-23 2020-01-03 天津卓朗科技发展有限公司 云桌面的图像渲染方法、装置和云服务器
CN111245680A (zh) * 2020-01-10 2020-06-05 腾讯科技(深圳)有限公司 检测云游戏响应延迟的方法、装置、系统、终端和服务器

Also Published As

Publication number Publication date
CN111654720A (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
CN111654720B (zh) 视频编码方法、装置、设备及可读存储介质
US11909984B2 (en) Video encoding and decoding for cloud gaming
US10229651B2 (en) Variable refresh rate video capture and playback
US9454282B2 (en) Sending application input commands over a network
US20180199041A1 (en) Altering streaming video encoding based on user attention
CN113457160B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
US10438313B2 (en) Systems and methods for streaming video games using GPU command streams
WO2022257699A1 (zh) 图像画面显示方法、装置、设备、存储介质及程序产品
WO2021147414A1 (zh) 视频消息生成方法、装置、电子设备及存储介质
CN106331877A (zh) 弹幕播放方法及装置
CN112272327B (zh) 数据处理方法、装置、存储介质及设备
CN112153082B (zh) 一种在安卓系统中平滑显示实时流视频画面的方法及装置
CN113542757A (zh) 云应用的图像传输方法、装置、服务器及存储介质
CN112843676B (zh) 数据处理方法、装置、终端、服务器及存储介质
KR20220062095A (ko) 랙 검출 방법 및 장치, 디바이스, 판독 가능형 저장 매체
KR102110195B1 (ko) 응용 프로그램의 스트리밍 영상 제공 장치 및 방법
WO2017129118A1 (zh) 图形指令数据的处理方法和装置及系统
CN111359220B (zh) 游戏广告生成方法、装置和计算机设备
WO2023011033A1 (zh) 图像处理方法、装置、计算机设备及存储介质
CN115955590A (zh) 视频处理方法、装置、计算机设备、介质
CN116208623B (zh) 信息同步方法、装置、引擎服务器及存储介质
CN111111163B (zh) 管理计算资源的方法、设备和电子设备
CN113709574A (zh) 视频截图方法、装置、电子设备及计算机可读存储介质
WO2023020270A1 (zh) 解码处理方法、装置、计算机设备及存储介质
CN117319696A (zh) 直播视频的播放控制方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40028610

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant