面向视频会议场景的 H.266/VVC 码率控制算法研究
文章目录
- 面向视频会议场景的 H.266/VVC 码率控制算法研究
- 个人总结
- 摘要
- 为什么要码率控制
- 码率控制的关键
- 会议类视频码率控制研究背景
- 视频会议系统研究现状
- 目前基于 R-λ模型的码率控制算法的问题
- 文章主要两大优化算法
- 优化算法1:基于视频内容相关特征值的码率控制算法
- 帧层目标比特分配
- LCU层目标比特分配
- 算法流程图
- 算法实验测试结果
- 优化算法2:基于感兴趣区域的会议类视频码率控制算法
面向视频会议场景的 H.266/VVC 码率控制算法研究
个人总结
论文标题
面向视频会议场景的 H.266/VVC 码率控制算法研究
发表期刊
硕士电子期刊
作者
余东航
发表日期
2022 -5-25
阅读日期
2023.8.3
评分 Score
类型 | 思路 | 批注 |
---|---|---|
研究背景 | 本文的主要内容是什么?目前研究情况是什么? | 随着人们对高清视频画质的需求越来越高,现有的视频压缩技术需要进一步优化才能适应不断增加的应用需求。VVC的码率控制模块所分层次与 HEVC 码率控制模块相同,而具有实际研究价值的主要为帧层和 LCU 层,因此近年来诸多专家对于视频编码码率控制板块的研究主要围绕着帧层和 LCU 层两部分进行。 |
方法和性质 | 面向什么样的任务?作者如何采集数据?这项研究是在何时何地进行的? 他提出的模型或者方法是什么样的呢? | 测试对象:选取 VTM 通用测试环境中推荐的视频序列,各序列根据分辨率的不同进行了分类。算法选取 B 类测试序列 MarketPlace、RitualDance、Cactus 和 BQTerrace;C 类测试序列 BasketballDrill、BQMall、RaceHorses 和PartyScene ; D 类 测 试 序 列 BQSquare 、 BlowingBubbles 、 BasketballPass 和RaceHorses;以及 E 类测试序列 FourPeople、Johnny 和 KristenAndSara。 |
研究结果 | 模型效果获得了怎样的提升?(效率还是准确率或者是其他) | 算法所有序列的总平均码率的相对误差值为 0.434%,码率控制精度优于自适应设置下的 0.435%。算法下测试序列的平均峰值信噪比相比于 VTM10.0 码率控制算法提升了 0.028dB。算法最终的平均BDBR 相比于 VTM10.0 的 BDBR 平均减少了 0.86% |
创新点 | 这个论文的主要贡献或者创新点是什么?他的创新是基于之前的某个模型或者理论? | 引入灰度共生矩阵,计算出反映编码帧纹理复杂度的相关特征值,用于帧层图像权重的调整;在计算LCU 权重时,通过引入最优拉格朗日乘子对权重进行重新计算,提高权重分配的准确性。 |
结论 | 作者从中学到了什么? | |
研究展望 | 对未来的研究有什么暗示或建议? | H.266/VVC 的码率控制算法,只是从 GOP 层、帧层和 LCU 层入手考虑了相关的算法研究,没有考虑到更下一层的码率控制中比特分配的相关性。因此,未来的工作中可以进一步考虑 CU 的划分与码率控制的比特权重分配之间的关系,构建出更小尺寸的编码块层作为码率控制的新的单元层。 |
重要性 | 为什么这项研究很重要? | 码率控制技术使得视频在编码过程中能够自适应地调节编码参数值,在保证编码质量的前提下,尽最大可能地提高通信信道的利用率。码率控制在视频编码以及视频通信应用中具有重要意义。 |
想法和问题 | 你有什么想法和问题? | |
本文优秀表达 | 能复用的要点是什么? |
摘要
视频编码是提高传输效率,降低数据存储压力的一种有效措施。新一代视频编码标准 H.266/VVC(Versatile Video Coding)在各编码模块中引入新的压缩技术,极大提高了视频编码效率,可广泛应用在高清和超高清电视、远程医疗、视频会议等应用中。2019 年年底新冠疫情爆发后,视频会议成为企事业单位远程会议,学校远程教学的主要途径。面对大量的会议视频用户,不同的会议场景,如何确保视频的通信质量,尤其是感兴趣区域(Region Of Interest, ROI)的编码质量,成为目前视频编码领域的研究重点。码率控制技术既能产生匹配传输带宽的码流,还可通过比特分配调节保证主要编码区域的质量,是视频通信系统不可或缺的重要模块。由于 VVC 码率控制算法没有充分考虑编码帧的内容特性和最大编码单元(Largest Coding Unit, LCU)的时空域复杂度,导致比特分配存在误差,码率控制算法性能有进一步优化的空间。本文针对 VVC 码率控制算法在帧层与 LCU 层比特分配过程中存在的问题,对码率控制算法进行了优化。在此基础上,针对视频会议场景中 ROI 进行基于最大编码单元的目标比特调整,提高了视频编码的主观质量。
本文针对 H.266/VVC 码率控制算法没有综合考虑会议类视频编码帧的实际纹理特征的问题,提出了一种基于视频内容相关特征值的码率控制算法。首先,通过引入灰度共生矩阵,计算出反映编码帧纹理复杂度的相关特征值,用于帧层图像权重的调整;然后,基于 R-λ模型对 LCU 层的λ参数进行重新计算,调整权重分配大小,并在编码过程中根据实际消耗比特不断更新参数值,提高 LCU 层比特分配的精度。经测试,本文算法在低延时(Low Delay-P, LDP)配置下,与自适应权重分配算法相比,在更接近目标码率情况下,率失真(Rate-Distortion, R-D)性能提升了 0.86%,改善了视频序列的主客观质量。
为了提高会议类视频 ROI 的编码质量,本文首先基于 LCU 对会议类视频 ROI进行检测,并以计算出的显著度值进行标记,然后使用 Sobel 梯度检测算子和MSE(Mean Square Error)比特检测算法分别检测 LCU 的纹理复杂度和编码代价,并对复杂度因子和编码代价进行联合加权,构建出一种新的权重因子,基于新的重庆邮电大学硕士学位论文 摘要II权重因子对待编码 LCU 比特权重进行调整分配。同时,通过 LCU 的显著度值进行目标比特分配调整,确保 ROI 的编码质量,达到优化会议视频场景的主客观质量的目的。实验结果表明,在 LDP 配置下本文所提算法相比于自适应码率控制算法的码率控制相对误差平均降低了 0.011%,率失真性能提升了 1.87%,改善了会议类视频的编码性能。
为什么要码率控制
在视频编码过程中,如果采用固定编码参数值对视频序列进行编码,那么编码器输出的码流会随着每一帧图像包含的信息量以及内容复杂度的不同而产生波动。如果输出码流过大,可能会超过发送端缓存区的容量,导致视频传输时延过高甚至丢帧的现象发生;如果输出码流的码率过小,则网络通信信道得不到充分的利用,浪费传输资源,解码端所得到的视频质量较差,在解码视频中会出现图像模糊化以及方块效应等现象。因此有必要对视频编码过程中的码率进行控制,使得编码后码流的比特数与传输信道的带宽上限匹配,同时也要兼顾传输视频的质量,使编码后的图像失真尽可能的小。
码率控制的关键
码率控制技术的关键点是通过目标比特分配的方式来获取量化参数(Quantization Parameter, QP)的值,进而调节输出码率的大小,达到控制码率的目的。
会议类视频码率控制研究背景
对于会议类特定场景的视频,加入码率控制技术不仅可以保证视频输出码流与网络带宽相适应的同时,还能够尽可能地保证视频的失真度最小,提高重建视频的质量。考虑到会议类视频的场景性质,人们在接受视频信息时会重点关注感兴趣区域。在进行码率控制环节之前先将感兴趣区域和非感兴趣区域进行区分,在码率控制环节中重点保证会议类视频感兴趣区域部分的编码质量,就能够最大程度地平衡视频的输出码流与主客观质量,因此面向会议类视频的 H.266/VVC 码率控制算法具有重要的研究价值
视频会议系统研究现状
在会议应用场景中,会议视频常常存在着大量固定的背景区域,且背景区域的纹理复杂度不确定。对于此类视频,人们通常关注的焦点往往是人脸,或讲课 PPT 等屏幕内容,因此前景区域大多为人脸区域与屏幕内容区域。传统的视频编码方式忽略了人眼的视觉特性,单纯地针对整个视频编码单元的纹理复杂度进行资源分配和码率控制,对于背景区域较复杂的视频序列,这种编码方式会导致主观质量的下降。因此,针对会议类视频编码,如果引入 ROI 编码方式可提高视频编码质量
目前基于 R-λ模型的码率控制算法的问题
首先,在帧层码率控制算法研究中,VVC 的码率控制算法虽然考虑了编码实际结果的失真值,并以 R-λ模型为推导基准修正参数更新公式,提高了参数更新的准确性。但在视频编码过程中,VVC 码率控制算法未充分考虑一个图像组中编码帧的纹理特性,因此在帧层的编码率失真性能和视觉体验还有待提高。
其次是 LCU 层的比特权重分配。VVC 根据当前帧的总目标比特以及模型参数进行 LCU 层的权重分配,由于没有考虑到同一帧中 LCU 层图像的空域纹理特性,同一位置时域上的关系以及实际编码消耗比特与目标比特之间的误差关系,所以 LCU 层的比特分配机制仍有改进的可能性。
再者,码率控制结合 ROI 的算法具有更进一步提高视频编码质量的拓展性,结合 ROI 的码率控制算法可以在主观质量上有着明显的提升,对于 ROI 进行重点的比特权重的分配,而对于非 ROI 的比特分配不作重点的权重考虑,最终可以实现即便在客观指标略微提升甚至下降的情况下,也能达到良好的视觉体验。
文章主要两大优化算法
- 会议视频的帧层比特分配及 R-λ模型优化目前帧层码率控制算法相关研究已有很多。本文针对会议视频帧层的码率控制,提出了一种基于视频内容相关特征值的码率控制算法。为了解决原平台码率控制算法没有对待编码帧进行预处理分析的问题,本文通过引入灰度共生矩阵,计算出反映编码帧纹理复杂度的相关特征值,用于帧层图像权重的调整;在计算LCU 权重时,通过引入最优拉格朗日乘子对权重进行重新计算,提高权重分配的准确性。该算法实现了在相同码率控制配置情况下,提高了码率控制精度和视频序列的主观和客观质量。
- 最大编码单元层 ROI 码率控制优化算法面向会议类视频,本文采用图像边缘检测算子计算 LCU 层像素的复杂度因子,并根据统计前一编码帧每个 LCU 的均方误差和实际消耗的编码比特数,计算出待编码 LCU 的编码代价。以待编码 LCU 的复杂度因子和编码代价作为会议类视频中编码块纹理复杂度描述信息,经联合加权到 LCU 层比特分配模型中,构建一种LCU 层目标比特的分配方式。基于 LCU 计算出会议类视频的显著度值并标记出ROI,并针对 ROI 显著度值进行目标比特的分配调整,提高会议视频的编码性能以及 ROI 的编码性能。
H.266/VVC 编码器的整体工作流程
首先,编码器将获取的源视频图像进行块划分,然后权衡编码块在帧内/帧间编码条件下的率失真性能,选择合适的划分模式,将划分好的块送至帧内/帧间预测模块进行预测编码。如果进行帧内预测编码,则通过相邻已编码像素点预测编码区域的像素值,或通过帧内运动估计搜索当前编码帧中与当前编码区域相似的区域,将搜索到的区域进行运动变换后得到当前编码区域;如果进行帧间预测编码,则采用运动估计在参考帧中搜索与当前编码区域相似的编码区域,将搜索到的区域进行运动补偿后得到当前编码区域的预测像素值。接下来通过原始值和预测值进行计算得到预测残差值,为了使预测残差值能量分布更加集中,H.266/VVC 对预测残差值进行 DCT 变换,再对经过变换之后的矩阵系数进行量化处理,使得低频系数变小而大多数的高频系数为0,从而大大地压缩了需要传输的数据量。最终量化后的数据在经过熵编码后形成视频码流的形式被传输到解码端。H.266/VVC 解码器接收码流之后按照一定顺序对视频帧进行重建。
优化算法1:基于视频内容相关特征值的码率控制算法
帧层目标比特分配
灰度共生矩阵
对于纹理变化缓慢的图像,其灰度共生矩阵对角线上的数值较大;而对于纹理变化较快的图像,其灰度共生矩阵对角线上的数值较小,对角线两侧的值较大。
以(1,1)点为例,GLCM(1,1)值为1说明只有一对灰度为1的像素水平相邻。GLCM(1,2)值为2,是因为有两对灰度为1和2的像素水平相邻
相邻一般取四个方位,水平、竖直、两个斜对角
LCU层目标比特分配
优化的是估计拉格朗日乘子
算法流程图
算法实验测试结果
本章算法所有序列的总平均码率的相对误差值为 0.434%,码率控制精度优于自适应设置下的 0.435%。本章算法下测试序列的平均峰值信噪比相比于 VTM10.0 码率控制算法提升了 0.028dB。本章所提算法最终的平均BDBR 相比于 VTM10.0 的 BDBR 平均减少了 0.86%,
优化算法2:基于感兴趣区域的会议类视频码率控制算法
由于码率控制算法中目标比特分配的最小单元为 LCU,因此本章首先以 LCU为基本单元将会议场景视频的感兴趣区域划分为人脸区域和屏幕内容区域,通过采用联合特征的方式计算感兴趣区域的显著度值。然后使用 Sobel 梯度检测算子和均方误差比特检测算法分别检测纹理复杂度区域和编码代价区域,并对图像的复杂度区域因子和编码代价区域因子进行联合加权,构建出一种新的权重因子,并对每个 LCU 的目标比特进行合理调整和准确分配。最后,结合感兴趣区域的显著度值调整 LCU 的比特分配,达到优化感兴趣区域编码质量的目的。
相关文章:

面向视频会议场景的 H.266/VVC 码率控制算法研究
文章目录 面向视频会议场景的 H.266/VVC 码率控制算法研究个人总结摘要为什么要码率控制码率控制的关键会议类视频码率控制研究背景视频会议系统研究现状目前基于 R-λ模型的码率控制算法的问题文章主要两大优化算法优化算法1:基于视频内容相关特征值的码率控制算法…...

【网络基础实战之路】设计网络划分的实战详解
系列文章传送门: 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 PS:本要求基于…...

MacBook触控板窗口管理 Swish for Mac
Swish for Mac是一款用于通过手势来控制mac应用窗口的软件,你可以通过这款软件在触控板上进行手势控制,你可以在使用前预设好不同手势的功能,然后就能直接通过这些手势让窗口按照你想要的方式进行变动了 Swish 支持 Haptick Feedback 震动反…...

VS开发Qt程序,无法打印QDebug调试信息,VS进行Qt开发时Qt Designer无法使用“转到槽”选项
VS开发Qt程序,无法打印QDebug调试信息,VS进行Qt开发时Qt Designer无法使用“转到槽”选项 VS开发Qt程序,无法打印QDebug调试信息VS进行Qt开发时Qt Designer无法使用“转到槽”选项 VS开发Qt程序,无法打印QDebug调试信息 解决方案…...

MySQL操作命令详解:增删改查
文章目录 一、CRUD1.1 数据库操作1.2 表操作1.2.1 五大约束1.2.2 创建表1.2.3 修改表1.2.3 删除表1.2.4 表数据的增删改查1.2.5 去重方式 二、高级查询2.1 基础查询2.2 条件查询2.3 范围查询2.4 判空查询2.5 模糊查询2.6 分页查询2.7 查询后排序2.8 聚合查询2.9 分组查询2.10 联…...
MySQL字段类型与存储空间的关系
在 MySQL 中,对于整数类型(如 INT)、字符类型(如 VARCHAR)、浮点数类型(如 DOUBLE)等,参数(括号中的数字或长度)通常用于限制数据的范围或精度,但…...

红船元宇宙 上海布袋除尘器后一家太平洋百货月底停业
上海布袋除尘器后一家太平洋百货即将停业。 7月31日,上海太平洋百货微信公号发布公告称,由于与合资方的合作期限今年届满,上海太平洋百货徐汇店将于2023年8月31日营业结束后正式谢幕,终止经营,并于即日起开展大型主题感…...

vue 图片回显标签
第一种 <el-form-item label"打款银行回单"><image-preview :src"form.bankreceiptUrl" :width"120" :height"120"/></el-form-item>// 值为 https://t11.baidu.com/it/app106&fJPEG&fm30&fmtauto&…...

《向量数据库指南》——使用SQuAD 数据集演示Faiss 功能
使用 SQuAD 数据集进行演示 现在,我们可以通过示例演示了解 Faiss 功能。本次示例中,将使用斯坦福的问答数据集(SQuAD)。SQuAD 是一个常用的自然语言处理(NLP)数据集,该数据集基于用户在百科中提出的问题,每个问题的答案都来自于对应阅读段落的一段文本,共计 500 多…...
java多线程并发面试题总结(史上最全40道)
1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然"&am…...

IDEA强大的VisualGC插件
前言 开发阶段实时监测,自己的JVM信息,实时可视化 Hotspot JVM 垃圾回收监控工具, 支持查看本地和远程JVM进程, 支持G1 and ZGC算法。 插件安装 在线安装 IntelliJ IDEA 可通过在线安装的方式,安装插件 JDK VisualGC,安装步骤: …...
桐乡上元教育室内设计培训班-CAD学习
室内设计四大软件】 1、Auto ca??d:着重培训建筑与室内设计所用知识,增强实践性施工图纸的绘制与操作速度; 课程包括:CAD基本命令与修改器;室内平面图、地面、天花、照明等图;室内立面图绘制;室内剖面图绘制;定植尅家具的平面、立…...
h5浏览pdf文件
将hybrid整个复制到一级文件夹下 hybrid地址:https://download.csdn.net/download/qq_37194189/88157330 创建一个 pdf页面用于展示pdf文件 <template><view style"width: 100%;" ><web-view :src"pdfUrl"></web-view&…...

无涯教程-Lua - 嵌套if语句函数
在Lua编程中,您可以在另一个if or else if语句中使用一个if or else if语句。 nested if statements - 语法 嵌套if 语句的语法如下- if( boolean_expression 1) then--[ Executes when the boolean expression 1 is true --]if(boolean_expression 2)then--[ Ex…...

vue v-slot指令
目录 定义语法使用场景场景一场景二场景三tips只有一个默认插槽时 定义 在Vue中, v-slot 指令用于定义插槽的模板内容。它用于在父组件中传递内容到子组件中的插槽。 v-slot 指令可以用于 标签或组件标签上,以便在子组件中使用插槽。 语法 使用 v-slo…...
【机器学习】西瓜书学习心得及课后习题参考答案—第6章支持向量机
笔记心得 6.1 间隔与支持向量—— w w w是法向量,垂直与超平面 w T x b 0 w^Txb0 wTxb0。这一节了解了支持向量机的基本型。 min w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i b ) ≥ 1 , i 1 , 2 , . . . , m . \min_{w,b} \frac{1}{2}||w||^2 \\ s.…...

无涯教程-Perl - 面向对象
Perl中的面向对象概念很大程度上基于引用以及匿名数组和哈希。让我们开始学习面向对象Perl的基本概念。 定义类 在Perl中定义一个类非常简单。类以最简单的形式对应于Perl软件包。要在Perl中创建一个类,我们首先构建一个包。 Perl软件包在Perl程序中提供了一个单…...

Linux安装VScode
从本篇开始,打算有时间就写写在VScode中编写一些ros相关的案例程序用于学习记录。本篇是如何在Linux安装VScode的第一篇。 一、下载VScode 在Linux中打开浏览器输入:https://code.visualstudio.com/Download,选择与你电脑相匹配的版本下载&…...

网络安全(黑客)工具篇
大家好,我是白菜。这篇文章给大家盘点那些年,我们一起玩过的网络安全工具。 一、反恶意代码软件 1.Malwarebytes 这是一个检测和删除恶意的软件,包括蠕虫,木马,后门,流氓,拨号器,…...

测试工程师刚入职如何快速熟悉需求并输出测试用例?
刚入职第一天,早上办完入职,下午就就分配了测试任务,2个模块13条短信验证,2天内输出测试用例(xmind输出功能点,excel书写业务流)。测试负责人给我们快速讲了一下业务,在这过程中大概…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...