CN112468818B - 视频通信的实现方法及装置、介质和电子设备 - Google Patents

视频通信的实现方法及装置、介质和电子设备 Download PDF

Info

Publication number
CN112468818B
CN112468818B CN202110089976.0A CN202110089976A CN112468818B CN 112468818 B CN112468818 B CN 112468818B CN 202110089976 A CN202110089976 A CN 202110089976A CN 112468818 B CN112468818 B CN 112468818B
Authority
CN
China
Prior art keywords
video
frame
coded
reference frame
encoded
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
CN202110089976.0A
Other languages
English (en)
Other versions
CN112468818A (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 CN202110089976.0A priority Critical patent/CN112468818B/zh
Publication of CN112468818A publication Critical patent/CN112468818A/zh
Application granted granted Critical
Publication of CN112468818B publication Critical patent/CN112468818B/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开涉及视频处理技术领域,具体提供一种视频通信的实现方法及装置,以及实现上述方法的计算机存储介质和电子设备。其中,该方法包括:根据视频下行方的网络带宽,确定每个视频下行方的第一网络拥塞等级;响应于存在大于预设值的第一网络拥塞等级,根据待编码帧的序列值以及待编码帧所在的层级对参考帧列表进行更新;根据更新后的参考帧列表进行可伸缩编码得到编码视频;基于编码视频进行视频上行方和每个视频下行方之间的视频通信。该方案能够有效减少进行SVC编码的客户端或服务端编码性能的压力,同时还提供了一种不依赖于支持SVC编码的硬件编码器的SVC编码方案,进而提供一种普适性较高的视频通信方案。

Description

视频通信的实现方法及装置、介质和电子设备
技术领域
本公开涉及视频处理技术领域,具体而言,涉及一种视频通信的实现方法及装置,以及实现上述方法的计算机存储介质和电子设备。
背景技术
随着科技以及通讯基建的高速发展,视频通信方式极大地方便了用户的生活与工作。多方参与的视频通信过程中,视频数据会被压缩有传输至各个视频下行方,以供下行方解码后观看。例如,在多方参与的实时视频会议时,可能存在下行带宽差异比较大的情况,若一个视频下行端出现网络异常,则会影响所有视频下行端正常观看视频,导致无法兼顾大多数用户的视频会议效果的问题。
针对上述问题,相关技术中一般会采用可伸缩视频编码(Scalable VideoCoding,简称:SVC)的方式进行视频编码,以兼顾不同网络状态的视频下行端。具体地,利用发送侧客户端(即,视频上行方)用户的编码器生成可兼容多个用户带宽能力的SVC码流,再通过接口机转发给不同接收能力的客户端用户。
然而,这对增加对客户端的编码性能压力,特别是会议场景下客户端可能存在多路视频上行和下行,对客户端编解码器性能的要求是一大挑战。同时,不同客户端采用的编码硬件不同,且并非所有的编码硬件均支持SVC编码,因此,相关技术提供的视频通信方式的普适性也有待提高。
需要说明的是,上述背景技术部分公开的信息仅用于加强对本公开的背景的理解。
发明内容
本公开的目的在于提供一种视频通信的实现方法及装置,以及实现上述方法的计算机存储介质和电子设备,进而至少在一定程度上减少对客户端编解码性能的压力,同时还提供一种普适性较高的视频通信方式。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种视频通信的实现方法,包括:根据视频下行方的网络带宽,确定每个视频下行方的第一网络拥塞等级;响应于存在大于预设值的第一网络拥塞等级,根据待编码帧的序列值以及所述待编码帧所在的层级对参考帧列表进行更新;根据更新后的参考帧列表进行可伸缩编码得到编码视频;以及,基于所述编码视频进行所述视频上行方和每个视频下行方之间的视频通信。
根据本公开的一个方面,提供一种视频通信的实现装置,包括:确定模块、参考帧列表更新模块、可伸缩编码模块,以及视频通信模块。
其中,上述确定模块,被配置为:根据视频下行方的网络带宽,确定每个视频下行方的第一网络拥塞等级;上述参考帧列表更新模块,被配置为:响应于存在大于预设值的第一网络拥塞等级,根据待编码帧的序列值以及上述待编码帧所在的层级对参考帧列表进行更新;上述可伸缩编码模块,被配置为:根据更新后的参考帧列表进行可伸缩编码得到编码视频;以及,上述视频通信模块,被配置为:基于上述编码视频进行上述视频上行方和每个视频下行方之间的视频通信。
在本公开的一些实施例中,基于前述方案,上述编码视频由S个视频帧组成,包括一个基本层和N个增强层,S、N为正整数;其中,上述参考帧列表更新模块,被具体配置为:对于增强层中序列值为i的待编码帧,获取待编码帧所在的层级为第j个增强层,i为大于1且不大于S的整数,j为不大于N的正整数;将处于第j, j+1, …, N个增强层且序列值小于i的视频帧在参考帧列表中删除以对参考帧列表进行更新。
在本公开的一些实施例中,基于前述方案,上述编码视频由S个视频帧组成,包括一个基本层和N个增强层,S、N为正整数;其中,上述参考帧列表更新模块,被具体配置为:对于基本层中序列值为i的待编码帧,i为大于1且不大于S的整数;将处于增强层且序列值小于i的视频帧在参考帧列表中删除以对参考帧列表进行更新。
在本公开的一些实施例中,基于前述方案,上述可伸缩编码模块,包括:参考帧确定单元和编码单元。
其中,上述参考帧确定单元被配置为:在更新后的参考帧列表中,获取序列值小于i的视频帧作为上述待编码帧的参考帧;以及,上述编码单元被配置为:根据上述参考帧对上述序列值为i的待编码帧进行可伸缩编码得到编码视频。
在本公开的一些实施例中,基于前述方案,上述参考帧确定单元被配置为:获取序列值小于i且序列值与上述待编码帧之间的差值较小的视频帧作为上述待编码帧的参考帧。
在本公开的一些实施例中,基于前述方案,上述参考帧确定单元被配置为:在N取值为2的情况下,上述参考帧的序列值k与上述待编码帧的序列值i之间的差值不大于4,k为大于1且不大于S的整数。
在本公开的一些实施例中,基于前述方案,上述参考帧确定单元被具体配置为:在N取值为2的情况下,对于处于增强层的待编码帧,上述参考帧的序列值k与上述待编码帧的序列值i之间的差值小于4;对于处于基本层的待编码帧,上述参考帧的序列值k与上述待编码帧的序列值i之间的差值为4。
在本公开的一些实施例中,基于前述方案,上述参考帧确定单元被配置为:在N取值为1的情况下,上述参考帧的序列值k与上述待编码帧的序列值i之间的差值不大于2,k为大于1且不大于S的整数。
在本公开的一些实施例中,基于前述方案,上述视频通信的实现装置,还包括:校验模块。
其中,上述校验模块被配置为:在上述可伸缩编码模块根据更新后的参考帧列表进行可伸缩编码得到编码视频之后,获取所述编码视频;解析所述编码视频中当前编码帧的帧头,得到所述当前编码帧对应的参考帧信息;以及,根据增强层的总个数N以及所述当前编码帧所在的增强层等级j,对所述参考帧信息进行校验。
在本公开的一些实施例中,基于前述方案,上述视频通信的实现装置,还包括:查询模块。
其中,上述查询模块被配置为:在上述可伸缩编码模块根据更新后的参考帧列表进行可伸缩编码得到编码视频之前,查询预先设置的硬件可伸缩视频编码设备列表以确定当前的硬件编码器是否符合可伸缩视频编码的要求。
在本公开的一些实施例中,基于前述方案,上述视频通信模块,被具体配置为:根据目标视频下行方的第一网络拥塞等级,在上述编码视频中确定出对上述目标视频下行方的待发送视频,并发送至上述目标视频下行方。
在本公开的一些实施例中,基于前述方案,上述视频通信模块,被具体配置为:响应于上述目标视频下行方的第一网络阻塞等级大于上述预设值,则将上述基本层或上述基本层和至少一层增强层确定为对上述目标视频下行方的待发送视频;或,响应于上述目标视频下行方的第一网络阻塞等级不大于上述预设值,则上述基本层和N层增强层确定为对上述目标视频下行方的待发送视频。
在本公开的一些实施例中,基于前述方案,上述视频通信的实现装置还包括:获取模块。
其中,上述获取模块被配置为:获取每个视频下行方的第二网络拥塞等级,响应于上述第二网络拥塞等级均不大于预设值,停止可伸缩编码。
在本公开的一些实施例中,基于前述方案,上述可伸缩编码模块还被配置为:响应于存在大于上述预设值的第二网络拥塞等级,继续进行可伸缩编码。
在本公开的一些实施例中,基于前述方案,上述获取模块,被具体配置为:在可伸缩编码持续第一预设时长之后,采取发送重传包的方式获取每个视频下行方的第二网络拥塞等级。
在本公开的一些实施例中,基于前述方案,上述可伸缩编码模块还被配置为:接收接口机发送的可伸缩编码第一关闭请求,其中,上述可伸缩编码第一关闭请求为上述接口机获取到是视频下行方的第二网络拥塞等级均小于预设值,且确定上述第二网络拥塞等级均小于预设值的状态持续第二预设时长的情况下发出的;接收每个上述视频下行方发送的可伸缩编码第二关闭请求;停止可伸缩编码。
根据本公开的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述视频通信的实现方法。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述视频通信的实现方法。
根据本公开的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质中读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的视频通信的实现方法。
在本公开的一些实施例所提供的技术方案中,一方面,在视频通信的视频下行方中存在网络拥塞时,才启动执行SVC编码方式。而在视频通信的视频下行方中不存在网络拥塞时,即停止执行SVC编码方式。通过动态启停SVC编码方式,能够有效减少对客户端或服务端编码性能的压力。另一方面,本技术方案采用动态管理参考帧列表的方式确定待编码帧的参考帧,进而执行SVC得到可伸缩的编码视频,具体地,对于序列值为i的待编码帧,先获取该待编码帧所在的增强层层级为j。然后将处于高于j的增强层且序列值小于i的视频帧在参考帧列表中删除。再在更新后的参考帧列表中,获取序列值小于i的视频帧作为该待编码帧的参考帧。本技术方案提供一种软件形式的SVC编码方案,也就是说,SVC编码不依赖于支持SVC编码的硬件编码器。从而,本公开提供一种普适性较高的视频通信方案。
本公开应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本公开实施例的技术方案的示例性系统架构的示意图。
图2示出了本申请示例性示出的视频编码器和视频解码器在流式传输环境中的放置方式的示意图。
图3示出了本申请一个实施例提供的帧间预测模式下的编码示意图。
图4示出了本申请一个实施例提供的帧内预测模式下的编码示意图。
图5示出了本申请一个实施例提供的IPPP帧结构的示意图。
图6示出了本申请一个实施例提供的SVC编码视频的层结构示意图。
图7示意性示出了根据本公开实施例中视频通信的实现方案的场景示意图。
图8示意性示出了根据本公开实施例中视频通信的实现方法的流程示意图。
图9示意性示出了根据本公开另一实施例中视频通信的实现方法的流程示意图。
图10示意性示出了根据本公开实施例中当前待编码帧的参考帧确定方法的流程示意图。
图11示出了本申请另一个实施例提供的SVC编码视频的层结构示意图。
图12a示出了本申请再一个实施例提供的SVC编码视频的层结构示意图。
图12b示出了本申请又一个实施例提供的SVC编码视频的层结构示意图。
图13示意性示出了根据本公开另一个实施例中视频通信的实现方法的流程示意图。
图14示意性示出了根据本公开再一个实施例中视频通信的实现方法的流程示意图。
图15示意性示出了根据本公开实施例中视频通信的实现装置的结构示意图。
图16示出本公开示例性实施例中电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了可以应用本公开实施例的一种视频通信的实现方法及装置的示例性应用环境的系统架构的示意图。
如图1所示,系统架构100可以包括终端110、网络120、服务器端130。其中,终端110和服务器端130通过网络120连接。
终端110可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。在本技术方案提供的实施例中,终端110可代表视频上行方和视频下行方。网络120可以是能够在终端110和服务器端130之间提供通信链路的各种连接类型的通信介质,例如可以是有线通信链路、无线通信链路或者光纤电缆等等,本申请在此不做限制。服务端130可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、以及大数据和人工智能平台等基础云计算服务的云服务器。
本公开实施例所提供的视频通信的实现方法可以由服务端130执行,相应地,视频通信的实现装置一般设置于服务端130中。同时,本领域技术人员容易理解的是,本公开实施例所提供的视频通信的实现方法也可以由终端110(例如视频上行方)执行,相应的,视频通信的实现装置也可以设置于终端110(例如视频上行方)中,本示例性实施例中对此不做特殊限定。
举例而言,在一种示例性实施例中,可以是服务端130获取视频下行方(终端110)的网络带宽,确定每个视频下行方的网络拥塞等级;并响应于存在大于预设值的网络拥塞等级,服务端130对于序列值为i的待编码帧,获取待编码帧所在的层级为第j个增强层;并将处于第j, j+1, …, N个增强层且序列值小于i的视频帧在参考帧列表中删除以对参考帧列表进行更新;进一步地,服务端130在更新后的参考帧列表中,获取序列值小于i的视频帧作为所述待编码帧的参考帧;然后,服务端130根据参考帧对序列值为i的待编码帧进行可伸缩编码得到编码视频。其中,编码视频由S个视频帧组成,包括一个基本层和N个增强层,i为大于1且不大于S的整数,j为不大于N的正整数,S、N为正整数。最终,基于上述编码视频实现视频上行方和每个视频下行方之间的视频通信。
示例性的,服务端130将SVC后的编码视频发送至视频下行方的终端110,进一步地,视频下行方的终端110对接收到的编码视频进行解码。从而,视频下行方用户可以通过终端110中查看解码后的视频。
作为实施例,图2示出视频编码器和视频解码器在流式传输环境中的放置方式。本公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV(电视)、在包括CD(Compact Disc,光盘)、DVD(Digital Versatile Disc,数字通用光盘)、存储棒等的数字介质上存储压缩视频等等。
参考图2,流式传输系统200可包括采集子系统213,其中,该采集子系统213可包括数码相机等视频源201,该视频源创建未压缩的视频图片流202。在实施例中,视频图片流202包括由数码相机拍摄的样本。相较于已编码的视频数据204(或已编码的视频码流),视频图片流202被描绘为粗线以强调高数据量的视频图片流,视频图片流202可由电子装置220处理,该电子装置220包括耦接到视频源201的视频编码器203。
其中,视频编码器203可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。示例性的,视频编码器203通过软件形式执行SVC编码。相较于视频图片流202,已编码的视频数据204(或已编码的视频码流)被描绘为细线以强调较低数据量的已编码的视频数据204(或已编码的视频码流),其可存储在流式传输服务端205上以供将来使用。
另外,流式传输系统还可包括一个或多个流式传输客户端子系统。例如图2中的客户端子系统206和客户端子系统208,可分别访问流式传输服务端205以检索已编码的视频数据204的副本207和副本209。客户端子系统206可包括例如电子装置230中的视频解码器210。其中,视频解码器210对已编码的视频数据的传入副本207进行解码,且产生可在显示器212(例如显示屏)或另一呈现装置(未描绘)上呈现的输出视频图片流211。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频数据204、视频数据207和视频数据209(例如视频码流)进行编码。
应注意,电子装置220和电子装置230可包括其它组件(未示出)。举例来说,电子装置220可包括视频解码器(未示出),且电子装置230还可包括视频编码器(未示出)。例如,当电子装置220作为视频上行方时,其中的视频编码器工作,当电子装置220作为视频下行方时,其中的视频解码器工作。其中,视频解码器用于对接收到的已编码视频数据进行解码;视频编码器用于对视频数据进行编码。
示例性的,本技术方案所涉及的一些基本概念进行介绍说明。
1、帧内预测和帧间预测
当对视频帧中的图像块进行编码时,可以使用帧间预测模式或帧内预测模式。例如,如图3所示,对于帧间预测模式:已编码参考块31位于已编码视频帧310,待编码块32位于待编码帧320,即已编码参考块31和待编码块32位于两个不同的视频帧。包括,前向预测编码帧(Prediction,记作“P帧”)和双向预测编码帧(Bi-Prediction,记作“B帧”)。
如图4所示,对于帧内预测模式:已编码参考块41和待编码块42均位于待编码帧400,即已编码参考块41和待编码块42位于同一个视频帧,得到帧内预测编码帧(Intra-Prediction, 记作“I帧”)。
需要说明的是,由于B帧会带来不可避免的延迟,因此在实时通信(如视频会议)中通常只使用I帧和P帧这两种帧类型。其中,由于I帧只使用了本帧的信息进行预测,也就是说I帧的解码不依赖于其他帧,因此可以独立解码,但I帧的编码效率偏低,数据量较大。P帧使用了帧间预测方法,可以参考之前的一些解码帧信息,能达到较高的压缩效率(帧大小比I帧小很多),但是解码时必须依赖于其他帧。
2、IPPP模式的编码帧结构
在实时视频通信的应用场景中,为了提升视频压缩效率,一般会使用IPPP的帧结构,即I帧之后编码多个P帧。如图5所示IPPP的帧结构500,其中,第0帧为I帧,后续7个帧均为P帧,且每个P帧只有一个参考帧(为其前一帧)。
但当网络情况不好时(如抖动,丢包,限速等),这种帧结构就会造成长时间的卡顿。例如,第3帧丢失,由于第4帧参考第3帧进行压缩,因此不能正确解码,第5帧参考第4帧进行压缩,因此不能正确解码,第6、第7帧则类似。这种情况下,即使丢包只造成个别帧的丢失,但由于接收端很多帧不能正确解码,会造成视频下行方的长时间卡顿。而且只能通过申请I帧的机制进行恢复。
3、可伸缩视频编码(Scalable Video Coding,简称:SVC)
SVC是主流的视频编解码标准,如H.264的一个扩展。SVC采用分层预测结构,具体可以分为时域可分级(Temporal scalability)SVC、空间可分级(Spatial scalability)SVC和质量可分级(Quality scalability)SVC三种类型。以时域可分级类型为例,SVC编码可以得到原视频的基本层和多个增强层,并可以根据接受侧网络状态发送不同层级的编码视频。
例如,参考图6示出的SVC编码视频分配方案600。其中。SVC编码可以得到基本层60,增强层61以及增强层62。对于网络状态较差的视频下行方1,可以仅向其发送基本层60。对于网络状态一般的视频下行方2,可以向其发送基本层60和增强层61。对于网络状态较好的视频下行方3,可以向其发送基本层60、增强层61以及增强层62。
需要说明的一点是,本申请实施例提供的视频通信的实现方法,各步骤的执行主体为执行解码的设备,可以是服务端(如图1中的服务端130)也可以是当前作为视频上行方的终端(如图1中的终端110)。具体的,本申请实施例提供的执行解码的设备是指具备数据计算、处理和存储能力的电子设备,如PC、手机、平板电脑、媒体播放器、专用视频会议设备、服务端等等。
另外,本申请所提供的方法可以单独使用或以任意顺序与其他方法合并使用。基于本申请所提供方法的执行编码的设备,可以由1个或多个处理器或是1个或多个集成电路来实现。下面,通过几个实施例对本申请技术方案进行介绍说明。
图7示意性示出了根据本公开实施例中多方参与的视频会议场景700的示意图。
参考图7,该视频会议场景中包括:流控服务器710、接口机721、接口机722,以及代表该视频会议的多个参与方的终端A、终端B、终端C和终端D。其中,接口机可以用于对音视频会话系统中的音视频数据及信令进行转发。根据客户终端所在的地理位置信息、接口机等机器的位置信息和负载信息等,为客户终端就近分配接口机,使得同一音视频会话及同运营商视为客户终端尽量聚集到相一接口机处。例如,终端A和终端B被分配的接口机721、终端C和终端D被分配的接口机722。
在示例性的视频会议场景中,终端A可以作为当前的视频上行方,而终端B、终端C和终端D作为视频下行方。结合该使用场景,以下对先本技术方案中视频通信的实现方法实施例进行介绍:
图8示意性示出了根据本公开实施例中视频通信的实现方法的流程示意图。在本实施例中,以该方法应用于上文介绍的服务端(如图1中的服务端130或图7中的流控服务器710)设备中来举例说明。参考图8,该方法可以包括步骤S810-步骤S840。
在步骤S810中,根据视频下行方的网络带宽,确定每个视频下行方的第一网络拥塞等级。
在示例性的实施例中,参考图7示出的多方参与的视频会议,其中,可以通过接口机721获取视频下行方中的终端B的网络带宽,以及通过接口机722获取视频下行方中的终端C的网络带宽以及终端D的网络带宽。进一步地,流控服务器710获取各个视频下行方的带宽,并分别确定各个视频下行方是否出现网络拥塞。
示例性的,根据当前视频会议对于图像的实际要求(如画面质量等),确定网络阻塞等级。例如,当网络阻塞等级大于某一预设值时,认为出现了网络阻塞。
参考图9,响应于存在大于预设值的第一网络拥塞等级(为了与后续实施例中关于上探阶段过程中获取视频下行方的网络阻塞等级进行区分,因此,将进入拥塞阶段之前获取的视频下行方的网络阻塞等级记作“第一网络阻塞等级”),则进入拥塞阶段。
进一步地,相关技术中采用IPPP帧结构存在的卡顿问题。例如,在多方参与的视频会议的场景中,包含视频上行方和多个视频下行方。其中,不同的视频下行方的网络状态一般存在差异,任一视频下行方不能正确解码时,就需要通过申请I帧的机制进行恢复,进而导致多个视频下行方卡顿,造成无法兼顾大多数用户的视频会议效果。
为了解决这一问题,本技术方案通过引入时域SVC技术对参考帧结构进行调整。具体地,在检测到于存在大于预设值的网络拥塞等级(即进而拥塞阶段后),则开启SVC方式进行视频编码。
需要说明的是,目前市面上存在支持硬件SVC算法的编码器硬件接口(如英特尔平台的编码器硬件),但同时也存在不支持SVC算法的编码器硬件接口(如英伟达平台内部硬件接口暂时不支持SVC算法),所以考虑到普适性与兼容性问题,本公开实施例采用动态管理参考帧列表的方式进行SVC:
继续参考图8,在步骤S820中,响应于存在大于预设值的第一网络拥塞等级,根据待编码帧的序列值以及所述待编码帧所在的层级对参考帧列表进行更新。
假如编码视频由S个视频帧组成,包括一个基本层和N个增强层,S、N为正整数。在示例性的实施例中,以序列值由1至S的待编码帧作为初始的参考帧列表,并采用动态管理参考帧列表的方式确定待编码视频的参考帧。其中,图10示出了通过动态管理参考帧列表的方式确定序列值为i的待编码帧的参考帧的方法的流程示意图,包括:
步骤S1010,对于增强层中序列值为i的待编码帧,获取待编码帧所在的层级为第j个增强层,i为大于1且不大于S的整数,j为不大于N的正整数;以及,步骤S1020,将处于第j,j+1, …, N个增强层且序列值小于i的视频帧在参考帧列表中删除以对参考帧列表进行更新。
在示例性的实施例中,图11所示的通过本方案提供的SVC得到的编码视频对应的视频帧。如图11所示上述包含S个待编码视频帧包括以下三层:基本层Layer0、第一增强层Layer1以及第二增强层Layer2。
对于增强层中任意一个待编码帧,首先获取其所在的层级。进一步地,将当前待编码帧所在层级以及大于当前待编码帧所在层级中、且序列值小于当前待编码帧的视频帧在参考帧列表中删除。参考图11,对于序列值为2的待编码帧,处于第一增强层Layer1,即i取值为2,j取值为1。将处于第一增强层和第二增强层且序列值小于2的视频帧在当前参考帧列表中删除。参考图11,其中序列值为1的视频帧处于第二增强层、且序列值小于2,则将序列值为1的视频帧在当前参考帧列表中删除。从而实现在对序列值为2的视频帧进行编码时,对参考帧列表的更新。
对于基本层中任意一个待编码帧,将处于增强层中且序列值小于当前待编码帧的视频帧在参考帧列表中删除。参考图11,当前待编码帧的序列值为4,处于基本层Layer0,即i取值为4,j取值为0。则将处于第一增强层和第二增强层且序列值小于4的视频帧在当前参考帧列表中删除,即将将序列值为1、2、3的视频帧在当前参考帧列表中删除。从而实现在对序列值为4的视频帧进行编码时,对参考帧列表的更新。
继续参考图10,在步骤S1030中,在更新后的参考帧列表中,获取序列值小于i的视频帧作为所述待编码帧的参考帧。
作为步骤S1030的一种实施例行的实施例中:
需要说明的是,当前待编码帧的参考帧为已编码帧,因此,需在更新后的参考帧列表中获取序列值小于i的视频帧。又考虑到,序列值越接近的视频帧之间具有更多的相同特征,因此,将需将序列值较接近当下待编码帧的序列值的视频帧作为待编码帧的参考帧。
从而,对于任意一个待编码帧对应的参考帧列表,在更新后的参考帧列表中,获取序列值小于i、且序列值较接近当下待编码帧的序列值的视频帧作为待编码帧的参考帧。参考图11,对于序列值为3的当前待编码帧,处于第二增强层Layer2,对应的更新后的参考帧列表中包括:第0帧和第2帧。其中,第2帧的序列值较接近当前待编码帧3,则将第2帧作为第3帧的参考帧。
作为步骤S1030的另一种实施例行的实施例中:
根据增强层的总个数N以及当前待编码帧所在层级,确定参考帧的序列值k与待编码帧的序列值i之间的差值,进而确定当前待编码帧对应的参考帧。
(1)、示例性的,若N取值为2的情况下,即,编码视频包含一个基本层和两个增强层的情况下(对应于三层SVC算法):参考帧的序列值k(k为大于1且不大于S的整数)与所待编码帧的序列值i之间的差值不大于4。
更为具体地,在N取值为2的情况下,对于处于增强层的待编码帧,其参考帧的序列值k与当前待编码帧的序列值i之间的差值小于4,对于处于基本层的待编码帧,其参考帧的序列值k与该当前待编码帧的序列值i之间的差值为4。参考图12a,其中,第2帧作为当前待编码帧时,将第1帧删除得到更新后的参考帧列表,具体包括第0帧。则处于第一增强层的待编码帧(i = 2)对应的参考帧为第0帧(k = 0)。即,对于增强层的待编码帧,其参考帧的序列值k与当前待编码帧的序列值i之间的差值小于4。又例如,基本层中的第4帧作为当前待编码帧时,将第1帧和第3帧删除(如图12a/12b中阴影表示)得到更新后的参考帧列表,具体包括第0帧和第2帧。为了实现三层SVC算法,将第0帧作为第4帧的参考帧。即,对于基本层的待编码帧,其参考帧的序列值k与当前待编码帧的序列值i之间的差值等于4。
(2)、示例性的,若N取值为1的情况下,即,编码视频包含一个基本层和一个增强层的情况下(对应于两层SVC算法):参考帧的序列值k(k为大于1且不大于S的整数)与当前待编码帧的序列值i之间的差值不大于2。
更为具体地,参考图12b,其中,第4帧作为当前待编码帧时,将第1帧和第3帧删除得到更新后的参考帧列表,具体包括第0帧和第2帧。为了实现两层SVC算法,将第2帧作为第4帧的参考帧。即,参考帧的序列值k与当前待编码帧的序列值i之间的差值不大于2。
通过本技术方案提供的动态管理参考帧列表的方式确定待编码视频的参考帧,越低层级(如基本层)的帧被参考的可能性越大,因此重要性也越大。在网络发生丢包时,只要所丢的帧不是基本层Layer0,就不需要重新申请I帧,解码端(如视频下行端)可以成功解码,从而避免了相关技术中采用IPPP帧结构存在的卡顿问题。例如,如图11所示的通过本方案提供的SVC得到的编码视频中的待编码帧,其中,若第1帧丢失仅会影响2,3帧,其他帧不会受到影响,有效地解决卡死的问题。在会议场景的下行人数很多时,采用时域SVC的结构,可以保证少数的下行网络存在问题时,其他的下行端不会受到影响。
需要说明的是,图10示出了执行主体为服务端的对参考帧列表进行更新方案。在示例性的其他实施例中,执行主体还可以为当前的视屏上行方,具体地:在步骤S820中,响应于存在大于预设值的第一网络拥塞等级,服务端通知当前视频上行方进行SVC编码,以使当前视频上行方根据待编码帧的序列值以及所述待编码帧所在的层级对参考帧列表进行更新。
其中具体执行过程如上述图10所介绍的实施例相同,在此不再赘述。
通过当前视频上行方在视频下行方的拥塞等级较大时,通过视频上行方进行SVC编码,可以有效缓解服务端的编解码压力,而是将编码压力分散至作为当前视频上行方的客户终端,从而能够有效较少网络延时,而且无需大量部署转码服务器,进而运营计算成本。
继续参考图8,在步骤S830中,根据更新后的参考帧列表进行可伸缩编码得到编码视频。需要说明的是,第0帧可以做I帧采用帧内编码的方式进行编码。
另外,基于前述实施例介绍的基于动态管理参考帧列表的方式确定待编码视频的参考帧,从而根据参考帧实现对当前待编码帧的编码。
具体地,对于上述图10所对应的方案通过参考帧列表管理确定的SVC码流,但是无法通过硬件编码器获取参考帧关系是否正确,否则可能导致解码花屏等问题。因此,本实施例中通过增加一个参考帧校验模块来解决该问题。其中,图13示意性示出了根据本公开实施例中对当前待编码帧的编码方法的流程示意图。参考图13,该方法包括:
步骤S1310,获取所述编码视频;步骤S1320,解析所述编码视频中当前编码帧的帧头,得到所述当前编码帧对应的参考帧信息;步骤S1330,根据增强层的总个数N以及所述当前编码帧所在的增强层等级j,对所述参考帧信息进行校验。
示例性的,响应于上述验证通过,说明当前编码帧的参考帧信息符合预期(如图11所示),则可以执行步骤S840,基于所述编码视频进行所述视频上行方和每个视频下行方之间的视频通信。响应于上述验证未通过,说明当前编码帧的参考帧信息并不符合预期,如参考帧序列值错误等,这种情况的编码视频可能导致视频下行方的画屏,则执行步骤S1340,通知流控服务器进一步处理。
本实施例中,通过对解析硬件SVC码流的帧头信息来校验参考帧的方式来确保参考帧关系符合预设要求,从而减少花屏概率进而提升了视频通信质量。
考虑到硬件编码器的兼容性问题(如,存在不支持硬件编码的客户终端),以及包括参考帧不符合预期在内的硬件编码出错的情况,需要对硬件SVC编码进行动态处理,以确保SVC编码的顺利执行。在示例性的实施例中,在执行步骤S840(基于所述编码视频进行所述视频上行方和每个视频下行方之间的视频通信)之前,本实施例还提供:查询预先设置的硬件可伸缩视频编码设备列表以确定当前的硬件编码器是否符合可伸缩视频编码的要求。
也就是说,本实施例通过增加一种编码端流控切换策略来解决上述问题,具体的,图14示意性示出了根据本公开实施例中对当前待编码帧的编码方法的流程示意图。参考图14,该方法包括:
通过SVC能力检测系统1402检测编码器1404是否支持硬件SVC的能力,并将检测记过上报给流控服务器1403。其中,当服务端作为执行主体执行SVC编码时,上述编码器1402属于服务端,当时视频上行方作作为执行主体执行SVC编码时,上述编码器1402则属于客户终端。
具体地,在编码器1404中通过硬件编码可以获取硬件SVC编码得到SVC码流。在编码器1404不支持硬件编码时,通过软件编码可以获取软件SVC编码得到SVC码流。
进一步地,由流控服务器1403决定是否向编码器1402下发硬件SVC。同时,还可以通过云端1401配置管理系统对SVC能力进行黑白名单的配置。从而,SVC能力检测系统1402可以通过云端1401的黑白名单快捷地确定硬件的SVC能力。
示例性的,在上述编码过程中,对于编码器1402中产生的参考帧出错信息进行实时上报给流控服务器1403控制,从而在实现硬件SVC编码与软件SVC编码的动态切换到,进而确保SVC编码的顺利执行。
继续参考图8,在步骤S840中,基于所述编码视频进行所述视频上行方和每个视频下行方之间的视频通信。
示例性的,根据目标视频下行方的第一网络拥塞等级,在上述SVC方式确定的编码视频中确定出对该目标视频下行方的待发送视频,并发送至该目标视频下行方。具体地,响应于该目标视频下行方的第一网络阻塞等级大于所述预设值,则将基本层或基本层和至少一层增强层确定为该目标视频下行方的待发送视频;或,响应于该目标视频下行方的第一网络阻塞等级不大于所述预设值,则基本层和N层增强层确定为对该目标视频下行方的待发送视频。
例如,参考图6,若目标视频下行方的第一网络拥塞等级为较差,可以仅向其发送基本层60。若目标视频下行方的第一网络拥塞等级为一般,可以向其发送基本层60和增强层61。若目标视频下行方的第一网络拥塞等级为较好,可以向其发送基本层60、增强层61以及增强层62。
其中,“基本层”对应的帧频比“基本层+增强层”的帧频小,“基本层”对应的图像尺寸比“基本层+增强层”的图像尺寸小,或“基本层”对应的图像质量比“基本层+增强层”的图像质量差。例如,“基本层Layer0”的帧频比“基本层Layer0+第一增强层Layer1”的帧频小。从而,根据不同视频下行方各自的网络状态,将不同帧频/图像质量/图像尺寸的编码视频分别发送至对应的视频下行方,从而可以有效保证各个视频下行方的视频通信顺利实现。
从而,分层的编码视频可以满足不同网络状态的视频下行方,满足各个视频下行方的个性化需求。示例性的,时域可分解SVC放入解码复杂程度较低,适用于实时视频场景。
继续参考图9,本公开提供的视频通信的实现方案中,响应于存在第一拥塞等级大于预设值时即进入“拥塞阶段”,并通过上述实施例介绍的SVC得到编码视频,以供不同网络状态的视频下行方接收、解码并观看。
进一步地,在执行SVC编码满足预设时长之后(例如,在可伸缩编码持续第一预设时长之后,可以采取发送重传包的方式获取每个视频下行方的第二网络拥塞等级),则进入“上探阶段”。
具体地,通过再次获取各个视频下行方的拥塞等级(即“第二拥塞等级”)。并响应于各个视频下行方的第二网络拥塞等级均不大于预设值,说明当前各个视频下行方的网络状态均良好,则可以停止可伸缩编码,即进入“关闭阶段”。本技术方案根据视频下行方的网络状态及时启动/停止SVC的编码方式,可以有效降低执行SVC的服务端/客户终端的编码压力。
另一方面,响应于存在大于预设值的第二网络拥塞等级,则返回“拥塞阶段”,继续进行上述实施例所介绍的可伸缩编码,以满足不同网络状态的视频下行方的视频通信需求,保证视频通信的实时进行。
在示例性的实施例中,参考图7示出的视频通信场景,进行视频通信的终端与服务端之间设置接口机,并通过接口机实现音视频数据及信令的转发。具体的,在接口机获取到各个视频下行方的第二网络拥塞等级均不大于预设值且确定所述第二网络拥塞等级均小于预设值的状态持续第二预设时长后,接口机向服务端发送可伸缩编码第一关闭请求,以告知服务端可以关系SVC方式的编码。然而,服务端在接收到上述第一关闭请求之后并不立即关闭SVC方式的编码(在服务端为SVC方式的编码的执行主体的情况下),或者服务端在接收到上述第一关闭请求之后并不立即向视频上行方发送关闭SVC方式的编码的请求(在视频上行方为SVC方式的编码的执行主体的情况下),而是在接收每个视频下行方发送的可伸缩编码第二关闭请求之后,停止可伸缩编码。从而进一步保证视频通信的顺利实现。
本公开提供的视频通信的实现方案可有效地提高会议场景下视频通话的网络抗性。例如,相比于相关技术,可以在编码效率损失不到10%条件下到达将近10倍加速比(参考表1),可以大大缓解客户端CPU性能比较吃力的场景,可降低CPU性能消耗达38.6%(参考表2),有效降低会议场景的运营计算成本。
Figure 255688DEST_PATH_IMAGE001
Figure 724891DEST_PATH_IMAGE002
本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由处理器(包含CPU和GPU)执行的计算机程序。在该计算机程序被CPU 执行时,执行本公开提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本公开示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
以下介绍本公开的视频通信的实现装置实施例,可以用于执行本公开上述的视频通信的实现方法。
图15示出本公开示例性实施例中视频通信的实现装置的结构示意图。如图15所示,上述视频通信的实现装置1500包括:确定模块1501、参考帧列表更新模块1502、可伸缩编码模块1503,以及视频通信模块1504。
其中,上述确定模块1501,被配置为:根据视频下行方的网络带宽,确定每个视频下行方的第一网络拥塞等级;上述参考帧列表更新模块1502,被配置为:响应于存在大于预设值的第一网络拥塞等级,根据待编码帧的序列值以及上述待编码帧所在的层级对参考帧列表进行更新;上述可伸缩编码模块1503,被配置为:根据更新后的参考帧列表进行可伸缩编码得到编码视频;以及,上述视频通信模块1504,被配置为:基于上述编码视频进行上述视频上行方和每个视频下行方之间的视频通信。
在本公开的一些实施例中,基于前述方案,上述编码视频由S个视频帧组成,包括一个基本层和N个增强层,S、N为正整数;其中,上述参考帧列表更新模块1502,被具体配置为:对于增强层中序列值为i的待编码帧,获取待编码帧所在的层级为第j个增强层,i为大于1且不大于S的整数,j为不大于N的正整数;将处于第j, j+1, …, N个增强层且序列值小于i的视频帧在参考帧列表中删除以对参考帧列表进行更新。
在本公开的一些实施例中,基于前述方案,上述编码视频由S个视频帧组成,包括一个基本层和N个增强层,S、N为正整数;其中,上述参考帧列表更新模块1502,被具体配置为:对于基本层中序列值为i的待编码帧,i为大于1且不大于S的整数;将处于增强层且序列值小于i的视频帧在参考帧列表中删除以对参考帧列表进行更新。
在本公开的一些实施例中,基于前述方案,上述可伸缩编码模块1503,包括:参考帧确定单元15031和编码单元15032。
其中,上述参考帧确定单元15031被配置为:在更新后的参考帧列表中,获取序列值小于i的视频帧作为上述待编码帧的参考帧;以及,上述编码单元15032被配置为:根据上述参考帧对上述序列值为i的待编码帧进行可伸缩编码得到编码视频。
在本公开的一些实施例中,基于前述方案,上述参考帧确定单元15031被配置为:获取序列值小于i且序列值与上述待编码帧之间的差值较小的视频帧作为上述待编码帧的参考帧。
在本公开的一些实施例中,基于前述方案,上述参考帧确定单元15031被配置为:在N取值为2的情况下,上述参考帧的序列值k与上述待编码帧的序列值i之间的差值不大于4,k为大于1且不大于S的整数。
在本公开的一些实施例中,基于前述方案,上述参考帧确定单元15031被具体配置为:在N取值为2的情况下,对于处于增强层的待编码帧,上述参考帧的序列值k与上述待编码帧的序列值i之间的差值小于4;对于处于基本层的待编码帧,上述参考帧的序列值k与上述待编码帧的序列值i之间的差值为4。
在本公开的一些实施例中,基于前述方案,上述参考帧确定单元15031被配置为:在N取值为1的情况下,上述参考帧的序列值k与上述待编码帧的序列值i之间的差值不大于2,k为大于1且不大于S的整数。
在本公开的一些实施例中,基于前述方案,上述视频通信的实现装置1500还包括:校验模块1505。
其中,上述校验模块1505被配置为:在上述可伸缩编码模块1503根据更新后的参考帧列表进行可伸缩编码得到编码视频之后,获取所述编码视频;解析所述编码视频中当前编码帧的帧头,得到所述当前编码帧对应的参考帧信息;以及,根据增强层的总个数N以及所述当前编码帧所在的增强层等级j,对所述参考帧信息进行校验。
在本公开的一些实施例中,基于前述方案,上述视频通信的实现装置1500还包括:查询模块1506。
其中,上述查询模块1506被配置为:在上述可伸缩编码模块1503根据更新后的参考帧列表进行可伸缩编码得到编码视频之前,查询预先设置的硬件可伸缩视频编码设备列表以确定当前的硬件编码器是否符合可伸缩视频编码的要求。
在本公开的一些实施例中,基于前述方案,上述视频通信模块1504,被具体配置为:根据目标视频下行方的第一网络拥塞等级,在上述编码视频中确定出对上述目标视频下行方的待发送视频,并发送至上述目标视频下行方。
在本公开的一些实施例中,基于前述方案,上述视频通信模块1504,被具体配置为:响应于上述目标视频下行方的第一网络阻塞等级大于上述预设值,则将上述基本层或上述基本层和至少一层增强层确定为对上述目标视频下行方的待发送视频;或,响应于上述目标视频下行方的第一网络阻塞等级不大于上述预设值,则上述基本层和N层增强层确定为对上述目标视频下行方的待发送视频。
其中,上述基本层对应的帧频小于上述增强层对应的帧频、上述基本层对应的图像尺寸小于上述增强层对应的图像尺寸,或上述基本层对应的质量尺寸小于上述增强层对应的图像质量。
在本公开的一些实施例中,基于前述方案,上述视频通信的实现装置1500还包括:获取模块1507。
其中,上述获取模块1507被配置为:获取每个视频下行方的第二网络拥塞等级,响应于上述第二网络拥塞等级均不大于预设值,停止可伸缩编码。
在本公开的一些实施例中,基于前述方案,上述可伸缩编码模块1503还被配置为:响应于存在大于上述预设值的第二网络拥塞等级,继续进行可伸缩编码。
在本公开的一些实施例中,基于前述方案,上述获取模块1507,被具体配置为:在可伸缩编码持续第一预设时长之后,采取发送重传包的方式获取每个视频下行方的第二网络拥塞等级。
在本公开的一些实施例中,基于前述方案,上述可伸缩编码模块1503还被配置为:接收接口机发送的可伸缩编码第一关闭请求,其中,上述可伸缩编码第一关闭请求为上述接口机获取到是视频下行方的第二网络拥塞等级均小于预设值,且确定上述第二网络拥塞等级均小于预设值的状态持续第二预设时长的情况下发出的;接收每个上述视频下行方发送的可伸缩编码第二关闭请求;停止可伸缩编码。
上述视频通信的实现装置中各单元的具体细节已经在说明书的视频通信的实现方法中进行了详细的描述,因此此处不再赘述。
图16示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图16示出的电子设备的计算机系统1600仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图16所示,计算机系统1600包括处理器1601(包括:图形处理单元(GraphicsProcessing Unit,GPU)、中央处理单元(Central Processing Unit,CPU)),其可以根据存储在只读存储器(Read-Only Memory,ROM)1602中的程序或者从存储部分1608加载到随机访问存储器(Random Access Memory,RAM)1603中的程序而执行各种适当的动作和处理。在RAM 1603中,还存储有系统操作所需的各种程序和数据。CPU 1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(Input /Output,I/O)接口1605也连接至总线1604。
以下部件连接至I/O接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1607;包括硬盘等的存储部分1608;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至I/O接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入存储部分1608。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理单元(CPU)1601执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本公开实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
例如,所述的电子设备可以实现如图8中所示的:步骤S810,根据视频下行方的网络带宽,确定每个视频下行方的第一网络拥塞等级;以及在步骤S820中,响应于存在大于预设值的第一网络拥塞等级,根据待编码帧的序列值以及所述待编码帧所在的层级对参考帧列表进行更新;步骤S830,根据更新后的参考帧列表进行可伸缩编码得到编码视频;以及,步骤S840,基于所述编码视频进行所述视频上行方和每个视频下行方之间的视频通信。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务端、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (18)

1.一种视频通信的实现方法,其特征在于,所述方法包括:
根据视频下行方的网络带宽,确定每个视频下行方的第一网络拥塞等级;
响应于存在大于预设值的第一网络拥塞等级,根据待编码帧的序列值以及所述待编码帧所在的层级对参考帧列表进行更新;
根据更新后的参考帧列表进行可伸缩编码得到编码视频;
基于所述编码视频进行视频上行方和每个视频下行方之间的视频通信;其中,所述编码视频由S个视频帧组成,包括一个基本层和N个增强层,以序列值由1至S的待编码帧作为初始的参考帧列表,S、N为正整数;其中,根据待编码帧的序列值以及所述待编码帧所在的层级对参考帧列表进行更新,包括:
对于增强层中的每个待编码帧,获取所述待编码帧的序列值i,获取待编码帧所在的层级为第j个增强层,i为大于1且不大于S的整数,j为不大于N的正整数;
将处于第j, j+1,…, N个增强层且序列值小于i的视频帧在参考帧列表中删除以对参考帧列表进行更新。
2.根据权利要求1所述的视频通信的实现方法,其特征在于,所述根据待编码帧的序列值以及所述待编码帧所在的层级对参考帧列表进行更新,还包括:对于基本层中序列值为i的待编码帧,i为大于1且不大于S的整数;
将处于增强层且序列值小于i的视频帧在参考帧列表中删除以对参考帧列表进行更新。
3.根据权利要求2所述的视频通信的实现方法,其特征在于,根据更新后的参考帧列表进行可伸缩编码得到编码视频,包括:在更新后的参考帧列表中,获取序列值小于i的视频帧作为所述待编码帧的参考帧;
根据所述参考帧对所述序列值为i的待编码帧进行可伸缩编码得到编码视频。
4.根据权利要求3所述的视频通信的实现方法,其特征在于,获取序列值小于i的视频帧作为所述待编码帧的参考帧,包括:获取序列值小于i且序列值与所述待编码帧的序列值之间的差值较小的视频帧作为所述待编码帧的参考帧。
5.根据权利要求3所述的视频通信的实现方法,其特征在于,获取序列值小于i的视频帧作为所述待编码帧的参考帧,包括:在N取值为2的情况下,所述参考帧的序列值k与所述待编码帧的序列值i之间的差值不大于4,k为大于1且不大于S的整数。
6.根据权利要求5所述的视频通信的实现方法,其特征在于,获取序列值小于i的视频帧作为所述待编码帧的参考帧,包括:在N取值为2的情况下,对于处于增强层的待编码帧,所述参考帧的序列值k与所述待编码帧的序列值i之间的差值小于4;对于处于基本层的待编码帧,所述参考帧的序列值k与所述待编码帧的序列值i之间的差值为4。
7.根据权利要求3所述的视频通信的实现方法,其特征在于,获取序列值小于i的视频帧作为所述待编码帧的参考帧,包括:在N取值为1的情况下,所述参考帧的序列值k与所述待编码帧的序列值i之间的差值不大于2,k为大于1且不大于S的整数。
8.根据权利要求1所述的视频通信的实现方法,其特征在于,在根据更新后的参考帧列表进行可伸缩编码得到编码视频之后,所述方法还包括:获取所述编码视频;
解析所述编码视频中当前编码帧的帧头,得到所述当前编码帧对应的参考帧信息;
根据增强层的总个数N以及所述当前编码帧所在的增强层的层级j,对所述参考帧信息进行校验。
9.根据权利要求1所述的视频通信的实现方法,其特征在于,在根据更新后的参考帧列表进行可伸缩编码得到编码视频之前,所述方法还包括:查询预先设置的硬件可伸缩视频编码设备列表以确定当前的硬件编码器是否符合可伸缩视频编码的要求。
10.根据权利要求1或2所述的视频通信的实现方法,其特征在于,基于所述编码视频进行所述视频上行方和每个视频下行方之间的视频通信,包括:根据目标视频下行方的第一网络拥塞等级,在所述编码视频中确定出对所述目标视频下行方的待发送视频,并发送至所述目标视频下行方。
11.根据权利要求10所述的视频通信的实现方法,其特征在于,根据目标视频下行方的第一网络拥塞等级,在所述编码视频中确定出对所述目标视频下行方的待发送视频,包括:响应于所述目标视频下行方的第一网络阻塞等级大于所述预设值,则将所述基本层或所述基本层和至少一层增强层确定为对所述目标视频下行方的待发送视频;或,
响应于所述目标视频下行方的第一网络阻塞等级不大于所述预设值,则所述基本层和N层增强层确定为对所述目标视频下行方的待发送视频。
12.根据权利要求1或2所述的视频通信的实现方法,其特征在于,所述方法还包括:获取每个视频下行方的第二网络拥塞等级,响应于所述第二网络拥塞等级均不大于预设值,停止可伸缩编码。
13.根据权利要求12所述的视频通信的实现方法,其特征在于,所述方法还包括:
响应于存在大于所述预设值的第二网络拥塞等级,继续进行可伸缩编码。
14.根据权利要求12所述的视频通信的实现方法,其特征在于,获取每个视频下行方的第二网络拥塞等级,包括:在可伸缩编码持续第一预设时长之后,采取发送重传包的方式获取每个视频下行方的第二网络拥塞等级。
15.根据权利要求1或2所述的视频通信的实现方法,其特征在于,所述方法还包括:接收接口机发送的可伸缩编码第一关闭请求,其中,所述可伸缩编码第一关闭请求为所述接口机获取到是视频下行方的第二网络拥塞等级均小于预设值,且确定所述第二网络拥塞等级均小于预设值的状态持续第二预设时长的情况下发出的;
接收每个所述视频下行方发送的可伸缩编码第二关闭请求;
停止可伸缩编码。
16.一种视频通信的实现装置,其特征在于,所述装置包括:确定模块,被配置为:根据视频下行方的网络带宽,确定每个视频下行方的第一网络拥塞等级;
参考帧列表更新模块,被配置为:响应于存在大于预设值的第一网络拥塞等级,根据待编码帧的序列值以及所述待编码帧所在的层级对参考帧列表进行更新;
可伸缩编码模块,被配置为:根据更新后的参考帧列表进行可伸缩编码得到编码视频;
视频通信模块,被配置为:基于所述编码视频进行视频上行方和每个视频下行方之间的视频通信;其中,所述编码视频由S个视频帧组成,包括一个基本层和N个增强层,以序列值由1至S的待编码帧作为初始的参考帧列表,S、N为正整数;其中,所述参考帧列表更新模块,被具体配置为:对于增强层中的每个待编码帧,获取所述待编码帧的序列值i,获取待编码帧所在的层级为第j个增强层,i为大于1且不大于S的整数,j为不大于N的正整数;将处于第j, j+1, …, N个增强层且序列值小于i的视频帧在参考帧列表中删除以对参考帧列表进行更新。
17.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;
所述计算机程序被处理器执行时实现如权利要求1至15中任意一项所述的视频通信的实现方法。
18.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至15中任意一项所述的视频通信的实现方法。
CN202110089976.0A 2021-01-22 2021-01-22 视频通信的实现方法及装置、介质和电子设备 Active CN112468818B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110089976.0A CN112468818B (zh) 2021-01-22 2021-01-22 视频通信的实现方法及装置、介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110089976.0A CN112468818B (zh) 2021-01-22 2021-01-22 视频通信的实现方法及装置、介质和电子设备

Publications (2)

Publication Number Publication Date
CN112468818A CN112468818A (zh) 2021-03-09
CN112468818B true CN112468818B (zh) 2021-06-29

Family

ID=74802309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110089976.0A Active CN112468818B (zh) 2021-01-22 2021-01-22 视频通信的实现方法及装置、介质和电子设备

Country Status (1)

Country Link
CN (1) CN112468818B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113259673B (zh) * 2021-07-05 2021-10-15 腾讯科技(深圳)有限公司 伸缩性视频编码方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223218A (zh) * 2010-04-15 2011-10-19 华为技术有限公司 媒体报文重传抑制方法和设备
CN102577375A (zh) * 2009-05-01 2012-07-11 汤姆森特许公司 用于三维视频的层间依赖性信息
CN106416251A (zh) * 2014-03-27 2017-02-15 英特尔Ip公司 基于感知质量的可缩放视频编码速率适配
CN106792264A (zh) * 2016-12-16 2017-05-31 浙江宇视科技有限公司 一种视频帧传输方法及装置
CN106921860A (zh) * 2015-12-24 2017-07-04 纽约大学 一种端到端的视频发送方法及装置
CN107431819A (zh) * 2014-12-31 2017-12-01 诺基亚技术有限公司 用于可伸缩视频编码和解码的层间预测
CN108093197A (zh) * 2016-11-21 2018-05-29 阿里巴巴集团控股有限公司 用于信息分享的方法、系统及机器可读介质
CN109155861A (zh) * 2016-05-24 2019-01-04 诺基亚技术有限公司 用于编码媒体内容的方法和装置以及计算机程序
CN208548955U (zh) * 2018-07-24 2019-02-26 杭州海康威视数字技术股份有限公司 一种摄像机

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112014018856B1 (pt) * 2012-02-01 2022-09-20 Nokia Technologies Oy Método para a codificação de conteúdo de vídeo tridimensional, aparelho para codificação de conteúdo de vídeo tridimensional, meio legível por computador, método para decodificar conteúdo de vídeo tridimensional codificado, aparelho para decodificar conteúdo de vídeo tridimensional codificado
US10205961B2 (en) * 2012-04-23 2019-02-12 Qualcomm Incorporated View dependency in multi-view coding and 3D coding
KR102224703B1 (ko) * 2014-03-17 2021-03-09 노키아 테크놀로지스 오와이 비디오 코딩 및 디코딩 장치, 방법 및 컴퓨터 프로그램
US20170094288A1 (en) * 2015-09-25 2017-03-30 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
US10536708B2 (en) * 2017-09-21 2020-01-14 Intel Corporation Efficient frame loss recovery and reconstruction in dyadic hierarchy based coding
PH12019000380A1 (en) * 2018-12-17 2020-09-28 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102577375A (zh) * 2009-05-01 2012-07-11 汤姆森特许公司 用于三维视频的层间依赖性信息
CN102223218A (zh) * 2010-04-15 2011-10-19 华为技术有限公司 媒体报文重传抑制方法和设备
CN106416251A (zh) * 2014-03-27 2017-02-15 英特尔Ip公司 基于感知质量的可缩放视频编码速率适配
CN107431819A (zh) * 2014-12-31 2017-12-01 诺基亚技术有限公司 用于可伸缩视频编码和解码的层间预测
CN106921860A (zh) * 2015-12-24 2017-07-04 纽约大学 一种端到端的视频发送方法及装置
CN109155861A (zh) * 2016-05-24 2019-01-04 诺基亚技术有限公司 用于编码媒体内容的方法和装置以及计算机程序
CN108093197A (zh) * 2016-11-21 2018-05-29 阿里巴巴集团控股有限公司 用于信息分享的方法、系统及机器可读介质
CN106792264A (zh) * 2016-12-16 2017-05-31 浙江宇视科技有限公司 一种视频帧传输方法及装置
CN208548955U (zh) * 2018-07-24 2019-02-26 杭州海康威视数字技术股份有限公司 一种摄像机

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
openh264中关于SVC的编码结构;一只小小雪;《CSDN》;20200809;1-3 *

Also Published As

Publication number Publication date
CN112468818A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
JP5268915B2 (ja) マルチメディア音声会議向け視覚的構成の管理技術
US8947492B2 (en) Combining multiple bit rate and scalable video coding
US20080100694A1 (en) Distributed caching for multimedia conference calls
US10575035B2 (en) Keyframe mitigation for video streams with multiple receivers
US10116970B1 (en) Video distribution, storage, and streaming over time-varying channels
KR20180031547A (ko) 서버에서 멀티 비트 레이트 스트림 미디어를 적응적으로 제공하기 위한 방법 및 장치
CN103109528A (zh) 用于控制和管理多点会议的系统和方法
US9386273B1 (en) Video multicast engine
CN114600468B (zh) 将复合视频流中的视频流与元数据组合的组合器系统、接收器设备、计算机实现的方法和计算机可读介质
US20170142029A1 (en) Method for data rate adaption in online media services, electronic device, and non-transitory computer-readable storage medium
CN116018782A (zh) 用于音频混合的方法和装置
US20140226711A1 (en) System and method for self-adaptive streaming of multimedia content
WO2023142716A1 (zh) 编码方法、实时通信方法、装置、设备及存储介质
CN112866746A (zh) 一种多路串流云游戏控制方法、装置、设备及存储介质
CN112468818B (zh) 视频通信的实现方法及装置、介质和电子设备
US10432946B2 (en) De-juddering techniques for coded video
CN112040234B (zh) 视频编码、解码方法和装置、电子设备及存储介质
WO2023169424A1 (zh) 编解码方法及电子设备
CN115379235A (zh) 基于缓冲池的图像解码方法、装置、可读介质及电子设备
CN115623155A (zh) 视频数据处理方法、视频数据处理装置、存储介质
WO2015086222A1 (en) Process for increasing the resolution and the visual quality of video streams exchanged between users of a video conference service
CN112770077B (zh) 视频会议i帧编码方法及装置
Liu et al. Efficient Real-time Video Conferencing with Adaptive Frame Delivery
WO2024113869A1 (zh) 视频编码方法及相关装置
Nightingale et al. Evaluation of in-network adaptation of scalable high efficiency video coding (SHVC) in mobile environments

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: 40041047

Country of ref document: HK