问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

视频编解码硬件方案漫谈

创作时间:
作者:
@小白创作中心

视频编解码硬件方案漫谈

引用
CSDN
1.
https://blog.csdn.net/fengliang191/article/details/114796470

随着视频分辨率的不断提高和编码算法的日益复杂,传统的CPU编解码方案已经难以满足需求。GPU作为专门用于图像处理的硬件,逐渐成为视频编解码领域的主流选择。本文将详细介绍GPU在视频编解码中的应用形式及其常用技术方案。

GPU存在的形式

GPU主要驻留在显卡上,配合显卡参与显示、绘图、编解码和并行计算等工作。常见的形式主要有以下三种:

  1. 独立显卡形式,如AMD和NVIDIA独立显卡。

    独立显卡

  2. 集成在CPU中的核显,如Intel的某些带核显处理器和AMD某些带核显处理器。

    带核显的处理器

  3. 视频加速卡,专门用于服务器端的编解码工作,如Intel的VCA卡等。

    专用视频加速卡

GPU编解码的常用技术方案

  1. 厂家SDK方案

对应GPU编解码,硬件厂家都有相应SDK方案,应用开发者可以直接调用厂家的SDK来完成编解码器工作。

厂家
编码器
解码器
对应的SDK
NVIDIA
NVENC
NVDEC
Video_Codec_SDK
AMD
UVD
VCE
AMF SDK
INTEL
参考sample_encode
参考sample_decode
Intel Media SDK
  1. FFMPEG方案

FFmpeg对厂家SDK进行封装和集成,实现部分的硬件编解码。

厂家
编码器
解码器
NVIDIA
xxx_nvenc
xxx_cuvid
AMD
xxx_amf
暂未实现
INTEL
xxxx_qsv
xxxx_qsv

其中xxx标识编码类型,如h264、h265、mpeg2、vp8、vp9等。其次在FFmpeg中软件编解码器可以实现相关硬解加速。如在h264解码器中可以使用cuda加速、qsv加速、dxva2加速、d3d11va加速、opencl加速等。

加速方案
应用场景
cuda
适应NVIDIA显卡平台,但跨OS
qsv
适应Intel显卡平台,但跨OS
dxva2/d3d11va
适用Windows OS,但跨硬件平台
opencl
仅仅支持opencl的硬件平台
  1. GStreamer方案
方案
编码器
解码器
应用场景
gst-msdk
msdkxxxenc
msdkxxxdec
仅限intel gpu
gst-vaapi
vaapixxxenc
vaapixxxdec
仅限intel gpu的linux系统
gst-d3d11
d3d11xxxdec
仅限Windows D3D加速,跨硬件平台

其中xxx标识编码类型,如h264、h265、mpeg2、vp8、vp9等。在Linux关于gst-msdk和gst-vaapi的差异如下:

以上是关于视频在PC上的硬解硬编的常见方案。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号