基于FEC的重传方法、装置及可读存储介质与流程

专利2022-06-29  89


本发明涉及网络通讯技术领域,尤其涉及一种基于fec的重传方法、装置及可读存储介质。



背景技术:

随着多媒体技术和通信技术的发展,实时媒体业务已经成为人们日常生活中必不可少的一部分;其中,业务形态也呈现百花齐放的样式,如点播、传统直播、互动直播,点对点双人实时通信、多人实时会议、大型现场直播峰会等等。为了呈现更好的体验,延时、流畅度、清晰度是厂家越来越关注的指标。

由于tcp(transmissioncontrolprotocol,中文名称为:传输控制协议)在弱网环境下存在延时大的问题,目前大多数实时通信系统采用udp(userdatagramprotocol,中文名称为:用户数据报协议)进行传输,底层媒体包采用rtp(real-timetransportprotocol,中文名称为:实时传送协议)包的形态。然而udp是一种不可靠的传输链路,如果不采用任何的改进,无法满足人们的要求。这是由于h.264/h.265编码算法在抗弱网方面较差,而视频质量又是实时通信中特别关注的一个维度,因此近年来各种改进增强视频抗弱网技术也在蓬勃发展,例如各种前向纠错和后向纠错的发展,比较典型的就是fec(forwarderrorcorrection,中文名称为:前向纠错)和重传技术。但是目前大多数系统都仅仅是采用其中的一种技术,例如仅采用fec或者仅采用重传,往往在网络较差的时候无法满足要求。



技术实现要素:

本发明提供一种基于fec的重传方法、装置及可读存储介质,其主要目的在于通过fec对必须重传的媒体包进行前向纠错保护,解决在信息传输过程中只采用fec或者重传技术中一种技术方式而造成网络较差的问题。

为实现上述目的,本发明提供一种基于fec的重传方法,所述方法包括:

通过fec解码器对接收到的数据包进行解码,恢复出m个媒体包,其中,通过fec编码器对ks个媒体包进行编码形成数据包,并将所述数据包发送至所述fec解码器,所述ec解码器接收到的数据包的数量小于ks;

通过重生列表生成器将所述接收到的数据包、所述m个媒体包进行处理,生成重传列表;

采用重传信息编码器将所述重传列表生成重传信息,并发送至重传信息解码器;

通过所述重传信息解码器对接收到的重传信息进行解码,并通过重传包提取器对解码后的数据进行处理生成重传包;

通过重传媒体包信息fec编码器对所述重传包进行编码形成冗余数据包,并将所述冗余数据包发送至所述fec解码器;

利用所述fec解码器对接收到的冗余数据包、所述接收到的数据包、所述m个媒体包进行处理,恢复出ks个媒体包,其中,所述fec解码器接收到的冗余数据包的数量小于发送前冗余数据包的数量。

优选地,通过fec编码器对ks个媒体包进行编码形成数据包,并将所述数据包发送至所述fec解码器的步骤包括:

采用fec编码器对ks个媒体包进行编码,生成ns个fec包,并将所述ks个媒体包保存备用;

将所述ks个媒体包和ns个fec包发送至所述fec解码器,其中,所述数据包包括所述ks个媒体包和ns个fec包。

优选地,所述通过fec解码器对接收到的数据包进行解码,恢复出m个媒体包的步骤包括:

所述fec解码器接收到kr个媒体包和nr个fec包,其中,kr≤ks,nr≤ns;

通过所述fec解码器对接收到的kr个媒体包和nr个fec包进行解码,输出m个媒体包,并将(kr m)个媒体包、nr个fec包保存备用。

优选地,所述通过重生列表生成器将所述接收到的数据包、所述m个媒体包进行处理,生成重传列表,其中,所述接收到的数据包为kr个媒体包、nr个fec包;

其中,所述通过重生列表生成器将所述(kr m)个媒体包、nr个fec包进行处理,生成重传列表的步骤包括:

步骤一:计算缺失的媒体包,并将其记录为重传列表r;其中,

所述重传列表r的初始数量为ks-(kr m),r[i]表示重传列表r下标为i的元素,r-r[i]表示剔除r[i]后的重传列表,并将所述(kr m)个媒体包记录为list(kr m)、nr个fec包记录为list(nr);

步骤二:遍历所述重传列表r,利用所述fec解码器获取r[i],如果恢复出r[i],则在所述重传列表r中剔除r[i],再继续获取下一个元素r[i],直至遍历结束;

步骤三:如果不能恢复出r[i],则将此r[i]保留在重传列表中,再继续获取下一个元素r[i],直至所述重传列表r的遍历结束。

步骤四:所述重传列表r的遍历结束,则输出所述重传列表r,记录所述重传列表的媒体包的数量为s。

优选地,所述利用所述fec解码器获取r[i]的步骤包括:

将所述list(kr m)、list(nr)以及r-r[i]输入到所述fec解码器;

所述fec解码器对所述list(kr m)、list(nr)以及r-r[i]进行解码处理,获取r[i]。

优选地,所述通过所述重传信息解码器对接收到的重传信息进行解码,并通过重传包提取器对解码后的数据进行处理生成重传包的步骤包括:

所述重传信息解码器对接收到的重传信息进行解码,生成解码后的重传列表;

通过重传包提取器对解码后的重传列表,以及保存备用的ks个媒体包进行处理,生成重传包,其中,所述重传包的数量与所述重传列表的媒体包的数量相同,均为s。

优选地,所述通过重传媒体包信息fec编码器对所述重传包进行编码形成冗余数据包,并将所述冗余数据包发送至所述fec解码器的步骤包括:

通过所述fec编码器对s个重传包进行编码,输出y个fec包;

将所述s个重传包和所述y个fec包发送至所述fec解码器。

优选地,所述利用所述fec解码器对发送的冗余数据包、所述接收到的数据包、所述m个媒体包进行处理,恢复出ks个媒体包的步骤包括:

通过所述fec解码器对接收到的sr个重传包和yr个fec包进行处理,恢复出s个重传包;

并通过所述fec解码器对保存备用的(kr m)个媒体包、s个重传包、以及保存备用的nr个fec包进行处理,恢复出ks个媒体包。

此外,为实现上述目的,本发明还提供一种电子装置,该电子装置包括:存储器、处理器,所述存储器中包括基于fec的重传程序,所述基于fec的重传程序被所述处理器执行时实现如下步骤:

通过fec解码器对接收到的数据包进行解码,恢复出m个媒体包,其中,通过fec编码器对ks个媒体包进行编码形成数据包,并将所述数据包发送至所述fec解码器,所述ec解码器接收到的数据包的数量小于ks;

通过重生列表生成器将所述接收到的数据包、所述m个媒体包进行处理,生成重传列表;

采用重传信息编码器将所述重传列表生成重传信息,并发送至重传信息解码器;

通过所述重传信息解码器对接收到的重传信息进行解码,并通过重传包提取器对解码后的数据进行处理生成重传包;

通过重传媒体包信息fec编码器对所述重传包进行编码形成冗余数据包,并将所述冗余数据包发送至所述fec解码器;

利用所述fec解码器对接收到的冗余数据包、所述接收到的数据包、所述m个媒体包进行处理,恢复出ks个媒体包,其中,所述fec解码器接收到的冗余数据包的数量小于发送前冗余数据包的数量。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包括基于fec的重传程序,所述基于fec的重传程序被处理器执行时,实现如上所述的基于fec的重传方法中的任意步骤。

本发明提出的基于fec的重传方法、电子装置及计算机可读存储介质,通过fec编码器对原始媒体包进行前向纠错保护,形成第一层保护;在计算需要重传的媒体包时,只需要重传必须的媒体包,利用第一次接收到的fec包进行第二次媒体包恢复,有助于减少重传包所占用的带宽;在进行重传包的传输时,引入对重传包的fec保护,以便增强重传包到达的概率,提升最后的丢包恢复率。

附图说明

图1为本发明基于fec的重传方法较佳实施例的应用环境示意图;

图2为图1中基于fec的重传程序较佳实施例的模块示意图;

图3为本发明基于fec的重传方法较佳实施例的流程图;

图4为本发明的重传列表生成的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种基于fec的重传方法,应用于一种电子装置1。参照图1所示,为本发明基于fec的重传方法较佳实施例的应用环境示意图。

在本实施例中,电子装置1可以是服务器、智能手机、平板电脑、便携计算机、桌上型计算机等具有运算功能的终端设备。

该电子装置1包括:处理器12、存储器11、网络接口14及通信总线15。

存储器11包括至少一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器11等的非易失性存储介质。在一些实施例中,所述可读存储介质可以是所述电子装置1的内部存储单元,例如该电子装置1的硬盘。在另一些实施例中,所述可读存储介质也可以是所述电子装置1的外部存储器11,例如所述电子装置1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。

在本实施例中,所述存储器11的可读存储介质通常用于存储安装于所述电子装置1的基于fec的重传程序10等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如基于fec的重传程序10等。

网络接口14可选地可以包括标准的有线接口、无线接口(如wi-fi接口),通常用于在该电子装置1与其他电子设备之间建立通信连接。

通信总线15用于实现这些组件之间的连接通信。

图1仅示出了具有组件11-15的电子装置1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

可选地,该电子装置1还可以包括用户接口,用户接口可以包括输入单元比如键盘(keyboard)、语音输入装置比如麦克风(microphone)等具有语音识别功能的设备、语音输出装置比如音响、耳机等,可选地用户接口还可以包括标准的有线接口、无线接口。

可选地,该电子装置1还可以包括显示器,显示器也可以称为显示屏或显示单元。在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(organiclight-emittingdiode,oled)触摸器等。显示器用于显示在电子装置1中处理的信息以及用于显示可视化的用户界面。

可选地,该电子装置1还包括触摸传感器。所述触摸传感器所提供的供用户进行触摸操作的区域称为触控区域。此外,这里所述的触摸传感器可以为电阻式触摸传感器、电容式触摸传感器等。而且,所述触摸传感器不仅包括接触式的触摸传感器,也可包括接近式的触摸传感器等。此外,所述触摸传感器可以为单个传感器,也可以为例如阵列布置的多个传感器。

此外,该电子装置1的显示器的面积可以与所述触摸传感器的面积相同,也可以不同。可选地,将显示器与所述触摸传感器层叠设置,以形成触摸显示屏。该装置基于触摸显示屏侦测用户触发的触控操作。

可选地,该电子装置1还可以包括射频(radiofrequency,rf)电路,传感器、音频电路等等,在此不再赘述。

在图1所示的装置实施例中,作为一种计算机存储介质的存储器11中可以包括操作系统、以及基于fec的重传程序10;处理器12执行存储器11中存储的基于fec的重传程序10时实现如下步骤:

通过fec解码器对接收到的数据包进行解码,恢复出m个媒体包,其中,通过fec编码器对ks个媒体包进行编码形成数据包,并将所述数据包发送至所述fec解码器,所述ec解码器接收到的数据包的数量小于ks;

通过重生列表生成器将所述接收到的数据包、所述m个媒体包进行处理,生成重传列表;

采用重传信息编码器将所述重传列表生成重传信息,并发送至重传信息解码器;

通过所述重传信息解码器对接收到的重传信息进行解码,并通过重传包提取器对解码后的数据进行处理生成重传包;

通过重传媒体包信息fec编码器对所述重传包进行编码形成冗余数据包,并将所述冗余数据包发送至所述fec解码器;

利用所述fec解码器对接收到的冗余数据包、所述接收到的数据包、所述m个媒体包进行处理,恢复出ks个媒体包,其中,所述fec解码器接收到的冗余数据包的数量小于发送前冗余数据包的数量。

优选地,所述通过fec编码器对ks个媒体包进行编码形成数据包,并将所述数据包发送至所述fec解码器的步骤包括:

采用fec编码器对ks个媒体包进行编码,生成ns个fec包,并将所述ks个媒体包保存备用;

将所述ks个媒体包和ns个fec包发送至所述fec解码器,其中,所述数据包包括所述ks个媒体包和ns个fec包。

优选地,所述通过fec解码器对接收到的数据包进行解码,恢复出m个媒体包的步骤包括:

所述fec解码器接收到kr个媒体包和nr个fec包,其中,kr≤ks,nr≤ns;

通过fec解码器对接收到的kr个媒体包和nr个fec包进行解码,输出m个媒体包,并将(kr m)个媒体包、nr个fec包保存备用。

优选地,所述通过重生列表生成器将接收到的数据包、所述m个媒体包进行处理,生成重传列表,其中,接收到的数据包为kr个媒体包、nr个fec包;

其中,所述通过重生列表生成器将所述(kr m)个媒体包、nr个fec包进行处理,生成重传列表的步骤包括:

步骤一:计算缺失的媒体包,并将其记录为重传列表r;其中,

所述重传列表r的初始数量为ks-(kr m),r[i]表示重传列表r下标为i的元素,r-r[i]表示剔除r[i]后的重传列表,并将所述(kr m)个媒体包记录为list(kr m)、nr个fec包记录为list(nr);

步骤二:遍历所述重传列表r,利用所述fec解码器获取r[i],如果恢复出r[i],则在所述重传列表r中剔除r[i],再继续获取下一个元素r[i],直至遍历结束;

步骤三:如果不能恢复出r[i],则将此r[i]保留在重传列表中,再继续获取下一个元素r[i],直至所述重传列表r的遍历结束。

步骤四:所述重传列表r的遍历结束,则输出所述重传列表r,记录所述重传列表的媒体包的数量为s。

优选地,所述利用所述fec解码器获取r[i]的步骤包括:

将所述list(kr m)、list(nr)以及r-r[i]输入到所述fec解码器;

所述fec解码器对所述list(kr m)、list(nr)以及r-r[i]进行解码处理,获取r[i]。

优选地,所述通过所述重传信息解码器对接收到的重传信息进行解码,并通过重传包提取器对解码后的数据进行处理生成重传包的步骤包括:

所述重传信息解码器对接收到的重传信息进行解码,生成解码后的重传列表;

通过重传包提取器对解码后的重传列表,以及保存备用的ks个媒体包进行处理,生成重传包,其中,所述重传包的数量与所述重传列表的媒体包的数量相同,均为s。

优选地,所述通过重传媒体包信息fec编码器对所述重传包进行编码形成冗余数据包,并将所述冗余数据包发送至所述fec解码器的步骤包括:

通过所述fec编码器对s个重传包进行编码,输出y个fec包;

将所述s个重传包和所述y个fec包发送至所述接收端,其中,所述包括所述s个重传包和所述y个fec包。

优选地,所述利用所述fec解码器对发送的冗余数据包、所述接收到的数据包、所述m个媒体包进行处理,恢复出ks个媒体包的步骤包括:

通过所述fec解码器对接收到的sr个重传包和yr个fec包进行处理,恢复出s个重传包;

并通过所述fec解码器对保存备用的(kr m)个媒体包、s个重传包、以及保存备用的nr个fec包进行处理,恢复出ks个媒体包。

上述实施例提出的电子装置1,通过fec编码器对原始媒体包进行前向纠错保护,形成第一层保护;当接收端接收到原始媒体包和fec包后,会进行第一次丢包恢复,如果发现尚有丢失的媒体包信息,则需要保存接收到和恢复出来的媒体包,以及保存接收到的fec包信息。这些信息有助于进行后续的媒体包恢复。在计算需要重传的媒体包时,只需要重传必须的媒体包,利用第一次接收到的fec包进行第二次媒体包恢复,有助于减少重传包所占用的带宽;在进行重传包的传输时,引入对重传包的fec保护,以便增强重传包到达的概率,提升最后的丢包恢复率。

在其他实施例中,基于fec的重传程序10还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由处理器12执行,以完成本发明。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段。参照图2所示,为图1中基于fec的重传程序10较佳实施例的程序模块图。所述基于fec的重传程序10可以被分割为:fec编码器编码模块110、数据包解码模块120、重传列表生成模块130、重传信息生成模块140、重传包生成模块150、重传包编码模块160和丢失媒体包恢复模块170。所述模块110-170所实现的功能或操作步骤均与上文类似,此处不再详述,示例性地,例如其中:

fec编码器编码模块110,用于通过fec编码器对ks个媒体包进行编码形成数据包,并将所述数据包发送至所述fec解码器;

数据包解码模块120,用于通过fec解码器对接收到的数据包进行解码,恢复出m个媒体包,其中,所述接收端接收到的数据包的数量小于ks;

重传列表生成模块130,用于通过重生列表生成器将接收到的数据包、所述m个媒体包进行处理,生成重传列表;

重传信息生成模块140,用于采用重传信息编码器将所述重传列表生成重传信息,并发送至重传信息解码器;

重传包生成模块150,用于通过所述重传信息解码器对接收到的重传信息进行解码,将通过重传包提取器对解码后的数据进行处理生成重传包;

重传包编码模块160,用于通过重传媒体包信息fec编码器对所述重传包进行编码形成冗余数据包,并将所述冗余数据包发送至所述fec解码器;

丢失媒体包恢复模块170,用于利用所述fec解码器对接收到的冗余数据包、所述接收到的数据包、所述m个媒体包进行处理,恢复出ks个媒体包,其中,所述fec解码器接收到的冗余数据包的数量小于发送前冗余数据包的数量。

此外,本发明还提供一种基于fec的智能重传的系统包括:fec编码器、fec解码器、重传列表生成器、重传信息编码器、重传信息解码器和重传包提取器。

其中,fec编码器,用于对媒体包进行编码生成fec包,并将媒体包与生成的fec包通过网络传输至fec解码器。即:输入媒体包,输出fec包 媒体包。

fec解码器,用于根据接收到的fec包和媒体包,恢复丢失的媒体包。输入媒体包、fec包,输出媒体包。

重传列表生成器:用于根据接收到的fec包、媒体包和恢复的丢失的媒体包,生成重传列表。即:输入媒体包、fec包,输出重传列表。

重传信息编码器:用于对重传列表进行编码生成重传信息,并将生成的重传信息通过网络传输至重传信息解码器。即:输入重传列表,输出重传信息。

重传信息解码器:用于将接收到的重传信息进行解码,生成重传列表;即:输入重传信息,输出重传列表。

重传包提取器:用于在fec编码器输出的媒体包中提取重传列表中重传包;即:输入媒体包、重传列表,输出重传包。

此外,本发明还提供一种基于fec的重传方法。参照图3所示,为本发明基于fec的重传方法较佳实施例的流程图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。

在本实施例中,基于fec的重传方法包括:步骤s10-步骤s60。

步骤s10:通过fec解码器对接收到的数据包进行解码,恢复出m个媒体包,其中,通过fec编码器对ks个媒体包进行编码形成数据包,并将所述数据包发送至所述fec解码器,所述ec解码器接收到的数据包的数量小于ks;

步骤s20:通过重生列表生成器将所述接收到的数据包、所述m个媒体包进行处理,生成重传列表;

步骤s30:采用重传信息编码器将所述重传列表生成重传信息,并发送至重传信息解码器;

步骤s40:通过所述重传信息解码器对接收到的重传信息进行解码,并通过重传包提取器对解码后的数据进行处理生成重传包;

步骤s50:通过重传媒体包信息fec编码器对所述重传包进行编码形成冗余数据包,并将所述冗余数据包发送至所述fec解码器;

步骤s60:利用所述fec解码器对接收到的冗余数据包、所述接收到的数据包、所述m个媒体包进行处理,恢复出ks个媒体包,其中,所述fec解码器接收到的冗余数据包的数量小于发送前冗余数据包的数量。

在步骤s10中,采用fec编码器对ks个媒体包进行编码后,向接收端发送数据包的步骤包括:采用fec编码器对ks个媒体包进行编码,生成ns个fec包,并将所述ks个媒体包保存备用;将所述ks个媒体包和ns个fec包发送至接收端。即:在发送端向fec编码器输入ks个媒体包,生成ns个fec包,并且在发送端保存ks个媒体包,发送ks个媒体包和ns个fec包。

其中,接收端的fec解码器对接收到的数据包进行解码,恢复出m个媒体包的步骤包括:接收端接收到kr个媒体包和nr个fec包,其中,kr≤ks,nr≤ns;采用fec解码器对接收到的kr个媒体包和nr个fec包进行解码,输出m个媒体包,并将(kr m)个媒体包、nr个fec包保存备用。

也就是说,接收端利用fec解码器:输入kr个媒体包和nr个fec包,输出m个媒体包;将(kr m)个媒体包保存为列表list(kr m),将nr个fec包保存为列表list(nr),以便用于后续丢包恢复。

在步骤s20中,接收端利用重传列表生成器:输入(kr m)个媒体包和nr个fec包,输出重传列表;接收端收到的数据包为kr个媒体包、nr个fec包;通过重生列表生成器将(kr m)个媒体包、nr个fec包进行处理,生成重传列表的步骤包括:

步骤一:计算缺失的媒体包,并将其记录为重传列表r;其中,

重传列表r的初始数量为ks-(kr m),r[i]表示重传列表r下标为i的元素,r-r[i]表示剔除r[i]后的重传列表,并将(kr m)个媒体包记录为list(kr m)、nr个fec包记录为list(nr);

步骤二:遍历重传列表r,利用fec解码器获取r[i],如果恢复出r[i],则在重传列表r中剔除r[i],再继续获取下一个元素r[i],直至遍历结束;

步骤三:如果不能恢复出r[i],则将此r[i]保留在重传列表中,再继续获取下一个元素r[i],直至重传列表r的遍历结束;

步骤四:重传列表r的遍历结束,则输出重传列表r,记录重传列表的媒体包的数量为s。

其中,利用fec解码器获取r[i]的步骤包括:

将list(kr m)、list(nr)以及r-r[i]输入到fec解码器;

fec解码器对list(kr m)、list(nr)以及r-r[i]进行解码处理,获取r[i]。

图4示出了本发明的重传列表生成的具体流程:

s1:记录重传列表r,其中保存丢失的序号信息,初始大小为ks-(kr m);

s2:r[i]表示重传列表r下标为i的元素;(kr m)个媒体包记录为list(kr m);nr个fec包记录为list(nr);r-r[i]表示剔除r[i]后的重传列表,i=0;

s3:fec解码器:输入list(kr m)、list(nr)、r-r[i],是否恢复r[i];是则执行步骤s4,否则执行步骤s5;

s4:更新r-r[i];

s5:i=i 1,i是否≥(ks-(kr m));是则执行步骤s6,否则执行s3;

s6:输出重传列表r,并记录其大小为s。

在本发明的实施例中,上述说明了只重传必须的媒体包,首先通过缓存原有的媒体包、fec包,再通过上述重传列表生成器就可以构造出重传列表,重传列表中表示的媒体包就是必须重传的媒体包。

在步骤s40中,采用重传信息编码器将所述重传列表生成重传信息,并发送至重传信息解码器的步骤包括:

所述重传信息解码器对接收到的重传信息进行解码,生成解码后的重传列表;

通过重传包提取器对解码后的重传列表,以及保存备用的ks个媒体包进行处理,生成重传包,其中,所述重传包的数量与所述重传列表的媒体包的数量相同,均为s。

也就是说,接收端利用重传信息编码器:输入重传列表,输出重传信息。并将重传信息反馈至发送端;发送端利用重传信息解码器:输入重传信息,输出重传列表;发送端利用重传包提取器:输入重传列表和ks个媒体包,输出重传包;其中,重传包的数量与重传列表中表示的数量一致,为s个。

步骤s50中,通过重传媒体包信息fec编码器对所述重传包进行编码形成冗余数据包,并将所述冗余数据包发送至所述fec解码器的步骤包括:

通过重传媒体包信息对s个重传包进行编码,输出y个fec包;

将所述s个重传包和所述y个fec包发送至所述接收端,其中,所述冗余数据包包括所述s个重传包和所述y个fec包。

步骤s60中,利用所述fec解码器对接收到的冗余数据包、所述接收到的数据包、所述m个媒体包进行处理,恢复出ks个媒体包的步骤包括:

所述接收端接收到sr个重传包和yr个fec包,通过所述fec解码器对接收到的sr个重传包和yr个fec包进行处理,恢复出s个重传包;

并通过所述fec解码器对保存备用的(kr m)个媒体包、s个重传包、以及保存备用的nr个fec包进行处理,恢复出ks个媒体包也就是说,发送端利用fec编码器:输入s个重传包,输出y个fec包。将s个重传包和y个fec包发送给接收端。

接收端接收sr个重传包和yr个fec包,恢复出可能丢失的重传包。

接收端利用fec解码器:输入(kr m s)个媒体包和nr个fec包,输出恢复的媒体包。

上述实施例提出的基于fec的重传方法,通过fec编码器对原始媒体包进行前向纠错保护,形成第一层保护;当接收端接收到原始媒体包和fec包后,会进行第一次丢包恢复,如果发现尚有丢失的媒体包信息,则需要保存接收到和恢复出来的媒体包,以及保存接收到的fec包信息。这些信息有助于进行后续的媒体包恢复。在计算需要重传的媒体包时,只需要重传必须的媒体包,利用第一次接收到的fec包进行第二次媒体包恢复,有助于减少重传包所占用的带宽;在进行重传包的传输时,引入对重传包的fec保护,以便增强重传包到达的概率,提升最后的丢包恢复率。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质中包括基于fec的重传程序,所述基于fec的重传程序被处理器执行时实现如下操作:

通过fec解码器对接收到的数据包进行解码,恢复出m个媒体包,其中,通过fec编码器对ks个媒体包进行编码形成数据包,并将所述数据包发送至所述fec解码器,所述ec解码器接收到的数据包的数量小于ks;

通过重生列表生成器将所述接收到的数据包、所述m个媒体包进行处理,生成重传列表;

采用重传信息编码器将所述重传列表生成重传信息,并发送至重传信息解码器;

通过所述重传信息解码器对接收到的重传信息进行解码,并通过重传包提取器对解码后的数据进行处理生成重传包;

通过重传媒体包信息fec编码器对所述重传包进行编码形成冗余数据包,并将所述冗余数据包发送至所述fec解码器;

利用所述fec解码器对接收到的冗余数据包、所述接收到的数据包、所述m个媒体包进行处理,恢复出ks个媒体包,其中,所述fec解码器接收到的冗余数据包的数量小于发送前冗余数据包的数量。

本发明之计算机可读存储介质的具体实施方式与上述基于fec的重传方法、电子装置的具体实施方式大致相同,在此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。


技术特征:

1.一种基于fec的重传方法,应用于电子装置,其特征在于,所述方法包括:

通过fec解码器对接收到的数据包进行解码,恢复出m个媒体包,其中,通过fec编码器对ks个媒体包进行编码形成数据包,并将所述数据包发送至所述fec解码器,所述ec解码器接收到的数据包的数量小于ks;

通过重生列表生成器将所述接收到的数据包、所述m个媒体包进行处理,生成重传列表;

采用重传信息编码器将所述重传列表生成重传信息,并发送至重传信息解码器;

通过所述重传信息解码器对接收到的重传信息进行解码,并通过重传包提取器对解码后的数据进行处理生成重传包;

通过重传媒体包信息fec编码器对所述重传包进行编码形成冗余数据包,并将所述冗余数据包发送至所述fec解码器;

利用所述fec解码器对接收到的冗余数据包、所述接收到的数据包、所述m个媒体包进行处理,恢复出ks个媒体包,其中,所述fec解码器接收到的冗余数据包的数量小于发送前冗余数据包的数量。

2.根据权利要求1所述的基于fec的重传方法,其特征在于,

所述通过fec编码器对ks个媒体包进行编码形成数据包,并将所述数据包发送至所述fec解码器的步骤包括:

采用fec编码器对ks个媒体包进行编码,生成ns个fec包,并将所述ks个媒体包保存备用;

将所述ks个媒体包和ns个fec包发送至所述fec解码器,其中,所述数据包包括所述ks个媒体包和ns个fec包。

3.根据权利要求2所述的基于fec的重传方法,其特征在于,

所述通过fec解码器对接收到的数据包进行解码,恢复出m个媒体包的步骤包括:

所述fec解码器接收到kr个媒体包和nr个fec包,其中,kr≤ks,nr≤ns;

通过所述fec解码器对接收到的kr个媒体包和nr个fec包进行解码,输出m个媒体包,并将(kr m)个媒体包、nr个fec包保存备用。

4.根据权利要求3所述的基于fec的重传方法,其特征在于,

所述通过重生列表生成器将所述接收到的数据包、所述m个媒体包进行处理,生成重传列表,其中,所述接收到的数据包为kr个媒体包、nr个fec包;

其中,所述通过重生列表生成器将所述(kr m)个媒体包、nr个fec包进行处理,生成重传列表的步骤包括:

步骤一:计算缺失的媒体包,并将其记录为重传列表r;其中,

所述重传列表r的初始数量为ks-(kr m),r[i]表示重传列表r下标为i的元素,r-r[i]表示剔除r[i]后的重传列表,并将所述(kr m)个媒体包记录为list(kr m)、nr个fec包记录为list(nr);

步骤二:遍历所述重传列表r,利用所述fec解码器获取r[i],如果恢复出r[i],则在所述重传列表r中剔除r[i],再继续获取下一个元素r[i],直至遍历结束;

步骤三:如果不能恢复出r[i],则将此r[i]保留在重传列表中,再继续获取下一个元素r[i],直至所述重传列表r的遍历结束;

步骤四:所述重传列表r的遍历结束,则输出所述重传列表r,记录所述重传列表的媒体包的数量为s。

5.根据权利要求4所述的基于fec的重传方法,其特征在于,所述利用所述fec解码器获取r[i]的步骤包括:

将所述list(kr m)、list(nr)以及r-r[i]输入到所述fec解码器;

所述fec解码器对所述list(kr m)、list(nr)以及r-r[i]进行解码处理,获取r[i]。

6.根据权利要求4所述的基于fec的重传方法,其特征在于,

所述通过所述重传信息解码器对接收到的重传信息进行解码,并通过重传包提取器对解码后的数据进行处理生成重传包的步骤包括:

所述重传信息解码器对接收到的重传信息进行解码,生成解码后的重传列表;

通过重传包提取器对解码后的重传列表,以及保存备用的ks个媒体包进行处理,生成重传包,其中,所述重传包的数量与所述重传列表的媒体包的数量相同,均为s。

7.根据权利要求1所述的基于fec的重传方法,其特征在于,

所述通过重传媒体包信息fec编码器对所述重传包进行编码形成冗余数据包,并将所述冗余数据包发送至所述fec解码器的步骤包括:

通过所述重传媒体包信息fec编码器对s个重传包进行编码,输出y个fec包;

将所述s个重传包和所述y个fec包发送至所述fec解码器。

8.根据权利要求1所述的基于fec的重传方法,其特征在于,

所述利用所述fec解码器对发送的冗余数据包、所述接收到的数据包、所述m个媒体包进行处理,恢复出ks个媒体包的步骤包括:

通过所述fec解码器对接收到的sr个重传包和yr个fec包进行处理,恢复出s个重传包;

并通过所述fec解码器对保存备用的(kr m)个媒体包、s个重传包、以及保存备用的nr个fec包进行处理,恢复出ks个媒体包。

9.一种电子装置,其特征在于,该电子装置包括:存储器、处理器,所述存储器中包括基于fec的重传程序,所述基于fec的重传程序被所述处理器执行时实现如下步骤:

通过fec解码器对接收到的数据包进行解码,恢复出m个媒体包,其中,通过fec编码器对ks个媒体包进行编码形成数据包,并将所述数据包发送至所述fec解码器,所述ec解码器接收到的数据包的数量小于ks;

通过重生列表生成器将所述接收到的数据包、所述m个媒体包进行处理,生成重传列表;

采用重传信息编码器将所述重传列表生成重传信息,并发送至重传信息解码器;

通过所述重传信息解码器对接收到的重传信息进行解码,并通过重传包提取器对解码后的数据进行处理生成重传包;

通过重传媒体包信息fec编码器对所述重传包进行编码形成冗余数据包,并将所述冗余数据包发送至所述fec解码器;

利用所述fec解码器对接收到的冗余数据包、所述接收到的数据包、所述m个媒体包进行处理,恢复出ks个媒体包,其中,所述fec解码器接收到的冗余数据包的数量小于发送前冗余数据包的数量。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括基于fec的重传程序,所述基于fec的重传程序被处理器执行时,实现如权利要求1至8中任一项所述的基于fec的重传方法的步骤。

技术总结
本发明涉及网络通讯技术领域,提出一种基于FEC的重传方法、装置及可读存储介质,其中的方法包括:通过FEC解码器对接收到的数据包进行解码,恢复出M个媒体包;通过重生列表生成器将所述接收到的数据包、所述M个媒体包进行处理,生成重传列表;将重传列表生成重传信息,发送至重传信息解码器并对接收到的重传信息进行解码,将解码后的数据生成重传包;通过重传媒体包信息FEC编码器对重传包进行编码后,并向FEC解码器发送冗余数据包;利用FEC解码器恢复出Ks个媒体包。本发明通过FEC对必须重传的媒体包进行前向纠错保护,解决在信息传输过程中只采用FEC或者重传技术中一种技术方式而造成网络较差的问题。

技术研发人员:沈贤;阮亚平
受保护的技术使用者:平安科技(深圳)有限公司
技术研发日:2020.02.11
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-21248.html

最新回复(0)