[发明专利]一种适用于HEVC的全零块检测方法有效

专利信息
申请号: 201711335034.6 申请日: 2017-12-14
公开(公告)号: CN108124163B 公开(公告)日: 2020-07-14
发明(设计)人: 周巍;魏恒璐;张冠文 申请(专利权)人: 西北工业大学
主分类号: H04N19/61 分类号: H04N19/61;H04N19/124;H04N19/18;H04N19/122
代理公司: 西北工业大学专利中心 61204 代理人: 金凤
地址: 710072 *** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明提供了一种适用于HEVC的全零块检测方法,涉及视频处理技术领域,本发明计算预测残差子块的按沃尔什序排列的沃尔什变换WT系数矩阵,根据预测残差子块的沃尔什序WT系数矩阵计算与TB同阶的沃尔什序WT系数矩阵,根据沃尔什序WT变换系数或预测残差检测全零块。本发明与基于SAD和SATD的算法相比,直接使用最大变换系数检测全零块,避免了由残差能量分布差异所造成的误检测,从而极大提高了检测效率,本发明不仅能检测UQ中的全零块,也能检测RDOQ中的全零块;对4种尺寸的全零块都有较高的检测效率;编码器的率失真性能损失较小,基本可以忽略;变换/量化运算的整体耗时明显下降,提高了编码的速度。
搜索关键词: 一种 适用于 hevc 全零块 检测 方法
【主权项】:
一种适用于HEVC的全零块检测方法,其特征在于包括下述步骤:第一步:计算预测残差子块的按沃尔什序排列的沃尔什变换WT系数矩阵:将32×32和16×16大小的TB分别划分成16个和4个8×8大小互不重叠的预测残差子块;8×8和4×4大小的TB不进行进一步划分,分别对应一个8×8大小和一个4×4大小的预测残差子块,对于每一个预测残差子块,若率失真优化模块已经计算过该预测残差子块的WT系数矩阵,则从率失真优化模块获取其对应的4×4或8×8沃尔什序WT系数矩阵;若无法从率失真优化模块获取,而父级TB中包含当前预测残差子块的沃尔什序WT系数矩阵,则从父级TB中获取对应的沃尔什序WT系数矩阵;若从父级TB中依然无法得到对应的沃尔什序WT系数矩阵,则分别计算每个预测残差子块的沃尔什序WT系数矩阵;第二步:根据第一步得到的预测残差子块的沃尔什序WT系数矩阵计算与TB同阶的沃尔什序WT系数矩阵:对于4×4TB和8×8TB,其预测残差子块对应的沃尔什序WT系数矩阵即与TB同阶的沃尔什序WT系数矩阵;对于16×16TB,根据第一步得到的4个预测残差子块的8×8沃尔什序WT系数矩阵计算得到16×16非沃尔什序WT系数矩阵,计算公式如下:<mrow><msubsup><mi>B</mi><mn>16</mn><mo>&prime;</mo></msubsup><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>0</mn><mo>,</mo><mn>0</mn><mo>)</mo></mrow></msup><mo>+</mo><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>+</mo><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mn>0</mn><mo>)</mo></mrow></msup><mo>+</mo><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msup></mrow></mtd><mtd><mrow><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>0</mn><mo>,</mo><mn>0</mn><mo>)</mo></mrow></msup><mo>-</mo><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>+</mo><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mn>0</mn><mo>)</mo></mrow></msup><mo>-</mo><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msup></mrow></mtd></mtr><mtr><mtd><mrow><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>0</mn><mo>,</mo><mn>0</mn><mo>)</mo></mrow></msup><mo>+</mo><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>-</mo><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mn>0</mn><mo>)</mo></mrow></msup><mo>-</mo><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msup></mrow></mtd><mtd><mrow><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>0</mn><mo>,</mo><mn>0</mn><mo>)</mo></mrow></msup><mo>-</mo><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>-</mo><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mn>0</mn><mo>)</mo></mrow></msup><mo>+</mo><msup><msub><mi>B</mi><mn>8</mn></msub><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msup></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>其中,B8(i,j),i,j∈{0,1}是预测残差子块的8×8沃尔什序WT系数矩阵,i表示8×8预测残差子块在16×16TB中的横向坐标,j表示8×8预测残差子块在16×16TB中的纵向坐标,B′16是16×16非沃尔什序WT系数矩阵,使用16×16沃尔什序WT系数矩阵B16的112个低频系数,B′16与B16中的系数完全相同,且将B′16中的系数按沃尔时序重新排列即可得到B16,因此,直接从B′16获取B16的112个低频系数;对于32×32TB,根据第一步得到的16个预测残差子块的8×8沃尔什序WT系数矩阵计算得到32×32非沃尔什序WT系数矩阵,计算公式如下:<mrow><mtable><mtr><mtd><mrow><msubsup><mi>B</mi><mn>32</mn><mo>&prime;</mo></msubsup><mo>=</mo><mfrac><mn>1</mn><mn>4</mn></mfrac><mrow><mo>(</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>&CircleTimes;</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>0</mn><mo>,</mo><mn>0</mn><mo>)</mo></mrow></msubsup></mtd><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msubsup></mtd><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>0</mn><mo>,</mo><mn>2</mn><mo>)</mo></mrow></msubsup></mtd><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>0</mn><mo>,</mo><mn>3</mn><mo>)</mo></mrow></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mn>0</mn><mo>)</mo></mrow></msubsup></mtd><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msubsup></mtd><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>)</mo></mrow></msubsup></mtd><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mn>3</mn><mo>)</mo></mrow></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>2</mn><mo>,</mo><mn>0</mn><mo>)</mo></mrow></msubsup></mtd><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>2</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msubsup></mtd><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>2</mn><mo>,</mo><mn>2</mn><mo>)</mo></mrow></msubsup></mtd><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>2</mn><mo>,</mo><mn>3</mn><mo>)</mo></mrow></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>3</mn><mo>,</mo><mn>0</mn><mo>)</mo></mrow></msubsup></mtd><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>3</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msubsup></mtd><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>3</mn><mo>,</mo><mn>2</mn><mo>)</mo></mrow></msubsup></mtd><mtd><msubsup><mi>B</mi><mn>8</mn><mrow><mo>(</mo><mn>3</mn><mo>,</mo><mn>3</mn><mo>)</mo></mrow></msubsup></mtd></mtr></mtable></mfenced><mrow><mo>(</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>&CircleTimes;</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>)</mo></mrow></mrow></mtd></mtr></mtable><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>其中,B8(m,n),m,n∈{0,3}是预测残差子块的8×8沃尔什序WT系数矩阵,m表示8×8预测残差子块在32×32TB中的横向坐标,n表示8×8预测残差子块在32×32TB中的纵向坐标,B′32是32×32非沃尔什序WT系数矩阵,表示克罗内克积,本发明使用32×32沃尔什序WT系数矩阵B32的160个低频系数,B′32与B32中的系数完全相同,且将B′32中的系数按沃尔时序重新排列即可得到B32,因此,直接从B′32获取B32的160个低频系数;第三步:根据第二步得到的沃尔什序WT变换系数或预测残差检测全零块:当量化操作使用的是均匀量化器UQ,逐个比较WT变换系数的绝对值与量化阈值Th_U的大小,对于4×4TB和8×8TB,将第二步得到的与TB同阶的沃尔什序WT系数矩阵中的系数逐个与Th_U比较大小;对于16×16TB,将第二步得到的16×16沃尔什序WT系数矩阵中的112个低频系数逐个与Th_U比较大小;对于32×32TB,将第二步得到的32×32沃尔什序WT系数矩阵中的160个低频系数逐个与Th_U比较大小;若TB中所有需要对比的WT变换系数的绝对值均不大于阈值Th_U,则当前TB是全零块,否则认为是非全零块,阈值Th_U的定义为:Th_U=α·(1?offset)·Qstep         (3)其中,α是补偿系数,其取值范围为[0.9,1.0],检测率与误检测率都与α正相关;offset是UQ的截断电压,对于I Slice其值为1/3,对于其他Slice其值为1/6;Qstep是量化步长;当量化操作使用的是率失真优化量化器RDOQ,使用基于率失真优化的方法检测全零块;首先,根据要检测的TB的大小查找WT变换系数中绝对值最大的系数CM及其位置,对于4×4TB和8×8TB,查找第二步得到的与TB同阶的沃尔什序WT系数矩阵中的每个系数;对于16×16TB,查找第二步得到的16×16沃尔什序WT系数矩阵中的112个低频系数;对于32×32TB,查找第二步得到的32×32沃尔什序WT系数矩阵中的160个低频系数;然后,计算CM的预量化值lpre<mrow><msup><mi>l</mi><mrow><mi>p</mi><mi>r</mi><mi>e</mi></mrow></msup><mo>=</mo><mi>r</mi><mi>o</mi><mi>u</mi><mi>n</mi><mi>d</mi><mrow><mo>(</mo><mfrac><mrow><mn>1.1</mn><mo>&CenterDot;</mo><mo>|</mo><msub><mi>C</mi><mi>M</mi></msub><mo>|</mo></mrow><msub><mi>Q</mi><mrow><mi>s</mi><mi>t</mi><mi>e</mi><mi>p</mi></mrow></msub></mfrac><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>其中,round()表示四舍五入,若lpre等于0,则该TB为全零块;若lpre大于2,则该TB为非全零块;若lpre等于1或2,则比较使用HEVC CABAC熵编码器将CM编码为0时的率失真代价Jcoeff0和编码为非零时的整体率失真代价JNZ(i),JNZ(i)的计算公式为:JNZ(i)=Jcoeffi+JCG+Jpos                        (5)其中,Jcoeffi表示使用HEVC CABAC熵编码器将CM编码为i时的率失真代价,lpre=1时i∈{1},即计算JNZ(1),lpre=2时i∈{1,2},即分别计算JNZ(1)和JNZ(2);Jpos表示编码CM的位置所需的率失真代价;JCG表示编码系数组flag所需的率失真代价;若对于所有的i均有Jcoeff0≤JNZ(i),即当CM编码为0时的率失真代价更小时,则当前TB为全零块,否则为非全零块。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北工业大学,未经西北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201711335034.6/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top