H.264 Video Codec速度和质量
H.264 Video Codec速度和质量
从Kepler开始的所有 NVIDIA GPUs 都支持完全加速的硬件视频编码; GPUs 从费米开始支持完全加速的硬件视频解码。最近发布的图灵硬件提供了张量核心和更好的机器学习性能,但新的 GPU 还加入了新的多媒体功能,如改进的 NVENC 单元,以在视频编解码器中提供更好的压缩和图像质量。
仔细地看一看图灵设计的新的 NVENC 单元的性能和质量。
NVENC 性能测试设置
H.264 出现于 15 年前,已经成为一种无处不在的视频编码标准。它已经成为业界最重要和最广泛的编解码器。这些测试展示了 Tesla T4 与著名的开源编码器 libx264 在两种情况下的性能:
- 高质量模式,代表最常见的编码方案与 VBR 控制和 B 帧启用。
- 低延迟快速模式,适用于对延迟敏感的应用程序,如远程游戏或视频会议。
为此,测试计算机的配置如表 1 所示:
|
Testing Configuration |
||
|
Component |
Tesla T4 NVENC |
libx264 |
|
CPU |
Dual Intel Xeon E5-2660v3 @ 2.6 GHz |
Dual Intel Xeon E5-2660v3 @ 2.6 GHz |
|
GPU |
TU104 (Tesla T4) |
N/A |
|
RAM |
128 GB |
128 GB |
|
FFMPEG |
4.0.2 |
4.0.2 |
|
Driver |
415.15 |
N/A |
这些性能测试将编码参数设置为表 2 中所示的参数:
|
Encoding Parameters |
||
|
Preset |
NVENC |
libx264 |
|
High Quality |
-c:v h264_nvenc -preset medium -b:v BITRATE -bufsize BITRATE*2 -profile:v high -bf 3 -b_ref_mode 2 -temporal-aq 1 -rc-lookahead 20 -vsync 0 |
-c:v libx264 -preset medium -b:v BITRATE -bufsize BITRATE*2 -profile:v high -tune psnr -vsync 0 -threads 4 |
|
Low Latency Fast |
-c:v h264_nvenc -preset llhp -rc cbr_ld_hq -b:v BITRATE -bufsize BITRATE/FRATE -profile:v high -g 999999 -vsync 0 |
-c:v libx264 -preset fast -b:v BITRATE -bufsize BITRATE/FRATE -profile:v high -g 999999 -x264opts no-sliced-threads:nal-hrd=cbr -tune zerolatency -threads 4 -vsync 0 |
使用了各种输入视频进行 RD 估计,如 basketball _ drive 、 bq _ terrace 、仙人掌、 crowd _ run 、 ducks _ take _ off 、 jokey 、和服,以及更多分辨率为 1280 × 720 、 1920 × 1080 和 3840 × 2160 的视频。
效果和质量
平衡序列
图 1 到图 4 显示, Tesla T4 在高质量模式下为 libx264 提供相同或稍好的视觉质量,如 Kimono、 BQ Terrace 和 Park Scene 。

图 1. 720p 分辨率和服序列的 PSNR-RD 曲线。

图 2 . BQ 阶地序列 1080p 分辨率下的 PSNR-RD 曲线。

图 3 .公园场景序列在 720p 分辨率下的 PSNR-RD 曲线。

图 4 .公园场景序列的 PSNR-RD 曲线,分辨率为 1080p 。
与 libx264 相比, T4 显示了更好的预测和过滤,如图 5 和 6 所示。

图 5 .由 libx264 编码的 bq _ terrace 序列的帧。

图 6 . T4-Nvenc 编码的 bq_terrace 序列的帧。
高运动序列
红皮艇和仙人掌序列分别包含显著的混沌运动和圆周运动。与 libx264 相比, NVENC 在这些包含复杂内部预测的场景中显示出明显的优势,如图 7 和 8 所示。

图 7.红皮艇序列在 1080p 分辨率下的 PSNR-RD 曲线。

图 8 .仙人掌序列 1080p 分辨率的 PSNR-RD 曲线。
如图 9 和图 10 所示, Tesla T4 NVENC 在低延迟模式下的性能很容易超过 libx264 。请注意 Tesla T4 如何在高分辨率下更有效,在相同的比特率下提供 1db 更好的视觉质量。

图 9 . 1080p 分辨率和低延迟模式下仙人掌序列的 PSNR-RD 曲线。

图 10 .鸭起飞序列在 2160p 分辨率下的 PSNR-RD 曲线。
如图 11 和图 12 所示,视觉质量的差异很容易被肉眼看到:

图 11 .由 libx264 编码的 ducks_take_off 序列的第一帧。

图 12 .由 T4 NVENC 编码的鸭子取下序列的第一帧。
图灵 GPUs 配备了功能强大的 NVENC 视频编码单元,与 libx264 等复杂的软件编码器相比,它提供了更高的视频压缩效率,因为它结合了更高的性能和更低的能耗。理想的代码转换解决方案需要具有成本效益(美元/流)和节能(瓦/流)。看看在多个测试序列中平均的性能和功耗结果,如图 13 和 14 所示。

图 13 .在高质量模式下以每秒 30 帧同时编码的流数。

图 14 .在低延迟模式下以每秒 30 帧同时编码的流数。
T4 以高质量模式同时编码 22 个 720p 流。 GPU 还可以平均处理 10 个 1080p 的流和 2 到 3 个超高清( 2160p )分辨率的流。这相当于在相同的视觉质量级别上几乎是 libx264 的两倍。
在低延迟模式下运行显示出 T4 更大的优势。它可以编码 37 个 720p 分辨率的流, 17-18 个 1080p , 4-5 个超高清,性能比 libx264 高 2-2 . 7 倍,具有更高的视觉质量。可以在图 15 和图 16 中看到每个流的瓦特数。

图 15. 高质量模式下平均每流功耗瓦特

图 16. 低延迟模式下平均每流功耗瓦特
Tesla 还显示出很高的功率效率,在高质量模式下优于 libx264 2-4x ,在低延迟模式下高达 5 倍,同时保持低负载CPU。
结论
与前几代相比, NVIDIA 的 Tesla T4 的编码能力有了很大的提高。与 libx264 这样的软件编码器相比,它在高质量模式下显示出相同或更好的视觉质量,而在低延迟模式下则优于它们。这相当于在功耗降低 2-5 倍时性能提高了一倍。
H.264 Video Codec速度和质量的更多相关文章
- 【HEVC帧间预测论文】P1.2 An Efficient Inter Mode Decision Approach for H.264 Video Codin
参考:An Efficient Inter Mode Decision Approach for H.264 Video Coding <HEVC标准介绍.HEVC帧间预测论文笔记>系列博 ...
- How to use VideoToolbox to decompress H.264 video stream
来源:http://stackoverflow.com/questions/29525000/how-to-use-videotoolbox-to-decompress-h-264-video-str ...
- RFC3984: RTP Payload Format for H.264 Video(中文版)
转载地址:https://blog.csdn.net/h514434485/article/details/51010950 官方文档,中文版本地址:http://www.rosoo.net/File ...
- H.264视频的RTP荷载格式
Status of This Memo This document specifies an Internet standards track protocol for the Internet ...
- World’s Smallest h.264 Encoder
转载 http://www.cardinalpeak.com/blog/worlds-smallest-h-264-encoder/ View from the Peak World’s Smalle ...
- H.264开源解码器评测
转自:http://wmnmtm.blog.163.com/blog/static/38245714201142883032575/ 要播放HDTV,就首先要正确地解开封装,然后进行视频音频解码.所以 ...
- 【图像处理】H.264开源解码器评测
转自:http://wmnmtm.blog.163.com/blog/static/38245714201142883032575/ 要播放HDTV,就首先要正确地解开封装,然后进行视频音频解码.所以 ...
- (转载)H.264码流的RTP封包说明
H.264的NALU,RTP封包说明(转自牛人) 2010-06-30 16:28 H.264 RTP payload 格式 H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) ...
- iOS硬解H.264:-VideoToolboxDemo源码分析[草稿]
来源:http://www.cnblogs.com/michaellfx/p/understanding_-VideoToolboxDemo.html iOS硬解H.264:-VideoToolbox ...
随机推荐
- Python中os模块、csv模块和xlrd模块的使用
目录 os模块的使用 open("test.txt","mode") 读取文件中的内容 f.read() f.readline(size) f.readline ...
- XCTF-web_python_template_injection
web_python_template_injection 这里涉及到flask的ssti漏洞(服务端模板注入). 简单点说就是,在使用flask/jinja2的模板渲染函数render_templa ...
- 浅谈src与href的区别
src 和 href 都是用来引入外部资源的属性,例如:图片.视频.CSS 文件.JavaScript 文件等. 那么它们两者之间究竟有什么样的区别呢? <link href="sty ...
- 变分贝叶斯学习(variational bayesian learning)及重参数技巧(reparameterization trick)
摘要:常规的神经网络权重是一个确定的值,贝叶斯神经网络(BNN)中,将权重视为一个概率分布.BNN的优化常常依赖于重参数技巧(reparameterization trick),本文对该优化方法进行概 ...
- 缓冲流以及JAVA路径相关问题
缓冲流 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO 次数,从而提高读写的效率. 字节缓冲流 按字节处理 字符缓冲流 按字符处理 实例练习:文 ...
- JWT 基本使用
JWT 基本使用 在上一节中 session 共享功能使用 redis 进行存储,用户量激增时会导致 redis 崩溃,而 JWT 不依赖服务器,能够避免这个问题. 1.传统 session 1.1. ...
- computed和watch的区别
严格上来说,计算属性能够实现的效果,watch都可以实现.只是有时候watch写起来比较麻烦. 但是watch能够实现的效果computed不一定能够实现. 1:watch内部可以包含异步操作,com ...
- 企业选择CRM系统的要点
经过十数年的发展,CRM客户管理系统在企业当中开始家喻户晓,它的普及性也越来越高.管理者们也纷纷意识到CRM系统--这种企业管理工具带来的巨大好处.既然CRM给企业带来这么大的好处,那么企业该怎么选择 ...
- 前端Node的实用方法
Node 一.什么是Node Node是以基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动.非阻塞式I/O模型(I/O是 input/output的缩写,即输入输出端口,在 ...
- openstack总结复习
一.云计算概念 1.云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问, 通过互联网进入可配置的计算资源共享池(资源包括网络,计算,存储,应用软件,服务) 2.云计算所包含的几 ...