zobovision随谈H.265/HEVC编码FPGA实现(一)
H.265/HEVC出来已有10年,但市场应用难言巅峰,
正如古董级的H.264现在仍然大行其道,H.265的全面应用仍有待市场发酵,
至少在硬件产品端应用,值得期待。
一来H.265相对H.264而言,压缩技术确实要先进不少,不管是理论上还是实际效果方面;
二是H.265相对后来者H.266/VVC等而言,实用性更强,性价比更高,
产品端的应用讲究压缩性能和计算复杂度的平衡,
H.266以10倍的计算复杂度换取压缩性能的有限提升,
虽然现在的FPGA/ASIC器件规模越来越大,但依然实现代价巨大,实现成本代价高,
而H.265,如同10年前看H.264,现在的H.265普及应用正当时。
zobovision今天开始谈谈H.265/HEVC视频编码的FPGA实现,同样也适用于ASIC实现,
只是泛泛而谈,一般不涉及具体实现。
zobovision于2014年成立于深圳,
专注视频图像编解码FPGA/ASIC IP研发和商用,编码为主,
H.264/H.265/HEIF/H.266系列IP均有,偶有心得,和大家分享,一家之言,仅供参考。
FPGA或ASIC实现编码,也可称之为硬编,这是相对软件编码而言;
软编可利用的硬件资源固定,编码帧速主要取决于计算量大小,当然也有很多加速方法。
硬编则大不同,
需要用到多大的资源,能跑到多快的帧速,能有多好的压缩效率和压缩质量,
完全取决于你的设计,不同的设计,千差万别,
如同一张白纸上绘画,可以自由发挥,
最好的设计当然是:资源最少,编码速度最快,压缩质量最好,还有最高的压缩效率。
关键是,能做到吗?
还是有可能的,
前提是和他人作比较,这也许是硬编的一大魅力。
FPGA实现H.265编码,难吗?
可以说不难。
H.265沿袭了视频编码一贯的框架,
如果不考虑实现资源代价,不考虑编码速度和压缩效率,
做起来倒也不难,简化版的H.265,会FPGA编程和硬件算法,大多能做。
但,其实挺难。
H.265较H.264的计算量增加10倍量级,即使简化后一般也有5/6倍,
而影响编码速度的瓶颈,
如帧内预测到DCTQ及重建的闭环串行通路,以及二进制算术编码CABAC串行计算等,
却依然存在,
通常硬编对编码速度有硬性要求,如1080P@60,
在H.265计算量增加1个量级,且递归层次及选择项大增的情况下,
如何达到既定编码速度,又要兼顾硬件逻辑资源和压缩效率的平衡,则并非易事。
zobovision于2015年推出第一款商用H.265编码和解码FPGA IP,
基于xilinx K7 325T FPGA器件平台,1080P@60规格,
主要用于低延迟视频编解码,以及HEVC图片编解码应用,
如今七年过去了,仍致力于IP的不断优化和升级,
包括不同规格和应用以及不同FPGA器件平台的移植等,
不同场景应用可能都有一些侧重点或者优化需求,
有的侧重压缩效率和视频质量,需要更大规模的FPGA器件平台,
有的侧重低延迟性能和高性价比FPGA器件,则可能需要适当牺牲压缩性能,
诸如此类。
FPGA硬编研发方向,可以归纳为两个不同方向:
一个是硬件加速方向,
大体上用于软件编码的加速,不讲究绝对速度或实时性,
通常不牺牲视频压缩质量或压缩性能,有的还能提升,或配合软件进行,或独立进行,
速度上较软编通常有很大的提升,但还达不到实时性编码的速度。
另外一个方向则是全实时编码,如1080P@60,4K@60等,
对编码速度有硬性要求,可以适当牺牲压缩性能,
当然,能不损失压缩性能最好,
甚至可能有超越的,可以当另类存在。
不同的方向,设计思想和侧重点也迥异,
架构不同,控制流程不同,差别较大。
zobovision主要做实时编码,
后续也将重点围绕FPGA H.265实时编码方向,深入的泛泛谈谈。
(zobovision原创,转载请勿更改文章标题和内容)