P2p流媒体系统中缓存消息的编码方法及系统的制作方法

文档序号:7768555阅读:231来源:国知局
专利名称:P2p流媒体系统中缓存消息的编码方法及系统的制作方法
技术领域
本发明涉及P2P流媒体领域,尤其涉及一种P2P流媒体系统中缓存消息的编码方 法及系统。
背景技术
在现有I^eer to Peer (P2P)流媒体系统中,流媒体内容被切割成以数据块(chunk) 为单位的连续的数据流在节点(Peer)间传输,每个chunk由唯一的chunk id标识。节 目内容的共享和交换都依赖于节点间交换的描述节点缓存状态的缓存消息(简称BM)来 完成。在某一时刻t,节点下载到从chunk Idn^ljchimk 之间的部分数据,与之相对 应,一个缓存消息(BM)通常包括两部分重要信息缓存节目数据块的起始位置(简称偏 移量或Offset),以及从这个起始位置开始,数据块的本地下载完成情况(简称比特图或 bitmap)——由0/1比特序列构成(0/1分别代表未下载/已下载)。其中bitmap的长度标 志了节点缓存的长度。缓存越大,抵抗网络搅动的能力越强,连续播放的能力越好。现有大 多数系统为了取得好的观看效果而采用大缓存,但牺牲了播放时延,因此描述缓存状态的 BM 一般有较大的长度,如UUke的BM描述大约400多个数据块,PPLive则长达2000个数 据块。如此长的BM给系统带来较大的协议开销。
BM在Peer间的交换频率影响了数据块的扩散速度和网络共享环境。为了方便数 据块在Peer间的共享,Peer间需要不断地快速的交换BM,速度越快,越有利于数据块的快 速分发。根据测量UUSee是5秒交换一次,PPLive是4秒。
BM的长度和交换频率决定了这部分信息在P2P流媒体系统中的开销。现有系统 的这一开销比较大;若要通过提高BM交互频率来提高系统性能,则会进一步增大这部分开 销,因此现有的BM交互方法也限制了通过这一途径提高系统质量的余地。
传统方法直接在Peer间交互原始的BM消息。为了压缩原始BM长度,一些系统采 用了不同的压缩方法对原始BM进行压缩,如Huffman压缩、游程编码和字典压缩等,这些方 法建立在对原始的BM的0、1序列的简单特征统计规律上,采用了通用的数据压缩手段,使 得传送BM所需的信息长度有所减少;但是,这种压缩由于没有考虑到不同BM序列之间的相 关性,因此系统开销不能得到很好的降低。发明内容
本发明的目的在于提供一种P2P流媒体系统中缓存消息的编码方法及系统,基于 本发明能够大幅度降低缓存消息间交互信息的长度,进一步降低系统开销。
本发明利用了 peer间交互的BM的相关性,其基本原则是第一、一个Peer无需向 对方发送(根据对方的BM确认的)那些对方已经下载到的chunk的信息;第二、一个Peer 无需再向对方报告那些曾经在上次BM报告中已经下载到的chunk信息。
一方面,本发明一种P2P流媒体系统中缓存消息的编码方法,包括如下步骤缓存 消息准备步骤,获取对端最新确认收到的第一缓存消息;读取所述对端最新发送的第二缓存消息,获取待发送给所述对端的第三缓存消息;最大偏移量值计算步骤,计算所述第二缓 存消息和所述第三缓存消息的最大偏移量值;按需增量序列生成步骤,参照所述第二缓存 消息中所有大于所述最大偏移量值的比特信息,确定对端的已知信息;并剔除所述第三缓 存消息中的所述已知信息,生成按需增量序列;按需增量缓存消息生成步骤,基于所述按需 增量序列,添加第三缓存消息和所述第二缓存消息的偏移量标识符,生成按需增量缓存消 息;发送步骤,将该按需增量缓存消息发送至对端。
上述编码方法,优选所述按需增量序列生成步骤中,所述对端的已知信息进一步 通过参照所述第一缓存消息和所述第二缓存消息中所有大于所述最大偏移量值的比特信 息来确定;并且所述按需增量缓存消息发送步骤中,所述按需增量缓存消息进一步通过如 下方式确定基于所述按需增量序列,添加第三缓存消息、第二缓存消息和第一缓存消息的 偏移量标识符。
上述编码方法,优选所述按需增量序列生成步骤中,所述按需增量序列通过如下 方式确定将第一缓存消息和第二缓存消息中所有大于最大的偏移量值的比特位置进行 “或”运算,空位置按0计算,得到参照序列;依据所述参照序列中值为0的比特位置,顺序提 取第三缓存消息中对应位置的比特值,该比特值所组成的序列给即为按需增量序列。
上述编码方法,优选所述按需增量序列生成步骤和所述按需增量缓存消息发送步 骤之间,还设置有压缩步骤,对所述按需增量序列进行压缩,获取压缩的按需增量序列; 并且,所述按需增量缓存消息发送步骤中,基于所述压缩的按需增量序列添加所述偏移量 标识符以生成所述按需增量缓存消息。
上述编码方法,优选在所述按需增量缓存消息生成步骤和所述发送步骤之间,还 设置有压缩步骤,对所述按需增量缓存消息进行压缩处理。
另一方面,本发明还公开了一种P2P流媒体系统中缓存消息的编码系统,包括缓 存消息准备模块,获取对端最新确认收到的第一缓存消息;读取所述对端最新发送的第二 缓存消息,获取待发送给所述对端的第三缓存消息;最大偏移量值计算模块,用于计算所述 第二缓存消息和所述第三缓存消息的最大偏移量值;按需增量序列生成模块,用于参照所 述第二缓存消息中所有大于所述最大偏移量值的比特信息,确定对端的已知信息;并剔除 所述第三缓存消息中的所述已知信息,生成按需增量序列;按需增量缓存消息生成模块,用 于基于所述按需增量序列,添加第三缓存消息和所述第二缓存消息的偏移量标识符,生成 按需增量缓存消息;发送模块,用于将该按需增量缓存消息发送至对端。
上述编码系统,优选所述按需增量序列生成模块中,所述对端的已知信息进一步 通过参照所述第一缓存消息和所述第二缓存消息中所有大于所述最大偏移量值的比特信 息来确定;并且所述按需增量缓存消息发送模块中,所述按需增量缓存消息进一步通过如 下方式确定基于所述按需增量序列,添加第三缓存消息、第二缓存消息和第一缓存消息的 偏移量标识符。
上述编码系统,优选所述按需增量序列生成模块中,所述按需增量序列通过如下 方式确定将第一缓存消息和第二缓存消息中所有大于最大的偏移量值的比特位置进行 “或”运算,空位置按0计算,得到参照序列;依据所述参照序列中值为0的比特位置,顺序提 取第三缓存消息中对应位置的比特值,该比特值所组成的序列给即为按需增量序列。
上述编码系统,优选所述按需增量序列生成模块和所述按需增量缓存消息发送模块之间,还设置有第一压缩模块,用于对所述按需增量序列进行压缩,获取压缩的按需增 量序列;并且,所述按需增量缓存消息发送模块中,基于所述压缩的按需增量序列添加所述 偏移量标识符以生成所述按需增量缓存消息。
上述编码系统,优选在所述按需增量缓存消息生成模块和所述发送模块之间,还 设置有第二压缩模块,对所述按需增量缓存消息进行压缩处理。
相对于现有技术而言,本发明不仅利用一个peer产生的连续的BM序列之间的相 关性,而且充分利用了 peer间交互的BM的相关性,从而能够大幅度降低交互信息的长度, 降低开销;并且交互间隔越短、交互频率越快,由于相关性越强而使编码越短。


图1为本发明一种P2P流媒体系统中缓存消息的编码方法实施例的步骤流程图2为按需增量BM编码示意图3为本发明一种P2P流媒体系统中缓存消息的编码方法实施例的初始化过程的 流程图4为本发明一种P2P流媒体系统中缓存消息的编码方法实施例的发送过程流程 图5为与本发明P2P流媒体系统中缓存消息的编码方法实施例的相对应的接收过 程流程图6为本发明P2P流媒体系统中缓存消息的编码系统实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。
本发明提出了一种全新的BM压缩编码和交互设计,定义为按需增量BM的设计,这 种方法建立在深入分析BM序列相关性的基础之上;并且普遍适用于现有的基于P2P技术的 流媒体系统。本发明基于如下思想在P2P流媒体系统中,BM的主要作用是在peer之间交 互数据块的有无信息,从而使peer可以确认对方有哪些数据可供下载。现有P2P流媒体系 统中,peer间须通报各自完整的BM序列,而没有考虑对方的需要。实际上,对于一个给定的 peer x,他只需要其邻居peer y告诉他那些自己没有而邻居y有的数据块信息就够了,这 样可以在很大程度上减小BM的冗余信息。这正是我们设计按需增量BM的基本出发点一 个peer根据自己最新发送过的且已得到对方确认的BM(称为本地参照BM)和最新接收到 的对方的BM(称为对方参照BM),去除下一个待发送的BM的冗余信息。因为这一压缩过程 的主要特点是针对对方的需求而生成的,因此我们称以上过程为按需增量BM的编码过程。 基于类似的过程可以进行解码。
需要注意的是,peer间通过交换按需增量BM而获得的对对方缓存的认知可能并 不完整,换句话说,peer χ的BMi与peer y根据接收到的peer χ的对应的按需增量解码 后得到的BMi并不完全相同。但是这些不同之处对双方的共享信息的可用性不会造成任何 影响,因为那些不同之处一定会发生在以下这些比特位置这些比特位置对应的chunk至 少存在于双方中的一个peer上;或相应比特位置已经过期和无效。因此按需增量BM的设计是可行的。在明确上述区别之后,为了方便描述,在后面的叙述中,我们在收发双方用相 同的符号描述一个对应的BM。
P2P流媒体系统中缓存消息的编码方法实施例
参照图1,图1为本发明一种P2P流媒体系统中缓存消息的编码方法实施例的步骤 流程图,包括如下步骤
S110,获取对端最新确认收到的第一缓存消息;读取所述对端最新发送的第二缓 存消息,获取待发送给所述对端的第三缓存消息;也就是说,该步骤缓存以往发送过的若干 个(定义得到对方确认的最新的为第一缓存消息BM1)BM ;缓存以往已解压缩的接收到的最 近若干个(定义接收到的最新的为第二缓存消息BM2)BM ;从高层模块接收待发送的第三缓 存消息BM3 ;S120,计算出BM2和BM3的最大偏移量值max_offset ;S130,参照BM1和BM2所 有大于最大偏移量值max_0ffSet的比特信息,剔除BM3中对端已知的信息,保留对端未知 的信息和新增信息,生成按需增量序列ABMxy ;S140,在所述按需增量序列的基础上,添加 BM3、BM2和BM1的偏移量标识符,生成按需增量BM ;S150,将按需增量发送到对端。
事实上,BM1, BM2和BM3是为了便于描述方法的过程才定义的。设通信双方为A和 B,那么A会按一定周期向B发送BM,B也会以同样的周期发送BM给A。那么从A端看所有 交互的 BM 序列将是(假定 A 先发送):BMa1-BMb1-BMA2-BMB2-BMA3-BMB3...
在本发明中,我们站在某个(假定A的)角度,描述A向B发送BM的过程,那么A 在压缩BMai时,须参照的过去的BM(Α的和B的)都是0,因此此时第一缓存BM1为空,BM2也 为空,BM3指的是BMai ;A在压缩BMa2时,须参照的过去的BM分别是BMai的和BMbi,因此此时 第一缓存BM1指的是BMA1,BM2指的是BMB2, BM3指的是ΒΜΑ2。依次类推。
或者换个说法描述=BM1定义为本端已发送过的,并且已得到对端确认的最新的 BM ;BM2定义为本端接收到的,对端发送的最新的BM ;BM3定义为本端待压缩和发送(给对 端)的BM ;BM3的压缩需要参照BM1和BM2的信息。如果不考虑网络丢包和时延,那么按时 间顺序观察到的2个发送的BM(BM1和BM3)之间收到的为ΒΜ2。
按需增量编解码包含3个处理过程,分别是按需增量编解码器的初始化、按需增 量的编码和发送、按需增量的接收和解码。下面分步描述不同处理过程。
参照图2至图4,进一步对本发明所涉及的说明按需增量的BM的编码过程进行详 细的说明。
按需增量编解码器的初始化过程
对按需增量编解码过程涉及到的必须的内存、变量和指针等参数进行初始化。包 括
步骤1 为本地参照BM和对方参照BM分配2个循环缓存区,总大小至少为 (1^+1 ) XBM最大长度。其中Ic1和1 分别是预设的本地和对方参照BM的个数,通常可取Ic1 =1 °
步骤2 初始化“本地参照BM缓存表"BT1,用于存贮最新Ic1个发送过的原始BM ;初 始化BT1的写指针WptrjDt1,指向BT1的第一个BM入口位置;初始化BT1的确认指针acked_ Ptr为空,用于记录来自对方的对最近发送的BM的确认;
步骤3 初始化“对方参照BM缓存表” BT2,用于存贮最新1 个接收到的已解码的 BM ;初始化BT2的写指针wptr_bt2,指向BT2的第一个BM入口位置;初始化BT2的读指针curr_ptr为空,用于标明报告的最新BM。
桉需增量的编码和发送
以peer χ向peer y发送按需增量BM的编码过程来说明处理过程。设peer χ新 产生待发送的ΒΜ3。
步骤1 分配并初始化按需增量序列bit_seq的缓存;读入待发送的BM3,按照 BT1的写指针WptrjDt1存入BT1,然后WptrjDt1指向BT1的下一入口 ;根据BT1的确认指针 acked_ptr,读入peer χ的本地参照ΒΜ,设为BM1 (这是经peer y确认已经接收到的peer χ的最新发送的BM),若acked_ptr为空,则设置BM1的offset远远小于BM3的offset且 bitmap长度为0 ;根据BT2的读指针curr_ptr读取对方参照BM,设为BM2 (即对方y发送到 χ的最新BM),如curr_ptr为空,则设置BM2的offset远远小于BM3的offset且bitmap长 度为0 ;
步骤2 计算出BM2和BM3中最大的偏移量值,设为maxjffset (图1所示的例子 中为O3)。对peer y而言,只有chunk_id大于该值的数据块才有意义;
步骤3 从chunk id = offset_max开始递增到BM3标识的最大chunk id范围内, 按位对BM1和BM2相应的chunk id位置的值进行或操作,若BM1或BM2在相应位置上没有数 据,则按0值计,最后得到编码前的参照序列,设为ref_seq。在这个序列中,1的位置说明 对应的chunk本地已经拥有或/和对方已经拥有,对方y —定也有相同的认知,因此,这些 值为1的位置不需再次告知对方y ;而0的位置说明相应数据块双方过去都没有,因此,BM3 中对应这些0的chunk位置的所有比特值形成的序列就是所需的按需增量序列ABMxy,。
步骤4 根据ref_Seq对应的每个Chunk ID位置i,从左向右,依次检查ref_Seq 的比特值,如为1则跳过;如为0则取BM3中对应数据块位置i的比特值,依次顺序存入按 需增量序列bit_seq。
步骤5 在按需增量序列bit_seq的基础上,附加上BM1, BM2和BM3的offet标识 信息0”03和02,最终形成按需增量BM——Δ BMxy,发送给对方。需要说明的是,现有Ρ2Ρ流 媒体系统中offset所占长度一般为4个字节,以上3个offset合计共占用12个字节,为 进一步降低开销,考虑到3个offset间的关系,可采用相对offset来编码,如可用BM3的 Offset^BM1和BM2相对BM3Offset的值进行编码,通常可以使这部分开销进一步降低到8个 字节或更小。
需要指出的是,虽然按需增量序列ABMxy本身已经很短,一般情况下可直接用 于发送,但是在必要的时候,可以进一步采用压缩算法进行压缩处理,如rim-length、 huffman、算术编码或字典压缩等。根据具体协议设计不同,进一步的算法压缩可以发生步 骤4或步骤5之后。
下面对与本发明P2P流媒体系统中缓存消息的编码方法实施例的相对应的接收 过程进行详细的说明。参照图5,按需增量BM的接收与解码过程如下。
下面以peer y接收收到peer χ发送的按需增量BM的解码过程。设peer y接收 到来自peer χ的Δ BMxy。
步骤1 读入接收到的ABMxy,解析其中的4个重要字段该增量BM信息对应的 BM3、BM2, BM1的偏移量标识信息02,O3, O1,以及按需增量0/1序列bit_seq ;初始化变量BM1 处理出错标识和BM2处理出错标识为否。peer y的所知的BM3Z^BM2ZiBM1与χ的可能不完全一致,但是对信息的可用性没有任何影响。
步骤2 如果O3标识的offset远远小于仏标识的offset (即BM2的offset远远 小于BM3的offset),说明BM2为空,设置BM2的offset远远小于BM3的offset且bitmap 长度为0 ;如果根据O3在本地缓存表BT1中查找到本次接收到的按需增量的参照BM—— BM2 (Peer y的BM),则取出BM2,它将用于后续解码过程,须强调指出的是,O3同时也是χ对 y发送过的BM2的证实,说明χ已经了解y的标志为O3的BM,因此须设置aCked_ptr为BT1 的BM2入口其为本地编码器的本地参照BM ;如果没有在表中找到O3唯一标识的BM2,则设置 BM2处理出错标识为真,并将aCked_ptr指向空;
步骤3 如果O1标识的offset远远小于O2标识的offset (即BM1的offset远远小 于BM3的offset),说明BM1为空,设置BM1的offset远远小于BM3的offset且bitmap长度 为0 ;如果根据O1在本地缓存表BT2中查找到本次接收到的按需增量的参照BM——BM1 (Peer X的BM),则取出BM1,它将用于后续解码过程;如果没有在表中找到O1唯一标识的BM1,则设 置BM1处理出错标识为真;
步骤4 如果8112或81^的处理出错标识为真,则解码失败,结束解码过程;否则,进 入以下解码过程;
步骤5 计算出BM3和BM2偏移量中的最大值,记为max_offset ;计算出BM3和BM2 偏移量中的最大值,记为max_id ;
步骤6 从chunk id = offset_max开始递增到max_id范围内,按位对BM1和BM2 相应的chunk id位置的值进行或操作,若BM1或BM2在相应位置上没有数据,则按0值计, 最后得到解码的参照序列,记为ref_Seq。在这个序列中,1的位置说明对应的chunk本地 已经拥有或/和对方已经拥有;而0的位置说明相应数据块双方过去都没有,因此,按需增 量序列bit_seq正是对应这些0的chunk位置的比特序列。需要注意的是,按需增量序列 bit_seq中超出这些0的位置的部分全部是BM3中的新增位置。
步骤7 若BM1为空,则初始化预处理bitmap序列preBM3,起始比特位置为BM3的 offset (O2);若BM1不为空,则PreBM3为由BM1的bitmap的O2的位置开始到最后一个比特 结束的全部比特序列。
按照ref_Seq序列中从左到右的每个0的比特位置,按顺序将收到的按需增量序 列bit_seq的比特值逐个插入到预处理bitmap序列preBM3的相应的bitmap位置上,如果 PreBM3的序列长度不够,须增加其长度;其次将bit_seq中超出ref_Seq的部分直接添加到 PreBM3序列后面。
最后在BM3的bitmap基础上增加BM3的offset 02,得到最终的解码后的BM3信息。
步骤8 将解码后的BM3根据写指针wptr_bt2存入本地缓存BT2,将wptr_bt2指向 下一个入口,并设置CUrr_ptr指向BM3的该缓存入口(为本地下一次发送按需增量BM的 对方参考BM)。此时y解码的BM3与χ的BM3可能不完全一致,但是对信息的可用性没有任 何影响。
以上是按需增量的接收和解码过程。是需要指出的是,如果按需增量序列ABMxy 采用了其他算法如Run-LengtKHufTman编码、算术编码或字典压缩,则须在步骤1中,先按 相应流程解码。
在本发明的另一实施例中,在上述过程的编码方法也可以简化为生成BM1并发送9到对端;接收对端发送的BM2 ;产生待发送给对端的BM3 ;计算出BM2和BM3的最大偏移量值 max_offset ;只参照BM1所有大于最大偏移量值maX_offset的比特信息,剔除BM3中对端已 知的信息,保留对端未知的信息和新增信息,生成按需增量序列ABMxy ;在所述按需增量序 列的基础上,添加BM3和Ml2的偏移量标识符,生成按需增量BM并发送到对端。
由上述两个实施例可以看出,本发明提出的提出按需增量编码方法,不仅利用一 个peer产生的连续的BM序列之间的相关性,而且充分利用了 peer间交互的BM的相关性, 从而能够大幅度降低交互信息的长度,降低开销;并且交互间隔越短、交互频率越快,由于 相关性越强而使编码越短。
参照图6,图6为P2P流媒体系统中缓存消息的编码系统实施例的结构框图。该系 统包括缓存消息生成模块60、最大偏移量值计算模块62、按需增量序列生成模块64、按需 增量缓存消息生成模块66和发送模块68。其中
缓存消息生成模块60用于获取对端最新确认收到的第一缓存消息;读取所述对 端最新发送的第二缓存消息,获取待发送给所述对端的第三缓存消息。也就是说,缓存消 息准备模块60用于缓存以往发送过的若干个(定义得到对方确认的最新的为第一缓存消 息BM1)BM ;缓存以往已解压缩的接收到的最近若干个(定义接收到的最新的为第二缓存消 息BM2)BM ;从高层模块接收待发送的第三缓存消息BM3 ;最大偏移量值计算模块62用于计 算所述第二缓存消息BM2和所述第三缓存消息BM3的最大偏移量值;按需增量序列生成模 块64用于参照所述第二缓存消息BM2中所有大于最大偏移量值max_0ffSet的比特信息, 确定对端的已知信息;并剔除所述第三缓存消息BM3中的所述已知信息,生成按需增量序列 Δ BMxy ;按需增量缓存消息BM生成模块66用于基于所述按需增量序列△ BMxy,添加第三缓 存消息BM3和所述第二缓存消息BM2的偏移量标识符,生成按需增量缓存消息BM ;发送模块 68用于将该按需增量缓存消息BM发送至对端。
优选的一个实施例是,按需增量序列生成模块64中,参照第一缓存消息BM1和第 二缓存消息BM2中所有大于最大偏移量值max_0ffSet的比特信息,剔除第三缓存消息BM3 中对端早先已知的信息,保留对端还未知的信息和新增信息,生成按需增量序列;相对应 地,按需增量缓存消息生成模块66中,在按需增量序列Δ BMxy的基础上,添加第三缓存消息 BM3、第二缓存消息BM2和第一缓存消息BM1的偏移量标识符,生成按需增量缓存消息
进一步地,在一个实施例中,增量序列还可以按照下述方式获取将第一缓存消息 BM1和第二缓存消息BM2中所有大于最大的偏移量值max_0ffSet的比特位置进行“或”运 算,空位置按0计算,得到参照序列ref_seq ;依据所述参照序列ref_seq中值为0的比特 位置,顺序提取第三缓存消息BM3中对应位置的比特值,该比特值所组成的序列给即为按需 增量序列。
另外,在一个实施例中,按需增量序列生成模块64与按需增量缓存消息BM生成模 块66之间还包括对按需增量序列△ BMxy进行压缩处理的第一压缩模块,按需增量缓存消息 BM生成模块66基于压缩之后的按需增量序列Δ ΒΜΧ。
在另外一个实施例中,按需增量缓存消息BM生成模块66与发送模块68之间还包 括第二压缩模块,该模块对按需增量BM进行压缩处理。
上述系统实施例与方法实施例原理相同,本发明在此不再赘述,相同之处互相参 照即可。
综上,本发明具有如下特点
(1)建立在深入认识BM序列特征基础之上。不仅利用一个Peer产生的连续的BM 序列之间的相关性,更重要的是,充分利用了 Peer间要交互的BM的相关性,换句话说,利 用Peer间对相同Chunk下载状态信息的相关性进行压缩,从而能大幅度降低交互信息的长 度,降低开销;
(2)交互间隔越短(交互频率越快),编码越短(因为相关性越强);
(3)普遍适用于现有的基于P2P技术的流媒体系统。
以上对本发明所提供的一种P2P流媒体系统中缓存消息的编码方法及系统进行 详细介绍,本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例 的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员, 依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处。综上所述,本说明书内 容不应理解为对本发明的限制。
权利要求
1.一种P2P流媒体系统中缓存消息的编码方法,其特征在于,包括如下步骤缓存消息准备步骤,获取对端最新确认收到的第一缓存消息;读取所述对端最新发送 的第二缓存消息,获取待发送给所述对端的第三缓存消息;最大偏移量值计算步骤,计算所述第二缓存消息和所述第三缓存消息的最大偏移量值;按需增量序列生成步骤,参照所述第二缓存消息中所有大于所述最大偏移量值的比特 信息,确定对端的已知信息;并剔除所述第三缓存消息中的所述已知信息,生成按需增量序 列;按需增量缓存消息生成步骤,基于所述按需增量序列,添加第三缓存消息和所述第二 缓存消息的偏移量标识符,生成按需增量缓存消息;发送步骤,将该按需增量缓存消息发送至对端。
2.根据权利要求1所述的编码方法,其特征在于,所述按需增量序列生成步骤中,所述对端的已知信息进一步通过参照所述第一缓存消 息和所述第二缓存消息中所有大于所述最大偏移量值的比特信息来确定;并且所述按需增量缓存消息发送步骤中,所述按需增量缓存消息进一步通过如下方式确 定基于所述按需增量序列,添加第三缓存消息、第二缓存消息和第一缓存消息的偏移量标 识符。
3.根据权利要求2所述的编码方法,其特征在于,所述按需增量序列生成步骤中,所述 按需增量序列通过如下方式确定将第一缓存消息和第二缓存消息中所有大于最大的偏移量值的比特位置进行“或”运 算,空位置按0计算,得到参照序列;依据所述参照序列中值为0的比特位置,顺序提取第三缓存消息中对应位置的比特 值,该比特值所组成的序列给即为按需增量序列。
4.根据权利要求1至3中任一项所述的编码方法,其特征在于,所述按需增量序列生成 步骤和所述按需增量缓存消息发送步骤之间,还设置有压缩步骤,对所述按需增量序列进行压缩,获取压缩的按需增量序列;并且,所述按需增量缓存消息发送步骤中,基于所述压缩的按需增量序列添加所述偏移量标 识符以生成所述按需增量缓存消息。
5.根据权利要求4所述的编码方法,其特征在于,在所述按需增量缓存消息生成步骤 和所述发送步骤之间,还设置有压缩步骤,对所述按需增量缓存消息进行压缩处理。
6.一种P2P流媒体系统中缓存消息的编码系统,其特征在于,包括缓存消息准备模块,获取对端最新确认收到的第一缓存消息;读取所述对端最新发送 的第二缓存消息,获取待发送给所述对端的第三缓存消息;最大偏移量值计算模块,用于计算所述第二缓存消息和所述第三缓存消息的最大偏移 量值;按需增量序列生成模块,用于参照所述第二缓存消息中所有大于所述最大偏移量值的 比特信息,确定对端的已知信息;并剔除所述第三缓存消息中的所述已知信息,生成按需增 量序列;按需增量缓存消息生成模块,用于基于所述按需增量序列,添加第三缓存消息和所述 第二缓存消息的偏移量标识符,生成按需增量缓存消息;发送模块,用于将该按需增量缓存消息发送至对端。
7.根据权利要求6所述的编码系统,其特征在于,所述按需增量序列生成模块中,所述对端的已知信息进一步通过参照所述第一缓存消 息和所述第二缓存消息中所有大于所述最大偏移量值的比特信息来确定;并且所述按需增量缓存消息发送模块中,所述按需增量缓存消息进一步通过如下方式确 定基于所述按需增量序列,添加第三缓存消息、第二缓存消息和第一缓存消息的偏移量标 识符。
8.根据权利要求7所述的编码系统,其特征在于,所述按需增量序列生成模块中,所述 按需增量序列通过如下方式确定将第一缓存消息和第二缓存消息中所有大于最大的偏移量值的比特位置进行“或”运 算,空位置按0计算,得到参照序列;依据所述参照序列中值为0的比特位置,顺序提取第三缓存消息中对应位置的比特 值,该比特值所组成的序列给即为按需增量序列。
9.根据权利要求6至8中任一项所述的编码系统,其特征在于,所述按需增量序列生成 模块和所述按需增量缓存消息发送模块之间,还设置有第一压缩模块,用于对所述按需增量序列进行压缩,获取压缩的按需增量序列;并且,所述按需增量缓存消息发送模块中,基于所述压缩的按需增量序列添加所述偏移量标 识符以生成所述按需增量缓存消息。
10.根据权利要求9所述的编码系统,其特征在于,在所述按需增量缓存消息生成模块 和所述发送模块之间,还设置有第二压缩模块,对所述按需增量缓存消息进行压缩处理。
全文摘要
本发明公开了一种P2P流媒体系统中缓存消息的编码方法及系统。其中,该方法包括获取对端最新确认收到的第一缓存消息(BM1);读取对端最新发送的第二缓存消息(BM2),获取待发送给对端的第三缓存消息(BM3);计算出BM2和BM3的最大偏移量值max_offset;参照BM1和BM2所有大于最大偏移量值max_offset的比特信息,剔除BM3中对端已知的信息,保留对端未知的信息和新增信息,生成按需增量序列ΔBMxy;在按需增量序列的基础上,添加BM3、BM2和BM1的偏移量标识符,生成按需增量BM;将按需增量发送到对端。本发明利用一个peer产生的连续的BM序列之间的相关性和peer间交互的BM的相关性,大幅度降低交互信息的长度,降低系统开销。
文档编号H04L29/06GK102035836SQ20101058596
公开日2011年4月27日 申请日期2010年12月13日 优先权日2010年12月13日
发明者李纯喜, 赵永祥, 陈一帅, 陈常嘉 申请人:北京交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1