CN107135215A - 一种基于svc的p2p流媒体不等时长分片及调度方法 - Google Patents
一种基于svc的p2p流媒体不等时长分片及调度方法 Download PDFInfo
- Publication number
- CN107135215A CN107135215A CN201710290900.8A CN201710290900A CN107135215A CN 107135215 A CN107135215 A CN 107135215A CN 201710290900 A CN201710290900 A CN 201710290900A CN 107135215 A CN107135215 A CN 107135215A
- Authority
- CN
- China
- Prior art keywords
- burst
- layer
- mrow
- gop
- svc
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明的基于SVC的P2P流媒体不等时长分片方法,包括:a).SVC视频数据分层及求取每层的数据量大小;b).求基础层分片中GOP数量;c).求其余层分片中GOP数量;d).对各个分层进行分片;e).二次分片;f).分片信息的存放。本发明引入2的指数函数对SVC视频的增强层进行等时间长度分片,实现了各层在时间上的整体同步,把数据量大小比基础层大的增强层的分片时间长度限制在基础层的[1/2,1]内,减少了P2P系统中数据量较大的增强层调度的复杂性;对个别数据量较大的分片进行一分为二的二次分片,增强了P2P网络系统中数据传输的稳定性,是一种行之有效的基于SVC的P2P流媒体不等时长分片及调度方法。
Description
技术领域
本发明涉及一种流媒体不等时长分片及调度方法,更具体的说,尤其涉及一种基于SVC的P2P流媒体不等时长分片及调度方法。
背景技术
随着移动互联网的发展和三网融合产业的兴起,终端之间的数据共享将更加频繁与普遍,当前互联网上广泛应用的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网络系统中数据传输的不稳定。
发明内容
本发明为了克服上述技术问题的缺点,提供了一种基于SVC的P2P流媒体不等时长分片及调度方法。
本发明的基于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单元的数目;
b).求基础层分片中GOP数量,SVC视频数据分层后,按照公式(2)求取基础层(0,0,0)按等时间长度分片时每一个分片所包含的合适画面组GOP数量m(0,0,0):
式中,m(0,0,0)为基础层(0,0,0)中每一个分片所包含的GOP数量,s(0,0,00为基础层(0,0,0)的数据量大小,M为分层后SVC视频的每一层包含的GOP数量,Z为传统未分层编码技术采用等数据量大小分片时P2P流媒体系统中分片的合理大小,ROUND()为四舍五入取整函数;
c).求其余层分片中GOP数量,SVC视频数据分层后,按照公式(3)求取除基础层(0,0,0)外其余层(d,t,q)中每一个分片所包含的GOP数量m(d,t,q):
式中,m(d,t,q)为SVC视频数据中除基础层外的增强层(d,t,q)中每一个分片所包含的GOP数量,m(0,0,0)为基础层(0,0,0)中每一个分片所包含的GOP数量,s(0,0,0)为基础层(0,0,0)的数据量大小,s(d,t,q)为增强层(d,t,q)的数据量大小,d、t、q不同时为0,符号为向上取整;
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)中获取的分片的数据量大小进行判断,如果分片Pi的数据量大小大于或等于2Z时,则利用公式(4)和公式(5)对其进行基于数据量大小的二次分片处理:
Pi,2=Pi-Pi,1 (5)
式中,Pi,1、Pi,2分别为对分片Pi进行二次分片处理后得到的第1个子分片、第2个子分片,GOPj为分片Pi中的第j个GOP,s(Pi)为分片Pi的数据量大小,s(GOPk)为分片Pi中的第k个GOP的大小;Z为传统未分层编码技术采用等数据量大小分片时P2P流媒体系统中分片的合理大小;
Pi,1由分片Pi中的前j个GOP构成,这j个GOP的数据量大小之和要么等于s(Pi)/2,要么大于s(Pi)/2,但前j-1个GOP数据量大小之和小于s(Pi)/2;Pi,2为对分片Pi进行二次分片处理后得到的第2个子分片,它由分片Pi中除分片Pi,1包含的GOP之外的GOP构成;
f).分片信息的存放,将每层SVC视频数据中包含的分片信息存放于各层的P2P索引信息中,用1个字节的空间存储对层进行等时间长度分片时的时长m(d,t,q),用个字节空间A来表示每层进行了等时间长度分片后得到的各个分片是否进行了基于数据量大小的二次分片,用字节空间B来存储经二次分片后得到的分片的GOP数量,用2个字节的空间来表示每一个分片数据量大小。
本发明的基于SVC的P2P流媒体不等时长分片方法,步骤a)中SVC视频的空间分层数目a、时间分层数目b和质量分层数目c的取值与网络宽带和终端能力的差异性大小成正比,a∈[1,2],b∈[3,5],c∈[1,2]。
本发明的基于SVC的P2P流媒体不等时长分片方法,步骤b)和步骤e)中Z的取值范围为:Z∈[64K,1M]。
本发明的基于SVC的P2P流媒体不等时长分片方法,步骤f)中所述的分片信息的存放通过以下步骤来实现:
f-1).在字节空间A中,每一位表示一个进行了等时间长度分片后得到的分片是否进行了二次分片,0表示未进行二次分片,1表示进行了二次分片;表示是否进行了二次分片信息的位在字节空间A中的位置次序与分片在视频数据中的存储位置次序相同,字节空间A的有效位数为位,无效位数为位,无效位用0填充;
f-2).在字节空间B中,每一个字节表示经二次分片后得到的第一个分片的GOP数量,按照分片在各层SVC视频中的顺序,依次将经二次分片后得到的第一个分片的GOP数量存储在字节空间B中。
本发明的基于SVC的P2P流媒体不等时长分片方法的数据请求调度方法,其特征在于,通过以下步骤来实现:
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)的整数倍,Ad,t,q(i)为标识层(d,t,q)的分片是否进行了二次分片的字节空间A中第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数量,Ad,t,q(i)为标识层(d,t,q)的分片是否进行了二次分片的字节空间A中第i位的值;Bd,t,q(i)为存储层(d,t,q)经二次分片后得到的分片的GOP数量的字节空间B中第i个字节的值;
3-3).从SVC视频的各层中依次下载这些分片,得到播放所需要的数据。
本发明的有益效果是:本发明考虑了基础层在SVC视频各层中的重要地位,引入未分层编码技术分片的合理数据量大小对基础层进行等时间长度分片,确保基础层在P2P系统中的稳定传输;针对SVC视频各层数据量的巨大差距,以基础层分片的时间长度为基础,引入2的指数函数对SVC视频的增强层进行等时间长度分片,实现了各层在时间上的整体同步,并整体上将各层分片的数据量大小差距控制在一定范围内,可降低P2P系统节点中数据量的突发性,提升系统的整体性能,把数据量大小比基础层大的增强层的分片时间长度限制在基础层的[1/2,1]内,控制了其等时间长度分片的数量,减少了P2P系统中数据量较大的增强层调度的复杂性;考虑了SVC视频层内各分片数据量大小的差异,基于数据量的大小对个别数据量较大的分片进行一分为二的二次分片,增强了P2P网络系统中数据传输的稳定性;以位表示进行等时间长度分片后的分片是否进行了二次分片,并只存储第一个子分片的时间长度,节省了存储空间,降低了客户端对SVC视频各层同步调度的复杂性,是一种行之有效的基于SVC的P2P流媒体不等时长分片及调度方法。
附图说明
图1为本发明的基于SVC的P2P流媒体分片方法的流程图;
图2为与基础层数据量之比小于等于0.75的增强层分片时间长度求取示意图;
图3为与基础层数据量之比小于等于0.75的增强层等时间长度分片的数据量大小与Z的差值示意图;
图4为二次分片信息存储空间示意图;
图5为同步周期分片请求示意图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
如图1所示,给出了本发明的基于SVC的P2P流媒体分片方法的流程图,根据NAL单元头信息对SVC视频分层并求取各层数据量大小,基于P2P系统中分片数据量的合理大小求取SVC视频基础层中等时间长度的分片应包含的GOP数量,基于SVC视频各增强层与基础层的数据量大小关系求取各增强层中等时间长度的每个分片包含的GOP数量,根据SVC视频各层每个分片包含的GOP数量对每层进行等时间长度分片,统计SVC视频各层中每个分片的大小并对个别数据量较大的分片进行基于数据量大小的二次分片处理,将每层SVC视频的等时间长度分片时长、是否进行了二次分片、二次分片的GOP数量、各分片数据量大小等信息存放于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数量,SVC视频数据分层后,按照公式(2)求取基础层(0,0,0)按等时间长度分片时每一个分片所包含的合适画面组GOP数量m(0,0,0):
式中,m(0,0,0)为基础层(0,0,0)中每一个分片所包含的GOP数量,s(0,0,0)为基础层(0,0,0)的数据量大小,M为分层后SVC视频的每一层包含的GOP数量,Z为传统未分层编码技术采用等数据量大小分片时P2P流媒体系统中分片的合理大小,ROUND()为四舍五入取整函数;
通过公式(2)可求取以数据量Z对基础层(0,0,0)进行等数据量大小分片时每个分片平均包含的GOP数量m(0,0,0),m(0,0,0)为精确值舍入到最接近的偶数,Z的值取决于系统的网络宽带和各终端能力,在具体实施例时,Z∈[64K,1M]。
c).求其余层分片中GOP数量,SVC视频数据分层后,按照公式(3)求取除基础层(0,0,0)外其余层(d,t,q)中每一个分片所包含的GOP数量m(d,t,q):
式中,m(d,t,q)为SVC视频数据中除基础层外的增强层(d,t,q)中每一个分片所包含的GOP数量,m(0,0,0)为基础层(0,0,0)中每一个分片所包含的GOP数量,s(0,0,0)为基础层(0,0,0)的数据量大小,s(d,t,q)为增强层(d,t,q)的数据量大小,d、t、q不同时为0,符号为向上取整;
当s(0,0,0)>0.75s(d,t,q)时,如图2所示,给出了与基础层数据量之比小于等于0.75的增强层分片时间长度求取示意图,若时,则在图2中,当时,的值为8;如图3所示,给出了与基础层数据量之比小于等于0.75的增强层等时间长度分片的数据量大小与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系统节点中数据量的突发性,提升系统的整体性能;
在SVC各层视频中,数据量最大的增强层数据的大小一般为基础层的5~8倍,在公式(3)中,当s(0,0,0)≤0.75s(d,t,q)时,m(d,t,q)=m(0,0,0)/2,在增强层(d,t,q)的数据量大于基础层(0,0,0)数据量2倍的情况下,增强层(d,t,q)中每个分片GOP的数量仍然为基础层中每个分片GOP数量的1/2,此时,增强层(d,t,q)中每个分片的平均数据量要大于基础层(0,0,0)中每个分片的平均数据量,控制了增强层(d,t,q)等时间长度分片的数量,减少了P2P系统中数据量较大的增强层调度的复杂性;
通过公式(3)得到的对每层进行等时间长度分片的GOP数量之间成2n(n∈Z)倍数关系,使得客户端请求的SVC视频各层数据之间具有较强的时间相关性,保证了客户端多层数据下载的同步;以基础层(0,0,0)的每个分片包含的GOP数量为基准求取各增强层(d,t,q)的每个分片包含的GOP数量,保证了基础层(0,0,0)在P2P系统中的稳定传输。
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)中获取的分片的数据量大小进行判断,如果分片Pi的数据量大小大于或等于2Z时,则利用公式(4)和公式(5)对其进行基于数据量大小的二次分片处理:
Pi,2=Pi-Pi,1 (5)
式中,Pi,1、Pi,2分别为对分片Pi进行二次分片处理后得到的第1个子分片、第2个子分片,GOPj为分片Pi中的第j个GOP,s(Pi)为分片Pi的数据量大小,s(GOPk)为分片Pi中的第k个GOP的大小;Z为传统未分层编码技术采用等数据量大小分片时P2P流媒体系统中分片的合理大小;
Pi,1由分片Pi中的前j个GOP构成,这j个GOP的数据量大小之和要么等于s(Pi)/2,要么大于s(Pi)/2,但前j-1个GOP数据量大小之和小于s(Pi)/2;Pi,2为对分片Pi进行二次分片处理后得到的第2个子分片,它由分片Pi中除分片Pi,1包含的GOP之外的GOP构成;
同一个SVC视频分层层内GOP的数据量大小各不相同,通过进行二次分片处理,消除了大部分过大的分片,可进一步降低P2P系统节点中数据量的突发性;当网络丢包率高时,减少因基础层部分分片过大而导致成功传输概率过小的现象,进一步提高重要性高的基础层(0,0,0)在P2P系统中的稳定传输。
f).分片信息的存放,将每层SVC视频数据中包含的分片信息存放于各层的P2P索引信息中,用1个字节的空间存储对层进行等时间长度分片时的时长m(d,t,q),用个字节空间A来表示每层进行了等时间长度分片后得到的各个分片是否进行了基于数据量大小的二次分片,用字节空间B来存储经二次分片后得到的分片的GOP数量,用2个字节的空间来表示每一个分片数据量大小。
该步骤中所述的分片信息的存放通过以下步骤来实现:
f-1).在字节空间A中,每一位表示一个进行了等时间长度分片后得到的分片是否进行了二次分片,0表示未进行二次分片,1表示进行了二次分片;表示是否进行了二次分片信息的位在字节空间A中的位置次序与分片在视频数据中的存储位置次序相同,字节空间A的有效位数为位,无效位数为位,无效位用0填充;
f-2).在字节空间B中,每一个字节表示经二次分片后得到的第一个分片的GOP数量,按照分片在各层SVC视频中的顺序,依次将经二次分片后得到的第一个分片的GOP数量存储在字节空间B中。
如图4所示,给出了二次分片信息存储空间示意图,字节空间A中第1、2、3、4、5位的值均为0,表示该层进行了等时间长度分片后得到的第1、2、3、4、5个分片未进行二次分片,字节空间A中第6位的值为1,表示该层进行了等时间长度分片后得到的第6个分片进行了二次分片,在字节空间B中,第一个字节的值22为第6个分片经二次分片后得到的第1个分片的GOP数量,第二个字节的值26为第7个分片经二次分片后得到的第1个分片的GOP数量;
一个SVC视频的Torrent文件中记录了每个分片的HSAH校验值,每个HSAH校验值占据的空间大小约为20字节,而Torrent文件中的数据几乎全部是分片HSAH校验值记录,本发明最多使用额外的2+1/8+1/2=2.625字节记录每个分片的时间和数据量大小信息,使整个Torrent文件的大小增加了大约13%,而Torrent文件大小通常很少超过1M,所以本发明产生的额外索引数据量也是很小的,Torrent文件又是在文件下载/流媒体播放前从可靠的地方通过C/S传输模式得到的(如在网站上通过FTP下载),下载的速度有足够的保障,因此增加的数据量所造成的性能上的影响很小,可以忽略。
本发明的基于SVC的P2P流媒体不等时长分片方法的数据请求调度方法,通过以下步骤来实现:
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)的整数倍,Ad,t,q(i)为标识层(d,t,q)的分片是否进行了二次分片的字节空间A中第i位的值;
如图5所示,给出了同步周期分片请求示意图,层(d,t,q)在第1个同步时间周期内需要请求4+0=4个分片,在2个同步时间周期内需要请求4+2=6个分片,在第3个同步时间周期内需要请求4+1=5个分片,在第4个同步时间周期内需要请求4+1=5个分片。
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数量,Ad,t,q(i)为标识层(d,t,q)的分片是否进行了二次分片的字节空间A中第i位的值;Bd,t,q(i)为存储层(d,t,q)经二次分片后得到的分片的GOP数量的字节空间B中第i个字节的值;
假设层(d,t,q)进行等时间长度分片后每个分片包含50个GOP,一个GOP中有16帧,拖动的时间点是第5235帧处,则拖动的时间点处在第个GOP中,第328个GOP为进行等时间长度分片后的第7个分片的第28个GOP,在图4所示的情况下,28>26,则第328个GOP处在层(d,t,q)的最终分片的个分片中,即拖动的时间点处在该层的第9个分片中。
3-3).从SVC视频的各层中依次下载这些分片,得到播放所需要的数据。
Claims (5)
1.一种基于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):
<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>
<mi>&Sigma;</mi>
<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数量,SVC视频数据分层后,按照公式(2)求取基础层(0,0,0)按等时间长度分片时每一个分片所包含的合适画面组GOP数量m(0,0,0):
<mrow>
<mi>m</mi>
<mrow>
<mo>(</mo>
<mn>0</mn>
<mo>,</mo>
<mn>0</mn>
<mo>,</mo>
<mn>0</mn>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mi>R</mi>
<mi>O</mi>
<mi>U</mi>
<mi>N</mi>
<mi>D</mi>
<mrow>
<mo>(</mo>
<mfrac>
<mrow>
<mi>Z</mi>
<mo>&times;</mo>
<mi>M</mi>
</mrow>
<mrow>
<mn>2</mn>
<mo>&times;</mo>
<mi>s</mi>
<mrow>
<mo>(</mo>
<mn>0</mn>
<mo>,</mo>
<mn>0</mn>
<mo>,</mo>
<mn>0</mn>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
<mo>)</mo>
</mrow>
<mo>&times;</mo>
<mn>2</mn>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</mrow>
式中,m(0,0,0)为基础层(0,0,0)中每一个分片所包含的GOP数量,s(0,0,0)为基础层(0,0,0)的数据量大小,M为分层后SVC视频的每一层包含的GOP数量,Z为传统未分层编码技术采用等数据量大小分片时P2P流媒体系统中分片的合理大小,ROUND()为四舍五入取整函数;
c).求其余层分片中GOP数量,SVC视频数据分层后,按照公式(3)求取除基础层(0,0,0)外其余层(d,t,q)中每一个分片所包含的GOP数量m(d,t,q):
式中,m(d,t,q)为SVC视频数据中除基础层外的增强层(d,t,q)中每一个分片所包含的GOP数量,m(0,0,0)为基础层(0,0,0)中每一个分片所包含的GOP数量,s(0,0,0)为基础层(0,0,0)的数据量大小,s(d,t,q)为增强层(d,t,q)的数据量大小,d、t、q不同时为0,符号为向上取整;
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)中获取的分片的数据量大小进行判断,如果分片Pi的数据量大小大于或等于2Z时,则利用公式(4)和公式(5)对其进行基于数据量大小的二次分片处理:
Pi,2=Pi-Pi,1 (5)
式中,Pi,1、Pi,2分别为对分片Pi进行二次分片处理后得到的第1个子分片、第2个子分片,GOPj为分片Pi中的第j个GOP,s(Pi)为分片Pi的数据量大小,s(GOPk)为分片Pi中的第k个GOP的大小;Z为传统未分层编码技术采用等数据量大小分片时P2P流媒体系统中分片的合理大小;
Pi,1由分片Pi中的前j个GOP构成,这j个GOP的数据量大小之和要么等于s(Pi)/2,要么大于s(Pi)/2,但前j-1个GOP数据量大小之和小于s(Pi)/2;Pi,2为对分片Pi进行二次分片处理后得到的第2个子分片,它由分片Pi中除分片Pi,1包含的GOP之外的GOP构成;
f).分片信息的存放,将每层SVC视频数据中包含的分片信息存放于各层的P2P索引信息中,用1个字节的空间存储对层进行等时间长度分片时的时长m(d,t,q),用个字节空间A来表示每层进行了等时间长度分片后得到的各个分片是否进行了基于数据量大小的二次分片,用字节空间B来存储经二次分片后得到的分片的GOP数量,用2个字节的空间来表示每一个分片数据量大小。
2.根据权利要求1所述的基于SVC的P2P流媒体不等时长分片及调度方法,其特征在于:步骤a)中SVC视频的空间分层数目a、时间分层数目b和质量分层数目c的取值与网络宽带和终端能力的差异性大小成正比,a∈[1,2],b∈[3,5],c∈[1,2]。
3.根据权利要求1或2所述的基于SVC的P2P流媒体不等时长分片及调度方法,其特征在于:步骤b)和步骤e)中Z的取值范围为:Z∈[64K,1M]。
4.根据权利要求1或2所述的基于SVC的P2P流媒体不等时长分片及调度方法,其特征在于:步骤f)中所述的分片信息的存放通过以下步骤来实现:
f-1).在字节空间A中,每一位表示一个进行了等时间长度分片后得到的分片是否进行了二次分片,0表示未进行二次分片,1表示进行了二次分片;表示是否进行了二次分片信息的位在字节空间A中的位置次序与分片在视频数据中的存储位置次序相同,字节空间A的有效位数为位,无效位数为位,无效位用0填充;
f-2).在字节空间B中,每一个字节表示经二次分片后得到的第一个分片的GOP数量,按照分片在各层SVC视频中的顺序,依次将经二次分片后得到的第一个分片的GOP数量存储在字节空间B中。
5.一种基于权利要求1所述的基于SVC的P2P流媒体不等时长分片方法的数据请求调度方法,其特征在于,通过以下步骤来实现:
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>
<msub>
<mi>A</mi>
<mrow>
<mi>d</mi>
<mo>,</mo>
<mi>t</mi>
<mo>,</mo>
<mi>q</mi>
</mrow>
</msub>
<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)的整数倍,Ad,t,q(i)为标识层(d,t,q)的分片是否进行了二次分片的字节空间A中第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数量,Ad,t,q(i)为标识层(d,t,q)的分片是否进行了二次分片的字节空间A中第i位的值;Bd,t,q(i)为存储层(d,t,q)经二次分片后得到的分片的GOP数量的字节空间B中第i个字节的值;
3-3).从SVC视频的各层中依次下载这些分片,得到播放所需要的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710290900.8A CN107135215B (zh) | 2017-04-28 | 2017-04-28 | 一种基于svc的p2p流媒体不等时长分片及调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710290900.8A CN107135215B (zh) | 2017-04-28 | 2017-04-28 | 一种基于svc的p2p流媒体不等时长分片及调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107135215A true CN107135215A (zh) | 2017-09-05 |
CN107135215B CN107135215B (zh) | 2020-08-11 |
Family
ID=59715369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710290900.8A Active CN107135215B (zh) | 2017-04-28 | 2017-04-28 | 一种基于svc的p2p流媒体不等时长分片及调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107135215B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607667A (zh) * | 2013-11-15 | 2014-02-26 | 南京云川信息技术有限公司 | 一种p2p流媒体系统中的svc视频文件的分片方法 |
CN103905917A (zh) * | 2012-12-27 | 2014-07-02 | 中国科学院声学研究所 | 一种基于双窗口的客户端分片调度方法及系统 |
EP2596643B1 (en) * | 2010-07-20 | 2016-03-30 | QUALCOMM Incorporated | Arranging sub-track fragments for streaming video data |
CN106028057A (zh) * | 2016-05-05 | 2016-10-12 | 北京邮电大学 | 一种移动ccn中可伸缩编码的自适应流媒体内容的缓存方法 |
-
2017
- 2017-04-28 CN CN201710290900.8A patent/CN107135215B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2596643B1 (en) * | 2010-07-20 | 2016-03-30 | QUALCOMM Incorporated | Arranging sub-track fragments for streaming video data |
CN103905917A (zh) * | 2012-12-27 | 2014-07-02 | 中国科学院声学研究所 | 一种基于双窗口的客户端分片调度方法及系统 |
CN103607667A (zh) * | 2013-11-15 | 2014-02-26 | 南京云川信息技术有限公司 | 一种p2p流媒体系统中的svc视频文件的分片方法 |
CN106028057A (zh) * | 2016-05-05 | 2016-10-12 | 北京邮电大学 | 一种移动ccn中可伸缩编码的自适应流媒体内容的缓存方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107135215B (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103814562B (zh) | 用信号表示片段的特性以用于媒体数据的网络流式传输 | |
CN100568966C (zh) | 一种音/视频数据的网络传输方法 | |
US20200244969A1 (en) | Video compression with generative models | |
CN110536179A (zh) | 一种内容分发系统和方法 | |
CN1764974A (zh) | 存储多媒体数据的存储介质和再现多媒体数据的方法和设备 | |
US8660181B2 (en) | Method of compressing video data and a media player for implementing the method | |
CN107707937A (zh) | 基于hls协议的时移优化方法及系统 | |
CN103210642B (zh) | 在http流送期间发生表达切换时传送用于自然再现的可缩放http流的方法 | |
CN104093088B (zh) | 实现自适应流媒体播放控制的系统及方法 | |
CN1216422A (zh) | 基于因特网协议的分布式实时多媒体流结构 | |
CN108063769A (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
CN105556922A (zh) | 网络中的dash表示自适应 | |
CN107295364A (zh) | 用于弹幕视频的实时流传输控制方法、控制装置 | |
CN103607667A (zh) | 一种p2p流媒体系统中的svc视频文件的分片方法 | |
CN102165776A (zh) | 一种可伸缩视频编码文件的传输方法、接收方法及装置 | |
CN107094141A (zh) | 一种p2p流媒体系统中的svc视频文件分片及调度方法 | |
CN108124192A (zh) | Hls流媒体的播放方法及系统 | |
CN1468002A (zh) | 基于因特网的流媒体压缩、传输与存贮系统 | |
CN107135215A (zh) | 一种基于svc的p2p流媒体不等时长分片及调度方法 | |
CN108881943A (zh) | P2p流媒体点播系统中基于淘汰指数的节点缓存替换方法 | |
WO2002009429A2 (en) | System and method for adaptable, scalable multimedia broadcasting over a network | |
CN107124414A (zh) | 一种基于svc数据特性的p2p流媒体分片及调度方法 | |
WO2023130896A1 (zh) | 媒体数据的数据处理方法、装置、计算机设备及存储介质 | |
CN101692711A (zh) | 视频编解码方法、系统及一种视频监控系统 | |
WO2022257567A1 (zh) | 一种媒体数据的处理方法及相关设备 |
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 |