HEVC/H.265硬件编码器实现杂谈
国际视频编码标准HEVC已经发布两年有余,市场上关于支持HEVC的硬件也日益涌现,本文借鉴了各方面资源做了综合与概述,给出了HEVC硬件编码器实现的基本方法等重要网络资源。
一、系统设计要点
对于HEVC/H.265视频编码而言,采用了比以往视频标准更加先进和灵活的编码方法,在性能上有比较明显的优势,但对硬件实现也是一个很大的挑战,其实现复杂度和计算量几倍于H.264标准,这对基于FPGA/ASIC/SOC硬件平台实现的H.265编码器设计提出了更高的要求。
要设计一个优秀的HEVC/H.265硬件编码器,重点考虑以下几个内容:
1、 最低工作时钟频率: 指实时实现一定规格的视频编码所需要的最低时钟频率。目前视频编码对画面尺寸以及帧率的要求越来越高,一般要达到1080P@30fps的规格,有的也开始支持4K的实时编码,另外,对低功耗设计也越发突出重要,因此低工作时钟频率显得尤其重要。根据以往业界公开的H.264硬编码器参数,大部分的1080P@30fps实时编码的的最低工作频率在200MHz ~ 250MHz,少数能够达到150MHz以内。H.265相比较H.264而言,其实现复杂度更高,要实现较低的工作频率,对整个编码器的系统设计提出了更高的要求,如果能够把单核1080P@30fps的工作频率控制在150MHz以内,则属于优秀参数级别。
2、最高可运行时钟频: 低时钟频率并不能以牺牲编码器最高可运行时钟频率为代价,时序最长路径不能过长,否则,低工作时钟频率的意义就打了折扣。如1080P@30fps实时编码的最低工作时钟频率要求为150MHz,该编码器在某型号FPGA上的综合最高可运行时钟频率只有50MHz,那么在该FPGA上远无法实现1080P实时编码,其性能可能还不如最低工作频率200MHz,而最高可运行时钟达到100MHz的编码器;
3、 较少的硬件资源: 硬件资源占用也是衡量一个硬件编码器性能的重要参数,大部分时候和最低工作频率是矛盾体,实时运行所需的最低工作频率越低,一般硬件资源占用会越高,需要在二者之间取得一定的平衡,在设计之初,需要通盘考虑那个参数更重要一些。另外也需要尽量减少RAM的使用数量和访问频率,这在低功耗设计时尤为重要;
4、 编码工具选择: HEVC/H.265的实现架构不同于以往视频标准固定编码块大小的做法,在实现灵活性方面有更大的空间,而硬件编码器实现和基于PC实现的软件编码器有很大的不同,很多时候需要在实现代价和性能表现之间做平衡取舍,例如,对于一些对编码性能提升有限而又较大增加硬件实现难度和代价的编码工具或方法,需要斟酌舍弃或者用其他近似方法替代。
二、技术难点分析
和其他复杂的数字信号处理相比,视频编码标准本身并不复杂,在制定标准时候已经考虑到可实现性问题。
但视频编码有其自身的特点,主要特点在于单位时间需要处理的数据量十分庞大,尤其是编码画面越来越大的情况下。以1080P@30fps为例,即使每个像素点分配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硬件平台,有的设计可以实现1080P@30fps实时编码器,而有的设计却只能完成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,其实现1080P@30fps所需的最低时钟频率在100MHz以内;
3、国内目前进行HEVC/H.265商用软件编码器设计的公司有视骏、瑞普图视频等。而硬件编码器的技术门槛相对较高,产品差异化较大,国内进行HEVC/H.265硬件编码器IP商用开发的公司有ZoboVision、jointwave等。中博视清zobovision提供优质HEVC/H.265编码器FPGA/SOC IP硬核ZoBo E50。
HEVC/H.265硬件编码器实现杂谈相关推荐
- 修改Chromium源码实现HEVC/H.265 4K视频播放
本文作者:蔡斯杰,字节跳动互娱前端业务负责人 公司内容生产端最近(2019/10)在推广 HEVC/H.265 的使用,这种视频编码格式对比H.264更加先进且节省带宽,虽然先进但是因为专利费的问题, ...
- HEVC/H.265(1)——入门初步了解
一.引子 说到H.265,个人的初始印象就是比H.264高端了那么一些的编码标准,再就是在学校的BT上下的那个好多播放器都播放不了,只有potplayer等一小部分未来播放器能播放的权利的游戏HEVC ...
- 华为:解读下一代视频压缩标准HEVC(H.265)
概述 H.264(AVC)从2003年5月草稿发布以来,凭借其相对于以往的视频压缩标准在压缩效率以及网络适应性方面的明显优势,逐步成为视频应用领域的主流标准.根据 MeFeedia的数据,由于iPad ...
- 二、对HEVC/H.265视频编解码器进行隐写的基本思路
二.对HEVC/H.265视频编解码器进行隐写的基本思路 概述 1.视频隐写的基本思路 2.视频隐写的举例说明 3.结尾 概述 其实对视频隐写.图像隐写或是音频隐写,基本的思路都是一样的:读取原始图像 ...
- 高效视频编码 (HEVC) -H.265(结构解析)
版本 HEVC (H.265) 规范的第一个版本于 2013 年 4 月发布.该标准的版本如下: ITU-T H.265 (V1) (04/2013) http://handle.itu.int/11 ...
- 让CEF支持HEVC(H.265)视频播放
HEVC(H.265)有高昂的版权费用这个是众所周知的,所以现在绝大多数浏览器默认都不具备HEVC解码能力,这一点可以通过caniuse.com看到: 可以看到,基本上只有Apple是HEVC的主要支 ...
- 【miscellaneous】最新HEVC/H.265 4K视频,显卡解码测试
转载自:http://bbs.zol.com.cn/diybbs/d34441_76103.html 4K这个概念也在最近几年开始流行了起来,无论是4K显示器.4K电视盒子,还是4K游戏对硬件的要求也 ...
- HEVC (H.265)介绍(转)
[Liupin]: 这是一篇简单介绍H.265文章,我接触和开发H.265二年来,H.265技术在行业内接收速度比H.264快多了,现在国际和国内各大公司都在进行H.265应用,不管是IC设计还是H. ...
- PotPlayer不支持S/W HEVC(H.265)解码的解决方法
PotPlayer播放MKV格式的视频时跳出视窗显示:不支持S/W HEVC(H.265)解码,按下寻找编解码器,请安装相应的解码器. 解决方法: 1.开启浏览器,打开「FFMPEG64.DLL」这个 ...
最新文章
- 西安电子地图下载 来自谷歌电子地图库 地图展示15、17、19级
- 汇编cli(Clear Interrupt,禁止中断、关中断,对应的sti是开中断)
- Java经典实例:比较浮点数
- Python中的除法保留两位小数
- phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
- 平面设计中的网格系统pdf_平面设计基础知识
- 【题解】生日蛋糕-C++
- JAVA Swing GUI设计 WindowBuilder Pro Container使用大全4——JSplitPane使用
- CSS-DIV页面布局
- Java+MySQL+swing学生管理系统
- 如何对销售额进行预测?
- 微软 Win10 更新再出 bug
- 深入理解Object.entries()
- 中国化肥产业发展现状及趋势分析,化肥产能过剩情况得到缓解「图」
- 提交代码时用prettier自动格式化
- python网络爬虫从入门到实践 第5章 (一)
- 微型计算机AL和AH区别,微型计算机的技术与应用.ppt
- CodeMirror 格式化内容和内容选择CodeMirror 官方文档
- 易语言EIDE助手(内测体验版),更便捷好用的易语言助手。
- QT设置背景图片以及设置按钮
热门文章
- 《给child的五顶学习帽》的总结
- 零基础该如何学习UI设计,你的学习方法正确吗?
- docker报错 x509: certificate has expired or is not yet valid-小白实操记录
- 小程序影藏溢出的gif_“菜鸟”程序员和“大神”程序员的差别竟然这么大……|程序员|代码|产品经理...
- HTML5学习笔记2
- 计算机学院院长寄语,院长寄语-欢迎访问北京农学院计算机与信息工程
- golang值引用和指针引用,结构体拷贝
- “同城货运第一股“来了!快狗打车4年烧掉28亿,行业老三如何突围?
- MFC添加ActiveX控件
- EasyUI的Datagrid在Dialog中加载数据不显示