一种视频转码方法与流程

文档序号:11778940阅读:494来源:国知局

本发明属于视频处理技术领域,尤其涉及视频转码处理技术。



背景技术:

随着网络技术的不断发展,多媒体技术逐步云端化,用户对多媒体服务的需求也越来越多样化。根据网络环境的不同,需要对视频码流进行降码率式转码,以保证用户最佳的体验效果。数字视频编解码以及转码是计算密集型操作,其运算过程消耗大量的计算机资源。目前,应用广泛的h.264视频编码包含了预测、运动估计、变换量化和熵编码等运算过程,解码包含对应的逆过程。其中,编码的预测过程或者运动估计主要是通过遍历所有可能值的方式得到最优信息,比如,最优宏块类型、预测模式和运动矢量等信息,根据得到的最优值可以求取预测图像;变换量化过程主要是根据预测图像和原始图像求取残差图像;熵编码过程主要对残差图像及一些码流语义信息进操作。h.264对同一视频以不同目标码率编码时,编码数据有很多相同之处,如,宏块类型、帧内预测模式和帧间运动矢量等。同时,在h.264编码过程中,以遍历的方式确定宏块类型、帧内预测模式和帧间运动矢量等的过程非常复杂,并且计算量大。所以,在h.264降码率转码时沿用部分编码信息,避免一些复杂的计算过程,可以达到快速转码的目的,最终,将提升服务器转码的路数和嵌入式设备转码的效率。

目前,实现h.264降码率转码的一般方法是,将已编码的视频码流完全解码,生成重建视频。然后,将解码重建视频作为编码输入,根据新目标码率调整量化控制参数,编码得到新目标码率的码流。这种转码方法包括了完整的编码和解码过程,计算复杂度高,对计算机资源消耗大,并且包含了许多重复计算的过程,从转码性能方面考虑是非常不必要的。



技术实现要素:

本发明的目的在于提供一种视频转码方法,避免编码过程中的重复计算,从而实现h.264码流向低码率h.264码流的快速转码。

为了实现上述发明目的,本发明的一种视频转码方法,主要包括以下步骤:步骤a:对当前帧的码流进行完整解码,包括基本码流信息的解析和解码图像的重建,生成解码重建图像c;步骤b:根据设置的目标码率b计算出编码当前宏块的量化参数qb;步骤c:根据当前帧的类型计算所述当前宏块的预测图像pb;步骤d:通过当前编码宏块的原始图像cb和预测图像pb求得编码残差图像rb;步骤e:对残差图像rb进行变换、量化和熵编码后得到当前宏块的编码码流。

优选的,步骤a之前还包括:将一帧码流的基本处理单元定义为宏块,正在处理的帧定义为当前帧,正在处理的宏块定义为当前宏块。

优选的,步骤c包括:若所述当前帧是i帧,按照宏块的相对位置i(0,1,2…n.)n为当前帧中包含宏块的个数,保存当前宏块的宏块类型mi和宏块预测模式mpi;根据参考图像像素和宏块类型mi、宏块预测模式mpi求出当前宏块的预测图像pb。

优选的,步骤c具体包括:若当前帧是p帧,按照宏块的相对位置i(0,1,2…n.)n为当前帧中包含宏块的个数,保存当前宏块的宏块类型mi和宏块预测模式mpi,以及保存运动矢量mvi和参考帧索引rfi;根据参考帧索引rfi找到当前宏块的参考图像,通过参考图像和宏块类型mi、宏块预测模式mpi、运动矢量mvi求得当前宏块的预测图像pb。

优选的,步骤d具体包括:将解码重建图像c作为当前编码的原始图像,则当前编码宏块的原始图像cb就是解码重建图像c相对位置i处宏块图像;通过当前编码宏块的原始图像cb和预测图像pb求得编码残差图像rb。

优选的,步骤e具体包括:量化过程使用量化参数qb,量化后的图像继续进行反量化和反变换过程,得到新的残差图像,新残差图像和预测图像pb求得当前宏块新重建图像,从而生成参考图像。

优选的,步骤e后还包括:将下一个宏块作为当前宏块,继续进行步骤b,直至当前帧中的所有宏块编码完毕。

优选的,步骤e后还包括:将下一帧作为当前帧,继续进行上述步骤a,直至转码完毕,得到目标码率b的h.264码流。

本发明视频转码方法将h.264码流转码为低码率的h.264码流,将h.264解码过程中码流的关键信息进行提取重用,简化了编码过程中的遍历和计算代价值的复杂过程,从而实现了两种码率的h.264码流的快速转码。

在本发明设计的快速h.264转码方法中,当需求为降低h.264码流的码率时,共享解码过程得到的码流信息,避免编码过程中的重复计算,从而实现h.264码流向低码率h.264码流的快速转码。

此外,本发明方案在降低码流的码率时,根据设定的目标码率值,通过码率控制技术调节每个宏块的量化参数,能够合理的控制转码码率,完成转码为目标码率的基本功能。

附图说明

图1为本发明具体实施例中h.264视频转码过程图示。

具体实施方式

发明的基本原理:对原始码流进行完全的解码重建,将重建图像作为编码过程中的原始图像,再结合编码过程中得到的预测图像求出新的残差图像,保证了对残差图像的压缩产生的失真由量化过程控制,从而保证了转码码流的质量在控制范围之内。

本发明方案在编码过程中,使用解码得到的宏块类型、预测模式和运动矢量等码流关键信息,通过预测技术得到预测图像。避免了原始编码过程中以遍历的方式求取这些关键信息,能够有效地减少转码的计算量,节省计算机资源。

为了更清楚地说明本发明实例的技术方案,下面将结合示例图对本发明的具体实施例进行详细的介绍,下面的描述仅仅是本发明的一些实施例。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些实施例获得本发明的其他实施方式。

本发明实例提供了一种h.264码流向目标为低码率h.264码流的快速转码方法,该方法复用h.264解析得到码流信息。从而实现h.264码流向低码率h.264码流的高效转换,达到不同码率的h.264码流的快速转码。该方法主要包括了h.264完整的解码过程、转码过程和部分编码过程,解码过程将h.264码流完全解码得到重建图像,并且保存中间的解析信息,转码过程包括解析信息的重用和重建图像的利用,最后将解码保存的信息和重建图像送入编码过程进行重新量化,最终得到指定码率的h.264码流,具体过程如图1所示。

图1为本发明具体实施例中h.264视频转码过程图示。如该图所示,本发明的主要内容包括:

步骤1:将一帧码流的基本处理单元定义为宏块。

步骤2:对当前帧的码流进行完整解码。

步骤3:判断当前帧的类型,根据类型保存对应的解析信息,每个宏块的解析信息按照其相对位置依次保存。若当前帧是i帧,保存宏块类型和宏块预测模式;若是p帧,还需要保存运动矢量和参考帧索引。

步骤4:当前帧解码完成后保存重建图像c。

步骤5:根据设置的目标码率b,得到当前宏块的量化参数qb。

步骤6:若当前帧是i帧,根据步骤3保存的宏块类型和宏块预测模式,根据h.264预测技术得到当前宏块的预测图像pb。若当前帧是p帧,则通过宏块类型、运动矢量和参考帧索引信息求得预测图像pb。

步骤7:利用步骤4保存的解码重建图像c索引当前宏块的原始解码重建图像cb,通过原始重建图像cb和预测图像pb求得当前宏块的残差图像rb。

步骤8:对残差图像rb进行变换、量化和熵编码,输出当前宏块码流;其中量化的结果继续进行反量化和反变换得到新的残差图像,新残差图像和预测图像pb求得当前块新重建图像,保存新重建图像

步骤9:将下一个宏块作为当前宏块,继续进行步骤5直至当前帧中的宏块编码完毕。

步骤10:将下一帧作为当前帧,继续进行步骤2,直至转码完毕。最终得到目标码率b的h.264码流。

本发明h.264视频转码方法主要包括:解码、转化和编码部分。结合上述步骤介绍,解码部分为步骤s2到s4,其中,s3中保存基本码流信息的过程即为转化部分的信息提取,s4中的保存解码重建图像即为转化部分的重建图像缓存;编码部分为步骤s5到s9,其中,s6中索引保存的码流信息的过程即为转化部分的信息重用。

图示中涉及的“变换”、“量化”在步骤s8中体现,具体技术为已有技术;“运动补偿”和图中新增加说明的“帧内预测”在步骤s6中体现,具体技术也为已有技术。

以下将进一步对上述实现步骤具体说明:

步骤s1:将一帧码流的基本处理单元定义为宏块,正在处理的帧定义为当前帧,正在处理的宏块定义为当前宏块。

步骤s2:对当前帧的码流进行完整解码,其过程分为步骤s3的基本码流信息的解析和步骤s4的解码图像的重建。

步骤s3:若当前帧是i帧,按照宏块的相对位置i(0,1,2…n.)n为当前帧中包含宏块的个数。保存当前宏块的宏块类型mi和宏块预测模式mpi;若是p帧,还需要保存运动矢量mvi和参考帧索引rfi。

步骤s4:将下一个宏块作为当前宏块,继续执行步骤s3直至当前帧处理完毕,同时保存当前帧解码重建图像c。

步骤s5:根据设置的目标码率b,得到编码当前宏块的量化参数qb。原始码流的码率a是已知参数,b∈(0,a],即文中先前提及的“低码率”,具体的设置值是根据用户的码率需求而定,若用户请求过低的码率,则本发明转码到对应的码率,视频质量会随之下降。根据目标码率b得到qb是通过已有的码率控制技术,即本领域技术人员公知的,此处qb在后续步骤s8中使用。

步骤s6:若当前帧是i帧,根据步骤s130保存的宏块类型和宏块预测模式,根据h.264帧内预测技术得到当前宏块的预测图像pb。本发明实例中,根据当前编码宏块的相对位置i,直接索引步骤s130保存的宏块类型mi和宏块预测模式mpi,将其作为此时宏块对应的编码信息。然后,根据当前宏块的参考图像像素和宏块类型mi和宏块预测模式mpi求出当前宏块的预测图像pb。

若当前帧是p帧,则通过宏块类型、运动矢量和参考帧索引信息结合运动补偿技术求得预测图像pb。本发明实例中,根据当前编码宏块的相对位置i,索引步骤s130保存的宏块类型mi、宏块预测模式mpi、运动矢量mvi和参考帧索引rfi,将这些信息作为当前宏块对应的编码信息。然后,根据参考帧索引rfi找到当前宏块的参考图像,通过参考图像和宏块类型mi、宏块预测模式mpi、运动矢量mvi求得当前宏块的预测图像pb。

步骤s7:将解码重建图像c作为当前编码的原始图像,则当前编码宏块的原始图像cb就是解码重建图像c相对位置i处宏块图像。通过当前编码宏块的原始图像cb和预测图像pb求得编码残差图像rb。

步骤s8:对残差图像rb进行变换过程,变换后进行量化。最后,熵编码得到当前宏块的编码码流。本发明实例中,量化过程使用步骤s5中的量化参数qb,同时,量化后的图像继续进行反量化和反变换过程,得到新的残差图像,新残差图像和预测图像pb求得当前宏块新重建图像。将新重建图像保存在解码图像缓存中,用于下一个宏块执行步骤s6时查找对应宏块的参考图像。在该步骤s8最后得到的宏块参考图像是当前宏块最新求得的,与s6中所述的宏块的参考图像是上一个宏块求得的。

步骤s9:将下一个宏块作为当前宏块,继续进行步骤s5,直至当前帧中的所有宏块编码完毕。

步骤s10:将下一帧作为当前帧,继续进行步骤s2,直至转码完毕。最终得到目标码率b的h.264码流。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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