用于生成多码率视频的方法和装置的制造方法_2

文档序号:9399616阅读:来源:国知局
r>[0032]图3b是根据本申请的用于生成多码率视频的另一种数据处理流程的示意图;
[0033]图4是根据本申请的用于生成多码率视频的方法的又一个实施例的流程图;
[0034]图5是根据本申请的用于生成多码率视频的装置的一个实施例的结构示意图;
[0035]图6是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
【具体实施方式】
[0036]下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
[0037]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0038]图1示出了可以应用本申请的用于生成多码率视频的方法或用于生成多码率视频的装置的实施例的示例性系统架构100。
[0039]如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0040]用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种可播放视频的客户端应用,例如视频直播客户端、视频在线点播客户端、本地视频播放器、以及加载了视频播放应用的浏览器等。
[0041]终端设备101、102、103可以是具有显示屏并且支持网络连接的各种电子设备,包括但不限于智能手机、智能手表、平板电脑、电子书阅读器、MP3播放器(Moving PictureExperts Group Aud1 Layer III,动态影像专家压缩标准音频层面3)、MP4 (MovingPicture Experts Group Aud1 Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
[0042]服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上播放的视频提供视频数据支持的后台视频播放服务器、视频编码服务器、视频解码服务器以及视频转码服务器等。视频编码服务器可以对视频数据进行编码;视频解码服务器可以对接收到的视频数据进行解码,以获取视频内容;视频转码服务器可以将已编码的视频码流转换成另一个视频码流,以适应不同的网络带宽。上述视频播放服务器、视频编码服务器、视频解码服务器以及视频转码服务器可以将查询、编码、解码、转码等处理的结果反馈给终端设备。
[0043]需要说明的是,本申请实施例所提供的用于生成多码率视频的方法一般由服务器105执行,相应地,用于生成多码率视频的装置一般设置于服务器105中。
[0044]应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
[0045]继续参考图2,示出了根据本申请的用于生成多码率视频的方法的一个实施例的流程200。所述的用于生成多码率视频的方法,包括以下步骤:
[0046]步骤201,获取输入的视频。
[0047]在本实施例中,用于生成多码率视频的方法运行于其上的电子设备(例如图1所示的服务器)可以从其存储的视频数据库中提取输入的视频数据。在实际应用中,如果该服务器正在向终端传送视频数据,则可以将当前传送的视频数据作为输入的视频。
[0048]在一些实施例中,用于生成多码率视频的方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式从用户利用其进行视频播放的终端接收视频播放请求。其中,上述视频播放请求包括了用户期望播放的视频的地址或其他标识信息。实践中,视频播放地址可以是网页链接,一般由统一资源定位符(UniformResource Locator,URL)来表示,也可以是视频名称、发布时间、发布者等信息。用于生成多码率视频的方法运行于其上的电子设备可以根据视频播放请求从存储在服务器的数据库中查询与视频播放请求中的视频地址或标识信息相匹配的视频数据,作为所述输入的视频。
[0049]需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB (Ultra Wideband)连接、以及其他现在已知或将来开发的无线连接方式。
[0050]通常,用户利用终端上安装的视频播放应用来观看视频,这时,用户可以通过直接输入视频地址或者点击视频播放应用中呈现的视频链接来向服务器发起视频播放请求。在本实施例中,上述视频可以包括rm格式,rmvb格式,mpeg格式,mov格式,mtv格式,dat格式,wmv格式,avi格式,3gp格式,amv格式,dmv格式,flv格式等已有格式的视频或者其它未来将开发的格式的视频(只要这种格式的视频文件可以用视频播放器打开并播放其包含的视频内容)。
[0051]步骤202,基于第一码率对输入的视频进行运动估计,得出第一码率的视频的最佳第一运动矢量以及至少一个包含候选运动矢量、候选运动矢量的预测误差和候选运动矢量的比特数的三元组。
[0052]在本实施例中,基于步骤201中得到的视频,上述电子设备(例如图1所示的服务器)可以基于第一码率确定量化参数,并利用各种运动估计方法对上述输入的视频进行运动估计。其中第一码率可以是适应于某一带宽的视码率,相应地,下文所描述的第二码率可以是适应于另一带宽的视频码率。
[0053]在本实施例的一些可选的实现方式中,对上述输入的视频进行运动估计的方式可以是基于变换域的方式。例如,可以对输入的视频中相邻两帧的块进行傅里叶变换,根据两帧图像的傅里叶变换的相位相关性估计运动矢量。
[0054]具体地,在上述基于变换域的运动估计方式中,假设输入的视频中参考帧的待匹配块的亮度信号和预测帧中的匹配块的亮度信号分别为I1(X)和I2(X),x为二维向量,它们的关系可表不为:
[0055]I2(x) = I1 (χ-t) (I)
[0056]其中,t为运动矢量。分别用L1GO和L2(k)表示I1(X)和I2(X)的傅里叶变换,其中k = 2π/X,则对两帧图像中的块的亮度信号做傅里叶变换后,具有以下关系:
[0057]L2 (k) = ej2llkt.L1 (k) (2)
[0058]可以看出,待匹配块和匹配块的傅里叶变换间的相位差为与运动矢量相关的量。对于每一个候选运动矢量,都可以得出一个对应的相位差,则可以进一步根据相位差的率失真性能来估计最佳的运动矢量。
[0059]在根据相位差的率失真性能估计最佳的运动矢量时,可以计算每一个候选运动矢量的预测误差和比特数,并基于第一码率的量化参数、候选运动矢量及其预测误差和比特数,建立相位差的率失真代价函数,通过最小化该相位差的率失真代价函数来确定最佳第一运动矢量。
[0060]在本实施例的一些可选的实现方式中,对上述输入的视频进行运动估计的方式可以是基于块的运动估计方式。例如,可以在输入的视频的待估计帧中查找与参考帧中的待匹配块匹配度最高的块,并计算该块与参考帧中的待匹配块之间的相对位移,作为运动估计的结果。在运动估计过程中,可以保存每一个待估计帧中的块与参考帧中的待匹配块之间的相对位移,作为一个候选运动矢量,计算并保存编码该候选运动矢量所需要的比特数和该候选运动矢量与最佳第一候选运动矢量的预测误差,以获取所述待匹配块的三元组。
[0061]在进一步的实现方式中,上述基于块的运动估计可以通过如下方式实现:
[0062]首先,对输入的视频中各子帧的每个分块,确定至少一个候选运动矢量。在本实施例中,可以对输入的视频进行粗略的运动估计,或确定一个运动矢量估计范围,将该范围内的所有运动矢量作为候选运动矢量。
[0063]然后,计算候选运动矢量的比特数和预测误差,得到该分块的包含候选运动矢量、候选运动矢量的比特数和预测误差的三元组。其中,候选运动矢量的比特数为将运动矢量编码写入视频码流时所需要的比特数,可以通过可变长编码(Variable-Length Coding,VLC)表来获取;预测误差为候选运动矢量对应的图像块与最匹配的图像块之间的差值。预测误差可以用SSD(Sum of Squared Difference,差值的平方和)或者SAD (Sum ofAbsolute Difference,相对误差)来表示。
[0064]之后,确定第一码率的量化参数(Quantizat1n Parameter,QP)。量化参数为量化器量化的步长,数值越大表示步长越长,视频的质量越差。在本实施例中,不同码率的量化参数不同。该量化参数可以是H.264标准中规定的参数。在实际编码过程中,可以通过码率控制模块得到第一码率的量化参数。
[0065]之后,根据第一码率的量化参数以及每个分块的三元组计算每个分块的运动矢量率失真代价。在本实施例中,运动矢量率失真代价J可以用下式(3)表示:
[0066]Jnotlon= E pred+ λ notlon*Rnotlon (3)
[0067]其中,Eprad为预测误差,可以用SAD或SSD来表示,Rnrot■表示运动矢量所需要的比特数,λ表示拉格朗日乘数,λ_■的取值为:
[0068]Anot1n= 0.85X2 (QP12)/3 (4)
[0069]其中,QP为Η.264标准中码率的量化参数。
[0070]最后,遍历所有的三元组,将使每个分块的运动矢量率失真代价最小的三元组中的候选运动矢量作为每个分块的最佳第一运动矢量。即可以通过式(5)来得出最佳第一运动矢量:
[0071 ] min (Jnotlon) = min (Epred+ λ
mot1n*Rmot1n) (5)
[0072]在上述基于块的运动估计过程中,通过最小化率失真代价来估算第一码率的视频的运动矢量,能够保证第一码率的视频的运动矢量的精度,从而保证了视频编码准确性。
[0073]步骤203,基于第二码率以及三元组估计第二码率的视频的最佳第二运动矢量。
[0074]在本实施例中,第二码率不同于第一码率,其量化参数不同。为了提高第二码率的视频的运动估计效率,可以基于第二码率的量化参数,在第一码率的视频的运动估计中所获得的三元组的基础上估计第二码率的视频的运动矢量。
[0075]在本实施例的一些可选的实现方式中,可以通过如下方式来估计所述第二码
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1