您当前的位置:首页 > 计算机 > 硬件解码

视频编解码硬件方案漫谈

时间:08-15来源:作者:点击数:

视频编解码硬件方案最早是在嵌入式领域中广泛存在,如采用DSP,FPGA,ASIC等,用来弥补嵌入式系统CPU等资源能力不足问题,但随着视频分辨率越来越高(从CIF经历720P,1080P发展到4K,8K),编码算法越来越复杂(从mpeg2经历h264,发展到h265),PC的软件规模也越来越庞大,视频应用也越来也丰富,单独靠CPU来编解码已经显得勉为其难,一种集成在显卡中gpu用来参与编解码工作已经成为主流。

一) gpu存在的形式

gpu主要驻留在显卡上,配合显卡参与显示,绘图,编解码,并行计算等工作。常见形式有以下3类。

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

独立显卡

2)集成在CPU中的核显,如intel的某些带核显处理器和AMD某些带核显处理器

带核显的处理器

3) 视频加速卡

专门用来在服务器端进行编解码使用,如Intel的 VCA卡等。

专用视频加速卡

二)gpu编解码的常用技术方案

1)厂家SDK方案

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

  NVIDIA AMD INTEL
编码器 NVENC UVD 参考sample_encode
解码器 NVDEC VCE 参考sample_decode
对应的SDK Video_Codec_SDK AMF SDK Intel Media SDK

硬件编解码SDK方案

2)FFMPEG方案

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

  NVIDIA AMD INTEL
编码器 xxx_nvenc xxx_amf xxxx_qsv
解码器 xxx_ cuvid 暂未实现 xxxx_qsv

ffmpeg硬解编解码应用

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

  cuda qsv dxva2/d3d11va opencl
应用场景 适应NVIDIA显卡平台,但跨OS 适应Intel显卡平台,但跨OS 适用Windows OS,但跨硬件平台 仅仅支持opencl的硬件平台

ffmpeg硬解加速应用

3)gstreamer方案

  gst-msdk gst-vaapi gst-d3d11
编码器 msdkxxxenc vaapixxxenc
解码器 msdkxxxdec vaapixxxdec d3d11xxxdec
应用场景 仅限intel gpu 仅限intel gpu的linux系统 仅限Windows D3D加速,跨硬件平台

Gstreamer硬件加速编解码方案

其中xxx标识编码类型,如h264,h265,mpeg2,vp8,vp9等。

在Linux关于gst-msdk和gst-vaapi的差异如下:

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

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门