CN113612580B - 基于喷泉码编码策略和冗余自适应的屏幕更新传输方法 - Google Patents
基于喷泉码编码策略和冗余自适应的屏幕更新传输方法 Download PDFInfo
- Publication number
- CN113612580B CN113612580B CN202110884643.7A CN202110884643A CN113612580B CN 113612580 B CN113612580 B CN 113612580B CN 202110884643 A CN202110884643 A CN 202110884643A CN 113612580 B CN113612580 B CN 113612580B
- Authority
- CN
- China
- Prior art keywords
- loss
- packet
- source
- coding
- priority
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0009—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明公开了一种基于喷泉码编码策略和冗余自适应的屏幕更新传输方法,在UDP之上分别使用TFRC和喷泉码调整屏幕更新的发送速率和抵抗数据丢失;与现有的将发送速率控制机制与前向纠错技术同UDP结合使用的传输方法不同,本方法不仅能合理地计算冗余量,还能估算封装屏幕更新的数据包丢失后造成的损失,再根据损失值和网络条件决定是否只提供尽力而为的传输服务,或采用某种喷泉码编码策略保护数据包。本发明可满足不同类型屏幕更新差异化的传输需求,实现了桌面即服务模式下屏幕更新传输效率的提升。
Description
技术领域
本发明涉及云计算领域桌面即服务模式下端到端的数据传输方法,具体是一种基于喷泉码编码策略和冗余自适应的屏幕更新传输方法。
背景技术
随着云计算与虚拟化技术的成熟,桌面即服务成为近年来最流行的云服务之一。它通过在云服务器中创建和维护运行传统PC桌面所需的计算和存储
资源并为用户提供虚拟云桌面实现桌面环境与终端设备的解耦。桌面内容的变化由专用协议封装为屏幕更新数据经由端到端连接推送至终端设备,使用户产生使用本地设备的认知。由于计算和存储任务完全由云服务器承担,终端设备的资源与功能可以相对精简,用户对个人桌面的访问不再受时间、空间和设备的约束,灵活性与便捷性大幅提升,这使得桌面即服务在移动办公、教育培训、医疗卫生、金融服务等领域得到广泛应用。
在用户访问虚拟云桌面的过程中,传输基于像素的屏幕更新数据占用的带宽资源最多,它们对用户在桌面即服务中的体验质量影响最大。为了在节省带宽资源的同时保证用户的体验质量,多数桌面即服务解决方案尝试将桌面区分为文本、图像、视频等不同区域并采用启发式的压缩策略压缩不同区域产生的屏幕更新数据,甚至将屏幕更新数据完全作为视频数据进行压缩以最大程度地减少带宽占用并减轻终端设备的计算负担。尽管待传输的屏幕更新数据量有所减少,这种优化方案只能抵抗网络环境中带宽波动,如果屏幕更新丢失或未及时推送给用户,用户在桌面即服务中的体验质量仍将受到明显影响。
桌面即服务解决方案倾向于使用TCP(Transmission Control Protocol传输控制协议)完成屏幕更新的端到端可靠交付,但当屏幕更新被区分为不同类型后,重传所有丢失的屏幕更新显得过于可靠。首先,不同类型的屏幕更新丢失后对用户体验质量的影响不同,被识别为文本或图像的屏幕更新所属的桌面区域刷新率相对较慢,此类屏幕更新的丢失更容易被用户察觉。而被识别为视频的屏幕更新所属的桌面区域刷新率相对较快,用户可能不会察觉此类屏幕更新的丢失。其次,类型为视频的屏幕更新具备一定的丢失容忍度,因为相邻视频帧存在大量帧间冗余,如果非关键帧丢失可通过复制先前帧等方式缓解失真程度,如果关键帧丢失后续视频帧的到达也能使该区域被快速刷新。最后,在丢包率较高的情况下一味地重传丢失的屏幕更新会导致用户无法及时感知桌面内容的变化,当重传的屏幕更新到达终端设备时,它很可能因无法反映用户最新的操作执行结果而失去渲染价值。
为了确保传输及时性,部分桌面即服务解决方案采用UDP(User DatagramProtocol用户数据报协议)进行屏幕更新的端到端交付,然而,UDP既不限制屏幕更新的发送速率又不重传任何丢失的屏幕更新,如果网络处于拥塞状态,单纯使用UDP可能加剧网络的拥塞程度,严重干扰用户体验质量。为了充分利用UDP传输时延短的优势,研究人员将拥塞控制机制和前向纠错技术与UDP结合使用,借助拥塞控制机制,UDP的发送速率将像TCP那样受到限制,而前向纠错技术能够在无需重传的条件下自动恢复丢失数据,有助于提升屏幕更新在高丢包率、长时延网络环境中的传输效率。需要注意的是,前向纠错技术如果使用不当,反而会降低传输效率。作为典型的前向纠错技术,喷泉码能够利用冗余数据自动恢复传输过程中丢失的数据。但作为一种额外的传输开销,冗余数据过多会浪费带宽资源,过少则会导致喷泉码解码失败,无法成功恢复丢失数据。
发明内容
本发明所要解决的技术问题是提供一种基于喷泉码编码策略和冗余自适应的屏幕更新传输方法(Adapting Encoding Strategies and Redundancy of fountain code简称为AESR),以更好地满足桌面即服务模式下屏幕更新的传输需求,提高屏幕更新的端到端传输效率,进而保证用户体验质量。
本发明采用的技术方案是:一种基于喷泉码编码策略和冗余自适应的屏幕更新传输方法,包括以下步骤:
步骤1:在发送方,虚拟云桌面内容变化后生成的基于像素的屏幕更新数据被区分为文本、图像和视频不同类型的帧块,根据帧块的重要程度为其指定优先级,基于优先级分配帧块序号,再将帧块封装为源数据包放入发送缓冲区并分配包序号;按照TFRC给出的发送速率从发送缓冲区中取出源数据包放入RaptorQ编码缓冲区,若编码缓冲区被填满或编码定时器超时,则调用丢包损失估计模块;
步骤2:所述丢包损失估计模块计算编码缓冲区中的每个源数据包丢失后对不同帧块造成的损失,属于高优先级帧块的源数据包丢失后的损失值由对当前所属帧块造成的损失、对后续高优先级帧块造成的损失、对后续低优先级帧块造成的损失和对先前邻近低优先级帧块造成的损失四部分组成;属于低优先级帧块的源数据包丢失后的损失值仅由对当前所属帧块造成的损失组成;计算完毕后调用编码策略决策模块;
步骤3:编码策略决策模块根据当前网络中的丢包率和编码缓冲区中每个源数据包丢失后的损失值采取不同的喷泉码编码策略:若丢包率小于预设值或源数据包丢失后不会造成严重影响,则直接通过UDP传输源数据包至接收方;若启用喷泉码,通过比较不同编码策略对应的丢包损失期望值决定使用哪种编码策略,不同编码策略以不同类型的源数据包为保护对象,受保护的源数据包共同组成一个喷泉码编码块,调用冗余计算模块为编码块计算冗余量;
步骤4:冗余计算模块首先基于传输丢包率和喷泉码解码失败概率计算丢失数据恢复失败概率,通过设置最大可接受的丢失数据恢复失败概率推出满足条件的最小冗余量;然后计算传输编码块中所有源数据包和冗余数据包花费的端到端时延,通过设置端到端时延的上限值推出满足条件的最大冗余量;最后取两个冗余量中的较小值作为编码块的冗余量;
步骤5:在接收方,若源数据包在不受喷泉码保护的情况下丢失,则直接将收到的源数据包提交至TFRC;若丢失的源数据包受喷泉码保护,则尝试通过喷泉码解码进行丢失数据恢复;丢失数据恢复失败时,将失序的源数据包提交至TFRC;TFRC统计丢包信息并反馈给发送方使其降低发送速率,但丢失的源数据包不会被重传。
进一步的,所述步骤1中,将文本、图像帧块定义为H型帧块,并分配高优先级;将视频帧块根据压缩后的结果指定为I型、P型和B型帧块,所述P型帧块的解压依赖于先前的I型或P型帧块,B型帧块的解压依赖于先前和随后的I型或P型帧块,将I型和P型帧块分配高优先级,将B型帧块分配低优先级;帧块序号只针对高优先级帧块分配,源数据包从所属帧块处继承类型和优先级,所有源数据包均会被分配包序号。
更进一步的,所述步骤2中源数据包丢失后对当前所属帧块造成的损失Losscur根据以下公式计算:
其中,PktSize(icur)表示包序号为icur的源数据包的大小,bcur表示源数据包icur所属帧块的序号,FbSize(bcur)表示帧块bcur的大小;
高优先级源数据包丢失后对后续高优先级帧块造成的损失Losslater,high由以下公式计算:
其中,b表示后续高优先级帧块的序号,Thigh-priority和Tlow-priority分别为高优先级和低优先级帧块发送时间间隔的指数加权滑动平均值;
高优先级源数据包丢失后对后续低优先级帧块造成的损失Losslater,low基于以下公式计算:
式中,C(b)表示帧块序号为b-1和b的高优先级帧块之间低优先级帧块的数量;
高优先级源数据包丢失后对先前邻近低优先级帧块造成的损失Lossprev,low根据以下公式计算:
式中,C(bcur)表示帧块序号为bcur-1和bcur的高优先级帧块之间低优先级帧块的数量;
最终,总损失值Losstotal由以下公式计算:
其中,bmax为当前可统计到的帧块序号最大值。
更进一步的,所述步骤3中的喷泉码编码策略包括:1)直接通过UDP传输所有源数据包、2)保护H型源数据包、3)保护H型和I型源数据包、4)保护所有高优先级源数据包、5)保护所有源数据包;假设采用第一种编码策略,任何源数据包均有可能在传输过程中被丢失,令p和pt分别表示丢包率和源数据包的类型,第一种编码策略对应的丢包损失期望值E(Losstotal_s1)为:
若采用第二种编码策略,发送方期望所有的H型源数据包在喷泉码的保护下均不会被丢失,则对应的丢包损失期望值E(Losstotal_s2)为:
是否使用喷泉码保护H型源数据包取决于E(Losstotal_s1)和E(Losstotal_s2)的大小;引入参数η表示编码策略调整阈值,当η取值小于设定值时,若有E(Losstotal_s1)-E(Losstotal_s1)≤η,说明使用喷泉码保护H型源数据包不会显著降低丢包损失期望值,则选择第一种编码策略;若有E(Losstotal_s1)-E(Losstotal_s1)>η说明喷泉码的保护对H型源数据包而言是必要的,故选择第二种编码策略;依次计算并比较五种编码策略对应的丢包损失期望值,找到最适用于当前网络条件的编码策略。
更进一步的,所述步骤4中传输丢包率Ptrans的计算公式如下:
其中,k为编码块中源数据包的数量,k'为生成的冗余数据包数量,l为传输过程中丢失的数据包数量,p为丢包率;
设接收方收到r个数据包,喷泉码RaptorQ的解码失败概率Pfail为:
丢失数据恢复失败概率Ptotal=Ptrans×Pfail,丢失数据恢复期望值E(Ptotal)为:
引入参数δ表示最大可接受的丢失数据恢复失败概率,令E(Ptotal)≤δ,推出满足该条件的最小冗余量;传输编码块中所有源数据包和冗余数据包花费的端到端时延TE由以下公式计算:
式中,τ表示编码后数据包的大小,B表示可用带宽,RTT表示往返时延;令TE不超过预置的端到端时延上限值T,推出满足该条件的最大冗余量。
与现有技术相比,本发明的有益效果是:
1)本发明具备满足不同类型屏幕更新差异化传输需求的能力,与仅提供可靠或及时传输服务的TCP或UDP相比能更好地权衡传输可靠性与及时性;2)通过自适应地切换喷泉码编码策略可实现屏幕更新数据的动态传输保护,在丢包率较低或丢包后影响较小的情况下不启用喷泉码有助于降低传输开销;3)冗余数据包的添加不以追求解码成功为唯一目标,若冗余数据包过多影响了屏幕更新的及时交付则会适当减少冗余量。
附图说明
图1为本发明方法AESR的整体架构图。
图2为针对不同优先级帧块进行序号分配的示意图。
图3为使用喷泉码保护所有源数据包和采用动态编码策略两种情况下确定编码符号ID的时间点示意图。
图4为多用户共享单瓶颈链路的仿真拓扑图。
图5为瓶颈链路带宽、单向时延和丢包率为10Mbps、30ms和1%时的显示质量与源数据包端到端时延小于t的概率图。
图6为瓶颈链路带宽、单向时延和丢包率为10Mbps、90ms和1%时的显示质量与源数据包端到端时延小于t的概率图。
图7为瓶颈链路带宽、单向时延和丢包率为25Mbps、30ms和10%时的显示质量与源数据包端到端时延小于t的概率图。
图8为瓶颈链路带宽、单向时延和丢包率为25Mbps、90ms和10%时的显示质量与源数据包端到端时延小于t的概率图。
图9为瓶颈链路单向时延和丢包率为30ms和1%时不同带宽条件下的传输开销图。
图10为瓶颈链路单向时延和丢包率为90ms和1%时不同带宽条件下的传输开销图。
图11为瓶颈链路带宽和单向时延为25Mbps和30ms时不同丢包率条件下的传输开销图。
图12为瓶颈链路带宽和单向时延为25Mbps和90ms时不同丢包率条件下的传输开销图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细说明。
本发明方法的整体架构如图1所示,方法主要由丢包损失估计模块、编码策略决策模块和冗余计算模块三部分组成。
步骤1:在发送方,虚拟云桌面内容变化后生成的基于像素的屏幕更新数据被区分为文本、图像和视频不同类型的帧块,根据帧块的重要程度为其指定优先级,基于优先级分配帧块序号,再将帧块封装为源数据包放入发送缓冲区并分配包序号;按照TFRC(TCP-Friendly Rate Control TCP友好速率控制算法)给出的发送速率从发送缓冲区中取出源数据包放入RaptorQ编码缓冲区,若编码缓冲区被填满或编码定时器超时,则调用丢包损失估计模块。
若将桌面上的文本视为图像的一种,桌面上低刷新率区域生成的文本和图像帧块可被归为同一类,它们都是丢失后容易被用户察觉的帧块,此类帧块的类型定义为H型。假设每个H型帧块利用图像压缩算法(如JPEG)进行单独压缩,从解压的角度看,不同H型帧块之间不存在依赖关系。但从用户体验质量的角度看,H型帧块的丢失会对附近帧块的呈现效果产生负面影响,因为帧块丢失后桌面上对应区域呈现的仍然是先前帧块的渲染结果,同时由于该区域刷新率较低,用户会在视觉上感受到违和感。桌面上高刷新率区域生成的视频帧块利用视频压缩算法(如H.264)进行压缩,根据压缩结果可将视频帧块的类型定义为I型、P型和B型。在压缩过程中,I型视频帧块被单独编码,P型视频帧块依赖于先前的I型或P型视频帧块进行编码,B型视频帧块依赖于先前和随后的I型或P型视频帧块进行编码,因此在解码时不同类型的视频帧块之间存在依赖关系,这种依赖关系使I型和P型视频帧块对用户体验质量而言更重要。AESR将H型、I型和P型帧块视为高优先级帧块并分配帧块序号,再将它们封装成源数据包并分配包序号,B型视频帧块则被视为低优先级帧块,AESR不为其分配帧块序号但会为与其对应的源数据包分配包序号,源数据包的类型和优先级与所属帧块保持一致。
步骤2:丢包损失估计模块计算编码缓冲区中的每个源数据包丢失后对不同帧块造成的损失,属于高优先级帧块的源数据包丢失后的损失值由对当前所属帧块造成的损失、对后续高优先级帧块造成的损失、对后续低优先级帧块造成的损失和对先前邻近低优先级帧块造成的损失四部分组成;属于低优先级帧块的源数据包丢失后的损失值仅由对当前所属帧块造成的损失组成;计算完毕后调用编码策略决策模块。
源数据包丢失后对当前所属帧块造成的损失Losscur根据以下公式计算:
其中,PktSize(icur)表示包序号为icur的源数据包的大小,bcur表示源数据包icur所属帧块的序号,FbSize(bcur)表示帧块bcur的大小。
计算Losscur时参考了桌面即服务中的性能评价指标显示质量,它通过计算受限网络条件下和理想网络条件下接收到的屏幕更新数据量之比反映用户体验质量。封装屏幕更新的源数据包越大,其丢失后对所属帧块造成的损失越大,用户体验质量受到的影响越大。
高优先级源数据包丢失后对后续高优先级帧块造成的损失Losslater,high由以下公式计算:
其中b表示后续高优先级帧块的序号,Thigh-priority和Tlow-priority分别为高优先级和低优先级帧块发送时间间隔的指数加权滑动平均值。
在Losscur一定的情况下,Losslater,high与当前桌面上不同优先级帧块所属区域的刷新率以及后续高优先级帧块和发生丢包的高优先级帧块之间的距离有关。Thigh-priority越大,当前高优先级帧块的发送速度越慢,用户更容易感知到丢包的发生,故Losslater,high越大。Tlow-priority越小,当前低优先级帧块的发送速度越快,如果生成的低优先级帧块与发生丢包的高优先级帧块之间存在解码依赖关系,必然会引起一定程度的失真。如果不存在解码依赖关系,当网络条件不理想时低优先级帧块发送速度的加快会占用高优先级帧块的传输资源,进而对用户QoE产生负面影响,故Losslater,high越大。如果后续高优先级帧块与发生丢包的高优先级帧块之间的距离越近,其受丢包的影响越大,故Losslater,high越大。
高优先级源数据包丢失后对后续低优先级帧块造成的损失Losslater,low基于以下公式计算:
式中,C(b)表示帧块序号为b-1和b的高优先级帧块之间低优先级帧块的数量。
Losslater,low由与低优先级帧块相邻的两个高优先级帧块的损失值决定,计算时将相邻两个高优先级帧块之间所有的低优先级帧块视为一个整体,如果低优先级帧块与发生丢包的高优先级帧块相邻,则使用公式(3a)计算损失值;如果低优先帧块位于后续其他高优先级帧块之间,则使用公式(3b)计算损失值。
高优先级源数据包丢失后对先前邻近低优先级帧块造成的损失Lossprev,low根据以下公式计算:
式中,C(bcur)表示帧块序号为bcur-1和bcur的高优先级帧块之间低优先级帧块的数量。如图2所示,只有高优先级帧块有序号,低优先级帧块没有序号。
Lossprev,low的计算公式由公式(3b)演变而来,如果先前邻近的低优先级帧块与发生丢包的高优先级帧块之间存在解码依赖关系,则会引起失真。即使二者之间不存在解码依赖关系,由于位置相近,丢包也会影响低优先级帧块的呈现效果,因此有必要计算丢包对先前邻近低优先级帧块造成的损失。
最终,总损失值Losstotal由以下公式计算:
其中,bmax为当前可统计到的帧块序号最大值。
步骤3:编码策略决策模块根据当前网络中的丢包率和编码缓冲区中每个源数据包丢失后的损失值采取不同的喷泉码编码策略:若丢包率小于预设值或源数据包丢失后不会造成严重影响,则直接通过UDP传输源数据包至接收方;若启用喷泉码,通过比较不同编码策略对应的丢包损失期望值决定使用哪种编码策略,不同编码策略以不同类型的源数据包为保护对象,受保护的源数据包共同组成一个喷泉码编码块,调用冗余计算模块为编码块计算冗余量。
喷泉码编码策略有以下五种:1)直接通过UDP传输所有源数据包、2)保护H型源数据包、3)保护H型和I型源数据包、4)保护所有高优先级源数据包、5)保护所有源数据包。
假设采用第一种编码策略,任何源数据包均有可能在传输过程中被丢失,令p和pt分别表示丢包率和源数据包的类型,第一种编码策略对应的丢包损失期望值E(Losstotal_s1)为:
若采用第二种编码策略,发送方期望所有的H型源数据包在喷泉码的保护下均不会被丢失,则对应的丢包损失期望值E(Losstotal_s2)为:
是否使用喷泉码保护H型源数据包取决于E(Losstotal_s1)和E(Losstotal_s2)的大小;引入参数η表示编码策略调整阈值,当η取较小值时若有E(Losstotal_s1)-E(Losstotal_s1)≤η说明使用喷泉码保护H型源数据包不会显著降低丢包损失期望值,故第一种编码策略更优;若有E(Losstotal_s1)-E(Losstotal_s1)>η说明喷泉码的保护对H型源数据包而言是必要的,故第二种编码策略更优;依次计算并比较五种编码策略对应的丢包损失期望值即可找到最适用于当前网络条件的编码策略。
动态编码策略为喷泉码的编解码增加了复杂度,因为在确定编码策略之前编码块中包含哪些源数据包是未知的,这将引出如何在发送方与接收方之间同步编码符号ID的问题。喷泉码解码时需要知道源数据包在编码块中的位置以判断编码块中哪些源数据包发生丢失,该信息通过编码符号ID进行指示,而使用包序号无法达到这一目的,因为当仅使用喷泉码保护部分源数据包时,包序号必然是不连续的。
图3展示了AESR传输屏幕更新的过程中,使用喷泉码保护所有源数据包和采用动态编码策略两种方式下,何时能够确定编码符号ID。若使用喷泉码保护所有源数据包,在t1时刻即可确定编码符号ID,此时编码块中的源数据包即将开始发送。当采用动态编码策略时,只有确定了编码策略以后才能分配编码符号ID,这对应t4时刻,此时编码块中的源数据包已经发送完毕,而完全依靠冗余数据包传递源数据包的编码符号ID是低效的。为解决此问题,AESR使用一个32位的变量来指示编码符号ID。在发送源数据包的过程中,将每个源数据包从第二个至第五个编码策略所对应的4个编码符号ID都计算出来并分别放入该32位变量的4个8位当中。在发送冗余数据包时,该变量的32位比特中只有与编码策略相对应的8位被赋值,其余位则置0。于是,接收方便能根据冗余数据包中指示编码符号ID的32位变量快速知晓发送方采用了哪种编码策略,同时还能准确解析出已接收源数据包的编码符号ID。
步骤4:冗余计算模块首先基于传输丢包率和喷泉码解码失败概率计算丢失数据恢复失败概率,通过设置最大可接受的丢失数据恢复失败概率推出满足条件的最小冗余量;然后计算传输编码块中所有源数据包和冗余数据包花费的端到端时延,通过设置端到端时延的上限值推出满足条件的最大冗余量;最后取两个冗余量中的较小值作为编码块的冗余量。
传输丢包率Ptrans的计算公式如下:
其中,k为编码块中源数据包的数量,k'为生成的冗余数据包数量,l为传输过程中丢失的数据包数量,p为丢包率。
设接收方收到r个数据包,喷泉码RaptorQ的解码失败概率Pfail为:
丢失数据恢复失败概率Ptotal=Ptrans×Pfail,其期望值E(Ptotal)为:
引入参数δ表示最大可接受的丢失数据恢复失败概率,令E(Ptotal)≤δ可推出满足该条件的最小冗余量。传输编码块中所有源数据包和冗余数据包花费的端到端时延TE由以下公式计算:
式中τ表示编码后数据包的大小,B表示可用带宽,RTT表示往返时延。令TE不超过预置的端到端时延上限值T可推出满足该条件的最大冗余量。
生成的冗余数据包有两个作用,一是对传输过程中丢失的数据包进行补充,二是替换喷泉码解码失败时使用的编码符号。在不使用自动重传请求技术的情况下,只有令接收方反馈解码成功信息,发送方才能保证完全可靠性,但这种方式在高丢包率条件下会增加屏幕更新交付的端到端时延。因此AESR只提供部分可靠性保证,在不影响传输及时性的前提下,它会争取将丢失数据恢复失败概率控制在一定范围内。对接收方来说,存在以下两种情况导致丢失数据恢复失败,一是所生成的冗余数据包不足以补充丢失的数据包,二是在收集到足够多冗余数据包的情况下喷泉码解码失败。丢失数据恢复失败概率Ptotal的计算同时考虑了以上两种情况,通过引入最大可接受的丢失数据恢复失败概率δ,理论上只要生成的冗余数据包足够多,E(Ptotal)就会小于δ,但为了保证实时性,有必要对传输源数据包和冗余数据包花费的端到端时延TE进行限制。TE由传输时延和传播时延两部分组成,由于比特的传输与传播是同时进行的,因此TE等于将所有比特发送出去的传输时延和最后一个比特的传播时延之和。若以包/秒为单位估计可用带宽,公式(11)中τ的取值不影响TE的计算,通过为TE设置一个上限值可达到限制冗余数据包生成数量的目的。
步骤5:在接收方,若源数据包在不受喷泉码保护的情况下丢失,则直接将收到的源数据包提交至TFRC;若丢失的源数据包受喷泉码保护,则尝试通过喷泉码解码进行丢失数据恢复;丢失数据恢复失败时,将失序的源数据包提交至TFRC;TFRC统计丢包信息并反馈给发送方使其降低发送速率,但丢失的源数据包不会被重传。
在冗余数据包到达前,如果源数据包未发生丢失,它们将被按序提交至TFRC。当接收到冗余数据包时,接收方将通过编码策略知晓编码块中包含哪些源数据包。如果这些源数据包均被正确接收,接收方将丢弃冗余数据包并清空解码缓冲区。如果源数据包丢失,只有收集到足够多的冗余数据包才会启动RaptorQ解码过程,一旦成功恢复出丢失的源数据包,接收方会继续向TFRC按序交付源数据包。如果没有成功恢复出丢失的源数据包,AESR会将所有尚未交付的源数据包提交给TFRC并清空解码缓冲区,以尽快将丢包事件通知给发送方,使其降低屏幕更新的发送速率。AESR不重传丢失的源数据包,而是通过保证屏幕更新传输及时性的方式,加快受丢包影响的桌面区域的刷新速度。
AESR的性能评测在NS-3中进行,仿真实验拓扑图如图4所示,其中包含5对发送方与接收方,它们通过一条非瓶颈链路与邻近的路由器相连,非瓶颈链路的带宽、丢包率和单向时延设置为1Gbps、0%和1ms。两个路由器由一条瓶颈链路相连,路由器的缓冲区大小设置为瓶颈链路的带宽时延积。为了探究AESR在不同网络条件下的性能,瓶颈链路的带宽在1Mbps、2Mbps、5Mbps、10Mbps、25Mbps、50Mbps和100Mbps中选择,丢包率在0.1%、0.3%、0.5%、1%、3%、5%和10%中变化,单向时延设置为30ms和90ms。为构建屏幕更新数据的流量模型,我们在使用SPICE协议创建的虚拟云桌面中播放两个分辨率为720×432的视频片段:big_buck_bunny_scene(v1)和highway(v2)并提取了数据包跟踪文件。同时,我们在NS-3中开发了新的应用模块,它可以按照跟踪文件模拟源数据包的生成。表1列出了实验中AESR的参数设置情况,与AESR进行性能对比的传输方法有CRDA、HARQ、UDP(with TFRC)和TCP Cubic,评价指标包括显示质量、源数据包端到端时延小于t的概率和传输开销。
表1 AESR参数设置
图5和图6是瓶颈链路带宽和丢包率为10Mbps和1%时的显示质量与源数据包端到端时延小于t=0.15s的概率图。其中横坐标表示源数据包端到端时延小于0.15s的概率,纵坐标表示显示质量,以图中绘制的一个正立三角形坐标点为例,它反映了使用一条AESR流传输v2对应的屏幕更新得到的源数据包端到端时延小于0.15s的概率及显示质量,点的位置越靠近右上方说明传输方法的传输效率越高,性能越好。实验中,我们将跟踪文件中记录的屏幕更新数据总量作为理想网络条件下接收方收到的屏幕更新数据量。当瓶颈链路的单向时延为30ms时,如图5所示,AESR的显示质量最高且实时性能与CRDA和UDP(with TFRC)接近,CRDA的显示质量略低于AESR而UDP(with TFRC)未能达到较高的显示质量。HARQ无法达到AESR、CRDA和UDP(with TFRC)的性能水平,TCP Cubic的传输效率最差。当瓶颈链路的单向时延为90ms时,如图6所示,虽然AESR、CRDA和UDP(with TFRC)三种传输方法的实时性较好,但受长时延影响,它们的显示质量低于HARQ。由于HARQ倾向于在长时延条件下保持高冗余量,进而会生成更多的冗余数据包,这在带宽充足时有助于保证足够高的显示质量,但也将以牺牲及时性为代价。TCP Cubic的传输效率仍是最低的,它难以满足屏幕更新对传输可靠性和及时性的双重需求。
图7和图8是瓶颈链路带宽和丢包率为25Mbps和10%时的显示质量与源数据包端到端时延小于0.15s的概率图。当瓶颈链路的单向时延为30ms时,如图7所示,AESR的显示质量仍是所有传输方法中最高的,CRDA、HARQ和UDP(with TFRC)的显示质量下降至相同水平,TCP Cubic的显示质量最差。就及时性而言,AESR、CRDA和UDP(with TFRC)所传输的源数据包端到端时延比较小,HARQ和TCP Cubic所传输的源数据包端到端时延很大,二者已无法实现屏幕更新的及时交付。当瓶颈链路的单向时延为90ms时,如图8所示,传输效率最高的是AESR,只有它兼顾了屏幕更新传输的可靠性与实时性,CRDA和UDP(with TFRC)的传输效率仍几乎相同,但它们与AESR在显示质量上存在差距。虽然HARQ的显示质量高于传输效率最低的TCP Cubic,但HARQ过度生成冗余数据包的行为导致其及时性不如TCP Cubic。
图9和图10是瓶颈链路丢包率为1%时,不同带宽和单向时延条件下的传输开销图。传输开销由为恢复丢失数据所额外传输的数据量与传输数据总量的比值计算,由于UDP(with TFRC)的传输开销为0,因此图中仅有AESR、CRDA、HARQ和TCP Cubic的传输开销。当瓶颈链路的单向时延为30ms时,如图9所示,AESR在窄带宽条件下会适当减少冗余数据包的生成数量,因此其传输开销稍低。当带宽增加后,AESR的传输开销先略微增加后保持稳定,由于它的冗余数据生成量受到限制,即使带宽资源增加也不会过度生成冗余数据包。CRDA在窄带宽条件下的传输开销几乎为0,因为它难以收集到足够多的源数据包来启动编码过程。带宽增加后,由于源数据包的发送速率变快,它将启动编码过程生成冗余数据包,因此传输开销逐渐变大。HARQ在窄带宽条件下的传输开销更大,因为此时的丢失数据恢复失败概率更大,虽然在带宽增加后HARQ的传输开销有所减少,但由于HARQ的显示质量和及时性不如AESR和CRDA,说明其冗余添加量不够合理。TCP Cubic在不同带宽条件下具有相似的传输开销,虽然传输开销很低,但TCP Cubic进行丢失数据恢复的时间开销很高,使其难以达到理想的传输效率。
当瓶颈链路的单向时延为90ms时,如图10所示,因单向时延的增加,AESR在高带宽条件下的传输开销略有下降以进一步保证传输实时性。HARQ在高带宽条件下的传输开销增加,因为时延越长,HARQ调整冗余量的频率越低,一旦设置高冗余量保持的时间会变长,这为HARQ带来了收益,虽然它的及时性不如AESR、CRDA等传输方法,但其显示质量在带宽充足时获得了明显优势。TCP Cubic的传输开销随带宽的增加在一定范围内波动,但与低单向时延条件下相比未发生明显变化。CRDA的传输开销因单向时延的增加呈现出完全不同的变化趋势,无论带宽充足与否,CRDA的传输开销始终很低,因为源数据包数量不足难以达到启动编码的条件,CRDA只能生成少量冗余数据包。
图11和图12是瓶颈链路带宽为25Mbps时,不同丢包率和单向时延条件下的传输开销图。当瓶颈链路的单向时延为30ms时,如图11所示,随着丢包率的增加,AESR和HARQ的传输开销逐渐增大,说明它们会生成更多的冗余数据包来抵抗丢包,但更大的传输开销并未给HARQ带来任何收益,反而导致其传输效率低于AESR。CRDA在丢包率较低时传输开销较大,这是因为源数据包的发送速率较快。丢包率的增加将使源数据包的发送速率降低,于是CRDA的传输开销也逐渐减小。当丢包率为10%时,AESR的显示质量远高于CRDA,而实时性也与CRDA十分接近,证明了AESR采用的动态编码策略和冗余计算方式的有效性。TCP Cubic的传输开销随丢包率的增加先减小后变大,因为在低丢包率条件下,5条TCP Cubic流均以较快的速率发送源数据包,最终导致拥塞丢包发生,所以TCP Cubic的传输开销稍高一些。而丢包率的增加限制了TCP Cubic的发送速率,于是因拥塞而丢失的源数据包变少,故传输开销出现下降。当丢包率进一步升高,丢失的源数据包数量再次上升,致使TCP Cubic的传输开销又开始增加。
当瓶颈链路的单向时延为90ms时,如图12所示,所有传输方法仍保持着相同的传输开销变化趋势。AESR的传输开销因单向时延的增加而减小,这导致了AESR显示质量的下降,但它能够兼顾可靠性与实时性。当丢包率较低时,AESR与CRDA的传输效率是相似的,但CRDA的传输开销却显著高于AESR。随着丢包率的增加,CRDA的传输开销下降速度更快,因此丢包率增加对其传输效率产生的影响更为严重。当丢包率上升至中等程度时,HARQ传输开销的增加使其获得了高于AESR的显示质量,但当丢包率较高时,HARQ在显示质量方面的优势因冗余量过高而难以保持。TCP Cubic的传输开销并未因单向时延的增加发生明显变化,说明决定其传输开销大小的关键因素只有丢包率。
Claims (3)
1.一种基于喷泉码编码策略和冗余自适应的屏幕更新传输方法,其特征在于,包括以下步骤:
步骤1:在发送方,虚拟云桌面内容变化后生成的基于像素的屏幕更新数据被区分为文本、图像和视频不同类型的帧块,根据帧块的重要程度为其指定优先级,基于优先级分配帧块序号,再将帧块封装为源数据包放入发送缓冲区并分配包序号;按照TFRC给出的发送速率从发送缓冲区中取出源数据包放入RaptorQ编码缓冲区,若编码缓冲区被填满或编码定时器超时,则调用丢包损失估计模块;
将文本、图像帧块定义为H型帧块,并分配高优先级;将视频帧块根据压缩后的结果指定为I型、P型和B型帧块;
步骤2:所述丢包损失估计模块计算编码缓冲区中的每个源数据包丢失后对不同帧块造成的损失,属于高优先级帧块的源数据包丢失后的损失值由对当前所属帧块造成的损失、对后续高优先级帧块造成的损失、对后续低优先级帧块造成的损失和对先前邻近低优先级帧块造成的损失四部分组成;属于低优先级帧块的源数据包丢失后的损失值仅由对当前所属帧块造成的损失组成;计算完毕后调用编码策略决策模块;
步骤3:编码策略决策模块根据当前网络中的丢包率和编码缓冲区中每个源数据包丢失后的损失值采取不同的喷泉码编码策略:若丢包率小于预设值或源数据包丢失后不会造成严重影响,则直接通过UDP传输源数据包至接收方;若启用喷泉码,通过比较不同编码策略对应的丢包损失期望值决定使用哪种编码策略,不同编码策略以不同类型的源数据包为保护对象,受保护的源数据包共同组成一个喷泉码编码块,调用冗余计算模块为编码块计算冗余量;
步骤4:冗余计算模块首先基于传输丢包率和喷泉码解码失败概率计算丢失数据恢复失败概率,通过设置最大可接受的丢失数据恢复失败概率推出满足条件的最小冗余量;然后计算传输编码块中所有源数据包和冗余数据包花费的端到端时延,通过设置端到端时延的上限值推出满足条件的最大冗余量;最后取两个冗余量中的较小值作为编码块的冗余量;
步骤5:在接收方,若源数据包在不受喷泉码保护的情况下丢失,则直接将收到的源数据包提交至TFRC;若丢失的源数据包受喷泉码保护,则尝试通过喷泉码解码进行丢失数据恢复;丢失数据恢复失败时,将失序的源数据包提交至TFRC;TFRC统计丢包信息并反馈给发送方使其降低发送速率,但丢失的源数据包不会被重传;
所述步骤2中源数据包丢失后对当前所属帧块造成的损失Losscur根据以下公式计算:
其中,PktSize(icur)表示包序号为icur的源数据包的大小,bcur表示源数据包icur所属帧块的序号,FbSize(bcur)表示帧块bcur的大小;
高优先级源数据包丢失后对后续高优先级帧块造成的损失Losslater,high由以下公式计算:
其中,b表示后续高优先级帧块的序号,Thigh-priority和Tlow-priority分别为高优先级和低优先级帧块发送时间间隔的指数加权滑动平均值;
高优先级源数据包丢失后对后续低优先级帧块造成的损失Losslater,low基于以下公式计算:
式中,C(b)表示帧块序号为b-1和b的高优先级帧块之间低优先级帧块的数量;
高优先级源数据包丢失后对先前邻近低优先级帧块造成的损失Lossprev,low根据以下公式计算:
式中,C(bcur)表示帧块序号为bcur-1和bcur的高优先级帧块之间低优先级帧块的数量;
最终,总损失值Losstotal由以下公式计算:
其中,bmax为当前可统计到的帧块序号最大值;
所述步骤3中的喷泉码编码策略包括:1)直接通过UDP传输所有源数据包、2)保护H型源数据包、3)保护H型和I型源数据包、4)保护所有高优先级源数据包、5)保护所有源数据包;假设采用第一种编码策略,任何源数据包均有可能在传输过程中被丢失,令p和pt分别表示丢包率和源数据包的类型,第一种编码策略对应的丢包损失期望值E(Losstotal_s1)为:
若采用第二种编码策略,发送方期望所有的H型源数据包在喷泉码的保护下均不会被丢失,则对应的丢包损失期望值E(Losstotal_s2)为:
是否使用喷泉码保护H型源数据包取决于E(Losstotal_s1)和E(Losstotal_s2)的大小;引入参数η表示编码策略调整阈值,当η取值小于设定值时,若有E(Losstotal_s1)-E(Losstotal_s1)≤η,说明使用喷泉码保护H型源数据包不会显著降低丢包损失期望值,则选择第一种编码策略;若有E(Losstotal_s1)-E(Losstotal_s1)>η说明喷泉码的保护对H型源数据包而言是必要的,故选择第二种编码策略;依次计算并比较五种编码策略对应的丢包损失期望值,找到最适用于当前网络条件的编码策略。
2.根据权利要求1所述的基于喷泉码编码策略和冗余自适应的屏幕更新传输方法,其特征在于,所述步骤1中,P型帧块的解压依赖于先前的I型或P型帧块,B型帧块的解压依赖于先前和随后的I型或P型帧块,将I型和P型帧块分配高优先级,将B型帧块分配低优先级;帧块序号只针对高优先级帧块分配,源数据包从所属帧块处继承类型和优先级,所有源数据包均会被分配包序号。
3.根据权利要求1所述的一种基于喷泉码编码策略和冗余自适应的屏幕更新传输方法,其特征在于,所述步骤4中传输丢包率Ptrans的计算公式如下:
其中,k为编码块中源数据包的数量,k'为生成的冗余数据包数量,l为传输过程中丢失的数据包数量,p为丢包率;
设接收方收到r个数据包,喷泉码RaptorQ的解码失败概率Pfail为:
丢失数据恢复失败概率Ptotal=Ptrans×Pfail,丢失数据恢复期望值E(Ptotal)为:
引入参数δ表示最大可接受的丢失数据恢复失败概率,令E(Ptotal)≤δ,推出满足该条件的最小冗余量;传输编码块中所有源数据包和冗余数据包花费的端到端时延TE由以下公式计算:
式中,τ表示编码后数据包的大小,B表示可用带宽,RTT表示往返时延;令TE不超过预置的端到端时延上限值T,推出满足该条件的最大冗余量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110884643.7A CN113612580B (zh) | 2021-08-03 | 2021-08-03 | 基于喷泉码编码策略和冗余自适应的屏幕更新传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110884643.7A CN113612580B (zh) | 2021-08-03 | 2021-08-03 | 基于喷泉码编码策略和冗余自适应的屏幕更新传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113612580A CN113612580A (zh) | 2021-11-05 |
CN113612580B true CN113612580B (zh) | 2022-05-17 |
Family
ID=78306592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110884643.7A Active CN113612580B (zh) | 2021-08-03 | 2021-08-03 | 基于喷泉码编码策略和冗余自适应的屏幕更新传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113612580B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584257B (zh) * | 2022-01-26 | 2024-02-13 | 百果园技术(新加坡)有限公司 | 一种基于前向纠错编码的冗余分配方法及装置 |
CN115134307B (zh) * | 2022-06-27 | 2024-01-26 | 长沙理工大学 | 云计算中基于分组丢失率编码的负载均衡方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902296A (zh) * | 2010-06-23 | 2010-12-01 | 中兴通讯股份有限公司 | 一种喷泉码的编解码方法和装置 |
CN103051981A (zh) * | 2012-11-16 | 2013-04-17 | 北京邮电大学 | 用于视频多跳传输的自适应帧长计算方法 |
CN106100804A (zh) * | 2016-05-23 | 2016-11-09 | 南京航空航天大学 | 一种基于选择重传arq的数字喷泉码传输方法 |
CN108667557A (zh) * | 2017-03-29 | 2018-10-16 | 上海交通大学 | 一种基于媒体内容的自适应fec编码矩阵设计方法 |
CN111314022A (zh) * | 2020-02-12 | 2020-06-19 | 四川大学 | 一种基于强化学习和喷泉码的屏幕更新传输方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051424B (zh) * | 2013-01-07 | 2015-11-18 | 北京理工大学 | 一种不等错误保护喷泉码的无线传输方法 |
EP2827522A1 (en) * | 2013-07-15 | 2015-01-21 | Alcatel Lucent | Method for a first network node for transmitting or retransmitting data to a second network node and first network node thereof and method for a second network node for receiving data transmitted or retransmitted from a first network node and second network node thereof |
WO2019011219A1 (zh) * | 2017-07-11 | 2019-01-17 | 上海交通大学 | 基于媒体内容的自适应系统码fec编译码方法、装置、系统及介质 |
-
2021
- 2021-08-03 CN CN202110884643.7A patent/CN113612580B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902296A (zh) * | 2010-06-23 | 2010-12-01 | 中兴通讯股份有限公司 | 一种喷泉码的编解码方法和装置 |
CN103051981A (zh) * | 2012-11-16 | 2013-04-17 | 北京邮电大学 | 用于视频多跳传输的自适应帧长计算方法 |
CN106100804A (zh) * | 2016-05-23 | 2016-11-09 | 南京航空航天大学 | 一种基于选择重传arq的数字喷泉码传输方法 |
CN108667557A (zh) * | 2017-03-29 | 2018-10-16 | 上海交通大学 | 一种基于媒体内容的自适应fec编码矩阵设计方法 |
CN111314022A (zh) * | 2020-02-12 | 2020-06-19 | 四川大学 | 一种基于强化学习和喷泉码的屏幕更新传输方法 |
Non-Patent Citations (2)
Title |
---|
IRTS:An Intelligent and Reliable Transmission Scheme for Screen Updates Delivery in Daas;Hongdi Zheng,Junfeng Wang,Jianping Zhang,Ruirui Li;《ACM Transactions on Multimedia Computing,Communications,and Applications》;20210731;全文 * |
流媒体传输系统中数字喷泉码的研究与应用;朱煜青;《中国优秀硕士学位论文全文数据库》;20180430;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113612580A (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106341738B (zh) | 流媒体网络传输的带宽计算方法、服务器端和系统 | |
US10735029B2 (en) | Method and apparatus for encoding packets using video data redundancy control information | |
WO2020192258A1 (zh) | 一种数据传输方法及装置 | |
CN113612580B (zh) | 基于喷泉码编码策略和冗余自适应的屏幕更新传输方法 | |
US7454527B2 (en) | Architecture and related methods for streaming media content through heterogeneous networks | |
WO2022247550A1 (zh) | 数据重传处理方法、装置、计算机设备和存储介质 | |
EP2090038B1 (en) | Method, device and software application for scheduling the transmission of data system packets | |
CN111314022B (zh) | 一种基于强化学习和喷泉码的屏幕更新传输方法 | |
CN102209079A (zh) | 一种基于tcp协议的自适应网络控制传输方法和系统 | |
CN103580773A (zh) | 数据帧的传输方法及装置 | |
CN102088640A (zh) | 基于视频内容的自适应选择重传方法 | |
Goel et al. | Low-latency adaptive streaming over TCP | |
US20100220592A1 (en) | Layered internet video engineering | |
Rao et al. | Cross layer protocols for multimedia transmission in wireless networks | |
Ahmed et al. | A lightweight reliability mechanism proposed for datagram congestion control protocol over wireless multimedia sensor networks | |
CN111385055B (zh) | 一种数据传输方法和装置 | |
CN113747102A (zh) | 视频通话处理方法、装置、设备及存储介质 | |
Kulkarni et al. | An implementation of network coding with association policies in heterogeneous networks | |
Wu et al. | An enhanced structure of layered forward error correction and interleaving for scalable video coding in wireless video delivery | |
Zhou et al. | Deadline and priority-aware congestion control for delay-sensitive multimedia streaming | |
CN116318545A (zh) | 视频数据传输方法、装置、设备及存储介质 | |
Kritzner et al. | Priority based packet scheduling with tunable reliability for wireless streaming | |
Santos et al. | On the design of robust and adaptive IEEE 802.11 multicast services for video transmissions | |
CN118282585B (zh) | 一种基于udp的数据传输方法、设备及可读存储介质 | |
Miguel et al. | A wireless video transmission control approach through Stochastic Dynamic Programming |
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 |