一种视频传输方法、装置、系统、设备及存储介质

文档序号:1524365 发布日期:2020-02-11 浏览:14次 >En<

阅读说明:本技术 一种视频传输方法、装置、系统、设备及存储介质 (Video transmission method, device, system, equipment and storage medium ) 是由 陈松 赖学武 荣先海 于 2019-11-26 设计创作,主要内容包括:本申请提供了一种视频传输方法、装置、系统、设备及存储介质,其中,应用于发送端设备的视频传输方法包括:将目标视频中待传输的目标图像帧切分为优先级不同的多个区域;获取当前预测的带宽作为目标带宽;当目标带宽小于最大带宽时,根据目标带宽、各个区域的优先级以及各个区域分别对应的最大码率,为各个区域分配对应的目标码率;按各个区域分别对应的目标码率对对应的区域进行压缩编码,并将各个区域的压缩编码结果发送至接收端设备。本申请提供的视频传输方法,在网络变差时,既能保证目标图像帧中重要区域具有较好的视频质量,又能保证目标图像帧能够较快、较流畅、低延迟地传输至接收端设备。(The application provides a video transmission method, a device, a system, equipment and a storage medium, wherein the video transmission method applied to sending end equipment comprises the following steps: dividing a target image frame to be transmitted in a target video into a plurality of areas with different priorities; acquiring a current predicted bandwidth as a target bandwidth; when the target bandwidth is smaller than the maximum bandwidth, distributing corresponding target code rates for the regions according to the target bandwidth, the priority of the regions and the maximum code rates respectively corresponding to the regions; and carrying out compression coding on the corresponding regions according to the target code rates respectively corresponding to the regions, and sending the compression coding results of the regions to the receiving terminal equipment. According to the video transmission method, when the network is degraded, the important area in the target image frame can be guaranteed to have better video quality, and the target image frame can be transmitted to the receiving terminal device more quickly, more smoothly and with low delay.)

一种视频传输方法、装置、系统、设备及存储介质

技术领域

本申请涉及视频传输技术领域,尤其涉及一种视频传输方法、装置、系统、设备及存储介质。

背景技术

在某些应用场景中,需要通过无线网络将目标视频传输到指定设备,比如,会议场景、教学场景等均会用到无线投屏,无线投屏即为将目标视频通过无线网络传输至接收端设备接收端设备进行展示。

然而,无线网络存在不稳定、互干扰等特性,因此,其不会一直保持较高的传输速率,如何在网络较差的情况下能够较快、较流畅、低延迟地进行视频传输是目前亟需解决的问题。

发明内容

有鉴于此,本申请提供了一种视频传输方法、装置、系统、设备及存储介质,用以在网络较差的情况下能够较快、较流畅、低延迟地进行视频传输,其技术方案如下:

一种视频传输方法,应用于发送端设备,包括:

将目标视频中待传输的目标图像帧切分为多个区域,其中,各个区域的优先级不同,各个区域的优先级根据用户对各个区域的关注程度确定;

获取当前预测的带宽作为目标带宽;

当所述目标带宽小于最大带宽时,根据所述目标带宽、各个区域的优先级以及各个区域分别对应的最大码率,为各个区域分配对应的目标码率,其中,优先级高的区域对应的目标码率相比于其对应的最大码率的下降幅度小于优先级低的区域对应的目标码率相比于其对应的最大码率的下降幅度,一个区域对应的最大码率根据该区域与所述目标图像帧的面积比和所述最大带宽确定;

按各个区域分别对应的目标码率对对应的区域进行压缩编码,并将各个区域的压缩编码结果发送至接收端设备。

可选的,将各个区域的压缩编码结果发送至接收端设备,包括:

对于优先级最高的区域,将该区域的编码结果拆分为多个视频数据包,并根据所述多个视频数据包生成包含纠错信息的纠错数据包,将所述多个视频数据包和所述纠错数据包发送至接收端设备,其中,所述纠错信息对应的码率根据所述优先级最高的区域对应的总码率和所述优先级最高的区域对应的目标码率确定;

对于除所述优先级最高的区域之外的区域,将每个区域的编码结果拆分为多个视频数据包,将针对每个区域的编码结果拆分得到的多个数据包发送至接收端设备。

可选的,所述目标图像帧的各个区域的数据包具有统一的绝对时间戳。

可选的,所述将目标视频中的目标图像帧切分为多个区域,包括:

将所述目标视频中的目标图像帧切分为三个区域,其中,三个区域中第一区域的优先级高于第二区域,所述第二区域的优先级高于第三区域,所述第一区域为所述目标图像帧的中心区域,所述第二区域为所述中心区域之外的区域,所述第三区域为所述第二区域之外的区域。

可选的,所述根据所述目标带宽、各个区域的优先级以及各个区域分别对应的最大码率,确定各个区域分别对应的目标码率,包括:

根据所述目标带宽和所述第一区域对应的最大码率,确定所述第一区域对应的目标码率;

根据所述目标带宽和所述第三区域对应的最大码率,确定所述第三区域对应的目标码率;

根据所述目标带宽、所述第一区域对应的目标码率和所述第三区域对应的目标编码码率,确定所述第二区域对应的目标码率;

其中,所述第第一区域对应的目标码率相比于其对应的最大码率的下降幅度小于所述第二区域对应的目标码率相比于其对应的最大码率的下降幅度,所述第二区域对应的目标码率相比于其对应的最大码率的下降幅度小于所述第三区域对应的目标码率相比于其对应的最大码率的下降幅度。

一种视频传输方法,应用于接收端设备,所述方法包括:

接收目标图像帧中多个区域的编码结果,其中,所述目标图像帧中的各个区域能够组成所述目标图像帧,所述目标图像帧中各个区域的优先级不同,各个区域的编码结果由发送端设备按各个区域分别对应的目标码率对对应区域进行编码得到,各个区域分别对应的目标码率根据预测的网络带宽、各个区域的优先级以及各个区域分别对应的最大码率确定,优先级高的区域对应的目标码率相比于其对应的最大码率的下降幅度小于优先级低的区域对应的目标码率相比于其对应的最大码率的下降幅度,一个区域对应的最大码率根据该区域与所述目标图像帧的面积比和所述最大带宽确定;

若各个区域的编码结果在传输的过程中均未丢失数据,则分别对各个区域的编码结果进行解码,以获得各个区域的解码结果;

根据各个区域的解码结果生成一完整的图像帧。

可选的,优先级最高的区域的编码结果包括多个视频数据包和纠错数据包,其它区域均只包括多个视频数据包;

所述视频传输方法还包括:

若优先级最高的区域的任一视频数据包在传输的过程中丢失,则利用所述纠错数据包恢复丢失的视频数据包;

若用所述纠错数据包无法恢复丢失的视频数据包,则向发送端设备发送重传请求数据包,以使发送端设备重传丢失的视频数据包,其中,所述重传请求数据包中包括请求重传的视频数据包的信息;

若重传出错,且连续重传出错的次数达到预设次数,则向发送端设备发起刷新视频编码关键帧的请求,以使发送端设备刷新视频编码关键帧,其中,重传出错指的是,接收端接收到发送端重传的视频数据包为错误的数据包。

可选的,所述视频传输方法还包括:

对于除优先级最高的区域外的其它区域中的任一区域,若该区域的任一视频数据包在传输过程中丢失,则向发送端设备发送重传请求数据包,以使发送端设备重传丢失的视频数据包,其中,所述重传请求数据包中包括请求重传的视频数据包的信息;

若在该区域对应的丢包最大等待时间内未接收到发送端设备重传的视频数据包,则用前一图像帧中该区域的解码结果作为所述目标图像帧中该区域的解码结果;

其中,高优先级区域对应的丢包最大等待时间长于低优先级区域对应的丢包最大等待时间。

一种视频传输装置,应用于发送端设备,所述装置包括:图像切分模块、带宽获取模块、码率分配模块、编码模块和发送模块;

所述图像切分模块,用于将目标视频中待传输的目标图像帧切分为多个区域,其中,各个区域的优先级不同,各个区域的优先级根据用户对各个区域的关注程度确定;

所述带宽获取模块,用于获取当前预测的带宽作为目标带宽;

所述码率分配模块,用于当所述目标带宽小于最大带宽时,根据所述目标带宽、各个区域的优先级以及各个区域分别对应的最大码率,为各个区域分配对应的目标码率,其中,优先级高的区域对应的目标码率相比于其对应的最大码率的下降幅度小于优先级低的区域对应的目标码率相比于其对应的最大码率的下降幅度,一个区域对应的最大码率根据该区域与所述目标图像帧的面积比和所述最大带宽确定;

所述编码模块,用于按各个区域分别对应的目标码率对对应的区域进行压缩编码;

所述发送模块,用于将各个区域的压缩编码结果发送至接收端设备。

一种视频传输装置,应用于接收端设备,所述装置包括:接收模块、解码模块和图像帧生成模块;

所述接收模块,用于接收目标图像帧中多个区域的编码结果,其中,所述目标图像帧中的各个区域能够组成所述目标图像帧,所述目标图像帧中各个区域的优先级不同,各个区域的编码结果由发送端设备按各个区域分别对应的目标码率对对应区域进行编码得到,各个区域分别对应的目标码率根据预测的网络带宽、各个区域的优先级以及各个区域分别对应的最大码率确定,优先级高的区域对应的目标码率相比于其对应的最大码率的下降幅度小于优先级低的区域对应的目标码率相比于其对应的最大码率的下降幅度,一个区域对应的最大码率根据该区域与所述目标图像帧的面积比和所述最大带宽确定;

所述解码模块,用于若各个区域的编码结果在传输的过程中均未丢失数据,则分别对各个区域的编码结果进行解码,以获得各个区域的解码结果;

所述图像帧生成模块,用于根据各个区域的解码结果生成一完整的图像帧。

一种视频传输系统,包括:发送端设备和接收端设备;

所述发送端设备,用于将目标视频中待传输的目标图像帧切分为多个区域,其中,各个区域的优先级不同,各个区域的优先级根据用户对各个区域的关注程度确定;获取当前预测的带宽作为目标带宽;当所述目标带宽小于最大带宽时,根据所述目标带宽、各个区域的优先级以及各个区域分别对应的最大码率,为各个区域分配对应的目标码率,其中,优先级高的区域对应的目标码率相比于其对应的最大码率的下降幅度小于优先级低的区域对应的目标码率相比于其对应的最大码率的下降幅度,一个区域对应的最大码率根据该区域与所述目标图像帧的面积比和所述最大带宽确定;以及按各个区域分别对应的码率对对应的区域进行压缩编码,并将各个区域的压缩编码结果发送至接收端设备;

所述接收端设备,用于接收所述目标图像帧中各个区域的压缩编码结果;若各个区域的编码结果在传输的过程中均未丢失数据,则分别对各个区域的编码结果进行解码,以获得各个区域的解码结果;以及根据每个区域的解码结果生成一完整的图像帧。

一种发送端设备,包括:存储器和处理器;

所述存储器,用于存储程序;

所述处理器,用于执行所述程序,实现上述应用于发送端设备的任一项所述的视频传输方法的各个步骤。

一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述应用于发送端设备的任一项所述的视频传输方法的各个步骤。

一种接收端设备,包括:存储器和处理器;

所述存储器,用于存储程序;

所述处理器,用于执行所述程序,实现上述应用于接收端设备的任一项所述的视频传输方法的各个步骤。

一种可读存储介质,其上存储有计算机程序,所算机程序被处理器执行时,实现上述应用于接收端设备的任一项所述的视频传输方法的各个步骤。

经由上述方案可知,本申请提供的视频传输方法、装置、系统、设备及存储介质,可将待传输的目标视频中待传输的目标图像帧切分为多个优先级不同的区域,当网络变差时,可根据目标带宽、各个区域的优先级以及各个区域分别对应的最大码率为各个区域分别对应的目标码率,在为各个区域分配码率时,使高优先级区域对应的码率相比于其对应的最大码率的下降幅度小于优先级低的区域的码率相比于其对应的最大码率的下降幅度。高优先级区域对应的码率相比于其对应的最大码率的下降幅度小,能够保证高优先级区域具有较好的视频质量,优先级低的区域的码率相比于其对应的最大码率的下降幅度大,能够保证目标图像帧较快、较流畅、低延迟地传输至接收端设备,综上,本申请提供的视频传输方法,在网络变差时,既能保证目标图像帧中重要区域具有较好的视频质量,又能保证目标图像帧能够较快、较流畅、低延迟地传输至接收端设备。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的应用于发送端设备的视频传输方法的流程示意图;

图2为本申请实施例提供的将目标图像帧切分为多个区域的一示例的示意图;

图3为本申请实施例提供的将目标图像帧切分为多个区域的另外两个示例的示意图;

图4为本申请实施例提供的根据四个视频数据包生成FEC数据包的示意图;

图5为本申请实施例提供的利用纠错数据包和未丢失视频数据包恢复丢失视频数据包的示意图;

图6为本申请实施例提供的应用于发送端设备的视频传输方法的一具体实例的流程示意图;

图7a和图7b为本申请实施例提供的对第二区域和第三区域进行填充的示意图;

图8为本申请实施例提供的应用于接收端设备的视频传输方法的流程示意图;

图9为本申请实施例提供的第二区域未发生丢包的处理方式示意图以及第二区域发生丢包的三种情况的处理方式示意图;

图10为本申请实施例提供的第三区域未发生丢包的处理方式示意图以及第三区域发生丢包的三种情况的处理方式示意图;

图11为本申请实施例提供的应用于发送端设备的视频传输装置的结构示意图;

图12为本申请实施例提供的应用于接收端设备的视频传输装置的结构示意图;

图13为本申请实施例提供的视频传输系统的结构示意图;

图14为本申请实施例提供的发送端设备的结构示意图;

图15为本申请实施例提供的接收端设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了能够在网络较差的情况下较快、较流畅、低延迟地进行视频传输,本案发明人进行了深入研究,最终提出了一种效果较好的视频传输方法,该视频传输方法的基本思想是:

将待传输视频的待传输图像帧切分为优先级不同的多个区域,当网络质量变差时,为了保证待传输图像帧能够流畅地、低延迟地传输至接收端设备,同时保证高优先级区域的视频质量,使高优先级区域的码率相比于其对应的最大码率具有较小的下降幅度(保证高优先级区域的视频质量),使低优先级的码率相比于其对应的最大码率具有较大的下降幅度(保证待传输图像帧顺利传输),也就是说,在网络变差时,主要通过降低低优先级区域对应的码率来保证待传输图像帧流畅地、低延迟地传输。

本申请提出的视频传输方法应用于发送视频数据的发送端设备和接收视频数据的接收端设备。接下来通过下述实施例对本申请提供的视频传输方法进行介绍。

请参阅图1,示出了本申请实施例提供的视频传输方法的流程示意图,该方法应用于发送端设备,比如PC、笔记本、PAD、手机等,该方法可以包括:

步骤S101:将目标视频中待传输的目标图像帧切分为多个区域。

其中,切分得到的各个区域的优先级不同,各个区域的优先级根据用户对各个区域的关注程度确定,用户关注程度高的区域优先级高,用户关注程度低的区域优先级低。比如,用户对目标图像帧的中心区域关注度较高,对目标图像帧的边缘区域的关注度较低,基于此,可按如图2所示的划分方式将目标图像帧划分为三个区域。当然,本申请并不限定只能按图2所示的切分方式进行切分,还可按其他方式切分,比如,图3中的切分方式。

在本实施例中,可预先设定切分区域的个数、切分方式以及每个区域与目标图像帧的面积比,在传输目标视频时,以这些为依据对目标视频中待传输的目标图像帧进行切分。优选的,可使优先级最高的区域的面积最大。

步骤S102:获取当前预测的带宽作为目标带宽。

可选的,可采用卡尔曼滤波带宽预估算法、BBR拥塞算法等预测未来带宽,预测的带宽作为目标带宽。

步骤S103:当目标带宽小于最大带宽时,根据目标带宽、各个区域的优先级以及各个区域分别对应的最大码率,为各个区域分配分别对应的目标码率。

可以理解的是,目标带宽小于最大带宽,表明网络状况并不是最佳,此时为了保证高优先级区域的视频质量,同时保证目标图像帧顺利传输,本实施例在为各个区域分配对应目标码率的原则是:使优先级高的区域对应的目标码率相比于其对应的最大码率的下降幅度小于优先级低的区域对应的目标码率相比于其对应的最大码率的下降幅度。

若目标带宽为最大带宽,则为各个区域分配的目标码率为对应区域对应的最大码率。

一个区域对应的最大码率为网络最佳(即网络的带宽为最大带宽)时的码率,其可根据最大带宽和该区域与目标图像帧的面积比确定,具体的,用最大带宽乘以该区域与目标图像帧的面积比,即得到该区域对应的目标码率。

步骤S104:按各个区域分别对应的目标码率对对应的区域进行压缩编码,并将各个区域的压缩编码结果发送至接收端设备。

具体的,可使用视频编码器,按各个区域分别对应的目标码率对对应的区域进行压缩编码。

本实施例提供的视频传输方法,可将待传输的目标图像帧切分为多个优先级不同的区域,当网络变差时,可根据目标带宽、各个区域的优先级以及各个区域分别对应的最大码率为各个区域分别对应的目标码率,在为各个区域分配码率时,使高优先级区域对应的码率相比于其对应的最大码率的下降幅度小于优先级低的区域的码率相比于其对应的最大码率的下降幅度。高优先级区域对应的码率相比于其对应的最大码率的下降幅度小,能够保证高优先级区域具有较好的视频质量,优先级低的区域的码率相比于其对应的最大码率的下降幅度大,能够保证目标图像帧顺利传输至接收端设备,综上,本申请实施例提供的视频传输方法,在网络变差时,既能保证目标图像帧中重要区域具有较好的视频质量,又能保证目标图像帧能够较快、较流畅、低延迟地传输至接收端设备。

另外,考虑到编码器输出的视频编码帧的大小往往高于UDP网络的最大传输单元MTU的大小,基于此,本实施例可对各个区域的编码结果按MTU大小进行分片,以获得每个区域的多个视频数据包。

可以理解的是,各个区域的视频数据包在传输的过程中,若网络变差,很可能出现丢包的情况,由于优先级最高的区域比较重要,在优先级最高的区域发生丢包情况时,为了能够恢复出丢失的数据包,本申请实施例可引入数据保护机制,即在传输优先级最高的区域的数据包时,引入包含纠错信息的纠错数据包,以便优先级最高的区域发生丢包时,接收端设备能够利用纠错数据包恢复出丢失的数据包。

也就是说,本申请实施例对于优先级最高的区域,将该区域的编码结果拆分为多个视频数据包,并根据多个视频数据包生成包含纠错信息的纠错数据包,将优先级最高的区域的多个视频数据包和纠错数据包发送至接收端设备,其中,纠错信息对应的码率根据优先级最高的区域对应的总码率和优先级最高的区域对应的目标码率确定;对于除优先级最高的区域之外的区域,将每个区域的编码结果拆分为多个视频数据包,将拆分得到的多个数据包发送至接收端设备。

可选的,本实施例中使用的数据保护机制可以但不限定为前向纠错FEC机制,也就是说,根据优先级最高的区域的多个视频数据包生成FEC数据包,可选的,可采用XOR冗余方法生成FEC数据包,假设有四个视频数据包,请参阅图4,示出了根据四个视频数据包生成FEC数据包的过程,如图4所示,将视频数据包Packet1中的数据与视频数据包Packet2中的数据做XOR,得到FEC1,将FEC1与视频数据包Packet3中的数据做XOR,得到FEC2,FEC2与视频数据包Packet4中的数据做XOR,得到FEC3,将包含FEC3的数据包作为与Packet1~Packet4一同发送往接收端设备的纠错数据包。

假设在传输上述的视频数据包Packet1~Packet4和纠错数据包的过程中,Packet2丢失,则接收端设备可利用纠错数据包、Packet1、Packet3和Packet4恢复出Packet2,请参阅图5,示出了利用纠错数据包中的纠错信息(即上述的FEC3)、Packet1、Packet3和Packet4恢复出Packet2的过程,如图5所示,FEC3与Packet4中的数据做XOR,得到FEC2,FEC2与Packet3中的数据做XOR,得到FEC1,FEC1与Packet1中的数据做XOR,可获得Packet2中的数据。

需要说明的是,纠错信息的冗余度与网络带宽反相关,即,网络带宽越大,则纠错数据的冗余度越小,反之,网络带宽越小,则纠错数据的冗余度越大。假设网络带宽a小于网络带宽b,且a和b均小于最大带宽,则带宽为a时的冗余度大于带宽为b时的冗余度,比如,在带宽为a时,可每两个视频数据包附加一个纠错数据包,如果总共12个数据包,那么需要附加6个纠错数据包,在带宽为b时,每四个视频数据包附加一个纠错数据包,那么需要附加3个纠错数据包。

另外,需要说明的是,为了使得接收端设备能够正确地将属于同一图像帧的各个区域合并,目标图像帧各个区域的数据包应具有统一的绝对时间戳。

在上述实施例的基础上,下面通过一具体实例对本申请提供的视频传输方法进行介绍。

请参阅图6,示出了本申请提供的、应用于发送端设备的视频传输方法的一具体实例的流程示意图,可以包括:

步骤S601:将目标视频中待传输的目标图像帧切分为三个区域。

具体的,可按图2示出的切分方法将目标图像帧切分为三个区域,其中,三个区域由内到外依次为第一区域、第二区域和第三区域,也就是说,第一区域为目标图像帧的中心区域,第二区域为第一区域之外的区域,第三区域为第二区域之外的区域。

由于用户对于第一区域的关注度最高,第二区域次之,对第三区域的关注度最低,因此,设定第一区域的优先级最高,第二区域的优先级次之,第三区域的优先级最低。

可选的,可使第一区域的面积约为目标图像帧总面积的0.4~0.5,比如,0.44,若第一区域的面积为目标图像帧总面积的0.44,可使第二区域的面积为目标图像帧总面积的0.2,第三区域的面积为目标图像帧总面积的0.36。各个区域的面积占目标图像帧总面积比例可根据具体应用情况设定。

需要说明的是,由于第二区域和第三区域的数据不能变为矩阵,因此无法编码,为此,可分别对第二区域和第三区域进行填充,如图7a和图7b所示,图7a和图7b中的阴影区域为填充区域,可选的,可填充绿色数据,即YUV为0。

步骤S602:获取当前预测的带宽作为目标带宽。

可选的,可采用任一种带宽预估算法预估带宽,比如,卡尔曼滤波带宽预估算法、BBR拥塞算法等。

步骤S603:当目标带宽小于最大带宽时,根据目标带宽、三个区域的优先级以及三个区域分别对应的最大码率,为三个区域分配分别对应的目标码率。

需要说明的是,若目标带宽为最大带宽,则为各个区域分配的目标码率为对应区域对应的最大码率。

示例性的,最大带宽为4mbps,第一区域的面积为目标图像帧总面积的0.44,第二区域的面积为目标图像帧总面积的0.2,第三区域的面积为目标图像帧总面积的0.36,则,第一区域对应的最大码率为0.44*最大带宽(即0.44*4),约为1.7mbps,同样的,第二区域对应的最大码率为0.2*最大带宽(即0.2*4),即为0.8mbps,第三区域对应的最大码率为0.36*最大带宽(即0.36*4),即为1.44mbps。

若目标带宽小于最大带宽,则表明网络状况不佳,即网络的当前总码率小于网络的最大总码率,这意味着分配给每个区域的码率相比于该区域对应的最大码率有所下降。

在网络状况不佳时,为了保证目标图像帧顺利传输,同时保证优先级最高的区域(即第一区域)具有较好的视频质量,本实施例为各个区域分配码率的原则为:使第一区域对应的目标码率相比于其对应的最大码率的下降幅度小于第二区域对应的目标码率相比于其对应的最大码率的下降幅度,使第二区域对应的目标码率相比于其对应的最大码率的下降幅度小于第三区域对应的目标码率相比于其对应的最大码率的下降幅度。

在一种可能的实现方式中,分别针对第一区域、第二区域和第三区域设定一函数,针对任一区域设定的函数能够反映目标带宽与该区域对应的目标码率的关系,针对各个区域设定的函数用以在网络状况不佳时,使第一区域对应的目标码率相比于其对应的最大码率的下降幅度小于第二区域对应的目标码率相比于其对应的最大码率的下降幅度,第二区域对应的目标码率相比于其对应的最大码率的下降幅度小于第三区域对应的目标码率相比于其对应的最大码率的下降幅度。

可选的,针对第一区域设定的、能够反映目标带宽X与该区域对应的目标码率b11关系的函数为b11=(X/4)*1.7,需要说明的是,在网络变差时,由于要引入纠错信息,因此需要为纠错信息分配码率,为此,针对第一区域设定能反映第一区域对应的总码率b1与目标带宽X关系的函数b1=(X+4)/8*1.7,则为纠错信息分配的码率b12=b1-b11;针对第三区域设定的、能够反映目标带宽X与该区域对应的目标码率b3关系的函数为b3=(X/4)*(X/4)*1.44;针对第二区域设定的、能够反映目标带宽X与该区域对应的目标码率b2关系的函数为b2=X-b1-b3。

假设目标带宽X为网络的最小带宽,比如最小带宽为2,则,第一区域对应的总码率b1=(X+4)/8*1.7=(2+4)/8*1.7=1.275mbps,第一区域对应的目标码率b11=(X/4)*1.7=(2/4)*1.7=0.85mbps,纠错信息的码率为b12=b1-b11=1.275-0.85=0.475mbps;第三区域对应的目标码率b3=(X/4)*(X/4)*1.44=(2/4)*(2/4)*1.44=0.35mbps;第二区域对应的目标码率为b2=X-b1-b3=2-1.275-0.35=0.375mbps。

步骤S604:按三个区域分别对应的目标码率对对应的区域进行压缩编码,并将各个区域的压缩编码结果发送至接收端设备。

需要说明的是,在对第一区域进行编码时,量化参数应设置较小,量化参数越小,则质量越高,由于第一区域的面积只占目标图像帧面积的0.4~0.5,因此,量化参数即使较小,编码速度也比较快。

本实施例提供的视频传输方法,可将待传输的目标图像帧切分为三个优先级不同的区域,当网络变差时,可根据目标带宽、三个区域的优先级以及三个区域分别对应的最大码率为三个区域分别对应的目标码率,使高优先级区域对应的码率相比于其对应的最大码率的下降幅度小于优先级低的区域的码率相比于其对应的最大码率的下降幅度。高优先级区域对应的码率相比于其对应的最大码率的下降幅度小,能够保证高优先级区域具有较好的视频质量,优先级低的区域的码率相比于其对应的最大码率的下降幅度大,能够保证目标图像帧较快、较流畅、低延迟地传输至接收端设备,综上,本申请实施例提供的视频传输方法,在网络变差时,既能保证目标图像帧中重要的区域具有较好的视频质量,又能保证目标图像帧能够较快、较流畅、低延迟地传输至接收端设备。

通过上述实施例提供的视频传输方法可将目标视频中的目标图像帧的编码结果传输至接收端设备。以下对接收端设备从接收的数据还原出图像帧的过程进行介绍。

请参阅图8,示出了应用于接收端设备的视频传输方法的流程示意图,该方法可以包括:

步骤S801:接收目标图像帧中各个区域的编码结果。

其中,目标图像帧中的各个区域能够组成目标图像帧,目标图像帧中各个区域的优先级不同,各个区域的编码结果由发送端设备按各个区域分别对应的目标码率对对应区域进行编码得到,各个区域分别对应的目标码率根据预测的网络带宽、各个区域的优先级以及各个区域分别对应的最大码率确定,优先级高的区域对应的目标码率相比于其对应的最大码率的下降幅度小于优先级低的区域对应的目标码率相比于其对应的最大码率的下降幅度,一个区域对应的最大码率根据该区域与目标图像帧的面积比和所述最大带宽确定。

步骤S802:若各个区域的编码结果在传输的过程中均未丢失数据,则分别对各个区域的编码结果进行解码,获得各个区域的解码结果。

在介绍发送端设备的视频传输方法时提到,各个区域的编码结果被拆分为多个视频数据包,且在网络状况不佳时,优先级最高的区域还会附加纠错信息,也就是说,网络状况不佳时,优先级最高的区域的编码结果包括多个视频数据包和纠错数据包,其它区域均只包括多个视频数据包。

步骤S803:根据各个区域的解码结果生成一完整的图像帧。

具体的,将各个区域的解码结果合并,直接合并后的图像帧中两个相邻区域具有边界效应,为了获得质量较好的图像帧,可对直接合并后的图像帧进行滤波处理,以消除边界效应,可选的,可使用方块滤波算法对直接合并后的图像帧进行滤波处理。

本申请实施例提供的视频传输方法,在接收到目标图像帧中各个区域的编码结果,若各个区域的编码结果在传输的过程中均未丢失数据,则分别对各个区域的编码结果进行解码,并根据各个区域的编码结果生成一完整的图像帧。当网络状况不佳时,由于目标图像帧中高优先级区域对应的码率相比于其对应的最大码率的下降幅度小,能够保证高优先级区域具有较好的视频质量,优先级低的区域的码率相比于其对应的最大码率的下降幅度大,能够保证目标图像帧较快、较流畅、低延迟地传输至接收端设备,因此,接收端设备能够快速接收到各个区域的编码结果,且能够根据各个区域的解码结果生成质量较优的图像帧(用户关注程度高的区域具有较好的视频质量)。

可以理解的是,若网络状况不佳,则各个区域的视频数据包在传输的过程中很可能发生丢包,考虑到各个区域的优先级不同,即各个区域的重要程度不同,本实施例针对不同优先级的不同区域采用不同的丢包处理策略。

对于优先级最高的区域,若该区域的任一视频数据包在传输的过程中丢失,则利用纠错数据包恢复丢失的视频数据包,若用纠错数据包无法恢复丢失的视频数据包,则向发送端设备发送重传请求数据包(比如RTCP NACK),以使发送端设备重传丢失的视频数据包,其中,重传请求数据包中包括请求重传的视频数据包的信息;若重传出错,且连续重传出错的次数达到预设次数(比如10次),则向发送端设备发起刷新视频编码关键帧的请求,以使发送端设备刷新视频编码关键帧,其中,重传出错指的是,接收端接收到发送端重传的视频数据包为错误的数据包。

对于除优先级最高的区域外的其它区域中的任一区域,若该区域的任一视频数据包在传输的过程中丢失,则向发送端设备发送重传请求数据包(比如RTCP NACK),以使发送端设备重传丢失的视频数据包,其中,重传请求数据包中包括请求重传的视频数据包的信息;若在该区域对应的丢包最大等待时间内未接收到发送端设备重传的视频数据包,则用前一图像帧中该区域的解码结果作为目标图像帧中该区域的解码结果。

需要说明的是,除优先级最高的区域外的其它区域中,高优先级区域对应的丢包最大等待时间长于低优先级区域对应的丢包最大等待时间。

假设目标图像帧中的三个区域为图2示出的第一区域、第二区域和第三区域:

若第一区域的视频数据包在传输的过程中丢失,则利用第一区域的纠错数据包对丢失的视频数据包进行恢复,若无法恢复,则向发送端设备发送重传请求数据包(比如RTCPNACK),以使发送端设备重传丢失的视频数据包,若发送端设备连续重传了10次错误数据包,则向发送端设备发起关键帧刷新请求(比如RTCP PLI),以使发送端设备刷新关键帧。

若第二区域的视频数据包在传输的过程中丢失,则向发送端设备发送重传请求数据包(比如RTCP NACK),以使发送端设备重传丢失的视频数据包;若在200ms内未接收到发送端设备重传的视频数据包,则用前一图像帧中该区域的解码结果作为目标图像帧中该区域的解码结果。请参阅图9(a)~9(d),图9(a)为各个区域的视频数据包在传输的过程中未发生丢包的情况,接收端设备根据各个区域的解码结果生成图像帧,图9(b)为第二区域的视频数据包在传输的过程中丢失,接收端设备向发送端设备发起重传且重传成功的情况,重传成功后,接收端设备根据各个区域的解码结果生成图像帧,图9(c)为第二区域的视频数据包在传输的过程中丢失,接收端设备向发送端设备发起重传但重传失败的情况,重传失败指的是接收端设备未接收到发送端设备重传的数据包,此时用前一图像帧中第二区域的解码结果作为目标图像帧中第二区域的解码结果,以根据各个区域的解码结果生成图像帧,图9(d)为第二区域的视频数据包在传输的过程中丢失,接收端设备向发送端设备发起重传,但接收端设备在200ms内未接收到重传数据包的情况(即重传超时),此时,也用前一图像帧中第二区域的解码结果作为目标图像帧中第二区域的解码结果,以根据各个区域的解码结果生成图像帧。需要说明的是,图9c为图9d中的一种情况,也就是说,重传失败是重传超时中的一种情况,重传超时包括两种情况,一种是一直未接收到重传数据包,另一种是接收到重传数据包,但接收到重传数据包的时间超过了200ms。

若第三区域的视频数据包在传输的过程中丢失,则向发送端设备发送重传请求数据包(比如RTCP NACK),以使发送端设备重传丢失的视频数据包;若在150ms内未接收到发送端设备重传的视频数据包,则用前一图像帧中第三区域的解码结果作为目标图像帧中第三区域的解码结果。请参阅图10(a)~10(d),图10(a)为各个区域的视频数据包在传输的过程中未丢失情况,接收端设备根据各个区域的解码结果生成图像帧,图10(b)为第三区域的视频数据包在传输的过程中丢失,接收端设备向发送端设备发起重传且重传成功的情况,重传成功后,接收端设备根据各个区域的解码结果生成图像帧,图10(c)为第三区域的视频数据包在传输的过程中丢失,接收端设备向发送端设备发起重传但重传失败的情况,重传失败指的是接收端设备未接收到发送端设备重传的数据包,此时用前一图像帧中第三区域的解码结果作为目标图像帧中第三区域的解码结果,以根据各个区域的解码结果生成图像帧,图10(d)为第三区域的视频数据包在传输的过程中丢失,接收端设备向发送端设备发起重传,但接收端设备在150ms内未接收到重传数据包的情况(即重传超时),此时,也用前一图像帧中第三区域的解码结果作为目标图像帧中第三区域的解码结果,以根据各个区域的解码结果生成图像帧。同样的,重传失败是重传超时的一种情况。

需要说明的是,由于第二区域的优先级高于第三区域,所以设定第二区域的丢包最大等待时间长于第三区域的丢包最大等待时间。另外,对于第二区域丢失的数据包,接收端设备仅发起一次重传请求即可,第三区域同样如此。

另外,由于第二区域和第二区域均有丢包最大等待时间,因此,发送端设备与接收端设备要做好时间同步。

与上述应用于发送端设备的视频传输方法相对应,本申请实施例还提供了一种应用于发送端设备的视频传输装置,请参阅图11,示出了该装置的结构示意图,可以包括:图像切分模块1101、带宽获取模块1102、码率分配模块1103、编码模块1104和发送模块1105。

图像切分模块1101,用于将目标视频中待传输的目标图像帧切分为多个区域。

其中,各个区域的优先级不同,各个区域的优先级根据用户对各个区域的关注程度确定。

带宽获取模块1102,用于获取当前预测的带宽作为目标带宽;

码率分配模块1103,用于当目标带宽小于最大带宽时,根据目标带宽、各个区域的优先级以及各个区域分别对应的最大码率,为各个区域分配对应的目标码率。

其中,优先级高的区域对应的目标码率相比于其对应的最大码率的下降幅度小于优先级低的区域对应的目标码率相比于其对应的最大码率的下降幅度,一个区域对应的最大码率根据该区域与目标图像帧的面积比和最大带宽确定。

编码模块1104,用于按各个区域分别对应的目标码率对对应的区域进行压缩编码。

发送模块1105,用于将各个区域的压缩编码结果发送至接收端设备。

本申请实施例提供的视频传输装置,在网络变差时,既能保证目标图像帧中重要区域具有较好的视频质量,又能保证目标图像帧能够较快、较流畅、低延迟地传输至接收端设备。

在一种可能的实现方式中,上述实施例中的发送模块1105包括:数据分片子模块和纠错数据包生成子模块和发送子模块。

数据分片子模块,用于分别将各个区域的编码结果拆分为多个视频数据包。

纠错数据包生成子模块,用于根据优先级最高的区域的多个视频数据包生成包含纠错信息的纠错数据包。

发送子模块,用于将优先级最高的区域的多个视频数据包和纠错数据包发送至接收端设备,以及,将除优先级最高的区域之外的每个区域的多个视频数据包发送至接收端设备。

在一种可能的实现方式中,目标图像帧的各个区域的数据包具有统一的绝对时间戳。

在一种可能的实现方式中,上述实施例中的图像切分模块1101,具体用于将目标视频中的目标图像帧切分为三个区域,其中,三个区域中第一区域的优先级高于第二区域,第二区域的优先级高于第三区域,第一区域为目标图像帧的中心区域,第二区域为中心区域之外的区域,第三区域为第二区域之外的区域。

在一种可能的实现方式中,上述实施例中的码率分配模块1103,具体用于根据目标带宽和第一区域对应的最大码率,确定第一区域对应的目标码率;根据目标带宽和第三区域对应的最大码率,确定第三区域对应的目标码率;根据目标带宽、第一区域对应的目标码率和第三区域对应的目标编码码率,确定第二区域对应的目标码率。

其中,第三区域对应的目标码率相比于其对应的最大码率的下降幅度小于第二区域对应的目标码率相比于其对应的最大码率的下降幅度,第二区域对应的目标码率相比于其对应的最大码率的下降幅度小于第三区域对应的目标码率相比于其对应的最大码率的下降幅度。

与上述应用于接收端设备的视频传输方法相对应,本申请实施例还提供了一种应用于接收端设备的视频传输装置,请参阅图12,示出了该装置的结构示意图,可以包括:接收模块1201、解码模块1202和图像帧生成模块1203。

接收模块1201,用于接收目标图像帧中多个区域的编码结果。

其中,目标图像帧中的各个区域能够组成目标图像帧,目标图像帧中各个区域的优先级不同,各个区域的编码结果由发送端设备按各个区域分别对应的目标码率对对应区域进行编码得到,各个区域分别对应的目标码率根据预测的网络带宽、各个区域的优先级以及各个区域分别对应的最大码率确定,优先级高的区域对应的目标码率相比于其对应的最大码率的下降幅度小于优先级低的区域对应的目标码率相比于其对应的最大码率的下降幅度,一个区域对应的最大码率根据该区域与目标图像帧的面积比和最大带宽确定。

解码模块1202,用于若各个区域的编码结果在传输的过程中均未丢失数据,则分别对各个区域的编码结果进行解码,以获得各个区域的解码结果。

图像帧生成模块1203,用于根据各个区域的解码结果生成一完整的图像帧。

本申请实施例提供的视频传输装置时的接收端设备能够快速接收到各个区域的编码结果,且能够根据各个区域的解码结果生成质量较优的图像帧(用户关注程度高的区域具有较好的视频质量)。

上述实施例中,优先级最高的区域的编码结果包括多个视频数据包和纠错数据包,其它区域均只包括多个视频数据包。

在一种可能的实现方式中,上述实施例提供的装置还可以包括:第一丢包处理模块。

第一丢包处理模块,用于若优先级最高的区域的任一视频数据包在传输的过程中丢失,则利用纠错数据包恢复丢失的视频数据包;若用纠错数据包无法恢复丢失的视频数据包,则向发送端设备发送重传请求数据包,以使发送端设备重传丢失的视频数据包,其中,重传请求数据包中包括请求重传的视频数据包的信息;若重传出错,且连续重传出错的次数达到预设次数,则向发送端设备发起刷新视频编码关键帧的请求,以使发送端设备刷新视频编码关键帧,其中,重传出错指的是,接收端接收到发送端重传的视频数据包为错误的数据包。

在一种可能的实现方式中,上述实施例提供的装置还可以包括:第二丢包处理模块。

第二丢包处理模块,用于对于除优先级最高的区域外的其它区域中的任一区域,若该区域的任一视频数据包在传输过程中丢失,则向发送端设备发送重传请求数据包,以使发送端设备重传丢失的视频数据包,其中,重传请求数据包中包括请求重传的视频数据包的信息;若在该区域对应的丢包最大等待时间内未接收到发送端设备重传的视频数据包,则用前一图像帧中该区域的解码结果作为目标图像帧中该区域的解码结果。

其中,高优先级区域对应的丢包最大等待时间长于低优先级区域对应的丢包最大等待时间。

本申请实施例还提供了一种视频传输系统,请参阅图13,示出了该系统的结构示意图,可以包括:发送端设备1301和接收端设备1302。

发送端设备1301,用于将目标视频中待传输的目标图像帧切分为多个区域,其中,各个区域的优先级不同,各个区域的优先级根据用户对各个区域的关注程度确定;获取当前预测的带宽作为目标带宽;当目标带宽小于最大带宽时,根据目标带宽、各个区域的优先级以及各个区域分别对应的最大码率,为各个区域分配对应的目标码率,其中,优先级高的区域对应的目标码率相比于其对应的最大码率的下降幅度小于优先级低的区域对应的目标码率相比于其对应的最大码率的下降幅度,一个区域对应的最大码率根据该区域与目标图像帧的面积比和最大带宽确定;以及按各个区域分别对应的码率对对应的区域进行压缩编码,并将各个区域的压缩编码结果发送至接收端设备。

接收端设备1302,用于接收目标图像帧中各个区域的压缩编码结果;若各个区域的编码结果在传输的过程中均未丢失数据,则分别对各个区域的编码结果进行解码,以获得各个区域的解码结果;以及根据每个区域的解码结果生成一完整的图像帧。

本申请实施例提供的视频传输系统,使得目标图像帧能够较快、较流畅、低延迟地传输至接收端设备,又使得接收端设备能够获得质量较好的图像帧。

本申请实施例还提供了一种发送端设备,请参阅图14,示出了该发送端设备的结构示意图,该发送端设备可以包括:至少一个处理器1401,至少一个通信接口1402,至少一个存储器1403和至少一个通信总线1404;

在本申请实施例中,处理器1401、通信接口1402、存储器1403、通信总线1404的数量为至少一个,且处理器1401、通信接口1402、存储器1403通过通信总线1404完成相互间的通信;

处理器1401可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;

存储器1403可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;

其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:

将目标视频中待传输的目标图像帧切分为多个区域,其中,各个区域的优先级不同,各个区域的优先级根据用户对各个区域的关注程度确定;

获取当前预测的带宽作为目标带宽;

当目标带宽小于最大带宽时,根据目标带宽、各个区域的优先级以及各个区域分别对应的最大码率,为各个区域分配对应的目标码率,其中,优先级高的区域对应的目标码率相比于其对应的最大码率的下降幅度小于优先级低的区域对应的目标码率相比于其对应的最大码率的下降幅度,一个区域对应的最大码率根据该区域与目标图像帧的面积比和最大带宽确定;

按各个区域分别对应的目标码率对对应的区域进行压缩编码,并将各个区域的压缩编码结果发送至接收端设备。

可选的,所述程序的细化功能和扩展功能可参照上文描述。

本申请实施例还提供一种可读存储介质,该可读存储介质可存储有适于处理器执行的程序,所述程序用于:

将目标视频中待传输的目标图像帧切分为多个区域,其中,各个区域的优先级不同,各个区域的优先级根据用户对各个区域的关注程度确定;

获取当前预测的带宽作为目标带宽;

当目标带宽小于最大带宽时,根据目标带宽、各个区域的优先级以及各个区域分别对应的最大码率,为各个区域分配对应的目标码率,其中,优先级高的区域对应的目标码率相比于其对应的最大码率的下降幅度小于优先级低的区域对应的目标码率相比于其对应的最大码率的下降幅度,一个区域对应的最大码率根据该区域与目标图像帧的面积比和最大带宽确定;

按各个区域分别对应的目标码率对对应的区域进行压缩编码,并将各个区域的压缩编码结果发送至接收端设备。

本申请实施例还提供了一种接收端设备,请参阅图15,示出了该接收端设备的结构示意图,该接收端设备可以包括:至少一个处理器1501,至少一个通信接口1502,至少一个存储器1503和至少一个通信总线1504;

在本申请实施例中,处理器1501、通信接口1502、存储器1503、通信总线1504的数量为至少一个,且处理器1501、通信接口1502、存储器1503通过通信总线1504完成相互间的通信;

处理器1501可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;

存储器1503可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;

其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:

接收目标图像帧中多个区域的编码结果,其中,所述目标图像帧中的各个区域能够组成所述目标图像帧,所述目标图像帧中各个区域的优先级不同,各个区域的编码结果由发送端设备按各个区域分别对应的目标码率对对应区域进行编码得到,各个区域分别对应的目标码率根据预测的网络带宽、各个区域的优先级以及各个区域分别对应的最大码率确定,优先级高的区域对应的目标码率相比于其对应的最大码率的下降幅度小于优先级低的区域对应的目标码率相比于其对应的最大码率的下降幅度,一个区域对应的最大码率根据该区域与所述目标图像帧的面积比和所述最大带宽确定;

若各个区域的编码结果在传输的过程中均未丢失数据,则分别对各个区域的编码结果进行解码,以获得各个区域的解码结果;

根据各个区域的解码结果生成一完整的图像帧。

可选的,所述程序的细化功能和扩展功能可参照上文描述。

本申请实施例还提供一种可读存储介质,该可读存储介质可存储有适于处理器执行的程序,所述程序用于:

接收目标图像帧中多个区域的编码结果,其中,所述目标图像帧中的各个区域能够组成所述目标图像帧,所述目标图像帧中各个区域的优先级不同,各个区域的编码结果由发送端设备按各个区域分别对应的目标码率对对应区域进行编码得到,各个区域分别对应的目标码率根据预测的网络带宽、各个区域的优先级以及各个区域分别对应的最大码率确定,优先级高的区域对应的目标码率相比于其对应的最大码率的下降幅度小于优先级低的区域对应的目标码率相比于其对应的最大码率的下降幅度,一个区域对应的最大码率根据该区域与所述目标图像帧的面积比和所述最大带宽确定;

若各个区域的编码结果在传输的过程中均未丢失数据,则分别对各个区域的编码结果进行解码,以获得各个区域的解码结果;

根据各个区域的解码结果生成一完整的图像帧。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

28页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于VR与脑电生物反馈技术的脑认知能力AI训练系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类