本发明涉及网络与通信的多媒体技术领域,尤其涉及一种长期演进LTE网络下的视频上行传输方法及装置。
背景技术:
在实时视频的传输过程中,当实时视频的码率超过了当前网络的承载能力,会引起数据包丢失,导致视频质量下降。在无线网上传输实时视频时,核心网和接入网受到网络带宽接入用户数、业务量等因素影响,在无线侧受到无线网信道容量、信道误码率和接收信号强度等参数的影响,波动较大。
目前实时视频传输通常采用利用实时传输控制协议(Realtime Transport Control Protocol,RTCP)反馈信息进行实时码流控制策略,根据RTCP接收报告中的丢包率信息,计算当前网络状况,调整编码码率和编码帧率。但是,利用RTCP协议反馈信息进行实时码流控制的办法有一定时间的滞后性,存在某段时间用户体验很差,RTCP信息反馈需要一段时间,在这段时间内不能传输合适的视频流,过了相当长时间才能得到较好的用户体验;同时若网络状况变好,发送端也不能及时进行调整。这种情况在无线环境下表现更为明显。
因此,为了减少视频数据丢失和错误对解码质量造成的不利影响,需要使用一些错误控制技术来提高视频数据在网络上传输的可靠性,其中通常采用的两种方式是:自动重传请求(automatic repeat request,ARQ)和前向纠错(forward errorcorrection,FEC)。ARQ通过反馈应答方式来保证数据的可靠性,当接收端正确接收到数据后,必须向发送端发送确认信息,否则发送端将重传数据直至收到确认信息后再发送新的数据。这种方式的优点是可以保证数据的正确性,但是会消耗发送端很多资源而且延迟较长;FEC通过产生一定的冗余数据来检测和纠正数据错误,虽然FEC会浪费一定的网络带宽,但是延迟短。通常FEC在丢包较大时有优势;ARQ在小时延小丢包时有优势。
因此,将FEC与ARQ结合起来使用,即为混合自动重传请求(Hybrid Automatic Repeat reQuest,HARQ)。HARQ的基本原理如下:1、在接收端使用FEC技术纠正所有错误中能够纠正的那一部分;2、通过错误检测判断不能纠正错误的数据包;3、丢弃不能纠错的数据包,向发射端请求重新发送相同的数据包。
然而,采用HARQ策略来完成端到端实时视频传输,在某些场景下并不适用,如实时视频通话对延时要求极高,通过重传对视频延时增加很大,极大降低了用户体验。同时在分时长期演进(Time Division Long Term Evolution,TD LTE)环境下上行带宽分配的比下行带宽小,使用FEC传输视频增加了视频冗余,所以在网络带宽受限情况下采用FEC情况并不理想。
技术实现要素:
为了克服现有技术中存在的上述问题,本发明实施例提供了一种长期演进LTE网络下的视频上行传输方法及装置,根据信道的数据传输情况及视频帧的重要性参数调整视频帧冗余包的大小,减小了时延,提高了视频传输质量,提升了用户体验。
为了解决上述技术问题,本发明采用如下技术方案:
依据本发明实施例的一个方面,提供了一种长期演进LTE网络下的视频上行传输方法,包括:
获取用于传输视频文件的上行信道的数据传输情况,其中,所述视频文件包括多个图像组GOP,所述GOP包括多个视频帧;
根据所述数据传输情况以及所述视频帧在所述GOP中的位置,对编码后的所述视频帧添加冗余包,其中,所述冗余包按照所述视频帧在所述GOP中从前往后的顺序依次减小;
将添加所述冗余包后的所述视频帧生成数据包,并将所述数据包发送给基站。
其中,上述方案中,所述根据所述数据传输情况以及所述视频帧在所述GOP中的位置,对编码后的所述视频帧添加冗余包的步骤之前,所述方法还包括:
根据所述数据传输情况,确定编码参数,并依据所述编码参数对采集的所述视频文件的视频帧进行编码。
其中,上述方案中,所述根据所述数据传输情况,确定编码参数,并依据所述编码参数对采集的所述视频文件的视频帧进行编码的步骤之前,所述方法还包括:
根据所述数据传输情况,确定视频采集参数,并根据所述视频采集参数采集视频文件。
其中,上述方案中,所述数据传输情况包括数据传输丢包率Pd、数据重传率Pr、以及所述上行信道的可用信道速率C。
其中,上述方案中,所述根据所述数据传输情况以及所述视频帧在所述GOP中的位置,对编码后的所述视频帧添加冗余包的步骤包括:
根据所述可用信道速率C,确定所述上行信道的最大传输速率Vmax;
根据所述视频帧在相应GOP中的位置,以及所述最大传输速率Vmax对所述视频帧添加冗余包。
其中,上述方案中,所述根据所述视频帧在相应GOP中的位置,以及所述最大传输速率Vmax对所述视频帧添加冗余包的步骤包括:
根据所述视频帧在相应GOP中的位置,设置所述视频帧的优先级,其中,所述视频帧的优先级按照所述视频帧在所述GOP中从前往后的顺序依次降低;
获取在所述第一预设时间段内的数据包的平均传输数量q;
根据在所述第一预设时间段内的数据包的平均传输数量q、所述数据包的预设传输包头Th、所述最大传输速率Vmax以及所述视频编码码率Vb,获得平均冗余度S=(Vmax-Vb-q*Th)/Vmax;
根据所述视频帧的优先级,在所述平均冗余度S的基础上增大或减小预设值,获得所述视频帧添加的所述冗余包的大小,并将所述冗余包添加给相应的视频帧,其中,所述冗余包的大小随所述优先级的升高而增大。
其中,上述方案中,当传输给所述基站的所述数据包的失败次数超过预设阈值时,所述方法还包括:
接收所述基站反馈的数据接收出错消息,并判断传输失败的所述数据包是否需要重新传输,当需要重新传输时,将传输失败的所述数据包重新传输给所 述基站。
其中,上述方案中,所述数据接收出错消息中携带有传输失败的所述数据包的序号;
所述判断传输失败的所述数据包是否需要重新传输,当需要重新传输时,将传输失败的所述数据包重新传输给所述基站包括:
根据所述序号,获取传输失败的所述数据包的优先级n和时间戳t0,其中,所述数据包的优先级为所述数据包属于的所述视频帧的优先级;
根据所述优先级n和所述时间戳t0,获得传输失败的所述数据包的重传概率其中,t1为当前时刻,Δt为预设最大重传时间间隔,m为预设最低优先级,且n和m均为正整数;
当所述重传概率p超过预设阈值时,将传输失败的所述数据包重新传输给所述基站。
其中,上述方案中,当在第二预设时间段内,收到的所述数据出错消息的数量超过预设数量时,所述方法还包括:
将所述数据包中优先级小于预设优先级的数据包舍弃。
其中,上述方案中,所述编码参数包括视频编码码率Vb和GOP值,所述根据所述数据传输情况,确定编码参数,并依据所述编码参数对采集的所述视频文件的视频帧进行编码的步骤包括:
根据所述数据传输丢包率Pd和所述数据重传率Pr确定所述GOP值;
根据所述数据传输丢包率Pd、数据重传率Pr、以及所述可用信道速率C,获得视频编码码率Vb;
根据所述视频编码码率Vb和所述GOP值对所述视频文件的视频帧进行编码。
其中,上述方案中,所述根据所述数据传输丢包率Pd和所述数据重传率Pr确定所述GOP值的步骤为:
根据所述数据传输丢包率Pd和所述数据重传率Pr,确定第i+1个预设时间段内所述GOP值Gi+1=Gi*θd*2/(Pd+Pr),其中,Gi为第i个预设时间段内所述GOP值,θd为预设丢包阈值,i为正整数。
其中,上述方案中,所述视频采集参数包括视频分辨率和视频帧率,所述根据所述数据传输情况,确定视频采集参数,并根据所述视频采集参数采集视频文件的步骤包括:
根据所述数据传输丢包率Pd、数据重传率Pr、以及所述可用信道速率C,获得视频编码码率Vb;
根据所述编码码率Vb确定所述视频分辨率和所述视频帧率,并根据所述视频分辨率和所述视频帧率采集所述视频文件。
其中,上述方案中,所述根据所述数据传输丢包率Pd、数据重传率Pr、以及所述可用信道速率C,获得视频编码码率Vb的步骤包括:
获取所述上行信道的除传输所述视频文件的其他业务的最大带宽AS和所需速率To;
根据所述其他业务的最大带宽AS和所需速率To,以及所述可用信道速率C,获得所述最大传输速率Vmax=min(C-To,AS);
获取在所述第一预设时间段内的数据包的平均传输数量q;
根据在所述第一预设时间段内的数据包的平均传输数量q,所述数据包的预设传输包头Th、所述数据传输丢包率Pd、所述数据重传率Pr以及所述最大传输速率Vmax,获得视频编码码率Vb=Vmax*[1-(Pd+Pr)/2]*f-q*Th,其中,f为预设加权系数。
其中,上述方案中,所述根据所述可用信道速率C,确定所述上行信道的最大传输速率Vmax的步骤包括:
获取所述上行信道的除传输所述视频文件的其他业务的最大带宽AS和所需速率To;
根据所述其他业务的最大带宽AS和所需速率To,以及所述可用信道速率C,获得所述最大传输速率Vmax=min(C-To,AS)。
依据本发明实施例的另一个方面,还提供了一种长期演进LTE网络下的视频上行传输装置,包括:
控制模块,用于获取用于传输视频文件的上行信道的数据传输情况,其中,所述视频文件包括多个图像组GOP,所述GOP包括多个视频帧;
封包模块,用于根据所述数据传输情况以及所述视频帧在所述GOP中的 位置,对编码后的所述视频帧添加冗余包,其中,所述冗余包按照所述视频帧在所述GOP中从前往后的顺序依次减小;
传输模块,用于将添加所述冗余包后的所述视频帧生成数据包,并将所述数据包发送给基站。
其中,上述方案中,所述装置还包括:
编码模块,用于根据所述数据传输情况,确定编码参数,并依据所述编码参数对采集的所述视频文件的视频帧进行编码。
其中,上述方案中,所述装置还包括:
采集模块,用于根据所述数据传输情况,确定视频采集参数,并根据所述视频采集参数采集视频文件。
其中,上述方案中,所述数据传输情况包括数据传输丢包率Pd、数据重传率Pr、以及所述上行信道的可用信道速率C。
其中,上述方案中,所述封包模块包括:
第一确定单元,用于根据所述可用信道速率C,确定所述上行信道的最大传输速率Vmax;
添加单元,用于根据所述视频帧在相应GOP中的位置,以及所述最大传输速率Vmax对所述视频帧添加冗余包。
其中,上述方案中,所述添加单元包括:
设置子单元,用于根据所述视频帧在相应GOP中的位置,设置所述视频帧的优先级,其中,所述视频帧的优先级按照所述视频帧在所述GOP中从前往后的顺序依次降低;
第一获取子单元,用于获取在所述第一预设时间段内的数据包的平均传输数量q;
确定子单元,用于根据在所述第一预设时间段内的数据包的平均传输数量q、所述数据包的预设传输包头Th、所述最大传输速率Vmax以及所述视频编码码率Vb,获得平均冗余度S=(Vmax-Vb-q*Th)/Vmax;
添加子单元,用于根据所述视频帧的优先级,在所述平均冗余度S的基础上增大或减小预设值,获得所述视频帧添加的所述冗余包的大小,并将所述冗余包添加给相应的视频帧,其中,所述冗余包的大小随所述优先级的升高而增 大。
其中,上述方案中,当传输给所述基站的所述数据包的失败次数超过预设阈值时,所述装置还包括:
接收模块,用于接收所述基站反馈的数据接收出错消息,并判断传输失败的所述数据包是否需要重新传输,当需要重新传输时,将传输失败的所述数据包重新传输给所述基站。
其中,上述方案中,所述数据接收出错消息中携带有传输失败的所述数据包的序号;
所述接收模块包括:
第一获取单元,用于根据所述序号,获取传输失败的所述数据包的优先级n和时间戳t0,其中,所述数据包的优先级为所述数据包属于的所述视频帧的优先级;
第二获取单元,用于根据所述优先级n和所述时间戳t0,获得传输失败的所述数据包的重传概率其中,t1为当前时刻,Δt为预设最大重传时间间隔,m为预设最低优先级,且n和m均为正整数;
重传单元,用于当所述重传概率p超过预设阈值时,将传输失败的所述数据包重新传输给所述基站。
其中,上述方案中,当在第二预设时间段内,收到的所述数据出错消息的数量超过预设数量时,所述装置还包括:
舍弃模块,用于将所述数据包中优先级小于预设优先级的数据包舍弃。
其中,上述方案中,所述编码参数包括视频编码码率Vb和GOP值;
所述编码模块包括:
第二确定单元,用于根据所述数据传输丢包率Pd和所述数据重传率Pr确定所述GOP值;
第三确定单元,用于根据所述数据传输丢包率Pd、数据重传率Pr、以及所述可用信道速率C,获得视频编码码率Vb;
编码单元,用于根据所述视频编码码率Vb和所述GOP值对所述视频文件的视频帧进行编码。
其中,上述方案中,所述第二确定单元具体用于:
根据所述数据传输丢包率Pd和所述数据重传率Pr,确定第i+1个预设时间段内所述GOP值Gi+1=Gi*θd*2/(Pd+Pr),其中,Gi为第i个预设时间段内所述GOP值,θd为预设丢包阈值,i为正整数。
其中,上述方案中,所述视频采集参数包括视频分辨率和视频帧率;
所述采集模块包括:
第四确定单元,用于根据所述数据传输丢包率Pd、数据重传率Pr、以及所述可用信道速率C,获得视频编码码率Vb;
采集单元,用于根据所述编码码率Vb确定所述视频分辨率和所述视频帧率,并根据所述视频分辨率和所述视频帧率采集所述视频文件。
其中,上述方案中,所述第三确定单元和所述第四确定单元均包括:
第二获取子单元,用于获取所述上行信道的除传输所述视频文件的其他业务的最大带宽AS和所需速率To;
第三获取子单元,用于根据所述其他业务的最大带宽AS和所需速率To,以及所述可用信道速率C,获得所述最大传输速率Vmax=min(C-To,AS);
第四获取子单元,用于获取在所述第一预设时间段内的数据包的平均传输数量q;
第五获取子单元,用于根据在所述第一预设时间段内的数据包的平均传输数量q,所述数据包的预设传输包头Th、所述数据传输丢包率Pd、所述数据重传率Pr以及所述最大传输速率Vmax,获得视频编码码率Vb=Vmax*[1-(Pd+Pr)/2]*f-q*Th,其中,f为预设加权系数。
其中,上述方案中,所述第一确定单元包括:
第六获取子单元,用于获取所述上行信道的除传输所述视频文件的其他业务的最大带宽AS和所需速率To;
第七获取子单元,用于根据所述其他业务的最大带宽AS和所需速率To,以及所述可用信道速率C,获得所述最大传输速率Vmax=min(C-To,AS)。
本发明实施例的有益效果是:
本发明实施例的LTE网络下的视频上行传输方法,实时获取用于传输视频文件的上行信道的数据传输情况,并依据数据传输情况和视频帧的重要性参 数(即视频帧在相应GOP中的位置)来动态调整为视频帧添加的冗余包的大小,使得当前视频文件的传输满足当时的数据传输情况,减小了时延,提高了视频传输指令,提升了用户体验。
附图说明
图1表示本发明实施例的LTE网络下的视频上行传输方法流程示意图;
图2表示本发明实施例的LTE网络下的视频上行传输装置的结构框图;
图3表示本发明实施例的封包模块的结构框图;
图4表示本发明实施例的接收模块的结构框图;
图5表示本发明实施例的编码模块的结构框图;
图6表示本发明实施例的采集模块的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
依据本发明实施例的一个方面,提供了一种LTE网络下的视频上行传输方法,该方法首先,获取用于传输视频文件的上行信道的数据传输情况;接着,根据所述数据传输情况以及所述视频帧在所述GOP中的位置,对编码后的所述视频帧添加冗余包;最后,将添加所述冗余包后的所述视频帧生成数据包,并将所述数据包发送给基站。
因此,本发明实施例的LTE网络下的视频上行传输方法,根据信道的数据传输情况以及视频帧的重要性参数调整视频帧冗余包的大小,减小了时延,提高了视频传输质量,提升了用户体验。
如图1所示,该方法包括:
步骤S11、获取用于传输视频文件的上行信道的数据传输情况。
其中,数据传输情况包括上行信道的数据传输丢包率Pd、数据重传率Pr、 以及所述上行信道的可用信道速率C。当然可以理解的是,对于数据传输情况所包括的具体参数,并不局限于此。
其中,若在当前时间段内传输r个数据包时,有k个数据包传输失败,则数据传输丢包率Pd=k/r;若在当前时间段内段内传输r个数据包一共传输了e次,则数据重传率Pr=r/e。(其中,r、k和e均为正整数)。另外,在一个资源分配周期内,每个资源块都有其信噪比SNR,这可以通过使用该资源块的前一个用户的反馈得到,利用香农信道容量公式C=Blog2(1+SNR)则得到可用信道速率C,其中公式中B为链路带宽,SNR为当前用户在该链路上的信噪比。
由此可知,对于数据传输情况包括的各个数据参数,均可通过相应的统计和计算获得。
步骤S13、根据所述数据传输情况以及所述视频帧在所述GOP中的位置,对编码后的所述视频帧添加冗余包。
其中,一个视频文件包括多个图像组(group of pictures,GOP)。每个GOP中又包括多个视频帧。例如H.264视频序列的一个GOP中有N帧图像,该GOP包括1个I帧,Np个P帧和N-Np-1个B帧(即I帧、Np个P帧和N-Np-1个B帧按照在该GOP中按照从前往后的顺序排列),其中I帧采用帧内编码模式,P帧利用前面的P帧或者I帧进行预测,B帧通过前面和后面两个视频帧预测而来,最后一个B帧通过前面的P帧和下一个GOP的I帧预测而来。所以,在传输过程中,如果前面的P帧丢失,那么以此作为帧参考的各个帧的数据解码都会受到影响,其视频质量将变得很差。而一个B帧丢失只会影响该B帧本身的视频质量,一个I帧的丢失会导致该GOP序列所有的视频帧质量下降。
由此可知,在GOP中,位于GOP中位置越靠前的视频帧的重要性越高,位于GOP中越靠后的视频帧的重要性越低,所以GOP中的各个视频帧的冗余包的大小,可以按照视频帧在所述GOP中从前往后的顺序依次减小。但是,对于各个视频帧的具体冗余度,还需要根据实时获得的数据传输情况来进一步确定。
其中,需要根据视频帧在相应GOP中的位置确定各个视频帧的重要性参数,例如,按照视频帧在GOP中从前往后的顺序,为视频帧设置相应的优先 级,该优先级按照所述视频帧在所述GOP中从前往后的顺序依次降低。例如针对H.264视频序列的一个GOP,若规定视频流中总共有m(通常要求m>N)个优先级,取值范围为1~m,最高优先级1分配给I帧,最低优先级m分配给B帧,P帧的优先级则介于2和m之间,其中利用P帧在GOP中的位置来衡量P帧的重要性,一个P帧在一个GOP中的位置越靠前,则该视频帧越重要。
然后,依据数据传输情况确定视频帧的平均冗余度S,可利用公式S=(Vmax-Vb-q*Th)/Vmax来确定。其中,Vmax是最大传输速率,Vb为视频编码码率,Th为数据包的预设传输包头Th,q为在一预设时间段内平均传输的数据包的数量。
对于确定Vmax的方法,首先需要统计所述上行信道的除传输所述视频文件的其他业务的最大带宽AS和所需速率To;然后,根据所述其他业务的最大带宽AS和所需速率To,以及所述可用信道速率C,获得所述最大传输速率Vmax=min(C-To,AS),即Vmax为C-To和AS中数值最小的一个。
对于q的确定方法,首先需要获取在该预设时间段内的视频帧传输速率fp;接着,根据所述视频传输速率fp、所述最大传输速率Vmax以及所述预设数据包平均大小值X,确定一个所述视频帧包括的所述数据包的平均数量Y=ceiling(Vmax/8/fp/X),其中,ceiling表示向上取整运算;最后,根据一个所述视频帧包括的所述数据包的平均数量Y,以及所述第一预设时间段的时长T,确定在所述第一预设时间段内的数据包的平均传输数量q=Y*fp*T。
对于Vb的确定方法,利用公式Vb=Vmax*[1-(Pd+Pr)/2]*f-q*Th获得,其中,Th为数据包的预设传输包头,Pd为数据传输丢包率,Pr为数据重传率,Vmax为最大传输速率,q为当前时间段的数据包传输数量。
当平均冗余度S和视频帧的优先级均确定后,可根据优先级调整平均冗余度S的大小,作为该优先级对应的视频帧所要添加的冗余包的大小。例如,对于H.264的GOP中的视频帧,对于第一优先级的I帧的冗余包的大小,可以在平均冗余度S的基础上增加预设值,而对于第m优先级的B帧,可以在平均冗余度S的基础上减小相应的预设值,或者最低优先级m的B帧不添加冗余包,对于多个P帧的冗余包,同样可以根据优先级在平均冗余度S的基础 上进行调整。
步骤S15、将添加所述冗余包后的所述视频帧生成数据包,并将所述数据包发送给基站。
其中,可通过LTE天线把数据包传送给基站。
在LTE系统中终端与接入网联系的节点称为基站,空中接口相关的功能包括无线资源分配以及调度策略的功能都集中在基站上。无线链路控制(RLC)和媒体访问控制(MAC)都处于同一个基站上,基站上MAC层对于上行数据的传输,每个HARQ进程采用同步的机制,指的是对于上行HARQ过程中的一个数据包的多次传输(包括第一次的初传和随后可能的多次重传),各次传输之间采用固定的定时关系。例如,在终端侧默认一个数据包的上传次数最多为四次,且重传的时间间隔为4毫秒,即若一个数据包在第一次上传4毫秒后,终端并未接收到,则进行下一次上传,若第四次上传4毫秒后,基站仍未接收到该数据包,且终端仅收到基站反馈的关于数据接收出错的消息时,该将不再上传该数据包,则该数据包丢失。
另外,若丢失的数据包对应的视频帧的优先级较高,则会造成传输的视频文件的质量的下降。但是,在本发明实施例的LTE网络下的视频上行传输方中,当传输给基站的所述数据包的失败次数超过预设阈值时,基站向终端反馈数据接收出错消息,终端接收该数据接收出错消息,并判断传输失败的所述数据包是否需要重新传输,当需要重新传输时,将传输失败的所述数据包重新传输给所述基站。
对于传输失败的数据包具体是否需要重新上传,可以计算该数据包的重传概率p来进行判断。其中,基站向终端反馈数据接收出错消息时,会携带传输失败的数据包的序号,使得终端根据该序号获取该数据包的优先级n和时间戳t0,并根据优先级n和时间戳t0,获得传输失败的数据包的重传概率:
其中,t1为当前时刻,Δt为预设最大重传时间间隔,m为预设最低优先级,且n和m均为正整数。当传输失败的数据包的重传概率p超过预设阈值时,将传输失败的该数据包重新传输给基站。
另外,若终端在某时间段内收到的数据出错消息过多,例如当接收到的数据出错消息的数量超过预设数量,则将数据包中优先级小于预设优先级的数据包舍弃,从而减小时延,提升用户体验。
其中,在步骤S13之前,即对视频帧添加冗余包之前,还包括:
根据所述数据传输情况,确定视频采集参数,并根据所述视频采集参数采集视频文件;以及
根据所述数据传输情况,确定编码参数,并依据所述编码参数对采集的所述视频文件的视频帧进行编码。
其中,对于根据数据传输情况采集视频文件的过程,需要首先根据所述数据传输丢包率Pd、数据重传率Pr、以及所述可用信道速率C,获得视频编码码率Vb;然后,根据所述编码码率Vb确定所述视频分辨率和所述视频帧率,并根据所述视频分辨率和所述视频帧率采集所述视频文件。例如在某些场景中,并不是从硬件设备获取原始视频,如从某些文件读取视频数据,则采集视频文件时需要对读取的视频数据进行滤波处理,如把原始视频的分辨率从720p降为视频传输标准(VGA)的分辨率。
对于根据数据传输情况对采集的视频文件进行编码的过程,首先需要确定编码参数,即视频编码码率Vb和GOP值。其中,视频编码码率Vb的具体计算方法在上面已经介绍,此处不再赘述。对于GOP值,且大小可根据数据重传率Pr和数据传输丢包率Pd确定,当数据包丢包过多时,应减小GOP大小;反之则可增加GOP大小。例如,设定丢包阈值为θd,假定第i个时间段GOP大小为Gi,则i+1时间段GOP大小可设置为Gi*θd*2/(Pd+Pr)。
综上所述,本发明实施例的LTE网络下的视频上行传输方法,不仅可以根据实时获取的上行信道的数据传输情况来对编码后的视频帧添加冗余包,而且还可以根据数据传输情况实时改变视频采集参数和视频编码参数,并及时根据基站反馈的数据接收出错消息,对传输失败的数据包进行重传或者丢弃队列中优先级低的数据包,从而减小视频文件的传输时延,提升视频传输质量,提升用户体验。
实施例二
依据本发明实施例的另一个方面,提供了一种长期演进LTE网络下的视 频上行传输装置,如图2所示,该装置200包括:
控制模块209,用于获取用于传输视频文件的上行信道的数据传输情况,其中,所述视频文件包括多个图像组GOP,所述GOP包括多个视频帧;
封包模块205,用于根据所述数据传输情况以及所述视频帧在所述GOP中的位置,对编码后的所述视频帧添加冗余包,其中,所述冗余包按照所述视频帧在所述GOP中从前往后的顺序依次减小;
传输模块207,用于将添加所述冗余包后的所述视频帧生成数据包,并将所述数据包发送给基站。
可选地,所述装置还包括:
编码模块203,用于根据所述数据传输情况,确定编码参数,并依据所述编码参数对采集的所述视频文件的视频帧进行编码。
可选地,所述装置还包括:
采集模块201,用于根据所述数据传输情况,确定视频采集参数,并根据所述视频采集参数采集视频文件。
可选地,所述数据传输情况包括数据传输丢包率Pd、数据重传率Pr、以及所述上行信道的可用信道速率C。
可选地,如图3所示,所述封包模块205包括:
第一确定单元2051,用于根据所述可用信道速率C,确定所述上行信道的最大传输速率Vmax;
添加单元2052,用于根据所述视频帧在相应GOP中的位置,以及所述最大传输速率Vmax对所述视频帧添加冗余包。
可选地,所述添加单元2052包括:
设置子单元,用于根据所述视频帧在相应GOP中的位置,设置所述视频帧的优先级,其中,所述视频帧的优先级按照所述视频帧在所述GOP中从前往后的顺序依次降低;
第一获取子单元,用于获取在所述第一预设时间段内的数据包的平均传输数量q;
确定子单元,用于根据在所述第一预设时间段内的数据包的平均传输数量q、所述数据包的预设传输包头Th、所述最大传输速率Vmax以及所述视频编 码码率Vb,获得平均冗余度S=(Vmax-Vb-q*Th)/Vmax;
添加子单元,用于根据所述视频帧的优先级,在所述平均冗余度S的基础上增大或减小预设值,获得所述视频帧添加的所述冗余包的大小,并将所述冗余包添加给相应的视频帧,其中,所述冗余包的大小随所述优先级的升高而增大。
可选地,当传输给所述基站的所述数据包的失败次数超过预设阈值时,所述装置还包括:
接收模块211,用于接收所述基站反馈的数据接收出错消息,并判断传输失败的所述数据包是否需要重新传输,当需要重新传输时,将传输失败的所述数据包重新传输给所述基站。
可选地,所述数据接收出错消息中携带有传输失败的所述数据包的序号;如图4所示,所述接收模块211包括:
第一获取单元2111,用于根据所述序号,获取传输失败的所述数据包的优先级n和时间戳t0,其中,所述数据包的优先级为所述数据包属于的所述视频帧的优先级;
第二获取单元2112,用于根据所述优先级n和所述时间戳t0,获得传输失败的所述数据包的重传概率其中,t1为当前时刻,Δt为预设最大重传时间间隔,m为预设最低优先级,且n和m均为正整数;
重传单元2113,用于当所述重传概率p超过预设阈值时,将传输失败的所述数据包重新传输给所述基站。
可选地,当在第二预设时间段内,收到的所述数据出错消息的数量超过预设数量时,所述装置还包括:
舍弃模块213,用于将所述数据包中优先级小于预设优先级的数据包舍弃。
可选地,所述编码参数包括视频编码码率Vb和GOP值;
如图5所示,所述编码模块203包括:
第二确定单元2031,用于根据所述数据传输丢包率Pd和所述数据重传率Pr确定所述GOP值;
第三确定单元2032,用于根据所述数据传输丢包率Pd、数据重传率Pr、以及所述可用信道速率C,获得视频编码码率Vb;
编码单元2033,用于根据所述视频编码码率Vb和所述GOP值对所述视频文件的视频帧进行编码。
可选地,所述第二确定单元2031具体用于:
根据所述数据传输丢包率Pd和所述数据重传率Pr,确定第i+1个预设时间段内所述GOP值Gi+1=Gi*θd*2/(Pd+Pr),其中,Gi为第i个预设时间段内所述GOP值,θd为预设丢包阈值,i为正整数。
可选地,所述视频采集参数包括视频分辨率和视频帧率;
如图6所示,所述采集模块201包括:
第四确定单元2011,用于根据所述数据传输丢包率Pd、数据重传率Pr、以及所述可用信道速率C,获得视频编码码率Vb;
采集单元2012,用于根据所述编码码率Vb确定所述视频分辨率和所述视频帧率,并根据所述视频分辨率和所述视频帧率采集所述视频文件。
可选地,所述第三确定单元2032和所述第四确定单元2011均包括:
第二获取子单元,用于获取所述上行信道的除传输所述视频文件的其他业务的最大带宽AS和所需速率To;
第三获取子单元,用于根据所述其他业务的最大带宽AS和所需速率To,以及所述可用信道速率C,获得所述最大传输速率Vmax=min(C-To,AS);
第四获取子单元,用于获取在所述第一预设时间段内的数据包的平均传输数量q;
第五获取子单元,用于根据在所述第一预设时间段内的数据包的平均传输数量q,所述数据包的预设传输包头Th、所述数据传输丢包率Pd、所述数据重传率Pr以及所述最大传输速率Vmax,获得视频编码码率Vb=Vmax*[1-(Pd+Pr)/2]*f-q*Th,其中,f为预设加权系数。
可选地,所述第一确定单元2051包括:
第六获取子单元,用于获取所述上行信道的除传输所述视频文件的其他业务的最大带宽AS和所需速率To;
第七获取子单元,用于根据所述其他业务的最大带宽AS和所需速率To, 以及所述可用信道速率C,获得所述最大传输速率Vmax=min(C-To,AS)。
以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。