视频分发设备、视频接收设备、视频分发方法和记录介质与流程

文档序号:15743909发布日期:2018-10-23 22:45阅读:151来源:国知局

本发明涉及视频分发设备、视频分发方法和记录介质。



背景技术:

近年来,因特网有所发展,并且使用利用互联网协议(IP)网络来实时地分发利用例如照相机所拍摄到的视频图像的网络照相机。这种视频图像的分发用于例如防止办公室、商业设施等内的犯罪,或者监视诸如滑雪场和动物园等的休闲设施内的情形。

利用网络照相机的视频图像分发使用诸如实时传输协议(RTP)等的协议。然而,RTP存在以下问题:根据网络环境使得数据未被传送至目的地接收设备、以及需要接收设备包括RTP兼容的应用程序,由此阻止了RTP变得普及。

另一方面,存在视频分发的标准,诸如由运动图像专家组(MPEG)进行了标准化的基于超文本传输协议(HTTP)的动态自适应流媒体(DASH)、以及HTTP实时流媒体(HLS)等。这些标准是使用HTTP的自适应码率流媒体技术,并且这种视频分发技术越来越多地被使用。

自适应码率流媒体技术克服了上述的RTP的问题,并且使得能够在通常的浏览器上接收和再现视频图像。例如,在一般的DASH分发中,发送服务器将分辨率或码率不同的多个视频数据分割成被称为数秒单位的“片段(segment)”的视频文件。客户端顺次下载分割得到的片段以再现视频文件。具体地,客户端首先获取描述与视频图像有关的全体信息的媒体呈现描述(MPD)文件,并且从该MPD文件中选择适当分辨率或码率的视频流。然后,客户端根据MPD文件的描述来以片段为单位下载并再现MPEG-2传输流(TS)或MPEG-4(MP-4)文件的视频数据。

国际公开WO/2014/010501论述了包括片段转换单元和控制信息转换单元的再现设备。片段转换单元将具有短的时间长度并且形成实时广播节目的大量片段转换成用于记录并再现图像的具有长的时间长度的较少量片段,并且将这些较少量片段存储在存储单元中。此外,控制信息转换单元将包含大量片段的再现所用的信息的控制信息转换成包含较少量片段的再现所用的信息的控制信息。

在使用上述的自适应码率流媒体技术的运动图像分发服务中,如果片段时间缩短,则客户端需要反复地获取片段以连续地再现视频图像。考虑到片段获取的处理负荷,通常以数秒~数十秒为单位生成片段。在这种情况下,客户端在实时分发时在完全生成第一个片段之前不能下载数秒~数十秒的数据,并且这导致分发延迟。

另一方面,例如在网络照相机的实时视频分发的情况下,在多个客户端之间,针对分发延迟的容许度可能不同。例如,仅用于查看视频图像的客户端允许一定程度的分发延迟,但要求减少下载次数以进行流畅再现。在这种情况下,期望将长的片段分发至客户端。

另一方面,例如,优先实时性能的客户端(诸如进行照相机控制的客户端等)即使在下载次数增加的情况下也要求缩短分发延迟。在这种情况下,期望将短的片段分发至客户端。

然而,例如,诸如网络照相机等的嵌入式装置通常具有低的中央处理单元(CPU)性能和有限的存储器容量。因而,这种嵌入式装置难以根据来自多个客户端的多个不同请求来准备片段时间不同的多个类型的视频文件。



技术实现要素:

本发明涉及能够通过例如具有以下结构来适当地分发视频图像的视频分发设备。

根据本发明的方面,一种视频分发设备,包括:保持单元,用于按预定单位来保持所拍摄到的视频图像;接收单元,用于接收从外部的接收设备发送来的与片段长度有关的请求;生成单元,用于根据所述保持单元所保持的所述预定单位,来生成与所述接收单元所接收到的请求相对应的片段长度的视频图像的片段;以及分发单元,用于向所述接收设备分发所述生成单元所生成的片段。

一种视频接收设备,包括:发送单元,用于将与从视频分发设备所分发的视频图像的片段长度有关的请求发送至所述视频分发设备;接收单元,用于从所述视频分发设备接收具有与所述片段长度有关的请求中所指定的所述片段长度的片段,其中该片段是根据所拍摄到的视频图像的预定单位所生成的;以及再现单元,用于顺次地再现所述接收单元所接收到的片段。

一种视频分发方法,包括:按预定单位来保持所拍摄到的视频图像;接收从外部的接收设备发送来的与片段长度有关的请求;根据所保持的所述预定单位,来生成与所接收到的请求相对应的片段长度的视频图像的片段;以及向所述接收设备分发所生成的片段。

一种非暂时性计算机可读记录介质,其存储用于使计算机用作以下单元的程序:保持单元,用于按预定单位来保持所拍摄到的视频图像;接收单元,用于接收从外部的接收设备发送来的与片段长度有关的请求;生成单元,用于根据所述保持单元所保持的所述预定单位,来生成与所述接收单元所接收到的请求相对应的片段长度的视频图像的片段;以及分发单元,用于向所述接收设备分发所述生成单元所生成的片段。

通过以下参考附图对典型实施例的说明,本发明的其它特征将变得明显。

附图说明

图1示意性示出根据本公开的视频分发系统的结构。

图2是示出作为视频分发设备的照相机服务器的硬件结构的硬件结构图。

图3是示出利用图2所示的硬件结构所实现的照相机服务器的功能结构的功能框图。

图4是示出接收设备的功能结构的功能框图。

图5示出作为根据本发明的典型实施例的发送形式的示例的基于超文本传输协议(HTTP)的动态自适应流媒体(DASH)分发的发送数据。

图6示出在单位视频图像是单个视频帧的情况下的第一视频流和第二视频流的结构。

图7是示出使用第一视频流来发送视频图像的处理的示例的序列图。

图8是示出在视频分发系统中将视频图像发送至第一客户端和第二客户端这两者的情况的序列图。

图9是示出片段管理程序的处理的示例的流程图。

图10是示出分发管理单元所执行的处理的示例的流程图。

图11是示出分发管理单元所执行的处理的另一示例的流程图。

具体实施方式

以下将参考附图来详细说明本发明的各种典型实施例。应当注意,以下所述的典型实施例仅是实现方式的示例,将根据本发明应用于的设备的结构或者各种条件进行适当修改或改变,并且并不意图限制本发明的范围。此外,向相同的元件赋予相同的附图标记,并且省略了针对这些相同元件的重复说明。

视频系统的结构

图1示意性示出根据本公开的视频分发系统100的结构的示例。如图1所示,视频分发系统100包括照相机服务器200和客户端120。照相机服务器200是视频分发设备,并且客户端120是接收设备。照相机服务器200和客户端120经由网络110彼此连接。照相机服务器200包括照相机(摄像装置),并且将所拍摄到的视频图像经由网络110分发至客户端120。视频分发系统100能够进行例如根据由运动图像专家组(MPEG)进行了标准化的基于超文本传输协议(HTTP)的动态自适应流媒体(DASH)、HTTP实时流媒体(HLS)等的视频分发。具体地,视频分发系统100能够进行使用利用HTTP的自适应码率流媒体技术的视频分发。

客户端120经由网络110访问照相机服务器200以从照相机服务器200获取要分发的视频图像。在本典型实施例中,术语“分发”不仅是指向多个客户端(接收设备)的发送,而且是指仅向单个客户端的发送。

网络110是通信网络,并且包括遵循诸如以太网(Ethernet)等的通信标准的多个路由器、交换机、线缆等。可选地,网络110可以利用诸如因特网、局域网(LAN)或公共无线网络等的不同通信网络配置成。尽管为了简化说明、在图1中示出一个照相机服务器200和一个客户端120,但视频分发系统100可以包括一个照相机服务器200和多个客户端120、多个照相机服务器200和一个客户端120、或者多个照相机服务器200和多个客户端120。此外,在本典型实施例中,可以自由地选择照相机服务器200和客户端120之间的通信网络的通信标准、规模和结构。

图2示出作为视频分发设备的照相机服务器200的硬件结构的示例。照相机服务器200的硬件例如可以主要包括半导体装置和使这些半导体装置相连接的配线。如图2所示,照相机服务器200包括中央处理单元(CPU)201、一次存储装置202、二次存储装置203、图像拍摄接口(I/F)205和网络I/F 206。此外,这些组件经由内部总线204彼此连接。照相机服务器200还包括传感器207,其中该传感器207被配置为向图像拍摄I/F 205供给图像。

CPU 201综合控制照相机服务器200中所包括的各组件的操作。一次存储装置202是诸如随机存取存储器(RAM)等的高速且可重写的存储装置,并且可以是易失性存储装置。一次存储装置202是加载有操作系统(OS)、各种程序和各种数据的存储装置,并且可以用作OS和各种程序的工作区域。

二次存储装置203例如是诸如闪速存储器、硬盘驱动器(HDD)和安全数字(SD)(注册商标)卡等的非易失性存储装置,并且可以主要用作OS、各种程序和各种数据的半永久存储区域。二次存储装置203可以用作各种数据的短期存储区域。照相机服务器200能够基于一次存储装置202和二次存储装置203中所存储的各种程序来执行各种处理,并且以下将说明该操作的详情。

图像拍摄I/F 205连接至传感器207,将从传感器207供给的视频数据转换成预定格式,对转换得到的视频数据进行压缩,并且将压缩后的视频数据传送至一次存储装置202。网络I/F 206是用于连接至网络110的接口,并且经由诸如Ethernet等的通信介质与客户端120等进行通信。网络I/F 206可以包括用于顺次发送所存储的数据的发送缓冲器。发送缓冲器例如发送所存储的数据,然后清除该缓冲器中的数据,并且等待要发送的下一数据的存储。发送缓冲器例如可以是按存储顺序输出数据的先进先出(FIFO)缓冲器。

传感器207是例如照相机的光学传感器,并且使用诸如电荷耦合器件(CCD)传感器或互补金属氧化物半导体(CMOS)传感器等的光检测元件来拍摄视频图像。

照相机服务器200的功能结构

图3是示出利用图2所示的硬件结构所实现的照相机服务器200的功能结构的示例的功能框图。如图3所示,照相机服务器200包括摄像处理单元210、暂时存储单元214和片段管理单元211。摄像处理单元210、暂时存储单元214和片段管理单元211分别是摄像单元、保持单元和生成单元。此外,照相机服务器200还包括分发管理单元212和网络处理单元213。分发管理单元212包括分发单元和接收单元的功能中的一部分功能,并且网络处理单元213包括接收单元和分发单元的其它功能。可选地,照相机服务器200可以不包括摄像处理单元210,并且摄像单元可被配置为与摄像处理单元210分开的装置。

摄像处理单元210拍摄视频图像。暂时存储单元214按单位视频图像存储所拍摄到的视频图像。分发管理单元212接收从客户端120发送来的与片段长度有关的请求,并且给出用以发送基于该请求所生成的片段的指示。片段管理单元211根据所存储的单位视频图像来生成与所接收到的请求相对应的片段长度的片段。网络处理单元213基于来自分发管理单元212的指示来分发该片段。

片段长度可以由一个片段中所包含的单位视频图像的数量来定义。此外,单位视频图像可以由一个视频帧或多个视频帧来定义。此外,片段可以是通过将图片组(GOP)分割成一个组或多个组所获得的单位。暂时存储单元214可以是作为RAM等的一次存储装置202的区域中的一部分区域。图3所示的功能结构通过图2所示的硬件和使用硬件结构进行工作的软件的组合来实现。例如,各功能结构可以是在OS上运行的程序。具体地,摄像处理单元210可以是摄像处理程序配置成的,分发管理单元212可以是分发管理程序配置成的,片段管理单元211可以是片段管理程序配置成的,并且网络处理单元213可以是网络处理程序配置成的。

具体地,摄像处理单元210经由图像拍摄I/F 205获取传感器207所生成的视频帧,并且对所获取到的视频帧执行编码处理。此外,摄像处理单元210将编码后的视频帧连同视频再现所需的运动图像元信息(诸如序列参数集(SPS)和图片参数集(PPS)等)一起存储在暂时存储单元214中。换句话说,摄像处理单元210将各自是单位视频图像中的相应单位视频图像的视频帧存储在暂时存储单元214中。

在本实施例中,尽管假定片段中所包括的各单位视频图像是一个视频帧,但单位视频图像不必是单个视频帧,并且例如可以是多个视频帧。以下将说明单位视频图像是单个视频帧的情况作为示例。

暂时存储单元214暂时存储所生成的视频帧和运动图像元信息。片段管理单元211分别根据由摄像处理单元210存储在暂时存储单元214中的运动图像元信息和视频帧来生成初始化片段和片段(片段信息),并且向分发管理单元212进行通知。初始化片段是包含视频再现所需的信息的片段,并且是根据例如包括SPS和PPS的运动图像元信息所生成的。

分发管理单元212经由网络处理单元213发送用于描述所有可分发的视频流信息的媒体呈现描述(MPD)文件、初始化片段和片段。片段管理单元211将要分发至客户端120的视频图像的与片段长度有关的信息作为片段管理信息来管理。与片段长度有关的信息例如可以是一个片段中所包含的单位视频图像的数量。例如,一个片段中所包含的单位视频图像(视频帧)的数量可以由分发管理单元212基于来自客户端120的请求在开始时指定。片段管理单元211通过将与从客户端120请求的并且利用片段管理信息指定的单位视频图像的数量相对应的单位视频图像进行组合来生成片段。分发管理单元212将与该片段有关的报头信息添加至片段管理单元211所生成的片段,并且将具有该报头信息的片段分发至客户端120。

在下文,片段管理单元211所生成的片段还被称为片段信息。该片段信息是与一个片段或多个片段中所包含的视频帧有关的信息。与视频帧有关的信息可以是视频数据、或者例如暂时存储单元214中的用于存储片段中所包含的视频帧的视频数据的地址。这样,片段管理单元211通过在发送片段时读取暂时存储单元214中的所指定的地址的视频数据来形成片段,而无需生成并存储包含视频数据的片段文件。

片段管理单元211保持暂时存储单元214内的视频帧(片段信息),直到该片段信息被释放为止。分发管理单元212生成针对所生成的片段的报头部分,将该报头部分与同片段信息中所描述的视频帧相对应的视频数据进行组合,并且将具有该报头部分的视频数据经由网络处理单元213发送至客户端120。

可选地,分发管理单元212可以在从客户端120接收到针对包含视频数据的片段文件的请求之后,发送该片段文件。根据诸如超文本传输协议版本2(HTTP/2)或WebSocket等的协议,即使没有接收到请求,分发管理单元212也可以生成视频帧,并且一旦完全地生成了片段文件,则顺次发送该视频帧。

客户端120的结构

客户端120的硬件结构例如主要包括半导体装置和使这些半导体装置相连接的配线,并且可以省略图2的照相机服务器200的硬件结构中的传感器207和图像拍摄I/F 205。此外,客户端120的硬件结构例如可以包括诸如鼠标或键盘等的用于输入信号的输入单元以及用于显示输入内容和输入指示的结果的图像的显示单元。

客户端120的功能结构

图4是示出客户端120的功能结构的示例的功能框图。图4所示的功能结构是通过硬件与使用硬件结构进行工作的软件的组合来实现的。如图4所示,客户端120包括发送单元121、接收单元122和再现单元123。发送单元121发送要分发的视频图像的与片段长度有关的请求。接收单元122接收基于该请求的片段长度的片段。再现单元123顺次再现所接收到的片段。此外,客户端120还可以包括用于存储所接收到的片段的存储单元124。

分发数据的结构的示例

图5示出作为本典型实施例中的发送形式的示例的DASH分发的发送数据。如图5所示,该发送数据包括包含视频流信息的MPD文件400。在MPD文件400中,定义了与各视频流有关的分辨率和编码信息、与作为按单位时间划分得到的视频文件的片段有关的信息等,作为一个或多个视频流信息。

图5示出在MPD文件400中定义两个视频流的示例。第一视频流401例如是一个片段为1秒的视频文件,并且尽管客户端120要下载的文件的数量增加、但第一视频流401是以高的实时性能和低的延迟可再现的。另一方面,第二视频流402例如是一个片段为3秒的视频文件,并且尽管在客户端120处在再现期间发生延迟,但要下载的文件的数量减少。

在本典型实施例中,尽管为了简化说明而将低延迟的视频流的片段时间指定为1秒,但如果期望与例如照相机控制相比以更高的实时性能进行发送,则期望将片段时间设置为1秒以下。此外,MPD文件400可以响应于来自客户端120的请求而定义两个以上的视频流或者一个视频流。

图6示出在单位视频图像由一个视频帧构成的情况下的第一视频流401和第二视频流402的结构。在该示例中,为了使说明容易理解,针对每秒要再现的视频帧的数量是3个。可选地,针对每秒要再现的视频帧的数量可以是任何数量,并且例如可以是60个以上。图6中的视频帧500~511是由摄像处理单元210顺次生成的并且存储在暂时存储单元214中。

在图6中,视频帧500和509是包括配置完整视频帧所需的视频信息的I帧。此外,其它的视频帧501~508、510和511是包括与紧前图像的差异有关的视频信息的P帧。

在第一视频流401中,第一片段520包含视频帧500、501和502,并且第二片段521包含视频帧503、504和505。此外,第三片段522包含视频帧506、507和508,并且第四片段523包含视频帧509、510和511。在第二视频流402中,第一片段530包含视频帧500~508,并且第二片段531至少包含视频帧509、510和511。

此外,第二片段531在这之后还包括由摄像处理单元210生成并存储在暂时存储单元214中的视频帧(未示出)。尽管在图6所示的示例中将P帧描述为与差异有关的视频信息,但与差异有关的视频信息可以是B帧。

视频流的分发序列

图7是示出采用第一视频流401将视频图像分发至客户端120的处理的示例的序列图。在该序列图中,省略了片段管理单元211、网络处理单元213和暂时存储单元214的说明,以避免该图变复杂。针对结构的说明将包括在以下针对分发管理单元212的处理的说明中。从摄像处理单元210向分发管理单元212的各箭头包括例如经由暂时存储单元214的视频帧的写入以及/或者基于视频帧的写入所发出的通知。此外,片段生成包括片段管理单元211从暂时存储单元214读取视频帧并生成片段的处理。

如图7所示,首先,在步骤S601中,客户端120将用于获取作为视频信息的集合的MPD文件400的获取请求发送至照相机服务器200。在步骤S602中,接收到该获取请求的照相机服务器200的分发管理单元212生成存储有可发送的视频流信息的MPD文件400,并将所生成的MPD文件400发送至客户端120。

在步骤S603中,客户端120基于客户端120的CPU容量、显示分辨率等来从所接收到的MPD文件400中选择要接收的视频流,并且将用于获取包含再现所需的信息的初始化片段的获取请求发送至照相机服务器200。该初始化片段获取请求可以包含要分发至客户端120的视频数据的片段长度。在下文,将说明客户端120选择各片段包含三个视频帧的第一视频流401的情况。

在步骤S610中,为了发送初始化片段,接收到初始化片段获取请求的照相机服务器200内的分发管理单元212请求摄像处理单元210开始生成视频流。在步骤S611中,接收到该请求的摄像处理单元210生成SPS/PPS和作为第一视频帧的I帧,并且将该SPS/PPS和I帧存储在暂时存储单元214中。在步骤S604中,片段管理单元211读取SPS/PPS并生成包含该SPS/PPS的运动图像元信息作为初始化片段,并且分发管理单元212将所生成的初始化片段发送至客户端120。在步骤S612~S616中,独立于与客户端120的通信,摄像处理单元210顺次生成视频帧并向分发管理单元212进行通知。

在步骤S605中,在接收到初始化片段之后,客户端120将用于获取第一片段的获取请求发送至照相机服务器200。在步骤S613中,摄像处理单元210存储第三视频帧数据,然后在步骤S606中,分发管理单元212组合第一视频帧数据~第三视频帧数据,并且将组合后的数据作为第一片段发送至客户端120。此时,分发管理单元212可以将作为片段文件的报头信息和与片段长度相对应的数量的单位视频数据(第一视频帧数据~第三视频帧数据)顺次地存储在发送缓冲器中。这样,尽管在照相机服务器200中没有存储一个片段的视频图像作为视频文件,但客户端120可以接收到视频图像作为一个片段的文件。

在步骤S609中,在接收到第一片段之后,客户端120可以进行视频再现。客户端120可以在预定时间的缓冲之后开始视频再现。在步骤S607中,客户端120发送用于获取接着的第二片段的获取请求。

在步骤S616中,摄像处理单元210将第六视频帧数据存储在暂时存储单元214中,并且接收到该请求的分发管理单元212读取第四视频帧数据~第六视频帧数据。在步骤S608中,分发管理单元212组合第四视频帧数据~第六视频帧数据,并且将组合后的数据作为第二片段发送至客户端120。

此时,分发管理单元212可以将作为片段文件的报头信息和与片段长度相对应的数量的单位视频数据(第四视频帧数据~第六视频帧数据)顺次地存储在发送缓冲器中。这样,尽管在照相机服务器200中没有存储一个片段的视频图像作为视频文件,但客户端120可以接收到视频图像作为一个片段的文件。为了避免视频图像的中断,客户端120可以在再现第一片段中所包含的视频帧之后,顺次地再现第二片段中所包含的视频帧。

图7所示的延迟时间是存储第一视频帧的步骤S611的时刻和发送第一片段的步骤S606的时刻之间的经过时间。该延迟时间在视频图像发送期间恒定地发生,并且在该延迟时间短的情况下实时性能高,而在该延迟时间长的情况下实时性能低。例如,在发送一个片段包括六个视频帧的视频流的情况下,在生成第六视频帧之后发送第一片段,因此延迟时间是步骤S611的时刻和步骤S608的时刻之间的时间差。

如上所述,本典型实施例中的照相机服务器200按作为单位视频图像的视频帧存储视频图像,并且在发送时,照相机服务器200生成与请求相对应的片段长度的片段并且发送所生成的片段。这样,在减少针对照相机服务器200的CPU的处理负荷以及/或者存储器大小的同时,发送与来自客户端(视频接收设备)120的请求相对应的视频图像。此外,照相机服务器200能够响应于请求来以更短的延迟时间实时地发送视频图像。此外,由于下载次数减少,因此照相机服务器200能够响应于请求来以更高的发送效率和再现质量实时地发送视频图像。

图8是示出以下情况的序列图:图1的视频分发系统100中的客户端120是多个客户端即第一客户端131和第二客户端132,并且向第一客户端131和第二客户端132这两者发送视频图像。在该序列图中,除第七视频帧及其后续帧的处理以外,第一客户端131的处理与图7中的客户端120的处理相同,因而省略了直到第六视频帧为止的冗余说明。在步骤S617~S622中,对于第七视频帧及其后续帧,与第一视频帧的情况相同,独立于与第一客户端131的通信,摄像处理单元210顺次生成视频帧数据并向分发管理单元212进行通知。

在步骤S609中,第一客户端131将用于获取第三片段的获取请求发送至照相机服务器200。在步骤S619中,利用摄像处理单元210向分发管理单元212通知第九视频帧数据,然后在步骤S610中,分发管理单元212读取并组合第七视频帧数据~第九视频帧数据,并且将组合后的数据作为第三片段发送至第一客户端131。第一客户端131在接收到第三片段之后可以进行视频再现。然后,在步骤S611中,第一客户端131发送用于获取接着的第四片段的获取请求。在步骤S622中,利用摄像处理单元210向接收到该请求的分发管理单元212通知第十二视频帧数据,并且分发管理单元212读取第十视频帧数据~第十二视频帧数据。然后,在步骤S612中,分发管理单元212组合第十视频帧数据~第十二视频帧数据,并且将组合后的数据作为第四片段发送至第一客户端131。

接着,以下将说明第二客户端132的处理。与第一客户端131的处理相同,进行针对MPD文件400和初始化片段的请求,并且在第二客户端132和分发管理单元212之间发送MPD文件400和初始化片段,但省略了该操作的例示以避免图8变复杂。以下将说明在初始化片段的接收完成之后的第二客户端132的处理。

如图8所示,在步骤S651中,第二客户端132将用于获取第一片段的获取请求发送至照相机服务器200。在步骤S616中,利用摄像处理单元210向分发管理单元212通知第六视频帧数据,然后在步骤S653中,分发管理单元212读取并组合第一视频帧数据~第六视频帧数据,并且将组合后的数据作为第一片段发送至第二客户端132。在接收到第一片段之后,第二客户端132进行视频再现。此外,第二客户端132可以在预定时间的缓冲之后开始视频再现。在步骤S654中,第二客户端132发送用于获取接着的第二片段的获取请求。在步骤S622中,利用摄像处理单元210向接收到该请求的照相机服务器200的分发管理单元212通知第十二视频帧数据,然后读取第七视频帧数据~第十二视频帧数据。然后,在步骤S656中,分发管理单元212组合第七视频帧数据~第十二视频帧数据,并且将组合后的数据作为第二片段发送至第二客户端132。

具体地,例如,分发管理单元212针对一个片段包括三个视频帧的视频图像接收与第一片段长度有关的请求。分发管理单元212针对一个片段包括六个视频帧的视频图像接收与第一片段长度不同的第二片段长度有关的请求。分发管理单元212读取与第一片段长度相对应的数量的视频帧数据(单位视频图像)和与第二片段长度相对应的数量的视频帧数据(单位视频图像),并且将这些视频图像分别作为第一片段长度的片段和第二片段长度的片段发送至请求源。如上所述,照相机服务器200按作为单位视频图像的视频帧存储视频图像,并且在发送时,照相机服务器200生成与请求相对应的片段长度的片段。这样,在减少针对照相机服务器200的CPU的处理负荷以及/或者存储器大小的同时,根据来自第一客户端131和第二客户端132这两者的不同请求并行地发送不同片段长度的视频图像。此外,照相机服务器200能够响应于请求来以较短的延迟时间实时地发送视频图像。此外,由于下载次数减少,因此照相机服务器200能够根据请求来以更高的发送效率和再现质量实时地发送视频图像。

片段管理单元的处理的流程图

图9是示出片段管理单元211的处理的示例的流程图。在该示例中,可以基于初始化片段利用来自分发管理单元212所执行的分发管理程序的指示来启动片段管理单元211所执行的片段管理程序。首先,在步骤S701中,片段管理单元211指示摄像处理单元210开始生成所请求的视频流,并且在步骤S702中,片段管理单元211等待,直到生成包含SPS/PPS的运动图像元信息为止。

如果生成了运动图像元信息(步骤S702中为“是”),则在步骤S703中,片段管理单元211从暂时存储单元214读取运动图像元信息并且生成包含所读取的运动图像元信息的初始化片段。在步骤S704中,片段管理单元211向分发管理单元212通知生成了初始化片段。

接着,在步骤S705中,片段管理单元211存储启动时所指定的信息,诸如在初始化片段请求中指定的并且要作为片段管理信息进行管理的一个片段中所包含的视频帧的数量等。之后,在步骤S706中,片段管理单元211将程序的状态设置为I帧等待状态,然后在步骤S707中,片段管理单元211等待事件发生。

如果发生事件(步骤S707中为“是”),则在步骤S708中,片段管理单元211判断发生了哪个事件。如果发生的事件是来自摄像处理单元210的视频帧生成事件(步骤S708中为“视频帧生成事件”),则在步骤S709中,判断程序的状态。如果程序的状态是I帧等待状态(步骤S709中为“是”),则在步骤S710中,片段管理单元211判断所生成的视频帧是否是I帧。如果所生成的视频帧不是I帧(步骤S710中为“否”),则处理返回至步骤S707以重复该处理。如果所生成的视频帧是I帧(步骤S710中为“是”),则在步骤S711中,片段管理单元211将SPS/PPS和视频帧信息存储在暂时存储单元214中。

视频帧信息不必是视频数据,而且例如视频帧信息可以是暂时存储单元214中的存储与视频帧有关的视频数据的地址。这样,片段管理单元211可以在无需复制与视频帧有关的视频数据的情况下,读取该视频数据。

接着,在步骤S712中,片段管理单元211将程序的状态改变为下一帧等待状态。然后,片段管理单元211要进行的处理进入(以下所述的)步骤S714。在步骤S709中,如果程序的状态是下一帧等待状态(步骤S709中为“否”),则在步骤S713中,片段管理单元211存储视频帧信息。在步骤S713中存储了视频帧信息之后,或者在步骤S712中程序的状态改变为下一帧等待状态之后,片段管理单元211的处理进入步骤S714。

在步骤S714中,片段管理单元211判断所生成的(所接收到的)视频帧的数量与一个片段中所包含的视频帧的数量是否相对应。如果所生成的(所接收到的)视频帧的数量与一个片段中所包含的视频帧的数量相对应(步骤S714中为“是”),则在步骤S715中,片段管理单元211将片段编号和作为与该片段中所包含的视频帧有关的信息的片段信息存储在暂时存储单元214中。在步骤S715中,组合要作为片段信息存储的多个视频帧并且将这多个视频帧分发至作为分发请求源的客户端120。

步骤S715中要存储的视频帧信息不必是视频数据,而是例如暂时存储单元214中的存储与片段中所包含的视频帧有关的视频数据的地址。这样,片段管理单元211在发送片段时通过读取暂时存储单元214中的所指定的地址的视频数据来生成片段,而无需生成并存储包含视频数据的片段文件。

在步骤S716中,片段管理单元211向分发管理程序通知生成了片段,并且在步骤S707中,片段管理单元211等待再次接收事件。在步骤S714中,如果所生成的视频帧的数量与一个片段中所包含的视频帧的数量不对应(步骤S714中为“否”),则在步骤S707中,片段管理单元211等待再次接收事件。

在步骤S715和S716的处理中,由于以下原因,片段管理单元211仅存储片段信息和视频帧信息并且发出这两者的通知。如果利用片段管理单元211根据视频帧中的视频数据部分来生成片段,则片段管理单元211需要执行视频数据复制处理。在这种情况下,片段管理单元211需要针对各客户端120存储片段,因而可能会更多地使用暂时存储单元214。

该流程图示出摄像处理单元210连续地生成视频帧的情况。可选地,如果可能存在视频帧不是连续地生成的情况,则判断视频帧是否是连续的,并且如果视频帧不是连续的,则片段管理单元211可被配置为将程序的状态再次设置为I帧等待状态。

在步骤S708中,如果判断为发生的事件是来自分发管理单元212的片段释放指示事件(步骤S708中为“片段释放指示事件”),则在步骤S717中,片段管理单元211删除所存储的片段信息。在步骤S717中,片段管理单元211删除该片段中所包含的视频帧数据。然后,在步骤S707中,片段管理单元211再次等待事件发生。

在步骤S708中,发生的事件是来自分发管理单元212的视频流结束请求事件(步骤S708中为“视频流结束请求事件”),然后在步骤S718中,片段管理单元211指示摄像处理单元210停止生成视频流。在步骤S719中,片段管理单元211删除所存储的所有片段信息和该片段中所包含的视频帧信息。

在该流程图中,片段管理单元211所执行的片段管理程序被配置成在从客户端120接收到初始化片段请求时从分发管理单元212所执行的分发管理程序启动。可选地,该分发管理程序可以始终启动,并且可以利用一个片段管理程序来管理与多个客户端120有关的片段信息。

分发管理单元的处理的流程图

图10是示出分发管理单元212的处理的示例的流程图。分发管理单元212所执行的分发管理程序例如可以是在客户端120进行初始化片段请求时启动的程序。如该流程图所示,在步骤S801中,分发管理单元212生成与单个可发送的视频流或者多个可发送的视频流有关的信息的集合的MPD文件400,并且将该MPD文件400发送至客户端120。

接着,在步骤S803中,分发管理单元212等待,直到从客户端120接收到针对MPD文件400中定义的任何视频流的初始化片段的请求为止。如果分发管理单元212接收到针对初始化片段的请求(步骤S803中为“是”),则在步骤S804中,分发管理单元212存储与所请求的视频流有关的信息,并且在步骤S805中,分发管理单元212启动片段管理单元211以请求视频流生成的开始。在步骤S806中,分发管理单元212等待,直到利用片段管理单元211生成初始化片段为止,并且如果生成了初始化片段(步骤S806中为“是”),则在步骤S807中,分发管理单元212将初始化片段发送至客户端120。

接着,在步骤S808中,分发管理单元212启动用于监视客户端120的连接超时的计时器,并且在步骤S809中,分发管理单元212等待事件发生。如果发生事件(步骤S809中为“是”),则在步骤S810中,分发管理单元212判断发生的事件的类型。如果发生的事件是来自片段管理单元211的片段生成通知事件(步骤S810中为“片段生成通知事件”),则在步骤S811中,分发管理单元212存储包含视频帧信息的片段信息。

如果发生的事件是来自客户端120的片段分发请求事件(步骤S810中为“片段分发请求事件”),则在步骤S812中,分发管理单元212判断所请求的片段是否已生成。如果所请求的片段已生成(步骤S812中为“是”),则在步骤S813中,分发管理单元212生成该片段的报头部分,并且在步骤S814中,分发管理单元212将作为与视频帧的数据部分组合的数据的片段发送至客户端120。然后,在步骤S815中,分发管理单元212指示片段管理单元211释放所发送的片段。

在步骤S816中,分发管理单元212重置用于监视连接超时的计时器并延长超时时间,并且处理返回步骤S809以等待接收事件。如果步骤S809中发生的事件是分发结束请求(步骤S810中为“分发结束请求”),则在步骤S818中,分发管理单元212请求片段管理单元211停止生成片段,并且片段管理单元211的处理结束。

在步骤S814中,分发管理单元212仅生成报头部分,并且在将该报头部分与视频帧的数据部分组合的同时,将该报头部分连同数据部分一起发送,从而防止视频帧复制的处理负荷以及暂时存储单元214的使用量增加。在这种情况下,分发管理单元212将报头部分和数据部分顺次地存储在发送缓冲器中以供发送至客户端120。尽管在本流程图中在片段发送完成时重置计时器,但分发管理单元212可以在接收到片段分发请求的时刻或者在与客户端120进行其它通信的时刻重置计时器。此外,可以使用能够监视与客户端120的连接的除计时器以外的任何单元来执行监视。此外,不必进行计时器监视。

此外,在步骤S812中,如果不存在所请求的片段,则在步骤S817中,分发管理单元212将错误应答发送至客户端120。这里,在本流程图中,如果不存在所请求的片段,则发送错误应答。可选地,分发管理单元212可以等待,直到生成片段为止。发送结束事件可以包括用于监视连接超时的计时器的超时以及检测到断开。

在本流程图中,尽管说明了DASH分发作为示例,但本典型实施例的照相机服务器200还可应用于使用诸如HLS分发等的其它自适应码率流媒体技术的发送。如上所述,本典型实施例的照相机服务器200能够利用客户端120单独地对连续拍摄到的数据进行片段管理,并且在发送时,照相机服务器200组合该片段中所包含的视频帧并发送组合后的视频帧。

这样,本典型实施例的照相机服务器200在优先实时性能的情况下减小视频文件,而照相机服务器200在优先发送效率的情况下增大视频文件,由此针对各客户端120以适当的延迟时间发送视频图像。图11是示出分发管理单元212的处理的另一示例的流程图。与图8相同,分发管理程序例如可以是在客户端120进行初始化片段请求时启动的程序。

如该流程图所示,在步骤S901中,分发管理单元212生成与单个可发送的视频流或多个可发送的视频流有关的信息的集合的MPD文件400,并且将该MPD文件400发送至客户端120。接着,在步骤S903中,分发管理单元212等待,直到从客户端120接收到针对MPD文件400中所定义的任何视频流的初始化片段的请求为止。

如果分发管理单元212接收到针对初始化片段的请求(步骤S903中为“是”),则在步骤S904中,分发管理单元212存储与所请求的视频流有关的信息,并且在步骤S905中,分发管理单元212启动片段管理单元211以请求视频流生成的开始。在步骤S906中,分发管理单元212等待,直到利用片段管理单元211生成初始化片段为止,并且如果生成了初始化片段(步骤S906中为“是”),则在步骤S907中,分发管理单元212将初始化片段发送至客户端120。

接着,在步骤S909中,分发管理单元212等待事件发生,并且如果发生事件(步骤S909中为“是”),则在步骤S910中,分发管理单元212判断发生的事件是片段生成通知事件还是分发结束请求。如果发生的事件是来自片段管理单元211的片段生成通知事件(步骤S910中为“片段生成通知事件”),则在步骤S913中,分发管理单元212生成片段的报头部分。此外,在步骤S914中,分发管理单元212将作为与视频帧的数据部分组合的数据的片段发送至客户端120。

分发管理单元212使用与初始化片段相同的通信连接来发送该片段。在步骤S915中,分发管理单元212指示片段管理单元211释放所发送的片段,并且处理返回至步骤S909以等待接收事件。如果步骤909中发生的事件是分发结束请求的事件(步骤S910中为“分发结束请求”),则在步骤S918中,分发管理单元212请求片段管理单元211停止片段生成,并且该处理结束。

发送结束事件包括检测到断开,并且检测到断开可以是在片段发送所使用的通信连接从客户端120断开的情况下所检测到的事件。尽管在本流程图中说明了DASH分发作为示例,但本典型实施例的照相机服务器200还可适用于使用诸如HLS分发等的其它自适应码率流媒体技术的发送。

在步骤S914中,分发管理单元212仅生成报头部分,并且在将该报头部分与视频帧的数据部分组合的同时,可以将该报头部分与数据部分一起发送,从而防止视频帧复制的处理负荷以及暂时存储单元214的使用量的增加。在这种情况下,分发管理单元212将报头部分和数据部分顺次地存储在发送缓冲器中以供发送至客户端120。如上所述,本典型实施例的照相机服务器200能够利用各客户端120单独地对连续拍摄到的数据进行片段管理,并且在发送时,照相机服务器200能够组合该片段中所包含的视频帧并发送组合后的视频帧。这样,本典型实施例的照相机服务器200在优先实时性能的情况下减小视频文件,而照相机服务器200在优先发送效率的情况下增大视频文件,由此针对各客户端120以适当的延迟时间发送视频图像。

假定:在实时运动图像分发中,利用诸如MPD等的作为运动图像文件信息的集合的文件,定义片段时间不同的多个运动图像流以使得客户端能够选择流。此外,假定定义客户端所指定的片段时间的运动图像流。然而,诸如网络照相机等的嵌入式装置通常具有低的中央处理单元(CPU)性能和有限的存储器容量。因而,这种网络照相机难以针对仅用于查看视频图像的客户端和用于在查看视频图像的同时进行照相机控制的客户端准备片段时间不同的多个类型的运动图像文件。

对于根据本典型实施例的视频分发系统100,暂时存储单元214按单位视频图像保持所拍摄到的视频图像,并且分发管理单元212接收从客户端120发送来的与片段长度有关的请求。片段管理单元211基于分发管理单元212所接收到的与片段长度有关的请求来根据暂时存储单元214所保持的单位视频图像生成片段。然后,分发管理单元212将片段管理单元211所生成的片段分发至客户端120。这样,根据客户端120的用途来适当地分发视频图像。

尽管以上详细地说明了本发明的典型实施例,但上述典型实施例仅例示本发明的实现方式的示例。上述典型实施例并不意图限制本发明的技术范围。可以在本发明的精神内对本发明进行各种改变,并且这些改变也包含在本发明的技术范围内。

本发明的典型实施例还可以通过以下处理来实现,其中在该处理中,将用于实现上述典型实施例的一个或多个功能的程序经由网络或存储介质供给至系统或设备,并且该系统或设备的计算机的一个或多个处理器读取并执行该程序。此外,本发明的典型实施例还可以由实现一个或多个功能的电路(例如,专用集成电路(ASIC))来实现。

上述典型实施例能够适当地分发视频图像。

其它实施例

本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。

尽管已经参考典型实施例说明了本发明,但是应该理解,本发明不限于所公开的典型实施例。所附权利要求书的范围符合最宽的解释,以包含所有这类修改、等同结构和功能。

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