具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都应当属于本申请保护的范围。
本申请提供一种视频提供方法,所述方法可以应用于视频播放网站的业务服务器中,所述业务服务器可以是独立的服务器,也可以是由多个服务器构成的服务器集群。
在本实施方式中,在视频播放网站的业务服务器中可以预先存储在同一保真度(fidelity)下,视频传输码率(rate)与视频分辨率(resolution)之间的对应关系。所述对应关系可以是基于至少两个视频的视频传输码率与视频分辨率拟合得到的。具体地,可以预先获取处于同一保真度下的至少两个视频。其中,处于同一保真度下可以指所述至少两个视频各自的保真度参数均一致。所述至少两个视频的视频传输码率或者视频分辨率不完全相同。在进行拟合时,可以将视频分辨率和视频传输码率分别作为横坐标和纵坐标,这样,每个视频的视频传输码率和视频分辨率便可以构成一个坐标值。在得到至少两个坐标值后,可以基于这些坐标值,拟合得到符合这些坐标值的关系曲线。其中,拟合的方法可以包括最小二乘法、拉格朗日插值法、牛顿插值法、区间迭代法、雅克比迭代法等。根据所述至少两个坐标值拟合得到的可以是呈线性变化的直线,也可以是呈非线性变化的曲线。拟合得到的关系曲线便可以作为在所述保真度下视频传输码率与视频分辨率的对应关系。
在本实施方式中,针对不同的保真度,可以通过上述的方式拟合得到对应的视频传输码率与视频分辨率之间的对应关系。这样,每个保真度均可以关联一个对应关系。在确定保真度的情况下,便可以获知视频传输码率与视频分辨率的对应关系。需要说明的是,当视频中存在噪声时,可能会使得视频传输码率与视频分辨率不符合拟合得到的对应关系。因此,在上述获取到至少两个视频时,可以分别对每个视频进行去噪处理,从而使得拟合得到的对应关系能够比较准确。具体地,去噪处理的方式可以包括平滑滤波处理。在实际应用中,平滑滤波处理可以包括邻域平均滤波、中值滤波、高斯滤波、频域滤波等多种方式。
在本实施方式中,在拟合得到同一保真度下视频分辨率与视频传输码率之间的对应关系后,可以将该对应关系与关联的保真度同步存储于服务器中。其中,所述对应关系可以通过二元函数来表示,所述保真度可以通过数值来表示。具体地,可以通过键值对(key-value)的方式,以保真度的数值作为键,以二元函数作为值进行关联存储。这样,后续在提供指定保真度时,便可以根据该指定保真度的数值,读取与其关联的表征对应关系的二元函数。
请参阅图1,本申请提供的视频提供方法,可以包括以下步骤。
S11:检测用户客户端当前所支持的最大视频传输码率。
在本实施方式中,用户客户端在向视频播放网站的服务器发出视频加载请求后,服务器可以检测所述用户客户端当前所支持的最大视频传输码率。所述用户客户端可以是用户使用的终端设备。例如,所述用户客户端可以是台式电脑、笔记本电脑、平板电脑、智能手机、智能可穿戴设备、虚拟现实设备等电子设备。所述用户客户端还可以是运行于上述电子设备中的应用程序。例如,所述用户客户端可以是爱奇艺客户端、Acfun客户端、腾讯视频客户端等。
在本实施方式中,服务器可以通过与所述用户客户端之间建立的链接,持续向所述用户客户端发送检测数据包。用户客户端在接收到服务器发送的检测数据包之后,可以向服务器反馈响应报文(ACK报文),在该响应报文中可以注明用户客户端当前接收到的检测数据包的数量。在实际应用中,服务器可以按照码率从低到高的顺序,不断向用户客户端发送检测数据包。服务器可以根据用户客户端反馈的响应报文,确定用户客户端当前能够接收到的检测数据包的数量。当用户客户端当前接收到的检测数据包的数量与服务器发出的检测数据包的数量之间的差异值达到指定数量阈值时,表明用户客户端当前的网络传输速率不足以及时下载服务器发出的检测数据包,此时,服务器可以停止增加发出检测数据包的码率。服务器当前发出的检测数据包的码率便可以作为所述用户客户端当前的最大下载速率。这样,根据所述用户客户端针对所述检测数据包反馈的响应报文,服务器便可以确定所述用户客户端当前的最大下载速率。所述当前的最大下载速率从而可以作为所述用户客户端当前所支持的最大视频传输码率。
在一个实施方式中,服务器还可以是在用户客户端播放视频效果不佳时,开始检测用户客户端的最大视频传输码率。具体地,用户客户端播放视频效果不佳可以指用户客户端下载视频的速率与所述视频的理论播放码率之间的差值大于或者等于指定阈值。其中,视频的理论播放码率可以指按照该码率播放所述视频时,能够清晰地展示所述视频中的画面细节。而通过低于理论播放码率的码率播放所述视频时,该视频中的部分画面细节会丢失,视频的画面也会比较模糊。当用户客户端下载视频的速率与所述视频的理论播放码率之间的差值大于或者等于指定阈值时,表明用户客户端的网络状态不足以播放当前画质的视频。此时,服务器便可以检测用户客户端的最大视频传输码率,从而可以根据检测结果,动态地对用户客户端播放的视频的画质进行调节,以使得用户客户端能够播放与当前网络状态相适配的视频。
S13:确定指定保真度,并确定所述指定保真度对应的候选视频集合;其中,所述候选视频集合中包括至少两个具备不同视频分辨率的候选视频。
在本实施方式中,针对不同的保真度,同一个视频传输码率对应的视频分辨率也往往不同。因此,在检测得到用户客户端对应的最大视频传输码率后,可以优先确定预计向用户客户端提供的视频的指定保真度。具体地,所述指定保真度可以是根据服务器一段时间内向各个用户客户端提供所述视频时所采用的保真度来确定。例如,可以将这段时间内采用次数最多的保真度作为所述指定保真度。也可以将上一次采用的保真度作为所述指定保真度。此外,所述指定保真度也可以是针对所述视频的一个默认保真度。
在本实施方式中,针对不同的保真度,可以预先制作不同的候选视频集合。所述候选视频集合中的候选视频的视频分辨率与视频传输码率,可以遵循对应保真度下视频分辨率与视频传输码率的对应关系。这样,在确定出所述指定保真度后,可以确定所述指定保真度对应的候选视频集合。其中,所述候选视频集合中可以包括至少两个具备不同视频分辨率的候选视频。
在一个实施方式中,所述候选视频集合中的候选视频在制作时,可能会引入噪声。在引入噪声之后,候选视频的视频传输码率与视频分辨率便可能不符合所述指定保真度下视频传输码率与视频分辨率之间的对应关系。在这种情况下,可以对不符合所述指定保真度下视频传输码率与视频分辨率之间的对应关系的候选视频进行平滑滤波处理,将候选视频中的噪声滤除,从而使得经过平滑滤波处理后的候选视频符合所述指定保真度下视频传输码率与视频分辨率之间的对应关系。具体地,在进行平滑滤波处理时,可以针对候选视频的各帧画面,将画面划分为多个特征子区域。在划分了多个特征子区域之后,可以计算所述特征子区域的像素平均值或者像素中值,然后可以将计算得到的所述像素平均值或者像素中值分配给所述特征子区域中的像素点。这样可以通过均值或者中值的处理方式,将画面中可能包含的噪声去除。此外,将画面划分为多个特征子区域后,还可以将所述特征子区域中像素点的像素值与指定高斯函数进行卷积,并将得到的卷积和作为像素值分配给所述特征子区域中的像素点。其中,所述指定高斯函数的维数可以与所述特征子区域中像素点的个数相一致。
在本实施方式中,上述特征子区域中像素点的像素值可以是像素点的灰度值。这样,在计算所述像素平均值或者像素中值时,可以计算所述特征其区域中像素点的灰度值的平均值或者灰度值的中值。此外,所述像素点的像素值还可以是颜色模式中颜色通道的数值。所述颜色模式可以是RGB(Red、Green、Blue,红、绿、蓝)颜色模式、CMYK(Cyan、Magenta、Yellow、Black,青、洋红、黄、黑)颜色模式、HSB(Hue、Saturation、Brightness,色泽、饱和度、亮度)颜色模式、Lab(Luminace,发光率)颜色模式等。每个颜色模式中可以具备多个颜色通道。例如,对于RGB颜色模式而言,可以具备红、绿、蓝三种颜色通道。每个颜色通道均可以对应各自的数值。这样,在计算所述特征子区域的像素平均值或者像素中值时,可以分别计算各个颜色通道的平均值或者中值,然后可以将各个颜色通道的平均值或者中值作为所述特征子区域的像素平均值或者像素中值。
此外,在将所述特征子区域中像素点的像素值与指定高斯函数进行卷积时,可以将像素点的灰度值与所述指定高斯函数进行卷积,然后可以将得到的卷积和作为灰度值分配给所述特征子区域中的像素点。当所述像素点的像素值为各个颜色通道的数值时,则可以将所述特征子区域中各个像素点的同一个颜色通道的数值与所述指定高斯函数进行卷积,然后可以将得到的卷积和作为该颜色通道的数值分配给所述特征子区域中各个像素点的该颜色通道。最终,每个颜色通道的数值均可以经过高斯卷积处理,从而得到平滑滤波处理后各个颜色通道的数值。
在本实施方式中,在对候选视频经过平滑滤波处理之后,便可以将平滑滤波处理之后的候选视频替换平滑滤波处理之前的候选视频,从而使得候选视频集合中的候选视频均符合所述指定保真度下视频传输码率与视频分辨率之间的对应关系。
S15:基于所述指定保真度下视频传输码率与视频分辨率之间的对应关系,确定所述最大视频传输码率对应的最大视频分辨率。
在本实施方式中,在确定了所述最大视频传输码率以及指定保真度之后,服务器可以从本地读取所述指定保真度关联的视频传输码率与视频分辨率之间的对应关系。该对应关系可以通过二元函数来进行表示。这样,可以将所述最大视频传输码率代入所述二元函数中,从而可以得到所述最大视频传输码率对应的最大视频分辨率。
S17:从所述候选视频集合中确定与所述最大视频分辨率相适配的目标候选视频,并向所述用户客户端提供所述目标候选视频。
在本实施方式中,在确定了所述最大视频分辨率之后,便可以根据该最大视频分辨率,从所述候选视频集合中选择相应分辨率的目标候选视频,以提供给所述用户客户端。具体地,可以遍历所述候选视频集合中的各个候选视频,并统计各个候选视频的分辨率,然后可以确定出小于或者等于所述最大视频分辨率,并且与所述最大视频分辨率之间的差异值最小的视频分辨率。其中,所述差异值可以指候选视频的视频分辨率与所述最大视频分辨率之间差值的绝对值。上述确定出的视频分辨率可以是最接近所述最大视频分辨率的分辨率,这样,将所述候选视频集合中小于或者等于所述最大视频分辨率,并且与所述最大视频分辨率之间的差异值最小的视频分辨率对应的候选视频,作为与所述最大视频分辨率相适配的目标候选视频,从而可以在充分利用用户客户端当前的网络带宽的情况下,向用户客户端提供所述指定保真度下最大视频分辨率的候选视频。
请参阅图2,本申请还提供一种服务器,所述服务器包括网络通信端口、存储器以及处理器。
其中,所述网络通信端口,用于与用户客户端进行数据交互。
所述存储器,用于存储在同一保真度下,视频传输码率与视频分辨率之间的对应关系。
所述处理器,用于检测所述用户客户端当前所支持的最大视频传输码率;确定指定保真度,并确定所述指定保真度对应的候选视频集合;其中,所述候选视频集合中包括至少两个具备不同视频分辨率的候选视频;基于所述指定保真度下视频传输码率与视频分辨率之间的对应关系,确定所述最大视频传输码率对应的最大视频分辨率;从所述候选视频集合中确定与所述最大视频分辨率相适配的目标候选视频,并通过所述网络通信端口向所述用户客户端提供所述目标候选视频。
本说明书实施方式提供的服务器,其网络通信端口、存储器以及处理器,可以与本说明书中的前述方法实施方式相对照解释,并能够达到前述方法实施方式的技术效果,这里便不再赘述。
本申请还提供一种视频提供方法,所述方法可以应用于视频播放网站的服务器中。在本实施方式中,所述服务器中也可以提供在同一保真度下,视频传输码率与视频分辨率之间的对应关系。请参阅图3,所述方法包括以下步骤。
S21:检测用户客户端当前所支持的最大视频传输码率。
在本实施方式中,用户客户端在向视频播放网站的服务器发出视频加载请求后,服务器可以检测所述用户客户端当前所支持的最大视频传输码率。服务器可以通过与所述用户客户端之间建立的链接,持续向所述用户客户端发送检测数据包。用户客户端在接收到服务器发送的检测数据包之后,可以向服务器反馈响应报文(ACK报文),在该响应报文中可以注明用户客户端当前接收到的检测数据包的数量。在实际应用中,服务器可以按照码率从低到高的顺序,不断向用户客户端发送检测数据包。服务器可以根据用户客户端反馈的响应报文,确定用户客户端当前能够接收到的检测数据包的数量。当用户客户端当前接收到的检测数据包的数量与服务器发出的检测数据包的数量之间的差异值达到指定数量阈值时,表明用户客户端当前的网络传输速率不足以及时下载服务器发出的检测数据包,此时,服务器可以停止增加发出检测数据包的码率。服务器当前发出的检测数据包的码率便可以作为所述用户客户端当前的最大下载速率。这样,根据所述用户客户端针对所述检测数据包反馈的响应报文,服务器便可以确定所述用户客户端当前的最大下载速率。所述当前的最大下载速率从而可以作为所述用户客户端当前所支持的最大视频传输码率。
在一个实施方式中,服务器还可以是在用户客户端播放视频效果不佳时,开始检测用户客户端的最大视频传输码率。具体地,用户客户端播放视频效果不佳可以指用户客户端下载视频的速率与所述视频的理论播放码率之间的差值大于或者等于指定阈值。其中,视频的理论播放码率可以指按照该码率播放所述视频时,能够清晰地展示所述视频中的画面细节。而通过低于理论播放码率的码率播放所述视频时,该视频中的部分画面细节会丢失,视频的画面也会比较模糊。当用户客户端下载视频的速率与所述视频的理论播放码率之间的差值大于或者等于指定阈值时,表明用户客户端的网络状态不足以播放当前画质的视频。此时,服务器便可以检测用户客户端的最大视频传输码率,从而可以根据检测结果,动态地对用户客户端播放的视频的画质进行调节,以使得用户客户端能够播放与当前网络状态相适配的视频。
S23:根据指定保真度下视频传输码率与视频分辨率之间的对应关系,确定所述最大视频传输码率对应的最大视频分辨率。
在本实施方式中,针对不同的保真度,同一个视频传输码率对应的视频分辨率也往往不同。因此,在检测得到用户客户端对应的最大视频传输码率后,可以优先确定预计向用户客户端提供的视频的指定保真度。具体地,所述指定保真度可以是根据服务器一段时间内向各个用户客户端提供所述视频时所采用的保真度来确定。例如,可以将这段时间内采用次数最多的保真度作为所述指定保真度。也可以将上一次采用的保真度作为所述指定保真度。此外,所述指定保真度也可以是针对所述视频的一个默认保真度。
在本实施方式中,在确定了所述最大视频传输码率以及指定保真度之后,服务器可以从本地读取所述指定保真度关联的视频传输码率与视频分辨率之间的对应关系。该对应关系可以通过二元函数来进行表示。这样,可以将所述最大视频传输码率代入所述二元函数中,从而可以得到所述最大视频传输码率对应的最大视频分辨率。
S25:获取源视频,并根据所述指定保真度、所述最大视频传输码率以及所述最大视频分辨率对所述源视频进行转码处理,并将转码处理得到的视频提供给所述用户客户端。
在本实施方式中,在确定了所述指定保真度、所述最大视频传输码率以及所述最大视频分辨率,可以对待处理的源视频进行相应的转码处理。其中,所述源视频可以是需要处理的视频。获取所述源视频的方式可以包括从存储路径下读取源视频或者接收其它终端设备发来的源视频。在处理所述源视频时,可以为所述源视频配置各种参数。这些参数便可以包括保真度、视频分辨率以及视频传输码率。这样,可以为所述源视频配置所述指定保真度、所述最大视频传输码率以及所述最大视频分辨率,从而可以对所述源视频进行转码处理,得到符合所述指定保真度、所述最大视频传输码率以及所述最大视频分辨率的转码后的视频。
在一个实施方式中,所述源视频在制作时,可能会引入噪声。在引入噪声之后,源视频的视频传输码率与视频分辨率便可能不符合所述指定保真度下视频传输码率与视频分辨率之间的对应关系。在这种情况下,可以对所述源视频进行平滑滤波处理,将源视频中的噪声滤除,从而使得经过平滑滤波处理后的源视频符合所述指定保真度下视频传输码率与视频分辨率之间的对应关系。在实际应用中,平滑滤波处理可以包括邻域平均滤波、中值滤波、高斯滤波、频域滤波等多种方式。
在本实施方式中,在对源视频经过平滑滤波处理之后,便可以将平滑滤波处理之后的源视频替换平滑滤波处理之前的源视频,从而使得获取的源视频均符合所述指定保真度下视频传输码率与视频分辨率之间的对应关系。
请参阅图4,本申请还提供一种服务器,所述服务器包括网络通信端口、存储器以及处理器。
其中,所述网络通信端口,用于与用户客户端进行数据交互。
所述存储器,用于存储在同一保真度下,视频传输码率与视频分辨率之间的对应关系。
所述处理器,用于检测用户客户端当前所支持的最大视频传输码率;根据指定保真度下视频传输码率与视频分辨率之间的对应关系,确定所述最大视频传输码率对应的最大视频分辨率;获取源视频,并根据所述指定保真度、所述最大视频传输码率以及所述最大视频分辨率对所述源视频进行转码处理,并通过所述网络通信端口将转码处理得到的视频提供给所述用户客户端。
本实施方式提供的服务器,其网络通信端口、存储器以及处理器,可以与本说明书中的前述方法实施方式相对照解释,并能够达到前述方法实施方式的技术效果,这里便不再赘述。
在本说明书中,所述存储器可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方法的媒体加以存储。本实施方式所述的存储器又可以包括:利用电能方式存储信息的装置,如RAM、ROM等;利用磁能方式存储信息的装置,如硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置,如CD或DVD。当然,还有其他方式的存储器,例如量子存储器、石墨烯存储器等等。
在本说明书中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
在本说明书中,所述网络通信端口可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的80号端口,也可以是负责进行FTP数据通信的21号端口,还可以是负责进行邮件数据通信的25号端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
本申请还提供一种视频处理方法,所述方法可以应用于具备图像处理功能的终端设备中。所述终端设备例如可以是台式电脑、笔记本电脑、平板电脑、工作站等。此外,所述方法还可以应用于视频播放网站的业务服务器中,所述业务服务器可以是独立的服务器,也可以是由多个服务器构成的服务器集群。请参阅图5,所述方法包括以下步骤。
S31:获取指定保真度下展示相同内容的至少两个视频,所述至少两个视频具备不同的视频分辨率,并根据所述至少两个视频的视频传输码率与视频分辨率,拟合所述指定保真度下视频传输码率与视频分辨率的对应关系。
在本实施方式中,可以预先拟合在指定保真度(fidelity)下,视频传输码率(rate)与视频分辨率(resolution)之间的对应关系。所述对应关系可以是基于至少两个视频的视频传输码率与视频分辨率拟合得到的。具体地,可以预先获取处于指定保真度下展示相同内容的至少两个视频。所述至少两个视频可以具备不同的视频分辨率。在进行拟合时,可以将视频分辨率和视频传输码率分别作为横坐标和纵坐标,这样,每个视频的视频传输码率和视频分辨率便可以构成一个坐标值。在得到至少两个坐标值后,可以基于这些坐标值,拟合得到符合这些坐标值的关系曲线。其中,拟合的方法可以包括最小二乘法、拉格朗日插值法、牛顿插值法、区间迭代法、雅克比迭代法等。根据所述至少两个坐标值拟合得到的可以是呈线性变化的直线,也可以是呈非线性变化的曲线。拟合得到的关系曲线便可以作为在所述指定保真度下视频传输码率与视频分辨率的对应关系。
需要说明的是,用于拟合所述对应关系的两个视频,应当是展示相同内容的视频。如果两个视频展示的内容不一致,那么视频分辨率与视频传输码率可能无法遵循拟合出的对应关系。也就是说,针对展示不同内容的视频,拟合出的视频分辨率与视频传输码率的对应关系也可能不同。
在本实施方式中,针对不同的保真度,可以通过上述的方式拟合得到对应的视频传输码率与视频分辨率之间的对应关系。这样,每个保真度均可以关联一个对应关系。在确定保真度的情况下,便可以获知视频传输码率与视频分辨率的对应关系。需要说明的是,当视频中存在噪声时,可能会使得视频传输码率与视频分辨率不符合拟合得到的对应关系。因此,在上述获取到至少两个视频时,可以分别对每个视频进行去噪处理,从而使得拟合得到的对应关系能够比较准确。具体地,去噪处理的方式可以包括平滑滤波处理。在实际应用中,平滑滤波处理可以包括邻域平均滤波、中值滤波、高斯滤波、频域滤波等多种方式。
在本实施方式中,在拟合得到指定保真度下视频分辨率与视频传输码率之间的对应关系后,可以将该对应关系与关联的指定保真度同步存储于终端设备或者服务器中。其中,所述对应关系可以通过二元函数来表示,所述指定保真度可以通过数值来表示。具体地,可以通过键值对(key-value)的方式,以指定保真度的数值作为键,以二元函数作为值进行关联存储。这样,后续在提供指定保真度时,便可以根据该指定保真度的数值,读取与其关联的表征对应关系的二元函数。
S33:获取源视频,并基于所述指定保真度下视频传输码率与视频分辨率之间的对应关系,为所述源视频配置目标视频传输码率以及目标视频分辨率。
在本实施方式中,所述源视频可以是需要处理的视频。获取所述源视频的方式可以包括从存储路径下读取源视频或者接收其它终端设备发来的源视频。
在本实施方式中,在获取到所述源视频后,可以读取所述指定保真度关联的视频传输码率与视频分辨率之间的对应关系。该对应关系可以通过二元函数来进行表示。这样,通过设置所述源视频进行处理后预计具备的目标视频传输码率或者目标视频分辨率中的一个数值,便可以通过上述的二元函数确定出另一个数值。这样,便可以得到所述源视频进行处理后预计对应的目标视频传输码率以及目标视频分辨率。
S35:根据所述指定保真度、所述目标视频传输码率以及所述目标视频分辨率对所述源视频进行转码处理,得到转码后的目标视频。
在本实施方式中,在确定了所述指定保真度、所述目标视频传输码率以及所述目标视频分辨率后,可以对待处理的源视频进行相应的转码处理。在处理所述源视频时,可以为所述源视频配置各种参数。这些参数便可以包括保真度、视频分辨率以及视频传输码率。这样,可以为所述源视频配置所述指定保真度、所述目标视频传输码率以及所述目标视频分辨率,从而可以对所述源视频进行转码处理,得到符合所述指定保真度、所述目标视频传输码率以及所述目标视频分辨率的转码后的视频。
在一个实施方式中,所述源视频在制作时,可能会引入噪声。在引入噪声之后,源视频的视频传输码率与视频分辨率便可能不符合所述指定保真度下视频传输码率与视频分辨率之间的对应关系。在这种情况下,可以对所述源视频进行平滑滤波处理,将源视频中的噪声滤除,从而使得经过平滑滤波处理后的源视频符合所述指定保真度下视频传输码率与视频分辨率之间的对应关系。在实际应用中,平滑滤波处理可以包括邻域平均滤波、中值滤波、高斯滤波、频域滤波等多种方式。
在本实施方式中,在对源视频经过平滑滤波处理之后,便可以将平滑滤波处理之后的源视频替换平滑滤波处理之前的源视频,从而使得获取的源视频均符合所述指定保真度下视频传输码率与视频分辨率之间的对应关系。
在一个实施方式中,视频分辨率与视频传输码率之间的对应关系可以是线性关系,因此,只要确定出该线性关系中的两个坐标值,便可以确定出该线性关系的斜率。在实际应用中,为了减少数据处理量,可以避免对高分辨率和高码率的视频进行处理。这样,步骤S31中选用的至少两个视频的视频传输码率可以均小于或者等于指定码率阈值。其中,所述指定码率阈值可以是预先设定的较小的数值。例如,所述指定码率阈值可以是2Mbps。这样,在对较低码率的两个视频的视频分辨率和视频传输码率进行拟合后,便可以得到对应的线性关系,同时需要处理的数据量也较少,可以提高对应关系拟合的效果。
请参阅图6,本申请还提供一种视频处理装置,所述装置包括:
关系拟合单元100,用于获取指定保真度下展示相同内容的至少两个视频,所述至少两个视频具备不同的视频分辨率,并根据所述至少两个视频的视频传输码率与视频分辨率,拟合所述指定保真度下视频传输码率与视频分辨率的对应关系;
参数设定单元200,用于获取源视频,并基于所述指定保真度下视频传输码率与视频分辨率之间的对应关系,为所述源视频配置目标视频传输码率以及目标视频分辨率;
转码单元300,用于根据所述指定保真度、所述目标视频传输码率以及所述目标视频分辨率对所述源视频进行转码处理,得到转码后的目标视频。
本说明书实施方式提供的视频处理装置,其中各个单元模块的具体功能,可以与本说明书中的前述方法实施方式相对照解释,并能够达到前述方法实施方式的技术效果,这里便不再赘述。
由上可见,本申请提供的技术方案,可以预先拟合出同一保真度下,视频传输码率与视频分辨率之间的对应关系。这样,后续在指定保真度的情况下,首先可以检测用户客户端当前所支持的最大视频传输码率。然后可以根据所述指定保真度下视频传输码率与视频分辨率之间的对应关系,确定所述最大视频传输码率对应的最大视频分辨率。在视频播放平台中,可以针对不同的保真度,存储多种清晰度格式的视频。这样,所述指定保真度可以与候选视频集合相对应。其中,所述候选视频集合中可以包括至少两个具备不同视频分辨率的候选视频。在向用户客户端自动提供视频时,可以从所述候选视频集合中确定与所述最大视频分辨率相适配的目标候选视频,然后可以将确定出的目标候选视频提供给用户客户端。由上可见,本申请提供的技术方案,能够提供与用户客户端当前的网络状态相适配的视频。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现服务器和视频处理装置以外,完全可以通过将方法步骤进行逻辑编程来使得服务器和视频处理装置以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种服务器和视频处理装置可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,针对服务器和视频处理装置的实施方式来说,均可以参照前述方法的实施方式的介绍对照解释。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施方式描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。