HEVC/H.265硬件编码器实现杂谈

国际视频编码标准HEVC已经发布两年有余,市场上关于支持HEVC的硬件也日益涌现,本文借鉴了各方面资源做了综合与概述,给出了HEVC硬件编码器实现的基本方法等重要网络资源。

一、系统设计要点

对于HEVC/H.265视频编码而言,采用了比以往视频标准更加先进和灵活的编码方法,在性能上有比较明显的优势,但对硬件实现也是一个很大的挑战,其实现复杂度和计算量几倍于H.264标准,这对基于FPGA/ASIC/SOC硬件平台实现的H.265编码器设计提出了更高的要求。

要设计一个优秀的HEVC/H.265硬件编码器,重点考虑以下几个内容:

1、 最低工作时钟频率: 指实时实现一定规格的视频编码所需要的最低时钟频率。目前视频编码对画面尺寸以及帧率的要求越来越高,一般要达到[email protected]的规格,有的也开始支持4K的实时编码,另外,对低功耗设计也越发突出重要,因此低工作时钟频率显得尤其重要。根据以往业界公开的H.264硬编码器参数,大部分的[email protected]实时编码的的最低工作频率在200MHz ~ 250MHz,少数能够达到150MHz以内。H.265相比较H.264而言,其实现复杂度更高,要实现较低的工作频率,对整个编码器的系统设计提出了更高的要求,如果能够把单核[email protected]的工作频率控制在150MHz以内,则属于优秀参数级别。

2、最高可运行时钟频: 低时钟频率并不能以牺牲编码器最高可运行时钟频率为代价,时序最长路径不能过长,否则,低工作时钟频率的意义就打了折扣。如[email protected]实时编码的最低工作时钟频率要求为150MHz,该编码器在某型号FPGA上的综合最高可运行时钟频率只有50MHz,那么在该FPGA上远无法实现1080P实时编码,其性能可能还不如最低工作频率200MHz,而最高可运行时钟达到100MHz的编码器;

3、 较少的硬件资源: 硬件资源占用也是衡量一个硬件编码器性能的重要参数,大部分时候和最低工作频率是矛盾体,实时运行所需的最低工作频率越低,一般硬件资源占用会越高,需要在二者之间取得一定的平衡,在设计之初,需要通盘考虑那个参数更重要一些。另外也需要尽量减少RAM的使用数量和访问频率,这在低功耗设计时尤为重要;

4、 编码工具选择: HEVC/H.265的实现架构不同于以往视频标准固定编码块大小的做法,在实现灵活性方面有更大的空间,而硬件编码器实现和基于PC实现的软件编码器有很大的不同,很多时候需要在实现代价和性能表现之间做平衡取舍,例如,对于一些对编码性能提升有限而又较大增加硬件实现难度和代价的编码工具或方法,需要斟酌舍弃或者用其他近似方法替代。

二、技术难点分析

和其他复杂的数字信号处理相比,视频编码标准本身并不复杂,在制定标准时候已经考虑到可实现性问题。

但视频编码有其自身的特点,主要特点在于单位时间需要处理的数据量十分庞大,尤其是编码画面越来越大的情况下。以[email protected]为例,即使每个像素点分配2个时钟的运算时间,也要超过100MHz的系统时钟才能实现实时编码,而在2个时钟内,要完成一个像素包括亮度和色度的所有编码运算,这就给硬件编码器的系统设计提出了很大的挑战。

而区别于以往的视频编码标准如H.264等,HEVC/H.265在算法的灵活度方面要大大加强了,最典型的是摒弃了以往以16×16固定编码块大小的做法,而是采用了更为灵活的编码块结构,这种灵活的结构也带来了编码器性能的差异化,一般来说硬件编码器会对编码工具集进行一定的取舍和优化,如何在保证性能不受大的影响的情况下减少硬件资源占用和系统运行时钟,成为硬件编码器的一大挑战,也是一大难点所在。

另外,HEVC/H.265编码摒弃了对CAVLC的支持,而只有CABAC一种码流编码方式。CABAC的硬件实现一直是视频编码的难点所在,H.265也不例外,CABAC比较难以并行化运算,需要很多的硬件设计技巧和方法,通常CABAC部分也成为制约整个硬件编码器速度性能的瓶颈所在,虽然,H.265支持多个CABAC模块并行计算,但同样也会引起系统设计的复杂性以及硬件资源增加等问题,需要综合进行考虑。

三、软硬编码器设计方法的差异

视频软硬件编码的概念是相对的,通常把基于处理器平台实现的编码器称为软编码,典型如基于PC/ARM/DSP的视频编码器,而硬编码则通常指基于数字逻辑电路搭建的视频编码器,典型如基于FPGA平台以及SOC芯片中的编码器硬核等。

软硬件编码器在设计方法上迥然不同。软编码是在特定的硬件平台上实现的,它所对应的硬件资源是固定的,如它在单位时间内的运算处理能力是固定的,对于设计者而言,更多需要做的是在软件实现算法上做优化。而硬件编码器则是在最基本的逻辑电路上进行自由搭建,就好比在一张白纸上绘画一样,可根据需要添加硬件资源,如果以软件编码的方法或者在C程序上做移植优化的方法来进行硬件编码器设计,则很难设计出优秀的硬件编码器。另外硬件编码算法的差异化和灵活性会更高,相对软件编码器而言,不同设计方法导致的硬件编码器的性能差异化会更大。

评判一个视频硬件编码器的性能,主要考虑几点:

1. 压缩性能:一个视频压缩标准会有不同的编码工具集,并非所有的编码工具集都需要在编码器中实现,特别是对于实时硬件编码器,会根据编码器的应用场合特点对编码工具进行适当的删减,因此不同编码器在最佳编码性能方面会有些差异;

2. 硬件资源占用: 通常用逻辑门数和RAM大小等指标表示。不同的设计算法,特别是整个系统的设计安排,导致的硬件资源占用差异化很大,通常可以达到2~3倍以上;

3. 实时工作频率和fmax:实时工作时钟频率是衡量编码器的重要指标,这是硬件编码器设计之初即确定的参数,功能模块的算法设计选择需要根据实时工作时钟频率的要求来做相应调整,一般越低的工作时钟频率对模块以及系统的设计会带来更高的要求。由于视频编码数据量十分庞大,每个像素的处理时间甚至要求在1~2clk内完成,此时每增加1clk时间,都可能带来实时工作频率的极大增加。例如,同样的FPGA硬件平台,有的设计可以实现[email protected]实时编码器,而有的设计却只能完成CIF(320*240)实时编码器,差距在十倍以上。除了实时工作时钟频率外,还要考虑整个电路的最高可运行频率fmax,这个和硬件设计算法有关,fmax越高,实时工作频率越低,则编码器性能越优秀;

4. 功耗:功耗也是编码器设计需要考虑的问题,特别是编码器应用在移动便携式领域时。

不管是软件编码器还是硬件编码器,要设计一款优秀的产品都不是容易之事。软件编码器有官方的参考软件,可在此基础上做优化,但不同优化方案的性能差异相对有限。

【ZoBoVision原创:http://zobovision.zgznh.com/】

四、国内外做HEVC硬件的厂家及其产品

1、NVIDIA全基因至尊品牌的影驰也推出了多款带有HEVC/H.265编码的GTX960产品,GTX960则完完全全的能支持HEVC/H.265视频压缩,也更加支持10Bits的HEVC/H.265,GTX960也是世界上唯一支持10Bits的HEVC/H.265的视频压缩,HEVC/H.265也是如今购买显卡的一个重要指标。而要看显卡是否有自带HEVC/H.265视频压缩以及10Bits HEVC/H.265视频压缩,可以下载DXVA Checker检验你的GPU来检验,只要看是否有显示HEVC_VLD_Main以及HEVC_VLD_Main10即可。

2、ZoboVision提供的HEVC/H.265 HD单核编码器IP E50,其实现[email protected]所需的最低时钟频率在100MHz以内;

3、国内目前进行HEVC/H.265商用软件编码器设计的公司有视骏、瑞普图视频等。而硬件编码器的技术门槛相对较高,产品差异化较大,国内进行HEVC/H.265硬件编码器IP商用开发的公司有ZoboVision、jointwave等。中博视清zobovision提供优质HEVC/H.265编码器FPGA/SOC IP硬核ZoBo E50。

时间: 2024-10-08 04:59:24

HEVC/H.265硬件编码器实现杂谈的相关文章

最简单的基于FFmpeg的视频编码器-更新版(YUV编码为HEVC(H.265))

前一阵子做过一个基于FFmpeg的视频编码器的例子:最简单的基于FFMPEG的视频编码器(YUV编码为H.264)在该例子中,可以将YUV像素数据(YUV420P)编码为H.264码流.因为如今FFmpeg已经实现了对libx265的支持,因此对上述编码H.264的例子进行了升级,使之变成编码H.265(HEVC)的例子.比较早的FFmpeg的类库(大约几个月以前的版本,我这里编译时间是2014.05.06)对H.265的编码支持有问题.开始调试的时候,以为是自己的代码有问题,几经修改也没有找到

[转帖]树莓派 4 正式发布!硬件性能大提升:CPU提升3倍,支持USB3.0、蓝牙5.0、千兆以太网、4G LPDDR4、H.265

树莓派 4 正式发布!硬件性能大提升:CPU提升3倍,支持USB3.0.蓝牙5.0.千兆以太网.4G LPDDR4.H.265 http://www.itpub.net/2019/06/28/2308/ 其实应该拿来试试的 树莓派(Raspberry Pi)基金会,6月24日正式发布了Raspberry Pi 4 Model B. 树莓派是全球知名的基本计算微型电脑,深受全球开发者.编程者.极客等人士的追捧和喜爱. 这一代Raspberry Pi 4 Model B开发了3年的时间,内存(RAM

H.265 Video Encoder IP Core

复制: 开源H.265硬件视频编码器H.265 Video Encoder IP Core是开源的H.265硬件视频编码器,实现了H.265(或叫HEVC)的大部分功能. 它由复旦大学专用集成电路与系统国家重点实验室(State Key Lab of ASIC & System,Fudan University)视频图像处理实验室(VIP Lab)范益波教授研究团队开发完成,并开放源代码.任何组织个人可以无偿使用上述代码用于研究和生产目的,VIP Lab将会持续更新并维护H.265硬件视频编码器

最简单的视频编码器:基于libx265(编码YUV为H.265)

本文记录一个最简单的基于libx265的H.265(HEVC)视频编码器.此前记录的编码器是通过FFmpeg调用libx265完成编码的,例如: <最简单的基于FFmpeg的视频编码器-更新版(YUV编码为HEVC(H.265))> 相比与上文中的编码器,本文记录的编码器属于"轻量级"的编码器.因为它不再包含FFmpeg的代码,直接调用libx265完成编码.因此项目的体积非常小巧.该编码器可以将输入的YUV数据编码为H.265码流文件. 流程图 调用libx265进行视频

H.265:网络视频的4K超高清时代,网络高清智能播放器的春天。方小盒M8

前年,爱立信公司推出了首款H.265编解码器,而在仅仅六个月之后,国际电联(ITU)就正式批准通过了HEVC/H.265标准,标准全称为高效视频编码(High Efficiency Video Coding),相较于目前的H.264标准有了相当大的改善.H.265旨在在有限带宽下传输更高质量的网络视频,仅需原先的一半带宽,即可播放相同质量的视频.这也意味着我们的移动设备(手机.平板电脑)将能够直接在线播放全高清(1080P)视频.而H.265标准也同时支持4K(4096×2160)和8K(819

高清时代4K H.265/HEVC来临---OTT/IPTV直播系统大发展

近几年网络电视盒子业务大爆发.乐视.小米.天猫甚至阿里云都有网络电视小盒子的产品.提起这个行业,那么这个词OTT-TV或IPTV对于我们来说是不陌生的. 今天我们不细说OTT-TV和IPTV有什么区别.两个词求同存异,对于入户家庭来说,没有太大本质的区别,都是可以看电视的网络盒子. 除了OTT/IPTV这样的词,似乎目前在互联网电视业务提到H.265还不多.H.265是全新的视频标准.H.265相对H.264,相同画质不仅体积更小,而且传输更快,画质优化也更佳.大众目前对视觉享受要求越来越高,那

如何支持RTSP播放H.265(HEVC)流

随着H.265的普及,越来越多的开发者希望大牛直播SDK能支持低延迟的RTSP H.265播放,并分享相关经验: 实现思路: 对rtsp来说,要播放h265只要正确解析sdp和rtp包即可. 下面对这些相关内容做一些介绍. 1. H265 Nal Unit Header 简单介绍: H264的Nal Unit头是一个字节,265变成两个字节: ?F: 1 bit. forbidden_zero_bit. 265要求是0,是1的话指示语法违规等. Type: 6 bits. Nal类型. vps是

智勇电子最新H.265支持SRT协议编码器ZY-EDHV201发布

智勇电子最新H.265同编同解编码器ZY-EDHC201全新发布,该产品能同时提供高清视频的编码.解码服务.支持HDMI或VGA高清视频输入输出,采用嵌入式操作系统.H.265/H.264/JPEG视频压缩技术, 支持SRT.RTSP.RTMP.Http.Onvif.UDP/ Multicast等网络传输功能.具备稳定可靠.功能强大.组网灵活.拓展性强等特点,低功耗.无风扇结构设计,编码.解码一体设计,体积小,使用灵活,方便安装. [主要特征] ? 编解码一体集成设计,支持同时1路1080p60

vlc源码分析(六) 调用OpenMAX硬解码H.265

http://www.cnblogs.com/jiayayao/p/6964506.html H.265(HEVC)编码格式能够在得到相同编码质量视频的前提下,使用相当于H.264(AVC)一半的存储容量,虽然H.265的算法复杂度比H.264高一个数量级,但是硬件水平在不断提高,因此H.265使用场合逐渐多了起来.好多硬件厂商芯片内部实现了H.265的硬解码.最近调试了vlc-android调用OpenMAX硬解码H.265的部分,使用的硬件平台是ZX-2000,系统是Android5.1.