libaom 源码分析系列:noise_model.c 文件

news2024/11/26 9:29:13

libaom

libaom 是 AOMedia(开放媒体联盟)开发的一个开源视频编解码器库,它是 AV1 视频压缩格式的参考实现,并被广泛用于多种生产系统中。libaom 支持多种功能,包括可扩展视频编码(SVC)、实时通信(RTC)优化等,并定期进行更新以提高压缩效率和编码速度 。

libaom 的一些关键特性包括:

  1. 多空间层和时间层编码:通过 aom_svc_layer_id_t 结构体支持空间层和时间层的ID标识,允许视频在不同的分辨率和帧率下进行编码 。
  2. 编码参数配置:通过 aom_svc_params_t 结构体等配置编码参数,如空间层数量、时间层数量、量化器、缩放因子等 。
  3. 基础编码参数aom_codec_enc_cfg_t 结构体用于配置编码器的基础参数,如使用方式、时间基准、编码通道、帧重采样等 。
  4. 多遍编码模式:支持多遍编码模式,包括单遍、双遍和多遍编码,以优化编码效率和质量 。
  5. 帧超分采样:支持帧超分辨率模式,通过 rc_superres_mode 枚举值控制放大过程 。
  6. 关键帧放置:支持关键帧放置模式,通过 kf_mode 枚举值决定是否自动放置关键帧 。
  7. SVC 编码参数:支持 SVC 编码的参数类型配置,如层数量、量化器、缩放因子等 。

libaom 的更新通常每三个月进行一次,最近的更新包括对 SVC 丢帧模式的支持、新的构建配置以减小二进制文件大小、以及对 RTC 屏幕内容压缩效率的显著提升 。此外,libaom 还提供了对 AV1 视频压缩格式的支持,包括实时编码模式和对不同质量控制策略的优化 。

noise_model.c 介绍

  • 功能:在输入视频中创建噪声,即 胶片颗粒视觉。命令行工具的目的是分析去噪视频和原始视频之间的差异,然后创建一个描述这种差异的表,这个表可以用来在编码过程中模拟原始视频的颗粒效果。这对于保持视频的视觉质量,尤其是在压缩视频时,是非常重要的。
  • 文件位置:libaom/examples/noise_model.c

函数关系描述

在这里插入图片描述

命令行参数说明

  1. 终端输入./noise_model --help,输出如下:
Options:
            --help                      Show usage options and exit
  --i <arg>, --input=<arg>              Input filename
            --fps=<arg>                 Frame rate
  -w <arg>, --width=<arg>               Input width (if rawvideo)
  -h <arg>, --height=<arg>              Input height (if rawvideo)
  -b <arg>, --block-size=<arg>          Block size
  -n <arg>, --output-grain-table=<arg>  Output noise file
  -d <arg>, --input-denoised

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

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

相关文章

豆包MarsCode体验有京东卡和现金

https://www.marscode.cn/events/s/iBpts1oT/ 先登录注册 然后到VSCODE里&#xff0c;在最左侧导航栏处看到EXTEBSIONS点一下&#xff08;快捷键CtrlShiftX&#xff09;&#xff0c;然后搜索MarsCode&#xff0c;并安装插件。 安装后登录体验一次问答即可。然后回到活动页即…

电瓶车的无钥匙启动功能为用户带来了极大的便利

电瓶车智能钥匙一键启动系统是一种依赖智能钥匙和一键启动按钮的启动方式。 智能钥匙和一键启动系统的结合使用提高了车辆的安全性&#xff0c;防止了未经授权的启动。 携带智能钥匙进入车辆&#xff0c;按下一键启动按钮&#xff0c;车辆通过感应智能钥匙存在而启动。 一键…

数据结构-C语言顺序栈功能实现

栈 栈&#xff1a;类似于一个容器&#xff0c;如我们生活中的箱子&#xff0c;我们向箱子里放东西&#xff0c;那么最先放的东西是最后才能拿出来的 代码实现 #include <stdio.h> #include <stdlib.h>#define MAX_SIZE 100typedef struct {int* base; // 栈底指针…

【亲测可行】ubuntu根目录空间不够,将其它盘挂载到/opt

文章目录 &#x1f315;缘起&#x1f315;从其它盘压缩出一个未分配的空间&#x1f319;从windows系统中压缩出个未分配的空间&#x1f319;从linux系统中压缩出个未分配的空间 &#x1f315;右键点击未分配的盘新建分区&#x1f315;查看分区&#x1f315;先将新分区挂载到/mn…

VMware vCenter Server 6.7U3v 发布下载 - ESXi 集中管理软件

VMware vCenter Server 6.7U3v 发布下载 - ESXi 集中管理软件 集中式控制 vSphere 环境 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-vcenter-6-7/ 查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org VMware vCenter Server 是…

爬虫post收尾以及cookie加代理

爬虫post收尾以及cookie加代理 目录 1.post请求收尾 2.cookie加代理 post收尾 post请求传参有两种格式&#xff0c;载荷中有请求载荷和表单参数&#xff0c;我们需要做不同的处理。 1.表单数据&#xff1a;data字典传参 content-type: application/x-www-form-urlencoded; …

【STM32单片机_(HAL库)】6-2【串口通信UART、USART】串口通信框图

USB转TTL 串口通信协议 USART框图 UART&#xff1a;通用异步收发器&#xff1b;USART&#xff1a;通用同步异步收发器 STM32F103C8T6支持三个串口通信

yolo参数调节

1-weight 不同版本的神经网络 可以在这下载复制 2 source图片路径或者文件夹路径 3 img size 尺寸&#xff08;尽量与神经网络模型匹配&#xff09; 4 4 -conf-thres 简单理解就是模型识别成功概率超过这一标准才会显示 5 iou多区域重合 &#xff08;重合比例&#xff09;…

HTML入门教程一口气讲完!(下)\^o^/

HTML 表单 HTML 表单和输入 HTML 表单用于收集不同类型的用户输入。 在线实例 创建文本字段 (Text field) 本例演示如何在 HTML 页面创建文本域。用户可以在文本域中写入文本。 创建密码字段 本例演示如何创建 HTML 的密码域。 &#xff08;在本页底端可以找到更多实例。&a…

MySQL基础教程(二):检索数据和排序检索数据

本篇文章主要介绍通过 MySQL 中的 SELECT, DISTINCT, ORDER BY, LIMIT语句完成最基本的数据检索和对检索到的数据进行排序。最基本的数据检索是指我们通过 SELECT 语句查询表中的某些列或者行。对检索到的数据进行排序是指对数据以某种规则显示&#xff0c;例如按照某个字段升序…

QD1-P20 CSS 简单了解

本节学习&#xff1a;简单了解CSS&#xff0c;什么是什么CSS&#xff0c;如何在HTML中使用CSS&#xff1f; ‍ 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p20 CSS是什么&#xff1f; CSS&#xff08;层叠样式表&#xff0c;Cascading Style Sheets&#xff09;是一种样…

【Java面试——基础知识——Day2】

1.面向对象基础 1.1 面向对象和面向过程的区别 面向过程编程&#xff08;POP&#xff09;&#xff1a;面向过程把解决问题的过程拆成一个个方法&#xff0c;通过一个个方法的执行解决问题。面向对象编程&#xff08;OOP&#xff09;&#xff1a;面向对象会先抽象出对象&#…

Jetbrains Fleet1.41 发布:新特性杀疯了

决定我们自身的不是过去的经历 而是我们自己赋予经历的意义 因为过去的经历 是否影响他 如何影响他 完全由他自己决定 有时候 克服恐惧最好的办法 就是把恐惧说出来 前几日 jetbrains fleet1.41 正式发布了,这次的发布可谓是真的诚意满满,包含了多个开发者非常喜欢的小…

Bootstrap 4 多媒体对象

Bootstrap 4 多媒体对象 引言 Bootstrap 4 是目前最受欢迎的前端框架之一,它提供了一套丰富的工具和组件,帮助开发者快速构建响应式和移动设备优先的网页。在本文中,我们将重点探讨 Bootstrap 4 中的多媒体对象(Media Object)组件,这是一种用于构建复杂和灵活布局的强大…

Java:数据结构-LinkedList和链表(2)

一 LinkedList LinkedList的方法的实现 1.头插法 public class MyLinkedList implements IList{static class ListNode{public int val;public ListNode next;public ListNode prev;public ListNode(int val){this.valval;}}public ListNode head;public ListNode last;Overr…

基于stm32的HAL库的串口实现不定长数据收发(三)(接收中断)

串口实现不定长数据收发&#xff08;接收中断&#xff09; 1头文件 #include "uart1.h" #include "string.h" #include "stdio.h" #include "sys.h"#define UART1_RX_BUF_SIZE 128 //接收 #define UART1_TX_BUF_SIZE 64 //发送 发送…

量化选股:原理与实战指南(一)

🌟作者简介:热爱数据分析,学习Python、Stata、SPSS等统计语言的小高同学~🍊个人主页:小高要坚强的博客🍓当前专栏:《Python之量化交易》🍎本文内容:量化选股:原理与实战指南(一)🌸作者“三要”格言:要坚强、要努力、要学习 目录 引言 一、量化选股的基本概…

docker入门(二)之容器命令及私有仓库的部署(本地和harbor)

容器命令&#xff1a; 1.启动容器 接下来演示在docker下运行一个ubuntu系统&#xff0c;从中学习各容器命令。 --name"容器新名字" 为容器指定一个名称(不指定的话会随机分配一个名字)。 -d: 后台运行容器并返回容器ID&#xff0c;也就启动守护式容器(后台运行) -…

【Golang】关于Go语言中的定时器原理与实战应用

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【计算机网络 - 基础问题】每日 3 题(三十八)

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞…