当前位置: 首页 > wzjs >正文

宿迁手机网站开发公司电话企业文化设计

宿迁手机网站开发公司电话,企业文化设计,wordpress中设置ajax分页,中国军事世界排名libaom 码率控制模式介绍 在 libaom 中定义了四种码率控制模式,分别是 VBR、CBR、CQ、Q;枚举类型会被用在编码器配置结构体 aom_codec_enc_cfg 中,通过 rc_end_usage 字段来设置编码器的码率控制策略。具体应用范围如下: AOM_VBR…

libaom 码率控制模式介绍

  1. 在 libaom 中定义了四种码率控制模式,分别是 VBR、CBR、CQ、Q;枚举类型会被用在编码器配置结构体 aom_codec_enc_cfg 中,通过 rc_end_usage 字段来设置编码器的码率控制策略。具体应用范围如下:
    • AOM_VBR - 可变比特率模式
      • 允许比特率根据视频内容复杂度动态变化
      • 在简单场景使用较少比特,复杂场景使用更多比特
      • 适合本地存储等对码率波动不敏感的场景
    • AOM_CBR - 恒定比特率模式
      • 强制编码器保持恒定的目标比特率
      • 通过调整量化参数来实现
      • 适合带宽受限的实时流媒体传输
    • AOM_CQ - 受限质量模式
      • 在保证一定质量水平的前提下尽量降低码率
      • 质量与码率之间的折中方案
    • AOM_Q - 恒定质量模式
      • 完全以质量为目标,不考虑码率限制
      • 适合对质量要求极高且不关心文件大小的场景
/*!\brief Rate control mode */
enum aom_rc_mode {AOM_VBR, /**< Variable Bit Rate (VBR) mode */AOM_CBR, /**< Constant Bit Rate (CBR) mode */AOM_CQ,  /**< Constrained Quality (CQ)  mode */AOM_Q,   /**< Constant Quality (Q) mode */
};

libaom码率控制模式实验

  1. 编码命令行:./aomenc -w 1920 -h 1080 --fps=25/1 --passes=1 --end-usage=vbr --target-bitrate=3000 --cpu-used=6 -o av1.ivf BasketballDrive_1920x1080_50.yuv
  2. 解码命令行:ffmpeg -i av1.ivf vbr.yuv
  3. PSNR 计算命令行: ./ffmpeg -s <宽x高> -pix_fmt <像素格式> -i <受损YUV文件> -s <宽x高> -pix_fmt <像素格式> -i <原始YUV文件> -lavfi psnr=stats_file=psnr.log -f null -
  4. 视频序列示意图
    在这里插入图片描述
  5. 实验数据
视频序列rc_end_usagePSNR(dB)码率(b/s)耗时(fps)
BasketballDrive_1920x1080_50.yuvvbry:37.538749 u:42.919160 v:43.573611 average:38.75076734706252.49
cbry:36.732039 u:41.782326 v:42.060963 average:37.88054929405002.78
cqy:37.546299 u:42.927692 v:43.576597 average:38.75812934616252.47
qy:42.072283 u:45.036628 v:46.910359 average:43.011125363458001.27
  1. vbr模式前 50 帧 bit 示意图 和 psnr 数据
    在这里插入图片描述
    在这里插入图片描述

  2. cbr 模式前 50 帧 bit 示意图和 psnr 数据
    在这里插入图片描述
    在这里插入图片描述

  3. cq 模式下前 50 帧 bit 示意图 和 psnr 数据
    在这里插入图片描述
    在这里插入图片描述

  4. q 模式前 50 帧 bit 示意图和 psnr 数据
    在这里插入图片描述在这里插入图片描述

  5. 用 Python 画出前 50 帧 psnr 的曲线图
    在这里插入图片描述

# -*- coding: utf-8 -*-
# created by 码流怪侠
# 2025.4.15
import matplotlib.pyplot as plt# 提取前50帧的psnr_avg数据
# VBR
psnr_values_vbr = [41.90, 40.17, 40.18, 39.88, 40.13, 39.68, 39.84, 39.64, 39.71, 40.31,39.78, 39.92, 39.80, 40.14, 39.87, 40.01, 39.85, 39.94, 40.35, 40.32,40.39, 40.68, 40.38, 40.39, 40.97, 40.32, 40.23, 40.59, 40.11, 40.34,40.23, 40.69, 39.88, 39.86, 39.61, 39.84, 39.45, 39.54, 39.42, 39.93,39.33, 39.34, 39.13, 39.41, 38.96, 39.08, 38.99, 40.16, 38.93, 38.96
]
# CBR
psnr_values_cbr = [43.03, 38.69, 38.39, 38.16, 37.95, 38.08, 38.23, 38.41, 38.68, 38.89,39.16, 39.35, 39.54, 39.77, 39.88, 39.95, 39.96, 40.03, 40.03, 40.06,40.06, 40.04, 39.99, 39.96, 39.90, 39.80, 39.69, 39.56, 39.45, 39.36,39.40, 34.18, 39.36, 38.54, 38.79, 38.80, 38.76, 38.70, 38.64, 38.62,38.63, 38.55, 38.50, 38.32, 38.18, 38.01, 37.84, 37.73, 37.71, 37.72
]
# CQ
psnr_values_cq = [41.90, 40.17, 40.18, 39.89, 40.15, 39.71, 39.84, 39.64, 39.74, 40.38,39.83, 39.97, 39.85, 40.19, 39.92, 40.05, 39.92, 39.99, 40.43, 40.36,40.40, 40.74, 40.41, 40.43, 41.04, 40.37, 40.27, 40.66, 40.16, 40.38,40.30, 40.85, 39.95, 39.91, 39.65, 39.88, 39.47, 39.58, 39.43, 39.98,39.36, 39.37, 39.15, 39.46, 38.98, 39.11, 39.00, 40.24, 38.95, 38.99
]
# Q
psnr_values_q = [41.52, 42.63, 43.32, 42.58, 44.10, 42.57, 43.37, 42.77, 42.57, 44.15,42.54, 43.35, 42.55, 44.11, 42.58, 43.36, 42.80, 42.79, 42.65, 42.65,42.55, 43.88, 42.60, 42.54, 44.19, 42.60, 42.56, 42.58, 43.38, 42.30,42.56, 42.79, 42.85, 42.56, 43.44, 42.57, 42.55, 42.53, 42.66, 42.58,42.54, 42.86, 42.56, 43.50, 42.58, 42.46, 42.62, 44.46, 42.66, 43.01
]# 创建图表
plt.figure(figsize=(12, 6))
plt.plot(psnr_values_vbr, marker='o', linestyle='-', color='b', label='VBR', alpha=0.7)
plt.plot(psnr_values_cbr, marker='s', linestyle='--', color='r', label='CBR', alpha=0.7)
plt.plot(psnr_values_cq, marker='^', linestyle=':', color='g', label='CQ', alpha=0.7)
plt.plot(psnr_values_q, marker='D', linestyle='-.', color='m', label='Q', alpha=0.7)  # 新增Q曲线plt.title('PSNR Comparison (VBR vs CBR vs CQ vs Q) for First 50 Frames')  # 更新标题
plt.xlabel('Frame Number')
plt.ylabel('PSNR (dB)')
plt.grid(True)
plt.xticks(range(0, 50, 5))
plt.yticks(range(28, 46, 2))  # 调整Y轴范围
plt.ylim(28, 45)  # 调整Y轴显示范围
plt.legend()# 显示图表
plt.tight_layout()
plt.savefig('/Users/admin/Documents/gitcode/libaom/psnr_comparison.png')
plt.show()

总结

  1. AOM_Q模式有点类似 x264、x265 中的 CQP 模式,与目标码率 target-bitrate 互斥关系;
  2. AOM_CBR 模式虽然控制的码率更符合目标码率,但整体视频质量把控的很差,且出现极低质量的情况;
  3. AOM_VBR 模式和 AOM_CQ 模式几乎有一样的编码效果和能力,AOM_CQ相对有更低一点的码率控,psnr 有略微优势,但二者整体差距微乎其微;
  4. AOM_CQ模式有点类似 x264、x265 中的 CRF,但不同点是AOM_CQ也收到目标码率 target-bitrate的限制。
http://www.dtcms.com/wzjs/134245.html

相关文章:

  • wordpress网站搜不到什么是网络整合营销
  • 企业网站制作教程视频百度一下官网手机版
  • 为什么用html5做网站网络安全培训机构哪家好
  • 网站建设的趋势什么都不懂能去干运营吗
  • dw怎么做连接到另外一个网站百度普通收录
  • 推广引流渠道有哪些seo新手入门教程
  • 丹阳网站制作外贸网站搭建推广
  • 苏州市政府网站建设评估理发培训专业学校
  • 进一步加强网站内容建设seo网站排名优化公司
  • 舟山论坛网站建设长沙网站建站模板
  • 网站模板源码下载网线上购买链接
  • 电商运营培训课程提高seo关键词排名
  • 东莞粤保保安公司网站seo价格
  • 中国小康建设网是骗子网站吗?seo批量建站
  • 网站访问密码网站外链购买平台
  • 网站推广软件ky99成人英语培训班哪个机构好
  • 怎么做网站运营如何做推广最有效果
  • 做网站花费金昌网站seo
  • 怎样拍照产品做网站新手怎么做销售
  • 常州青竹网络做网站小红书如何引流推广
  • 项目设计高中综评关键词优化百家号
  • wordpress如何修改后台网址seo搜索引擎优化论文
  • 怎样创办一个网站百度网站提交入口
  • 给人做设计的网站站长工具在线
  • 电气网站设计火星培训机构收费明细
  • 做网站的集群方案seo信息优化
  • 站长音效公关公司一般收费标准
  • 南京市环保局官方南京做网站怎么做网站关键词优化
  • 中山市住房和城乡建设局官网seo与sem的区别与联系
  • 怎样才能申请网站泉州seo按天计费