CN107094141A - 一种p2p流媒体系统中的svc视频文件分片及调度方法 - Google Patents
一种p2p流媒体系统中的svc视频文件分片及调度方法 Download PDFInfo
- Publication number
- CN107094141A CN107094141A CN201710291071.5A CN201710291071A CN107094141A CN 107094141 A CN107094141 A CN 107094141A CN 201710291071 A CN201710291071 A CN 201710291071A CN 107094141 A CN107094141 A CN 107094141A
- Authority
- CN
- China
- Prior art keywords
- burst
- layer
- mrow
- gop
- data volume
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的P2P流媒体系统中的SVC视频文件分片及调度方法,分片方法包括a).求取每一层的数据量大小s(d,t,q);b).获取数据量最大层等时间长度分片的GOP数量m(d’,t’,q’);c).求取各层等时间长度分片的GOP数量m(d,t,q);d).对层进行等时间长度分片;e).对个别数据量较大的分片P i 进行基于等数据量大小的二次分片处理;f).将分片信息存放于P2P索引信息中;调度方法包括:a).客户端获取P2P索引信息;b).按序播放时按播放顺序逐层请求分片;c).拖动播放时根据分片时间信息定位并请求分片。本发明解决了SVC视频层间的同步调度问题,提升了P2P网络系统中数据传输的稳定性。
Description
技术领域
本发明涉及一种视频文件分片及调度方法,更具体的说,尤其涉及一种P2P流媒体系统中的SVC视频文件分片及调度方法。
背景技术
随着移动互联网的发展和三网融合产业的兴起,终端之间的数据共享将更加频繁与普遍,当前互联网上广泛应用的P2P流媒体技术将获得更大的发展空间,但如何在异构的环境中传输和共享视频数据成为当前P2P流媒体系统所面临的主要问题。为了解决这一问题,多种自适应技术被提出,包括转码(transcoding)、联播(simulcast)、多描述编码(multiple description coding)和可扩展视频编码(SVC,Scalable Video Coding)等。其中SVC由于其高效的编码效率、方便的自适应性和高共享度而成为这一问题的最佳解决方案。
SVC将视频编码为一个基础层和一个或多个增强层,层间数据在解码时具有向下依赖关系:基础层可独立解码并获得一个基本质量的视频,而某个增强层的解码则需要基础层和所有较低的增强层,并且解码的增强层越多用户观看的视频质量越高。相比于传统的视频编码,在P2P流媒体系统中应用SVC可以获得两方面的好处:一方面,用户能够根据自身情况动态调整下载的增强层数目,从而实现视频质量自适应;另一方面,不同类型的终端之间也可以共享部分层的数据,从而大大提高数据分享效率。如何在P2P流媒体系统中传输SVC视频数据已经成为当前急需解决的问题,本专利主要解决应用于P2P流媒体系统中的SVC数据分片问题。
在传统的P2P流媒体系统中,视频数据以分片为单位进行共享:单层视频数据被分为数据量等大小的分片,客户端以一定调度规则确定分片的下载顺序并下载分片,同时客户端每下载完一个分片即可将该分片上传给其他用户。与传统的P2P视频流媒体系统相同,基于SVC的P2P视频流媒体系统也以分片为单位共享数据。然而为了便于视频质量的调整和用户之间的数据共享,SVC视频一般以层为单位进行分片,此时需要考虑的则是层间的同步和协调问题,而传统的数据量等大小的分片方法不能满足这一需求。在基于SVC的P2P视频流媒体系统中多采用时间长度等大小的分片方法:将SVC的各个分层以一定播放时长为单位进行分片,层内每个分片播放时长相同,层间每个分片的播放时长也相同。
时间长度等大小分片方法能够满足SVC数据在解码播放时的层间同步需求,然而,播放时长相同的分片在数据量大小上却不相同,尤其是较低层分片的数据量往往会比较高层分片大很多。在丢包率相同的条件下,较大的分片会比较小的分片更容易丢失,尤其是在移动网络这种整体丢包率较高的环境中。对SVC数据来说,由于解码依赖性的存在,较低层分片比较高层分片更加重要,较低层分片的丢失会引起视频质量的显著下降,严重影响用户体验。采用等时长分片方法,不同分层中分片的数据量大小差距很大,同一个分层层内分片的数据量大小也各不相同,这会导致P2P网络系统中数据传输的不稳定。
发明内容
本发明为了克服上述技术问题的缺点,提供了一种P2P流媒体系统中的SVC视频文件分片及调度方法。
本发明的P2P流媒体系统中的SVC视频文件分片方法,其特征在于,通过以下步骤来实现:
a).SVC视频数据分层及求取每层的数据量大小,对于编码后的SVC视频数据,依次读取每一个NAL单元,提取NAL单元头信息中的空间层标识值d、时间层标识值t、质量层标识值q及NAL单元大小,按照d、t、q的值将SVC视频数据分离成若干层,每一层(d,t,q)均由SVC视频数据中所有d、t、q值相等的NAL单元构成,同一层的数据按照SVC视频数据原有的顺序连续存放;通过公式(1)求取每一层的数据量大小s(d,t,q):
式中,s(d,t,q)为层(d,t,q)的数据量大小,d∈{0,1,...,a-1},t∈{0,1,...,b-1},q∈{0,1,...,c-1},a、b、c分别为SVC视频的空间分层数目、时间分层数目和质量分层数目;z(i)为层(d,t,q)中第i个NAL单元的大小,n为层(d,t,q)中NAL单元的数目;
b).求数据量最大层分片包含的GOP数量,通过比较步骤a)中求取的每一层的数据量大小,找出SVC视频各分层中数据量最大的层(d′,t′,q′);通过公式(2)求取数据量最大层(d′,t′,q′)按等时间长度分片时每一个分片所包含的合适画面组GOP数量m(d′,t′,q′):
式中,m(d′,t′,q′)为数据量最大层(d′,t′,q′)中每一个分片所包含的GOP数量,s(d′,t′,q′)为层(d′,t′,q′)的数据量大小,M为分层后SVC视频的每一层包含的GOP数量,Z为传统未分层编码技术采用等数据量大小分片时P2P流媒体系统中分片的合理大小,符号为向上取整;
c).求除数据量最大层外其余层分片中GOP数量,通过公式(3)求取除数据量最大层(d′,t′,q′)外其余层(d,t,q)中每一个分片所包含的GOP数量m(d,t,q):
式中,m(d,t,q)为SVC视频数据中除数据量最大层(d′,t′,q′)外SVC各视频分层中每一个分片所包含的GOP数量,m(d′,t′,q′)为数据量最大层(d′,t′,q′)中每一个分片所包含的GOP数量,s(d′,t′,q′)为数据量最大层(d′,t′,q′)的数据量大小,s(d,t,q)为层(d,t,q)的数据量大小,d、t、q的值不能同时分别为d′、t′、q′,符号为向上取整;
d).对各个分层进行分片,根据层(d,t,q)每个分片包含的GOP数量m(d,t,q)对层(d,t,q)进行等时间长度分片,层(d,i,q)被分成个分片,M为分层后SVC视频的每一层包含的GOP数量;d∈{0,1,...,a-1},t∈{0,1,...,b-1},q∈{0,1,...,c-1};
前个分片包含的GOP数量均为m(d,t,q),如果某个层的最后一个分片包含的GOP数量与前面分片包含的GOP数量不相等,其包含的GOP数量为符号为向下取整;
e).二次分片,判断层(d,t,q)中每一个分片的数据量大小,对于分片的数据量s(Pi)≥2Z的分片Pi,通过公式(4)和公式(5)进行基于数据量大小的二次分片处理:
式中,Pi,m为对分片Pi进行二次分片处理后得到的第m个子分片,p′i为分片Pi除去第1、2、…、m-1个子分片后的剩余分片,s(Pi)为分片Pi的数据量大小;GOPj为分片p′i中的第j个GOP,s(GOPk)为分片p′i中的第K个GOP的大小,Ni为对分片Pi进行二次分片后得到的子分片数量;Z为传统未分层编码技术采用等数据量大小分片时P2P流媒体系统中分片的合理大小;
Pi,m由分片P′i中的前j个GOP构成,这j个GOP的数据量大小之和要么等于s(Pi)/Ni要么大于s(Pi)/Ni,但前j-1个GOP数据量大小之和小于s(Pi)/Ni;
f).分片信息的存放,将每层SVC视频数据中包含的分片信息存放于各层的P2P索引信息中,用1个字节的空间存储对层进行等时间长度分片时的时长m(d,t,q),用个字节空间A来表示每层进行了等时间长度分片后得到的各个分片是否进行了基于数据量大小的二次分片,用字节空间B来存储经二次分片后得到的分片的GOP数量,用2个字节的空间来表示每一个分片数据量大小。
本发明的P2P流媒体系统中的SVC视频文件分片方法,步骤a)中SVC视频的空间分层数目a、时间分层数目b和质量分层数目c的取值与网络宽带和终端能力的差异性大小成正比,a∈[1,2],b∈[3,5],c∈[1,2]。
本发明的P2P流媒体系统中的SVC视频文件分片方法,步骤b)和步骤e)中Z的取值范围为:Z∈[64K,1M]。
本发明的P2P流媒体系统中的SVC视频文件分片方法,步骤f)中所述的分片信息的存放通过以下步骤来实现:
f-1).在字节空间A中,每3位表示一个进行了等时间长度分片后得到的分片进行二次分片的信息,000表示未进行二次分片,001、010、011、100、101、110、111分别表示进行了二次分片后得到的子分片数量为2、3、4、5、6、7、8,表示进行了二次分片信息的位在字节空间A中的位置次序与分片在视频数据中的存储位置次序相同,字节空间A的有效位数为位,无效位数为位,无效位用0填充;
f-2).在字节空间B中,每一个字节表示经二次分片后得到的一个分片的GOP数量,按照分片在各层SVC视频中的顺序,依次将经二次分片后得到的各个分片的GOP数量存储在字节空间B中。
本发明的P2P流媒体系统中的SVC视频文件分片的数据请求调度方法,其特征在于,通过以下步骤来实现:
1).客户端选择订阅需要播放的SVC视频分层,获取P2P索引信息;
2).当按序播放时,客户端按照播放顺序逐层请求数据分片,具体步骤如下:
2-1).首先确定客户端请求播放的SVC视频分层中,对各层进行等时间长度分片时的最上时长mmax(d,t,q),GOP数量与时长对应;
2-2).以T为时间周期逐层同步请求数据分片,在第n个同步时间周期内,请求的各层数据分片数为Pcount(d,t,q),其通过公式(6)和公式(7)进行求取:
T=N×mmax(d,t,q) (7)
式中,Pcount(d,t,q)为客户端在请求数据的第n个同步时间周期内,对层(d,t,q)请求的数据分片数,n、N均为正整数,T为请求数据分片的同步时间周期,是各层进行等时间长度分片的最长时长mmax(d,t,q)的整数倍,A(i)为字节空间A中表示层(d,t,q)的第i个分片进行二次分片信息的值;
2-3).在同一个时间周期T中所请求的视频分层的全部分片都收到以后,送给解码器解码并播放,同时开始下载后一个时间周期T内的各层数据分片;
3).当拖动播放时,在定位到视频的某一时间点t′播放时,客户端根据P2P索引中的分片时间信息定位并请求需要下载的数据分片,具体步骤如下:
3-1).首先判断定位到视频的某一时间点t′的视频数据属于哪一个GOP;
3-2).获取该GOP处于视频每个分层的第几个分片,其通过公式(8)、公式(9)进行获取:
式中,np为查找的GOP在SVC视频层(d,t,q)中所处的分片位置,ng为时间点t′在SVC视频中所处的GOP位置,m(d,t,q)为SVC视频中层(d,t,q)进行等时间长度分片后每一个分片包含的GOP数量,A(i)为字节空间A中表示层(d,t,q)的第i个分片进行二次分片信息的值;B(i)为存储层(d,t,q)经二次分片后得到的分片的GOP数量的字节空间B中第i个字节的值,m≥2;
3-3).从SVC视频的各层中依次下载这些分片,得到播放所需要的数据。
本发明的有益效果是:本发明引入未分层编码技术分片的合理数据量大小,对数据量最大层进行等时间长度分片,针对SVC视频各层数据量的巨大差距,以数据量最大层分片的时间长度为基础,引入2的指数函数对SVC视频的各层进行等时间长度分片,实现了各层在时间上的整体同步,并整体上将各层分片的数据量大小差距控制在一定范围内,增强了P2P网络系统中数据传输的稳定性;考虑了SVC视频层内各分片数据量大小的差异,基于等数据量大小对个别数据量较大的分片进行最多一分为八的二次分片,增强了P2P网络系统中数据传输的稳定性;用3位表示一个进行了等时间长度分片后得到的分片进行二次分片的信息,节省了存储空间,降低了客户端对SVC视频各层同步调度的复杂性,是一种行之有效的P2P流媒体系统中的SVC视频文件分片及调度方法。
附图说明
图1为本发明的P2P流媒体系统中的SVC视频文件分片方法的流程图;
图2为除数据量最大层之外的各层分片时间长度求取示意图;
图3为除数据量最大层之外的各层等时间长度分片的数据量大小与Z的差值示意图;
图4为二次分片信息存储空间示意图;
图5为同步周期分片请求示意图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
如图1所示,给出了本发明的P2P流媒体系统中的SVC视频文件分片方法的流程图,根据NAL单元头信息对SVC视频分层并求取各层数据量大小,基于P2P系统中分片数据量的合理大小求取SVC视频数据量最大层中等时间长度的分片应包含的GOP数量,基于SVC视频各层与数据量最大层的数据量大小关系求取各层中等时间长度的每个分片包含的GOP数量,根据SVC视频各层每个分片包含的GOP数量对每层进行等时间长度分片,统计SVC视频各层中每个分片的大小并对数据量较大的分片进行基于等数据量大小的二次分片处理,将每层SVC视频的等时间长度分片时长、各分片数据量大小、二次分片信息存放于P2P索引信息中。其具体通过以下步骤来实现:
a).SVC视频数据分层及求取每层的数据量大小,对于编码后的SVC视频数据,依次读取每一个NAL单元,提取NAL单元头信息中的空间层标识值d、时间层标识值t、质量层标识值q及NAL单元大小,按照d、t、q的值将SVC视频数据分离成若干层,每一层(d,t,q)均由SVC视频数据中所有d、t、q值相等的NAL单元构成,同一层的数据按照SVC视频数据原有的顺序连续存放;通过公式(1)求取每一层的数据量大小s(d,t,q):
式中,s(d,t,q)为层(d,t,q)的数据量大小,d∈{0,1,...,a-1},t∈{0,1,...,b-1},q∈{0,1,...,c-1},a、b、c分别为SVC视频的空间分层数目、时间分层数目和质量分层数目;z(i)为层(d,t,q)中第i个NAL单元的大小,n为层(d,t,q)中NAL单元的数目;
在实际应用时,应根据网络带宽和终端能力的差异性合理设置a、b、c的值,a、b、c的取值与网络带宽和终端能力的差异性大小成正比,但a、b、c的取值不宜过大,否则会增加终端分片调度的复杂性,在异构网络环境下,a∈[1,2],b∈[3,5],c∈[1,2],可满足一般系统的应用。
b).求数据量最大层分片包含的GOP数量,通过比较步骤a)中求取的每一层的数据量大小,找出SVC视频各分层中数据量最大的层(d′,t′,q′);通过公式(2)求取数据量最大层(d′,t′,q′)按等时间长度分片时每一个分片所包含的合适画面组GOP数量m(d′,t′,q′):
式中,m(d′,t′,q′)为数据量最大层(d′,t′,q′)中每一个分片所包含的GOP数量,s(d′,t′,q′)为层(d′,t′,q′)的数据量大小,M为分层后SVC视频的每一层包含的GOP数量,Z为传统未分层编码技术采用等数据量大小分片时P2P流媒体系统中分片的合理大小,符号为向上取整;
通过公式(2)可求取以数据量Z对数据量最大层(d′,t′,q′)进行等数据量大小分片时每个分片平均包含的GOP数量m(d′,t′,q′),m(d′,t′,q′)为精确值向上取整,Z的值取决于系统的网络带宽和各终端能力,在具体实施时,Z∈[64K,1M]。
c).求除数据量最大层外其余层分片中GOP数量,通过公式(3)求取除数据量最大层(d′,t′,q′)外其余层(d,t,q)中每一个分片所包含的GOP数量m(d,t,q):
式中,m(d,t,q)为SVC视频数据中除数据量最大层(d′,t′,q′)外SVC各视频分层中每一个分片所包含的GOP数量,m(d′,t′,q′)为数据量最大层(d′,t′,q′)中每一个分片所包含的GOP数量,s(d′,t′,q′)为数据量最大层(d′,t′,q′)的数据量大小,s(d,t,q)为层(d,t,q)的数据量大小,d、t、q的值不能同时分别为d′、t′、q′,符号为向上取整;
如图2所示,给出了除数据量最大层之外的各层分片时间长度求取示意图,若时,则在图2中,当时,的值为8;如图3所示,给出了除数据量最大层之外的各层等时间长度分片的数据量大小与Z的差值示意图,若层(d,t,q)中每个GOP的数据量相等,以m(d,t,q)为时长对层(d,t,q)进行等时间长度分片,则每个分片的数据量必在[Z-0.33Z,Z+0.33Z],即[0.67Z,1.33Z]之内,在图3中,时,每个分片的数据量为Z-0.273Z=0.727Z,将各层分片的平均数据量限制在[0.67Z,1.33Z]之间,可降低P2P系统节点中数据量的突发性,提升系统的整体性能;通过公式(3)得到的对每层进行等时间长度分片的GOP数量之间成2n(n∈N)倍数关系,使得客户端请求的SVC视频各层数据之间具有较强的时间相关性,保证了客户端多层数据下载的同步。
d).对各个分层进行分片,根据层(d,t,q)每个分片包含的GOP数量m(d,t,q)对层(d,t,q)进行等时间长度分片,层(d,i,q)被分成个分片,M为分层后SVC视频的每一层包含的GOP数量;d∈{0,1,...,a-1},t∈{0,1,...,b-1},q∈{0,1,...,c-1};
前个分片包含的GOP数量均为m(d,t,q),如果某个层的最后一个分片包含的GOP数量与前面分片包含的GOP数量不相等,其包含的GOP数量为符号为向下取整;
e).二次分片,判断层(d,t,q)中每一个分片的数据量大小,对于分片的数据量s(Pi)≥2Z的分片Pi,通过公式(4)和公式(5)进行基于数据量大小的二次分片处理:
式中,Pi,m为对分片Pi进行二次分片处理后得到的第m个子分片,p′i为分片Pi除去第1、2、…、m-1个子分片后的剩余分片,s(Pi)为分片Pi的数据量大小;GOPj为分片p′i中的第j个GOP,s(GOPk)为分片p′i中的第K个GOP的大小,Ni为对分片Pi进行二次分片后得到的子分片数量;Z为传统未分层编码技术采用等数据量大小分片时P2P流媒体系统中分片的合理大小;
Pi,m由分片P′i中的前j个GOP构成,这j个GOP的数据量大小之和要么等于s(Pi)/Ni要么大于s(Pi)/Ni,但前j-1个GOP数据量大小之和小于s(Pi)/Ni;
SVC视频各层(d,t,q)内GOP的数据量大小各不相同,通过进行最多一分为八的等数据量大小二次分片处理,能消除大部分数据量较大的分片,且将极少数数据量过大的分片分割为数据量较小的分片,可进一步降低P2P系统节点中数据量的突发性,通过最多进行一分为八的二次分片,不至于产生过多的子分片,控制了分片调度请求的复杂性;当网络丢包率高时,能够减少因基础层部分分片过大而导致成功传输概率过小的现象,进一步提高重要性高的基础层(0,0,0)在P2P系统中的稳定传输。
f).分片信息的存放,将每层SVC视频数据中包含的分片信息存放于各层的P2P索引信息中,用1个字节的空间存储对层进行等时间长度分片时的时长m(d,t,q),用个字节空间A来表示每层进行了等时间长度分片后得到的各个分片是否进行了基于数据量大小的二次分片,用字节空间B来存储经二次分片后得到的分片的GOP数量,用2个字节的空间来表示每一个分片数据量大小。
如图4所示,给出了二次分片信息存储空间示意图,该步骤中所述的分片信息的存放通过以下步骤来实现:
f-1).在字节空间A中,每3位表示一个进行了等时间长度分片后得到的分片进行二次分片的信息,000表示未进行二次分片,001、010、011、100、101、110、111分别表示进行了二次分片后得到的子分片数量为2、3、4、5、6、7、8,表示进行了二次分片信息的位在字节空间A中的位置次序与分片在视频数据中的存储位置次序相同,字节空间A的有效位数为位,无效位数为位,无效位用0填充;
f-2).在字节空间B中,每一个字节表示经二次分片后得到的一个分片的GOP数量,按照分片在各层SVC视频中的顺序,依次将经二次分片后得到的各个分片的GOP数量存储在字节空间B中。
如图4所示,字节空间A中第1位组的值为000,表示该层进行了等时间长度分片后得到的第1个分片未进行二次分片,字节空间A中第2位的值为001,表示该层进行了等时间长度分片后得到的第2个分片进行了二次分片,得到的子分片数为2,在字节空间B中,第一个字节的值22为第2个分片经二次分片后得到的第1个子分片的GOP数量,第二个字节的值26为第1个分片经二次分片后得到的第2个子分片的GOP数量,第三个字节的值10为第4个分片经二次分片后得到的第1个子分片的GOP数量;
一个SVC视频的Torrent文件中记录了每个分片的HSAH校验值,每个HSAH校验值占据的空间大小约为20字节,而Torrent文件中的数据几乎全部是分片HSAH校验值记录,本发明最多使用额外的2+3/8+1=3.38字节记录每个分片的时间和数据量大小信息,使整个Torrent文件的大小增加了大约17%,而Torrent文件大小通常很少超过1M,所以本发明产生的额外索引数据量也是很小的,Torrent文件又是在文件下载/流媒体播放前从可靠的地方通过C/S传输模式得到的(如在网站上通过FTP下载),下载的速度有足够的保障,因此增加的数据量所造成的性能上的影响很小,可以忽略。
本发明的P2P流媒体系统中的SVC视频文件分片方法的数据请求调度方法,通过以下步骤来实现:
1).客户端选择订阅需要播放的SVC视频分层,获取P2P索引信息;
2).当按序播放时,客户端按照播放顺序逐层请求数据分片,具体步骤如下:
2-1).首先确定客户端请求播放的SVC视频分层中,对各层进行等时间长度分片时的最上时长mmax(d,t,q),GOP数量与时长对应;
2-2).以T为时间周期逐层同步请求数据分片,在第n个同步时间周期内,请求的各层数据分片数为Pcount(d,t,q),其通过公式(6)和公式(7)进行求取:
T=N×mmax(d,t,q) (7)
式中,Pcount(d,t,q)为客户端在请求数据的第n个同步时间周期内,对层(d,t,q)请求的数据分片数,n、N均为正整数,T为请求数据分片的同步时间周期,是各层进行等时间长度分片的最长时长mmax(d,t,q)的整数倍,A(i)为字节空间A中表示层(d,t,q)的第i个分片进行二次分片信息的值;
如图5所示,给出了同步周期分片请求示意图,该层在第1个同步时间周期内需要请求4+1+4=9个分片。
2-3).在同一个时间周期T中所请求的视频分层的全部分片都收到以后,送给解码器解码并播放,同时开始下载后一个时间周期T内的各层数据分片;
3).当拖动播放时,在定位到视频的某一时间点t′播放时,客户端根据P2P索引中的分片时间信息定位并请求需要下载的数据分片,具体步骤如下:
3-1).首先判断定位到视频的某一时间点t′的视频数据属于哪一个GOP;
3-2).获取该GOP处于视频每个分层的第几个分片,其通过公式(8)、公式(9)进行获取:
式中,np为查找的GOP在SVC视频层(d,t,q)中所处的分片位置,ng为时间点t′在SVC视频中所处的GOP位置,m(d,t,q)为SVC视频中层(d,t,q)进行等时间长度分片后每一个分片包含的GOP数量,A(i)为字节空间A中表示层(d,t,q)的第i个分片进行二次分片信息的值;B(i)为存储层(d,t,q)经二次分片后得到的分片的GOP数量的字节空间B中第i个字节的值,m≥2;
假设某层进行等时间长度分片后每个分片包含48个GOP,一个GOP中有16帧,拖动的时间点是第2625帧处,则拖动的时间点处在第个GOP中,第165个GOP为进行等时间长度分片后的第4个分片的第21个GOP,在图4所示的情况下,10+8<21<10+8+12,则第165个GOP处在该层的最终分片的个分片中,即拖动的时间点处在该层的第7个分片中。
3-3).从SVC视频的各层中依次下载这些分片,得到播放所需要的数据。
本发明的P2P流媒体系统中的SVC视频文件分片及调度方法,解决了SVC视频层间的同步和协调问题,增强了异构环境下基础层的可靠传输,提升了P2P网络系统中数据传输的稳定性。
Claims (5)
1.一种P2P流媒体系统中的SVC视频文件分片方法,其特征在于,通过以下步骤来实现:
a).SVC视频数据分层及求取每层的数据量大小,对于编码后的SVC视频数据,依次读取每一个NAL单元,提取NAL单元头信息中的空间层标识值d、时间层标识值t、质量层标识值q及NAL单元大小,按照d、t、q的值将SVC视频数据分离成若干层,每一层(d,t,q)均由SVC视频数据中所有d、t、q值相等的NAL单元构成,同一层的数据按照SVC视频数据原有的顺序连续存放;通过公式(1)求取每一层的数据量大小s(d,t,q):
<mrow>
<mi>s</mi>
<mrow>
<mo>(</mo>
<mi>d</mi>
<mo>,</mo>
<mi>t</mi>
<mo>,</mo>
<mi>q</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<mi>z</mi>
<mrow>
<mo>(</mo>
<mi>i</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
式中,s(d,t,q)为层(d,t,q)的数据量大小,d∈{0,1,...,a-1},t∈{0,1,...,b-1},q∈{0,1,...,c-1},a、b、c分别为SVC视频的空间分层数目、时间分层数目和质量分层数目;z(i)为层(d,t,q)中第i个NAL单元的大小,n为层(d,t,q)中NAL单元的数目;
b).求数据量最大层分片包含的GOP数量,通过比较步骤a)中求取的每一层的数据量大小,找出SVC视频各分层中数据量最大的层(d′,t′,q′);通过公式(2)求取数据量最大层(d′,t′,q′)按等时间长度分片时每一个分片所包含的合适画面组GOP数量m(d′,t′,q′):
式中,m(d′,t′,q′)为数据量最大层(d′,t′,q′)中每一个分片所包含的GOP数量,s(d′,t′,q′)为层(d′,t′,q′)的数据量大小,M为分层后SVC视频的每一层包含的GOP数量,Z为传统未分层编码技术采用等数据量大小分片时P2P流媒体系统中分片的合理大小,符号为向上取整;
c).求除数据量最大层外其余层分片中GOP数量,通过公式(3)求取除数据量最大层(d′,t′,q′)外其余层(d,t,q)中每一个分片所包含的GOP数量m(d,t,q):
式中,m(d,t,q)为SVC视频数据中除数据量最大层(d′,t′,q′)外SVC各视频分层中每一个分片所包含的GOP数量,m(d′,t′,q′)为数据量最大层(d′,t′,q′)中每一个分片所包含的GOP数量,s(d′,t′,q′)为数据量最大层(d′,t′,q′)的数据量大小,s(d,t,q)为层(d,t,q)的数据量大小,d、t、q的值不能同时分别为d′、t′、q′,符号为向上取整;
d).对各个分层进行分片,根据层(d,t,q)每个分片包含的GOP数量m(d,t,q)对层(d,t,q)进行等时间长度分片,层(d,t,q)被分成个分片,M为分层后SVC视频的每一层包含的GOP数量;d∈{0,1,...,a-1},t∈{0,1,...,b-1},q∈{0,1,...,c-1};
前个分片包含的GOP数量均为m(d,t,q),如果某个层的最后一个分片包含的GOP数量与前面分片包含的GOP数量不相等,其包含的GOP数量为符号为向下取整;
e).二次分片,判断层(d,t,q)中每一个分片的数据量大小,对于分片的数据量s(Pi)≥2Z的分片Pi,通过公式(4)和公式(5)进行基于数据量大小的二次分片处理:
式中,Pi,m为对分片Pi进行二次分片处理后得到的第m个子分片,p′i为分片Pi除去第1、2、…、m-1个子分片后的剩余分片,s(Pi)为分片Pi的数据量大小;GOPj为分片p′i中的第j个GOP,s(GOPk)为分片p′i中的第K个GOP的大小,Ni为对分片Pi进行二次分片后得到的子分片数量;Z为传统未分层编码技术采用等数据量大小分片时P2P流媒体系统中分片的合理大小;
Pi,m由分片P′i中的前j个GOP构成,这j个GOP的数据量大小之和要么等于s(Pi)/Ni要么大于s(Pi)/Ni,但前j-1个GOP数据量大小之和小于s(Pi)/Ni;
f).分片信息的存放,将每层SVC视频数据中包含的分片信息存放于各层的P2P索引信息中,用1个字节的空间存储对层进行等时间长度分片时的时长m(d,t,q),用个字节空间A来表示每层进行了等时间长度分片后得到的各个分片是否进行了基于数据量大小的二次分片,用字节空间B来存储经二次分片后得到的分片的GOP数量,用2个字节的空间来表示每一个分片数据量大小。
2.根据权利要求1所述的P2P流媒体系统中的SVC视频文件分片方法,其特征在于:步骤a)中SVC视频的空间分层数目a、时间分层数目b和质量分层数目c的取值与网络宽带和终端能力的差异性大小成正比,a∈[1,2],b∈[3,5],c∈[1,2]。
3.根据权利要求1或2所述的P2P流媒体系统中的SVC视频文件分片方法,其特征在于:步骤b)和步骤e)中Z的取值范围为:Z∈[64K,1M]。
4.根据权利要求1或2所述的P2P流媒体系统中的SVC视频文件分片方法,其特征在于:步骤f)中所述的分片信息的存放通过以下步骤来实现:
f-1).在字节空间A中,每3位表示一个进行了等时间长度分片后得到的分片进行二次分片的信息,000表示未进行二次分片,001、010、011、100、101、110、111分别表示进行了二次分片后得到的子分片数量为2、3、4、5、6、7、8,表示进行了二次分片信息的位在字节空间A中的位置次序与分片在视频数据中的存储位置次序相同,字节空间A的有效位数为位,无效位数为位,无效位用0填充;
f-2).在字节空间B中,每一个字节表示经二次分片后得到的一个分片的GOP数量,按照分片在各层SVC视频中的顺序,依次将经二次分片后得到的各个分片的GOP数量存储在字节空间B中。
5.一种基于权利要求1所述的P2P流媒体系统中的SVC视频文件分片方法的数据请求调度方法,其特征在于,通过以下步骤来实现:
1).客户端选择订阅需要播放的SVC视频分层,获取P2P索引信息;
2).当按序播放时,客户端按照播放顺序逐层请求数据分片,具体步骤如下:
2-1).首先确定客户端请求播放的SVC视频分层中,对各层进行等时间长度分片时的最上时长mmax(d,t,q),GOP数量与时长对应;
2-2).以T为时间周期逐层同步请求数据分片,在第n个同步时间周期内,请求的各层数据分片数为Pcount(d,t,q),其通过公式(6)和公式(7)进行求取:
<mrow>
<msub>
<mi>P</mi>
<mrow>
<mi>c</mi>
<mi>o</mi>
<mi>u</mi>
<mi>n</mi>
<mi>t</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>d</mi>
<mo>,</mo>
<mi>t</mi>
<mo>,</mo>
<mi>q</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfrac>
<mi>T</mi>
<mrow>
<mi>m</mi>
<mrow>
<mo>(</mo>
<mi>d</mi>
<mo>,</mo>
<mi>t</mi>
<mo>,</mo>
<mi>q</mi>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
<mo>+</mo>
<munderover>
<mi>&Sigma;</mi>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mo>(</mo>
<mi>n</mi>
<mo>-</mo>
<mn>1</mn>
<mo>)</mo>
<mi>T</mi>
</mrow>
<mrow>
<mi>m</mi>
<mrow>
<mo>(</mo>
<mi>d</mi>
<mo>,</mo>
<mi>t</mi>
<mo>,</mo>
<mi>q</mi>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mfrac>
<mrow>
<mi>n</mi>
<mi>T</mi>
</mrow>
<mrow>
<mi>m</mi>
<mrow>
<mo>(</mo>
<mi>d</mi>
<mo>,</mo>
<mi>t</mi>
<mo>,</mo>
<mi>q</mi>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
</munderover>
<mi>A</mi>
<mrow>
<mo>(</mo>
<mi>i</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>6</mn>
<mo>)</mo>
</mrow>
</mrow>
T=N×mmax(d,t,q) (7)
式中,Pcount(d,t,q)为客户端在请求数据的第n个同步时间周期内,对层(d,t,q)请求的数据分片数,n、N均为正整数,T为请求数据分片的同步时间周期,是各层进行等时间长度分片的最长时长mmax(d,t,q)的整数倍,A(i)为字节空间A中表示层(d,t,q)的第i个分片进行二次分片信息的值;
2-3).在同一个时间周期T中所请求的视频分层的全部分片都收到以后,送给解码器解码并播放,同时开始下载后一个时间周期T内的各层数据分片;
3).当拖动播放时,在定位到视频的某一时间点t′播放时,客户端根据P2P索引中的分片时间信息定位并请求需要下载的数据分片,具体步骤如下:
3-1).首先判断定位到视频的某一时间点t′的视频数据属于哪一个GOP;
3-2).获取该GOP处于视频每个分层的第几个分片,其通过公式(8)、公式(9)进行获取:
式中,np为查找的GOP在SVC视频层(d,t,q)中所处的分片位置,ng为时间点t′在SVC视频中所处的GOP位置,m(d,t,q)为SVC视频中层(d,t,q)进行等时间长度分片后每一个分片包含的GOP数量,A(i)为字节空间A中表示层(d,t,q)的第i个分片进行二次分片信息的值;B(i)为存储层(d,t,q)经二次分片后得到的分片的GOP数量的字节空间B中第i个字节的值,m≥2;
3-3).从SVC视频的各层中依次下载这些分片,得到播放所需要的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710291071.5A CN107094141B (zh) | 2017-04-28 | 2017-04-28 | 一种p2p流媒体系统中的svc视频文件分片及调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710291071.5A CN107094141B (zh) | 2017-04-28 | 2017-04-28 | 一种p2p流媒体系统中的svc视频文件分片及调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107094141A true CN107094141A (zh) | 2017-08-25 |
CN107094141B CN107094141B (zh) | 2020-06-02 |
Family
ID=59638004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710291071.5A Active CN107094141B (zh) | 2017-04-28 | 2017-04-28 | 一种p2p流媒体系统中的svc视频文件分片及调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107094141B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109121018A (zh) * | 2018-09-12 | 2019-01-01 | 中国地质大学(武汉) | 用于svc-dash点播系统的动态缓存调度方法、设备及存储设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102165776A (zh) * | 2009-07-06 | 2011-08-24 | 华为技术有限公司 | 一种可伸缩视频编码文件的传输方法、接收方法及装置 |
CN102761776A (zh) * | 2012-08-01 | 2012-10-31 | 重庆大学 | 基于SVC的P2PVoD系统的视音频同步方法 |
CN103607667A (zh) * | 2013-11-15 | 2014-02-26 | 南京云川信息技术有限公司 | 一种p2p流媒体系统中的svc视频文件的分片方法 |
CN103905918A (zh) * | 2012-12-28 | 2014-07-02 | 中国科学院声学研究所 | 基于svc的p2p流媒体系统中的数据分片传输、调度方法及系统 |
US8914834B2 (en) * | 2011-07-18 | 2014-12-16 | Motorola Solutions, Inc. | Source rate and channel rate matching for scalable video transmission |
-
2017
- 2017-04-28 CN CN201710291071.5A patent/CN107094141B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102165776A (zh) * | 2009-07-06 | 2011-08-24 | 华为技术有限公司 | 一种可伸缩视频编码文件的传输方法、接收方法及装置 |
US8914834B2 (en) * | 2011-07-18 | 2014-12-16 | Motorola Solutions, Inc. | Source rate and channel rate matching for scalable video transmission |
CN102761776A (zh) * | 2012-08-01 | 2012-10-31 | 重庆大学 | 基于SVC的P2PVoD系统的视音频同步方法 |
CN103905918A (zh) * | 2012-12-28 | 2014-07-02 | 中国科学院声学研究所 | 基于svc的p2p流媒体系统中的数据分片传输、调度方法及系统 |
CN103607667A (zh) * | 2013-11-15 | 2014-02-26 | 南京云川信息技术有限公司 | 一种p2p流媒体系统中的svc视频文件的分片方法 |
Non-Patent Citations (1)
Title |
---|
宋俊平: "考虑SVC数据特性的P2P流媒体分片算法", 《高技术通讯》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109121018A (zh) * | 2018-09-12 | 2019-01-01 | 中国地质大学(武汉) | 用于svc-dash点播系统的动态缓存调度方法、设备及存储设备 |
CN109121018B (zh) * | 2018-09-12 | 2020-01-17 | 中国地质大学(武汉) | 用于svc-dash点播系统的动态缓存调度方法、设备及存储设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107094141B (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1126344C (zh) | 基于因特网协议的分布式实时多媒体流结构 | |
CN1764974B (zh) | 存储多媒体数据的存储介质和再现多媒体数据的方法和设备 | |
CN110536179A (zh) | 一种内容分发系统和方法 | |
CN100568966C (zh) | 一种音/视频数据的网络传输方法 | |
CN101562737B (zh) | 一种对等直播系统中多码率调度方法 | |
CN102130886B (zh) | 网络视频流媒体系统及传输处理方法、发送端 | |
CN110324621A (zh) | 视频编码方法、装置、电子设备和存储介质 | |
CN103814562A (zh) | 用信号表示片段的特性以用于媒体数据的网络流式传输 | |
CN1416244A (zh) | 网络自适应实时多媒体流传输方式的系统和方法 | |
CN101030938A (zh) | QoS自适应的P2P流媒体数据组织与传输系统及方法 | |
WO2002089461A1 (en) | Method and system for transferring content to a networked unit | |
CN108848395B (zh) | 基于果蝇优化算法的边缘协作缓存布置方法 | |
CN105556922A (zh) | 网络中的dash表示自适应 | |
CN103108186A (zh) | 实现视频高清传播的方法 | |
CN111263229A (zh) | 一种视频分发方法、装置及电子设备 | |
US20110067072A1 (en) | Method and apparatus for performing MPEG video streaming over bandwidth constrained networks | |
CN107094141A (zh) | 一种p2p流媒体系统中的svc视频文件分片及调度方法 | |
CN102165776A (zh) | 一种可伸缩视频编码文件的传输方法、接收方法及装置 | |
CN110913239A (zh) | 一种精细化的移动边缘计算的视频缓存更新方法 | |
CN108124192A (zh) | Hls流媒体的播放方法及系统 | |
Yahia et al. | When HTTP/2 rescues DASH: Video frame multiplexing | |
CN1468002A (zh) | 基于因特网的流媒体压缩、传输与存贮系统 | |
WO2002009429A2 (en) | System and method for adaptable, scalable multimedia broadcasting over a network | |
CN109168023B (zh) | 一种可伸缩视频流的缓存方法 | |
CN107135215A (zh) | 一种基于svc的p2p流媒体不等时长分片及调度方法 |
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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Pang Xiyu Inventor after: Wang Cheng Inventor before: Wang Cheng Inventor before: Pang Xiyu |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |