一种视频并行编码的实现方法及装置制造方法及图纸

技术编号:35106242 阅读:22 留言:0更新日期:2022-10-01 17:17
本发明专利技术公开了一种视频并行编码的实现方法。采用H.264或H.265标准中定义的片TILE和/或SLICE对视频帧进行划分,得到的TILE或SLICE中的最小者称为子帧。当进行帧内并行编码时,每一个子帧分别进行独立的编码;当所有子帧均编码完成后,当前帧编码完成。当进行帧间并行编码时,当前帧的编码块(m,n)的整像素运动估计是等待所有参考帧的编码块(m,m+k)所在的编码块行完成编码以后进行,当前帧的编码块(m,n)的子像素运动估计是等待所有参考帧的编码块(m,m+k+N)所在的编码块行完成编码以后进行。本发明专利技术实现了帧内并行与帧间并行,最大化并行度,适用于软件编码器的设计和硬件编码器的设计。的设计。的设计。

【技术实现步骤摘要】
一种视频并行编码的实现方法及装置


[0001]本专利技术涉及一种数字视频编码,特别是涉及一种视频编码过程的并行方法。

技术介绍

[0002]在数字图像领域,静止图像通常表示为二维点阵,每个点表示一个像素。数字视频或动态数字图像是由一组静止数字图像组成的,其中的每一幅静止图像称作一个图像帧或视频帧。
[0003]请参阅图1,目前主流的视频或动态图像压缩算法主要包括如下几个过程:预测、变换、量化、环内滤波、熵编码、重建,详述如下。
[0004]预测过程主要采用帧内预测(intra prediction)和帧间预测(inter prediction)两种预测方法。帧内预测是利用同一视频帧内相邻像素的空间相关性,由已编码像素值来预测其相邻像素值,以达到减少信息量的目的。帧间预测是利用相邻视频帧的帧内相关性,由已编码视频帧的像素值来预测当前帧的像素值,以达到减少信息量的目的。
[0005]待编码像素值与预测值求差所得称为残差数据,残差数据被送入变换过程。变换过程将信号从空域变换到频域,以去除空间信号的相关性。空域的信号通过变换转换为频域信号,变换后的信号称为变换系数。变换系数包括低频系数、中频系数和高频系数,其能量主要集中在低频系数上。
[0006]量化是将变换系数除以某一个整数的过程,分为均匀量化和非均匀量化。变换系数中能量小的系数(例如中频系数、高频系数)可通过量化去除,而不会严重影响重构图像的视觉质量,故量化过程会产生量化误差。
[0007]现行主流视频编码都是基于块的编码,由于编码过程会产生误差,误差将会导致失真。为减少失真所带来的观感下降,视频编码中引入环内滤波用以改善视频质量。视频编码过程中会进行滤波模式的选择,帧重建过程或解码时需要执行所选的滤波模式。
[0008]熵编码对于上述过程中产生的最终系数数据和信息数据进行进一步的压缩编码,达到去除统计冗余的目的。熵编码是无损编码,熵编码的输出是视频编码过程的最终输出,是视频解码过程的全部信息。
[0009]由于视频编码过程中存在精度损失,为了使编码和解码过程拥有相同的基准,故编码过程中需将已编码完成的帧进行重建,以重建帧作为后续帧间预测的参考,称为参考帧。重建过程分为反量化、反变换、预测补偿、滤波,前三者为编码进程中对应步骤的反操作,重建过程与实际解码过程保持一致。
[0010]在图1所示的视频编码过程中,各步骤(过程)之间依次进行、相互依赖。例如:帧内预测需要依赖相邻位置的图像信息来完成当前位置的预测,帧间预测需要其他帧的重建信息来完成当前帧的预测;环内滤波需要依赖相邻位置的图像信息来完成修正值的计算;熵编码过程中为了提高压缩效率,需要通过已编码数据建立编码上下文,对帧内已编码的图像也会产生依赖。
[0011]视频编码过程是一个极耗计算能力的过程,所以除了运行在通用CPU上的软件视
频编码器外,行业内也会采用各种硬件加速设备(如GPU、FPGA等)来加速编码过程,或设计硬件编码器(专用ASIC芯片)来实现更高效率的视频编码。随着各种硬件设备的多核化,为了更好地利用硬件资源,在同一时间同时执行多项编码任务,以提升视频编码效率的方法,称为视频并行编码。并行运算中,无依赖的多任务可以同时执行,有依赖的任务必须等待被依赖任务执行完毕,这降低了整体任务的并行性。因此如何最大化地解决或避免视频编码过程的依赖是视频并行编码需要解决的第一个问题。由于视频编码各过程之间必然存在关联性,所以依赖不会完全消除,如何进行多任务之间的协调与同步是视频并行编码需要解决的第二个问题。
[0012]请参阅图2,视频编码采取了按块编码的方式,在编码时每一帧待编码图像被划分为多个互不重叠的编码块(Coding Unit)。例如H.264的MB(macro block,宏块,大小为16像素
×
16像素的图像块)和H.265的CTU(coding tree unit,编码树单元,最大支持64像素
×
64像素的图像块)。编码一帧图像时,帧内每一个编码块按从左到右、从上到下的方式依次进行前述的编码过程。
[0013]当有多个独立运算单元时,可以采用流水线并行编码方式,如图3所示。图3以具有四个独立计算单元为例,可同时对四个编码块进行编码。第二个编码块的编码过程比第一个编码块慢一拍,第三个编码块的编码过程比第二个编码块慢一拍,以此类推。因为滤波和熵编码是无损的,就是正向做一遍再反向一遍后,和原来的值是一样的。所以重建过程就省掉了这个过程,相当于是以量化后的值为起点开始,做反量化

>反变换

>重建。图1中所示的环内滤波和滤波,在实际实现中通常是放在一起做的;就是滤波过程中,一是确定了滤波模式输出给熵编码,二是确定了滤波后的像素用于重建的过程。这种流水线并行编码方式的主要问题是流水线建立或即将结束时并行效率较低,而且硬件编码器通常已采用了这种方式,故如何在此基础上进一步提升编码器的并行效率仍是需解决的问题。
[0014]如前所述,视频编码过程需要严格按照编码块的顺序,由于各步骤(过程)之间存在依赖,同一帧内各编码块之间无法实现完全的并行。为了更好地提升并行性,相应的视频标准在制定时中添加了可独立编解码的单元,如H.264的SLICE(条)及H.265中定义的TILE(片)和SLICE。SLICE和TILE是指可以按一定的规则将一帧图像划分成多个可独立编解码的单元,一个TILE内部可以再分为一个或多个SLICE,这些单元相互之间无依赖。请参阅图4,其中的每个小方块表示一个编码块。长虚线是TILE的边界,一个图像帧分为两个TILE。粗实线和短虚线是SLICE的边界,一个TILE分为多个SLICE。图4中的灰色阴影填充部分示意性地表示出了三个SLICE。SLICE和TILE的划分牺牲了一定的编码效率,实现了并行。然而,H.265标准中只定义了SLICE和TILE划分的基本方法及限制条件,并未规定具体实现和并行处理的方式。

技术实现思路

[0015]本专利技术所要解决的技术问题是提出一种视频帧内并行编码、帧间并行编码的实现方法。
[0016]为解决上述技术问题,本专利技术公开了一种视频并行编码的实现方法,包括如下步骤。步骤S1:采用H.264标准中定义的条SLICE对视频帧进行划分,得到的SLICE称为子帧;或者采用H.265标准中定义的片TILE和/或SLICE对视频帧进行划分,得到的TILE或SLICE中的
最小者称为子帧。步骤S2:当进行帧内并行编码时,每一个子帧分别进行独立的编码;当所有子帧均编码完成后,当前帧编码完成。当进行帧间并行编码时,当前帧的编码块(m,n)的整像素运动估计是等待所有参考帧的编码块(m,m+k)所在的编码块行完成编码以后进行,当前帧的编码块(m,n)的子像素运动估计是等待所有参考帧的编码块(m,m+k+N)所在的编码块行完成编码以后进行;编码块(m,n)是指该编码块左上角像素相对于视频帧左上角像素的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种视频并行编码的实现方法,其特征是,包括如下步骤;步骤S1:采用H.264标准中定义的条SLICE对视频帧进行划分,得到的SLICE称为子帧;或者采用H.265标准中定义的片TILE和/或SLICE对视频帧进行划分,得到的TILE或SLICE中的最小者称为子帧;步骤S2:当进行帧内并行编码时,每一个子帧分别进行独立的编码;当所有子帧均编码完成后,当前帧编码完成;当进行帧间并行编码时,当前帧的编码块(m,n)的整像素运动估计是等待所有参考帧的编码块(m,m+k)所在的编码块行完成编码以后进行,当前帧的编码块(m,n)的子像素运动估计是等待所有参考帧的编码块(m,m+k+N)所在的编码块行完成编码以后进行;编码块(m,n)是指该编码块左上角像素相对于视频帧左上角像素的x轴偏移值为m,y轴偏移值为n;当采用H.264编码时,N=16;当采用H.265编码时,N=8或16或32或64。2.根据权利要求1所述的视频并行编码的实现方法,其特征是,所述子帧满足如下条件:(1)子帧由完整的编码块组成;SLICE或者包含一个视频帧中的一整行编码块,或者包含一个TILE中的一整行的编码块;(2)SLICE和TILE都尽量均分,即尽可能使每个SLICE或TILE包含相同数量的编码块。3.根据权利要求1所述的视频并行编码的实现方法,其特征是,所述步骤S1中对视频帧划分子帧分为如下三种情况;情况一:采用H.264标准中定义的SLICE对视频帧进行划分,得到的每个SLICE称为一个子帧;或者采用H.265标准中定义的SLICE对视频帧进行划分,得到的每个SLICE称为一个子帧;情况二,采用H.265标准中定义的TILE对视频帧进行划分,得到的每个TILE称为一个子帧;情况三,采用H.265标准中定义的TILE和SLICE对视频帧进行划分,每个TILE内部再分为多个SLICE,得到的每个SLICE称为一个子帧。4.根据权利要求1所述的视频并行编码的实现方法,其特征是,所述步骤S2中,帧内并行编码和帧间并行编码是相互独立的,分为如下工作模式:(1)仅帧内并行编码;(2)仅帧间并行编码;(3)同时有帧内并行编码和帧间并行编码。5.根据权利要求1所述的视频并行编码的实现方法,其特征是,所述步骤S2中,当进行帧间并行编码时,当前帧的编码块(m,n)所在编码块行在参考帧上的运动搜索范围为参考帧的编码块(m,n

k)至编码块(m,n+k)所在的编码块行;k的最小取值为8,最大取值为视频帧高度的1/4。6.根据权利要求1所述的视频并行编码的实现方法,其特征是,所述步骤S2中,当进行帧间并行编码时,当前帧的LCU(m,n)的整像素运动估计是等待所有参考帧的LCU(m,m+k)所在的LCU行完成编码以后进行,当前帧的LCU(m,n)的子像素运动估计是等待所有参考帧的LCU(m,m+k+N)所在的LCU行完成编码以后进行;LCU(m,...

【专利技术属性】
技术研发人员:刘国正温安君刘鹏飞
申请(专利权)人:翱捷科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1