一种基于HEVC视频编码的TU树状结构抉择算法的制作方法

文档序号:11778927阅读:601来源:国知局
一种基于HEVC视频编码的TU树状结构抉择算法的制作方法与工艺

本发明涉及视频编码领域,具体涉及一种基于hevc视频编码的tu树状结构抉择算法。



背景技术:

hevc视频编码中,tu树状结构是hevc视频标准新提出的一种提高编码效率的编码工具,tu大小有4x4,8x8,16x16,32x32,对于提高编码效率有很大作用,但其抉择算法要求极高的计算复杂度,使得硬件的开销较大,增加了硬件成本。

比如,hm是jctvc组织的hevc参考编码器与算法实现。其采用的tu抉择过程如下:

对所有可能的tu块(64个4x4块,16个8x8块,4个16x16块,1个32x32块),做如下运算过程:

1.变换(transform)->量化(quant)->反量化(dequant)->反变换(inversetransform)->重构(reconstruct).

2.计算该tu块的失真,distortion=sum(原始像素–重构像素)^2

3.对量化后的系数做简化的cabac,然后算出较为准确的残差编码的比特数bits

4.该tu的rdcost=distortion+lambda*bits,(lambda是基于qp和帧类型而定的常数)。

5.对所有的tu块的rdcost做遍历比较,选出最小的tu_rdcost组合,得到tu树结构。

上述算法中,反变换(inversetransform)和重构(reconstruct)的计算复杂度较高,导致硬件的开销较大,硬件pipeline的级数较多,因此,硬件的整体性能不高。



技术实现要素:

本发明的目的在于提供一种基于hevc视频编码的tu树状结构抉择算法,解决目前的tu树状结构抉择算法的计算复杂度很高,导致硬件成本增加以及硬件性能不高的问题。

本发明为实现上述目的,采用以下技术方案实现:

一种基于hevc视频编码的tu树状结构抉择算法,包括以下步骤:

(a)对tu的残差residual进行变换,得到量化前的系数c0;

(b)对步骤(a)中得到的c0进行量化,得到系数c1;

(c)采用固定的二进制bin与bits的压缩比,得到比特数估计值bits_estimate;

(d)对步骤(b)中得到的c1进行反量化,得到系数c2;

(e)计算该tu的失真值distortion:distortion=sum(c2-c0)^2;

(f)计算该tu残差编码后的率失真代价rdcost=distortion+lambda*bits_estimate,其中,lambda是根据qp与帧类型而定的常数;

(g)计算该tu残差在全部不编码的情况下的率失真代价rdcost_zero:rdcost_zero=sum(residual)^2;

(h)将步骤(g)得到的rdcost_zero与步骤(f)得到的rdcost进行比较,数值较小的作为该tu的最优代价tu_cost:tu_cost=min(rdcost_zero,rdcost)。

进一步地,作为优选技术方案,所述步骤(c)的具体过程为:

(c1)按照hevc残差cabac的二进制化过程,得到该tu残差二进制化过后的bin的总数;

(c2)将bin/(1.2~1.4)作为该tu残差部分的比特数估计值bits_estimate。

进一步地,作为优选技术方案,所述步骤(c2)中,将bin/1.3作为该tu残差部分的比特数估计值bits_estimate。

进一步地,作为优选技术方案,所述步骤(h)的具体过程为:

(h1)当tu块为8x8块时,比较tu_cost_8x8和4个tu_cost_4x4的和,决定该8x8块是否分割.

如果tu_cost_8x8较小,则该8x8块不分割,否则,该8x8块分割;

该8x8块的最终最优代价tu_best_cost_8x8=min(tu_cost_8x8,sum(tu_cost_4x4)),其中,tu_cost_8x8表示8x8块的最优代价,tu_cost_4x4表示4x4块的最优代价;

(h2)当tu块为16x16块时,比较tu_cost_16x16和4个tu_best_cost_8x8的和,决定该16x16块是否分割;

如果tu_cost_16x16较小,则该16x16块不分割,否则,该16x16块分割;

该16x16块的最终最优代价tu_best_cost_16x16=min(tu_cost_16x16,sum(tu_best_cost_8x8)),其中tu_cost_16x16表示16x16块的最优代价,tu_best_cost_8x8表示8x8块的最终最优代价;

(h3)当tu块为32x32块时,比较tu_cost_32x32和4个tu_best_cost_16x16的和,决定该32x32块是否分割.

如果tu_cost_32x32较小,则该32x32块不分割,否则,该32x32块分割;

该32x32块的最终最优代价tu_best_cost_32x32=min(tu_cost_32x32,sum(tu_best_cost_16x16)),其中,tu_best_cost_32x32表示32x32块的最优代价,tu_best_cost_16x16表示16x16块的最终最优代价。

本发明与现有技术相比,具有以下优点及有益效果:

(1)本发明相较于现有技术,巧妙地省去了反变换(inversetransform)和重构(reconstruct)过程,降低了计算的复杂程度,减少了硬件开销,同时也减少了硬件pipeline的级数,同时提高了硬件的性能。

(2)本发明采用固定的二进制bin与bits的压缩比估计比特数,去除了cabac(编码、解码)的计算需求,极大降低了实现的复杂度,提高了硬件实现的性能。

(3)本发明相较于现有的复杂tu算法,只有0.5bd-r的损失,即在相同视频编码质量下,只增加了0.5%的码率。

附图说明

图1为本发明的tu块的率失真计算过程;

图2为本发明的tu树状结构抉择过程;

图3为本发明的tu树状结构结果示例。

具体实施方式

下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。

实施例:

hevc视频编码中,tu树型结构是hevc视频标准新提出的一种提高编码效率的编码工具,tu大小有4x4、8x8、16x16、32x32,在对tu树状结构抉择时,是对所有的tu块做rdcost(率失真)计算,tu块包括64个4x4块,16个8x8块,4个16x16块,1个32x32块,总共85个块。

如图1所示,本实施例所述的一种基于hevc视频编码的tu树状结构抉择算法,包括以下步骤:

(a)对tu的残差residual进行变换,得到量化前的系数c0;

(b)对步骤(a)中得到的c0进行量化,得到系数c1;

(c)采用固定的二进制bin与bits的压缩比,得到比特数估计值bits_estimate;

(d)对步骤(b)中得到的c1进行反量化,得到系数c2;

(e)计算该tu的失真值distortion:distortion=sum(c2-c0)^2;

(f)计算该tu残差编码后的率失真代价rdcost=distortion+lambda*bits_estimate,其中,lambda是根据qp与帧类型而定的常数;

(g)计算该tu残差在全部不编码的情况下的率失真代价rdcost_zero:rdcost_zero=sum(residual)^2;

(h)将步骤(g)得到的rdcost_zero与步骤(f)得到的rdcost进行比较,数值较小的作为该tu的最优代价tu_cost:tu_cost=min(rdcost_zero,rdcost)。

通过上述步骤可知,本实施例并未像现有技术那样进行反变换(inversetransform)和重构(reconstruct),省去了这两个步骤,通过基于量化前和反量化后的频域空间的系数差异,来估计时域的失真,得到的实际仿真差异并不大,但是这样做大大简化了计算的复杂程度。另外采用固定的二进制bin与bits的压缩比,得到比特数估计值bits_estimate,不用对bin做基于上下文的二进制算术编码过程,极大降低了实现的复杂度,提高了硬件实现的性能。

本实施例可对步骤(c)进行如下细分:

(c1)按照hevc残差cabac的二进制化过程,得到该tu残差二进制化过后的bin的总数;

(c2)将bin/(1.2~1.4)作为该tu残差部分的比特数估计值bits_estimate。

优选的,步骤(c2)中,将bin/1.3作为该tu残差部分的比特数估计值bits_estimate。

本实施例可采用如下的方式对tu树状结构进行抉择:

(h1)当tu块为8x8块时,比较tu_cost_8x8和4个tu_cost_4x4的和,决定该8x8块是否分割.

如果tu_cost_8x8较小,则该8x8块不分割,否则,该8x8块分割;

该8x8块的最终最优代价tu_best_cost_8x8=min(tu_cost_8x8,sum(tu_cost_4x4)),其中,tu_cost_8x8表示8x8块的最优代价,tu_cost_4x4表示4x4块的最优代价;

(h2)当tu块为16x16块时,比较tu_cost_16x16和4个tu_best_cost_8x8的和,决定该16x16块是否分割;

如果tu_cost_16x16较小,则该16x16块不分割,否则,该16x16块分割;

该16x16块的最终最优代价tu_best_cost_16x16=min(tu_cost_16x16,sum(tu_best_cost_8x8)),其中tu_cost_16x16表示16x16块的最优代价,tu_best_cost_8x8表示8x8块的最终最优代价;

(h3)当tu块为32x32块时,比较tu_cost_32x32和4个tu_best_cost_16x16的和,决定该32x32块是否分割.

如果tu_cost_32x32较小,则该32x32块不分割,否则,该32x32块分割;

该32x32块的最终最优代价tu_best_cost_32x32=min(tu_cost_32x32,sum(tu_best_cost_16x16)),其中,tu_best_cost_32x32表示32x32块的最优代价,tu_best_cost_16x16表示16x16块的最终最优代价。

以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

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