发明名称 一种用于点播系统仿真的用户终端播放方法
摘要 本发明涉及一种用于点播系统仿真的用户终端播放方法,包括以下步骤:(1)先进行模型的参数配置,(1.1)将VCR动作转移模型的概率采用通行假设,即设定Pr<sub>play</sub>,Pr<sub>abort</sub>,Pr<sub>jf</sub>,Pr<sub>jb</sub>的值,并且满足Pr<sub>play</sub>+Pr<sub>abort</sub>+Pr<sub>jf</sub>+Pr<sub>jb</sub>=1;(1.2)将VCR动作状态模型中的参数采用通行数据,即设定播放时间的参数,跳转持续时间的参数;(2)整个节目视频播放过程可以分为数据准备和播放两个阶段;(3)性能指标计算,仿真结束,模型采集到的性能指标的原始数据用于计算两个重要的用户侧性能指标,分别是节目启动时延和节目播放连续度,仿真过程所采集的原始数据均存储于数据库之中,可通过数据库平台进行计算。这两个指标主要体现用户的观看体验,使用户得到更好的仿真观看体验。
申请公布号 CN102625183B 申请公布日期 2016.01.13
申请号 CN201210104203.6 申请日期 2012.04.10
申请人 北京邮电大学 发明人 双锴;覃;徐鹏;王玉龙;于晓燕;苏森
分类号 H04N21/433(2011.01)I;H04N21/438(2011.01)I 主分类号 H04N21/433(2011.01)I
代理机构 北京思创毕升专利事务所 11218 代理人 刘明华
主权项 一种用于点播系统仿真的用户终端播放方法,其特征在于,包括以下步骤:(1)先进行模型的参数配置,(1.1)将VCR动作转移模型的概率采用通行假设,即设定表示上一次播放动作结束之后,下一个动作是播放(Play)的概率Pr<sub>play</sub>的值;表示上一次播放动作结束之后,下一个动作是停止(Abort)的概率Pr<sub>abort</sub>的值;表示上一次播放动作结束之后,下一个动作是跳进(JF)的概率Pr<sub>jf</sub>的值;表示上一次播放动作结束之后,下一个动作是跳退(JB)的概率Pr<sub>jb</sub>的值,并且满足Pr<sub>play</sub>+Pr<sub>abort</sub>+Pr<sub>jf</sub>+Pr<sub>jb</sub>=1;(1.2)将VCR动作状态模型中的参数采用通行数据,即设定播放时间的参数,跳转持续时间的参数;(2)整个节目视频播放过程分为数据准备和播放两个阶段;所述的步骤(2)进一步包括:(2.1)数据准备阶段,步骤2.1.1,播放控制模块PlayController向数据调度模块DataScheduler发送一个开始begin消息置seg=0,表示第一块媒体数据,数据调度模块DataScheduler开始进行数据调度,播放控制模块PlayController记录时间戳TS<sub>begin</sub>,即TS<sub>begin</sub>=simTimeO,其中simTimeO表示取当前仿真系统的时间戳;步骤2.1.2,数据调度模块DataScheduler进行数据调度对seg进行调度,把收满的BM数据块转移到播放缓冲区PlayBuffer,同时为了最大保证播放的连续,会用自身的数据调度算法进行其它数据的调度;转到步骤2.1.3;步骤2.1.3,数据调度模块DataScheduler向播放控制模块PlayController发送ready信号,告知播放控制模块PlayController已经可以开始进行播放;此时,进入播放阶段;(2.2)播放阶段,步骤2.2.1,是否是第一次开始播放,若是,则转到步骤2.2.2,否则转到步骤2.2.3;步骤2.2.2,初始化P,P<sub>last</sub>,TS<sub>0</sub>,TS<sub>1</sub>,TS<sub>start</sub>,TS<sub>end</sub>使得P.offset=0,P.chunk=0,P<sub>last</sub>.offset=0,P<sub>last</sub>.chunk=0,TS<sub>0</sub>=‑1,TS<sub>1</sub>=‑1,TS<sub>start</sub>=‑1,TS<sub>end</sub>=‑1,即让P和P<sub>last</sub>都指向播放缓冲区PlayBuffer的起始位置;P的含义是播放指针,表示当前的播放位置;P<sub>last</sub>的含义是记录上次播放位置;Ts<sub>start</sub>的含义是进行第一次播放动作的仿真时间戳;TS<sub>0</sub>的含义是进行一次播放动作开始的仿真时间戳;TS<sub>1</sub>的含义是一次播放动作结束的仿真时间戳;TS<sub>end</sub>的含义是用户会话结束的仿真时间戳;步骤2.2.3,由公式分布密度函数是<img file="FDA0000763742550000021.GIF" wi="536" he="138" />产生播放时间步长的随机数t<sub>0</sub>;步骤2.2.4,播放控制模块PlayController从播放缓冲区PlayBuffer根据可用BM个数计算播放定时器的持续时间t,方法是:从P点处往后遍历播放缓冲区PlayBuffer,直到BM的offset不等于‑1,记录BM的个数n,若n>0,那么计算n块BM可以播放的时间t,计算公式:t=n*(BMSize/BitRate),跳到步骤2.2.8;若n≤0,转到步骤2.2.5;步骤2.2.5,判断若TS<sub>0</sub>等于‑1,则跳到步骤2.2.7;否则跳到步骤2.2.6;步骤2.2.6,记录TS<sub>1</sub>=simTimeO,将TS<sub>0</sub>,TS<sub>1</sub>同时写入数据库,并重置TS<sub>0</sub>,TS<sub>1</sub>,即TS<sub>0</sub>=‑1,TS<sub>1</sub>=‑1;步骤2.2.7,那么播放控制模块PlayController向数据调度模块DataScheduler发送请求数据require data的信号,信号中携带有seg信息,表示出现“卡”的位置的数据块,转到数据准备阶段的步骤2.1.2;步骤2.2.8,若t<sub>0</sub>>t,那么令t=t<sub>0</sub>;步骤2.2.9,启动定时器T<sub>pl</sub>,其到期时间间隔为t.若TS<sub>0</sub>等于‑1,则记录TS<sub>0</sub>=simTimeO,若TS<sub>start</sub>等于‑1,则记录TS<sub>start</sub>=simTimeO;步骤2.2.10,定时器T<sub>pl</sub>到期,把指针P指向当前播放处,计算公式是P.offset=P<sub>last</sub>.offset+n;播放过的时间记录到P<sub>last</sub>中,计算公式是P<sub>last</sub>.offset=P<sub>last</sub>.offset+n;步骤2.2.11,检查是否已经播放到片尾,即P.offset是否等于N,且P.chunk是否等于M<sub>last</sub>,若是,则跳到步骤2.2.17,否则跳到步骤2.2.12;M<sub>last</sub>表示最后一块BM包含的chunk个数,其计算方法为:M<sub>last</sub>=MediaSizemodChunkSize,其中ChunkSize表示一个Chunk数据块大小,mod是模运算;N的含义是[MediaSize/BMSize],其中MediaSize表示媒体视频文件的大小,单位是byte;BMSize表示BM数据块大小,单位是byte;步骤2.2.12,按照VCR动作转移模型产生下一个VCR操作;步骤2.2.13,该VCR操作是否为停止,若是,则跳到步骤2.2.17;否则跳到步骤2.2.14;步骤2.2.14,判断该VCR操作是否为播放,若是,则跳到步骤2.2.3;否则跳到步骤2.2.15;步骤2.2.15,对跳进和跳退操作,由公式分布密度函数采用参数产生跳转的步长t<sub>step</sub>,其包含的chunk个数为n<sub>chunk</sub>=t<sub>step</sub>/(ChunkSize/BitRate),包含的BM个数为n<sub>BM</sub>=n<sub>chunk</sub>/M,多余的chunk个数r<sub>chunk</sub>=n<sub>chunk</sub> mod M,其中M表示每个BM包含chunk的个数;将播放指针重置,若是跳进动作,则P.offset=P.offset+n<sub>BM</sub>,P.chunk=P.chunk+r<sub>chunk</sub>;若是跳退动作,则P.offset=P.offset‑n<sub>BM</sub>,P.chunk=P.chunk‑r<sub>chunk</sub>,转到步骤2.2.16;步骤2.2.16,记录TS<sub>1</sub>=simTimeO,将TS<sub>0</sub>,TS<sub>1</sub>同时写入数据库,并重置TS<sub>0</sub>,TS<sub>1</sub>,即TS<sub>0</sub>=‑1,TS<sub>1</sub>=‑1,转到步骤2.2.3;步骤2.2.17,若TS<sub>0</sub>不等于‑1,则记录TS<sub>1</sub>=simTimeO,记录TS<sub>end</sub>=simTimeO,将TS<sub>begin</sub>,TS<sub>0</sub>,TS<sub>1</sub>,TS<sub>start</sub>,TS<sub>end</sub>同时写入数据库;步骤2.2.18,播放结束;若定时器T<sub>pl</sub>仍处在调度状态,则将之取消;(3)性能指标计算,仿真结束,模型采集到的性能指标的原始数据用于计算两个重要的用户侧性能指标,分别是节目启动时延和节目播放连续度,仿真过程所采集的原始数据均存储于数据库之中,可通过数据库平台进行计算;(1)节目启动时延:T<sub>start</sub>=TS<sub>start</sub>‑TS<sub>begin</sub>,(2)节目播放连续度:由定义可知,C<sub>play</sub>=t<sub>play</sub>/t<sub>all</sub>,在仿真过程中,假设有n对数据对&lt;TS<sub>0</sub>,TS<sub>1</sub>&gt;存储入数据库当中,则<img file="FDA0000763742550000041.GIF" wi="508" he="78" />而t<sub>all</sub>=TS<sub>start</sub>‑TS<sub>end</sub>,故有<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>C</mi><mrow><mi>p</mi><mi>l</mi><mi>a</mi><mi>y</mi></mrow></msub><mo>=</mo><msubsup><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></msubsup><mrow><mo>(</mo><msub><mi>TS</mi><mrow><mi>o</mi><mi>i</mi></mrow></msub><mo>-</mo><msub><mi>TS</mi><mrow><mn>1</mn><mi>i</mi></mrow></msub><mo>)</mo></mrow><mo>/</mo><mrow><mo>(</mo><msub><mi>TS</mi><mrow><mi>s</mi><mi>t</mi><mi>a</mi><mi>r</mi><mi>t</mi></mrow></msub><mo>-</mo><msub><mi>TS</mi><mrow><mi>e</mi><mi>n</mi><mi>d</mi></mrow></msub><mo>)</mo></mrow><mo>.</mo></mrow>]]></math><img file="FDA0000763742550000042.GIF" wi="806" he="89" /></maths>
地址 100876 北京市海淀区西土城路10号