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

文档序号:9399616阅读:来源:国知局
率的视频的最佳第二运动矢量:
[0076]首先,确定第二码率的量化参数。与第一码率类似地,该量化参数可以是H.264标准中规定的参数。在实际编码过程中,可以通过码率控制模块得到第二码率的量化参数。
[0077]然后,基于第一码率的视频的运动估计过程中所得到的三元组以及第二码率的量化参数,计算第二码率的视频中对应分块的运动矢量率失真代价。第二码率的视频中对应分块的运动矢量率失真代价的计算也可以根据上述式(3)和(4)计算。
[0078]之后,遍历每个分块的三元组,将使第二码率的视频中对应分块的运动矢量率失真代价最小的三元组中的候选运动矢量作为对应分块的最佳第二运动矢量。
[0079]在上述第二码率的视频的最佳第二运动矢量的估计过程中,由于直接采用第一码率的视频的运动估计过程中保存的候选运动矢量、候选运动矢量的比特数和预测误差,省去了第二码率的视频的候选运动矢量确定、预测误差计算和比特数计算,加速了第二码率的视频的运动矢量估计过程。同时,由于第二码率的视频的运动矢量是基于第一码率的视频的运动矢量推导得出的,可以保证第二码率视频的运动矢量的精度,从而保证了第二码率的视频的率失真性能。
[0080]步骤204,根据最佳第二运动矢量确定第二码率的视频的编码模式。
[0081]在视频编码时,可以对某一视频帧进行编码,然后将其他帧与该视频之间的运动偏移进行编码,这样,可以减少编码的数据量,加快编码速度。在本实施例中,确定第二码率的视频的最佳第二运动矢量之后,可以对该运动矢量进行编码。具体地,可以确定该运动矢量对应的编码模式,采用确定的编码模式来进行编码。
[0082]在H.264标准中,视频帧的类型可以包括:1帧(帧内编码帧)、P帧(帧间预测编码帧)以及B帧(双向预测编码帧)。H.264标准中,视频中的每一帧图像的分块方式可以包括:16X16、16X8、8X16、8X8、8X4、4X8,其中每种分块方式都有多种编码模式,例如水平模式、垂直模式、对角线模式等等。对于视频中的某一帧,如果前一帧已经完成编码,则可以根据当前帧与前一帧间的运动矢量来确定当前帧的最佳编码模式。具体地,可以根据运动矢量与各编码模式间的关联关系,来查找使得编码后视频的失真最小的编码模式。
[0083]在本实施例的一些可选的实现方式中,可以通过如下方式来确定第二码率的视频的编码模式:
[0084]首先,确定第二码率的视频的至少一个候选编码模式及候选编码模式对应的量化参数。在本实施例中,可以将上述H.264标准中的所有编码模式作为候选编码模式。作为示例,在P帧的编码中,可以将上述多种分块方式对应的多种编码模式作为候选编码模式,并分别查找这些候选编码模式在H.264标准中的量化参数。
[0085]然后,计算至少一个候选编码模式对应的失真参数以及编码比特数。其中,编码比特数包括最佳第二运动矢量需要的比特数、候选编码模式需要的比特数以及最佳第二运动矢量对应的预测误差需要的比特数。编码比特数可以是可变长编码(VLC)的比特数,可以通过H.264规定的可变长码表来查询获得。最佳第二运动矢量对应的预测误差的编码也可以称为第二码率视频的编码残差,其需要的比特数即为第二码率的视频的编码残差需要的比特数。
[0086]之后,基于候选编码模式对应的量化参数、失真参数以及编码比特数,计算第二码率的视频的对应子帧中对应分块的编码模式率失真代价。在本实施例中,编码模式率失真代价J可以用下式(6)表示:
[0087]Jnode= E rec+ λ node*Rtotal (6)
[0088]其中,民%表示使用该编码模式后所带来的失真,可以用当前编码模式与最佳编码模式的SAD和SSD来表示,Rtotal表示编码比特数,λ表示拉格朗日乘数,λ 的取值为:
[0089]Anode= 0.85X2 (QP 12)/3 (7)
[0090]其中,QP为H.264标准中的编码模式的量化参数。
[0091]最后,遍历候选编码模式,将使第二码率的视频的对应子帧中对应分块的编码模式率失真代价最小的候选编码模式作为对应分块的编码模式。即可以通过式(8)来得出最佳第一运动矢量:
[0092]min (Jnode) = min (Erec+ λ node*Rtotal) (8)
[0093]上述方法中通过最小化率失真代价来估计第二码率的视频的编码模式,能够降低视频编码中的失真,保证视频编码的精度。
[0094]在本实施例的一些可选的实现方式中,用于生成多码率视频的方法还可以包括:根据最佳第一运动矢量确定第一码率的视频的编码模式。进一步地,可以通过如下方式确定第一码率的视频的编码模式:
[0095]首先,确定第一码率的视频的至少一个候选编码模式及候选编码模式对应的量化参数;然后,计算至少一个候选编码模式对应的失真参数以及编码比特数,其中,编码比特数包括最佳第一运动矢量需要的比特数、候选编码模式需要的比特数以及最佳第一运动矢量对应的预测误差需要的比特数;之后,基于候选编码模式对应的量化参数、失真参数以及编码比特数,计算第一码率的视频中所述每个分块的编码模式率失真代价;最后遍历候选编码模式,将使第一码率的视频中每个分块的编码模式率失真代价最小的候选编码模式作为每个分块的编码模式。该编码模式确定的流程与上述第二码率的视频的编码模式的确定流程类似,其区别仅在于最佳第一运动矢量和最佳第二运动矢量不相同,因此,可以基于以上已描述的第二码率视频的编码模式确定方法来类似地确定第一码率的视频的编码模式,此处不再赘述。
[0096]在本实施例的一些可选的实现方式中,在上述步骤203之前,用于生成多码率的视频的方法还可以包括:获取第一码率的视频的分辨率及第二码率的视频的分辨率,将第一码率的视频的分辨率除以所述第二码率的视频的分辨率,得到倍除因子;以及将三元组中的候选运动矢量按照倍除因子进行倍除。这样,在第一码率的视频和第二码率的视频具有不同的分辨率时,可以将运动矢量进行相应的倍除,以保证第二码率的视频的运动估计的精确度。
[0097]在确定第一码率的视频和第二码率的视频的编码模式之后,可以分别对输入的视频按照相应的编码模式进行编码,从而得到第一码率的视频和第二码率的视频。可以理解,将以上描述的第二码率视频的运动估计和编码模式确定方法用于其它码率,则可以获得多个不同码率的视频。可选地,第一码率大于第二码率。
[0098]继续参见图3a,其示出了根据本申请的用于生成多码率视频的一种数据处理流程的示意图。对输入的视频301进行运动估计后,可以得出第一运动矢量302,根据第一运动矢量进行第一编码模式3031的确定,之后可以对输入的视频301进行编码生成第一码率的视频3032。基于第一运动矢量302进行第二码率的视频和第三码率的视频的运动估计,计算第二码率的第二运动矢量3041和第三码率的第三运动矢量3051,然后分别根据第二运动矢量3041和第三运动矢量3051确定第二码率的视频的第二编码模式3042和第三码率的视频的第三编码模式3052,之后采用第二编码模式3042对输入的视频301进行编码,生成第二码率的视频3043,采用第三编码模式3052对输入的视频301进行编码,生成第三码率的视频3053。以此类推,生成多个码率的视频。
[0099]在一些可选的实现方式中,在根据第一码率的视频的编码模式对输入的视频编码,生成第一码率的视频之后,可以将第一码率的视频作为第二码率的视频生成过程中的输入视频,根据式(5)和式(8)重新估计运动矢量,确定第二码率的视频的编码模式,以生成多码率视频。
[0100]进一步参见图3b,其示出了根据本申请的用于生成多码率视频的另一种数据处理流程的示意图。对输入的视频306进行运动估计后,可以得出第一运动矢量307,根据第一运动矢量307进行第一编码模式3081的确定,之后可以对输入的视频306进行编码生成第一码率的视频3082。基于第一运动矢量307进行第二码率的视频的运动估计,得出第二码率的视频的第二运动矢量3091,然后基于第二运动矢量3091进行第三码率的视频的运动估计,得出第三码率的视频的第三运动矢量3101,然后分别根据第二运动矢量3091和第三运动矢量3101确定第二码率的视频的第二编码模式3092和第三码率的视频的第三编码模式3102,之后采用第二编码模式3092对第一码率的视频3082进行编码,生成第二码率的视频3093,采用第三编码模式3102对第二码率的视频3093进行编码,生成第三码率的视频3103。以此类推,生成多个码率的视频。
[0101]本申请的上述实施例提供的方法通过将第一码率的视频的运动估计过程中的候选运动矢量及其比特数和预测误差应用于其他码率的视频的运动估计中,简化了多码率视频生成的步骤,加速了多码率视频的生成,节约了系统的计算资源,提升了多码率视频的生成速度,同时,保证了多码率视频生成过程中视频编码的率失真性能。
[0102]进一步参考图4,其示出了用于生成多码率视频的方法的又一个实施例的流程400。该用于生成多码率视频的方法的流程400,包括以下步骤:
[0103]步骤401,获取输入的视频。
[0104]在本实施例中,用于生成多码率视频的方法运行于其上的电子设备(例如图1所示的服务器)可以从其存储的视频数据库中提取输入的视频数据。在一些实施例中,用于生成多码率视频的方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式从用户利用其进行视频播放的终端接收视频播放请求。其中,上述视频播放请求包括了用户期望播放的视频的地址或其他标识信息。用于生成多码率视频的方法运行于其上的电子设备可以根据视频播放请求从存储在服务器的数据库中查询与视频播放请求中的视频地址或标识信息项匹配的视频数据,作为所述输入的视频。
[0105]步骤402,基于第一码率对输入的视频进行运动估计,得出第一码率的视频的最佳第一运动矢量以及至少一个包含候选运动矢量、候选运动矢量的预测误差和候选运动矢量的比特数的三元组。
[0106]在本实施例中,基于步骤401中得到的视频,上述电子设备(例如图1所示的服务器)可以基于第一码率确定量化参数,并利用各种运动估计方法对上述输入的视频进行运动估计。其中第一码率可以是适应于某一带宽的视码率,相应地,下文所描述的第二码率可以是适应于另一带宽的视频码率。
[0107]在本实施例的一些可选的实现方式中,对上述输入的视频进行运动估计的方式可以是基于变换域的方式。例如,可以对输入的视频中相邻两帧的块进行傅里叶变换,根据两帧图像的傅里叶变换的相位相关性估计运动矢量。
[0108]在本实施例的一些可选的实现方式中,对上述输入的视频进行运动估计的方式可以是基于块的运动估计方式。例
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1