几天前,社区 VideoLAN 和 FFmpeg 宣布发布 新版本 dav1d 1.0.0 库。 这是 AV1 视频编码格式的另一种免费解码器实现。
dav1d库支持AV1的所有功能, 包括高级下采样类型和规范中声明的所有色彩深度控制参数(8位,10位和12位)。 该库已针对大量AV1格式的文件进行了测试。
视频编解码器 AV1由开放媒体联盟(AOMedia)开发。,其中代表了Mozilla,Google,Microsoft,Intel,ARM,NVIDIA,IBM,Cisco,Amazon,Netflix,AMD,VideoLAN,CCN和Realtek等公司
AV1 被定位为一种免费视频编码格式,不需要付费, 在压缩方面明显优于H.264和VP9。
参考解码器 AV1很棒,但这是一个研究代码库, 因此还有很多改进的地方。 这就是VideoLAN,VLC和FFmpeg社区开始开发新解码器的原因,该解码器由 开放媒体联盟,以创建AV1的参考优化解码器。
dav1d的一个关键功能是专注于实现性能 可能实现解码速率,并确保高质量的多线程操作。
dav1d 1.0.0的主要新功能
在这个新发布的解码器版本中已经修复了早期报告的各种小错误,以及正在实施的重要功能。
正是在这个新版本的 dav1d 1.0.0 多线程组织已重做, 包括自动流量控制,从而 与 SSE 2 相比,AVX4.1 的性能得到了改进
在这个新版本中突出的另一个变化是 添加了加速计算的能力 使用 AVX-512 矢量指令,加上之前添加的基于 SSE2 和 AVX2 指令的优化得到了改进。
另一方面,我们可以发现它已被提议 一个新的 API,可以更轻松地使用 GPU 进行加速 并且添加了一个 API 来获取有关在解码过程中出现问题的帧的信息。
而 对于已修复的错误部分 在这个新版本中,提到了以下内容:
- 修复了 32 位 Windows DLL 在 dav1d_ipred_*_ssse3 函数上失败的问题
- 如果第一帧中没有关键帧,则修复了执行播放时崩溃的问题。
- 通过 Libfuzzer 检测到整数溢出错误
- arm64 ASM 在 Apple M1 上失败
- 损坏的 Android 构建(未定义符号:pthread_getaffinity_np)
- 修复在 Windows 上使用 libdav1d 编译 ffmpeg 的问题
- 如果 Clang -fprofile-instr-generate 标志设置为 CFLAGS,Linux 上的编译错误(“未定义引用”链接器错误)
- 对视频文件的密集搜索会产生随机崩溃伪影
- 使用框架线程时不会传播错误
- 允许 dav1d_get_picture 返回有关哪个包损坏的信息
- 添加基本的默认多线程
- Fuzzer 测试用例产生 3 帧 dav1d 与 0 帧 libaom。
- 根据内容和系统实现智能线程默认值
最后 如果您想了解更多 有关此新版本以及此解码器的项目的信息,您可以查看详细信息 在下面的链接中。
如何在Ubuntu及其衍生产品上安装dav1d解码器?
对于那些有兴趣在系统中安装此解码器的人,可以按照我们下面共享的说明进行安装。
一般来说, 对于大多数Linux发行版, VideoLan项目的家伙们提供 通过Snap程序包解码器程序包。
因此,以这种方式安装它,只需要您的发行版支持这种类型的程序包即可。
在终端中,他们只需要执行以下命令:
sudo snap install dav1d --edge