视频处理方法与系统与流程

文档序号:22321562发布日期:2020-09-23 01:56阅读:94来源:国知局
视频处理方法与系统与流程

本公开涉及一种视频处理方法与系统,且特别涉及应用在超文本协定的动态适应流的视频处理方法与系统。



背景技术:

随着网络技术与视频处理技术的进步,在网络上播放视频或音频已为相当普及的应用。在实际应用中,使用者在观看视频时,可能会需要向前或向后跳转,以观看视频中不同时间点的内容。然而,现有的技术中并未对针对视频跳转的操作进行最佳化,而无法让使用者感受到跳转后的视频可流畅地延续播放。



技术实现要素:

为解决上述问题,本公开一些实施方式提供一种视频处理方法,其包含下列操作:接收跳转指令,并响应于跳转指令确认已存储的数据流内是否包含对应于视频中的第一分段的第一数据;若数据流内未包含第一数据,获取第一分段的一下载网址;根据在接收到跳转指令前的至少一网络速度值产生一预估网络速度值,以根据预估网络速度值与下载网址自一服务器下载该第一数据,其中预估网络速度值低于至少一网络速度值;以及根据第一数据播放第一分段,以自视频中的当前片段跳转至第一分段。

本公开一些实施方式提供一种视频处理系统,其包含至少一存储器与至少一处理器。至少一存储器用以存储一程序码与数据流;以及至少一处理器,用以执行程序码,以执行上述视频处理方法。

综上所述,本公开实施例提供的视频处理系统与视频处理方法可增进影片播放与跳转的效率,并增加影片播放的流畅性。

附图说明

本公开附图的说明如下:

图1为根据本公开一些实施例所绘制的一种视频处理系统的示意图;

图2为根据本公开一些实施例所示出的视频播放方法的流程图;

图3为根据本公开一些实施例所示出图1的多媒体演示说明文件的结构示意图;

图4为根据本公开一些实施例绘制帧缓冲器的示意图;

图5为根据本公开一些实施例绘制配置权重的示意图;以及

图6为根据本公开一些实施例所示出的视频跳转方法的流程图。

符号说明

100:视频处理系统120:客户端

140:服务器it:网络

dd:视频sv:影像数据

sa:声音数据dash:扫描输入端

f1:多媒体演示说明文件c1:至少一程序码

410、420:数据流wn-i:权重

z:预定倍数q1:预定参数

eb:预估网络速度值301:适应组

300:期间303a:初始化数据

302:表示w1、w2:操作

303b:媒体段数据402:标头

401:第一个分段tn、tn+1、tn-4:时间点

400:帧缓冲器bn、bn+1:网络速度值

bn-4:网络速度值wn、wn+1、wn-4:权重

x、x’:跳转时间点p:预设秒数

t1:起始时间t2:结束时间

200:视频播放方法600:视频跳转方法

s210、s220:操作s230、s240:操作

s250、s260:操作s270、s280:操作

s290、s610:操作s620、s625:操作

s630、s640:操作s650、s660:操作

具体实施方式

以下将以附图公开本公开的多个实施方式,为明确说明起见,许多实务上的细节将在以下叙述中一并说明。然而,应了解到,这些实务上的细节不应用以限制本公开。也就是说,在本公开部分实施方式中,这些实务上的细节是非必要的。此外,为简化附图起见,一些现有惯用的结构与元件在附图中将以简单示意的方式示出。

关于本文中所使用的“第一”、“第二”、…等,并非特别指称次序或顺位的意思,亦非用以限定本公开,其仅仅是为了区别以相同技术用语描述的元件或操作而已。如本文所用,词汇“与/或”包含了列出的关联项目中的一个或多个的任何组合。

关于本文中所使用的“耦接”或“连接”,均可指两个或更多个元件相互直接做实体或电性接触,或是相互间接做实体或电性接触,亦可指两个或更多个元件相互操作或动作。

参照图1,图1为根据本公开一些实施例所绘制的一种视频处理系统100的示意图。

视频处理系统100包含客户端120以及服务器140。客户端120经由网络it发送需求至服务器140,以获取视频dd(例如包含影像数据sv以及声音数据sa)。于一些实施例中,网络it可为有线或无线网络,并支持超文本传输协定(hypertexttransferprotocol,http)。于一些实施例中,服务器140可通过http的动态自适应流(dynamicadaptivestreamingoverhttp,dash)的技术传输视频dd。

于一些实施例中,客户端120可通过执行后述的方法200,以播放视频dd。于一些实施例中,客户端120可通过执行后述的方法600,以加快视频跳转(seek)的操作效率。于一些实施例中,客户端120可以为任意电子装置,例如为手机、平板电脑、个人电脑等等。

于一些实施例中,客户端120包含处理器120a、存储器120b以及输入输出(input/output,i/o)接口120c。处理器120a可由至少一数字信号处理电路、中央处理单元(cpu)、特殊应用集成电路(asic)、多处理器、分布式系统或合适的处理电路实施。各种实施至少一处理器120a的电路或单元皆为本公开所涵盖的范围。

存储器120b存储用以处理视频dd的至少一程序码c1。处理器120a可执行存储于存储器120内的至少一程序码c1,以自动地执行自服务器140获取与播放视频dd的操作。例如,至少一程序码c1可用于执行例如为图2或图5所示的多个操作的可执行指令集。于一些实施例中,存储器120b亦可存储后述提及的数据流410、420、权重wn、预定参数q1与/或预定倍数z。

于一些实施例中,存储器120b可为非暂态电脑可读取媒体,例如可为随机存取存储器(ram)、只读存储器(rom)、刚性磁盘与/或光学磁盘,但本公开并不以此为限。

i/o接口120c可自各种控制装置(未示出)接收多个输入或指令(例如为跳转指令cmd),其中所述控制装置可由使用者操作。据此,视频处理系统100可经由i/o接口120c接收的输入或指令被操控。于一些实施例中,i/o接口120c包含显示器,其用以显示视频dd。于各种实施例中,i/o接口120c包含图形化用户接口(gui)、键盘、鼠标、轨迹球、轨迹板、触控屏幕、游标方向键、或上述任意组合,以与处理器120a沟通信息与指令。于一些实施例中,i/o接口120c包含通信电路(例如,网络卡、信号收发器等),以与服务器140建立网络it的连线。

图1中的处理器120a、存储器120b以及i/o接口120c的数量用于示例,但本公开并不以此为限。于各个实施例中,处理器120a、存储器120b与i/o接口120c中每一者的数量可为一或多个。

参照图2,图2为根据本公开一些实施例所示出的视频播放方法200的流程图。于一些实施例中,视频播放方法200由图1中的处理器120a执行。

于操作s210,与服务器140基于http协定建立连结,并获取关联于视频dd的多媒体演示说明(mediapresentationdescription,mpd)文件f1。

于操作s220,解析mpd文件f1,以获得视频dd的分段(fragment)管理信息。

于操作s230,根据分段管理信息,下载视频dd的多个分段的影像数据sv与声音数据sa。

举例而言,客户端120可发起连线需求至服务器140,以基于http协议建立网络it。客户端120通过网络it发送播放视频dd的请求(未示出)至服务器140。响应于此请求,服务器140可传送mpd文件f1至客户端120。客户端120可解析此mpd文件f1,以获得视频dd的分段管理信息。

参照图3,图3为根据本公开一些实施例所示出图1的mpd文件f1的结构示意图。举例而言,处理器120a可执行存储器120b内所存储的解译器或相关软件(未示出),以解析mpd文件f1。于一些实施例中,mpd文件f1具有如图3所示的树状结构。

如图3所示,多个期间300包含一或多个适应组(adaptationset)301。每一适应组301可包含各种不同位元率的视频(与/或音频)的串流方案(即表示302)。每一表示(representation)302包含初始化数据303a与媒体段数据303b。

媒体段数据303b包含视频dd中对应分段的下载网址(url)与信息w1或w2。依据现有的dash技术,分段管理的机制可包含“segmentbase(段基)”机制或“segmenttemplate(段模板)”机制。在“segmentbase”机制中,媒体段数据303b包含信息w1。信息w1指示视频dd中的对应分段的起始时间。在“segmenttemplate”机制中,媒体段数据303b包含信息w2。信息w2指示视频dd的对应分段的总播放时间。

据此,客户端120可依据上述信息开始分别下载视频dd的各个分段所对应的影像数据sv与声音数据sa。在一些实施例中,在下载第一个分段时,由于当前网络速度未知,客户端120可下载具有中间位元率的影像数据sv与声音数据sa。

继续参照图2,于操作s240,分析下载到的分段,以生成帧(frame)缓冲器400。

于操作s250,存储对应于影像数据sv的多个帧缓冲器400为数据流410,并存储对应于声音数据sa的多个帧缓冲器400为数据流420。

参照图4,图4为根据本公开一些实施例绘制帧缓冲器400的示意图。如图4所示,在下载到视频dd的第一个分段401后,处理器120a可读取此第一个分段401的标头(header)402。标头402可包含帧的数量、每一个帧的大小、时间与关键帧等信息。接着,处理器120a可根据上述信息切割第一个分段401为多个帧,并将每一个帧的内容与相关信息存储为一个帧缓冲器400。

如图4所示,处理器120a可生成对应于影像数据sv的多个帧缓冲器400,并存储为数据流410。处理器120a可生成对应于声音数据sa的多个帧缓冲器400并存储为数据流420。于一些实施例中,数据流410与420可存储于图1中的存储器120b。于一些实施例中,数据流410与420彼此独立。

图4仅以第一个分段401为例,但本公开并不以此为限。于各个实施例中,处理电路120会分析视频dd中的每一个已下载的分段,以产生对应于不同分段的多个数据流410与420。

继续参照图2,于操作s260,读取数据流410与420,以播放视频dd。例如,处理器120a可自存储器120b一帧帧地读取数据流410与420的数据,以进行解码与显示等后续操作。

于操作s270,计算先前下载分段的网络速度值,并根据此网络速度值调整欲下载的下一分段所具有的位元率。在执行操作s270后,操作s230再次被执行,以继续下载后续片段。

于一些实施例中,处理器120a可依据已下载片段的数据量除以下载此片段的总时间来评估当前网络速度。举例而言,第一个分段401具有x位元组,且下载第一个分段401耗费了y秒。处理器120a可将x除以y得到一个基础值。接着,处理器120a可将基础值乘以预定倍数z得到下载第一个片段401的网络速度值。依据网络速度值与当前网络it的实际情况,处理器120a可选择第二个分段的适当位元率。于一些实施例中,预定倍数z可为2~8之间的数值,但本公开并不以此为限。

于一些实施例中,当欲下载当前片段时,处理器120a可依据先前数个分段的网络速度值来选择欲下载的片段的位元率。举例而言,当欲下载第n+1个分段时,处理器120a可利用下式1执行一加权平均运算,以依据第n+1个分段的前面5个分段对应的网络速度值bn~bn-4来计算网络速度值bn+1。

其中,wn-i表示为第n-i个分段所对应的权重,权重wn(即i=0,对应至第n个分段)最大,且权重wn-4(即i=4,即对应至第n-4个分段)最小。

参照图5,图5为根据本公开的一些实施例绘制配置权重wn的示意图。换言之,如于一些实施例中,一指令(例如为前述播放视频dd的请求或后述的跳转指令cmd)是在时间点tn+1被发送给处理器120a。于此条件下,若在时间点tn+1前的网络速度值所对应的时间点(例如为时间点tn)越接近于第一时间点,分配到此先前的网络速度值的权重越大。反之,若先前的网络速度值所对应的时间点(例如为时间点tn-4)越远离于时间点tn+1,分配到此先前的网络速度值的权重越小。

通过上述设方式,可依据网络it的最近的速度变化下载具有适合位元率的第n+1个分段。如此一来,可确保视频dd可以被流畅地播放,并同时确保了视频dd的画质。

参照图6,图6为根据本公开一些实施例所示出的视频跳转方法600的流程图。于一些实施例中,视频跳转方法600由图1中的处理器120a执行。

于操作s610,响应于跳转指令cmd,暂停播放视频dd并暂停下载分段。

例如,使用者可通过i/o接口120c输入跳转指令cmd,以跳转(快转或倒转)至视频dd的另一时间点的内容。响应于跳转指令cmd,处理器120a可暂停播放视频dd当前的内容,并清除已送入解码与播放的暂存内容。同时,暂停下载分段的操作(即操作s230),以等待下载新的分段。

于操作s620,根据跳转指令cmd所指示的时间点,确认数据流410与420中是否存在对应于此时间点的数据。若数据流410与数据流420内具有对应于此时间点的数据,操作s625被执行。反之,若数据流410与数据流420内不具有对应于此时间点的数据,操作s630被执行。

于操作s625,自数据流410与420读取对应于时间点x的数据,并恢复下载其他分段。

于操作s660,播放对应于此时间点的分段。

例如,如图4所示,每一数据流410与420皆具有对应的起始时间t1与结束时间t2。当使用者欲跳转到视频dd中的时间点x,处理器120a可根据起始时间t1与结束时间t2与时间点x,确认对应于时间点x的数据是否已经存在于数据流410与420。若对应于时间点x的数据已经存在,处理器120a可读取此数据,以进行解码与播放的操作。同时,处理器120a可恢复继续下载其他分段。

于一些实施例中,若欲跳转的时间点x为先前的时间点(即倒带),通过操作s620,可从已下载的数据流410与420读取对应的分段,以更有效率地完成视频跳转的操作。

于操作s630,计算对于此时间点的分段的位置。

若在已下载的数据流410与420不存在对应时间点x的数据,处理器120a可依据时间点来计算新分段(时间点x对应的分段)的位置。例如,若管理机制为“segmentbase”机制,处理器120a可直接将时间点x与信息w1内的起始时间进行比较,以确认新分段的位置。例如,时间点x为5秒,第一个分段的起始时间为2秒,且第二个分段的起始时间为4.5秒,第三个分段的起始时间为7秒。处理器120a比较上述时间后可确认时间点x对应的分段为第二个分段。

或是,若管理机制为“segmenttemplate”机制,处理器120a可根据加总多个分段所对应的信息w2内中的总播放时间,以得到每一个分段的起始时间。接着,处理器120a比较每一分段的起始时间与时间点x,以确认新分段的位置。例如,时间点x为5秒,第一个分段的总播放时间为2秒,第二个分段的总播放时间为2.5秒,且第三个分段的总播放时间为2.5秒。处理器120a相加第一分段与第二分段的总播放时间得到第三个分段的起始时间为4.5秒,并相加第一分段至第三分段的总播放时间得到第四个分段的起始时间为7秒。处理器120a将上述起始时间与时间点x比较后,可确认时间点x对应的分段为第三个分段。

于一些实施例中,处理器120a自欲跳转的时间点减去预设秒数p(例如为1秒,但并不以此为限),以产生新的跳转时间点x’(如图4所示),并利用此新的跳转时间点来执行操作s630。例如,在前面的例子中,时间点x为5秒,处理器120a会产生新的跳转时间点x’为4秒(即5-1),并使用跳转时间点x’执行操作s630,以决定欲跳转的分段。通过此设置方式,可避免部分情况造成视频跳转失败,以增加跳转操作的稳定性。

继续参照图6,于操作s640,根据至少一先前网络速度值产生预估网络速度值eb,以决定欲下载对应于此时间点的分段的位元率。

于操作s650,下载对应于此时间点的分段的影像数据sv与声音数据sa。

于一些实施例中,处理器120a可依据在接收到跳转指令cmd前所下载的数个分段的网络速度值与预定参数q1,以决定预估网络速度值eb。此处的操作类似于式1。例如,处理器120a通过式1决定出一个网络速度值(例如为式1的bn+1)后,可根据此网络速度值与预定参数q1的乘积产生预估网络速度值eb。其中,预定参数q1可为小于1的正数,例如可为0.5,但本公开并不以此为限。

通过设定预定参数q1,预估网络速度值eb会低于先前的网络速度值。如此,处理器120a可挑选并下载具有较低位元率的新分段的影像数据sv与声音数据sa。如此,需要下载的数据量可以降低,以加快新分段的下载速度,借此增加视频跳转的效率与播放的流畅度。

接着,处理器120a可执行类似于图2中操作s230至s250的操作,以下载对应于新分段的视频数据sv与声音数据sa并生成新的帧缓冲器与新的数据流。于此操作中,处理器120a可进一步确认欲跳转的时间点是否有存在于新的数据流,以提高视频跳转的稳定性。

在产生新的数据流后,处理器120a可自新的数据流读取新分片的数据,并进行解码与显示(即操作s630)。

上述方法200或600的多个操作仅为示例,并非限于上述示例的顺序执行。在不违背本公开内容的各实施例的操作方式与范围下,在方法200或600下的各种操作当可适当地增加、替换、省略或以不同顺序执行。

综上所述,本公开实施例提供的视频处理系统、视频播放方法与视频跳转方法可增进影片播放与跳转的效率,并增加影片播放的流畅性。

虽然本公开已以实施方式公开如上,然其并非限定本公开,任何本领域技术人员,在不脱离本公开的精神和范围内,当可作各种变动与润饰,因此本公开的保护范围当视权利要求所界定者为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1