一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据传输方法及相关装置与流程

2023-02-19 08:11:21 来源:中国专利 TAG:


1.本技术涉及通信技术领域,特别是涉及一种数据传输方法及相关装置。


背景技术:

2.随着通信技术的发展,以视频和音频为主的多媒体通信逐渐成为通信技术的主流业务,将为人们提供随时随地的多媒体通信服务。
3.目前在视频通信服务过程中,编码端将编码后的视频帧向接收端发送,在传输过程中可能存在某些视频帧(例如前向参考帧)出现丢包现象,为了降低前向参考帧丢包带来的影响,传统方式中主要采用参考帧选择技术,即通过接收端反馈的应答信息,编码端选择最近的正确解码帧作为参考帧,进行后续的帧间编码,从而降低前向参考帧丢包带来的影响。
4.然而,这种方式编码端需要等待接收端反馈到接收的应答信息后,才能开始下个前向参考帧的编码,从而导致提高编码端的时延,进而导致接收端视频播放的时延和不流畅。


技术实现要素:

5.为了解决上述技术问题,本技术提供了一种数据传输方法及相关装置,保证在解码到某一前向参考帧之前完成其参考帧组合中发生丢包的前向参考帧的重传,从而降低前向参考帧丢包对接收端视频播放带来的影响。基于此,编码端无需等待接收端反馈的应答信息,可以直接完成下一个前向参考帧的编码,降低编码端的时延,进一步降低接收端视频播放的时延,提高视频播放的流畅性。
6.本技术实施例公开了如下技术方案:
7.第一方面,本技术实施例提供一种数据传输方法,所述方法包括:
8.对前向参考帧的接收情况进行检测;
9.检测到帧组中第i个前向参考帧在前向参考帧传输过程中发生丢包,所述第i个前向参考帧对应的视频帧位于第i t 1个前向参考帧的第一参考帧组合中,所述第一参考帧组合中的视频帧位于所述第i t 1个前向参考帧之前,所述第i个前向参考帧是所述第一参考帧组合中与所述第i t 1个前向参考帧距离最近的视频帧,且与所述第i t 1个前向参考帧之间间隔t个前向参考帧,t是根据重传时延确定的正整数,以便在解码所述第i t 1个前向参考帧之前完成所述第i个前向参考帧的重传;所述i为大于0的正整数;
10.在视频解码过程中,解码到第i 1个前向参考帧,利用所述第i 1个前向参考帧的第二参考帧组合对所述第i 1个前向参考帧进行解码,所述第二参考帧组合中的视频帧位于所述第i 1个前向参考帧之前,且与所述第i 1个前向参考帧之间至少间隔t个前向参考帧;
11.解码到第i t 1个前向参考帧,利用包括重传的第i个前向参考帧的第一参考帧组合对所述第i t 1个前向参考帧进行解码。
12.第二方面,本技术实施例提供一种数据传输方法,所述方法包括:
13.确定帧组中每个待编码视频帧对应的参考帧组合,所述参考帧组合中的视频帧位于对应的所述待编码视频帧之前,且与对应的所述待编码视频帧之间至少间隔t个视频帧,t是根据重传时延确定的正整数,以便在解码前向参考帧之前完成所述参考帧组合中发生丢包的前向参考帧的重传;
14.通过对应的参考帧组合依次对每个视频帧进行帧间编码得到对应的前向参考帧,并将得到的前向参考帧向接收端传输;
15.若接收到所述接收端的应答信息,且所述应答信息指示第i个前向参考帧在前向参考帧传输过程中发生丢包,向所述接收端重传所述第i个前向参考帧,所述i为大于0的正整数。
16.第三方面,本技术实施例提供一种数据传输装置,所述装置包括检测单元和解码单元:
17.所述检测单元,用于对前向参考帧的接收情况进行检测;
18.所述检测单元,用于检测到帧组中第i个前向参考帧在前向参考帧传输过程中发生丢包,所述第i个前向参考帧位于第i t 1个前向参考帧的第一参考帧组合中,所述第一参考帧组合中的视频帧位于所述第i t 1个前向参考帧之前,所述第i个前向参考帧是所述第一参考帧组合中与所述第i t 1个前向参考帧距离最近的视频帧,且与所述第i t 1个前向参考帧之间间隔t个前向参考帧,t是根据重传时延确定的正整数,以便在解码所述第i t 1个前向参考帧之前完成所述第i个前向参考帧的重传;所述i为大于0的正整数;
19.所述解码单元,用于在视频解码过程中,解码到第i 1个前向参考帧,利用所述第i 1个前向参考帧的第二参考帧组合对所述第i 1个前向参考帧进行解码,所述第二参考帧组合中的视频帧位于所述第i 1个前向参考帧之前,且与所述第i 1个前向参考帧之间至少间隔t个前向参考帧;
20.所述解码单元,还用于解码到第i t 1个前向参考帧,利用包括重传的第i个前向参考帧的第一参考帧组合对所述第i t 1个前向参考帧进行解码。
21.第四方面,本技术实施例提供一种数据传输装置,所述装置包括确定单元、编码单元、传输单元和重传单元:
22.所述确定单元,用于确定帧组中每个待编码视频帧对应的参考帧组合,所述参考帧组合中的视频帧位于对应的所述待编码视频帧之前,且与对应的所述待编码视频帧之间至少间隔t个视频帧,t是根据重传时延确定的正整数,以便在解码前向参考帧之前完成所述参考帧组合中发生丢包的前向参考帧的重传;
23.所述编码单元,用于通过对应的参考帧组合依次对每个视频帧进行帧间编码得到对应的前向参考帧;
24.所述传输单元,用于将得到的前向参考帧向接收端传输;
25.所述重传单元,用于若接收到所述接收端的应答信息,且所述应答信息指示第i个前向参考帧在前向参考帧传输过程中发生丢包,向所述接收端重传所述第i个前向参考帧,所述i为大于0的正整数。
26.第五方面,本技术实施例提供一种用于数据传输的设备,所述设备包括处理器以及存储器:
27.所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
28.所述处理器用于根据所述程序代码中的指令执行前述方面所述的方法。
29.第六方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行前述方面所述的方法。
30.由上述技术方案可以看出,编码端可以对视频帧进行编码并将得到的前向参考帧向接收端传输,接收端可以检测前向参考帧在传输过程中是否发生丢包,若确定帧组中第i个前向参考帧在前向参考帧传输过程中发生丢包,在视频解码过程中,若解码到第i 1个前向参考帧,由于第i 1个前向参考帧并不依据第i个前向参考帧对应的视频帧编码得到,则无需等待接收到重传的第i个前向参考帧,直接利用其对应的第二参考帧组合对第i 1个前向参考帧进行解码,第二参考帧组合中的视频帧位于第i 1个前向参考帧之前,且与第i 1个前向参考帧之间至少间隔t个前向参考帧。若解码到第i t 1个前向参考帧,由于第i t 1个前向参考帧的第一参考帧组合中的视频帧位于第i t 1个前向参考帧之前,第i个前向参考帧是第一参考帧组合中与第i t 1个前向参考帧距离最近的视频帧,且与第i t 1个前向参考帧之间间隔t个前向参考帧,t是根据重传时延确定的正整数,以便在解码第i t 1个前向参考帧之前完成第i个前向参考帧的重传。故,接收端无需等待第i个前向参考帧的重传,可以直接利用包括重传的第i个前向参考帧的第一参考帧组合对第i t 1个前向参考帧进行解码。该方法根据重传时延确定合理的跨帧参考间隔,从而保证在解码到某一前向参考帧之前完成其参考帧组合中发生丢包的前向参考帧的重传,从而降低前向参考帧丢包对接收端视频播放带来的影响。基于此,编码端无需等待接收端反馈的应答信息,可以直接进行下一个前向参考帧的编码,降低编码端的时延,进一步降低接收端视频播放的时延,提高视频播放的流畅性。
附图说明
31.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术成员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
32.图1为本技术实施例提供的一种帧组的示意图;
33.图2为相关技术提供的一种数据传输方法的示意图;
34.图3为本技术实施例提供的一种数据传输方法的系统架构示意图;
35.图4为本技术实施例提供的一种数据传输方法的信令交互图;
36.图5为本技术实施例提供的单帧参考场景下帧组中视频帧之间的参考关系示意图;
37.图6为本技术实施例提供的一种接收端的处理流程示意图;
38.图7为本技术实施例提供的一种数据传输装置的结构图;
39.图8为本技术实施例提供的一种数据传输装置的结构图;
40.图9为本技术实施例提供的一种终端的结构图;
41.图10为本技术实施例提供的一种服务器的结构图。
具体实施方式
42.下面结合附图,对本技术的实施例进行描述。
43.首先对本技术涉及的名词进行解释:
44.帧间参考编码是一种常用的编码技术,在h.264/h.265等规范中均会采用。解码帧间参考编码的视频帧的前提是需要正确接收到所有进行参考编码的参考帧。目前为了提升编码效果,可以采用多参考帧的帧间编码。在低时延传输中,一般会采用前向参考编码,即对当前视频帧进行编码时只参考之前的视频帧。
45.前向参考帧:视频编码中参考之前的视频帧并采用帧间编码技术编码后的帧,编码大小较小,解码时需要依赖编码时前向参考的视频帧,有区别于采用帧内编码技术进行编码的帧。
46.画面组(group of pictures,gop):视频中一组连续的画面,作为视频编码中的帧组。在低时延视频传输中,通常在一个gop中,编码后的第一个视频帧为i帧,后续的视频帧为前向参考帧(p帧)。
47.参见图1所示,图1示出了一个gop(即一个帧组),在该帧组中包括8个编码后的视频帧。其中,第一个视频帧为i帧,从第二个视频帧开始一直到最后一个视频帧需要参考之前的视频帧并采用帧间编码技术编码得到,即为前向参考帧(p帧)。该帧组中包括多个p帧,则第二个视频帧作为第一个p帧(即p1)、第三个视频帧作为第二个p帧(即p2)、第四个视频帧作为第三个p帧(即p3)、第五个视频帧作为第四个p帧(即p4)、第六个视频帧作为第五个p帧(即p5)、第七个视频帧作为第六个p帧(即p6)、第八个视频帧作为第七个p帧(即p7)。
48.在前向参考帧传输过程中可能会发生丢包,为了降低前向参考帧丢包带来的影响,传统方式中主要采用参考帧选择技术,即通过接收端反馈的应答信息例如ack信息或nack信息,编码端选择最近的正确解码帧作为参考帧,进行后续的帧间编码,从而降低前向参考帧丢包带来的影响。参见图2所示,p3发生错误,接收端向编码端反馈nack信息,p4由于参考了p3同样无法正确解码,也会回传表明p3错误的nack信息,p5由于参考了p3同样无法正确解码,也会回传表明p3错误的nack信息。当编码端在对p6编码时收到p3错误的nack信号后,调整帧存,采用正确解码的p2帧作为参考帧。接收端正确接收p6的编码数据后才恢复正常。
49.然而,这种方式编码端需要等待接收端反馈到接收的应答信息后,才能开始下个前向参考帧的编码,从而导致提高编码端的时延,进而导致接收端视频播放的时延和不流畅。
50.为了解决上述技术问题,本技术实施例提供一种数据传输方法,该方法可以应用于各种低时延传输场景,例如适用于第五代移动通信技术(5th generation mobile communication technology,5g)专网远程控制等网络丢包率较低且对时延要求极其苛刻的场景。5g专网远程控制例如可以包括远程操控在月球和火星上巡视器、无人驾驶船舶、远程驾驶车辆(例如辅助驾驶、自动驾驶、遥控驾驶等),等等。
51.该场景中具有较高的帧率,为降低时延,会引入高帧率,如60fps(每秒传输帧数,frames per second);较低的丢包率,因为5g空口自带重传,专网中路由器数量极少,很少会发生丢包。从接收端检测以发送nack信息或ack信息并通知到编码端,时延在10-15ms左右。如果发生丢包,编码端再次发送数据包到接收端接收,还需要10-15ms左右。对于60fps
帧率,如果采用参考帧选择技术,编码端等待nack信息或ack信息再进行编码,会额外增加至少1帧的时延。
52.而本技术实施例提供的方法根据重传时延确定合理的跨帧参考间隔,从而保证在解码到某一前向参考帧之前完成其参考帧组合中发生丢包的前向参考帧的重传,从而降低前向参考帧丢包对接收端视频播放带来的影响。基于此,编码端无需等待接收端反馈的应答信息,可以直接进行下一个前向参考帧的编码,降低编码端的时延,进一步降低接收端视频播放的时延,提高视频播放的流畅性。
53.本技术实施例所提供的方法涉及到云技术领域,例如涉及云计算领域。云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为iaas(infrastructure as a service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。按照逻辑功能划分,在iaas(infrastructure as a service,基础设施即服务)层上可以部署paas(platform as a service,平台即服务)层,paas层之上再部署saas(software as a service,软件即服务)层,也可以直接将saas部署在iaas上。paas为软件运行的平台,如数据库、web容器等。saas为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,saas和paas相对于iaas是上层。
54.接下来,将对数据传输的系统架构进行介绍。参见图3,图3为本技术实施例提供的数据传输方法的系统架构示意图。该系统架构中包括终端301和服务器302,其中终端301可以作为接收端,服务器302可以作为编码端,服务器302对视频帧序列中的视频帧进行编码得到编码后的视频帧,并将编码后的视频帧向终端301传输,以便在终端301上完成渲染播放。其中,视频中一组连续的画面作为视频编码中的帧组,因此,编码后的第一个视频帧可以称为i帧,后续的视频帧可以称为前向参考帧。
55.在同一帧组中,前向参考帧需要参考之前的视频帧采用帧间编码技术进行编码,因此,若前向参考帧在传输过程中丢包,则可能影响后续前向参考帧的解码,也可能影响编码端的编码,从而导致时延。
56.因此,本技术实施例中,服务器302采用跨帧参考的方式对视频帧进行编码,即对待编码视频帧进行帧间编码时,参考前向第t帧前的参考帧组合进行编码,即待编码视频帧对应的参考帧组合中的视频帧位于对应的待编码视频帧之前,且与对应的所述待编码视频帧之间至少间隔t个视频帧,t是根据重传时延确定的正整数,以便在解码前向参考帧之前完成参考帧组合中发生丢包的前向参考帧的重传。其中,参考帧组合中可以包括一个视频帧(即单帧参考),也可以包括多个视频帧(即多帧参考),图3中以单帧参考为例,t=1,则最终确定的参考帧组合是:p2参考的是i帧,p3参考的是p1,p4参考的是p2,p5参考的是p3,p6参考的是p4,p7参考的是p5。
57.这样,编码端便可以通过对应的参考帧组合依次对每个视频帧进行帧间编码得到对应的前向参考帧,并将得到的前向参考帧向接收端传输。由于t是根据重传时延确定的正整数,以便在解码前向参考帧之前完成参考帧组合中发生丢包的前向参考帧的重传,则服
务器302在编码时无需担心参考的视频帧在传输过程中发生丢包,而影响解码端的解码,故服务器302无需等待接收端(终端301)的应答信息,便可以进行下个前向参考帧的编码,从而降低编码端(服务器302)的时延。
58.终端301可以根据接收情况确定前向参考帧是否发生丢包,若检测到帧组中第i个前向参考帧在前向参考帧传输过程中发生丢包,则可以向服务器302发送应答信息。若服务器302接收到终端301的应答信息,且应答信息指示第i个前向参考帧在前向参考帧传输过程中发生丢包,向终端301重传第i个前向参考帧,i为大于0的正整数。
59.终端301可以对接收到的前向参考帧进行解码,在视频解码过程中,若解码到第i 1个前向参考帧,由于其并不参考第i个前向参考帧对应的视频帧进行编码,故可以直接利用第i 1个前向参考帧的第二参考帧组合对第i 1个前向参考帧进行解码,第二参考帧组合中的视频帧位于第i 1个前向参考帧之前,且与第i 1个前向参考帧之间至少间隔t个前向参考帧。
60.若终端301解码到第i t 1个前向参考帧,由于此时已经完成第i个前向参考帧的重传,则可以直接利用包括重传的第i个前向参考帧的第一参考帧组合对第i t 1个前向参考帧进行解码。
61.需要说明的是,服务器302可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端301可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等,但并不局限于此。终端301以及服务器302可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
62.接下来,将从编码端和接收端之间进行交互的角度,其中,编码端可以是服务器,接收端可以是终端,结合附图对本技术实施例提供的数据传输方法进行详细介绍。
63.参见图4,图4示出了一种数据传输方法的信令交互图,所述方法包括:
64.s401、编码端确定帧组中每个待编码视频帧对应的参考帧组合。
65.可以理解的是,本技术主要是降低前向参考帧丢包对于编码端和接收端的时延影响,而前向参考帧丢包之所以会对编码端和接收端产生时延影响,主要是因为依赖丢包的前向参考帧编码的前向参考帧,也需要依赖其进行解码,但是由于丢包,重传丢包的前向参考帧需要一定的重传时间,进而导致解码之前无法完成重传而无法解码。为此,编码端则需要等待接收端的应答信息以确定前一前向参考帧是否发生丢包才能进行下一前向参考帧的编码。
66.为此在本技术实施例中,编码端采用跨帧参考的方式进行帧间编码,即待编码视频帧进行帧间编码时,参考前向第t帧前的参考帧组合进行编码,即待编码视频帧对应的参考帧组合中的视频帧位于对应的待编码视频帧之前,且与对应的所述待编码视频帧之间至少间隔t个视频帧,t是根据重传时延确定的正整数,以便在解码前向参考帧之前完成参考帧组合中发生丢包的前向参考帧的重传。这样,编码端也无需等待接收端反馈的应答信息,无需确定传输的前向参考帧是否发生丢包,即可编码得到下一前向参考帧。既不会由于前向参考帧丢包而导致接收端无法及时解码,导致接收端的时延,也不会由于编码端等待应答信息而造成编码端时延。
67.需要说明的是,在本实施例中,参考帧组合中可以包括一个视频帧(即单帧参考),
也可以包括多个视频帧(即多帧参考)。参见图5,图5中以单帧参考为例,t=1,反映了帧组中视频帧之间的参考关系,则最终确定的参考帧组合是:p2参考的是i帧(p2所对应的待编码视频帧的参考帧组合包括i帧),p3参考的是p1(p3所对应的待编码视频帧的参考帧组合包括p1帧),p4参考的是p2(p4所对应的待编码视频帧的参考帧组合包括p2帧),p5参考的是p3(p5所对应的待编码视频帧的参考帧组合包括p3帧),p6参考的是p4(p6所对应的待编码视频帧的参考帧组合包括p4帧),p7参考的是p5(p7所对应的待编码视频帧的参考帧组合包括p5帧)。
68.应理解,在本实施例中,t是根据重传时延确定的正整数,以便在解码前向参考帧之前完成参考帧组合中发生丢包的前向参考帧的重传。重传时延是重传丢包的前向参考帧所需耗费的时间,为了保证在解码某一前向参考帧之前完成参考帧组合中发生丢包的前向参考帧的重传,前向参考帧的帧时长与t 1之间的乘积应该大于重传时延。
69.其中,重传时延是根据检测前向参考帧丢包的时长、网络重传时长、前向参考帧的解码时长和前向参考帧延迟的可追赶时长确定的。重传时延一般可以等于前向参考帧丢包的时长(含nack信息或ack信息网络通知) 网络重传时长 前向参考帧的解码时长-可追赶时长(可正常播放容忍的接收延迟)。也就是说,在确定t时,帧时长*(t 1)需要大于检测前向参考帧丢包的时长(含nack信息或ack信息网络通知) 网络重传时长 前向参考帧的解码时长-可追赶时长(可正常播放容忍的接收延迟)。
70.可以理解的是,由于网络重传时长是根据网络质量确定的,而网络质量可能会发生变化,有时网络质量较好,那么网络重传时长可能会短一些,有时网络质量较差,那么网络重传时长可能会长一些。因此,在本技术实施例中可以根据网络质量对跨帧参考的间隔t进行调整。
71.然而,调整t的时机可能有所不同。为了避免过于频繁的调整t,降低处理效率,又能根据网络质量尽量选择合适的t,本技术实施例中主要在以下两个时机下调整t。由于视频帧在传输过程中可能以帧组为单位,因此,在一种可能的实现方式中,可以在完成一个帧组传输后,根据网络质量调整t。
72.在一些情况下,可能出现前向参考帧连续丢包,例如p2、p3、p4都发生丢包,那么可能认为当前网络质量较差,从而进行帧组刷新,以重新确定帧组和刷新后帧组中视频帧间的参考关系。因此,在一种可能的实现方式中,可以在发生帧组刷新时,根据网络质量调整t。
73.若一个帧组参见图5所示,p2、p3、p4都发生丢包,则在p4处在接收端进行刷新,此时p5-p7以及其他补位的视频帧组合新的帧组,刷新后的帧组与刷新前的帧组中包括的视频帧数量、视频帧的组成可以是相同的。从而根据当前的网络质量确定t,对刷新前的t进行调整。
74.s402、编码端通过对应的参考帧组合依次对每个视频帧进行帧间编码得到对应的前向参考帧。
75.s403、编码端将得到的前向参考帧向接收端传输。
76.在根据确定好的参考帧组合依次对每个视频帧进行帧间编码得到对应的前向参考帧,并将得到的前向参考帧向接收端传输,并在本地留有缓存。
77.s404、接收端对前向参考帧的接收情况进行检测。
78.接收端依次接收编码端传输的前向参考帧,并对前向参考帧的接收情况进行检测,根据检测结果向编码端通知应答信息,应答信息例如可以是nack信息或ack信息等。
79.s405、接收端检测到帧组中第i个前向参考帧在前向参考帧传输过程中发生丢包。
80.s406、接收端向编码端发送应答信息。
81.接收端若检测到帧组中第i个前向参考帧在前向参考帧传输过程中发生丢包,则向编码端发送的应答信息指示第i个前向参考帧在前向参考帧传输过程中发生丢包。第i个前向参考帧对应的视频帧位于第i t 1个前向参考帧的第一参考帧组合中,第一参考帧组合中的视频帧位于第i t 1个前向参考帧之前,第i个前向参考帧是第一参考帧组合中与第i t 1个前向参考帧距离最近的视频帧,且与第i t 1个前向参考帧之间间隔t个前向参考帧,t是根据重传时延确定的正整数,以便在解码第i t 1个前向参考帧之前完成所述第i个前向参考帧的重传,i为大于0的正整数。其中,第i个前向参考帧可能全部丢包,也可能部分丢包。
82.参见图5所示,图5以单帧参考为例,t=1,则p2参考的是i帧(p2所对应的待编码视频帧的参考帧组合包括i帧),p3参考的是p1(p3所对应的待编码视频帧的参考帧组合包括p1帧),p4参考的是p2(p4所对应的待编码视频帧的参考帧组合包括p2帧),p5参考的是p3(p5所对应的待编码视频帧的参考帧组合包括p3帧),p6参考的是p4(p6所对应的待编码视频帧的参考帧组合包括p4帧),p7参考的是p5(p7所对应的待编码视频帧的参考帧组合包括p5帧)。若i=3,即第3个前向参考帧p3发生丢包,则向编码端发送应答信息,该应答信息指示第3个前向参考帧在前向参考帧传输过程中发生丢包。
83.根据参考关系,p3位于第5(3 1 1)个前向参考帧p5的第一参考帧组合中,p3是第一参考帧组合中与p5距离最近的视频帧,且与p5间隔1个前向参考帧p4。只不过图5以单帧参考为例,第一参考帧组合中只有p3;若是多帧参考的场景,则第一参考帧组合包括p3之前的多个视频帧。
84.s407、编码端向所述接收端重传所述第i个前向参考帧。
85.编码端根据接收到的应答信息,向接收端重传第i个前向参考帧。若第i个前向参考帧全部丢包,则重传整个第i个前向参考帧;若第i个前向参考帧部分丢包,则重传发生丢包的部分第i个前向参考帧,避免浪费资源。
86.s408、在视频解码过程中,解码到第i 1个前向参考帧,利用所述第i 1个前向参考帧的第二参考帧组合对所述第i 1个前向参考帧进行解码。
87.可以理解的是,接收端除了对前向参考帧的接收情况进行检测,其主要还可以对接收到的前向参考帧进行解码渲染,以在接收端播放对应的画面。
88.若接收端正常接收到当前的前向参考帧时,则根据本地的参考帧缓存正常进行解码恢复。若检测到正常接收第i 1个前向参考帧,在解码到第i 1个前向参考帧时,则利用第i 1个前向参考帧的第二参考帧组合对第i 1个前向参考帧进行解码。第二参考帧组合中的视频帧位于第i 1个前向参考帧之前,且与第i 1个前向参考帧之间至少间隔t个前向参考帧,即不包括第i个前向参考帧。
89.继续以前述p3丢包为例,若接收端正常接收端图5中所示p4,由于p4并不参考p3进行编码解码,故p4可以直接依据参考帧缓存中的p2进行解码。
90.若接收端检测到当前的前向参考帧丢包时,复用上一帧的图像对当前的前向参考
帧进行渲染。也就是说,若检测到第i个前向参考帧在前向参考帧传输过程中发生丢包,当解码到第i个前向参考帧,复用目标视频帧对应的图像对第i个前向参考帧进行渲染,目标视频帧是第i个前向参考帧的上一帧。
91.s409、解码到第i t 1个前向参考帧,利用包括重传的第i个前向参考帧的第一参考帧组合对所述第i t 1个前向参考帧进行解码。
92.即使解码到依赖第i个前向参考帧编码的第i t 1个前向参考帧,由于跨帧参考的间隔t是根据重传时延确定的,可以在解码第i t 1个前向参考帧之前完成第i个前向参考帧的重传,当接收端接收到重传的第i个前向参考帧后,会将第i个前向参考帧放入本地的参考帧缓存。从而在解码第i t 1个前向参考帧时,直接利用包括重传的第i个前向参考帧的第一参考帧组合对第i t 1个前向参考帧进行解码。
93.继续以前述p3丢包为例,接收端在解码到第5(3 1 1)个前向参考帧p5时,在收到p5前接收端会收到编码端重传的p3,因此,p5可以基于重传的p3进行解码。
94.需要说明的是,接收端接收到的视频帧会携带标识信息,标识信息用于体现同一帧组中视频帧之间的参考关系,从而便于知晓某个前向参考帧编码参考了哪些视频帧,即前向参考帧对应的参考帧组合中包括哪些视频帧。这样,在解码过程中,便可以根据标识信息确定依据哪些视频帧进行解码。也就是说,第一参考帧组合或第二参考帧组合是根据视频帧的标识信息确定的。
95.若进行过帧组刷新,接收端接收到的视频帧还会携带刷新信息,该刷新信息可以体现从哪个视频帧进行刷新的,刷新后帧组中视频帧有哪些,此时,第一参考帧组合或第二参考帧组合是根据帧组刷新的刷新信息和刷新后帧组中包括的视频帧的标识信息确定的。
96.由上述技术方案可以看出,编码端可以对视频帧进行编码并将得到的前向参考帧向接收端传输,接收端可以检测前向参考帧在传输过程中是否发生丢包,若确定帧组中第i个前向参考帧在前向参考帧传输过程中发生丢包,在视频解码过程中,若解码到第i 1个前向参考帧,由于第i 1个前向参考帧并不依据第i个前向参考帧对应的视频帧编码得到,则无需等待接收到重传的第i个前向参考帧,直接利用其对应的第二参考帧组合对第i 1个前向参考帧进行解码,第二参考帧组合中的视频帧位于第i 1个前向参考帧之前,且与第i 1个前向参考帧之间至少间隔t个前向参考帧。若解码到第i t 1个前向参考帧,由于第i t 1个前向参考帧的第一参考帧组合中的视频帧位于第i t 1个前向参考帧之前,第i个前向参考帧是第一参考帧组合中与第i t 1个前向参考帧距离最近的视频帧,且与第i t 1个前向参考帧之间间隔t个前向参考帧,t是根据重传时延确定的正整数,以便在解码第i t 1个前向参考帧之前完成第i个前向参考帧的重传。故,接收端无需等待第i个前向参考帧的重传,可以直接利用包括重传的第i个前向参考帧的第一参考帧组合对第i t 1个前向参考帧进行解码。该方法根据重传时延确定合理的跨帧参考间隔,从而保证在解码到某一前向参考帧之前完成其参考帧组合中发生丢包的前向参考帧的重传,从而降低前向参考帧丢包对接收端视频播放带来的影响。基于此,编码端无需等待接收端反馈的应答信息,可以直接进行下一个前向参考帧的编码,降低编码端的时延,进一步降低接收端视频播放的时延,提高视频播放的流畅性。
97.另外,本技术实施例虽然采用了跨帧参考,但是其仅仅略微提升前向参考帧的传输码率,对前向参考帧的传输码率提升影响较小,适用于低时延数据传输场景。
98.接下来,将结合实际应用场景对本技术实施例提供的数据传输方法进行介绍。在5g专网远程控制场景中,例如遥控驾驶场景中,服务器(编码端)可以将采集的高清画面传输到用户的终端(接收端),以便用户可以根据终端显示的高清画面进行远程控制。
99.继续以图5所示的帧组为例,帧组中视频帧的参考关系也如图5所示,该参考关系是根据t(假设t为1)预先确定的,服务器可以根据图5所示的参考关系对视频帧进行编码传输。接收端的处理流程可以参见图6所示,其中包括接收端的接收流、接收端的重传流和接收端的解码播放流,接收流即接收端接收编码端传输的数据流,重传流即接收端接收编码端重传的某个前向参考帧的数据流,解码播放流即接收端进行解码以渲染出的连续画面。每个视频帧的帧时长是16.6ms,接收端依次接收i帧、p1、p2、p3、p4、p5、p6、p7。接收端从开始接收到p3(表示p3这一前向参考帧的矩形框左边缘)到某一时刻,例如图6中所示圆点位置发现p3发生丢包,在发现丢包20ms后接收端收到编码端重传的p3。相应的,接收端在解码播放流时,对于正常接收到的i、p1、p2则采用本地的参考帧缓存正常进行解码恢复。而由于p3发生丢包,则在解码p3时,可以复用p2对应的图像进行渲染以输出p3对应的图像,只是此时p3对应的图像与p2对应的图像一样。在解码到p4时,p4参考p2进行解码播放。在解码p5时,由于p3在收到p5之前已经完成重传,故p5可以基于重传的p3进行解码。在解码到p6时,p6参考p4进行解码播放。在解码到p7时,p7参考p5进行解码播放。至此完成该帧组的播放。
100.基于图4对应实施例提供的数据传输方法,本技术实施例还提供一种数据传输装置,参见图7,所述装置700包括检测单元701和解码单元702:
101.所述检测单元701,用于对前向参考帧的接收情况进行检测;
102.所述检测单元701,用于检测到帧组中第i个前向参考帧在前向参考帧传输过程中发生丢包,所述第i个前向参考帧位于第i t 1个前向参考帧的第一参考帧组合中,所述第一参考帧组合中的视频帧位于所述第i t 1个前向参考帧之前,所述第i个前向参考帧是所述第一参考帧组合中与所述第i t 1个前向参考帧距离最近的视频帧,且与所述第i t 1个前向参考帧之间间隔t个前向参考帧,t是根据重传时延确定的正整数,以便在解码所述第i t 1个前向参考帧之前完成所述第i个前向参考帧的重传;所述i为大于0的正整数;
103.所述解码单元702,用于在视频解码过程中,解码到第i 1个前向参考帧,利用所述第i 1个前向参考帧的第二参考帧组合对所述第i 1个前向参考帧进行解码,所述第二参考帧组合中的视频帧位于所述第i 1个前向参考帧之前,且与所述第i 1个前向参考帧之间至少间隔t个前向参考帧;
104.所述解码单元702,还用于解码到第i t 1个前向参考帧,利用包括重传的第i个前向参考帧的第一参考帧组合对所述第i t 1个前向参考帧进行解码。
105.在一种可能的实现方式中,所述解码单元702,还用于:
106.解码到所述第i个前向参考帧,复用目标视频帧对应的图像对所述第i个前向参考帧进行渲染,所述目标视频帧是所述第i个前向参考帧的上一帧。
107.在一种可能的实现方式中,前向参考帧的帧时长与t 1之间的乘积大于所述重传时延。
108.在一种可能的实现方式中,所述重传时延是根据检测前向参考帧丢包的时长、网络重传时长、前向参考帧的解码时长和前向参考帧延迟的可追赶时长确定的。
109.在一种可能的实现方式中,所述第一参考帧组合或所述第二参考帧组合是根据视
频帧的标识信息确定的,所述标识信息用于体现同一帧组中视频帧之间的参考关系。
110.在一种可能的实现方式中,所述第一参考帧组合或所述第二参考帧组合是根据帧组刷新的刷新信息和刷新后帧组中包括的视频帧的标识信息确定的。
111.本技术实施例还提供一种数据传输装置,参见图8,所述装置800包括确定单元801、编码单元802、传输单元803和重传单元804:
112.所述确定单元801,用于确定帧组中每个待编码视频帧对应的参考帧组合,所述参考帧组合中的视频帧位于对应的所述待编码视频帧之前,且与对应的所述待编码视频帧之间至少间隔t个视频帧,t是根据重传时延确定的正整数,以便在解码前向参考帧之前完成所述参考帧组合中发生丢包的前向参考帧的重传;
113.所述编码单元802,用于通过对应的参考帧组合依次对每个视频帧进行帧间编码得到对应的前向参考帧;
114.所述传输单元803,用于将得到的前向参考帧向接收端传输;
115.所述重传单元804,用于若接收到所述接收端的应答信息,且所述应答信息指示第i个前向参考帧在前向参考帧传输过程中发生丢包,向所述接收端重传所述第i个前向参考帧,所述i为大于0的正整数。
116.在一种可能的实现方式中,前向参考帧的帧时长与t 1之间的乘积大于所述重传时延。
117.在一种可能的实现方式中,所述重传时延是根据检测前向参考帧丢包的时长、网络重传时长、前向参考帧的解码时长和前向参考帧延迟的可追赶时长确定的。
118.在一种可能的实现方式中,所述网络重传时长是根据网络质量确定的,所述装置还包括调整单元:
119.所述调整单元,用于在完成一个帧组传输后,根据所述网络质量调整所述t;
120.或者,在发生帧组刷新时,根据所述网络质量调整所述t。
121.基于以上方法,本技术实施例还提供了一种用于数据传输的设备,该设备可以是终端,以终端为智能手机为例:
122.图9示出的是与本技术实施例提供的终端相关的智能手机的部分结构的框图。参考图9,智能手机包括:射频(英文全称:radio frequency,英文缩写:rf)电路910、存储器920、输入单元930、显示单元940、传感器950、音频电路960、无线保真(英文全称:wireless fidelity,英文缩写:wifi)模块970、处理器980、以及电源990等部件。输入单元930可包括触控面板931以及其他输入设备932,显示单元940可包括显示面板941,音频电路960可以包括扬声器961和传声器962。本领域技术人员可以理解,图9中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
123.存储器920可用于存储软件程序以及模块,处理器980通过运行存储在存储器920的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固
态存储器件。
124.处理器980是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器920内的软件程序和/或模块,以及调用存储在存储器920内的数据,执行智能手机的各种功能和处理数据,从而对智能手机进行整体监控。可选的,处理器980可包括一个或多个处理单元;优选的,处理器980可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器980中。
125.在本实施例中,所述终端中的处理器980可以执行以下步骤:
126.对前向参考帧的接收情况进行检测;
127.检测到帧组中第i个前向参考帧在前向参考帧传输过程中发生丢包,所述第i个前向参考帧对应的视频帧位于第i t 1个前向参考帧的第一参考帧组合中,所述第一参考帧组合中的视频帧位于所述第i t 1个前向参考帧之前,所述第i个前向参考帧是所述第一参考帧组合中与所述第i t 1个前向参考帧距离最近的视频帧,且与所述第i t 1个前向参考帧之间间隔t个前向参考帧,t是根据重传时延确定的正整数,以便在解码所述第i t 1个前向参考帧之前完成所述第i个前向参考帧的重传;所述i为大于0的正整数;
128.在视频解码过程中,解码到第i 1个前向参考帧,利用所述第i 1个前向参考帧的第二参考帧组合对所述第i 1个前向参考帧进行解码,所述第二参考帧组合中的视频帧位于所述第i 1个前向参考帧之前,且与所述第i 1个前向参考帧之间至少间隔t个前向参考帧;
129.解码到第i t 1个前向参考帧,利用包括重传的第i个前向参考帧的第一参考帧组合对所述第i t 1个前向参考帧进行解码。
130.或,
131.确定帧组中每个待编码视频帧对应的参考帧组合,所述参考帧组合中的视频帧位于对应的所述待编码视频帧之前,且与对应的所述待编码视频帧之间至少间隔t个视频帧,t是根据重传时延确定的正整数,以便在解码前向参考帧之前完成所述参考帧组合中发生丢包的前向参考帧的重传;
132.通过对应的参考帧组合依次对每个视频帧进行帧间编码得到对应的前向参考帧,并将得到的前向参考帧向接收端传输;
133.若接收到所述接收端的应答信息,且所述应答信息指示第i个前向参考帧在前向参考帧传输过程中发生丢包,向所述接收端重传所述第i个前向参考帧,所述i为大于0的正整数。
134.本技术实施例还提供一种服务器,请参见图10所示,图10为本技术实施例提供的服务器1000的结构图,服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,简称cpu)1022(例如,一个或一个以上处理器)和存储器1032,一个或一个以上存储应用程序1042或数据1044的存储介质1030(例如一个或一个以上海量存储设备)。其中,存储器1032和存储介质1030可以是短暂存储或持久存储。存储在存储介质1030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1022可以设置为与存储介质1030通信,在服务器1000上执行存储介质1030中的一系列指令操作。
135.服务器1000还可以包括一个或一个以上电源1026,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1058,和/或,一个或一个以上操作系统1041,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
,freebsd
tm
等等。
136.在本实施例中,所述服务器中的中央处理器1022可以执行以下步骤:
137.确定帧组中每个待编码视频帧对应的参考帧组合,所述参考帧组合中的视频帧位于对应的所述待编码视频帧之前,且与对应的所述待编码视频帧之间至少间隔t个视频帧,t是根据重传时延确定的正整数,以便在解码前向参考帧之前完成所述参考帧组合中发生丢包的前向参考帧的重传;
138.通过对应的参考帧组合依次对每个视频帧进行帧间编码得到对应的前向参考帧,并将得到的前向参考帧向接收端传输;
139.若接收到所述接收端的应答信息,且所述应答信息指示第i个前向参考帧在前向参考帧传输过程中发生丢包,向所述接收端重传所述第i个前向参考帧,所述i为大于0的正整数。
140.根据本技术的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行前述各个实施例所述的数据传输方法。
141.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例各种可选实现方式中提供的方法。
142.本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
143.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
144.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
145.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
146.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
147.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术成员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献