关于影响编码效果的画质调优总结

news2024/9/18 18:33:52

1、背景:

调试一个新项目,要求视频帧率为20fps、码率1.5m下,和竞品机对比效果。发现动态场景下的效果比竞品机差距比较明显(做的是安防类的监控相机,比较关注视频的效果),比如对着运动的车流时,出现模糊/马赛克的范围比较大、运动模糊的收敛速度慢、运动模糊/马赛克的形态显眼难看,如下图所示:

2、ISP 方面的调试总结:

从上图中明显可以知道是和编码相关的图像问题,编码会导致的图像质量问题具体可看这篇:Encoder 相关的图像质量问题

编码器同事那边的建议是让先基本对齐ISP的效果后,再去谈优化编码。他解释决定编码效果的就是压缩率,当画面内容复杂度高,为控制码率就会导致画质损失明显。

分析竞品机的画质,有如下表现:

a、画面背景有细节,但边界锐化比较低。

b、整体对比度比较高、暗处偏黑、细节少 。

c、画面亮度均匀,平坦区很少有过曝/过暗的地方。

d、AE 收敛稳定,无震荡。

e、白平衡判断准确,无偏色。

如上竞品机的表现,也应该就是后续效果的调试需求,从调试结果来看,画面的细节、锐化是对编码影响比较大的,增加锐化,会使更多的边界被描出来,也可能使更多的噪声被描出来,增大编码的处理压力,使得画面失真。但后续 b、c、d、e项是我以前没考虑过的。

对比度的影响分两种,若调的对比度较低,画面中的暗部就不会过暗,亮部也不会过曝,会有更多的细节出来,也就是画面内容变多了,增大了编码压力。

但若是对比度调的很高,画面亮暗部分的反差较大,可能会使画面平坦区的亮度过渡不均匀(比如白墙),虽说过暗或过曝的地方会掩盖掉更多的细节,但也增加了平坦区域的内容。

AE 的不稳定,有震荡,相当于画面整体都有运动,另外 ISP pipeline 中后续很多模块都要基于 AE 的统计信息来做的,如锐化、降噪模块等。ae 变化会使得画面会有清晰,模糊的收敛过程,这都会使后续编码的处理有影响。

当白平衡偏了,就会有整体的偏色,会使编码导致的色飘更严重,使得编码后的马赛克形态显眼难看,如下图所示。

综上,因为产品的低码率应用需求,所以大面积动态场景下肯定会有较明显的马赛克/模糊现象,但如何减弱这种现象,或者做到看起来不那么显眼,这是 Tuning 效果时要考虑的。但编码是ISP 之后处理的,一般可以通过抓取yuv,或者提高码率(如400万分辨率,码率设8M时,基本上可以认为编码不会导致画质损失),来排查到底是ISP ,还是编码器的问题。

3、Encoder 方面的调试总结:

a、帧率的配置要注意,sensor 的输出帧率和编码帧率,要配置成一致。之前我只将sensor 输出帧率改成了20fps,但编码帧率默认是30fps。录像下来看编码也确实是按 20fps 来编的(因为他只有20fps的输出,也不可能变多,所以之前也一直认为没什么问题)。但编码那边解释,码率是按帧率来分配的,默认编码这边帧率30fps, 码率1.5M,但实际帧率是20fps,也就是还有1/3的码率是分配给了后面10fps用了,所以编码效果差了很多。

b、运动马赛克收敛速度的问题,一般都是经过一个I帧后会完全收敛,I帧间隔是通过GOP来控制,和竞品机配置的GOP都是60,也就是3s一个I帧,所以收敛速度就要看运气了。但也可以通过中间插I帧,或者调整I帧P帧的码率比例来改善。

c、还有就是通过调节I帧、P帧 最大最小的qp值来控制画质(qp是代表画质的量化参数,qp值越小,画面失真则越小),也就是控制码率与画质的平衡。

d、而对于失真出现的各种现象(马赛克、模糊等等),编码那边解释是硬件模块所决定的,没太多办法去做调整,这个也有待后面进一步学习后确认了。

原文首发地址:关于影响编码效果的画质调优总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/68682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

红队隧道应用篇之Netsh端口转发(一)

简介 netsh是从Windows 2000开始就有的一个用于配置网络设备的命令行工具 其中netsh interface portproxy是一个配置网络代理的命令, 可以配置ipv4或ipv6的端口转发代理以及双向端口转发代理 学习隧道应用前必须了解的知识:https://blog.csdn.net/xf555er/article/details/1…

softmax回归从零开始实现

1. 引入Fashion-MNIST数据集 并设置数据迭代器的批量大小为256 import torch from IPython import display from d2l import torch as d2lbatch_size 256 # 每次随机读256张图片,返回训练集和测试集的迭代器 train_iter, test_iter d2l.load_data_fashion_mnist…

职场日常:测试人员如何快速熟悉新业务?

身处职场,学习新业务在所难免,尤其是测试人员,具备良好的业务知识是我们做好质量保障的前提,不管是职场「新人」还是「老人」,快速熟悉业务的能力都是不可或缺的,这是我们安身立命的根本。 但,…

【第一章 Linux目录结构,网络连接三种模式,vi和vim】

第一章 Linux目录结构,网络连接三种模式,vi和vim 1.Linux和Unix: ①Unix针对于大型,高性能主机或服务器; ②Linux适用于个人计算机。 2.网络连接的三种模式: ①桥接模式:虚拟系统可以和外部系…

[附源码]JAVA毕业设计师生交流平台(系统+LW)

[附源码]JAVA毕业设计师生交流平台(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&…

一起用Go做一个小游戏(上)

引子最近偶然看到一个Go语言库,口号喊出“一个超级简单(dead simple)的2D游戏引擎”,好奇点开了它的官网。官网上已经有很多可以在线体验的小游戏了(利用WASM技术)。例如曾经风靡一时的2048:当然…

「Redis数据结构」列表对象(List)

「Redis数据结构」列表对象(List) 文章目录「Redis数据结构」列表对象(List)一、概述二、结构三、编码转换四、总结一、概述 Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部&#xf…

(附源码)php丽江旅游服务网站系统 毕业设计 010149

php丽江旅游服务网站系统 摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于旅游服务管理也是十分常见的。过去使用手工的管理方式对旅游服务进行管理,造成了管理繁琐、难以维护等问题,如今使用计算机对…

APP自动化测试系列之Appium介绍及运行原理

在面试APP自动化时,有的面试官可能会问Appium的运行原理,以下介绍Appium运行原理。 一、Appium介绍 1.Appium概念 Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。它使用WebDriver协议驱动IOS&#xf…

易基因|m6A去甲基化酶ALKBH5通过降低PHF20 mRNA甲基化抑制结直肠癌进展 | 肿瘤研究

易基因|m6A去甲基化酶ALKBH5通过降低PHF20 mRNA甲基化抑制结直肠癌进展 | 肿瘤研究 大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 2022年8月17日,北京大学人民医院胃肠外科申占龙教授课题组在《Clin Transl M…

(附源码)ssm物流公司员工管理系统 毕业设计 261625

基于ssm物流公司员工管理系统 摘 要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在网络的发…

LeetCode简单题之按身高排序

题目 给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。 对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。 请按身高 降序 顺序返回对应的名字数组 names 。 示例 1&#xff1…

聚观早报 | 奈雪成乐乐茶第一大股东;达达与抖音达成战略合作

今日要闻:奈雪成乐乐茶第一大股东;达达与抖音达成战略合作;B 站启动新一轮降本增效;特斯拉上海工厂减产20%;大众将从中国向欧出口汽车奈雪成乐乐茶第一大股东 12 月 6 日消息,乐乐茶与奈雪的茶签署5.25亿元…

主成分分析-书后习题回顾总结

7-2 题目 理论基础 矩阵的特征值和特征向量的定义以及其求法 https://www.cnblogs.com/Peyton-Li/p/9772281.html 特征值和特征向量的定义:设AAA是nnn阶方阵,如果数λ\lambdaλ和nnn维非零列向量α\alphaα使关系式AαλαA\alpha\lambda\alphaAαλα成…

MyBatis一 Mybatis的介绍、基本使用、高级使用

一 数据库操作框架的历程 1.1 JDBC JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写…

【JDBC】----封装工具类和ORM

分享第二十二篇励志语录 有些烦恼是我们凭空虚构的,而我们却把它当成真实去承受。想得太多只会毁了你,让你陷入忐忑,让实际上本不糟糕的事情,变得糟糕。阳光这么好,何必自寻烦恼。 目录 分享第二十二篇励志语录 一&a…

毕业设计 stm32老人跌倒检测预防系统 - 单片机 物联网 嵌入式

文章目录0 前言1 整体设计2 硬件电路3 软件设计4 跌倒检测算法5 关键代码6 最后0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉…

linux常用命令二

1、find 查找文件或目录 find / -size 204800k //在根目录下查找大于200MB的文件 find / -user username//在根目录下查找所有者为username的文件 find / -name filename.txt //根据名称查找/目录下的filename.txt文件。 2、复制文件包括其子文件到自定目录 cp -r sourceF…

[附源码]JAVA毕业设计水果销售管理网站(系统+LW)

[附源码]JAVA毕业设计水果销售管理网站(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术…

AidLux智慧交通AI安全实战

这里写目录标题1.项目背景2. 项目实战流程2.1 YOLOv5车辆检测模型训练及部署2.2 AI对抗攻击与对抗防御2.2.1 AI对抗攻击算法讲解2.2.2 常用AI对抗攻击算法划分2.2.3 对抗攻击主要代码2.2.4 对抗攻击效果验证2.2.4 常用AI对抗防御算法讲解2.2.5 常用AI对抗防御算法划分2.2.6 对抗…