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

文档序号:9399616阅读:来源:国知局
如,可以在输入的视频的待估计帧中查找与参考帧中的块匹配度最高的块,并计算该块与参考帧中的参考块之间的相对位移,作为运动估计的结果。
[0109]可以采用如下方式来查找匹配度最高的块:首先确定运动矢量搜索范围,即确定候选运动矢量,然后计算候选运动矢量的预测误差和比特数,基于参考帧中的待匹配块待估计帧中的预测块的匹配度建立运动矢量的率失真代价函数,之后根据候选运动矢量确定待估计帧中的匹配块,计算该预测块对应的运动矢量率失真代价。最后遍历所有候选运动矢量,通过最小化该率失真代价函数来估算运动矢量。其中,匹配度可以基于图像特征进行计算。进一步地,图像特征可以为空间域的特征,例如图像的纹理、颜色等特征。
[0110]步骤403,基于第二码率以及三元组估计第二码率的视频的最佳第二运动矢量。
[0111]在本实施例中,第二码率不同于第一码率,其量化参数不同,为了提高第二码率的视频的运动估计效率,可以基于第二码率的量化参数,在第一码率的视频的运动估计中所获得的三元组的基础上估计第二码率的视频的运动矢量。
[0112]在本实施例的一些可选的实现方式中,可以通过如下方式来估计所述第二码率的视频的最佳第二运动矢量:
[0113]首先,确定第二码率的量化参数。该量化参数可以是H.264标准中规定的参数。在实际编码过程中,可以通过码率控制模块得到第二码率的量化参数。
[0114]然后,基于第一码率的视频的运动估计过程中所得到的三元组以及第二码率的量化参数,计算第二码率的视频中对应分块的运动矢量率失真代价。第二码率的视频中对应分块的运动矢量率失真代价的计算也可以根据上述式(3)和(4)计算。
[0115]之后,遍历每个分块的三元组,将使第二码率的视频中对应分块的运动矢量率失真代价最小的三元组中的候选运动矢量作为对应分块的最佳第二运动矢量。
[0116]步骤404,对最佳第二运动矢量进行优化。
[0117]在本实施例中,可以采用多种优化方式对步骤403所得出的最佳第二运动矢量进行优化,例如可以采用IBP(Iterat1n Back Project1n,迭代反投影)的方法迭代计算最佳第二运动矢量的优化值,当优化值使得参考帧和待匹配帧间的误差收敛或小于某一阈值时,停止迭代,将当前的优化值作为最佳第二运动矢量的优化结果。
[0118]在本实施例的一些可选的实现方式中,可以通过如下方式来对最佳第二运动矢量进行优化:
[0119]首先,确定第二码率的视频中对应分块的运动矢量优化集合。该优化集合可以是包含最佳运动矢量,以及其最邻近的八个运动矢量的集合。其中,最邻近的八个运动矢量可以为欧式距离最近的八个运动矢量。由于运动矢量的估计一般是基于图像像素的,所以运动矢量是像素级的,则当最佳第二运动矢量为(x,y)时(其中x,y的单位为像素),其最邻近的八个运动矢量为(X,y+1)、(χ+1,y),(χ+l,y+1),(x,y-1),(χ-1,y),(χ-1,y-1),(χ-1,y+1)以及(χ+1,y-1)。
[0120]然后,计算运动矢量优化集合内的所有运动矢量对应的率失真代价。在本实施例中,可以根据上述实施例中已确定的第二码率的量化参数、并计算运动矢量优化集合内的每个运动矢量对应的比特数和预测误差,之后采用上述式(3)计算运动矢量优化集合内所有运动矢量对应的率失真代价。
[0121]将率失真代价最小的运动矢量作为优化后的最佳第二运动矢量。即从运动矢量优化集合中选择使得率失真代价最小的运动矢量作为优化结果。
[0122]步骤405,根据最佳第二运动矢量确定第二码率的视频的编码模式。
[0123]在H.264标准中,视频帧的类型可以包括:1帧(帧内编码帧)、P帧(帧间预测编码帧)以及B帧(双向预测编码帧)。H.264标准中,视频中的每一帧图像的分块方式可以包括:16X16、16X8、8X16、8X8、8X4、4X8,其中每种分块方式都有多种编码模式,例如水平模式、垂直模式、对角线模式等等。对于视频中的某一帧,如果前一帧已经完成编码,则可以根据当前帧与前一帧间的运动矢量来确定当前帧的最佳编码模式。具体地,可以根据优化后的最佳第二运动矢量与各编码模式间的关联关系,来查找使得编码后视频的失真最小的编码模式。
[0124]在本实施例的一些可选的实现方式中,可以基于以上已描述的第二码率视频的编码模式确定方法来类似地确定第一码率的视频的编码模式,此处不再赘述。
[0125]在确定第一码率的视频和第二码率的视频的编码模式之后,可以分别对输入的视频按照相应的编码模式进行编码,从而得到第一码率的视频和第二码率的视频。可以理解,将以上描述的第二码率视频的运动估计和编码模式确定方法用于其它码率,则可以获得多个不同码率的视频。可选地,第一码率大于第二码率。
[0126]从图4中可以看出,与图2对应的实施例相比,本实施例中的用于生成多码率的视频的方法的流程400增加了对最佳第二运动矢量进行优化的步骤404。由此,本实施例描述的方案可以进一步精炼第二码率的视频的运动估计,从而进一步降低提升多码率视频生成过程中的失真,提升视频编码的精确度。
[0127]进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于生成多码率的视频的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
[0128]如图5所示,本实施例所述的用于生成多码率视频的装置500包括:获取单元501,第一估计单元502,第二估计单元503以及第一确定单元504。其中,获取单元501配置用于获取输入的视频;第一估计单元502配置用于基于第一码率对输入的视频进行运动估计,得出第一码率的视频的最佳第一运动矢量以及至少一个包含候选运动矢量、候选运动矢量的预测误差和候选运动矢量的比特数的三元组;第二估计单元503配置用于基于第二码率以及三元组估计第二码率的视频的最佳第二运动矢量;第一确定单元504配置用于根据最佳第二运动矢量确定第二码率的视频的编码模式。
[0129]在本实施例中,获取单元501可以从生成多码率视频的方法运行于其上的电子设备(例如图1所示的服务器)已存储的视频数据中提取用户请求播放的视频。第一估计单元502可以基于第一码率确定量化参数,通过最小化率失真代价函数对所获取的视频中的各子帧进行运动估计,得出至少一个包含候选运动矢量及其比特数和预测误差的三元组,以及第一码率的视频的最佳第一运动矢量。第二估计单元503可以基于第一估计单元502所得出的三元组以及第二码率,通过最小化率失真代价函数来对第二码率的视频进行运动估计,以获得最佳第二运动矢量。第一确定单元504可以根据编码模式的量化参数以及最佳第二运动矢量建立编码模式的率失真代价函数,在多种可选的编码模式中,选取使得编码模式的率失真代价函数最小的编码模式作为第二码率的视频的编码模式。
[0130]在本实施例的一些可选的实现方式中,装置500还可以包括第二确定单元505以及编码单元506 (未示出)。第二确定单元505配置用于根据最佳第一运动矢量确定第一码率的视频的编码模式。编码单元505配置用于根据第一码率的视频的编码模式对输入的视频进行编码,以生成第一码率的视频;以及根据第二码率的视频的编码模式对输入的视频进行编码,以生成第二码率的视频。
[0131]本领域技术人员可以理解,上述用于生成多码率视频的装置500还包括一些其他公知结构,例如处理器、存储器等,为了不必要地模糊本公开的实施例,这些公知的结构在图5中未示出。
[0132]下面参考图6,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统600的结构示意图。
[0133]如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM) 602中的程序或者从存储部分608加载到随机访问存储器(RAM) 603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 60KROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
[0134]以下部件连接至I/O接口 605:包括键盘、鼠标等的输入部分606 ;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607 ;包括硬盘等的存储部分608 ;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口 605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
[0135]特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
[0136]附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0137]描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、第一估计单元、第二估计单元和第一确定单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取输入的视频的单元”。
[0138]作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:获取输入的视频;基于
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1