CN112422963A - 云计算机***、编码方法、装置、设备及存储介质 - Google Patents

云计算机***、编码方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112422963A
CN112422963A CN202011284989.5A CN202011284989A CN112422963A CN 112422963 A CN112422963 A CN 112422963A CN 202011284989 A CN202011284989 A CN 202011284989A CN 112422963 A CN112422963 A CN 112422963A
Authority
CN
China
Prior art keywords
preset
format
client
encoding
utilization rate
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.)
Granted
Application number
CN202011284989.5A
Other languages
English (en)
Other versions
CN112422963B (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.)
Hangzhou Wulian Technology Co ltd
Original Assignee
Hangzhou Wulian Technology 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 Hangzhou Wulian Technology Co ltd filed Critical Hangzhou Wulian Technology Co ltd
Priority to CN202011284989.5A priority Critical patent/CN112422963B/zh
Publication of CN112422963A publication Critical patent/CN112422963A/zh
Application granted granted Critical
Publication of CN112422963B publication Critical patent/CN112422963B/zh
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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • 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/10Protocols in which an application is distributed across nodes in the network
    • 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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

Landscapes

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

Abstract

本申请公开了一种云计算机***、编码方法、装置、设备及存储介质,包括:检测本地资源的使用率是否满足预设使用率条件,如果否,则将第一预设编码格式确定为目标编码格式;如果是,则判断客户端的解码能力是否满足与第二预设编码格式对应的解码条件,如果是,则将所述第二预设编码格式确定为目标编码格式;利用所述目标编码格式进行编码,并将编码后数据发送至所述客户端,以便所述客户端对所述编码后数据进行解码。本申请根据客户端的解码能力以及主机端的实时资源使用率情况,动态切换编码格式,在不降低主机端和客户端当前的分辨率、帧率和延时性能的情况下,提升画面显示整体性能。

Description

云计算机***、编码方法、装置、设备及存储介质
技术领域
本发明涉及通信技术领域,特别涉及一种云计算机***、编码方法、装置、设备及存储介质。
背景技术
随着5G网络以及软硬件技术的发展,编解码技术得到了飞速的发展,但对于需要主机端进行编码且在客户端进行解码显示的业务,由于主机端和客户端的编解码性能不一样,主机端采用高性能的编码能力时,客户端不具备与主机端的高性能的编码能力对应的解码能力,无法对接收到的主机端发送的编码数据进行有效解码,严重影响客户端的画质性能,如何根据主机端和客户端的性能实时切换编码格式以达到最佳的画质性能是解决上述技术问题的关键所在。例如,在云计算机***中,云游戏是云计算机***中的一个重要分支,如何在不降低云计算机***的分辨率、帧率、延时性能情况下改善***的画质、提升用户体验是云游戏发展的终极优化目标。
发明内容
有鉴于此,本发明的目的在于提供一种云计算机***、编码方法、装置、设备及存储介质,能够在不降低主机端和客户端当前的分辨率、帧率和延时性能的情况下,根据客户端的解码能力以及主机端的实时资源使用率情况,动态切换编码格式,提升画面显示整体性能。其具体方案如下:
本申请的第一方面提供了一种编码方法,应用于主机端,包括:
检测本地资源的使用率是否满足预设使用率条件,如果否,则将第一预设编码格式确定为目标编码格式;
如果是,则判断客户端的解码能力是否满足与第二预设编码格式对应的解码条件,如果是,则将所述第二预设编码格式确定为目标编码格式;
利用所述目标编码格式进行编码,并将编码后数据发送至所述客户端,以便所述客户端对所述编码后数据进行解码。
可选的,所述检测本地资源的使用率是否满足预设使用率条件,如果否,则将第一预设编码格式确定为目标编码格式,包括:
确定本地的GPU资源使用率、本地的CPU资源使用率以及本地的D3D资源使用率;
如果所述GPU资源使用率大于预设GPU资源使用率和/或所述CPU资源使用率大于预设CPU资源使用率和/或所述D3D资源使用率大于预设D3D资源使用率,则将第一预设编码格式确定为目标编码格式。
可选的,所述判断客户端的解码能力是否满足第二预设编码格式对应的解码条件,如果是,则将所述第二预设编码格式确定为目标编码格式,包括:
确定客户端是否支持所述第二预设编码格式对应的硬件解码,如果是,则将所述第二预设编码格式确定为目标编码格式;
如果否,则获取本地画面的实时帧率,并判断所述实时帧率是否小于所述客户端的软件解码过程对应的最大帧率,如果是,则将所述第二预设编码格式确定为目标编码格式。
可选的,所述获取本地画面的实时帧率,包括:
监测本地画面是否发生变化,如果是,则对所述本地画面进行抓屏,以得到所述本地画面的实时帧率。
可选的,所述检测本地资源的使用率是否满足预设使用率条件,包括:
按照预设检测周期,检测本地资源的使用率是否满足预设使用率条件。
可选的,所述利用所述目标编码格式进行编码之前,还包括:
确定当前的编码格式;
若连续预设次数的目标编码格式一致且与所述当前的编码格式不一致,则执行利用所述目标编码格式进行编码的步骤。
本申请的第二方面提供了一种云计算机***,包括主机端和客户端,其中:
所述客户端,用于将表征自身解码能力的信息传递至所述主机端;
所述主机端,用于检测本地资源的使用率是否满足预设使用率条件,如果否,则将第一预设编码格式确定为目标编码格式;如果是,则判断所述客户端的解码能力是否满足与第二预设编码格式对应的解码条件,如果是,则将所述第二预设编码格式确定为目标编码格式;利用所述目标编码格式进行编码,并将编码后数据发送至所述客户端;
所述客户端,还用于对所述编码后数据进行解码。
本申请的第三方面提供了一种编码装置,包括:
第一确定模块,用于检测本地资源的使用率是否满足预设使用率条件,如果否,则将第一预设编码格式确定为目标编码格式;
第二确定模块,用于当本地资源的使用率满足所述预设使用率条件,则判断客户端的解码能力是否满足与第二预设编码格式对应的解码条件,如果是,则将所述第二预设编码格式确定为目标编码格式;
编码模块,用于利用所述目标编码格式进行编码,并将编码后数据发送至所述客户端,以便所述客户端对所述编码后数据进行解码。
本申请的第四方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述编码方法。
本申请的第五方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述编码方法。
本申请中,主机端首先检测本地资源的使用率是否满足预设使用率条件,如果否,则将第一预设编码格式确定为目标编码格式,如果是,则判断客户端的解码能力是否满足与第二预设编码格式对应的解码条件,如果所述客户端的解码能力满足与第二预设编码格式对应的解码条件,则将所述第二预设编码格式确定为目标编码格式,然后利用所述目标编码格式进行编码,并将编码后数据发送至所述客户端,以便所述客户端对所述编码后数据进行解码。可见,本申请根据客户端的解码能力以及主机端的实时资源使用率情况,动态切换编码格式,在不降低主机端和客户端当前的分辨率、帧率和延时性能的情况下,提升画面显示整体性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种编码方法流程图;
图2为本申请提供的一种具体的编码方法示意图;
图3为本申请提供的一种具体的编码方法流程图;
图4为本申请提供的一种具体的应用于云计算机***中的编码方案示意图;
图5为本申请提供的一种编码装置结构示意图;
图6为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,由于主机端和客户端的编解码性能不一样,主机端采用高性能的编码能力时,客户端不具备与主机端的高性能的编码能力对应的解码能力,无法对接收到的主机端发送的编码数据进行有效解码,严重影响客户端的画质性能,为了克服上述技术问题,本申请提供了一种编码方案,能够在不降低主机端和客户端当前的分辨率、帧率和延时性能的情况下,根据客户端的解码能力以及主机端的实时资源使用率情况,动态切换编码格式,提升画面显示整体性能。
图1为本申请实施例提供的一种编码方法流程图。参见图1所示,该编码方法包括:
S11:检测本地资源的使用率是否满足预设使用率条件,如果否,则将第一预设编码格式确定为目标编码格式。
本实施例中,所述主机端首先对本地资源的使用率情况进行检测,并判断所述本地资源的使用率是否满足预设使用率条件,根据判断结果确定目标编码格式,具体的,当所述本地资源的使用率不满足预设使用率条件时,将第一预设编码格式确定为目标编码格式,当所述本地资源的使用率满足预设使用率条件时,需要进行进一步的判断。由于不同的客户端在不同的时刻,利用所述主机端执行的任务各不相同,不同的任务消耗所述主机端的资源情况也并不相同,本实施例中所述的本地资源的使用率包括CPU(CentralProcessing Unit,中央处理器)使用率、GPU(Graphics Processing Unit,图形处理器)使用率和D3D(Direct3D,3D加速卡)使用率,当然,针对所述主机端,本地资源的使用率包括但不限于所述例如CPU资源使用率、GPU资源使用率和D3D资源使用率。例如,客户端利用所述主机端运行大型游戏或高运算量的计算工作,上述任务相对于播放音视频等要耗费所述主机端更多的CPU、GPU、D3D资源,所述本地资源的使用率就相对较高,而CPU的资源使用率、GPU的资源使用率以及D3D的资源使用率直接影响编码性能,剩余的资源不足以支持所述主机端利用较高性能的编码格式进行编码,因此需要对所述主机端的资源使用率进行实时检测,当检测到当前的主机端***不具有足够的资源,也即当检测到本地资源的使用率不满足预设使用率条件时,将具有较低性能的编码格式确定为目标编码格式。不难理解的是,本实施例中所述的第一预设编码格式的编码性能相对于第二预设编码格式的编码性能较弱。
S12:如果是,则判断客户端的解码能力是否满足与第二预设编码格式对应的解码条件,如果是,则将所述第二预设编码格式确定为目标编码格式。
本实施例中,当所述本地资源的使用率满足预设使用率条件时,进一步对所述客户端的解码能力进行判断,在所述客户端的解码能力满足与第二预设编码格式对应的解码条件的情况下,将所述第二预设编码格式确定为目标编码格式。本实施例中,所述客户端的解码能力信息在所述客户端与所述主机端进行连接时,所述主机端通过网络传输获取所述解码能力信息并存储在所述主机端上,所述客户端的解码能力信息包括所述客户端是否支持所述第二预设编码对应的硬件解码及所述客户端的与所述第二预设编码格式对应的软件解码过程中的最大帧率。不难理解的是,所述客户端的与所述第二预设编码格式对应的软件解码过程中的最大帧率是在当前的分辨率下所能达到的最大帧率,可以通过获取所述客户端在当前的分辨率下的不同任务状态下的帧率并进一步计算均值确定出所述最大帧率。需要说明的是,不同的客户端具有不同的解码能力,也即可能在具备硬件解码的同时所述最大帧率也满足相应的条件,也可能不具备硬件解码能力而所述最大帧率满足相应的条件,由于具备硬件解码性能力时所述客户端的解码性能较好,优先对所述客户端是否支持所述第二预设编码对应的硬件解码。
S13:利用所述目标编码格式进行编码,并将编码后数据发送至所述客户端,以便所述客户端对所述编码后数据进行解码。
本实施例中,所述目标编码格式可以是所述第一预设编码格式,也可以是所述第二预设编码格式,根据上述步骤确定目标编码格式并利用所述目标编码格式进行编码,同时将编码后数据通过网络传输发送至所述客户端,进行编码的数据的编码格式是根据所述客户端的解码能力信息及所述主机端的本地资源使用率情况进行实时动态确定的,因此所述客户端在接收到上述主机端通过网络传输发送的编码后的数据时利用合适的解码方法对所述编码后的数据进行解码,以最大限度提高所述客户端的画质性能。
具体的,当所述主机端的本地资源使用率满足预设使用率条件且所述客户端的解码能力是否满足与第二预设编码格式对应的解码条件时,所述主机端利用所述第二预设编码格式进行编码并将编码后的数据发送至所述客户端,所述客户端利用所述第二预设编码对应的硬件解码或软件解码对所述编码后的数据进行解码;当所述主机端的本地资源使用率满足预设使用率条件但所述客户端的解码能力不满足与第二预设编码格式对应的解码条件时,所述客户端利用所述第一预设编码对应的硬件解码或软件解码对所述编码后的数据进行解码;当所述主机端的本地资源使用率满足预设使用率不满足预设的使用率条件时,所述客户端利用所述第一预设编码对应的硬件解码或软件解码对所述编码后的数据进行解码。
可见,本申请实施例首先检测本地资源的使用率是否满足预设使用率条件,如果否,则将第一预设编码格式确定为目标编码格式,如果是,则判断客户端的解码能力是否满足与第二预设编码格式对应的解码条件,如果所述客户端的解码能力满足与第二预设编码格式对应的解码条件,则将所述第二预设编码格式确定为目标编码格式,然后利用所述目标编码格式进行编码,并将编码后数据发送至所述客户端,以便所述客户端对所述编码后数据进行解码。上述过程根据客户端的解码能力以及主机端的实时资源使用率情况,动态切换编码格式,在不降低主机端和客户端当前的分辨率、帧率和延时性能的情况下,提升画面显示整体性能。
图2为本申请实施例提供的一种具体的编码方法流程图。参见图2所示,该编码方法包括:
S21:确定本地的GPU资源使用率、本地的CPU资源使用率以及本地的D3D资源使用率,如果所述GPU资源使用率大于预设GPU资源使用率和/或所述CPU资源使用率大于预设CPU资源使用率和/或所述D3D资源使用率大于预设D3D资源使用率,则将第一预设编码格式确定为目标编码格式。
本实施例中,通过对本地的GPU资源使用率、本地的CPU资源使用率以及本地的D3D资源使用率进行实时计算确定本地资源的使用率,并进一步判断所述本地资源的使用率是否满足预设的使用率条件,具体的,判断所述GPU资源使用率是否大于预设GPU资源使用率、所述CPU资源使用率是否大于预设CPU资源使用率、所述D3D资源使用率是否大于预设D3D资源使用率,如果所述GPU资源使用率大于预设GPU资源使用率和/或所述CPU资源使用率大于预设CPU资源使用率和/或所述D3D资源使用率大于预设D3D资源使用率,当所述GPU资源使用率、本地的CPU资源使用率以及本地的D3D资源满足上述条件组合的情况下,说明所述主机端的资源使用率较高,剩余资源不足以支持所述主机端利用比所述第一预设编码格式对应的性能更高的编码格式进行编码,此时将所述第一预设编码格式确定为目标编码格式。需要说明的是,本实施例不对所述预设GPU资源使用率、预设CPU资源使用率和预设D3D资源使用率进行限定,可以根据经验值和业务需求自行设定,例如所述预设GPU资源使用率可以为80%、预设CPU资源使用率为90%和预设D3D资源使用率为70%。
S22:如果所述GPU资源使用率不大于预设GPU资源使用率、所述CPU资源使用率不大于预设CPU资源使用率且所述D3D资源使用率不大于预设D3D资源使用率,则确定客户端是否支持所述第二预设编码格式对应的硬件解码,如果是,则将所述第二预设编码格式确定为目标编码格式。
S23:如果否,则获取本地画面的实时帧率,并判断所述实时帧率是否小于所述客户端的与所述第二预设编码格式对应的软件解码过程中的最大帧率,如果是,则将所述第二预设编码格式确定为目标编码格式。
本实施例中,当所述主机端的GPU资源使用率不大于预设GPU资源使用率、所述CPU资源使用率不大于预设CPU资源使用率且所述D3D资源使用率不大于预设D3D资源使用率时,说明所述主机端具备比所述第一预设编码格式更高的编码性能也即所述第二预设编码性能,为了能实现所述主机端和所述客户端的最佳性能,需要进一步判断所述客户端是否支持与所述第二编码对应的解码能力,首先对确定所述客户端是否支持所述第二预设编码格式对应的硬件解码,如果支持,则将所述第二预设编码格式确定为目标编码格式,如果不支持,进行主机端的实时帧率检测,也即将所述画面的实时帧率与所述客户端的与所述第二预设编码格式对应的软件解码过程中的最大帧率进行判断,当所述本地画面的实时帧率不大于所述客户端的与所述第二预设编码格式对应的软件解码过程中的最大帧率时,说明所述客户端能利用与所述第二预设编码格式对应的软件解码对编码后的数据在不丢帧的情况下进行准确解码。需要说明的是,本实施例中,所述主机端的实时帧率检测主要通过对本地画面进行监测,如果发生变化,则对所述本地画面进行抓屏,以确定所述本地画面的实时帧率,当所述本地画面没有发生变化时,则不会抓屏。当然,所述主机端通过帧率检测软件也可以实施直接外显输出所述本地画面的实时帧率,本实施例对获取所述本地画面的实时帧率的方法不进行限定。
S24:利用所述目标编码格式进行编码,并将编码后数据发送至所述客户端,以便所述客户端对所述编码后数据进行解码。
本实施例中,关于上述步骤S24的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请实施例通过引入本地的GPU资源使用率、本地的CPU资源使用率以及本地的D3D资源使用率进一步确定本地资源的使用率,在不满足预设的资源使用率的情况下,将所述第一预设编码格式确定为目标编码格式,否则,进一步确定所述客户端是否支持所述第二预设编码格式对应的硬件解码,如果支持,则将所述第二预设编码格式确定为目标编码格式。如果不支持,则通过判断本地画面的实时帧率是否小于所述客户端的与所述第二预设编码格式对应的软件解码过程中的最大帧率以确定目标编码格式。上述方法综合考虑所述主机端的GPU资源使用率、CPU资源使用率、D3D资源使用率和所述客户端是否支持所述第二预设编码格式对应的硬件解码、与所述第二预设编码格式对应的软件解码过程中的最大帧率,以确定目标编码格式,实现所述主机端和所述客户端的最佳性能。
图3为本申请实施例提供的一种具体的编码方法流程图。参见图3所示,该编码方法包括:
S31:按照预设检测周期,检测本地资源的使用率是否满足预设使用率条件,如果否,则将第一预设编码格式确定为目标编码格式。
本实施例中,通过预先设定检测周期从而对检测本地资源的使用率是否满足预设使用率条件的检测频率进行控制,避免频繁切换编码方式给所述主设备和所述从设备带来负载负担,所述预设检测周期根据业务实际需求进行设定,例如可以设定为五分钟,即所述主设备的检测频率在每五分钟检测一次。
S32:如果是,则判断客户端的解码能力是否满足与第二预设编码格式对应的解码条件,如果是,则将所述第二预设编码格式确定为目标编码格式。
本实施例中,关于上述步骤S32的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
S33:确定当前的编码格式,若连续预设次数的目标编码格式一致且与所述当前的编码格式不一致,则执行利用所述目标编码格式进行编码的步骤。
本实施例中,由于受到所述主机端运行性能、网络延时等的影响,所述目标编码格式的确定结果可能存在一定程度的偏差,因此,在执行利用所述目标编码格式进行编码的步骤之前,需要对上述步骤中确定的所述目标格式进行再次的确认,具体的,首先确定当前的编码格式,然后判断连续预设次数的目标编码格式是否一致且与所述当前的编码格式是否不一致,如果是,则将当前的编码格式切换为所述目标编码格式进行编码,另外,所述预设次数根据具体情况自行设定,本实施例不进行限定。例如,当前的编码格式为第一预设编码格式,连续重复执行三次步骤S31和步骤S32,得到三个目标编码格式,当上述三个目标编码格式都为第二预设编码格式时,将当前的第一预设编码格式切换为第二预设编码格式。
S34:利用所述目标编码格式进行编码,并将编码后数据发送至所述客户端,以便所述客户端对所述编码后数据进行解码。
本实施例中,关于上述步骤S34的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请实施例一方面通过引入预设检测周期对所述本地资源的使用率是否满足预设使用率条件进行检测,有效避免了编码方式的频繁切换,另一方面在利用所述目标编码格式进行编码之前进一步确定连续预设次数的目标编码格式是否一致且与当前的编码格式是否不一致,如果是,则利用所述目标编码格式进行编码,上述步骤避免了由于网络延时等带来的编码误判,进一步提高了所述主机端提供与所述客户端的解码能力相适应的编码格式的准确度,最大限度实现所述主机端和所述客户端的编解码性能。
下面以云计算机***中的YUV420编码格式和YUV444编码格式的切换为例,图4为本申请提供的具体的上述编码方法的示意图,参见图4所示对本申请中的技术方案进行说明。
编解码技术作为云计算机***中的重要环节,对画质有着非常重大的影响。随着编解码技术标准从H.264、H.265甚至H.266和AV1等的发展,视频压缩率越来越高,但是目前基于云计算机***中,考虑到延时要求,只能使用支持硬编的H.264或者H.265编码标准。在H.264或者H.265编码标准中,一般源是YUV420格式的,Y代表明亮度,U和V表示的则是色度,由于YUV420格式的U、V分量具有比Y分量更低的采样率,所以对于如黑底红字等场景中画质有较明显的损失。现有技术中,主要采用YUV444编码方式来改善,由于在客户端,YUV444硬件解码并没有被各大硬件厂商支持,普及率不高,YUV444软件解码性能受限,无法满足云计算机***中的高帧率要求。且在服务端,YUV444硬编码需要消耗比YUV420硬编码更多的资源,也会影响到整体性能。如果简单地全部切换到YUV444编码方式,会导致某些场景下云计算机***性能的下降。
本实施例中所述的云计算机***包括客户端和主机端,所述客户端和主机端通过网络传输模块进行通信,所述客户端包括解码模块和渲染模块,所述主机端包括抓屏模块和编码模块。其中,所述客户端通过所述网络传输模块将表征自身解码能力的信息传递至所述主机端,所述主机端的编码模块和抓屏模块用于在本地资源的使用率不满足预设使用率条件的情况下,将YUV420编码格式确定为目标编码格式,否则,进一步判断所述客户端的解码能力是否满足与YUV444编码格式对应的解码条件,如果是,则将所述YUV444编码格式确定为目标编码格式;利用所述目标编码格式进行编码,并将编码后数据通过所述数据通信模块发送至所述客户端,以便所述客户端的解码模块对所述编码后的数据进行解码。
具体的,假设当前主机端的编码格式为YUV420,在云计算机***的客户端和主机端建立连接后,先判断所述客户端的硬件解码能力,是否支持YUV444的硬件解码,如果不支持硬件解码,则检测所述客户端对于当前分辨率下YUV444软件解码的帧率最大值,将上述客户端的解码能力信息通过网络传输模块发送给所述主机端,所述主机端接收并存储所述客户端的解码能力信息。其次,实时检测所述主机端的GPU资源使用率,在一种实施例中,如果当前GPU使用率大于预设GPU使用率阈值80%和/或CPU使用率大于预设CPU使用率阈值90%和/或D3D使用率大于预设D3D使用率阈值70%,则将YUV420确定为目标编码格式,五分钟后第二次执行上述实时检测步骤,结果为将YUV420确定为目标编码格式,再过五分钟后第三次执行上述实时检测步骤,结果为将YUV420确定为目标编码格式,上述三个检测结果一致且与当前的目标编码格式一致,则继续利用YUV420编码格式进行编码。在另一种实施例中,如果当前GPU使用率不大于预设GPU使用率阈值80%、CPU使用率不大于预设CPU使用率阈值90%且D3D使用率不大于预设D3D使用率阈值70%,则进一步确认所述客户端是否支持YUV444硬件解码,如果支持,则将YUV444确定为目标编码格式,五分钟后第二次执行上述实时检测步骤,结果为将YUV444确定为目标编码格式,再过五分钟后第三次执行上述实时检测步骤,结果为将YUV420确定为目标编码格式,上述三个检测结果不一致,则不对当前的编码格式进行切换,所述主机端继续利用YUV420编码格式进行编码。相应的,在另一种实施例中,如果所述客户端不支持YUV444硬件解码,则获取本地画面的实时帧率,并判断所述实时帧率是否小于所述客户端的与YUV444编码格式对应的软件解码过程中的最大帧率,如果是,则将YUV444确定为目标编码格式,五分钟后第二次执行上述实时检测步骤,结果为将YUV444确定为目标编码格式,再过五分钟后第三次执行上述实时检测步骤,结果为将YUV444确定为目标编码格式,上述三个检测结果一致且与当前的目标编码格式不一致,将当前的YUV420编码格式切换为YUV444编码格式进行编码。
参见图5所示,本申请实施例还相应公开了一种编码装置,包括:
第一确定模块11,用于检测本地资源的使用率是否满足预设使用率条件,如果否,则将第一预设编码格式确定为目标编码格式;
第二确定模块12,用于当本地资源的使用率满足所述预设使用率条件,则判断客户端的解码能力是否满足与第二预设编码格式对应的解码条件,如果是,则将所述第二预设编码格式确定为目标编码格式;
编码模块13,用于利用所述目标编码格式进行编码,并将编码后数据发送至所述客户端,以便所述客户端对所述编码后数据进行解码。
可见,本申请实施例根据客户端的解码能力以及主机端的实时资源使用率情况,动态切换编码格式,在不降低主机端和客户端当前的分辨率、帧率和延时性能的情况下,提升画面显示整体性能。
在一些具体实施例中,所述第一确定模块11,具体包括:
检测单元,用于按照预设检测周期,确定本地的GPU资源使用率、本地的CPU资源使用率以及本地的D3D资源使用率;
判断单元,用于如果所述GPU资源使用率大于预设GPU资源使用率和/或所述CPU资源使用率大于预设CPU资源使用率和/或所述D3D资源使用率大于预设D3D资源使用率,则将第一预设编码格式确定为目标编码格式。
在一些具体实施例中,所述第二确定模块12,具体包括:
解码能力判断单元,用于确定客户端是否支持所述第二预设编码格式对应的硬件解码,如果是,则将所述第二预设编码格式确定为目标编码格式,如果否,则获取本地画面的实时帧率,并判断所述实时帧率是否小于所述客户端的与所述第二预设编码格式对应的软件解码过程中的最大帧率,如果是,则将所述第二预设编码格式确定为目标编码格式;
帧率获取单元,用于监测本地画面是否发生变化,如果是,则对所述本地画面进行抓屏,以得到所述本地画面的实时帧率。
在一些具体实施例中,所述编码装置还包括:
比较模块,用于确定当前的编码格式,若连续预设次数的目标编码格式一致且与所述当前的编码格式不一致,则执行利用所述目标编码格式进行编码的步骤。
进一步的,本申请实施例还提供了一种电子设备。图6是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的编码方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作***221、计算机程序222及编解码数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作***221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量编解码数据223的运算与处理,其可以是WindowsServer、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的会话意图识别方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20收集到的各种编解码数据。
进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的编码方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的云计算机***、编码方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种编码方法,其特征在于,应用于主机端,包括:
检测本地资源的使用率是否满足预设使用率条件,如果否,则将第一预设编码格式确定为目标编码格式;
如果是,则判断客户端的解码能力是否满足与第二预设编码格式对应的解码条件,如果是,则将所述第二预设编码格式确定为目标编码格式;
利用所述目标编码格式进行编码,并将编码后数据发送至所述客户端,以便所述客户端对所述编码后数据进行解码。
2.根据权利要求1所述的编码方法,其特征在于,所述检测本地资源的使用率是否满足预设使用率条件,如果否,则将第一预设编码格式确定为目标编码格式,包括:
确定本地的GPU资源使用率、本地的CPU资源使用率以及本地的D3D资源使用率;
如果所述GPU资源使用率大于预设GPU资源使用率和/或所述CPU资源使用率大于预设CPU资源使用率和/或所述D3D资源使用率大于预设D3D资源使用率,则将第一预设编码格式确定为目标编码格式。
3.根据权利要求2所述的编码方法,其特征在于,所述判断客户端的解码能力是否满足第二预设编码格式对应的解码条件,如果是,则将所述第二预设编码格式确定为目标编码格式,包括:
确定客户端是否支持所述第二预设编码格式对应的硬件解码,如果是,则将所述第二预设编码格式确定为目标编码格式;
如果否,则获取本地画面的实时帧率,并判断所述实时帧率是否小于所述客户端的与所述第二预设编码格式对应的软件解码过程中的最大帧率,如果是,则将所述第二预设编码格式确定为目标编码格式。
4.根据权利要求3所述的编码方法,其特征在于,所述获取本地画面的实时帧率,包括:
监测本地画面是否发生变化,如果是,则对所述本地画面进行抓屏,以得到所述本地画面的实时帧率。
5.根据权利要求1所述的编码方法,其特征在于,所述检测本地资源的使用率是否满足预设使用率条件,包括:
按照预设检测周期,检测本地资源的使用率是否满足预设使用率条件。
6.根据权利要求1至5任一项所述的编码方法,其特征在于,所述利用所述目标编码格式进行编码之前,还包括:
确定当前的编码格式;
若连续预设次数的目标编码格式一致且与所述当前的编码格式不一致,则执行利用所述目标编码格式进行编码的步骤。
7.一种云计算机***,其特征在于,包括客户端和主机端,其中:
所述客户端,用于将表征自身解码能力的信息传递至所述主机端;
所述主机端,用于检测本地资源的使用率是否满足预设使用率条件,如果否,则将第一预设编码格式确定为目标编码格式;如果是,则判断所述客户端的解码能力是否满足与第二预设编码格式对应的解码条件,如果是,则将所述第二预设编码格式确定为目标编码格式;利用所述目标编码格式进行编码,并将编码后数据发送至所述客户端;
所述客户端,还用于对所述编码后数据进行解码。
8.一种编码装置,其特征在于,包括:
第一确定模块,用于检测本地资源的使用率是否满足预设使用率条件,如果否,则将第一预设编码格式确定为目标编码格式;
第二确定模块,用于当本地资源的使用率满足所述预设使用率条件,则判断客户端的解码能力是否满足与第二预设编码格式对应的解码条件,如果是,则将所述第二预设编码格式确定为目标编码格式;
编码模块,用于利用所述目标编码格式进行编码,并将编码后数据发送至所述客户端,以便所述客户端对所述编码后数据进行解码。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至6任一项所述的编码方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至6任一项所述的编码方法。
CN202011284989.5A 2020-11-17 2020-11-17 云计算机***、编码方法、装置、设备及存储介质 Active CN112422963B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011284989.5A CN112422963B (zh) 2020-11-17 2020-11-17 云计算机***、编码方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011284989.5A CN112422963B (zh) 2020-11-17 2020-11-17 云计算机***、编码方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112422963A true CN112422963A (zh) 2021-02-26
CN112422963B CN112422963B (zh) 2024-05-31

Family

ID=74831832

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011284989.5A Active CN112422963B (zh) 2020-11-17 2020-11-17 云计算机***、编码方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112422963B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113327302A (zh) * 2021-05-26 2021-08-31 浙江大华技术股份有限公司 图片处理方法及装置、存储介质、电子装置
CN114390297A (zh) * 2021-12-22 2022-04-22 中国电信股份有限公司 通信***、配置方法、云端服务设备及存储介质
CN116055715A (zh) * 2022-05-30 2023-05-02 荣耀终端有限公司 编解码器的调度方法及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106034241A (zh) * 2015-03-19 2016-10-19 华为技术有限公司 一种多媒体重定向的方法、设备和***
CN106302073A (zh) * 2015-06-10 2017-01-04 中兴通讯股份有限公司 一种实现呼叫的方法和装置
CN108040258A (zh) * 2017-11-21 2018-05-15 北京臻迪科技股份有限公司 一种编码、解码方法、装置及***
CN108282164A (zh) * 2017-01-05 2018-07-13 腾讯科技(深圳)有限公司 一种数据编码及解码方法和装置
CN108322781A (zh) * 2018-02-08 2018-07-24 武汉噢易云计算股份有限公司 提升虚拟桌面中播放高清视频效果的方法及***
CN110225352A (zh) * 2019-06-27 2019-09-10 深圳市云语科技有限公司 一种基于能力协商的云游戏视频编解码选择方法
CN111447447A (zh) * 2020-04-03 2020-07-24 北京三体云联科技有限公司 直播编码方法、装置以及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106034241A (zh) * 2015-03-19 2016-10-19 华为技术有限公司 一种多媒体重定向的方法、设备和***
CN106302073A (zh) * 2015-06-10 2017-01-04 中兴通讯股份有限公司 一种实现呼叫的方法和装置
CN108282164A (zh) * 2017-01-05 2018-07-13 腾讯科技(深圳)有限公司 一种数据编码及解码方法和装置
CN108040258A (zh) * 2017-11-21 2018-05-15 北京臻迪科技股份有限公司 一种编码、解码方法、装置及***
CN108322781A (zh) * 2018-02-08 2018-07-24 武汉噢易云计算股份有限公司 提升虚拟桌面中播放高清视频效果的方法及***
CN110225352A (zh) * 2019-06-27 2019-09-10 深圳市云语科技有限公司 一种基于能力协商的云游戏视频编解码选择方法
CN111447447A (zh) * 2020-04-03 2020-07-24 北京三体云联科技有限公司 直播编码方法、装置以及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FANG SHENG: "What Affects Decoding Complexity of Distributed Video Codec Based on Turbo Code", 《 EIGHTH ACIS INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ARTIFICIAL INTELLIGENCE, NETWORKING, AND PARALLEL/DISTRIBUTED COMPUTING (SNPD 2007)》 *
陆许明, ET AL: "GPU协处理视频编码的服务平台设计", 《电脑知识与技术》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113327302A (zh) * 2021-05-26 2021-08-31 浙江大华技术股份有限公司 图片处理方法及装置、存储介质、电子装置
CN114390297A (zh) * 2021-12-22 2022-04-22 中国电信股份有限公司 通信***、配置方法、云端服务设备及存储介质
CN116055715A (zh) * 2022-05-30 2023-05-02 荣耀终端有限公司 编解码器的调度方法及电子设备
CN116055715B (zh) * 2022-05-30 2023-10-20 荣耀终端有限公司 编解码器的调度方法及电子设备

Also Published As

Publication number Publication date
CN112422963B (zh) 2024-05-31

Similar Documents

Publication Publication Date Title
CN112422963B (zh) 云计算机***、编码方法、装置、设备及存储介质
WO2022028089A1 (zh) 图像处理方法、装置、服务器及介质
CN111399964B (zh) 一种基于视频串流技术的云桌面平台
CN113015021B (zh) 云游戏的实现方法、装置、介质及电子设备
WO2017219896A1 (zh) 视频流的传输方法及装置
WO2021068598A1 (zh) 共享屏幕的编码方法、装置、存储介质及电子设备
US8995763B2 (en) Systems and methods for determining compression methods to use for an image
CN112929624B (zh) 一种编码方法、装置、电子设备及计算机可读存储介质
CN113489805B (zh) 一种云桌面***的对接方法、装置、设备及存储介质
EP3410302A1 (en) Graphic instruction data processing method, apparatus and system
CN110740316A (zh) 数据编码方法及装置
KR20120058227A (ko) 프리젠테이션 가상화를 위한 화면 부호화 방법 및 서버
CN102546803B (zh) 基于能力集的远端桌面通信方法
CN111836092A (zh) 一种虚拟桌面的数据处理方法、装置及相关组件
CN106686635B (zh) 基于无线接入点的控制和配置协议的数据传输方法和装置
CN114245175A (zh) 视频转码方法、装置、电子设备及存储介质
CN112929704A (zh) 数据传输方法、装置、电子设备以及存储介质
CN115278289B (zh) 一种云应用渲染视频帧处理方法与装置
CN114938408B (zh) 一种云手机的数据传输方法、***、设备及介质
CN115514960A (zh) 视频编码方法、装置、电子设备与存储介质
CN115633191A (zh) 视频播放方法、装置、***、电子设备与可读存储介质
TW201427354A (zh) 漸進式資料編碼傳輸系統及方法
CN110572703A (zh) 多媒体数据同步播放方法、***、终端及存储介质
JP2018514133A (ja) データ処理方法および装置
KR101251879B1 (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