HEVC中的快速RDOQ方法_hevc 快速算法-程序员宅基地

技术标签: 全零块判决  视频处理  fast RDOQ  视频编码  

尽管RDOQ显著提高了HEVC的编码性能,但是在用RDO准则优化操作时,确定各变换系数的最佳量化电平需要较高的计算复杂度。
本文中,首先提出一种跳过所有零编码单元的有效方法;然后,进一步提出一种快速RDOQ方法(通过跳过所有除DC系数的量化零块(AQZB-DC)的优化步骤)。此外,建立AQZB-DC的rate difference模型,以选择最优量化电平。


引言

RDOQ的高复杂度主要表现在它需要以RDO的方式为每个变换系数确定最优量化电平。RDOQ可以降低3.02%的比特率,但是带来了超过12%的计算复杂度。
本文从不同角度提出一种快速RDOQ方法:首先,高效检测全零块;此外,早期检测一种新类型的块(AQZB-DC);然后,推导AQZB-DC的量化电平确定方案。

HEVC中的RDOQ

量化结果的浮点类型QCfloat和它的向下舍入整型QCceil表示如下:
在这里插入图片描述
其中,coeff代表变换系数,M是一个与QP有关的倍增因子。offset与帧类型有关。shift与TU尺寸和像素位深度有关。量化后可以得到两个可选的量化值:在这里插入图片描述

然后,编码器通过计算原始CG和全零CG的RD cost来决定当前CG系数是否设置为全零。最终,以RD方式确定TU中最后一个非零系数位置,以节省变换系数的比特率。
综上所述可以发现,RDOQ包含了大量的迭代,计算一个TU中每个系数或者CG的失真和比特率是非常耗时的。此外,比特率计算涉及上下文模型更新,这就进一步恶化了算法复杂度。因此,有必要提出新方法简化RDOQ,该方法侧重于量化电平的确定。

快速RDOQ方法

首先定义一种新的块:除了直流系数的全量化零块(AQZB-DC)。AQZB-DC经过量化后在DC位置只包含一个非零系数。下图描述了提出的快速RDOQ算法过程,量化跳过方法适用于全零块。然后,建立一个量化电平决策模型来为AQZB-DC确定最优量化电平。在这里插入图片描述

A.动机

RDOQ实现了显著的编码增益。然而,当量化电平为0时,没有更多的比特节省。因此,RDOQ对全零块的编码性能没有任何影响。如果全零块跳过量化过程会节省时间。对于AQZB-DC块,如果早期预测量化电平,就可以降低编码复杂度。下表展示了AQZB-DC块所占的百分比。
在这里插入图片描述
其中,AQZB-DC Ratio代表TU中AQZB-DC的比例,Hit Ratio代表AQZB-DC块的DC系数保持原始电平(QCceil)的概率。AQZB-DC占据了整个TU的超过18.5%(全零TU除外)。然而,在RA和LD配置下,分别只有37%和32%的AQZB-DC块保持了原始的量化电平。因此,提出量化电平决策模型来为AQZB-DC块预测最优量化电平是合适的。

B.快速块类型检测

与对TU中所有系数进行量化处理不同,我们从下面式子对块类型检测进行推导阈值(Thdzero)。在这里插入图片描述
如果QCfloat小于1,向下舍入的结果QCceil等于0。Thdzero就可以推导如下:在这里插入图片描述
如上式所示,在没有量化的情况下,Thdzero下的变换系数coeff设为0。
注意到Thdzero的值和TU尺寸和QP密切相关。因此,我们只需要根据编码器初始化阶段的TU尺寸和QP对来计算Thdzero。提出的检测方法可以描述为:在这里插入图片描述

C.对AQZB-DC块的量化电平决策模型

为了对AQZB-DC块预测最优电平,基于QCceil和QCfloor之间的码率和失真差异建立一个量化电平决策模型。
引入△J模型代表TU的RD cost差异:在这里插入图片描述
其中,Jceil和Jfloor分别代表QCceil和QCfloor的RD cost。△D和△R代表两个候选值之间的失真和码率差。最优量化结果通过△J的值产生。△J为负值,代表QCceil是最优的,并最终在RDOQ过程中被选择。所以就有下面的推导:在这里插入图片描述
量化电平决策模型基于上式来建立。△R和△D/λ可以根据AQZB-DC的系数电平得到。这个模型的具体推导过程如下:
首先,量化误差(失真)Dq等描述如下:在这里插入图片描述
其中QCq是量化结果。
注意到,当QCceil等于2时,RDOQ很少将值从2改到0。所以在这种情况下,只考虑2和1作为量化候选值。从上面的一些式子推导可以得到:在这里插入图片描述
然后,引入码率差△R的快速估计。4种相关的语法元素列在下表。在这里插入图片描述
其中,grt1和grt2分别表示量化系数的绝对值是否大于1和2;cbf表示当前TU是否有非零系数。以上三个元素以常规模式编码;rem表示变换系数编码过程中的剩余量化电平,并以旁路模式编码。上述四个元素的码率计算在下式中表示,这表明△R可以通过语法元素和相应标志的组合导出,如下:在这里插入图片描述
考虑到AQZB-DC块的特殊系数分布,可以直接获得常规模式编码语法元素的上下文索引。因此,可以通过HM16.0中定义的查找表来获得某个语法元素编码码率R*(f)。当QCceil大于3时,如果QCceil不是某一个范围内的第一个值,量化电平往往具有相同的bit length。所以,假设这种情况△R为0。对于每个AQZB-DC块,△R时在不计算每个每个候选值的码率来估计的。而且,避免了上下文更新过程,获得了固定的上下文模型。整个过程大大降低了算法复杂性。
计算完△R和Thd△R后,AQZB-DC的量化系数可以基于选择模型来快速决定。如下式所示,如果△R小于Thd△R,QCceil被设置为最终电平,否则,QCfloor就是最优选择。在这里插入图片描述

总结

本文通过早期检测全零块和AQZB-DC块来实现快速RDOQ。提出量化电平决策模型,对AQZB-DC块以最优RD折中来选择值。提出的方法在RA和LA配置下,分别可以减少量化时间平均42.00%和39.63%,只有0.03%和0.06%的BD-rate损失。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/NDnarg/article/details/110095360

智能推荐

NeurIPS 2023 | FedFed:特征蒸馏应对联邦学习中的数据异构-程序员宅基地

文章浏览阅读75次。作者 |杨智钦单位 |北京航空航天大学来源|将门创投在本文中,我们提出了一种新的即插即用的联邦学习模块,FedFed,其能够以特征蒸馏的方式来解决联邦场景下的数据异构问题。FedFed首次探索了对数据中部分特征的提取与分享,大量的实验显示,FedFed能够显著地提升联邦学习在异构数据场景下的性能和收敛速度。论文标题:FedFed: Feature Distillation against..._about [neurips 2023] "fedfed: feature distillation against data heterogeneit

《Ray Tracing in One Weekend》——Chapter 1: Output an image_c++如何输出图片-程序员宅基地

文章浏览阅读3k次,点赞2次,收藏3次。《Ray Tracing in One Weekend》目录 第一部分:学习总结问题二:用C++输出第一张图片 第二部分:原文截图《Ray Tracing in One Weekend》目录_c++如何输出图片

spring-cloud-kubernetes与k8s的configmap_spring-cloud-starter-kubernetes-config maven-程序员宅基地

文章浏览阅读8k次,点赞7次,收藏9次。spring-cloud-kubernetes-config是spring-cloud-kubernetes框架下的一个库,用于将kubernetes的configmap作为配置文件,提供给springboot应用_spring-cloud-starter-kubernetes-config maven

BZOJ2753: [SCOI2012]滑雪与时间胶囊(最小生成树)-程序员宅基地

文章浏览阅读307次。传送门题意: n个有高度的点和m条边,边只能从高点到低点走,求最小树形图??题解: 最小生成树。 朱刘算法求最小树形图只能得70分,考虑更高效的算法。首先对图分层,发现低层节点对高层答案没有影响,考虑先处理高层的边。现在假设已经处理了高层的所有边,对于本层的边,其实就是一颗最小生成树。因为高层连向本层的边看做双向边没有任何影响。那么直接把边按照层数排序,第二关键字用权值排序即可。#includ

PySide:Python语言在GUI开发中的利器-程序员宅基地

文章浏览阅读1.3k次。python GUI开发中PySide2、PySide6及PyQt间区别,python版本要求,官方文档支持等_pyside

opencv+python Hough变换的基本原理_opencv python hough_multi_scale-程序员宅基地

文章浏览阅读3.3k次,点赞4次,收藏19次。Hough变换思想(参数空间变换):在原始图像坐标系下的一个点对应了参数坐标系中的一条直线,同样参数坐标系的一条直线对应了原始坐标系下的一个点,然后,原始坐标系下呈现直线的所有点,它们的斜率和截距是相同的,所以它们在参数坐标系下对应于同一个点。这样在将原始坐标系下的各个点投影到参数坐标系下之后,看参数坐标系下有没有聚集点,这样的聚集点就对应了原始坐标系下的直线。在实际应用中,y=kx+b形式..._opencv python hough_multi_scale

随便推点

vs2019安装和使用教程(详细)-程序员宅基地

文章浏览阅读10w+次,点赞565次,收藏2.9k次。vs2019安装和使用教程(详细)_vs2019

【渝粤题库】陕西师范大学201941 Java程序设计 作业(专升本)_which of the following are correct? _____ a. strin-程序员宅基地

文章浏览阅读2.5k次,点赞2次,收藏2次。《JAVA程序设计》作业一、选择题编译HelloWorld.java的正确命令是:java HelloWorld.class B)java HelloWorld.java C)javac HelloWorld.java正确运行HelloWorld.java的正确命令是:java HelloWorld B)javac HelloWorld.java C)javac HelloWorld.class下面程序代码,使用多行注释正确的是:A) // int k=9;// int j=8_which of the following are correct? _____ a. string[] list = new string{

Zynq UltraScale+ MPSoC:嵌入式设计 UG1209 视频教程_zynq ultrascale+ mpsoc 嵌入式设计方法指南-程序员宅基地

文章浏览阅读812次。注:本文转自赛灵思中文社区论坛,源文链接在此。本文原作者为XILINX工程师。以下为个人译文,仅供参考,如有疏漏之处,还请不吝赐教。本篇博文提供了一份视频列表,用于展示 (UG1209) 中的教程。这些视频是使用 Vivado Design Suite 2019.1 版和赛灵思软件开发套件 (SDK) 创建的。其中所含示例均为针对 Zynq UltraScale+ MPSoC ZCU102 Rev1 评估板的示例。视频 1 演示了如何使用 ZCU102 评估板来运行应用。虽然大部分视频都使_zynq ultrascale+ mpsoc 嵌入式设计方法指南

浅谈拉格朗日插值法_y_j_gi-程序员宅基地

文章浏览阅读284次。拉格朗日插值法_y_j_gi

hbase性能调试 转-程序员宅基地

文章浏览阅读263次。_hfile.format.version

MIT算法导论——第五讲.Linear Time Sort_linear time sorting-程序员宅基地

文章浏览阅读896次。本栏目(Algorithms)下MIT算法导论专题是个人对网易公开课MIT算法导论的学习心得与笔记。所有内容均来自MIT公开课Introduction to Algorithms中Charles E. Leiserson和Erik Demaine老师的讲解。(http://v.163.com/special/opencourse/algorithms.html)第五节-------线性时间_linear time sorting

推荐文章

热门文章

相关标签